diff --git a/!Załączniki/20221107120342 2022-11-07 12.08.17.excalidraw.md b/!Załączniki/20221107120342 2022-11-07 12.08.17.excalidraw.md new file mode 100644 index 0000000..c65387e --- /dev/null +++ b/!Załączniki/20221107120342 2022-11-07 12.08.17.excalidraw.md @@ -0,0 +1,7698 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +%% +# Drawing +```json +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "iDXlubkAvnw-cY6KwngPn", + "type": "freedraw", + "x": -176.84246826171875, + "y": -131.8359146118164, + "width": 20.83331298828125, + "height": 34.16667175292969, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1659679534, + "version": 23, + "versionNonce": 497394418, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370700, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -3.33331298828125, + -2.5 + ], + [ + -3.33331298828125, + -5 + ], + [ + -4.1666259765625, + -9.16668701171875 + ], + [ + -4.1666259765625, + -13.333343505859375 + ], + [ + -4.1666259765625, + -18.333343505859375 + ], + [ + -4.1666259765625, + -23.333343505859375 + ], + [ + -3.33331298828125, + -25 + ], + [ + -1.6666259765625, + -27.5 + ], + [ + 0, + -29.166671752929688 + ], + [ + 4.16668701171875, + -31.666671752929688 + ], + [ + 8.3333740234375, + -33.333343505859375 + ], + [ + 12.5, + -34.16667175292969 + ], + [ + 14.16668701171875, + -34.16667175292969 + ], + [ + 16.66668701171875, + -32.5 + ], + [ + 16.66668701171875, + -32.5 + ] + ], + "pressures": [ + 0.1699981689453125, + 0.4225616455078125, + 0.4367218017578125, + 0.446502685546875, + 0.453338623046875, + 0.459686279296875, + 0.462615966796875, + 0.463104248046875, + 0.462615966796875, + 0.462615966796875, + 0.463104248046875, + 0.460662841796875, + 0.4176788330078125, + 0.3571014404296875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 16.66668701171875, + -32.5 + ] + }, + { + "id": "o1nL89ByphaYhvTI9AboP", + "type": "freedraw", + "x": -191.00909423828125, + "y": -148.5025863647461, + "width": 19.1666259765625, + "height": 2.5, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1776192690, + "version": 15, + "versionNonce": 858766638, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370702, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.83331298828125, + -1.6666717529296875 + ], + [ + 2.5, + -1.6666717529296875 + ], + [ + 5.83331298828125, + -2.5 + ], + [ + 10.83331298828125, + -2.5 + ], + [ + 17.5, + -1.6666717529296875 + ], + [ + 19.1666259765625, + -1.6666717529296875 + ], + [ + 19.1666259765625, + -1.6666717529296875 + ] + ], + "pressures": [ + 0.2383880615234375, + 0.3649139404296875, + 0.3712615966796875, + 0.37860107421875, + 0.37811279296875, + 0.188079833984375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 19.1666259765625, + -1.6666717529296875 + ] + }, + { + "id": "BFsy7BFU2oIFStUTgdAOh", + "type": "freedraw", + "x": -141.84246826171875, + "y": -168.5025863647461, + "width": 19.1666259765625, + "height": 41.66667175292969, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 2002856046, + "version": 18, + "versionNonce": 647525554, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370702, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.83331298828125, + 0.8333282470703125 + ], + [ + -7.5, + 3.3333282470703125 + ], + [ + -10, + 6.6666717529296875 + ], + [ + -14.1666259765625, + 14.166671752929688 + ], + [ + -19.1666259765625, + 26.666671752929688 + ], + [ + -18.33331298828125, + 36.66667175292969 + ], + [ + -14.1666259765625, + 40.83332824707031 + ], + [ + -7.5, + 41.66667175292969 + ], + [ + -0.83331298828125, + 39.99998474121094 + ], + [ + -0.83331298828125, + 39.99998474121094 + ] + ], + "pressures": [ + 0.2755126953125, + 0.38934326171875, + 0.4084014892578125, + 0.4289093017578125, + 0.463104248046875, + 0.4826507568359375, + 0.4860687255859375, + 0.465057373046875, + 0.340972900390625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -0.83331298828125, + 39.99998474121094 + ] + }, + { + "id": "UUM3k2LZwo9hr5mFAmPAL", + "type": "freedraw", + "x": -132.67578125, + "y": -150.16925811767578, + "width": 18.33331298828125, + "height": 20.83331298828125, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 898596334, + "version": 27, + "versionNonce": 81520494, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370703, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.83331298828125, + -1.666656494140625 + ], + [ + -0.83331298828125, + -0.8333282470703125 + ], + [ + -0.83331298828125, + 0 + ], + [ + -0.83331298828125, + 4.1666717529296875 + ], + [ + -0.83331298828125, + 7.5 + ], + [ + -0.83331298828125, + 8.333343505859375 + ], + [ + 2.5, + 7.5 + ], + [ + 6.66668701171875, + 5.833343505859375 + ], + [ + 8.33331298828125, + 5.833343505859375 + ], + [ + 11.66668701171875, + 6.6666717529296875 + ], + [ + 12.5, + 10 + ], + [ + 12.5, + 11.666656494140625 + ], + [ + 11.66668701171875, + 14.166656494140625 + ], + [ + 8.33331298828125, + 17.5 + ], + [ + 6.66668701171875, + 18.333343505859375 + ], + [ + 2.5, + 19.166656494140625 + ], + [ + -3.33331298828125, + 19.166656494140625 + ], + [ + -5.83331298828125, + 17.5 + ], + [ + -5.83331298828125, + 17.5 + ] + ], + "pressures": [ + 0.2427825927734375, + 0.3605194091796875, + 0.38348388671875, + 0.4123077392578125, + 0.4279327392578125, + 0.4303741455078125, + 0.4289093017578125, + 0.4308624267578125, + 0.4293975830078125, + 0.4279327392578125, + 0.4279327392578125, + 0.4293975830078125, + 0.4298858642578125, + 0.4313507080078125, + 0.4333038330078125, + 0.4342803955078125, + 0.4157257080078125, + 0.2349700927734375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -5.83331298828125, + 17.5 + ] + }, + { + "id": "W-L_m8PYMrFmbr9hTKjpc", + "type": "freedraw", + "x": -135.17578125, + "y": -153.5025863647461, + "width": 25, + "height": 6.6666717529296875, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1926510962, + "version": 14, + "versionNonce": 885722738, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370703, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 5, + -4.1666717529296875 + ], + [ + 10.83331298828125, + -5.8333282470703125 + ], + [ + 15, + -6.6666717529296875 + ], + [ + 20.83331298828125, + -6.6666717529296875 + ], + [ + 25, + -5.8333282470703125 + ], + [ + 25, + -5.8333282470703125 + ] + ], + "pressures": [ + 0.324859619140625, + 0.4362335205078125, + 0.439666748046875, + 0.4254913330078125, + 0.321441650390625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 25, + -5.8333282470703125 + ] + }, + { + "id": "J4z4YK5yFvXuCmOZWAzgl", + "type": "freedraw", + "x": -104.34246826171875, + "y": -136.00260162353516, + "width": 2.5, + "height": 11.66668701171875, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1125838962, + "version": 12, + "versionNonce": 470337966, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370703, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2.5, + 5 + ], + [ + -2.5, + 7.5 + ], + [ + -2.5, + 11.66668701171875 + ], + [ + -2.5, + 11.66668701171875 + ] + ], + "pressures": [ + 0.323883056640625, + 0.4069366455078125, + 0.40594482421875, + 0.2237396240234375, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -2.5, + 11.66668701171875 + ] + }, + { + "id": "ak4cAf6-U3Tw8Oxi0_MME", + "type": "freedraw", + "x": -86.84246826171875, + "y": -155.16925811767578, + "width": 17.5, + "height": 21.666656494140625, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1565175218, + "version": 25, + "versionNonce": 486830130, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370703, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 3.333343505859375 + ], + [ + 0.8333740234375, + 4.1666717529296875 + ], + [ + 5, + 5 + ], + [ + 6.66668701171875, + 4.1666717529296875 + ], + [ + 10, + 3.333343505859375 + ], + [ + 11.66668701171875, + 3.333343505859375 + ], + [ + 14.16668701171875, + 4.1666717529296875 + ], + [ + 15.8333740234375, + 5.833343505859375 + ], + [ + 16.66668701171875, + 8.333343505859375 + ], + [ + 16.66668701171875, + 10 + ], + [ + 15, + 15 + ], + [ + 12.5, + 18.333343505859375 + ], + [ + 7.5, + 21.666656494140625 + ], + [ + 3.3333740234375, + 21.666656494140625 + ], + [ + 0, + 20 + ], + [ + -0.83331298828125, + 19.166656494140625 + ], + [ + -0.83331298828125, + 19.166656494140625 + ] + ], + "pressures": [ + 0.2349700927734375, + 0.3116607666015625, + 0.330718994140625, + 0.3458709716796875, + 0.3517303466796875, + 0.3634490966796875, + 0.37615966796875, + 0.38494873046875, + 0.39569091796875, + 0.4162139892578125, + 0.4274444580078125, + 0.447479248046875, + 0.456268310546875, + 0.458221435546875, + 0.4220733642578125, + 0.205169677734375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -0.83331298828125, + 19.166656494140625 + ] + }, + { + "id": "JneoOdXNfPGVlGlI8yQAb", + "type": "freedraw", + "x": -91.84246826171875, + "y": -161.8359146118164, + "width": 20.8333740234375, + "height": 2.5, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1693561518, + "version": 12, + "versionNonce": 2011128814, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370703, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 3.3333740234375, + -1.6666717529296875 + ], + [ + 10.8333740234375, + -2.5 + ], + [ + 20.8333740234375, + -1.6666717529296875 + ], + [ + 20.8333740234375, + -1.6666717529296875 + ] + ], + "pressures": [ + 0.339508056640625, + 0.446502685546875, + 0.461151123046875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 20.8333740234375, + -1.6666717529296875 + ] + }, + { + "id": "ebS54eUaP2MjNua57699L", + "type": "freedraw", + "x": -54.34246826171875, + "y": -178.5025863647461, + "width": 13.3333740234375, + "height": 59.16667175292969, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 416500078, + "version": 19, + "versionNonce": 53189106, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370704, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 5, + 0 + ], + [ + 7.5, + 3.3333282470703125 + ], + [ + 10.8333740234375, + 8.333328247070312 + ], + [ + 12.5, + 15 + ], + [ + 13.3333740234375, + 25 + ], + [ + 12.5, + 33.33332824707031 + ], + [ + 9.1666259765625, + 44.16667175292969 + ], + [ + 8.3333740234375, + 46.66667175292969 + ], + [ + 1.6666259765625, + 58.33332824707031 + ], + [ + 0.8333740234375, + 59.16667175292969 + ], + [ + 0.8333740234375, + 59.16667175292969 + ] + ], + "pressures": [ + 0.2574462890625, + 0.4079132080078125, + 0.441131591796875, + 0.460174560546875, + 0.4777679443359375, + 0.500732421875, + 0.508056640625, + 0.511962890625, + 0.511962890625, + 0.14068603515625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 0.8333740234375, + 59.16667175292969 + ] + }, + { + "id": "J0A9lQc55b3YlzwSV4Jye", + "type": "freedraw", + "x": -126.84246826171875, + "y": -113.50260162353516, + "width": 63.33331298828125, + "height": 45, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 876564210, + "version": 15, + "versionNonce": 1248376366, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370704, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5, + 0.833343505859375 + ], + [ + -12.5, + 6.66668701171875 + ], + [ + -24.1666259765625, + 17.5 + ], + [ + -46.6666259765625, + 34.16668701171875 + ], + [ + -60.83331298828125, + 44.16668701171875 + ], + [ + -63.33331298828125, + 45 + ], + [ + -63.33331298828125, + 45 + ] + ], + "pressures": [ + 0.2330169677734375, + 0.38787841796875, + 0.4289093017578125, + 0.444549560546875, + 0.443572998046875, + 0.3522186279296875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -63.33331298828125, + 45 + ] + }, + { + "id": "GY4jytoFCKehV-Bmbt4Zy", + "type": "freedraw", + "x": -225.17578125, + "y": -49.335914611816406, + "width": 18.33331298828125, + "height": 40.833343505859375, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 2120600110, + "version": 21, + "versionNonce": 1984400306, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370704, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.83331298828125, + 1.666656494140625 + ], + [ + 2.5, + -1.66668701171875 + ], + [ + 6.66668701171875, + -7.5 + ], + [ + 13.33331298828125, + -14.16668701171875 + ], + [ + 16.66668701171875, + -16.66668701171875 + ], + [ + 17.5, + -15 + ], + [ + 16.66668701171875, + -4.16668701171875 + ], + [ + 13.33331298828125, + 10 + ], + [ + 11.66668701171875, + 19.166656494140625 + ], + [ + 11.66668701171875, + 21.666656494140625 + ], + [ + 12.5, + 24.166656494140625 + ], + [ + 13.33331298828125, + 23.33331298828125 + ], + [ + 13.33331298828125, + 23.33331298828125 + ] + ], + "pressures": [ + 0.204681396484375, + 0.39862060546875, + 0.4230499267578125, + 0.4289093017578125, + 0.4318389892578125, + 0.4298858642578125, + 0.4372100830078125, + 0.453826904296875, + 0.459197998046875, + 0.461151123046875, + 0.461639404296875, + 0.335601806640625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 13.33331298828125, + 23.33331298828125 + ] + }, + { + "id": "H_5U5M9IRmou70F0kqyV6", + "type": "freedraw", + "x": -132.67578125, + "y": -37.66925811767578, + "width": 19.16668701171875, + "height": 3.333343505859375, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1414837234, + "version": 12, + "versionNonce": 479051886, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370704, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 10, + -0.833343505859375 + ], + [ + 18.33331298828125, + 1.666656494140625 + ], + [ + 19.16668701171875, + 2.5 + ], + [ + 19.16668701171875, + 2.5 + ] + ], + "pressures": [ + 0.2432708740234375, + 0.37664794921875, + 0.13970947265625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 19.16668701171875, + 2.5 + ] + }, + { + "id": "xNHRNYSzga1_Q13dxubON", + "type": "freedraw", + "x": -123.50909423828125, + "y": -41.835914611816406, + "width": 4.1666259765625, + "height": 20.83331298828125, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 199303474, + "version": 11, + "versionNonce": 209667442, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370704, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 3.33331298828125, + 15.83331298828125 + ], + [ + 4.1666259765625, + 20.83331298828125 + ], + [ + 4.1666259765625, + 20.83331298828125 + ] + ], + "pressures": [ + 0.2198333740234375, + 0.3082427978515625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 4.1666259765625, + 20.83331298828125 + ] + }, + { + "id": "wHO2iOjt1YLtj3bqsTHxC", + "type": "freedraw", + "x": -59.34246826171875, + "y": -96.8359146118164, + "width": 57.5, + "height": 25, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 568647534, + "version": 19, + "versionNonce": 1914143406, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370704, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.6666259765625, + 0.83331298828125 + ], + [ + 3.3333740234375, + 1.666656494140625 + ], + [ + 8.3333740234375, + 4.166656494140625 + ], + [ + 17.5, + 7.5 + ], + [ + 25, + 11.666656494140625 + ], + [ + 34.1666259765625, + 17.5 + ], + [ + 43.3333740234375, + 20.83331298828125 + ], + [ + 51.6666259765625, + 23.33331298828125 + ], + [ + 53.3333740234375, + 23.33331298828125 + ], + [ + 57.5, + 25 + ], + [ + 57.5, + 25 + ] + ], + "pressures": [ + 0.3004302978515625, + 0.38104248046875, + 0.40008544921875, + 0.4367218017578125, + 0.468475341796875, + 0.4743499755859375, + 0.4767913818359375, + 0.4743499755859375, + 0.4333038330078125, + 0.4079132080078125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 57.5, + 25 + ] + }, + { + "id": "FGhilIymiABI7s0uFBOMQ", + "type": "freedraw", + "x": 1.49090576171875, + "y": -86.8359146118164, + "width": 19.166748046875, + "height": 25, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 186292466, + "version": 17, + "versionNonce": 2132395826, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370704, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.6666259765625, + 3.33331298828125 + ], + [ + 7.5, + 9.166656494140625 + ], + [ + 10.833251953125, + 13.33331298828125 + ], + [ + 12.5, + 17.5 + ], + [ + 10, + 23.33331298828125 + ], + [ + 4.1666259765625, + 25 + ], + [ + -5, + 23.33331298828125 + ], + [ + -6.666748046875, + 22.5 + ], + [ + -6.666748046875, + 22.5 + ] + ], + "pressures": [ + 0.2545166015625, + 0.2764892578125, + 0.2843170166015625, + 0.2872467041015625, + 0.2999420166015625, + 0.343414306640625, + 0.3595428466796875, + 0.1836700439453125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -6.666748046875, + 22.5 + ] + }, + { + "id": "sOUUjwfgow7XQ7TlZNphS", + "type": "freedraw", + "x": -5.17584228515625, + "y": -27.66925811767578, + "width": 11.666748046875, + "height": 44.16668701171875, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 132704878, + "version": 28, + "versionNonce": 1840184558, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370704, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.666748046875, + 0 + ], + [ + 2.5, + -0.833343505859375 + ], + [ + 5, + -4.166656494140625 + ], + [ + 5.8333740234375, + -6.666656494140625 + ], + [ + 8.3333740234375, + -11.666656494140625 + ], + [ + 8.3333740234375, + -13.333343505859375 + ], + [ + 9.166748046875, + -19.166656494140625 + ], + [ + 9.166748046875, + -24.166656494140625 + ], + [ + 7.5, + -25.833343505859375 + ], + [ + 5.8333740234375, + -25.833343505859375 + ], + [ + 4.166748046875, + -23.333343505859375 + ], + [ + 1.666748046875, + -18.333343505859375 + ], + [ + -1.6666259765625, + -8.333343505859375 + ], + [ + -2.5, + -0.833343505859375 + ], + [ + -2.5, + 5.833343505859375 + ], + [ + -2.5, + 11.666656494140625 + ], + [ + -0.833251953125, + 16.666656494140625 + ], + [ + 0, + 17.5 + ], + [ + 0, + 18.333343505859375 + ], + [ + 0, + 18.333343505859375 + ] + ], + "pressures": [ + 0.1729278564453125, + 0.327301025390625, + 0.3649139404296875, + 0.38592529296875, + 0.38690185546875, + 0.39031982421875, + 0.38836669921875, + 0.38641357421875, + 0.38153076171875, + 0.37811279296875, + 0.3693084716796875, + 0.3702850341796875, + 0.3707733154296875, + 0.37664794921875, + 0.37957763671875, + 0.37957763671875, + 0.38250732421875, + 0.3580780029296875, + 0.2261810302734375, + 0.1025848388671875, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 0, + 18.333343505859375 + ] + }, + { + "id": "19JhFlRCqEzDaFrUKsIyG", + "type": "freedraw", + "x": 24.82415771484375, + "y": -60.16925811767578, + "width": 12.5, + "height": 41.666656494140625, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 677514030, + "version": 19, + "versionNonce": 1182666994, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370704, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2.5, + 0 + ], + [ + -3.333251953125, + 0.833343505859375 + ], + [ + -6.6666259765625, + 5 + ], + [ + -8.333251953125, + 10 + ], + [ + -10.833251953125, + 15.833343505859375 + ], + [ + -12.5, + 25 + ], + [ + -12.5, + 36.666656494140625 + ], + [ + -10, + 40 + ], + [ + -5.833251953125, + 41.666656494140625 + ], + [ + -3.333251953125, + 41.666656494140625 + ], + [ + -3.333251953125, + 41.666656494140625 + ] + ], + "pressures": [ + 0.2628173828125, + 0.37664794921875, + 0.39178466796875, + 0.4323272705078125, + 0.450897216796875, + 0.463592529296875, + 0.4719085693359375, + 0.4723968505859375, + 0.4274444580078125, + 0.2965240478515625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -3.333251953125, + 41.666656494140625 + ] + }, + { + "id": "-pAhV_mInG6sjYVSw9Ng0", + "type": "freedraw", + "x": 29.82415771484375, + "y": -45.16925811767578, + "width": 17.5, + "height": 20.833343505859375, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 161863986, + "version": 27, + "versionNonce": 1960652590, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370705, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.833251953125, + 0.833343505859375 + ], + [ + -0.833251953125, + 1.666656494140625 + ], + [ + -1.6666259765625, + 5 + ], + [ + -2.5, + 7.5 + ], + [ + -2.5, + 10 + ], + [ + -1.6666259765625, + 10 + ], + [ + 1.666748046875, + 9.166656494140625 + ], + [ + 5, + 7.5 + ], + [ + 9.166748046875, + 6.666656494140625 + ], + [ + 11.666748046875, + 8.333343505859375 + ], + [ + 13.3333740234375, + 10 + ], + [ + 13.3333740234375, + 12.5 + ], + [ + 12.5, + 14.166656494140625 + ], + [ + 10.8333740234375, + 16.666656494140625 + ], + [ + 8.3333740234375, + 19.166656494140625 + ], + [ + 4.166748046875, + 20.833343505859375 + ], + [ + -0.833251953125, + 20 + ], + [ + -4.1666259765625, + 17.5 + ], + [ + -4.1666259765625, + 17.5 + ] + ], + "pressures": [ + 0.2642822265625, + 0.3531951904296875, + 0.3717498779296875, + 0.39031982421875, + 0.40057373046875, + 0.40301513671875, + 0.40252685546875, + 0.40350341796875, + 0.40496826171875, + 0.4064483642578125, + 0.4074249267578125, + 0.4093780517578125, + 0.4123077392578125, + 0.4186553955078125, + 0.4284210205078125, + 0.4328155517578125, + 0.4293975830078125, + 0.342437744140625, + 0.001953125, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -4.1666259765625, + 17.5 + ] + }, + { + "id": "lmQRyukX7ZFyMlwoYBneN", + "type": "freedraw", + "x": 28.15753173828125, + "y": -50.16925811767578, + "width": 24.1666259765625, + "height": 2.5, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 658823534, + "version": 14, + "versionNonce": 909320882, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370705, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.6666259765625, + -0.833343505859375 + ], + [ + 5, + -1.666656494140625 + ], + [ + 15, + -2.5 + ], + [ + 22.5, + -2.5 + ], + [ + 24.1666259765625, + -2.5 + ], + [ + 24.1666259765625, + -2.5 + ] + ], + "pressures": [ + 0.313140869140625, + 0.39666748046875, + 0.4069366455078125, + 0.40350341796875, + 0.209075927734375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 24.1666259765625, + -2.5 + ] + }, + { + "id": "QrSozysG9vhfyFw5GCp68", + "type": "freedraw", + "x": 53.99090576171875, + "y": -39.335914611816406, + "width": 15.8333740234375, + "height": 0.833343505859375, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 837661294, + "version": 18, + "versionNonce": 1410013550, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370705, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.8333740234375, + 0 + ], + [ + 0, + 0 + ], + [ + 0.833251953125, + 0 + ], + [ + 3.333251953125, + -0.833343505859375 + ], + [ + 6.6666259765625, + -0.833343505859375 + ], + [ + 9.1666259765625, + 0 + ], + [ + 10.833251953125, + 0 + ], + [ + 14.1666259765625, + 0 + ], + [ + 15, + 0 + ], + [ + 15, + 0 + ] + ], + "pressures": [ + 0.2530517578125, + 0.337066650390625, + 0.3463592529296875, + 0.3683319091796875, + 0.38885498046875, + 0.4074249267578125, + 0.4093780517578125, + 0.4079132080078125, + 0.3053131103515625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 15, + 0 + ] + }, + { + "id": "iMR_FZUH33O1__jlXEYnG", + "type": "freedraw", + "x": 61.49090576171875, + "y": -46.835914611816406, + "width": 1.6666259765625, + "height": 2.5, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1672251374, + "version": 14, + "versionNonce": 417332338, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370705, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.8333740234375, + 0 + ], + [ + 0, + 0.83331298828125 + ], + [ + 0.833251953125, + 1.666656494140625 + ], + [ + 0.833251953125, + 2.5 + ], + [ + 0, + 0 + ] + ], + "pressures": [ + 0.212982177734375, + 0.2276458740234375, + 0.2286224365234375, + 0.2227630615234375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 0.833251953125, + 2.5 + ] + }, + { + "id": "mIEqvFK2IYtioRSkOG-M1", + "type": "freedraw", + "x": 53.99090576171875, + "y": -25.16925811767578, + "width": 6.666748046875, + "height": 14.166656494140625, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1204429038, + "version": 14, + "versionNonce": 1652669358, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370705, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.8333740234375, + 0.833343505859375 + ], + [ + -3.3333740234375, + 6.666656494140625 + ], + [ + -5, + 10.833343505859375 + ], + [ + -6.666748046875, + 13.333343505859375 + ], + [ + -6.666748046875, + 14.166656494140625 + ], + [ + -6.666748046875, + 14.166656494140625 + ] + ], + "pressures": [ + 0.216888427734375, + 0.2803955078125, + 0.323394775390625, + 0.332672119140625, + 0.332672119140625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -6.666748046875, + 14.166656494140625 + ] + }, + { + "id": "KQo7ihUxsXKcnx9VXaIyE", + "type": "freedraw", + "x": 69.82415771484375, + "y": -57.66925811767578, + "width": 19.1666259765625, + "height": 18.333343505859375, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1473460718, + "version": 21, + "versionNonce": 1280024114, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370705, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -7.5, + 8.333343505859375 + ], + [ + -12.5, + 14.166656494140625 + ], + [ + -14.1666259765625, + 17.5 + ], + [ + -12.5, + 18.333343505859375 + ], + [ + -9.1666259765625, + 16.666656494140625 + ], + [ + -5.833251953125, + 15.833343505859375 + ], + [ + -5, + 15 + ], + [ + 0, + 14.166656494140625 + ], + [ + 4.166748046875, + 15 + ], + [ + 5, + 15 + ], + [ + 5, + 15.833343505859375 + ], + [ + 3.3333740234375, + 15.833343505859375 + ], + [ + 3.3333740234375, + 15.833343505859375 + ] + ], + "pressures": [ + 0.211517333984375, + 0.336090087890625, + 0.3654022216796875, + 0.37567138671875, + 0.3737030029296875, + 0.38104248046875, + 0.38739013671875, + 0.38739013671875, + 0.39178466796875, + 0.39862060546875, + 0.40155029296875, + 0.40252685546875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 3.3333740234375, + 15.833343505859375 + ] + }, + { + "id": "Nm_I7UqLVv1HDVCIrXYLo", + "type": "freedraw", + "x": 65.65753173828125, + "y": -44.335914611816406, + "width": 1.666748046875, + "height": 23.33331298828125, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1611098162, + "version": 13, + "versionNonce": 644486638, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370705, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 3.33331298828125 + ], + [ + -0.8333740234375, + 8.33331298828125 + ], + [ + 0, + 14.166656494140625 + ], + [ + 0.8333740234375, + 23.33331298828125 + ], + [ + 0.8333740234375, + 23.33331298828125 + ] + ], + "pressures": [ + 0.3058013916015625, + 0.3507537841796875, + 0.3697967529296875, + 0.3702850341796875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 0.8333740234375, + 23.33331298828125 + ] + }, + { + "id": "tjNAHyaQltylFcPKokN2x", + "type": "freedraw", + "x": 83.99090576171875, + "y": -64.3359146118164, + "width": 7.5, + "height": 52.5, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1380780718, + "version": 16, + "versionNonce": 1566377970, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370705, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 1.666656494140625 + ], + [ + 0.833251953125, + 5.83331298828125 + ], + [ + 2.5, + 10.83331298828125 + ], + [ + 2.5, + 21.666656494140625 + ], + [ + 1.6666259765625, + 32.5 + ], + [ + -0.8333740234375, + 42.5 + ], + [ + -5, + 52.5 + ], + [ + -5, + 52.5 + ] + ], + "pressures": [ + 0.3067779541015625, + 0.3649139404296875, + 0.39471435546875, + 0.40350341796875, + 0.4093780517578125, + 0.4108428955078125, + 0.39715576171875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -5, + 52.5 + ] + }, + { + "id": "IT_yyZ03DHNvHlwTavOP3", + "type": "freedraw", + "x": 24.82415771484375, + "y": 1.4973983764648438, + "width": 105.833251953125, + "height": 48.33331298828125, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 204119534, + "version": 29, + "versionNonce": 2026711086, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370705, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.833251953125, + -0.83331298828125 + ], + [ + -1.6666259765625, + -0.83331298828125 + ], + [ + -3.333251953125, + -0.83331298828125 + ], + [ + -5, + 0 + ], + [ + -8.333251953125, + 1.66668701171875 + ], + [ + -11.6666259765625, + 2.5 + ], + [ + -19.1666259765625, + 5 + ], + [ + -27.5, + 7.5 + ], + [ + -36.6666259765625, + 11.66668701171875 + ], + [ + -55, + 19.16668701171875 + ], + [ + -66.6666259765625, + 25 + ], + [ + -76.6666259765625, + 30 + ], + [ + -85, + 34.16668701171875 + ], + [ + -91.6666259765625, + 37.5 + ], + [ + -99.1666259765625, + 40.833343505859375 + ], + [ + -100.833251953125, + 41.66668701171875 + ], + [ + -103.333251953125, + 43.333343505859375 + ], + [ + -104.99993896484375, + 45 + ], + [ + -105.833251953125, + 46.66668701171875 + ], + [ + -105.833251953125, + 47.5 + ], + [ + -105.833251953125, + 47.5 + ] + ], + "pressures": [ + 0.194427490234375, + 0.2862701416015625, + 0.314117431640625, + 0.3488006591796875, + 0.3624725341796875, + 0.38055419921875, + 0.38543701171875, + 0.39959716796875, + 0.4079132080078125, + 0.4098663330078125, + 0.4152374267578125, + 0.4323272705078125, + 0.458709716796875, + 0.4777679443359375, + 0.4870452880859375, + 0.4889984130859375, + 0.4860687255859375, + 0.450897216796875, + 0.38934326171875, + 0.1704864501953125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -105.833251953125, + 47.5 + ] + }, + { + "id": "inw7OQGM_6rzxwRKfZ0nF", + "type": "freedraw", + "x": 78.15753173828125, + "y": 7.330741882324219, + "width": 93.333251953125, + "height": 59.166656494140625, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 81992498, + "version": 22, + "versionNonce": 605764018, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370705, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.6666259765625, + 0 + ], + [ + 0, + 3.333343505859375 + ], + [ + 3.3333740234375, + 9.166656494140625 + ], + [ + 13.3333740234375, + 15 + ], + [ + 24.1666259765625, + 20.833343505859375 + ], + [ + 38.3333740234375, + 27.5 + ], + [ + 47.5, + 32.5 + ], + [ + 58.3333740234375, + 37.5 + ], + [ + 68.3333740234375, + 42.5 + ], + [ + 79.1666259765625, + 48.333343505859375 + ], + [ + 90.8333740234375, + 57.5 + ], + [ + 91.6666259765625, + 59.166656494140625 + ], + [ + 88.3333740234375, + 57.5 + ], + [ + 88.3333740234375, + 57.5 + ] + ], + "pressures": [ + 0.3053131103515625, + 0.4210968017578125, + 0.511962890625, + 0.5456695556640625, + 0.5622711181640625, + 0.574493408203125, + 0.588653564453125, + 0.5969696044921875, + 0.6033172607421875, + 0.6072235107421875, + 0.6091766357421875, + 0.6135711669921875, + 0.6033172607421875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 88.3333740234375, + 57.5 + ] + }, + { + "id": "tVipP261UN9PFOUkIj_5b", + "type": "freedraw", + "x": -171.00909423828125, + "y": 88.1640853881836, + "width": 10, + "height": 43.333343505859375, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 982468914, + "version": 25, + "versionNonce": 697561710, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370705, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -0.833343505859375 + ], + [ + 2.5, + -4.16668701171875 + ], + [ + 5.83331298828125, + -10 + ], + [ + 8.33331298828125, + -17.5 + ], + [ + 9.1666259765625, + -23.333343505859375 + ], + [ + 8.33331298828125, + -30 + ], + [ + 8.33331298828125, + -30.833343505859375 + ], + [ + 6.6666259765625, + -30.833343505859375 + ], + [ + 5, + -30.833343505859375 + ], + [ + 2.5, + -26.66668701171875 + ], + [ + 1.6666259765625, + -20.833343505859375 + ], + [ + 0.83331298828125, + -13.333343505859375 + ], + [ + 0, + -0.833343505859375 + ], + [ + -0.8333740234375, + 8.33331298828125 + ], + [ + -0.8333740234375, + 12.5 + ], + [ + -0.8333740234375, + 10.83331298828125 + ], + [ + -0.8333740234375, + 10.83331298828125 + ] + ], + "pressures": [ + 0.197357177734375, + 0.3072662353515625, + 0.3727264404296875, + 0.39178466796875, + 0.39764404296875, + 0.40155029296875, + 0.4079132080078125, + 0.4098663330078125, + 0.4103546142578125, + 0.4113311767578125, + 0.4137725830078125, + 0.4162139892578125, + 0.4176788330078125, + 0.4181671142578125, + 0.4176788330078125, + 0.3527069091796875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -0.8333740234375, + 10.83331298828125 + ] + }, + { + "id": "qITASJo8Tkwn7sZM7O01H", + "type": "freedraw", + "x": -178.50909423828125, + "y": 81.49739837646484, + "width": 32.5, + "height": 4.16668701171875, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 2033352494, + "version": 14, + "versionNonce": 1605186418, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370706, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 5.83331298828125, + 3.333343505859375 + ], + [ + 15.83331298828125, + 4.16668701171875 + ], + [ + 20.83331298828125, + 3.333343505859375 + ], + [ + 28.33331298828125, + 1.66668701171875 + ], + [ + 32.5, + 0.833343505859375 + ], + [ + 32.5, + 0.833343505859375 + ] + ], + "pressures": [ + 0.2813873291015625, + 0.4274444580078125, + 0.457733154296875, + 0.459686279296875, + 0.39422607421875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 32.5, + 0.833343505859375 + ] + }, + { + "id": "sbhtWt65wbS1CVnPt9bew", + "type": "freedraw", + "x": -134.34246826171875, + "y": 58.164085388183594, + "width": 10.83331298828125, + "height": 35.83331298828125, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1073379374, + "version": 20, + "versionNonce": 596079790, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370706, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.83331298828125, + 0 + ], + [ + -1.6666259765625, + 0 + ], + [ + -4.1666259765625, + 2.5 + ], + [ + -5.83331298828125, + 5.83331298828125 + ], + [ + -9.1666259765625, + 13.33331298828125 + ], + [ + -10, + 17.5 + ], + [ + -10.83331298828125, + 24.166656494140625 + ], + [ + -10, + 31.666656494140625 + ], + [ + -8.33331298828125, + 35 + ], + [ + -5.83331298828125, + 35.83331298828125 + ], + [ + -4.1666259765625, + 35.83331298828125 + ], + [ + -4.1666259765625, + 35.83331298828125 + ] + ], + "pressures": [ + 0.2496185302734375, + 0.3727264404296875, + 0.4113311767578125, + 0.438690185546875, + 0.466522216796875, + 0.4929046630859375, + 0.4997406005859375, + 0.505615234375, + 0.506103515625, + 0.4728851318359375, + 0.335601806640625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -4.1666259765625, + 35.83331298828125 + ] + }, + { + "id": "1Mfp1vRCmJOVFMyyYXVTl", + "type": "freedraw", + "x": -134.34246826171875, + "y": 79.83074188232422, + "width": 12.5, + "height": 23.333343505859375, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1743394798, + "version": 22, + "versionNonce": 1381627186, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370706, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 2.5, + -3.333343505859375 + ], + [ + 6.66668701171875, + -8.333343505859375 + ], + [ + 9.16668701171875, + -11.666656494140625 + ], + [ + 12.5, + -14.166656494140625 + ], + [ + 12.5, + -15 + ], + [ + 12.5, + -14.166656494140625 + ], + [ + 10.8333740234375, + -8.333343505859375 + ], + [ + 9.16668701171875, + -1.666656494140625 + ], + [ + 8.3333740234375, + 1.666656494140625 + ], + [ + 8.3333740234375, + 6.666656494140625 + ], + [ + 9.16668701171875, + 8.333343505859375 + ], + [ + 10.8333740234375, + 6.666656494140625 + ], + [ + 11.66668701171875, + 5.833343505859375 + ], + [ + 11.66668701171875, + 5.833343505859375 + ] + ], + "pressures": [ + 0.2633056640625, + 0.3468475341796875, + 0.3629608154296875, + 0.3678436279296875, + 0.3732147216796875, + 0.37518310546875, + 0.39715576171875, + 0.4293975830078125, + 0.442596435546875, + 0.447479248046875, + 0.448944091796875, + 0.4186553955078125, + 0.12603759765625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 11.66668701171875, + 5.833343505859375 + ] + }, + { + "id": "lmnpOdUo71xE-MpbNDYBg", + "type": "freedraw", + "x": -110.17578125, + "y": 85.6640853881836, + "width": 5, + "height": 15.83331298828125, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 427870702, + "version": 14, + "versionNonce": 273723118, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370706, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.83331298828125, + 0.83331298828125 + ], + [ + -0.83331298828125, + 3.33331298828125 + ], + [ + -1.66668701171875, + 5.83331298828125 + ], + [ + -4.16668701171875, + 12.5 + ], + [ + -5, + 15.83331298828125 + ], + [ + -5, + 15.83331298828125 + ] + ], + "pressures": [ + 0.2383880615234375, + 0.3600311279296875, + 0.38446044921875, + 0.39471435546875, + 0.39422607421875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -5, + 15.83331298828125 + ] + }, + { + "id": "KXq5UDRFrwDxTD5AWsJIi", + "type": "freedraw", + "x": -87.67578125, + "y": 58.997398376464844, + "width": 20, + "height": 23.333343505859375, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 2020434670, + "version": 24, + "versionNonce": 1569226482, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370706, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 0.833343505859375 + ], + [ + 0, + 1.66668701171875 + ], + [ + -1.66668701171875, + 5 + ], + [ + -7.5, + 14.16668701171875 + ], + [ + -11.66668701171875, + 20 + ], + [ + -13.33331298828125, + 22.5 + ], + [ + -12.5, + 22.5 + ], + [ + -10.83331298828125, + 22.5 + ], + [ + -8.33331298828125, + 21.66668701171875 + ], + [ + -5.83331298828125, + 20.833343505859375 + ], + [ + -2.5, + 20.833343505859375 + ], + [ + 0.83331298828125, + 21.66668701171875 + ], + [ + 2.5, + 22.5 + ], + [ + 5, + 23.333343505859375 + ], + [ + 6.66668701171875, + 23.333343505859375 + ], + [ + 6.66668701171875, + 23.333343505859375 + ] + ], + "pressures": [ + 0.215911865234375, + 0.2960357666015625, + 0.336090087890625, + 0.38055419921875, + 0.4171905517578125, + 0.4318389892578125, + 0.438201904296875, + 0.4372100830078125, + 0.438201904296875, + 0.438690185546875, + 0.438690185546875, + 0.440643310546875, + 0.440643310546875, + 0.440643310546875, + 0.38983154296875, + 0.1670684814453125, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 6.66668701171875, + 23.333343505859375 + ] + }, + { + "id": "C5FbojbCLBDRs5XCcK0tk", + "type": "freedraw", + "x": -88.50909423828125, + "y": 75.6640853881836, + "width": 2.5, + "height": 15.83331298828125, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1978943278, + "version": 14, + "versionNonce": 2088280366, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370706, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.8333740234375, + 2.5 + ], + [ + -1.66668701171875, + 6.666656494140625 + ], + [ + -2.5, + 10.83331298828125 + ], + [ + -2.5, + 15.83331298828125 + ], + [ + -1.66668701171875, + 15.83331298828125 + ], + [ + -1.66668701171875, + 15.83331298828125 + ] + ], + "pressures": [ + 0.2838287353515625, + 0.3610076904296875, + 0.37664794921875, + 0.37811279296875, + 0.2554931640625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -1.66668701171875, + 15.83331298828125 + ] + }, + { + "id": "aSORI7HzxMB-UlRvXUlFr", + "type": "freedraw", + "x": -72.67578125, + "y": 58.164085388183594, + "width": 15.83331298828125, + "height": 45.833343505859375, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 160972846, + "version": 21, + "versionNonce": 499110066, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370706, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.83331298828125, + -0.833343505859375 + ], + [ + -0.83331298828125, + 0 + ], + [ + -0.83331298828125, + 2.5 + ], + [ + 1.66668701171875, + 6.666656494140625 + ], + [ + 4.16668701171875, + 10 + ], + [ + 5.83331298828125, + 16.666656494140625 + ], + [ + 5.83331298828125, + 23.33331298828125 + ], + [ + 4.16668701171875, + 31.666656494140625 + ], + [ + 2.5, + 35.83331298828125 + ], + [ + -2.5, + 42.5 + ], + [ + -7.5, + 45 + ], + [ + -10, + 44.166656494140625 + ], + [ + -10, + 44.166656494140625 + ] + ], + "pressures": [ + 0.2569580078125, + 0.3468475341796875, + 0.38592529296875, + 0.4303741455078125, + 0.440155029296875, + 0.445037841796875, + 0.455291748046875, + 0.459197998046875, + 0.462127685546875, + 0.463104248046875, + 0.458709716796875, + 0.3116607666015625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -10, + 44.166656494140625 + ] + }, + { + "id": "5PeBVuZ33dwEdb21a7P1l", + "type": "freedraw", + "x": -134.34246826171875, + "y": 109.83074188232422, + "width": 20.8333740234375, + "height": 22.5, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 202890738, + "version": 22, + "versionNonce": 2070432622, + "isDeleted": false, + "boundElements": null, + "updated": 1667819370706, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.8333740234375, + 0 + ], + [ + 0.8333740234375, + -0.833343505859375 + ], + [ + 0, + -0.833343505859375 + ], + [ + -0.83331298828125, + -0.833343505859375 + ], + [ + -1.6666259765625, + 0 + ], + [ + -5.83331298828125, + 3.333343505859375 + ], + [ + -11.6666259765625, + 8.333343505859375 + ], + [ + -15, + 12.499969482421875 + ], + [ + -17.5, + 14.999969482421875 + ], + [ + -20, + 19.166656494140625 + ], + [ + -20, + 20.833343505859375 + ], + [ + -20, + 21.666656494140625 + ], + [ + -19.1666259765625, + 20.833343505859375 + ], + [ + -19.1666259765625, + 20.833343505859375 + ] + ], + "pressures": [ + 0.1641387939453125, + 0.2286224365234375, + 0.2955474853515625, + 0.337554931640625, + 0.3663787841796875, + 0.3732147216796875, + 0.39276123046875, + 0.4147491455078125, + 0.4210968017578125, + 0.4235382080078125, + 0.4250030517578125, + 0.4254913330078125, + 0.4240264892578125, + 0.1656036376953125, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -19.1666259765625, + 20.833343505859375 + ] + }, + { + "id": "k7XFyaft_ufbXw2Gxxwp9", + "type": "freedraw", + "x": -172.67578125, + "y": 156.49739837646484, + "width": 12.5, + "height": 23.33331298828125, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1265151406, + "version": 16, + "versionNonce": 740284530, + "isDeleted": false, + "boundElements": null, + "updated": 1667819371577, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.66668701171875, + 0.83331298828125 + ], + [ + -0.83331298828125, + -0.83331298828125 + ], + [ + 2.5, + -5 + ], + [ + 5.83331298828125, + -10 + ], + [ + 9.16668701171875, + -13.33331298828125 + ], + [ + 10, + -13.33331298828125 + ], + [ + 10, + -11.66668701171875 + ], + [ + 10, + -6.66668701171875 + ], + [ + 10, + -0.83331298828125 + ], + [ + 9.16668701171875, + 5 + ], + [ + 10, + 8.33331298828125 + ], + [ + 10.83331298828125, + 10 + ], + [ + 10.83331298828125, + 8.33331298828125 + ], + [ + 10.83331298828125, + 8.33331298828125 + ] + ], + "pressures": [ + 0.2642822265625, + 0.3702850341796875, + 0.38690185546875, + 0.4191436767578125, + 0.4254913330078125, + 0.4274444580078125, + 0.4279327392578125, + 0.4333038330078125, + 0.443084716796875, + 0.446014404296875, + 0.446990966796875, + 0.446502685546875, + 0.3673553466796875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 10.83331298828125, + 8.33331298828125 + ] + }, + { + "id": "VJLO0q2kxNO2dGYFuWr4i", + "type": "freedraw", + "x": -209.34246826171875, + "y": 113.1640853881836, + "width": 14.16668701171875, + "height": 12.499969482421875, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 146644910, + "version": 18, + "versionNonce": 650979378, + "isDeleted": false, + "boundElements": null, + "updated": 1667819372574, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.83331298828125, + -0.833343505859375 + ], + [ + -1.6666259765625, + -0.833343505859375 + ], + [ + -4.1666259765625, + -0.833343505859375 + ], + [ + -7.5, + 2.5 + ], + [ + -10.83331298828125, + 5.83331298828125 + ], + [ + -12.5, + 8.33331298828125 + ], + [ + -13.33331298828125, + 10.83331298828125 + ], + [ + -12.5, + 10.83331298828125 + ], + [ + -10.83331298828125, + 11.6666259765625 + ], + [ + -9.1666259765625, + 11.6666259765625 + ], + [ + -5.83331298828125, + 10.83331298828125 + ], + [ + -3.33331298828125, + 10.83331298828125 + ], + [ + -0.83331298828125, + 10.83331298828125 + ], + [ + 0, + 11.6666259765625 + ], + [ + 0.8333740234375, + 11.6666259765625 + ], + [ + 0.8333740234375, + 11.6666259765625 + ] + ], + "pressures": [ + 0.194427490234375, + 0.328765869140625, + 0.3722381591796875, + 0.39569091796875, + 0.4176788330078125, + 0.4333038330078125, + 0.439178466796875, + 0.441131591796875, + 0.440155029296875, + 0.439666748046875, + 0.440643310546875, + 0.441619873046875, + 0.439666748046875, + 0.4147491455078125, + 0.325347900390625, + 0.1152801513671875, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 0.8333740234375, + 11.6666259765625 + ] + }, + { + "id": "Pev9Fuvl6AsBP4mAFavOj", + "type": "freedraw", + "x": -211.84246826171875, + "y": 118.99739837646484, + "width": 3.33331298828125, + "height": 16.66668701171875, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1444817902, + "version": 8, + "versionNonce": 1657175858, + "isDeleted": false, + "boundElements": null, + "updated": 1667819372772, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.6666259765625, + 2.5 + ], + [ + -2.5, + 7.5 + ], + [ + -3.33331298828125, + 13.33331298828125 + ], + [ + -2.5, + 15.83331298828125 + ], + [ + -1.6666259765625, + 16.66668701171875 + ], + [ + -1.6666259765625, + 16.66668701171875 + ] + ], + "pressures": [ + 0.1778106689453125, + 0.2730712890625, + 0.325347900390625, + 0.338043212890625, + 0.2906646728515625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -1.6666259765625, + 16.66668701171875 + ] + }, + { + "id": "0al2Ugmt0qj1OQnwUBq_s", + "type": "freedraw", + "x": -203.50909423828125, + "y": 129.8307113647461, + "width": 2.5, + "height": 7.5, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1917437166, + "version": 7, + "versionNonce": 1219593134, + "isDeleted": false, + "boundElements": null, + "updated": 1667819373030, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.66668701171875, + 4.16668701171875 + ], + [ + -2.5, + 5.8333740234375 + ], + [ + -2.5, + 7.5 + ], + [ + 0, + 0 + ] + ], + "pressures": [ + 0.194915771484375, + 0.2979888916015625, + 0.2999420166015625, + 0.1787872314453125, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -2.5, + 7.5 + ] + }, + { + "id": "DNy2peDt7TXIms8djD5U4", + "type": "freedraw", + "x": -199.34246826171875, + "y": 121.49739837646484, + "width": 7.5, + "height": 18.33331298828125, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 2010928690, + "version": 14, + "versionNonce": 1923683182, + "isDeleted": false, + "boundElements": null, + "updated": 1667819373461, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -0.83331298828125 + ], + [ + 0.8333740234375, + -3.33331298828125 + ], + [ + 2.5, + -5.83331298828125 + ], + [ + 5.8333740234375, + -10 + ], + [ + 7.5, + -10 + ], + [ + 7.5, + -5.83331298828125 + ], + [ + 6.66668701171875, + -1.66668701171875 + ], + [ + 5.8333740234375, + 5 + ], + [ + 5.8333740234375, + 8.33331298828125 + ], + [ + 5.8333740234375, + 7.5 + ], + [ + 6.66668701171875, + 7.5 + ], + [ + 6.66668701171875, + 7.5 + ] + ], + "pressures": [ + 0.204681396484375, + 0.3023834228515625, + 0.3087310791015625, + 0.315582275390625, + 0.322906494140625, + 0.336578369140625, + 0.3536834716796875, + 0.3624725341796875, + 0.3678436279296875, + 0.333160400390625, + 0.1172332763671875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 6.66668701171875, + 7.5 + ] + }, + { + "id": "Z550dLkHbPmVf01Qt_6OR", + "type": "freedraw", + "x": 127.82415771484375, + "y": 118.99739837646484, + "width": 17.5, + "height": 62.5, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 917938802, + "version": 20, + "versionNonce": 1441808878, + "isDeleted": false, + "boundElements": null, + "updated": 1667819379315, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.833251953125, + -0.83331298828125 + ], + [ + 1.666748046875, + -3.33331298828125 + ], + [ + 4.166748046875, + -7.5 + ], + [ + 9.166748046875, + -19.166656494140625 + ], + [ + 15.8333740234375, + -35.83331298828125 + ], + [ + 16.666748046875, + -45.83331298828125 + ], + [ + 14.166748046875, + -47.5 + ], + [ + 10, + -46.666656494140625 + ], + [ + 7.5, + -44.166656494140625 + ], + [ + 5, + -38.33331298828125 + ], + [ + 2.5, + -27.5 + ], + [ + 1.666748046875, + -13.33331298828125 + ], + [ + 0.8333740234375, + 1.66668701171875 + ], + [ + 0.8333740234375, + 10 + ], + [ + 1.666748046875, + 15 + ], + [ + 1.666748046875, + 13.33331298828125 + ], + [ + 1.666748046875, + 10.83331298828125 + ], + [ + 1.666748046875, + 10.83331298828125 + ] + ], + "pressures": [ + 0.2916412353515625, + 0.39959716796875, + 0.456756591796875, + 0.4743499755859375, + 0.4787445068359375, + 0.4797210693359375, + 0.4772796630859375, + 0.4782562255859375, + 0.4782562255859375, + 0.4782562255859375, + 0.4816741943359375, + 0.4880218505859375, + 0.4880218505859375, + 0.4880218505859375, + 0.4719085693359375, + 0.39569091796875, + 0.2550048828125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 1.666748046875, + 10.83331298828125 + ] + }, + { + "id": "ZGccDjnG33P8DSD8kZ0m8", + "type": "freedraw", + "x": 115.32415771484375, + "y": 108.99739837646484, + "width": 30, + "height": 3.33331298828125, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1906285554, + "version": 10, + "versionNonce": 1453542702, + "isDeleted": false, + "boundElements": null, + "updated": 1667819379546, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -3.333251953125, + -0.83331298828125 + ], + [ + -2.5, + 0 + ], + [ + 1.666748046875, + 1.66668701171875 + ], + [ + 7.5, + 2.5 + ], + [ + 16.666748046875, + 1.66668701171875 + ], + [ + 22.5, + 0.833343505859375 + ], + [ + 26.666748046875, + 0 + ], + [ + 26.666748046875, + 0 + ] + ], + "pressures": [ + 0.2857818603515625, + 0.4176788330078125, + 0.4264678955078125, + 0.4694671630859375, + 0.4841156005859375, + 0.4850921630859375, + 0.39764404296875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 26.666748046875, + 0 + ] + }, + { + "id": "TUJkGtW0LXvxhFa06rgcZ", + "type": "freedraw", + "x": 167.82415771484375, + "y": 72.33074188232422, + "width": 17.5, + "height": 47.499969482421875, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1374020786, + "version": 13, + "versionNonce": 227751730, + "isDeleted": false, + "boundElements": null, + "updated": 1667819379998, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2.5, + 0.833343505859375 + ], + [ + -5, + 4.166656494140625 + ], + [ + -7.5, + 10 + ], + [ + -13.333251953125, + 23.333343505859375 + ], + [ + -16.6666259765625, + 37.5 + ], + [ + -17.5, + 44.166656494140625 + ], + [ + -15, + 47.499969482421875 + ], + [ + -11.6666259765625, + 46.666656494140625 + ], + [ + -9.1666259765625, + 44.166656494140625 + ], + [ + -7.5, + 42.499969482421875 + ], + [ + -7.5, + 42.499969482421875 + ] + ], + "pressures": [ + 0.3048248291015625, + 0.4250030517578125, + 0.449432373046875, + 0.4709320068359375, + 0.522216796875, + 0.5393218994140625, + 0.5402984619140625, + 0.522705078125, + 0.442108154296875, + 0.2730712890625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -7.5, + 42.499969482421875 + ] + }, + { + "id": "JG9RFwlJ_J-Ov7dZDCuLU", + "type": "freedraw", + "x": 170.32415771484375, + "y": 88.99739837646484, + "width": 13.3333740234375, + "height": 20.83331298828125, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 834964718, + "version": 17, + "versionNonce": 970342126, + "isDeleted": false, + "boundElements": null, + "updated": 1667819380850, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.833251953125, + -0.83331298828125 + ], + [ + -0.833251953125, + 0 + ], + [ + -2.5, + 5 + ], + [ + -2.5, + 7.5 + ], + [ + -0.833251953125, + 7.5 + ], + [ + 1.666748046875, + 6.66668701171875 + ], + [ + 5.8333740234375, + 5.833343505859375 + ], + [ + 8.3333740234375, + 7.5 + ], + [ + 9.166748046875, + 10 + ], + [ + 7.5, + 15 + ], + [ + 5, + 18.333343505859375 + ], + [ + 0.8333740234375, + 20 + ], + [ + -3.333251953125, + 19.16668701171875 + ], + [ + -4.1666259765625, + 17.5 + ], + [ + -4.1666259765625, + 17.5 + ] + ], + "pressures": [ + 0.202728271484375, + 0.4103546142578125, + 0.453826904296875, + 0.457244873046875, + 0.455780029296875, + 0.456268310546875, + 0.457244873046875, + 0.458709716796875, + 0.460174560546875, + 0.462127685546875, + 0.467987060546875, + 0.4719085693359375, + 0.452850341796875, + 0.2984771728515625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -4.1666259765625, + 17.5 + ] + }, + { + "id": "LbTe0mSUYBop3aHCYDtk-", + "type": "freedraw", + "x": 164.49090576171875, + "y": 87.33074188232422, + "width": 20, + "height": 1.666656494140625, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 618917618, + "version": 7, + "versionNonce": 550911026, + "isDeleted": false, + "boundElements": null, + "updated": 1667819381094, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 2.5, + -0.833343505859375 + ], + [ + 9.1666259765625, + -0.833343505859375 + ], + [ + 15, + -1.666656494140625 + ], + [ + 20, + -1.666656494140625 + ], + [ + 20, + -1.666656494140625 + ] + ], + "pressures": [ + 0.333648681640625, + 0.39910888671875, + 0.4171905517578125, + 0.39471435546875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 20, + -1.666656494140625 + ] + }, + { + "id": "Dmuj2ISLqZQ3p43LDII4N", + "type": "freedraw", + "x": 185.32415771484375, + "y": 103.1640853881836, + "width": 2.5, + "height": 14.1666259765625, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 736122862, + "version": 6, + "versionNonce": 462721394, + "isDeleted": false, + "boundElements": null, + "updated": 1667819381361, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2.5, + 8.33331298828125 + ], + [ + -2.5, + 12.5 + ], + [ + -1.6666259765625, + 14.1666259765625 + ], + [ + -1.6666259765625, + 14.1666259765625 + ] + ], + "pressures": [ + 0.315582275390625, + 0.37908935546875, + 0.3600311279296875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -1.6666259765625, + 14.1666259765625 + ] + }, + { + "id": "ZGWem0DgmSAyKCD__Z-yl", + "type": "freedraw", + "x": 193.65753173828125, + "y": 90.6640853881836, + "width": 11.6666259765625, + "height": 22.5, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 46986926, + "version": 26, + "versionNonce": 1069455410, + "isDeleted": false, + "boundElements": null, + "updated": 1667819381958, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.8333740234375, + -0.833343505859375 + ], + [ + 2.5, + -1.66668701171875 + ], + [ + 5.8333740234375, + -0.833343505859375 + ], + [ + 8.3333740234375, + -0.833343505859375 + ], + [ + 9.1666259765625, + 0 + ], + [ + 10, + 0.83331298828125 + ], + [ + 9.1666259765625, + 1.666656494140625 + ], + [ + 6.6666259765625, + 4.166656494140625 + ], + [ + 4.1666259765625, + 5 + ], + [ + 1.6666259765625, + 5.83331298828125 + ], + [ + 1.6666259765625, + 6.666656494140625 + ], + [ + 2.5, + 6.666656494140625 + ], + [ + 5.8333740234375, + 6.666656494140625 + ], + [ + 8.3333740234375, + 6.666656494140625 + ], + [ + 10, + 7.5 + ], + [ + 10.8333740234375, + 9.166656494140625 + ], + [ + 11.6666259765625, + 13.33331298828125 + ], + [ + 10.8333740234375, + 15 + ], + [ + 9.1666259765625, + 18.33331298828125 + ], + [ + 5, + 20.83331298828125 + ], + [ + 1.6666259765625, + 20.83331298828125 + ], + [ + 0.8333740234375, + 19.166656494140625 + ], + [ + 0.8333740234375, + 16.666656494140625 + ], + [ + 0.8333740234375, + 16.666656494140625 + ] + ], + "pressures": [ + 0.333648681640625, + 0.37908935546875, + 0.38787841796875, + 0.39227294921875, + 0.39324951171875, + 0.39373779296875, + 0.39520263671875, + 0.39813232421875, + 0.40155029296875, + 0.4132843017578125, + 0.4298858642578125, + 0.4367218017578125, + 0.4337921142578125, + 0.4347686767578125, + 0.4357452392578125, + 0.4357452392578125, + 0.4367218017578125, + 0.441131591796875, + 0.453826904296875, + 0.4748382568359375, + 0.4821624755859375, + 0.4689788818359375, + 0.37811279296875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 0.8333740234375, + 16.666656494140625 + ] + }, + { + "id": "M-3EHJC-9mVu2B5oGHt4P", + "type": "freedraw", + "x": 211.15753173828125, + "y": 74.83074188232422, + "width": 19.1666259765625, + "height": 50.83331298828125, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 322681838, + "version": 15, + "versionNonce": 162599854, + "isDeleted": false, + "boundElements": null, + "updated": 1667819382349, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -0.833343505859375 + ], + [ + 0.8333740234375, + 0 + ], + [ + 5, + 1.666656494140625 + ], + [ + 9.1666259765625, + 3.333343505859375 + ], + [ + 13.3333740234375, + 8.333343505859375 + ], + [ + 14.1666259765625, + 11.666656494140625 + ], + [ + 13.3333740234375, + 20.833343505859375 + ], + [ + 10.8333740234375, + 27.5 + ], + [ + 5, + 37.5 + ], + [ + 0, + 44.166656494140625 + ], + [ + -4.1666259765625, + 49.166656494140625 + ], + [ + -5, + 49.999969482421875 + ], + [ + -5, + 49.999969482421875 + ] + ], + "pressures": [ + 0.330230712890625, + 0.4225616455078125, + 0.448455810546875, + 0.4806976318359375, + 0.501220703125, + 0.524658203125, + 0.530517578125, + 0.5373687744140625, + 0.5383453369140625, + 0.531005859375, + 0.460174560546875, + 0.2300872802734375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -5, + 49.999969482421875 + ] + }, + { + "id": "xLWMZAIYWqbbkZBgk_QPA", + "type": "freedraw", + "x": 151.99090576171875, + "y": 138.99739837646484, + "width": 85, + "height": 66.6666259765625, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1952302642, + "version": 16, + "versionNonce": 1270875566, + "isDeleted": false, + "boundElements": null, + "updated": 1667819384240, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.8333740234375, + -0.83331298828125 + ], + [ + -1.666748046875, + -0.83331298828125 + ], + [ + -2.5, + -0.83331298828125 + ], + [ + -7.5, + 3.33331298828125 + ], + [ + -11.666748046875, + 5.83331298828125 + ], + [ + -24.166748046875, + 15 + ], + [ + -35, + 23.33331298828125 + ], + [ + -49.166748046875, + 33.33331298828125 + ], + [ + -64.166748046875, + 46.66668701171875 + ], + [ + -80.8333740234375, + 61.66668701171875 + ], + [ + -84.166748046875, + 65 + ], + [ + -85, + 65.83331298828125 + ], + [ + -82.5, + 63.33331298828125 + ], + [ + -82.5, + 63.33331298828125 + ] + ], + "pressures": [ + 0.197357177734375, + 0.3004302978515625, + 0.3678436279296875, + 0.4074249267578125, + 0.440643310546875, + 0.449432373046875, + 0.4709320068359375, + 0.4748382568359375, + 0.4738616943359375, + 0.4743499755859375, + 0.463104248046875, + 0.4279327392578125, + 0.3712615966796875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -82.5, + 63.33331298828125 + ] + }, + { + "id": "Ja47YAsKuiPf2aTrjVixq", + "type": "freedraw", + "x": 188.65753173828125, + "y": 143.1640853881836, + "width": 70, + "height": 56.66668701171875, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1416557618, + "version": 16, + "versionNonce": 977074094, + "isDeleted": false, + "boundElements": null, + "updated": 1667819385067, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -0.8333740234375 + ], + [ + 5.8333740234375, + 1.6666259765625 + ], + [ + 10, + 4.1666259765625 + ], + [ + 17.5, + 10 + ], + [ + 24.1666259765625, + 18.33331298828125 + ], + [ + 34.1666259765625, + 26.6666259765625 + ], + [ + 40.8333740234375, + 32.5 + ], + [ + 52.5, + 40.83331298828125 + ], + [ + 56.6666259765625, + 43.33331298828125 + ], + [ + 61.6666259765625, + 47.5 + ], + [ + 65.8333740234375, + 50.83331298828125 + ], + [ + 69.1666259765625, + 54.1666259765625 + ], + [ + 70, + 55.83331298828125 + ], + [ + 70, + 55.83331298828125 + ] + ], + "pressures": [ + 0.2281341552734375, + 0.2774658203125, + 0.3732147216796875, + 0.4206085205078125, + 0.457733154296875, + 0.4787445068359375, + 0.4943695068359375, + 0.4982757568359375, + 0.501220703125, + 0.501708984375, + 0.501220703125, + 0.4972991943359375, + 0.4220733642578125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 70, + 55.83331298828125 + ] + }, + { + "id": "a1xWBureUHZN2FvUyXtbG", + "type": "freedraw", + "x": 266.86590576171875, + "y": 233.7890853881836, + "width": 18.75, + "height": 73.95835876464844, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1307714098, + "version": 19, + "versionNonce": 900889074, + "isDeleted": false, + "boundElements": null, + "updated": 1667819394821, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.041717529296875, + 1.0416412353515625 + ], + [ + 1.04156494140625, + 1.0416412353515625 + ], + [ + 4.16656494140625, + -2.0833587646484375 + ], + [ + 9.375, + -8.333358764648438 + ], + [ + 13.54156494140625, + -19.791717529296875 + ], + [ + 17.708282470703125, + -35.416717529296875 + ], + [ + 16.66656494140625, + -43.75 + ], + [ + 12.5, + -45.83335876464844 + ], + [ + 9.375, + -45.83335876464844 + ], + [ + 5.208282470703125, + -39.58335876464844 + ], + [ + 3.125, + -29.166717529296875 + ], + [ + 1.04156494140625, + -1.041717529296875 + ], + [ + 0, + 21.875 + ], + [ + 1.04156494140625, + 26.041641235351562 + ], + [ + 1.04156494140625, + 28.125 + ], + [ + 1.04156494140625, + 27.083282470703125 + ], + [ + 1.04156494140625, + 27.083282470703125 + ] + ], + "pressures": [ + 0.199798583984375, + 0.338043212890625, + 0.40447998046875, + 0.447479248046875, + 0.466033935546875, + 0.4699554443359375, + 0.4704437255859375, + 0.466033935546875, + 0.457244873046875, + 0.448944091796875, + 0.449432373046875, + 0.450897216796875, + 0.450897216796875, + 0.4323272705078125, + 0.40496826171875, + 0.2677001953125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 1.04156494140625, + 27.083282470703125 + ] + }, + { + "id": "BQTRerxPP3k5SozX4Ond2", + "type": "freedraw", + "x": 255.407470703125, + "y": 234.83072662353516, + "width": 37.5, + "height": 7.291717529296875, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 272619054, + "version": 9, + "versionNonce": 103042862, + "isDeleted": false, + "boundElements": null, + "updated": 1667819395050, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 1.0416412353515625 + ], + [ + 4.166717529296875, + 2.0833587646484375 + ], + [ + 9.375, + 2.0833587646484375 + ], + [ + 20.83343505859375, + -1.0416412353515625 + ], + [ + 32.291717529296875, + -4.1666412353515625 + ], + [ + 37.5, + -5.2083587646484375 + ], + [ + 37.5, + -5.2083587646484375 + ] + ], + "pressures": [ + 0.2584228515625, + 0.3453826904296875, + 0.38885498046875, + 0.4103546142578125, + 0.4171905517578125, + 0.2652587890625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 37.5, + -5.2083587646484375 + ] + }, + { + "id": "vukHjVhanYnFwpHKinZn4", + "type": "freedraw", + "x": 316.86590576171875, + "y": 197.33072662353516, + "width": 18.75, + "height": 65.625, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 409862834, + "version": 8, + "versionNonce": 495208494, + "isDeleted": false, + "boundElements": null, + "updated": 1667819395449, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.20843505859375, + 1.0416412353515625 + ], + [ + -10.416717529296875, + 8.333358764648438 + ], + [ + -18.75, + 57.29164123535156 + ], + [ + -11.45843505859375, + 65.625 + ], + [ + -7.291717529296875, + 64.58335876464844 + ], + [ + -7.291717529296875, + 64.58335876464844 + ] + ], + "pressures": [ + 0.2427825927734375, + 0.38494873046875, + 0.4318389892578125, + 0.4816741943359375, + 0.3712615966796875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -7.291717529296875, + 64.58335876464844 + ] + }, + { + "id": "UomqptXSs_jmtvjcLgq4F", + "type": "freedraw", + "x": 324.157470703125, + "y": 224.4140853881836, + "width": 28.125, + "height": 26.041641235351562, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 568727986, + "version": 17, + "versionNonce": 2110506930, + "isDeleted": false, + "boundElements": null, + "updated": 1667819396001, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2.083282470703125, + 2.083282470703125 + ], + [ + -2.083282470703125, + 5.208282470703125 + ], + [ + -2.083282470703125, + 7.2916412353515625 + ], + [ + 0, + 7.2916412353515625 + ], + [ + 3.125, + 6.25 + ], + [ + 11.45843505859375, + 3.125 + ], + [ + 17.70843505859375, + 4.1666412353515625 + ], + [ + 19.791717529296875, + 6.25 + ], + [ + 21.875, + 8.333282470703125 + ], + [ + 21.875, + 12.5 + ], + [ + 17.70843505859375, + 18.75 + ], + [ + 9.375, + 25 + ], + [ + 1.041717529296875, + 26.041641235351562 + ], + [ + -6.25, + 19.791641235351562 + ], + [ + -6.25, + 19.791641235351562 + ] + ], + "pressures": [ + 0.2686767578125, + 0.336090087890625, + 0.3507537841796875, + 0.3595428466796875, + 0.3610076904296875, + 0.3644256591796875, + 0.3663787841796875, + 0.3654022216796875, + 0.3678436279296875, + 0.3707733154296875, + 0.38006591796875, + 0.39520263671875, + 0.40106201171875, + 0.3580780029296875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -6.25, + 19.791641235351562 + ] + }, + { + "id": "JXCghcIMNEk34ZKiE6XJa", + "type": "freedraw", + "x": 327.282470703125, + "y": 218.1640853881836, + "width": 25, + "height": 7.291717529296875, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1803240558, + "version": 7, + "versionNonce": 185152302, + "isDeleted": false, + "boundElements": null, + "updated": 1667819396238, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 3.125, + -2.0833587646484375 + ], + [ + 9.375, + -5.2083587646484375 + ], + [ + 17.70843505859375, + -7.291717529296875 + ], + [ + 25, + -6.25 + ], + [ + 25, + -6.25 + ] + ], + "pressures": [ + 0.329742431640625, + 0.4064483642578125, + 0.4113311767578125, + 0.39862060546875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 25, + -6.25 + ] + }, + { + "id": "v0HVOP4SbfqQp40VDxkPd", + "type": "freedraw", + "x": 357.49090576171875, + "y": 251.49736785888672, + "width": 3.125, + "height": 10.416717529296875, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1807310514, + "version": 6, + "versionNonce": 1852086766, + "isDeleted": false, + "boundElements": null, + "updated": 1667819396521, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -3.125, + 7.291717529296875 + ], + [ + -3.125, + 9.375 + ], + [ + -3.125, + 10.416717529296875 + ], + [ + -3.125, + 10.416717529296875 + ] + ], + "pressures": [ + 0.3038482666015625, + 0.3683319091796875, + 0.2520751953125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -3.125, + 10.416717529296875 + ] + }, + { + "id": "Qw4S9XoYgJuOtfafu0KQl", + "type": "freedraw", + "x": 367.907470703125, + "y": 225.45572662353516, + "width": 21.875, + "height": 32.291717529296875, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 188531698, + "version": 20, + "versionNonce": 153987182, + "isDeleted": false, + "boundElements": null, + "updated": 1667819397016, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.04156494140625, + -1.0416412353515625 + ], + [ + 2.08343505859375, + -5.2083587646484375 + ], + [ + 6.25, + -8.333358764648438 + ], + [ + 8.33343505859375, + -8.333358764648438 + ], + [ + 11.45843505859375, + -5.2083587646484375 + ], + [ + 12.5, + 0 + ], + [ + 10.416717529296875, + 6.25 + ], + [ + 8.33343505859375, + 11.458358764648438 + ], + [ + 2.08343505859375, + 17.708358764648438 + ], + [ + -1.04156494140625, + 20.833358764648438 + ], + [ + -2.083282470703125, + 21.875 + ], + [ + 0, + 22.916641235351562 + ], + [ + 2.08343505859375, + 22.916641235351562 + ], + [ + 9.375, + 23.958358764648438 + ], + [ + 12.5, + 22.916641235351562 + ], + [ + 18.75, + 20.833358764648438 + ], + [ + 19.791717529296875, + 19.791641235351562 + ], + [ + 19.791717529296875, + 19.791641235351562 + ] + ], + "pressures": [ + 0.3488006591796875, + 0.4152374267578125, + 0.4313507080078125, + 0.441619873046875, + 0.450897216796875, + 0.462127685546875, + 0.466033935546875, + 0.4699554443359375, + 0.4709320068359375, + 0.4719085693359375, + 0.4743499755859375, + 0.4704437255859375, + 0.4694671630859375, + 0.4689788818359375, + 0.454315185546875, + 0.4152374267578125, + 0.1792755126953125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 19.791717529296875, + 19.791641235351562 + ] + }, + { + "id": "2TA8iaOP-GrvjUQ4XSmej", + "type": "freedraw", + "x": 392.907470703125, + "y": 204.62236785888672, + "width": 20.83343505859375, + "height": 79.16671752929688, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 674356594, + "version": 11, + "versionNonce": 1298085426, + "isDeleted": false, + "boundElements": null, + "updated": 1667819397436, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.041717529296875, + 0 + ], + [ + 4.166717529296875, + 2.0833587646484375 + ], + [ + 9.375, + 7.291717529296875 + ], + [ + 13.541717529296875, + 21.875 + ], + [ + 14.58343505859375, + 35.416717529296875 + ], + [ + 8.33343505859375, + 61.45835876464844 + ], + [ + 2.08343505859375, + 76.04171752929688 + ], + [ + -6.25, + 79.16671752929688 + ], + [ + -6.25, + 79.16671752929688 + ] + ], + "pressures": [ + 0.318023681640625, + 0.3639373779296875, + 0.4108428955078125, + 0.438690185546875, + 0.4787445068359375, + 0.4943695068359375, + 0.500244140625, + 0.4953460693359375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -6.25, + 79.16671752929688 + ] + }, + { + "id": "m0cg5uJZg1buzzONaGWCL", + "type": "freedraw", + "x": 416.24090576171875, + "y": 305.6640853881836, + "width": 83.33343505859375, + "height": 63.54167938232422, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 603717102, + "version": 17, + "versionNonce": 1489809390, + "isDeleted": false, + "boundElements": null, + "updated": 1667819402765, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.041717529296875, + -1.0416793823242188 + ], + [ + -2.08343505859375, + -2.0833587646484375 + ], + [ + 1.04156494140625, + 1.0416412353515625 + ], + [ + 3.125, + 3.125 + ], + [ + 10.41656494140625, + 9.375 + ], + [ + 20.833282470703125, + 15.625 + ], + [ + 34.375, + 22.916641235351562 + ], + [ + 46.875, + 30.20832061767578 + ], + [ + 62.5, + 41.66664123535156 + ], + [ + 69.79156494140625, + 48.95832061767578 + ], + [ + 77.08328247070312, + 57.29164123535156 + ], + [ + 80.20828247070312, + 60.41664123535156 + ], + [ + 81.25, + 61.45832061767578 + ], + [ + 79.16656494140625, + 61.45832061767578 + ], + [ + 79.16656494140625, + 61.45832061767578 + ] + ], + "pressures": [ + 0.1773223876953125, + 0.2818756103515625, + 0.3683319091796875, + 0.4347686767578125, + 0.449920654296875, + 0.4821624755859375, + 0.512451171875, + 0.527099609375, + 0.5324859619140625, + 0.5334625244140625, + 0.5344390869140625, + 0.5368804931640625, + 0.5368804931640625, + 0.504150390625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 79.16656494140625, + 61.45832061767578 + ] + }, + { + "id": "3xVF3O4CMlB8hbCjBazpO", + "type": "freedraw", + "x": 524.5741882324219, + "y": 403.58072662353516, + "width": 20.833282470703125, + "height": 111.45835876464844, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1804144114, + "version": 16, + "versionNonce": 206266862, + "isDeleted": false, + "boundElements": null, + "updated": 1667819403604, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 13.541717529296875, + -8.333320617675781 + ], + [ + 18.75, + -23.95832061767578 + ], + [ + 20.833282470703125, + -39.58332061767578 + ], + [ + 19.791717529296875, + -51.04164123535156 + ], + [ + 17.708282470703125, + -61.45832061767578 + ], + [ + 13.541717529296875, + -65.625 + ], + [ + 10.416717529296875, + -62.5 + ], + [ + 6.25, + -39.58332061767578 + ], + [ + 6.25, + -14.583320617675781 + ], + [ + 6.25, + 6.25 + ], + [ + 7.291717529296875, + 31.25 + ], + [ + 8.333282470703125, + 42.70835876464844 + ], + [ + 9.375, + 45.83335876464844 + ], + [ + 9.375, + 45.83335876464844 + ] + ], + "pressures": [ + 0.217376708984375, + 0.337554931640625, + 0.3546600341796875, + 0.3575897216796875, + 0.3624725341796875, + 0.3741912841796875, + 0.39178466796875, + 0.39227294921875, + 0.39422607421875, + 0.39813232421875, + 0.39862060546875, + 0.39959716796875, + 0.329254150390625, + 0.1592559814453125, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 9.375, + 45.83335876464844 + ] + }, + { + "id": "_InmTmSFjGLdVvBh4W5ON", + "type": "freedraw", + "x": 520.407470703125, + "y": 407.7474060058594, + "width": 41.666717529296875, + "height": 9.375, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 973503474, + "version": 8, + "versionNonce": 1160510190, + "isDeleted": false, + "boundElements": null, + "updated": 1667819403854, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 4.166717529296875, + -1.0416793823242188 + ], + [ + 12.5, + -2.0833206176757812 + ], + [ + 23.95843505859375, + -5.208320617675781 + ], + [ + 36.45843505859375, + -8.333320617675781 + ], + [ + 41.666717529296875, + -9.375 + ], + [ + 41.666717529296875, + -9.375 + ] + ], + "pressures": [ + 0.2652587890625, + 0.39764404296875, + 0.4269561767578125, + 0.4318389892578125, + 0.313140869140625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 41.666717529296875, + -9.375 + ] + }, + { + "id": "amLDas335nic6m2Jey1c0", + "type": "freedraw", + "x": 594.3659057617188, + "y": 348.3724060058594, + "width": 20.83343505859375, + "height": 72.91667938232422, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1876423410, + "version": 12, + "versionNonce": 716861550, + "isDeleted": false, + "boundElements": null, + "updated": 1667819404217, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -6.25, + 3.125 + ], + [ + -7.291717529296875, + 6.25 + ], + [ + -9.375, + 10.416679382324219 + ], + [ + -13.541717529296875, + 23.95832061767578 + ], + [ + -18.75, + 41.66667938232422 + ], + [ + -20.83343505859375, + 54.16667938232422 + ], + [ + -18.75, + 66.66667938232422 + ], + [ + -14.58343505859375, + 71.875 + ], + [ + -9.375, + 72.91667938232422 + ], + [ + -9.375, + 72.91667938232422 + ] + ], + "pressures": [ + 0.3116607666015625, + 0.39373779296875, + 0.4108428955078125, + 0.4250030517578125, + 0.448944091796875, + 0.461639404296875, + 0.466033935546875, + 0.464080810546875, + 0.3732147216796875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -9.375, + 72.91667938232422 + ] + }, + { + "id": "FO6RAadw7VSC_rKZVhlz3", + "type": "freedraw", + "x": 601.657470703125, + "y": 380.6640853881836, + "width": 20.833282470703125, + "height": 28.125, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1219859826, + "version": 18, + "versionNonce": 586032302, + "isDeleted": false, + "boundElements": null, + "updated": 1667819404688, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2.083282470703125, + 2.0833206176757812 + ], + [ + -2.083282470703125, + 5.208320617675781 + ], + [ + -2.083282470703125, + 9.375 + ], + [ + -1.04156494140625, + 11.458320617675781 + ], + [ + 2.08343505859375, + 12.5 + ], + [ + 6.25, + 12.5 + ], + [ + 11.45843505859375, + 11.458320617675781 + ], + [ + 14.58343505859375, + 11.458320617675781 + ], + [ + 16.666717529296875, + 11.458320617675781 + ], + [ + 18.75, + 12.5 + ], + [ + 18.75, + 16.666641235351562 + ], + [ + 15.625, + 21.875 + ], + [ + 10.416717529296875, + 27.08332061767578 + ], + [ + 5.20843505859375, + 28.125 + ], + [ + 0, + 25 + ], + [ + 0, + 25 + ] + ], + "pressures": [ + 0.2979888916015625, + 0.3746795654296875, + 0.38446044921875, + 0.38690185546875, + 0.38543701171875, + 0.38690185546875, + 0.38836669921875, + 0.38885498046875, + 0.39031982421875, + 0.38836669921875, + 0.39080810546875, + 0.40008544921875, + 0.40594482421875, + 0.4074249267578125, + 0.3727264404296875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 0, + 25 + ] + }, + { + "id": "ELlC10xO62ohkMDy_amZB", + "type": "freedraw", + "x": 602.6991882324219, + "y": 374.4140853881836, + "width": 30.208282470703125, + "height": 4.166679382324219, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1710638386, + "version": 8, + "versionNonce": 1240948142, + "isDeleted": false, + "boundElements": null, + "updated": 1667819404921, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 2.083282470703125, + -1.0416793823242188 + ], + [ + 6.25, + -3.125 + ], + [ + 14.583282470703125, + -4.166679382324219 + ], + [ + 21.875, + -4.166679382324219 + ], + [ + 30.208282470703125, + -3.125 + ], + [ + 30.208282470703125, + -3.125 + ] + ], + "pressures": [ + 0.330230712890625, + 0.4113311767578125, + 0.4250030517578125, + 0.4279327392578125, + 0.38104248046875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 30.208282470703125, + -3.125 + ] + }, + { + "id": "D0P-To7V2YDf3EQaWdTMi", + "type": "freedraw", + "x": 629.782470703125, + "y": 400.45572662353516, + "width": 2.08343505859375, + "height": 21.875, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 2046368818, + "version": 5, + "versionNonce": 117520306, + "isDeleted": false, + "boundElements": null, + "updated": 1667819405230, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.041717529296875, + 14.583358764648438 + ], + [ + 2.08343505859375, + 21.875 + ], + [ + 2.08343505859375, + 21.875 + ] + ], + "pressures": [ + 0.2681884765625, + 0.339996337890625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 2.08343505859375, + 21.875 + ] + }, + { + "id": "l2_2IQQjirRPcQ2HK_8la", + "type": "freedraw", + "x": 643.3241882324219, + "y": 396.2890853881836, + "width": 15.625, + "height": 51.04164123535156, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1318376558, + "version": 15, + "versionNonce": 559070254, + "isDeleted": false, + "boundElements": null, + "updated": 1667819405698, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 2.083282470703125, + -5.2083587646484375 + ], + [ + 5.208282470703125, + -10.416679382324219 + ], + [ + 9.375, + -16.66667938232422 + ], + [ + 13.541717529296875, + -22.91667938232422 + ], + [ + 15.625, + -25 + ], + [ + 15.625, + -22.91667938232422 + ], + [ + 14.583282470703125, + -16.66667938232422 + ], + [ + 12.5, + -10.416679382324219 + ], + [ + 10.416717529296875, + 6.25 + ], + [ + 8.333282470703125, + 18.75 + ], + [ + 9.375, + 26.041641235351562 + ], + [ + 10.416717529296875, + 26.041641235351562 + ], + [ + 10.416717529296875, + 26.041641235351562 + ] + ], + "pressures": [ + 0.2344818115234375, + 0.339508056640625, + 0.3546600341796875, + 0.3605194091796875, + 0.3644256591796875, + 0.3683319091796875, + 0.39129638671875, + 0.40155029296875, + 0.4064483642578125, + 0.4123077392578125, + 0.4113311767578125, + 0.327789306640625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 10.416717529296875, + 26.041641235351562 + ] + }, + { + "id": "UX_4VNWngmX28mjfya92P", + "type": "freedraw", + "x": 667.282470703125, + "y": 357.7474060058594, + "width": 23.958282470703125, + "height": 97.91667938232422, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1600710066, + "version": 15, + "versionNonce": 879206898, + "isDeleted": false, + "boundElements": null, + "updated": 1667819406081, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -2.0833206176757812 + ], + [ + 2.08343505859375, + -3.125 + ], + [ + 4.166717529296875, + -3.125 + ], + [ + 7.291717529296875, + -2.0833206176757812 + ], + [ + 12.5, + 2.0833206176757812 + ], + [ + 19.791717529296875, + 14.583320617675781 + ], + [ + 21.875, + 23.95832061767578 + ], + [ + 22.916717529296875, + 36.45832061767578 + ], + [ + 21.875, + 50 + ], + [ + 17.70843505859375, + 63.54167938232422 + ], + [ + 8.33343505859375, + 84.375 + ], + [ + -1.04156494140625, + 94.79167938232422 + ], + [ + -1.04156494140625, + 94.79167938232422 + ] + ], + "pressures": [ + 0.2525634765625, + 0.321929931640625, + 0.3673553466796875, + 0.38787841796875, + 0.4191436767578125, + 0.440643310546875, + 0.4748382568359375, + 0.4933929443359375, + 0.502685546875, + 0.504150390625, + 0.4948577880859375, + 0.4215850830078125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -1.04156494140625, + 94.79167938232422 + ] + }, + { + "id": "-47X8yrvaFU7rCDQ7A4Ka", + "type": "freedraw", + "x": -355.2870076497394, + "y": 263.99741872151696, + "width": 13.888956705729186, + "height": 130.55552164713538, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1624321582, + "version": 7, + "versionNonce": 1649046766, + "isDeleted": false, + "boundElements": null, + "updated": 1667819716095, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 8.333333333333371, + 75 + ], + [ + 13.888956705729186, + 119.44437662760413 + ], + [ + 11.111246744791686, + 130.55552164713538 + ], + [ + 5.555623372395871, + 122.22218831380201 + ], + [ + 5.555623372395871, + 122.22218831380201 + ] + ], + "pressures": [ + 0.3033599853515625, + 0.452362060546875, + 0.455291748046875, + 0.2975006103515625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 5.555623372395871, + 122.22218831380201 + ] + }, + { + "id": "v_DvmvDis2YMa1q5tz3Ib", + "type": "freedraw", + "x": -441.39805094401015, + "y": 272.33075205485034, + "width": 116.66666666666663, + "height": 16.666666666666742, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 360061170, + "version": 6, + "versionNonce": 1580217262, + "isDeleted": false, + "boundElements": null, + "updated": 1667819716318, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 69.44437662760413, + -2.7778116861979925 + ], + [ + 105.55562337239576, + -16.666666666666742 + ], + [ + 116.66666666666663, + -16.666666666666742 + ], + [ + 116.66666666666663, + -16.666666666666742 + ] + ], + "pressures": [ + 0.338043212890625, + 0.5329742431640625, + 0.3561248779296875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 116.66666666666663, + -16.666666666666742 + ] + }, + { + "id": "voWVL1fgBQ7LDeBXQiDE8", + "type": "freedraw", + "x": -271.953674316406, + "y": 291.77512868245446, + "width": 69.44437662760413, + "height": 86.11114501953125, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 48277042, + "version": 6, + "versionNonce": 20277870, + "isDeleted": false, + "boundElements": null, + "updated": 1667819716772, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 30.555623372395758, + 72.2222900390625 + ], + [ + 2.7779134114582575, + -13.88885498046875 + ], + [ + -38.88875325520837, + 63.88895670572913 + ], + [ + -38.88875325520837, + 63.88895670572913 + ] + ], + "pressures": [ + 0.3693084716796875, + 0.5412750244140625, + 0.5588531494140625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -38.88875325520837, + 63.88895670572913 + ] + }, + { + "id": "zX_vqzvieovPY2D-Rxteg", + "type": "freedraw", + "x": -205.28700764973945, + "y": 277.8862737019857, + "width": 86.11104329427081, + "height": 136.11114501953114, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1728002930, + "version": 26, + "versionNonce": 477894574, + "isDeleted": false, + "boundElements": null, + "updated": 1667819717425, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.111043294270814, + 5.555521647135379 + ], + [ + -11.111043294270814, + 22.222188313802008 + ], + [ + 5.555623372395871, + 55.55552164713538 + ], + [ + 16.666666666666686, + 83.33333333333326 + ], + [ + 27.777913411458314, + 102.77781168619788 + ], + [ + 30.555623372395814, + 105.55552164713538 + ], + [ + 25, + 102.77781168619788 + ], + [ + 11.111246744791686, + 83.33333333333326 + ], + [ + -2.7777099609375, + 52.77781168619788 + ], + [ + -11.111043294270814, + 22.222188313802008 + ], + [ + -11.111043294270814, + -2.7778116861978788 + ], + [ + -8.333333333333314, + -11.11114501953125 + ], + [ + 8.333333333333371, + -16.66666666666663 + ], + [ + 30.555623372395814, + -13.88885498046875 + ], + [ + 44.444580078125, + -5.555521647135379 + ], + [ + 58.333333333333314, + 5.555521647135379 + ], + [ + 72.2222900390625, + 36.11114501953125 + ], + [ + 75, + 52.77781168619788 + ], + [ + 66.66666666666663, + 86.11114501953125 + ], + [ + 36.111246744791686, + 111.11114501953114 + ], + [ + 16.666666666666686, + 119.44447835286451 + ], + [ + 2.7779134114583712, + 119.44447835286451 + ], + [ + -2.7777099609375, + 111.11114501953114 + ], + [ + -2.7777099609375, + 111.11114501953114 + ] + ], + "pressures": [ + 0.2945709228515625, + 0.448455810546875, + 0.4875335693359375, + 0.4987640380859375, + 0.501708984375, + 0.502685546875, + 0.503173828125, + 0.501220703125, + 0.458709716796875, + 0.4333038330078125, + 0.4284210205078125, + 0.4347686767578125, + 0.449920654296875, + 0.4743499755859375, + 0.4889984130859375, + 0.4982757568359375, + 0.508056640625, + 0.5378570556640625, + 0.5446929931640625, + 0.5534820556640625, + 0.5544586181640625, + 0.5549468994140625, + 0.503662109375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -2.7777099609375, + 111.11114501953114 + ] + }, + { + "id": "Ui7bQl8qs120ByYOQta5m", + "type": "freedraw", + "x": -271.953674316406, + "y": 261.2196070353191, + "width": 105.555419921875, + "height": 122.2222900390625, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 179634738, + "version": 21, + "versionNonce": 1704807346, + "isDeleted": false, + "boundElements": null, + "updated": 1667819718166, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -16.666666666666742, + 13.88885498046875 + ], + [ + -25, + 30.55552164713538 + ], + [ + -30.555419921875, + 66.66666666666663 + ], + [ + -25, + 94.44447835286451 + ], + [ + -8.333333333333371, + 119.44447835286451 + ], + [ + 8.333333333333258, + 119.44447835286451 + ], + [ + 24.999999999999943, + 111.11114501953114 + ], + [ + 41.66666666666663, + 83.33333333333326 + ], + [ + 41.66666666666663, + 52.77781168619788 + ], + [ + 33.33333333333326, + 22.222188313802008 + ], + [ + 19.444580078124943, + 5.555521647135379 + ], + [ + -11.111043294270871, + -2.7778116861979925 + ], + [ + -41.666666666666686, + 13.88885498046875 + ], + [ + -58.33333333333337, + 41.66666666666663 + ], + [ + -63.88875325520837, + 77.77781168619788 + ], + [ + -52.7777099609375, + 91.66666666666663 + ], + [ + -33.33333333333337, + 94.44447835286451 + ], + [ + -27.7777099609375, + 94.44447835286451 + ], + [ + -27.7777099609375, + 94.44447835286451 + ] + ], + "pressures": [ + 0.2931060791015625, + 0.4201202392578125, + 0.4758148193359375, + 0.525146484375, + 0.5359039306640625, + 0.5373687744140625, + 0.5378570556640625, + 0.5383453369140625, + 0.5451812744140625, + 0.562774658203125, + 0.582305908203125, + 0.592071533203125, + 0.6150360107421875, + 0.63458251953125, + 0.64239501953125, + 0.64385986328125, + 0.5959930419921875, + 0.2633056640625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -27.7777099609375, + 94.44447835286451 + ] + }, + { + "id": "vlg4jdS9QX3neXQMeJlb8", + "type": "freedraw", + "x": -88.62034098307282, + "y": 280.6640853881836, + "width": 86.11104329427081, + "height": 133.33333333333326, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1182007406, + "version": 11, + "versionNonce": 1417673646, + "isDeleted": false, + "boundElements": null, + "updated": 1667819718966, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -13.888753255208314, + 8.333333333333371 + ], + [ + -30.555419921875, + 33.33333333333337 + ], + [ + -27.7777099609375, + 97.22218831380201 + ], + [ + -5.555419921875, + 133.33333333333326 + ], + [ + 36.11124674479163, + 111.11104329427076 + ], + [ + 47.2222900390625, + 55.55552164713538 + ], + [ + 33.333333333333314, + 5.5555216471354925 + ], + [ + -38.888753255208314, + 97.22218831380201 + ], + [ + -38.888753255208314, + 97.22218831380201 + ] + ], + "pressures": [ + 0.2276458740234375, + 0.457733154296875, + 0.5363922119140625, + 0.567169189453125, + 0.572540283203125, + 0.573028564453125, + 0.575469970703125, + 0.592559814453125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -38.888753255208314, + 97.22218831380201 + ] + }, + { + "id": "kVa1c-vVFUoeTBEbzSugA", + "type": "freedraw", + "x": -435.84242757161434, + "y": 230.6640853881836, + "width": 430.5556233723956, + "height": 211.11104329427076, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 810638898, + "version": 31, + "versionNonce": 2052954226, + "isDeleted": false, + "boundElements": null, + "updated": 1667819722070, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.111246744791629, + 19.444376627604242 + ], + [ + -19.444580078124943, + 52.7777099609375 + ], + [ + -16.66666666666663, + 113.88885498046875 + ], + [ + 0, + 180.55552164713538 + ], + [ + 11.111043294270814, + 205.55552164713527 + ], + [ + 19.444376627604186, + 211.11104329427076 + ], + [ + 27.7777099609375, + 205.55552164713527 + ], + [ + 50, + 191.66666666666663 + ], + [ + 88.88875325520831, + 183.33333333333326 + ], + [ + 130.55541992187494, + 188.88885498046875 + ], + [ + 174.99999999999994, + 194.44437662760413 + ], + [ + 236.11104329427076, + 202.7777099609375 + ], + [ + 272.2220865885416, + 202.7777099609375 + ], + [ + 297.2220865885415, + 197.222188313802 + ], + [ + 338.8887532552082, + 194.44437662760413 + ], + [ + 372.2220865885415, + 197.222188313802 + ], + [ + 388.88875325520814, + 197.222188313802 + ], + [ + 397.2220865885415, + 197.222188313802 + ], + [ + 408.33333333333314, + 197.222188313802 + ], + [ + 411.11104329427064, + 197.222188313802 + ], + [ + 411.11104329427064, + 194.44437662760413 + ], + [ + 411.11104329427064, + 188.88885498046875 + ], + [ + 408.33333333333314, + 177.7777099609375 + ], + [ + 402.77770996093733, + 158.33333333333326 + ], + [ + 397.2220865885415, + 125 + ], + [ + 399.99999999999983, + 52.7777099609375 + ], + [ + 397.2220865885415, + 52.7777099609375 + ], + [ + 394.444376627604, + 61.11104329427087 + ], + [ + 394.444376627604, + 61.11104329427087 + ] + ], + "pressures": [ + 0.3023834228515625, + 0.3483123779296875, + 0.4313507080078125, + 0.4826507568359375, + 0.514892578125, + 0.523681640625, + 0.528564453125, + 0.5466461181640625, + 0.567169189453125, + 0.588165283203125, + 0.5950164794921875, + 0.5998992919921875, + 0.6101531982421875, + 0.6125946044921875, + 0.6160125732421875, + 0.62628173828125, + 0.63018798828125, + 0.63165283203125, + 0.63507080078125, + 0.63702392578125, + 0.64044189453125, + 0.63848876953125, + 0.64141845703125, + 0.64239501953125, + 0.64288330078125, + 0.64288330078125, + 0.64141845703125, + 0.329254150390625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 394.444376627604, + 61.11104329427087 + ] + }, + { + "id": "AxyN_sQRKgEqNK4Pace4f", + "type": "freedraw", + "x": -180.17578125, + "y": 131.49739837646484, + "width": 21.66668701171875, + "height": 23.3333740234375, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1120226290, + "version": 26, + "versionNonce": 111602290, + "isDeleted": true, + "boundElements": null, + "updated": 1667819370706, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.83331298828125, + -1.66668701171875 + ], + [ + -1.66668701171875, + -1.66668701171875 + ], + [ + -2.5, + -0.83331298828125 + ], + [ + -5, + 1.66668701171875 + ], + [ + -9.16668701171875, + 6.66668701171875 + ], + [ + -12.5, + 10 + ], + [ + -15.83331298828125, + 13.33331298828125 + ], + [ + -19.16668701171875, + 16.66668701171875 + ], + [ + -20.83331298828125, + 18.33331298828125 + ], + [ + -21.66668701171875, + 18.33331298828125 + ], + [ + -20.83331298828125, + 18.33331298828125 + ], + [ + -17.5, + 18.33331298828125 + ], + [ + -13.33331298828125, + 19.16668701171875 + ], + [ + -10, + 19.16668701171875 + ], + [ + -5, + 20 + ], + [ + -2.5, + 20.83331298828125 + ], + [ + -2.5, + 21.66668701171875 + ], + [ + -2.5, + 21.66668701171875 + ] + ], + "pressures": [ + 0.191986083984375, + 0.337066650390625, + 0.38201904296875, + 0.40350341796875, + 0.4147491455078125, + 0.4289093017578125, + 0.4362335205078125, + 0.440643310546875, + 0.444549560546875, + 0.446014404296875, + 0.444061279296875, + 0.442108154296875, + 0.443084716796875, + 0.445037841796875, + 0.445037841796875, + 0.4230499267578125, + 0.3087310791015625, + 0.13092041015625, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -2.5, + 21.66668701171875 + ] + }, + { + "id": "LNyzkv5M2Ho6PBuJpWc1B", + "type": "freedraw", + "x": -188.50909423828125, + "y": 147.3307113647461, + "width": 4.16668701171875, + "height": 15.8333740234375, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 405824882, + "version": 13, + "versionNonce": 918244078, + "isDeleted": true, + "boundElements": null, + "updated": 1667819370239, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.66668701171875, + 2.5 + ], + [ + -3.3333740234375, + 6.66668701171875 + ], + [ + -4.16668701171875, + 12.5 + ], + [ + -4.16668701171875, + 15 + ], + [ + -3.3333740234375, + 15.8333740234375 + ], + [ + -3.3333740234375, + 15.8333740234375 + ] + ], + "pressures": [ + 0.191497802734375, + 0.326324462890625, + 0.3571014404296875, + 0.3614959716796875, + 0.3082427978515625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -3.3333740234375, + 15.8333740234375 + ] + }, + { + "id": "bV5zy5vTEEhtyl_QT8BVS", + "type": "freedraw", + "x": -176.84246826171875, + "y": 159.8307113647461, + "width": 1.6666259765625, + "height": 10, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 855710834, + "version": 10, + "versionNonce": 80699438, + "isDeleted": true, + "boundElements": null, + "updated": 1667819369942, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.83331298828125, + 3.3333740234375 + ], + [ + -1.6666259765625, + 6.66668701171875 + ], + [ + -1.6666259765625, + 10 + ], + [ + -1.6666259765625, + 10 + ] + ], + "pressures": [ + 0.2491302490234375, + 0.334625244140625, + 0.3473358154296875, + 0.2818756103515625, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -1.6666259765625, + 10 + ] + }, + { + "id": "zidNK8NRRvoTBuU630MXR", + "type": "freedraw", + "x": -171.00909423828125, + "y": 147.3307113647461, + "width": 13.33331298828125, + "height": 25, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 407919026, + "version": 10, + "versionNonce": 1975586482, + "isDeleted": true, + "boundElements": null, + "updated": 1667819369704, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 11.6666259765625, + -12.5 + ], + [ + 13.33331298828125, + -14.1666259765625 + ], + [ + 9.1666259765625, + 3.3333740234375 + ], + [ + 9.1666259765625, + 10.8333740234375 + ], + [ + 9.1666259765625, + 10.8333740234375 + ] + ], + "pressures": [ + 0.2769775390625, + 0.3732147216796875, + 0.3688201904296875, + 0.38153076171875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 9.1666259765625, + 10.8333740234375 + ] + }, + { + "id": "c0ugUqbSxJdl9hQEpYebf", + "type": "freedraw", + "x": -155.17578125, + "y": 153.99739837646484, + "width": 11.66668701171875, + "height": 29.16668701171875, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1783726382, + "version": 18, + "versionNonce": 296885170, + "isDeleted": true, + "boundElements": null, + "updated": 1667819369466, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -1.66668701171875 + ], + [ + 1.66668701171875, + -5 + ], + [ + 4.16668701171875, + -8.33331298828125 + ], + [ + 8.33331298828125, + -14.16668701171875 + ], + [ + 10, + -15.83331298828125 + ], + [ + 10.83331298828125, + -16.66668701171875 + ], + [ + 11.66668701171875, + -15.83331298828125 + ], + [ + 11.66668701171875, + -12.5 + ], + [ + 10.83331298828125, + -6.66668701171875 + ], + [ + 10, + 1.66668701171875 + ], + [ + 9.16668701171875, + 6.66668701171875 + ], + [ + 10, + 10 + ], + [ + 10, + 12.5 + ], + [ + 10, + 12.5 + ] + ], + "pressures": [ + 0.2872467041015625, + 0.328277587890625, + 0.3561248779296875, + 0.3614959716796875, + 0.3707733154296875, + 0.37713623046875, + 0.37957763671875, + 0.40155029296875, + 0.4142608642578125, + 0.4245147705078125, + 0.4342803955078125, + 0.4333038330078125, + 0.40399169921875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 10, + 12.5 + ] + }, + { + "id": "ufvyIHTeuiFP_PbiKGfyY", + "type": "freedraw", + "x": -152.67578125, + "y": 163.99739837646484, + "width": 1.66668701171875, + "height": 10.83331298828125, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1526395694, + "version": 8, + "versionNonce": 814434606, + "isDeleted": true, + "boundElements": null, + "updated": 1667819369256, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.83331298828125, + 2.5 + ], + [ + -1.66668701171875, + 5 + ], + [ + -1.66668701171875, + 10 + ], + [ + -1.66668701171875, + 10.83331298828125 + ], + [ + -1.66668701171875, + 10.83331298828125 + ] + ], + "pressures": [ + 0.1841583251953125, + 0.3444061279296875, + 0.38739013671875, + 0.2931060791015625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -1.66668701171875, + 10.83331298828125 + ] + } + ], + "appState": { + "theme": "light", + "viewBackgroundColor": "#ffffff", + "currentItemStrokeColor": "#000000", + "currentItemBackgroundColor": "transparent", + "currentItemFillStyle": "hachure", + "currentItemStrokeWidth": 1, + "currentItemStrokeStyle": "solid", + "currentItemRoughness": 1, + "currentItemOpacity": 100, + "currentItemFontFamily": 1, + "currentItemFontSize": 20, + "currentItemTextAlign": "left", + "currentItemStrokeSharpness": "sharp", + "currentItemStartArrowhead": null, + "currentItemEndArrowhead": "arrow", + "currentItemLinearStrokeSharpness": "round", + "gridSize": null, + "colorPalette": {} + }, + "files": {} +} +``` +%% \ No newline at end of file diff --git a/!Załączniki/20221107120342 2022-11-07 12.15.53.excalidraw.md b/!Załączniki/20221107120342 2022-11-07 12.15.53.excalidraw.md new file mode 100644 index 0000000..4c45548 --- /dev/null +++ b/!Załączniki/20221107120342 2022-11-07 12.15.53.excalidraw.md @@ -0,0 +1,12360 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +%% +# Drawing +```compressed-json +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 + +MlBfCzJRnwxPgaMRXwzV4bJVclYfCS8wL7XfhAPRM7HsZ1Oz+vAXAbaiSnBZlb73 + +ERWzsz8JqPJztCENug+A8tqxo/Zk5vOyvgXzsmQFRgp4VAuzw6YLtMpSj0cLsau0 + +04KLs38L0IUGc4uzIQKiZsliS7LQd6iFS7NJVOJnqlTLtqJmy7K9k5EDy7Qgc3x3 + +IHDqVRJl6lH+hyu3M1G8d9NSfHKrtgr0u7aaVw9Xy2XSYFpQMmDrt1TzSQfrt0CN + +MmPg9DpWlkA6URuxYI46U2CIm7MbtWkEpkO7tpkDm7fpAxu1W7c6copmEI07sNuy + +QwupBtu1r9OpA9uwYIw7sGCOu7K7tIZUBlHJAFCLG7JQiyCPunQKZfhnIBVwhnuw + +RQWgE3uwkQq59AoO8cW2YrviiYcoRAOD15GYBSQBxNIUAAbB+sZgBWgHibeExLeS + +w5GYBVGCT6KbClH09PKxDYAJ9PKygpsHOMTCIL8jnRRSAfIB2EUohzME2w22d5ZW + +Z7P6Ygjz7IboQmjE57CNCOoN3fCgCor33reJdNgJt/JJcrsPcfI2E8zWtla/kjMF + +l7PBDb30dlEmZFe1dlH+VJPiIggq5vZQnBF2Du2UkrJ7Ci80zvd0NCcGz4IY8Tey + ++w9jRI5S6vKuwre2xmeOVbew7nR3s47FlmcUccbTd7dfC7l2i+Bc1FlHzldD1Qbw + +KkZechdkD7SuUuXWrlBYFbKEkrQ88eIWxHWHUbZhj7f69hKnj7frBE+2PVScRU+w + +Dmd9pbizQVcb8s+wjmJoFQHWT7U3Y85kXlR0cc2DPwi6g7iKr7deVa+y3lJF0m+y + +2I6RpW+35HdvsuqBWIhgJF63KfTxBecB77PucESLvlC5dC8GH7ePYx+0hIgdhJ+z + +1wN2U4PxFTWfst+yAVRfs0SMflFft75hpmG8YgVzb5TftIQOv7Dfsd+yQVRkjrs3 + +P7KDEr5lX7CdlT+yv7PPsB2Ev7DkjIsOr/YlCK9kTgsRkqFRf7evY6FR8VD/tbAK + +/7SBYnX0MxP/t1PXSlGQYhjV4VCfMahD9fCxsQMJpQw6dp5GLXSRVDbyo4Gi8pQW + +XHITYJUMwIg/YcBxC2QThtFUEIyTguFn4IRb4+FkK2XhYyxzdImgdJLy04aRZvpy + +YHRzUYuycVdQdo6FpnPGc0uDb1TxUUZxr1fgc6x1H1SxZIiEYSNA4kyLlxRxYCIH + +iIUMiSEBkHfJV0iHkHQcdC6HyIFQdbFjUHDGdNB1RnTpUdBzCVNoholmsHIwcYZy + +aWUwdRxzeIe4hLB0aVLMj6kHbI2wcmyOKVPwcTiC7I4pVXB37HPTZAhyGVHwcRlS + +8HR4hxyMmVQFQJxyeuX1FO4PloUIdj2RWVSZZUDyawkwiAoJ5wlkUdwNkQ5IQvzm + +0w5eClEJEBYZgD4EkYNIAEACicOwUduGb0IIAUtSFQLoAigGZAd/JfCKgAjWdhML + +2Q0TCQsEo0I3CGUDDQ5bEyzCiI+C1ZNDiI2M8Qjj5HcuJUVl1/Fd9CyBriA1Q9dF + +jjUgCVgLN/TM8/4NjQgBCVYPzPMJDs4y2jZsDo8IbEUSDFyFjwie8th0GImFluVX + +8DPlZysCdWQ4cE1WOHJEdwiJeoc4dTPi8wrckqugVWOVVlVg4yJD1DViRHELoqRy + +5HUHw9Vg4yH4cJNAbNQ1VWp1UnE1VkKHY9FtUQR1zVfihrVUUoW1Uz4m3nVuU4R1 + +P3EJdNj2RHKuVURwkhRY8gXQDVb8hTiLDVXEdDVUCNdfdWKLFVEkcAqBWXGdpKR1 + +UnFNV/zQpHOkc7KO5HbNUJ5xxAaaDnzBeI7kdi1UaoS2ZG51hXN9Zg/zCoIUcq1U + +tmBtVJrjfWTxCh5mlHaahfrwhHN9ZFRwOQoVZa5yFSVUd81j2XYFYL5zVHbUdhSM + +PVU0dMSNRwI0cySPNHadUXRwtHGEirRytTB0cY5jtHZ+U6qN1Hc9VnRw3VV0czRx + +fvTv5anxhvF2sOwlaTP0dfp3VSWDY1TjyEBDZJQP1aX9UUsI9SEf8GF24XPXpdx3 + +w2YrCkxzChPC87dUPQ0FRQ/UzHWjZUNQz9XMcGBzC7QHMACLC7Ysdk13EIL0jJOA + +5FQTYLqJrHeGcoZwH1STYJCCVPWxYWxzTIwJZ2xxY1bpYux1uoqqUqyIyWAcdRxw + +E1IzYAaJE1OciR6CZvJccJNXi2WTUUMK+QS0i3NjXHUrsdNXU1B8cNxzkFDSCikF + +01OTcRJkeQVQiYthfoS/9VECOIRyNLxwIInLZSaIi2dLYUaLnoIgiItgkvV8dOpR + +tIqqVPx2TI23RyCJLkRNdFMQAnc59C61yteVCtwJX1dLh7y0mCVTh6ty6wl8sZgA + +WKM7JmAGIAC4BJACngFwBSQFiAZkADBhxAZvRTvS6tUxDXTwfzPwiZsLTvObCG7i + +RQKmBMCAMddfAUeFvgbqAgKPDQECjn4NK3bADxYM4ndHduJ1SBA38v7EiYY7DUKM + +Mwj5C8zyYRB9dTMMZfCvlZJx7PMDMbumXvC68Kn2akbBt3sJWzVSdjtVA7EfCuLm + +z2HgsUO2u1G7DOXCvuMB5BX3woxGBrJzjw2ycN7yzorY5HJwLorudAdSzw7wxS6M + +TwyYF7owh1Q48W0IcgAKd8O0HvOuilsClfeBttdgSnEXVIpwRHaKdq6L8nbegNXg + +n5M/CJ+VgbPHVodWBQvqscpz7omV9qfFynIqdGcBKndZkypybmJD9PeAXoofsXMJ + +FTJei12BXo9oZmp2bosMwpA3anWXUGIMFI4+ijaSJQ+ODxSNJQvndX2Dww0ac2cK + +GpCUDOGxmnPMNYOGN1ThcrdCWnCgEVpzitBlDAPElvXsNHdSdvIBBdpyaDd3VyD3 + +o4L3UPp154DYxuLwunEHNJL0P2UPUT9m0I8/Yv6FjXMOh3pzj1BTgE9TDoJPV9qK + +hnVPUCaNs4IhjgCMBnf/YWBxDIsGdC9VzImA4RNjL1G6iy9URnV6jbOBjI6jV0Z3 + +SVDhicZyjI7hi+NT4HImcBByYOMvV7qNEHIfVe9WpnFxV2BzpnOfYGZxqdDrhUYH + +n1HrgucI+7TzcJBmKAts4aghWCImCV4POVSWcV0g4AHeDCQHicSQBdDhGaXbJQvx + +cAKUQ+MIhfe0Dxf0dA98iHUM/IjO8JjANwjhAeQD/I9bxYmFCQC3MYmiYIRsECsw + +Uw6d8lMPtw++lbDTuQ9UZr50jjGCCmCCdAQ60uewiPJrdsiP3ff+D8iOTAwoig8J + +AQh38ULmvrdfCd6IMlNDNI5wffaOcjYPoNI/pGDQTnaoYk5y07Dg1zxh4g2zsBjn + +4NAY9F0ITzAudloIO3UTJyGRmORD1K5xrnaucjoLWOSQ0G5yUuJ+Un7zuXekiWgX + +0NBztO5zLcYqiDIF7naqj+5xrJSw0UBGsNUwowmOewvOiy4FuXQ0pJzXQsdw1FiM + +8NUecl51yoqc1cI0CNQfCS6KCgTed4TkiNDYiYolmY9KRD53XwpUpUdQuYstxT52 + +eY8+dnKPgEL5iCVw53V+9RSMvo3v5r6LYeF+cOUMtACo00ghiRXpFeTjk9N/snrg + +1dfkCqEOAXNVkqcPQTcBdMEz6NaBcjINgXGC8rfSLTRBdt/w3/LuDFyLAHDBcG03 + +4XGepL0IDOXUiB4PoXBYQiFxnqZhdhhF4XFljB4LWNWljDjSSA0hduWK4XB4Q6WN + +5Yo4RpSWd3D+i0zkYXcM5xWK5YjyC3hEpY0tM1/wQXLyCRF1n/PRsSyiZwpt4AnQ + +ufZUDTCO3I2zoRkNuCckR4GBo6PXkKABmAKYB7rEWKYKBiAHIiKeBChyHbTAB4nC + +NJI4prGIx7WxiLEOS3XZDAiM/AjUxd7TmCGdwTcI7xZ8R3EAHoUClzYBTZQMCX4I + +1/EMDMV2YsUU19MhriVnof2DiYjIjkKPIA5CDPaL9wjCjQkKKI098QO1d/LNDMPx + +Ggidlsl3pdbMD8mMl7fJcsly6rEF07TSLmB01MMDx1KpdBU1qXAdD5oMjgwvDrYP + +clEyA8IOO6VpcyKOUA8p8De1wlEqAulw4qSM13sM6Iztjbi3UA7vCJ7BCYNP8lMD + +kuYZckENGXWSMR2UmXSXtoNxwZIs1VzFt7aa8tLiOXJY4zMDcogo5ZZnWXfU1Nlx + +xXbZcZJF2XNs0jMA7NZFcSJV8uSFdmlHOXPEj8bQ6BYc16/kCuW5dPzV2YledpzQ + +PYliFArneXAFdlzUyub5dL2OkhXK4LDG3NCedy5kw/A81mpDBXCq4IVxZ9WqRoVw + +eY6rB4VwfYxFcrTQRXZqQerlNmdFdKSOAxIldsV34kBaRfzSAtb5iprmI4hZjOqI + +tpLEC0cK3QrztaV1wY1fAGV2DAfa5YZBZXYBiUoCdoPZNFmEhkblchM3QPYso8LW + +LIhJFhV3sjNNtxqJVaCi1JVyaCInDckVlXOhDHXzoQqG4enyyyFTNILwdSBnCp/3 + +MgoAd7pkVYvVc20ztOcljOshNXEm5zV3sgud4rVwAw6lCjG0gwoTcDXU9tez1/ZD + +QvLm40MP9kFmcg5ArXX8JOYystQNcbLRcbPhJ/X1cbRC93ZEjXPOQWaP9kDBja5H + +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 + +081u9k3ObUrYDjPIe89wzg6MXMsPDEOx7Eqcyo8JMsxtgtoKUs3oTfsVc077DUJU + +ro1zC08OJ4yTRM8Mj845cqXOhOdKSqDDw7YKdi8OI7Wn1rLPygWSpKOzZdWvDi7P + +rw+dzy2F4lajt2aRbw7lSl+Sbw4PhiHMHE1SyRIBnYywpeO18k2SUMjJYc+GADNM + +2LUTs7xnHw5fDNjx4FUwpZOyU7PvzF8PXw7jRJOy07NfDSHM3w9fC7YDEAnfCjO1 + +vvafDYEMc844CLOzeOKzsvbMf06/DhhNvwmT56nJebGuyNrjgmV/CxFXaw/qoAu3 + +Jvb/CMpWAUhlR/8LD1IAiAZ1YHGLh4uxZAqpYoCIrI8YhYCMk4uqUxHkQIziZmpX + +i2fZBCNR01QrsybL0QErt4B2kmPAiSaNgtKrtRpSDIthAJpT8QdAimu1fHSgjgAo + +smRJBOu3Olegixu1wC7aVRuwIC9gjJuyimHaVtpWm7V8cLpXm7IQilu0ZoxbtZkD + +oCrKYJCJICxZBpCL4IvZA0CLG7dQiIZTC2SgLNCOOQC7sju3iQfgLEArZopBhdCI + +wkzL5aphe7IwjlrFAsw+z7WmqYSZEFiAv2LUTqMPVQzAA+UCVzIYAeRGFIY7IYAG + +aAZgAHrH5ICgA5mhastjS2rM4005yI+JuM/CyZuO6eFiAfWOHfP8CjZ3R6dy83LJ + +DKN09dvJDcmByKwQVlNpkZNNZ7KAts5H19UEz43MKExNzrvIM827yUnI3dW7jQ6O + +kjKXtV3Mt4SojNj3l7b3Y6iPX0okjGiM7mTXtWiO17dojdeyDlHoiQzS/0kqB3Sz + +N7UiQLezwkMYi8zQmIjoE7ewaEyWZ3uid7Zdy5iJt4BdpKrgcUpYi5KM97WBko+w + +LEonjUsHaCvNxy5SD7KuUQ+zNmcPtiZkj7ZuU3AwI7buUE+2C+JqjK+x9mB4jB5S + +eI9kcMWjeIyeUPiKBI74iPiOL7QHAy+32C5iVs5lBIpoEG+yr7CEiTmJb7anBj2M + +LGDvtQ9i77FEibZmvlP5j0SP77TDjUMGxI/uZcSNuCifsDcG/laeZ07IHYUkj9uM + +5In3gKSPo4qkj15mHci/taSJGCzdp2SN5M5kjla2PmXfsUQor7NEL/uW5ImkioFW + +wVP4i89lpI/YL9/LMA2LyT4ylIwRzRp1lI9/s4KBBEqHQlSLU41Uj1WnVIz6s0rC + +1Ih3c8F3l6CDzoOiBEiK1SuImhRBS9oQoWW6SM/ThoujplXOdIu0jgCPwHJ0iA6G + +IHFgLRFjIHMmz0AqoHcQgfSOj1fBiAyPsVBUzADioYzxVwyMJnAmduB3hY/RYBGP + +jI7sd0iDEHWLjrQtTIyJUMyPsWdJUcyI/81+lWHAUHdJVlB0pnRTZSyKyVaogclQ + +OIX6jclUKVKQdYlilNBsj6iDsHZsi+yIuIIciGlWcHXsieyKqVacj4wtyWQciByO + +HIgZVowsnIjpZWyOTCvML/B1nI0cjjwmCHQUllyOs2VcjIh3XIkLU5UPD0nDTHoQ + +xHfQUYMkrKNQLOvIkMq+yigBlQEbZmQFwAf0BOSEkYdkQKAFn9IxCNaI4061D5bL + +E8xWy1fJ1w3+y2MESgXsJfEAkQU3DDIFaHDwK1HC8C4Nz6zN+MhIjwnPb0gYcF+L + +xVQGYYdCSMMIKwrzfbEFyS+LBcmIKIXPGbBxNcHKWHX3yVh2LApSc/rLWg2rp4UO + +VknlZKKN5VA4d+VToorl0ThxD8vPBOVQuHMSjMxOOYDiiOMlioj5hHhyK6Z4c+KL + +eHPChhKOQoUSiLVj+HBxSjVUweaSirVWBHTyilKMqkFSiXVhOHeEdLhy0olhydKL + +2IvSjfr3hCgKQsRyDVYL57rOsogkdrhxso78gM533lNtYHKNIisdjgqN6oDKgM1R + +I41agmRwXlTyiSqAzcLYK81X8o6qhAqNEimvzuqA3VEUc3uSiom+cZ2mgi+rBP2J + +iokwMkqN6oFKjjzXzWdKi88EyottZsqMiYtNVpmKFSVBUviLfWVdUh5kegN9j5Qx + +sij5gj1ghChqjRRzdHVyLXU0HWcZi0qAdoztUbR35IyELK3DPWU4LT1laooVZ2qP + +LLWODB5Ix8nhyVdPr/AajiGO3wAZC4NlGoy9zz2XEc5XEZqI4XSVjZbgBEt8IlqJ + +bhFajGb2/kkP1GHAAUrMcdqPo4PajbFTv81hYTqI+nVrtyx0uo48crCEYY0mchGO + +o1RscMc2eonIR5Nmo1X0LOx1rob6jKyN7HWhj6iH+oycdhxw4HNhBTNlE1ScdIaJ + +k1BaKZxwXHGGiTNm+k/LZ3NhU1bcdNxypo1zUFqI3HG5AsaJ01XgL8tki2Qajzxw + +tUwaVYAuvHa6Kf6EpoggFEAvgCvUKXxw2i0AKitmZolhj79lQYwGCk31AfLmj+kU + +DM2ulpnOng8wicgH5w9YxNTD15BIB+SGYAEIBrWT/qCf1mgGJkgmSd0CngS4B4tx + +OcsX8bAvzM24z7Aow+fwgbnIkwt1Da9IRfLeg1wp4QZvTuZPKYVB4fnP+9GtS4HG + +GJU8LdMMu8yILEnOiC9BzuLK0093y+LLM8ufS2hNTQvd0y1QSCwjdWumh43xSseM + +FTJHiqnLuwi68dLJr49PCMELoDXTSLJ2Loj9Ac6LD84WA7J1ViyLB9v21i4rAXJz + +1ivKlrLPg47qs09j9WRHUzYobo4Kcm6PUAkKc4LDCnF/SIp0z/TuiZ1NCMi/obYs + +usoejR6Nsky6yx6Lr8ieiBTKno5WEp6Lno0+I16P3Ef2THsI51cLTV6PVfOXBp3M + +3ouOLt6Jji3ei3YT7oySij7nj2DqcK/JHYbOLz6IZcsUj93JHks8zb6Lr2e+j2fK + +b2d0y6BMt3YupK4RqQk3V5bhBDYfVLdVWnIXiyVBKivVR1eOYcUBjPbXAY1LiCQB + +GNaMNN9k8SbfZnSMunRBibpwQC7BhvorDodBi433P2LBiT9kXi8/ZtQtz1UhiAZ3 + +Xi3PU/9is4b6cn/NS4GhiP/OE2UvVi9TaivzhZNGr1YvU2GPJncrhOGLEY3hjiwo + +71C0L+GJNCwRj6x1fihMjRGIpnMGcRGMq4I0LXOCn1Q9D5GO9XJRivVNWM1Rjz8n + +4iueDcCGokpggBxUaAfEB2gBNYo2N+SFzxS7TjYBMCvlBsAEAUVxzS9LdcqTzh5h + +CgSGBtfIhiM2iZvHy3Q3zwGADA74ytwtDc2Z5pNLqYEk5R5nwrXfAAJ0d8ygDor3 + +MU2ILhzN2AhIKh3LKI3dTSdIKYt+so52LQmOcyIz/fcpiAn0TnVg1qmJyTNOci83 + +Yit8LApO0wHOcmmLIbUSNWmKUS70UOmOOLLpjTex6Yo6C+mOWEgyLVDXewjY5J8O + +GYlucaOK34SZiofJaBIw17IpaBeZjrEuvMAedcd3SkVZiTaXWY9SigLDv4bZip50 + +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 + +PygaEj8qNvWBSdb1FqvW95ss03SWrkfwODOBS8FIWheWq9N0Vqq29mKoM3VbKmw1 + +IUvYMXb2seN29aww1UQTK4hz9U6QZtCBcEVyrg1LZLSqAO0VIAaQFmAAHOaIAEAC + +L3ZIBTgEwAGYAxuOhqUcLC9K1owot5vLccjFKNfJDwCCBiErPoM2jwaHISzorKEq + +QKzX8dFLRtKtS/mlFFOwh3ICF88FSIgsSYxtSJZKR0zTTLFNNE+YrkqszotxT7FL + +iSpUMR70Lq1UNx70LcjWFp7zLqqLS5YTzqhzz1tWEAgJSojI+4rWLQlNrA5YTyOz + +TsyJSOI2iU8DM2/LiUkuqyNEnKjnw0lOSUuZkt/JHqwLTxypxcqeqIvLXQrQqwDN + +ii1XUClMThIpS11G60y0AEwzKUlCrGP2dMgMyBLHzhB1SCdAXAowtGlP7A1VjEHy + +A1N9y64Ry80sNCtMwfWZM+lP/kvB9lspVUIZT9Eld09+SFVFV47aEKH2sSKh9TpL + +7DcFi0yjbLAB8DaqCJeIdIOScvClML7NUXPRgGW16xQoBJAHwAHgBXYhCAKYAeuL + +0YT/K7Kuhy8AqL4ID4QOrKyuDq2vT8bFXCzyqKYu8qtTzM+O0U3mSRRwd4Ohp4EH + +JJONzbMvsfQJCm1MpyozyBypcy0zyJew0lbqrzbDrJBaq4pwxU0+ISIyERKiNCI3 + +xUsJ9CVJ/rSJ96+OifSOy6Iyc0z91I/itgpJ91qvjLba9W8K0RTJ9mVOyfVlTBGo + +7gdlTHwvWgnWC8XPrqkHj/fJLzDYsDzM0K3dyF6qLi08yhpwlUn8IUjGlUxpLZxM + ++iBVToWPpCpwqVVN3StVThnyM46rTxnxbyImi+tI/sfVSkxUNUtyN+nOIpbCraZH + +NU8Jr+P3Ugp0yGH3Xqr+h7VO6c5ihlgmkc/xoWQp6RJpKAYoa8y/LyPMehCBqQmw + +s4HeQJkKTKiQyTSQy1C4AhUEaAHQB+SB24IQAMOTAUMUQXAC/ARWdpvMhTYSTJwp + +dcksrcGrhfEdYoCoRymAqXF3GseArDMo3C6hKmyu3CisFKquqYPRSJo1FFfehmoS + +Ya5mLScvq/KKrciPOw2YqJm2qE9ipZYqF01sQwsvf0vtSXuPUnMpMcM38ygrKbNM + +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 + +Km8+0w5M23EQNo5LJBgyLtXEmq+VMo5pmqs/EU5PmqpSzmj26rZaqDr3UDEIzF7t + +VgTaqbeCLkxP6S5L2qsuTE/oevdiEq5OeYmuScpDrkvG6G5JeqrwN7qrbk55jnqt + +ikLwNu5MCDOsDPqttESG9OXuhvByzPAdxAzHDPTtYJPpaU6lVUudwycO4taGqHIR + +OWvAF4atd9OETRrFf+naSKbwom9GqQmqPkrGrQwZxqgVQ8avk3ClQL5IJqq+Syau + +JqloNcuqg8Vm8n5Iw8DT6GatGDZ+TGaq/kuS6f5IRQN6Tqw3Zq/3d5g25qgPctPr + +5q1W81gx0+qWrr9ri62WqxaobBiWq6wdrBihbLHhfquPwrg1uDVWqTb3yBpiq+wc + +ttfV6Hb01qh3ERwcs8chT+UODuokhOsNVm3axNsD9oJMDZgcUGImSEAAkpH6wEEr + +5QAelskm6xBt8hgGb0YRS9ge66sCsyfrAKxw60bCnoQu7XDpau9u55cEF6Jn7igI + +zeloa2fraG7BEq7z45IFTHkPdwaHRlCDoBmI75zpJwP4GJhr7vE5q7FJAuzY7g4v + +Ii1xSJ7wrqyiioIcLclWLfFPMa/xStyqwEcF63sBbqhzzXRqEBuPrR/L4ghxT/31 + +WZB2F+6qN+wer/mqbAo/oSgunKj67HxrIhj5rhAenqjJTiTvb6hmanOtke3R1l6q + +Hi5AhilLThTerDfG3q76RKlJqQyCpkOidM8T6bdzgfIziYOFd8VpTxlpQfaxsb6v + +QfO+r6bwfq9uEn6vrB+i8CH12hbaERlJV4yqL6HFNeooHplIAauZSgGrSa0BrRgd + +SK6cGEfukGXzd4rD15GAAJthCAcYAKRlyHLRhJACmAVrqgq3icfYoy90PB/prOrI + +Umhw70AfW9Wy4sAbcO1q6dqDhVGL67gcpSh4H/lICqhGo/w2TPEAh2HmS+hJjUvq + +Y6kX6AIcmu++aedp4azx8mCwDYQiC/HxEagJ8xGqxUiRq/vL2KrUaiVKP6ElTU2r + +JUxRq82uUaqlS9RtAm2lS7upYuuvqOIx0ao+8WVL1gtlTc+rtG5s9gFpXvH2CBOo + +FUncbIKstB7qjrQYeg8N5nGurCxUyYgh0jaFi5VM8aqFjIkR8ah9LH1KxkdVTTSp + +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 + +ah6aDY5svxu67FNsEqE+63i0esl/HXaleszaDDxqvxk2zTgWoZKQGll3/xu66BNq + +gkU6DAJsdx4Can5uDaiAmI7Fx5KPG5odhsk+N4bIiqf/k/EHkcuhCofsCEE1HfjT + +Qm0DzjVu0ZPGz/fBwmjLi/vptWgiav4Ahg6mzeXK4+w9wKbPImhGD2qhom7Lbz/L + +RghiaMYLZs/ZGlZrVAj17/VL+EPohYLJowngBJGHicfkh8QB24doBTlLLUeAAqwG + +lIegB2gFUYaIBzAuMQtHbPav8h72qAvqOB9RHZS018xKBxccDJUxB9vVkwzxdFOF + +lx2qDzailg6jrAOEyjWTGLJpnO7u6/wYnhzXHVMZHR2eHIGS1gp+sPbINFOLbK3I + +8m32yjYJ9LHyb19KDsltblaitgsOy8gqP6B2CwpvbqiKb26sMx17qYpulfT2CEpq + +ySp+73JSzsoxFTronsDKbPseAR8Gyw4IL8197S7MZBm8bIouRw+eqyTs4uxX1ypp + +Pc5dxmyyjhm1SQGtqm5bSuy3nyvAmUJvZwmVTJaB6misoOpprKdnr+ibam9G5T+q + +EeJ1HhWRO+gVkhppFJcaa+etJYxIQEMd6EFeoEgImM1DGHjFRYiBczyzWml17E4b + +ASuH6SQi69HYJxaDBUzOHzlW2qKeBmAAbfLQ84ABDvHgAWREfIn74r4QlzKfGOMe + ++WPsxmvG0R5FR+YJJ26XG9iFbhuZqRMY7h69sQZrQK4bV7ECnoB/LKYZhm/tHj8b + +cJ7L6PCZ1x0JHUZtpe4loMZs2LLGaivvFh3Fzx6rxmzzDkELqO2brMpIPU6SNxhP + +/h3+HiSYIQnzaaSZ97eLHUCZ9KfhyNKyjeDmaWjNEclf4eZqMrFra72UFm9T1hZq + +GcsWagxsKad9lUvPRiGWa/2TlmwDl3K16xn1TTSnDMp1pjcKKCPoalwYaAGR8GEH + +oAbABjgFSLc08duEY0jvRQexUR94nSRp3FTSRuMYi+9bG30hKg8wnV8ZZ+zmTnwf + +0mtSK5usqrL2bzEcFUTiwlkF/B9nbB0cAhlc6xUu6rfXHL7jahmAmSMW+4hUbH8Y + +Tm83G0k2Tm+54k2rejdOb5q2yQkl6jxuqcnOaZ3JqWwoyfqpqJ7l7UFtUjY+xS5r + +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 + +r40rL+pd3nCrK5PbOUfaWOXul98/39o9ZzxAYOHk43W18meNri1EPY0mulinoesq + +SDpkAHpale0L2CuKYm16WNfbZvT6WOCG+lslRWas0+/jWT3gnZ6lRqdfF1+BSVss + +IfNbLmLaceNAWNeImUrXjiFtDrHX2rXqOyuZHUZaxl9GW7XsUl0zx+C+DT8pW/tv + +AaqB36wWUEcJgVSfgdncoYeyqADYGPIaEABAB0nEsFS1z1BkY07L2HY/Wep6bCk8 + +0tvN2Sk788BH2u88qT6a0fKEF6aAa0IGjtoOPrRebRpwZc3qCq4q0NUhD0OOO/cJ + +L9lt3as79J3A3pfnpy45WlZZbe/Yq27c2/CbcHcq1l4vW+td/e3wPw5M9l4Y3OA0 + +1ly96KxbFy097CCU/49OX93eDbe2XH3v094NtnZbp2V2WABOmNyXK4i4rnb2Ww5e + +GqrzQ9cv/tGOXUi+MqVB0DZeNyk961OdH4jOWgdzqLxgNf7USLxOXXcuTljIvU5d + +h3H2Xv+NIGv/if3t7e0WZ85YA+thmZ3fYddxKS7c7t8D7Cdyrlzz5Y8pE68MPC6N + +2qme2fJFbl5YuIpEZ3Uu2ftX2Lzu3yU8Hlgj6bPfRiMvKsuTHlgW6p5bpTxgSr5Z + +cd2Xc55fo+g1WB8vFVndb2PpX69x315c+LrvLlVe4+2+XNPwE+o+XR8pLNvt5JVY + +YErDDn6EeLumJAS4Lqe+WF8u+dpfLT/sU+53OODxU+wp1ENZGDJPOear3ygWqawf + +p1owSMdZuMUBX7BPtp8636eGe9vcjr6FGeDrz5C8nSBAAWRGwAP59nDaWaVRhBHz + +STqsA0gGLuM6oRwq9ttF380+h92wLYfeLTodJAWc0tH4mdKfLMsTSECr5ofJ3fNd + +PJ0GbPwf6QX2RoxHKz7tOPdckj6rPdA7ZNl8gnAYcUkgrCVbIK/Fn8+cD+6oiK/y + +6E1rOWaatLmR3GCqkV5grl/Ka+z6Nj/ab5vT3qte4Kx9otPZ+ur0vKPQdL0VntFb + +R43RWJHQkKvzBDFdOYuq2TFfhc55jzFY+u66zTQeGlhb6b87A15nP/qq9GlxXoEe + +2+54TMDy6Mg76s4OzNoeoIPc/opLrsMLoT96OZvgqe/WnBTEyVzETcC/6+OJWAdc + +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 + +8t3UuhOoQxZA2fH2JTkqH5swwN/uZcVJ0nIiMpGrwNnv26oYbehqHQpr5pDJb/ft + +ahl7qrYNSfUMPtGqZUvqG9GoGhn3GuTYtD7JGF1dy1jg3xoc/xyaHLGpsan4O51q + +CD/BOzzOENqVSVoehD38lxDcMjTaGUgm2h/p9ZDaGffU8FDe9N7VTpeZUNp+2wQ/ + +s9vpzNDeJkbQ24Yl0N9Z8k8dSap93F/mMNp4bTDcYtcw2CmssN+33cZdDTm+ooaR + +ehXggkkAxki4mGJNkAegBogBmANkQmPPicPlBJmnusczW+EzSAGXMXm6kTINIxRg + +lLhGmzaJSiH5u1HD+b2c2Ly8aTnCtzzFjqwsJ/w24QJghRI78buEmAm42DpOvFq5 + +Tr7y3Qm5ZhqPXF7ZYN9fO1pDAL6Oa7mraln01mYYnRnfm6bd+Tk0oejeFp8zyYi+ + +XU05sx079bHlaFjaf5kkmn+aQ9NWHrA/LCTWGy25eeRY3D88M6pPq4sa/r0em0Wu + +tfNpuYxUth072f+0nzJM231PthsupTjadhwgnMRY1utDGTM6OEW42mYzDfOD3+ka + +/9xd5njbVoIOHUJNMG0H6IJbisb43ENLI++RuSfzjhnN8KA/JLx73BLYlambl06C + +hihAAkUpKAdE3T82wAVJl1GAUpdyG0OTUJj2qQjcj9jkOCvd7G4wvggDYkbD5Oq8 + ++bwy2/0FjbuUvnG6TbxVst5nhyGk3D0TpNhUxByGxWLNuUvp6T+EmuHZKN3KHF8/ + +ZN/xH/KYM05eGS4z5NrU2BTbwLTeGK42ip0U3+Yb/fCU2MlKlN72EZTZtgquu9g5 + +E78lu1Rp6dtKmi2tvh5IzS2s1N0zTR0KzD3zz+28VdzR3P4YIDMGvH9OYcuga0BL + +JJwj8ylutNi02gQYvdgubUa6cVsRkCtJmbipTYEeu+1ep45Cnaz02tMWVbnj9P7c + +Xa9BGCJfL8LBH2Saltv+NwzfPZSM3+tOjNx6G4zYqKFzvvK4BG9zOzHev+VM2jC0 + +va6bTzCdm0o775tMFieeX8zYITQs2bdzHyyJEyzYEy1Ruj7Jd9jRvGxQQYPXlyzp + +24VRhSQEFIGRHgvxcAOAAduGIAOVAigAJNcFN3a/0Lokava/iz0QPfaH3L8XGzaM + +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 + +2LqVnX6+GCtDOxgt2Ix2V9iMfFvKgjiLVZl2Zoo82PWKOpRxLnrXZEo5yjtYKDWb + +T7Y1nlo4yjsPbs+wtZoqP/iOtZhXeCgUKjsXeHWZrVUqOU9vKjktxpo6z2+khPWe + +WN1tUfWayXP1nDtQDZv7OWo6+C7Nn22GnmZ8XNPn+Cq7OTcD6jwkj42bXYcEK1d9 + +b2xF1QFRpukVMJo5l1AkLpo9zZuaP8IIxCtkilo493+aPVo/LZ9aP7udzikkKbWa + +c3p/tG2dV9S1P+TmkNgDgO2cVzy1u99rujySG+2bQWAdn1GSHZpNcPp0+jk0jBG4 + +wmP6Oc/SMT1imuF+0ukGPWFjBj50jFQrdI6GPBFlhj3hYADroHFVOdQtAO1GODB1 + +UFtg5JBedTy9nU94CVGQX5BfdTpA7QlRQO4mPbFlJj50KsDtdCjIh3Qqpjr0Kf2b + +pjssj/QrC3wYgmY4boFmPDBzA53wdBY/w5tJmRY/4OvmOaDqjCrmPpY5Q53mO0Od + +FjiWOswpv34WPIwvljwYgYwu6WSQ7FBxI5v1EWygDNtWO4SA1j6jmzx4kLi4Jo7R + +ehSLY32DkL09fuUHcN5sBSMbFQeEx1GGSAcYAkmQOqWO9g2iVAZ9fdzg16MUY6SE + +/0JFBP15uaIhh69KQ8R6R3t8mDqPnPt7KcESupkkCOw3vcVTSFP7BxVFJnmxGOHd + +6TkHeEN7/7lxHjOcd/Xke+N92TwsDs66ND7NCufayOopeJ73zj8NZC4/so4uOIm9 + +Lj5iiBhPKOyuOQKEjnkTBa44IoBCLMHivj8oKmjsi5rCL247i501U+juezjiRUud + +koVSiR4/4haY6WZ/y53SjCuf0ozEd54/oinbWqubXjzY7WIsTmddO01Sa5i1YnKI + +t36ij2ubMPxOZxOtAoUSLeubPjnrmpIsbWEbmrs5xAOSLwqJnaeF6pRxp3gdZZuZ + +lHN+PZ1g/joE6lcHW5v+O4Tv+u/fsoj7G5lyO3cFAT3ePwE4ROko+LubPWGBP7Rz + +gTjE7Y99qPnE7ld83WZ7mL1gwT2pecE/qXlAn3uYYsQhOYNnHn2k7SE6FmihOcLY + +2n8zOzM/dkS5eCNmK82H8ode5O7lP6Nf5ruHmBOIR56l2dU/iZwThxTpP2AreSGK + +x5oTYceflO71PHFikT6jUZE/6i39nBovU2KnnlE+rI1ROTNnp54Gjxx1NOmzY5R8 + +noPROZopWijxPWJgBjpTUt6HXHLzYzE9Rou6m76BF56xPht5PHfGiHE4DOlqVZeZ + +cTjLfCaMV55zYaaJV5nxOYzo9ItBgPou81SbfbXe5z0JODeb4X3deMI4OpQ2vETU + +smWlQo7vwAGGE+UGJlQcAxUH5IYgBke2zM8NTX0FRSmLOved6D7rvRS7dgGx5WaC + +KAkqgUeARIF7feZGAn+kaAN/Dnh4HfIoW3XH3koVjnqRBfU0sX5wRuD/nz+jvwd/ + +0D5NCJAeQ3itus+pFiqZO8l/L57/OZk9fzxnx9J0rn1ZOU6NMndOitk5w3tWKu+c + +OTg5O7T6we77vBD7TgPvnnT/cDM5PWW7oe2C6a6PuTxUbALv35qfnE++cB2fngpy + +hTy6yvk680ZfmJYfZWgFO+naBTjo2QU+BTsFPUz8BTvfnoLrx1bC7sz7hT2MwEU5 + +KHrFPKpxRTgs/2o5yXn3giz9g7K/mdk8XvfFOuUSYu6Frg/I7j/Fwf+bh7tCn+15 + +vowAW15N4u69bH6POHonzRPvrFMZvoBeZTvKo4BebkBAXUJiQF/HWaG9QFhS70Bd + +kY3uLBU5k1qBiNLrFT3jgJU70u4TgSBe/HeCOjLrlT3hYqBcwYpVPE9SRjjVOew8 + +GP9QhtU+PZvVP94oNTw+Ljj5NT4+KzU4vi00LGM5EF61OPU9ZTp1O+GJxjkffW9V + +/PvGOp97dTj+KPz9tTyK6y9V9TyfV+U5tUQNPWBeU1rwfHW+BkccovJbZLCgBGsX + +688GEggCrAKAA4nASANgBGgFJGSRgAR706Tk/uNNSdwNfeT5coN9fCD7BiY4n0U2 + +w74WRf17dgeUuwhZKSq44ftg6QIr4NWzTXpOfOD7XxUHeeD4exounJhuKSqHfvPg + +jnSdPshenTla7Z0/yF9a6KmIlTKpibGbKFh0V+C0qFlRLqhcBVndOqfD3T0zvC+x + +GY567S5xaFk9OGJ7PT03sL06Ogq9Pw8ysSwI/AHSGFqZiRhauz9ivsiZBupZjS5f + +Bu2YXIbr/T6G6Qj+FgOG7AkpAz4JKE8wgzuw/hYCgzmva/89gzzG74M9kKo4X9tZ + +wEONL0M7TszDOwr69Py4WcM+uFvDOnhbQz/DOw2cT35+dmbvBY+pLpW7oz61uZW/ + +fPswrdV8MxVjPBLrVHuHR8y7jTcEWeM/OduuoiKrFkOEXYPY2Sh6fshENXZW67M7 + +KEUamOWMuNtkXpB51t1D2Jr4WmmzOi0kL3/W7yRc2SuQerM90ztTP9beP6pkXRz9 + +MzoTOWTsmvra25+49uhZei0h5Ftq+++7XH052b5Y8z+5eqA7K68LI22gSTm6wxRH + +rRWp4qwDKALNWhgCzxGiIHr8SScP2wV8958i+NF/7Nn0frviqJAg/XYDovp7f83A + +B0mWQwOBX6QfOxu+GrzX98s7Grpu642Kpd32hLRESnxbvkp8iH79NBL7VPtOere/ + +HVhvn6J5rnK6vx65tLyEH2s+cBzrOI5pvGhe7Ez/tNGVLa8AbY2MXXTRpmd01Exe + +SX8bOGM1TF2d3DI6Puvi4P8ewQnMXR2JLcgsW4+4XY81KNs4furbOt04KuF+6C7N + +dSg7OHUtmXZ1LwStdSj7PWJGWXCR6Ew4cwM9iuxYRzzFgg0r7F29jJ+EHFh8XhxZ + +OXWnOX2NjS7Nnd1QKuDSLJK6Bzvy/9DFTS3Hinlw1vluWiHtrk0DjG5NXNCDiCHt + +vKpHOS0pRziR6TYr9vhh7jxZQ408Xsc4bSi81LxYJz82+ic9nuknO3mEI48nPab8 + +pzn3eXxao40R7CV2/FyK/BrnzvqK4Cr68RYCWOc7nSgk+fpCOuJdKOE6fsLR7iQO + +Fz5CW9HtwOcXONdK2Hj+wZc9nprHH5c6se5kLB58cEEyvIF34HnmRl18UJLXPohC + +Ovw3Q7JYNXCTPDdKNz6S0Tc9s4nhJ4izA96m5iF82X/ZawMuLLhyvjl6I1y5a0S9 + +5uESWBbndz05fUntPv/AO45C3+kHm8e4i4/3P8vUDz1pHA4ZDzwjL1JYfbzaTQla + +w4aPP0q5rLwx2fVY7Lq24KG+itJp7Wa/ddjPOrJbaZjp6T748ep6ft8nzz+tdLr8 + +i1I+enl57FX1iC2T7JtksRRHxNfvG8i3xk1EMzeTG2FQ42AHxAJAHVF82ewwuuQ5 + +Idwhh+T4M4QU+k/cQrVSBRT4oP0vP61bDnmNeHC+ZeytSKXf07mFBn/TTW31JlT/ + +g3lggwd4JvpfPdT+HT1fOUgtUGmkfN8+rb02Ed86P3YAvVOt2TzqXge7IGjcwz85 + +Re5ZO1cpzroaWky8NNO/PSXofzx5J8Xp8t8PNTT+WYhb2jys/zmANjT8hB3/Pxvq + +rby5jAC73z8Audpccfstxhk7TgSAv+W97X4Ue8F6ay+AuGeMQLtafyxUulha3RXu + +S9DAvMJuwLmR4485DVl6X6UM5Tt9xFXp90ZV78waI8dTd/pYEbrhugZf5qyfWlm9 + +kb+fW9IZYL+c+2C6X1uGXuC7Neyp/9eN4Lm17MZade7GW0ZeELqhxRC/+h95bIk8 + +Qf8k/pBk5uUTkT14XniQBaNJOWGwUPV/UYMGER2xdgfOHBHymACKWfr78nrk+4s6 + +MLyh+8UiqhGh+nODofo2cwGBFlQyF0OA/YeUunC5eBxTT6EGbQRZXE56B3/i/LuV + +HhKmf1T5Efhbo6+IVlhnLa7aIxCzkyh9Ihjt7LcuRAogMs5f5X/t6Oi/iL3gNui9 + +aL5IuutdjlrEHBi4qLhXK7ZfCLpIuoWouvP+0TtAwQuF/8XmKL1/jSi/MqHfihi5 + +1y6B093qP4kF/Nb4aL8F/vxsly4juIi7aLw3L77RHr2LQAX5v4hTByHX6LsX2wX6 + +Mx8OW06MVeL97kdzGL3OWJi/9yqYvXEsdgwIvsLB4dTuXFi4uvNuWhHX2KiAfEBP + +Kp/459646H1cXZHV2L05P8BMFfsTbu5ZLl7o+hV96Ph02NjYekIeWKBOHnkj6E3h + +WHyeX6U5ry+4v5/vXpp4vMdBeL6VW3i4/+SEOPi+srydet5cdf86/Yu9srj12NTB + +3v+yv4u+c9MEvlc4hL2cDbi9JxjUfqEfFVpAv1BKPHo4Rn5YctE5epvgxLx3Q8G8 + +fkjMGaPCyf2nWCS+yf/hvioRIbylq1r5MnhbefVK8gfnDcCDAIa1ecipPI9WMCwC + +UOIUAAael83kQhAHxAWb0igA9iWR9SH40trrvFn56763APZFWfwMAxzbsQMg/Xt/ + +FPsOuT5uH3fblmVCQ8UwgBH42MIR+hL991jU+gXX1LwlXDS7Sv40vR08Z9hxTRfY + +U27oTQlKq+pV2x3aaEwYS+vsdL2RXDZfXczgqRiMvV6YSfS/svnmf5hL9LlbWAy6 + +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 + +t2xbmID9aR36A+4K/+ZvwjfF7RLN8WU8Ed6inNi+tt9OR9XL24Mgu3SZpF7dIt62 + +a6GVtI7hzf139PiqLt7nb3inMLfgzOwvyubwsOyUfv9o7lP3N7/WR3blsnodOpKc + +FHDE9Y+/tu3WL8FKd+1+0p2XbjV/CMGfm8928U9c0dhI5L7/lPd6U/Bb/dlqFTk9 + +ucYMPZaA/7Pb+5fjzeDh2It+Wy6Mdle3GIu0W/r2+QVPCLrFv7O2HPW4t5rlrwL3 + +oD+iO3PXxTZL+5566HLGIvL7dkt4Cpx0c/Y719vDjso5fBT/LidHLoI6n7dst6lb + +8lTzlvI2fpW/tUbnp/NP7j/ysGLUmNB7c7yK3gqnIDvXPSXHdKpxA7x0H5Vv5W+x + +d7Zy0CduqnNI6t+9qt5/lhq38wSnDdBvfRpIbuxapskuke/WeDTGImUzToYyjx+s + +dE2IwwnpE2NQFasWAOInjnC0ClIvl1v2TXUh/Oz+CFyFnoPBrV+KU+hpDOQsuf7q + +/rL+AtfyRPpO/thSLglDAr9uy7+WXz2v6ofxceuTvnU8XfpdT6uDqbeYUfpt6FO1 + +Y7rNvrspkLcFc5BZ1aroz4QdOqRwaO/k81o7o/Pf1ON0/kGFI392y2tv8mn62+ZV + +Ubb7qd8x3SPqp6Uw0/bb/zCztviRuM8tbd6zyw1/jKSzjuMb9vpPldH4y0dvReWx + +JGAp7EJ8d9IMH3p2GfXk08Xbxup2JlW6mRfXhO659Y3lxmnkZ3j1Md5eppz2XOM7 + +b4Rknd95evU8md3mnqZ3SZv9kKErWFkDUFxlHUQw8c0irDprPf+mSQi8QkOONADk + +nJvPzb/ZF9pD7Vp9iCSY/ScfpDMeoR3vb7fwA/wdv4pFgd6E9kBRLozUbeYJsg86 + +PPwrvh2zSrWJnftIodp2Ocp2nx0O5nfsIYWd5whpZ3uHfQ/erO5UZSBO/ofE9r1z + +tKe9Og5BOtR3252Q6e7naeZZQaF5lkdOhwdwFfo745k5jvt7+rztsd8p/8nTzjvG + +iGH108d9ed0RO95380iJNMCd6k00seGTTdE65NM/ncBd80oaTvBEJZO+6KYOPPQV + +utvULvb+CQXbxZXC7rxDmneHJzad54K0jlzF3NWTjO+rDzo33i756PUSGrO/95nH + +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 + +v+RgAA2bi0UAgAA= +``` +%% \ No newline at end of file diff --git a/!Załączniki/20221107120342 2022-11-07 12.22.55.excalidraw.md b/!Załączniki/20221107120342 2022-11-07 12.22.55.excalidraw.md new file mode 100644 index 0000000..6110e23 --- /dev/null +++ b/!Załączniki/20221107120342 2022-11-07 12.22.55.excalidraw.md @@ -0,0 +1,852 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +%% +# Drawing +```compressed-json +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 +``` +%% \ No newline at end of file diff --git a/!Załączniki/20221107120342 2022-11-07 12.48.52.excalidraw.md b/!Załączniki/20221107120342 2022-11-07 12.48.52.excalidraw.md new file mode 100644 index 0000000..7af5ee7 --- /dev/null +++ b/!Załączniki/20221107120342 2022-11-07 12.48.52.excalidraw.md @@ -0,0 +1,896 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +%% +# Drawing +```compressed-json +N4KAkARALgngDgUwgLgAQQQDwMYEMA2AlgCYBOuA7hADTgQBuCpAzoQPYB2KqATL + +ZMzYBXUtiRoIACyhQ4zZAHoFWPETKUAdNjYBbGnQT4EOhByjNuAbXBhQYexBLcIx + +ANIB5AJoBGAOKf6ACkACQBJAHZAgBYABkIAIR5AgDU4fXtIWERnUgRsKFwOAHMjd + +IdMbgBaHhiATg1vADZmqMaAZhjvcNa28P4HGCrvHkaNGJiRzsaeNoBWOab+yAoSK + +ElueY027bbh2oAOfZ594dmlqQRCIukNtq2dvcPj0/PCkvFUGPPmKFI2AGsEABhNj + +4NikZwAYnGMJiZUgACNcNh/kU/kIOMQQWCIRJfoVmHBcLkzPCIAAzQj4fAAZVgpQ + +kkmRkhESG+vwBCAA6qt1mhvOy/oC6TAGehBGoyejrhwEMwLPzzmwidhCLBuN5xuc + +0cI4KFiArUJYALqCzk0pmkOCy+XOZiWtLfBAIYgakb7Nr7cJnGyQRgsdhcNBRfbn + +f2sTgAOU4Ym43W63gO83OhGYABFDAgoC7uOSCMwEOcEcJMQBRIwmMyGjhCannIRw + +Yi4bOu/nNcJHbz7Wq7YbnIgcf7cGt130QMEonNoPP4As2AC+/TsDiyHwguXyb1KY + +aYEaDqFqXzH4cD0Y4sbQtQ7UV64XaKfTmZbufzhbHTgktUqADFv7NmP8lSNJgAAa + +uCVP8FA8IQwSzKQAD6ZKUtSIpilIzKsmSPxCtyvIamawr0muEpOOc0qSDahoCmOy + +rImqgz8lqY5bh8R4ZBAFRoJU3izFEGjNM0PHXk0RxROcDGoNxPDhGMEyzOE3iarM + +tTyTEbQEcCoLglCsLjGSSIojqGJYlpuLoPiHCEsSphQGSKzEGstz3NsjxHCcPA+u + +xkiXNctloJsOy7DwBxuS8Y4FlOvDjLM+yzNMvTauieoGlYprhRywoOpRdoOvpJbE + +OWxg2YaJr1o2zaRU0jQdjwXY9opfBjgOQ5oCO+D9mwk6tqgM5zvYi42MumTwGuG4 + +FMU27HrugbcIcO4BlGMYfHF3ieuEHS1A+GZGM+06vim3UQKEXKlgAquSkgAFauKW + +PAUMQIGnfEUCnZIACKmBsmOyG0kRzhMtgLK5FhGW4Q5fKoNR7HYeaf0SCRrpkcIM + +pylRSoqvRGpMexLHcGx5RVLU9RRETBwHDEd4xPJYljhJUkydsyneK0iknI0NPQ6D + +2LaRI0K6fpyKouimLc2Z0DkJZRIkrZ5z2Y5/l3IFrnPB55zeVcNwK85QUhSrnkOB + +F3WrbUsREyTUMOEZyUlWlnM4RaxLWqjOWO3lxmFZW5ipWVTa7ZD7adt2vaNexzXD + +rW7VNZ1gLdb1CALkuY6rjkeTje8ZInpws363602LeeHxdB2ww8NJOeOI+O2RXHB3 + +OIQhA8MEl3eAAKqQABe8RFDoHCBECMA0giUCEDSSFUr9oprgDQNfXbnI8uD+Hpfb + +cPiqCpFjuR2WKjRGPqox+OQLjaCHxxVStBoHrbBM4QqYcjRE+JQzHA0D+l5T4xXs + +0Gmizp/NFoLIyItTLOAslZaWdk8JayVsFJ47ly7q18k5GBut4FOkqhtb08keKJV1 + +PqG2GkHZWm3uKXKRZ8oe2Kt7McDZfaVQDrVIOil1JNUIIOcOo5Q7R2rq+BOg0k4j + +RTpuCas8HCZ33IpC2ucFocDPBeSGzCg4jCkRXbaWYeGzjfOxD86BiDt2wIENgcwQ + +LwXCJGDgQJGjEAALIAAVCCSH2Ihc4P1UJTwwsDDSC95aQ0IavCACMpTIwos7He7F + +aKqn3pDbGDhj6fHOJxVAMkBIKR4K0YKEwYgPyflxYYowYpMxZl2JoHMDZcxAbzXS + +cIAGGWFiZHEoCJbgJspAxe0CHiwNCqrMciDNaoACh01BYVobOiNvMRSjRNTSVwQ2 + +fB1C56ZUdiQgJZCxzFndhWKhaBSo0PKn7KqNU6q9hYaHNhLVUBtQ6l1F8mi+H2CG + +tAQREgxq43mnuDUyYpoyLkR8VoExdgUy2k+DRBZa4SECIQGIABBGIwQQKNCBLMKA + +7hsBQrTPQHQbQEAxCEGPFC/jp6YS8VA3xy9YaTztOvRGm9gkkJUREzGB9XgiLxgk + +7g0xX7VSiLAmIIZOgmxyZJYYMkCmHFNtyz0xwf4VPQHzWEAtan5V/niJpUsWmyxJ + +QMlynS9Zqx8n0rVOs4HDINqMuMwVS6KU6DM628yyn2yyqE0hrtyEbKKlWO1kBaEV + +SNgwo5zD+xnI4ZHLh1y9q3P6ondiydnmp1eV895/JZgqPET8rGV8qa1EaOXVMai/ + +Y13fIdHg8FIzfgAI70HJOEUs3hSA6FLMEck1iuz/AcXiieaFCWeLJYCbxEMVEw0I + +hS+GVKglCBRraMJDgGVRM1KfOJp9EmKQZjsRo3ZVLcr6LTZ+MlaiJnfo0GEX9GjS + +oaZU/+azAF1OVeZVV1lSQaraf0xWgzjXdK8vqvyz7tbKzQeFM1aAjjhAteME5lsk + +pzO2bbe15pHWTudVaN2ZZNkeqgz7H1Go/VMNWoG9hrUI5XJjjcvqYABr3IEdkWNw + +j05vJmvyEMtH87yM1HMWI4QFI5sruo2O+1C3OAAFpsEjFyMt/waSuA4O4cktRiCB + +FLPQbA1jyShAADLtrcf9DxoiBCgz7UvBZCANMjslEjcdIT4P0r3hJOdzL04nzZfy + +cIMRZLRWUmuu8zNSmQDpsMfYGhvQeViDFD0HZNo9s0me2VVSFVCyVTK8WBI1UPrH + +HLCGhrf0msgL0r96WdV/pGZVb0npuUeTA5AK2kGjTQZ0w6pZTqVkurWRQlDXs0O7 + +Lob66qgd6o4dYXhi5BGo5hp6rwyN/Do1PPQC8lljH9x7tm2mxzHYvQxH2JMoFVce + +OaLBegTA8EETEGwOEax1jggwFqJSUIl0W4gRblESoAAldTBKtMgxwnpqdNXyVoUC + +aZidaNd50VnTEo+LL7NjkSdUVbGg93NHmD102grKjAZh4ek2ybgptHR2VgJ5TIsQ + +DlTCGLQD6k81vYl+9MsUuapfdqoZ76HDZeQa+rp5dDaYdYw/aKNrKs7IM0Qp28GG + +uIddch91rWqvof2VhnrOOw74c4Q4CcRHw0kbI7YCjo040zYTXRyG2wFtLTjFEKqh + +7k0be48RrRDgdEQAIAgTwoRCDkn+BwUggR4JcmwIkZIFBXCeFxS48eRn0Bdu07j9 + +7JKB2gxDwE0df3zMA/CVZrG86wfxIh0MXiGgTfNBmCbuY0x2NI/WqjuozNJnFPZq + +esnBPos1Ni8ZG9CXJaU9aT43L9OEGfuZ3Tt9bOANRXYypaY0yxwVZSm1/ncHDTC8 + +dE1t1nsCHtYw22LrjDZe4fOZcobKuRsRtI1Glck31za5o7rrO/JdiG4LtwEYNRZg + +1F69orj+bePaMOmwNMHAYBQB4AgfjD6RoB7SoLkYgXwLwdwIQNgZ7YdUPV7YlJ9a + +PFeOAuPEzGlMzOldGIHazEHO3dPRdQmeoNJUmboXoGEMfdiOmboDQYKblGKZdaqe + +SUMcLZvQnPSBvEnZvMBJLKndiVLXvI1VnPVDWHLWnIQ3Vf9SKOYQ4G+A3cfCDSfS + +XcLAXZZe0RrdidZMXJfT1CAb1aXdff1Z/JXINBXENJXbhLbNXI/YaSjKbM/Sadic + +RN0FgpwvOWRI3QDNoWINoY4NSC3N/bbPjCQeCOFQITAUINMHQL0fRfAQIXwVwdub + +8QIU6cIWAztBA8LD7UlfnfxX7DA/7fTadFPJlZiAghzSSC+GKFyXlDyZ4R/cuag2 + +YBoMuBSJSFSJzHHQdCLWvdg6pS9RVJveLHgtvR9DvcQjLBnLLHvdpPvYQqQ7qXsF + +jR/HHCfZfafOrIXdQkXBfbQrZZQ9ifQ+hQw7DOXUwgbRXSAZXEFeOMbcjCbOw0/a + +jRwsRdwj5LzBgdwxbJJWqEMKIWYeSAIm4nbCAb8WxIEckB7FuRoBEbAbwegB7NMb + +ADgXwfYQIS6UIXAdI9xQGIlLIqPPxVA/I9iLeJ1SzHA1PWzMUQgtAXdJoJzEMRmC + +meYVwgYKoUvXiegk4LoJgjsGvMWPo4na9YYu9CBMYtLCYvLTLC4UQwQyYgfSKGoY + +Dc2PdLddiNY3Q7o1Q+rbY+fTQ5rcXdYhwI4zrQ5U4rfYNQjG4u5DXB4rXZ48PZw/ + +kLNG/ZjNSL0XYFyIEqw63SAW3ZIbwckeCSQYgOAFTS6HgXwXwB7KAeIWxDEkCNgC + +oIPfFVAsPN7eeAklQvI+PAoxPIoyAGdXAtPOzDPdiRJDlXPdaeYZNVbOKE9bdLiG + +gzkg9I9O8BsgzNg+vAYxvYBfHEYsU6nJ9TvfvEQpBWYiQ/LU1SKdaHiD0TdHnJQv + +nGDRZYhHU1ZfUxffY5cr1PZY4s0zfPrbfQbUNPfOOG0h5GNewh0jON450j41NTwh + +RZNNbZNK8b0q3EEyoHFTwZIQIRM0gcIYIYIGIb8TAQeCib8LgFMjtHEmeDM3tLM3 + +Iok3Mkk2lMk7AyJYsqk1iCo5dDQaotoSZXwu8EMRYRsySGgr0b0NozNVSLovHXo7 + +szQq9OLfs0U9VIc8Yn9KUqYmU8c79FBUchYrGblEmJzKmRco0r7VcwXWfXUpDAqF + +raSvQvc007rY5C0swq0n0i8zXIRNOF46RRNSGebC/Dw2/fkLseSE2flD81XX0xwQ + +6UsVEdwDgFuOANofjeCU6OUKIIQSMQgbywIJ7GC2PdMxAnxZA77YiVChwUkizTCx + +laJEs6kvCpzWg2YcYRkrHIi7JCi5HZohSVbfYcVGYNyfkv+eVTg4U9iinQc/gmnH + +irvMcg1SUlqkStAT0NbXldjFRDUqfFcwzGfF2HYzcvY1DA440tSzDE4hHLSi48wq + +4ywq3PSu0gy+NNwmRDUTUV035bYHsastUm3V/YE4I9AI4IofYNgWoIQIKigWYQgT + +ATwWxfYdwN6fjf4UsbEzTXE7tAzbI6KodH7OKyABKpPYoik0onGcozPLiJU2g1bb + +YVJNmcqpHLoLYHiCZJ4XwkrSq89aqnsrgkU+qzixq4c9q4Sj9WUic+U9BI2M2aKE + +LKSzUmPEa+GDchwLQpSw03Qk02ag83sD4+XRanS1au4204/R46bc/LakyniEOV47 + +5J87w7NDjTjPNM6j/ZwECNMfAckSoFTZIFTYIFTNMb8BEICt6cIU6FubALkH6xkT + +IgGpCoa2PYk+K9CxKwHLCykso0smkoVR/fzJGrJSZKmUqkYdGvzXYLKtbIiqIboN + +HD47orsi9FiwYvs2vAcsmhwAQ2m3i7vGmwSlnSQgrbqYKZdVbRMFmwamS4azY+Sz + +mxEA0nQuu1SjrAWjSxSYW84nfU860iWy8k/GWoyz47apNU+R8yy1Af4u8YDYwv00 + +6n0r8uAf4HQGIECcIVwJoWYWxU6fAQoKFXwNoYgS6R2+Av68PbowGwkkG9AtCzAj + +Cn25Kmzf2tKuGySK8Ai3PfYLJbwiYHk6O/iP42BJzM3RO/GqLdOrm1ioYuq1vBqv + +OpqoS+Y6mgSkctB6chm9aSvG8Y68rRQlSrU9mhDPUrm1u7c6rDu1ff2OaoWha/ui + +w4bc8oe/SqjQyx0u8yGSB8y74poHiE2WKW+ey/fUFc6iARoaxKIHQUgWoMtLkHQI + +EVwNMTAKAC0MtTAUgKFNTMKl7K+hCsGKKu+2Kh+z2p+725PKGlKnC1lT+yoKIPiL + +0EmHsUfDoDoFRHzYmE4boY4YLNbYDKBuvGBxEOBrOsWHO5Lcm7i1BsuxnGYkuuYu + +JgQQfBWv+tyc3BQvBJc6hkhxu0a8hlurcyancmhgwwWnuxhk85hs80bQ/cbKW+0z + +h28ieyGdaPa7gILAFM3URgtbWiQbwWxNMD6UsXwKmHQfjUsCgZgfYIEBAduDgUsW + +xC+9CAxyK/tExylMxsGr2iGwskomx9+3Cz++oaYLK2qdodmHqz5KgoYGSbsSOg4c + +BqmXhzs+LQUmqti7OjiqJ5Bim5qqm+J4uzB5JgJQfXYddPdLoWuqa+u7UrY5uiAb + +myhEp6h/mtfCp5mKpy48cFahytaxpjanXOWvXWqcuae5jLoRhLJb0Xp9/G3Q6Z3H + +QcIbAIQP3QIKAICstdwdE/4duUIFuZxb6YPfR+C9ZgsiPGKrZjeR+woz7CAIsv2m + +GgOio9mForKx/HiWIdmLsYBh5rHHseYOQxxoJj5om2q750m355YFB0uqc6Y4Fymr + +BlJyqXekYE3FSGF0pvJtchFjQih4piXUp9FuhzF3u/rJh5alhup9XYe6Whwrh1p2 + +qHHCl/a7lF52qOloI/p9ARMECOATASMbAbAMtSMOAZINoegYfTADgaxNIvRtM52o + +a2+7MlC7Z9cXZiVxV6G2JWG8sna4g2HYuDoaYZoVk7zIYYg3YXx2KQ4AJxW+utOw + +mjO3s0nCJn5vgv5mJu16UpnAujq8uj5O8NJR5r13Jtm/Jjm/1opiaoNtFmajF7ur + +Fo8y03fQe+p+4wljhzapWky2qKer4p87sRO5RFRXNYFFeiRuAfjCgN6FuSQdwSMZ + +gHgduWxMtckRofjOAHQB7axFuFZiK/EpAzZ4zGV8xuVnIyG32nt0HFVz+robwGHa + +o7NZmfPXiHHOmGoMYbNKmGKRO+k981g955i2BzOtdxpK1zdm1/52J+1/itqgF51s + +FwrEraqSZMLdUoh1m2rX1pu69pFyh1FqXfcp98N48nF643Sth9a794l39vXHiFNw + +Dme7w6SYDm5k6zWyDnNjAUgfjXwZuBAYIHQQgDe4ITwboCgfYIQeIaxAjpt+ult5 + +C++sjnZixvZhVg5t+5Vj+/t+GrJJj+cxO+SAEt+QVOYfzEYeHSvNmbV01kT0JsT7 + +gjd9vCUxT0FvdxJyc6U9nfkNJFaW8VYrT9un1uSgpxSlFu94z9SjfXscuEWyN3F6 + +Ng/WN9h685p2bDUT1vhp87lHx2+GYLN8Rnz4DSMCmOIGAaxXwHQSoOCbNcE4IfYS + +MeLtZoj4x1tlL6lWV/M+V7tw5nL45vLoOngHPao1jg15bcrviYDNWzoTHbHerkJp + +FsJ8TlVST1ruUwu1qsQ9ruT3rtpgLZSYfM9whUhufCb5Svmh90Np9+bvu6pqN2pl + +bmwx5eNm8zb50pz5WmexSHsbsNzsD5ez8iR1wKAHQSMU6FTQIWoN6Ngdwb8FuFTT + +AegBEYIZX7wF7sVt7jZj70x1Ljt9LrtrLvAhdCoyob+yutdI4doXPYKKHrYHsUuP + +POYBYOKRH5d0T1d5r9H8UzHg9oFjBp10F/Hwb/5aFrJ2ZHJ0ny9shin3m9ukNg5W + +n7Fpapbpn6whp2wppn94yhzw8Dp/yaSUrWoQ798IXhykEmINMdue0OAEeUsduIEG + +kN6SoPRTwFuQgXwYITXvEl24j3X6Vr78jn7yj/Z6x7L3tujoHhxviM58YU4JoK8X + +icru4AEomVadoBorHLJd3onT5+By1xB3O6T7dpJuTzrkFvHwfGoEKEq6qEnlQsnh + +S0XHmtu2Fspkz2bxSOniNhntP991bjZ3W459x6f7ciiSyYyFx+usQVoLFCO6OVbc + +gQRoFBARCuBHoHASQDADGZwBggQzdwHAF8BCt2IriUVr32bau04WOZdtuDSN7j8T + +efbAmJeEvjehOgsQc7nukfwLsIAEkCrszF8IjB4oNZHiB2SGpLs9+5rL5uux95cU + +2usnXdgk0v49dUme6MSnUDqAP8Niuncbi/0m4qVE+MuObinzFr4trOX7YAXZ1z6X + +5eAMUAvrwGAwdAAsOOcDptmF4+c2Al0B7EUARAxA3oPASQFh0aCuBrEERduMEGIC + +SAqADbDIq9z77vdkuevIfmlwo7klqO/3Sfrl0YGoA1WvQLKo40fytAH42ae3nwI8 + +gKQTczCKVEJ3xxmsV2xNBBs0mtYQB86XXOmj0gUFB8r+0hLNBjkTDlwBq7/UbmoU + +RbItKeCfankny/7gCTCv/CznizEa3EP2ktLPkS1lr2crBHkEQZYIsrMYR8yaB+O0 + +zL5edXBDLZwCCEkCAUQI/wFTF3FIBpg4A4QXwKiE8AwA3o34Hvv9XIH994hg/MdM + +kKSrA5UqgPTIbzx/r0kqYcPXwjggorbBL4dQPdERTmDF8d+VQpikjwMhe8SaR/Ro + +c0MUF8UL+HQpQccRih898qmnbJsQwvZaCr2Y1ANrez0HjCDBEyIwW+ys6LC422fC + +waANJYecth3xM2PVB7AadPOEHY4X6UOgvRKgbAeIP8G5QUB24bAKAEYiSJtAdANI + +GkZABIGNsYhnwuIW7SoH68aBv3Y3oCLsZA8qWiND0CVz2BZUhRE7LqiD2PTjB2Y+ + +wqrpsMlaAgxBHBCQQfykFYipOTQ21mf3kGOtcehIo2CFm9DMJbREAfod60pFjdqR + +hTAzoG3pGd1H2kwt0Qtz/6WdxabItbk8Q27mUdqAHbnvIhd4zAie8AkEmWkdxsBK + +gbQYoN+EqBCB4IbQVwOEFIAqYgQ5YWYO8Ovq6YKB7owzPqMSEG8/hL9AEbY3BzT8 + +agowWKCbg7Aw9qonpQVHun4jdBQGj+EvlmmjGp1hOaIlHt7z9EY992gLB1oH1DF8 + +V8ewwXnleEcZDdyR2nWDDH3J46DRh7/fQfQyZEvttKLI3MYALMEFiQBTpSGI/lsE + +7BN0GtEURXwkY8A4AtQSQJEVsSlgYgLcHQJdCkaXQoUIEVwPEETJ9jDGSXPUW2wN + +GdsjRdAk0dOMyHcRg6rGZmEcDUHbdbml4ZzFymTSJ0nMWVYuLvy9G1CLWvohof6J + +xEEi8R7Qy8QqW6g3gtWs7aMbGPPY6cExsfN8fHw/EMivxUwq4vT1mHLcM+n7ZYbZ + +1WFbCPkJYvcN8RqDeEiYwjJweX3mEglToOgMtPsAoC4A2AtiTADwGsSRh24PAECP + +sHwCJlJA5IAieK3lZakRxvwkfikNfr0Cp+1E7+l2ACylxfC8wPihJEPBbByhqSZ0 + +X8RTqMUBSDXZHk10xGCSTxLQrHm0JDFyCrxg+LnACViA10I+tqEbvGKGH6cRhKk4 + +NmpMxaZitJqfHMSYLzFACgJnIkCczAIZcjIBboRMGoNaDjTnBluGCT5zGbIdSAp0 + +ZIJUEIBvQxMhANoFyGsS1AoAUKOAEQIcCajohWvWITr2+GkdRxho0fplwolTiyy1 + +ExxgRRqCWjS41dHIYKm7AEUKYs7aSJcwUi7i8pVVcQXxMkESdjxvvU8Up3xHiT6a + +nTPdGtjXQ9gNBbtJ/sMMM5TcV85TJ9j1JmF9S5hrDQaYBNHqJt5aBwiAdsMLhEVD + +wc6dbIcOgm2SJG90TAAdmIBRB+Mg4WoEPCBBFBO+J9bAN3yiFwUyBiXQcWFJIm3S + +yJ90v7hP1o4ZDIAiSeoFeGRmgZb4RWRSKuMY7l4GO7rK5iaxRH5SDxRU+obwVKm4 + +ii6F4qqRJO4AkUbKHGdGXC0xltTsZqY2hhMKMLjSsx2k9PgsIAn6TzBhkiafuDJa + +2DJEHYSVLSyZkuDFpJwiQBh34wwAogpYbAKEAoDJB+M34SMGWkaAIBJAKmRoAHmC + +na8JWUsz7hFKwITjsKRzU0ZkLVaJ0S+SkAEgCW8IfE0pzmcvE/hqhO83exssGbxM + +951DD+JUmGWVP97niFOtsxGWgC6z8DeI/VYbgMJanrk3ZKYqnmmJp6TCfZvU4wfM + +IJZBzhpIckCcmwjniUZgxwYvLHIWksyfOkgbwAiEugxAvcaHIEN+DaD4Bkg2AGAG + +BHJDEAEQpcy6eXJjzhSE81cqxqkIVn4FYpysgdiA2Y4pTv+AqCir9JooAy7wRFYG + +TxP6IQyfRUMseTIL95nj5OOPGeZ1SyFpJehrc52UOPhZ6d1RyYukZvM9mMjw+pyQ + +mfvJJmBzWeHIk+dw3/YRzk0rvL0FBLjl3yE54oYgGhKcRvRmAxAfjKXHoCzAKAlQ + +fYJ4H4yeARZwrVMudPFlDiiJlA6WVXOfqQLoplE56XAscwg8goKxdjvOXGkSRDgM + +OaAY/lkKxQUFbzaoQVPREjyBJFs8eVbOx7EKlO147wn/Wq59Dl5cYhSa1MYXtS3+ + +nUreV7Owy7zOFf4gaTwqvLHyx6o0nkaHP4bjI6gCkIoTfMCLHdJFEAaxO4C5Dkgo + +g34ckE92SAxB24B9FuJUFOiBAy0HAeIEAp1FXTiJlc8BaYqo7mKnpgdKHKMEPQm5 + +46cUGlt/AoqeZ/MAjNjInXO4MUcIno3BcPP4kEKAlRC2GR1zEnkLD2jETUCX2dHj + +S5J0fKkUpN2Kv8qG03LujvOZED1WRWSkegmxaby0mJawmmVtxNwatb4Yi2+X00qV + +tAW4bARvmmEaCEBro9AECGWmIDuA2gMXXwHUr6USyvhgyhISYssajLJxdcqiVYuB + +4NBeUPEaoqVXXQccNQN4ZZZMiymtAcpOCoUpDLR7QyDlE8khfDJOXYMdqZuAElTA + +fGR8KRsStefEvdksK8ZLyn8aLQyUHzTBR88md8rz5c9TJT5EvuEophzSbJYKsUc4 + +B0AqZJASpegFyEwAUBAgNIRsPBG8AIBcAbQSQHoFFm/ULp/SkBSgSGV5kIFBK2uQ + +D3rkkrzeowQ6luLWz7pOigqPgVsDcjSRvQXobsMiK8WoiPejXDEebNGKcqglFUm2 + +Tu2qmVR3OFzOYLQsGHiqkxCSx5bjM/7ezXlNTAASz2yXKqOeplEyaeCfJdAXmAJE + +YDqqOHxz9VEgIEO3BiCBAVMOgV4aqCKCNBQgmAeICwBpBsAigyzZ1U7W1FYrdRRi + +z1d929Vj8oFMUpWWfC4ivTpIq2Pbuc1WyVDmJPDEHrxBUhjTOJ/0llfv3CZ7L010 + +TWQTmutnTy31s8qKJqB5LZphVTUleWKr9YSqN5Yw5JWwrSXmciZOkgOXWs+Xs8ix + +aAC5rYP668RgM18l/N2okW9r0AUKHgN+DeiRhSAIEfjMkBpD8YkVkgRoOSChRtBm + +AMQMtJioMWSzQFxi4Zfiq3VjKiVlivddEloKV1lSdZP+nyUWWvTVoxwGNTFFCwJr + +RB+45NYVNTWjz9lL6kJUcsqmfqKFq0IilknkjX5GpvOeSc+NuWvj7lugqVZWtSXV + +rGetazPrwpWG5KBFNgnbjPVihqQ0NAJKsRI3biYB/gCIXwOmDaDJBfAUQMtDwHiD + +eAaQp0HgK4DI1Mab6LGj1bivY0Zd5ZO6oESSrVbAYS+EwC5XOWjHWY6V4mjBUDK4 + +F7jvFpsxTf4ufVbtX1QY0Seprq12ykNY02AZ0H/UGablikkzeNQeVGcK1M3IwuO3 + +HB7z5V3CuDWz0LHUy78/c6md8X449gKY8hTDczL1VOUDVioigA9lCGuAdA8QNMIE + +HCAtxkgrgN6BwCyTrBF1l9V1SuoGVrqktXqkZZxsJV+riVvGkEeujciHgi+z7c9a + +x38xEx2J7GcESJsTUmz5Nvi3ZeysIUqbDl5/Y5RptOX64S+7ZOKO1qj6P8Xxz/Uz + +e+KSWsL1JQ232dBv9mHy7NBkhzUm3yWpt2UCU1oMpE80+dQg/GYgOouYDxAEAfca + +xPQE0XxB4gkYKIPBCl5xaBx2Ku7T8OS20Dt1FiwOuaLigeRBGnmeqW6IK2Mcs00w + +ToL3NdH3rvRj6qHcppq2qa4dDW7rrmqNiSJ18cA/Tejs0FdasdPWszWBrx2YsCdI + +2t5f+PG18LydlMrgVTscwkxcqa2aMfNPKUIDDovgLkF2CgD0B/gUAUsJdDF48hYU + +D2ORS3HcBC7I8IuuhWAoe0caHpku8ZWbxqBOM74D8NuathUGCoagzmIiomFRkmxm + +YWSUraDIJrgydlbK8nByph1cq4Z8OxrV+qyrnL6ZS8x8c1KA0MLS1kqh3dKsG1Wb + +/+7y93fZopmksftfy/hu0BNg3hSq1krDatttz/BZg1iCgPEHCCeB3AoQYIWWhiAq + +ZSAoQGACdohRp7MyGeiufdo3WPbc9XGl7Txshw8Qq9d8bfnMGTRTII1RMLYOpwB3 + +LoEpbOJvdA3B2Hjipeuk/rVuN3vqyFCOvlfRnTbJTASlu0VUZpt1YzQNqk8Dfjpn + +39SFVpMpVV8sbW1RvdzneRMuIzSSUylWtSpTSHoAcAQIWinnfBJ4ChBvwYmckDEF + +ICSBQiD+xCk/tY3rrh+m69/c9vSHpbeN5vZoqXGbkdBiRIYMCYspAMTBXyh6COsp + +E9Ba68FOu9vdDv12w7gx2a3vZptV0Ux2gpfMkSKqfGyU4l4+wg7jqn3YZnd6S13Z + +kvn1k7F96w9Qc5vkQRKWO8YenZUoexcgVM34egMEFOgq8EQr0GFUIC5CgVJA/wE6 + +RqJFZajrtzGiQ4lrF3Z6Utxo/PfY25QEUzmkwEDsFAw1slnSfmXod4Q8boK+wA85 + +vUPJTV+Kn1SDRAwbssMfrrDiO4DPMF2CtBZJ0SwzS4ZLVx9El97Yg07tIPEyY2/h + +4OZ7tJaFqQjHwecsUoiWRGcNEAIEKQEwBchTolQGkMwCiDxAW4kYYgPQHoDH0EAU + +RJMWdLFkfCbt7qqVjdLxWlHHp3G6XSrt6Ahhm5FK7cUrq271B2MuhpmgYaG1lak1 + +Le7o5DtMMIGAxMnNA1PNQPDH0DUUEmNyiYJRLh9gGvA64bmPlrDiXUp9t4ag1cLV + +jtm+tVQcQ12DxpPutphAf66C9t99LQ49+CKCYBmA3gfjDSBpBFBfJ9oHnZGHgDtw + +MwYhoxrdsz1saSjEuj/fIf9W8bmgOeHIYmCy2rRfGwBvzNCbXTZp8830jozAaRMK + +aejuu6rf0YsP1arDyBr9XVBKVdgEoOB5ww3WM227aRvWnGZScWPUnljMGknYyYQ1 + +TakNMc2ba2vaAehs03KLkytp5NraJAUo0sAgHkxphJAQIfABQGDLEBQgUQXwDSG/ + +DJA3hl21Zvkfi2FHvja8agbLKilyHFZChpdLVH4jkq56VMB+ETC4HWYDgOef4i0f + +V3MF2joOwedsuRNt6W8Zhu013rU2OnWhiOw9Db1ihQjHDAGmJaSdmPKT5jTy9MdP + +tlWLcyDY2hk/Bsm1/K78gTbYx8gfiQjflS9bk9m0qXV9agwQZIP8FtXb1GgNII1a + +WAxD0aKAgwCs4R2AWhTJDL+6Q2/tS1S70qfEQ9R6GkhdAZl9/LQ8kmGBqRxgFqLN + +HNHNPBNYDZspTbafROn8nTWaoY6RcR1mw3FV4NHbgZmPAa3DzCyfRZp6zRjCddJ5 + +nqeYm3ASBFa5lfa2rhFzkLJBxlM+gGqiyY3o+AByDoCgD5yKAtiduDKaEA8AHsIE + +OU4YsVNSGkhkU/4b6rVOvbIchehBdRS7AnssFFezYD4TOYhhQl0BvC5aYh1TnImQ + +kwMRRYD7kXFzuJh/LOyOBmV1zHWjHd6YINMWiDjup9mxZd01q59XFj3YEbDnYHoz + +PPBMLDz8vCjxFO+w6NzKj3hAoUpYMtM0t8DYBSA+wMPVEGYD71fA6lhLbWbQKkTD + +e5EvPQCbN4/6Gg/xUqgJBJi8dGi02kHlZbmX6G+eRh1vfgptN9HiLSBzy1iYGMm6 + +NQAWNSH8iJNOGR9W5hi+Sb60BmwrkwiKz4aitu6YrC+lVesI83Xn+QHoO+OxgStp + +XQVyZ23LYlBD7B7QUKQgN4DYAgUvJRQNoMEJgCBALAwFhLgUdXWaWIL2lmQ9BfKP + +T8TYMOA7rOMOBDnurSG4Ousp652Wahw1kw9ObRPCSEZZF7E25ZdYV1iKJfD1kWtX + +mrWdzFJ6aoGa2vBnidiq0nesbis9WUNqpdaN4S7VJmnzhx188kFAiyMdAyIFuPQE + +IBpzrEcAS6Cy3oBVWazwNYG2OJ0s1ylW+lr/efBsWnBtganaYDeAsuMcZg3Z69Qx + +1EVDXJzI11E0Raxu8qpr9pprZDCVJyQr1JN0fdoOx0dSFjm1owttdpOjb6Tek+mz + +ksZuRmhtbJomKrQR7MHvO4K2oAPEkBpg2gb0VwFCgoC5zOD5IGAJdARBvQ1Lf15d + +QDYVPP7ijr+nPWDaav0cQeNOk4DFAuaJ1q8FFOopfHMnI3Nlcmhy3AbTVjXzbmJ0 + +hdNetvXqEz3YIfUtZJP0Wx9a1/05TbdvYYPbr7Xw+QY+XcWRp3DXws2smldUw6pc + +MuCJdtxcgW4vgIELYkznYBPAaYWoIzppDkgOA+AU6DAF/JS3Abedn4+Loauqnmz6 + +pislMtEXoWiYM7fLdNsY4MShzXQEc43sbvlb8LlW3o8f3Gtd3glVtr9X/RvBLbwM + +xJzc0Padt26cdrtzw/VBqA02bNPtsM+eaMldVdWJ1/pDpu8I2iN7h0BAA9l7igRC + +A0jeCPwbMAqYVMLcGDnLxvu53wL+dyC4XbKPF2zRbZ+catGE3tAhV39hG4xxDB63 + +ADCkQ27hdRvG30bzly2SJJQNQPNNqSBoiIw9PLWUHiYkex7MwdBRT47Fr25xbwdn + +meLrTWOhHKODKR2JdOsO6KNEsQB4gHAAMsFzUW1B/gwQKFPQDLRRB8AP85gKfs4d + +fGZbPDkG1Bf4ef7pdzZd6R5BKoTATcHc6baxPmDGmVi+DKA8A8RNdGrTKJjG2bdc + +uTXO7MDihWtgCZL8rlUxzrWSfJvrWx7xj9Czg+is+3bc7fK1cwH4zMAEQpAWYGmG + +sRvQYAyQYgKkSiCdwyQ2S8kLkBdDkBIhn9djDnlIJZpugbMRetwKqCbBzmh6JoBW + +Nd5ujmhXHK+MCf+Q5PoHCifiAJBWwQH5HcTo24U6cstcs7VZ4XT4mcy5OarHtaJ3 + +w/+P+WrdGMl8XUiwjKDWYHoQBo2qNmJXmMLkDHA0REtlrJqi3T8RU2weHnsxKxzm + +xADgBsA2EQbX0GAGsAZB7Ah8Ul4S+qxEvCXYAMlzS8vgQS5gA1nIRS6WBUuSXYAR + +jgJHcydADbUZkl85lOc3gNWHi5lyS8pfEuSXl61lzS5ZeEuJXGQPiKblue8uc49g + +b8vS8a2yuSX8r+wM0VOfdBznZp9l+q9OfyktXGQHV2ABFTSvuI1zuHOzDr3asPI5 + +r+wJa/qBKunMdzvlxkGqAEUXXbLkl5qA1dnPTT3rtV2o/9eWvFIdr7l169VdgAHG + +nKbNA69ScN7Zgkb6l6tG1gGvQ38b27hm/ZfMwk3yruR2G4Td6u31BbwN4q5ueeuV + +XNrqZQJDij4n69ZzKtxkD4s+vG39rlt06/TdivWXUbvNyKnbf2BO3armOpW4Hdyv + +M3Fb5GrEFzc2vJ3mr6d9q9nfBuc3LRst+byTfNvHXab0dxy+7exv631Lnd6bj3ep + +u23q7i1+u/1cLut3eb91025TetvnXN7115m+PclvIDNrzUIe6aAxuf39zkl+e5fe + +9uD3H7gNx2+tdnvn3Pb/d9e4yDivM3sH418u+QMAeMPm7i52e4w9muoPUb7Dw+9w + +/GuR3hHzN/B5Pelu83x7y92+/7fIfB31L9F8a7o+vu+3h71j6B7neYeKP7L7jz68 + +Y/2AUPAngVzsBw9GuePXH8T/O8Nfbua3CHq9++6Y8zuxPG7kj1J59cRv+Pkr2TyG + +8fc2vL1MnjT/J7zecvwPiHlTyJ+Y/qf73Znm1/p4I+qe13dniT5p7LcxAZP0rrz7 + +p4yCCfSXwboV0y+9Amf7Pi76l/p+C8FJg1YX9zw58zdAe63NHuL3J4i+FukvPLlL + +2K99DUM4AuQeUKyBKiEvnM9Eg4GuhKRpvWXVej1viemDxqzm1XjKR6GGC3hwTIHw + +L0RWCiHpy73KbC2G6r23wy9AB2AQN6jXKQ6i7Xsb1ji6DtXqo/X1V7/oZV7oezv7 + +krw7xOC+FcajCab1/Eca1EFvTXg1kTwE7uZFvOeToIKqwtnemvC7x/Gujqk3f1vP + +hdft2Z2/ne7v7oR7x17pcwCm55MUbx995T/e4HT3/lxd5JhrplENH277ymwvQ+1v + +4PmAfD4ZWI+MgzmP77fAB9g/0fF3g1ov2bk/eMf7a+M916J8Q+QfvKHH4F6Cz/FS + +fh3571kkcZxn6CxcKYr96PWsD+egDoH3OyvC3q2fvPw4Pz+B32sOf5X9oNfH+mZZ + +xfKMnYOMEF+3fNQkdddFxLF8Y/mEvYeejz6V9HrjgKkNXzL418rFfGvJdXznh5LL + +Ypfiv5712GzTw5BVNvpH2S1c0Qvpf7PjX1ml2B3wFf5vj1nwLU5tGPfFvr370L/r + +u/FvuX74KF1rAVRbEBX5gJhB7XjhcAPwEEDoBC4yAXQd1/F1YEJcnP4v6Xjt5l7j + +e5eSdtudwLUF8ARFmA9k8q20CgDeBcA/gXACpn+CuBRxMzuZ+oEWdA8Ow2sTJwcF + +Kz3gCqwdZoCXwYKW/mC48iz2O2S9o/LbqAfD+VIecKOfFLdwi2NbeMur9F1Zj5wR + +RI51m6r44sxU2ZjF1PArXWkF1+qea5VN+ja3aiQ/r3BRHeHoRFxPrlUbWWngn4bT + +tes3h3IAXF3xdivVz35cfPQ9xNdC/QzzPdZ/ZNwg8kPGzzU9QPWAOA9t3KL0ZcYv + +UVxc9b3Y1xQD5/H7w5cY3ej048/PNV309JPMt149ovEV1C9SAml2ld2PeAOs8wAU + +TzADIvClyj8xwfL1RgivPP3B8RHNJHSQGvYP3bltWYVCm9zvOYFjUrwC5lvhqfOl + +16ByCDoBy0yfabwiVF5VbyJ9qvTgOhgY/Q+mzB4/HgOBhk/Q+jT9dATPxbAc/UkG + +2QSvVl0YCrPYT2NBy/Q6EuhkgUIFOhggJTECBEiIIDehVGXAFCABdY7GmcT8WZ1G + +QFnMkESRb4JNxuc/1GyyRwL4S0RUEauSryOco8KVxxsPkcG1k0QHZuwIsqtLf1yM + +9FD4xzs8YA/wH577ZU0fsz/a5Uv9lka/woUkpTVVVJG1IilsFSqRxj6t3/QgxRcq + +TL/h/8zHae1W0gAkpiQD0fcALoCnPFf35cuPcoPZdfPbAM/d2XRT2o8F/clzoDeP + +Sa3WDFg6D3sA0PGYLoDH/eYIA8pgyeUC9TXQugA88ArLzWC6XC4K7wrgkv1PcMvL + +l2IDIPHYKjcMggTz9dDgr4JJcdPD4Mzc/ghV13cOPd4MQDQAjt2uC43aVxWC3ghA + +JYDbPQN2hDngkl2E9EQsYLHdTgs8V1cTg6V02DLgugKo9UA+NwJCHgugOX8zgsAH + +sDlPdENYCMgfYIZCfgwEPZdv3fALLdKQ/vEPcyQnELAAqPeEOYD6Q3V2DctgjlwW + +CIQnALRDpXf9w2DpQ7ENZxD3FYJJC5QkUMJCWQklyVD2Q+N2jdXgsEIRChQsADUd + +pQ2AIFC6QpEIyAjQoEOZCJQpYMlc5gwNwBCbQ3YMICuXZUMzc4QvUMFDzQsdyeCY + +fWdwA9fQ24KLcL3T0LNDMQl0NrcbgggODDLPWkI4DFgnFwT9eAmwP4CASI4DLht+ + +Rr3W9egJCyeYDuBn3B9JULiW281gqvTnYr1UH3J9/9RMFEh3vI72R1JkGYCp8qwx + +3hJhZHUsKjUDgWOj695A3/X44hXXiF7CHeUihgFVAyQPX4SqAJg7D6pBvSjCxvF7 + +1hxNA+cKyRXGdmEd8/fOoF6AIlAByd9cfE3CbD2MLHFKE/fIrRvBhzXcJp9Tw1ox + +19bfYGV44dwk8LvCASB8KN8c8WcTrIH8CP1u9S4FaDXDDfYP3oJQMKmBfCAIpJww + +tk0IPw+93w2KE/CLw37zAi1DECKgiNxPIXD84IjH05MOJUX1fDAI8CKQjvwonizR + +WOG8Od85yOOmUD0Ii33npYbCiPV9tAhMNYAdAWPwMCkw4wOw0U/MwIz81QSwLxdr + +Ao0EJcUQv0OrdQQpgMcDnA5wEqBroXwHoBraSoFsRrESoFCAgQFuHbgaQBAEjA2g + +PDRCDHiMIPmdKASIO4As0GN1iD5geINH9miRfg8huSbXxB1zDWemLctQy5xmBtYa + +gIMNvXGBV3UETMHTyCwHUawgdt/JdTed09ffy+dInSoILs/jRqwBc6LL0yv98oUF + +0igXyXYDVpoxU+XJY6DZaEOouvSgiutg9Rpwlxegqm39Q0kNpxccRggl0hDSXCYP + +VDcfe4N5CTQ0MIDDXQxyJY9rQjEMqiwAYEPsAPQ0SNmDSQoLwwCaAsMI6jLQ1kKI + +DGougNGiSXDD1cjYvOgM1C5w+N35CJomqPsApojt3FD2oyUJBCPXRaJVDBXQaLcj + +ho7aLWjsbQt3QDhXI6MPd1osdwajeoyaLOjA3YzweiLbMd3EJZorAKdDLXG6I5ce + +ohwMVCHIvaNQ82og0IWiYQzNxmjDouaNWiwAMGNRCO3ZaPuiYYuGKEi9PAGN2jwY + +gTzuj/o+aMBjMYyV3eioYz6K2jbQnaMjD8Y/z2ejkYvGPhj7AUuBBidAhwG4DCvA + +rz4Dcfb/j8IsaLBQ7DELVmFSDg/CTQRE+7PZ1l1zvWBG6F/iE3Eu8swwsOmlMLRx + +gY8jvaSA8Y5ITMJEDIRD0BCxhAyQKxw46Ls3ZgqvbMNNgstUDEPAZY3H1c4LlVWL + +NiRAwc2t5DwHsKrDGSVr2Hwxwo7xssnRJmDkCnY/n2AxZAgsItiuJeYGEhvY6b0y + +cHFU7yrCCkPPFKougAOM690Nd1lHD44hQLWwC8amDrDsww8G99awjsKPCi+E2EJ8 + +BveiJtCAkPQLj9WIj4FW1TAqAHT8LA7P14iv0HVxRi1g+mLEi6bW3HwBWHWxHBIu + +QQKXcBvALkC2kf5XwBUsJmbSLXBdInvwMjaSVWVWcuUDZxpUuIXYHpdCkFIINi0g + +p9BGBAwjr3Kd+kbIMXYm7Ap0csTbYp0KDdFd437FgoiGE+dD/Wqxll6rOWVidEHA + +e2QdYo+oPijnTLsE6tgI9KKTZUojKLvwKYZNjqBLrB8w5sKlG9j9NqwP/lRdu6Eq + +Ixc/ZFg0ADG4kAJOj6A9gLoDfXeN02iDQ21y5cPIL+FFjqor6Mi8SEkmOdCuohNw + +uiQvY6NJi9g+0J9caEzANoCYYoN3C9oA412YShogDxbiCAyAO2APo1hNITC3Xjwo + +C83bhKujDgtkKBiuEgaMujoYkRMDdGQsgPkTaErD2zcPPHBIA9iQlqOOC6AgLxlc + +DE8gK0TyEg0LbizE70M6i+Ezz1VDyQmGOcjAocRMsTwwgvzS9OEg4LYSZEimO2Cl + +Ejt3EJnEzBLYSTEhL30SYY7xNpijEmGICTTEoJL8TVEuqOdZuokSJxiYY2l1wTGY + +wAMri0EwL1Wg6gQvR/ViE9bybCSuFaGyctPBQNgFiubwjjihwrBU30i8CQPrDZvA + +oVDioIuHn+QJ/SiKklNYsmGPCcI3PBrD1oZsPnChXLLWx9yfRxj2d9vR2NGTgOU2 + +FqTJkuOhkDI4+cOEV5xCZLWSEpNrzdjnvFYjV0IGIcMHNtgNbCbDAfW732T3wwcM + +mTlzerwXEU4jHzhw17VZI+9qoToDh9Kw+cLeTNQEmE+TXkz1w+SRk/5N+TXYh5Jz + +xK8QAzOTewkuJJiy4piP0CEAQwJZiq45Mxri647iIbjc/FMKYS7EnEL+i4w5D3Ei + +JAf4AewgQWuIexkgWPXLR4IVwECAPqHiEjB4IcPC79wg/SIqIaCU3BMjwlIbTphf + +Ca5wn9rIs33HkOgXFO71i6QSIX8PIhQy8jxzVlVPiVHV51393nG+MYSgbKJzltQb + +Z+MIYkHaY3fj6sBoMR1TLb0HcwscB/zdE2TEMCwROTboJCtCo8eywczOKe12tk/c + +qJyTnQ9JMPd0ktRJYS6EyhMYTzghlwUTiYg0IiTUY9HwA8qE3BKsSMaCRO9SeE4x + +Mc840qRIcSbE7RIMTQ024KjTXE3RNkTwfA6KDThEihO+ivU/NPUTJo+UOSZfEotO + +pcRUxJMrTqEpNMUTq09l1rTMTBJMDSy0wlITDmYxP1ZjsU3JL1s2YdzlsUjvdaF+ + +IF6ebyOTLvc5iaTnvBCOAjII2709AucaymuTRkuQICxZ0pH14g/6VWknSlk5UktS + +Ogc5L2TDw7sN2Tt09ML4FvvNZLPStWC9L3CmYNWU2TFvGFNyZy4liKMCUU7FzRTz + +AjFOIArApuMJdW0nE3bTBEomOESnAjuMOgQIeh1MBkQKIBpB5MJtFLBkgHgHcB4I + +HgHwAJzX2yniIgvCiphg3Qf3scERJHGCh7gNeL5iN48eViBRU+cwNRG0rTylT1TG + +VM6McMk+OUcXnHRVgod/EoL38VU0KOHElTCKJVMagi/2t0P44yASijYMgi3CC8Vo + +JTRAErqmKp2gULBtToEp1N3IiophAQSOFT2yGDkzV1LZj6EjBLCT4khNwzTow8aK + +RjzM5HH9SIwpTwY8IAo4LzSp3GGKkh7MitPgRnM1NJcSOomiVM8i/cNKwTDErNP8 + +y0kGmLDSq0vBOkhPMiAJAyDPUj1A9JEptLwTvCSLNuCBElowLTfUy13rFLM7dwlT + +RFeLJUSE3IrMLS0s0rKyyhE3LLPdegOLKwSiKHeM894ssRNiSzM5tNA8tjDrLSyY + +k0JM8TbMjoB886M7zJCyqE7GIJT3MniECyPE/zxBirEtRU0T+si0PEkIAqhPxSnM + +w4JjdCEu8CKTlglJMmzzMn6MdDOs8YLiSWAzJMTCv0t1NK91oB2JmVscHCKfwagG + +YC6S/fY4ATNMkf8I+9E6JuRPYgU27wNj0mJSBPSkfVm3WgC8OsmDVbvGqFl0PIH1 + +Nu9uSDxTyShoxHIuY0kLBFRznva3iDi10OYGhzscqrmZI8co6LRyeOY1KSCKkjH0 + +wU1IOdARznvfEy29hk0HNx93WIHW+ymvC5jnZN0CHKpzEaEfHTYHmJLMC8ZgA1hd + +5jWPnLqJmSZo1fDAZNsmTcRAxMC/g/6FoENjCwx/HAZDwVUjBTegIvnZhk4upPUC + +PWIuMkD7HRbTSRM4wsPYxNbdsPJ9PpP+mDsTTWbKiTYUxiOYjEUyuJcdf0riKz8A + +MxuOMzDQx6NOjbZMv2gyBMbAA9BKgECEHhB4mIHoBToHiFesHqKACClzgFlL0je/ + +aiTbiKCNSDl1NYxxSGBCMyyMn8bIobWaEXMxf0RiHAg+KHEtlOVM4zpBYgSKDL4w + +iRJRb4ioKP8H4k/x9VFbbVNfjdU+hRyBP4zTSEg3yfrkbVA7JTP9gyHRxkfhnHZP + +yRcCo2BL6Diox1N/EDM7FyMz+091L8z0EtrOWz7AGkM2yYYnNJ8SwASGJyy8Q6ly + +rzDs07PsBT8yJJvzj88zIfyosvkIOzn8i7O7TskgPNK941VHSzQ/iPnNp84oXiAf + +SafOoDl9rfDcL592cr8NsCSvS7LdyEUpFN7Tv0yBI4ja4v9N9zAMgPNfy1gp/JIC + +RPIlPQBrEFymsR/gX/EuhPANoH+B8AdCQOlvQQIGwBAFNPNCDu/fDPsZs8zC1zyk + +or0CRwjIpIIrwqMj4nLy+soLL3jO3ZjNe1WMi02PiN/AoP8jm83jKvjH9EKLvifn + +DVJid/nF+I3MB8sngNTcTNtR1ZM0RtT/j1VHnkECrfa1Hnz2IxfJgScWOBP6C18z + +/2dT2IrfP4iOoj1MODxC53LKzaswt18LhctVx4h4w0uJ7TkwzwtZzk0GKAfhFYhA + +oGz30+FIriv0r3NT8sCn3J4isUqIreilsoLP8LQ8ig1cc9sLRkaBSASoFLBcAfjH + +bh1IiIFsRZgZTHkwJ45wDwy2UrgvEIHgVWgxwI1ViSByWSE4CSDRC9INVTOuTkKU + +5TeNfwq1rTU23PieMwKKVTr4soMEz3aUGi0K/nKKN0KArCTP1Th8xHWUDhGIDAf8 + +l7f5X8g4zMh0TN0rZM3sLNMj/gG0dMlwqPMsXDAo8KdXS128LokoPOiyrEgrPjcq + +Y8zJ1DyYyJICKno+zKPyiC/4qoSxivWEeDmo3NIyAoS0bLYTys+NwRLTgMIthSIi + +vtJyK6XClUESQOBXNeTSqIrHuSjkg7hIp3FUnOxy0w4H3gdKSsHJvAXGTHLpLWcn + +r3Zh+kj3zfTo/ZIs/TkUtIs4j64v3OyKdXAErn84S8/NWyu0oottxGgLkDTB9gIo + +BkjZgfAEkARMckD/J6AUgF8cOAJ1XzFWizPIDUPIFzEyRkpN034LFlUYHEoscELG + +ykOgmf33yJCzrhjDHMvtxrzZC+y3kL8g8B0aEAoq7QWK1CgTI0LViu6UbM9LPvL0 + +L6nHYqkznTAoUZd5M5k0nzSxZaF3Sbed02W1Li7F2uL185pxYsR0xBKJ1kEnF1QS + +A8t4t3yTM5EptcTsg0KCKKk8txGy0Sw4PLKYAv4rvyOXe0r8LuIDbPBKWy6bI4Tg + +isrM7LwQr/PCKf87fOcwNhH33gLCwicLnZqoacIY5DwZ8MXTsw+ck1ipwrQMQKGI + +j9I9zUikwPSL0UnAv9zt8nsqgDgijso/zwSqDKlLDoU6H2A16U6HcBfKWxFwB3HY + +gE20W4KFGCBboHgGaLE5DgraKgePlJcY1ZBeIEYl4/pD8xP7K0t6AbS6Fzsis3Jx + +Paz3LL9CdLVg3eImKxzNjPrzUeGYqUKL4lQtbyn0dvOulO8341EzQy8/x1SIyoXE + +ML8bTDEQtF5V5gvN/IWwSx9pIC5XZt0yjAszLXCrTPtTcyvTJuLjzQzKLLt8ksvO + +yDQ+CpPKaylCpJCAPasrLcZKrUPRK8vEcuxKxy6mCECbY19I3LS45ApSLeS3cv5L + +/03AqPL5K1V0UrFowop4VbcYjVwBiARoFkRDaVEGwA3oGIAQAjaVwFcABnH8vQA9 + +SmeN4AMPYjOH8wK0vEgquw0ikNlx5NxLxtJC4EOkKeNN0sUcnneVK4ym8vCvmK+M + +5VKWLAy+s0fiQy3vIor+8qitnwaK5TiNhjgA2O6ymKrIXAkjU9aG7B1M+3R4rbi5 + +5WKif+fTLcLhgkSuxKxKnrOjTUS9nzKyvM+socThqwao8zgS/zzGrzPZssvKMS1S + +p1cq9ZmGXQpJDeIAj5vFbEOT1yxIq5L3c1AqT92I73IFKTK7EuiqtgiaqsqWeW3A + +TzXJGIDDJbEYwHJA0wVRniAdAC2nGd9gHyopA/y/Ure0xNLlzHY4gnC3PUYoGHBo + +twqmCqGKkCdRyTRGM9yPQqcg/J3YyFCr0v9EfSysz9LxDdQo7z740iuqDyK2oO2L + +qK3YtxMd0yvTa1G1c1KnyJja3iLxGq98TtTv/dqsEqnixyheLww94ohL7MiytL9D + +g7UKoCIMyarHd+auGrpDLszErlBf8/jUeBaodjF5y1k3WyuSWckXKX4nRZYmEEPf + +JAq3L9qtiOri9y7AqyK+I4UvMqBay/MlLrKw6BgAy0eIECAEQeZmBAeAWxB4AOlX + +uAv1fAWxCTF086eLwpXpUmGAr1nUCsFQMqVXNihuqN003ioqXzMyDGIUWtdKUbdf + +09K/I70uUKMq1QqxqAynGs0Lgy3SwKrCaoF2M1SqkPkAZiRKQpAlzCltR55dNaTV + +TLcogsu4rGanMulJBgzquErgA4srITxK6NKjrcAlLODSu6jLP4T2EjtJ9TlK84Al + +qbs2gmBMe6ImAPyyXcUKSK9qz3MMqMi46sPLsSnmtpjuIXusgySC8cFLBgMBPKKA + +0wUIEQBUgHmzYBmAN6EUwogL6r8q8Kb+iAqN0simIokcUrzfgS8s32lJjnU+EdKJ + +s+ItX8MKuQuRrE6nCuTr0q30syrFik+FVS77Eiofsn4nQrDKti/OriioyzRzZtFx + +Y6wjMaqp/w34ASJzByjwEziscp665fO0ysHZmqzL//MqO6rXijur6rww48vcS+yo + +evAyza0auNDrM1JPMzDEkUrgDuGocvmrrsqWtFzg7I1mVjgix5KJLTIxZOm9lxNu + +VaSHkrWu5LtygysOr9azIsxSja/PzJc+G00MurbNW3FLB4gEMigAYgc+2VKVMU6E + +IAEQckF8BiAGAFmBiAb8rYKdIn6v8qawgfzpkSMkf1+0bFBwRmUjgEsOjFy8gaph + +rQJOOrydvIj0t8jQGtGpTqIGtOvlNsqzOqDKGzHOpo5Cq8MrqDIyzEGkzDIvnwXK + +1VPXCprEywyNvh8TUNXpqVJBuruKKG0qJdTaGjmtLLnQmNL/cBy/UP6rPigosOCw + +mv9zFrv84RtHLaCUim59KIkpBEdb4LHEHMjfTkvChtapevUajKg8qFKBIvpsJcaJ + +Axo6dDoBRRbhPANgCLl8AHbVRViAGIHiBjtbwFcAhAIC11L3G++t6t54gOpfqCqZ + +Xz+lJgfZxd49hGf3wLd4x0u7qlbU+ESqE62JrPjcKuYsSaCK7GuIrca+BvyrMmvO + +pdlgXEmtoqkNXlDsMeSYpqsFy65e1np10WchBU8o52zf5am1qp0zKG5qqErN8ppq + +8KWmqNx+aFK1NJ0SB6hluZaBm4cqGa1KzKjh5bbfisDiVIPbkUbew5RsXqdypZpX + +rjKteuFL6W8ysZbzaq6sOghAGjSgAQIN6FLB3AQ/XcAy0BEA8h8ADgEqAigTwVvq + +7m+jhUgiM7xuCqBCviEZhkgkQpn9j3HbIJLLnLsBcjBayJs5A68h9WwrQWsBvBaM + +ayBv9KUm6Fqzr0mhW3hbxMlBsky8m503rJpgfdExb9wUposL5Ecrwd9SlNMuusMy + +j/xJb9zMloab3C6lvQTOa7spWCHWvbOQCfigD3taieR1pgCL8ztP+Kq2ohPNifXZ + +1sCgas0eq4CFq4pONNS8gZLEC2K8AtMzgs3SoWbRWvWuWbDaoDMDdG23bObaysut + +pHq5WwxsOh/gLM1hUEAKIAewtFTwHJBLoGkDLR8Ac5p0BRQI1tZTfqxJASygqzJz + +AqaJK1vxzhCqvChqfEKj1Lbm2veN48JNNZU6JpSBGsPjcgmJumLvW+JvAa/WpJuy + +IiKnFXVTs60NrSEkGwF0RaC65FrKrDI8lWViqZaqoTKk2nY1YEOJKQqD066rNrIa + ++KpusitqGxprbrRK+hoGyWynkKSTYY88sHKDQ0rI/bRIJzG/avQ8MJfbq2stoyAW + +OjHKRsOOjqK46m2waqFr3803FfbROjtvYhx6kRqZJ8hL7WdyywxcVji2ko7zjUQ4 + +nXJ0MFIBkkKS52ueuFaUCxZvHbxWlZu0aSXYTtnb2fduKvLnAAIKr9/gMtG8Anoa + +xGYAigFTDgA4AXg3+B6AIEFCBT2jPP8rYsx+rWdn6zZx8xk0VeJtbH2mfxCSHShJ + +mPcdOrcXAL4qwFvjqpiopwVTuM8Kn+t+MwNsg7wo3h0iin7LJuQaEO1BqjaKFasn + +ok2Oymojk90S1Dig0ZWwtW1SGxwpXydMgmQ6qyO/Noo6eqqjuHb/i2lyAgY3JLuu + +9isw4Li72yxLoAdxuirOjSpuvspG6uXMbokDpOpmK7bwffPCvBP4GNSU6LfV8gd8 + +Oc7toaI41LSrmbdAlRp1r0CxyiOqJW1ZsDdFuipOW6UkWbrW6l27ZucANFSQE8BK + +gMtAoBSAUsE/lKgckFbhQgHpSEBwgX61uaz2oLpkgQukCuebz1biAypi8wVPQVAl + +JyNgDVusnyG1f22vKPjgGkFqy60q31pAs3VaBuWKs9ETPxrc68NvK7I20cWvEsqH + +IT2d429lAjlYEAwwSlqm4lqI7MHCYweLMXGDTHqC2kzKLa8E7UJm7N03HogCS27j + +rnbOosLPQT8EgSEk7fi7Hre7ZerBNgD1e6VzbMVurXuwt9gdbqySOWxasRoPMZXy + +tLJGqiK6xGDbpLBF34bCIFjWMaokCSdq+Zqu7jO1FI0bV6h7pbbtshXvZ8De17pl + +7jerZqWFXHODlwAEQLkD20YgTwAV4VMQgCOkkVRoFsQaQZIAC7vaz+n+qAa18m5T + +0aFHHH8rIxggx6M1S5yGyBHRGuiaiewDpJ7TpBJtA7IWjOqDa0mvKoybYO0rvg66 + +FAwqQ7rxc2DcUH8OrpIcm5CpocFee/Ymzbt5OqAxxINFmpF6uAsXp3zO68MN+LCY + +9hp4b7Ml+DbbBaz1LrLBqjoAP660sX0NCMkwZuRSJ6wQIxybwJ3Nt6p6hrtU6dch + +YFWgt+c7oSLBuheqM6x233onatGqdtqi204/o+6o+ivy9AgQB7ARBbEECBUxHsMZ + +3cAQIUgB4AxnHgEY1XGyeONazRJrIBrAa0yOBqGjIOjnF72opFq4Z/f5sX9JK7YE + +/a2O2nK4F8eoFoy7nnRvKb6QO8ns+NKenKuP95bU/wJr6evvqRa0Gw1JNSXINNuq + +rWTKfPE0dswcyn7kXfnpYsHHM4j/9Z9Ghr666G+YNpbqXUrPI9gkw/u1Dlessp+j + +hgebMYaKB3IsCgaBgTt4TWW6UPEJLB9jtN6rsq/rk7lIAoQ7V5an7OnSVAsFIVjV + +oeXTU7ikgYuNT1anjqHbfE7/v0q0CvktM7J2gPI3qosqgd8JWOqwdAGHkRAXskHs + +UIBcp4gfAFIBgKFgBbhggNgHoBgnVgph7AuvCnqyEep5vC6hgEMDebYihOiToVEc + +vIoHYq1VIYH0u0Bwb7Uq1gbJ7curKs4HUm3Ku7yntPgcoqcm4mqEHSaw9EFiFIRt + +QkGym06yJ4DvC4ozauKwjva7yG+r0nsqGlQfI7RgmlrX6OoqrJWCcehbxOCZspbp + +0H/iswbKzNe8Pqt5rBjGMiSLqw4LuG3hyUqEbnB4ZqSdw6Q51Air1LTVoinskKFi + +LWfc3yaBkopKU8xxkDkp0rXc0drUaTO/ctiGjyswc+Ghyi2q+7ggIoDgArEQgGfK + +2AU6CBAhATRhiAYABADg5U9DAZaKsB4EQq5TnK9tIyXmhSFkgrIy5l+zGZTvTbLh + +cvePIzTcc4at43Wj0UJ6sKo8RnMKQZvvYHSgoYfb6RhngZ7yw2iYaJqSqgfpqkyC + +PqjEHCHJJFsF4HDC09A1hwlrQcam+QbqaKvGk0X7/ZUXrUHmm44ZV7eR6SoMHnQ2 + +7iuHpKvjq/a6BuXpsGWPOweSGHByYP16qPIUcOBPUoMaTcQxk3py9L+tAuv6aDIf + +yLgPB0dKSly7bXLqTIxFrxeZ0xjokwVZy7aq/7dqn/uRG/+mIYAHf81lwFGw+5Lo + +j7UhiRnFs0wFlnJBKQfjC7iaQWPrwkaNfmVOgc+zgrNE4oYyLwGi+1kd/sSB9eKf + +aIYRkL3j6s8uE6Gom2VM9aJRtE3RqZRvLrlGCuuBqqCEGjYrg6YowfOeR1RjBFkd + +7vRYflpFMpYYURJgRx0D1dVK4s2HU+JwpdNgoclseKl+mTpX7eq6joND43DpsE70 + +En4rlDD3UrMA9dQmzJbL/xljz/quyr8f16bhlsqoS+UsTtpccB2MM/yDQpCdgm0J + +6V2nHHB2Tt+G1Bb0GR0kx7MPjMJgS1H3S1Aw4ArCAcrOMBlWvaianLFA0FLqSTYJ + +3gphe7MOKIoI48ifO8kLI8IkoZc+Ec97LukVuLGf0v3vu7zOs7P+Cbhy8uxGJAeg + +FCBvAHQCFt+MFTFT8YgSMChRZgLkBpA6CwjRvraR38th6KiFeNwGsnIceR6qoKLo + +fayBzlUTAk3PXujrTKBjrfbZx91rFGFx+AyItlxgYagbPgGBu4dCu352K6xMlUYj + +bcmpnsHwJ/G8BNga6nUfYV+LHngTM0w2aVEZfgIQBIa7xvc1n7OuvNq6rbRo4YYb + +/MlEu1h7Br0awTaO+tNYakh/joDH3M7UJ/GxO+sW6aY0sMco8XJ38ZMzxswgsY6r + +EyqbP77JkMNAmDQ6VulCMJhbr0HpQsEt6nGG8bLE7Eh0UOMH5powf08ypoKDkqWp + +50ajcVpnCc27Wc9Cy7MFafbo30V02KDXSfs6ZINylksvQnSAh7dK3EkLP5IuTmCT + +Cy3TH0l6e8Gjk/BvD85uj73Y4saM6eVrfvOKGNSvYnwZ3T5rdsB8GZva8Chmhw90 + +ED8SIqSYLGvekSaiHl61EbLHTKz4plDiC/qHABbYO3E866QCqG4BlwaAG8gTAZwC + +bBNSsoAYBCABAEP0Ua3mCbHWZ1PJsAIAVllIBpYUIGzBVRLoZb1OZkQB5m+Z+IGZ + +m4muma5mRZ4wG/BpRptiFnuZmyF5njAOkD8mIOhWeln+Zoo0K6NZpWb5mHsENocA + +pZvWeMB8BHQt1mzAZWberOAKAG/BcAELnwBrMfoAtmoAK2e/AbZmkEIAaioBOdnj + +Zy2b5mW4LAEOkiAIoH3BxwBAHJBN2F2atnVZla2HtfZ4WZNn+Z4kEOluZtgAoBvI + +OyqdTo5vmdLBMQKFDTmM5u1UOhiQP4Ezyc54wBT7ZQYkFjn9HKbBJrz/EgE9nvZr + +Ms5nTIJ8p2hswMmfnBwAMjClGjAQ0GAAe5+cCAA= +``` +%% \ No newline at end of file diff --git a/!Załączniki/20221108121937 2022-11-08 12.20.38.excalidraw.md b/!Załączniki/20221108121937 2022-11-08 12.20.38.excalidraw.md new file mode 100644 index 0000000..9161e46 --- /dev/null +++ b/!Załączniki/20221108121937 2022-11-08 12.20.38.excalidraw.md @@ -0,0 +1,1760 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +%% +# Drawing +```compressed-json +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 + +nZPjcCrNULI2TjcLmyV+bvUMKLSc2GA5USCjJPVMcQNJi2jqH86UVthV/SBoK3qf + +Ut5OzLXc3t/EeCjHtDwZSvwR34JbfxBoglmgxx/jHHZ0SphW2mBO5oDQN2ZNYXac + +oqllLpLHXUFSK7gxNDPXMi90c901BaHEl5fbBJ2wnTY4Y56F1WnKCpP5tSx2+0qP + +NEZGagZWjGPNSYMwTKQZONMVhDQV1zRA1QnJFk7Sjr/XB22ztcPRNNvpYYIkENvp + +OF+nJox71/p4E7OOwkXUgZaM0ap1TgN/vDGMdoAw+pKR7dxstvFJJYME/O4jgqGP + +/sOOGkDRx9IiVjvMf1Cml3VJyapljf6O01BgyMcTandM1C3XMCTlG/lOJGYJZ1Qm + +pPiX6LHWsFmFM1kiQMOzknMl/Jg4xySpmdPEf/kpGYZQJjGeC2JidKnXN/vmq0Nw + +M0ItBZ8/NX2AkBORbS5pzo7QvNvt7XW3crAdAFmOgEBtzBEr3z7JtDs8NEanhRjA + +967ry0msrX9UoJxtysxsJhSA2F0DEGKMkLmSpMA7CCAALwABoxEkPeX0MQfDNCEG + +UXoyt4BZTVt1TWPIdaWxEsasMxtbRUJkiUcOGhfh2zCxpFDlQtKpTkns2Nr7A42R + +Drwf5TinYcfXZqiAjkk7tzTl5LOOc/L52hIXZwCIwrIjLuiCuOIq7shrglBu7dm7 + +uzbhjNyncJDdx5H3VqKoza7hKuKSUjJR67nHnVKe7cXDz37ugZeXUTrzXqPpC5no + +nS7yDFVIXR8pprxXaZ2Oi1dzLVvidR69XdxpifjtHMsDoIHU9B/Y6PUzp/z+JMwB + +HBgFa9AZAcBiuoHPRgc2wNU5dHFvydYzlbTuWNGNfi6lEaXcZH+Vig9vyVUdY+7+ + +klRj/tR045ElV2juUYtqFHwHscZhx42am+FQf7DSiZTciFcfE8tLTdi6x2rk81Pd + +Cq6dZSa20rdfYadnq6OqLrwa6xReAXu7KZ7w23uC/Zq0Rn4vWeM1gEmCmiOAPK9p + +8H6ogPJfs/j992c8f2rA9j/mJHqpM+k1kpz53ivMfZ/O9Xwv0f3Lgzb+n8fuPbv0 + +2X976C/PHCVXvdmehkJf2d+37n9E4ZYeLek4Awk+lSN+QOW4zuEAcAVWTabWU4Gg + +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 + +bSVv0gAVCBAAA=== +``` +%% \ No newline at end of file diff --git a/!Załączniki/20221123102116 2022-11-23 10.21.43.excalidraw.md b/!Załączniki/20221123102116 2022-11-23 10.21.43.excalidraw.md new file mode 100644 index 0000000..aacac1e --- /dev/null +++ b/!Załączniki/20221123102116 2022-11-23 10.21.43.excalidraw.md @@ -0,0 +1,7636 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +%% +# Drawing +```compressed-json +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 + +2T5XerblcOmeVFJSZwn73igidz7o3ekSdLVvTzter768OvLiouA5goHIZ+5f+JyH + +Pbe8df+UqYcCRHlvfhyjttql9Bg1VLd9NoJZWLmuALmYtTeb6Q8Z9v0to4Q6jW5y + +8VsnJTGVjJ/dZpl/cSnI+VMR8i0CYDkD1YfABuAcmAUANXK2YENeJAMg3DTsF01l + +myx2SERN5+2A+xrmadJwoXdyzrhAHS2ZeP9zveqzl/vqzjDe8m+Xe7T7HtD7vDcG + +zsU2CeOUTBIaywrmo4QZLACzZF/XfnLw7fWVAlWrK2+fWp++cM9txtvjgJsgkkCt + +BJjs3be7je2D580b7rPdXGsjUiH9puyqhFNTN09Baj0DrdwFHf6CVVZ/rLX2aHgS + +cv72fjsS1pNMRhBAjJUPXYAMIADaUYC08fAByQKkCogZgD4AIQDOXGG7bIHnfCo4 + +ZcuHwbevxa07Tr53K8coUMqNjNfYexZeDl5ZebTrsf9G1VMItotcxt7ed0sj2IMd + +K6O/DC6caW2vsJ0k5f7b2jdYltI+nlRjcrjwbtdrt2dPMW5d7V5yPGbgZjcTSitc + +TEGfgntYcL16FcAnqoOkLuuek089YKexFfl19hfQr1YcUFKE9CTtkubD70wYxqGc + +mbqQWnUpNdw+mVn7iwn04V9dqAoH+dfKxFVX8sdcpBhdeaqxBYiH5mqDUKCwEGQe + +CEBpRegGmxdCFraE1983Me5+ytar5qY7Ub7KKryIWmRM9cTo6cy3kk9c/k+MEQUs + +Xk+j+8nS+meAS50X0pHAWO+DS0c4J5eWeVlPOx08enJbk0/xDR33/5Z30WDt2L+M + +Ouq+l0+6xj+DNE7jzs386/ksn81lMR5gD0AFhhgIXm2EgBiCYAKkNom1SANAajjH + +2zncg91uMpdvnckoP5tbhT7kpg/ZeLJlaPIbzA9yp7vev93vfv95NkhHnDeW15Fv + +bL70hGeLFY/DTstWbFdhQcDRQ0H8jHkJQE79drI+aZnI/plA/eu2YHz7+mLLDkkU + +r/L7H2epws5/5cdf9b1fFiNdrVKsLGJn+5T1jn9PA/MDibL7EpQTnsjA14SAo/5K + +NTF2B27cTJAWu6KKa0nryoFtFIPZtbCh3KwIKgCifK82dMpj83xmLFCo+DMeoJ1l + +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 + +gQFmPKuj8gpZDQoL2bKOil2DNIq++c6LI3Jh7UhYH7T4mXlLOkpMim+SVpN6SxdD + +9Yozc8VKCoQ8wC1z+goDE6tcWwXLnbH8rYs9rG2KQkHTSVnUNUrEsrVKIv1+CyNL + +w6w7YwNLnxwzrDIEn3NCggCN/SPL40xlX3MmHBpTATKMyrFdF3JlhPeNgGAXMFGc + +qpkj7SFS7fIFfPf87vNANaWDqYvBDTEziTMWhIVdXgzQ2Qfj/kpE0rFLypJgsl/c + +jbhJ04dKmI2BxKoAcKnqwCBAgQFUgImzv7k9AP/j6ACEAIIBSol9/TNhigsboqB1 + +h50k6BuLA2RCApzzo/1OcjpL7oq6SkTKzIpzUtoKr0veizoLM9JWCRGopKLNi/AL + +JgAN8SJSRgtni7XT5ksNiMHS+/JWSgfyRuzcTABKmfgQXCLk8zI17XWjQEoyi5Ac + +x2Q0ggsic7PE9AELaEuoWd6YbdJxHf3tO7Q6ihwhzVknvYEKNXOUXNhTlK2s+cWD + +Ed0exHOIBfD8StOKckNO/YOwAMqIyk196dJ4ADwQY6hrTZXIQgB0gUmydAGGORCo + +6rWYy64tl1NfaYNyKfL0kuyhGkv5kpWKbLFqyrqJT8kEyxrLhMvF00TLWst7iwtc + +efNyHPnz1QEcKNsErLC+lJyLmSGoEEyhuGLscjyKpfLGy4KgbhI4AsbMZguvfLJS + +BJk+HS5LHlTMSXuzrWj43TwJcyPNSJ+KpBNconFzDIIN0qMKgXJwkyDCKg2tS/si + +E7Af0kO0NwqVWQfNCQv/aI/yhK1NU5qzE+xnVLNKFCAEwizjZmWonC7KLPhoU7tU + +YUqDNCUSwIu7VI1S1+PB3F0sWTgzk/pzKosIkRG0+1KUM4eSBIuG4vIINPK60fZZ + +MgGTAbK8JuKCAKABoEUBxAIA4UIKyhiBQYQsMxlL2jM3S8NBt0tdVTZIzgKmXerK + +MPT5Sh6LlE0FS+dDhUqAffHL+4sJyweLTEwhEQco2GJencu8rdWJ+SLzHQuB05kp + +aDFOEpfcMSKmynTK1r3pc7MTkcwd7fTLZLNG7U1LYqSnA+2yzUvuze1D2vMSsiED + +SOwr0qlyw0pwLOl4GlM+EjbL+ILSUxGk7MvMJAFNfHklY099u8qHfG99zMqfXU7D + +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 + +I/spjcrXwfpitL1rWI8iW1uW5+MVawVzYhcu8kaLrvNEvI+yk7d9tt4NroB2oRlk + +okNXTpBkT7u+YwgA5IFp4BAAqLHoAbABFJvGOS9FxnCC8IWtai96XRZX30Ql+z8v + +L1FZS8OvlBdWjlu2WEEqZrADtm9ytp9j+i+F9wYuw2fO5hHlHPzvwEE2sgPSaA5w + +oG8/ppX34daS4ouu4M+8zhDOZ7LXjufJYNqjkg/LPHK6DRLPrUj/ZqAMYrIbumtO + +8M5GtuzXxy7d+5KqeE+7rioWQoeT442Pbk+pXQorzJf/IkznYlqiJqqOHfO6ZAND + +iW9aZYNuNTsslmZl2eb7tYLLmjZZV1Ja/wtO1EgQufDtr3IOzio5pue1s3Cw5CZy + +uhl1AIO8m/nRAHQAltnsA3wAKAEu+DwRQ04Mr+7pnTtDJ8KWCy8il+auqDkYZf8v + +lva2b4CuGS+5rsCu2bacmgw2BiYjZjDwY5Ezriq4XIuBGQJvjs4n1tt2Yq/OYJUX + +km+cJovaGlO/nQWa5IaQSj0P2lFdFy179UgNLkivcNuqdjQXeE+lLmKrBgzUohE2 + +YW+CW5xIhMGHOOjOrrYWbKhXqpUz9xxLXk7WbTk3MCPGi9St/UJUrNtau8aaNlPs + +P46+LyTPyY+kznj8rRovOhwdVIAj1T29DWwTWQq1oxBCAfowuwg4ABBAOdwrj++g + +vcZmro7Yfgnrjrf2jtDW+tMF/X1ZhrxPkQZLzvouZRuZLgBuPG6Obt45TZGQcJzO + +AxKfSjNg3KAZZ+AvYddNTZcIbRjLT50OVWl9M1sg71gpDio8YveC5N0zkGnhBvgO + +ClFE72j6Qa4jIdCdgG1CJQSW6Jy+DIU31gRNzzhKdTuUbrNvYmbqGfDu4IbE79zx + +jTuWA7IBLuQ4Af6F6sEkAaZp5jw8ERPP+wg0m2tuBpOACnSbeY6w7oqmU3a4WjxH + +MTiH+HzCFC7W93ZugC6GD1x2ObadNs2nO21TgI0ys67hqTdRsiECb6byvVbnB2I3 + +gZaWJoqwlwfTGnbCb9JhOnnLmCtdKbXrtSjG+28EzQ8053mXCzI9KU6kZ2djUHTu + +8De1FvNFTRdPy+lrEaXXaVVogxc+m8to8o4RPKs2A7NR28Tu2Ag9++TrFcrAaKxk + +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 +``` +%% \ No newline at end of file diff --git a/!Załączniki/20221123102116 2022-11-23 10.45.42.excalidraw.md b/!Załączniki/20221123102116 2022-11-23 10.45.42.excalidraw.md new file mode 100644 index 0000000..410b69b --- /dev/null +++ b/!Załączniki/20221123102116 2022-11-23 10.45.42.excalidraw.md @@ -0,0 +1,7472 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +%% +# Drawing +```compressed-json +N4KAkARALgngDgUwgLgAQQQDwMYEMA2AlgCYBOuA7hADTgQBuCpAzoQPYB2KqATL + +ZMzYBXUtiRoIACyhQ4zZAHoFWPETKUAdNjYBbGnQT4EOhByjNuAbXBhQYexBLcI+ + +AF7NJARgBSCAKoA6gCSAOIA+gAazABqzAFQADKScPr2kLCIzgBmpAgI6lT8DpjcA + +LQAzOUAbBpVdVUALFXlAAyeAOxN5e1FkDBlnuUAHBoArC08VW1VPOWjc55VvRAUJ + +FCS3JO19UPtbR2eu6PLkgiEAObS3HMaQ5XlPEM8DXt75Z7LuBznRtwty8woKQ2AB + +rBAAYTY+DYpGcAGIWoikakHAAjXDYEHnYFCDjESHQ2ESIFfZhwXC5MwoyBZQj4fA + +AZVgvwkkgxkhESABQNBCACaw2aA+NgEPLBTJgLPQgjU1IgOMuHAQzAsQuWbHJ2EI + +sG4nkRy2xwjgQWIqtQlgAutzgeK2aQ4EqVc4cXi5cw8sRdTwWqNBg0Wg0AJzLRgs + +dhcNA8Y4ihhMVicABynDE3Ha3qqvuFaUczAAIoYEFB8twsgR3ctUcI8QBRIwmMxm + +jhCenLIRwYi4IueoV1QOeQOdIZtHhZhxEDgg7hNlsx6GY4toUv4csxuBsQgNqwis + +DWNL2f7bsAtbdW7e7vcVDT3coNOY+oajQPdaN7sClTzbOqjRqBhqef0zKMJ69Duh + +6Xtet7jKMD5Pu0L4XjwYzAWeYGIfBaSlA0GiLF+P5/gBUbIXu54YS0tz3JB96Ps+ + +IFvqM5GVJ4PCBkMTxDExQF7qexGHh+9QZnh/4tIBtGlIG2H1N+Qb4cJhFcSBJH2F + +hOECdJQkiWB4mBtpLEvH+I4tE+QxEWkilgO0YyiVpOlDHpTF6kZJn2GZnh8ZJgkE + +eh9ilCM15MSxbEcU5oGvoMV73P5rGPBxolYTpumdPZhnPsFLnlOFjHMVF7FRrRx7 + +yShoVkXcmUBdFuWHuJKm7Ps7SHHBqWHjU/FSb+6kVaFzU7Hsrl1UcjWhZ+qltZ5t + +GzBlN53tB1ENQVPGvqUaFjfRJWTVBMEpXNplgcp3W1fVXlgFGDFrVRsGcWk3Hba+ + +B6vnJl0KYeK0RVlgUdXu932Fdzm8elfmveVh3jRBU0bbND2FXuhwTZFb1A25dQ1b + +1B0DR9CPDTJGl3flEPzR9S28VVe3I/1W0/XdBOhUTiM9QcpOXSK30QHAuQqpyZqK + +WRPBptBrQtO0OVeWRTRtJ034+k0RwgcLVTtCxexTKMktwdLGgNHcMztO8T5zOdqv + +jBMDSY+9+5jN6kzVH1KvbmRozMUreqeN+JtHmMN6Btz1TsY0slC2MLwzJMQ51KNN + +tjKMWusa034+1jaS280cFMd6bwxWHMdVEOgYtE8LTvC7CfsQ0Ee+oG8xp3uCd9jw + +sz/sX+d+4+xfRSxzwjlLYdTLniJa23B2q1UTt2w0zH9h7/edx0LyJVU2nt9ble1D + +nmd3ErQbz37QZptp/a3rrNFhyO3o+oPduTQv8fS4zAKEDozadggAAKrPMJyJZlgg + +yz4LggKQjoOjai7I/dcVI0CKRrpZbc/YJI032vTMAFobAAF8ih2AcE4CQ4IEh+DC + +FkAA0gALSyIGMIAAVCkkgOCEFIDAAAYtWMIcoMjiHQDkD05BCgxhKGgCojwJoRRv + +BmUcfQBiNHCo+f8g9DiLAaMsVYxB1jcFsjAjG7UThnEuFAbgs8VGtWNp8b4UpboO + +EBDaCEUIYTwiRMiCsGIsQunxBYok6ASQcDJBSUwWjli0npBKKUUh2Rv2tLyfkCjB + +SoGERAUxvI/EsKiVCJwywFSUOVGaSJGoMTan6EKfUMZDRthNBzJm0TbQUgdKk50V + +ZPQAg9NwP88s9RaxDHGcM1w+AxlDPGDgSYOApkjExX2TtyjLEIHmAsXZ37Lk/jGS + +suJiC1mMJ4xszZ8CtnbA/bsETez9kHMOSJ45JxoGnKs2cbB5ybKXCubMa4NzmC3H + +jS+h4cZfUegtVyQ09HtUOotJCZMQoXidqJNCqMMLQ3+mVQWol0Z1TgsxZimdwYvM + +hhhY6q1YaAzyidR4zxXh5yCn8syFR0afNDq+Z6lRsUvH5niz6CDXkXmqB8jyvtaJ + +MV+bja6F4R6QLurtXCalPIgu8kbXRzK45pFaCddFgshVvlvDDAGkLDzdHZUih53k + +VWHSaEygVvtZUVGKi9CFFc9xK1FbqwC+qwVGuyiatIzQFXGtpd9f5oLDWlVtS7MA + +YiVIktkrK4x9q/o2rhrKsKIN1ozUOtBR1nqLpqs5WkEcQ0kZ0wvmkeYsbQ0EsPMx + +FRqarZat8iGwGsqbirUotNPWh5/RlupgiuB6b7CSrRYq/FHLyZ7n9GNYlYrnX0ol + +RZQ6eoy3owLRPQaLU+3xrpci+wwMKKgyjaJYNlRK1gxnS6tKE113LrApugdGqs0Y + +rAu606VbNodtdd5QFT19WopLUq0KB651vm5jyqGXV+UjT1Tmha77h1ftUYKri19V + +wv3Zvc+OGhHjqx9MxAWvpnaN25oZQMUxq2LyVu0QOmdhKxwLmMLuslOjG0bgOX8g + +9ezjw7ovQewl8Jy3XhO6Dg9fzR3qTRptZEZhwcWHMToG8B5Rmjh0COT7WOTHaHsN + +oZcG7Cek00aC3p5Od0mNFSOJ66PqfYppiTpteNDn4xHEeLGDNRjljeCONK/aayjH + +cHu+nXYzHHv+CzTmeOPDTO8I25dCPNDaLsJ1tn3gyNGOMAWdrnOhcaOF/mHnagPH + +/K5QYWnWOtFljMWefmQuLDtncFTUXPOyxk/2HL+sCtPCpanQjvpM7Fxq37fs/4Bx + +Dk9rebjV8O1RNvvfIsz9Ulv0XB/L+P8oB/wATIfIwDblQe8gBkCiwdU/stQzewKC + +bBoMgBg9AIRSjYAAIKlFcBwUoIIABKIQqgAAkCEAFl6RDAAPKlHaEw+AcS2H5A4X + +KbhqBXt8saAFqeidljZNQDcEOOd5isUOLrWRMZ5GKKFIDqMA4BImykBoq4aAZgfs + +gF8H4LDA1RLFOYwkVjrEtDlOiTE+S8QEkscScgbjySUi8TGHxjJmRxLZNgDkuQ3R + +k9Ccj1Attgnih584GUiSYzJMdGk9Umosm6lydmfJxpTRWGKWThkdpylOgkA4t0tT + +IzjyfOFyJnTWn9OaWGRMyYWEzVcjikZYyjATOG1MisVSFn1juUclZayOye62bPHZ + +fGRxfw3Ic1Axyv5nLBBckbq4QEB/NK+wN+4rUptpoWvK978c3tz42l96q31F4r2X + +xNwr8157M8X/i474GzvL6UQ6Z7pXtoTZ2jC0apVtv7a+98JeSZNrANaj12ar1mU7 + +4Pw6rRZXkvzsF2iIrfXTtlUO2ivpltkdlfWtHOHkM7+LVP0tf69xn5X3G2iUxZVA + +aPxjw69/L9pFR4+Y/4r7CPnNStof5ec+q+T0gOfqq2M+YEY69etGXay+XeABNeb4 + +UBpea+wKb+jexMaaWqaBa2PezMEGrMc2rs/Y8GTE/oswHWfsAmjsRsAY8KMBpsXQ + +eoI8cGysjccwf4YBtWg8Asjw1QfYpK0GEcs8N4Rc9cRWYwQwAhhwDWNm+sFGTQOE + +c8Dets2kUhHsfYyhDBzmgWw8iwWh3GS8jEaYUwgmKhS8JcQw9QBhtmhkIcfYs8XG + +tmKWCGphpm2hqhKcQyDwch6comcEkWhG7wsmj4NcD4Ts3+WezyxSvW38/WBBLCly + +0y2Y38v8ugk2QCaeRBI+Te0BTa3K8aiC62qCMYO2EA7QpA3gAQ12QQhAAQAQqIpA + +1YAQHABCEQAAVjAAgAAI60LvaZASBfYFC/ZlDsRDRdCixdA9Axjg58LaRawsTdBA + +7qxGxyICjXBAbN7ppY4XA46oAFEGJE5/AS7k5M7oAIhU4052L06OIU7M6khs6eJy + +hc6xLOB84C5cgxglJ8jrFoDi5fG65S4SAy7VJy7CCKgVJqgxgZJag6g5Ik4a6FLa + +4nF65lIK6VJzIm4LgRIjjlAex1TBgdItKcCbBLBEn27dKO5KJ1BJbdDTHZijL5ge + +7YlJE+5zJ+5LJThB4xhtgh7YlKER5GZR6zgx5ckzgpGJ4skp7XJp4cyZ4F7oFvhn + +qdATDnwd4565EoFPKF7fJAFxr6qrrdDkFqmiR6nT497Xp0QnQqkUEHxkr6rX42km + +m/Q7pLrnRWrKnGmUFjSA5bHV6943rIFj5AzX67rumKnvhBlYFjT1p+n6qxl5FAzL + +5hmXoWmEqUxQxRmFqyoZnQYVpumpmt6IGP6f7P6iRAZcH+mWl6gD7AFvI4Fpm8Rm + +lpagqGnwFVkuTNlOZIENlFkBkT5dlRZvhtnz5hroxP4n6HihkFmIp9nVkf7o6TnY + +wnQpmzlbq8QlmLnf5HSGmrkdm5ojl1kfRnp7k5nDrTmRrhkQF3TnmumXmFlFF4Es + +yDaEFgKHxkFGToYrF2nQYLBax5xNCyzoYeFXjNCwR0kaEIqbzcxPieweziYSFUqw + +WIiZz7yGHjDvB6YSF1a2TWaqZYazCZwyIsrpzPD6FOH6z9heYOQ/mmx2xlx/htBL + +lCEcEREWq1bVB4k1yuQCEkVYbDBWaVDh6CF0X6RwSGxkb6yAWKHSIEaNxPBMaHC/ + +jladw+hwRWHUZCaTxTAcS9zuGGFUYGwPhGwUXpyWY4Y1zUr4XQbeh1bobSZazek2 + +xdZ4GsB3xxFPwJGTJXJjhjYTaALTZZFvkfReST7nobqMzIIlEMmbIQA6CojYDnA8 + +D0LRD0DtAhB+DEAwAMg6AhDtB3ZZBBD9Gfa5DfaUAjFCiVATTzCzxPA1XDIzHcB2 + +zhT8x/hRQPAjztLZhI7hKH6lnMWQCnC7FaJoDhaHFGInGM7OIQAXHWJXF04OJTXO + +CuLuLs7PF0jc6Si86BKC4nEi7hL/HZjfGvHAkJKgnZjy6QkRJK6ZJwkRJq4OCIla + +5gI65mKon2jolG5VJYmbIdCzBRg5xBh25dK6gNXZjW4O69IsIA0pY0lu5MmFhSne + +4zK+51icmB7ikOC8kbK6jbIDiR77KikY0nISnnLeXJEOA3KbjBWIFZ5HhhpDQTnb + +m7kzn7mTr1BM1eps17iHm368S9rsXc0Zo9p75fJb6V6MpTqC2yrX7tlr7Jms0H4q + +Kc3RoC3/5C32B9Vblc0a1gCy3z474nmK2Kn61HkZpG33lrlgbXIJFymLxib8HqbZ + +bWWMFTB1CwYdDAWGEvDzCTAw7Q6YZCH/hSHubYVrqATPCSXpzkG6RsZfJSXdAyIZ + +ZyX6yobaQYa0WuwdUwRx0iVHguV9k9buUPwDZsyC5e4+WQCpHjbpEBXEAzagIZ5X + +7HpObjArnG1fRRWbalGxUsQHZsAJjnZVAIB4J+AMjnYUAwDECeD4DdFAifHZjMLZ + +ClXDHLB/Z+gaDxRyyyzqyLCDBg7XAWSVCtWHBPAdU1xrFhLXDoQ7GaLX3jXE6TVO + +KU5zW2ILVVJLX3Gs4eJUjeIbUnXoDvFBIAlmL7V/D46k5vVAnShnVyiXWG7XXQnK + +53V6gIk4ia5FIon66fXoDG41L8n1b+hPj73kkg2RhDDA3hg9J9K8B+hBgewZjw3j + +JI2V0QCzI1ho3U1x7cnZjY2h4Cn41CmE0Thikk1jiSnJ7I0ym3J2200KnXkAqM39 + +Xbk5HuTS0Rm5kYHfr74aOV4/K62YTK3KNeqqPaNi0Rmblf5eq9nrlvJ01soGMOOs + +r1qVlWq81ww+l/46MKOgqaNHQK2W2ON03PBePmM+PeTb68QXlnQPmHpV60TRMXpr + +lxPBOqpzlmSGlOlOULQs2BOyq+mJmiS63L5ZOZ1Wn5l5OKmbGFNgQVmb6KkJlakL + +S63vKanBnyONmhSZNellOJMRWKlOzWk9Pj7JpS3q1hqOnDMhl3kxPJOvrehjR9NR + +o5lZkN5HRDorOj7Rm5obOgbdbPll3KhEFkSHATB2z8ylwqWLzVA+i7yGSe1QWqx4 + +k4a0Ejxe2bx/iDBOx9jb0gVNCdDyxyz0He2RxUbsZoWbzeyJTgt7qLzqzVCez9iV + +CwvQbwuazazIuB2MEOVAVGyYuZ3Cy2SuTiyzOQtwTIsiEQuqzqzhFtDvCrxYuuw0 + +sTCHCBPUvZxdBRioUouMHZxlxDJDgbrsuGRIbDAB0EtqxWHCS7BRhJOQtu0yvhZC + +vpyiw5y6QSu+ivPAuNwCvive1NDaR2FAWPNhytBVYwWIYREFwF0xHF3xEvmJHSm+ + +VpH/x10N0jVN1JqrPaEAaRXFHd0xXOC0IcBBARDeB+AwC4AMjlC5ieBwCeDEC0JV + +AABCeCHACQxVy97C5Va91wQ4J0NVrc9VB9o1iEx9iU7VbcXVDgPVqYEDQ1d9uOoB + +faD9xxIDvIn95xVO1Ob99iH9z9X9q1Txf9vi0DAS/OwDR1wuvxYuEDx1Y7IJcD4J + +KSCD6SyD4OqDBo6DSJL1WDaJV18o31+DmyixANdUlDJJPYF7lJUNmw6G/MN4swTD + +zJkjrD7D8ynD6e8ePJ6y/DeNuy9k0eIjxNCeZNFdFNkAVN6eiks+HT6TTymKFTpL + +AarKotIG4T+duaaTtjF4npqp2TH02HcTpjuybBtEuTyHEZCMpHJrr4SzV5nTuHQz + ++HZTHQRHmeDEUYZWLtzazy8Hr4q6XHcmQ5xc7dlTGH0axTnHlzPH3qat3jjHGa0n + +3HQ5Pqaj/+S+ynwnXqanZjBEJ41tlNttxz2EDwuwcwCwA1xB2WhkrEOG2nfsR8QY + +wwX5tkEr3M/oLw4RVnZErFMK9F2rTz0mgwMwrQZHYcAERsGsI8CFhGt4Vh2crLSs + +tHqLekQLrBKXjB+WGFf4vz3tZ8MwwkEsmXTLUYQYgwx98WRWNrN8drnlDr5No2Lr + +GRgVs2NNP+WnVz9qzb7FfrYAG29gW2jgsVFAmApQCQ5wCY9AUADQCYtCDI1YAAit + +WEEO0XAGEPQKiJm4MSvT9rm2gEaSoifL6N0FYWDQ4ODvKvMXiXcC840LZAjt1TO+ + ++vQ5+fdwR4Ndjh6wumuqza238U/XcV25cb2zcZ29ACzkO7/Zzv/WO0A7te22CGA3 + +8XO4CVtdLrA0ksuzg2u7dRuw9ZAE9Zg4jwgO9QbmaIe5ice7qErA4cMH+Ne9cCTh + +DTezQ1y3oU+M+4ja+xB2w6jYslw9+7w7+wQ+HoI3skB7HkL+I2B6gKyanjI0QbB9 + +qRGe6kJ11/HDqah201gQaRlOr7JxR3K/qodPR7E8PpY2WbxDY8R2fgb0OUtjr9mR + +GdZNpC5+92U96GJ5Rxh2JJvTpO79+SM963M23lrVY0DHxzhxhJb1ZxPrs778OgU6 + +XhqRzcY6bzM8b4qXh7aePrrX4zb6+nyjR9ofTYqbqbWfqeX8x7nxX62sFg/p+CX+ + +PqY8Br+hh5EwtIOQgf2XqGNOx+Xq03UM3y/ls87xh+GvcKU+PkP7AsGWGsOi0yU1 + +M6ymb6H4gY78Pxl6X9AtVImWGp31DI0/PwM4f2kLv5geP53fs8Z+18QUC3BL6JMA + +50857G0Gc3iXxb+RmOQdxcayBQJXhasRZY5hACE+BDhxZAim8fsM0DKxDgqucXR4 + +Hy1aBiYoB1LG8DhisI4YAiCWPeEC1cgxc0BEXM1rxikyxdN4j7IcHiUgG4C6SIXW + +YAGBK7Cxhgs8XQslz+Z4kOgtkYfu82pb+gh4EwSCn80i6MRiuwgpiuMDhS8CIuIg + +4IuwO9qcCBYgFPLh8wYyiD5Bm8eYJUCsIMDwucLHSmLEVh6DUWVGPEp50C4RdYBd + +Bbfvqx0patpB1zIhtvERCf9IiNXL4rERLpeVwOTXGuq6ymz10gqnrewGx1CrH9de + +uBAbrYB7rOBAwuAUYAEDuwHZcwPACIAmEDAwA2A3gO7K4HaLYBRgHAUhNt1YS7cc + +2XCMoDhnGLA5OgoORqmgBGDXdFid3FYo9xrYztBmq0afjfQbZ7E5YoTAiP9zFyA8 + +ziM1btvNT7ZzJweK1R4tD2zAvE4eO1BeiYmnZX0UeN9eduj1OqygseQgCEquxuqw + +l8eaDI0Du3NCvUYk2DA9ngy+Km4IkrwbDFbmJIRheAhJcGk8OobQ1gBPoC3Fz1Dz + +y9sw77DkoLx4ZY0Rev1f9pHmrZV0ia3DTGlXQkaNcFeXDGDghxV6+8/GBjPxgn0U + +5HprwXQhJpn36bojK8DjPXniJX68QDG3TFjjP2qYp8Iy1I2vqymxH8cEIJIlkdHy + +0YNp2mG5MfijCo58id+FtH3jiKQKCjx8yfE/r70ZHOlmmlfc0qyIwiSjtmC0FxvU + +196TMaR3yEJhvnUa+8aynQikTk0cYyiPuwqQvm3n/B14mmXKU2lX31HfJM04Ke0a + +KPfDL8tRRTO0QqM5FIFvkr+B0eWW76OM/R8nMJq6KtF78bRMfUMeh3DGmiympQKY + +PKIvz6iQ+jotUXqPDFpiimGY8ZnsyfK39ghrsfmDCikI0CJCTsZKNpCjr21ZY0rX + +er5h44nNBwWcMQhr1dj/UAwXYu2I5Xc7fgy48AogYvCQFjwngfYJipESvBMQMw9m + +AWNnEnGPsOspGeOhF2ay3hMsOAxCuMCkJphFgKg6lnVBHgTBWIerSFvMS3hKseWT + +LPlqK0FZXjbYecd2jRXQpcCa4ftScXbFQwRYEsw8DMLnCbFmxvwGAq3vxURBSCmB + +bsdeFrCIop1o6IcKRN7DzoJw6o4eKQuIVqyCtGKjQdCVQTgggCWB+eZyjbEM4CBP + +B9rQ5oiJSJ+Va6AQ91tkVn7ciVRfeXMQp0fJRChuZRc4NgGiDeBaEkgAAJqkIoAn + +gCgOdmICuAhAUAegLQhBBCA8ExQiAEMT27lCeEDqa8AIiUxMQS2qAEYMRQfDDB2I + +DLVoZAFrZChN+c/JiZ92Gq6hu0MYQnBNRJ7g9ZqNiGZNcUWoDsXEkPGYRzjmGw9N + +hgDRYULlAYztDqywqBv5PiTbCwSuwldoriQZ49VcxwgpM9TOF7sPqVwo9jcOxI6Q + +MK34ekg4BZ7XBjJsYCkh8KaoKxmgWcX4Sw156AjP2yyOERAD4ai9NCAHC+iKWA6w + +ixG8I2Xv8MpqykleqIm6AzSd5rNDGkYqUaKOzH7oUO+6b3ln2JF+jxRBjM/t5DpG + +TTFRN6dxi2W8gBMRRm0t9HTXAiLpxOrovhM6I8ZPJkxMqCMgcUPAcjiO4Wa6Q7we + +kW8C+XolMa6LqDLS18H0m6b7zUmPpVOBjcYAkxYntQDS207sq5Cj7EdzJjEwiaFC + +2D8QVamnevnzS6ZQzu8B0nUZfzWYDIy0cBA2k2Sxk99LS2qUaaXz6G6iNO5fOmjo + +hpnGwy09jP6djJ9EPpz80MlputMsma1+h7fKaT9LvRUdSZ/edGd6OI6tBWUos/VL + +ZLugxiBZB0zCETLNq8dZZKsjGTzTqaZilZoncWTtLACS11OCnBBCRPwIOtZGpsZL + +FPHeCwTrmeWaCLdykJf9TY1QFrJ/j3EODUW3QAyDnD5hDjUWGsRFjrHvFmwyCHo6 + +OoIO4FriXZrscLKIVsoxwkJ4cViOXEFr6wdghkHOIVlqwKEqMjhLSnRiniKZyKhc + +yTOhnmJWUJCsAmcQVl8J0YxWiIGljtJ4z087OztauY3IDCayDM1QeYFJBwkDxPOb + +VZSgBOwnRdQ6/mPFg2MHmdx4uj4M7i3NqAvBuYAsHwmPPrg4oq5U86CHLTnnDAF5 + +zQJeY0APksQj5CWDDB0BpImYy5olOClYUQmxzfO6OewUwPcFHUyJ9XCiT4NnDUT/ + +BmRNrkWOVnPSXYRsvTgLLYnRV0EsVMIKUFzB3YEA12UZA0HOyBgDsi3EEKiE8DJt + +cwEbPossCXo7ds2nCbMOvV/wqQdgGYUQhQzqG8B0oekmHIZPhyX1Rcycetl9y9Aa + +zLp2YeyY/UckeTRhIPVye/UmECLphP9HyQ4HmERT4eSw0UMFNWGzt1haPfxIux2F + +7C4p2YGEirnhJbsThKUy0GlPJ4YlXQ1PHsGmDTDzzGeB3G+izzKloAFiA4P0Od22 + +zu5uelEtEPz39wNTupTUsEbjTF5tSoRLgGEdLx6lJ4PFkHAaXf2V7DSGRLdIcu3h + +N5FN4y1onkQtFemWieZiMi8Gv0xHfJwhV/JWXiTSW8zymJ0/aT6PbxBj++BjQeEL + +NCg9c8xAMwpWs3OlAyyZhKCUStK4UGynp+s/6a6LqgNK9wwysZkzIsam8QZvS7su + +hiUba0DGf4EZefxzgJLOlYEFtB0uHQMTUZVHbJfjMn6cy2ZcTZUTkpWWsz1loUC5 + +cOkRDMyQFpva5fk1Fm0QxlxsiGYqQpl4zS+/o0UXrK2Vr5wZsYg6cMDWUL4gxOZa + +5ayiaUmyfRt6BaKcv5EYcEVpfSMstP1SrSeyA/RAotCOkjoGRMyocrDOHzFxWU4K + +26TcvuUGcb+FskzpHS1gRwOg0mWUai0RARxugYXCCUeIGSzB4KAc7FkAK5YMsNWa + +de9oy1tjnM/qPFFcVhh0H2RlM9c1jP+GwzbxmMIFFzI4VxQbyAwI82eXRjtj3deV + +F86zNBDqjyqx5j4A2MnG3m2Zvw1mW8LIXNUZg9g9qvCtXJLgGsBw1qgeNNFmDhYy + +4jWb1VQJ7F1yx5UwAOPVldX+YLViIK1QGs7ikCWIIrONXqqDXcwQ1bqp1QGCszJr + +WMcWbOBSgVUGZkuEwH0AgJtWZqXVOaotamrXk5zy1dq7NYWucxEMUBm42rHLCsLF + +wQiAEsSve1splrpY78kxJ/NLqvxy6cvJ1lXT/ktdAhgCxSMrMWxkrr+/XKBdtlir + +eAFEPAVwHxMEDdEQQj8PBI/GwCYBwg0QPwAdgUlKSyhpC64E+Gqr8E6qnFbSeNEa + +G3dliD3FheElch28ZOdqW+nsUGCArZIgwknN8ScljDQe7koHhDweISL1qo7GRYFL + +2ohTUe4U1RZj2ikaLdQBwnRfdSSkYNkSJPMnjg0p6mKspmyWeG3DQwuKSpZDCHGS + +TeGlSqSuOb9fzFnjVSeebJDhgLy/YgjIAzU8EYEshGS9RGoHCJT/OkbIj5SaI10T + +n2ZWkRKVAo+oCP1ij8zwCro90UyNqZodFZVSpxppDU2XKEIR0oDepqVkLZtN4ysM + +cUs1Fab2aFkopVUr+WVB8RTZE3vGJGZEq28gMlzUaJ5p7SFpX0jFbvkpnr9+yiYj + +FQzK+VhbLSiYumtnBN72M84oKg0hioIGlLHNxHXGTvSHDGDz+P3G/BLIt5N8bBw6 + +RfNXxKj28vUgwLzYgVGZp8FlrKDmYVs+nAq1ev66rWFXbJ1ojGjWpso8o+Wx9tyU + +hDLYitFGgz7pwoi9MZDpmddZOQYUbS3h9ETaby+TclFVuHQWjECIK+4BtrXyLaYt + +Zkere7XT4roUtipQTh1sdH3p9lO/NFeStZRpiTerS0vsdoRljalZ5C6LfDHu24FC + +6BzMdUczv5cxB4tkbOU2t86drBgN80ATXG/BhZvxW48TGBKEEgsXNN4GrcqzhasQ + +1Cf4M1qHO3Enw7ZQhSYFIjM5h08W2cBLtKqELFxew4WJOU/PDgA1aets5OeFgFjH + +5qd7OngmxH4I066KgcOqN+uIofjedfBYSkzudjcwUsj8sXavKUz/jsKQu2XaLu4I + +K6/xdajOXijljENidgunOCRiNgC645C8hDFKp501xhdslHnYbs1jG6edr4jWLxXl + +0y6Rd+uuOZnKp1a6zKiIAKPZ3bHirW4TimOR+O5gmrnZk40zHYSMxtqqCJBMCQ7q + +flDrSJdXUdUNgnVSNnWfgmdXRLv7t4XtTaN7XGUiGrrhuzgcoMQCCD4BiA52FBSE + +AIQ8BFuHAJkC0GuwJBSAOgNgJetKEkLigFQ+iNYhUxcc7guwbSZhEQi9h7MvUWWO + +Jk/XgMBlf6nod9wga8K22U7MxOBqEUAi3J/baDeIrWojtNq/iWRUFJCQoblFaGuJ + +Gosw2xTsN8Uw4YlL0XJTieG+i4fuwQakbzqJiW4UpRcwpZXhBUp4domvb2L9iiMN + +ztpA42RK+e7JeqaJp/Z8lBNrU4TR1Kl58aXACIiTf1MV4xKhplcfVDUtQhYr+ydN + +KPmbIB2QZgd2EPUKnMK7pLHkBB7rG5T6xfzAdMB6uv5VolBD51RBtkYUS7qDcYhE + +gR+A6CgCuAQQYQIQO0UfilAWgkgZgLQloSuAnsbATALmB73EKKq/2J4GMCRDD7fQ + +o+/KSIh4S74wJOlULv3IiLz60A6sM/v+o9a6Gb6a+gHvwug3OTEQ4wsHmIq8lwaj + +9ADcdh8TP1I8L9KJBdhhourY8rquPR/boryTbsDF5w0pOlM/3XCjqtwn2TK3QyPC + +KSqYGhYxq6RgGmIdwTqqLGgPYHIAdUnjT4uDw40ewQmoUsEoOQIHSa4mzPawyg6W + +zLSZB2Wb1oj7a9vtyS3iL9tdHh8QJUMEY0rJ2WnarpSHQLVMeeWzGKl8xvTR3nml + +EjwxC5fo0sd+6nSpj45GYzdHWPLMLG8y7Y0cbmMbGlZfBxeJcZOMT8yDxxhjjjJ6 + +MXbcVOmszT6PXzfaztF01rcts03yb5sJBy0pnAmiuau+imjDk4cQ7LGrjPoj2CSM + +mOwq2gyykIcibiYu5K8U2+E5ia96GiI5cSiflLNPRQmpp8qckYSaY6L6jN5/J0VP + +z80KaaT3MvxnIbJMHSOgcms0UqXZOwqYTxBlpmXBr5Anhy52jDumDRNypDN+fMKh + +Ca5TSmcy7wSU0ksVLPBC9jo3k3E0mDTS5RzJnMp0AO0am9Tqp7OEU01Ovo+Ywp7k + +yqYw7vBvk0K6zT6IeC3aW+Msi7ZqiBQgmMmnyhzWNIVmfG4mAmbE08fN7l4+5tSs + +tBKMNNlohwO+EM4duVTKIJpZSzJdtt2Akjat/ZT/ladY5baszv4Q09LMJH3HRRzz + +EkcioTOvh+BkpiMYMY+U+gizEaSpScv5gkijeuJovocqNJUnz+T2j5bKcZMhCcTJ + +Zg6TF1JXxndae8cE4OYnx9mkVJS5M2cpCFznflJKpshObW1+M8VSKmNJSbs1QxMz + +5M3ToBD61FQNzg2tLcOeeNfG9gj2jE0X1eUnbTzmZe8+XhXkkiVzo5x8yefOMvnQ + +tk5vYDmZn55nyZgFgk/ufP7qn8mt5g8sWevMnKYLAnF05Oai1Pnfz7+PJfkzBN7m + +RTPm8KiOa+OyxK835kvUiu+kozDjoy5C1haG1epKh/5qlQWJpXUGYZdB70AwdNi4 + +kqUxcKQm50MJhFA464s+GaK5g9Q/wOlHzjBmUp7APYjwJDAuKErqwYJycsVuFk4y + +3ymWJag+WYT+avRoIjQSeR82LhBhxYGg6llYJYK5bOVRLCIqyqx2BzzxA4S8WKrV + +jywfYYrey3RRFYjgg+KGcORBbjlctgJklu2Jqw97oVSdrkcnbVkeBsbeZtsPmOBJ + +ArlxxgT4asSboSsOxKyUleLDvTZ1S6OsSdfDOzqNjegXgFugq0ePKuh7asdO7LOF + +ihwfjd6DkXOgVap2wok9H4qCAVzl21Z6KsEZcezvmDqxE5jVvq8wQYzq19YoViWH + +rqGvMQBrnVvqwtbpJLXG4alhYMHA93irQigiGq+taVibXirUu4a7nAavbXw4zzPO + +Pzvmtu9FMNYoQjNdZ1q71rLO5zi9emvsXdx+1z61BHesXXwsb1uaydautCUXdfV0 + +GzdZOtOwkBydW64tYet0V+rq1xG6boTk+hGdXV3zFYRt0g3PVYNjK+HGxug6Pr6c + +NePpdxtdXIbkurq0DfytdWJr06KSqfDXk03arBrFa6Tawwx1o54NnVo+yZUiXXL0 + +mXYD7TlbUsngGYC5tyxcsBw5YgwJhaHJeADgDIlLJW3cEA15w7xstnHbpEx3q3HL + +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 + +NkLCRiEPy2ozuic7RkY7EtEQNUY0yjqaLJQ/piRrG5PaBB+UIlg1WCBmCAwIyj+E + +Nhgr0jjEKvwmVDhUPlQzQgwIm43bPCgaO/UBqYnGIYgqTC3iMToj4j90AIw91Crc + +LvicshzSMYQ55iJOEDw2bDu3Geo5TJGKLeotg006JCIvRi952GY2MjQyKXwPFirq + +L3nAWBPmO5Q75j1sz6YiDkBmIqiWQilMDwwCgiH8DpYilC7mL3nMRBHqNJY+2j06 + +Mdo2KABqNP2JfAJUPMYlRhvqJNIw0iJOFFY/jCJPyaI5lj48KPw6VjDGOQmG2inS + +Puon/AZWIBwuv4PqJMQqhdrGTisWgwbuDlLMJicNW9FWfRu1l0bRzgOEwfHDMilG + +1FgMCg+aMQpRLh6phm/WjJ5xCSNK1jnWM69F8JTG3kbdrYn6I5vQqxw4IrbYTM8y + +L4yDsjq0Md5Ps5iyMswns4+gNM6aYiLaKcgggjY4KvIsViXYDVY5mjEGOcAc/sJw + +DYACcoOAAlOFS1uiBp2doArsWaDYe42hxmCQV8TGK3gULhRMSjnS2AmKAAROGhBQ + +U8XTgQYGJqoFxwDYwpogeC6GJgHe8ixqKmYyXCJ4NyJTQjmjw0vAO9y6L2HK45Nk + +GNYtqgj0JMIpq5tBCt0EGt9mNWfQ5j26KAwyCij4LGwyaCXGNk4CbDbsNpIw9ihy + +GPYzjCWSIuo/ljaqHNfRDCz2OzcEij/CN8XC9iiSNg8CIiTsIsze9jNGLfYggJXm + +JMYy2w/HWGYqxiliIJIy3DfkLpIGojLGNQYGij6V1hYzDCEUPBg6xl1a0FicJinK + +PxxWVimTi/w8zDjKDDrac8XOE+aKzD3micTMq9JvWzmSVN0mOclK/BaiJg4+oiJA + +J+QOei/kJzYiQAGQGwAFoBTPSUKRbhk2BjlbwAoACqAKAAsgGqIdwksgCi7AZCR5 + +Efab5hcbRTJa4iOsBqgY1QhLw8w6TCoWNEwu4DhlCxo8Zih2PHAm69EBzWHIujXy + +MnYnX8y6M/IsokkaX7kNNQDLzteP11BGOSKBzA6xFdjXqC0SK3YjEiO6N3Y0bCvV + +RXouGd4GKKwgkiFkjO4PyYUqlBohji+6PpIw+iVWJNfMLiHfnZXMcQJCMUwuz8MK + +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 + +Lxkte0EgDjsQgB0BjDyO7BpDAewK2zM0A2Wa4U4qhDoA8j0oCPI8gYTyPv/TniHF + +F9s4XQCoMrUudS5xFtU8bToRMm0wF1ptIjskDTNLzaPcDTY7L+bB2tH+Ay9Uwimq + +C44M1dENN7leKz87Kak25SEjMw083TrGD1k39jrtIo0hfC7dKE0+8ziVDjUyGz98 + +Ohs8CzGPEuY8xl4+O94jjS7xL/yUuysrI8EkpSlrwcEz5TppNp0vRTqHLMcnwS61 + +MSWYyzzjyvszihPGw+uS891z3XbEx8slOwM6gzApjjYpANkqwvefs9mwyh+S2iCp + +yo4uGTLHLZ0oYzTHPsEuxyl1NioESRxTmrAAMlRag5eW7AdzjLEBoBzgA6Q/kyGm + +PhSenjivEZ41bTO8Q3Q09FQQUDUqyyZNL7AnYzqWN3/L9TL0M1MnmSQ7LsM5ZTqB + +O8sg0y2HPmo2djFtNMheLAVbC/QzFNL5mfDPst7YHHLTXjorI//LOzxjxzspiS87 + +JYk9DTe9Oic79iEjNO0hNTZBOSsw0S5HJT073D+7M2crHDnrPRY/jo3MHs4MrxvB + +JHANBTrVMowjJ1W7IzopMy0xLuohRyHnK10tqzUjJ5g59E06AtgASh7rJr43jTUd + +OW43kirzIkssGzQ8Pkoh+8JNJWIX1RyuG1E5nTYKIBcnchKrKXo+9AyrPhcp9ike + +zXkEawVALR45jSDgNoA+azYOIqsxGzD8KH0ogj4pkq3FPDBjJWIpliidITwzBTaC + +jkqQlz1HMVYofSZ1IsUp7psXJpchaSHsgR0rZy/TM1s3Fy78C+IzWAHFLAiFSist + +H5c2lz7pGKs7IyxXLXCCVyuXP48fFy6OK9Q/K15XKH0xUylOIrkqVjaZ2pc3nSFX + +P55BvDu7TvAs/IUXL97eDx3GNOw5FyWdI2g+FzfuxkcxRTYbMBsxhCFKKbIAhSfn + +NBQOGyXXKKgX5SCWIAsruBlNNtcjXS/BKXwr6zmMn+c5h98VOFchhhtBFms7jx09 + +PHM8Sy4iNb4oyTnnLJ0zMg4bJRY/hYTzPHMiFzu1g4IPlhJ7Pb45wSmtGlcqqy89 + +JSspGRS3KRc7+SonNsAkeyq+NlcqvMo1OWc+yAuUMhc/Nz9sLufXNyIVlp4Ttz5s + +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 + +Kcm3sw2Bvry7xaowtv6hbq3qjrWpjpHosHw7saMdpe2xNauxrv6gTqnNreHGZrS5 + +va85xCptwRYFeQBqw2CsoCAny/9YLaI3xxYJjBtir+cGYrhWvZYDKcYtJPpBlL34 + +Sp0acLQ5A2lFLDKWofC3paqJvNG8SqV1te2/LSm0tx22YDxDAQAQ0IhAEkAdoBcw + +DH/Mf8oAHDYWod2iBBAM4j9WuPy9ehLYFEXLOAahBfHSmTVcGj88pzV5D9AZVbRc + +Guaj5rhwO98Cvqo5vmGyitFhvA9eRarlsUWm5a8JNm2lvr5tqi66SICUhkQWWqDh + +tAamnhLOjBLeDaB+tjaxDaHVrMY7Lrw8FlKoHTxSuh2ro8dysqywtyw+pui94aId + +sx6rybFKKiKokaAksa60zb50suioULL3LI2tcyqN2LUr9bL3KG25pg01Sb2rlB69 + +qsC6vaaNooQ2szUIEKqmMzmNvLw+FyZ6uRW3QcDCrgUobinVr2asvbTotx2IiqE8 + +Njm1FzSGpym0XTa9tPGj6KiqvvG2jae9vXGjNSCjJQymsTdpvuKIsMFbVP0jnJYg + +xNyRIaa9RFGw2VyzRRM8zMsmzTNSXqkdm+qtIIS0JuFAMZTmHwMjyLc5j6I8FKpR + +pGbIY0F2qXW/Fka9q1EjhcP+r32mmchHj8AJ7BwQGiAeWN6XAiARPqmFuwAHQBGj + +jDsOABKmrvak9SWNz75PPqJu1aonJAZOPYFNSgV+3xKgBoc9uYCyoRd9ut0z9S/O + +sDsnmaHKr5mybaQuum2jSa9Vq0mg1ajMWfAbqx9YsMm6Db1tjDrMox5mosm6fk9t + +qsvBP1Uuuga5cq7Jo6SkAas9uP6+ZK0NrQalfqO/k0Q0dKVRkcvGJaHYn+2j8a4B + +pY8ohCbIvo2raTIBt42tQ6mpoay88qkpu+nWILTZI9PXfyCivdmitrY5smstkam8 + +M1Kg0i1Xz72rtLGOohGg7rfFpDmjijJWJuXZVLg5pUZBgb9xshGwjamco9qoKby5 + +2QywLjKDv2iz1a9+tQ2u9jXmqmm6Nb7oNr0yjaS9ucmwjS1X0hW5DirxUlyz6qe4 + +FKveJCrMxfsnc96WtG+JywfNugobtat23+YLQ9EjXsy3xyQavaOu88fHLvPbUa21 + +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 + +CGAEIBWpzlqSkF2iDXynog7sCoifEHeEfty1m7aDDPy1RS3hOHAtxxxEaRAMAEpE + +dc6zMkJPslc5gKhItJgug6FJu/UsCGs4dhRnOH4UbzhzpzuErg6v1r8nrTULZJ/Q + +xzOiVajVJDOn97q4a6hsQ7X0bVe3wGNXqZRqjy2rrJR3NLakeOSn37OpNGhq58j4 + +eYhupzwPtZRv4aNnKqRzxEhTufcxWHkPD4atpN+bMY87lHnhrVh21Hk/qSRscglv + +v9urbifoLxyfLHMKoDuq0iuRu1JUjJu1gCGg2Dkd2JRena1Tsa1IyVAmSnqIZZKb + +IwoJ8R0rre2KLkofBsU9AGy0YbQrcH+BRKx0iHTXqKxvtGokCUB0gBKERxWICU7s + +HwLaegTfAOwIYAwgGutSOH50fPyxTHpfrSw3/UW5lVYAmGSPhB2mf5k/NjSe+IjI + +ucsvmqlEb/U/9a4cuFeurC3KrFewUHmBKdUCghawY6wmV7+Yhv+N6EX0Z6hkvLSP + +ISmhpL/vuaywFa6xsBxoiGFvqsW0qai6sTmmJGboM6Ri1GlxpvG32bh7NPe+nsnn + +r9BgaqFrJnGy76IsevcqI6x3rI6s1CH/v7GwObTCvvh3Wb1/sQ8fZ688I6mijzdr + +tlRvb7rEYNYdBM1GpVR6Iq9kqZxruGpXJYalb7idsSWNzhWsMRe8sMGwxxCHP9AE + +YTxaAUIUuHmsTLXqqEzYUa3/O6KvDHEQgIxpMYEESyNRZGqDJuFUgzRkeRM+gEhs + +e3AKHaCuq5x0ZQZntmAyvF8AHeJPVL9MoCJCQzabpCuhMBb3S+iatiELqLgDNsMK + +HkdFrAEIudkLATT7LXjVlz76oEa+/LndquRnl790b5ew9HtfuzhroHT0Zph+96kU + +fsBlFHtYu4EAjEMxlWo6ZqwLRjTDqGSxsTpG4cPMcA+99HXfrtqsfrkjoB+9uHsu + +qX69DaZYbDMoVH3+ocu7ObJ9sU+u6y/XJeOkwSnUYMcoIJqwtJOmf7Kca7xtCrbu + +qliulyo+JNetdYikdielIrKBuPgagb1IaCh7xHZppPh0tqcGrke276IKr9qxgbtR + +DTez3DxvqTBpvGqwYyxxvH0ooMOlvHCjpTe5vGg9JMEsfGboa5gZu0jpsCGvP8F2 + +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 + +YjqxVn/0rgYtnzUuedo1wA6tMUFLzJ+htIQWBQQQCCAHQBmgCXtXJz/HvpKPyZ0s + +LUB6anyQZkIWX7vMECXZ9FhwN1qchmjKEoZiNJmAqIE3B6GDsYZimHyoe05yqHD2 + +fPR49m4IezppPHj8E5Kf0NOvqfjGrQn2i5hq1bbOafZ+znpSvxJz9nC8aWe2I79K + +bVA10mw8POa7iSraYXxoMGp6IRp85Jiw0BoRMN3OqB58dlVucm/c7ixsrmOoTLKO + +cTJtNm/S0GRiT0lsqoB0HCRds2Z/5I5vPU8s5HkXtbZlqm5/OkU/eHMJBtYY90hA + +F3ZZNhygDZgJgiOAG8AKoANzk9G+PlcFGZFcTmQ6ak5nlwqsGPqgjFgpP4Ic0M8k + +e9s20KRfLNaHdmj0a05lhnqYbYZ2mH9OeRRwznKHsfYBhrRpji6gQ63eGwwNtis8 + +emB0sb3MYe5zLq09oK61zmhYYA5h27xpv+pyDDDeZ+pwvagcY9Qs3n+ppgpiXyWu + +pzq39nM6puRqfbGucQqqpncscAx876n0tEB9pHgVDB5xAaEiquhntCYObTMInnwe + +cD50GmXGbXondBZ6f3xh1CIuYNZr+GRmHzuytr3atwhlzBgpvBRxTbaxqc59b6ya + +Zw+76cPbMY28mmFLvsW3PnW9Ltpzb62xr0JoLmlIHVZ1rrfEaY6R4GKKfY6zf7Tv + +vL4dznjCnBJ7lzn4YzOTvnLFEdnE8mOfocpirig6jDrWBafbAiJ6MjBaYm6v3suX + +ryKxJGX6oI8SvmacehazNKeXxb+7zC9NozmjZwp+aLxjmrX3HkR1vj6ZHXpu/Eh+ + +fjB4INloMEhJxSEKGw1Jxr81yYtcjn1eWv022tK3uCpyXqIm1f53CR9SyFtXirms + +C7BkKiGKsnu2onHzxehx3qNDxaOsGq+BEi1KLakgiMu0pZDPqzuMz6yMbG2UjHRw + +sRusqnUuD0+poCUbqXBm+5q2dqWKSlv4rDK49ZHIYqSYKL9fL85GLhZPQZ24d1jy + +N0SVtHzka2yvG4s8HP5ggDvSUUMOmLiABaAPwA7gFV9dwAmFuiAZcBSWh6namSZM + +PJSEggpuYKwKqK+2w62IY8IVVqZprmRtPW53l7NufmU+M7Q8upZj1r1kNluw7nao + +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 + +fwd116lez7kalWQgyemNB35bYYdwMRyNapQSjWg1Gntk5zoDYTtqO2zkk9gfh2ZB + +x1nEQqXdNUNuPX1DYyGcsglAg62I22OsHy/XUDCJ0TtkR287YXhymnjLcW6oR2c7 + +d9oTR35HHUy923XbaDtgHBK7e7Wau2ZgBMd/S2zHacuoi2qMBsd7FW7HYsgByheC + +HWmSjcnHcDtk6HxIAZV5lTIERD5kmMHbaUNr2ypihOYH5WDYEAEhA2zbd4d4Zbcl + +ByXLnJeZY47GI7brd21qYoAYloOXu3Wbat+2Q2RbYbcWOqY4qIokCrBEgiwSjAYB + +GO4Vvisbf61olWSD0zFrk3WTvDgBqxh4Bhtxu2c3BGANNpeLBMvNVhgbYxV0G3f7 + +Fvth55m4DFCeyhmtfNN31WHouJi5u3jUfVxD62QVbet3CIuB1qoJVbt6GKMQVnlt + +bvW9hrfkxwNVgRH+Fsob5X3lYO1r2ArIGcC4/nMjc11uNXhPisgAB3CdD6CEB3Qa + +Owdq63ONYLMeotu5sHsnAaHnY31y53NIA40o3WDWwTp353dXpqAHXQOdHimJnJ3n + +asgQN1BUiUIOnQi7d1emUiiLd1B11YxIEQdy7jx+RkIJI2xTY31nI3VRD0HaxSUh + +i7ETQgMXcutrF3V9dQYM52zjeD7LfXMXZ310l3UTCzNzw36aa+1zbXeNaEqCbDUn + +ezmjbWxNY0woSoiHfd1zCh4KaCNqSnTYjZdoI3C3N5d162pYd6KD53dMkpd4Emfr + +asgeF2nLcRdxN5GnaYNiydsMqsgLCAXnYbbTuyPJqqdkA2aneOd5j7k3P1d1G3Bt + +c0gRZ2BZyTUbIw25dcF9prcsUtdwF6wARktos2UbZxt813VRGudw/DgHZC4FSHMr + +d6d/5c5lAeeVUZlKCIoPXhZndt1+Z3TYg61pk2GXYFd0NXDoOS0Sd0QiNrgagRMz + +YOdxg2jnftmeiAobead2KUFFiOt7F2K/hzdnJk83aZZzgcHfFzd1fNy3fINl63Pr + +ajd7QDSVZ4oclXMbeV17G2BtZ5Niv4qHebdss2cBuydoW2ObZltxt3mMB7dqil7b + +ZSwR23+tvmhiv5RWNoNxbrpHdLtjQ3y5yTdu+2CNc5gsR201B5dpPWZLav1rUnlC + +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 + +9dnr1f3Z+Qbz2fjlc0l/ppvYCahZNNuYl5Ftgd4N0g12wv9l/GPO9fZ0+eVx9fa6 + +b+Xtie7l//X7ye4ws8jnwe/16p3mXexWcNLn3Dwd6gN9ONSR/J3j7nNd4tt9NWax + +Je32xqiwwZ+ojLCOfGSX1itG0xsxLe/YD1JowXMN3+HhHDsl+J7jJvO54SW1teA8 + +mTYFbgZHjuE80JX6WMVFBzBajckw9TgF8N2pRBXpxl/KVQmMDqi3x2A9AIxIOf51 + +/qEHZvVg6Qknkupdby+6ZfnZ5+nr295l+9XxZflW9WzohfVl/kGXup0H1ro/SWhG + +IqHm5krBcNboXflt6rGyneSxCV3rKIil/Mjin2od9VH67fPfcvASwfZJm739G3Kw + +skZLDfUc/kZgLvLJ9MnoapJ4pr9xYg6/bOlUIhKi+TjuSu3kAdnpd2599ATt8WMN + +6aDm95rJ7Mnh2S+6eV35ouFR+ra9jAKx4O32tvdN67Dx/hlJ4YuQSuJM8SL6ov9J + +D0njaDWx51361G8Dasn8WBt99rnsvuX94DDt/fRDbeEz/eXd/fdgtfh3Q+c22RtY + +KkbHBxTm7UbS3eiEbW/Xrz40MiYqnbXnc8oyt7T/XoB9Xk0D7drnqfvTVnHtNHdc + +cM9ws0I2M/lvjJCJri85jGd68BH5HDEN6338fege2d3yNukeiHJoanFyKjyUYA0R + +aCyeNgk+VkkEl6mY8vW1EwPEj6b+zh5Yp0M3Qw3U9bgFHXQUZFcFsqH1Y+X19X09 + +6ylbBes9+QrgbfGR5Z34bfjfsxNmPFHasm3unWjqJ1ZCNeZ08oHU3vmF9/X8eei3 + +YLnuiu9t9VHhjOmJ/V1k+urD+1H+Ve1t/LSuXfzl7O3xveOi8ini/fpR9O3vtvzt + +4NL2hnbl4/X6Xfj+deTjfSysHLXibKsqZH2Eqf2Z8cEUj2IAaVphCa8PYJl8WeBA + +YyHex7696pqGVTWe9zAO4BCO2OpLUBxymVAVNg/4BEL4CeT1KnuM1eQPYfUNkpEH + +D57uzgfZDeYfQGbB6DD2lXJIzfXz6eu62l7zPf1fzTp6WXfV7wngveA1/Fm+WxXk + +u0WknEGB2+EPkfcfcStW9fa9+OyM5fJR5PriUfCl6l3xXWO26rcZvfyfb6Di5PFF + +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 + +sEdljatAv9gJTuBcEr24KvEjAskJBjuEjpj1hdEyUzNp4NBq7ZYq4Jf/Hk2BxsIx + +GvF5MO5drCnIwOsFUaDiN01h8zVleKtAUzuboFkhIKXk0RpqNdkEs3QIehbTXB6F + +diX1YNOFjEbZI2ZBOcUARGl16bwBEwVI2AYjUzuKSN8kLPdDOONKhJU+L5Y17ivd + +BeOo0JF8UGmZxyxsjCrxjGSPBqiO1BzxZUgRmplSMAMhQZ2dj2OzWRqcjRskFyNZ + +4JbI2ORrPBG+iYbkiGraryRRRGmE+iMZR9jrubFGRsfRKd5Bo1qEJ/I0uOs/RAFG + +34owT5vPmFwDLmQl88cKO4JBlSawCe1S8sAYFtuhg4DYRr6sAnY8YFZNh1I3Xoj+ + +3AanUVKGZqf5T4Rt1TmMC7IJCwKa5o/yiqVQanBY2+9qf5SbbijxLhG9ZYoO5I/k + +XbjnBEfayqNuGBCo0A7gChd1Gn+UGQT1lhERsO3B0CmiNNprJCQzRuu3E9uP8NYh + +IFo2MRrIjUjuIq841gSI0w7kZ3DkcPHcLUbxVC7RrEjdRGs82R0acjgnRqGsMVGo + +aw1NhbTUXRpOsDdG2mwcdifcSUWv7eFj03XIvkbPtiW+LInAOrPtRe5sS64uqrK3 + +IbqkiyqXq3ti1mtH7Jl8s3x8eSwkgEGr/zEDGwiynWNzh5gxo96FDGsJIb2T3w3o + +tITGS57F3EBqqVWCF1zCSBaq3GNFZrMY1l105zD9GyHYE/Ly3xwGPejTJCoABJqq + +ZjZ5st/8Zaaij2l5tCXn2OMqtV+6vwiIUVdtVXAmijbpG9z52+larBVRo2/DSQ3I + +auEdtgWx2uZqB2sw6IXYaAcG2IOTYIVQaogMABSmJ/z3S6NaEI4ZCjw/gpea0VTn + +DrNYEC7N8dn2UAOAnIBAQViHzlsG3Nj1Bcfys2lWDSn+U8eobtf26yp1d4KhPVFc + +HsSH+RXCu4tSSn5EPN6gpt6oJFK7zg1JjCvyGXAi141zuLcWVOh2ZoVL7DjRItK1 + +sVSksQJYlCieeT69QiXLH2r2WLijG+SpS4FnDzzIqWpyuJl1Szz7GdSKAbIvCtP1 + +3UKGA2X7LW1m1CuvprdKTQVlGM9DTT8mmuXvrnpmhUvD9d+zT/F/sT7unfdOFBSh + +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 + +D3ARYAks1IIHAAANwWUoonRgABI5qQQEAAA= +``` +%% \ No newline at end of file diff --git a/!Załączniki/20221123102116 2022-11-23 11.09.13.excalidraw.md b/!Załączniki/20221123102116 2022-11-23 11.09.13.excalidraw.md new file mode 100644 index 0000000..5ab8c16 --- /dev/null +++ b/!Załączniki/20221123102116 2022-11-23 11.09.13.excalidraw.md @@ -0,0 +1,5410 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +%% +# Drawing +```compressed-json +N4KAkARALgngDgUwgLgAQQQDwMYEMA2AlgCYBOuA7hADTgQBuCpAzoQPYB2KqATL + +ZMzYBXUtiRoIACyhQ4zZAHoFWPETKUAdNjYBbGnQT4EOhByjNuAbXBhQYexBLcIA + +EQByzAGYBWIQBYANkkAYQBJALcoABkACUkAJUJmTH17SFhEZ09SBAR1Kn4HFLQeA + +AYeDQAOAGYARgB2WoCagE4W71L66sLIGG4AWm9ajT9aoZ5aloCmier2nogKEihJb + +kCNAM3m+tLahtrK+u8FyQRCAHNpbhaNJs3D3f3D45tIXA5zo25vKpb66e8AWqhxa + +pWqowWzCgpDYAGsEME2Pg2KRnABiUqYrGpBwAI1w2Fh5xhQg4xERyNREmh72YcFw + +OTMOMgnkI+HwAGVYF8JJICZIREhIdC4QgAOrLVZoWrCmHwrkwHnoQRqZkQEmXDgI + +ZgWaULNj07CEWDcWqYhbE4RwULEXWoSwAXVloo5fNIcC1OucJLJauYuWI3ACZTaf + +j8ZQWjBY7C4aCmkaYrE4bk4YjWh1qfmqRwCCySLkMCCgeW4ngI/oWuOEZIAokYTG + +Y7RwhOyFkI4MRcMXA9LNi1JpVwwF6i1KgsiBxYdxm63XhBkYSS2gy/gK3O4GxCI2 + +rK8wNY0vZSj1D7unbv9wf+sMtttHo1nsewKVT8eL2kj7uwNetg89veji+56fn4tw + +/jsf4HEcj7VBo1RweC1QdN4lTeC02beIBB5vvYZqPhhB5nlhn4NBoLwHmA+FpIRa + +TYWAPCVLB8G1Dwo6VPRzFkQePw1HBWZIShaEAQRr7AR+5H1KRmE0cB373OBTxQZ+ + +EmUfY1H2LRYagXJd6QZxaTKVJ6nAXp9gGcJQHkZpdy3hBD6fjc1m/gpKlgGpe7AS + +Bjnyf+JlgA5YE6c8p6vGpEBwDkOqCna2GlBoZSBJUtRzAEfiDuhx6xX4nT9tUZSV + +Ji9SJTwJmxYCPD1PUgTIWUdTFRlpGDpVXSZn43i1SVGyYsCRxdDw4a6fV0ylClmY + +jn4LQTHZB6xQC3h9SxkwTQNu4zQ0UyAqO83LdNGxrQEG1sf1U3vqRo5ZmGqVbcdh + +4jHUNSVKOE3eIVHEZRlIWQoQOgtl2CAAAoRcwgqluWCDjrgUKIjoOjGt2f2bkyaD + +YVZAW2YpB7+dpaMqQ6NgAL6FHYDhOBIABqXIAFpuAA4kItSkAA0pu9QMxyOh/Tw9 + +CwgAVmqGTiOg2QBuQBRzsUvCgnFYJ3eUPA8AEaELH0aD9IlVRtZ0zHBn1RwynOSz + +ECs3xiQ4pwXFcaAMfBCH8ah6Vzu8nwC9xfwAkCIJghCc5QnKCJIii6JYtilYEkSP + +rkv7VLoDSHB0gyphQGqrLsgqSpSPywPOvCEqG1KqClVnCCpwLEAqk4CwapInp2nr + +aQQAaBLGsrqBmibkCWu2NrRaFPsum6Hrana6rVoGkIBt8ctocN/wJtGnCmmCs9Jh + +wKYcGmJR/oVcx9XmzAFkY3Yg6uYNzlWpLEHWxgJ02Lb4G2Ha/T2Ld9gOQ4jmOc4T + +lOaAznfn9sIuJ+K41x1w3FucwO4iLkTbiecyUDLyyRss5R8z44HSXIv0CovlUFUR + +Ehg2KPFaqsXYnVT8ODVJ4J2oQ5ixCirYMMu5SyWkkE+RQQw2iVsmIsUqGxOhbC0F + +GXIklRicEaE8JIfQgRjCDxlCqFw2hr0yFyN4ohUoyE7ZCVwRZGRAQNio2QUowhfE + +1ECXQuwz8dQ9FYwMUIqxLDdLmPItmUij4sGOIPFlZRRDxF8M/G4qRGkYLWzEbwxR + +TiRE2xMRolybkNLcXkT4sJHjmFOR8u4tIfhlKPk8votJATgK6JvKk7aXEvHGPUYJ + +GJlCMnxNEdw0JpDxKSXyZZXynCVG20qek+wrVHztMiRUsxBEPrrkBlFSBJ15ZgiO + +K7MqHVwxZXlqlJ6L1GknSzHBMEPECq+J2nNTYexcq7JOt4IYpQsopRaKMC5aybrP + +TDGhLKbEwRJLuSheoPBuoKzaq8p8p1UJT1GG0Sa6MToBF2NUEaiFKogo6uCzJbEz + +QPNhYNNRRxKhbGBSUm64KPmfLOTC7FfzcWNDWotFFK1OoVT/P2LF11iWlAxTwxCy + +KiUzWGn1BWl0jqgpusCKF9yKU7T2GCP4cEeHDjZe9LRddWDfXwL9AGg9gbLlBuDS + +GugYYyDyPDcBEyekmX6eU0xmjXL40JnOEm6BSBRAphwBm1NqhuAAGLxAAF4AEVKg + +M3qH9GAKJCD0D5vAEuQs8gizVOLXKFQdjVF2DMjMKElYDD+KBJKiUt5gmGt0fWkp + +uCyMIZVcoCFeVSDOJcROJQgnwWNdEhYjslQu3+GMd2I5Pa1wcL3eEFIA4SAxEHUo + +ap8SEg7mSHtUdoDkFjvSRkicFjJ05NyEufJsAChyH6EU2c81oALt7TdRcl3ODLqP + +Ocldq6mn1IaJuC824QA7taW0Vge77tdAyAeXoJDhz9OPKtE1UrMSXjGBeOa65RmX + +qvdeqBmUKymOC3e+8ixLlQMAk+dcz61nrNfact976dkPr2BWr95bv3HFub+qBf7j + +gAfCIBar1wIwgUjbR75+EyvQQguxxT6VgCvHYwE41rkcqqcxw8j5MHNLY4Ig8iCu + +O8vsOJ4T8C0i1O8Q03yvGbz8auZmIT3S/IpO8kSnjBCElqb08I4J9SJEoLKaowZp + +rXLVJwipkJ1m/ESYoSJr8WSLERNrV0lp0nMb2O44p9jaRJgGcCnJsAhTckOMCxFn + +z5EjV2ZNWFqTEXfJ7E44ZoKiWcJYMfJmKL2M9P9Nc8cpLHnHNeerXUhRtz7BlD0y + +ZhriSmt0TawM9Len+jdcq78rrfWZN5Zi5Fry0WMvSLSBp+L3GJvzYc7jSTYUxkRX + +1X88qWUEVDDmfVYE3gsxjfmWUZixaVlVb+WGJoA4ujnO2PMj5yUUJRMqfVVKgQtm + +JRqHWyl402pfYVnBP7O1xpPU+ZMEH73KUdECPy1hsODh1DUQlOTpU6gdDQqGHTwY + +OpHezE0LMw0UpCfqoCRlHLKqCbx+T4c+0mqdBeU10qhG5Z1DDD8lnpEUqfPaLsdo + +7UPuJQOKhJKjLQeTP/W1Zo+1PnHZKtKzzsqvo/WLEqyK67VXH3VVAKGWq4YMc23N + +6xiOguleciFc1NgiaQCtRAAAggAKVwDEAAKjWaobBqYwGqJgegLQxQAE0hBupiBy + +QgwbMgSDDfkSN3A6gwU6BVGozFgQ/eTSrP8pFIUTTYh8j5AuFgGyNnGFTRb5f2zr + +mbCt3A1aacuTTvgDsPiNt+M2wE3VQTgg7QIfd47A4DqHaHUdEdKTOBjnHWdSc2SL + +sVMujO67C451L/nFxe7fbFyPUicup7hCakHheucDcjQmmlOaOc96u5PsLq+9057P + +0j2/Uho5mY0IpUA/PaUEY5xgZjBBgWMYUcZCf4SFeDQsfDZDOjNDEeS+BsRjCjHD + +OcdsPDJDO4WlQcYjUcUjScbDWcOuBcGjI+EBBwMBbcJjJTUTMhEbOxYqWZWnT8fo + +erHraJPrIrRg5g/zIZSTGbeTFzKzK7HjTgtLVggrHjHLG8Og/4fbDgvzEQgLHg2i + +K8CrAQobE3SVI4FiFiR7NguLTYKQ/aBg2xBvATXHYqPrXKdfciabJQyFWg1CaQow + +6TchWrSgnjTxahVQzrRbTYLTJvGwxg0Yew+gzreiCJQbcwsQ/ocMKwg8ZxAIjBLK + +bJPQww0wm5BIy8eIvCfxRQjg9g6wlIvwswjI2bT5cIrw3yFKZhIom5EbXyHYPrHJ + +fQhwwwzrZbJzMAJokLGLCqGrWJYiZgivEteolQxrEo5rfIg8QqcosYvTRCR8I4Lx + +CI8YzowYxZYYhYxBGojlPTDoR8faXYyY5TUYjrFYtqCJIYhXPCFw/o6w0bKbbJLY + +xvYovTdYIpE7aCAbCo147rS4qvGRZg5YuYmBL8fg2YsQgteCP48bHI5XcLHCX49Y + +q44iJ4tI3TMQxE4tZEoRQE74qIizUzNzIRE4szKIyE9rNTVxVE7TdItg3EsY1xWE + +1w+EnjMoyzBkvxJklbOEyAcKZVDbCgk6UXYMOoZoK5LnDqSFHiSYUofsEcR7A7Qq + +cFM0QlelTKVHQEI7bQtU26bMJaTMYqVZJ7flJoK5aHf4u5SnQEUnJwu5OWHYDoI0 + +8nXKP4BZUU9I505ofKcad0snWHbMd5NRa0j0/0robYanYoz0nhc5NCInP0vZSFbe + +CYSYSM/0oECaZM/sEMhMr0mM3020v5GXJMvYLM+Mk5RMjMks1MnM4slM7M8ssMw4 + +CM+su5YEcENqXPask5UYcqDoPqfw8nRZM6aYUsgsjHXMn0uMscnPVCUVONTYFsws + +xCbvKeBcss1sic2Mm07nNqZlSFA4Kcncts1qOCQjRcjHQqZ6IMtc6ctqFiGFLMQ8 + +/HJKcMCqDY/7dFTMRKNCZci0v5OYcMKZVU9HOKVCHhf4QXX5GBchHuVXBVdXdbAW + +FDXXfXWGHVI3QU+TNkwkq7OWDzbkgmG3S1J+CAPwKAFwUmGsamUmeISQQgMQN1Um + +IQGsTAWEKAeoN3KPUNHIcNSgePNASFXRcU7TEVOWJKTPVAK8WRXKOYe7Rqfac5Yv + +bdFuc49k04k4ctC2FuOCCJeiHWJnEDBwBtZ2dvN2LvdtQuAfPtAdQdEOEdcOKy6O + +KdKfBOGfFOQ9XkRfIUDfUUFfPOXdWVF9Dy5UHfE9OuM9Q/PUY/K9M/FuC/OuK/R9 + +JGZ9TffuB/a1J/MeJDQcQcQIKYPwT/WMFuT5QqgA/Nc5JKbMcMW9fMCApDZC0+WA + +zDcgxA/AhwFAx+U0F+M6LAj+AgsjPAv+Ag6jeq6A0ghjaKLzEEm4jo/oYLWTdTM0 + +EbTEyvGLK8brPSzJAy5iOorxaExa5gzanYWNHask/pfasTEiFY6IkE5Q3Sw6Y65n + +PrVCC3M3BBFTI67angPrRYwtJEv88Qrk2anhC4/6ta/pT6k676/E+Ky8Dah6r666 + +vYI4nCYQzpbgnk3gwGkE8qPo2a5iLoha7JJGzrfaWzdGyoEbCYXLB4pSVLCmkbMY + +PasGtpYLbY4MZatYrEgG1uPrSWP67m8bYaPjZ42oqI6Y62C6lE7rLgymqIuDFE66 + +t4pbbLMYCwrm1a1Wro9m6G3IjBJmgWzW4rJaqIjW98oRNRPTZLDGemt7YEczEkok + +g8Qcao0WnYiErogwmQ8SakpvPTMItSykz8F66yHWlYgOnCobIIkwmk9EvWmRME9S + +vxNmt2vHf2r4jkoRMyeOiLDOpOphayRoTQiaKYfLHOnCYIxwzrQYZa5mwWxa32l4 + +02lG8Q7W1OyI8unjDoOuo2xgk2zu/oRoGm7GMTeG/SqG66/mqElm4rNGu29orzOa + +8vGevxGaxe9oHu82mRG4kZUBRCyanaKZdCEIyUuaSaYMEcbUkCxMh5WUzYeUnUts + +v4CYYcUukC0YOaKq4jZ6K7TKcqNCcqbeH+qCkYVqaZQcPaHU1KLHF+uNdLcnK0m8 + +nciYPqeu50vqASEcrs1suYDofKYM9cpcsMOYRlM8whjHXBxB7c/HcELMUEDFUco8 + +o7FtNE28qU70rc88mcj+9umh2cuYec6h50/h1coRtM6MycsRhMy8h0gh28rKJUyq + +fMncocwcLBrh5h3s8oG7DR1RwIOs8h0iUYUAuNORlRuWPbBh7Bws05CacEdRwxzv + +eWFiACiUunRoQjB6E8kBwEDFcEaWGqHxhWIaVCK8oXWHYJs0UJieuncMShyYNx2H + +eifjbx7nB5LMT5e7NHDqZxjNYEJ2qg6aXeztOCxVRC4g1DBwBVDVaGNC4gXVRGe0 + +XcJeze7EtIFrKia3ewW3RwEiyoHQUIAARwAFVvdKgOAeAg9qYogEBcBhmoAvpKhS + +YuKsgeK48Fgo0pgNAuhMkXz9pWoxgJKrwmhSJGUGg/GDgHolLc5TQswZj87TZNLK + +1eA9IIBjLvhTKW1zKe9LLI5B8g5h97KR5HLJ1aQZ1XL51Z8t9PLV1M4fKt0bmd1Y + +i+9N9grS5Qq1QIqP0W5L1G5YrW4LQSQH1u5b80rIqMrz5n8n500xhGVww+qHA/8v + +8W5cJf9Ex/9UxAC9gez/HwCD5RqddGrz44CsMf4kC64OrID0CiNX6GXIAv5BqqNA + +EKmFgyCEDsJaJprWsbMjF5CMbmTMsbpPDM6qEa09WF63CW7G7aSxDCaPj3MVjHbB + +CgavMCSKSCn7A577Nw6QS27WGO7MbaJioliKjslXb/WVjLDfI/XY607bXo3w3Y2A + +2DWsbTkQ2TW0gvXesxCybjWHn2m8avN8ow3Q7eG9NQR9iRaI3y35r7WLbyb56ViR + +V0383nMG3vXzMf9iS5D0aLWWTmJrb2mZbzWm35jOTC23Ckpa3abyI+pE3/DzNo6V + +bXEY2F2xCDTkXmsm27nA6PW6Jt37iR6/FV2m7O6dMW2g7Z2T2bWz2PDI7Qjr247V + +JineT97NtYpTSsdwLvlwmdpRTTlmVCpQRpywwvGso5S375lgwARYMH737EphwgUN + +lJdLSP7RVHGaFXHf2TkUGV69liogRMlWi+GeGI3BzCcUpBHdGLGxgrHqOuhRxmgn + +zyO5ZEoyPYdjsicqPHGwx4pSVGH8cDmipmyePrT2hTkkHBORc76DH5HpOphZOVGB + +I/1lGpOAU+pVPBzlONPmPYckJP6mOpHJlyoUoQC8OWMVoX3S5SmEL+SkKxr5WIY9 + +dNU6mGnnnsJz283L32nH243n37BCLuniLnBA94g/BcAKYWhPB4ghAORBmaw2AKBm + +AgQYBmAuAFh+ZVnhY+KNn80UINBsoDzho/gzQWgjmDgTNNqzyio5XFhlK40NLzZn + +nLEbwi65oS6vT61W8TKHoO9W1u8vZArfYQX+0AW7Kw5gW/nqRnLwWmRIX3L59nAV + +011vKhvfLlKArO0grFuJBj1MX98q5yXe964Yrm4CXL8iXr9krSW310rh5KWsrqXf + +C/hyg5pCrTQ9hSrOWgwMVMR2hUo+XENaNBWYDhXmqEDKNkCH4pXurMDZWcDyNIfh + +rlXtcSDeSJrNtNXWNA2+7K7iOxNfPk3bjLwW7oj53T2ceMF6TW2nxGjmEvaCyKJn + +rith3e3rrE7vOIsui2utDS65aB6Oe93mIJ2WTBhK3WuGh2ur6lb6eWjvbTWOlG2L + +D7nOe+CvFIbmdrrqfVfxC163CyfrIGfq7hf2fLr2eL292rxCiy35a8f5fZsrqfrN + +3xDs7KfLwnW1DHfxbnerxXeU2lDBfBCreq2k2ka7fGerwzjWmAarxDqEaobzND2b + +EEE4/x6nr13B35M3Wjk0/ap/ak+3qHfU+tqE+ISVqt6Hex6S/0/O6u3LwU7q2y+x + +MG/Q/gpVs+TNdtR33bg2h35kI5g0pr70zsxsxL7IOPtZSMUgRNlOhf6Rg5pXse84 + +P5lAQcwxdl+PtqoJg+IjsFT/sypmgUdd/H69KKoQCHpDGFoRp8VEIW1ud6I3zxoU + +Jb/7ettQQGh0ymhdhX/YpTHE8RUX+05EHIcjmhtRgO3OEftvw+RNAN+/2UVP2Bgx + +Cp1k4IeiKKlOSz8QGW1Yhh8gA4odrsP5EusQ1/IgUOgzEMoDEyRwoDH+f5UqH1FN + +JLQdS7XZht/zYa0tscofZ0otH+D5RJOwuF+jrFwEw5hUGKAFM1E5zYdCm74KznKj + +Vz/RymqPSpo5xqYG50KeqTCl1mPBzVyeN7M1AFwtR1x7cHqQgEHhcDep+gHqAAPL + +4BJADMbmKTDFAUxsAFMSoC7hWYx41mEaXLiUAVjbNwcYlLKKIkMq9ABgTQIJIfzm + +C0o2ge2a5qvnBCy8T6jXWvNKDsQ88Ou10N5t1w+a9czKHsH5vCz9jj5rKQ+cbqPh + +BaT5Zuc6OcAumhboBlucLNbgi1XybcUWLoNFntwrgHd0qx3E/NenPy3pEqJLfIXf + +nfRDwv0j3U0IdDaAc5b0TLIqhNC+5rxACCsOcgD0tR7w6qwPNHhAHQwXxweN8Nqp + +AElZoFYeb8bAp/AGpisDh84EapsMUFhQMe6grHtQTJI+9WeSvKIuXzaazY3hHbMQ + +pIjPaIIje/wt3hFg97V0fh2bWvpn3EIpDJevPHQmIRa5bAgRo9dtpCJBGetARcvC + +PhCNEKdN2+b7dQb/xMQQoEBLAiAfg2YZ0p36EwO+vlEl5Ol/sVUcoM0FOTZNN+6a + +I7KOAexQMDOZQcFMf2voadGgcEIDuQyVwGtrO8qMpnZxVafwnOqFbVPUwwpNM4iW + +IhIc01xEKFdBYAQLrYGC7UgXAFAKIA7lKCYAGY/QIPG7lgA8A3AnqYIByBrChA3B + +gsDwTlzFj5p5YVQNaB8nzy+iSqc4ZuJggYiAVn+4pFCN8nqAxC84bQDQG0DaBcpD + +ok0WrjXi0pRMuuTsLIa7C+a5DBuW3YblN3QCjdg4p8EfA5ULGgtp08cOblUKhZos + +6hS+fIX5W4DNDS423NOO0L3xCAD82LboadxvSEsrQV3e0ClT7i3dyW93X0OMI3hM + +5xoHjd7t/jK5ss54K8b7tKAUasQJOgPSAg1VB4YYr4LVJHu1Wh7HDCMPVeHucNwK + +XChqVTG4XKNAQPDVRLJLVhiVRG6s2efWPOjrz16i91RVdYEf70YIt0fxhrLutj0A + +kYIwRAE4nkXxV6W9rWT7CCSTz/H49Ai2gxCTBPkwNdGCWvYLCiMYLW9G+A9TJD7z + +96YSu6KRfCZBJ7bvCB60wcPsbxAlY1+gzQOCUHwkJbAw6P1bXvBJdb69ei4OKYFc + +iTGXNLqfE0XvlAt7sSs2eIjETxjYgjB4xiYq6HKyz4yTtRSE2bDUDYme91J+rcia + +rE9rYjjeekvtqBMMlxilJwklSZdVMnXUMUDEg6jRN+ED0Qau7aSc5PRGaT5MD0Sy + +QmOslHRVJ4hOyXzS/HwSQpURKeu63YniTzJvk+MUJO5TJjLqCEvznJNVhQTLqTEp + +QocEUn+Skpokxgi3zXauTKJxk9TLbRcnpTcpgk5SYFLEwqYuCZk5ib5MN7lToInk + +2Sd5J4xRTVMQvQnpPR4mCE40fNECAlLqnJSZIIfEqelI3pec92R2dCWlO6lzUJIt + +UgKZNPEjZSipeE9qZ+Hyh80bg40jaYVJSxkTZqsYtqRqPIj9hppZhPmplPsipTda + +s0taVZIKk8JHwt0mOn7UimB8hsrUzie3T5pDSAZg0nSZ1hQht8eSa2OzgfSFK7lg + +m9EcATkxFILRyRkpYtDUFDF7YgBCUTJIDkgYkC1EAIXunsgUYYolGunPZGyNv48C + +jOdyFKAXi3iBMdyI4bMNrERrk4HoQIXYPLEgo7lXSP9d5DyjhRYliuIknUvCkKi0 + +jWUUstROVC2SCo2UnUZ6MhExQMCQK4KYMHlQ+lazOg7OAlKLMGh7AaE/wToMbMpT + +TA4G9EEWUgJxSZgjsFUFiONHtnEpTSD0JKMrKll7QDoV0LWQcBPJ/ArkmsuFIHLA + +FjRQ5Js+Un7Mtk7RpgClCXHLIDnDRrkkct2atFpFAhPk/ssObdm9LkoVZ0wOgl9m + +TlhzoUewPsFHKtnBh+w+UehqzLhTuwrk+0OCI3MGi1yKuDczXh3IWj1zGU7cmuf4 + +yBCF4KB8c/aI1BTy5Qe5Nc6fgKPaBjywUmwU8mogXkzzx5yETJFPMHnjz5o3IteR + +IOJQU57g4pQ+eymBBBkgU1csHEMEOxP8eR6OCUbBWlG2dO+94qpgqJc5Ki3OxuNC + +BDMNQ4wum+ogwSRQZjEAYApAeILiFxAUBvALgegMQAABCLQQgAEBrCEAEA3MUWHX + +Ey7uDsu2CooKaDmgFciBpyGWbJWbx1xm4w4OKAuS5STADmnQaMd8EakjtEhaYgvt + +igyGZi0ATaHIW2jyENCChvaIsTZUBYTdz4ZQmbtWMqF1xqh9Yryhul9jNikWrzLt + +Aeh24hVVQHQ7sYd17G4tT8Z3WGu3Eu5JURxN3e/BOLGHewf0qAQHMDhqC5hlxy8D + +7jMPZbJg1xLcE8rKS3mULiY6w/lrcMrBNUDxEPcVseNQJPczxcPEjJeMR7hL5Wd4 + +hQaq0fEasyE4E8idNTRFdSDJYUwQlqP0n407pi5P5O+NonpS8lQ2Apc1KeHQJslG + +k8iZwu4zVLI2nUoQQrxYINKOirCtnjqzNYfixC0IppTUuIgtLXEIvUCdnyam+RYp + +WNQ5g63MzTsj24Sa2NMv9ot07WU2f2j0sbZ4R/aSy5PspnqWFK6sLdHZVVO6mIQp + +JQ2FIgtR+ILEJlWNHdvezaRtKTlbhVqNcs6wHK8kndcaK9SMw/KEsndbuvNMEL90 + +5JxC7LNtOsKbLll0mYZWcThWHKcIiK6GZKI75AwBST4m6KEJmCQ5xBIDcqF/xSip + +McmnstoGxH7AYyPsOwbAcVG9boNoGCnATuTlAGo5OGjjWmUMHpkaML6lUCeTvJOS + +854mAs/HAcgmjQcxV5OHYJP0OA/sfGsq1iBBUSZ7IugQwZoK1EXl3JCo4FbHGSu5 + +n/1RgXjVVScgxQoNaOQqt5CIMQikrTVdyd/oHIHnryTkE0TWB2StWFkrk8A+gRnN + +OjBMpg5yV2SrIcItz0C1811WNATmICQ1wc/RlXL9W78Uo0wA8gzKfBPzPoL8uQbK + +OSXyjlBrnFUdhEWmTZ4VqK4epbnxG6j9BxMEim7gCDYAHcHAUgDWAdxwBqg8QGIO + +0AZhwBSYuAc4K6hdEQBY8ngj0RvAkgpqCZpyEzsGFq7NxNI4qZFClHyiX1mFlsM2 + +l8LLRNdvgg7bhW3myE5iBFeYlod2grHFjMQ4i0oRWPKEyK3Kc+NOA2NW75j1uiLN + +fGovbElxOx4VToUdwMW9C4q/Q0xYMKEXDC7u1i2VLYrNCVz0Ub3ZxUBmlDZgFhkG + +Mgc0D0pgE1hCGHcQ522EhL4C+wm8YcJPFRKMCpw2rgq2vFKsiCuah8eAnhmgSXxA + +9SpeCK+Vh93iM7OGsxrYKvCONptf+W+JeV08S1KK4zNxuIkAruM6hLiVEUWrFKMJ + +s1f6Z1hhWXhbldbLiE72ywRSB6QK7jOSU6XvLReWmmLF6NY1lZIpYmwzQZvsm8bk + +6Zm83mCqGwR1FeFygyaDNCKVSvJmS1xG5pyUdEXNMyizeWxs2fFjlIyoRMisL6et + +ZlQbRjb5B0qrKR2/tZTWxszaRtfN0ERLSZr+WIroIXmrpV5hInRtFNymMLUZhiJn + +FHplkYrWXTknBhnerUPTFUUE3hbOiKxfaMTXq3RtKtIWg8DQpi0abqt5WmRDlr02 + +gSfBjWozHOzG1VbupQ9YzUJoOBvKut+kVLQMQW0rFKogW+yDZqtqdb6ijy2iOtsm + +0xZ0tFazul0Cs3WFgta25bdYStobKttgyrLb5ji0DLO6o25dgspzbHamtaKnNlkr + +KVObulj26BK8SB3sa7NRPDokZve0YJ5NTbL7UZnWqvENt+tSLcRHLVNbjmMm5aY0 + +vR0I6OJvhG3pWoxWEicVfyFUoEGkJJRJUOpA8h4zrmnyQGUObHHlDOg0C4oqUEaF + +MAqg7M2d9EXiOcmYF39JSSUHTHR0MbggZZ4He+uP0pR3zswSW/8u0GWEQc9+YOfY + +KCFOQMi5+j5VRDsHygYC0mcwc5oEFfqq71kfED5JSofnzIwGAZYxjLrBzE5GoMAh + +3ebtagA4BR7IpkQpXlgoRBRNumDHfVN1QNlkYYWUkTJt3AphoWpV3TdAeRur9m0v + +Tfvk2WHhhY912EArKQ8awCwcCcgCuciT3/ZTOyuiPR9llY7BPdZuuPVyklS8z4GR + +eqIUdlIXtLq9LcjxnAzwGZRNVRwJfunq71t7QhEuFvddmeyl1elH5ZCF+ShzECns + +qUfJr4xn20reZKOXZR+Tn1sQF9nekYD3vli7kh9bOhFARwsaMqPydjcqNGXr1g42 + +IClHML9mH2ZRfu2wBlZfvWQECXZyHe/aczQ4kNbyrcLPahL2STAH+pXNnQZwQ4aN + +UBzacLbQI12AMvhhZFiArJ50kDEDc0ZA8+SxDXTJkmOOaATTQYrQM13sGztmrflU + +aP5+a7+YWt3Cg6s+z0wBXoKIogLnAPAGihQEwDepPA9QIQJIDdweoKA+AWEDwE8B + +upBAg64de6LrjixbZ3o0RL3wAyBi1gsUVA8lCSh9RQmBVXNC+p2DsLnm+O1IhwJb + +w8K7FnzTvLmOO7qKRuYikoeWMKFOUwWN6+bneoXywtGxQilRa+tvxtCMWOinsTXF + +/X4tjFd6QDTfiGFktsWk4sKp2gg1Y5GgAQpxaBncVFUzQfiyALMLKrf4YB5QPXdu + +IFZbCdhIrQ8QkogBHCiNMrWJf1SvGtV8N1wlHlARB7jUaNmPdJc8IY3R81qLSmgr + +Nox0dGPhbR6CZDud7RaAtV0/8cVix0Q7XWsOsYz9Ip7dTg24O7LOMcjYt1UdTiXa + +Vgczb/zXi0I2HYcWd7nSvMz0Z3sVNmPkSgQ525wu1uY0s8RN1WoZYVvsCsT3JQ2C + +Fd1M2COSWe9WsqRsYRLorQomK8ZESKliakRwyEVndfWpSQpPk1ug7Prv2gq7H6Cn + +EcIXKgZwMdZ39RkWDliNlBbZ++9+qCHhwEc79oBiqh0B/07lSufjD1qVBagF6+9p + +EMYBfJf13JzmcsXfb/pBCtsaTMsuWAAZOSQQM2hZJoIODCaYDHFgDafZ3sIMq4s1 + +GuLFfZ3qNKDnOtTSg2oNJ3vHJCe0y45Wr1E9N7cMQOALUD1y4gAgbAUmFmEIChAO + +Q3MB3NMzdzDMUgGXENFl14oELIAUaViYQONUtp5SGhqhQnluCJRNYOA/sFOyzCrr + +UAHyZFpuqSF2LzlzJ3dT12zGmHD15h/vKeqsOligWkiq9dIunyOGah6cFw4+uPXi + +gNu0Z9RYWc/UOAsWfh6KniyMUAahxZix0BYpGHehMqNipDFyNQjg54jjLRI6aDgi + +IaBY5A/cp8g/zoaNh78yAPkb2GKsoekSrqtEpI0I8FzyPSjXUa2FqtaNWNejRUuu + +MfbWjCxh5SxuRFanpMO2gTeeZ+N0QrzUm1xP5qk2HmnEfWlaVMYsT3nRNIxvk5my + +/PpSW6cQw7SsRBJAWVauxaCCsQs2QXLt5mGLQcctbL18DlkHo53TAum4St/57qUk + +WMiwXbW8O7jPlt2K+shti2+wMWuh0eInzIK86uZ2UwPHYsNB8iwxfOOS06LzFvC6 + +9t8igr+l5St49xZYvRtqL1W6NvGe81eZWtokK44bQr6etBLfR1xKheq0EXxsb5s4 + +ype4ucXlLuO7TXts/AanKLUgz7TpfaO3H+LCllo9VvXUA0lL3UkOoZYrpdHgVkKn + +beMpWLK0MLul9yyCR+1oXgJ6yn3r5vMwaWCeS0iY5OyYtd1ysoNZC5eDOKhXS2RE + +uSa5dkLPHwrz4jJVZwBPYqYocUeWH2DqBjAyZJ0QSgGUKj26q9/5KlUrtRyVXf+b + +QM0DwkpkqzRgw4WWA6QN2nYCOROdAZifWTFQuoaiLXZgNTWkpwwwDQ3dMmuS9Xtd + +/Kd/n7q903zGUz9F3XVfn5sRt+iEf3WXsqijgKoaQ9+oVGpwdBD+W+1KD3ttU/kz + +rIgq8sNGJP4nMwA/SU5/rJP6EQDJA1k7yZ/6kR8rhyakznlbgn6EyGDVCA4zYaUN + +8GvA/0sQ3oZkNby/GP8I+TTWs4aErUCTsjZ5y5Ra5WHIJleXOiimdyte+nQaoiZ0 + +6DgDOwm3jfbLarCyP4WUs6rPk85pCjOGm6zn7Ds4Wo9qwso0E6AE4KbYcpqJVF9V + +FzybgFXFHHLBSi3eTFsv1cGEggMLJZWs1jtA3J2y3Pkp5ZE9SLhTFRTGw17nDrMT + +wspg1UsnTiDjLmDQWdu5b2SQJQj4pomLqvlNaRF3r8+90pkprKfkFbm7h1TZUyoO + +VFqnkYyO2bEFZ1PVq7cJFKAKUFxAxAHc2AB6M6h4BswKAf0egNzG5g1geAAAfRrB + +iG3RbpiAOLHOi+CiOFVHZDvAUMqwfgt9cFHLEyREcagEZw5DFeKuQBUxuhk4y2UT + +NZi+u3zI9W2ILG2GIAZ62ylmYkVjpcz9h/M7WIW73rFFy+cs2+tRaaL0W2irsb4a + +Px1wehARps53BbOjj5QYR0YZ2fA1oEI5uwRxQuLipLiEjK49IyyxYhgnIUfp/xRh + +tyN3C5zoSvDbhk6oEZiNWBa+1UwuFVGKNb9lJY0ceHNHgdLw7BGZYMn+X12Jl/ox + +JcQcZKOi2fKWsYSBlJW5jKV2dnpdfPN3ZLnRMK+5Z2OwPulIV/S0sfa2nmrakVqC + +eVh8tDGxC+XGS/Aa/Ah3O6vUjB9JigtIWW7bbBY+ZjBCEP2HXvM9mogsvds0rTbT + +oM73m0yPhH0F4iAw/XastpH/GtR58J5od3ZNrrdR9JlUcSPaLsV6rLI8odCJdj67 + +YWk5YWxWOid/xknblc/ZyqVVjNisiP32uF6wcc18+2yLWt+DP6z10A8uTnIk4NG/ + +fJdYZw0bvxTOAuLm6VAlRtQUmCT/1UJPhTG2SB6TwNebdhxxro1Wt8nPk/DWJrin + +Ca2NQ9HtIuyI1Dqyp+VGqelPHoJdFEwHMFutXCnVs020bZqfEoH+BKkm/HP/Z87P + +VM0URB/x6hz8gQjpSnJ1ZNkKxPZ0KCW3HuEnPRdVeJxXJZ1WwyD4KJB+UzOfnCfy + +VThuAO9QZscOWDamj/zlWsYM1rnAHARBRTCEBRAxQngfoG4F9TnA3AkgYZvEDFAc + +gPcFgJ09HldH4L+Kdiywj9l+7InnoTQcrjBAfsX07ruwTnM/cgAl484Cj6eqY5jN + +aU5pvFwZLV3ea8KTD/XCyvkMsPFDR7l6we9eqntyK6xy9h9UoufVNCKz767fKva/ + +W6Kuh/hxs4ON3tAan1B98ceEbA1RGkMvZONPIZvsuLv8bi2+54rWiOKFY5dgwQEq + +B77OP7uG9cxEp/vPwVz/9tc+Rv/i1HdxDRlqmkugSoOpqfSxze5o6I+XqHr4o83J + +NAurbtWll7qbdTUtoOUHjBUi+5aDsO8xLuWtwupmpozGdBdlqRyTwQssloRTBON6 + +BOUeJFZHDUug4nz9cw6k3cy0nvRMjd6PJ21ltarm3xemJ+eckkrMBbEwzasHSbOC + +zG9mz/BxjDbthzHxHBhXgrWb93gUorfdSTmtj8Gs9K7eDuKpekvt40osfu9CeI7h + +y/JLh3dutJIb+2uuyndaTCJ9bjPj7zcllu7YE7tBwm8BkE7/W5mBN71Nlqnufe30 + +ut79LPYmOBHPU4d+u3vdEO5qqxwx6I5j7Xvj3m7s9me97eXuKpujjmlu6A+dvhkB + +IuGd325ZxpEITV6nSBSAIMrRwnNxm0AbruQpP68BpQ3bBxxcMUcmq+KJBu+uZI+c + +rI1fWDnaDYy2FSTBoMkyF1042OashJozdQjkDGT08xm+CmeQFRcoSz92YnJQi5P4 + +57OGuw06LnaFe+XMq2fLr5yGlJnEQmXKocmf0ttkszq2VmAEhUmVPc+3nBNbhTw4 + ++ZCq/W6R+3kO3iUFOh6DNZAZMz/gKa1/CZ4310MBnYKc62/H0+DQ3PGJyZydao87 + +IbPvn5CP5/1uBf9dfVnFK7LjQHyAvxXIL+p/jlefhwHn2HImkODkDzPmUPkcNFqs + +6l1buwYJtztkvQVpBxBuUyqi9soUv5xzxph50z6qxgPL0gimHd6bOBggDMIQP6jd + +T0A3UwzDkAzFhCDM2DQeeoIQFxBigPUud0F14LjMwQzQuUGAbXYKjlcSIwAy3eCC + +zLPQIzLEINzi+eY7AXzRlTIcS/3UpmBuaZgeyIqHuZm0MZYybjS7zMQtp7ThpbnP + +abEL3PDy96s5AFrMb2HAW9vlxd2bOCvSzIGqxcffFfUssQdC+YbBuZbxhYfq4xYa + +aE+S8INYNVdV5hsVPYawen9nVwRqXO/2yjbQI18A5NebmzX6PcB6TtqVFNejbbta + +hm/xKLus+TrgepFYUydG53TBLY9A7EycP0pxb8N/g6U3M+KIWllaXoaJqr0RsKbu + +IsJZWm41KiPrxett+rf6Wc3ShVX3O561/HVWTjylCGH4ws7B+OTfa4Lu+t87/G7u + +4j0AOlgApn+uMiARDZJkY3gQjJzoNMGgMjBV5oHXOR9kmBAgEmYX7XXWUhT/AJnI + +DRCGJXNVj81rspBAd0Q2e0+YZ2zmUaQYq95rfbBak5yT1l+PHXeTXm5+HaW5hgnc + +bgRBfQHqBwBM7DuKIAAA0PAszTO94DYDOigX3FKb6OrsU0LiootroFF4ODldYons + +fstsAaDylG7L7jdW3euA0Gu7x35M6S8EVCvhFE6YexepsOXfaXj3+lzPecMrdmXj + +Q/ymy6XsdjvDa9vRXWc3v9i+h/L4liEeA2H2OzD3Ls9S1iMcQg1l9pFCOfKrAElS + +tXWqkCVNXHDVFZSfCVkI1lzP+1foAHeViAcjxRJVNcsNHcyaMrXT1w81GCWy3QC6 + +lf7XtdF6bRxixlffXkisNfVKyxcH3E3j6w13ZrEID9NINwi1hfB3kitStEbFwcuI + +d92DdG3R4w3db3dKSuoFiMaXelJZfd0XpMXUUXYswASSRwC93EbCn8AaByQLcQPN + +n1kCYsI930MeAiX2UDWaPyUSkhAmQM/cYsc9z1ZhAogM0C+kBrxGxoReQJvd7pfE + +ioCJAmd1sDRfF2kStf3K52J0oPIE3Q8lGOXCK84od5B+xwUQAQgFhwLa3sZg9a+l + +dgw9NPQCcJgdREZQ40eL2QEc5AvDUREguPSN1yraXQCdxrfKi2tFrc3TgZdmcIJt + +0moP9G9IAnXcn5k6TCoJ/pMQeEV5FoOVPBy936Vfk1IETFoLfJMcaIN5EPkUDiyY + +KgxoKP58guPWhM/BJL3C8tsc2T+5RjAg02cU/Ur09sKfA5woNqvdzmaYB3By2cDr + +AsWiuddTA0XQAg8ZBTgBvAbAH6ABvOAAdxM7WoDFAncPkA4BPAJ3BLNoAZ0zwVXT + +MF2tI4oBAU7w+yKYQkoBJWRnysBdUhgjMPLRPx0NgMC4zeAjvYwxO8l/PuwsMMzS + +lxu9szce3u9J7HfwcB5FRl1e83Dd7yGEvDTlxrNv1fRXrNDFAcUB8BXB/xX9QfUV + +3B8BAWxSb1+wPBi/9MkH/wEpwyDFGlcX7aczINZzEAMKMrhEo0gCifGAPnA4Aoo0 + +IJQHejCp9LXaaGtciAj4wwDyHPAIO9vhZULcJ8A9TGYc/lOgOE0hHQZUGNzMQX3l + +D+2OwIYsI3Od3NDjQwxEuc5JbwkQcEtUX3YDmsaEWdC6IUwKe1bQuYzz9PWHn1r4 + +PQgunAsISMh31Da+VWgdCISK1hIDZ2HGnsdK3AMLiI3QjYM8sCA+X0aV+HIh3+Vg + +LOCzwhowy811DS3aKQ4gjQ/QPqIm2FukkCvQxpQrCm2ehzzCIsSK1BBhHTgL8htQ + +yt01CvpXy3bCWwiaAYD7AH0L8g3Q6EV7Co+en18gRw/2mOM3QkEgnCoiIyVvNv3R + +PzU0vpBiykpneHdyLD0rcyXmUzpPsPEJvjGYN3CkaSwPrCs+SwKMdeAg8N/N7AXK + +SRoPzI8LqI+kDSxYD4hQ8OdosLAyWz5liBYjTD8aFujO1FHGGn2JrqHY358VpecL + +fDM2C8K9cqSCMLPZRfKtyDCQVEtiQjIVFsK7C3jUX3UI7lA0PUwoLXUK0FswsQgH + +D1qdUJZISI38K8wKI+7Qcc9fDwNJ0lDe0l5lSZXwPbIHgErmKCDsJXVBB2g+ZAl1 + +ZccP2S9c9EnHogKrKBh31W5fKGZN8BB7FyhN9T/QEx3kNZ2kjMoPa1JwmTM6174L + +kTECBsTkXjz99/sLSOy8KPPSLIFpPPZHKBJgD5GvDSoMEDetZSUAxN19GVNV0YxO + +U5DMZBOAEC3g4bHcg6BU5UhlZUOOehk0IdGLlSDIJzcAx44F5ILw8jByQBkY5Io+ + +Rh5UB2UKPkZ4oplGplyyERm442GOoIOt8cX62U8fGCKMyi7SPAwEdaBXmxY9iouj + +xQgGPJJiqhnkVj17JDgC/lvJUDOAxCdAbFSJzwQbFlWsYMcLgWaBwnRxjqBe+YaK + +hsEyNgQiEByf0iGjeVUaPsZiofsgGjeo10h04MbO8mZUwbZBmXVPfENU5RqoDLx+ + +t2nHp1oE9olFVoEDkIqOQZ0UMUXaj/uG312iUnZqNgN0DTgXGiFo1gU+iRothhhs + +Ao1aKLJKyRThoZsZDsh8iaGdMjEoQY50j3JpgRKKPI4YlyNGiwY08kCi5QuYMlFU + +/V+T2deQ5YKz9VTGr13AfQwiNQjC/ILiYMJAIPBiA/oTwGphagamAsELgjkCEBaY + +qADcAg8fAGGZsAINHb8XTdZi787YbZnoYtI3oNOQJKfYHn4tqYaMhQ6WFIzq4X1R + +COaINjXbyDAjiefxhDF/Xu3O9RQClzG4qXTfwnRt/GsV39nvGFgP957F9VbFKzAk + +N3wuXdeyipr/Bs3JCEqYI2u5QjEVyPsX/E+yfgeIPbECNZhBeFeY0jTxWeR+oILx + +yMglIVn3FtXY13ACCffVygCRwUULI0wA28UQCsfZAIgdUAqB07pbqNsJgi0Ah11t + +cqqeuk/FVQ30LYsy4pn01NbzTQOV4ZHYrFPCwJY9hoj0pe8LiJNQ5cIsRKI/XgG0 + +MkD8PxoSLUsNroTzYOkF9GaRUOsIMwhXCppneZCBHj8Sa7W60u4/Eggjrw2LFXi2 + +fdeNf5GLOCN4Dl4tIHzdUIiX0PjHjLeN4CW6cFDnjKiHekg9O+Xcw/ZNgcPWJtUn + +YjEzJVoiuWRcdsbxxKs5SNRk4i4BQSHwY9bPiKmtHZR0m10OyflFGCAnBSmegR+G + +Ewb0KdQfR6jMkUUR7wO9BSM/J/0K62wSKoV+mb0D9fKBDAaPK/X4FJ1NBOv1HSeS + +OIT9oW61OsFIniL2wNIhSOeAQcYHEX1/sdhMutzSFoOWtoBQBIxjk/LGIWCc1DPw + +IJDnP2x/l1BNcJMhr40OyL8WvCQB0AKYToAABZP6EIBuYJ3GdRQgIQEzsncFiR4N + +mACgHqBJvN4Om8gCXqNCY+cf0SjEK7SMwqBwUXYDqCeVbflRcFY1fDwpXmGfzQBC + +wvqSqwNYvhQPUzvX5kHt1/awzu8t/B7xNjMQhl1ntizQ/zLMrYk/1aFPvc/3tjL/ + +X70gB/vF2IcABhKkJB8n/R/G9iIfa4BjJuPQcC/9hoNkKgw6BFlC5C7cDHylC9xX + +YVx8443Vxh4DXaAJJ94Amo3J8kA1JRtci4kQKWMTQ7cPGSbQzcOuoVjPcIN5tgwh + +jABm4wYArivwAuIMkhlOMJWkGvGZTdC5E6CDAjPwjuIyRGfJQMhCekaCLgdotPCA + +Gk2COgzwhuA041mofEx5NZ8ALB5ODorkl5JuT9LVcJ01vw/SzOSALX5PIhWLKsJ+ + +S1khrUWTFAj5KmSwU2ZM+SEUsiPMlXk/S22S4HK+IxSsrfX0Pp6IbWCzAfA7D0Yh + +JoNsnuiIBUDiuRwOUvVl0gzBZHKCoGTI3tJUgiYMyhX8dyNASPsFFxqttrffgESX + +6HPXWQt+R638coGbWRnUxI9+hTUhgNPCQTc9J5DOZmgqDkCCBGUVMOsTSLlD4Sns + +DfW1hBBA/RlkyoZ/WusYBJDi1ThcKE2ag8E4hJgZUE66y+x08ZHGutd9Xm0YSaBN + +2wEAxE9PyWCfbRUVWDjcNFO604w8mOAVbnCQFxAYAQgGph8ADgB0BzgWEC4MHRBm + +EqBEFOv0qAjAIPAsSBYyQ1uZCkZhlwTpYXKAcT/TeDW4hzkHYBzlMwBhX7M0XZSk + +BBF3VWMtgd1Il01ie7Mw3CTLvSJINjoko2NiTZFeJL38XvJJMtjWXRe3SSz/QkO+ + +9iQq/z+8b/f9Tv9hxVsw9jLFWkLKT6Q7swISYyYtgR9bmTxJDikfaUGf5R+c7jVd + +X7KOLaSCjMJUFCIAwn3PFk4vpIlCklCRPNd1WEZNziDzKQOH09Q3d1DdfxLCMwCi + +lUd0up3k/t3hSOMBQK3DU2NZP6xxfRpSRSOlNZWfcLkuiD3DFfPZUREz4sXw/Tht + +LGiyIqHcDMjZdk2h1tYQSZuLmASHIjLQt+4x42AzyJXDLBSaMnzSeSSlJjMLcWSK + +5THiUsd10RFssN0PQs1A6xi/AWM7HR80MMnxLmI4M9pgDd/aKjLAA7CfDO2U1k5g + +IhIJM8iyTChM0mmBT+3DDKeNv0ldzPZ/wgDzUdQM/SFkc1kjtxcD1AxpVBTnaJ9w + +kc1krYJ/dLMtB2sy0gF2mOkPpYwP7YXMm8OXdPMyZW8z7A7QImlLmYRz6Rx3aK0b + +j9pQzJBUzM8wIQd8MhYnUzOfFMPqIHAgXku0FifZIHDa3RzJsC2fAzOOU/M5iSVi + +wQpSGizeA+onKyJfZdx6Iqsz8LsD9vLDKKylCC5ztc8BZZNXCSsqXzBSks/EivjN + +MgyQHDVKXTLIsW41pBgzZqMZQsQaswNwsyBMiDP21neDpgkdisUdiQypM9dhOSek + +Eh0A9pjGFIWyVHJDKTCZMrkhxT6I3KzKBygJlCJS2dG2VfI/gOqO+to0Y1RQY2oi + +AXZspgBHBas2rJFG5Fhg/AWgYU8KSK30aE11I+sjdZUm+seVIYLWs5oFkTD8Do2q + +Md8CoqUlKiEDHYATEHIkgQRsGgJGz5VKcC+lSjCbdCDMjWbHnFM8WZY6IpweBbbF + +mi9kflUaiRnTG11g5YcyOFVcDbWUJVCbOJn5xqoymxfpU5Fz0ZkKcmoCZynbSVX5 + +lUnEE3ORqbKnIlVnGYz3FURyBXOlUImZXKlUpckVV5zVc+nIJzacwGIQTmUF3wic + +RoXHM049OZYTqCic/HFsZ5cHaJtyeEH5HY5dcuoGTjzc+nNRt3IyaOFUXkN3LRzS + +oO2GuQcowm19yphf3NIhA8x61+jfIx3I5wDDGmUcUOdBGIdyn7DKM2iNoLEBWiIn + +cKNRz08s7GgEYYvTnBBnkdGwidOcTkOTy2VATDFJ48k5Ftz7GQvJpkCcHlWjybc5 + +vIq5vcu5G5UO89PLY8G89GLryugI3NiikmMSiET1kV7l901UpPyMt5gj23ETvUqR + +Oz8iYj90iyZEfCiAU9TEikkA/obwGIAUoN1Dr8a/UIEqAYAIPD+g3cTO2phBmKAF + +5i5wXBRBdLErvzo8e+USOIw67HZgkoLGW4F358rbj2zByoCMzozHmLdTjAm06EJC + +TTvMlyEU9YksWRCx7MfBiT0QuJJZAEk/f3qEV/dw2tj2XXbkySiQ7lx/VSQv9WPS + +Ckt2PMUl09s1KSpxV/wTxz7NiFtUv/cSgR877KyMmhqqSOOACcfWOLTj8fPV2lZb + +04nziU8fAZNaTn03cxp9Z899JGzpNUd2Sz+MkpQWSUsuQrDoGpTjTwiG46QrEx9k + +gaQ6lAIgeiGUd44TJECVMuiCOT8adTJi0MUn5La0ySOyVuTXw4jjYJoRA4jJJCMp + +SBQk5kCwimzxIK8M8Lm6fY3WN/xCwgrDVw2LU0KoslFOYk+MlQv2kzCxemiLeGPp + +C142kKwviK2kXwqML9edjPCKHw02hmy+kb5PiKLCswIcK/Cgejkz9s8cI2TZqYAr + +SBFwoEQsJhw/ZIqLcskpVnDyi4ovshTs++PlNH4wM0nyqonXMmRKZTeVY5kcifkH + +BkXSpyEjzdVOVEQlU8nGFMtVKnPIEhgIYrtIMcwNRet2GPMnDyjsNyNLyuVJFFTl + +a8rvOLyygQ4vhtZKaWAhiq8luQehTimxlNyqZdPMtztGOnMHz08Uxk7ybGI6wnlb + +ivTiHyagY3K5UgS74vTywSkEvhtE8tPIicYS6Jy5VHkKPJ+KA8pEuJwUSiPM2gSu + +RvLry0S4PJty8S1vLZVCSlEvdSpRWQTK8tcJ9KVNfU1QRXzg7TooxhYSYNK3znAP + +6EwB6QAIBgAEAbwA4BagUmFhBIUTmIQBJAOABgB4gTNJHVs0+DQkhdYHmXFM0UII + +QgBm4ONDGk7PGvWhimCuuHRdbmXxKeY1gOf2bTICuEJ1iT1CJOu88QW7xzM0QqsT + +pd+0s2NqEcQzArxDgNW2MiNJ0ggpJCnYskNv8KQ+/3djH/T2Of9qCn2PzQ9gD2F+ + +5GC3dMSMWCxCH8YJzDgrxitXUAP6ShQm9JiVBCio3iUrhSULPSxClAOESRE98z40 + +xA6uPSysM0yzHDKAv9L6NrzFLImS9zNZOqLkHBLNGSi3JDOwiTsf2h0K0JIiL8sf + +eZ8OIzm+NuLssAszHVkK/hNwpR09wnrTN4radTMup64lhwTcxM4iIwzMEWRzHKod + +JQuscts1kiXKARZ6S0Le4/tj4COCC+P7cA0zIiTDUMjglHYPCiPniIjQvcqYITyy + +ZVqL5MLKCNCZMm6lrL12D8vcILyxpQArXykcuAqE3RCCNCIKmJDOyH47vnVsphDW + +E6ihRTjlFE3syUmmAAcDiMFS49LHJASI/NJn6gzmGPQCc6VY7CNSmExAxN0sE0Ay + +nYv+eqKmidInqKb0+OKsgidjixIr04sS/jkBj5cjXNY8cBRZFFyqcreATEjo1j1S + +9R5KnKegwKVDx8ZxSdiE2h+PUqHE4y08W1KcAUVUpad8cbJwyczo06EqhhZa2x0q + +6nS3UycTKjMjMr9KsCksrxPRgRxxINGW1jURKVxOAopOEVH6iuGRZH2QFrOqzJLs + +Y3Z3K9F8lYLpK1g6TA/KmCeg2ucKY0NPQBuYTwGIAEAeIDgATBbwHiBMACmEQVcA + +BmCdxsAbwH4NvASUokNCFEoAXihZe5DGhLdL/LCI0valAXkAChu00NV8dBzosG01 + +ADCKZkjMT3UtYttPJdEQ/WPgLqXJAttKMQ1AoHTzYjAtLMsCtJPlA3S/bk9Lp03J + +NnSSCkxSB8ik/uzHFl0r2JDLyktAEpTk46tIYBBzMvDqTEybbCLREy6kux8Y4lMq + +KM0yxOJFD70nMsfSlgrOOp9IHIstyUWwjn2dcMEJMKniwdMgOGI5iJDMMKDs+jNr + +jIIwRwhSi2I7LBrTMjjJkRAixwqMzIajeLjRIi2iD0MqJTuM7YlsjIvBrpMFYwJq + +YKnosBMGIqWGTwhgQIE+xbs12R4RvVboKH4hrb1V4jaVW2VvlHUl60sjn6GyJ+t4 + +chDxRyES9qMVlIEsU0Txu8YHM/0L5NkW0q3oTGOfkKSxYKw0fUqr1CrNsE3mPBty + +vHBPorcBgxiri/GPGGZOY7wDdRcQFwAdxiABmEkBbg6oHoAOAFtSiA2/e/JeDH8r + +NJKreAKonnJ2gD/k+xEoL/JiIxgDnNGAvZMYCLSHAHUrXVSw8EL2q8/YJJJdtY9t + +LX8LS2cytLUQ4apcoUCodTQLB0i2Le9Uk0dNmqMkidPu4HYnFiILt7edL3s2zUDT + +pDS4CDQnlgQV0lq5A4+DXli90pDWJxWIYMHR9T0zgpuqBQ6o3ur+CjMpTjxQ56oz + +jtzYZI1CGypQg7ClQqst+rAa0ss1pJwrUL/KYsxGod594/tzHLB411hJqxMQctr4 + +Hy6ujfKsaW8unLI2eGrnLERH8tazS41ettZ1y8R2SsE3HwiXC/hG+qAkMIs41ups + +KFeuBqc2dcom0T4s4xfLCao+JXK1tf+pnjsM/bVPrw3OBtGyozcN2Pq5JA7RvMoa + +1knQbptNBp3ryJTBuVjsGzBFwbCGkBrIaOiVBq0Lm4xrJeVjysCqobvXX+o6I3tY + +ho3jIq+rQTc72QBtnjjLNGt3joifercIAkwFMSJKGiSxfKiLHNnUxUoReNe1v6xI + +gPLqtRRsvAswsBtYbEGgnnPraIBeLXy1G5Rrst1yuRqrin6v5UPrAiZuJ4bAktQm + +ka73Dsusb9qTNwEbHy5uJfLsi3hvgaF6oGvYcmCCeLnCCIqNmrLAMvInmSEw4O32 + +TwmrCW6KYZbKy74gTX3UuYiOJ7KC9CoPKN/jcKzECE9zKrlIuQB2fKLL0B9OvU0j + +5VAISlqSTeExpTADFxn5tFi5ZHk8fGWjgBLADeppmKWTdWQHyWTKZzcrFink3ZMK + +TTVQJtnyQZrJyhgfvwH5iUsZo2t+m58j+Ae9FGUWKmg3lMAM5msAQw5xm8E2GbFn + +RNXa5BIETnhsBrLkXdy68w5skYInFiD2brcu4oSg8PLlWryHij4q7znivHK5U3ir + +PNBL5VDpoNzISkfI9yZZRxU6babEnNZzRm3VRBAcbNmVaB1oJqJ8YpI0YEFypczA + +n4ZOPWFqzJw5UZsdVJimFp3IeZKV0lyJKz7KM91ir1UeAsWsXM9ljVZYoErd+KT1 + +Gbe/GmpN9YTUcC6CMm2ni2dPU3GKurVao53VrZEqJqYJmSzfP2C3mYIGYA/oPwAd + +FKgKADZgKYDkHCgWgXAGCAhABAAsEiq/OyjR5tXKkBw88J6GHAJYtWHURcqXvjaB + +ZSCMzrSQm6vH1LpQV5iNKE63qpgL+quAstKUQxAp7TkCvtLGqHSoszzrcQguo+9x + +0u2PwKy6vsWdjfS12LWqAy6kJKSKWHarXTqWE3SGtTpAcxXEg4upNpMaWQI0ACNX + +JMv5DL0oeuvSHqgQrHrKjfpNzL9nN6tlCLON9IV8uNRevKLo67xs8bRshTBLLH6o + +BuPMfGmPiAqBjGQo0aWyrBo4bhG08oBrZsZBqbYfywxvIlQG9hsEbXjWjNuozQDe + +rkkQKyXy7LbWLRr7o3Qz5S3q1JeRuStka2dqHbQJIYBHas+I9tTZSeLrLXaQVF+r + +OIX689t0bL2/xpBUN2/Wm7bDjV9oQQgK2Ct6LoPBjiDVRbVJ0xwHI25qAF1EfQgg + +YcK67HDKGFOL1ZTdSWDzU94O0jxexx9Sj3sViuM1Nhwk5HJto9fRcYv9J0m+k0Bw + +6GAGI0ZjycGMBbSocaEZQQox5psYSSzaJ5sjgZz0RbVDR5CGbuZe8DS82ch1U0qK + +qDpzVUHkfxmxb5kZT2JxOU2YJETFanZ0pKFTLYW5bpEqgy4hP2rPgviWS4VuqAaw + +KABaAncIPFhAOYUgBgA3AFwDFA4AMUGIBJANwBiAGYNVrBc2yWCBK52cB1IlQJYu + +wgcjBKaXBoQgCtdzaqSsmIrrhbW2EMTq+q80qRDnWhAqkV3W29ULMmXYdOP9C6jR + +QDb3S0uuyTHYmdNDa50v0oXT97IuGjaIjKli6oDq1Z3brjquKnDrUjGMs8URRa8h + +h8T0nkKurkyweu/tukpOMzLAHEtofTJ6u4QrbX0z6pqKG26tuc1Bu5epsbIGlnwt + +bRuoEjp9O2ysphqNQqDObKPlUooj4WG/tpnaI+JMNuoH2lbX0bZsCRsnYLGjBGbi + +P6nGtmwdG8dkWpzQ1Rsr5MavxBfK9DSTShEfeCgIhID21bt4yF2uIrcIManduCk/ + +Q5dtU6z2nbMREn2gHsuVL23jJfqBskTI7LHuwnTcDHHc7IN9bPFlO10ffPWSewz9 + +ZSJBy+PTBhxK7kVqD7AvciEs+axdW8iJtAOgSouLLsvnPxwWOmDEeoJK9jtlyJKu + +W1iDROop1JankMXN5ymZEOUacQ61yuUrVZRWUOwemq2VIZmURkNlsOIFuSDV9K62 + +RhcSnEW2VJDSPj1l73dZ2QF6Q1H+mkJyew3UhMRSOVKlwz6CIVBAKokr3nyvUlWq + +XzCYsKszYz48csqK9a6KpDTDa9AGphqYVv0+cg8dRJ0BGY9RLYA6/UgDFAYgc4Hq + +AOQWoDs7pvRZFgggUUxiWhkZCWNlJtmOaDAYZU+CGDBG7E5Larp2+QvXJ464Lvta + +V/WAvPUok60ozqKhGLoUUh0/OpHT/Wj9TwKPS4Nt5d8k1aspDI24pKDKqClLv9AJ + +XePzpToylNvPwlSjuoFgNkZls+kpzIAJzauC26qvSE4ketOFi27MuqMy2vGN66Z6 + +tstF4Ashiz+1pC8zAQiGMurCQyYe9btKy8HfCLV8VlQ/usc1kmgPfKkMx/rmVWAz + +Y2e0+LdMN0K7+29l1C1svbuoz5M1Grnd4e7ByszVsibK8whlI6UEDc5XYjWS8Kda + +Ux6ILPxBf6NIXUPz6nu5KwwG7kiD1ibcUyZHjQxm5a0ZbZdM+gOAL6ApqZEwOcPS + +g7MoJRnBwjgXSOWcHU4/WYqWRXysYFo9Nmuw7IbTaJLIZ1BZsoEyRBivLI+o+3LZ + +Vnm45q7yfmjEoA5U84Wpjzn+N/Ho7USnvHRKMbdBM5DNUrhL/Yxm2DxN06B/yo5a + +gq23pCr/beku2yb+nzhB7dg5r3twKYMUEQUPUUmGIA3cWEHwB4gamCSBKofAFIBC + +AJ3AsFnUGPq79qqOMSRl0BS6HogU+ioCygSZS8hyoHoWrkjqoMI7pALYzcFLayW9 + +Ivp6rUzJOv+YnW1OpdaoukaqzqsQxJJ9bnSv1vxDi6wNpb60u8uu9LiCwI0KSu+j + +auFctq4Mr77ojSuWBK6+SrpH7tKCrqOqFXfdLioHgAwYACWkvMr5D5+5rsXM+Ck4 + +V91AjVONLaXqoZJlC+uyQol9T2r9KyGvGv6pe6T+rIrh7jh0Xl7bWi1jPMkVy+ZI + +MdSiW4dJ59k5MJ1qSG/ZPz6zu+TH/T4ivfsgGsi97s6w0BwIn+HKiM4fMlxYzbTm + +yo3AyXssNu7wnP79eGrWyxrqaFNhHssDbLok9y1crok0h9pl2TKAnEc9ZARjBAMt + +UR6CDel8pRW2RG9ypdkuHMi0XkyGxu0S1+H6RgLPUbaR8booldh4hSQHKR56iB6K + +IXAeIluLGbIsJuLdEYAsZMmEYL66R1FLOUYBikbgG14lbtJovhvuKQyXqdzN5Hef + +YOjxHEREbuUwRR3CLwgiR5whbC2R6UY5GdwjxAECFR0WVnd6yqaSAH7G0xqIdnEH + +kcVHa+UC1VH+2AcMwGEe/tyiavwcUf7cx24rCTDrQi2mbCxwijMhUUI9keuofhis + +uRHdhiTX9HjkrQvmSLQ0kaAlMx++tBGoimByTHGiEEiVoSx3X1GRkew+inYzOUx3 + +/Jp4M33hbRBvlBR9gS35pKs0DYrloH6TI3W0Ivs1Ey9kmcYP0wE4cZazyC4E+WCA + +Isg8SLI9XsZgeuwIGFtCYrrrC6w2gsOyjzggvTNcb0jb9XQf5MRmqnIFMuTfmvlg + +EcxgVWK6e8nFw5ax2gVzyIDamqXVJm5JjtVmoi6K98NYMZraalyZ3zbHWyRsgqgr + +mjjg/5NkH8cLJ9GH+k7JdGbTheb4bDiudyTmpCDOauVU5s5Uril7jRiDc9vK+jfI + +v4q+a4S5QbgnGZPXP2bucvnFIFiW1nBFyUWwm3uB6bTnoiY/GAISon6ekxEaBxKx + +VTjQnxrnPp6aezEAvHYcdVSWLOO/idv59x6noVleJ8idIhWJkeXS8BKlictU5chT + +lXkhJ+nOZtq+Vjyb11ZZGJA4o/DaDg7f6Ywet7OW4KoJi/U2RJwtVNRRINrlE9AG + +dQ/AMUHUTBmUIDr96gTO3oAHcFoD+hnUJ3E8AOAYIGpgQgEIelLUAYxjig5KEzmT + +iqoCSgclxSWck5DjqOWEbsUYB0ctbQC1AFnLDDbqtbS8h0Lo7SU67YTTrXWifF7S + +a+7ELr7fWhvpqHku+atb6K6gH3DbO+8gsDLOh3vsK6N4ZaM1JJzGVzg0VKUUPH61 + +gJZHuwZ4GfuzbGu3Nq/sFh1rplZ9dJ6vX71hzOOnqMrHfsmTJu7Yc/Cay0MN4CsI + ++EaWn9afMaxqsI3jI7K3QqRtsG5JH8oRr6GnCTu6cSDsosKcwxghO67A1WHB7GlE + +iLnbIdMcsXbNpuY0valulknz7usr9pumE6FKX2n7uqDNAHW+YMJe63QhzUZGxJPc + +Owl9ab7rYz2ffzrTGfNRakjZnptWkRF3p1Io+Uvp+6efq4eqxsWpCij5XfrdRkFX + +/qGLKFS0L/p49rf6sKE6eemAGxkd2ISIv0bAHNGw6Za18Gp0buMfeeGem7Ttf+pp + +mMG0nhGlBldTF+75u+N2emkReMcYc+fN0IUk5Z1GdAkk0DgkFHzpiCr1nupCtjvL + +y2dn0griI6WcJnyIuWZJmuHdxttm5JLZlWmsJB2aNmfyp8uIiSIj2Ykcxy4EFenn + +Ms2cpmvM6Wclnd62RqZm5lSRz+7fyn6aszuGnaf8ySIpTIBFSeZKYtHaw2RqtnJl + +UQIRnLGvcOYh2fDoE7YWZrugTnc3C6fvKsIvRoVn3y9THBQQZiLBAqGRsWcrcyM6 + +wf260syt2saxGpTSznX+vN16zb2PNxO6aRy/t7nF2dnxcLaIisbgrPAxoB9qamoX + +K2w2TJqBIT3og32JU1ZCaGoFr6EXSeRmmkq0HBhJfoMZSbrXBjFrDdUAW+QhxtJl + +aDKmuge31DgTnDutdxuPQZqzocXDQSzSb5BfnNIlPCag9U4mXhxmrRgRfJyodeZa + +af44jqaaqOhkzzwebF6wI5+IqHN1sCKvhhXJ8S50j/HiJ0GJ4h4YvYoEZJoUDqPI + +UPc+yJKOOWfkQ5pB0CaAnwS3RmjQ2OR4uo7ko/XNcjiey4pUYRROhiYWjGYKPT7V + +BiPNgmeF05GuL0Jk3NBArcgRfkGonSvK4r1BzBYiYiJgCfpz7SU2VkX6crG0XnNc + +jnIRbWPenAqreO7m2KghKpiZlVhOnnpEqYUKLxUmTkUSuhaxcsFvZlam/iahbBVE + +SsEhOZUZp+wP+fFtha2rGXOcW9kJJ1tUuJrnvFSTVVjzdVWJtuWkrWoRSspGinNK + +AugElvJyacFoQTrBQIUAVAl745aWDo91KouTLTEUBXtlsOUXWRSXclvFFv4nK+WS + +ZRfsYT0yW6l7p1KWqlo2RaXDZVW0KXqUMlAyWcUKXvqXcO3JaaWZekW2/4xoipcy + +XYMcaGFt5ZKZYQFelhlDlJl5Yyu5kEOBflMWkcSfmzkDJhWszUlahfLMHTJ3ltJ1 + +K05nxYkoqvYMpj0Ac4GCB4gIPGIAOATAA5BSAJ3HqBcQN1Ddx9O+oGdQ4AfAD+gg + +pj2qDq4xcmyDqdbeZ08SVS1Pu4QnZPvILnDqlIe5ZlRvUrSmtfeMa6qkzbKbCTcp + +5OvC6ihyLontShj1uzrxqx0vKmqhyqddLahlLp+90upasy6VqoIwjampqNp76Y27 + +obQJ2yLPQAZGCvqaq6xh163PtmgS6qWCmuvNpa7TxKAJmmhCzpIQDBkhac2Ht+ob + +odcMs6ZN01RskwrLmg2JbKRnVtb/v2HRswCy4y84lVdv79Vs8zRXPQs1Y0KzVvVb + +VXTeF13fMTV9fOTHWyq/rrL05ty3Likx21YQy0LXVeDooxnIu61wZoREZLnaI1bt + +Cw13OjmI7C0ZWZHQJNucqKwxvcJMag1rLF2IbRnQIMjQ1kNe61Yh2Af49vMPcKjN + +3R+qWl9BleUazWy12dnVmFy+7tNnxjVxFdnyJVNFLXNpQbQjXd6o8us1IRq4cjnf + +Mx8zOnd6utdnZQ5uObykq19tdxGh18dbbWk2yTM7WrMgdb8RgxqzMJ5B13tZlHI5 + +9dZ7WXevAfcDZ5imq/JXEnWyEHhUVKBPW1m6cjfxPsgMjPWhSQP21gOcJeaUMCoX + +WAZbiUwnF2smyKgb/ZYMRDgZSaRA5i3k0ezAU+wAOKJn+z6B86F75AF/HBdT7rAq + +M2LwUbYvmjyFmmXOLryJjriHxgRXMSXbKnXp9lkaV2BqWlbCc1lhCNpWyEkXuMnJ + +HlxgWSZs8NkVibomEvZmWEquPOcSAN8mHzzIVOQhzzhQryEAgUmuPdRDttovEL35 + +w+ZBjZC9bbLa3E2m5O+nGg3FkTcpVJimJa49pZe4CpaAvVTcYmmc7WXVVJ4QZfWQ + +KBkRdUrWUwyf2WberH0U7l8h3oRId1pGrOmNOq5YgA7JwZkztKAI/LgBuYKOx0AG + +YAQx0BqgbAA9RUQPmNeD3a903zQfBOgRhdL6HWzHZi0iWB+B2IaAVH5SVUUJSGpR + +oGdbsrW9qvyLMpjFf4UsVh1rC6BqiLqGq3WwldKmKhyavaGUkilepC5qnwwaGQ2n + +0qy6Gp/0uZXu+lqbZW2pluCbJ9gC6C/8WINNspU4PDVWFWsNUVYmn44xYZ6SpVrM + +uEKN+q6q37dp/rqmpFuhuaNYrpvaaFnC47AJ/6tp52diwCGgboAGOHRdbk1FLZ6g + +QGdumHQQHDR78znd5jI7ZraZlJ7akLOqvxAO62Mo7N+3k3DAdXW0HEudRXP6s9gH + +DlZ8HbtCMMjqrtXHQk7bh3fV5doCy+MnCLQs7AtHevbl2yHfu2PESKyx2tlW1kAs + +8djJFh3SdnpFh2TRgeN1D5Zq1dtZQdi7vGy/ujkfy1isYHby0BwqZXi0/hALI+mP + +20XzcbIrAHYvb54+NdTYAsz7ewsBwkXbiQoUs7by1hdhXZ+6S52Xb8QdjdOjjHod + +3er2ydy+CJO3vR8yQwzDd5iTsCpdgyTN2YMn9vJrnHNj1sY2OF9doVpkC8xugtGd + +5pA4vsWkyZr5kcU0tStxy0neLAYnDusrBJ0ZuRxIN2HIrJoY2Bc0YjgQPd0Zoovg + +YidMJ9DeFUecsialzBKq7I2W1VKxdlIbFnVVcW2JnFrBA0Ddjdha6WM0GfHYW2nX + +4rYW6EzinyWo1Sp7YWnPnUnW9iqEGLEWwlq1hJJsXB8UaN6SvY8PVaStIF+e4zb4 + +64cc2RyXXVJdVUMNe2NX46r5DSqmEBO6yvypEoGSmzXZ9/9C32RegUTF67ZLpdJR + +NbRXtoHllmfb6W5lmZf1kll7pv33nVfSIf3ul0/dKWdZYLPsrsvE+Ud3MkbHov0p + +TXZaIMjJ0wZs27esydJ0WJZn0+2XN2KscA3cfACiBzgJ3A9RqgQgBaBIgeICVbcQ + +I/P6AncPQHC23aqUo9qXSW4EYmmOJ6Ha7ghbwTGkz6eDwKthhlIdpFG3Nqvrx9s9 + +Fe7tit6AtL7HW8vq7TK+qrczqiV8ofQLXDclYS7G+jlzqHUunlzqn2+xlcanF05q + +coK+t6cV4AyBSDVVdk22VxZZjufqZKAHIhZGfoptrHxm3hC4eqWHho29FWGuuuVa + +nqFV9bbWnJslsIYt+Rk3a1XCxt7doykMtw7wyB23eM1XRlH1Z53f+n813ifWMzJQ + +yCR/TE3WORuHZ7nc6cXY0h+RjGd5m8tIZQ52w3TEaHD+Runfh312focuSrt11jiP + +Q2ceKKPJ2PYj+TgrSonHaMMuhv2Hms4iHmAlITubmMRHC7YEkC15MXz4SMytY/3G + +j2djuGbwurM+ngRvpBGOvMPKHWyJjy1jkc2kWzLtC5jvpAWOdRA9d/agTKVys9K0 + +yHKAE6UjBhN649eeYlxOEs6yOtn5sHPmQ/0UIR+xX5hAzHyH5tqBkYsN3RloWoSl + +RmqpdmAntAmuFmaMBiAcdFDePxVJRakWmOLVTWKpc1SpLtL9r1TSXIhUpb0peuSj + +bFk09fJgX35ZQ/SRQJ9hlFaXOl9E5cZ6C7fb6WqdUYG2bY1ANT0rE1TfZcZtNnFt + +H4u9xm1SgHiiBhoqQKK/h5ZknJsfTVADmUys3jJw5dpKLB+za6xM+Vg/ZHXey5dg + +OYACmAVR4FXEFKBM7WEAGZiAU0VIArRGmCiAAVqLd4VdgW4BBskvS5jagv83yXz2 + +88LeVVL5YhFe+ndt9Ia0oAI3TMJcICu1pynStvKdxWCp4oYJXBDmrZEOng9RWmrE + +uqs2b7pDwgqaHK67LurqKC2utXT66tAipUOUVQxZDdDvlaQ1DgDmWHAPkYw7yNxp + +sw4Lbl+5YasPx6uae66wHC1y2HYEfXctCQai7ZYtRfCOaxr4HT0dbbkduYz3KGLK + +HZy3msFNbLH42eXZcaORni2+2Iavw63XdG5wscl6tJXb7OBZmMbeMZM5uIymmkFr + +QayZyvcvnO9yoOZG1hwpFfq0ZM/nbcJtDUZTocEIus6UgMMq05mSraPcvPPOZwZV + +3OTzlLD537z52jPOnz1zOhVttiQLsDsa8qXKwhldWd3P1ZrncQby2EEg3OsaXqXi + +PyLD85HDPVtco7Lqd/sIe61dm6RXKtu71x8OLaM2Yp31ks2fN3nM9csTW9d9sOMa + +1uydnOQCIurV3KCeE7qjnrT2bFTX6diRykamd5wmemBzvI+McOy4bMYv2wkiIosi + +L3er4u8L/R1uojjWsNEuWLhsLHKFEgEWkuMLhFVuoZLytyGOeMJS9WOkew9YuylN + +0XA4mIF9seLlzrWP0foje2BMfpWgQRIfmm6hCAnGvfEOu/JWoG+b4iBxvXWC8bdO + +YphyQ9M0kyZVSioJT0CTVlsy9ag8oF/WhU9rlxzANlfl6DzrHy56D+/MYG93N+To + +PiuAr7fRlIIxK1MOsdUtgdOO/98psOsZxtDvWRfROqLuhbj+gYwSST9Z1pUNUs0j + +Kvt9O8kkiqrifTY5vyf3ZH1X6GlkQ2l9WD26jTjjq7d8ur5q6n0Mrp7En1cEtq/o + +H+rm49OOxr1q7qv0Ekfkqu0E7nUISP9fVKfmwGC49pUVrTDvmuRcASE/njUxDgYU + +JrkYGoSENva5NSTry6+Ovarp1JmBKE66wtSxo06+gZZSWBiaur9G1OKa2E+hNlUt + +r7hL+vMQAG6v0SE0XBMi354ST7A1r+Di0i/gODY+wCTbOVoSHrOhjmvNIugXdgua + +g/TQgeEMgQRvDI1gYoqcbzG4Gv5rqdTlIL1qDcs3ZO5WtAPzBmRJOWhjliRgohW1 + +zagA3cCgDOC3UTAAoBSYNgD+AYAWoH6AYAAIAZgYYf5YIOh1POzBcRSW4BlIiBDM + +mBAjT4YH2KrkSeAVkeZIAsPi2qmC8K2OD0JK4PSzMvpHtBqw2OKnougs1r7Khqap + +dKmtqlZqnWttvrDbSCplcUOWV3rYK7VDtPHxV3rmpMOq9DqDFBMmZVYXq7Z+sabm + +GxVyaYlXpplYcLOQHGYfuF7DujVnqPqtUNjmnDv7s6zj+icvraLt7C8UKx5o5Trb + +24tZL3PReP89uGfLSdvxpIrDkcj5oIAu4/qOz5rTYJJd/5Iwzst7HYV8ajtglXP/ + +k6EWbdc7iUemOl2laWRnnaLXgCyNwttr4byilukXD0dgXwwzF77u+c0V73+ut2cr + +SlAaAs9dBLkr7+NLwp1S7Tk9/4J5DXWCuUrt3w1goDFq1L320B+fDjXsYErSDrsf + +iMplxg2axMuYr9+jRsJx0y9/vSg/Y6g35+c5FHHp8zfg2sRU5ZqFTaUZOIiuy9Nk + +U1IErovXAhN0g4+uxy9bLxgfq9RqEJlH7mvXb1Pr9ZEIfbUhSIpvwrjB9/4ZcbGW + +z16TDqcI4oamCj2Xabg5fpujlwU+NwSjwU1XuiduwaUT7cXEEGYzQcb28BzgKAEq + +AXAQgCNNEFGIHqBJAOvyDwAgTU4LtTQZtx/JAhR47bIJKUUjigDgPnVn438pUoRW + +52TUZsk5wPxKGGJ1/o/YOF/TFaNv6tk2439u0i2+q2rbsqZtv6t/04kPcCkuppXG + +hjLva2GV1oe636tmkO2r2V6lnJt2ge8lK7BhgmjTb7wSeEqgphvurn6B6qO7m2pp + +88UW2OutfoTvy2xaZTvlpvcybPgjr7dzm3VnjQu2x12aijXoai8/xITCsHawHqsx + +TP+T27j88wRnCvudsJ/wrXnqfAsmI+LHOwltznCV7uLOIkeyi2m0Lpn5wlaODJNO + +YC7nCJWhfOlaK1kto5wjVc2fiJR896eOCKctYuxnjouMyESQeYF8Nn854V9BnlUl + +uGbnxlH9n16cjOlo1642i1m5lSK0rljnmHf9WhEZbOXaS5gmm3P42MMbcarWMHYa + +LftWelfOuAhCO4fTibbV1CvZD8/MyQBlopeGUazui3ScSEmsYcy79F8hesXnywJe + +fzlh2JfHWcl/LG96SscIH6nfPC/JiUvqAU5n+LI1YjaoA2Xmbxde4DatE9bsYxQS + +TlZbgFgcBcms80mUa25YGmtJlpzy81y4+wj0qEx/ubdWkUSgSKkPUD1YOekxPJxU + +Y3pAeHLjHLoe4EhVKDMcHzB6QgugE+alS0H++V1esHyvXEi0r1cfmvnZeUh+u6Es + +hWBvBr9ce3gqU069IEQWg8aoE9L1sldlGyPYrhy6PNisRL5F1PcZkqbGk+YmhN4v + +e4nxJ+JwEqRJkU1BbzFhm0VUn+YU0CXbF0lVbkc9gt8eQHdzPbz35NmVWRMkoNx0 + +VUPF/14ErGOMBj4m1dUfmKgX7ize5P3bXk5AOFOsA+OXsIbF8bmLl+wZIpmANwGI + +BPANimGZ+gOvzEfYQZIA5AYgXEHiBSAaoHwOXa4F2lvO/YKcxwfrYaLwNydCSmNU + +4xNYoZrTSLbxxG/Ot/pyH7H5f2NueD024q3zb6bktunvWLqdLbb6ocpXqplrZkPQ + +z+qdduFD3LvCeuh/rcgS4h4ae6m4fYYcDu2RRoF315YrNsx8szyO9m2ukmO5ye47 + +zronrbDnrqKfSnkp6UIbu8s4F9vDrp753ldv7ZdH2Hd58WzNLDO9dZ56zjL0LK3a + +FUWUkX0i4BnPnuj8u7Z6R58tYrWbC6zGi7nCGE/Pnj8K3v4mimry9TSdM6DfoOyq + +j/BP7zAVIfXXzK+Otf5phIw6Tj7mvvnoFqIJSuNVUk9AXOTVXkqjdYPvavGKosKd + +BNGxn/hpu0/Pk/YeBTxm+wgRPjs6va+HnUQlOPeiAAZhvAbmFxBuYRBQoAYASoE8 + +AKKP6EzsPUB3FhBjRd0BUeo0OwldJyrO8hXnj3xdvdgsoPskQ5ohpqrzhcjnh1y2 + +0p9F5y3b3zg/vfHHx9+cf+D1x69P3H2rdEOv3xrZB9mti/3/fAn5oZ3sut92563l + +Dr25oLpQInBbRn4mpKTPRhpDT10pXelkzP37bM5lXijXM4sPcn2AJw+izvD5LOX0 + +xVY239ePftawEBlNb/6Isui/7DGG/RwQiuPyZSvPx2s/pO6udyS5whfRq77mVXQ7 + +C68/S1ZrGQupiJbMe+vwUX3bO172ahLnCdjLV4DUd778YCAfyH9oNofghqk++izY + +59rWrGlTgFkTaeUcu5X5HCSHLsTAQVeo/UDcIrDkIAiqbzddV6nGWgic35EFi/fk + +fIeVCB6L0RIyDs1e1Plk5937UvG89fX9Um+mvuazoDRPiZXe6SHiUz7D2AKcCG62 + +x7dg+5nzSPmTqc/e37237fOH2RNXaFdMr+x2YDvz8wAYACwVJhZAZ1HPzagD1HOB + +gvwgAZgxQJKGYAeAJL4NLhgUlDuB1VJgZ1mktnL+2ZzigRjn0RwM1tz7LH0efK+g + +u3IZK3uDsrcKH3T/FZtKGv99+tu6tv07tu2vh27/eQzrr7DPOtnLprqwfaM/76on + +t8nvAYNaD6SNcoMbcTJHrQ6uQ/RC2YYyf0P3guye4eVb7FD1vgp836CPiQtI+vXK + +DP+qTtn6orOUpzIgE/nxdv73CD+ptoTG1ksdrUL+Pmj4OG1GjAZe+A+Jtao+wRjd + +b7b9eGLXfb9eEH9n/ceRHc3/Dtwc7VEF/p5Vp21/lkhkyivlmjxqYtHf94cH+pMM + +h2x/5TIB/m4wGZU0oIvdrmNoRP2cn+DVyHZru6sUC1/+fuoBYAAWxlYdsACE1iD9 + +SMpYUx7rRlT/lf8MkDjQ/vt3NSjrOwrGqJln2slYvzlY0udidNHzsRYIjmcQAsjD + +8KICCQiAWnMW7qQDJzsv82MiGFZussZatOd9LWF+cD/ljV3puOd/yvBc+/v5kB/m + +m4t/sOdLRgu02AdPNqXppcd7kCB4Er3s34vdAH+HGUCOofR5StJwggpKR23vuR1F + +rMVKOB5dDrFNdsbviYIcC9c6rpYwD5naQ9ASDl6Wg+NQDP/dFXpeNi5JYCkmPeNa + +aigY7ouhVLxo9FUfoxUJfhjhxBl8cPAetFoJkeR/ogb0SOCwxhFo0llnq2RsojG8 + +iGKR0Agc6RvxnIN1vIAxFBjQx7yG6QCFktF+FoDENxngxATlGQOGNQsMcAAxonlI + +snrGQs5BnowJBhQtuEPowY9gGRBNiBMMcMwxQgUuRwgXEDmgZtEeyHHt3duYxe/L + +hM7mg5d8Fq8UJFvHso3kHkIgQHlY8ioMDcox0InDhNogdh1+foSctsAJEVPtzheJ + +h+saBFb0e3lSUTJq59lOrnRNBMBcrJu70bJhAAPUDWAXAG6h9OqTAWgNgBQ+m7gY + +AEIAPUJgAOAHX5nUKUAUug/lt3k/lgpkT0CuEWQTEOdBwQDo8HJIbZdrNthcDI3Z + +ERjHV0psx9DvEYZjSiF0XTjitytnitKtvV9q+o18fTsklvHlVMm+n48p0jkkTuPS + +sWhmQU+vmE98umK442t8AJXsWgA7mV008HUlHkMmRsvHN9glGh8czkv0Vvth98nm + +T5y/kndSzjt9HDmMlO/nADPhlttGPj90z+swD9pM/1OAXMpLduKCAZnUckZkw45i + +NgCU1l+dsLtxdKntf8FQce0udmBdaIAucASLKD9tKDsiARrMgtLqCsaDPdILrJk3 + +Qs0cnEO99MQA/19nhbRMdgaDpaNkgXDh98hNMnNlLnYEyAUD99HAOFt2jXNc3Bso + +PQX88S5uaMl7peUzdi4cwdi3d2Li3MtMpFYT2sPctMp3dwxtxZePjiRJRtuxJdq6 + +DLzJ3ciAZmAzdid1kwcgCuIH98xgGmDIwbw5O7rmDpMArRbpqx9+3PXM/uvWCIsB + +2DTvhIFXpgj94KlkZT+Ay9bsi9B8milccvlSkJlnHow9MXIjLodYHIpdkQbq/pdA + +cE4PrHvpmKkgtkmmwwoYh/FyOqQse8vRwB+IkDyOB4wNBmwtvkBwtPIsmoYOm0Cf + +jsQtPImHUAWn8coJnkCI8sDd95jHtw3gXkvwfc0HwWyoZgYYDabMCdeKsC1pNuKo + +43gXtabOrlfFtRNhot3I9FmTYIlkEw1Jkz0gmAxMAmHLkMIepsgmOzZ+nJrlsIcW + +9GZIRCxcpExlJqM19FizYRKvJMk3mYsUPGKQf9hQ8UnlQ8CuKSpE8pK8SoBsDWHt + +Zs+3gzddgThAewXv8bwgD1NfscDbQDWATfg7hMADWAYAB6gdAGKBnUPQAAgByBSg + +FzBQgM7UcFK7VPgZFtVHgJQ8KKLhd+NLAL+FaMqDu1VRwP0UyBKmdpkPCtlKM78b + +Tnt51YgH873vCF0zCH9eDmbcXHq+83HlH8PHjH990NiCf3riCpDv482tt18q6sD4 + +yQaytBvqGVLYJp5w9BZMtDj1NmIC3VkzqOYS6O1xGUCyDo4u0luCqmVlvgtsuQct + +t5pnYd+QQ4dW/utNO/uatRPl3RoAedtaAUfUpQQ9toxo9N5kiREVkprUWoUjRnpk + +QDMEBGMSeJmNXQvMkz/rWNojnwCteH1DQRCaCOCBNDqAlNCqeHXdgRmwRIdri8yS + +KGNgIE2DSiGmCYXi7x54itDNNAWEDgWz5RfM3M8SK9pdhiiMMXmUVK3FikOPqEdG + +eBdDCXpGtzoYdDl2nKNgXhjsuRntDkrJLsNoQahFMl2DCjvnd4angC/ul+U/hDkd + +gYeDDdhhC9SXn8oxjn4gXodhYojnjM/lCvd3ocu0TskjNSeMf9QJK9shIVhI3/o0 + +oLpid98YTVCS7iBkpzglYqAUbt9RqKDyYdCMWwiBZMrGTVt7sKg5bBGIGIUB0KuC + +VFXfBfIMmMlD71nyh+Xl7JoTmyl67PTg0FoU1xOBdBXrs/QGrHdduat3giIQgZro + +vxtnSENZJYf6RYgZtEo9nuDRogUCHmn8caOD0C5OB5VygTTIpgY4wGcDLl43nTgY + +IXhtSbKaQW9oTZUIYYtSoEqpv2H3t/xtCZK3il5m9shCcWv4tWOhJVw/LKoW3mao + +bVC9F5Ktz1s3oLJkPGW9IlmPtf9licVKvHDpfkU5VSvXIoISpU4lt+RpwV6ol9nL + +U8nHPs99qU4klr74RejZUqnEicinLCci4XsgHKsL1SnOScSliGp5VJ3tU3sVEIxK + +Es4BKohe9H5Uu3h6lgDlsD+TmrVlfhAc1oZZN+HtZN7cKQAuYgzBEIE7hzgMwBnU + +KTAYAJIBSgMMxPADoBEFAEBfljb8BKIsR+RPbtEDOAtMvj8BsbEdgfsEBwGDvVxk + +VrGZRZlWCoQnCCnTkH8H3m5Cn3iiCX3nYZvIabEP3mSsWvuIccQZIdqVviDaVoSC + +gnsSC3biB9yQXXUs/twAHSKLlqktukwCnUkQwCk9EyKX9phv3UcoQv182hyCCoQW + +cG/jyDE7mttinkqsVQs1CKEQt0s7h+c5ki1pzoYID2wjcYrQVjUzzk2xoBujC5jG + +gC5oTIhXQkWDM2AFltao9DLlKJkAYbJkSPu6FeEX+YkVp5p+wSzDpPhdl/gK014O + +vkwBcNUEzLv+0qdF75uoK1FJUpKRt5tYCWIREJGrBKhbLrKk3yLj8pXqqVgUMsDT + +sJuJ+XhxC5XskFRaq/c2Upsg2yAkFkOuylNdJrC/2OEIZSDwNpOiw95fiPCXPmPC + +3PruA+Mh8NH4eCRp4UcD7cFAB+gIgoeANzAYgG4BagH4MWgG7hSgBwB8AN4AawAz + +AwQIMwD4bwBcpAkwUNM1AvSBCsBpj8B8vFVQ7yDC5XmIwcXMm1Vc+k5DKvi5CLvE + +iDQ/sOhw/lX0HDD5Cmvr6d/IXH8wnu18skp186VpAievmn9Izhn9Y2jGcn4FtZRc + +un1L7HV1EoR4oxhmJQKqAysy/ondTDot9zDoQjZpo39Vts3807uVC6oaTDoMqwje + +ylz5EYRbttpkwiJfFuVbhqdM7ofXcCjmTCwwZr4xygIisKP8jYHAOCEmkxF5yEVZ + +WIi2M6FuLpb+F7JT1ly8WatSlLLty8K9Kq8h+NoRiKig82YfGIEOAHCZfmy058ps + +D5Oor8+ITn5SiN5lVkptNRIfbg6/H4AhAM6gYADAB+gOolM7KEBnBPQA3AEIAdOq + +EBzgGKA2AKUiBRN74EBNMsg9LOp80L9RHojpg8qMvIIzOcYxAZgiFUZVAoQbjR6n + +AXhVUQkDDqs2lb0AiEP4bV906gId0QUMjMQfF0WxDNUkukFDQEQtUCQXkkXbh31e + +vjAiooRSClkdcBT5NCZ5XNodC/swVFXB/xwrmhow7qNMRVgt8eCkt8CEZKtCoYt8 + +Vtq9ULkTnFdvmVD/vnthuWOn1RoCk8aCHtgLGJxs+8oCAxjAmjHZHQIt5KlBU0UV + +ZjFiVxM0dWlfQlmhRIoDh6RFrAPXOEgK0SKZi8o8B5YCDUK0VRUqVFyIy0bJkCuB + +xMG0RetkaAEAkdPsV3dEOj9iopRgIEYwR0cOj9GAMdkkJOi50WOi60T2iTyH2ia0 + +TmxWISTJgOIGoLGCkZy0Uuiq0U2iB0fkddTochN9m6owGKi5d0Vdll0dWjm0YhkD + +yN4sH0f2Rs0bWDc0WnIU0RCQGIEdZmfpVYCUcu1dEAqj5UWID5YEBkE0WHDo9GhV + +XiLEN5oKjg25N1AL0UIRu0Z7A6guLgkvIejaZqFY50VOi4cBmsJ0Vhjh0Qujp/ph + +iR0echdiMpAdxu1kyeERj8MX4B6tOyga7PuQkIKhiMMXhjiMTRic2BUAC5jSxt4E + +CF4MZRiWMdRj6tBxjkyG75uMeeiGoV/s1DICAVSAmJBMceiuMWei4cHz5EMf4xLI + +vOQcwLRjOoPRiAQPEMs0eOiqMbvwDgBpjtZDSDaWHfMbjMZiJzKZjtgFzMCuDxF6 + +bHZj3+BANawQigv+Jn1KoDZj7MZ5i7Mb3hmsMMALVFkY7gFDh6gKRipJijcZlH5i + +C5gFiJVNmAPMQ5ivMbsBYIv5jiVNFjgsZOVbMfFjvMeztAzPeicsYdA2MSCobgBl + +jPMT5igxtliH0fej+yFS9SCAQNcVAgkrslHCIBDLlMPLthT7rBAO8Bq9SKhVdDrn + +z9OgYJwPjjxUInJhsrwRbYZ1A0BuNjZ5Kbtdct9Kz9iHjihuRFZ5Mcp/pA9Acg5b + +FjkOoLKofkEuNP9BtiV9HONYoGg8gDBmA1sfVADsfAt3rOtjXEodiEFmzpwIFEIj + +5ihsbsQLgqPEptjsZSgHSBb14/A9itZCa0VsbSJtsZdizsa9idoLdjnsVsVHsbSx + +yMUtjQQNIRWEmzopnLYxY4adh2ZPFEnEVJ1JCnL8cYgr9KvDy1x4UWpCsXFi4sT5 + +j5tLljcsZVjDgayUJAJyAncNTAg8DwAncAzAzfv0BQgPEB4gJnY3UC0BSYKTAOAP + +yipbuIZ1WkGBziA9ABGNpgL5BVAv8hvQ+8jdgq9tBwgCiBAcqLgZWgIychgFCCQI + +Ppjp0bY984PkMihMiCw/qiCvIZH8/4dH9mvl48xkTbEE/h18k/tMiwoeGcIoZWZY + +EZn9bFLLEFYGeCv/LytJvqOYABNmgh3s0k0nhHdK/uyD5tmGjjuNYdcPryCyEYR9 + +qEXGjeMDmi4lm+iC0UvVg7IhjK0Y2i08H8AW0QYNkMWpjdMXtMY8Umj80TOij4uu + +jLDkOBQ6juiYRLni80f+MC8QiRNMS+RkIDwJ6RJ2iXDj8BawWCZKqGfQUnqnca1t + +sx1UWqiC8KHdY0bjDP0SCA0DPM5zVE3jxMt6Jysd4scwF3i4iHLjoGKSlhJHVE58 + +TIj5cUvilcSVjo8S+jY8cmj48WhYF8bbZkcMvjlcUR8LEPVgFGJjh/GMojV8ZiIp + +8STiM0NnjpMAyZiBq4ki3oVBJ8dPicsbPi0dKBjeJuBiAyFVjX2DS9cVI4pZVMHD + +I/LCjdJuSZJSBvp5gSL1N8RChtAc+Q1DJ99BoltjHIulETwXpwhFlIsz7GIs7mvc + +V/wXpxJcebC68qQSvAaA8nkGhAGfofRg5E1YRBg59B4eSVuIc59eIRw9Ikfv8v8T + +Pin8RXQ/8W/iOyB/jyccK03AG4A6/HX5SgDoBCQH9AncKQBYQM0B7auI9TEkSsPg + +XzjZbjVozoPLiy0sKYdHuRdD+DrYzsDC4gQI3YbgM7iZcsOBeuDgJ5YpY8k8HuiU + +8VrANcdqjXIa6cdcX0i9cT/CDcfaV/4Z49Y/t+97br+8LcV6Vk/oB87UXMilDlGd + +FkfAj9DjwhzrKJEWQnUkEPiXjM2tgj0nrgj5hlk9MPrX8EsdKtg0ZGiNhqVDyEYP + +iI8RxgK8XHjq8fGii0VyJWJhIs2ICBid8Xniq8fVoi8froS8VVQ6iTKld8fnjmwt + +rI68dGQUNGGB2iYmjK8e+iz2C3jLGDlAo/NtggpNviOiQ0SRifGEysQ/in0bIR60 + +deiD0Rx8zCYSkb4VYSlMasT90f2iHaIsTp8csSqeEnje0Tei0MZW49CLGgGcG1Yl + +NoMTX0XvjyicmEbic9A7ifD4c8fUThifvjEenRERAcKhEZFMBkZOLoOUDzJ8Oq1i + +4mJUEZnMh08qDxEKfivxBghHteRFA8d+Lq8xcMHI/shUFkmA/d6HrbYaCciZXAVW + +10cSEjMcWEj2CTsCyUQJCrEK8Tw/JUl9gS/ihiWUTxTqO9nAPQBl4YIBqgFAA6/P + +gBSYKQALBJ4BwoNTAXAGFwW/AKiqiH5ELZLxNngGKiBKAo4A/MKY9SHGVb4YrExi + +bRwJiR3iB8SV8MhuuiM8sEwaQZqjoQk4TukQUN3Ic+9PIR4TDUYbjfIcbjfCa19x + +kebjJkZbiIEdbjU/hGdwiQsjInmo9N5Gld4iV6ixhhQN9GOH4sEb7jA0WyCjkflC + +g8aciSEYU9k7sUTBQQqE00cWjqiVk0y8dz4s0CpjZgHdZUsXnFdiRnjVMVmSj+qU + +SnicxiqMfDFB0fxinZJjgSyfxiyycRF0sQTj3rn6iRfNg9lhHqSJzJcStMhsAAMY + +qjeMbogWyZuitMR2TgKl2TAMT2TqyZhjayfpk5MSJiz0c1AHiZ0TGiQnjyoSCiZP + +tMhzkDxBNmgdh3rlDhAgrICSrJhV2gNhVuxvQxFUia91SPsVeXgE5GrPSxzNiH5o + +TJYjUcX+w0gb1j5asEigDkSj9nLZt7ehrUhMSeip2Hxw6gPSSiyV0ThCa5sFTvEB + +BmKQA3cMEBskYMwGYIMwOQFqAuUbCBqYA7hVWrziZbtN4+wCQop1EJ5+/GogdHmE + +RdWjthdmhMAIzGRjnoOKR76JhVp+qlNYzKrcviWUTHCVrjRFG6c3Cd/DKxJ4TPWt + +4S/IcopTcTgUtFMFCwEQE8rcSn8gPvaj0/iulIibYp1bKoYhVigiWWGm08cMjhWc + +llDz0vOZwyaGjY7sHj47tGSm/rGSW/r+idhomSqiUh4GCrjxgKYuScyRZTGKU8T0 + +8RRt1yQ/Yp8vOS5iT8TsLLhiiMQRj4ySyQ+yQKJWyVujlorfiuTkN0Vyc44L+J3g + +N9oy9k4gbIZmluSZcsFdLyK1iZYDzCuGBOYYNph4Koo59SScSjscUp1KSadt+ycV + +wxPHn90cWzdYDvlU3AFEBggG4AxQNTBmUYlBObv0AawKTBuYGKB4uKUi/5A/wmQu + +/A49uGAJKPXMlGE2QeoIQkgCsMBuCbTpeCW1UatJxj38IaRkjDa1DSSxSrvGxTCp + +iUMuKcSsvWnF16+kAjAoSAjHblMjnSWJTQiW6SPbgN8nUVESWWA0imUJfZhzH6Sk + +NCNBNdBVw1KXiAg0XlCtKVh8dKcQiNzGHjo0YWVvKZMlLKZ3iz8Z8TZid8SgpAxT + +X8VXttWoZimfIDTNSdtk1cZOStpnDTwaXRjCuOSJMKsrw9ifYTgMQjC9HrSJksSO + +QYsbbxCqW2TAqT3FHOtxjhfhzJMwGpoeoCQwSEhJwghH9CKye7opgHzR6yRliyBN + +cQCuDZQB0NywOaUVieItzTcLKzSO0bXQLMQxidMZ2jiceNS8sRLTsvJZjGMT/i/n + +nJjZqTC5tGOUTSIpLTtMWZi9MazSkaStIKKf+1GaZ3hcyVej9iaui6JDqT/KcVTU + +ycbSGaa9xO8FjS7CSujcaW+1NMejShdIWjQaUxS+6GjSCSd7SeNNjS3aZ2jtadl5 + +A6VdDjKbZT88YjMZqVCYNaS+QfaYyTiyf7TPaZHSRzpciepJzSGyYyhyyaWTB/MD + +TTRsZiM6d4RfyTuS5qZrSG3K3jTyFtR9gIXSr2Ozp+yIAxL6DrINiUJI8bn+gPGI + +lMLEBJBWojwIv6EkNNgPnx8acJso6DBBscOhBiGJU5TqCfVR6bRCCkOEMS0VVABw + +G0AR6RaoF6eNkxaUpt26WPivAvipoIDcBhccb5jsJjT12KYSO6d+QdYAfSKacfSS + +BqfTaafusNLusdVyQlAp2GYDd5vE4MyI9kgBArZbbFesKUuuSqgZ/FUmvrp6ghCZ + +ccntZ5wbATHkFjZLot74smiMsoGH9iD3n4jkBNAIsml4jtdB/kygixCwwPKRi6BO + +Db5EJ5MSbyIqftg80SfBBzVDYCb5HT8DIWiTESTT9KPPntGTHld4Nq7lxsTuR6bD + +hCKTFss1YUkxkNkDisohgtRgTnhUYhBN9YfN5DYeR1dwZG8QOLSh2IBgTd5tMJZg + +X9Tf0RjjAqmSSSURwT+IV+AL6XvSu6TfS5fJTS3VNTTm0PlifPiySJANzjSgJ4BE + +FLiALBEIAlHtaATOtzA/em4NhmC0BSkc4EXuNPBZ+CSc/ggxBdWoeSAKJEEQQhPS + +BGCx1NPG6ovKbrcc6V5iRaYF1FqdisTSZ/DdcRxTjYkIcc6hNUbSaMi/CfH8AiY6 + +SgiaJSQifIcJKfMipKZ6Tz8MjI20C2DNkUkYJvuBhFXFVBMPPKpnqRX80iZk8MPq + +UYPqVGTvqaQjfqUST/qcVkGSY8SiOAhAgqfuZMIhJi0bENADqkFSmaDXSn7OBBSU + +EFI2zswR3EtL1q6KrixaSRjidiMB5oChsrItgJhykLTw9HLBIMQcyhwC/FqcAhoi + +pPEyHMWQIgCbDJ/iZMh9CDICISdK8HLrK8mRMT8XbHAkUcPSk8Gba8mGSVY5ShoD + +8Ucw93yawSscZn4KSZYNOiFBjrmXA8Tmc0x8cULSnmaBTYDhyBsAH4BJAOcBKgCx + +IaYEKTM7J4BsANUBnUE6JmAP0BSkWLhtmL6I+ZAKpF4I4lMEJ5ABdI7lBcKXtPEi + +kNPEA2SHMaKFLHt3Q+aTZQDSUYYjSbrEavhX19UWiDBkVaThkViD+Kaf4LUftSnS + +TaiOtuJSwiadSIiVUyykTUA6OpfYEoQMMmmWMMtPK9wMziNMUPvN8wycGjjkZGSc + +iWsNiztKECiXGSrkWMkTKRmiaiamSIabvcBCTbAfaemiS0Z6zJmZWxSaQFS5oIWS + +Y6VXjisCkR/0KSgmZOGyEHCjTGSD3i+8b3i3KTjok2SuttmHoiI9BGzfaanSnEMS + +IpXBVxNCGlBWlK2iCTO2j7iRYgi2aS1ebKJFzZn6sK2Y5T/uB8S+EWFNe8eqiE2U + +2yOJm2iH7NWzBjqPSosUTSkoPnSKyV5Sa8TrSrMZvsmiaGy7aR1IQ6RcSAtGcy7G + +GHTbCUhj8ydZj2AaOTRyUqiCJEXjJMXMyZMau4rEGx5NVPCYEyvcyV2Ziy56Sgwy + +0tCZDkHuzpygXMmXsjRYgjQT/aBJBO2amySqQ7xfya+z1DnbBI2MSIEXPN52rPDT + +deOnTqVELpnoDGsREL2M4mPeRmadnTr2RczERIfj4WlPxfFHLNlMXENMyVuy0LPV + +gEOTnIxUM+j82URx+wJ+yO2amy1Ub+yzviuzo9AFYaOWmzwaeXT1aTzYUyPaMz2W + +ow+8jLSYIDuyAMbejRiT/lRoAhxE2oyd+PgJzAMUJy7QhFi+OA+ya3vBjhePHS8c + +BxzKOR7Qm6d1B6WvFA22RFg2OQnS1ObUBgSLBBgrk4xkjFMTJOd2TpOUOSfNBhzG + +rAuRnZEiMROS5iBRI+yLGZco+6UdY8GE2RMCE2TJoQ/jcsdmTl2p5zngIygfOXEx + +O0XhRmOX3j02bD14IMRyXSF0BXEF+zoufU5u2XaEfgD1BSBGfxfGCcSuCQFzvFtU + +Bq6dTUXoK5yvyEFI7CFZyeyS7SN2fhyVaXEQQuXHtwKOVZZ6WR90yXhyUMfVzM2I + +1zvOSngeyM8y4mn0VZgFgIwTKQMnyUwNEJiBwdIua8aGcgJ6WGgIL5giS1+EEiir + +l1i2fttcMGbp9iEuUAHIoVc35nVEkCVz9LSEL9Nydh1v9ILDCyHZFVsdzVzuY4xS + +TOhxbyLJEQFsTJ9PrDluBqT9LSDE8RweuDYcSgZ7jsR0KOgQT5GIntsgSQS7GMAy + +8Jk7lhFsXJYpnUCecJ7lhsRbkQ6i8UTcsjzfATblZBgMDM8sos68lIM9ilrkM9no + +s8Ic+tNckpN7bHotVFreDzyFlTNGTlS4WREjdGWmS8yXVzeCbJkeuWFy+ua1zqUS + +RQawJUAPUMMxSYDTBagLgBiAKTAHcH9B6gDCBMADDBcoKUiO3PtBQVjMAEcKKEVS + +nOwL5KLhocY8cbIS+pPlNvTdOVNS6Mb0SG8Xlzn4UqBxWWaUXCb0jVqZ6dLSV4Sj + +cSMi+Kfkz7SYUyg2k7dZDraiymZqz+vtqz+to1YohPPNaQYMN+hiMNjWUhopkCVw + +b8RazeQYcibWRGTtKX0z04pt8nWdt840S4cGSWBj38dMT12RrdLoK2ybOa6x0+f/ + +jM+eOS8MYbSM2bWCM+YITpiRRSLjrWj6+A8z7MTey2ua7SLiacy+WecyXpCtJfKR + +uiiqbLA6OShz2+XhC54ipzK6RgwS+ZOiy+S8kY0N+zVURBzjaVRT6cIpy2CMPiWu + +VB1SsQVyDyEVzTaGNSN+YcA5EUdYYnhBQJUFVQvCiZzi2cup1loVAvQXGIzmTwg2 + +CNPzUuUDTLICGJEhjCtbbPXdhEFJzMEe7SVOi/iA2dUTWuZcpcOZnisydcQSwl/y + +gMZ2jdeWrj2aduyquZALiaFLEqMbAKhAdViQCWTodmLdgOZJJM5IhLoJFjASDsOo + +ZRIvCSPsJLlPfHYjCmigl1PgVEjESA8ezACc4eYal7fqoDiIYRxMIWJM4cp3C2ZD + +2iGsdxMjsNnsHFjRCWNsKokIfm9cKkptr9JdEaeXJ1PyUr9OCY3MRyfAKf+SzSYB + +ZcTuea15qYOcAUQM6hPAJ4BzgH9B3ADEB6KBYI6/H9A4AHAAc7BhSd3h7VSUCMBn + +cRuNIbCrz80EcYRRHbA2TK1FmkfVxgBZuzmWvfCtKBjVYPHWzS2eNBmKSkztcVby + +PThH9bedxT7eQqyneWbiXefUMDqWqzgniSCHUZ7dzqY7i/dArJ8vvn9kfAyDaWH9 + +Z2mddVOmVX8Q0YHj4+faybDj9SDKVnT9+oMTK+et4YafBFM2bYhLKYRwt+T2zauS + +hjfBeZjFaVLS75nmyU6bHTx2I/ypiXXz2mClyZ+VYShhWMyo2Vmyv0fojZhQuSn+ + +e2zphWlzO+eXzyOfMKUAdRyZ+elz1Ln8SX6c4555uMB9VG/EK9E/D/yFjYfwZ/E5 + +9GngvHN2MfkD7V/Lt2M7fJSoOTt9YP/ENBFAa+TiSdCzQkXTzJEqSiEWd6y5hasK + +XQnsLmOelz1BRIB4gOolQgC0AKAFAB1EnX5zgIcEHcLiBJAC4AAgDaB4gEpC5ean + +1/uCOQiev1AlSs3AdbKBBN9pTIrFrRSI6vVw7OaQxbPJqS2qncxJ6VEym6pdlPEl + +qilqZ2kPIXV99cdEKNqTxTcmY7y7SQkLlWYn9imYdTSmSE9SQXbjHUXAiG6mL89K + +PJS8hVWglKTrAdZMgj/UZazWQf7jNKRULemVULQ8QMzahTGjhmQdNWhb392uSALU + +MfZSc+VWzdOQTDbRZuz1MbhFIcTHwdmfpi9mWex+OfAK2iWhI1cdhiH/neyUOo8B + +AxYkQPKSxjfRXaEQIPNAtOdTUdOWHTvReOz3OVO0V+d+jxNOuyMyZ1zAQJ/iN+Wd + +AgqR1UEuUhyF2S3z1iehyqgKL8mRSMKbpA3zhaWhzCOfBzPsohzSOcRAY2RmhK5A + +TJNhT5oQOUrowOfaQIOXOwExWl4kxZUluyppyxxQaQ6SRYgd+XLSguQGMjiaTiBi + +RYh/0RAKT+XAKv+U+zjGXfSzGfhEV2Zey1jCYyT6VP9NjM2zc+R2i0tLBANxe5jE + +2ZGyIRZ6x1xQGK7xS0KHxRBzKubeL0xaFSd7o7kmOBCjP1qSoCOP8zjLlrBJxuPk + ++UCWi3ifAy7LrB1Mfv9gt9ikFFuVyllSIZ8WfqEJGahODoyJNA9uZdyhgb/oA/MC + +SOTO/BzPj9Zyor4F0+sptiorQLYcqYD7AU9gC8LBh1uQb438HGVWXth5pBXTdySQ + +zz8qWCKVhfDTPxS+KLGbCL0AHX4OQPgAncNzBrgpIB8AElBl3mUBOQLgAOgHX45e + +cLxNCW9cigjKTeALjR4WqAI88LlRlbgV9TQPoyAGO9j4TAKy8tmJceoAvzm0JGLY + +QWbzeRflN2KeaTOKUKLhDrnVeKSy4dqf4TJRYETFqjKK5DnKL0hWdSlRRyttYFJF + +g+a3UvFHUl4TBJwtxFHyDka9S7qnHzjRUtsI0cVD8PuaK1GUZTFntGL50fBjVwjX + +yjua6yiAuXSZyfFBFMfrSfRemLzCqezJVDxzHMcRB/2dMtAOa1EZfBsAhJIWlV5O + +ZLk2WML5iRL4TJV1LQbAChG7tWKj8YriJUDJyJfHoRuOVVBGpVvTVBQrStMVZiuu + +eRZUxZ5SapU88GOZlDg6PPyieovzNxftDtpUFIrJZRT9pbZLXxb8SZ5scLRAd6Q4 + +cBC0cmNLCUnp8KgBIk1WFuLoFrpPo0UafQNdET1vpQdha5Nx5krt2MgJW0EPuf+Q + +TyNfpXhWtYP+NjIq9j3C1GVCyeTjCytGblS7Nr/IGxfTYdpVxA9pdaQLpcJKyqX5 + +83ADwBiAF703UBTB1EogozBbgBqYBwALBKQBiAC0BmAMhA5eeKSsQEWhz7FB8HAB + +SK1eSQkSTozU5IhCDqSXZE3iXSp9eZY8ozH1KFqWKzHJStTIhQMi7SjELrSQ7yvJ + +aaiAzhMjXeckLlqlAjgPpJSInr7y8qOrI7Il/5A+aHzACH9wNkB75ihTHy3qUaKs + +iZ9TuQf0yYyc6zDKQxZ1pTGKlOYXzfWYAS10XOy++WXjs+ecTKxWdC/Zduiw2MGL + +YxUbNMZTUTTzPTSTyQyogQN0T+hbrSmMStoNxdBwk5ctLlaazz92Gn0mBtZExzE/ + +NM5SZjs5Z2jBJduLNpSI0baQOT/ZcaMziWsSDifeLthY+LYsP6KIBVNLhuq6L8Ob + +0L3CkOzCaUFjqyl/sWiROM7JfpAH+dMLkxkPLMQK0SdxWPKU2RPKBuTViydIzTzx + +pJMH+DsxgCL8LZdLR0UcKXThdPQlAOE4DZdFIyyUkfL/EQJFo9Fii/4oeSDXlAwt + +ltPwsGSNZ/6DXZCfrATHcta81rLSIFZDR1MqcwSAqjIK8Yl+TwDthBIDlPKC9NbJ + +Z5cslx5dFyR3gI8SKH9AzRKUBnUFEBnUOcBgwP0BVEpnZmALYyAgGb9HTJu8O/F8 + +CPapMVQKFlzudDLCjmOcYn+FjgfSELZpgBGZgQRAKQhRY88tkC95oLxxzXhLluRc + +kzEQaky9UUVNBRbKy7ecrK4heKKBKSvYhKVajwESkKdZeUz3SZUz+tj+Q7POnhL7 + +MoKQ+RyxtkbR1yBpocfcQ11QyQaLY+e9T7ZQnzZVjUKXZXUKaubmKs8WHTP+QGKM + +5QE0I5bxjFmSwllmfGhp5YPK/KTXKw5X3RVSeDE66eASPFT3yyaf3ytBKhzexfEV + +vBSzyJ8UuTLtunKO5R0R3ZZOjmoDFpnxRXLi5UrSN0TqKuIN3zdSVujBKPaMaSe8 + +TO0dMRFhRHo9gExz1hS3LfJHuLwTNMAFMsNSUou8h2xTdIq7PpjgOWfzp4C7IR/H + +5zELkgKWMdfUxpQriAKOBR4MZLBB+fH4fiDfzB+TAFTIPGK4mNOLqqAQDeacKy6g + +shyT2oDSBZs5zSueJyZleslPaRkrfGIuLCGplzoJVMTKKUly+6NcSRZbSSd6WS8O + +lcOAulSgJeMWEQv0c/QeIMuowwFbRMxfoiAxH9UTlc2gzlaCZI5YQ05lSj4cBDOL + +FqFcrMPDcqUBRg1QVYmKIVbZJFBVJz4lVAN4VQsqLikiq4lUOSfxYfQ31nYCxuYf + +N35aQz36DB1wxD8ysTDBt4bntjFJJbpaUDDdZmmfwCBRxwWFjgsZVE1YnFo7tZyO + +EsxBTCcherid9ZKIhrIqRsxZB2Nxes/sOliKqTZF4xpbKLCNgDrYNYZ+NRnN2LRX + +trZ9SONZ4OoDLaWsdFlSLbZTon6pzoKgJz5m4iCuBICz5JxK2HtxKccfILZlVOLw + +VYsr9gW3KlBWoLCZccDvoKQBJAIfk07JIBdBS6hsAEFt+gMiALgh1TnQX4xNKk9A + +IULoTQGKQxQmN/whrCYSOpcDhRautBI+XRT/BRsz9HlszpZQ5KwhaxTXCdbyohUI + +qlZfKyTUaoofHoJTLUbVMAPoFK0hXrKwPqod0EoXhIpWV0e6fn877Dl8c5H5FrZU + +lLF+nbKhwPSITFSIUzReYqLRSVLReIkqsMROyCqdrJD2dJjYVeBE8pZOr4MQ7T45 + +UzTAlbkr52ZtowlXTxHFSGyZ1bMy51fnyEye+K1mRML5MN3ydZBJxD1fZSrFdPAc + +5WuER+RrSMGLOztZMPKlek0ksKHJzkjB4wiaUcqqGqFixoHjLi5GHSRxQshXyHqR + +/7keryItHKsmloVQVRwqINcBrM5Uby7rCbzP1X3Kf1QPKj0S+yWpWJR1OJdROxfX + +T42eErJ2M1LQzHhrgUG3yMWU2LroceiAORRqNkZaK05QGLxgHuqyllersoPOrhyR + +uLWNVurB+U3zOyTxqP1cskANY7SE5Z0LW5siruybxrFznHLKcOJrF5egKP2BAx++ + +L34cBVATQBMyq/2G6R/xgItZYmsUkUZq9wNpPpQWYccZxbiYqEmDdZxl/MibgTcL + +IoJQ/sSSYXLiaqTrCBKUDKrD/rM8LXYFhMaGNrDyOiG9bxqNEGgZxUEyH5rxRH/K + +TBqjL6edardGbYqv+TJr9IKJrV1c7SsWX596gOcAeSogpI0uolnUGKBggPQA6/Gw + +AGYLUAUQDEAg8NUAQ1TBAhcfqp00GcwjTnGICOCEyQ5CKILTspRZaQVyTeayLF1U + +Oj4YqELeFeELTSV/CXJZkzvTh5LRRarKy1cAjfHpIqq1cESa1dAi61a1MG1QXoyo + +KuL1RXFQlKYlJawcGS9FdNse1fgi+1csMHZUVDHWdRoR1dlLQipEq8xTYrRmfxLy + +iQICUaWOyNpS5SwaekqBhanLTiYuzg5Wx8tlWJyOiXSL6Lt1r3dJPzJjL9rXMdyw + +AdZ+UgdQZiJ3LirsDO/hAgKgwbPtfc40LfdETNXCU4Y504cieNBagdgdbL/suoBd + +zivOy1h4UCLyDDozeJaqSXOeJzIdXxiC6RW4RJRAA6/BYJNEpUAg8OcAWgAzBQgL + +iA/AMMxuYMMxcQJnYg8NVT0uAQr+YkQctTqgB+cFUApnFMII1VqVuZSEI2sckqmU + +C8g/OV4k84FFzKlSyLLHt6zGhdMsHTjLLc1ctT81fLKDUUWrhRbELS1R4YptRWqV + +WdKKZFbMiTqd7yPSf1s67CGBfdF/4x+qlCiFD7UhVUh8UiX7jShQHia/v2rygIOq + +8ifKtztUMyx1TTCLxU6LolW+Kz6KZTZyAPIyOT6yoaU0LyiROrWMenr9dXXJl2eM + +rsZc/j+CZnqDdcVy1Se3ihxaeq70XLS0NTlK0HBfS6VGH5LCeTTI8ZMoGILvz69S + +4dO9XXq1tZ9U4dbipThZhxeVb/wqdAtAyTETqRgOK8DSEqrboOxAOUmgz0gv+tmI + +bq8iKiq8r5ULDmWsDK4/PswX5chK0cbL8SSbTzZBSCKhTu1ruCWhrWbvrUEkSRQ6 + +YqTAT8t2J6AIzBnUHMwXUFEBEFLUBWqcEAOqZpB8oIEKGFg1ZyuLogF+EfN/Yrp5 + +uWW1re9R1r+9VqS0xLdrXKYbqc1f1q81REL+kebrFZZbqRFdbrsCkqy9qVKL/JY7 + +rwoetUFRRkLQpdSxfsOA9TZUlDGmRorIMEzIywc9AA9SGS9tdazbZaHrlhvLEQ8R + +t8zFSnzCiUxq2hSeqXtUyS9Rl3LrtcIa7Kb7LPFb3zvFSDThhVZTaNThryNe+zGN + +Sz5HtVuKquQlrt6uob7Gl3rYDbHq5lNAbL9foacpYPqtsIjqdIixFP1qCYCEqeNr + +6AJBloiFdIJZThjXiA9CFgDg0CbBA4Cb1BlKhaqeIdoz4WefqjDUsT9Ddfq3ehTj + +0AOoluYLCBEFBYJzgKEBvAHvABSt6hKgPQAncPQBqYByAM0lYKiFZLrW4EJR5oGN + +BYUafiktixIGIAEt1IrSgU1EAV2ec1zfOYdVffrFBxlQDqNYubzV/HwqpWQIqLSR + +br3JTkyVZUf41ZeWqJFZWq3edWqPeUFLFtSochvr1MsbLPwUoUHy4nmbKPuLSwYl + +p4l9kTgiL0mULbWbHcuDbpSnZfpTo9ZIIBDTaLmeT0LfsOnq5hR0LLFR1zvaucbf + +MF9rG5dZTF0RbScaVBqE1kni+2XnyLjQuSrjR6KwsebTb1QRzJNUJqvWQHToOVHS + +p2nJz72cWzb+F6yoVbcSxZW8acMv2KzOeBzpiSqjH+fkr0Mi2LCOCRzKpVTxa2Q8 + +rvVD3gaNZcpGRVhzHOXz55xQVy/1XVhyTQ5ycBHz5CTWZV20KSbaMkRzWxXiap1Z + +ghoFd+zYuXVhqTV/jVpZByS6eCbM6YWyTOaByCaRZygxQbTmhSjtJTQOLpTS3K2z + +iibs5OZyW5Tkrbaf7LpMtmzV+enp9MMdLdTaUq1+eiz2+XnSn6UcKbdgb4jPIG9W + +IpLwWUITrxdIAxL1lpqwWQ5ya4bLoGrGFznuadgbEZKol9W/cINRK859bOCNkEiT + +AHr/tgHtkEaBity49Afwlmrq8METqlipQ/oOfrz83XgwlUzdvo1ubNjoOnLErPAf + +q8UpihCrFh43UhFrSdafqKdQiyXlTmyoOmaaisRab4kREbXAAEAKYN4A6/NUAOAG + +KBuYC4BagChTiAEHgoAOcB+gJcA3UKUjINH2TawY7kpkHQIjmMQpKnNAxWot3pID + +TrzWlazTxZXlsc9dRi+tcH9LeYNr0mcNqSphiCxtf0aGtt5KCmb5KimYQbtZU7rb + +cS+h7cdJSkMHPoyUvryopSZD1FVsikNIdhzsF9hu1WwbkpUYqw9bsavqYnzeDeIU + +LFcHTTjdYrg2b/iK+UXyq+Q6LPjVeK4LZDSACUITTtKFjlwRFgvZZnqfZWewZpfV + +K5pUeKS9fBbvZRha4xXartObOL29ThlBTSTjhTW2dajeFySLdoaT1ZMrxlZQcDDR + +pAkWRcUNkGCr4MTmKbjXeqkTTxarmXxbYMU/Nyxd0LrFYprXmbipiEDiZvuUoCvi + +qDy/2NBhynHfLGOA/KKVf1Z/Td54wNt/wfghODuUhTgzyaAwp1DRKQ9HQRKOLQT9 + +yRiiN9QFc/DWwSAjTxKEWTEQFkBJaZKFJaokVdrZLalrjgc6hGYLCBggBTAncGlV + +6gIgpBmM6huYIMw2AN6gawGKAKtTkadIeLBINIVjrfD1BHyPrygxD4kvGKLgeOcN + +BYXEZKBKBybcTS6R8TfZC68BmreEL9hbkK0bZZabr0DTKzMDb0bSVj4S8mWIq8Dd + +NqRjVrKiQXeaSDQ+bFRQ7i0CJVc8vPMbtDoEA02gIx88Lwh/zQYr2DZkTgLRHqMp + +Vt8ILaOqG9W6yhDUXSY9ZtbJ2H/ykyUAQUyQ0KELVnqb1cJaPtScaZLQWTbWNDqx + +MbKb6dS+qkXOArS8eJj91RxqDqlbQANTZLgNTW5vredKIFZXKfKc0Tp5SPKtDS6L + +oLTdaQ5a+rQbe+qy8dubR0UDbQJAjb7rZY4wdWVzDpcu0/LSJboIPRbyse6Kk9f/ + +yjrWnrg6NndrRUfF9Oapz5qTVzHRf2znRa3KpNTuzUVScN49XTbO0dNTMyAZzqbV + +BaHKZeKB2dkrq5TIb67tnzkLfzaakH0q50XplkadtbZ2N8rc2U3KibanraicRAqd + +dsq3MUjbD/rur7jRWLHjY7MYNcXrbuqKanouWE6NbhqVDXCbhZdCqilRXq28SDhq + +9YuVlxY+jPlSeytgIUrETZdQTJZ3Tr6drB26c3qLCXM029QghgjccTnbbeyC5pvT + +3qCJy/FSszwyhUrH+RBzB6P9agNUvzQxeHbhBYnixDfORDgAUrrlUUrpLcnjQ6Xj + +UlDW+ygCKoaRNWrITaU7TE5XWTjpV9J9beUTcZdRSHCXxqzmU2bqtCDaXrbCa67U + +aa/jYBqm7coLJ2cnKVpfmLsNbhxlDaXay8c4rROeDqU7cJzW8Qs5JiS3LIsAGohp + +dC0KLUuK9DfBjQNWCrqLfkx16WnbPVLJkyrSgIKrcCrIdP8q5wYDl+cPBjoBRWSp + +bXMYV+Yfyx8TLiyjg8araQqbAhUSaAhFlASsadLK7QprERMybHlT/bcwklr5NWur + +LTddLrTQCT88Npg8UfVBkyPoMHBYy9AKGaQVRb4EUTvDcO3l/cv5dg6wNtCgLmgg + +9qBmjZXDRUF+UqtYzxvSdiop3htwc9Fq9rtEPfPAz3xpJ0EyER1I9mw7GBKE4BGK + +IzdyHgttJojE+HSwLQJpQsUeTxwRHejzByMFc1GJQT+BZUCyCa2QDwT5rYYu2Qge + +UeRposQT8OG9EKJcB12BEUD/AUBD6gaRxggcFqCJkuQnjojyEyAbCNHd2QB2H2Qc + +eQo6pGdY7WyMkCNov5rt5oFq2GCY7ggbIyZHSPxwyPY6hTHwz/rExB4UE6axyM5b + +YWcCLqzUKcAhVmgv7UhifMX/axNRA7mzcK1ouH9AhALizheXUBrOhYJ4QBYJJAB6 + +g6/BQB87KoTMKc/kDZAVwyFaExoOOSKBgGtI9SD/F+ZfNBtbjiaT7WWKWFWlMSRn + +Ps42QTJdze/D9zWkznJQKLuja1bsme1bPJQMbJtbtSerfbqbzf1biDW0NSDSFKRr + +U/BLsnhCEngpT6rYHd9dKqkWResbUiZsaQ9UtbODStbTtfmVs4hdrk6eCKE7XxLE + +DcsLEDUFStTV4rA7ThbS9ehbniWRqS7fhqqpWmKc7Vbb3bVQ4ZmR9bxEHHbphRBy + +L1bOq5jSRqAZlMLouRByUbSGK0LEA7iTRFzpLYCaCbYD178V/iixdrbrrfaLERHj + +acsbi7BDWhbM+cZzP7SyaT7TLTcLR87jTXWaDTUJa7RZi6H7XqasxTFhEXWfbJjh + +fbGlecrkOVl8I6WKbLRoNLk1T1LW4uwrwNa3T37SGN0bTTqKuSFyB6TCheuKZkp2 + +YxiSXb/z3nUW8G7Unam7RJy/klBzjbU9q8MckrgIlHba6SszzrXaKe5ciklmUzJ4 + +0Ja6fBXcabXS4q7XQ0A5LTdLD6JRTWepAT+cEnsPpcKI2VbLpzoMiVXfHq8s9BQ7 + +r6PjIe9PoiDsIfopdBBKIZdGR3uZZdcvugJwGafRebHbpwZfVYM8nGbrsBj184Zl + +AyVd8yTVR/RMmO55kOiC1a6Y+T+rMjiGODW6RgnW6gGMh0IUTCgKBbLph+Oa9oGf + +VBXuK1EidRE6otVE7AjZtgmXY67EtkfFfFea77XQFb7cOolBeUIAXAAzB9oNK0pm + +BzruYEIBSYE7goAA7hzgBOamcDzg5iprAEUIdUKRS7BmGFKi9SbUkSre1VmLX1zW + +LV1rEaQ3T7JQLA2jU49OjWtS3JeM7vWpM7zzYMbbdcMa5ndajbzYs7Qnss6feaod + +eyJAyA4nSDFjXQaJ+gGTzoL3VdtSYd9teKsemVkSQLY7KwLcOq+DS6y9rf2wEDWD + +TixR8bK2WzannYLa2yb/s89adb8Ld2FVXZkrPZZq7ELbXqYDYx6yLXhb17VO04XX + +ybpiXrrTreXrERLe7yrKxaIbS8a+0XYk5iEJ76jebSC7fSIJPZA7hAR67JkFfNkF + +kAJDsHHk9NbOQLyf9LZdFUsVXnm7f+GOD/6FfdqrGZa3DULZ2bOy7IWVxDARVWbh + +3eoJnEK1EmuSxaelUzyxPXJ7ZKMyS4Fc4AawN4BhmG6gdAKUAWdTEBKgLTKdAMQB + +U7KTAg8FXB0KWLqIthLrdIZdThgNZAfwK3JJqblbhgBbJVStg8pHa1qX1CWLOTaf + +bPEpY8GzQTjEmc+6WxI1a0De4TXJT0av3VtSKphebneVebNZaqzgPTbjBralRhrU + ++an4NpgNYJ9gRtnUl7dnSw6mborw7vorg9YaKODcNFMPSdqk+WdrcPa7KHnUR6dr + +dRlQ5a86+Cex7wMQJ657SVy/tf2j0XRdbs7RpzRxfarkxYd67Rcd7kXfcqqXSA68 + +XYCarvcu1j7W2LKrRkg7rSDqfus96uTaMro5QJr2TW06XvVOrSvQky2TWYblNfsB + +PGKPrQGH8yDPXYK5cP9zSKoxLl5HmaH9FdcFYdtzncYH5szfPp4CRnIB3WTqaSm5 + +aYnV96ivceBgfY8yaNYzqRzUwBg8BwBcQBzBucTWBuYNTBggNzAKYNTBuYLZ0UrQ + +l60rS2gGtfdk+IGL8jmJ4hqUBOY7PAlAMUCCE7ra97WRREzKkNPSYmdwqjdSgaTd + +dV6MmceajUaebRFU16JRfga/JUB6FnR16lnUNayDas6iFL9xgSqN7PzUkZYPV+aB + +YP3juEFzKxvQGjWDQtbALYdqZvWc75vRc73qhtaybZUSPWcdabKWS7mPUdD3WYGy + +g/bRaWsgdaU9UGy41vR7Dlf6zDrUrbJ7cHaVxRrbo/eH7kySTaJTYELwyvWy9Wfd + +rD6SeL76WeLL0bTavjcBBeLTBjvLfYquhRX6ULZZBq/QTha/R3KwfWFMTWnig+ar + +gwS9I/d77v3DGUnLYB+FYixOghwxrA27oOnXYNvEWaSrAPJ7solSmCW+TkZbZ7AF + +XILdGSLbSPZX6PEM37+LTAkXVTfqWzcOAKAG4ALBFEBSAKUA/oHctggMMxagG4Nm + +IEVrghtz7iqnkaJgBlbmGFlbxlvOaQIAowXEiYsMGNrzV8HI0/anhTRNvVbLHmTR + +bXf4qmkg1bjdXyKzSSM7avWM6SVt+7xtVM6bdTM67dQQaDfTMiQPfKKTfSs6evUQ + +os0PH4Dbdb7yqGgidZEAR9nYHqJvUc6pvSc7PfSaKeDTh71rVc7RDZDbLrcca3vV + +rao/S3bzTdMSUbR97+2E6qBOeDaB+dRqYXbjCv1RHaHeGn6nbRn7z8SIhL8YyYf/ + +bxjLEHLTIIBxazmamq1Grxajma6RjsK8QhKM7iMcsQNUbQY0zrkriCZLJth6bawX + ++VYHoNBYwGpKO78OY97sLPYH35Y4HtmcYHl6QrzlVAoGFpRua12Si7v7X96ElUiz + +qFuIRJ3a4r66eUSyMsLjQCEfNicAHL65ZbTmbWxkj6djhEgwJgOJt3b+NWyafNJk + +HZKNl8zSOHqmpWrSubVXT8ZiYzsg6UHJ7ZTbR+emz2/V0rr9Cj8kqRpaY1HfLFSh + +a8+IgvrfEaGandEUFH7nfM3NVBwjXhGaoOD1SKGaRVFwR689rhQknfiDlw9qZqly + +C46JHf6QrHcEDnyQE7MoBbpCHSxCGVNPKuTDZ7sqXZ6ifSO6ig67BgQDkGyg0TUK + +g1Taqg6k7XNv0BXBrTLQgM6gdAE7gDOlAAt4YQBEFNgBtfnVSJzSgw4xDlQNJUXQ + +6nVng6kdojr7aEzJfde6kUHdaLlWmrnmJy6lfcga9zT0iDzcM7pWYIqkA5tTP3ib + +j4heIqvvMGcHde17XSfeauvab7CA+fgwyM/oJrUlDg4j7rv8AKksQGsaaA677JvY + +YqPfSQkvfeBaCyrta3ZUiGqyat69lQn7wVkFStdfHbePbS7yXVWL18cfjGTpAry8 + +Vt75Q38p1zcgKbtUx6IMcA1GbWOTULRnq6XYMpuPTRyPxakHXjeWwd/ZJaVQ4HKG + +5dK6rMnc7K8WcJnjbJ7vtbvUUbciG4iBaHC7dY5PQ8hy7Q2kGcVQoihuRSosSsbb + +aVA68tuR9ZRoF9gXrO0C7HVItmVCpww3vnk9YQc0EJihNfIkNjGBV+QR/QDLEUV2 + +MB4Uv7u3ijKCffjF7PSctyLmrivQ+X6g5brbGdXABZ3rgB/nLgcGYDEBqYHAB4gB + +aJmAH4AWYm4A4AMCHLECl7uXsk4T3eKjp9SYhK0tq1rg1t4eXYCrmlVVb/EiIHuy + +bPKYAyr64A0NqEAyNqTzX0btfX+6MAwB6sA9IqKQxqzndZFCaQzqzZgDmA67IyHm + +WIazrfbGVXchfxYmQc6g9XQGeQ9N6+Q0wGzkVGispUKHrjcy771ZC6D1ZxrRLQ9a + +0xW9b2NVJiwIzurdmbxjG7QdLLpQuqeAyUS1Q6H70pM86hbf3yBXVnLpaXTSzpcn + +aB7bnKsuUwae6kPlkI4Nl67deK7FZjaJfF87AOToGydnGJImU3pORYALPwiuHRyW + +IGPLdBiW/Sj46/RVlZXTKliI3EIwQ8stuEBc1wI/rR4TaLKaLTIh0VWd6JxfiRVb + +ft7m7TmsbwLGzuxZoQRsFxGFUTxHpfVy79eOT7PMQbaodY+6taVhHglV6yGI3hq2 + +pbDSZbUHbHbRVjQ7a64PbYmrWIPvSfbewH8Xda6EELJGYVdJHg1ut6QlSBGPrcez + +obUEqw2SkG37ekHkbYZGfvduqfI4Ca/I1lhhI25zrnXdqssbvzR2STTpDdZHsoxo + +GJNa8j9le9rhTc8MtI0TgdI31lTbePa3iUpzVIzPa6I5+E0aQcrOA22xnMWraMo9 + +7wK7T9b1I82C7EJVHiNYBG3RTnLqaEljMNYJBlvX7TdhZUrloka78pbjbsXQ/jaT + +fucdXYvy9XU4hUlVVzKI/+reowDbyudfzmjdq79o8nbNox4g5fVPTomSgxC9ULSR + +PasQWI/L7roxxGOiCZGeIvdG2RaxGFfTdGFPWgL5LcvLJSSEtHdlF5jqCNAdjhSl + +ZweOC+XpfJ64WT8TWh1jeRHA8rdDa88HgP78ro7kRdNmbfFC69mJZR5XSMZEaVX5 + +EXyXMCfDYmopNm7DTmKTkqcjzVrIlDkaY7FTDIvjGXEjSrplnnhernp9Rg5eMEfW + +eNHAVPq7yD4C3wbHtEwwbkPwWR1XmmjzBY3r1/il+DxgaY6A8jnlsCTTJRY6oy68 + +n+DhFlLGTYb5FLYRT1Q8lmHBOK8c4ee0Ct0a/Ke3T37QnQ9yWcCcGT9av6z9Ztg3 + +o42Sy0Z9Gno+xHGvK6r7cBYJRgMyiWgJnYovTwBBmLzrWoP0AogAEA3UGwBPAMCG + +7mF1Sw6ntZJto4kh6Ot4ldA4aP6AmqV7aK6RpZ07YzOoHd+cMMeRbAGnJQWqFZaN + +UsDSWrtqQeGfJXr7rzdgGXSWeGqQ5tUCAzqzkruPq1RfUyJhGm1+Xn9x4oPNbuQ4 + +tb0Pctafw3pTzkf+GjjdxbDQzc6s+T6GPPWnifIw36xbeZG5TdnqEo1BHL1TBHPr + +TXai9dMT7Y0PyXbc9xfdHNLsiSjN9Q/Kjdo66wRXWZL04/rRog667VmbvTTJd1Lz + +4ynxD44mRj45Ow5Ay5GEI2A7TadTgK9dTqRIzS6dQ7R7LytOTT0RVKp1cpzObQ8G + +k6ff0JQ+VHCNb07qo36LH41M5hNXFrnVeAKWNcgmGg4nTwQGgn4tRgn7g5XTIE6g + +LgCf9HX1gn10HdYaRYmONNEQy6AnNNzEErq9rycjJVVaQK+ZBdgJ/X/RsvLbYTY0 + +XoVUjQTzLW9cloNQLEbiwyNwRjdWrGTczrMZrSHTTokvKvw69izh8fWcGYtbxK9I + +/KjwbWAmSyJUHCE5YzvPRIBagIMx6AKgrMAGFwL4J4BM7C4AncG6gTghQAAgBQAK + +YMCH5eXtgOcmCqtJSRIVSNTUC5pjg1FYwdpA+napqQezQI/Mz9bjugqvdiGC4xga + +i421aUA2eaAoeXHZnceGRKQFLxjbWqKmfrLvbsaoqPHESFKQrqjWXB61HuHpUzsw + +bkPah83fb2qvw8yy0pbkTVrcnzWAwBGHI8nrA/Tn6iiVaLHI2870I2dbbrTWHRQ8 + +8aHvatH43FhbipV2jM7VDbgTUJKLvZuy3A5O46pbvGL2T0qhkxwHJk43qPI6vaxX + +UwgLI4cTN7Wxrl40eyuNWg5X4z9h69WFGV4xFGrpYp7oHYQMNVFzod5j9KtSAAk+ + +/cAlFVTCSjLZfdNXpUFU9EQykYySqV+CiSqExAzv1o8Liw/8Ll/acGbY9E6Navsn + +9Hvoajkzsn9/eEbhWgcA2AG7h6faH1EFJnYKAC0APUC4AogPgAPUGCBPg8CGrkFU + +B0yWCBWOL8FHEjpRPjnDgwDaEIAA3nA0Q1CDYnWpjgHeV7TeS+7Qk0M7wky1bIk/ + +V7CQ7aSdfSSGgziFDnbuqzjqbXGOhvXHfeVAZXctB74nrb7EfEhofyB8dXw5yGUP + +QBaykwwH/9fyGWA4KHh4/h6Aaa0m1ve9bjk7smtrc3K5+etH8ZSNGolZZz25UFHA + +dahH2mL4nG5HBHqpSuwm6QhqpXXFHmJPSmFhX27fROKgLZAEHCMfBGgtJS7mUwUH + +F6D6nc/XE7bvX97mg7abXyAp8z7g5ad9aBKJxqDYE3fVYMdfpVFPEeS1rCYifTbj + +qO3V1BkaN27D9eozj9QAquWmv78qXTrII1EiQg6ybXYwf7hWhTBSYHAALBAF8GYD + +WAiQG7guzUb8Q8NgAXANLyJzTJRToLR1MyP+NIQ+1UQDci4L7njhXsLSnFDFMqha + +RZKunWCanophV+ndV9dUe+6beXV7kAw16xDmXHLzRXHWveSHDfZSHOvXXHwPdMbZ + +YnHs7rDdTYPiyH0phdBeZL+zHACqmSk93H3feUmlStwbfw/kTFvZBaw/QamKidsL + +fjaBmzU0FI0QzTbRbfTap7T/Huo6JoHU5CK5owcLcpahmJEWNLqKu1xqrHam5466 + +ne6VUAvORzyWuZIHvU4vG1xTeKhJeurtTbIa1hWMKMM7NQipbcdQSOlHZ7elJWM+ + +1knQ2nJIM5hGKPdFG/radGm7c1HfXFn7ibcraL42a6Yg9fGNDQJyVQ5HwZM1fHY7 + +ZGF55fC7q+RanAbb7bzCdsSNvaqGQ/R0ndvZXq7bTKbSXfIb+M7vVa8WxFjeSYbY + +M1IbnrTPL4MVZHoowtGl1WxqN1TqaHM8XiR5SqH7M1w5qI786NpchqbM6hq7MwlG + +cEztGb7RFnt421YAXfJHC8SFGKMywCOpX7a9MzhHWo2VGR7bXxeTWaHwabAntI8x + +nJjvBrNoP2RXcmNHFI7va2IFRz0MwHLtowpmg04IibvcA6Po9aHW/QRnZMkS6eCV + +ALNQ/xiTU596lA/z8VA/H5EBXryOsx1VlA4DgRs1X7xLTX6BI16naIBNmhs1NmuL + +YizZs/xG9/e67zk67scqArIHsnuSRgnGVnkPBLHdFHpLyVwNcNn3tUFnPrknCIyW + +gXdm2gXlQLmoLGnIimohHdR17wcItkw646kJvGh0w75FkJoLHtYMwK9ioCgs4bRt + +P5hzU5VezD55pj0RsR3Dw4TigtCCGbNVZscSJf9Y8cNdnNVV04kGUrYddM0sJPPj + +ncc9rYicw0skc6Nih8hjniMGHDJJlqrB9lx55vCHUboiTnDbMTnByE9mw8q75E6W + +hLAU0fqARSCnq07bGHPRfjls/4wuLbxHFlbv7x8V56Z4SRRSgJIBYjTABzgHTLdO + +tgB8RVABsAByA3ADyiXAH4A93YLjJ6SLipItOnY+LogLGH01INISlG7HMdrJQdHm + +FSiH80OXKrOUdht0zqjBnfwqP3QemCQwAiiQ11ax0i16khW17L0zXHr0+Knb0zFD + +0pszGbiZfZwRm2rPFK+QUIOAYu4x+Ge48KEsPv+m9jdh7nZcBm/fS6n+MSa7Oobb + +nk7WJnF6C5ma7FR7C84RHRM8/HaAoeK5k+HTcUEK6kaKomn404rbI+bb7+epmePV + +lIDXRjILCIfihlcvjFM4IH5TeBFes5hj6bauFFpF0mPM/Rn5o/LQAo21YnOZ1G1I + +yXn+JKaGWOa4h/lWQpnGPz8i5VERGFfAL7cw1ySM6Fy6jf1y/pBLasMeayCiIJni + +qctRh/CsrVlZlku8zRykaNWHWabWH+wk0aV2S0BlqGXnNacbRMEzzYP+Tbmq8xtH + +dlRxA85TvnyI91BlqIhHzGZAXHPaRnz8y9GRAmAW+7RAXVsrxnROR1n1qP6Ho2Zl + +mU5Ysn0Cy4GzjdGzT491K8C1sx0nKIIGGHx52diT7tCMlmipG1mBLcVgxlRiy+sL + +lInPb1zhPUpyaC8Ew6C0mrGsz5IusweQXQ9vRAwyni+oD9QN8zFygpOQIP407SMU + +D9RKs+OLwsUQWrMaOBKApQXhpatnYghxnkRhCnDoFSQTC5Ch8RpbaETQRSEYXoXY + +MJQFGo2Vzj8+0xxo5Fj+5cJJLC67bc7Q6RGSF+rh2QrZdC8sm04wYWL9Q/iLC+LR + +1C4iqEYcAW5vHgXeiNrrFCx/nSySwXIJOIW84RwXLoxyKZ6SkX3eFJ6FkOzta2fn + +7S2ZPQf89Mro2SYXZC5FI2C3BjVstIXxPaIWepHL6u6rB56CdC8OlUUWF+ODJ9VF + +F4Wi+UYEVC3mR5A0W33OtmpcyqGN6GLT7JPVmAMc4XTIHLbl+HIWoRZvmdRr96ci + +/t1HCzsrskJkW2I5U53FeM9Ho80XRUGfxo2YNGuxVVGis/rxazfqbHsPaQTreRat + +aYhmuo4dHN2rVHvncCg6M14qK89JnIAysyirZlHHnX3QBi1CYOs1MzuSGsdts+Yb + +0EnFtrk1xFdmKiSryVP6IEqW7eNhw74OAdzMY/oDDxqRKDMeBMDHQe6acoG6hOvR + +D4HSl52emPTBZIZVdVIK945B7IcoFSWwUJotzhQzn9dOuTSJZzpp4JwyDPGxtlYT + +NBONnYxWS2rJYSWhD9bPcANOBYsuPNAJ/uN679bPr0xKunbiUGxwuS/ps8sY8hEc + +YNBcqNowqJfrZn+G2hhnDqrtSxb1y9lqX1ZPdhfYfHImUJp4pKlx5UzvN4R9laWt + +4I69pscyg7EnGG4cfNjDyWDjvsVJF3S19i4UG6WAUD6XBoCRt0S9Nigy6VcQy+bJ + +gy1DilIv/soy8tZ/S0Iy5saShYPNdjPS6s4Yy66Wky9MhzsYGX9CI9cocfxh0blD + +jMy4TgEy8SgimrjGl5JKoDFhi1y4XDmg3XM08UBG7rPSTqPyaCnKwyAqcC3WLYJN + +iqZc7frnALiAeALSi3cA7gYALgB1Ev0APcNTAdAMMxYQBlVagHAAufXF7CDs/7Ev + +S+Qj6X7Uk8kdnyuMGwRyOih55G8SGFUwXFw3AbnmKgJFTaibWOKKyMQwM6sQxymz + +dVymyhjymfc3ymT0816z04HmL0zgGjfaB78A+HndqipQvcqwVVFc+n3cQgjQzAgJ + +chdyFxvVyGU87+mNUxUm8nnN6BQ5c66k1Bn5DS3LQlevG/iyt6PadAnss5W5CPTN + +H6+T3a7MhKH1Xfan4IzfGVk/fG2LRBmEIBS6Y0y1m5kyPns9dUWfLbdMvxcRZkuY + +sW+8ViaCsdHLWs+Jb9A7cy+kyNoKi85nPbVfTdmDXnQJJLLKleOEmiz0XDi6oWTQ + +x2yE5Bc1qiZAWXid4Xfi7ec2XT8r+XfEGsgyUGNkB1mSlTQnngL8rmweYWzK5EWH + +VSo5Lg7UHTK1cYV8zPaZi3RAp7dHa/s8VHyJNPnP88hzIcMtHysToXqgwkGTK3x4 + +t7UKyn88Wgas0xmy8VMhSo7rTGgP87rC7PG6ICSM3bZ0AHXd3KnXTog7Cwcg8889 + +qftovnjqIVWPZU2sSq1lXfo8QmlPa7sSU00Ap1EmnYIC6b5qW6ahYe740de/QZbK + +7J23Y7o8msZ6Wfv8my0+uM8btldEFi4DWsegJ/IirHhcqRMuBfjhglrwLEludAK4 + +aUt/dQUt5ZDicpVVbJiPOMsFgatBJwatWRbAKsBVWHJBPGzmdqw1ZxEAL8w5FOo0 + +9LDGdVLm9OYQycYMGyIiEo/IKza2XBc2CnzJlRmdEJVWguYzqKYNzBT8riBGYGH0 + +dANzAVIfQACtfEBnUBcA9c0/7+cbFC7ftZFu8N/wloBLFeZdowwzOArjHrWkECwe + +SoQaVwVi67nnCbeWPc/un8QyKKYk4qz/c++WyQ/M6vy1enjfdSGJUw2qYiRfJGNW + +QGBKMP0ljWgBm0CCAW0MnmNKZ+H4KxnnQLaYrtUyhXdU22dsbfM5x3dwHKK50mQ0 + +0C78o65nvM2+rFObPmXnecXgbWAqnM3kGJA19aRMxtHIdeKGh7YxiSC1XKDa75nE + +o/kHVi4anHM3bXY5eAXLUyrWiM7Jq3a9pmPa/Wn6xUlHIoz5nAbccWvC/FnblZhb + +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 + +DAUjfbsVinzK+1W8CXKqWZo+a7/atstbOlPbhRNIK07y50LTiuxI9ssO6uOzotzm + +TQn8u7smOK9KTzrMU+uzxsww5fLKpIxB6/UkYOsYMylRmDLDIER72yVixO6MOHv4 + +e0ZaCTrUK1Q6ZLuCUyc7EztR2vHrbtEaUhS6O+W0ejOygpB2S2e87dlkqVbTQKBg + +WT+JKrPmvMgZSRrzXWExEFpg2ot0KGzzyqV4y5OIWsBJzVE52r5KjVR+Sp8zcHWn + +uvlBwjrro3LwQ33zHHBrbTt9mk+7Ryv5c5jlOZJasltNXNmM6N3BnUGR8qfzMAFx + +AHmIYgEkyh3Ak0h1+ZObpsP3IOwUudCSDVOQGNrh02bxyDnETEugKLL6K9kyLBMM + +Zak8ACrBOlQ1YHrqujM7trIguyArkHpviuGrLjuv29d9tCRQEe/bqZvk2tL5gCCr + +O3/qazugqzQh/MqD2uxbg7ueKo1bg5qH/LMaMDrAO0G6u+XXqsCN/9pEtUrq1nuk + +e8BshBuMa/zlTCototpcVppa6vHLrCELSw+bV2XOk1cDoV1haufl2mJttXLS30so + +MhbqUewL7e0ZqTp7FG3zJ1ts8Og6JNKUeuBN++Q7Sy5AfnrWOzQh/ntmY6e8i/y5 + +q/ekpHpaON0iBlVwM1AT8Mwdwgg6/nIzuxg7t0My2t4xoKKwoEQavF0Je1kgnFMQ + +1ApLuL1Je1ll3U3Luh0NZ70YA7rqYrOuFb0huiv64xXQCmrj6mYBYhpWC3YNi+rR + +JakakzXT6p158jtnyuFjabtf0Ltc2tppMNPDeuMTNWiUpAO3vCRgfossdRx0vs0v + +vda9wOADIF9ducCg0ePQwGuhfCJ79zukS6hbCXppeiV1dDr7i1qzPGRgAQbw3AEG + +YHGLZIT+gGIBnoDdwL4K3cEkABhcv7rStWWCRw1lwGXAO9JYUCp77LgwlB+w+33Y + +GrJtYdN5u3pNWnvTOxkiOnsaulKbmrqJm9Ka2rsuarKb80GDkWSkjStCg6I9SVHD + +Ot/DN2stK33bRrpOEZREyKX3a+Z78LtNI9HCGqrxkliqy9TrkJA7i8w/0k/ibFVA + +6nWiZDV1C/QTK1u2Jbnrykt5nH9CtWoTK5Z9NCtBe8UceBr/I+bKQlXQ22dbWqNu + +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 + + +``` +%% \ No newline at end of file diff --git a/!Załączniki/20221123102116 2022-11-23 11.25.49.excalidraw.md b/!Załączniki/20221123102116 2022-11-23 11.25.49.excalidraw.md new file mode 100644 index 0000000..9ed96a0 --- /dev/null +++ b/!Załączniki/20221123102116 2022-11-23 11.25.49.excalidraw.md @@ -0,0 +1,3256 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +%% +# Drawing +```compressed-json +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 + +N+PiYCTq3ugVaohnLBzjItDpAhl1rgUFiGhV5NDH1STHahIsmsOCHvLNKmfP5VKu + +y+eCi8pjmqVIxM2BBWxGatgX0qWEHdwc9OLaIGQUYy+6x1AAzQcAANEgIoDNDWDi + +nAmAAM0GQS1QA/IBw6Gm7+AGwGw8YsclIUH/gw6us22pKsAS7+Glhu/sjqq4GiIZ + +wE4iE+/njO+l6uvuI25naiQefB4kGXwWnup4FXCK1gnCQr3MnyCkFAaH0kenAqQX + +ohakEGIZWgb248wdFufMHmISI+wkrI3r/mRkGECuZB9W5Ojix+7J4/Fg42aR4r/r + +a+AJaKJj1+a84/Bv/SoPzEXuBBZcSVhkZclHbY4Dmus55oIRL8jwybbgRyG4rKsj + +B4S64svg44bAitHjSYgsi9nm32GIHG7qQhy55A/P9uDn5CAJKQdQDZQbgAXRY/IJ + +4IvuzQPhCAlIqPQkI6EM4wwWrYS8H5tD3UbDblQU6syAhvqLPmVQHLQfPm4MINQX + +yBRMECgfjuDz5HwYK2J8Gpfmh+5VpDIYohRc7XwXnQ8FAUCODSvCqBbuBIZpDudC + +VBuiFn+vohH8GRqJdQdKRw3iheVe60frgBKL70DLJiOmLNWO6Bxj5IFlshCJI/Ek + +N+pgGAhkLMWqG4opB6fB7slnsicj54MiweDoH5vtFUohZuAVaBKL6KHqNm5qG9gp + +ahvQEA4v8uY9DuAVYBaqEHwn5iCGpqHl6hRuLBoaNGb8LeoYoq1KFJvvahIIaF3n + +6cMmIBoXMmRir4lomhEaFE9KkhqPBpoeYWN1htARtB/4DZoRqhEu6k7GahRDwhaB + +LMsTbD2K1es7a22guun0gQgT+uEaoivqnmA3KXtq2o4IE7ppKU0ZpcbunBbVaRsq + +ruqGTW9O2OHAIljh2O+rxccJy6yHYYdkWOZBSsqNu+tTy31Cr+Qux8BpU8fTzj3r + +7UUqKNPGn0LTzOFtuuDLJPQTChP96ZodWwnLj7rK9qC+iXJF3maICxAKQAFACa8m + +b2zAApgPHAsYD52nlBUljX+PVAPRD7AfpAazY5yiwBPFZFtAo6xcoPXrB++8EQHo + +fBNrpsoSl+YoFUwV1BkoG0wUohoyFS8Jv0ZJT4ftwgXMZAwJR4rZCJ/kSO0qFOns + ++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 + +AjCI2IWAC54BAAgAA8G4AACPuWAJYAjpSqAIwllACoAFDulCWUgDQlzADmgOaA/T + +CUANnAISXOADElOAAMJXkAiSUE0VQlqSXmgAAAFNIAsgDyAEoAFCUlJbQl9CVqAE + +wl2gA6AGwlHCWpdHmAvCX8JcOAwiUIAKIl2QCkABIlEpjSJbIlkowKJUolKiXR6v + +bAkgAaJaQAz8XaJbol+iVcKAkARiVMIIaApiX3UnAAFiVWJTYlqiD2JZSATiWF0P + +olAACUVeBugEOANNLBJVX6bFIXANHw8ai9JaDEUYBQAMHMBADXJb9OvATqgLKA2g + +BmALgAy4BMADhRVgSwgBcAy4AEANklF8USAJEl0SWxJQUlTcBFJckl1CVKgOklEA + +CfqVDAJNECKPHAwtAijJIAgQBbAAvoYcUIkQthYIX/4WKoM+RgJfDQB3CkygqZ/j + +wvIWm52tAdxkXWJ9lJObeGdcn+qQ3JYE4u8P/FRUUqBsAFx4FPhcaZYTgd1gf4RT + +m4jhNkFnEmepolPRl/hQ0KJUHwBdKRGi4shcx+SZ5ayWg5J5EbGehFlXmXIUlW9x + +mpmVKOblTP7EdZDd4uIYzxfbjGjgeC3bFWUJVucd6Fdr3Gg4liSNBRSb74kdMF4m + +DBOgjuozH/VNJR+aFUWXwRAlboUBrKHg7XUaZQAHo0VLROojJ6hXN+eL5pHlKFmJ + +RWxHT2fqX5oePGjI7UoPeQ3CwtxW4MdKXi+KmlVsTi8Q4Z64562hoJtMCnRfUckR + +yFcWSsUaLQNM95V0gtaRj5rjSUePFYkKmuNHieQ/l0rB+WVTS0mUSMS2Cx+f+WPW + +QtpbceNaWMua2lk0K84e+WikD42dNCWbGAnttgAuDVofNWYTis+WSsC1ZaOULSM6 + +ULpWsMRHjLpR2WnKnTluulwKlo+Y+WdKwDYJ+chjGmMd6iYVFmRPNx3kmQoa65mI + +EHxb7KoDDmwRkh0QmggM0A8cAL6K2AkQAEqDhJkQBiAIExTpTxBX+QcljX6A72g6 + +CVbNwhwdiPAlVB9y6vcgii54XmuiQ+mIVpOZFpGQgPaZ6GXKWq6WBxfKXJmDKIDO + +5UaYR+nBL+olTE4qU9CZKlxopSxZbpMsU9uea2BoG74s2YETqhqlpFzkWjaZ4FYU + +ntNElSF/CHdjwAkgDThsQA8cCScUFq58WgxAQEm1RtQEDQt5bPsRdeWnIxarJ087 + +oZBYCOyU7VkZeZ+QWIJdqZt5ksxfeZn17UwRl+EkEvmZagFCCL3HkEM1Afog1aa9 + +wKwEpw9voA6WWgBGVA6ToZUqUTkb/BNdB8Zc4AmSUUAKCloSVfwB4lCQBeJYIqaq + +AeJf4l9IBBJbIoISWvJbclRgD9upfFTABPJaoAgWXvJVnRNtBnJb8lawARlF8lHC + +W/JfxeuiAlmIClkQDApYpuOSUSAEilfgXPvqUA2yShuZ4AmADSkNryRIo8APKGlP + +Ag6oSlRokxwoZowBF2Yb7uSbmUMNnx5JFWRlfCJdZd6ZkxtMWFsfTFYWlXhViFCI + +m3hSIB6mUKIUDx3ompArj5m9yI8t+ZeeBq3C8s+GWzJbaZQFlSpashQxlkZUA5xy + +LhLBYZHWXpdrjx2IZjcKEiI76wxc9OJ4C3igGKeIqxAMoC7gA6AD8gtql5bPZlp+ + +izIOkJN3FcGVVExdHvsYCOZ5lRCsFpvWWy6efZEPaX2Spl19mcpRzFdRm/Xtgldo + +AU6g1wCeDkhVaeQXJKXPxwn2E7bBZlw9ErZcaKa2XgWZcloSV0JfkljSWUAIilSC + +BZJdll6AC45XEleQCE5b4lniXeJVLoXmV+Ja4AvmXfNHxlkWUSAMFlDyVhZc8l8M + +pEAG8lJIAfJTfAsWWKgPFlpwCJZT8lioApZVD46WWZZc5lzgBk5dClBOUZJZHA4A + +DoQC4AEphMgCbA3AAxwNAAtiVwIA4lD3a8IDQlMOj8QfCAGQAm5ablqIAQAO8gYi + +VmAIaA+YB8Oppx4Q4W5SIAKqA25cYAPyAl8XrmjuVW5VAALuU6AD7qlQkOAJblzu + +W25UyAxQUFAJ7lQeXGACHlp8Hm5YHlH8A+5YnA1zbh5XHltuVkvHzKSeXW5bblDN + +DeZQzlgSUhmOnl3uWZ5W5lHmU+JQHlTuXJ5cYAzmUs5egAbOUx5WXlGeWR5WBxkO + +XRZaXlXuU+5WrlpABbmi7ObAB08Gd2qWU4SPnlPuUVgPiAzFIggD3luACikJSAo+ + +W15a3ltuVQ7oqAlIBR5cFhP4aejCQA7mU05azEFuWPwEDOmaD5gBrlEcDgAIKQYM + +SZ6MAA++URwEAAA= +``` +%% \ No newline at end of file diff --git a/!Załączniki/Drawing 2022-10-24 12.04.19.excalidraw.md b/!Załączniki/Drawing 2022-10-24 12.04.19.excalidraw.md new file mode 100644 index 0000000..a0439fd --- /dev/null +++ b/!Załączniki/Drawing 2022-10-24 12.04.19.excalidraw.md @@ -0,0 +1,322 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +nr=1 ^KkSSZxCq + +nr < rozmiar ^xn1vEAqy + +suma=suma+liczba_slow ^ZPkJIjUY + +nr++ ^KZgkLrH5 + +start + ^Qxbb9tdK + +nie ^4dLDFZGH + +tak + ^Ltm7HGE7 + +%% +# Drawing +```compressed-json +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 +``` +%% \ No newline at end of file diff --git a/!Załączniki/Drawing 2022-10-25 12.22.41.excalidraw.md b/!Załączniki/Drawing 2022-10-25 12.22.41.excalidraw.md new file mode 100644 index 0000000..f12e57d --- /dev/null +++ b/!Załączniki/Drawing 2022-10-25 12.22.41.excalidraw.md @@ -0,0 +1,1580 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +%% +# Drawing +```compressed-json +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 + +lQejSMAzoGAAXWshgQAA +``` +%% \ No newline at end of file diff --git a/!Załączniki/Drawing 2022-10-25 12.31.32.excalidraw.md b/!Załączniki/Drawing 2022-10-25 12.31.32.excalidraw.md new file mode 100644 index 0000000..eba1470 --- /dev/null +++ b/!Załączniki/Drawing 2022-10-25 12.31.32.excalidraw.md @@ -0,0 +1,618 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +%% +# Drawing +```compressed-json +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 + +CA2DMAmP8QgdDlgMPeC5LYOwWE8JsuwhqaB7ipVCTZPh9QBF8mEd5MRfkJFSPhOF + +eRYU8jKLxFXdRuJ9oZB0S2+kGVzGlQgFyIxwYTGBgMZY2UNjFS1XsagP1DhnFtTQ + +CMgQHjwQDXxNkqCjiAl/FGsE1h01wk9qiStZaRVVqRg2k+okyTdrxHSUdCOOSdwX + +UBUU7clZSmQots9C8/4ll2p7PUsAjTWbsx6Z1JG4ysNnM2fh1505D04R6aR8GlyG + +kdJ7BRmcVH0NfOgz83QmtTwAqukCg4ILHwm1fHsOD5SHDW34yCO2h9MijwSFksk6 + +EyX4tTl4520EBUStZU3GV5pq42sldSNMqcvaJFtYfak4Di7MuM12BCacMjxyyKS/ + +VOEb5k0IsRIkz8KLuDfpQL1/hODcFIwwb1LEgHOGlYStCZpI38VKDGqFvF404gQD + +0QYJwTi3AQP8eg5xGRCAyCeKAalGT4GmGWkyjCJDVssnyedtkOH2Tnbwir6BO0eW + +EF5UR4JxEBWkZnEKCi7ijqnSaSdCUoKzufZu9AK6eTGIKhuxd9RyqVWqnY+r4IJl + +SC1C409BoHo5jiMhFIYC72QECWNRJz6Zo+jfegaJRIQxfrib+ra/6dqpP2umDJVK + +hoFgg5xqDDgYNxfg1+SpSGNkodXD0vERHqNDMo99D56GaNQ+GT0g5PSLRw5Rwj3p + +OGuZY4J/YBjG4rk7hY4eP5xAdaKgBwbe8oKnwwvfPF4TLOIdWepHjbJJ8t6J0s+i + +9IocTpNXPgqxzVnt4CowtptTKdgI5ywpkAXkruJITDqfWe7cp7Iw6sjNO8rL4B2c + +58u+bntwefdV5z1v8/Nf0JXb/+gawuHcU5BK00WYEg6E5AJBEAhBhjgIpAAStMeg + +Qg5JBGYJ0CCLRsA4goPQMM0kysVrMlV2tXUpoNs4c2q7zXXIsnckSbtnXv7dckYF + +GRQ7QqKKGwlMOo2VHJGbTrya+jFsSBm9yObwoFuSiW1Ylbti93rd4C249l5UDUj2 + +3tEXWckJeOGg+oJr3s9ttfeXxaH6YlPZ/a9Z0ST3v7eA37K04U8mQduvdGssaweI + +fE9cr6y4emy1J6jpzEs7nw+Q1zQGWQ2GgMpyxGyygMayv+kOCwdGOIIBkBz+vSZ6 + +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 + +UoDKBaEgiHAAnUT/mWAKHVAGABVkgiCAA=== +``` +%% \ No newline at end of file diff --git a/!Załączniki/Drawing 2022-10-28 10.29.21.excalidraw.md b/!Załączniki/Drawing 2022-10-28 10.29.21.excalidraw.md new file mode 100644 index 0000000..e5c446e --- /dev/null +++ b/!Załączniki/Drawing 2022-10-28 10.29.21.excalidraw.md @@ -0,0 +1,1918 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +%% +# Drawing +```compressed-json +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 + + +``` +%% \ No newline at end of file diff --git a/!Załączniki/Drawing 2022-10-28 11.47.05.excalidraw.md b/!Załączniki/Drawing 2022-10-28 11.47.05.excalidraw.md new file mode 100644 index 0000000..7692299 --- /dev/null +++ b/!Załączniki/Drawing 2022-10-28 11.47.05.excalidraw.md @@ -0,0 +1,906 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +%% +# Drawing +```compressed-json +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 + +ZxwgPyCGAWlUCcwTAF0AAwAYfczQADOwEkADAkgGwgvbWx+MNs/jhIzAdst+C7L7 + +h+ywyUcpeEOAWMZIBGOctUTwm6FDgX4csiJAzVAR+WrSx5J0uyg9LfDAy+Pt4GT7 + +U8Iic6zWTq2kCGW1l3gLhEnh5p6TDgdrYNq32wqete+hFe5aRU12UVw2tFaNsJQ+ + +RpBv+CW5HFMGsj5t65OGlYPu02Gkzll3mbeYptbmkze57m/VyTO4Gx7HNwoXTfnu + +CHGISN0JhvbesPnJ6O9vC9jeE3/6bxFNue/GYZsNNIzsRcGxfbQNIR8jv4IA3lcX + +tYHEbe9l2pmLStHXSidU9ordZdqszKd9OrmehXhY91yDoNvCs/fx37W4N/i+tTdf + +geYpsZ8zFazwrY2Y2QHRi+mU1JOI+r+WwQzFLg/iLoOjFmY1I9g/g0UOG1ADwgqg + ++zTWMekOqmIZlf6RAPPi415B/REhwJX+kJDr1D5DwoMOFIyl/+9w56QiPvyXDsjX + +nK7lIPZHgD8aTRTDWNW/tXtbFqVbocGyvpcBKHAbTXt33sWTdXGy1cWRkOYF/h0O + +VQ6UJA44Hij3QhPaVGHlfU/h6o5RS5sX2iOfD1844ecdpjB6mDwimldu0WO+zdqk + +6fY5vWE61dF2wKFedqurn9OV0xwmE+LOBK2btXVA44SieAa0kETpqfl2yeB00r9U + +YnWzbIMFOisWjiR7TDJw1OHHUZ4Wxt3GNyat+ktp3aRJluqamhHu4/krbaG+6NjD + +ALY7wGkFa3RStodkLluKkv1eJFm0ixIGwDMBFSzAf4P6hdh7xMq2QegKfEkA8A/+ + +FAf4InFduBai9vxjSYJfL3CXfbVe/2zXoOVENy8iWqS1Cf8rtZYTkdq5dHZuU0gg + +48d3LYwOBHq9XlOJ95d5NH2Z2CT2dok7u3Tk7nSTgK/M6zca1DheUqQWKQ5Zbudb + +9E3WrXq5Z15N2BtBIzQW3Z5MuJcEkpfy8Kb7s37grQ9iDnASt0vikznK7OpyovPP + +6qnsrI836cV0v77VvRjg3eIVM9jHr79o+8NLOtY2+Xg4jJ96ZieIbpVV9wW2NKVd + +Ea9x7Z2V/E610fn2bQr2Ubq9s5kHwj+kczqq/Y4mucj199GJiS1dhnntmJUc9q8+ + +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 + +afY4iog6U6o1rWqYOzOs2rMs0pLGd0El2FGo0gE6oLczq2Zs/5wwY0j6AGQBACCB + +pgOVhXgNhf3EyoBKusvbqDmr6o7zl0mxro6hijsojaeEkGpY6wa4fJHqJFCmMoFu + +OwLHAgIvbZP0qkarnmZi70zNofSBeTYt+b6tVPw3KPU5simRpnSu3ikyalTu31zi + +lyvuza27JqRbQoOsCbaim4FJfzjoyHKntyumUw/LLO0bvnCw/Krs5sCuiK0Jbv48 + +rp87FutqLq7eGxqpg8L2tUTa6p+D9rKxCdLNQ4zVWfKtxTdZb4rz8uuhCsfbMDOn + +V86JiT3r1jFob7vx1/imLvDo5u7aB/bCndPkSq6M60smCuWpaQRLQypPpHERa0Cs + +a7TCVV2IampMvqnoQOhOsySem/bySzJG9OuTzciqipzrrvW9HQTOQD0FwhFOyPRm + +asOl3BxB+QZoFhj2IjYVwBJgfkA80UqFwGmBpgDYT6BMqbEFJ6q4wSIp7a4+jt7r + +GO/uuY6d0mNr1Slk/QVmLDIhKCkSPuOer06R4vnuCaBe0JqF7wmyTupNomo9lk75 + +eX5DS5KIe1qU6zE8/MV6qa5Xq0662tXvRcT4gprPiteyqVba3ivXtIUuvCejfzFK + +I0uRZztJFJN722orGDKlvLFJ1CbHS7tVyPBW3pq79Q6D2IH/ulIvA7lq4Hsb7oO6 + +Rtg7ZGtPNGbGkcZobAmQO0COK++4soH6mgdoHwB/uH3DmB8AOYDgB/ucBiMAVSUg + +Coh6k6+BX7FlH6vX7u89soBqzmnfsUr6e/fvHd0EcfOPS2elrXZldKqL12ThO/ZM + ++bFy8Tv0isazcvF6xesQXxBR4HBF/TIWq7OhaRQqtoyazyx7KAGdOkREPwHigzub + +bte14t173610Pd61Yr1FXaM+w2NCH3y53ta7v6v1BD60uokgXD0+cbrfVkg3cFPa + +Aslg2QL6PX3s5aFsXf0Dh3CZ2Fm6T/HIbKGWM6IblYPMr0oKG/sNBu960dDIZ41Y + +umolKdE+zOlh1reyXX7E3tJ7VV1uCgYc64+hjM1d7tKGM0d78OJKIe1sUjb2r6um + +wHsoHRPagewiZG4Zrb7CA4qWtad8BEAngL4PuGoikergYkA5gPoCCB/uIQAZAVSG + +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 +``` +%% \ No newline at end of file diff --git a/.obsidian/plugins/breadcrumbs/main.js b/.obsidian/plugins/breadcrumbs/main.js index 76b71a6..b723ae7 100644 --- a/.obsidian/plugins/breadcrumbs/main.js +++ b/.obsidian/plugins/breadcrumbs/main.js @@ -15824,76 +15824,9 @@ var import_graphology2 = __toESM(require_graphology_umd_min()); var import_loglevel13 = __toESM(require_loglevel()); var import_obsidian9 = require("obsidian"); -// src/Utils/graphUtils.ts -var import_graphology = __toESM(require_graphology_umd_min()); -var import_graphology_traversal = __toESM(require_graphology_traversal()); -var import_loglevel4 = __toESM(require_loglevel()); - -// src/Utils/HierUtils.ts -function getFields(userHiers, dir = "all") { - const fields = []; - userHiers.forEach((hier) => { - if (dir === "all") { - DIRECTIONS.forEach((eachDir) => { - fields.push(...hier[eachDir]); - }); - } else { - fields.push(...hier[dir]); - } - }); - return fields; -} -var getOppDir = (dir) => { - switch (dir) { - case "up": - return "down"; - case "down": - return "up"; - case "same": - return "same"; - case "next": - return "prev"; - case "prev": - return "next"; - } -}; -function getFieldInfo(userHiers, field) { - let fieldDir; - let fieldHier; - DIRECTIONS.forEach((dir) => { - userHiers.forEach((hier) => { - if (hier[dir].includes(field)) { - fieldDir = dir; - fieldHier = hier; - return; - } - }); - }); - return { fieldHier, fieldDir }; -} -function getOppFields(userHiers, field, dir) { - if (field.endsWith(">")) - return [field.slice(0, -4)]; - const oppFields = [fallbackOppField(field, dir)]; - const { fieldHier, fieldDir } = getFieldInfo(userHiers, field); - if (!fieldHier || !fieldDir) - return oppFields; - const oppDir = getOppDir(fieldDir); - oppFields.unshift(...fieldHier[oppDir]); - return oppFields; -} -var hierToStr = (hier) => DIRECTIONS.map((dir) => `${ARROW_DIRECTIONS[dir]}: ${hier[dir].join(", ")}`).join("\n"); -var fallbackField = (field, dir) => `${field} <${ARROW_DIRECTIONS[dir]}>`; -var fallbackOppField = (field, dir) => `${field} <${ARROW_DIRECTIONS[getOppDir(dir)]}>`; -function iterateHiers(userHiers, fn) { - userHiers.forEach((hier) => { - DIRECTIONS.forEach((dir) => { - hier[dir].forEach((field) => { - fn(hier, dir, field); - }); - }); - }); -} +// src/AlternativeHierarchies/CSVCrumbs.ts +var import_loglevel5 = __toESM(require_loglevel()); +var import_obsidian4 = require("obsidian"); // src/Utils/ObsidianUtils.ts var import_loglevel3 = __toESM(require_loglevel()); @@ -16100,6 +16033,77 @@ function isInsideYaml() { return false; } +// src/Utils/graphUtils.ts +var import_graphology = __toESM(require_graphology_umd_min()); +var import_graphology_traversal = __toESM(require_graphology_traversal()); +var import_loglevel4 = __toESM(require_loglevel()); + +// src/Utils/HierUtils.ts +function getFields(userHiers, dir = "all") { + const fields = []; + userHiers.forEach((hier) => { + if (dir === "all") { + DIRECTIONS.forEach((eachDir) => { + fields.push(...hier[eachDir]); + }); + } else { + fields.push(...hier[dir]); + } + }); + return fields; +} +var getOppDir = (dir) => { + switch (dir) { + case "up": + return "down"; + case "down": + return "up"; + case "same": + return "same"; + case "next": + return "prev"; + case "prev": + return "next"; + } +}; +function getFieldInfo(userHiers, field) { + let fieldDir; + let fieldHier; + DIRECTIONS.forEach((dir) => { + userHiers.forEach((hier) => { + if (hier[dir].includes(field)) { + fieldDir = dir; + fieldHier = hier; + return; + } + }); + }); + return { fieldHier, fieldDir }; +} +function getOppFields(userHiers, field, dir) { + if (field.endsWith(">")) + return [field.slice(0, -4)]; + const oppFields = [fallbackOppField(field, dir)]; + const { fieldHier, fieldDir } = getFieldInfo(userHiers, field); + if (!fieldHier || !fieldDir) + return oppFields; + const oppDir = getOppDir(fieldDir); + oppFields.unshift(...fieldHier[oppDir]); + return oppFields; +} +var hierToStr = (hier) => DIRECTIONS.map((dir) => `${ARROW_DIRECTIONS[dir]}: ${hier[dir].join(", ")}`).join("\n"); +var fallbackField = (field, dir) => `${field} <${ARROW_DIRECTIONS[dir]}>`; +var fallbackOppField = (field, dir) => `${field} <${ARROW_DIRECTIONS[getOppDir(dir)]}>`; +function iterateHiers(userHiers, fn) { + userHiers.forEach((hier) => { + DIRECTIONS.forEach((dir) => { + hier[dir].forEach((field) => { + fn(hier, dir, field); + }); + }); + }); +} + // src/Utils/graphUtils.ts function closeImpliedLinks(real, implied) { const closedG = real.copy(); @@ -16323,107 +16327,7 @@ function getRealnImplied(plugin, currNode, dir = null) { return realsnImplieds; } -// src/Relations.ts -function addSiblingsFromSameParent(g, settings) { - const { userHiers, treatCurrNodeAsImpliedSibling } = settings; - g.forEachNode((currN, a2) => { - g.forEachOutEdge(currN, (k, currNAttr, s, parentNode) => { - var _a; - if (currNAttr.dir !== "up") - return; - const { fieldDir, fieldHier } = getFieldInfo(userHiers, currNAttr.field); - const field = (_a = fieldHier.same[0]) != null ? _a : fallbackField(currNAttr.field, fieldDir); - g.forEachOutEdge(parentNode, (k2, a3, s2, impliedSibling) => { - if (a3.dir !== "down" || !treatCurrNodeAsImpliedSibling && impliedSibling === currN) - return; - addEdgeIfNot(g, currN, impliedSibling, { - dir: "same", - field, - implied: BC_I_SIBLING_1 - }); - }); - }); - }); -} -function addSiblingsParentIsParent(g) { - g.forEachNode((currN, a2) => { - g.forEachOutEdge(currN, (k, currNAttr, s, sibling) => { - if (currNAttr.dir !== "same") - return; - g.forEachOutEdge(sibling, (k2, a3, s2, parent) => { - const { dir, field } = a3; - if (dir !== "up") - return; - addEdgeIfNot(g, currN, parent, { - dir: "up", - field, - implied: BC_I_PARENT - }); - }); - }); - }); -} -function addAuntsUncles(g) { - g.forEachNode((currN, a2) => { - g.forEachOutEdge(currN, (k, currEAttr, s, parentNode) => { - if (currEAttr.dir !== "up") - return; - g.forEachOutEdge(parentNode, (k2, a3, s2, uncle) => { - if (a3.dir !== "same") - return; - addEdgeIfNot(g, currN, uncle, { - dir: "up", - field: currEAttr.field, - implied: BC_I_AUNT - }); - }); - }); - }); -} -function addCousins(g) { - g.forEachNode((currN, a2) => { - g.forEachOutEdge(currN, (k, currEAttr, s, parentNode) => { - if (currEAttr.dir !== "up") - return; - g.forEachOutEdge(parentNode, (k2, parentSiblingAttr, s2, uncle) => { - if (parentSiblingAttr.dir !== "same") - return; - g.forEachOutEdge(uncle, (k3, a3, s3, cousin) => { - if (a3.dir !== "down" || currN === cousin) - return; - addEdgeIfNot(g, currN, cousin, { - dir: "same", - field: parentSiblingAttr.field, - implied: BC_I_COUSIN - }); - }); - }); - }); - }); -} -function addStructuralEquivalenceSiblings(g) { - g.forEachNode((currN, a2) => { - g.forEachInEdge(currN, (k, aSis, sis, _) => { - if (aSis.dir !== "same") - return; - g.forEachInEdge(currN, (k2, aBro, bro, _2) => { - if (aBro.dir !== "same" || sis === bro) - return; - if (aBro.field === aSis.field) { - addEdgeIfNot(g, sis, bro, { - dir: "same", - field: aBro.field, - implied: BC_I_SIBLING_2 - }); - } - }); - }); - }); -} - // src/AlternativeHierarchies/CSVCrumbs.ts -var import_loglevel5 = __toESM(require_loglevel()); -var import_obsidian4 = require("obsidian"); async function getCSVRows(plugin) { const { CSVPaths } = plugin.settings; const CSVRows = []; @@ -16854,6 +16758,104 @@ function addTraverseNotesToGraph(plugin, traverseNotes, mainG, obsG) { }); } +// src/Relations.ts +function addSiblingsFromSameParent(g, settings) { + const { userHiers, treatCurrNodeAsImpliedSibling } = settings; + g.forEachNode((currN, a2) => { + g.forEachOutEdge(currN, (k, currNAttr, s, parentNode) => { + var _a; + if (currNAttr.dir !== "up") + return; + const { fieldDir, fieldHier } = getFieldInfo(userHiers, currNAttr.field); + const field = (_a = fieldHier.same[0]) != null ? _a : fallbackField(currNAttr.field, fieldDir); + g.forEachOutEdge(parentNode, (k2, a3, s2, impliedSibling) => { + if (a3.dir !== "down" || !treatCurrNodeAsImpliedSibling && impliedSibling === currN) + return; + addEdgeIfNot(g, currN, impliedSibling, { + dir: "same", + field, + implied: BC_I_SIBLING_1 + }); + }); + }); + }); +} +function addSiblingsParentIsParent(g) { + g.forEachNode((currN, a2) => { + g.forEachOutEdge(currN, (k, currNAttr, s, sibling) => { + if (currNAttr.dir !== "same") + return; + g.forEachOutEdge(sibling, (k2, a3, s2, parent) => { + const { dir, field } = a3; + if (dir !== "up") + return; + addEdgeIfNot(g, currN, parent, { + dir: "up", + field, + implied: BC_I_PARENT + }); + }); + }); + }); +} +function addAuntsUncles(g) { + g.forEachNode((currN, a2) => { + g.forEachOutEdge(currN, (k, currEAttr, s, parentNode) => { + if (currEAttr.dir !== "up") + return; + g.forEachOutEdge(parentNode, (k2, a3, s2, uncle) => { + if (a3.dir !== "same") + return; + addEdgeIfNot(g, currN, uncle, { + dir: "up", + field: currEAttr.field, + implied: BC_I_AUNT + }); + }); + }); + }); +} +function addCousins(g) { + g.forEachNode((currN, a2) => { + g.forEachOutEdge(currN, (k, currEAttr, s, parentNode) => { + if (currEAttr.dir !== "up") + return; + g.forEachOutEdge(parentNode, (k2, parentSiblingAttr, s2, uncle) => { + if (parentSiblingAttr.dir !== "same") + return; + g.forEachOutEdge(uncle, (k3, a3, s3, cousin) => { + if (a3.dir !== "down" || currN === cousin) + return; + addEdgeIfNot(g, currN, cousin, { + dir: "same", + field: parentSiblingAttr.field, + implied: BC_I_COUSIN + }); + }); + }); + }); + }); +} +function addStructuralEquivalenceSiblings(g) { + g.forEachNode((currN, a2) => { + g.forEachInEdge(currN, (k, aSis, sis, _) => { + if (aSis.dir !== "same") + return; + g.forEachInEdge(currN, (k2, aBro, bro, _2) => { + if (aBro.dir !== "same" || sis === bro) + return; + if (aBro.field === aSis.field) { + addEdgeIfNot(g, sis, bro, { + dir: "same", + field: aBro.field, + implied: BC_I_SIBLING_2 + }); + } + }); + }); + }); +} + // src/Views/TrailView.ts var import_loglevel12 = __toESM(require_loglevel()); var import_obsidian8 = require("obsidian"); @@ -18667,11 +18669,11 @@ async function drawTrail(plugin) { } // src/refreshIndex.ts -function getDVMetadataCache(plugin, files) { +function getDVMetadataCache(plugin) { const { db } = plugin; const api = getDVApi(plugin); db.start1G("getDVMetadataCache"); - const frontms = files.map((file) => api.page(file.path)); + const frontms = api.pages().values; db.end1G({ frontms }); return frontms; } @@ -18754,11 +18756,7 @@ async function buildMainG(plugin) { } const files = app.vault.getMarkdownFiles(); const dvQ = app.plugins.enabledPlugins.has("dataview"); - let frontms = dvQ ? getDVMetadataCache(plugin, files) : getObsMetadataCache(plugin, files); - if (frontms.some((frontm) => frontm === void 0)) { - await wait(2e3); - frontms = dvQ ? getDVMetadataCache(plugin, files) : getObsMetadataCache(plugin, files); - } + let frontms = dvQ ? getDVMetadataCache(plugin) : getObsMetadataCache(plugin, files); const CSVRows = CSVPaths !== "" ? await getCSVRows(plugin) : []; const eligableAlts = {}; BC_ALTS.forEach((alt) => eligableAlts[alt] = []); @@ -22866,7 +22864,7 @@ function addMatrixViewSettings(plugin, viewDetails) { } }; }); - new import_obsidian31.Setting(MLViewDetails).setName("Enable Alpahebtical Sorting").setDesc("By default, items in the Matrix view are sorted by the order they appear in your notes. Toggle this on to enable alphabetical sorting.").addToggle((toggle) => toggle.setValue(settings.enableAlphaSort).onChange(async (value) => { + new import_obsidian31.Setting(MLViewDetails).setName("Enable Alphabetical Sorting").setDesc("By default, items in the Matrix view are sorted by the order they appear in your notes. Toggle this on to enable alphabetical sorting.").addToggle((toggle) => toggle.setValue(settings.enableAlphaSort).onChange(async (value) => { settings.enableAlphaSort = value; await plugin.saveSettings(); await plugin.getActiveTYPEView(MATRIX_VIEW).draw(); @@ -23862,12 +23860,12 @@ function add_css14(target) { } function get_each_context9(ctx, list, i) { const child_ctx = ctx.slice(); - child_ctx[15] = list[i]; + child_ctx[16] = list[i]; return child_ctx; } function get_each_context_16(ctx, list, i) { const child_ctx = ctx.slice(); - child_ctx[18] = list[i]; + child_ctx[19] = list[i]; return child_ctx; } function create_else_block4(ctx) { @@ -23926,14 +23924,14 @@ function create_if_block_15(ctx) { } function create_each_block_16(ctx) { let option; - let t_value = ctx[18] + ""; + let t_value = ctx[19] + ""; let t; let option_value_value; return { c() { option = element("option"); t = text(t_value); - option.__value = option_value_value = ctx[18]; + option.__value = option_value_value = ctx[19]; option.value = option.__value; }, m(target, anchor) { @@ -23950,22 +23948,22 @@ function create_each_block_16(ctx) { function create_if_block8(ctx) { let div; let pre; - let t0_value = ctx[15][0] + "-"; + let t0_value = ctx[16][0] + "-"; let t0; let t1; let span; let a2; - let t2_value = dropDendron(ctx[15][1], ctx[6]) + ""; + let t2_value = dropDendron(ctx[16][1], ctx[6]) + ""; let t2; let a_class_value; let t3; let mounted; let dispose; function click_handler_2(...args) { - return ctx[10](ctx[15], ...args); + return ctx[10](ctx[16], ...args); } function mouseover_handler(...args) { - return ctx[11](ctx[15], ...args); + return ctx[11](ctx[16], ...args); } return { c() { @@ -23978,7 +23976,7 @@ function create_if_block8(ctx) { t2 = text(t2_value); t3 = space(); attr(pre, "class", "svelte-8j6nux"); - attr(a2, "class", a_class_value = "internal-link " + (isInVault(ctx[15][1]) ? "" : "is-unresolved") + " svelte-8j6nux"); + attr(a2, "class", a_class_value = "internal-link " + (isInVault(ctx[16][1]) ? "" : "is-unresolved") + " svelte-8j6nux"); attr(span, "class", "internal-link"); }, m(target, anchor) { @@ -24000,11 +23998,11 @@ function create_if_block8(ctx) { }, p(new_ctx, dirty) { ctx = new_ctx; - if (dirty & 32 && t0_value !== (t0_value = ctx[15][0] + "-")) + if (dirty & 32 && t0_value !== (t0_value = ctx[16][0] + "-")) set_data(t0, t0_value); - if (dirty & 32 && t2_value !== (t2_value = dropDendron(ctx[15][1], ctx[6]) + "")) + if (dirty & 32 && t2_value !== (t2_value = dropDendron(ctx[16][1], ctx[6]) + "")) set_data(t2, t2_value); - if (dirty & 32 && a_class_value !== (a_class_value = "internal-link " + (isInVault(ctx[15][1]) ? "" : "is-unresolved") + " svelte-8j6nux")) { + if (dirty & 32 && a_class_value !== (a_class_value = "internal-link " + (isInVault(ctx[16][1]) ? "" : "is-unresolved") + " svelte-8j6nux")) { attr(a2, "class", a_class_value); } }, @@ -24018,7 +24016,7 @@ function create_if_block8(ctx) { } function create_each_block9(ctx) { let if_block_anchor; - let if_block = ctx[15].length > 1 && create_if_block8(ctx); + let if_block = ctx[16].length > 1 && create_if_block8(ctx); return { c() { if (if_block) @@ -24031,7 +24029,7 @@ function create_each_block9(ctx) { insert(target, if_block_anchor, anchor); }, p(ctx2, dirty) { - if (ctx2[15].length > 1) { + if (ctx2[16].length > 1) { if (if_block) { if_block.p(ctx2, dirty); } else { @@ -24233,25 +24231,26 @@ function create_fragment22(ctx) { }; } function instance22($$self, $$props, $$invalidate) { + var _a; let { plugin } = $$props; let { view } = $$props; const { settings, app: app2, closedG } = plugin; const { createIndexIndent } = settings; let dir = "down"; let frozen = false; - let { basename } = getCurrFile(); + let { basename } = (_a = getCurrFile()) !== null && _a !== void 0 ? _a : {}; plugin.registerEvent(app2.workspace.on("active-leaf-change", () => { - var _a; + var _a2; if (frozen) return; - $$invalidate(3, basename = (_a = getCurrFile()) === null || _a === void 0 ? void 0 : _a.basename); + $$invalidate(3, basename = (_a2 = getCurrFile()) === null || _a2 === void 0 ? void 0 : _a2.basename); })); let lines; const click_handler = () => { - var _a; + var _a2; $$invalidate(4, frozen = !frozen); if (!frozen) - $$invalidate(3, basename = (_a = getCurrFile()) == null ? void 0 : _a.basename); + $$invalidate(3, basename = (_a2 = getCurrFile()) == null ? void 0 : _a2.basename); }; const click_handler_1 = async () => { await refreshIndex(plugin); @@ -24272,8 +24271,8 @@ function instance22($$self, $$props, $$invalidate) { $$self.$$.update = () => { if ($$self.$$.dirty & 12) { $: { - const downG = getSubInDirs(closedG, dir); - const allPaths = dfsAllPaths(downG, basename); + const dirG = getSubInDirs(closedG, dir); + const allPaths = dfsAllPaths(dirG, basename); const index2 = createIndex(allPaths, false, createIndexIndent); (0, import_loglevel20.info)({ allPaths, index: index2 }); $$invalidate(5, lines = indexToLinePairs(index2)); @@ -31656,4 +31655,4 @@ var BCPlugin = class extends import_obsidian44.Plugin { * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvd2VicGFjay9ib290c3RyYXAiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jbGFzc25hbWVzL2RlZHVwZS5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvZXMvYXJyYXkvZnJvbS5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2EtZnVuY3Rpb24uanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hbi1vYmplY3QuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1mcm9tLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9iaW5kLWNvbnRleHQuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jYWxsLXdpdGgtc2FmZS1pdGVyYXRpb24tY2xvc2luZy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NoZWNrLWNvcnJlY3RuZXNzLW9mLWl0ZXJhdGlvbi5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NsYXNzb2YtcmF3LmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY2xhc3NvZi5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvcHktY29uc3RydWN0b3ItcHJvcGVydGllcy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvcnJlY3QtcHJvdG90eXBlLWdldHRlci5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NyZWF0ZS1pdGVyYXRvci1jb25zdHJ1Y3Rvci5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVmaW5lLWl0ZXJhdG9yLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVzY3JpcHRvcnMuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kb2N1bWVudC1jcmVhdGUtZWxlbWVudC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2VudW0tYnVnLWtleXMuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9leHBvcnQuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9mYWlscy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLXRvLXN0cmluZy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2dldC1pdGVyYXRvci1tZXRob2QuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9nbG9iYWwuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9oYXMuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9oaWRkZW4ta2V5cy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2hpZGUuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9odG1sLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbmRleGVkLW9iamVjdC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtYXJyYXktaXRlcmF0b3ItbWV0aG9kLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtZm9yY2VkLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtb2JqZWN0LmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtcHVyZS5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2l0ZXJhdG9ycy1jb3JlLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXRlcmF0b3JzLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbmF0aXZlLXN5bWJvbC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL25hdGl2ZS13ZWFrLW1hcC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1jcmVhdGUuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnRpZXMuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5LmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvci5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtcHJvdG90eXBlLW9mLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3Qta2V5cy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1wcm9wZXJ0eS1pcy1lbnVtZXJhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LXNldC1wcm90b3R5cGUtb2YuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vd24ta2V5cy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3BhdGguanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWRlZmluZS5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZS5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NldC1nbG9iYWwuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zZXQtdG8tc3RyaW5nLXRhZy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NoYXJlZC1rZXkuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zaGFyZWQuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJpbmctYXQuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0LmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8taW50ZWdlci5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWxlbmd0aC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLW9iamVjdC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXByaW1pdGl2ZS5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3VpZC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3ZhbGlkYXRlLXNldC1wcm90b3R5cGUtb2YtYXJndW1lbnRzLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZnJvbS5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyLyh3ZWJwYWNrKS9idWlsZGluL2dsb2JhbC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvc3JjL2ljb24uanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL3NyYy9pY29ucy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvc3JjL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9zcmMvcmVwbGFjZS5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvc3JjL3RvLXN2Zy5qcyIsICJub2RlX21vZHVsZXMvbG9nbGV2ZWwvbGliL2xvZ2xldmVsLmpzIiwgIm5vZGVfbW9kdWxlcy9ncmFwaG9sb2d5L3NyYy91dGlscy5qcyIsICJub2RlX21vZHVsZXMvZXZlbnRzL2V2ZW50cy5qcyIsICJub2RlX21vZHVsZXMvb2JsaXRlcmF0b3IvaXRlcmF0b3IuanMiLCAibm9kZV9tb2R1bGVzL29ibGl0ZXJhdG9yL3N1cHBvcnQuanMiLCAibm9kZV9tb2R1bGVzL29ibGl0ZXJhdG9yL2l0ZXIuanMiLCAibm9kZV9tb2R1bGVzL29ibGl0ZXJhdG9yL3Rha2UuanMiLCAibm9kZV9tb2R1bGVzL2dyYXBob2xvZ3kvc3JjL2Vycm9ycy5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS9zcmMvZGF0YS5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS9zcmMvaW5kaWNlcy5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS9zcmMvYXR0cmlidXRlcy9ub2Rlcy5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS9zcmMvYXR0cmlidXRlcy9lZGdlcy5qcyIsICJub2RlX21vZHVsZXMvb2JsaXRlcmF0b3IvY2hhaW4uanMiLCAibm9kZV9tb2R1bGVzL2dyYXBob2xvZ3kvc3JjL2l0ZXJhdGlvbi9lZGdlcy5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS9zcmMvaXRlcmF0aW9uL25laWdoYm9ycy5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS9zcmMvaXRlcmF0aW9uL2FkamFjZW5jeS5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS9zcmMvc2VyaWFsaXphdGlvbi5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS9zcmMvZ3JhcGguanMiLCAibm9kZV9tb2R1bGVzL2dyYXBob2xvZ3kvc3JjL2NsYXNzZXMuanMiLCAibm9kZV9tb2R1bGVzL2dyYXBob2xvZ3ktdXRpbHMvaXMtZ3JhcGguanMiLCAibm9kZV9tb2R1bGVzL29ibGl0ZXJhdG9yL3N1cHBvcnQuanMiLCAibm9kZV9tb2R1bGVzL29ibGl0ZXJhdG9yL2ZvcmVhY2guanMiLCAibm9kZV9tb2R1bGVzL21uZW1vbmlzdC91dGlscy90eXBlZC1hcnJheXMuanMiLCAibm9kZV9tb2R1bGVzL21uZW1vbmlzdC91dGlscy9pdGVyYWJsZXMuanMiLCAibm9kZV9tb2R1bGVzL29ibGl0ZXJhdG9yL2l0ZXJhdG9yLmpzIiwgIm5vZGVfbW9kdWxlcy9tbmVtb25pc3QvZml4ZWQtZGVxdWUuanMiLCAibm9kZV9tb2R1bGVzL2dyYXBob2xvZ3ktdHJhdmVyc2FsL3V0aWxzLmpzIiwgIm5vZGVfbW9kdWxlcy9ncmFwaG9sb2d5LXRyYXZlcnNhbC9iZnMuanMiLCAibm9kZV9tb2R1bGVzL2dyYXBob2xvZ3ktdHJhdmVyc2FsL2Rmcy5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS10cmF2ZXJzYWwvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9lcnJvcnMuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbXBsL2Zvcm1hdHMuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbXBsL3V0aWwuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbXBsL2VuZ2xpc2guanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbXBsL2Zvcm1hdHRlci5qcyIsICJub2RlX21vZHVsZXMvbHV4b24vc3JjL2ltcGwvaW52YWxpZC5qcyIsICJub2RlX21vZHVsZXMvbHV4b24vc3JjL3pvbmUuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy96b25lcy9zeXN0ZW1ab25lLmpzIiwgIm5vZGVfbW9kdWxlcy9sdXhvbi9zcmMvem9uZXMvSUFOQVpvbmUuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy96b25lcy9maXhlZE9mZnNldFpvbmUuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy96b25lcy9pbnZhbGlkWm9uZS5qcyIsICJub2RlX21vZHVsZXMvbHV4b24vc3JjL2ltcGwvem9uZVV0aWwuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9zZXR0aW5ncy5qcyIsICJub2RlX21vZHVsZXMvbHV4b24vc3JjL2ltcGwvbG9jYWxlLmpzIiwgIm5vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW1wbC9yZWdleFBhcnNlci5qcyIsICJub2RlX21vZHVsZXMvbHV4b24vc3JjL2R1cmF0aW9uLmpzIiwgIm5vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW50ZXJ2YWwuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbmZvLmpzIiwgIm5vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW1wbC9kaWZmLmpzIiwgIm5vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW1wbC9kaWdpdHMuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbXBsL3Rva2VuUGFyc2VyLmpzIiwgIm5vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW1wbC9jb252ZXJzaW9ucy5qcyIsICJub2RlX21vZHVsZXMvbHV4b24vc3JjL2RhdGV0aW1lLmpzIiwgIm5vZGVfbW9kdWxlcy9sdXhvbi9zcmMvbHV4b24uanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC9sb2Rhc2guanMiLCAic3JjL21haW4udHMiLCAibm9kZV9tb2R1bGVzL2p1Z2dsLWFwaS9kaXN0L2luZGV4Lm1qcyIsICJub2RlX21vZHVsZXMvb2JzaWRpYW4tY29tbXVuaXR5LWxpYi9kaXN0L3V0aWxzLmpzIiwgInNyYy9jb25zdGFudHMudHMiLCAic3JjL1ZpZXdzL01hdHJpeFZpZXcudHMiLCAic3JjL0RlYnVnZ2VyLnRzIiwgIm5vZGVfbW9kdWxlcy9zdmVsdGUvaW50ZXJuYWwvaW5kZXgubWpzIiwgInNyYy9yZWZyZXNoSW5kZXgudHMiLCAic3JjL1V0aWxzL2dyYXBoVXRpbHMudHMiLCAic3JjL1V0aWxzL0hpZXJVdGlscy50cyIsICJzcmMvVXRpbHMvT2JzaWRpYW5VdGlscy50cyIsICJzcmMvVXRpbHMvZ2VuZXJhbFV0aWxzLnRzIiwgInNyYy9SZWxhdGlvbnMudHMiLCAic3JjL0FsdGVybmF0aXZlSGllcmFyY2hpZXMvQ1NWQ3J1bWJzLnRzIiwgInNyYy9BbHRlcm5hdGl2ZUhpZXJhcmNoaWVzL0RhdGF2aWV3Tm90ZXMudHMiLCAic3JjL0FsdGVybmF0aXZlSGllcmFyY2hpZXMvRGF0ZU5vdGVzLnRzIiwgInNyYy9BbHRlcm5hdGl2ZUhpZXJhcmNoaWVzL0RlbmRyb25Ob3Rlcy50cyIsICJzcmMvQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9Gb2xkZXJOb3Rlcy50cyIsICJzcmMvQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9IaWVyYXJjaHlOb3Rlcy9IaWVyYXJjaHlOb3Rlcy50cyIsICJzcmMvQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9KdWdnbExpbmtzLnRzIiwgInNyYy9BbHRlcm5hdGl2ZUhpZXJhcmNoaWVzL0xpbmtOb3Rlcy50cyIsICJzcmMvQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9SZWdleE5vdGVzLnRzIiwgInNyYy9BbHRlcm5hdGl2ZUhpZXJhcmNoaWVzL1RhZ05vdGVzLnRzIiwgInNyYy9BbHRlcm5hdGl2ZUhpZXJhcmNoaWVzL1RyYXZlcnNlTm90ZXMudHMiLCAic3JjL1ZpZXdzL1RyYWlsVmlldy50cyIsICJzcmMvc3JjL0NvbXBvbmVudHMvTmV4dFByZXYuc3ZlbHRlIiwgInNyYy9Db21wb25lbnRzL05leHRQcmV2LnN2ZWx0ZSIsICJzcmMvc3JjL0NvbXBvbmVudHMvVHJhaWxHcmlkLnN2ZWx0ZSIsICJzcmMvQ29tcG9uZW50cy9UcmFpbEdyaWQuc3ZlbHRlIiwgInNyYy9zcmMvQ29tcG9uZW50cy9UcmFpbFBhdGguc3ZlbHRlIiwgInNyYy9Db21wb25lbnRzL1RyYWlsUGF0aC5zdmVsdGUiLCAic3JjL1Zpc3VhbGlzYXRpb25zL0p1Z2dsLnRzIiwgInNyYy9Db21tYW5kcy9DcmVhdGVJbmRleC50cyIsICJzcmMvQ29tcG9uZW50cy9KdWdnbEJ1dHRvbi5zdmVsdGUiLCAic3JjL3NyYy9Db21wb25lbnRzL0p1Z2dsQnV0dG9uLnN2ZWx0ZSIsICJzcmMvc3JjL0NvbXBvbmVudHMvSnVnZ2xEZXB0aC5zdmVsdGUiLCAic3JjL0NvbXBvbmVudHMvSnVnZ2xEZXB0aC5zdmVsdGUiLCAic3JjL3NyYy9Db21wb25lbnRzL01hdHJpeEJ1dHRvbnMuc3ZlbHRlIiwgInNyYy9Db21wb25lbnRzL01hdHJpeEJ1dHRvbnMuc3ZlbHRlIiwgInNyYy9zcmMvQ29tcG9uZW50cy9NYXRyaXguc3ZlbHRlIiwgInNyYy9Db21wb25lbnRzL01hdHJpeC5zdmVsdGUiLCAic3JjL0FQSS50cyIsICJzcmMvQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9IaWVyYXJjaHlOb3Rlcy9IaWVyTm90ZU1vZGFsLnRzIiwgInNyYy9BbHRlcm5hdGl2ZUhpZXJhcmNoaWVzL0hpZXJhcmNoeU5vdGVzL0hpZXJhcmNoeU5vdGVNYW5pcHVsYXRvci50cyIsICJzcmMvQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9IaWVyYXJjaHlOb3Rlcy9Nb2RpZnlIaWVySXRlbU1vZGFsLnRzIiwgInNyYy9zcmMvQ29tcG9uZW50cy9Nb2RpZnlITkl0ZW1Db21wLnN2ZWx0ZSIsICJzcmMvQ29tcG9uZW50cy9Nb2RpZnlITkl0ZW1Db21wLnN2ZWx0ZSIsICJzcmMvQ29kZWJsb2Nrcy50cyIsICJzcmMvc3JjL0NvbXBvbmVudHMvUmVuZGVyTWFya2Rvd24uc3ZlbHRlIiwgInNyYy9Db21wb25lbnRzL1JlbmRlck1hcmtkb3duLnN2ZWx0ZSIsICJzcmMvc3JjL0NvbXBvbmVudHMvQ0JUcmVlLnN2ZWx0ZSIsICJzcmMvQ29tcG9uZW50cy9DQlRyZWUuc3ZlbHRlIiwgInNyYy9Db21tYW5kcy9qdW1wVG9GaXJzdERpci50cyIsICJzcmMvQ29tbWFuZHMvdGhyZWFkaW5nLnRzIiwgInNyYy9Db21tYW5kcy9Xcml0ZUJDcy50cyIsICJzcmMvRmllbGRTdWdnZXN0b3IudHMiLCAic3JjL1JlbGF0aW9uU3VnZ2VzdG9yLnRzIiwgInNyYy9TZXR0aW5ncy9CcmVhZGNydW1ic1NldHRpbmdUYWIudHMiLCAic3JjL0NvbXBvbmVudHMvS29GaS5zdmVsdGUiLCAic3JjL1NldHRpbmdzL0NyZWF0ZUluZGV4U2V0dGluZ3MudHMiLCAic3JjL1NldHRpbmdzL0NTVlNldHRpbmdzLnRzIiwgInNyYy9TZXR0aW5ncy9EYXRhdmlld05vdGVTZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvRGF0ZU5vdGVTZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvRGVidWdnaW5nU2V0dGluZ3MudHMiLCAic3JjL1NldHRpbmdzL0RlbmRyb25TZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvR2VuZXJhbFNldHRpbmdzLnRzIiwgInNyYy9TZXR0aW5ncy9IaWVyYXJjaHlOb3RlU2V0dGluZ3MudHMiLCAic3JjL3NyYy9Db21wb25lbnRzL1VzZXJIaWVyYXJjaGllcy5zdmVsdGUiLCAic3JjL0NvbXBvbmVudHMvVXNlckhpZXJhcmNoaWVzLnN2ZWx0ZSIsICJub2RlX21vZHVsZXMvc3ZlbHRlLWljb25zL2NvbXBvbmVudHMvSWNvbkJhc2Uuc3ZlbHRlIiwgIm5vZGVfbW9kdWxlcy9zdmVsdGUtaWNvbnMvZmEvRmFMaXN0VWwuc3ZlbHRlIiwgIm5vZGVfbW9kdWxlcy9zdmVsdGUtaWNvbnMvZmEvRmFQbHVzLnN2ZWx0ZSIsICJub2RlX21vZHVsZXMvc3ZlbHRlLWljb25zL2ZhL0ZhUmVnVHJhc2hBbHQuc3ZlbHRlIiwgInNyYy9TZXR0aW5ncy9IaWVyYXJjaHlTZXR0aW5ncy50cyIsICJzcmMvc3JjL0NvbXBvbmVudHMvQ2hlY2tib3hlcy5zdmVsdGUiLCAic3JjL0NvbXBvbmVudHMvQ2hlY2tib3hlcy5zdmVsdGUiLCAic3JjL1NldHRpbmdzL0p1bXBUb05leHRTZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvTWF0cml4Vmlld1NldHRpbmdzLnRzIiwgInNyYy9TZXR0aW5ncy9Ob1N5c3RlbVNldHRpbmdzLnRzIiwgInNyYy9TZXR0aW5ncy9SZWdleE5vdGVTZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvUmVsYXRpb25TZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvVGFnTm90ZVNldHRpbmdzLnRzIiwgInNyYy9TZXR0aW5ncy9UaHJlYWRpbmdTZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvVHJhaWxTZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvVmlzTW9kYWxTZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvV3JpdGVCQ3NTZXR0aW5ncy50cyIsICJzcmMvVmlld3MvRHVja3NWaWV3LnRzIiwgIm5vZGVfbW9kdWxlcy9zdmVsdGUtaWNvbnMvZmEvRmFJbmZvLnN2ZWx0ZSIsICJzcmMvc3JjL0NvbXBvbmVudHMvRHVja3Muc3ZlbHRlIiwgInNyYy9Db21wb25lbnRzL0R1Y2tzLnN2ZWx0ZSIsICJzcmMvVmlld3MvVHJlZVZpZXcudHMiLCAic3JjL3NyYy9Db21wb25lbnRzL1NpZGVUcmVlLnN2ZWx0ZSIsICJzcmMvQ29tcG9uZW50cy9TaWRlVHJlZS5zdmVsdGUiLCAibm9kZV9tb2R1bGVzL3N2ZWx0ZS1pY29ucy9mYS9GYUZpcmUuc3ZlbHRlIiwgIm5vZGVfbW9kdWxlcy9zdmVsdGUtaWNvbnMvZmEvRmFSZWdTbm93Zmxha2Uuc3ZlbHRlIiwgIm5vZGVfbW9kdWxlcy9kMy1hcnJheS9zcmMvYXNjZW5kaW5nLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1hcnJheS9zcmMvYmlzZWN0b3IuanMiLCAibm9kZV9tb2R1bGVzL2QzLWFycmF5L3NyYy9udW1iZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLWFycmF5L3NyYy9iaXNlY3QuanMiLCAibm9kZV9tb2R1bGVzL2QzLWFycmF5L3NyYy90aWNrcy5qcyIsICJub2RlX21vZHVsZXMvZDMtYXJyYXkvc3JjL21heC5qcyIsICJub2RlX21vZHVsZXMvZDMtYXJyYXkvc3JjL3JhbmdlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1kaXNwYXRjaC9zcmMvZGlzcGF0Y2guanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvbmFtZXNwYWNlcy5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9uYW1lc3BhY2UuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvY3JlYXRvci5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rvci5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vc2VsZWN0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL2FycmF5LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdG9yQWxsLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9zZWxlY3RBbGwuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvbWF0Y2hlci5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vc2VsZWN0Q2hpbGQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL3NlbGVjdENoaWxkcmVuLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9maWx0ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL3NwYXJzZS5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vZW50ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvY29uc3RhbnQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2RhdGEuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2V4aXQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2pvaW4uanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL21lcmdlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9vcmRlci5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vc29ydC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vY2FsbC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vbm9kZXMuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL25vZGUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL3NpemUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2VtcHR5LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9lYWNoLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9hdHRyLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3dpbmRvdy5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vc3R5bGUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL3Byb3BlcnR5LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9jbGFzc2VkLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi90ZXh0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9odG1sLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9yYWlzZS5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vbG93ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2FwcGVuZC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vaW5zZXJ0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9yZW1vdmUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2Nsb25lLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9kYXR1bS5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vb24uanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2Rpc3BhdGNoLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9pdGVyYXRvci5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NvdXJjZUV2ZW50LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3BvaW50ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLWRyYWcvc3JjL25vZXZlbnQuanMiLCAibm9kZV9tb2R1bGVzL2QzLWRyYWcvc3JjL25vZHJhZy5qcyIsICJub2RlX21vZHVsZXMvZDMtZHJhZy9zcmMvY29uc3RhbnQuanMiLCAibm9kZV9tb2R1bGVzL2QzLWRyYWcvc3JjL2V2ZW50LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1kcmFnL3NyYy9kcmFnLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1jb2xvci9zcmMvZGVmaW5lLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1jb2xvci9zcmMvY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL2QzLWNvbG9yL3NyYy9tYXRoLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1jb2xvci9zcmMvY3ViZWhlbGl4LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvYmFzaXMuanMiLCAibm9kZV9tb2R1bGVzL2QzLWludGVycG9sYXRlL3NyYy9iYXNpc0Nsb3NlZC5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL2NvbnN0YW50LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL2QzLWludGVycG9sYXRlL3NyYy9yZ2IuanMiLCAibm9kZV9tb2R1bGVzL2QzLWludGVycG9sYXRlL3NyYy9udW1iZXJBcnJheS5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL2FycmF5LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvZGF0ZS5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL251bWJlci5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL29iamVjdC5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL3N0cmluZy5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL3ZhbHVlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvcm91bmQuanMiLCAibm9kZV9tb2R1bGVzL2QzLWludGVycG9sYXRlL3NyYy90cmFuc2Zvcm0vZGVjb21wb3NlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvdHJhbnNmb3JtL3BhcnNlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvdHJhbnNmb3JtL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvem9vbS5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL2N1YmVoZWxpeC5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL3F1YW50aXplLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10aW1lci9zcmMvdGltZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRpbWVyL3NyYy90aW1lb3V0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL3NjaGVkdWxlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy9pbnRlcnJ1cHQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3NlbGVjdGlvbi9pbnRlcnJ1cHQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vdHdlZW4uanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vaW50ZXJwb2xhdGUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vYXR0ci5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvdHJhbnNpdGlvbi9hdHRyVHdlZW4uanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vZGVsYXkuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vZHVyYXRpb24uanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vZWFzZS5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvdHJhbnNpdGlvbi9lYXNlVmFyeWluZy5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvdHJhbnNpdGlvbi9maWx0ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vbWVyZ2UuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vb24uanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vcmVtb3ZlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL3NlbGVjdC5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvdHJhbnNpdGlvbi9zZWxlY3RBbGwuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vc2VsZWN0aW9uLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL3N0eWxlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL3N0eWxlVHdlZW4uanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vdGV4dC5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvdHJhbnNpdGlvbi90ZXh0VHdlZW4uanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vdHJhbnNpdGlvbi5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvdHJhbnNpdGlvbi9lbmQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2QzLWVhc2Uvc3JjL2N1YmljLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy9zZWxlY3Rpb24vdHJhbnNpdGlvbi5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvc2VsZWN0aW9uL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1icnVzaC9zcmMvYnJ1c2guanMiLCAibm9kZV9tb2R1bGVzL2QzLXBhdGgvc3JjL3BhdGguanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcmNlL3NyYy9jZW50ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXF1YWR0cmVlL3NyYy9hZGQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXF1YWR0cmVlL3NyYy9jb3Zlci5qcyIsICJub2RlX21vZHVsZXMvZDMtcXVhZHRyZWUvc3JjL2RhdGEuanMiLCAibm9kZV9tb2R1bGVzL2QzLXF1YWR0cmVlL3NyYy9leHRlbnQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXF1YWR0cmVlL3NyYy9xdWFkLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1xdWFkdHJlZS9zcmMvZmluZC5qcyIsICJub2RlX21vZHVsZXMvZDMtcXVhZHRyZWUvc3JjL3JlbW92ZS5qcyIsICJub2RlX21vZHVsZXMvZDMtcXVhZHRyZWUvc3JjL3Jvb3QuanMiLCAibm9kZV9tb2R1bGVzL2QzLXF1YWR0cmVlL3NyYy9zaXplLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1xdWFkdHJlZS9zcmMvdmlzaXQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXF1YWR0cmVlL3NyYy92aXNpdEFmdGVyLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1xdWFkdHJlZS9zcmMveC5qcyIsICJub2RlX21vZHVsZXMvZDMtcXVhZHRyZWUvc3JjL3kuanMiLCAibm9kZV9tb2R1bGVzL2QzLXF1YWR0cmVlL3NyYy9xdWFkdHJlZS5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9yY2Uvc3JjL2NvbnN0YW50LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1mb3JjZS9zcmMvamlnZ2xlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1mb3JjZS9zcmMvY29sbGlkZS5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9yY2Uvc3JjL2xpbmsuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcmNlL3NyYy9sY2cuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcmNlL3NyYy9zaW11bGF0aW9uLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1mb3JjZS9zcmMvbWFueUJvZHkuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvZm9ybWF0RGVjaW1hbC5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9ybWF0L3NyYy9leHBvbmVudC5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9ybWF0L3NyYy9mb3JtYXRHcm91cC5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9ybWF0L3NyYy9mb3JtYXROdW1lcmFscy5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9ybWF0L3NyYy9mb3JtYXRTcGVjaWZpZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvZm9ybWF0VHJpbS5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9ybWF0L3NyYy9mb3JtYXRQcmVmaXhBdXRvLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1mb3JtYXQvc3JjL2Zvcm1hdFJvdW5kZWQuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvZm9ybWF0VHlwZXMuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvaWRlbnRpdHkuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvbG9jYWxlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1mb3JtYXQvc3JjL2RlZmF1bHRMb2NhbGUuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvcHJlY2lzaW9uRml4ZWQuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvcHJlY2lzaW9uUHJlZml4LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1mb3JtYXQvc3JjL3ByZWNpc2lvblJvdW5kLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL2NsdXN0ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLWhpZXJhcmNoeS9zcmMvaGllcmFyY2h5L2NvdW50LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL2hpZXJhcmNoeS9lYWNoLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL2hpZXJhcmNoeS9lYWNoQmVmb3JlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL2hpZXJhcmNoeS9lYWNoQWZ0ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLWhpZXJhcmNoeS9zcmMvaGllcmFyY2h5L2ZpbmQuanMiLCAibm9kZV9tb2R1bGVzL2QzLWhpZXJhcmNoeS9zcmMvaGllcmFyY2h5L3N1bS5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy9oaWVyYXJjaHkvc29ydC5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy9oaWVyYXJjaHkvcGF0aC5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy9oaWVyYXJjaHkvYW5jZXN0b3JzLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL2hpZXJhcmNoeS9kZXNjZW5kYW50cy5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy9oaWVyYXJjaHkvbGVhdmVzLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL2hpZXJhcmNoeS9saW5rcy5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy9oaWVyYXJjaHkvaXRlcmF0b3IuanMiLCAibm9kZV9tb2R1bGVzL2QzLWhpZXJhcmNoeS9zcmMvaGllcmFyY2h5L2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL2FjY2Vzc29ycy5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy9jb25zdGFudC5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy90cmVlbWFwL3JvdW5kLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL3RyZWVtYXAvZGljZS5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy9wYXJ0aXRpb24uanMiLCAibm9kZV9tb2R1bGVzL2QzLWhpZXJhcmNoeS9zcmMvc3RyYXRpZnkuanMiLCAibm9kZV9tb2R1bGVzL2QzLWhpZXJhcmNoeS9zcmMvdHJlZS5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy90cmVlbWFwL3NsaWNlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL3RyZWVtYXAvc3F1YXJpZnkuanMiLCAibm9kZV9tb2R1bGVzL2QzLWhpZXJhcmNoeS9zcmMvdHJlZW1hcC9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy90cmVlbWFwL2JpbmFyeS5qcyIsICJub2RlX21vZHVsZXMvZDMtc2NhbGUvc3JjL2luaXQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNjYWxlL3NyYy9vcmRpbmFsLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zY2FsZS9zcmMvYmFuZC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2NhbGUvc3JjL2NvbnN0YW50LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zY2FsZS9zcmMvbnVtYmVyLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zY2FsZS9zcmMvY29udGludW91cy5qcyIsICJub2RlX21vZHVsZXMvZDMtc2NhbGUvc3JjL3RpY2tGb3JtYXQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNjYWxlL3NyYy9saW5lYXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNjYWxlLWNocm9tYXRpYy9zcmMvY29sb3JzLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zY2FsZS1jaHJvbWF0aWMvc3JjL2NhdGVnb3JpY2FsL2NhdGVnb3J5MTAuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNjYWxlLWNocm9tYXRpYy9zcmMvc2VxdWVudGlhbC1tdWx0aS9yYWluYm93LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvY29uc3RhbnQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9tYXRoLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvYXJjLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvYXJyYXkuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9jdXJ2ZS9saW5lYXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9wb2ludC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2hhcGUvc3JjL2xpbmUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9jdXJ2ZS9yYWRpYWwuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9saW5lUmFkaWFsLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvbGluay9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2hhcGUvc3JjL2N1cnZlL2Jhc2lzLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvY3VydmUvYnVuZGxlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy16b29tL3NyYy9jb25zdGFudC5qcyIsICJub2RlX21vZHVsZXMvZDMtem9vbS9zcmMvZXZlbnQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXpvb20vc3JjL3RyYW5zZm9ybS5qcyIsICJub2RlX21vZHVsZXMvZDMtem9vbS9zcmMvbm9ldmVudC5qcyIsICJub2RlX21vZHVsZXMvZDMtem9vbS9zcmMvem9vbS5qcyIsICJzcmMvVmlzdWFsaXNhdGlvbnMvVmlzTW9kYWwudHMiLCAic3JjL3NyYy9Db21wb25lbnRzL1Zpc0NvbXAuc3ZlbHRlIiwgInNyYy9Db21wb25lbnRzL1Zpc0NvbXAuc3ZlbHRlIiwgInNyYy9WaXN1YWxpc2F0aW9ucy9BcmNEaWFncmFtLnRzIiwgInNyYy9WaXN1YWxpc2F0aW9ucy9DaXJjbGVQYWNraW5nLnRzIiwgInNyYy9WaXN1YWxpc2F0aW9ucy9FZGdlQnVuZGxpbmcudHMiLCAic3JjL1Zpc3VhbGlzYXRpb25zL0ZvcmNlRGlyZWN0ZWRHLnRzIiwgInNyYy9WaXN1YWxpc2F0aW9ucy9JY2ljbGUudHMiLCAic3JjL1Zpc3VhbGlzYXRpb25zL1JhZGlhbFRyZWUudHMiLCAic3JjL1Zpc3VhbGlzYXRpb25zL1N1bmJ1cnN0LnRzIiwgInNyYy9WaXN1YWxpc2F0aW9ucy9UaWR5VHJlZS50cyIsICJzcmMvVmlzdWFsaXNhdGlvbnMvVHJlZU1hcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiZmVhdGhlclwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJmZWF0aGVyXCJdID0gZmFjdG9yeSgpO1xufSkodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnID8gc2VsZiA6IHRoaXMsIGZ1bmN0aW9uKCkge1xucmV0dXJuICIsICIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbiBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbiBcdFx0XHR9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDApO1xuIiwgIi8qIVxuICBDb3B5cmlnaHQgKGMpIDIwMTYgSmVkIFdhdHNvbi5cbiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlIChNSVQpLCBzZWVcbiAgaHR0cDovL2plZHdhdHNvbi5naXRodWIuaW8vY2xhc3NuYW1lc1xuKi9cbi8qIGdsb2JhbCBkZWZpbmUgKi9cblxuKGZ1bmN0aW9uICgpIHtcblx0J3VzZSBzdHJpY3QnO1xuXG5cdHZhciBjbGFzc05hbWVzID0gKGZ1bmN0aW9uICgpIHtcblx0XHQvLyBkb24ndCBpbmhlcml0IGZyb20gT2JqZWN0IHNvIHdlIGNhbiBza2lwIGhhc093blByb3BlcnR5IGNoZWNrIGxhdGVyXG5cdFx0Ly8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNTUxODMyOC9jcmVhdGluZy1qcy1vYmplY3Qtd2l0aC1vYmplY3QtY3JlYXRlbnVsbCNhbnN3ZXItMjEwNzkyMzJcblx0XHRmdW5jdGlvbiBTdG9yYWdlT2JqZWN0KCkge31cblx0XHRTdG9yYWdlT2JqZWN0LnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cblx0XHRmdW5jdGlvbiBfcGFyc2VBcnJheSAocmVzdWx0U2V0LCBhcnJheSkge1xuXHRcdFx0dmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuXHRcdFx0XHRfcGFyc2UocmVzdWx0U2V0LCBhcnJheVtpXSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dmFyIGhhc093biA9IHt9Lmhhc093blByb3BlcnR5O1xuXG5cdFx0ZnVuY3Rpb24gX3BhcnNlTnVtYmVyIChyZXN1bHRTZXQsIG51bSkge1xuXHRcdFx0cmVzdWx0U2V0W251bV0gPSB0cnVlO1xuXHRcdH1cblxuXHRcdGZ1bmN0aW9uIF9wYXJzZU9iamVjdCAocmVzdWx0U2V0LCBvYmplY3QpIHtcblx0XHRcdGZvciAodmFyIGsgaW4gb2JqZWN0KSB7XG5cdFx0XHRcdGlmIChoYXNPd24uY2FsbChvYmplY3QsIGspKSB7XG5cdFx0XHRcdFx0Ly8gc2V0IHZhbHVlIHRvIGZhbHNlIGluc3RlYWQgb2YgZGVsZXRpbmcgaXQgdG8gYXZvaWQgY2hhbmdpbmcgb2JqZWN0IHN0cnVjdHVyZVxuXHRcdFx0XHRcdC8vIGh0dHBzOi8vd3d3LnNtYXNoaW5nbWFnYXppbmUuY29tLzIwMTIvMTEvd3JpdGluZy1mYXN0LW1lbW9yeS1lZmZpY2llbnQtamF2YXNjcmlwdC8jZGUtcmVmZXJlbmNpbmctbWlzY29uY2VwdGlvbnNcblx0XHRcdFx0XHRyZXN1bHRTZXRba10gPSAhIW9iamVjdFtrXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHZhciBTUEFDRSA9IC9cXHMrLztcblx0XHRmdW5jdGlvbiBfcGFyc2VTdHJpbmcgKHJlc3VsdFNldCwgc3RyKSB7XG5cdFx0XHR2YXIgYXJyYXkgPSBzdHIuc3BsaXQoU1BBQ0UpO1xuXHRcdFx0dmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuXHRcdFx0XHRyZXN1bHRTZXRbYXJyYXlbaV1dID0gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRmdW5jdGlvbiBfcGFyc2UgKHJlc3VsdFNldCwgYXJnKSB7XG5cdFx0XHRpZiAoIWFyZykgcmV0dXJuO1xuXHRcdFx0dmFyIGFyZ1R5cGUgPSB0eXBlb2YgYXJnO1xuXG5cdFx0XHQvLyAnZm9vIGJhcidcblx0XHRcdGlmIChhcmdUeXBlID09PSAnc3RyaW5nJykge1xuXHRcdFx0XHRfcGFyc2VTdHJpbmcocmVzdWx0U2V0LCBhcmcpO1xuXG5cdFx0XHQvLyBbJ2ZvbycsICdiYXInLCAuLi5dXG5cdFx0XHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYXJnKSkge1xuXHRcdFx0XHRfcGFyc2VBcnJheShyZXN1bHRTZXQsIGFyZyk7XG5cblx0XHRcdC8vIHsgJ2Zvbyc6IHRydWUsIC4uLiB9XG5cdFx0XHR9IGVsc2UgaWYgKGFyZ1R5cGUgPT09ICdvYmplY3QnKSB7XG5cdFx0XHRcdF9wYXJzZU9iamVjdChyZXN1bHRTZXQsIGFyZyk7XG5cblx0XHRcdC8vICcxMzAnXG5cdFx0XHR9IGVsc2UgaWYgKGFyZ1R5cGUgPT09ICdudW1iZXInKSB7XG5cdFx0XHRcdF9wYXJzZU51bWJlcihyZXN1bHRTZXQsIGFyZyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gX2NsYXNzTmFtZXMgKCkge1xuXHRcdFx0Ly8gZG9uJ3QgbGVhayBhcmd1bWVudHNcblx0XHRcdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wZXRrYWFudG9ub3YvYmx1ZWJpcmQvd2lraS9PcHRpbWl6YXRpb24ta2lsbGVycyMzMi1sZWFraW5nLWFyZ3VtZW50c1xuXHRcdFx0dmFyIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG5cdFx0XHR2YXIgYXJncyA9IEFycmF5KGxlbik7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRcdGFyZ3NbaV0gPSBhcmd1bWVudHNbaV07XG5cdFx0XHR9XG5cblx0XHRcdHZhciBjbGFzc1NldCA9IG5ldyBTdG9yYWdlT2JqZWN0KCk7XG5cdFx0XHRfcGFyc2VBcnJheShjbGFzc1NldCwgYXJncyk7XG5cblx0XHRcdHZhciBsaXN0ID0gW107XG5cblx0XHRcdGZvciAodmFyIGsgaW4gY2xhc3NTZXQpIHtcblx0XHRcdFx0aWYgKGNsYXNzU2V0W2tdKSB7XG5cdFx0XHRcdFx0bGlzdC5wdXNoKGspXG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGxpc3Quam9pbignICcpO1xuXHRcdH1cblxuXHRcdHJldHVybiBfY2xhc3NOYW1lcztcblx0fSkoKTtcblxuXHRpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGNsYXNzTmFtZXM7XG5cdH0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZGVmaW5lLmFtZCA9PT0gJ29iamVjdCcgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIHJlZ2lzdGVyIGFzICdjbGFzc25hbWVzJywgY29uc2lzdGVudCB3aXRoIG5wbSBwYWNrYWdlIG5hbWVcblx0XHRkZWZpbmUoJ2NsYXNzbmFtZXMnLCBbXSwgZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIGNsYXNzTmFtZXM7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0d2luZG93LmNsYXNzTmFtZXMgPSBjbGFzc05hbWVzO1xuXHR9XG59KCkpO1xuIiwgInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMuc3RyaW5nLml0ZXJhdG9yJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzLmFycmF5LmZyb20nKTtcbnZhciBwYXRoID0gcmVxdWlyZSgnLi4vLi4vaW50ZXJuYWxzL3BhdGgnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXRoLkFycmF5LmZyb207XG4iLCAibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKHR5cGVvZiBpdCAhPSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKFN0cmluZyhpdCkgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG4gIH0gcmV0dXJuIGl0O1xufTtcbiIsICJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKFN0cmluZyhpdCkgKyAnIGlzIG5vdCBhbiBvYmplY3QnKTtcbiAgfSByZXR1cm4gaXQ7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBiaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2JpbmQtY29udGV4dCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIGNhbGxXaXRoU2FmZUl0ZXJhdGlvbkNsb3NpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2FsbC13aXRoLXNhZmUtaXRlcmF0aW9uLWNsb3NpbmcnKTtcbnZhciBpc0FycmF5SXRlcmF0b3JNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtYXJyYXktaXRlcmF0b3ItbWV0aG9kJyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgY3JlYXRlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5Jyk7XG52YXIgZ2V0SXRlcmF0b3JNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWl0ZXJhdG9yLW1ldGhvZCcpO1xuXG4vLyBgQXJyYXkuZnJvbWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5mcm9tXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGZyb20oYXJyYXlMaWtlIC8qICwgbWFwZm4gPSB1bmRlZmluZWQsIHRoaXNBcmcgPSB1bmRlZmluZWQgKi8pIHtcbiAgdmFyIE8gPSB0b09iamVjdChhcnJheUxpa2UpO1xuICB2YXIgQyA9IHR5cGVvZiB0aGlzID09ICdmdW5jdGlvbicgPyB0aGlzIDogQXJyYXk7XG4gIHZhciBhcmd1bWVudHNMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICB2YXIgbWFwZm4gPSBhcmd1bWVudHNMZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuICB2YXIgbWFwcGluZyA9IG1hcGZuICE9PSB1bmRlZmluZWQ7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBpdGVyYXRvck1ldGhvZCA9IGdldEl0ZXJhdG9yTWV0aG9kKE8pO1xuICB2YXIgbGVuZ3RoLCByZXN1bHQsIHN0ZXAsIGl0ZXJhdG9yO1xuICBpZiAobWFwcGluZykgbWFwZm4gPSBiaW5kKG1hcGZuLCBhcmd1bWVudHNMZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogdW5kZWZpbmVkLCAyKTtcbiAgLy8gaWYgdGhlIHRhcmdldCBpcyBub3QgaXRlcmFibGUgb3IgaXQncyBhbiBhcnJheSB3aXRoIHRoZSBkZWZhdWx0IGl0ZXJhdG9yIC0gdXNlIGEgc2ltcGxlIGNhc2VcbiAgaWYgKGl0ZXJhdG9yTWV0aG9kICE9IHVuZGVmaW5lZCAmJiAhKEMgPT0gQXJyYXkgJiYgaXNBcnJheUl0ZXJhdG9yTWV0aG9kKGl0ZXJhdG9yTWV0aG9kKSkpIHtcbiAgICBpdGVyYXRvciA9IGl0ZXJhdG9yTWV0aG9kLmNhbGwoTyk7XG4gICAgcmVzdWx0ID0gbmV3IEMoKTtcbiAgICBmb3IgKDshKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmU7IGluZGV4KyspIHtcbiAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIG1hcHBpbmdcbiAgICAgICAgPyBjYWxsV2l0aFNhZmVJdGVyYXRpb25DbG9zaW5nKGl0ZXJhdG9yLCBtYXBmbiwgW3N0ZXAudmFsdWUsIGluZGV4XSwgdHJ1ZSlcbiAgICAgICAgOiBzdGVwLnZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBsZW5ndGggPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gICAgcmVzdWx0ID0gbmV3IEMobGVuZ3RoKTtcbiAgICBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykge1xuICAgICAgY3JlYXRlUHJvcGVydHkocmVzdWx0LCBpbmRleCwgbWFwcGluZyA/IG1hcGZuKE9baW5kZXhdLCBpbmRleCkgOiBPW2luZGV4XSk7XG4gICAgfVxuICB9XG4gIHJlc3VsdC5sZW5ndGggPSBpbmRleDtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCAidmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleCcpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLnsgaW5kZXhPZiwgaW5jbHVkZXMgfWAgbWV0aG9kcyBpbXBsZW1lbnRhdGlvblxuLy8gZmFsc2UgLT4gQXJyYXkjaW5kZXhPZlxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmluZGV4b2Zcbi8vIHRydWUgIC0+IEFycmF5I2luY2x1ZGVzXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5jbHVkZXNcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKElTX0lOQ0xVREVTKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGVsLCBmcm9tSW5kZXgpIHtcbiAgICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdCgkdGhpcyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoZnJvbUluZGV4LCBsZW5ndGgpO1xuICAgIHZhciB2YWx1ZTtcbiAgICAvLyBBcnJheSNpbmNsdWRlcyB1c2VzIFNhbWVWYWx1ZVplcm8gZXF1YWxpdHkgYWxnb3JpdGhtXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgIGlmIChJU19JTkNMVURFUyAmJiBlbCAhPSBlbCkgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSB7XG4gICAgICB2YWx1ZSA9IE9baW5kZXgrK107XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgICBpZiAodmFsdWUgIT0gdmFsdWUpIHJldHVybiB0cnVlO1xuICAgIC8vIEFycmF5I2luZGV4T2YgaWdub3JlcyBob2xlcywgQXJyYXkjaW5jbHVkZXMgLSBub3RcbiAgICB9IGVsc2UgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIGlmIChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSB7XG4gICAgICBpZiAoT1tpbmRleF0gPT09IGVsKSByZXR1cm4gSVNfSU5DTFVERVMgfHwgaW5kZXggfHwgMDtcbiAgICB9IHJldHVybiAhSVNfSU5DTFVERVMgJiYgLTE7XG4gIH07XG59O1xuIiwgInZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xuXG4vLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0LCBsZW5ndGgpIHtcbiAgYUZ1bmN0aW9uKGZuKTtcbiAgaWYgKHRoYXQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZuO1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgMDogcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQpO1xuICAgIH07XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24gKGEpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEpO1xuICAgIH07XG4gICAgY2FzZSAyOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIpO1xuICAgIH07XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIsIGMpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIsIGMpO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uICgvKiAuLi5hcmdzICovKSB7XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoYXQsIGFyZ3VtZW50cyk7XG4gIH07XG59O1xuIiwgInZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcblxuLy8gY2FsbCBzb21ldGhpbmcgb24gaXRlcmF0b3Igc3RlcCB3aXRoIHNhZmUgY2xvc2luZyBvbiBlcnJvclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlcmF0b3IsIGZuLCB2YWx1ZSwgRU5UUklFUykge1xuICB0cnkge1xuICAgIHJldHVybiBFTlRSSUVTID8gZm4oYW5PYmplY3QodmFsdWUpWzBdLCB2YWx1ZVsxXSkgOiBmbih2YWx1ZSk7XG4gIC8vIDcuNC42IEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3IsIGNvbXBsZXRpb24pXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdmFyIHJldHVybk1ldGhvZCA9IGl0ZXJhdG9yWydyZXR1cm4nXTtcbiAgICBpZiAocmV0dXJuTWV0aG9kICE9PSB1bmRlZmluZWQpIGFuT2JqZWN0KHJldHVybk1ldGhvZC5jYWxsKGl0ZXJhdG9yKSk7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG4iLCAidmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG52YXIgU0FGRV9DTE9TSU5HID0gZmFsc2U7XG5cbnRyeSB7XG4gIHZhciBjYWxsZWQgPSAwO1xuICB2YXIgaXRlcmF0b3JXaXRoUmV0dXJuID0ge1xuICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB7IGRvbmU6ICEhY2FsbGVkKysgfTtcbiAgICB9LFxuICAgICdyZXR1cm4nOiBmdW5jdGlvbiAoKSB7XG4gICAgICBTQUZFX0NMT1NJTkcgPSB0cnVlO1xuICAgIH1cbiAgfTtcbiAgaXRlcmF0b3JXaXRoUmV0dXJuW0lURVJBVE9SXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXRocm93LWxpdGVyYWxcbiAgQXJyYXkuZnJvbShpdGVyYXRvcldpdGhSZXR1cm4sIGZ1bmN0aW9uICgpIHsgdGhyb3cgMjsgfSk7XG59IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMsIFNLSVBfQ0xPU0lORykge1xuICBpZiAoIVNLSVBfQ0xPU0lORyAmJiAhU0FGRV9DTE9TSU5HKSByZXR1cm4gZmFsc2U7XG4gIHZhciBJVEVSQVRJT05fU1VQUE9SVCA9IGZhbHNlO1xuICB0cnkge1xuICAgIHZhciBvYmplY3QgPSB7fTtcbiAgICBvYmplY3RbSVRFUkFUT1JdID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiB7IGRvbmU6IElURVJBVElPTl9TVVBQT1JUID0gdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH07XG4gICAgZXhlYyhvYmplY3QpO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBJVEVSQVRJT05fU1VQUE9SVDtcbn07XG4iLCAidmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKGl0KS5zbGljZSg4LCAtMSk7XG59O1xuIiwgInZhciBjbGFzc29mUmF3ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBUT19TVFJJTkdfVEFHID0gd2VsbEtub3duU3ltYm9sKCd0b1N0cmluZ1RhZycpO1xuLy8gRVMzIHdyb25nIGhlcmVcbnZhciBDT1JSRUNUX0FSR1VNRU5UUyA9IGNsYXNzb2ZSYXcoZnVuY3Rpb24gKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID09ICdBcmd1bWVudHMnO1xuXG4vLyBmYWxsYmFjayBmb3IgSUUxMSBTY3JpcHQgQWNjZXNzIERlbmllZCBlcnJvclxudmFyIHRyeUdldCA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGl0W2tleV07XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbn07XG5cbi8vIGdldHRpbmcgdGFnIGZyb20gRVM2KyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2Bcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBPLCB0YWcsIHJlc3VsdDtcbiAgcmV0dXJuIGl0ID09PSB1bmRlZmluZWQgPyAnVW5kZWZpbmVkJyA6IGl0ID09PSBudWxsID8gJ051bGwnXG4gICAgLy8gQEB0b1N0cmluZ1RhZyBjYXNlXG4gICAgOiB0eXBlb2YgKHRhZyA9IHRyeUdldChPID0gT2JqZWN0KGl0KSwgVE9fU1RSSU5HX1RBRykpID09ICdzdHJpbmcnID8gdGFnXG4gICAgLy8gYnVpbHRpblRhZyBjYXNlXG4gICAgOiBDT1JSRUNUX0FSR1VNRU5UUyA/IGNsYXNzb2ZSYXcoTylcbiAgICAvLyBFUzMgYXJndW1lbnRzIGZhbGxiYWNrXG4gICAgOiAocmVzdWx0ID0gY2xhc3NvZlJhdyhPKSkgPT0gJ09iamVjdCcgJiYgdHlwZW9mIE8uY2FsbGVlID09ICdmdW5jdGlvbicgPyAnQXJndW1lbnRzJyA6IHJlc3VsdDtcbn07XG4iLCAidmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBvd25LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL293bi1rZXlzJyk7XG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG4gIHZhciBrZXlzID0gb3duS2V5cyhzb3VyY2UpO1xuICB2YXIgZGVmaW5lUHJvcGVydHkgPSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mO1xuICB2YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlLmY7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuICAgIGlmICghaGFzKHRhcmdldCwga2V5KSkgZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpO1xuICB9XG59O1xuIiwgInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIEYoKSB7IC8qIGVtcHR5ICovIH1cbiAgRi5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBudWxsO1xuICByZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBGKCkpICE9PSBGLnByb3RvdHlwZTtcbn0pO1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMtY29yZScpLkl0ZXJhdG9yUHJvdG90eXBlO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzJyk7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoSXRlcmF0b3JDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCkge1xuICB2YXIgVE9fU1RSSU5HX1RBRyA9IE5BTUUgKyAnIEl0ZXJhdG9yJztcbiAgSXRlcmF0b3JDb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBjcmVhdGUoSXRlcmF0b3JQcm90b3R5cGUsIHsgbmV4dDogY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDEsIG5leHQpIH0pO1xuICBzZXRUb1N0cmluZ1RhZyhJdGVyYXRvckNvbnN0cnVjdG9yLCBUT19TVFJJTkdfVEFHLCBmYWxzZSwgdHJ1ZSk7XG4gIEl0ZXJhdG9yc1tUT19TVFJJTkdfVEFHXSA9IHJldHVyblRoaXM7XG4gIHJldHVybiBJdGVyYXRvckNvbnN0cnVjdG9yO1xufTtcbiIsICJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1wcmltaXRpdmUnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICB2YXIgcHJvcGVydHlLZXkgPSB0b1ByaW1pdGl2ZShrZXkpO1xuICBpZiAocHJvcGVydHlLZXkgaW4gb2JqZWN0KSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKG9iamVjdCwgcHJvcGVydHlLZXksIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigwLCB2YWx1ZSkpO1xuICBlbHNlIG9iamVjdFtwcm9wZXJ0eUtleV0gPSB2YWx1ZTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY3JlYXRlSXRlcmF0b3JDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaXRlcmF0b3ItY29uc3RydWN0b3InKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZicpO1xudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1zZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGUnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWRlZmluZScpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMnKTtcbnZhciBJdGVyYXRvcnNDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycy1jb3JlJyk7XG5cbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IEl0ZXJhdG9yc0NvcmUuSXRlcmF0b3JQcm90b3R5cGU7XG52YXIgQlVHR1lfU0FGQVJJX0lURVJBVE9SUyA9IEl0ZXJhdG9yc0NvcmUuQlVHR1lfU0FGQVJJX0lURVJBVE9SUztcbnZhciBJVEVSQVRPUiA9IHdlbGxLbm93blN5bWJvbCgnaXRlcmF0b3InKTtcbnZhciBLRVlTID0gJ2tleXMnO1xudmFyIFZBTFVFUyA9ICd2YWx1ZXMnO1xudmFyIEVOVFJJRVMgPSAnZW50cmllcyc7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoSXRlcmFibGUsIE5BTUUsIEl0ZXJhdG9yQ29uc3RydWN0b3IsIG5leHQsIERFRkFVTFQsIElTX1NFVCwgRk9SQ0VEKSB7XG4gIGNyZWF0ZUl0ZXJhdG9yQ29uc3RydWN0b3IoSXRlcmF0b3JDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCk7XG5cbiAgdmFyIGdldEl0ZXJhdGlvbk1ldGhvZCA9IGZ1bmN0aW9uIChLSU5EKSB7XG4gICAgaWYgKEtJTkQgPT09IERFRkFVTFQgJiYgZGVmYXVsdEl0ZXJhdG9yKSByZXR1cm4gZGVmYXVsdEl0ZXJhdG9yO1xuICAgIGlmICghQlVHR1lfU0FGQVJJX0lURVJBVE9SUyAmJiBLSU5EIGluIEl0ZXJhYmxlUHJvdG90eXBlKSByZXR1cm4gSXRlcmFibGVQcm90b3R5cGVbS0lORF07XG4gICAgc3dpdGNoIChLSU5EKSB7XG4gICAgICBjYXNlIEtFWVM6IHJldHVybiBmdW5jdGlvbiBrZXlzKCkgeyByZXR1cm4gbmV3IEl0ZXJhdG9yQ29uc3RydWN0b3IodGhpcywgS0lORCk7IH07XG4gICAgICBjYXNlIFZBTFVFUzogcmV0dXJuIGZ1bmN0aW9uIHZhbHVlcygpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMsIEtJTkQpOyB9O1xuICAgICAgY2FzZSBFTlRSSUVTOiByZXR1cm4gZnVuY3Rpb24gZW50cmllcygpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMsIEtJTkQpOyB9O1xuICAgIH0gcmV0dXJuIGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMpOyB9O1xuICB9O1xuXG4gIHZhciBUT19TVFJJTkdfVEFHID0gTkFNRSArICcgSXRlcmF0b3InO1xuICB2YXIgSU5DT1JSRUNUX1ZBTFVFU19OQU1FID0gZmFsc2U7XG4gIHZhciBJdGVyYWJsZVByb3RvdHlwZSA9IEl0ZXJhYmxlLnByb3RvdHlwZTtcbiAgdmFyIG5hdGl2ZUl0ZXJhdG9yID0gSXRlcmFibGVQcm90b3R5cGVbSVRFUkFUT1JdXG4gICAgfHwgSXRlcmFibGVQcm90b3R5cGVbJ0BAaXRlcmF0b3InXVxuICAgIHx8IERFRkFVTFQgJiYgSXRlcmFibGVQcm90b3R5cGVbREVGQVVMVF07XG4gIHZhciBkZWZhdWx0SXRlcmF0b3IgPSAhQlVHR1lfU0FGQVJJX0lURVJBVE9SUyAmJiBuYXRpdmVJdGVyYXRvciB8fCBnZXRJdGVyYXRpb25NZXRob2QoREVGQVVMVCk7XG4gIHZhciBhbnlOYXRpdmVJdGVyYXRvciA9IE5BTUUgPT0gJ0FycmF5JyA/IEl0ZXJhYmxlUHJvdG90eXBlLmVudHJpZXMgfHwgbmF0aXZlSXRlcmF0b3IgOiBuYXRpdmVJdGVyYXRvcjtcbiAgdmFyIEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSwgbWV0aG9kcywgS0VZO1xuXG4gIC8vIGZpeCBuYXRpdmVcbiAgaWYgKGFueU5hdGl2ZUl0ZXJhdG9yKSB7XG4gICAgQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG90eXBlT2YoYW55TmF0aXZlSXRlcmF0b3IuY2FsbChuZXcgSXRlcmFibGUoKSkpO1xuICAgIGlmIChJdGVyYXRvclByb3RvdHlwZSAhPT0gT2JqZWN0LnByb3RvdHlwZSAmJiBDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUubmV4dCkge1xuICAgICAgaWYgKCFJU19QVVJFICYmIGdldFByb3RvdHlwZU9mKEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSkgIT09IEl0ZXJhdG9yUHJvdG90eXBlKSB7XG4gICAgICAgIGlmIChzZXRQcm90b3R5cGVPZikge1xuICAgICAgICAgIHNldFByb3RvdHlwZU9mKEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSwgSXRlcmF0b3JQcm90b3R5cGUpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBDdXJyZW50SXRlcmF0b3JQcm90b3R5cGVbSVRFUkFUT1JdICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBoaWRlKEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IsIHJldHVyblRoaXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBTZXQgQEB0b1N0cmluZ1RhZyB0byBuYXRpdmUgaXRlcmF0b3JzXG4gICAgICBzZXRUb1N0cmluZ1RhZyhDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUsIFRPX1NUUklOR19UQUcsIHRydWUsIHRydWUpO1xuICAgICAgaWYgKElTX1BVUkUpIEl0ZXJhdG9yc1tUT19TVFJJTkdfVEFHXSA9IHJldHVyblRoaXM7XG4gICAgfVxuICB9XG5cbiAgLy8gZml4IEFycmF5I3t2YWx1ZXMsIEBAaXRlcmF0b3J9Lm5hbWUgaW4gVjggLyBGRlxuICBpZiAoREVGQVVMVCA9PSBWQUxVRVMgJiYgbmF0aXZlSXRlcmF0b3IgJiYgbmF0aXZlSXRlcmF0b3IubmFtZSAhPT0gVkFMVUVTKSB7XG4gICAgSU5DT1JSRUNUX1ZBTFVFU19OQU1FID0gdHJ1ZTtcbiAgICBkZWZhdWx0SXRlcmF0b3IgPSBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiBuYXRpdmVJdGVyYXRvci5jYWxsKHRoaXMpOyB9O1xuICB9XG5cbiAgLy8gZGVmaW5lIGl0ZXJhdG9yXG4gIGlmICgoIUlTX1BVUkUgfHwgRk9SQ0VEKSAmJiBJdGVyYWJsZVByb3RvdHlwZVtJVEVSQVRPUl0gIT09IGRlZmF1bHRJdGVyYXRvcikge1xuICAgIGhpZGUoSXRlcmFibGVQcm90b3R5cGUsIElURVJBVE9SLCBkZWZhdWx0SXRlcmF0b3IpO1xuICB9XG4gIEl0ZXJhdG9yc1tOQU1FXSA9IGRlZmF1bHRJdGVyYXRvcjtcblxuICAvLyBleHBvcnQgYWRkaXRpb25hbCBtZXRob2RzXG4gIGlmIChERUZBVUxUKSB7XG4gICAgbWV0aG9kcyA9IHtcbiAgICAgIHZhbHVlczogZ2V0SXRlcmF0aW9uTWV0aG9kKFZBTFVFUyksXG4gICAgICBrZXlzOiBJU19TRVQgPyBkZWZhdWx0SXRlcmF0b3IgOiBnZXRJdGVyYXRpb25NZXRob2QoS0VZUyksXG4gICAgICBlbnRyaWVzOiBnZXRJdGVyYXRpb25NZXRob2QoRU5UUklFUylcbiAgICB9O1xuICAgIGlmIChGT1JDRUQpIGZvciAoS0VZIGluIG1ldGhvZHMpIHtcbiAgICAgIGlmIChCVUdHWV9TQUZBUklfSVRFUkFUT1JTIHx8IElOQ09SUkVDVF9WQUxVRVNfTkFNRSB8fCAhKEtFWSBpbiBJdGVyYWJsZVByb3RvdHlwZSkpIHtcbiAgICAgICAgcmVkZWZpbmUoSXRlcmFibGVQcm90b3R5cGUsIEtFWSwgbWV0aG9kc1tLRVldKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgJCh7IHRhcmdldDogTkFNRSwgcHJvdG86IHRydWUsIGZvcmNlZDogQlVHR1lfU0FGQVJJX0lURVJBVE9SUyB8fCBJTkNPUlJFQ1RfVkFMVUVTX05BTUUgfSwgbWV0aG9kcyk7XG4gIH1cblxuICByZXR1cm4gbWV0aG9kcztcbn07XG4iLCAidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbi8vIFRoYW5rJ3MgSUU4IGZvciBoaXMgZnVubnkgZGVmaW5lUHJvcGVydHlcbm1vZHVsZS5leHBvcnRzID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG59KTtcbiIsICJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG52YXIgZG9jdW1lbnQgPSBnbG9iYWwuZG9jdW1lbnQ7XG4vLyB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBpcyAnb2JqZWN0JyBpbiBvbGQgSUVcbnZhciBleGlzdCA9IGlzT2JqZWN0KGRvY3VtZW50KSAmJiBpc09iamVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGV4aXN0ID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdCkgOiB7fTtcbn07XG4iLCAiLy8gSUU4LSBkb24ndCBlbnVtIGJ1ZyBrZXlzXG5tb2R1bGUuZXhwb3J0cyA9IFtcbiAgJ2NvbnN0cnVjdG9yJyxcbiAgJ2hhc093blByb3BlcnR5JyxcbiAgJ2lzUHJvdG90eXBlT2YnLFxuICAncHJvcGVydHlJc0VudW1lcmFibGUnLFxuICAndG9Mb2NhbGVTdHJpbmcnLFxuICAndG9TdHJpbmcnLFxuICAndmFsdWVPZidcbl07XG4iLCAidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpLmY7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oaWRlJyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUnKTtcbnZhciBzZXRHbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LWdsb2JhbCcpO1xudmFyIGNvcHlDb25zdHJ1Y3RvclByb3BlcnRpZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29weS1jb25zdHJ1Y3Rvci1wcm9wZXJ0aWVzJyk7XG52YXIgaXNGb3JjZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtZm9yY2VkJyk7XG5cbi8qXG4gIG9wdGlvbnMudGFyZ2V0ICAgICAgLSBuYW1lIG9mIHRoZSB0YXJnZXQgb2JqZWN0XG4gIG9wdGlvbnMuZ2xvYmFsICAgICAgLSB0YXJnZXQgaXMgdGhlIGdsb2JhbCBvYmplY3RcbiAgb3B0aW9ucy5zdGF0ICAgICAgICAtIGV4cG9ydCBhcyBzdGF0aWMgbWV0aG9kcyBvZiB0YXJnZXRcbiAgb3B0aW9ucy5wcm90byAgICAgICAtIGV4cG9ydCBhcyBwcm90b3R5cGUgbWV0aG9kcyBvZiB0YXJnZXRcbiAgb3B0aW9ucy5yZWFsICAgICAgICAtIHJlYWwgcHJvdG90eXBlIG1ldGhvZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMuZm9yY2VkICAgICAgLSBleHBvcnQgZXZlbiBpZiB0aGUgbmF0aXZlIGZlYXR1cmUgaXMgYXZhaWxhYmxlXG4gIG9wdGlvbnMuYmluZCAgICAgICAgLSBiaW5kIG1ldGhvZHMgdG8gdGhlIHRhcmdldCwgcmVxdWlyZWQgZm9yIHRoZSBgcHVyZWAgdmVyc2lvblxuICBvcHRpb25zLndyYXAgICAgICAgIC0gd3JhcCBjb25zdHJ1Y3RvcnMgdG8gcHJldmVudGluZyBnbG9iYWwgcG9sbHV0aW9uLCByZXF1aXJlZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMudW5zYWZlICAgICAgLSB1c2UgdGhlIHNpbXBsZSBhc3NpZ25tZW50IG9mIHByb3BlcnR5IGluc3RlYWQgb2YgZGVsZXRlICsgZGVmaW5lUHJvcGVydHlcbiAgb3B0aW9ucy5zaGFtICAgICAgICAtIGFkZCBhIGZsYWcgdG8gbm90IGNvbXBsZXRlbHkgZnVsbCBwb2x5ZmlsbHNcbiAgb3B0aW9ucy5lbnVtZXJhYmxlICAtIGV4cG9ydCBhcyBlbnVtZXJhYmxlIHByb3BlcnR5XG4gIG9wdGlvbnMubm9UYXJnZXRHZXQgLSBwcmV2ZW50IGNhbGxpbmcgYSBnZXR0ZXIgb24gdGFyZ2V0XG4qL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob3B0aW9ucywgc291cmNlKSB7XG4gIHZhciBUQVJHRVQgPSBvcHRpb25zLnRhcmdldDtcbiAgdmFyIEdMT0JBTCA9IG9wdGlvbnMuZ2xvYmFsO1xuICB2YXIgU1RBVElDID0gb3B0aW9ucy5zdGF0O1xuICB2YXIgRk9SQ0VELCB0YXJnZXQsIGtleSwgdGFyZ2V0UHJvcGVydHksIHNvdXJjZVByb3BlcnR5LCBkZXNjcmlwdG9yO1xuICBpZiAoR0xPQkFMKSB7XG4gICAgdGFyZ2V0ID0gZ2xvYmFsO1xuICB9IGVsc2UgaWYgKFNUQVRJQykge1xuICAgIHRhcmdldCA9IGdsb2JhbFtUQVJHRVRdIHx8IHNldEdsb2JhbChUQVJHRVQsIHt9KTtcbiAgfSBlbHNlIHtcbiAgICB0YXJnZXQgPSAoZ2xvYmFsW1RBUkdFVF0gfHwge30pLnByb3RvdHlwZTtcbiAgfVxuICBpZiAodGFyZ2V0KSBmb3IgKGtleSBpbiBzb3VyY2UpIHtcbiAgICBzb3VyY2VQcm9wZXJ0eSA9IHNvdXJjZVtrZXldO1xuICAgIGlmIChvcHRpb25zLm5vVGFyZ2V0R2V0KSB7XG4gICAgICBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KTtcbiAgICAgIHRhcmdldFByb3BlcnR5ID0gZGVzY3JpcHRvciAmJiBkZXNjcmlwdG9yLnZhbHVlO1xuICAgIH0gZWxzZSB0YXJnZXRQcm9wZXJ0eSA9IHRhcmdldFtrZXldO1xuICAgIEZPUkNFRCA9IGlzRm9yY2VkKEdMT0JBTCA/IGtleSA6IFRBUkdFVCArIChTVEFUSUMgPyAnLicgOiAnIycpICsga2V5LCBvcHRpb25zLmZvcmNlZCk7XG4gICAgLy8gY29udGFpbmVkIGluIHRhcmdldFxuICAgIGlmICghRk9SQ0VEICYmIHRhcmdldFByb3BlcnR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0eXBlb2Ygc291cmNlUHJvcGVydHkgPT09IHR5cGVvZiB0YXJnZXRQcm9wZXJ0eSkgY29udGludWU7XG4gICAgICBjb3B5Q29uc3RydWN0b3JQcm9wZXJ0aWVzKHNvdXJjZVByb3BlcnR5LCB0YXJnZXRQcm9wZXJ0eSk7XG4gICAgfVxuICAgIC8vIGFkZCBhIGZsYWcgdG8gbm90IGNvbXBsZXRlbHkgZnVsbCBwb2x5ZmlsbHNcbiAgICBpZiAob3B0aW9ucy5zaGFtIHx8ICh0YXJnZXRQcm9wZXJ0eSAmJiB0YXJnZXRQcm9wZXJ0eS5zaGFtKSkge1xuICAgICAgaGlkZShzb3VyY2VQcm9wZXJ0eSwgJ3NoYW0nLCB0cnVlKTtcbiAgICB9XG4gICAgLy8gZXh0ZW5kIGdsb2JhbFxuICAgIHJlZGVmaW5lKHRhcmdldCwga2V5LCBzb3VyY2VQcm9wZXJ0eSwgb3B0aW9ucyk7XG4gIH1cbn07XG4iLCAibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYykge1xuICB0cnkge1xuICAgIHJldHVybiAhIWV4ZWMoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufTtcbiIsICJ2YXIgc2hhcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHNoYXJlZCgnbmF0aXZlLWZ1bmN0aW9uLXRvLXN0cmluZycsIEZ1bmN0aW9uLnRvU3RyaW5nKTtcbiIsICJ2YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycycpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpdCAhPSB1bmRlZmluZWQpIHJldHVybiBpdFtJVEVSQVRPUl1cbiAgICB8fCBpdFsnQEBpdGVyYXRvciddXG4gICAgfHwgSXRlcmF0b3JzW2NsYXNzb2YoaXQpXTtcbn07XG4iLCAidmFyIE8gPSAnb2JqZWN0JztcbnZhciBjaGVjayA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgJiYgaXQuTWF0aCA9PSBNYXRoICYmIGl0O1xufTtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcbm1vZHVsZS5leHBvcnRzID1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gIGNoZWNrKHR5cGVvZiBnbG9iYWxUaGlzID09IE8gJiYgZ2xvYmFsVGhpcykgfHxcbiAgY2hlY2sodHlwZW9mIHdpbmRvdyA9PSBPICYmIHdpbmRvdykgfHxcbiAgY2hlY2sodHlwZW9mIHNlbGYgPT0gTyAmJiBzZWxmKSB8fFxuICBjaGVjayh0eXBlb2YgZ2xvYmFsID09IE8gJiYgZ2xvYmFsKSB8fFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcbiAgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcbiIsICJ2YXIgaGFzT3duUHJvcGVydHkgPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChpdCwga2V5KTtcbn07XG4iLCAibW9kdWxlLmV4cG9ydHMgPSB7fTtcbiIsICJ2YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gREVTQ1JJUFRPUlMgPyBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIHJldHVybiBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKG9iamVjdCwga2V5LCBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoMSwgdmFsdWUpKTtcbn0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIHJldHVybiBvYmplY3Q7XG59O1xuIiwgInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG5cbnZhciBkb2N1bWVudCA9IGdsb2JhbC5kb2N1bWVudDtcblxubW9kdWxlLmV4cG9ydHMgPSBkb2N1bWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4iLCAidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBjcmVhdGVFbGVtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50Jyk7XG5cbi8vIFRoYW5rJ3MgSUU4IGZvciBoaXMgZnVubnkgZGVmaW5lUHJvcGVydHlcbm1vZHVsZS5leHBvcnRzID0gIURFU0NSSVBUT1JTICYmICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoY3JlYXRlRWxlbWVudCgnZGl2JyksICdhJywge1xuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfVxuICB9KS5hICE9IDc7XG59KTtcbiIsICIvLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5nc1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xuXG52YXIgc3BsaXQgPSAnJy5zcGxpdDtcblxubW9kdWxlLmV4cG9ydHMgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIHRocm93cyBhbiBlcnJvciBpbiByaGlubywgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL3JoaW5vL2lzc3Vlcy8zNDZcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xuICByZXR1cm4gIU9iamVjdCgneicpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApO1xufSkgPyBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGNsYXNzb2YoaXQpID09ICdTdHJpbmcnID8gc3BsaXQuY2FsbChpdCwgJycpIDogT2JqZWN0KGl0KTtcbn0gOiBPYmplY3Q7XG4iLCAidmFyIE5BVElWRV9XRUFLX01BUCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uYXRpdmUtd2Vhay1tYXAnKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oaWRlJyk7XG52YXIgb2JqZWN0SGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHNoYXJlZEtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQta2V5Jyk7XG52YXIgaGlkZGVuS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oaWRkZW4ta2V5cycpO1xuXG52YXIgV2Vha01hcCA9IGdsb2JhbC5XZWFrTWFwO1xudmFyIHNldCwgZ2V0LCBoYXM7XG5cbnZhciBlbmZvcmNlID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBoYXMoaXQpID8gZ2V0KGl0KSA6IHNldChpdCwge30pO1xufTtcblxudmFyIGdldHRlckZvciA9IGZ1bmN0aW9uIChUWVBFKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoaXQpIHtcbiAgICB2YXIgc3RhdGU7XG4gICAgaWYgKCFpc09iamVjdChpdCkgfHwgKHN0YXRlID0gZ2V0KGl0KSkudHlwZSAhPT0gVFlQRSkge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICcgKyBUWVBFICsgJyByZXF1aXJlZCcpO1xuICAgIH0gcmV0dXJuIHN0YXRlO1xuICB9O1xufTtcblxuaWYgKE5BVElWRV9XRUFLX01BUCkge1xuICB2YXIgc3RvcmUgPSBuZXcgV2Vha01hcCgpO1xuICB2YXIgd21nZXQgPSBzdG9yZS5nZXQ7XG4gIHZhciB3bWhhcyA9IHN0b3JlLmhhcztcbiAgdmFyIHdtc2V0ID0gc3RvcmUuc2V0O1xuICBzZXQgPSBmdW5jdGlvbiAoaXQsIG1ldGFkYXRhKSB7XG4gICAgd21zZXQuY2FsbChzdG9yZSwgaXQsIG1ldGFkYXRhKTtcbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH07XG4gIGdldCA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiB3bWdldC5jYWxsKHN0b3JlLCBpdCkgfHwge307XG4gIH07XG4gIGhhcyA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiB3bWhhcy5jYWxsKHN0b3JlLCBpdCk7XG4gIH07XG59IGVsc2Uge1xuICB2YXIgU1RBVEUgPSBzaGFyZWRLZXkoJ3N0YXRlJyk7XG4gIGhpZGRlbktleXNbU1RBVEVdID0gdHJ1ZTtcbiAgc2V0ID0gZnVuY3Rpb24gKGl0LCBtZXRhZGF0YSkge1xuICAgIGhpZGUoaXQsIFNUQVRFLCBtZXRhZGF0YSk7XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xuICB9O1xuICBnZXQgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gb2JqZWN0SGFzKGl0LCBTVEFURSkgPyBpdFtTVEFURV0gOiB7fTtcbiAgfTtcbiAgaGFzID0gZnVuY3Rpb24gKGl0KSB7XG4gICAgcmV0dXJuIG9iamVjdEhhcyhpdCwgU1RBVEUpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgc2V0OiBzZXQsXG4gIGdldDogZ2V0LFxuICBoYXM6IGhhcyxcbiAgZW5mb3JjZTogZW5mb3JjZSxcbiAgZ2V0dGVyRm9yOiBnZXR0ZXJGb3Jcbn07XG4iLCAidmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMnKTtcblxudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xudmFyIEFycmF5UHJvdG90eXBlID0gQXJyYXkucHJvdG90eXBlO1xuXG4vLyBjaGVjayBvbiBkZWZhdWx0IEFycmF5IGl0ZXJhdG9yXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgIT09IHVuZGVmaW5lZCAmJiAoSXRlcmF0b3JzLkFycmF5ID09PSBpdCB8fCBBcnJheVByb3RvdHlwZVtJVEVSQVRPUl0gPT09IGl0KTtcbn07XG4iLCAidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbnZhciByZXBsYWNlbWVudCA9IC8jfFxcLnByb3RvdHlwZVxcLi87XG5cbnZhciBpc0ZvcmNlZCA9IGZ1bmN0aW9uIChmZWF0dXJlLCBkZXRlY3Rpb24pIHtcbiAgdmFyIHZhbHVlID0gZGF0YVtub3JtYWxpemUoZmVhdHVyZSldO1xuICByZXR1cm4gdmFsdWUgPT0gUE9MWUZJTEwgPyB0cnVlXG4gICAgOiB2YWx1ZSA9PSBOQVRJVkUgPyBmYWxzZVxuICAgIDogdHlwZW9mIGRldGVjdGlvbiA9PSAnZnVuY3Rpb24nID8gZmFpbHMoZGV0ZWN0aW9uKVxuICAgIDogISFkZXRlY3Rpb247XG59O1xuXG52YXIgbm9ybWFsaXplID0gaXNGb3JjZWQubm9ybWFsaXplID0gZnVuY3Rpb24gKHN0cmluZykge1xuICByZXR1cm4gU3RyaW5nKHN0cmluZykucmVwbGFjZShyZXBsYWNlbWVudCwgJy4nKS50b0xvd2VyQ2FzZSgpO1xufTtcblxudmFyIGRhdGEgPSBpc0ZvcmNlZC5kYXRhID0ge307XG52YXIgTkFUSVZFID0gaXNGb3JjZWQuTkFUSVZFID0gJ04nO1xudmFyIFBPTFlGSUxMID0gaXNGb3JjZWQuUE9MWUZJTEwgPSAnUCc7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNGb3JjZWQ7XG4iLCAibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJztcbn07XG4iLCAibW9kdWxlLmV4cG9ydHMgPSBmYWxzZTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG5cbnZhciBJVEVSQVRPUiA9IHdlbGxLbm93blN5bWJvbCgnaXRlcmF0b3InKTtcbnZhciBCVUdHWV9TQUZBUklfSVRFUkFUT1JTID0gZmFsc2U7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxuLy8gYCVJdGVyYXRvclByb3RvdHlwZSVgIG9iamVjdFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJWl0ZXJhdG9ycHJvdG90eXBlJS1vYmplY3RcbnZhciBJdGVyYXRvclByb3RvdHlwZSwgUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlLCBhcnJheUl0ZXJhdG9yO1xuXG5pZiAoW10ua2V5cykge1xuICBhcnJheUl0ZXJhdG9yID0gW10ua2V5cygpO1xuICAvLyBTYWZhcmkgOCBoYXMgYnVnZ3kgaXRlcmF0b3JzIHcvbyBgbmV4dGBcbiAgaWYgKCEoJ25leHQnIGluIGFycmF5SXRlcmF0b3IpKSBCVUdHWV9TQUZBUklfSVRFUkFUT1JTID0gdHJ1ZTtcbiAgZWxzZSB7XG4gICAgUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG90eXBlT2YoZ2V0UHJvdG90eXBlT2YoYXJyYXlJdGVyYXRvcikpO1xuICAgIGlmIChQcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUpIEl0ZXJhdG9yUHJvdG90eXBlID0gUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlO1xuICB9XG59XG5cbmlmIChJdGVyYXRvclByb3RvdHlwZSA9PSB1bmRlZmluZWQpIEl0ZXJhdG9yUHJvdG90eXBlID0ge307XG5cbi8vIDI1LjEuMi4xLjEgJUl0ZXJhdG9yUHJvdG90eXBlJVtAQGl0ZXJhdG9yXSgpXG5pZiAoIUlTX1BVUkUgJiYgIWhhcyhJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IpKSBoaWRlKEl0ZXJhdG9yUHJvdG90eXBlLCBJVEVSQVRPUiwgcmV0dXJuVGhpcyk7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBJdGVyYXRvclByb3RvdHlwZTogSXRlcmF0b3JQcm90b3R5cGUsXG4gIEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6IEJVR0dZX1NBRkFSSV9JVEVSQVRPUlNcbn07XG4iLCAibW9kdWxlLmV4cG9ydHMgPSB7fTtcbiIsICJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSAhIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gQ2hyb21lIDM4IFN5bWJvbCBoYXMgaW5jb3JyZWN0IHRvU3RyaW5nIGNvbnZlcnNpb25cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gIHJldHVybiAhU3RyaW5nKFN5bWJvbCgpKTtcbn0pO1xuIiwgInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgbmF0aXZlRnVuY3Rpb25Ub1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi10by1zdHJpbmcnKTtcblxudmFyIFdlYWtNYXAgPSBnbG9iYWwuV2Vha01hcDtcblxubW9kdWxlLmV4cG9ydHMgPSB0eXBlb2YgV2Vha01hcCA9PT0gJ2Z1bmN0aW9uJyAmJiAvbmF0aXZlIGNvZGUvLnRlc3QobmF0aXZlRnVuY3Rpb25Ub1N0cmluZy5jYWxsKFdlYWtNYXApKTtcbiIsICJ2YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgZGVmaW5lUHJvcGVydGllcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnRpZXMnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzJyk7XG52YXIgaGlkZGVuS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oaWRkZW4ta2V5cycpO1xudmFyIGh0bWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaHRtbCcpO1xudmFyIGRvY3VtZW50Q3JlYXRlRWxlbWVudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb2N1bWVudC1jcmVhdGUtZWxlbWVudCcpO1xudmFyIHNoYXJlZEtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQta2V5Jyk7XG52YXIgSUVfUFJPVE8gPSBzaGFyZWRLZXkoJ0lFX1BST1RPJyk7XG5cbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcbnZhciBFbXB0eSA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcblxuLy8gQ3JlYXRlIG9iamVjdCB3aXRoIGZha2UgYG51bGxgIHByb3RvdHlwZTogdXNlIGlmcmFtZSBPYmplY3Qgd2l0aCBjbGVhcmVkIHByb3RvdHlwZVxudmFyIGNyZWF0ZURpY3QgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIFRocmFzaCwgd2FzdGUgYW5kIHNvZG9teTogSUUgR0MgYnVnXG4gIHZhciBpZnJhbWUgPSBkb2N1bWVudENyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICB2YXIgbGVuZ3RoID0gZW51bUJ1Z0tleXMubGVuZ3RoO1xuICB2YXIgbHQgPSAnPCc7XG4gIHZhciBzY3JpcHQgPSAnc2NyaXB0JztcbiAgdmFyIGd0ID0gJz4nO1xuICB2YXIganMgPSAnamF2YScgKyBzY3JpcHQgKyAnOic7XG4gIHZhciBpZnJhbWVEb2N1bWVudDtcbiAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIGh0bWwuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgaWZyYW1lLnNyYyA9IFN0cmluZyhqcyk7XG4gIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgaWZyYW1lRG9jdW1lbnQud3JpdGUobHQgKyBzY3JpcHQgKyBndCArICdkb2N1bWVudC5GPU9iamVjdCcgKyBsdCArICcvJyArIHNjcmlwdCArIGd0KTtcbiAgaWZyYW1lRG9jdW1lbnQuY2xvc2UoKTtcbiAgY3JlYXRlRGljdCA9IGlmcmFtZURvY3VtZW50LkY7XG4gIHdoaWxlIChsZW5ndGgtLSkgZGVsZXRlIGNyZWF0ZURpY3RbUFJPVE9UWVBFXVtlbnVtQnVnS2V5c1tsZW5ndGhdXTtcbiAgcmV0dXJuIGNyZWF0ZURpY3QoKTtcbn07XG5cbi8vIDE5LjEuMi4yIC8gMTUuMi4zLjUgT2JqZWN0LmNyZWF0ZShPIFssIFByb3BlcnRpZXNdKVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuY3JlYXRlIHx8IGZ1bmN0aW9uIGNyZWF0ZShPLCBQcm9wZXJ0aWVzKSB7XG4gIHZhciByZXN1bHQ7XG4gIGlmIChPICE9PSBudWxsKSB7XG4gICAgRW1wdHlbUFJPVE9UWVBFXSA9IGFuT2JqZWN0KE8pO1xuICAgIHJlc3VsdCA9IG5ldyBFbXB0eSgpO1xuICAgIEVtcHR5W1BST1RPVFlQRV0gPSBudWxsO1xuICAgIC8vIGFkZCBcIl9fcHJvdG9fX1wiIGZvciBPYmplY3QuZ2V0UHJvdG90eXBlT2YgcG9seWZpbGxcbiAgICByZXN1bHRbSUVfUFJPVE9dID0gTztcbiAgfSBlbHNlIHJlc3VsdCA9IGNyZWF0ZURpY3QoKTtcbiAgcmV0dXJuIFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCA/IHJlc3VsdCA6IGRlZmluZVByb3BlcnRpZXMocmVzdWx0LCBQcm9wZXJ0aWVzKTtcbn07XG5cbmhpZGRlbktleXNbSUVfUFJPVE9dID0gdHJ1ZTtcbiIsICJ2YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgb2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IERFU0NSSVBUT1JTID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIHZhciBrZXlzID0gb2JqZWN0S2V5cyhQcm9wZXJ0aWVzKTtcbiAgdmFyIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICB2YXIgaSA9IDA7XG4gIHZhciBrZXk7XG4gIHdoaWxlIChsZW5ndGggPiBpKSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKE8sIGtleSA9IGtleXNbaSsrXSwgUHJvcGVydGllc1trZXldKTtcbiAgcmV0dXJuIE87XG59O1xuIiwgInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2llOC1kb20tZGVmaW5lJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlJyk7XG5cbnZhciBuYXRpdmVEZWZpbmVQcm9wZXJ0eSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcblxuZXhwb3J0cy5mID0gREVTQ1JJUFRPUlMgPyBuYXRpdmVEZWZpbmVQcm9wZXJ0eSA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmIChJRThfRE9NX0RFRklORSkgdHJ5IHtcbiAgICByZXR1cm4gbmF0aXZlRGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKCdnZXQnIGluIEF0dHJpYnV0ZXMgfHwgJ3NldCcgaW4gQXR0cmlidXRlcykgdGhyb3cgVHlwZUVycm9yKCdBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCcpO1xuICBpZiAoJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzKSBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTtcbiAgcmV0dXJuIE87XG59O1xuIiwgInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1wcm9wZXJ0eS1pcy1lbnVtZXJhYmxlJyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2llOC1kb20tZGVmaW5lJyk7XG5cbnZhciBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuXG5leHBvcnRzLmYgPSBERVNDUklQVE9SUyA/IG5hdGl2ZUdldE93blByb3BlcnR5RGVzY3JpcHRvciA6IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihPLCBQKSB7XG4gIE8gPSB0b0luZGV4ZWRPYmplY3QoTyk7XG4gIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKGhhcyhPLCBQKSkgcmV0dXJuIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcighcHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUuZi5jYWxsKE8sIFApLCBPW1BdKTtcbn07XG4iLCAiLy8gMTkuMS4yLjcgLyAxNS4yLjMuNCBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPKVxudmFyIGludGVybmFsT2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cy1pbnRlcm5hbCcpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VudW0tYnVnLWtleXMnKTtcblxudmFyIGhpZGRlbktleXMgPSBlbnVtQnVnS2V5cy5jb25jYXQoJ2xlbmd0aCcsICdwcm90b3R5cGUnKTtcblxuZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhPKSB7XG4gIHJldHVybiBpbnRlcm5hbE9iamVjdEtleXMoTywgaGlkZGVuS2V5cyk7XG59O1xuIiwgImV4cG9ydHMuZiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG4iLCAidmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xudmFyIENPUlJFQ1RfUFJPVE9UWVBFX0dFVFRFUiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb3JyZWN0LXByb3RvdHlwZS1nZXR0ZXInKTtcblxudmFyIElFX1BST1RPID0gc2hhcmVkS2V5KCdJRV9QUk9UTycpO1xudmFyIE9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8vIDE5LjEuMi45IC8gMTUuMi4zLjIgT2JqZWN0LmdldFByb3RvdHlwZU9mKE8pXG5tb2R1bGUuZXhwb3J0cyA9IENPUlJFQ1RfUFJPVE9UWVBFX0dFVFRFUiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIChPKSB7XG4gIE8gPSB0b09iamVjdChPKTtcbiAgaWYgKGhhcyhPLCBJRV9QUk9UTykpIHJldHVybiBPW0lFX1BST1RPXTtcbiAgaWYgKHR5cGVvZiBPLmNvbnN0cnVjdG9yID09ICdmdW5jdGlvbicgJiYgTyBpbnN0YW5jZW9mIE8uY29uc3RydWN0b3IpIHtcbiAgICByZXR1cm4gTy5jb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIH0gcmV0dXJuIE8gaW5zdGFuY2VvZiBPYmplY3QgPyBPYmplY3RQcm90b3R5cGUgOiBudWxsO1xufTtcbiIsICJ2YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGFycmF5SW5jbHVkZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMnKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG5cbnZhciBhcnJheUluZGV4T2YgPSBhcnJheUluY2x1ZGVzKGZhbHNlKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgIWhhcyhoaWRkZW5LZXlzLCBrZXkpICYmIGhhcyhPLCBrZXkpICYmIHJlc3VsdC5wdXNoKGtleSk7XG4gIC8vIERvbid0IGVudW0gYnVnICYgaGlkZGVuIGtleXNcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIGlmIChoYXMoTywga2V5ID0gbmFtZXNbaSsrXSkpIHtcbiAgICB+YXJyYXlJbmRleE9mKHJlc3VsdCwga2V5KSB8fCByZXN1bHQucHVzaChrZXkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuIiwgInZhciBpbnRlcm5hbE9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzJyk7XG5cbi8vIDE5LjEuMi4xNCAvIDE1LjIuMy4xNCBPYmplY3Qua2V5cyhPKVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiBrZXlzKE8pIHtcbiAgcmV0dXJuIGludGVybmFsT2JqZWN0S2V5cyhPLCBlbnVtQnVnS2V5cyk7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBuYXRpdmVQcm9wZXJ0eUlzRW51bWVyYWJsZSA9IHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbi8vIE5hc2hvcm4gfiBKREs4IGJ1Z1xudmFyIE5BU0hPUk5fQlVHID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yICYmICFuYXRpdmVQcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHsgMTogMiB9LCAxKTtcblxuZXhwb3J0cy5mID0gTkFTSE9STl9CVUcgPyBmdW5jdGlvbiBwcm9wZXJ0eUlzRW51bWVyYWJsZShWKSB7XG4gIHZhciBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsIFYpO1xuICByZXR1cm4gISFkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZTtcbn0gOiBuYXRpdmVQcm9wZXJ0eUlzRW51bWVyYWJsZTtcbiIsICJ2YXIgdmFsaWRhdGVTZXRQcm90b3R5cGVPZkFyZ3VtZW50cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy92YWxpZGF0ZS1zZXQtcHJvdG90eXBlLW9mLWFyZ3VtZW50cycpO1xuXG4vLyBXb3JrcyB3aXRoIF9fcHJvdG9fXyBvbmx5LiBPbGQgdjggY2FuJ3Qgd29yayB3aXRoIG51bGwgcHJvdG8gb2JqZWN0cy5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvICovXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCAoJ19fcHJvdG9fXycgaW4ge30gPyBmdW5jdGlvbiAoKSB7XG4gIHZhciBjb3JyZWN0U2V0dGVyID0gZmFsc2U7XG4gIHZhciB0ZXN0ID0ge307XG4gIHZhciBzZXR0ZXI7XG4gIHRyeSB7XG4gICAgc2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCAnX19wcm90b19fJykuc2V0O1xuICAgIHNldHRlci5jYWxsKHRlc3QsIFtdKTtcbiAgICBjb3JyZWN0U2V0dGVyID0gdGVzdCBpbnN0YW5jZW9mIEFycmF5O1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBmdW5jdGlvbiBzZXRQcm90b3R5cGVPZihPLCBwcm90bykge1xuICAgIHZhbGlkYXRlU2V0UHJvdG90eXBlT2ZBcmd1bWVudHMoTywgcHJvdG8pO1xuICAgIGlmIChjb3JyZWN0U2V0dGVyKSBzZXR0ZXIuY2FsbChPLCBwcm90byk7XG4gICAgZWxzZSBPLl9fcHJvdG9fXyA9IHByb3RvO1xuICAgIHJldHVybiBPO1xuICB9O1xufSgpIDogdW5kZWZpbmVkKTtcbiIsICJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGdldE93blByb3BlcnR5TmFtZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scycpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xuXG52YXIgUmVmbGVjdCA9IGdsb2JhbC5SZWZsZWN0O1xuXG4vLyBhbGwgb2JqZWN0IGtleXMsIGluY2x1ZGVzIG5vbi1lbnVtZXJhYmxlIGFuZCBzeW1ib2xzXG5tb2R1bGUuZXhwb3J0cyA9IFJlZmxlY3QgJiYgUmVmbGVjdC5vd25LZXlzIHx8IGZ1bmN0aW9uIG93bktleXMoaXQpIHtcbiAgdmFyIGtleXMgPSBnZXRPd25Qcm9wZXJ0eU5hbWVzTW9kdWxlLmYoYW5PYmplY3QoaXQpKTtcbiAgdmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZS5mO1xuICByZXR1cm4gZ2V0T3duUHJvcGVydHlTeW1ib2xzID8ga2V5cy5jb25jYXQoZ2V0T3duUHJvcGVydHlTeW1ib2xzKGl0KSkgOiBrZXlzO1xufTtcbiIsICJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbiIsICJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgc2V0R2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NldC1nbG9iYWwnKTtcbnZhciBuYXRpdmVGdW5jdGlvblRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXRvLXN0cmluZycpO1xudmFyIEludGVybmFsU3RhdGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKTtcblxudmFyIGdldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldDtcbnZhciBlbmZvcmNlSW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZW5mb3JjZTtcbnZhciBURU1QTEFURSA9IFN0cmluZyhuYXRpdmVGdW5jdGlvblRvU3RyaW5nKS5zcGxpdCgndG9TdHJpbmcnKTtcblxuc2hhcmVkKCdpbnNwZWN0U291cmNlJywgZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBuYXRpdmVGdW5jdGlvblRvU3RyaW5nLmNhbGwoaXQpO1xufSk7XG5cbihtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBrZXksIHZhbHVlLCBvcHRpb25zKSB7XG4gIHZhciB1bnNhZmUgPSBvcHRpb25zID8gISFvcHRpb25zLnVuc2FmZSA6IGZhbHNlO1xuICB2YXIgc2ltcGxlID0gb3B0aW9ucyA/ICEhb3B0aW9ucy5lbnVtZXJhYmxlIDogZmFsc2U7XG4gIHZhciBub1RhcmdldEdldCA9IG9wdGlvbnMgPyAhIW9wdGlvbnMubm9UYXJnZXRHZXQgOiBmYWxzZTtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKHR5cGVvZiBrZXkgPT0gJ3N0cmluZycgJiYgIWhhcyh2YWx1ZSwgJ25hbWUnKSkgaGlkZSh2YWx1ZSwgJ25hbWUnLCBrZXkpO1xuICAgIGVuZm9yY2VJbnRlcm5hbFN0YXRlKHZhbHVlKS5zb3VyY2UgPSBURU1QTEFURS5qb2luKHR5cGVvZiBrZXkgPT0gJ3N0cmluZycgPyBrZXkgOiAnJyk7XG4gIH1cbiAgaWYgKE8gPT09IGdsb2JhbCkge1xuICAgIGlmIChzaW1wbGUpIE9ba2V5XSA9IHZhbHVlO1xuICAgIGVsc2Ugc2V0R2xvYmFsKGtleSwgdmFsdWUpO1xuICAgIHJldHVybjtcbiAgfSBlbHNlIGlmICghdW5zYWZlKSB7XG4gICAgZGVsZXRlIE9ba2V5XTtcbiAgfSBlbHNlIGlmICghbm9UYXJnZXRHZXQgJiYgT1trZXldKSB7XG4gICAgc2ltcGxlID0gdHJ1ZTtcbiAgfVxuICBpZiAoc2ltcGxlKSBPW2tleV0gPSB2YWx1ZTtcbiAgZWxzZSBoaWRlKE8sIGtleSwgdmFsdWUpO1xuLy8gYWRkIGZha2UgRnVuY3Rpb24jdG9TdHJpbmcgZm9yIGNvcnJlY3Qgd29yayB3cmFwcGVkIG1ldGhvZHMgLyBjb25zdHJ1Y3RvcnMgd2l0aCBtZXRob2RzIGxpa2UgTG9EYXNoIGlzTmF0aXZlXG59KShGdW5jdGlvbi5wcm90b3R5cGUsICd0b1N0cmluZycsIGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICByZXR1cm4gdHlwZW9mIHRoaXMgPT0gJ2Z1bmN0aW9uJyAmJiBnZXRJbnRlcm5hbFN0YXRlKHRoaXMpLnNvdXJjZSB8fCBuYXRpdmVGdW5jdGlvblRvU3RyaW5nLmNhbGwodGhpcyk7XG59KTtcbiIsICIvLyBgUmVxdWlyZU9iamVjdENvZXJjaWJsZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZXF1aXJlb2JqZWN0Y29lcmNpYmxlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgPT0gdW5kZWZpbmVkKSB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjYWxsIG1ldGhvZCBvbiBcIiArIGl0KTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsICJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHRyeSB7XG4gICAgaGlkZShnbG9iYWwsIGtleSwgdmFsdWUpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGdsb2JhbFtrZXldID0gdmFsdWU7XG4gIH0gcmV0dXJuIHZhbHVlO1xufTtcbiIsICJ2YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG52YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgVE9fU1RSSU5HX1RBRyA9IHdlbGxLbm93blN5bWJvbCgndG9TdHJpbmdUYWcnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIFRBRywgU1RBVElDKSB7XG4gIGlmIChpdCAmJiAhaGFzKGl0ID0gU1RBVElDID8gaXQgOiBpdC5wcm90b3R5cGUsIFRPX1NUUklOR19UQUcpKSB7XG4gICAgZGVmaW5lUHJvcGVydHkoaXQsIFRPX1NUUklOR19UQUcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogVEFHIH0pO1xuICB9XG59O1xuIiwgInZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VpZCcpO1xuXG52YXIga2V5cyA9IHNoYXJlZCgna2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuIGtleXNba2V5XSB8fCAoa2V5c1trZXldID0gdWlkKGtleSkpO1xufTtcbiIsICJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHNldEdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtZ2xvYmFsJyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG5cbnZhciBTSEFSRUQgPSAnX19jb3JlLWpzX3NoYXJlZF9fJztcbnZhciBzdG9yZSA9IGdsb2JhbFtTSEFSRURdIHx8IHNldEdsb2JhbChTSEFSRUQsIHt9KTtcblxuKG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIHN0b3JlW2tleV0gfHwgKHN0b3JlW2tleV0gPSB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiB7fSk7XG59KSgndmVyc2lvbnMnLCBbXSkucHVzaCh7XG4gIHZlcnNpb246ICczLjEuMycsXG4gIG1vZGU6IElTX1BVUkUgPyAncHVyZScgOiAnZ2xvYmFsJyxcbiAgY29weXJpZ2h0OiAnXHUwMEE5IDIwMTkgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSknXG59KTtcbiIsICJ2YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXInKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xuXG4vLyBDT05WRVJUX1RPX1NUUklORzogdHJ1ZSAgLT4gU3RyaW5nI2F0XG4vLyBDT05WRVJUX1RPX1NUUklORzogZmFsc2UgLT4gU3RyaW5nI2NvZGVQb2ludEF0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0aGF0LCBwb3MsIENPTlZFUlRfVE9fU1RSSU5HKSB7XG4gIHZhciBTID0gU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhhdCkpO1xuICB2YXIgcG9zaXRpb24gPSB0b0ludGVnZXIocG9zKTtcbiAgdmFyIHNpemUgPSBTLmxlbmd0aDtcbiAgdmFyIGZpcnN0LCBzZWNvbmQ7XG4gIGlmIChwb3NpdGlvbiA8IDAgfHwgcG9zaXRpb24gPj0gc2l6ZSkgcmV0dXJuIENPTlZFUlRfVE9fU1RSSU5HID8gJycgOiB1bmRlZmluZWQ7XG4gIGZpcnN0ID0gUy5jaGFyQ29kZUF0KHBvc2l0aW9uKTtcbiAgcmV0dXJuIGZpcnN0IDwgMHhEODAwIHx8IGZpcnN0ID4gMHhEQkZGIHx8IHBvc2l0aW9uICsgMSA9PT0gc2l6ZVxuICAgIHx8IChzZWNvbmQgPSBTLmNoYXJDb2RlQXQocG9zaXRpb24gKyAxKSkgPCAweERDMDAgfHwgc2Vjb25kID4gMHhERkZGXG4gICAgICA/IENPTlZFUlRfVE9fU1RSSU5HID8gUy5jaGFyQXQocG9zaXRpb24pIDogZmlyc3RcbiAgICAgIDogQ09OVkVSVF9UT19TVFJJTkcgPyBTLnNsaWNlKHBvc2l0aW9uLCBwb3NpdGlvbiArIDIpIDogKGZpcnN0IC0gMHhEODAwIDw8IDEwKSArIChzZWNvbmQgLSAweERDMDApICsgMHgxMDAwMDtcbn07XG4iLCAidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyJyk7XG5cbnZhciBtYXggPSBNYXRoLm1heDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcblxuLy8gSGVscGVyIGZvciBhIHBvcHVsYXIgcmVwZWF0aW5nIGNhc2Ugb2YgdGhlIHNwZWM6XG4vLyBMZXQgaW50ZWdlciBiZSA/IFRvSW50ZWdlcihpbmRleCkuXG4vLyBJZiBpbnRlZ2VyIDwgMCwgbGV0IHJlc3VsdCBiZSBtYXgoKGxlbmd0aCArIGludGVnZXIpLCAwKTsgZWxzZSBsZXQgcmVzdWx0IGJlIG1pbihsZW5ndGgsIGxlbmd0aCkuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpbmRleCwgbGVuZ3RoKSB7XG4gIHZhciBpbnRlZ2VyID0gdG9JbnRlZ2VyKGluZGV4KTtcbiAgcmV0dXJuIGludGVnZXIgPCAwID8gbWF4KGludGVnZXIgKyBsZW5ndGgsIDApIDogbWluKGludGVnZXIsIGxlbmd0aCk7XG59O1xuIiwgIi8vIHRvT2JqZWN0IHdpdGggZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBzdHJpbmdzXG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBJbmRleGVkT2JqZWN0KHJlcXVpcmVPYmplY3RDb2VyY2libGUoaXQpKTtcbn07XG4iLCAidmFyIGNlaWwgPSBNYXRoLmNlaWw7XG52YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xuXG4vLyBgVG9JbnRlZ2VyYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXRvaW50ZWdlclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIGlzTmFOKGFyZ3VtZW50ID0gK2FyZ3VtZW50KSA/IDAgOiAoYXJndW1lbnQgPiAwID8gZmxvb3IgOiBjZWlsKShhcmd1bWVudCk7XG59O1xuIiwgInZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlcicpO1xuXG52YXIgbWluID0gTWF0aC5taW47XG5cbi8vIGBUb0xlbmd0aGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy10b2xlbmd0aFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIGFyZ3VtZW50ID4gMCA/IG1pbih0b0ludGVnZXIoYXJndW1lbnQpLCAweDFGRkZGRkZGRkZGRkZGKSA6IDA7IC8vIDIgKiogNTMgLSAxID09IDkwMDcxOTkyNTQ3NDA5OTFcbn07XG4iLCAidmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbi8vIGBUb09iamVjdGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy10b29iamVjdFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIE9iamVjdChyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KSk7XG59O1xuIiwgInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxuLy8gNy4xLjEgVG9QcmltaXRpdmUoaW5wdXQgWywgUHJlZmVycmVkVHlwZV0pXG4vLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuLy8gYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgLSBmbGFnIC0gcHJlZmVycmVkIHR5cGUgaXMgYSBzdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBTKSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSByZXR1cm4gaXQ7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAoUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHR5cGVvZiAoZm4gPSBpdC52YWx1ZU9mKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIGlmICghUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcbiIsICJ2YXIgaWQgPSAwO1xudmFyIHBvc3RmaXggPSBNYXRoLnJhbmRvbSgpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuICdTeW1ib2woJy5jb25jYXQoa2V5ID09PSB1bmRlZmluZWQgPyAnJyA6IGtleSwgJylfJywgKCsraWQgKyBwb3N0Zml4KS50b1N0cmluZygzNikpO1xufTtcbiIsICJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE8sIHByb3RvKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBpZiAoIWlzT2JqZWN0KHByb3RvKSAmJiBwcm90byAhPT0gbnVsbCkge1xuICAgIHRocm93IFR5cGVFcnJvcihcIkNhbid0IHNldCBcIiArIFN0cmluZyhwcm90bykgKyAnIGFzIGEgcHJvdG90eXBlJyk7XG4gIH1cbn07XG4iLCAidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VpZCcpO1xudmFyIE5BVElWRV9TWU1CT0wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbmF0aXZlLXN5bWJvbCcpO1xuXG52YXIgU3ltYm9sID0gZ2xvYmFsLlN5bWJvbDtcbnZhciBzdG9yZSA9IHNoYXJlZCgnd2tzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgcmV0dXJuIHN0b3JlW25hbWVdIHx8IChzdG9yZVtuYW1lXSA9IE5BVElWRV9TWU1CT0wgJiYgU3ltYm9sW25hbWVdXG4gICAgfHwgKE5BVElWRV9TWU1CT0wgPyBTeW1ib2wgOiB1aWQpKCdTeW1ib2wuJyArIG5hbWUpKTtcbn07XG4iLCAidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZnJvbSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1mcm9tJyk7XG52YXIgY2hlY2tDb3JyZWN0bmVzc09mSXRlcmF0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NoZWNrLWNvcnJlY3RuZXNzLW9mLWl0ZXJhdGlvbicpO1xuXG52YXIgSU5DT1JSRUNUX0lURVJBVElPTiA9ICFjaGVja0NvcnJlY3RuZXNzT2ZJdGVyYXRpb24oZnVuY3Rpb24gKGl0ZXJhYmxlKSB7XG4gIEFycmF5LmZyb20oaXRlcmFibGUpO1xufSk7XG5cbi8vIGBBcnJheS5mcm9tYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LmZyb21cbiQoeyB0YXJnZXQ6ICdBcnJheScsIHN0YXQ6IHRydWUsIGZvcmNlZDogSU5DT1JSRUNUX0lURVJBVElPTiB9LCB7XG4gIGZyb206IGZyb21cbn0pO1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBjb2RlUG9pbnRBdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctYXQnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG52YXIgZGVmaW5lSXRlcmF0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWl0ZXJhdG9yJyk7XG5cbnZhciBTVFJJTkdfSVRFUkFUT1IgPSAnU3RyaW5nIEl0ZXJhdG9yJztcbnZhciBzZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5zZXQ7XG52YXIgZ2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0dGVyRm9yKFNUUklOR19JVEVSQVRPUik7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlW0BAaXRlcmF0b3JdYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUtQEBpdGVyYXRvclxuZGVmaW5lSXRlcmF0b3IoU3RyaW5nLCAnU3RyaW5nJywgZnVuY3Rpb24gKGl0ZXJhdGVkKSB7XG4gIHNldEludGVybmFsU3RhdGUodGhpcywge1xuICAgIHR5cGU6IFNUUklOR19JVEVSQVRPUixcbiAgICBzdHJpbmc6IFN0cmluZyhpdGVyYXRlZCksXG4gICAgaW5kZXg6IDBcbiAgfSk7XG4vLyBgJVN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJS5uZXh0YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLSVzdHJpbmdpdGVyYXRvcnByb3RvdHlwZSUubmV4dFxufSwgZnVuY3Rpb24gbmV4dCgpIHtcbiAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKTtcbiAgdmFyIHN0cmluZyA9IHN0YXRlLnN0cmluZztcbiAgdmFyIGluZGV4ID0gc3RhdGUuaW5kZXg7XG4gIHZhciBwb2ludDtcbiAgaWYgKGluZGV4ID49IHN0cmluZy5sZW5ndGgpIHJldHVybiB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfTtcbiAgcG9pbnQgPSBjb2RlUG9pbnRBdChzdHJpbmcsIGluZGV4LCB0cnVlKTtcbiAgc3RhdGUuaW5kZXggKz0gcG9pbnQubGVuZ3RoO1xuICByZXR1cm4geyB2YWx1ZTogcG9pbnQsIGRvbmU6IGZhbHNlIH07XG59KTtcbiIsICJ2YXIgZztcclxuXHJcbi8vIFRoaXMgd29ya3MgaW4gbm9uLXN0cmljdCBtb2RlXHJcbmcgPSAoZnVuY3Rpb24oKSB7XHJcblx0cmV0dXJuIHRoaXM7XHJcbn0pKCk7XHJcblxyXG50cnkge1xyXG5cdC8vIFRoaXMgd29ya3MgaWYgZXZhbCBpcyBhbGxvd2VkIChzZWUgQ1NQKVxyXG5cdGcgPSBnIHx8IEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKSB8fCAoMSwgZXZhbCkoXCJ0aGlzXCIpO1xyXG59IGNhdGNoIChlKSB7XHJcblx0Ly8gVGhpcyB3b3JrcyBpZiB0aGUgd2luZG93IHJlZmVyZW5jZSBpcyBhdmFpbGFibGVcclxuXHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJvYmplY3RcIikgZyA9IHdpbmRvdztcclxufVxyXG5cclxuLy8gZyBjYW4gc3RpbGwgYmUgdW5kZWZpbmVkLCBidXQgbm90aGluZyB0byBkbyBhYm91dCBpdC4uLlxyXG4vLyBXZSByZXR1cm4gdW5kZWZpbmVkLCBpbnN0ZWFkIG9mIG5vdGhpbmcgaGVyZSwgc28gaXQnc1xyXG4vLyBlYXNpZXIgdG8gaGFuZGxlIHRoaXMgY2FzZS4gaWYoIWdsb2JhbCkgeyAuLi59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGc7XHJcbiIsICJpbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzL2RlZHVwZSc7XG5cbmltcG9ydCBERUZBVUxUX0FUVFJTIGZyb20gJy4vZGVmYXVsdC1hdHRycy5qc29uJztcblxuY2xhc3MgSWNvbiB7XG4gIGNvbnN0cnVjdG9yKG5hbWUsIGNvbnRlbnRzLCB0YWdzID0gW10pIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMuY29udGVudHMgPSBjb250ZW50cztcbiAgICB0aGlzLnRhZ3MgPSB0YWdzO1xuICAgIHRoaXMuYXR0cnMgPSB7XG4gICAgICAuLi5ERUZBVUxUX0FUVFJTLFxuICAgICAgLi4ueyBjbGFzczogYGZlYXRoZXIgZmVhdGhlci0ke25hbWV9YCB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIFNWRyBzdHJpbmcuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBhdHRyc1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgdG9TdmcoYXR0cnMgPSB7fSkge1xuICAgIGNvbnN0IGNvbWJpbmVkQXR0cnMgPSB7XG4gICAgICAuLi50aGlzLmF0dHJzLFxuICAgICAgLi4uYXR0cnMsXG4gICAgICAuLi57IGNsYXNzOiBjbGFzc25hbWVzKHRoaXMuYXR0cnMuY2xhc3MsIGF0dHJzLmNsYXNzKSB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gYDxzdmcgJHthdHRyc1RvU3RyaW5nKGNvbWJpbmVkQXR0cnMpfT4ke3RoaXMuY29udGVudHN9PC9zdmc+YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIGBJY29uYC5cbiAgICpcbiAgICogQWRkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIElmIG9sZCBjb2RlIGV4cGVjdHMgYGZlYXRoZXIuaWNvbnMuPG5hbWU+YFxuICAgKiB0byBiZSBhIHN0cmluZywgYHRvU3RyaW5nKClgIHdpbGwgZ2V0IGltcGxpY2l0bHkgY2FsbGVkLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudHM7XG4gIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0IGF0dHJpYnV0ZXMgb2JqZWN0IHRvIHN0cmluZyBvZiBIVE1MIGF0dHJpYnV0ZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gYXR0cnNcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGF0dHJzVG9TdHJpbmcoYXR0cnMpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGF0dHJzKVxuICAgIC5tYXAoa2V5ID0+IGAke2tleX09XCIke2F0dHJzW2tleV19XCJgKVxuICAgIC5qb2luKCcgJyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEljb247XG4iLCAiaW1wb3J0IEljb24gZnJvbSAnLi9pY29uJztcbmltcG9ydCBpY29ucyBmcm9tICcuLi9kaXN0L2ljb25zLmpzb24nO1xuaW1wb3J0IHRhZ3MgZnJvbSAnLi90YWdzLmpzb24nO1xuXG5leHBvcnQgZGVmYXVsdCBPYmplY3Qua2V5cyhpY29ucylcbiAgLm1hcChrZXkgPT4gbmV3IEljb24oa2V5LCBpY29uc1trZXldLCB0YWdzW2tleV0pKVxuICAucmVkdWNlKChvYmplY3QsIGljb24pID0+IHtcbiAgICBvYmplY3RbaWNvbi5uYW1lXSA9IGljb247XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfSwge30pO1xuIiwgImltcG9ydCBpY29ucyBmcm9tICcuL2ljb25zJztcbmltcG9ydCB0b1N2ZyBmcm9tICcuL3RvLXN2Zyc7XG5pbXBvcnQgcmVwbGFjZSBmcm9tICcuL3JlcGxhY2UnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHsgaWNvbnMsIHRvU3ZnLCByZXBsYWNlIH07XG4iLCAiLyogZXNsaW50LWVudiBicm93c2VyICovXG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzL2RlZHVwZSc7XG5cbmltcG9ydCBpY29ucyBmcm9tICcuL2ljb25zJztcblxuLyoqXG4gKiBSZXBsYWNlIGFsbCBIVE1MIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGBkYXRhLWZlYXRoZXJgIGF0dHJpYnV0ZSB3aXRoIFNWRyBtYXJrdXBcbiAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGVsZW1lbnQncyBgZGF0YS1mZWF0aGVyYCBhdHRyaWJ1dGUgdmFsdWUuXG4gKiBAcGFyYW0ge09iamVjdH0gYXR0cnNcbiAqL1xuZnVuY3Rpb24gcmVwbGFjZShhdHRycyA9IHt9KSB7XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdgZmVhdGhlci5yZXBsYWNlKClgIG9ubHkgd29ya3MgaW4gYSBicm93c2VyIGVudmlyb25tZW50LicpO1xuICB9XG5cbiAgY29uc3QgZWxlbWVudHNUb1JlcGxhY2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1mZWF0aGVyXScpO1xuXG4gIEFycmF5LmZyb20oZWxlbWVudHNUb1JlcGxhY2UpLmZvckVhY2goZWxlbWVudCA9PlxuICAgIHJlcGxhY2VFbGVtZW50KGVsZW1lbnQsIGF0dHJzKSxcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXBsYWNlIGEgc2luZ2xlIEhUTUwgZWxlbWVudCB3aXRoIFNWRyBtYXJrdXBcbiAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGVsZW1lbnQncyBgZGF0YS1mZWF0aGVyYCBhdHRyaWJ1dGUgdmFsdWUuXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50XG4gKiBAcGFyYW0ge09iamVjdH0gYXR0cnNcbiAqL1xuZnVuY3Rpb24gcmVwbGFjZUVsZW1lbnQoZWxlbWVudCwgYXR0cnMgPSB7fSkge1xuICBjb25zdCBlbGVtZW50QXR0cnMgPSBnZXRBdHRycyhlbGVtZW50KTtcbiAgY29uc3QgbmFtZSA9IGVsZW1lbnRBdHRyc1snZGF0YS1mZWF0aGVyJ107XG4gIGRlbGV0ZSBlbGVtZW50QXR0cnNbJ2RhdGEtZmVhdGhlciddO1xuXG4gIGNvbnN0IHN2Z1N0cmluZyA9IGljb25zW25hbWVdLnRvU3ZnKHtcbiAgICAuLi5hdHRycyxcbiAgICAuLi5lbGVtZW50QXR0cnMsXG4gICAgLi4ueyBjbGFzczogY2xhc3NuYW1lcyhhdHRycy5jbGFzcywgZWxlbWVudEF0dHJzLmNsYXNzKSB9LFxuICB9KTtcbiAgY29uc3Qgc3ZnRG9jdW1lbnQgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKFxuICAgIHN2Z1N0cmluZyxcbiAgICAnaW1hZ2Uvc3ZnK3htbCcsXG4gICk7XG4gIGNvbnN0IHN2Z0VsZW1lbnQgPSBzdmdEb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzdmcnKTtcblxuICBlbGVtZW50LnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHN2Z0VsZW1lbnQsIGVsZW1lbnQpO1xufVxuXG4vKipcbiAqIEdldCB0aGUgYXR0cmlidXRlcyBvZiBhbiBIVE1MIGVsZW1lbnQuXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50XG4gKiBAcmV0dXJucyB7T2JqZWN0fVxuICovXG5mdW5jdGlvbiBnZXRBdHRycyhlbGVtZW50KSB7XG4gIHJldHVybiBBcnJheS5mcm9tKGVsZW1lbnQuYXR0cmlidXRlcykucmVkdWNlKChhdHRycywgYXR0cikgPT4ge1xuICAgIGF0dHJzW2F0dHIubmFtZV0gPSBhdHRyLnZhbHVlO1xuICAgIHJldHVybiBhdHRycztcbiAgfSwge30pO1xufVxuXG5leHBvcnQgZGVmYXVsdCByZXBsYWNlO1xuIiwgImltcG9ydCBpY29ucyBmcm9tICcuL2ljb25zJztcblxuLyoqXG4gKiBDcmVhdGUgYW4gU1ZHIHN0cmluZy5cbiAqIEBkZXByZWNhdGVkXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHBhcmFtIHtPYmplY3R9IGF0dHJzXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiB0b1N2ZyhuYW1lLCBhdHRycyA9IHt9KSB7XG4gIGNvbnNvbGUud2FybihcbiAgICAnZmVhdGhlci50b1N2ZygpIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgZmVhdGhlci5pY29uc1tuYW1lXS50b1N2ZygpIGluc3RlYWQuJyxcbiAgKTtcblxuICBpZiAoIW5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSByZXF1aXJlZCBga2V5YCAoaWNvbiBuYW1lKSBwYXJhbWV0ZXIgaXMgbWlzc2luZy4nKTtcbiAgfVxuXG4gIGlmICghaWNvbnNbbmFtZV0pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgTm8gaWNvbiBtYXRjaGluZyAnJHtcbiAgICAgICAgbmFtZVxuICAgICAgfScuIFNlZSB0aGUgY29tcGxldGUgbGlzdCBvZiBpY29ucyBhdCBodHRwczovL2ZlYXRoZXJpY29ucy5jb21gLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gaWNvbnNbbmFtZV0udG9TdmcoYXR0cnMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB0b1N2ZztcbiIsICIvKlxuKiBsb2dsZXZlbCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9waW10ZXJyeS9sb2dsZXZlbFxuKlxuKiBDb3B5cmlnaHQgKGMpIDIwMTMgVGltIFBlcnJ5XG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiovXG4oZnVuY3Rpb24gKHJvb3QsIGRlZmluaXRpb24pIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG4gICAgICAgIGRlZmluZShkZWZpbml0aW9uKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnICYmIG1vZHVsZS5leHBvcnRzKSB7XG4gICAgICAgIG1vZHVsZS5leHBvcnRzID0gZGVmaW5pdGlvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJvb3QubG9nID0gZGVmaW5pdGlvbigpO1xuICAgIH1cbn0odGhpcywgZnVuY3Rpb24gKCkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuXG4gICAgLy8gU2xpZ2h0bHkgZHViaW91cyB0cmlja3MgdG8gY3V0IGRvd24gbWluaW1pemVkIGZpbGUgc2l6ZVxuICAgIHZhciBub29wID0gZnVuY3Rpb24oKSB7fTtcbiAgICB2YXIgdW5kZWZpbmVkVHlwZSA9IFwidW5kZWZpbmVkXCI7XG4gICAgdmFyIGlzSUUgPSAodHlwZW9mIHdpbmRvdyAhPT0gdW5kZWZpbmVkVHlwZSkgJiYgKHR5cGVvZiB3aW5kb3cubmF2aWdhdG9yICE9PSB1bmRlZmluZWRUeXBlKSAmJiAoXG4gICAgICAgIC9UcmlkZW50XFwvfE1TSUUgLy50ZXN0KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KVxuICAgICk7XG5cbiAgICB2YXIgbG9nTWV0aG9kcyA9IFtcbiAgICAgICAgXCJ0cmFjZVwiLFxuICAgICAgICBcImRlYnVnXCIsXG4gICAgICAgIFwiaW5mb1wiLFxuICAgICAgICBcIndhcm5cIixcbiAgICAgICAgXCJlcnJvclwiXG4gICAgXTtcblxuICAgIC8vIENyb3NzLWJyb3dzZXIgYmluZCBlcXVpdmFsZW50IHRoYXQgd29ya3MgYXQgbGVhc3QgYmFjayB0byBJRTZcbiAgICBmdW5jdGlvbiBiaW5kTWV0aG9kKG9iaiwgbWV0aG9kTmFtZSkge1xuICAgICAgICB2YXIgbWV0aG9kID0gb2JqW21ldGhvZE5hbWVdO1xuICAgICAgICBpZiAodHlwZW9mIG1ldGhvZC5iaW5kID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gbWV0aG9kLmJpbmQob2JqKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmNhbGwobWV0aG9kLCBvYmopO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIC8vIE1pc3NpbmcgYmluZCBzaGltIG9yIElFOCArIE1vZGVybml6ciwgZmFsbGJhY2sgdG8gd3JhcHBpbmdcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuYXBwbHkobWV0aG9kLCBbb2JqLCBhcmd1bWVudHNdKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVHJhY2UoKSBkb2Vzbid0IHByaW50IHRoZSBtZXNzYWdlIGluIElFLCBzbyBmb3IgdGhhdCBjYXNlIHdlIG5lZWQgdG8gd3JhcCBpdFxuICAgIGZ1bmN0aW9uIHRyYWNlRm9ySUUoKSB7XG4gICAgICAgIGlmIChjb25zb2xlLmxvZykge1xuICAgICAgICAgICAgaWYgKGNvbnNvbGUubG9nLmFwcGx5KSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2cuYXBwbHkoY29uc29sZSwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gSW4gb2xkIElFLCBuYXRpdmUgY29uc29sZSBtZXRob2RzIHRoZW1zZWx2ZXMgZG9uJ3QgaGF2ZSBhcHBseSgpLlxuICAgICAgICAgICAgICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5hcHBseShjb25zb2xlLmxvZywgW2NvbnNvbGUsIGFyZ3VtZW50c10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjb25zb2xlLnRyYWNlKSBjb25zb2xlLnRyYWNlKCk7XG4gICAgfVxuXG4gICAgLy8gQnVpbGQgdGhlIGJlc3QgbG9nZ2luZyBtZXRob2QgcG9zc2libGUgZm9yIHRoaXMgZW52XG4gICAgLy8gV2hlcmV2ZXIgcG9zc2libGUgd2Ugd2FudCB0byBiaW5kLCBub3Qgd3JhcCwgdG8gcHJlc2VydmUgc3RhY2sgdHJhY2VzXG4gICAgZnVuY3Rpb24gcmVhbE1ldGhvZChtZXRob2ROYW1lKSB7XG4gICAgICAgIGlmIChtZXRob2ROYW1lID09PSAnZGVidWcnKSB7XG4gICAgICAgICAgICBtZXRob2ROYW1lID0gJ2xvZyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGNvbnNvbGUgPT09IHVuZGVmaW5lZFR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gTm8gbWV0aG9kIHBvc3NpYmxlLCBmb3Igbm93IC0gZml4ZWQgbGF0ZXIgYnkgZW5hYmxlTG9nZ2luZ1doZW5Db25zb2xlQXJyaXZlc1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09ICd0cmFjZScgJiYgaXNJRSkge1xuICAgICAgICAgICAgcmV0dXJuIHRyYWNlRm9ySUU7XG4gICAgICAgIH0gZWxzZSBpZiAoY29uc29sZVttZXRob2ROYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gYmluZE1ldGhvZChjb25zb2xlLCBtZXRob2ROYW1lKTtcbiAgICAgICAgfSBlbHNlIGlmIChjb25zb2xlLmxvZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gYmluZE1ldGhvZChjb25zb2xlLCAnbG9nJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbm9vcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZXNlIHByaXZhdGUgZnVuY3Rpb25zIGFsd2F5cyBuZWVkIGB0aGlzYCB0byBiZSBzZXQgcHJvcGVybHlcblxuICAgIGZ1bmN0aW9uIHJlcGxhY2VMb2dnaW5nTWV0aG9kcyhsZXZlbCwgbG9nZ2VyTmFtZSkge1xuICAgICAgICAvKmpzaGludCB2YWxpZHRoaXM6dHJ1ZSAqL1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxvZ01ldGhvZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBtZXRob2ROYW1lID0gbG9nTWV0aG9kc1tpXTtcbiAgICAgICAgICAgIHRoaXNbbWV0aG9kTmFtZV0gPSAoaSA8IGxldmVsKSA/XG4gICAgICAgICAgICAgICAgbm9vcCA6XG4gICAgICAgICAgICAgICAgdGhpcy5tZXRob2RGYWN0b3J5KG1ldGhvZE5hbWUsIGxldmVsLCBsb2dnZXJOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERlZmluZSBsb2cubG9nIGFzIGFuIGFsaWFzIGZvciBsb2cuZGVidWdcbiAgICAgICAgdGhpcy5sb2cgPSB0aGlzLmRlYnVnO1xuICAgIH1cblxuICAgIC8vIEluIG9sZCBJRSB2ZXJzaW9ucywgdGhlIGNvbnNvbGUgaXNuJ3QgcHJlc2VudCB1bnRpbCB5b3UgZmlyc3Qgb3BlbiBpdC5cbiAgICAvLyBXZSBidWlsZCByZWFsTWV0aG9kKCkgcmVwbGFjZW1lbnRzIGhlcmUgdGhhdCByZWdlbmVyYXRlIGxvZ2dpbmcgbWV0aG9kc1xuICAgIGZ1bmN0aW9uIGVuYWJsZUxvZ2dpbmdXaGVuQ29uc29sZUFycml2ZXMobWV0aG9kTmFtZSwgbGV2ZWwsIGxvZ2dlck5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gdW5kZWZpbmVkVHlwZSkge1xuICAgICAgICAgICAgICAgIHJlcGxhY2VMb2dnaW5nTWV0aG9kcy5jYWxsKHRoaXMsIGxldmVsLCBsb2dnZXJOYW1lKTtcbiAgICAgICAgICAgICAgICB0aGlzW21ldGhvZE5hbWVdLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gQnkgZGVmYXVsdCwgd2UgdXNlIGNsb3NlbHkgYm91bmQgcmVhbCBtZXRob2RzIHdoZXJldmVyIHBvc3NpYmxlLCBhbmRcbiAgICAvLyBvdGhlcndpc2Ugd2Ugd2FpdCBmb3IgYSBjb25zb2xlIHRvIGFwcGVhciwgYW5kIHRoZW4gdHJ5IGFnYWluLlxuICAgIGZ1bmN0aW9uIGRlZmF1bHRNZXRob2RGYWN0b3J5KG1ldGhvZE5hbWUsIGxldmVsLCBsb2dnZXJOYW1lKSB7XG4gICAgICAgIC8qanNoaW50IHZhbGlkdGhpczp0cnVlICovXG4gICAgICAgIHJldHVybiByZWFsTWV0aG9kKG1ldGhvZE5hbWUpIHx8XG4gICAgICAgICAgICAgICBlbmFibGVMb2dnaW5nV2hlbkNvbnNvbGVBcnJpdmVzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gTG9nZ2VyKG5hbWUsIGRlZmF1bHRMZXZlbCwgZmFjdG9yeSkge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgdmFyIGN1cnJlbnRMZXZlbDtcbiAgICAgIGRlZmF1bHRMZXZlbCA9IGRlZmF1bHRMZXZlbCA9PSBudWxsID8gXCJXQVJOXCIgOiBkZWZhdWx0TGV2ZWw7XG5cbiAgICAgIHZhciBzdG9yYWdlS2V5ID0gXCJsb2dsZXZlbFwiO1xuICAgICAgaWYgKHR5cGVvZiBuYW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHN0b3JhZ2VLZXkgKz0gXCI6XCIgKyBuYW1lO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzeW1ib2xcIikge1xuICAgICAgICBzdG9yYWdlS2V5ID0gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBwZXJzaXN0TGV2ZWxJZlBvc3NpYmxlKGxldmVsTnVtKSB7XG4gICAgICAgICAgdmFyIGxldmVsTmFtZSA9IChsb2dNZXRob2RzW2xldmVsTnVtXSB8fCAnc2lsZW50JykudG9VcHBlckNhc2UoKTtcblxuICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSB1bmRlZmluZWRUeXBlIHx8ICFzdG9yYWdlS2V5KSByZXR1cm47XG5cbiAgICAgICAgICAvLyBVc2UgbG9jYWxTdG9yYWdlIGlmIGF2YWlsYWJsZVxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Vbc3RvcmFnZUtleV0gPSBsZXZlbE5hbWU7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9IGNhdGNoIChpZ25vcmUpIHt9XG5cbiAgICAgICAgICAvLyBVc2Ugc2Vzc2lvbiBjb29raWUgYXMgZmFsbGJhY2tcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB3aW5kb3cuZG9jdW1lbnQuY29va2llID1cbiAgICAgICAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoc3RvcmFnZUtleSkgKyBcIj1cIiArIGxldmVsTmFtZSArIFwiO1wiO1xuICAgICAgICAgIH0gY2F0Y2ggKGlnbm9yZSkge31cbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gZ2V0UGVyc2lzdGVkTGV2ZWwoKSB7XG4gICAgICAgICAgdmFyIHN0b3JlZExldmVsO1xuXG4gICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IHVuZGVmaW5lZFR5cGUgfHwgIXN0b3JhZ2VLZXkpIHJldHVybjtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHN0b3JlZExldmVsID0gd2luZG93LmxvY2FsU3RvcmFnZVtzdG9yYWdlS2V5XTtcbiAgICAgICAgICB9IGNhdGNoIChpZ25vcmUpIHt9XG5cbiAgICAgICAgICAvLyBGYWxsYmFjayB0byBjb29raWVzIGlmIGxvY2FsIHN0b3JhZ2UgZ2l2ZXMgdXMgbm90aGluZ1xuICAgICAgICAgIGlmICh0eXBlb2Ygc3RvcmVkTGV2ZWwgPT09IHVuZGVmaW5lZFR5cGUpIHtcbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgIHZhciBjb29raWUgPSB3aW5kb3cuZG9jdW1lbnQuY29va2llO1xuICAgICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gY29va2llLmluZGV4T2YoXG4gICAgICAgICAgICAgICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KHN0b3JhZ2VLZXkpICsgXCI9XCIpO1xuICAgICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgIHN0b3JlZExldmVsID0gL14oW147XSspLy5leGVjKGNvb2tpZS5zbGljZShsb2NhdGlvbikpWzFdO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGNhdGNoIChpZ25vcmUpIHt9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gSWYgdGhlIHN0b3JlZCBsZXZlbCBpcyBub3QgdmFsaWQsIHRyZWF0IGl0IGFzIGlmIG5vdGhpbmcgd2FzIHN0b3JlZC5cbiAgICAgICAgICBpZiAoc2VsZi5sZXZlbHNbc3RvcmVkTGV2ZWxdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgc3RvcmVkTGV2ZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHN0b3JlZExldmVsO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBjbGVhclBlcnNpc3RlZExldmVsKCkge1xuICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSB1bmRlZmluZWRUeXBlIHx8ICFzdG9yYWdlS2V5KSByZXR1cm47XG5cbiAgICAgICAgICAvLyBVc2UgbG9jYWxTdG9yYWdlIGlmIGF2YWlsYWJsZVxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShzdG9yYWdlS2V5KTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH0gY2F0Y2ggKGlnbm9yZSkge31cblxuICAgICAgICAgIC8vIFVzZSBzZXNzaW9uIGNvb2tpZSBhcyBmYWxsYmFja1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHdpbmRvdy5kb2N1bWVudC5jb29raWUgPVxuICAgICAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChzdG9yYWdlS2V5KSArIFwiPTsgZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIFVUQ1wiO1xuICAgICAgICAgIH0gY2F0Y2ggKGlnbm9yZSkge31cbiAgICAgIH1cblxuICAgICAgLypcbiAgICAgICAqXG4gICAgICAgKiBQdWJsaWMgbG9nZ2VyIEFQSSAtIHNlZSBodHRwczovL2dpdGh1Yi5jb20vcGltdGVycnkvbG9nbGV2ZWwgZm9yIGRldGFpbHNcbiAgICAgICAqXG4gICAgICAgKi9cblxuICAgICAgc2VsZi5uYW1lID0gbmFtZTtcblxuICAgICAgc2VsZi5sZXZlbHMgPSB7IFwiVFJBQ0VcIjogMCwgXCJERUJVR1wiOiAxLCBcIklORk9cIjogMiwgXCJXQVJOXCI6IDMsXG4gICAgICAgICAgXCJFUlJPUlwiOiA0LCBcIlNJTEVOVFwiOiA1fTtcblxuICAgICAgc2VsZi5tZXRob2RGYWN0b3J5ID0gZmFjdG9yeSB8fCBkZWZhdWx0TWV0aG9kRmFjdG9yeTtcblxuICAgICAgc2VsZi5nZXRMZXZlbCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gY3VycmVudExldmVsO1xuICAgICAgfTtcblxuICAgICAgc2VsZi5zZXRMZXZlbCA9IGZ1bmN0aW9uIChsZXZlbCwgcGVyc2lzdCkge1xuICAgICAgICAgIGlmICh0eXBlb2YgbGV2ZWwgPT09IFwic3RyaW5nXCIgJiYgc2VsZi5sZXZlbHNbbGV2ZWwudG9VcHBlckNhc2UoKV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBsZXZlbCA9IHNlbGYubGV2ZWxzW2xldmVsLnRvVXBwZXJDYXNlKCldO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHlwZW9mIGxldmVsID09PSBcIm51bWJlclwiICYmIGxldmVsID49IDAgJiYgbGV2ZWwgPD0gc2VsZi5sZXZlbHMuU0lMRU5UKSB7XG4gICAgICAgICAgICAgIGN1cnJlbnRMZXZlbCA9IGxldmVsO1xuICAgICAgICAgICAgICBpZiAocGVyc2lzdCAhPT0gZmFsc2UpIHsgIC8vIGRlZmF1bHRzIHRvIHRydWVcbiAgICAgICAgICAgICAgICAgIHBlcnNpc3RMZXZlbElmUG9zc2libGUobGV2ZWwpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJlcGxhY2VMb2dnaW5nTWV0aG9kcy5jYWxsKHNlbGYsIGxldmVsLCBuYW1lKTtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb25zb2xlID09PSB1bmRlZmluZWRUeXBlICYmIGxldmVsIDwgc2VsZi5sZXZlbHMuU0lMRU5UKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gXCJObyBjb25zb2xlIGF2YWlsYWJsZSBmb3IgbG9nZ2luZ1wiO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhyb3cgXCJsb2cuc2V0TGV2ZWwoKSBjYWxsZWQgd2l0aCBpbnZhbGlkIGxldmVsOiBcIiArIGxldmVsO1xuICAgICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHNlbGYuc2V0RGVmYXVsdExldmVsID0gZnVuY3Rpb24gKGxldmVsKSB7XG4gICAgICAgICAgZGVmYXVsdExldmVsID0gbGV2ZWw7XG4gICAgICAgICAgaWYgKCFnZXRQZXJzaXN0ZWRMZXZlbCgpKSB7XG4gICAgICAgICAgICAgIHNlbGYuc2V0TGV2ZWwobGV2ZWwsIGZhbHNlKTtcbiAgICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBzZWxmLnJlc2V0TGV2ZWwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgc2VsZi5zZXRMZXZlbChkZWZhdWx0TGV2ZWwsIGZhbHNlKTtcbiAgICAgICAgICBjbGVhclBlcnNpc3RlZExldmVsKCk7XG4gICAgICB9O1xuXG4gICAgICBzZWxmLmVuYWJsZUFsbCA9IGZ1bmN0aW9uKHBlcnNpc3QpIHtcbiAgICAgICAgICBzZWxmLnNldExldmVsKHNlbGYubGV2ZWxzLlRSQUNFLCBwZXJzaXN0KTtcbiAgICAgIH07XG5cbiAgICAgIHNlbGYuZGlzYWJsZUFsbCA9IGZ1bmN0aW9uKHBlcnNpc3QpIHtcbiAgICAgICAgICBzZWxmLnNldExldmVsKHNlbGYubGV2ZWxzLlNJTEVOVCwgcGVyc2lzdCk7XG4gICAgICB9O1xuXG4gICAgICAvLyBJbml0aWFsaXplIHdpdGggdGhlIHJpZ2h0IGxldmVsXG4gICAgICB2YXIgaW5pdGlhbExldmVsID0gZ2V0UGVyc2lzdGVkTGV2ZWwoKTtcbiAgICAgIGlmIChpbml0aWFsTGV2ZWwgPT0gbnVsbCkge1xuICAgICAgICAgIGluaXRpYWxMZXZlbCA9IGRlZmF1bHRMZXZlbDtcbiAgICAgIH1cbiAgICAgIHNlbGYuc2V0TGV2ZWwoaW5pdGlhbExldmVsLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKlxuICAgICAqIFRvcC1sZXZlbCBBUElcbiAgICAgKlxuICAgICAqL1xuXG4gICAgdmFyIGRlZmF1bHRMb2dnZXIgPSBuZXcgTG9nZ2VyKCk7XG5cbiAgICB2YXIgX2xvZ2dlcnNCeU5hbWUgPSB7fTtcbiAgICBkZWZhdWx0TG9nZ2VyLmdldExvZ2dlciA9IGZ1bmN0aW9uIGdldExvZ2dlcihuYW1lKSB7XG4gICAgICAgIGlmICgodHlwZW9mIG5hbWUgIT09IFwic3ltYm9sXCIgJiYgdHlwZW9mIG5hbWUgIT09IFwic3RyaW5nXCIpIHx8IG5hbWUgPT09IFwiXCIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiWW91IG11c3Qgc3VwcGx5IGEgbmFtZSB3aGVuIGNyZWF0aW5nIGEgbG9nZ2VyLlwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBsb2dnZXIgPSBfbG9nZ2Vyc0J5TmFtZVtuYW1lXTtcbiAgICAgICAgaWYgKCFsb2dnZXIpIHtcbiAgICAgICAgICBsb2dnZXIgPSBfbG9nZ2Vyc0J5TmFtZVtuYW1lXSA9IG5ldyBMb2dnZXIoXG4gICAgICAgICAgICBuYW1lLCBkZWZhdWx0TG9nZ2VyLmdldExldmVsKCksIGRlZmF1bHRMb2dnZXIubWV0aG9kRmFjdG9yeSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvZ2dlcjtcbiAgICB9O1xuXG4gICAgLy8gR3JhYiB0aGUgY3VycmVudCBnbG9iYWwgbG9nIHZhcmlhYmxlIGluIGNhc2Ugb2Ygb3ZlcndyaXRlXG4gICAgdmFyIF9sb2cgPSAodHlwZW9mIHdpbmRvdyAhPT0gdW5kZWZpbmVkVHlwZSkgPyB3aW5kb3cubG9nIDogdW5kZWZpbmVkO1xuICAgIGRlZmF1bHRMb2dnZXIubm9Db25mbGljdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gdW5kZWZpbmVkVHlwZSAmJlxuICAgICAgICAgICAgICAgd2luZG93LmxvZyA9PT0gZGVmYXVsdExvZ2dlcikge1xuICAgICAgICAgICAgd2luZG93LmxvZyA9IF9sb2c7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGVmYXVsdExvZ2dlcjtcbiAgICB9O1xuXG4gICAgZGVmYXVsdExvZ2dlci5nZXRMb2dnZXJzID0gZnVuY3Rpb24gZ2V0TG9nZ2VycygpIHtcbiAgICAgICAgcmV0dXJuIF9sb2dnZXJzQnlOYW1lO1xuICAgIH07XG5cbiAgICAvLyBFUzYgZGVmYXVsdCBleHBvcnQsIGZvciBjb21wYXRpYmlsaXR5XG4gICAgZGVmYXVsdExvZ2dlclsnZGVmYXVsdCddID0gZGVmYXVsdExvZ2dlcjtcblxuICAgIHJldHVybiBkZWZhdWx0TG9nZ2VyO1xufSkpO1xuIiwgIi8qKlxuICogR3JhcGhvbG9neSBVdGlsaXRpZXNcbiAqID09PT09PT09PT09PT09PT09PT09PVxuICpcbiAqIENvbGxlY3Rpb24gb2YgaGVscGZ1bCBmdW5jdGlvbnMgdXNlZCBieSB0aGUgaW1wbGVtZW50YXRpb24uXG4gKi9cblxuLyoqXG4gKiBPYmplY3QuYXNzaWduLWxpa2UgcG9seWZpbGwuXG4gKlxuICogQHBhcmFtICB7b2JqZWN0fSB0YXJnZXQgICAgICAgLSBGaXJzdCBvYmplY3QuXG4gKiBAcGFyYW0gIHtvYmplY3R9IFsuLi5vYmplY3RzXSAtIE9iamVjdHMgdG8gbWVyZ2UuXG4gKiBAcmV0dXJuIHtvYmplY3R9XG4gKi9cbmZ1bmN0aW9uIGFzc2lnblBvbHlmaWxsKCkge1xuICBjb25zdCB0YXJnZXQgPSBhcmd1bWVudHNbMF07XG5cbiAgZm9yIChsZXQgaSA9IDEsIGwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgaWYgKCFhcmd1bWVudHNbaV0pIGNvbnRpbnVlO1xuXG4gICAgZm9yIChjb25zdCBrIGluIGFyZ3VtZW50c1tpXSkgdGFyZ2V0W2tdID0gYXJndW1lbnRzW2ldW2tdO1xuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxubGV0IGFzc2lnbiA9IGFzc2lnblBvbHlmaWxsO1xuXG5pZiAodHlwZW9mIE9iamVjdC5hc3NpZ24gPT09ICdmdW5jdGlvbicpIGFzc2lnbiA9IE9iamVjdC5hc3NpZ247XG5cbmV4cG9ydCB7YXNzaWdufTtcblxuLyoqXG4gKiBGdW5jdGlvbiByZXR1cm5pbmcgdGhlIGZpcnN0IG1hdGNoaW5nIGVkZ2UgZm9yIGdpdmVuIHBhdGguXG4gKiBOb3RlOiB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IGNoZWNrIHRoZSBleGlzdGVuY2Ugb2Ygc291cmNlICYgdGFyZ2V0LiBUaGlzXG4gKiBtdXN0IGJlIHBlcmZvcm1lZCBieSB0aGUgY2FsbGVyLlxuICpcbiAqIEBwYXJhbSAge0dyYXBofSAgZ3JhcGggIC0gVGFyZ2V0IGdyYXBoLlxuICogQHBhcmFtICB7YW55fSAgICBzb3VyY2UgLSBTb3VyY2Ugbm9kZS5cbiAqIEBwYXJhbSAge2FueX0gICAgdGFyZ2V0IC0gVGFyZ2V0IG5vZGUuXG4gKiBAcGFyYW0gIHtzdHJpbmd9IHR5cGUgICAtIFR5cGUgb2YgdGhlIGVkZ2UgKG1peGVkLCBkaXJlY3RlZCBvciB1bmRpcmVjdGVkKS5cbiAqIEByZXR1cm4ge3N0cmluZ3xudWxsfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWF0Y2hpbmdFZGdlKGdyYXBoLCBzb3VyY2UsIHRhcmdldCwgdHlwZSkge1xuICBjb25zdCBzb3VyY2VEYXRhID0gZ3JhcGguX25vZGVzLmdldChzb3VyY2UpO1xuXG4gIGxldCBlZGdlID0gbnVsbDtcblxuICBpZiAoIXNvdXJjZURhdGEpIHJldHVybiBlZGdlO1xuXG4gIGlmICh0eXBlID09PSAnbWl4ZWQnKSB7XG4gICAgZWRnZSA9XG4gICAgICAoc291cmNlRGF0YS5vdXQgJiYgc291cmNlRGF0YS5vdXRbdGFyZ2V0XSkgfHxcbiAgICAgIChzb3VyY2VEYXRhLnVuZGlyZWN0ZWQgJiYgc291cmNlRGF0YS51bmRpcmVjdGVkW3RhcmdldF0pO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdkaXJlY3RlZCcpIHtcbiAgICBlZGdlID0gc291cmNlRGF0YS5vdXQgJiYgc291cmNlRGF0YS5vdXRbdGFyZ2V0XTtcbiAgfSBlbHNlIHtcbiAgICBlZGdlID0gc291cmNlRGF0YS51bmRpcmVjdGVkICYmIHNvdXJjZURhdGEudW5kaXJlY3RlZFt0YXJnZXRdO1xuICB9XG5cbiAgcmV0dXJuIGVkZ2U7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHZhbHVlIGlzIGEgR3JhcGggaW1wbGVtZW50YXRpb24gaW5zdGFuY2UuXG4gKlxuICogQHBhcmFtICB7bWl4ZWR9ICAgdmFsdWUgLSBUYXJnZXQgdmFsdWUuXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNHcmFwaCh2YWx1ZSkge1xuICByZXR1cm4gKFxuICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgIHR5cGVvZiB2YWx1ZS5hZGRVbmRpcmVjdGVkRWRnZVdpdGhLZXkgPT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlb2YgdmFsdWUuZHJvcE5vZGUgPT09ICdmdW5jdGlvbidcbiAgKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBwbGFpbiBvYmplY3QuXG4gKlxuICogQHBhcmFtICB7bWl4ZWR9ICAgdmFsdWUgLSBUYXJnZXQgdmFsdWUuXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZSkge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUuY29uc3RydWN0b3IgPT09IE9iamVjdFxuICApO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgaXMgZW1wdHkuXG4gKlxuICogQHBhcmFtICB7b2JqZWN0fSAgbyAtIFRhcmdldCBPYmplY3QuXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbXB0eShvKSB7XG4gIGxldCBrO1xuXG4gIGZvciAoayBpbiBvKSByZXR1cm4gZmFsc2U7XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIFwicHJpdmF0ZVwiIHByb3BlcnR5IGZvciB0aGUgZ2l2ZW4gbWVtYmVyIG5hbWUgYnkgY29uY2VhbGluZyBpdFxuICogdXNpbmcgdGhlIGBlbnVtZXJhYmxlYCBvcHRpb24uXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHRhcmdldCAtIFRhcmdldCBvYmplY3QuXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAgIC0gTWVtYmVyIG5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcml2YXRlUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB2YWx1ZSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICB2YWx1ZVxuICB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgcmVhZC1vbmx5IHByb3BlcnR5IGZvciB0aGUgZ2l2ZW4gbWVtYmVyIG5hbWUgJiB0aGUgZ2l2ZW4gZ2V0dGVyLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSAgIHRhcmdldCAtIFRhcmdldCBvYmplY3QuXG4gKiBAcGFyYW0ge3N0cmluZ30gICBuYW1lICAgLSBNZW1iZXIgbmFtZS5cbiAqIEBwYXJhbSB7bWl4ZWR9ICAgIHZhbHVlICAtIFRoZSBhdHRhY2hlZCBnZXR0ZXIgb3IgZml4ZWQgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWFkT25seVByb3BlcnR5KHRhcmdldCwgbmFtZSwgdmFsdWUpIHtcbiAgY29uc3QgZGVzY3JpcHRvciA9IHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9O1xuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBkZXNjcmlwdG9yLmdldCA9IHZhbHVlO1xuICB9IGVsc2Uge1xuICAgIGRlc2NyaXB0b3IudmFsdWUgPSB2YWx1ZTtcbiAgICBkZXNjcmlwdG9yLndyaXRhYmxlID0gZmFsc2U7XG4gIH1cblxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCBkZXNjcmlwdG9yKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGdpdmVuIG9iamVjdCBjb25zdGl0dXRlIHZhbGlkIGhpbnRzLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBoaW50cyAtIFRhcmdldCBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUhpbnRzKGhpbnRzKSB7XG4gIGlmICghaXNQbGFpbk9iamVjdChoaW50cykpIHJldHVybiBmYWxzZTtcblxuICBpZiAoaGludHMuYXR0cmlidXRlcyAmJiAhQXJyYXkuaXNBcnJheShoaW50cy5hdHRyaWJ1dGVzKSkgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiBnZW5lcmF0aW5nIGluY3JlbWVudGFsIGlkcyBmb3IgZWRnZXMuXG4gKlxuICogQHJldHVybiB7ZnVuY3Rpb259XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmNyZW1lbnRhbElkU3RhcnRpbmdGcm9tUmFuZG9tQnl0ZSgpIHtcbiAgbGV0IGkgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyNTYpICYgMHhmZjtcblxuICByZXR1cm4gKCkgPT4ge1xuICAgIHJldHVybiBpKys7XG4gIH07XG59XG4iLCAiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFIgPSB0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgPyBSZWZsZWN0IDogbnVsbFxudmFyIFJlZmxlY3RBcHBseSA9IFIgJiYgdHlwZW9mIFIuYXBwbHkgPT09ICdmdW5jdGlvbidcbiAgPyBSLmFwcGx5XG4gIDogZnVuY3Rpb24gUmVmbGVjdEFwcGx5KHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpIHtcbiAgICByZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwodGFyZ2V0LCByZWNlaXZlciwgYXJncyk7XG4gIH1cblxudmFyIFJlZmxlY3RPd25LZXlzXG5pZiAoUiAmJiB0eXBlb2YgUi5vd25LZXlzID09PSAnZnVuY3Rpb24nKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gUi5vd25LZXlzXG59IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KVxuICAgICAgLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkpO1xuICB9O1xufSBlbHNlIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gUHJvY2Vzc0VtaXRXYXJuaW5nKHdhcm5pbmcpIHtcbiAgaWYgKGNvbnNvbGUgJiYgY29uc29sZS53YXJuKSBjb25zb2xlLndhcm4od2FybmluZyk7XG59XG5cbnZhciBOdW1iZXJJc05hTiA9IE51bWJlci5pc05hTiB8fCBmdW5jdGlvbiBOdW1iZXJJc05hTih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xufVxuXG5mdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gIEV2ZW50RW1pdHRlci5pbml0LmNhbGwodGhpcyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50RW1pdHRlcjtcbm1vZHVsZS5leHBvcnRzLm9uY2UgPSBvbmNlO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50c0NvdW50ID0gMDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxudmFyIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxuZnVuY3Rpb24gY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcikge1xuICBpZiAodHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwibGlzdGVuZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBsaXN0ZW5lcik7XG4gIH1cbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEV2ZW50RW1pdHRlciwgJ2RlZmF1bHRNYXhMaXN0ZW5lcnMnLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24oYXJnKSB7XG4gICAgaWYgKHR5cGVvZiBhcmcgIT09ICdudW1iZXInIHx8IGFyZyA8IDAgfHwgTnVtYmVySXNOYU4oYXJnKSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcImRlZmF1bHRNYXhMaXN0ZW5lcnNcIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgYXJnICsgJy4nKTtcbiAgICB9XG4gICAgZGVmYXVsdE1heExpc3RlbmVycyA9IGFyZztcbiAgfVxufSk7XG5cbkV2ZW50RW1pdHRlci5pbml0ID0gZnVuY3Rpb24oKSB7XG5cbiAgaWYgKHRoaXMuX2V2ZW50cyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLl9ldmVudHMgPT09IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKSB7XG4gICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gIH1cblxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSB0aGlzLl9tYXhMaXN0ZW5lcnMgfHwgdW5kZWZpbmVkO1xufTtcblxuLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzXG4vLyB0aGF0IHRvIGJlIGluY3JlYXNlZC4gU2V0IHRvIHplcm8gZm9yIHVubGltaXRlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gc2V0TWF4TGlzdGVuZXJzKG4pIHtcbiAgaWYgKHR5cGVvZiBuICE9PSAnbnVtYmVyJyB8fCBuIDwgMCB8fCBOdW1iZXJJc05hTihuKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJuXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIG4gKyAnLicpO1xuICB9XG4gIHRoaXMuX21heExpc3RlbmVycyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuZnVuY3Rpb24gX2dldE1heExpc3RlbmVycyh0aGF0KSB7XG4gIGlmICh0aGF0Ll9tYXhMaXN0ZW5lcnMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIHJldHVybiB0aGF0Ll9tYXhMaXN0ZW5lcnM7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gZ2V0TWF4TGlzdGVuZXJzKCkge1xuICByZXR1cm4gX2dldE1heExpc3RlbmVycyh0aGlzKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uIGVtaXQodHlwZSkge1xuICB2YXIgYXJncyA9IFtdO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgYXJncy5wdXNoKGFyZ3VtZW50c1tpXSk7XG4gIHZhciBkb0Vycm9yID0gKHR5cGUgPT09ICdlcnJvcicpO1xuXG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZClcbiAgICBkb0Vycm9yID0gKGRvRXJyb3IgJiYgZXZlbnRzLmVycm9yID09PSB1bmRlZmluZWQpO1xuICBlbHNlIGlmICghZG9FcnJvcilcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gJ2Vycm9yJyBldmVudCBsaXN0ZW5lciB0aGVuIHRocm93LlxuICBpZiAoZG9FcnJvcikge1xuICAgIHZhciBlcjtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKVxuICAgICAgZXIgPSBhcmdzWzBdO1xuICAgIGlmIChlciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAvLyBOb3RlOiBUaGUgY29tbWVudHMgb24gdGhlIGB0aHJvd2AgbGluZXMgYXJlIGludGVudGlvbmFsLCB0aGV5IHNob3dcbiAgICAgIC8vIHVwIGluIE5vZGUncyBvdXRwdXQgaWYgdGhpcyByZXN1bHRzIGluIGFuIHVuaGFuZGxlZCBleGNlcHRpb24uXG4gICAgICB0aHJvdyBlcjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgICB9XG4gICAgLy8gQXQgbGVhc3QgZ2l2ZSBzb21lIGtpbmQgb2YgY29udGV4dCB0byB0aGUgdXNlclxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1VuaGFuZGxlZCBlcnJvci4nICsgKGVyID8gJyAoJyArIGVyLm1lc3NhZ2UgKyAnKScgOiAnJykpO1xuICAgIGVyci5jb250ZXh0ID0gZXI7XG4gICAgdGhyb3cgZXJyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICB9XG5cbiAgdmFyIGhhbmRsZXIgPSBldmVudHNbdHlwZV07XG5cbiAgaWYgKGhhbmRsZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgUmVmbGVjdEFwcGx5KGhhbmRsZXIsIHRoaXMsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIHZhciBsZW4gPSBoYW5kbGVyLmxlbmd0aDtcbiAgICB2YXIgbGlzdGVuZXJzID0gYXJyYXlDbG9uZShoYW5kbGVyLCBsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICBSZWZsZWN0QXBwbHkobGlzdGVuZXJzW2ldLCB0aGlzLCBhcmdzKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZnVuY3Rpb24gX2FkZExpc3RlbmVyKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIsIHByZXBlbmQpIHtcbiAgdmFyIG07XG4gIHZhciBldmVudHM7XG4gIHZhciBleGlzdGluZztcblxuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRhcmdldC5fZXZlbnRzQ291bnQgPSAwO1xuICB9IGVsc2Uge1xuICAgIC8vIFRvIGF2b2lkIHJlY3Vyc2lvbiBpbiB0aGUgY2FzZSB0aGF0IHR5cGUgPT09IFwibmV3TGlzdGVuZXJcIiEgQmVmb3JlXG4gICAgLy8gYWRkaW5nIGl0IHRvIHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgXCJuZXdMaXN0ZW5lclwiLlxuICAgIGlmIChldmVudHMubmV3TGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFyZ2V0LmVtaXQoJ25ld0xpc3RlbmVyJywgdHlwZSxcbiAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyID8gbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7XG5cbiAgICAgIC8vIFJlLWFzc2lnbiBgZXZlbnRzYCBiZWNhdXNlIGEgbmV3TGlzdGVuZXIgaGFuZGxlciBjb3VsZCBoYXZlIGNhdXNlZCB0aGVcbiAgICAgIC8vIHRoaXMuX2V2ZW50cyB0byBiZSBhc3NpZ25lZCB0byBhIG5ldyBvYmplY3RcbiAgICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICAgIH1cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXTtcbiAgfVxuXG4gIGlmIChleGlzdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugb2Ygb25lIGxpc3RlbmVyLiBEb24ndCBuZWVkIHRoZSBleHRyYSBhcnJheSBvYmplY3QuXG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPSBsaXN0ZW5lcjtcbiAgICArK3RhcmdldC5fZXZlbnRzQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gQWRkaW5nIHRoZSBzZWNvbmQgZWxlbWVudCwgbmVlZCB0byBjaGFuZ2UgdG8gYXJyYXkuXG4gICAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9XG4gICAgICAgIHByZXBlbmQgPyBbbGlzdGVuZXIsIGV4aXN0aW5nXSA6IFtleGlzdGluZywgbGlzdGVuZXJdO1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLlxuICAgIH0gZWxzZSBpZiAocHJlcGVuZCkge1xuICAgICAgZXhpc3RpbmcudW5zaGlmdChsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0aW5nLnB1c2gobGlzdGVuZXIpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBsaXN0ZW5lciBsZWFrXG4gICAgbSA9IF9nZXRNYXhMaXN0ZW5lcnModGFyZ2V0KTtcbiAgICBpZiAobSA+IDAgJiYgZXhpc3RpbmcubGVuZ3RoID4gbSAmJiAhZXhpc3Rpbmcud2FybmVkKSB7XG4gICAgICBleGlzdGluZy53YXJuZWQgPSB0cnVlO1xuICAgICAgLy8gTm8gZXJyb3IgY29kZSBmb3IgdGhpcyBzaW5jZSBpdCBpcyBhIFdhcm5pbmdcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgdmFyIHcgPSBuZXcgRXJyb3IoJ1Bvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmxlbmd0aCArICcgJyArIFN0cmluZyh0eXBlKSArICcgbGlzdGVuZXJzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5jcmVhc2UgbGltaXQnKTtcbiAgICAgIHcubmFtZSA9ICdNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmcnO1xuICAgICAgdy5lbWl0dGVyID0gdGFyZ2V0O1xuICAgICAgdy50eXBlID0gdHlwZTtcbiAgICAgIHcuY291bnQgPSBleGlzdGluZy5sZW5ndGg7XG4gICAgICBQcm9jZXNzRW1pdFdhcm5pbmcodyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IGZ1bmN0aW9uIGFkZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub24gPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCB0cnVlKTtcbiAgICB9O1xuXG5mdW5jdGlvbiBvbmNlV3JhcHBlcigpIHtcbiAgaWYgKCF0aGlzLmZpcmVkKSB7XG4gICAgdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLCB0aGlzLndyYXBGbik7XG4gICAgdGhpcy5maXJlZCA9IHRydWU7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5jYWxsKHRoaXMudGFyZ2V0KTtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCwgYXJndW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfb25jZVdyYXAodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lcikge1xuICB2YXIgc3RhdGUgPSB7IGZpcmVkOiBmYWxzZSwgd3JhcEZuOiB1bmRlZmluZWQsIHRhcmdldDogdGFyZ2V0LCB0eXBlOiB0eXBlLCBsaXN0ZW5lcjogbGlzdGVuZXIgfTtcbiAgdmFyIHdyYXBwZWQgPSBvbmNlV3JhcHBlci5iaW5kKHN0YXRlKTtcbiAgd3JhcHBlZC5saXN0ZW5lciA9IGxpc3RlbmVyO1xuICBzdGF0ZS53cmFwRm4gPSB3cmFwcGVkO1xuICByZXR1cm4gd3JhcHBlZDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbmNlID0gZnVuY3Rpb24gb25jZSh0eXBlLCBsaXN0ZW5lcikge1xuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgdGhpcy5vbih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRPbmNlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgICAgdGhpcy5wcmVwZW5kTGlzdGVuZXIodHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4vLyBFbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWYgYW5kIG9ubHkgaWYgdGhlIGxpc3RlbmVyIHdhcyByZW1vdmVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHZhciBsaXN0LCBldmVudHMsIHBvc2l0aW9uLCBpLCBvcmlnaW5hbExpc3RlbmVyO1xuXG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgbGlzdCA9IGV2ZW50c1t0eXBlXTtcbiAgICAgIGlmIChsaXN0ID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBpZiAobGlzdCA9PT0gbGlzdGVuZXIgfHwgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3QubGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBsaXN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHBvc2l0aW9uID0gLTE7XG5cbiAgICAgICAgZm9yIChpID0gbGlzdC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGlmIChsaXN0W2ldID09PSBsaXN0ZW5lciB8fCBsaXN0W2ldLmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICAgICAgb3JpZ2luYWxMaXN0ZW5lciA9IGxpc3RbaV0ubGlzdGVuZXI7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9zaXRpb24gPCAwKVxuICAgICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gMClcbiAgICAgICAgICBsaXN0LnNoaWZ0KCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHNwbGljZU9uZShsaXN0LCBwb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlzdC5sZW5ndGggPT09IDEpXG4gICAgICAgICAgZXZlbnRzW3R5cGVdID0gbGlzdFswXTtcblxuICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIG9yaWdpbmFsTGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9mZiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cbiAgICBmdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnModHlwZSkge1xuICAgICAgdmFyIGxpc3RlbmVycywgZXZlbnRzLCBpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0XG4gICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudHNbdHlwZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICAvLyBlbWl0IHJlbW92ZUxpc3RlbmVyIGZvciBhbGwgbGlzdGVuZXJzIG9uIGFsbCBldmVudHNcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZXZlbnRzKTtcbiAgICAgICAgdmFyIGtleTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgIGlmIChrZXkgPT09ICdyZW1vdmVMaXN0ZW5lcicpIGNvbnRpbnVlO1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3JlbW92ZUxpc3RlbmVyJyk7XG4gICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIGxpc3RlbmVycyA9IGV2ZW50c1t0eXBlXTtcblxuICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lcnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpO1xuICAgICAgfSBlbHNlIGlmIChsaXN0ZW5lcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBMSUZPIG9yZGVyXG4gICAgICAgIGZvciAoaSA9IGxpc3RlbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5mdW5jdGlvbiBfbGlzdGVuZXJzKHRhcmdldCwgdHlwZSwgdW53cmFwKSB7XG4gIHZhciBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuICBpZiAoZXZsaXN0ZW5lciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpXG4gICAgcmV0dXJuIHVud3JhcCA/IFtldmxpc3RlbmVyLmxpc3RlbmVyIHx8IGV2bGlzdGVuZXJdIDogW2V2bGlzdGVuZXJdO1xuXG4gIHJldHVybiB1bndyYXAgP1xuICAgIHVud3JhcExpc3RlbmVycyhldmxpc3RlbmVyKSA6IGFycmF5Q2xvbmUoZXZsaXN0ZW5lciwgZXZsaXN0ZW5lci5sZW5ndGgpO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uIGxpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIHRydWUpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yYXdMaXN0ZW5lcnMgPSBmdW5jdGlvbiByYXdMaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uKGVtaXR0ZXIsIHR5cGUpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLmxpc3RlbmVyQ291bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZW1pdHRlci5saXN0ZW5lckNvdW50KHR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsaXN0ZW5lckNvdW50LmNhbGwoZW1pdHRlciwgdHlwZSk7XG4gIH1cbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJDb3VudCA9IGxpc3RlbmVyQ291bnQ7XG5mdW5jdGlvbiBsaXN0ZW5lckNvdW50KHR5cGUpIHtcbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcblxuICAgIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChldmxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBldmxpc3RlbmVyLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5ldmVudE5hbWVzID0gZnVuY3Rpb24gZXZlbnROYW1lcygpIHtcbiAgcmV0dXJuIHRoaXMuX2V2ZW50c0NvdW50ID4gMCA/IFJlZmxlY3RPd25LZXlzKHRoaXMuX2V2ZW50cykgOiBbXTtcbn07XG5cbmZ1bmN0aW9uIGFycmF5Q2xvbmUoYXJyLCBuKSB7XG4gIHZhciBjb3B5ID0gbmV3IEFycmF5KG4pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSlcbiAgICBjb3B5W2ldID0gYXJyW2ldO1xuICByZXR1cm4gY29weTtcbn1cblxuZnVuY3Rpb24gc3BsaWNlT25lKGxpc3QsIGluZGV4KSB7XG4gIGZvciAoOyBpbmRleCArIDEgPCBsaXN0Lmxlbmd0aDsgaW5kZXgrKylcbiAgICBsaXN0W2luZGV4XSA9IGxpc3RbaW5kZXggKyAxXTtcbiAgbGlzdC5wb3AoKTtcbn1cblxuZnVuY3Rpb24gdW53cmFwTGlzdGVuZXJzKGFycikge1xuICB2YXIgcmV0ID0gbmV3IEFycmF5KGFyci5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHJldC5sZW5ndGg7ICsraSkge1xuICAgIHJldFtpXSA9IGFycltpXS5saXN0ZW5lciB8fCBhcnJbaV07XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb25jZShlbWl0dGVyLCBuYW1lKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgZnVuY3Rpb24gZXJyb3JMaXN0ZW5lcihlcnIpIHtcbiAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIobmFtZSwgcmVzb2x2ZXIpO1xuICAgICAgcmVqZWN0KGVycik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZXIoKSB7XG4gICAgICBpZiAodHlwZW9mIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBlcnJvckxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgICB9O1xuXG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIHJlc29sdmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgaWYgKG5hbWUgIT09ICdlcnJvcicpIHtcbiAgICAgIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGVycm9yTGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBoYW5kbGVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgJ2Vycm9yJywgaGFuZGxlciwgZmxhZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCBsaXN0ZW5lciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgIGVtaXR0ZXIub25jZShuYW1lLCBsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVtaXR0ZXIub24obmFtZSwgbGlzdGVuZXIpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gRXZlbnRUYXJnZXQgZG9lcyBub3QgaGF2ZSBgZXJyb3JgIGV2ZW50IHNlbWFudGljcyBsaWtlIE5vZGVcbiAgICAvLyBFdmVudEVtaXR0ZXJzLCB3ZSBkbyBub3QgbGlzdGVuIGZvciBgZXJyb3JgIGV2ZW50cyBoZXJlLlxuICAgIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBmdW5jdGlvbiB3cmFwTGlzdGVuZXIoYXJnKSB7XG4gICAgICAvLyBJRSBkb2VzIG5vdCBoYXZlIGJ1aWx0aW4gYHsgb25jZTogdHJ1ZSB9YCBzdXBwb3J0IHNvIHdlXG4gICAgICAvLyBoYXZlIHRvIGRvIGl0IG1hbnVhbGx5LlxuICAgICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIHdyYXBMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICBsaXN0ZW5lcihhcmcpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImVtaXR0ZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgZW1pdHRlcik7XG4gIH1cbn1cbiIsICIvKipcbiAqIE9ibGl0ZXJhdG9yIEl0ZXJhdG9yIENsYXNzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBTaW1wbGUgY2xhc3MgcmVwcmVzZW50aW5nIHRoZSBsaWJyYXJ5J3MgaXRlcmF0b3JzLlxuICovXG5cbi8qKlxuICogSXRlcmF0b3IgY2xhc3MuXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBuZXh0IC0gTmV4dCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gSXRlcmF0b3IobmV4dCkge1xuICBpZiAodHlwZW9mIG5leHQgIT09ICdmdW5jdGlvbicpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdvYmxpdGVyYXRvci9pdGVyYXRvcjogZXhwZWN0aW5nIGEgZnVuY3Rpb24hJyk7XG5cbiAgdGhpcy5uZXh0ID0gbmV4dDtcbn1cblxuLyoqXG4gKiBJZiBzeW1ib2xzIGFyZSBzdXBwb3J0ZWQsIHdlIGFkZCBgbmV4dGAgdG8gYFN5bWJvbC5pdGVyYXRvcmAuXG4gKi9cbmlmICh0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJylcbiAgSXRlcmF0b3IucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbi8qKlxuICogUmV0dXJuaW5nIGFuIGl0ZXJhdG9yIG9mIHRoZSBnaXZlbiB2YWx1ZXMuXG4gKlxuICogQHBhcmFtICB7YW55Li4ufSB2YWx1ZXMgLSBWYWx1ZXMuXG4gKiBAcmV0dXJuIHtJdGVyYXRvcn1cbiAqL1xuSXRlcmF0b3Iub2YgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBhcmdzID0gYXJndW1lbnRzLFxuICAgIGwgPSBhcmdzLmxlbmd0aCxcbiAgICBpID0gMDtcblxuICByZXR1cm4gbmV3IEl0ZXJhdG9yKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoaSA+PSBsKSByZXR1cm4ge2RvbmU6IHRydWV9O1xuXG4gICAgcmV0dXJuIHtkb25lOiBmYWxzZSwgdmFsdWU6IGFyZ3NbaSsrXX07XG4gIH0pO1xufTtcblxuLyoqXG4gKiBSZXR1cm5pbmcgYW4gZW1wdHkgaXRlcmF0b3IuXG4gKlxuICogQHJldHVybiB7SXRlcmF0b3J9XG4gKi9cbkl0ZXJhdG9yLmVtcHR5ID0gZnVuY3Rpb24gKCkge1xuICB2YXIgaXRlcmF0b3IgPSBuZXcgSXRlcmF0b3IoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB7ZG9uZTogdHJ1ZX07XG4gIH0pO1xuXG4gIHJldHVybiBpdGVyYXRvcjtcbn07XG5cbi8qKlxuICogUmV0dXJuaW5nIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGdpdmVuIGluZGV4ZWQgc2VxdWVuY2UuXG4gKlxuICogQHBhcmFtICB7c3RyaW5nfEFycmF5fSBzZXF1ZW5jZSAtIFRhcmdldCBzZXF1ZW5jZS5cbiAqIEByZXR1cm4ge0l0ZXJhdG9yfVxuICovXG5JdGVyYXRvci5mcm9tU2VxdWVuY2UgPSBmdW5jdGlvbiAoc2VxdWVuY2UpIHtcbiAgdmFyIGkgPSAwLFxuICAgIGwgPSBzZXF1ZW5jZS5sZW5ndGg7XG5cbiAgcmV0dXJuIG5ldyBJdGVyYXRvcihmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGkgPj0gbCkgcmV0dXJuIHtkb25lOiB0cnVlfTtcblxuICAgIHJldHVybiB7ZG9uZTogZmFsc2UsIHZhbHVlOiBzZXF1ZW5jZVtpKytdfTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIFJldHVybmluZyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhbiBpdGVyYXRvci5cbiAqXG4gKiBAcGFyYW0gIHthbnl9IHZhbHVlIC0gVmFsdWUuXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5JdGVyYXRvci5pcyA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBJdGVyYXRvcikgcmV0dXJuIHRydWU7XG5cbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICB0eXBlb2YgdmFsdWUubmV4dCA9PT0gJ2Z1bmN0aW9uJ1xuICApO1xufTtcblxuLyoqXG4gKiBFeHBvcnRpbmcuXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gSXRlcmF0b3I7XG4iLCAiZXhwb3J0cy5BUlJBWV9CVUZGRVJfU1VQUE9SVCA9IHR5cGVvZiBBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCc7XG5leHBvcnRzLlNZTUJPTF9TVVBQT1JUID0gdHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCc7XG4iLCAiLyoqXG4gKiBPYmxpdGVyYXRvciBJdGVyIEZ1bmN0aW9uXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PVxuICpcbiAqIEZ1bmN0aW9uIGNvZXJjaW5nIHZhbHVlcyB0byBhbiBpdGVyYXRvci4gSXQgY2FuIGJlIHF1aXRlIHVzZWZ1bCB3aGVuIG5lZWRpbmdcbiAqIHRvIGhhbmRsZSBpdGVyYWJsZXMgYW5kIGl0ZXJhdG9ycyB0aGUgc2FtZSB3YXkuXG4gKi9cbnZhciBJdGVyYXRvciA9IHJlcXVpcmUoJy4vaXRlcmF0b3IuanMnKTtcbnZhciBzdXBwb3J0ID0gcmVxdWlyZSgnLi9zdXBwb3J0LmpzJyk7XG5cbnZhciBBUlJBWV9CVUZGRVJfU1VQUE9SVCA9IHN1cHBvcnQuQVJSQVlfQlVGRkVSX1NVUFBPUlQ7XG52YXIgU1lNQk9MX1NVUFBPUlQgPSBzdXBwb3J0LlNZTUJPTF9TVVBQT1JUO1xuXG5mdW5jdGlvbiBpdGVyT3JOdWxsKHRhcmdldCkge1xuICAvLyBJbmRleGVkIHNlcXVlbmNlXG4gIGlmIChcbiAgICB0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJyB8fFxuICAgIEFycmF5LmlzQXJyYXkodGFyZ2V0KSB8fFxuICAgIChBUlJBWV9CVUZGRVJfU1VQUE9SVCAmJiBBcnJheUJ1ZmZlci5pc1ZpZXcodGFyZ2V0KSlcbiAgKVxuICAgIHJldHVybiBJdGVyYXRvci5mcm9tU2VxdWVuY2UodGFyZ2V0KTtcblxuICAvLyBJbnZhbGlkIHZhbHVlXG4gIGlmICh0eXBlb2YgdGFyZ2V0ICE9PSAnb2JqZWN0JyB8fCB0YXJnZXQgPT09IG51bGwpIHJldHVybiBudWxsO1xuXG4gIC8vIEl0ZXJhYmxlXG4gIGlmIChTWU1CT0xfU1VQUE9SVCAmJiB0eXBlb2YgdGFyZ2V0W1N5bWJvbC5pdGVyYXRvcl0gPT09ICdmdW5jdGlvbicpXG4gICAgcmV0dXJuIHRhcmdldFtTeW1ib2wuaXRlcmF0b3JdKCk7XG5cbiAgLy8gSXRlcmF0b3IgZHVjay10eXBpbmdcbiAgaWYgKHR5cGVvZiB0YXJnZXQubmV4dCA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHRhcmdldDtcblxuICAvLyBJbnZhbGlkIG9iamVjdFxuICByZXR1cm4gbnVsbDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpdGVyKHRhcmdldCkge1xuICB2YXIgaXRlcmF0b3IgPSBpdGVyT3JOdWxsKHRhcmdldCk7XG5cbiAgaWYgKCFpdGVyYXRvcilcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnb2JsaXRlcmF0b3I6IHRhcmdldCBpcyBub3QgaXRlcmFibGUgbm9yIGEgdmFsaWQgaXRlcmF0b3IuJ1xuICAgICk7XG5cbiAgcmV0dXJuIGl0ZXJhdG9yO1xufTtcbiIsICIvKiBlc2xpbnQgbm8tY29uc3RhbnQtY29uZGl0aW9uOiAwICovXG4vKipcbiAqIE9ibGl0ZXJhdG9yIFRha2UgRnVuY3Rpb25cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKlxuICogRnVuY3Rpb24gdGFraW5nIG4gb3IgZXZlcnkgdmFsdWUgb2YgdGhlIGdpdmVuIGl0ZXJhdG9yIGFuZCByZXR1cm5zIHRoZW1cbiAqIGludG8gYW4gYXJyYXkuXG4gKi9cbnZhciBpdGVyID0gcmVxdWlyZSgnLi9pdGVyLmpzJyk7XG5cbi8qKlxuICogVGFrZS5cbiAqXG4gKiBAcGFyYW0gIHtJdGVyYWJsZX0gaXRlcmFibGUgLSBUYXJnZXQgaXRlcmFibGUuXG4gKiBAcGFyYW0gIHtudW1iZXJ9ICAgW25dICAgICAgLSBPcHRpb25hbCBudW1iZXIgb2YgaXRlbXMgdG8gdGFrZS5cbiAqIEByZXR1cm4ge2FycmF5fVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHRha2UoaXRlcmFibGUsIG4pIHtcbiAgdmFyIGwgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IG4gOiBJbmZpbml0eSxcbiAgICBhcnJheSA9IGwgIT09IEluZmluaXR5ID8gbmV3IEFycmF5KGwpIDogW10sXG4gICAgc3RlcCxcbiAgICBpID0gMDtcblxuICB2YXIgaXRlcmF0b3IgPSBpdGVyKGl0ZXJhYmxlKTtcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGlmIChpID09PSBsKSByZXR1cm4gYXJyYXk7XG5cbiAgICBzdGVwID0gaXRlcmF0b3IubmV4dCgpO1xuXG4gICAgaWYgKHN0ZXAuZG9uZSkge1xuICAgICAgaWYgKGkgIT09IG4pIGFycmF5Lmxlbmd0aCA9IGk7XG5cbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG5cbiAgICBhcnJheVtpKytdID0gc3RlcC52YWx1ZTtcbiAgfVxufTtcbiIsICIvKipcbiAqIEdyYXBob2xvZ3kgQ3VzdG9tIEVycm9yc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PVxuICpcbiAqIERlZmluaW5nIGN1c3RvbSBlcnJvcnMgZm9yIGVhc2Ugb2YgdXNlICYgZWFzeSB1bml0IHRlc3RzIGFjcm9zc1xuICogaW1wbGVtZW50YXRpb25zIChub3JtYWxpemVkIHR5cG9sb2d5IHJhdGhlciB0aGFuIHJlbHlpbmcgb24gZXJyb3JcbiAqIG1lc3NhZ2VzIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvcnJlY3QgZXJyb3Igd2FzIGZvdW5kKS5cbiAqL1xuZXhwb3J0IGNsYXNzIEdyYXBoRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubmFtZSA9ICdHcmFwaEVycm9yJztcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvciBleHRlbmRzIEdyYXBoRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0ludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yJztcblxuICAgIC8vIFRoaXMgaXMgVjggc3BlY2lmaWMgdG8gZW5oYW5jZSBzdGFjayByZWFkYWJpbGl0eVxuICAgIGlmICh0eXBlb2YgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UgPT09ICdmdW5jdGlvbicpXG4gICAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yXG4gICAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb3RGb3VuZEdyYXBoRXJyb3IgZXh0ZW5kcyBHcmFwaEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdOb3RGb3VuZEdyYXBoRXJyb3InO1xuXG4gICAgLy8gVGhpcyBpcyBWOCBzcGVjaWZpYyB0byBlbmhhbmNlIHN0YWNrIHJlYWRhYmlsaXR5XG4gICAgaWYgKHR5cGVvZiBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIE5vdEZvdW5kR3JhcGhFcnJvci5wcm90b3R5cGUuY29uc3RydWN0b3IpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVc2FnZUdyYXBoRXJyb3IgZXh0ZW5kcyBHcmFwaEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdVc2FnZUdyYXBoRXJyb3InO1xuXG4gICAgLy8gVGhpcyBpcyBWOCBzcGVjaWZpYyB0byBlbmhhbmNlIHN0YWNrIHJlYWRhYmlsaXR5XG4gICAgaWYgKHR5cGVvZiBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIFVzYWdlR3JhcGhFcnJvci5wcm90b3R5cGUuY29uc3RydWN0b3IpO1xuICB9XG59XG4iLCAiLyoqXG4gKiBHcmFwaG9sb2d5IEludGVybmFsIERhdGEgQ2xhc3Nlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKlxuICogSW50ZXJuYWwgY2xhc3NlcyBob3BlZnVsbHkgcmVkdWNlZCB0byBzdHJ1Y3RzIGJ5IGVuZ2luZXMgJiBzdG9yaW5nXG4gKiBuZWNlc3NhcnkgaW5mb3JtYXRpb24gZm9yIG5vZGVzICYgZWRnZXMuXG4gKlxuICogTm90ZSB0aGF0IHRob3NlIGNsYXNzZXMgZG9uJ3QgcmVseSBvbiB0aGUgYGNsYXNzYCBrZXl3b3JkIHRvIGF2b2lkIHNvbWVcbiAqIGNydWZ0IGludHJvZHVjZWQgYnkgbW9zdCBvZiBFUzIwMTUgdHJhbnNwaWxlcnMuXG4gKi9cblxuLyoqXG4gKiBNaXhlZE5vZGVEYXRhIGNsYXNzLlxuICpcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyAgICAgLSBUaGUgbm9kZSdzIGtleS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBhdHRyaWJ1dGVzIC0gTm9kZSdzIGF0dHJpYnV0ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBNaXhlZE5vZGVEYXRhKGtleSwgYXR0cmlidXRlcykge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHRoaXMua2V5ID0ga2V5O1xuICB0aGlzLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuXG4gIHRoaXMuY2xlYXIoKTtcbn1cblxuTWl4ZWROb2RlRGF0YS5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIERlZ3JlZXNcbiAgdGhpcy5pbkRlZ3JlZSA9IDA7XG4gIHRoaXMub3V0RGVncmVlID0gMDtcbiAgdGhpcy51bmRpcmVjdGVkRGVncmVlID0gMDtcbiAgdGhpcy5kaXJlY3RlZFNlbGZMb29wcyA9IDA7XG4gIHRoaXMudW5kaXJlY3RlZFNlbGZMb29wcyA9IDA7XG5cbiAgLy8gSW5kaWNlc1xuICB0aGlzLmluID0ge307XG4gIHRoaXMub3V0ID0ge307XG4gIHRoaXMudW5kaXJlY3RlZCA9IHt9O1xufTtcblxuLyoqXG4gKiBEaXJlY3RlZE5vZGVEYXRhIGNsYXNzLlxuICpcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyAgICAgLSBUaGUgbm9kZSdzIGtleS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBhdHRyaWJ1dGVzIC0gTm9kZSdzIGF0dHJpYnV0ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEaXJlY3RlZE5vZGVEYXRhKGtleSwgYXR0cmlidXRlcykge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHRoaXMua2V5ID0ga2V5O1xuICB0aGlzLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuXG4gIHRoaXMuY2xlYXIoKTtcbn1cblxuRGlyZWN0ZWROb2RlRGF0YS5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIERlZ3JlZXNcbiAgdGhpcy5pbkRlZ3JlZSA9IDA7XG4gIHRoaXMub3V0RGVncmVlID0gMDtcbiAgdGhpcy5kaXJlY3RlZFNlbGZMb29wcyA9IDA7XG5cbiAgLy8gSW5kaWNlc1xuICB0aGlzLmluID0ge307XG4gIHRoaXMub3V0ID0ge307XG59O1xuXG5EaXJlY3RlZE5vZGVEYXRhLnByb3RvdHlwZS51cGdyYWRlVG9NaXhlZCA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gRGVncmVlc1xuICB0aGlzLnVuZGlyZWN0ZWREZWdyZWUgPSAwO1xuICB0aGlzLnVuZGlyZWN0ZWRTZWxmTG9vcHMgPSAwO1xuXG4gIC8vIEluZGljZXNcbiAgdGhpcy51bmRpcmVjdGVkID0ge307XG59O1xuXG4vKipcbiAqIFVuZGlyZWN0ZWROb2RlRGF0YSBjbGFzcy5cbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgICAgIC0gVGhlIG5vZGUncyBrZXkuXG4gKiBAcGFyYW0ge29iamVjdH0gYXR0cmlidXRlcyAtIE5vZGUncyBhdHRyaWJ1dGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gVW5kaXJlY3RlZE5vZGVEYXRhKGtleSwgYXR0cmlidXRlcykge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHRoaXMua2V5ID0ga2V5O1xuICB0aGlzLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuXG4gIHRoaXMuY2xlYXIoKTtcbn1cblxuVW5kaXJlY3RlZE5vZGVEYXRhLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gRGVncmVlc1xuICB0aGlzLnVuZGlyZWN0ZWREZWdyZWUgPSAwO1xuICB0aGlzLnVuZGlyZWN0ZWRTZWxmTG9vcHMgPSAwO1xuXG4gIC8vIEluZGljZXNcbiAgdGhpcy51bmRpcmVjdGVkID0ge307XG59O1xuXG5VbmRpcmVjdGVkTm9kZURhdGEucHJvdG90eXBlLnVwZ3JhZGVUb01peGVkID0gZnVuY3Rpb24gKCkge1xuICAvLyBEZWdyZWVzXG4gIHRoaXMuaW5EZWdyZWUgPSAwO1xuICB0aGlzLm91dERlZ3JlZSA9IDA7XG4gIHRoaXMuZGlyZWN0ZWRTZWxmTG9vcHMgPSAwO1xuXG4gIC8vIEluZGljZXNcbiAgdGhpcy5pbiA9IHt9O1xuICB0aGlzLm91dCA9IHt9O1xufTtcblxuLyoqXG4gKiBFZGdlRGF0YSBjbGFzcy5cbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gdW5kaXJlY3RlZCAgIC0gV2hldGhlciB0aGUgZWRnZSBpcyB1bmRpcmVjdGVkLlxuICogQHBhcmFtIHtzdHJpbmd9ICBzdHJpbmcgICAgICAgLSBUaGUgZWRnZSdzIGtleS5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgc291cmNlICAgICAgIC0gU291cmNlIG9mIHRoZSBlZGdlLlxuICogQHBhcmFtIHtzdHJpbmd9ICB0YXJnZXQgICAgICAgLSBUYXJnZXQgb2YgdGhlIGVkZ2UuXG4gKiBAcGFyYW0ge29iamVjdH0gIGF0dHJpYnV0ZXMgICAtIEVkZ2UncyBhdHRyaWJ1dGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRWRnZURhdGEodW5kaXJlY3RlZCwga2V5LCBzb3VyY2UsIHRhcmdldCwgYXR0cmlidXRlcykge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHRoaXMua2V5ID0ga2V5O1xuICB0aGlzLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuICB0aGlzLnVuZGlyZWN0ZWQgPSB1bmRpcmVjdGVkO1xuXG4gIC8vIEV4dHJlbWl0aWVzXG4gIHRoaXMuc291cmNlID0gc291cmNlO1xuICB0aGlzLnRhcmdldCA9IHRhcmdldDtcbn1cbiIsICIvKipcbiAqIEdyYXBob2xvZ3kgSW5kZXhlcyBGdW5jdGlvbnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKlxuICogQnVuY2ggb2YgZnVuY3Rpb25zIHVzZWQgdG8gY29tcHV0ZSBvciBjbGVhciBpbmRleGVzLlxuICovXG5cbi8qKlxuICogRnVuY3Rpb24gdXBkYXRpbmcgdGhlICdzdHJ1Y3R1cmUnIGluZGV4IHdpdGggdGhlIGdpdmVuIGVkZ2UncyBkYXRhLlxuICogTm90ZSB0aGF0IGluIHRoZSBjYXNlIG9mIHRoZSBtdWx0aSBncmFwaCwgcmVsYXRlZCBlZGdlcyBhcmUgc3RvcmVkIGluIGFcbiAqIHNldCB0aGF0IGlzIHRoZSBzYW1lIGZvciBBIC0+IEIgJiBCIDwtIEEuXG4gKlxuICogQHBhcmFtIHtHcmFwaH0gICAgZ3JhcGggICAgICAtIFRhcmdldCBHcmFwaCBpbnN0YW5jZS5cbiAqIEBwYXJhbSB7RWRnZURhdGF9IGVkZ2VEYXRhICAgLSBBZGRlZCBlZGdlJ3MgZGF0YS5cbiAqIEBwYXJhbSB7Tm9kZURhdGF9IHNvdXJjZURhdGEgLSBTb3VyY2Ugbm9kZSdzIGRhdGEuXG4gKiBAcGFyYW0ge05vZGVEYXRhfSB0YXJnZXREYXRhIC0gVGFyZ2V0IG5vZGUncyBkYXRhLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlU3RydWN0dXJlSW5kZXgoXG4gIGdyYXBoLFxuICB1bmRpcmVjdGVkLFxuICBlZGdlRGF0YSxcbiAgc291cmNlLFxuICB0YXJnZXQsXG4gIHNvdXJjZURhdGEsXG4gIHRhcmdldERhdGFcbikge1xuICBjb25zdCBtdWx0aSA9IGdyYXBoLm11bHRpO1xuXG4gIGxldCBvdXRLZXkgPSAnb3V0JztcbiAgbGV0IGluS2V5ID0gJ2luJztcblxuICBpZiAodW5kaXJlY3RlZCkgb3V0S2V5ID0gaW5LZXkgPSAndW5kaXJlY3RlZCc7XG5cbiAgbGV0IGFkaiwgY29udGFpbmVyO1xuXG4gIGlmIChtdWx0aSkge1xuICAgIC8vIEhhbmRsaW5nIHNvdXJjZVxuICAgIGFkaiA9IHNvdXJjZURhdGFbb3V0S2V5XTtcbiAgICBjb250YWluZXIgPSBhZGpbdGFyZ2V0XTtcblxuICAgIGlmICh0eXBlb2YgY29udGFpbmVyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgY29udGFpbmVyID0gbmV3IFNldCgpO1xuICAgICAgYWRqW3RhcmdldF0gPSBjb250YWluZXI7XG4gICAgfVxuXG4gICAgY29udGFpbmVyLmFkZChlZGdlRGF0YSk7XG5cbiAgICAvLyBJZiBzZWxmTG9vcCwgd2UgYnJlYWsgaGVyZVxuICAgIGlmIChzb3VyY2UgPT09IHRhcmdldCAmJiB1bmRpcmVjdGVkKSByZXR1cm47XG5cbiAgICAvLyBIYW5kbGluZyB0YXJnZXQgKHdlIHdvbid0IGFkZCB0aGUgZWRnZSBiZWNhdXNlIGl0IHdhcyBhbHJlYWR5IHRha2VuXG4gICAgLy8gY2FyZSBvZiB3aXRoIHNvdXJjZSBhYm92ZSlcbiAgICBhZGogPSB0YXJnZXREYXRhW2luS2V5XTtcbiAgICBpZiAodHlwZW9mIGFkaltzb3VyY2VdID09PSAndW5kZWZpbmVkJykgYWRqW3NvdXJjZV0gPSBjb250YWluZXI7XG4gIH0gZWxzZSB7XG4gICAgLy8gSGFuZGxpbmcgc291cmNlXG4gICAgc291cmNlRGF0YVtvdXRLZXldW3RhcmdldF0gPSBlZGdlRGF0YTtcblxuICAgIC8vIElmIHNlbGZMb29wLCB3ZSBicmVhayBoZXJlXG4gICAgaWYgKHNvdXJjZSA9PT0gdGFyZ2V0ICYmIHVuZGlyZWN0ZWQpIHJldHVybjtcblxuICAgIC8vIEhhbmRsaW5nIHRhcmdldFxuICAgIHRhcmdldERhdGFbaW5LZXldW3NvdXJjZV0gPSBlZGdlRGF0YTtcbiAgfVxufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGNsZWFyaW5nIHRoZSAnc3RydWN0dXJlJyBpbmRleCBkYXRhIHJlbGF0ZWQgdG8gdGhlIGdpdmVuIGVkZ2UuXG4gKlxuICogQHBhcmFtIHtHcmFwaH0gICAgZ3JhcGggICAgLSBUYXJnZXQgR3JhcGggaW5zdGFuY2UuXG4gKiBAcGFyYW0ge0VkZ2VEYXRhfSBlZGdlRGF0YSAtIERyb3BwZWQgZWRnZSdzIGRhdGEuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhckVkZ2VGcm9tU3RydWN0dXJlSW5kZXgoZ3JhcGgsIHVuZGlyZWN0ZWQsIGVkZ2VEYXRhKSB7XG4gIGNvbnN0IG11bHRpID0gZ3JhcGgubXVsdGk7XG5cbiAgY29uc3Qge3NvdXJjZTogc291cmNlRGF0YSwgdGFyZ2V0OiB0YXJnZXREYXRhfSA9IGVkZ2VEYXRhO1xuXG4gIGNvbnN0IHNvdXJjZSA9IHNvdXJjZURhdGEua2V5LFxuICAgIHRhcmdldCA9IHRhcmdldERhdGEua2V5O1xuXG4gIC8vIE5PVEU6IHNpbmNlIHRoZSBlZGdlIHNldCBpcyB0aGUgc2FtZSBmb3Igc291cmNlICYgdGFyZ2V0LCB3ZSBjYW4gb25seVxuICAvLyBhZmZlY3Qgc291cmNlXG4gIGNvbnN0IG91dEtleSA9IHVuZGlyZWN0ZWQgPyAndW5kaXJlY3RlZCcgOiAnb3V0JyxcbiAgICBzb3VyY2VJbmRleCA9IHNvdXJjZURhdGFbb3V0S2V5XTtcblxuICBjb25zdCBpbktleSA9IHVuZGlyZWN0ZWQgPyAndW5kaXJlY3RlZCcgOiAnaW4nO1xuXG4gIGlmICh0YXJnZXQgaW4gc291cmNlSW5kZXgpIHtcbiAgICBpZiAobXVsdGkpIHtcbiAgICAgIGNvbnN0IHNldCA9IHNvdXJjZUluZGV4W3RhcmdldF07XG5cbiAgICAgIGlmIChzZXQuc2l6ZSA9PT0gMSkge1xuICAgICAgICBkZWxldGUgc291cmNlSW5kZXhbdGFyZ2V0XTtcbiAgICAgICAgZGVsZXRlIHRhcmdldERhdGFbaW5LZXldW3NvdXJjZV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXQuZGVsZXRlKGVkZ2VEYXRhKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgZGVsZXRlIHNvdXJjZUluZGV4W3RhcmdldF07XG4gIH1cblxuICBpZiAobXVsdGkpIHJldHVybjtcblxuICBjb25zdCB0YXJnZXRJbmRleCA9IHRhcmdldERhdGFbaW5LZXldO1xuXG4gIGRlbGV0ZSB0YXJnZXRJbmRleFtzb3VyY2VdO1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGNsZWFyaW5nIHRoZSB3aG9sZSAnc3RydWN0dXJlJyBpbmRleC5cbiAqXG4gKiBAcGFyYW0ge0dyYXBofSBncmFwaCAtIFRhcmdldCBHcmFwaCBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyU3RydWN0dXJlSW5kZXgoZ3JhcGgpIHtcbiAgY29uc3QgaXRlcmF0b3IgPSBncmFwaC5fbm9kZXMudmFsdWVzKCk7XG5cbiAgbGV0IHN0ZXA7XG5cbiAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICBzdGVwLnZhbHVlLmNsZWFyKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIHRvIHVwZ3JhZGUgYSBzaW1wbGUgYHN0cnVjdHVyZWAgaW5kZXggdG8gYSBtdWx0aSBvbi5cbiAqXG4gKiBAcGFyYW0ge0dyYXBofSAgZ3JhcGggLSBUYXJnZXQgR3JhcGggaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGdyYWRlU3RydWN0dXJlSW5kZXhUb011bHRpKGdyYXBoKSB7XG4gIGdyYXBoLl9ub2Rlcy5mb3JFYWNoKChkYXRhLCBub2RlKSA9PiB7XG4gICAgLy8gRGlyZWN0ZWRcbiAgICBpZiAoZGF0YS5vdXQpIHtcbiAgICAgIGZvciAoY29uc3QgbmVpZ2hib3IgaW4gZGF0YS5vdXQpIHtcbiAgICAgICAgY29uc3QgZWRnZXMgPSBuZXcgU2V0KCk7XG4gICAgICAgIGVkZ2VzLmFkZChkYXRhLm91dFtuZWlnaGJvcl0pO1xuICAgICAgICBkYXRhLm91dFtuZWlnaGJvcl0gPSBlZGdlcztcbiAgICAgICAgZ3JhcGguX25vZGVzLmdldChuZWlnaGJvcikuaW5bbm9kZV0gPSBlZGdlcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVbmRpcmVjdGVkXG4gICAgaWYgKGRhdGEudW5kaXJlY3RlZCkge1xuICAgICAgZm9yIChjb25zdCBuZWlnaGJvciBpbiBkYXRhLnVuZGlyZWN0ZWQpIHtcbiAgICAgICAgaWYgKG5laWdoYm9yID4gbm9kZSkgY29udGludWU7XG5cbiAgICAgICAgY29uc3QgZWRnZXMgPSBuZXcgU2V0KCk7XG4gICAgICAgIGVkZ2VzLmFkZChkYXRhLnVuZGlyZWN0ZWRbbmVpZ2hib3JdKTtcbiAgICAgICAgZGF0YS51bmRpcmVjdGVkW25laWdoYm9yXSA9IGVkZ2VzO1xuICAgICAgICBncmFwaC5fbm9kZXMuZ2V0KG5laWdoYm9yKS51bmRpcmVjdGVkW25vZGVdID0gZWRnZXM7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cbiIsICIvKipcbiAqIEdyYXBob2xvZ3kgTm9kZSBBdHRyaWJ1dGVzIG1ldGhvZHNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKi9cbmltcG9ydCB7YXNzaWduLCBpc1BsYWluT2JqZWN0fSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7SW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IsIE5vdEZvdW5kR3JhcGhFcnJvcn0gZnJvbSAnLi4vZXJyb3JzJztcblxuY29uc3QgTk9ERSA9IDA7XG5jb25zdCBTT1VSQ0UgPSAxO1xuY29uc3QgVEFSR0VUID0gMjtcbmNvbnN0IE9QUE9TSVRFID0gMztcblxuZnVuY3Rpb24gZmluZFJlbGV2YW50Tm9kZURhdGEoXG4gIGdyYXBoLFxuICBtZXRob2QsXG4gIG1vZGUsXG4gIG5vZGVPckVkZ2UsXG4gIG5hbWVPckVkZ2UsXG4gIGFkZDEsXG4gIGFkZDJcbikge1xuICBsZXQgbm9kZURhdGEsIGVkZ2VEYXRhLCBhcmcxLCBhcmcyO1xuXG4gIG5vZGVPckVkZ2UgPSAnJyArIG5vZGVPckVkZ2U7XG5cbiAgaWYgKG1vZGUgPT09IE5PREUpIHtcbiAgICBub2RlRGF0YSA9IGdyYXBoLl9ub2Rlcy5nZXQobm9kZU9yRWRnZSk7XG5cbiAgICBpZiAoIW5vZGVEYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlT3JFZGdlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBhcmcxID0gbmFtZU9yRWRnZTtcbiAgICBhcmcyID0gYWRkMTtcbiAgfSBlbHNlIGlmIChtb2RlID09PSBPUFBPU0lURSkge1xuICAgIG5hbWVPckVkZ2UgPSAnJyArIG5hbWVPckVkZ2U7XG5cbiAgICBlZGdlRGF0YSA9IGdyYXBoLl9lZGdlcy5nZXQobmFtZU9yRWRnZSk7XG5cbiAgICBpZiAoIWVkZ2VEYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtuYW1lT3JFZGdlfVwiIGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBjb25zdCBzb3VyY2UgPSBlZGdlRGF0YS5zb3VyY2Uua2V5O1xuICAgIGNvbnN0IHRhcmdldCA9IGVkZ2VEYXRhLnRhcmdldC5rZXk7XG5cbiAgICBpZiAobm9kZU9yRWRnZSA9PT0gc291cmNlKSB7XG4gICAgICBub2RlRGF0YSA9IGVkZ2VEYXRhLnRhcmdldDtcbiAgICB9IGVsc2UgaWYgKG5vZGVPckVkZ2UgPT09IHRhcmdldCkge1xuICAgICAgbm9kZURhdGEgPSBlZGdlRGF0YS5zb3VyY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IHRoZSBcIiR7bm9kZU9yRWRnZX1cIiBub2RlIGlzIG5vdCBhdHRhY2hlZCB0byB0aGUgXCIke25hbWVPckVkZ2V9XCIgZWRnZSAoJHtzb3VyY2V9LCAke3RhcmdldH0pLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgYXJnMSA9IGFkZDE7XG4gICAgYXJnMiA9IGFkZDI7XG4gIH0gZWxzZSB7XG4gICAgZWRnZURhdGEgPSBncmFwaC5fZWRnZXMuZ2V0KG5vZGVPckVkZ2UpO1xuXG4gICAgaWYgKCFlZGdlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZU9yRWRnZX1cIiBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKG1vZGUgPT09IFNPVVJDRSkge1xuICAgICAgbm9kZURhdGEgPSBlZGdlRGF0YS5zb3VyY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGVEYXRhID0gZWRnZURhdGEudGFyZ2V0O1xuICAgIH1cblxuICAgIGFyZzEgPSBuYW1lT3JFZGdlO1xuICAgIGFyZzIgPSBhZGQxO1xuICB9XG5cbiAgcmV0dXJuIFtub2RlRGF0YSwgYXJnMSwgYXJnMl07XG59XG5cbmZ1bmN0aW9uIGF0dGFjaE5vZGVBdHRyaWJ1dGVHZXR0ZXIoQ2xhc3MsIG1ldGhvZCwgbW9kZSkge1xuICBDbGFzcy5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uIChub2RlT3JFZGdlLCBuYW1lT3JFZGdlLCBhZGQxKSB7XG4gICAgY29uc3QgW2RhdGEsIG5hbWVdID0gZmluZFJlbGV2YW50Tm9kZURhdGEoXG4gICAgICB0aGlzLFxuICAgICAgbWV0aG9kLFxuICAgICAgbW9kZSxcbiAgICAgIG5vZGVPckVkZ2UsXG4gICAgICBuYW1lT3JFZGdlLFxuICAgICAgYWRkMVxuICAgICk7XG5cbiAgICByZXR1cm4gZGF0YS5hdHRyaWJ1dGVzW25hbWVdO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRhY2hOb2RlQXR0cmlidXRlc0dldHRlcihDbGFzcywgbWV0aG9kLCBtb2RlKSB7XG4gIENsYXNzLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKG5vZGVPckVkZ2UsIG5hbWVPckVkZ2UpIHtcbiAgICBjb25zdCBbZGF0YV0gPSBmaW5kUmVsZXZhbnROb2RlRGF0YShcbiAgICAgIHRoaXMsXG4gICAgICBtZXRob2QsXG4gICAgICBtb2RlLFxuICAgICAgbm9kZU9yRWRnZSxcbiAgICAgIG5hbWVPckVkZ2VcbiAgICApO1xuXG4gICAgcmV0dXJuIGRhdGEuYXR0cmlidXRlcztcbiAgfTtcbn1cblxuZnVuY3Rpb24gYXR0YWNoTm9kZUF0dHJpYnV0ZUNoZWNrZXIoQ2xhc3MsIG1ldGhvZCwgbW9kZSkge1xuICBDbGFzcy5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uIChub2RlT3JFZGdlLCBuYW1lT3JFZGdlLCBhZGQxKSB7XG4gICAgY29uc3QgW2RhdGEsIG5hbWVdID0gZmluZFJlbGV2YW50Tm9kZURhdGEoXG4gICAgICB0aGlzLFxuICAgICAgbWV0aG9kLFxuICAgICAgbW9kZSxcbiAgICAgIG5vZGVPckVkZ2UsXG4gICAgICBuYW1lT3JFZGdlLFxuICAgICAgYWRkMVxuICAgICk7XG5cbiAgICByZXR1cm4gZGF0YS5hdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KG5hbWUpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRhY2hOb2RlQXR0cmlidXRlU2V0dGVyKENsYXNzLCBtZXRob2QsIG1vZGUpIHtcbiAgQ2xhc3MucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiAobm9kZU9yRWRnZSwgbmFtZU9yRWRnZSwgYWRkMSwgYWRkMikge1xuICAgIGNvbnN0IFtkYXRhLCBuYW1lLCB2YWx1ZV0gPSBmaW5kUmVsZXZhbnROb2RlRGF0YShcbiAgICAgIHRoaXMsXG4gICAgICBtZXRob2QsXG4gICAgICBtb2RlLFxuICAgICAgbm9kZU9yRWRnZSxcbiAgICAgIG5hbWVPckVkZ2UsXG4gICAgICBhZGQxLFxuICAgICAgYWRkMlxuICAgICk7XG5cbiAgICBkYXRhLmF0dHJpYnV0ZXNbbmFtZV0gPSB2YWx1ZTtcblxuICAgIC8vIEVtaXR0aW5nXG4gICAgdGhpcy5lbWl0KCdub2RlQXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICBrZXk6IGRhdGEua2V5LFxuICAgICAgdHlwZTogJ3NldCcsXG4gICAgICBhdHRyaWJ1dGVzOiBkYXRhLmF0dHJpYnV0ZXMsXG4gICAgICBuYW1lXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbn1cblxuZnVuY3Rpb24gYXR0YWNoTm9kZUF0dHJpYnV0ZVVwZGF0ZXIoQ2xhc3MsIG1ldGhvZCwgbW9kZSkge1xuICBDbGFzcy5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uIChub2RlT3JFZGdlLCBuYW1lT3JFZGdlLCBhZGQxLCBhZGQyKSB7XG4gICAgY29uc3QgW2RhdGEsIG5hbWUsIHVwZGF0ZXJdID0gZmluZFJlbGV2YW50Tm9kZURhdGEoXG4gICAgICB0aGlzLFxuICAgICAgbWV0aG9kLFxuICAgICAgbW9kZSxcbiAgICAgIG5vZGVPckVkZ2UsXG4gICAgICBuYW1lT3JFZGdlLFxuICAgICAgYWRkMSxcbiAgICAgIGFkZDJcbiAgICApO1xuXG4gICAgaWYgKHR5cGVvZiB1cGRhdGVyICE9PSAnZnVuY3Rpb24nKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiB1cGRhdGVyIHNob3VsZCBiZSBhIGZ1bmN0aW9uLmBcbiAgICAgICk7XG5cbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gZGF0YS5hdHRyaWJ1dGVzO1xuICAgIGNvbnN0IHZhbHVlID0gdXBkYXRlcihhdHRyaWJ1dGVzW25hbWVdKTtcblxuICAgIGF0dHJpYnV0ZXNbbmFtZV0gPSB2YWx1ZTtcblxuICAgIC8vIEVtaXR0aW5nXG4gICAgdGhpcy5lbWl0KCdub2RlQXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICBrZXk6IGRhdGEua2V5LFxuICAgICAgdHlwZTogJ3NldCcsXG4gICAgICBhdHRyaWJ1dGVzOiBkYXRhLmF0dHJpYnV0ZXMsXG4gICAgICBuYW1lXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbn1cblxuZnVuY3Rpb24gYXR0YWNoTm9kZUF0dHJpYnV0ZVJlbW92ZXIoQ2xhc3MsIG1ldGhvZCwgbW9kZSkge1xuICBDbGFzcy5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uIChub2RlT3JFZGdlLCBuYW1lT3JFZGdlLCBhZGQxKSB7XG4gICAgY29uc3QgW2RhdGEsIG5hbWVdID0gZmluZFJlbGV2YW50Tm9kZURhdGEoXG4gICAgICB0aGlzLFxuICAgICAgbWV0aG9kLFxuICAgICAgbW9kZSxcbiAgICAgIG5vZGVPckVkZ2UsXG4gICAgICBuYW1lT3JFZGdlLFxuICAgICAgYWRkMVxuICAgICk7XG5cbiAgICBkZWxldGUgZGF0YS5hdHRyaWJ1dGVzW25hbWVdO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ25vZGVBdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgIGtleTogZGF0YS5rZXksXG4gICAgICB0eXBlOiAncmVtb3ZlJyxcbiAgICAgIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlcyxcbiAgICAgIG5hbWVcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRhY2hOb2RlQXR0cmlidXRlc1JlcGxhY2VyKENsYXNzLCBtZXRob2QsIG1vZGUpIHtcbiAgQ2xhc3MucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiAobm9kZU9yRWRnZSwgbmFtZU9yRWRnZSwgYWRkMSkge1xuICAgIGNvbnN0IFtkYXRhLCBhdHRyaWJ1dGVzXSA9IGZpbmRSZWxldmFudE5vZGVEYXRhKFxuICAgICAgdGhpcyxcbiAgICAgIG1ldGhvZCxcbiAgICAgIG1vZGUsXG4gICAgICBub2RlT3JFZGdlLFxuICAgICAgbmFtZU9yRWRnZSxcbiAgICAgIGFkZDFcbiAgICApO1xuXG4gICAgaWYgKCFpc1BsYWluT2JqZWN0KGF0dHJpYnV0ZXMpKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBwcm92aWRlZCBhdHRyaWJ1dGVzIGFyZSBub3QgYSBwbGFpbiBvYmplY3QuYFxuICAgICAgKTtcblxuICAgIGRhdGEuYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnbm9kZUF0dHJpYnV0ZXNVcGRhdGVkJywge1xuICAgICAga2V5OiBkYXRhLmtleSxcbiAgICAgIHR5cGU6ICdyZXBsYWNlJyxcbiAgICAgIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlc1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGF0dGFjaE5vZGVBdHRyaWJ1dGVzTWVyZ2VyKENsYXNzLCBtZXRob2QsIG1vZGUpIHtcbiAgQ2xhc3MucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiAobm9kZU9yRWRnZSwgbmFtZU9yRWRnZSwgYWRkMSkge1xuICAgIGNvbnN0IFtkYXRhLCBhdHRyaWJ1dGVzXSA9IGZpbmRSZWxldmFudE5vZGVEYXRhKFxuICAgICAgdGhpcyxcbiAgICAgIG1ldGhvZCxcbiAgICAgIG1vZGUsXG4gICAgICBub2RlT3JFZGdlLFxuICAgICAgbmFtZU9yRWRnZSxcbiAgICAgIGFkZDFcbiAgICApO1xuXG4gICAgaWYgKCFpc1BsYWluT2JqZWN0KGF0dHJpYnV0ZXMpKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBwcm92aWRlZCBhdHRyaWJ1dGVzIGFyZSBub3QgYSBwbGFpbiBvYmplY3QuYFxuICAgICAgKTtcblxuICAgIGFzc2lnbihkYXRhLmF0dHJpYnV0ZXMsIGF0dHJpYnV0ZXMpO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ25vZGVBdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgIGtleTogZGF0YS5rZXksXG4gICAgICB0eXBlOiAnbWVyZ2UnLFxuICAgICAgYXR0cmlidXRlczogZGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgZGF0YTogYXR0cmlidXRlc1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGF0dGFjaE5vZGVBdHRyaWJ1dGVzVXBkYXRlcihDbGFzcywgbWV0aG9kLCBtb2RlKSB7XG4gIENsYXNzLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKG5vZGVPckVkZ2UsIG5hbWVPckVkZ2UsIGFkZDEpIHtcbiAgICBjb25zdCBbZGF0YSwgdXBkYXRlcl0gPSBmaW5kUmVsZXZhbnROb2RlRGF0YShcbiAgICAgIHRoaXMsXG4gICAgICBtZXRob2QsXG4gICAgICBtb2RlLFxuICAgICAgbm9kZU9yRWRnZSxcbiAgICAgIG5hbWVPckVkZ2UsXG4gICAgICBhZGQxXG4gICAgKTtcblxuICAgIGlmICh0eXBlb2YgdXBkYXRlciAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogcHJvdmlkZWQgdXBkYXRlciBpcyBub3QgYSBmdW5jdGlvbi5gXG4gICAgICApO1xuXG4gICAgZGF0YS5hdHRyaWJ1dGVzID0gdXBkYXRlcihkYXRhLmF0dHJpYnV0ZXMpO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ25vZGVBdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgIGtleTogZGF0YS5rZXksXG4gICAgICB0eXBlOiAndXBkYXRlJyxcbiAgICAgIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlc1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG59XG5cbi8qKlxuICogTGlzdCBvZiBtZXRob2RzIHRvIGF0dGFjaC5cbiAqL1xuY29uc3QgTk9ERV9BVFRSSUJVVEVTX01FVEhPRFMgPSBbXG4gIHtcbiAgICBuYW1lOiBlbGVtZW50ID0+IGBnZXQke2VsZW1lbnR9QXR0cmlidXRlYCxcbiAgICBhdHRhY2hlcjogYXR0YWNoTm9kZUF0dHJpYnV0ZUdldHRlclxuICB9LFxuICB7XG4gICAgbmFtZTogZWxlbWVudCA9PiBgZ2V0JHtlbGVtZW50fUF0dHJpYnV0ZXNgLFxuICAgIGF0dGFjaGVyOiBhdHRhY2hOb2RlQXR0cmlidXRlc0dldHRlclxuICB9LFxuICB7XG4gICAgbmFtZTogZWxlbWVudCA9PiBgaGFzJHtlbGVtZW50fUF0dHJpYnV0ZWAsXG4gICAgYXR0YWNoZXI6IGF0dGFjaE5vZGVBdHRyaWJ1dGVDaGVja2VyXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBlbGVtZW50ID0+IGBzZXQke2VsZW1lbnR9QXR0cmlidXRlYCxcbiAgICBhdHRhY2hlcjogYXR0YWNoTm9kZUF0dHJpYnV0ZVNldHRlclxuICB9LFxuICB7XG4gICAgbmFtZTogZWxlbWVudCA9PiBgdXBkYXRlJHtlbGVtZW50fUF0dHJpYnV0ZWAsXG4gICAgYXR0YWNoZXI6IGF0dGFjaE5vZGVBdHRyaWJ1dGVVcGRhdGVyXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBlbGVtZW50ID0+IGByZW1vdmUke2VsZW1lbnR9QXR0cmlidXRlYCxcbiAgICBhdHRhY2hlcjogYXR0YWNoTm9kZUF0dHJpYnV0ZVJlbW92ZXJcbiAgfSxcbiAge1xuICAgIG5hbWU6IGVsZW1lbnQgPT4gYHJlcGxhY2Uke2VsZW1lbnR9QXR0cmlidXRlc2AsXG4gICAgYXR0YWNoZXI6IGF0dGFjaE5vZGVBdHRyaWJ1dGVzUmVwbGFjZXJcbiAgfSxcbiAge1xuICAgIG5hbWU6IGVsZW1lbnQgPT4gYG1lcmdlJHtlbGVtZW50fUF0dHJpYnV0ZXNgLFxuICAgIGF0dGFjaGVyOiBhdHRhY2hOb2RlQXR0cmlidXRlc01lcmdlclxuICB9LFxuICB7XG4gICAgbmFtZTogZWxlbWVudCA9PiBgdXBkYXRlJHtlbGVtZW50fUF0dHJpYnV0ZXNgLFxuICAgIGF0dGFjaGVyOiBhdHRhY2hOb2RlQXR0cmlidXRlc1VwZGF0ZXJcbiAgfVxuXTtcblxuLyoqXG4gKiBBdHRhY2ggZXZlcnkgYXR0cmlidXRlcy1yZWxhdGVkIG1ldGhvZHMgdG8gYSBHcmFwaCBjbGFzcy5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBHcmFwaCAtIFRhcmdldCBjbGFzcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYXR0YWNoTm9kZUF0dHJpYnV0ZXNNZXRob2RzKEdyYXBoKSB7XG4gIE5PREVfQVRUUklCVVRFU19NRVRIT0RTLmZvckVhY2goZnVuY3Rpb24gKHtuYW1lLCBhdHRhY2hlcn0pIHtcbiAgICAvLyBGb3Igbm9kZXNcbiAgICBhdHRhY2hlcihHcmFwaCwgbmFtZSgnTm9kZScpLCBOT0RFKTtcblxuICAgIC8vIEZvciBzb3VyY2VzXG4gICAgYXR0YWNoZXIoR3JhcGgsIG5hbWUoJ1NvdXJjZScpLCBTT1VSQ0UpO1xuXG4gICAgLy8gRm9yIHRhcmdldHNcbiAgICBhdHRhY2hlcihHcmFwaCwgbmFtZSgnVGFyZ2V0JyksIFRBUkdFVCk7XG5cbiAgICAvLyBGb3Igb3Bwb3NpdGVzXG4gICAgYXR0YWNoZXIoR3JhcGgsIG5hbWUoJ09wcG9zaXRlJyksIE9QUE9TSVRFKTtcbiAgfSk7XG59XG4iLCAiLyoqXG4gKiBHcmFwaG9sb2d5IEVkZ2UgQXR0cmlidXRlcyBtZXRob2RzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICovXG5pbXBvcnQge2Fzc2lnbiwgaXNQbGFpbk9iamVjdCwgZ2V0TWF0Y2hpbmdFZGdlfSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7XG4gIEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yLFxuICBOb3RGb3VuZEdyYXBoRXJyb3IsXG4gIFVzYWdlR3JhcGhFcnJvclxufSBmcm9tICcuLi9lcnJvcnMnO1xuXG4vKipcbiAqIEF0dGFjaCBhbiBhdHRyaWJ1dGUgZ2V0dGVyIG1ldGhvZCBvbnRvIHRoZSBwcm92aWRlZCBjbGFzcy5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBDbGFzcyAgICAgICAgIC0gVGFyZ2V0IGNsYXNzLlxuICogQHBhcmFtIHtzdHJpbmd9ICAgbWV0aG9kICAgICAgICAtIE1ldGhvZCBuYW1lLlxuICogQHBhcmFtIHtzdHJpbmd9ICAgdHlwZSAgICAgICAgICAtIFR5cGUgb2YgdGhlIGVkZ2UgdG8gZmluZC5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoRWRnZUF0dHJpYnV0ZUdldHRlcihDbGFzcywgbWV0aG9kLCB0eXBlKSB7XG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlc2lyZWQgYXR0cmlidXRlIGZvciB0aGUgZ2l2ZW4gZWxlbWVudCAobm9kZSBvciBlZGdlKS5cbiAgICpcbiAgICogQXJpdHkgMjpcbiAgICogQHBhcmFtICB7YW55fSAgICBlbGVtZW50IC0gVGFyZ2V0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge3N0cmluZ30gbmFtZSAgICAtIEF0dHJpYnV0ZSdzIG5hbWUuXG4gICAqXG4gICAqIEFyaXR5IDMgKG9ubHkgZm9yIGVkZ2VzKTpcbiAgICogQHBhcmFtICB7YW55fSAgICAgc291cmNlIC0gU291cmNlIGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge2FueX0gICAgIHRhcmdldCAtIFRhcmdldCBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9ICBuYW1lICAgLSBBdHRyaWJ1dGUncyBuYW1lLlxuICAgKlxuICAgKiBAcmV0dXJuIHttaXhlZH0gICAgICAgICAgLSBUaGUgYXR0cmlidXRlJ3MgdmFsdWUuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdG9vIG1hbnkgYXJndW1lbnRzIGFyZSBwcm92aWRlZC5cbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiBhbnkgb2YgdGhlIGVsZW1lbnRzIGlzIG5vdCBmb3VuZC5cbiAgICovXG4gIENsYXNzLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKGVsZW1lbnQsIG5hbWUpIHtcbiAgICBsZXQgZGF0YTtcblxuICAgIGlmICh0aGlzLnR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSB0aGlzLnR5cGUpXG4gICAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjYW5ub3QgZmluZCB0aGlzIHR5cGUgb2YgZWRnZXMgaW4geW91ciAke3RoaXMudHlwZX0gZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMikge1xuICAgICAgaWYgKHRoaXMubXVsdGkpXG4gICAgICAgIHRocm93IG5ldyBVc2FnZUdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY2Fubm90IHVzZSBhIHtzb3VyY2UsdGFyZ2V0fSBjb21ibyB3aGVuIGFza2luZyBhYm91dCBhbiBlZGdlJ3MgYXR0cmlidXRlcyBpbiBhIE11bHRpR3JhcGggc2luY2Ugd2UgY2Fubm90IGluZmVyIHRoZSBvbmUgeW91IHdhbnQgaW5mb3JtYXRpb24gYWJvdXQuYFxuICAgICAgICApO1xuXG4gICAgICBjb25zdCBzb3VyY2UgPSAnJyArIGVsZW1lbnQsXG4gICAgICAgIHRhcmdldCA9ICcnICsgbmFtZTtcblxuICAgICAgbmFtZSA9IGFyZ3VtZW50c1syXTtcblxuICAgICAgZGF0YSA9IGdldE1hdGNoaW5nRWRnZSh0aGlzLCBzb3VyY2UsIHRhcmdldCwgdHlwZSk7XG5cbiAgICAgIGlmICghZGF0YSlcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCBhbiBlZGdlIGZvciB0aGUgZ2l2ZW4gcGF0aCAoXCIke3NvdXJjZX1cIiAtIFwiJHt0YXJnZXR9XCIpLmBcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWxlbWVudCA9ICcnICsgZWxlbWVudDtcbiAgICAgIGRhdGEgPSB0aGlzLl9lZGdlcy5nZXQoZWxlbWVudCk7XG5cbiAgICAgIGlmICghZGF0YSlcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VsZW1lbnR9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmICh0eXBlICE9PSAnbWl4ZWQnICYmIGRhdGEudW5kaXJlY3RlZCAhPT0gKHR5cGUgPT09ICd1bmRpcmVjdGVkJykpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VsZW1lbnR9XCIgJHt0eXBlfSBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgcmV0dXJuIGRhdGEuYXR0cmlidXRlc1tuYW1lXTtcbiAgfTtcbn1cblxuLyoqXG4gKiBBdHRhY2ggYW4gYXR0cmlidXRlcyBnZXR0ZXIgbWV0aG9kIG9udG8gdGhlIHByb3ZpZGVkIGNsYXNzLlxuICpcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IENsYXNzICAgICAgIC0gVGFyZ2V0IGNsYXNzLlxuICogQHBhcmFtIHtzdHJpbmd9ICAgbWV0aG9kICAgICAgLSBNZXRob2QgbmFtZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIHR5cGUgICAgICAgIC0gVHlwZSBvZiB0aGUgZWRnZSB0byBmaW5kLlxuICovXG5mdW5jdGlvbiBhdHRhY2hFZGdlQXR0cmlidXRlc0dldHRlcihDbGFzcywgbWV0aG9kLCB0eXBlKSB7XG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYWxsIHRoZSB0YXJnZXQgZWxlbWVudCdzIGF0dHJpYnV0ZXMuXG4gICAqXG4gICAqIEFyaXR5IDI6XG4gICAqIEBwYXJhbSAge2FueX0gICAgZWxlbWVudCAtIFRhcmdldCBlbGVtZW50LlxuICAgKlxuICAgKiBBcml0eSAzIChvbmx5IGZvciBlZGdlcyk6XG4gICAqIEBwYXJhbSAge2FueX0gICAgIHNvdXJjZSAtIFNvdXJjZSBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICB0YXJnZXQgLSBUYXJnZXQgZWxlbWVudC5cbiAgICpcbiAgICogQHJldHVybiB7b2JqZWN0fSAgICAgICAgICAtIFRoZSBlbGVtZW50J3MgYXR0cmlidXRlcy5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0b28gbWFueSBhcmd1bWVudHMgYXJlIHByb3ZpZGVkLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIGFueSBvZiB0aGUgZWxlbWVudHMgaXMgbm90IGZvdW5kLlxuICAgKi9cbiAgQ2xhc3MucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIGxldCBkYXRhO1xuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09IHRoaXMudHlwZSlcbiAgICAgIHRocm93IG5ldyBVc2FnZUdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNhbm5vdCBmaW5kIHRoaXMgdHlwZSBvZiBlZGdlcyBpbiB5b3VyICR7dGhpcy50eXBlfSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aSlcbiAgICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjYW5ub3QgdXNlIGEge3NvdXJjZSx0YXJnZXR9IGNvbWJvIHdoZW4gYXNraW5nIGFib3V0IGFuIGVkZ2UncyBhdHRyaWJ1dGVzIGluIGEgTXVsdGlHcmFwaCBzaW5jZSB3ZSBjYW5ub3QgaW5mZXIgdGhlIG9uZSB5b3Ugd2FudCBpbmZvcm1hdGlvbiBhYm91dC5gXG4gICAgICAgICk7XG5cbiAgICAgIGNvbnN0IHNvdXJjZSA9ICcnICsgZWxlbWVudCxcbiAgICAgICAgdGFyZ2V0ID0gJycgKyBhcmd1bWVudHNbMV07XG5cbiAgICAgIGRhdGEgPSBnZXRNYXRjaGluZ0VkZ2UodGhpcywgc291cmNlLCB0YXJnZXQsIHR5cGUpO1xuXG4gICAgICBpZiAoIWRhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgYW4gZWRnZSBmb3IgdGhlIGdpdmVuIHBhdGggKFwiJHtzb3VyY2V9XCIgLSBcIiR7dGFyZ2V0fVwiKS5gXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1lbnQgPSAnJyArIGVsZW1lbnQ7XG4gICAgICBkYXRhID0gdGhpcy5fZWRnZXMuZ2V0KGVsZW1lbnQpO1xuXG4gICAgICBpZiAoIWRhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtlbGVtZW50fVwiIGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZSAhPT0gJ21peGVkJyAmJiBkYXRhLnVuZGlyZWN0ZWQgIT09ICh0eXBlID09PSAndW5kaXJlY3RlZCcpKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtlbGVtZW50fVwiICR7dHlwZX0gZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIHJldHVybiBkYXRhLmF0dHJpYnV0ZXM7XG4gIH07XG59XG5cbi8qKlxuICogQXR0YWNoIGFuIGF0dHJpYnV0ZSBjaGVja2VyIG1ldGhvZCBvbnRvIHRoZSBwcm92aWRlZCBjbGFzcy5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBDbGFzcyAgICAgICAtIFRhcmdldCBjbGFzcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIG1ldGhvZCAgICAgIC0gTWV0aG9kIG5hbWUuXG4gKiBAcGFyYW0ge3N0cmluZ30gICB0eXBlICAgICAgICAtIFR5cGUgb2YgdGhlIGVkZ2UgdG8gZmluZC5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoRWRnZUF0dHJpYnV0ZUNoZWNrZXIoQ2xhc3MsIG1ldGhvZCwgdHlwZSkge1xuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGRlc2lyZWQgYXR0cmlidXRlIGlzIHNldCBmb3IgdGhlIGdpdmVuIGVsZW1lbnQgKG5vZGUgb3IgZWRnZSkuXG4gICAqXG4gICAqIEFyaXR5IDI6XG4gICAqIEBwYXJhbSAge2FueX0gICAgZWxlbWVudCAtIFRhcmdldCBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9IG5hbWUgICAgLSBBdHRyaWJ1dGUncyBuYW1lLlxuICAgKlxuICAgKiBBcml0eSAzIChvbmx5IGZvciBlZGdlcyk6XG4gICAqIEBwYXJhbSAge2FueX0gICAgIHNvdXJjZSAtIFNvdXJjZSBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICB0YXJnZXQgLSBUYXJnZXQgZWxlbWVudC5cbiAgICogQHBhcmFtICB7c3RyaW5nfSAgbmFtZSAgIC0gQXR0cmlidXRlJ3MgbmFtZS5cbiAgICpcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0b28gbWFueSBhcmd1bWVudHMgYXJlIHByb3ZpZGVkLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIGFueSBvZiB0aGUgZWxlbWVudHMgaXMgbm90IGZvdW5kLlxuICAgKi9cbiAgQ2xhc3MucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiAoZWxlbWVudCwgbmFtZSkge1xuICAgIGxldCBkYXRhO1xuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09IHRoaXMudHlwZSlcbiAgICAgIHRocm93IG5ldyBVc2FnZUdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNhbm5vdCBmaW5kIHRoaXMgdHlwZSBvZiBlZGdlcyBpbiB5b3VyICR7dGhpcy50eXBlfSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aSlcbiAgICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjYW5ub3QgdXNlIGEge3NvdXJjZSx0YXJnZXR9IGNvbWJvIHdoZW4gYXNraW5nIGFib3V0IGFuIGVkZ2UncyBhdHRyaWJ1dGVzIGluIGEgTXVsdGlHcmFwaCBzaW5jZSB3ZSBjYW5ub3QgaW5mZXIgdGhlIG9uZSB5b3Ugd2FudCBpbmZvcm1hdGlvbiBhYm91dC5gXG4gICAgICAgICk7XG5cbiAgICAgIGNvbnN0IHNvdXJjZSA9ICcnICsgZWxlbWVudCxcbiAgICAgICAgdGFyZ2V0ID0gJycgKyBuYW1lO1xuXG4gICAgICBuYW1lID0gYXJndW1lbnRzWzJdO1xuXG4gICAgICBkYXRhID0gZ2V0TWF0Y2hpbmdFZGdlKHRoaXMsIHNvdXJjZSwgdGFyZ2V0LCB0eXBlKTtcblxuICAgICAgaWYgKCFkYXRhKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIGFuIGVkZ2UgZm9yIHRoZSBnaXZlbiBwYXRoIChcIiR7c291cmNlfVwiIC0gXCIke3RhcmdldH1cIikuYFxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVtZW50ID0gJycgKyBlbGVtZW50O1xuICAgICAgZGF0YSA9IHRoaXMuX2VkZ2VzLmdldChlbGVtZW50KTtcblxuICAgICAgaWYgKCFkYXRhKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWxlbWVudH1cIiBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgIT09ICdtaXhlZCcgJiYgZGF0YS51bmRpcmVjdGVkICE9PSAodHlwZSA9PT0gJ3VuZGlyZWN0ZWQnKSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWxlbWVudH1cIiAke3R5cGV9IGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICByZXR1cm4gZGF0YS5hdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KG5hbWUpO1xuICB9O1xufVxuXG4vKipcbiAqIEF0dGFjaCBhbiBhdHRyaWJ1dGUgc2V0dGVyIG1ldGhvZCBvbnRvIHRoZSBwcm92aWRlZCBjbGFzcy5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBDbGFzcyAgICAgICAgIC0gVGFyZ2V0IGNsYXNzLlxuICogQHBhcmFtIHtzdHJpbmd9ICAgbWV0aG9kICAgICAgICAtIE1ldGhvZCBuYW1lLlxuICogQHBhcmFtIHtzdHJpbmd9ICAgdHlwZSAgICAgICAgICAtIFR5cGUgb2YgdGhlIGVkZ2UgdG8gZmluZC5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoRWRnZUF0dHJpYnV0ZVNldHRlcihDbGFzcywgbWV0aG9kLCB0eXBlKSB7XG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlc2lyZWQgYXR0cmlidXRlIGZvciB0aGUgZ2l2ZW4gZWxlbWVudCAobm9kZSBvciBlZGdlKS5cbiAgICpcbiAgICogQXJpdHkgMjpcbiAgICogQHBhcmFtICB7YW55fSAgICBlbGVtZW50IC0gVGFyZ2V0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge3N0cmluZ30gbmFtZSAgICAtIEF0dHJpYnV0ZSdzIG5hbWUuXG4gICAqIEBwYXJhbSAge21peGVkfSAgdmFsdWUgICAtIE5ldyBhdHRyaWJ1dGUgdmFsdWUuXG4gICAqXG4gICAqIEFyaXR5IDMgKG9ubHkgZm9yIGVkZ2VzKTpcbiAgICogQHBhcmFtICB7YW55fSAgICAgc291cmNlIC0gU291cmNlIGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge2FueX0gICAgIHRhcmdldCAtIFRhcmdldCBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9ICBuYW1lICAgLSBBdHRyaWJ1dGUncyBuYW1lLlxuICAgKiBAcGFyYW0gIHttaXhlZH0gIHZhbHVlICAgLSBOZXcgYXR0cmlidXRlIHZhbHVlLlxuICAgKlxuICAgKiBAcmV0dXJuIHtHcmFwaH0gICAgICAgICAgLSBSZXR1cm5zIGl0c2VsZiBmb3IgY2hhaW5pbmcuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdG9vIG1hbnkgYXJndW1lbnRzIGFyZSBwcm92aWRlZC5cbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiBhbnkgb2YgdGhlIGVsZW1lbnRzIGlzIG5vdCBmb3VuZC5cbiAgICovXG4gIENsYXNzLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKGVsZW1lbnQsIG5hbWUsIHZhbHVlKSB7XG4gICAgbGV0IGRhdGE7XG5cbiAgICBpZiAodGhpcy50eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gdGhpcy50eXBlKVxuICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY2Fubm90IGZpbmQgdGhpcyB0eXBlIG9mIGVkZ2VzIGluIHlvdXIgJHt0aGlzLnR5cGV9IGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDMpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpKVxuICAgICAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNhbm5vdCB1c2UgYSB7c291cmNlLHRhcmdldH0gY29tYm8gd2hlbiBhc2tpbmcgYWJvdXQgYW4gZWRnZSdzIGF0dHJpYnV0ZXMgaW4gYSBNdWx0aUdyYXBoIHNpbmNlIHdlIGNhbm5vdCBpbmZlciB0aGUgb25lIHlvdSB3YW50IGluZm9ybWF0aW9uIGFib3V0LmBcbiAgICAgICAgKTtcblxuICAgICAgY29uc3Qgc291cmNlID0gJycgKyBlbGVtZW50LFxuICAgICAgICB0YXJnZXQgPSAnJyArIG5hbWU7XG5cbiAgICAgIG5hbWUgPSBhcmd1bWVudHNbMl07XG4gICAgICB2YWx1ZSA9IGFyZ3VtZW50c1szXTtcblxuICAgICAgZGF0YSA9IGdldE1hdGNoaW5nRWRnZSh0aGlzLCBzb3VyY2UsIHRhcmdldCwgdHlwZSk7XG5cbiAgICAgIGlmICghZGF0YSlcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCBhbiBlZGdlIGZvciB0aGUgZ2l2ZW4gcGF0aCAoXCIke3NvdXJjZX1cIiAtIFwiJHt0YXJnZXR9XCIpLmBcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWxlbWVudCA9ICcnICsgZWxlbWVudDtcbiAgICAgIGRhdGEgPSB0aGlzLl9lZGdlcy5nZXQoZWxlbWVudCk7XG5cbiAgICAgIGlmICghZGF0YSlcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VsZW1lbnR9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmICh0eXBlICE9PSAnbWl4ZWQnICYmIGRhdGEudW5kaXJlY3RlZCAhPT0gKHR5cGUgPT09ICd1bmRpcmVjdGVkJykpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VsZW1lbnR9XCIgJHt0eXBlfSBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgZGF0YS5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnZWRnZUF0dHJpYnV0ZXNVcGRhdGVkJywge1xuICAgICAga2V5OiBkYXRhLmtleSxcbiAgICAgIHR5cGU6ICdzZXQnLFxuICAgICAgYXR0cmlidXRlczogZGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgbmFtZVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG59XG5cbi8qKlxuICogQXR0YWNoIGFuIGF0dHJpYnV0ZSB1cGRhdGVyIG1ldGhvZCBvbnRvIHRoZSBwcm92aWRlZCBjbGFzcy5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBDbGFzcyAgICAgICAgIC0gVGFyZ2V0IGNsYXNzLlxuICogQHBhcmFtIHtzdHJpbmd9ICAgbWV0aG9kICAgICAgICAtIE1ldGhvZCBuYW1lLlxuICogQHBhcmFtIHtzdHJpbmd9ICAgdHlwZSAgICAgICAgICAtIFR5cGUgb2YgdGhlIGVkZ2UgdG8gZmluZC5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoRWRnZUF0dHJpYnV0ZVVwZGF0ZXIoQ2xhc3MsIG1ldGhvZCwgdHlwZSkge1xuICAvKipcbiAgICogVXBkYXRlIHRoZSBkZXNpcmVkIGF0dHJpYnV0ZSBmb3IgdGhlIGdpdmVuIGVsZW1lbnQgKG5vZGUgb3IgZWRnZSkgdXNpbmdcbiAgICogdGhlIHByb3ZpZGVkIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBBcml0eSAyOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgZWxlbWVudCAtIFRhcmdldCBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9ICAgbmFtZSAgICAtIEF0dHJpYnV0ZSdzIG5hbWUuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSB1cGRhdGVyIC0gVXBkYXRlciBmdW5jdGlvbi5cbiAgICpcbiAgICogQXJpdHkgMyAob25seSBmb3IgZWRnZXMpOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgc291cmNlICAtIFNvdXJjZSBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgdGFyZ2V0ICAtIFRhcmdldCBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9ICAgbmFtZSAgICAtIEF0dHJpYnV0ZSdzIG5hbWUuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSB1cGRhdGVyIC0gVXBkYXRlciBmdW5jdGlvbi5cbiAgICpcbiAgICogQHJldHVybiB7R3JhcGh9ICAgICAgICAgICAgLSBSZXR1cm5zIGl0c2VsZiBmb3IgY2hhaW5pbmcuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdG9vIG1hbnkgYXJndW1lbnRzIGFyZSBwcm92aWRlZC5cbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiBhbnkgb2YgdGhlIGVsZW1lbnRzIGlzIG5vdCBmb3VuZC5cbiAgICovXG4gIENsYXNzLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKGVsZW1lbnQsIG5hbWUsIHVwZGF0ZXIpIHtcbiAgICBsZXQgZGF0YTtcblxuICAgIGlmICh0aGlzLnR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSB0aGlzLnR5cGUpXG4gICAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjYW5ub3QgZmluZCB0aGlzIHR5cGUgb2YgZWRnZXMgaW4geW91ciAke3RoaXMudHlwZX0gZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMykge1xuICAgICAgaWYgKHRoaXMubXVsdGkpXG4gICAgICAgIHRocm93IG5ldyBVc2FnZUdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY2Fubm90IHVzZSBhIHtzb3VyY2UsdGFyZ2V0fSBjb21ibyB3aGVuIGFza2luZyBhYm91dCBhbiBlZGdlJ3MgYXR0cmlidXRlcyBpbiBhIE11bHRpR3JhcGggc2luY2Ugd2UgY2Fubm90IGluZmVyIHRoZSBvbmUgeW91IHdhbnQgaW5mb3JtYXRpb24gYWJvdXQuYFxuICAgICAgICApO1xuXG4gICAgICBjb25zdCBzb3VyY2UgPSAnJyArIGVsZW1lbnQsXG4gICAgICAgIHRhcmdldCA9ICcnICsgbmFtZTtcblxuICAgICAgbmFtZSA9IGFyZ3VtZW50c1syXTtcbiAgICAgIHVwZGF0ZXIgPSBhcmd1bWVudHNbM107XG5cbiAgICAgIGRhdGEgPSBnZXRNYXRjaGluZ0VkZ2UodGhpcywgc291cmNlLCB0YXJnZXQsIHR5cGUpO1xuXG4gICAgICBpZiAoIWRhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgYW4gZWRnZSBmb3IgdGhlIGdpdmVuIHBhdGggKFwiJHtzb3VyY2V9XCIgLSBcIiR7dGFyZ2V0fVwiKS5gXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1lbnQgPSAnJyArIGVsZW1lbnQ7XG4gICAgICBkYXRhID0gdGhpcy5fZWRnZXMuZ2V0KGVsZW1lbnQpO1xuXG4gICAgICBpZiAoIWRhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtlbGVtZW50fVwiIGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHVwZGF0ZXIgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IHVwZGF0ZXIgc2hvdWxkIGJlIGEgZnVuY3Rpb24uYFxuICAgICAgKTtcblxuICAgIGlmICh0eXBlICE9PSAnbWl4ZWQnICYmIGRhdGEudW5kaXJlY3RlZCAhPT0gKHR5cGUgPT09ICd1bmRpcmVjdGVkJykpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VsZW1lbnR9XCIgJHt0eXBlfSBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgZGF0YS5hdHRyaWJ1dGVzW25hbWVdID0gdXBkYXRlcihkYXRhLmF0dHJpYnV0ZXNbbmFtZV0pO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ2VkZ2VBdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgIGtleTogZGF0YS5rZXksXG4gICAgICB0eXBlOiAnc2V0JyxcbiAgICAgIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlcyxcbiAgICAgIG5hbWVcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xufVxuXG4vKipcbiAqIEF0dGFjaCBhbiBhdHRyaWJ1dGUgcmVtb3ZlciBtZXRob2Qgb250byB0aGUgcHJvdmlkZWQgY2xhc3MuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gQ2xhc3MgICAgICAgICAtIFRhcmdldCBjbGFzcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIG1ldGhvZCAgICAgICAgLSBNZXRob2QgbmFtZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIHR5cGUgICAgICAgICAgLSBUeXBlIG9mIHRoZSBlZGdlIHRvIGZpbmQuXG4gKi9cbmZ1bmN0aW9uIGF0dGFjaEVkZ2VBdHRyaWJ1dGVSZW1vdmVyKENsYXNzLCBtZXRob2QsIHR5cGUpIHtcbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgZGVzaXJlZCBhdHRyaWJ1dGUgZm9yIHRoZSBnaXZlbiBlbGVtZW50IChub2RlIG9yIGVkZ2UpLlxuICAgKlxuICAgKiBBcml0eSAyOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgIGVsZW1lbnQgLSBUYXJnZXQgZWxlbWVudC5cbiAgICogQHBhcmFtICB7c3RyaW5nfSBuYW1lICAgIC0gQXR0cmlidXRlJ3MgbmFtZS5cbiAgICpcbiAgICogQXJpdHkgMyAob25seSBmb3IgZWRnZXMpOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBzb3VyY2UgLSBTb3VyY2UgZWxlbWVudC5cbiAgICogQHBhcmFtICB7YW55fSAgICAgdGFyZ2V0IC0gVGFyZ2V0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge3N0cmluZ30gIG5hbWUgICAtIEF0dHJpYnV0ZSdzIG5hbWUuXG4gICAqXG4gICAqIEByZXR1cm4ge0dyYXBofSAgICAgICAgICAtIFJldHVybnMgaXRzZWxmIGZvciBjaGFpbmluZy5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0b28gbWFueSBhcmd1bWVudHMgYXJlIHByb3ZpZGVkLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIGFueSBvZiB0aGUgZWxlbWVudHMgaXMgbm90IGZvdW5kLlxuICAgKi9cbiAgQ2xhc3MucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiAoZWxlbWVudCwgbmFtZSkge1xuICAgIGxldCBkYXRhO1xuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09IHRoaXMudHlwZSlcbiAgICAgIHRocm93IG5ldyBVc2FnZUdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNhbm5vdCBmaW5kIHRoaXMgdHlwZSBvZiBlZGdlcyBpbiB5b3VyICR7dGhpcy50eXBlfSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aSlcbiAgICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjYW5ub3QgdXNlIGEge3NvdXJjZSx0YXJnZXR9IGNvbWJvIHdoZW4gYXNraW5nIGFib3V0IGFuIGVkZ2UncyBhdHRyaWJ1dGVzIGluIGEgTXVsdGlHcmFwaCBzaW5jZSB3ZSBjYW5ub3QgaW5mZXIgdGhlIG9uZSB5b3Ugd2FudCBpbmZvcm1hdGlvbiBhYm91dC5gXG4gICAgICAgICk7XG5cbiAgICAgIGNvbnN0IHNvdXJjZSA9ICcnICsgZWxlbWVudCxcbiAgICAgICAgdGFyZ2V0ID0gJycgKyBuYW1lO1xuXG4gICAgICBuYW1lID0gYXJndW1lbnRzWzJdO1xuXG4gICAgICBkYXRhID0gZ2V0TWF0Y2hpbmdFZGdlKHRoaXMsIHNvdXJjZSwgdGFyZ2V0LCB0eXBlKTtcblxuICAgICAgaWYgKCFkYXRhKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIGFuIGVkZ2UgZm9yIHRoZSBnaXZlbiBwYXRoIChcIiR7c291cmNlfVwiIC0gXCIke3RhcmdldH1cIikuYFxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVtZW50ID0gJycgKyBlbGVtZW50O1xuICAgICAgZGF0YSA9IHRoaXMuX2VkZ2VzLmdldChlbGVtZW50KTtcblxuICAgICAgaWYgKCFkYXRhKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWxlbWVudH1cIiBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgIT09ICdtaXhlZCcgJiYgZGF0YS51bmRpcmVjdGVkICE9PSAodHlwZSA9PT0gJ3VuZGlyZWN0ZWQnKSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWxlbWVudH1cIiAke3R5cGV9IGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBkZWxldGUgZGF0YS5hdHRyaWJ1dGVzW25hbWVdO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ2VkZ2VBdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgIGtleTogZGF0YS5rZXksXG4gICAgICB0eXBlOiAncmVtb3ZlJyxcbiAgICAgIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlcyxcbiAgICAgIG5hbWVcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xufVxuXG4vKipcbiAqIEF0dGFjaCBhbiBhdHRyaWJ1dGUgcmVwbGFjZXIgbWV0aG9kIG9udG8gdGhlIHByb3ZpZGVkIGNsYXNzLlxuICpcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IENsYXNzICAgICAgICAgLSBUYXJnZXQgY2xhc3MuXG4gKiBAcGFyYW0ge3N0cmluZ30gICBtZXRob2QgICAgICAgIC0gTWV0aG9kIG5hbWUuXG4gKiBAcGFyYW0ge3N0cmluZ30gICB0eXBlICAgICAgICAgIC0gVHlwZSBvZiB0aGUgZWRnZSB0byBmaW5kLlxuICovXG5mdW5jdGlvbiBhdHRhY2hFZGdlQXR0cmlidXRlc1JlcGxhY2VyKENsYXNzLCBtZXRob2QsIHR5cGUpIHtcbiAgLyoqXG4gICAqIFJlcGxhY2UgdGhlIGF0dHJpYnV0ZXMgZm9yIHRoZSBnaXZlbiBlbGVtZW50IChub2RlIG9yIGVkZ2UpLlxuICAgKlxuICAgKiBBcml0eSAyOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgIGVsZW1lbnQgICAgLSBUYXJnZXQgZWxlbWVudC5cbiAgICogQHBhcmFtICB7b2JqZWN0fSBhdHRyaWJ1dGVzIC0gTmV3IGF0dHJpYnV0ZXMuXG4gICAqXG4gICAqIEFyaXR5IDMgKG9ubHkgZm9yIGVkZ2VzKTpcbiAgICogQHBhcmFtICB7YW55fSAgICAgc291cmNlICAgICAtIFNvdXJjZSBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICB0YXJnZXQgICAgIC0gVGFyZ2V0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge29iamVjdH0gIGF0dHJpYnV0ZXMgLSBOZXcgYXR0cmlidXRlcy5cbiAgICpcbiAgICogQHJldHVybiB7R3JhcGh9ICAgICAgICAgICAgICAtIFJldHVybnMgaXRzZWxmIGZvciBjaGFpbmluZy5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0b28gbWFueSBhcmd1bWVudHMgYXJlIHByb3ZpZGVkLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIGFueSBvZiB0aGUgZWxlbWVudHMgaXMgbm90IGZvdW5kLlxuICAgKi9cbiAgQ2xhc3MucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiAoZWxlbWVudCwgYXR0cmlidXRlcykge1xuICAgIGxldCBkYXRhO1xuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09IHRoaXMudHlwZSlcbiAgICAgIHRocm93IG5ldyBVc2FnZUdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNhbm5vdCBmaW5kIHRoaXMgdHlwZSBvZiBlZGdlcyBpbiB5b3VyICR7dGhpcy50eXBlfSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aSlcbiAgICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjYW5ub3QgdXNlIGEge3NvdXJjZSx0YXJnZXR9IGNvbWJvIHdoZW4gYXNraW5nIGFib3V0IGFuIGVkZ2UncyBhdHRyaWJ1dGVzIGluIGEgTXVsdGlHcmFwaCBzaW5jZSB3ZSBjYW5ub3QgaW5mZXIgdGhlIG9uZSB5b3Ugd2FudCBpbmZvcm1hdGlvbiBhYm91dC5gXG4gICAgICAgICk7XG5cbiAgICAgIGNvbnN0IHNvdXJjZSA9ICcnICsgZWxlbWVudCxcbiAgICAgICAgdGFyZ2V0ID0gJycgKyBhdHRyaWJ1dGVzO1xuXG4gICAgICBhdHRyaWJ1dGVzID0gYXJndW1lbnRzWzJdO1xuXG4gICAgICBkYXRhID0gZ2V0TWF0Y2hpbmdFZGdlKHRoaXMsIHNvdXJjZSwgdGFyZ2V0LCB0eXBlKTtcblxuICAgICAgaWYgKCFkYXRhKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIGFuIGVkZ2UgZm9yIHRoZSBnaXZlbiBwYXRoIChcIiR7c291cmNlfVwiIC0gXCIke3RhcmdldH1cIikuYFxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVtZW50ID0gJycgKyBlbGVtZW50O1xuICAgICAgZGF0YSA9IHRoaXMuX2VkZ2VzLmdldChlbGVtZW50KTtcblxuICAgICAgaWYgKCFkYXRhKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWxlbWVudH1cIiBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1BsYWluT2JqZWN0KGF0dHJpYnV0ZXMpKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBwcm92aWRlZCBhdHRyaWJ1dGVzIGFyZSBub3QgYSBwbGFpbiBvYmplY3QuYFxuICAgICAgKTtcblxuICAgIGlmICh0eXBlICE9PSAnbWl4ZWQnICYmIGRhdGEudW5kaXJlY3RlZCAhPT0gKHR5cGUgPT09ICd1bmRpcmVjdGVkJykpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VsZW1lbnR9XCIgJHt0eXBlfSBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgZGF0YS5hdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcblxuICAgIC8vIEVtaXR0aW5nXG4gICAgdGhpcy5lbWl0KCdlZGdlQXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICBrZXk6IGRhdGEua2V5LFxuICAgICAgdHlwZTogJ3JlcGxhY2UnLFxuICAgICAgYXR0cmlidXRlczogZGF0YS5hdHRyaWJ1dGVzXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbn1cblxuLyoqXG4gKiBBdHRhY2ggYW4gYXR0cmlidXRlIG1lcmdlciBtZXRob2Qgb250byB0aGUgcHJvdmlkZWQgY2xhc3MuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gQ2xhc3MgICAgICAgICAtIFRhcmdldCBjbGFzcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIG1ldGhvZCAgICAgICAgLSBNZXRob2QgbmFtZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIHR5cGUgICAgICAgICAgLSBUeXBlIG9mIHRoZSBlZGdlIHRvIGZpbmQuXG4gKi9cbmZ1bmN0aW9uIGF0dGFjaEVkZ2VBdHRyaWJ1dGVzTWVyZ2VyKENsYXNzLCBtZXRob2QsIHR5cGUpIHtcbiAgLyoqXG4gICAqIE1lcmdlIHRoZSBhdHRyaWJ1dGVzIGZvciB0aGUgZ2l2ZW4gZWxlbWVudCAobm9kZSBvciBlZGdlKS5cbiAgICpcbiAgICogQXJpdHkgMjpcbiAgICogQHBhcmFtICB7YW55fSAgICBlbGVtZW50ICAgIC0gVGFyZ2V0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge29iamVjdH0gYXR0cmlidXRlcyAtIEF0dHJpYnV0ZXMgdG8gbWVyZ2UuXG4gICAqXG4gICAqIEFyaXR5IDMgKG9ubHkgZm9yIGVkZ2VzKTpcbiAgICogQHBhcmFtICB7YW55fSAgICAgc291cmNlICAgICAtIFNvdXJjZSBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICB0YXJnZXQgICAgIC0gVGFyZ2V0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge29iamVjdH0gIGF0dHJpYnV0ZXMgLSBBdHRyaWJ1dGVzIHRvIG1lcmdlLlxuICAgKlxuICAgKiBAcmV0dXJuIHtHcmFwaH0gICAgICAgICAgICAgIC0gUmV0dXJucyBpdHNlbGYgZm9yIGNoYWluaW5nLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRvbyBtYW55IGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgYW55IG9mIHRoZSBlbGVtZW50cyBpcyBub3QgZm91bmQuXG4gICAqL1xuICBDbGFzcy5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uIChlbGVtZW50LCBhdHRyaWJ1dGVzKSB7XG4gICAgbGV0IGRhdGE7XG5cbiAgICBpZiAodGhpcy50eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gdGhpcy50eXBlKVxuICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY2Fubm90IGZpbmQgdGhpcyB0eXBlIG9mIGVkZ2VzIGluIHlvdXIgJHt0aGlzLnR5cGV9IGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDIpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpKVxuICAgICAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNhbm5vdCB1c2UgYSB7c291cmNlLHRhcmdldH0gY29tYm8gd2hlbiBhc2tpbmcgYWJvdXQgYW4gZWRnZSdzIGF0dHJpYnV0ZXMgaW4gYSBNdWx0aUdyYXBoIHNpbmNlIHdlIGNhbm5vdCBpbmZlciB0aGUgb25lIHlvdSB3YW50IGluZm9ybWF0aW9uIGFib3V0LmBcbiAgICAgICAgKTtcblxuICAgICAgY29uc3Qgc291cmNlID0gJycgKyBlbGVtZW50LFxuICAgICAgICB0YXJnZXQgPSAnJyArIGF0dHJpYnV0ZXM7XG5cbiAgICAgIGF0dHJpYnV0ZXMgPSBhcmd1bWVudHNbMl07XG5cbiAgICAgIGRhdGEgPSBnZXRNYXRjaGluZ0VkZ2UodGhpcywgc291cmNlLCB0YXJnZXQsIHR5cGUpO1xuXG4gICAgICBpZiAoIWRhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgYW4gZWRnZSBmb3IgdGhlIGdpdmVuIHBhdGggKFwiJHtzb3VyY2V9XCIgLSBcIiR7dGFyZ2V0fVwiKS5gXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1lbnQgPSAnJyArIGVsZW1lbnQ7XG4gICAgICBkYXRhID0gdGhpcy5fZWRnZXMuZ2V0KGVsZW1lbnQpO1xuXG4gICAgICBpZiAoIWRhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtlbGVtZW50fVwiIGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzUGxhaW5PYmplY3QoYXR0cmlidXRlcykpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IHByb3ZpZGVkIGF0dHJpYnV0ZXMgYXJlIG5vdCBhIHBsYWluIG9iamVjdC5gXG4gICAgICApO1xuXG4gICAgaWYgKHR5cGUgIT09ICdtaXhlZCcgJiYgZGF0YS51bmRpcmVjdGVkICE9PSAodHlwZSA9PT0gJ3VuZGlyZWN0ZWQnKSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWxlbWVudH1cIiAke3R5cGV9IGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBhc3NpZ24oZGF0YS5hdHRyaWJ1dGVzLCBhdHRyaWJ1dGVzKTtcblxuICAgIC8vIEVtaXR0aW5nXG4gICAgdGhpcy5lbWl0KCdlZGdlQXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICBrZXk6IGRhdGEua2V5LFxuICAgICAgdHlwZTogJ21lcmdlJyxcbiAgICAgIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlcyxcbiAgICAgIGRhdGE6IGF0dHJpYnV0ZXNcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xufVxuXG4vKipcbiAqIEF0dGFjaCBhbiBhdHRyaWJ1dGUgdXBkYXRlciBtZXRob2Qgb250byB0aGUgcHJvdmlkZWQgY2xhc3MuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gQ2xhc3MgICAgICAgICAtIFRhcmdldCBjbGFzcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIG1ldGhvZCAgICAgICAgLSBNZXRob2QgbmFtZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIHR5cGUgICAgICAgICAgLSBUeXBlIG9mIHRoZSBlZGdlIHRvIGZpbmQuXG4gKi9cbmZ1bmN0aW9uIGF0dGFjaEVkZ2VBdHRyaWJ1dGVzVXBkYXRlcihDbGFzcywgbWV0aG9kLCB0eXBlKSB7XG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGdpdmVuIGVsZW1lbnQgKG5vZGUgb3IgZWRnZSkuXG4gICAqXG4gICAqIEFyaXR5IDI6XG4gICAqIEBwYXJhbSAge2FueX0gICAgICBlbGVtZW50IC0gVGFyZ2V0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSB1cGRhdGVyIC0gVXBkYXRlciBmdW5jdGlvbi5cbiAgICpcbiAgICogQXJpdHkgMyAob25seSBmb3IgZWRnZXMpOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgc291cmNlICAtIFNvdXJjZSBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgdGFyZ2V0ICAtIFRhcmdldCBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gdXBkYXRlciAtIFVwZGF0ZXIgZnVuY3Rpb24uXG4gICAqXG4gICAqIEByZXR1cm4ge0dyYXBofSAgICAgICAgICAgIC0gUmV0dXJucyBpdHNlbGYgZm9yIGNoYWluaW5nLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRvbyBtYW55IGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgYW55IG9mIHRoZSBlbGVtZW50cyBpcyBub3QgZm91bmQuXG4gICAqL1xuICBDbGFzcy5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uIChlbGVtZW50LCB1cGRhdGVyKSB7XG4gICAgbGV0IGRhdGE7XG5cbiAgICBpZiAodGhpcy50eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gdGhpcy50eXBlKVxuICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY2Fubm90IGZpbmQgdGhpcyB0eXBlIG9mIGVkZ2VzIGluIHlvdXIgJHt0aGlzLnR5cGV9IGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDIpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpKVxuICAgICAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNhbm5vdCB1c2UgYSB7c291cmNlLHRhcmdldH0gY29tYm8gd2hlbiBhc2tpbmcgYWJvdXQgYW4gZWRnZSdzIGF0dHJpYnV0ZXMgaW4gYSBNdWx0aUdyYXBoIHNpbmNlIHdlIGNhbm5vdCBpbmZlciB0aGUgb25lIHlvdSB3YW50IGluZm9ybWF0aW9uIGFib3V0LmBcbiAgICAgICAgKTtcblxuICAgICAgY29uc3Qgc291cmNlID0gJycgKyBlbGVtZW50LFxuICAgICAgICB0YXJnZXQgPSAnJyArIHVwZGF0ZXI7XG5cbiAgICAgIHVwZGF0ZXIgPSBhcmd1bWVudHNbMl07XG5cbiAgICAgIGRhdGEgPSBnZXRNYXRjaGluZ0VkZ2UodGhpcywgc291cmNlLCB0YXJnZXQsIHR5cGUpO1xuXG4gICAgICBpZiAoIWRhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgYW4gZWRnZSBmb3IgdGhlIGdpdmVuIHBhdGggKFwiJHtzb3VyY2V9XCIgLSBcIiR7dGFyZ2V0fVwiKS5gXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1lbnQgPSAnJyArIGVsZW1lbnQ7XG4gICAgICBkYXRhID0gdGhpcy5fZWRnZXMuZ2V0KGVsZW1lbnQpO1xuXG4gICAgICBpZiAoIWRhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtlbGVtZW50fVwiIGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHVwZGF0ZXIgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IHByb3ZpZGVkIHVwZGF0ZXIgaXMgbm90IGEgZnVuY3Rpb24uYFxuICAgICAgKTtcblxuICAgIGlmICh0eXBlICE9PSAnbWl4ZWQnICYmIGRhdGEudW5kaXJlY3RlZCAhPT0gKHR5cGUgPT09ICd1bmRpcmVjdGVkJykpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VsZW1lbnR9XCIgJHt0eXBlfSBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgZGF0YS5hdHRyaWJ1dGVzID0gdXBkYXRlcihkYXRhLmF0dHJpYnV0ZXMpO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ2VkZ2VBdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgIGtleTogZGF0YS5rZXksXG4gICAgICB0eXBlOiAndXBkYXRlJyxcbiAgICAgIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlc1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG59XG5cbi8qKlxuICogTGlzdCBvZiBtZXRob2RzIHRvIGF0dGFjaC5cbiAqL1xuY29uc3QgRURHRV9BVFRSSUJVVEVTX01FVEhPRFMgPSBbXG4gIHtcbiAgICBuYW1lOiBlbGVtZW50ID0+IGBnZXQke2VsZW1lbnR9QXR0cmlidXRlYCxcbiAgICBhdHRhY2hlcjogYXR0YWNoRWRnZUF0dHJpYnV0ZUdldHRlclxuICB9LFxuICB7XG4gICAgbmFtZTogZWxlbWVudCA9PiBgZ2V0JHtlbGVtZW50fUF0dHJpYnV0ZXNgLFxuICAgIGF0dGFjaGVyOiBhdHRhY2hFZGdlQXR0cmlidXRlc0dldHRlclxuICB9LFxuICB7XG4gICAgbmFtZTogZWxlbWVudCA9PiBgaGFzJHtlbGVtZW50fUF0dHJpYnV0ZWAsXG4gICAgYXR0YWNoZXI6IGF0dGFjaEVkZ2VBdHRyaWJ1dGVDaGVja2VyXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBlbGVtZW50ID0+IGBzZXQke2VsZW1lbnR9QXR0cmlidXRlYCxcbiAgICBhdHRhY2hlcjogYXR0YWNoRWRnZUF0dHJpYnV0ZVNldHRlclxuICB9LFxuICB7XG4gICAgbmFtZTogZWxlbWVudCA9PiBgdXBkYXRlJHtlbGVtZW50fUF0dHJpYnV0ZWAsXG4gICAgYXR0YWNoZXI6IGF0dGFjaEVkZ2VBdHRyaWJ1dGVVcGRhdGVyXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBlbGVtZW50ID0+IGByZW1vdmUke2VsZW1lbnR9QXR0cmlidXRlYCxcbiAgICBhdHRhY2hlcjogYXR0YWNoRWRnZUF0dHJpYnV0ZVJlbW92ZXJcbiAgfSxcbiAge1xuICAgIG5hbWU6IGVsZW1lbnQgPT4gYHJlcGxhY2Uke2VsZW1lbnR9QXR0cmlidXRlc2AsXG4gICAgYXR0YWNoZXI6IGF0dGFjaEVkZ2VBdHRyaWJ1dGVzUmVwbGFjZXJcbiAgfSxcbiAge1xuICAgIG5hbWU6IGVsZW1lbnQgPT4gYG1lcmdlJHtlbGVtZW50fUF0dHJpYnV0ZXNgLFxuICAgIGF0dGFjaGVyOiBhdHRhY2hFZGdlQXR0cmlidXRlc01lcmdlclxuICB9LFxuICB7XG4gICAgbmFtZTogZWxlbWVudCA9PiBgdXBkYXRlJHtlbGVtZW50fUF0dHJpYnV0ZXNgLFxuICAgIGF0dGFjaGVyOiBhdHRhY2hFZGdlQXR0cmlidXRlc1VwZGF0ZXJcbiAgfVxuXTtcblxuLyoqXG4gKiBBdHRhY2ggZXZlcnkgYXR0cmlidXRlcy1yZWxhdGVkIG1ldGhvZHMgdG8gYSBHcmFwaCBjbGFzcy5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBHcmFwaCAtIFRhcmdldCBjbGFzcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYXR0YWNoRWRnZUF0dHJpYnV0ZXNNZXRob2RzKEdyYXBoKSB7XG4gIEVER0VfQVRUUklCVVRFU19NRVRIT0RTLmZvckVhY2goZnVuY3Rpb24gKHtuYW1lLCBhdHRhY2hlcn0pIHtcbiAgICAvLyBGb3IgZWRnZXNcbiAgICBhdHRhY2hlcihHcmFwaCwgbmFtZSgnRWRnZScpLCAnbWl4ZWQnKTtcblxuICAgIC8vIEZvciBkaXJlY3RlZCBlZGdlc1xuICAgIGF0dGFjaGVyKEdyYXBoLCBuYW1lKCdEaXJlY3RlZEVkZ2UnKSwgJ2RpcmVjdGVkJyk7XG5cbiAgICAvLyBGb3IgdW5kaXJlY3RlZCBlZGdlc1xuICAgIGF0dGFjaGVyKEdyYXBoLCBuYW1lKCdVbmRpcmVjdGVkRWRnZScpLCAndW5kaXJlY3RlZCcpO1xuICB9KTtcbn1cbiIsICIvKipcbiAqIE9ibGl0ZXJhdG9yIENoYWluIEZ1bmN0aW9uXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBWYXJpYWRpYyBmdW5jdGlvbiBjb21iaW5pbmcgdGhlIGdpdmVuIGl0ZXJhYmxlcy5cbiAqL1xudmFyIEl0ZXJhdG9yID0gcmVxdWlyZSgnLi9pdGVyYXRvci5qcycpLFxuICBpdGVyID0gcmVxdWlyZSgnLi9pdGVyLmpzJyk7XG5cbi8qKlxuICogQ2hhaW4uXG4gKlxuICogQHBhcmFtICB7Li4uSXRlcmF0b3J9IGl0ZXJhYmxlcyAtIFRhcmdldCBpdGVyYWJsZXMuXG4gKiBAcmV0dXJuIHtJdGVyYXRvcn1cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjaGFpbigpIHtcbiAgdmFyIGl0ZXJhYmxlcyA9IGFyZ3VtZW50cyxcbiAgICBjdXJyZW50LFxuICAgIGkgPSAtMTtcblxuICByZXR1cm4gbmV3IEl0ZXJhdG9yKGZ1bmN0aW9uIGl0ZXJhdGUoKSB7XG4gICAgaWYgKCFjdXJyZW50KSB7XG4gICAgICBpKys7XG5cbiAgICAgIGlmIChpID49IGl0ZXJhYmxlcy5sZW5ndGgpIHJldHVybiB7ZG9uZTogdHJ1ZX07XG5cbiAgICAgIGN1cnJlbnQgPSBpdGVyKGl0ZXJhYmxlc1tpXSk7XG4gICAgfVxuXG4gICAgdmFyIHN0ZXAgPSBjdXJyZW50Lm5leHQoKTtcblxuICAgIGlmIChzdGVwLmRvbmUpIHtcbiAgICAgIGN1cnJlbnQgPSBudWxsO1xuICAgICAgcmV0dXJuIGl0ZXJhdGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RlcDtcbiAgfSk7XG59O1xuIiwgIi8qKlxuICogR3JhcGhvbG9neSBFZGdlIEl0ZXJhdGlvblxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBBdHRhY2hpbmcgc29tZSBtZXRob2RzIHRvIHRoZSBHcmFwaCBjbGFzcyB0byBiZSBhYmxlIHRvIGl0ZXJhdGUgb3ZlciBhXG4gKiBncmFwaCdzIGVkZ2VzLlxuICovXG5pbXBvcnQgSXRlcmF0b3IgZnJvbSAnb2JsaXRlcmF0b3IvaXRlcmF0b3InO1xuaW1wb3J0IGNoYWluIGZyb20gJ29ibGl0ZXJhdG9yL2NoYWluJztcbmltcG9ydCB0YWtlIGZyb20gJ29ibGl0ZXJhdG9yL3Rha2UnO1xuXG5pbXBvcnQge0ludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yLCBOb3RGb3VuZEdyYXBoRXJyb3J9IGZyb20gJy4uL2Vycm9ycyc7XG5cbi8qKlxuICogRGVmaW5pdGlvbnMuXG4gKi9cbmNvbnN0IEVER0VTX0lURVJBVElPTiA9IFtcbiAge1xuICAgIG5hbWU6ICdlZGdlcycsXG4gICAgdHlwZTogJ21peGVkJ1xuICB9LFxuICB7XG4gICAgbmFtZTogJ2luRWRnZXMnLFxuICAgIHR5cGU6ICdkaXJlY3RlZCcsXG4gICAgZGlyZWN0aW9uOiAnaW4nXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnb3V0RWRnZXMnLFxuICAgIHR5cGU6ICdkaXJlY3RlZCcsXG4gICAgZGlyZWN0aW9uOiAnb3V0J1xuICB9LFxuICB7XG4gICAgbmFtZTogJ2luYm91bmRFZGdlcycsXG4gICAgdHlwZTogJ21peGVkJyxcbiAgICBkaXJlY3Rpb246ICdpbidcbiAgfSxcbiAge1xuICAgIG5hbWU6ICdvdXRib3VuZEVkZ2VzJyxcbiAgICB0eXBlOiAnbWl4ZWQnLFxuICAgIGRpcmVjdGlvbjogJ291dCdcbiAgfSxcbiAge1xuICAgIG5hbWU6ICdkaXJlY3RlZEVkZ2VzJyxcbiAgICB0eXBlOiAnZGlyZWN0ZWQnXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAndW5kaXJlY3RlZEVkZ2VzJyxcbiAgICB0eXBlOiAndW5kaXJlY3RlZCdcbiAgfVxuXTtcblxuLyoqXG4gKiBGdW5jdGlvbiBjb2xsZWN0aW5nIGVkZ2VzIGZyb20gdGhlIGdpdmVuIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0gIHthcnJheX0gIGVkZ2VzICAtIEVkZ2VzIGFycmF5IHRvIHBvcHVsYXRlLlxuICogQHBhcmFtICB7b2JqZWN0fSBvYmplY3QgLSBUYXJnZXQgb2JqZWN0LlxuICogQHJldHVybiB7YXJyYXl9ICAgICAgICAgLSBUaGUgZm91bmQgZWRnZXMuXG4gKi9cbmZ1bmN0aW9uIGNvbGxlY3RTaW1wbGUoZWRnZXMsIG9iamVjdCkge1xuICBmb3IgKGNvbnN0IGsgaW4gb2JqZWN0KSBlZGdlcy5wdXNoKG9iamVjdFtrXS5rZXkpO1xufVxuXG5mdW5jdGlvbiBjb2xsZWN0TXVsdGkoZWRnZXMsIG9iamVjdCkge1xuICBmb3IgKGNvbnN0IGsgaW4gb2JqZWN0KVxuICAgIG9iamVjdFtrXS5mb3JFYWNoKGVkZ2VEYXRhID0+IGVkZ2VzLnB1c2goZWRnZURhdGEua2V5KSk7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgZWRnZXMgZnJvbSB0aGUgZ2l2ZW4gb2JqZWN0IHVzaW5nIGEgY2FsbGJhY2suXG4gKlxuICogQHBhcmFtIHtvYmplY3R9ICAgb2JqZWN0ICAgLSBUYXJnZXQgb2JqZWN0LlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBGdW5jdGlvbiB0byBjYWxsLlxuICovXG5mdW5jdGlvbiBmb3JFYWNoU2ltcGxlKG9iamVjdCwgY2FsbGJhY2ssIGF2b2lkKSB7XG4gIGZvciAoY29uc3QgayBpbiBvYmplY3QpIHtcbiAgICBpZiAoayA9PT0gYXZvaWQpIGNvbnRpbnVlO1xuXG4gICAgY29uc3QgZWRnZURhdGEgPSBvYmplY3Rba107XG5cbiAgICBjYWxsYmFjayhcbiAgICAgIGVkZ2VEYXRhLmtleSxcbiAgICAgIGVkZ2VEYXRhLmF0dHJpYnV0ZXMsXG4gICAgICBlZGdlRGF0YS5zb3VyY2Uua2V5LFxuICAgICAgZWRnZURhdGEudGFyZ2V0LmtleSxcbiAgICAgIGVkZ2VEYXRhLnNvdXJjZS5hdHRyaWJ1dGVzLFxuICAgICAgZWRnZURhdGEudGFyZ2V0LmF0dHJpYnV0ZXMsXG4gICAgICBlZGdlRGF0YS51bmRpcmVjdGVkXG4gICAgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmb3JFYWNoTXVsdGkob2JqZWN0LCBjYWxsYmFjaywgYXZvaWQpIHtcbiAgZm9yIChjb25zdCBrIGluIG9iamVjdCkge1xuICAgIGlmIChrID09PSBhdm9pZCkgY29udGludWU7XG5cbiAgICBvYmplY3Rba10uZm9yRWFjaChlZGdlRGF0YSA9PlxuICAgICAgY2FsbGJhY2soXG4gICAgICAgIGVkZ2VEYXRhLmtleSxcbiAgICAgICAgZWRnZURhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgZWRnZURhdGEuc291cmNlLmtleSxcbiAgICAgICAgZWRnZURhdGEudGFyZ2V0LmtleSxcbiAgICAgICAgZWRnZURhdGEuc291cmNlLmF0dHJpYnV0ZXMsXG4gICAgICAgIGVkZ2VEYXRhLnRhcmdldC5hdHRyaWJ1dGVzLFxuICAgICAgICBlZGdlRGF0YS51bmRpcmVjdGVkXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIGVkZ2VzIGZyb20gdGhlIGdpdmVuIG9iamVjdCB0byBtYXRjaCBvbmUgb2YgdGhlbS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gICBvYmplY3QgICAtIFRhcmdldCBvYmplY3QuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIEZ1bmN0aW9uIHRvIGNhbGwuXG4gKi9cbmZ1bmN0aW9uIGZpbmRTaW1wbGUob2JqZWN0LCBjYWxsYmFjaywgYXZvaWQpIHtcbiAgbGV0IHNob3VsZEJyZWFrID0gZmFsc2U7XG5cbiAgZm9yIChjb25zdCBrIGluIG9iamVjdCkge1xuICAgIGlmIChrID09PSBhdm9pZCkgY29udGludWU7XG5cbiAgICBjb25zdCBlZGdlRGF0YSA9IG9iamVjdFtrXTtcblxuICAgIHNob3VsZEJyZWFrID0gY2FsbGJhY2soXG4gICAgICBlZGdlRGF0YS5rZXksXG4gICAgICBlZGdlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgZWRnZURhdGEuc291cmNlLmtleSxcbiAgICAgIGVkZ2VEYXRhLnRhcmdldC5rZXksXG4gICAgICBlZGdlRGF0YS5zb3VyY2UuYXR0cmlidXRlcyxcbiAgICAgIGVkZ2VEYXRhLnRhcmdldC5hdHRyaWJ1dGVzLFxuICAgICAgZWRnZURhdGEudW5kaXJlY3RlZFxuICAgICk7XG5cbiAgICBpZiAoc2hvdWxkQnJlYWspIHJldHVybiBlZGdlRGF0YS5rZXk7XG4gIH1cblxuICByZXR1cm47XG59XG5cbmZ1bmN0aW9uIGZpbmRNdWx0aShvYmplY3QsIGNhbGxiYWNrLCBhdm9pZCkge1xuICBsZXQgaXRlcmF0b3IsIHN0ZXAsIGVkZ2VEYXRhLCBzb3VyY2UsIHRhcmdldDtcblxuICBsZXQgc2hvdWxkQnJlYWsgPSBmYWxzZTtcblxuICBmb3IgKGNvbnN0IGsgaW4gb2JqZWN0KSB7XG4gICAgaWYgKGsgPT09IGF2b2lkKSBjb250aW51ZTtcblxuICAgIGl0ZXJhdG9yID0gb2JqZWN0W2tdLnZhbHVlcygpO1xuXG4gICAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICAgIGVkZ2VEYXRhID0gc3RlcC52YWx1ZTtcbiAgICAgIHNvdXJjZSA9IGVkZ2VEYXRhLnNvdXJjZTtcbiAgICAgIHRhcmdldCA9IGVkZ2VEYXRhLnRhcmdldDtcblxuICAgICAgc2hvdWxkQnJlYWsgPSBjYWxsYmFjayhcbiAgICAgICAgZWRnZURhdGEua2V5LFxuICAgICAgICBlZGdlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICBzb3VyY2Uua2V5LFxuICAgICAgICB0YXJnZXQua2V5LFxuICAgICAgICBzb3VyY2UuYXR0cmlidXRlcyxcbiAgICAgICAgdGFyZ2V0LmF0dHJpYnV0ZXMsXG4gICAgICAgIGVkZ2VEYXRhLnVuZGlyZWN0ZWRcbiAgICAgICk7XG5cbiAgICAgIGlmIChzaG91bGRCcmVhaykgcmV0dXJuIGVkZ2VEYXRhLmtleTtcbiAgICB9XG4gIH1cblxuICByZXR1cm47XG59XG5cbi8qKlxuICogRnVuY3Rpb24gcmV0dXJuaW5nIGFuIGl0ZXJhdG9yIG92ZXIgZWRnZXMgZnJvbSB0aGUgZ2l2ZW4gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSAge29iamVjdH0gICBvYmplY3QgLSBUYXJnZXQgb2JqZWN0LlxuICogQHJldHVybiB7SXRlcmF0b3J9XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUl0ZXJhdG9yKG9iamVjdCwgYXZvaWQpIHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCksXG4gICAgbCA9IGtleXMubGVuZ3RoO1xuXG4gIGxldCBpbm5lciA9IG51bGwsXG4gICAgaSA9IDA7XG5cbiAgcmV0dXJuIG5ldyBJdGVyYXRvcihmdW5jdGlvbiBuZXh0KCkge1xuICAgIGxldCBlZGdlRGF0YTtcblxuICAgIGlmIChpbm5lcikge1xuICAgICAgY29uc3Qgc3RlcCA9IGlubmVyLm5leHQoKTtcblxuICAgICAgaWYgKHN0ZXAuZG9uZSkge1xuICAgICAgICBpbm5lciA9IG51bGw7XG4gICAgICAgIGkrKztcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgIH1cblxuICAgICAgZWRnZURhdGEgPSBzdGVwLnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaSA+PSBsKSByZXR1cm4ge2RvbmU6IHRydWV9O1xuXG4gICAgICBjb25zdCBrID0ga2V5c1tpXTtcblxuICAgICAgaWYgKGsgPT09IGF2b2lkKSB7XG4gICAgICAgIGkrKztcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgIH1cblxuICAgICAgZWRnZURhdGEgPSBvYmplY3Rba107XG5cbiAgICAgIGlmIChlZGdlRGF0YSBpbnN0YW5jZW9mIFNldCkge1xuICAgICAgICBpbm5lciA9IGVkZ2VEYXRhLnZhbHVlcygpO1xuICAgICAgICByZXR1cm4gbmV4dCgpO1xuICAgICAgfVxuXG4gICAgICBpKys7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRvbmU6IGZhbHNlLFxuICAgICAgdmFsdWU6IHtcbiAgICAgICAgZWRnZTogZWRnZURhdGEua2V5LFxuICAgICAgICBhdHRyaWJ1dGVzOiBlZGdlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICBzb3VyY2U6IGVkZ2VEYXRhLnNvdXJjZS5rZXksXG4gICAgICAgIHRhcmdldDogZWRnZURhdGEudGFyZ2V0LmtleSxcbiAgICAgICAgc291cmNlQXR0cmlidXRlczogZWRnZURhdGEuc291cmNlLmF0dHJpYnV0ZXMsXG4gICAgICAgIHRhcmdldEF0dHJpYnV0ZXM6IGVkZ2VEYXRhLnRhcmdldC5hdHRyaWJ1dGVzLFxuICAgICAgICB1bmRpcmVjdGVkOiBlZGdlRGF0YS51bmRpcmVjdGVkXG4gICAgICB9XG4gICAgfTtcbiAgfSk7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gY29sbGVjdGluZyBlZGdlcyBmcm9tIHRoZSBnaXZlbiBvYmplY3QgYXQgZ2l2ZW4ga2V5LlxuICpcbiAqIEBwYXJhbSAge2FycmF5fSAgZWRnZXMgIC0gRWRnZXMgYXJyYXkgdG8gcG9wdWxhdGUuXG4gKiBAcGFyYW0gIHtvYmplY3R9IG9iamVjdCAtIFRhcmdldCBvYmplY3QuXG4gKiBAcGFyYW0gIHttaXhlZH0gIGsgICAgICAtIE5laWdoYm9yIGtleS5cbiAqIEByZXR1cm4ge2FycmF5fSAgICAgICAgIC0gVGhlIGZvdW5kIGVkZ2VzLlxuICovXG5mdW5jdGlvbiBjb2xsZWN0Rm9yS2V5U2ltcGxlKGVkZ2VzLCBvYmplY3QsIGspIHtcbiAgY29uc3QgZWRnZURhdGEgPSBvYmplY3Rba107XG5cbiAgaWYgKCFlZGdlRGF0YSkgcmV0dXJuO1xuXG4gIGVkZ2VzLnB1c2goZWRnZURhdGEua2V5KTtcbn1cblxuZnVuY3Rpb24gY29sbGVjdEZvcktleU11bHRpKGVkZ2VzLCBvYmplY3QsIGspIHtcbiAgY29uc3QgZWRnZXNEYXRhID0gb2JqZWN0W2tdO1xuXG4gIGlmICghZWRnZXNEYXRhKSByZXR1cm47XG5cbiAgZWRnZXNEYXRhLmZvckVhY2goZWRnZURhdGEgPT4gZWRnZXMucHVzaChlZGdlRGF0YS5rZXkpKTtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBpdGVyYXRpbmcgb3ZlciB0aGUgZWdkZXMgZnJvbSB0aGUgb2JqZWN0IGF0IGdpdmVuIGtleSB1c2luZ1xuICogYSBjYWxsYmFjay5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gICBvYmplY3QgICAtIFRhcmdldCBvYmplY3QuXG4gKiBAcGFyYW0ge21peGVkfSAgICBrICAgICAgICAtIE5laWdoYm9yIGtleS5cbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICovXG5mdW5jdGlvbiBmb3JFYWNoRm9yS2V5U2ltcGxlKG9iamVjdCwgaywgY2FsbGJhY2spIHtcbiAgY29uc3QgZWRnZURhdGEgPSBvYmplY3Rba107XG5cbiAgaWYgKCFlZGdlRGF0YSkgcmV0dXJuO1xuXG4gIGNvbnN0IHNvdXJjZURhdGEgPSBlZGdlRGF0YS5zb3VyY2U7XG4gIGNvbnN0IHRhcmdldERhdGEgPSBlZGdlRGF0YS50YXJnZXQ7XG5cbiAgY2FsbGJhY2soXG4gICAgZWRnZURhdGEua2V5LFxuICAgIGVkZ2VEYXRhLmF0dHJpYnV0ZXMsXG4gICAgc291cmNlRGF0YS5rZXksXG4gICAgdGFyZ2V0RGF0YS5rZXksXG4gICAgc291cmNlRGF0YS5hdHRyaWJ1dGVzLFxuICAgIHRhcmdldERhdGEuYXR0cmlidXRlcyxcbiAgICBlZGdlRGF0YS51bmRpcmVjdGVkXG4gICk7XG59XG5cbmZ1bmN0aW9uIGZvckVhY2hGb3JLZXlNdWx0aShvYmplY3QsIGssIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGVkZ2VzRGF0YSA9IG9iamVjdFtrXTtcblxuICBpZiAoIWVkZ2VzRGF0YSkgcmV0dXJuO1xuXG4gIGVkZ2VzRGF0YS5mb3JFYWNoKGVkZ2VEYXRhID0+XG4gICAgY2FsbGJhY2soXG4gICAgICBlZGdlRGF0YS5rZXksXG4gICAgICBlZGdlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgZWRnZURhdGEuc291cmNlLmtleSxcbiAgICAgIGVkZ2VEYXRhLnRhcmdldC5rZXksXG4gICAgICBlZGdlRGF0YS5zb3VyY2UuYXR0cmlidXRlcyxcbiAgICAgIGVkZ2VEYXRhLnRhcmdldC5hdHRyaWJ1dGVzLFxuICAgICAgZWRnZURhdGEudW5kaXJlY3RlZFxuICAgIClcbiAgKTtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBpdGVyYXRpbmcgb3ZlciB0aGUgZWdkZXMgZnJvbSB0aGUgb2JqZWN0IGF0IGdpdmVuIGtleSB0byBtYXRjaFxuICogb25lIG9mIHRoZW0uXG4gKlxuICogQHBhcmFtIHtvYmplY3R9ICAgb2JqZWN0ICAgLSBUYXJnZXQgb2JqZWN0LlxuICogQHBhcmFtIHttaXhlZH0gICAgayAgICAgICAgLSBOZWlnaGJvciBrZXkuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAqL1xuZnVuY3Rpb24gZmluZEZvcktleVNpbXBsZShvYmplY3QsIGssIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGVkZ2VEYXRhID0gb2JqZWN0W2tdO1xuXG4gIGlmICghZWRnZURhdGEpIHJldHVybjtcblxuICBjb25zdCBzb3VyY2VEYXRhID0gZWRnZURhdGEuc291cmNlO1xuICBjb25zdCB0YXJnZXREYXRhID0gZWRnZURhdGEudGFyZ2V0O1xuXG4gIGlmIChcbiAgICBjYWxsYmFjayhcbiAgICAgIGVkZ2VEYXRhLmtleSxcbiAgICAgIGVkZ2VEYXRhLmF0dHJpYnV0ZXMsXG4gICAgICBzb3VyY2VEYXRhLmtleSxcbiAgICAgIHRhcmdldERhdGEua2V5LFxuICAgICAgc291cmNlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgdGFyZ2V0RGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgZWRnZURhdGEudW5kaXJlY3RlZFxuICAgIClcbiAgKVxuICAgIHJldHVybiBlZGdlRGF0YS5rZXk7XG59XG5cbmZ1bmN0aW9uIGZpbmRGb3JLZXlNdWx0aShvYmplY3QsIGssIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGVkZ2VzRGF0YSA9IG9iamVjdFtrXTtcblxuICBpZiAoIWVkZ2VzRGF0YSkgcmV0dXJuO1xuXG4gIGxldCBzaG91bGRCcmVhayA9IGZhbHNlO1xuXG4gIGNvbnN0IGl0ZXJhdG9yID0gZWRnZXNEYXRhLnZhbHVlcygpO1xuICBsZXQgc3RlcCwgZWRnZURhdGE7XG5cbiAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICBlZGdlRGF0YSA9IHN0ZXAudmFsdWU7XG5cbiAgICBzaG91bGRCcmVhayA9IGNhbGxiYWNrKFxuICAgICAgZWRnZURhdGEua2V5LFxuICAgICAgZWRnZURhdGEuYXR0cmlidXRlcyxcbiAgICAgIGVkZ2VEYXRhLnNvdXJjZS5rZXksXG4gICAgICBlZGdlRGF0YS50YXJnZXQua2V5LFxuICAgICAgZWRnZURhdGEuc291cmNlLmF0dHJpYnV0ZXMsXG4gICAgICBlZGdlRGF0YS50YXJnZXQuYXR0cmlidXRlcyxcbiAgICAgIGVkZ2VEYXRhLnVuZGlyZWN0ZWRcbiAgICApO1xuXG4gICAgaWYgKHNob3VsZEJyZWFrKSByZXR1cm4gZWRnZURhdGEua2V5O1xuICB9XG5cbiAgcmV0dXJuO1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIHJldHVybmluZyBhbiBpdGVyYXRvciBvdmVyIHRoZSBlZ2RlcyBmcm9tIHRoZSBvYmplY3QgYXQgZ2l2ZW4ga2V5LlxuICpcbiAqIEBwYXJhbSAge29iamVjdH0gICBvYmplY3QgICAtIFRhcmdldCBvYmplY3QuXG4gKiBAcGFyYW0gIHttaXhlZH0gICAgayAgICAgICAgLSBOZWlnaGJvciBrZXkuXG4gKiBAcmV0dXJuIHtJdGVyYXRvcn1cbiAqL1xuZnVuY3Rpb24gY3JlYXRlSXRlcmF0b3JGb3JLZXkob2JqZWN0LCBrKSB7XG4gIGNvbnN0IHYgPSBvYmplY3Rba107XG5cbiAgaWYgKHYgaW5zdGFuY2VvZiBTZXQpIHtcbiAgICBjb25zdCBpdGVyYXRvciA9IHYudmFsdWVzKCk7XG5cbiAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHN0ZXAgPSBpdGVyYXRvci5uZXh0KCk7XG5cbiAgICAgIGlmIChzdGVwLmRvbmUpIHJldHVybiBzdGVwO1xuXG4gICAgICBjb25zdCBlZGdlRGF0YSA9IHN0ZXAudmFsdWU7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRvbmU6IGZhbHNlLFxuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIGVkZ2U6IGVkZ2VEYXRhLmtleSxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiBlZGdlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgIHNvdXJjZTogZWRnZURhdGEuc291cmNlLmtleSxcbiAgICAgICAgICB0YXJnZXQ6IGVkZ2VEYXRhLnRhcmdldC5rZXksXG4gICAgICAgICAgc291cmNlQXR0cmlidXRlczogZWRnZURhdGEuc291cmNlLmF0dHJpYnV0ZXMsXG4gICAgICAgICAgdGFyZ2V0QXR0cmlidXRlczogZWRnZURhdGEudGFyZ2V0LmF0dHJpYnV0ZXMsXG4gICAgICAgICAgdW5kaXJlY3RlZDogZWRnZURhdGEudW5kaXJlY3RlZFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIEl0ZXJhdG9yLm9mKFtcbiAgICB2LmtleSxcbiAgICB2LmF0dHJpYnV0ZXMsXG4gICAgdi5zb3VyY2Uua2V5LFxuICAgIHYudGFyZ2V0LmtleSxcbiAgICB2LnNvdXJjZS5hdHRyaWJ1dGVzLFxuICAgIHYudGFyZ2V0LmF0dHJpYnV0ZXNcbiAgXSk7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gY3JlYXRpbmcgYW4gYXJyYXkgb2YgZWRnZXMgZm9yIHRoZSBnaXZlbiB0eXBlLlxuICpcbiAqIEBwYXJhbSAge0dyYXBofSAgIGdyYXBoIC0gVGFyZ2V0IEdyYXBoIGluc3RhbmNlLlxuICogQHBhcmFtICB7c3RyaW5nfSAgdHlwZSAgLSBUeXBlIG9mIGVkZ2VzIHRvIHJldHJpZXZlLlxuICogQHJldHVybiB7YXJyYXl9ICAgICAgICAgLSBBcnJheSBvZiBlZGdlcy5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlRWRnZUFycmF5KGdyYXBoLCB0eXBlKSB7XG4gIGlmIChncmFwaC5zaXplID09PSAwKSByZXR1cm4gW107XG5cbiAgaWYgKHR5cGUgPT09ICdtaXhlZCcgfHwgdHlwZSA9PT0gZ3JhcGgudHlwZSkge1xuICAgIGlmICh0eXBlb2YgQXJyYXkuZnJvbSA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgIHJldHVybiBBcnJheS5mcm9tKGdyYXBoLl9lZGdlcy5rZXlzKCkpO1xuXG4gICAgcmV0dXJuIHRha2UoZ3JhcGguX2VkZ2VzLmtleXMoKSwgZ3JhcGguX2VkZ2VzLnNpemUpO1xuICB9XG5cbiAgY29uc3Qgc2l6ZSA9XG4gICAgdHlwZSA9PT0gJ3VuZGlyZWN0ZWQnID8gZ3JhcGgudW5kaXJlY3RlZFNpemUgOiBncmFwaC5kaXJlY3RlZFNpemU7XG5cbiAgY29uc3QgbGlzdCA9IG5ldyBBcnJheShzaXplKSxcbiAgICBtYXNrID0gdHlwZSA9PT0gJ3VuZGlyZWN0ZWQnO1xuXG4gIGNvbnN0IGl0ZXJhdG9yID0gZ3JhcGguX2VkZ2VzLnZhbHVlcygpO1xuXG4gIGxldCBpID0gMDtcbiAgbGV0IHN0ZXAsIGRhdGE7XG5cbiAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICBkYXRhID0gc3RlcC52YWx1ZTtcblxuICAgIGlmIChkYXRhLnVuZGlyZWN0ZWQgPT09IG1hc2spIGxpc3RbaSsrXSA9IGRhdGEua2V5O1xuICB9XG5cbiAgcmV0dXJuIGxpc3Q7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgYSBncmFwaCdzIGVkZ2VzIHVzaW5nIGEgY2FsbGJhY2suXG4gKlxuICogQHBhcmFtICB7R3JhcGh9ICAgIGdyYXBoICAgIC0gVGFyZ2V0IEdyYXBoIGluc3RhbmNlLlxuICogQHBhcmFtICB7c3RyaW5nfSAgIHR5cGUgICAgIC0gVHlwZSBvZiBlZGdlcyB0byByZXRyaWV2ZS5cbiAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAtIEZ1bmN0aW9uIHRvIGNhbGwuXG4gKi9cbmZ1bmN0aW9uIGZvckVhY2hFZGdlKGdyYXBoLCB0eXBlLCBjYWxsYmFjaykge1xuICBpZiAoZ3JhcGguc2l6ZSA9PT0gMCkgcmV0dXJuO1xuXG4gIGNvbnN0IHNob3VsZEZpbHRlciA9IHR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gZ3JhcGgudHlwZTtcbiAgY29uc3QgbWFzayA9IHR5cGUgPT09ICd1bmRpcmVjdGVkJztcblxuICBsZXQgc3RlcCwgZGF0YTtcbiAgY29uc3QgaXRlcmF0b3IgPSBncmFwaC5fZWRnZXMudmFsdWVzKCk7XG5cbiAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICBkYXRhID0gc3RlcC52YWx1ZTtcblxuICAgIGlmIChzaG91bGRGaWx0ZXIgJiYgZGF0YS51bmRpcmVjdGVkICE9PSBtYXNrKSBjb250aW51ZTtcblxuICAgIGNvbnN0IHtrZXksIGF0dHJpYnV0ZXMsIHNvdXJjZSwgdGFyZ2V0fSA9IGRhdGE7XG5cbiAgICBjYWxsYmFjayhcbiAgICAgIGtleSxcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICBzb3VyY2Uua2V5LFxuICAgICAgdGFyZ2V0LmtleSxcbiAgICAgIHNvdXJjZS5hdHRyaWJ1dGVzLFxuICAgICAgdGFyZ2V0LmF0dHJpYnV0ZXMsXG4gICAgICBkYXRhLnVuZGlyZWN0ZWRcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgYSBncmFwaCdzIGVkZ2VzIHVzaW5nIGEgY2FsbGJhY2sgdG8gbWF0Y2ggb25lIG9mXG4gKiB0aGVtLlxuICpcbiAqIEBwYXJhbSAge0dyYXBofSAgICBncmFwaCAgICAtIFRhcmdldCBHcmFwaCBpbnN0YW5jZS5cbiAqIEBwYXJhbSAge3N0cmluZ30gICB0eXBlICAgICAtIFR5cGUgb2YgZWRnZXMgdG8gcmV0cmlldmUuXG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBGdW5jdGlvbiB0byBjYWxsLlxuICovXG5mdW5jdGlvbiBmaW5kRWRnZShncmFwaCwgdHlwZSwgY2FsbGJhY2spIHtcbiAgaWYgKGdyYXBoLnNpemUgPT09IDApIHJldHVybjtcblxuICBjb25zdCBzaG91bGRGaWx0ZXIgPSB0eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09IGdyYXBoLnR5cGU7XG4gIGNvbnN0IG1hc2sgPSB0eXBlID09PSAndW5kaXJlY3RlZCc7XG5cbiAgbGV0IHN0ZXAsIGRhdGE7XG4gIGxldCBzaG91bGRCcmVhayA9IGZhbHNlO1xuICBjb25zdCBpdGVyYXRvciA9IGdyYXBoLl9lZGdlcy52YWx1ZXMoKTtcblxuICB3aGlsZSAoKChzdGVwID0gaXRlcmF0b3IubmV4dCgpKSwgc3RlcC5kb25lICE9PSB0cnVlKSkge1xuICAgIGRhdGEgPSBzdGVwLnZhbHVlO1xuXG4gICAgaWYgKHNob3VsZEZpbHRlciAmJiBkYXRhLnVuZGlyZWN0ZWQgIT09IG1hc2spIGNvbnRpbnVlO1xuXG4gICAgY29uc3Qge2tleSwgYXR0cmlidXRlcywgc291cmNlLCB0YXJnZXR9ID0gZGF0YTtcblxuICAgIHNob3VsZEJyZWFrID0gY2FsbGJhY2soXG4gICAgICBrZXksXG4gICAgICBhdHRyaWJ1dGVzLFxuICAgICAgc291cmNlLmtleSxcbiAgICAgIHRhcmdldC5rZXksXG4gICAgICBzb3VyY2UuYXR0cmlidXRlcyxcbiAgICAgIHRhcmdldC5hdHRyaWJ1dGVzLFxuICAgICAgZGF0YS51bmRpcmVjdGVkXG4gICAgKTtcblxuICAgIGlmIChzaG91bGRCcmVhaykgcmV0dXJuIGtleTtcbiAgfVxuXG4gIHJldHVybjtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBjcmVhdGluZyBhbiBpdGVyYXRvciBvZiBlZGdlcyBmb3IgdGhlIGdpdmVuIHR5cGUuXG4gKlxuICogQHBhcmFtICB7R3JhcGh9ICAgIGdyYXBoIC0gVGFyZ2V0IEdyYXBoIGluc3RhbmNlLlxuICogQHBhcmFtICB7c3RyaW5nfSAgIHR5cGUgIC0gVHlwZSBvZiBlZGdlcyB0byByZXRyaWV2ZS5cbiAqIEByZXR1cm4ge0l0ZXJhdG9yfVxuICovXG5mdW5jdGlvbiBjcmVhdGVFZGdlSXRlcmF0b3IoZ3JhcGgsIHR5cGUpIHtcbiAgaWYgKGdyYXBoLnNpemUgPT09IDApIHJldHVybiBJdGVyYXRvci5lbXB0eSgpO1xuXG4gIGNvbnN0IHNob3VsZEZpbHRlciA9IHR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gZ3JhcGgudHlwZTtcbiAgY29uc3QgbWFzayA9IHR5cGUgPT09ICd1bmRpcmVjdGVkJztcblxuICBjb25zdCBpdGVyYXRvciA9IGdyYXBoLl9lZGdlcy52YWx1ZXMoKTtcblxuICByZXR1cm4gbmV3IEl0ZXJhdG9yKGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgbGV0IHN0ZXAsIGRhdGE7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc3RhbnQtY29uZGl0aW9uXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIHN0ZXAgPSBpdGVyYXRvci5uZXh0KCk7XG5cbiAgICAgIGlmIChzdGVwLmRvbmUpIHJldHVybiBzdGVwO1xuXG4gICAgICBkYXRhID0gc3RlcC52YWx1ZTtcblxuICAgICAgaWYgKHNob3VsZEZpbHRlciAmJiBkYXRhLnVuZGlyZWN0ZWQgIT09IG1hc2spIGNvbnRpbnVlO1xuXG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHtcbiAgICAgIGVkZ2U6IGRhdGEua2V5LFxuICAgICAgYXR0cmlidXRlczogZGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgc291cmNlOiBkYXRhLnNvdXJjZS5rZXksXG4gICAgICB0YXJnZXQ6IGRhdGEudGFyZ2V0LmtleSxcbiAgICAgIHNvdXJjZUF0dHJpYnV0ZXM6IGRhdGEuc291cmNlLmF0dHJpYnV0ZXMsXG4gICAgICB0YXJnZXRBdHRyaWJ1dGVzOiBkYXRhLnRhcmdldC5hdHRyaWJ1dGVzLFxuICAgICAgdW5kaXJlY3RlZDogZGF0YS51bmRpcmVjdGVkXG4gICAgfTtcblxuICAgIHJldHVybiB7dmFsdWUsIGRvbmU6IGZhbHNlfTtcbiAgfSk7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gY3JlYXRpbmcgYW4gYXJyYXkgb2YgZWRnZXMgZm9yIHRoZSBnaXZlbiB0eXBlICYgdGhlIGdpdmVuIG5vZGUuXG4gKlxuICogQHBhcmFtICB7Ym9vbGVhbn0gbXVsdGkgICAgIC0gV2hldGhlciB0aGUgZ3JhcGggaXMgbXVsdGkgb3Igbm90LlxuICogQHBhcmFtICB7c3RyaW5nfSAgdHlwZSAgICAgIC0gVHlwZSBvZiBlZGdlcyB0byByZXRyaWV2ZS5cbiAqIEBwYXJhbSAge3N0cmluZ30gIGRpcmVjdGlvbiAtIEluIG9yIG91dD9cbiAqIEBwYXJhbSAge2FueX0gICAgIG5vZGVEYXRhICAtIFRhcmdldCBub2RlJ3MgZGF0YS5cbiAqIEByZXR1cm4ge2FycmF5fSAgICAgICAgICAgICAtIEFycmF5IG9mIGVkZ2VzLlxuICovXG5mdW5jdGlvbiBjcmVhdGVFZGdlQXJyYXlGb3JOb2RlKG11bHRpLCB0eXBlLCBkaXJlY3Rpb24sIG5vZGVEYXRhKSB7XG4gIGNvbnN0IGVkZ2VzID0gW107XG5cbiAgY29uc3QgZm4gPSBtdWx0aSA/IGNvbGxlY3RNdWx0aSA6IGNvbGxlY3RTaW1wbGU7XG5cbiAgaWYgKHR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgIGlmIChkaXJlY3Rpb24gIT09ICdvdXQnKSBmbihlZGdlcywgbm9kZURhdGEuaW4pO1xuICAgIGlmIChkaXJlY3Rpb24gIT09ICdpbicpIGZuKGVkZ2VzLCBub2RlRGF0YS5vdXQpO1xuXG4gICAgLy8gSGFuZGxpbmcgc2VsZiBsb29wIGVkZ2UgY2FzZVxuICAgIGlmICghZGlyZWN0aW9uICYmIG5vZGVEYXRhLmRpcmVjdGVkU2VsZkxvb3BzID4gMClcbiAgICAgIGVkZ2VzLnNwbGljZShlZGdlcy5sYXN0SW5kZXhPZihub2RlRGF0YS5rZXkpLCAxKTtcbiAgfVxuXG4gIGlmICh0eXBlICE9PSAnZGlyZWN0ZWQnKSB7XG4gICAgZm4oZWRnZXMsIG5vZGVEYXRhLnVuZGlyZWN0ZWQpO1xuICB9XG5cbiAgcmV0dXJuIGVkZ2VzO1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIGEgbm9kZSdzIGVkZ2VzIHVzaW5nIGEgY2FsbGJhY2suXG4gKlxuICogQHBhcmFtICB7Ym9vbGVhbn0gIG11bHRpICAgICAtIFdoZXRoZXIgdGhlIGdyYXBoIGlzIG11bHRpIG9yIG5vdC5cbiAqIEBwYXJhbSAge3N0cmluZ30gICB0eXBlICAgICAgLSBUeXBlIG9mIGVkZ2VzIHRvIHJldHJpZXZlLlxuICogQHBhcmFtICB7c3RyaW5nfSAgIGRpcmVjdGlvbiAtIEluIG9yIG91dD9cbiAqIEBwYXJhbSAge2FueX0gICAgICBub2RlRGF0YSAgLSBUYXJnZXQgbm9kZSdzIGRhdGEuXG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgIC0gRnVuY3Rpb24gdG8gY2FsbC5cbiAqL1xuZnVuY3Rpb24gZm9yRWFjaEVkZ2VGb3JOb2RlKG11bHRpLCB0eXBlLCBkaXJlY3Rpb24sIG5vZGVEYXRhLCBjYWxsYmFjaykge1xuICBjb25zdCBmbiA9IG11bHRpID8gZm9yRWFjaE11bHRpIDogZm9yRWFjaFNpbXBsZTtcblxuICBpZiAodHlwZSAhPT0gJ3VuZGlyZWN0ZWQnKSB7XG4gICAgaWYgKGRpcmVjdGlvbiAhPT0gJ291dCcpIGZuKG5vZGVEYXRhLmluLCBjYWxsYmFjayk7XG4gICAgaWYgKGRpcmVjdGlvbiAhPT0gJ2luJylcbiAgICAgIGZuKG5vZGVEYXRhLm91dCwgY2FsbGJhY2ssICFkaXJlY3Rpb24gPyBub2RlRGF0YS5rZXkgOiBudWxsKTtcbiAgfVxuXG4gIGlmICh0eXBlICE9PSAnZGlyZWN0ZWQnKSB7XG4gICAgZm4obm9kZURhdGEudW5kaXJlY3RlZCwgY2FsbGJhY2spO1xuICB9XG59XG5cbi8qKlxuICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgYSBub2RlJ3MgZWRnZXMgdXNpbmcgYSBjYWxsYmFjayB0byBtYXRjaCBvbmUgb2YgdGhlbS5cbiAqXG4gKiBAcGFyYW0gIHtib29sZWFufSAgbXVsdGkgICAgIC0gV2hldGhlciB0aGUgZ3JhcGggaXMgbXVsdGkgb3Igbm90LlxuICogQHBhcmFtICB7c3RyaW5nfSAgIHR5cGUgICAgICAtIFR5cGUgb2YgZWRnZXMgdG8gcmV0cmlldmUuXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgZGlyZWN0aW9uIC0gSW4gb3Igb3V0P1xuICogQHBhcmFtICB7YW55fSAgICAgIG5vZGVEYXRhICAtIFRhcmdldCBub2RlJ3MgZGF0YS5cbiAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAgLSBGdW5jdGlvbiB0byBjYWxsLlxuICovXG5mdW5jdGlvbiBmaW5kRWRnZUZvck5vZGUobXVsdGksIHR5cGUsIGRpcmVjdGlvbiwgbm9kZURhdGEsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGZuID0gbXVsdGkgPyBmaW5kTXVsdGkgOiBmaW5kU2ltcGxlO1xuXG4gIGxldCBmb3VuZDtcblxuICBpZiAodHlwZSAhPT0gJ3VuZGlyZWN0ZWQnKSB7XG4gICAgaWYgKGRpcmVjdGlvbiAhPT0gJ291dCcpIHtcbiAgICAgIGZvdW5kID0gZm4obm9kZURhdGEuaW4sIGNhbGxiYWNrKTtcblxuICAgICAgaWYgKGZvdW5kKSByZXR1cm4gZm91bmQ7XG4gICAgfVxuICAgIGlmIChkaXJlY3Rpb24gIT09ICdpbicpIHtcbiAgICAgIGZvdW5kID0gZm4obm9kZURhdGEub3V0LCBjYWxsYmFjaywgIWRpcmVjdGlvbiA/IG5vZGVEYXRhLmtleSA6IG51bGwpO1xuXG4gICAgICBpZiAoZm91bmQpIHJldHVybiBmb3VuZDtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZSAhPT0gJ2RpcmVjdGVkJykge1xuICAgIGZvdW5kID0gZm4obm9kZURhdGEudW5kaXJlY3RlZCwgY2FsbGJhY2spO1xuXG4gICAgaWYgKGZvdW5kKSByZXR1cm4gZm91bmQ7XG4gIH1cblxuICByZXR1cm47XG59XG5cbi8qKlxuICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgYSBub2RlJ3MgZWRnZXMgdXNpbmcgYSBjYWxsYmFjay5cbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgdHlwZSAgICAgIC0gVHlwZSBvZiBlZGdlcyB0byByZXRyaWV2ZS5cbiAqIEBwYXJhbSAge3N0cmluZ30gICBkaXJlY3Rpb24gLSBJbiBvciBvdXQ/XG4gKiBAcGFyYW0gIHthbnl9ICAgICAgbm9kZURhdGEgIC0gVGFyZ2V0IG5vZGUncyBkYXRhLlxuICogQHJldHVybiB7SXRlcmF0b3J9XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUVkZ2VJdGVyYXRvckZvck5vZGUodHlwZSwgZGlyZWN0aW9uLCBub2RlRGF0YSkge1xuICBsZXQgaXRlcmF0b3IgPSBJdGVyYXRvci5lbXB0eSgpO1xuXG4gIGlmICh0eXBlICE9PSAndW5kaXJlY3RlZCcpIHtcbiAgICBpZiAoZGlyZWN0aW9uICE9PSAnb3V0JyAmJiB0eXBlb2Ygbm9kZURhdGEuaW4gIT09ICd1bmRlZmluZWQnKVxuICAgICAgaXRlcmF0b3IgPSBjaGFpbihpdGVyYXRvciwgY3JlYXRlSXRlcmF0b3Iobm9kZURhdGEuaW4pKTtcbiAgICBpZiAoZGlyZWN0aW9uICE9PSAnaW4nICYmIHR5cGVvZiBub2RlRGF0YS5vdXQgIT09ICd1bmRlZmluZWQnKVxuICAgICAgaXRlcmF0b3IgPSBjaGFpbihcbiAgICAgICAgaXRlcmF0b3IsXG4gICAgICAgIGNyZWF0ZUl0ZXJhdG9yKG5vZGVEYXRhLm91dCwgIWRpcmVjdGlvbiA/IG5vZGVEYXRhLmtleSA6IG51bGwpXG4gICAgICApO1xuICB9XG5cbiAgaWYgKHR5cGUgIT09ICdkaXJlY3RlZCcgJiYgdHlwZW9mIG5vZGVEYXRhLnVuZGlyZWN0ZWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgaXRlcmF0b3IgPSBjaGFpbihpdGVyYXRvciwgY3JlYXRlSXRlcmF0b3Iobm9kZURhdGEudW5kaXJlY3RlZCkpO1xuICB9XG5cbiAgcmV0dXJuIGl0ZXJhdG9yO1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGNyZWF0aW5nIGFuIGFycmF5IG9mIGVkZ2VzIGZvciB0aGUgZ2l2ZW4gcGF0aC5cbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgdHlwZSAgICAgICAtIFR5cGUgb2YgZWRnZXMgdG8gcmV0cmlldmUuXG4gKiBAcGFyYW0gIHtib29sZWFufSAgbXVsdGkgICAgICAtIFdoZXRoZXIgdGhlIGdyYXBoIGlzIG11bHRpLlxuICogQHBhcmFtICB7c3RyaW5nfSAgIGRpcmVjdGlvbiAgLSBJbiBvciBvdXQ/XG4gKiBAcGFyYW0gIHtOb2RlRGF0YX0gc291cmNlRGF0YSAtIFNvdXJjZSBub2RlJ3MgZGF0YS5cbiAqIEBwYXJhbSAge2FueX0gICAgICB0YXJnZXQgICAgIC0gVGFyZ2V0IG5vZGUuXG4gKiBAcmV0dXJuIHthcnJheX0gICAgICAgICAgICAgICAtIEFycmF5IG9mIGVkZ2VzLlxuICovXG5mdW5jdGlvbiBjcmVhdGVFZGdlQXJyYXlGb3JQYXRoKHR5cGUsIG11bHRpLCBkaXJlY3Rpb24sIHNvdXJjZURhdGEsIHRhcmdldCkge1xuICBjb25zdCBmbiA9IG11bHRpID8gY29sbGVjdEZvcktleU11bHRpIDogY29sbGVjdEZvcktleVNpbXBsZTtcblxuICBjb25zdCBlZGdlcyA9IFtdO1xuXG4gIGlmICh0eXBlICE9PSAndW5kaXJlY3RlZCcpIHtcbiAgICBpZiAodHlwZW9mIHNvdXJjZURhdGEuaW4gIT09ICd1bmRlZmluZWQnICYmIGRpcmVjdGlvbiAhPT0gJ291dCcpXG4gICAgICBmbihlZGdlcywgc291cmNlRGF0YS5pbiwgdGFyZ2V0KTtcblxuICAgIGlmICh0eXBlb2Ygc291cmNlRGF0YS5vdXQgIT09ICd1bmRlZmluZWQnICYmIGRpcmVjdGlvbiAhPT0gJ2luJylcbiAgICAgIGZuKGVkZ2VzLCBzb3VyY2VEYXRhLm91dCwgdGFyZ2V0KTtcblxuICAgIC8vIEhhbmRsaW5nIHNlbGYgbG9vcCBlZGdlIGNhc2VcbiAgICBpZiAoIWRpcmVjdGlvbiAmJiBzb3VyY2VEYXRhLmRpcmVjdGVkU2VsZkxvb3BzID4gMClcbiAgICAgIGVkZ2VzLnNwbGljZShlZGdlcy5sYXN0SW5kZXhPZihzb3VyY2VEYXRhLmtleSksIDEpO1xuICB9XG5cbiAgaWYgKHR5cGUgIT09ICdkaXJlY3RlZCcpIHtcbiAgICBpZiAodHlwZW9mIHNvdXJjZURhdGEudW5kaXJlY3RlZCAhPT0gJ3VuZGVmaW5lZCcpXG4gICAgICBmbihlZGdlcywgc291cmNlRGF0YS51bmRpcmVjdGVkLCB0YXJnZXQpO1xuICB9XG5cbiAgcmV0dXJuIGVkZ2VzO1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIGVkZ2VzIGZvciB0aGUgZ2l2ZW4gcGF0aCB1c2luZyBhIGNhbGxiYWNrLlxuICpcbiAqIEBwYXJhbSAge3N0cmluZ30gICB0eXBlICAgICAgIC0gVHlwZSBvZiBlZGdlcyB0byByZXRyaWV2ZS5cbiAqIEBwYXJhbSAge2Jvb2xlYW59ICBtdWx0aSAgICAgIC0gV2hldGhlciB0aGUgZ3JhcGggaXMgbXVsdGkuXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgZGlyZWN0aW9uICAtIEluIG9yIG91dD9cbiAqIEBwYXJhbSAge05vZGVEYXRhfSBzb3VyY2VEYXRhIC0gU291cmNlIG5vZGUncyBkYXRhLlxuICogQHBhcmFtICB7c3RyaW5nfSAgIHRhcmdldCAgICAgLSBUYXJnZXQgbm9kZS5cbiAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAgIC0gRnVuY3Rpb24gdG8gY2FsbC5cbiAqL1xuZnVuY3Rpb24gZm9yRWFjaEVkZ2VGb3JQYXRoKFxuICB0eXBlLFxuICBtdWx0aSxcbiAgZGlyZWN0aW9uLFxuICBzb3VyY2VEYXRhLFxuICB0YXJnZXQsXG4gIGNhbGxiYWNrXG4pIHtcbiAgY29uc3QgZm4gPSBtdWx0aSA/IGZvckVhY2hGb3JLZXlNdWx0aSA6IGZvckVhY2hGb3JLZXlTaW1wbGU7XG5cbiAgaWYgKHR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgIGlmICh0eXBlb2Ygc291cmNlRGF0YS5pbiAhPT0gJ3VuZGVmaW5lZCcgJiYgZGlyZWN0aW9uICE9PSAnb3V0JylcbiAgICAgIGZuKHNvdXJjZURhdGEuaW4sIHRhcmdldCwgY2FsbGJhY2spO1xuXG4gICAgaWYgKHNvdXJjZURhdGEua2V5ICE9PSB0YXJnZXQpXG4gICAgICBpZiAodHlwZW9mIHNvdXJjZURhdGEub3V0ICE9PSAndW5kZWZpbmVkJyAmJiBkaXJlY3Rpb24gIT09ICdpbicpXG4gICAgICAgIGZuKHNvdXJjZURhdGEub3V0LCB0YXJnZXQsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIGlmICh0eXBlICE9PSAnZGlyZWN0ZWQnKSB7XG4gICAgaWYgKHR5cGVvZiBzb3VyY2VEYXRhLnVuZGlyZWN0ZWQgIT09ICd1bmRlZmluZWQnKVxuICAgICAgZm4oc291cmNlRGF0YS51bmRpcmVjdGVkLCB0YXJnZXQsIGNhbGxiYWNrKTtcbiAgfVxufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIGVkZ2VzIGZvciB0aGUgZ2l2ZW4gcGF0aCB1c2luZyBhIGNhbGxiYWNrIHRvIG1hdGNoXG4gKiBvbmUgb2YgdGhlbS5cbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgdHlwZSAgICAgICAtIFR5cGUgb2YgZWRnZXMgdG8gcmV0cmlldmUuXG4gKiBAcGFyYW0gIHtib29sZWFufSAgbXVsdGkgICAgICAtIFdoZXRoZXIgdGhlIGdyYXBoIGlzIG11bHRpLlxuICogQHBhcmFtICB7c3RyaW5nfSAgIGRpcmVjdGlvbiAgLSBJbiBvciBvdXQ/XG4gKiBAcGFyYW0gIHtOb2RlRGF0YX0gc291cmNlRGF0YSAtIFNvdXJjZSBub2RlJ3MgZGF0YS5cbiAqIEBwYXJhbSAge3N0cmluZ30gICB0YXJnZXQgICAgIC0gVGFyZ2V0IG5vZGUuXG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgICAtIEZ1bmN0aW9uIHRvIGNhbGwuXG4gKi9cbmZ1bmN0aW9uIGZpbmRFZGdlRm9yUGF0aCh0eXBlLCBtdWx0aSwgZGlyZWN0aW9uLCBzb3VyY2VEYXRhLCB0YXJnZXQsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGZuID0gbXVsdGkgPyBmaW5kRm9yS2V5TXVsdGkgOiBmaW5kRm9yS2V5U2ltcGxlO1xuXG4gIGxldCBmb3VuZDtcblxuICBpZiAodHlwZSAhPT0gJ3VuZGlyZWN0ZWQnKSB7XG4gICAgaWYgKHR5cGVvZiBzb3VyY2VEYXRhLmluICE9PSAndW5kZWZpbmVkJyAmJiBkaXJlY3Rpb24gIT09ICdvdXQnKSB7XG4gICAgICBmb3VuZCA9IGZuKHNvdXJjZURhdGEuaW4sIHRhcmdldCwgY2FsbGJhY2spO1xuXG4gICAgICBpZiAoZm91bmQpIHJldHVybiBmb3VuZDtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlRGF0YS5rZXkgIT09IHRhcmdldClcbiAgICAgIGlmICh0eXBlb2Ygc291cmNlRGF0YS5vdXQgIT09ICd1bmRlZmluZWQnICYmIGRpcmVjdGlvbiAhPT0gJ2luJykge1xuICAgICAgICBmb3VuZCA9IGZuKFxuICAgICAgICAgIHNvdXJjZURhdGEub3V0LFxuICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICBjYWxsYmFjayxcbiAgICAgICAgICAhZGlyZWN0aW9uID8gc291cmNlRGF0YS5rZXkgOiBudWxsXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGZvdW5kKSByZXR1cm4gZm91bmQ7XG4gICAgICB9XG4gIH1cblxuICBpZiAodHlwZSAhPT0gJ2RpcmVjdGVkJykge1xuICAgIGlmICh0eXBlb2Ygc291cmNlRGF0YS51bmRpcmVjdGVkICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgZm91bmQgPSBmbihzb3VyY2VEYXRhLnVuZGlyZWN0ZWQsIHRhcmdldCwgY2FsbGJhY2spO1xuXG4gICAgICBpZiAoZm91bmQpIHJldHVybiBmb3VuZDtcbiAgICB9XG4gIH1cblxuICByZXR1cm47XG59XG5cbi8qKlxuICogRnVuY3Rpb24gcmV0dXJuaW5nIGFuIGl0ZXJhdG9yIG92ZXIgZWRnZXMgZm9yIHRoZSBnaXZlbiBwYXRoLlxuICpcbiAqIEBwYXJhbSAge3N0cmluZ30gICB0eXBlICAgICAgIC0gVHlwZSBvZiBlZGdlcyB0byByZXRyaWV2ZS5cbiAqIEBwYXJhbSAge3N0cmluZ30gICBkaXJlY3Rpb24gIC0gSW4gb3Igb3V0P1xuICogQHBhcmFtICB7Tm9kZURhdGF9IHNvdXJjZURhdGEgLSBTb3VyY2Ugbm9kZSdzIGRhdGEuXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgdGFyZ2V0ICAgICAtIFRhcmdldCBub2RlLlxuICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrICAgLSBGdW5jdGlvbiB0byBjYWxsLlxuICovXG5mdW5jdGlvbiBjcmVhdGVFZGdlSXRlcmF0b3JGb3JQYXRoKHR5cGUsIGRpcmVjdGlvbiwgc291cmNlRGF0YSwgdGFyZ2V0KSB7XG4gIGxldCBpdGVyYXRvciA9IEl0ZXJhdG9yLmVtcHR5KCk7XG5cbiAgaWYgKHR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiBzb3VyY2VEYXRhLmluICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgZGlyZWN0aW9uICE9PSAnb3V0JyAmJlxuICAgICAgdGFyZ2V0IGluIHNvdXJjZURhdGEuaW5cbiAgICApXG4gICAgICBpdGVyYXRvciA9IGNoYWluKGl0ZXJhdG9yLCBjcmVhdGVJdGVyYXRvckZvcktleShzb3VyY2VEYXRhLmluLCB0YXJnZXQpKTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBzb3VyY2VEYXRhLm91dCAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgIGRpcmVjdGlvbiAhPT0gJ2luJyAmJlxuICAgICAgdGFyZ2V0IGluIHNvdXJjZURhdGEub3V0XG4gICAgKVxuICAgICAgaXRlcmF0b3IgPSBjaGFpbihpdGVyYXRvciwgY3JlYXRlSXRlcmF0b3JGb3JLZXkoc291cmNlRGF0YS5vdXQsIHRhcmdldCkpO1xuICB9XG5cbiAgaWYgKHR5cGUgIT09ICdkaXJlY3RlZCcpIHtcbiAgICBpZiAoXG4gICAgICB0eXBlb2Ygc291cmNlRGF0YS51bmRpcmVjdGVkICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgdGFyZ2V0IGluIHNvdXJjZURhdGEudW5kaXJlY3RlZFxuICAgIClcbiAgICAgIGl0ZXJhdG9yID0gY2hhaW4oXG4gICAgICAgIGl0ZXJhdG9yLFxuICAgICAgICBjcmVhdGVJdGVyYXRvckZvcktleShzb3VyY2VEYXRhLnVuZGlyZWN0ZWQsIHRhcmdldClcbiAgICAgICk7XG4gIH1cblxuICByZXR1cm4gaXRlcmF0b3I7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gYXR0YWNoaW5nIGFuIGVkZ2UgYXJyYXkgY3JlYXRvciBtZXRob2QgdG8gdGhlIEdyYXBoIHByb3RvdHlwZS5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBDbGFzcyAgICAgICAtIFRhcmdldCBjbGFzcy5cbiAqIEBwYXJhbSB7b2JqZWN0fSAgIGRlc2NyaXB0aW9uIC0gTWV0aG9kIGRlc2NyaXB0aW9uLlxuICovXG5mdW5jdGlvbiBhdHRhY2hFZGdlQXJyYXlDcmVhdG9yKENsYXNzLCBkZXNjcmlwdGlvbikge1xuICBjb25zdCB7bmFtZSwgdHlwZSwgZGlyZWN0aW9ufSA9IGRlc2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiByZXR1cm5pbmcgYW4gYXJyYXkgb2YgY2VydGFpbiBlZGdlcy5cbiAgICpcbiAgICogQXJpdHkgMDogUmV0dXJuIGFsbCB0aGUgcmVsZXZhbnQgZWRnZXMuXG4gICAqXG4gICAqIEFyaXR5IDE6IFJldHVybiBhbGwgb2YgYSBub2RlJ3MgcmVsZXZhbnQgZWRnZXMuXG4gICAqIEBwYXJhbSAge2FueX0gICBub2RlICAgLSBUYXJnZXQgbm9kZS5cbiAgICpcbiAgICogQXJpdHkgMjogUmV0dXJuIHRoZSByZWxldmFudCBlZGdlcyBhY3Jvc3MgdGhlIGdpdmVuIHBhdGguXG4gICAqIEBwYXJhbSAge2FueX0gICBzb3VyY2UgLSBTb3VyY2Ugbm9kZS5cbiAgICogQHBhcmFtICB7YW55fSAgIHRhcmdldCAtIFRhcmdldCBub2RlLlxuICAgKlxuICAgKiBAcmV0dXJuIHthcnJheXxudW1iZXJ9IC0gVGhlIGVkZ2VzIG9yIHRoZSBudW1iZXIgb2YgZWRnZXMuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGFyZ3VtZW50cy5cbiAgICovXG4gIENsYXNzLnByb3RvdHlwZVtuYW1lXSA9IGZ1bmN0aW9uIChzb3VyY2UsIHRhcmdldCkge1xuICAgIC8vIEVhcmx5IHRlcm1pbmF0aW9uXG4gICAgaWYgKHR5cGUgIT09ICdtaXhlZCcgJiYgdGhpcy50eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09IHRoaXMudHlwZSlcbiAgICAgIHJldHVybiBbXTtcblxuICAgIGlmICghYXJndW1lbnRzLmxlbmd0aCkgcmV0dXJuIGNyZWF0ZUVkZ2VBcnJheSh0aGlzLCB0eXBlKTtcblxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICBzb3VyY2UgPSAnJyArIHNvdXJjZTtcblxuICAgICAgY29uc3Qgbm9kZURhdGEgPSB0aGlzLl9ub2Rlcy5nZXQoc291cmNlKTtcblxuICAgICAgaWYgKHR5cGVvZiBub2RlRGF0YSA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bmFtZX06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7c291cmNlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcblxuICAgICAgLy8gSXRlcmF0aW5nIG92ZXIgYSBub2RlJ3MgZWRnZXNcbiAgICAgIHJldHVybiBjcmVhdGVFZGdlQXJyYXlGb3JOb2RlKFxuICAgICAgICB0aGlzLm11bHRpLFxuICAgICAgICB0eXBlID09PSAnbWl4ZWQnID8gdGhpcy50eXBlIDogdHlwZSxcbiAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICBub2RlRGF0YVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgc291cmNlID0gJycgKyBzb3VyY2U7XG4gICAgICB0YXJnZXQgPSAnJyArIHRhcmdldDtcblxuICAgICAgY29uc3Qgc291cmNlRGF0YSA9IHRoaXMuX25vZGVzLmdldChzb3VyY2UpO1xuXG4gICAgICBpZiAoIXNvdXJjZURhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bmFtZX06ICBjb3VsZCBub3QgZmluZCB0aGUgXCIke3NvdXJjZX1cIiBzb3VyY2Ugbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgICApO1xuXG4gICAgICBpZiAoIXRoaXMuX25vZGVzLmhhcyh0YXJnZXQpKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke25hbWV9OiAgY291bGQgbm90IGZpbmQgdGhlIFwiJHt0YXJnZXR9XCIgdGFyZ2V0IG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcblxuICAgICAgLy8gSXRlcmF0aW5nIG92ZXIgdGhlIGVkZ2VzIGJldHdlZW4gc291cmNlICYgdGFyZ2V0XG4gICAgICByZXR1cm4gY3JlYXRlRWRnZUFycmF5Rm9yUGF0aChcbiAgICAgICAgdHlwZSxcbiAgICAgICAgdGhpcy5tdWx0aSxcbiAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICBzb3VyY2VEYXRhLFxuICAgICAgICB0YXJnZXRcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLiR7bmFtZX06IHRvbyBtYW55IGFyZ3VtZW50cyAoZXhwZWN0aW5nIDAsIDEgb3IgMiBhbmQgZ290ICR7YXJndW1lbnRzLmxlbmd0aH0pLmBcbiAgICApO1xuICB9O1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGF0dGFjaGluZyBhIGVkZ2UgY2FsbGJhY2sgaXRlcmF0b3IgbWV0aG9kIHRvIHRoZSBHcmFwaCBwcm90b3R5cGUuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gQ2xhc3MgICAgICAgLSBUYXJnZXQgY2xhc3MuXG4gKiBAcGFyYW0ge29iamVjdH0gICBkZXNjcmlwdGlvbiAtIE1ldGhvZCBkZXNjcmlwdGlvbi5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoRm9yRWFjaEVkZ2UoQ2xhc3MsIGRlc2NyaXB0aW9uKSB7XG4gIGNvbnN0IHtuYW1lLCB0eXBlLCBkaXJlY3Rpb259ID0gZGVzY3JpcHRpb247XG5cbiAgY29uc3QgZm9yRWFjaE5hbWUgPSAnZm9yRWFjaCcgKyBuYW1lWzBdLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEsIC0xKTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgdGhlIGdyYXBoJ3MgcmVsZXZhbnQgZWRnZXMgYnkgYXBwbHlpbmcgdGhlIGdpdmVuXG4gICAqIGNhbGxiYWNrLlxuICAgKlxuICAgKiBBcml0eSAxOiBJdGVyYXRlIG92ZXIgYWxsIHRoZSByZWxldmFudCBlZGdlcy5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICAgKlxuICAgKiBBcml0eSAyOiBJdGVyYXRlIG92ZXIgYWxsIG9mIGEgbm9kZSdzIHJlbGV2YW50IGVkZ2VzLlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgbm9kZSAgICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICAgKlxuICAgKiBBcml0eSAzOiBJdGVyYXRlIG92ZXIgdGhlIHJlbGV2YW50IGVkZ2VzIGFjcm9zcyB0aGUgZ2l2ZW4gcGF0aC5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIHNvdXJjZSAgIC0gU291cmNlIG5vZGUuXG4gICAqIEBwYXJhbSAge2FueX0gICAgICB0YXJnZXQgICAtIFRhcmdldCBub2RlLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byB1c2UuXG4gICAqXG4gICAqIEByZXR1cm4ge3VuZGVmaW5lZH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgYXJndW1lbnRzLlxuICAgKi9cbiAgQ2xhc3MucHJvdG90eXBlW2ZvckVhY2hOYW1lXSA9IGZ1bmN0aW9uIChzb3VyY2UsIHRhcmdldCwgY2FsbGJhY2spIHtcbiAgICAvLyBFYXJseSB0ZXJtaW5hdGlvblxuICAgIGlmICh0eXBlICE9PSAnbWl4ZWQnICYmIHRoaXMudHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSB0aGlzLnR5cGUpIHJldHVybjtcblxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICBjYWxsYmFjayA9IHNvdXJjZTtcbiAgICAgIHJldHVybiBmb3JFYWNoRWRnZSh0aGlzLCB0eXBlLCBjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcbiAgICAgIHNvdXJjZSA9ICcnICsgc291cmNlO1xuICAgICAgY2FsbGJhY2sgPSB0YXJnZXQ7XG5cbiAgICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KHNvdXJjZSk7XG5cbiAgICAgIGlmICh0eXBlb2Ygbm9kZURhdGEgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke2ZvckVhY2hOYW1lfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtzb3VyY2V9XCIgbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgICApO1xuXG4gICAgICAvLyBJdGVyYXRpbmcgb3ZlciBhIG5vZGUncyBlZGdlc1xuICAgICAgLy8gVE9ETzogbWF5YmUgYXR0YWNoIHRoZSBzdWIgbWV0aG9kIHRvIHRoZSBpbnN0YW5jZSBkeW5hbWljYWxseT9cbiAgICAgIHJldHVybiBmb3JFYWNoRWRnZUZvck5vZGUoXG4gICAgICAgIHRoaXMubXVsdGksXG4gICAgICAgIHR5cGUgPT09ICdtaXhlZCcgPyB0aGlzLnR5cGUgOiB0eXBlLFxuICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgIG5vZGVEYXRhLFxuICAgICAgICBjYWxsYmFja1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMykge1xuICAgICAgc291cmNlID0gJycgKyBzb3VyY2U7XG4gICAgICB0YXJnZXQgPSAnJyArIHRhcmdldDtcblxuICAgICAgY29uc3Qgc291cmNlRGF0YSA9IHRoaXMuX25vZGVzLmdldChzb3VyY2UpO1xuXG4gICAgICBpZiAoIXNvdXJjZURhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7Zm9yRWFjaE5hbWV9OiAgY291bGQgbm90IGZpbmQgdGhlIFwiJHtzb3VyY2V9XCIgc291cmNlIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcblxuICAgICAgaWYgKCF0aGlzLl9ub2Rlcy5oYXModGFyZ2V0KSlcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHtmb3JFYWNoTmFtZX06ICBjb3VsZCBub3QgZmluZCB0aGUgXCIke3RhcmdldH1cIiB0YXJnZXQgbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgICApO1xuXG4gICAgICAvLyBJdGVyYXRpbmcgb3ZlciB0aGUgZWRnZXMgYmV0d2VlbiBzb3VyY2UgJiB0YXJnZXRcbiAgICAgIHJldHVybiBmb3JFYWNoRWRnZUZvclBhdGgoXG4gICAgICAgIHR5cGUsXG4gICAgICAgIHRoaXMubXVsdGksXG4gICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgc291cmNlRGF0YSxcbiAgICAgICAgdGFyZ2V0LFxuICAgICAgICBjYWxsYmFja1xuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICBgR3JhcGguJHtmb3JFYWNoTmFtZX06IHRvbyBtYW55IGFyZ3VtZW50cyAoZXhwZWN0aW5nIDEsIDIgb3IgMyBhbmQgZ290ICR7YXJndW1lbnRzLmxlbmd0aH0pLmBcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiBtYXBwaW5nIHRoZSBncmFwaCdzIHJlbGV2YW50IGVkZ2VzIGJ5IGFwcGx5aW5nIHRoZSBnaXZlblxuICAgKiBjYWxsYmFjay5cbiAgICpcbiAgICogQXJpdHkgMTogTWFwIGFsbCB0aGUgcmVsZXZhbnQgZWRnZXMuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAgICpcbiAgICogQXJpdHkgMjogTWFwIGFsbCBvZiBhIG5vZGUncyByZWxldmFudCBlZGdlcy5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIG5vZGUgICAgIC0gVGFyZ2V0IG5vZGUuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAgICpcbiAgICogQXJpdHkgMzogTWFwIHRoZSByZWxldmFudCBlZGdlcyBhY3Jvc3MgdGhlIGdpdmVuIHBhdGguXG4gICAqIEBwYXJhbSAge2FueX0gICAgICBzb3VyY2UgICAtIFNvdXJjZSBub2RlLlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgdGFyZ2V0ICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICAgKlxuICAgKiBAcmV0dXJuIHt1bmRlZmluZWR9XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGFyZ3VtZW50cy5cbiAgICovXG4gIGNvbnN0IG1hcE5hbWUgPSAnbWFwJyArIG5hbWVbMF0udG9VcHBlckNhc2UoKSArIG5hbWUuc2xpY2UoMSk7XG5cbiAgQ2xhc3MucHJvdG90eXBlW21hcE5hbWVdID0gZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgIGNvbnN0IGNhbGxiYWNrID0gYXJncy5wb3AoKTtcblxuICAgIGxldCByZXN1bHQ7XG5cbiAgICAvLyBXZSBrbm93IHRoZSByZXN1bHQgbGVuZ3RoIGJlZm9yZWhhbmRcbiAgICBpZiAoYXJncy5sZW5ndGggPT09IDApIHtcbiAgICAgIGxldCBsZW5ndGggPSAwO1xuXG4gICAgICBpZiAodHlwZSAhPT0gJ2RpcmVjdGVkJykgbGVuZ3RoICs9IHRoaXMudW5kaXJlY3RlZFNpemU7XG4gICAgICBpZiAodHlwZSAhPT0gJ3VuZGlyZWN0ZWQnKSBsZW5ndGggKz0gdGhpcy5kaXJlY3RlZFNpemU7XG5cbiAgICAgIHJlc3VsdCA9IG5ldyBBcnJheShsZW5ndGgpO1xuXG4gICAgICBsZXQgaSA9IDA7XG5cbiAgICAgIGFyZ3MucHVzaCgoZSwgZWEsIHMsIHQsIHNhLCB0YSwgdSkgPT4ge1xuICAgICAgICByZXN1bHRbaSsrXSA9IGNhbGxiYWNrKGUsIGVhLCBzLCB0LCBzYSwgdGEsIHUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gV2UgZG9uJ3Qga25vdyB0aGUgcmVzdWx0IGxlbmd0aCBiZWZvcmVoYW5kXG4gICAgLy8gVE9ETzogd2UgY2FuIGluIHNvbWUgaW5zdGFuY2VzIG9mIHNpbXBsZSBncmFwaHMsIGtub3dpbmcgZGVncmVlXG4gICAgZWxzZSB7XG4gICAgICByZXN1bHQgPSBbXTtcblxuICAgICAgYXJncy5wdXNoKChlLCBlYSwgcywgdCwgc2EsIHRhLCB1KSA9PiB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGNhbGxiYWNrKGUsIGVhLCBzLCB0LCBzYSwgdGEsIHUpKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXNbZm9yRWFjaE5hbWVdLmFwcGx5KHRoaXMsIGFyZ3MpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gZmlsdGVyaW5nIHRoZSBncmFwaCdzIHJlbGV2YW50IGVkZ2VzIHVzaW5nIHRoZSBwcm92aWRlZCBwcmVkaWNhdGVcbiAgICogZnVuY3Rpb24uXG4gICAqXG4gICAqIEFyaXR5IDE6IEZpbHRlciBhbGwgdGhlIHJlbGV2YW50IGVkZ2VzLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gcHJlZGljYXRlIC0gUHJlZGljYXRlIHRvIHVzZS5cbiAgICpcbiAgICogQXJpdHkgMjogRmlsdGVyIGFsbCBvZiBhIG5vZGUncyByZWxldmFudCBlZGdlcy5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIG5vZGUgICAgICAtIFRhcmdldCBub2RlLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gcHJlZGljYXRlIC0gUHJlZGljYXRlIHRvIHVzZS5cbiAgICpcbiAgICogQXJpdHkgMzogRmlsdGVyIHRoZSByZWxldmFudCBlZGdlcyBhY3Jvc3MgdGhlIGdpdmVuIHBhdGguXG4gICAqIEBwYXJhbSAge2FueX0gICAgICBzb3VyY2UgICAgLSBTb3VyY2Ugbm9kZS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIHRhcmdldCAgICAtIFRhcmdldCBub2RlLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gcHJlZGljYXRlIC0gUHJlZGljYXRlIHRvIHVzZS5cbiAgICpcbiAgICogQHJldHVybiB7dW5kZWZpbmVkfVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZXJlIGFyZSB0b28gbWFueSBhcmd1bWVudHMuXG4gICAqL1xuICBjb25zdCBmaWx0ZXJOYW1lID0gJ2ZpbHRlcicgKyBuYW1lWzBdLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEpO1xuXG4gIENsYXNzLnByb3RvdHlwZVtmaWx0ZXJOYW1lXSA9IGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgICBjb25zdCBjYWxsYmFjayA9IGFyZ3MucG9wKCk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgIGFyZ3MucHVzaCgoZSwgZWEsIHMsIHQsIHNhLCB0YSwgdSkgPT4ge1xuICAgICAgaWYgKGNhbGxiYWNrKGUsIGVhLCBzLCB0LCBzYSwgdGEsIHUpKSByZXN1bHQucHVzaChlKTtcbiAgICB9KTtcblxuICAgIHRoaXNbZm9yRWFjaE5hbWVdLmFwcGx5KHRoaXMsIGFyZ3MpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gcmVkdWNpbmcgdGhlIGdyYXBoJ3MgcmVsZXZhbnQgZWRnZXMgdXNpbmcgdGhlIHByb3ZpZGVkIGFjY3VtdWxhdG9yXG4gICAqIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBBcml0eSAxOiBSZWR1Y2UgYWxsIHRoZSByZWxldmFudCBlZGdlcy5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGFjY3VtdWxhdG9yICAtIEFjY3VtdWxhdG9yIHRvIHVzZS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIGluaXRpYWxWYWx1ZSAtIEluaXRpYWwgdmFsdWUuXG4gICAqXG4gICAqIEFyaXR5IDI6IFJlZHVjZSBhbGwgb2YgYSBub2RlJ3MgcmVsZXZhbnQgZWRnZXMuXG4gICAqIEBwYXJhbSAge2FueX0gICAgICBub2RlICAgICAgICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGFjY3VtdWxhdG9yICAtIEFjY3VtdWxhdG9yIHRvIHVzZS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIGluaXRpYWxWYWx1ZSAtIEluaXRpYWwgdmFsdWUuXG4gICAqXG4gICAqIEFyaXR5IDM6IFJlZHVjZSB0aGUgcmVsZXZhbnQgZWRnZXMgYWNyb3NzIHRoZSBnaXZlbiBwYXRoLlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgc291cmNlICAgICAgIC0gU291cmNlIG5vZGUuXG4gICAqIEBwYXJhbSAge2FueX0gICAgICB0YXJnZXQgICAgICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGFjY3VtdWxhdG9yICAtIEFjY3VtdWxhdG9yIHRvIHVzZS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIGluaXRpYWxWYWx1ZSAtIEluaXRpYWwgdmFsdWUuXG4gICAqXG4gICAqIEByZXR1cm4ge3VuZGVmaW5lZH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgYXJndW1lbnRzLlxuICAgKi9cbiAgY29uc3QgcmVkdWNlTmFtZSA9ICdyZWR1Y2UnICsgbmFtZVswXS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKTtcblxuICBDbGFzcy5wcm90b3R5cGVbcmVkdWNlTmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuXG4gICAgaWYgKGFyZ3MubGVuZ3RoIDwgMiB8fCBhcmdzLmxlbmd0aCA+IDQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7cmVkdWNlTmFtZX06IGludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cyAoZXhwZWN0aW5nIDIsIDMgb3IgNCBhbmQgZ290ICR7YXJncy5sZW5ndGh9KS5gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0gPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIHR5cGVvZiBhcmdzW2FyZ3MubGVuZ3RoIC0gMl0gIT09ICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7cmVkdWNlTmFtZX06IG1pc3NpbmcgaW5pdGlhbCB2YWx1ZS4gWW91IG11c3QgcHJvdmlkZSBpdCBiZWNhdXNlIHRoZSBjYWxsYmFjayB0YWtlcyBtb3JlIHRoYW4gb25lIGFyZ3VtZW50IGFuZCB3ZSBjYW5ub3QgaW5mZXIgdGhlIGluaXRpYWwgdmFsdWUgZnJvbSB0aGUgZmlyc3QgaXRlcmF0aW9uLCBhcyB5b3UgY291bGQgd2l0aCBhIHNpbXBsZSBhcnJheS5gXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBjYWxsYmFjaztcbiAgICBsZXQgaW5pdGlhbFZhbHVlO1xuXG4gICAgaWYgKGFyZ3MubGVuZ3RoID09PSAyKSB7XG4gICAgICBjYWxsYmFjayA9IGFyZ3NbMF07XG4gICAgICBpbml0aWFsVmFsdWUgPSBhcmdzWzFdO1xuICAgICAgYXJncyA9IFtdO1xuICAgIH0gZWxzZSBpZiAoYXJncy5sZW5ndGggPT09IDMpIHtcbiAgICAgIGNhbGxiYWNrID0gYXJnc1sxXTtcbiAgICAgIGluaXRpYWxWYWx1ZSA9IGFyZ3NbMl07XG4gICAgICBhcmdzID0gW2FyZ3NbMF1dO1xuICAgIH0gZWxzZSBpZiAoYXJncy5sZW5ndGggPT09IDQpIHtcbiAgICAgIGNhbGxiYWNrID0gYXJnc1syXTtcbiAgICAgIGluaXRpYWxWYWx1ZSA9IGFyZ3NbM107XG4gICAgICBhcmdzID0gW2FyZ3NbMF0sIGFyZ3NbMV1dO1xuICAgIH1cblxuICAgIGxldCBhY2N1bXVsYXRvciA9IGluaXRpYWxWYWx1ZTtcblxuICAgIGFyZ3MucHVzaCgoZSwgZWEsIHMsIHQsIHNhLCB0YSwgdSkgPT4ge1xuICAgICAgYWNjdW11bGF0b3IgPSBjYWxsYmFjayhhY2N1bXVsYXRvciwgZSwgZWEsIHMsIHQsIHNhLCB0YSwgdSk7XG4gICAgfSk7XG5cbiAgICB0aGlzW2ZvckVhY2hOYW1lXS5hcHBseSh0aGlzLCBhcmdzKTtcblxuICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgfTtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBhdHRhY2hpbmcgYSBicmVha2FibGUgZWRnZSBjYWxsYmFjayBpdGVyYXRvciBtZXRob2QgdG8gdGhlIEdyYXBoXG4gKiBwcm90b3R5cGUuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gQ2xhc3MgICAgICAgLSBUYXJnZXQgY2xhc3MuXG4gKiBAcGFyYW0ge29iamVjdH0gICBkZXNjcmlwdGlvbiAtIE1ldGhvZCBkZXNjcmlwdGlvbi5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoRmluZEVkZ2UoQ2xhc3MsIGRlc2NyaXB0aW9uKSB7XG4gIGNvbnN0IHtuYW1lLCB0eXBlLCBkaXJlY3Rpb259ID0gZGVzY3JpcHRpb247XG5cbiAgY29uc3QgZmluZEVkZ2VOYW1lID0gJ2ZpbmQnICsgbmFtZVswXS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxLCAtMSk7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIHRoZSBncmFwaCdzIHJlbGV2YW50IGVkZ2VzIGluIG9yZGVyIHRvIG1hdGNoXG4gICAqIG9uZSBvZiB0aGVtIHVzaW5nIHRoZSBwcm92aWRlZCBwcmVkaWNhdGUgZnVuY3Rpb24uXG4gICAqXG4gICAqIEFyaXR5IDE6IEl0ZXJhdGUgb3ZlciBhbGwgdGhlIHJlbGV2YW50IGVkZ2VzLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byB1c2UuXG4gICAqXG4gICAqIEFyaXR5IDI6IEl0ZXJhdGUgb3ZlciBhbGwgb2YgYSBub2RlJ3MgcmVsZXZhbnQgZWRnZXMuXG4gICAqIEBwYXJhbSAge2FueX0gICAgICBub2RlICAgICAtIFRhcmdldCBub2RlLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byB1c2UuXG4gICAqXG4gICAqIEFyaXR5IDM6IEl0ZXJhdGUgb3ZlciB0aGUgcmVsZXZhbnQgZWRnZXMgYWNyb3NzIHRoZSBnaXZlbiBwYXRoLlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgc291cmNlICAgLSBTb3VyY2Ugbm9kZS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIHRhcmdldCAgIC0gVGFyZ2V0IG5vZGUuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAgICpcbiAgICogQHJldHVybiB7dW5kZWZpbmVkfVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZXJlIGFyZSB0b28gbWFueSBhcmd1bWVudHMuXG4gICAqL1xuICBDbGFzcy5wcm90b3R5cGVbZmluZEVkZ2VOYW1lXSA9IGZ1bmN0aW9uIChzb3VyY2UsIHRhcmdldCwgY2FsbGJhY2spIHtcbiAgICAvLyBFYXJseSB0ZXJtaW5hdGlvblxuICAgIGlmICh0eXBlICE9PSAnbWl4ZWQnICYmIHRoaXMudHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSB0aGlzLnR5cGUpXG4gICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY2FsbGJhY2sgPSBzb3VyY2U7XG4gICAgICByZXR1cm4gZmluZEVkZ2UodGhpcywgdHlwZSwgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XG4gICAgICBzb3VyY2UgPSAnJyArIHNvdXJjZTtcbiAgICAgIGNhbGxiYWNrID0gdGFyZ2V0O1xuXG4gICAgICBjb25zdCBub2RlRGF0YSA9IHRoaXMuX25vZGVzLmdldChzb3VyY2UpO1xuXG4gICAgICBpZiAodHlwZW9mIG5vZGVEYXRhID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHtmaW5kRWRnZU5hbWV9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke3NvdXJjZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICAgICk7XG5cbiAgICAgIC8vIEl0ZXJhdGluZyBvdmVyIGEgbm9kZSdzIGVkZ2VzXG4gICAgICAvLyBUT0RPOiBtYXliZSBhdHRhY2ggdGhlIHN1YiBtZXRob2QgdG8gdGhlIGluc3RhbmNlIGR5bmFtaWNhbGx5P1xuICAgICAgcmV0dXJuIGZpbmRFZGdlRm9yTm9kZShcbiAgICAgICAgdGhpcy5tdWx0aSxcbiAgICAgICAgdHlwZSA9PT0gJ21peGVkJyA/IHRoaXMudHlwZSA6IHR5cGUsXG4gICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgbm9kZURhdGEsXG4gICAgICAgIGNhbGxiYWNrXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAzKSB7XG4gICAgICBzb3VyY2UgPSAnJyArIHNvdXJjZTtcbiAgICAgIHRhcmdldCA9ICcnICsgdGFyZ2V0O1xuXG4gICAgICBjb25zdCBzb3VyY2VEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KHNvdXJjZSk7XG5cbiAgICAgIGlmICghc291cmNlRGF0YSlcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHtmaW5kRWRnZU5hbWV9OiAgY291bGQgbm90IGZpbmQgdGhlIFwiJHtzb3VyY2V9XCIgc291cmNlIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcblxuICAgICAgaWYgKCF0aGlzLl9ub2Rlcy5oYXModGFyZ2V0KSlcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHtmaW5kRWRnZU5hbWV9OiAgY291bGQgbm90IGZpbmQgdGhlIFwiJHt0YXJnZXR9XCIgdGFyZ2V0IG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcblxuICAgICAgLy8gSXRlcmF0aW5nIG92ZXIgdGhlIGVkZ2VzIGJldHdlZW4gc291cmNlICYgdGFyZ2V0XG4gICAgICByZXR1cm4gZmluZEVkZ2VGb3JQYXRoKFxuICAgICAgICB0eXBlLFxuICAgICAgICB0aGlzLm11bHRpLFxuICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgIHNvdXJjZURhdGEsXG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgY2FsbGJhY2tcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLiR7ZmluZEVkZ2VOYW1lfTogdG9vIG1hbnkgYXJndW1lbnRzIChleHBlY3RpbmcgMSwgMiBvciAzIGFuZCBnb3QgJHthcmd1bWVudHMubGVuZ3RofSkuYFxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIHRoZSBncmFwaCdzIHJlbGV2YW50IGVkZ2VzIGluIG9yZGVyIHRvIGFzc2VydFxuICAgKiB3aGV0aGVyIGFueSBvbmUgb2YgdGhlbSBtYXRjaGVzIHRoZSBwcm92aWRlZCBwcmVkaWNhdGUgZnVuY3Rpb24uXG4gICAqXG4gICAqIEFyaXR5IDE6IEl0ZXJhdGUgb3ZlciBhbGwgdGhlIHJlbGV2YW50IGVkZ2VzLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byB1c2UuXG4gICAqXG4gICAqIEFyaXR5IDI6IEl0ZXJhdGUgb3ZlciBhbGwgb2YgYSBub2RlJ3MgcmVsZXZhbnQgZWRnZXMuXG4gICAqIEBwYXJhbSAge2FueX0gICAgICBub2RlICAgICAtIFRhcmdldCBub2RlLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byB1c2UuXG4gICAqXG4gICAqIEFyaXR5IDM6IEl0ZXJhdGUgb3ZlciB0aGUgcmVsZXZhbnQgZWRnZXMgYWNyb3NzIHRoZSBnaXZlbiBwYXRoLlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgc291cmNlICAgLSBTb3VyY2Ugbm9kZS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIHRhcmdldCAgIC0gVGFyZ2V0IG5vZGUuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAgICpcbiAgICogQHJldHVybiB7dW5kZWZpbmVkfVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZXJlIGFyZSB0b28gbWFueSBhcmd1bWVudHMuXG4gICAqL1xuICBjb25zdCBzb21lTmFtZSA9ICdzb21lJyArIG5hbWVbMF0udG9VcHBlckNhc2UoKSArIG5hbWUuc2xpY2UoMSwgLTEpO1xuXG4gIENsYXNzLnByb3RvdHlwZVtzb21lTmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgY29uc3QgY2FsbGJhY2sgPSBhcmdzLnBvcCgpO1xuXG4gICAgYXJncy5wdXNoKChlLCBlYSwgcywgdCwgc2EsIHRhLCB1KSA9PiB7XG4gICAgICByZXR1cm4gY2FsbGJhY2soZSwgZWEsIHMsIHQsIHNhLCB0YSwgdSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBmb3VuZCA9IHRoaXNbZmluZEVkZ2VOYW1lXS5hcHBseSh0aGlzLCBhcmdzKTtcblxuICAgIGlmIChmb3VuZCkgcmV0dXJuIHRydWU7XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIHRoZSBncmFwaCdzIHJlbGV2YW50IGVkZ2VzIGluIG9yZGVyIHRvIGFzc2VydFxuICAgKiB3aGV0aGVyIGFsbCBvZiB0aGVtIG1hdGNoZSB0aGUgcHJvdmlkZWQgcHJlZGljYXRlIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBBcml0eSAxOiBJdGVyYXRlIG92ZXIgYWxsIHRoZSByZWxldmFudCBlZGdlcy5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICAgKlxuICAgKiBBcml0eSAyOiBJdGVyYXRlIG92ZXIgYWxsIG9mIGEgbm9kZSdzIHJlbGV2YW50IGVkZ2VzLlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgbm9kZSAgICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICAgKlxuICAgKiBBcml0eSAzOiBJdGVyYXRlIG92ZXIgdGhlIHJlbGV2YW50IGVkZ2VzIGFjcm9zcyB0aGUgZ2l2ZW4gcGF0aC5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIHNvdXJjZSAgIC0gU291cmNlIG5vZGUuXG4gICAqIEBwYXJhbSAge2FueX0gICAgICB0YXJnZXQgICAtIFRhcmdldCBub2RlLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byB1c2UuXG4gICAqXG4gICAqIEByZXR1cm4ge3VuZGVmaW5lZH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgYXJndW1lbnRzLlxuICAgKi9cbiAgY29uc3QgZXZlcnlOYW1lID0gJ2V2ZXJ5JyArIG5hbWVbMF0udG9VcHBlckNhc2UoKSArIG5hbWUuc2xpY2UoMSwgLTEpO1xuXG4gIENsYXNzLnByb3RvdHlwZVtldmVyeU5hbWVdID0gZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgIGNvbnN0IGNhbGxiYWNrID0gYXJncy5wb3AoKTtcblxuICAgIGFyZ3MucHVzaCgoZSwgZWEsIHMsIHQsIHNhLCB0YSwgdSkgPT4ge1xuICAgICAgcmV0dXJuICFjYWxsYmFjayhlLCBlYSwgcywgdCwgc2EsIHRhLCB1KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGZvdW5kID0gdGhpc1tmaW5kRWRnZU5hbWVdLmFwcGx5KHRoaXMsIGFyZ3MpO1xuXG4gICAgaWYgKGZvdW5kKSByZXR1cm4gZmFsc2U7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBhdHRhY2hpbmcgYW4gZWRnZSBpdGVyYXRvciBtZXRob2QgdG8gdGhlIEdyYXBoIHByb3RvdHlwZS5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBDbGFzcyAgICAgICAtIFRhcmdldCBjbGFzcy5cbiAqIEBwYXJhbSB7b2JqZWN0fSAgIGRlc2NyaXB0aW9uIC0gTWV0aG9kIGRlc2NyaXB0aW9uLlxuICovXG5mdW5jdGlvbiBhdHRhY2hFZGdlSXRlcmF0b3JDcmVhdG9yKENsYXNzLCBkZXNjcmlwdGlvbikge1xuICBjb25zdCB7bmFtZTogb3JpZ2luYWxOYW1lLCB0eXBlLCBkaXJlY3Rpb259ID0gZGVzY3JpcHRpb247XG5cbiAgY29uc3QgbmFtZSA9IG9yaWdpbmFsTmFtZS5zbGljZSgwLCAtMSkgKyAnRW50cmllcyc7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHJldHVybmluZyBhbiBpdGVyYXRvciBvdmVyIHRoZSBncmFwaCdzIGVkZ2VzLlxuICAgKlxuICAgKiBBcml0eSAwOiBJdGVyYXRlIG92ZXIgYWxsIHRoZSByZWxldmFudCBlZGdlcy5cbiAgICpcbiAgICogQXJpdHkgMTogSXRlcmF0ZSBvdmVyIGFsbCBvZiBhIG5vZGUncyByZWxldmFudCBlZGdlcy5cbiAgICogQHBhcmFtICB7YW55fSAgIG5vZGUgICAtIFRhcmdldCBub2RlLlxuICAgKlxuICAgKiBBcml0eSAyOiBJdGVyYXRlIG92ZXIgdGhlIHJlbGV2YW50IGVkZ2VzIGFjcm9zcyB0aGUgZ2l2ZW4gcGF0aC5cbiAgICogQHBhcmFtICB7YW55fSAgIHNvdXJjZSAtIFNvdXJjZSBub2RlLlxuICAgKiBAcGFyYW0gIHthbnl9ICAgdGFyZ2V0IC0gVGFyZ2V0IG5vZGUuXG4gICAqXG4gICAqIEByZXR1cm4ge2FycmF5fG51bWJlcn0gLSBUaGUgZWRnZXMgb3IgdGhlIG51bWJlciBvZiBlZGdlcy5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgYXJndW1lbnRzLlxuICAgKi9cbiAgQ2xhc3MucHJvdG90eXBlW25hbWVdID0gZnVuY3Rpb24gKHNvdXJjZSwgdGFyZ2V0KSB7XG4gICAgLy8gRWFybHkgdGVybWluYXRpb25cbiAgICBpZiAodHlwZSAhPT0gJ21peGVkJyAmJiB0aGlzLnR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gdGhpcy50eXBlKVxuICAgICAgcmV0dXJuIEl0ZXJhdG9yLmVtcHR5KCk7XG5cbiAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHJldHVybiBjcmVhdGVFZGdlSXRlcmF0b3IodGhpcywgdHlwZSk7XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgc291cmNlID0gJycgKyBzb3VyY2U7XG5cbiAgICAgIGNvbnN0IHNvdXJjZURhdGEgPSB0aGlzLl9ub2Rlcy5nZXQoc291cmNlKTtcblxuICAgICAgaWYgKCFzb3VyY2VEYXRhKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke25hbWV9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke3NvdXJjZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICAgICk7XG5cbiAgICAgIC8vIEl0ZXJhdGluZyBvdmVyIGEgbm9kZSdzIGVkZ2VzXG4gICAgICByZXR1cm4gY3JlYXRlRWRnZUl0ZXJhdG9yRm9yTm9kZSh0eXBlLCBkaXJlY3Rpb24sIHNvdXJjZURhdGEpO1xuICAgIH1cblxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XG4gICAgICBzb3VyY2UgPSAnJyArIHNvdXJjZTtcbiAgICAgIHRhcmdldCA9ICcnICsgdGFyZ2V0O1xuXG4gICAgICBjb25zdCBzb3VyY2VEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KHNvdXJjZSk7XG5cbiAgICAgIGlmICghc291cmNlRGF0YSlcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHtuYW1lfTogIGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7c291cmNlfVwiIHNvdXJjZSBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICAgICk7XG5cbiAgICAgIGlmICghdGhpcy5fbm9kZXMuaGFzKHRhcmdldCkpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bmFtZX06ICBjb3VsZCBub3QgZmluZCB0aGUgXCIke3RhcmdldH1cIiB0YXJnZXQgbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgICApO1xuXG4gICAgICAvLyBJdGVyYXRpbmcgb3ZlciB0aGUgZWRnZXMgYmV0d2VlbiBzb3VyY2UgJiB0YXJnZXRcbiAgICAgIHJldHVybiBjcmVhdGVFZGdlSXRlcmF0b3JGb3JQYXRoKHR5cGUsIGRpcmVjdGlvbiwgc291cmNlRGF0YSwgdGFyZ2V0KTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICBgR3JhcGguJHtuYW1lfTogdG9vIG1hbnkgYXJndW1lbnRzIChleHBlY3RpbmcgMCwgMSBvciAyIGFuZCBnb3QgJHthcmd1bWVudHMubGVuZ3RofSkuYFxuICAgICk7XG4gIH07XG59XG5cbi8qKlxuICogRnVuY3Rpb24gYXR0YWNoaW5nIGV2ZXJ5IGVkZ2UgaXRlcmF0aW9uIG1ldGhvZCB0byB0aGUgR3JhcGggY2xhc3MuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gR3JhcGggLSBHcmFwaCBjbGFzcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYXR0YWNoRWRnZUl0ZXJhdGlvbk1ldGhvZHMoR3JhcGgpIHtcbiAgRURHRVNfSVRFUkFUSU9OLmZvckVhY2goZGVzY3JpcHRpb24gPT4ge1xuICAgIGF0dGFjaEVkZ2VBcnJheUNyZWF0b3IoR3JhcGgsIGRlc2NyaXB0aW9uKTtcbiAgICBhdHRhY2hGb3JFYWNoRWRnZShHcmFwaCwgZGVzY3JpcHRpb24pO1xuICAgIGF0dGFjaEZpbmRFZGdlKEdyYXBoLCBkZXNjcmlwdGlvbik7XG4gICAgYXR0YWNoRWRnZUl0ZXJhdG9yQ3JlYXRvcihHcmFwaCwgZGVzY3JpcHRpb24pO1xuICB9KTtcbn1cbiIsICIvKipcbiAqIEdyYXBob2xvZ3kgTmVpZ2hib3IgSXRlcmF0aW9uXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBBdHRhY2hpbmcgc29tZSBtZXRob2RzIHRvIHRoZSBHcmFwaCBjbGFzcyB0byBiZSBhYmxlIHRvIGl0ZXJhdGUgb3ZlclxuICogbmVpZ2hib3JzLlxuICovXG5pbXBvcnQgSXRlcmF0b3IgZnJvbSAnb2JsaXRlcmF0b3IvaXRlcmF0b3InO1xuaW1wb3J0IGNoYWluIGZyb20gJ29ibGl0ZXJhdG9yL2NoYWluJztcbmltcG9ydCB0YWtlIGZyb20gJ29ibGl0ZXJhdG9yL3Rha2UnO1xuXG5pbXBvcnQge05vdEZvdW5kR3JhcGhFcnJvciwgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3J9IGZyb20gJy4uL2Vycm9ycyc7XG5cbi8qKlxuICogRGVmaW5pdGlvbnMuXG4gKi9cbmNvbnN0IE5FSUdIQk9SU19JVEVSQVRJT04gPSBbXG4gIHtcbiAgICBuYW1lOiAnbmVpZ2hib3JzJyxcbiAgICB0eXBlOiAnbWl4ZWQnXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnaW5OZWlnaGJvcnMnLFxuICAgIHR5cGU6ICdkaXJlY3RlZCcsXG4gICAgZGlyZWN0aW9uOiAnaW4nXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnb3V0TmVpZ2hib3JzJyxcbiAgICB0eXBlOiAnZGlyZWN0ZWQnLFxuICAgIGRpcmVjdGlvbjogJ291dCdcbiAgfSxcbiAge1xuICAgIG5hbWU6ICdpbmJvdW5kTmVpZ2hib3JzJyxcbiAgICB0eXBlOiAnbWl4ZWQnLFxuICAgIGRpcmVjdGlvbjogJ2luJ1xuICB9LFxuICB7XG4gICAgbmFtZTogJ291dGJvdW5kTmVpZ2hib3JzJyxcbiAgICB0eXBlOiAnbWl4ZWQnLFxuICAgIGRpcmVjdGlvbjogJ291dCdcbiAgfSxcbiAge1xuICAgIG5hbWU6ICdkaXJlY3RlZE5laWdoYm9ycycsXG4gICAgdHlwZTogJ2RpcmVjdGVkJ1xuICB9LFxuICB7XG4gICAgbmFtZTogJ3VuZGlyZWN0ZWROZWlnaGJvcnMnLFxuICAgIHR5cGU6ICd1bmRpcmVjdGVkJ1xuICB9XG5dO1xuXG4vKipcbiAqIEZ1bmN0aW9uIG1lcmdpbmcgbmVpZ2hib3JzIGludG8gdGhlIGdpdmVuIHNldCBpdGVyYXRpbmcgb3ZlciB0aGUgZ2l2ZW4gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB7QmFzaWNTZXR9IG5laWdoYm9ycyAtIE5laWdoYm9ycyBzZXQuXG4gKiBAcGFyYW0ge29iamVjdH0gICBvYmplY3QgICAgLSBUYXJnZXQgb2JqZWN0LlxuICovXG5mdW5jdGlvbiBtZXJnZShuZWlnaGJvcnMsIG9iamVjdCkge1xuICBpZiAodHlwZW9mIG9iamVjdCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcblxuICBmb3IgKGNvbnN0IG5laWdoYm9yIGluIG9iamVjdCkgbmVpZ2hib3JzLmFkZChuZWlnaGJvcik7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gY3JlYXRpbmcgYW4gYXJyYXkgb2YgcmVsZXZhbnQgbmVpZ2hib3JzIGZvciB0aGUgZ2l2ZW4gbm9kZS5cbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgICAgIHR5cGUgICAgICAtIFR5cGUgb2YgbmVpZ2hib3JzLlxuICogQHBhcmFtICB7c3RyaW5nfSAgICAgICBkaXJlY3Rpb24gLSBEaXJlY3Rpb24uXG4gKiBAcGFyYW0gIHthbnl9ICAgICAgICAgIG5vZGVEYXRhICAtIFRhcmdldCBub2RlJ3MgZGF0YS5cbiAqIEByZXR1cm4ge0FycmF5fSAgICAgICAgICAgICAgICAgIC0gVGhlIGxpc3Qgb2YgbmVpZ2hib3JzLlxuICovXG5mdW5jdGlvbiBjcmVhdGVOZWlnaGJvckFycmF5Rm9yTm9kZSh0eXBlLCBkaXJlY3Rpb24sIG5vZGVEYXRhKSB7XG4gIC8vIElmIHdlIHdhbnQgb25seSB1bmRpcmVjdGVkIG9yIGluIG9yIG91dCwgd2UgY2FuIHJvbGwgc29tZSBvcHRpbWl6YXRpb25zXG4gIGlmICh0eXBlICE9PSAnbWl4ZWQnKSB7XG4gICAgaWYgKHR5cGUgPT09ICd1bmRpcmVjdGVkJykgcmV0dXJuIE9iamVjdC5rZXlzKG5vZGVEYXRhLnVuZGlyZWN0ZWQpO1xuXG4gICAgaWYgKHR5cGVvZiBkaXJlY3Rpb24gPT09ICdzdHJpbmcnKSByZXR1cm4gT2JqZWN0LmtleXMobm9kZURhdGFbZGlyZWN0aW9uXSk7XG4gIH1cblxuICAvLyBFbHNlIHdlIG5lZWQgdG8ga2VlcCBhIHNldCBvZiBuZWlnaGJvcnMgbm90IHRvIHJldHVybiBkdXBsaWNhdGVzXG4gIGNvbnN0IG5laWdoYm9ycyA9IG5ldyBTZXQoKTtcblxuICBpZiAodHlwZSAhPT0gJ3VuZGlyZWN0ZWQnKSB7XG4gICAgaWYgKGRpcmVjdGlvbiAhPT0gJ291dCcpIHtcbiAgICAgIG1lcmdlKG5laWdoYm9ycywgbm9kZURhdGEuaW4pO1xuICAgIH1cbiAgICBpZiAoZGlyZWN0aW9uICE9PSAnaW4nKSB7XG4gICAgICBtZXJnZShuZWlnaGJvcnMsIG5vZGVEYXRhLm91dCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGUgIT09ICdkaXJlY3RlZCcpIHtcbiAgICBtZXJnZShuZWlnaGJvcnMsIG5vZGVEYXRhLnVuZGlyZWN0ZWQpO1xuICB9XG5cbiAgcmV0dXJuIHRha2UobmVpZ2hib3JzLnZhbHVlcygpLCBuZWlnaGJvcnMuc2l6ZSk7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgdGhlIGdpdmVuIG5vZGUncyByZWxldmFudCBuZWlnaGJvcnMgdXNpbmcgYVxuICogY2FsbGJhY2suXG4gKlxuICogQHBhcmFtICB7c3RyaW5nfSAgIHR5cGUgICAgICAtIFR5cGUgb2YgbmVpZ2hib3JzLlxuICogQHBhcmFtICB7c3RyaW5nfSAgIGRpcmVjdGlvbiAtIERpcmVjdGlvbi5cbiAqIEBwYXJhbSAge2FueX0gICAgICBub2RlRGF0YSAgLSBUYXJnZXQgbm9kZSdzIGRhdGEuXG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICovXG5mdW5jdGlvbiBmb3JFYWNoSW5PYmplY3Qobm9kZURhdGEsIG9iamVjdCwgY2FsbGJhY2spIHtcbiAgZm9yIChjb25zdCBrIGluIG9iamVjdCkge1xuICAgIGxldCBlZGdlRGF0YSA9IG9iamVjdFtrXTtcblxuICAgIGlmIChlZGdlRGF0YSBpbnN0YW5jZW9mIFNldCkgZWRnZURhdGEgPSBlZGdlRGF0YS52YWx1ZXMoKS5uZXh0KCkudmFsdWU7XG5cbiAgICBjb25zdCBzb3VyY2VEYXRhID0gZWRnZURhdGEuc291cmNlLFxuICAgICAgdGFyZ2V0RGF0YSA9IGVkZ2VEYXRhLnRhcmdldDtcblxuICAgIGNvbnN0IG5laWdoYm9yRGF0YSA9IHNvdXJjZURhdGEgPT09IG5vZGVEYXRhID8gdGFyZ2V0RGF0YSA6IHNvdXJjZURhdGE7XG5cbiAgICBjYWxsYmFjayhuZWlnaGJvckRhdGEua2V5LCBuZWlnaGJvckRhdGEuYXR0cmlidXRlcyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZm9yRWFjaEluT2JqZWN0T25jZSh2aXNpdGVkLCBub2RlRGF0YSwgb2JqZWN0LCBjYWxsYmFjaykge1xuICBmb3IgKGNvbnN0IGsgaW4gb2JqZWN0KSB7XG4gICAgbGV0IGVkZ2VEYXRhID0gb2JqZWN0W2tdO1xuXG4gICAgaWYgKGVkZ2VEYXRhIGluc3RhbmNlb2YgU2V0KSBlZGdlRGF0YSA9IGVkZ2VEYXRhLnZhbHVlcygpLm5leHQoKS52YWx1ZTtcblxuICAgIGNvbnN0IHNvdXJjZURhdGEgPSBlZGdlRGF0YS5zb3VyY2UsXG4gICAgICB0YXJnZXREYXRhID0gZWRnZURhdGEudGFyZ2V0O1xuXG4gICAgY29uc3QgbmVpZ2hib3JEYXRhID0gc291cmNlRGF0YSA9PT0gbm9kZURhdGEgPyB0YXJnZXREYXRhIDogc291cmNlRGF0YTtcblxuICAgIGlmICh2aXNpdGVkLmhhcyhuZWlnaGJvckRhdGEua2V5KSkgY29udGludWU7XG5cbiAgICB2aXNpdGVkLmFkZChuZWlnaGJvckRhdGEua2V5KTtcblxuICAgIGNhbGxiYWNrKG5laWdoYm9yRGF0YS5rZXksIG5laWdoYm9yRGF0YS5hdHRyaWJ1dGVzKTtcbiAgfVxufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIHRoZSBnaXZlbiBub2RlJ3MgcmVsZXZhbnQgbmVpZ2hib3JzIHRvIG1hdGNoXG4gKiBvbmUgb2YgdGhlbSB1c2luZyBhIHByZWRpY2F0ZWQgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtICB7c3RyaW5nfSAgIHR5cGUgICAgICAtIFR5cGUgb2YgbmVpZ2hib3JzLlxuICogQHBhcmFtICB7c3RyaW5nfSAgIGRpcmVjdGlvbiAtIERpcmVjdGlvbi5cbiAqIEBwYXJhbSAge2FueX0gICAgICBub2RlRGF0YSAgLSBUYXJnZXQgbm9kZSdzIGRhdGEuXG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICovXG5mdW5jdGlvbiBmaW5kSW5PYmplY3Qobm9kZURhdGEsIG9iamVjdCwgY2FsbGJhY2spIHtcbiAgZm9yIChjb25zdCBrIGluIG9iamVjdCkge1xuICAgIGxldCBlZGdlRGF0YSA9IG9iamVjdFtrXTtcblxuICAgIGlmIChlZGdlRGF0YSBpbnN0YW5jZW9mIFNldCkgZWRnZURhdGEgPSBlZGdlRGF0YS52YWx1ZXMoKS5uZXh0KCkudmFsdWU7XG5cbiAgICBjb25zdCBzb3VyY2VEYXRhID0gZWRnZURhdGEuc291cmNlO1xuICAgIGNvbnN0IHRhcmdldERhdGEgPSBlZGdlRGF0YS50YXJnZXQ7XG5cbiAgICBjb25zdCBuZWlnaGJvckRhdGEgPSBzb3VyY2VEYXRhID09PSBub2RlRGF0YSA/IHRhcmdldERhdGEgOiBzb3VyY2VEYXRhO1xuXG4gICAgY29uc3Qgc2hvdWxkQnJlYWsgPSBjYWxsYmFjayhuZWlnaGJvckRhdGEua2V5LCBuZWlnaGJvckRhdGEuYXR0cmlidXRlcyk7XG5cbiAgICBpZiAoc2hvdWxkQnJlYWspIHJldHVybiBuZWlnaGJvckRhdGEua2V5O1xuICB9XG5cbiAgcmV0dXJuO1xufVxuXG5mdW5jdGlvbiBmaW5kSW5PYmplY3RPbmNlKHZpc2l0ZWQsIG5vZGVEYXRhLCBvYmplY3QsIGNhbGxiYWNrKSB7XG4gIGZvciAoY29uc3QgayBpbiBvYmplY3QpIHtcbiAgICBsZXQgZWRnZURhdGEgPSBvYmplY3Rba107XG5cbiAgICBpZiAoZWRnZURhdGEgaW5zdGFuY2VvZiBTZXQpIGVkZ2VEYXRhID0gZWRnZURhdGEudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xuXG4gICAgY29uc3Qgc291cmNlRGF0YSA9IGVkZ2VEYXRhLnNvdXJjZTtcbiAgICBjb25zdCB0YXJnZXREYXRhID0gZWRnZURhdGEudGFyZ2V0O1xuXG4gICAgY29uc3QgbmVpZ2hib3JEYXRhID0gc291cmNlRGF0YSA9PT0gbm9kZURhdGEgPyB0YXJnZXREYXRhIDogc291cmNlRGF0YTtcblxuICAgIGlmICh2aXNpdGVkLmhhcyhuZWlnaGJvckRhdGEua2V5KSkgY29udGludWU7XG5cbiAgICB2aXNpdGVkLmFkZChuZWlnaGJvckRhdGEua2V5KTtcblxuICAgIGNvbnN0IHNob3VsZEJyZWFrID0gY2FsbGJhY2sobmVpZ2hib3JEYXRhLmtleSwgbmVpZ2hib3JEYXRhLmF0dHJpYnV0ZXMpO1xuXG4gICAgaWYgKHNob3VsZEJyZWFrKSByZXR1cm4gbmVpZ2hib3JEYXRhLmtleTtcbiAgfVxuXG4gIHJldHVybjtcbn1cblxuZnVuY3Rpb24gZm9yRWFjaE5laWdoYm9yRm9yTm9kZSh0eXBlLCBkaXJlY3Rpb24sIG5vZGVEYXRhLCBjYWxsYmFjaykge1xuICAvLyBJZiB3ZSB3YW50IG9ubHkgdW5kaXJlY3RlZCBvciBpbiBvciBvdXQsIHdlIGNhbiByb2xsIHNvbWUgb3B0aW1pemF0aW9uc1xuICBpZiAodHlwZSAhPT0gJ21peGVkJykge1xuICAgIGlmICh0eXBlID09PSAndW5kaXJlY3RlZCcpXG4gICAgICByZXR1cm4gZm9yRWFjaEluT2JqZWN0KG5vZGVEYXRhLCBub2RlRGF0YS51bmRpcmVjdGVkLCBjYWxsYmFjayk7XG5cbiAgICBpZiAodHlwZW9mIGRpcmVjdGlvbiA9PT0gJ3N0cmluZycpXG4gICAgICByZXR1cm4gZm9yRWFjaEluT2JqZWN0KG5vZGVEYXRhLCBub2RlRGF0YVtkaXJlY3Rpb25dLCBjYWxsYmFjayk7XG4gIH1cblxuICAvLyBFbHNlIHdlIG5lZWQgdG8ga2VlcCBhIHNldCBvZiBuZWlnaGJvcnMgbm90IHRvIHJldHVybiBkdXBsaWNhdGVzXG4gIGNvbnN0IHZpc2l0ZWQgPSBuZXcgU2V0KCk7XG5cbiAgaWYgKHR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgIGlmIChkaXJlY3Rpb24gIT09ICdvdXQnKSB7XG4gICAgICBmb3JFYWNoSW5PYmplY3RPbmNlKHZpc2l0ZWQsIG5vZGVEYXRhLCBub2RlRGF0YS5pbiwgY2FsbGJhY2spO1xuICAgIH1cbiAgICBpZiAoZGlyZWN0aW9uICE9PSAnaW4nKSB7XG4gICAgICBmb3JFYWNoSW5PYmplY3RPbmNlKHZpc2l0ZWQsIG5vZGVEYXRhLCBub2RlRGF0YS5vdXQsIGNhbGxiYWNrKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZSAhPT0gJ2RpcmVjdGVkJykge1xuICAgIGZvckVhY2hJbk9iamVjdE9uY2UodmlzaXRlZCwgbm9kZURhdGEsIG5vZGVEYXRhLnVuZGlyZWN0ZWQsIGNhbGxiYWNrKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kTmVpZ2hib3IodHlwZSwgZGlyZWN0aW9uLCBub2RlRGF0YSwgY2FsbGJhY2spIHtcbiAgLy8gSWYgd2Ugd2FudCBvbmx5IHVuZGlyZWN0ZWQgb3IgaW4gb3Igb3V0LCB3ZSBjYW4gcm9sbCBzb21lIG9wdGltaXphdGlvbnNcbiAgaWYgKHR5cGUgIT09ICdtaXhlZCcpIHtcbiAgICBpZiAodHlwZSA9PT0gJ3VuZGlyZWN0ZWQnKVxuICAgICAgcmV0dXJuIGZpbmRJbk9iamVjdChub2RlRGF0YSwgbm9kZURhdGEudW5kaXJlY3RlZCwgY2FsbGJhY2spO1xuXG4gICAgaWYgKHR5cGVvZiBkaXJlY3Rpb24gPT09ICdzdHJpbmcnKVxuICAgICAgcmV0dXJuIGZpbmRJbk9iamVjdChub2RlRGF0YSwgbm9kZURhdGFbZGlyZWN0aW9uXSwgY2FsbGJhY2spO1xuICB9XG5cbiAgLy8gRWxzZSB3ZSBuZWVkIHRvIGtlZXAgYSBzZXQgb2YgbmVpZ2hib3JzIG5vdCB0byByZXR1cm4gZHVwbGljYXRlc1xuICBjb25zdCB2aXNpdGVkID0gbmV3IFNldCgpO1xuXG4gIGxldCBmb3VuZDtcblxuICBpZiAodHlwZSAhPT0gJ3VuZGlyZWN0ZWQnKSB7XG4gICAgaWYgKGRpcmVjdGlvbiAhPT0gJ291dCcpIHtcbiAgICAgIGZvdW5kID0gZmluZEluT2JqZWN0T25jZSh2aXNpdGVkLCBub2RlRGF0YSwgbm9kZURhdGEuaW4sIGNhbGxiYWNrKTtcblxuICAgICAgaWYgKGZvdW5kKSByZXR1cm4gZm91bmQ7XG4gICAgfVxuICAgIGlmIChkaXJlY3Rpb24gIT09ICdpbicpIHtcbiAgICAgIGZvdW5kID0gZmluZEluT2JqZWN0T25jZSh2aXNpdGVkLCBub2RlRGF0YSwgbm9kZURhdGEub3V0LCBjYWxsYmFjayk7XG5cbiAgICAgIGlmIChmb3VuZCkgcmV0dXJuIGZvdW5kO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlICE9PSAnZGlyZWN0ZWQnKSB7XG4gICAgZm91bmQgPSBmaW5kSW5PYmplY3RPbmNlKHZpc2l0ZWQsIG5vZGVEYXRhLCBub2RlRGF0YS51bmRpcmVjdGVkLCBjYWxsYmFjayk7XG5cbiAgICBpZiAoZm91bmQpIHJldHVybiBmb3VuZDtcbiAgfVxuXG4gIHJldHVybjtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiByZXR1cm5pbmcgYW4gaXRlcmF0b3Igb3ZlciB0aGUgZ2l2ZW4gbm9kZSdzIHJlbGV2YW50IG5laWdoYm9ycy5cbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgdHlwZSAgICAgIC0gVHlwZSBvZiBuZWlnaGJvcnMuXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgZGlyZWN0aW9uIC0gRGlyZWN0aW9uLlxuICogQHBhcmFtICB7YW55fSAgICAgIG5vZGVEYXRhICAtIFRhcmdldCBub2RlJ3MgZGF0YS5cbiAqIEByZXR1cm4ge0l0ZXJhdG9yfVxuICovXG5mdW5jdGlvbiBjcmVhdGVPYmplY3RJdGVyYXRvcihub2RlRGF0YSwgb2JqZWN0KSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpLFxuICAgIGwgPSBrZXlzLmxlbmd0aDtcblxuICBsZXQgaSA9IDA7XG5cbiAgcmV0dXJuIG5ldyBJdGVyYXRvcihmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGkgPj0gbCkgcmV0dXJuIHtkb25lOiB0cnVlfTtcblxuICAgIGxldCBlZGdlRGF0YSA9IG9iamVjdFtrZXlzW2krK11dO1xuXG4gICAgaWYgKGVkZ2VEYXRhIGluc3RhbmNlb2YgU2V0KSBlZGdlRGF0YSA9IGVkZ2VEYXRhLnZhbHVlcygpLm5leHQoKS52YWx1ZTtcblxuICAgIGNvbnN0IHNvdXJjZURhdGEgPSBlZGdlRGF0YS5zb3VyY2UsXG4gICAgICB0YXJnZXREYXRhID0gZWRnZURhdGEudGFyZ2V0O1xuXG4gICAgY29uc3QgbmVpZ2hib3JEYXRhID0gc291cmNlRGF0YSA9PT0gbm9kZURhdGEgPyB0YXJnZXREYXRhIDogc291cmNlRGF0YTtcblxuICAgIHJldHVybiB7XG4gICAgICBkb25lOiBmYWxzZSxcbiAgICAgIHZhbHVlOiB7bmVpZ2hib3I6IG5laWdoYm9yRGF0YS5rZXksIGF0dHJpYnV0ZXM6IG5laWdoYm9yRGF0YS5hdHRyaWJ1dGVzfVxuICAgIH07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEZWR1cGVkT2JqZWN0SXRlcmF0b3IodmlzaXRlZCwgbm9kZURhdGEsIG9iamVjdCkge1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KSxcbiAgICBsID0ga2V5cy5sZW5ndGg7XG5cbiAgbGV0IGkgPSAwO1xuXG4gIHJldHVybiBuZXcgSXRlcmF0b3IoZnVuY3Rpb24gbmV4dCgpIHtcbiAgICBpZiAoaSA+PSBsKSByZXR1cm4ge2RvbmU6IHRydWV9O1xuXG4gICAgbGV0IGVkZ2VEYXRhID0gb2JqZWN0W2tleXNbaSsrXV07XG5cbiAgICBpZiAoZWRnZURhdGEgaW5zdGFuY2VvZiBTZXQpIGVkZ2VEYXRhID0gZWRnZURhdGEudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xuXG4gICAgY29uc3Qgc291cmNlRGF0YSA9IGVkZ2VEYXRhLnNvdXJjZSxcbiAgICAgIHRhcmdldERhdGEgPSBlZGdlRGF0YS50YXJnZXQ7XG5cbiAgICBjb25zdCBuZWlnaGJvckRhdGEgPSBzb3VyY2VEYXRhID09PSBub2RlRGF0YSA/IHRhcmdldERhdGEgOiBzb3VyY2VEYXRhO1xuXG4gICAgaWYgKHZpc2l0ZWQuaGFzKG5laWdoYm9yRGF0YS5rZXkpKSByZXR1cm4gbmV4dCgpO1xuXG4gICAgdmlzaXRlZC5hZGQobmVpZ2hib3JEYXRhLmtleSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZG9uZTogZmFsc2UsXG4gICAgICB2YWx1ZToge25laWdoYm9yOiBuZWlnaGJvckRhdGEua2V5LCBhdHRyaWJ1dGVzOiBuZWlnaGJvckRhdGEuYXR0cmlidXRlc31cbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTmVpZ2hib3JJdGVyYXRvcih0eXBlLCBkaXJlY3Rpb24sIG5vZGVEYXRhKSB7XG4gIC8vIElmIHdlIHdhbnQgb25seSB1bmRpcmVjdGVkIG9yIGluIG9yIG91dCwgd2UgY2FuIHJvbGwgc29tZSBvcHRpbWl6YXRpb25zXG4gIGlmICh0eXBlICE9PSAnbWl4ZWQnKSB7XG4gICAgaWYgKHR5cGUgPT09ICd1bmRpcmVjdGVkJylcbiAgICAgIHJldHVybiBjcmVhdGVPYmplY3RJdGVyYXRvcihub2RlRGF0YSwgbm9kZURhdGEudW5kaXJlY3RlZCk7XG5cbiAgICBpZiAodHlwZW9mIGRpcmVjdGlvbiA9PT0gJ3N0cmluZycpXG4gICAgICByZXR1cm4gY3JlYXRlT2JqZWN0SXRlcmF0b3Iobm9kZURhdGEsIG5vZGVEYXRhW2RpcmVjdGlvbl0pO1xuICB9XG5cbiAgbGV0IGl0ZXJhdG9yID0gSXRlcmF0b3IuZW1wdHkoKTtcblxuICAvLyBFbHNlIHdlIG5lZWQgdG8ga2VlcCBhIHNldCBvZiBuZWlnaGJvcnMgbm90IHRvIHJldHVybiBkdXBsaWNhdGVzXG4gIGNvbnN0IHZpc2l0ZWQgPSBuZXcgU2V0KCk7XG5cbiAgaWYgKHR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgIGlmIChkaXJlY3Rpb24gIT09ICdvdXQnKSB7XG4gICAgICBpdGVyYXRvciA9IGNoYWluKFxuICAgICAgICBpdGVyYXRvcixcbiAgICAgICAgY3JlYXRlRGVkdXBlZE9iamVjdEl0ZXJhdG9yKHZpc2l0ZWQsIG5vZGVEYXRhLCBub2RlRGF0YS5pbilcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChkaXJlY3Rpb24gIT09ICdpbicpIHtcbiAgICAgIGl0ZXJhdG9yID0gY2hhaW4oXG4gICAgICAgIGl0ZXJhdG9yLFxuICAgICAgICBjcmVhdGVEZWR1cGVkT2JqZWN0SXRlcmF0b3IodmlzaXRlZCwgbm9kZURhdGEsIG5vZGVEYXRhLm91dClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGUgIT09ICdkaXJlY3RlZCcpIHtcbiAgICBpdGVyYXRvciA9IGNoYWluKFxuICAgICAgaXRlcmF0b3IsXG4gICAgICBjcmVhdGVEZWR1cGVkT2JqZWN0SXRlcmF0b3IodmlzaXRlZCwgbm9kZURhdGEsIG5vZGVEYXRhLnVuZGlyZWN0ZWQpXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBpdGVyYXRvcjtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBhdHRhY2hpbmcgYSBuZWlnaGJvcnMgYXJyYXkgY3JlYXRvciBtZXRob2QgdG8gdGhlIEdyYXBoIHByb3RvdHlwZS5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBDbGFzcyAgICAgICAtIFRhcmdldCBjbGFzcy5cbiAqIEBwYXJhbSB7b2JqZWN0fSAgIGRlc2NyaXB0aW9uIC0gTWV0aG9kIGRlc2NyaXB0aW9uLlxuICovXG5mdW5jdGlvbiBhdHRhY2hOZWlnaGJvckFycmF5Q3JlYXRvcihDbGFzcywgZGVzY3JpcHRpb24pIHtcbiAgY29uc3Qge25hbWUsIHR5cGUsIGRpcmVjdGlvbn0gPSBkZXNjcmlwdGlvbjtcblxuICAvKipcbiAgICogRnVuY3Rpb24gcmV0dXJuaW5nIGFuIGFycmF5IG9mIGNlcnRhaW4gbmVpZ2hib3JzLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgbm9kZSAgIC0gVGFyZ2V0IG5vZGUuXG4gICAqIEByZXR1cm4ge2FycmF5fSAtIFRoZSBuZWlnaGJvcnMgb2YgbmVpZ2hib3JzLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIG5vZGUgaXMgbm90IGZvdW5kIGluIHRoZSBncmFwaC5cbiAgICovXG4gIENsYXNzLnByb3RvdHlwZVtuYW1lXSA9IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgLy8gRWFybHkgdGVybWluYXRpb25cbiAgICBpZiAodHlwZSAhPT0gJ21peGVkJyAmJiB0aGlzLnR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gdGhpcy50eXBlKVxuICAgICAgcmV0dXJuIFtdO1xuXG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKHR5cGVvZiBub2RlRGF0YSA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHtuYW1lfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICAvLyBIZXJlLCB3ZSB3YW50IHRvIGl0ZXJhdGUgb3ZlciBhIG5vZGUncyByZWxldmFudCBuZWlnaGJvcnNcbiAgICByZXR1cm4gY3JlYXRlTmVpZ2hib3JBcnJheUZvck5vZGUoXG4gICAgICB0eXBlID09PSAnbWl4ZWQnID8gdGhpcy50eXBlIDogdHlwZSxcbiAgICAgIGRpcmVjdGlvbixcbiAgICAgIG5vZGVEYXRhXG4gICAgKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBhdHRhY2hpbmcgYSBuZWlnaGJvcnMgY2FsbGJhY2sgaXRlcmF0b3IgbWV0aG9kIHRvIHRoZSBHcmFwaCBwcm90b3R5cGUuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gQ2xhc3MgICAgICAgLSBUYXJnZXQgY2xhc3MuXG4gKiBAcGFyYW0ge29iamVjdH0gICBkZXNjcmlwdGlvbiAtIE1ldGhvZCBkZXNjcmlwdGlvbi5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoRm9yRWFjaE5laWdoYm9yKENsYXNzLCBkZXNjcmlwdGlvbikge1xuICBjb25zdCB7bmFtZSwgdHlwZSwgZGlyZWN0aW9ufSA9IGRlc2NyaXB0aW9uO1xuXG4gIGNvbnN0IGZvckVhY2hOYW1lID0gJ2ZvckVhY2gnICsgbmFtZVswXS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxLCAtMSk7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIGFsbCB0aGUgcmVsZXZhbnQgbmVpZ2hib3JzIHVzaW5nIGEgY2FsbGJhY2suXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgICBub2RlICAgICAtIFRhcmdldCBub2RlLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byB1c2UuXG4gICAqIEByZXR1cm4ge3VuZGVmaW5lZH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgYXJndW1lbnRzLlxuICAgKi9cbiAgQ2xhc3MucHJvdG90eXBlW2ZvckVhY2hOYW1lXSA9IGZ1bmN0aW9uIChub2RlLCBjYWxsYmFjaykge1xuICAgIC8vIEVhcmx5IHRlcm1pbmF0aW9uXG4gICAgaWYgKHR5cGUgIT09ICdtaXhlZCcgJiYgdGhpcy50eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09IHRoaXMudHlwZSkgcmV0dXJuO1xuXG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKHR5cGVvZiBub2RlRGF0YSA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHtmb3JFYWNoTmFtZX06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgLy8gSGVyZSwgd2Ugd2FudCB0byBpdGVyYXRlIG92ZXIgYSBub2RlJ3MgcmVsZXZhbnQgbmVpZ2hib3JzXG4gICAgZm9yRWFjaE5laWdoYm9yRm9yTm9kZShcbiAgICAgIHR5cGUgPT09ICdtaXhlZCcgPyB0aGlzLnR5cGUgOiB0eXBlLFxuICAgICAgZGlyZWN0aW9uLFxuICAgICAgbm9kZURhdGEsXG4gICAgICBjYWxsYmFja1xuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIG1hcHBpbmcgdGhlIHJlbGV2YW50IG5laWdoYm9ycyB1c2luZyBhIGNhbGxiYWNrLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgbm9kZSAgICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZXJlIGFyZSB0b28gbWFueSBhcmd1bWVudHMuXG4gICAqL1xuICBjb25zdCBtYXBOYW1lID0gJ21hcCcgKyBuYW1lWzBdLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEpO1xuXG4gIENsYXNzLnByb3RvdHlwZVttYXBOYW1lXSA9IGZ1bmN0aW9uIChub2RlLCBjYWxsYmFjaykge1xuICAgIC8vIFRPRE86IG9wdGltaXplIHdoZW4gc2l6ZSBpcyBrbm93biBiZWZvcmVoYW5kXG4gICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICB0aGlzW2ZvckVhY2hOYW1lXShub2RlLCAobiwgYSkgPT4ge1xuICAgICAgcmVzdWx0LnB1c2goY2FsbGJhY2sobiwgYSkpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gZmlsdGVyaW5nIHRoZSByZWxldmFudCBuZWlnaGJvcnMgdXNpbmcgYSBjYWxsYmFjay5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgIG5vZGUgICAgIC0gVGFyZ2V0IG5vZGUuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgYXJndW1lbnRzLlxuICAgKi9cbiAgY29uc3QgZmlsdGVyTmFtZSA9ICdmaWx0ZXInICsgbmFtZVswXS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKTtcblxuICBDbGFzcy5wcm90b3R5cGVbZmlsdGVyTmFtZV0gPSBmdW5jdGlvbiAobm9kZSwgY2FsbGJhY2spIHtcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgIHRoaXNbZm9yRWFjaE5hbWVdKG5vZGUsIChuLCBhKSA9PiB7XG4gICAgICBpZiAoY2FsbGJhY2sobiwgYSkpIHJlc3VsdC5wdXNoKG4pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gcmVkdWNpbmcgdGhlIHJlbGV2YW50IG5laWdoYm9ycyB1c2luZyBhIGNhbGxiYWNrLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgbm9kZSAgICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZXJlIGFyZSB0b28gbWFueSBhcmd1bWVudHMuXG4gICAqL1xuICBjb25zdCByZWR1Y2VOYW1lID0gJ3JlZHVjZScgKyBuYW1lWzBdLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEpO1xuXG4gIENsYXNzLnByb3RvdHlwZVtyZWR1Y2VOYW1lXSA9IGZ1bmN0aW9uIChub2RlLCBjYWxsYmFjaywgaW5pdGlhbFZhbHVlKSB7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAzKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHtyZWR1Y2VOYW1lfTogbWlzc2luZyBpbml0aWFsIHZhbHVlLiBZb3UgbXVzdCBwcm92aWRlIGl0IGJlY2F1c2UgdGhlIGNhbGxiYWNrIHRha2VzIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQgYW5kIHdlIGNhbm5vdCBpbmZlciB0aGUgaW5pdGlhbCB2YWx1ZSBmcm9tIHRoZSBmaXJzdCBpdGVyYXRpb24sIGFzIHlvdSBjb3VsZCB3aXRoIGEgc2ltcGxlIGFycmF5LmBcbiAgICAgICk7XG5cbiAgICBsZXQgYWNjdW11bGF0b3IgPSBpbml0aWFsVmFsdWU7XG5cbiAgICB0aGlzW2ZvckVhY2hOYW1lXShub2RlLCAobiwgYSkgPT4ge1xuICAgICAgYWNjdW11bGF0b3IgPSBjYWxsYmFjayhhY2N1bXVsYXRvciwgbiwgYSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gIH07XG59XG5cbi8qKlxuICogRnVuY3Rpb24gYXR0YWNoaW5nIGEgYnJlYWthYmxlIG5laWdoYm9ycyBjYWxsYmFjayBpdGVyYXRvciBtZXRob2QgdG8gdGhlXG4gKiBHcmFwaCBwcm90b3R5cGUuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gQ2xhc3MgICAgICAgLSBUYXJnZXQgY2xhc3MuXG4gKiBAcGFyYW0ge29iamVjdH0gICBkZXNjcmlwdGlvbiAtIE1ldGhvZCBkZXNjcmlwdGlvbi5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoRmluZE5laWdoYm9yKENsYXNzLCBkZXNjcmlwdGlvbikge1xuICBjb25zdCB7bmFtZSwgdHlwZSwgZGlyZWN0aW9ufSA9IGRlc2NyaXB0aW9uO1xuXG4gIGNvbnN0IGNhcGl0YWxpemVkU2luZ3VsYXIgPSBuYW1lWzBdLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEsIC0xKTtcblxuICBjb25zdCBmaW5kTmFtZSA9ICdmaW5kJyArIGNhcGl0YWxpemVkU2luZ3VsYXI7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIGFsbCB0aGUgcmVsZXZhbnQgbmVpZ2hib3JzIHVzaW5nIGEgY2FsbGJhY2suXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgICBub2RlICAgICAtIFRhcmdldCBub2RlLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byB1c2UuXG4gICAqIEByZXR1cm4ge3VuZGVmaW5lZH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgYXJndW1lbnRzLlxuICAgKi9cbiAgQ2xhc3MucHJvdG90eXBlW2ZpbmROYW1lXSA9IGZ1bmN0aW9uIChub2RlLCBjYWxsYmFjaykge1xuICAgIC8vIEVhcmx5IHRlcm1pbmF0aW9uXG4gICAgaWYgKHR5cGUgIT09ICdtaXhlZCcgJiYgdGhpcy50eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09IHRoaXMudHlwZSkgcmV0dXJuO1xuXG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKHR5cGVvZiBub2RlRGF0YSA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHtmaW5kTmFtZX06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgLy8gSGVyZSwgd2Ugd2FudCB0byBpdGVyYXRlIG92ZXIgYSBub2RlJ3MgcmVsZXZhbnQgbmVpZ2hib3JzXG4gICAgcmV0dXJuIGZpbmROZWlnaGJvcihcbiAgICAgIHR5cGUgPT09ICdtaXhlZCcgPyB0aGlzLnR5cGUgOiB0eXBlLFxuICAgICAgZGlyZWN0aW9uLFxuICAgICAgbm9kZURhdGEsXG4gICAgICBjYWxsYmFja1xuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIGFsbCB0aGUgcmVsZXZhbnQgbmVpZ2hib3JzIHRvIGZpbmQgaWYgYW55IG9mIHRoZW1cbiAgICogbWF0Y2hlcyB0aGUgZ2l2ZW4gcHJlZGljYXRlLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgbm9kZSAgICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZXJlIGFyZSB0b28gbWFueSBhcmd1bWVudHMuXG4gICAqL1xuICBjb25zdCBzb21lTmFtZSA9ICdzb21lJyArIGNhcGl0YWxpemVkU2luZ3VsYXI7XG5cbiAgQ2xhc3MucHJvdG90eXBlW3NvbWVOYW1lXSA9IGZ1bmN0aW9uIChub2RlLCBjYWxsYmFjaykge1xuICAgIGNvbnN0IGZvdW5kID0gdGhpc1tmaW5kTmFtZV0obm9kZSwgY2FsbGJhY2spO1xuXG4gICAgaWYgKGZvdW5kKSByZXR1cm4gdHJ1ZTtcblxuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgYWxsIHRoZSByZWxldmFudCBuZWlnaGJvcnMgdG8gZmluZCBpZiBhbGwgb2YgdGhlbVxuICAgKiBtYXRjaGUgdGhlIGdpdmVuIHByZWRpY2F0ZS5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgIG5vZGUgICAgIC0gVGFyZ2V0IG5vZGUuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgYXJndW1lbnRzLlxuICAgKi9cbiAgY29uc3QgZXZlcnlOYW1lID0gJ2V2ZXJ5JyArIGNhcGl0YWxpemVkU2luZ3VsYXI7XG5cbiAgQ2xhc3MucHJvdG90eXBlW2V2ZXJ5TmFtZV0gPSBmdW5jdGlvbiAobm9kZSwgY2FsbGJhY2spIHtcbiAgICBjb25zdCBmb3VuZCA9IHRoaXNbZmluZE5hbWVdKG5vZGUsIChuLCBhKSA9PiB7XG4gICAgICByZXR1cm4gIWNhbGxiYWNrKG4sIGEpO1xuICAgIH0pO1xuXG4gICAgaWYgKGZvdW5kKSByZXR1cm4gZmFsc2U7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBhdHRhY2hpbmcgYSBuZWlnaGJvcnMgY2FsbGJhY2sgaXRlcmF0b3IgbWV0aG9kIHRvIHRoZSBHcmFwaCBwcm90b3R5cGUuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gQ2xhc3MgICAgICAgLSBUYXJnZXQgY2xhc3MuXG4gKiBAcGFyYW0ge29iamVjdH0gICBkZXNjcmlwdGlvbiAtIE1ldGhvZCBkZXNjcmlwdGlvbi5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoTmVpZ2hib3JJdGVyYXRvckNyZWF0b3IoQ2xhc3MsIGRlc2NyaXB0aW9uKSB7XG4gIGNvbnN0IHtuYW1lLCB0eXBlLCBkaXJlY3Rpb259ID0gZGVzY3JpcHRpb247XG5cbiAgY29uc3QgaXRlcmF0b3JOYW1lID0gbmFtZS5zbGljZSgwLCAtMSkgKyAnRW50cmllcyc7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHJldHVybmluZyBhbiBpdGVyYXRvciBvdmVyIGFsbCB0aGUgcmVsZXZhbnQgbmVpZ2hib3JzLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgbm9kZSAgICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHJldHVybiB7SXRlcmF0b3J9XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGFyZ3VtZW50cy5cbiAgICovXG4gIENsYXNzLnByb3RvdHlwZVtpdGVyYXRvck5hbWVdID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAvLyBFYXJseSB0ZXJtaW5hdGlvblxuICAgIGlmICh0eXBlICE9PSAnbWl4ZWQnICYmIHRoaXMudHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSB0aGlzLnR5cGUpXG4gICAgICByZXR1cm4gSXRlcmF0b3IuZW1wdHkoKTtcblxuICAgIG5vZGUgPSAnJyArIG5vZGU7XG5cbiAgICBjb25zdCBub2RlRGF0YSA9IHRoaXMuX25vZGVzLmdldChub2RlKTtcblxuICAgIGlmICh0eXBlb2Ygbm9kZURhdGEgPT09ICd1bmRlZmluZWQnKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7aXRlcmF0b3JOYW1lfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICAvLyBIZXJlLCB3ZSB3YW50IHRvIGl0ZXJhdGUgb3ZlciBhIG5vZGUncyByZWxldmFudCBuZWlnaGJvcnNcbiAgICByZXR1cm4gY3JlYXRlTmVpZ2hib3JJdGVyYXRvcihcbiAgICAgIHR5cGUgPT09ICdtaXhlZCcgPyB0aGlzLnR5cGUgOiB0eXBlLFxuICAgICAgZGlyZWN0aW9uLFxuICAgICAgbm9kZURhdGFcbiAgICApO1xuICB9O1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGF0dGFjaGluZyBldmVyeSBuZWlnaGJvciBpdGVyYXRpb24gbWV0aG9kIHRvIHRoZSBHcmFwaCBjbGFzcy5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBHcmFwaCAtIEdyYXBoIGNsYXNzLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhdHRhY2hOZWlnaGJvckl0ZXJhdGlvbk1ldGhvZHMoR3JhcGgpIHtcbiAgTkVJR0hCT1JTX0lURVJBVElPTi5mb3JFYWNoKGRlc2NyaXB0aW9uID0+IHtcbiAgICBhdHRhY2hOZWlnaGJvckFycmF5Q3JlYXRvcihHcmFwaCwgZGVzY3JpcHRpb24pO1xuICAgIGF0dGFjaEZvckVhY2hOZWlnaGJvcihHcmFwaCwgZGVzY3JpcHRpb24pO1xuICAgIGF0dGFjaEZpbmROZWlnaGJvcihHcmFwaCwgZGVzY3JpcHRpb24pO1xuICAgIGF0dGFjaE5laWdoYm9ySXRlcmF0b3JDcmVhdG9yKEdyYXBoLCBkZXNjcmlwdGlvbik7XG4gIH0pO1xufVxuIiwgIi8qKlxuICogR3JhcGhvbG9neSBBZGphY2VuY3kgSXRlcmF0aW9uXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICpcbiAqIEF0dGFjaGluZyBzb21lIG1ldGhvZHMgdG8gdGhlIEdyYXBoIGNsYXNzIHRvIGJlIGFibGUgdG8gaXRlcmF0ZSBvdmVyIGFcbiAqIGdyYXBoJ3MgYWRqYWNlbmN5LlxuICovXG5cbi8qKlxuICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgYSBzaW1wbGUgZ3JhcGgncyBhZGphY2VuY3kgdXNpbmcgYSBjYWxsYmFjay5cbiAqXG4gKiBAcGFyYW0ge2Jvb2xlYW59ICBicmVha2FibGUgICAgICAgICAtIENhbiB3ZSBicmVhaz9cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gIGFzc3ltZXRyaWMgICAgICAgIC0gV2hldGhlciB0byBlbWl0IHVuZGlyZWN0ZWQgZWRnZXMgb25seSBvbmNlLlxuICogQHBhcmFtIHtib29sZWFufSAgZGlzY29ubmVjdGVkTm9kZXMgLSBXaGV0aGVyIHRvIGVtaXQgZGlzY29ubmVjdGVkIG5vZGVzLlxuICogQHBhcmFtIHtHcmFwaH0gICAgZ3JhcGggICAgICAgICAgICAgLSBUYXJnZXQgR3JhcGggaW5zdGFuY2UuXG4gKiBAcGFyYW0ge2NhbGxiYWNrfSBmdW5jdGlvbiAgICAgICAgICAtIEl0ZXJhdGlvbiBjYWxsYmFjay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvckVhY2hBZGphY2VuY3lTaW1wbGUoXG4gIGJyZWFrYWJsZSxcbiAgYXNzeW1ldHJpYyxcbiAgZGlzY29ubmVjdGVkTm9kZXMsXG4gIGdyYXBoLFxuICBjYWxsYmFja1xuKSB7XG4gIGNvbnN0IGl0ZXJhdG9yID0gZ3JhcGguX25vZGVzLnZhbHVlcygpO1xuXG4gIGNvbnN0IHR5cGUgPSBncmFwaC50eXBlO1xuXG4gIGxldCBzdGVwLCBzb3VyY2VEYXRhLCBuZWlnaGJvciwgYWRqLCBlZGdlRGF0YSwgdGFyZ2V0RGF0YSwgc2hvdWxkQnJlYWs7XG5cbiAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICBsZXQgaGFzRWRnZXMgPSBmYWxzZTtcblxuICAgIHNvdXJjZURhdGEgPSBzdGVwLnZhbHVlO1xuXG4gICAgaWYgKHR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgICAgYWRqID0gc291cmNlRGF0YS5vdXQ7XG5cbiAgICAgIGZvciAobmVpZ2hib3IgaW4gYWRqKSB7XG4gICAgICAgIGVkZ2VEYXRhID0gYWRqW25laWdoYm9yXTtcbiAgICAgICAgdGFyZ2V0RGF0YSA9IGVkZ2VEYXRhLnRhcmdldDtcblxuICAgICAgICBoYXNFZGdlcyA9IHRydWU7XG4gICAgICAgIHNob3VsZEJyZWFrID0gY2FsbGJhY2soXG4gICAgICAgICAgc291cmNlRGF0YS5rZXksXG4gICAgICAgICAgdGFyZ2V0RGF0YS5rZXksXG4gICAgICAgICAgc291cmNlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgIHRhcmdldERhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgICBlZGdlRGF0YS5rZXksXG4gICAgICAgICAgZWRnZURhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgICBlZGdlRGF0YS51bmRpcmVjdGVkXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGJyZWFrYWJsZSAmJiBzaG91bGRCcmVhaykgcmV0dXJuIGVkZ2VEYXRhO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlICE9PSAnZGlyZWN0ZWQnKSB7XG4gICAgICBhZGogPSBzb3VyY2VEYXRhLnVuZGlyZWN0ZWQ7XG5cbiAgICAgIGZvciAobmVpZ2hib3IgaW4gYWRqKSB7XG4gICAgICAgIGlmIChhc3N5bWV0cmljICYmIHNvdXJjZURhdGEua2V5ID4gbmVpZ2hib3IpIGNvbnRpbnVlO1xuXG4gICAgICAgIGVkZ2VEYXRhID0gYWRqW25laWdoYm9yXTtcbiAgICAgICAgdGFyZ2V0RGF0YSA9IGVkZ2VEYXRhLnRhcmdldDtcblxuICAgICAgICBpZiAodGFyZ2V0RGF0YS5rZXkgIT09IG5laWdoYm9yKSB0YXJnZXREYXRhID0gZWRnZURhdGEuc291cmNlO1xuXG4gICAgICAgIGhhc0VkZ2VzID0gdHJ1ZTtcbiAgICAgICAgc2hvdWxkQnJlYWsgPSBjYWxsYmFjayhcbiAgICAgICAgICBzb3VyY2VEYXRhLmtleSxcbiAgICAgICAgICB0YXJnZXREYXRhLmtleSxcbiAgICAgICAgICBzb3VyY2VEYXRhLmF0dHJpYnV0ZXMsXG4gICAgICAgICAgdGFyZ2V0RGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgIGVkZ2VEYXRhLmtleSxcbiAgICAgICAgICBlZGdlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgIGVkZ2VEYXRhLnVuZGlyZWN0ZWRcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoYnJlYWthYmxlICYmIHNob3VsZEJyZWFrKSByZXR1cm4gZWRnZURhdGE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRpc2Nvbm5lY3RlZE5vZGVzICYmICFoYXNFZGdlcykge1xuICAgICAgc2hvdWxkQnJlYWsgPSBjYWxsYmFjayhcbiAgICAgICAgc291cmNlRGF0YS5rZXksXG4gICAgICAgIG51bGwsXG4gICAgICAgIHNvdXJjZURhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbnVsbFxuICAgICAgKTtcblxuICAgICAgaWYgKGJyZWFrYWJsZSAmJiBzaG91bGRCcmVhaykgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuO1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIGEgbXVsdGkgZ3JhcGgncyBhZGphY2VuY3kgdXNpbmcgYSBjYWxsYmFjay5cbiAqXG4gKiBAcGFyYW0ge2Jvb2xlYW59ICBicmVha2FibGUgICAgICAgICAtIENhbiB3ZSBicmVhaz9cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gIGFzc3ltZXRyaWMgICAgICAgIC0gV2hldGhlciB0byBlbWl0IHVuZGlyZWN0ZWQgZWRnZXMgb25seSBvbmNlLlxuICogQHBhcmFtIHtib29sZWFufSAgZGlzY29ubmVjdGVkTm9kZXMgLSBXaGV0aGVyIHRvIGVtaXQgZGlzY29ubmVjdGVkIG5vZGVzLlxuICogQHBhcmFtIHtHcmFwaH0gICAgZ3JhcGggICAgICAgICAgICAgLSBUYXJnZXQgR3JhcGggaW5zdGFuY2UuXG4gKiBAcGFyYW0ge2NhbGxiYWNrfSBmdW5jdGlvbiAgICAgICAgICAtIEl0ZXJhdGlvbiBjYWxsYmFjay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvckVhY2hBZGphY2VuY3lNdWx0aShcbiAgYnJlYWthYmxlLFxuICBhc3N5bWV0cmljLFxuICBkaXNjb25uZWN0ZWROb2RlcyxcbiAgZ3JhcGgsXG4gIGNhbGxiYWNrXG4pIHtcbiAgY29uc3QgaXRlcmF0b3IgPSBncmFwaC5fbm9kZXMudmFsdWVzKCk7XG5cbiAgY29uc3QgdHlwZSA9IGdyYXBoLnR5cGU7XG5cbiAgbGV0IHN0ZXA7XG4gIGxldCBzb3VyY2VEYXRhO1xuICBsZXQgbmVpZ2hib3I7XG4gIGxldCBjb250YWluZXI7XG4gIGxldCBjb250YWluZXJTdGVwO1xuICBsZXQgYWRqO1xuICBsZXQgZWRnZURhdGE7XG4gIGxldCB0YXJnZXREYXRhO1xuICBsZXQgc2hvdWxkQnJlYWs7XG5cbiAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICBsZXQgaGFzRWRnZXMgPSBmYWxzZTtcblxuICAgIHNvdXJjZURhdGEgPSBzdGVwLnZhbHVlO1xuXG4gICAgaWYgKHR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgICAgYWRqID0gc291cmNlRGF0YS5vdXQ7XG5cbiAgICAgIGZvciAobmVpZ2hib3IgaW4gYWRqKSB7XG4gICAgICAgIGNvbnRhaW5lciA9IGFkaltuZWlnaGJvcl0udmFsdWVzKCk7XG5cbiAgICAgICAgd2hpbGUgKFxuICAgICAgICAgICgoY29udGFpbmVyU3RlcCA9IGNvbnRhaW5lci5uZXh0KCkpLCBjb250YWluZXJTdGVwLmRvbmUgIT09IHRydWUpXG4gICAgICAgICkge1xuICAgICAgICAgIGVkZ2VEYXRhID0gY29udGFpbmVyU3RlcC52YWx1ZTtcbiAgICAgICAgICB0YXJnZXREYXRhID0gZWRnZURhdGEudGFyZ2V0O1xuXG4gICAgICAgICAgaGFzRWRnZXMgPSB0cnVlO1xuICAgICAgICAgIHNob3VsZEJyZWFrID0gY2FsbGJhY2soXG4gICAgICAgICAgICBzb3VyY2VEYXRhLmtleSxcbiAgICAgICAgICAgIHRhcmdldERhdGEua2V5LFxuICAgICAgICAgICAgc291cmNlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgICAgdGFyZ2V0RGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgICAgZWRnZURhdGEua2V5LFxuICAgICAgICAgICAgZWRnZURhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgICAgIGVkZ2VEYXRhLnVuZGlyZWN0ZWRcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKGJyZWFrYWJsZSAmJiBzaG91bGRCcmVhaykgcmV0dXJuIGVkZ2VEYXRhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgIT09ICdkaXJlY3RlZCcpIHtcbiAgICAgIGFkaiA9IHNvdXJjZURhdGEudW5kaXJlY3RlZDtcblxuICAgICAgZm9yIChuZWlnaGJvciBpbiBhZGopIHtcbiAgICAgICAgaWYgKGFzc3ltZXRyaWMgJiYgc291cmNlRGF0YS5rZXkgPiBuZWlnaGJvcikgY29udGludWU7XG5cbiAgICAgICAgY29udGFpbmVyID0gYWRqW25laWdoYm9yXS52YWx1ZXMoKTtcblxuICAgICAgICB3aGlsZSAoXG4gICAgICAgICAgKChjb250YWluZXJTdGVwID0gY29udGFpbmVyLm5leHQoKSksIGNvbnRhaW5lclN0ZXAuZG9uZSAhPT0gdHJ1ZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgZWRnZURhdGEgPSBjb250YWluZXJTdGVwLnZhbHVlO1xuICAgICAgICAgIHRhcmdldERhdGEgPSBlZGdlRGF0YS50YXJnZXQ7XG5cbiAgICAgICAgICBpZiAodGFyZ2V0RGF0YS5rZXkgIT09IG5laWdoYm9yKSB0YXJnZXREYXRhID0gZWRnZURhdGEuc291cmNlO1xuXG4gICAgICAgICAgaGFzRWRnZXMgPSB0cnVlO1xuICAgICAgICAgIHNob3VsZEJyZWFrID0gY2FsbGJhY2soXG4gICAgICAgICAgICBzb3VyY2VEYXRhLmtleSxcbiAgICAgICAgICAgIHRhcmdldERhdGEua2V5LFxuICAgICAgICAgICAgc291cmNlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgICAgdGFyZ2V0RGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgICAgZWRnZURhdGEua2V5LFxuICAgICAgICAgICAgZWRnZURhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgICAgIGVkZ2VEYXRhLnVuZGlyZWN0ZWRcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKGJyZWFrYWJsZSAmJiBzaG91bGRCcmVhaykgcmV0dXJuIGVkZ2VEYXRhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRpc2Nvbm5lY3RlZE5vZGVzICYmICFoYXNFZGdlcykge1xuICAgICAgc2hvdWxkQnJlYWsgPSBjYWxsYmFjayhcbiAgICAgICAgc291cmNlRGF0YS5rZXksXG4gICAgICAgIG51bGwsXG4gICAgICAgIHNvdXJjZURhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbnVsbFxuICAgICAgKTtcblxuICAgICAgaWYgKGJyZWFrYWJsZSAmJiBzaG91bGRCcmVhaykgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuO1xufVxuXG4vLyBleHBvcnQgZnVuY3Rpb24gY3JlYXRlQWRqYWNlbmN5SXRlcmF0b3JTaW1wbGUoZ3JhcGgpIHtcbi8vICAgY29uc3QgaXRlcmF0b3IgPSBncmFwaC5fbm9kZXMudmFsdWVzKCk7XG5cbi8vICAgY29uc3QgdHlwZSA9IGdyYXBoLnR5cGU7XG5cbi8vICAgbGV0IHN0YXRlID0gJ291dGVyJyxcbi8vICAgICBzb3VyY2VEYXRhLFxuLy8gICAgIG5laWdoYm9ycyxcbi8vICAgICBhZGosXG4vLyAgICAgb2Zmc2V0O1xuXG4vLyAgIHJldHVybiBuZXcgSXRlcmF0b3IoZnVuY3Rpb24gbmV4dCgpIHtcbi8vICAgICBsZXQgc3RlcDtcblxuLy8gICAgIGlmIChzdGF0ZSA9PT0gJ291dGVyJykge1xuLy8gICAgICAgc3RlcCA9IGl0ZXJhdG9yLm5leHQoKTtcblxuLy8gICAgICAgaWYgKHN0ZXAuZG9uZSA9PT0gdHJ1ZSkgcmV0dXJuIHN0ZXA7XG5cbi8vICAgICAgIHNvdXJjZURhdGEgPSBzdGVwLnZhbHVlO1xuXG4vLyAgICAgICBzdGF0ZSA9ICdkaXJlY3RlZCc7XG4vLyAgICAgICByZXR1cm4gbmV4dCgpO1xuLy8gICAgIH1cblxuLy8gICAgIGlmIChzdGF0ZSA9PT0gJ2RpcmVjdGVkJykge1xuLy8gICAgICAgaWYgKHR5cGUgPT09ICd1bmRpcmVjdGVkJykge1xuLy8gICAgICAgICBzdGF0ZSA9ICd1bmRpcmVjdGVkJztcbi8vICAgICAgICAgcmV0dXJuIG5leHQoKTtcbi8vICAgICAgIH1cblxuLy8gICAgICAgYWRqID0gc291cmNlRGF0YS5vdXQ7XG4vLyAgICAgICBuZWlnaGJvcnMgPSBPYmplY3Qua2V5cyhzb3VyY2VEYXRhLm91dCk7XG4vLyAgICAgICBvZmZzZXQgPSAwO1xuLy8gICAgICAgc3RhdGUgPSAnaW5uZXItZGlyZWN0ZWQnO1xuXG4vLyAgICAgICByZXR1cm4gbmV4dCgpO1xuLy8gICAgIH1cblxuLy8gICAgIGlmIChzdGF0ZSA9PT0gJ3VuZGlyZWN0ZWQnKSB7XG4vLyAgICAgICBpZiAodHlwZSA9PT0gJ2RpcmVjdGVkJykge1xuLy8gICAgICAgICBzdGF0ZSA9ICdvdXRlcic7XG4vLyAgICAgICAgIHJldHVybiBuZXh0KCk7XG4vLyAgICAgICB9XG5cbi8vICAgICAgIGFkaiA9IHNvdXJjZURhdGEudW5kaXJlY3RlZDtcbi8vICAgICAgIG5laWdoYm9ycyA9IE9iamVjdC5rZXlzKHNvdXJjZURhdGEudW5kaXJlY3RlZCk7XG4vLyAgICAgICBvZmZzZXQgPSAwO1xuLy8gICAgICAgc3RhdGUgPSAnaW5uZXItdW5kaXJlY3RlZCc7XG4vLyAgICAgfVxuXG4vLyAgICAgLy8gSW5uZXJcbi8vICAgICBpZiAob2Zmc2V0ID49IG5laWdoYm9ycy5sZW5ndGgpIHtcbi8vICAgICAgIGlmIChzdGF0ZSA9PT0gJ2lubmVyLXVuZGlyZWN0ZWQnKSBzdGF0ZSA9ICdvdXRlcic7XG4vLyAgICAgICBlbHNlIHN0YXRlID0gJ3VuZGlyZWN0ZWQnO1xuXG4vLyAgICAgICByZXR1cm4gbmV4dCgpO1xuLy8gICAgIH1cblxuLy8gICAgIGNvbnN0IG5laWdoYm9yID0gbmVpZ2hib3JzW29mZnNldCsrXTtcbi8vICAgICBjb25zdCBlZGdlRGF0YSA9IGFkaltuZWlnaGJvcl07XG4vLyAgICAgbGV0IHRhcmdldERhdGEgPSBlZGdlRGF0YS50YXJnZXQ7XG5cbi8vICAgICBpZiAoc3RhdGUgPT09ICdpbm5lci11bmRpcmVjdGVkJyAmJiB0YXJnZXREYXRhLmtleSA9PT0gc291cmNlRGF0YS5rZXkpXG4vLyAgICAgICB0YXJnZXREYXRhID0gZWRnZURhdGEuc291cmNlO1xuXG4vLyAgICAgcmV0dXJuIHtcbi8vICAgICAgIGRvbmU6IGZhbHNlLFxuLy8gICAgICAgdmFsdWU6IHtcbi8vICAgICAgICAgc291cmNlOiBzb3VyY2VEYXRhLmtleSxcbi8vICAgICAgICAgdGFyZ2V0OiB0YXJnZXREYXRhLmtleSxcbi8vICAgICAgICAgc291cmNlQXR0cmlidXRlczogc291cmNlRGF0YS5hdHRyaWJ1dGVzLFxuLy8gICAgICAgICB0YXJnZXRBdHRyaWJ1dGVzOiB0YXJnZXREYXRhLmF0dHJpYnV0ZXMsXG4vLyAgICAgICAgIGVkZ2VLZXk6IGVkZ2VEYXRhLmtleSxcbi8vICAgICAgICAgZWRnZUF0dHJpYnV0ZXM6IGVkZ2VEYXRhLmF0dHJpYnV0ZXMsXG4vLyAgICAgICAgIHVuZGlyZWN0ZWQ6IGVkZ2VEYXRhLnVuZGlyZWN0ZWRcbi8vICAgICAgIH1cbi8vICAgICB9O1xuLy8gICB9KTtcbi8vIH1cblxuLy8gZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFkamFjZW5jeUl0ZXJhdG9yTXVsdGkoZ3JhcGgpIHtcbi8vICAgY29uc3QgaXRlcmF0b3IgPSBncmFwaC5fbm9kZXMudmFsdWVzKCk7XG5cbi8vICAgY29uc3QgdHlwZSA9IGdyYXBoLnR5cGU7XG5cbi8vICAgbGV0IHN0YXRlID0gJ291dGVyJyxcbi8vICAgICBzb3VyY2VEYXRhLFxuLy8gICAgIG5laWdoYm9ycyxcbi8vICAgICBjb250YWluZXIgPSBudWxsLFxuLy8gICAgIGFkaixcbi8vICAgICBvZmZzZXQ7XG5cbi8vICAgcmV0dXJuIG5ldyBJdGVyYXRvcihmdW5jdGlvbiBuZXh0KCkge1xuLy8gICAgIGxldCBzdGVwO1xuXG4vLyAgICAgaWYgKHN0YXRlID09PSAnb3V0ZXInKSB7XG4vLyAgICAgICBzdGVwID0gaXRlcmF0b3IubmV4dCgpO1xuXG4vLyAgICAgICBpZiAoc3RlcC5kb25lID09PSB0cnVlKSByZXR1cm4gc3RlcDtcblxuLy8gICAgICAgc291cmNlRGF0YSA9IHN0ZXAudmFsdWU7XG5cbi8vICAgICAgIHN0YXRlID0gJ2RpcmVjdGVkJztcbi8vICAgICAgIHJldHVybiBuZXh0KCk7XG4vLyAgICAgfVxuXG4vLyAgICAgaWYgKHN0YXRlID09PSAnZGlyZWN0ZWQnKSB7XG4vLyAgICAgICBpZiAodHlwZSA9PT0gJ3VuZGlyZWN0ZWQnKSB7XG4vLyAgICAgICAgIHN0YXRlID0gJ3VuZGlyZWN0ZWQnO1xuLy8gICAgICAgICByZXR1cm4gbmV4dCgpO1xuLy8gICAgICAgfVxuXG4vLyAgICAgICBhZGogPSBzb3VyY2VEYXRhLm91dDtcbi8vICAgICAgIG5laWdoYm9ycyA9IE9iamVjdC5rZXlzKHNvdXJjZURhdGEub3V0KTtcbi8vICAgICAgIG9mZnNldCA9IDA7XG4vLyAgICAgICBzdGF0ZSA9ICdpbm5lci1kaXJlY3RlZCc7XG5cbi8vICAgICAgIHJldHVybiBuZXh0KCk7XG4vLyAgICAgfVxuXG4vLyAgICAgaWYgKHN0YXRlID09PSAndW5kaXJlY3RlZCcpIHtcbi8vICAgICAgIGlmICh0eXBlID09PSAnZGlyZWN0ZWQnKSB7XG4vLyAgICAgICAgIHN0YXRlID0gJ291dGVyJztcbi8vICAgICAgICAgcmV0dXJuIG5leHQoKTtcbi8vICAgICAgIH1cblxuLy8gICAgICAgYWRqID0gc291cmNlRGF0YS51bmRpcmVjdGVkO1xuLy8gICAgICAgbmVpZ2hib3JzID0gT2JqZWN0LmtleXMoc291cmNlRGF0YS51bmRpcmVjdGVkKTtcbi8vICAgICAgIG9mZnNldCA9IDA7XG4vLyAgICAgICBzdGF0ZSA9ICdpbm5lci11bmRpcmVjdGVkJztcbi8vICAgICB9XG5cbi8vICAgICAvLyBJbm5lclxuLy8gICAgIGlmICghY29udGFpbmVyICYmIG9mZnNldCA+PSBuZWlnaGJvcnMubGVuZ3RoKSB7XG4vLyAgICAgICBpZiAoc3RhdGUgPT09ICdpbm5lci11bmRpcmVjdGVkJykgc3RhdGUgPSAnb3V0ZXInO1xuLy8gICAgICAgZWxzZSBzdGF0ZSA9ICd1bmRpcmVjdGVkJztcblxuLy8gICAgICAgcmV0dXJuIG5leHQoKTtcbi8vICAgICB9XG5cbi8vICAgICBpZiAoIWNvbnRhaW5lcikge1xuLy8gICAgICAgY29uc3QgbmVpZ2hib3IgPSBuZWlnaGJvcnNbb2Zmc2V0KytdO1xuLy8gICAgICAgY29udGFpbmVyID0gYWRqW25laWdoYm9yXS52YWx1ZXMoKTtcbi8vICAgICAgIHJldHVybiBuZXh0KCk7XG4vLyAgICAgfVxuXG4vLyAgICAgc3RlcCA9IGNvbnRhaW5lci5uZXh0KCk7XG5cbi8vICAgICBpZiAoc3RlcC5kb25lKSB7XG4vLyAgICAgICBjb250YWluZXIgPSBudWxsO1xuLy8gICAgICAgcmV0dXJuIG5leHQoKTtcbi8vICAgICB9XG5cbi8vICAgICBjb25zdCBlZGdlRGF0YSA9IHN0ZXAudmFsdWU7XG4vLyAgICAgbGV0IHRhcmdldERhdGEgPSBlZGdlRGF0YS50YXJnZXQ7XG5cbi8vICAgICBpZiAoc3RhdGUgPT09ICdpbm5lci11bmRpcmVjdGVkJyAmJiB0YXJnZXREYXRhLmtleSA9PT0gc291cmNlRGF0YS5rZXkpXG4vLyAgICAgICB0YXJnZXREYXRhID0gZWRnZURhdGEuc291cmNlO1xuXG4vLyAgICAgcmV0dXJuIHtcbi8vICAgICAgIGRvbmU6IGZhbHNlLFxuLy8gICAgICAgdmFsdWU6IHtcbi8vICAgICAgICAgc291cmNlOiBzb3VyY2VEYXRhLmtleSxcbi8vICAgICAgICAgdGFyZ2V0OiB0YXJnZXREYXRhLmtleSxcbi8vICAgICAgICAgc291cmNlQXR0cmlidXRlczogc291cmNlRGF0YS5hdHRyaWJ1dGVzLFxuLy8gICAgICAgICB0YXJnZXRBdHRyaWJ1dGVzOiB0YXJnZXREYXRhLmF0dHJpYnV0ZXMsXG4vLyAgICAgICAgIGVkZ2U6IGVkZ2VEYXRhLmtleSxcbi8vICAgICAgICAgZWRnZUF0dHJpYnV0ZXM6IGVkZ2VEYXRhLmF0dHJpYnV0ZXMsXG4vLyAgICAgICAgIHVuZGlyZWN0ZWQ6IGVkZ2VEYXRhLnVuZGlyZWN0ZWRcbi8vICAgICAgIH1cbi8vICAgICB9O1xuLy8gICB9KTtcbi8vIH1cbiIsICIvKipcbiAqIEdyYXBob2xvZ3kgU2VyaWFsaXphdGlvbiBVdGlsaXRpZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKlxuICogQ29sbGVjdGlvbiBvZiBmdW5jdGlvbnMgdXNlZCB0byB2YWxpZGF0ZSBpbXBvcnQtZXhwb3J0IGZvcm1hdHMgJiB0byBvdXB1dFxuICogdGhlbSBmcm9tIGludGVybmFsIGdyYXBoIGRhdGEuXG4gKlxuICogU2VyaWFsaXplZCBOb2RlOlxuICoge2tleSwgP2F0dHJpYnV0ZXN9XG4gKlxuICogU2VyaWFsaXplZCBFZGdlOlxuICoge2tleT8sIHNvdXJjZSwgdGFyZ2V0LCBhdHRyaWJ1dGVzPywgdW5kaXJlY3RlZD99XG4gKlxuICogU2VyaWFsaXplZCBHcmFwaDpcbiAqIHtub2Rlc1tdLCBlZGdlcz9bXX1cbiAqL1xuaW1wb3J0IHthc3NpZ24sIGlzUGxhaW5PYmplY3QsIGlzRW1wdHl9IGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIEZvcm1hdHMgaW50ZXJuYWwgbm9kZSBkYXRhIGludG8gYSBzZXJpYWxpemVkIG5vZGUuXG4gKlxuICogQHBhcmFtICB7YW55fSAgICBrZXkgIC0gVGhlIG5vZGUncyBrZXkuXG4gKiBAcGFyYW0gIHtvYmplY3R9IGRhdGEgLSBJbnRlcm5hbCBub2RlJ3MgZGF0YS5cbiAqIEByZXR1cm4ge2FycmF5fSAgICAgICAtIFRoZSBzZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVOb2RlKGtleSwgZGF0YSkge1xuICBjb25zdCBzZXJpYWxpemVkID0ge2tleX07XG5cbiAgaWYgKCFpc0VtcHR5KGRhdGEuYXR0cmlidXRlcykpXG4gICAgc2VyaWFsaXplZC5hdHRyaWJ1dGVzID0gYXNzaWduKHt9LCBkYXRhLmF0dHJpYnV0ZXMpO1xuXG4gIHJldHVybiBzZXJpYWxpemVkO1xufVxuXG4vKipcbiAqIEZvcm1hdHMgaW50ZXJuYWwgZWRnZSBkYXRhIGludG8gYSBzZXJpYWxpemVkIGVkZ2UuXG4gKlxuICogQHBhcmFtICB7YW55fSAgICBrZXkgIC0gVGhlIGVkZ2UncyBrZXkuXG4gKiBAcGFyYW0gIHtvYmplY3R9IGRhdGEgLSBJbnRlcm5hbCBlZGdlJ3MgZGF0YS5cbiAqIEByZXR1cm4ge2FycmF5fSAgICAgICAtIFRoZSBzZXJpYWxpemVkIGVkZ2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVFZGdlKGtleSwgZGF0YSkge1xuICBjb25zdCBzZXJpYWxpemVkID0ge1xuICAgIGtleSxcbiAgICBzb3VyY2U6IGRhdGEuc291cmNlLmtleSxcbiAgICB0YXJnZXQ6IGRhdGEudGFyZ2V0LmtleVxuICB9O1xuXG4gIGlmICghaXNFbXB0eShkYXRhLmF0dHJpYnV0ZXMpKVxuICAgIHNlcmlhbGl6ZWQuYXR0cmlidXRlcyA9IGFzc2lnbih7fSwgZGF0YS5hdHRyaWJ1dGVzKTtcblxuICBpZiAoZGF0YS51bmRpcmVjdGVkKSBzZXJpYWxpemVkLnVuZGlyZWN0ZWQgPSB0cnVlO1xuXG4gIHJldHVybiBzZXJpYWxpemVkO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIHNlcmlhbGl6ZWQgbm9kZS5cbiAqXG4gKiBAcGFyYW0gIHttaXhlZH0gdmFsdWUgLSBUYXJnZXQgdmFsdWUuXG4gKiBAcmV0dXJuIHtzdHJpbmd8bnVsbH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU2VyaWFsaXplZE5vZGUodmFsdWUpIHtcbiAgaWYgKCFpc1BsYWluT2JqZWN0KHZhbHVlKSkgcmV0dXJuICdub3Qtb2JqZWN0JztcblxuICBpZiAoISgna2V5JyBpbiB2YWx1ZSkpIHJldHVybiAnbm8ta2V5JztcblxuICBpZiAoXG4gICAgJ2F0dHJpYnV0ZXMnIGluIHZhbHVlICYmXG4gICAgKCFpc1BsYWluT2JqZWN0KHZhbHVlLmF0dHJpYnV0ZXMpIHx8IHZhbHVlLmF0dHJpYnV0ZXMgPT09IG51bGwpXG4gIClcbiAgICByZXR1cm4gJ2ludmFsaWQtYXR0cmlidXRlcyc7XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHZhbHVlIGlzIGEgc2VyaWFsaXplZCBlZGdlLlxuICpcbiAqIEBwYXJhbSAge21peGVkfSB2YWx1ZSAtIFRhcmdldCB2YWx1ZS5cbiAqIEByZXR1cm4ge3N0cmluZ3xudWxsfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTZXJpYWxpemVkRWRnZSh2YWx1ZSkge1xuICBpZiAoIWlzUGxhaW5PYmplY3QodmFsdWUpKSByZXR1cm4gJ25vdC1vYmplY3QnO1xuXG4gIGlmICghKCdzb3VyY2UnIGluIHZhbHVlKSkgcmV0dXJuICduby1zb3VyY2UnO1xuXG4gIGlmICghKCd0YXJnZXQnIGluIHZhbHVlKSkgcmV0dXJuICduby10YXJnZXQnO1xuXG4gIGlmIChcbiAgICAnYXR0cmlidXRlcycgaW4gdmFsdWUgJiZcbiAgICAoIWlzUGxhaW5PYmplY3QodmFsdWUuYXR0cmlidXRlcykgfHwgdmFsdWUuYXR0cmlidXRlcyA9PT0gbnVsbClcbiAgKVxuICAgIHJldHVybiAnaW52YWxpZC1hdHRyaWJ1dGVzJztcblxuICBpZiAoJ3VuZGlyZWN0ZWQnIGluIHZhbHVlICYmIHR5cGVvZiB2YWx1ZS51bmRpcmVjdGVkICE9PSAnYm9vbGVhbicpXG4gICAgcmV0dXJuICdpbnZhbGlkLXVuZGlyZWN0ZWQnO1xuXG4gIHJldHVybiBudWxsO1xufVxuIiwgIi8qIGVzbGludCBuby1uZXN0ZWQtdGVybmFyeTogMCAqL1xuLyoqXG4gKiBHcmFwaG9sb2d5IFJlZmVyZW5jZSBJbXBsZW1lbnRhdGlvblxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKlxuICogUmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBncmFwaG9sb2d5IHNwZWNzLlxuICovXG5pbXBvcnQge0V2ZW50RW1pdHRlcn0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCBJdGVyYXRvciBmcm9tICdvYmxpdGVyYXRvci9pdGVyYXRvcic7XG5pbXBvcnQgdGFrZSBmcm9tICdvYmxpdGVyYXRvci90YWtlJztcblxuaW1wb3J0IHtcbiAgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IsXG4gIE5vdEZvdW5kR3JhcGhFcnJvcixcbiAgVXNhZ2VHcmFwaEVycm9yXG59IGZyb20gJy4vZXJyb3JzJztcblxuaW1wb3J0IHtcbiAgTWl4ZWROb2RlRGF0YSxcbiAgRGlyZWN0ZWROb2RlRGF0YSxcbiAgVW5kaXJlY3RlZE5vZGVEYXRhLFxuICBFZGdlRGF0YVxufSBmcm9tICcuL2RhdGEnO1xuXG5pbXBvcnQge1xuICB1cGRhdGVTdHJ1Y3R1cmVJbmRleCxcbiAgY2xlYXJFZGdlRnJvbVN0cnVjdHVyZUluZGV4LFxuICBjbGVhclN0cnVjdHVyZUluZGV4LFxuICB1cGdyYWRlU3RydWN0dXJlSW5kZXhUb011bHRpXG59IGZyb20gJy4vaW5kaWNlcyc7XG5cbmltcG9ydCBhdHRhY2hOb2RlQXR0cmlidXRlc01ldGhvZHMgZnJvbSAnLi9hdHRyaWJ1dGVzL25vZGVzJztcbmltcG9ydCBhdHRhY2hFZGdlQXR0cmlidXRlc01ldGhvZHMgZnJvbSAnLi9hdHRyaWJ1dGVzL2VkZ2VzJztcbmltcG9ydCBhdHRhY2hFZGdlSXRlcmF0aW9uTWV0aG9kcyBmcm9tICcuL2l0ZXJhdGlvbi9lZGdlcyc7XG5pbXBvcnQgYXR0YWNoTmVpZ2hib3JJdGVyYXRpb25NZXRob2RzIGZyb20gJy4vaXRlcmF0aW9uL25laWdoYm9ycyc7XG5pbXBvcnQge1xuICBmb3JFYWNoQWRqYWNlbmN5U2ltcGxlLFxuICBmb3JFYWNoQWRqYWNlbmN5TXVsdGlcbn0gZnJvbSAnLi9pdGVyYXRpb24vYWRqYWNlbmN5JztcblxuaW1wb3J0IHtcbiAgc2VyaWFsaXplTm9kZSxcbiAgc2VyaWFsaXplRWRnZSxcbiAgdmFsaWRhdGVTZXJpYWxpemVkTm9kZSxcbiAgdmFsaWRhdGVTZXJpYWxpemVkRWRnZVxufSBmcm9tICcuL3NlcmlhbGl6YXRpb24nO1xuXG5pbXBvcnQge1xuICBhc3NpZ24sXG4gIGdldE1hdGNoaW5nRWRnZSxcbiAgaXNHcmFwaCxcbiAgaXNQbGFpbk9iamVjdCxcbiAgcHJpdmF0ZVByb3BlcnR5LFxuICByZWFkT25seVByb3BlcnR5LFxuICBpbmNyZW1lbnRhbElkU3RhcnRpbmdGcm9tUmFuZG9tQnl0ZSxcbiAgdmFsaWRhdGVIaW50c1xufSBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBDb25zdGFudHMuXG4gKi9cbmNvbnN0IElOU1RBTkNFX0lEID0gaW5jcmVtZW50YWxJZFN0YXJ0aW5nRnJvbVJhbmRvbUJ5dGUoKTtcblxuLyoqXG4gKiBFbnVtcy5cbiAqL1xuY29uc3QgVFlQRVMgPSBuZXcgU2V0KFsnZGlyZWN0ZWQnLCAndW5kaXJlY3RlZCcsICdtaXhlZCddKTtcblxuY29uc3QgRU1JVFRFUl9QUk9QUyA9IG5ldyBTZXQoW1xuICAnZG9tYWluJyxcbiAgJ19ldmVudHMnLFxuICAnX2V2ZW50c0NvdW50JyxcbiAgJ19tYXhMaXN0ZW5lcnMnXG5dKTtcblxuY29uc3QgRURHRV9BRERfTUVUSE9EUyA9IFtcbiAge1xuICAgIG5hbWU6IHZlcmIgPT4gYCR7dmVyYn1FZGdlYCxcbiAgICBnZW5lcmF0ZUtleTogdHJ1ZVxuICB9LFxuICB7XG4gICAgbmFtZTogdmVyYiA9PiBgJHt2ZXJifURpcmVjdGVkRWRnZWAsXG4gICAgZ2VuZXJhdGVLZXk6IHRydWUsXG4gICAgdHlwZTogJ2RpcmVjdGVkJ1xuICB9LFxuICB7XG4gICAgbmFtZTogdmVyYiA9PiBgJHt2ZXJifVVuZGlyZWN0ZWRFZGdlYCxcbiAgICBnZW5lcmF0ZUtleTogdHJ1ZSxcbiAgICB0eXBlOiAndW5kaXJlY3RlZCdcbiAgfSxcbiAge1xuICAgIG5hbWU6IHZlcmIgPT4gYCR7dmVyYn1FZGdlV2l0aEtleWBcbiAgfSxcbiAge1xuICAgIG5hbWU6IHZlcmIgPT4gYCR7dmVyYn1EaXJlY3RlZEVkZ2VXaXRoS2V5YCxcbiAgICB0eXBlOiAnZGlyZWN0ZWQnXG4gIH0sXG4gIHtcbiAgICBuYW1lOiB2ZXJiID0+IGAke3ZlcmJ9VW5kaXJlY3RlZEVkZ2VXaXRoS2V5YCxcbiAgICB0eXBlOiAndW5kaXJlY3RlZCdcbiAgfVxuXTtcblxuLyoqXG4gKiBEZWZhdWx0IG9wdGlvbnMuXG4gKi9cbmNvbnN0IERFRkFVTFRTID0ge1xuICBhbGxvd1NlbGZMb29wczogdHJ1ZSxcbiAgbXVsdGk6IGZhbHNlLFxuICB0eXBlOiAnbWl4ZWQnXG59O1xuXG4vKipcbiAqIEFic3RyYWN0IGZ1bmN0aW9ucyB1c2VkIGJ5IHRoZSBHcmFwaCBjbGFzcyBmb3IgdmFyaW91cyBtZXRob2RzLlxuICovXG5cbi8qKlxuICogSW50ZXJuYWwgbWV0aG9kIHVzZWQgdG8gYWRkIGEgbm9kZSB0byB0aGUgZ2l2ZW4gZ3JhcGhcbiAqXG4gKiBAcGFyYW0gIHtHcmFwaH0gICBncmFwaCAgICAgICAgICAgLSBUYXJnZXQgZ3JhcGguXG4gKiBAcGFyYW0gIHthbnl9ICAgICBub2RlICAgICAgICAgICAgLSBUaGUgbm9kZSdzIGtleS5cbiAqIEBwYXJhbSAge29iamVjdH0gIFthdHRyaWJ1dGVzXSAgICAtIE9wdGlvbmFsIGF0dHJpYnV0ZXMuXG4gKiBAcmV0dXJuIHtOb2RlRGF0YX0gICAgICAgICAgICAgICAgLSBDcmVhdGVkIG5vZGUgZGF0YS5cbiAqL1xuZnVuY3Rpb24gYWRkTm9kZShncmFwaCwgbm9kZSwgYXR0cmlidXRlcykge1xuICBpZiAoYXR0cmlidXRlcyAmJiAhaXNQbGFpbk9iamVjdChhdHRyaWJ1dGVzKSlcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICBgR3JhcGguYWRkTm9kZTogaW52YWxpZCBhdHRyaWJ1dGVzLiBFeHBlY3RpbmcgYW4gb2JqZWN0IGJ1dCBnb3QgXCIke2F0dHJpYnV0ZXN9XCJgXG4gICAgKTtcblxuICAvLyBTdHJpbmcgY29lcmNpb25cbiAgbm9kZSA9ICcnICsgbm9kZTtcbiAgYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXMgfHwge307XG5cbiAgaWYgKGdyYXBoLl9ub2Rlcy5oYXMobm9kZSkpXG4gICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgIGBHcmFwaC5hZGROb2RlOiB0aGUgXCIke25vZGV9XCIgbm9kZSBhbHJlYWR5IGV4aXN0IGluIHRoZSBncmFwaC5gXG4gICAgKTtcblxuICBjb25zdCBkYXRhID0gbmV3IGdyYXBoLk5vZGVEYXRhQ2xhc3Mobm9kZSwgYXR0cmlidXRlcyk7XG5cbiAgLy8gQWRkaW5nIHRoZSBub2RlIHRvIGludGVybmFsIHJlZ2lzdGVyXG4gIGdyYXBoLl9ub2Rlcy5zZXQobm9kZSwgZGF0YSk7XG5cbiAgLy8gRW1pdHRpbmdcbiAgZ3JhcGguZW1pdCgnbm9kZUFkZGVkJywge1xuICAgIGtleTogbm9kZSxcbiAgICBhdHRyaWJ1dGVzXG4gIH0pO1xuXG4gIHJldHVybiBkYXRhO1xufVxuXG4vKipcbiAqIFNhbWUgYXMgdGhlIGFib3ZlIGJ1dCB3aXRob3V0IHNhbml0eSBjaGVja3MgYmVjYXVzZSB3ZSBjYWxsIHRoaXMgaW4gY29udGV4dHNcbiAqIHdoZXJlIG5lY2Vzc2FyeSBjaGVja3Mgd2VyZSBhbHJlYWR5IGRvbmUuXG4gKi9cbmZ1bmN0aW9uIHVuc2FmZUFkZE5vZGUoZ3JhcGgsIG5vZGUsIGF0dHJpYnV0ZXMpIHtcbiAgY29uc3QgZGF0YSA9IG5ldyBncmFwaC5Ob2RlRGF0YUNsYXNzKG5vZGUsIGF0dHJpYnV0ZXMpO1xuXG4gIGdyYXBoLl9ub2Rlcy5zZXQobm9kZSwgZGF0YSk7XG5cbiAgZ3JhcGguZW1pdCgnbm9kZUFkZGVkJywge1xuICAgIGtleTogbm9kZSxcbiAgICBhdHRyaWJ1dGVzXG4gIH0pO1xuXG4gIHJldHVybiBkYXRhO1xufVxuXG4vKipcbiAqIEludGVybmFsIG1ldGhvZCB1c2VkIHRvIGFkZCBhbiBhcmJpdHJhcnkgZWRnZSB0byB0aGUgZ2l2ZW4gZ3JhcGguXG4gKlxuICogQHBhcmFtICB7R3JhcGh9ICAgZ3JhcGggICAgICAgICAgIC0gVGFyZ2V0IGdyYXBoLlxuICogQHBhcmFtICB7c3RyaW5nfSAgbmFtZSAgICAgICAgICAgIC0gTmFtZSBvZiB0aGUgY2hpbGQgbWV0aG9kIGZvciBlcnJvcnMuXG4gKiBAcGFyYW0gIHtib29sZWFufSBtdXN0R2VuZXJhdGVLZXkgLSBTaG91bGQgdGhlIGdyYXBoIGdlbmVyYXRlIGFuIGlkP1xuICogQHBhcmFtICB7Ym9vbGVhbn0gdW5kaXJlY3RlZCAgICAgIC0gV2hldGhlciB0aGUgZWRnZSBpcyB1bmRpcmVjdGVkLlxuICogQHBhcmFtICB7YW55fSAgICAgZWRnZSAgICAgICAgICAgIC0gVGhlIGVkZ2UncyBrZXkuXG4gKiBAcGFyYW0gIHthbnl9ICAgICBzb3VyY2UgICAgICAgICAgLSBUaGUgc291cmNlIG5vZGUuXG4gKiBAcGFyYW0gIHthbnl9ICAgICB0YXJnZXQgICAgICAgICAgLSBUaGUgdGFyZ2V0IG5vZGUuXG4gKiBAcGFyYW0gIHtvYmplY3R9ICBbYXR0cmlidXRlc10gICAgLSBPcHRpb25hbCBhdHRyaWJ1dGVzLlxuICogQHJldHVybiB7YW55fSAgICAgICAgICAgICAgICAgICAgIC0gVGhlIGVkZ2UuXG4gKlxuICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgZ3JhcGggaXMgb2YgdGhlIHdyb25nIHR5cGUuXG4gKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBnaXZlbiBhdHRyaWJ1dGVzIGFyZSBub3QgYW4gb2JqZWN0LlxuICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiBzb3VyY2Ugb3IgdGFyZ2V0IGRvZXNuJ3QgZXhpc3QuXG4gKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBlZGdlIGFscmVhZHkgZXhpc3QuXG4gKi9cbmZ1bmN0aW9uIGFkZEVkZ2UoXG4gIGdyYXBoLFxuICBuYW1lLFxuICBtdXN0R2VuZXJhdGVLZXksXG4gIHVuZGlyZWN0ZWQsXG4gIGVkZ2UsXG4gIHNvdXJjZSxcbiAgdGFyZ2V0LFxuICBhdHRyaWJ1dGVzXG4pIHtcbiAgLy8gQ2hlY2tpbmcgdmFsaWRpdHkgb2Ygb3BlcmF0aW9uXG4gIGlmICghdW5kaXJlY3RlZCAmJiBncmFwaC50eXBlID09PSAndW5kaXJlY3RlZCcpXG4gICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgIGBHcmFwaC4ke25hbWV9OiB5b3UgY2Fubm90IGFkZCBhIGRpcmVjdGVkIGVkZ2UgdG8gYW4gdW5kaXJlY3RlZCBncmFwaC4gVXNlIHRoZSAjLmFkZEVkZ2Ugb3IgIy5hZGRVbmRpcmVjdGVkRWRnZSBpbnN0ZWFkLmBcbiAgICApO1xuXG4gIGlmICh1bmRpcmVjdGVkICYmIGdyYXBoLnR5cGUgPT09ICdkaXJlY3RlZCcpXG4gICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgIGBHcmFwaC4ke25hbWV9OiB5b3UgY2Fubm90IGFkZCBhbiB1bmRpcmVjdGVkIGVkZ2UgdG8gYSBkaXJlY3RlZCBncmFwaC4gVXNlIHRoZSAjLmFkZEVkZ2Ugb3IgIy5hZGREaXJlY3RlZEVkZ2UgaW5zdGVhZC5gXG4gICAgKTtcblxuICBpZiAoYXR0cmlidXRlcyAmJiAhaXNQbGFpbk9iamVjdChhdHRyaWJ1dGVzKSlcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICBgR3JhcGguJHtuYW1lfTogaW52YWxpZCBhdHRyaWJ1dGVzLiBFeHBlY3RpbmcgYW4gb2JqZWN0IGJ1dCBnb3QgXCIke2F0dHJpYnV0ZXN9XCJgXG4gICAgKTtcblxuICAvLyBDb2VyY2lvbiBvZiBzb3VyY2UgJiB0YXJnZXQ6XG4gIHNvdXJjZSA9ICcnICsgc291cmNlO1xuICB0YXJnZXQgPSAnJyArIHRhcmdldDtcbiAgYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXMgfHwge307XG5cbiAgaWYgKCFncmFwaC5hbGxvd1NlbGZMb29wcyAmJiBzb3VyY2UgPT09IHRhcmdldClcbiAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLiR7bmFtZX06IHNvdXJjZSAmIHRhcmdldCBhcmUgdGhlIHNhbWUgKFwiJHtzb3VyY2V9XCIpLCB0aHVzIGNyZWF0aW5nIGEgbG9vcCBleHBsaWNpdGx5IGZvcmJpZGRlbiBieSB0aGlzIGdyYXBoICdhbGxvd1NlbGZMb29wcycgb3B0aW9uIHNldCB0byBmYWxzZS5gXG4gICAgKTtcblxuICBjb25zdCBzb3VyY2VEYXRhID0gZ3JhcGguX25vZGVzLmdldChzb3VyY2UpLFxuICAgIHRhcmdldERhdGEgPSBncmFwaC5fbm9kZXMuZ2V0KHRhcmdldCk7XG5cbiAgaWYgKCFzb3VyY2VEYXRhKVxuICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICBgR3JhcGguJHtuYW1lfTogc291cmNlIG5vZGUgXCIke3NvdXJjZX1cIiBub3QgZm91bmQuYFxuICAgICk7XG5cbiAgaWYgKCF0YXJnZXREYXRhKVxuICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICBgR3JhcGguJHtuYW1lfTogdGFyZ2V0IG5vZGUgXCIke3RhcmdldH1cIiBub3QgZm91bmQuYFxuICAgICk7XG5cbiAgLy8gTXVzdCB0aGUgZ3JhcGggZ2VuZXJhdGUgYW4gaWQgZm9yIHRoaXMgZWRnZT9cbiAgY29uc3QgZXZlbnREYXRhID0ge1xuICAgIGtleTogbnVsbCxcbiAgICB1bmRpcmVjdGVkLFxuICAgIHNvdXJjZSxcbiAgICB0YXJnZXQsXG4gICAgYXR0cmlidXRlc1xuICB9O1xuXG4gIGlmIChtdXN0R2VuZXJhdGVLZXkpIHtcbiAgICAvLyBOT1RFOiBpbiB0aGlzIGNhc2Ugd2UgY2FuIGd1YXJhbnRlZSB0aGF0IHRoZSBrZXkgZG9lcyBub3QgYWxyZWFkeVxuICAgIC8vIGV4aXN0IGFuZCBpcyBhbHJlYWR5IGNvcnJlY3RseSBjYXN0ZWQgYXMgYSBzdHJpbmdcbiAgICBlZGdlID0gZ3JhcGguX2VkZ2VLZXlHZW5lcmF0b3IoKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBDb2VyY2lvbiBvZiBlZGdlIGtleVxuICAgIGVkZ2UgPSAnJyArIGVkZ2U7XG5cbiAgICAvLyBIZXJlLCB3ZSBoYXZlIGEga2V5IGNvbGxpc2lvblxuICAgIGlmIChncmFwaC5fZWRnZXMuaGFzKGVkZ2UpKVxuICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7bmFtZX06IHRoZSBcIiR7ZWRnZX1cIiBlZGdlIGFscmVhZHkgZXhpc3RzIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuICB9XG5cbiAgLy8gSGVyZSwgd2UgbWlnaHQgaGF2ZSBhIHNvdXJjZSAvIHRhcmdldCBjb2xsaXNpb25cbiAgaWYgKFxuICAgICFncmFwaC5tdWx0aSAmJlxuICAgICh1bmRpcmVjdGVkXG4gICAgICA/IHR5cGVvZiBzb3VyY2VEYXRhLnVuZGlyZWN0ZWRbdGFyZ2V0XSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgIDogdHlwZW9mIHNvdXJjZURhdGEub3V0W3RhcmdldF0gIT09ICd1bmRlZmluZWQnKVxuICApIHtcbiAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLiR7bmFtZX06IGFuIGVkZ2UgbGlua2luZyBcIiR7c291cmNlfVwiIHRvIFwiJHt0YXJnZXR9XCIgYWxyZWFkeSBleGlzdHMuIElmIHlvdSByZWFsbHkgd2FudCB0byBhZGQgbXVsdGlwbGUgZWRnZXMgbGlua2luZyB0aG9zZSBub2RlcywgeW91IHNob3VsZCBjcmVhdGUgYSBtdWx0aSBncmFwaCBieSB1c2luZyB0aGUgJ211bHRpJyBvcHRpb24uYFxuICAgICk7XG4gIH1cblxuICAvLyBTdG9yaW5nIHNvbWUgZGF0YVxuICBjb25zdCBlZGdlRGF0YSA9IG5ldyBFZGdlRGF0YShcbiAgICB1bmRpcmVjdGVkLFxuICAgIGVkZ2UsXG4gICAgc291cmNlRGF0YSxcbiAgICB0YXJnZXREYXRhLFxuICAgIGF0dHJpYnV0ZXNcbiAgKTtcblxuICAvLyBBZGRpbmcgdGhlIGVkZ2UgdG8gdGhlIGludGVybmFsIHJlZ2lzdGVyXG4gIGdyYXBoLl9lZGdlcy5zZXQoZWRnZSwgZWRnZURhdGEpO1xuXG4gIC8vIEluY3JlbWVudGluZyBub2RlIGRlZ3JlZSBjb3VudGVyc1xuICBpZiAoc291cmNlID09PSB0YXJnZXQpIHtcbiAgICBpZiAodW5kaXJlY3RlZCkge1xuICAgICAgc291cmNlRGF0YS51bmRpcmVjdGVkU2VsZkxvb3BzKys7XG4gICAgICBncmFwaC5fdW5kaXJlY3RlZFNlbGZMb29wQ291bnQrKztcbiAgICB9IGVsc2Uge1xuICAgICAgc291cmNlRGF0YS5kaXJlY3RlZFNlbGZMb29wcysrO1xuICAgICAgZ3JhcGguX2RpcmVjdGVkU2VsZkxvb3BDb3VudCsrO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAodW5kaXJlY3RlZCkge1xuICAgICAgc291cmNlRGF0YS51bmRpcmVjdGVkRGVncmVlKys7XG4gICAgICB0YXJnZXREYXRhLnVuZGlyZWN0ZWREZWdyZWUrKztcbiAgICB9IGVsc2Uge1xuICAgICAgc291cmNlRGF0YS5vdXREZWdyZWUrKztcbiAgICAgIHRhcmdldERhdGEuaW5EZWdyZWUrKztcbiAgICB9XG4gIH1cblxuICAvLyBVcGRhdGluZyByZWxldmFudCBpbmRleFxuICB1cGRhdGVTdHJ1Y3R1cmVJbmRleChcbiAgICBncmFwaCxcbiAgICB1bmRpcmVjdGVkLFxuICAgIGVkZ2VEYXRhLFxuICAgIHNvdXJjZSxcbiAgICB0YXJnZXQsXG4gICAgc291cmNlRGF0YSxcbiAgICB0YXJnZXREYXRhXG4gICk7XG5cbiAgaWYgKHVuZGlyZWN0ZWQpIGdyYXBoLl91bmRpcmVjdGVkU2l6ZSsrO1xuICBlbHNlIGdyYXBoLl9kaXJlY3RlZFNpemUrKztcblxuICAvLyBFbWl0dGluZ1xuICBldmVudERhdGEua2V5ID0gZWRnZTtcblxuICBncmFwaC5lbWl0KCdlZGdlQWRkZWQnLCBldmVudERhdGEpO1xuXG4gIHJldHVybiBlZGdlO1xufVxuXG4vKipcbiAqIEludGVybmFsIG1ldGhvZCB1c2VkIHRvIGFkZCBhbiBhcmJpdHJhcnkgZWRnZSB0byB0aGUgZ2l2ZW4gZ3JhcGguXG4gKlxuICogQHBhcmFtICB7R3JhcGh9ICAgZ3JhcGggICAgICAgICAgIC0gVGFyZ2V0IGdyYXBoLlxuICogQHBhcmFtICB7c3RyaW5nfSAgbmFtZSAgICAgICAgICAgIC0gTmFtZSBvZiB0aGUgY2hpbGQgbWV0aG9kIGZvciBlcnJvcnMuXG4gKiBAcGFyYW0gIHtib29sZWFufSBtdXN0R2VuZXJhdGVLZXkgLSBTaG91bGQgdGhlIGdyYXBoIGdlbmVyYXRlIGFuIGlkP1xuICogQHBhcmFtICB7Ym9vbGVhbn0gdW5kaXJlY3RlZCAgICAgIC0gV2hldGhlciB0aGUgZWRnZSBpcyB1bmRpcmVjdGVkLlxuICogQHBhcmFtICB7YW55fSAgICAgZWRnZSAgICAgICAgICAgIC0gVGhlIGVkZ2UncyBrZXkuXG4gKiBAcGFyYW0gIHthbnl9ICAgICBzb3VyY2UgICAgICAgICAgLSBUaGUgc291cmNlIG5vZGUuXG4gKiBAcGFyYW0gIHthbnl9ICAgICB0YXJnZXQgICAgICAgICAgLSBUaGUgdGFyZ2V0IG5vZGUuXG4gKiBAcGFyYW0gIHtvYmplY3R9ICBbYXR0cmlidXRlc10gICAgLSBPcHRpb25hbCBhdHRyaWJ1dGVzLlxuICogQHBhcmFtICB7Ym9vbGVhbn0gW2FzVXBkYXRlcl0gICAgICAgLSBBcmUgd2UgdXBkYXRpbmcgb3IgbWVyZ2luZz9cbiAqIEByZXR1cm4ge2FueX0gICAgICAgICAgICAgICAgICAgICAtIFRoZSBlZGdlLlxuICpcbiAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIGdyYXBoIGlzIG9mIHRoZSB3cm9uZyB0eXBlLlxuICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgZ2l2ZW4gYXR0cmlidXRlcyBhcmUgbm90IGFuIG9iamVjdC5cbiAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgc291cmNlIG9yIHRhcmdldCBkb2Vzbid0IGV4aXN0LlxuICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgZWRnZSBhbHJlYWR5IGV4aXN0LlxuICovXG5mdW5jdGlvbiBtZXJnZUVkZ2UoXG4gIGdyYXBoLFxuICBuYW1lLFxuICBtdXN0R2VuZXJhdGVLZXksXG4gIHVuZGlyZWN0ZWQsXG4gIGVkZ2UsXG4gIHNvdXJjZSxcbiAgdGFyZ2V0LFxuICBhdHRyaWJ1dGVzLFxuICBhc1VwZGF0ZXJcbikge1xuICAvLyBDaGVja2luZyB2YWxpZGl0eSBvZiBvcGVyYXRpb25cbiAgaWYgKCF1bmRpcmVjdGVkICYmIGdyYXBoLnR5cGUgPT09ICd1bmRpcmVjdGVkJylcbiAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLiR7bmFtZX06IHlvdSBjYW5ub3QgbWVyZ2UvdXBkYXRlIGEgZGlyZWN0ZWQgZWRnZSB0byBhbiB1bmRpcmVjdGVkIGdyYXBoLiBVc2UgdGhlICMubWVyZ2VFZGdlLyMudXBkYXRlRWRnZSBvciAjLmFkZFVuZGlyZWN0ZWRFZGdlIGluc3RlYWQuYFxuICAgICk7XG5cbiAgaWYgKHVuZGlyZWN0ZWQgJiYgZ3JhcGgudHlwZSA9PT0gJ2RpcmVjdGVkJylcbiAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLiR7bmFtZX06IHlvdSBjYW5ub3QgbWVyZ2UvdXBkYXRlIGFuIHVuZGlyZWN0ZWQgZWRnZSB0byBhIGRpcmVjdGVkIGdyYXBoLiBVc2UgdGhlICMubWVyZ2VFZGdlLyMudXBkYXRlRWRnZSBvciAjLmFkZERpcmVjdGVkRWRnZSBpbnN0ZWFkLmBcbiAgICApO1xuXG4gIGlmIChhdHRyaWJ1dGVzKSB7XG4gICAgaWYgKGFzVXBkYXRlcikge1xuICAgICAgaWYgKHR5cGVvZiBhdHRyaWJ1dGVzICE9PSAnZnVuY3Rpb24nKVxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bmFtZX06IGludmFsaWQgdXBkYXRlciBmdW5jdGlvbi4gRXhwZWN0aW5nIGEgZnVuY3Rpb24gYnV0IGdvdCBcIiR7YXR0cmlidXRlc31cImBcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFpc1BsYWluT2JqZWN0KGF0dHJpYnV0ZXMpKVxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bmFtZX06IGludmFsaWQgYXR0cmlidXRlcy4gRXhwZWN0aW5nIGFuIG9iamVjdCBidXQgZ290IFwiJHthdHRyaWJ1dGVzfVwiYFxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvZXJjaW9uIG9mIHNvdXJjZSAmIHRhcmdldDpcbiAgc291cmNlID0gJycgKyBzb3VyY2U7XG4gIHRhcmdldCA9ICcnICsgdGFyZ2V0O1xuXG4gIGxldCB1cGRhdGVyO1xuXG4gIGlmIChhc1VwZGF0ZXIpIHtcbiAgICB1cGRhdGVyID0gYXR0cmlidXRlcztcbiAgICBhdHRyaWJ1dGVzID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKCFncmFwaC5hbGxvd1NlbGZMb29wcyAmJiBzb3VyY2UgPT09IHRhcmdldClcbiAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLiR7bmFtZX06IHNvdXJjZSAmIHRhcmdldCBhcmUgdGhlIHNhbWUgKFwiJHtzb3VyY2V9XCIpLCB0aHVzIGNyZWF0aW5nIGEgbG9vcCBleHBsaWNpdGx5IGZvcmJpZGRlbiBieSB0aGlzIGdyYXBoICdhbGxvd1NlbGZMb29wcycgb3B0aW9uIHNldCB0byBmYWxzZS5gXG4gICAgKTtcblxuICBsZXQgc291cmNlRGF0YSA9IGdyYXBoLl9ub2Rlcy5nZXQoc291cmNlKTtcbiAgbGV0IHRhcmdldERhdGEgPSBncmFwaC5fbm9kZXMuZ2V0KHRhcmdldCk7XG4gIGxldCBlZGdlRGF0YTtcblxuICAvLyBEbyB3ZSBuZWVkIHRvIGhhbmRsZSBkdXBsaWNhdGU/XG4gIGxldCBhbHJlYWR5RXhpc3RpbmdFZGdlRGF0YTtcblxuICBpZiAoIW11c3RHZW5lcmF0ZUtleSkge1xuICAgIGVkZ2VEYXRhID0gZ3JhcGguX2VkZ2VzLmdldChlZGdlKTtcblxuICAgIGlmIChlZGdlRGF0YSkge1xuICAgICAgLy8gSGVyZSwgd2UgbmVlZCB0byBlbnN1cmUsIGlmIHRoZSB1c2VyIGdhdmUgYSBrZXksIHRoYXQgc291cmNlICYgdGFyZ2V0XG4gICAgICAvLyBhcmUgY29oZXJlbnRcbiAgICAgIGlmIChcbiAgICAgICAgZWRnZURhdGEuc291cmNlLmtleSAhPT0gc291cmNlIHx8XG4gICAgICAgIGVkZ2VEYXRhLnRhcmdldC5rZXkgIT09IHRhcmdldCB8fFxuICAgICAgICAodW5kaXJlY3RlZCAmJlxuICAgICAgICAgIChlZGdlRGF0YS5zb3VyY2Uua2V5ICE9PSB0YXJnZXQgfHwgZWRnZURhdGEudGFyZ2V0LmtleSAhPT0gc291cmNlKSlcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke25hbWV9OiBpbmNvbnNpc3RlbmN5IGRldGVjdGVkIHdoZW4gYXR0ZW1wdGluZyB0byBtZXJnZSB0aGUgXCIke2VkZ2V9XCIgZWRnZSB3aXRoIFwiJHtzb3VyY2V9XCIgc291cmNlICYgXCIke3RhcmdldH1cIiB0YXJnZXQgdnMuIChcIiR7ZWRnZURhdGEuc291cmNlLmtleX1cIiwgXCIke2VkZ2VEYXRhLnRhcmdldC5rZXl9XCIpLmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgYWxyZWFkeUV4aXN0aW5nRWRnZURhdGEgPSBlZGdlRGF0YTtcbiAgICB9XG4gIH1cblxuICAvLyBIZXJlLCB3ZSBtaWdodCBoYXZlIGEgc291cmNlIC8gdGFyZ2V0IGNvbGxpc2lvblxuICBpZiAoIWFscmVhZHlFeGlzdGluZ0VkZ2VEYXRhICYmICFncmFwaC5tdWx0aSAmJiBzb3VyY2VEYXRhKSB7XG4gICAgYWxyZWFkeUV4aXN0aW5nRWRnZURhdGEgPSB1bmRpcmVjdGVkXG4gICAgICA/IHNvdXJjZURhdGEudW5kaXJlY3RlZFt0YXJnZXRdXG4gICAgICA6IHNvdXJjZURhdGEub3V0W3RhcmdldF07XG4gIH1cblxuICAvLyBIYW5kbGluZyBkdXBsaWNhdGVzXG4gIGlmIChhbHJlYWR5RXhpc3RpbmdFZGdlRGF0YSkge1xuICAgIGNvbnN0IGluZm8gPSBbYWxyZWFkeUV4aXN0aW5nRWRnZURhdGEua2V5LCBmYWxzZSwgZmFsc2UsIGZhbHNlXTtcblxuICAgIC8vIFdlIGNhbiBza2lwIHRoZSBhdHRyaWJ1dGUgbWVyZ2luZyBwYXJ0IGlmIHRoZSB1c2VyIGRpZCBub3QgcHJvdmlkZSB0aGVtXG4gICAgaWYgKGFzVXBkYXRlciA/ICF1cGRhdGVyIDogIWF0dHJpYnV0ZXMpIHJldHVybiBpbmZvO1xuXG4gICAgLy8gVXBkYXRpbmcgdGhlIGF0dHJpYnV0ZXNcbiAgICBpZiAoYXNVcGRhdGVyKSB7XG4gICAgICBjb25zdCBvbGRBdHRyaWJ1dGVzID0gYWxyZWFkeUV4aXN0aW5nRWRnZURhdGEuYXR0cmlidXRlcztcbiAgICAgIGFscmVhZHlFeGlzdGluZ0VkZ2VEYXRhLmF0dHJpYnV0ZXMgPSB1cGRhdGVyKG9sZEF0dHJpYnV0ZXMpO1xuXG4gICAgICBncmFwaC5lbWl0KCdlZGdlQXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICAgIHR5cGU6ICdyZXBsYWNlJyxcbiAgICAgICAga2V5OiBhbHJlYWR5RXhpc3RpbmdFZGdlRGF0YS5rZXksXG4gICAgICAgIGF0dHJpYnV0ZXM6IGFscmVhZHlFeGlzdGluZ0VkZ2VEYXRhLmF0dHJpYnV0ZXNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIE1lcmdpbmcgdGhlIGF0dHJpYnV0ZXNcbiAgICBlbHNlIHtcbiAgICAgIGFzc2lnbihhbHJlYWR5RXhpc3RpbmdFZGdlRGF0YS5hdHRyaWJ1dGVzLCBhdHRyaWJ1dGVzKTtcblxuICAgICAgZ3JhcGguZW1pdCgnZWRnZUF0dHJpYnV0ZXNVcGRhdGVkJywge1xuICAgICAgICB0eXBlOiAnbWVyZ2UnLFxuICAgICAgICBrZXk6IGFscmVhZHlFeGlzdGluZ0VkZ2VEYXRhLmtleSxcbiAgICAgICAgYXR0cmlidXRlczogYWxyZWFkeUV4aXN0aW5nRWRnZURhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgZGF0YTogYXR0cmlidXRlc1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluZm87XG4gIH1cblxuICBhdHRyaWJ1dGVzID0gYXR0cmlidXRlcyB8fCB7fTtcblxuICBpZiAoYXNVcGRhdGVyICYmIHVwZGF0ZXIpIGF0dHJpYnV0ZXMgPSB1cGRhdGVyKGF0dHJpYnV0ZXMpO1xuXG4gIC8vIE11c3QgdGhlIGdyYXBoIGdlbmVyYXRlIGFuIGlkIGZvciB0aGlzIGVkZ2U/XG4gIGNvbnN0IGV2ZW50RGF0YSA9IHtcbiAgICBrZXk6IG51bGwsXG4gICAgdW5kaXJlY3RlZCxcbiAgICBzb3VyY2UsXG4gICAgdGFyZ2V0LFxuICAgIGF0dHJpYnV0ZXNcbiAgfTtcblxuICBpZiAobXVzdEdlbmVyYXRlS2V5KSB7XG4gICAgLy8gTk9URTogaW4gdGhpcyBjYXNlIHdlIGNhbiBndWFyYW50ZWUgdGhhdCB0aGUga2V5IGRvZXMgbm90IGFscmVhZHlcbiAgICAvLyBleGlzdCBhbmQgaXMgYWxyZWFkeSBjb3JyZWN0bHkgY2FzdGVkIGFzIGEgc3RyaW5nXG4gICAgZWRnZSA9IGdyYXBoLl9lZGdlS2V5R2VuZXJhdG9yKCk7XG4gIH0gZWxzZSB7XG4gICAgLy8gQ29lcmNpb24gb2YgZWRnZSBrZXlcbiAgICBlZGdlID0gJycgKyBlZGdlO1xuXG4gICAgLy8gSGVyZSwgd2UgaGF2ZSBhIGtleSBjb2xsaXNpb25cbiAgICBpZiAoZ3JhcGguX2VkZ2VzLmhhcyhlZGdlKSlcbiAgICAgIHRocm93IG5ldyBVc2FnZUdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke25hbWV9OiB0aGUgXCIke2VkZ2V9XCIgZWRnZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcbiAgfVxuXG4gIGxldCBzb3VyY2VXYXNBZGRlZCA9IGZhbHNlO1xuICBsZXQgdGFyZ2V0V2FzQWRkZWQgPSBmYWxzZTtcblxuICBpZiAoIXNvdXJjZURhdGEpIHtcbiAgICBzb3VyY2VEYXRhID0gdW5zYWZlQWRkTm9kZShncmFwaCwgc291cmNlLCB7fSk7XG4gICAgc291cmNlV2FzQWRkZWQgPSB0cnVlO1xuXG4gICAgaWYgKHNvdXJjZSA9PT0gdGFyZ2V0KSB7XG4gICAgICB0YXJnZXREYXRhID0gc291cmNlRGF0YTtcbiAgICAgIHRhcmdldFdhc0FkZGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgaWYgKCF0YXJnZXREYXRhKSB7XG4gICAgdGFyZ2V0RGF0YSA9IHVuc2FmZUFkZE5vZGUoZ3JhcGgsIHRhcmdldCwge30pO1xuICAgIHRhcmdldFdhc0FkZGVkID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIFN0b3Jpbmcgc29tZSBkYXRhXG4gIGVkZ2VEYXRhID0gbmV3IEVkZ2VEYXRhKHVuZGlyZWN0ZWQsIGVkZ2UsIHNvdXJjZURhdGEsIHRhcmdldERhdGEsIGF0dHJpYnV0ZXMpO1xuXG4gIC8vIEFkZGluZyB0aGUgZWRnZSB0byB0aGUgaW50ZXJuYWwgcmVnaXN0ZXJcbiAgZ3JhcGguX2VkZ2VzLnNldChlZGdlLCBlZGdlRGF0YSk7XG5cbiAgLy8gSW5jcmVtZW50aW5nIG5vZGUgZGVncmVlIGNvdW50ZXJzXG4gIGlmIChzb3VyY2UgPT09IHRhcmdldCkge1xuICAgIGlmICh1bmRpcmVjdGVkKSB7XG4gICAgICBzb3VyY2VEYXRhLnVuZGlyZWN0ZWRTZWxmTG9vcHMrKztcbiAgICAgIGdyYXBoLl91bmRpcmVjdGVkU2VsZkxvb3BDb3VudCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzb3VyY2VEYXRhLmRpcmVjdGVkU2VsZkxvb3BzKys7XG4gICAgICBncmFwaC5fZGlyZWN0ZWRTZWxmTG9vcENvdW50Kys7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmICh1bmRpcmVjdGVkKSB7XG4gICAgICBzb3VyY2VEYXRhLnVuZGlyZWN0ZWREZWdyZWUrKztcbiAgICAgIHRhcmdldERhdGEudW5kaXJlY3RlZERlZ3JlZSsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzb3VyY2VEYXRhLm91dERlZ3JlZSsrO1xuICAgICAgdGFyZ2V0RGF0YS5pbkRlZ3JlZSsrO1xuICAgIH1cbiAgfVxuXG4gIC8vIFVwZGF0aW5nIHJlbGV2YW50IGluZGV4XG4gIHVwZGF0ZVN0cnVjdHVyZUluZGV4KFxuICAgIGdyYXBoLFxuICAgIHVuZGlyZWN0ZWQsXG4gICAgZWRnZURhdGEsXG4gICAgc291cmNlLFxuICAgIHRhcmdldCxcbiAgICBzb3VyY2VEYXRhLFxuICAgIHRhcmdldERhdGFcbiAgKTtcblxuICBpZiAodW5kaXJlY3RlZCkgZ3JhcGguX3VuZGlyZWN0ZWRTaXplKys7XG4gIGVsc2UgZ3JhcGguX2RpcmVjdGVkU2l6ZSsrO1xuXG4gIC8vIEVtaXR0aW5nXG4gIGV2ZW50RGF0YS5rZXkgPSBlZGdlO1xuXG4gIGdyYXBoLmVtaXQoJ2VkZ2VBZGRlZCcsIGV2ZW50RGF0YSk7XG5cbiAgcmV0dXJuIFtlZGdlLCB0cnVlLCBzb3VyY2VXYXNBZGRlZCwgdGFyZ2V0V2FzQWRkZWRdO1xufVxuXG4vKipcbiAqIEdyYXBoIGNsYXNzXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0gIHtvYmplY3R9ICBbb3B0aW9uc10gLSBPcHRpb25zOlxuICogQHBhcmFtICB7Ym9vbGVhbn0gICBbYWxsb3dTZWxmTG9vcHNdIC0gQWxsb3cgc2VsZiBsb29wcz9cbiAqIEBwYXJhbSAge3N0cmluZ30gICAgW3R5cGVdICAgICAgICAgICAtIFR5cGUgb2YgdGhlIGdyYXBoLlxuICogQHBhcmFtICB7Ym9vbGVhbn0gICBbbWFwXSAgICAgICAgICAgIC0gQWxsb3cgcmVmZXJlbmNlcyBhcyBrZXlzP1xuICogQHBhcmFtICB7Ym9vbGVhbn0gICBbbXVsdGldICAgICAgICAgIC0gQWxsb3cgcGFyYWxsZWwgZWRnZXM/XG4gKlxuICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgYXJndW1lbnRzIGFyZSBub3QgdmFsaWQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdyYXBoIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvLy0tIFNvbHZpbmcgb3B0aW9uc1xuICAgIG9wdGlvbnMgPSBhc3NpZ24oe30sIERFRkFVTFRTLCBvcHRpb25zKTtcblxuICAgIC8vIEVuZm9yY2luZyBvcHRpb25zIHZhbGlkaXR5XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLm11bHRpICE9PSAnYm9vbGVhbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5jb25zdHJ1Y3RvcjogaW52YWxpZCAnbXVsdGknIG9wdGlvbi4gRXhwZWN0aW5nIGEgYm9vbGVhbiBidXQgZ290IFwiJHtvcHRpb25zLm11bHRpfVwiLmBcbiAgICAgICk7XG5cbiAgICBpZiAoIVRZUEVTLmhhcyhvcHRpb25zLnR5cGUpKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguY29uc3RydWN0b3I6IGludmFsaWQgJ3R5cGUnIG9wdGlvbi4gU2hvdWxkIGJlIG9uZSBvZiBcIm1peGVkXCIsIFwiZGlyZWN0ZWRcIiBvciBcInVuZGlyZWN0ZWRcIiBidXQgZ290IFwiJHtvcHRpb25zLnR5cGV9XCIuYFxuICAgICAgKTtcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5hbGxvd1NlbGZMb29wcyAhPT0gJ2Jvb2xlYW4nKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguY29uc3RydWN0b3I6IGludmFsaWQgJ2FsbG93U2VsZkxvb3BzJyBvcHRpb24uIEV4cGVjdGluZyBhIGJvb2xlYW4gYnV0IGdvdCBcIiR7b3B0aW9ucy5hbGxvd1NlbGZMb29wc31cIi5gXG4gICAgICApO1xuXG4gICAgLy8tLSBQcml2YXRlIHByb3BlcnRpZXNcblxuICAgIC8vIFV0aWxpdGllc1xuICAgIGNvbnN0IE5vZGVEYXRhQ2xhc3MgPVxuICAgICAgb3B0aW9ucy50eXBlID09PSAnbWl4ZWQnXG4gICAgICAgID8gTWl4ZWROb2RlRGF0YVxuICAgICAgICA6IG9wdGlvbnMudHlwZSA9PT0gJ2RpcmVjdGVkJ1xuICAgICAgICA/IERpcmVjdGVkTm9kZURhdGFcbiAgICAgICAgOiBVbmRpcmVjdGVkTm9kZURhdGE7XG5cbiAgICBwcml2YXRlUHJvcGVydHkodGhpcywgJ05vZGVEYXRhQ2xhc3MnLCBOb2RlRGF0YUNsYXNzKTtcblxuICAgIC8vIEludGVybmFsIGVkZ2Uga2V5IGdlbmVyYXRvclxuXG4gICAgLy8gTk9URTogdGhpcyBpbnRlcm5hbCBnZW5lcmF0b3IgcHJvZHVjZSBrZXlzIHRoYXQgYXJlIHN0cmluZ3NcbiAgICAvLyBjb21wb3NlZCBvZiBhIHdlaXJkIHByZWZpeCwgYW4gaW5jcmVtZW50YWwgaW5zdGFuY2UgaWQgc3RhcnRpbmcgZnJvbVxuICAgIC8vIGEgcmFuZG9tIGJ5dGUgYW5kIGZpbmFsbHkgYW4gaW50ZXJuYWwgaW5zdGFuY2UgaW5jcmVtZW50YWwgaWQuXG4gICAgLy8gQWxsIHRoaXMgdG8gYXZvaWQgaW50cmEtZnJhbWUgYW5kIGNyb3NzLWZyYW1lIGFkdmVyc2FyaWFsIGlucHV0c1xuICAgIC8vIHRoYXQgY2FuIGZvcmNlIGEgc2luZ2xlICMuYWRkRWRnZSBjYWxsIHRvIGRlZ2VuZXJhdGUgaW50byBhIE8obilcbiAgICAvLyBhdmFpbGFibGUga2V5IHNlYXJjaCBsb29wLlxuXG4gICAgLy8gSXQgYWxzbyBlbnN1cmVzIHRoYXQgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZWRnZSBrZXlzIGFyZSB1bmxpa2VseVxuICAgIC8vIHRvIHByb2R1Y2UgY29sbGlzaW9ucyB3aXRoIGFyYml0cmFyeSBrZXlzIGdpdmVuIGJ5IHVzZXJzLlxuICAgIGNvbnN0IGluc3RhbmNlSWQgPSBJTlNUQU5DRV9JRCgpO1xuICAgIGxldCBlZGdlSWQgPSAwO1xuXG4gICAgY29uc3QgZWRnZUtleUdlbmVyYXRvciA9ICgpID0+IHtcbiAgICAgIGxldCBhdmFpbGFibGVFZGdlS2V5O1xuXG4gICAgICBkbyB7XG4gICAgICAgIGF2YWlsYWJsZUVkZ2VLZXkgPSAnZ2VpZF8nICsgaW5zdGFuY2VJZCArICdfJyArIGVkZ2VJZCsrO1xuICAgICAgfSB3aGlsZSAodGhpcy5fZWRnZXMuaGFzKGF2YWlsYWJsZUVkZ2VLZXkpKTtcblxuICAgICAgcmV0dXJuIGF2YWlsYWJsZUVkZ2VLZXk7XG4gICAgfTtcblxuICAgIC8vIEluZGV4ZXNcbiAgICBwcml2YXRlUHJvcGVydHkodGhpcywgJ19hdHRyaWJ1dGVzJywge30pO1xuICAgIHByaXZhdGVQcm9wZXJ0eSh0aGlzLCAnX25vZGVzJywgbmV3IE1hcCgpKTtcbiAgICBwcml2YXRlUHJvcGVydHkodGhpcywgJ19lZGdlcycsIG5ldyBNYXAoKSk7XG4gICAgcHJpdmF0ZVByb3BlcnR5KHRoaXMsICdfZGlyZWN0ZWRTaXplJywgMCk7XG4gICAgcHJpdmF0ZVByb3BlcnR5KHRoaXMsICdfdW5kaXJlY3RlZFNpemUnLCAwKTtcbiAgICBwcml2YXRlUHJvcGVydHkodGhpcywgJ19kaXJlY3RlZFNlbGZMb29wQ291bnQnLCAwKTtcbiAgICBwcml2YXRlUHJvcGVydHkodGhpcywgJ191bmRpcmVjdGVkU2VsZkxvb3BDb3VudCcsIDApO1xuICAgIHByaXZhdGVQcm9wZXJ0eSh0aGlzLCAnX2VkZ2VLZXlHZW5lcmF0b3InLCBlZGdlS2V5R2VuZXJhdG9yKTtcblxuICAgIC8vIE9wdGlvbnNcbiAgICBwcml2YXRlUHJvcGVydHkodGhpcywgJ19vcHRpb25zJywgb3B0aW9ucyk7XG5cbiAgICAvLyBFbWl0dGVyIHByb3BlcnRpZXNcbiAgICBFTUlUVEVSX1BST1BTLmZvckVhY2gocHJvcCA9PiBwcml2YXRlUHJvcGVydHkodGhpcywgcHJvcCwgdGhpc1twcm9wXSkpO1xuXG4gICAgLy8tLSBQcm9wZXJ0aWVzIHJlYWRlcnNcbiAgICByZWFkT25seVByb3BlcnR5KHRoaXMsICdvcmRlcicsICgpID0+IHRoaXMuX25vZGVzLnNpemUpO1xuICAgIHJlYWRPbmx5UHJvcGVydHkodGhpcywgJ3NpemUnLCAoKSA9PiB0aGlzLl9lZGdlcy5zaXplKTtcbiAgICByZWFkT25seVByb3BlcnR5KHRoaXMsICdkaXJlY3RlZFNpemUnLCAoKSA9PiB0aGlzLl9kaXJlY3RlZFNpemUpO1xuICAgIHJlYWRPbmx5UHJvcGVydHkodGhpcywgJ3VuZGlyZWN0ZWRTaXplJywgKCkgPT4gdGhpcy5fdW5kaXJlY3RlZFNpemUpO1xuICAgIHJlYWRPbmx5UHJvcGVydHkoXG4gICAgICB0aGlzLFxuICAgICAgJ3NlbGZMb29wQ291bnQnLFxuICAgICAgKCkgPT4gdGhpcy5fZGlyZWN0ZWRTZWxmTG9vcENvdW50ICsgdGhpcy5fdW5kaXJlY3RlZFNlbGZMb29wQ291bnRcbiAgICApO1xuICAgIHJlYWRPbmx5UHJvcGVydHkoXG4gICAgICB0aGlzLFxuICAgICAgJ2RpcmVjdGVkU2VsZkxvb3BDb3VudCcsXG4gICAgICAoKSA9PiB0aGlzLl9kaXJlY3RlZFNlbGZMb29wQ291bnRcbiAgICApO1xuICAgIHJlYWRPbmx5UHJvcGVydHkoXG4gICAgICB0aGlzLFxuICAgICAgJ3VuZGlyZWN0ZWRTZWxmTG9vcENvdW50JyxcbiAgICAgICgpID0+IHRoaXMuX3VuZGlyZWN0ZWRTZWxmTG9vcENvdW50XG4gICAgKTtcbiAgICByZWFkT25seVByb3BlcnR5KHRoaXMsICdtdWx0aScsIHRoaXMuX29wdGlvbnMubXVsdGkpO1xuICAgIHJlYWRPbmx5UHJvcGVydHkodGhpcywgJ3R5cGUnLCB0aGlzLl9vcHRpb25zLnR5cGUpO1xuICAgIHJlYWRPbmx5UHJvcGVydHkodGhpcywgJ2FsbG93U2VsZkxvb3BzJywgdGhpcy5fb3B0aW9ucy5hbGxvd1NlbGZMb29wcyk7XG4gICAgcmVhZE9ubHlQcm9wZXJ0eSh0aGlzLCAnaW1wbGVtZW50YXRpb24nLCAoKSA9PiAnZ3JhcGhvbG9neScpO1xuICB9XG5cbiAgX3Jlc2V0SW5zdGFuY2VDb3VudGVycygpIHtcbiAgICB0aGlzLl9kaXJlY3RlZFNpemUgPSAwO1xuICAgIHRoaXMuX3VuZGlyZWN0ZWRTaXplID0gMDtcbiAgICB0aGlzLl9kaXJlY3RlZFNlbGZMb29wQ291bnQgPSAwO1xuICAgIHRoaXMuX3VuZGlyZWN0ZWRTZWxmTG9vcENvdW50ID0gMDtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBSZWFkXG4gICAqKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKi9cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB3aGV0aGVyIHRoZSBnaXZlbiBub2RlIGlzIGZvdW5kIGluIHRoZSBncmFwaC5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgbm9kZSAtIFRoZSBub2RlLlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaGFzTm9kZShub2RlKSB7XG4gICAgcmV0dXJuIHRoaXMuX25vZGVzLmhhcygnJyArIG5vZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgd2hldGhlciB0aGUgZ2l2ZW4gZGlyZWN0ZWQgZWRnZSBpcyBmb3VuZCBpbiB0aGUgZ3JhcGguXG4gICAqXG4gICAqIEFyaXR5IDE6XG4gICAqIEBwYXJhbSAge2FueX0gICAgIGVkZ2UgLSBUaGUgZWRnZSdzIGtleS5cbiAgICpcbiAgICogQXJpdHkgMjpcbiAgICogQHBhcmFtICB7YW55fSAgICAgc291cmNlIC0gVGhlIGVkZ2UncyBzb3VyY2UuXG4gICAqIEBwYXJhbSAge2FueX0gICAgIHRhcmdldCAtIFRoZSBlZGdlJ3MgdGFyZ2V0LlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBhcmd1bWVudHMgYXJlIGludmFsaWQuXG4gICAqL1xuICBoYXNEaXJlY3RlZEVkZ2Uoc291cmNlLCB0YXJnZXQpIHtcbiAgICAvLyBFYXJseSB0ZXJtaW5hdGlvblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd1bmRpcmVjdGVkJykgcmV0dXJuIGZhbHNlO1xuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGVkZ2UgPSAnJyArIHNvdXJjZTtcblxuICAgICAgY29uc3QgZWRnZURhdGEgPSB0aGlzLl9lZGdlcy5nZXQoZWRnZSk7XG5cbiAgICAgIHJldHVybiAhIWVkZ2VEYXRhICYmICFlZGdlRGF0YS51bmRpcmVjdGVkO1xuICAgIH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgc291cmNlID0gJycgKyBzb3VyY2U7XG4gICAgICB0YXJnZXQgPSAnJyArIHRhcmdldDtcblxuICAgICAgLy8gSWYgdGhlIG5vZGUgc291cmNlIG9yIHRoZSB0YXJnZXQgaXMgbm90IGluIHRoZSBncmFwaCB3ZSBicmVha1xuICAgICAgY29uc3Qgbm9kZURhdGEgPSB0aGlzLl9ub2Rlcy5nZXQoc291cmNlKTtcblxuICAgICAgaWYgKCFub2RlRGF0YSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAvLyBJcyB0aGVyZSBhIGRpcmVjdGVkIGVkZ2UgcG9pbnRpbmcgdG93YXJkIHRhcmdldD9cbiAgICAgIGNvbnN0IGVkZ2VzID0gbm9kZURhdGEub3V0W3RhcmdldF07XG5cbiAgICAgIGlmICghZWRnZXMpIHJldHVybiBmYWxzZTtcblxuICAgICAgcmV0dXJuIHRoaXMubXVsdGkgPyAhIWVkZ2VzLnNpemUgOiB0cnVlO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgIGBHcmFwaC5oYXNEaXJlY3RlZEVkZ2U6IGludmFsaWQgYXJpdHkgKCR7YXJndW1lbnRzLmxlbmd0aH0sIGluc3RlYWQgb2YgMSBvciAyKS4gWW91IGNhbiBlaXRoZXIgYXNrIGZvciBhbiBlZGdlIGlkIG9yIGZvciB0aGUgZXhpc3RlbmNlIG9mIGFuIGVkZ2UgYmV0d2VlbiBhIHNvdXJjZSAmIGEgdGFyZ2V0LmBcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgd2hldGhlciB0aGUgZ2l2ZW4gdW5kaXJlY3RlZCBlZGdlIGlzIGZvdW5kIGluIHRoZSBncmFwaC5cbiAgICpcbiAgICogQXJpdHkgMTpcbiAgICogQHBhcmFtICB7YW55fSAgICAgZWRnZSAtIFRoZSBlZGdlJ3Mga2V5LlxuICAgKlxuICAgKiBBcml0eSAyOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBzb3VyY2UgLSBUaGUgZWRnZSdzIHNvdXJjZS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgdGFyZ2V0IC0gVGhlIGVkZ2UncyB0YXJnZXQuXG4gICAqXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZC5cbiAgICovXG4gIGhhc1VuZGlyZWN0ZWRFZGdlKHNvdXJjZSwgdGFyZ2V0KSB7XG4gICAgLy8gRWFybHkgdGVybWluYXRpb25cbiAgICBpZiAodGhpcy50eXBlID09PSAnZGlyZWN0ZWQnKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZWRnZSA9ICcnICsgc291cmNlO1xuXG4gICAgICBjb25zdCBlZGdlRGF0YSA9IHRoaXMuX2VkZ2VzLmdldChlZGdlKTtcblxuICAgICAgcmV0dXJuICEhZWRnZURhdGEgJiYgZWRnZURhdGEudW5kaXJlY3RlZDtcbiAgICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcbiAgICAgIHNvdXJjZSA9ICcnICsgc291cmNlO1xuICAgICAgdGFyZ2V0ID0gJycgKyB0YXJnZXQ7XG5cbiAgICAgIC8vIElmIHRoZSBub2RlIHNvdXJjZSBvciB0aGUgdGFyZ2V0IGlzIG5vdCBpbiB0aGUgZ3JhcGggd2UgYnJlYWtcbiAgICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KHNvdXJjZSk7XG5cbiAgICAgIGlmICghbm9kZURhdGEpIHJldHVybiBmYWxzZTtcblxuICAgICAgLy8gSXMgdGhlcmUgYSBkaXJlY3RlZCBlZGdlIHBvaW50aW5nIHRvd2FyZCB0YXJnZXQ/XG4gICAgICBjb25zdCBlZGdlcyA9IG5vZGVEYXRhLnVuZGlyZWN0ZWRbdGFyZ2V0XTtcblxuICAgICAgaWYgKCFlZGdlcykgcmV0dXJuIGZhbHNlO1xuXG4gICAgICByZXR1cm4gdGhpcy5tdWx0aSA/ICEhZWRnZXMuc2l6ZSA6IHRydWU7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLmhhc0RpcmVjdGVkRWRnZTogaW52YWxpZCBhcml0eSAoJHthcmd1bWVudHMubGVuZ3RofSwgaW5zdGVhZCBvZiAxIG9yIDIpLiBZb3UgY2FuIGVpdGhlciBhc2sgZm9yIGFuIGVkZ2UgaWQgb3IgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYW4gZWRnZSBiZXR3ZWVuIGEgc291cmNlICYgYSB0YXJnZXQuYFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB3aGV0aGVyIHRoZSBnaXZlbiBlZGdlIGlzIGZvdW5kIGluIHRoZSBncmFwaC5cbiAgICpcbiAgICogQXJpdHkgMTpcbiAgICogQHBhcmFtICB7YW55fSAgICAgZWRnZSAtIFRoZSBlZGdlJ3Mga2V5LlxuICAgKlxuICAgKiBBcml0eSAyOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBzb3VyY2UgLSBUaGUgZWRnZSdzIHNvdXJjZS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgdGFyZ2V0IC0gVGhlIGVkZ2UncyB0YXJnZXQuXG4gICAqXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZC5cbiAgICovXG4gIGhhc0VkZ2Uoc291cmNlLCB0YXJnZXQpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZWRnZSA9ICcnICsgc291cmNlO1xuXG4gICAgICByZXR1cm4gdGhpcy5fZWRnZXMuaGFzKGVkZ2UpO1xuICAgIH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgc291cmNlID0gJycgKyBzb3VyY2U7XG4gICAgICB0YXJnZXQgPSAnJyArIHRhcmdldDtcblxuICAgICAgLy8gSWYgdGhlIG5vZGUgc291cmNlIG9yIHRoZSB0YXJnZXQgaXMgbm90IGluIHRoZSBncmFwaCB3ZSBicmVha1xuICAgICAgY29uc3Qgbm9kZURhdGEgPSB0aGlzLl9ub2Rlcy5nZXQoc291cmNlKTtcblxuICAgICAgaWYgKCFub2RlRGF0YSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAvLyBJcyB0aGVyZSBhIGRpcmVjdGVkIGVkZ2UgcG9pbnRpbmcgdG93YXJkIHRhcmdldD9cbiAgICAgIGxldCBlZGdlcyA9IHR5cGVvZiBub2RlRGF0YS5vdXQgIT09ICd1bmRlZmluZWQnICYmIG5vZGVEYXRhLm91dFt0YXJnZXRdO1xuXG4gICAgICBpZiAoIWVkZ2VzKVxuICAgICAgICBlZGdlcyA9XG4gICAgICAgICAgdHlwZW9mIG5vZGVEYXRhLnVuZGlyZWN0ZWQgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgbm9kZURhdGEudW5kaXJlY3RlZFt0YXJnZXRdO1xuXG4gICAgICBpZiAoIWVkZ2VzKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgIHJldHVybiB0aGlzLm11bHRpID8gISFlZGdlcy5zaXplIDogdHJ1ZTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICBgR3JhcGguaGFzRWRnZTogaW52YWxpZCBhcml0eSAoJHthcmd1bWVudHMubGVuZ3RofSwgaW5zdGVhZCBvZiAxIG9yIDIpLiBZb3UgY2FuIGVpdGhlciBhc2sgZm9yIGFuIGVkZ2UgaWQgb3IgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYW4gZWRnZSBiZXR3ZWVuIGEgc291cmNlICYgYSB0YXJnZXQuYFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZWRnZSBtYXRjaGluZyBzb3VyY2UgJiB0YXJnZXQgaW4gYSBkaXJlY3RlZCBmYXNoaW9uLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9IHNvdXJjZSAtIFRoZSBlZGdlJ3Mgc291cmNlLlxuICAgKiBAcGFyYW0gIHthbnl9IHRhcmdldCAtIFRoZSBlZGdlJ3MgdGFyZ2V0LlxuICAgKlxuICAgKiBAcmV0dXJuIHthbnl8dW5kZWZpbmVkfVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBncmFwaCBpcyBtdWx0aS5cbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiBzb3VyY2Ugb3IgdGFyZ2V0IGRvZXNuJ3QgZXhpc3QuXG4gICAqL1xuICBkaXJlY3RlZEVkZ2Uoc291cmNlLCB0YXJnZXQpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAndW5kaXJlY3RlZCcpIHJldHVybjtcblxuICAgIHNvdXJjZSA9ICcnICsgc291cmNlO1xuICAgIHRhcmdldCA9ICcnICsgdGFyZ2V0O1xuXG4gICAgaWYgKHRoaXMubXVsdGkpXG4gICAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgICAnR3JhcGguZGlyZWN0ZWRFZGdlOiB0aGlzIG1ldGhvZCBpcyBpcnJlbGV2YW50IHdpdGggbXVsdGlncmFwaHMgc2luY2UgdGhlcmUgbWlnaHQgYmUgbXVsdGlwbGUgZWRnZXMgYmV0d2VlbiBzb3VyY2UgJiB0YXJnZXQuIFNlZSAjLmRpcmVjdGVkRWRnZXMgaW5zdGVhZC4nXG4gICAgICApO1xuXG4gICAgY29uc3Qgc291cmNlRGF0YSA9IHRoaXMuX25vZGVzLmdldChzb3VyY2UpO1xuXG4gICAgaWYgKCFzb3VyY2VEYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLmRpcmVjdGVkRWRnZTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtzb3VyY2V9XCIgc291cmNlIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAoIXRoaXMuX25vZGVzLmhhcyh0YXJnZXQpKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLmRpcmVjdGVkRWRnZTogY291bGQgbm90IGZpbmQgdGhlIFwiJHt0YXJnZXR9XCIgdGFyZ2V0IG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBjb25zdCBlZGdlRGF0YSA9IChzb3VyY2VEYXRhLm91dCAmJiBzb3VyY2VEYXRhLm91dFt0YXJnZXRdKSB8fCB1bmRlZmluZWQ7XG5cbiAgICBpZiAoZWRnZURhdGEpIHJldHVybiBlZGdlRGF0YS5rZXk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZWRnZSBtYXRjaGluZyBzb3VyY2UgJiB0YXJnZXQgaW4gYSB1bmRpcmVjdGVkIGZhc2hpb24uXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gc291cmNlIC0gVGhlIGVkZ2UncyBzb3VyY2UuXG4gICAqIEBwYXJhbSAge2FueX0gdGFyZ2V0IC0gVGhlIGVkZ2UncyB0YXJnZXQuXG4gICAqXG4gICAqIEByZXR1cm4ge2FueXx1bmRlZmluZWR9XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIGdyYXBoIGlzIG11bHRpLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHNvdXJjZSBvciB0YXJnZXQgZG9lc24ndCBleGlzdC5cbiAgICovXG4gIHVuZGlyZWN0ZWRFZGdlKHNvdXJjZSwgdGFyZ2V0KSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2RpcmVjdGVkJykgcmV0dXJuO1xuXG4gICAgc291cmNlID0gJycgKyBzb3VyY2U7XG4gICAgdGFyZ2V0ID0gJycgKyB0YXJnZXQ7XG5cbiAgICBpZiAodGhpcy5tdWx0aSlcbiAgICAgIHRocm93IG5ldyBVc2FnZUdyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC51bmRpcmVjdGVkRWRnZTogdGhpcyBtZXRob2QgaXMgaXJyZWxldmFudCB3aXRoIG11bHRpZ3JhcGhzIHNpbmNlIHRoZXJlIG1pZ2h0IGJlIG11bHRpcGxlIGVkZ2VzIGJldHdlZW4gc291cmNlICYgdGFyZ2V0LiBTZWUgIy51bmRpcmVjdGVkRWRnZXMgaW5zdGVhZC4nXG4gICAgICApO1xuXG4gICAgY29uc3Qgc291cmNlRGF0YSA9IHRoaXMuX25vZGVzLmdldChzb3VyY2UpO1xuXG4gICAgaWYgKCFzb3VyY2VEYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLnVuZGlyZWN0ZWRFZGdlOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke3NvdXJjZX1cIiBzb3VyY2Ugbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGlmICghdGhpcy5fbm9kZXMuaGFzKHRhcmdldCkpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGgudW5kaXJlY3RlZEVkZ2U6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7dGFyZ2V0fVwiIHRhcmdldCBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgY29uc3QgZWRnZURhdGEgPVxuICAgICAgKHNvdXJjZURhdGEudW5kaXJlY3RlZCAmJiBzb3VyY2VEYXRhLnVuZGlyZWN0ZWRbdGFyZ2V0XSkgfHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKGVkZ2VEYXRhKSByZXR1cm4gZWRnZURhdGEua2V5O1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgdGhlIGVkZ2UgbWF0Y2hpbmcgc291cmNlICYgdGFyZ2V0IGluIGEgbWl4ZWQgZmFzaGlvbi5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSBzb3VyY2UgLSBUaGUgZWRnZSdzIHNvdXJjZS5cbiAgICogQHBhcmFtICB7YW55fSB0YXJnZXQgLSBUaGUgZWRnZSdzIHRhcmdldC5cbiAgICpcbiAgICogQHJldHVybiB7YW55fHVuZGVmaW5lZH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgZ3JhcGggaXMgbXVsdGkuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgc291cmNlIG9yIHRhcmdldCBkb2Vzbid0IGV4aXN0LlxuICAgKi9cbiAgZWRnZShzb3VyY2UsIHRhcmdldCkge1xuICAgIGlmICh0aGlzLm11bHRpKVxuICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLmVkZ2U6IHRoaXMgbWV0aG9kIGlzIGlycmVsZXZhbnQgd2l0aCBtdWx0aWdyYXBocyBzaW5jZSB0aGVyZSBtaWdodCBiZSBtdWx0aXBsZSBlZGdlcyBiZXR3ZWVuIHNvdXJjZSAmIHRhcmdldC4gU2VlICMuZWRnZXMgaW5zdGVhZC4nXG4gICAgICApO1xuXG4gICAgc291cmNlID0gJycgKyBzb3VyY2U7XG4gICAgdGFyZ2V0ID0gJycgKyB0YXJnZXQ7XG5cbiAgICBjb25zdCBzb3VyY2VEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KHNvdXJjZSk7XG5cbiAgICBpZiAoIXNvdXJjZURhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguZWRnZTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtzb3VyY2V9XCIgc291cmNlIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAoIXRoaXMuX25vZGVzLmhhcyh0YXJnZXQpKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLmVkZ2U6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7dGFyZ2V0fVwiIHRhcmdldCBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgY29uc3QgZWRnZURhdGEgPVxuICAgICAgKHNvdXJjZURhdGEub3V0ICYmIHNvdXJjZURhdGEub3V0W3RhcmdldF0pIHx8XG4gICAgICAoc291cmNlRGF0YS51bmRpcmVjdGVkICYmIHNvdXJjZURhdGEudW5kaXJlY3RlZFt0YXJnZXRdKSB8fFxuICAgICAgdW5kZWZpbmVkO1xuXG4gICAgaWYgKGVkZ2VEYXRhKSByZXR1cm4gZWRnZURhdGEua2V5O1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgd2hldGhlciB0d28gbm9kZXMgYXJlIGRpcmVjdGVkIG5laWdoYm9ycy5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgbm9kZSAgICAgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgbmVpZ2hib3IgLSBUaGUgbmVpZ2hib3IncyBrZXkuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIG5vZGUgaXNuJ3QgaW4gdGhlIGdyYXBoLlxuICAgKi9cbiAgYXJlRGlyZWN0ZWROZWlnaGJvcnMobm9kZSwgbmVpZ2hib3IpIHtcbiAgICBub2RlID0gJycgKyBub2RlO1xuICAgIG5laWdoYm9yID0gJycgKyBuZWlnaGJvcjtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFub2RlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5hcmVEaXJlY3RlZE5laWdoYm9yczogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAndW5kaXJlY3RlZCcpIHJldHVybiBmYWxzZTtcblxuICAgIHJldHVybiBuZWlnaGJvciBpbiBub2RlRGF0YS5pbiB8fCBuZWlnaGJvciBpbiBub2RlRGF0YS5vdXQ7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB3aGV0aGVyIHR3byBub2RlcyBhcmUgb3V0IG5laWdoYm9ycy5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgbm9kZSAgICAgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgbmVpZ2hib3IgLSBUaGUgbmVpZ2hib3IncyBrZXkuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIG5vZGUgaXNuJ3QgaW4gdGhlIGdyYXBoLlxuICAgKi9cbiAgYXJlT3V0TmVpZ2hib3JzKG5vZGUsIG5laWdoYm9yKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcbiAgICBuZWlnaGJvciA9ICcnICsgbmVpZ2hib3I7XG5cbiAgICBjb25zdCBub2RlRGF0YSA9IHRoaXMuX25vZGVzLmdldChub2RlKTtcblxuICAgIGlmICghbm9kZURhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguYXJlT3V0TmVpZ2hib3JzOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke25vZGV9XCIgbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd1bmRpcmVjdGVkJykgcmV0dXJuIGZhbHNlO1xuXG4gICAgcmV0dXJuIG5laWdoYm9yIGluIG5vZGVEYXRhLm91dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHdoZXRoZXIgdHdvIG5vZGVzIGFyZSBpbiBuZWlnaGJvcnMuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgICAgIC0gVGhlIG5vZGUncyBrZXkuXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5laWdoYm9yIC0gVGhlIG5laWdoYm9yJ3Mga2V5LlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIGFyZUluTmVpZ2hib3JzKG5vZGUsIG5laWdoYm9yKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcbiAgICBuZWlnaGJvciA9ICcnICsgbmVpZ2hib3I7XG5cbiAgICBjb25zdCBub2RlRGF0YSA9IHRoaXMuX25vZGVzLmdldChub2RlKTtcblxuICAgIGlmICghbm9kZURhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguYXJlSW5OZWlnaGJvcnM6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3VuZGlyZWN0ZWQnKSByZXR1cm4gZmFsc2U7XG5cbiAgICByZXR1cm4gbmVpZ2hib3IgaW4gbm9kZURhdGEuaW47XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB3aGV0aGVyIHR3byBub2RlcyBhcmUgdW5kaXJlY3RlZCBuZWlnaGJvcnMuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgICAgIC0gVGhlIG5vZGUncyBrZXkuXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5laWdoYm9yIC0gVGhlIG5laWdoYm9yJ3Mga2V5LlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIGFyZVVuZGlyZWN0ZWROZWlnaGJvcnMobm9kZSwgbmVpZ2hib3IpIHtcbiAgICBub2RlID0gJycgKyBub2RlO1xuICAgIG5laWdoYm9yID0gJycgKyBuZWlnaGJvcjtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFub2RlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5hcmVVbmRpcmVjdGVkTmVpZ2hib3JzOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke25vZGV9XCIgbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdkaXJlY3RlZCcpIHJldHVybiBmYWxzZTtcblxuICAgIHJldHVybiBuZWlnaGJvciBpbiBub2RlRGF0YS51bmRpcmVjdGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgd2hldGhlciB0d28gbm9kZXMgYXJlIG5laWdoYm9ycy5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgbm9kZSAgICAgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgbmVpZ2hib3IgLSBUaGUgbmVpZ2hib3IncyBrZXkuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIG5vZGUgaXNuJ3QgaW4gdGhlIGdyYXBoLlxuICAgKi9cbiAgYXJlTmVpZ2hib3JzKG5vZGUsIG5laWdoYm9yKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcbiAgICBuZWlnaGJvciA9ICcnICsgbmVpZ2hib3I7XG5cbiAgICBjb25zdCBub2RlRGF0YSA9IHRoaXMuX25vZGVzLmdldChub2RlKTtcblxuICAgIGlmICghbm9kZURhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguYXJlTmVpZ2hib3JzOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke25vZGV9XCIgbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGlmICh0aGlzLnR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgICAgaWYgKG5laWdoYm9yIGluIG5vZGVEYXRhLmluIHx8IG5laWdoYm9yIGluIG5vZGVEYXRhLm91dCkgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ2RpcmVjdGVkJykge1xuICAgICAgaWYgKG5laWdoYm9yIGluIG5vZGVEYXRhLnVuZGlyZWN0ZWQpIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHdoZXRoZXIgdHdvIG5vZGVzIGFyZSBpbmJvdW5kIG5laWdoYm9ycy5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgbm9kZSAgICAgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgbmVpZ2hib3IgLSBUaGUgbmVpZ2hib3IncyBrZXkuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIG5vZGUgaXNuJ3QgaW4gdGhlIGdyYXBoLlxuICAgKi9cbiAgYXJlSW5ib3VuZE5laWdoYm9ycyhub2RlLCBuZWlnaGJvcikge1xuICAgIG5vZGUgPSAnJyArIG5vZGU7XG4gICAgbmVpZ2hib3IgPSAnJyArIG5laWdoYm9yO1xuXG4gICAgY29uc3Qgbm9kZURhdGEgPSB0aGlzLl9ub2Rlcy5nZXQobm9kZSk7XG5cbiAgICBpZiAoIW5vZGVEYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLmFyZUluYm91bmROZWlnaGJvcnM6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ3VuZGlyZWN0ZWQnKSB7XG4gICAgICBpZiAobmVpZ2hib3IgaW4gbm9kZURhdGEuaW4pIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgIT09ICdkaXJlY3RlZCcpIHtcbiAgICAgIGlmIChuZWlnaGJvciBpbiBub2RlRGF0YS51bmRpcmVjdGVkKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB3aGV0aGVyIHR3byBub2RlcyBhcmUgb3V0Ym91bmQgbmVpZ2hib3JzLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBub2RlICAgICAtIFRoZSBub2RlJ3Mga2V5LlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBuZWlnaGJvciAtIFRoZSBuZWlnaGJvcidzIGtleS5cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgbm9kZSBpc24ndCBpbiB0aGUgZ3JhcGguXG4gICAqL1xuICBhcmVPdXRib3VuZE5laWdoYm9ycyhub2RlLCBuZWlnaGJvcikge1xuICAgIG5vZGUgPSAnJyArIG5vZGU7XG4gICAgbmVpZ2hib3IgPSAnJyArIG5laWdoYm9yO1xuXG4gICAgY29uc3Qgbm9kZURhdGEgPSB0aGlzLl9ub2Rlcy5nZXQobm9kZSk7XG5cbiAgICBpZiAoIW5vZGVEYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLmFyZU91dGJvdW5kTmVpZ2hib3JzOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke25vZGV9XCIgbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGlmICh0aGlzLnR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgICAgaWYgKG5laWdoYm9yIGluIG5vZGVEYXRhLm91dCkgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ2RpcmVjdGVkJykge1xuICAgICAgaWYgKG5laWdoYm9yIGluIG5vZGVEYXRhLnVuZGlyZWN0ZWQpIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHRoZSBnaXZlbiBub2RlJ3MgaW4gZGVncmVlLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBub2RlIC0gVGhlIG5vZGUncyBrZXkuXG4gICAqIEByZXR1cm4ge251bWJlcn0gICAgICAgLSBUaGUgbm9kZSdzIGluIGRlZ3JlZS5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgbm9kZSBpc24ndCBpbiB0aGUgZ3JhcGguXG4gICAqL1xuICBpbkRlZ3JlZShub2RlKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFub2RlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5pbkRlZ3JlZTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAndW5kaXJlY3RlZCcpIHJldHVybiAwO1xuXG4gICAgcmV0dXJuIG5vZGVEYXRhLmluRGVncmVlICsgbm9kZURhdGEuZGlyZWN0ZWRTZWxmTG9vcHM7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZ2l2ZW4gbm9kZSdzIG91dCBkZWdyZWUuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHJldHVybiB7bnVtYmVyfSAgICAgICAtIFRoZSBub2RlJ3MgaW4gZGVncmVlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIG91dERlZ3JlZShub2RlKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFub2RlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5vdXREZWdyZWU6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3VuZGlyZWN0ZWQnKSByZXR1cm4gMDtcblxuICAgIHJldHVybiBub2RlRGF0YS5vdXREZWdyZWUgKyBub2RlRGF0YS5kaXJlY3RlZFNlbGZMb29wcztcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHRoZSBnaXZlbiBub2RlJ3MgZGlyZWN0ZWQgZGVncmVlLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBub2RlIC0gVGhlIG5vZGUncyBrZXkuXG4gICAqIEByZXR1cm4ge251bWJlcn0gICAgICAgLSBUaGUgbm9kZSdzIGluIGRlZ3JlZS5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgbm9kZSBpc24ndCBpbiB0aGUgZ3JhcGguXG4gICAqL1xuICBkaXJlY3RlZERlZ3JlZShub2RlKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFub2RlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5kaXJlY3RlZERlZ3JlZTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAndW5kaXJlY3RlZCcpIHJldHVybiAwO1xuXG4gICAgY29uc3QgbG9vcHMgPSBub2RlRGF0YS5kaXJlY3RlZFNlbGZMb29wcztcblxuICAgIGNvbnN0IGluRGVncmVlID0gbm9kZURhdGEuaW5EZWdyZWUgKyBsb29wcztcbiAgICBjb25zdCBvdXREZWdyZWUgPSBub2RlRGF0YS5vdXREZWdyZWUgKyBsb29wcztcblxuICAgIHJldHVybiBpbkRlZ3JlZSArIG91dERlZ3JlZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHRoZSBnaXZlbiBub2RlJ3MgdW5kaXJlY3RlZCBkZWdyZWUuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHJldHVybiB7bnVtYmVyfSAgICAgICAtIFRoZSBub2RlJ3MgaW4gZGVncmVlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIHVuZGlyZWN0ZWREZWdyZWUobm9kZSkge1xuICAgIG5vZGUgPSAnJyArIG5vZGU7XG5cbiAgICBjb25zdCBub2RlRGF0YSA9IHRoaXMuX25vZGVzLmdldChub2RlKTtcblxuICAgIGlmICghbm9kZURhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGgudW5kaXJlY3RlZERlZ3JlZTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAnZGlyZWN0ZWQnKSByZXR1cm4gMDtcblxuICAgIGNvbnN0IGxvb3BzID0gbm9kZURhdGEudW5kaXJlY3RlZFNlbGZMb29wcztcblxuICAgIHJldHVybiBub2RlRGF0YS51bmRpcmVjdGVkRGVncmVlICsgbG9vcHMgKiAyO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgdGhlIGdpdmVuIG5vZGUncyBkaXJlY3RlZCBkZWdyZWUuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHJldHVybiB7bnVtYmVyfSAgICAgICAtIFRoZSBub2RlJ3MgaW4gZGVncmVlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIGRlZ3JlZShub2RlKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFub2RlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5kZWdyZWU6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgbGV0IGRlZ3JlZSA9IDA7XG5cbiAgICBpZiAodGhpcy50eXBlICE9PSAnZGlyZWN0ZWQnKSB7XG4gICAgICBkZWdyZWUgKz0gbm9kZURhdGEudW5kaXJlY3RlZERlZ3JlZSArIG5vZGVEYXRhLnVuZGlyZWN0ZWRTZWxmTG9vcHMgKiAyO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgICAgZGVncmVlICs9XG4gICAgICAgIG5vZGVEYXRhLmluRGVncmVlICsgbm9kZURhdGEub3V0RGVncmVlICsgbm9kZURhdGEuZGlyZWN0ZWRTZWxmTG9vcHMgKiAyO1xuICAgIH1cblxuICAgIHJldHVybiBkZWdyZWU7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZ2l2ZW4gbm9kZSdzIGluIGRlZ3JlZSB3aXRob3V0IGNvbnNpZGVyaW5nIHNlbGYgbG9vcHMuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHJldHVybiB7bnVtYmVyfSAgICAgICAtIFRoZSBub2RlJ3MgaW4gZGVncmVlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIGluRGVncmVlV2l0aG91dFNlbGZMb29wcyhub2RlKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFub2RlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5pbkRlZ3JlZVdpdGhvdXRTZWxmTG9vcHM6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3VuZGlyZWN0ZWQnKSByZXR1cm4gMDtcblxuICAgIHJldHVybiBub2RlRGF0YS5pbkRlZ3JlZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHRoZSBnaXZlbiBub2RlJ3Mgb3V0IGRlZ3JlZSB3aXRob3V0IGNvbnNpZGVyaW5nIHNlbGYgbG9vcHMuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHJldHVybiB7bnVtYmVyfSAgICAgICAtIFRoZSBub2RlJ3MgaW4gZGVncmVlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIG91dERlZ3JlZVdpdGhvdXRTZWxmTG9vcHMobm9kZSkge1xuICAgIG5vZGUgPSAnJyArIG5vZGU7XG5cbiAgICBjb25zdCBub2RlRGF0YSA9IHRoaXMuX25vZGVzLmdldChub2RlKTtcblxuICAgIGlmICghbm9kZURhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGgub3V0RGVncmVlV2l0aG91dFNlbGZMb29wczogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAndW5kaXJlY3RlZCcpIHJldHVybiAwO1xuXG4gICAgcmV0dXJuIG5vZGVEYXRhLm91dERlZ3JlZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHRoZSBnaXZlbiBub2RlJ3MgZGlyZWN0ZWQgZGVncmVlIHdpdGhvdXQgY29uc2lkZXJpbmcgc2VsZiBsb29wcy5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgbm9kZSAtIFRoZSBub2RlJ3Mga2V5LlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9ICAgICAgIC0gVGhlIG5vZGUncyBpbiBkZWdyZWUuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIG5vZGUgaXNuJ3QgaW4gdGhlIGdyYXBoLlxuICAgKi9cbiAgZGlyZWN0ZWREZWdyZWVXaXRob3V0U2VsZkxvb3BzKG5vZGUpIHtcbiAgICBub2RlID0gJycgKyBub2RlO1xuXG4gICAgY29uc3Qgbm9kZURhdGEgPSB0aGlzLl9ub2Rlcy5nZXQobm9kZSk7XG5cbiAgICBpZiAoIW5vZGVEYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLmRpcmVjdGVkRGVncmVlV2l0aG91dFNlbGZMb29wczogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAndW5kaXJlY3RlZCcpIHJldHVybiAwO1xuXG4gICAgcmV0dXJuIG5vZGVEYXRhLmluRGVncmVlICsgbm9kZURhdGEub3V0RGVncmVlO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgdGhlIGdpdmVuIG5vZGUncyB1bmRpcmVjdGVkIGRlZ3JlZSB3aXRob3V0IGNvbnNpZGVyaW5nIHNlbGYgbG9vcHMuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHJldHVybiB7bnVtYmVyfSAgICAgICAtIFRoZSBub2RlJ3MgaW4gZGVncmVlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIHVuZGlyZWN0ZWREZWdyZWVXaXRob3V0U2VsZkxvb3BzKG5vZGUpIHtcbiAgICBub2RlID0gJycgKyBub2RlO1xuXG4gICAgY29uc3Qgbm9kZURhdGEgPSB0aGlzLl9ub2Rlcy5nZXQobm9kZSk7XG5cbiAgICBpZiAoIW5vZGVEYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLnVuZGlyZWN0ZWREZWdyZWVXaXRob3V0U2VsZkxvb3BzOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke25vZGV9XCIgbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdkaXJlY3RlZCcpIHJldHVybiAwO1xuXG4gICAgcmV0dXJuIG5vZGVEYXRhLnVuZGlyZWN0ZWREZWdyZWU7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZ2l2ZW4gbm9kZSdzIGRpcmVjdGVkIGRlZ3JlZSB3aXRob3V0IGNvbnNpZGVyaW5nIHNlbGYgbG9vcHMuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHJldHVybiB7bnVtYmVyfSAgICAgICAtIFRoZSBub2RlJ3MgaW4gZGVncmVlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIGRlZ3JlZVdpdGhvdXRTZWxmTG9vcHMobm9kZSkge1xuICAgIG5vZGUgPSAnJyArIG5vZGU7XG5cbiAgICBjb25zdCBub2RlRGF0YSA9IHRoaXMuX25vZGVzLmdldChub2RlKTtcblxuICAgIGlmICghbm9kZURhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguZGVncmVlV2l0aG91dFNlbGZMb29wczogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBsZXQgZGVncmVlID0gMDtcblxuICAgIGlmICh0aGlzLnR5cGUgIT09ICdkaXJlY3RlZCcpIHtcbiAgICAgIGRlZ3JlZSArPSBub2RlRGF0YS51bmRpcmVjdGVkRGVncmVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgICAgZGVncmVlICs9IG5vZGVEYXRhLmluRGVncmVlICsgbm9kZURhdGEub3V0RGVncmVlO1xuICAgIH1cblxuICAgIHJldHVybiBkZWdyZWU7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZ2l2ZW4gZWRnZSdzIHNvdXJjZS5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSBlZGdlIC0gVGhlIGVkZ2UncyBrZXkuXG4gICAqIEByZXR1cm4ge2FueX0gICAgICAtIFRoZSBlZGdlJ3Mgc291cmNlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBlZGdlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIHNvdXJjZShlZGdlKSB7XG4gICAgZWRnZSA9ICcnICsgZWRnZTtcblxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9lZGdlcy5nZXQoZWRnZSk7XG5cbiAgICBpZiAoIWRhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguc291cmNlOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VkZ2V9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIHJldHVybiBkYXRhLnNvdXJjZS5rZXk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZ2l2ZW4gZWRnZSdzIHRhcmdldC5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSBlZGdlIC0gVGhlIGVkZ2UncyBrZXkuXG4gICAqIEByZXR1cm4ge2FueX0gICAgICAtIFRoZSBlZGdlJ3MgdGFyZ2V0LlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBlZGdlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIHRhcmdldChlZGdlKSB7XG4gICAgZWRnZSA9ICcnICsgZWRnZTtcblxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9lZGdlcy5nZXQoZWRnZSk7XG5cbiAgICBpZiAoIWRhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGgudGFyZ2V0OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VkZ2V9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIHJldHVybiBkYXRhLnRhcmdldC5rZXk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZ2l2ZW4gZWRnZSdzIGV4dHJlbWl0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgZWRnZSAtIFRoZSBlZGdlJ3Mga2V5LlxuICAgKiBAcmV0dXJuIHthcnJheX0gICAgICAtIFRoZSBlZGdlJ3MgZXh0cmVtaXRpZXMuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIGVkZ2UgaXNuJ3QgaW4gdGhlIGdyYXBoLlxuICAgKi9cbiAgZXh0cmVtaXRpZXMoZWRnZSkge1xuICAgIGVkZ2UgPSAnJyArIGVkZ2U7XG5cbiAgICBjb25zdCBlZGdlRGF0YSA9IHRoaXMuX2VkZ2VzLmdldChlZGdlKTtcblxuICAgIGlmICghZWRnZURhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguZXh0cmVtaXRpZXM6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWRnZX1cIiBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgcmV0dXJuIFtlZGdlRGF0YS5zb3VyY2Uua2V5LCBlZGdlRGF0YS50YXJnZXQua2V5XTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiBhIG5vZGUgJiBhbiBlZGdlLCByZXR1cm5zIHRoZSBvdGhlciBleHRyZW1pdHkgb2YgdGhlIGVkZ2UuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICBub2RlIC0gVGhlIG5vZGUncyBrZXkuXG4gICAqIEBwYXJhbSAge2FueX0gICBlZGdlIC0gVGhlIGVkZ2UncyBrZXkuXG4gICAqIEByZXR1cm4ge2FueX0gICAgICAgIC0gVGhlIHJlbGF0ZWQgbm9kZS5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgZWRnZSBpc24ndCBpbiB0aGUgZ3JhcGggb3IgaWYgdGhlXG4gICAqICAgICAgICAgICAgICAgICAgIGVkZ2UgJiBub2RlIGFyZSBub3QgcmVsYXRlZC5cbiAgICovXG4gIG9wcG9zaXRlKG5vZGUsIGVkZ2UpIHtcbiAgICBub2RlID0gJycgKyBub2RlO1xuICAgIGVkZ2UgPSAnJyArIGVkZ2U7XG5cbiAgICBjb25zdCBkYXRhID0gdGhpcy5fZWRnZXMuZ2V0KGVkZ2UpO1xuXG4gICAgaWYgKCFkYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLm9wcG9zaXRlOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VkZ2V9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGNvbnN0IHNvdXJjZSA9IGRhdGEuc291cmNlLmtleTtcbiAgICBjb25zdCB0YXJnZXQgPSBkYXRhLnRhcmdldC5rZXk7XG5cbiAgICBpZiAobm9kZSA9PT0gc291cmNlKSByZXR1cm4gdGFyZ2V0O1xuICAgIGlmIChub2RlID09PSB0YXJnZXQpIHJldHVybiBzb3VyY2U7XG5cbiAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLm9wcG9zaXRlOiB0aGUgXCIke25vZGV9XCIgbm9kZSBpcyBub3QgYXR0YWNoZWQgdG8gdGhlIFwiJHtlZGdlfVwiIGVkZ2UgKCR7c291cmNlfSwgJHt0YXJnZXR9KS5gXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGdpdmVuIGVkZ2UgaGFzIHRoZSBnaXZlbiBub2RlIGFzIGV4dHJlbWl0eS5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgZWRnZSAtIFRoZSBlZGdlJ3Mga2V5LlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBub2RlIC0gVGhlIG5vZGUncyBrZXkuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59ICAgICAgLSBUaGUgcmVsYXRlZCBub2RlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIGVpdGhlciB0aGUgbm9kZSBvciB0aGUgZWRnZSBpc24ndCBpbiB0aGUgZ3JhcGguXG4gICAqL1xuICBoYXNFeHRyZW1pdHkoZWRnZSwgbm9kZSkge1xuICAgIGVkZ2UgPSAnJyArIGVkZ2U7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9lZGdlcy5nZXQoZWRnZSk7XG5cbiAgICBpZiAoIWRhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguaGFzRXh0cmVtaXR5OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VkZ2V9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIHJldHVybiBkYXRhLnNvdXJjZS5rZXkgPT09IG5vZGUgfHwgZGF0YS50YXJnZXQua2V5ID09PSBub2RlO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgd2hldGhlciB0aGUgZ2l2ZW4gZWRnZSBpcyB1bmRpcmVjdGVkLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBlZGdlIC0gVGhlIGVkZ2UncyBrZXkuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIGVkZ2UgaXNuJ3QgaW4gdGhlIGdyYXBoLlxuICAgKi9cbiAgaXNVbmRpcmVjdGVkKGVkZ2UpIHtcbiAgICBlZGdlID0gJycgKyBlZGdlO1xuXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuX2VkZ2VzLmdldChlZGdlKTtcblxuICAgIGlmICghZGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5pc1VuZGlyZWN0ZWQ6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWRnZX1cIiBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgcmV0dXJuIGRhdGEudW5kaXJlY3RlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHdoZXRoZXIgdGhlIGdpdmVuIGVkZ2UgaXMgZGlyZWN0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIGVkZ2UgLSBUaGUgZWRnZSdzIGtleS5cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgZWRnZSBpc24ndCBpbiB0aGUgZ3JhcGguXG4gICAqL1xuICBpc0RpcmVjdGVkKGVkZ2UpIHtcbiAgICBlZGdlID0gJycgKyBlZGdlO1xuXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuX2VkZ2VzLmdldChlZGdlKTtcblxuICAgIGlmICghZGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5pc0RpcmVjdGVkOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VkZ2V9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIHJldHVybiAhZGF0YS51bmRpcmVjdGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgd2hldGhlciB0aGUgZ2l2ZW4gZWRnZSBpcyBhIHNlbGYgbG9vcC5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgZWRnZSAtIFRoZSBlZGdlJ3Mga2V5LlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBlZGdlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIGlzU2VsZkxvb3AoZWRnZSkge1xuICAgIGVkZ2UgPSAnJyArIGVkZ2U7XG5cbiAgICBjb25zdCBkYXRhID0gdGhpcy5fZWRnZXMuZ2V0KGVkZ2UpO1xuXG4gICAgaWYgKCFkYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLmlzU2VsZkxvb3A6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWRnZX1cIiBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgcmV0dXJuIGRhdGEuc291cmNlID09PSBkYXRhLnRhcmdldDtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBNdXRhdGlvblxuICAgKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICovXG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2VkIHRvIGFkZCBhIG5vZGUgdG8gdGhlIGdyYXBoLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgIG5vZGUgICAgICAgICAtIFRoZSBub2RlLlxuICAgKiBAcGFyYW0gIHtvYmplY3R9IFthdHRyaWJ1dGVzXSAtIE9wdGlvbmFsIGF0dHJpYnV0ZXMuXG4gICAqIEByZXR1cm4ge2FueX0gICAgICAgICAgICAgICAgIC0gVGhlIG5vZGUuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIGdpdmVuIG5vZGUgYWxyZWFkeSBleGlzdC5cbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgZ2l2ZW4gYXR0cmlidXRlcyBhcmUgbm90IGFuIG9iamVjdC5cbiAgICovXG4gIGFkZE5vZGUobm9kZSwgYXR0cmlidXRlcykge1xuICAgIGNvbnN0IG5vZGVEYXRhID0gYWRkTm9kZSh0aGlzLCBub2RlLCBhdHRyaWJ1dGVzKTtcblxuICAgIHJldHVybiBub2RlRGF0YS5rZXk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgdG8gbWVyZ2UgYSBub2RlIGludG8gdGhlIGdyYXBoLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgIG5vZGUgICAgICAgICAtIFRoZSBub2RlLlxuICAgKiBAcGFyYW0gIHtvYmplY3R9IFthdHRyaWJ1dGVzXSAtIE9wdGlvbmFsIGF0dHJpYnV0ZXMuXG4gICAqIEByZXR1cm4ge2FueX0gICAgICAgICAgICAgICAgIC0gVGhlIG5vZGUuXG4gICAqL1xuICBtZXJnZU5vZGUobm9kZSwgYXR0cmlidXRlcykge1xuICAgIGlmIChhdHRyaWJ1dGVzICYmICFpc1BsYWluT2JqZWN0KGF0dHJpYnV0ZXMpKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGgubWVyZ2VOb2RlOiBpbnZhbGlkIGF0dHJpYnV0ZXMuIEV4cGVjdGluZyBhbiBvYmplY3QgYnV0IGdvdCBcIiR7YXR0cmlidXRlc31cImBcbiAgICAgICk7XG5cbiAgICAvLyBTdHJpbmcgY29lcmNpb25cbiAgICBub2RlID0gJycgKyBub2RlO1xuICAgIGF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzIHx8IHt9O1xuXG4gICAgLy8gSWYgdGhlIG5vZGUgYWxyZWFkeSBleGlzdHMsIHdlIG1lcmdlIHRoZSBhdHRyaWJ1dGVzXG4gICAgbGV0IGRhdGEgPSB0aGlzLl9ub2Rlcy5nZXQobm9kZSk7XG5cbiAgICBpZiAoZGF0YSkge1xuICAgICAgaWYgKGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgYXNzaWduKGRhdGEuYXR0cmlidXRlcywgYXR0cmlidXRlcyk7XG5cbiAgICAgICAgdGhpcy5lbWl0KCdub2RlQXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICAgICAgdHlwZTogJ21lcmdlJyxcbiAgICAgICAgICBrZXk6IG5vZGUsXG4gICAgICAgICAgYXR0cmlidXRlczogZGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgIGRhdGE6IGF0dHJpYnV0ZXNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW25vZGUsIGZhbHNlXTtcbiAgICB9XG5cbiAgICBkYXRhID0gbmV3IHRoaXMuTm9kZURhdGFDbGFzcyhub2RlLCBhdHRyaWJ1dGVzKTtcblxuICAgIC8vIEFkZGluZyB0aGUgbm9kZSB0byBpbnRlcm5hbCByZWdpc3RlclxuICAgIHRoaXMuX25vZGVzLnNldChub2RlLCBkYXRhKTtcblxuICAgIC8vIEVtaXR0aW5nXG4gICAgdGhpcy5lbWl0KCdub2RlQWRkZWQnLCB7XG4gICAgICBrZXk6IG5vZGUsXG4gICAgICBhdHRyaWJ1dGVzXG4gICAgfSk7XG5cbiAgICByZXR1cm4gW25vZGUsIHRydWVdO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2VkIHRvIGFkZCBhIG5vZGUgaWYgaXQgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGdyYXBoIG9yIGVsc2UgdG9cbiAgICogdXBkYXRlIGl0cyBhdHRyaWJ1dGVzIHVzaW5nIGEgZnVuY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgICBub2RlICAgICAgLSBUaGUgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IFt1cGRhdGVyXSAtIE9wdGlvbmFsIHVwZGF0ZXIgZnVuY3Rpb24uXG4gICAqIEByZXR1cm4ge2FueX0gICAgICAgICAgICAgICAgLSBUaGUgbm9kZS5cbiAgICovXG4gIHVwZGF0ZU5vZGUobm9kZSwgdXBkYXRlcikge1xuICAgIGlmICh1cGRhdGVyICYmIHR5cGVvZiB1cGRhdGVyICE9PSAnZnVuY3Rpb24nKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGgudXBkYXRlTm9kZTogaW52YWxpZCB1cGRhdGVyIGZ1bmN0aW9uLiBFeHBlY3RpbmcgYSBmdW5jdGlvbiBidXQgZ290IFwiJHt1cGRhdGVyfVwiYFxuICAgICAgKTtcblxuICAgIC8vIFN0cmluZyBjb2VyY2lvblxuICAgIG5vZGUgPSAnJyArIG5vZGU7XG5cbiAgICAvLyBJZiB0aGUgbm9kZSBhbHJlYWR5IGV4aXN0cywgd2UgdXBkYXRlIHRoZSBhdHRyaWJ1dGVzXG4gICAgbGV0IGRhdGEgPSB0aGlzLl9ub2Rlcy5nZXQobm9kZSk7XG5cbiAgICBpZiAoZGF0YSkge1xuICAgICAgaWYgKHVwZGF0ZXIpIHtcbiAgICAgICAgY29uc3Qgb2xkQXR0cmlidXRlcyA9IGRhdGEuYXR0cmlidXRlcztcbiAgICAgICAgZGF0YS5hdHRyaWJ1dGVzID0gdXBkYXRlcihvbGRBdHRyaWJ1dGVzKTtcblxuICAgICAgICB0aGlzLmVtaXQoJ25vZGVBdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgICAgICB0eXBlOiAncmVwbGFjZScsXG4gICAgICAgICAga2V5OiBub2RlLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlc1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbbm9kZSwgZmFsc2VdO1xuICAgIH1cblxuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB1cGRhdGVyID8gdXBkYXRlcih7fSkgOiB7fTtcblxuICAgIGRhdGEgPSBuZXcgdGhpcy5Ob2RlRGF0YUNsYXNzKG5vZGUsIGF0dHJpYnV0ZXMpO1xuXG4gICAgLy8gQWRkaW5nIHRoZSBub2RlIHRvIGludGVybmFsIHJlZ2lzdGVyXG4gICAgdGhpcy5fbm9kZXMuc2V0KG5vZGUsIGRhdGEpO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ25vZGVBZGRlZCcsIHtcbiAgICAgIGtleTogbm9kZSxcbiAgICAgIGF0dHJpYnV0ZXNcbiAgICB9KTtcblxuICAgIHJldHVybiBbbm9kZSwgdHJ1ZV07XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgdG8gZHJvcCBhIHNpbmdsZSBub2RlICYgYWxsIGl0cyBhdHRhY2hlZCBlZGdlcyBmcm9tIHRoZSBncmFwaC5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICBub2RlIC0gVGhlIG5vZGUuXG4gICAqIEByZXR1cm4ge0dyYXBofVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGRvZXNuJ3QgZXhpc3QuXG4gICAqL1xuICBkcm9wTm9kZShub2RlKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFub2RlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5kcm9wTm9kZTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICAvLyBSZW1vdmluZyBhdHRhY2hlZCBlZGdlc1xuICAgIC8vIFRPRE86IHdlIGNvdWxkIGRvIGZhc3RlclxuICAgIHRoaXMuZm9yRWFjaEVkZ2Uobm9kZSwgZWRnZSA9PiB7XG4gICAgICB0aGlzLmRyb3BFZGdlKGVkZ2UpO1xuICAgIH0pO1xuXG4gICAgLy8gRHJvcHBpbmcgdGhlIG5vZGUgZnJvbSB0aGUgcmVnaXN0ZXJcbiAgICB0aGlzLl9ub2Rlcy5kZWxldGUobm9kZSk7XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnbm9kZURyb3BwZWQnLCB7XG4gICAgICBrZXk6IG5vZGUsXG4gICAgICBhdHRyaWJ1dGVzOiBub2RlRGF0YS5hdHRyaWJ1dGVzXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgdG8gZHJvcCBhIHNpbmdsZSBlZGdlIGZyb20gdGhlIGdyYXBoLlxuICAgKlxuICAgKiBBcml0eSAxOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgIGVkZ2UgLSBUaGUgZWRnZS5cbiAgICpcbiAgICogQXJpdHkgMjpcbiAgICogQHBhcmFtICB7YW55fSAgICBzb3VyY2UgLSBTb3VyY2Ugbm9kZS5cbiAgICogQHBhcmFtICB7YW55fSAgICB0YXJnZXQgLSBUYXJnZXQgbm9kZS5cbiAgICpcbiAgICogQHJldHVybiB7R3JhcGh9XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIGVkZ2UgZG9lc24ndCBleGlzdC5cbiAgICovXG4gIGRyb3BFZGdlKGVkZ2UpIHtcbiAgICBsZXQgZWRnZURhdGE7XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnN0IHNvdXJjZSA9ICcnICsgYXJndW1lbnRzWzBdLFxuICAgICAgICB0YXJnZXQgPSAnJyArIGFyZ3VtZW50c1sxXTtcblxuICAgICAgZWRnZURhdGEgPSBnZXRNYXRjaGluZ0VkZ2UodGhpcywgc291cmNlLCB0YXJnZXQsIHRoaXMudHlwZSk7XG5cbiAgICAgIGlmICghZWRnZURhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLmRyb3BFZGdlOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke3NvdXJjZX1cIiAtPiBcIiR7dGFyZ2V0fVwiIGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWRnZSA9ICcnICsgZWRnZTtcblxuICAgICAgZWRnZURhdGEgPSB0aGlzLl9lZGdlcy5nZXQoZWRnZSk7XG5cbiAgICAgIGlmICghZWRnZURhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLmRyb3BFZGdlOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VkZ2V9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIERyb3BwaW5nIHRoZSBlZGdlIGZyb20gdGhlIHJlZ2lzdGVyXG4gICAgdGhpcy5fZWRnZXMuZGVsZXRlKGVkZ2VEYXRhLmtleSk7XG5cbiAgICAvLyBVcGRhdGluZyByZWxhdGVkIGRlZ3JlZXNcbiAgICBjb25zdCB7c291cmNlOiBzb3VyY2VEYXRhLCB0YXJnZXQ6IHRhcmdldERhdGEsIGF0dHJpYnV0ZXN9ID0gZWRnZURhdGE7XG5cbiAgICBjb25zdCB1bmRpcmVjdGVkID0gZWRnZURhdGEudW5kaXJlY3RlZDtcblxuICAgIGlmIChzb3VyY2VEYXRhID09PSB0YXJnZXREYXRhKSB7XG4gICAgICBpZiAodW5kaXJlY3RlZCkge1xuICAgICAgICBzb3VyY2VEYXRhLnVuZGlyZWN0ZWRTZWxmTG9vcHMtLTtcbiAgICAgICAgdGhpcy5fdW5kaXJlY3RlZFNlbGZMb29wQ291bnQtLTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNvdXJjZURhdGEuZGlyZWN0ZWRTZWxmTG9vcHMtLTtcbiAgICAgICAgdGhpcy5fZGlyZWN0ZWRTZWxmTG9vcENvdW50LS07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh1bmRpcmVjdGVkKSB7XG4gICAgICAgIHNvdXJjZURhdGEudW5kaXJlY3RlZERlZ3JlZS0tO1xuICAgICAgICB0YXJnZXREYXRhLnVuZGlyZWN0ZWREZWdyZWUtLTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNvdXJjZURhdGEub3V0RGVncmVlLS07XG4gICAgICAgIHRhcmdldERhdGEuaW5EZWdyZWUtLTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGVhcmluZyBpbmRleFxuICAgIGNsZWFyRWRnZUZyb21TdHJ1Y3R1cmVJbmRleCh0aGlzLCB1bmRpcmVjdGVkLCBlZGdlRGF0YSk7XG5cbiAgICBpZiAodW5kaXJlY3RlZCkgdGhpcy5fdW5kaXJlY3RlZFNpemUtLTtcbiAgICBlbHNlIHRoaXMuX2RpcmVjdGVkU2l6ZS0tO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ2VkZ2VEcm9wcGVkJywge1xuICAgICAga2V5OiBlZGdlLFxuICAgICAgYXR0cmlidXRlcyxcbiAgICAgIHNvdXJjZTogc291cmNlRGF0YS5rZXksXG4gICAgICB0YXJnZXQ6IHRhcmdldERhdGEua2V5LFxuICAgICAgdW5kaXJlY3RlZFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgdG8gcmVtb3ZlIGV2ZXJ5IGVkZ2UgJiBldmVyeSBub2RlIGZyb20gdGhlIGdyYXBoLlxuICAgKlxuICAgKiBAcmV0dXJuIHtHcmFwaH1cbiAgICovXG4gIGNsZWFyKCkge1xuICAgIC8vIENsZWFyaW5nIGVkZ2VzXG4gICAgdGhpcy5fZWRnZXMuY2xlYXIoKTtcblxuICAgIC8vIENsZWFyaW5nIG5vZGVzXG4gICAgdGhpcy5fbm9kZXMuY2xlYXIoKTtcblxuICAgIC8vIFJlc2V0IGNvdW50ZXJzXG4gICAgdGhpcy5fcmVzZXRJbnN0YW5jZUNvdW50ZXJzKCk7XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnY2xlYXJlZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2VkIHRvIHJlbW92ZSBldmVyeSBlZGdlIGZyb20gdGhlIGdyYXBoLlxuICAgKlxuICAgKiBAcmV0dXJuIHtHcmFwaH1cbiAgICovXG4gIGNsZWFyRWRnZXMoKSB7XG4gICAgY2xlYXJTdHJ1Y3R1cmVJbmRleCh0aGlzKTtcblxuICAgIC8vIENsZWFyaW5nIGVkZ2VzXG4gICAgdGhpcy5fZWRnZXMuY2xlYXIoKTtcblxuICAgIC8vIFJlc2V0IGNvdW50ZXJzXG4gICAgdGhpcy5fcmVzZXRJbnN0YW5jZUNvdW50ZXJzKCk7XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnZWRnZXNDbGVhcmVkJyk7XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQXR0cmlidXRlcy1yZWxhdGVkIG1ldGhvZHNcbiAgICoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqL1xuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHRoZSBkZXNpcmVkIGdyYXBoJ3MgYXR0cmlidXRlLlxuICAgKlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9IG5hbWUgLSBOYW1lIG9mIHRoZSBhdHRyaWJ1dGUuXG4gICAqIEByZXR1cm4ge2FueX1cbiAgICovXG4gIGdldEF0dHJpYnV0ZShuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F0dHJpYnV0ZXNbbmFtZV07XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZ3JhcGgncyBhdHRyaWJ1dGVzLlxuICAgKlxuICAgKiBAcmV0dXJuIHtvYmplY3R9XG4gICAqL1xuICBnZXRBdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiB0aGlzLl9hdHRyaWJ1dGVzO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgd2hldGhlciB0aGUgZ3JhcGggaGFzIHRoZSBkZXNpcmVkIGF0dHJpYnV0ZS5cbiAgICpcbiAgICogQHBhcmFtICB7c3RyaW5nfSAgbmFtZSAtIE5hbWUgb2YgdGhlIGF0dHJpYnV0ZS5cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGhhc0F0dHJpYnV0ZShuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHNldHRpbmcgYSB2YWx1ZSBmb3IgdGhlIGRlc2lyZWQgZ3JhcGgncyBhdHRyaWJ1dGUuXG4gICAqXG4gICAqIEBwYXJhbSAge3N0cmluZ30gIG5hbWUgIC0gTmFtZSBvZiB0aGUgYXR0cmlidXRlLlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICB2YWx1ZSAtIFZhbHVlIGZvciB0aGUgYXR0cmlidXRlLlxuICAgKiBAcmV0dXJuIHtHcmFwaH1cbiAgICovXG4gIHNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkge1xuICAgIHRoaXMuX2F0dHJpYnV0ZXNbbmFtZV0gPSB2YWx1ZTtcblxuICAgIC8vIEVtaXR0aW5nXG4gICAgdGhpcy5lbWl0KCdhdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgIHR5cGU6ICdzZXQnLFxuICAgICAgYXR0cmlidXRlczogdGhpcy5fYXR0cmlidXRlcyxcbiAgICAgIG5hbWVcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2luZyBhIGZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgZGVzaXJlZCBncmFwaCdzIGF0dHJpYnV0ZSdzIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9ICAgbmFtZSAgICAtIE5hbWUgb2YgdGhlIGF0dHJpYnV0ZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IHVwZGF0ZXIgLSBGdW5jdGlvbiB1c2UgdG8gdXBkYXRlIHRoZSBhdHRyaWJ1dGUncyB2YWx1ZS5cbiAgICogQHJldHVybiB7R3JhcGh9XG4gICAqL1xuICB1cGRhdGVBdHRyaWJ1dGUobmFtZSwgdXBkYXRlcikge1xuICAgIGlmICh0eXBlb2YgdXBkYXRlciAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLnVwZGF0ZUF0dHJpYnV0ZTogdXBkYXRlciBzaG91bGQgYmUgYSBmdW5jdGlvbi4nXG4gICAgICApO1xuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9hdHRyaWJ1dGVzW25hbWVdO1xuXG4gICAgdGhpcy5fYXR0cmlidXRlc1tuYW1lXSA9IHVwZGF0ZXIodmFsdWUpO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ2F0dHJpYnV0ZXNVcGRhdGVkJywge1xuICAgICAgdHlwZTogJ3NldCcsXG4gICAgICBhdHRyaWJ1dGVzOiB0aGlzLl9hdHRyaWJ1dGVzLFxuICAgICAgbmFtZVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJlbW92aW5nIHRoZSBkZXNpcmVkIGdyYXBoJ3MgYXR0cmlidXRlLlxuICAgKlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9IG5hbWUgIC0gTmFtZSBvZiB0aGUgYXR0cmlidXRlLlxuICAgKiBAcmV0dXJuIHtHcmFwaH1cbiAgICovXG4gIHJlbW92ZUF0dHJpYnV0ZShuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMuX2F0dHJpYnV0ZXNbbmFtZV07XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnYXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICB0eXBlOiAncmVtb3ZlJyxcbiAgICAgIGF0dHJpYnV0ZXM6IHRoaXMuX2F0dHJpYnV0ZXMsXG4gICAgICBuYW1lXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmVwbGFjaW5nIHRoZSBncmFwaCdzIGF0dHJpYnV0ZXMuXG4gICAqXG4gICAqIEBwYXJhbSAge29iamVjdH0gYXR0cmlidXRlcyAtIE5ldyBhdHRyaWJ1dGVzLlxuICAgKiBAcmV0dXJuIHtHcmFwaH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiBnaXZlbiBhdHRyaWJ1dGVzIGFyZSBub3QgYSBwbGFpbiBvYmplY3QuXG4gICAqL1xuICByZXBsYWNlQXR0cmlidXRlcyhhdHRyaWJ1dGVzKSB7XG4gICAgaWYgKCFpc1BsYWluT2JqZWN0KGF0dHJpYnV0ZXMpKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnR3JhcGgucmVwbGFjZUF0dHJpYnV0ZXM6IHByb3ZpZGVkIGF0dHJpYnV0ZXMgYXJlIG5vdCBhIHBsYWluIG9iamVjdC4nXG4gICAgICApO1xuXG4gICAgdGhpcy5fYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnYXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICB0eXBlOiAncmVwbGFjZScsXG4gICAgICBhdHRyaWJ1dGVzOiB0aGlzLl9hdHRyaWJ1dGVzXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgbWVyZ2luZyB0aGUgZ3JhcGgncyBhdHRyaWJ1dGVzLlxuICAgKlxuICAgKiBAcGFyYW0gIHtvYmplY3R9IGF0dHJpYnV0ZXMgLSBBdHRyaWJ1dGVzIHRvIG1lcmdlLlxuICAgKiBAcmV0dXJuIHtHcmFwaH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiBnaXZlbiBhdHRyaWJ1dGVzIGFyZSBub3QgYSBwbGFpbiBvYmplY3QuXG4gICAqL1xuICBtZXJnZUF0dHJpYnV0ZXMoYXR0cmlidXRlcykge1xuICAgIGlmICghaXNQbGFpbk9iamVjdChhdHRyaWJ1dGVzKSlcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLm1lcmdlQXR0cmlidXRlczogcHJvdmlkZWQgYXR0cmlidXRlcyBhcmUgbm90IGEgcGxhaW4gb2JqZWN0LidcbiAgICAgICk7XG5cbiAgICBhc3NpZ24odGhpcy5fYXR0cmlidXRlcywgYXR0cmlidXRlcyk7XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnYXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICB0eXBlOiAnbWVyZ2UnLFxuICAgICAgYXR0cmlidXRlczogdGhpcy5fYXR0cmlidXRlcyxcbiAgICAgIGRhdGE6IGF0dHJpYnV0ZXNcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1cGRhdGluZyB0aGUgZ3JhcGgncyBhdHRyaWJ1dGVzLlxuICAgKlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gdXBkYXRlciAtIEZ1bmN0aW9uIHVzZWQgdG8gdXBkYXRlIHRoZSBhdHRyaWJ1dGVzLlxuICAgKiBAcmV0dXJuIHtHcmFwaH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiBnaXZlbiB1cGRhdGVyIGlzIG5vdCBhIGZ1bmN0aW9uLlxuICAgKi9cbiAgdXBkYXRlQXR0cmlidXRlcyh1cGRhdGVyKSB7XG4gICAgaWYgKHR5cGVvZiB1cGRhdGVyICE9PSAnZnVuY3Rpb24nKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnR3JhcGgudXBkYXRlQXR0cmlidXRlczogcHJvdmlkZWQgdXBkYXRlciBpcyBub3QgYSBmdW5jdGlvbi4nXG4gICAgICApO1xuXG4gICAgdGhpcy5fYXR0cmlidXRlcyA9IHVwZGF0ZXIodGhpcy5fYXR0cmlidXRlcyk7XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnYXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICB0eXBlOiAndXBkYXRlJyxcbiAgICAgIGF0dHJpYnV0ZXM6IHRoaXMuX2F0dHJpYnV0ZXNcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2VkIHRvIHVwZGF0ZSBlYWNoIG5vZGUncyBhdHRyaWJ1dGVzIHVzaW5nIHRoZSBnaXZlbiBmdW5jdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gIHVwZGF0ZXIgLSBVcGRhdGVyIGZ1bmN0aW9uIHRvIHVzZS5cbiAgICogQHBhcmFtIHtvYmplY3R9ICAgIFtoaW50c10gLSBPcHRpb25hbCBoaW50cy5cbiAgICovXG4gIHVwZGF0ZUVhY2hOb2RlQXR0cmlidXRlcyh1cGRhdGVyLCBoaW50cykge1xuICAgIGlmICh0eXBlb2YgdXBkYXRlciAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLnVwZGF0ZUVhY2hOb2RlQXR0cmlidXRlczogZXhwZWN0aW5nIGFuIHVwZGF0ZXIgZnVuY3Rpb24uJ1xuICAgICAgKTtcblxuICAgIGlmIChoaW50cyAmJiAhdmFsaWRhdGVIaW50cyhoaW50cykpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC51cGRhdGVFYWNoTm9kZUF0dHJpYnV0ZXM6IGludmFsaWQgaGludHMuIEV4cGVjdGluZyBhbiBvYmplY3QgaGF2aW5nIHRoZSBmb2xsb3dpbmcgc2hhcGU6IHthdHRyaWJ1dGVzPzogW3N0cmluZ119J1xuICAgICAgKTtcblxuICAgIGNvbnN0IGl0ZXJhdG9yID0gdGhpcy5fbm9kZXMudmFsdWVzKCk7XG5cbiAgICBsZXQgc3RlcCwgbm9kZURhdGE7XG5cbiAgICB3aGlsZSAoKChzdGVwID0gaXRlcmF0b3IubmV4dCgpKSwgc3RlcC5kb25lICE9PSB0cnVlKSkge1xuICAgICAgbm9kZURhdGEgPSBzdGVwLnZhbHVlO1xuICAgICAgbm9kZURhdGEuYXR0cmlidXRlcyA9IHVwZGF0ZXIobm9kZURhdGEua2V5LCBub2RlRGF0YS5hdHRyaWJ1dGVzKTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXQoJ2VhY2hOb2RlQXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICBoaW50czogaGludHMgPyBoaW50cyA6IG51bGxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdXNlZCB0byB1cGRhdGUgZWFjaCBlZGdlJ3MgYXR0cmlidXRlcyB1c2luZyB0aGUgZ2l2ZW4gZnVuY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259ICB1cGRhdGVyIC0gVXBkYXRlciBmdW5jdGlvbiB0byB1c2UuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSAgICBbaGludHNdIC0gT3B0aW9uYWwgaGludHMuXG4gICAqL1xuICB1cGRhdGVFYWNoRWRnZUF0dHJpYnV0ZXModXBkYXRlciwgaGludHMpIHtcbiAgICBpZiAodHlwZW9mIHVwZGF0ZXIgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC51cGRhdGVFYWNoRWRnZUF0dHJpYnV0ZXM6IGV4cGVjdGluZyBhbiB1cGRhdGVyIGZ1bmN0aW9uLidcbiAgICAgICk7XG5cbiAgICBpZiAoaGludHMgJiYgIXZhbGlkYXRlSGludHMoaGludHMpKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnR3JhcGgudXBkYXRlRWFjaEVkZ2VBdHRyaWJ1dGVzOiBpbnZhbGlkIGhpbnRzLiBFeHBlY3RpbmcgYW4gb2JqZWN0IGhhdmluZyB0aGUgZm9sbG93aW5nIHNoYXBlOiB7YXR0cmlidXRlcz86IFtzdHJpbmddfSdcbiAgICAgICk7XG5cbiAgICBjb25zdCBpdGVyYXRvciA9IHRoaXMuX2VkZ2VzLnZhbHVlcygpO1xuXG4gICAgbGV0IHN0ZXAsIGVkZ2VEYXRhLCBzb3VyY2VEYXRhLCB0YXJnZXREYXRhO1xuXG4gICAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICAgIGVkZ2VEYXRhID0gc3RlcC52YWx1ZTtcbiAgICAgIHNvdXJjZURhdGEgPSBlZGdlRGF0YS5zb3VyY2U7XG4gICAgICB0YXJnZXREYXRhID0gZWRnZURhdGEudGFyZ2V0O1xuXG4gICAgICBlZGdlRGF0YS5hdHRyaWJ1dGVzID0gdXBkYXRlcihcbiAgICAgICAgZWRnZURhdGEua2V5LFxuICAgICAgICBlZGdlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICBzb3VyY2VEYXRhLmtleSxcbiAgICAgICAgdGFyZ2V0RGF0YS5rZXksXG4gICAgICAgIHNvdXJjZURhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgdGFyZ2V0RGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICBlZGdlRGF0YS51bmRpcmVjdGVkXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdCgnZWFjaEVkZ2VBdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgIGhpbnRzOiBoaW50cyA/IGhpbnRzIDogbnVsbFxuICAgIH0pO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEl0ZXJhdGlvbi1yZWxhdGVkIG1ldGhvZHNcbiAgICoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqL1xuXG4gIC8qKlxuICAgKiBNZXRob2QgaXRlcmF0aW5nIG92ZXIgdGhlIGdyYXBoJ3MgYWRqYWNlbmN5IHVzaW5nIHRoZSBnaXZlbiBjYWxsYmFjay5cbiAgICpcbiAgICogQHBhcmFtICB7ZnVuY3Rpb259ICBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAgICovXG4gIGZvckVhY2hBZGphY2VuY3lFbnRyeShjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC5mb3JFYWNoQWRqYWNlbmN5RW50cnk6IGV4cGVjdGluZyBhIGNhbGxiYWNrLidcbiAgICAgICk7XG5cbiAgICBpZiAodGhpcy5tdWx0aSkgZm9yRWFjaEFkamFjZW5jeU11bHRpKGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRoaXMsIGNhbGxiYWNrKTtcbiAgICBlbHNlIGZvckVhY2hBZGphY2VuY3lTaW1wbGUoZmFsc2UsIGZhbHNlLCBmYWxzZSwgdGhpcywgY2FsbGJhY2spO1xuICB9XG4gIGZvckVhY2hBZGphY2VuY3lFbnRyeVdpdGhPcnBoYW5zKGNhbGxiYWNrKSB7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLmZvckVhY2hBZGphY2VuY3lFbnRyeVdpdGhPcnBoYW5zOiBleHBlY3RpbmcgYSBjYWxsYmFjay4nXG4gICAgICApO1xuXG4gICAgaWYgKHRoaXMubXVsdGkpIGZvckVhY2hBZGphY2VuY3lNdWx0aShmYWxzZSwgZmFsc2UsIHRydWUsIHRoaXMsIGNhbGxiYWNrKTtcbiAgICBlbHNlIGZvckVhY2hBZGphY2VuY3lTaW1wbGUoZmFsc2UsIGZhbHNlLCB0cnVlLCB0aGlzLCBjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGl0ZXJhdGluZyBvdmVyIHRoZSBncmFwaCdzIGFzc3ltZXRyaWMgYWRqYWNlbmN5IHVzaW5nIHRoZSBnaXZlbiBjYWxsYmFjay5cbiAgICpcbiAgICogQHBhcmFtICB7ZnVuY3Rpb259ICBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAgICovXG4gIGZvckVhY2hBc3N5bWV0cmljQWRqYWNlbmN5RW50cnkoY2FsbGJhY2spIHtcbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnR3JhcGguZm9yRWFjaEFzc3ltZXRyaWNBZGphY2VuY3lFbnRyeTogZXhwZWN0aW5nIGEgY2FsbGJhY2suJ1xuICAgICAgKTtcblxuICAgIGlmICh0aGlzLm11bHRpKSBmb3JFYWNoQWRqYWNlbmN5TXVsdGkoZmFsc2UsIHRydWUsIGZhbHNlLCB0aGlzLCBjYWxsYmFjayk7XG4gICAgZWxzZSBmb3JFYWNoQWRqYWNlbmN5U2ltcGxlKGZhbHNlLCB0cnVlLCBmYWxzZSwgdGhpcywgY2FsbGJhY2spO1xuICB9XG4gIGZvckVhY2hBc3N5bWV0cmljQWRqYWNlbmN5RW50cnlXaXRoT3JwaGFucyhjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC5mb3JFYWNoQXNzeW1ldHJpY0FkamFjZW5jeUVudHJ5V2l0aE9ycGhhbnM6IGV4cGVjdGluZyBhIGNhbGxiYWNrLidcbiAgICAgICk7XG5cbiAgICBpZiAodGhpcy5tdWx0aSkgZm9yRWFjaEFkamFjZW5jeU11bHRpKGZhbHNlLCB0cnVlLCB0cnVlLCB0aGlzLCBjYWxsYmFjayk7XG4gICAgZWxzZSBmb3JFYWNoQWRqYWNlbmN5U2ltcGxlKGZhbHNlLCB0cnVlLCB0cnVlLCB0aGlzLCBjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgbGlzdCBvZiB0aGUgZ3JhcGgncyBub2Rlcy5cbiAgICpcbiAgICogQHJldHVybiB7YXJyYXl9IC0gVGhlIG5vZGVzLlxuICAgKi9cbiAgbm9kZXMoKSB7XG4gICAgaWYgKHR5cGVvZiBBcnJheS5mcm9tID09PSAnZnVuY3Rpb24nKSByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9ub2Rlcy5rZXlzKCkpO1xuXG4gICAgcmV0dXJuIHRha2UodGhpcy5fbm9kZXMua2V5cygpLCB0aGlzLl9ub2Rlcy5zaXplKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgaXRlcmF0aW5nIG92ZXIgdGhlIGdyYXBoJ3Mgbm9kZXMgdXNpbmcgdGhlIGdpdmVuIGNhbGxiYWNrLlxuICAgKlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gIGNhbGxiYWNrIC0gQ2FsbGJhY2sgKGtleSwgYXR0cmlidXRlcywgaW5kZXgpLlxuICAgKi9cbiAgZm9yRWFjaE5vZGUoY2FsbGJhY2spIHtcbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnR3JhcGguZm9yRWFjaE5vZGU6IGV4cGVjdGluZyBhIGNhbGxiYWNrLidcbiAgICAgICk7XG5cbiAgICBjb25zdCBpdGVyYXRvciA9IHRoaXMuX25vZGVzLnZhbHVlcygpO1xuXG4gICAgbGV0IHN0ZXAsIG5vZGVEYXRhO1xuXG4gICAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICAgIG5vZGVEYXRhID0gc3RlcC52YWx1ZTtcbiAgICAgIGNhbGxiYWNrKG5vZGVEYXRhLmtleSwgbm9kZURhdGEuYXR0cmlidXRlcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBpdGVyYXRpbmcgYXR0ZW1wdGluZyB0byBmaW5kIGEgbm9kZSBtYXRjaGluZyB0aGUgZ2l2ZW4gcHJlZGljYXRlXG4gICAqIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gIGNhbGxiYWNrIC0gQ2FsbGJhY2sgKGtleSwgYXR0cmlidXRlcykuXG4gICAqL1xuICBmaW5kTm9kZShjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC5maW5kTm9kZTogZXhwZWN0aW5nIGEgY2FsbGJhY2suJ1xuICAgICAgKTtcblxuICAgIGNvbnN0IGl0ZXJhdG9yID0gdGhpcy5fbm9kZXMudmFsdWVzKCk7XG5cbiAgICBsZXQgc3RlcCwgbm9kZURhdGE7XG5cbiAgICB3aGlsZSAoKChzdGVwID0gaXRlcmF0b3IubmV4dCgpKSwgc3RlcC5kb25lICE9PSB0cnVlKSkge1xuICAgICAgbm9kZURhdGEgPSBzdGVwLnZhbHVlO1xuXG4gICAgICBpZiAoY2FsbGJhY2sobm9kZURhdGEua2V5LCBub2RlRGF0YS5hdHRyaWJ1dGVzKSkgcmV0dXJuIG5vZGVEYXRhLmtleTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIG1hcHBpbmcgbm9kZXMuXG4gICAqXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSAgY2FsbGJhY2sgLSBDYWxsYmFjayAoa2V5LCBhdHRyaWJ1dGVzKS5cbiAgICovXG4gIG1hcE5vZGVzKGNhbGxiYWNrKSB7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLm1hcE5vZGU6IGV4cGVjdGluZyBhIGNhbGxiYWNrLidcbiAgICAgICk7XG5cbiAgICBjb25zdCBpdGVyYXRvciA9IHRoaXMuX25vZGVzLnZhbHVlcygpO1xuXG4gICAgbGV0IHN0ZXAsIG5vZGVEYXRhO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5KHRoaXMub3JkZXIpO1xuICAgIGxldCBpID0gMDtcblxuICAgIHdoaWxlICgoKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLCBzdGVwLmRvbmUgIT09IHRydWUpKSB7XG4gICAgICBub2RlRGF0YSA9IHN0ZXAudmFsdWU7XG4gICAgICByZXN1bHRbaSsrXSA9IGNhbGxiYWNrKG5vZGVEYXRhLmtleSwgbm9kZURhdGEuYXR0cmlidXRlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHdoZXRoZXIgc29tZSBub2RlIHZlcmlmeSB0aGUgZ2l2ZW4gcHJlZGljYXRlLlxuICAgKlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gIGNhbGxiYWNrIC0gQ2FsbGJhY2sgKGtleSwgYXR0cmlidXRlcykuXG4gICAqL1xuICBzb21lTm9kZShjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC5zb21lTm9kZTogZXhwZWN0aW5nIGEgY2FsbGJhY2suJ1xuICAgICAgKTtcblxuICAgIGNvbnN0IGl0ZXJhdG9yID0gdGhpcy5fbm9kZXMudmFsdWVzKCk7XG5cbiAgICBsZXQgc3RlcCwgbm9kZURhdGE7XG5cbiAgICB3aGlsZSAoKChzdGVwID0gaXRlcmF0b3IubmV4dCgpKSwgc3RlcC5kb25lICE9PSB0cnVlKSkge1xuICAgICAgbm9kZURhdGEgPSBzdGVwLnZhbHVlO1xuXG4gICAgICBpZiAoY2FsbGJhY2sobm9kZURhdGEua2V5LCBub2RlRGF0YS5hdHRyaWJ1dGVzKSkgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgd2hldGhlciBhbGwgbm9kZSB2ZXJpZnkgdGhlIGdpdmVuIHByZWRpY2F0ZS5cbiAgICpcbiAgICogQHBhcmFtICB7ZnVuY3Rpb259ICBjYWxsYmFjayAtIENhbGxiYWNrIChrZXksIGF0dHJpYnV0ZXMpLlxuICAgKi9cbiAgZXZlcnlOb2RlKGNhbGxiYWNrKSB7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLmV2ZXJ5Tm9kZTogZXhwZWN0aW5nIGEgY2FsbGJhY2suJ1xuICAgICAgKTtcblxuICAgIGNvbnN0IGl0ZXJhdG9yID0gdGhpcy5fbm9kZXMudmFsdWVzKCk7XG5cbiAgICBsZXQgc3RlcCwgbm9kZURhdGE7XG5cbiAgICB3aGlsZSAoKChzdGVwID0gaXRlcmF0b3IubmV4dCgpKSwgc3RlcC5kb25lICE9PSB0cnVlKSkge1xuICAgICAgbm9kZURhdGEgPSBzdGVwLnZhbHVlO1xuXG4gICAgICBpZiAoIWNhbGxiYWNrKG5vZGVEYXRhLmtleSwgbm9kZURhdGEuYXR0cmlidXRlcykpIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgZmlsdGVyaW5nIG5vZGVzLlxuICAgKlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gIGNhbGxiYWNrIC0gQ2FsbGJhY2sgKGtleSwgYXR0cmlidXRlcykuXG4gICAqL1xuICBmaWx0ZXJOb2RlcyhjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC5maWx0ZXJOb2RlczogZXhwZWN0aW5nIGEgY2FsbGJhY2suJ1xuICAgICAgKTtcblxuICAgIGNvbnN0IGl0ZXJhdG9yID0gdGhpcy5fbm9kZXMudmFsdWVzKCk7XG5cbiAgICBsZXQgc3RlcCwgbm9kZURhdGE7XG5cbiAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgIHdoaWxlICgoKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLCBzdGVwLmRvbmUgIT09IHRydWUpKSB7XG4gICAgICBub2RlRGF0YSA9IHN0ZXAudmFsdWU7XG5cbiAgICAgIGlmIChjYWxsYmFjayhub2RlRGF0YS5rZXksIG5vZGVEYXRhLmF0dHJpYnV0ZXMpKVxuICAgICAgICByZXN1bHQucHVzaChub2RlRGF0YS5rZXkpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJlZHVjaW5nIG5vZGVzLlxuICAgKlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gIGNhbGxiYWNrIC0gQ2FsbGJhY2sgKGFjY3VtdWxhdG9yLCBrZXksIGF0dHJpYnV0ZXMpLlxuICAgKi9cbiAgcmVkdWNlTm9kZXMoY2FsbGJhY2ssIGluaXRpYWxWYWx1ZSkge1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC5yZWR1Y2VOb2RlczogZXhwZWN0aW5nIGEgY2FsbGJhY2suJ1xuICAgICAgKTtcblxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMilcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLnJlZHVjZU5vZGVzOiBtaXNzaW5nIGluaXRpYWwgdmFsdWUuIFlvdSBtdXN0IHByb3ZpZGUgaXQgYmVjYXVzZSB0aGUgY2FsbGJhY2sgdGFrZXMgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCBhbmQgd2UgY2Fubm90IGluZmVyIHRoZSBpbml0aWFsIHZhbHVlIGZyb20gdGhlIGZpcnN0IGl0ZXJhdGlvbiwgYXMgeW91IGNvdWxkIHdpdGggYSBzaW1wbGUgYXJyYXkuJ1xuICAgICAgKTtcblxuICAgIGxldCBhY2N1bXVsYXRvciA9IGluaXRpYWxWYWx1ZTtcblxuICAgIGNvbnN0IGl0ZXJhdG9yID0gdGhpcy5fbm9kZXMudmFsdWVzKCk7XG5cbiAgICBsZXQgc3RlcCwgbm9kZURhdGE7XG5cbiAgICB3aGlsZSAoKChzdGVwID0gaXRlcmF0b3IubmV4dCgpKSwgc3RlcC5kb25lICE9PSB0cnVlKSkge1xuICAgICAgbm9kZURhdGEgPSBzdGVwLnZhbHVlO1xuICAgICAgYWNjdW11bGF0b3IgPSBjYWxsYmFjayhhY2N1bXVsYXRvciwgbm9kZURhdGEua2V5LCBub2RlRGF0YS5hdHRyaWJ1dGVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyBhbiBpdGVyYXRvciBvdmVyIHRoZSBncmFwaCdzIG5vZGUgZW50cmllcy5cbiAgICpcbiAgICogQHJldHVybiB7SXRlcmF0b3J9XG4gICAqL1xuICBub2RlRW50cmllcygpIHtcbiAgICBjb25zdCBpdGVyYXRvciA9IHRoaXMuX25vZGVzLnZhbHVlcygpO1xuXG4gICAgcmV0dXJuIG5ldyBJdGVyYXRvcigoKSA9PiB7XG4gICAgICBjb25zdCBzdGVwID0gaXRlcmF0b3IubmV4dCgpO1xuXG4gICAgICBpZiAoc3RlcC5kb25lKSByZXR1cm4gc3RlcDtcblxuICAgICAgY29uc3QgZGF0YSA9IHN0ZXAudmFsdWU7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlOiB7bm9kZTogZGF0YS5rZXksIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlc30sXG4gICAgICAgIGRvbmU6IGZhbHNlXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIFNlcmlhbGl6YXRpb25cbiAgICoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqL1xuXG4gIC8qKlxuICAgKiBNZXRob2QgZXhwb3J0aW5nIHRoZSB0YXJnZXQgbm9kZS5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgIG5vZGUgLSBUYXJnZXQgbm9kZS5cbiAgICogQHJldHVybiB7YXJyYXl9ICAgICAgLSBUaGUgc2VyaWFsaXplZCBub2RlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzIG5vdCBmb3VuZC5cbiAgICovXG4gIGV4cG9ydE5vZGUobm9kZSkge1xuICAgIG5vZGUgPSAnJyArIG5vZGU7XG5cbiAgICBjb25zdCBkYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFkYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLmV4cG9ydE5vZGU6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgcmV0dXJuIHNlcmlhbGl6ZU5vZGUobm9kZSwgZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGV4cG9ydGluZyB0aGUgdGFyZ2V0IGVkZ2UuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICBlZGdlIC0gVGFyZ2V0IGVkZ2UuXG4gICAqIEByZXR1cm4ge2FycmF5fSAgICAgIC0gVGhlIHNlcmlhbGl6ZWQgZWRnZS5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgZWRnZSBpcyBub3QgZm91bmQuXG4gICAqL1xuICBleHBvcnRFZGdlKGVkZ2UpIHtcbiAgICBlZGdlID0gJycgKyBlZGdlO1xuXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuX2VkZ2VzLmdldChlZGdlKTtcblxuICAgIGlmICghZGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5leHBvcnRFZGdlOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VkZ2V9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIHJldHVybiBzZXJpYWxpemVFZGdlKGVkZ2UsIGRhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2VkIHRvIGV4cG9ydCB0aGUgd2hvbGUgZ3JhcGguXG4gICAqXG4gICAqIEByZXR1cm4ge29iamVjdH0gLSBUaGUgc2VyaWFsaXplZCBncmFwaC5cbiAgICovXG4gIGV4cG9ydCgpIHtcbiAgICBjb25zdCBub2RlcyA9IG5ldyBBcnJheSh0aGlzLl9ub2Rlcy5zaXplKTtcblxuICAgIGxldCBpID0gMDtcblxuICAgIHRoaXMuX25vZGVzLmZvckVhY2goKGRhdGEsIGtleSkgPT4ge1xuICAgICAgbm9kZXNbaSsrXSA9IHNlcmlhbGl6ZU5vZGUoa2V5LCBkYXRhKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGVkZ2VzID0gbmV3IEFycmF5KHRoaXMuX2VkZ2VzLnNpemUpO1xuXG4gICAgaSA9IDA7XG5cbiAgICB0aGlzLl9lZGdlcy5mb3JFYWNoKChkYXRhLCBrZXkpID0+IHtcbiAgICAgIGVkZ2VzW2krK10gPSBzZXJpYWxpemVFZGdlKGtleSwgZGF0YSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRlczogdGhpcy5nZXRBdHRyaWJ1dGVzKCksXG4gICAgICBub2RlcyxcbiAgICAgIGVkZ2VzLFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgIG11bHRpOiB0aGlzLm11bHRpLFxuICAgICAgICBhbGxvd1NlbGZMb29wczogdGhpcy5hbGxvd1NlbGZMb29wc1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgdG8gaW1wb3J0IGEgc2VyaWFsaXplZCBub2RlLlxuICAgKlxuICAgKiBAcGFyYW0gIHtvYmplY3R9IGRhdGEgICAtIFRoZSBzZXJpYWxpemVkIG5vZGUuXG4gICAqIEBwYXJhbSAge2Jvb2xlYW59IG1lcmdlIC0gV2hldGhlciB0byBtZXJnZSB0aGUgZ2l2ZW4gbm9kZS5cbiAgICogQHJldHVybiB7R3JhcGh9ICAgICAgICAgLSBSZXR1cm5zIGl0c2VsZiBmb3IgY2hhaW5pbmcuXG4gICAqL1xuICBpbXBvcnROb2RlKGRhdGEsIG1lcmdlID0gZmFsc2UpIHtcbiAgICAvLyBWYWxpZGF0aW5nXG4gICAgY29uc3QgZXJyb3IgPSB2YWxpZGF0ZVNlcmlhbGl6ZWROb2RlKGRhdGEpO1xuXG4gICAgaWYgKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgPT09ICdub3Qtb2JqZWN0JylcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAgICdHcmFwaC5pbXBvcnROb2RlOiBpbnZhbGlkIHNlcmlhbGl6ZWQgbm9kZS4gQSBzZXJpYWxpemVkIG5vZGUgc2hvdWxkIGJlIGEgcGxhaW4gb2JqZWN0IHdpdGggYXQgbGVhc3QgYSBcImtleVwiIHByb3BlcnR5LidcbiAgICAgICAgKTtcbiAgICAgIGlmIChlcnJvciA9PT0gJ25vLWtleScpXG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgICAnR3JhcGguaW1wb3J0Tm9kZTogbm8ga2V5IHByb3ZpZGVkLidcbiAgICAgICAgKTtcbiAgICAgIGlmIChlcnJvciA9PT0gJ2ludmFsaWQtYXR0cmlidXRlcycpXG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgICAnR3JhcGguaW1wb3J0Tm9kZTogaW52YWxpZCBhdHRyaWJ1dGVzLiBBdHRyaWJ1dGVzIHNob3VsZCBiZSBhIHBsYWluIG9iamVjdCwgbnVsbCBvciBvbWl0dGVkLidcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBBZGRpbmcgdGhlIG5vZGVcbiAgICBjb25zdCB7a2V5LCBhdHRyaWJ1dGVzID0ge319ID0gZGF0YTtcblxuICAgIGlmIChtZXJnZSkgdGhpcy5tZXJnZU5vZGUoa2V5LCBhdHRyaWJ1dGVzKTtcbiAgICBlbHNlIHRoaXMuYWRkTm9kZShrZXksIGF0dHJpYnV0ZXMpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgdG8gaW1wb3J0IGEgc2VyaWFsaXplZCBlZGdlLlxuICAgKlxuICAgKiBAcGFyYW0gIHtvYmplY3R9ICBkYXRhICAtIFRoZSBzZXJpYWxpemVkIGVkZ2UuXG4gICAqIEBwYXJhbSAge2Jvb2xlYW59IG1lcmdlIC0gV2hldGhlciB0byBtZXJnZSB0aGUgZ2l2ZW4gZWRnZS5cbiAgICogQHJldHVybiB7R3JhcGh9ICAgICAgICAgLSBSZXR1cm5zIGl0c2VsZiBmb3IgY2hhaW5pbmcuXG4gICAqL1xuICBpbXBvcnRFZGdlKGRhdGEsIG1lcmdlID0gZmFsc2UpIHtcbiAgICAvLyBWYWxpZGF0aW5nXG4gICAgY29uc3QgZXJyb3IgPSB2YWxpZGF0ZVNlcmlhbGl6ZWRFZGdlKGRhdGEpO1xuXG4gICAgaWYgKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgPT09ICdub3Qtb2JqZWN0JylcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAgICdHcmFwaC5pbXBvcnRFZGdlOiBpbnZhbGlkIHNlcmlhbGl6ZWQgZWRnZS4gQSBzZXJpYWxpemVkIGVkZ2Ugc2hvdWxkIGJlIGEgcGxhaW4gb2JqZWN0IHdpdGggYXQgbGVhc3QgYSBcInNvdXJjZVwiICYgXCJ0YXJnZXRcIiBwcm9wZXJ0eS4nXG4gICAgICAgICk7XG4gICAgICBpZiAoZXJyb3IgPT09ICduby1zb3VyY2UnKVxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICAgJ0dyYXBoLmltcG9ydEVkZ2U6IG1pc3Npbmcgc291Y2UuJ1xuICAgICAgICApO1xuICAgICAgaWYgKGVycm9yID09PSAnbm8tdGFyZ2V0JylcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAgICdHcmFwaC5pbXBvcnRFZGdlOiBtaXNzaW5nIHRhcmdldC4nXG4gICAgICAgICk7XG4gICAgICBpZiAoZXJyb3IgPT09ICdpbnZhbGlkLWF0dHJpYnV0ZXMnKVxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICAgJ0dyYXBoLmltcG9ydEVkZ2U6IGludmFsaWQgYXR0cmlidXRlcy4gQXR0cmlidXRlcyBzaG91bGQgYmUgYSBwbGFpbiBvYmplY3QsIG51bGwgb3Igb21pdHRlZC4nXG4gICAgICAgICk7XG4gICAgICBpZiAoZXJyb3IgPT09ICdpbnZhbGlkLXVuZGlyZWN0ZWQnKVxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICAgJ0dyYXBoLmltcG9ydEVkZ2U6IGludmFsaWQgdW5kaXJlY3RlZC4gVW5kaXJlY3RlZCBzaG91bGQgYmUgYm9vbGVhbiBvciBvbWl0dGVkLidcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBBZGRpbmcgdGhlIGVkZ2VcbiAgICBjb25zdCB7c291cmNlLCB0YXJnZXQsIGF0dHJpYnV0ZXMgPSB7fSwgdW5kaXJlY3RlZCA9IGZhbHNlfSA9IGRhdGE7XG5cbiAgICBsZXQgbWV0aG9kO1xuXG4gICAgaWYgKCdrZXknIGluIGRhdGEpIHtcbiAgICAgIG1ldGhvZCA9IG1lcmdlXG4gICAgICAgID8gdW5kaXJlY3RlZFxuICAgICAgICAgID8gdGhpcy5tZXJnZVVuZGlyZWN0ZWRFZGdlV2l0aEtleVxuICAgICAgICAgIDogdGhpcy5tZXJnZURpcmVjdGVkRWRnZVdpdGhLZXlcbiAgICAgICAgOiB1bmRpcmVjdGVkXG4gICAgICAgID8gdGhpcy5hZGRVbmRpcmVjdGVkRWRnZVdpdGhLZXlcbiAgICAgICAgOiB0aGlzLmFkZERpcmVjdGVkRWRnZVdpdGhLZXk7XG5cbiAgICAgIG1ldGhvZC5jYWxsKHRoaXMsIGRhdGEua2V5LCBzb3VyY2UsIHRhcmdldCwgYXR0cmlidXRlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1ldGhvZCA9IG1lcmdlXG4gICAgICAgID8gdW5kaXJlY3RlZFxuICAgICAgICAgID8gdGhpcy5tZXJnZVVuZGlyZWN0ZWRFZGdlXG4gICAgICAgICAgOiB0aGlzLm1lcmdlRGlyZWN0ZWRFZGdlXG4gICAgICAgIDogdW5kaXJlY3RlZFxuICAgICAgICA/IHRoaXMuYWRkVW5kaXJlY3RlZEVkZ2VcbiAgICAgICAgOiB0aGlzLmFkZERpcmVjdGVkRWRnZTtcblxuICAgICAgbWV0aG9kLmNhbGwodGhpcywgc291cmNlLCB0YXJnZXQsIGF0dHJpYnV0ZXMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2VkIHRvIGltcG9ydCBhIHNlcmlhbGl6ZWQgZ3JhcGguXG4gICAqXG4gICAqIEBwYXJhbSAge29iamVjdHxHcmFwaH0gZGF0YSAgLSBUaGUgc2VyaWFsaXplZCBncmFwaC5cbiAgICogQHBhcmFtICB7Ym9vbGVhbn0gICAgICBtZXJnZSAtIFdoZXRoZXIgdG8gbWVyZ2UgZGF0YS5cbiAgICogQHJldHVybiB7R3JhcGh9ICAgICAgICAgICAgICAtIFJldHVybnMgaXRzZWxmIGZvciBjaGFpbmluZy5cbiAgICovXG4gIGltcG9ydChkYXRhLCBtZXJnZSA9IGZhbHNlKSB7XG4gICAgLy8gSW1wb3J0aW5nIGEgR3JhcGggaW5zdGFuY2VcbiAgICBpZiAoaXNHcmFwaChkYXRhKSkge1xuICAgICAgdGhpcy5pbXBvcnQoZGF0YS5leHBvcnQoKSwgbWVyZ2UpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gSW1wb3J0aW5nIGEgc2VyaWFsaXplZCBncmFwaFxuICAgIGlmICghaXNQbGFpbk9iamVjdChkYXRhKSlcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLmltcG9ydDogaW52YWxpZCBhcmd1bWVudC4gRXhwZWN0aW5nIGEgc2VyaWFsaXplZCBncmFwaCBvciwgYWx0ZXJuYXRpdmVseSwgYSBHcmFwaCBpbnN0YW5jZS4nXG4gICAgICApO1xuXG4gICAgaWYgKGRhdGEuYXR0cmlidXRlcykge1xuICAgICAgaWYgKCFpc1BsYWluT2JqZWN0KGRhdGEuYXR0cmlidXRlcykpXG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgICAnR3JhcGguaW1wb3J0OiBpbnZhbGlkIGF0dHJpYnV0ZXMuIEV4cGVjdGluZyBhIHBsYWluIG9iamVjdC4nXG4gICAgICAgICk7XG5cbiAgICAgIGlmIChtZXJnZSkgdGhpcy5tZXJnZUF0dHJpYnV0ZXMoZGF0YS5hdHRyaWJ1dGVzKTtcbiAgICAgIGVsc2UgdGhpcy5yZXBsYWNlQXR0cmlidXRlcyhkYXRhLmF0dHJpYnV0ZXMpO1xuICAgIH1cblxuICAgIGxldCBpLCBsLCBsaXN0O1xuXG4gICAgaWYgKGRhdGEubm9kZXMpIHtcbiAgICAgIGxpc3QgPSBkYXRhLm5vZGVzO1xuXG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkobGlzdCkpXG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgICAnR3JhcGguaW1wb3J0OiBpbnZhbGlkIG5vZGVzLiBFeHBlY3RpbmcgYW4gYXJyYXkuJ1xuICAgICAgICApO1xuXG4gICAgICBmb3IgKGkgPSAwLCBsID0gbGlzdC5sZW5ndGg7IGkgPCBsOyBpKyspIHRoaXMuaW1wb3J0Tm9kZShsaXN0W2ldLCBtZXJnZSk7XG4gICAgfVxuXG4gICAgaWYgKGRhdGEuZWRnZXMpIHtcbiAgICAgIGxpc3QgPSBkYXRhLmVkZ2VzO1xuXG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkobGlzdCkpXG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgICAnR3JhcGguaW1wb3J0OiBpbnZhbGlkIGVkZ2VzLiBFeHBlY3RpbmcgYW4gYXJyYXkuJ1xuICAgICAgICApO1xuXG4gICAgICBmb3IgKGkgPSAwLCBsID0gbGlzdC5sZW5ndGg7IGkgPCBsOyBpKyspIHRoaXMuaW1wb3J0RWRnZShsaXN0W2ldLCBtZXJnZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogVXRpbHNcbiAgICoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqL1xuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIGEgbnVsbCBjb3B5IG9mIHRoZSBncmFwaCwgaS5lLiBhIGdyYXBoIHdpdGhvdXQgbm9kZXNcbiAgICogJiBlZGdlcyBidXQgd2l0aCB0aGUgZXhhY3Qgc2FtZSBvcHRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gIHtvYmplY3R9IG9wdGlvbnMgLSBPcHRpb25zIHRvIG1lcmdlIHdpdGggdGhlIGN1cnJlbnQgb25lcy5cbiAgICogQHJldHVybiB7R3JhcGh9ICAgICAgICAgIC0gVGhlIG51bGwgY29weS5cbiAgICovXG4gIG51bGxDb3B5KG9wdGlvbnMpIHtcbiAgICBjb25zdCBncmFwaCA9IG5ldyBHcmFwaChhc3NpZ24oe30sIHRoaXMuX29wdGlvbnMsIG9wdGlvbnMpKTtcbiAgICBncmFwaC5yZXBsYWNlQXR0cmlidXRlcyhhc3NpZ24oe30sIHRoaXMuZ2V0QXR0cmlidXRlcygpKSk7XG4gICAgcmV0dXJuIGdyYXBoO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgYW4gZW1wdHkgY29weSBvZiB0aGUgZ3JhcGgsIGkuZS4gYSBncmFwaCB3aXRob3V0IGVkZ2VzIGJ1dFxuICAgKiB3aXRoIHRoZSBleGFjdCBzYW1lIG9wdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSAge29iamVjdH0gb3B0aW9ucyAtIE9wdGlvbnMgdG8gbWVyZ2Ugd2l0aCB0aGUgY3VycmVudCBvbmVzLlxuICAgKiBAcmV0dXJuIHtHcmFwaH0gICAgICAgICAgLSBUaGUgZW1wdHkgY29weS5cbiAgICovXG4gIGVtcHR5Q29weShvcHRpb25zKSB7XG4gICAgY29uc3QgZ3JhcGggPSB0aGlzLm51bGxDb3B5KG9wdGlvbnMpO1xuXG4gICAgdGhpcy5fbm9kZXMuZm9yRWFjaCgobm9kZURhdGEsIGtleSkgPT4ge1xuICAgICAgY29uc3QgYXR0cmlidXRlcyA9IGFzc2lnbih7fSwgbm9kZURhdGEuYXR0cmlidXRlcyk7XG5cbiAgICAgIC8vIE5PVEU6IG5vIG5lZWQgdG8gZW1pdCBldmVudHMgc2luY2UgdXNlciBjYW5ub3QgYWNjZXNzIHRoZSBpbnN0YW5jZSB5ZXRcbiAgICAgIG5vZGVEYXRhID0gbmV3IGdyYXBoLk5vZGVEYXRhQ2xhc3Moa2V5LCBhdHRyaWJ1dGVzKTtcbiAgICAgIGdyYXBoLl9ub2Rlcy5zZXQoa2V5LCBub2RlRGF0YSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ3JhcGg7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyBhbiBleGFjdCBjb3B5IG9mIHRoZSBncmFwaC5cbiAgICpcbiAgICogQHJldHVybiB7R3JhcGh9IC0gVGhlIGNvcHkuXG4gICAqL1xuICBjb3B5KCkge1xuICAgIGNvbnN0IGdyYXBoID0gdGhpcy5lbXB0eUNvcHkoKTtcblxuICAgIGNvbnN0IGl0ZXJhdG9yID0gdGhpcy5fZWRnZXMudmFsdWVzKCk7XG5cbiAgICBsZXQgc3RlcCwgZWRnZURhdGE7XG5cbiAgICB3aGlsZSAoKChzdGVwID0gaXRlcmF0b3IubmV4dCgpKSwgc3RlcC5kb25lICE9PSB0cnVlKSkge1xuICAgICAgZWRnZURhdGEgPSBzdGVwLnZhbHVlO1xuXG4gICAgICAvLyBOT1RFOiBubyBuZWVkIHRvIGVtaXQgZXZlbnRzIHNpbmNlIHVzZXIgY2Fubm90IGFjY2VzcyB0aGUgaW5zdGFuY2UgeWV0XG4gICAgICBhZGRFZGdlKFxuICAgICAgICBncmFwaCxcbiAgICAgICAgJ2NvcHknLFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgZWRnZURhdGEudW5kaXJlY3RlZCxcbiAgICAgICAgZWRnZURhdGEua2V5LFxuICAgICAgICBlZGdlRGF0YS5zb3VyY2Uua2V5LFxuICAgICAgICBlZGdlRGF0YS50YXJnZXQua2V5LFxuICAgICAgICBhc3NpZ24oe30sIGVkZ2VEYXRhLmF0dHJpYnV0ZXMpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBncmFwaDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdXBncmFkaW5nIHRoZSBncmFwaCB0byBhIG1peGVkIG9uZS5cbiAgICpcbiAgICogQHJldHVybiB7R3JhcGh9IC0gVGhlIGNvcHkuXG4gICAqL1xuICB1cGdyYWRlVG9NaXhlZCgpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnbWl4ZWQnKSByZXR1cm4gdGhpcztcblxuICAgIC8vIFVwZ3JhZGluZyBub2RlIGRhdGE6XG4gICAgLy8gTk9URTogbWF5YmUgdGhpcyBjb3VsZCBsZWFkIHRvIHNvbWUgZGUtb3B0aW1pemF0aW9uIGJ5IHVzdWFsXG4gICAgLy8gSmF2YVNjcmlwdCBlbmdpbmVzIGJ1dCBJIGNhbm5vdCBiZSBzdXJlIG9mIGl0LiBBbm90aGVyIHNvbHV0aW9uXG4gICAgLy8gd291bGQgYmUgdG8gcmVpbnN0YW50aWF0ZSB0aGUgY2xhc3NlcyBidXQgdGhpcyBzdXJlbHkgaGFzIGEgcGVyZm9ybWFuY2VcbiAgICAvLyBhbmQgbWVtb3J5IGltcGFjdC5cbiAgICB0aGlzLl9ub2Rlcy5mb3JFYWNoKGRhdGEgPT4gZGF0YS51cGdyYWRlVG9NaXhlZCgpKTtcblxuICAgIC8vIE11dGF0aW5nIHRoZSBvcHRpb25zICYgdGhlIGluc3RhbmNlXG4gICAgdGhpcy5fb3B0aW9ucy50eXBlID0gJ21peGVkJztcbiAgICByZWFkT25seVByb3BlcnR5KHRoaXMsICd0eXBlJywgdGhpcy5fb3B0aW9ucy50eXBlKTtcbiAgICBwcml2YXRlUHJvcGVydHkodGhpcywgJ05vZGVEYXRhQ2xhc3MnLCBNaXhlZE5vZGVEYXRhKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1cGdyYWRpbmcgdGhlIGdyYXBoIHRvIGEgbXVsdGkgb25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtHcmFwaH0gLSBUaGUgY29weS5cbiAgICovXG4gIHVwZ3JhZGVUb011bHRpKCkge1xuICAgIGlmICh0aGlzLm11bHRpKSByZXR1cm4gdGhpcztcblxuICAgIC8vIE11dGF0aW5nIHRoZSBvcHRpb25zICYgdGhlIGluc3RhbmNlXG4gICAgdGhpcy5fb3B0aW9ucy5tdWx0aSA9IHRydWU7XG4gICAgcmVhZE9ubHlQcm9wZXJ0eSh0aGlzLCAnbXVsdGknLCB0cnVlKTtcblxuICAgIC8vIFVwZ3JhZGluZyBpbmRpY2VzXG4gICAgdXBncmFkZVN0cnVjdHVyZUluZGV4VG9NdWx0aSh0aGlzKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEtub3duIG1ldGhvZHNcbiAgICoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqL1xuXG4gIC8qKlxuICAgKiBNZXRob2QgdXNlZCBieSBKYXZhU2NyaXB0IHRvIHBlcmZvcm0gSlNPTiBzZXJpYWxpemF0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJuIHtvYmplY3R9IC0gVGhlIHNlcmlhbGl6ZWQgZ3JhcGguXG4gICAqL1xuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhwb3J0KCk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyBbb2JqZWN0IEdyYXBoXS5cbiAgICovXG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiAnW29iamVjdCBHcmFwaF0nO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2VkIGludGVybmFsbHkgYnkgbm9kZSdzIGNvbnNvbGUgdG8gZGlzcGxheSBhIGN1c3RvbSBvYmplY3QuXG4gICAqXG4gICAqIEByZXR1cm4ge29iamVjdH0gLSBGb3JtYXR0ZWQgb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBncmFwaC5cbiAgICovXG4gIGluc3BlY3QoKSB7XG4gICAgY29uc3Qgbm9kZXMgPSB7fTtcbiAgICB0aGlzLl9ub2Rlcy5mb3JFYWNoKChkYXRhLCBrZXkpID0+IHtcbiAgICAgIG5vZGVzW2tleV0gPSBkYXRhLmF0dHJpYnV0ZXM7XG4gICAgfSk7XG5cbiAgICBjb25zdCBlZGdlcyA9IHt9LFxuICAgICAgbXVsdGlJbmRleCA9IHt9O1xuXG4gICAgdGhpcy5fZWRnZXMuZm9yRWFjaCgoZGF0YSwga2V5KSA9PiB7XG4gICAgICBjb25zdCBkaXJlY3Rpb24gPSBkYXRhLnVuZGlyZWN0ZWQgPyAnLS0nIDogJy0+JztcblxuICAgICAgbGV0IGxhYmVsID0gJyc7XG5cbiAgICAgIGxldCBzb3VyY2UgPSBkYXRhLnNvdXJjZS5rZXk7XG4gICAgICBsZXQgdGFyZ2V0ID0gZGF0YS50YXJnZXQua2V5O1xuICAgICAgbGV0IHRtcDtcblxuICAgICAgaWYgKGRhdGEudW5kaXJlY3RlZCAmJiBzb3VyY2UgPiB0YXJnZXQpIHtcbiAgICAgICAgdG1wID0gc291cmNlO1xuICAgICAgICBzb3VyY2UgPSB0YXJnZXQ7XG4gICAgICAgIHRhcmdldCA9IHRtcDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGVzYyA9IGAoJHtzb3VyY2V9KSR7ZGlyZWN0aW9ufSgke3RhcmdldH0pYDtcblxuICAgICAgaWYgKCFrZXkuc3RhcnRzV2l0aCgnZ2VpZF8nKSkge1xuICAgICAgICBsYWJlbCArPSBgWyR7a2V5fV06IGA7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMubXVsdGkpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBtdWx0aUluZGV4W2Rlc2NdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIG11bHRpSW5kZXhbZGVzY10gPSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG11bHRpSW5kZXhbZGVzY10rKztcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsICs9IGAke211bHRpSW5kZXhbZGVzY119LiBgO1xuICAgICAgfVxuXG4gICAgICBsYWJlbCArPSBkZXNjO1xuXG4gICAgICBlZGdlc1tsYWJlbF0gPSBkYXRhLmF0dHJpYnV0ZXM7XG4gICAgfSk7XG5cbiAgICBjb25zdCBkdW1teSA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBrIGluIHRoaXMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5oYXNPd25Qcm9wZXJ0eShrKSAmJlxuICAgICAgICAhRU1JVFRFUl9QUk9QUy5oYXMoaykgJiZcbiAgICAgICAgdHlwZW9mIHRoaXNba10gIT09ICdmdW5jdGlvbicgJiZcbiAgICAgICAgdHlwZW9mIGsgIT09ICdzeW1ib2wnXG4gICAgICApXG4gICAgICAgIGR1bW15W2tdID0gdGhpc1trXTtcbiAgICB9XG5cbiAgICBkdW1teS5hdHRyaWJ1dGVzID0gdGhpcy5fYXR0cmlidXRlcztcbiAgICBkdW1teS5ub2RlcyA9IG5vZGVzO1xuICAgIGR1bW15LmVkZ2VzID0gZWRnZXM7XG5cbiAgICBwcml2YXRlUHJvcGVydHkoZHVtbXksICdjb25zdHJ1Y3RvcicsIHRoaXMuY29uc3RydWN0b3IpO1xuXG4gICAgcmV0dXJuIGR1bW15O1xuICB9XG59XG5cbi8qKlxuICogQXR0YWNoaW5nIG1ldGhvZHMgdG8gdGhlIHByb3RvdHlwZS5cbiAqXG4gKiBIZXJlLCB3ZSBhcmUgYXR0YWNoaW5nIGEgd2lkZSB2YXJpZXR5IG9mIG1ldGhvZHMgdG8gdGhlIEdyYXBoIGNsYXNzJ1xuICogcHJvdG90eXBlIHdoZW4gdGhvc2UgYXJlIHZlcnkgbnVtZXJvdXMgYW5kIHdoZW4gdGhlaXIgY3JlYXRpb24gaXNcbiAqIGFic3RyYWN0ZWQuXG4gKi9cblxuLyoqXG4gKiBBdHRhY2hpbmcgY3VzdG9tIGluc3BlY3QgbWV0aG9kIGZvciBub2RlID49IDEwLlxuICovXG5pZiAodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcpXG4gIEdyYXBoLnByb3RvdHlwZVtTeW1ib2wuZm9yKCdub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbScpXSA9XG4gICAgR3JhcGgucHJvdG90eXBlLmluc3BlY3Q7XG5cbi8qKlxuICogUmVsYXRlZCB0byBlZGdlIGFkZGl0aW9uLlxuICovXG5FREdFX0FERF9NRVRIT0RTLmZvckVhY2gobWV0aG9kID0+IHtcbiAgWydhZGQnLCAnbWVyZ2UnLCAndXBkYXRlJ10uZm9yRWFjaCh2ZXJiID0+IHtcbiAgICBjb25zdCBuYW1lID0gbWV0aG9kLm5hbWUodmVyYik7XG4gICAgY29uc3QgZm4gPSB2ZXJiID09PSAnYWRkJyA/IGFkZEVkZ2UgOiBtZXJnZUVkZ2U7XG5cbiAgICBpZiAobWV0aG9kLmdlbmVyYXRlS2V5KSB7XG4gICAgICBHcmFwaC5wcm90b3R5cGVbbmFtZV0gPSBmdW5jdGlvbiAoc291cmNlLCB0YXJnZXQsIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgcmV0dXJuIGZuKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIChtZXRob2QudHlwZSB8fCB0aGlzLnR5cGUpID09PSAndW5kaXJlY3RlZCcsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBzb3VyY2UsXG4gICAgICAgICAgdGFyZ2V0LFxuICAgICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICAgICAgdmVyYiA9PT0gJ3VwZGF0ZSdcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIEdyYXBoLnByb3RvdHlwZVtuYW1lXSA9IGZ1bmN0aW9uIChlZGdlLCBzb3VyY2UsIHRhcmdldCwgYXR0cmlidXRlcykge1xuICAgICAgICByZXR1cm4gZm4oXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIChtZXRob2QudHlwZSB8fCB0aGlzLnR5cGUpID09PSAndW5kaXJlY3RlZCcsXG4gICAgICAgICAgZWRnZSxcbiAgICAgICAgICBzb3VyY2UsXG4gICAgICAgICAgdGFyZ2V0LFxuICAgICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICAgICAgdmVyYiA9PT0gJ3VwZGF0ZSdcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgfVxuICB9KTtcbn0pO1xuXG4vKipcbiAqIEF0dHJpYnV0ZXMtcmVsYXRlZC5cbiAqL1xuYXR0YWNoTm9kZUF0dHJpYnV0ZXNNZXRob2RzKEdyYXBoKTtcbmF0dGFjaEVkZ2VBdHRyaWJ1dGVzTWV0aG9kcyhHcmFwaCk7XG5cbi8qKlxuICogRWRnZSBpdGVyYXRpb24tcmVsYXRlZC5cbiAqL1xuYXR0YWNoRWRnZUl0ZXJhdGlvbk1ldGhvZHMoR3JhcGgpO1xuXG4vKipcbiAqIE5laWdoYm9yIGl0ZXJhdGlvbi1yZWxhdGVkLlxuICovXG5hdHRhY2hOZWlnaGJvckl0ZXJhdGlvbk1ldGhvZHMoR3JhcGgpO1xuIiwgIi8qKlxuICogR3JhcGhvbG9neSBIZWxwZXIgQ2xhc3Nlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBCdWlsZGluZyBzb21lIGhpZ2hlci1vcmRlciBjbGFzc2VzIGluc3RhbnRpYXRpbmcgdGhlIGdyYXBoIHdpdGhcbiAqIHByZWRlZmluaXRlIG9wdGlvbnMuXG4gKi9cbmltcG9ydCB7YXNzaWdufSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBHcmFwaCBmcm9tICcuL2dyYXBoJztcblxuaW1wb3J0IHtcbiAgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IsXG4gIE5vdEZvdW5kR3JhcGhFcnJvcixcbiAgVXNhZ2VHcmFwaEVycm9yXG59IGZyb20gJy4vZXJyb3JzJztcblxuLyoqXG4gKiBBbHRlcm5hdGl2ZSBjb25zdHJ1Y3RvcnMuXG4gKi9cbmNsYXNzIERpcmVjdGVkR3JhcGggZXh0ZW5kcyBHcmFwaCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICBjb25zdCBmaW5hbE9wdGlvbnMgPSBhc3NpZ24oe3R5cGU6ICdkaXJlY3RlZCd9LCBvcHRpb25zKTtcblxuICAgIGlmICgnbXVsdGknIGluIGZpbmFsT3B0aW9ucyAmJiBmaW5hbE9wdGlvbnMubXVsdGkgIT09IGZhbHNlKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnRGlyZWN0ZWRHcmFwaC5mcm9tOiBpbmNvbnNpc3RlbnQgaW5kaWNhdGlvbiB0aGF0IHRoZSBncmFwaCBzaG91bGQgYmUgbXVsdGkgaW4gZ2l2ZW4gb3B0aW9ucyEnXG4gICAgICApO1xuXG4gICAgaWYgKGZpbmFsT3B0aW9ucy50eXBlICE9PSAnZGlyZWN0ZWQnKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnRGlyZWN0ZWRHcmFwaC5mcm9tOiBpbmNvbnNpc3RlbnQgXCInICtcbiAgICAgICAgICBmaW5hbE9wdGlvbnMudHlwZSArXG4gICAgICAgICAgJ1wiIHR5cGUgaW4gZ2l2ZW4gb3B0aW9ucyEnXG4gICAgICApO1xuXG4gICAgc3VwZXIoZmluYWxPcHRpb25zKTtcbiAgfVxufVxuY2xhc3MgVW5kaXJlY3RlZEdyYXBoIGV4dGVuZHMgR3JhcGgge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgY29uc3QgZmluYWxPcHRpb25zID0gYXNzaWduKHt0eXBlOiAndW5kaXJlY3RlZCd9LCBvcHRpb25zKTtcblxuICAgIGlmICgnbXVsdGknIGluIGZpbmFsT3B0aW9ucyAmJiBmaW5hbE9wdGlvbnMubXVsdGkgIT09IGZhbHNlKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnVW5kaXJlY3RlZEdyYXBoLmZyb206IGluY29uc2lzdGVudCBpbmRpY2F0aW9uIHRoYXQgdGhlIGdyYXBoIHNob3VsZCBiZSBtdWx0aSBpbiBnaXZlbiBvcHRpb25zISdcbiAgICAgICk7XG5cbiAgICBpZiAoZmluYWxPcHRpb25zLnR5cGUgIT09ICd1bmRpcmVjdGVkJylcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ1VuZGlyZWN0ZWRHcmFwaC5mcm9tOiBpbmNvbnNpc3RlbnQgXCInICtcbiAgICAgICAgICBmaW5hbE9wdGlvbnMudHlwZSArXG4gICAgICAgICAgJ1wiIHR5cGUgaW4gZ2l2ZW4gb3B0aW9ucyEnXG4gICAgICApO1xuXG4gICAgc3VwZXIoZmluYWxPcHRpb25zKTtcbiAgfVxufVxuY2xhc3MgTXVsdGlHcmFwaCBleHRlbmRzIEdyYXBoIHtcbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgIGNvbnN0IGZpbmFsT3B0aW9ucyA9IGFzc2lnbih7bXVsdGk6IHRydWV9LCBvcHRpb25zKTtcblxuICAgIGlmICgnbXVsdGknIGluIGZpbmFsT3B0aW9ucyAmJiBmaW5hbE9wdGlvbnMubXVsdGkgIT09IHRydWUpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdNdWx0aUdyYXBoLmZyb206IGluY29uc2lzdGVudCBpbmRpY2F0aW9uIHRoYXQgdGhlIGdyYXBoIHNob3VsZCBiZSBzaW1wbGUgaW4gZ2l2ZW4gb3B0aW9ucyEnXG4gICAgICApO1xuXG4gICAgc3VwZXIoZmluYWxPcHRpb25zKTtcbiAgfVxufVxuY2xhc3MgTXVsdGlEaXJlY3RlZEdyYXBoIGV4dGVuZHMgR3JhcGgge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgY29uc3QgZmluYWxPcHRpb25zID0gYXNzaWduKHt0eXBlOiAnZGlyZWN0ZWQnLCBtdWx0aTogdHJ1ZX0sIG9wdGlvbnMpO1xuXG4gICAgaWYgKCdtdWx0aScgaW4gZmluYWxPcHRpb25zICYmIGZpbmFsT3B0aW9ucy5tdWx0aSAhPT0gdHJ1ZSlcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ011bHRpRGlyZWN0ZWRHcmFwaC5mcm9tOiBpbmNvbnNpc3RlbnQgaW5kaWNhdGlvbiB0aGF0IHRoZSBncmFwaCBzaG91bGQgYmUgc2ltcGxlIGluIGdpdmVuIG9wdGlvbnMhJ1xuICAgICAgKTtcblxuICAgIGlmIChmaW5hbE9wdGlvbnMudHlwZSAhPT0gJ2RpcmVjdGVkJylcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ011bHRpRGlyZWN0ZWRHcmFwaC5mcm9tOiBpbmNvbnNpc3RlbnQgXCInICtcbiAgICAgICAgICBmaW5hbE9wdGlvbnMudHlwZSArXG4gICAgICAgICAgJ1wiIHR5cGUgaW4gZ2l2ZW4gb3B0aW9ucyEnXG4gICAgICApO1xuXG4gICAgc3VwZXIoZmluYWxPcHRpb25zKTtcbiAgfVxufVxuY2xhc3MgTXVsdGlVbmRpcmVjdGVkR3JhcGggZXh0ZW5kcyBHcmFwaCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICBjb25zdCBmaW5hbE9wdGlvbnMgPSBhc3NpZ24oe3R5cGU6ICd1bmRpcmVjdGVkJywgbXVsdGk6IHRydWV9LCBvcHRpb25zKTtcblxuICAgIGlmICgnbXVsdGknIGluIGZpbmFsT3B0aW9ucyAmJiBmaW5hbE9wdGlvbnMubXVsdGkgIT09IHRydWUpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdNdWx0aVVuZGlyZWN0ZWRHcmFwaC5mcm9tOiBpbmNvbnNpc3RlbnQgaW5kaWNhdGlvbiB0aGF0IHRoZSBncmFwaCBzaG91bGQgYmUgc2ltcGxlIGluIGdpdmVuIG9wdGlvbnMhJ1xuICAgICAgKTtcblxuICAgIGlmIChmaW5hbE9wdGlvbnMudHlwZSAhPT0gJ3VuZGlyZWN0ZWQnKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnTXVsdGlVbmRpcmVjdGVkR3JhcGguZnJvbTogaW5jb25zaXN0ZW50IFwiJyArXG4gICAgICAgICAgZmluYWxPcHRpb25zLnR5cGUgK1xuICAgICAgICAgICdcIiB0eXBlIGluIGdpdmVuIG9wdGlvbnMhJ1xuICAgICAgKTtcblxuICAgIHN1cGVyKGZpbmFsT3B0aW9ucyk7XG4gIH1cbn1cblxuLyoqXG4gKiBBdHRhY2hpbmcgc3RhdGljICMuZnJvbSBtZXRob2QgdG8gZWFjaCBvZiB0aGUgY29uc3RydWN0b3JzLlxuICovXG5mdW5jdGlvbiBhdHRhY2hTdGF0aWNGcm9tTWV0aG9kKENsYXNzKSB7XG4gIC8qKlxuICAgKiBCdWlsZHMgYSBncmFwaCBmcm9tIHNlcmlhbGl6ZWQgZGF0YSBvciBhbm90aGVyIGdyYXBoJ3MgZGF0YS5cbiAgICpcbiAgICogQHBhcmFtICB7R3JhcGh8U2VyaWFsaXplZEdyYXBofSBkYXRhICAgICAgLSBIeWRyYXRhdGlvbiBkYXRhLlxuICAgKiBAcGFyYW0gIHtvYmplY3R9ICAgICAgICAgICAgICAgIFtvcHRpb25zXSAtIE9wdGlvbnMuXG4gICAqIEByZXR1cm4ge0NsYXNzfVxuICAgKi9cbiAgQ2xhc3MuZnJvbSA9IGZ1bmN0aW9uIChkYXRhLCBvcHRpb25zKSB7XG4gICAgLy8gTWVyZ2luZyBnaXZlbiBvcHRpb25zIHdpdGggc2VyaWFsaXplZCBvbmVzXG4gICAgY29uc3QgZmluYWxPcHRpb25zID0gYXNzaWduKHt9LCBkYXRhLm9wdGlvbnMsIG9wdGlvbnMpO1xuXG4gICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgQ2xhc3MoZmluYWxPcHRpb25zKTtcbiAgICBpbnN0YW5jZS5pbXBvcnQoZGF0YSk7XG5cbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH07XG59XG5cbmF0dGFjaFN0YXRpY0Zyb21NZXRob2QoR3JhcGgpO1xuYXR0YWNoU3RhdGljRnJvbU1ldGhvZChEaXJlY3RlZEdyYXBoKTtcbmF0dGFjaFN0YXRpY0Zyb21NZXRob2QoVW5kaXJlY3RlZEdyYXBoKTtcbmF0dGFjaFN0YXRpY0Zyb21NZXRob2QoTXVsdGlHcmFwaCk7XG5hdHRhY2hTdGF0aWNGcm9tTWV0aG9kKE11bHRpRGlyZWN0ZWRHcmFwaCk7XG5hdHRhY2hTdGF0aWNGcm9tTWV0aG9kKE11bHRpVW5kaXJlY3RlZEdyYXBoKTtcblxuR3JhcGguR3JhcGggPSBHcmFwaDtcbkdyYXBoLkRpcmVjdGVkR3JhcGggPSBEaXJlY3RlZEdyYXBoO1xuR3JhcGguVW5kaXJlY3RlZEdyYXBoID0gVW5kaXJlY3RlZEdyYXBoO1xuR3JhcGguTXVsdGlHcmFwaCA9IE11bHRpR3JhcGg7XG5HcmFwaC5NdWx0aURpcmVjdGVkR3JhcGggPSBNdWx0aURpcmVjdGVkR3JhcGg7XG5HcmFwaC5NdWx0aVVuZGlyZWN0ZWRHcmFwaCA9IE11bHRpVW5kaXJlY3RlZEdyYXBoO1xuXG5HcmFwaC5JbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvciA9IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yO1xuR3JhcGguTm90Rm91bmRHcmFwaEVycm9yID0gTm90Rm91bmRHcmFwaEVycm9yO1xuR3JhcGguVXNhZ2VHcmFwaEVycm9yID0gVXNhZ2VHcmFwaEVycm9yO1xuXG5leHBvcnQge1xuICBHcmFwaCxcbiAgRGlyZWN0ZWRHcmFwaCxcbiAgVW5kaXJlY3RlZEdyYXBoLFxuICBNdWx0aUdyYXBoLFxuICBNdWx0aURpcmVjdGVkR3JhcGgsXG4gIE11bHRpVW5kaXJlY3RlZEdyYXBoXG59O1xuIiwgIi8qKlxuICogR3JhcGhvbG9neSBpc0dyYXBoXG4gKiA9PT09PT09PT09PT09PT09PT09XG4gKlxuICogVmVyeSBzaW1wbGUgZnVuY3Rpb24gYWltaW5nIGF0IGVuc3VyaW5nIHRoZSBnaXZlbiB2YXJpYWJsZSBpcyBhXG4gKiBncmFwaG9sb2d5IGluc3RhbmNlLlxuICovXG5cbi8qKlxuICogQ2hlY2tpbmcgdGhlIHZhbHVlIGlzIGEgZ3JhcGhvbG9neSBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0gIHthbnl9ICAgICB2YWx1ZSAtIFRhcmdldCB2YWx1ZS5cbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaXNHcmFwaCh2YWx1ZSkge1xuICByZXR1cm4gKFxuICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgIHR5cGVvZiB2YWx1ZS5hZGRVbmRpcmVjdGVkRWRnZVdpdGhLZXkgPT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlb2YgdmFsdWUuZHJvcE5vZGUgPT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlb2YgdmFsdWUubXVsdGkgPT09ICdib29sZWFuJ1xuICApO1xufTtcbiIsICJleHBvcnRzLkFSUkFZX0JVRkZFUl9TVVBQT1JUID0gdHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJztcbmV4cG9ydHMuU1lNQk9MX1NVUFBPUlQgPSB0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJztcbiIsICIvKipcbiAqIE9ibGl0ZXJhdG9yIEZvckVhY2ggRnVuY3Rpb25cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKlxuICogSGVscGVyIGZ1bmN0aW9uIHVzZWQgdG8gZWFzaWx5IGl0ZXJhdGUgb3ZlciBtaXhlZCB2YWx1ZXMuXG4gKi9cbnZhciBzdXBwb3J0ID0gcmVxdWlyZSgnLi9zdXBwb3J0LmpzJyk7XG5cbnZhciBBUlJBWV9CVUZGRVJfU1VQUE9SVCA9IHN1cHBvcnQuQVJSQVlfQlVGRkVSX1NVUFBPUlQ7XG52YXIgU1lNQk9MX1NVUFBPUlQgPSBzdXBwb3J0LlNZTUJPTF9TVVBQT1JUO1xuXG4vKipcbiAqIEZ1bmN0aW9uIGFibGUgdG8gaXRlcmF0ZSBvdmVyIGFsbW9zdCBhbnkgaXRlcmFibGUgSlMgdmFsdWUuXG4gKlxuICogQHBhcmFtICB7YW55fSAgICAgIGl0ZXJhYmxlIC0gSXRlcmFibGUgdmFsdWUuXG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayBmdW5jdGlvbi5cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBmb3JFYWNoKGl0ZXJhYmxlLCBjYWxsYmFjaykge1xuICB2YXIgaXRlcmF0b3IsIGssIGksIGwsIHM7XG5cbiAgaWYgKCFpdGVyYWJsZSkgdGhyb3cgbmV3IEVycm9yKCdvYmxpdGVyYXRvci9mb3JFYWNoOiBpbnZhbGlkIGl0ZXJhYmxlLicpO1xuXG4gIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdvYmxpdGVyYXRvci9mb3JFYWNoOiBleHBlY3RpbmcgYSBjYWxsYmFjay4nKTtcblxuICAvLyBUaGUgdGFyZ2V0IGlzIGFuIGFycmF5IG9yIGEgc3RyaW5nIG9yIGZ1bmN0aW9uIGFyZ3VtZW50c1xuICBpZiAoXG4gICAgQXJyYXkuaXNBcnJheShpdGVyYWJsZSkgfHxcbiAgICAoQVJSQVlfQlVGRkVSX1NVUFBPUlQgJiYgQXJyYXlCdWZmZXIuaXNWaWV3KGl0ZXJhYmxlKSkgfHxcbiAgICB0eXBlb2YgaXRlcmFibGUgPT09ICdzdHJpbmcnIHx8XG4gICAgaXRlcmFibGUudG9TdHJpbmcoKSA9PT0gJ1tvYmplY3QgQXJndW1lbnRzXSdcbiAgKSB7XG4gICAgZm9yIChpID0gMCwgbCA9IGl0ZXJhYmxlLmxlbmd0aDsgaSA8IGw7IGkrKykgY2FsbGJhY2soaXRlcmFibGVbaV0sIGkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIFRoZSB0YXJnZXQgaGFzIGEgIy5mb3JFYWNoIG1ldGhvZFxuICBpZiAodHlwZW9mIGl0ZXJhYmxlLmZvckVhY2ggPT09ICdmdW5jdGlvbicpIHtcbiAgICBpdGVyYWJsZS5mb3JFYWNoKGNhbGxiYWNrKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBUaGUgdGFyZ2V0IGlzIGl0ZXJhYmxlXG4gIGlmIChcbiAgICBTWU1CT0xfU1VQUE9SVCAmJlxuICAgIFN5bWJvbC5pdGVyYXRvciBpbiBpdGVyYWJsZSAmJlxuICAgIHR5cGVvZiBpdGVyYWJsZS5uZXh0ICE9PSAnZnVuY3Rpb24nXG4gICkge1xuICAgIGl0ZXJhYmxlID0gaXRlcmFibGVbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICB9XG5cbiAgLy8gVGhlIHRhcmdldCBpcyBhbiBpdGVyYXRvclxuICBpZiAodHlwZW9mIGl0ZXJhYmxlLm5leHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpdGVyYXRvciA9IGl0ZXJhYmxlO1xuICAgIGkgPSAwO1xuXG4gICAgd2hpbGUgKCgocyA9IGl0ZXJhdG9yLm5leHQoKSksIHMuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICAgIGNhbGxiYWNrKHMudmFsdWUsIGkpO1xuICAgICAgaSsrO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIFRoZSB0YXJnZXQgaXMgYSBwbGFpbiBvYmplY3RcbiAgZm9yIChrIGluIGl0ZXJhYmxlKSB7XG4gICAgaWYgKGl0ZXJhYmxlLmhhc093blByb3BlcnR5KGspKSB7XG4gICAgICBjYWxsYmFjayhpdGVyYWJsZVtrXSwgayk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuO1xufTtcbiIsICIvKipcbiAqIE1uZW1vbmlzdCBUeXBlZCBBcnJheSBIZWxwZXJzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBNaXNjZWxsYW5lb3VzIGhlbHBlcnMgcmVsYXRlZCB0byB0eXBlZCBhcnJheXMuXG4gKi9cblxuLyoqXG4gKiBXaGVuIHVzaW5nIGFuIHVuc2lnbmVkIGludGVnZXIgYXJyYXkgdG8gc3RvcmUgcG9pbnRlcnMsIG9uZSBtaWdodCB3YW50IHRvXG4gKiBjaG9vc2UgdGhlIG9wdGltYWwgd29yZCBzaXplIGluIHJlZ2FyZHMgdG8gdGhlIGFjdHVhbCBudW1iZXJzIG9mIHBvaW50ZXJzXG4gKiB0byBzdG9yZS5cbiAqXG4gKiBUaGlzIGhlbHBlcnMgZG9lcyBqdXN0IHRoYXQuXG4gKlxuICogQHBhcmFtICB7bnVtYmVyfSBzaXplIC0gRXhwZWN0ZWQgc2l6ZSBvZiB0aGUgYXJyYXkgdG8gbWFwLlxuICogQHJldHVybiB7VHlwZWRBcnJheX1cbiAqL1xudmFyIE1BWF84QklUX0lOVEVHRVIgPSBNYXRoLnBvdygyLCA4KSAtIDEsXG4gICAgTUFYXzE2QklUX0lOVEVHRVIgPSBNYXRoLnBvdygyLCAxNikgLSAxLFxuICAgIE1BWF8zMkJJVF9JTlRFR0VSID0gTWF0aC5wb3coMiwgMzIpIC0gMTtcblxudmFyIE1BWF9TSUdORURfOEJJVF9JTlRFR0VSID0gTWF0aC5wb3coMiwgNykgLSAxLFxuICAgIE1BWF9TSUdORURfMTZCSVRfSU5URUdFUiA9IE1hdGgucG93KDIsIDE1KSAtIDEsXG4gICAgTUFYX1NJR05FRF8zMkJJVF9JTlRFR0VSID0gTWF0aC5wb3coMiwgMzEpIC0gMTtcblxuZXhwb3J0cy5nZXRQb2ludGVyQXJyYXkgPSBmdW5jdGlvbihzaXplKSB7XG4gIHZhciBtYXhJbmRleCA9IHNpemUgLSAxO1xuXG4gIGlmIChtYXhJbmRleCA8PSBNQVhfOEJJVF9JTlRFR0VSKVxuICAgIHJldHVybiBVaW50OEFycmF5O1xuXG4gIGlmIChtYXhJbmRleCA8PSBNQVhfMTZCSVRfSU5URUdFUilcbiAgICByZXR1cm4gVWludDE2QXJyYXk7XG5cbiAgaWYgKG1heEluZGV4IDw9IE1BWF8zMkJJVF9JTlRFR0VSKVxuICAgIHJldHVybiBVaW50MzJBcnJheTtcblxuICB0aHJvdyBuZXcgRXJyb3IoJ21uZW1vbmlzdDogUG9pbnRlciBBcnJheSBvZiBzaXplID4gNDI5NDk2NzI5NSBpcyBub3Qgc3VwcG9ydGVkLicpO1xufTtcblxuZXhwb3J0cy5nZXRTaWduZWRQb2ludGVyQXJyYXkgPSBmdW5jdGlvbihzaXplKSB7XG4gIHZhciBtYXhJbmRleCA9IHNpemUgLSAxO1xuXG4gIGlmIChtYXhJbmRleCA8PSBNQVhfU0lHTkVEXzhCSVRfSU5URUdFUilcbiAgICByZXR1cm4gSW50OEFycmF5O1xuXG4gIGlmIChtYXhJbmRleCA8PSBNQVhfU0lHTkVEXzE2QklUX0lOVEVHRVIpXG4gICAgcmV0dXJuIEludDE2QXJyYXk7XG5cbiAgaWYgKG1heEluZGV4IDw9IE1BWF9TSUdORURfMzJCSVRfSU5URUdFUilcbiAgICByZXR1cm4gSW50MzJBcnJheTtcblxuICByZXR1cm4gRmxvYXQ2NEFycmF5O1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiByZXR1cm5pbmcgdGhlIG1pbmltYWwgdHlwZSBhYmxlIHRvIHJlcHJlc2VudCB0aGUgZ2l2ZW4gbnVtYmVyLlxuICpcbiAqIEBwYXJhbSAge251bWJlcn0gdmFsdWUgLSBWYWx1ZSB0byB0ZXN0LlxuICogQHJldHVybiB7VHlwZWRBcnJheUNsYXNzfVxuICovXG5leHBvcnRzLmdldE51bWJlclR5cGUgPSBmdW5jdGlvbih2YWx1ZSkge1xuXG4gIC8vIDw9IDMyIGJpdHMgaXRudGVnZXI/XG4gIGlmICh2YWx1ZSA9PT0gKHZhbHVlIHwgMCkpIHtcblxuICAgIC8vIE5lZ2F0aXZlXG4gICAgaWYgKE1hdGguc2lnbih2YWx1ZSkgPT09IC0xKSB7XG4gICAgICBpZiAodmFsdWUgPD0gMTI3ICYmIHZhbHVlID49IC0xMjgpXG4gICAgICAgIHJldHVybiBJbnQ4QXJyYXk7XG5cbiAgICAgIGlmICh2YWx1ZSA8PSAzMjc2NyAmJiB2YWx1ZSA+PSAtMzI3NjgpXG4gICAgICAgIHJldHVybiBJbnQxNkFycmF5O1xuXG4gICAgICByZXR1cm4gSW50MzJBcnJheTtcbiAgICB9XG4gICAgZWxzZSB7XG5cbiAgICAgIGlmICh2YWx1ZSA8PSAyNTUpXG4gICAgICAgIHJldHVybiBVaW50OEFycmF5O1xuXG4gICAgICBpZiAodmFsdWUgPD0gNjU1MzUpXG4gICAgICAgIHJldHVybiBVaW50MTZBcnJheTtcblxuICAgICAgcmV0dXJuIFVpbnQzMkFycmF5O1xuICAgIH1cbiAgfVxuXG4gIC8vIDUzIGJpdHMgaW50ZWdlciAmIGZsb2F0c1xuICAvLyBOT1RFOiBpdCdzIGtpbmRhIGhhcmQgdG8gdGVsbCB3aGV0aGVyIHdlIGNvdWxkIHVzZSAzMmJpdHMgb3Igbm90Li4uXG4gIHJldHVybiBGbG9hdDY0QXJyYXk7XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHJldHVybmluZyB0aGUgbWluaW1hbCB0eXBlIGFibGUgdG8gcmVwcmVzZW50IHRoZSBnaXZlbiBhcnJheVxuICogb2YgSmF2YVNjcmlwdCBudW1iZXJzLlxuICpcbiAqIEBwYXJhbSAge2FycmF5fSAgICBhcnJheSAgLSBBcnJheSB0byByZXByZXNlbnQuXG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gZ2V0dGVyIC0gT3B0aW9uYWwgZ2V0dGVyLlxuICogQHJldHVybiB7VHlwZWRBcnJheUNsYXNzfVxuICovXG52YXIgVFlQRV9QUklPUklUWSA9IHtcbiAgVWludDhBcnJheTogMSxcbiAgSW50OEFycmF5OiAyLFxuICBVaW50MTZBcnJheTogMyxcbiAgSW50MTZBcnJheTogNCxcbiAgVWludDMyQXJyYXk6IDUsXG4gIEludDMyQXJyYXk6IDYsXG4gIEZsb2F0MzJBcnJheTogNyxcbiAgRmxvYXQ2NEFycmF5OiA4XG59O1xuXG4vLyBUT0RPOiBtYWtlIHRoaXMgYSBvbmUtc2hvdCBmb3Igb25lIHZhbHVlXG5leHBvcnRzLmdldE1pbmltYWxSZXByZXNlbnRhdGlvbiA9IGZ1bmN0aW9uKGFycmF5LCBnZXR0ZXIpIHtcbiAgdmFyIG1heFR5cGUgPSBudWxsLFxuICAgICAgbWF4UHJpb3JpdHkgPSAwLFxuICAgICAgcCxcbiAgICAgIHQsXG4gICAgICB2LFxuICAgICAgaSxcbiAgICAgIGw7XG5cbiAgZm9yIChpID0gMCwgbCA9IGFycmF5Lmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIHYgPSBnZXR0ZXIgPyBnZXR0ZXIoYXJyYXlbaV0pIDogYXJyYXlbaV07XG4gICAgdCA9IGV4cG9ydHMuZ2V0TnVtYmVyVHlwZSh2KTtcbiAgICBwID0gVFlQRV9QUklPUklUWVt0Lm5hbWVdO1xuXG4gICAgaWYgKHAgPiBtYXhQcmlvcml0eSkge1xuICAgICAgbWF4UHJpb3JpdHkgPSBwO1xuICAgICAgbWF4VHlwZSA9IHQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1heFR5cGU7XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHJldHVybmluZyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIHR5cGVkIGFycmF5LlxuICpcbiAqIEBwYXJhbSAge2FueX0gdmFsdWUgLSBWYWx1ZSB0byB0ZXN0LlxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0cy5pc1R5cGVkQXJyYXkgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJiBBcnJheUJ1ZmZlci5pc1ZpZXcodmFsdWUpO1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIHRvIGNvbmNhdCBieXRlIGFycmF5cy5cbiAqXG4gKiBAcGFyYW0gIHsuLi5CeXRlQXJyYXl9XG4gKiBAcmV0dXJuIHtCeXRlQXJyYXl9XG4gKi9cbmV4cG9ydHMuY29uY2F0ID0gZnVuY3Rpb24oKSB7XG4gIHZhciBsZW5ndGggPSAwLFxuICAgICAgaSxcbiAgICAgIG8sXG4gICAgICBsO1xuXG4gIGZvciAoaSA9IDAsIGwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbDsgaSsrKVxuICAgIGxlbmd0aCArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xuXG4gIHZhciBhcnJheSA9IG5ldyAoYXJndW1lbnRzWzBdLmNvbnN0cnVjdG9yKShsZW5ndGgpO1xuXG4gIGZvciAoaSA9IDAsIG8gPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgYXJyYXkuc2V0KGFyZ3VtZW50c1tpXSwgbyk7XG4gICAgbyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xuICB9XG5cbiAgcmV0dXJuIGFycmF5O1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIHRvIGluaXRpYWxpemUgYSBieXRlIGFycmF5IG9mIGluZGljZXMuXG4gKlxuICogQHBhcmFtICB7bnVtYmVyfSAgICBsZW5ndGggLSBMZW5ndGggb2YgdGFyZ2V0LlxuICogQHJldHVybiB7Qnl0ZUFycmF5fVxuICovXG5leHBvcnRzLmluZGljZXMgPSBmdW5jdGlvbihsZW5ndGgpIHtcbiAgdmFyIFBvaW50ZXJBcnJheSA9IGV4cG9ydHMuZ2V0UG9pbnRlckFycmF5KGxlbmd0aCk7XG5cbiAgdmFyIGFycmF5ID0gbmV3IFBvaW50ZXJBcnJheShsZW5ndGgpO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspXG4gICAgYXJyYXlbaV0gPSBpO1xuXG4gIHJldHVybiBhcnJheTtcbn07XG4iLCAiLyoqXG4gKiBNbmVtb25pc3QgSXRlcmFibGUgRnVuY3Rpb25cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBIYXJtb25pemVkIGl0ZXJhdGlvbiBoZWxwZXJzIG92ZXIgbWl4ZWQgaXRlcmFibGUgdGFyZ2V0cy5cbiAqL1xudmFyIGZvckVhY2ggPSByZXF1aXJlKCdvYmxpdGVyYXRvci9mb3JlYWNoJyk7XG5cbnZhciB0eXBlZCA9IHJlcXVpcmUoJy4vdHlwZWQtYXJyYXlzLmpzJyk7XG5cbi8qKlxuICogRnVuY3Rpb24gdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gb2JqZWN0IHN1cHBvcnRzIGFycmF5LWxpa2VcbiAqIHJhbmRvbSBhY2Nlc3MuXG4gKlxuICogQHBhcmFtICB7YW55fSB0YXJnZXQgLSBUYXJnZXQgb2JqZWN0LlxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNBcnJheUxpa2UodGFyZ2V0KSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHRhcmdldCkgfHwgdHlwZWQuaXNUeXBlZEFycmF5KHRhcmdldCk7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gdXNlZCB0byBndWVzcyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJ1Y3R1cmUgb3ZlciB3aGljaCB3ZSBhcmUgZ29pbmdcbiAqIHRvIGl0ZXJhdGUuXG4gKlxuICogQHBhcmFtICB7YW55fSB0YXJnZXQgLSBUYXJnZXQgb2JqZWN0LlxuICogQHJldHVybiB7bnVtYmVyfHVuZGVmaW5lZH1cbiAqL1xuZnVuY3Rpb24gZ3Vlc3NMZW5ndGgodGFyZ2V0KSB7XG4gIGlmICh0eXBlb2YgdGFyZ2V0Lmxlbmd0aCA9PT0gJ251bWJlcicpXG4gICAgcmV0dXJuIHRhcmdldC5sZW5ndGg7XG5cbiAgaWYgKHR5cGVvZiB0YXJnZXQuc2l6ZSA9PT0gJ251bWJlcicpXG4gICAgcmV0dXJuIHRhcmdldC5zaXplO1xuXG4gIHJldHVybjtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIHRvIGNvbnZlcnQgYW4gaXRlcmFibGUgdG8gYW4gYXJyYXkuXG4gKlxuICogQHBhcmFtICB7YW55fSAgIHRhcmdldCAtIEl0ZXJhdGlvbiB0YXJnZXQuXG4gKiBAcmV0dXJuIHthcnJheX1cbiAqL1xuZnVuY3Rpb24gdG9BcnJheSh0YXJnZXQpIHtcbiAgdmFyIGwgPSBndWVzc0xlbmd0aCh0YXJnZXQpO1xuXG4gIHZhciBhcnJheSA9IHR5cGVvZiBsID09PSAnbnVtYmVyJyA/IG5ldyBBcnJheShsKSA6IFtdO1xuXG4gIHZhciBpID0gMDtcblxuICAvLyBUT0RPOiB3ZSBjb3VsZCBvcHRpbWl6ZSB3aGVuIGdpdmVuIHRhcmdldCBpcyBhcnJheSBsaWtlXG4gIGZvckVhY2godGFyZ2V0LCBmdW5jdGlvbih2YWx1ZSkge1xuICAgIGFycmF5W2krK10gPSB2YWx1ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGFycmF5O1xufVxuXG4vKipcbiAqIFNhbWUgYXMgYWJvdmUgYnV0IHJldHVybnMgYSBzdXBwbGVtZW50YXJ5IGluZGljZXMgYXJyYXkuXG4gKlxuICogQHBhcmFtICB7YW55fSAgIHRhcmdldCAtIEl0ZXJhdGlvbiB0YXJnZXQuXG4gKiBAcmV0dXJuIHthcnJheX1cbiAqL1xuZnVuY3Rpb24gdG9BcnJheVdpdGhJbmRpY2VzKHRhcmdldCkge1xuICB2YXIgbCA9IGd1ZXNzTGVuZ3RoKHRhcmdldCk7XG5cbiAgdmFyIEluZGV4QXJyYXkgPSB0eXBlb2YgbCA9PT0gJ251bWJlcicgP1xuICAgIHR5cGVkLmdldFBvaW50ZXJBcnJheShsKSA6XG4gICAgQXJyYXk7XG5cbiAgdmFyIGFycmF5ID0gdHlwZW9mIGwgPT09ICdudW1iZXInID8gbmV3IEFycmF5KGwpIDogW107XG4gIHZhciBpbmRpY2VzID0gdHlwZW9mIGwgPT09ICdudW1iZXInID8gbmV3IEluZGV4QXJyYXkobCkgOiBbXTtcblxuICB2YXIgaSA9IDA7XG5cbiAgLy8gVE9ETzogd2UgY291bGQgb3B0aW1pemUgd2hlbiBnaXZlbiB0YXJnZXQgaXMgYXJyYXkgbGlrZVxuICBmb3JFYWNoKHRhcmdldCwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICBhcnJheVtpXSA9IHZhbHVlO1xuICAgIGluZGljZXNbaV0gPSBpKys7XG4gIH0pO1xuXG4gIHJldHVybiBbYXJyYXksIGluZGljZXNdO1xufVxuXG4vKipcbiAqIEV4cG9ydGluZy5cbiAqL1xuZXhwb3J0cy5pc0FycmF5TGlrZSA9IGlzQXJyYXlMaWtlO1xuZXhwb3J0cy5ndWVzc0xlbmd0aCA9IGd1ZXNzTGVuZ3RoO1xuZXhwb3J0cy50b0FycmF5ID0gdG9BcnJheTtcbmV4cG9ydHMudG9BcnJheVdpdGhJbmRpY2VzID0gdG9BcnJheVdpdGhJbmRpY2VzO1xuIiwgIi8qKlxuICogT2JsaXRlcmF0b3IgSXRlcmF0b3IgQ2xhc3NcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICpcbiAqIFNpbXBsZSBjbGFzcyByZXByZXNlbnRpbmcgdGhlIGxpYnJhcnkncyBpdGVyYXRvcnMuXG4gKi9cblxuLyoqXG4gKiBJdGVyYXRvciBjbGFzcy5cbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IG5leHQgLSBOZXh0IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBJdGVyYXRvcihuZXh0KSB7XG4gIGlmICh0eXBlb2YgbmV4dCAhPT0gJ2Z1bmN0aW9uJylcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ29ibGl0ZXJhdG9yL2l0ZXJhdG9yOiBleHBlY3RpbmcgYSBmdW5jdGlvbiEnKTtcblxuICB0aGlzLm5leHQgPSBuZXh0O1xufVxuXG4vKipcbiAqIElmIHN5bWJvbHMgYXJlIHN1cHBvcnRlZCwgd2UgYWRkIGBuZXh0YCB0byBgU3ltYm9sLml0ZXJhdG9yYC5cbiAqL1xuaWYgKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnKVxuICBJdGVyYXRvci5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuLyoqXG4gKiBSZXR1cm5pbmcgYW4gaXRlcmF0b3Igb2YgdGhlIGdpdmVuIHZhbHVlcy5cbiAqXG4gKiBAcGFyYW0gIHthbnkuLi59IHZhbHVlcyAtIFZhbHVlcy5cbiAqIEByZXR1cm4ge0l0ZXJhdG9yfVxuICovXG5JdGVyYXRvci5vZiA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgbCA9IGFyZ3MubGVuZ3RoLFxuICAgIGkgPSAwO1xuXG4gIHJldHVybiBuZXcgSXRlcmF0b3IoZnVuY3Rpb24gKCkge1xuICAgIGlmIChpID49IGwpIHJldHVybiB7ZG9uZTogdHJ1ZX07XG5cbiAgICByZXR1cm4ge2RvbmU6IGZhbHNlLCB2YWx1ZTogYXJnc1tpKytdfTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIFJldHVybmluZyBhbiBlbXB0eSBpdGVyYXRvci5cbiAqXG4gKiBAcmV0dXJuIHtJdGVyYXRvcn1cbiAqL1xuSXRlcmF0b3IuZW1wdHkgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBpdGVyYXRvciA9IG5ldyBJdGVyYXRvcihmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtkb25lOiB0cnVlfTtcbiAgfSk7XG5cbiAgcmV0dXJuIGl0ZXJhdG9yO1xufTtcblxuLyoqXG4gKiBSZXR1cm5pbmcgYW4gaXRlcmF0b3Igb3ZlciB0aGUgZ2l2ZW4gaW5kZXhlZCBzZXF1ZW5jZS5cbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd8QXJyYXl9IHNlcXVlbmNlIC0gVGFyZ2V0IHNlcXVlbmNlLlxuICogQHJldHVybiB7SXRlcmF0b3J9XG4gKi9cbkl0ZXJhdG9yLmZyb21TZXF1ZW5jZSA9IGZ1bmN0aW9uIChzZXF1ZW5jZSkge1xuICB2YXIgaSA9IDAsXG4gICAgbCA9IHNlcXVlbmNlLmxlbmd0aDtcblxuICByZXR1cm4gbmV3IEl0ZXJhdG9yKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoaSA+PSBsKSByZXR1cm4ge2RvbmU6IHRydWV9O1xuXG4gICAgcmV0dXJuIHtkb25lOiBmYWxzZSwgdmFsdWU6IHNlcXVlbmNlW2krK119O1xuICB9KTtcbn07XG5cbi8qKlxuICogUmV0dXJuaW5nIHdoZXRoZXIgdGhlIGdpdmVuIHZhbHVlIGlzIGFuIGl0ZXJhdG9yLlxuICpcbiAqIEBwYXJhbSAge2FueX0gdmFsdWUgLSBWYWx1ZS5cbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbkl0ZXJhdG9yLmlzID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEl0ZXJhdG9yKSByZXR1cm4gdHJ1ZTtcblxuICByZXR1cm4gKFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICB2YWx1ZSAhPT0gbnVsbCAmJlxuICAgIHR5cGVvZiB2YWx1ZS5uZXh0ID09PSAnZnVuY3Rpb24nXG4gICk7XG59O1xuXG4vKipcbiAqIEV4cG9ydGluZy5cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBJdGVyYXRvcjtcbiIsICIvKipcbiAqIE1uZW1vbmlzdCBGaXhlZERlcXVlXG4gKiA9PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBGaXhlZCBjYXBhY2l0eSBkb3VibGUtZW5kZWQgcXVldWUgaW1wbGVtZW50ZWQgYXMgcmluZyBkZXF1ZS5cbiAqL1xudmFyIGl0ZXJhYmxlcyA9IHJlcXVpcmUoJy4vdXRpbHMvaXRlcmFibGVzLmpzJyksXG4gICAgSXRlcmF0b3IgPSByZXF1aXJlKCdvYmxpdGVyYXRvci9pdGVyYXRvcicpO1xuXG4vKipcbiAqIEZpeGVkRGVxdWUuXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKi9cbmZ1bmN0aW9uIEZpeGVkRGVxdWUoQXJyYXlDbGFzcywgY2FwYWNpdHkpIHtcblxuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDIpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdtbmVtb25pc3QvZml4ZWQtZGVxdWU6IGV4cGVjdGluZyBhbiBBcnJheSBjbGFzcyBhbmQgYSBjYXBhY2l0eS4nKTtcblxuICBpZiAodHlwZW9mIGNhcGFjaXR5ICE9PSAnbnVtYmVyJyB8fCBjYXBhY2l0eSA8PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignbW5lbW9uaXN0L2ZpeGVkLWRlcXVlOiBgY2FwYWNpdHlgIHNob3VsZCBiZSBhIHBvc2l0aXZlIG51bWJlci4nKTtcblxuICB0aGlzLkFycmF5Q2xhc3MgPSBBcnJheUNsYXNzO1xuICB0aGlzLmNhcGFjaXR5ID0gY2FwYWNpdHk7XG4gIHRoaXMuaXRlbXMgPSBuZXcgQXJyYXlDbGFzcyh0aGlzLmNhcGFjaXR5KTtcbiAgdGhpcy5jbGVhcigpO1xufVxuXG4vKipcbiAqIE1ldGhvZCB1c2VkIHRvIGNsZWFyIHRoZSBzdHJ1Y3R1cmUuXG4gKlxuICogQHJldHVybiB7dW5kZWZpbmVkfVxuICovXG5GaXhlZERlcXVlLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uKCkge1xuXG4gIC8vIFByb3BlcnRpZXNcbiAgdGhpcy5zdGFydCA9IDA7XG4gIHRoaXMuc2l6ZSA9IDA7XG59O1xuXG4vKipcbiAqIE1ldGhvZCB1c2VkIHRvIGFwcGVuZCBhIHZhbHVlIHRvIHRoZSBkZXF1ZS5cbiAqXG4gKiBAcGFyYW0gIHthbnl9ICAgIGl0ZW0gLSBJdGVtIHRvIGFwcGVuZC5cbiAqIEByZXR1cm4ge251bWJlcn0gICAgICAtIFJldHVybnMgdGhlIG5ldyBzaXplIG9mIHRoZSBkZXF1ZS5cbiAqL1xuRml4ZWREZXF1ZS5wcm90b3R5cGUucHVzaCA9IGZ1bmN0aW9uKGl0ZW0pIHtcbiAgaWYgKHRoaXMuc2l6ZSA9PT0gdGhpcy5jYXBhY2l0eSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ21uZW1vbmlzdC9maXhlZC1kZXF1ZS5wdXNoOiBkZXF1ZSBjYXBhY2l0eSAoJyArIHRoaXMuY2FwYWNpdHkgKyAnKSBleGNlZWRlZCEnKTtcblxuICB2YXIgaW5kZXggPSAodGhpcy5zdGFydCArIHRoaXMuc2l6ZSkgJSB0aGlzLmNhcGFjaXR5O1xuXG4gIHRoaXMuaXRlbXNbaW5kZXhdID0gaXRlbTtcblxuICByZXR1cm4gKyt0aGlzLnNpemU7XG59O1xuXG4vKipcbiAqIE1ldGhvZCB1c2VkIHRvIHByZXBlbmQgYSB2YWx1ZSB0byB0aGUgZGVxdWUuXG4gKlxuICogQHBhcmFtICB7YW55fSAgICBpdGVtIC0gSXRlbSB0byBwcmVwZW5kLlxuICogQHJldHVybiB7bnVtYmVyfSAgICAgIC0gUmV0dXJucyB0aGUgbmV3IHNpemUgb2YgdGhlIGRlcXVlLlxuICovXG5GaXhlZERlcXVlLnByb3RvdHlwZS51bnNoaWZ0ID0gZnVuY3Rpb24oaXRlbSkge1xuICBpZiAodGhpcy5zaXplID09PSB0aGlzLmNhcGFjaXR5KVxuICAgIHRocm93IG5ldyBFcnJvcignbW5lbW9uaXN0L2ZpeGVkLWRlcXVlLnVuc2hpZnQ6IGRlcXVlIGNhcGFjaXR5ICgnICsgdGhpcy5jYXBhY2l0eSArICcpIGV4Y2VlZGVkIScpO1xuXG4gIHZhciBpbmRleCA9IHRoaXMuc3RhcnQgLSAxO1xuXG4gIGlmICh0aGlzLnN0YXJ0ID09PSAwKVxuICAgIGluZGV4ID0gdGhpcy5jYXBhY2l0eSAtIDE7XG5cbiAgdGhpcy5pdGVtc1tpbmRleF0gPSBpdGVtO1xuICB0aGlzLnN0YXJ0ID0gaW5kZXg7XG5cbiAgcmV0dXJuICsrdGhpcy5zaXplO1xufTtcblxuLyoqXG4gKiBNZXRob2QgdXNlZCB0byBwb3AgdGhlIGRlcXVlLlxuICpcbiAqIEByZXR1cm4ge2FueX0gLSBSZXR1cm5zIHRoZSBwb3BwZWQgaXRlbS5cbiAqL1xuRml4ZWREZXF1ZS5wcm90b3R5cGUucG9wID0gZnVuY3Rpb24oKSB7XG4gIGlmICh0aGlzLnNpemUgPT09IDApXG4gICAgcmV0dXJuO1xuXG4gIGNvbnN0IGluZGV4ID0gKHRoaXMuc3RhcnQgKyB0aGlzLnNpemUgLSAxKSAlIHRoaXMuY2FwYWNpdHk7XG5cbiAgdGhpcy5zaXplLS07XG5cbiAgcmV0dXJuIHRoaXMuaXRlbXNbaW5kZXhdO1xufTtcblxuLyoqXG4gKiBNZXRob2QgdXNlZCB0byBzaGlmdCB0aGUgZGVxdWUuXG4gKlxuICogQHJldHVybiB7YW55fSAtIFJldHVybnMgdGhlIHNoaWZ0ZWQgaXRlbS5cbiAqL1xuRml4ZWREZXF1ZS5wcm90b3R5cGUuc2hpZnQgPSBmdW5jdGlvbigpIHtcbiAgaWYgKHRoaXMuc2l6ZSA9PT0gMClcbiAgICByZXR1cm47XG5cbiAgdmFyIGluZGV4ID0gdGhpcy5zdGFydDtcblxuICB0aGlzLnNpemUtLTtcbiAgdGhpcy5zdGFydCsrO1xuXG4gIGlmICh0aGlzLnN0YXJ0ID09PSB0aGlzLmNhcGFjaXR5KVxuICAgIHRoaXMuc3RhcnQgPSAwO1xuXG4gIHJldHVybiB0aGlzLml0ZW1zW2luZGV4XTtcbn07XG5cbi8qKlxuICogTWV0aG9kIHVzZWQgdG8gcGVlayB0aGUgZmlyc3QgdmFsdWUgb2YgdGhlIGRlcXVlLlxuICpcbiAqIEByZXR1cm4ge2FueX1cbiAqL1xuRml4ZWREZXF1ZS5wcm90b3R5cGUucGVla0ZpcnN0ID0gZnVuY3Rpb24oKSB7XG4gIGlmICh0aGlzLnNpemUgPT09IDApXG4gICAgcmV0dXJuO1xuXG4gIHJldHVybiB0aGlzLml0ZW1zW3RoaXMuc3RhcnRdO1xufTtcblxuLyoqXG4gKiBNZXRob2QgdXNlZCB0byBwZWVrIHRoZSBsYXN0IHZhbHVlIG9mIHRoZSBkZXF1ZS5cbiAqXG4gKiBAcmV0dXJuIHthbnl9XG4gKi9cbkZpeGVkRGVxdWUucHJvdG90eXBlLnBlZWtMYXN0ID0gZnVuY3Rpb24oKSB7XG4gIGlmICh0aGlzLnNpemUgPT09IDApXG4gICAgcmV0dXJuO1xuXG4gIHZhciBpbmRleCA9IHRoaXMuc3RhcnQgKyB0aGlzLnNpemUgLSAxO1xuXG4gIGlmIChpbmRleCA+IHRoaXMuY2FwYWNpdHkpXG4gICAgaW5kZXggLT0gdGhpcy5jYXBhY2l0eTtcblxuICByZXR1cm4gdGhpcy5pdGVtc1tpbmRleF07XG59O1xuXG4vKipcbiAqIE1ldGhvZCB1c2VkIHRvIGdldCB0aGUgZGVzaXJlZCB2YWx1ZSBvZiB0aGUgZGVxdWUuXG4gKlxuICogQHBhcmFtICB7bnVtYmVyfSBpbmRleFxuICogQHJldHVybiB7YW55fVxuICovXG5GaXhlZERlcXVlLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbihpbmRleCkge1xuICBpZiAodGhpcy5zaXplID09PSAwKVxuICAgIHJldHVybjtcblxuICBpbmRleCA9IHRoaXMuc3RhcnQgKyBpbmRleDtcblxuICBpZiAoaW5kZXggPiB0aGlzLmNhcGFjaXR5KVxuICAgIGluZGV4IC09IHRoaXMuY2FwYWNpdHk7XG5cbiAgcmV0dXJuIHRoaXMuaXRlbXNbaW5kZXhdO1xufTtcblxuLyoqXG4gKiBNZXRob2QgdXNlZCB0byBpdGVyYXRlIG92ZXIgdGhlIGRlcXVlLlxuICpcbiAqIEBwYXJhbSAge2Z1bmN0aW9ufSAgY2FsbGJhY2sgLSBGdW5jdGlvbiB0byBjYWxsIGZvciBlYWNoIGl0ZW0uXG4gKiBAcGFyYW0gIHtvYmplY3R9ICAgIHNjb3BlICAgIC0gT3B0aW9uYWwgc2NvcGUuXG4gKiBAcmV0dXJuIHt1bmRlZmluZWR9XG4gKi9cbkZpeGVkRGVxdWUucHJvdG90eXBlLmZvckVhY2ggPSBmdW5jdGlvbihjYWxsYmFjaywgc2NvcGUpIHtcbiAgc2NvcGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IHNjb3BlIDogdGhpcztcblxuICB2YXIgYyA9IHRoaXMuY2FwYWNpdHksXG4gICAgICBsID0gdGhpcy5zaXplLFxuICAgICAgaSA9IHRoaXMuc3RhcnQsXG4gICAgICBqID0gMDtcblxuICB3aGlsZSAoaiA8IGwpIHtcbiAgICBjYWxsYmFjay5jYWxsKHNjb3BlLCB0aGlzLml0ZW1zW2ldLCBqLCB0aGlzKTtcbiAgICBpKys7XG4gICAgaisrO1xuXG4gICAgaWYgKGkgPT09IGMpXG4gICAgICBpID0gMDtcbiAgfVxufTtcblxuLyoqXG4gKiBNZXRob2QgdXNlZCB0byBjb252ZXJ0IHRoZSBkZXF1ZSB0byBhIEphdmFTY3JpcHQgYXJyYXkuXG4gKlxuICogQHJldHVybiB7YXJyYXl9XG4gKi9cbi8vIFRPRE86IG9wdGlvbmFsIGFycmF5IGNsYXNzIGFzIGFyZ3VtZW50P1xuRml4ZWREZXF1ZS5wcm90b3R5cGUudG9BcnJheSA9IGZ1bmN0aW9uKCkge1xuXG4gIC8vIE9wdGltaXphdGlvblxuICB2YXIgb2Zmc2V0ID0gdGhpcy5zdGFydCArIHRoaXMuc2l6ZTtcblxuICBpZiAob2Zmc2V0IDwgdGhpcy5jYXBhY2l0eSlcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5zbGljZSh0aGlzLnN0YXJ0LCBvZmZzZXQpO1xuXG4gIHZhciBhcnJheSA9IG5ldyB0aGlzLkFycmF5Q2xhc3ModGhpcy5zaXplKSxcbiAgICAgIGMgPSB0aGlzLmNhcGFjaXR5LFxuICAgICAgbCA9IHRoaXMuc2l6ZSxcbiAgICAgIGkgPSB0aGlzLnN0YXJ0LFxuICAgICAgaiA9IDA7XG5cbiAgd2hpbGUgKGogPCBsKSB7XG4gICAgYXJyYXlbal0gPSB0aGlzLml0ZW1zW2ldO1xuICAgIGkrKztcbiAgICBqKys7XG5cbiAgICBpZiAoaSA9PT0gYylcbiAgICAgIGkgPSAwO1xuICB9XG5cbiAgcmV0dXJuIGFycmF5O1xufTtcblxuLyoqXG4gKiBNZXRob2QgdXNlZCB0byBjcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgZGVxdWUncyB2YWx1ZXMuXG4gKlxuICogQHJldHVybiB7SXRlcmF0b3J9XG4gKi9cbkZpeGVkRGVxdWUucHJvdG90eXBlLnZhbHVlcyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgaXRlbXMgPSB0aGlzLml0ZW1zLFxuICAgICAgYyA9IHRoaXMuY2FwYWNpdHksXG4gICAgICBsID0gdGhpcy5zaXplLFxuICAgICAgaSA9IHRoaXMuc3RhcnQsXG4gICAgICBqID0gMDtcblxuICByZXR1cm4gbmV3IEl0ZXJhdG9yKGZ1bmN0aW9uKCkge1xuICAgIGlmIChqID49IGwpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkb25lOiB0cnVlXG4gICAgICB9O1xuXG4gICAgdmFyIHZhbHVlID0gaXRlbXNbaV07XG5cbiAgICBpKys7XG4gICAgaisrO1xuXG4gICAgaWYgKGkgPT09IGMpXG4gICAgICBpID0gMDtcblxuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBkb25lOiBmYWxzZVxuICAgIH07XG4gIH0pO1xufTtcblxuLyoqXG4gKiBNZXRob2QgdXNlZCB0byBjcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgZGVxdWUncyBlbnRyaWVzLlxuICpcbiAqIEByZXR1cm4ge0l0ZXJhdG9yfVxuICovXG5GaXhlZERlcXVlLnByb3RvdHlwZS5lbnRyaWVzID0gZnVuY3Rpb24oKSB7XG4gIHZhciBpdGVtcyA9IHRoaXMuaXRlbXMsXG4gICAgICBjID0gdGhpcy5jYXBhY2l0eSxcbiAgICAgIGwgPSB0aGlzLnNpemUsXG4gICAgICBpID0gdGhpcy5zdGFydCxcbiAgICAgIGogPSAwO1xuXG4gIHJldHVybiBuZXcgSXRlcmF0b3IoZnVuY3Rpb24oKSB7XG4gICAgaWYgKGogPj0gbClcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRvbmU6IHRydWVcbiAgICAgIH07XG5cbiAgICB2YXIgdmFsdWUgPSBpdGVtc1tpXTtcblxuICAgIGkrKztcblxuICAgIGlmIChpID09PSBjKVxuICAgICAgaSA9IDA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IFtqKyssIHZhbHVlXSxcbiAgICAgIGRvbmU6IGZhbHNlXG4gICAgfTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIEF0dGFjaGluZyB0aGUgIy52YWx1ZXMgbWV0aG9kIHRvIFN5bWJvbC5pdGVyYXRvciBpZiBwb3NzaWJsZS5cbiAqL1xuaWYgKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnKVxuICBGaXhlZERlcXVlLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdID0gRml4ZWREZXF1ZS5wcm90b3R5cGUudmFsdWVzO1xuXG4vKipcbiAqIENvbnZlbmllbmNlIGtub3duIG1ldGhvZHMuXG4gKi9cbkZpeGVkRGVxdWUucHJvdG90eXBlLmluc3BlY3QgPSBmdW5jdGlvbigpIHtcbiAgdmFyIGFycmF5ID0gdGhpcy50b0FycmF5KCk7XG5cbiAgYXJyYXkudHlwZSA9IHRoaXMuQXJyYXlDbGFzcy5uYW1lO1xuICBhcnJheS5jYXBhY2l0eSA9IHRoaXMuY2FwYWNpdHk7XG5cbiAgLy8gVHJpY2sgc28gdGhhdCBub2RlIGRpc3BsYXlzIHRoZSBuYW1lIG9mIHRoZSBjb25zdHJ1Y3RvclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICdjb25zdHJ1Y3RvcicsIHtcbiAgICB2YWx1ZTogRml4ZWREZXF1ZSxcbiAgICBlbnVtZXJhYmxlOiBmYWxzZVxuICB9KTtcblxuICByZXR1cm4gYXJyYXk7XG59O1xuXG5pZiAodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcpXG4gIEZpeGVkRGVxdWUucHJvdG90eXBlW1N5bWJvbC5mb3IoJ25vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tJyldID0gRml4ZWREZXF1ZS5wcm90b3R5cGUuaW5zcGVjdDtcblxuLyoqXG4gKiBTdGF0aWMgQC5mcm9tIGZ1bmN0aW9uIHRha2luZyBhbiBhcmJpdHJhcnkgaXRlcmFibGUgJiBjb252ZXJ0aW5nIGl0IGludG9cbiAqIGEgZGVxdWUuXG4gKlxuICogQHBhcmFtICB7SXRlcmFibGV9IGl0ZXJhYmxlICAgLSBUYXJnZXQgaXRlcmFibGUuXG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gQXJyYXlDbGFzcyAtIEFycmF5IGNsYXNzIHRvIHVzZS5cbiAqIEBwYXJhbSAge251bWJlcn0gICBjYXBhY2l0eSAgIC0gRGVzaXJlZCBjYXBhY2l0eS5cbiAqIEByZXR1cm4ge0Zpbml0ZVN0YWNrfVxuICovXG5GaXhlZERlcXVlLmZyb20gPSBmdW5jdGlvbihpdGVyYWJsZSwgQXJyYXlDbGFzcywgY2FwYWNpdHkpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAzKSB7XG4gICAgY2FwYWNpdHkgPSBpdGVyYWJsZXMuZ3Vlc3NMZW5ndGgoaXRlcmFibGUpO1xuXG4gICAgaWYgKHR5cGVvZiBjYXBhY2l0eSAhPT0gJ251bWJlcicpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21uZW1vbmlzdC9maXhlZC1kZXF1ZS5mcm9tOiBjb3VsZCBub3QgZ3Vlc3MgaXRlcmFibGUgbGVuZ3RoLiBQbGVhc2UgcHJvdmlkZSBkZXNpcmVkIGNhcGFjaXR5IGFzIGxhc3QgYXJndW1lbnQuJyk7XG4gIH1cblxuICB2YXIgZGVxdWUgPSBuZXcgRml4ZWREZXF1ZShBcnJheUNsYXNzLCBjYXBhY2l0eSk7XG5cbiAgaWYgKGl0ZXJhYmxlcy5pc0FycmF5TGlrZShpdGVyYWJsZSkpIHtcbiAgICB2YXIgaSwgbDtcblxuICAgIGZvciAoaSA9IDAsIGwgPSBpdGVyYWJsZS5sZW5ndGg7IGkgPCBsOyBpKyspXG4gICAgICBkZXF1ZS5pdGVtc1tpXSA9IGl0ZXJhYmxlW2ldO1xuXG4gICAgZGVxdWUuc2l6ZSA9IGw7XG5cbiAgICByZXR1cm4gZGVxdWU7XG4gIH1cblxuICBpdGVyYWJsZXMuZm9yRWFjaChpdGVyYWJsZSwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICBkZXF1ZS5wdXNoKHZhbHVlKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGRlcXVlO1xufTtcblxuLyoqXG4gKiBFeHBvcnRpbmcuXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gRml4ZWREZXF1ZTtcbiIsICIvKipcbiAqIEdyYXBob2xvZ3kgVHJhdmVyc2FsIFV0aWxzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBNaXNjZWxsYW5lb3VzIHV0aWxzIHVzZWQgdGhyb3VnaG91dCB0aGUgbGlicmFyeS5cbiAqL1xuXG5mdW5jdGlvbiBUcmF2ZXJzYWxSZWNvcmQobm9kZSwgYXR0ciwgZGVwdGgpIHtcbiAgdGhpcy5ub2RlID0gbm9kZTtcbiAgdGhpcy5hdHRyaWJ1dGVzID0gYXR0cjtcbiAgdGhpcy5kZXB0aCA9IGRlcHRoO1xufVxuXG5leHBvcnRzLlRyYXZlcnNhbFJlY29yZCA9IFRyYXZlcnNhbFJlY29yZDtcbiIsICIvKipcbiAqIEdyYXBob2xvZ3kgVHJhdmVyc2FsIEJGU1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PVxuICpcbiAqIEJyZWFkdGgtRmlyc3QgU2VhcmNoIHRyYXZlcnNhbCBmdW5jdGlvbi5cbiAqL1xudmFyIGlzR3JhcGggPSByZXF1aXJlKCdncmFwaG9sb2d5LXV0aWxzL2lzLWdyYXBoJyk7XG52YXIgRml4ZWREZXF1ZSA9IHJlcXVpcmUoJ21uZW1vbmlzdC9maXhlZC1kZXF1ZScpO1xudmFyIFRyYXZlcnNhbFJlY29yZCA9IHJlcXVpcmUoJy4vdXRpbHMnKS5UcmF2ZXJzYWxSZWNvcmQ7XG5cbi8qKlxuICogQkZTIHRyYXZlcnNhbCBpbiB0aGUgZ2l2ZW4gZ3JhcGggdXNpbmcgYSBjYWxsYmFjayBmdW5jdGlvblxuICpcbiAqIEBwYXJhbSB7R3JhcGh9ICAgIGdyYXBoICAgIC0gVGFyZ2V0IGdyYXBoLlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBJdGVyYXRpb24gY2FsbGJhY2suXG4gKi9cbmZ1bmN0aW9uIGJmcyhncmFwaCwgY2FsbGJhY2spIHtcbiAgaWYgKCFpc0dyYXBoKGdyYXBoKSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2dyYXBob2xvZ3ktdHJhdmVyc2FsL2JmczogZXhwZWN0aW5nIGEgZ3JhcGhvbG9neSBpbnN0YW5jZS4nKTtcblxuICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKVxuICAgIHRocm93IG5ldyBFcnJvcignZ3JhcGhvbG9neS10cmF2ZXJzYWwvYmZzOiBnaXZlbiBjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbi4nKTtcblxuICAvLyBFYXJseSB0ZXJtaW5hdGlvblxuICBpZiAoZ3JhcGgub3JkZXIgPT09IDApXG4gICAgcmV0dXJuO1xuXG4gIHZhciBzZWVuID0gbmV3IFNldCgpO1xuICB2YXIgcXVldWUgPSBuZXcgRml4ZWREZXF1ZShBcnJheSwgZ3JhcGgub3JkZXIpO1xuICB2YXIgcmVjb3JkLCBkZXB0aDtcblxuICBmdW5jdGlvbiBuZWlnaGJvckNhbGxiYWNrKG5laWdoYm9yLCBhdHRyKSB7XG4gICAgaWYgKHNlZW4uaGFzKG5laWdoYm9yKSlcbiAgICAgIHJldHVybjtcblxuICAgIHNlZW4uYWRkKG5laWdoYm9yKTtcbiAgICBxdWV1ZS5wdXNoKG5ldyBUcmF2ZXJzYWxSZWNvcmQobmVpZ2hib3IsIGF0dHIsIGRlcHRoICsgMSkpO1xuICB9XG5cbiAgZ3JhcGguZm9yRWFjaE5vZGUoZnVuY3Rpb24obm9kZSwgYXR0cikge1xuICAgIGlmIChzZWVuLmhhcyhub2RlKSlcbiAgICAgIHJldHVybjtcblxuICAgIHNlZW4uYWRkKG5vZGUpO1xuICAgIHF1ZXVlLnB1c2gobmV3IFRyYXZlcnNhbFJlY29yZChub2RlLCBhdHRyLCAwKSk7XG5cbiAgICB3aGlsZSAocXVldWUuc2l6ZSAhPT0gMCkge1xuICAgICAgcmVjb3JkID0gcXVldWUuc2hpZnQoKTtcbiAgICAgIGRlcHRoID0gcmVjb3JkLmRlcHRoO1xuXG4gICAgICBjYWxsYmFjayhyZWNvcmQubm9kZSwgcmVjb3JkLmF0dHJpYnV0ZXMsIGRlcHRoKTtcblxuICAgICAgZ3JhcGguZm9yRWFjaE91dGJvdW5kTmVpZ2hib3IocmVjb3JkLm5vZGUsIG5laWdoYm9yQ2FsbGJhY2spO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogQkZTIHRyYXZlcnNhbCBpbiB0aGUgZ2l2ZW4gZ3JhcGgsIHN0YXJ0aW5nIGZyb20gdGhlIGdpdmVuIG5vZGUsIHVzaW5nIGFcbiAqIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7R3JhcGh9ICAgIGdyYXBoICAgIC0gVGFyZ2V0IGdyYXBoLlxuICogQHBhcmFtIHtzdHJpbmd9ICAgbm9kZSAgICAgLSBTdGFydGluZyBub2RlLlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBJdGVyYXRpb24gY2FsbGJhY2suXG4gKi9cbmZ1bmN0aW9uIGJmc0Zyb21Ob2RlKGdyYXBoLCBub2RlLCBjYWxsYmFjaykge1xuICBpZiAoIWlzR3JhcGgoZ3JhcGgpKVxuICAgIHRocm93IG5ldyBFcnJvcignZ3JhcGhvbG9neS10cmF2ZXJzYWwvZGZzOiBleHBlY3RpbmcgYSBncmFwaG9sb2d5IGluc3RhbmNlLicpO1xuXG4gIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdncmFwaG9sb2d5LXRyYXZlcnNhbC9kZnM6IGdpdmVuIGNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uLicpO1xuXG4gIC8vIEVhcmx5IHRlcm1pbmF0aW9uXG4gIGlmIChncmFwaC5vcmRlciA9PT0gMClcbiAgICByZXR1cm47XG5cbiAgbm9kZSA9ICcnICsgbm9kZTtcblxuICB2YXIgc2VlbiA9IG5ldyBTZXQoKTtcbiAgdmFyIHF1ZXVlID0gbmV3IEZpeGVkRGVxdWUoQXJyYXksIGdyYXBoLm9yZGVyKTtcbiAgdmFyIGRlcHRoLCByZWNvcmQ7XG5cbiAgZnVuY3Rpb24gbmVpZ2hib3JDYWxsYmFjayhuZWlnaGJvciwgYXR0cikge1xuICAgIGlmIChzZWVuLmhhcyhuZWlnaGJvcikpXG4gICAgICByZXR1cm47XG5cbiAgICBzZWVuLmFkZChuZWlnaGJvcik7XG4gICAgcXVldWUucHVzaChuZXcgVHJhdmVyc2FsUmVjb3JkKG5laWdoYm9yLCBhdHRyLCBkZXB0aCArIDEpKTtcbiAgfVxuXG4gIHNlZW4uYWRkKG5vZGUpO1xuICBxdWV1ZS5wdXNoKG5ldyBUcmF2ZXJzYWxSZWNvcmQobm9kZSwgZ3JhcGguZ2V0Tm9kZUF0dHJpYnV0ZXMobm9kZSksIDApKTtcblxuICB3aGlsZSAocXVldWUuc2l6ZSAhPT0gMCkge1xuICAgIHJlY29yZCA9IHF1ZXVlLnNoaWZ0KCk7XG4gICAgZGVwdGggPSByZWNvcmQuZGVwdGg7XG5cbiAgICBjYWxsYmFjayhyZWNvcmQubm9kZSwgcmVjb3JkLmF0dHJpYnV0ZXMsIGRlcHRoKTtcblxuICAgIGdyYXBoLmZvckVhY2hPdXRib3VuZE5laWdoYm9yKHJlY29yZC5ub2RlLCBuZWlnaGJvckNhbGxiYWNrKTtcbiAgfVxufVxuXG5leHBvcnRzLmJmcyA9IGJmcztcbmV4cG9ydHMuYmZzRnJvbU5vZGUgPSBiZnNGcm9tTm9kZTtcbiIsICIvKipcbiAqIEdyYXBob2xvZ3kgVHJhdmVyc2FsIERGU1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PVxuICpcbiAqIERlcHRoLUZpcnN0IFNlYXJjaCB0cmF2ZXJzYWwgZnVuY3Rpb24uXG4gKi9cbnZhciBpc0dyYXBoID0gcmVxdWlyZSgnZ3JhcGhvbG9neS11dGlscy9pcy1ncmFwaCcpO1xudmFyIFRyYXZlcnNhbFJlY29yZCA9IHJlcXVpcmUoJy4vdXRpbHMnKS5UcmF2ZXJzYWxSZWNvcmQ7XG5cbi8qKlxuICogREZTIHRyYXZlcnNhbCBpbiB0aGUgZ2l2ZW4gZ3JhcGggdXNpbmcgYSBjYWxsYmFjayBmdW5jdGlvblxuICpcbiAqIEBwYXJhbSB7R3JhcGh9ICAgIGdyYXBoICAgIC0gVGFyZ2V0IGdyYXBoLlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBJdGVyYXRpb24gY2FsbGJhY2suXG4gKi9cbmZ1bmN0aW9uIGRmcyhncmFwaCwgY2FsbGJhY2spIHtcbiAgaWYgKCFpc0dyYXBoKGdyYXBoKSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2dyYXBob2xvZ3ktdHJhdmVyc2FsL2RmczogZXhwZWN0aW5nIGEgZ3JhcGhvbG9neSBpbnN0YW5jZS4nKTtcblxuICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKVxuICAgIHRocm93IG5ldyBFcnJvcignZ3JhcGhvbG9neS10cmF2ZXJzYWwvZGZzOiBnaXZlbiBjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbi4nKTtcblxuICAvLyBFYXJseSB0ZXJtaW5hdGlvblxuICBpZiAoZ3JhcGgub3JkZXIgPT09IDApXG4gICAgcmV0dXJuO1xuXG4gIHZhciBzZWVuID0gbmV3IFNldCgpO1xuICB2YXIgc3RhY2sgPSBbXTtcbiAgdmFyIGRlcHRoLCByZWNvcmQ7XG5cbiAgZnVuY3Rpb24gbmVpZ2hib3JDYWxsYmFjayhuZWlnaGJvciwgYXR0cikge1xuICAgIGlmIChzZWVuLmhhcyhuZWlnaGJvcikpXG4gICAgICByZXR1cm47XG5cbiAgICBzZWVuLmFkZChuZWlnaGJvcik7XG4gICAgc3RhY2sucHVzaChuZXcgVHJhdmVyc2FsUmVjb3JkKG5laWdoYm9yLCBhdHRyLCBkZXB0aCArIDEpKTtcbiAgfVxuXG4gIGdyYXBoLmZvckVhY2hOb2RlKGZ1bmN0aW9uKG5vZGUsIGF0dHIpIHtcbiAgICBpZiAoc2Vlbi5oYXMobm9kZSkpXG4gICAgICByZXR1cm47XG5cbiAgICBzZWVuLmFkZChub2RlKTtcbiAgICBzdGFjay5wdXNoKG5ldyBUcmF2ZXJzYWxSZWNvcmQobm9kZSwgYXR0ciwgMCkpO1xuXG4gICAgd2hpbGUgKHN0YWNrLmxlbmd0aCAhPT0gMCkge1xuICAgICAgcmVjb3JkID0gc3RhY2sucG9wKCk7XG4gICAgICBkZXB0aCA9IHJlY29yZC5kZXB0aDtcblxuICAgICAgY2FsbGJhY2socmVjb3JkLm5vZGUsIHJlY29yZC5hdHRyaWJ1dGVzLCBkZXB0aCk7XG5cbiAgICAgIGdyYXBoLmZvckVhY2hPdXRib3VuZE5laWdoYm9yKHJlY29yZC5ub2RlLCBuZWlnaGJvckNhbGxiYWNrKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIERGUyB0cmF2ZXJzYWwgaW4gdGhlIGdpdmVuIGdyYXBoLCBzdGFydGluZyBmcm9tIHRoZSBnaXZlbiBub2RlLCB1c2luZyBhXG4gKiBjYWxsYmFjayBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0ge0dyYXBofSAgICBncmFwaCAgICAtIFRhcmdldCBncmFwaC5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIG5vZGUgICAgIC0gU3RhcnRpbmcgbm9kZS5cbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gSXRlcmF0aW9uIGNhbGxiYWNrLlxuICovXG5mdW5jdGlvbiBkZnNGcm9tTm9kZShncmFwaCwgbm9kZSwgY2FsbGJhY2spIHtcbiAgaWYgKCFpc0dyYXBoKGdyYXBoKSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2dyYXBob2xvZ3ktdHJhdmVyc2FsL2RmczogZXhwZWN0aW5nIGEgZ3JhcGhvbG9neSBpbnN0YW5jZS4nKTtcblxuICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKVxuICAgIHRocm93IG5ldyBFcnJvcignZ3JhcGhvbG9neS10cmF2ZXJzYWwvZGZzOiBnaXZlbiBjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbi4nKTtcblxuICAvLyBFYXJseSB0ZXJtaW5hdGlvblxuICBpZiAoZ3JhcGgub3JkZXIgPT09IDApXG4gICAgcmV0dXJuO1xuXG4gIG5vZGUgPSAnJyArIG5vZGU7XG5cbiAgdmFyIHNlZW4gPSBuZXcgU2V0KCk7XG4gIHZhciBzdGFjayA9IFtdO1xuICB2YXIgZGVwdGgsIHJlY29yZDtcblxuICBmdW5jdGlvbiBuZWlnaGJvckNhbGxiYWNrKG5laWdoYm9yLCBhdHRyKSB7XG4gICAgaWYgKHNlZW4uaGFzKG5laWdoYm9yKSlcbiAgICAgIHJldHVybjtcblxuICAgIHNlZW4uYWRkKG5laWdoYm9yKTtcbiAgICBzdGFjay5wdXNoKG5ldyBUcmF2ZXJzYWxSZWNvcmQobmVpZ2hib3IsIGF0dHIsIGRlcHRoICsgMSkpO1xuICB9XG5cbiAgc2Vlbi5hZGQobm9kZSk7XG4gIHN0YWNrLnB1c2gobmV3IFRyYXZlcnNhbFJlY29yZChub2RlLCBncmFwaC5nZXROb2RlQXR0cmlidXRlcyhub2RlKSwgMCkpO1xuXG4gIHdoaWxlIChzdGFjay5sZW5ndGggIT09IDApIHtcbiAgICByZWNvcmQgPSBzdGFjay5wb3AoKTtcbiAgICBkZXB0aCA9IHJlY29yZC5kZXB0aDtcblxuICAgIGNhbGxiYWNrKHJlY29yZC5ub2RlLCByZWNvcmQuYXR0cmlidXRlcywgZGVwdGgpO1xuXG4gICAgZ3JhcGguZm9yRWFjaE91dGJvdW5kTmVpZ2hib3IocmVjb3JkLm5vZGUsIG5laWdoYm9yQ2FsbGJhY2spO1xuICB9XG59XG5cbmV4cG9ydHMuZGZzID0gZGZzO1xuZXhwb3J0cy5kZnNGcm9tTm9kZSA9IGRmc0Zyb21Ob2RlO1xuIiwgInZhciBiZnNNb2R1bGUgPSByZXF1aXJlKCcuL2Jmcy5qcycpO1xudmFyIGRmc01vZHVsZSA9IHJlcXVpcmUoJy4vZGZzLmpzJyk7XG5cbnZhciBrO1xuXG5mb3IgKGsgaW4gYmZzTW9kdWxlKVxuICBleHBvcnRzW2tdID0gYmZzTW9kdWxlW2tdO1xuXG5mb3IgKGsgaW4gZGZzTW9kdWxlKVxuICBleHBvcnRzW2tdID0gZGZzTW9kdWxlW2tdO1xuIiwgIi8vIHRoZXNlIGFyZW4ndCByZWFsbHkgcHJpdmF0ZSwgYnV0IG5vciBhcmUgdGhleSByZWFsbHkgdXNlZnVsIHRvIGRvY3VtZW50XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY2xhc3MgTHV4b25FcnJvciBleHRlbmRzIEVycm9yIHt9XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIEludmFsaWREYXRlVGltZUVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHJlYXNvbikge1xuICAgIHN1cGVyKGBJbnZhbGlkIERhdGVUaW1lOiAke3JlYXNvbi50b01lc3NhZ2UoKX1gKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnZhbGlkSW50ZXJ2YWxFcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihyZWFzb24pIHtcbiAgICBzdXBlcihgSW52YWxpZCBJbnRlcnZhbDogJHtyZWFzb24udG9NZXNzYWdlKCl9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZER1cmF0aW9uRXJyb3IgZXh0ZW5kcyBMdXhvbkVycm9yIHtcbiAgY29uc3RydWN0b3IocmVhc29uKSB7XG4gICAgc3VwZXIoYEludmFsaWQgRHVyYXRpb246ICR7cmVhc29uLnRvTWVzc2FnZSgpfWApO1xuICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7fVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnZhbGlkVW5pdEVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHVuaXQpIHtcbiAgICBzdXBlcihgSW52YWxpZCB1bml0ICR7dW5pdH1gKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnZhbGlkQXJndW1lbnRFcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige31cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgWm9uZUlzQWJzdHJhY3RFcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcIlpvbmUgaXMgYW4gYWJzdHJhY3QgY2xhc3NcIik7XG4gIH1cbn1cbiIsICIvKipcbiAqIEBwcml2YXRlXG4gKi9cblxuY29uc3QgbiA9IFwibnVtZXJpY1wiLFxuICBzID0gXCJzaG9ydFwiLFxuICBsID0gXCJsb25nXCI7XG5cbmV4cG9ydCBjb25zdCBEQVRFX1NIT1JUID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbixcbiAgZGF5OiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVfTUVEID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogcyxcbiAgZGF5OiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVfTUVEX1dJVEhfV0VFS0RBWSA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IHMsXG4gIGRheTogbixcbiAgd2Vla2RheTogcyxcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFX0ZVTEwgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBsLFxuICBkYXk6IG4sXG59O1xuXG5leHBvcnQgY29uc3QgREFURV9IVUdFID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbCxcbiAgZGF5OiBuLFxuICB3ZWVrZGF5OiBsLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfU0lNUExFID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG59O1xuXG5leHBvcnQgY29uc3QgVElNRV9XSVRIX1NFQ09ORFMgPSB7XG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfV0lUSF9TSE9SVF9PRkZTRVQgPSB7XG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxuICB0aW1lWm9uZU5hbWU6IHMsXG59O1xuXG5leHBvcnQgY29uc3QgVElNRV9XSVRIX0xPTkdfT0ZGU0VUID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbiAgdGltZVpvbmVOYW1lOiBsLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfMjRfU0lNUExFID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIGhvdXJDeWNsZTogXCJoMjNcIixcbn07XG5cbmV4cG9ydCBjb25zdCBUSU1FXzI0X1dJVEhfU0VDT05EUyA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIGhvdXJDeWNsZTogXCJoMjNcIixcbn07XG5cbmV4cG9ydCBjb25zdCBUSU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VUID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbiAgaG91ckN5Y2xlOiBcImgyM1wiLFxuICB0aW1lWm9uZU5hbWU6IHMsXG59O1xuXG5leHBvcnQgY29uc3QgVElNRV8yNF9XSVRIX0xPTkdfT0ZGU0VUID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbiAgaG91ckN5Y2xlOiBcImgyM1wiLFxuICB0aW1lWm9uZU5hbWU6IGwsXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfU0hPUlQgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBuLFxuICBkYXk6IG4sXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9TSE9SVF9XSVRIX1NFQ09ORFMgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBuLFxuICBkYXk6IG4sXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVUSU1FX01FRCA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IHMsXG4gIGRheTogbixcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFMgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBzLFxuICBkYXk6IG4sXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVkgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBzLFxuICBkYXk6IG4sXG4gIHdlZWtkYXk6IHMsXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9GVUxMID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbCxcbiAgZGF5OiBuLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHRpbWVab25lTmFtZTogcyxcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUyA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IGwsXG4gIGRheTogbixcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIHRpbWVab25lTmFtZTogcyxcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9IVUdFID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbCxcbiAgZGF5OiBuLFxuICB3ZWVrZGF5OiBsLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHRpbWVab25lTmFtZTogbCxcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUyA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IGwsXG4gIGRheTogbixcbiAgd2Vla2RheTogbCxcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIHRpbWVab25lTmFtZTogbCxcbn07XG4iLCAiLypcbiAgVGhpcyBpcyBqdXN0IGEganVuayBkcmF3ZXIsIGNvbnRhaW5pbmcgYW55dGhpbmcgdXNlZCBhY3Jvc3MgbXVsdGlwbGUgY2xhc3Nlcy5cbiAgQmVjYXVzZSBMdXhvbiBpcyBzbWFsbChpc2gpLCB0aGlzIHNob3VsZCBzdGF5IHNtYWxsIGFuZCB3ZSB3b24ndCB3b3JyeSBhYm91dCBzcGxpdHRpbmdcbiAgaXQgdXAgaW50bywgc2F5LCBwYXJzaW5nVXRpbC5qcyBhbmQgYmFzaWNVdGlsLmpzIGFuZCBzbyBvbi4gQnV0IHRoZXkgYXJlIGRpdmlkZWQgdXAgYnkgZmVhdHVyZSBhcmVhLlxuKi9cblxuaW1wb3J0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JzLmpzXCI7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuXG4vLyBUWVBFU1xuXG5leHBvcnQgZnVuY3Rpb24gaXNVbmRlZmluZWQobykge1xuICByZXR1cm4gdHlwZW9mIG8gPT09IFwidW5kZWZpbmVkXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlcihvKSB7XG4gIHJldHVybiB0eXBlb2YgbyA9PT0gXCJudW1iZXJcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZWdlcihvKSB7XG4gIHJldHVybiB0eXBlb2YgbyA9PT0gXCJudW1iZXJcIiAmJiBvICUgMSA9PT0gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nKG8pIHtcbiAgcmV0dXJuIHR5cGVvZiBvID09PSBcInN0cmluZ1wiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlKG8pIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKSA9PT0gXCJbb2JqZWN0IERhdGVdXCI7XG59XG5cbi8vIENBUEFCSUxJVElFU1xuXG5leHBvcnQgZnVuY3Rpb24gaGFzUmVsYXRpdmUoKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHR5cGVvZiBJbnRsICE9PSBcInVuZGVmaW5lZFwiICYmICEhSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQ7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8gT0JKRUNUUyBBTkQgQVJSQVlTXG5cbmV4cG9ydCBmdW5jdGlvbiBtYXliZUFycmF5KHRoaW5nKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHRoaW5nKSA/IHRoaW5nIDogW3RoaW5nXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJlc3RCeShhcnIsIGJ5LCBjb21wYXJlKSB7XG4gIGlmIChhcnIubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4gYXJyLnJlZHVjZSgoYmVzdCwgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHBhaXIgPSBbYnkobmV4dCksIG5leHRdO1xuICAgIGlmICghYmVzdCkge1xuICAgICAgcmV0dXJuIHBhaXI7XG4gICAgfSBlbHNlIGlmIChjb21wYXJlKGJlc3RbMF0sIHBhaXJbMF0pID09PSBiZXN0WzBdKSB7XG4gICAgICByZXR1cm4gYmVzdDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHBhaXI7XG4gICAgfVxuICB9LCBudWxsKVsxXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBpY2sob2JqLCBrZXlzKSB7XG4gIHJldHVybiBrZXlzLnJlZHVjZSgoYSwgaykgPT4ge1xuICAgIGFba10gPSBvYmpba107XG4gICAgcmV0dXJuIGE7XG4gIH0sIHt9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc093blByb3BlcnR5KG9iaiwgcHJvcCkge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7XG59XG5cbi8vIE5VTUJFUlMgQU5EIFNUUklOR1NcblxuZXhwb3J0IGZ1bmN0aW9uIGludGVnZXJCZXR3ZWVuKHRoaW5nLCBib3R0b20sIHRvcCkge1xuICByZXR1cm4gaXNJbnRlZ2VyKHRoaW5nKSAmJiB0aGluZyA+PSBib3R0b20gJiYgdGhpbmcgPD0gdG9wO1xufVxuXG4vLyB4ICUgbiBidXQgdGFrZXMgdGhlIHNpZ24gb2YgbiBpbnN0ZWFkIG9mIHhcbmV4cG9ydCBmdW5jdGlvbiBmbG9vck1vZCh4LCBuKSB7XG4gIHJldHVybiB4IC0gbiAqIE1hdGguZmxvb3IoeCAvIG4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFkU3RhcnQoaW5wdXQsIG4gPSAyKSB7XG4gIGNvbnN0IGlzTmVnID0gaW5wdXQgPCAwO1xuICBsZXQgcGFkZGVkO1xuICBpZiAoaXNOZWcpIHtcbiAgICBwYWRkZWQgPSBcIi1cIiArIChcIlwiICsgLWlucHV0KS5wYWRTdGFydChuLCBcIjBcIik7XG4gIH0gZWxzZSB7XG4gICAgcGFkZGVkID0gKFwiXCIgKyBpbnB1dCkucGFkU3RhcnQobiwgXCIwXCIpO1xuICB9XG4gIHJldHVybiBwYWRkZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUludGVnZXIoc3RyaW5nKSB7XG4gIGlmIChpc1VuZGVmaW5lZChzdHJpbmcpIHx8IHN0cmluZyA9PT0gbnVsbCB8fCBzdHJpbmcgPT09IFwiXCIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBwYXJzZUludChzdHJpbmcsIDEwKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGbG9hdGluZyhzdHJpbmcpIHtcbiAgaWYgKGlzVW5kZWZpbmVkKHN0cmluZykgfHwgc3RyaW5nID09PSBudWxsIHx8IHN0cmluZyA9PT0gXCJcIikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHBhcnNlRmxvYXQoc3RyaW5nKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VNaWxsaXMoZnJhY3Rpb24pIHtcbiAgLy8gUmV0dXJuIHVuZGVmaW5lZCAoaW5zdGVhZCBvZiAwKSBpbiB0aGVzZSBjYXNlcywgd2hlcmUgZnJhY3Rpb24gaXMgbm90IHNldFxuICBpZiAoaXNVbmRlZmluZWQoZnJhY3Rpb24pIHx8IGZyYWN0aW9uID09PSBudWxsIHx8IGZyYWN0aW9uID09PSBcIlwiKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBmID0gcGFyc2VGbG9hdChcIjAuXCIgKyBmcmFjdGlvbikgKiAxMDAwO1xuICAgIHJldHVybiBNYXRoLmZsb29yKGYpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByb3VuZFRvKG51bWJlciwgZGlnaXRzLCB0b3dhcmRaZXJvID0gZmFsc2UpIHtcbiAgY29uc3QgZmFjdG9yID0gMTAgKiogZGlnaXRzLFxuICAgIHJvdW5kZXIgPSB0b3dhcmRaZXJvID8gTWF0aC50cnVuYyA6IE1hdGgucm91bmQ7XG4gIHJldHVybiByb3VuZGVyKG51bWJlciAqIGZhY3RvcikgLyBmYWN0b3I7XG59XG5cbi8vIERBVEUgQkFTSUNTXG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xlYXBZZWFyKHllYXIpIHtcbiAgcmV0dXJuIHllYXIgJSA0ID09PSAwICYmICh5ZWFyICUgMTAwICE9PSAwIHx8IHllYXIgJSA0MDAgPT09IDApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF5c0luWWVhcih5ZWFyKSB7XG4gIHJldHVybiBpc0xlYXBZZWFyKHllYXIpID8gMzY2IDogMzY1O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF5c0luTW9udGgoeWVhciwgbW9udGgpIHtcbiAgY29uc3QgbW9kTW9udGggPSBmbG9vck1vZChtb250aCAtIDEsIDEyKSArIDEsXG4gICAgbW9kWWVhciA9IHllYXIgKyAobW9udGggLSBtb2RNb250aCkgLyAxMjtcblxuICBpZiAobW9kTW9udGggPT09IDIpIHtcbiAgICByZXR1cm4gaXNMZWFwWWVhcihtb2RZZWFyKSA/IDI5IDogMjg7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFszMSwgbnVsbCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdW21vZE1vbnRoIC0gMV07XG4gIH1cbn1cblxuLy8gY292ZXJ0IGEgY2FsZW5kYXIgb2JqZWN0IHRvIGEgbG9jYWwgdGltZXN0YW1wIChlcG9jaCwgYnV0IHdpdGggdGhlIG9mZnNldCBiYWtlZCBpbilcbmV4cG9ydCBmdW5jdGlvbiBvYmpUb0xvY2FsVFMob2JqKSB7XG4gIGxldCBkID0gRGF0ZS5VVEMoXG4gICAgb2JqLnllYXIsXG4gICAgb2JqLm1vbnRoIC0gMSxcbiAgICBvYmouZGF5LFxuICAgIG9iai5ob3VyLFxuICAgIG9iai5taW51dGUsXG4gICAgb2JqLnNlY29uZCxcbiAgICBvYmoubWlsbGlzZWNvbmRcbiAgKTtcblxuICAvLyBmb3IgbGVnYWN5IHJlYXNvbnMsIHllYXJzIGJldHdlZW4gMCBhbmQgOTkgYXJlIGludGVycHJldGVkIGFzIDE5WFg7IHJldmVydCB0aGF0XG4gIGlmIChvYmoueWVhciA8IDEwMCAmJiBvYmoueWVhciA+PSAwKSB7XG4gICAgZCA9IG5ldyBEYXRlKGQpO1xuICAgIGQuc2V0VVRDRnVsbFllYXIoZC5nZXRVVENGdWxsWWVhcigpIC0gMTkwMCk7XG4gIH1cbiAgcmV0dXJuICtkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2Vla3NJbldlZWtZZWFyKHdlZWtZZWFyKSB7XG4gIGNvbnN0IHAxID1cbiAgICAgICh3ZWVrWWVhciArXG4gICAgICAgIE1hdGguZmxvb3Iod2Vla1llYXIgLyA0KSAtXG4gICAgICAgIE1hdGguZmxvb3Iod2Vla1llYXIgLyAxMDApICtcbiAgICAgICAgTWF0aC5mbG9vcih3ZWVrWWVhciAvIDQwMCkpICVcbiAgICAgIDcsXG4gICAgbGFzdCA9IHdlZWtZZWFyIC0gMSxcbiAgICBwMiA9IChsYXN0ICsgTWF0aC5mbG9vcihsYXN0IC8gNCkgLSBNYXRoLmZsb29yKGxhc3QgLyAxMDApICsgTWF0aC5mbG9vcihsYXN0IC8gNDAwKSkgJSA3O1xuICByZXR1cm4gcDEgPT09IDQgfHwgcDIgPT09IDMgPyA1MyA6IDUyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW50cnVuY2F0ZVllYXIoeWVhcikge1xuICBpZiAoeWVhciA+IDk5KSB7XG4gICAgcmV0dXJuIHllYXI7XG4gIH0gZWxzZSByZXR1cm4geWVhciA+IDYwID8gMTkwMCArIHllYXIgOiAyMDAwICsgeWVhcjtcbn1cblxuLy8gUEFSU0lOR1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2Vab25lSW5mbyh0cywgb2Zmc2V0Rm9ybWF0LCBsb2NhbGUsIHRpbWVab25lID0gbnVsbCkge1xuICBjb25zdCBkYXRlID0gbmV3IERhdGUodHMpLFxuICAgIGludGxPcHRzID0ge1xuICAgICAgaG91ckN5Y2xlOiBcImgyM1wiLFxuICAgICAgeWVhcjogXCJudW1lcmljXCIsXG4gICAgICBtb250aDogXCIyLWRpZ2l0XCIsXG4gICAgICBkYXk6IFwiMi1kaWdpdFwiLFxuICAgICAgaG91cjogXCIyLWRpZ2l0XCIsXG4gICAgICBtaW51dGU6IFwiMi1kaWdpdFwiLFxuICAgIH07XG5cbiAgaWYgKHRpbWVab25lKSB7XG4gICAgaW50bE9wdHMudGltZVpvbmUgPSB0aW1lWm9uZTtcbiAgfVxuXG4gIGNvbnN0IG1vZGlmaWVkID0geyB0aW1lWm9uZU5hbWU6IG9mZnNldEZvcm1hdCwgLi4uaW50bE9wdHMgfTtcblxuICBjb25zdCBwYXJzZWQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIG1vZGlmaWVkKVxuICAgIC5mb3JtYXRUb1BhcnRzKGRhdGUpXG4gICAgLmZpbmQoKG0pID0+IG0udHlwZS50b0xvd2VyQ2FzZSgpID09PSBcInRpbWV6b25lbmFtZVwiKTtcbiAgcmV0dXJuIHBhcnNlZCA/IHBhcnNlZC52YWx1ZSA6IG51bGw7XG59XG5cbi8vIHNpZ25lZE9mZnNldCgnLTUnLCAnMzAnKSAtPiAtMzMwXG5leHBvcnQgZnVuY3Rpb24gc2lnbmVkT2Zmc2V0KG9mZkhvdXJTdHIsIG9mZk1pbnV0ZVN0cikge1xuICBsZXQgb2ZmSG91ciA9IHBhcnNlSW50KG9mZkhvdXJTdHIsIDEwKTtcblxuICAvLyBkb24ndCB8fCB0aGlzIGJlY2F1c2Ugd2Ugd2FudCB0byBwcmVzZXJ2ZSAtMFxuICBpZiAoTnVtYmVyLmlzTmFOKG9mZkhvdXIpKSB7XG4gICAgb2ZmSG91ciA9IDA7XG4gIH1cblxuICBjb25zdCBvZmZNaW4gPSBwYXJzZUludChvZmZNaW51dGVTdHIsIDEwKSB8fCAwLFxuICAgIG9mZk1pblNpZ25lZCA9IG9mZkhvdXIgPCAwIHx8IE9iamVjdC5pcyhvZmZIb3VyLCAtMCkgPyAtb2ZmTWluIDogb2ZmTWluO1xuICByZXR1cm4gb2ZmSG91ciAqIDYwICsgb2ZmTWluU2lnbmVkO1xufVxuXG4vLyBDT0VSQ0lPTlxuXG5leHBvcnQgZnVuY3Rpb24gYXNOdW1iZXIodmFsdWUpIHtcbiAgY29uc3QgbnVtZXJpY1ZhbHVlID0gTnVtYmVyKHZhbHVlKTtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCIgfHwgdmFsdWUgPT09IFwiXCIgfHwgTnVtYmVyLmlzTmFOKG51bWVyaWNWYWx1ZSkpXG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKGBJbnZhbGlkIHVuaXQgdmFsdWUgJHt2YWx1ZX1gKTtcbiAgcmV0dXJuIG51bWVyaWNWYWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZU9iamVjdChvYmosIG5vcm1hbGl6ZXIpIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IHt9O1xuICBmb3IgKGNvbnN0IHUgaW4gb2JqKSB7XG4gICAgaWYgKGhhc093blByb3BlcnR5KG9iaiwgdSkpIHtcbiAgICAgIGNvbnN0IHYgPSBvYmpbdV07XG4gICAgICBpZiAodiA9PT0gdW5kZWZpbmVkIHx8IHYgPT09IG51bGwpIGNvbnRpbnVlO1xuICAgICAgbm9ybWFsaXplZFtub3JtYWxpemVyKHUpXSA9IGFzTnVtYmVyKHYpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbm9ybWFsaXplZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE9mZnNldChvZmZzZXQsIGZvcm1hdCkge1xuICBjb25zdCBob3VycyA9IE1hdGgudHJ1bmMoTWF0aC5hYnMob2Zmc2V0IC8gNjApKSxcbiAgICBtaW51dGVzID0gTWF0aC50cnVuYyhNYXRoLmFicyhvZmZzZXQgJSA2MCkpLFxuICAgIHNpZ24gPSBvZmZzZXQgPj0gMCA/IFwiK1wiIDogXCItXCI7XG5cbiAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICBjYXNlIFwic2hvcnRcIjpcbiAgICAgIHJldHVybiBgJHtzaWdufSR7cGFkU3RhcnQoaG91cnMsIDIpfToke3BhZFN0YXJ0KG1pbnV0ZXMsIDIpfWA7XG4gICAgY2FzZSBcIm5hcnJvd1wiOlxuICAgICAgcmV0dXJuIGAke3NpZ259JHtob3Vyc30ke21pbnV0ZXMgPiAwID8gYDoke21pbnV0ZXN9YCA6IFwiXCJ9YDtcbiAgICBjYXNlIFwidGVjaGllXCI6XG4gICAgICByZXR1cm4gYCR7c2lnbn0ke3BhZFN0YXJ0KGhvdXJzLCAyKX0ke3BhZFN0YXJ0KG1pbnV0ZXMsIDIpfWA7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKGBWYWx1ZSBmb3JtYXQgJHtmb3JtYXR9IGlzIG91dCBvZiByYW5nZSBmb3IgcHJvcGVydHkgZm9ybWF0YCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRpbWVPYmplY3Qob2JqKSB7XG4gIHJldHVybiBwaWNrKG9iaiwgW1wiaG91clwiLCBcIm1pbnV0ZVwiLCBcInNlY29uZFwiLCBcIm1pbGxpc2Vjb25kXCJdKTtcbn1cblxuZXhwb3J0IGNvbnN0IGlhbmFSZWdleCA9IC9bQS1aYS16XystXXsxLDI1Nn0oOj9cXC9bQS1aYS16MC05XystXXsxLDI1Nn0oXFwvW0EtWmEtejAtOV8rLV17MSwyNTZ9KT8pPy87XG4iLCAiaW1wb3J0ICogYXMgRm9ybWF0cyBmcm9tIFwiLi9mb3JtYXRzLmpzXCI7XG5pbXBvcnQgeyBwaWNrIH0gZnJvbSBcIi4vdXRpbC5qc1wiO1xuXG5mdW5jdGlvbiBzdHJpbmdpZnkob2JqKSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmosIE9iamVjdC5rZXlzKG9iaikuc29ydCgpKTtcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmV4cG9ydCBjb25zdCBtb250aHNMb25nID0gW1xuICBcIkphbnVhcnlcIixcbiAgXCJGZWJydWFyeVwiLFxuICBcIk1hcmNoXCIsXG4gIFwiQXByaWxcIixcbiAgXCJNYXlcIixcbiAgXCJKdW5lXCIsXG4gIFwiSnVseVwiLFxuICBcIkF1Z3VzdFwiLFxuICBcIlNlcHRlbWJlclwiLFxuICBcIk9jdG9iZXJcIixcbiAgXCJOb3ZlbWJlclwiLFxuICBcIkRlY2VtYmVyXCIsXG5dO1xuXG5leHBvcnQgY29uc3QgbW9udGhzU2hvcnQgPSBbXG4gIFwiSmFuXCIsXG4gIFwiRmViXCIsXG4gIFwiTWFyXCIsXG4gIFwiQXByXCIsXG4gIFwiTWF5XCIsXG4gIFwiSnVuXCIsXG4gIFwiSnVsXCIsXG4gIFwiQXVnXCIsXG4gIFwiU2VwXCIsXG4gIFwiT2N0XCIsXG4gIFwiTm92XCIsXG4gIFwiRGVjXCIsXG5dO1xuXG5leHBvcnQgY29uc3QgbW9udGhzTmFycm93ID0gW1wiSlwiLCBcIkZcIiwgXCJNXCIsIFwiQVwiLCBcIk1cIiwgXCJKXCIsIFwiSlwiLCBcIkFcIiwgXCJTXCIsIFwiT1wiLCBcIk5cIiwgXCJEXCJdO1xuXG5leHBvcnQgZnVuY3Rpb24gbW9udGhzKGxlbmd0aCkge1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgXCJuYXJyb3dcIjpcbiAgICAgIHJldHVybiBbLi4ubW9udGhzTmFycm93XTtcbiAgICBjYXNlIFwic2hvcnRcIjpcbiAgICAgIHJldHVybiBbLi4ubW9udGhzU2hvcnRdO1xuICAgIGNhc2UgXCJsb25nXCI6XG4gICAgICByZXR1cm4gWy4uLm1vbnRoc0xvbmddO1xuICAgIGNhc2UgXCJudW1lcmljXCI6XG4gICAgICByZXR1cm4gW1wiMVwiLCBcIjJcIiwgXCIzXCIsIFwiNFwiLCBcIjVcIiwgXCI2XCIsIFwiN1wiLCBcIjhcIiwgXCI5XCIsIFwiMTBcIiwgXCIxMVwiLCBcIjEyXCJdO1xuICAgIGNhc2UgXCIyLWRpZ2l0XCI6XG4gICAgICByZXR1cm4gW1wiMDFcIiwgXCIwMlwiLCBcIjAzXCIsIFwiMDRcIiwgXCIwNVwiLCBcIjA2XCIsIFwiMDdcIiwgXCIwOFwiLCBcIjA5XCIsIFwiMTBcIiwgXCIxMVwiLCBcIjEyXCJdO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgd2Vla2RheXNMb25nID0gW1xuICBcIk1vbmRheVwiLFxuICBcIlR1ZXNkYXlcIixcbiAgXCJXZWRuZXNkYXlcIixcbiAgXCJUaHVyc2RheVwiLFxuICBcIkZyaWRheVwiLFxuICBcIlNhdHVyZGF5XCIsXG4gIFwiU3VuZGF5XCIsXG5dO1xuXG5leHBvcnQgY29uc3Qgd2Vla2RheXNTaG9ydCA9IFtcIk1vblwiLCBcIlR1ZVwiLCBcIldlZFwiLCBcIlRodVwiLCBcIkZyaVwiLCBcIlNhdFwiLCBcIlN1blwiXTtcblxuZXhwb3J0IGNvbnN0IHdlZWtkYXlzTmFycm93ID0gW1wiTVwiLCBcIlRcIiwgXCJXXCIsIFwiVFwiLCBcIkZcIiwgXCJTXCIsIFwiU1wiXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHdlZWtkYXlzKGxlbmd0aCkge1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgXCJuYXJyb3dcIjpcbiAgICAgIHJldHVybiBbLi4ud2Vla2RheXNOYXJyb3ddO1xuICAgIGNhc2UgXCJzaG9ydFwiOlxuICAgICAgcmV0dXJuIFsuLi53ZWVrZGF5c1Nob3J0XTtcbiAgICBjYXNlIFwibG9uZ1wiOlxuICAgICAgcmV0dXJuIFsuLi53ZWVrZGF5c0xvbmddO1xuICAgIGNhc2UgXCJudW1lcmljXCI6XG4gICAgICByZXR1cm4gW1wiMVwiLCBcIjJcIiwgXCIzXCIsIFwiNFwiLCBcIjVcIiwgXCI2XCIsIFwiN1wiXTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG1lcmlkaWVtcyA9IFtcIkFNXCIsIFwiUE1cIl07XG5cbmV4cG9ydCBjb25zdCBlcmFzTG9uZyA9IFtcIkJlZm9yZSBDaHJpc3RcIiwgXCJBbm5vIERvbWluaVwiXTtcblxuZXhwb3J0IGNvbnN0IGVyYXNTaG9ydCA9IFtcIkJDXCIsIFwiQURcIl07XG5cbmV4cG9ydCBjb25zdCBlcmFzTmFycm93ID0gW1wiQlwiLCBcIkFcIl07XG5cbmV4cG9ydCBmdW5jdGlvbiBlcmFzKGxlbmd0aCkge1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgXCJuYXJyb3dcIjpcbiAgICAgIHJldHVybiBbLi4uZXJhc05hcnJvd107XG4gICAgY2FzZSBcInNob3J0XCI6XG4gICAgICByZXR1cm4gWy4uLmVyYXNTaG9ydF07XG4gICAgY2FzZSBcImxvbmdcIjpcbiAgICAgIHJldHVybiBbLi4uZXJhc0xvbmddO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWVyaWRpZW1Gb3JEYXRlVGltZShkdCkge1xuICByZXR1cm4gbWVyaWRpZW1zW2R0LmhvdXIgPCAxMiA/IDAgOiAxXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdlZWtkYXlGb3JEYXRlVGltZShkdCwgbGVuZ3RoKSB7XG4gIHJldHVybiB3ZWVrZGF5cyhsZW5ndGgpW2R0LndlZWtkYXkgLSAxXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vbnRoRm9yRGF0ZVRpbWUoZHQsIGxlbmd0aCkge1xuICByZXR1cm4gbW9udGhzKGxlbmd0aClbZHQubW9udGggLSAxXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVyYUZvckRhdGVUaW1lKGR0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGVyYXMobGVuZ3RoKVtkdC55ZWFyIDwgMCA/IDAgOiAxXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFJlbGF0aXZlVGltZSh1bml0LCBjb3VudCwgbnVtZXJpYyA9IFwiYWx3YXlzXCIsIG5hcnJvdyA9IGZhbHNlKSB7XG4gIGNvbnN0IHVuaXRzID0ge1xuICAgIHllYXJzOiBbXCJ5ZWFyXCIsIFwieXIuXCJdLFxuICAgIHF1YXJ0ZXJzOiBbXCJxdWFydGVyXCIsIFwicXRyLlwiXSxcbiAgICBtb250aHM6IFtcIm1vbnRoXCIsIFwibW8uXCJdLFxuICAgIHdlZWtzOiBbXCJ3ZWVrXCIsIFwid2suXCJdLFxuICAgIGRheXM6IFtcImRheVwiLCBcImRheVwiLCBcImRheXNcIl0sXG4gICAgaG91cnM6IFtcImhvdXJcIiwgXCJoci5cIl0sXG4gICAgbWludXRlczogW1wibWludXRlXCIsIFwibWluLlwiXSxcbiAgICBzZWNvbmRzOiBbXCJzZWNvbmRcIiwgXCJzZWMuXCJdLFxuICB9O1xuXG4gIGNvbnN0IGxhc3RhYmxlID0gW1wiaG91cnNcIiwgXCJtaW51dGVzXCIsIFwic2Vjb25kc1wiXS5pbmRleE9mKHVuaXQpID09PSAtMTtcblxuICBpZiAobnVtZXJpYyA9PT0gXCJhdXRvXCIgJiYgbGFzdGFibGUpIHtcbiAgICBjb25zdCBpc0RheSA9IHVuaXQgPT09IFwiZGF5c1wiO1xuICAgIHN3aXRjaCAoY291bnQpIHtcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgcmV0dXJuIGlzRGF5ID8gXCJ0b21vcnJvd1wiIDogYG5leHQgJHt1bml0c1t1bml0XVswXX1gO1xuICAgICAgY2FzZSAtMTpcbiAgICAgICAgcmV0dXJuIGlzRGF5ID8gXCJ5ZXN0ZXJkYXlcIiA6IGBsYXN0ICR7dW5pdHNbdW5pdF1bMF19YDtcbiAgICAgIGNhc2UgMDpcbiAgICAgICAgcmV0dXJuIGlzRGF5ID8gXCJ0b2RheVwiIDogYHRoaXMgJHt1bml0c1t1bml0XVswXX1gO1xuICAgICAgZGVmYXVsdDogLy8gZmFsbCB0aHJvdWdoXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaXNJblBhc3QgPSBPYmplY3QuaXMoY291bnQsIC0wKSB8fCBjb3VudCA8IDAsXG4gICAgZm10VmFsdWUgPSBNYXRoLmFicyhjb3VudCksXG4gICAgc2luZ3VsYXIgPSBmbXRWYWx1ZSA9PT0gMSxcbiAgICBsaWxVbml0cyA9IHVuaXRzW3VuaXRdLFxuICAgIGZtdFVuaXQgPSBuYXJyb3dcbiAgICAgID8gc2luZ3VsYXJcbiAgICAgICAgPyBsaWxVbml0c1sxXVxuICAgICAgICA6IGxpbFVuaXRzWzJdIHx8IGxpbFVuaXRzWzFdXG4gICAgICA6IHNpbmd1bGFyXG4gICAgICA/IHVuaXRzW3VuaXRdWzBdXG4gICAgICA6IHVuaXQ7XG4gIHJldHVybiBpc0luUGFzdCA/IGAke2ZtdFZhbHVlfSAke2ZtdFVuaXR9IGFnb2AgOiBgaW4gJHtmbXRWYWx1ZX0gJHtmbXRVbml0fWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTdHJpbmcoa25vd25Gb3JtYXQpIHtcbiAgLy8gdGhlc2UgYWxsIGhhdmUgdGhlIG9mZnNldHMgcmVtb3ZlZCBiZWNhdXNlIHdlIGRvbid0IGhhdmUgYWNjZXNzIHRvIHRoZW1cbiAgLy8gd2l0aG91dCBhbGwgdGhlIGludGwgc3R1ZmYgdGhpcyBpcyBiYWNrZmlsbGluZ1xuICBjb25zdCBmaWx0ZXJlZCA9IHBpY2soa25vd25Gb3JtYXQsIFtcbiAgICAgIFwid2Vla2RheVwiLFxuICAgICAgXCJlcmFcIixcbiAgICAgIFwieWVhclwiLFxuICAgICAgXCJtb250aFwiLFxuICAgICAgXCJkYXlcIixcbiAgICAgIFwiaG91clwiLFxuICAgICAgXCJtaW51dGVcIixcbiAgICAgIFwic2Vjb25kXCIsXG4gICAgICBcInRpbWVab25lTmFtZVwiLFxuICAgICAgXCJob3VyQ3ljbGVcIixcbiAgICBdKSxcbiAgICBrZXkgPSBzdHJpbmdpZnkoZmlsdGVyZWQpLFxuICAgIGRhdGVUaW1lSHVnZSA9IFwiRUVFRSwgTExMTCBkLCB5eXl5LCBoOm1tIGFcIjtcbiAgc3dpdGNoIChrZXkpIHtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVfU0hPUlQpOlxuICAgICAgcmV0dXJuIFwiTS9kL3l5eXlcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVfTUVEKTpcbiAgICAgIHJldHVybiBcIkxMTCBkLCB5eXl5XCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFX01FRF9XSVRIX1dFRUtEQVkpOlxuICAgICAgcmV0dXJuIFwiRUVFLCBMTEwgZCwgeXl5eVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURV9GVUxMKTpcbiAgICAgIHJldHVybiBcIkxMTEwgZCwgeXl5eVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURV9IVUdFKTpcbiAgICAgIHJldHVybiBcIkVFRUUsIExMTEwgZCwgeXl5eVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuVElNRV9TSU1QTEUpOlxuICAgICAgcmV0dXJuIFwiaDptbSBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5USU1FX1dJVEhfU0VDT05EUyk6XG4gICAgICByZXR1cm4gXCJoOm1tOnNzIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLlRJTUVfV0lUSF9TSE9SVF9PRkZTRVQpOlxuICAgICAgcmV0dXJuIFwiaDptbSBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5USU1FX1dJVEhfTE9OR19PRkZTRVQpOlxuICAgICAgcmV0dXJuIFwiaDptbSBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5USU1FXzI0X1NJTVBMRSk6XG4gICAgICByZXR1cm4gXCJISDptbVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuVElNRV8yNF9XSVRIX1NFQ09ORFMpOlxuICAgICAgcmV0dXJuIFwiSEg6bW06c3NcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLlRJTUVfMjRfV0lUSF9TSE9SVF9PRkZTRVQpOlxuICAgICAgcmV0dXJuIFwiSEg6bW1cIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLlRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCk6XG4gICAgICByZXR1cm4gXCJISDptbVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfU0hPUlQpOlxuICAgICAgcmV0dXJuIFwiTS9kL3l5eXksIGg6bW0gYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfTUVEKTpcbiAgICAgIHJldHVybiBcIkxMTCBkLCB5eXl5LCBoOm1tIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX0ZVTEwpOlxuICAgICAgcmV0dXJuIFwiTExMTCBkLCB5eXl5LCBoOm1tIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX0hVR0UpOlxuICAgICAgcmV0dXJuIGRhdGVUaW1lSHVnZTtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUyk6XG4gICAgICByZXR1cm4gXCJNL2QveXl5eSwgaDptbTpzcyBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFVElNRV9NRURfV0lUSF9TRUNPTkRTKTpcbiAgICAgIHJldHVybiBcIkxMTCBkLCB5eXl5LCBoOm1tOnNzIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVkpOlxuICAgICAgcmV0dXJuIFwiRUVFLCBkIExMTCB5eXl5LCBoOm1tIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTKTpcbiAgICAgIHJldHVybiBcIkxMTEwgZCwgeXl5eSwgaDptbTpzcyBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUyk6XG4gICAgICByZXR1cm4gXCJFRUVFLCBMTExMIGQsIHl5eXksIGg6bW06c3MgYVwiO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZGF0ZVRpbWVIdWdlO1xuICB9XG59XG4iLCAiaW1wb3J0ICogYXMgRW5nbGlzaCBmcm9tIFwiLi9lbmdsaXNoLmpzXCI7XG5pbXBvcnQgKiBhcyBGb3JtYXRzIGZyb20gXCIuL2Zvcm1hdHMuanNcIjtcbmltcG9ydCB7IHBhZFN0YXJ0IH0gZnJvbSBcIi4vdXRpbC5qc1wiO1xuXG5mdW5jdGlvbiBzdHJpbmdpZnlUb2tlbnMoc3BsaXRzLCB0b2tlblRvU3RyaW5nKSB7XG4gIGxldCBzID0gXCJcIjtcbiAgZm9yIChjb25zdCB0b2tlbiBvZiBzcGxpdHMpIHtcbiAgICBpZiAodG9rZW4ubGl0ZXJhbCkge1xuICAgICAgcyArPSB0b2tlbi52YWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMgKz0gdG9rZW5Ub1N0cmluZyh0b2tlbi52YWwpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcztcbn1cblxuY29uc3QgbWFjcm9Ub2tlblRvRm9ybWF0T3B0cyA9IHtcbiAgRDogRm9ybWF0cy5EQVRFX1NIT1JULFxuICBERDogRm9ybWF0cy5EQVRFX01FRCxcbiAgREREOiBGb3JtYXRzLkRBVEVfRlVMTCxcbiAgRERERDogRm9ybWF0cy5EQVRFX0hVR0UsXG4gIHQ6IEZvcm1hdHMuVElNRV9TSU1QTEUsXG4gIHR0OiBGb3JtYXRzLlRJTUVfV0lUSF9TRUNPTkRTLFxuICB0dHQ6IEZvcm1hdHMuVElNRV9XSVRIX1NIT1JUX09GRlNFVCxcbiAgdHR0dDogRm9ybWF0cy5USU1FX1dJVEhfTE9OR19PRkZTRVQsXG4gIFQ6IEZvcm1hdHMuVElNRV8yNF9TSU1QTEUsXG4gIFRUOiBGb3JtYXRzLlRJTUVfMjRfV0lUSF9TRUNPTkRTLFxuICBUVFQ6IEZvcm1hdHMuVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCxcbiAgVFRUVDogRm9ybWF0cy5USU1FXzI0X1dJVEhfTE9OR19PRkZTRVQsXG4gIGY6IEZvcm1hdHMuREFURVRJTUVfU0hPUlQsXG4gIGZmOiBGb3JtYXRzLkRBVEVUSU1FX01FRCxcbiAgZmZmOiBGb3JtYXRzLkRBVEVUSU1FX0ZVTEwsXG4gIGZmZmY6IEZvcm1hdHMuREFURVRJTUVfSFVHRSxcbiAgRjogRm9ybWF0cy5EQVRFVElNRV9TSE9SVF9XSVRIX1NFQ09ORFMsXG4gIEZGOiBGb3JtYXRzLkRBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFMsXG4gIEZGRjogRm9ybWF0cy5EQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUyxcbiAgRkZGRjogRm9ybWF0cy5EQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUyxcbn07XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGb3JtYXR0ZXIge1xuICBzdGF0aWMgY3JlYXRlKGxvY2FsZSwgb3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIG5ldyBGb3JtYXR0ZXIobG9jYWxlLCBvcHRzKTtcbiAgfVxuXG4gIHN0YXRpYyBwYXJzZUZvcm1hdChmbXQpIHtcbiAgICBsZXQgY3VycmVudCA9IG51bGwsXG4gICAgICBjdXJyZW50RnVsbCA9IFwiXCIsXG4gICAgICBicmFja2V0ZWQgPSBmYWxzZTtcbiAgICBjb25zdCBzcGxpdHMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZtdC5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgYyA9IGZtdC5jaGFyQXQoaSk7XG4gICAgICBpZiAoYyA9PT0gXCInXCIpIHtcbiAgICAgICAgaWYgKGN1cnJlbnRGdWxsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBzcGxpdHMucHVzaCh7IGxpdGVyYWw6IGJyYWNrZXRlZCwgdmFsOiBjdXJyZW50RnVsbCB9KTtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50ID0gbnVsbDtcbiAgICAgICAgY3VycmVudEZ1bGwgPSBcIlwiO1xuICAgICAgICBicmFja2V0ZWQgPSAhYnJhY2tldGVkO1xuICAgICAgfSBlbHNlIGlmIChicmFja2V0ZWQpIHtcbiAgICAgICAgY3VycmVudEZ1bGwgKz0gYztcbiAgICAgIH0gZWxzZSBpZiAoYyA9PT0gY3VycmVudCkge1xuICAgICAgICBjdXJyZW50RnVsbCArPSBjO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGN1cnJlbnRGdWxsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBzcGxpdHMucHVzaCh7IGxpdGVyYWw6IGZhbHNlLCB2YWw6IGN1cnJlbnRGdWxsIH0pO1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnRGdWxsID0gYztcbiAgICAgICAgY3VycmVudCA9IGM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRGdWxsLmxlbmd0aCA+IDApIHtcbiAgICAgIHNwbGl0cy5wdXNoKHsgbGl0ZXJhbDogYnJhY2tldGVkLCB2YWw6IGN1cnJlbnRGdWxsIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzcGxpdHM7XG4gIH1cblxuICBzdGF0aWMgbWFjcm9Ub2tlblRvRm9ybWF0T3B0cyh0b2tlbikge1xuICAgIHJldHVybiBtYWNyb1Rva2VuVG9Gb3JtYXRPcHRzW3Rva2VuXTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGxvY2FsZSwgZm9ybWF0T3B0cykge1xuICAgIHRoaXMub3B0cyA9IGZvcm1hdE9wdHM7XG4gICAgdGhpcy5sb2MgPSBsb2NhbGU7XG4gICAgdGhpcy5zeXN0ZW1Mb2MgPSBudWxsO1xuICB9XG5cbiAgZm9ybWF0V2l0aFN5c3RlbURlZmF1bHQoZHQsIG9wdHMpIHtcbiAgICBpZiAodGhpcy5zeXN0ZW1Mb2MgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuc3lzdGVtTG9jID0gdGhpcy5sb2MucmVkZWZhdWx0VG9TeXN0ZW0oKTtcbiAgICB9XG4gICAgY29uc3QgZGYgPSB0aGlzLnN5c3RlbUxvYy5kdEZvcm1hdHRlcihkdCwgeyAuLi50aGlzLm9wdHMsIC4uLm9wdHMgfSk7XG4gICAgcmV0dXJuIGRmLmZvcm1hdCgpO1xuICB9XG5cbiAgZm9ybWF0RGF0ZVRpbWUoZHQsIG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IGRmID0gdGhpcy5sb2MuZHRGb3JtYXR0ZXIoZHQsIHsgLi4udGhpcy5vcHRzLCAuLi5vcHRzIH0pO1xuICAgIHJldHVybiBkZi5mb3JtYXQoKTtcbiAgfVxuXG4gIGZvcm1hdERhdGVUaW1lUGFydHMoZHQsIG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IGRmID0gdGhpcy5sb2MuZHRGb3JtYXR0ZXIoZHQsIHsgLi4udGhpcy5vcHRzLCAuLi5vcHRzIH0pO1xuICAgIHJldHVybiBkZi5mb3JtYXRUb1BhcnRzKCk7XG4gIH1cblxuICByZXNvbHZlZE9wdGlvbnMoZHQsIG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IGRmID0gdGhpcy5sb2MuZHRGb3JtYXR0ZXIoZHQsIHsgLi4udGhpcy5vcHRzLCAuLi5vcHRzIH0pO1xuICAgIHJldHVybiBkZi5yZXNvbHZlZE9wdGlvbnMoKTtcbiAgfVxuXG4gIG51bShuLCBwID0gMCkge1xuICAgIC8vIHdlIGdldCBzb21lIHBlcmYgb3V0IG9mIGRvaW5nIHRoaXMgaGVyZSwgYW5ub3lpbmdseVxuICAgIGlmICh0aGlzLm9wdHMuZm9yY2VTaW1wbGUpIHtcbiAgICAgIHJldHVybiBwYWRTdGFydChuLCBwKTtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRzID0geyAuLi50aGlzLm9wdHMgfTtcblxuICAgIGlmIChwID4gMCkge1xuICAgICAgb3B0cy5wYWRUbyA9IHA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubG9jLm51bWJlckZvcm1hdHRlcihvcHRzKS5mb3JtYXQobik7XG4gIH1cblxuICBmb3JtYXREYXRlVGltZUZyb21TdHJpbmcoZHQsIGZtdCkge1xuICAgIGNvbnN0IGtub3duRW5nbGlzaCA9IHRoaXMubG9jLmxpc3RpbmdNb2RlKCkgPT09IFwiZW5cIixcbiAgICAgIHVzZURhdGVUaW1lRm9ybWF0dGVyID0gdGhpcy5sb2Mub3V0cHV0Q2FsZW5kYXIgJiYgdGhpcy5sb2Mub3V0cHV0Q2FsZW5kYXIgIT09IFwiZ3JlZ29yeVwiLFxuICAgICAgc3RyaW5nID0gKG9wdHMsIGV4dHJhY3QpID0+IHRoaXMubG9jLmV4dHJhY3QoZHQsIG9wdHMsIGV4dHJhY3QpLFxuICAgICAgZm9ybWF0T2Zmc2V0ID0gKG9wdHMpID0+IHtcbiAgICAgICAgaWYgKGR0LmlzT2Zmc2V0Rml4ZWQgJiYgZHQub2Zmc2V0ID09PSAwICYmIG9wdHMuYWxsb3daKSB7XG4gICAgICAgICAgcmV0dXJuIFwiWlwiO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGR0LmlzVmFsaWQgPyBkdC56b25lLmZvcm1hdE9mZnNldChkdC50cywgb3B0cy5mb3JtYXQpIDogXCJcIjtcbiAgICAgIH0sXG4gICAgICBtZXJpZGllbSA9ICgpID0+XG4gICAgICAgIGtub3duRW5nbGlzaFxuICAgICAgICAgID8gRW5nbGlzaC5tZXJpZGllbUZvckRhdGVUaW1lKGR0KVxuICAgICAgICAgIDogc3RyaW5nKHsgaG91cjogXCJudW1lcmljXCIsIGhvdXJDeWNsZTogXCJoMTJcIiB9LCBcImRheXBlcmlvZFwiKSxcbiAgICAgIG1vbnRoID0gKGxlbmd0aCwgc3RhbmRhbG9uZSkgPT5cbiAgICAgICAga25vd25FbmdsaXNoXG4gICAgICAgICAgPyBFbmdsaXNoLm1vbnRoRm9yRGF0ZVRpbWUoZHQsIGxlbmd0aClcbiAgICAgICAgICA6IHN0cmluZyhzdGFuZGFsb25lID8geyBtb250aDogbGVuZ3RoIH0gOiB7IG1vbnRoOiBsZW5ndGgsIGRheTogXCJudW1lcmljXCIgfSwgXCJtb250aFwiKSxcbiAgICAgIHdlZWtkYXkgPSAobGVuZ3RoLCBzdGFuZGFsb25lKSA9PlxuICAgICAgICBrbm93bkVuZ2xpc2hcbiAgICAgICAgICA/IEVuZ2xpc2gud2Vla2RheUZvckRhdGVUaW1lKGR0LCBsZW5ndGgpXG4gICAgICAgICAgOiBzdHJpbmcoXG4gICAgICAgICAgICAgIHN0YW5kYWxvbmUgPyB7IHdlZWtkYXk6IGxlbmd0aCB9IDogeyB3ZWVrZGF5OiBsZW5ndGgsIG1vbnRoOiBcImxvbmdcIiwgZGF5OiBcIm51bWVyaWNcIiB9LFxuICAgICAgICAgICAgICBcIndlZWtkYXlcIlxuICAgICAgICAgICAgKSxcbiAgICAgIG1heWJlTWFjcm8gPSAodG9rZW4pID0+IHtcbiAgICAgICAgY29uc3QgZm9ybWF0T3B0cyA9IEZvcm1hdHRlci5tYWNyb1Rva2VuVG9Gb3JtYXRPcHRzKHRva2VuKTtcbiAgICAgICAgaWYgKGZvcm1hdE9wdHMpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRXaXRoU3lzdGVtRGVmYXVsdChkdCwgZm9ybWF0T3B0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJhID0gKGxlbmd0aCkgPT5cbiAgICAgICAga25vd25FbmdsaXNoID8gRW5nbGlzaC5lcmFGb3JEYXRlVGltZShkdCwgbGVuZ3RoKSA6IHN0cmluZyh7IGVyYTogbGVuZ3RoIH0sIFwiZXJhXCIpLFxuICAgICAgdG9rZW5Ub1N0cmluZyA9ICh0b2tlbikgPT4ge1xuICAgICAgICAvLyBXaGVyZSBwb3NzaWJsZTogaHR0cDovL2NsZHIudW5pY29kZS5vcmcvdHJhbnNsYXRpb24vZGF0ZS10aW1lLTEvZGF0ZS10aW1lI1RPQy1TdGFuZGFsb25lLXZzLi1Gb3JtYXQtU3R5bGVzXG4gICAgICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgICAgICAvLyBtc1xuICAgICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQubWlsbGlzZWNvbmQpO1xuICAgICAgICAgIGNhc2UgXCJ1XCI6XG4gICAgICAgICAgLy8gZmFsbHMgdGhyb3VnaFxuICAgICAgICAgIGNhc2UgXCJTU1NcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5taWxsaXNlY29uZCwgMyk7XG4gICAgICAgICAgLy8gc2Vjb25kc1xuICAgICAgICAgIGNhc2UgXCJzXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuc2Vjb25kKTtcbiAgICAgICAgICBjYXNlIFwic3NcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5zZWNvbmQsIDIpO1xuICAgICAgICAgIC8vIGZyYWN0aW9uYWwgc2Vjb25kc1xuICAgICAgICAgIGNhc2UgXCJ1dVwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKE1hdGguZmxvb3IoZHQubWlsbGlzZWNvbmQgLyAxMCksIDIpO1xuICAgICAgICAgIGNhc2UgXCJ1dXVcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShNYXRoLmZsb29yKGR0Lm1pbGxpc2Vjb25kIC8gMTAwKSk7XG4gICAgICAgICAgLy8gbWludXRlc1xuICAgICAgICAgIGNhc2UgXCJtXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQubWludXRlKTtcbiAgICAgICAgICBjYXNlIFwibW1cIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5taW51dGUsIDIpO1xuICAgICAgICAgIC8vIGhvdXJzXG4gICAgICAgICAgY2FzZSBcImhcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5ob3VyICUgMTIgPT09IDAgPyAxMiA6IGR0LmhvdXIgJSAxMik7XG4gICAgICAgICAgY2FzZSBcImhoXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuaG91ciAlIDEyID09PSAwID8gMTIgOiBkdC5ob3VyICUgMTIsIDIpO1xuICAgICAgICAgIGNhc2UgXCJIXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuaG91cik7XG4gICAgICAgICAgY2FzZSBcIkhIXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuaG91ciwgMik7XG4gICAgICAgICAgLy8gb2Zmc2V0XG4gICAgICAgICAgY2FzZSBcIlpcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgKzZcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRPZmZzZXQoeyBmb3JtYXQ6IFwibmFycm93XCIsIGFsbG93WjogdGhpcy5vcHRzLmFsbG93WiB9KTtcbiAgICAgICAgICBjYXNlIFwiWlpcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgKzA2OjAwXG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHsgZm9ybWF0OiBcInNob3J0XCIsIGFsbG93WjogdGhpcy5vcHRzLmFsbG93WiB9KTtcbiAgICAgICAgICBjYXNlIFwiWlpaXCI6XG4gICAgICAgICAgICAvLyBsaWtlICswNjAwXG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHsgZm9ybWF0OiBcInRlY2hpZVwiLCBhbGxvd1o6IHRoaXMub3B0cy5hbGxvd1ogfSk7XG4gICAgICAgICAgY2FzZSBcIlpaWlpcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgRVNUXG4gICAgICAgICAgICByZXR1cm4gZHQuem9uZS5vZmZzZXROYW1lKGR0LnRzLCB7IGZvcm1hdDogXCJzaG9ydFwiLCBsb2NhbGU6IHRoaXMubG9jLmxvY2FsZSB9KTtcbiAgICAgICAgICBjYXNlIFwiWlpaWlpcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgRWFzdGVybiBTdGFuZGFyZCBUaW1lXG4gICAgICAgICAgICByZXR1cm4gZHQuem9uZS5vZmZzZXROYW1lKGR0LnRzLCB7IGZvcm1hdDogXCJsb25nXCIsIGxvY2FsZTogdGhpcy5sb2MubG9jYWxlIH0pO1xuICAgICAgICAgIC8vIHpvbmVcbiAgICAgICAgICBjYXNlIFwielwiOlxuICAgICAgICAgICAgLy8gbGlrZSBBbWVyaWNhL05ld19Zb3JrXG4gICAgICAgICAgICByZXR1cm4gZHQuem9uZU5hbWU7XG4gICAgICAgICAgLy8gbWVyaWRpZW1zXG4gICAgICAgICAgY2FzZSBcImFcIjpcbiAgICAgICAgICAgIHJldHVybiBtZXJpZGllbSgpO1xuICAgICAgICAgIC8vIGRhdGVzXG4gICAgICAgICAgY2FzZSBcImRcIjpcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlciA/IHN0cmluZyh7IGRheTogXCJudW1lcmljXCIgfSwgXCJkYXlcIikgOiB0aGlzLm51bShkdC5kYXkpO1xuICAgICAgICAgIGNhc2UgXCJkZFwiOlxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyID8gc3RyaW5nKHsgZGF5OiBcIjItZGlnaXRcIiB9LCBcImRheVwiKSA6IHRoaXMubnVtKGR0LmRheSwgMik7XG4gICAgICAgICAgLy8gd2Vla2RheXMgLSBzdGFuZGFsb25lXG4gICAgICAgICAgY2FzZSBcImNcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtkYXkpO1xuICAgICAgICAgIGNhc2UgXCJjY2NcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgJ1R1ZXMnXG4gICAgICAgICAgICByZXR1cm4gd2Vla2RheShcInNob3J0XCIsIHRydWUpO1xuICAgICAgICAgIGNhc2UgXCJjY2NjXCI6XG4gICAgICAgICAgICAvLyBsaWtlICdUdWVzZGF5J1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoXCJsb25nXCIsIHRydWUpO1xuICAgICAgICAgIGNhc2UgXCJjY2NjY1wiOlxuICAgICAgICAgICAgLy8gbGlrZSAnVCdcbiAgICAgICAgICAgIHJldHVybiB3ZWVrZGF5KFwibmFycm93XCIsIHRydWUpO1xuICAgICAgICAgIC8vIHdlZWtkYXlzIC0gZm9ybWF0XG4gICAgICAgICAgY2FzZSBcIkVcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtkYXkpO1xuICAgICAgICAgIGNhc2UgXCJFRUVcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgJ1R1ZXMnXG4gICAgICAgICAgICByZXR1cm4gd2Vla2RheShcInNob3J0XCIsIGZhbHNlKTtcbiAgICAgICAgICBjYXNlIFwiRUVFRVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAnVHVlc2RheSdcbiAgICAgICAgICAgIHJldHVybiB3ZWVrZGF5KFwibG9uZ1wiLCBmYWxzZSk7XG4gICAgICAgICAgY2FzZSBcIkVFRUVFXCI6XG4gICAgICAgICAgICAvLyBsaWtlICdUJ1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoXCJuYXJyb3dcIiwgZmFsc2UpO1xuICAgICAgICAgIC8vIG1vbnRocyAtIHN0YW5kYWxvbmVcbiAgICAgICAgICBjYXNlIFwiTFwiOlxuICAgICAgICAgICAgLy8gbGlrZSAxXG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXJcbiAgICAgICAgICAgICAgPyBzdHJpbmcoeyBtb250aDogXCJudW1lcmljXCIsIGRheTogXCJudW1lcmljXCIgfSwgXCJtb250aFwiKVxuICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0Lm1vbnRoKTtcbiAgICAgICAgICBjYXNlIFwiTExcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMDEsIGRvZXNuJ3Qgc2VlbSB0byB3b3JrXG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXJcbiAgICAgICAgICAgICAgPyBzdHJpbmcoeyBtb250aDogXCIyLWRpZ2l0XCIsIGRheTogXCJudW1lcmljXCIgfSwgXCJtb250aFwiKVxuICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0Lm1vbnRoLCAyKTtcbiAgICAgICAgICBjYXNlIFwiTExMXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEphblxuICAgICAgICAgICAgcmV0dXJuIG1vbnRoKFwic2hvcnRcIiwgdHJ1ZSk7XG4gICAgICAgICAgY2FzZSBcIkxMTExcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgSmFudWFyeVxuICAgICAgICAgICAgcmV0dXJuIG1vbnRoKFwibG9uZ1wiLCB0cnVlKTtcbiAgICAgICAgICBjYXNlIFwiTExMTExcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgSlxuICAgICAgICAgICAgcmV0dXJuIG1vbnRoKFwibmFycm93XCIsIHRydWUpO1xuICAgICAgICAgIC8vIG1vbnRocyAtIGZvcm1hdFxuICAgICAgICAgIGNhc2UgXCJNXCI6XG4gICAgICAgICAgICAvLyBsaWtlIDFcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlclxuICAgICAgICAgICAgICA/IHN0cmluZyh7IG1vbnRoOiBcIm51bWVyaWNcIiB9LCBcIm1vbnRoXCIpXG4gICAgICAgICAgICAgIDogdGhpcy5udW0oZHQubW9udGgpO1xuICAgICAgICAgIGNhc2UgXCJNTVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAwMVxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyXG4gICAgICAgICAgICAgID8gc3RyaW5nKHsgbW9udGg6IFwiMi1kaWdpdFwiIH0sIFwibW9udGhcIilcbiAgICAgICAgICAgICAgOiB0aGlzLm51bShkdC5tb250aCwgMik7XG4gICAgICAgICAgY2FzZSBcIk1NTVwiOlxuICAgICAgICAgICAgLy8gbGlrZSBKYW5cbiAgICAgICAgICAgIHJldHVybiBtb250aChcInNob3J0XCIsIGZhbHNlKTtcbiAgICAgICAgICBjYXNlIFwiTU1NTVwiOlxuICAgICAgICAgICAgLy8gbGlrZSBKYW51YXJ5XG4gICAgICAgICAgICByZXR1cm4gbW9udGgoXCJsb25nXCIsIGZhbHNlKTtcbiAgICAgICAgICBjYXNlIFwiTU1NTU1cIjpcbiAgICAgICAgICAgIC8vIGxpa2UgSlxuICAgICAgICAgICAgcmV0dXJuIG1vbnRoKFwibmFycm93XCIsIGZhbHNlKTtcbiAgICAgICAgICAvLyB5ZWFyc1xuICAgICAgICAgIGNhc2UgXCJ5XCI6XG4gICAgICAgICAgICAvLyBsaWtlIDIwMTRcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlciA/IHN0cmluZyh7IHllYXI6IFwibnVtZXJpY1wiIH0sIFwieWVhclwiKSA6IHRoaXMubnVtKGR0LnllYXIpO1xuICAgICAgICAgIGNhc2UgXCJ5eVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAxNFxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyXG4gICAgICAgICAgICAgID8gc3RyaW5nKHsgeWVhcjogXCIyLWRpZ2l0XCIgfSwgXCJ5ZWFyXCIpXG4gICAgICAgICAgICAgIDogdGhpcy5udW0oZHQueWVhci50b1N0cmluZygpLnNsaWNlKC0yKSwgMik7XG4gICAgICAgICAgY2FzZSBcInl5eXlcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMDAxMlxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyXG4gICAgICAgICAgICAgID8gc3RyaW5nKHsgeWVhcjogXCJudW1lcmljXCIgfSwgXCJ5ZWFyXCIpXG4gICAgICAgICAgICAgIDogdGhpcy5udW0oZHQueWVhciwgNCk7XG4gICAgICAgICAgY2FzZSBcInl5eXl5eVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAwMDAwMTJcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlclxuICAgICAgICAgICAgICA/IHN0cmluZyh7IHllYXI6IFwibnVtZXJpY1wiIH0sIFwieWVhclwiKVxuICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0LnllYXIsIDYpO1xuICAgICAgICAgIC8vIGVyYXNcbiAgICAgICAgICBjYXNlIFwiR1wiOlxuICAgICAgICAgICAgLy8gbGlrZSBBRFxuICAgICAgICAgICAgcmV0dXJuIGVyYShcInNob3J0XCIpO1xuICAgICAgICAgIGNhc2UgXCJHR1wiOlxuICAgICAgICAgICAgLy8gbGlrZSBBbm5vIERvbWluaVxuICAgICAgICAgICAgcmV0dXJuIGVyYShcImxvbmdcIik7XG4gICAgICAgICAgY2FzZSBcIkdHR0dHXCI6XG4gICAgICAgICAgICByZXR1cm4gZXJhKFwibmFycm93XCIpO1xuICAgICAgICAgIGNhc2UgXCJra1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtZZWFyLnRvU3RyaW5nKCkuc2xpY2UoLTIpLCAyKTtcbiAgICAgICAgICBjYXNlIFwia2tra1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtZZWFyLCA0KTtcbiAgICAgICAgICBjYXNlIFwiV1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtOdW1iZXIpO1xuICAgICAgICAgIGNhc2UgXCJXV1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtOdW1iZXIsIDIpO1xuICAgICAgICAgIGNhc2UgXCJvXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQub3JkaW5hbCk7XG4gICAgICAgICAgY2FzZSBcIm9vb1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0Lm9yZGluYWwsIDMpO1xuICAgICAgICAgIGNhc2UgXCJxXCI6XG4gICAgICAgICAgICAvLyBsaWtlIDFcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5xdWFydGVyKTtcbiAgICAgICAgICBjYXNlIFwicXFcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMDFcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5xdWFydGVyLCAyKTtcbiAgICAgICAgICBjYXNlIFwiWFwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKE1hdGguZmxvb3IoZHQudHMgLyAxMDAwKSk7XG4gICAgICAgICAgY2FzZSBcInhcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC50cyk7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBtYXliZU1hY3JvKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgIHJldHVybiBzdHJpbmdpZnlUb2tlbnMoRm9ybWF0dGVyLnBhcnNlRm9ybWF0KGZtdCksIHRva2VuVG9TdHJpbmcpO1xuICB9XG5cbiAgZm9ybWF0RHVyYXRpb25Gcm9tU3RyaW5nKGR1ciwgZm10KSB7XG4gICAgY29uc3QgdG9rZW5Ub0ZpZWxkID0gKHRva2VuKSA9PiB7XG4gICAgICAgIHN3aXRjaCAodG9rZW5bMF0pIHtcbiAgICAgICAgICBjYXNlIFwiU1wiOlxuICAgICAgICAgICAgcmV0dXJuIFwibWlsbGlzZWNvbmRcIjtcbiAgICAgICAgICBjYXNlIFwic1wiOlxuICAgICAgICAgICAgcmV0dXJuIFwic2Vjb25kXCI7XG4gICAgICAgICAgY2FzZSBcIm1cIjpcbiAgICAgICAgICAgIHJldHVybiBcIm1pbnV0ZVwiO1xuICAgICAgICAgIGNhc2UgXCJoXCI6XG4gICAgICAgICAgICByZXR1cm4gXCJob3VyXCI7XG4gICAgICAgICAgY2FzZSBcImRcIjpcbiAgICAgICAgICAgIHJldHVybiBcImRheVwiO1xuICAgICAgICAgIGNhc2UgXCJNXCI6XG4gICAgICAgICAgICByZXR1cm4gXCJtb250aFwiO1xuICAgICAgICAgIGNhc2UgXCJ5XCI6XG4gICAgICAgICAgICByZXR1cm4gXCJ5ZWFyXCI7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdG9rZW5Ub1N0cmluZyA9IChsaWxkdXIpID0+ICh0b2tlbikgPT4ge1xuICAgICAgICBjb25zdCBtYXBwZWQgPSB0b2tlblRvRmllbGQodG9rZW4pO1xuICAgICAgICBpZiAobWFwcGVkKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGxpbGR1ci5nZXQobWFwcGVkKSwgdG9rZW4ubGVuZ3RoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB0b2tlbnMgPSBGb3JtYXR0ZXIucGFyc2VGb3JtYXQoZm10KSxcbiAgICAgIHJlYWxUb2tlbnMgPSB0b2tlbnMucmVkdWNlKFxuICAgICAgICAoZm91bmQsIHsgbGl0ZXJhbCwgdmFsIH0pID0+IChsaXRlcmFsID8gZm91bmQgOiBmb3VuZC5jb25jYXQodmFsKSksXG4gICAgICAgIFtdXG4gICAgICApLFxuICAgICAgY29sbGFwc2VkID0gZHVyLnNoaWZ0VG8oLi4ucmVhbFRva2Vucy5tYXAodG9rZW5Ub0ZpZWxkKS5maWx0ZXIoKHQpID0+IHQpKTtcbiAgICByZXR1cm4gc3RyaW5naWZ5VG9rZW5zKHRva2VucywgdG9rZW5Ub1N0cmluZyhjb2xsYXBzZWQpKTtcbiAgfVxufVxuIiwgImV4cG9ydCBkZWZhdWx0IGNsYXNzIEludmFsaWQge1xuICBjb25zdHJ1Y3RvcihyZWFzb24sIGV4cGxhbmF0aW9uKSB7XG4gICAgdGhpcy5yZWFzb24gPSByZWFzb247XG4gICAgdGhpcy5leHBsYW5hdGlvbiA9IGV4cGxhbmF0aW9uO1xuICB9XG5cbiAgdG9NZXNzYWdlKCkge1xuICAgIGlmICh0aGlzLmV4cGxhbmF0aW9uKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5yZWFzb259OiAke3RoaXMuZXhwbGFuYXRpb259YDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucmVhc29uO1xuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCB7IFpvbmVJc0Fic3RyYWN0RXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMuanNcIjtcblxuLyoqXG4gKiBAaW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFpvbmUge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2Ygem9uZVxuICAgKiBAYWJzdHJhY3RcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCB0eXBlKCkge1xuICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyB6b25lLlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBuYW1lKCkge1xuICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBvZmZzZXQgaXMga25vd24gdG8gYmUgZml4ZWQgZm9yIHRoZSB3aG9sZSB5ZWFyLlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNVbml2ZXJzYWwoKSB7XG4gICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvZmZzZXQncyBjb21tb24gbmFtZSAoc3VjaCBhcyBFU1QpIGF0IHRoZSBzcGVjaWZpZWQgdGltZXN0YW1wXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcGFyYW0ge251bWJlcn0gdHMgLSBFcG9jaCBtaWxsaXNlY29uZHMgZm9yIHdoaWNoIHRvIGdldCB0aGUgbmFtZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIE9wdGlvbnMgdG8gYWZmZWN0IHRoZSBmb3JtYXRcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMuZm9ybWF0IC0gV2hhdCBzdHlsZSBvZiBvZmZzZXQgdG8gcmV0dXJuLiBBY2NlcHRzICdsb25nJyBvciAnc2hvcnQnLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5sb2NhbGUgLSBXaGF0IGxvY2FsZSB0byByZXR1cm4gdGhlIG9mZnNldCBuYW1lIGluLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICBvZmZzZXROYW1lKHRzLCBvcHRzKSB7XG4gICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvZmZzZXQncyB2YWx1ZSBhcyBhIHN0cmluZ1xuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRzIC0gRXBvY2ggbWlsbGlzZWNvbmRzIGZvciB3aGljaCB0byBnZXQgdGhlIG9mZnNldFxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm9ybWF0IC0gV2hhdCBzdHlsZSBvZiBvZmZzZXQgdG8gcmV0dXJuLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjZXB0cyAnbmFycm93JywgJ3Nob3J0Jywgb3IgJ3RlY2hpZScuIFJldHVybmluZyAnKzYnLCAnKzA2OjAwJywgb3IgJyswNjAwJyByZXNwZWN0aXZlbHlcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgZm9ybWF0T2Zmc2V0KHRzLCBmb3JtYXQpIHtcbiAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgb2Zmc2V0IGluIG1pbnV0ZXMgZm9yIHRoaXMgem9uZSBhdCB0aGUgc3BlY2lmaWVkIHRpbWVzdGFtcC5cbiAgICogQGFic3RyYWN0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0cyAtIEVwb2NoIG1pbGxpc2Vjb25kcyBmb3Igd2hpY2ggdG8gY29tcHV0ZSB0aGUgb2Zmc2V0XG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIG9mZnNldCh0cykge1xuICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBab25lIGlzIGVxdWFsIHRvIGFub3RoZXIgem9uZVxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtab25lfSBvdGhlclpvbmUgLSB0aGUgem9uZSB0byBjb21wYXJlXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBlcXVhbHMob3RoZXJab25lKSB7XG4gICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIFpvbmUgaXMgdmFsaWQuXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc1ZhbGlkKCkge1xuICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBmb3JtYXRPZmZzZXQsIHBhcnNlWm9uZUluZm8gfSBmcm9tIFwiLi4vaW1wbC91dGlsLmpzXCI7XG5pbXBvcnQgWm9uZSBmcm9tIFwiLi4vem9uZS5qc1wiO1xuXG5sZXQgc2luZ2xldG9uID0gbnVsbDtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBsb2NhbCB6b25lIGZvciB0aGlzIEphdmFTY3JpcHQgZW52aXJvbm1lbnQuXG4gKiBAaW1wbGVtZW50cyB7Wm9uZX1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3lzdGVtWm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogR2V0IGEgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoZSBsb2NhbCB6b25lXG4gICAqIEByZXR1cm4ge1N5c3RlbVpvbmV9XG4gICAqL1xuICBzdGF0aWMgZ2V0IGluc3RhbmNlKCkge1xuICAgIGlmIChzaW5nbGV0b24gPT09IG51bGwpIHtcbiAgICAgIHNpbmdsZXRvbiA9IG5ldyBTeXN0ZW1ab25lKCk7XG4gICAgfVxuICAgIHJldHVybiBzaW5nbGV0b247XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gXCJzeXN0ZW1cIjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IGlzVW5pdmVyc2FsKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldE5hbWUodHMsIHsgZm9ybWF0LCBsb2NhbGUgfSkge1xuICAgIHJldHVybiBwYXJzZVpvbmVJbmZvKHRzLCBmb3JtYXQsIGxvY2FsZSk7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBmb3JtYXRPZmZzZXQodHMsIGZvcm1hdCkge1xuICAgIHJldHVybiBmb3JtYXRPZmZzZXQodGhpcy5vZmZzZXQodHMpLCBmb3JtYXQpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgb2Zmc2V0KHRzKSB7XG4gICAgcmV0dXJuIC1uZXcgRGF0ZSh0cykuZ2V0VGltZXpvbmVPZmZzZXQoKTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscyhvdGhlclpvbmUpIHtcbiAgICByZXR1cm4gb3RoZXJab25lLnR5cGUgPT09IFwic3lzdGVtXCI7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwgImltcG9ydCB7IGZvcm1hdE9mZnNldCwgcGFyc2Vab25lSW5mbywgaXNVbmRlZmluZWQsIGlhbmFSZWdleCwgb2JqVG9Mb2NhbFRTIH0gZnJvbSBcIi4uL2ltcGwvdXRpbC5qc1wiO1xuaW1wb3J0IFpvbmUgZnJvbSBcIi4uL3pvbmUuanNcIjtcblxuY29uc3QgbWF0Y2hpbmdSZWdleCA9IFJlZ0V4cChgXiR7aWFuYVJlZ2V4LnNvdXJjZX0kYCk7XG5cbmxldCBkdGZDYWNoZSA9IHt9O1xuZnVuY3Rpb24gbWFrZURURih6b25lKSB7XG4gIGlmICghZHRmQ2FjaGVbem9uZV0pIHtcbiAgICBkdGZDYWNoZVt6b25lXSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFwiZW4tVVNcIiwge1xuICAgICAgaG91cjEyOiBmYWxzZSxcbiAgICAgIHRpbWVab25lOiB6b25lLFxuICAgICAgeWVhcjogXCJudW1lcmljXCIsXG4gICAgICBtb250aDogXCIyLWRpZ2l0XCIsXG4gICAgICBkYXk6IFwiMi1kaWdpdFwiLFxuICAgICAgaG91cjogXCIyLWRpZ2l0XCIsXG4gICAgICBtaW51dGU6IFwiMi1kaWdpdFwiLFxuICAgICAgc2Vjb25kOiBcIjItZGlnaXRcIixcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gZHRmQ2FjaGVbem9uZV07XG59XG5cbmNvbnN0IHR5cGVUb1BvcyA9IHtcbiAgeWVhcjogMCxcbiAgbW9udGg6IDEsXG4gIGRheTogMixcbiAgaG91cjogMyxcbiAgbWludXRlOiA0LFxuICBzZWNvbmQ6IDUsXG59O1xuXG5mdW5jdGlvbiBoYWNreU9mZnNldChkdGYsIGRhdGUpIHtcbiAgY29uc3QgZm9ybWF0dGVkID0gZHRmLmZvcm1hdChkYXRlKS5yZXBsYWNlKC9cXHUyMDBFL2csIFwiXCIpLFxuICAgIHBhcnNlZCA9IC8oXFxkKylcXC8oXFxkKylcXC8oXFxkKyksPyAoXFxkKyk6KFxcZCspOihcXGQrKS8uZXhlYyhmb3JtYXR0ZWQpLFxuICAgIFssIGZNb250aCwgZkRheSwgZlllYXIsIGZIb3VyLCBmTWludXRlLCBmU2Vjb25kXSA9IHBhcnNlZDtcbiAgcmV0dXJuIFtmWWVhciwgZk1vbnRoLCBmRGF5LCBmSG91ciwgZk1pbnV0ZSwgZlNlY29uZF07XG59XG5cbmZ1bmN0aW9uIHBhcnRzT2Zmc2V0KGR0ZiwgZGF0ZSkge1xuICBjb25zdCBmb3JtYXR0ZWQgPSBkdGYuZm9ybWF0VG9QYXJ0cyhkYXRlKSxcbiAgICBmaWxsZWQgPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBmb3JtYXR0ZWQubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCB7IHR5cGUsIHZhbHVlIH0gPSBmb3JtYXR0ZWRbaV0sXG4gICAgICBwb3MgPSB0eXBlVG9Qb3NbdHlwZV07XG5cbiAgICBpZiAoIWlzVW5kZWZpbmVkKHBvcykpIHtcbiAgICAgIGZpbGxlZFtwb3NdID0gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZpbGxlZDtcbn1cblxubGV0IGlhbmFab25lQ2FjaGUgPSB7fTtcbi8qKlxuICogQSB6b25lIGlkZW50aWZpZWQgYnkgYW4gSUFOQSBpZGVudGlmaWVyLCBsaWtlIEFtZXJpY2EvTmV3X1lvcmtcbiAqIEBpbXBsZW1lbnRzIHtab25lfVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJQU5BWm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBab25lIG5hbWVcbiAgICogQHJldHVybiB7SUFOQVpvbmV9XG4gICAqL1xuICBzdGF0aWMgY3JlYXRlKG5hbWUpIHtcbiAgICBpZiAoIWlhbmFab25lQ2FjaGVbbmFtZV0pIHtcbiAgICAgIGlhbmFab25lQ2FjaGVbbmFtZV0gPSBuZXcgSUFOQVpvbmUobmFtZSk7XG4gICAgfVxuICAgIHJldHVybiBpYW5hWm9uZUNhY2hlW25hbWVdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IGxvY2FsIGNhY2hlcy4gU2hvdWxkIG9ubHkgYmUgbmVjZXNzYXJ5IGluIHRlc3Rpbmcgc2NlbmFyaW9zLlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgc3RhdGljIHJlc2V0Q2FjaGUoKSB7XG4gICAgaWFuYVpvbmVDYWNoZSA9IHt9O1xuICAgIGR0ZkNhY2hlID0ge307XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBwcm92aWRlZCBzdHJpbmcgaXMgYSB2YWxpZCBzcGVjaWZpZXIuIFRoaXMgb25seSBjaGVja3MgdGhlIHN0cmluZydzIGZvcm1hdCwgbm90IHRoYXQgdGhlIHNwZWNpZmllciBpZGVudGlmaWVzIGEga25vd24gem9uZTsgc2VlIGlzVmFsaWRab25lIGZvciB0aGF0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcyAtIFRoZSBzdHJpbmcgdG8gY2hlY2sgdmFsaWRpdHkgb25cbiAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFNwZWNpZmllcihcIkFtZXJpY2EvTmV3X1lvcmtcIikgLy89PiB0cnVlXG4gICAqIEBleGFtcGxlIElBTkFab25lLmlzVmFsaWRTcGVjaWZpZXIoXCJGYW50YXNpYS9DYXN0bGVcIikgLy89PiB0cnVlXG4gICAqIEBleGFtcGxlIElBTkFab25lLmlzVmFsaWRTcGVjaWZpZXIoXCJTcG9ydH5+YmxvcnBcIikgLy89PiBmYWxzZVxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgc3RhdGljIGlzVmFsaWRTcGVjaWZpZXIocykge1xuICAgIHJldHVybiAhIShzICYmIHMubWF0Y2gobWF0Y2hpbmdSZWdleCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgcHJvdmlkZWQgc3RyaW5nIGlkZW50aWZpZXMgYSByZWFsIHpvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHpvbmUgLSBUaGUgc3RyaW5nIHRvIGNoZWNrXG4gICAqIEBleGFtcGxlIElBTkFab25lLmlzVmFsaWRab25lKFwiQW1lcmljYS9OZXdfWW9ya1wiKSAvLz0+IHRydWVcbiAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFpvbmUoXCJGYW50YXNpYS9DYXN0bGVcIikgLy89PiBmYWxzZVxuICAgKiBAZXhhbXBsZSBJQU5BWm9uZS5pc1ZhbGlkWm9uZShcIlNwb3J0fn5ibG9ycFwiKSAvLz0+IGZhbHNlXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZFpvbmUoem9uZSkge1xuICAgIGlmICghem9uZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJlbi1VU1wiLCB7IHRpbWVab25lOiB6b25lIH0pLmZvcm1hdCgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKG5hbWUpIHtcbiAgICBzdXBlcigpO1xuICAgIC8qKiBAcHJpdmF0ZSAqKi9cbiAgICB0aGlzLnpvbmVOYW1lID0gbmFtZTtcbiAgICAvKiogQHByaXZhdGUgKiovXG4gICAgdGhpcy52YWxpZCA9IElBTkFab25lLmlzVmFsaWRab25lKG5hbWUpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuIFwiaWFuYVwiO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuem9uZU5hbWU7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNVbml2ZXJzYWwoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgb2Zmc2V0TmFtZSh0cywgeyBmb3JtYXQsIGxvY2FsZSB9KSB7XG4gICAgcmV0dXJuIHBhcnNlWm9uZUluZm8odHMsIGZvcm1hdCwgbG9jYWxlLCB0aGlzLm5hbWUpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZm9ybWF0T2Zmc2V0KHRzLCBmb3JtYXQpIHtcbiAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHRoaXMub2Zmc2V0KHRzKSwgZm9ybWF0KTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldCh0cykge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0cyk7XG5cbiAgICBpZiAoaXNOYU4oZGF0ZSkpIHJldHVybiBOYU47XG5cbiAgICBjb25zdCBkdGYgPSBtYWtlRFRGKHRoaXMubmFtZSksXG4gICAgICBbeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmRdID0gZHRmLmZvcm1hdFRvUGFydHNcbiAgICAgICAgPyBwYXJ0c09mZnNldChkdGYsIGRhdGUpXG4gICAgICAgIDogaGFja3lPZmZzZXQoZHRmLCBkYXRlKTtcblxuICAgIC8vIGJlY2F1c2Ugd2UncmUgdXNpbmcgaG91cjEyIGFuZCBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0xMDI1NTY0JmNhbj0yJnE9JTIyMjQlM0EwMCUyMiUyMGRhdGV0aW1lZm9ybWF0XG4gICAgY29uc3QgYWRqdXN0ZWRIb3VyID0gaG91ciA9PT0gMjQgPyAwIDogaG91cjtcblxuICAgIGNvbnN0IGFzVVRDID0gb2JqVG9Mb2NhbFRTKHtcbiAgICAgIHllYXIsXG4gICAgICBtb250aCxcbiAgICAgIGRheSxcbiAgICAgIGhvdXI6IGFkanVzdGVkSG91cixcbiAgICAgIG1pbnV0ZSxcbiAgICAgIHNlY29uZCxcbiAgICAgIG1pbGxpc2Vjb25kOiAwLFxuICAgIH0pO1xuXG4gICAgbGV0IGFzVFMgPSArZGF0ZTtcbiAgICBjb25zdCBvdmVyID0gYXNUUyAlIDEwMDA7XG4gICAgYXNUUyAtPSBvdmVyID49IDAgPyBvdmVyIDogMTAwMCArIG92ZXI7XG4gICAgcmV0dXJuIChhc1VUQyAtIGFzVFMpIC8gKDYwICogMTAwMCk7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBlcXVhbHMob3RoZXJab25lKSB7XG4gICAgcmV0dXJuIG90aGVyWm9uZS50eXBlID09PSBcImlhbmFcIiAmJiBvdGhlclpvbmUubmFtZSA9PT0gdGhpcy5uYW1lO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IGlzVmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWQ7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBmb3JtYXRPZmZzZXQsIHNpZ25lZE9mZnNldCB9IGZyb20gXCIuLi9pbXBsL3V0aWwuanNcIjtcbmltcG9ydCBab25lIGZyb20gXCIuLi96b25lLmpzXCI7XG5cbmxldCBzaW5nbGV0b24gPSBudWxsO1xuXG4vKipcbiAqIEEgem9uZSB3aXRoIGEgZml4ZWQgb2Zmc2V0IChtZWFuaW5nIG5vIERTVClcbiAqIEBpbXBsZW1lbnRzIHtab25lfVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaXhlZE9mZnNldFpvbmUgZXh0ZW5kcyBab25lIHtcbiAgLyoqXG4gICAqIEdldCBhIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiBVVENcbiAgICogQHJldHVybiB7Rml4ZWRPZmZzZXRab25lfVxuICAgKi9cbiAgc3RhdGljIGdldCB1dGNJbnN0YW5jZSgpIHtcbiAgICBpZiAoc2luZ2xldG9uID09PSBudWxsKSB7XG4gICAgICBzaW5nbGV0b24gPSBuZXcgRml4ZWRPZmZzZXRab25lKDApO1xuICAgIH1cbiAgICByZXR1cm4gc2luZ2xldG9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBpbnN0YW5jZSB3aXRoIGEgc3BlY2lmaWVkIG9mZnNldFxuICAgKiBAcGFyYW0ge251bWJlcn0gb2Zmc2V0IC0gVGhlIG9mZnNldCBpbiBtaW51dGVzXG4gICAqIEByZXR1cm4ge0ZpeGVkT2Zmc2V0Wm9uZX1cbiAgICovXG4gIHN0YXRpYyBpbnN0YW5jZShvZmZzZXQpIHtcbiAgICByZXR1cm4gb2Zmc2V0ID09PSAwID8gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlIDogbmV3IEZpeGVkT2Zmc2V0Wm9uZShvZmZzZXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBpbnN0YW5jZSBvZiBGaXhlZE9mZnNldFpvbmUgZnJvbSBhIFVUQyBvZmZzZXQgc3RyaW5nLCBsaWtlIFwiVVRDKzZcIlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcyAtIFRoZSBvZmZzZXQgc3RyaW5nIHRvIHBhcnNlXG4gICAqIEBleGFtcGxlIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcihcIlVUQys2XCIpXG4gICAqIEBleGFtcGxlIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcihcIlVUQyswNlwiKVxuICAgKiBAZXhhbXBsZSBGaXhlZE9mZnNldFpvbmUucGFyc2VTcGVjaWZpZXIoXCJVVEMtNjowMFwiKVxuICAgKiBAcmV0dXJuIHtGaXhlZE9mZnNldFpvbmV9XG4gICAqL1xuICBzdGF0aWMgcGFyc2VTcGVjaWZpZXIocykge1xuICAgIGlmIChzKSB7XG4gICAgICBjb25zdCByID0gcy5tYXRjaCgvXnV0Yyg/OihbKy1dXFxkezEsMn0pKD86OihcXGR7Mn0pKT8pPyQvaSk7XG4gICAgICBpZiAocikge1xuICAgICAgICByZXR1cm4gbmV3IEZpeGVkT2Zmc2V0Wm9uZShzaWduZWRPZmZzZXQoclsxXSwgclsyXSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKG9mZnNldCkge1xuICAgIHN1cGVyKCk7XG4gICAgLyoqIEBwcml2YXRlICoqL1xuICAgIHRoaXMuZml4ZWQgPSBvZmZzZXQ7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gXCJmaXhlZFwiO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZml4ZWQgPT09IDAgPyBcIlVUQ1wiIDogYFVUQyR7Zm9ybWF0T2Zmc2V0KHRoaXMuZml4ZWQsIFwibmFycm93XCIpfWA7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBvZmZzZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBmb3JtYXRPZmZzZXQodHMsIGZvcm1hdCkge1xuICAgIHJldHVybiBmb3JtYXRPZmZzZXQodGhpcy5maXhlZCwgZm9ybWF0KTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBpc1VuaXZlcnNhbCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldCgpIHtcbiAgICByZXR1cm4gdGhpcy5maXhlZDtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscyhvdGhlclpvbmUpIHtcbiAgICByZXR1cm4gb3RoZXJab25lLnR5cGUgPT09IFwiZml4ZWRcIiAmJiBvdGhlclpvbmUuZml4ZWQgPT09IHRoaXMuZml4ZWQ7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwgImltcG9ydCBab25lIGZyb20gXCIuLi96b25lLmpzXCI7XG5cbi8qKlxuICogQSB6b25lIHRoYXQgZmFpbGVkIHRvIHBhcnNlLiBZb3Ugc2hvdWxkIG5ldmVyIG5lZWQgdG8gaW5zdGFudGlhdGUgdGhpcy5cbiAqIEBpbXBsZW1lbnRzIHtab25lfVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbnZhbGlkWm9uZSBleHRlbmRzIFpvbmUge1xuICBjb25zdHJ1Y3Rvcih6b25lTmFtZSkge1xuICAgIHN1cGVyKCk7XG4gICAgLyoqICBAcHJpdmF0ZSAqL1xuICAgIHRoaXMuem9uZU5hbWUgPSB6b25lTmFtZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiBcImludmFsaWRcIjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnpvbmVOYW1lO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IGlzVW5pdmVyc2FsKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldE5hbWUoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBmb3JtYXRPZmZzZXQoKSB7XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBvZmZzZXQoKSB7XG4gICAgcmV0dXJuIE5hTjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscygpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsICIvKipcbiAqIEBwcml2YXRlXG4gKi9cblxuaW1wb3J0IFpvbmUgZnJvbSBcIi4uL3pvbmUuanNcIjtcbmltcG9ydCBJQU5BWm9uZSBmcm9tIFwiLi4vem9uZXMvSUFOQVpvbmUuanNcIjtcbmltcG9ydCBGaXhlZE9mZnNldFpvbmUgZnJvbSBcIi4uL3pvbmVzL2ZpeGVkT2Zmc2V0Wm9uZS5qc1wiO1xuaW1wb3J0IEludmFsaWRab25lIGZyb20gXCIuLi96b25lcy9pbnZhbGlkWm9uZS5qc1wiO1xuXG5pbXBvcnQgeyBpc1VuZGVmaW5lZCwgaXNTdHJpbmcsIGlzTnVtYmVyIH0gZnJvbSBcIi4vdXRpbC5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplWm9uZShpbnB1dCwgZGVmYXVsdFpvbmUpIHtcbiAgbGV0IG9mZnNldDtcbiAgaWYgKGlzVW5kZWZpbmVkKGlucHV0KSB8fCBpbnB1dCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBkZWZhdWx0Wm9uZTtcbiAgfSBlbHNlIGlmIChpbnB1dCBpbnN0YW5jZW9mIFpvbmUpIHtcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH0gZWxzZSBpZiAoaXNTdHJpbmcoaW5wdXQpKSB7XG4gICAgY29uc3QgbG93ZXJlZCA9IGlucHV0LnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGxvd2VyZWQgPT09IFwibG9jYWxcIiB8fCBsb3dlcmVkID09PSBcInN5c3RlbVwiKSByZXR1cm4gZGVmYXVsdFpvbmU7XG4gICAgZWxzZSBpZiAobG93ZXJlZCA9PT0gXCJ1dGNcIiB8fCBsb3dlcmVkID09PSBcImdtdFwiKSByZXR1cm4gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlO1xuICAgIGVsc2UgaWYgKElBTkFab25lLmlzVmFsaWRTcGVjaWZpZXIobG93ZXJlZCkpIHJldHVybiBJQU5BWm9uZS5jcmVhdGUoaW5wdXQpO1xuICAgIGVsc2UgcmV0dXJuIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcihsb3dlcmVkKSB8fCBuZXcgSW52YWxpZFpvbmUoaW5wdXQpO1xuICB9IGVsc2UgaWYgKGlzTnVtYmVyKGlucHV0KSkge1xuICAgIHJldHVybiBGaXhlZE9mZnNldFpvbmUuaW5zdGFuY2UoaW5wdXQpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJvYmplY3RcIiAmJiBpbnB1dC5vZmZzZXQgJiYgdHlwZW9mIGlucHV0Lm9mZnNldCA9PT0gXCJudW1iZXJcIikge1xuICAgIC8vIFRoaXMgaXMgZHVtYiwgYnV0IHRoZSBpbnN0YW5jZW9mIGNoZWNrIGFib3ZlIGRvZXNuJ3Qgc2VlbSB0byByZWFsbHkgd29ya1xuICAgIC8vIHNvIHdlJ3JlIGR1Y2sgY2hlY2tpbmcgaXRcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5ldyBJbnZhbGlkWm9uZShpbnB1dCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgU3lzdGVtWm9uZSBmcm9tIFwiLi96b25lcy9zeXN0ZW1ab25lLmpzXCI7XG5pbXBvcnQgSUFOQVpvbmUgZnJvbSBcIi4vem9uZXMvSUFOQVpvbmUuanNcIjtcbmltcG9ydCBMb2NhbGUgZnJvbSBcIi4vaW1wbC9sb2NhbGUuanNcIjtcblxuaW1wb3J0IHsgbm9ybWFsaXplWm9uZSB9IGZyb20gXCIuL2ltcGwvem9uZVV0aWwuanNcIjtcblxubGV0IG5vdyA9ICgpID0+IERhdGUubm93KCksXG4gIGRlZmF1bHRab25lID0gXCJzeXN0ZW1cIixcbiAgZGVmYXVsdExvY2FsZSA9IG51bGwsXG4gIGRlZmF1bHROdW1iZXJpbmdTeXN0ZW0gPSBudWxsLFxuICBkZWZhdWx0T3V0cHV0Q2FsZW5kYXIgPSBudWxsLFxuICB0aHJvd09uSW52YWxpZDtcblxuLyoqXG4gKiBTZXR0aW5ncyBjb250YWlucyBzdGF0aWMgZ2V0dGVycyBhbmQgc2V0dGVycyB0aGF0IGNvbnRyb2wgTHV4b24ncyBvdmVyYWxsIGJlaGF2aW9yLiBMdXhvbiBpcyBhIHNpbXBsZSBsaWJyYXJ5IHdpdGggZmV3IG9wdGlvbnMsIGJ1dCB0aGUgb25lcyBpdCBkb2VzIGhhdmUgbGl2ZSBoZXJlLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBHZXQgdGhlIGNhbGxiYWNrIGZvciByZXR1cm5pbmcgdGhlIGN1cnJlbnQgdGltZXN0YW1wLlxuICAgKiBAdHlwZSB7ZnVuY3Rpb259XG4gICAqL1xuICBzdGF0aWMgZ2V0IG5vdygpIHtcbiAgICByZXR1cm4gbm93O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgY2FsbGJhY2sgZm9yIHJldHVybmluZyB0aGUgY3VycmVudCB0aW1lc3RhbXAuXG4gICAqIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGEgbnVtYmVyLCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIEVwb2NoIG1pbGxpc2Vjb25kIGNvdW50XG4gICAqIEB0eXBlIHtmdW5jdGlvbn1cbiAgICogQGV4YW1wbGUgU2V0dGluZ3Mubm93ID0gKCkgPT4gRGF0ZS5ub3coKSArIDMwMDAgLy8gcHJldGVuZCBpdCBpcyAzIHNlY29uZHMgaW4gdGhlIGZ1dHVyZVxuICAgKiBAZXhhbXBsZSBTZXR0aW5ncy5ub3cgPSAoKSA9PiAwIC8vIGFsd2F5cyBwcmV0ZW5kIGl0J3MgSmFuIDEsIDE5NzAgYXQgbWlkbmlnaHQgaW4gVVRDIHRpbWVcbiAgICovXG4gIHN0YXRpYyBzZXQgbm93KG4pIHtcbiAgICBub3cgPSBuO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgdG8gY3JlYXRlIERhdGVUaW1lcyBpbi4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogVXNlIHRoZSB2YWx1ZSBcInN5c3RlbVwiIHRvIHJlc2V0IHRoaXMgdmFsdWUgdG8gdGhlIHN5c3RlbSdzIHRpbWUgem9uZS5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBzZXQgZGVmYXVsdFpvbmUoem9uZSkge1xuICAgIGRlZmF1bHRab25lID0gem9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgdGltZSB6b25lIG9iamVjdCBjdXJyZW50bHkgdXNlZCB0byBjcmVhdGUgRGF0ZVRpbWVzLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLlxuICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB0aGUgc3lzdGVtJ3MgdGltZSB6b25lICh0aGUgb25lIHNldCBvbiB0aGUgbWFjaGluZSB0aGF0IHJ1bnMgdGhpcyBjb2RlKS5cbiAgICogQHR5cGUge1pvbmV9XG4gICAqL1xuICBzdGF0aWMgZ2V0IGRlZmF1bHRab25lKCkge1xuICAgIHJldHVybiBub3JtYWxpemVab25lKGRlZmF1bHRab25lLCBTeXN0ZW1ab25lLmluc3RhbmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgbG9jYWxlIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBnZXQgZGVmYXVsdExvY2FsZSgpIHtcbiAgICByZXR1cm4gZGVmYXVsdExvY2FsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgbG9jYWxlIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBzZXQgZGVmYXVsdExvY2FsZShsb2NhbGUpIHtcbiAgICBkZWZhdWx0TG9jYWxlID0gbG9jYWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGVmYXVsdCBudW1iZXJpbmcgc3lzdGVtIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBnZXQgZGVmYXVsdE51bWJlcmluZ1N5c3RlbSgpIHtcbiAgICByZXR1cm4gZGVmYXVsdE51bWJlcmluZ1N5c3RlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgbnVtYmVyaW5nIHN5c3RlbSB0byBjcmVhdGUgRGF0ZVRpbWVzIHdpdGguIERvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBzdGF0aWMgc2V0IGRlZmF1bHROdW1iZXJpbmdTeXN0ZW0obnVtYmVyaW5nU3lzdGVtKSB7XG4gICAgZGVmYXVsdE51bWJlcmluZ1N5c3RlbSA9IG51bWJlcmluZ1N5c3RlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgb3V0cHV0IGNhbGVuZGFyIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBnZXQgZGVmYXVsdE91dHB1dENhbGVuZGFyKCkge1xuICAgIHJldHVybiBkZWZhdWx0T3V0cHV0Q2FsZW5kYXI7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBkZWZhdWx0IG91dHB1dCBjYWxlbmRhciB0byBjcmVhdGUgRGF0ZVRpbWVzIHdpdGguIERvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBzdGF0aWMgc2V0IGRlZmF1bHRPdXRwdXRDYWxlbmRhcihvdXRwdXRDYWxlbmRhcikge1xuICAgIGRlZmF1bHRPdXRwdXRDYWxlbmRhciA9IG91dHB1dENhbGVuZGFyO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB3aGV0aGVyIEx1eG9uIHdpbGwgdGhyb3cgd2hlbiBpdCBlbmNvdW50ZXJzIGludmFsaWQgRGF0ZVRpbWVzLCBEdXJhdGlvbnMsIG9yIEludGVydmFsc1xuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBnZXQgdGhyb3dPbkludmFsaWQoKSB7XG4gICAgcmV0dXJuIHRocm93T25JbnZhbGlkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIEx1eG9uIHdpbGwgdGhyb3cgd2hlbiBpdCBlbmNvdW50ZXJzIGludmFsaWQgRGF0ZVRpbWVzLCBEdXJhdGlvbnMsIG9yIEludGVydmFsc1xuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBzZXQgdGhyb3dPbkludmFsaWQodCkge1xuICAgIHRocm93T25JbnZhbGlkID0gdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBMdXhvbidzIGdsb2JhbCBjYWNoZXMuIFNob3VsZCBvbmx5IGJlIG5lY2Vzc2FyeSBpbiB0ZXN0aW5nIHNjZW5hcmlvcy5cbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIHN0YXRpYyByZXNldENhY2hlcygpIHtcbiAgICBMb2NhbGUucmVzZXRDYWNoZSgpO1xuICAgIElBTkFab25lLnJlc2V0Q2FjaGUoKTtcbiAgfVxufVxuIiwgImltcG9ydCB7IHBhZFN0YXJ0LCByb3VuZFRvLCBoYXNSZWxhdGl2ZSB9IGZyb20gXCIuL3V0aWwuanNcIjtcbmltcG9ydCAqIGFzIEVuZ2xpc2ggZnJvbSBcIi4vZW5nbGlzaC5qc1wiO1xuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuLi9zZXR0aW5ncy5qc1wiO1xuaW1wb3J0IERhdGVUaW1lIGZyb20gXCIuLi9kYXRldGltZS5qc1wiO1xuaW1wb3J0IElBTkFab25lIGZyb20gXCIuLi96b25lcy9JQU5BWm9uZS5qc1wiO1xuXG4vLyB0b2RvIC0gcmVtYXAgY2FjaGluZ1xuXG5sZXQgaW50bExGQ2FjaGUgPSB7fTtcbmZ1bmN0aW9uIGdldENhY2hlZExGKGxvY1N0cmluZywgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KFtsb2NTdHJpbmcsIG9wdHNdKTtcbiAgbGV0IGR0ZiA9IGludGxMRkNhY2hlW2tleV07XG4gIGlmICghZHRmKSB7XG4gICAgZHRmID0gbmV3IEludGwuTGlzdEZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxMRkNhY2hlW2tleV0gPSBkdGY7XG4gIH1cbiAgcmV0dXJuIGR0Zjtcbn1cblxubGV0IGludGxEVENhY2hlID0ge307XG5mdW5jdGlvbiBnZXRDYWNoZWREVEYobG9jU3RyaW5nLCBvcHRzID0ge30pIHtcbiAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoW2xvY1N0cmluZywgb3B0c10pO1xuICBsZXQgZHRmID0gaW50bERUQ2FjaGVba2V5XTtcbiAgaWYgKCFkdGYpIHtcbiAgICBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxEVENhY2hlW2tleV0gPSBkdGY7XG4gIH1cbiAgcmV0dXJuIGR0Zjtcbn1cblxubGV0IGludGxOdW1DYWNoZSA9IHt9O1xuZnVuY3Rpb24gZ2V0Q2FjaGVkSU5GKGxvY1N0cmluZywgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KFtsb2NTdHJpbmcsIG9wdHNdKTtcbiAgbGV0IGluZiA9IGludGxOdW1DYWNoZVtrZXldO1xuICBpZiAoIWluZikge1xuICAgIGluZiA9IG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxOdW1DYWNoZVtrZXldID0gaW5mO1xuICB9XG4gIHJldHVybiBpbmY7XG59XG5cbmxldCBpbnRsUmVsQ2FjaGUgPSB7fTtcbmZ1bmN0aW9uIGdldENhY2hlZFJURihsb2NTdHJpbmcsIG9wdHMgPSB7fSkge1xuICBjb25zdCB7IGJhc2UsIC4uLmNhY2hlS2V5T3B0cyB9ID0gb3B0czsgLy8gZXhjbHVkZSBgYmFzZWAgZnJvbSB0aGUgb3B0aW9uc1xuICBjb25zdCBrZXkgPSBKU09OLnN0cmluZ2lmeShbbG9jU3RyaW5nLCBjYWNoZUtleU9wdHNdKTtcbiAgbGV0IGluZiA9IGludGxSZWxDYWNoZVtrZXldO1xuICBpZiAoIWluZikge1xuICAgIGluZiA9IG5ldyBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxSZWxDYWNoZVtrZXldID0gaW5mO1xuICB9XG4gIHJldHVybiBpbmY7XG59XG5cbmxldCBzeXNMb2NhbGVDYWNoZSA9IG51bGw7XG5mdW5jdGlvbiBzeXN0ZW1Mb2NhbGUoKSB7XG4gIGlmIChzeXNMb2NhbGVDYWNoZSkge1xuICAgIHJldHVybiBzeXNMb2NhbGVDYWNoZTtcbiAgfSBlbHNlIHtcbiAgICBzeXNMb2NhbGVDYWNoZSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlO1xuICAgIHJldHVybiBzeXNMb2NhbGVDYWNoZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUxvY2FsZVN0cmluZyhsb2NhbGVTdHIpIHtcbiAgLy8gSSByZWFsbHkgd2FudCB0byBhdm9pZCB3cml0aW5nIGEgQkNQIDQ3IHBhcnNlclxuICAvLyBzZWUsIGUuZy4gaHR0cHM6Ly9naXRodWIuY29tL3dvb29ybS9iY3AtNDdcbiAgLy8gSW5zdGVhZCwgd2UnbGwgZG8gdGhpczpcblxuICAvLyBhKSBpZiB0aGUgc3RyaW5nIGhhcyBubyAtdSBleHRlbnNpb25zLCBqdXN0IGxlYXZlIGl0IGFsb25lXG4gIC8vIGIpIGlmIGl0IGRvZXMsIHVzZSBJbnRsIHRvIHJlc29sdmUgZXZlcnl0aGluZ1xuICAvLyBjKSBpZiBJbnRsIGZhaWxzLCB0cnkgYWdhaW4gd2l0aG91dCB0aGUgLXVcblxuICBjb25zdCB1SW5kZXggPSBsb2NhbGVTdHIuaW5kZXhPZihcIi11LVwiKTtcbiAgaWYgKHVJbmRleCA9PT0gLTEpIHtcbiAgICByZXR1cm4gW2xvY2FsZVN0cl07XG4gIH0gZWxzZSB7XG4gICAgbGV0IG9wdGlvbnM7XG4gICAgY29uc3Qgc21hbGxlciA9IGxvY2FsZVN0ci5zdWJzdHJpbmcoMCwgdUluZGV4KTtcbiAgICB0cnkge1xuICAgICAgb3B0aW9ucyA9IGdldENhY2hlZERURihsb2NhbGVTdHIpLnJlc29sdmVkT3B0aW9ucygpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIG9wdGlvbnMgPSBnZXRDYWNoZWREVEYoc21hbGxlcikucmVzb2x2ZWRPcHRpb25zKCk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBudW1iZXJpbmdTeXN0ZW0sIGNhbGVuZGFyIH0gPSBvcHRpb25zO1xuICAgIC8vIHJldHVybiB0aGUgc21hbGxlciBvbmUgc28gdGhhdCB3ZSBjYW4gYXBwZW5kIHRoZSBjYWxlbmRhciBhbmQgbnVtYmVyaW5nIG92ZXJyaWRlcyB0byBpdFxuICAgIHJldHVybiBbc21hbGxlciwgbnVtYmVyaW5nU3lzdGVtLCBjYWxlbmRhcl07XG4gIH1cbn1cblxuZnVuY3Rpb24gaW50bENvbmZpZ1N0cmluZyhsb2NhbGVTdHIsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIpIHtcbiAgaWYgKG91dHB1dENhbGVuZGFyIHx8IG51bWJlcmluZ1N5c3RlbSkge1xuICAgIGxvY2FsZVN0ciArPSBcIi11XCI7XG5cbiAgICBpZiAob3V0cHV0Q2FsZW5kYXIpIHtcbiAgICAgIGxvY2FsZVN0ciArPSBgLWNhLSR7b3V0cHV0Q2FsZW5kYXJ9YDtcbiAgICB9XG5cbiAgICBpZiAobnVtYmVyaW5nU3lzdGVtKSB7XG4gICAgICBsb2NhbGVTdHIgKz0gYC1udS0ke251bWJlcmluZ1N5c3RlbX1gO1xuICAgIH1cbiAgICByZXR1cm4gbG9jYWxlU3RyO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsb2NhbGVTdHI7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFwTW9udGhzKGYpIHtcbiAgY29uc3QgbXMgPSBbXTtcbiAgZm9yIChsZXQgaSA9IDE7IGkgPD0gMTI7IGkrKykge1xuICAgIGNvbnN0IGR0ID0gRGF0ZVRpbWUudXRjKDIwMTYsIGksIDEpO1xuICAgIG1zLnB1c2goZihkdCkpO1xuICB9XG4gIHJldHVybiBtcztcbn1cblxuZnVuY3Rpb24gbWFwV2Vla2RheXMoZikge1xuICBjb25zdCBtcyA9IFtdO1xuICBmb3IgKGxldCBpID0gMTsgaSA8PSA3OyBpKyspIHtcbiAgICBjb25zdCBkdCA9IERhdGVUaW1lLnV0YygyMDE2LCAxMSwgMTMgKyBpKTtcbiAgICBtcy5wdXNoKGYoZHQpKTtcbiAgfVxuICByZXR1cm4gbXM7XG59XG5cbmZ1bmN0aW9uIGxpc3RTdHVmZihsb2MsIGxlbmd0aCwgZGVmYXVsdE9LLCBlbmdsaXNoRm4sIGludGxGbikge1xuICBjb25zdCBtb2RlID0gbG9jLmxpc3RpbmdNb2RlKGRlZmF1bHRPSyk7XG5cbiAgaWYgKG1vZGUgPT09IFwiZXJyb3JcIikge1xuICAgIHJldHVybiBudWxsO1xuICB9IGVsc2UgaWYgKG1vZGUgPT09IFwiZW5cIikge1xuICAgIHJldHVybiBlbmdsaXNoRm4obGVuZ3RoKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gaW50bEZuKGxlbmd0aCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3VwcG9ydHNGYXN0TnVtYmVycyhsb2MpIHtcbiAgaWYgKGxvYy5udW1iZXJpbmdTeXN0ZW0gJiYgbG9jLm51bWJlcmluZ1N5c3RlbSAhPT0gXCJsYXRuXCIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGxvYy5udW1iZXJpbmdTeXN0ZW0gPT09IFwibGF0blwiIHx8XG4gICAgICAhbG9jLmxvY2FsZSB8fFxuICAgICAgbG9jLmxvY2FsZS5zdGFydHNXaXRoKFwiZW5cIikgfHxcbiAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvYy5pbnRsKS5yZXNvbHZlZE9wdGlvbnMoKS5udW1iZXJpbmdTeXN0ZW0gPT09IFwibGF0blwiXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuY2xhc3MgUG9seU51bWJlckZvcm1hdHRlciB7XG4gIGNvbnN0cnVjdG9yKGludGwsIGZvcmNlU2ltcGxlLCBvcHRzKSB7XG4gICAgdGhpcy5wYWRUbyA9IG9wdHMucGFkVG8gfHwgMDtcbiAgICB0aGlzLmZsb29yID0gb3B0cy5mbG9vciB8fCBmYWxzZTtcblxuICAgIGNvbnN0IHsgcGFkVG8sIGZsb29yLCAuLi5vdGhlck9wdHMgfSA9IG9wdHM7XG5cbiAgICBpZiAoIWZvcmNlU2ltcGxlIHx8IE9iamVjdC5rZXlzKG90aGVyT3B0cykubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgaW50bE9wdHMgPSB7IHVzZUdyb3VwaW5nOiBmYWxzZSwgLi4ub3B0cyB9O1xuICAgICAgaWYgKG9wdHMucGFkVG8gPiAwKSBpbnRsT3B0cy5taW5pbXVtSW50ZWdlckRpZ2l0cyA9IG9wdHMucGFkVG87XG4gICAgICB0aGlzLmluZiA9IGdldENhY2hlZElORihpbnRsLCBpbnRsT3B0cyk7XG4gICAgfVxuICB9XG5cbiAgZm9ybWF0KGkpIHtcbiAgICBpZiAodGhpcy5pbmYpIHtcbiAgICAgIGNvbnN0IGZpeGVkID0gdGhpcy5mbG9vciA/IE1hdGguZmxvb3IoaSkgOiBpO1xuICAgICAgcmV0dXJuIHRoaXMuaW5mLmZvcm1hdChmaXhlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRvIG1hdGNoIHRoZSBicm93c2VyJ3MgbnVtYmVyZm9ybWF0dGVyIGRlZmF1bHRzXG4gICAgICBjb25zdCBmaXhlZCA9IHRoaXMuZmxvb3IgPyBNYXRoLmZsb29yKGkpIDogcm91bmRUbyhpLCAzKTtcbiAgICAgIHJldHVybiBwYWRTdGFydChmaXhlZCwgdGhpcy5wYWRUbyk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuXG5jbGFzcyBQb2x5RGF0ZUZvcm1hdHRlciB7XG4gIGNvbnN0cnVjdG9yKGR0LCBpbnRsLCBvcHRzKSB7XG4gICAgdGhpcy5vcHRzID0gb3B0cztcblxuICAgIGxldCB6O1xuICAgIGlmIChkdC56b25lLmlzVW5pdmVyc2FsKSB7XG4gICAgICAvLyBVVEMtOCBvciBFdGMvVVRDLTggYXJlIG5vdCBwYXJ0IG9mIHR6ZGF0YSwgb25seSBFdGMvR01UKzggYW5kIHRoZSBsaWtlLlxuICAgICAgLy8gVGhhdCBpcyB3aHkgZml4ZWQtb2Zmc2V0IFRaIGlzIHNldCB0byB0aGF0IHVubGVzcyBpdCBpczpcbiAgICAgIC8vIDEuIFJlcHJlc2VudGluZyBvZmZzZXQgMCB3aGVuIFVUQyBpcyB1c2VkIHRvIG1haW50YWluIHByZXZpb3VzIGJlaGF2aW9yIGFuZCBkb2VzIG5vdCBiZWNvbWUgR01ULlxuICAgICAgLy8gMi4gVW5zdXBwb3J0ZWQgYnkgdGhlIGJyb3dzZXI6XG4gICAgICAvLyAgICAtIHNvbWUgZG8gbm90IHN1cHBvcnQgRXRjL1xuICAgICAgLy8gICAgLSA8IEV0Yy9HTVQtMTQsID4gRXRjL0dNVCsxMiwgYW5kIDMwLW1pbnV0ZSBvciA0NS1taW51dGUgb2Zmc2V0cyBhcmUgbm90IHBhcnQgb2YgdHpkYXRhXG4gICAgICBjb25zdCBnbXRPZmZzZXQgPSAtMSAqIChkdC5vZmZzZXQgLyA2MCk7XG4gICAgICBjb25zdCBvZmZzZXRaID0gZ210T2Zmc2V0ID49IDAgPyBgRXRjL0dNVCske2dtdE9mZnNldH1gIDogYEV0Yy9HTVQke2dtdE9mZnNldH1gO1xuICAgICAgaWYgKGR0Lm9mZnNldCAhPT0gMCAmJiBJQU5BWm9uZS5jcmVhdGUob2Zmc2V0WikudmFsaWQpIHtcbiAgICAgICAgeiA9IG9mZnNldFo7XG4gICAgICAgIHRoaXMuZHQgPSBkdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5vdCBhbGwgZml4ZWQtb2Zmc2V0IHpvbmVzIGxpa2UgRXRjLys0OjMwIGFyZSBwcmVzZW50IGluIHR6ZGF0YS5cbiAgICAgICAgLy8gU28gd2UgaGF2ZSB0byBtYWtlIGRvLiBUd28gY2FzZXM6XG4gICAgICAgIC8vIDEuIFRoZSBmb3JtYXQgb3B0aW9ucyB0ZWxsIHVzIHRvIHNob3cgdGhlIHpvbmUuIFdlIGNhbid0IGRvIHRoYXQsIHNvIHRoZSBiZXN0XG4gICAgICAgIC8vIHdlIGNhbiBkbyBpcyBmb3JtYXQgdGhlIGRhdGUgaW4gVVRDLlxuICAgICAgICAvLyAyLiBUaGUgZm9ybWF0IG9wdGlvbnMgZG9uJ3QgdGVsbCB1cyB0byBzaG93IHRoZSB6b25lLiBUaGVuIHdlIGNhbiBhZGp1c3QgdGhlbVxuICAgICAgICAvLyB0aGUgdGltZSBhbmQgdGVsbCB0aGUgZm9ybWF0dGVyIHRvIHNob3cgaXQgdG8gdXMgaW4gVVRDLCBzbyB0aGF0IHRoZSB0aW1lIGlzIHJpZ2h0XG4gICAgICAgIC8vIGFuZCB0aGUgYmFkIHpvbmUgZG9lc24ndCBzaG93IHVwLlxuICAgICAgICB6ID0gXCJVVENcIjtcbiAgICAgICAgaWYgKG9wdHMudGltZVpvbmVOYW1lKSB7XG4gICAgICAgICAgdGhpcy5kdCA9IGR0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZHQgPSBkdC5vZmZzZXQgPT09IDAgPyBkdCA6IERhdGVUaW1lLmZyb21NaWxsaXMoZHQudHMgKyBkdC5vZmZzZXQgKiA2MCAqIDEwMDApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChkdC56b25lLnR5cGUgPT09IFwic3lzdGVtXCIpIHtcbiAgICAgIHRoaXMuZHQgPSBkdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kdCA9IGR0O1xuICAgICAgeiA9IGR0LnpvbmUubmFtZTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnRsT3B0cyA9IHsgLi4udGhpcy5vcHRzIH07XG4gICAgaWYgKHopIHtcbiAgICAgIGludGxPcHRzLnRpbWVab25lID0gejtcbiAgICB9XG4gICAgdGhpcy5kdGYgPSBnZXRDYWNoZWREVEYoaW50bCwgaW50bE9wdHMpO1xuICB9XG5cbiAgZm9ybWF0KCkge1xuICAgIHJldHVybiB0aGlzLmR0Zi5mb3JtYXQodGhpcy5kdC50b0pTRGF0ZSgpKTtcbiAgfVxuXG4gIGZvcm1hdFRvUGFydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZHRmLmZvcm1hdFRvUGFydHModGhpcy5kdC50b0pTRGF0ZSgpKTtcbiAgfVxuXG4gIHJlc29sdmVkT3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5kdGYucmVzb2x2ZWRPcHRpb25zKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBQb2x5UmVsRm9ybWF0dGVyIHtcbiAgY29uc3RydWN0b3IoaW50bCwgaXNFbmdsaXNoLCBvcHRzKSB7XG4gICAgdGhpcy5vcHRzID0geyBzdHlsZTogXCJsb25nXCIsIC4uLm9wdHMgfTtcbiAgICBpZiAoIWlzRW5nbGlzaCAmJiBoYXNSZWxhdGl2ZSgpKSB7XG4gICAgICB0aGlzLnJ0ZiA9IGdldENhY2hlZFJURihpbnRsLCBvcHRzKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXQoY291bnQsIHVuaXQpIHtcbiAgICBpZiAodGhpcy5ydGYpIHtcbiAgICAgIHJldHVybiB0aGlzLnJ0Zi5mb3JtYXQoY291bnQsIHVuaXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gRW5nbGlzaC5mb3JtYXRSZWxhdGl2ZVRpbWUodW5pdCwgY291bnQsIHRoaXMub3B0cy5udW1lcmljLCB0aGlzLm9wdHMuc3R5bGUgIT09IFwibG9uZ1wiKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXRUb1BhcnRzKGNvdW50LCB1bml0KSB7XG4gICAgaWYgKHRoaXMucnRmKSB7XG4gICAgICByZXR1cm4gdGhpcy5ydGYuZm9ybWF0VG9QYXJ0cyhjb3VudCwgdW5pdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvY2FsZSB7XG4gIHN0YXRpYyBmcm9tT3B0cyhvcHRzKSB7XG4gICAgcmV0dXJuIExvY2FsZS5jcmVhdGUob3B0cy5sb2NhbGUsIG9wdHMubnVtYmVyaW5nU3lzdGVtLCBvcHRzLm91dHB1dENhbGVuZGFyLCBvcHRzLmRlZmF1bHRUb0VOKTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyLCBkZWZhdWx0VG9FTiA9IGZhbHNlKSB7XG4gICAgY29uc3Qgc3BlY2lmaWVkTG9jYWxlID0gbG9jYWxlIHx8IFNldHRpbmdzLmRlZmF1bHRMb2NhbGU7XG4gICAgLy8gdGhlIHN5c3RlbSBsb2NhbGUgaXMgdXNlZnVsIGZvciBodW1hbiByZWFkYWJsZSBzdHJpbmdzIGJ1dCBhbm5veWluZyBmb3IgcGFyc2luZy9mb3JtYXR0aW5nIGtub3duIGZvcm1hdHNcbiAgICBjb25zdCBsb2NhbGVSID0gc3BlY2lmaWVkTG9jYWxlIHx8IChkZWZhdWx0VG9FTiA/IFwiZW4tVVNcIiA6IHN5c3RlbUxvY2FsZSgpKTtcbiAgICBjb25zdCBudW1iZXJpbmdTeXN0ZW1SID0gbnVtYmVyaW5nU3lzdGVtIHx8IFNldHRpbmdzLmRlZmF1bHROdW1iZXJpbmdTeXN0ZW07XG4gICAgY29uc3Qgb3V0cHV0Q2FsZW5kYXJSID0gb3V0cHV0Q2FsZW5kYXIgfHwgU2V0dGluZ3MuZGVmYXVsdE91dHB1dENhbGVuZGFyO1xuICAgIHJldHVybiBuZXcgTG9jYWxlKGxvY2FsZVIsIG51bWJlcmluZ1N5c3RlbVIsIG91dHB1dENhbGVuZGFyUiwgc3BlY2lmaWVkTG9jYWxlKTtcbiAgfVxuXG4gIHN0YXRpYyByZXNldENhY2hlKCkge1xuICAgIHN5c0xvY2FsZUNhY2hlID0gbnVsbDtcbiAgICBpbnRsRFRDYWNoZSA9IHt9O1xuICAgIGludGxOdW1DYWNoZSA9IHt9O1xuICAgIGludGxSZWxDYWNoZSA9IHt9O1xuICB9XG5cbiAgc3RhdGljIGZyb21PYmplY3QoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIgfSA9IHt9KSB7XG4gICAgcmV0dXJuIExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGxvY2FsZSwgbnVtYmVyaW5nLCBvdXRwdXRDYWxlbmRhciwgc3BlY2lmaWVkTG9jYWxlKSB7XG4gICAgY29uc3QgW3BhcnNlZExvY2FsZSwgcGFyc2VkTnVtYmVyaW5nU3lzdGVtLCBwYXJzZWRPdXRwdXRDYWxlbmRhcl0gPSBwYXJzZUxvY2FsZVN0cmluZyhsb2NhbGUpO1xuXG4gICAgdGhpcy5sb2NhbGUgPSBwYXJzZWRMb2NhbGU7XG4gICAgdGhpcy5udW1iZXJpbmdTeXN0ZW0gPSBudW1iZXJpbmcgfHwgcGFyc2VkTnVtYmVyaW5nU3lzdGVtIHx8IG51bGw7XG4gICAgdGhpcy5vdXRwdXRDYWxlbmRhciA9IG91dHB1dENhbGVuZGFyIHx8IHBhcnNlZE91dHB1dENhbGVuZGFyIHx8IG51bGw7XG4gICAgdGhpcy5pbnRsID0gaW50bENvbmZpZ1N0cmluZyh0aGlzLmxvY2FsZSwgdGhpcy5udW1iZXJpbmdTeXN0ZW0sIHRoaXMub3V0cHV0Q2FsZW5kYXIpO1xuXG4gICAgdGhpcy53ZWVrZGF5c0NhY2hlID0geyBmb3JtYXQ6IHt9LCBzdGFuZGFsb25lOiB7fSB9O1xuICAgIHRoaXMubW9udGhzQ2FjaGUgPSB7IGZvcm1hdDoge30sIHN0YW5kYWxvbmU6IHt9IH07XG4gICAgdGhpcy5tZXJpZGllbUNhY2hlID0gbnVsbDtcbiAgICB0aGlzLmVyYUNhY2hlID0ge307XG5cbiAgICB0aGlzLnNwZWNpZmllZExvY2FsZSA9IHNwZWNpZmllZExvY2FsZTtcbiAgICB0aGlzLmZhc3ROdW1iZXJzQ2FjaGVkID0gbnVsbDtcbiAgfVxuXG4gIGdldCBmYXN0TnVtYmVycygpIHtcbiAgICBpZiAodGhpcy5mYXN0TnVtYmVyc0NhY2hlZCA9PSBudWxsKSB7XG4gICAgICB0aGlzLmZhc3ROdW1iZXJzQ2FjaGVkID0gc3VwcG9ydHNGYXN0TnVtYmVycyh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mYXN0TnVtYmVyc0NhY2hlZDtcbiAgfVxuXG4gIGxpc3RpbmdNb2RlKCkge1xuICAgIGNvbnN0IGlzQWN0dWFsbHlFbiA9IHRoaXMuaXNFbmdsaXNoKCk7XG4gICAgY29uc3QgaGFzTm9XZWlyZG5lc3MgPVxuICAgICAgKHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSBudWxsIHx8IHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSBcImxhdG5cIikgJiZcbiAgICAgICh0aGlzLm91dHB1dENhbGVuZGFyID09PSBudWxsIHx8IHRoaXMub3V0cHV0Q2FsZW5kYXIgPT09IFwiZ3JlZ29yeVwiKTtcbiAgICByZXR1cm4gaXNBY3R1YWxseUVuICYmIGhhc05vV2VpcmRuZXNzID8gXCJlblwiIDogXCJpbnRsXCI7XG4gIH1cblxuICBjbG9uZShhbHRzKSB7XG4gICAgaWYgKCFhbHRzIHx8IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGFsdHMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKFxuICAgICAgICBhbHRzLmxvY2FsZSB8fCB0aGlzLnNwZWNpZmllZExvY2FsZSxcbiAgICAgICAgYWx0cy5udW1iZXJpbmdTeXN0ZW0gfHwgdGhpcy5udW1iZXJpbmdTeXN0ZW0sXG4gICAgICAgIGFsdHMub3V0cHV0Q2FsZW5kYXIgfHwgdGhpcy5vdXRwdXRDYWxlbmRhcixcbiAgICAgICAgYWx0cy5kZWZhdWx0VG9FTiB8fCBmYWxzZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZWRlZmF1bHRUb0VOKGFsdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmNsb25lKHsgLi4uYWx0cywgZGVmYXVsdFRvRU46IHRydWUgfSk7XG4gIH1cblxuICByZWRlZmF1bHRUb1N5c3RlbShhbHRzID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSh7IC4uLmFsdHMsIGRlZmF1bHRUb0VOOiBmYWxzZSB9KTtcbiAgfVxuXG4gIG1vbnRocyhsZW5ndGgsIGZvcm1hdCA9IGZhbHNlLCBkZWZhdWx0T0sgPSB0cnVlKSB7XG4gICAgcmV0dXJuIGxpc3RTdHVmZih0aGlzLCBsZW5ndGgsIGRlZmF1bHRPSywgRW5nbGlzaC5tb250aHMsICgpID0+IHtcbiAgICAgIGNvbnN0IGludGwgPSBmb3JtYXQgPyB7IG1vbnRoOiBsZW5ndGgsIGRheTogXCJudW1lcmljXCIgfSA6IHsgbW9udGg6IGxlbmd0aCB9LFxuICAgICAgICBmb3JtYXRTdHIgPSBmb3JtYXQgPyBcImZvcm1hdFwiIDogXCJzdGFuZGFsb25lXCI7XG4gICAgICBpZiAoIXRoaXMubW9udGhzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdKSB7XG4gICAgICAgIHRoaXMubW9udGhzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdID0gbWFwTW9udGhzKChkdCkgPT4gdGhpcy5leHRyYWN0KGR0LCBpbnRsLCBcIm1vbnRoXCIpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLm1vbnRoc0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXTtcbiAgICB9KTtcbiAgfVxuXG4gIHdlZWtkYXlzKGxlbmd0aCwgZm9ybWF0ID0gZmFsc2UsIGRlZmF1bHRPSyA9IHRydWUpIHtcbiAgICByZXR1cm4gbGlzdFN0dWZmKHRoaXMsIGxlbmd0aCwgZGVmYXVsdE9LLCBFbmdsaXNoLndlZWtkYXlzLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbnRsID0gZm9ybWF0XG4gICAgICAgICAgPyB7IHdlZWtkYXk6IGxlbmd0aCwgeWVhcjogXCJudW1lcmljXCIsIG1vbnRoOiBcImxvbmdcIiwgZGF5OiBcIm51bWVyaWNcIiB9XG4gICAgICAgICAgOiB7IHdlZWtkYXk6IGxlbmd0aCB9LFxuICAgICAgICBmb3JtYXRTdHIgPSBmb3JtYXQgPyBcImZvcm1hdFwiIDogXCJzdGFuZGFsb25lXCI7XG4gICAgICBpZiAoIXRoaXMud2Vla2RheXNDYWNoZVtmb3JtYXRTdHJdW2xlbmd0aF0pIHtcbiAgICAgICAgdGhpcy53ZWVrZGF5c0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXSA9IG1hcFdlZWtkYXlzKChkdCkgPT5cbiAgICAgICAgICB0aGlzLmV4dHJhY3QoZHQsIGludGwsIFwid2Vla2RheVwiKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMud2Vla2RheXNDYWNoZVtmb3JtYXRTdHJdW2xlbmd0aF07XG4gICAgfSk7XG4gIH1cblxuICBtZXJpZGllbXMoZGVmYXVsdE9LID0gdHJ1ZSkge1xuICAgIHJldHVybiBsaXN0U3R1ZmYoXG4gICAgICB0aGlzLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgZGVmYXVsdE9LLFxuICAgICAgKCkgPT4gRW5nbGlzaC5tZXJpZGllbXMsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIEluIHRoZW9yeSB0aGVyZSBjb3VsZCBiZSBhcmliaXRyYXJ5IGRheSBwZXJpb2RzLiBXZSdyZSBnb25uYSBhc3N1bWUgdGhlcmUgYXJlIGV4YWN0bHkgdHdvXG4gICAgICAgIC8vIGZvciBBTSBhbmQgUE0uIFRoaXMgaXMgcHJvYmFibHkgd3JvbmcsIGJ1dCBpdCdzIG1ha2VzIHBhcnNpbmcgd2F5IGVhc2llci5cbiAgICAgICAgaWYgKCF0aGlzLm1lcmlkaWVtQ2FjaGUpIHtcbiAgICAgICAgICBjb25zdCBpbnRsID0geyBob3VyOiBcIm51bWVyaWNcIiwgaG91ckN5Y2xlOiBcImgxMlwiIH07XG4gICAgICAgICAgdGhpcy5tZXJpZGllbUNhY2hlID0gW0RhdGVUaW1lLnV0YygyMDE2LCAxMSwgMTMsIDkpLCBEYXRlVGltZS51dGMoMjAxNiwgMTEsIDEzLCAxOSldLm1hcChcbiAgICAgICAgICAgIChkdCkgPT4gdGhpcy5leHRyYWN0KGR0LCBpbnRsLCBcImRheXBlcmlvZFwiKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5tZXJpZGllbUNhY2hlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBlcmFzKGxlbmd0aCwgZGVmYXVsdE9LID0gdHJ1ZSkge1xuICAgIHJldHVybiBsaXN0U3R1ZmYodGhpcywgbGVuZ3RoLCBkZWZhdWx0T0ssIEVuZ2xpc2guZXJhcywgKCkgPT4ge1xuICAgICAgY29uc3QgaW50bCA9IHsgZXJhOiBsZW5ndGggfTtcblxuICAgICAgLy8gVGhpcyBpcyBwcm9ibGVtYXRpYy4gRGlmZmVyZW50IGNhbGVuZGFycyBhcmUgZ29pbmcgdG8gZGVmaW5lIGVyYXMgdG90YWxseSBkaWZmZXJlbnRseS4gV2hhdCBJIG5lZWQgaXMgdGhlIG1pbmltdW0gc2V0IG9mIGRhdGVzXG4gICAgICAvLyB0byBkZWZpbml0ZWx5IGVudW1lcmF0ZSB0aGVtLlxuICAgICAgaWYgKCF0aGlzLmVyYUNhY2hlW2xlbmd0aF0pIHtcbiAgICAgICAgdGhpcy5lcmFDYWNoZVtsZW5ndGhdID0gW0RhdGVUaW1lLnV0YygtNDAsIDEsIDEpLCBEYXRlVGltZS51dGMoMjAxNywgMSwgMSldLm1hcCgoZHQpID0+XG4gICAgICAgICAgdGhpcy5leHRyYWN0KGR0LCBpbnRsLCBcImVyYVwiKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5lcmFDYWNoZVtsZW5ndGhdO1xuICAgIH0pO1xuICB9XG5cbiAgZXh0cmFjdChkdCwgaW50bE9wdHMsIGZpZWxkKSB7XG4gICAgY29uc3QgZGYgPSB0aGlzLmR0Rm9ybWF0dGVyKGR0LCBpbnRsT3B0cyksXG4gICAgICByZXN1bHRzID0gZGYuZm9ybWF0VG9QYXJ0cygpLFxuICAgICAgbWF0Y2hpbmcgPSByZXN1bHRzLmZpbmQoKG0pID0+IG0udHlwZS50b0xvd2VyQ2FzZSgpID09PSBmaWVsZCk7XG4gICAgcmV0dXJuIG1hdGNoaW5nID8gbWF0Y2hpbmcudmFsdWUgOiBudWxsO1xuICB9XG5cbiAgbnVtYmVyRm9ybWF0dGVyKG9wdHMgPSB7fSkge1xuICAgIC8vIHRoaXMgZm9yY2VzaW1wbGUgb3B0aW9uIGlzIG5ldmVyIHVzZWQgKHRoZSBvbmx5IGNhbGxlciBzaG9ydC1jaXJjdWl0cyBvbiBpdCwgYnV0IGl0IHNlZW1zIHNhZmVyIHRvIGxlYXZlKVxuICAgIC8vIChpbiBjb250cmFzdCwgdGhlIHJlc3Qgb2YgdGhlIGNvbmRpdGlvbiBpcyB1c2VkIGhlYXZpbHkpXG4gICAgcmV0dXJuIG5ldyBQb2x5TnVtYmVyRm9ybWF0dGVyKHRoaXMuaW50bCwgb3B0cy5mb3JjZVNpbXBsZSB8fCB0aGlzLmZhc3ROdW1iZXJzLCBvcHRzKTtcbiAgfVxuXG4gIGR0Rm9ybWF0dGVyKGR0LCBpbnRsT3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIG5ldyBQb2x5RGF0ZUZvcm1hdHRlcihkdCwgdGhpcy5pbnRsLCBpbnRsT3B0cyk7XG4gIH1cblxuICByZWxGb3JtYXR0ZXIob3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIG5ldyBQb2x5UmVsRm9ybWF0dGVyKHRoaXMuaW50bCwgdGhpcy5pc0VuZ2xpc2goKSwgb3B0cyk7XG4gIH1cblxuICBsaXN0Rm9ybWF0dGVyKG9wdHMgPSB7fSkge1xuICAgIHJldHVybiBnZXRDYWNoZWRMRih0aGlzLmludGwsIG9wdHMpO1xuICB9XG5cbiAgaXNFbmdsaXNoKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmxvY2FsZSA9PT0gXCJlblwiIHx8XG4gICAgICB0aGlzLmxvY2FsZS50b0xvd2VyQ2FzZSgpID09PSBcImVuLXVzXCIgfHxcbiAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMuaW50bCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlLnN0YXJ0c1dpdGgoXCJlbi11c1wiKVxuICAgICk7XG4gIH1cblxuICBlcXVhbHMob3RoZXIpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5sb2NhbGUgPT09IG90aGVyLmxvY2FsZSAmJlxuICAgICAgdGhpcy5udW1iZXJpbmdTeXN0ZW0gPT09IG90aGVyLm51bWJlcmluZ1N5c3RlbSAmJlxuICAgICAgdGhpcy5vdXRwdXRDYWxlbmRhciA9PT0gb3RoZXIub3V0cHV0Q2FsZW5kYXJcbiAgICApO1xuICB9XG59XG4iLCAiaW1wb3J0IHtcbiAgdW50cnVuY2F0ZVllYXIsXG4gIHNpZ25lZE9mZnNldCxcbiAgcGFyc2VJbnRlZ2VyLFxuICBwYXJzZU1pbGxpcyxcbiAgaWFuYVJlZ2V4LFxuICBpc1VuZGVmaW5lZCxcbiAgcGFyc2VGbG9hdGluZyxcbn0gZnJvbSBcIi4vdXRpbC5qc1wiO1xuaW1wb3J0ICogYXMgRW5nbGlzaCBmcm9tIFwiLi9lbmdsaXNoLmpzXCI7XG5pbXBvcnQgRml4ZWRPZmZzZXRab25lIGZyb20gXCIuLi96b25lcy9maXhlZE9mZnNldFpvbmUuanNcIjtcbmltcG9ydCBJQU5BWm9uZSBmcm9tIFwiLi4vem9uZXMvSUFOQVpvbmUuanNcIjtcblxuLypcbiAqIFRoaXMgZmlsZSBoYW5kbGVzIHBhcnNpbmcgZm9yIHdlbGwtc3BlY2lmaWVkIGZvcm1hdHMuIEhlcmUncyBob3cgaXQgd29ya3M6XG4gKiBUd28gdGhpbmdzIGdvIGludG8gcGFyc2luZzogYSByZWdleCB0byBtYXRjaCB3aXRoIGFuZCBhbiBleHRyYWN0b3IgdG8gdGFrZSBhcGFydCB0aGUgZ3JvdXBzIGluIHRoZSBtYXRjaC5cbiAqIEFuIGV4dHJhY3RvciBpcyBqdXN0IGEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHJlZ2V4IG1hdGNoIGFycmF5IGFuZCByZXR1cm5zIGEgeyB5ZWFyOiAuLi4sIG1vbnRoOiAuLi4gfSBvYmplY3RcbiAqIHBhcnNlKCkgZG9lcyB0aGUgd29yayBvZiBleGVjdXRpbmcgdGhlIHJlZ2V4IGFuZCBhcHBseWluZyB0aGUgZXh0cmFjdG9yLiBJdCB0YWtlcyBtdWx0aXBsZSByZWdleC9leHRyYWN0b3IgcGFpcnMgdG8gdHJ5IGluIHNlcXVlbmNlLlxuICogRXh0cmFjdG9ycyBjYW4gdGFrZSBhIFwiY3Vyc29yXCIgcmVwcmVzZW50aW5nIHRoZSBvZmZzZXQgaW4gdGhlIG1hdGNoIHRvIGxvb2sgYXQuIFRoaXMgbWFrZXMgaXQgZWFzeSB0byBjb21iaW5lIGV4dHJhY3RvcnMuXG4gKiBjb21iaW5lRXh0cmFjdG9ycygpIGRvZXMgdGhlIHdvcmsgb2YgY29tYmluaW5nIHRoZW0sIGtlZXBpbmcgdHJhY2sgb2YgdGhlIGN1cnNvciB0aHJvdWdoIG11bHRpcGxlIGV4dHJhY3Rpb25zLlxuICogU29tZSBleHRyYWN0aW9ucyBhcmUgc3VwZXIgZHVtYiBhbmQgc2ltcGxlUGFyc2UgYW5kIGZyb21TdHJpbmdzIGhlbHAgRFJZIHRoZW0uXG4gKi9cblxuZnVuY3Rpb24gY29tYmluZVJlZ2V4ZXMoLi4ucmVnZXhlcykge1xuICBjb25zdCBmdWxsID0gcmVnZXhlcy5yZWR1Y2UoKGYsIHIpID0+IGYgKyByLnNvdXJjZSwgXCJcIik7XG4gIHJldHVybiBSZWdFeHAoYF4ke2Z1bGx9JGApO1xufVxuXG5mdW5jdGlvbiBjb21iaW5lRXh0cmFjdG9ycyguLi5leHRyYWN0b3JzKSB7XG4gIHJldHVybiAobSkgPT5cbiAgICBleHRyYWN0b3JzXG4gICAgICAucmVkdWNlKFxuICAgICAgICAoW21lcmdlZFZhbHMsIG1lcmdlZFpvbmUsIGN1cnNvcl0sIGV4KSA9PiB7XG4gICAgICAgICAgY29uc3QgW3ZhbCwgem9uZSwgbmV4dF0gPSBleChtLCBjdXJzb3IpO1xuICAgICAgICAgIHJldHVybiBbeyAuLi5tZXJnZWRWYWxzLCAuLi52YWwgfSwgbWVyZ2VkWm9uZSB8fCB6b25lLCBuZXh0XTtcbiAgICAgICAgfSxcbiAgICAgICAgW3t9LCBudWxsLCAxXVxuICAgICAgKVxuICAgICAgLnNsaWNlKDAsIDIpO1xufVxuXG5mdW5jdGlvbiBwYXJzZShzLCAuLi5wYXR0ZXJucykge1xuICBpZiAocyA9PSBudWxsKSB7XG4gICAgcmV0dXJuIFtudWxsLCBudWxsXTtcbiAgfVxuXG4gIGZvciAoY29uc3QgW3JlZ2V4LCBleHRyYWN0b3JdIG9mIHBhdHRlcm5zKSB7XG4gICAgY29uc3QgbSA9IHJlZ2V4LmV4ZWMocyk7XG4gICAgaWYgKG0pIHtcbiAgICAgIHJldHVybiBleHRyYWN0b3IobSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBbbnVsbCwgbnVsbF07XG59XG5cbmZ1bmN0aW9uIHNpbXBsZVBhcnNlKC4uLmtleXMpIHtcbiAgcmV0dXJuIChtYXRjaCwgY3Vyc29yKSA9PiB7XG4gICAgY29uc3QgcmV0ID0ge307XG4gICAgbGV0IGk7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgcmV0W2tleXNbaV1dID0gcGFyc2VJbnRlZ2VyKG1hdGNoW2N1cnNvciArIGldKTtcbiAgICB9XG4gICAgcmV0dXJuIFtyZXQsIG51bGwsIGN1cnNvciArIGldO1xuICB9O1xufVxuXG4vLyBJU08gYW5kIFNRTCBwYXJzaW5nXG5jb25zdCBvZmZzZXRSZWdleCA9IC8oPzooWil8KFsrLV1cXGRcXGQpKD86Oj8oXFxkXFxkKSk/KS8sXG4gIGlzb1RpbWVCYXNlUmVnZXggPSAvKFxcZFxcZCkoPzo6PyhcXGRcXGQpKD86Oj8oXFxkXFxkKSg/OlsuLF0oXFxkezEsMzB9KSk/KT8pPy8sXG4gIGlzb1RpbWVSZWdleCA9IFJlZ0V4cChgJHtpc29UaW1lQmFzZVJlZ2V4LnNvdXJjZX0ke29mZnNldFJlZ2V4LnNvdXJjZX0/YCksXG4gIGlzb1RpbWVFeHRlbnNpb25SZWdleCA9IFJlZ0V4cChgKD86VCR7aXNvVGltZVJlZ2V4LnNvdXJjZX0pP2ApLFxuICBpc29ZbWRSZWdleCA9IC8oWystXVxcZHs2fXxcXGR7NH0pKD86LT8oXFxkXFxkKSg/Oi0/KFxcZFxcZCkpPyk/LyxcbiAgaXNvV2Vla1JlZ2V4ID0gLyhcXGR7NH0pLT9XKFxcZFxcZCkoPzotPyhcXGQpKT8vLFxuICBpc29PcmRpbmFsUmVnZXggPSAvKFxcZHs0fSktPyhcXGR7M30pLyxcbiAgZXh0cmFjdElTT1dlZWtEYXRhID0gc2ltcGxlUGFyc2UoXCJ3ZWVrWWVhclwiLCBcIndlZWtOdW1iZXJcIiwgXCJ3ZWVrRGF5XCIpLFxuICBleHRyYWN0SVNPT3JkaW5hbERhdGEgPSBzaW1wbGVQYXJzZShcInllYXJcIiwgXCJvcmRpbmFsXCIpLFxuICBzcWxZbWRSZWdleCA9IC8oXFxkezR9KS0oXFxkXFxkKS0oXFxkXFxkKS8sIC8vIGR1bWJlZC1kb3duIHZlcnNpb24gb2YgdGhlIElTTyBvbmVcbiAgc3FsVGltZVJlZ2V4ID0gUmVnRXhwKFxuICAgIGAke2lzb1RpbWVCYXNlUmVnZXguc291cmNlfSA/KD86JHtvZmZzZXRSZWdleC5zb3VyY2V9fCgke2lhbmFSZWdleC5zb3VyY2V9KSk/YFxuICApLFxuICBzcWxUaW1lRXh0ZW5zaW9uUmVnZXggPSBSZWdFeHAoYCg/OiAke3NxbFRpbWVSZWdleC5zb3VyY2V9KT9gKTtcblxuZnVuY3Rpb24gaW50KG1hdGNoLCBwb3MsIGZhbGxiYWNrKSB7XG4gIGNvbnN0IG0gPSBtYXRjaFtwb3NdO1xuICByZXR1cm4gaXNVbmRlZmluZWQobSkgPyBmYWxsYmFjayA6IHBhcnNlSW50ZWdlcihtKTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdElTT1ltZChtYXRjaCwgY3Vyc29yKSB7XG4gIGNvbnN0IGl0ZW0gPSB7XG4gICAgeWVhcjogaW50KG1hdGNoLCBjdXJzb3IpLFxuICAgIG1vbnRoOiBpbnQobWF0Y2gsIGN1cnNvciArIDEsIDEpLFxuICAgIGRheTogaW50KG1hdGNoLCBjdXJzb3IgKyAyLCAxKSxcbiAgfTtcblxuICByZXR1cm4gW2l0ZW0sIG51bGwsIGN1cnNvciArIDNdO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0SVNPVGltZShtYXRjaCwgY3Vyc29yKSB7XG4gIGNvbnN0IGl0ZW0gPSB7XG4gICAgaG91cnM6IGludChtYXRjaCwgY3Vyc29yLCAwKSxcbiAgICBtaW51dGVzOiBpbnQobWF0Y2gsIGN1cnNvciArIDEsIDApLFxuICAgIHNlY29uZHM6IGludChtYXRjaCwgY3Vyc29yICsgMiwgMCksXG4gICAgbWlsbGlzZWNvbmRzOiBwYXJzZU1pbGxpcyhtYXRjaFtjdXJzb3IgKyAzXSksXG4gIH07XG5cbiAgcmV0dXJuIFtpdGVtLCBudWxsLCBjdXJzb3IgKyA0XTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdElTT09mZnNldChtYXRjaCwgY3Vyc29yKSB7XG4gIGNvbnN0IGxvY2FsID0gIW1hdGNoW2N1cnNvcl0gJiYgIW1hdGNoW2N1cnNvciArIDFdLFxuICAgIGZ1bGxPZmZzZXQgPSBzaWduZWRPZmZzZXQobWF0Y2hbY3Vyc29yICsgMV0sIG1hdGNoW2N1cnNvciArIDJdKSxcbiAgICB6b25lID0gbG9jYWwgPyBudWxsIDogRml4ZWRPZmZzZXRab25lLmluc3RhbmNlKGZ1bGxPZmZzZXQpO1xuICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAzXTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdElBTkFab25lKG1hdGNoLCBjdXJzb3IpIHtcbiAgY29uc3Qgem9uZSA9IG1hdGNoW2N1cnNvcl0gPyBJQU5BWm9uZS5jcmVhdGUobWF0Y2hbY3Vyc29yXSkgOiBudWxsO1xuICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAxXTtcbn1cblxuLy8gSVNPIHRpbWUgcGFyc2luZ1xuXG5jb25zdCBpc29UaW1lT25seSA9IFJlZ0V4cChgXlQ/JHtpc29UaW1lQmFzZVJlZ2V4LnNvdXJjZX0kYCk7XG5cbi8vIElTTyBkdXJhdGlvbiBwYXJzaW5nXG5cbmNvbnN0IGlzb0R1cmF0aW9uID1cbiAgL14tP1AoPzooPzooLT9cXGR7MSw5fSg/OlxcLlxcZHsxLDl9KT8pWSk/KD86KC0/XFxkezEsOX0oPzpcXC5cXGR7MSw5fSk/KU0pPyg/OigtP1xcZHsxLDl9KD86XFwuXFxkezEsOX0pPylXKT8oPzooLT9cXGR7MSw5fSg/OlxcLlxcZHsxLDl9KT8pRCk/KD86VCg/OigtP1xcZHsxLDl9KD86XFwuXFxkezEsOX0pPylIKT8oPzooLT9cXGR7MSw5fSg/OlxcLlxcZHsxLDl9KT8pTSk/KD86KC0/XFxkezEsMjB9KSg/OlsuLF0oLT9cXGR7MSw5fSkpP1MpPyk/KSQvO1xuXG5mdW5jdGlvbiBleHRyYWN0SVNPRHVyYXRpb24obWF0Y2gpIHtcbiAgY29uc3QgW3MsIHllYXJTdHIsIG1vbnRoU3RyLCB3ZWVrU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyLCBtaWxsaXNlY29uZHNTdHJdID1cbiAgICBtYXRjaDtcblxuICBjb25zdCBoYXNOZWdhdGl2ZVByZWZpeCA9IHNbMF0gPT09IFwiLVwiO1xuICBjb25zdCBuZWdhdGl2ZVNlY29uZHMgPSBzZWNvbmRTdHIgJiYgc2Vjb25kU3RyWzBdID09PSBcIi1cIjtcblxuICBjb25zdCBtYXliZU5lZ2F0ZSA9IChudW0sIGZvcmNlID0gZmFsc2UpID0+XG4gICAgbnVtICE9PSB1bmRlZmluZWQgJiYgKGZvcmNlIHx8IChudW0gJiYgaGFzTmVnYXRpdmVQcmVmaXgpKSA/IC1udW0gOiBudW07XG5cbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICB5ZWFyczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyh5ZWFyU3RyKSksXG4gICAgICBtb250aHM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcobW9udGhTdHIpKSxcbiAgICAgIHdlZWtzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKHdlZWtTdHIpKSxcbiAgICAgIGRheXM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcoZGF5U3RyKSksXG4gICAgICBob3VyczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyhob3VyU3RyKSksXG4gICAgICBtaW51dGVzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKG1pbnV0ZVN0cikpLFxuICAgICAgc2Vjb25kczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyhzZWNvbmRTdHIpLCBzZWNvbmRTdHIgPT09IFwiLTBcIiksXG4gICAgICBtaWxsaXNlY29uZHM6IG1heWJlTmVnYXRlKHBhcnNlTWlsbGlzKG1pbGxpc2Vjb25kc1N0ciksIG5lZ2F0aXZlU2Vjb25kcyksXG4gICAgfSxcbiAgXTtcbn1cblxuLy8gVGhlc2UgYXJlIGEgbGl0dGxlIGJyYWluZGVhZC4gRURUICpzaG91bGQqIHRlbGwgdXMgdGhhdCB3ZSdyZSBpbiwgc2F5LCBBbWVyaWNhL05ld19Zb3JrXG4vLyBhbmQgbm90IGp1c3QgdGhhdCB3ZSdyZSBpbiAtMjQwICpyaWdodCBub3cqLiBCdXQgc2luY2UgSSBkb24ndCB0aGluayB0aGVzZSBhcmUgdXNlZCB0aGF0IG9mdGVuXG4vLyBJJ20ganVzdCBnb2luZyB0byBpZ25vcmUgdGhhdFxuY29uc3Qgb2JzT2Zmc2V0cyA9IHtcbiAgR01UOiAwLFxuICBFRFQ6IC00ICogNjAsXG4gIEVTVDogLTUgKiA2MCxcbiAgQ0RUOiAtNSAqIDYwLFxuICBDU1Q6IC02ICogNjAsXG4gIE1EVDogLTYgKiA2MCxcbiAgTVNUOiAtNyAqIDYwLFxuICBQRFQ6IC03ICogNjAsXG4gIFBTVDogLTggKiA2MCxcbn07XG5cbmZ1bmN0aW9uIGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKSB7XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICB5ZWFyOiB5ZWFyU3RyLmxlbmd0aCA9PT0gMiA/IHVudHJ1bmNhdGVZZWFyKHBhcnNlSW50ZWdlcih5ZWFyU3RyKSkgOiBwYXJzZUludGVnZXIoeWVhclN0ciksXG4gICAgbW9udGg6IEVuZ2xpc2gubW9udGhzU2hvcnQuaW5kZXhPZihtb250aFN0cikgKyAxLFxuICAgIGRheTogcGFyc2VJbnRlZ2VyKGRheVN0ciksXG4gICAgaG91cjogcGFyc2VJbnRlZ2VyKGhvdXJTdHIpLFxuICAgIG1pbnV0ZTogcGFyc2VJbnRlZ2VyKG1pbnV0ZVN0ciksXG4gIH07XG5cbiAgaWYgKHNlY29uZFN0cikgcmVzdWx0LnNlY29uZCA9IHBhcnNlSW50ZWdlcihzZWNvbmRTdHIpO1xuICBpZiAod2Vla2RheVN0cikge1xuICAgIHJlc3VsdC53ZWVrZGF5ID1cbiAgICAgIHdlZWtkYXlTdHIubGVuZ3RoID4gM1xuICAgICAgICA/IEVuZ2xpc2gud2Vla2RheXNMb25nLmluZGV4T2Yod2Vla2RheVN0cikgKyAxXG4gICAgICAgIDogRW5nbGlzaC53ZWVrZGF5c1Nob3J0LmluZGV4T2Yod2Vla2RheVN0cikgKyAxO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gUkZDIDI4MjIvNTMyMlxuY29uc3QgcmZjMjgyMiA9XG4gIC9eKD86KE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1biksXFxzKT8oXFxkezEsMn0pXFxzKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKVxccyhcXGR7Miw0fSlcXHMoXFxkXFxkKTooXFxkXFxkKSg/OjooXFxkXFxkKSk/XFxzKD86KFVUfEdNVHxbRUNNUF1bU0RdVCl8KFtael0pfCg/OihbKy1dXFxkXFxkKShcXGRcXGQpKSkkLztcblxuZnVuY3Rpb24gZXh0cmFjdFJGQzI4MjIobWF0Y2gpIHtcbiAgY29uc3QgW1xuICAgICAgLFxuICAgICAgd2Vla2RheVN0cixcbiAgICAgIGRheVN0cixcbiAgICAgIG1vbnRoU3RyLFxuICAgICAgeWVhclN0cixcbiAgICAgIGhvdXJTdHIsXG4gICAgICBtaW51dGVTdHIsXG4gICAgICBzZWNvbmRTdHIsXG4gICAgICBvYnNPZmZzZXQsXG4gICAgICBtaWxPZmZzZXQsXG4gICAgICBvZmZIb3VyU3RyLFxuICAgICAgb2ZmTWludXRlU3RyLFxuICAgIF0gPSBtYXRjaCxcbiAgICByZXN1bHQgPSBmcm9tU3RyaW5ncyh3ZWVrZGF5U3RyLCB5ZWFyU3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0cik7XG5cbiAgbGV0IG9mZnNldDtcbiAgaWYgKG9ic09mZnNldCkge1xuICAgIG9mZnNldCA9IG9ic09mZnNldHNbb2JzT2Zmc2V0XTtcbiAgfSBlbHNlIGlmIChtaWxPZmZzZXQpIHtcbiAgICBvZmZzZXQgPSAwO1xuICB9IGVsc2Uge1xuICAgIG9mZnNldCA9IHNpZ25lZE9mZnNldChvZmZIb3VyU3RyLCBvZmZNaW51dGVTdHIpO1xuICB9XG5cbiAgcmV0dXJuIFtyZXN1bHQsIG5ldyBGaXhlZE9mZnNldFpvbmUob2Zmc2V0KV07XG59XG5cbmZ1bmN0aW9uIHByZXByb2Nlc3NSRkMyODIyKHMpIHtcbiAgLy8gUmVtb3ZlIGNvbW1lbnRzIGFuZCBmb2xkaW5nIHdoaXRlc3BhY2UgYW5kIHJlcGxhY2UgbXVsdGlwbGUtc3BhY2VzIHdpdGggYSBzaW5nbGUgc3BhY2VcbiAgcmV0dXJuIHNcbiAgICAucmVwbGFjZSgvXFwoW14pXSpcXCl8W1xcblxcdF0vZywgXCIgXCIpXG4gICAgLnJlcGxhY2UoLyhcXHNcXHMrKS9nLCBcIiBcIilcbiAgICAudHJpbSgpO1xufVxuXG4vLyBodHRwIGRhdGVcblxuY29uc3QgcmZjMTEyMyA9XG4gICAgL14oTW9ufFR1ZXxXZWR8VGh1fEZyaXxTYXR8U3VuKSwgKFxcZFxcZCkgKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKSAoXFxkezR9KSAoXFxkXFxkKTooXFxkXFxkKTooXFxkXFxkKSBHTVQkLyxcbiAgcmZjODUwID1cbiAgICAvXihNb25kYXl8VHVlc2RheXxXZWRzZGF5fFRodXJzZGF5fEZyaWRheXxTYXR1cmRheXxTdW5kYXkpLCAoXFxkXFxkKS0oSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpLShcXGRcXGQpIChcXGRcXGQpOihcXGRcXGQpOihcXGRcXGQpIEdNVCQvLFxuICBhc2NpaSA9XG4gICAgL14oTW9ufFR1ZXxXZWR8VGh1fEZyaXxTYXR8U3VuKSAoSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpICggXFxkfFxcZFxcZCkgKFxcZFxcZCk6KFxcZFxcZCk6KFxcZFxcZCkgKFxcZHs0fSkkLztcblxuZnVuY3Rpb24gZXh0cmFjdFJGQzExMjNPcjg1MChtYXRjaCkge1xuICBjb25zdCBbLCB3ZWVrZGF5U3RyLCBkYXlTdHIsIG1vbnRoU3RyLCB5ZWFyU3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0cl0gPSBtYXRjaCxcbiAgICByZXN1bHQgPSBmcm9tU3RyaW5ncyh3ZWVrZGF5U3RyLCB5ZWFyU3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0cik7XG4gIHJldHVybiBbcmVzdWx0LCBGaXhlZE9mZnNldFpvbmUudXRjSW5zdGFuY2VdO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0QVNDSUkobWF0Y2gpIHtcbiAgY29uc3QgWywgd2Vla2RheVN0ciwgbW9udGhTdHIsIGRheVN0ciwgaG91clN0ciwgbWludXRlU3RyLCBzZWNvbmRTdHIsIHllYXJTdHJdID0gbWF0Y2gsXG4gICAgcmVzdWx0ID0gZnJvbVN0cmluZ3Mod2Vla2RheVN0ciwgeWVhclN0ciwgbW9udGhTdHIsIGRheVN0ciwgaG91clN0ciwgbWludXRlU3RyLCBzZWNvbmRTdHIpO1xuICByZXR1cm4gW3Jlc3VsdCwgRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlXTtcbn1cblxuY29uc3QgaXNvWW1kV2l0aFRpbWVFeHRlbnNpb25SZWdleCA9IGNvbWJpbmVSZWdleGVzKGlzb1ltZFJlZ2V4LCBpc29UaW1lRXh0ZW5zaW9uUmVnZXgpO1xuY29uc3QgaXNvV2Vla1dpdGhUaW1lRXh0ZW5zaW9uUmVnZXggPSBjb21iaW5lUmVnZXhlcyhpc29XZWVrUmVnZXgsIGlzb1RpbWVFeHRlbnNpb25SZWdleCk7XG5jb25zdCBpc29PcmRpbmFsV2l0aFRpbWVFeHRlbnNpb25SZWdleCA9IGNvbWJpbmVSZWdleGVzKGlzb09yZGluYWxSZWdleCwgaXNvVGltZUV4dGVuc2lvblJlZ2V4KTtcbmNvbnN0IGlzb1RpbWVDb21iaW5lZFJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoaXNvVGltZVJlZ2V4KTtcblxuY29uc3QgZXh0cmFjdElTT1ltZFRpbWVBbmRPZmZzZXQgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT1ltZCxcbiAgZXh0cmFjdElTT1RpbWUsXG4gIGV4dHJhY3RJU09PZmZzZXRcbik7XG5jb25zdCBleHRyYWN0SVNPV2Vla1RpbWVBbmRPZmZzZXQgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT1dlZWtEYXRhLFxuICBleHRyYWN0SVNPVGltZSxcbiAgZXh0cmFjdElTT09mZnNldFxuKTtcbmNvbnN0IGV4dHJhY3RJU09PcmRpbmFsRGF0ZUFuZFRpbWUgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT09yZGluYWxEYXRhLFxuICBleHRyYWN0SVNPVGltZSxcbiAgZXh0cmFjdElTT09mZnNldFxuKTtcbmNvbnN0IGV4dHJhY3RJU09UaW1lQW5kT2Zmc2V0ID0gY29tYmluZUV4dHJhY3RvcnMoZXh0cmFjdElTT1RpbWUsIGV4dHJhY3RJU09PZmZzZXQpO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSVNPRGF0ZShzKSB7XG4gIHJldHVybiBwYXJzZShcbiAgICBzLFxuICAgIFtpc29ZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4LCBleHRyYWN0SVNPWW1kVGltZUFuZE9mZnNldF0sXG4gICAgW2lzb1dlZWtXaXRoVGltZUV4dGVuc2lvblJlZ2V4LCBleHRyYWN0SVNPV2Vla1RpbWVBbmRPZmZzZXRdLFxuICAgIFtpc29PcmRpbmFsV2l0aFRpbWVFeHRlbnNpb25SZWdleCwgZXh0cmFjdElTT09yZGluYWxEYXRlQW5kVGltZV0sXG4gICAgW2lzb1RpbWVDb21iaW5lZFJlZ2V4LCBleHRyYWN0SVNPVGltZUFuZE9mZnNldF1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUkZDMjgyMkRhdGUocykge1xuICByZXR1cm4gcGFyc2UocHJlcHJvY2Vzc1JGQzI4MjIocyksIFtyZmMyODIyLCBleHRyYWN0UkZDMjgyMl0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VIVFRQRGF0ZShzKSB7XG4gIHJldHVybiBwYXJzZShcbiAgICBzLFxuICAgIFtyZmMxMTIzLCBleHRyYWN0UkZDMTEyM09yODUwXSxcbiAgICBbcmZjODUwLCBleHRyYWN0UkZDMTEyM09yODUwXSxcbiAgICBbYXNjaWksIGV4dHJhY3RBU0NJSV1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSVNPRHVyYXRpb24ocykge1xuICByZXR1cm4gcGFyc2UocywgW2lzb0R1cmF0aW9uLCBleHRyYWN0SVNPRHVyYXRpb25dKTtcbn1cblxuY29uc3QgZXh0cmFjdElTT1RpbWVPbmx5ID0gY29tYmluZUV4dHJhY3RvcnMoZXh0cmFjdElTT1RpbWUpO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJU09UaW1lT25seShzKSB7XG4gIHJldHVybiBwYXJzZShzLCBbaXNvVGltZU9ubHksIGV4dHJhY3RJU09UaW1lT25seV0pO1xufVxuXG5jb25zdCBzcWxZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoc3FsWW1kUmVnZXgsIHNxbFRpbWVFeHRlbnNpb25SZWdleCk7XG5jb25zdCBzcWxUaW1lQ29tYmluZWRSZWdleCA9IGNvbWJpbmVSZWdleGVzKHNxbFRpbWVSZWdleCk7XG5cbmNvbnN0IGV4dHJhY3RJU09ZbWRUaW1lT2Zmc2V0QW5kSUFOQVpvbmUgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT1ltZCxcbiAgZXh0cmFjdElTT1RpbWUsXG4gIGV4dHJhY3RJU09PZmZzZXQsXG4gIGV4dHJhY3RJQU5BWm9uZVxuKTtcbmNvbnN0IGV4dHJhY3RJU09UaW1lT2Zmc2V0QW5kSUFOQVpvbmUgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT1RpbWUsXG4gIGV4dHJhY3RJU09PZmZzZXQsXG4gIGV4dHJhY3RJQU5BWm9uZVxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU1FMKHMpIHtcbiAgcmV0dXJuIHBhcnNlKFxuICAgIHMsXG4gICAgW3NxbFltZFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXgsIGV4dHJhY3RJU09ZbWRUaW1lT2Zmc2V0QW5kSUFOQVpvbmVdLFxuICAgIFtzcWxUaW1lQ29tYmluZWRSZWdleCwgZXh0cmFjdElTT1RpbWVPZmZzZXRBbmRJQU5BWm9uZV1cbiAgKTtcbn1cbiIsICJpbXBvcnQgeyBJbnZhbGlkQXJndW1lbnRFcnJvciwgSW52YWxpZER1cmF0aW9uRXJyb3IsIEludmFsaWRVbml0RXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMuanNcIjtcbmltcG9ydCBGb3JtYXR0ZXIgZnJvbSBcIi4vaW1wbC9mb3JtYXR0ZXIuanNcIjtcbmltcG9ydCBJbnZhbGlkIGZyb20gXCIuL2ltcGwvaW52YWxpZC5qc1wiO1xuaW1wb3J0IExvY2FsZSBmcm9tIFwiLi9pbXBsL2xvY2FsZS5qc1wiO1xuaW1wb3J0IHsgcGFyc2VJU09EdXJhdGlvbiwgcGFyc2VJU09UaW1lT25seSB9IGZyb20gXCIuL2ltcGwvcmVnZXhQYXJzZXIuanNcIjtcbmltcG9ydCB7XG4gIGFzTnVtYmVyLFxuICBoYXNPd25Qcm9wZXJ0eSxcbiAgaXNJbnRlZ2VyLFxuICBpc051bWJlcixcbiAgaXNVbmRlZmluZWQsXG4gIG5vcm1hbGl6ZU9iamVjdCxcbiAgcm91bmRUbyxcbn0gZnJvbSBcIi4vaW1wbC91dGlsLmpzXCI7XG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3MuanNcIjtcblxuY29uc3QgSU5WQUxJRCA9IFwiSW52YWxpZCBEdXJhdGlvblwiO1xuXG4vLyB1bml0IGNvbnZlcnNpb24gY29uc3RhbnRzXG5leHBvcnQgY29uc3QgbG93T3JkZXJNYXRyaXggPSB7XG4gICAgd2Vla3M6IHtcbiAgICAgIGRheXM6IDcsXG4gICAgICBob3VyczogNyAqIDI0LFxuICAgICAgbWludXRlczogNyAqIDI0ICogNjAsXG4gICAgICBzZWNvbmRzOiA3ICogMjQgKiA2MCAqIDYwLFxuICAgICAgbWlsbGlzZWNvbmRzOiA3ICogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgICB9LFxuICAgIGRheXM6IHtcbiAgICAgIGhvdXJzOiAyNCxcbiAgICAgIG1pbnV0ZXM6IDI0ICogNjAsXG4gICAgICBzZWNvbmRzOiAyNCAqIDYwICogNjAsXG4gICAgICBtaWxsaXNlY29uZHM6IDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gICAgfSxcbiAgICBob3VyczogeyBtaW51dGVzOiA2MCwgc2Vjb25kczogNjAgKiA2MCwgbWlsbGlzZWNvbmRzOiA2MCAqIDYwICogMTAwMCB9LFxuICAgIG1pbnV0ZXM6IHsgc2Vjb25kczogNjAsIG1pbGxpc2Vjb25kczogNjAgKiAxMDAwIH0sXG4gICAgc2Vjb25kczogeyBtaWxsaXNlY29uZHM6IDEwMDAgfSxcbiAgfSxcbiAgY2FzdWFsTWF0cml4ID0ge1xuICAgIHllYXJzOiB7XG4gICAgICBxdWFydGVyczogNCxcbiAgICAgIG1vbnRoczogMTIsXG4gICAgICB3ZWVrczogNTIsXG4gICAgICBkYXlzOiAzNjUsXG4gICAgICBob3VyczogMzY1ICogMjQsXG4gICAgICBtaW51dGVzOiAzNjUgKiAyNCAqIDYwLFxuICAgICAgc2Vjb25kczogMzY1ICogMjQgKiA2MCAqIDYwLFxuICAgICAgbWlsbGlzZWNvbmRzOiAzNjUgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgIH0sXG4gICAgcXVhcnRlcnM6IHtcbiAgICAgIG1vbnRoczogMyxcbiAgICAgIHdlZWtzOiAxMyxcbiAgICAgIGRheXM6IDkxLFxuICAgICAgaG91cnM6IDkxICogMjQsXG4gICAgICBtaW51dGVzOiA5MSAqIDI0ICogNjAsXG4gICAgICBzZWNvbmRzOiA5MSAqIDI0ICogNjAgKiA2MCxcbiAgICAgIG1pbGxpc2Vjb25kczogOTEgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgIH0sXG4gICAgbW9udGhzOiB7XG4gICAgICB3ZWVrczogNCxcbiAgICAgIGRheXM6IDMwLFxuICAgICAgaG91cnM6IDMwICogMjQsXG4gICAgICBtaW51dGVzOiAzMCAqIDI0ICogNjAsXG4gICAgICBzZWNvbmRzOiAzMCAqIDI0ICogNjAgKiA2MCxcbiAgICAgIG1pbGxpc2Vjb25kczogMzAgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgIH0sXG5cbiAgICAuLi5sb3dPcmRlck1hdHJpeCxcbiAgfSxcbiAgZGF5c0luWWVhckFjY3VyYXRlID0gMTQ2MDk3LjAgLyA0MDAsXG4gIGRheXNJbk1vbnRoQWNjdXJhdGUgPSAxNDYwOTcuMCAvIDQ4MDAsXG4gIGFjY3VyYXRlTWF0cml4ID0ge1xuICAgIHllYXJzOiB7XG4gICAgICBxdWFydGVyczogNCxcbiAgICAgIG1vbnRoczogMTIsXG4gICAgICB3ZWVrczogZGF5c0luWWVhckFjY3VyYXRlIC8gNyxcbiAgICAgIGRheXM6IGRheXNJblllYXJBY2N1cmF0ZSxcbiAgICAgIGhvdXJzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCxcbiAgICAgIG1pbnV0ZXM6IGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjAsXG4gICAgICBzZWNvbmRzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwICogNjAsXG4gICAgICBtaWxsaXNlY29uZHM6IGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gICAgfSxcbiAgICBxdWFydGVyczoge1xuICAgICAgbW9udGhzOiAzLFxuICAgICAgd2Vla3M6IGRheXNJblllYXJBY2N1cmF0ZSAvIDI4LFxuICAgICAgZGF5czogZGF5c0luWWVhckFjY3VyYXRlIC8gNCxcbiAgICAgIGhvdXJzOiAoZGF5c0luWWVhckFjY3VyYXRlICogMjQpIC8gNCxcbiAgICAgIG1pbnV0ZXM6IChkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwKSAvIDQsXG4gICAgICBzZWNvbmRzOiAoZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCAqIDYwKSAvIDQsXG4gICAgICBtaWxsaXNlY29uZHM6IChkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwICogNjAgKiAxMDAwKSAvIDQsXG4gICAgfSxcbiAgICBtb250aHM6IHtcbiAgICAgIHdlZWtzOiBkYXlzSW5Nb250aEFjY3VyYXRlIC8gNyxcbiAgICAgIGRheXM6IGRheXNJbk1vbnRoQWNjdXJhdGUsXG4gICAgICBob3VyczogZGF5c0luTW9udGhBY2N1cmF0ZSAqIDI0LFxuICAgICAgbWludXRlczogZGF5c0luTW9udGhBY2N1cmF0ZSAqIDI0ICogNjAsXG4gICAgICBzZWNvbmRzOiBkYXlzSW5Nb250aEFjY3VyYXRlICogMjQgKiA2MCAqIDYwLFxuICAgICAgbWlsbGlzZWNvbmRzOiBkYXlzSW5Nb250aEFjY3VyYXRlICogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgICB9LFxuICAgIC4uLmxvd09yZGVyTWF0cml4LFxuICB9O1xuXG4vLyB1bml0cyBvcmRlcmVkIGJ5IHNpemVcbmNvbnN0IG9yZGVyZWRVbml0cyA9IFtcbiAgXCJ5ZWFyc1wiLFxuICBcInF1YXJ0ZXJzXCIsXG4gIFwibW9udGhzXCIsXG4gIFwid2Vla3NcIixcbiAgXCJkYXlzXCIsXG4gIFwiaG91cnNcIixcbiAgXCJtaW51dGVzXCIsXG4gIFwic2Vjb25kc1wiLFxuICBcIm1pbGxpc2Vjb25kc1wiLFxuXTtcblxuY29uc3QgcmV2ZXJzZVVuaXRzID0gb3JkZXJlZFVuaXRzLnNsaWNlKDApLnJldmVyc2UoKTtcblxuLy8gY2xvbmUgcmVhbGx5IG1lYW5zIFwiY3JlYXRlIGFub3RoZXIgaW5zdGFuY2UganVzdCBsaWtlIHRoaXMgb25lLCBidXQgd2l0aCB0aGVzZSBjaGFuZ2VzXCJcbmZ1bmN0aW9uIGNsb25lKGR1ciwgYWx0cywgY2xlYXIgPSBmYWxzZSkge1xuICAvLyBkZWVwIG1lcmdlIGZvciB2YWxzXG4gIGNvbnN0IGNvbmYgPSB7XG4gICAgdmFsdWVzOiBjbGVhciA/IGFsdHMudmFsdWVzIDogeyAuLi5kdXIudmFsdWVzLCAuLi4oYWx0cy52YWx1ZXMgfHwge30pIH0sXG4gICAgbG9jOiBkdXIubG9jLmNsb25lKGFsdHMubG9jKSxcbiAgICBjb252ZXJzaW9uQWNjdXJhY3k6IGFsdHMuY29udmVyc2lvbkFjY3VyYWN5IHx8IGR1ci5jb252ZXJzaW9uQWNjdXJhY3ksXG4gIH07XG4gIHJldHVybiBuZXcgRHVyYXRpb24oY29uZik7XG59XG5cbmZ1bmN0aW9uIGFudGlUcnVuYyhuKSB7XG4gIHJldHVybiBuIDwgMCA/IE1hdGguZmxvb3IobikgOiBNYXRoLmNlaWwobik7XG59XG5cbi8vIE5COiBtdXRhdGVzIHBhcmFtZXRlcnNcbmZ1bmN0aW9uIGNvbnZlcnQobWF0cml4LCBmcm9tTWFwLCBmcm9tVW5pdCwgdG9NYXAsIHRvVW5pdCkge1xuICBjb25zdCBjb252ID0gbWF0cml4W3RvVW5pdF1bZnJvbVVuaXRdLFxuICAgIHJhdyA9IGZyb21NYXBbZnJvbVVuaXRdIC8gY29udixcbiAgICBzYW1lU2lnbiA9IE1hdGguc2lnbihyYXcpID09PSBNYXRoLnNpZ24odG9NYXBbdG9Vbml0XSksXG4gICAgLy8gb2ssIHNvIHRoaXMgaXMgd2lsZCwgYnV0IHNlZSB0aGUgbWF0cml4IGluIHRoZSB0ZXN0c1xuICAgIGFkZGVkID1cbiAgICAgICFzYW1lU2lnbiAmJiB0b01hcFt0b1VuaXRdICE9PSAwICYmIE1hdGguYWJzKHJhdykgPD0gMSA/IGFudGlUcnVuYyhyYXcpIDogTWF0aC50cnVuYyhyYXcpO1xuICB0b01hcFt0b1VuaXRdICs9IGFkZGVkO1xuICBmcm9tTWFwW2Zyb21Vbml0XSAtPSBhZGRlZCAqIGNvbnY7XG59XG5cbi8vIE5COiBtdXRhdGVzIHBhcmFtZXRlcnNcbmZ1bmN0aW9uIG5vcm1hbGl6ZVZhbHVlcyhtYXRyaXgsIHZhbHMpIHtcbiAgcmV2ZXJzZVVuaXRzLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHtcbiAgICBpZiAoIWlzVW5kZWZpbmVkKHZhbHNbY3VycmVudF0pKSB7XG4gICAgICBpZiAocHJldmlvdXMpIHtcbiAgICAgICAgY29udmVydChtYXRyaXgsIHZhbHMsIHByZXZpb3VzLCB2YWxzLCBjdXJyZW50KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjdXJyZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcHJldmlvdXM7XG4gICAgfVxuICB9LCBudWxsKTtcbn1cblxuLyoqXG4gKiBBIER1cmF0aW9uIG9iamVjdCByZXByZXNlbnRzIGEgcGVyaW9kIG9mIHRpbWUsIGxpa2UgXCIyIG1vbnRoc1wiIG9yIFwiMSBkYXksIDEgaG91clwiLiBDb25jZXB0dWFsbHksIGl0J3MganVzdCBhIG1hcCBvZiB1bml0cyB0byB0aGVpciBxdWFudGl0aWVzLCBhY2NvbXBhbmllZCBieSBzb21lIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBhbmQgbWV0aG9kcyBmb3IgY3JlYXRpbmcsIHBhcnNpbmcsIGludGVycm9nYXRpbmcsIHRyYW5zZm9ybWluZywgYW5kIGZvcm1hdHRpbmcgdGhlbS4gVGhleSBjYW4gYmUgdXNlZCBvbiB0aGVpciBvd24gb3IgaW4gY29uanVuY3Rpb24gd2l0aCBvdGhlciBMdXhvbiB0eXBlczsgZm9yIGV4YW1wbGUsIHlvdSBjYW4gdXNlIHtAbGluayBEYXRlVGltZSNwbHVzfSB0byBhZGQgYSBEdXJhdGlvbiBvYmplY3QgdG8gYSBEYXRlVGltZSwgcHJvZHVjaW5nIGFub3RoZXIgRGF0ZVRpbWUuXG4gKlxuICogSGVyZSBpcyBhIGJyaWVmIG92ZXJ2aWV3IG9mIGNvbW1vbmx5IHVzZWQgbWV0aG9kcyBhbmQgZ2V0dGVycyBpbiBEdXJhdGlvbjpcbiAqXG4gKiAqICoqQ3JlYXRpb24qKiBUbyBjcmVhdGUgYSBEdXJhdGlvbiwgdXNlIHtAbGluayBEdXJhdGlvbiNmcm9tTWlsbGlzfSwge0BsaW5rIER1cmF0aW9uI2Zyb21PYmplY3R9LCBvciB7QGxpbmsgRHVyYXRpb24jZnJvbUlTT30uXG4gKiAqICoqVW5pdCB2YWx1ZXMqKiBTZWUgdGhlIHtAbGluayBEdXJhdGlvbiN5ZWFyc30sIHtAbGluayBEdXJhdGlvbi5tb250aHN9LCB7QGxpbmsgRHVyYXRpb24jd2Vla3N9LCB7QGxpbmsgRHVyYXRpb24jZGF5c30sIHtAbGluayBEdXJhdGlvbiNob3Vyc30sIHtAbGluayBEdXJhdGlvbiNtaW51dGVzfSwge0BsaW5rIER1cmF0aW9uI3NlY29uZHN9LCB7QGxpbmsgRHVyYXRpb24jbWlsbGlzZWNvbmRzfSBhY2Nlc3NvcnMuXG4gKiAqICoqQ29uZmlndXJhdGlvbioqIFNlZSAge0BsaW5rIER1cmF0aW9uI2xvY2FsZX0gYW5kIHtAbGluayBEdXJhdGlvbiNudW1iZXJpbmdTeXN0ZW19IGFjY2Vzc29ycy5cbiAqICogKipUcmFuc2Zvcm1hdGlvbioqIFRvIGNyZWF0ZSBuZXcgRHVyYXRpb25zIG91dCBvZiBvbGQgb25lcyB1c2Uge0BsaW5rIER1cmF0aW9uI3BsdXN9LCB7QGxpbmsgRHVyYXRpb24jbWludXN9LCB7QGxpbmsgRHVyYXRpb24jbm9ybWFsaXplfSwge0BsaW5rIER1cmF0aW9uI3NldH0sIHtAbGluayBEdXJhdGlvbiNyZWNvbmZpZ3VyZX0sIHtAbGluayBEdXJhdGlvbiNzaGlmdFRvfSwgYW5kIHtAbGluayBEdXJhdGlvbiNuZWdhdGV9LlxuICogKiAqKk91dHB1dCoqIFRvIGNvbnZlcnQgdGhlIER1cmF0aW9uIGludG8gb3RoZXIgcmVwcmVzZW50YXRpb25zLCBzZWUge0BsaW5rIER1cmF0aW9uI2FzfSwge0BsaW5rIER1cmF0aW9uI3RvSVNPfSwge0BsaW5rIER1cmF0aW9uI3RvRm9ybWF0fSwgYW5kIHtAbGluayBEdXJhdGlvbiN0b0pTT059XG4gKlxuICogVGhlcmUncyBhcmUgbW9yZSBtZXRob2RzIGRvY3VtZW50ZWQgYmVsb3cuIEluIGFkZGl0aW9uLCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBzdWJ0bGVyIHRvcGljcyBsaWtlIGludGVybmF0aW9uYWxpemF0aW9uIGFuZCB2YWxpZGl0eSwgc2VlIHRoZSBleHRlcm5hbCBkb2N1bWVudGF0aW9uLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEdXJhdGlvbiB7XG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29uc3RydWN0b3IoY29uZmlnKSB7XG4gICAgY29uc3QgYWNjdXJhdGUgPSBjb25maWcuY29udmVyc2lvbkFjY3VyYWN5ID09PSBcImxvbmd0ZXJtXCIgfHwgZmFsc2U7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy52YWx1ZXMgPSBjb25maWcudmFsdWVzO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMubG9jID0gY29uZmlnLmxvYyB8fCBMb2NhbGUuY3JlYXRlKCk7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5jb252ZXJzaW9uQWNjdXJhY3kgPSBhY2N1cmF0ZSA/IFwibG9uZ3Rlcm1cIiA6IFwiY2FzdWFsXCI7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5pbnZhbGlkID0gY29uZmlnLmludmFsaWQgfHwgbnVsbDtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLm1hdHJpeCA9IGFjY3VyYXRlID8gYWNjdXJhdGVNYXRyaXggOiBjYXN1YWxNYXRyaXg7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5pc0x1eG9uRHVyYXRpb24gPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBEdXJhdGlvbiBmcm9tIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcy5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGNvdW50IG9mIG1pbGxpc2Vjb25kc1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgZm9yIHBhcnNpbmdcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIHRoZSBsb2NhbGUgdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuY29udmVyc2lvbkFjY3VyYWN5PSdjYXN1YWwnXSAtIHRoZSBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2VcbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBzdGF0aWMgZnJvbU1pbGxpcyhjb3VudCwgb3B0cykge1xuICAgIHJldHVybiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbWlsbGlzZWNvbmRzOiBjb3VudCB9LCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEdXJhdGlvbiBmcm9tIGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCBrZXlzIGxpa2UgJ3llYXJzJyBhbmQgJ2hvdXJzJy5cbiAgICogSWYgdGhpcyBvYmplY3QgaXMgZW1wdHkgdGhlbiBhIHplcm8gbWlsbGlzZWNvbmRzIGR1cmF0aW9uIGlzIHJldHVybmVkLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqIC0gdGhlIG9iamVjdCB0byBjcmVhdGUgdGhlIERhdGVUaW1lIGZyb21cbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai55ZWFyc1xuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLnF1YXJ0ZXJzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubW9udGhzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoud2Vla3NcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5kYXlzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmouaG91cnNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5taW51dGVzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmouc2Vjb25kc1xuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1pbGxpc2Vjb25kc1xuICAgKiBAcGFyYW0ge09iamVjdH0gW29wdHM9W11dIC0gb3B0aW9ucyBmb3IgY3JlYXRpbmcgdGhpcyBEdXJhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gdGhlIGxvY2FsZSB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHN0YXRpYyBmcm9tT2JqZWN0KG9iaiwgb3B0cyA9IHt9KSB7XG4gICAgaWYgKG9iaiA9PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihcbiAgICAgICAgYER1cmF0aW9uLmZyb21PYmplY3Q6IGFyZ3VtZW50IGV4cGVjdGVkIHRvIGJlIGFuIG9iamVjdCwgZ290ICR7XG4gICAgICAgICAgb2JqID09PSBudWxsID8gXCJudWxsXCIgOiB0eXBlb2Ygb2JqXG4gICAgICAgIH1gXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRHVyYXRpb24oe1xuICAgICAgdmFsdWVzOiBub3JtYWxpemVPYmplY3Qob2JqLCBEdXJhdGlvbi5ub3JtYWxpemVVbml0KSxcbiAgICAgIGxvYzogTG9jYWxlLmZyb21PYmplY3Qob3B0cyksXG4gICAgICBjb252ZXJzaW9uQWNjdXJhY3k6IG9wdHMuY29udmVyc2lvbkFjY3VyYWN5LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIER1cmF0aW9uIGZyb20gRHVyYXRpb25MaWtlLlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdCB8IG51bWJlciB8IER1cmF0aW9ufSBkdXJhdGlvbkxpa2VcbiAgICogT25lIG9mOlxuICAgKiAtIG9iamVjdCB3aXRoIGtleXMgbGlrZSAneWVhcnMnIGFuZCAnaG91cnMnLlxuICAgKiAtIG51bWJlciByZXByZXNlbnRpbmcgbWlsbGlzZWNvbmRzXG4gICAqIC0gRHVyYXRpb24gaW5zdGFuY2VcbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBzdGF0aWMgZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbkxpa2UpIHtcbiAgICBpZiAoaXNOdW1iZXIoZHVyYXRpb25MaWtlKSkge1xuICAgICAgcmV0dXJuIER1cmF0aW9uLmZyb21NaWxsaXMoZHVyYXRpb25MaWtlKTtcbiAgICB9IGVsc2UgaWYgKER1cmF0aW9uLmlzRHVyYXRpb24oZHVyYXRpb25MaWtlKSkge1xuICAgICAgcmV0dXJuIGR1cmF0aW9uTGlrZTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkdXJhdGlvbkxpa2UgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5mcm9tT2JqZWN0KGR1cmF0aW9uTGlrZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihcbiAgICAgICAgYFVua25vd24gZHVyYXRpb24gYXJndW1lbnQgJHtkdXJhdGlvbkxpa2V9IG9mIHR5cGUgJHt0eXBlb2YgZHVyYXRpb25MaWtlfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIER1cmF0aW9uIGZyb20gYW4gSVNPIDg2MDEgZHVyYXRpb24gc3RyaW5nLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRleHQgdG8gcGFyc2VcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIGZvciBwYXJzaW5nXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSB0aGUgbG9jYWxlIHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjRHVyYXRpb25zXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU08oJ1AzWTZNMVc0RFQxMkgzME01UycpLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiAzLCBtb250aHM6IDYsIHdlZWtzOiAxLCBkYXlzOiA0LCBob3VyczogMTIsIG1pbnV0ZXM6IDMwLCBzZWNvbmRzOiA1IH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTTygnUFQyM0gnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMjMgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPKCdQNVkzTScpLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiA1LCBtb250aHM6IDMgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHN0YXRpYyBmcm9tSVNPKHRleHQsIG9wdHMpIHtcbiAgICBjb25zdCBbcGFyc2VkXSA9IHBhcnNlSVNPRHVyYXRpb24odGV4dCk7XG4gICAgaWYgKHBhcnNlZCkge1xuICAgICAgcmV0dXJuIER1cmF0aW9uLmZyb21PYmplY3QocGFyc2VkLCBvcHRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIER1cmF0aW9uLmludmFsaWQoXCJ1bnBhcnNhYmxlXCIsIGB0aGUgaW5wdXQgXCIke3RleHR9XCIgY2FuJ3QgYmUgcGFyc2VkIGFzIElTTyA4NjAxYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIER1cmF0aW9uIGZyb20gYW4gSVNPIDg2MDEgdGltZSBzdHJpbmcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGV4dCB0byBwYXJzZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgZm9yIHBhcnNpbmdcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIHRoZSBsb2NhbGUgdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuY29udmVyc2lvbkFjY3VyYWN5PSdjYXN1YWwnXSAtIHRoZSBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2VcbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lc1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnMTE6MjI6MzMuNDQ0JykudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDExLCBtaW51dGVzOiAyMiwgc2Vjb25kczogMzMsIG1pbGxpc2Vjb25kczogNDQ0IH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTT1RpbWUoJzExOjAwJykudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDExLCBtaW51dGVzOiAwLCBzZWNvbmRzOiAwIH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTT1RpbWUoJ1QxMTowMCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMCwgc2Vjb25kczogMCB9XG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU09UaW1lKCcxMTAwJykudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDExLCBtaW51dGVzOiAwLCBzZWNvbmRzOiAwIH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTT1RpbWUoJ1QxMTAwJykudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDExLCBtaW51dGVzOiAwLCBzZWNvbmRzOiAwIH1cbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBzdGF0aWMgZnJvbUlTT1RpbWUodGV4dCwgb3B0cykge1xuICAgIGNvbnN0IFtwYXJzZWRdID0gcGFyc2VJU09UaW1lT25seSh0ZXh0KTtcbiAgICBpZiAocGFyc2VkKSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU9iamVjdChwYXJzZWQsIG9wdHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uaW52YWxpZChcInVucGFyc2FibGVcIiwgYHRoZSBpbnB1dCBcIiR7dGV4dH1cIiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDFgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGludmFsaWQgRHVyYXRpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb24gLSBzaW1wbGUgc3RyaW5nIG9mIHdoeSB0aGlzIGRhdGV0aW1lIGlzIGludmFsaWQuIFNob3VsZCBub3QgY29udGFpbiBwYXJhbWV0ZXJzIG9yIGFueXRoaW5nIGVsc2UgZGF0YS1kZXBlbmRlbnRcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtleHBsYW5hdGlvbj1udWxsXSAtIGxvbmdlciBleHBsYW5hdGlvbiwgbWF5IGluY2x1ZGUgcGFyYW1ldGVycyBhbmQgb3RoZXIgdXNlZnVsIGRlYnVnZ2luZyBpbmZvcm1hdGlvblxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHN0YXRpYyBpbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24gPSBudWxsKSB7XG4gICAgaWYgKCFyZWFzb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihcIm5lZWQgdG8gc3BlY2lmeSBhIHJlYXNvbiB0aGUgRHVyYXRpb24gaXMgaW52YWxpZFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnZhbGlkID0gcmVhc29uIGluc3RhbmNlb2YgSW52YWxpZCA/IHJlYXNvbiA6IG5ldyBJbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24pO1xuXG4gICAgaWYgKFNldHRpbmdzLnRocm93T25JbnZhbGlkKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZER1cmF0aW9uRXJyb3IoaW52YWxpZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgRHVyYXRpb24oeyBpbnZhbGlkIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgc3RhdGljIG5vcm1hbGl6ZVVuaXQodW5pdCkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB7XG4gICAgICB5ZWFyOiBcInllYXJzXCIsXG4gICAgICB5ZWFyczogXCJ5ZWFyc1wiLFxuICAgICAgcXVhcnRlcjogXCJxdWFydGVyc1wiLFxuICAgICAgcXVhcnRlcnM6IFwicXVhcnRlcnNcIixcbiAgICAgIG1vbnRoOiBcIm1vbnRoc1wiLFxuICAgICAgbW9udGhzOiBcIm1vbnRoc1wiLFxuICAgICAgd2VlazogXCJ3ZWVrc1wiLFxuICAgICAgd2Vla3M6IFwid2Vla3NcIixcbiAgICAgIGRheTogXCJkYXlzXCIsXG4gICAgICBkYXlzOiBcImRheXNcIixcbiAgICAgIGhvdXI6IFwiaG91cnNcIixcbiAgICAgIGhvdXJzOiBcImhvdXJzXCIsXG4gICAgICBtaW51dGU6IFwibWludXRlc1wiLFxuICAgICAgbWludXRlczogXCJtaW51dGVzXCIsXG4gICAgICBzZWNvbmQ6IFwic2Vjb25kc1wiLFxuICAgICAgc2Vjb25kczogXCJzZWNvbmRzXCIsXG4gICAgICBtaWxsaXNlY29uZDogXCJtaWxsaXNlY29uZHNcIixcbiAgICAgIG1pbGxpc2Vjb25kczogXCJtaWxsaXNlY29uZHNcIixcbiAgICB9W3VuaXQgPyB1bml0LnRvTG93ZXJDYXNlKCkgOiB1bml0XTtcblxuICAgIGlmICghbm9ybWFsaXplZCkgdGhyb3cgbmV3IEludmFsaWRVbml0RXJyb3IodW5pdCk7XG5cbiAgICByZXR1cm4gbm9ybWFsaXplZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBvYmplY3QgaXMgYSBEdXJhdGlvbi4gV29ya3MgYWNyb3NzIGNvbnRleHQgYm91bmRhcmllc1xuICAgKiBAcGFyYW0ge29iamVjdH0gb1xuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgc3RhdGljIGlzRHVyYXRpb24obykge1xuICAgIHJldHVybiAobyAmJiBvLmlzTHV4b25EdXJhdGlvbikgfHwgZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogR2V0ICB0aGUgbG9jYWxlIG9mIGEgRHVyYXRpb24sIHN1Y2ggJ2VuLUdCJ1xuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IGxvY2FsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2MubG9jYWxlIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG51bWJlcmluZyBzeXN0ZW0gb2YgYSBEdXJhdGlvbiwgc3VjaCAnYmVuZycuIFRoZSBudW1iZXJpbmcgc3lzdGVtIGlzIHVzZWQgd2hlbiBmb3JtYXR0aW5nIHRoZSBEdXJhdGlvblxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IG51bWJlcmluZ1N5c3RlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2MubnVtYmVyaW5nU3lzdGVtIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRHVyYXRpb24gZm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIGZvcm1hdCBzdHJpbmcuIFlvdSBtYXkgdXNlIHRoZXNlIHRva2VuczpcbiAgICogKiBgU2AgZm9yIG1pbGxpc2Vjb25kc1xuICAgKiAqIGBzYCBmb3Igc2Vjb25kc1xuICAgKiAqIGBtYCBmb3IgbWludXRlc1xuICAgKiAqIGBoYCBmb3IgaG91cnNcbiAgICogKiBgZGAgZm9yIGRheXNcbiAgICogKiBgTWAgZm9yIG1vbnRoc1xuICAgKiAqIGB5YCBmb3IgeWVhcnNcbiAgICogTm90ZXM6XG4gICAqICogQWRkIHBhZGRpbmcgYnkgcmVwZWF0aW5nIHRoZSB0b2tlbiwgZS5nLiBcInl5XCIgcGFkcyB0aGUgeWVhcnMgdG8gdHdvIGRpZ2l0cywgXCJoaGhoXCIgcGFkcyB0aGUgaG91cnMgb3V0IHRvIGZvdXIgZGlnaXRzXG4gICAqICogVGhlIGR1cmF0aW9uIHdpbGwgYmUgY29udmVydGVkIHRvIHRoZSBzZXQgb2YgdW5pdHMgaW4gdGhlIGZvcm1hdCBzdHJpbmcgdXNpbmcge0BsaW5rIER1cmF0aW9uI3NoaWZ0VG99IGFuZCB0aGUgRHVyYXRpb25zJ3MgY29udmVyc2lvbiBhY2N1cmFjeSBzZXR0aW5nLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm10IC0gdGhlIGZvcm1hdCBzdHJpbmdcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuZmxvb3I9dHJ1ZV0gLSBmbG9vciBudW1lcmljYWwgdmFsdWVzXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMSwgZGF5czogNiwgc2Vjb25kczogMiB9KS50b0Zvcm1hdChcInkgZCBzXCIpIC8vPT4gXCIxIDYgMlwiXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMSwgZGF5czogNiwgc2Vjb25kczogMiB9KS50b0Zvcm1hdChcInl5IGRkIHNzc1wiKSAvLz0+IFwiMDEgMDYgMDAyXCJcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0pLnRvRm9ybWF0KFwiTSBTXCIpIC8vPT4gXCIxMiA1MTg0MDIwMDBcIlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0Zvcm1hdChmbXQsIG9wdHMgPSB7fSkge1xuICAgIC8vIHJldmVyc2UtY29tcGF0IHNpbmNlIDEuMjsgd2UgYWx3YXlzIHJvdW5kIGRvd24gbm93LCBuZXZlciB1cCwgYW5kIHdlIGRvIGl0IGJ5IGRlZmF1bHRcbiAgICBjb25zdCBmbXRPcHRzID0ge1xuICAgICAgLi4ub3B0cyxcbiAgICAgIGZsb29yOiBvcHRzLnJvdW5kICE9PSBmYWxzZSAmJiBvcHRzLmZsb29yICE9PSBmYWxzZSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRcbiAgICAgID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYywgZm10T3B0cykuZm9ybWF0RHVyYXRpb25Gcm9tU3RyaW5nKHRoaXMsIGZtdClcbiAgICAgIDogSU5WQUxJRDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgRHVyYXRpb24gd2l0aCBhbGwgdW5pdHMgaW5jbHVkZWRcbiAgICogVG8gbW9kaWZ5IGl0cyBiZWhhdmlvciB1c2UgdGhlIGBsaXN0U3R5bGVgIGFuZCBhbnkgSW50bC5OdW1iZXJGb3JtYXQgb3B0aW9uLCB0aG91Z2ggYHVuaXREaXNwbGF5YCBpcyBlc3BlY2lhbGx5IHJlbGV2YW50LiBTZWUge0BsaW5rIEludGwuTnVtYmVyRm9ybWF0fS5cbiAgICogQHBhcmFtIG9wdHMgLSBPbiBvcHRpb24gb2JqZWN0IHRvIG92ZXJyaWRlIHRoZSBmb3JtYXR0aW5nLiBBY2NlcHRzIHRoZSBzYW1lIGtleXMgYXMgdGhlIG9wdGlvbnMgcGFyYW1ldGVyIG9mIHRoZSBuYXRpdmUgYEludC5OdW1iZXJGb3JtYXRgIGNvbnN0cnVjdG9yLCBhcyB3ZWxsIGFzIGBsaXN0U3R5bGVgLlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBqc1xuICAgKiB2YXIgZHVyID0gRHVyYXRpb24uZnJvbU9iamVjdCh7IGRheXM6IDEsIGhvdXJzOiA1LCBtaW51dGVzOiA2IH0pXG4gICAqIGR1ci50b0h1bWFuKCkgLy89PiAnMSBkYXksIDUgaG91cnMsIDYgbWludXRlcydcbiAgICogZHVyLnRvSHVtYW4oeyBsaXN0U3R5bGU6IFwibG9uZ1wiIH0pIC8vPT4gJzEgZGF5LCA1IGhvdXJzLCBhbmQgNiBtaW51dGVzJ1xuICAgKiBkdXIudG9IdW1hbih7IHVuaXREaXNwbGF5OiBcInNob3J0XCIgfSkgLy89PiAnMSBkYXksIDUgaHIsIDYgbWluJ1xuICAgKiBgYGBcbiAgICovXG4gIHRvSHVtYW4ob3B0cyA9IHt9KSB7XG4gICAgY29uc3QgbCA9IG9yZGVyZWRVbml0c1xuICAgICAgLm1hcCgodW5pdCkgPT4ge1xuICAgICAgICBjb25zdCB2YWwgPSB0aGlzLnZhbHVlc1t1bml0XTtcbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkKHZhbCkpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5sb2NcbiAgICAgICAgICAubnVtYmVyRm9ybWF0dGVyKHsgc3R5bGU6IFwidW5pdFwiLCB1bml0RGlzcGxheTogXCJsb25nXCIsIC4uLm9wdHMsIHVuaXQ6IHVuaXQuc2xpY2UoMCwgLTEpIH0pXG4gICAgICAgICAgLmZvcm1hdCh2YWwpO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKG4pID0+IG4pO1xuXG4gICAgcmV0dXJuIHRoaXMubG9jXG4gICAgICAubGlzdEZvcm1hdHRlcih7IHR5cGU6IFwiY29uanVuY3Rpb25cIiwgc3R5bGU6IG9wdHMubGlzdFN0eWxlIHx8IFwibmFycm93XCIsIC4uLm9wdHMgfSlcbiAgICAgIC5mb3JtYXQobCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIEphdmFTY3JpcHQgb2JqZWN0IHdpdGggdGhpcyBEdXJhdGlvbidzIHZhbHVlcy5cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0pLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH1cbiAgICogQHJldHVybiB7T2JqZWN0fVxuICAgKi9cbiAgdG9PYmplY3QoKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB7fTtcbiAgICByZXR1cm4geyAuLi50aGlzLnZhbHVlcyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uLlxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI0R1cmF0aW9uc1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDMsIHNlY29uZHM6IDQ1IH0pLnRvSVNPKCkgLy89PiAnUDNZVDQ1UydcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogNCwgc2Vjb25kczogNDUgfSkudG9JU08oKSAvLz0+ICdQNE1UNDVTJ1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbW9udGhzOiA1IH0pLnRvSVNPKCkgLy89PiAnUDVNJ1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbWludXRlczogNSB9KS50b0lTTygpIC8vPT4gJ1BUNU0nXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBtaWxsaXNlY29uZHM6IDYgfSkudG9JU08oKSAvLz0+ICdQVDAuMDA2UydcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU08oKSB7XG4gICAgLy8gd2UgY291bGQgdXNlIHRoZSBmb3JtYXR0ZXIsIGJ1dCB0aGlzIGlzIGFuIGVhc2llciB3YXkgdG8gZ2V0IHRoZSBtaW5pbXVtIHN0cmluZ1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gbnVsbDtcblxuICAgIGxldCBzID0gXCJQXCI7XG4gICAgaWYgKHRoaXMueWVhcnMgIT09IDApIHMgKz0gdGhpcy55ZWFycyArIFwiWVwiO1xuICAgIGlmICh0aGlzLm1vbnRocyAhPT0gMCB8fCB0aGlzLnF1YXJ0ZXJzICE9PSAwKSBzICs9IHRoaXMubW9udGhzICsgdGhpcy5xdWFydGVycyAqIDMgKyBcIk1cIjtcbiAgICBpZiAodGhpcy53ZWVrcyAhPT0gMCkgcyArPSB0aGlzLndlZWtzICsgXCJXXCI7XG4gICAgaWYgKHRoaXMuZGF5cyAhPT0gMCkgcyArPSB0aGlzLmRheXMgKyBcIkRcIjtcbiAgICBpZiAodGhpcy5ob3VycyAhPT0gMCB8fCB0aGlzLm1pbnV0ZXMgIT09IDAgfHwgdGhpcy5zZWNvbmRzICE9PSAwIHx8IHRoaXMubWlsbGlzZWNvbmRzICE9PSAwKVxuICAgICAgcyArPSBcIlRcIjtcbiAgICBpZiAodGhpcy5ob3VycyAhPT0gMCkgcyArPSB0aGlzLmhvdXJzICsgXCJIXCI7XG4gICAgaWYgKHRoaXMubWludXRlcyAhPT0gMCkgcyArPSB0aGlzLm1pbnV0ZXMgKyBcIk1cIjtcbiAgICBpZiAodGhpcy5zZWNvbmRzICE9PSAwIHx8IHRoaXMubWlsbGlzZWNvbmRzICE9PSAwKVxuICAgICAgLy8gdGhpcyB3aWxsIGhhbmRsZSBcImZsb2F0aW5nIHBvaW50IG1hZG5lc3NcIiBieSByZW1vdmluZyBleHRyYSBkZWNpbWFsIHBsYWNlc1xuICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTg4MDA0L2lzLWZsb2F0aW5nLXBvaW50LW1hdGgtYnJva2VuXG4gICAgICBzICs9IHJvdW5kVG8odGhpcy5zZWNvbmRzICsgdGhpcy5taWxsaXNlY29uZHMgLyAxMDAwLCAzKSArIFwiU1wiO1xuICAgIGlmIChzID09PSBcIlBcIikgcyArPSBcIlQwU1wiO1xuICAgIHJldHVybiBzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uLCBmb3JtYXR0ZWQgYXMgYSB0aW1lIG9mIGRheS5cbiAgICogTm90ZSB0aGF0IHRoaXMgd2lsbCByZXR1cm4gbnVsbCBpZiB0aGUgZHVyYXRpb24gaXMgaW52YWxpZCwgbmVnYXRpdmUsIG9yIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiAyNCBob3Vycy5cbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lc1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc01pbGxpc2Vjb25kcz1mYWxzZV0gLSBleGNsdWRlIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NTZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZVByZWZpeD1mYWxzZV0gLSBpbmNsdWRlIHRoZSBgVGAgcHJlZml4XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5mb3JtYXQ9J2V4dGVuZGVkJ10gLSBjaG9vc2UgYmV0d2VlbiB0aGUgYmFzaWMgYW5kIGV4dGVuZGVkIGZvcm1hdFxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDExIH0pLnRvSVNPVGltZSgpIC8vPT4gJzExOjAwOjAwLjAwMCdcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoeyBzdXBwcmVzc01pbGxpc2Vjb25kczogdHJ1ZSB9KSAvLz0+ICcxMTowMDowMCdcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoeyBzdXBwcmVzc1NlY29uZHM6IHRydWUgfSkgLy89PiAnMTE6MDAnXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTEgfSkudG9JU09UaW1lKHsgaW5jbHVkZVByZWZpeDogdHJ1ZSB9KSAvLz0+ICdUMTE6MDA6MDAuMDAwJ1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDExIH0pLnRvSVNPVGltZSh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcxMTAwMDAuMDAwJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0lTT1RpbWUob3B0cyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgbWlsbGlzID0gdGhpcy50b01pbGxpcygpO1xuICAgIGlmIChtaWxsaXMgPCAwIHx8IG1pbGxpcyA+PSA4NjQwMDAwMCkgcmV0dXJuIG51bGw7XG5cbiAgICBvcHRzID0ge1xuICAgICAgc3VwcHJlc3NNaWxsaXNlY29uZHM6IGZhbHNlLFxuICAgICAgc3VwcHJlc3NTZWNvbmRzOiBmYWxzZSxcbiAgICAgIGluY2x1ZGVQcmVmaXg6IGZhbHNlLFxuICAgICAgZm9ybWF0OiBcImV4dGVuZGVkXCIsXG4gICAgICAuLi5vcHRzLFxuICAgIH07XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc2hpZnRUbyhcImhvdXJzXCIsIFwibWludXRlc1wiLCBcInNlY29uZHNcIiwgXCJtaWxsaXNlY29uZHNcIik7XG5cbiAgICBsZXQgZm10ID0gb3B0cy5mb3JtYXQgPT09IFwiYmFzaWNcIiA/IFwiaGhtbVwiIDogXCJoaDptbVwiO1xuXG4gICAgaWYgKCFvcHRzLnN1cHByZXNzU2Vjb25kcyB8fCB2YWx1ZS5zZWNvbmRzICE9PSAwIHx8IHZhbHVlLm1pbGxpc2Vjb25kcyAhPT0gMCkge1xuICAgICAgZm10ICs9IG9wdHMuZm9ybWF0ID09PSBcImJhc2ljXCIgPyBcInNzXCIgOiBcIjpzc1wiO1xuICAgICAgaWYgKCFvcHRzLnN1cHByZXNzTWlsbGlzZWNvbmRzIHx8IHZhbHVlLm1pbGxpc2Vjb25kcyAhPT0gMCkge1xuICAgICAgICBmbXQgKz0gXCIuU1NTXCI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IHN0ciA9IHZhbHVlLnRvRm9ybWF0KGZtdCk7XG5cbiAgICBpZiAob3B0cy5pbmNsdWRlUHJlZml4KSB7XG4gICAgICBzdHIgPSBcIlRcIiArIHN0cjtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEdXJhdGlvbiBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIEpTT04uXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy50b0lTTygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEdXJhdGlvbiBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIGRlYnVnZ2luZy5cbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9JU08oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG1pbGxpc2Vjb25kcyB2YWx1ZSBvZiB0aGlzIER1cmF0aW9uLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICB0b01pbGxpcygpIHtcbiAgICByZXR1cm4gdGhpcy5hcyhcIm1pbGxpc2Vjb25kc1wiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG1pbGxpc2Vjb25kcyB2YWx1ZSBvZiB0aGlzIER1cmF0aW9uLiBBbGlhcyBvZiB7QGxpbmsgdG9NaWxsaXN9XG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIHZhbHVlT2YoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9NaWxsaXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIHRoaXMgRHVyYXRpb24gbG9uZ2VyIGJ5IHRoZSBzcGVjaWZpZWQgYW1vdW50LiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi5cbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBhbW91bnQgdG8gYWRkLiBFaXRoZXIgYSBMdXhvbiBEdXJhdGlvbiwgYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLCB0aGUgb2JqZWN0IGFyZ3VtZW50IHRvIER1cmF0aW9uLmZyb21PYmplY3QoKVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHBsdXMoZHVyYXRpb24pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG5cbiAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKSxcbiAgICAgIHJlc3VsdCA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBrIG9mIG9yZGVyZWRVbml0cykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5KGR1ci52YWx1ZXMsIGspIHx8IGhhc093blByb3BlcnR5KHRoaXMudmFsdWVzLCBrKSkge1xuICAgICAgICByZXN1bHRba10gPSBkdXIuZ2V0KGspICsgdGhpcy5nZXQoayk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdmFsdWVzOiByZXN1bHQgfSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSB0aGlzIER1cmF0aW9uIHNob3J0ZXIgYnkgdGhlIHNwZWNpZmllZCBhbW91bnQuIFJldHVybiBhIG5ld2x5LWNvbnN0cnVjdGVkIER1cmF0aW9uLlxuICAgKiBAcGFyYW0ge0R1cmF0aW9ufE9iamVjdHxudW1iZXJ9IGR1cmF0aW9uIC0gVGhlIGFtb3VudCB0byBzdWJ0cmFjdC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KClcbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBtaW51cyhkdXJhdGlvbikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcblxuICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pO1xuICAgIHJldHVybiB0aGlzLnBsdXMoZHVyLm5lZ2F0ZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY2FsZSB0aGlzIER1cmF0aW9uIGJ5IHRoZSBzcGVjaWZpZWQgYW1vdW50LiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi5cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgdG8gZWFjaCB1bml0LiBBcml0eSBpcyAxIG9yIDI6IHRoZSB2YWx1ZSBvZiB0aGUgdW5pdCBhbmQsIG9wdGlvbmFsbHksIHRoZSB1bml0IG5hbWUuIE11c3QgcmV0dXJuIGEgbnVtYmVyLlxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEsIG1pbnV0ZXM6IDMwIH0pLm1hcFVuaXRzKHggPT4geCAqIDIpIC8vPT4geyBob3VyczogMiwgbWludXRlczogNjAgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEsIG1pbnV0ZXM6IDMwIH0pLm1hcFVuaXRzKCh4LCB1KSA9PiB1ID09PSBcImhvdXJcIiA/IHggKiAyIDogeCkgLy89PiB7IGhvdXJzOiAyLCBtaW51dGVzOiAzMCB9XG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgbWFwVW5pdHMoZm4pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBrIG9mIE9iamVjdC5rZXlzKHRoaXMudmFsdWVzKSkge1xuICAgICAgcmVzdWx0W2tdID0gYXNOdW1iZXIoZm4odGhpcy52YWx1ZXNba10sIGspKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdmFsdWVzOiByZXN1bHQgfSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB2YWx1ZSBvZiB1bml0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIGEgdW5pdCBzdWNoIGFzICdtaW51dGUnIG9yICdkYXknXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3Qoe3llYXJzOiAyLCBkYXlzOiAzfSkuZ2V0KCd5ZWFycycpIC8vPT4gMlxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMiwgZGF5czogM30pLmdldCgnbW9udGhzJykgLy89PiAwXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3Qoe3llYXJzOiAyLCBkYXlzOiAzfSkuZ2V0KCdkYXlzJykgLy89PiAzXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGdldCh1bml0KSB7XG4gICAgcmV0dXJuIHRoaXNbRHVyYXRpb24ubm9ybWFsaXplVW5pdCh1bml0KV07XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGUgdmFsdWVzIG9mIHNwZWNpZmllZCB1bml0cy4gUmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgRHVyYXRpb24uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZXMgLSBhIG1hcHBpbmcgb2YgdW5pdHMgdG8gbnVtYmVyc1xuICAgKiBAZXhhbXBsZSBkdXIuc2V0KHsgeWVhcnM6IDIwMTcgfSlcbiAgICogQGV4YW1wbGUgZHVyLnNldCh7IGhvdXJzOiA4LCBtaW51dGVzOiAzMCB9KVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHNldCh2YWx1ZXMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG5cbiAgICBjb25zdCBtaXhlZCA9IHsgLi4udGhpcy52YWx1ZXMsIC4uLm5vcm1hbGl6ZU9iamVjdCh2YWx1ZXMsIER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQpIH07XG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdmFsdWVzOiBtaXhlZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBsb2NhbGUgYW5kL29yIG51bWJlcmluZ1N5c3RlbS4gIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi5cbiAgICogQGV4YW1wbGUgZHVyLnJlY29uZmlndXJlKHsgbG9jYWxlOiAnZW4tR0InIH0pXG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgcmVjb25maWd1cmUoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgY29udmVyc2lvbkFjY3VyYWN5IH0gPSB7fSkge1xuICAgIGNvbnN0IGxvYyA9IHRoaXMubG9jLmNsb25lKHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0gfSksXG4gICAgICBvcHRzID0geyBsb2MgfTtcblxuICAgIGlmIChjb252ZXJzaW9uQWNjdXJhY3kpIHtcbiAgICAgIG9wdHMuY29udmVyc2lvbkFjY3VyYWN5ID0gY29udmVyc2lvbkFjY3VyYWN5O1xuICAgIH1cblxuICAgIHJldHVybiBjbG9uZSh0aGlzLCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgZHVyYXRpb24gaW4gdGhlIHNwZWNpZmllZCB1bml0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIGEgdW5pdCBzdWNoIGFzICdtaW51dGVzJyBvciAnZGF5cydcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7eWVhcnM6IDF9KS5hcygnZGF5cycpIC8vPT4gMzY1XG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3Qoe3llYXJzOiAxfSkuYXMoJ21vbnRocycpIC8vPT4gMTJcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7aG91cnM6IDYwfSkuYXMoJ2RheXMnKSAvLz0+IDIuNVxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBhcyh1bml0KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuc2hpZnRUbyh1bml0KS5nZXQodW5pdCkgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogUmVkdWNlIHRoaXMgRHVyYXRpb24gdG8gaXRzIGNhbm9uaWNhbCByZXByZXNlbnRhdGlvbiBpbiBpdHMgY3VycmVudCB1bml0cy5cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAyLCBkYXlzOiA1MDAwIH0pLm5vcm1hbGl6ZSgpLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiAxNSwgZGF5czogMjU1IH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMiwgbWludXRlczogLTQ1IH0pLm5vcm1hbGl6ZSgpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMTUgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIG5vcm1hbGl6ZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgdmFscyA9IHRoaXMudG9PYmplY3QoKTtcbiAgICBub3JtYWxpemVWYWx1ZXModGhpcy5tYXRyaXgsIHZhbHMpO1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHZhbHVlczogdmFscyB9LCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IHRoaXMgRHVyYXRpb24gaW50byBpdHMgcmVwcmVzZW50YXRpb24gaW4gYSBkaWZmZXJlbnQgc2V0IG9mIHVuaXRzLlxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEsIHNlY29uZHM6IDMwIH0pLnNoaWZ0VG8oJ21pbnV0ZXMnLCAnbWlsbGlzZWNvbmRzJykudG9PYmplY3QoKSAvLz0+IHsgbWludXRlczogNjAsIG1pbGxpc2Vjb25kczogMzAwMDAgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHNoaWZ0VG8oLi4udW5pdHMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG5cbiAgICBpZiAodW5pdHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB1bml0cyA9IHVuaXRzLm1hcCgodSkgPT4gRHVyYXRpb24ubm9ybWFsaXplVW5pdCh1KSk7XG5cbiAgICBjb25zdCBidWlsdCA9IHt9LFxuICAgICAgYWNjdW11bGF0ZWQgPSB7fSxcbiAgICAgIHZhbHMgPSB0aGlzLnRvT2JqZWN0KCk7XG4gICAgbGV0IGxhc3RVbml0O1xuXG4gICAgZm9yIChjb25zdCBrIG9mIG9yZGVyZWRVbml0cykge1xuICAgICAgaWYgKHVuaXRzLmluZGV4T2YoaykgPj0gMCkge1xuICAgICAgICBsYXN0VW5pdCA9IGs7XG5cbiAgICAgICAgbGV0IG93biA9IDA7XG5cbiAgICAgICAgLy8gYW55dGhpbmcgd2UgaGF2ZW4ndCBib2lsZWQgZG93biB5ZXQgc2hvdWxkIGdldCBib2lsZWQgdG8gdGhpcyB1bml0XG4gICAgICAgIGZvciAoY29uc3QgYWsgaW4gYWNjdW11bGF0ZWQpIHtcbiAgICAgICAgICBvd24gKz0gdGhpcy5tYXRyaXhbYWtdW2tdICogYWNjdW11bGF0ZWRbYWtdO1xuICAgICAgICAgIGFjY3VtdWxhdGVkW2FrXSA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBwbHVzIGFueXRoaW5nIHRoYXQncyBhbHJlYWR5IGluIHRoaXMgdW5pdFxuICAgICAgICBpZiAoaXNOdW1iZXIodmFsc1trXSkpIHtcbiAgICAgICAgICBvd24gKz0gdmFsc1trXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGkgPSBNYXRoLnRydW5jKG93bik7XG4gICAgICAgIGJ1aWx0W2tdID0gaTtcbiAgICAgICAgYWNjdW11bGF0ZWRba10gPSAob3duICogMTAwMCAtIGkgKiAxMDAwKSAvIDEwMDA7XG5cbiAgICAgICAgLy8gcGx1cyBhbnl0aGluZyBmdXJ0aGVyIGRvd24gdGhlIGNoYWluIHRoYXQgc2hvdWxkIGJlIHJvbGxlZCB1cCBpbiB0byB0aGlzXG4gICAgICAgIGZvciAoY29uc3QgZG93biBpbiB2YWxzKSB7XG4gICAgICAgICAgaWYgKG9yZGVyZWRVbml0cy5pbmRleE9mKGRvd24pID4gb3JkZXJlZFVuaXRzLmluZGV4T2YoaykpIHtcbiAgICAgICAgICAgIGNvbnZlcnQodGhpcy5tYXRyaXgsIHZhbHMsIGRvd24sIGJ1aWx0LCBrKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gb3RoZXJ3aXNlLCBrZWVwIGl0IGluIHRoZSB3aW5ncyB0byBib2lsIGl0IGxhdGVyXG4gICAgICB9IGVsc2UgaWYgKGlzTnVtYmVyKHZhbHNba10pKSB7XG4gICAgICAgIGFjY3VtdWxhdGVkW2tdID0gdmFsc1trXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBhbnl0aGluZyBsZWZ0b3ZlciBiZWNvbWVzIHRoZSBkZWNpbWFsIGZvciB0aGUgbGFzdCB1bml0XG4gICAgLy8gbGFzdFVuaXQgbXVzdCBiZSBkZWZpbmVkIHNpbmNlIHVuaXRzIGlzIG5vdCBlbXB0eVxuICAgIGZvciAoY29uc3Qga2V5IGluIGFjY3VtdWxhdGVkKSB7XG4gICAgICBpZiAoYWNjdW11bGF0ZWRba2V5XSAhPT0gMCkge1xuICAgICAgICBidWlsdFtsYXN0VW5pdF0gKz1cbiAgICAgICAgICBrZXkgPT09IGxhc3RVbml0ID8gYWNjdW11bGF0ZWRba2V5XSA6IGFjY3VtdWxhdGVkW2tleV0gLyB0aGlzLm1hdHJpeFtsYXN0VW5pdF1ba2V5XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY2xvbmUodGhpcywgeyB2YWx1ZXM6IGJ1aWx0IH0sIHRydWUpLm5vcm1hbGl6ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgbmVnYXRpdmUgb2YgdGhpcyBEdXJhdGlvbi5cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxLCBzZWNvbmRzOiAzMCB9KS5uZWdhdGUoKS50b09iamVjdCgpIC8vPT4geyBob3VyczogLTEsIHNlY29uZHM6IC0zMCB9XG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgbmVnYXRlKCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICBjb25zdCBuZWdhdGVkID0ge307XG4gICAgZm9yIChjb25zdCBrIG9mIE9iamVjdC5rZXlzKHRoaXMudmFsdWVzKSkge1xuICAgICAgbmVnYXRlZFtrXSA9IC10aGlzLnZhbHVlc1trXTtcbiAgICB9XG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdmFsdWVzOiBuZWdhdGVkIH0sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgeWVhcnMuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgeWVhcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLnllYXJzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBxdWFydGVycy5cbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBxdWFydGVycygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMucXVhcnRlcnMgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1vbnRocy5cbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBtb250aHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLm1vbnRocyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgd2Vla3NcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCB3ZWVrcygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMud2Vla3MgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRheXMuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgZGF5cygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMuZGF5cyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaG91cnMuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgaG91cnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLmhvdXJzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtaW51dGVzLlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IG1pbnV0ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLm1pbnV0ZXMgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHNlY29uZHMuXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGdldCBzZWNvbmRzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5zZWNvbmRzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtaWxsaXNlY29uZHMuXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGdldCBtaWxsaXNlY29uZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLm1pbGxpc2Vjb25kcyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgRHVyYXRpb24gaXMgaW52YWxpZC4gSW52YWxpZCBkdXJhdGlvbnMgYXJlIHJldHVybmVkIGJ5IGRpZmYgb3BlcmF0aW9uc1xuICAgKiBvbiBpbnZhbGlkIERhdGVUaW1lcyBvciBJbnRlcnZhbHMuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID09PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gZXJyb3IgY29kZSBpZiB0aGlzIER1cmF0aW9uIGJlY2FtZSBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBEdXJhdGlvbiBpcyB2YWxpZFxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgaW52YWxpZFJlYXNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBleHBsYW5hdGlvbiBvZiB3aHkgdGhpcyBEdXJhdGlvbiBiZWNhbWUgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgRHVyYXRpb24gaXMgdmFsaWRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBpbnZhbGlkRXhwbGFuYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogRXF1YWxpdHkgY2hlY2tcbiAgICogVHdvIER1cmF0aW9ucyBhcmUgZXF1YWwgaWZmIHRoZXkgaGF2ZSB0aGUgc2FtZSB1bml0cyBhbmQgdGhlIHNhbWUgdmFsdWVzIGZvciBlYWNoIHVuaXQuXG4gICAqIEBwYXJhbSB7RHVyYXRpb259IG90aGVyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBlcXVhbHMob3RoZXIpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCB8fCAhb3RoZXIuaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5sb2MuZXF1YWxzKG90aGVyLmxvYykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlcSh2MSwgdjIpIHtcbiAgICAgIC8vIENvbnNpZGVyIDAgYW5kIHVuZGVmaW5lZCBhcyBlcXVhbFxuICAgICAgaWYgKHYxID09PSB1bmRlZmluZWQgfHwgdjEgPT09IDApIHJldHVybiB2MiA9PT0gdW5kZWZpbmVkIHx8IHYyID09PSAwO1xuICAgICAgcmV0dXJuIHYxID09PSB2MjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHUgb2Ygb3JkZXJlZFVuaXRzKSB7XG4gICAgICBpZiAoIWVxKHRoaXMudmFsdWVzW3VdLCBvdGhlci52YWx1ZXNbdV0pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiIsICJpbXBvcnQgRGF0ZVRpbWUsIHsgZnJpZW5kbHlEYXRlVGltZSB9IGZyb20gXCIuL2RhdGV0aW1lLmpzXCI7XG5pbXBvcnQgRHVyYXRpb24gZnJvbSBcIi4vZHVyYXRpb24uanNcIjtcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5ncy5qc1wiO1xuaW1wb3J0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IsIEludmFsaWRJbnRlcnZhbEVycm9yIH0gZnJvbSBcIi4vZXJyb3JzLmpzXCI7XG5pbXBvcnQgSW52YWxpZCBmcm9tIFwiLi9pbXBsL2ludmFsaWQuanNcIjtcblxuY29uc3QgSU5WQUxJRCA9IFwiSW52YWxpZCBJbnRlcnZhbFwiO1xuXG4vLyBjaGVja3MgaWYgdGhlIHN0YXJ0IGlzIGVxdWFsIHRvIG9yIGJlZm9yZSB0aGUgZW5kXG5mdW5jdGlvbiB2YWxpZGF0ZVN0YXJ0RW5kKHN0YXJ0LCBlbmQpIHtcbiAgaWYgKCFzdGFydCB8fCAhc3RhcnQuaXNWYWxpZCkge1xuICAgIHJldHVybiBJbnRlcnZhbC5pbnZhbGlkKFwibWlzc2luZyBvciBpbnZhbGlkIHN0YXJ0XCIpO1xuICB9IGVsc2UgaWYgKCFlbmQgfHwgIWVuZC5pc1ZhbGlkKSB7XG4gICAgcmV0dXJuIEludGVydmFsLmludmFsaWQoXCJtaXNzaW5nIG9yIGludmFsaWQgZW5kXCIpO1xuICB9IGVsc2UgaWYgKGVuZCA8IHN0YXJ0KSB7XG4gICAgcmV0dXJuIEludGVydmFsLmludmFsaWQoXG4gICAgICBcImVuZCBiZWZvcmUgc3RhcnRcIixcbiAgICAgIGBUaGUgZW5kIG9mIGFuIGludGVydmFsIG11c3QgYmUgYWZ0ZXIgaXRzIHN0YXJ0LCBidXQgeW91IGhhZCBzdGFydD0ke3N0YXJ0LnRvSVNPKCl9IGFuZCBlbmQ9JHtlbmQudG9JU08oKX1gXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIEFuIEludGVydmFsIG9iamVjdCByZXByZXNlbnRzIGEgaGFsZi1vcGVuIGludGVydmFsIG9mIHRpbWUsIHdoZXJlIGVhY2ggZW5kcG9pbnQgaXMgYSB7QGxpbmsgRGF0ZVRpbWV9LiBDb25jZXB0dWFsbHksIGl0J3MgYSBjb250YWluZXIgZm9yIHRob3NlIHR3byBlbmRwb2ludHMsIGFjY29tcGFuaWVkIGJ5IG1ldGhvZHMgZm9yIGNyZWF0aW5nLCBwYXJzaW5nLCBpbnRlcnJvZ2F0aW5nLCBjb21wYXJpbmcsIHRyYW5zZm9ybWluZywgYW5kIGZvcm1hdHRpbmcgdGhlbS5cbiAqXG4gKiBIZXJlIGlzIGEgYnJpZWYgb3ZlcnZpZXcgb2YgdGhlIG1vc3QgY29tbW9ubHkgdXNlZCBtZXRob2RzIGFuZCBnZXR0ZXJzIGluIEludGVydmFsOlxuICpcbiAqICogKipDcmVhdGlvbioqIFRvIGNyZWF0ZSBhbiBJbnRlcnZhbCwgdXNlIHtAbGluayBJbnRlcnZhbCNmcm9tRGF0ZVRpbWVzfSwge0BsaW5rIEludGVydmFsI2FmdGVyfSwge0BsaW5rIEludGVydmFsI2JlZm9yZX0sIG9yIHtAbGluayBJbnRlcnZhbCNmcm9tSVNPfS5cbiAqICogKipBY2Nlc3NvcnMqKiBVc2Uge0BsaW5rIEludGVydmFsI3N0YXJ0fSBhbmQge0BsaW5rIEludGVydmFsI2VuZH0gdG8gZ2V0IHRoZSBzdGFydCBhbmQgZW5kLlxuICogKiAqKkludGVycm9nYXRpb24qKiBUbyBhbmFseXplIHRoZSBJbnRlcnZhbCwgdXNlIHtAbGluayBJbnRlcnZhbCNjb3VudH0sIHtAbGluayBJbnRlcnZhbCNsZW5ndGh9LCB7QGxpbmsgSW50ZXJ2YWwjaGFzU2FtZX0sIHtAbGluayBJbnRlcnZhbCNjb250YWluc30sIHtAbGluayBJbnRlcnZhbCNpc0FmdGVyfSwgb3Ige0BsaW5rIEludGVydmFsI2lzQmVmb3JlfS5cbiAqICogKipUcmFuc2Zvcm1hdGlvbioqIFRvIGNyZWF0ZSBvdGhlciBJbnRlcnZhbHMgb3V0IG9mIHRoaXMgb25lLCB1c2Uge0BsaW5rIEludGVydmFsI3NldH0sIHtAbGluayBJbnRlcnZhbCNzcGxpdEF0fSwge0BsaW5rIEludGVydmFsI3NwbGl0Qnl9LCB7QGxpbmsgSW50ZXJ2YWwjZGl2aWRlRXF1YWxseX0sIHtAbGluayBJbnRlcnZhbCNtZXJnZX0sIHtAbGluayBJbnRlcnZhbCN4b3J9LCB7QGxpbmsgSW50ZXJ2YWwjdW5pb259LCB7QGxpbmsgSW50ZXJ2YWwjaW50ZXJzZWN0aW9ufSwgb3Ige0BsaW5rIEludGVydmFsI2RpZmZlcmVuY2V9LlxuICogKiAqKkNvbXBhcmlzb24qKiBUbyBjb21wYXJlIHRoaXMgSW50ZXJ2YWwgdG8gYW5vdGhlciBvbmUsIHVzZSB7QGxpbmsgSW50ZXJ2YWwjZXF1YWxzfSwge0BsaW5rIEludGVydmFsI292ZXJsYXBzfSwge0BsaW5rIEludGVydmFsI2FidXRzU3RhcnR9LCB7QGxpbmsgSW50ZXJ2YWwjYWJ1dHNFbmR9LCB7QGxpbmsgSW50ZXJ2YWwjZW5ndWxmc31cbiAqICogKipPdXRwdXQqKiBUbyBjb252ZXJ0IHRoZSBJbnRlcnZhbCBpbnRvIG90aGVyIHJlcHJlc2VudGF0aW9ucywgc2VlIHtAbGluayBJbnRlcnZhbCN0b1N0cmluZ30sIHtAbGluayBJbnRlcnZhbCN0b0lTT30sIHtAbGluayBJbnRlcnZhbCN0b0lTT0RhdGV9LCB7QGxpbmsgSW50ZXJ2YWwjdG9JU09UaW1lfSwge0BsaW5rIEludGVydmFsI3RvRm9ybWF0fSwgYW5kIHtAbGluayBJbnRlcnZhbCN0b0R1cmF0aW9ufS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW50ZXJ2YWwge1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbmZpZykge1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMucyA9IGNvbmZpZy5zdGFydDtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmUgPSBjb25maWcuZW5kO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuaW52YWxpZCA9IGNvbmZpZy5pbnZhbGlkIHx8IG51bGw7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5pc0x1eG9uSW50ZXJ2YWwgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBpbnZhbGlkIEludGVydmFsLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uIC0gc2ltcGxlIHN0cmluZyBvZiB3aHkgdGhpcyBJbnRlcnZhbCBpcyBpbnZhbGlkLiBTaG91bGQgbm90IGNvbnRhaW4gcGFyYW1ldGVycyBvciBhbnl0aGluZyBlbHNlIGRhdGEtZGVwZW5kZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbZXhwbGFuYXRpb249bnVsbF0gLSBsb25nZXIgZXhwbGFuYXRpb24sIG1heSBpbmNsdWRlIHBhcmFtZXRlcnMgYW5kIG90aGVyIHVzZWZ1bCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb25cbiAgICogQHJldHVybiB7SW50ZXJ2YWx9XG4gICAqL1xuICBzdGF0aWMgaW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uID0gbnVsbCkge1xuICAgIGlmICghcmVhc29uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJuZWVkIHRvIHNwZWNpZnkgYSByZWFzb24gdGhlIEludGVydmFsIGlzIGludmFsaWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgaW52YWxpZCA9IHJlYXNvbiBpbnN0YW5jZW9mIEludmFsaWQgPyByZWFzb24gOiBuZXcgSW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uKTtcblxuICAgIGlmIChTZXR0aW5ncy50aHJvd09uSW52YWxpZCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRJbnRlcnZhbEVycm9yKGludmFsaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV3IEludGVydmFsKHsgaW52YWxpZCB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIEludGVydmFsIGZyb20gYSBzdGFydCBEYXRlVGltZSBhbmQgYW4gZW5kIERhdGVUaW1lLiBJbmNsdXNpdmUgb2YgdGhlIHN0YXJ0IGJ1dCBub3QgdGhlIGVuZC5cbiAgICogQHBhcmFtIHtEYXRlVGltZXxEYXRlfE9iamVjdH0gc3RhcnRcbiAgICogQHBhcmFtIHtEYXRlVGltZXxEYXRlfE9iamVjdH0gZW5kXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgc3RhdGljIGZyb21EYXRlVGltZXMoc3RhcnQsIGVuZCkge1xuICAgIGNvbnN0IGJ1aWx0U3RhcnQgPSBmcmllbmRseURhdGVUaW1lKHN0YXJ0KSxcbiAgICAgIGJ1aWx0RW5kID0gZnJpZW5kbHlEYXRlVGltZShlbmQpO1xuXG4gICAgY29uc3QgdmFsaWRhdGVFcnJvciA9IHZhbGlkYXRlU3RhcnRFbmQoYnVpbHRTdGFydCwgYnVpbHRFbmQpO1xuXG4gICAgaWYgKHZhbGlkYXRlRXJyb3IgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG5ldyBJbnRlcnZhbCh7XG4gICAgICAgIHN0YXJ0OiBidWlsdFN0YXJ0LFxuICAgICAgICBlbmQ6IGJ1aWx0RW5kLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB2YWxpZGF0ZUVycm9yO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gSW50ZXJ2YWwgZnJvbSBhIHN0YXJ0IERhdGVUaW1lIGFuZCBhIER1cmF0aW9uIHRvIGV4dGVuZCB0by5cbiAgICogQHBhcmFtIHtEYXRlVGltZXxEYXRlfE9iamVjdH0gc3RhcnRcbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIHRoZSBsZW5ndGggb2YgdGhlIEludGVydmFsLlxuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICovXG4gIHN0YXRpYyBhZnRlcihzdGFydCwgZHVyYXRpb24pIHtcbiAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKSxcbiAgICAgIGR0ID0gZnJpZW5kbHlEYXRlVGltZShzdGFydCk7XG4gICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQsIGR0LnBsdXMoZHVyKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIEludGVydmFsIGZyb20gYW4gZW5kIERhdGVUaW1lIGFuZCBhIER1cmF0aW9uIHRvIGV4dGVuZCBiYWNrd2FyZHMgdG8uXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV8RGF0ZXxPYmplY3R9IGVuZFxuICAgKiBAcGFyYW0ge0R1cmF0aW9ufE9iamVjdHxudW1iZXJ9IGR1cmF0aW9uIC0gdGhlIGxlbmd0aCBvZiB0aGUgSW50ZXJ2YWwuXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgc3RhdGljIGJlZm9yZShlbmQsIGR1cmF0aW9uKSB7XG4gICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbiksXG4gICAgICBkdCA9IGZyaWVuZGx5RGF0ZVRpbWUoZW5kKTtcbiAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdC5taW51cyhkdXIpLCBkdCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIEludGVydmFsIGZyb20gYW4gSVNPIDg2MDEgc3RyaW5nLlxuICAgKiBBY2NlcHRzIGA8c3RhcnQ+LzxlbmQ+YCwgYDxzdGFydD4vPGR1cmF0aW9uPmAsIGFuZCBgPGR1cmF0aW9uPi88ZW5kPmAgZm9ybWF0cy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgSVNPIHN0cmluZyB0byBwYXJzZVxuICAgKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIC0gb3B0aW9ucyB0byBwYXNzIHtAbGluayBEYXRlVGltZSNmcm9tSVNPfSBhbmQgb3B0aW9uYWxseSB7QGxpbmsgRHVyYXRpb24jZnJvbUlTT31cbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lX2ludGVydmFsc1xuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICovXG4gIHN0YXRpYyBmcm9tSVNPKHRleHQsIG9wdHMpIHtcbiAgICBjb25zdCBbcywgZV0gPSAodGV4dCB8fCBcIlwiKS5zcGxpdChcIi9cIiwgMik7XG4gICAgaWYgKHMgJiYgZSkge1xuICAgICAgbGV0IHN0YXJ0LCBzdGFydElzVmFsaWQ7XG4gICAgICB0cnkge1xuICAgICAgICBzdGFydCA9IERhdGVUaW1lLmZyb21JU08ocywgb3B0cyk7XG4gICAgICAgIHN0YXJ0SXNWYWxpZCA9IHN0YXJ0LmlzVmFsaWQ7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHN0YXJ0SXNWYWxpZCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBsZXQgZW5kLCBlbmRJc1ZhbGlkO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZW5kID0gRGF0ZVRpbWUuZnJvbUlTTyhlLCBvcHRzKTtcbiAgICAgICAgZW5kSXNWYWxpZCA9IGVuZC5pc1ZhbGlkO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBlbmRJc1ZhbGlkID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGFydElzVmFsaWQgJiYgZW5kSXNWYWxpZCkge1xuICAgICAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzdGFydCwgZW5kKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXJ0SXNWYWxpZCkge1xuICAgICAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tSVNPKGUsIG9wdHMpO1xuICAgICAgICBpZiAoZHVyLmlzVmFsaWQpIHtcbiAgICAgICAgICByZXR1cm4gSW50ZXJ2YWwuYWZ0ZXIoc3RhcnQsIGR1cik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZW5kSXNWYWxpZCkge1xuICAgICAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tSVNPKHMsIG9wdHMpO1xuICAgICAgICBpZiAoZHVyLmlzVmFsaWQpIHtcbiAgICAgICAgICByZXR1cm4gSW50ZXJ2YWwuYmVmb3JlKGVuZCwgZHVyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gSW50ZXJ2YWwuaW52YWxpZChcInVucGFyc2FibGVcIiwgYHRoZSBpbnB1dCBcIiR7dGV4dH1cIiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDFgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBvYmplY3QgaXMgYW4gSW50ZXJ2YWwuIFdvcmtzIGFjcm9zcyBjb250ZXh0IGJvdW5kYXJpZXNcbiAgICogQHBhcmFtIHtvYmplY3R9IG9cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBpc0ludGVydmFsKG8pIHtcbiAgICByZXR1cm4gKG8gJiYgby5pc0x1eG9uSW50ZXJ2YWwpIHx8IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSBJbnRlcnZhbFxuICAgKiBAdHlwZSB7RGF0ZVRpbWV9XG4gICAqL1xuICBnZXQgc3RhcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMucyA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZW5kIG9mIHRoZSBJbnRlcnZhbFxuICAgKiBAdHlwZSB7RGF0ZVRpbWV9XG4gICAqL1xuICBnZXQgZW5kKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmUgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGlzIEludGVydmFsJ3MgZW5kIGlzIGF0IGxlYXN0IGl0cyBzdGFydCwgbWVhbmluZyB0aGF0IHRoZSBJbnRlcnZhbCBpc24ndCAnYmFja3dhcmRzJy5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkUmVhc29uID09PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gZXJyb3IgY29kZSBpZiB0aGlzIEludGVydmFsIGlzIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIEludGVydmFsIGlzIHZhbGlkXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgaW52YWxpZFJlYXNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBleHBsYW5hdGlvbiBvZiB3aHkgdGhpcyBJbnRlcnZhbCBiZWNhbWUgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgSW50ZXJ2YWwgaXMgdmFsaWRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBpbnZhbGlkRXhwbGFuYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBJbnRlcnZhbCBpbiB0aGUgc3BlY2lmaWVkIHVuaXQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gdGhlIHVuaXQgKHN1Y2ggYXMgJ2hvdXJzJyBvciAnZGF5cycpIHRvIHJldHVybiB0aGUgbGVuZ3RoIGluLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBsZW5ndGgodW5pdCA9IFwibWlsbGlzZWNvbmRzXCIpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy50b0R1cmF0aW9uKC4uLlt1bml0XSkuZ2V0KHVuaXQpIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNvdW50IG9mIG1pbnV0ZXMsIGhvdXJzLCBkYXlzLCBtb250aHMsIG9yIHllYXJzIGluY2x1ZGVkIGluIHRoZSBJbnRlcnZhbCwgZXZlbiBpbiBwYXJ0LlxuICAgKiBVbmxpa2Uge0BsaW5rIEludGVydmFsI2xlbmd0aH0gdGhpcyBjb3VudHMgc2VjdGlvbnMgb2YgdGhlIGNhbGVuZGFyLCBub3QgcGVyaW9kcyBvZiB0aW1lLCBlLmcuIHNwZWNpZnlpbmcgJ2RheSdcbiAgICogYXNrcyAnd2hhdCBkYXRlcyBhcmUgaW5jbHVkZWQgaW4gdGhpcyBpbnRlcnZhbD8nLCBub3QgJ2hvdyBtYW55IGRheXMgbG9uZyBpcyB0aGlzIGludGVydmFsPydcbiAgICogQHBhcmFtIHtzdHJpbmd9IFt1bml0PSdtaWxsaXNlY29uZHMnXSAtIHRoZSB1bml0IG9mIHRpbWUgdG8gY291bnQuXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGNvdW50KHVuaXQgPSBcIm1pbGxpc2Vjb25kc1wiKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBOYU47XG4gICAgY29uc3Qgc3RhcnQgPSB0aGlzLnN0YXJ0LnN0YXJ0T2YodW5pdCksXG4gICAgICBlbmQgPSB0aGlzLmVuZC5zdGFydE9mKHVuaXQpO1xuICAgIHJldHVybiBNYXRoLmZsb29yKGVuZC5kaWZmKHN0YXJ0LCB1bml0KS5nZXQodW5pdCkpICsgMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIHN0YXJ0IGFuZCBlbmQgYXJlIGJvdGggaW4gdGhlIHNhbWUgdW5pdCBvZiB0aW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gdGhlIHVuaXQgb2YgdGltZSB0byBjaGVjayBzYW1lbmVzcyBvblxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaGFzU2FtZSh1bml0KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuaXNFbXB0eSgpIHx8IHRoaXMuZS5taW51cygxKS5oYXNTYW1lKHRoaXMucywgdW5pdCkgOiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsIGhhcyB0aGUgc2FtZSBzdGFydCBhbmQgZW5kIERhdGVUaW1lcy5cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGlzRW1wdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMucy52YWx1ZU9mKCkgPT09IHRoaXMuZS52YWx1ZU9mKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIHN0YXJ0IGlzIGFmdGVyIHRoZSBzcGVjaWZpZWQgRGF0ZVRpbWUuXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IGRhdGVUaW1lXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBpc0FmdGVyKGRhdGVUaW1lKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5zID4gZGF0ZVRpbWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIGVuZCBpcyBiZWZvcmUgdGhlIHNwZWNpZmllZCBEYXRlVGltZS5cbiAgICogQHBhcmFtIHtEYXRlVGltZX0gZGF0ZVRpbWVcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGlzQmVmb3JlKGRhdGVUaW1lKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5lIDw9IGRhdGVUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgY29udGFpbnMgdGhlIHNwZWNpZmllZCBEYXRlVGltZS5cbiAgICogQHBhcmFtIHtEYXRlVGltZX0gZGF0ZVRpbWVcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGNvbnRhaW5zKGRhdGVUaW1lKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5zIDw9IGRhdGVUaW1lICYmIHRoaXMuZSA+IGRhdGVUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0c1wiIHRoZSBzdGFydCBhbmQvb3IgZW5kIGRhdGVzLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgSW50ZXJ2YWwuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZXMgLSB0aGUgdmFsdWVzIHRvIHNldFxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfSB2YWx1ZXMuc3RhcnQgLSB0aGUgc3RhcnRpbmcgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtEYXRlVGltZX0gdmFsdWVzLmVuZCAtIHRoZSBlbmRpbmcgRGF0ZVRpbWVcbiAgICogQHJldHVybiB7SW50ZXJ2YWx9XG4gICAqL1xuICBzZXQoeyBzdGFydCwgZW5kIH0gPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzdGFydCB8fCB0aGlzLnMsIGVuZCB8fCB0aGlzLmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwbGl0IHRoaXMgSW50ZXJ2YWwgYXQgZWFjaCBvZiB0aGUgc3BlY2lmaWVkIERhdGVUaW1lc1xuICAgKiBAcGFyYW0gey4uLkRhdGVUaW1lfSBkYXRlVGltZXMgLSB0aGUgdW5pdCBvZiB0aW1lIHRvIGNvdW50LlxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHNwbGl0QXQoLi4uZGF0ZVRpbWVzKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBbXTtcbiAgICBjb25zdCBzb3J0ZWQgPSBkYXRlVGltZXNcbiAgICAgICAgLm1hcChmcmllbmRseURhdGVUaW1lKVxuICAgICAgICAuZmlsdGVyKChkKSA9PiB0aGlzLmNvbnRhaW5zKGQpKVxuICAgICAgICAuc29ydCgpLFxuICAgICAgcmVzdWx0cyA9IFtdO1xuICAgIGxldCB7IHMgfSA9IHRoaXMsXG4gICAgICBpID0gMDtcblxuICAgIHdoaWxlIChzIDwgdGhpcy5lKSB7XG4gICAgICBjb25zdCBhZGRlZCA9IHNvcnRlZFtpXSB8fCB0aGlzLmUsXG4gICAgICAgIG5leHQgPSArYWRkZWQgPiArdGhpcy5lID8gdGhpcy5lIDogYWRkZWQ7XG4gICAgICByZXN1bHRzLnB1c2goSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzLCBuZXh0KSk7XG4gICAgICBzID0gbmV4dDtcbiAgICAgIGkgKz0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdCB0aGlzIEludGVydmFsIGludG8gc21hbGxlciBJbnRlcnZhbHMsIGVhY2ggb2YgdGhlIHNwZWNpZmllZCBsZW5ndGguXG4gICAqIExlZnQgb3ZlciB0aW1lIGlzIGdyb3VwZWQgaW50byBhIHNtYWxsZXIgaW50ZXJ2YWxcbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBsZW5ndGggb2YgZWFjaCByZXN1bHRpbmcgaW50ZXJ2YWwuXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3BsaXRCeShkdXJhdGlvbikge1xuICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pO1xuXG4gICAgaWYgKCF0aGlzLmlzVmFsaWQgfHwgIWR1ci5pc1ZhbGlkIHx8IGR1ci5hcyhcIm1pbGxpc2Vjb25kc1wiKSA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGxldCB7IHMgfSA9IHRoaXMsXG4gICAgICBpZHggPSAxLFxuICAgICAgbmV4dDtcblxuICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcbiAgICB3aGlsZSAocyA8IHRoaXMuZSkge1xuICAgICAgY29uc3QgYWRkZWQgPSB0aGlzLnN0YXJ0LnBsdXMoZHVyLm1hcFVuaXRzKCh4KSA9PiB4ICogaWR4KSk7XG4gICAgICBuZXh0ID0gK2FkZGVkID4gK3RoaXMuZSA/IHRoaXMuZSA6IGFkZGVkO1xuICAgICAgcmVzdWx0cy5wdXNoKEludGVydmFsLmZyb21EYXRlVGltZXMocywgbmV4dCkpO1xuICAgICAgcyA9IG5leHQ7XG4gICAgICBpZHggKz0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdCB0aGlzIEludGVydmFsIGludG8gdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc21hbGxlciBpbnRlcnZhbHMuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXJPZlBhcnRzIC0gVGhlIG51bWJlciBvZiBJbnRlcnZhbHMgdG8gZGl2aWRlIHRoZSBJbnRlcnZhbCBpbnRvLlxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIGRpdmlkZUVxdWFsbHkobnVtYmVyT2ZQYXJ0cykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gW107XG4gICAgcmV0dXJuIHRoaXMuc3BsaXRCeSh0aGlzLmxlbmd0aCgpIC8gbnVtYmVyT2ZQYXJ0cykuc2xpY2UoMCwgbnVtYmVyT2ZQYXJ0cyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBvdmVybGFwcyB3aXRoIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWxcbiAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIG92ZXJsYXBzKG90aGVyKSB7XG4gICAgcmV0dXJuIHRoaXMuZSA+IG90aGVyLnMgJiYgdGhpcy5zIDwgb3RoZXIuZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsJ3MgZW5kIGlzIGFkamFjZW50IHRvIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwncyBzdGFydC5cbiAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGFidXRzU3RhcnQob3RoZXIpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiArdGhpcy5lID09PSArb3RoZXIucztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsJ3Mgc3RhcnQgaXMgYWRqYWNlbnQgdG8gdGhlIHNwZWNpZmllZCBJbnRlcnZhbCdzIGVuZC5cbiAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGFidXRzRW5kKG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gK290aGVyLmUgPT09ICt0aGlzLnM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBlbmd1bGZzIHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwuXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBlbmd1bGZzKG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5zIDw9IG90aGVyLnMgJiYgdGhpcy5lID49IG90aGVyLmU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBoYXMgdGhlIHNhbWUgc3RhcnQgYW5kIGVuZCBhcyB0aGUgc3BlY2lmaWVkIEludGVydmFsLlxuICAgKiBAcGFyYW0ge0ludGVydmFsfSBvdGhlclxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZXF1YWxzKG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQgfHwgIW90aGVyLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zLmVxdWFscyhvdGhlci5zKSAmJiB0aGlzLmUuZXF1YWxzKG90aGVyLmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBJbnRlcnZhbCByZXByZXNlbnRpbmcgdGhlIGludGVyc2VjdGlvbiBvZiB0aGlzIEludGVydmFsIGFuZCB0aGUgc3BlY2lmaWVkIEludGVydmFsLlxuICAgKiBTcGVjaWZpY2FsbHksIHRoZSByZXN1bHRpbmcgSW50ZXJ2YWwgaGFzIHRoZSBtYXhpbXVtIHN0YXJ0IHRpbWUgYW5kIHRoZSBtaW5pbXVtIGVuZCB0aW1lIG9mIHRoZSB0d28gSW50ZXJ2YWxzLlxuICAgKiBSZXR1cm5zIG51bGwgaWYgdGhlIGludGVyc2VjdGlvbiBpcyBlbXB0eSwgbWVhbmluZywgdGhlIGludGVydmFscyBkb24ndCBpbnRlcnNlY3QuXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgaW50ZXJzZWN0aW9uKG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuICAgIGNvbnN0IHMgPSB0aGlzLnMgPiBvdGhlci5zID8gdGhpcy5zIDogb3RoZXIucyxcbiAgICAgIGUgPSB0aGlzLmUgPCBvdGhlci5lID8gdGhpcy5lIDogb3RoZXIuZTtcblxuICAgIGlmIChzID49IGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzLCBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIEludGVydmFsIHJlcHJlc2VudGluZyB0aGUgdW5pb24gb2YgdGhpcyBJbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBJbnRlcnZhbC5cbiAgICogU3BlY2lmaWNhbGx5LCB0aGUgcmVzdWx0aW5nIEludGVydmFsIGhhcyB0aGUgbWluaW11bSBzdGFydCB0aW1lIGFuZCB0aGUgbWF4aW11bSBlbmQgdGltZSBvZiB0aGUgdHdvIEludGVydmFscy5cbiAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXJcbiAgICogQHJldHVybiB7SW50ZXJ2YWx9XG4gICAqL1xuICB1bmlvbihvdGhlcikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICBjb25zdCBzID0gdGhpcy5zIDwgb3RoZXIucyA/IHRoaXMucyA6IG90aGVyLnMsXG4gICAgICBlID0gdGhpcy5lID4gb3RoZXIuZSA/IHRoaXMuZSA6IG90aGVyLmU7XG4gICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMocywgZSk7XG4gIH1cblxuICAvKipcbiAgICogTWVyZ2UgYW4gYXJyYXkgb2YgSW50ZXJ2YWxzIGludG8gYSBlcXVpdmFsZW50IG1pbmltYWwgc2V0IG9mIEludGVydmFscy5cbiAgICogQ29tYmluZXMgb3ZlcmxhcHBpbmcgYW5kIGFkamFjZW50IEludGVydmFscy5cbiAgICogQHBhcmFtIHtBcnJheX0gaW50ZXJ2YWxzXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3RhdGljIG1lcmdlKGludGVydmFscykge1xuICAgIGNvbnN0IFtmb3VuZCwgZmluYWxdID0gaW50ZXJ2YWxzXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5zIC0gYi5zKVxuICAgICAgLnJlZHVjZShcbiAgICAgICAgKFtzb2ZhciwgY3VycmVudF0sIGl0ZW0pID0+IHtcbiAgICAgICAgICBpZiAoIWN1cnJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBbc29mYXIsIGl0ZW1dO1xuICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudC5vdmVybGFwcyhpdGVtKSB8fCBjdXJyZW50LmFidXRzU3RhcnQoaXRlbSkpIHtcbiAgICAgICAgICAgIHJldHVybiBbc29mYXIsIGN1cnJlbnQudW5pb24oaXRlbSldO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gW3NvZmFyLmNvbmNhdChbY3VycmVudF0pLCBpdGVtXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtbXSwgbnVsbF1cbiAgICAgICk7XG4gICAgaWYgKGZpbmFsKSB7XG4gICAgICBmb3VuZC5wdXNoKGZpbmFsKTtcbiAgICB9XG4gICAgcmV0dXJuIGZvdW5kO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBhcnJheSBvZiBJbnRlcnZhbHMgcmVwcmVzZW50aW5nIHRoZSBzcGFucyBvZiB0aW1lIHRoYXQgb25seSBhcHBlYXIgaW4gb25lIG9mIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWxzLlxuICAgKiBAcGFyYW0ge0FycmF5fSBpbnRlcnZhbHNcbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBzdGF0aWMgeG9yKGludGVydmFscykge1xuICAgIGxldCBzdGFydCA9IG51bGwsXG4gICAgICBjdXJyZW50Q291bnQgPSAwO1xuICAgIGNvbnN0IHJlc3VsdHMgPSBbXSxcbiAgICAgIGVuZHMgPSBpbnRlcnZhbHMubWFwKChpKSA9PiBbXG4gICAgICAgIHsgdGltZTogaS5zLCB0eXBlOiBcInNcIiB9LFxuICAgICAgICB7IHRpbWU6IGkuZSwgdHlwZTogXCJlXCIgfSxcbiAgICAgIF0pLFxuICAgICAgZmxhdHRlbmVkID0gQXJyYXkucHJvdG90eXBlLmNvbmNhdCguLi5lbmRzKSxcbiAgICAgIGFyciA9IGZsYXR0ZW5lZC5zb3J0KChhLCBiKSA9PiBhLnRpbWUgLSBiLnRpbWUpO1xuXG4gICAgZm9yIChjb25zdCBpIG9mIGFycikge1xuICAgICAgY3VycmVudENvdW50ICs9IGkudHlwZSA9PT0gXCJzXCIgPyAxIDogLTE7XG5cbiAgICAgIGlmIChjdXJyZW50Q291bnQgPT09IDEpIHtcbiAgICAgICAgc3RhcnQgPSBpLnRpbWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc3RhcnQgJiYgK3N0YXJ0ICE9PSAraS50aW1lKSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKEludGVydmFsLmZyb21EYXRlVGltZXMoc3RhcnQsIGkudGltZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhcnQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBJbnRlcnZhbC5tZXJnZShyZXN1bHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgcmVwcmVzZW50aW5nIHRoZSBzcGFuIG9mIHRpbWUgaW4gdGhpcyBJbnRlcnZhbCB0aGF0IGRvZXNuJ3Qgb3ZlcmxhcCB3aXRoIGFueSBvZiB0aGUgc3BlY2lmaWVkIEludGVydmFscy5cbiAgICogQHBhcmFtIHsuLi5JbnRlcnZhbH0gaW50ZXJ2YWxzXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgZGlmZmVyZW5jZSguLi5pbnRlcnZhbHMpIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwueG9yKFt0aGlzXS5jb25jYXQoaW50ZXJ2YWxzKSlcbiAgICAgIC5tYXAoKGkpID0+IHRoaXMuaW50ZXJzZWN0aW9uKGkpKVxuICAgICAgLmZpbHRlcigoaSkgPT4gaSAmJiAhaS5pc0VtcHR5KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBJbnRlcnZhbCBhcHByb3ByaWF0ZSBmb3IgZGVidWdnaW5nLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b1N0cmluZygpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQ7XG4gICAgcmV0dXJuIGBbJHt0aGlzLnMudG9JU08oKX0gXHUyMDEzICR7dGhpcy5lLnRvSVNPKCl9KWA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgSW50ZXJ2YWwuXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBUaGUgc2FtZSBvcHRpb25zIGFzIHtAbGluayBEYXRlVGltZSN0b0lTT31cbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU08ob3B0cykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gSU5WQUxJRDtcbiAgICByZXR1cm4gYCR7dGhpcy5zLnRvSVNPKG9wdHMpfS8ke3RoaXMuZS50b0lTTyhvcHRzKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBkYXRlIG9mIHRoaXMgSW50ZXJ2YWwuXG4gICAqIFRoZSB0aW1lIGNvbXBvbmVudHMgYXJlIGlnbm9yZWQuXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHNcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU09EYXRlKCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gSU5WQUxJRDtcbiAgICByZXR1cm4gYCR7dGhpcy5zLnRvSVNPRGF0ZSgpfS8ke3RoaXMuZS50b0lTT0RhdGUoKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aW1lIG9mIHRoaXMgSW50ZXJ2YWwuXG4gICAqIFRoZSBkYXRlIGNvbXBvbmVudHMgYXJlIGlnbm9yZWQuXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBUaGUgc2FtZSBvcHRpb25zIGFzIHtAbGluayBEYXRlVGltZSN0b0lTT31cbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU09UaW1lKG9wdHMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQ7XG4gICAgcmV0dXJuIGAke3RoaXMucy50b0lTT1RpbWUob3B0cyl9LyR7dGhpcy5lLnRvSVNPVGltZShvcHRzKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBJbnRlcnZhbCBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgZm9ybWF0IHN0cmluZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGVGb3JtYXQgLSB0aGUgZm9ybWF0IHN0cmluZy4gVGhpcyBzdHJpbmcgZm9ybWF0cyB0aGUgc3RhcnQgYW5kIGVuZCB0aW1lLiBTZWUge0BsaW5rIERhdGVUaW1lI3RvRm9ybWF0fSBmb3IgZGV0YWlscy5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5zZXBhcmF0b3IgPSAgJyBcdTIwMTMgJ10gLSBhIHNlcGFyYXRvciB0byBwbGFjZSBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kIHJlcHJlc2VudGF0aW9uc1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0Zvcm1hdChkYXRlRm9ybWF0LCB7IHNlcGFyYXRvciA9IFwiIFx1MjAxMyBcIiB9ID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQ7XG4gICAgcmV0dXJuIGAke3RoaXMucy50b0Zvcm1hdChkYXRlRm9ybWF0KX0ke3NlcGFyYXRvcn0ke3RoaXMuZS50b0Zvcm1hdChkYXRlRm9ybWF0KX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIER1cmF0aW9uIHJlcHJlc2VudGluZyB0aGUgdGltZSBzcGFubmVkIGJ5IHRoaXMgaW50ZXJ2YWwuXG4gICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBbdW5pdD1bJ21pbGxpc2Vjb25kcyddXSAtIHRoZSB1bml0IG9yIHVuaXRzIChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byBpbmNsdWRlIGluIHRoZSBkdXJhdGlvbi5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiB0aGUgRHVyYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlXG4gICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oKS50b09iamVjdCgpIC8vPT4geyBtaWxsaXNlY29uZHM6IDg4NDg5MjU3IH1cbiAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikudG9EdXJhdGlvbignZGF5cycpLnRvT2JqZWN0KCkgLy89PiB7IGRheXM6IDEuMDI0MTgxMjE1Mjc3Nzc3OCB9XG4gICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oWydob3VycycsICdtaW51dGVzJ10pLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAyNCwgbWludXRlczogMzQuODIwOTUgfVxuICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS50b0R1cmF0aW9uKFsnaG91cnMnLCAnbWludXRlcycsICdzZWNvbmRzJ10pLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAyNCwgbWludXRlczogMzQsIHNlY29uZHM6IDQ5LjI1NyB9XG4gICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oJ3NlY29uZHMnKS50b09iamVjdCgpIC8vPT4geyBzZWNvbmRzOiA4ODQ4OS4yNTcgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHRvRHVyYXRpb24odW5pdCwgb3B0cykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uaW52YWxpZCh0aGlzLmludmFsaWRSZWFzb24pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lLmRpZmYodGhpcy5zLCB1bml0LCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gbWFwRm4gb24gdGhlIGludGVydmFsIHN0YXJ0IGFuZCBlbmQsIHJldHVybmluZyBhIG5ldyBJbnRlcnZhbCBmcm9tIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWVzXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG1hcEZuXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS5tYXBFbmRwb2ludHMoZW5kcG9pbnQgPT4gZW5kcG9pbnQudG9VVEMoKSlcbiAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikubWFwRW5kcG9pbnRzKGVuZHBvaW50ID0+IGVuZHBvaW50LnBsdXMoeyBob3VyczogMiB9KSlcbiAgICovXG4gIG1hcEVuZHBvaW50cyhtYXBGbikge1xuICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKG1hcEZuKHRoaXMucyksIG1hcEZuKHRoaXMuZSkpO1xuICB9XG59XG4iLCAiaW1wb3J0IERhdGVUaW1lIGZyb20gXCIuL2RhdGV0aW1lLmpzXCI7XG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3MuanNcIjtcbmltcG9ydCBMb2NhbGUgZnJvbSBcIi4vaW1wbC9sb2NhbGUuanNcIjtcbmltcG9ydCBJQU5BWm9uZSBmcm9tIFwiLi96b25lcy9JQU5BWm9uZS5qc1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplWm9uZSB9IGZyb20gXCIuL2ltcGwvem9uZVV0aWwuanNcIjtcblxuaW1wb3J0IHsgaGFzUmVsYXRpdmUgfSBmcm9tIFwiLi9pbXBsL3V0aWwuanNcIjtcblxuLyoqXG4gKiBUaGUgSW5mbyBjbGFzcyBjb250YWlucyBzdGF0aWMgbWV0aG9kcyBmb3IgcmV0cmlldmluZyBnZW5lcmFsIHRpbWUgYW5kIGRhdGUgcmVsYXRlZCBkYXRhLiBGb3IgZXhhbXBsZSwgaXQgaGFzIG1ldGhvZHMgZm9yIGZpbmRpbmcgb3V0IGlmIGEgdGltZSB6b25lIGhhcyBhIERTVCwgZm9yIGxpc3RpbmcgdGhlIG1vbnRocyBpbiBhbnkgc3VwcG9ydGVkIGxvY2FsZSwgYW5kIGZvciBkaXNjb3ZlcmluZyB3aGljaCBvZiBMdXhvbiBmZWF0dXJlcyBhcmUgYXZhaWxhYmxlIGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50LlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbmZvIHtcbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgem9uZSBjb250YWlucyBhIERTVC5cbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW3pvbmU9J2xvY2FsJ10gLSBab25lIHRvIGNoZWNrLiBEZWZhdWx0cyB0byB0aGUgZW52aXJvbm1lbnQncyBsb2NhbCB6b25lLlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgc3RhdGljIGhhc0RTVCh6b25lID0gU2V0dGluZ3MuZGVmYXVsdFpvbmUpIHtcbiAgICBjb25zdCBwcm90byA9IERhdGVUaW1lLm5vdygpLnNldFpvbmUoem9uZSkuc2V0KHsgbW9udGg6IDEyIH0pO1xuXG4gICAgcmV0dXJuICF6b25lLmlzVW5pdmVyc2FsICYmIHByb3RvLm9mZnNldCAhPT0gcHJvdG8uc2V0KHsgbW9udGg6IDYgfSkub2Zmc2V0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgem9uZSBpcyBhIHZhbGlkIElBTkEgc3BlY2lmaWVyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gem9uZSAtIFpvbmUgdG8gY2hlY2tcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBpc1ZhbGlkSUFOQVpvbmUoem9uZSkge1xuICAgIHJldHVybiBJQU5BWm9uZS5pc1ZhbGlkU3BlY2lmaWVyKHpvbmUpICYmIElBTkFab25lLmlzVmFsaWRab25lKHpvbmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBpbnB1dCBpbnRvIGEge0BsaW5rIFpvbmV9IGluc3RhbmNlLlxuICAgKlxuICAgKiAqIElmIGBpbnB1dGAgaXMgYWxyZWFkeSBhIFpvbmUgaW5zdGFuY2UsIGl0IGlzIHJldHVybmVkIHVuY2hhbmdlZC5cbiAgICogKiBJZiBgaW5wdXRgIGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSB2YWxpZCB0aW1lIHpvbmUgbmFtZSwgYSBab25lIGluc3RhbmNlXG4gICAqICAgd2l0aCB0aGF0IG5hbWUgaXMgcmV0dXJuZWQuXG4gICAqICogSWYgYGlucHV0YCBpcyBhIHN0cmluZyB0aGF0IGRvZXNuJ3QgcmVmZXIgdG8gYSBrbm93biB0aW1lIHpvbmUsIGEgWm9uZVxuICAgKiAgIGluc3RhbmNlIHdpdGgge0BsaW5rIFpvbmUjaXNWYWxpZH0gPT0gZmFsc2UgaXMgcmV0dXJuZWQuXG4gICAqICogSWYgYGlucHV0IGlzIGEgbnVtYmVyLCBhIFpvbmUgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGZpeGVkIG9mZnNldFxuICAgKiAgIGluIG1pbnV0ZXMgaXMgcmV0dXJuZWQuXG4gICAqICogSWYgYGlucHV0YCBpcyBgbnVsbGAgb3IgYHVuZGVmaW5lZGAsIHRoZSBkZWZhdWx0IHpvbmUgaXMgcmV0dXJuZWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV8bnVtYmVyfSBbaW5wdXRdIC0gdGhlIHZhbHVlIHRvIGJlIGNvbnZlcnRlZFxuICAgKiBAcmV0dXJuIHtab25lfVxuICAgKi9cbiAgc3RhdGljIG5vcm1hbGl6ZVpvbmUoaW5wdXQpIHtcbiAgICByZXR1cm4gbm9ybWFsaXplWm9uZShpbnB1dCwgU2V0dGluZ3MuZGVmYXVsdFpvbmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBhcnJheSBvZiBzdGFuZGFsb25lIG1vbnRoIG5hbWVzLlxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoPSdsb25nJ10gLSB0aGUgbGVuZ3RoIG9mIHRoZSBtb250aCByZXByZXNlbnRhdGlvbiwgc3VjaCBhcyBcIm51bWVyaWNcIiwgXCIyLWRpZ2l0XCIsIFwibmFycm93XCIsIFwic2hvcnRcIiwgXCJsb25nXCJcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGVdIC0gdGhlIGxvY2FsZSBjb2RlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5udW1iZXJpbmdTeXN0ZW09bnVsbF0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm91dHB1dENhbGVuZGFyPSdncmVnb3J5J10gLSB0aGUgY2FsZW5kYXJcbiAgICogQGV4YW1wbGUgSW5mby5tb250aHMoKVswXSAvLz0+ICdKYW51YXJ5J1xuICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnc2hvcnQnKVswXSAvLz0+ICdKYW4nXG4gICAqIEBleGFtcGxlIEluZm8ubW9udGhzKCdudW1lcmljJylbMF0gLy89PiAnMSdcbiAgICogQGV4YW1wbGUgSW5mby5tb250aHMoJ3Nob3J0JywgeyBsb2NhbGU6ICdmci1DQScgfSApWzBdIC8vPT4gJ2phbnYuJ1xuICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnbnVtZXJpYycsIHsgbG9jYWxlOiAnYXInIH0pWzBdIC8vPT4gJ1x1MDY2MSdcbiAgICogQGV4YW1wbGUgSW5mby5tb250aHMoJ2xvbmcnLCB7IG91dHB1dENhbGVuZGFyOiAnaXNsYW1pYycgfSlbMF0gLy89PiAnUmFiaVx1MDJCQiBJJ1xuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHN0YXRpYyBtb250aHMoXG4gICAgbGVuZ3RoID0gXCJsb25nXCIsXG4gICAgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsLCBsb2NPYmogPSBudWxsLCBvdXRwdXRDYWxlbmRhciA9IFwiZ3JlZ29yeVwiIH0gPSB7fVxuICApIHtcbiAgICByZXR1cm4gKGxvY09iaiB8fCBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhcikpLm1vbnRocyhsZW5ndGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBhcnJheSBvZiBmb3JtYXQgbW9udGggbmFtZXMuXG4gICAqIEZvcm1hdCBtb250aHMgZGlmZmVyIGZyb20gc3RhbmRhbG9uZSBtb250aHMgaW4gdGhhdCB0aGV5J3JlIG1lYW50IHRvIGFwcGVhciBuZXh0IHRvIHRoZSBkYXkgb2YgdGhlIG1vbnRoLiBJbiBzb21lIGxhbmd1YWdlcywgdGhhdFxuICAgKiBjaGFuZ2VzIHRoZSBzdHJpbmcuXG4gICAqIFNlZSB7QGxpbmsgSW5mbyNtb250aHN9XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoPSdsb25nJ10gLSB0aGUgbGVuZ3RoIG9mIHRoZSBtb250aCByZXByZXNlbnRhdGlvbiwgc3VjaCBhcyBcIm51bWVyaWNcIiwgXCIyLWRpZ2l0XCIsIFwibmFycm93XCIsIFwic2hvcnRcIiwgXCJsb25nXCJcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGVdIC0gdGhlIGxvY2FsZSBjb2RlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5udW1iZXJpbmdTeXN0ZW09bnVsbF0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm91dHB1dENhbGVuZGFyPSdncmVnb3J5J10gLSB0aGUgY2FsZW5kYXJcbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBzdGF0aWMgbW9udGhzRm9ybWF0KFxuICAgIGxlbmd0aCA9IFwibG9uZ1wiLFxuICAgIHsgbG9jYWxlID0gbnVsbCwgbnVtYmVyaW5nU3lzdGVtID0gbnVsbCwgbG9jT2JqID0gbnVsbCwgb3V0cHV0Q2FsZW5kYXIgPSBcImdyZWdvcnlcIiB9ID0ge31cbiAgKSB7XG4gICAgcmV0dXJuIChsb2NPYmogfHwgTG9jYWxlLmNyZWF0ZShsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIpKS5tb250aHMobGVuZ3RoLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gYXJyYXkgb2Ygc3RhbmRhbG9uZSB3ZWVrIG5hbWVzLlxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoPSdsb25nJ10gLSB0aGUgbGVuZ3RoIG9mIHRoZSB3ZWVrZGF5IHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzIFwibmFycm93XCIsIFwic2hvcnRcIiwgXCJsb25nXCIuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtPW51bGxdIC0gdGhlIG51bWJlcmluZyBzeXN0ZW1cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY09iaj1udWxsXSAtIGFuIGV4aXN0aW5nIGxvY2FsZSBvYmplY3QgdG8gdXNlXG4gICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoKVswXSAvLz0+ICdNb25kYXknXG4gICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoJ3Nob3J0JylbMF0gLy89PiAnTW9uJ1xuICAgKiBAZXhhbXBsZSBJbmZvLndlZWtkYXlzKCdzaG9ydCcsIHsgbG9jYWxlOiAnZnItQ0EnIH0pWzBdIC8vPT4gJ2x1bi4nXG4gICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoJ3Nob3J0JywgeyBsb2NhbGU6ICdhcicgfSlbMF0gLy89PiAnXHUwNjI3XHUwNjQ0XHUwNjI3XHUwNjJCXHUwNjQ2XHUwNjRBXHUwNjQ2J1xuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHN0YXRpYyB3ZWVrZGF5cyhsZW5ndGggPSBcImxvbmdcIiwgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsLCBsb2NPYmogPSBudWxsIH0gPSB7fSkge1xuICAgIHJldHVybiAobG9jT2JqIHx8IExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG51bGwpKS53ZWVrZGF5cyhsZW5ndGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBhcnJheSBvZiBmb3JtYXQgd2VlayBuYW1lcy5cbiAgICogRm9ybWF0IHdlZWtkYXlzIGRpZmZlciBmcm9tIHN0YW5kYWxvbmUgd2Vla2RheXMgaW4gdGhhdCB0aGV5J3JlIG1lYW50IHRvIGFwcGVhciBuZXh0IHRvIG1vcmUgZGF0ZSBpbmZvcm1hdGlvbi4gSW4gc29tZSBsYW5ndWFnZXMsIHRoYXRcbiAgICogY2hhbmdlcyB0aGUgc3RyaW5nLlxuICAgKiBTZWUge0BsaW5rIEluZm8jd2Vla2RheXN9XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoPSdsb25nJ10gLSB0aGUgbGVuZ3RoIG9mIHRoZSBtb250aCByZXByZXNlbnRhdGlvbiwgc3VjaCBhcyBcIm5hcnJvd1wiLCBcInNob3J0XCIsIFwibG9uZ1wiLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT1udWxsXSAtIHRoZSBsb2NhbGUgY29kZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtPW51bGxdIC0gdGhlIG51bWJlcmluZyBzeXN0ZW1cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY09iaj1udWxsXSAtIGFuIGV4aXN0aW5nIGxvY2FsZSBvYmplY3QgdG8gdXNlXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3RhdGljIHdlZWtkYXlzRm9ybWF0KFxuICAgIGxlbmd0aCA9IFwibG9uZ1wiLFxuICAgIHsgbG9jYWxlID0gbnVsbCwgbnVtYmVyaW5nU3lzdGVtID0gbnVsbCwgbG9jT2JqID0gbnVsbCB9ID0ge31cbiAgKSB7XG4gICAgcmV0dXJuIChsb2NPYmogfHwgTG9jYWxlLmNyZWF0ZShsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgbnVsbCkpLndlZWtkYXlzKGxlbmd0aCwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIG1lcmlkaWVtcy5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGVdIC0gdGhlIGxvY2FsZSBjb2RlXG4gICAqIEBleGFtcGxlIEluZm8ubWVyaWRpZW1zKCkgLy89PiBbICdBTScsICdQTScgXVxuICAgKiBAZXhhbXBsZSBJbmZvLm1lcmlkaWVtcyh7IGxvY2FsZTogJ215JyB9KSAvLz0+IFsgJ1x1MTAxNFx1MTAzNlx1MTAxNFx1MTAwMFx1MTAzQScsICdcdTEwMEFcdTEwMTRcdTEwMzEnIF1cbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBzdGF0aWMgbWVyaWRpZW1zKHsgbG9jYWxlID0gbnVsbCB9ID0ge30pIHtcbiAgICByZXR1cm4gTG9jYWxlLmNyZWF0ZShsb2NhbGUpLm1lcmlkaWVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBhcnJheSBvZiBlcmFzLCBzdWNoIGFzIFsnQkMnLCAnQUQnXS4gVGhlIGxvY2FsZSBjYW4gYmUgc3BlY2lmaWVkLCBidXQgdGhlIGNhbGVuZGFyIHN5c3RlbSBpcyBhbHdheXMgR3JlZ29yaWFuLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2xlbmd0aD0nc2hvcnQnXSAtIHRoZSBsZW5ndGggb2YgdGhlIGVyYSByZXByZXNlbnRhdGlvbiwgc3VjaCBhcyBcInNob3J0XCIgb3IgXCJsb25nXCIuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZVxuICAgKiBAZXhhbXBsZSBJbmZvLmVyYXMoKSAvLz0+IFsgJ0JDJywgJ0FEJyBdXG4gICAqIEBleGFtcGxlIEluZm8uZXJhcygnbG9uZycpIC8vPT4gWyAnQmVmb3JlIENocmlzdCcsICdBbm5vIERvbWluaScgXVxuICAgKiBAZXhhbXBsZSBJbmZvLmVyYXMoJ2xvbmcnLCB7IGxvY2FsZTogJ2ZyJyB9KSAvLz0+IFsgJ2F2YW50IEpcdTAwRTlzdXMtQ2hyaXN0JywgJ2Fwclx1MDBFOHMgSlx1MDBFOXN1cy1DaHJpc3QnIF1cbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBzdGF0aWMgZXJhcyhsZW5ndGggPSBcInNob3J0XCIsIHsgbG9jYWxlID0gbnVsbCB9ID0ge30pIHtcbiAgICByZXR1cm4gTG9jYWxlLmNyZWF0ZShsb2NhbGUsIG51bGwsIFwiZ3JlZ29yeVwiKS5lcmFzKGxlbmd0aCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBzZXQgb2YgYXZhaWxhYmxlIGZlYXR1cmVzIGluIHRoaXMgZW52aXJvbm1lbnQuXG4gICAqIFNvbWUgZmVhdHVyZXMgb2YgTHV4b24gYXJlIG5vdCBhdmFpbGFibGUgaW4gYWxsIGVudmlyb25tZW50cy4gRm9yIGV4YW1wbGUsIG9uIG9sZGVyIGJyb3dzZXJzLCByZWxhdGl2ZSB0aW1lIGZvcm1hdHRpbmcgc3VwcG9ydCBpcyBub3QgYXZhaWxhYmxlLiBVc2UgdGhpcyBmdW5jdGlvbiB0byBmaWd1cmUgb3V0IGlmIHRoYXQncyB0aGUgY2FzZS5cbiAgICogS2V5czpcbiAgICogKiBgcmVsYXRpdmVgOiB3aGV0aGVyIHRoaXMgZW52aXJvbm1lbnQgc3VwcG9ydHMgcmVsYXRpdmUgdGltZSBmb3JtYXR0aW5nXG4gICAqIEBleGFtcGxlIEluZm8uZmVhdHVyZXMoKSAvLz0+IHsgcmVsYXRpdmU6IGZhbHNlIH1cbiAgICogQHJldHVybiB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGZlYXR1cmVzKCkge1xuICAgIHJldHVybiB7IHJlbGF0aXZlOiBoYXNSZWxhdGl2ZSgpIH07XG4gIH1cbn1cbiIsICJpbXBvcnQgRHVyYXRpb24gZnJvbSBcIi4uL2R1cmF0aW9uLmpzXCI7XG5cbmZ1bmN0aW9uIGRheURpZmYoZWFybGllciwgbGF0ZXIpIHtcbiAgY29uc3QgdXRjRGF5U3RhcnQgPSAoZHQpID0+IGR0LnRvVVRDKDAsIHsga2VlcExvY2FsVGltZTogdHJ1ZSB9KS5zdGFydE9mKFwiZGF5XCIpLnZhbHVlT2YoKSxcbiAgICBtcyA9IHV0Y0RheVN0YXJ0KGxhdGVyKSAtIHV0Y0RheVN0YXJ0KGVhcmxpZXIpO1xuICByZXR1cm4gTWF0aC5mbG9vcihEdXJhdGlvbi5mcm9tTWlsbGlzKG1zKS5hcyhcImRheXNcIikpO1xufVxuXG5mdW5jdGlvbiBoaWdoT3JkZXJEaWZmcyhjdXJzb3IsIGxhdGVyLCB1bml0cykge1xuICBjb25zdCBkaWZmZXJzID0gW1xuICAgIFtcInllYXJzXCIsIChhLCBiKSA9PiBiLnllYXIgLSBhLnllYXJdLFxuICAgIFtcInF1YXJ0ZXJzXCIsIChhLCBiKSA9PiBiLnF1YXJ0ZXIgLSBhLnF1YXJ0ZXJdLFxuICAgIFtcIm1vbnRoc1wiLCAoYSwgYikgPT4gYi5tb250aCAtIGEubW9udGggKyAoYi55ZWFyIC0gYS55ZWFyKSAqIDEyXSxcbiAgICBbXG4gICAgICBcIndlZWtzXCIsXG4gICAgICAoYSwgYikgPT4ge1xuICAgICAgICBjb25zdCBkYXlzID0gZGF5RGlmZihhLCBiKTtcbiAgICAgICAgcmV0dXJuIChkYXlzIC0gKGRheXMgJSA3KSkgLyA3O1xuICAgICAgfSxcbiAgICBdLFxuICAgIFtcImRheXNcIiwgZGF5RGlmZl0sXG4gIF07XG5cbiAgY29uc3QgcmVzdWx0cyA9IHt9O1xuICBsZXQgbG93ZXN0T3JkZXIsIGhpZ2hXYXRlcjtcblxuICBmb3IgKGNvbnN0IFt1bml0LCBkaWZmZXJdIG9mIGRpZmZlcnMpIHtcbiAgICBpZiAodW5pdHMuaW5kZXhPZih1bml0KSA+PSAwKSB7XG4gICAgICBsb3dlc3RPcmRlciA9IHVuaXQ7XG5cbiAgICAgIGxldCBkZWx0YSA9IGRpZmZlcihjdXJzb3IsIGxhdGVyKTtcbiAgICAgIGhpZ2hXYXRlciA9IGN1cnNvci5wbHVzKHsgW3VuaXRdOiBkZWx0YSB9KTtcblxuICAgICAgaWYgKGhpZ2hXYXRlciA+IGxhdGVyKSB7XG4gICAgICAgIGN1cnNvciA9IGN1cnNvci5wbHVzKHsgW3VuaXRdOiBkZWx0YSAtIDEgfSk7XG4gICAgICAgIGRlbHRhIC09IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjdXJzb3IgPSBoaWdoV2F0ZXI7XG4gICAgICB9XG5cbiAgICAgIHJlc3VsdHNbdW5pdF0gPSBkZWx0YTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gW2N1cnNvciwgcmVzdWx0cywgaGlnaFdhdGVyLCBsb3dlc3RPcmRlcl07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChlYXJsaWVyLCBsYXRlciwgdW5pdHMsIG9wdHMpIHtcbiAgbGV0IFtjdXJzb3IsIHJlc3VsdHMsIGhpZ2hXYXRlciwgbG93ZXN0T3JkZXJdID0gaGlnaE9yZGVyRGlmZnMoZWFybGllciwgbGF0ZXIsIHVuaXRzKTtcblxuICBjb25zdCByZW1haW5pbmdNaWxsaXMgPSBsYXRlciAtIGN1cnNvcjtcblxuICBjb25zdCBsb3dlck9yZGVyVW5pdHMgPSB1bml0cy5maWx0ZXIoXG4gICAgKHUpID0+IFtcImhvdXJzXCIsIFwibWludXRlc1wiLCBcInNlY29uZHNcIiwgXCJtaWxsaXNlY29uZHNcIl0uaW5kZXhPZih1KSA+PSAwXG4gICk7XG5cbiAgaWYgKGxvd2VyT3JkZXJVbml0cy5sZW5ndGggPT09IDApIHtcbiAgICBpZiAoaGlnaFdhdGVyIDwgbGF0ZXIpIHtcbiAgICAgIGhpZ2hXYXRlciA9IGN1cnNvci5wbHVzKHsgW2xvd2VzdE9yZGVyXTogMSB9KTtcbiAgICB9XG5cbiAgICBpZiAoaGlnaFdhdGVyICE9PSBjdXJzb3IpIHtcbiAgICAgIHJlc3VsdHNbbG93ZXN0T3JkZXJdID0gKHJlc3VsdHNbbG93ZXN0T3JkZXJdIHx8IDApICsgcmVtYWluaW5nTWlsbGlzIC8gKGhpZ2hXYXRlciAtIGN1cnNvcik7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZHVyYXRpb24gPSBEdXJhdGlvbi5mcm9tT2JqZWN0KHJlc3VsdHMsIG9wdHMpO1xuXG4gIGlmIChsb3dlck9yZGVyVW5pdHMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBEdXJhdGlvbi5mcm9tTWlsbGlzKHJlbWFpbmluZ01pbGxpcywgb3B0cylcbiAgICAgIC5zaGlmdFRvKC4uLmxvd2VyT3JkZXJVbml0cylcbiAgICAgIC5wbHVzKGR1cmF0aW9uKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZHVyYXRpb247XG4gIH1cbn1cbiIsICJjb25zdCBudW1iZXJpbmdTeXN0ZW1zID0ge1xuICBhcmFiOiBcIltcXHUwNjYwLVxcdTA2NjldXCIsXG4gIGFyYWJleHQ6IFwiW1xcdTA2RjAtXFx1MDZGOV1cIixcbiAgYmFsaTogXCJbXFx1MUI1MC1cXHUxQjU5XVwiLFxuICBiZW5nOiBcIltcXHUwOUU2LVxcdTA5RUZdXCIsXG4gIGRldmE6IFwiW1xcdTA5NjYtXFx1MDk2Rl1cIixcbiAgZnVsbHdpZGU6IFwiW1xcdUZGMTAtXFx1RkYxOV1cIixcbiAgZ3VqcjogXCJbXFx1MEFFNi1cXHUwQUVGXVwiLFxuICBoYW5pZGVjOiBcIltcdTMwMDd8XHU0RTAwfFx1NEU4Q3xcdTRFMDl8XHU1NkRCfFx1NEU5NHxcdTUxNkR8XHU0RTAzfFx1NTE2QnxcdTRFNURdXCIsXG4gIGtobXI6IFwiW1xcdTE3RTAtXFx1MTdFOV1cIixcbiAga25kYTogXCJbXFx1MENFNi1cXHUwQ0VGXVwiLFxuICBsYW9vOiBcIltcXHUwRUQwLVxcdTBFRDldXCIsXG4gIGxpbWI6IFwiW1xcdTE5NDYtXFx1MTk0Rl1cIixcbiAgbWx5bTogXCJbXFx1MEQ2Ni1cXHUwRDZGXVwiLFxuICBtb25nOiBcIltcXHUxODEwLVxcdTE4MTldXCIsXG4gIG15bXI6IFwiW1xcdTEwNDAtXFx1MTA0OV1cIixcbiAgb3J5YTogXCJbXFx1MEI2Ni1cXHUwQjZGXVwiLFxuICB0YW1sZGVjOiBcIltcXHUwQkU2LVxcdTBCRUZdXCIsXG4gIHRlbHU6IFwiW1xcdTBDNjYtXFx1MEM2Rl1cIixcbiAgdGhhaTogXCJbXFx1MEU1MC1cXHUwRTU5XVwiLFxuICB0aWJ0OiBcIltcXHUwRjIwLVxcdTBGMjldXCIsXG4gIGxhdG46IFwiXFxcXGRcIixcbn07XG5cbmNvbnN0IG51bWJlcmluZ1N5c3RlbXNVVEYxNiA9IHtcbiAgYXJhYjogWzE2MzIsIDE2NDFdLFxuICBhcmFiZXh0OiBbMTc3NiwgMTc4NV0sXG4gIGJhbGk6IFs2OTkyLCA3MDAxXSxcbiAgYmVuZzogWzI1MzQsIDI1NDNdLFxuICBkZXZhOiBbMjQwNiwgMjQxNV0sXG4gIGZ1bGx3aWRlOiBbNjUyOTYsIDY1MzAzXSxcbiAgZ3VqcjogWzI3OTAsIDI3OTldLFxuICBraG1yOiBbNjExMiwgNjEyMV0sXG4gIGtuZGE6IFszMzAyLCAzMzExXSxcbiAgbGFvbzogWzM3OTIsIDM4MDFdLFxuICBsaW1iOiBbNjQ3MCwgNjQ3OV0sXG4gIG1seW06IFszNDMwLCAzNDM5XSxcbiAgbW9uZzogWzYxNjAsIDYxNjldLFxuICBteW1yOiBbNDE2MCwgNDE2OV0sXG4gIG9yeWE6IFsyOTE4LCAyOTI3XSxcbiAgdGFtbGRlYzogWzMwNDYsIDMwNTVdLFxuICB0ZWx1OiBbMzE3NCwgMzE4M10sXG4gIHRoYWk6IFszNjY0LCAzNjczXSxcbiAgdGlidDogWzM4NzIsIDM4ODFdLFxufTtcblxuY29uc3QgaGFuaWRlY0NoYXJzID0gbnVtYmVyaW5nU3lzdGVtcy5oYW5pZGVjLnJlcGxhY2UoL1tcXFt8XFxdXS9nLCBcIlwiKS5zcGxpdChcIlwiKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRGlnaXRzKHN0cikge1xuICBsZXQgdmFsdWUgPSBwYXJzZUludChzdHIsIDEwKTtcbiAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgIHZhbHVlID0gXCJcIjtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY29kZSA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuXG4gICAgICBpZiAoc3RyW2ldLnNlYXJjaChudW1iZXJpbmdTeXN0ZW1zLmhhbmlkZWMpICE9PSAtMSkge1xuICAgICAgICB2YWx1ZSArPSBoYW5pZGVjQ2hhcnMuaW5kZXhPZihzdHJbaV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gbnVtYmVyaW5nU3lzdGVtc1VURjE2KSB7XG4gICAgICAgICAgY29uc3QgW21pbiwgbWF4XSA9IG51bWJlcmluZ1N5c3RlbXNVVEYxNltrZXldO1xuICAgICAgICAgIGlmIChjb2RlID49IG1pbiAmJiBjb2RlIDw9IG1heCkge1xuICAgICAgICAgICAgdmFsdWUgKz0gY29kZSAtIG1pbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWdpdFJlZ2V4KHsgbnVtYmVyaW5nU3lzdGVtIH0sIGFwcGVuZCA9IFwiXCIpIHtcbiAgcmV0dXJuIG5ldyBSZWdFeHAoYCR7bnVtYmVyaW5nU3lzdGVtc1tudW1iZXJpbmdTeXN0ZW0gfHwgXCJsYXRuXCJdfSR7YXBwZW5kfWApO1xufVxuIiwgImltcG9ydCB7IHBhcnNlTWlsbGlzLCBpc1VuZGVmaW5lZCwgdW50cnVuY2F0ZVllYXIsIHNpZ25lZE9mZnNldCwgaGFzT3duUHJvcGVydHkgfSBmcm9tIFwiLi91dGlsLmpzXCI7XG5pbXBvcnQgRm9ybWF0dGVyIGZyb20gXCIuL2Zvcm1hdHRlci5qc1wiO1xuaW1wb3J0IEZpeGVkT2Zmc2V0Wm9uZSBmcm9tIFwiLi4vem9uZXMvZml4ZWRPZmZzZXRab25lLmpzXCI7XG5pbXBvcnQgSUFOQVpvbmUgZnJvbSBcIi4uL3pvbmVzL0lBTkFab25lLmpzXCI7XG5pbXBvcnQgRGF0ZVRpbWUgZnJvbSBcIi4uL2RhdGV0aW1lLmpzXCI7XG5pbXBvcnQgeyBkaWdpdFJlZ2V4LCBwYXJzZURpZ2l0cyB9IGZyb20gXCIuL2RpZ2l0cy5qc1wiO1xuaW1wb3J0IHsgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JzLmpzXCI7XG5cbmNvbnN0IE1JU1NJTkdfRlRQID0gXCJtaXNzaW5nIEludGwuRGF0ZVRpbWVGb3JtYXQuZm9ybWF0VG9QYXJ0cyBzdXBwb3J0XCI7XG5cbmZ1bmN0aW9uIGludFVuaXQocmVnZXgsIHBvc3QgPSAoaSkgPT4gaSkge1xuICByZXR1cm4geyByZWdleCwgZGVzZXI6IChbc10pID0+IHBvc3QocGFyc2VEaWdpdHMocykpIH07XG59XG5cbmNvbnN0IE5CU1AgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDE2MCk7XG5jb25zdCBzcGFjZU9yTkJTUCA9IGAoIHwke05CU1B9KWA7XG5jb25zdCBzcGFjZU9yTkJTUFJlZ0V4cCA9IG5ldyBSZWdFeHAoc3BhY2VPck5CU1AsIFwiZ1wiKTtcblxuZnVuY3Rpb24gZml4TGlzdFJlZ2V4KHMpIHtcbiAgLy8gbWFrZSBkb3RzIG9wdGlvbmFsIGFuZCBhbHNvIG1ha2UgdGhlbSBsaXRlcmFsXG4gIC8vIG1ha2Ugc3BhY2UgYW5kIG5vbiBicmVha2FibGUgc3BhY2UgY2hhcmFjdGVycyBpbnRlcmNoYW5nZWFibGVcbiAgcmV0dXJuIHMucmVwbGFjZSgvXFwuL2csIFwiXFxcXC4/XCIpLnJlcGxhY2Uoc3BhY2VPck5CU1BSZWdFeHAsIHNwYWNlT3JOQlNQKTtcbn1cblxuZnVuY3Rpb24gc3RyaXBJbnNlbnNpdGl2aXRpZXMocykge1xuICByZXR1cm4gc1xuICAgIC5yZXBsYWNlKC9cXC4vZywgXCJcIikgLy8gaWdub3JlIGRvdHMgdGhhdCB3ZXJlIG1hZGUgb3B0aW9uYWxcbiAgICAucmVwbGFjZShzcGFjZU9yTkJTUFJlZ0V4cCwgXCIgXCIpIC8vIGludGVyY2hhbmdlIHNwYWNlIGFuZCBuYnNwXG4gICAgLnRvTG93ZXJDYXNlKCk7XG59XG5cbmZ1bmN0aW9uIG9uZU9mKHN0cmluZ3MsIHN0YXJ0SW5kZXgpIHtcbiAgaWYgKHN0cmluZ3MgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVnZXg6IFJlZ0V4cChzdHJpbmdzLm1hcChmaXhMaXN0UmVnZXgpLmpvaW4oXCJ8XCIpKSxcbiAgICAgIGRlc2VyOiAoW3NdKSA9PlxuICAgICAgICBzdHJpbmdzLmZpbmRJbmRleCgoaSkgPT4gc3RyaXBJbnNlbnNpdGl2aXRpZXMocykgPT09IHN0cmlwSW5zZW5zaXRpdml0aWVzKGkpKSArIHN0YXJ0SW5kZXgsXG4gICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBvZmZzZXQocmVnZXgsIGdyb3Vwcykge1xuICByZXR1cm4geyByZWdleCwgZGVzZXI6IChbLCBoLCBtXSkgPT4gc2lnbmVkT2Zmc2V0KGgsIG0pLCBncm91cHMgfTtcbn1cblxuZnVuY3Rpb24gc2ltcGxlKHJlZ2V4KSB7XG4gIHJldHVybiB7IHJlZ2V4LCBkZXNlcjogKFtzXSkgPT4gcyB9O1xufVxuXG5mdW5jdGlvbiBlc2NhcGVUb2tlbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZSgvW1xcLVxcW1xcXXt9KCkqKz8uLFxcXFxcXF4kfCNcXHNdL2csIFwiXFxcXCQmXCIpO1xufVxuXG5mdW5jdGlvbiB1bml0Rm9yVG9rZW4odG9rZW4sIGxvYykge1xuICBjb25zdCBvbmUgPSBkaWdpdFJlZ2V4KGxvYyksXG4gICAgdHdvID0gZGlnaXRSZWdleChsb2MsIFwiezJ9XCIpLFxuICAgIHRocmVlID0gZGlnaXRSZWdleChsb2MsIFwiezN9XCIpLFxuICAgIGZvdXIgPSBkaWdpdFJlZ2V4KGxvYywgXCJ7NH1cIiksXG4gICAgc2l4ID0gZGlnaXRSZWdleChsb2MsIFwiezZ9XCIpLFxuICAgIG9uZU9yVHdvID0gZGlnaXRSZWdleChsb2MsIFwiezEsMn1cIiksXG4gICAgb25lVG9UaHJlZSA9IGRpZ2l0UmVnZXgobG9jLCBcInsxLDN9XCIpLFxuICAgIG9uZVRvU2l4ID0gZGlnaXRSZWdleChsb2MsIFwiezEsNn1cIiksXG4gICAgb25lVG9OaW5lID0gZGlnaXRSZWdleChsb2MsIFwiezEsOX1cIiksXG4gICAgdHdvVG9Gb3VyID0gZGlnaXRSZWdleChsb2MsIFwiezIsNH1cIiksXG4gICAgZm91clRvU2l4ID0gZGlnaXRSZWdleChsb2MsIFwiezQsNn1cIiksXG4gICAgbGl0ZXJhbCA9ICh0KSA9PiAoeyByZWdleDogUmVnRXhwKGVzY2FwZVRva2VuKHQudmFsKSksIGRlc2VyOiAoW3NdKSA9PiBzLCBsaXRlcmFsOiB0cnVlIH0pLFxuICAgIHVuaXRhdGUgPSAodCkgPT4ge1xuICAgICAgaWYgKHRva2VuLmxpdGVyYWwpIHtcbiAgICAgICAgcmV0dXJuIGxpdGVyYWwodCk7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKHQudmFsKSB7XG4gICAgICAgIC8vIGVyYVxuICAgICAgICBjYXNlIFwiR1wiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MuZXJhcyhcInNob3J0XCIsIGZhbHNlKSwgMCk7XG4gICAgICAgIGNhc2UgXCJHR1wiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MuZXJhcyhcImxvbmdcIiwgZmFsc2UpLCAwKTtcbiAgICAgICAgLy8geWVhcnNcbiAgICAgICAgY2FzZSBcInlcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVUb1NpeCk7XG4gICAgICAgIGNhc2UgXCJ5eVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3b1RvRm91ciwgdW50cnVuY2F0ZVllYXIpO1xuICAgICAgICBjYXNlIFwieXl5eVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KGZvdXIpO1xuICAgICAgICBjYXNlIFwieXl5eXlcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChmb3VyVG9TaXgpO1xuICAgICAgICBjYXNlIFwieXl5eXl5XCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQoc2l4KTtcbiAgICAgICAgLy8gbW9udGhzXG4gICAgICAgIGNhc2UgXCJNXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pO1xuICAgICAgICBjYXNlIFwiTU1cIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pO1xuICAgICAgICBjYXNlIFwiTU1NXCI6XG4gICAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy5tb250aHMoXCJzaG9ydFwiLCB0cnVlLCBmYWxzZSksIDEpO1xuICAgICAgICBjYXNlIFwiTU1NTVwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKFwibG9uZ1wiLCB0cnVlLCBmYWxzZSksIDEpO1xuICAgICAgICBjYXNlIFwiTFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcIkxMXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgY2FzZSBcIkxMTFwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKFwic2hvcnRcIiwgZmFsc2UsIGZhbHNlKSwgMSk7XG4gICAgICAgIGNhc2UgXCJMTExMXCI6XG4gICAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy5tb250aHMoXCJsb25nXCIsIGZhbHNlLCBmYWxzZSksIDEpO1xuICAgICAgICAvLyBkYXRlc1xuICAgICAgICBjYXNlIFwiZFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcImRkXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgLy8gb3JkaW5hbHNcbiAgICAgICAgY2FzZSBcIm9cIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVUb1RocmVlKTtcbiAgICAgICAgY2FzZSBcIm9vb1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHRocmVlKTtcbiAgICAgICAgLy8gdGltZVxuICAgICAgICBjYXNlIFwiSEhcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pO1xuICAgICAgICBjYXNlIFwiSFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcImhoXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgY2FzZSBcImhcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJtbVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIGNhc2UgXCJtXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pO1xuICAgICAgICBjYXNlIFwicVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcInFxXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgY2FzZSBcInNcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJzc1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lVG9UaHJlZSk7XG4gICAgICAgIGNhc2UgXCJTU1NcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0aHJlZSk7XG4gICAgICAgIGNhc2UgXCJ1XCI6XG4gICAgICAgICAgcmV0dXJuIHNpbXBsZShvbmVUb05pbmUpO1xuICAgICAgICBjYXNlIFwidXVcIjpcbiAgICAgICAgICByZXR1cm4gc2ltcGxlKG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcInV1dVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZSk7XG4gICAgICAgIC8vIG1lcmlkaWVtXG4gICAgICAgIGNhc2UgXCJhXCI6XG4gICAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy5tZXJpZGllbXMoKSwgMCk7XG4gICAgICAgIC8vIHdlZWtZZWFyIChrKVxuICAgICAgICBjYXNlIFwia2tra1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KGZvdXIpO1xuICAgICAgICBjYXNlIFwia2tcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d29Ub0ZvdXIsIHVudHJ1bmNhdGVZZWFyKTtcbiAgICAgICAgLy8gd2Vla051bWJlciAoVylcbiAgICAgICAgY2FzZSBcIldcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJXV1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIC8vIHdlZWtkYXlzXG4gICAgICAgIGNhc2UgXCJFXCI6XG4gICAgICAgIGNhc2UgXCJjXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lKTtcbiAgICAgICAgY2FzZSBcIkVFRVwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoXCJzaG9ydFwiLCBmYWxzZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgY2FzZSBcIkVFRUVcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLndlZWtkYXlzKFwibG9uZ1wiLCBmYWxzZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgY2FzZSBcImNjY1wiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoXCJzaG9ydFwiLCB0cnVlLCBmYWxzZSksIDEpO1xuICAgICAgICBjYXNlIFwiY2NjY1wiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoXCJsb25nXCIsIHRydWUsIGZhbHNlKSwgMSk7XG4gICAgICAgIC8vIG9mZnNldC96b25lXG4gICAgICAgIGNhc2UgXCJaXCI6XG4gICAgICAgIGNhc2UgXCJaWlwiOlxuICAgICAgICAgIHJldHVybiBvZmZzZXQobmV3IFJlZ0V4cChgKFsrLV0ke29uZU9yVHdvLnNvdXJjZX0pKD86Oigke3R3by5zb3VyY2V9KSk/YCksIDIpO1xuICAgICAgICBjYXNlIFwiWlpaXCI6XG4gICAgICAgICAgcmV0dXJuIG9mZnNldChuZXcgUmVnRXhwKGAoWystXSR7b25lT3JUd28uc291cmNlfSkoJHt0d28uc291cmNlfSk/YCksIDIpO1xuICAgICAgICAvLyB3ZSBkb24ndCBzdXBwb3J0IFpaWlogKFBTVCkgb3IgWlpaWlogKFBhY2lmaWMgU3RhbmRhcmQgVGltZSkgaW4gcGFyc2luZ1xuICAgICAgICAvLyBiZWNhdXNlIHdlIGRvbid0IGhhdmUgYW55IHdheSB0byBmaWd1cmUgb3V0IHdoYXQgdGhleSBhcmVcbiAgICAgICAgY2FzZSBcInpcIjpcbiAgICAgICAgICByZXR1cm4gc2ltcGxlKC9bYS16XystL117MSwyNTZ9Py9pKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gbGl0ZXJhbCh0KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gIGNvbnN0IHVuaXQgPSB1bml0YXRlKHRva2VuKSB8fCB7XG4gICAgaW52YWxpZFJlYXNvbjogTUlTU0lOR19GVFAsXG4gIH07XG5cbiAgdW5pdC50b2tlbiA9IHRva2VuO1xuXG4gIHJldHVybiB1bml0O1xufVxuXG5jb25zdCBwYXJ0VHlwZVN0eWxlVG9Ub2tlblZhbCA9IHtcbiAgeWVhcjoge1xuICAgIFwiMi1kaWdpdFwiOiBcInl5XCIsXG4gICAgbnVtZXJpYzogXCJ5eXl5eVwiLFxuICB9LFxuICBtb250aDoge1xuICAgIG51bWVyaWM6IFwiTVwiLFxuICAgIFwiMi1kaWdpdFwiOiBcIk1NXCIsXG4gICAgc2hvcnQ6IFwiTU1NXCIsXG4gICAgbG9uZzogXCJNTU1NXCIsXG4gIH0sXG4gIGRheToge1xuICAgIG51bWVyaWM6IFwiZFwiLFxuICAgIFwiMi1kaWdpdFwiOiBcImRkXCIsXG4gIH0sXG4gIHdlZWtkYXk6IHtcbiAgICBzaG9ydDogXCJFRUVcIixcbiAgICBsb25nOiBcIkVFRUVcIixcbiAgfSxcbiAgZGF5cGVyaW9kOiBcImFcIixcbiAgZGF5UGVyaW9kOiBcImFcIixcbiAgaG91cjoge1xuICAgIG51bWVyaWM6IFwiaFwiLFxuICAgIFwiMi1kaWdpdFwiOiBcImhoXCIsXG4gIH0sXG4gIG1pbnV0ZToge1xuICAgIG51bWVyaWM6IFwibVwiLFxuICAgIFwiMi1kaWdpdFwiOiBcIm1tXCIsXG4gIH0sXG4gIHNlY29uZDoge1xuICAgIG51bWVyaWM6IFwic1wiLFxuICAgIFwiMi1kaWdpdFwiOiBcInNzXCIsXG4gIH0sXG59O1xuXG5mdW5jdGlvbiB0b2tlbkZvclBhcnQocGFydCwgbG9jYWxlLCBmb3JtYXRPcHRzKSB7XG4gIGNvbnN0IHsgdHlwZSwgdmFsdWUgfSA9IHBhcnQ7XG5cbiAgaWYgKHR5cGUgPT09IFwibGl0ZXJhbFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpdGVyYWw6IHRydWUsXG4gICAgICB2YWw6IHZhbHVlLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBzdHlsZSA9IGZvcm1hdE9wdHNbdHlwZV07XG5cbiAgbGV0IHZhbCA9IHBhcnRUeXBlU3R5bGVUb1Rva2VuVmFsW3R5cGVdO1xuICBpZiAodHlwZW9mIHZhbCA9PT0gXCJvYmplY3RcIikge1xuICAgIHZhbCA9IHZhbFtzdHlsZV07XG4gIH1cblxuICBpZiAodmFsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpdGVyYWw6IGZhbHNlLFxuICAgICAgdmFsLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBidWlsZFJlZ2V4KHVuaXRzKSB7XG4gIGNvbnN0IHJlID0gdW5pdHMubWFwKCh1KSA9PiB1LnJlZ2V4KS5yZWR1Y2UoKGYsIHIpID0+IGAke2Z9KCR7ci5zb3VyY2V9KWAsIFwiXCIpO1xuICByZXR1cm4gW2BeJHtyZX0kYCwgdW5pdHNdO1xufVxuXG5mdW5jdGlvbiBtYXRjaChpbnB1dCwgcmVnZXgsIGhhbmRsZXJzKSB7XG4gIGNvbnN0IG1hdGNoZXMgPSBpbnB1dC5tYXRjaChyZWdleCk7XG5cbiAgaWYgKG1hdGNoZXMpIHtcbiAgICBjb25zdCBhbGwgPSB7fTtcbiAgICBsZXQgbWF0Y2hJbmRleCA9IDE7XG4gICAgZm9yIChjb25zdCBpIGluIGhhbmRsZXJzKSB7XG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkoaGFuZGxlcnMsIGkpKSB7XG4gICAgICAgIGNvbnN0IGggPSBoYW5kbGVyc1tpXSxcbiAgICAgICAgICBncm91cHMgPSBoLmdyb3VwcyA/IGguZ3JvdXBzICsgMSA6IDE7XG4gICAgICAgIGlmICghaC5saXRlcmFsICYmIGgudG9rZW4pIHtcbiAgICAgICAgICBhbGxbaC50b2tlbi52YWxbMF1dID0gaC5kZXNlcihtYXRjaGVzLnNsaWNlKG1hdGNoSW5kZXgsIG1hdGNoSW5kZXggKyBncm91cHMpKTtcbiAgICAgICAgfVxuICAgICAgICBtYXRjaEluZGV4ICs9IGdyb3VwcztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFttYXRjaGVzLCBhbGxdO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbbWF0Y2hlcywge31dO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRhdGVUaW1lRnJvbU1hdGNoZXMobWF0Y2hlcykge1xuICBjb25zdCB0b0ZpZWxkID0gKHRva2VuKSA9PiB7XG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgY2FzZSBcIlNcIjpcbiAgICAgICAgcmV0dXJuIFwibWlsbGlzZWNvbmRcIjtcbiAgICAgIGNhc2UgXCJzXCI6XG4gICAgICAgIHJldHVybiBcInNlY29uZFwiO1xuICAgICAgY2FzZSBcIm1cIjpcbiAgICAgICAgcmV0dXJuIFwibWludXRlXCI7XG4gICAgICBjYXNlIFwiaFwiOlxuICAgICAgY2FzZSBcIkhcIjpcbiAgICAgICAgcmV0dXJuIFwiaG91clwiO1xuICAgICAgY2FzZSBcImRcIjpcbiAgICAgICAgcmV0dXJuIFwiZGF5XCI7XG4gICAgICBjYXNlIFwib1wiOlxuICAgICAgICByZXR1cm4gXCJvcmRpbmFsXCI7XG4gICAgICBjYXNlIFwiTFwiOlxuICAgICAgY2FzZSBcIk1cIjpcbiAgICAgICAgcmV0dXJuIFwibW9udGhcIjtcbiAgICAgIGNhc2UgXCJ5XCI6XG4gICAgICAgIHJldHVybiBcInllYXJcIjtcbiAgICAgIGNhc2UgXCJFXCI6XG4gICAgICBjYXNlIFwiY1wiOlxuICAgICAgICByZXR1cm4gXCJ3ZWVrZGF5XCI7XG4gICAgICBjYXNlIFwiV1wiOlxuICAgICAgICByZXR1cm4gXCJ3ZWVrTnVtYmVyXCI7XG4gICAgICBjYXNlIFwia1wiOlxuICAgICAgICByZXR1cm4gXCJ3ZWVrWWVhclwiO1xuICAgICAgY2FzZSBcInFcIjpcbiAgICAgICAgcmV0dXJuIFwicXVhcnRlclwiO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9O1xuXG4gIGxldCB6b25lID0gbnVsbDtcbiAgbGV0IHNwZWNpZmljT2Zmc2V0O1xuICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMueikpIHtcbiAgICB6b25lID0gSUFOQVpvbmUuY3JlYXRlKG1hdGNoZXMueik7XG4gIH1cblxuICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMuWikpIHtcbiAgICBpZiAoIXpvbmUpIHtcbiAgICAgIHpvbmUgPSBuZXcgRml4ZWRPZmZzZXRab25lKG1hdGNoZXMuWik7XG4gICAgfVxuICAgIHNwZWNpZmljT2Zmc2V0ID0gbWF0Y2hlcy5aO1xuICB9XG5cbiAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLnEpKSB7XG4gICAgbWF0Y2hlcy5NID0gKG1hdGNoZXMucSAtIDEpICogMyArIDE7XG4gIH1cblxuICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMuaCkpIHtcbiAgICBpZiAobWF0Y2hlcy5oIDwgMTIgJiYgbWF0Y2hlcy5hID09PSAxKSB7XG4gICAgICBtYXRjaGVzLmggKz0gMTI7XG4gICAgfSBlbHNlIGlmIChtYXRjaGVzLmggPT09IDEyICYmIG1hdGNoZXMuYSA9PT0gMCkge1xuICAgICAgbWF0Y2hlcy5oID0gMDtcbiAgICB9XG4gIH1cblxuICBpZiAobWF0Y2hlcy5HID09PSAwICYmIG1hdGNoZXMueSkge1xuICAgIG1hdGNoZXMueSA9IC1tYXRjaGVzLnk7XG4gIH1cblxuICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMudSkpIHtcbiAgICBtYXRjaGVzLlMgPSBwYXJzZU1pbGxpcyhtYXRjaGVzLnUpO1xuICB9XG5cbiAgY29uc3QgdmFscyA9IE9iamVjdC5rZXlzKG1hdGNoZXMpLnJlZHVjZSgociwgaykgPT4ge1xuICAgIGNvbnN0IGYgPSB0b0ZpZWxkKGspO1xuICAgIGlmIChmKSB7XG4gICAgICByW2ZdID0gbWF0Y2hlc1trXTtcbiAgICB9XG5cbiAgICByZXR1cm4gcjtcbiAgfSwge30pO1xuXG4gIHJldHVybiBbdmFscywgem9uZSwgc3BlY2lmaWNPZmZzZXRdO1xufVxuXG5sZXQgZHVtbXlEYXRlVGltZUNhY2hlID0gbnVsbDtcblxuZnVuY3Rpb24gZ2V0RHVtbXlEYXRlVGltZSgpIHtcbiAgaWYgKCFkdW1teURhdGVUaW1lQ2FjaGUpIHtcbiAgICBkdW1teURhdGVUaW1lQ2FjaGUgPSBEYXRlVGltZS5mcm9tTWlsbGlzKDE1NTU1NTU1NTU1NTUpO1xuICB9XG5cbiAgcmV0dXJuIGR1bW15RGF0ZVRpbWVDYWNoZTtcbn1cblxuZnVuY3Rpb24gbWF5YmVFeHBhbmRNYWNyb1Rva2VuKHRva2VuLCBsb2NhbGUpIHtcbiAgaWYgKHRva2VuLmxpdGVyYWwpIHtcbiAgICByZXR1cm4gdG9rZW47XG4gIH1cblxuICBjb25zdCBmb3JtYXRPcHRzID0gRm9ybWF0dGVyLm1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHModG9rZW4udmFsKTtcblxuICBpZiAoIWZvcm1hdE9wdHMpIHtcbiAgICByZXR1cm4gdG9rZW47XG4gIH1cblxuICBjb25zdCBmb3JtYXR0ZXIgPSBGb3JtYXR0ZXIuY3JlYXRlKGxvY2FsZSwgZm9ybWF0T3B0cyk7XG4gIGNvbnN0IHBhcnRzID0gZm9ybWF0dGVyLmZvcm1hdERhdGVUaW1lUGFydHMoZ2V0RHVtbXlEYXRlVGltZSgpKTtcblxuICBjb25zdCB0b2tlbnMgPSBwYXJ0cy5tYXAoKHApID0+IHRva2VuRm9yUGFydChwLCBsb2NhbGUsIGZvcm1hdE9wdHMpKTtcblxuICBpZiAodG9rZW5zLmluY2x1ZGVzKHVuZGVmaW5lZCkpIHtcbiAgICByZXR1cm4gdG9rZW47XG4gIH1cblxuICByZXR1cm4gdG9rZW5zO1xufVxuXG5mdW5jdGlvbiBleHBhbmRNYWNyb1Rva2Vucyh0b2tlbnMsIGxvY2FsZSkge1xuICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdCguLi50b2tlbnMubWFwKCh0KSA9PiBtYXliZUV4cGFuZE1hY3JvVG9rZW4odCwgbG9jYWxlKSkpO1xufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cGxhaW5Gcm9tVG9rZW5zKGxvY2FsZSwgaW5wdXQsIGZvcm1hdCkge1xuICBjb25zdCB0b2tlbnMgPSBleHBhbmRNYWNyb1Rva2VucyhGb3JtYXR0ZXIucGFyc2VGb3JtYXQoZm9ybWF0KSwgbG9jYWxlKSxcbiAgICB1bml0cyA9IHRva2Vucy5tYXAoKHQpID0+IHVuaXRGb3JUb2tlbih0LCBsb2NhbGUpKSxcbiAgICBkaXNxdWFsaWZ5aW5nVW5pdCA9IHVuaXRzLmZpbmQoKHQpID0+IHQuaW52YWxpZFJlYXNvbik7XG5cbiAgaWYgKGRpc3F1YWxpZnlpbmdVbml0KSB7XG4gICAgcmV0dXJuIHsgaW5wdXQsIHRva2VucywgaW52YWxpZFJlYXNvbjogZGlzcXVhbGlmeWluZ1VuaXQuaW52YWxpZFJlYXNvbiB9O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IFtyZWdleFN0cmluZywgaGFuZGxlcnNdID0gYnVpbGRSZWdleCh1bml0cyksXG4gICAgICByZWdleCA9IFJlZ0V4cChyZWdleFN0cmluZywgXCJpXCIpLFxuICAgICAgW3Jhd01hdGNoZXMsIG1hdGNoZXNdID0gbWF0Y2goaW5wdXQsIHJlZ2V4LCBoYW5kbGVycyksXG4gICAgICBbcmVzdWx0LCB6b25lLCBzcGVjaWZpY09mZnNldF0gPSBtYXRjaGVzXG4gICAgICAgID8gZGF0ZVRpbWVGcm9tTWF0Y2hlcyhtYXRjaGVzKVxuICAgICAgICA6IFtudWxsLCBudWxsLCB1bmRlZmluZWRdO1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eShtYXRjaGVzLCBcImFcIikgJiYgaGFzT3duUHJvcGVydHkobWF0Y2hlcywgXCJIXCIpKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoXG4gICAgICAgIFwiQ2FuJ3QgaW5jbHVkZSBtZXJpZGllbSB3aGVuIHNwZWNpZnlpbmcgMjQtaG91ciBmb3JtYXRcIlxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgaW5wdXQsIHRva2VucywgcmVnZXgsIHJhd01hdGNoZXMsIG1hdGNoZXMsIHJlc3VsdCwgem9uZSwgc3BlY2lmaWNPZmZzZXQgfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGcm9tVG9rZW5zKGxvY2FsZSwgaW5wdXQsIGZvcm1hdCkge1xuICBjb25zdCB7IHJlc3VsdCwgem9uZSwgc3BlY2lmaWNPZmZzZXQsIGludmFsaWRSZWFzb24gfSA9IGV4cGxhaW5Gcm9tVG9rZW5zKGxvY2FsZSwgaW5wdXQsIGZvcm1hdCk7XG4gIHJldHVybiBbcmVzdWx0LCB6b25lLCBzcGVjaWZpY09mZnNldCwgaW52YWxpZFJlYXNvbl07XG59XG4iLCAiaW1wb3J0IHtcbiAgaW50ZWdlckJldHdlZW4sXG4gIGlzTGVhcFllYXIsXG4gIHRpbWVPYmplY3QsXG4gIGRheXNJblllYXIsXG4gIGRheXNJbk1vbnRoLFxuICB3ZWVrc0luV2Vla1llYXIsXG4gIGlzSW50ZWdlcixcbn0gZnJvbSBcIi4vdXRpbC5qc1wiO1xuaW1wb3J0IEludmFsaWQgZnJvbSBcIi4vaW52YWxpZC5qc1wiO1xuXG5jb25zdCBub25MZWFwTGFkZGVyID0gWzAsIDMxLCA1OSwgOTAsIDEyMCwgMTUxLCAxODEsIDIxMiwgMjQzLCAyNzMsIDMwNCwgMzM0XSxcbiAgbGVhcExhZGRlciA9IFswLCAzMSwgNjAsIDkxLCAxMjEsIDE1MiwgMTgyLCAyMTMsIDI0NCwgMjc0LCAzMDUsIDMzNV07XG5cbmZ1bmN0aW9uIHVuaXRPdXRPZlJhbmdlKHVuaXQsIHZhbHVlKSB7XG4gIHJldHVybiBuZXcgSW52YWxpZChcbiAgICBcInVuaXQgb3V0IG9mIHJhbmdlXCIsXG4gICAgYHlvdSBzcGVjaWZpZWQgJHt2YWx1ZX0gKG9mIHR5cGUgJHt0eXBlb2YgdmFsdWV9KSBhcyBhICR7dW5pdH0sIHdoaWNoIGlzIGludmFsaWRgXG4gICk7XG59XG5cbmZ1bmN0aW9uIGRheU9mV2Vlayh5ZWFyLCBtb250aCwgZGF5KSB7XG4gIGNvbnN0IGpzID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGggLSAxLCBkYXkpKS5nZXRVVENEYXkoKTtcbiAgcmV0dXJuIGpzID09PSAwID8gNyA6IGpzO1xufVxuXG5mdW5jdGlvbiBjb21wdXRlT3JkaW5hbCh5ZWFyLCBtb250aCwgZGF5KSB7XG4gIHJldHVybiBkYXkgKyAoaXNMZWFwWWVhcih5ZWFyKSA/IGxlYXBMYWRkZXIgOiBub25MZWFwTGFkZGVyKVttb250aCAtIDFdO1xufVxuXG5mdW5jdGlvbiB1bmNvbXB1dGVPcmRpbmFsKHllYXIsIG9yZGluYWwpIHtcbiAgY29uc3QgdGFibGUgPSBpc0xlYXBZZWFyKHllYXIpID8gbGVhcExhZGRlciA6IG5vbkxlYXBMYWRkZXIsXG4gICAgbW9udGgwID0gdGFibGUuZmluZEluZGV4KChpKSA9PiBpIDwgb3JkaW5hbCksXG4gICAgZGF5ID0gb3JkaW5hbCAtIHRhYmxlW21vbnRoMF07XG4gIHJldHVybiB7IG1vbnRoOiBtb250aDAgKyAxLCBkYXkgfTtcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBncmVnb3JpYW5Ub1dlZWsoZ3JlZ09iaikge1xuICBjb25zdCB7IHllYXIsIG1vbnRoLCBkYXkgfSA9IGdyZWdPYmosXG4gICAgb3JkaW5hbCA9IGNvbXB1dGVPcmRpbmFsKHllYXIsIG1vbnRoLCBkYXkpLFxuICAgIHdlZWtkYXkgPSBkYXlPZldlZWsoeWVhciwgbW9udGgsIGRheSk7XG5cbiAgbGV0IHdlZWtOdW1iZXIgPSBNYXRoLmZsb29yKChvcmRpbmFsIC0gd2Vla2RheSArIDEwKSAvIDcpLFxuICAgIHdlZWtZZWFyO1xuXG4gIGlmICh3ZWVrTnVtYmVyIDwgMSkge1xuICAgIHdlZWtZZWFyID0geWVhciAtIDE7XG4gICAgd2Vla051bWJlciA9IHdlZWtzSW5XZWVrWWVhcih3ZWVrWWVhcik7XG4gIH0gZWxzZSBpZiAod2Vla051bWJlciA+IHdlZWtzSW5XZWVrWWVhcih5ZWFyKSkge1xuICAgIHdlZWtZZWFyID0geWVhciArIDE7XG4gICAgd2Vla051bWJlciA9IDE7XG4gIH0gZWxzZSB7XG4gICAgd2Vla1llYXIgPSB5ZWFyO1xuICB9XG5cbiAgcmV0dXJuIHsgd2Vla1llYXIsIHdlZWtOdW1iZXIsIHdlZWtkYXksIC4uLnRpbWVPYmplY3QoZ3JlZ09iaikgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdlZWtUb0dyZWdvcmlhbih3ZWVrRGF0YSkge1xuICBjb25zdCB7IHdlZWtZZWFyLCB3ZWVrTnVtYmVyLCB3ZWVrZGF5IH0gPSB3ZWVrRGF0YSxcbiAgICB3ZWVrZGF5T2ZKYW40ID0gZGF5T2ZXZWVrKHdlZWtZZWFyLCAxLCA0KSxcbiAgICB5ZWFySW5EYXlzID0gZGF5c0luWWVhcih3ZWVrWWVhcik7XG5cbiAgbGV0IG9yZGluYWwgPSB3ZWVrTnVtYmVyICogNyArIHdlZWtkYXkgLSB3ZWVrZGF5T2ZKYW40IC0gMyxcbiAgICB5ZWFyO1xuXG4gIGlmIChvcmRpbmFsIDwgMSkge1xuICAgIHllYXIgPSB3ZWVrWWVhciAtIDE7XG4gICAgb3JkaW5hbCArPSBkYXlzSW5ZZWFyKHllYXIpO1xuICB9IGVsc2UgaWYgKG9yZGluYWwgPiB5ZWFySW5EYXlzKSB7XG4gICAgeWVhciA9IHdlZWtZZWFyICsgMTtcbiAgICBvcmRpbmFsIC09IGRheXNJblllYXIod2Vla1llYXIpO1xuICB9IGVsc2Uge1xuICAgIHllYXIgPSB3ZWVrWWVhcjtcbiAgfVxuXG4gIGNvbnN0IHsgbW9udGgsIGRheSB9ID0gdW5jb21wdXRlT3JkaW5hbCh5ZWFyLCBvcmRpbmFsKTtcbiAgcmV0dXJuIHsgeWVhciwgbW9udGgsIGRheSwgLi4udGltZU9iamVjdCh3ZWVrRGF0YSkgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyZWdvcmlhblRvT3JkaW5hbChncmVnRGF0YSkge1xuICBjb25zdCB7IHllYXIsIG1vbnRoLCBkYXkgfSA9IGdyZWdEYXRhO1xuICBjb25zdCBvcmRpbmFsID0gY29tcHV0ZU9yZGluYWwoeWVhciwgbW9udGgsIGRheSk7XG4gIHJldHVybiB7IHllYXIsIG9yZGluYWwsIC4uLnRpbWVPYmplY3QoZ3JlZ0RhdGEpIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvcmRpbmFsVG9HcmVnb3JpYW4ob3JkaW5hbERhdGEpIHtcbiAgY29uc3QgeyB5ZWFyLCBvcmRpbmFsIH0gPSBvcmRpbmFsRGF0YTtcbiAgY29uc3QgeyBtb250aCwgZGF5IH0gPSB1bmNvbXB1dGVPcmRpbmFsKHllYXIsIG9yZGluYWwpO1xuICByZXR1cm4geyB5ZWFyLCBtb250aCwgZGF5LCAuLi50aW1lT2JqZWN0KG9yZGluYWxEYXRhKSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW52YWxpZFdlZWtEYXRhKG9iaikge1xuICBjb25zdCB2YWxpZFllYXIgPSBpc0ludGVnZXIob2JqLndlZWtZZWFyKSxcbiAgICB2YWxpZFdlZWsgPSBpbnRlZ2VyQmV0d2VlbihvYmoud2Vla051bWJlciwgMSwgd2Vla3NJbldlZWtZZWFyKG9iai53ZWVrWWVhcikpLFxuICAgIHZhbGlkV2Vla2RheSA9IGludGVnZXJCZXR3ZWVuKG9iai53ZWVrZGF5LCAxLCA3KTtcblxuICBpZiAoIXZhbGlkWWVhcikge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcIndlZWtZZWFyXCIsIG9iai53ZWVrWWVhcik7XG4gIH0gZWxzZSBpZiAoIXZhbGlkV2Vlaykge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcIndlZWtcIiwgb2JqLndlZWspO1xuICB9IGVsc2UgaWYgKCF2YWxpZFdlZWtkYXkpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJ3ZWVrZGF5XCIsIG9iai53ZWVrZGF5KTtcbiAgfSBlbHNlIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludmFsaWRPcmRpbmFsRGF0YShvYmopIHtcbiAgY29uc3QgdmFsaWRZZWFyID0gaXNJbnRlZ2VyKG9iai55ZWFyKSxcbiAgICB2YWxpZE9yZGluYWwgPSBpbnRlZ2VyQmV0d2VlbihvYmoub3JkaW5hbCwgMSwgZGF5c0luWWVhcihvYmoueWVhcikpO1xuXG4gIGlmICghdmFsaWRZZWFyKSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwieWVhclwiLCBvYmoueWVhcik7XG4gIH0gZWxzZSBpZiAoIXZhbGlkT3JkaW5hbCkge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcIm9yZGluYWxcIiwgb2JqLm9yZGluYWwpO1xuICB9IGVsc2UgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW52YWxpZEdyZWdvcmlhbkRhdGEob2JqKSB7XG4gIGNvbnN0IHZhbGlkWWVhciA9IGlzSW50ZWdlcihvYmoueWVhciksXG4gICAgdmFsaWRNb250aCA9IGludGVnZXJCZXR3ZWVuKG9iai5tb250aCwgMSwgMTIpLFxuICAgIHZhbGlkRGF5ID0gaW50ZWdlckJldHdlZW4ob2JqLmRheSwgMSwgZGF5c0luTW9udGgob2JqLnllYXIsIG9iai5tb250aCkpO1xuXG4gIGlmICghdmFsaWRZZWFyKSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwieWVhclwiLCBvYmoueWVhcik7XG4gIH0gZWxzZSBpZiAoIXZhbGlkTW9udGgpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJtb250aFwiLCBvYmoubW9udGgpO1xuICB9IGVsc2UgaWYgKCF2YWxpZERheSkge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcImRheVwiLCBvYmouZGF5KTtcbiAgfSBlbHNlIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludmFsaWRUaW1lRGF0YShvYmopIHtcbiAgY29uc3QgeyBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmQgfSA9IG9iajtcbiAgY29uc3QgdmFsaWRIb3VyID1cbiAgICAgIGludGVnZXJCZXR3ZWVuKGhvdXIsIDAsIDIzKSB8fFxuICAgICAgKGhvdXIgPT09IDI0ICYmIG1pbnV0ZSA9PT0gMCAmJiBzZWNvbmQgPT09IDAgJiYgbWlsbGlzZWNvbmQgPT09IDApLFxuICAgIHZhbGlkTWludXRlID0gaW50ZWdlckJldHdlZW4obWludXRlLCAwLCA1OSksXG4gICAgdmFsaWRTZWNvbmQgPSBpbnRlZ2VyQmV0d2VlbihzZWNvbmQsIDAsIDU5KSxcbiAgICB2YWxpZE1pbGxpc2Vjb25kID0gaW50ZWdlckJldHdlZW4obWlsbGlzZWNvbmQsIDAsIDk5OSk7XG5cbiAgaWYgKCF2YWxpZEhvdXIpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJob3VyXCIsIGhvdXIpO1xuICB9IGVsc2UgaWYgKCF2YWxpZE1pbnV0ZSkge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcIm1pbnV0ZVwiLCBtaW51dGUpO1xuICB9IGVsc2UgaWYgKCF2YWxpZFNlY29uZCkge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcInNlY29uZFwiLCBzZWNvbmQpO1xuICB9IGVsc2UgaWYgKCF2YWxpZE1pbGxpc2Vjb25kKSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwibWlsbGlzZWNvbmRcIiwgbWlsbGlzZWNvbmQpO1xuICB9IGVsc2UgcmV0dXJuIGZhbHNlO1xufVxuIiwgImltcG9ydCBEdXJhdGlvbiBmcm9tIFwiLi9kdXJhdGlvbi5qc1wiO1xuaW1wb3J0IEludGVydmFsIGZyb20gXCIuL2ludGVydmFsLmpzXCI7XG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3MuanNcIjtcbmltcG9ydCBJbmZvIGZyb20gXCIuL2luZm8uanNcIjtcbmltcG9ydCBGb3JtYXR0ZXIgZnJvbSBcIi4vaW1wbC9mb3JtYXR0ZXIuanNcIjtcbmltcG9ydCBGaXhlZE9mZnNldFpvbmUgZnJvbSBcIi4vem9uZXMvZml4ZWRPZmZzZXRab25lLmpzXCI7XG5pbXBvcnQgTG9jYWxlIGZyb20gXCIuL2ltcGwvbG9jYWxlLmpzXCI7XG5pbXBvcnQge1xuICBpc1VuZGVmaW5lZCxcbiAgbWF5YmVBcnJheSxcbiAgaXNEYXRlLFxuICBpc051bWJlcixcbiAgYmVzdEJ5LFxuICBkYXlzSW5Nb250aCxcbiAgZGF5c0luWWVhcixcbiAgaXNMZWFwWWVhcixcbiAgd2Vla3NJbldlZWtZZWFyLFxuICBub3JtYWxpemVPYmplY3QsXG4gIHJvdW5kVG8sXG4gIG9ialRvTG9jYWxUUyxcbiAgcGFkU3RhcnQsXG59IGZyb20gXCIuL2ltcGwvdXRpbC5qc1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplWm9uZSB9IGZyb20gXCIuL2ltcGwvem9uZVV0aWwuanNcIjtcbmltcG9ydCBkaWZmIGZyb20gXCIuL2ltcGwvZGlmZi5qc1wiO1xuaW1wb3J0IHsgcGFyc2VSRkMyODIyRGF0ZSwgcGFyc2VJU09EYXRlLCBwYXJzZUhUVFBEYXRlLCBwYXJzZVNRTCB9IGZyb20gXCIuL2ltcGwvcmVnZXhQYXJzZXIuanNcIjtcbmltcG9ydCB7IHBhcnNlRnJvbVRva2VucywgZXhwbGFpbkZyb21Ub2tlbnMgfSBmcm9tIFwiLi9pbXBsL3Rva2VuUGFyc2VyLmpzXCI7XG5pbXBvcnQge1xuICBncmVnb3JpYW5Ub1dlZWssXG4gIHdlZWtUb0dyZWdvcmlhbixcbiAgZ3JlZ29yaWFuVG9PcmRpbmFsLFxuICBvcmRpbmFsVG9HcmVnb3JpYW4sXG4gIGhhc0ludmFsaWRHcmVnb3JpYW5EYXRhLFxuICBoYXNJbnZhbGlkV2Vla0RhdGEsXG4gIGhhc0ludmFsaWRPcmRpbmFsRGF0YSxcbiAgaGFzSW52YWxpZFRpbWVEYXRhLFxufSBmcm9tIFwiLi9pbXBsL2NvbnZlcnNpb25zLmpzXCI7XG5pbXBvcnQgKiBhcyBGb3JtYXRzIGZyb20gXCIuL2ltcGwvZm9ybWF0cy5qc1wiO1xuaW1wb3J0IHtcbiAgSW52YWxpZEFyZ3VtZW50RXJyb3IsXG4gIENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yLFxuICBJbnZhbGlkVW5pdEVycm9yLFxuICBJbnZhbGlkRGF0ZVRpbWVFcnJvcixcbn0gZnJvbSBcIi4vZXJyb3JzLmpzXCI7XG5pbXBvcnQgSW52YWxpZCBmcm9tIFwiLi9pbXBsL2ludmFsaWQuanNcIjtcblxuY29uc3QgSU5WQUxJRCA9IFwiSW52YWxpZCBEYXRlVGltZVwiO1xuY29uc3QgTUFYX0RBVEUgPSA4LjY0ZTE1O1xuXG5mdW5jdGlvbiB1bnN1cHBvcnRlZFpvbmUoem9uZSkge1xuICByZXR1cm4gbmV3IEludmFsaWQoXCJ1bnN1cHBvcnRlZCB6b25lXCIsIGB0aGUgem9uZSBcIiR7em9uZS5uYW1lfVwiIGlzIG5vdCBzdXBwb3J0ZWRgKTtcbn1cblxuLy8gd2UgY2FjaGUgd2VlayBkYXRhIG9uIHRoZSBEVCBvYmplY3QgYW5kIHRoaXMgaW50ZXJtZWRpYXRlcyB0aGUgY2FjaGVcbmZ1bmN0aW9uIHBvc3NpYmx5Q2FjaGVkV2Vla0RhdGEoZHQpIHtcbiAgaWYgKGR0LndlZWtEYXRhID09PSBudWxsKSB7XG4gICAgZHQud2Vla0RhdGEgPSBncmVnb3JpYW5Ub1dlZWsoZHQuYyk7XG4gIH1cbiAgcmV0dXJuIGR0LndlZWtEYXRhO1xufVxuXG4vLyBjbG9uZSByZWFsbHkgbWVhbnMsIFwibWFrZSBhIG5ldyBvYmplY3Qgd2l0aCB0aGVzZSBtb2RpZmljYXRpb25zXCIuIGFsbCBcInNldHRlcnNcIiByZWFsbHkgdXNlIHRoaXNcbi8vIHRvIGNyZWF0ZSBhIG5ldyBvYmplY3Qgd2hpbGUgb25seSBjaGFuZ2luZyBzb21lIG9mIHRoZSBwcm9wZXJ0aWVzXG5mdW5jdGlvbiBjbG9uZShpbnN0LCBhbHRzKSB7XG4gIGNvbnN0IGN1cnJlbnQgPSB7XG4gICAgdHM6IGluc3QudHMsXG4gICAgem9uZTogaW5zdC56b25lLFxuICAgIGM6IGluc3QuYyxcbiAgICBvOiBpbnN0Lm8sXG4gICAgbG9jOiBpbnN0LmxvYyxcbiAgICBpbnZhbGlkOiBpbnN0LmludmFsaWQsXG4gIH07XG4gIHJldHVybiBuZXcgRGF0ZVRpbWUoeyAuLi5jdXJyZW50LCAuLi5hbHRzLCBvbGQ6IGN1cnJlbnQgfSk7XG59XG5cbi8vIGZpbmQgdGhlIHJpZ2h0IG9mZnNldCBhIGdpdmVuIGxvY2FsIHRpbWUuIFRoZSBvIGlucHV0IGlzIG91ciBndWVzcywgd2hpY2ggZGV0ZXJtaW5lcyB3aGljaFxuLy8gb2Zmc2V0IHdlJ2xsIHBpY2sgaW4gYW1iaWd1b3VzIGNhc2VzIChlLmcuIHRoZXJlIGFyZSB0d28gMyBBTXMgYi9jIEZhbGxiYWNrIERTVClcbmZ1bmN0aW9uIGZpeE9mZnNldChsb2NhbFRTLCBvLCB0eikge1xuICAvLyBPdXIgVVRDIHRpbWUgaXMganVzdCBhIGd1ZXNzIGJlY2F1c2Ugb3VyIG9mZnNldCBpcyBqdXN0IGEgZ3Vlc3NcbiAgbGV0IHV0Y0d1ZXNzID0gbG9jYWxUUyAtIG8gKiA2MCAqIDEwMDA7XG5cbiAgLy8gVGVzdCB3aGV0aGVyIHRoZSB6b25lIG1hdGNoZXMgdGhlIG9mZnNldCBmb3IgdGhpcyB0c1xuICBjb25zdCBvMiA9IHR6Lm9mZnNldCh1dGNHdWVzcyk7XG5cbiAgLy8gSWYgc28sIG9mZnNldCBkaWRuJ3QgY2hhbmdlIGFuZCB3ZSdyZSBkb25lXG4gIGlmIChvID09PSBvMikge1xuICAgIHJldHVybiBbdXRjR3Vlc3MsIG9dO1xuICB9XG5cbiAgLy8gSWYgbm90LCBjaGFuZ2UgdGhlIHRzIGJ5IHRoZSBkaWZmZXJlbmNlIGluIHRoZSBvZmZzZXRcbiAgdXRjR3Vlc3MgLT0gKG8yIC0gbykgKiA2MCAqIDEwMDA7XG5cbiAgLy8gSWYgdGhhdCBnaXZlcyB1cyB0aGUgbG9jYWwgdGltZSB3ZSB3YW50LCB3ZSdyZSBkb25lXG4gIGNvbnN0IG8zID0gdHoub2Zmc2V0KHV0Y0d1ZXNzKTtcbiAgaWYgKG8yID09PSBvMykge1xuICAgIHJldHVybiBbdXRjR3Vlc3MsIG8yXTtcbiAgfVxuXG4gIC8vIElmIGl0J3MgZGlmZmVyZW50LCB3ZSdyZSBpbiBhIGhvbGUgdGltZS4gVGhlIG9mZnNldCBoYXMgY2hhbmdlZCwgYnV0IHRoZSB3ZSBkb24ndCBhZGp1c3QgdGhlIHRpbWVcbiAgcmV0dXJuIFtsb2NhbFRTIC0gTWF0aC5taW4obzIsIG8zKSAqIDYwICogMTAwMCwgTWF0aC5tYXgobzIsIG8zKV07XG59XG5cbi8vIGNvbnZlcnQgYW4gZXBvY2ggdGltZXN0YW1wIGludG8gYSBjYWxlbmRhciBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gb2Zmc2V0XG5mdW5jdGlvbiB0c1RvT2JqKHRzLCBvZmZzZXQpIHtcbiAgdHMgKz0gb2Zmc2V0ICogNjAgKiAxMDAwO1xuXG4gIGNvbnN0IGQgPSBuZXcgRGF0ZSh0cyk7XG5cbiAgcmV0dXJuIHtcbiAgICB5ZWFyOiBkLmdldFVUQ0Z1bGxZZWFyKCksXG4gICAgbW9udGg6IGQuZ2V0VVRDTW9udGgoKSArIDEsXG4gICAgZGF5OiBkLmdldFVUQ0RhdGUoKSxcbiAgICBob3VyOiBkLmdldFVUQ0hvdXJzKCksXG4gICAgbWludXRlOiBkLmdldFVUQ01pbnV0ZXMoKSxcbiAgICBzZWNvbmQ6IGQuZ2V0VVRDU2Vjb25kcygpLFxuICAgIG1pbGxpc2Vjb25kOiBkLmdldFVUQ01pbGxpc2Vjb25kcygpLFxuICB9O1xufVxuXG4vLyBjb252ZXJ0IGEgY2FsZW5kYXIgb2JqZWN0IHRvIGEgZXBvY2ggdGltZXN0YW1wXG5mdW5jdGlvbiBvYmpUb1RTKG9iaiwgb2Zmc2V0LCB6b25lKSB7XG4gIHJldHVybiBmaXhPZmZzZXQob2JqVG9Mb2NhbFRTKG9iaiksIG9mZnNldCwgem9uZSk7XG59XG5cbi8vIGNyZWF0ZSBhIG5ldyBEVCBpbnN0YW5jZSBieSBhZGRpbmcgYSBkdXJhdGlvbiwgYWRqdXN0aW5nIGZvciBEU1RzXG5mdW5jdGlvbiBhZGp1c3RUaW1lKGluc3QsIGR1cikge1xuICBjb25zdCBvUHJlID0gaW5zdC5vLFxuICAgIHllYXIgPSBpbnN0LmMueWVhciArIE1hdGgudHJ1bmMoZHVyLnllYXJzKSxcbiAgICBtb250aCA9IGluc3QuYy5tb250aCArIE1hdGgudHJ1bmMoZHVyLm1vbnRocykgKyBNYXRoLnRydW5jKGR1ci5xdWFydGVycykgKiAzLFxuICAgIGMgPSB7XG4gICAgICAuLi5pbnN0LmMsXG4gICAgICB5ZWFyLFxuICAgICAgbW9udGgsXG4gICAgICBkYXk6XG4gICAgICAgIE1hdGgubWluKGluc3QuYy5kYXksIGRheXNJbk1vbnRoKHllYXIsIG1vbnRoKSkgK1xuICAgICAgICBNYXRoLnRydW5jKGR1ci5kYXlzKSArXG4gICAgICAgIE1hdGgudHJ1bmMoZHVyLndlZWtzKSAqIDcsXG4gICAgfSxcbiAgICBtaWxsaXNUb0FkZCA9IER1cmF0aW9uLmZyb21PYmplY3Qoe1xuICAgICAgeWVhcnM6IGR1ci55ZWFycyAtIE1hdGgudHJ1bmMoZHVyLnllYXJzKSxcbiAgICAgIHF1YXJ0ZXJzOiBkdXIucXVhcnRlcnMgLSBNYXRoLnRydW5jKGR1ci5xdWFydGVycyksXG4gICAgICBtb250aHM6IGR1ci5tb250aHMgLSBNYXRoLnRydW5jKGR1ci5tb250aHMpLFxuICAgICAgd2Vla3M6IGR1ci53ZWVrcyAtIE1hdGgudHJ1bmMoZHVyLndlZWtzKSxcbiAgICAgIGRheXM6IGR1ci5kYXlzIC0gTWF0aC50cnVuYyhkdXIuZGF5cyksXG4gICAgICBob3VyczogZHVyLmhvdXJzLFxuICAgICAgbWludXRlczogZHVyLm1pbnV0ZXMsXG4gICAgICBzZWNvbmRzOiBkdXIuc2Vjb25kcyxcbiAgICAgIG1pbGxpc2Vjb25kczogZHVyLm1pbGxpc2Vjb25kcyxcbiAgICB9KS5hcyhcIm1pbGxpc2Vjb25kc1wiKSxcbiAgICBsb2NhbFRTID0gb2JqVG9Mb2NhbFRTKGMpO1xuXG4gIGxldCBbdHMsIG9dID0gZml4T2Zmc2V0KGxvY2FsVFMsIG9QcmUsIGluc3Quem9uZSk7XG5cbiAgaWYgKG1pbGxpc1RvQWRkICE9PSAwKSB7XG4gICAgdHMgKz0gbWlsbGlzVG9BZGQ7XG4gICAgLy8gdGhhdCBjb3VsZCBoYXZlIGNoYW5nZWQgdGhlIG9mZnNldCBieSBnb2luZyBvdmVyIGEgRFNULCBidXQgd2Ugd2FudCB0byBrZWVwIHRoZSB0cyB0aGUgc2FtZVxuICAgIG8gPSBpbnN0LnpvbmUub2Zmc2V0KHRzKTtcbiAgfVxuXG4gIHJldHVybiB7IHRzLCBvIH07XG59XG5cbi8vIGhlbHBlciB1c2VmdWwgaW4gdHVybmluZyB0aGUgcmVzdWx0cyBvZiBwYXJzaW5nIGludG8gcmVhbCBkYXRlc1xuLy8gYnkgaGFuZGxpbmcgdGhlIHpvbmUgb3B0aW9uc1xuZnVuY3Rpb24gcGFyc2VEYXRhVG9EYXRlVGltZShwYXJzZWQsIHBhcnNlZFpvbmUsIG9wdHMsIGZvcm1hdCwgdGV4dCwgc3BlY2lmaWNPZmZzZXQpIHtcbiAgY29uc3QgeyBzZXRab25lLCB6b25lIH0gPSBvcHRzO1xuICBpZiAocGFyc2VkICYmIE9iamVjdC5rZXlzKHBhcnNlZCkubGVuZ3RoICE9PSAwKSB7XG4gICAgY29uc3QgaW50ZXJwcmV0YXRpb25ab25lID0gcGFyc2VkWm9uZSB8fCB6b25lLFxuICAgICAgaW5zdCA9IERhdGVUaW1lLmZyb21PYmplY3QocGFyc2VkLCB7XG4gICAgICAgIC4uLm9wdHMsXG4gICAgICAgIHpvbmU6IGludGVycHJldGF0aW9uWm9uZSxcbiAgICAgICAgc3BlY2lmaWNPZmZzZXQsXG4gICAgICB9KTtcbiAgICByZXR1cm4gc2V0Wm9uZSA/IGluc3QgOiBpbnN0LnNldFpvbmUoem9uZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoXG4gICAgICBuZXcgSW52YWxpZChcInVucGFyc2FibGVcIiwgYHRoZSBpbnB1dCBcIiR7dGV4dH1cIiBjYW4ndCBiZSBwYXJzZWQgYXMgJHtmb3JtYXR9YClcbiAgICApO1xuICB9XG59XG5cbi8vIGlmIHlvdSB3YW50IHRvIG91dHB1dCBhIHRlY2huaWNhbCBmb3JtYXQgKGUuZy4gUkZDIDI4MjIpLCB0aGlzIGhlbHBlclxuLy8gaGVscHMgaGFuZGxlIHRoZSBkZXRhaWxzXG5mdW5jdGlvbiB0b1RlY2hGb3JtYXQoZHQsIGZvcm1hdCwgYWxsb3daID0gdHJ1ZSkge1xuICByZXR1cm4gZHQuaXNWYWxpZFxuICAgID8gRm9ybWF0dGVyLmNyZWF0ZShMb2NhbGUuY3JlYXRlKFwiZW4tVVNcIiksIHtcbiAgICAgICAgYWxsb3daLFxuICAgICAgICBmb3JjZVNpbXBsZTogdHJ1ZSxcbiAgICAgIH0pLmZvcm1hdERhdGVUaW1lRnJvbVN0cmluZyhkdCwgZm9ybWF0KVxuICAgIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gdG9JU09EYXRlKG8sIGV4dGVuZGVkKSB7XG4gIGNvbnN0IGxvbmdGb3JtYXQgPSBvLmMueWVhciA+IDk5OTkgfHwgby5jLnllYXIgPCAwO1xuICBsZXQgYyA9IFwiXCI7XG4gIGlmIChsb25nRm9ybWF0ICYmIG8uYy55ZWFyID49IDApIGMgKz0gXCIrXCI7XG4gIGMgKz0gcGFkU3RhcnQoby5jLnllYXIsIGxvbmdGb3JtYXQgPyA2IDogNCk7XG5cbiAgaWYgKGV4dGVuZGVkKSB7XG4gICAgYyArPSBcIi1cIjtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5tb250aCk7XG4gICAgYyArPSBcIi1cIjtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5kYXkpO1xuICB9IGVsc2Uge1xuICAgIGMgKz0gcGFkU3RhcnQoby5jLm1vbnRoKTtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5kYXkpO1xuICB9XG4gIHJldHVybiBjO1xufVxuXG5mdW5jdGlvbiB0b0lTT1RpbWUobywgZXh0ZW5kZWQsIHN1cHByZXNzU2Vjb25kcywgc3VwcHJlc3NNaWxsaXNlY29uZHMsIGluY2x1ZGVPZmZzZXQpIHtcbiAgbGV0IGMgPSBwYWRTdGFydChvLmMuaG91cik7XG4gIGlmIChleHRlbmRlZCkge1xuICAgIGMgKz0gXCI6XCI7XG4gICAgYyArPSBwYWRTdGFydChvLmMubWludXRlKTtcbiAgICBpZiAoby5jLnNlY29uZCAhPT0gMCB8fCAhc3VwcHJlc3NTZWNvbmRzKSB7XG4gICAgICBjICs9IFwiOlwiO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5taW51dGUpO1xuICB9XG5cbiAgaWYgKG8uYy5zZWNvbmQgIT09IDAgfHwgIXN1cHByZXNzU2Vjb25kcykge1xuICAgIGMgKz0gcGFkU3RhcnQoby5jLnNlY29uZCk7XG5cbiAgICBpZiAoby5jLm1pbGxpc2Vjb25kICE9PSAwIHx8ICFzdXBwcmVzc01pbGxpc2Vjb25kcykge1xuICAgICAgYyArPSBcIi5cIjtcbiAgICAgIGMgKz0gcGFkU3RhcnQoby5jLm1pbGxpc2Vjb25kLCAzKTtcbiAgICB9XG4gIH1cblxuICBpZiAoaW5jbHVkZU9mZnNldCkge1xuICAgIGlmIChvLmlzT2Zmc2V0Rml4ZWQgJiYgby5vZmZzZXQgPT09IDApIHtcbiAgICAgIGMgKz0gXCJaXCI7XG4gICAgfSBlbHNlIGlmIChvLm8gPCAwKSB7XG4gICAgICBjICs9IFwiLVwiO1xuICAgICAgYyArPSBwYWRTdGFydChNYXRoLnRydW5jKC1vLm8gLyA2MCkpO1xuICAgICAgYyArPSBcIjpcIjtcbiAgICAgIGMgKz0gcGFkU3RhcnQoTWF0aC50cnVuYygtby5vICUgNjApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYyArPSBcIitcIjtcbiAgICAgIGMgKz0gcGFkU3RhcnQoTWF0aC50cnVuYyhvLm8gLyA2MCkpO1xuICAgICAgYyArPSBcIjpcIjtcbiAgICAgIGMgKz0gcGFkU3RhcnQoTWF0aC50cnVuYyhvLm8gJSA2MCkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYztcbn1cblxuLy8gZGVmYXVsdHMgZm9yIHVuc3BlY2lmaWVkIHVuaXRzIGluIHRoZSBzdXBwb3J0ZWQgY2FsZW5kYXJzXG5jb25zdCBkZWZhdWx0VW5pdFZhbHVlcyA9IHtcbiAgICBtb250aDogMSxcbiAgICBkYXk6IDEsXG4gICAgaG91cjogMCxcbiAgICBtaW51dGU6IDAsXG4gICAgc2Vjb25kOiAwLFxuICAgIG1pbGxpc2Vjb25kOiAwLFxuICB9LFxuICBkZWZhdWx0V2Vla1VuaXRWYWx1ZXMgPSB7XG4gICAgd2Vla051bWJlcjogMSxcbiAgICB3ZWVrZGF5OiAxLFxuICAgIGhvdXI6IDAsXG4gICAgbWludXRlOiAwLFxuICAgIHNlY29uZDogMCxcbiAgICBtaWxsaXNlY29uZDogMCxcbiAgfSxcbiAgZGVmYXVsdE9yZGluYWxVbml0VmFsdWVzID0ge1xuICAgIG9yZGluYWw6IDEsXG4gICAgaG91cjogMCxcbiAgICBtaW51dGU6IDAsXG4gICAgc2Vjb25kOiAwLFxuICAgIG1pbGxpc2Vjb25kOiAwLFxuICB9O1xuXG4vLyBVbml0cyBpbiB0aGUgc3VwcG9ydGVkIGNhbGVuZGFycywgc29ydGVkIGJ5IGJpZ25lc3NcbmNvbnN0IG9yZGVyZWRVbml0cyA9IFtcInllYXJcIiwgXCJtb250aFwiLCBcImRheVwiLCBcImhvdXJcIiwgXCJtaW51dGVcIiwgXCJzZWNvbmRcIiwgXCJtaWxsaXNlY29uZFwiXSxcbiAgb3JkZXJlZFdlZWtVbml0cyA9IFtcbiAgICBcIndlZWtZZWFyXCIsXG4gICAgXCJ3ZWVrTnVtYmVyXCIsXG4gICAgXCJ3ZWVrZGF5XCIsXG4gICAgXCJob3VyXCIsXG4gICAgXCJtaW51dGVcIixcbiAgICBcInNlY29uZFwiLFxuICAgIFwibWlsbGlzZWNvbmRcIixcbiAgXSxcbiAgb3JkZXJlZE9yZGluYWxVbml0cyA9IFtcInllYXJcIiwgXCJvcmRpbmFsXCIsIFwiaG91clwiLCBcIm1pbnV0ZVwiLCBcInNlY29uZFwiLCBcIm1pbGxpc2Vjb25kXCJdO1xuXG4vLyBzdGFuZGFyZGl6ZSBjYXNlIGFuZCBwbHVyYWxpdHkgaW4gdW5pdHNcbmZ1bmN0aW9uIG5vcm1hbGl6ZVVuaXQodW5pdCkge1xuICBjb25zdCBub3JtYWxpemVkID0ge1xuICAgIHllYXI6IFwieWVhclwiLFxuICAgIHllYXJzOiBcInllYXJcIixcbiAgICBtb250aDogXCJtb250aFwiLFxuICAgIG1vbnRoczogXCJtb250aFwiLFxuICAgIGRheTogXCJkYXlcIixcbiAgICBkYXlzOiBcImRheVwiLFxuICAgIGhvdXI6IFwiaG91clwiLFxuICAgIGhvdXJzOiBcImhvdXJcIixcbiAgICBtaW51dGU6IFwibWludXRlXCIsXG4gICAgbWludXRlczogXCJtaW51dGVcIixcbiAgICBxdWFydGVyOiBcInF1YXJ0ZXJcIixcbiAgICBxdWFydGVyczogXCJxdWFydGVyXCIsXG4gICAgc2Vjb25kOiBcInNlY29uZFwiLFxuICAgIHNlY29uZHM6IFwic2Vjb25kXCIsXG4gICAgbWlsbGlzZWNvbmQ6IFwibWlsbGlzZWNvbmRcIixcbiAgICBtaWxsaXNlY29uZHM6IFwibWlsbGlzZWNvbmRcIixcbiAgICB3ZWVrZGF5OiBcIndlZWtkYXlcIixcbiAgICB3ZWVrZGF5czogXCJ3ZWVrZGF5XCIsXG4gICAgd2Vla251bWJlcjogXCJ3ZWVrTnVtYmVyXCIsXG4gICAgd2Vla3NudW1iZXI6IFwid2Vla051bWJlclwiLFxuICAgIHdlZWtudW1iZXJzOiBcIndlZWtOdW1iZXJcIixcbiAgICB3ZWVreWVhcjogXCJ3ZWVrWWVhclwiLFxuICAgIHdlZWt5ZWFyczogXCJ3ZWVrWWVhclwiLFxuICAgIG9yZGluYWw6IFwib3JkaW5hbFwiLFxuICB9W3VuaXQudG9Mb3dlckNhc2UoKV07XG5cbiAgaWYgKCFub3JtYWxpemVkKSB0aHJvdyBuZXcgSW52YWxpZFVuaXRFcnJvcih1bml0KTtcblxuICByZXR1cm4gbm9ybWFsaXplZDtcbn1cblxuLy8gdGhpcyBpcyBhIGR1bWJlZCBkb3duIHZlcnNpb24gb2YgZnJvbU9iamVjdCgpIHRoYXQgcnVucyBhYm91dCA2MCUgZmFzdGVyXG4vLyBidXQgZG9lc24ndCBkbyBhbnkgdmFsaWRhdGlvbiwgbWFrZXMgYSBidW5jaCBvZiBhc3N1bXB0aW9ucyBhYm91dCB3aGF0IHVuaXRzXG4vLyBhcmUgcHJlc2VudCwgYW5kIHNvIG9uLlxuXG4vLyB0aGlzIGlzIGEgZHVtYmVkIGRvd24gdmVyc2lvbiBvZiBmcm9tT2JqZWN0KCkgdGhhdCBydW5zIGFib3V0IDYwJSBmYXN0ZXJcbi8vIGJ1dCBkb2Vzbid0IGRvIGFueSB2YWxpZGF0aW9uLCBtYWtlcyBhIGJ1bmNoIG9mIGFzc3VtcHRpb25zIGFib3V0IHdoYXQgdW5pdHNcbi8vIGFyZSBwcmVzZW50LCBhbmQgc28gb24uXG5mdW5jdGlvbiBxdWlja0RUKG9iaiwgb3B0cykge1xuICBjb25zdCB6b25lID0gbm9ybWFsaXplWm9uZShvcHRzLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKSxcbiAgICBsb2MgPSBMb2NhbGUuZnJvbU9iamVjdChvcHRzKSxcbiAgICB0c05vdyA9IFNldHRpbmdzLm5vdygpO1xuXG4gIGxldCB0cywgbztcblxuICAvLyBhc3N1bWUgd2UgaGF2ZSB0aGUgaGlnaGVyLW9yZGVyIHVuaXRzXG4gIGlmICghaXNVbmRlZmluZWQob2JqLnllYXIpKSB7XG4gICAgZm9yIChjb25zdCB1IG9mIG9yZGVyZWRVbml0cykge1xuICAgICAgaWYgKGlzVW5kZWZpbmVkKG9ialt1XSkpIHtcbiAgICAgICAgb2JqW3VdID0gZGVmYXVsdFVuaXRWYWx1ZXNbdV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaW52YWxpZCA9IGhhc0ludmFsaWRHcmVnb3JpYW5EYXRhKG9iaikgfHwgaGFzSW52YWxpZFRpbWVEYXRhKG9iaik7XG4gICAgaWYgKGludmFsaWQpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKGludmFsaWQpO1xuICAgIH1cblxuICAgIGNvbnN0IG9mZnNldFByb3ZpcyA9IHpvbmUub2Zmc2V0KHRzTm93KTtcbiAgICBbdHMsIG9dID0gb2JqVG9UUyhvYmosIG9mZnNldFByb3Zpcywgem9uZSk7XG4gIH0gZWxzZSB7XG4gICAgdHMgPSB0c05vdztcbiAgfVxuXG4gIHJldHVybiBuZXcgRGF0ZVRpbWUoeyB0cywgem9uZSwgbG9jLCBvIH0pO1xufVxuXG5mdW5jdGlvbiBkaWZmUmVsYXRpdmUoc3RhcnQsIGVuZCwgb3B0cykge1xuICBjb25zdCByb3VuZCA9IGlzVW5kZWZpbmVkKG9wdHMucm91bmQpID8gdHJ1ZSA6IG9wdHMucm91bmQsXG4gICAgZm9ybWF0ID0gKGMsIHVuaXQpID0+IHtcbiAgICAgIGMgPSByb3VuZFRvKGMsIHJvdW5kIHx8IG9wdHMuY2FsZW5kYXJ5ID8gMCA6IDIsIHRydWUpO1xuICAgICAgY29uc3QgZm9ybWF0dGVyID0gZW5kLmxvYy5jbG9uZShvcHRzKS5yZWxGb3JtYXR0ZXIob3B0cyk7XG4gICAgICByZXR1cm4gZm9ybWF0dGVyLmZvcm1hdChjLCB1bml0KTtcbiAgICB9LFxuICAgIGRpZmZlciA9ICh1bml0KSA9PiB7XG4gICAgICBpZiAob3B0cy5jYWxlbmRhcnkpIHtcbiAgICAgICAgaWYgKCFlbmQuaGFzU2FtZShzdGFydCwgdW5pdCkpIHtcbiAgICAgICAgICByZXR1cm4gZW5kLnN0YXJ0T2YodW5pdCkuZGlmZihzdGFydC5zdGFydE9mKHVuaXQpLCB1bml0KS5nZXQodW5pdCk7XG4gICAgICAgIH0gZWxzZSByZXR1cm4gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBlbmQuZGlmZihzdGFydCwgdW5pdCkuZ2V0KHVuaXQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgaWYgKG9wdHMudW5pdCkge1xuICAgIHJldHVybiBmb3JtYXQoZGlmZmVyKG9wdHMudW5pdCksIG9wdHMudW5pdCk7XG4gIH1cblxuICBmb3IgKGNvbnN0IHVuaXQgb2Ygb3B0cy51bml0cykge1xuICAgIGNvbnN0IGNvdW50ID0gZGlmZmVyKHVuaXQpO1xuICAgIGlmIChNYXRoLmFicyhjb3VudCkgPj0gMSkge1xuICAgICAgcmV0dXJuIGZvcm1hdChjb3VudCwgdW5pdCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBmb3JtYXQoc3RhcnQgPiBlbmQgPyAtMCA6IDAsIG9wdHMudW5pdHNbb3B0cy51bml0cy5sZW5ndGggLSAxXSk7XG59XG5cbmZ1bmN0aW9uIGxhc3RPcHRzKGFyZ0xpc3QpIHtcbiAgbGV0IG9wdHMgPSB7fSxcbiAgICBhcmdzO1xuICBpZiAoYXJnTGlzdC5sZW5ndGggPiAwICYmIHR5cGVvZiBhcmdMaXN0W2FyZ0xpc3QubGVuZ3RoIC0gMV0gPT09IFwib2JqZWN0XCIpIHtcbiAgICBvcHRzID0gYXJnTGlzdFthcmdMaXN0Lmxlbmd0aCAtIDFdO1xuICAgIGFyZ3MgPSBBcnJheS5mcm9tKGFyZ0xpc3QpLnNsaWNlKDAsIGFyZ0xpc3QubGVuZ3RoIC0gMSk7XG4gIH0gZWxzZSB7XG4gICAgYXJncyA9IEFycmF5LmZyb20oYXJnTGlzdCk7XG4gIH1cbiAgcmV0dXJuIFtvcHRzLCBhcmdzXTtcbn1cblxuLyoqXG4gKiBBIERhdGVUaW1lIGlzIGFuIGltbXV0YWJsZSBkYXRhIHN0cnVjdHVyZSByZXByZXNlbnRpbmcgYSBzcGVjaWZpYyBkYXRlIGFuZCB0aW1lIGFuZCBhY2NvbXBhbnlpbmcgbWV0aG9kcy4gSXQgY29udGFpbnMgY2xhc3MgYW5kIGluc3RhbmNlIG1ldGhvZHMgZm9yIGNyZWF0aW5nLCBwYXJzaW5nLCBpbnRlcnJvZ2F0aW5nLCB0cmFuc2Zvcm1pbmcsIGFuZCBmb3JtYXR0aW5nIHRoZW0uXG4gKlxuICogQSBEYXRlVGltZSBjb21wcmlzZXMgb2Y6XG4gKiAqIEEgdGltZXN0YW1wLiBFYWNoIERhdGVUaW1lIGluc3RhbmNlIHJlZmVycyB0byBhIHNwZWNpZmljIG1pbGxpc2Vjb25kIG9mIHRoZSBVbml4IGVwb2NoLlxuICogKiBBIHRpbWUgem9uZS4gRWFjaCBpbnN0YW5jZSBpcyBjb25zaWRlcmVkIGluIHRoZSBjb250ZXh0IG9mIGEgc3BlY2lmaWMgem9uZSAoYnkgZGVmYXVsdCB0aGUgbG9jYWwgc3lzdGVtJ3Mgem9uZSkuXG4gKiAqIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyB0aGF0IGVmZmVjdCBob3cgb3V0cHV0IHN0cmluZ3MgYXJlIGZvcm1hdHRlZCwgc3VjaCBhcyBgbG9jYWxlYCwgYG51bWJlcmluZ1N5c3RlbWAsIGFuZCBgb3V0cHV0Q2FsZW5kYXJgLlxuICpcbiAqIEhlcmUgaXMgYSBicmllZiBvdmVydmlldyBvZiB0aGUgbW9zdCBjb21tb25seSB1c2VkIGZ1bmN0aW9uYWxpdHkgaXQgcHJvdmlkZXM6XG4gKlxuICogKiAqKkNyZWF0aW9uKio6IFRvIGNyZWF0ZSBhIERhdGVUaW1lIGZyb20gaXRzIGNvbXBvbmVudHMsIHVzZSBvbmUgb2YgaXRzIGZhY3RvcnkgY2xhc3MgbWV0aG9kczoge0BsaW5rIERhdGVUaW1lI2xvY2FsfSwge0BsaW5rIERhdGVUaW1lI3V0Y30sIGFuZCAobW9zdCBmbGV4aWJseSkge0BsaW5rIERhdGVUaW1lI2Zyb21PYmplY3R9LiBUbyBjcmVhdGUgb25lIGZyb20gYSBzdGFuZGFyZCBzdHJpbmcgZm9ybWF0LCB1c2Uge0BsaW5rIERhdGVUaW1lI2Zyb21JU099LCB7QGxpbmsgRGF0ZVRpbWUjZnJvbUhUVFB9LCBhbmQge0BsaW5rIERhdGVUaW1lI2Zyb21SRkMyODIyfS4gVG8gY3JlYXRlIG9uZSBmcm9tIGEgY3VzdG9tIHN0cmluZyBmb3JtYXQsIHVzZSB7QGxpbmsgRGF0ZVRpbWUjZnJvbUZvcm1hdH0uIFRvIGNyZWF0ZSBvbmUgZnJvbSBhIG5hdGl2ZSBKUyBkYXRlLCB1c2Uge0BsaW5rIERhdGVUaW1lI2Zyb21KU0RhdGV9LlxuICogKiAqKkdyZWdvcmlhbiBjYWxlbmRhciBhbmQgdGltZSoqOiBUbyBleGFtaW5lIHRoZSBHcmVnb3JpYW4gcHJvcGVydGllcyBvZiBhIERhdGVUaW1lIGluZGl2aWR1YWxseSAoaS5lIGFzIG9wcG9zZWQgdG8gY29sbGVjdGl2ZWx5IHRocm91Z2gge0BsaW5rIERhdGVUaW1lI3RvT2JqZWN0fSksIHVzZSB0aGUge0BsaW5rIERhdGVUaW1lI3llYXJ9LCB7QGxpbmsgRGF0ZVRpbWUjbW9udGh9LFxuICoge0BsaW5rIERhdGVUaW1lI2RheX0sIHtAbGluayBEYXRlVGltZSNob3VyfSwge0BsaW5rIERhdGVUaW1lI21pbnV0ZX0sIHtAbGluayBEYXRlVGltZSNzZWNvbmR9LCB7QGxpbmsgRGF0ZVRpbWUjbWlsbGlzZWNvbmR9IGFjY2Vzc29ycy5cbiAqICogKipXZWVrIGNhbGVuZGFyKio6IEZvciBJU08gd2VlayBjYWxlbmRhciBhdHRyaWJ1dGVzLCBzZWUgdGhlIHtAbGluayBEYXRlVGltZSN3ZWVrWWVhcn0sIHtAbGluayBEYXRlVGltZSN3ZWVrTnVtYmVyfSwgYW5kIHtAbGluayBEYXRlVGltZSN3ZWVrZGF5fSBhY2Nlc3NvcnMuXG4gKiAqICoqQ29uZmlndXJhdGlvbioqIFNlZSB0aGUge0BsaW5rIERhdGVUaW1lI2xvY2FsZX0gYW5kIHtAbGluayBEYXRlVGltZSNudW1iZXJpbmdTeXN0ZW19IGFjY2Vzc29ycy5cbiAqICogKipUcmFuc2Zvcm1hdGlvbioqOiBUbyB0cmFuc2Zvcm0gdGhlIERhdGVUaW1lIGludG8gb3RoZXIgRGF0ZVRpbWVzLCB1c2Uge0BsaW5rIERhdGVUaW1lI3NldH0sIHtAbGluayBEYXRlVGltZSNyZWNvbmZpZ3VyZX0sIHtAbGluayBEYXRlVGltZSNzZXRab25lfSwge0BsaW5rIERhdGVUaW1lI3NldExvY2FsZX0sIHtAbGluayBEYXRlVGltZS5wbHVzfSwge0BsaW5rIERhdGVUaW1lI21pbnVzfSwge0BsaW5rIERhdGVUaW1lI2VuZE9mfSwge0BsaW5rIERhdGVUaW1lI3N0YXJ0T2Z9LCB7QGxpbmsgRGF0ZVRpbWUjdG9VVEN9LCBhbmQge0BsaW5rIERhdGVUaW1lI3RvTG9jYWx9LlxuICogKiAqKk91dHB1dCoqOiBUbyBjb252ZXJ0IHRoZSBEYXRlVGltZSB0byBvdGhlciByZXByZXNlbnRhdGlvbnMsIHVzZSB0aGUge0BsaW5rIERhdGVUaW1lI3RvUmVsYXRpdmV9LCB7QGxpbmsgRGF0ZVRpbWUjdG9SZWxhdGl2ZUNhbGVuZGFyfSwge0BsaW5rIERhdGVUaW1lI3RvSlNPTn0sIHtAbGluayBEYXRlVGltZSN0b0lTT30sIHtAbGluayBEYXRlVGltZSN0b0hUVFB9LCB7QGxpbmsgRGF0ZVRpbWUjdG9PYmplY3R9LCB7QGxpbmsgRGF0ZVRpbWUjdG9SRkMyODIyfSwge0BsaW5rIERhdGVUaW1lI3RvU3RyaW5nfSwge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSwge0BsaW5rIERhdGVUaW1lI3RvRm9ybWF0fSwge0BsaW5rIERhdGVUaW1lI3RvTWlsbGlzfSBhbmQge0BsaW5rIERhdGVUaW1lI3RvSlNEYXRlfS5cbiAqXG4gKiBUaGVyZSdzIHBsZW50eSBvdGhlcnMgZG9jdW1lbnRlZCBiZWxvdy4gSW4gYWRkaXRpb24sIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHN1YnRsZXIgdG9waWNzIGxpa2UgaW50ZXJuYXRpb25hbGl6YXRpb24sIHRpbWUgem9uZXMsIGFsdGVybmF0aXZlIGNhbGVuZGFycywgdmFsaWRpdHksIGFuZCBzbyBvbiwgc2VlIHRoZSBleHRlcm5hbCBkb2N1bWVudGF0aW9uLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEYXRlVGltZSB7XG4gIC8qKlxuICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbmZpZykge1xuICAgIGNvbnN0IHpvbmUgPSBjb25maWcuem9uZSB8fCBTZXR0aW5ncy5kZWZhdWx0Wm9uZTtcblxuICAgIGxldCBpbnZhbGlkID1cbiAgICAgIGNvbmZpZy5pbnZhbGlkIHx8XG4gICAgICAoTnVtYmVyLmlzTmFOKGNvbmZpZy50cykgPyBuZXcgSW52YWxpZChcImludmFsaWQgaW5wdXRcIikgOiBudWxsKSB8fFxuICAgICAgKCF6b25lLmlzVmFsaWQgPyB1bnN1cHBvcnRlZFpvbmUoem9uZSkgOiBudWxsKTtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLnRzID0gaXNVbmRlZmluZWQoY29uZmlnLnRzKSA/IFNldHRpbmdzLm5vdygpIDogY29uZmlnLnRzO1xuXG4gICAgbGV0IGMgPSBudWxsLFxuICAgICAgbyA9IG51bGw7XG4gICAgaWYgKCFpbnZhbGlkKSB7XG4gICAgICBjb25zdCB1bmNoYW5nZWQgPSBjb25maWcub2xkICYmIGNvbmZpZy5vbGQudHMgPT09IHRoaXMudHMgJiYgY29uZmlnLm9sZC56b25lLmVxdWFscyh6b25lKTtcblxuICAgICAgaWYgKHVuY2hhbmdlZCkge1xuICAgICAgICBbYywgb10gPSBbY29uZmlnLm9sZC5jLCBjb25maWcub2xkLm9dO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgb3QgPSB6b25lLm9mZnNldCh0aGlzLnRzKTtcbiAgICAgICAgYyA9IHRzVG9PYmoodGhpcy50cywgb3QpO1xuICAgICAgICBpbnZhbGlkID0gTnVtYmVyLmlzTmFOKGMueWVhcikgPyBuZXcgSW52YWxpZChcImludmFsaWQgaW5wdXRcIikgOiBudWxsO1xuICAgICAgICBjID0gaW52YWxpZCA/IG51bGwgOiBjO1xuICAgICAgICBvID0gaW52YWxpZCA/IG51bGwgOiBvdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLl96b25lID0gem9uZTtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmxvYyA9IGNvbmZpZy5sb2MgfHwgTG9jYWxlLmNyZWF0ZSgpO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuaW52YWxpZCA9IGludmFsaWQ7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy53ZWVrRGF0YSA9IG51bGw7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5jID0gYztcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLm8gPSBvO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuaXNMdXhvbkRhdGVUaW1lID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIENPTlNUUlVDVFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmb3IgdGhlIGN1cnJlbnQgaW5zdGFudCwgaW4gdGhlIHN5c3RlbSdzIHRpbWUgem9uZS5cbiAgICpcbiAgICogVXNlIFNldHRpbmdzIHRvIG92ZXJyaWRlIHRoZXNlIGRlZmF1bHQgdmFsdWVzIGlmIG5lZWRlZC5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9JU08oKSAvL34+IG5vdyBpbiB0aGUgSVNPIGZvcm1hdFxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBub3coKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7fSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbG9jYWwgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtudW1iZXJ9IFt5ZWFyXSAtIFRoZSBjYWxlbmRhciB5ZWFyLiBJZiBvbWl0dGVkIChhcyBpbiwgY2FsbCBgbG9jYWwoKWAgd2l0aCBubyBhcmd1bWVudHMpLCB0aGUgY3VycmVudCB0aW1lIHdpbGwgYmUgdXNlZFxuICAgKiBAcGFyYW0ge251bWJlcn0gW21vbnRoPTFdIC0gVGhlIG1vbnRoLCAxLWluZGV4ZWRcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtkYXk9MV0gLSBUaGUgZGF5IG9mIHRoZSBtb250aCwgMS1pbmRleGVkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbaG91cj0wXSAtIFRoZSBob3VyIG9mIHRoZSBkYXksIGluIDI0LWhvdXIgdGltZVxuICAgKiBAcGFyYW0ge251bWJlcn0gW21pbnV0ZT0wXSAtIFRoZSBtaW51dGUgb2YgdGhlIGhvdXIsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA1OVxuICAgKiBAcGFyYW0ge251bWJlcn0gW3NlY29uZD0wXSAtIFRoZSBzZWNvbmQgb2YgdGhlIG1pbnV0ZSwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbWlsbGlzZWNvbmQ9MF0gLSBUaGUgbWlsbGlzZWNvbmQgb2YgdGhlIHNlY29uZCwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDk5OVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gbm93XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKHsgem9uZTogXCJBbWVyaWNhL05ld19Zb3JrXCIgfSkgICAgICAvL34+IG5vdywgaW4gVVMgZWFzdCBjb2FzdCB0aW1lXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAxLTAxVDAwOjAwOjAwXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTAxVDAwOjAwOjAwXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCB7IGxvY2FsZTogXCJmclwiIH0pICAgICAvL34+IDIwMTctMDMtMTJUMDA6MDA6MDAsIHdpdGggYSBGcmVuY2ggbG9jYWxlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCA1KSAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjAwOjAwXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCA1LCB7IHpvbmU6IFwidXRjXCIgfSkgICAvL34+IDIwMTctMDMtMTJUMDU6MDA6MDAsIGluIFVUQ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgNDUpICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NTowMFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgNDUsIDEwKSAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NToxMFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgNDUsIDEwLCA3NjUpICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NToxMC43NjVcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgbG9jYWwoKSB7XG4gICAgY29uc3QgW29wdHMsIGFyZ3NdID0gbGFzdE9wdHMoYXJndW1lbnRzKSxcbiAgICAgIFt5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmRdID0gYXJncztcbiAgICByZXR1cm4gcXVpY2tEVCh7IHllYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBtaWxsaXNlY29uZCB9LCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBpbiBVVENcbiAgICogQHBhcmFtIHtudW1iZXJ9IFt5ZWFyXSAtIFRoZSBjYWxlbmRhciB5ZWFyLiBJZiBvbWl0dGVkIChhcyBpbiwgY2FsbCBgdXRjKClgIHdpdGggbm8gYXJndW1lbnRzKSwgdGhlIGN1cnJlbnQgdGltZSB3aWxsIGJlIHVzZWRcbiAgICogQHBhcmFtIHtudW1iZXJ9IFttb250aD0xXSAtIFRoZSBtb250aCwgMS1pbmRleGVkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbZGF5PTFdIC0gVGhlIGRheSBvZiB0aGUgbW9udGhcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtob3VyPTBdIC0gVGhlIGhvdXIgb2YgdGhlIGRheSwgaW4gMjQtaG91ciB0aW1lXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbWludXRlPTBdIC0gVGhlIG1pbnV0ZSBvZiB0aGUgaG91ciwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbc2Vjb25kPTBdIC0gVGhlIHNlY29uZCBvZiB0aGUgbWludXRlLCBtZWFuaW5nIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgNTlcbiAgICogQHBhcmFtIHtudW1iZXJ9IFttaWxsaXNlY29uZD0wXSAtIFRoZSBtaWxsaXNlY29uZCBvZiB0aGUgc2Vjb25kLCBtZWFuaW5nIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgOTk5XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmxvY2FsZV0gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMub3V0cHV0Q2FsZW5kYXJdIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubnVtYmVyaW5nU3lzdGVtXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gbm93XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMS0wMVQwMDowMDowMFpcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTAxVDAwOjAwOjAwWlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMywgMTIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDA6MDA6MDBaXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3LCAzLCAxMiwgNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTowMDowMFpcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjAwWlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMywgMTIsIDUsIDQ1LCB7IGxvY2FsZTogXCJmclwiIH0pICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NTowMFogd2l0aCBhIEZyZW5jaCBsb2NhbGVcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTApICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjEwWlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMywgMTIsIDUsIDQ1LCAxMCwgNzY1LCB7IGxvY2FsZTogXCJmclwiIH0pIC8vfj4gMjAxNy0wMy0xMlQwNTo0NToxMC43NjVaIHdpdGggYSBGcmVuY2ggbG9jYWxlXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc3RhdGljIHV0YygpIHtcbiAgICBjb25zdCBbb3B0cywgYXJnc10gPSBsYXN0T3B0cyhhcmd1bWVudHMpLFxuICAgICAgW3llYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBtaWxsaXNlY29uZF0gPSBhcmdzO1xuXG4gICAgb3B0cy56b25lID0gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlO1xuICAgIHJldHVybiBxdWlja0RUKHsgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kIH0sIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBKYXZhU2NyaXB0IERhdGUgb2JqZWN0LiBVc2VzIHRoZSBkZWZhdWx0IHpvbmUuXG4gICAqIEBwYXJhbSB7RGF0ZX0gZGF0ZSAtIGEgSmF2YVNjcmlwdCBEYXRlIG9iamVjdFxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRpb25zLnpvbmU9J2xvY2FsJ10gLSB0aGUgem9uZSB0byBwbGFjZSB0aGUgRGF0ZVRpbWUgaW50b1xuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNEYXRlKGRhdGUsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHRzID0gaXNEYXRlKGRhdGUpID8gZGF0ZS52YWx1ZU9mKCkgOiBOYU47XG4gICAgaWYgKE51bWJlci5pc05hTih0cykpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKFwiaW52YWxpZCBpbnB1dFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCB6b25lVG9Vc2UgPSBub3JtYWxpemVab25lKG9wdGlvbnMuem9uZSwgU2V0dGluZ3MuZGVmYXVsdFpvbmUpO1xuICAgIGlmICghem9uZVRvVXNlLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKHVuc3VwcG9ydGVkWm9uZSh6b25lVG9Vc2UpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGVUaW1lKHtcbiAgICAgIHRzOiB0cyxcbiAgICAgIHpvbmU6IHpvbmVUb1VzZSxcbiAgICAgIGxvYzogTG9jYWxlLmZyb21PYmplY3Qob3B0aW9ucyksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UgdGhlIGVwb2NoIChtZWFuaW5nIHNpbmNlIDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuIFVzZXMgdGhlIGRlZmF1bHQgem9uZS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IG1pbGxpc2Vjb25kcyAtIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBzaW5jZSAxOTcwIFVUQ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRpb25zLnpvbmU9J2xvY2FsJ10gLSB0aGUgem9uZSB0byBwbGFjZSB0aGUgRGF0ZVRpbWUgaW50b1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubG9jYWxlXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tTWlsbGlzKG1pbGxpc2Vjb25kcywgb3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKCFpc051bWJlcihtaWxsaXNlY29uZHMpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAgIGBmcm9tTWlsbGlzIHJlcXVpcmVzIGEgbnVtZXJpY2FsIGlucHV0LCBidXQgcmVjZWl2ZWQgYSAke3R5cGVvZiBtaWxsaXNlY29uZHN9IHdpdGggdmFsdWUgJHttaWxsaXNlY29uZHN9YFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKG1pbGxpc2Vjb25kcyA8IC1NQVhfREFURSB8fCBtaWxsaXNlY29uZHMgPiBNQVhfREFURSkge1xuICAgICAgLy8gdGhpcyBpc24ndCBwZXJmZWN0IGJlY2F1c2UgYmVjYXVzZSB3ZSBjYW4gc3RpbGwgZW5kIHVwIG91dCBvZiByYW5nZSBiZWNhdXNlIG9mIGFkZGl0aW9uYWwgc2hpZnRpbmcsIGJ1dCBpdCdzIGEgc3RhcnRcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKFwiVGltZXN0YW1wIG91dCBvZiByYW5nZVwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7XG4gICAgICAgIHRzOiBtaWxsaXNlY29uZHMsXG4gICAgICAgIHpvbmU6IG5vcm1hbGl6ZVpvbmUob3B0aW9ucy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSksXG4gICAgICAgIGxvYzogTG9jYWxlLmZyb21PYmplY3Qob3B0aW9ucyksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhIG51bWJlciBvZiBzZWNvbmRzIHNpbmNlIHRoZSBlcG9jaCAobWVhbmluZyBzaW5jZSAxIEphbnVhcnkgMTk3MCAwMDowMDowMCBVVEMpLiBVc2VzIHRoZSBkZWZhdWx0IHpvbmUuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzZWNvbmRzIC0gYSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSAxOTcwIFVUQ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRpb25zLnpvbmU9J2xvY2FsJ10gLSB0aGUgem9uZSB0byBwbGFjZSB0aGUgRGF0ZVRpbWUgaW50b1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubG9jYWxlXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tU2Vjb25kcyhzZWNvbmRzLCBvcHRpb25zID0ge30pIHtcbiAgICBpZiAoIWlzTnVtYmVyKHNlY29uZHMpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJmcm9tU2Vjb25kcyByZXF1aXJlcyBhIG51bWVyaWNhbCBpbnB1dFwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7XG4gICAgICAgIHRzOiBzZWNvbmRzICogMTAwMCxcbiAgICAgICAgem9uZTogbm9ybWFsaXplWm9uZShvcHRpb25zLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKSxcbiAgICAgICAgbG9jOiBMb2NhbGUuZnJvbU9iamVjdChvcHRpb25zKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCBrZXlzIGxpa2UgJ3llYXInIGFuZCAnaG91cicgd2l0aCByZWFzb25hYmxlIGRlZmF1bHRzLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqIC0gdGhlIG9iamVjdCB0byBjcmVhdGUgdGhlIERhdGVUaW1lIGZyb21cbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai55ZWFyIC0gYSB5ZWFyLCBzdWNoIGFzIDE5ODdcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5tb250aCAtIGEgbW9udGgsIDEtMTJcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5kYXkgLSBhIGRheSBvZiB0aGUgbW9udGgsIDEtMzEsIGRlcGVuZGluZyBvbiB0aGUgbW9udGhcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5vcmRpbmFsIC0gZGF5IG9mIHRoZSB5ZWFyLCAxLTM2NSBvciAzNjZcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai53ZWVrWWVhciAtIGFuIElTTyB3ZWVrIHllYXJcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai53ZWVrTnVtYmVyIC0gYW4gSVNPIHdlZWsgbnVtYmVyLCBiZXR3ZWVuIDEgYW5kIDUyIG9yIDUzLCBkZXBlbmRpbmcgb24gdGhlIHllYXJcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai53ZWVrZGF5IC0gYW4gSVNPIHdlZWtkYXksIDEtNywgd2hlcmUgMSBpcyBNb25kYXkgYW5kIDcgaXMgU3VuZGF5XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmouaG91ciAtIGhvdXIgb2YgdGhlIGRheSwgMC0yM1xuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1pbnV0ZSAtIG1pbnV0ZSBvZiB0aGUgaG91ciwgMC01OVxuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLnNlY29uZCAtIHNlY29uZCBvZiB0aGUgbWludXRlLCAwLTU5XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubWlsbGlzZWNvbmQgLSBtaWxsaXNlY29uZCBvZiB0aGUgc2Vjb25kLCAwLTk5OVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgZm9yIGNyZWF0aW5nIHRoaXMgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIGludGVycHJldCB0aGUgbnVtYmVycyBpbiB0aGUgY29udGV4dCBvZiBhIHBhcnRpY3VsYXIgem9uZS4gQ2FuIHRha2UgYW55IHZhbHVlIHRha2VuIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byBzZXRab25lKClcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IHllYXI6IDE5ODIsIG1vbnRoOiA1LCBkYXk6IDI1fSkudG9JU09EYXRlKCkgLy89PiAnMTk4Mi0wNS0yNSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IHllYXI6IDE5ODIgfSkudG9JU09EYXRlKCkgLy89PiAnMTk4Mi0wMS0wMSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IGhvdXI6IDEwLCBtaW51dGU6IDI2LCBzZWNvbmQ6IDYgfSkgLy9+PiB0b2RheSBhdCAxMDoyNjowNlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgaG91cjogMTAsIG1pbnV0ZTogMjYsIHNlY29uZDogNiB9LCB7IHpvbmU6ICd1dGMnIH0pLFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgaG91cjogMTAsIG1pbnV0ZTogMjYsIHNlY29uZDogNiB9LCB7IHpvbmU6ICdsb2NhbCcgfSlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IGhvdXI6IDEwLCBtaW51dGU6IDI2LCBzZWNvbmQ6IDYgfSwgeyB6b25lOiAnQW1lcmljYS9OZXdfWW9yaycgfSlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IHdlZWtZZWFyOiAyMDE2LCB3ZWVrTnVtYmVyOiAyLCB3ZWVrZGF5OiAzIH0pLnRvSVNPRGF0ZSgpIC8vPT4gJzIwMTYtMDEtMTMnXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc3RhdGljIGZyb21PYmplY3Qob2JqLCBvcHRzID0ge30pIHtcbiAgICBvYmogPSBvYmogfHwge307XG4gICAgY29uc3Qgem9uZVRvVXNlID0gbm9ybWFsaXplWm9uZShvcHRzLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKTtcbiAgICBpZiAoIXpvbmVUb1VzZS5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCh1bnN1cHBvcnRlZFpvbmUoem9uZVRvVXNlKSk7XG4gICAgfVxuXG4gICAgY29uc3QgdHNOb3cgPSBTZXR0aW5ncy5ub3coKSxcbiAgICAgIG9mZnNldFByb3ZpcyA9ICFpc1VuZGVmaW5lZChvcHRzLnNwZWNpZmljT2Zmc2V0KVxuICAgICAgICA/IG9wdHMuc3BlY2lmaWNPZmZzZXRcbiAgICAgICAgOiB6b25lVG9Vc2Uub2Zmc2V0KHRzTm93KSxcbiAgICAgIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVPYmplY3Qob2JqLCBub3JtYWxpemVVbml0KSxcbiAgICAgIGNvbnRhaW5zT3JkaW5hbCA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLm9yZGluYWwpLFxuICAgICAgY29udGFpbnNHcmVnb3JZZWFyID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQueWVhciksXG4gICAgICBjb250YWluc0dyZWdvck1EID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQubW9udGgpIHx8ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLmRheSksXG4gICAgICBjb250YWluc0dyZWdvciA9IGNvbnRhaW5zR3JlZ29yWWVhciB8fCBjb250YWluc0dyZWdvck1ELFxuICAgICAgZGVmaW5pdGVXZWVrRGVmID0gbm9ybWFsaXplZC53ZWVrWWVhciB8fCBub3JtYWxpemVkLndlZWtOdW1iZXIsXG4gICAgICBsb2MgPSBMb2NhbGUuZnJvbU9iamVjdChvcHRzKTtcblxuICAgIC8vIGNhc2VzOlxuICAgIC8vIGp1c3QgYSB3ZWVrZGF5IC0+IHRoaXMgd2VlaydzIGluc3RhbmNlIG9mIHRoYXQgd2Vla2RheSwgbm8gd29ycmllc1xuICAgIC8vIChncmVnb3JpYW4gZGF0YSBvciBvcmRpbmFsKSArICh3ZWVrWWVhciBvciB3ZWVrTnVtYmVyKSAtPiBlcnJvclxuICAgIC8vIChncmVnb3JpYW4gbW9udGggb3IgZGF5KSArIG9yZGluYWwgLT4gZXJyb3JcbiAgICAvLyBvdGhlcndpc2UganVzdCB1c2Ugd2Vla3Mgb3Igb3JkaW5hbHMgb3IgZ3JlZ29yaWFuLCBkZXBlbmRpbmcgb24gd2hhdCdzIHNwZWNpZmllZFxuXG4gICAgaWYgKChjb250YWluc0dyZWdvciB8fCBjb250YWluc09yZGluYWwpICYmIGRlZmluaXRlV2Vla0RlZikge1xuICAgICAgdGhyb3cgbmV3IENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yKFxuICAgICAgICBcIkNhbid0IG1peCB3ZWVrWWVhci93ZWVrTnVtYmVyIHVuaXRzIHdpdGggeWVhci9tb250aC9kYXkgb3Igb3JkaW5hbHNcIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY29udGFpbnNHcmVnb3JNRCAmJiBjb250YWluc09yZGluYWwpIHtcbiAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcihcIkNhbid0IG1peCBvcmRpbmFsIGRhdGVzIHdpdGggbW9udGgvZGF5XCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZVdlZWtEYXRhID0gZGVmaW5pdGVXZWVrRGVmIHx8IChub3JtYWxpemVkLndlZWtkYXkgJiYgIWNvbnRhaW5zR3JlZ29yKTtcblxuICAgIC8vIGNvbmZpZ3VyZSBvdXJzZWx2ZXMgdG8gZGVhbCB3aXRoIGdyZWdvcmlhbiBkYXRlcyBvciB3ZWVrIHN0dWZmXG4gICAgbGV0IHVuaXRzLFxuICAgICAgZGVmYXVsdFZhbHVlcyxcbiAgICAgIG9iak5vdyA9IHRzVG9PYmoodHNOb3csIG9mZnNldFByb3Zpcyk7XG4gICAgaWYgKHVzZVdlZWtEYXRhKSB7XG4gICAgICB1bml0cyA9IG9yZGVyZWRXZWVrVW5pdHM7XG4gICAgICBkZWZhdWx0VmFsdWVzID0gZGVmYXVsdFdlZWtVbml0VmFsdWVzO1xuICAgICAgb2JqTm93ID0gZ3JlZ29yaWFuVG9XZWVrKG9iak5vdyk7XG4gICAgfSBlbHNlIGlmIChjb250YWluc09yZGluYWwpIHtcbiAgICAgIHVuaXRzID0gb3JkZXJlZE9yZGluYWxVbml0cztcbiAgICAgIGRlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0T3JkaW5hbFVuaXRWYWx1ZXM7XG4gICAgICBvYmpOb3cgPSBncmVnb3JpYW5Ub09yZGluYWwob2JqTm93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdW5pdHMgPSBvcmRlcmVkVW5pdHM7XG4gICAgICBkZWZhdWx0VmFsdWVzID0gZGVmYXVsdFVuaXRWYWx1ZXM7XG4gICAgfVxuXG4gICAgLy8gc2V0IGRlZmF1bHQgdmFsdWVzIGZvciBtaXNzaW5nIHN0dWZmXG4gICAgbGV0IGZvdW5kRmlyc3QgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IHUgb2YgdW5pdHMpIHtcbiAgICAgIGNvbnN0IHYgPSBub3JtYWxpemVkW3VdO1xuICAgICAgaWYgKCFpc1VuZGVmaW5lZCh2KSkge1xuICAgICAgICBmb3VuZEZpcnN0ID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoZm91bmRGaXJzdCkge1xuICAgICAgICBub3JtYWxpemVkW3VdID0gZGVmYXVsdFZhbHVlc1t1XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vcm1hbGl6ZWRbdV0gPSBvYmpOb3dbdV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gbWFrZSBzdXJlIHRoZSB2YWx1ZXMgd2UgaGF2ZSBhcmUgaW4gcmFuZ2VcbiAgICBjb25zdCBoaWdoZXJPcmRlckludmFsaWQgPSB1c2VXZWVrRGF0YVxuICAgICAgICA/IGhhc0ludmFsaWRXZWVrRGF0YShub3JtYWxpemVkKVxuICAgICAgICA6IGNvbnRhaW5zT3JkaW5hbFxuICAgICAgICA/IGhhc0ludmFsaWRPcmRpbmFsRGF0YShub3JtYWxpemVkKVxuICAgICAgICA6IGhhc0ludmFsaWRHcmVnb3JpYW5EYXRhKG5vcm1hbGl6ZWQpLFxuICAgICAgaW52YWxpZCA9IGhpZ2hlck9yZGVySW52YWxpZCB8fCBoYXNJbnZhbGlkVGltZURhdGEobm9ybWFsaXplZCk7XG5cbiAgICBpZiAoaW52YWxpZCkge1xuICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoaW52YWxpZCk7XG4gICAgfVxuXG4gICAgLy8gY29tcHV0ZSB0aGUgYWN0dWFsIHRpbWVcbiAgICBjb25zdCBncmVnb3JpYW4gPSB1c2VXZWVrRGF0YVxuICAgICAgICA/IHdlZWtUb0dyZWdvcmlhbihub3JtYWxpemVkKVxuICAgICAgICA6IGNvbnRhaW5zT3JkaW5hbFxuICAgICAgICA/IG9yZGluYWxUb0dyZWdvcmlhbihub3JtYWxpemVkKVxuICAgICAgICA6IG5vcm1hbGl6ZWQsXG4gICAgICBbdHNGaW5hbCwgb2Zmc2V0RmluYWxdID0gb2JqVG9UUyhncmVnb3JpYW4sIG9mZnNldFByb3Zpcywgem9uZVRvVXNlKSxcbiAgICAgIGluc3QgPSBuZXcgRGF0ZVRpbWUoe1xuICAgICAgICB0czogdHNGaW5hbCxcbiAgICAgICAgem9uZTogem9uZVRvVXNlLFxuICAgICAgICBvOiBvZmZzZXRGaW5hbCxcbiAgICAgICAgbG9jLFxuICAgICAgfSk7XG5cbiAgICAvLyBncmVnb3JpYW4gZGF0YSArIHdlZWtkYXkgc2VydmVzIG9ubHkgdG8gdmFsaWRhdGVcbiAgICBpZiAobm9ybWFsaXplZC53ZWVrZGF5ICYmIGNvbnRhaW5zR3JlZ29yICYmIG9iai53ZWVrZGF5ICE9PSBpbnN0LndlZWtkYXkpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKFxuICAgICAgICBcIm1pc21hdGNoZWQgd2Vla2RheVwiLFxuICAgICAgICBgeW91IGNhbid0IHNwZWNpZnkgYm90aCBhIHdlZWtkYXkgb2YgJHtub3JtYWxpemVkLndlZWtkYXl9IGFuZCBhIGRhdGUgb2YgJHtpbnN0LnRvSVNPKCl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5zdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGFuIElTTyA4NjAxIHN0cmluZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRoZSBJU08gc3RyaW5nXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0byBhZmZlY3QgdGhlIGNyZWF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSB1c2UgdGhpcyB6b25lIGlmIG5vIG9mZnNldCBpcyBzcGVjaWZpZWQgaW4gdGhlIGlucHV0IHN0cmluZyBpdHNlbGYuIFdpbGwgYWxzbyBjb252ZXJ0IHRoZSB0aW1lIHRvIHRoaXMgem9uZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnNldFpvbmU9ZmFsc2VdIC0gb3ZlcnJpZGUgdGhlIHpvbmUgd2l0aCBhIGZpeGVkLW9mZnNldCB6b25lIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nIGl0c2VsZiwgaWYgaXQgc3BlY2lmaWVzIG9uZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdzeXN0ZW0ncyBsb2NhbGUnXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5vdXRwdXRDYWxlbmRhcl0gLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5udW1iZXJpbmdTeXN0ZW1dIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUlTTygnMjAxNi0wNS0yNVQwOTowODozNC4xMjMnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LTA1LTI1VDA5OjA4OjM0LjEyMyswNjowMCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21JU08oJzIwMTYtMDUtMjVUMDk6MDg6MzQuMTIzKzA2OjAwJywge3NldFpvbmU6IHRydWV9KVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LTA1LTI1VDA5OjA4OjM0LjEyMycsIHt6b25lOiAndXRjJ30pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21JU08oJzIwMTYtVzA1LTQnKVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSVNPKHRleHQsIG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IFt2YWxzLCBwYXJzZWRab25lXSA9IHBhcnNlSVNPRGF0ZSh0ZXh0KTtcbiAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCBcIklTTyA4NjAxXCIsIHRleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYW4gUkZDIDI4MjIgc3RyaW5nXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIFJGQyAyODIyIHN0cmluZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gY29udmVydCB0aGUgdGltZSB0byB0aGlzIHpvbmUuIFNpbmNlIHRoZSBvZmZzZXQgaXMgYWx3YXlzIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nIGl0c2VsZiwgdGhpcyBoYXMgbm8gZWZmZWN0IG9uIHRoZSBpbnRlcnByZXRhdGlvbiBvZiBzdHJpbmcsIG1lcmVseSB0aGUgem9uZSB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGlzIGV4cHJlc3NlZCBpbi5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSBmaXhlZC1vZmZzZXQgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVJGQzI4MjIoJzI1IE5vdiAyMDE2IDEzOjIzOjEyIEdNVCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21SRkMyODIyKCdGcmksIDI1IE5vdiAyMDE2IDEzOjIzOjEyICswNjAwJylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVJGQzI4MjIoJzI1IE5vdiAyMDE2IDEzOjIzIFonKVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tUkZDMjgyMih0ZXh0LCBvcHRzID0ge30pIHtcbiAgICBjb25zdCBbdmFscywgcGFyc2VkWm9uZV0gPSBwYXJzZVJGQzI4MjJEYXRlKHRleHQpO1xuICAgIHJldHVybiBwYXJzZURhdGFUb0RhdGVUaW1lKHZhbHMsIHBhcnNlZFpvbmUsIG9wdHMsIFwiUkZDIDI4MjJcIiwgdGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhbiBIVFRQIGhlYWRlciBkYXRlXG4gICAqIEBzZWUgaHR0cHM6Ly93d3cudzMub3JnL1Byb3RvY29scy9yZmMyNjE2L3JmYzI2MTYtc2VjMy5odG1sI3NlYzMuMy4xXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIEhUVFAgaGVhZGVyIGRhdGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRvIGFmZmVjdCB0aGUgY3JlYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIGNvbnZlcnQgdGhlIHRpbWUgdG8gdGhpcyB6b25lLiBTaW5jZSBIVFRQIGRhdGVzIGFyZSBhbHdheXMgaW4gVVRDLCB0aGlzIGhhcyBubyBlZmZlY3Qgb24gdGhlIGludGVycHJldGF0aW9uIG9mIHN0cmluZywgbWVyZWx5IHRoZSB6b25lIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaXMgZXhwcmVzc2VkIGluLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnNldFpvbmU9ZmFsc2VdIC0gb3ZlcnJpZGUgdGhlIHpvbmUgd2l0aCB0aGUgZml4ZWQtb2Zmc2V0IHpvbmUgc3BlY2lmaWVkIGluIHRoZSBzdHJpbmcuIEZvciBIVFRQIGRhdGVzLCB0aGlzIGlzIGFsd2F5cyBVVEMsIHNvIHRoaXMgb3B0aW9uIGlzIGVxdWl2YWxlbnQgdG8gc2V0dGluZyB0aGUgYHpvbmVgIG9wdGlvbiB0byAndXRjJywgYnV0IHRoaXMgb3B0aW9uIGlzIGluY2x1ZGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHNpbWlsYXIgbWV0aG9kcy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUhUVFAoJ1N1biwgMDYgTm92IDE5OTQgMDg6NDk6MzcgR01UJylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUhUVFAoJ1N1bmRheSwgMDYtTm92LTk0IDA4OjQ5OjM3IEdNVCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21IVFRQKCdTdW4gTm92ICA2IDA4OjQ5OjM3IDE5OTQnKVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSFRUUCh0ZXh0LCBvcHRzID0ge30pIHtcbiAgICBjb25zdCBbdmFscywgcGFyc2VkWm9uZV0gPSBwYXJzZUhUVFBEYXRlKHRleHQpO1xuICAgIHJldHVybiBwYXJzZURhdGFUb0RhdGVUaW1lKHZhbHMsIHBhcnNlZFpvbmUsIG9wdHMsIFwiSFRUUFwiLCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGFuIGlucHV0IHN0cmluZyBhbmQgZm9ybWF0IHN0cmluZy5cbiAgICogRGVmYXVsdHMgdG8gZW4tVVMgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZCwgcmVnYXJkbGVzcyBvZiB0aGUgc3lzdGVtJ3MgbG9jYWxlLiBGb3IgYSB0YWJsZSBvZiB0b2tlbnMgYW5kIHRoZWlyIGludGVycHJldGF0aW9ucywgc2VlIFtoZXJlXShodHRwczovL21vbWVudC5naXRodWIuaW8vbHV4b24vIy9wYXJzaW5nP2lkPXRhYmxlLW9mLXRva2VucykuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIHN0cmluZyB0byBwYXJzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm10IC0gdGhlIGZvcm1hdCB0aGUgc3RyaW5nIGlzIGV4cGVjdGVkIHRvIGJlIGluIChzZWUgdGhlIGxpbmsgYmVsb3cgZm9yIHRoZSBmb3JtYXRzKVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gdXNlIHRoaXMgem9uZSBpZiBubyBvZmZzZXQgaXMgc3BlY2lmaWVkIGluIHRoZSBpbnB1dCBzdHJpbmcgaXRzZWxmLiBXaWxsIGFsc28gY29udmVydCB0aGUgRGF0ZVRpbWUgdG8gdGhpcyB6b25lXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc2V0Wm9uZT1mYWxzZV0gLSBvdmVycmlkZSB0aGUgem9uZSB3aXRoIGEgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIGEgbG9jYWxlIHN0cmluZyB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSBEYXRlVGltZSB0byB0aGlzIGxvY2FsZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgdG8gdGhpcyBudW1iZXJpbmcgc3lzdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tRm9ybWF0KHRleHQsIGZtdCwgb3B0cyA9IHt9KSB7XG4gICAgaWYgKGlzVW5kZWZpbmVkKHRleHQpIHx8IGlzVW5kZWZpbmVkKGZtdCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihcImZyb21Gb3JtYXQgcmVxdWlyZXMgYW4gaW5wdXQgc3RyaW5nIGFuZCBhIGZvcm1hdFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IGxvY2FsZSA9IG51bGwsIG51bWJlcmluZ1N5c3RlbSA9IG51bGwgfSA9IG9wdHMsXG4gICAgICBsb2NhbGVUb1VzZSA9IExvY2FsZS5mcm9tT3B0cyh7XG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgbnVtYmVyaW5nU3lzdGVtLFxuICAgICAgICBkZWZhdWx0VG9FTjogdHJ1ZSxcbiAgICAgIH0pLFxuICAgICAgW3ZhbHMsIHBhcnNlZFpvbmUsIHNwZWNpZmljT2Zmc2V0LCBpbnZhbGlkXSA9IHBhcnNlRnJvbVRva2Vucyhsb2NhbGVUb1VzZSwgdGV4dCwgZm10KTtcbiAgICBpZiAoaW52YWxpZCkge1xuICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoaW52YWxpZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYXJzZURhdGFUb0RhdGVUaW1lKHZhbHMsIHBhcnNlZFpvbmUsIG9wdHMsIGBmb3JtYXQgJHtmbXR9YCwgdGV4dCwgc3BlY2lmaWNPZmZzZXQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgZnJvbUZvcm1hdCBpbnN0ZWFkXG4gICAqL1xuICBzdGF0aWMgZnJvbVN0cmluZyh0ZXh0LCBmbXQsIG9wdHMgPSB7fSkge1xuICAgIHJldHVybiBEYXRlVGltZS5mcm9tRm9ybWF0KHRleHQsIGZtdCwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhIFNRTCBkYXRlLCB0aW1lLCBvciBkYXRldGltZVxuICAgKiBEZWZhdWx0cyB0byBlbi1VUyBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkLCByZWdhcmRsZXNzIG9mIHRoZSBzeXN0ZW0ncyBsb2NhbGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgc3RyaW5nIHRvIHBhcnNlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0byBhZmZlY3QgdGhlIGNyZWF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSB1c2UgdGhpcyB6b25lIGlmIG5vIG9mZnNldCBpcyBzcGVjaWZpZWQgaW4gdGhlIGlucHV0IHN0cmluZyBpdHNlbGYuIFdpbGwgYWxzbyBjb252ZXJ0IHRoZSBEYXRlVGltZSB0byB0aGlzIHpvbmVcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSB6b25lIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nIGl0c2VsZiwgaWYgaXQgc3BlY2lmaWVzIG9uZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gYSBsb2NhbGUgc3RyaW5nIHRvIHVzZSB3aGVuIHBhcnNpbmcuIFdpbGwgYWxzbyBzZXQgdGhlIERhdGVUaW1lIHRvIHRoaXMgbG9jYWxlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHVzZSB3aGVuIHBhcnNpbmcuIFdpbGwgYWxzbyBzZXQgdGhlIHJlc3VsdGluZyBEYXRlVGltZSB0byB0aGlzIG51bWJlcmluZyBzeXN0ZW1cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0JylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNC4zNDInKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MiswNjowMCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUgMDk6MTI6MzQuMzQyIEFtZXJpY2EvTG9zX0FuZ2VsZXMnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MiBBbWVyaWNhL0xvc19BbmdlbGVzJywgeyBzZXRab25lOiB0cnVlIH0pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUgMDk6MTI6MzQuMzQyJywgeyB6b25lOiAnQW1lcmljYS9Mb3NfQW5nZWxlcycgfSlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMDk6MTI6MzQuMzQyJylcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbVNRTCh0ZXh0LCBvcHRzID0ge30pIHtcbiAgICBjb25zdCBbdmFscywgcGFyc2VkWm9uZV0gPSBwYXJzZVNRTCh0ZXh0KTtcbiAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCBcIlNRTFwiLCB0ZXh0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaW52YWxpZCBEYXRlVGltZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvbiAtIHNpbXBsZSBzdHJpbmcgb2Ygd2h5IHRoaXMgRGF0ZVRpbWUgaXMgaW52YWxpZC4gU2hvdWxkIG5vdCBjb250YWluIHBhcmFtZXRlcnMgb3IgYW55dGhpbmcgZWxzZSBkYXRhLWRlcGVuZGVudFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2V4cGxhbmF0aW9uPW51bGxdIC0gbG9uZ2VyIGV4cGxhbmF0aW9uLCBtYXkgaW5jbHVkZSBwYXJhbWV0ZXJzIGFuZCBvdGhlciB1c2VmdWwgZGVidWdnaW5nIGluZm9ybWF0aW9uXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc3RhdGljIGludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbiA9IG51bGwpIHtcbiAgICBpZiAoIXJlYXNvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFwibmVlZCB0byBzcGVjaWZ5IGEgcmVhc29uIHRoZSBEYXRlVGltZSBpcyBpbnZhbGlkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGludmFsaWQgPSByZWFzb24gaW5zdGFuY2VvZiBJbnZhbGlkID8gcmVhc29uIDogbmV3IEludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbik7XG5cbiAgICBpZiAoU2V0dGluZ3MudGhyb3dPbkludmFsaWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkRGF0ZVRpbWVFcnJvcihpbnZhbGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7IGludmFsaWQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIG9iamVjdCBpcyBhIERhdGVUaW1lLiBXb3JrcyBhY3Jvc3MgY29udGV4dCBib3VuZGFyaWVzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgaXNEYXRlVGltZShvKSB7XG4gICAgcmV0dXJuIChvICYmIG8uaXNMdXhvbkRhdGVUaW1lKSB8fCBmYWxzZTtcbiAgfVxuXG4gIC8vIElORk9cblxuICAvKipcbiAgICogR2V0IHRoZSB2YWx1ZSBvZiB1bml0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIGEgdW5pdCBzdWNoIGFzICdtaW51dGUnIG9yICdkYXknXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDcsIDQpLmdldCgnbW9udGgnKTsgLy89PiA3XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDcsIDQpLmdldCgnZGF5Jyk7IC8vPT4gNFxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBnZXQodW5pdCkge1xuICAgIHJldHVybiB0aGlzW3VuaXRdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgRGF0ZVRpbWUgaXMgdmFsaWQuIEludmFsaWQgRGF0ZVRpbWVzIG9jY3VyIHdoZW46XG4gICAqICogVGhlIERhdGVUaW1lIHdhcyBjcmVhdGVkIGZyb20gaW52YWxpZCBjYWxlbmRhciBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgMTN0aCBtb250aCBvciBGZWJydWFyeSAzMFxuICAgKiAqIFRoZSBEYXRlVGltZSB3YXMgY3JlYXRlZCBieSBhbiBvcGVyYXRpb24gb24gYW5vdGhlciBpbnZhbGlkIGRhdGVcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID09PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gZXJyb3IgY29kZSBpZiB0aGlzIERhdGVUaW1lIGlzIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIERhdGVUaW1lIGlzIHZhbGlkXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgaW52YWxpZFJlYXNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBleHBsYW5hdGlvbiBvZiB3aHkgdGhpcyBEYXRlVGltZSBiZWNhbWUgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgRGF0ZVRpbWUgaXMgdmFsaWRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBpbnZhbGlkRXhwbGFuYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBsb2NhbGUgb2YgYSBEYXRlVGltZSwgc3VjaCAnZW4tR0InLiBUaGUgbG9jYWxlIGlzIHVzZWQgd2hlbiBmb3JtYXR0aW5nIHRoZSBEYXRlVGltZVxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IGxvY2FsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2MubG9jYWxlIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG51bWJlcmluZyBzeXN0ZW0gb2YgYSBEYXRlVGltZSwgc3VjaCAnYmVuZycuIFRoZSBudW1iZXJpbmcgc3lzdGVtIGlzIHVzZWQgd2hlbiBmb3JtYXR0aW5nIHRoZSBEYXRlVGltZVxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IG51bWJlcmluZ1N5c3RlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2MubnVtYmVyaW5nU3lzdGVtIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG91dHB1dCBjYWxlbmRhciBvZiBhIERhdGVUaW1lLCBzdWNoICdpc2xhbWljJy4gVGhlIG91dHB1dCBjYWxlbmRhciBpcyB1c2VkIHdoZW4gZm9ybWF0dGluZyB0aGUgRGF0ZVRpbWVcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBvdXRwdXRDYWxlbmRhcigpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2Mub3V0cHV0Q2FsZW5kYXIgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdGltZSB6b25lIGFzc29jaWF0ZWQgd2l0aCB0aGlzIERhdGVUaW1lLlxuICAgKiBAdHlwZSB7Wm9uZX1cbiAgICovXG4gIGdldCB6b25lKCkge1xuICAgIHJldHVybiB0aGlzLl96b25lO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbmFtZSBvZiB0aGUgdGltZSB6b25lLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IHpvbmVOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnpvbmUubmFtZSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB5ZWFyXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS55ZWFyIC8vPT4gMjAxN1xuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IHllYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy55ZWFyIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcXVhcnRlclxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkucXVhcnRlciAvLz0+IDJcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBxdWFydGVyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBNYXRoLmNlaWwodGhpcy5jLm1vbnRoIC8gMykgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtb250aCAoMS0xMikuXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5tb250aCAvLz0+IDVcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBtb250aCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLm1vbnRoIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGF5IG9mIHRoZSBtb250aCAoMS0zMGlzaCkuXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5kYXkgLy89PiAyNVxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IGRheSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLmRheSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGhvdXIgb2YgdGhlIGRheSAoMC0yMykuXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1LCA5KS5ob3VyIC8vPT4gOVxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IGhvdXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy5ob3VyIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbWludXRlIG9mIHRoZSBob3VyICgwLTU5KS5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUsIDksIDMwKS5taW51dGUgLy89PiAzMFxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IG1pbnV0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLm1pbnV0ZSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHNlY29uZCBvZiB0aGUgbWludXRlICgwLTU5KS5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUsIDksIDMwLCA1Mikuc2Vjb25kIC8vPT4gNTJcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBzZWNvbmQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy5zZWNvbmQgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtaWxsaXNlY29uZCBvZiB0aGUgc2Vjb25kICgwLTk5OSkuXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1LCA5LCAzMCwgNTIsIDY1NCkubWlsbGlzZWNvbmQgLy89PiA2NTRcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBtaWxsaXNlY29uZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLm1pbGxpc2Vjb25kIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgd2VlayB5ZWFyXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAxMiwgMzEpLndlZWtZZWFyIC8vPT4gMjAxNVxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IHdlZWtZZWFyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBwb3NzaWJseUNhY2hlZFdlZWtEYXRhKHRoaXMpLndlZWtZZWFyIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgd2VlayBudW1iZXIgb2YgdGhlIHdlZWsgeWVhciAoMS01MmlzaCkuXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkud2Vla051bWJlciAvLz0+IDIxXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgd2Vla051bWJlcigpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gcG9zc2libHlDYWNoZWRXZWVrRGF0YSh0aGlzKS53ZWVrTnVtYmVyIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGF5IG9mIHRoZSB3ZWVrLlxuICAgKiAxIGlzIE1vbmRheSBhbmQgNyBpcyBTdW5kYXlcbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDExLCAzMSkud2Vla2RheSAvLz0+IDRcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCB3ZWVrZGF5KCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBwb3NzaWJseUNhY2hlZFdlZWtEYXRhKHRoaXMpLndlZWtkYXkgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBvcmRpbmFsIChtZWFuaW5nIHRoZSBkYXkgb2YgdGhlIHllYXIpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5vcmRpbmFsIC8vPT4gMTQ1XG4gICAqIEB0eXBlIHtudW1iZXJ8RGF0ZVRpbWV9XG4gICAqL1xuICBnZXQgb3JkaW5hbCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gZ3JlZ29yaWFuVG9PcmRpbmFsKHRoaXMuYykub3JkaW5hbCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGh1bWFuIHJlYWRhYmxlIHNob3J0IG1vbnRoIG5hbWUsIHN1Y2ggYXMgJ09jdCcuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAxMCwgMzApLm1vbnRoU2hvcnQgLy89PiBPY3RcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBtb250aFNob3J0KCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbmZvLm1vbnRocyhcInNob3J0XCIsIHsgbG9jT2JqOiB0aGlzLmxvYyB9KVt0aGlzLm1vbnRoIC0gMV0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaHVtYW4gcmVhZGFibGUgbG9uZyBtb250aCBuYW1lLCBzdWNoIGFzICdPY3RvYmVyJy5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDEwLCAzMCkubW9udGhMb25nIC8vPT4gT2N0b2JlclxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IG1vbnRoTG9uZygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW5mby5tb250aHMoXCJsb25nXCIsIHsgbG9jT2JqOiB0aGlzLmxvYyB9KVt0aGlzLm1vbnRoIC0gMV0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaHVtYW4gcmVhZGFibGUgc2hvcnQgd2Vla2RheSwgc3VjaCBhcyAnTW9uJy5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDEwLCAzMCkud2Vla2RheVNob3J0IC8vPT4gTW9uXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgd2Vla2RheVNob3J0KCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbmZvLndlZWtkYXlzKFwic2hvcnRcIiwgeyBsb2NPYmo6IHRoaXMubG9jIH0pW3RoaXMud2Vla2RheSAtIDFdIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGh1bWFuIHJlYWRhYmxlIGxvbmcgd2Vla2RheSwgc3VjaCBhcyAnTW9uZGF5Jy5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDEwLCAzMCkud2Vla2RheUxvbmcgLy89PiBNb25kYXlcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCB3ZWVrZGF5TG9uZygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW5mby53ZWVrZGF5cyhcImxvbmdcIiwgeyBsb2NPYmo6IHRoaXMubG9jIH0pW3RoaXMud2Vla2RheSAtIDFdIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIFVUQyBvZmZzZXQgb2YgdGhpcyBEYXRlVGltZSBpbiBtaW51dGVzXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLm9mZnNldCAvLz0+IC0yNDBcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkub2Zmc2V0IC8vPT4gMFxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IG9mZnNldCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gK3RoaXMubyA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHNob3J0IGh1bWFuIG5hbWUgZm9yIHRoZSB6b25lJ3MgY3VycmVudCBvZmZzZXQsIGZvciBleGFtcGxlIFwiRVNUXCIgb3IgXCJFRFRcIi5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgb2Zmc2V0TmFtZVNob3J0KCkge1xuICAgIGlmICh0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnpvbmUub2Zmc2V0TmFtZSh0aGlzLnRzLCB7XG4gICAgICAgIGZvcm1hdDogXCJzaG9ydFwiLFxuICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxvbmcgaHVtYW4gbmFtZSBmb3IgdGhlIHpvbmUncyBjdXJyZW50IG9mZnNldCwgZm9yIGV4YW1wbGUgXCJFYXN0ZXJuIFN0YW5kYXJkIFRpbWVcIiBvciBcIkVhc3Rlcm4gRGF5bGlnaHQgVGltZVwiLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBvZmZzZXROYW1lTG9uZygpIHtcbiAgICBpZiAodGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gdGhpcy56b25lLm9mZnNldE5hbWUodGhpcy50cywge1xuICAgICAgICBmb3JtYXQ6IFwibG9uZ1wiLFxuICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgd2hldGhlciB0aGlzIHpvbmUncyBvZmZzZXQgZXZlciBjaGFuZ2VzLCBhcyBpbiBhIERTVC5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNPZmZzZXRGaXhlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy56b25lLmlzVW5pdmVyc2FsIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgd2hldGhlciB0aGUgRGF0ZVRpbWUgaXMgaW4gYSBEU1QuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IGlzSW5EU1QoKSB7XG4gICAgaWYgKHRoaXMuaXNPZmZzZXRGaXhlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLm9mZnNldCA+IHRoaXMuc2V0KHsgbW9udGg6IDEgfSkub2Zmc2V0IHx8IHRoaXMub2Zmc2V0ID4gdGhpcy5zZXQoeyBtb250aDogNSB9KS5vZmZzZXRcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIERhdGVUaW1lIGlzIGluIGEgbGVhcCB5ZWFyLCBmYWxzZSBvdGhlcndpc2VcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNikuaXNJbkxlYXBZZWFyIC8vPT4gdHJ1ZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDEzKS5pc0luTGVhcFllYXIgLy89PiBmYWxzZVxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc0luTGVhcFllYXIoKSB7XG4gICAgcmV0dXJuIGlzTGVhcFllYXIodGhpcy55ZWFyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGF5cyBpbiB0aGlzIERhdGVUaW1lJ3MgbW9udGhcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNiwgMikuZGF5c0luTW9udGggLy89PiAyOVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE2LCAzKS5kYXlzSW5Nb250aCAvLz0+IDMxXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgZGF5c0luTW9udGgoKSB7XG4gICAgcmV0dXJuIGRheXNJbk1vbnRoKHRoaXMueWVhciwgdGhpcy5tb250aCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhpcyBEYXRlVGltZSdzIHllYXJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNikuZGF5c0luWWVhciAvLz0+IDM2NlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDEzKS5kYXlzSW5ZZWFyIC8vPT4gMzY1XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgZGF5c0luWWVhcigpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gZGF5c0luWWVhcih0aGlzLnllYXIpIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiB3ZWVrcyBpbiB0aGlzIERhdGVUaW1lJ3MgeWVhclxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAwNCkud2Vla3NJbldlZWtZZWFyIC8vPT4gNTNcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxMykud2Vla3NJbldlZWtZZWFyIC8vPT4gNTJcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCB3ZWVrc0luV2Vla1llYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHdlZWtzSW5XZWVrWWVhcih0aGlzLndlZWtZZWFyKSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSByZXNvbHZlZCBJbnRsIG9wdGlvbnMgZm9yIHRoaXMgRGF0ZVRpbWUuXG4gICAqIFRoaXMgaXMgdXNlZnVsIGluIHVuZGVyc3RhbmRpbmcgdGhlIGJlaGF2aW9yIG9mIGZvcm1hdHRpbmcgbWV0aG9kc1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIHRoZSBzYW1lIG9wdGlvbnMgYXMgdG9Mb2NhbGVTdHJpbmdcbiAgICogQHJldHVybiB7T2JqZWN0fVxuICAgKi9cbiAgcmVzb2x2ZWRMb2NhbGVPcHRpb25zKG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIGNhbGVuZGFyIH0gPSBGb3JtYXR0ZXIuY3JlYXRlKFxuICAgICAgdGhpcy5sb2MuY2xvbmUob3B0cyksXG4gICAgICBvcHRzXG4gICAgKS5yZXNvbHZlZE9wdGlvbnModGhpcyk7XG4gICAgcmV0dXJuIHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyOiBjYWxlbmRhciB9O1xuICB9XG5cbiAgLy8gVFJBTlNGT1JNXG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhlIERhdGVUaW1lJ3Mgem9uZSB0byBVVEMuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS5cbiAgICpcbiAgICogRXF1aXZhbGVudCB0byB7QGxpbmsgRGF0ZVRpbWUjc2V0Wm9uZX0oJ3V0YycpXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0PTBdIC0gb3B0aW9uYWxseSwgYW4gb2Zmc2V0IGZyb20gVVRDIGluIG1pbnV0ZXNcbiAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRzPXt9XSAtIG9wdGlvbnMgdG8gcGFzcyB0byBgc2V0Wm9uZSgpYFxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHRvVVRDKG9mZnNldCA9IDAsIG9wdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLnNldFpvbmUoRml4ZWRPZmZzZXRab25lLmluc3RhbmNlKG9mZnNldCksIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhlIERhdGVUaW1lJ3Mgem9uZSB0byB0aGUgaG9zdCdzIGxvY2FsIHpvbmUuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS5cbiAgICpcbiAgICogRXF1aXZhbGVudCB0byBgc2V0Wm9uZSgnbG9jYWwnKWBcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICB0b0xvY2FsKCkge1xuICAgIHJldHVybiB0aGlzLnNldFpvbmUoU2V0dGluZ3MuZGVmYXVsdFpvbmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhlIERhdGVUaW1lJ3Mgem9uZSB0byBzcGVjaWZpZWQgem9uZS4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIERhdGVUaW1lLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgc2V0dGVyIGtlZXBzIHRoZSB1bmRlcmx5aW5nIHRpbWUgdGhlIHNhbWUgKGFzIGluLCB0aGUgc2FtZSB0aW1lc3RhbXApLCBidXQgdGhlIG5ldyBpbnN0YW5jZSB3aWxsIHJlcG9ydCBkaWZmZXJlbnQgbG9jYWwgdGltZXMgYW5kIGNvbnNpZGVyIERTVHMgd2hlbiBtYWtpbmcgY29tcHV0YXRpb25zLCBhcyB3aXRoIHtAbGluayBEYXRlVGltZSNwbHVzfS4gWW91IG1heSB3aXNoIHRvIHVzZSB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbH0gYW5kIHtAbGluayBEYXRlVGltZSN0b1VUQ30gd2hpY2ggcHJvdmlkZSBzaW1wbGUgY29udmVuaWVuY2Ugd3JhcHBlcnMgZm9yIGNvbW1vbmx5IHVzZWQgem9uZXMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFt6b25lPSdsb2NhbCddIC0gYSB6b25lIGlkZW50aWZpZXIuIEFzIGEgc3RyaW5nLCB0aGF0IGNhbiBiZSBhbnkgSUFOQSB6b25lIHN1cHBvcnRlZCBieSB0aGUgaG9zdCBlbnZpcm9ubWVudCwgb3IgYSBmaXhlZC1vZmZzZXQgbmFtZSBvZiB0aGUgZm9ybSAnVVRDKzMnLCBvciB0aGUgc3RyaW5ncyAnbG9jYWwnIG9yICd1dGMnLiBZb3UgbWF5IGFsc28gc3VwcGx5IGFuIGluc3RhbmNlIG9mIGEge0BsaW5rIERhdGVUaW1lI1pvbmV9IGNsYXNzLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5rZWVwTG9jYWxUaW1lPWZhbHNlXSAtIElmIHRydWUsIGFkanVzdCB0aGUgdW5kZXJseWluZyB0aW1lIHNvIHRoYXQgdGhlIGxvY2FsIHRpbWUgc3RheXMgdGhlIHNhbWUsIGJ1dCBpbiB0aGUgdGFyZ2V0IHpvbmUuIFlvdSBzaG91bGQgcmFyZWx5IG5lZWQgdGhpcy5cbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzZXRab25lKHpvbmUsIHsga2VlcExvY2FsVGltZSA9IGZhbHNlLCBrZWVwQ2FsZW5kYXJUaW1lID0gZmFsc2UgfSA9IHt9KSB7XG4gICAgem9uZSA9IG5vcm1hbGl6ZVpvbmUoem9uZSwgU2V0dGluZ3MuZGVmYXVsdFpvbmUpO1xuICAgIGlmICh6b25lLmVxdWFscyh0aGlzLnpvbmUpKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9IGVsc2UgaWYgKCF6b25lLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKHVuc3VwcG9ydGVkWm9uZSh6b25lKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBuZXdUUyA9IHRoaXMudHM7XG4gICAgICBpZiAoa2VlcExvY2FsVGltZSB8fCBrZWVwQ2FsZW5kYXJUaW1lKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldEd1ZXNzID0gem9uZS5vZmZzZXQodGhpcy50cyk7XG4gICAgICAgIGNvbnN0IGFzT2JqID0gdGhpcy50b09iamVjdCgpO1xuICAgICAgICBbbmV3VFNdID0gb2JqVG9UUyhhc09iaiwgb2Zmc2V0R3Vlc3MsIHpvbmUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdHM6IG5ld1RTLCB6b25lIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3Igb3V0cHV0Q2FsZW5kYXIuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS5cbiAgICogQHBhcmFtIHtPYmplY3R9IHByb3BlcnRpZXMgLSB0aGUgcHJvcGVydGllcyB0byBzZXRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLnJlY29uZmlndXJlKHsgbG9jYWxlOiAnZW4tR0InIH0pXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgcmVjb25maWd1cmUoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIgfSA9IHt9KSB7XG4gICAgY29uc3QgbG9jID0gdGhpcy5sb2MuY2xvbmUoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIgfSk7XG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgbG9jIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhlIGxvY2FsZS4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIERhdGVUaW1lLlxuICAgKiBKdXN0IGEgY29udmVuaWVudCBhbGlhcyBmb3IgcmVjb25maWd1cmUoeyBsb2NhbGUgfSlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLnNldExvY2FsZSgnZW4tR0InKVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHNldExvY2FsZShsb2NhbGUpIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvbmZpZ3VyZSh7IGxvY2FsZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSB2YWx1ZXMgb2Ygc3BlY2lmaWVkIHVuaXRzLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuXG4gICAqIFlvdSBjYW4gb25seSBzZXQgdW5pdHMgd2l0aCB0aGlzIG1ldGhvZDsgZm9yIFwic2V0dGluZ1wiIG1ldGFkYXRhLCBzZWUge0BsaW5rIERhdGVUaW1lI3JlY29uZmlndXJlfSBhbmQge0BsaW5rIERhdGVUaW1lI3NldFpvbmV9LlxuICAgKiBAcGFyYW0ge09iamVjdH0gdmFsdWVzIC0gYSBtYXBwaW5nIG9mIHVuaXRzIHRvIG51bWJlcnNcbiAgICogQGV4YW1wbGUgZHQuc2V0KHsgeWVhcjogMjAxNyB9KVxuICAgKiBAZXhhbXBsZSBkdC5zZXQoeyBob3VyOiA4LCBtaW51dGU6IDMwIH0pXG4gICAqIEBleGFtcGxlIGR0LnNldCh7IHdlZWtkYXk6IDUgfSlcbiAgICogQGV4YW1wbGUgZHQuc2V0KHsgeWVhcjogMjAwNSwgb3JkaW5hbDogMjM0IH0pXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc2V0KHZhbHVlcykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcblxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVPYmplY3QodmFsdWVzLCBub3JtYWxpemVVbml0KSxcbiAgICAgIHNldHRpbmdXZWVrU3R1ZmYgPVxuICAgICAgICAhaXNVbmRlZmluZWQobm9ybWFsaXplZC53ZWVrWWVhcikgfHxcbiAgICAgICAgIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQud2Vla051bWJlcikgfHxcbiAgICAgICAgIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQud2Vla2RheSksXG4gICAgICBjb250YWluc09yZGluYWwgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5vcmRpbmFsKSxcbiAgICAgIGNvbnRhaW5zR3JlZ29yWWVhciA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLnllYXIpLFxuICAgICAgY29udGFpbnNHcmVnb3JNRCA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLm1vbnRoKSB8fCAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5kYXkpLFxuICAgICAgY29udGFpbnNHcmVnb3IgPSBjb250YWluc0dyZWdvclllYXIgfHwgY29udGFpbnNHcmVnb3JNRCxcbiAgICAgIGRlZmluaXRlV2Vla0RlZiA9IG5vcm1hbGl6ZWQud2Vla1llYXIgfHwgbm9ybWFsaXplZC53ZWVrTnVtYmVyO1xuXG4gICAgaWYgKChjb250YWluc0dyZWdvciB8fCBjb250YWluc09yZGluYWwpICYmIGRlZmluaXRlV2Vla0RlZikge1xuICAgICAgdGhyb3cgbmV3IENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yKFxuICAgICAgICBcIkNhbid0IG1peCB3ZWVrWWVhci93ZWVrTnVtYmVyIHVuaXRzIHdpdGggeWVhci9tb250aC9kYXkgb3Igb3JkaW5hbHNcIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY29udGFpbnNHcmVnb3JNRCAmJiBjb250YWluc09yZGluYWwpIHtcbiAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcihcIkNhbid0IG1peCBvcmRpbmFsIGRhdGVzIHdpdGggbW9udGgvZGF5XCIpO1xuICAgIH1cblxuICAgIGxldCBtaXhlZDtcbiAgICBpZiAoc2V0dGluZ1dlZWtTdHVmZikge1xuICAgICAgbWl4ZWQgPSB3ZWVrVG9HcmVnb3JpYW4oeyAuLi5ncmVnb3JpYW5Ub1dlZWsodGhpcy5jKSwgLi4ubm9ybWFsaXplZCB9KTtcbiAgICB9IGVsc2UgaWYgKCFpc1VuZGVmaW5lZChub3JtYWxpemVkLm9yZGluYWwpKSB7XG4gICAgICBtaXhlZCA9IG9yZGluYWxUb0dyZWdvcmlhbih7IC4uLmdyZWdvcmlhblRvT3JkaW5hbCh0aGlzLmMpLCAuLi5ub3JtYWxpemVkIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBtaXhlZCA9IHsgLi4udGhpcy50b09iamVjdCgpLCAuLi5ub3JtYWxpemVkIH07XG5cbiAgICAgIC8vIGlmIHdlIGRpZG4ndCBzZXQgdGhlIGRheSBidXQgd2UgZW5kZWQgdXAgb24gYW4gb3ZlcmZsb3cgZGF0ZSxcbiAgICAgIC8vIHVzZSB0aGUgbGFzdCBkYXkgb2YgdGhlIHJpZ2h0IG1vbnRoXG4gICAgICBpZiAoaXNVbmRlZmluZWQobm9ybWFsaXplZC5kYXkpKSB7XG4gICAgICAgIG1peGVkLmRheSA9IE1hdGgubWluKGRheXNJbk1vbnRoKG1peGVkLnllYXIsIG1peGVkLm1vbnRoKSwgbWl4ZWQuZGF5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBbdHMsIG9dID0gb2JqVG9UUyhtaXhlZCwgdGhpcy5vLCB0aGlzLnpvbmUpO1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHRzLCBvIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHBlcmlvZCBvZiB0aW1lIHRvIHRoaXMgRGF0ZVRpbWUgYW5kIHJldHVybiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lXG4gICAqXG4gICAqIEFkZGluZyBob3VycywgbWludXRlcywgc2Vjb25kcywgb3IgbWlsbGlzZWNvbmRzIGluY3JlYXNlcyB0aGUgdGltZXN0YW1wIGJ5IHRoZSByaWdodCBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLiBBZGRpbmcgZGF5cywgbW9udGhzLCBvciB5ZWFycyBzaGlmdHMgdGhlIGNhbGVuZGFyLCBhY2NvdW50aW5nIGZvciBEU1RzIGFuZCBsZWFwIHllYXJzIGFsb25nIHRoZSB3YXkuIFRodXMsIGBkdC5wbHVzKHsgaG91cnM6IDI0IH0pYCBtYXkgcmVzdWx0IGluIGEgZGlmZmVyZW50IHRpbWUgdGhhbiBgZHQucGx1cyh7IGRheXM6IDEgfSlgIGlmIHRoZXJlJ3MgYSBEU1Qgc2hpZnQgaW4gYmV0d2Vlbi5cbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBhbW91bnQgdG8gYWRkLiBFaXRoZXIgYSBMdXhvbiBEdXJhdGlvbiwgYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLCB0aGUgb2JqZWN0IGFyZ3VtZW50IHRvIER1cmF0aW9uLmZyb21PYmplY3QoKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKDEyMykgLy9+PiBpbiAxMjMgbWlsbGlzZWNvbmRzXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBtaW51dGVzOiAxNSB9KSAvL34+IGluIDE1IG1pbnV0ZXNcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkgLy9+PiB0aGlzIHRpbWUgdG9tb3Jyb3dcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IC0xIH0pIC8vfj4gdGhpcyB0aW1lIHllc3RlcmRheVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgaG91cnM6IDMsIG1pbnV0ZXM6IDEzIH0pIC8vfj4gaW4gMyBociwgMTMgbWluXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAzLCBtaW51dGVzOiAxMyB9KSkgLy9+PiBpbiAzIGhyLCAxMyBtaW5cbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBwbHVzKGR1cmF0aW9uKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pO1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCBhZGp1c3RUaW1lKHRoaXMsIGR1cikpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnRyYWN0IGEgcGVyaW9kIG9mIHRpbWUgdG8gdGhpcyBEYXRlVGltZSBhbmQgcmV0dXJuIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWVcbiAgICogU2VlIHtAbGluayBEYXRlVGltZSNwbHVzfVxuICAgKiBAcGFyYW0ge0R1cmF0aW9ufE9iamVjdHxudW1iZXJ9IGR1cmF0aW9uIC0gVGhlIGFtb3VudCB0byBzdWJ0cmFjdC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KClcbiAgIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgbWludXMoZHVyYXRpb24pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbikubmVnYXRlKCk7XG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIGFkanVzdFRpbWUodGhpcywgZHVyKSk7XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGlzIERhdGVUaW1lIHRvIHRoZSBiZWdpbm5pbmcgb2YgYSB1bml0IG9mIHRpbWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gVGhlIHVuaXQgdG8gZ28gdG8gdGhlIGJlZ2lubmluZyBvZi4gQ2FuIGJlICd5ZWFyJywgJ3F1YXJ0ZXInLCAnbW9udGgnLCAnd2VlaycsICdkYXknLCAnaG91cicsICdtaW51dGUnLCAnc2Vjb25kJywgb3IgJ21pbGxpc2Vjb25kJy5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuc3RhcnRPZignbW9udGgnKS50b0lTT0RhdGUoKTsgLy89PiAnMjAxNC0wMy0wMSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuc3RhcnRPZigneWVhcicpLnRvSVNPRGF0ZSgpOyAvLz0+ICcyMDE0LTAxLTAxJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzKS5zdGFydE9mKCd3ZWVrJykudG9JU09EYXRlKCk7IC8vPT4gJzIwMTQtMDMtMDMnLCB3ZWVrcyBhbHdheXMgc3RhcnQgb24gTW9uZGF5c1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzLCA1LCAzMCkuc3RhcnRPZignZGF5JykudG9JU09UaW1lKCk7IC8vPT4gJzAwOjAwLjAwMC0wNTowMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMywgNSwgMzApLnN0YXJ0T2YoJ2hvdXInKS50b0lTT1RpbWUoKTsgLy89PiAnMDU6MDA6MDAuMDAwLTA1OjAwJ1xuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXJ0T2YodW5pdCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICBjb25zdCBvID0ge30sXG4gICAgICBub3JtYWxpemVkVW5pdCA9IER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQodW5pdCk7XG4gICAgc3dpdGNoIChub3JtYWxpemVkVW5pdCkge1xuICAgICAgY2FzZSBcInllYXJzXCI6XG4gICAgICAgIG8ubW9udGggPSAxO1xuICAgICAgLy8gZmFsbHMgdGhyb3VnaFxuICAgICAgY2FzZSBcInF1YXJ0ZXJzXCI6XG4gICAgICBjYXNlIFwibW9udGhzXCI6XG4gICAgICAgIG8uZGF5ID0gMTtcbiAgICAgIC8vIGZhbGxzIHRocm91Z2hcbiAgICAgIGNhc2UgXCJ3ZWVrc1wiOlxuICAgICAgY2FzZSBcImRheXNcIjpcbiAgICAgICAgby5ob3VyID0gMDtcbiAgICAgIC8vIGZhbGxzIHRocm91Z2hcbiAgICAgIGNhc2UgXCJob3Vyc1wiOlxuICAgICAgICBvLm1pbnV0ZSA9IDA7XG4gICAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBjYXNlIFwibWludXRlc1wiOlxuICAgICAgICBvLnNlY29uZCA9IDA7XG4gICAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBjYXNlIFwic2Vjb25kc1wiOlxuICAgICAgICBvLm1pbGxpc2Vjb25kID0gMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwibWlsbGlzZWNvbmRzXCI6XG4gICAgICAgIGJyZWFrO1xuICAgICAgLy8gbm8gZGVmYXVsdCwgaW52YWxpZCB1bml0cyB0aHJvdyBpbiBub3JtYWxpemVVbml0KClcbiAgICB9XG5cbiAgICBpZiAobm9ybWFsaXplZFVuaXQgPT09IFwid2Vla3NcIikge1xuICAgICAgby53ZWVrZGF5ID0gMTtcbiAgICB9XG5cbiAgICBpZiAobm9ybWFsaXplZFVuaXQgPT09IFwicXVhcnRlcnNcIikge1xuICAgICAgY29uc3QgcSA9IE1hdGguY2VpbCh0aGlzLm1vbnRoIC8gMyk7XG4gICAgICBvLm1vbnRoID0gKHEgLSAxKSAqIDMgKyAxO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNldChvKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoaXMgRGF0ZVRpbWUgdG8gdGhlIGVuZCAobWVhbmluZyB0aGUgbGFzdCBtaWxsaXNlY29uZCkgb2YgYSB1bml0IG9mIHRpbWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBUaGUgdW5pdCB0byBnbyB0byB0aGUgZW5kIG9mLiBDYW4gYmUgJ3llYXInLCAncXVhcnRlcicsICdtb250aCcsICd3ZWVrJywgJ2RheScsICdob3VyJywgJ21pbnV0ZScsICdzZWNvbmQnLCBvciAnbWlsbGlzZWNvbmQnLlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzKS5lbmRPZignbW9udGgnKS50b0lTTygpOyAvLz0+ICcyMDE0LTAzLTMxVDIzOjU5OjU5Ljk5OS0wNTowMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuZW5kT2YoJ3llYXInKS50b0lTTygpOyAvLz0+ICcyMDE0LTEyLTMxVDIzOjU5OjU5Ljk5OS0wNTowMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuZW5kT2YoJ3dlZWsnKS50b0lTTygpOyAvLyA9PiAnMjAxNC0wMy0wOVQyMzo1OTo1OS45OTktMDU6MDAnLCB3ZWVrcyBzdGFydCBvbiBNb25kYXlzXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMsIDUsIDMwKS5lbmRPZignZGF5JykudG9JU08oKTsgLy89PiAnMjAxNC0wMy0wM1QyMzo1OTo1OS45OTktMDU6MDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMsIDUsIDMwKS5lbmRPZignaG91cicpLnRvSVNPKCk7IC8vPT4gJzIwMTQtMDMtMDNUMDU6NTk6NTkuOTk5LTA1OjAwJ1xuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIGVuZE9mKHVuaXQpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkXG4gICAgICA/IHRoaXMucGx1cyh7IFt1bml0XTogMSB9KVxuICAgICAgICAgIC5zdGFydE9mKHVuaXQpXG4gICAgICAgICAgLm1pbnVzKDEpXG4gICAgICA6IHRoaXM7XG4gIH1cblxuICAvLyBPVVRQVVRcblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBmb3JtYXQgc3RyaW5nLlxuICAgKiAqKllvdSBtYXkgbm90IHdhbnQgdGhpcy4qKiBTZWUge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3IgYSBtb3JlIGZsZXhpYmxlIGZvcm1hdHRpbmcgdG9vbC4gRm9yIGEgdGFibGUgb2YgdG9rZW5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbnMsIHNlZSBbaGVyZV0oaHR0cHM6Ly9tb21lbnQuZ2l0aHViLmlvL2x1eG9uLyMvZm9ybWF0dGluZz9pZD10YWJsZS1vZi10b2tlbnMpLlxuICAgKiBEZWZhdWx0cyB0byBlbi1VUyBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkLCByZWdhcmRsZXNzIG9mIHRoZSBzeXN0ZW0ncyBsb2NhbGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmbXQgLSB0aGUgZm9ybWF0IHN0cmluZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdHMgdG8gb3ZlcnJpZGUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvbiB0aGlzIERhdGVUaW1lXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvRm9ybWF0KCd5eXl5IExMTCBkZCcpIC8vPT4gJzIwMTcgQXByIDIyJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5zZXRMb2NhbGUoJ2ZyJykudG9Gb3JtYXQoJ3l5eXkgTExMIGRkJykgLy89PiAnMjAxNyBhdnIuIDIyJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0Zvcm1hdCgneXl5eSBMTEwgZGQnLCB7IGxvY2FsZTogXCJmclwiIH0pIC8vPT4gJzIwMTcgYXZyLiAyMidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Gb3JtYXQoXCJISCAnaG91cnMgYW5kJyBtbSAnbWludXRlcydcIikgLy89PiAnMjAgaG91cnMgYW5kIDU1IG1pbnV0ZXMnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvRm9ybWF0KGZtdCwgb3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZFxuICAgICAgPyBGb3JtYXR0ZXIuY3JlYXRlKHRoaXMubG9jLnJlZGVmYXVsdFRvRU4ob3B0cykpLmZvcm1hdERhdGVUaW1lRnJvbVN0cmluZyh0aGlzLCBmbXQpXG4gICAgICA6IElOVkFMSUQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxvY2FsaXplZCBzdHJpbmcgcmVwcmVzZW50aW5nIHRoaXMgZGF0ZS4gQWNjZXB0cyB0aGUgc2FtZSBvcHRpb25zIGFzIHRoZSBJbnRsLkRhdGVUaW1lRm9ybWF0IGNvbnN0cnVjdG9yIGFuZCBhbnkgcHJlc2V0cyBkZWZpbmVkIGJ5IEx1eG9uLCBzdWNoIGFzIGBEYXRlVGltZS5EQVRFX0ZVTExgIG9yIGBEYXRlVGltZS5USU1FX1NJTVBMRWAuXG4gICAqIFRoZSBleGFjdCBiZWhhdmlvciBvZiB0aGlzIG1ldGhvZCBpcyBicm93c2VyLXNwZWNpZmljLCBidXQgaW4gZ2VuZXJhbCBpdCB3aWxsIHJldHVybiBhbiBhcHByb3ByaWF0ZSByZXByZXNlbnRhdGlvblxuICAgKiBvZiB0aGUgRGF0ZVRpbWUgaW4gdGhlIGFzc2lnbmVkIGxvY2FsZS5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXRcbiAgICogQHBhcmFtIGZvcm1hdE9wdHMge09iamVjdH0gLSBJbnRsLkRhdGVUaW1lRm9ybWF0IGNvbnN0cnVjdG9yIG9wdGlvbnMgYW5kIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdHMgdG8gb3ZlcnJpZGUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvbiB0aGlzIERhdGVUaW1lXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKCk7IC8vPT4gNC8yMC8yMDE3XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnNldExvY2FsZSgnZW4tZ2InKS50b0xvY2FsZVN0cmluZygpOyAvLz0+ICcyMC8wNC8yMDE3J1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyh7IGxvY2FsZTogJ2VuLWdiJyB9KTsgLy89PiAnMjAvMDQvMjAxNydcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVTdHJpbmcoRGF0ZVRpbWUuREFURV9GVUxMKTsgLy89PiAnQXByaWwgMjAsIDIwMTcnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKERhdGVUaW1lLlRJTUVfU0lNUExFKTsgLy89PiAnMTE6MzIgQU0nXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKERhdGVUaW1lLkRBVEVUSU1FX1NIT1JUKTsgLy89PiAnNC8yMC8yMDE3LCAxMTozMiBBTSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVTdHJpbmcoeyB3ZWVrZGF5OiAnbG9uZycsIG1vbnRoOiAnbG9uZycsIGRheTogJzItZGlnaXQnIH0pOyAvLz0+ICdUaHVyc2RheSwgQXByaWwgMjAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKHsgd2Vla2RheTogJ3Nob3J0JywgbW9udGg6ICdzaG9ydCcsIGRheTogJzItZGlnaXQnLCBob3VyOiAnMi1kaWdpdCcsIG1pbnV0ZTogJzItZGlnaXQnIH0pOyAvLz0+ICdUaHUsIEFwciAyMCwgMTE6MjcgQU0nXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKHsgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JywgaG91ckN5Y2xlOiAnaDIzJyB9KTsgLy89PiAnMTE6MzInXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvTG9jYWxlU3RyaW5nKGZvcm1hdE9wdHMgPSBGb3JtYXRzLkRBVEVfU0hPUlQsIG9wdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRcbiAgICAgID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYy5jbG9uZShvcHRzKSwgZm9ybWF0T3B0cykuZm9ybWF0RGF0ZVRpbWUodGhpcylcbiAgICAgIDogSU5WQUxJRDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGZvcm1hdCBcInBhcnRzXCIsIG1lYW5pbmcgaW5kaXZpZHVhbCB0b2tlbnMgYWxvbmcgd2l0aCBtZXRhZGF0YS4gVGhpcyBpcyBhbGxvd3MgY2FsbGVycyB0byBwb3N0LXByb2Nlc3MgaW5kaXZpZHVhbCBzZWN0aW9ucyBvZiB0aGUgZm9ybWF0dGVkIG91dHB1dC5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXQvZm9ybWF0VG9QYXJ0c1xuICAgKiBAcGFyYW0gb3B0cyB7T2JqZWN0fSAtIEludGwuRGF0ZVRpbWVGb3JtYXQgY29uc3RydWN0b3Igb3B0aW9ucywgc2FtZSBhcyBgdG9Mb2NhbGVTdHJpbmdgLlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVBhcnRzKCk7IC8vPT4gW1xuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiAgIHsgdHlwZTogJ2RheScsIHZhbHVlOiAnMjUnIH0sXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+ICAgeyB0eXBlOiAnbGl0ZXJhbCcsIHZhbHVlOiAnLycgfSxcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPT4gICB7IHR5cGU6ICdtb250aCcsIHZhbHVlOiAnMDUnIH0sXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+ICAgeyB0eXBlOiAnbGl0ZXJhbCcsIHZhbHVlOiAnLycgfSxcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPT4gICB7IHR5cGU6ICd5ZWFyJywgdmFsdWU6ICcxOTgyJyB9XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+IF1cbiAgICovXG4gIHRvTG9jYWxlUGFydHMob3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZFxuICAgICAgPyBGb3JtYXR0ZXIuY3JlYXRlKHRoaXMubG9jLmNsb25lKG9wdHMpLCBvcHRzKS5mb3JtYXREYXRlVGltZVBhcnRzKHRoaXMpXG4gICAgICA6IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnN1cHByZXNzTWlsbGlzZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDBcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc1NlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDBcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0PXRydWVdIC0gaW5jbHVkZSB0aGUgb2Zmc2V0LCBzdWNoIGFzICdaJyBvciAnLTA0OjAwJ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZm9ybWF0PSdleHRlbmRlZCddIC0gY2hvb3NlIGJldHdlZW4gdGhlIGJhc2ljIGFuZCBleHRlbmRlZCBmb3JtYXRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDE5ODMsIDUsIDI1KS50b0lTTygpIC8vPT4gJzE5ODItMDUtMjVUMDA6MDA6MDAuMDAwWidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9JU08oKSAvLz0+ICcyMDE3LTA0LTIyVDIwOjQ3OjA1LjMzNS0wNDowMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9JU08oeyBpbmNsdWRlT2Zmc2V0OiBmYWxzZSB9KSAvLz0+ICcyMDE3LTA0LTIyVDIwOjQ3OjA1LjMzNSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9JU08oeyBmb3JtYXQ6ICdiYXNpYycgfSkgLy89PiAnMjAxNzA0MjJUMjA0NzA1LjMzNS0wNDAwJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0lTTyh7XG4gICAgZm9ybWF0ID0gXCJleHRlbmRlZFwiLFxuICAgIHN1cHByZXNzU2Vjb25kcyA9IGZhbHNlLFxuICAgIHN1cHByZXNzTWlsbGlzZWNvbmRzID0gZmFsc2UsXG4gICAgaW5jbHVkZU9mZnNldCA9IHRydWUsXG4gIH0gPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBleHQgPSBmb3JtYXQgPT09IFwiZXh0ZW5kZWRcIjtcblxuICAgIGxldCBjID0gdG9JU09EYXRlKHRoaXMsIGV4dCk7XG4gICAgYyArPSBcIlRcIjtcbiAgICBjICs9IHRvSVNPVGltZSh0aGlzLCBleHQsIHN1cHByZXNzU2Vjb25kcywgc3VwcHJlc3NNaWxsaXNlY29uZHMsIGluY2x1ZGVPZmZzZXQpO1xuICAgIHJldHVybiBjO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lJ3MgZGF0ZSBjb21wb25lbnRcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5mb3JtYXQ9J2V4dGVuZGVkJ10gLSBjaG9vc2UgYmV0d2VlbiB0aGUgYmFzaWMgYW5kIGV4dGVuZGVkIGZvcm1hdFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMTk4MiwgNSwgMjUpLnRvSVNPRGF0ZSgpIC8vPT4gJzE5ODItMDUtMjUnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgyLCA1LCAyNSkudG9JU09EYXRlKHsgZm9ybWF0OiAnYmFzaWMnIH0pIC8vPT4gJzE5ODIwNTI1J1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0lTT0RhdGUoeyBmb3JtYXQgPSBcImV4dGVuZGVkXCIgfSA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0b0lTT0RhdGUodGhpcywgZm9ybWF0ID09PSBcImV4dGVuZGVkXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lJ3Mgd2VlayBkYXRlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgyLCA1LCAyNSkudG9JU09XZWVrRGF0ZSgpIC8vPT4gJzE5ODItVzIxLTInXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPV2Vla0RhdGUoKSB7XG4gICAgcmV0dXJuIHRvVGVjaEZvcm1hdCh0aGlzLCBcImtra2stJ1cnV1ctY1wiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSdzIHRpbWUgY29tcG9uZW50XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnN1cHByZXNzTWlsbGlzZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDBcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc1NlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDBcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0PXRydWVdIC0gaW5jbHVkZSB0aGUgb2Zmc2V0LCBzdWNoIGFzICdaJyBvciAnLTA0OjAwJ1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVQcmVmaXg9ZmFsc2VdIC0gaW5jbHVkZSB0aGUgYFRgIHByZWZpeFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZm9ybWF0PSdleHRlbmRlZCddIC0gY2hvb3NlIGJldHdlZW4gdGhlIGJhc2ljIGFuZCBleHRlbmRlZCBmb3JtYXRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkuc2V0KHsgaG91cjogNywgbWludXRlOiAzNCB9KS50b0lTT1RpbWUoKSAvLz0+ICcwNzozNDoxOS4zNjFaJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5zZXQoeyBob3VyOiA3LCBtaW51dGU6IDM0LCBzZWNvbmRzOiAwLCBtaWxsaXNlY29uZHM6IDAgfSkudG9JU09UaW1lKHsgc3VwcHJlc3NTZWNvbmRzOiB0cnVlIH0pIC8vPT4gJzA3OjM0WidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkuc2V0KHsgaG91cjogNywgbWludXRlOiAzNCB9KS50b0lTT1RpbWUoeyBmb3JtYXQ6ICdiYXNpYycgfSkgLy89PiAnMDczNDE5LjM2MVonXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygpLnNldCh7IGhvdXI6IDcsIG1pbnV0ZTogMzQgfSkudG9JU09UaW1lKHsgaW5jbHVkZVByZWZpeDogdHJ1ZSB9KSAvLz0+ICdUMDc6MzQ6MTkuMzYxWidcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU09UaW1lKHtcbiAgICBzdXBwcmVzc01pbGxpc2Vjb25kcyA9IGZhbHNlLFxuICAgIHN1cHByZXNzU2Vjb25kcyA9IGZhbHNlLFxuICAgIGluY2x1ZGVPZmZzZXQgPSB0cnVlLFxuICAgIGluY2x1ZGVQcmVmaXggPSBmYWxzZSxcbiAgICBmb3JtYXQgPSBcImV4dGVuZGVkXCIsXG4gIH0gPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgYyA9IGluY2x1ZGVQcmVmaXggPyBcIlRcIiA6IFwiXCI7XG4gICAgcmV0dXJuIChcbiAgICAgIGMgK1xuICAgICAgdG9JU09UaW1lKHRoaXMsIGZvcm1hdCA9PT0gXCJleHRlbmRlZFwiLCBzdXBwcmVzc1NlY29uZHMsIHN1cHByZXNzTWlsbGlzZWNvbmRzLCBpbmNsdWRlT2Zmc2V0KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBSRkMgMjgyMi1jb21wYXRpYmxlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE0LCA3LCAxMykudG9SRkMyODIyKCkgLy89PiAnU3VuLCAxMyBKdWwgMjAxNCAwMDowMDowMCArMDAwMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgNywgMTMpLnRvUkZDMjgyMigpIC8vPT4gJ1N1biwgMTMgSnVsIDIwMTQgMDA6MDA6MDAgLTA0MDAnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvUkZDMjgyMigpIHtcbiAgICByZXR1cm4gdG9UZWNoRm9ybWF0KHRoaXMsIFwiRUVFLCBkZCBMTEwgeXl5eSBISDptbTpzcyBaWlpcIiwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIEhUVFAgaGVhZGVycy4gVGhlIG91dHB1dCBpcyBhbHdheXMgZXhwcmVzc2VkIGluIEdNVC5cbiAgICogU3BlY2lmaWNhbGx5LCB0aGUgc3RyaW5nIGNvbmZvcm1zIHRvIFJGQyAxMTIzLlxuICAgKiBAc2VlIGh0dHBzOi8vd3d3LnczLm9yZy9Qcm90b2NvbHMvcmZjMjYxNi9yZmMyNjE2LXNlYzMuaHRtbCNzZWMzLjMuMVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMpLnRvSFRUUCgpIC8vPT4gJ1N1biwgMTMgSnVsIDIwMTQgMDA6MDA6MDAgR01UJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMsIDE5KS50b0hUVFAoKSAvLz0+ICdTdW4sIDEzIEp1bCAyMDE0IDE5OjAwOjAwIEdNVCdcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9IVFRQKCkge1xuICAgIHJldHVybiB0b1RlY2hGb3JtYXQodGhpcy50b1VUQygpLCBcIkVFRSwgZGQgTExMIHl5eXkgSEg6bW06c3MgJ0dNVCdcIik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gU1FMIERhdGVcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzKS50b1NRTERhdGUoKSAvLz0+ICcyMDE0LTA3LTEzJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b1NRTERhdGUoKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdG9JU09EYXRlKHRoaXMsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIFNRTCBUaW1lXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVab25lPWZhbHNlXSAtIGluY2x1ZGUgdGhlIHpvbmUsIHN1Y2ggYXMgJ0FtZXJpY2EvTmV3X1lvcmsnLiBPdmVycmlkZXMgaW5jbHVkZU9mZnNldC5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0PXRydWVdIC0gaW5jbHVkZSB0aGUgb2Zmc2V0LCBzdWNoIGFzICdaJyBvciAnLTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS50b1NRTCgpIC8vPT4gJzA1OjE1OjE2LjM0NSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9TUUwoKSAvLz0+ICcwNToxNToxNi4zNDUgLTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b1NRTCh7IGluY2x1ZGVPZmZzZXQ6IGZhbHNlIH0pIC8vPT4gJzA1OjE1OjE2LjM0NSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9TUUwoeyBpbmNsdWRlWm9uZTogZmFsc2UgfSkgLy89PiAnMDU6MTU6MTYuMzQ1IEFtZXJpY2EvTmV3X1lvcmsnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvU1FMVGltZSh7IGluY2x1ZGVPZmZzZXQgPSB0cnVlLCBpbmNsdWRlWm9uZSA9IGZhbHNlIH0gPSB7fSkge1xuICAgIGxldCBmbXQgPSBcIkhIOm1tOnNzLlNTU1wiO1xuXG4gICAgaWYgKGluY2x1ZGVab25lIHx8IGluY2x1ZGVPZmZzZXQpIHtcbiAgICAgIGZtdCArPSBcIiBcIjtcbiAgICAgIGlmIChpbmNsdWRlWm9uZSkge1xuICAgICAgICBmbXQgKz0gXCJ6XCI7XG4gICAgICB9IGVsc2UgaWYgKGluY2x1ZGVPZmZzZXQpIHtcbiAgICAgICAgZm10ICs9IFwiWlpcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdG9UZWNoRm9ybWF0KHRoaXMsIGZtdCwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gU1FMIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVab25lPWZhbHNlXSAtIGluY2x1ZGUgdGhlIHpvbmUsIHN1Y2ggYXMgJ0FtZXJpY2EvTmV3X1lvcmsnLiBPdmVycmlkZXMgaW5jbHVkZU9mZnNldC5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0PXRydWVdIC0gaW5jbHVkZSB0aGUgb2Zmc2V0LCBzdWNoIGFzICdaJyBvciAnLTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMpLnRvU1FMKCkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAgWidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgNywgMTMpLnRvU1FMKCkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAgLTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCA3LCAxMykudG9TUUwoeyBpbmNsdWRlT2Zmc2V0OiBmYWxzZSB9KSAvLz0+ICcyMDE0LTA3LTEzIDAwOjAwOjAwLjAwMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgNywgMTMpLnRvU1FMKHsgaW5jbHVkZVpvbmU6IHRydWUgfSkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAgQW1lcmljYS9OZXdfWW9yaydcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9TUUwob3B0cyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBgJHt0aGlzLnRvU1FMRGF0ZSgpfSAke3RoaXMudG9TUUxUaW1lKG9wdHMpfWA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciBkZWJ1Z2dpbmdcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudG9JU08oKSA6IElOVkFMSUQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZXBvY2ggbWlsbGlzZWNvbmRzIG9mIHRoaXMgRGF0ZVRpbWUuIEFsaWFzIG9mIHtAbGluayBEYXRlVGltZSN0b01pbGxpc31cbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgdmFsdWVPZigpIHtcbiAgICByZXR1cm4gdGhpcy50b01pbGxpcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVwb2NoIG1pbGxpc2Vjb25kcyBvZiB0aGlzIERhdGVUaW1lLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICB0b01pbGxpcygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy50cyA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBlcG9jaCBzZWNvbmRzIG9mIHRoaXMgRGF0ZVRpbWUuXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIHRvU2Vjb25kcygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy50cyAvIDEwMDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBJU08gODYwMSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gSlNPTi5cbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9KU09OKCkge1xuICAgIHJldHVybiB0aGlzLnRvSVNPKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIEJTT04gc2VyaWFsaXphYmxlIGVxdWl2YWxlbnQgdG8gdGhpcyBEYXRlVGltZS5cbiAgICogQHJldHVybiB7RGF0ZX1cbiAgICovXG4gIHRvQlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy50b0pTRGF0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIHRoaXMgRGF0ZVRpbWUncyB5ZWFyLCBtb250aCwgZGF5LCBhbmQgc28gb24uXG4gICAqIEBwYXJhbSBvcHRzIC0gb3B0aW9ucyBmb3IgZ2VuZXJhdGluZyB0aGUgb2JqZWN0XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZUNvbmZpZz1mYWxzZV0gLSBpbmNsdWRlIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlcyBpbiB0aGUgb3V0cHV0XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvT2JqZWN0KCkgLy89PiB7IHllYXI6IDIwMTcsIG1vbnRoOiA0LCBkYXk6IDIyLCBob3VyOiAyMCwgbWludXRlOiA0OSwgc2Vjb25kOiA0MiwgbWlsbGlzZWNvbmQ6IDI2OCB9XG4gICAqIEByZXR1cm4ge09iamVjdH1cbiAgICovXG4gIHRvT2JqZWN0KG9wdHMgPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4ge307XG5cbiAgICBjb25zdCBiYXNlID0geyAuLi50aGlzLmMgfTtcblxuICAgIGlmIChvcHRzLmluY2x1ZGVDb25maWcpIHtcbiAgICAgIGJhc2Uub3V0cHV0Q2FsZW5kYXIgPSB0aGlzLm91dHB1dENhbGVuZGFyO1xuICAgICAgYmFzZS5udW1iZXJpbmdTeXN0ZW0gPSB0aGlzLmxvYy5udW1iZXJpbmdTeXN0ZW07XG4gICAgICBiYXNlLmxvY2FsZSA9IHRoaXMubG9jLmxvY2FsZTtcbiAgICB9XG4gICAgcmV0dXJuIGJhc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIEphdmFTY3JpcHQgRGF0ZSBlcXVpdmFsZW50IHRvIHRoaXMgRGF0ZVRpbWUuXG4gICAqIEByZXR1cm4ge0RhdGV9XG4gICAqL1xuICB0b0pTRGF0ZSgpIHtcbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5pc1ZhbGlkID8gdGhpcy50cyA6IE5hTik7XG4gIH1cblxuICAvLyBDT01QQVJFXG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHR3byBEYXRlVGltZXMgYXMgYSBEdXJhdGlvbi5cbiAgICogQHBhcmFtIHtEYXRlVGltZX0gb3RoZXJEYXRlVGltZSAtIHRoZSBEYXRlVGltZSB0byBjb21wYXJlIHRoaXMgb25lIHRvXG4gICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBbdW5pdD1bJ21pbGxpc2Vjb25kcyddXSAtIHRoZSB1bml0IG9yIGFycmF5IG9mIHVuaXRzIChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byBpbmNsdWRlIGluIHRoZSBkdXJhdGlvbi5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiB0aGUgRHVyYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlXG4gICAqIEBleGFtcGxlXG4gICAqIHZhciBpMSA9IERhdGVUaW1lLmZyb21JU08oJzE5ODItMDUtMjVUMDk6NDUnKSxcbiAgICogICAgIGkyID0gRGF0ZVRpbWUuZnJvbUlTTygnMTk4My0xMC0xNFQxMDozMCcpO1xuICAgKiBpMi5kaWZmKGkxKS50b09iamVjdCgpIC8vPT4geyBtaWxsaXNlY29uZHM6IDQzODA3NTAwMDAwIH1cbiAgICogaTIuZGlmZihpMSwgJ2hvdXJzJykudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDEyMTY4Ljc1IH1cbiAgICogaTIuZGlmZihpMSwgWydtb250aHMnLCAnZGF5cyddKS50b09iamVjdCgpIC8vPT4geyBtb250aHM6IDE2LCBkYXlzOiAxOS4wMzEyNSB9XG4gICAqIGkyLmRpZmYoaTEsIFsnbW9udGhzJywgJ2RheXMnLCAnaG91cnMnXSkudG9PYmplY3QoKSAvLz0+IHsgbW9udGhzOiAxNiwgZGF5czogMTksIGhvdXJzOiAwLjc1IH1cbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBkaWZmKG90aGVyRGF0ZVRpbWUsIHVuaXQgPSBcIm1pbGxpc2Vjb25kc1wiLCBvcHRzID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCB8fCAhb3RoZXJEYXRlVGltZS5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uaW52YWxpZChcImNyZWF0ZWQgYnkgZGlmZmluZyBhbiBpbnZhbGlkIERhdGVUaW1lXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGR1ck9wdHMgPSB7IGxvY2FsZTogdGhpcy5sb2NhbGUsIG51bWJlcmluZ1N5c3RlbTogdGhpcy5udW1iZXJpbmdTeXN0ZW0sIC4uLm9wdHMgfTtcblxuICAgIGNvbnN0IHVuaXRzID0gbWF5YmVBcnJheSh1bml0KS5tYXAoRHVyYXRpb24ubm9ybWFsaXplVW5pdCksXG4gICAgICBvdGhlcklzTGF0ZXIgPSBvdGhlckRhdGVUaW1lLnZhbHVlT2YoKSA+IHRoaXMudmFsdWVPZigpLFxuICAgICAgZWFybGllciA9IG90aGVySXNMYXRlciA/IHRoaXMgOiBvdGhlckRhdGVUaW1lLFxuICAgICAgbGF0ZXIgPSBvdGhlcklzTGF0ZXIgPyBvdGhlckRhdGVUaW1lIDogdGhpcyxcbiAgICAgIGRpZmZlZCA9IGRpZmYoZWFybGllciwgbGF0ZXIsIHVuaXRzLCBkdXJPcHRzKTtcblxuICAgIHJldHVybiBvdGhlcklzTGF0ZXIgPyBkaWZmZWQubmVnYXRlKCkgOiBkaWZmZWQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBEYXRlVGltZSBhbmQgcmlnaHQgbm93LlxuICAgKiBTZWUge0BsaW5rIERhdGVUaW1lI2RpZmZ9XG4gICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBbdW5pdD1bJ21pbGxpc2Vjb25kcyddXSAtIHRoZSB1bml0IG9yIHVuaXRzIHVuaXRzIChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byBpbmNsdWRlIGluIHRoZSBkdXJhdGlvblxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIGNyZWF0aW9uIG9mIHRoZSBEdXJhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuY29udmVyc2lvbkFjY3VyYWN5PSdjYXN1YWwnXSAtIHRoZSBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2VcbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBkaWZmTm93KHVuaXQgPSBcIm1pbGxpc2Vjb25kc1wiLCBvcHRzID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5kaWZmKERhdGVUaW1lLm5vdygpLCB1bml0LCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgc3Bhbm5pbmcgYmV0d2VlbiB0aGlzIERhdGVUaW1lIGFuZCBhbm90aGVyIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IG90aGVyRGF0ZVRpbWUgLSB0aGUgb3RoZXIgZW5kIHBvaW50IG9mIHRoZSBJbnRlcnZhbFxuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICovXG4gIHVudGlsKG90aGVyRGF0ZVRpbWUpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyh0aGlzLCBvdGhlckRhdGVUaW1lKSA6IHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBEYXRlVGltZSBpcyBpbiB0aGUgc2FtZSB1bml0IG9mIHRpbWUgYXMgYW5vdGhlciBEYXRlVGltZS5cbiAgICogSGlnaGVyLW9yZGVyIHVuaXRzIG11c3QgYWxzbyBiZSBpZGVudGljYWwgZm9yIHRoaXMgZnVuY3Rpb24gdG8gcmV0dXJuIGB0cnVlYC5cbiAgICogTm90ZSB0aGF0IHRpbWUgem9uZXMgYXJlICoqaWdub3JlZCoqIGluIHRoaXMgY29tcGFyaXNvbiwgd2hpY2ggY29tcGFyZXMgdGhlICoqbG9jYWwqKiBjYWxlbmRhciB0aW1lLiBVc2Uge0BsaW5rIERhdGVUaW1lI3NldFpvbmV9IHRvIGNvbnZlcnQgb25lIG9mIHRoZSBkYXRlcyBpZiBuZWVkZWQuXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IG90aGVyRGF0ZVRpbWUgLSB0aGUgb3RoZXIgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSB0aGUgdW5pdCBvZiB0aW1lIHRvIGNoZWNrIHNhbWVuZXNzIG9uXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLmhhc1NhbWUob3RoZXJEVCwgJ2RheScpOyAvL34+IHRydWUgaWYgb3RoZXJEVCBpcyBpbiB0aGUgc2FtZSBjdXJyZW50IGNhbGVuZGFyIGRheVxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaGFzU2FtZShvdGhlckRhdGVUaW1lLCB1bml0KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGlucHV0TXMgPSBvdGhlckRhdGVUaW1lLnZhbHVlT2YoKTtcbiAgICBjb25zdCBhZGp1c3RlZFRvWm9uZSA9IHRoaXMuc2V0Wm9uZShvdGhlckRhdGVUaW1lLnpvbmUsIHsga2VlcExvY2FsVGltZTogdHJ1ZSB9KTtcbiAgICByZXR1cm4gYWRqdXN0ZWRUb1pvbmUuc3RhcnRPZih1bml0KSA8PSBpbnB1dE1zICYmIGlucHV0TXMgPD0gYWRqdXN0ZWRUb1pvbmUuZW5kT2YodW5pdCk7XG4gIH1cblxuICAvKipcbiAgICogRXF1YWxpdHkgY2hlY2tcbiAgICogVHdvIERhdGVUaW1lcyBhcmUgZXF1YWwgaWZmIHRoZXkgcmVwcmVzZW50IHRoZSBzYW1lIG1pbGxpc2Vjb25kLCBoYXZlIHRoZSBzYW1lIHpvbmUgYW5kIGxvY2F0aW9uLCBhbmQgYXJlIGJvdGggdmFsaWQuXG4gICAqIFRvIGNvbXBhcmUganVzdCB0aGUgbWlsbGlzZWNvbmQgdmFsdWVzLCB1c2UgYCtkdDEgPT09ICtkdDJgLlxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBvdGhlciAtIHRoZSBvdGhlciBEYXRlVGltZVxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZXF1YWxzKG90aGVyKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaXNWYWxpZCAmJlxuICAgICAgb3RoZXIuaXNWYWxpZCAmJlxuICAgICAgdGhpcy52YWx1ZU9mKCkgPT09IG90aGVyLnZhbHVlT2YoKSAmJlxuICAgICAgdGhpcy56b25lLmVxdWFscyhvdGhlci56b25lKSAmJlxuICAgICAgdGhpcy5sb2MuZXF1YWxzKG90aGVyLmxvYylcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSB0aGlzIHRpbWUgcmVsYXRpdmUgdG8gbm93LCBzdWNoIGFzIFwiaW4gdHdvIGRheXNcIi4gQ2FuIG9ubHkgaW50ZXJuYXRpb25hbGl6ZSBpZiB5b3VyXG4gICAqIHBsYXRmb3JtIHN1cHBvcnRzIEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LiBSb3VuZHMgZG93biBieSBkZWZhdWx0LlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIG91dHB1dFxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBbb3B0aW9ucy5iYXNlPURhdGVUaW1lLm5vdygpXSAtIHRoZSBEYXRlVGltZSB0byB1c2UgYXMgdGhlIGJhc2lzIHRvIHdoaWNoIHRoaXMgdGltZSBpcyBjb21wYXJlZC4gRGVmYXVsdHMgdG8gbm93LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuc3R5bGU9XCJsb25nXCJdIC0gdGhlIHN0eWxlIG9mIHVuaXRzLCBtdXN0IGJlIFwibG9uZ1wiLCBcInNob3J0XCIsIG9yIFwibmFycm93XCJcbiAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IG9wdGlvbnMudW5pdCAtIHVzZSBhIHNwZWNpZmljIHVuaXQgb3IgYXJyYXkgb2YgdW5pdHM7IGlmIG9taXR0ZWQsIG9yIGFuIGFycmF5LCB0aGUgbWV0aG9kIHdpbGwgcGljayB0aGUgYmVzdCB1bml0LiBVc2UgYW4gYXJyYXkgb3Igb25lIG9mIFwieWVhcnNcIiwgXCJxdWFydGVyc1wiLCBcIm1vbnRoc1wiLCBcIndlZWtzXCIsIFwiZGF5c1wiLCBcImhvdXJzXCIsIFwibWludXRlc1wiLCBvciBcInNlY29uZHNcIlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnJvdW5kPXRydWVdIC0gd2hldGhlciB0byByb3VuZCB0aGUgbnVtYmVycyBpbiB0aGUgb3V0cHV0LlxuICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMucGFkZGluZz0wXSAtIHBhZGRpbmcgaW4gbWlsbGlzZWNvbmRzLiBUaGlzIGFsbG93cyB5b3UgdG8gcm91bmQgdXAgdGhlIHJlc3VsdCBpZiBpdCBmaXRzIGluc2lkZSB0aGUgdGhyZXNob2xkLiBEb24ndCB1c2UgaW4gY29tYmluYXRpb24gd2l0aCB7cm91bmQ6IGZhbHNlfSBiZWNhdXNlIHRoZSBkZWNpbWFsIG91dHB1dCB3aWxsIGluY2x1ZGUgdGhlIHBhZGRpbmcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmxvY2FsZSAtIG92ZXJyaWRlIHRoZSBsb2NhbGUgb2YgdGhpcyBEYXRlVGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5udW1iZXJpbmdTeXN0ZW0gLSBvdmVycmlkZSB0aGUgbnVtYmVyaW5nU3lzdGVtIG9mIHRoaXMgRGF0ZVRpbWUuIFRoZSBJbnRsIHN5c3RlbSBtYXkgY2hvb3NlIG5vdCB0byBob25vciB0aGlzXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAxIH0pLnRvUmVsYXRpdmUoKSAvLz0+IFwiaW4gMSBkYXlcIlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5zZXRMb2NhbGUoXCJlc1wiKS50b1JlbGF0aXZlKHsgZGF5czogMSB9KSAvLz0+IFwiZGVudHJvIGRlIDEgZFx1MDBFRGFcIlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlKHsgbG9jYWxlOiBcImZyXCIgfSkgLy89PiBcImRhbnMgMjMgaGV1cmVzXCJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkubWludXMoeyBkYXlzOiAyIH0pLnRvUmVsYXRpdmUoKSAvLz0+IFwiMiBkYXlzIGFnb1wiXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLm1pbnVzKHsgZGF5czogMiB9KS50b1JlbGF0aXZlKHsgdW5pdDogXCJob3Vyc1wiIH0pIC8vPT4gXCI0OCBob3VycyBhZ29cIlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5taW51cyh7IGhvdXJzOiAzNiB9KS50b1JlbGF0aXZlKHsgcm91bmQ6IGZhbHNlIH0pIC8vPT4gXCIxLjUgZGF5cyBhZ29cIlxuICAgKi9cbiAgdG9SZWxhdGl2ZShvcHRpb25zID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgYmFzZSA9IG9wdGlvbnMuYmFzZSB8fCBEYXRlVGltZS5mcm9tT2JqZWN0KHt9LCB7IHpvbmU6IHRoaXMuem9uZSB9KSxcbiAgICAgIHBhZGRpbmcgPSBvcHRpb25zLnBhZGRpbmcgPyAodGhpcyA8IGJhc2UgPyAtb3B0aW9ucy5wYWRkaW5nIDogb3B0aW9ucy5wYWRkaW5nKSA6IDA7XG4gICAgbGV0IHVuaXRzID0gW1wieWVhcnNcIiwgXCJtb250aHNcIiwgXCJkYXlzXCIsIFwiaG91cnNcIiwgXCJtaW51dGVzXCIsIFwic2Vjb25kc1wiXTtcbiAgICBsZXQgdW5pdCA9IG9wdGlvbnMudW5pdDtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLnVuaXQpKSB7XG4gICAgICB1bml0cyA9IG9wdGlvbnMudW5pdDtcbiAgICAgIHVuaXQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiBkaWZmUmVsYXRpdmUoYmFzZSwgdGhpcy5wbHVzKHBhZGRpbmcpLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgbnVtZXJpYzogXCJhbHdheXNcIixcbiAgICAgIHVuaXRzLFxuICAgICAgdW5pdCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgZGF0ZSByZWxhdGl2ZSB0byB0b2RheSwgc3VjaCBhcyBcInllc3RlcmRheVwiIG9yIFwibmV4dCBtb250aFwiLlxuICAgKiBPbmx5IGludGVybmF0aW9uYWxpemVzIG9uIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnRzIEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIG91dHB1dFxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBbb3B0aW9ucy5iYXNlPURhdGVUaW1lLm5vdygpXSAtIHRoZSBEYXRlVGltZSB0byB1c2UgYXMgdGhlIGJhc2lzIHRvIHdoaWNoIHRoaXMgdGltZSBpcyBjb21wYXJlZC4gRGVmYXVsdHMgdG8gbm93LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5sb2NhbGUgLSBvdmVycmlkZSB0aGUgbG9jYWxlIG9mIHRoaXMgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMudW5pdCAtIHVzZSBhIHNwZWNpZmljIHVuaXQ7IGlmIG9taXR0ZWQsIHRoZSBtZXRob2Qgd2lsbCBwaWNrIHRoZSB1bml0LiBVc2Ugb25lIG9mIFwieWVhcnNcIiwgXCJxdWFydGVyc1wiLCBcIm1vbnRoc1wiLCBcIndlZWtzXCIsIG9yIFwiZGF5c1wiXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm51bWJlcmluZ1N5c3RlbSAtIG92ZXJyaWRlIHRoZSBudW1iZXJpbmdTeXN0ZW0gb2YgdGhpcyBEYXRlVGltZS4gVGhlIEludGwgc3lzdGVtIG1heSBjaG9vc2Ugbm90IHRvIGhvbm9yIHRoaXNcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZUNhbGVuZGFyKCkgLy89PiBcInRvbW9ycm93XCJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkuc2V0TG9jYWxlKFwiZXNcIikucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZSgpIC8vPT4gXCJcIm1hXHUwMEYxYW5hXCJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZUNhbGVuZGFyKHsgbG9jYWxlOiBcImZyXCIgfSkgLy89PiBcImRlbWFpblwiXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLm1pbnVzKHsgZGF5czogMiB9KS50b1JlbGF0aXZlQ2FsZW5kYXIoKSAvLz0+IFwiMiBkYXlzIGFnb1wiXG4gICAqL1xuICB0b1JlbGF0aXZlQ2FsZW5kYXIob3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIGRpZmZSZWxhdGl2ZShvcHRpb25zLmJhc2UgfHwgRGF0ZVRpbWUuZnJvbU9iamVjdCh7fSwgeyB6b25lOiB0aGlzLnpvbmUgfSksIHRoaXMsIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBudW1lcmljOiBcImF1dG9cIixcbiAgICAgIHVuaXRzOiBbXCJ5ZWFyc1wiLCBcIm1vbnRoc1wiLCBcImRheXNcIl0sXG4gICAgICBjYWxlbmRhcnk6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBtaW4gb2Ygc2V2ZXJhbCBkYXRlIHRpbWVzXG4gICAqIEBwYXJhbSB7Li4uRGF0ZVRpbWV9IGRhdGVUaW1lcyAtIHRoZSBEYXRlVGltZXMgZnJvbSB3aGljaCB0byBjaG9vc2UgdGhlIG1pbmltdW1cbiAgICogQHJldHVybiB7RGF0ZVRpbWV9IHRoZSBtaW4gRGF0ZVRpbWUsIG9yIHVuZGVmaW5lZCBpZiBjYWxsZWQgd2l0aCBubyBhcmd1bWVudFxuICAgKi9cbiAgc3RhdGljIG1pbiguLi5kYXRlVGltZXMpIHtcbiAgICBpZiAoIWRhdGVUaW1lcy5ldmVyeShEYXRlVGltZS5pc0RhdGVUaW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFwibWluIHJlcXVpcmVzIGFsbCBhcmd1bWVudHMgYmUgRGF0ZVRpbWVzXCIpO1xuICAgIH1cbiAgICByZXR1cm4gYmVzdEJ5KGRhdGVUaW1lcywgKGkpID0+IGkudmFsdWVPZigpLCBNYXRoLm1pbik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBtYXggb2Ygc2V2ZXJhbCBkYXRlIHRpbWVzXG4gICAqIEBwYXJhbSB7Li4uRGF0ZVRpbWV9IGRhdGVUaW1lcyAtIHRoZSBEYXRlVGltZXMgZnJvbSB3aGljaCB0byBjaG9vc2UgdGhlIG1heGltdW1cbiAgICogQHJldHVybiB7RGF0ZVRpbWV9IHRoZSBtYXggRGF0ZVRpbWUsIG9yIHVuZGVmaW5lZCBpZiBjYWxsZWQgd2l0aCBubyBhcmd1bWVudFxuICAgKi9cbiAgc3RhdGljIG1heCguLi5kYXRlVGltZXMpIHtcbiAgICBpZiAoIWRhdGVUaW1lcy5ldmVyeShEYXRlVGltZS5pc0RhdGVUaW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFwibWF4IHJlcXVpcmVzIGFsbCBhcmd1bWVudHMgYmUgRGF0ZVRpbWVzXCIpO1xuICAgIH1cbiAgICByZXR1cm4gYmVzdEJ5KGRhdGVUaW1lcywgKGkpID0+IGkudmFsdWVPZigpLCBNYXRoLm1heCk7XG4gIH1cblxuICAvLyBNSVNDXG5cbiAgLyoqXG4gICAqIEV4cGxhaW4gaG93IGEgc3RyaW5nIHdvdWxkIGJlIHBhcnNlZCBieSBmcm9tRm9ybWF0KClcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgc3RyaW5nIHRvIHBhcnNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmbXQgLSB0aGUgZm9ybWF0IHRoZSBzdHJpbmcgaXMgZXhwZWN0ZWQgdG8gYmUgaW4gKHNlZSBkZXNjcmlwdGlvbilcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBvcHRpb25zIHRha2VuIGJ5IGZyb21Gb3JtYXQoKVxuICAgKiBAcmV0dXJuIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZnJvbUZvcm1hdEV4cGxhaW4odGV4dCwgZm10LCBvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCB7IGxvY2FsZSA9IG51bGwsIG51bWJlcmluZ1N5c3RlbSA9IG51bGwgfSA9IG9wdGlvbnMsXG4gICAgICBsb2NhbGVUb1VzZSA9IExvY2FsZS5mcm9tT3B0cyh7XG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgbnVtYmVyaW5nU3lzdGVtLFxuICAgICAgICBkZWZhdWx0VG9FTjogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIHJldHVybiBleHBsYWluRnJvbVRva2Vucyhsb2NhbGVUb1VzZSwgdGV4dCwgZm10KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgZnJvbUZvcm1hdEV4cGxhaW4gaW5zdGVhZFxuICAgKi9cbiAgc3RhdGljIGZyb21TdHJpbmdFeHBsYWluKHRleHQsIGZtdCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXRFeHBsYWluKHRleHQsIGZtdCwgb3B0aW9ucyk7XG4gIH1cblxuICAvLyBGT1JNQVQgUFJFU0VUU1xuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlIDEwLzE0LzE5ODNcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURV9TSE9SVCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFX1NIT1JUO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdCAxNCwgMTk4MydcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURV9NRUQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURV9NRUQ7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnRnJpLCBPY3QgMTQsIDE5ODMnXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVfTUVEX1dJVEhfV0VFS0RBWSgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFX01FRF9XSVRIX1dFRUtEQVk7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnT2N0b2JlciAxNCwgMTk4MydcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURV9GVUxMKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVfRlVMTDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdUdWVzZGF5LCBPY3RvYmVyIDE0LCAxOTgzJ1xuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFX0hVR0UoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURV9IVUdFO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IFRJTUVfU0lNUExFKCkge1xuICAgIHJldHVybiBGb3JtYXRzLlRJTUVfU0lNUExFO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IFRJTUVfV0lUSF9TRUNPTkRTKCkge1xuICAgIHJldHVybiBGb3JtYXRzLlRJTUVfV0lUSF9TRUNPTkRTO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEFNIEVEVCcuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBUSU1FX1dJVEhfU0hPUlRfT0ZGU0VUKCkge1xuICAgIHJldHVybiBGb3JtYXRzLlRJTUVfV0lUSF9TSE9SVF9PRkZTRVQ7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMgQU0gRWFzdGVybiBEYXlsaWdodCBUaW1lJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IFRJTUVfV0lUSF9MT05HX09GRlNFVCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5USU1FX1dJVEhfTE9OR19PRkZTRVQ7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzAnLCBhbHdheXMgMjQtaG91ci5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV8yNF9TSU1QTEUoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV8yNF9TSU1QTEU7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMnLCBhbHdheXMgMjQtaG91ci5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV8yNF9XSVRIX1NFQ09ORFMoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV8yNF9XSVRIX1NFQ09ORFM7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMgRURUJywgYWx3YXlzIDI0LWhvdXIuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IFRJTUVfMjRfV0lUSF9TSE9SVF9PRkZTRVQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMDoyMyBFYXN0ZXJuIERheWxpZ2h0IFRpbWUnLCBhbHdheXMgMjQtaG91ci5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV8yNF9XSVRIX0xPTkdfT0ZGU0VUKCkge1xuICAgIHJldHVybiBGb3JtYXRzLlRJTUVfMjRfV0lUSF9MT05HX09GRlNFVDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcxMC8xNC8xOTgzLCA5OjMwIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVUSU1FX1NIT1JUKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX1NIT1JUO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzEwLzE0LzE5ODMsIDk6MzA6MzMgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUztcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3QgMTQsIDE5ODMsIDk6MzAgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfTUVEKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX01FRDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3QgMTQsIDE5ODMsIDk6MzA6MzMgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUygpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFVElNRV9NRURfV0lUSF9TRUNPTkRTO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ0ZyaSwgMTQgT2N0IDE5ODMsIDk6MzAgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfTUVEX1dJVEhfV0VFS0RBWSgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFVElNRV9NRURfV0lUSF9XRUVLREFZO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdG9iZXIgMTQsIDE5ODMsIDk6MzAgQU0gRURUJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVUSU1FX0ZVTEwoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfRlVMTDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3RvYmVyIDE0LCAxOTgzLCA5OjMwOjMzIEFNIEVEVCcuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUygpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUztcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdGcmlkYXksIE9jdG9iZXIgMTQsIDE5ODMsIDk6MzAgQU0gRWFzdGVybiBEYXlsaWdodCBUaW1lJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVUSU1FX0hVR0UoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfSFVHRTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdGcmlkYXksIE9jdG9iZXIgMTQsIDE5ODMsIDk6MzA6MzMgQU0gRWFzdGVybiBEYXlsaWdodCBUaW1lJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVUSU1FX0hVR0VfV0lUSF9TRUNPTkRTKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX0hVR0VfV0lUSF9TRUNPTkRTO1xuICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyaWVuZGx5RGF0ZVRpbWUoZGF0ZVRpbWVpc2gpIHtcbiAgaWYgKERhdGVUaW1lLmlzRGF0ZVRpbWUoZGF0ZVRpbWVpc2gpKSB7XG4gICAgcmV0dXJuIGRhdGVUaW1laXNoO1xuICB9IGVsc2UgaWYgKGRhdGVUaW1laXNoICYmIGRhdGVUaW1laXNoLnZhbHVlT2YgJiYgaXNOdW1iZXIoZGF0ZVRpbWVpc2gudmFsdWVPZigpKSkge1xuICAgIHJldHVybiBEYXRlVGltZS5mcm9tSlNEYXRlKGRhdGVUaW1laXNoKTtcbiAgfSBlbHNlIGlmIChkYXRlVGltZWlzaCAmJiB0eXBlb2YgZGF0ZVRpbWVpc2ggPT09IFwib2JqZWN0XCIpIHtcbiAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbU9iamVjdChkYXRlVGltZWlzaCk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgYFVua25vd24gZGF0ZXRpbWUgYXJndW1lbnQ6ICR7ZGF0ZVRpbWVpc2h9LCBvZiB0eXBlICR7dHlwZW9mIGRhdGVUaW1laXNofWBcbiAgICApO1xuICB9XG59XG4iLCAiaW1wb3J0IERhdGVUaW1lIGZyb20gXCIuL2RhdGV0aW1lLmpzXCI7XG5pbXBvcnQgRHVyYXRpb24gZnJvbSBcIi4vZHVyYXRpb24uanNcIjtcbmltcG9ydCBJbnRlcnZhbCBmcm9tIFwiLi9pbnRlcnZhbC5qc1wiO1xuaW1wb3J0IEluZm8gZnJvbSBcIi4vaW5mby5qc1wiO1xuaW1wb3J0IFpvbmUgZnJvbSBcIi4vem9uZS5qc1wiO1xuaW1wb3J0IEZpeGVkT2Zmc2V0Wm9uZSBmcm9tIFwiLi96b25lcy9maXhlZE9mZnNldFpvbmUuanNcIjtcbmltcG9ydCBJQU5BWm9uZSBmcm9tIFwiLi96b25lcy9JQU5BWm9uZS5qc1wiO1xuaW1wb3J0IEludmFsaWRab25lIGZyb20gXCIuL3pvbmVzL2ludmFsaWRab25lLmpzXCI7XG5pbXBvcnQgU3lzdGVtWm9uZSBmcm9tIFwiLi96b25lcy9zeXN0ZW1ab25lLmpzXCI7XG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3MuanNcIjtcblxuY29uc3QgVkVSU0lPTiA9IFwiMi4zLjBcIjtcblxuZXhwb3J0IHtcbiAgVkVSU0lPTixcbiAgRGF0ZVRpbWUsXG4gIER1cmF0aW9uLFxuICBJbnRlcnZhbCxcbiAgSW5mbyxcbiAgWm9uZSxcbiAgRml4ZWRPZmZzZXRab25lLFxuICBJQU5BWm9uZSxcbiAgSW52YWxpZFpvbmUsXG4gIFN5c3RlbVpvbmUsXG4gIFNldHRpbmdzLFxufTtcbiIsICIvKipcbiAqIEBsaWNlbnNlXG4gKiBMb2Rhc2ggPGh0dHBzOi8vbG9kYXNoLmNvbS8+XG4gKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyA8aHR0cHM6Ly9vcGVuanNmLm9yZy8+XG4gKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+XG4gKiBCYXNlZCBvbiBVbmRlcnNjb3JlLmpzIDEuOC4zIDxodHRwOi8vdW5kZXJzY29yZWpzLm9yZy9MSUNFTlNFPlxuICogQ29weXJpZ2h0IEplcmVteSBBc2hrZW5hcywgRG9jdW1lbnRDbG91ZCBhbmQgSW52ZXN0aWdhdGl2ZSBSZXBvcnRlcnMgJiBFZGl0b3JzXG4gKi9cbjsoZnVuY3Rpb24oKSB7XG5cbiAgLyoqIFVzZWQgYXMgYSBzYWZlIHJlZmVyZW5jZSBmb3IgYHVuZGVmaW5lZGAgaW4gcHJlLUVTNSBlbnZpcm9ubWVudHMuICovXG4gIHZhciB1bmRlZmluZWQ7XG5cbiAgLyoqIFVzZWQgYXMgdGhlIHNlbWFudGljIHZlcnNpb24gbnVtYmVyLiAqL1xuICB2YXIgVkVSU0lPTiA9ICc0LjE3LjIxJztcblxuICAvKiogVXNlZCBhcyB0aGUgc2l6ZSB0byBlbmFibGUgbGFyZ2UgYXJyYXkgb3B0aW1pemF0aW9ucy4gKi9cbiAgdmFyIExBUkdFX0FSUkFZX1NJWkUgPSAyMDA7XG5cbiAgLyoqIEVycm9yIG1lc3NhZ2UgY29uc3RhbnRzLiAqL1xuICB2YXIgQ09SRV9FUlJPUl9URVhUID0gJ1Vuc3VwcG9ydGVkIGNvcmUtanMgdXNlLiBUcnkgaHR0cHM6Ly9ucG1zLmlvL3NlYXJjaD9xPXBvbnlmaWxsLicsXG4gICAgICBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbicsXG4gICAgICBJTlZBTElEX1RFTVBMX1ZBUl9FUlJPUl9URVhUID0gJ0ludmFsaWQgYHZhcmlhYmxlYCBvcHRpb24gcGFzc2VkIGludG8gYF8udGVtcGxhdGVgJztcblxuICAvKiogVXNlZCB0byBzdGFuZC1pbiBmb3IgYHVuZGVmaW5lZGAgaGFzaCB2YWx1ZXMuICovXG4gIHZhciBIQVNIX1VOREVGSU5FRCA9ICdfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fJztcblxuICAvKiogVXNlZCBhcyB0aGUgbWF4aW11bSBtZW1vaXplIGNhY2hlIHNpemUuICovXG4gIHZhciBNQVhfTUVNT0laRV9TSVpFID0gNTAwO1xuXG4gIC8qKiBVc2VkIGFzIHRoZSBpbnRlcm5hbCBhcmd1bWVudCBwbGFjZWhvbGRlci4gKi9cbiAgdmFyIFBMQUNFSE9MREVSID0gJ19fbG9kYXNoX3BsYWNlaG9sZGVyX18nO1xuXG4gIC8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIGNsb25pbmcuICovXG4gIHZhciBDTE9ORV9ERUVQX0ZMQUcgPSAxLFxuICAgICAgQ0xPTkVfRkxBVF9GTEFHID0gMixcbiAgICAgIENMT05FX1NZTUJPTFNfRkxBRyA9IDQ7XG5cbiAgLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgdmFsdWUgY29tcGFyaXNvbnMuICovXG4gIHZhciBDT01QQVJFX1BBUlRJQUxfRkxBRyA9IDEsXG4gICAgICBDT01QQVJFX1VOT1JERVJFRF9GTEFHID0gMjtcblxuICAvKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciBmdW5jdGlvbiBtZXRhZGF0YS4gKi9cbiAgdmFyIFdSQVBfQklORF9GTEFHID0gMSxcbiAgICAgIFdSQVBfQklORF9LRVlfRkxBRyA9IDIsXG4gICAgICBXUkFQX0NVUlJZX0JPVU5EX0ZMQUcgPSA0LFxuICAgICAgV1JBUF9DVVJSWV9GTEFHID0gOCxcbiAgICAgIFdSQVBfQ1VSUllfUklHSFRfRkxBRyA9IDE2LFxuICAgICAgV1JBUF9QQVJUSUFMX0ZMQUcgPSAzMixcbiAgICAgIFdSQVBfUEFSVElBTF9SSUdIVF9GTEFHID0gNjQsXG4gICAgICBXUkFQX0FSWV9GTEFHID0gMTI4LFxuICAgICAgV1JBUF9SRUFSR19GTEFHID0gMjU2LFxuICAgICAgV1JBUF9GTElQX0ZMQUcgPSA1MTI7XG5cbiAgLyoqIFVzZWQgYXMgZGVmYXVsdCBvcHRpb25zIGZvciBgXy50cnVuY2F0ZWAuICovXG4gIHZhciBERUZBVUxUX1RSVU5DX0xFTkdUSCA9IDMwLFxuICAgICAgREVGQVVMVF9UUlVOQ19PTUlTU0lPTiA9ICcuLi4nO1xuXG4gIC8qKiBVc2VkIHRvIGRldGVjdCBob3QgZnVuY3Rpb25zIGJ5IG51bWJlciBvZiBjYWxscyB3aXRoaW4gYSBzcGFuIG9mIG1pbGxpc2Vjb25kcy4gKi9cbiAgdmFyIEhPVF9DT1VOVCA9IDgwMCxcbiAgICAgIEhPVF9TUEFOID0gMTY7XG5cbiAgLyoqIFVzZWQgdG8gaW5kaWNhdGUgdGhlIHR5cGUgb2YgbGF6eSBpdGVyYXRlZXMuICovXG4gIHZhciBMQVpZX0ZJTFRFUl9GTEFHID0gMSxcbiAgICAgIExBWllfTUFQX0ZMQUcgPSAyLFxuICAgICAgTEFaWV9XSElMRV9GTEFHID0gMztcblxuICAvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbiAgdmFyIElORklOSVRZID0gMSAvIDAsXG4gICAgICBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MSxcbiAgICAgIE1BWF9JTlRFR0VSID0gMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDgsXG4gICAgICBOQU4gPSAwIC8gMDtcblxuICAvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB0aGUgbWF4aW11bSBsZW5ndGggYW5kIGluZGV4IG9mIGFuIGFycmF5LiAqL1xuICB2YXIgTUFYX0FSUkFZX0xFTkdUSCA9IDQyOTQ5NjcyOTUsXG4gICAgICBNQVhfQVJSQVlfSU5ERVggPSBNQVhfQVJSQVlfTEVOR1RIIC0gMSxcbiAgICAgIEhBTEZfTUFYX0FSUkFZX0xFTkdUSCA9IE1BWF9BUlJBWV9MRU5HVEggPj4+IDE7XG5cbiAgLyoqIFVzZWQgdG8gYXNzb2NpYXRlIHdyYXAgbWV0aG9kcyB3aXRoIHRoZWlyIGJpdCBmbGFncy4gKi9cbiAgdmFyIHdyYXBGbGFncyA9IFtcbiAgICBbJ2FyeScsIFdSQVBfQVJZX0ZMQUddLFxuICAgIFsnYmluZCcsIFdSQVBfQklORF9GTEFHXSxcbiAgICBbJ2JpbmRLZXknLCBXUkFQX0JJTkRfS0VZX0ZMQUddLFxuICAgIFsnY3VycnknLCBXUkFQX0NVUlJZX0ZMQUddLFxuICAgIFsnY3VycnlSaWdodCcsIFdSQVBfQ1VSUllfUklHSFRfRkxBR10sXG4gICAgWydmbGlwJywgV1JBUF9GTElQX0ZMQUddLFxuICAgIFsncGFydGlhbCcsIFdSQVBfUEFSVElBTF9GTEFHXSxcbiAgICBbJ3BhcnRpYWxSaWdodCcsIFdSQVBfUEFSVElBTF9SSUdIVF9GTEFHXSxcbiAgICBbJ3JlYXJnJywgV1JBUF9SRUFSR19GTEFHXVxuICBdO1xuXG4gIC8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbiAgdmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJyxcbiAgICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICAgIGFzeW5jVGFnID0gJ1tvYmplY3QgQXN5bmNGdW5jdGlvbl0nLFxuICAgICAgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcbiAgICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgICBkb21FeGNUYWcgPSAnW29iamVjdCBET01FeGNlcHRpb25dJyxcbiAgICAgIGVycm9yVGFnID0gJ1tvYmplY3QgRXJyb3JdJyxcbiAgICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgICAgZ2VuVGFnID0gJ1tvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dJyxcbiAgICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgICBudWxsVGFnID0gJ1tvYmplY3QgTnVsbF0nLFxuICAgICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXG4gICAgICBwcm9taXNlVGFnID0gJ1tvYmplY3QgUHJvbWlzZV0nLFxuICAgICAgcHJveHlUYWcgPSAnW29iamVjdCBQcm94eV0nLFxuICAgICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgICBzZXRUYWcgPSAnW29iamVjdCBTZXRdJyxcbiAgICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgICAgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXScsXG4gICAgICB1bmRlZmluZWRUYWcgPSAnW29iamVjdCBVbmRlZmluZWRdJyxcbiAgICAgIHdlYWtNYXBUYWcgPSAnW29iamVjdCBXZWFrTWFwXScsXG4gICAgICB3ZWFrU2V0VGFnID0gJ1tvYmplY3QgV2Vha1NldF0nO1xuXG4gIHZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgICBkYXRhVmlld1RhZyA9ICdbb2JqZWN0IERhdGFWaWV3XScsXG4gICAgICBmbG9hdDMyVGFnID0gJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgICBmbG9hdDY0VGFnID0gJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScsXG4gICAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgICBpbnQxNlRhZyA9ICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICAgIGludDMyVGFnID0gJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgICB1aW50OENsYW1wZWRUYWcgPSAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgICAgdWludDE2VGFnID0gJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggZW1wdHkgc3RyaW5nIGxpdGVyYWxzIGluIGNvbXBpbGVkIHRlbXBsYXRlIHNvdXJjZS4gKi9cbiAgdmFyIHJlRW1wdHlTdHJpbmdMZWFkaW5nID0gL1xcYl9fcCBcXCs9ICcnOy9nLFxuICAgICAgcmVFbXB0eVN0cmluZ01pZGRsZSA9IC9cXGIoX19wIFxcKz0pICcnIFxcKy9nLFxuICAgICAgcmVFbXB0eVN0cmluZ1RyYWlsaW5nID0gLyhfX2VcXCguKj9cXCl8XFxiX190XFwpKSBcXCtcXG4nJzsvZztcblxuICAvKiogVXNlZCB0byBtYXRjaCBIVE1MIGVudGl0aWVzIGFuZCBIVE1MIGNoYXJhY3RlcnMuICovXG4gIHZhciByZUVzY2FwZWRIdG1sID0gLyYoPzphbXB8bHR8Z3R8cXVvdHwjMzkpOy9nLFxuICAgICAgcmVVbmVzY2FwZWRIdG1sID0gL1smPD5cIiddL2csXG4gICAgICByZUhhc0VzY2FwZWRIdG1sID0gUmVnRXhwKHJlRXNjYXBlZEh0bWwuc291cmNlKSxcbiAgICAgIHJlSGFzVW5lc2NhcGVkSHRtbCA9IFJlZ0V4cChyZVVuZXNjYXBlZEh0bWwuc291cmNlKTtcblxuICAvKiogVXNlZCB0byBtYXRjaCB0ZW1wbGF0ZSBkZWxpbWl0ZXJzLiAqL1xuICB2YXIgcmVFc2NhcGUgPSAvPCUtKFtcXHNcXFNdKz8pJT4vZyxcbiAgICAgIHJlRXZhbHVhdGUgPSAvPCUoW1xcc1xcU10rPyklPi9nLFxuICAgICAgcmVJbnRlcnBvbGF0ZSA9IC88JT0oW1xcc1xcU10rPyklPi9nO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIHByb3BlcnR5IG5hbWVzIHdpdGhpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbiAgdmFyIHJlSXNEZWVwUHJvcCA9IC9cXC58XFxbKD86W15bXFxdXSp8KFtcIiddKSg/Oig/IVxcMSlbXlxcXFxdfFxcXFwuKSo/XFwxKVxcXS8sXG4gICAgICByZUlzUGxhaW5Qcm9wID0gL15cXHcqJC8sXG4gICAgICByZVByb3BOYW1lID0gL1teLltcXF1dK3xcXFsoPzooLT9cXGQrKD86XFwuXFxkKyk/KXwoW1wiJ10pKCg/Oig/IVxcMilbXlxcXFxdfFxcXFwuKSo/KVxcMilcXF18KD89KD86XFwufFxcW1xcXSkoPzpcXC58XFxbXFxdfCQpKS9nO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgXG4gICAqIFtzeW50YXggY2hhcmFjdGVyc10oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtcGF0dGVybnMpLlxuICAgKi9cbiAgdmFyIHJlUmVnRXhwQ2hhciA9IC9bXFxcXF4kLiorPygpW1xcXXt9fF0vZyxcbiAgICAgIHJlSGFzUmVnRXhwQ2hhciA9IFJlZ0V4cChyZVJlZ0V4cENoYXIuc291cmNlKTtcblxuICAvKiogVXNlZCB0byBtYXRjaCBsZWFkaW5nIHdoaXRlc3BhY2UuICovXG4gIHZhciByZVRyaW1TdGFydCA9IC9eXFxzKy87XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggYSBzaW5nbGUgd2hpdGVzcGFjZSBjaGFyYWN0ZXIuICovXG4gIHZhciByZVdoaXRlc3BhY2UgPSAvXFxzLztcblxuICAvKiogVXNlZCB0byBtYXRjaCB3cmFwIGRldGFpbCBjb21tZW50cy4gKi9cbiAgdmFyIHJlV3JhcENvbW1lbnQgPSAvXFx7KD86XFxuXFwvXFwqIFxcW3dyYXBwZWQgd2l0aCAuK1xcXSBcXCpcXC8pP1xcbj8vLFxuICAgICAgcmVXcmFwRGV0YWlscyA9IC9cXHtcXG5cXC9cXCogXFxbd3JhcHBlZCB3aXRoICguKylcXF0gXFwqLyxcbiAgICAgIHJlU3BsaXREZXRhaWxzID0gLyw/ICYgLztcblxuICAvKiogVXNlZCB0byBtYXRjaCB3b3JkcyBjb21wb3NlZCBvZiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy4gKi9cbiAgdmFyIHJlQXNjaWlXb3JkID0gL1teXFx4MDAtXFx4MmZcXHgzYS1cXHg0MFxceDViLVxceDYwXFx4N2ItXFx4N2ZdKy9nO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIHZhbGlkYXRlIHRoZSBgdmFsaWRhdGVgIG9wdGlvbiBpbiBgXy50ZW1wbGF0ZWAgdmFyaWFibGUuXG4gICAqXG4gICAqIEZvcmJpZHMgY2hhcmFjdGVycyB3aGljaCBjb3VsZCBwb3RlbnRpYWxseSBjaGFuZ2UgdGhlIG1lYW5pbmcgb2YgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50IGRlZmluaXRpb246XG4gICAqIC0gXCIoKSxcIiAobW9kaWZpY2F0aW9uIG9mIGZ1bmN0aW9uIHBhcmFtZXRlcnMpXG4gICAqIC0gXCI9XCIgKGRlZmF1bHQgdmFsdWUpXG4gICAqIC0gXCJbXXt9XCIgKGRlc3RydWN0dXJpbmcgb2YgZnVuY3Rpb24gcGFyYW1ldGVycylcbiAgICogLSBcIi9cIiAoYmVnaW5uaW5nIG9mIGEgY29tbWVudClcbiAgICogLSB3aGl0ZXNwYWNlXG4gICAqL1xuICB2YXIgcmVGb3JiaWRkZW5JZGVudGlmaWVyQ2hhcnMgPSAvWygpPSx7fVxcW1xcXVxcL1xcc10vO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGJhY2tzbGFzaGVzIGluIHByb3BlcnR5IHBhdGhzLiAqL1xuICB2YXIgcmVFc2NhcGVDaGFyID0gL1xcXFwoXFxcXCk/L2c7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gbWF0Y2hcbiAgICogW0VTIHRlbXBsYXRlIGRlbGltaXRlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRlbXBsYXRlLWxpdGVyYWwtbGV4aWNhbC1jb21wb25lbnRzKS5cbiAgICovXG4gIHZhciByZUVzVGVtcGxhdGUgPSAvXFwkXFx7KFteXFxcXH1dKig/OlxcXFwuW15cXFxcfV0qKSopXFx9L2c7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggYFJlZ0V4cGAgZmxhZ3MgZnJvbSB0aGVpciBjb2VyY2VkIHN0cmluZyB2YWx1ZXMuICovXG4gIHZhciByZUZsYWdzID0gL1xcdyokLztcblxuICAvKiogVXNlZCB0byBkZXRlY3QgYmFkIHNpZ25lZCBoZXhhZGVjaW1hbCBzdHJpbmcgdmFsdWVzLiAqL1xuICB2YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xuXG4gIC8qKiBVc2VkIHRvIGRldGVjdCBiaW5hcnkgc3RyaW5nIHZhbHVlcy4gKi9cbiAgdmFyIHJlSXNCaW5hcnkgPSAvXjBiWzAxXSskL2k7XG5cbiAgLyoqIFVzZWQgdG8gZGV0ZWN0IGhvc3QgY29uc3RydWN0b3JzIChTYWZhcmkpLiAqL1xuICB2YXIgcmVJc0hvc3RDdG9yID0gL15cXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXF0kLztcblxuICAvKiogVXNlZCB0byBkZXRlY3Qgb2N0YWwgc3RyaW5nIHZhbHVlcy4gKi9cbiAgdmFyIHJlSXNPY3RhbCA9IC9eMG9bMC03XSskL2k7XG5cbiAgLyoqIFVzZWQgdG8gZGV0ZWN0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzLiAqL1xuICB2YXIgcmVJc1VpbnQgPSAvXig/OjB8WzEtOV1cXGQqKSQvO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIExhdGluIFVuaWNvZGUgbGV0dGVycyAoZXhjbHVkaW5nIG1hdGhlbWF0aWNhbCBvcGVyYXRvcnMpLiAqL1xuICB2YXIgcmVMYXRpbiA9IC9bXFx4YzAtXFx4ZDZcXHhkOC1cXHhmNlxceGY4LVxceGZmXFx1MDEwMC1cXHUwMTdmXS9nO1xuXG4gIC8qKiBVc2VkIHRvIGVuc3VyZSBjYXB0dXJpbmcgb3JkZXIgb2YgdGVtcGxhdGUgZGVsaW1pdGVycy4gKi9cbiAgdmFyIHJlTm9NYXRjaCA9IC8oJF4pLztcblxuICAvKiogVXNlZCB0byBtYXRjaCB1bmVzY2FwZWQgY2hhcmFjdGVycyBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuICovXG4gIHZhciByZVVuZXNjYXBlZFN0cmluZyA9IC9bJ1xcblxcclxcdTIwMjhcXHUyMDI5XFxcXF0vZztcblxuICAvKiogVXNlZCB0byBjb21wb3NlIHVuaWNvZGUgY2hhcmFjdGVyIGNsYXNzZXMuICovXG4gIHZhciByc0FzdHJhbFJhbmdlID0gJ1xcXFx1ZDgwMC1cXFxcdWRmZmYnLFxuICAgICAgcnNDb21ib01hcmtzUmFuZ2UgPSAnXFxcXHUwMzAwLVxcXFx1MDM2ZicsXG4gICAgICByZUNvbWJvSGFsZk1hcmtzUmFuZ2UgPSAnXFxcXHVmZTIwLVxcXFx1ZmUyZicsXG4gICAgICByc0NvbWJvU3ltYm9sc1JhbmdlID0gJ1xcXFx1MjBkMC1cXFxcdTIwZmYnLFxuICAgICAgcnNDb21ib1JhbmdlID0gcnNDb21ib01hcmtzUmFuZ2UgKyByZUNvbWJvSGFsZk1hcmtzUmFuZ2UgKyByc0NvbWJvU3ltYm9sc1JhbmdlLFxuICAgICAgcnNEaW5nYmF0UmFuZ2UgPSAnXFxcXHUyNzAwLVxcXFx1MjdiZicsXG4gICAgICByc0xvd2VyUmFuZ2UgPSAnYS16XFxcXHhkZi1cXFxceGY2XFxcXHhmOC1cXFxceGZmJyxcbiAgICAgIHJzTWF0aE9wUmFuZ2UgPSAnXFxcXHhhY1xcXFx4YjFcXFxceGQ3XFxcXHhmNycsXG4gICAgICByc05vbkNoYXJSYW5nZSA9ICdcXFxceDAwLVxcXFx4MmZcXFxceDNhLVxcXFx4NDBcXFxceDViLVxcXFx4NjBcXFxceDdiLVxcXFx4YmYnLFxuICAgICAgcnNQdW5jdHVhdGlvblJhbmdlID0gJ1xcXFx1MjAwMC1cXFxcdTIwNmYnLFxuICAgICAgcnNTcGFjZVJhbmdlID0gJyBcXFxcdFxcXFx4MGJcXFxcZlxcXFx4YTBcXFxcdWZlZmZcXFxcblxcXFxyXFxcXHUyMDI4XFxcXHUyMDI5XFxcXHUxNjgwXFxcXHUxODBlXFxcXHUyMDAwXFxcXHUyMDAxXFxcXHUyMDAyXFxcXHUyMDAzXFxcXHUyMDA0XFxcXHUyMDA1XFxcXHUyMDA2XFxcXHUyMDA3XFxcXHUyMDA4XFxcXHUyMDA5XFxcXHUyMDBhXFxcXHUyMDJmXFxcXHUyMDVmXFxcXHUzMDAwJyxcbiAgICAgIHJzVXBwZXJSYW5nZSA9ICdBLVpcXFxceGMwLVxcXFx4ZDZcXFxceGQ4LVxcXFx4ZGUnLFxuICAgICAgcnNWYXJSYW5nZSA9ICdcXFxcdWZlMGVcXFxcdWZlMGYnLFxuICAgICAgcnNCcmVha1JhbmdlID0gcnNNYXRoT3BSYW5nZSArIHJzTm9uQ2hhclJhbmdlICsgcnNQdW5jdHVhdGlvblJhbmdlICsgcnNTcGFjZVJhbmdlO1xuXG4gIC8qKiBVc2VkIHRvIGNvbXBvc2UgdW5pY29kZSBjYXB0dXJlIGdyb3Vwcy4gKi9cbiAgdmFyIHJzQXBvcyA9IFwiWydcXHUyMDE5XVwiLFxuICAgICAgcnNBc3RyYWwgPSAnWycgKyByc0FzdHJhbFJhbmdlICsgJ10nLFxuICAgICAgcnNCcmVhayA9ICdbJyArIHJzQnJlYWtSYW5nZSArICddJyxcbiAgICAgIHJzQ29tYm8gPSAnWycgKyByc0NvbWJvUmFuZ2UgKyAnXScsXG4gICAgICByc0RpZ2l0cyA9ICdcXFxcZCsnLFxuICAgICAgcnNEaW5nYmF0ID0gJ1snICsgcnNEaW5nYmF0UmFuZ2UgKyAnXScsXG4gICAgICByc0xvd2VyID0gJ1snICsgcnNMb3dlclJhbmdlICsgJ10nLFxuICAgICAgcnNNaXNjID0gJ1teJyArIHJzQXN0cmFsUmFuZ2UgKyByc0JyZWFrUmFuZ2UgKyByc0RpZ2l0cyArIHJzRGluZ2JhdFJhbmdlICsgcnNMb3dlclJhbmdlICsgcnNVcHBlclJhbmdlICsgJ10nLFxuICAgICAgcnNGaXR6ID0gJ1xcXFx1ZDgzY1tcXFxcdWRmZmItXFxcXHVkZmZmXScsXG4gICAgICByc01vZGlmaWVyID0gJyg/OicgKyByc0NvbWJvICsgJ3wnICsgcnNGaXR6ICsgJyknLFxuICAgICAgcnNOb25Bc3RyYWwgPSAnW14nICsgcnNBc3RyYWxSYW5nZSArICddJyxcbiAgICAgIHJzUmVnaW9uYWwgPSAnKD86XFxcXHVkODNjW1xcXFx1ZGRlNi1cXFxcdWRkZmZdKXsyfScsXG4gICAgICByc1N1cnJQYWlyID0gJ1tcXFxcdWQ4MDAtXFxcXHVkYmZmXVtcXFxcdWRjMDAtXFxcXHVkZmZmXScsXG4gICAgICByc1VwcGVyID0gJ1snICsgcnNVcHBlclJhbmdlICsgJ10nLFxuICAgICAgcnNaV0ogPSAnXFxcXHUyMDBkJztcblxuICAvKiogVXNlZCB0byBjb21wb3NlIHVuaWNvZGUgcmVnZXhlcy4gKi9cbiAgdmFyIHJzTWlzY0xvd2VyID0gJyg/OicgKyByc0xvd2VyICsgJ3wnICsgcnNNaXNjICsgJyknLFxuICAgICAgcnNNaXNjVXBwZXIgPSAnKD86JyArIHJzVXBwZXIgKyAnfCcgKyByc01pc2MgKyAnKScsXG4gICAgICByc09wdENvbnRyTG93ZXIgPSAnKD86JyArIHJzQXBvcyArICcoPzpkfGxsfG18cmV8c3x0fHZlKSk/JyxcbiAgICAgIHJzT3B0Q29udHJVcHBlciA9ICcoPzonICsgcnNBcG9zICsgJyg/OkR8TEx8TXxSRXxTfFR8VkUpKT8nLFxuICAgICAgcmVPcHRNb2QgPSByc01vZGlmaWVyICsgJz8nLFxuICAgICAgcnNPcHRWYXIgPSAnWycgKyByc1ZhclJhbmdlICsgJ10/JyxcbiAgICAgIHJzT3B0Sm9pbiA9ICcoPzonICsgcnNaV0ogKyAnKD86JyArIFtyc05vbkFzdHJhbCwgcnNSZWdpb25hbCwgcnNTdXJyUGFpcl0uam9pbignfCcpICsgJyknICsgcnNPcHRWYXIgKyByZU9wdE1vZCArICcpKicsXG4gICAgICByc09yZExvd2VyID0gJ1xcXFxkKig/OjFzdHwybmR8M3JkfCg/IVsxMjNdKVxcXFxkdGgpKD89XFxcXGJ8W0EtWl9dKScsXG4gICAgICByc09yZFVwcGVyID0gJ1xcXFxkKig/OjFTVHwyTkR8M1JEfCg/IVsxMjNdKVxcXFxkVEgpKD89XFxcXGJ8W2Etel9dKScsXG4gICAgICByc1NlcSA9IHJzT3B0VmFyICsgcmVPcHRNb2QgKyByc09wdEpvaW4sXG4gICAgICByc0Vtb2ppID0gJyg/OicgKyBbcnNEaW5nYmF0LCByc1JlZ2lvbmFsLCByc1N1cnJQYWlyXS5qb2luKCd8JykgKyAnKScgKyByc1NlcSxcbiAgICAgIHJzU3ltYm9sID0gJyg/OicgKyBbcnNOb25Bc3RyYWwgKyByc0NvbWJvICsgJz8nLCByc0NvbWJvLCByc1JlZ2lvbmFsLCByc1N1cnJQYWlyLCByc0FzdHJhbF0uam9pbignfCcpICsgJyknO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGFwb3N0cm9waGVzLiAqL1xuICB2YXIgcmVBcG9zID0gUmVnRXhwKHJzQXBvcywgJ2cnKTtcblxuICAvKipcbiAgICogVXNlZCB0byBtYXRjaCBbY29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db21iaW5pbmdfRGlhY3JpdGljYWxfTWFya3MpIGFuZFxuICAgKiBbY29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzIGZvciBzeW1ib2xzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db21iaW5pbmdfRGlhY3JpdGljYWxfTWFya3NfZm9yX1N5bWJvbHMpLlxuICAgKi9cbiAgdmFyIHJlQ29tYm9NYXJrID0gUmVnRXhwKHJzQ29tYm8sICdnJyk7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggW3N0cmluZyBzeW1ib2xzXShodHRwczovL21hdGhpYXNieW5lbnMuYmUvbm90ZXMvamF2YXNjcmlwdC11bmljb2RlKS4gKi9cbiAgdmFyIHJlVW5pY29kZSA9IFJlZ0V4cChyc0ZpdHogKyAnKD89JyArIHJzRml0eiArICcpfCcgKyByc1N5bWJvbCArIHJzU2VxLCAnZycpO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGNvbXBsZXggb3IgY29tcG91bmQgd29yZHMuICovXG4gIHZhciByZVVuaWNvZGVXb3JkID0gUmVnRXhwKFtcbiAgICByc1VwcGVyICsgJz8nICsgcnNMb3dlciArICcrJyArIHJzT3B0Q29udHJMb3dlciArICcoPz0nICsgW3JzQnJlYWssIHJzVXBwZXIsICckJ10uam9pbignfCcpICsgJyknLFxuICAgIHJzTWlzY1VwcGVyICsgJysnICsgcnNPcHRDb250clVwcGVyICsgJyg/PScgKyBbcnNCcmVhaywgcnNVcHBlciArIHJzTWlzY0xvd2VyLCAnJCddLmpvaW4oJ3wnKSArICcpJyxcbiAgICByc1VwcGVyICsgJz8nICsgcnNNaXNjTG93ZXIgKyAnKycgKyByc09wdENvbnRyTG93ZXIsXG4gICAgcnNVcHBlciArICcrJyArIHJzT3B0Q29udHJVcHBlcixcbiAgICByc09yZFVwcGVyLFxuICAgIHJzT3JkTG93ZXIsXG4gICAgcnNEaWdpdHMsXG4gICAgcnNFbW9qaVxuICBdLmpvaW4oJ3wnKSwgJ2cnKTtcblxuICAvKiogVXNlZCB0byBkZXRlY3Qgc3RyaW5ncyB3aXRoIFt6ZXJvLXdpZHRoIGpvaW5lcnMgb3IgY29kZSBwb2ludHMgZnJvbSB0aGUgYXN0cmFsIHBsYW5lc10oaHR0cDovL2Vldi5lZS9ibG9nLzIwMTUvMDkvMTIvZGFyay1jb3JuZXJzLW9mLXVuaWNvZGUvKS4gKi9cbiAgdmFyIHJlSGFzVW5pY29kZSA9IFJlZ0V4cCgnWycgKyByc1pXSiArIHJzQXN0cmFsUmFuZ2UgICsgcnNDb21ib1JhbmdlICsgcnNWYXJSYW5nZSArICddJyk7XG5cbiAgLyoqIFVzZWQgdG8gZGV0ZWN0IHN0cmluZ3MgdGhhdCBuZWVkIGEgbW9yZSByb2J1c3QgcmVnZXhwIHRvIG1hdGNoIHdvcmRzLiAqL1xuICB2YXIgcmVIYXNVbmljb2RlV29yZCA9IC9bYS16XVtBLVpdfFtBLVpdezJ9W2Etel18WzAtOV1bYS16QS1aXXxbYS16QS1aXVswLTldfFteYS16QS1aMC05IF0vO1xuXG4gIC8qKiBVc2VkIHRvIGFzc2lnbiBkZWZhdWx0IGBjb250ZXh0YCBvYmplY3QgcHJvcGVydGllcy4gKi9cbiAgdmFyIGNvbnRleHRQcm9wcyA9IFtcbiAgICAnQXJyYXknLCAnQnVmZmVyJywgJ0RhdGFWaWV3JywgJ0RhdGUnLCAnRXJyb3InLCAnRmxvYXQzMkFycmF5JywgJ0Zsb2F0NjRBcnJheScsXG4gICAgJ0Z1bmN0aW9uJywgJ0ludDhBcnJheScsICdJbnQxNkFycmF5JywgJ0ludDMyQXJyYXknLCAnTWFwJywgJ01hdGgnLCAnT2JqZWN0JyxcbiAgICAnUHJvbWlzZScsICdSZWdFeHAnLCAnU2V0JywgJ1N0cmluZycsICdTeW1ib2wnLCAnVHlwZUVycm9yJywgJ1VpbnQ4QXJyYXknLFxuICAgICdVaW50OENsYW1wZWRBcnJheScsICdVaW50MTZBcnJheScsICdVaW50MzJBcnJheScsICdXZWFrTWFwJyxcbiAgICAnXycsICdjbGVhclRpbWVvdXQnLCAnaXNGaW5pdGUnLCAncGFyc2VJbnQnLCAnc2V0VGltZW91dCdcbiAgXTtcblxuICAvKiogVXNlZCB0byBtYWtlIHRlbXBsYXRlIHNvdXJjZVVSTHMgZWFzaWVyIHRvIGlkZW50aWZ5LiAqL1xuICB2YXIgdGVtcGxhdGVDb3VudGVyID0gLTE7XG5cbiAgLyoqIFVzZWQgdG8gaWRlbnRpZnkgYHRvU3RyaW5nVGFnYCB2YWx1ZXMgb2YgdHlwZWQgYXJyYXlzLiAqL1xuICB2YXIgdHlwZWRBcnJheVRhZ3MgPSB7fTtcbiAgdHlwZWRBcnJheVRhZ3NbZmxvYXQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1tmbG9hdDY0VGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW2ludDhUYWddID0gdHlwZWRBcnJheVRhZ3NbaW50MTZUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbaW50MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDhUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQxNlRhZ10gPVxuICB0eXBlZEFycmF5VGFnc1t1aW50MzJUYWddID0gdHJ1ZTtcbiAgdHlwZWRBcnJheVRhZ3NbYXJnc1RhZ10gPSB0eXBlZEFycmF5VGFnc1thcnJheVRhZ10gPVxuICB0eXBlZEFycmF5VGFnc1thcnJheUJ1ZmZlclRhZ10gPSB0eXBlZEFycmF5VGFnc1tib29sVGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW2RhdGFWaWV3VGFnXSA9IHR5cGVkQXJyYXlUYWdzW2RhdGVUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbZXJyb3JUYWddID0gdHlwZWRBcnJheVRhZ3NbZnVuY1RhZ10gPVxuICB0eXBlZEFycmF5VGFnc1ttYXBUYWddID0gdHlwZWRBcnJheVRhZ3NbbnVtYmVyVGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW29iamVjdFRhZ10gPSB0eXBlZEFycmF5VGFnc1tyZWdleHBUYWddID1cbiAgdHlwZWRBcnJheVRhZ3Nbc2V0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3N0cmluZ1RhZ10gPVxuICB0eXBlZEFycmF5VGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xuXG4gIC8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIHN1cHBvcnRlZCBieSBgXy5jbG9uZWAuICovXG4gIHZhciBjbG9uZWFibGVUYWdzID0ge307XG4gIGNsb25lYWJsZVRhZ3NbYXJnc1RhZ10gPSBjbG9uZWFibGVUYWdzW2FycmF5VGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gY2xvbmVhYmxlVGFnc1tkYXRhVmlld1RhZ10gPVxuICBjbG9uZWFibGVUYWdzW2Jvb2xUYWddID0gY2xvbmVhYmxlVGFnc1tkYXRlVGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbZmxvYXQzMlRhZ10gPSBjbG9uZWFibGVUYWdzW2Zsb2F0NjRUYWddID1cbiAgY2xvbmVhYmxlVGFnc1tpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbaW50MTZUYWddID1cbiAgY2xvbmVhYmxlVGFnc1tpbnQzMlRhZ10gPSBjbG9uZWFibGVUYWdzW21hcFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW251bWJlclRhZ10gPSBjbG9uZWFibGVUYWdzW29iamVjdFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW3JlZ2V4cFRhZ10gPSBjbG9uZWFibGVUYWdzW3NldFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW3N0cmluZ1RhZ10gPSBjbG9uZWFibGVUYWdzW3N5bWJvbFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW3VpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbdWludDE2VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG4gIGNsb25lYWJsZVRhZ3NbZXJyb3JUYWddID0gY2xvbmVhYmxlVGFnc1tmdW5jVGFnXSA9XG4gIGNsb25lYWJsZVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcblxuICAvKiogVXNlZCB0byBtYXAgTGF0aW4gVW5pY29kZSBsZXR0ZXJzIHRvIGJhc2ljIExhdGluIGxldHRlcnMuICovXG4gIHZhciBkZWJ1cnJlZExldHRlcnMgPSB7XG4gICAgLy8gTGF0aW4tMSBTdXBwbGVtZW50IGJsb2NrLlxuICAgICdcXHhjMCc6ICdBJywgICdcXHhjMSc6ICdBJywgJ1xceGMyJzogJ0EnLCAnXFx4YzMnOiAnQScsICdcXHhjNCc6ICdBJywgJ1xceGM1JzogJ0EnLFxuICAgICdcXHhlMCc6ICdhJywgICdcXHhlMSc6ICdhJywgJ1xceGUyJzogJ2EnLCAnXFx4ZTMnOiAnYScsICdcXHhlNCc6ICdhJywgJ1xceGU1JzogJ2EnLFxuICAgICdcXHhjNyc6ICdDJywgICdcXHhlNyc6ICdjJyxcbiAgICAnXFx4ZDAnOiAnRCcsICAnXFx4ZjAnOiAnZCcsXG4gICAgJ1xceGM4JzogJ0UnLCAgJ1xceGM5JzogJ0UnLCAnXFx4Y2EnOiAnRScsICdcXHhjYic6ICdFJyxcbiAgICAnXFx4ZTgnOiAnZScsICAnXFx4ZTknOiAnZScsICdcXHhlYSc6ICdlJywgJ1xceGViJzogJ2UnLFxuICAgICdcXHhjYyc6ICdJJywgICdcXHhjZCc6ICdJJywgJ1xceGNlJzogJ0knLCAnXFx4Y2YnOiAnSScsXG4gICAgJ1xceGVjJzogJ2knLCAgJ1xceGVkJzogJ2knLCAnXFx4ZWUnOiAnaScsICdcXHhlZic6ICdpJyxcbiAgICAnXFx4ZDEnOiAnTicsICAnXFx4ZjEnOiAnbicsXG4gICAgJ1xceGQyJzogJ08nLCAgJ1xceGQzJzogJ08nLCAnXFx4ZDQnOiAnTycsICdcXHhkNSc6ICdPJywgJ1xceGQ2JzogJ08nLCAnXFx4ZDgnOiAnTycsXG4gICAgJ1xceGYyJzogJ28nLCAgJ1xceGYzJzogJ28nLCAnXFx4ZjQnOiAnbycsICdcXHhmNSc6ICdvJywgJ1xceGY2JzogJ28nLCAnXFx4ZjgnOiAnbycsXG4gICAgJ1xceGQ5JzogJ1UnLCAgJ1xceGRhJzogJ1UnLCAnXFx4ZGInOiAnVScsICdcXHhkYyc6ICdVJyxcbiAgICAnXFx4ZjknOiAndScsICAnXFx4ZmEnOiAndScsICdcXHhmYic6ICd1JywgJ1xceGZjJzogJ3UnLFxuICAgICdcXHhkZCc6ICdZJywgICdcXHhmZCc6ICd5JywgJ1xceGZmJzogJ3knLFxuICAgICdcXHhjNic6ICdBZScsICdcXHhlNic6ICdhZScsXG4gICAgJ1xceGRlJzogJ1RoJywgJ1xceGZlJzogJ3RoJyxcbiAgICAnXFx4ZGYnOiAnc3MnLFxuICAgIC8vIExhdGluIEV4dGVuZGVkLUEgYmxvY2suXG4gICAgJ1xcdTAxMDAnOiAnQScsICAnXFx1MDEwMic6ICdBJywgJ1xcdTAxMDQnOiAnQScsXG4gICAgJ1xcdTAxMDEnOiAnYScsICAnXFx1MDEwMyc6ICdhJywgJ1xcdTAxMDUnOiAnYScsXG4gICAgJ1xcdTAxMDYnOiAnQycsICAnXFx1MDEwOCc6ICdDJywgJ1xcdTAxMGEnOiAnQycsICdcXHUwMTBjJzogJ0MnLFxuICAgICdcXHUwMTA3JzogJ2MnLCAgJ1xcdTAxMDknOiAnYycsICdcXHUwMTBiJzogJ2MnLCAnXFx1MDEwZCc6ICdjJyxcbiAgICAnXFx1MDEwZSc6ICdEJywgICdcXHUwMTEwJzogJ0QnLCAnXFx1MDEwZic6ICdkJywgJ1xcdTAxMTEnOiAnZCcsXG4gICAgJ1xcdTAxMTInOiAnRScsICAnXFx1MDExNCc6ICdFJywgJ1xcdTAxMTYnOiAnRScsICdcXHUwMTE4JzogJ0UnLCAnXFx1MDExYSc6ICdFJyxcbiAgICAnXFx1MDExMyc6ICdlJywgICdcXHUwMTE1JzogJ2UnLCAnXFx1MDExNyc6ICdlJywgJ1xcdTAxMTknOiAnZScsICdcXHUwMTFiJzogJ2UnLFxuICAgICdcXHUwMTFjJzogJ0cnLCAgJ1xcdTAxMWUnOiAnRycsICdcXHUwMTIwJzogJ0cnLCAnXFx1MDEyMic6ICdHJyxcbiAgICAnXFx1MDExZCc6ICdnJywgICdcXHUwMTFmJzogJ2cnLCAnXFx1MDEyMSc6ICdnJywgJ1xcdTAxMjMnOiAnZycsXG4gICAgJ1xcdTAxMjQnOiAnSCcsICAnXFx1MDEyNic6ICdIJywgJ1xcdTAxMjUnOiAnaCcsICdcXHUwMTI3JzogJ2gnLFxuICAgICdcXHUwMTI4JzogJ0knLCAgJ1xcdTAxMmEnOiAnSScsICdcXHUwMTJjJzogJ0knLCAnXFx1MDEyZSc6ICdJJywgJ1xcdTAxMzAnOiAnSScsXG4gICAgJ1xcdTAxMjknOiAnaScsICAnXFx1MDEyYic6ICdpJywgJ1xcdTAxMmQnOiAnaScsICdcXHUwMTJmJzogJ2knLCAnXFx1MDEzMSc6ICdpJyxcbiAgICAnXFx1MDEzNCc6ICdKJywgICdcXHUwMTM1JzogJ2onLFxuICAgICdcXHUwMTM2JzogJ0snLCAgJ1xcdTAxMzcnOiAnaycsICdcXHUwMTM4JzogJ2snLFxuICAgICdcXHUwMTM5JzogJ0wnLCAgJ1xcdTAxM2InOiAnTCcsICdcXHUwMTNkJzogJ0wnLCAnXFx1MDEzZic6ICdMJywgJ1xcdTAxNDEnOiAnTCcsXG4gICAgJ1xcdTAxM2EnOiAnbCcsICAnXFx1MDEzYyc6ICdsJywgJ1xcdTAxM2UnOiAnbCcsICdcXHUwMTQwJzogJ2wnLCAnXFx1MDE0Mic6ICdsJyxcbiAgICAnXFx1MDE0Myc6ICdOJywgICdcXHUwMTQ1JzogJ04nLCAnXFx1MDE0Nyc6ICdOJywgJ1xcdTAxNGEnOiAnTicsXG4gICAgJ1xcdTAxNDQnOiAnbicsICAnXFx1MDE0Nic6ICduJywgJ1xcdTAxNDgnOiAnbicsICdcXHUwMTRiJzogJ24nLFxuICAgICdcXHUwMTRjJzogJ08nLCAgJ1xcdTAxNGUnOiAnTycsICdcXHUwMTUwJzogJ08nLFxuICAgICdcXHUwMTRkJzogJ28nLCAgJ1xcdTAxNGYnOiAnbycsICdcXHUwMTUxJzogJ28nLFxuICAgICdcXHUwMTU0JzogJ1InLCAgJ1xcdTAxNTYnOiAnUicsICdcXHUwMTU4JzogJ1InLFxuICAgICdcXHUwMTU1JzogJ3InLCAgJ1xcdTAxNTcnOiAncicsICdcXHUwMTU5JzogJ3InLFxuICAgICdcXHUwMTVhJzogJ1MnLCAgJ1xcdTAxNWMnOiAnUycsICdcXHUwMTVlJzogJ1MnLCAnXFx1MDE2MCc6ICdTJyxcbiAgICAnXFx1MDE1Yic6ICdzJywgICdcXHUwMTVkJzogJ3MnLCAnXFx1MDE1Zic6ICdzJywgJ1xcdTAxNjEnOiAncycsXG4gICAgJ1xcdTAxNjInOiAnVCcsICAnXFx1MDE2NCc6ICdUJywgJ1xcdTAxNjYnOiAnVCcsXG4gICAgJ1xcdTAxNjMnOiAndCcsICAnXFx1MDE2NSc6ICd0JywgJ1xcdTAxNjcnOiAndCcsXG4gICAgJ1xcdTAxNjgnOiAnVScsICAnXFx1MDE2YSc6ICdVJywgJ1xcdTAxNmMnOiAnVScsICdcXHUwMTZlJzogJ1UnLCAnXFx1MDE3MCc6ICdVJywgJ1xcdTAxNzInOiAnVScsXG4gICAgJ1xcdTAxNjknOiAndScsICAnXFx1MDE2Yic6ICd1JywgJ1xcdTAxNmQnOiAndScsICdcXHUwMTZmJzogJ3UnLCAnXFx1MDE3MSc6ICd1JywgJ1xcdTAxNzMnOiAndScsXG4gICAgJ1xcdTAxNzQnOiAnVycsICAnXFx1MDE3NSc6ICd3JyxcbiAgICAnXFx1MDE3Nic6ICdZJywgICdcXHUwMTc3JzogJ3knLCAnXFx1MDE3OCc6ICdZJyxcbiAgICAnXFx1MDE3OSc6ICdaJywgICdcXHUwMTdiJzogJ1onLCAnXFx1MDE3ZCc6ICdaJyxcbiAgICAnXFx1MDE3YSc6ICd6JywgICdcXHUwMTdjJzogJ3onLCAnXFx1MDE3ZSc6ICd6JyxcbiAgICAnXFx1MDEzMic6ICdJSicsICdcXHUwMTMzJzogJ2lqJyxcbiAgICAnXFx1MDE1Mic6ICdPZScsICdcXHUwMTUzJzogJ29lJyxcbiAgICAnXFx1MDE0OSc6IFwiJ25cIiwgJ1xcdTAxN2YnOiAncydcbiAgfTtcblxuICAvKiogVXNlZCB0byBtYXAgY2hhcmFjdGVycyB0byBIVE1MIGVudGl0aWVzLiAqL1xuICB2YXIgaHRtbEVzY2FwZXMgPSB7XG4gICAgJyYnOiAnJmFtcDsnLFxuICAgICc8JzogJyZsdDsnLFxuICAgICc+JzogJyZndDsnLFxuICAgICdcIic6ICcmcXVvdDsnLFxuICAgIFwiJ1wiOiAnJiMzOTsnXG4gIH07XG5cbiAgLyoqIFVzZWQgdG8gbWFwIEhUTUwgZW50aXRpZXMgdG8gY2hhcmFjdGVycy4gKi9cbiAgdmFyIGh0bWxVbmVzY2FwZXMgPSB7XG4gICAgJyZhbXA7JzogJyYnLFxuICAgICcmbHQ7JzogJzwnLFxuICAgICcmZ3Q7JzogJz4nLFxuICAgICcmcXVvdDsnOiAnXCInLFxuICAgICcmIzM5Oyc6IFwiJ1wiXG4gIH07XG5cbiAgLyoqIFVzZWQgdG8gZXNjYXBlIGNoYXJhY3RlcnMgZm9yIGluY2x1c2lvbiBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuICovXG4gIHZhciBzdHJpbmdFc2NhcGVzID0ge1xuICAgICdcXFxcJzogJ1xcXFwnLFxuICAgIFwiJ1wiOiBcIidcIixcbiAgICAnXFxuJzogJ24nLFxuICAgICdcXHInOiAncicsXG4gICAgJ1xcdTIwMjgnOiAndTIwMjgnLFxuICAgICdcXHUyMDI5JzogJ3UyMDI5J1xuICB9O1xuXG4gIC8qKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB3aXRob3V0IGEgZGVwZW5kZW5jeSBvbiBgcm9vdGAuICovXG4gIHZhciBmcmVlUGFyc2VGbG9hdCA9IHBhcnNlRmxvYXQsXG4gICAgICBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcblxuICAvKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGdsb2JhbGAgZnJvbSBOb2RlLmpzLiAqL1xuICB2YXIgZnJlZUdsb2JhbCA9IHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBnbG9iYWw7XG5cbiAgLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbiAgdmFyIGZyZWVTZWxmID0gdHlwZW9mIHNlbGYgPT0gJ29iamVjdCcgJiYgc2VsZiAmJiBzZWxmLk9iamVjdCA9PT0gT2JqZWN0ICYmIHNlbGY7XG5cbiAgLyoqIFVzZWQgYXMgYSByZWZlcmVuY2UgdG8gdGhlIGdsb2JhbCBvYmplY3QuICovXG4gIHZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG4gIC8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG4gIHZhciBmcmVlRXhwb3J0cyA9IHR5cGVvZiBleHBvcnRzID09ICdvYmplY3QnICYmIGV4cG9ydHMgJiYgIWV4cG9ydHMubm9kZVR5cGUgJiYgZXhwb3J0cztcblxuICAvKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYG1vZHVsZWAuICovXG4gIHZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbiAgLyoqIERldGVjdCB0aGUgcG9wdWxhciBDb21tb25KUyBleHRlbnNpb24gYG1vZHVsZS5leHBvcnRzYC4gKi9cbiAgdmFyIG1vZHVsZUV4cG9ydHMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUuZXhwb3J0cyA9PT0gZnJlZUV4cG9ydHM7XG5cbiAgLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBwcm9jZXNzYCBmcm9tIE5vZGUuanMuICovXG4gIHZhciBmcmVlUHJvY2VzcyA9IG1vZHVsZUV4cG9ydHMgJiYgZnJlZUdsb2JhbC5wcm9jZXNzO1xuXG4gIC8qKiBVc2VkIHRvIGFjY2VzcyBmYXN0ZXIgTm9kZS5qcyBoZWxwZXJzLiAqL1xuICB2YXIgbm9kZVV0aWwgPSAoZnVuY3Rpb24oKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFVzZSBgdXRpbC50eXBlc2AgZm9yIE5vZGUuanMgMTArLlxuICAgICAgdmFyIHR5cGVzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLnJlcXVpcmUgJiYgZnJlZU1vZHVsZS5yZXF1aXJlKCd1dGlsJykudHlwZXM7XG5cbiAgICAgIGlmICh0eXBlcykge1xuICAgICAgICByZXR1cm4gdHlwZXM7XG4gICAgICB9XG5cbiAgICAgIC8vIExlZ2FjeSBgcHJvY2Vzcy5iaW5kaW5nKCd1dGlsJylgIGZvciBOb2RlLmpzIDwgMTAuXG4gICAgICByZXR1cm4gZnJlZVByb2Nlc3MgJiYgZnJlZVByb2Nlc3MuYmluZGluZyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nKCd1dGlsJyk7XG4gICAgfSBjYXRjaCAoZSkge31cbiAgfSgpKTtcblxuICAvKiBOb2RlLmpzIGhlbHBlciByZWZlcmVuY2VzLiAqL1xuICB2YXIgbm9kZUlzQXJyYXlCdWZmZXIgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc0FycmF5QnVmZmVyLFxuICAgICAgbm9kZUlzRGF0ZSA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzRGF0ZSxcbiAgICAgIG5vZGVJc01hcCA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzTWFwLFxuICAgICAgbm9kZUlzUmVnRXhwID0gbm9kZVV0aWwgJiYgbm9kZVV0aWwuaXNSZWdFeHAsXG4gICAgICBub2RlSXNTZXQgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1NldCxcbiAgICAgIG5vZGVJc1R5cGVkQXJyYXkgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1R5cGVkQXJyYXk7XG5cbiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgLyoqXG4gICAqIEEgZmFzdGVyIGFsdGVybmF0aXZlIHRvIGBGdW5jdGlvbiNhcHBseWAsIHRoaXMgZnVuY3Rpb24gaW52b2tlcyBgZnVuY2BcbiAgICogd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgYHRoaXNBcmdgIGFuZCB0aGUgYXJndW1lbnRzIG9mIGBhcmdzYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gaW52b2tlLlxuICAgKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAgICogQHBhcmFtIHtBcnJheX0gYXJncyBUaGUgYXJndW1lbnRzIHRvIGludm9rZSBgZnVuY2Agd2l0aC5cbiAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc3VsdCBvZiBgZnVuY2AuXG4gICAqL1xuICBmdW5jdGlvbiBhcHBseShmdW5jLCB0aGlzQXJnLCBhcmdzKSB7XG4gICAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xuICAgICAgY2FzZSAwOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcpO1xuICAgICAgY2FzZSAxOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0pO1xuICAgICAgY2FzZSAyOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0sIGFyZ3NbMV0pO1xuICAgICAgY2FzZSAzOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0pO1xuICAgIH1cbiAgICByZXR1cm4gZnVuYy5hcHBseSh0aGlzQXJnLCBhcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VBZ2dyZWdhdG9yYCBmb3IgYXJyYXlzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHNldHRlciBUaGUgZnVuY3Rpb24gdG8gc2V0IGBhY2N1bXVsYXRvcmAgdmFsdWVzLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgaXRlcmF0ZWUgdG8gdHJhbnNmb3JtIGtleXMuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBhY2N1bXVsYXRvciBUaGUgaW5pdGlhbCBhZ2dyZWdhdGVkIG9iamVjdC5cbiAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBhY2N1bXVsYXRvcmAuXG4gICAqL1xuICBmdW5jdGlvbiBhcnJheUFnZ3JlZ2F0b3IoYXJyYXksIHNldHRlciwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgIHNldHRlcihhY2N1bXVsYXRvciwgdmFsdWUsIGl0ZXJhdGVlKHZhbHVlKSwgYXJyYXkpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gIH1cblxuICAvKipcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZvckVhY2hgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICAgKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlFYWNoKGFycmF5LCBpdGVyYXRlZSkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBpZiAoaXRlcmF0ZWUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpID09PSBmYWxzZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xuICB9XG5cbiAgLyoqXG4gICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5mb3JFYWNoUmlnaHRgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICAgKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlFYWNoUmlnaHQoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICBpZiAoaXRlcmF0ZWUoYXJyYXlbbGVuZ3RoXSwgbGVuZ3RoLCBhcnJheSkgPT09IGZhbHNlKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXJyYXk7XG4gIH1cblxuICAvKipcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmV2ZXJ5YCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFsbCBlbGVtZW50cyBwYXNzIHRoZSBwcmVkaWNhdGUgY2hlY2ssXG4gICAqICBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBhcnJheUV2ZXJ5KGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKCFwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZpbHRlcmAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gICAqIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IFthcnJheV0gVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZpbHRlcmVkIGFycmF5LlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlGaWx0ZXIoYXJyYXksIHByZWRpY2F0ZSkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgcmVzSW5kZXggPSAwLFxuICAgICAgICByZXN1bHQgPSBbXTtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XG4gICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5pbmNsdWRlc2AgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gICAqIHNwZWNpZnlpbmcgYW4gaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IFthcnJheV0gVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7Kn0gdGFyZ2V0IFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHRhcmdldGAgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cbiAgICovXG4gIGZ1bmN0aW9uIGFycmF5SW5jbHVkZXMoYXJyYXksIHZhbHVlKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgIHJldHVybiAhIWxlbmd0aCAmJiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIDApID4gLTE7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGBhcnJheUluY2x1ZGVzYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGEgY29tcGFyYXRvci5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHsqfSB0YXJnZXQgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNvbXBhcmF0b3IgVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB0YXJnZXRgIGlzIGZvdW5kLCBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBhcnJheUluY2x1ZGVzV2l0aChhcnJheSwgdmFsdWUsIGNvbXBhcmF0b3IpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKGNvbXBhcmF0b3IodmFsdWUsIGFycmF5W2luZGV4XSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ubWFwYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWVcbiAgICogc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgYXJyYXkuXG4gICAqL1xuICBmdW5jdGlvbiBhcnJheU1hcChhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmRzIHRoZSBlbGVtZW50cyBvZiBgdmFsdWVzYCB0byBgYXJyYXlgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byBhcHBlbmQuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlQdXNoKGFycmF5LCB2YWx1ZXMpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gdmFsdWVzLmxlbmd0aCxcbiAgICAgICAgb2Zmc2V0ID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIGFycmF5W29mZnNldCArIGluZGV4XSA9IHZhbHVlc1tpbmRleF07XG4gICAgfVxuICAgIHJldHVybiBhcnJheTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ucmVkdWNlYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gVGhlIGluaXRpYWwgdmFsdWUuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2luaXRBY2N1bV0gU3BlY2lmeSB1c2luZyB0aGUgZmlyc3QgZWxlbWVudCBvZiBgYXJyYXlgIGFzXG4gICAqICB0aGUgaW5pdGlhbCB2YWx1ZS5cbiAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlSZWR1Y2UoYXJyYXksIGl0ZXJhdGVlLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuXG4gICAgaWYgKGluaXRBY2N1bSAmJiBsZW5ndGgpIHtcbiAgICAgIGFjY3VtdWxhdG9yID0gYXJyYXlbKytpbmRleF07XG4gICAgfVxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBhY2N1bXVsYXRvciA9IGl0ZXJhdGVlKGFjY3VtdWxhdG9yLCBhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSk7XG4gICAgfVxuICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ucmVkdWNlUmlnaHRgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICAgKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgaW5pdGlhbCB2YWx1ZS5cbiAgICogQHBhcmFtIHtib29sZWFufSBbaW5pdEFjY3VtXSBTcGVjaWZ5IHVzaW5nIHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YCBhc1xuICAgKiAgdGhlIGluaXRpYWwgdmFsdWUuXG4gICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAgICovXG4gIGZ1bmN0aW9uIGFycmF5UmVkdWNlUmlnaHQoYXJyYXksIGl0ZXJhdGVlLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgIGlmIChpbml0QWNjdW0gJiYgbGVuZ3RoKSB7XG4gICAgICBhY2N1bXVsYXRvciA9IGFycmF5Wy0tbGVuZ3RoXTtcbiAgICB9XG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICBhY2N1bXVsYXRvciA9IGl0ZXJhdGVlKGFjY3VtdWxhdG9yLCBhcnJheVtsZW5ndGhdLCBsZW5ndGgsIGFycmF5KTtcbiAgICB9XG4gICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5zb21lYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWVcbiAgICogc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFueSBlbGVtZW50IHBhc3NlcyB0aGUgcHJlZGljYXRlIGNoZWNrLFxuICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlTb21lKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKHByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzaXplIG9mIGFuIEFTQ0lJIGBzdHJpbmdgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgaW5zcGVjdC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc3RyaW5nIHNpemUuXG4gICAqL1xuICB2YXIgYXNjaWlTaXplID0gYmFzZVByb3BlcnR5KCdsZW5ndGgnKTtcblxuICAvKipcbiAgICogQ29udmVydHMgYW4gQVNDSUkgYHN0cmluZ2AgdG8gYW4gYXJyYXkuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBhcnJheS5cbiAgICovXG4gIGZ1bmN0aW9uIGFzY2lpVG9BcnJheShzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyaW5nLnNwbGl0KCcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdHMgYW4gQVNDSUkgYHN0cmluZ2AgaW50byBhbiBhcnJheSBvZiBpdHMgd29yZHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgd29yZHMgb2YgYHN0cmluZ2AuXG4gICAqL1xuICBmdW5jdGlvbiBhc2NpaVdvcmRzKHN0cmluZykge1xuICAgIHJldHVybiBzdHJpbmcubWF0Y2gocmVBc2NpaVdvcmQpIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZHMgbGlrZSBgXy5maW5kS2V5YCBhbmQgYF8uZmluZExhc3RLZXlgLFxuICAgKiB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMsIHdoaWNoIGl0ZXJhdGVzIG92ZXIgYGNvbGxlY3Rpb25gXG4gICAqIHVzaW5nIGBlYWNoRnVuY2AuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGBjb2xsZWN0aW9uYC5cbiAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGZvdW5kIGVsZW1lbnQgb3IgaXRzIGtleSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VGaW5kS2V5KGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZWFjaEZ1bmMpIHtcbiAgICB2YXIgcmVzdWx0O1xuICAgIGVhY2hGdW5jKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pIHtcbiAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIGtleSwgY29sbGVjdGlvbikpIHtcbiAgICAgICAgcmVzdWx0ID0ga2V5O1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5maW5kSW5kZXhgIGFuZCBgXy5maW5kTGFzdEluZGV4YCB3aXRob3V0XG4gICAqIHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZUZpbmRJbmRleChhcnJheSwgcHJlZGljYXRlLCBmcm9tSW5kZXgsIGZyb21SaWdodCkge1xuICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgIGluZGV4ID0gZnJvbUluZGV4ICsgKGZyb21SaWdodCA/IDEgOiAtMSk7XG5cbiAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgICAgaWYgKHByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaW5kZXhPZmAgd2l0aG91dCBgZnJvbUluZGV4YCBib3VuZHMgY2hlY2tzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAqL1xuICBmdW5jdGlvbiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWVcbiAgICAgID8gc3RyaWN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleClcbiAgICAgIDogYmFzZUZpbmRJbmRleChhcnJheSwgYmFzZUlzTmFOLCBmcm9tSW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgYmFzZUluZGV4T2ZgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYSBjb21wYXJhdG9yLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNvbXBhcmF0b3IgVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VJbmRleE9mV2l0aChhcnJheSwgdmFsdWUsIGZyb21JbmRleCwgY29tcGFyYXRvcikge1xuICAgIHZhciBpbmRleCA9IGZyb21JbmRleCAtIDEsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBpZiAoY29tcGFyYXRvcihhcnJheVtpbmRleF0sIHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc05hTmAgd2l0aG91dCBzdXBwb3J0IGZvciBudW1iZXIgb2JqZWN0cy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGBOYU5gLCBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBiYXNlSXNOYU4odmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1lYW5gIGFuZCBgXy5tZWFuQnlgIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbWVhbi5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VNZWFuKGFycmF5LCBpdGVyYXRlZSkge1xuICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICByZXR1cm4gbGVuZ3RoID8gKGJhc2VTdW0oYXJyYXksIGl0ZXJhdGVlKSAvIGxlbmd0aCkgOiBOQU47XG4gIH1cblxuICAvKipcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHJvcGVydHlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFjY2Vzc29yIGZ1bmN0aW9uLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVByb3BlcnR5KGtleSkge1xuICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IG9iamVjdFtrZXldO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHJvcGVydHlPZmAgd2l0aG91dCBzdXBwb3J0IGZvciBkZWVwIHBhdGhzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFjY2Vzc29yIGZ1bmN0aW9uLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVByb3BlcnR5T2Yob2JqZWN0KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGtleSkge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W2tleV07XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5yZWR1Y2VgIGFuZCBgXy5yZWR1Y2VSaWdodGAsIHdpdGhvdXQgc3VwcG9ydFxuICAgKiBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcywgd2hpY2ggaXRlcmF0ZXMgb3ZlciBgY29sbGVjdGlvbmAgdXNpbmcgYGVhY2hGdW5jYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcGFyYW0geyp9IGFjY3VtdWxhdG9yIFRoZSBpbml0aWFsIHZhbHVlLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGluaXRBY2N1bSBTcGVjaWZ5IHVzaW5nIHRoZSBmaXJzdCBvciBsYXN0IGVsZW1lbnQgb2ZcbiAgICogIGBjb2xsZWN0aW9uYCBhcyB0aGUgaW5pdGlhbCB2YWx1ZS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZWFjaEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBgY29sbGVjdGlvbmAuXG4gICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VSZWR1Y2UoY29sbGVjdGlvbiwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yLCBpbml0QWNjdW0sIGVhY2hGdW5jKSB7XG4gICAgZWFjaEZ1bmMoY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICBhY2N1bXVsYXRvciA9IGluaXRBY2N1bVxuICAgICAgICA/IChpbml0QWNjdW0gPSBmYWxzZSwgdmFsdWUpXG4gICAgICAgIDogaXRlcmF0ZWUoYWNjdW11bGF0b3IsIHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbik7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNvcnRCeWAgd2hpY2ggdXNlcyBgY29tcGFyZXJgIHRvIGRlZmluZSB0aGVcbiAgICogc29ydCBvcmRlciBvZiBgYXJyYXlgIGFuZCByZXBsYWNlcyBjcml0ZXJpYSBvYmplY3RzIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZ1xuICAgKiB2YWx1ZXMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzb3J0LlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjb21wYXJlciBUaGUgZnVuY3Rpb24gdG8gZGVmaW5lIHNvcnQgb3JkZXIuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVNvcnRCeShhcnJheSwgY29tcGFyZXIpIHtcbiAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgYXJyYXkuc29ydChjb21wYXJlcik7XG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICBhcnJheVtsZW5ndGhdID0gYXJyYXlbbGVuZ3RoXS52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnN1bWAgYW5kIGBfLnN1bUJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yXG4gICAqIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHN1bS5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VTdW0oYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgdmFyIHJlc3VsdCxcbiAgICAgICAgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciBjdXJyZW50ID0gaXRlcmF0ZWUoYXJyYXlbaW5kZXhdKTtcbiAgICAgIGlmIChjdXJyZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ID09PSB1bmRlZmluZWQgPyBjdXJyZW50IDogKHJlc3VsdCArIGN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRpbWVzYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHNcbiAgICogb3IgbWF4IGFycmF5IGxlbmd0aCBjaGVja3MuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgdGltZXMgdG8gaW52b2tlIGBpdGVyYXRlZWAuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcmVzdWx0cy5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VUaW1lcyhuLCBpdGVyYXRlZSkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICByZXN1bHQgPSBBcnJheShuKTtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbikge1xuICAgICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGluZGV4KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50b1BhaXJzYCBhbmQgYF8udG9QYWlyc0luYCB3aGljaCBjcmVhdGVzIGFuIGFycmF5XG4gICAqIG9mIGtleS12YWx1ZSBwYWlycyBmb3IgYG9iamVjdGAgY29ycmVzcG9uZGluZyB0byB0aGUgcHJvcGVydHkgbmFtZXMgb2YgYHByb3BzYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgbmFtZXMgdG8gZ2V0IHZhbHVlcyBmb3IuXG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGtleS12YWx1ZSBwYWlycy5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VUb1BhaXJzKG9iamVjdCwgcHJvcHMpIHtcbiAgICByZXR1cm4gYXJyYXlNYXAocHJvcHMsIGZ1bmN0aW9uKGtleSkge1xuICAgICAgcmV0dXJuIFtrZXksIG9iamVjdFtrZXldXTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50cmltYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIHRyaW0uXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHRyaW1tZWQgc3RyaW5nLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVRyaW0oc3RyaW5nKSB7XG4gICAgcmV0dXJuIHN0cmluZ1xuICAgICAgPyBzdHJpbmcuc2xpY2UoMCwgdHJpbW1lZEVuZEluZGV4KHN0cmluZykgKyAxKS5yZXBsYWNlKHJlVHJpbVN0YXJ0LCAnJylcbiAgICAgIDogc3RyaW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVuYXJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yIHN0b3JpbmcgbWV0YWRhdGEuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNhcCBhcmd1bWVudHMgZm9yLlxuICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjYXBwZWQgZnVuY3Rpb24uXG4gICAqL1xuICBmdW5jdGlvbiBiYXNlVW5hcnkoZnVuYykge1xuICAgIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgcmV0dXJuIGZ1bmModmFsdWUpO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udmFsdWVzYCBhbmQgYF8udmFsdWVzSW5gIHdoaWNoIGNyZWF0ZXMgYW5cbiAgICogYXJyYXkgb2YgYG9iamVjdGAgcHJvcGVydHkgdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHByb3BlcnR5IG5hbWVzXG4gICAqIG9mIGBwcm9wc2AuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IG5hbWVzIHRvIGdldCB2YWx1ZXMgZm9yLlxuICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSB2YWx1ZXMuXG4gICAqL1xuICBmdW5jdGlvbiBiYXNlVmFsdWVzKG9iamVjdCwgcHJvcHMpIHtcbiAgICByZXR1cm4gYXJyYXlNYXAocHJvcHMsIGZ1bmN0aW9uKGtleSkge1xuICAgICAgcmV0dXJuIG9iamVjdFtrZXldO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIGBjYWNoZWAgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtPYmplY3R9IGNhY2hlIFRoZSBjYWNoZSB0byBxdWVyeS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAgICovXG4gIGZ1bmN0aW9uIGNhY2hlSGFzKGNhY2hlLCBrZXkpIHtcbiAgICByZXR1cm4gY2FjaGUuaGFzKGtleSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBgXy50cmltYCBhbmQgYF8udHJpbVN0YXJ0YCB0byBnZXQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBzdHJpbmcgc3ltYm9sXG4gICAqIHRoYXQgaXMgbm90IGZvdW5kIGluIHRoZSBjaGFyYWN0ZXIgc3ltYm9scy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gc3RyU3ltYm9scyBUaGUgc3RyaW5nIHN5bWJvbHMgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHtBcnJheX0gY2hyU3ltYm9scyBUaGUgY2hhcmFjdGVyIHN5bWJvbHMgdG8gZmluZC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IHVubWF0Y2hlZCBzdHJpbmcgc3ltYm9sLlxuICAgKi9cbiAgZnVuY3Rpb24gY2hhcnNTdGFydEluZGV4KHN0clN5bWJvbHMsIGNoclN5bWJvbHMpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gc3RyU3ltYm9scy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCAmJiBiYXNlSW5kZXhPZihjaHJTeW1ib2xzLCBzdHJTeW1ib2xzW2luZGV4XSwgMCkgPiAtMSkge31cbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBgXy50cmltYCBhbmQgYF8udHJpbUVuZGAgdG8gZ2V0IHRoZSBpbmRleCBvZiB0aGUgbGFzdCBzdHJpbmcgc3ltYm9sXG4gICAqIHRoYXQgaXMgbm90IGZvdW5kIGluIHRoZSBjaGFyYWN0ZXIgc3ltYm9scy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gc3RyU3ltYm9scyBUaGUgc3RyaW5nIHN5bWJvbHMgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHtBcnJheX0gY2hyU3ltYm9scyBUaGUgY2hhcmFjdGVyIHN5bWJvbHMgdG8gZmluZC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3QgdW5tYXRjaGVkIHN0cmluZyBzeW1ib2wuXG4gICAqL1xuICBmdW5jdGlvbiBjaGFyc0VuZEluZGV4KHN0clN5bWJvbHMsIGNoclN5bWJvbHMpIHtcbiAgICB2YXIgaW5kZXggPSBzdHJTeW1ib2xzLmxlbmd0aDtcblxuICAgIHdoaWxlIChpbmRleC0tICYmIGJhc2VJbmRleE9mKGNoclN5bWJvbHMsIHN0clN5bWJvbHNbaW5kZXhdLCAwKSA+IC0xKSB7fVxuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBudW1iZXIgb2YgYHBsYWNlaG9sZGVyYCBvY2N1cnJlbmNlcyBpbiBgYXJyYXlgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHsqfSBwbGFjZWhvbGRlciBUaGUgcGxhY2Vob2xkZXIgdG8gc2VhcmNoIGZvci5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgcGxhY2Vob2xkZXIgY291bnQuXG4gICAqL1xuICBmdW5jdGlvbiBjb3VudEhvbGRlcnMoYXJyYXksIHBsYWNlaG9sZGVyKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgcmVzdWx0ID0gMDtcblxuICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgaWYgKGFycmF5W2xlbmd0aF0gPT09IHBsYWNlaG9sZGVyKSB7XG4gICAgICAgICsrcmVzdWx0O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8uZGVidXJyYCB0byBjb252ZXJ0IExhdGluLTEgU3VwcGxlbWVudCBhbmQgTGF0aW4gRXh0ZW5kZWQtQVxuICAgKiBsZXR0ZXJzIHRvIGJhc2ljIExhdGluIGxldHRlcnMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBsZXR0ZXIgVGhlIG1hdGNoZWQgbGV0dGVyIHRvIGRlYnVyci5cbiAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZGVidXJyZWQgbGV0dGVyLlxuICAgKi9cbiAgdmFyIGRlYnVyckxldHRlciA9IGJhc2VQcm9wZXJ0eU9mKGRlYnVycmVkTGV0dGVycyk7XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8uZXNjYXBlYCB0byBjb252ZXJ0IGNoYXJhY3RlcnMgdG8gSFRNTCBlbnRpdGllcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNociBUaGUgbWF0Y2hlZCBjaGFyYWN0ZXIgdG8gZXNjYXBlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIGNoYXJhY3Rlci5cbiAgICovXG4gIHZhciBlc2NhcGVIdG1sQ2hhciA9IGJhc2VQcm9wZXJ0eU9mKGh0bWxFc2NhcGVzKTtcblxuICAvKipcbiAgICogVXNlZCBieSBgXy50ZW1wbGF0ZWAgdG8gZXNjYXBlIGNoYXJhY3RlcnMgZm9yIGluY2x1c2lvbiBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaHIgVGhlIG1hdGNoZWQgY2hhcmFjdGVyIHRvIGVzY2FwZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZXNjYXBlZCBjaGFyYWN0ZXIuXG4gICAqL1xuICBmdW5jdGlvbiBlc2NhcGVTdHJpbmdDaGFyKGNocikge1xuICAgIHJldHVybiAnXFxcXCcgKyBzdHJpbmdFc2NhcGVzW2Nocl07XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdmFsdWUgYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlLlxuICAgKi9cbiAgZnVuY3Rpb24gZ2V0VmFsdWUob2JqZWN0LCBrZXkpIHtcbiAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBvYmplY3Rba2V5XTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYHN0cmluZ2AgY29udGFpbnMgVW5pY29kZSBzeW1ib2xzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGEgc3ltYm9sIGlzIGZvdW5kLCBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBoYXNVbmljb2RlKHN0cmluZykge1xuICAgIHJldHVybiByZUhhc1VuaWNvZGUudGVzdChzdHJpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBgc3RyaW5nYCBjb250YWlucyBhIHdvcmQgY29tcG9zZWQgb2YgVW5pY29kZSBzeW1ib2xzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGEgd29yZCBpcyBmb3VuZCwgZWxzZSBgZmFsc2VgLlxuICAgKi9cbiAgZnVuY3Rpb24gaGFzVW5pY29kZVdvcmQoc3RyaW5nKSB7XG4gICAgcmV0dXJuIHJlSGFzVW5pY29kZVdvcmQudGVzdChzdHJpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGBpdGVyYXRvcmAgdG8gYW4gYXJyYXkuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBpdGVyYXRvciBUaGUgaXRlcmF0b3IgdG8gY29udmVydC5cbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgYXJyYXkuXG4gICAqL1xuICBmdW5jdGlvbiBpdGVyYXRvclRvQXJyYXkoaXRlcmF0b3IpIHtcbiAgICB2YXIgZGF0YSxcbiAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICB3aGlsZSAoIShkYXRhID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XG4gICAgICByZXN1bHQucHVzaChkYXRhLnZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBgbWFwYCB0byBpdHMga2V5LXZhbHVlIHBhaXJzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gbWFwIFRoZSBtYXAgdG8gY29udmVydC5cbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBrZXktdmFsdWUgcGFpcnMuXG4gICAqL1xuICBmdW5jdGlvbiBtYXBUb0FycmF5KG1hcCkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICByZXN1bHQgPSBBcnJheShtYXAuc2l6ZSk7XG5cbiAgICBtYXAuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSwga2V5KSB7XG4gICAgICByZXN1bHRbKytpbmRleF0gPSBba2V5LCB2YWx1ZV07XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgdW5hcnkgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIGl0cyBhcmd1bWVudCB0cmFuc2Zvcm1lZC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gd3JhcC5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gdHJhbnNmb3JtIFRoZSBhcmd1bWVudCB0cmFuc2Zvcm0uXG4gICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgKi9cbiAgZnVuY3Rpb24gb3ZlckFyZyhmdW5jLCB0cmFuc2Zvcm0pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oYXJnKSB7XG4gICAgICByZXR1cm4gZnVuYyh0cmFuc2Zvcm0oYXJnKSk7XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyBhbGwgYHBsYWNlaG9sZGVyYCBlbGVtZW50cyBpbiBgYXJyYXlgIHdpdGggYW4gaW50ZXJuYWwgcGxhY2Vob2xkZXJcbiAgICogYW5kIHJldHVybnMgYW4gYXJyYXkgb2YgdGhlaXIgaW5kZXhlcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cbiAgICogQHBhcmFtIHsqfSBwbGFjZWhvbGRlciBUaGUgcGxhY2Vob2xkZXIgdG8gcmVwbGFjZS5cbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAgICovXG4gIGZ1bmN0aW9uIHJlcGxhY2VIb2xkZXJzKGFycmF5LCBwbGFjZWhvbGRlcikge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgIHJlc0luZGV4ID0gMCxcbiAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgaWYgKHZhbHVlID09PSBwbGFjZWhvbGRlciB8fCB2YWx1ZSA9PT0gUExBQ0VIT0xERVIpIHtcbiAgICAgICAgYXJyYXlbaW5kZXhdID0gUExBQ0VIT0xERVI7XG4gICAgICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IGluZGV4O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGBzZXRgIHRvIGFuIGFycmF5IG9mIGl0cyB2YWx1ZXMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBzZXQgVGhlIHNldCB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHZhbHVlcy5cbiAgICovXG4gIGZ1bmN0aW9uIHNldFRvQXJyYXkoc2V0KSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIHJlc3VsdCA9IEFycmF5KHNldC5zaXplKTtcblxuICAgIHNldC5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICByZXN1bHRbKytpbmRleF0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGBzZXRgIHRvIGl0cyB2YWx1ZS12YWx1ZSBwYWlycy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtPYmplY3R9IHNldCBUaGUgc2V0IHRvIGNvbnZlcnQuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgdmFsdWUtdmFsdWUgcGFpcnMuXG4gICAqL1xuICBmdW5jdGlvbiBzZXRUb1BhaXJzKHNldCkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICByZXN1bHQgPSBBcnJheShzZXQuc2l6ZSk7XG5cbiAgICBzZXQuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgcmVzdWx0WysraW5kZXhdID0gW3ZhbHVlLCB2YWx1ZV07XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uaW5kZXhPZmAgd2hpY2ggcGVyZm9ybXMgc3RyaWN0IGVxdWFsaXR5XG4gICAqIGNvbXBhcmlzb25zIG9mIHZhbHVlcywgaS5lLiBgPT09YC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmcm9tSW5kZXggVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICAgKi9cbiAgZnVuY3Rpb24gc3RyaWN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICAgIHZhciBpbmRleCA9IGZyb21JbmRleCAtIDEsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBpZiAoYXJyYXlbaW5kZXhdID09PSB2YWx1ZSkge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ubGFzdEluZGV4T2ZgIHdoaWNoIHBlcmZvcm1zIHN0cmljdCBlcXVhbGl0eVxuICAgKiBjb21wYXJpc29ucyBvZiB2YWx1ZXMsIGkuZS4gYD09PWAuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgKiBAcGFyYW0ge251bWJlcn0gZnJvbUluZGV4IFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICovXG4gIGZ1bmN0aW9uIHN0cmljdExhc3RJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gICAgdmFyIGluZGV4ID0gZnJvbUluZGV4ICsgMTtcbiAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgaWYgKGFycmF5W2luZGV4XSA9PT0gdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbnVtYmVyIG9mIHN5bWJvbHMgaW4gYHN0cmluZ2AuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBpbnNwZWN0LlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzdHJpbmcgc2l6ZS5cbiAgICovXG4gIGZ1bmN0aW9uIHN0cmluZ1NpemUoc3RyaW5nKSB7XG4gICAgcmV0dXJuIGhhc1VuaWNvZGUoc3RyaW5nKVxuICAgICAgPyB1bmljb2RlU2l6ZShzdHJpbmcpXG4gICAgICA6IGFzY2lpU2l6ZShzdHJpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGBzdHJpbmdgIHRvIGFuIGFycmF5LlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgYXJyYXkuXG4gICAqL1xuICBmdW5jdGlvbiBzdHJpbmdUb0FycmF5KHN0cmluZykge1xuICAgIHJldHVybiBoYXNVbmljb2RlKHN0cmluZylcbiAgICAgID8gdW5pY29kZVRvQXJyYXkoc3RyaW5nKVxuICAgICAgOiBhc2NpaVRvQXJyYXkoc3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIGJ5IGBfLnRyaW1gIGFuZCBgXy50cmltRW5kYCB0byBnZXQgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG5vbi13aGl0ZXNwYWNlXG4gICAqIGNoYXJhY3RlciBvZiBgc3RyaW5nYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3Rlci5cbiAgICovXG4gIGZ1bmN0aW9uIHRyaW1tZWRFbmRJbmRleChzdHJpbmcpIHtcbiAgICB2YXIgaW5kZXggPSBzdHJpbmcubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGluZGV4LS0gJiYgcmVXaGl0ZXNwYWNlLnRlc3Qoc3RyaW5nLmNoYXJBdChpbmRleCkpKSB7fVxuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIGJ5IGBfLnVuZXNjYXBlYCB0byBjb252ZXJ0IEhUTUwgZW50aXRpZXMgdG8gY2hhcmFjdGVycy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNociBUaGUgbWF0Y2hlZCBjaGFyYWN0ZXIgdG8gdW5lc2NhcGUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHVuZXNjYXBlZCBjaGFyYWN0ZXIuXG4gICAqL1xuICB2YXIgdW5lc2NhcGVIdG1sQ2hhciA9IGJhc2VQcm9wZXJ0eU9mKGh0bWxVbmVzY2FwZXMpO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzaXplIG9mIGEgVW5pY29kZSBgc3RyaW5nYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHN0cmluZyBzaXplLlxuICAgKi9cbiAgZnVuY3Rpb24gdW5pY29kZVNpemUoc3RyaW5nKSB7XG4gICAgdmFyIHJlc3VsdCA9IHJlVW5pY29kZS5sYXN0SW5kZXggPSAwO1xuICAgIHdoaWxlIChyZVVuaWNvZGUudGVzdChzdHJpbmcpKSB7XG4gICAgICArK3Jlc3VsdDtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIFVuaWNvZGUgYHN0cmluZ2AgdG8gYW4gYXJyYXkuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBhcnJheS5cbiAgICovXG4gIGZ1bmN0aW9uIHVuaWNvZGVUb0FycmF5KHN0cmluZykge1xuICAgIHJldHVybiBzdHJpbmcubWF0Y2gocmVVbmljb2RlKSB8fCBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdHMgYSBVbmljb2RlIGBzdHJpbmdgIGludG8gYW4gYXJyYXkgb2YgaXRzIHdvcmRzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gVGhlIHN0cmluZyB0byBpbnNwZWN0LlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHdvcmRzIG9mIGBzdHJpbmdgLlxuICAgKi9cbiAgZnVuY3Rpb24gdW5pY29kZVdvcmRzKHN0cmluZykge1xuICAgIHJldHVybiBzdHJpbmcubWF0Y2gocmVVbmljb2RlV29yZCkgfHwgW107XG4gIH1cblxuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IHByaXN0aW5lIGBsb2Rhc2hgIGZ1bmN0aW9uIHVzaW5nIHRoZSBgY29udGV4dGAgb2JqZWN0LlxuICAgKlxuICAgKiBAc3RhdGljXG4gICAqIEBtZW1iZXJPZiBfXG4gICAqIEBzaW5jZSAxLjEuMFxuICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgKiBAcGFyYW0ge09iamVjdH0gW2NvbnRleHQ9cm9vdF0gVGhlIGNvbnRleHQgb2JqZWN0LlxuICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYSBuZXcgYGxvZGFzaGAgZnVuY3Rpb24uXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIF8ubWl4aW4oeyAnZm9vJzogXy5jb25zdGFudCgnZm9vJykgfSk7XG4gICAqXG4gICAqIHZhciBsb2Rhc2ggPSBfLnJ1bkluQ29udGV4dCgpO1xuICAgKiBsb2Rhc2gubWl4aW4oeyAnYmFyJzogbG9kYXNoLmNvbnN0YW50KCdiYXInKSB9KTtcbiAgICpcbiAgICogXy5pc0Z1bmN0aW9uKF8uZm9vKTtcbiAgICogLy8gPT4gdHJ1ZVxuICAgKiBfLmlzRnVuY3Rpb24oXy5iYXIpO1xuICAgKiAvLyA9PiBmYWxzZVxuICAgKlxuICAgKiBsb2Rhc2guaXNGdW5jdGlvbihsb2Rhc2guZm9vKTtcbiAgICogLy8gPT4gZmFsc2VcbiAgICogbG9kYXNoLmlzRnVuY3Rpb24obG9kYXNoLmJhcik7XG4gICAqIC8vID0+IHRydWVcbiAgICpcbiAgICogLy8gQ3JlYXRlIGEgc3VwZWQtdXAgYGRlZmVyYCBpbiBOb2RlLmpzLlxuICAgKiB2YXIgZGVmZXIgPSBfLnJ1bkluQ29udGV4dCh7ICdzZXRUaW1lb3V0Jzogc2V0SW1tZWRpYXRlIH0pLmRlZmVyO1xuICAgKi9cbiAgdmFyIHJ1bkluQ29udGV4dCA9IChmdW5jdGlvbiBydW5JbkNvbnRleHQoY29udGV4dCkge1xuICAgIGNvbnRleHQgPSBjb250ZXh0ID09IG51bGwgPyByb290IDogXy5kZWZhdWx0cyhyb290Lk9iamVjdCgpLCBjb250ZXh0LCBfLnBpY2socm9vdCwgY29udGV4dFByb3BzKSk7XG5cbiAgICAvKiogQnVpbHQtaW4gY29uc3RydWN0b3IgcmVmZXJlbmNlcy4gKi9cbiAgICB2YXIgQXJyYXkgPSBjb250ZXh0LkFycmF5LFxuICAgICAgICBEYXRlID0gY29udGV4dC5EYXRlLFxuICAgICAgICBFcnJvciA9IGNvbnRleHQuRXJyb3IsXG4gICAgICAgIEZ1bmN0aW9uID0gY29udGV4dC5GdW5jdGlvbixcbiAgICAgICAgTWF0aCA9IGNvbnRleHQuTWF0aCxcbiAgICAgICAgT2JqZWN0ID0gY29udGV4dC5PYmplY3QsXG4gICAgICAgIFJlZ0V4cCA9IGNvbnRleHQuUmVnRXhwLFxuICAgICAgICBTdHJpbmcgPSBjb250ZXh0LlN0cmluZyxcbiAgICAgICAgVHlwZUVycm9yID0gY29udGV4dC5UeXBlRXJyb3I7XG5cbiAgICAvKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG4gICAgdmFyIGFycmF5UHJvdG8gPSBBcnJheS5wcm90b3R5cGUsXG4gICAgICAgIGZ1bmNQcm90byA9IEZ1bmN0aW9uLnByb3RvdHlwZSxcbiAgICAgICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4gICAgLyoqIFVzZWQgdG8gZGV0ZWN0IG92ZXJyZWFjaGluZyBjb3JlLWpzIHNoaW1zLiAqL1xuICAgIHZhciBjb3JlSnNEYXRhID0gY29udGV4dFsnX19jb3JlLWpzX3NoYXJlZF9fJ107XG5cbiAgICAvKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG4gICAgdmFyIGZ1bmNUb1N0cmluZyA9IGZ1bmNQcm90by50b1N0cmluZztcblxuICAgIC8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xuICAgIHZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4gICAgLyoqIFVzZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIElEcy4gKi9cbiAgICB2YXIgaWRDb3VudGVyID0gMDtcblxuICAgIC8qKiBVc2VkIHRvIGRldGVjdCBtZXRob2RzIG1hc3F1ZXJhZGluZyBhcyBuYXRpdmUuICovXG4gICAgdmFyIG1hc2tTcmNLZXkgPSAoZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgdWlkID0gL1teLl0rJC8uZXhlYyhjb3JlSnNEYXRhICYmIGNvcmVKc0RhdGEua2V5cyAmJiBjb3JlSnNEYXRhLmtleXMuSUVfUFJPVE8gfHwgJycpO1xuICAgICAgcmV0dXJuIHVpZCA/ICgnU3ltYm9sKHNyYylfMS4nICsgdWlkKSA6ICcnO1xuICAgIH0oKSk7XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gICAgICogW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gICAgICogb2YgdmFsdWVzLlxuICAgICAqL1xuICAgIHZhciBuYXRpdmVPYmplY3RUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4gICAgLyoqIFVzZWQgdG8gaW5mZXIgdGhlIGBPYmplY3RgIGNvbnN0cnVjdG9yLiAqL1xuICAgIHZhciBvYmplY3RDdG9yU3RyaW5nID0gZnVuY1RvU3RyaW5nLmNhbGwoT2JqZWN0KTtcblxuICAgIC8qKiBVc2VkIHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGBfYCByZWZlcmVuY2UgaW4gYF8ubm9Db25mbGljdGAuICovXG4gICAgdmFyIG9sZERhc2ggPSByb290Ll87XG5cbiAgICAvKiogVXNlZCB0byBkZXRlY3QgaWYgYSBtZXRob2QgaXMgbmF0aXZlLiAqL1xuICAgIHZhciByZUlzTmF0aXZlID0gUmVnRXhwKCdeJyArXG4gICAgICBmdW5jVG9TdHJpbmcuY2FsbChoYXNPd25Qcm9wZXJ0eSkucmVwbGFjZShyZVJlZ0V4cENoYXIsICdcXFxcJCYnKVxuICAgICAgLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFxcXFwoKXwgZm9yIC4rPyg/PVxcXFxcXF0pL2csICckMS4qPycpICsgJyQnXG4gICAgKTtcblxuICAgIC8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xuICAgIHZhciBCdWZmZXIgPSBtb2R1bGVFeHBvcnRzID8gY29udGV4dC5CdWZmZXIgOiB1bmRlZmluZWQsXG4gICAgICAgIFN5bWJvbCA9IGNvbnRleHQuU3ltYm9sLFxuICAgICAgICBVaW50OEFycmF5ID0gY29udGV4dC5VaW50OEFycmF5LFxuICAgICAgICBhbGxvY1Vuc2FmZSA9IEJ1ZmZlciA/IEJ1ZmZlci5hbGxvY1Vuc2FmZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZ2V0UHJvdG90eXBlID0gb3ZlckFyZyhPYmplY3QuZ2V0UHJvdG90eXBlT2YsIE9iamVjdCksXG4gICAgICAgIG9iamVjdENyZWF0ZSA9IE9iamVjdC5jcmVhdGUsXG4gICAgICAgIHByb3BlcnR5SXNFbnVtZXJhYmxlID0gb2JqZWN0UHJvdG8ucHJvcGVydHlJc0VudW1lcmFibGUsXG4gICAgICAgIHNwbGljZSA9IGFycmF5UHJvdG8uc3BsaWNlLFxuICAgICAgICBzcHJlYWRhYmxlU3ltYm9sID0gU3ltYm9sID8gU3ltYm9sLmlzQ29uY2F0U3ByZWFkYWJsZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgc3ltSXRlcmF0b3IgPSBTeW1ib2wgPyBTeW1ib2wuaXRlcmF0b3IgOiB1bmRlZmluZWQsXG4gICAgICAgIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4gICAgdmFyIGRlZmluZVByb3BlcnR5ID0gKGZ1bmN0aW9uKCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIGZ1bmMgPSBnZXROYXRpdmUoT2JqZWN0LCAnZGVmaW5lUHJvcGVydHknKTtcbiAgICAgICAgZnVuYyh7fSwgJycsIHt9KTtcbiAgICAgICAgcmV0dXJuIGZ1bmM7XG4gICAgICB9IGNhdGNoIChlKSB7fVxuICAgIH0oKSk7XG5cbiAgICAvKiogTW9ja2VkIGJ1aWx0LWlucy4gKi9cbiAgICB2YXIgY3R4Q2xlYXJUaW1lb3V0ID0gY29udGV4dC5jbGVhclRpbWVvdXQgIT09IHJvb3QuY2xlYXJUaW1lb3V0ICYmIGNvbnRleHQuY2xlYXJUaW1lb3V0LFxuICAgICAgICBjdHhOb3cgPSBEYXRlICYmIERhdGUubm93ICE9PSByb290LkRhdGUubm93ICYmIERhdGUubm93LFxuICAgICAgICBjdHhTZXRUaW1lb3V0ID0gY29udGV4dC5zZXRUaW1lb3V0ICE9PSByb290LnNldFRpbWVvdXQgJiYgY29udGV4dC5zZXRUaW1lb3V0O1xuXG4gICAgLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xuICAgIHZhciBuYXRpdmVDZWlsID0gTWF0aC5jZWlsLFxuICAgICAgICBuYXRpdmVGbG9vciA9IE1hdGguZmxvb3IsXG4gICAgICAgIG5hdGl2ZUdldFN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLFxuICAgICAgICBuYXRpdmVJc0J1ZmZlciA9IEJ1ZmZlciA/IEJ1ZmZlci5pc0J1ZmZlciA6IHVuZGVmaW5lZCxcbiAgICAgICAgbmF0aXZlSXNGaW5pdGUgPSBjb250ZXh0LmlzRmluaXRlLFxuICAgICAgICBuYXRpdmVKb2luID0gYXJyYXlQcm90by5qb2luLFxuICAgICAgICBuYXRpdmVLZXlzID0gb3ZlckFyZyhPYmplY3Qua2V5cywgT2JqZWN0KSxcbiAgICAgICAgbmF0aXZlTWF4ID0gTWF0aC5tYXgsXG4gICAgICAgIG5hdGl2ZU1pbiA9IE1hdGgubWluLFxuICAgICAgICBuYXRpdmVOb3cgPSBEYXRlLm5vdyxcbiAgICAgICAgbmF0aXZlUGFyc2VJbnQgPSBjb250ZXh0LnBhcnNlSW50LFxuICAgICAgICBuYXRpdmVSYW5kb20gPSBNYXRoLnJhbmRvbSxcbiAgICAgICAgbmF0aXZlUmV2ZXJzZSA9IGFycmF5UHJvdG8ucmV2ZXJzZTtcblxuICAgIC8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbiAgICB2YXIgRGF0YVZpZXcgPSBnZXROYXRpdmUoY29udGV4dCwgJ0RhdGFWaWV3JyksXG4gICAgICAgIE1hcCA9IGdldE5hdGl2ZShjb250ZXh0LCAnTWFwJyksXG4gICAgICAgIFByb21pc2UgPSBnZXROYXRpdmUoY29udGV4dCwgJ1Byb21pc2UnKSxcbiAgICAgICAgU2V0ID0gZ2V0TmF0aXZlKGNvbnRleHQsICdTZXQnKSxcbiAgICAgICAgV2Vha01hcCA9IGdldE5hdGl2ZShjb250ZXh0LCAnV2Vha01hcCcpLFxuICAgICAgICBuYXRpdmVDcmVhdGUgPSBnZXROYXRpdmUoT2JqZWN0LCAnY3JlYXRlJyk7XG5cbiAgICAvKiogVXNlZCB0byBzdG9yZSBmdW5jdGlvbiBtZXRhZGF0YS4gKi9cbiAgICB2YXIgbWV0YU1hcCA9IFdlYWtNYXAgJiYgbmV3IFdlYWtNYXA7XG5cbiAgICAvKiogVXNlZCB0byBsb29rdXAgdW5taW5pZmllZCBmdW5jdGlvbiBuYW1lcy4gKi9cbiAgICB2YXIgcmVhbE5hbWVzID0ge307XG5cbiAgICAvKiogVXNlZCB0byBkZXRlY3QgbWFwcywgc2V0cywgYW5kIHdlYWttYXBzLiAqL1xuICAgIHZhciBkYXRhVmlld0N0b3JTdHJpbmcgPSB0b1NvdXJjZShEYXRhVmlldyksXG4gICAgICAgIG1hcEN0b3JTdHJpbmcgPSB0b1NvdXJjZShNYXApLFxuICAgICAgICBwcm9taXNlQ3RvclN0cmluZyA9IHRvU291cmNlKFByb21pc2UpLFxuICAgICAgICBzZXRDdG9yU3RyaW5nID0gdG9Tb3VyY2UoU2V0KSxcbiAgICAgICAgd2Vha01hcEN0b3JTdHJpbmcgPSB0b1NvdXJjZShXZWFrTWFwKTtcblxuICAgIC8qKiBVc2VkIHRvIGNvbnZlcnQgc3ltYm9scyB0byBwcmltaXRpdmVzIGFuZCBzdHJpbmdzLiAqL1xuICAgIHZhciBzeW1ib2xQcm90byA9IFN5bWJvbCA/IFN5bWJvbC5wcm90b3R5cGUgOiB1bmRlZmluZWQsXG4gICAgICAgIHN5bWJvbFZhbHVlT2YgPSBzeW1ib2xQcm90byA/IHN5bWJvbFByb3RvLnZhbHVlT2YgOiB1bmRlZmluZWQsXG4gICAgICAgIHN5bWJvbFRvU3RyaW5nID0gc3ltYm9sUHJvdG8gPyBzeW1ib2xQcm90by50b1N0cmluZyA6IHVuZGVmaW5lZDtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBgbG9kYXNoYCBvYmplY3Qgd2hpY2ggd3JhcHMgYHZhbHVlYCB0byBlbmFibGUgaW1wbGljaXQgbWV0aG9kXG4gICAgICogY2hhaW4gc2VxdWVuY2VzLiBNZXRob2RzIHRoYXQgb3BlcmF0ZSBvbiBhbmQgcmV0dXJuIGFycmF5cywgY29sbGVjdGlvbnMsXG4gICAgICogYW5kIGZ1bmN0aW9ucyBjYW4gYmUgY2hhaW5lZCB0b2dldGhlci4gTWV0aG9kcyB0aGF0IHJldHJpZXZlIGEgc2luZ2xlIHZhbHVlXG4gICAgICogb3IgbWF5IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZSB3aWxsIGF1dG9tYXRpY2FsbHkgZW5kIHRoZSBjaGFpbiBzZXF1ZW5jZVxuICAgICAqIGFuZCByZXR1cm4gdGhlIHVud3JhcHBlZCB2YWx1ZS4gT3RoZXJ3aXNlLCB0aGUgdmFsdWUgbXVzdCBiZSB1bndyYXBwZWRcbiAgICAgKiB3aXRoIGBfI3ZhbHVlYC5cbiAgICAgKlxuICAgICAqIEV4cGxpY2l0IGNoYWluIHNlcXVlbmNlcywgd2hpY2ggbXVzdCBiZSB1bndyYXBwZWQgd2l0aCBgXyN2YWx1ZWAsIG1heSBiZVxuICAgICAqIGVuYWJsZWQgdXNpbmcgYF8uY2hhaW5gLlxuICAgICAqXG4gICAgICogVGhlIGV4ZWN1dGlvbiBvZiBjaGFpbmVkIG1ldGhvZHMgaXMgbGF6eSwgdGhhdCBpcywgaXQncyBkZWZlcnJlZCB1bnRpbFxuICAgICAqIGBfI3ZhbHVlYCBpcyBpbXBsaWNpdGx5IG9yIGV4cGxpY2l0bHkgY2FsbGVkLlxuICAgICAqXG4gICAgICogTGF6eSBldmFsdWF0aW9uIGFsbG93cyBzZXZlcmFsIG1ldGhvZHMgdG8gc3VwcG9ydCBzaG9ydGN1dCBmdXNpb24uXG4gICAgICogU2hvcnRjdXQgZnVzaW9uIGlzIGFuIG9wdGltaXphdGlvbiB0byBtZXJnZSBpdGVyYXRlZSBjYWxsczsgdGhpcyBhdm9pZHNcbiAgICAgKiB0aGUgY3JlYXRpb24gb2YgaW50ZXJtZWRpYXRlIGFycmF5cyBhbmQgY2FuIGdyZWF0bHkgcmVkdWNlIHRoZSBudW1iZXIgb2ZcbiAgICAgKiBpdGVyYXRlZSBleGVjdXRpb25zLiBTZWN0aW9ucyBvZiBhIGNoYWluIHNlcXVlbmNlIHF1YWxpZnkgZm9yIHNob3J0Y3V0XG4gICAgICogZnVzaW9uIGlmIHRoZSBzZWN0aW9uIGlzIGFwcGxpZWQgdG8gYW4gYXJyYXkgYW5kIGl0ZXJhdGVlcyBhY2NlcHQgb25seVxuICAgICAqIG9uZSBhcmd1bWVudC4gVGhlIGhldXJpc3RpYyBmb3Igd2hldGhlciBhIHNlY3Rpb24gcXVhbGlmaWVzIGZvciBzaG9ydGN1dFxuICAgICAqIGZ1c2lvbiBpcyBzdWJqZWN0IHRvIGNoYW5nZS5cbiAgICAgKlxuICAgICAqIENoYWluaW5nIGlzIHN1cHBvcnRlZCBpbiBjdXN0b20gYnVpbGRzIGFzIGxvbmcgYXMgdGhlIGBfI3ZhbHVlYCBtZXRob2QgaXNcbiAgICAgKiBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGluY2x1ZGVkIGluIHRoZSBidWlsZC5cbiAgICAgKlxuICAgICAqIEluIGFkZGl0aW9uIHRvIGxvZGFzaCBtZXRob2RzLCB3cmFwcGVycyBoYXZlIGBBcnJheWAgYW5kIGBTdHJpbmdgIG1ldGhvZHMuXG4gICAgICpcbiAgICAgKiBUaGUgd3JhcHBlciBgQXJyYXlgIG1ldGhvZHMgYXJlOlxuICAgICAqIGBjb25jYXRgLCBgam9pbmAsIGBwb3BgLCBgcHVzaGAsIGBzaGlmdGAsIGBzb3J0YCwgYHNwbGljZWAsIGFuZCBgdW5zaGlmdGBcbiAgICAgKlxuICAgICAqIFRoZSB3cmFwcGVyIGBTdHJpbmdgIG1ldGhvZHMgYXJlOlxuICAgICAqIGByZXBsYWNlYCBhbmQgYHNwbGl0YFxuICAgICAqXG4gICAgICogVGhlIHdyYXBwZXIgbWV0aG9kcyB0aGF0IHN1cHBvcnQgc2hvcnRjdXQgZnVzaW9uIGFyZTpcbiAgICAgKiBgYXRgLCBgY29tcGFjdGAsIGBkcm9wYCwgYGRyb3BSaWdodGAsIGBkcm9wV2hpbGVgLCBgZmlsdGVyYCwgYGZpbmRgLFxuICAgICAqIGBmaW5kTGFzdGAsIGBoZWFkYCwgYGluaXRpYWxgLCBgbGFzdGAsIGBtYXBgLCBgcmVqZWN0YCwgYHJldmVyc2VgLCBgc2xpY2VgLFxuICAgICAqIGB0YWlsYCwgYHRha2VgLCBgdGFrZVJpZ2h0YCwgYHRha2VSaWdodFdoaWxlYCwgYHRha2VXaGlsZWAsIGFuZCBgdG9BcnJheWBcbiAgICAgKlxuICAgICAqIFRoZSBjaGFpbmFibGUgd3JhcHBlciBtZXRob2RzIGFyZTpcbiAgICAgKiBgYWZ0ZXJgLCBgYXJ5YCwgYGFzc2lnbmAsIGBhc3NpZ25JbmAsIGBhc3NpZ25JbldpdGhgLCBgYXNzaWduV2l0aGAsIGBhdGAsXG4gICAgICogYGJlZm9yZWAsIGBiaW5kYCwgYGJpbmRBbGxgLCBgYmluZEtleWAsIGBjYXN0QXJyYXlgLCBgY2hhaW5gLCBgY2h1bmtgLFxuICAgICAqIGBjb21taXRgLCBgY29tcGFjdGAsIGBjb25jYXRgLCBgY29uZm9ybXNgLCBgY29uc3RhbnRgLCBgY291bnRCeWAsIGBjcmVhdGVgLFxuICAgICAqIGBjdXJyeWAsIGBkZWJvdW5jZWAsIGBkZWZhdWx0c2AsIGBkZWZhdWx0c0RlZXBgLCBgZGVmZXJgLCBgZGVsYXlgLFxuICAgICAqIGBkaWZmZXJlbmNlYCwgYGRpZmZlcmVuY2VCeWAsIGBkaWZmZXJlbmNlV2l0aGAsIGBkcm9wYCwgYGRyb3BSaWdodGAsXG4gICAgICogYGRyb3BSaWdodFdoaWxlYCwgYGRyb3BXaGlsZWAsIGBleHRlbmRgLCBgZXh0ZW5kV2l0aGAsIGBmaWxsYCwgYGZpbHRlcmAsXG4gICAgICogYGZsYXRNYXBgLCBgZmxhdE1hcERlZXBgLCBgZmxhdE1hcERlcHRoYCwgYGZsYXR0ZW5gLCBgZmxhdHRlbkRlZXBgLFxuICAgICAqIGBmbGF0dGVuRGVwdGhgLCBgZmxpcGAsIGBmbG93YCwgYGZsb3dSaWdodGAsIGBmcm9tUGFpcnNgLCBgZnVuY3Rpb25zYCxcbiAgICAgKiBgZnVuY3Rpb25zSW5gLCBgZ3JvdXBCeWAsIGBpbml0aWFsYCwgYGludGVyc2VjdGlvbmAsIGBpbnRlcnNlY3Rpb25CeWAsXG4gICAgICogYGludGVyc2VjdGlvbldpdGhgLCBgaW52ZXJ0YCwgYGludmVydEJ5YCwgYGludm9rZU1hcGAsIGBpdGVyYXRlZWAsIGBrZXlCeWAsXG4gICAgICogYGtleXNgLCBga2V5c0luYCwgYG1hcGAsIGBtYXBLZXlzYCwgYG1hcFZhbHVlc2AsIGBtYXRjaGVzYCwgYG1hdGNoZXNQcm9wZXJ0eWAsXG4gICAgICogYG1lbW9pemVgLCBgbWVyZ2VgLCBgbWVyZ2VXaXRoYCwgYG1ldGhvZGAsIGBtZXRob2RPZmAsIGBtaXhpbmAsIGBuZWdhdGVgLFxuICAgICAqIGBudGhBcmdgLCBgb21pdGAsIGBvbWl0QnlgLCBgb25jZWAsIGBvcmRlckJ5YCwgYG92ZXJgLCBgb3ZlckFyZ3NgLFxuICAgICAqIGBvdmVyRXZlcnlgLCBgb3ZlclNvbWVgLCBgcGFydGlhbGAsIGBwYXJ0aWFsUmlnaHRgLCBgcGFydGl0aW9uYCwgYHBpY2tgLFxuICAgICAqIGBwaWNrQnlgLCBgcGxhbnRgLCBgcHJvcGVydHlgLCBgcHJvcGVydHlPZmAsIGBwdWxsYCwgYHB1bGxBbGxgLCBgcHVsbEFsbEJ5YCxcbiAgICAgKiBgcHVsbEFsbFdpdGhgLCBgcHVsbEF0YCwgYHB1c2hgLCBgcmFuZ2VgLCBgcmFuZ2VSaWdodGAsIGByZWFyZ2AsIGByZWplY3RgLFxuICAgICAqIGByZW1vdmVgLCBgcmVzdGAsIGByZXZlcnNlYCwgYHNhbXBsZVNpemVgLCBgc2V0YCwgYHNldFdpdGhgLCBgc2h1ZmZsZWAsXG4gICAgICogYHNsaWNlYCwgYHNvcnRgLCBgc29ydEJ5YCwgYHNwbGljZWAsIGBzcHJlYWRgLCBgdGFpbGAsIGB0YWtlYCwgYHRha2VSaWdodGAsXG4gICAgICogYHRha2VSaWdodFdoaWxlYCwgYHRha2VXaGlsZWAsIGB0YXBgLCBgdGhyb3R0bGVgLCBgdGhydWAsIGB0b0FycmF5YCxcbiAgICAgKiBgdG9QYWlyc2AsIGB0b1BhaXJzSW5gLCBgdG9QYXRoYCwgYHRvUGxhaW5PYmplY3RgLCBgdHJhbnNmb3JtYCwgYHVuYXJ5YCxcbiAgICAgKiBgdW5pb25gLCBgdW5pb25CeWAsIGB1bmlvbldpdGhgLCBgdW5pcWAsIGB1bmlxQnlgLCBgdW5pcVdpdGhgLCBgdW5zZXRgLFxuICAgICAqIGB1bnNoaWZ0YCwgYHVuemlwYCwgYHVuemlwV2l0aGAsIGB1cGRhdGVgLCBgdXBkYXRlV2l0aGAsIGB2YWx1ZXNgLFxuICAgICAqIGB2YWx1ZXNJbmAsIGB3aXRob3V0YCwgYHdyYXBgLCBgeG9yYCwgYHhvckJ5YCwgYHhvcldpdGhgLCBgemlwYCxcbiAgICAgKiBgemlwT2JqZWN0YCwgYHppcE9iamVjdERlZXBgLCBhbmQgYHppcFdpdGhgXG4gICAgICpcbiAgICAgKiBUaGUgd3JhcHBlciBtZXRob2RzIHRoYXQgYXJlICoqbm90KiogY2hhaW5hYmxlIGJ5IGRlZmF1bHQgYXJlOlxuICAgICAqIGBhZGRgLCBgYXR0ZW1wdGAsIGBjYW1lbENhc2VgLCBgY2FwaXRhbGl6ZWAsIGBjZWlsYCwgYGNsYW1wYCwgYGNsb25lYCxcbiAgICAgKiBgY2xvbmVEZWVwYCwgYGNsb25lRGVlcFdpdGhgLCBgY2xvbmVXaXRoYCwgYGNvbmZvcm1zVG9gLCBgZGVidXJyYCxcbiAgICAgKiBgZGVmYXVsdFRvYCwgYGRpdmlkZWAsIGBlYWNoYCwgYGVhY2hSaWdodGAsIGBlbmRzV2l0aGAsIGBlcWAsIGBlc2NhcGVgLFxuICAgICAqIGBlc2NhcGVSZWdFeHBgLCBgZXZlcnlgLCBgZmluZGAsIGBmaW5kSW5kZXhgLCBgZmluZEtleWAsIGBmaW5kTGFzdGAsXG4gICAgICogYGZpbmRMYXN0SW5kZXhgLCBgZmluZExhc3RLZXlgLCBgZmlyc3RgLCBgZmxvb3JgLCBgZm9yRWFjaGAsIGBmb3JFYWNoUmlnaHRgLFxuICAgICAqIGBmb3JJbmAsIGBmb3JJblJpZ2h0YCwgYGZvck93bmAsIGBmb3JPd25SaWdodGAsIGBnZXRgLCBgZ3RgLCBgZ3RlYCwgYGhhc2AsXG4gICAgICogYGhhc0luYCwgYGhlYWRgLCBgaWRlbnRpdHlgLCBgaW5jbHVkZXNgLCBgaW5kZXhPZmAsIGBpblJhbmdlYCwgYGludm9rZWAsXG4gICAgICogYGlzQXJndW1lbnRzYCwgYGlzQXJyYXlgLCBgaXNBcnJheUJ1ZmZlcmAsIGBpc0FycmF5TGlrZWAsIGBpc0FycmF5TGlrZU9iamVjdGAsXG4gICAgICogYGlzQm9vbGVhbmAsIGBpc0J1ZmZlcmAsIGBpc0RhdGVgLCBgaXNFbGVtZW50YCwgYGlzRW1wdHlgLCBgaXNFcXVhbGAsXG4gICAgICogYGlzRXF1YWxXaXRoYCwgYGlzRXJyb3JgLCBgaXNGaW5pdGVgLCBgaXNGdW5jdGlvbmAsIGBpc0ludGVnZXJgLCBgaXNMZW5ndGhgLFxuICAgICAqIGBpc01hcGAsIGBpc01hdGNoYCwgYGlzTWF0Y2hXaXRoYCwgYGlzTmFOYCwgYGlzTmF0aXZlYCwgYGlzTmlsYCwgYGlzTnVsbGAsXG4gICAgICogYGlzTnVtYmVyYCwgYGlzT2JqZWN0YCwgYGlzT2JqZWN0TGlrZWAsIGBpc1BsYWluT2JqZWN0YCwgYGlzUmVnRXhwYCxcbiAgICAgKiBgaXNTYWZlSW50ZWdlcmAsIGBpc1NldGAsIGBpc1N0cmluZ2AsIGBpc1VuZGVmaW5lZGAsIGBpc1R5cGVkQXJyYXlgLFxuICAgICAqIGBpc1dlYWtNYXBgLCBgaXNXZWFrU2V0YCwgYGpvaW5gLCBga2ViYWJDYXNlYCwgYGxhc3RgLCBgbGFzdEluZGV4T2ZgLFxuICAgICAqIGBsb3dlckNhc2VgLCBgbG93ZXJGaXJzdGAsIGBsdGAsIGBsdGVgLCBgbWF4YCwgYG1heEJ5YCwgYG1lYW5gLCBgbWVhbkJ5YCxcbiAgICAgKiBgbWluYCwgYG1pbkJ5YCwgYG11bHRpcGx5YCwgYG5vQ29uZmxpY3RgLCBgbm9vcGAsIGBub3dgLCBgbnRoYCwgYHBhZGAsXG4gICAgICogYHBhZEVuZGAsIGBwYWRTdGFydGAsIGBwYXJzZUludGAsIGBwb3BgLCBgcmFuZG9tYCwgYHJlZHVjZWAsIGByZWR1Y2VSaWdodGAsXG4gICAgICogYHJlcGVhdGAsIGByZXN1bHRgLCBgcm91bmRgLCBgcnVuSW5Db250ZXh0YCwgYHNhbXBsZWAsIGBzaGlmdGAsIGBzaXplYCxcbiAgICAgKiBgc25ha2VDYXNlYCwgYHNvbWVgLCBgc29ydGVkSW5kZXhgLCBgc29ydGVkSW5kZXhCeWAsIGBzb3J0ZWRMYXN0SW5kZXhgLFxuICAgICAqIGBzb3J0ZWRMYXN0SW5kZXhCeWAsIGBzdGFydENhc2VgLCBgc3RhcnRzV2l0aGAsIGBzdHViQXJyYXlgLCBgc3R1YkZhbHNlYCxcbiAgICAgKiBgc3R1Yk9iamVjdGAsIGBzdHViU3RyaW5nYCwgYHN0dWJUcnVlYCwgYHN1YnRyYWN0YCwgYHN1bWAsIGBzdW1CeWAsXG4gICAgICogYHRlbXBsYXRlYCwgYHRpbWVzYCwgYHRvRmluaXRlYCwgYHRvSW50ZWdlcmAsIGB0b0pTT05gLCBgdG9MZW5ndGhgLFxuICAgICAqIGB0b0xvd2VyYCwgYHRvTnVtYmVyYCwgYHRvU2FmZUludGVnZXJgLCBgdG9TdHJpbmdgLCBgdG9VcHBlcmAsIGB0cmltYCxcbiAgICAgKiBgdHJpbUVuZGAsIGB0cmltU3RhcnRgLCBgdHJ1bmNhdGVgLCBgdW5lc2NhcGVgLCBgdW5pcXVlSWRgLCBgdXBwZXJDYXNlYCxcbiAgICAgKiBgdXBwZXJGaXJzdGAsIGB2YWx1ZWAsIGFuZCBgd29yZHNgXG4gICAgICpcbiAgICAgKiBAbmFtZSBfXG4gICAgICogQGNvbnN0cnVjdG9yXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAgaW4gYSBgbG9kYXNoYCBpbnN0YW5jZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gc3F1YXJlKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICogbjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgd3JhcHBlZCA9IF8oWzEsIDIsIDNdKTtcbiAgICAgKlxuICAgICAqIC8vIFJldHVybnMgYW4gdW53cmFwcGVkIHZhbHVlLlxuICAgICAqIHdyYXBwZWQucmVkdWNlKF8uYWRkKTtcbiAgICAgKiAvLyA9PiA2XG4gICAgICpcbiAgICAgKiAvLyBSZXR1cm5zIGEgd3JhcHBlZCB2YWx1ZS5cbiAgICAgKiB2YXIgc3F1YXJlcyA9IHdyYXBwZWQubWFwKHNxdWFyZSk7XG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXkoc3F1YXJlcyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheShzcXVhcmVzLnZhbHVlKCkpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBsb2Rhc2godmFsdWUpIHtcbiAgICAgIGlmIChpc09iamVjdExpa2UodmFsdWUpICYmICFpc0FycmF5KHZhbHVlKSAmJiAhKHZhbHVlIGluc3RhbmNlb2YgTGF6eVdyYXBwZXIpKSB7XG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIExvZGFzaFdyYXBwZXIpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdfX3dyYXBwZWRfXycpKSB7XG4gICAgICAgICAgcmV0dXJuIHdyYXBwZXJDbG9uZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgTG9kYXNoV3JhcHBlcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY3JlYXRlYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFzc2lnbmluZ1xuICAgICAqIHByb3BlcnRpZXMgdG8gdGhlIGNyZWF0ZWQgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gcHJvdG8gVGhlIG9iamVjdCB0byBpbmhlcml0IGZyb20uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKi9cbiAgICB2YXIgYmFzZUNyZWF0ZSA9IChmdW5jdGlvbigpIHtcbiAgICAgIGZ1bmN0aW9uIG9iamVjdCgpIHt9XG4gICAgICByZXR1cm4gZnVuY3Rpb24ocHJvdG8pIHtcbiAgICAgICAgaWYgKCFpc09iamVjdChwcm90bykpIHtcbiAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9iamVjdENyZWF0ZSkge1xuICAgICAgICAgIHJldHVybiBvYmplY3RDcmVhdGUocHJvdG8pO1xuICAgICAgICB9XG4gICAgICAgIG9iamVjdC5wcm90b3R5cGUgPSBwcm90bztcbiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBvYmplY3Q7XG4gICAgICAgIG9iamVjdC5wcm90b3R5cGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH0oKSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZnVuY3Rpb24gd2hvc2UgcHJvdG90eXBlIGNoYWluIHNlcXVlbmNlIHdyYXBwZXJzIGluaGVyaXQgZnJvbS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUxvZGFzaCgpIHtcbiAgICAgIC8vIE5vIG9wZXJhdGlvbiBwZXJmb3JtZWQuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgY29uc3RydWN0b3IgZm9yIGNyZWF0aW5nIGBsb2Rhc2hgIHdyYXBwZXIgb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtjaGFpbkFsbF0gRW5hYmxlIGV4cGxpY2l0IG1ldGhvZCBjaGFpbiBzZXF1ZW5jZXMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gTG9kYXNoV3JhcHBlcih2YWx1ZSwgY2hhaW5BbGwpIHtcbiAgICAgIHRoaXMuX193cmFwcGVkX18gPSB2YWx1ZTtcbiAgICAgIHRoaXMuX19hY3Rpb25zX18gPSBbXTtcbiAgICAgIHRoaXMuX19jaGFpbl9fID0gISFjaGFpbkFsbDtcbiAgICAgIHRoaXMuX19pbmRleF9fID0gMDtcbiAgICAgIHRoaXMuX192YWx1ZXNfXyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBCeSBkZWZhdWx0LCB0aGUgdGVtcGxhdGUgZGVsaW1pdGVycyB1c2VkIGJ5IGxvZGFzaCBhcmUgbGlrZSB0aG9zZSBpblxuICAgICAqIGVtYmVkZGVkIFJ1YnkgKEVSQikgYXMgd2VsbCBhcyBFUzIwMTUgdGVtcGxhdGUgc3RyaW5ncy4gQ2hhbmdlIHRoZVxuICAgICAqIGZvbGxvd2luZyB0ZW1wbGF0ZSBzZXR0aW5ncyB0byB1c2UgYWx0ZXJuYXRpdmUgZGVsaW1pdGVycy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEB0eXBlIHtPYmplY3R9XG4gICAgICovXG4gICAgbG9kYXNoLnRlbXBsYXRlU2V0dGluZ3MgPSB7XG5cbiAgICAgIC8qKlxuICAgICAgICogVXNlZCB0byBkZXRlY3QgYGRhdGFgIHByb3BlcnR5IHZhbHVlcyB0byBiZSBIVE1MLWVzY2FwZWQuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgICAgICogQHR5cGUge1JlZ0V4cH1cbiAgICAgICAqL1xuICAgICAgJ2VzY2FwZSc6IHJlRXNjYXBlLFxuXG4gICAgICAvKipcbiAgICAgICAqIFVzZWQgdG8gZGV0ZWN0IGNvZGUgdG8gYmUgZXZhbHVhdGVkLlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICAgICAqIEB0eXBlIHtSZWdFeHB9XG4gICAgICAgKi9cbiAgICAgICdldmFsdWF0ZSc6IHJlRXZhbHVhdGUsXG5cbiAgICAgIC8qKlxuICAgICAgICogVXNlZCB0byBkZXRlY3QgYGRhdGFgIHByb3BlcnR5IHZhbHVlcyB0byBpbmplY3QuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgICAgICogQHR5cGUge1JlZ0V4cH1cbiAgICAgICAqL1xuICAgICAgJ2ludGVycG9sYXRlJzogcmVJbnRlcnBvbGF0ZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBVc2VkIHRvIHJlZmVyZW5jZSB0aGUgZGF0YSBvYmplY3QgaW4gdGhlIHRlbXBsYXRlIHRleHQuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgICAqL1xuICAgICAgJ3ZhcmlhYmxlJzogJycsXG5cbiAgICAgIC8qKlxuICAgICAgICogVXNlZCB0byBpbXBvcnQgdmFyaWFibGVzIGludG8gdGhlIGNvbXBpbGVkIHRlbXBsYXRlLlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICAgICAqIEB0eXBlIHtPYmplY3R9XG4gICAgICAgKi9cbiAgICAgICdpbXBvcnRzJzoge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgYGxvZGFzaGAgZnVuY3Rpb24uXG4gICAgICAgICAqXG4gICAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3MuaW1wb3J0c1xuICAgICAgICAgKiBAdHlwZSB7RnVuY3Rpb259XG4gICAgICAgICAqL1xuICAgICAgICAnXyc6IGxvZGFzaFxuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBFbnN1cmUgd3JhcHBlcnMgYXJlIGluc3RhbmNlcyBvZiBgYmFzZUxvZGFzaGAuXG4gICAgbG9kYXNoLnByb3RvdHlwZSA9IGJhc2VMb2Rhc2gucHJvdG90eXBlO1xuICAgIGxvZGFzaC5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBsb2Rhc2g7XG5cbiAgICBMb2Rhc2hXcmFwcGVyLnByb3RvdHlwZSA9IGJhc2VDcmVhdGUoYmFzZUxvZGFzaC5wcm90b3R5cGUpO1xuICAgIExvZGFzaFdyYXBwZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTG9kYXNoV3JhcHBlcjtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBsYXp5IHdyYXBwZXIgb2JqZWN0IHdoaWNoIHdyYXBzIGB2YWx1ZWAgdG8gZW5hYmxlIGxhenkgZXZhbHVhdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQGNvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gd3JhcC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBMYXp5V3JhcHBlcih2YWx1ZSkge1xuICAgICAgdGhpcy5fX3dyYXBwZWRfXyA9IHZhbHVlO1xuICAgICAgdGhpcy5fX2FjdGlvbnNfXyA9IFtdO1xuICAgICAgdGhpcy5fX2Rpcl9fID0gMTtcbiAgICAgIHRoaXMuX19maWx0ZXJlZF9fID0gZmFsc2U7XG4gICAgICB0aGlzLl9faXRlcmF0ZWVzX18gPSBbXTtcbiAgICAgIHRoaXMuX190YWtlQ291bnRfXyA9IE1BWF9BUlJBWV9MRU5HVEg7XG4gICAgICB0aGlzLl9fdmlld3NfXyA9IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiB0aGUgbGF6eSB3cmFwcGVyIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgY2xvbmVcbiAgICAgKiBAbWVtYmVyT2YgTGF6eVdyYXBwZXJcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgYExhenlXcmFwcGVyYCBvYmplY3QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGF6eUNsb25lKCkge1xuICAgICAgdmFyIHJlc3VsdCA9IG5ldyBMYXp5V3JhcHBlcih0aGlzLl9fd3JhcHBlZF9fKTtcbiAgICAgIHJlc3VsdC5fX2FjdGlvbnNfXyA9IGNvcHlBcnJheSh0aGlzLl9fYWN0aW9uc19fKTtcbiAgICAgIHJlc3VsdC5fX2Rpcl9fID0gdGhpcy5fX2Rpcl9fO1xuICAgICAgcmVzdWx0Ll9fZmlsdGVyZWRfXyA9IHRoaXMuX19maWx0ZXJlZF9fO1xuICAgICAgcmVzdWx0Ll9faXRlcmF0ZWVzX18gPSBjb3B5QXJyYXkodGhpcy5fX2l0ZXJhdGVlc19fKTtcbiAgICAgIHJlc3VsdC5fX3Rha2VDb3VudF9fID0gdGhpcy5fX3Rha2VDb3VudF9fO1xuICAgICAgcmVzdWx0Ll9fdmlld3NfXyA9IGNvcHlBcnJheSh0aGlzLl9fdmlld3NfXyk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldmVyc2VzIHRoZSBkaXJlY3Rpb24gb2YgbGF6eSBpdGVyYXRpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIHJldmVyc2VcbiAgICAgKiBAbWVtYmVyT2YgTGF6eVdyYXBwZXJcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgcmV2ZXJzZWQgYExhenlXcmFwcGVyYCBvYmplY3QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGF6eVJldmVyc2UoKSB7XG4gICAgICBpZiAodGhpcy5fX2ZpbHRlcmVkX18pIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBMYXp5V3JhcHBlcih0aGlzKTtcbiAgICAgICAgcmVzdWx0Ll9fZGlyX18gPSAtMTtcbiAgICAgICAgcmVzdWx0Ll9fZmlsdGVyZWRfXyA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSB0aGlzLmNsb25lKCk7XG4gICAgICAgIHJlc3VsdC5fX2Rpcl9fICo9IC0xO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeHRyYWN0cyB0aGUgdW53cmFwcGVkIHZhbHVlIGZyb20gaXRzIGxhenkgd3JhcHBlci5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgdmFsdWVcbiAgICAgKiBAbWVtYmVyT2YgTGF6eVdyYXBwZXJcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgdW53cmFwcGVkIHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxhenlWYWx1ZSgpIHtcbiAgICAgIHZhciBhcnJheSA9IHRoaXMuX193cmFwcGVkX18udmFsdWUoKSxcbiAgICAgICAgICBkaXIgPSB0aGlzLl9fZGlyX18sXG4gICAgICAgICAgaXNBcnIgPSBpc0FycmF5KGFycmF5KSxcbiAgICAgICAgICBpc1JpZ2h0ID0gZGlyIDwgMCxcbiAgICAgICAgICBhcnJMZW5ndGggPSBpc0FyciA/IGFycmF5Lmxlbmd0aCA6IDAsXG4gICAgICAgICAgdmlldyA9IGdldFZpZXcoMCwgYXJyTGVuZ3RoLCB0aGlzLl9fdmlld3NfXyksXG4gICAgICAgICAgc3RhcnQgPSB2aWV3LnN0YXJ0LFxuICAgICAgICAgIGVuZCA9IHZpZXcuZW5kLFxuICAgICAgICAgIGxlbmd0aCA9IGVuZCAtIHN0YXJ0LFxuICAgICAgICAgIGluZGV4ID0gaXNSaWdodCA/IGVuZCA6IChzdGFydCAtIDEpLFxuICAgICAgICAgIGl0ZXJhdGVlcyA9IHRoaXMuX19pdGVyYXRlZXNfXyxcbiAgICAgICAgICBpdGVyTGVuZ3RoID0gaXRlcmF0ZWVzLmxlbmd0aCxcbiAgICAgICAgICByZXNJbmRleCA9IDAsXG4gICAgICAgICAgdGFrZUNvdW50ID0gbmF0aXZlTWluKGxlbmd0aCwgdGhpcy5fX3Rha2VDb3VudF9fKTtcblxuICAgICAgaWYgKCFpc0FyciB8fCAoIWlzUmlnaHQgJiYgYXJyTGVuZ3RoID09IGxlbmd0aCAmJiB0YWtlQ291bnQgPT0gbGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gYmFzZVdyYXBwZXJWYWx1ZShhcnJheSwgdGhpcy5fX2FjdGlvbnNfXyk7XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gW107XG5cbiAgICAgIG91dGVyOlxuICAgICAgd2hpbGUgKGxlbmd0aC0tICYmIHJlc0luZGV4IDwgdGFrZUNvdW50KSB7XG4gICAgICAgIGluZGV4ICs9IGRpcjtcblxuICAgICAgICB2YXIgaXRlckluZGV4ID0gLTEsXG4gICAgICAgICAgICB2YWx1ZSA9IGFycmF5W2luZGV4XTtcblxuICAgICAgICB3aGlsZSAoKytpdGVySW5kZXggPCBpdGVyTGVuZ3RoKSB7XG4gICAgICAgICAgdmFyIGRhdGEgPSBpdGVyYXRlZXNbaXRlckluZGV4XSxcbiAgICAgICAgICAgICAgaXRlcmF0ZWUgPSBkYXRhLml0ZXJhdGVlLFxuICAgICAgICAgICAgICB0eXBlID0gZGF0YS50eXBlLFxuICAgICAgICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlKHZhbHVlKTtcblxuICAgICAgICAgIGlmICh0eXBlID09IExBWllfTUFQX0ZMQUcpIHtcbiAgICAgICAgICAgIHZhbHVlID0gY29tcHV0ZWQ7XG4gICAgICAgICAgfSBlbHNlIGlmICghY29tcHV0ZWQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlID09IExBWllfRklMVEVSX0ZMQUcpIHtcbiAgICAgICAgICAgICAgY29udGludWUgb3V0ZXI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBicmVhayBvdXRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0W3Jlc0luZGV4KytdID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSBgTGF6eVdyYXBwZXJgIGlzIGFuIGluc3RhbmNlIG9mIGBiYXNlTG9kYXNoYC5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUgPSBiYXNlQ3JlYXRlKGJhc2VMb2Rhc2gucHJvdG90eXBlKTtcbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBMYXp5V3JhcHBlcjtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBoYXNoIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQGNvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2VudHJpZXNdIFRoZSBrZXktdmFsdWUgcGFpcnMgdG8gY2FjaGUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gSGFzaChlbnRyaWVzKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgICAgICB0aGlzLnNldChlbnRyeVswXSwgZW50cnlbMV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIGhhc2guXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGNsZWFyXG4gICAgICogQG1lbWJlck9mIEhhc2hcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYXNoQ2xlYXIoKSB7XG4gICAgICB0aGlzLl9fZGF0YV9fID0gbmF0aXZlQ3JlYXRlID8gbmF0aXZlQ3JlYXRlKG51bGwpIDoge307XG4gICAgICB0aGlzLnNpemUgPSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBoYXNoLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBkZWxldGVcbiAgICAgKiBAbWVtYmVyT2YgSGFzaFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBoYXNoIFRoZSBoYXNoIHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGVudHJ5IHdhcyByZW1vdmVkLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGFzaERlbGV0ZShrZXkpIHtcbiAgICAgIHZhciByZXN1bHQgPSB0aGlzLmhhcyhrZXkpICYmIGRlbGV0ZSB0aGlzLl9fZGF0YV9fW2tleV07XG4gICAgICB0aGlzLnNpemUgLT0gcmVzdWx0ID8gMSA6IDA7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGhhc2ggdmFsdWUgZm9yIGBrZXlgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBnZXRcbiAgICAgKiBAbWVtYmVyT2YgSGFzaFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBlbnRyeSB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYXNoR2V0KGtleSkge1xuICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICAgICAgaWYgKG5hdGl2ZUNyZWF0ZSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gZGF0YVtrZXldO1xuICAgICAgICByZXR1cm4gcmVzdWx0ID09PSBIQVNIX1VOREVGSU5FRCA/IHVuZGVmaW5lZCA6IHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsIGtleSkgPyBkYXRhW2tleV0gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGEgaGFzaCB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBoYXNcbiAgICAgKiBAbWVtYmVyT2YgSGFzaFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYXNoSGFzKGtleSkge1xuICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICAgICAgcmV0dXJuIG5hdGl2ZUNyZWF0ZSA/IChkYXRhW2tleV0gIT09IHVuZGVmaW5lZCkgOiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsIGtleSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgaGFzaCBga2V5YCB0byBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBzZXRcbiAgICAgKiBAbWVtYmVyT2YgSGFzaFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBoYXNoIGluc3RhbmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGhhc2hTZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICAgICAgdGhpcy5zaXplICs9IHRoaXMuaGFzKGtleSkgPyAwIDogMTtcbiAgICAgIGRhdGFba2V5XSA9IChuYXRpdmVDcmVhdGUgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCkgPyBIQVNIX1VOREVGSU5FRCA6IHZhbHVlO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gQWRkIG1ldGhvZHMgdG8gYEhhc2hgLlxuICAgIEhhc2gucHJvdG90eXBlLmNsZWFyID0gaGFzaENsZWFyO1xuICAgIEhhc2gucHJvdG90eXBlWydkZWxldGUnXSA9IGhhc2hEZWxldGU7XG4gICAgSGFzaC5wcm90b3R5cGUuZ2V0ID0gaGFzaEdldDtcbiAgICBIYXNoLnByb3RvdHlwZS5oYXMgPSBoYXNoSGFzO1xuICAgIEhhc2gucHJvdG90eXBlLnNldCA9IGhhc2hTZXQ7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGxpc3QgY2FjaGUgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBMaXN0Q2FjaGUoZW50cmllcykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gZW50cmllcyA9PSBudWxsID8gMCA6IGVudHJpZXMubGVuZ3RoO1xuXG4gICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgZW50cnkgPSBlbnRyaWVzW2luZGV4XTtcbiAgICAgICAgdGhpcy5zZXQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGFsbCBrZXktdmFsdWUgZW50cmllcyBmcm9tIHRoZSBsaXN0IGNhY2hlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBjbGVhclxuICAgICAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBsaXN0Q2FjaGVDbGVhcigpIHtcbiAgICAgIHRoaXMuX19kYXRhX18gPSBbXTtcbiAgICAgIHRoaXMuc2l6ZSA9IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIGxpc3QgY2FjaGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGRlbGV0ZVxuICAgICAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGVudHJ5IHdhcyByZW1vdmVkLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGlzdENhY2hlRGVsZXRlKGtleSkge1xuICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fLFxuICAgICAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIGxhc3RJbmRleCA9IGRhdGEubGVuZ3RoIC0gMTtcbiAgICAgIGlmIChpbmRleCA9PSBsYXN0SW5kZXgpIHtcbiAgICAgICAgZGF0YS5wb3AoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNwbGljZS5jYWxsKGRhdGEsIGluZGV4LCAxKTtcbiAgICAgIH1cbiAgICAgIC0tdGhpcy5zaXplO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbGlzdCBjYWNoZSB2YWx1ZSBmb3IgYGtleWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGdldFxuICAgICAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGlzdENhY2hlR2V0KGtleSkge1xuICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fLFxuICAgICAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgICAgIHJldHVybiBpbmRleCA8IDAgPyB1bmRlZmluZWQgOiBkYXRhW2luZGV4XVsxXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYSBsaXN0IGNhY2hlIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGhhc1xuICAgICAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGlzdENhY2hlSGFzKGtleSkge1xuICAgICAgcmV0dXJuIGFzc29jSW5kZXhPZih0aGlzLl9fZGF0YV9fLCBrZXkpID4gLTE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgbGlzdCBjYWNoZSBga2V5YCB0byBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBzZXRcbiAgICAgKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGxpc3QgY2FjaGUgaW5zdGFuY2UuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGlzdENhY2hlU2V0KGtleSwgdmFsdWUpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgICAgICBpbmRleCA9IGFzc29jSW5kZXhPZihkYXRhLCBrZXkpO1xuXG4gICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgICsrdGhpcy5zaXplO1xuICAgICAgICBkYXRhLnB1c2goW2tleSwgdmFsdWVdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdGFbaW5kZXhdWzFdID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvLyBBZGQgbWV0aG9kcyB0byBgTGlzdENhY2hlYC5cbiAgICBMaXN0Q2FjaGUucHJvdG90eXBlLmNsZWFyID0gbGlzdENhY2hlQ2xlYXI7XG4gICAgTGlzdENhY2hlLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBsaXN0Q2FjaGVEZWxldGU7XG4gICAgTGlzdENhY2hlLnByb3RvdHlwZS5nZXQgPSBsaXN0Q2FjaGVHZXQ7XG4gICAgTGlzdENhY2hlLnByb3RvdHlwZS5oYXMgPSBsaXN0Q2FjaGVIYXM7XG4gICAgTGlzdENhY2hlLnByb3RvdHlwZS5zZXQgPSBsaXN0Q2FjaGVTZXQ7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbWFwIGNhY2hlIG9iamVjdCB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBjb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIE1hcENhY2hlKGVudHJpZXMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA/IDAgOiBlbnRyaWVzLmxlbmd0aDtcblxuICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gZW50cmllc1tpbmRleF07XG4gICAgICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgbWFwLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBjbGVhclxuICAgICAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hcENhY2hlQ2xlYXIoKSB7XG4gICAgICB0aGlzLnNpemUgPSAwO1xuICAgICAgdGhpcy5fX2RhdGFfXyA9IHtcbiAgICAgICAgJ2hhc2gnOiBuZXcgSGFzaCxcbiAgICAgICAgJ21hcCc6IG5ldyAoTWFwIHx8IExpc3RDYWNoZSksXG4gICAgICAgICdzdHJpbmcnOiBuZXcgSGFzaFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgbWFwLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBkZWxldGVcbiAgICAgKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGVudHJ5IHdhcyByZW1vdmVkLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWFwQ2FjaGVEZWxldGUoa2V5KSB7XG4gICAgICB2YXIgcmVzdWx0ID0gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpWydkZWxldGUnXShrZXkpO1xuICAgICAgdGhpcy5zaXplIC09IHJlc3VsdCA/IDEgOiAwO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBtYXAgdmFsdWUgZm9yIGBrZXlgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBnZXRcbiAgICAgKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWFwQ2FjaGVHZXQoa2V5KSB7XG4gICAgICByZXR1cm4gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmdldChrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBhIG1hcCB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBoYXNcbiAgICAgKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWFwQ2FjaGVIYXMoa2V5KSB7XG4gICAgICByZXR1cm4gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmhhcyhrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIG1hcCBga2V5YCB0byBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBzZXRcbiAgICAgKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHNldC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbWFwIGNhY2hlIGluc3RhbmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hcENhY2hlU2V0KGtleSwgdmFsdWUpIHtcbiAgICAgIHZhciBkYXRhID0gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLFxuICAgICAgICAgIHNpemUgPSBkYXRhLnNpemU7XG5cbiAgICAgIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgdGhpcy5zaXplICs9IGRhdGEuc2l6ZSA9PSBzaXplID8gMCA6IDE7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvLyBBZGQgbWV0aG9kcyB0byBgTWFwQ2FjaGVgLlxuICAgIE1hcENhY2hlLnByb3RvdHlwZS5jbGVhciA9IG1hcENhY2hlQ2xlYXI7XG4gICAgTWFwQ2FjaGUucHJvdG90eXBlWydkZWxldGUnXSA9IG1hcENhY2hlRGVsZXRlO1xuICAgIE1hcENhY2hlLnByb3RvdHlwZS5nZXQgPSBtYXBDYWNoZUdldDtcbiAgICBNYXBDYWNoZS5wcm90b3R5cGUuaGFzID0gbWFwQ2FjaGVIYXM7XG4gICAgTWFwQ2FjaGUucHJvdG90eXBlLnNldCA9IG1hcENhY2hlU2V0O1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IGNhY2hlIG9iamVjdCB0byBzdG9yZSB1bmlxdWUgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbdmFsdWVzXSBUaGUgdmFsdWVzIHRvIGNhY2hlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIFNldENhY2hlKHZhbHVlcykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gdmFsdWVzID09IG51bGwgPyAwIDogdmFsdWVzLmxlbmd0aDtcblxuICAgICAgdGhpcy5fX2RhdGFfXyA9IG5ldyBNYXBDYWNoZTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuYWRkKHZhbHVlc1tpbmRleF0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgYHZhbHVlYCB0byB0aGUgYXJyYXkgY2FjaGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGFkZFxuICAgICAqIEBtZW1iZXJPZiBTZXRDYWNoZVxuICAgICAqIEBhbGlhcyBwdXNoXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2FjaGUuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2FjaGUgaW5zdGFuY2UuXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2V0Q2FjaGVBZGQodmFsdWUpIHtcbiAgICAgIHRoaXMuX19kYXRhX18uc2V0KHZhbHVlLCBIQVNIX1VOREVGSU5FRCk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBpbiB0aGUgYXJyYXkgY2FjaGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGhhc1xuICAgICAqIEBtZW1iZXJPZiBTZXRDYWNoZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBmb3VuZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNldENhY2hlSGFzKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModmFsdWUpO1xuICAgIH1cblxuICAgIC8vIEFkZCBtZXRob2RzIHRvIGBTZXRDYWNoZWAuXG4gICAgU2V0Q2FjaGUucHJvdG90eXBlLmFkZCA9IFNldENhY2hlLnByb3RvdHlwZS5wdXNoID0gc2V0Q2FjaGVBZGQ7XG4gICAgU2V0Q2FjaGUucHJvdG90eXBlLmhhcyA9IHNldENhY2hlSGFzO1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHN0YWNrIGNhY2hlIG9iamVjdCB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBjb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIFN0YWNrKGVudHJpZXMpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyA9IG5ldyBMaXN0Q2FjaGUoZW50cmllcyk7XG4gICAgICB0aGlzLnNpemUgPSBkYXRhLnNpemU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgc3RhY2suXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGNsZWFyXG4gICAgICogQG1lbWJlck9mIFN0YWNrXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3RhY2tDbGVhcigpIHtcbiAgICAgIHRoaXMuX19kYXRhX18gPSBuZXcgTGlzdENhY2hlO1xuICAgICAgdGhpcy5zaXplID0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgc3RhY2suXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGRlbGV0ZVxuICAgICAqIEBtZW1iZXJPZiBTdGFja1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdGFja0RlbGV0ZShrZXkpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgICAgICByZXN1bHQgPSBkYXRhWydkZWxldGUnXShrZXkpO1xuXG4gICAgICB0aGlzLnNpemUgPSBkYXRhLnNpemU7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHN0YWNrIHZhbHVlIGZvciBga2V5YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgZ2V0XG4gICAgICogQG1lbWJlck9mIFN0YWNrXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0YWNrR2V0KGtleSkge1xuICAgICAgcmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KGtleSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGEgc3RhY2sgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgaGFzXG4gICAgICogQG1lbWJlck9mIFN0YWNrXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0YWNrSGFzKGtleSkge1xuICAgICAgcmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKGtleSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgc3RhY2sgYGtleWAgdG8gYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgc2V0XG4gICAgICogQG1lbWJlck9mIFN0YWNrXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIHN0YWNrIGNhY2hlIGluc3RhbmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0YWNrU2V0KGtleSwgdmFsdWUpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgICAgIGlmIChkYXRhIGluc3RhbmNlb2YgTGlzdENhY2hlKSB7XG4gICAgICAgIHZhciBwYWlycyA9IGRhdGEuX19kYXRhX187XG4gICAgICAgIGlmICghTWFwIHx8IChwYWlycy5sZW5ndGggPCBMQVJHRV9BUlJBWV9TSVpFIC0gMSkpIHtcbiAgICAgICAgICBwYWlycy5wdXNoKFtrZXksIHZhbHVlXSk7XG4gICAgICAgICAgdGhpcy5zaXplID0gKytkYXRhLnNpemU7XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgZGF0YSA9IHRoaXMuX19kYXRhX18gPSBuZXcgTWFwQ2FjaGUocGFpcnMpO1xuICAgICAgfVxuICAgICAgZGF0YS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICB0aGlzLnNpemUgPSBkYXRhLnNpemU7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvLyBBZGQgbWV0aG9kcyB0byBgU3RhY2tgLlxuICAgIFN0YWNrLnByb3RvdHlwZS5jbGVhciA9IHN0YWNrQ2xlYXI7XG4gICAgU3RhY2sucHJvdG90eXBlWydkZWxldGUnXSA9IHN0YWNrRGVsZXRlO1xuICAgIFN0YWNrLnByb3RvdHlwZS5nZXQgPSBzdGFja0dldDtcbiAgICBTdGFjay5wcm90b3R5cGUuaGFzID0gc3RhY2tIYXM7XG4gICAgU3RhY2sucHJvdG90eXBlLnNldCA9IHN0YWNrU2V0O1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiB0aGUgYXJyYXktbGlrZSBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGluaGVyaXRlZCBTcGVjaWZ5IHJldHVybmluZyBpbmhlcml0ZWQgcHJvcGVydHkgbmFtZXMuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhcnJheUxpa2VLZXlzKHZhbHVlLCBpbmhlcml0ZWQpIHtcbiAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkodmFsdWUpLFxuICAgICAgICAgIGlzQXJnID0gIWlzQXJyICYmIGlzQXJndW1lbnRzKHZhbHVlKSxcbiAgICAgICAgICBpc0J1ZmYgPSAhaXNBcnIgJiYgIWlzQXJnICYmIGlzQnVmZmVyKHZhbHVlKSxcbiAgICAgICAgICBpc1R5cGUgPSAhaXNBcnIgJiYgIWlzQXJnICYmICFpc0J1ZmYgJiYgaXNUeXBlZEFycmF5KHZhbHVlKSxcbiAgICAgICAgICBza2lwSW5kZXhlcyA9IGlzQXJyIHx8IGlzQXJnIHx8IGlzQnVmZiB8fCBpc1R5cGUsXG4gICAgICAgICAgcmVzdWx0ID0gc2tpcEluZGV4ZXMgPyBiYXNlVGltZXModmFsdWUubGVuZ3RoLCBTdHJpbmcpIDogW10sXG4gICAgICAgICAgbGVuZ3RoID0gcmVzdWx0Lmxlbmd0aDtcblxuICAgICAgZm9yICh2YXIga2V5IGluIHZhbHVlKSB7XG4gICAgICAgIGlmICgoaW5oZXJpdGVkIHx8IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGtleSkpICYmXG4gICAgICAgICAgICAhKHNraXBJbmRleGVzICYmIChcbiAgICAgICAgICAgICAgIC8vIFNhZmFyaSA5IGhhcyBlbnVtZXJhYmxlIGBhcmd1bWVudHMubGVuZ3RoYCBpbiBzdHJpY3QgbW9kZS5cbiAgICAgICAgICAgICAgIGtleSA9PSAnbGVuZ3RoJyB8fFxuICAgICAgICAgICAgICAgLy8gTm9kZS5qcyAwLjEwIGhhcyBlbnVtZXJhYmxlIG5vbi1pbmRleCBwcm9wZXJ0aWVzIG9uIGJ1ZmZlcnMuXG4gICAgICAgICAgICAgICAoaXNCdWZmICYmIChrZXkgPT0gJ29mZnNldCcgfHwga2V5ID09ICdwYXJlbnQnKSkgfHxcbiAgICAgICAgICAgICAgIC8vIFBoYW50b21KUyAyIGhhcyBlbnVtZXJhYmxlIG5vbi1pbmRleCBwcm9wZXJ0aWVzIG9uIHR5cGVkIGFycmF5cy5cbiAgICAgICAgICAgICAgIChpc1R5cGUgJiYgKGtleSA9PSAnYnVmZmVyJyB8fCBrZXkgPT0gJ2J5dGVMZW5ndGgnIHx8IGtleSA9PSAnYnl0ZU9mZnNldCcpKSB8fFxuICAgICAgICAgICAgICAgLy8gU2tpcCBpbmRleCBwcm9wZXJ0aWVzLlxuICAgICAgICAgICAgICAgaXNJbmRleChrZXksIGxlbmd0aClcbiAgICAgICAgICAgICkpKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uc2FtcGxlYCBmb3IgYXJyYXlzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2FtcGxlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByYW5kb20gZWxlbWVudC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhcnJheVNhbXBsZShhcnJheSkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgIHJldHVybiBsZW5ndGggPyBhcnJheVtiYXNlUmFuZG9tKDAsIGxlbmd0aCAtIDEpXSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uc2FtcGxlU2l6ZWAgZm9yIGFycmF5cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNhbXBsZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIHNhbXBsZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHJhbmRvbSBlbGVtZW50cy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhcnJheVNhbXBsZVNpemUoYXJyYXksIG4pIHtcbiAgICAgIHJldHVybiBzaHVmZmxlU2VsZihjb3B5QXJyYXkoYXJyYXkpLCBiYXNlQ2xhbXAobiwgMCwgYXJyYXkubGVuZ3RoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLnNodWZmbGVgIGZvciBhcnJheXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzaHVmZmxlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHNodWZmbGVkIGFycmF5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFycmF5U2h1ZmZsZShhcnJheSkge1xuICAgICAgcmV0dXJuIHNodWZmbGVTZWxmKGNvcHlBcnJheShhcnJheSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgYXNzaWduVmFsdWVgIGV4Y2VwdCB0aGF0IGl0IGRvZXNuJ3QgYXNzaWduXG4gICAgICogYHVuZGVmaW5lZGAgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICAgICAgaWYgKCh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmICFlcShvYmplY3Rba2V5XSwgdmFsdWUpKSB8fFxuICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpKSB7XG4gICAgICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFzc2lnbnMgYHZhbHVlYCB0byBga2V5YCBvZiBgb2JqZWN0YCBpZiB0aGUgZXhpc3RpbmcgdmFsdWUgaXMgbm90IGVxdWl2YWxlbnRcbiAgICAgKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gICAgICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgICAgIGlmICghKGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpICYmIGVxKG9ialZhbHVlLCB2YWx1ZSkpIHx8XG4gICAgICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgIShrZXkgaW4gb2JqZWN0KSkpIHtcbiAgICAgICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgaW5kZXggYXQgd2hpY2ggdGhlIGBrZXlgIGlzIGZvdW5kIGluIGBhcnJheWAgb2Yga2V5LXZhbHVlIHBhaXJzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IGtleSBUaGUga2V5IHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhc3NvY0luZGV4T2YoYXJyYXksIGtleSkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICBpZiAoZXEoYXJyYXlbbGVuZ3RoXVswXSwga2V5KSkge1xuICAgICAgICAgIHJldHVybiBsZW5ndGg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZ2dyZWdhdGVzIGVsZW1lbnRzIG9mIGBjb2xsZWN0aW9uYCBvbiBgYWNjdW11bGF0b3JgIHdpdGgga2V5cyB0cmFuc2Zvcm1lZFxuICAgICAqIGJ5IGBpdGVyYXRlZWAgYW5kIHZhbHVlcyBzZXQgYnkgYHNldHRlcmAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzZXR0ZXIgVGhlIGZ1bmN0aW9uIHRvIHNldCBgYWNjdW11bGF0b3JgIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgaXRlcmF0ZWUgdG8gdHJhbnNmb3JtIGtleXMuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGFjY3VtdWxhdG9yIFRoZSBpbml0aWFsIGFnZ3JlZ2F0ZWQgb2JqZWN0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgYWNjdW11bGF0b3JgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VBZ2dyZWdhdG9yKGNvbGxlY3Rpb24sIHNldHRlciwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yKSB7XG4gICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKSB7XG4gICAgICAgIHNldHRlcihhY2N1bXVsYXRvciwgdmFsdWUsIGl0ZXJhdGVlKHZhbHVlKSwgY29sbGVjdGlvbik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5hc3NpZ25gIHdpdGhvdXQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc291cmNlc1xuICAgICAqIG9yIGBjdXN0b21pemVyYCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUFzc2lnbihvYmplY3QsIHNvdXJjZSkge1xuICAgICAgcmV0dXJuIG9iamVjdCAmJiBjb3B5T2JqZWN0KHNvdXJjZSwga2V5cyhzb3VyY2UpLCBvYmplY3QpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmFzc2lnbkluYCB3aXRob3V0IHN1cHBvcnQgZm9yIG11bHRpcGxlIHNvdXJjZXNcbiAgICAgKiBvciBgY3VzdG9taXplcmAgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VBc3NpZ25JbihvYmplY3QsIHNvdXJjZSkge1xuICAgICAgcmV0dXJuIG9iamVjdCAmJiBjb3B5T2JqZWN0KHNvdXJjZSwga2V5c0luKHNvdXJjZSksIG9iamVjdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGFzc2lnblZhbHVlYCBhbmQgYGFzc2lnbk1lcmdlVmFsdWVgIHdpdGhvdXRcbiAgICAgKiB2YWx1ZSBjaGVja3MuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYXNzaWduLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgICAgIGlmIChrZXkgPT0gJ19fcHJvdG9fXycgJiYgZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHtcbiAgICAgICAgICAnY29uZmlndXJhYmxlJzogdHJ1ZSxcbiAgICAgICAgICAnZW51bWVyYWJsZSc6IHRydWUsXG4gICAgICAgICAgJ3ZhbHVlJzogdmFsdWUsXG4gICAgICAgICAgJ3dyaXRhYmxlJzogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9iamVjdFtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uYXRgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaW5kaXZpZHVhbCBwYXRocy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRocyBUaGUgcHJvcGVydHkgcGF0aHMgdG8gcGljay5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHBpY2tlZCBlbGVtZW50cy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlQXQob2JqZWN0LCBwYXRocykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gcGF0aHMubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCksXG4gICAgICAgICAgc2tpcCA9IG9iamVjdCA9PSBudWxsO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICByZXN1bHRbaW5kZXhdID0gc2tpcCA/IHVuZGVmaW5lZCA6IGdldChvYmplY3QsIHBhdGhzW2luZGV4XSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNsYW1wYCB3aGljaCBkb2Vzbid0IGNvZXJjZSBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXIgVGhlIG51bWJlciB0byBjbGFtcC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xvd2VyXSBUaGUgbG93ZXIgYm91bmQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHVwcGVyIFRoZSB1cHBlciBib3VuZC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBjbGFtcGVkIG51bWJlci5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlQ2xhbXAobnVtYmVyLCBsb3dlciwgdXBwZXIpIHtcbiAgICAgIGlmIChudW1iZXIgPT09IG51bWJlcikge1xuICAgICAgICBpZiAodXBwZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG51bWJlciA9IG51bWJlciA8PSB1cHBlciA/IG51bWJlciA6IHVwcGVyO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgbnVtYmVyID0gbnVtYmVyID49IGxvd2VyID8gbnVtYmVyIDogbG93ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudW1iZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY2xvbmVgIGFuZCBgXy5jbG9uZURlZXBgIHdoaWNoIHRyYWNrc1xuICAgICAqIHRyYXZlcnNlZCBvYmplY3RzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuXG4gICAgICogIDEgLSBEZWVwIGNsb25lXG4gICAgICogIDIgLSBGbGF0dGVuIGluaGVyaXRlZCBwcm9wZXJ0aWVzXG4gICAgICogIDQgLSBDbG9uZSBzeW1ib2xzXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY2xvbmluZy5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2tleV0gVGhlIGtleSBvZiBgdmFsdWVgLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgcGFyZW50IG9iamVjdCBvZiBgdmFsdWVgLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgb2JqZWN0cyBhbmQgdGhlaXIgY2xvbmUgY291bnRlcnBhcnRzLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUNsb25lKHZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBrZXksIG9iamVjdCwgc3RhY2spIHtcbiAgICAgIHZhciByZXN1bHQsXG4gICAgICAgICAgaXNEZWVwID0gYml0bWFzayAmIENMT05FX0RFRVBfRkxBRyxcbiAgICAgICAgICBpc0ZsYXQgPSBiaXRtYXNrICYgQ0xPTkVfRkxBVF9GTEFHLFxuICAgICAgICAgIGlzRnVsbCA9IGJpdG1hc2sgJiBDTE9ORV9TWU1CT0xTX0ZMQUc7XG5cbiAgICAgIGlmIChjdXN0b21pemVyKSB7XG4gICAgICAgIHJlc3VsdCA9IG9iamVjdCA/IGN1c3RvbWl6ZXIodmFsdWUsIGtleSwgb2JqZWN0LCBzdGFjaykgOiBjdXN0b21pemVyKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKCFpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgdmFyIGlzQXJyID0gaXNBcnJheSh2YWx1ZSk7XG4gICAgICBpZiAoaXNBcnIpIHtcbiAgICAgICAgcmVzdWx0ID0gaW5pdENsb25lQXJyYXkodmFsdWUpO1xuICAgICAgICBpZiAoIWlzRGVlcCkge1xuICAgICAgICAgIHJldHVybiBjb3B5QXJyYXkodmFsdWUsIHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciB0YWcgPSBnZXRUYWcodmFsdWUpLFxuICAgICAgICAgICAgaXNGdW5jID0gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZztcblxuICAgICAgICBpZiAoaXNCdWZmZXIodmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGNsb25lQnVmZmVyKHZhbHVlLCBpc0RlZXApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YWcgPT0gb2JqZWN0VGFnIHx8IHRhZyA9PSBhcmdzVGFnIHx8IChpc0Z1bmMgJiYgIW9iamVjdCkpIHtcbiAgICAgICAgICByZXN1bHQgPSAoaXNGbGF0IHx8IGlzRnVuYykgPyB7fSA6IGluaXRDbG9uZU9iamVjdCh2YWx1ZSk7XG4gICAgICAgICAgaWYgKCFpc0RlZXApIHtcbiAgICAgICAgICAgIHJldHVybiBpc0ZsYXRcbiAgICAgICAgICAgICAgPyBjb3B5U3ltYm9sc0luKHZhbHVlLCBiYXNlQXNzaWduSW4ocmVzdWx0LCB2YWx1ZSkpXG4gICAgICAgICAgICAgIDogY29weVN5bWJvbHModmFsdWUsIGJhc2VBc3NpZ24ocmVzdWx0LCB2YWx1ZSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIWNsb25lYWJsZVRhZ3NbdGFnXSkge1xuICAgICAgICAgICAgcmV0dXJuIG9iamVjdCA/IHZhbHVlIDoge307XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdCA9IGluaXRDbG9uZUJ5VGFnKHZhbHVlLCB0YWcsIGlzRGVlcCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIENoZWNrIGZvciBjaXJjdWxhciByZWZlcmVuY2VzIGFuZCByZXR1cm4gaXRzIGNvcnJlc3BvbmRpbmcgY2xvbmUuXG4gICAgICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2spO1xuICAgICAgdmFyIHN0YWNrZWQgPSBzdGFjay5nZXQodmFsdWUpO1xuICAgICAgaWYgKHN0YWNrZWQpIHtcbiAgICAgICAgcmV0dXJuIHN0YWNrZWQ7XG4gICAgICB9XG4gICAgICBzdGFjay5zZXQodmFsdWUsIHJlc3VsdCk7XG5cbiAgICAgIGlmIChpc1NldCh2YWx1ZSkpIHtcbiAgICAgICAgdmFsdWUuZm9yRWFjaChmdW5jdGlvbihzdWJWYWx1ZSkge1xuICAgICAgICAgIHJlc3VsdC5hZGQoYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdWJWYWx1ZSwgdmFsdWUsIHN0YWNrKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChpc01hcCh2YWx1ZSkpIHtcbiAgICAgICAgdmFsdWUuZm9yRWFjaChmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgICAgICAgcmVzdWx0LnNldChrZXksIGJhc2VDbG9uZShzdWJWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwga2V5LCB2YWx1ZSwgc3RhY2spKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHZhciBrZXlzRnVuYyA9IGlzRnVsbFxuICAgICAgICA/IChpc0ZsYXQgPyBnZXRBbGxLZXlzSW4gOiBnZXRBbGxLZXlzKVxuICAgICAgICA6IChpc0ZsYXQgPyBrZXlzSW4gOiBrZXlzKTtcblxuICAgICAgdmFyIHByb3BzID0gaXNBcnIgPyB1bmRlZmluZWQgOiBrZXlzRnVuYyh2YWx1ZSk7XG4gICAgICBhcnJheUVhY2gocHJvcHMgfHwgdmFsdWUsIGZ1bmN0aW9uKHN1YlZhbHVlLCBrZXkpIHtcbiAgICAgICAgaWYgKHByb3BzKSB7XG4gICAgICAgICAga2V5ID0gc3ViVmFsdWU7XG4gICAgICAgICAgc3ViVmFsdWUgPSB2YWx1ZVtrZXldO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJlY3Vyc2l2ZWx5IHBvcHVsYXRlIGNsb25lIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAgIGFzc2lnblZhbHVlKHJlc3VsdCwga2V5LCBiYXNlQ2xvbmUoc3ViVmFsdWUsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGtleSwgdmFsdWUsIHN0YWNrKSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY29uZm9ybXNgIHdoaWNoIGRvZXNuJ3QgY2xvbmUgYHNvdXJjZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBwcm9wZXJ0eSBwcmVkaWNhdGVzIHRvIGNvbmZvcm0gdG8uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc3BlYyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlQ29uZm9ybXMoc291cmNlKSB7XG4gICAgICB2YXIgcHJvcHMgPSBrZXlzKHNvdXJjZSk7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBiYXNlQ29uZm9ybXNUbyhvYmplY3QsIHNvdXJjZSwgcHJvcHMpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5jb25mb3Jtc1RvYCB3aGljaCBhY2NlcHRzIGBwcm9wc2AgdG8gY2hlY2suXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBwcm9wZXJ0eSBwcmVkaWNhdGVzIHRvIGNvbmZvcm0gdG8uXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBvYmplY3RgIGNvbmZvcm1zLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUNvbmZvcm1zVG8ob2JqZWN0LCBzb3VyY2UsIHByb3BzKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiAhbGVuZ3RoO1xuICAgICAgfVxuICAgICAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgdmFyIGtleSA9IHByb3BzW2xlbmd0aF0sXG4gICAgICAgICAgICBwcmVkaWNhdGUgPSBzb3VyY2Vba2V5XSxcbiAgICAgICAgICAgIHZhbHVlID0gb2JqZWN0W2tleV07XG5cbiAgICAgICAgaWYgKCh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpIHx8ICFwcmVkaWNhdGUodmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5kZWxheWAgYW5kIGBfLmRlZmVyYCB3aGljaCBhY2NlcHRzIGBhcmdzYFxuICAgICAqIHRvIHByb3ZpZGUgdG8gYGZ1bmNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWxheS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gd2FpdCBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheSBpbnZvY2F0aW9uLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFyZ3MgVGhlIGFyZ3VtZW50cyB0byBwcm92aWRlIHRvIGBmdW5jYC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfE9iamVjdH0gUmV0dXJucyB0aGUgdGltZXIgaWQgb3IgdGltZW91dCBvYmplY3QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZURlbGF5KGZ1bmMsIHdhaXQsIGFyZ3MpIHtcbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBmdW5jLmFwcGx5KHVuZGVmaW5lZCwgYXJncyk7IH0sIHdhaXQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZHMgbGlrZSBgXy5kaWZmZXJlbmNlYCB3aXRob3V0IHN1cHBvcnRcbiAgICAgKiBmb3IgZXhjbHVkaW5nIG11bHRpcGxlIGFycmF5cyBvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byBleGNsdWRlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VEaWZmZXJlbmNlKGFycmF5LCB2YWx1ZXMsIGl0ZXJhdGVlLCBjb21wYXJhdG9yKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBpbmNsdWRlcyA9IGFycmF5SW5jbHVkZXMsXG4gICAgICAgICAgaXNDb21tb24gPSB0cnVlLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBbXSxcbiAgICAgICAgICB2YWx1ZXNMZW5ndGggPSB2YWx1ZXMubGVuZ3RoO1xuXG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKGl0ZXJhdGVlKSB7XG4gICAgICAgIHZhbHVlcyA9IGFycmF5TWFwKHZhbHVlcywgYmFzZVVuYXJ5KGl0ZXJhdGVlKSk7XG4gICAgICB9XG4gICAgICBpZiAoY29tcGFyYXRvcikge1xuICAgICAgICBpbmNsdWRlcyA9IGFycmF5SW5jbHVkZXNXaXRoO1xuICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAodmFsdWVzLmxlbmd0aCA+PSBMQVJHRV9BUlJBWV9TSVpFKSB7XG4gICAgICAgIGluY2x1ZGVzID0gY2FjaGVIYXM7XG4gICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICAgIHZhbHVlcyA9IG5ldyBTZXRDYWNoZSh2YWx1ZXMpO1xuICAgICAgfVxuICAgICAgb3V0ZXI6XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF0sXG4gICAgICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlID09IG51bGwgPyB2YWx1ZSA6IGl0ZXJhdGVlKHZhbHVlKTtcblxuICAgICAgICB2YWx1ZSA9IChjb21wYXJhdG9yIHx8IHZhbHVlICE9PSAwKSA/IHZhbHVlIDogMDtcbiAgICAgICAgaWYgKGlzQ29tbW9uICYmIGNvbXB1dGVkID09PSBjb21wdXRlZCkge1xuICAgICAgICAgIHZhciB2YWx1ZXNJbmRleCA9IHZhbHVlc0xlbmd0aDtcbiAgICAgICAgICB3aGlsZSAodmFsdWVzSW5kZXgtLSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlc1t2YWx1ZXNJbmRleF0gPT09IGNvbXB1dGVkKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlIG91dGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIWluY2x1ZGVzKHZhbHVlcywgY29tcHV0ZWQsIGNvbXBhcmF0b3IpKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZvckVhY2hgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fE9iamVjdH0gUmV0dXJucyBgY29sbGVjdGlvbmAuXG4gICAgICovXG4gICAgdmFyIGJhc2VFYWNoID0gY3JlYXRlQmFzZUVhY2goYmFzZUZvck93bik7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mb3JFYWNoUmlnaHRgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fE9iamVjdH0gUmV0dXJucyBgY29sbGVjdGlvbmAuXG4gICAgICovXG4gICAgdmFyIGJhc2VFYWNoUmlnaHQgPSBjcmVhdGVCYXNlRWFjaChiYXNlRm9yT3duUmlnaHQsIHRydWUpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZXZlcnlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbGwgZWxlbWVudHMgcGFzcyB0aGUgcHJlZGljYXRlIGNoZWNrLFxuICAgICAqICBlbHNlIGBmYWxzZWBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRXZlcnkoY29sbGVjdGlvbiwgcHJlZGljYXRlKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gdHJ1ZTtcbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikge1xuICAgICAgICByZXN1bHQgPSAhIXByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZHMgbGlrZSBgXy5tYXhgIGFuZCBgXy5taW5gIHdoaWNoIGFjY2VwdHMgYVxuICAgICAqIGBjb21wYXJhdG9yYCB0byBkZXRlcm1pbmUgdGhlIGV4dHJlbXVtIHZhbHVlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY29tcGFyYXRvciBUaGUgY29tcGFyYXRvciB1c2VkIHRvIGNvbXBhcmUgdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBleHRyZW11bSB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRXh0cmVtdW0oYXJyYXksIGl0ZXJhdGVlLCBjb21wYXJhdG9yKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICAgIGN1cnJlbnQgPSBpdGVyYXRlZSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnQgIT0gbnVsbCAmJiAoY29tcHV0ZWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/IChjdXJyZW50ID09PSBjdXJyZW50ICYmICFpc1N5bWJvbChjdXJyZW50KSlcbiAgICAgICAgICAgICAgOiBjb21wYXJhdG9yKGN1cnJlbnQsIGNvbXB1dGVkKVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgIHZhciBjb21wdXRlZCA9IGN1cnJlbnQsXG4gICAgICAgICAgICAgIHJlc3VsdCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZpbGxgIHdpdGhvdXQgYW4gaXRlcmF0ZWUgY2FsbCBndWFyZC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGZpbGwuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZmlsbCBgYXJyYXlgIHdpdGguXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtlbmQ9YXJyYXkubGVuZ3RoXSBUaGUgZW5kIHBvc2l0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VGaWxsKGFycmF5LCB2YWx1ZSwgc3RhcnQsIGVuZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgICAgc3RhcnQgPSB0b0ludGVnZXIoc3RhcnQpO1xuICAgICAgaWYgKHN0YXJ0IDwgMCkge1xuICAgICAgICBzdGFydCA9IC1zdGFydCA+IGxlbmd0aCA/IDAgOiAobGVuZ3RoICsgc3RhcnQpO1xuICAgICAgfVxuICAgICAgZW5kID0gKGVuZCA9PT0gdW5kZWZpbmVkIHx8IGVuZCA+IGxlbmd0aCkgPyBsZW5ndGggOiB0b0ludGVnZXIoZW5kKTtcbiAgICAgIGlmIChlbmQgPCAwKSB7XG4gICAgICAgIGVuZCArPSBsZW5ndGg7XG4gICAgICB9XG4gICAgICBlbmQgPSBzdGFydCA+IGVuZCA/IDAgOiB0b0xlbmd0aChlbmQpO1xuICAgICAgd2hpbGUgKHN0YXJ0IDwgZW5kKSB7XG4gICAgICAgIGFycmF5W3N0YXJ0KytdID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZmlsdGVyYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmaWx0ZXJlZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRmlsdGVyKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgICAgYmFzZUVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZsYXR0ZW5gIHdpdGggc3VwcG9ydCBmb3IgcmVzdHJpY3RpbmcgZmxhdHRlbmluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGZsYXR0ZW4uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGRlcHRoIFRoZSBtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtwcmVkaWNhdGU9aXNGbGF0dGVuYWJsZV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc1N0cmljdF0gUmVzdHJpY3QgdG8gdmFsdWVzIHRoYXQgcGFzcyBgcHJlZGljYXRlYCBjaGVja3MuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3Jlc3VsdD1bXV0gVGhlIGluaXRpYWwgcmVzdWx0IHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZsYXR0ZW5lZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRmxhdHRlbihhcnJheSwgZGVwdGgsIHByZWRpY2F0ZSwgaXNTdHJpY3QsIHJlc3VsdCkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgICBwcmVkaWNhdGUgfHwgKHByZWRpY2F0ZSA9IGlzRmxhdHRlbmFibGUpO1xuICAgICAgcmVzdWx0IHx8IChyZXN1bHQgPSBbXSk7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgICAgaWYgKGRlcHRoID4gMCAmJiBwcmVkaWNhdGUodmFsdWUpKSB7XG4gICAgICAgICAgaWYgKGRlcHRoID4gMSkge1xuICAgICAgICAgICAgLy8gUmVjdXJzaXZlbHkgZmxhdHRlbiBhcnJheXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgICAgIGJhc2VGbGF0dGVuKHZhbHVlLCBkZXB0aCAtIDEsIHByZWRpY2F0ZSwgaXNTdHJpY3QsIHJlc3VsdCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFycmF5UHVzaChyZXN1bHQsIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzU3RyaWN0KSB7XG4gICAgICAgICAgcmVzdWx0W3Jlc3VsdC5sZW5ndGhdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGJhc2VGb3JPd25gIHdoaWNoIGl0ZXJhdGVzIG92ZXIgYG9iamVjdGBcbiAgICAgKiBwcm9wZXJ0aWVzIHJldHVybmVkIGJ5IGBrZXlzRnVuY2AgYW5kIGludm9rZXMgYGl0ZXJhdGVlYCBmb3IgZWFjaCBwcm9wZXJ0eS5cbiAgICAgKiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXQgaXRlcmF0aW9uIGVhcmx5IGJ5IGV4cGxpY2l0bHkgcmV0dXJuaW5nIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBrZXlzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBrZXlzIG9mIGBvYmplY3RgLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICovXG4gICAgdmFyIGJhc2VGb3IgPSBjcmVhdGVCYXNlRm9yKCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2UgYGJhc2VGb3JgIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgcHJvcGVydGllc1xuICAgICAqIGluIHRoZSBvcHBvc2l0ZSBvcmRlci5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGtleXNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgb2YgYG9iamVjdGAuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICB2YXIgYmFzZUZvclJpZ2h0ID0gY3JlYXRlQmFzZUZvcih0cnVlKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZvck93bmAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRm9yT3duKG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBvYmplY3QgJiYgYmFzZUZvcihvYmplY3QsIGl0ZXJhdGVlLCBrZXlzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mb3JPd25SaWdodGAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRm9yT3duUmlnaHQob2JqZWN0LCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIG9iamVjdCAmJiBiYXNlRm9yUmlnaHQob2JqZWN0LCBpdGVyYXRlZSwga2V5cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZnVuY3Rpb25zYCB3aGljaCBjcmVhdGVzIGFuIGFycmF5IG9mXG4gICAgICogYG9iamVjdGAgZnVuY3Rpb24gcHJvcGVydHkgbmFtZXMgZmlsdGVyZWQgZnJvbSBgcHJvcHNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgbmFtZXMgdG8gZmlsdGVyLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgZnVuY3Rpb24gbmFtZXMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUZ1bmN0aW9ucyhvYmplY3QsIHByb3BzKSB7XG4gICAgICByZXR1cm4gYXJyYXlGaWx0ZXIocHJvcHMsIGZ1bmN0aW9uKGtleSkge1xuICAgICAgICByZXR1cm4gaXNGdW5jdGlvbihvYmplY3Rba2V5XSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5nZXRgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVmYXVsdCB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXNvbHZlZCB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlR2V0KG9iamVjdCwgcGF0aCkge1xuICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG5cbiAgICAgIHZhciBpbmRleCA9IDAsXG4gICAgICAgICAgbGVuZ3RoID0gcGF0aC5sZW5ndGg7XG5cbiAgICAgIHdoaWxlIChvYmplY3QgIT0gbnVsbCAmJiBpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICBvYmplY3QgPSBvYmplY3RbdG9LZXkocGF0aFtpbmRleCsrXSldO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChpbmRleCAmJiBpbmRleCA9PSBsZW5ndGgpID8gb2JqZWN0IDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBnZXRBbGxLZXlzYCBhbmQgYGdldEFsbEtleXNJbmAgd2hpY2ggdXNlc1xuICAgICAqIGBrZXlzRnVuY2AgYW5kIGBzeW1ib2xzRnVuY2AgdG8gZ2V0IHRoZSBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIGFuZFxuICAgICAqIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBrZXlzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBrZXlzIG9mIGBvYmplY3RgLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHN5bWJvbHNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlR2V0QWxsS2V5cyhvYmplY3QsIGtleXNGdW5jLCBzeW1ib2xzRnVuYykge1xuICAgICAgdmFyIHJlc3VsdCA9IGtleXNGdW5jKG9iamVjdCk7XG4gICAgICByZXR1cm4gaXNBcnJheShvYmplY3QpID8gcmVzdWx0IDogYXJyYXlQdXNoKHJlc3VsdCwgc3ltYm9sc0Z1bmMob2JqZWN0KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGdldFRhZ2Agd2l0aG91dCBmYWxsYmFja3MgZm9yIGJ1Z2d5IGVudmlyb25tZW50cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgYHRvU3RyaW5nVGFnYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlR2V0VGFnKHZhbHVlKSB7XG4gICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZFRhZyA6IG51bGxUYWc7XG4gICAgICB9XG4gICAgICByZXR1cm4gKHN5bVRvU3RyaW5nVGFnICYmIHN5bVRvU3RyaW5nVGFnIGluIE9iamVjdCh2YWx1ZSkpXG4gICAgICAgID8gZ2V0UmF3VGFnKHZhbHVlKVxuICAgICAgICA6IG9iamVjdFRvU3RyaW5nKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5ndGAgd2hpY2ggZG9lc24ndCBjb2VyY2UgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZ3JlYXRlciB0aGFuIGBvdGhlcmAsXG4gICAgICogIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlR3QodmFsdWUsIG90aGVyKSB7XG4gICAgICByZXR1cm4gdmFsdWUgPiBvdGhlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5oYXNgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IGtleSBUaGUga2V5IHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSGFzKG9iamVjdCwga2V5KSB7XG4gICAgICByZXR1cm4gb2JqZWN0ICE9IG51bGwgJiYgaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaGFzSW5gIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IGtleSBUaGUga2V5IHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSGFzSW4ob2JqZWN0LCBrZXkpIHtcbiAgICAgIHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiBrZXkgaW4gT2JqZWN0KG9iamVjdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaW5SYW5nZWAgd2hpY2ggZG9lc24ndCBjb2VyY2UgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyIFRoZSBudW1iZXIgdG8gY2hlY2suXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0IFRoZSBzdGFydCBvZiB0aGUgcmFuZ2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGVuZCBUaGUgZW5kIG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYG51bWJlcmAgaXMgaW4gdGhlIHJhbmdlLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUluUmFuZ2UobnVtYmVyLCBzdGFydCwgZW5kKSB7XG4gICAgICByZXR1cm4gbnVtYmVyID49IG5hdGl2ZU1pbihzdGFydCwgZW5kKSAmJiBudW1iZXIgPCBuYXRpdmVNYXgoc3RhcnQsIGVuZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgbWV0aG9kcyBsaWtlIGBfLmludGVyc2VjdGlvbmAsIHdpdGhvdXQgc3VwcG9ydFxuICAgICAqIGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLCB0aGF0IGFjY2VwdHMgYW4gYXJyYXkgb2YgYXJyYXlzIHRvIGluc3BlY3QuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5cyBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBzaGFyZWQgdmFsdWVzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJbnRlcnNlY3Rpb24oYXJyYXlzLCBpdGVyYXRlZSwgY29tcGFyYXRvcikge1xuICAgICAgdmFyIGluY2x1ZGVzID0gY29tcGFyYXRvciA/IGFycmF5SW5jbHVkZXNXaXRoIDogYXJyYXlJbmNsdWRlcyxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheXNbMF0ubGVuZ3RoLFxuICAgICAgICAgIG90aExlbmd0aCA9IGFycmF5cy5sZW5ndGgsXG4gICAgICAgICAgb3RoSW5kZXggPSBvdGhMZW5ndGgsXG4gICAgICAgICAgY2FjaGVzID0gQXJyYXkob3RoTGVuZ3RoKSxcbiAgICAgICAgICBtYXhMZW5ndGggPSBJbmZpbml0eSxcbiAgICAgICAgICByZXN1bHQgPSBbXTtcblxuICAgICAgd2hpbGUgKG90aEluZGV4LS0pIHtcbiAgICAgICAgdmFyIGFycmF5ID0gYXJyYXlzW290aEluZGV4XTtcbiAgICAgICAgaWYgKG90aEluZGV4ICYmIGl0ZXJhdGVlKSB7XG4gICAgICAgICAgYXJyYXkgPSBhcnJheU1hcChhcnJheSwgYmFzZVVuYXJ5KGl0ZXJhdGVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgbWF4TGVuZ3RoID0gbmF0aXZlTWluKGFycmF5Lmxlbmd0aCwgbWF4TGVuZ3RoKTtcbiAgICAgICAgY2FjaGVzW290aEluZGV4XSA9ICFjb21wYXJhdG9yICYmIChpdGVyYXRlZSB8fCAobGVuZ3RoID49IDEyMCAmJiBhcnJheS5sZW5ndGggPj0gMTIwKSlcbiAgICAgICAgICA/IG5ldyBTZXRDYWNoZShvdGhJbmRleCAmJiBhcnJheSlcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGFycmF5ID0gYXJyYXlzWzBdO1xuXG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBzZWVuID0gY2FjaGVzWzBdO1xuXG4gICAgICBvdXRlcjpcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoICYmIHJlc3VsdC5sZW5ndGggPCBtYXhMZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICAgICAgY29tcHV0ZWQgPSBpdGVyYXRlZSA/IGl0ZXJhdGVlKHZhbHVlKSA6IHZhbHVlO1xuXG4gICAgICAgIHZhbHVlID0gKGNvbXBhcmF0b3IgfHwgdmFsdWUgIT09IDApID8gdmFsdWUgOiAwO1xuICAgICAgICBpZiAoIShzZWVuXG4gICAgICAgICAgICAgID8gY2FjaGVIYXMoc2VlbiwgY29tcHV0ZWQpXG4gICAgICAgICAgICAgIDogaW5jbHVkZXMocmVzdWx0LCBjb21wdXRlZCwgY29tcGFyYXRvcilcbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICBvdGhJbmRleCA9IG90aExlbmd0aDtcbiAgICAgICAgICB3aGlsZSAoLS1vdGhJbmRleCkge1xuICAgICAgICAgICAgdmFyIGNhY2hlID0gY2FjaGVzW290aEluZGV4XTtcbiAgICAgICAgICAgIGlmICghKGNhY2hlXG4gICAgICAgICAgICAgICAgICA/IGNhY2hlSGFzKGNhY2hlLCBjb21wdXRlZClcbiAgICAgICAgICAgICAgICAgIDogaW5jbHVkZXMoYXJyYXlzW290aEluZGV4XSwgY29tcHV0ZWQsIGNvbXBhcmF0b3IpKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjb250aW51ZSBvdXRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHNlZW4pIHtcbiAgICAgICAgICAgIHNlZW4ucHVzaChjb21wdXRlZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pbnZlcnRgIGFuZCBgXy5pbnZlcnRCeWAgd2hpY2ggaW52ZXJ0c1xuICAgICAqIGBvYmplY3RgIHdpdGggdmFsdWVzIHRyYW5zZm9ybWVkIGJ5IGBpdGVyYXRlZWAgYW5kIHNldCBieSBgc2V0dGVyYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzZXR0ZXIgVGhlIGZ1bmN0aW9uIHRvIHNldCBgYWNjdW11bGF0b3JgIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgaXRlcmF0ZWUgdG8gdHJhbnNmb3JtIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gYWNjdW11bGF0b3IgVGhlIGluaXRpYWwgaW52ZXJ0ZWQgb2JqZWN0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgYWNjdW11bGF0b3JgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJbnZlcnRlcihvYmplY3QsIHNldHRlciwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yKSB7XG4gICAgICBiYXNlRm9yT3duKG9iamVjdCwgZnVuY3Rpb24odmFsdWUsIGtleSwgb2JqZWN0KSB7XG4gICAgICAgIHNldHRlcihhY2N1bXVsYXRvciwgaXRlcmF0ZWUodmFsdWUpLCBrZXksIG9iamVjdCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pbnZva2VgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaW5kaXZpZHVhbFxuICAgICAqIG1ldGhvZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgbWV0aG9kIHRvIGludm9rZS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcmdzIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIHRoZSBtZXRob2Qgd2l0aC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBpbnZva2VkIG1ldGhvZC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSW52b2tlKG9iamVjdCwgcGF0aCwgYXJncykge1xuICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG4gICAgICBvYmplY3QgPSBwYXJlbnQob2JqZWN0LCBwYXRoKTtcbiAgICAgIHZhciBmdW5jID0gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBvYmplY3RbdG9LZXkobGFzdChwYXRoKSldO1xuICAgICAgcmV0dXJuIGZ1bmMgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IGFwcGx5KGZ1bmMsIG9iamVjdCwgYXJncyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNBcmd1bWVudHNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBgYXJndW1lbnRzYCBvYmplY3QsXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUlzQXJndW1lbnRzKHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBhcmdzVGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzQXJyYXlCdWZmZXJgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBhcnJheSBidWZmZXIsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNBcnJheUJ1ZmZlcih2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJyYXlCdWZmZXJUYWc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNEYXRlYCB3aXRob3V0IE5vZGUuanMgb3B0aW1pemF0aW9ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBkYXRlIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJc0RhdGUodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IGRhdGVUYWc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNFcXVhbGAgd2hpY2ggc3VwcG9ydHMgcGFydGlhbCBjb21wYXJpc29uc1xuICAgICAqIGFuZCB0cmFja3MgdHJhdmVyc2VkIG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuXG4gICAgICogIDEgLSBVbm9yZGVyZWQgY29tcGFyaXNvblxuICAgICAqICAyIC0gUGFydGlhbCBjb21wYXJpc29uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtzdGFja10gVHJhY2tzIHRyYXZlcnNlZCBgdmFsdWVgIGFuZCBgb3RoZXJgIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNFcXVhbCh2YWx1ZSwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIHN0YWNrKSB7XG4gICAgICBpZiAodmFsdWUgPT09IG90aGVyKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHZhbHVlID09IG51bGwgfHwgb3RoZXIgPT0gbnVsbCB8fCAoIWlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgIWlzT2JqZWN0TGlrZShvdGhlcikpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSAhPT0gdmFsdWUgJiYgb3RoZXIgIT09IG90aGVyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VJc0VxdWFsRGVlcCh2YWx1ZSwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGJhc2VJc0VxdWFsLCBzdGFjayk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbGAgZm9yIGFycmF5cyBhbmQgb2JqZWN0cyB3aGljaCBwZXJmb3Jtc1xuICAgICAqIGRlZXAgY29tcGFyaXNvbnMgYW5kIHRyYWNrcyB0cmF2ZXJzZWQgb2JqZWN0cyBlbmFibGluZyBvYmplY3RzIHdpdGggY2lyY3VsYXJcbiAgICAgKiByZWZlcmVuY2VzIHRvIGJlIGNvbXBhcmVkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGJhc2VJc0VxdWFsYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGN1c3RvbWl6ZXIgVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpc29ucy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtzdGFja10gVHJhY2tzIHRyYXZlcnNlZCBgb2JqZWN0YCBhbmQgYG90aGVyYCBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJc0VxdWFsRGVlcChvYmplY3QsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKSB7XG4gICAgICB2YXIgb2JqSXNBcnIgPSBpc0FycmF5KG9iamVjdCksXG4gICAgICAgICAgb3RoSXNBcnIgPSBpc0FycmF5KG90aGVyKSxcbiAgICAgICAgICBvYmpUYWcgPSBvYmpJc0FyciA/IGFycmF5VGFnIDogZ2V0VGFnKG9iamVjdCksXG4gICAgICAgICAgb3RoVGFnID0gb3RoSXNBcnIgPyBhcnJheVRhZyA6IGdldFRhZyhvdGhlcik7XG5cbiAgICAgIG9ialRhZyA9IG9ialRhZyA9PSBhcmdzVGFnID8gb2JqZWN0VGFnIDogb2JqVGFnO1xuICAgICAgb3RoVGFnID0gb3RoVGFnID09IGFyZ3NUYWcgPyBvYmplY3RUYWcgOiBvdGhUYWc7XG5cbiAgICAgIHZhciBvYmpJc09iaiA9IG9ialRhZyA9PSBvYmplY3RUYWcsXG4gICAgICAgICAgb3RoSXNPYmogPSBvdGhUYWcgPT0gb2JqZWN0VGFnLFxuICAgICAgICAgIGlzU2FtZVRhZyA9IG9ialRhZyA9PSBvdGhUYWc7XG5cbiAgICAgIGlmIChpc1NhbWVUYWcgJiYgaXNCdWZmZXIob2JqZWN0KSkge1xuICAgICAgICBpZiAoIWlzQnVmZmVyKG90aGVyKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBvYmpJc0FyciA9IHRydWU7XG4gICAgICAgIG9iaklzT2JqID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoaXNTYW1lVGFnICYmICFvYmpJc09iaikge1xuICAgICAgICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2spO1xuICAgICAgICByZXR1cm4gKG9iaklzQXJyIHx8IGlzVHlwZWRBcnJheShvYmplY3QpKVxuICAgICAgICAgID8gZXF1YWxBcnJheXMob2JqZWN0LCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjaylcbiAgICAgICAgICA6IGVxdWFsQnlUYWcob2JqZWN0LCBvdGhlciwgb2JqVGFnLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKTtcbiAgICAgIH1cbiAgICAgIGlmICghKGJpdG1hc2sgJiBDT01QQVJFX1BBUlRJQUxfRkxBRykpIHtcbiAgICAgICAgdmFyIG9iaklzV3JhcHBlZCA9IG9iaklzT2JqICYmIGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCAnX193cmFwcGVkX18nKSxcbiAgICAgICAgICAgIG90aElzV3JhcHBlZCA9IG90aElzT2JqICYmIGhhc093blByb3BlcnR5LmNhbGwob3RoZXIsICdfX3dyYXBwZWRfXycpO1xuXG4gICAgICAgIGlmIChvYmpJc1dyYXBwZWQgfHwgb3RoSXNXcmFwcGVkKSB7XG4gICAgICAgICAgdmFyIG9ialVud3JhcHBlZCA9IG9iaklzV3JhcHBlZCA/IG9iamVjdC52YWx1ZSgpIDogb2JqZWN0LFxuICAgICAgICAgICAgICBvdGhVbndyYXBwZWQgPSBvdGhJc1dyYXBwZWQgPyBvdGhlci52YWx1ZSgpIDogb3RoZXI7XG5cbiAgICAgICAgICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2spO1xuICAgICAgICAgIHJldHVybiBlcXVhbEZ1bmMob2JqVW53cmFwcGVkLCBvdGhVbndyYXBwZWQsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIHN0YWNrKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFpc1NhbWVUYWcpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgc3RhY2sgfHwgKHN0YWNrID0gbmV3IFN0YWNrKTtcbiAgICAgIHJldHVybiBlcXVhbE9iamVjdHMob2JqZWN0LCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjayk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNNYXBgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG1hcCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJc01hcCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgZ2V0VGFnKHZhbHVlKSA9PSBtYXBUYWc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNNYXRjaGAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgdmFsdWVzIHRvIG1hdGNoLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IG1hdGNoRGF0YSBUaGUgcHJvcGVydHkgbmFtZXMsIHZhbHVlcywgYW5kIGNvbXBhcmUgZmxhZ3MgdG8gbWF0Y2guXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBvYmplY3RgIGlzIGEgbWF0Y2gsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNNYXRjaChvYmplY3QsIHNvdXJjZSwgbWF0Y2hEYXRhLCBjdXN0b21pemVyKSB7XG4gICAgICB2YXIgaW5kZXggPSBtYXRjaERhdGEubGVuZ3RoLFxuICAgICAgICAgIGxlbmd0aCA9IGluZGV4LFxuICAgICAgICAgIG5vQ3VzdG9taXplciA9ICFjdXN0b21pemVyO1xuXG4gICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuICFsZW5ndGg7XG4gICAgICB9XG4gICAgICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcbiAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgIHZhciBkYXRhID0gbWF0Y2hEYXRhW2luZGV4XTtcbiAgICAgICAgaWYgKChub0N1c3RvbWl6ZXIgJiYgZGF0YVsyXSlcbiAgICAgICAgICAgICAgPyBkYXRhWzFdICE9PSBvYmplY3RbZGF0YVswXV1cbiAgICAgICAgICAgICAgOiAhKGRhdGFbMF0gaW4gb2JqZWN0KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICBkYXRhID0gbWF0Y2hEYXRhW2luZGV4XTtcbiAgICAgICAgdmFyIGtleSA9IGRhdGFbMF0sXG4gICAgICAgICAgICBvYmpWYWx1ZSA9IG9iamVjdFtrZXldLFxuICAgICAgICAgICAgc3JjVmFsdWUgPSBkYXRhWzFdO1xuXG4gICAgICAgIGlmIChub0N1c3RvbWl6ZXIgJiYgZGF0YVsyXSkge1xuICAgICAgICAgIGlmIChvYmpWYWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIHN0YWNrID0gbmV3IFN0YWNrO1xuICAgICAgICAgIGlmIChjdXN0b21pemVyKSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gY3VzdG9taXplcihvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCEocmVzdWx0ID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IGJhc2VJc0VxdWFsKHNyY1ZhbHVlLCBvYmpWYWx1ZSwgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgfCBDT01QQVJFX1VOT1JERVJFRF9GTEFHLCBjdXN0b21pemVyLCBzdGFjaylcbiAgICAgICAgICAgICAgICA6IHJlc3VsdFxuICAgICAgICAgICAgICApKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc05hdGl2ZWAgd2l0aG91dCBiYWQgc2hpbSBjaGVja3MuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbmF0aXZlIGZ1bmN0aW9uLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUlzTmF0aXZlKHZhbHVlKSB7XG4gICAgICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCBpc01hc2tlZCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIHBhdHRlcm4gPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHJlSXNOYXRpdmUgOiByZUlzSG9zdEN0b3I7XG4gICAgICByZXR1cm4gcGF0dGVybi50ZXN0KHRvU291cmNlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNSZWdFeHBgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHJlZ2V4cCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJc1JlZ0V4cCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gcmVnZXhwVGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzU2V0YCB3aXRob3V0IE5vZGUuanMgb3B0aW1pemF0aW9ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzZXQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNTZXQodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGdldFRhZyh2YWx1ZSkgPT0gc2V0VGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzVHlwZWRBcnJheWAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdHlwZWQgYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNUeXBlZEFycmF5KHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJlxuICAgICAgICBpc0xlbmd0aCh2YWx1ZS5sZW5ndGgpICYmICEhdHlwZWRBcnJheVRhZ3NbYmFzZUdldFRhZyh2YWx1ZSldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLml0ZXJhdGVlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSBbdmFsdWU9Xy5pZGVudGl0eV0gVGhlIHZhbHVlIHRvIGNvbnZlcnQgdG8gYW4gaXRlcmF0ZWUuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBpdGVyYXRlZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXRlcmF0ZWUodmFsdWUpIHtcbiAgICAgIC8vIERvbid0IHN0b3JlIHRoZSBgdHlwZW9mYCByZXN1bHQgaW4gYSB2YXJpYWJsZSB0byBhdm9pZCBhIEpJVCBidWcgaW4gU2FmYXJpIDkuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjAzNCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBpZGVudGl0eTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIGlzQXJyYXkodmFsdWUpXG4gICAgICAgICAgPyBiYXNlTWF0Y2hlc1Byb3BlcnR5KHZhbHVlWzBdLCB2YWx1ZVsxXSlcbiAgICAgICAgICA6IGJhc2VNYXRjaGVzKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c2Agd2hpY2ggZG9lc24ndCB0cmVhdCBzcGFyc2UgYXJyYXlzIGFzIGRlbnNlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlS2V5cyhvYmplY3QpIHtcbiAgICAgIGlmICghaXNQcm90b3R5cGUob2JqZWN0KSkge1xuICAgICAgICByZXR1cm4gbmF0aXZlS2V5cyhvYmplY3QpO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgICAgZm9yICh2YXIga2V5IGluIE9iamVjdChvYmplY3QpKSB7XG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSAmJiBrZXkgIT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c0luYCB3aGljaCBkb2Vzbid0IHRyZWF0IHNwYXJzZSBhcnJheXMgYXMgZGVuc2UuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VLZXlzSW4ob2JqZWN0KSB7XG4gICAgICBpZiAoIWlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgICAgcmV0dXJuIG5hdGl2ZUtleXNJbihvYmplY3QpO1xuICAgICAgfVxuICAgICAgdmFyIGlzUHJvdG8gPSBpc1Byb3RvdHlwZShvYmplY3QpLFxuICAgICAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgICBmb3IgKHZhciBrZXkgaW4gb2JqZWN0KSB7XG4gICAgICAgIGlmICghKGtleSA9PSAnY29uc3RydWN0b3InICYmIChpc1Byb3RvIHx8ICFoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkpKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5sdGAgd2hpY2ggZG9lc24ndCBjb2VyY2UgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgbGVzcyB0aGFuIGBvdGhlcmAsXG4gICAgICogIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTHQodmFsdWUsIG90aGVyKSB7XG4gICAgICByZXR1cm4gdmFsdWUgPCBvdGhlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5tYXBgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIGFycmF5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VNYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIHJlc3VsdCA9IGlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pID8gQXJyYXkoY29sbGVjdGlvbi5sZW5ndGgpIDogW107XG5cbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pIHtcbiAgICAgICAgcmVzdWx0WysraW5kZXhdID0gaXRlcmF0ZWUodmFsdWUsIGtleSwgY29sbGVjdGlvbik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWF0Y2hlc2Agd2hpY2ggZG9lc24ndCBjbG9uZSBgc291cmNlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VNYXRjaGVzKHNvdXJjZSkge1xuICAgICAgdmFyIG1hdGNoRGF0YSA9IGdldE1hdGNoRGF0YShzb3VyY2UpO1xuICAgICAgaWYgKG1hdGNoRGF0YS5sZW5ndGggPT0gMSAmJiBtYXRjaERhdGFbMF1bMl0pIHtcbiAgICAgICAgcmV0dXJuIG1hdGNoZXNTdHJpY3RDb21wYXJhYmxlKG1hdGNoRGF0YVswXVswXSwgbWF0Y2hEYXRhWzBdWzFdKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdCA9PT0gc291cmNlIHx8IGJhc2VJc01hdGNoKG9iamVjdCwgc291cmNlLCBtYXRjaERhdGEpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5tYXRjaGVzUHJvcGVydHlgIHdoaWNoIGRvZXNuJ3QgY2xvbmUgYHNyY1ZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICAgKiBAcGFyYW0geyp9IHNyY1ZhbHVlIFRoZSB2YWx1ZSB0byBtYXRjaC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VNYXRjaGVzUHJvcGVydHkocGF0aCwgc3JjVmFsdWUpIHtcbiAgICAgIGlmIChpc0tleShwYXRoKSAmJiBpc1N0cmljdENvbXBhcmFibGUoc3JjVmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBtYXRjaGVzU3RyaWN0Q29tcGFyYWJsZSh0b0tleShwYXRoKSwgc3JjVmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICB2YXIgb2JqVmFsdWUgPSBnZXQob2JqZWN0LCBwYXRoKTtcbiAgICAgICAgcmV0dXJuIChvYmpWYWx1ZSA9PT0gdW5kZWZpbmVkICYmIG9ialZhbHVlID09PSBzcmNWYWx1ZSlcbiAgICAgICAgICA/IGhhc0luKG9iamVjdCwgcGF0aClcbiAgICAgICAgICA6IGJhc2VJc0VxdWFsKHNyY1ZhbHVlLCBvYmpWYWx1ZSwgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgfCBDT01QQVJFX1VOT1JERVJFRF9GTEFHKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWVyZ2VgIHdpdGhvdXQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc291cmNlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHNyY0luZGV4IFRoZSBpbmRleCBvZiBgc291cmNlYC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBtZXJnZWQgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgc291cmNlIHZhbHVlcyBhbmQgdGhlaXIgbWVyZ2VkXG4gICAgICogIGNvdW50ZXJwYXJ0cy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTWVyZ2Uob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4LCBjdXN0b21pemVyLCBzdGFjaykge1xuICAgICAgaWYgKG9iamVjdCA9PT0gc291cmNlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGJhc2VGb3Ioc291cmNlLCBmdW5jdGlvbihzcmNWYWx1ZSwga2V5KSB7XG4gICAgICAgIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjayk7XG4gICAgICAgIGlmIChpc09iamVjdChzcmNWYWx1ZSkpIHtcbiAgICAgICAgICBiYXNlTWVyZ2VEZWVwKG9iamVjdCwgc291cmNlLCBrZXksIHNyY0luZGV4LCBiYXNlTWVyZ2UsIGN1c3RvbWl6ZXIsIHN0YWNrKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB2YXIgbmV3VmFsdWUgPSBjdXN0b21pemVyXG4gICAgICAgICAgICA/IGN1c3RvbWl6ZXIoc2FmZUdldChvYmplY3QsIGtleSksIHNyY1ZhbHVlLCAoa2V5ICsgJycpLCBvYmplY3QsIHNvdXJjZSwgc3RhY2spXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgIGlmIChuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9IHNyY1ZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sIGtleXNJbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlTWVyZ2VgIGZvciBhcnJheXMgYW5kIG9iamVjdHMgd2hpY2ggcGVyZm9ybXNcbiAgICAgKiBkZWVwIG1lcmdlcyBhbmQgdHJhY2tzIHRyYXZlcnNlZCBvYmplY3RzIGVuYWJsaW5nIG9iamVjdHMgd2l0aCBjaXJjdWxhclxuICAgICAqIHJlZmVyZW5jZXMgdG8gYmUgbWVyZ2VkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIG1lcmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzcmNJbmRleCBUaGUgaW5kZXggb2YgYHNvdXJjZWAuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gbWVyZ2VGdW5jIFRoZSBmdW5jdGlvbiB0byBtZXJnZSB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgc291cmNlIHZhbHVlcyBhbmQgdGhlaXIgbWVyZ2VkXG4gICAgICogIGNvdW50ZXJwYXJ0cy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTWVyZ2VEZWVwKG9iamVjdCwgc291cmNlLCBrZXksIHNyY0luZGV4LCBtZXJnZUZ1bmMsIGN1c3RvbWl6ZXIsIHN0YWNrKSB7XG4gICAgICB2YXIgb2JqVmFsdWUgPSBzYWZlR2V0KG9iamVjdCwga2V5KSxcbiAgICAgICAgICBzcmNWYWx1ZSA9IHNhZmVHZXQoc291cmNlLCBrZXkpLFxuICAgICAgICAgIHN0YWNrZWQgPSBzdGFjay5nZXQoc3JjVmFsdWUpO1xuXG4gICAgICBpZiAoc3RhY2tlZCkge1xuICAgICAgICBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCBzdGFja2VkKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplclxuICAgICAgICA/IGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlLCAoa2V5ICsgJycpLCBvYmplY3QsIHNvdXJjZSwgc3RhY2spXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICB2YXIgaXNDb21tb24gPSBuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkO1xuXG4gICAgICBpZiAoaXNDb21tb24pIHtcbiAgICAgICAgdmFyIGlzQXJyID0gaXNBcnJheShzcmNWYWx1ZSksXG4gICAgICAgICAgICBpc0J1ZmYgPSAhaXNBcnIgJiYgaXNCdWZmZXIoc3JjVmFsdWUpLFxuICAgICAgICAgICAgaXNUeXBlZCA9ICFpc0FyciAmJiAhaXNCdWZmICYmIGlzVHlwZWRBcnJheShzcmNWYWx1ZSk7XG5cbiAgICAgICAgbmV3VmFsdWUgPSBzcmNWYWx1ZTtcbiAgICAgICAgaWYgKGlzQXJyIHx8IGlzQnVmZiB8fCBpc1R5cGVkKSB7XG4gICAgICAgICAgaWYgKGlzQXJyYXkob2JqVmFsdWUpKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9IG9ialZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIGlmIChpc0FycmF5TGlrZU9iamVjdChvYmpWYWx1ZSkpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gY29weUFycmF5KG9ialZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSBpZiAoaXNCdWZmKSB7XG4gICAgICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICAgICAgbmV3VmFsdWUgPSBjbG9uZUJ1ZmZlcihzcmNWYWx1ZSwgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2UgaWYgKGlzVHlwZWQpIHtcbiAgICAgICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9IGNsb25lVHlwZWRBcnJheShzcmNWYWx1ZSwgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSBbXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNQbGFpbk9iamVjdChzcmNWYWx1ZSkgfHwgaXNBcmd1bWVudHMoc3JjVmFsdWUpKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSBvYmpWYWx1ZTtcbiAgICAgICAgICBpZiAoaXNBcmd1bWVudHMob2JqVmFsdWUpKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9IHRvUGxhaW5PYmplY3Qob2JqVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIGlmICghaXNPYmplY3Qob2JqVmFsdWUpIHx8IGlzRnVuY3Rpb24ob2JqVmFsdWUpKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9IGluaXRDbG9uZU9iamVjdChzcmNWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChpc0NvbW1vbikge1xuICAgICAgICAvLyBSZWN1cnNpdmVseSBtZXJnZSBvYmplY3RzIGFuZCBhcnJheXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgc3RhY2suc2V0KHNyY1ZhbHVlLCBuZXdWYWx1ZSk7XG4gICAgICAgIG1lcmdlRnVuYyhuZXdWYWx1ZSwgc3JjVmFsdWUsIHNyY0luZGV4LCBjdXN0b21pemVyLCBzdGFjayk7XG4gICAgICAgIHN0YWNrWydkZWxldGUnXShzcmNWYWx1ZSk7XG4gICAgICB9XG4gICAgICBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubnRoYCB3aGljaCBkb2Vzbid0IGNvZXJjZSBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgaW5kZXggb2YgdGhlIGVsZW1lbnQgdG8gcmV0dXJuLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBudGggZWxlbWVudCBvZiBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VOdGgoYXJyYXksIG4pIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBuICs9IG4gPCAwID8gbGVuZ3RoIDogMDtcbiAgICAgIHJldHVybiBpc0luZGV4KG4sIGxlbmd0aCkgPyBhcnJheVtuXSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5vcmRlckJ5YCB3aXRob3V0IHBhcmFtIGd1YXJkcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb25bXXxPYmplY3RbXXxzdHJpbmdbXX0gaXRlcmF0ZWVzIFRoZSBpdGVyYXRlZXMgdG8gc29ydCBieS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBvcmRlcnMgVGhlIHNvcnQgb3JkZXJzIG9mIGBpdGVyYXRlZXNgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHNvcnRlZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlT3JkZXJCeShjb2xsZWN0aW9uLCBpdGVyYXRlZXMsIG9yZGVycykge1xuICAgICAgaWYgKGl0ZXJhdGVlcy5sZW5ndGgpIHtcbiAgICAgICAgaXRlcmF0ZWVzID0gYXJyYXlNYXAoaXRlcmF0ZWVzLCBmdW5jdGlvbihpdGVyYXRlZSkge1xuICAgICAgICAgIGlmIChpc0FycmF5KGl0ZXJhdGVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgICAgIHJldHVybiBiYXNlR2V0KHZhbHVlLCBpdGVyYXRlZS5sZW5ndGggPT09IDEgPyBpdGVyYXRlZVswXSA6IGl0ZXJhdGVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGl0ZXJhdGVlO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGl0ZXJhdGVlcyA9IFtpZGVudGl0eV07XG4gICAgICB9XG5cbiAgICAgIHZhciBpbmRleCA9IC0xO1xuICAgICAgaXRlcmF0ZWVzID0gYXJyYXlNYXAoaXRlcmF0ZWVzLCBiYXNlVW5hcnkoZ2V0SXRlcmF0ZWUoKSkpO1xuXG4gICAgICB2YXIgcmVzdWx0ID0gYmFzZU1hcChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKSB7XG4gICAgICAgIHZhciBjcml0ZXJpYSA9IGFycmF5TWFwKGl0ZXJhdGVlcywgZnVuY3Rpb24oaXRlcmF0ZWUpIHtcbiAgICAgICAgICByZXR1cm4gaXRlcmF0ZWUodmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHsgJ2NyaXRlcmlhJzogY3JpdGVyaWEsICdpbmRleCc6ICsraW5kZXgsICd2YWx1ZSc6IHZhbHVlIH07XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGJhc2VTb3J0QnkocmVzdWx0LCBmdW5jdGlvbihvYmplY3QsIG90aGVyKSB7XG4gICAgICAgIHJldHVybiBjb21wYXJlTXVsdGlwbGUob2JqZWN0LCBvdGhlciwgb3JkZXJzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnBpY2tgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaW5kaXZpZHVhbFxuICAgICAqIHByb3BlcnR5IGlkZW50aWZpZXJzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nW119IHBhdGhzIFRoZSBwcm9wZXJ0eSBwYXRocyB0byBwaWNrLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVBpY2sob2JqZWN0LCBwYXRocykge1xuICAgICAgcmV0dXJuIGJhc2VQaWNrQnkob2JqZWN0LCBwYXRocywgZnVuY3Rpb24odmFsdWUsIHBhdGgpIHtcbiAgICAgICAgcmV0dXJuIGhhc0luKG9iamVjdCwgcGF0aCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiAgYF8ucGlja0J5YCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gcGF0aHMgVGhlIHByb3BlcnR5IHBhdGhzIHRvIHBpY2suXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBwcm9wZXJ0eS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VQaWNrQnkob2JqZWN0LCBwYXRocywgcHJlZGljYXRlKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBwYXRocy5sZW5ndGgsXG4gICAgICAgICAgcmVzdWx0ID0ge307XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBwYXRoID0gcGF0aHNbaW5kZXhdLFxuICAgICAgICAgICAgdmFsdWUgPSBiYXNlR2V0KG9iamVjdCwgcGF0aCk7XG5cbiAgICAgICAgaWYgKHByZWRpY2F0ZSh2YWx1ZSwgcGF0aCkpIHtcbiAgICAgICAgICBiYXNlU2V0KHJlc3VsdCwgY2FzdFBhdGgocGF0aCwgb2JqZWN0KSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZVByb3BlcnR5YCB3aGljaCBzdXBwb3J0cyBkZWVwIHBhdGhzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFjY2Vzc29yIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VQcm9wZXJ0eURlZXAocGF0aCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICByZXR1cm4gYmFzZUdldChvYmplY3QsIHBhdGgpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5wdWxsQWxsQnlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWVcbiAgICAgKiBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgdmFsdWVzIHRvIHJlbW92ZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWVdIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VQdWxsQWxsKGFycmF5LCB2YWx1ZXMsIGl0ZXJhdGVlLCBjb21wYXJhdG9yKSB7XG4gICAgICB2YXIgaW5kZXhPZiA9IGNvbXBhcmF0b3IgPyBiYXNlSW5kZXhPZldpdGggOiBiYXNlSW5kZXhPZixcbiAgICAgICAgICBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHZhbHVlcy5sZW5ndGgsXG4gICAgICAgICAgc2VlbiA9IGFycmF5O1xuXG4gICAgICBpZiAoYXJyYXkgPT09IHZhbHVlcykge1xuICAgICAgICB2YWx1ZXMgPSBjb3B5QXJyYXkodmFsdWVzKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVyYXRlZSkge1xuICAgICAgICBzZWVuID0gYXJyYXlNYXAoYXJyYXksIGJhc2VVbmFyeShpdGVyYXRlZSkpO1xuICAgICAgfVxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGZyb21JbmRleCA9IDAsXG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlc1tpbmRleF0sXG4gICAgICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlID8gaXRlcmF0ZWUodmFsdWUpIDogdmFsdWU7XG5cbiAgICAgICAgd2hpbGUgKChmcm9tSW5kZXggPSBpbmRleE9mKHNlZW4sIGNvbXB1dGVkLCBmcm9tSW5kZXgsIGNvbXBhcmF0b3IpKSA+IC0xKSB7XG4gICAgICAgICAgaWYgKHNlZW4gIT09IGFycmF5KSB7XG4gICAgICAgICAgICBzcGxpY2UuY2FsbChzZWVuLCBmcm9tSW5kZXgsIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzcGxpY2UuY2FsbChhcnJheSwgZnJvbUluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGFycmF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnB1bGxBdGAgd2l0aG91dCBzdXBwb3J0IGZvciBpbmRpdmlkdWFsXG4gICAgICogaW5kZXhlcyBvciBjYXB0dXJpbmcgdGhlIHJlbW92ZWQgZWxlbWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJbXX0gaW5kZXhlcyBUaGUgaW5kZXhlcyBvZiBlbGVtZW50cyB0byByZW1vdmUuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVB1bGxBdChhcnJheSwgaW5kZXhlcykge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID8gaW5kZXhlcy5sZW5ndGggOiAwLFxuICAgICAgICAgIGxhc3RJbmRleCA9IGxlbmd0aCAtIDE7XG5cbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICB2YXIgaW5kZXggPSBpbmRleGVzW2xlbmd0aF07XG4gICAgICAgIGlmIChsZW5ndGggPT0gbGFzdEluZGV4IHx8IGluZGV4ICE9PSBwcmV2aW91cykge1xuICAgICAgICAgIHZhciBwcmV2aW91cyA9IGluZGV4O1xuICAgICAgICAgIGlmIChpc0luZGV4KGluZGV4KSkge1xuICAgICAgICAgICAgc3BsaWNlLmNhbGwoYXJyYXksIGluZGV4LCAxKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYmFzZVVuc2V0KGFycmF5LCBpbmRleCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucmFuZG9tYCB3aXRob3V0IHN1cHBvcnQgZm9yIHJldHVybmluZ1xuICAgICAqIGZsb2F0aW5nLXBvaW50IG51bWJlcnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsb3dlciBUaGUgbG93ZXIgYm91bmQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHVwcGVyIFRoZSB1cHBlciBib3VuZC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSByYW5kb20gbnVtYmVyLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VSYW5kb20obG93ZXIsIHVwcGVyKSB7XG4gICAgICByZXR1cm4gbG93ZXIgKyBuYXRpdmVGbG9vcihuYXRpdmVSYW5kb20oKSAqICh1cHBlciAtIGxvd2VyICsgMSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnJhbmdlYCBhbmQgYF8ucmFuZ2VSaWdodGAgd2hpY2ggZG9lc24ndFxuICAgICAqIGNvZXJjZSBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydCBUaGUgc3RhcnQgb2YgdGhlIHJhbmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmQgVGhlIGVuZCBvZiB0aGUgcmFuZ2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHN0ZXAgVGhlIHZhbHVlIHRvIGluY3JlbWVudCBvciBkZWNyZW1lbnQgYnkuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSByYW5nZSBvZiBudW1iZXJzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VSYW5nZShzdGFydCwgZW5kLCBzdGVwLCBmcm9tUmlnaHQpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1heChuYXRpdmVDZWlsKChlbmQgLSBzdGFydCkgLyAoc3RlcCB8fCAxKSksIDApLFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICByZXN1bHRbZnJvbVJpZ2h0ID8gbGVuZ3RoIDogKytpbmRleF0gPSBzdGFydDtcbiAgICAgICAgc3RhcnQgKz0gc3RlcDtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucmVwZWF0YCB3aGljaCBkb2Vzbid0IGNvZXJjZSBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byByZXBlYXQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiB0aW1lcyB0byByZXBlYXQgdGhlIHN0cmluZy5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSByZXBlYXRlZCBzdHJpbmcuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVJlcGVhdChzdHJpbmcsIG4pIHtcbiAgICAgIHZhciByZXN1bHQgPSAnJztcbiAgICAgIGlmICghc3RyaW5nIHx8IG4gPCAxIHx8IG4gPiBNQVhfU0FGRV9JTlRFR0VSKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICAvLyBMZXZlcmFnZSB0aGUgZXhwb25lbnRpYXRpb24gYnkgc3F1YXJpbmcgYWxnb3JpdGhtIGZvciBhIGZhc3RlciByZXBlYXQuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXhwb25lbnRpYXRpb25fYnlfc3F1YXJpbmcgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgIGRvIHtcbiAgICAgICAgaWYgKG4gJSAyKSB7XG4gICAgICAgICAgcmVzdWx0ICs9IHN0cmluZztcbiAgICAgICAgfVxuICAgICAgICBuID0gbmF0aXZlRmxvb3IobiAvIDIpO1xuICAgICAgICBpZiAobikge1xuICAgICAgICAgIHN0cmluZyArPSBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgIH0gd2hpbGUgKG4pO1xuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnJlc3RgIHdoaWNoIGRvZXNuJ3QgdmFsaWRhdGUgb3IgY29lcmNlIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PWZ1bmMubGVuZ3RoLTFdIFRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgcmVzdCBwYXJhbWV0ZXIuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVJlc3QoZnVuYywgc3RhcnQpIHtcbiAgICAgIHJldHVybiBzZXRUb1N0cmluZyhvdmVyUmVzdChmdW5jLCBzdGFydCwgaWRlbnRpdHkpLCBmdW5jICsgJycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNhbXBsZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIHNhbXBsZS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmFuZG9tIGVsZW1lbnQuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVNhbXBsZShjb2xsZWN0aW9uKSB7XG4gICAgICByZXR1cm4gYXJyYXlTYW1wbGUodmFsdWVzKGNvbGxlY3Rpb24pKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zYW1wbGVTaXplYCB3aXRob3V0IHBhcmFtIGd1YXJkcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2FtcGxlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gc2FtcGxlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcmFuZG9tIGVsZW1lbnRzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTYW1wbGVTaXplKGNvbGxlY3Rpb24sIG4pIHtcbiAgICAgIHZhciBhcnJheSA9IHZhbHVlcyhjb2xsZWN0aW9uKTtcbiAgICAgIHJldHVybiBzaHVmZmxlU2VsZihhcnJheSwgYmFzZUNsYW1wKG4sIDAsIGFycmF5Lmxlbmd0aCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNldGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHNldC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgcGF0aCBjcmVhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTZXQob2JqZWN0LCBwYXRoLCB2YWx1ZSwgY3VzdG9taXplcikge1xuICAgICAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICB9XG4gICAgICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcblxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gcGF0aC5sZW5ndGgsXG4gICAgICAgICAgbGFzdEluZGV4ID0gbGVuZ3RoIC0gMSxcbiAgICAgICAgICBuZXN0ZWQgPSBvYmplY3Q7XG5cbiAgICAgIHdoaWxlIChuZXN0ZWQgIT0gbnVsbCAmJiArK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBrZXkgPSB0b0tleShwYXRoW2luZGV4XSksXG4gICAgICAgICAgICBuZXdWYWx1ZSA9IHZhbHVlO1xuXG4gICAgICAgIGlmIChrZXkgPT09ICdfX3Byb3RvX18nIHx8IGtleSA9PT0gJ2NvbnN0cnVjdG9yJyB8fCBrZXkgPT09ICdwcm90b3R5cGUnKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpbmRleCAhPSBsYXN0SW5kZXgpIHtcbiAgICAgICAgICB2YXIgb2JqVmFsdWUgPSBuZXN0ZWRba2V5XTtcbiAgICAgICAgICBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXIgPyBjdXN0b21pemVyKG9ialZhbHVlLCBrZXksIG5lc3RlZCkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgaWYgKG5ld1ZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gaXNPYmplY3Qob2JqVmFsdWUpXG4gICAgICAgICAgICAgID8gb2JqVmFsdWVcbiAgICAgICAgICAgICAgOiAoaXNJbmRleChwYXRoW2luZGV4ICsgMV0pID8gW10gOiB7fSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGFzc2lnblZhbHVlKG5lc3RlZCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgICAgIG5lc3RlZCA9IG5lc3RlZFtrZXldO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgc2V0RGF0YWAgd2l0aG91dCBzdXBwb3J0IGZvciBob3QgbG9vcCBzaG9ydGluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXNzb2NpYXRlIG1ldGFkYXRhIHdpdGguXG4gICAgICogQHBhcmFtIHsqfSBkYXRhIFRoZSBtZXRhZGF0YS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGZ1bmNgLlxuICAgICAqL1xuICAgIHZhciBiYXNlU2V0RGF0YSA9ICFtZXRhTWFwID8gaWRlbnRpdHkgOiBmdW5jdGlvbihmdW5jLCBkYXRhKSB7XG4gICAgICBtZXRhTWFwLnNldChmdW5jLCBkYXRhKTtcbiAgICAgIHJldHVybiBmdW5jO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgc2V0VG9TdHJpbmdgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaG90IGxvb3Agc2hvcnRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzdHJpbmcgVGhlIGB0b1N0cmluZ2AgcmVzdWx0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgZnVuY2AuXG4gICAgICovXG4gICAgdmFyIGJhc2VTZXRUb1N0cmluZyA9ICFkZWZpbmVQcm9wZXJ0eSA/IGlkZW50aXR5IDogZnVuY3Rpb24oZnVuYywgc3RyaW5nKSB7XG4gICAgICByZXR1cm4gZGVmaW5lUHJvcGVydHkoZnVuYywgJ3RvU3RyaW5nJywge1xuICAgICAgICAnY29uZmlndXJhYmxlJzogdHJ1ZSxcbiAgICAgICAgJ2VudW1lcmFibGUnOiBmYWxzZSxcbiAgICAgICAgJ3ZhbHVlJzogY29uc3RhbnQoc3RyaW5nKSxcbiAgICAgICAgJ3dyaXRhYmxlJzogdHJ1ZVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNodWZmbGVgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzaHVmZmxlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHNodWZmbGVkIGFycmF5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTaHVmZmxlKGNvbGxlY3Rpb24pIHtcbiAgICAgIHJldHVybiBzaHVmZmxlU2VsZih2YWx1ZXMoY29sbGVjdGlvbikpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNsaWNlYCB3aXRob3V0IGFuIGl0ZXJhdGVlIGNhbGwgZ3VhcmQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzbGljZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBwb3NpdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2VuZD1hcnJheS5sZW5ndGhdIFRoZSBlbmQgcG9zaXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTbGljZShhcnJheSwgc3RhcnQsIGVuZCkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgICAgIHN0YXJ0ID0gLXN0YXJ0ID4gbGVuZ3RoID8gMCA6IChsZW5ndGggKyBzdGFydCk7XG4gICAgICB9XG4gICAgICBlbmQgPSBlbmQgPiBsZW5ndGggPyBsZW5ndGggOiBlbmQ7XG4gICAgICBpZiAoZW5kIDwgMCkge1xuICAgICAgICBlbmQgKz0gbGVuZ3RoO1xuICAgICAgfVxuICAgICAgbGVuZ3RoID0gc3RhcnQgPiBlbmQgPyAwIDogKChlbmQgLSBzdGFydCkgPj4+IDApO1xuICAgICAgc3RhcnQgPj4+PSAwO1xuXG4gICAgICB2YXIgcmVzdWx0ID0gQXJyYXkobGVuZ3RoKTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdFtpbmRleF0gPSBhcnJheVtpbmRleCArIHN0YXJ0XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc29tZWAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFueSBlbGVtZW50IHBhc3NlcyB0aGUgcHJlZGljYXRlIGNoZWNrLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVNvbWUoY29sbGVjdGlvbiwgcHJlZGljYXRlKSB7XG4gICAgICB2YXIgcmVzdWx0O1xuXG4gICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pIHtcbiAgICAgICAgcmVzdWx0ID0gcHJlZGljYXRlKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbik7XG4gICAgICAgIHJldHVybiAhcmVzdWx0O1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gISFyZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc29ydGVkSW5kZXhgIGFuZCBgXy5zb3J0ZWRMYXN0SW5kZXhgIHdoaWNoXG4gICAgICogcGVyZm9ybXMgYSBiaW5hcnkgc2VhcmNoIG9mIGBhcnJheWAgdG8gZGV0ZXJtaW5lIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgXG4gICAgICogc2hvdWxkIGJlIGluc2VydGVkIGludG8gYGFycmF5YCBpbiBvcmRlciB0byBtYWludGFpbiBpdHMgc29ydCBvcmRlci5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIHNvcnRlZCBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGV2YWx1YXRlLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3JldEhpZ2hlc3RdIFNwZWNpZnkgcmV0dXJuaW5nIHRoZSBoaWdoZXN0IHF1YWxpZmllZCBpbmRleC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZCBiZSBpbnNlcnRlZFxuICAgICAqICBpbnRvIGBhcnJheWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVNvcnRlZEluZGV4KGFycmF5LCB2YWx1ZSwgcmV0SGlnaGVzdCkge1xuICAgICAgdmFyIGxvdyA9IDAsXG4gICAgICAgICAgaGlnaCA9IGFycmF5ID09IG51bGwgPyBsb3cgOiBhcnJheS5sZW5ndGg7XG5cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiYgdmFsdWUgPT09IHZhbHVlICYmIGhpZ2ggPD0gSEFMRl9NQVhfQVJSQVlfTEVOR1RIKSB7XG4gICAgICAgIHdoaWxlIChsb3cgPCBoaWdoKSB7XG4gICAgICAgICAgdmFyIG1pZCA9IChsb3cgKyBoaWdoKSA+Pj4gMSxcbiAgICAgICAgICAgICAgY29tcHV0ZWQgPSBhcnJheVttaWRdO1xuXG4gICAgICAgICAgaWYgKGNvbXB1dGVkICE9PSBudWxsICYmICFpc1N5bWJvbChjb21wdXRlZCkgJiZcbiAgICAgICAgICAgICAgKHJldEhpZ2hlc3QgPyAoY29tcHV0ZWQgPD0gdmFsdWUpIDogKGNvbXB1dGVkIDwgdmFsdWUpKSkge1xuICAgICAgICAgICAgbG93ID0gbWlkICsgMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaGlnaCA9IG1pZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhpZ2g7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZVNvcnRlZEluZGV4QnkoYXJyYXksIHZhbHVlLCBpZGVudGl0eSwgcmV0SGlnaGVzdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc29ydGVkSW5kZXhCeWAgYW5kIGBfLnNvcnRlZExhc3RJbmRleEJ5YFxuICAgICAqIHdoaWNoIGludm9rZXMgYGl0ZXJhdGVlYCBmb3IgYHZhbHVlYCBhbmQgZWFjaCBlbGVtZW50IG9mIGBhcnJheWAgdG8gY29tcHV0ZVxuICAgICAqIHRoZWlyIHNvcnQgcmFua2luZy4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ7ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBzb3J0ZWQgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBldmFsdWF0ZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtyZXRIaWdoZXN0XSBTcGVjaWZ5IHJldHVybmluZyB0aGUgaGlnaGVzdCBxdWFsaWZpZWQgaW5kZXguXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWRcbiAgICAgKiAgaW50byBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTb3J0ZWRJbmRleEJ5KGFycmF5LCB2YWx1ZSwgaXRlcmF0ZWUsIHJldEhpZ2hlc3QpIHtcbiAgICAgIHZhciBsb3cgPSAwLFxuICAgICAgICAgIGhpZ2ggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIGlmIChoaWdoID09PSAwKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuXG4gICAgICB2YWx1ZSA9IGl0ZXJhdGVlKHZhbHVlKTtcbiAgICAgIHZhciB2YWxJc05hTiA9IHZhbHVlICE9PSB2YWx1ZSxcbiAgICAgICAgICB2YWxJc051bGwgPSB2YWx1ZSA9PT0gbnVsbCxcbiAgICAgICAgICB2YWxJc1N5bWJvbCA9IGlzU3ltYm9sKHZhbHVlKSxcbiAgICAgICAgICB2YWxJc1VuZGVmaW5lZCA9IHZhbHVlID09PSB1bmRlZmluZWQ7XG5cbiAgICAgIHdoaWxlIChsb3cgPCBoaWdoKSB7XG4gICAgICAgIHZhciBtaWQgPSBuYXRpdmVGbG9vcigobG93ICsgaGlnaCkgLyAyKSxcbiAgICAgICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUoYXJyYXlbbWlkXSksXG4gICAgICAgICAgICBvdGhJc0RlZmluZWQgPSBjb21wdXRlZCAhPT0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgb3RoSXNOdWxsID0gY29tcHV0ZWQgPT09IG51bGwsXG4gICAgICAgICAgICBvdGhJc1JlZmxleGl2ZSA9IGNvbXB1dGVkID09PSBjb21wdXRlZCxcbiAgICAgICAgICAgIG90aElzU3ltYm9sID0gaXNTeW1ib2woY29tcHV0ZWQpO1xuXG4gICAgICAgIGlmICh2YWxJc05hTikge1xuICAgICAgICAgIHZhciBzZXRMb3cgPSByZXRIaWdoZXN0IHx8IG90aElzUmVmbGV4aXZlO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbElzVW5kZWZpbmVkKSB7XG4gICAgICAgICAgc2V0TG93ID0gb3RoSXNSZWZsZXhpdmUgJiYgKHJldEhpZ2hlc3QgfHwgb3RoSXNEZWZpbmVkKTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWxJc051bGwpIHtcbiAgICAgICAgICBzZXRMb3cgPSBvdGhJc1JlZmxleGl2ZSAmJiBvdGhJc0RlZmluZWQgJiYgKHJldEhpZ2hlc3QgfHwgIW90aElzTnVsbCk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsSXNTeW1ib2wpIHtcbiAgICAgICAgICBzZXRMb3cgPSBvdGhJc1JlZmxleGl2ZSAmJiBvdGhJc0RlZmluZWQgJiYgIW90aElzTnVsbCAmJiAocmV0SGlnaGVzdCB8fCAhb3RoSXNTeW1ib2wpO1xuICAgICAgICB9IGVsc2UgaWYgKG90aElzTnVsbCB8fCBvdGhJc1N5bWJvbCkge1xuICAgICAgICAgIHNldExvdyA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldExvdyA9IHJldEhpZ2hlc3QgPyAoY29tcHV0ZWQgPD0gdmFsdWUpIDogKGNvbXB1dGVkIDwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzZXRMb3cpIHtcbiAgICAgICAgICBsb3cgPSBtaWQgKyAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGhpZ2ggPSBtaWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuYXRpdmVNaW4oaGlnaCwgTUFYX0FSUkFZX0lOREVYKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zb3J0ZWRVbmlxYCBhbmQgYF8uc29ydGVkVW5pcUJ5YCB3aXRob3V0XG4gICAgICogc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBkdXBsaWNhdGUgZnJlZSBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlU29ydGVkVW5pcShhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICByZXNJbmRleCA9IDAsXG4gICAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUgPyBpdGVyYXRlZSh2YWx1ZSkgOiB2YWx1ZTtcblxuICAgICAgICBpZiAoIWluZGV4IHx8ICFlcShjb21wdXRlZCwgc2VlbikpIHtcbiAgICAgICAgICB2YXIgc2VlbiA9IGNvbXB1dGVkO1xuICAgICAgICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IHZhbHVlID09PSAwID8gMCA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRvTnVtYmVyYCB3aGljaCBkb2Vzbid0IGVuc3VyZSBjb3JyZWN0XG4gICAgICogY29udmVyc2lvbnMgb2YgYmluYXJ5LCBoZXhhZGVjaW1hbCwgb3Igb2N0YWwgc3RyaW5nIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVRvTnVtYmVyKHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIE5BTjtcbiAgICAgIH1cbiAgICAgIHJldHVybiArdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udG9TdHJpbmdgIHdoaWNoIGRvZXNuJ3QgY29udmVydCBudWxsaXNoXG4gICAgICogdmFsdWVzIHRvIGVtcHR5IHN0cmluZ3MuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgc3RyaW5nLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VUb1N0cmluZyh2YWx1ZSkge1xuICAgICAgLy8gRXhpdCBlYXJseSBmb3Igc3RyaW5ncyB0byBhdm9pZCBhIHBlcmZvcm1hbmNlIGhpdCBpbiBzb21lIGVudmlyb25tZW50cy5cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbnZlcnQgdmFsdWVzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAgIHJldHVybiBhcnJheU1hcCh2YWx1ZSwgYmFzZVRvU3RyaW5nKSArICcnO1xuICAgICAgfVxuICAgICAgaWYgKGlzU3ltYm9sKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gc3ltYm9sVG9TdHJpbmcgPyBzeW1ib2xUb1N0cmluZy5jYWxsKHZhbHVlKSA6ICcnO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9ICh2YWx1ZSArICcnKTtcbiAgICAgIHJldHVybiAocmVzdWx0ID09ICcwJyAmJiAoMSAvIHZhbHVlKSA9PSAtSU5GSU5JVFkpID8gJy0wJyA6IHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy51bmlxQnlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBkdXBsaWNhdGUgZnJlZSBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlVW5pcShhcnJheSwgaXRlcmF0ZWUsIGNvbXBhcmF0b3IpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGluY2x1ZGVzID0gYXJyYXlJbmNsdWRlcyxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgaXNDb21tb24gPSB0cnVlLFxuICAgICAgICAgIHJlc3VsdCA9IFtdLFxuICAgICAgICAgIHNlZW4gPSByZXN1bHQ7XG5cbiAgICAgIGlmIChjb21wYXJhdG9yKSB7XG4gICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICAgIGluY2x1ZGVzID0gYXJyYXlJbmNsdWRlc1dpdGg7XG4gICAgICB9XG4gICAgICBlbHNlIGlmIChsZW5ndGggPj0gTEFSR0VfQVJSQVlfU0laRSkge1xuICAgICAgICB2YXIgc2V0ID0gaXRlcmF0ZWUgPyBudWxsIDogY3JlYXRlU2V0KGFycmF5KTtcbiAgICAgICAgaWYgKHNldCkge1xuICAgICAgICAgIHJldHVybiBzZXRUb0FycmF5KHNldCk7XG4gICAgICAgIH1cbiAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICAgICAgaW5jbHVkZXMgPSBjYWNoZUhhcztcbiAgICAgICAgc2VlbiA9IG5ldyBTZXRDYWNoZTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBzZWVuID0gaXRlcmF0ZWUgPyBbXSA6IHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIG91dGVyOlxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICAgICAgY29tcHV0ZWQgPSBpdGVyYXRlZSA/IGl0ZXJhdGVlKHZhbHVlKSA6IHZhbHVlO1xuXG4gICAgICAgIHZhbHVlID0gKGNvbXBhcmF0b3IgfHwgdmFsdWUgIT09IDApID8gdmFsdWUgOiAwO1xuICAgICAgICBpZiAoaXNDb21tb24gJiYgY29tcHV0ZWQgPT09IGNvbXB1dGVkKSB7XG4gICAgICAgICAgdmFyIHNlZW5JbmRleCA9IHNlZW4ubGVuZ3RoO1xuICAgICAgICAgIHdoaWxlIChzZWVuSW5kZXgtLSkge1xuICAgICAgICAgICAgaWYgKHNlZW5bc2VlbkluZGV4XSA9PT0gY29tcHV0ZWQpIHtcbiAgICAgICAgICAgICAgY29udGludWUgb3V0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpdGVyYXRlZSkge1xuICAgICAgICAgICAgc2Vlbi5wdXNoKGNvbXB1dGVkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFpbmNsdWRlcyhzZWVuLCBjb21wdXRlZCwgY29tcGFyYXRvcikpIHtcbiAgICAgICAgICBpZiAoc2VlbiAhPT0gcmVzdWx0KSB7XG4gICAgICAgICAgICBzZWVuLnB1c2goY29tcHV0ZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udW5zZXRgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwcm9wZXJ0eSBwYXRoIHRvIHVuc2V0LlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgcHJvcGVydHkgaXMgZGVsZXRlZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VVbnNldChvYmplY3QsIHBhdGgpIHtcbiAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuICAgICAgb2JqZWN0ID0gcGFyZW50KG9iamVjdCwgcGF0aCk7XG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgfHwgZGVsZXRlIG9iamVjdFt0b0tleShsYXN0KHBhdGgpKV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udXBkYXRlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gdXBkYXRlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHVwZGF0ZXIgVGhlIGZ1bmN0aW9uIHRvIHByb2R1Y2UgdGhlIHVwZGF0ZWQgdmFsdWUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgcGF0aCBjcmVhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VVcGRhdGUob2JqZWN0LCBwYXRoLCB1cGRhdGVyLCBjdXN0b21pemVyKSB7XG4gICAgICByZXR1cm4gYmFzZVNldChvYmplY3QsIHBhdGgsIHVwZGF0ZXIoYmFzZUdldChvYmplY3QsIHBhdGgpKSwgY3VzdG9taXplcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgbWV0aG9kcyBsaWtlIGBfLmRyb3BXaGlsZWAgYW5kIGBfLnRha2VXaGlsZWBcbiAgICAgKiB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0Ryb3BdIFNwZWNpZnkgZHJvcHBpbmcgZWxlbWVudHMgaW5zdGVhZCBvZiB0YWtpbmcgdGhlbS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVdoaWxlKGFycmF5LCBwcmVkaWNhdGUsIGlzRHJvcCwgZnJvbVJpZ2h0KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIGluZGV4ID0gZnJvbVJpZ2h0ID8gbGVuZ3RoIDogLTE7XG5cbiAgICAgIHdoaWxlICgoZnJvbVJpZ2h0ID8gaW5kZXgtLSA6ICsraW5kZXggPCBsZW5ndGgpICYmXG4gICAgICAgIHByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHt9XG5cbiAgICAgIHJldHVybiBpc0Ryb3BcbiAgICAgICAgPyBiYXNlU2xpY2UoYXJyYXksIChmcm9tUmlnaHQgPyAwIDogaW5kZXgpLCAoZnJvbVJpZ2h0ID8gaW5kZXggKyAxIDogbGVuZ3RoKSlcbiAgICAgICAgOiBiYXNlU2xpY2UoYXJyYXksIChmcm9tUmlnaHQgPyBpbmRleCArIDEgOiAwKSwgKGZyb21SaWdodCA/IGxlbmd0aCA6IGluZGV4KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYHdyYXBwZXJWYWx1ZWAgd2hpY2ggcmV0dXJucyB0aGUgcmVzdWx0IG9mXG4gICAgICogcGVyZm9ybWluZyBhIHNlcXVlbmNlIG9mIGFjdGlvbnMgb24gdGhlIHVud3JhcHBlZCBgdmFsdWVgLCB3aGVyZSBlYWNoXG4gICAgICogc3VjY2Vzc2l2ZSBhY3Rpb24gaXMgc3VwcGxpZWQgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgcHJldmlvdXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHVud3JhcHBlZCB2YWx1ZS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhY3Rpb25zIEFjdGlvbnMgdG8gcGVyZm9ybSB0byByZXNvbHZlIHRoZSB1bndyYXBwZWQgdmFsdWUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VXcmFwcGVyVmFsdWUodmFsdWUsIGFjdGlvbnMpIHtcbiAgICAgIHZhciByZXN1bHQgPSB2YWx1ZTtcbiAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBMYXp5V3JhcHBlcikge1xuICAgICAgICByZXN1bHQgPSByZXN1bHQudmFsdWUoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheVJlZHVjZShhY3Rpb25zLCBmdW5jdGlvbihyZXN1bHQsIGFjdGlvbikge1xuICAgICAgICByZXR1cm4gYWN0aW9uLmZ1bmMuYXBwbHkoYWN0aW9uLnRoaXNBcmcsIGFycmF5UHVzaChbcmVzdWx0XSwgYWN0aW9uLmFyZ3MpKTtcbiAgICAgIH0sIHJlc3VsdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgbWV0aG9kcyBsaWtlIGBfLnhvcmAsIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAgICAgKiBpdGVyYXRlZSBzaG9ydGhhbmRzLCB0aGF0IGFjY2VwdHMgYW4gYXJyYXkgb2YgYXJyYXlzIHRvIGluc3BlY3QuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5cyBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiB2YWx1ZXMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVhvcihhcnJheXMsIGl0ZXJhdGVlLCBjb21wYXJhdG9yKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXlzLmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGggPCAyKSB7XG4gICAgICAgIHJldHVybiBsZW5ndGggPyBiYXNlVW5pcShhcnJheXNbMF0pIDogW107XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgYXJyYXkgPSBhcnJheXNbaW5kZXhdLFxuICAgICAgICAgICAgb3RoSW5kZXggPSAtMTtcblxuICAgICAgICB3aGlsZSAoKytvdGhJbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIGlmIChvdGhJbmRleCAhPSBpbmRleCkge1xuICAgICAgICAgICAgcmVzdWx0W2luZGV4XSA9IGJhc2VEaWZmZXJlbmNlKHJlc3VsdFtpbmRleF0gfHwgYXJyYXksIGFycmF5c1tvdGhJbmRleF0sIGl0ZXJhdGVlLCBjb21wYXJhdG9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlVW5pcShiYXNlRmxhdHRlbihyZXN1bHQsIDEpLCBpdGVyYXRlZSwgY29tcGFyYXRvcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnppcE9iamVjdGAgd2hpY2ggYXNzaWducyB2YWx1ZXMgdXNpbmcgYGFzc2lnbkZ1bmNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgaWRlbnRpZmllcnMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSBwcm9wZXJ0eSB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gYXNzaWduRnVuYyBUaGUgZnVuY3Rpb24gdG8gYXNzaWduIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VaaXBPYmplY3QocHJvcHMsIHZhbHVlcywgYXNzaWduRnVuYykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoLFxuICAgICAgICAgIHZhbHNMZW5ndGggPSB2YWx1ZXMubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IHt9O1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBpbmRleCA8IHZhbHNMZW5ndGggPyB2YWx1ZXNbaW5kZXhdIDogdW5kZWZpbmVkO1xuICAgICAgICBhc3NpZ25GdW5jKHJlc3VsdCwgcHJvcHNbaW5kZXhdLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhc3RzIGB2YWx1ZWAgdG8gYW4gZW1wdHkgYXJyYXkgaWYgaXQncyBub3QgYW4gYXJyYXkgbGlrZSBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fE9iamVjdH0gUmV0dXJucyB0aGUgY2FzdCBhcnJheS1saWtlIG9iamVjdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjYXN0QXJyYXlMaWtlT2JqZWN0KHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNBcnJheUxpa2VPYmplY3QodmFsdWUpID8gdmFsdWUgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYXN0cyBgdmFsdWVgIHRvIGBpZGVudGl0eWAgaWYgaXQncyBub3QgYSBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgY2FzdCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjYXN0RnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ2Z1bmN0aW9uJyA/IHZhbHVlIDogaWRlbnRpdHk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FzdHMgYHZhbHVlYCB0byBhIHBhdGggYXJyYXkgaWYgaXQncyBub3Qgb25lLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5IGtleXMgb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjYXN0IHByb3BlcnR5IHBhdGggYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2FzdFBhdGgodmFsdWUsIG9iamVjdCkge1xuICAgICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpc0tleSh2YWx1ZSwgb2JqZWN0KSA/IFt2YWx1ZV0gOiBzdHJpbmdUb1BhdGgodG9TdHJpbmcodmFsdWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIGBiYXNlUmVzdGAgYWxpYXMgd2hpY2ggY2FuIGJlIHJlcGxhY2VkIHdpdGggYGlkZW50aXR5YCBieSBtb2R1bGVcbiAgICAgKiByZXBsYWNlbWVudCBwbHVnaW5zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAdHlwZSB7RnVuY3Rpb259XG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICB2YXIgY2FzdFJlc3QgPSBiYXNlUmVzdDtcblxuICAgIC8qKlxuICAgICAqIENhc3RzIGBhcnJheWAgdG8gYSBzbGljZSBpZiBpdCdzIG5lZWRlZC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0IFRoZSBzdGFydCBwb3NpdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2VuZD1hcnJheS5sZW5ndGhdIFRoZSBlbmQgcG9zaXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjYXN0IHNsaWNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNhc3RTbGljZShhcnJheSwgc3RhcnQsIGVuZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuZ3RoIDogZW5kO1xuICAgICAgcmV0dXJuICghc3RhcnQgJiYgZW5kID49IGxlbmd0aCkgPyBhcnJheSA6IGJhc2VTbGljZShhcnJheSwgc3RhcnQsIGVuZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzaW1wbGUgd3JhcHBlciBhcm91bmQgdGhlIGdsb2JhbCBbYGNsZWFyVGltZW91dGBdKGh0dHBzOi8vbWRuLmlvL2NsZWFyVGltZW91dCkuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfE9iamVjdH0gaWQgVGhlIHRpbWVyIGlkIG9yIHRpbWVvdXQgb2JqZWN0IG9mIHRoZSB0aW1lciB0byBjbGVhci5cbiAgICAgKi9cbiAgICB2YXIgY2xlYXJUaW1lb3V0ID0gY3R4Q2xlYXJUaW1lb3V0IHx8IGZ1bmN0aW9uKGlkKSB7XG4gICAgICByZXR1cm4gcm9vdC5jbGVhclRpbWVvdXQoaWQpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgIGBidWZmZXJgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyIFRoZSBidWZmZXIgdG8gY2xvbmUuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7QnVmZmVyfSBSZXR1cm5zIHRoZSBjbG9uZWQgYnVmZmVyLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lQnVmZmVyKGJ1ZmZlciwgaXNEZWVwKSB7XG4gICAgICBpZiAoaXNEZWVwKSB7XG4gICAgICAgIHJldHVybiBidWZmZXIuc2xpY2UoKTtcbiAgICAgIH1cbiAgICAgIHZhciBsZW5ndGggPSBidWZmZXIubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IGFsbG9jVW5zYWZlID8gYWxsb2NVbnNhZmUobGVuZ3RoKSA6IG5ldyBidWZmZXIuY29uc3RydWN0b3IobGVuZ3RoKTtcblxuICAgICAgYnVmZmVyLmNvcHkocmVzdWx0KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mIGBhcnJheUJ1ZmZlcmAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXlCdWZmZXJ9IGFycmF5QnVmZmVyIFRoZSBhcnJheSBidWZmZXIgdG8gY2xvbmUuXG4gICAgICogQHJldHVybnMge0FycmF5QnVmZmVyfSBSZXR1cm5zIHRoZSBjbG9uZWQgYXJyYXkgYnVmZmVyLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lQXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIpIHtcbiAgICAgIHZhciByZXN1bHQgPSBuZXcgYXJyYXlCdWZmZXIuY29uc3RydWN0b3IoYXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCk7XG4gICAgICBuZXcgVWludDhBcnJheShyZXN1bHQpLnNldChuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgYGRhdGFWaWV3YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGFWaWV3IFRoZSBkYXRhIHZpZXcgdG8gY2xvbmUuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgZGF0YSB2aWV3LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lRGF0YVZpZXcoZGF0YVZpZXcsIGlzRGVlcCkge1xuICAgICAgdmFyIGJ1ZmZlciA9IGlzRGVlcCA/IGNsb25lQXJyYXlCdWZmZXIoZGF0YVZpZXcuYnVmZmVyKSA6IGRhdGFWaWV3LmJ1ZmZlcjtcbiAgICAgIHJldHVybiBuZXcgZGF0YVZpZXcuY29uc3RydWN0b3IoYnVmZmVyLCBkYXRhVmlldy5ieXRlT2Zmc2V0LCBkYXRhVmlldy5ieXRlTGVuZ3RoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgYHJlZ2V4cGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSByZWdleHAgVGhlIHJlZ2V4cCB0byBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgcmVnZXhwLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lUmVnRXhwKHJlZ2V4cCkge1xuICAgICAgdmFyIHJlc3VsdCA9IG5ldyByZWdleHAuY29uc3RydWN0b3IocmVnZXhwLnNvdXJjZSwgcmVGbGFncy5leGVjKHJlZ2V4cCkpO1xuICAgICAgcmVzdWx0Lmxhc3RJbmRleCA9IHJlZ2V4cC5sYXN0SW5kZXg7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiB0aGUgYHN5bWJvbGAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc3ltYm9sIFRoZSBzeW1ib2wgb2JqZWN0IHRvIGNsb25lLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCBzeW1ib2wgb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lU3ltYm9sKHN5bWJvbCkge1xuICAgICAgcmV0dXJuIHN5bWJvbFZhbHVlT2YgPyBPYmplY3Qoc3ltYm9sVmFsdWVPZi5jYWxsKHN5bWJvbCkpIDoge307XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mIGB0eXBlZEFycmF5YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHR5cGVkQXJyYXkgVGhlIHR5cGVkIGFycmF5IHRvIGNsb25lLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIHR5cGVkIGFycmF5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lVHlwZWRBcnJheSh0eXBlZEFycmF5LCBpc0RlZXApIHtcbiAgICAgIHZhciBidWZmZXIgPSBpc0RlZXAgPyBjbG9uZUFycmF5QnVmZmVyKHR5cGVkQXJyYXkuYnVmZmVyKSA6IHR5cGVkQXJyYXkuYnVmZmVyO1xuICAgICAgcmV0dXJuIG5ldyB0eXBlZEFycmF5LmNvbnN0cnVjdG9yKGJ1ZmZlciwgdHlwZWRBcnJheS5ieXRlT2Zmc2V0LCB0eXBlZEFycmF5Lmxlbmd0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29tcGFyZXMgdmFsdWVzIHRvIHNvcnQgdGhlbSBpbiBhc2NlbmRpbmcgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzb3J0IG9yZGVyIGluZGljYXRvciBmb3IgYHZhbHVlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb21wYXJlQXNjZW5kaW5nKHZhbHVlLCBvdGhlcikge1xuICAgICAgaWYgKHZhbHVlICE9PSBvdGhlcikge1xuICAgICAgICB2YXIgdmFsSXNEZWZpbmVkID0gdmFsdWUgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHZhbElzTnVsbCA9IHZhbHVlID09PSBudWxsLFxuICAgICAgICAgICAgdmFsSXNSZWZsZXhpdmUgPSB2YWx1ZSA9PT0gdmFsdWUsXG4gICAgICAgICAgICB2YWxJc1N5bWJvbCA9IGlzU3ltYm9sKHZhbHVlKTtcblxuICAgICAgICB2YXIgb3RoSXNEZWZpbmVkID0gb3RoZXIgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG90aElzTnVsbCA9IG90aGVyID09PSBudWxsLFxuICAgICAgICAgICAgb3RoSXNSZWZsZXhpdmUgPSBvdGhlciA9PT0gb3RoZXIsXG4gICAgICAgICAgICBvdGhJc1N5bWJvbCA9IGlzU3ltYm9sKG90aGVyKTtcblxuICAgICAgICBpZiAoKCFvdGhJc051bGwgJiYgIW90aElzU3ltYm9sICYmICF2YWxJc1N5bWJvbCAmJiB2YWx1ZSA+IG90aGVyKSB8fFxuICAgICAgICAgICAgKHZhbElzU3ltYm9sICYmIG90aElzRGVmaW5lZCAmJiBvdGhJc1JlZmxleGl2ZSAmJiAhb3RoSXNOdWxsICYmICFvdGhJc1N5bWJvbCkgfHxcbiAgICAgICAgICAgICh2YWxJc051bGwgJiYgb3RoSXNEZWZpbmVkICYmIG90aElzUmVmbGV4aXZlKSB8fFxuICAgICAgICAgICAgKCF2YWxJc0RlZmluZWQgJiYgb3RoSXNSZWZsZXhpdmUpIHx8XG4gICAgICAgICAgICAhdmFsSXNSZWZsZXhpdmUpIHtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKCF2YWxJc051bGwgJiYgIXZhbElzU3ltYm9sICYmICFvdGhJc1N5bWJvbCAmJiB2YWx1ZSA8IG90aGVyKSB8fFxuICAgICAgICAgICAgKG90aElzU3ltYm9sICYmIHZhbElzRGVmaW5lZCAmJiB2YWxJc1JlZmxleGl2ZSAmJiAhdmFsSXNOdWxsICYmICF2YWxJc1N5bWJvbCkgfHxcbiAgICAgICAgICAgIChvdGhJc051bGwgJiYgdmFsSXNEZWZpbmVkICYmIHZhbElzUmVmbGV4aXZlKSB8fFxuICAgICAgICAgICAgKCFvdGhJc0RlZmluZWQgJiYgdmFsSXNSZWZsZXhpdmUpIHx8XG4gICAgICAgICAgICAhb3RoSXNSZWZsZXhpdmUpIHtcbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZWQgYnkgYF8ub3JkZXJCeWAgdG8gY29tcGFyZSBtdWx0aXBsZSBwcm9wZXJ0aWVzIG9mIGEgdmFsdWUgdG8gYW5vdGhlclxuICAgICAqIGFuZCBzdGFibGUgc29ydCB0aGVtLlxuICAgICAqXG4gICAgICogSWYgYG9yZGVyc2AgaXMgdW5zcGVjaWZpZWQsIGFsbCB2YWx1ZXMgYXJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIuIE90aGVyd2lzZSxcbiAgICAgKiBzcGVjaWZ5IGFuIG9yZGVyIG9mIFwiZGVzY1wiIGZvciBkZXNjZW5kaW5nIG9yIFwiYXNjXCIgZm9yIGFzY2VuZGluZyBzb3J0IG9yZGVyXG4gICAgICogb2YgY29ycmVzcG9uZGluZyB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb3RoZXIgb2JqZWN0IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtib29sZWFuW118c3RyaW5nW119IG9yZGVycyBUaGUgb3JkZXIgdG8gc29ydCBieSBmb3IgZWFjaCBwcm9wZXJ0eS5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzb3J0IG9yZGVyIGluZGljYXRvciBmb3IgYG9iamVjdGAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29tcGFyZU11bHRpcGxlKG9iamVjdCwgb3RoZXIsIG9yZGVycykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgb2JqQ3JpdGVyaWEgPSBvYmplY3QuY3JpdGVyaWEsXG4gICAgICAgICAgb3RoQ3JpdGVyaWEgPSBvdGhlci5jcml0ZXJpYSxcbiAgICAgICAgICBsZW5ndGggPSBvYmpDcml0ZXJpYS5sZW5ndGgsXG4gICAgICAgICAgb3JkZXJzTGVuZ3RoID0gb3JkZXJzLmxlbmd0aDtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IGNvbXBhcmVBc2NlbmRpbmcob2JqQ3JpdGVyaWFbaW5kZXhdLCBvdGhDcml0ZXJpYVtpbmRleF0pO1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgaWYgKGluZGV4ID49IG9yZGVyc0xlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIG9yZGVyID0gb3JkZXJzW2luZGV4XTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0ICogKG9yZGVyID09ICdkZXNjJyA/IC0xIDogMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIEZpeGVzIGFuIGBBcnJheSNzb3J0YCBidWcgaW4gdGhlIEpTIGVuZ2luZSBlbWJlZGRlZCBpbiBBZG9iZSBhcHBsaWNhdGlvbnNcbiAgICAgIC8vIHRoYXQgY2F1c2VzIGl0LCB1bmRlciBjZXJ0YWluIGNpcmN1bXN0YW5jZXMsIHRvIHByb3ZpZGUgdGhlIHNhbWUgdmFsdWUgZm9yXG4gICAgICAvLyBgb2JqZWN0YCBhbmQgYG90aGVyYC4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qYXNoa2VuYXMvdW5kZXJzY29yZS9wdWxsLzEyNDdcbiAgICAgIC8vIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICAvL1xuICAgICAgLy8gVGhpcyBhbHNvIGVuc3VyZXMgYSBzdGFibGUgc29ydCBpbiBWOCBhbmQgb3RoZXIgZW5naW5lcy5cbiAgICAgIC8vIFNlZSBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD05MCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgcmV0dXJuIG9iamVjdC5pbmRleCAtIG90aGVyLmluZGV4O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgdGhhdCBpcyB0aGUgY29tcG9zaXRpb24gb2YgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzLFxuICAgICAqIHBsYWNlaG9sZGVycywgYW5kIHByb3ZpZGVkIGFyZ3VtZW50cyBpbnRvIGEgc2luZ2xlIGFycmF5IG9mIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJncyBUaGUgcHJvdmlkZWQgYXJndW1lbnRzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHBhcnRpYWxzIFRoZSBhcmd1bWVudHMgdG8gcHJlcGVuZCB0byB0aG9zZSBwcm92aWRlZC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBob2xkZXJzIFRoZSBgcGFydGlhbHNgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXG4gICAgICogQHBhcmFtcyB7Ym9vbGVhbn0gW2lzQ3VycmllZF0gU3BlY2lmeSBjb21wb3NpbmcgZm9yIGEgY3VycmllZCBmdW5jdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjb21wb3NlZCBhcmd1bWVudHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29tcG9zZUFyZ3MoYXJncywgcGFydGlhbHMsIGhvbGRlcnMsIGlzQ3VycmllZCkge1xuICAgICAgdmFyIGFyZ3NJbmRleCA9IC0xLFxuICAgICAgICAgIGFyZ3NMZW5ndGggPSBhcmdzLmxlbmd0aCxcbiAgICAgICAgICBob2xkZXJzTGVuZ3RoID0gaG9sZGVycy5sZW5ndGgsXG4gICAgICAgICAgbGVmdEluZGV4ID0gLTEsXG4gICAgICAgICAgbGVmdExlbmd0aCA9IHBhcnRpYWxzLmxlbmd0aCxcbiAgICAgICAgICByYW5nZUxlbmd0aCA9IG5hdGl2ZU1heChhcmdzTGVuZ3RoIC0gaG9sZGVyc0xlbmd0aCwgMCksXG4gICAgICAgICAgcmVzdWx0ID0gQXJyYXkobGVmdExlbmd0aCArIHJhbmdlTGVuZ3RoKSxcbiAgICAgICAgICBpc1VuY3VycmllZCA9ICFpc0N1cnJpZWQ7XG5cbiAgICAgIHdoaWxlICgrK2xlZnRJbmRleCA8IGxlZnRMZW5ndGgpIHtcbiAgICAgICAgcmVzdWx0W2xlZnRJbmRleF0gPSBwYXJ0aWFsc1tsZWZ0SW5kZXhdO1xuICAgICAgfVxuICAgICAgd2hpbGUgKCsrYXJnc0luZGV4IDwgaG9sZGVyc0xlbmd0aCkge1xuICAgICAgICBpZiAoaXNVbmN1cnJpZWQgfHwgYXJnc0luZGV4IDwgYXJnc0xlbmd0aCkge1xuICAgICAgICAgIHJlc3VsdFtob2xkZXJzW2FyZ3NJbmRleF1dID0gYXJnc1thcmdzSW5kZXhdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB3aGlsZSAocmFuZ2VMZW5ndGgtLSkge1xuICAgICAgICByZXN1bHRbbGVmdEluZGV4KytdID0gYXJnc1thcmdzSW5kZXgrK107XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgY29tcG9zZUFyZ3NgIGV4Y2VwdCB0aGF0IHRoZSBhcmd1bWVudHMgY29tcG9zaXRpb25cbiAgICAgKiBpcyB0YWlsb3JlZCBmb3IgYF8ucGFydGlhbFJpZ2h0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJncyBUaGUgcHJvdmlkZWQgYXJndW1lbnRzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHBhcnRpYWxzIFRoZSBhcmd1bWVudHMgdG8gYXBwZW5kIHRvIHRob3NlIHByb3ZpZGVkLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGhvbGRlcnMgVGhlIGBwYXJ0aWFsc2AgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAgICAgKiBAcGFyYW1zIHtib29sZWFufSBbaXNDdXJyaWVkXSBTcGVjaWZ5IGNvbXBvc2luZyBmb3IgYSBjdXJyaWVkIGZ1bmN0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGNvbXBvc2VkIGFyZ3VtZW50cy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb21wb3NlQXJnc1JpZ2h0KGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzLCBpc0N1cnJpZWQpIHtcbiAgICAgIHZhciBhcmdzSW5kZXggPSAtMSxcbiAgICAgICAgICBhcmdzTGVuZ3RoID0gYXJncy5sZW5ndGgsXG4gICAgICAgICAgaG9sZGVyc0luZGV4ID0gLTEsXG4gICAgICAgICAgaG9sZGVyc0xlbmd0aCA9IGhvbGRlcnMubGVuZ3RoLFxuICAgICAgICAgIHJpZ2h0SW5kZXggPSAtMSxcbiAgICAgICAgICByaWdodExlbmd0aCA9IHBhcnRpYWxzLmxlbmd0aCxcbiAgICAgICAgICByYW5nZUxlbmd0aCA9IG5hdGl2ZU1heChhcmdzTGVuZ3RoIC0gaG9sZGVyc0xlbmd0aCwgMCksXG4gICAgICAgICAgcmVzdWx0ID0gQXJyYXkocmFuZ2VMZW5ndGggKyByaWdodExlbmd0aCksXG4gICAgICAgICAgaXNVbmN1cnJpZWQgPSAhaXNDdXJyaWVkO1xuXG4gICAgICB3aGlsZSAoKythcmdzSW5kZXggPCByYW5nZUxlbmd0aCkge1xuICAgICAgICByZXN1bHRbYXJnc0luZGV4XSA9IGFyZ3NbYXJnc0luZGV4XTtcbiAgICAgIH1cbiAgICAgIHZhciBvZmZzZXQgPSBhcmdzSW5kZXg7XG4gICAgICB3aGlsZSAoKytyaWdodEluZGV4IDwgcmlnaHRMZW5ndGgpIHtcbiAgICAgICAgcmVzdWx0W29mZnNldCArIHJpZ2h0SW5kZXhdID0gcGFydGlhbHNbcmlnaHRJbmRleF07XG4gICAgICB9XG4gICAgICB3aGlsZSAoKytob2xkZXJzSW5kZXggPCBob2xkZXJzTGVuZ3RoKSB7XG4gICAgICAgIGlmIChpc1VuY3VycmllZCB8fCBhcmdzSW5kZXggPCBhcmdzTGVuZ3RoKSB7XG4gICAgICAgICAgcmVzdWx0W29mZnNldCArIGhvbGRlcnNbaG9sZGVyc0luZGV4XV0gPSBhcmdzW2FyZ3NJbmRleCsrXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgdGhlIHZhbHVlcyBvZiBgc291cmNlYCB0byBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBzb3VyY2UgVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIGZyb20uXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5PVtdXSBUaGUgYXJyYXkgdG8gY29weSB2YWx1ZXMgdG8uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29weUFycmF5KHNvdXJjZSwgYXJyYXkpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHNvdXJjZS5sZW5ndGg7XG5cbiAgICAgIGFycmF5IHx8IChhcnJheSA9IEFycmF5KGxlbmd0aCkpO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgYXJyYXlbaW5kZXhdID0gc291cmNlW2luZGV4XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgcHJvcGVydGllcyBvZiBgc291cmNlYCB0byBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyBmcm9tLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHByb3BzIFRoZSBwcm9wZXJ0eSBpZGVudGlmaWVycyB0byBjb3B5LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyB0by5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb3BpZWQgdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29weU9iamVjdChzb3VyY2UsIHByb3BzLCBvYmplY3QsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIHZhciBpc05ldyA9ICFvYmplY3Q7XG4gICAgICBvYmplY3QgfHwgKG9iamVjdCA9IHt9KTtcblxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuXG4gICAgICAgIHZhciBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXJcbiAgICAgICAgICA/IGN1c3RvbWl6ZXIob2JqZWN0W2tleV0sIHNvdXJjZVtrZXldLCBrZXksIG9iamVjdCwgc291cmNlKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNOZXcpIHtcbiAgICAgICAgICBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcGllcyBvd24gc3ltYm9scyBvZiBgc291cmNlYCB0byBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IHRvIGNvcHkgc3ltYm9scyBmcm9tLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgc3ltYm9scyB0by5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvcHlTeW1ib2xzKHNvdXJjZSwgb2JqZWN0KSB7XG4gICAgICByZXR1cm4gY29weU9iamVjdChzb3VyY2UsIGdldFN5bWJvbHMoc291cmNlKSwgb2JqZWN0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgb3duIGFuZCBpbmhlcml0ZWQgc3ltYm9scyBvZiBgc291cmNlYCB0byBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IHRvIGNvcHkgc3ltYm9scyBmcm9tLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgc3ltYm9scyB0by5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvcHlTeW1ib2xzSW4oc291cmNlLCBvYmplY3QpIHtcbiAgICAgIHJldHVybiBjb3B5T2JqZWN0KHNvdXJjZSwgZ2V0U3ltYm9sc0luKHNvdXJjZSksIG9iamVjdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8uZ3JvdXBCeWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHNldHRlciBUaGUgZnVuY3Rpb24gdG8gc2V0IGFjY3VtdWxhdG9yIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaW5pdGlhbGl6ZXJdIFRoZSBhY2N1bXVsYXRvciBvYmplY3QgaW5pdGlhbGl6ZXIuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYWdncmVnYXRvciBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVBZ2dyZWdhdG9yKHNldHRlciwgaW5pdGlhbGl6ZXIpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICAgICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUFnZ3JlZ2F0b3IgOiBiYXNlQWdncmVnYXRvcixcbiAgICAgICAgICAgIGFjY3VtdWxhdG9yID0gaW5pdGlhbGl6ZXIgPyBpbml0aWFsaXplcigpIDoge307XG5cbiAgICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgc2V0dGVyLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMiksIGFjY3VtdWxhdG9yKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8uYXNzaWduYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gYXNzaWduZXIgVGhlIGZ1bmN0aW9uIHRvIGFzc2lnbiB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYXNzaWduZXIgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQXNzaWduZXIoYXNzaWduZXIpIHtcbiAgICAgIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihvYmplY3QsIHNvdXJjZXMpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgICBsZW5ndGggPSBzb3VyY2VzLmxlbmd0aCxcbiAgICAgICAgICAgIGN1c3RvbWl6ZXIgPSBsZW5ndGggPiAxID8gc291cmNlc1tsZW5ndGggLSAxXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGd1YXJkID0gbGVuZ3RoID4gMiA/IHNvdXJjZXNbMl0gOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY3VzdG9taXplciA9IChhc3NpZ25lci5sZW5ndGggPiAzICYmIHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicpXG4gICAgICAgICAgPyAobGVuZ3RoLS0sIGN1c3RvbWl6ZXIpXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHNvdXJjZXNbMF0sIHNvdXJjZXNbMV0sIGd1YXJkKSkge1xuICAgICAgICAgIGN1c3RvbWl6ZXIgPSBsZW5ndGggPCAzID8gdW5kZWZpbmVkIDogY3VzdG9taXplcjtcbiAgICAgICAgICBsZW5ndGggPSAxO1xuICAgICAgICB9XG4gICAgICAgIG9iamVjdCA9IE9iamVjdChvYmplY3QpO1xuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIHZhciBzb3VyY2UgPSBzb3VyY2VzW2luZGV4XTtcbiAgICAgICAgICBpZiAoc291cmNlKSB7XG4gICAgICAgICAgICBhc3NpZ25lcihvYmplY3QsIHNvdXJjZSwgaW5kZXgsIGN1c3RvbWl6ZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBiYXNlRWFjaGAgb3IgYGJhc2VFYWNoUmlnaHRgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGEgY29sbGVjdGlvbi5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBiYXNlIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUJhc2VFYWNoKGVhY2hGdW5jLCBmcm9tUmlnaHQpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICAgICAgICBpZiAoY29sbGVjdGlvbiA9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0FycmF5TGlrZShjb2xsZWN0aW9uKSkge1xuICAgICAgICAgIHJldHVybiBlYWNoRnVuYyhjb2xsZWN0aW9uLCBpdGVyYXRlZSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGxlbmd0aCA9IGNvbGxlY3Rpb24ubGVuZ3RoLFxuICAgICAgICAgICAgaW5kZXggPSBmcm9tUmlnaHQgPyBsZW5ndGggOiAtMSxcbiAgICAgICAgICAgIGl0ZXJhYmxlID0gT2JqZWN0KGNvbGxlY3Rpb24pO1xuXG4gICAgICAgIHdoaWxlICgoZnJvbVJpZ2h0ID8gaW5kZXgtLSA6ICsraW5kZXggPCBsZW5ndGgpKSB7XG4gICAgICAgICAgaWYgKGl0ZXJhdGVlKGl0ZXJhYmxlW2luZGV4XSwgaW5kZXgsIGl0ZXJhYmxlKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGJhc2UgZnVuY3Rpb24gZm9yIG1ldGhvZHMgbGlrZSBgXy5mb3JJbmAgYW5kIGBfLmZvck93bmAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGJhc2UgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQmFzZUZvcihmcm9tUmlnaHQpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QsIGl0ZXJhdGVlLCBrZXlzRnVuYykge1xuICAgICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICAgIGl0ZXJhYmxlID0gT2JqZWN0KG9iamVjdCksXG4gICAgICAgICAgICBwcm9wcyA9IGtleXNGdW5jKG9iamVjdCksXG4gICAgICAgICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cbiAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgICAgdmFyIGtleSA9IHByb3BzW2Zyb21SaWdodCA/IGxlbmd0aCA6ICsraW5kZXhdO1xuICAgICAgICAgIGlmIChpdGVyYXRlZShpdGVyYWJsZVtrZXldLCBrZXksIGl0ZXJhYmxlKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCB3cmFwcyBgZnVuY2AgdG8gaW52b2tlIGl0IHdpdGggdGhlIG9wdGlvbmFsIGB0aGlzYFxuICAgICAqIGJpbmRpbmcgb2YgYHRoaXNBcmdgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB3cmFwLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGNyZWF0ZVdyYXBgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB3cmFwcGVkIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUJpbmQoZnVuYywgYml0bWFzaywgdGhpc0FyZykge1xuICAgICAgdmFyIGlzQmluZCA9IGJpdG1hc2sgJiBXUkFQX0JJTkRfRkxBRyxcbiAgICAgICAgICBDdG9yID0gY3JlYXRlQ3RvcihmdW5jKTtcblxuICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAgICAgdmFyIGZuID0gKHRoaXMgJiYgdGhpcyAhPT0gcm9vdCAmJiB0aGlzIGluc3RhbmNlb2Ygd3JhcHBlcikgPyBDdG9yIDogZnVuYztcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KGlzQmluZCA/IHRoaXNBcmcgOiB0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8ubG93ZXJGaXJzdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2ROYW1lIFRoZSBuYW1lIG9mIHRoZSBgU3RyaW5nYCBjYXNlIG1ldGhvZCB0byB1c2UuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY2FzZSBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVDYXNlRmlyc3QobWV0aG9kTmFtZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuXG4gICAgICAgIHZhciBzdHJTeW1ib2xzID0gaGFzVW5pY29kZShzdHJpbmcpXG4gICAgICAgICAgPyBzdHJpbmdUb0FycmF5KHN0cmluZylcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICB2YXIgY2hyID0gc3RyU3ltYm9sc1xuICAgICAgICAgID8gc3RyU3ltYm9sc1swXVxuICAgICAgICAgIDogc3RyaW5nLmNoYXJBdCgwKTtcblxuICAgICAgICB2YXIgdHJhaWxpbmcgPSBzdHJTeW1ib2xzXG4gICAgICAgICAgPyBjYXN0U2xpY2Uoc3RyU3ltYm9scywgMSkuam9pbignJylcbiAgICAgICAgICA6IHN0cmluZy5zbGljZSgxKTtcblxuICAgICAgICByZXR1cm4gY2hyW21ldGhvZE5hbWVdKCkgKyB0cmFpbGluZztcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8uY2FtZWxDYXNlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgVGhlIGZ1bmN0aW9uIHRvIGNvbWJpbmUgZWFjaCB3b3JkLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNvbXBvdW5kZXIgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQ29tcG91bmRlcihjYWxsYmFjaykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICByZXR1cm4gYXJyYXlSZWR1Y2Uod29yZHMoZGVidXJyKHN0cmluZykucmVwbGFjZShyZUFwb3MsICcnKSksIGNhbGxiYWNrLCAnJyk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHByb2R1Y2VzIGFuIGluc3RhbmNlIG9mIGBDdG9yYCByZWdhcmRsZXNzIG9mXG4gICAgICogd2hldGhlciBpdCB3YXMgaW52b2tlZCBhcyBwYXJ0IG9mIGEgYG5ld2AgZXhwcmVzc2lvbiBvciBieSBgY2FsbGAgb3IgYGFwcGx5YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gQ3RvciBUaGUgY29uc3RydWN0b3IgdG8gd3JhcC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB3cmFwcGVkIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUN0b3IoQ3Rvcikge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAvLyBVc2UgYSBgc3dpdGNoYCBzdGF0ZW1lbnQgdG8gd29yayB3aXRoIGNsYXNzIGNvbnN0cnVjdG9ycy4gU2VlXG4gICAgICAgIC8vIGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLWVjbWFzY3JpcHQtZnVuY3Rpb24tb2JqZWN0cy1jYWxsLXRoaXNhcmd1bWVudC1hcmd1bWVudHNsaXN0XG4gICAgICAgIC8vIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgICBzd2l0Y2ggKGFyZ3MubGVuZ3RoKSB7XG4gICAgICAgICAgY2FzZSAwOiByZXR1cm4gbmV3IEN0b3I7XG4gICAgICAgICAgY2FzZSAxOiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSk7XG4gICAgICAgICAgY2FzZSAyOiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSk7XG4gICAgICAgICAgY2FzZSAzOiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSk7XG4gICAgICAgICAgY2FzZSA0OiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSk7XG4gICAgICAgICAgY2FzZSA1OiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSwgYXJnc1s0XSk7XG4gICAgICAgICAgY2FzZSA2OiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSwgYXJnc1s0XSwgYXJnc1s1XSk7XG4gICAgICAgICAgY2FzZSA3OiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSwgYXJnc1s0XSwgYXJnc1s1XSwgYXJnc1s2XSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRoaXNCaW5kaW5nID0gYmFzZUNyZWF0ZShDdG9yLnByb3RvdHlwZSksXG4gICAgICAgICAgICByZXN1bHQgPSBDdG9yLmFwcGx5KHRoaXNCaW5kaW5nLCBhcmdzKTtcblxuICAgICAgICAvLyBNaW1pYyB0aGUgY29uc3RydWN0b3IncyBgcmV0dXJuYCBiZWhhdmlvci5cbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jeDEzLjIuMiBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgICByZXR1cm4gaXNPYmplY3QocmVzdWx0KSA/IHJlc3VsdCA6IHRoaXNCaW5kaW5nO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCB3cmFwcyBgZnVuY2AgdG8gZW5hYmxlIGN1cnJ5aW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB3cmFwLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGNyZWF0ZVdyYXBgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGFyaXR5IFRoZSBhcml0eSBvZiBgZnVuY2AuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgd3JhcHBlZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVDdXJyeShmdW5jLCBiaXRtYXNrLCBhcml0eSkge1xuICAgICAgdmFyIEN0b3IgPSBjcmVhdGVDdG9yKGZ1bmMpO1xuXG4gICAgICBmdW5jdGlvbiB3cmFwcGVyKCkge1xuICAgICAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCxcbiAgICAgICAgICAgIGFyZ3MgPSBBcnJheShsZW5ndGgpLFxuICAgICAgICAgICAgaW5kZXggPSBsZW5ndGgsXG4gICAgICAgICAgICBwbGFjZWhvbGRlciA9IGdldEhvbGRlcih3cmFwcGVyKTtcblxuICAgICAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgICAgIGFyZ3NbaW5kZXhdID0gYXJndW1lbnRzW2luZGV4XTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaG9sZGVycyA9IChsZW5ndGggPCAzICYmIGFyZ3NbMF0gIT09IHBsYWNlaG9sZGVyICYmIGFyZ3NbbGVuZ3RoIC0gMV0gIT09IHBsYWNlaG9sZGVyKVxuICAgICAgICAgID8gW11cbiAgICAgICAgICA6IHJlcGxhY2VIb2xkZXJzKGFyZ3MsIHBsYWNlaG9sZGVyKTtcblxuICAgICAgICBsZW5ndGggLT0gaG9sZGVycy5sZW5ndGg7XG4gICAgICAgIGlmIChsZW5ndGggPCBhcml0eSkge1xuICAgICAgICAgIHJldHVybiBjcmVhdGVSZWN1cnJ5KFxuICAgICAgICAgICAgZnVuYywgYml0bWFzaywgY3JlYXRlSHlicmlkLCB3cmFwcGVyLnBsYWNlaG9sZGVyLCB1bmRlZmluZWQsXG4gICAgICAgICAgICBhcmdzLCBob2xkZXJzLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgYXJpdHkgLSBsZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBmbiA9ICh0aGlzICYmIHRoaXMgIT09IHJvb3QgJiYgdGhpcyBpbnN0YW5jZW9mIHdyYXBwZXIpID8gQ3RvciA6IGZ1bmM7XG4gICAgICAgIHJldHVybiBhcHBseShmbiwgdGhpcywgYXJncyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYF8uZmluZGAgb3IgYF8uZmluZExhc3RgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmaW5kSW5kZXhGdW5jIFRoZSBmdW5jdGlvbiB0byBmaW5kIHRoZSBjb2xsZWN0aW9uIGluZGV4LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZpbmQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlRmluZChmaW5kSW5kZXhGdW5jKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgcHJlZGljYXRlLCBmcm9tSW5kZXgpIHtcbiAgICAgICAgdmFyIGl0ZXJhYmxlID0gT2JqZWN0KGNvbGxlY3Rpb24pO1xuICAgICAgICBpZiAoIWlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pKSB7XG4gICAgICAgICAgdmFyIGl0ZXJhdGVlID0gZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKTtcbiAgICAgICAgICBjb2xsZWN0aW9uID0ga2V5cyhjb2xsZWN0aW9uKTtcbiAgICAgICAgICBwcmVkaWNhdGUgPSBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIGl0ZXJhdGVlKGl0ZXJhYmxlW2tleV0sIGtleSwgaXRlcmFibGUpOyB9O1xuICAgICAgICB9XG4gICAgICAgIHZhciBpbmRleCA9IGZpbmRJbmRleEZ1bmMoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBmcm9tSW5kZXgpO1xuICAgICAgICByZXR1cm4gaW5kZXggPiAtMSA/IGl0ZXJhYmxlW2l0ZXJhdGVlID8gY29sbGVjdGlvbltpbmRleF0gOiBpbmRleF0gOiB1bmRlZmluZWQ7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBgXy5mbG93YCBvciBgXy5mbG93UmlnaHRgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmbG93IGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUZsb3coZnJvbVJpZ2h0KSB7XG4gICAgICByZXR1cm4gZmxhdFJlc3QoZnVuY3Rpb24oZnVuY3MpIHtcbiAgICAgICAgdmFyIGxlbmd0aCA9IGZ1bmNzLmxlbmd0aCxcbiAgICAgICAgICAgIGluZGV4ID0gbGVuZ3RoLFxuICAgICAgICAgICAgcHJlcmVxID0gTG9kYXNoV3JhcHBlci5wcm90b3R5cGUudGhydTtcblxuICAgICAgICBpZiAoZnJvbVJpZ2h0KSB7XG4gICAgICAgICAgZnVuY3MucmV2ZXJzZSgpO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgICAgdmFyIGZ1bmMgPSBmdW5jc1tpbmRleF07XG4gICAgICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHByZXJlcSAmJiAhd3JhcHBlciAmJiBnZXRGdW5jTmFtZShmdW5jKSA9PSAnd3JhcHBlcicpIHtcbiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gbmV3IExvZGFzaFdyYXBwZXIoW10sIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpbmRleCA9IHdyYXBwZXIgPyBpbmRleCA6IGxlbmd0aDtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICBmdW5jID0gZnVuY3NbaW5kZXhdO1xuXG4gICAgICAgICAgdmFyIGZ1bmNOYW1lID0gZ2V0RnVuY05hbWUoZnVuYyksXG4gICAgICAgICAgICAgIGRhdGEgPSBmdW5jTmFtZSA9PSAnd3JhcHBlcicgPyBnZXREYXRhKGZ1bmMpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgaWYgKGRhdGEgJiYgaXNMYXppYWJsZShkYXRhWzBdKSAmJlxuICAgICAgICAgICAgICAgIGRhdGFbMV0gPT0gKFdSQVBfQVJZX0ZMQUcgfCBXUkFQX0NVUlJZX0ZMQUcgfCBXUkFQX1BBUlRJQUxfRkxBRyB8IFdSQVBfUkVBUkdfRkxBRykgJiZcbiAgICAgICAgICAgICAgICAhZGF0YVs0XS5sZW5ndGggJiYgZGF0YVs5XSA9PSAxXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgd3JhcHBlciA9IHdyYXBwZXJbZ2V0RnVuY05hbWUoZGF0YVswXSldLmFwcGx5KHdyYXBwZXIsIGRhdGFbM10pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3cmFwcGVyID0gKGZ1bmMubGVuZ3RoID09IDEgJiYgaXNMYXppYWJsZShmdW5jKSlcbiAgICAgICAgICAgICAgPyB3cmFwcGVyW2Z1bmNOYW1lXSgpXG4gICAgICAgICAgICAgIDogd3JhcHBlci50aHJ1KGZ1bmMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgICAgICAgIHZhbHVlID0gYXJnc1swXTtcblxuICAgICAgICAgIGlmICh3cmFwcGVyICYmIGFyZ3MubGVuZ3RoID09IDEgJiYgaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwcGVyLnBsYW50KHZhbHVlKS52YWx1ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgaW5kZXggPSAwLFxuICAgICAgICAgICAgICByZXN1bHQgPSBsZW5ndGggPyBmdW5jc1tpbmRleF0uYXBwbHkodGhpcywgYXJncykgOiB2YWx1ZTtcblxuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBmdW5jc1tpbmRleF0uY2FsbCh0aGlzLCByZXN1bHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIHRvIGludm9rZSBpdCB3aXRoIG9wdGlvbmFsIGB0aGlzYFxuICAgICAqIGJpbmRpbmcgb2YgYHRoaXNBcmdgLCBwYXJ0aWFsIGFwcGxpY2F0aW9uLCBhbmQgY3VycnlpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258c3RyaW5nfSBmdW5jIFRoZSBmdW5jdGlvbiBvciBtZXRob2QgbmFtZSB0byB3cmFwLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGNyZWF0ZVdyYXBgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbcGFydGlhbHNdIFRoZSBhcmd1bWVudHMgdG8gcHJlcGVuZCB0byB0aG9zZSBwcm92aWRlZCB0b1xuICAgICAqICB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtob2xkZXJzXSBUaGUgYHBhcnRpYWxzYCBwbGFjZWhvbGRlciBpbmRleGVzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwYXJ0aWFsc1JpZ2h0XSBUaGUgYXJndW1lbnRzIHRvIGFwcGVuZCB0byB0aG9zZSBwcm92aWRlZFxuICAgICAqICB0byB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtob2xkZXJzUmlnaHRdIFRoZSBgcGFydGlhbHNSaWdodGAgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbYXJnUG9zXSBUaGUgYXJndW1lbnQgcG9zaXRpb25zIG9mIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcnldIFRoZSBhcml0eSBjYXAgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJpdHldIFRoZSBhcml0eSBvZiBgZnVuY2AuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgd3JhcHBlZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVIeWJyaWQoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMsIHBhcnRpYWxzUmlnaHQsIGhvbGRlcnNSaWdodCwgYXJnUG9zLCBhcnksIGFyaXR5KSB7XG4gICAgICB2YXIgaXNBcnkgPSBiaXRtYXNrICYgV1JBUF9BUllfRkxBRyxcbiAgICAgICAgICBpc0JpbmQgPSBiaXRtYXNrICYgV1JBUF9CSU5EX0ZMQUcsXG4gICAgICAgICAgaXNCaW5kS2V5ID0gYml0bWFzayAmIFdSQVBfQklORF9LRVlfRkxBRyxcbiAgICAgICAgICBpc0N1cnJpZWQgPSBiaXRtYXNrICYgKFdSQVBfQ1VSUllfRkxBRyB8IFdSQVBfQ1VSUllfUklHSFRfRkxBRyksXG4gICAgICAgICAgaXNGbGlwID0gYml0bWFzayAmIFdSQVBfRkxJUF9GTEFHLFxuICAgICAgICAgIEN0b3IgPSBpc0JpbmRLZXkgPyB1bmRlZmluZWQgOiBjcmVhdGVDdG9yKGZ1bmMpO1xuXG4gICAgICBmdW5jdGlvbiB3cmFwcGVyKCkge1xuICAgICAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCxcbiAgICAgICAgICAgIGFyZ3MgPSBBcnJheShsZW5ndGgpLFxuICAgICAgICAgICAgaW5kZXggPSBsZW5ndGg7XG5cbiAgICAgICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgICAgICBhcmdzW2luZGV4XSA9IGFyZ3VtZW50c1tpbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQ3VycmllZCkge1xuICAgICAgICAgIHZhciBwbGFjZWhvbGRlciA9IGdldEhvbGRlcih3cmFwcGVyKSxcbiAgICAgICAgICAgICAgaG9sZGVyc0NvdW50ID0gY291bnRIb2xkZXJzKGFyZ3MsIHBsYWNlaG9sZGVyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFydGlhbHMpIHtcbiAgICAgICAgICBhcmdzID0gY29tcG9zZUFyZ3MoYXJncywgcGFydGlhbHMsIGhvbGRlcnMsIGlzQ3VycmllZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcnRpYWxzUmlnaHQpIHtcbiAgICAgICAgICBhcmdzID0gY29tcG9zZUFyZ3NSaWdodChhcmdzLCBwYXJ0aWFsc1JpZ2h0LCBob2xkZXJzUmlnaHQsIGlzQ3VycmllZCk7XG4gICAgICAgIH1cbiAgICAgICAgbGVuZ3RoIC09IGhvbGRlcnNDb3VudDtcbiAgICAgICAgaWYgKGlzQ3VycmllZCAmJiBsZW5ndGggPCBhcml0eSkge1xuICAgICAgICAgIHZhciBuZXdIb2xkZXJzID0gcmVwbGFjZUhvbGRlcnMoYXJncywgcGxhY2Vob2xkZXIpO1xuICAgICAgICAgIHJldHVybiBjcmVhdGVSZWN1cnJ5KFxuICAgICAgICAgICAgZnVuYywgYml0bWFzaywgY3JlYXRlSHlicmlkLCB3cmFwcGVyLnBsYWNlaG9sZGVyLCB0aGlzQXJnLFxuICAgICAgICAgICAgYXJncywgbmV3SG9sZGVycywgYXJnUG9zLCBhcnksIGFyaXR5IC0gbGVuZ3RoXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdGhpc0JpbmRpbmcgPSBpc0JpbmQgPyB0aGlzQXJnIDogdGhpcyxcbiAgICAgICAgICAgIGZuID0gaXNCaW5kS2V5ID8gdGhpc0JpbmRpbmdbZnVuY10gOiBmdW5jO1xuXG4gICAgICAgIGxlbmd0aCA9IGFyZ3MubGVuZ3RoO1xuICAgICAgICBpZiAoYXJnUG9zKSB7XG4gICAgICAgICAgYXJncyA9IHJlb3JkZXIoYXJncywgYXJnUG9zKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0ZsaXAgJiYgbGVuZ3RoID4gMSkge1xuICAgICAgICAgIGFyZ3MucmV2ZXJzZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0FyeSAmJiBhcnkgPCBsZW5ndGgpIHtcbiAgICAgICAgICBhcmdzLmxlbmd0aCA9IGFyeTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcyAmJiB0aGlzICE9PSByb290ICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyKSB7XG4gICAgICAgICAgZm4gPSBDdG9yIHx8IGNyZWF0ZUN0b3IoZm4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzQmluZGluZywgYXJncyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gbGlrZSBgXy5pbnZlcnRCeWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHNldHRlciBUaGUgZnVuY3Rpb24gdG8gc2V0IGFjY3VtdWxhdG9yIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB0b0l0ZXJhdGVlIFRoZSBmdW5jdGlvbiB0byByZXNvbHZlIGl0ZXJhdGVlcy5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBpbnZlcnRlciBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVJbnZlcnRlcihzZXR0ZXIsIHRvSXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QsIGl0ZXJhdGVlKSB7XG4gICAgICAgIHJldHVybiBiYXNlSW52ZXJ0ZXIob2JqZWN0LCBzZXR0ZXIsIHRvSXRlcmF0ZWUoaXRlcmF0ZWUpLCB7fSk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHBlcmZvcm1zIGEgbWF0aGVtYXRpY2FsIG9wZXJhdGlvbiBvbiB0d28gdmFsdWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcGVyYXRvciBUaGUgZnVuY3Rpb24gdG8gcGVyZm9ybSB0aGUgb3BlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZGVmYXVsdFZhbHVlXSBUaGUgdmFsdWUgdXNlZCBmb3IgYHVuZGVmaW5lZGAgYXJndW1lbnRzLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG1hdGhlbWF0aWNhbCBvcGVyYXRpb24gZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlTWF0aE9wZXJhdGlvbihvcGVyYXRvciwgZGVmYXVsdFZhbHVlKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24odmFsdWUsIG90aGVyKSB7XG4gICAgICAgIHZhciByZXN1bHQ7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmIG90aGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmVzdWx0ID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG90aGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBvdGhlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyB8fCB0eXBlb2Ygb3RoZXIgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHZhbHVlID0gYmFzZVRvU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIG90aGVyID0gYmFzZVRvU3RyaW5nKG90aGVyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSBiYXNlVG9OdW1iZXIodmFsdWUpO1xuICAgICAgICAgICAgb3RoZXIgPSBiYXNlVG9OdW1iZXIob3RoZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQgPSBvcGVyYXRvcih2YWx1ZSwgb3RoZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBsaWtlIGBfLm92ZXJgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBhcnJheUZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBpdGVyYXRlZXMuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgb3ZlciBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVPdmVyKGFycmF5RnVuYykge1xuICAgICAgcmV0dXJuIGZsYXRSZXN0KGZ1bmN0aW9uKGl0ZXJhdGVlcykge1xuICAgICAgICBpdGVyYXRlZXMgPSBhcnJheU1hcChpdGVyYXRlZXMsIGJhc2VVbmFyeShnZXRJdGVyYXRlZSgpKSk7XG4gICAgICAgIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihhcmdzKSB7XG4gICAgICAgICAgdmFyIHRoaXNBcmcgPSB0aGlzO1xuICAgICAgICAgIHJldHVybiBhcnJheUZ1bmMoaXRlcmF0ZWVzLCBmdW5jdGlvbihpdGVyYXRlZSkge1xuICAgICAgICAgICAgcmV0dXJuIGFwcGx5KGl0ZXJhdGVlLCB0aGlzQXJnLCBhcmdzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHRoZSBwYWRkaW5nIGZvciBgc3RyaW5nYCBiYXNlZCBvbiBgbGVuZ3RoYC4gVGhlIGBjaGFyc2Agc3RyaW5nXG4gICAgICogaXMgdHJ1bmNhdGVkIGlmIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBleGNlZWRzIGBsZW5ndGhgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbGVuZ3RoIFRoZSBwYWRkaW5nIGxlbmd0aC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYXJzPScgJ10gVGhlIHN0cmluZyB1c2VkIGFzIHBhZGRpbmcuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcGFkZGluZyBmb3IgYHN0cmluZ2AuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlUGFkZGluZyhsZW5ndGgsIGNoYXJzKSB7XG4gICAgICBjaGFycyA9IGNoYXJzID09PSB1bmRlZmluZWQgPyAnICcgOiBiYXNlVG9TdHJpbmcoY2hhcnMpO1xuXG4gICAgICB2YXIgY2hhcnNMZW5ndGggPSBjaGFycy5sZW5ndGg7XG4gICAgICBpZiAoY2hhcnNMZW5ndGggPCAyKSB7XG4gICAgICAgIHJldHVybiBjaGFyc0xlbmd0aCA/IGJhc2VSZXBlYXQoY2hhcnMsIGxlbmd0aCkgOiBjaGFycztcbiAgICAgIH1cbiAgICAgIHZhciByZXN1bHQgPSBiYXNlUmVwZWF0KGNoYXJzLCBuYXRpdmVDZWlsKGxlbmd0aCAvIHN0cmluZ1NpemUoY2hhcnMpKSk7XG4gICAgICByZXR1cm4gaGFzVW5pY29kZShjaGFycylcbiAgICAgICAgPyBjYXN0U2xpY2Uoc3RyaW5nVG9BcnJheShyZXN1bHQpLCAwLCBsZW5ndGgpLmpvaW4oJycpXG4gICAgICAgIDogcmVzdWx0LnNsaWNlKDAsIGxlbmd0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIHRvIGludm9rZSBpdCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZ1xuICAgICAqIG9mIGB0aGlzQXJnYCBhbmQgYHBhcnRpYWxzYCBwcmVwZW5kZWQgdG8gdGhlIGFyZ3VtZW50cyBpdCByZWNlaXZlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBjcmVhdGVXcmFwYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEBwYXJhbSB7Kn0gdGhpc0FyZyBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHBhcnRpYWxzIFRoZSBhcmd1bWVudHMgdG8gcHJlcGVuZCB0byB0aG9zZSBwcm92aWRlZCB0b1xuICAgICAqICB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHdyYXBwZWQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlUGFydGlhbChmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBwYXJ0aWFscykge1xuICAgICAgdmFyIGlzQmluZCA9IGJpdG1hc2sgJiBXUkFQX0JJTkRfRkxBRyxcbiAgICAgICAgICBDdG9yID0gY3JlYXRlQ3RvcihmdW5jKTtcblxuICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAgICAgdmFyIGFyZ3NJbmRleCA9IC0xLFxuICAgICAgICAgICAgYXJnc0xlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG4gICAgICAgICAgICBsZWZ0SW5kZXggPSAtMSxcbiAgICAgICAgICAgIGxlZnRMZW5ndGggPSBwYXJ0aWFscy5sZW5ndGgsXG4gICAgICAgICAgICBhcmdzID0gQXJyYXkobGVmdExlbmd0aCArIGFyZ3NMZW5ndGgpLFxuICAgICAgICAgICAgZm4gPSAodGhpcyAmJiB0aGlzICE9PSByb290ICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyKSA/IEN0b3IgOiBmdW5jO1xuXG4gICAgICAgIHdoaWxlICgrK2xlZnRJbmRleCA8IGxlZnRMZW5ndGgpIHtcbiAgICAgICAgICBhcmdzW2xlZnRJbmRleF0gPSBwYXJ0aWFsc1tsZWZ0SW5kZXhdO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChhcmdzTGVuZ3RoLS0pIHtcbiAgICAgICAgICBhcmdzW2xlZnRJbmRleCsrXSA9IGFyZ3VtZW50c1srK2FyZ3NJbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFwcGx5KGZuLCBpc0JpbmQgPyB0aGlzQXJnIDogdGhpcywgYXJncyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYF8ucmFuZ2VgIG9yIGBfLnJhbmdlUmlnaHRgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyByYW5nZSBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVSYW5nZShmcm9tUmlnaHQpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihzdGFydCwgZW5kLCBzdGVwKSB7XG4gICAgICAgIGlmIChzdGVwICYmIHR5cGVvZiBzdGVwICE9ICdudW1iZXInICYmIGlzSXRlcmF0ZWVDYWxsKHN0YXJ0LCBlbmQsIHN0ZXApKSB7XG4gICAgICAgICAgZW5kID0gc3RlcCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICAvLyBFbnN1cmUgdGhlIHNpZ24gb2YgYC0wYCBpcyBwcmVzZXJ2ZWQuXG4gICAgICAgIHN0YXJ0ID0gdG9GaW5pdGUoc3RhcnQpO1xuICAgICAgICBpZiAoZW5kID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBlbmQgPSBzdGFydDtcbiAgICAgICAgICBzdGFydCA9IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZW5kID0gdG9GaW5pdGUoZW5kKTtcbiAgICAgICAgfVxuICAgICAgICBzdGVwID0gc3RlcCA9PT0gdW5kZWZpbmVkID8gKHN0YXJ0IDwgZW5kID8gMSA6IC0xKSA6IHRvRmluaXRlKHN0ZXApO1xuICAgICAgICByZXR1cm4gYmFzZVJhbmdlKHN0YXJ0LCBlbmQsIHN0ZXAsIGZyb21SaWdodCk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHBlcmZvcm1zIGEgcmVsYXRpb25hbCBvcGVyYXRpb24gb24gdHdvIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3BlcmF0b3IgVGhlIGZ1bmN0aW9uIHRvIHBlcmZvcm0gdGhlIG9wZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyByZWxhdGlvbmFsIG9wZXJhdGlvbiBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVSZWxhdGlvbmFsT3BlcmF0aW9uKG9wZXJhdG9yKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24odmFsdWUsIG90aGVyKSB7XG4gICAgICAgIGlmICghKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyAmJiB0eXBlb2Ygb3RoZXIgPT0gJ3N0cmluZycpKSB7XG4gICAgICAgICAgdmFsdWUgPSB0b051bWJlcih2YWx1ZSk7XG4gICAgICAgICAgb3RoZXIgPSB0b051bWJlcihvdGhlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9wZXJhdG9yKHZhbHVlLCBvdGhlcik7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHdyYXBzIGBmdW5jYCB0byBjb250aW51ZSBjdXJyeWluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBjcmVhdGVXcmFwYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHdyYXBGdW5jIFRoZSBmdW5jdGlvbiB0byBjcmVhdGUgdGhlIGBmdW5jYCB3cmFwcGVyLlxuICAgICAqIEBwYXJhbSB7Kn0gcGxhY2Vob2xkZXIgVGhlIHBsYWNlaG9sZGVyIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3BhcnRpYWxzXSBUaGUgYXJndW1lbnRzIHRvIHByZXBlbmQgdG8gdGhvc2UgcHJvdmlkZWQgdG9cbiAgICAgKiAgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc10gVGhlIGBwYXJ0aWFsc2AgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbYXJnUG9zXSBUaGUgYXJndW1lbnQgcG9zaXRpb25zIG9mIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcnldIFRoZSBhcml0eSBjYXAgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJpdHldIFRoZSBhcml0eSBvZiBgZnVuY2AuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgd3JhcHBlZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVSZWN1cnJ5KGZ1bmMsIGJpdG1hc2ssIHdyYXBGdW5jLCBwbGFjZWhvbGRlciwgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMsIGFyZ1BvcywgYXJ5LCBhcml0eSkge1xuICAgICAgdmFyIGlzQ3VycnkgPSBiaXRtYXNrICYgV1JBUF9DVVJSWV9GTEFHLFxuICAgICAgICAgIG5ld0hvbGRlcnMgPSBpc0N1cnJ5ID8gaG9sZGVycyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBuZXdIb2xkZXJzUmlnaHQgPSBpc0N1cnJ5ID8gdW5kZWZpbmVkIDogaG9sZGVycyxcbiAgICAgICAgICBuZXdQYXJ0aWFscyA9IGlzQ3VycnkgPyBwYXJ0aWFscyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBuZXdQYXJ0aWFsc1JpZ2h0ID0gaXNDdXJyeSA/IHVuZGVmaW5lZCA6IHBhcnRpYWxzO1xuXG4gICAgICBiaXRtYXNrIHw9IChpc0N1cnJ5ID8gV1JBUF9QQVJUSUFMX0ZMQUcgOiBXUkFQX1BBUlRJQUxfUklHSFRfRkxBRyk7XG4gICAgICBiaXRtYXNrICY9IH4oaXNDdXJyeSA/IFdSQVBfUEFSVElBTF9SSUdIVF9GTEFHIDogV1JBUF9QQVJUSUFMX0ZMQUcpO1xuXG4gICAgICBpZiAoIShiaXRtYXNrICYgV1JBUF9DVVJSWV9CT1VORF9GTEFHKSkge1xuICAgICAgICBiaXRtYXNrICY9IH4oV1JBUF9CSU5EX0ZMQUcgfCBXUkFQX0JJTkRfS0VZX0ZMQUcpO1xuICAgICAgfVxuICAgICAgdmFyIG5ld0RhdGEgPSBbXG4gICAgICAgIGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIG5ld1BhcnRpYWxzLCBuZXdIb2xkZXJzLCBuZXdQYXJ0aWFsc1JpZ2h0LFxuICAgICAgICBuZXdIb2xkZXJzUmlnaHQsIGFyZ1BvcywgYXJ5LCBhcml0eVxuICAgICAgXTtcblxuICAgICAgdmFyIHJlc3VsdCA9IHdyYXBGdW5jLmFwcGx5KHVuZGVmaW5lZCwgbmV3RGF0YSk7XG4gICAgICBpZiAoaXNMYXppYWJsZShmdW5jKSkge1xuICAgICAgICBzZXREYXRhKHJlc3VsdCwgbmV3RGF0YSk7XG4gICAgICB9XG4gICAgICByZXN1bHQucGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICAgIHJldHVybiBzZXRXcmFwVG9TdHJpbmcocmVzdWx0LCBmdW5jLCBiaXRtYXNrKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gbGlrZSBgXy5yb3VuZGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2ROYW1lIFRoZSBuYW1lIG9mIHRoZSBgTWF0aGAgbWV0aG9kIHRvIHVzZSB3aGVuIHJvdW5kaW5nLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHJvdW5kIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZVJvdW5kKG1ldGhvZE5hbWUpIHtcbiAgICAgIHZhciBmdW5jID0gTWF0aFttZXRob2ROYW1lXTtcbiAgICAgIHJldHVybiBmdW5jdGlvbihudW1iZXIsIHByZWNpc2lvbikge1xuICAgICAgICBudW1iZXIgPSB0b051bWJlcihudW1iZXIpO1xuICAgICAgICBwcmVjaXNpb24gPSBwcmVjaXNpb24gPT0gbnVsbCA/IDAgOiBuYXRpdmVNaW4odG9JbnRlZ2VyKHByZWNpc2lvbiksIDI5Mik7XG4gICAgICAgIGlmIChwcmVjaXNpb24gJiYgbmF0aXZlSXNGaW5pdGUobnVtYmVyKSkge1xuICAgICAgICAgIC8vIFNoaWZ0IHdpdGggZXhwb25lbnRpYWwgbm90YXRpb24gdG8gYXZvaWQgZmxvYXRpbmctcG9pbnQgaXNzdWVzLlxuICAgICAgICAgIC8vIFNlZSBbTUROXShodHRwczovL21kbi5pby9yb3VuZCNFeGFtcGxlcykgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgICAgICB2YXIgcGFpciA9ICh0b1N0cmluZyhudW1iZXIpICsgJ2UnKS5zcGxpdCgnZScpLFxuICAgICAgICAgICAgICB2YWx1ZSA9IGZ1bmMocGFpclswXSArICdlJyArICgrcGFpclsxXSArIHByZWNpc2lvbikpO1xuXG4gICAgICAgICAgcGFpciA9ICh0b1N0cmluZyh2YWx1ZSkgKyAnZScpLnNwbGl0KCdlJyk7XG4gICAgICAgICAgcmV0dXJuICsocGFpclswXSArICdlJyArICgrcGFpclsxXSAtIHByZWNpc2lvbikpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmdW5jKG51bWJlcik7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzZXQgb2JqZWN0IG9mIGB2YWx1ZXNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byBhZGQgdG8gdGhlIHNldC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgc2V0LlxuICAgICAqL1xuICAgIHZhciBjcmVhdGVTZXQgPSAhKFNldCAmJiAoMSAvIHNldFRvQXJyYXkobmV3IFNldChbLC0wXSkpWzFdKSA9PSBJTkZJTklUWSkgPyBub29wIDogZnVuY3Rpb24odmFsdWVzKSB7XG4gICAgICByZXR1cm4gbmV3IFNldCh2YWx1ZXMpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYF8udG9QYWlyc2Agb3IgYF8udG9QYWlyc0luYCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0ga2V5c0Z1bmMgVGhlIGZ1bmN0aW9uIHRvIGdldCB0aGUga2V5cyBvZiBhIGdpdmVuIG9iamVjdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBwYWlycyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVUb1BhaXJzKGtleXNGdW5jKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgIHZhciB0YWcgPSBnZXRUYWcob2JqZWN0KTtcbiAgICAgICAgaWYgKHRhZyA9PSBtYXBUYWcpIHtcbiAgICAgICAgICByZXR1cm4gbWFwVG9BcnJheShvYmplY3QpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YWcgPT0gc2V0VGFnKSB7XG4gICAgICAgICAgcmV0dXJuIHNldFRvUGFpcnMob2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYmFzZVRvUGFpcnMob2JqZWN0LCBrZXlzRnVuYyhvYmplY3QpKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgZWl0aGVyIGN1cnJpZXMgb3IgaW52b2tlcyBgZnVuY2Agd2l0aCBvcHRpb25hbFxuICAgICAqIGB0aGlzYCBiaW5kaW5nIGFuZCBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258c3RyaW5nfSBmdW5jIFRoZSBmdW5jdGlvbiBvciBtZXRob2QgbmFtZSB0byB3cmFwLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLlxuICAgICAqICAgIDEgLSBgXy5iaW5kYFxuICAgICAqICAgIDIgLSBgXy5iaW5kS2V5YFxuICAgICAqICAgIDQgLSBgXy5jdXJyeWAgb3IgYF8uY3VycnlSaWdodGAgb2YgYSBib3VuZCBmdW5jdGlvblxuICAgICAqICAgIDggLSBgXy5jdXJyeWBcbiAgICAgKiAgIDE2IC0gYF8uY3VycnlSaWdodGBcbiAgICAgKiAgIDMyIC0gYF8ucGFydGlhbGBcbiAgICAgKiAgIDY0IC0gYF8ucGFydGlhbFJpZ2h0YFxuICAgICAqICAxMjggLSBgXy5yZWFyZ2BcbiAgICAgKiAgMjU2IC0gYF8uYXJ5YFxuICAgICAqICA1MTIgLSBgXy5mbGlwYFxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3BhcnRpYWxzXSBUaGUgYXJndW1lbnRzIHRvIGJlIHBhcnRpYWxseSBhcHBsaWVkLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtob2xkZXJzXSBUaGUgYHBhcnRpYWxzYCBwbGFjZWhvbGRlciBpbmRleGVzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFthcmdQb3NdIFRoZSBhcmd1bWVudCBwb3NpdGlvbnMgb2YgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyeV0gVGhlIGFyaXR5IGNhcCBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcml0eV0gVGhlIGFyaXR5IG9mIGBmdW5jYC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB3cmFwcGVkIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZVdyYXAoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMsIGFyZ1BvcywgYXJ5LCBhcml0eSkge1xuICAgICAgdmFyIGlzQmluZEtleSA9IGJpdG1hc2sgJiBXUkFQX0JJTkRfS0VZX0ZMQUc7XG4gICAgICBpZiAoIWlzQmluZEtleSAmJiB0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIHZhciBsZW5ndGggPSBwYXJ0aWFscyA/IHBhcnRpYWxzLmxlbmd0aCA6IDA7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICBiaXRtYXNrICY9IH4oV1JBUF9QQVJUSUFMX0ZMQUcgfCBXUkFQX1BBUlRJQUxfUklHSFRfRkxBRyk7XG4gICAgICAgIHBhcnRpYWxzID0gaG9sZGVycyA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGFyeSA9IGFyeSA9PT0gdW5kZWZpbmVkID8gYXJ5IDogbmF0aXZlTWF4KHRvSW50ZWdlcihhcnkpLCAwKTtcbiAgICAgIGFyaXR5ID0gYXJpdHkgPT09IHVuZGVmaW5lZCA/IGFyaXR5IDogdG9JbnRlZ2VyKGFyaXR5KTtcbiAgICAgIGxlbmd0aCAtPSBob2xkZXJzID8gaG9sZGVycy5sZW5ndGggOiAwO1xuXG4gICAgICBpZiAoYml0bWFzayAmIFdSQVBfUEFSVElBTF9SSUdIVF9GTEFHKSB7XG4gICAgICAgIHZhciBwYXJ0aWFsc1JpZ2h0ID0gcGFydGlhbHMsXG4gICAgICAgICAgICBob2xkZXJzUmlnaHQgPSBob2xkZXJzO1xuXG4gICAgICAgIHBhcnRpYWxzID0gaG9sZGVycyA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHZhciBkYXRhID0gaXNCaW5kS2V5ID8gdW5kZWZpbmVkIDogZ2V0RGF0YShmdW5jKTtcblxuICAgICAgdmFyIG5ld0RhdGEgPSBbXG4gICAgICAgIGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzLCBwYXJ0aWFsc1JpZ2h0LCBob2xkZXJzUmlnaHQsXG4gICAgICAgIGFyZ1BvcywgYXJ5LCBhcml0eVxuICAgICAgXTtcblxuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgbWVyZ2VEYXRhKG5ld0RhdGEsIGRhdGEpO1xuICAgICAgfVxuICAgICAgZnVuYyA9IG5ld0RhdGFbMF07XG4gICAgICBiaXRtYXNrID0gbmV3RGF0YVsxXTtcbiAgICAgIHRoaXNBcmcgPSBuZXdEYXRhWzJdO1xuICAgICAgcGFydGlhbHMgPSBuZXdEYXRhWzNdO1xuICAgICAgaG9sZGVycyA9IG5ld0RhdGFbNF07XG4gICAgICBhcml0eSA9IG5ld0RhdGFbOV0gPSBuZXdEYXRhWzldID09PSB1bmRlZmluZWRcbiAgICAgICAgPyAoaXNCaW5kS2V5ID8gMCA6IGZ1bmMubGVuZ3RoKVxuICAgICAgICA6IG5hdGl2ZU1heChuZXdEYXRhWzldIC0gbGVuZ3RoLCAwKTtcblxuICAgICAgaWYgKCFhcml0eSAmJiBiaXRtYXNrICYgKFdSQVBfQ1VSUllfRkxBRyB8IFdSQVBfQ1VSUllfUklHSFRfRkxBRykpIHtcbiAgICAgICAgYml0bWFzayAmPSB+KFdSQVBfQ1VSUllfRkxBRyB8IFdSQVBfQ1VSUllfUklHSFRfRkxBRyk7XG4gICAgICB9XG4gICAgICBpZiAoIWJpdG1hc2sgfHwgYml0bWFzayA9PSBXUkFQX0JJTkRfRkxBRykge1xuICAgICAgICB2YXIgcmVzdWx0ID0gY3JlYXRlQmluZChmdW5jLCBiaXRtYXNrLCB0aGlzQXJnKTtcbiAgICAgIH0gZWxzZSBpZiAoYml0bWFzayA9PSBXUkFQX0NVUlJZX0ZMQUcgfHwgYml0bWFzayA9PSBXUkFQX0NVUlJZX1JJR0hUX0ZMQUcpIHtcbiAgICAgICAgcmVzdWx0ID0gY3JlYXRlQ3VycnkoZnVuYywgYml0bWFzaywgYXJpdHkpO1xuICAgICAgfSBlbHNlIGlmICgoYml0bWFzayA9PSBXUkFQX1BBUlRJQUxfRkxBRyB8fCBiaXRtYXNrID09IChXUkFQX0JJTkRfRkxBRyB8IFdSQVBfUEFSVElBTF9GTEFHKSkgJiYgIWhvbGRlcnMubGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdCA9IGNyZWF0ZVBhcnRpYWwoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gY3JlYXRlSHlicmlkLmFwcGx5KHVuZGVmaW5lZCwgbmV3RGF0YSk7XG4gICAgICB9XG4gICAgICB2YXIgc2V0dGVyID0gZGF0YSA/IGJhc2VTZXREYXRhIDogc2V0RGF0YTtcbiAgICAgIHJldHVybiBzZXRXcmFwVG9TdHJpbmcoc2V0dGVyKHJlc3VsdCwgbmV3RGF0YSksIGZ1bmMsIGJpdG1hc2spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZWQgYnkgYF8uZGVmYXVsdHNgIHRvIGN1c3RvbWl6ZSBpdHMgYF8uYXNzaWduSW5gIHVzZSB0byBhc3NpZ24gcHJvcGVydGllc1xuICAgICAqIG9mIHNvdXJjZSBvYmplY3RzIHRvIHRoZSBkZXN0aW5hdGlvbiBvYmplY3QgZm9yIGFsbCBkZXN0aW5hdGlvbiBwcm9wZXJ0aWVzXG4gICAgICogdGhhdCByZXNvbHZlIHRvIGB1bmRlZmluZWRgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IG9ialZhbHVlIFRoZSBkZXN0aW5hdGlvbiB2YWx1ZS5cbiAgICAgKiBAcGFyYW0geyp9IHNyY1ZhbHVlIFRoZSBzb3VyY2UgdmFsdWUuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgcGFyZW50IG9iamVjdCBvZiBgb2JqVmFsdWVgLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3VzdG9tRGVmYXVsdHNBc3NpZ25JbihvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0KSB7XG4gICAgICBpZiAob2JqVmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgIChlcShvYmpWYWx1ZSwgb2JqZWN0UHJvdG9ba2V5XSkgJiYgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSkge1xuICAgICAgICByZXR1cm4gc3JjVmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqVmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXNlZCBieSBgXy5kZWZhdWx0c0RlZXBgIHRvIGN1c3RvbWl6ZSBpdHMgYF8ubWVyZ2VgIHVzZSB0byBtZXJnZSBzb3VyY2VcbiAgICAgKiBvYmplY3RzIGludG8gZGVzdGluYXRpb24gb2JqZWN0cyB0aGF0IGFyZSBwYXNzZWQgdGhydS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSBvYmpWYWx1ZSBUaGUgZGVzdGluYXRpb24gdmFsdWUuXG4gICAgICogQHBhcmFtIHsqfSBzcmNWYWx1ZSBUaGUgc291cmNlIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gbWVyZ2UuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgcGFyZW50IG9iamVjdCBvZiBgb2JqVmFsdWVgLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHBhcmVudCBvYmplY3Qgb2YgYHNyY1ZhbHVlYC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIHNvdXJjZSB2YWx1ZXMgYW5kIHRoZWlyIG1lcmdlZFxuICAgICAqICBjb3VudGVycGFydHMuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjdXN0b21EZWZhdWx0c01lcmdlKG9ialZhbHVlLCBzcmNWYWx1ZSwga2V5LCBvYmplY3QsIHNvdXJjZSwgc3RhY2spIHtcbiAgICAgIGlmIChpc09iamVjdChvYmpWYWx1ZSkgJiYgaXNPYmplY3Qoc3JjVmFsdWUpKSB7XG4gICAgICAgIC8vIFJlY3Vyc2l2ZWx5IG1lcmdlIG9iamVjdHMgYW5kIGFycmF5cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgICAgICBzdGFjay5zZXQoc3JjVmFsdWUsIG9ialZhbHVlKTtcbiAgICAgICAgYmFzZU1lcmdlKG9ialZhbHVlLCBzcmNWYWx1ZSwgdW5kZWZpbmVkLCBjdXN0b21EZWZhdWx0c01lcmdlLCBzdGFjayk7XG4gICAgICAgIHN0YWNrWydkZWxldGUnXShzcmNWYWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqVmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXNlZCBieSBgXy5vbWl0YCB0byBjdXN0b21pemUgaXRzIGBfLmNsb25lRGVlcGAgdXNlIHRvIG9ubHkgY2xvbmUgcGxhaW5cbiAgICAgKiBvYmplY3RzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgdW5jbG9uZWQgdmFsdWUgb3IgYHVuZGVmaW5lZGAgdG8gZGVmZXIgY2xvbmluZyB0byBgXy5jbG9uZURlZXBgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGN1c3RvbU9taXRDbG9uZSh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzUGxhaW5PYmplY3QodmFsdWUpID8gdW5kZWZpbmVkIDogdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBhcnJheXMgd2l0aCBzdXBwb3J0IGZvclxuICAgICAqIHBhcnRpYWwgZGVlcCBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtBcnJheX0gb3RoZXIgVGhlIG90aGVyIGFycmF5IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgYmFzZUlzRXF1YWxgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY3VzdG9taXplciBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGVxdWFsRnVuYyBUaGUgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGVxdWl2YWxlbnRzIG9mIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc3RhY2sgVHJhY2tzIHRyYXZlcnNlZCBgYXJyYXlgIGFuZCBgb3RoZXJgIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBhcnJheXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlcXVhbEFycmF5cyhhcnJheSwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spIHtcbiAgICAgIHZhciBpc1BhcnRpYWwgPSBiaXRtYXNrICYgQ09NUEFSRV9QQVJUSUFMX0ZMQUcsXG4gICAgICAgICAgYXJyTGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIG90aExlbmd0aCA9IG90aGVyLmxlbmd0aDtcblxuICAgICAgaWYgKGFyckxlbmd0aCAhPSBvdGhMZW5ndGggJiYgIShpc1BhcnRpYWwgJiYgb3RoTGVuZ3RoID4gYXJyTGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICAvLyBDaGVjayB0aGF0IGN5Y2xpYyB2YWx1ZXMgYXJlIGVxdWFsLlxuICAgICAgdmFyIGFyclN0YWNrZWQgPSBzdGFjay5nZXQoYXJyYXkpO1xuICAgICAgdmFyIG90aFN0YWNrZWQgPSBzdGFjay5nZXQob3RoZXIpO1xuICAgICAgaWYgKGFyclN0YWNrZWQgJiYgb3RoU3RhY2tlZCkge1xuICAgICAgICByZXR1cm4gYXJyU3RhY2tlZCA9PSBvdGhlciAmJiBvdGhTdGFja2VkID09IGFycmF5O1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgcmVzdWx0ID0gdHJ1ZSxcbiAgICAgICAgICBzZWVuID0gKGJpdG1hc2sgJiBDT01QQVJFX1VOT1JERVJFRF9GTEFHKSA/IG5ldyBTZXRDYWNoZSA6IHVuZGVmaW5lZDtcblxuICAgICAgc3RhY2suc2V0KGFycmF5LCBvdGhlcik7XG4gICAgICBzdGFjay5zZXQob3RoZXIsIGFycmF5KTtcblxuICAgICAgLy8gSWdub3JlIG5vbi1pbmRleCBwcm9wZXJ0aWVzLlxuICAgICAgd2hpbGUgKCsraW5kZXggPCBhcnJMZW5ndGgpIHtcbiAgICAgICAgdmFyIGFyclZhbHVlID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICAgICAgb3RoVmFsdWUgPSBvdGhlcltpbmRleF07XG5cbiAgICAgICAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICB2YXIgY29tcGFyZWQgPSBpc1BhcnRpYWxcbiAgICAgICAgICAgID8gY3VzdG9taXplcihvdGhWYWx1ZSwgYXJyVmFsdWUsIGluZGV4LCBvdGhlciwgYXJyYXksIHN0YWNrKVxuICAgICAgICAgICAgOiBjdXN0b21pemVyKGFyclZhbHVlLCBvdGhWYWx1ZSwgaW5kZXgsIGFycmF5LCBvdGhlciwgc3RhY2spO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb21wYXJlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaWYgKGNvbXBhcmVkKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgY29tcGFyZSBhcnJheXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgaWYgKHNlZW4pIHtcbiAgICAgICAgICBpZiAoIWFycmF5U29tZShvdGhlciwgZnVuY3Rpb24ob3RoVmFsdWUsIG90aEluZGV4KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFjYWNoZUhhcyhzZWVuLCBvdGhJbmRleCkgJiZcbiAgICAgICAgICAgICAgICAgICAgKGFyclZhbHVlID09PSBvdGhWYWx1ZSB8fCBlcXVhbEZ1bmMoYXJyVmFsdWUsIG90aFZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjaykpKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gc2Vlbi5wdXNoKG90aEluZGV4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghKFxuICAgICAgICAgICAgICBhcnJWYWx1ZSA9PT0gb3RoVmFsdWUgfHxcbiAgICAgICAgICAgICAgICBlcXVhbEZ1bmMoYXJyVmFsdWUsIG90aFZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjaylcbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3RhY2tbJ2RlbGV0ZSddKGFycmF5KTtcbiAgICAgIHN0YWNrWydkZWxldGUnXShvdGhlcik7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUlzRXF1YWxEZWVwYCBmb3IgY29tcGFyaW5nIG9iamVjdHMgb2ZcbiAgICAgKiB0aGUgc2FtZSBgdG9TdHJpbmdUYWdgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gb25seSBzdXBwb3J0cyBjb21wYXJpbmcgdmFsdWVzIHdpdGggdGFncyBvZlxuICAgICAqIGBCb29sZWFuYCwgYERhdGVgLCBgRXJyb3JgLCBgTnVtYmVyYCwgYFJlZ0V4cGAsIG9yIGBTdHJpbmdgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIGB0b1N0cmluZ1RhZ2Agb2YgdGhlIG9iamVjdHMgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBiYXNlSXNFcXVhbGAgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjdXN0b21pemVyIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZXF1YWxGdW5jIFRoZSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgZXF1aXZhbGVudHMgb2YgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzdGFjayBUcmFja3MgdHJhdmVyc2VkIGBvYmplY3RgIGFuZCBgb3RoZXJgIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXF1YWxCeVRhZyhvYmplY3QsIG90aGVyLCB0YWcsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spIHtcbiAgICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgIGNhc2UgZGF0YVZpZXdUYWc6XG4gICAgICAgICAgaWYgKChvYmplY3QuYnl0ZUxlbmd0aCAhPSBvdGhlci5ieXRlTGVuZ3RoKSB8fFxuICAgICAgICAgICAgICAob2JqZWN0LmJ5dGVPZmZzZXQgIT0gb3RoZXIuYnl0ZU9mZnNldCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb2JqZWN0ID0gb2JqZWN0LmJ1ZmZlcjtcbiAgICAgICAgICBvdGhlciA9IG90aGVyLmJ1ZmZlcjtcblxuICAgICAgICBjYXNlIGFycmF5QnVmZmVyVGFnOlxuICAgICAgICAgIGlmICgob2JqZWN0LmJ5dGVMZW5ndGggIT0gb3RoZXIuYnl0ZUxlbmd0aCkgfHxcbiAgICAgICAgICAgICAgIWVxdWFsRnVuYyhuZXcgVWludDhBcnJheShvYmplY3QpLCBuZXcgVWludDhBcnJheShvdGhlcikpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgICAgIGNhc2UgYm9vbFRhZzpcbiAgICAgICAgY2FzZSBkYXRlVGFnOlxuICAgICAgICBjYXNlIG51bWJlclRhZzpcbiAgICAgICAgICAvLyBDb2VyY2UgYm9vbGVhbnMgdG8gYDFgIG9yIGAwYCBhbmQgZGF0ZXMgdG8gbWlsbGlzZWNvbmRzLlxuICAgICAgICAgIC8vIEludmFsaWQgZGF0ZXMgYXJlIGNvZXJjZWQgdG8gYE5hTmAuXG4gICAgICAgICAgcmV0dXJuIGVxKCtvYmplY3QsICtvdGhlcik7XG5cbiAgICAgICAgY2FzZSBlcnJvclRhZzpcbiAgICAgICAgICByZXR1cm4gb2JqZWN0Lm5hbWUgPT0gb3RoZXIubmFtZSAmJiBvYmplY3QubWVzc2FnZSA9PSBvdGhlci5tZXNzYWdlO1xuXG4gICAgICAgIGNhc2UgcmVnZXhwVGFnOlxuICAgICAgICBjYXNlIHN0cmluZ1RhZzpcbiAgICAgICAgICAvLyBDb2VyY2UgcmVnZXhlcyB0byBzdHJpbmdzIGFuZCB0cmVhdCBzdHJpbmdzLCBwcmltaXRpdmVzIGFuZCBvYmplY3RzLFxuICAgICAgICAgIC8vIGFzIGVxdWFsLiBTZWUgaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXJlZ2V4cC5wcm90b3R5cGUudG9zdHJpbmdcbiAgICAgICAgICAvLyBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgICAgIHJldHVybiBvYmplY3QgPT0gKG90aGVyICsgJycpO1xuXG4gICAgICAgIGNhc2UgbWFwVGFnOlxuICAgICAgICAgIHZhciBjb252ZXJ0ID0gbWFwVG9BcnJheTtcblxuICAgICAgICBjYXNlIHNldFRhZzpcbiAgICAgICAgICB2YXIgaXNQYXJ0aWFsID0gYml0bWFzayAmIENPTVBBUkVfUEFSVElBTF9GTEFHO1xuICAgICAgICAgIGNvbnZlcnQgfHwgKGNvbnZlcnQgPSBzZXRUb0FycmF5KTtcblxuICAgICAgICAgIGlmIChvYmplY3Quc2l6ZSAhPSBvdGhlci5zaXplICYmICFpc1BhcnRpYWwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gQXNzdW1lIGN5Y2xpYyB2YWx1ZXMgYXJlIGVxdWFsLlxuICAgICAgICAgIHZhciBzdGFja2VkID0gc3RhY2suZ2V0KG9iamVjdCk7XG4gICAgICAgICAgaWYgKHN0YWNrZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBzdGFja2VkID09IG90aGVyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBiaXRtYXNrIHw9IENPTVBBUkVfVU5PUkRFUkVEX0ZMQUc7XG5cbiAgICAgICAgICAvLyBSZWN1cnNpdmVseSBjb21wYXJlIG9iamVjdHMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgICBzdGFjay5zZXQob2JqZWN0LCBvdGhlcik7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IGVxdWFsQXJyYXlzKGNvbnZlcnQob2JqZWN0KSwgY29udmVydChvdGhlciksIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spO1xuICAgICAgICAgIHN0YWNrWydkZWxldGUnXShvYmplY3QpO1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG5cbiAgICAgICAgY2FzZSBzeW1ib2xUYWc6XG4gICAgICAgICAgaWYgKHN5bWJvbFZhbHVlT2YpIHtcbiAgICAgICAgICAgIHJldHVybiBzeW1ib2xWYWx1ZU9mLmNhbGwob2JqZWN0KSA9PSBzeW1ib2xWYWx1ZU9mLmNhbGwob3RoZXIpO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsRGVlcGAgZm9yIG9iamVjdHMgd2l0aCBzdXBwb3J0IGZvclxuICAgICAqIHBhcnRpYWwgZGVlcCBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG90aGVyIFRoZSBvdGhlciBvYmplY3QgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBiYXNlSXNFcXVhbGAgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjdXN0b21pemVyIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZXF1YWxGdW5jIFRoZSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgZXF1aXZhbGVudHMgb2YgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzdGFjayBUcmFja3MgdHJhdmVyc2VkIGBvYmplY3RgIGFuZCBgb3RoZXJgIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXF1YWxPYmplY3RzKG9iamVjdCwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spIHtcbiAgICAgIHZhciBpc1BhcnRpYWwgPSBiaXRtYXNrICYgQ09NUEFSRV9QQVJUSUFMX0ZMQUcsXG4gICAgICAgICAgb2JqUHJvcHMgPSBnZXRBbGxLZXlzKG9iamVjdCksXG4gICAgICAgICAgb2JqTGVuZ3RoID0gb2JqUHJvcHMubGVuZ3RoLFxuICAgICAgICAgIG90aFByb3BzID0gZ2V0QWxsS2V5cyhvdGhlciksXG4gICAgICAgICAgb3RoTGVuZ3RoID0gb3RoUHJvcHMubGVuZ3RoO1xuXG4gICAgICBpZiAob2JqTGVuZ3RoICE9IG90aExlbmd0aCAmJiAhaXNQYXJ0aWFsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IG9iakxlbmd0aDtcbiAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgIHZhciBrZXkgPSBvYmpQcm9wc1tpbmRleF07XG4gICAgICAgIGlmICghKGlzUGFydGlhbCA/IGtleSBpbiBvdGhlciA6IGhhc093blByb3BlcnR5LmNhbGwob3RoZXIsIGtleSkpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBDaGVjayB0aGF0IGN5Y2xpYyB2YWx1ZXMgYXJlIGVxdWFsLlxuICAgICAgdmFyIG9ialN0YWNrZWQgPSBzdGFjay5nZXQob2JqZWN0KTtcbiAgICAgIHZhciBvdGhTdGFja2VkID0gc3RhY2suZ2V0KG90aGVyKTtcbiAgICAgIGlmIChvYmpTdGFja2VkICYmIG90aFN0YWNrZWQpIHtcbiAgICAgICAgcmV0dXJuIG9ialN0YWNrZWQgPT0gb3RoZXIgJiYgb3RoU3RhY2tlZCA9PSBvYmplY3Q7XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gdHJ1ZTtcbiAgICAgIHN0YWNrLnNldChvYmplY3QsIG90aGVyKTtcbiAgICAgIHN0YWNrLnNldChvdGhlciwgb2JqZWN0KTtcblxuICAgICAgdmFyIHNraXBDdG9yID0gaXNQYXJ0aWFsO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBvYmpMZW5ndGgpIHtcbiAgICAgICAga2V5ID0gb2JqUHJvcHNbaW5kZXhdO1xuICAgICAgICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XSxcbiAgICAgICAgICAgIG90aFZhbHVlID0gb3RoZXJba2V5XTtcblxuICAgICAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgICAgIHZhciBjb21wYXJlZCA9IGlzUGFydGlhbFxuICAgICAgICAgICAgPyBjdXN0b21pemVyKG90aFZhbHVlLCBvYmpWYWx1ZSwga2V5LCBvdGhlciwgb2JqZWN0LCBzdGFjaylcbiAgICAgICAgICAgIDogY3VzdG9taXplcihvYmpWYWx1ZSwgb3RoVmFsdWUsIGtleSwgb2JqZWN0LCBvdGhlciwgc3RhY2spO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbXBhcmUgb2JqZWN0cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgICAgICBpZiAoIShjb21wYXJlZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgID8gKG9ialZhbHVlID09PSBvdGhWYWx1ZSB8fCBlcXVhbEZ1bmMob2JqVmFsdWUsIG90aFZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjaykpXG4gICAgICAgICAgICAgIDogY29tcGFyZWRcbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBza2lwQ3RvciB8fCAoc2tpcEN0b3IgPSBrZXkgPT0gJ2NvbnN0cnVjdG9yJyk7XG4gICAgICB9XG4gICAgICBpZiAocmVzdWx0ICYmICFza2lwQ3Rvcikge1xuICAgICAgICB2YXIgb2JqQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcixcbiAgICAgICAgICAgIG90aEN0b3IgPSBvdGhlci5jb25zdHJ1Y3RvcjtcblxuICAgICAgICAvLyBOb24gYE9iamVjdGAgb2JqZWN0IGluc3RhbmNlcyB3aXRoIGRpZmZlcmVudCBjb25zdHJ1Y3RvcnMgYXJlIG5vdCBlcXVhbC5cbiAgICAgICAgaWYgKG9iakN0b3IgIT0gb3RoQ3RvciAmJlxuICAgICAgICAgICAgKCdjb25zdHJ1Y3RvcicgaW4gb2JqZWN0ICYmICdjb25zdHJ1Y3RvcicgaW4gb3RoZXIpICYmXG4gICAgICAgICAgICAhKHR5cGVvZiBvYmpDdG9yID09ICdmdW5jdGlvbicgJiYgb2JqQ3RvciBpbnN0YW5jZW9mIG9iakN0b3IgJiZcbiAgICAgICAgICAgICAgdHlwZW9mIG90aEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBvdGhDdG9yIGluc3RhbmNlb2Ygb3RoQ3RvcikpIHtcbiAgICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3RhY2tbJ2RlbGV0ZSddKG9iamVjdCk7XG4gICAgICBzdGFja1snZGVsZXRlJ10ob3RoZXIpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VSZXN0YCB3aGljaCBmbGF0dGVucyB0aGUgcmVzdCBhcnJheS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmbGF0UmVzdChmdW5jKSB7XG4gICAgICByZXR1cm4gc2V0VG9TdHJpbmcob3ZlclJlc3QoZnVuYywgdW5kZWZpbmVkLCBmbGF0dGVuKSwgZnVuYyArICcnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIG93biBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIGFuZCBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRBbGxLZXlzKG9iamVjdCkge1xuICAgICAgcmV0dXJuIGJhc2VHZXRBbGxLZXlzKG9iamVjdCwga2V5cywgZ2V0U3ltYm9scyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIGFuZFxuICAgICAqIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzIGFuZCBzeW1ib2xzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldEFsbEtleXNJbihvYmplY3QpIHtcbiAgICAgIHJldHVybiBiYXNlR2V0QWxsS2V5cyhvYmplY3QsIGtleXNJbiwgZ2V0U3ltYm9sc0luKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIG1ldGFkYXRhIGZvciBgZnVuY2AuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtZXRhZGF0YSBmb3IgYGZ1bmNgLlxuICAgICAqL1xuICAgIHZhciBnZXREYXRhID0gIW1ldGFNYXAgPyBub29wIDogZnVuY3Rpb24oZnVuYykge1xuICAgICAgcmV0dXJuIG1ldGFNYXAuZ2V0KGZ1bmMpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBuYW1lIG9mIGBmdW5jYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZnVuY3Rpb24gbmFtZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRGdW5jTmFtZShmdW5jKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gKGZ1bmMubmFtZSArICcnKSxcbiAgICAgICAgICBhcnJheSA9IHJlYWxOYW1lc1tyZXN1bHRdLFxuICAgICAgICAgIGxlbmd0aCA9IGhhc093blByb3BlcnR5LmNhbGwocmVhbE5hbWVzLCByZXN1bHQpID8gYXJyYXkubGVuZ3RoIDogMDtcblxuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIHZhciBkYXRhID0gYXJyYXlbbGVuZ3RoXSxcbiAgICAgICAgICAgIG90aGVyRnVuYyA9IGRhdGEuZnVuYztcbiAgICAgICAgaWYgKG90aGVyRnVuYyA9PSBudWxsIHx8IG90aGVyRnVuYyA9PSBmdW5jKSB7XG4gICAgICAgICAgcmV0dXJuIGRhdGEubmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBhcmd1bWVudCBwbGFjZWhvbGRlciB2YWx1ZSBmb3IgYGZ1bmNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBwbGFjZWhvbGRlciB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRIb2xkZXIoZnVuYykge1xuICAgICAgdmFyIG9iamVjdCA9IGhhc093blByb3BlcnR5LmNhbGwobG9kYXNoLCAncGxhY2Vob2xkZXInKSA/IGxvZGFzaCA6IGZ1bmM7XG4gICAgICByZXR1cm4gb2JqZWN0LnBsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGFwcHJvcHJpYXRlIFwiaXRlcmF0ZWVcIiBmdW5jdGlvbi4gSWYgYF8uaXRlcmF0ZWVgIGlzIGN1c3RvbWl6ZWQsXG4gICAgICogdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBjdXN0b20gbWV0aG9kLCBvdGhlcndpc2UgaXQgcmV0dXJucyBgYmFzZUl0ZXJhdGVlYC5cbiAgICAgKiBJZiBhcmd1bWVudHMgYXJlIHByb3ZpZGVkLCB0aGUgY2hvc2VuIGZ1bmN0aW9uIGlzIGludm9rZWQgd2l0aCB0aGVtIGFuZFxuICAgICAqIGl0cyByZXN1bHQgaXMgcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gW3ZhbHVlXSBUaGUgdmFsdWUgdG8gY29udmVydCB0byBhbiBpdGVyYXRlZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyaXR5XSBUaGUgYXJpdHkgb2YgdGhlIGNyZWF0ZWQgaXRlcmF0ZWUuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBjaG9zZW4gZnVuY3Rpb24gb3IgaXRzIHJlc3VsdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRJdGVyYXRlZSgpIHtcbiAgICAgIHZhciByZXN1bHQgPSBsb2Rhc2guaXRlcmF0ZWUgfHwgaXRlcmF0ZWU7XG4gICAgICByZXN1bHQgPSByZXN1bHQgPT09IGl0ZXJhdGVlID8gYmFzZUl0ZXJhdGVlIDogcmVzdWx0O1xuICAgICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyByZXN1bHQoYXJndW1lbnRzWzBdLCBhcmd1bWVudHNbMV0pIDogcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGRhdGEgZm9yIGBtYXBgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gbWFwIFRoZSBtYXAgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUgcmVmZXJlbmNlIGtleS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWFwIGRhdGEuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0TWFwRGF0YShtYXAsIGtleSkge1xuICAgICAgdmFyIGRhdGEgPSBtYXAuX19kYXRhX187XG4gICAgICByZXR1cm4gaXNLZXlhYmxlKGtleSlcbiAgICAgICAgPyBkYXRhW3R5cGVvZiBrZXkgPT0gJ3N0cmluZycgPyAnc3RyaW5nJyA6ICdoYXNoJ11cbiAgICAgICAgOiBkYXRhLm1hcDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBwcm9wZXJ0eSBuYW1lcywgdmFsdWVzLCBhbmQgY29tcGFyZSBmbGFncyBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbWF0Y2ggZGF0YSBvZiBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRNYXRjaERhdGEob2JqZWN0KSB7XG4gICAgICB2YXIgcmVzdWx0ID0ga2V5cyhvYmplY3QpLFxuICAgICAgICAgIGxlbmd0aCA9IHJlc3VsdC5sZW5ndGg7XG5cbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICB2YXIga2V5ID0gcmVzdWx0W2xlbmd0aF0sXG4gICAgICAgICAgICB2YWx1ZSA9IG9iamVjdFtrZXldO1xuXG4gICAgICAgIHJlc3VsdFtsZW5ndGhdID0gW2tleSwgdmFsdWUsIGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSldO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBuYXRpdmUgZnVuY3Rpb24gYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIG1ldGhvZCB0byBnZXQuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGZ1bmN0aW9uIGlmIGl0J3MgbmF0aXZlLCBlbHNlIGB1bmRlZmluZWRgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldE5hdGl2ZShvYmplY3QsIGtleSkge1xuICAgICAgdmFyIHZhbHVlID0gZ2V0VmFsdWUob2JqZWN0LCBrZXkpO1xuICAgICAgcmV0dXJuIGJhc2VJc05hdGl2ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VHZXRUYWdgIHdoaWNoIGlnbm9yZXMgYFN5bWJvbC50b1N0cmluZ1RhZ2AgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSByYXcgYHRvU3RyaW5nVGFnYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRSYXdUYWcodmFsdWUpIHtcbiAgICAgIHZhciBpc093biA9IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIHN5bVRvU3RyaW5nVGFnKSxcbiAgICAgICAgICB0YWcgPSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdmFyIHVubWFza2VkID0gdHJ1ZTtcbiAgICAgIH0gY2F0Y2ggKGUpIHt9XG5cbiAgICAgIHZhciByZXN1bHQgPSBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICAgIGlmICh1bm1hc2tlZCkge1xuICAgICAgICBpZiAoaXNPd24pIHtcbiAgICAgICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB0YWc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gZW51bWVyYWJsZSBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBzeW1ib2xzLlxuICAgICAqL1xuICAgIHZhciBnZXRTeW1ib2xzID0gIW5hdGl2ZUdldFN5bWJvbHMgPyBzdHViQXJyYXkgOiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcbiAgICAgIHJldHVybiBhcnJheUZpbHRlcihuYXRpdmVHZXRTeW1ib2xzKG9iamVjdCksIGZ1bmN0aW9uKHN5bWJvbCkge1xuICAgICAgICByZXR1cm4gcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChvYmplY3QsIHN5bWJvbCk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBzeW1ib2xzLlxuICAgICAqL1xuICAgIHZhciBnZXRTeW1ib2xzSW4gPSAhbmF0aXZlR2V0U3ltYm9scyA/IHN0dWJBcnJheSA6IGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgICAgd2hpbGUgKG9iamVjdCkge1xuICAgICAgICBhcnJheVB1c2gocmVzdWx0LCBnZXRTeW1ib2xzKG9iamVjdCkpO1xuICAgICAgICBvYmplY3QgPSBnZXRQcm90b3R5cGUob2JqZWN0KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGB0b1N0cmluZ1RhZ2Agb2YgYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgYHRvU3RyaW5nVGFnYC5cbiAgICAgKi9cbiAgICB2YXIgZ2V0VGFnID0gYmFzZUdldFRhZztcblxuICAgIC8vIEZhbGxiYWNrIGZvciBkYXRhIHZpZXdzLCBtYXBzLCBzZXRzLCBhbmQgd2VhayBtYXBzIGluIElFIDExIGFuZCBwcm9taXNlcyBpbiBOb2RlLmpzIDwgNi5cbiAgICBpZiAoKERhdGFWaWV3ICYmIGdldFRhZyhuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDEpKSkgIT0gZGF0YVZpZXdUYWcpIHx8XG4gICAgICAgIChNYXAgJiYgZ2V0VGFnKG5ldyBNYXApICE9IG1hcFRhZykgfHxcbiAgICAgICAgKFByb21pc2UgJiYgZ2V0VGFnKFByb21pc2UucmVzb2x2ZSgpKSAhPSBwcm9taXNlVGFnKSB8fFxuICAgICAgICAoU2V0ICYmIGdldFRhZyhuZXcgU2V0KSAhPSBzZXRUYWcpIHx8XG4gICAgICAgIChXZWFrTWFwICYmIGdldFRhZyhuZXcgV2Vha01hcCkgIT0gd2Vha01hcFRhZykpIHtcbiAgICAgIGdldFRhZyA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBiYXNlR2V0VGFnKHZhbHVlKSxcbiAgICAgICAgICAgIEN0b3IgPSByZXN1bHQgPT0gb2JqZWN0VGFnID8gdmFsdWUuY29uc3RydWN0b3IgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBjdG9yU3RyaW5nID0gQ3RvciA/IHRvU291cmNlKEN0b3IpIDogJyc7XG5cbiAgICAgICAgaWYgKGN0b3JTdHJpbmcpIHtcbiAgICAgICAgICBzd2l0Y2ggKGN0b3JTdHJpbmcpIHtcbiAgICAgICAgICAgIGNhc2UgZGF0YVZpZXdDdG9yU3RyaW5nOiByZXR1cm4gZGF0YVZpZXdUYWc7XG4gICAgICAgICAgICBjYXNlIG1hcEN0b3JTdHJpbmc6IHJldHVybiBtYXBUYWc7XG4gICAgICAgICAgICBjYXNlIHByb21pc2VDdG9yU3RyaW5nOiByZXR1cm4gcHJvbWlzZVRhZztcbiAgICAgICAgICAgIGNhc2Ugc2V0Q3RvclN0cmluZzogcmV0dXJuIHNldFRhZztcbiAgICAgICAgICAgIGNhc2Ugd2Vha01hcEN0b3JTdHJpbmc6IHJldHVybiB3ZWFrTWFwVGFnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB2aWV3LCBhcHBseWluZyBhbnkgYHRyYW5zZm9ybXNgIHRvIHRoZSBgc3RhcnRgIGFuZCBgZW5kYCBwb3NpdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydCBUaGUgc3RhcnQgb2YgdGhlIHZpZXcuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGVuZCBUaGUgZW5kIG9mIHRoZSB2aWV3LlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHRyYW5zZm9ybXMgVGhlIHRyYW5zZm9ybWF0aW9ucyB0byBhcHBseSB0byB0aGUgdmlldy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBgc3RhcnRgIGFuZCBgZW5kYFxuICAgICAqICBwb3NpdGlvbnMgb2YgdGhlIHZpZXcuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0VmlldyhzdGFydCwgZW5kLCB0cmFuc2Zvcm1zKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSB0cmFuc2Zvcm1zLmxlbmd0aDtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGRhdGEgPSB0cmFuc2Zvcm1zW2luZGV4XSxcbiAgICAgICAgICAgIHNpemUgPSBkYXRhLnNpemU7XG5cbiAgICAgICAgc3dpdGNoIChkYXRhLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdkcm9wJzogICAgICBzdGFydCArPSBzaXplOyBicmVhaztcbiAgICAgICAgICBjYXNlICdkcm9wUmlnaHQnOiBlbmQgLT0gc2l6ZTsgYnJlYWs7XG4gICAgICAgICAgY2FzZSAndGFrZSc6ICAgICAgZW5kID0gbmF0aXZlTWluKGVuZCwgc3RhcnQgKyBzaXplKTsgYnJlYWs7XG4gICAgICAgICAgY2FzZSAndGFrZVJpZ2h0Jzogc3RhcnQgPSBuYXRpdmVNYXgoc3RhcnQsIGVuZCAtIHNpemUpOyBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHsgJ3N0YXJ0Jzogc3RhcnQsICdlbmQnOiBlbmQgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeHRyYWN0cyB3cmFwcGVyIGRldGFpbHMgZnJvbSB0aGUgYHNvdXJjZWAgYm9keSBjb21tZW50LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc291cmNlIFRoZSBzb3VyY2UgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHdyYXBwZXIgZGV0YWlscy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRXcmFwRGV0YWlscyhzb3VyY2UpIHtcbiAgICAgIHZhciBtYXRjaCA9IHNvdXJjZS5tYXRjaChyZVdyYXBEZXRhaWxzKTtcbiAgICAgIHJldHVybiBtYXRjaCA/IG1hdGNoWzFdLnNwbGl0KHJlU3BsaXREZXRhaWxzKSA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgcGF0aGAgZXhpc3RzIG9uIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggdG8gY2hlY2suXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaGFzRnVuYyBUaGUgZnVuY3Rpb24gdG8gY2hlY2sgcHJvcGVydGllcy5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHBhdGhgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGhhc1BhdGgob2JqZWN0LCBwYXRoLCBoYXNGdW5jKSB7XG4gICAgICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcblxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gcGF0aC5sZW5ndGgsXG4gICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBrZXkgPSB0b0tleShwYXRoW2luZGV4XSk7XG4gICAgICAgIGlmICghKHJlc3VsdCA9IG9iamVjdCAhPSBudWxsICYmIGhhc0Z1bmMob2JqZWN0LCBrZXkpKSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIG9iamVjdCA9IG9iamVjdFtrZXldO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdCB8fCArK2luZGV4ICE9IGxlbmd0aCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgbGVuZ3RoID0gb2JqZWN0ID09IG51bGwgPyAwIDogb2JqZWN0Lmxlbmd0aDtcbiAgICAgIHJldHVybiAhIWxlbmd0aCAmJiBpc0xlbmd0aChsZW5ndGgpICYmIGlzSW5kZXgoa2V5LCBsZW5ndGgpICYmXG4gICAgICAgIChpc0FycmF5KG9iamVjdCkgfHwgaXNBcmd1bWVudHMob2JqZWN0KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgYW4gYXJyYXkgY2xvbmUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluaXRDbG9uZUFycmF5KGFycmF5KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IG5ldyBhcnJheS5jb25zdHJ1Y3RvcihsZW5ndGgpO1xuXG4gICAgICAvLyBBZGQgcHJvcGVydGllcyBhc3NpZ25lZCBieSBgUmVnRXhwI2V4ZWNgLlxuICAgICAgaWYgKGxlbmd0aCAmJiB0eXBlb2YgYXJyYXlbMF0gPT0gJ3N0cmluZycgJiYgaGFzT3duUHJvcGVydHkuY2FsbChhcnJheSwgJ2luZGV4JykpIHtcbiAgICAgICAgcmVzdWx0LmluZGV4ID0gYXJyYXkuaW5kZXg7XG4gICAgICAgIHJlc3VsdC5pbnB1dCA9IGFycmF5LmlucHV0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhbiBvYmplY3QgY2xvbmUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbml0Q2xvbmVPYmplY3Qob2JqZWN0KSB7XG4gICAgICByZXR1cm4gKHR5cGVvZiBvYmplY3QuY29uc3RydWN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNQcm90b3R5cGUob2JqZWN0KSlcbiAgICAgICAgPyBiYXNlQ3JlYXRlKGdldFByb3RvdHlwZShvYmplY3QpKVxuICAgICAgICA6IHt9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIGFuIG9iamVjdCBjbG9uZSBiYXNlZCBvbiBpdHMgYHRvU3RyaW5nVGFnYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIGZ1bmN0aW9uIG9ubHkgc3VwcG9ydHMgY2xvbmluZyB2YWx1ZXMgd2l0aCB0YWdzIG9mXG4gICAgICogYEJvb2xlYW5gLCBgRGF0ZWAsIGBFcnJvcmAsIGBNYXBgLCBgTnVtYmVyYCwgYFJlZ0V4cGAsIGBTZXRgLCBvciBgU3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNsb25lLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIGB0b1N0cmluZ1RhZ2Agb2YgdGhlIG9iamVjdCB0byBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluaXRDbG9uZUJ5VGFnKG9iamVjdCwgdGFnLCBpc0RlZXApIHtcbiAgICAgIHZhciBDdG9yID0gb2JqZWN0LmNvbnN0cnVjdG9yO1xuICAgICAgc3dpdGNoICh0YWcpIHtcbiAgICAgICAgY2FzZSBhcnJheUJ1ZmZlclRhZzpcbiAgICAgICAgICByZXR1cm4gY2xvbmVBcnJheUJ1ZmZlcihvYmplY3QpO1xuXG4gICAgICAgIGNhc2UgYm9vbFRhZzpcbiAgICAgICAgY2FzZSBkYXRlVGFnOlxuICAgICAgICAgIHJldHVybiBuZXcgQ3Rvcigrb2JqZWN0KTtcblxuICAgICAgICBjYXNlIGRhdGFWaWV3VGFnOlxuICAgICAgICAgIHJldHVybiBjbG9uZURhdGFWaWV3KG9iamVjdCwgaXNEZWVwKTtcblxuICAgICAgICBjYXNlIGZsb2F0MzJUYWc6IGNhc2UgZmxvYXQ2NFRhZzpcbiAgICAgICAgY2FzZSBpbnQ4VGFnOiBjYXNlIGludDE2VGFnOiBjYXNlIGludDMyVGFnOlxuICAgICAgICBjYXNlIHVpbnQ4VGFnOiBjYXNlIHVpbnQ4Q2xhbXBlZFRhZzogY2FzZSB1aW50MTZUYWc6IGNhc2UgdWludDMyVGFnOlxuICAgICAgICAgIHJldHVybiBjbG9uZVR5cGVkQXJyYXkob2JqZWN0LCBpc0RlZXApO1xuXG4gICAgICAgIGNhc2UgbWFwVGFnOlxuICAgICAgICAgIHJldHVybiBuZXcgQ3RvcjtcblxuICAgICAgICBjYXNlIG51bWJlclRhZzpcbiAgICAgICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICAgICAgcmV0dXJuIG5ldyBDdG9yKG9iamVjdCk7XG5cbiAgICAgICAgY2FzZSByZWdleHBUYWc6XG4gICAgICAgICAgcmV0dXJuIGNsb25lUmVnRXhwKG9iamVjdCk7XG5cbiAgICAgICAgY2FzZSBzZXRUYWc6XG4gICAgICAgICAgcmV0dXJuIG5ldyBDdG9yO1xuXG4gICAgICAgIGNhc2Ugc3ltYm9sVGFnOlxuICAgICAgICAgIHJldHVybiBjbG9uZVN5bWJvbChvYmplY3QpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluc2VydHMgd3JhcHBlciBgZGV0YWlsc2AgaW4gYSBjb21tZW50IGF0IHRoZSB0b3Agb2YgdGhlIGBzb3VyY2VgIGJvZHkuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2UgVGhlIHNvdXJjZSB0byBtb2RpZnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBkZXRhaWxzIFRoZSBkZXRhaWxzIHRvIGluc2VydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBtb2RpZmllZCBzb3VyY2UuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5zZXJ0V3JhcERldGFpbHMoc291cmNlLCBkZXRhaWxzKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gZGV0YWlscy5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gc291cmNlO1xuICAgICAgfVxuICAgICAgdmFyIGxhc3RJbmRleCA9IGxlbmd0aCAtIDE7XG4gICAgICBkZXRhaWxzW2xhc3RJbmRleF0gPSAobGVuZ3RoID4gMSA/ICcmICcgOiAnJykgKyBkZXRhaWxzW2xhc3RJbmRleF07XG4gICAgICBkZXRhaWxzID0gZGV0YWlscy5qb2luKGxlbmd0aCA+IDIgPyAnLCAnIDogJyAnKTtcbiAgICAgIHJldHVybiBzb3VyY2UucmVwbGFjZShyZVdyYXBDb21tZW50LCAne1xcbi8qIFt3cmFwcGVkIHdpdGggJyArIGRldGFpbHMgKyAnXSAqL1xcbicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgZmxhdHRlbmFibGUgYGFyZ3VtZW50c2Agb2JqZWN0IG9yIGFycmF5LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBmbGF0dGVuYWJsZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRmxhdHRlbmFibGUodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc0FycmF5KHZhbHVlKSB8fCBpc0FyZ3VtZW50cyh2YWx1ZSkgfHxcbiAgICAgICAgISEoc3ByZWFkYWJsZVN5bWJvbCAmJiB2YWx1ZSAmJiB2YWx1ZVtzcHJlYWRhYmxlU3ltYm9sXSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBhcnJheS1saWtlIGluZGV4LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD1NQVhfU0FGRV9JTlRFR0VSXSBUaGUgdXBwZXIgYm91bmRzIG9mIGEgdmFsaWQgaW5kZXguXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBpbmRleCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzSW5kZXgodmFsdWUsIGxlbmd0aCkge1xuICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgICBsZW5ndGggPSBsZW5ndGggPT0gbnVsbCA/IE1BWF9TQUZFX0lOVEVHRVIgOiBsZW5ndGg7XG5cbiAgICAgIHJldHVybiAhIWxlbmd0aCAmJlxuICAgICAgICAodHlwZSA9PSAnbnVtYmVyJyB8fFxuICAgICAgICAgICh0eXBlICE9ICdzeW1ib2wnICYmIHJlSXNVaW50LnRlc3QodmFsdWUpKSkgJiZcbiAgICAgICAgICAgICh2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDwgbGVuZ3RoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIGdpdmVuIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgdmFsdWUgYXJndW1lbnQuXG4gICAgICogQHBhcmFtIHsqfSBpbmRleCBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIGluZGV4IG9yIGtleSBhcmd1bWVudC5cbiAgICAgKiBAcGFyYW0geyp9IG9iamVjdCBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIG9iamVjdCBhcmd1bWVudC5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNJdGVyYXRlZUNhbGwodmFsdWUsIGluZGV4LCBvYmplY3QpIHtcbiAgICAgIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgdHlwZSA9IHR5cGVvZiBpbmRleDtcbiAgICAgIGlmICh0eXBlID09ICdudW1iZXInXG4gICAgICAgICAgICA/IChpc0FycmF5TGlrZShvYmplY3QpICYmIGlzSW5kZXgoaW5kZXgsIG9iamVjdC5sZW5ndGgpKVxuICAgICAgICAgICAgOiAodHlwZSA9PSAnc3RyaW5nJyAmJiBpbmRleCBpbiBvYmplY3QpXG4gICAgICAgICAgKSB7XG4gICAgICAgIHJldHVybiBlcShvYmplY3RbaW5kZXhdLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBwcm9wZXJ0eSBuYW1lIGFuZCBub3QgYSBwcm9wZXJ0eSBwYXRoLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeSBrZXlzIG9uLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcHJvcGVydHkgbmFtZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzS2V5KHZhbHVlLCBvYmplY3QpIHtcbiAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgICAgIGlmICh0eXBlID09ICdudW1iZXInIHx8IHR5cGUgPT0gJ3N5bWJvbCcgfHwgdHlwZSA9PSAnYm9vbGVhbicgfHxcbiAgICAgICAgICB2YWx1ZSA9PSBudWxsIHx8IGlzU3ltYm9sKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZUlzUGxhaW5Qcm9wLnRlc3QodmFsdWUpIHx8ICFyZUlzRGVlcFByb3AudGVzdCh2YWx1ZSkgfHxcbiAgICAgICAgKG9iamVjdCAhPSBudWxsICYmIHZhbHVlIGluIE9iamVjdChvYmplY3QpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBzdWl0YWJsZSBmb3IgdXNlIGFzIHVuaXF1ZSBvYmplY3Qga2V5LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBzdWl0YWJsZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzS2V5YWJsZSh2YWx1ZSkge1xuICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgICByZXR1cm4gKHR5cGUgPT0gJ3N0cmluZycgfHwgdHlwZSA9PSAnbnVtYmVyJyB8fCB0eXBlID09ICdzeW1ib2wnIHx8IHR5cGUgPT0gJ2Jvb2xlYW4nKVxuICAgICAgICA/ICh2YWx1ZSAhPT0gJ19fcHJvdG9fXycpXG4gICAgICAgIDogKHZhbHVlID09PSBudWxsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYGZ1bmNgIGhhcyBhIGxhenkgY291bnRlcnBhcnQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgZnVuY2AgaGFzIGEgbGF6eSBjb3VudGVycGFydCxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTGF6aWFibGUoZnVuYykge1xuICAgICAgdmFyIGZ1bmNOYW1lID0gZ2V0RnVuY05hbWUoZnVuYyksXG4gICAgICAgICAgb3RoZXIgPSBsb2Rhc2hbZnVuY05hbWVdO1xuXG4gICAgICBpZiAodHlwZW9mIG90aGVyICE9ICdmdW5jdGlvbicgfHwgIShmdW5jTmFtZSBpbiBMYXp5V3JhcHBlci5wcm90b3R5cGUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChmdW5jID09PSBvdGhlcikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHZhciBkYXRhID0gZ2V0RGF0YShvdGhlcik7XG4gICAgICByZXR1cm4gISFkYXRhICYmIGZ1bmMgPT09IGRhdGFbMF07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBmdW5jYCBoYXMgaXRzIHNvdXJjZSBtYXNrZWQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgZnVuY2AgaXMgbWFza2VkLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNNYXNrZWQoZnVuYykge1xuICAgICAgcmV0dXJuICEhbWFza1NyY0tleSAmJiAobWFza1NyY0tleSBpbiBmdW5jKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYGZ1bmNgIGlzIGNhcGFibGUgb2YgYmVpbmcgbWFza2VkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGlzIG1hc2thYmxlLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgdmFyIGlzTWFza2FibGUgPSBjb3JlSnNEYXRhID8gaXNGdW5jdGlvbiA6IHN0dWJGYWxzZTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGxpa2VseSBhIHByb3RvdHlwZSBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcHJvdG90eXBlLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNQcm90b3R5cGUodmFsdWUpIHtcbiAgICAgIHZhciBDdG9yID0gdmFsdWUgJiYgdmFsdWUuY29uc3RydWN0b3IsXG4gICAgICAgICAgcHJvdG8gPSAodHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yLnByb3RvdHlwZSkgfHwgb2JqZWN0UHJvdG87XG5cbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gcHJvdG87XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUgZm9yIHN0cmljdCBlcXVhbGl0eSBjb21wYXJpc29ucywgaS5lLiBgPT09YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaWYgc3VpdGFibGUgZm9yIHN0cmljdFxuICAgICAqICBlcXVhbGl0eSBjb21wYXJpc29ucywgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSB2YWx1ZSAmJiAhaXNPYmplY3QodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgbWF0Y2hlc1Byb3BlcnR5YCBmb3Igc291cmNlIHZhbHVlcyBzdWl0YWJsZVxuICAgICAqIGZvciBzdHJpY3QgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGkuZS4gYD09PWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gc3JjVmFsdWUgVGhlIHZhbHVlIHRvIG1hdGNoLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHNwZWMgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWF0Y2hlc1N0cmljdENvbXBhcmFibGUoa2V5LCBzcmNWYWx1ZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iamVjdFtrZXldID09PSBzcmNWYWx1ZSAmJlxuICAgICAgICAgIChzcmNWYWx1ZSAhPT0gdW5kZWZpbmVkIHx8IChrZXkgaW4gT2JqZWN0KG9iamVjdCkpKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLm1lbW9pemVgIHdoaWNoIGNsZWFycyB0aGUgbWVtb2l6ZWQgZnVuY3Rpb24nc1xuICAgICAqIGNhY2hlIHdoZW4gaXQgZXhjZWVkcyBgTUFYX01FTU9JWkVfU0laRWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGhhdmUgaXRzIG91dHB1dCBtZW1vaXplZC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtZW1vaXplZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtZW1vaXplQ2FwcGVkKGZ1bmMpIHtcbiAgICAgIHZhciByZXN1bHQgPSBtZW1vaXplKGZ1bmMsIGZ1bmN0aW9uKGtleSkge1xuICAgICAgICBpZiAoY2FjaGUuc2l6ZSA9PT0gTUFYX01FTU9JWkVfU0laRSkge1xuICAgICAgICAgIGNhY2hlLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgIH0pO1xuXG4gICAgICB2YXIgY2FjaGUgPSByZXN1bHQuY2FjaGU7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1lcmdlcyB0aGUgZnVuY3Rpb24gbWV0YWRhdGEgb2YgYHNvdXJjZWAgaW50byBgZGF0YWAuXG4gICAgICpcbiAgICAgKiBNZXJnaW5nIG1ldGFkYXRhIHJlZHVjZXMgdGhlIG51bWJlciBvZiB3cmFwcGVycyB1c2VkIHRvIGludm9rZSBhIGZ1bmN0aW9uLlxuICAgICAqIFRoaXMgaXMgcG9zc2libGUgYmVjYXVzZSBtZXRob2RzIGxpa2UgYF8uYmluZGAsIGBfLmN1cnJ5YCwgYW5kIGBfLnBhcnRpYWxgXG4gICAgICogbWF5IGJlIGFwcGxpZWQgcmVnYXJkbGVzcyBvZiBleGVjdXRpb24gb3JkZXIuIE1ldGhvZHMgbGlrZSBgXy5hcnlgIGFuZFxuICAgICAqIGBfLnJlYXJnYCBtb2RpZnkgZnVuY3Rpb24gYXJndW1lbnRzLCBtYWtpbmcgdGhlIG9yZGVyIGluIHdoaWNoIHRoZXkgYXJlXG4gICAgICogZXhlY3V0ZWQgaW1wb3J0YW50LCBwcmV2ZW50aW5nIHRoZSBtZXJnaW5nIG9mIG1ldGFkYXRhLiBIb3dldmVyLCB3ZSBtYWtlXG4gICAgICogYW4gZXhjZXB0aW9uIGZvciBhIHNhZmUgY29tYmluZWQgY2FzZSB3aGVyZSBjdXJyaWVkIGZ1bmN0aW9ucyBoYXZlIGBfLmFyeWBcbiAgICAgKiBhbmQgb3IgYF8ucmVhcmdgIGFwcGxpZWQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGRhdGEgVGhlIGRlc3RpbmF0aW9uIG1ldGFkYXRhLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHNvdXJjZSBUaGUgc291cmNlIG1ldGFkYXRhLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgZGF0YWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWVyZ2VEYXRhKGRhdGEsIHNvdXJjZSkge1xuICAgICAgdmFyIGJpdG1hc2sgPSBkYXRhWzFdLFxuICAgICAgICAgIHNyY0JpdG1hc2sgPSBzb3VyY2VbMV0sXG4gICAgICAgICAgbmV3Qml0bWFzayA9IGJpdG1hc2sgfCBzcmNCaXRtYXNrLFxuICAgICAgICAgIGlzQ29tbW9uID0gbmV3Qml0bWFzayA8IChXUkFQX0JJTkRfRkxBRyB8IFdSQVBfQklORF9LRVlfRkxBRyB8IFdSQVBfQVJZX0ZMQUcpO1xuXG4gICAgICB2YXIgaXNDb21ibyA9XG4gICAgICAgICgoc3JjQml0bWFzayA9PSBXUkFQX0FSWV9GTEFHKSAmJiAoYml0bWFzayA9PSBXUkFQX0NVUlJZX0ZMQUcpKSB8fFxuICAgICAgICAoKHNyY0JpdG1hc2sgPT0gV1JBUF9BUllfRkxBRykgJiYgKGJpdG1hc2sgPT0gV1JBUF9SRUFSR19GTEFHKSAmJiAoZGF0YVs3XS5sZW5ndGggPD0gc291cmNlWzhdKSkgfHxcbiAgICAgICAgKChzcmNCaXRtYXNrID09IChXUkFQX0FSWV9GTEFHIHwgV1JBUF9SRUFSR19GTEFHKSkgJiYgKHNvdXJjZVs3XS5sZW5ndGggPD0gc291cmNlWzhdKSAmJiAoYml0bWFzayA9PSBXUkFQX0NVUlJZX0ZMQUcpKTtcblxuICAgICAgLy8gRXhpdCBlYXJseSBpZiBtZXRhZGF0YSBjYW4ndCBiZSBtZXJnZWQuXG4gICAgICBpZiAoIShpc0NvbW1vbiB8fCBpc0NvbWJvKSkge1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH1cbiAgICAgIC8vIFVzZSBzb3VyY2UgYHRoaXNBcmdgIGlmIGF2YWlsYWJsZS5cbiAgICAgIGlmIChzcmNCaXRtYXNrICYgV1JBUF9CSU5EX0ZMQUcpIHtcbiAgICAgICAgZGF0YVsyXSA9IHNvdXJjZVsyXTtcbiAgICAgICAgLy8gU2V0IHdoZW4gY3VycnlpbmcgYSBib3VuZCBmdW5jdGlvbi5cbiAgICAgICAgbmV3Qml0bWFzayB8PSBiaXRtYXNrICYgV1JBUF9CSU5EX0ZMQUcgPyAwIDogV1JBUF9DVVJSWV9CT1VORF9GTEFHO1xuICAgICAgfVxuICAgICAgLy8gQ29tcG9zZSBwYXJ0aWFsIGFyZ3VtZW50cy5cbiAgICAgIHZhciB2YWx1ZSA9IHNvdXJjZVszXTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB2YXIgcGFydGlhbHMgPSBkYXRhWzNdO1xuICAgICAgICBkYXRhWzNdID0gcGFydGlhbHMgPyBjb21wb3NlQXJncyhwYXJ0aWFscywgdmFsdWUsIHNvdXJjZVs0XSkgOiB2YWx1ZTtcbiAgICAgICAgZGF0YVs0XSA9IHBhcnRpYWxzID8gcmVwbGFjZUhvbGRlcnMoZGF0YVszXSwgUExBQ0VIT0xERVIpIDogc291cmNlWzRdO1xuICAgICAgfVxuICAgICAgLy8gQ29tcG9zZSBwYXJ0aWFsIHJpZ2h0IGFyZ3VtZW50cy5cbiAgICAgIHZhbHVlID0gc291cmNlWzVdO1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHBhcnRpYWxzID0gZGF0YVs1XTtcbiAgICAgICAgZGF0YVs1XSA9IHBhcnRpYWxzID8gY29tcG9zZUFyZ3NSaWdodChwYXJ0aWFscywgdmFsdWUsIHNvdXJjZVs2XSkgOiB2YWx1ZTtcbiAgICAgICAgZGF0YVs2XSA9IHBhcnRpYWxzID8gcmVwbGFjZUhvbGRlcnMoZGF0YVs1XSwgUExBQ0VIT0xERVIpIDogc291cmNlWzZdO1xuICAgICAgfVxuICAgICAgLy8gVXNlIHNvdXJjZSBgYXJnUG9zYCBpZiBhdmFpbGFibGUuXG4gICAgICB2YWx1ZSA9IHNvdXJjZVs3XTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBkYXRhWzddID0gdmFsdWU7XG4gICAgICB9XG4gICAgICAvLyBVc2Ugc291cmNlIGBhcnlgIGlmIGl0J3Mgc21hbGxlci5cbiAgICAgIGlmIChzcmNCaXRtYXNrICYgV1JBUF9BUllfRkxBRykge1xuICAgICAgICBkYXRhWzhdID0gZGF0YVs4XSA9PSBudWxsID8gc291cmNlWzhdIDogbmF0aXZlTWluKGRhdGFbOF0sIHNvdXJjZVs4XSk7XG4gICAgICB9XG4gICAgICAvLyBVc2Ugc291cmNlIGBhcml0eWAgaWYgb25lIGlzIG5vdCBwcm92aWRlZC5cbiAgICAgIGlmIChkYXRhWzldID09IG51bGwpIHtcbiAgICAgICAgZGF0YVs5XSA9IHNvdXJjZVs5XTtcbiAgICAgIH1cbiAgICAgIC8vIFVzZSBzb3VyY2UgYGZ1bmNgIGFuZCBtZXJnZSBiaXRtYXNrcy5cbiAgICAgIGRhdGFbMF0gPSBzb3VyY2VbMF07XG4gICAgICBkYXRhWzFdID0gbmV3Qml0bWFzaztcblxuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlXG4gICAgICogW2BPYmplY3Qua2V5c2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5rZXlzKVxuICAgICAqIGV4Y2VwdCB0aGF0IGl0IGluY2x1ZGVzIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG5hdGl2ZUtleXNJbihvYmplY3QpIHtcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgIGlmIChvYmplY3QgIT0gbnVsbCkge1xuICAgICAgICBmb3IgKHZhciBrZXkgaW4gT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcgdXNpbmcgYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBzdHJpbmcuXG4gICAgICovXG4gICAgZnVuY3Rpb24gb2JqZWN0VG9TdHJpbmcodmFsdWUpIHtcbiAgICAgIHJldHVybiBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VSZXN0YCB3aGljaCB0cmFuc2Zvcm1zIHRoZSByZXN0IGFycmF5LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhcHBseSBhIHJlc3QgcGFyYW1ldGVyIHRvLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9ZnVuYy5sZW5ndGgtMV0gVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSByZXN0IHBhcmFtZXRlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB0cmFuc2Zvcm0gVGhlIHJlc3QgYXJyYXkgdHJhbnNmb3JtLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG92ZXJSZXN0KGZ1bmMsIHN0YXJ0LCB0cmFuc2Zvcm0pIHtcbiAgICAgIHN0YXJ0ID0gbmF0aXZlTWF4KHN0YXJ0ID09PSB1bmRlZmluZWQgPyAoZnVuYy5sZW5ndGggLSAxKSA6IHN0YXJ0LCAwKTtcbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgICAgICBpbmRleCA9IC0xLFxuICAgICAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWF4KGFyZ3MubGVuZ3RoIC0gc3RhcnQsIDApLFxuICAgICAgICAgICAgYXJyYXkgPSBBcnJheShsZW5ndGgpO1xuXG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgYXJyYXlbaW5kZXhdID0gYXJnc1tzdGFydCArIGluZGV4XTtcbiAgICAgICAgfVxuICAgICAgICBpbmRleCA9IC0xO1xuICAgICAgICB2YXIgb3RoZXJBcmdzID0gQXJyYXkoc3RhcnQgKyAxKTtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBzdGFydCkge1xuICAgICAgICAgIG90aGVyQXJnc1tpbmRleF0gPSBhcmdzW2luZGV4XTtcbiAgICAgICAgfVxuICAgICAgICBvdGhlckFyZ3Nbc3RhcnRdID0gdHJhbnNmb3JtKGFycmF5KTtcbiAgICAgICAgcmV0dXJuIGFwcGx5KGZ1bmMsIHRoaXMsIG90aGVyQXJncyk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHBhcmVudCB2YWx1ZSBhdCBgcGF0aGAgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwYXRoIFRoZSBwYXRoIHRvIGdldCB0aGUgcGFyZW50IHZhbHVlIG9mLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBwYXJlbnQgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gcGFyZW50KG9iamVjdCwgcGF0aCkge1xuICAgICAgcmV0dXJuIHBhdGgubGVuZ3RoIDwgMiA/IG9iamVjdCA6IGJhc2VHZXQob2JqZWN0LCBiYXNlU2xpY2UocGF0aCwgMCwgLTEpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW9yZGVyIGBhcnJheWAgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgaW5kZXhlcyB3aGVyZSB0aGUgZWxlbWVudCBhdFxuICAgICAqIHRoZSBmaXJzdCBpbmRleCBpcyBhc3NpZ25lZCBhcyB0aGUgZmlyc3QgZWxlbWVudCwgdGhlIGVsZW1lbnQgYXRcbiAgICAgKiB0aGUgc2Vjb25kIGluZGV4IGlzIGFzc2lnbmVkIGFzIHRoZSBzZWNvbmQgZWxlbWVudCwgYW5kIHNvIG9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcmVvcmRlci5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBpbmRleGVzIFRoZSBhcnJhbmdlZCBhcnJheSBpbmRleGVzLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlb3JkZXIoYXJyYXksIGluZGV4ZXMpIHtcbiAgICAgIHZhciBhcnJMZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWluKGluZGV4ZXMubGVuZ3RoLCBhcnJMZW5ndGgpLFxuICAgICAgICAgIG9sZEFycmF5ID0gY29weUFycmF5KGFycmF5KTtcblxuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIHZhciBpbmRleCA9IGluZGV4ZXNbbGVuZ3RoXTtcbiAgICAgICAgYXJyYXlbbGVuZ3RoXSA9IGlzSW5kZXgoaW5kZXgsIGFyckxlbmd0aCkgPyBvbGRBcnJheVtpbmRleF0gOiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgdmFsdWUgYXQgYGtleWAsIHVubGVzcyBga2V5YCBpcyBcIl9fcHJvdG9fX1wiIG9yIFwiY29uc3RydWN0b3JcIi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzYWZlR2V0KG9iamVjdCwga2V5KSB7XG4gICAgICBpZiAoa2V5ID09PSAnY29uc3RydWN0b3InICYmIHR5cGVvZiBvYmplY3Rba2V5XSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChrZXkgPT0gJ19fcHJvdG9fXycpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gb2JqZWN0W2tleV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBtZXRhZGF0YSBmb3IgYGZ1bmNgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIElmIHRoaXMgZnVuY3Rpb24gYmVjb21lcyBob3QsIGkuZS4gaXMgaW52b2tlZCBhIGxvdCBpbiBhIHNob3J0XG4gICAgICogcGVyaW9kIG9mIHRpbWUsIGl0IHdpbGwgdHJpcCBpdHMgYnJlYWtlciBhbmQgdHJhbnNpdGlvbiB0byBhbiBpZGVudGl0eVxuICAgICAqIGZ1bmN0aW9uIHRvIGF2b2lkIGdhcmJhZ2UgY29sbGVjdGlvbiBwYXVzZXMgaW4gVjguIFNlZVxuICAgICAqIFtWOCBpc3N1ZSAyMDcwXShodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0yMDcwKVxuICAgICAqIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFzc29jaWF0ZSBtZXRhZGF0YSB3aXRoLlxuICAgICAqIEBwYXJhbSB7Kn0gZGF0YSBUaGUgbWV0YWRhdGEuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBmdW5jYC5cbiAgICAgKi9cbiAgICB2YXIgc2V0RGF0YSA9IHNob3J0T3V0KGJhc2VTZXREYXRhKTtcblxuICAgIC8qKlxuICAgICAqIEEgc2ltcGxlIHdyYXBwZXIgYXJvdW5kIHRoZSBnbG9iYWwgW2BzZXRUaW1lb3V0YF0oaHR0cHM6Ly9tZG4uaW8vc2V0VGltZW91dCkuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRlbGF5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3YWl0IFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIGRlbGF5IGludm9jYXRpb24uXG4gICAgICogQHJldHVybnMge251bWJlcnxPYmplY3R9IFJldHVybnMgdGhlIHRpbWVyIGlkIG9yIHRpbWVvdXQgb2JqZWN0LlxuICAgICAqL1xuICAgIHZhciBzZXRUaW1lb3V0ID0gY3R4U2V0VGltZW91dCB8fCBmdW5jdGlvbihmdW5jLCB3YWl0KSB7XG4gICAgICByZXR1cm4gcm9vdC5zZXRUaW1lb3V0KGZ1bmMsIHdhaXQpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgdG9TdHJpbmdgIG1ldGhvZCBvZiBgZnVuY2AgdG8gcmV0dXJuIGBzdHJpbmdgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gc3RyaW5nIFRoZSBgdG9TdHJpbmdgIHJlc3VsdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGZ1bmNgLlxuICAgICAqL1xuICAgIHZhciBzZXRUb1N0cmluZyA9IHNob3J0T3V0KGJhc2VTZXRUb1N0cmluZyk7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgdG9TdHJpbmdgIG1ldGhvZCBvZiBgd3JhcHBlcmAgdG8gbWltaWMgdGhlIHNvdXJjZSBvZiBgcmVmZXJlbmNlYFxuICAgICAqIHdpdGggd3JhcHBlciBkZXRhaWxzIGluIGEgY29tbWVudCBhdCB0aGUgdG9wIG9mIHRoZSBzb3VyY2UgYm9keS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gd3JhcHBlciBUaGUgZnVuY3Rpb24gdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHJlZmVyZW5jZSBUaGUgcmVmZXJlbmNlIGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGNyZWF0ZVdyYXBgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGB3cmFwcGVyYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzZXRXcmFwVG9TdHJpbmcod3JhcHBlciwgcmVmZXJlbmNlLCBiaXRtYXNrKSB7XG4gICAgICB2YXIgc291cmNlID0gKHJlZmVyZW5jZSArICcnKTtcbiAgICAgIHJldHVybiBzZXRUb1N0cmluZyh3cmFwcGVyLCBpbnNlcnRXcmFwRGV0YWlscyhzb3VyY2UsIHVwZGF0ZVdyYXBEZXRhaWxzKGdldFdyYXBEZXRhaWxzKHNvdXJjZSksIGJpdG1hc2spKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQnbGwgc2hvcnQgb3V0IGFuZCBpbnZva2UgYGlkZW50aXR5YCBpbnN0ZWFkXG4gICAgICogb2YgYGZ1bmNgIHdoZW4gaXQncyBjYWxsZWQgYEhPVF9DT1VOVGAgb3IgbW9yZSB0aW1lcyBpbiBgSE9UX1NQQU5gXG4gICAgICogbWlsbGlzZWNvbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byByZXN0cmljdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzaG9ydGFibGUgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2hvcnRPdXQoZnVuYykge1xuICAgICAgdmFyIGNvdW50ID0gMCxcbiAgICAgICAgICBsYXN0Q2FsbGVkID0gMDtcblxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgc3RhbXAgPSBuYXRpdmVOb3coKSxcbiAgICAgICAgICAgIHJlbWFpbmluZyA9IEhPVF9TUEFOIC0gKHN0YW1wIC0gbGFzdENhbGxlZCk7XG5cbiAgICAgICAgbGFzdENhbGxlZCA9IHN0YW1wO1xuICAgICAgICBpZiAocmVtYWluaW5nID4gMCkge1xuICAgICAgICAgIGlmICgrK2NvdW50ID49IEhPVF9DT1VOVCkge1xuICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50c1swXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY291bnQgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmdW5jLmFwcGx5KHVuZGVmaW5lZCwgYXJndW1lbnRzKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLnNodWZmbGVgIHdoaWNoIG11dGF0ZXMgYW5kIHNldHMgdGhlIHNpemUgb2YgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNodWZmbGUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzaXplPWFycmF5Lmxlbmd0aF0gVGhlIHNpemUgb2YgYGFycmF5YC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzaHVmZmxlU2VsZihhcnJheSwgc2l6ZSkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIGxhc3RJbmRleCA9IGxlbmd0aCAtIDE7XG5cbiAgICAgIHNpemUgPSBzaXplID09PSB1bmRlZmluZWQgPyBsZW5ndGggOiBzaXplO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBzaXplKSB7XG4gICAgICAgIHZhciByYW5kID0gYmFzZVJhbmRvbShpbmRleCwgbGFzdEluZGV4KSxcbiAgICAgICAgICAgIHZhbHVlID0gYXJyYXlbcmFuZF07XG5cbiAgICAgICAgYXJyYXlbcmFuZF0gPSBhcnJheVtpbmRleF07XG4gICAgICAgIGFycmF5W2luZGV4XSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgYXJyYXkubGVuZ3RoID0gc2l6ZTtcbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCB0byBhIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcHJvcGVydHkgcGF0aCBhcnJheS5cbiAgICAgKi9cbiAgICB2YXIgc3RyaW5nVG9QYXRoID0gbWVtb2l6ZUNhcHBlZChmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgIGlmIChzdHJpbmcuY2hhckNvZGVBdCgwKSA9PT0gNDYgLyogLiAqLykge1xuICAgICAgICByZXN1bHQucHVzaCgnJyk7XG4gICAgICB9XG4gICAgICBzdHJpbmcucmVwbGFjZShyZVByb3BOYW1lLCBmdW5jdGlvbihtYXRjaCwgbnVtYmVyLCBxdW90ZSwgc3ViU3RyaW5nKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHF1b3RlID8gc3ViU3RyaW5nLnJlcGxhY2UocmVFc2NhcGVDaGFyLCAnJDEnKSA6IChudW1iZXIgfHwgbWF0Y2gpKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcga2V5IGlmIGl0J3Mgbm90IGEgc3RyaW5nIG9yIHN5bWJvbC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfHN5bWJvbH0gUmV0dXJucyB0aGUga2V5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvS2V5KHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8IGlzU3ltYm9sKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gKHZhbHVlICsgJycpO1xuICAgICAgcmV0dXJuIChyZXN1bHQgPT0gJzAnICYmICgxIC8gdmFsdWUpID09IC1JTkZJTklUWSkgPyAnLTAnIDogcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGBmdW5jYCB0byBpdHMgc291cmNlIGNvZGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgc291cmNlIGNvZGUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9Tb3VyY2UoZnVuYykge1xuICAgICAgaWYgKGZ1bmMgIT0gbnVsbCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBmdW5jVG9TdHJpbmcuY2FsbChmdW5jKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gKGZ1bmMgKyAnJyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICB9XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB3cmFwcGVyIGBkZXRhaWxzYCBiYXNlZCBvbiBgYml0bWFza2AgZmxhZ3MuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gZGV0YWlscyBUaGUgZGV0YWlscyB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgY3JlYXRlV3JhcGAgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGRldGFpbHNgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVwZGF0ZVdyYXBEZXRhaWxzKGRldGFpbHMsIGJpdG1hc2spIHtcbiAgICAgIGFycmF5RWFjaCh3cmFwRmxhZ3MsIGZ1bmN0aW9uKHBhaXIpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gJ18uJyArIHBhaXJbMF07XG4gICAgICAgIGlmICgoYml0bWFzayAmIHBhaXJbMV0pICYmICFhcnJheUluY2x1ZGVzKGRldGFpbHMsIHZhbHVlKSkge1xuICAgICAgICAgIGRldGFpbHMucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGRldGFpbHMuc29ydCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgd3JhcHBlcmAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSB3cmFwcGVyIFRoZSB3cmFwcGVyIHRvIGNsb25lLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCB3cmFwcGVyLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdyYXBwZXJDbG9uZSh3cmFwcGVyKSB7XG4gICAgICBpZiAod3JhcHBlciBpbnN0YW5jZW9mIExhenlXcmFwcGVyKSB7XG4gICAgICAgIHJldHVybiB3cmFwcGVyLmNsb25lKCk7XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gbmV3IExvZGFzaFdyYXBwZXIod3JhcHBlci5fX3dyYXBwZWRfXywgd3JhcHBlci5fX2NoYWluX18pO1xuICAgICAgcmVzdWx0Ll9fYWN0aW9uc19fID0gY29weUFycmF5KHdyYXBwZXIuX19hY3Rpb25zX18pO1xuICAgICAgcmVzdWx0Ll9faW5kZXhfXyAgPSB3cmFwcGVyLl9faW5kZXhfXztcbiAgICAgIHJlc3VsdC5fX3ZhbHVlc19fID0gd3JhcHBlci5fX3ZhbHVlc19fO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGVsZW1lbnRzIHNwbGl0IGludG8gZ3JvdXBzIHRoZSBsZW5ndGggb2YgYHNpemVgLlxuICAgICAqIElmIGBhcnJheWAgY2FuJ3QgYmUgc3BsaXQgZXZlbmx5LCB0aGUgZmluYWwgY2h1bmsgd2lsbCBiZSB0aGUgcmVtYWluaW5nXG4gICAgICogZWxlbWVudHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NpemU9MV0gVGhlIGxlbmd0aCBvZiBlYWNoIGNodW5rXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjaHVua3MuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uY2h1bmsoWydhJywgJ2InLCAnYycsICdkJ10sIDIpO1xuICAgICAqIC8vID0+IFtbJ2EnLCAnYiddLCBbJ2MnLCAnZCddXVxuICAgICAqXG4gICAgICogXy5jaHVuayhbJ2EnLCAnYicsICdjJywgJ2QnXSwgMyk7XG4gICAgICogLy8gPT4gW1snYScsICdiJywgJ2MnXSwgWydkJ11dXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2h1bmsoYXJyYXksIHNpemUsIGd1YXJkKSB7XG4gICAgICBpZiAoKGd1YXJkID8gaXNJdGVyYXRlZUNhbGwoYXJyYXksIHNpemUsIGd1YXJkKSA6IHNpemUgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgc2l6ZSA9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzaXplID0gbmF0aXZlTWF4KHRvSW50ZWdlcihzaXplKSwgMCk7XG4gICAgICB9XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCB8fCBzaXplIDwgMSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSAwLFxuICAgICAgICAgIHJlc0luZGV4ID0gMCxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShuYXRpdmVDZWlsKGxlbmd0aCAvIHNpemUpKTtcblxuICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IGJhc2VTbGljZShhcnJheSwgaW5kZXgsIChpbmRleCArPSBzaXplKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgd2l0aCBhbGwgZmFsc2V5IHZhbHVlcyByZW1vdmVkLiBUaGUgdmFsdWVzIGBmYWxzZWAsIGBudWxsYCxcbiAgICAgKiBgMGAsIGBcIlwiYCwgYHVuZGVmaW5lZGAsIGFuZCBgTmFOYCBhcmUgZmFsc2V5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGNvbXBhY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmNvbXBhY3QoWzAsIDEsIGZhbHNlLCAyLCAnJywgM10pO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbXBhY3QoYXJyYXkpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIHJlc0luZGV4ID0gMCxcbiAgICAgICAgICByZXN1bHQgPSBbXTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICByZXN1bHRbcmVzSW5kZXgrK10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGFycmF5IGNvbmNhdGVuYXRpbmcgYGFycmF5YCB3aXRoIGFueSBhZGRpdGlvbmFsIGFycmF5c1xuICAgICAqIGFuZC9vciB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY29uY2F0ZW5hdGUuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbdmFsdWVzXSBUaGUgdmFsdWVzIHRvIGNvbmNhdGVuYXRlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGNvbmNhdGVuYXRlZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzFdO1xuICAgICAqIHZhciBvdGhlciA9IF8uY29uY2F0KGFycmF5LCAyLCBbM10sIFtbNF1dKTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKG90aGVyKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgMywgWzRdXVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsxXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbmNhdCgpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgdmFyIGFyZ3MgPSBBcnJheShsZW5ndGggLSAxKSxcbiAgICAgICAgICBhcnJheSA9IGFyZ3VtZW50c1swXSxcbiAgICAgICAgICBpbmRleCA9IGxlbmd0aDtcblxuICAgICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgICAgYXJnc1tpbmRleCAtIDFdID0gYXJndW1lbnRzW2luZGV4XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheVB1c2goaXNBcnJheShhcnJheSkgPyBjb3B5QXJyYXkoYXJyYXkpIDogW2FycmF5XSwgYmFzZUZsYXR0ZW4oYXJncywgMSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgYGFycmF5YCB2YWx1ZXMgbm90IGluY2x1ZGVkIGluIHRoZSBvdGhlciBnaXZlbiBhcnJheXNcbiAgICAgKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy4gVGhlIG9yZGVyIGFuZCByZWZlcmVuY2VzIG9mIHJlc3VsdCB2YWx1ZXMgYXJlXG4gICAgICogZGV0ZXJtaW5lZCBieSB0aGUgZmlyc3QgYXJyYXkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLnB1bGxBbGxgLCB0aGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW3ZhbHVlc10gVGhlIHZhbHVlcyB0byBleGNsdWRlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cbiAgICAgKiBAc2VlIF8ud2l0aG91dCwgXy54b3JcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kaWZmZXJlbmNlKFsyLCAxXSwgWzIsIDNdKTtcbiAgICAgKiAvLyA9PiBbMV1cbiAgICAgKi9cbiAgICB2YXIgZGlmZmVyZW5jZSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5LCB2YWx1ZXMpIHtcbiAgICAgIHJldHVybiBpc0FycmF5TGlrZU9iamVjdChhcnJheSlcbiAgICAgICAgPyBiYXNlRGlmZmVyZW5jZShhcnJheSwgYmFzZUZsYXR0ZW4odmFsdWVzLCAxLCBpc0FycmF5TGlrZU9iamVjdCwgdHJ1ZSkpXG4gICAgICAgIDogW107XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmRpZmZlcmVuY2VgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaFxuICAgICAqIGlzIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBvZiBgYXJyYXlgIGFuZCBgdmFsdWVzYCB0byBnZW5lcmF0ZSB0aGUgY3JpdGVyaW9uXG4gICAgICogYnkgd2hpY2ggdGhleSdyZSBjb21wYXJlZC4gVGhlIG9yZGVyIGFuZCByZWZlcmVuY2VzIG9mIHJlc3VsdCB2YWx1ZXMgYXJlXG4gICAgICogZGV0ZXJtaW5lZCBieSB0aGUgZmlyc3QgYXJyYXkuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OlxuICAgICAqICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLnB1bGxBbGxCeWAsIHRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbdmFsdWVzXSBUaGUgdmFsdWVzIHRvIGV4Y2x1ZGUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kaWZmZXJlbmNlQnkoWzIuMSwgMS4yXSwgWzIuMywgMy40XSwgTWF0aC5mbG9vcik7XG4gICAgICogLy8gPT4gWzEuMl1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZGlmZmVyZW5jZUJ5KFt7ICd4JzogMiB9LCB7ICd4JzogMSB9XSwgW3sgJ3gnOiAxIH1dLCAneCcpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMiB9XVxuICAgICAqL1xuICAgIHZhciBkaWZmZXJlbmNlQnkgPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheSwgdmFsdWVzKSB7XG4gICAgICB2YXIgaXRlcmF0ZWUgPSBsYXN0KHZhbHVlcyk7XG4gICAgICBpZiAoaXNBcnJheUxpa2VPYmplY3QoaXRlcmF0ZWUpKSB7XG4gICAgICAgIGl0ZXJhdGVlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlT2JqZWN0KGFycmF5KVxuICAgICAgICA/IGJhc2VEaWZmZXJlbmNlKGFycmF5LCBiYXNlRmxhdHRlbih2YWx1ZXMsIDEsIGlzQXJyYXlMaWtlT2JqZWN0LCB0cnVlKSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKVxuICAgICAgICA6IFtdO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5kaWZmZXJlbmNlYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjb21wYXJhdG9yYFxuICAgICAqIHdoaWNoIGlzIGludm9rZWQgdG8gY29tcGFyZSBlbGVtZW50cyBvZiBgYXJyYXlgIHRvIGB2YWx1ZXNgLiBUaGUgb3JkZXIgYW5kXG4gICAgICogcmVmZXJlbmNlcyBvZiByZXN1bHQgdmFsdWVzIGFyZSBkZXRlcm1pbmVkIGJ5IHRoZSBmaXJzdCBhcnJheS4gVGhlIGNvbXBhcmF0b3JcbiAgICAgKiBpcyBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50czogKGFyclZhbCwgb3RoVmFsKS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBVbmxpa2UgYF8ucHVsbEFsbFdpdGhgLCB0aGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW3ZhbHVlc10gVGhlIHZhbHVlcyB0byBleGNsdWRlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAneCc6IDEsICd5JzogMiB9LCB7ICd4JzogMiwgJ3knOiAxIH1dO1xuICAgICAqXG4gICAgICogXy5kaWZmZXJlbmNlV2l0aChvYmplY3RzLCBbeyAneCc6IDEsICd5JzogMiB9XSwgXy5pc0VxdWFsKTtcbiAgICAgKiAvLyA9PiBbeyAneCc6IDIsICd5JzogMSB9XVxuICAgICAqL1xuICAgIHZhciBkaWZmZXJlbmNlV2l0aCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5LCB2YWx1ZXMpIHtcbiAgICAgIHZhciBjb21wYXJhdG9yID0gbGFzdCh2YWx1ZXMpO1xuICAgICAgaWYgKGlzQXJyYXlMaWtlT2JqZWN0KGNvbXBhcmF0b3IpKSB7XG4gICAgICAgIGNvbXBhcmF0b3IgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gaXNBcnJheUxpa2VPYmplY3QoYXJyYXkpXG4gICAgICAgID8gYmFzZURpZmZlcmVuY2UoYXJyYXksIGJhc2VGbGF0dGVuKHZhbHVlcywgMSwgaXNBcnJheUxpa2VPYmplY3QsIHRydWUpLCB1bmRlZmluZWQsIGNvbXBhcmF0b3IpXG4gICAgICAgIDogW107XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCB3aXRoIGBuYCBlbGVtZW50cyBkcm9wcGVkIGZyb20gdGhlIGJlZ2lubmluZy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjUuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249MV0gVGhlIG51bWJlciBvZiBlbGVtZW50cyB0byBkcm9wLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRyb3AoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBbMiwgM11cbiAgICAgKlxuICAgICAqIF8uZHJvcChbMSwgMiwgM10sIDIpO1xuICAgICAqIC8vID0+IFszXVxuICAgICAqXG4gICAgICogXy5kcm9wKFsxLCAyLCAzXSwgNSk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKlxuICAgICAqIF8uZHJvcChbMSwgMiwgM10sIDApO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRyb3AoYXJyYXksIG4sIGd1YXJkKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBuID0gKGd1YXJkIHx8IG4gPT09IHVuZGVmaW5lZCkgPyAxIDogdG9JbnRlZ2VyKG4pO1xuICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgbiA8IDAgPyAwIDogbiwgbGVuZ3RoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCB3aXRoIGBuYCBlbGVtZW50cyBkcm9wcGVkIGZyb20gdGhlIGVuZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249MV0gVGhlIG51bWJlciBvZiBlbGVtZW50cyB0byBkcm9wLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRyb3BSaWdodChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqXG4gICAgICogXy5kcm9wUmlnaHQoWzEsIDIsIDNdLCAyKTtcbiAgICAgKiAvLyA9PiBbMV1cbiAgICAgKlxuICAgICAqIF8uZHJvcFJpZ2h0KFsxLCAyLCAzXSwgNSk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKlxuICAgICAqIF8uZHJvcFJpZ2h0KFsxLCAyLCAzXSwgMCk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICovXG4gICAgZnVuY3Rpb24gZHJvcFJpZ2h0KGFycmF5LCBuLCBndWFyZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgbiA9IChndWFyZCB8fCBuID09PSB1bmRlZmluZWQpID8gMSA6IHRvSW50ZWdlcihuKTtcbiAgICAgIG4gPSBsZW5ndGggLSBuO1xuICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgMCwgbiA8IDAgPyAwIDogbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgZXhjbHVkaW5nIGVsZW1lbnRzIGRyb3BwZWQgZnJvbSB0aGUgZW5kLlxuICAgICAqIEVsZW1lbnRzIGFyZSBkcm9wcGVkIHVudGlsIGBwcmVkaWNhdGVgIHJldHVybnMgZmFsc2V5LiBUaGUgcHJlZGljYXRlIGlzXG4gICAgICogaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleCwgYXJyYXkpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiBmYWxzZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZHJvcFJpZ2h0V2hpbGUodXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuICFvLmFjdGl2ZTsgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydiYXJuZXknXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmRyb3BSaWdodFdoaWxlKHVzZXJzLCB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogZmFsc2UgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydiYXJuZXknLCAnZnJlZCddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5kcm9wUmlnaHRXaGlsZSh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5J11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZHJvcFJpZ2h0V2hpbGUodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leScsICdmcmVkJywgJ3BlYmJsZXMnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRyb3BSaWdodFdoaWxlKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VXaGlsZShhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgdHJ1ZSwgdHJ1ZSlcbiAgICAgICAgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCBleGNsdWRpbmcgZWxlbWVudHMgZHJvcHBlZCBmcm9tIHRoZSBiZWdpbm5pbmcuXG4gICAgICogRWxlbWVudHMgYXJlIGRyb3BwZWQgdW50aWwgYHByZWRpY2F0ZWAgcmV0dXJucyBmYWxzZXkuIFRoZSBwcmVkaWNhdGUgaXNcbiAgICAgKiBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4LCBhcnJheSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiB0cnVlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5kcm9wV2hpbGUodXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuICFvLmFjdGl2ZTsgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydwZWJibGVzJ11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5kcm9wV2hpbGUodXNlcnMsIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCcsICdwZWJibGVzJ11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmRyb3BXaGlsZSh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsncGViYmxlcyddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmRyb3BXaGlsZSh1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5JywgJ2ZyZWQnLCAncGViYmxlcyddXG4gICAgICovXG4gICAgZnVuY3Rpb24gZHJvcFdoaWxlKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VXaGlsZShhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgdHJ1ZSlcbiAgICAgICAgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGaWxscyBlbGVtZW50cyBvZiBgYXJyYXlgIHdpdGggYHZhbHVlYCBmcm9tIGBzdGFydGAgdXAgdG8sIGJ1dCBub3RcbiAgICAgKiBpbmNsdWRpbmcsIGBlbmRgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjIuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmaWxsLlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGZpbGwgYGFycmF5YCB3aXRoLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9MF0gVGhlIHN0YXJ0IHBvc2l0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZW5kPWFycmF5Lmxlbmd0aF0gVGhlIGVuZCBwb3NpdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzEsIDIsIDNdO1xuICAgICAqXG4gICAgICogXy5maWxsKGFycmF5LCAnYScpO1xuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYScsICdhJ11cbiAgICAgKlxuICAgICAqIF8uZmlsbChBcnJheSgzKSwgMik7XG4gICAgICogLy8gPT4gWzIsIDIsIDJdXG4gICAgICpcbiAgICAgKiBfLmZpbGwoWzQsIDYsIDgsIDEwXSwgJyonLCAxLCAzKTtcbiAgICAgKiAvLyA9PiBbNCwgJyonLCAnKicsIDEwXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZpbGwoYXJyYXksIHZhbHVlLCBzdGFydCwgZW5kKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBpZiAoc3RhcnQgJiYgdHlwZW9mIHN0YXJ0ICE9ICdudW1iZXInICYmIGlzSXRlcmF0ZWVDYWxsKGFycmF5LCB2YWx1ZSwgc3RhcnQpKSB7XG4gICAgICAgIHN0YXJ0ID0gMDtcbiAgICAgICAgZW5kID0gbGVuZ3RoO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VGaWxsKGFycmF5LCB2YWx1ZSwgc3RhcnQsIGVuZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5maW5kYCBleGNlcHQgdGhhdCBpdCByZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3RcbiAgICAgKiBlbGVtZW50IGBwcmVkaWNhdGVgIHJldHVybnMgdHJ1dGh5IGZvciBpbnN0ZWFkIG9mIHRoZSBlbGVtZW50IGl0c2VsZi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAxLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD0wXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZvdW5kIGVsZW1lbnQsIGVsc2UgYC0xYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiB0cnVlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5maW5kSW5kZXgodXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8udXNlciA9PSAnYmFybmV5JzsgfSk7XG4gICAgICogLy8gPT4gMFxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRJbmRleCh1c2VycywgeyAndXNlcic6ICdmcmVkJywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IDFcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRJbmRleCh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IDBcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZEluZGV4KHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gMlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZpbmRJbmRleChhcnJheSwgcHJlZGljYXRlLCBmcm9tSW5kZXgpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IGZyb21JbmRleCA9PSBudWxsID8gMCA6IHRvSW50ZWdlcihmcm9tSW5kZXgpO1xuICAgICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgICBpbmRleCA9IG5hdGl2ZU1heChsZW5ndGggKyBpbmRleCwgMCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZUZpbmRJbmRleChhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgaW5kZXgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmluZEluZGV4YCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIGVsZW1lbnRzXG4gICAgICogb2YgYGNvbGxlY3Rpb25gIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD1hcnJheS5sZW5ndGgtMV0gVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmb3VuZCBlbGVtZW50LCBlbHNlIGAtMWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiBmYWxzZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZmluZExhc3RJbmRleCh1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gby51c2VyID09ICdwZWJibGVzJzsgfSk7XG4gICAgICogLy8gPT4gMlxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRMYXN0SW5kZXgodXNlcnMsIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IHRydWUgfSk7XG4gICAgICogLy8gPT4gMFxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZExhc3RJbmRleCh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IDJcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZExhc3RJbmRleCh1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IDBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaW5kTGFzdEluZGV4KGFycmF5LCBwcmVkaWNhdGUsIGZyb21JbmRleCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gbGVuZ3RoIC0gMTtcbiAgICAgIGlmIChmcm9tSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpbmRleCA9IHRvSW50ZWdlcihmcm9tSW5kZXgpO1xuICAgICAgICBpbmRleCA9IGZyb21JbmRleCA8IDBcbiAgICAgICAgICA/IG5hdGl2ZU1heChsZW5ndGggKyBpbmRleCwgMClcbiAgICAgICAgICA6IG5hdGl2ZU1pbihpbmRleCwgbGVuZ3RoIC0gMSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZUZpbmRJbmRleChhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgaW5kZXgsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZsYXR0ZW5zIGBhcnJheWAgYSBzaW5nbGUgbGV2ZWwgZGVlcC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmbGF0dGVuLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZsYXR0ZW5lZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5mbGF0dGVuKFsxLCBbMiwgWzMsIFs0XV0sIDVdXSk7XG4gICAgICogLy8gPT4gWzEsIDIsIFszLCBbNF1dLCA1XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZsYXR0ZW4oYXJyYXkpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIHJldHVybiBsZW5ndGggPyBiYXNlRmxhdHRlbihhcnJheSwgMSkgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWN1cnNpdmVseSBmbGF0dGVucyBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGZsYXR0ZW4uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmZsYXR0ZW5EZWVwKFsxLCBbMiwgWzMsIFs0XV0sIDVdXSk7XG4gICAgICogLy8gPT4gWzEsIDIsIDMsIDQsIDVdXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmxhdHRlbkRlZXAoYXJyYXkpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIHJldHVybiBsZW5ndGggPyBiYXNlRmxhdHRlbihhcnJheSwgSU5GSU5JVFkpIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVjdXJzaXZlbHkgZmxhdHRlbiBgYXJyYXlgIHVwIHRvIGBkZXB0aGAgdGltZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC40LjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gZmxhdHRlbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2RlcHRoPTFdIFRoZSBtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsxLCBbMiwgWzMsIFs0XV0sIDVdXTtcbiAgICAgKlxuICAgICAqIF8uZmxhdHRlbkRlcHRoKGFycmF5LCAxKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgWzMsIFs0XV0sIDVdXG4gICAgICpcbiAgICAgKiBfLmZsYXR0ZW5EZXB0aChhcnJheSwgMik7XG4gICAgICogLy8gPT4gWzEsIDIsIDMsIFs0XSwgNV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmbGF0dGVuRGVwdGgoYXJyYXksIGRlcHRoKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBkZXB0aCA9IGRlcHRoID09PSB1bmRlZmluZWQgPyAxIDogdG9JbnRlZ2VyKGRlcHRoKTtcbiAgICAgIHJldHVybiBiYXNlRmxhdHRlbihhcnJheSwgZGVwdGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBpbnZlcnNlIG9mIGBfLnRvUGFpcnNgOyB0aGlzIG1ldGhvZCByZXR1cm5zIGFuIG9iamVjdCBjb21wb3NlZFxuICAgICAqIGZyb20ga2V5LXZhbHVlIGBwYWlyc2AuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwYWlycyBUaGUga2V5LXZhbHVlIHBhaXJzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZnJvbVBhaXJzKFtbJ2EnLCAxXSwgWydiJywgMl1dKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogMSwgJ2InOiAyIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmcm9tUGFpcnMocGFpcnMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHBhaXJzID09IG51bGwgPyAwIDogcGFpcnMubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IHt9O1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgcGFpciA9IHBhaXJzW2luZGV4XTtcbiAgICAgICAgcmVzdWx0W3BhaXJbMF1dID0gcGFpclsxXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgZmlyc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGFsaWFzIGZpcnN0XG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmaXJzdCBlbGVtZW50IG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaGVhZChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IDFcbiAgICAgKlxuICAgICAqIF8uaGVhZChbXSk7XG4gICAgICogLy8gPT4gdW5kZWZpbmVkXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGVhZChhcnJheSkge1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpID8gYXJyYXlbMF0gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgaW5kZXggYXQgd2hpY2ggdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYHZhbHVlYCBpcyBmb3VuZCBpbiBgYXJyYXlgXG4gICAgICogdXNpbmcgW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAgICAgKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuIElmIGBmcm9tSW5kZXhgIGlzIG5lZ2F0aXZlLCBpdCdzIHVzZWQgYXMgdGhlXG4gICAgICogb2Zmc2V0IGZyb20gdGhlIGVuZCBvZiBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD0wXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pbmRleE9mKFsxLCAyLCAxLCAyXSwgMik7XG4gICAgICogLy8gPT4gMVxuICAgICAqXG4gICAgICogLy8gU2VhcmNoIGZyb20gdGhlIGBmcm9tSW5kZXhgLlxuICAgICAqIF8uaW5kZXhPZihbMSwgMiwgMSwgMl0sIDIsIDIpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSBmcm9tSW5kZXggPT0gbnVsbCA/IDAgOiB0b0ludGVnZXIoZnJvbUluZGV4KTtcbiAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgaW5kZXggPSBuYXRpdmVNYXgobGVuZ3RoICsgaW5kZXgsIDApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VJbmRleE9mKGFycmF5LCB2YWx1ZSwgaW5kZXgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIGJ1dCB0aGUgbGFzdCBlbGVtZW50IG9mIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmluaXRpYWwoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbml0aWFsKGFycmF5KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICByZXR1cm4gbGVuZ3RoID8gYmFzZVNsaWNlKGFycmF5LCAwLCAtMSkgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHVuaXF1ZSB2YWx1ZXMgdGhhdCBhcmUgaW5jbHVkZWQgaW4gYWxsIGdpdmVuIGFycmF5c1xuICAgICAqIHVzaW5nIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gICAgICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLiBUaGUgb3JkZXIgYW5kIHJlZmVyZW5jZXMgb2YgcmVzdWx0IHZhbHVlcyBhcmVcbiAgICAgKiBkZXRlcm1pbmVkIGJ5IHRoZSBmaXJzdCBhcnJheS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBpbnRlcnNlY3RpbmcgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmludGVyc2VjdGlvbihbMiwgMV0sIFsyLCAzXSk7XG4gICAgICogLy8gPT4gWzJdXG4gICAgICovXG4gICAgdmFyIGludGVyc2VjdGlvbiA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgdmFyIG1hcHBlZCA9IGFycmF5TWFwKGFycmF5cywgY2FzdEFycmF5TGlrZU9iamVjdCk7XG4gICAgICByZXR1cm4gKG1hcHBlZC5sZW5ndGggJiYgbWFwcGVkWzBdID09PSBhcnJheXNbMF0pXG4gICAgICAgID8gYmFzZUludGVyc2VjdGlvbihtYXBwZWQpXG4gICAgICAgIDogW107XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmludGVyc2VjdGlvbmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgXG4gICAgICogd2hpY2ggaXMgaW52b2tlZCBmb3IgZWFjaCBlbGVtZW50IG9mIGVhY2ggYGFycmF5c2AgdG8gZ2VuZXJhdGUgdGhlIGNyaXRlcmlvblxuICAgICAqIGJ5IHdoaWNoIHRoZXkncmUgY29tcGFyZWQuIFRoZSBvcmRlciBhbmQgcmVmZXJlbmNlcyBvZiByZXN1bHQgdmFsdWVzIGFyZVxuICAgICAqIGRldGVybWluZWQgYnkgdGhlIGZpcnN0IGFycmF5LiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDpcbiAgICAgKiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBpbnRlcnNlY3RpbmcgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmludGVyc2VjdGlvbkJ5KFsyLjEsIDEuMl0sIFsyLjMsIDMuNF0sIE1hdGguZmxvb3IpO1xuICAgICAqIC8vID0+IFsyLjFdXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmludGVyc2VjdGlvbkJ5KFt7ICd4JzogMSB9XSwgW3sgJ3gnOiAyIH0sIHsgJ3gnOiAxIH1dLCAneCcpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMSB9XVxuICAgICAqL1xuICAgIHZhciBpbnRlcnNlY3Rpb25CeSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgdmFyIGl0ZXJhdGVlID0gbGFzdChhcnJheXMpLFxuICAgICAgICAgIG1hcHBlZCA9IGFycmF5TWFwKGFycmF5cywgY2FzdEFycmF5TGlrZU9iamVjdCk7XG5cbiAgICAgIGlmIChpdGVyYXRlZSA9PT0gbGFzdChtYXBwZWQpKSB7XG4gICAgICAgIGl0ZXJhdGVlID0gdW5kZWZpbmVkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWFwcGVkLnBvcCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChtYXBwZWQubGVuZ3RoICYmIG1hcHBlZFswXSA9PT0gYXJyYXlzWzBdKVxuICAgICAgICA/IGJhc2VJbnRlcnNlY3Rpb24obWFwcGVkLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMikpXG4gICAgICAgIDogW107XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmludGVyc2VjdGlvbmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY29tcGFyYXRvcmBcbiAgICAgKiB3aGljaCBpcyBpbnZva2VkIHRvIGNvbXBhcmUgZWxlbWVudHMgb2YgYGFycmF5c2AuIFRoZSBvcmRlciBhbmQgcmVmZXJlbmNlc1xuICAgICAqIG9mIHJlc3VsdCB2YWx1ZXMgYXJlIGRldGVybWluZWQgYnkgdGhlIGZpcnN0IGFycmF5LiBUaGUgY29tcGFyYXRvciBpc1xuICAgICAqIGludm9rZWQgd2l0aCB0d28gYXJndW1lbnRzOiAoYXJyVmFsLCBvdGhWYWwpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGludGVyc2VjdGluZyB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDIsICd5JzogMSB9XTtcbiAgICAgKiB2YXIgb3RoZXJzID0gW3sgJ3gnOiAxLCAneSc6IDEgfSwgeyAneCc6IDEsICd5JzogMiB9XTtcbiAgICAgKlxuICAgICAqIF8uaW50ZXJzZWN0aW9uV2l0aChvYmplY3RzLCBvdGhlcnMsIF8uaXNFcXVhbCk7XG4gICAgICogLy8gPT4gW3sgJ3gnOiAxLCAneSc6IDIgfV1cbiAgICAgKi9cbiAgICB2YXIgaW50ZXJzZWN0aW9uV2l0aCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgdmFyIGNvbXBhcmF0b3IgPSBsYXN0KGFycmF5cyksXG4gICAgICAgICAgbWFwcGVkID0gYXJyYXlNYXAoYXJyYXlzLCBjYXN0QXJyYXlMaWtlT2JqZWN0KTtcblxuICAgICAgY29tcGFyYXRvciA9IHR5cGVvZiBjb21wYXJhdG9yID09ICdmdW5jdGlvbicgPyBjb21wYXJhdG9yIDogdW5kZWZpbmVkO1xuICAgICAgaWYgKGNvbXBhcmF0b3IpIHtcbiAgICAgICAgbWFwcGVkLnBvcCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChtYXBwZWQubGVuZ3RoICYmIG1hcHBlZFswXSA9PT0gYXJyYXlzWzBdKVxuICAgICAgICA/IGJhc2VJbnRlcnNlY3Rpb24obWFwcGVkLCB1bmRlZmluZWQsIGNvbXBhcmF0b3IpXG4gICAgICAgIDogW107XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBhbGwgZWxlbWVudHMgaW4gYGFycmF5YCBpbnRvIGEgc3RyaW5nIHNlcGFyYXRlZCBieSBgc2VwYXJhdG9yYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBjb252ZXJ0LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc2VwYXJhdG9yPScsJ10gVGhlIGVsZW1lbnQgc2VwYXJhdG9yLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGpvaW5lZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uam9pbihbJ2EnLCAnYicsICdjJ10sICd+Jyk7XG4gICAgICogLy8gPT4gJ2F+Yn5jJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGpvaW4oYXJyYXksIHNlcGFyYXRvcikge1xuICAgICAgcmV0dXJuIGFycmF5ID09IG51bGwgPyAnJyA6IG5hdGl2ZUpvaW4uY2FsbChhcnJheSwgc2VwYXJhdG9yKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbGFzdCBlbGVtZW50IG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ubGFzdChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IDNcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBsYXN0KGFycmF5KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICByZXR1cm4gbGVuZ3RoID8gYXJyYXlbbGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pbmRleE9mYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mXG4gICAgICogYGFycmF5YCBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZnJvbUluZGV4PWFycmF5Lmxlbmd0aC0xXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5sYXN0SW5kZXhPZihbMSwgMiwgMSwgMl0sIDIpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIC8vIFNlYXJjaCBmcm9tIHRoZSBgZnJvbUluZGV4YC5cbiAgICAgKiBfLmxhc3RJbmRleE9mKFsxLCAyLCAxLCAyXSwgMiwgMik7XG4gICAgICogLy8gPT4gMVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxhc3RJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSBsZW5ndGg7XG4gICAgICBpZiAoZnJvbUluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaW5kZXggPSB0b0ludGVnZXIoZnJvbUluZGV4KTtcbiAgICAgICAgaW5kZXggPSBpbmRleCA8IDAgPyBuYXRpdmVNYXgobGVuZ3RoICsgaW5kZXgsIDApIDogbmF0aXZlTWluKGluZGV4LCBsZW5ndGggLSAxKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWVcbiAgICAgICAgPyBzdHJpY3RMYXN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGluZGV4KVxuICAgICAgICA6IGJhc2VGaW5kSW5kZXgoYXJyYXksIGJhc2VJc05hTiwgaW5kZXgsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGVsZW1lbnQgYXQgaW5kZXggYG5gIG9mIGBhcnJheWAuIElmIGBuYCBpcyBuZWdhdGl2ZSwgdGhlIG50aFxuICAgICAqIGVsZW1lbnQgZnJvbSB0aGUgZW5kIGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMTEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249MF0gVGhlIGluZGV4IG9mIHRoZSBlbGVtZW50IHRvIHJldHVybi5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbnRoIGVsZW1lbnQgb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWydhJywgJ2InLCAnYycsICdkJ107XG4gICAgICpcbiAgICAgKiBfLm50aChhcnJheSwgMSk7XG4gICAgICogLy8gPT4gJ2InXG4gICAgICpcbiAgICAgKiBfLm50aChhcnJheSwgLTIpO1xuICAgICAqIC8vID0+ICdjJztcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBudGgoYXJyYXksIG4pIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSA/IGJhc2VOdGgoYXJyYXksIHRvSW50ZWdlcihuKSkgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhbGwgZ2l2ZW4gdmFsdWVzIGZyb20gYGFycmF5YCB1c2luZ1xuICAgICAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gICAgICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy53aXRob3V0YCwgdGhpcyBtZXRob2QgbXV0YXRlcyBgYXJyYXlgLiBVc2UgYF8ucmVtb3ZlYFxuICAgICAqIHRvIHJlbW92ZSBlbGVtZW50cyBmcm9tIGFuIGFycmF5IGJ5IHByZWRpY2F0ZS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbdmFsdWVzXSBUaGUgdmFsdWVzIHRvIHJlbW92ZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWydhJywgJ2InLCAnYycsICdhJywgJ2InLCAnYyddO1xuICAgICAqXG4gICAgICogXy5wdWxsKGFycmF5LCAnYScsICdjJyk7XG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsnYicsICdiJ11cbiAgICAgKi9cbiAgICB2YXIgcHVsbCA9IGJhc2VSZXN0KHB1bGxBbGwpO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5wdWxsYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGFuIGFycmF5IG9mIHZhbHVlcyB0byByZW1vdmUuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLmRpZmZlcmVuY2VgLCB0aGlzIG1ldGhvZCBtdXRhdGVzIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgdmFsdWVzIHRvIHJlbW92ZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWydhJywgJ2InLCAnYycsICdhJywgJ2InLCAnYyddO1xuICAgICAqXG4gICAgICogXy5wdWxsQWxsKGFycmF5LCBbJ2EnLCAnYyddKTtcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XG4gICAgICogLy8gPT4gWydiJywgJ2InXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHB1bGxBbGwoYXJyYXksIHZhbHVlcykge1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGggJiYgdmFsdWVzICYmIHZhbHVlcy5sZW5ndGgpXG4gICAgICAgID8gYmFzZVB1bGxBbGwoYXJyYXksIHZhbHVlcylcbiAgICAgICAgOiBhcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnB1bGxBbGxgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBvZiBgYXJyYXlgIGFuZCBgdmFsdWVzYCB0byBnZW5lcmF0ZSB0aGUgY3JpdGVyaW9uXG4gICAgICogYnkgd2hpY2ggdGhleSdyZSBjb21wYXJlZC4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLmRpZmZlcmVuY2VCeWAsIHRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSB2YWx1ZXMgdG8gcmVtb3ZlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gW3sgJ3gnOiAxIH0sIHsgJ3gnOiAyIH0sIHsgJ3gnOiAzIH0sIHsgJ3gnOiAxIH1dO1xuICAgICAqXG4gICAgICogXy5wdWxsQWxsQnkoYXJyYXksIFt7ICd4JzogMSB9LCB7ICd4JzogMyB9XSwgJ3gnKTtcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XG4gICAgICogLy8gPT4gW3sgJ3gnOiAyIH1dXG4gICAgICovXG4gICAgZnVuY3Rpb24gcHVsbEFsbEJ5KGFycmF5LCB2YWx1ZXMsIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCAmJiB2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aClcbiAgICAgICAgPyBiYXNlUHVsbEFsbChhcnJheSwgdmFsdWVzLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMikpXG4gICAgICAgIDogYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5wdWxsQWxsYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjb21wYXJhdG9yYCB3aGljaFxuICAgICAqIGlzIGludm9rZWQgdG8gY29tcGFyZSBlbGVtZW50cyBvZiBgYXJyYXlgIHRvIGB2YWx1ZXNgLiBUaGUgY29tcGFyYXRvciBpc1xuICAgICAqIGludm9rZWQgd2l0aCB0d28gYXJndW1lbnRzOiAoYXJyVmFsLCBvdGhWYWwpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy5kaWZmZXJlbmNlV2l0aGAsIHRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjYuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSB2YWx1ZXMgdG8gcmVtb3ZlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbeyAneCc6IDEsICd5JzogMiB9LCB7ICd4JzogMywgJ3knOiA0IH0sIHsgJ3gnOiA1LCAneSc6IDYgfV07XG4gICAgICpcbiAgICAgKiBfLnB1bGxBbGxXaXRoKGFycmF5LCBbeyAneCc6IDMsICd5JzogNCB9XSwgXy5pc0VxdWFsKTtcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XG4gICAgICogLy8gPT4gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDUsICd5JzogNiB9XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHB1bGxBbGxXaXRoKGFycmF5LCB2YWx1ZXMsIGNvbXBhcmF0b3IpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoICYmIHZhbHVlcyAmJiB2YWx1ZXMubGVuZ3RoKVxuICAgICAgICA/IGJhc2VQdWxsQWxsKGFycmF5LCB2YWx1ZXMsIHVuZGVmaW5lZCwgY29tcGFyYXRvcilcbiAgICAgICAgOiBhcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGVsZW1lbnRzIGZyb20gYGFycmF5YCBjb3JyZXNwb25kaW5nIHRvIGBpbmRleGVzYCBhbmQgcmV0dXJucyBhblxuICAgICAqIGFycmF5IG9mIHJlbW92ZWQgZWxlbWVudHMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLmF0YCwgdGhpcyBtZXRob2QgbXV0YXRlcyBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0gey4uLihudW1iZXJ8bnVtYmVyW10pfSBbaW5kZXhlc10gVGhlIGluZGV4ZXMgb2YgZWxlbWVudHMgdG8gcmVtb3ZlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIHJlbW92ZWQgZWxlbWVudHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsnYScsICdiJywgJ2MnLCAnZCddO1xuICAgICAqIHZhciBwdWxsZWQgPSBfLnB1bGxBdChhcnJheSwgWzEsIDNdKTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYyddXG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhwdWxsZWQpO1xuICAgICAqIC8vID0+IFsnYicsICdkJ11cbiAgICAgKi9cbiAgICB2YXIgcHVsbEF0ID0gZmxhdFJlc3QoZnVuY3Rpb24oYXJyYXksIGluZGV4ZXMpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBiYXNlQXQoYXJyYXksIGluZGV4ZXMpO1xuXG4gICAgICBiYXNlUHVsbEF0KGFycmF5LCBhcnJheU1hcChpbmRleGVzLCBmdW5jdGlvbihpbmRleCkge1xuICAgICAgICByZXR1cm4gaXNJbmRleChpbmRleCwgbGVuZ3RoKSA/ICtpbmRleCA6IGluZGV4O1xuICAgICAgfSkuc29ydChjb21wYXJlQXNjZW5kaW5nKSk7XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGFsbCBlbGVtZW50cyBmcm9tIGBhcnJheWAgdGhhdCBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3JcbiAgICAgKiBhbmQgcmV0dXJucyBhbiBhcnJheSBvZiB0aGUgcmVtb3ZlZCBlbGVtZW50cy4gVGhlIHByZWRpY2F0ZSBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXgsIGFycmF5KS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBVbmxpa2UgYF8uZmlsdGVyYCwgdGhpcyBtZXRob2QgbXV0YXRlcyBgYXJyYXlgLiBVc2UgYF8ucHVsbGBcbiAgICAgKiB0byBwdWxsIGVsZW1lbnRzIGZyb20gYW4gYXJyYXkgYnkgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiByZW1vdmVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgMiwgMywgNF07XG4gICAgICogdmFyIGV2ZW5zID0gXy5yZW1vdmUoYXJyYXksIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICUgMiA9PSAwO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsxLCAzXVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2coZXZlbnMpO1xuICAgICAqIC8vID0+IFsyLCA0XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlbW92ZShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgICBpZiAoIShhcnJheSAmJiBhcnJheS5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBpbmRleGVzID0gW10sXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgICBwcmVkaWNhdGUgPSBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICAgIGluZGV4ZXMucHVzaChpbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJhc2VQdWxsQXQoYXJyYXksIGluZGV4ZXMpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXZlcnNlcyBgYXJyYXlgIHNvIHRoYXQgdGhlIGZpcnN0IGVsZW1lbnQgYmVjb21lcyB0aGUgbGFzdCwgdGhlIHNlY29uZFxuICAgICAqIGVsZW1lbnQgYmVjb21lcyB0aGUgc2Vjb25kIHRvIGxhc3QsIGFuZCBzbyBvbi5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBhcnJheWAgYW5kIGlzIGJhc2VkIG9uXG4gICAgICogW2BBcnJheSNyZXZlcnNlYF0oaHR0cHM6Ly9tZG4uaW8vQXJyYXkvcmV2ZXJzZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgMiwgM107XG4gICAgICpcbiAgICAgKiBfLnJldmVyc2UoYXJyYXkpO1xuICAgICAqIC8vID0+IFszLCAyLCAxXVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFszLCAyLCAxXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJldmVyc2UoYXJyYXkpIHtcbiAgICAgIHJldHVybiBhcnJheSA9PSBudWxsID8gYXJyYXkgOiBuYXRpdmVSZXZlcnNlLmNhbGwoYXJyYXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIGZyb20gYHN0YXJ0YCB1cCB0bywgYnV0IG5vdCBpbmNsdWRpbmcsIGBlbmRgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIHVzZWQgaW5zdGVhZCBvZlxuICAgICAqIFtgQXJyYXkjc2xpY2VgXShodHRwczovL21kbi5pby9BcnJheS9zbGljZSkgdG8gZW5zdXJlIGRlbnNlIGFycmF5cyBhcmVcbiAgICAgKiByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzbGljZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBwb3NpdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2VuZD1hcnJheS5sZW5ndGhdIFRoZSBlbmQgcG9zaXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNsaWNlKGFycmF5LCBzdGFydCwgZW5kKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBpZiAoZW5kICYmIHR5cGVvZiBlbmQgIT0gJ251bWJlcicgJiYgaXNJdGVyYXRlZUNhbGwoYXJyYXksIHN0YXJ0LCBlbmQpKSB7XG4gICAgICAgIHN0YXJ0ID0gMDtcbiAgICAgICAgZW5kID0gbGVuZ3RoO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHN0YXJ0ID0gc3RhcnQgPT0gbnVsbCA/IDAgOiB0b0ludGVnZXIoc3RhcnQpO1xuICAgICAgICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZCA/IGxlbmd0aCA6IHRvSW50ZWdlcihlbmQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgc3RhcnQsIGVuZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXNlcyBhIGJpbmFyeSBzZWFyY2ggdG8gZGV0ZXJtaW5lIHRoZSBsb3dlc3QgaW5kZXggYXQgd2hpY2ggYHZhbHVlYFxuICAgICAqIHNob3VsZCBiZSBpbnNlcnRlZCBpbnRvIGBhcnJheWAgaW4gb3JkZXIgdG8gbWFpbnRhaW4gaXRzIHNvcnQgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgc29ydGVkIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZXZhbHVhdGUuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWRcbiAgICAgKiAgaW50byBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNvcnRlZEluZGV4KFszMCwgNTBdLCA0MCk7XG4gICAgICogLy8gPT4gMVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvcnRlZEluZGV4KGFycmF5LCB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGJhc2VTb3J0ZWRJbmRleChhcnJheSwgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc29ydGVkSW5kZXhgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYFxuICAgICAqIHdoaWNoIGlzIGludm9rZWQgZm9yIGB2YWx1ZWAgYW5kIGVhY2ggZWxlbWVudCBvZiBgYXJyYXlgIHRvIGNvbXB1dGUgdGhlaXJcbiAgICAgKiBzb3J0IHJhbmtpbmcuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIHNvcnRlZCBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGV2YWx1YXRlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZCBiZSBpbnNlcnRlZFxuICAgICAqICBpbnRvIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ3gnOiA0IH0sIHsgJ3gnOiA1IH1dO1xuICAgICAqXG4gICAgICogXy5zb3J0ZWRJbmRleEJ5KG9iamVjdHMsIHsgJ3gnOiA0IH0sIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8ueDsgfSk7XG4gICAgICogLy8gPT4gMFxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5zb3J0ZWRJbmRleEJ5KG9iamVjdHMsIHsgJ3gnOiA0IH0sICd4Jyk7XG4gICAgICogLy8gPT4gMFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvcnRlZEluZGV4QnkoYXJyYXksIHZhbHVlLCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIGJhc2VTb3J0ZWRJbmRleEJ5KGFycmF5LCB2YWx1ZSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmluZGV4T2ZgIGV4Y2VwdCB0aGF0IGl0IHBlcmZvcm1zIGEgYmluYXJ5XG4gICAgICogc2VhcmNoIG9uIGEgc29ydGVkIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc29ydGVkSW5kZXhPZihbNCwgNSwgNSwgNSwgNl0sIDUpO1xuICAgICAqIC8vID0+IDFcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzb3J0ZWRJbmRleE9mKGFycmF5LCB2YWx1ZSkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKGxlbmd0aCkge1xuICAgICAgICB2YXIgaW5kZXggPSBiYXNlU29ydGVkSW5kZXgoYXJyYXksIHZhbHVlKTtcbiAgICAgICAgaWYgKGluZGV4IDwgbGVuZ3RoICYmIGVxKGFycmF5W2luZGV4XSwgdmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5zb3J0ZWRJbmRleGAgZXhjZXB0IHRoYXQgaXQgcmV0dXJucyB0aGUgaGlnaGVzdFxuICAgICAqIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkIGJlIGluc2VydGVkIGludG8gYGFycmF5YCBpbiBvcmRlciB0b1xuICAgICAqIG1haW50YWluIGl0cyBzb3J0IG9yZGVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIHNvcnRlZCBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGV2YWx1YXRlLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkIGJlIGluc2VydGVkXG4gICAgICogIGludG8gYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zb3J0ZWRMYXN0SW5kZXgoWzQsIDUsIDUsIDUsIDZdLCA1KTtcbiAgICAgKiAvLyA9PiA0XG4gICAgICovXG4gICAgZnVuY3Rpb24gc29ydGVkTGFzdEluZGV4KGFycmF5LCB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGJhc2VTb3J0ZWRJbmRleChhcnJheSwgdmFsdWUsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc29ydGVkTGFzdEluZGV4YCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWBcbiAgICAgKiB3aGljaCBpcyBpbnZva2VkIGZvciBgdmFsdWVgIGFuZCBlYWNoIGVsZW1lbnQgb2YgYGFycmF5YCB0byBjb21wdXRlIHRoZWlyXG4gICAgICogc29ydCByYW5raW5nLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBzb3J0ZWQgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBldmFsdWF0ZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWRcbiAgICAgKiAgaW50byBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICd4JzogNCB9LCB7ICd4JzogNSB9XTtcbiAgICAgKlxuICAgICAqIF8uc29ydGVkTGFzdEluZGV4Qnkob2JqZWN0cywgeyAneCc6IDQgfSwgZnVuY3Rpb24obykgeyByZXR1cm4gby54OyB9KTtcbiAgICAgKiAvLyA9PiAxXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnNvcnRlZExhc3RJbmRleEJ5KG9iamVjdHMsIHsgJ3gnOiA0IH0sICd4Jyk7XG4gICAgICogLy8gPT4gMVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvcnRlZExhc3RJbmRleEJ5KGFycmF5LCB2YWx1ZSwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBiYXNlU29ydGVkSW5kZXhCeShhcnJheSwgdmFsdWUsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5sYXN0SW5kZXhPZmAgZXhjZXB0IHRoYXQgaXQgcGVyZm9ybXMgYSBiaW5hcnlcbiAgICAgKiBzZWFyY2ggb24gYSBzb3J0ZWQgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zb3J0ZWRMYXN0SW5kZXhPZihbNCwgNSwgNSwgNSwgNl0sIDUpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzb3J0ZWRMYXN0SW5kZXhPZihhcnJheSwgdmFsdWUpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGgpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gYmFzZVNvcnRlZEluZGV4KGFycmF5LCB2YWx1ZSwgdHJ1ZSkgLSAxO1xuICAgICAgICBpZiAoZXEoYXJyYXlbaW5kZXhdLCB2YWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnVuaXFgIGV4Y2VwdCB0aGF0IGl0J3MgZGVzaWduZWQgYW5kIG9wdGltaXplZFxuICAgICAqIGZvciBzb3J0ZWQgYXJyYXlzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZHVwbGljYXRlIGZyZWUgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc29ydGVkVW5pcShbMSwgMSwgMl0pO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvcnRlZFVuaXEoYXJyYXkpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VTb3J0ZWRVbmlxKGFycmF5KVxuICAgICAgICA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8udW5pcUJ5YCBleGNlcHQgdGhhdCBpdCdzIGRlc2lnbmVkIGFuZCBvcHRpbWl6ZWRcbiAgICAgKiBmb3Igc29ydGVkIGFycmF5cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZHVwbGljYXRlIGZyZWUgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc29ydGVkVW5pcUJ5KFsxLjEsIDEuMiwgMi4zLCAyLjRdLCBNYXRoLmZsb29yKTtcbiAgICAgKiAvLyA9PiBbMS4xLCAyLjNdXG4gICAgICovXG4gICAgZnVuY3Rpb24gc29ydGVkVW5pcUJ5KGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpXG4gICAgICAgID8gYmFzZVNvcnRlZFVuaXEoYXJyYXksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSlcbiAgICAgICAgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBidXQgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udGFpbChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IFsyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRhaWwoYXJyYXkpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIHJldHVybiBsZW5ndGggPyBiYXNlU2xpY2UoYXJyYXksIDEsIGxlbmd0aCkgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCB3aXRoIGBuYCBlbGVtZW50cyB0YWtlbiBmcm9tIHRoZSBiZWdpbm5pbmcuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuPTFdIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gdGFrZS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50YWtlKFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gWzFdXG4gICAgICpcbiAgICAgKiBfLnRha2UoWzEsIDIsIDNdLCAyKTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKlxuICAgICAqIF8udGFrZShbMSwgMiwgM10sIDUpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogXy50YWtlKFsxLCAyLCAzXSwgMCk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0YWtlKGFycmF5LCBuLCBndWFyZCkge1xuICAgICAgaWYgKCEoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBuID0gKGd1YXJkIHx8IG4gPT09IHVuZGVmaW5lZCkgPyAxIDogdG9JbnRlZ2VyKG4pO1xuICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgMCwgbiA8IDAgPyAwIDogbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgd2l0aCBgbmAgZWxlbWVudHMgdGFrZW4gZnJvbSB0aGUgZW5kLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0xXSBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIHRha2UuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udGFrZVJpZ2h0KFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gWzNdXG4gICAgICpcbiAgICAgKiBfLnRha2VSaWdodChbMSwgMiwgM10sIDIpO1xuICAgICAqIC8vID0+IFsyLCAzXVxuICAgICAqXG4gICAgICogXy50YWtlUmlnaHQoWzEsIDIsIDNdLCA1KTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIF8udGFrZVJpZ2h0KFsxLCAyLCAzXSwgMCk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0YWtlUmlnaHQoYXJyYXksIG4sIGd1YXJkKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBuID0gKGd1YXJkIHx8IG4gPT09IHVuZGVmaW5lZCkgPyAxIDogdG9JbnRlZ2VyKG4pO1xuICAgICAgbiA9IGxlbmd0aCAtIG47XG4gICAgICByZXR1cm4gYmFzZVNsaWNlKGFycmF5LCBuIDwgMCA/IDAgOiBuLCBsZW5ndGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIHdpdGggZWxlbWVudHMgdGFrZW4gZnJvbSB0aGUgZW5kLiBFbGVtZW50cyBhcmVcbiAgICAgKiB0YWtlbiB1bnRpbCBgcHJlZGljYXRlYCByZXR1cm5zIGZhbHNleS4gVGhlIHByZWRpY2F0ZSBpcyBpbnZva2VkIHdpdGhcbiAgICAgKiB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXgsIGFycmF5KS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLnRha2VSaWdodFdoaWxlKHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiAhby5hY3RpdmU7IH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCcsICdwZWJibGVzJ11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy50YWtlUmlnaHRXaGlsZSh1c2VycywgeyAndXNlcic6ICdwZWJibGVzJywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsncGViYmxlcyddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy50YWtlUmlnaHRXaGlsZSh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCcsICdwZWJibGVzJ11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8udGFrZVJpZ2h0V2hpbGUodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiBbXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRha2VSaWdodFdoaWxlKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VXaGlsZShhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgZmFsc2UsIHRydWUpXG4gICAgICAgIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgd2l0aCBlbGVtZW50cyB0YWtlbiBmcm9tIHRoZSBiZWdpbm5pbmcuIEVsZW1lbnRzXG4gICAgICogYXJlIHRha2VuIHVudGlsIGBwcmVkaWNhdGVgIHJldHVybnMgZmFsc2V5LiBUaGUgcHJlZGljYXRlIGlzIGludm9rZWQgd2l0aFxuICAgICAqIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleCwgYXJyYXkpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogdHJ1ZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8udGFrZVdoaWxlKHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiAhby5hY3RpdmU7IH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5JywgJ2ZyZWQnXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnRha2VXaGlsZSh1c2VycywgeyAndXNlcic6ICdiYXJuZXknLCAnYWN0aXZlJzogZmFsc2UgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydiYXJuZXknXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8udGFrZVdoaWxlKHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydiYXJuZXknLCAnZnJlZCddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnRha2VXaGlsZSh1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IFtdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGFrZVdoaWxlKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VXaGlsZShhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSlcbiAgICAgICAgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHVuaXF1ZSB2YWx1ZXMsIGluIG9yZGVyLCBmcm9tIGFsbCBnaXZlbiBhcnJheXMgdXNpbmdcbiAgICAgKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjb21iaW5lZCB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udW5pb24oWzJdLCBbMSwgMl0pO1xuICAgICAqIC8vID0+IFsyLCAxXVxuICAgICAqL1xuICAgIHZhciB1bmlvbiA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgcmV0dXJuIGJhc2VVbmlxKGJhc2VGbGF0dGVuKGFycmF5cywgMSwgaXNBcnJheUxpa2VPYmplY3QsIHRydWUpKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8udW5pb25gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBvZiBlYWNoIGBhcnJheXNgIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb24gYnlcbiAgICAgKiB3aGljaCB1bmlxdWVuZXNzIGlzIGNvbXB1dGVkLiBSZXN1bHQgdmFsdWVzIGFyZSBjaG9zZW4gZnJvbSB0aGUgZmlyc3RcbiAgICAgKiBhcnJheSBpbiB3aGljaCB0aGUgdmFsdWUgb2NjdXJzLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDpcbiAgICAgKiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjb21iaW5lZCB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udW5pb25CeShbMi4xXSwgWzEuMiwgMi4zXSwgTWF0aC5mbG9vcik7XG4gICAgICogLy8gPT4gWzIuMSwgMS4yXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy51bmlvbkJ5KFt7ICd4JzogMSB9XSwgW3sgJ3gnOiAyIH0sIHsgJ3gnOiAxIH1dLCAneCcpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMSB9LCB7ICd4JzogMiB9XVxuICAgICAqL1xuICAgIHZhciB1bmlvbkJ5ID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XG4gICAgICB2YXIgaXRlcmF0ZWUgPSBsYXN0KGFycmF5cyk7XG4gICAgICBpZiAoaXNBcnJheUxpa2VPYmplY3QoaXRlcmF0ZWUpKSB7XG4gICAgICAgIGl0ZXJhdGVlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VVbmlxKGJhc2VGbGF0dGVuKGFycmF5cywgMSwgaXNBcnJheUxpa2VPYmplY3QsIHRydWUpLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMikpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy51bmlvbmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY29tcGFyYXRvcmAgd2hpY2hcbiAgICAgKiBpcyBpbnZva2VkIHRvIGNvbXBhcmUgZWxlbWVudHMgb2YgYGFycmF5c2AuIFJlc3VsdCB2YWx1ZXMgYXJlIGNob3NlbiBmcm9tXG4gICAgICogdGhlIGZpcnN0IGFycmF5IGluIHdoaWNoIHRoZSB2YWx1ZSBvY2N1cnMuIFRoZSBjb21wYXJhdG9yIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHR3byBhcmd1bWVudHM6IChhcnJWYWwsIG90aFZhbCkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbYXJyYXlzXSBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgY29tYmluZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICd4JzogMSwgJ3knOiAyIH0sIHsgJ3gnOiAyLCAneSc6IDEgfV07XG4gICAgICogdmFyIG90aGVycyA9IFt7ICd4JzogMSwgJ3knOiAxIH0sIHsgJ3gnOiAxLCAneSc6IDIgfV07XG4gICAgICpcbiAgICAgKiBfLnVuaW9uV2l0aChvYmplY3RzLCBvdGhlcnMsIF8uaXNFcXVhbCk7XG4gICAgICogLy8gPT4gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDIsICd5JzogMSB9LCB7ICd4JzogMSwgJ3knOiAxIH1dXG4gICAgICovXG4gICAgdmFyIHVuaW9uV2l0aCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgdmFyIGNvbXBhcmF0b3IgPSBsYXN0KGFycmF5cyk7XG4gICAgICBjb21wYXJhdG9yID0gdHlwZW9mIGNvbXBhcmF0b3IgPT0gJ2Z1bmN0aW9uJyA/IGNvbXBhcmF0b3IgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gYmFzZVVuaXEoYmFzZUZsYXR0ZW4oYXJyYXlzLCAxLCBpc0FycmF5TGlrZU9iamVjdCwgdHJ1ZSksIHVuZGVmaW5lZCwgY29tcGFyYXRvcik7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZHVwbGljYXRlLWZyZWUgdmVyc2lvbiBvZiBhbiBhcnJheSwgdXNpbmdcbiAgICAgKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucywgaW4gd2hpY2ggb25seSB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiBlYWNoIGVsZW1lbnRcbiAgICAgKiBpcyBrZXB0LiBUaGUgb3JkZXIgb2YgcmVzdWx0IHZhbHVlcyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBvcmRlciB0aGV5IG9jY3VyXG4gICAgICogaW4gdGhlIGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZHVwbGljYXRlIGZyZWUgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udW5pcShbMiwgMSwgMl0pO1xuICAgICAqIC8vID0+IFsyLCAxXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuaXEoYXJyYXkpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSA/IGJhc2VVbmlxKGFycmF5KSA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8udW5pcWAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgIHdoaWNoIGlzXG4gICAgICogaW52b2tlZCBmb3IgZWFjaCBlbGVtZW50IGluIGBhcnJheWAgdG8gZ2VuZXJhdGUgdGhlIGNyaXRlcmlvbiBieSB3aGljaFxuICAgICAqIHVuaXF1ZW5lc3MgaXMgY29tcHV0ZWQuIFRoZSBvcmRlciBvZiByZXN1bHQgdmFsdWVzIGlzIGRldGVybWluZWQgYnkgdGhlXG4gICAgICogb3JkZXIgdGhleSBvY2N1ciBpbiB0aGUgYXJyYXkuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OlxuICAgICAqICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZHVwbGljYXRlIGZyZWUgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udW5pcUJ5KFsyLjEsIDEuMiwgMi4zXSwgTWF0aC5mbG9vcik7XG4gICAgICogLy8gPT4gWzIuMSwgMS4yXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy51bmlxQnkoW3sgJ3gnOiAxIH0sIHsgJ3gnOiAyIH0sIHsgJ3gnOiAxIH1dLCAneCcpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMSB9LCB7ICd4JzogMiB9XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuaXFCeShhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSA/IGJhc2VVbmlxKGFycmF5LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMikpIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy51bmlxYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjb21wYXJhdG9yYCB3aGljaFxuICAgICAqIGlzIGludm9rZWQgdG8gY29tcGFyZSBlbGVtZW50cyBvZiBgYXJyYXlgLiBUaGUgb3JkZXIgb2YgcmVzdWx0IHZhbHVlcyBpc1xuICAgICAqIGRldGVybWluZWQgYnkgdGhlIG9yZGVyIHRoZXkgb2NjdXIgaW4gdGhlIGFycmF5LlRoZSBjb21wYXJhdG9yIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHR3byBhcmd1bWVudHM6IChhcnJWYWwsIG90aFZhbCkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBkdXBsaWNhdGUgZnJlZSBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAneCc6IDEsICd5JzogMiB9LCB7ICd4JzogMiwgJ3knOiAxIH0sIHsgJ3gnOiAxLCAneSc6IDIgfV07XG4gICAgICpcbiAgICAgKiBfLnVuaXFXaXRoKG9iamVjdHMsIF8uaXNFcXVhbCk7XG4gICAgICogLy8gPT4gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDIsICd5JzogMSB9XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuaXFXaXRoKGFycmF5LCBjb21wYXJhdG9yKSB7XG4gICAgICBjb21wYXJhdG9yID0gdHlwZW9mIGNvbXBhcmF0b3IgPT0gJ2Z1bmN0aW9uJyA/IGNvbXBhcmF0b3IgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkgPyBiYXNlVW5pcShhcnJheSwgdW5kZWZpbmVkLCBjb21wYXJhdG9yKSA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uemlwYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGFuIGFycmF5IG9mIGdyb3VwZWRcbiAgICAgKiBlbGVtZW50cyBhbmQgY3JlYXRlcyBhbiBhcnJheSByZWdyb3VwaW5nIHRoZSBlbGVtZW50cyB0byB0aGVpciBwcmUtemlwXG4gICAgICogY29uZmlndXJhdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAxLjIuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSBvZiBncm91cGVkIGVsZW1lbnRzIHRvIHByb2Nlc3MuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgcmVncm91cGVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgemlwcGVkID0gXy56aXAoWydhJywgJ2InXSwgWzEsIDJdLCBbdHJ1ZSwgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiBbWydhJywgMSwgdHJ1ZV0sIFsnYicsIDIsIGZhbHNlXV1cbiAgICAgKlxuICAgICAqIF8udW56aXAoemlwcGVkKTtcbiAgICAgKiAvLyA9PiBbWydhJywgJ2InXSwgWzEsIDJdLCBbdHJ1ZSwgZmFsc2VdXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuemlwKGFycmF5KSB7XG4gICAgICBpZiAoIShhcnJheSAmJiBhcnJheS5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHZhciBsZW5ndGggPSAwO1xuICAgICAgYXJyYXkgPSBhcnJheUZpbHRlcihhcnJheSwgZnVuY3Rpb24oZ3JvdXApIHtcbiAgICAgICAgaWYgKGlzQXJyYXlMaWtlT2JqZWN0KGdyb3VwKSkge1xuICAgICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1heChncm91cC5sZW5ndGgsIGxlbmd0aCk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGJhc2VUaW1lcyhsZW5ndGgsIGZ1bmN0aW9uKGluZGV4KSB7XG4gICAgICAgIHJldHVybiBhcnJheU1hcChhcnJheSwgYmFzZVByb3BlcnR5KGluZGV4KSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnVuemlwYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgdG8gc3BlY2lmeVxuICAgICAqIGhvdyByZWdyb3VwZWQgdmFsdWVzIHNob3VsZCBiZSBjb21iaW5lZC4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCB0aGVcbiAgICAgKiBlbGVtZW50cyBvZiBlYWNoIGdyb3VwOiAoLi4uZ3JvdXApLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuOC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IG9mIGdyb3VwZWQgZWxlbWVudHMgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIHRvIGNvbWJpbmVcbiAgICAgKiAgcmVncm91cGVkIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiByZWdyb3VwZWQgZWxlbWVudHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB6aXBwZWQgPSBfLnppcChbMSwgMl0sIFsxMCwgMjBdLCBbMTAwLCAyMDBdKTtcbiAgICAgKiAvLyA9PiBbWzEsIDEwLCAxMDBdLCBbMiwgMjAsIDIwMF1dXG4gICAgICpcbiAgICAgKiBfLnVuemlwV2l0aCh6aXBwZWQsIF8uYWRkKTtcbiAgICAgKiAvLyA9PiBbMywgMzAsIDMwMF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bnppcFdpdGgoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgICBpZiAoIShhcnJheSAmJiBhcnJheS5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHZhciByZXN1bHQgPSB1bnppcChhcnJheSk7XG4gICAgICBpZiAoaXRlcmF0ZWUgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFycmF5TWFwKHJlc3VsdCwgZnVuY3Rpb24oZ3JvdXApIHtcbiAgICAgICAgcmV0dXJuIGFwcGx5KGl0ZXJhdGVlLCB1bmRlZmluZWQsIGdyb3VwKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZXhjbHVkaW5nIGFsbCBnaXZlbiB2YWx1ZXMgdXNpbmdcbiAgICAgKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBVbmxpa2UgYF8ucHVsbGAsIHRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0gey4uLip9IFt2YWx1ZXNdIFRoZSB2YWx1ZXMgdG8gZXhjbHVkZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCB2YWx1ZXMuXG4gICAgICogQHNlZSBfLmRpZmZlcmVuY2UsIF8ueG9yXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ud2l0aG91dChbMiwgMSwgMiwgM10sIDEsIDIpO1xuICAgICAqIC8vID0+IFszXVxuICAgICAqL1xuICAgIHZhciB3aXRob3V0ID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXksIHZhbHVlcykge1xuICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlT2JqZWN0KGFycmF5KVxuICAgICAgICA/IGJhc2VEaWZmZXJlbmNlKGFycmF5LCB2YWx1ZXMpXG4gICAgICAgIDogW107XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHVuaXF1ZSB2YWx1ZXMgdGhhdCBpcyB0aGVcbiAgICAgKiBbc3ltbWV0cmljIGRpZmZlcmVuY2VdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1N5bW1ldHJpY19kaWZmZXJlbmNlKVxuICAgICAqIG9mIHRoZSBnaXZlbiBhcnJheXMuIFRoZSBvcmRlciBvZiByZXN1bHQgdmFsdWVzIGlzIGRldGVybWluZWQgYnkgdGhlIG9yZGVyXG4gICAgICogdGhleSBvY2N1ciBpbiB0aGUgYXJyYXlzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuNC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cbiAgICAgKiBAc2VlIF8uZGlmZmVyZW5jZSwgXy53aXRob3V0XG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ueG9yKFsyLCAxXSwgWzIsIDNdKTtcbiAgICAgKiAvLyA9PiBbMSwgM11cbiAgICAgKi9cbiAgICB2YXIgeG9yID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XG4gICAgICByZXR1cm4gYmFzZVhvcihhcnJheUZpbHRlcihhcnJheXMsIGlzQXJyYXlMaWtlT2JqZWN0KSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnhvcmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgIHdoaWNoIGlzXG4gICAgICogaW52b2tlZCBmb3IgZWFjaCBlbGVtZW50IG9mIGVhY2ggYGFycmF5c2AgdG8gZ2VuZXJhdGUgdGhlIGNyaXRlcmlvbiBieVxuICAgICAqIHdoaWNoIGJ5IHdoaWNoIHRoZXkncmUgY29tcGFyZWQuIFRoZSBvcmRlciBvZiByZXN1bHQgdmFsdWVzIGlzIGRldGVybWluZWRcbiAgICAgKiBieSB0aGUgb3JkZXIgdGhleSBvY2N1ciBpbiB0aGUgYXJyYXlzLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZVxuICAgICAqIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ueG9yQnkoWzIuMSwgMS4yXSwgWzIuMywgMy40XSwgTWF0aC5mbG9vcik7XG4gICAgICogLy8gPT4gWzEuMiwgMy40XVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy54b3JCeShbeyAneCc6IDEgfV0sIFt7ICd4JzogMiB9LCB7ICd4JzogMSB9XSwgJ3gnKTtcbiAgICAgKiAvLyA9PiBbeyAneCc6IDIgfV1cbiAgICAgKi9cbiAgICB2YXIgeG9yQnkgPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgIHZhciBpdGVyYXRlZSA9IGxhc3QoYXJyYXlzKTtcbiAgICAgIGlmIChpc0FycmF5TGlrZU9iamVjdChpdGVyYXRlZSkpIHtcbiAgICAgICAgaXRlcmF0ZWUgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZVhvcihhcnJheUZpbHRlcihhcnJheXMsIGlzQXJyYXlMaWtlT2JqZWN0KSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ueG9yYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjb21wYXJhdG9yYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgdG8gY29tcGFyZSBlbGVtZW50cyBvZiBgYXJyYXlzYC4gVGhlIG9yZGVyIG9mIHJlc3VsdCB2YWx1ZXMgaXNcbiAgICAgKiBkZXRlcm1pbmVkIGJ5IHRoZSBvcmRlciB0aGV5IG9jY3VyIGluIHRoZSBhcnJheXMuIFRoZSBjb21wYXJhdG9yIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHR3byBhcmd1bWVudHM6IChhcnJWYWwsIG90aFZhbCkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbYXJyYXlzXSBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICd4JzogMSwgJ3knOiAyIH0sIHsgJ3gnOiAyLCAneSc6IDEgfV07XG4gICAgICogdmFyIG90aGVycyA9IFt7ICd4JzogMSwgJ3knOiAxIH0sIHsgJ3gnOiAxLCAneSc6IDIgfV07XG4gICAgICpcbiAgICAgKiBfLnhvcldpdGgob2JqZWN0cywgb3RoZXJzLCBfLmlzRXF1YWwpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMiwgJ3knOiAxIH0sIHsgJ3gnOiAxLCAneSc6IDEgfV1cbiAgICAgKi9cbiAgICB2YXIgeG9yV2l0aCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgdmFyIGNvbXBhcmF0b3IgPSBsYXN0KGFycmF5cyk7XG4gICAgICBjb21wYXJhdG9yID0gdHlwZW9mIGNvbXBhcmF0b3IgPT0gJ2Z1bmN0aW9uJyA/IGNvbXBhcmF0b3IgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gYmFzZVhvcihhcnJheUZpbHRlcihhcnJheXMsIGlzQXJyYXlMaWtlT2JqZWN0KSwgdW5kZWZpbmVkLCBjb21wYXJhdG9yKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgZ3JvdXBlZCBlbGVtZW50cywgdGhlIGZpcnN0IG9mIHdoaWNoIGNvbnRhaW5zIHRoZVxuICAgICAqIGZpcnN0IGVsZW1lbnRzIG9mIHRoZSBnaXZlbiBhcnJheXMsIHRoZSBzZWNvbmQgb2Ygd2hpY2ggY29udGFpbnMgdGhlXG4gICAgICogc2Vjb25kIGVsZW1lbnRzIG9mIHRoZSBnaXZlbiBhcnJheXMsIGFuZCBzbyBvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBncm91cGVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnppcChbJ2EnLCAnYiddLCBbMSwgMl0sIFt0cnVlLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IFtbJ2EnLCAxLCB0cnVlXSwgWydiJywgMiwgZmFsc2VdXVxuICAgICAqL1xuICAgIHZhciB6aXAgPSBiYXNlUmVzdCh1bnppcCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZyb21QYWlyc2AgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyB0d28gYXJyYXlzLFxuICAgICAqIG9uZSBvZiBwcm9wZXJ0eSBpZGVudGlmaWVycyBhbmQgb25lIG9mIGNvcnJlc3BvbmRpbmcgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuNC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gW3Byb3BzPVtdXSBUaGUgcHJvcGVydHkgaWRlbnRpZmllcnMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3ZhbHVlcz1bXV0gVGhlIHByb3BlcnR5IHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnppcE9iamVjdChbJ2EnLCAnYiddLCBbMSwgMl0pO1xuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIgfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHppcE9iamVjdChwcm9wcywgdmFsdWVzKSB7XG4gICAgICByZXR1cm4gYmFzZVppcE9iamVjdChwcm9wcyB8fCBbXSwgdmFsdWVzIHx8IFtdLCBhc3NpZ25WYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy56aXBPYmplY3RgIGV4Y2VwdCB0aGF0IGl0IHN1cHBvcnRzIHByb3BlcnR5IHBhdGhzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gW3Byb3BzPVtdXSBUaGUgcHJvcGVydHkgaWRlbnRpZmllcnMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3ZhbHVlcz1bXV0gVGhlIHByb3BlcnR5IHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnppcE9iamVjdERlZXAoWydhLmJbMF0uYycsICdhLmJbMV0uZCddLCBbMSwgMl0pO1xuICAgICAqIC8vID0+IHsgJ2EnOiB7ICdiJzogW3sgJ2MnOiAxIH0sIHsgJ2QnOiAyIH1dIH0gfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHppcE9iamVjdERlZXAocHJvcHMsIHZhbHVlcykge1xuICAgICAgcmV0dXJuIGJhc2VaaXBPYmplY3QocHJvcHMgfHwgW10sIHZhbHVlcyB8fCBbXSwgYmFzZVNldCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy56aXBgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB0byBzcGVjaWZ5XG4gICAgICogaG93IGdyb3VwZWQgdmFsdWVzIHNob3VsZCBiZSBjb21iaW5lZC4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCB0aGVcbiAgICAgKiBlbGVtZW50cyBvZiBlYWNoIGdyb3VwOiAoLi4uZ3JvdXApLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuOC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBwcm9jZXNzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gdG8gY29tYmluZVxuICAgICAqICBncm91cGVkIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBncm91cGVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnppcFdpdGgoWzEsIDJdLCBbMTAsIDIwXSwgWzEwMCwgMjAwXSwgZnVuY3Rpb24oYSwgYiwgYykge1xuICAgICAqICAgcmV0dXJuIGEgKyBiICsgYztcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBbMTExLCAyMjJdXG4gICAgICovXG4gICAgdmFyIHppcFdpdGggPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheXMubGVuZ3RoLFxuICAgICAgICAgIGl0ZXJhdGVlID0gbGVuZ3RoID4gMSA/IGFycmF5c1tsZW5ndGggLSAxXSA6IHVuZGVmaW5lZDtcblxuICAgICAgaXRlcmF0ZWUgPSB0eXBlb2YgaXRlcmF0ZWUgPT0gJ2Z1bmN0aW9uJyA/IChhcnJheXMucG9wKCksIGl0ZXJhdGVlKSA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiB1bnppcFdpdGgoYXJyYXlzLCBpdGVyYXRlZSk7XG4gICAgfSk7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZSB0aGF0IHdyYXBzIGB2YWx1ZWAgd2l0aCBleHBsaWNpdCBtZXRob2RcbiAgICAgKiBjaGFpbiBzZXF1ZW5jZXMgZW5hYmxlZC4gVGhlIHJlc3VsdCBvZiBzdWNoIHNlcXVlbmNlcyBtdXN0IGJlIHVud3JhcHBlZFxuICAgICAqIHdpdGggYF8jdmFsdWVgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDEuMy4wXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhZ2UnOiAzNiB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FnZSc6IDQwIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWdlJzogMSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIHZhciB5b3VuZ2VzdCA9IF9cbiAgICAgKiAgIC5jaGFpbih1c2VycylcbiAgICAgKiAgIC5zb3J0QnkoJ2FnZScpXG4gICAgICogICAubWFwKGZ1bmN0aW9uKG8pIHtcbiAgICAgKiAgICAgcmV0dXJuIG8udXNlciArICcgaXMgJyArIG8uYWdlO1xuICAgICAqICAgfSlcbiAgICAgKiAgIC5oZWFkKClcbiAgICAgKiAgIC52YWx1ZSgpO1xuICAgICAqIC8vID0+ICdwZWJibGVzIGlzIDEnXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2hhaW4odmFsdWUpIHtcbiAgICAgIHZhciByZXN1bHQgPSBsb2Rhc2godmFsdWUpO1xuICAgICAgcmVzdWx0Ll9fY2hhaW5fXyA9IHRydWU7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGludm9rZXMgYGludGVyY2VwdG9yYCBhbmQgcmV0dXJucyBgdmFsdWVgLiBUaGUgaW50ZXJjZXB0b3JcbiAgICAgKiBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OyAodmFsdWUpLiBUaGUgcHVycG9zZSBvZiB0aGlzIG1ldGhvZCBpcyB0b1xuICAgICAqIFwidGFwIGludG9cIiBhIG1ldGhvZCBjaGFpbiBzZXF1ZW5jZSBpbiBvcmRlciB0byBtb2RpZnkgaW50ZXJtZWRpYXRlIHJlc3VsdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgU2VxXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvdmlkZSB0byBgaW50ZXJjZXB0b3JgLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGludGVyY2VwdG9yIFRoZSBmdW5jdGlvbiB0byBpbnZva2UuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgYHZhbHVlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXyhbMSwgMiwgM10pXG4gICAgICogIC50YXAoZnVuY3Rpb24oYXJyYXkpIHtcbiAgICAgKiAgICAvLyBNdXRhdGUgaW5wdXQgYXJyYXkuXG4gICAgICogICAgYXJyYXkucG9wKCk7XG4gICAgICogIH0pXG4gICAgICogIC5yZXZlcnNlKClcbiAgICAgKiAgLnZhbHVlKCk7XG4gICAgICogLy8gPT4gWzIsIDFdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGFwKHZhbHVlLCBpbnRlcmNlcHRvcikge1xuICAgICAgaW50ZXJjZXB0b3IodmFsdWUpO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8udGFwYCBleGNlcHQgdGhhdCBpdCByZXR1cm5zIHRoZSByZXN1bHQgb2YgYGludGVyY2VwdG9yYC5cbiAgICAgKiBUaGUgcHVycG9zZSBvZiB0aGlzIG1ldGhvZCBpcyB0byBcInBhc3MgdGhydVwiIHZhbHVlcyByZXBsYWNpbmcgaW50ZXJtZWRpYXRlXG4gICAgICogcmVzdWx0cyBpbiBhIG1ldGhvZCBjaGFpbiBzZXF1ZW5jZS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm92aWRlIHRvIGBpbnRlcmNlcHRvcmAuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaW50ZXJjZXB0b3IgVGhlIGZ1bmN0aW9uIHRvIGludm9rZS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzdWx0IG9mIGBpbnRlcmNlcHRvcmAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8oJyAgYWJjICAnKVxuICAgICAqICAuY2hhaW4oKVxuICAgICAqICAudHJpbSgpXG4gICAgICogIC50aHJ1KGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICogICAgcmV0dXJuIFt2YWx1ZV07XG4gICAgICogIH0pXG4gICAgICogIC52YWx1ZSgpO1xuICAgICAqIC8vID0+IFsnYWJjJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0aHJ1KHZhbHVlLCBpbnRlcmNlcHRvcikge1xuICAgICAgcmV0dXJuIGludGVyY2VwdG9yKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyB0aGUgd3JhcHBlciB2ZXJzaW9uIG9mIGBfLmF0YC5cbiAgICAgKlxuICAgICAqIEBuYW1lIGF0XG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMS4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU2VxXG4gICAgICogQHBhcmFtIHsuLi4oc3RyaW5nfHN0cmluZ1tdKX0gW3BhdGhzXSBUaGUgcHJvcGVydHkgcGF0aHMgdG8gcGljay5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MnOiAzIH0gfSwgNF0gfTtcbiAgICAgKlxuICAgICAqIF8ob2JqZWN0KS5hdChbJ2FbMF0uYi5jJywgJ2FbMV0nXSkudmFsdWUoKTtcbiAgICAgKiAvLyA9PiBbMywgNF1cbiAgICAgKi9cbiAgICB2YXIgd3JhcHBlckF0ID0gZmxhdFJlc3QoZnVuY3Rpb24ocGF0aHMpIHtcbiAgICAgIHZhciBsZW5ndGggPSBwYXRocy5sZW5ndGgsXG4gICAgICAgICAgc3RhcnQgPSBsZW5ndGggPyBwYXRoc1swXSA6IDAsXG4gICAgICAgICAgdmFsdWUgPSB0aGlzLl9fd3JhcHBlZF9fLFxuICAgICAgICAgIGludGVyY2VwdG9yID0gZnVuY3Rpb24ob2JqZWN0KSB7IHJldHVybiBiYXNlQXQob2JqZWN0LCBwYXRocyk7IH07XG5cbiAgICAgIGlmIChsZW5ndGggPiAxIHx8IHRoaXMuX19hY3Rpb25zX18ubGVuZ3RoIHx8XG4gICAgICAgICAgISh2YWx1ZSBpbnN0YW5jZW9mIExhenlXcmFwcGVyKSB8fCAhaXNJbmRleChzdGFydCkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGhydShpbnRlcmNlcHRvcik7XG4gICAgICB9XG4gICAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKHN0YXJ0LCArc3RhcnQgKyAobGVuZ3RoID8gMSA6IDApKTtcbiAgICAgIHZhbHVlLl9fYWN0aW9uc19fLnB1c2goe1xuICAgICAgICAnZnVuYyc6IHRocnUsXG4gICAgICAgICdhcmdzJzogW2ludGVyY2VwdG9yXSxcbiAgICAgICAgJ3RoaXNBcmcnOiB1bmRlZmluZWRcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHZhbHVlLCB0aGlzLl9fY2hhaW5fXykudGhydShmdW5jdGlvbihhcnJheSkge1xuICAgICAgICBpZiAobGVuZ3RoICYmICFhcnJheS5sZW5ndGgpIHtcbiAgICAgICAgICBhcnJheS5wdXNoKHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZSB3aXRoIGV4cGxpY2l0IG1ldGhvZCBjaGFpbiBzZXF1ZW5jZXMgZW5hYmxlZC5cbiAgICAgKlxuICAgICAqIEBuYW1lIGNoYWluXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgU2VxXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIC8vIEEgc2VxdWVuY2Ugd2l0aG91dCBleHBsaWNpdCBjaGFpbmluZy5cbiAgICAgKiBfKHVzZXJzKS5oZWFkKCk7XG4gICAgICogLy8gPT4geyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYgfVxuICAgICAqXG4gICAgICogLy8gQSBzZXF1ZW5jZSB3aXRoIGV4cGxpY2l0IGNoYWluaW5nLlxuICAgICAqIF8odXNlcnMpXG4gICAgICogICAuY2hhaW4oKVxuICAgICAqICAgLmhlYWQoKVxuICAgICAqICAgLnBpY2soJ3VzZXInKVxuICAgICAqICAgLnZhbHVlKCk7XG4gICAgICogLy8gPT4geyAndXNlcic6ICdiYXJuZXknIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyQ2hhaW4oKSB7XG4gICAgICByZXR1cm4gY2hhaW4odGhpcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgdGhlIGNoYWluIHNlcXVlbmNlIGFuZCByZXR1cm5zIHRoZSB3cmFwcGVkIHJlc3VsdC5cbiAgICAgKlxuICAgICAqIEBuYW1lIGNvbW1pdFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMi4wXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBgbG9kYXNoYCB3cmFwcGVyIGluc3RhbmNlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgMl07XG4gICAgICogdmFyIHdyYXBwZWQgPSBfKGFycmF5KS5wdXNoKDMpO1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqXG4gICAgICogd3JhcHBlZCA9IHdyYXBwZWQuY29tbWl0KCk7XG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogd3JhcHBlZC5sYXN0KCk7XG4gICAgICogLy8gPT4gM1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdyYXBwZXJDb21taXQoKSB7XG4gICAgICByZXR1cm4gbmV3IExvZGFzaFdyYXBwZXIodGhpcy52YWx1ZSgpLCB0aGlzLl9fY2hhaW5fXyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbmV4dCB2YWx1ZSBvbiBhIHdyYXBwZWQgb2JqZWN0IGZvbGxvd2luZyB0aGVcbiAgICAgKiBbaXRlcmF0b3IgcHJvdG9jb2xdKGh0dHBzOi8vbWRuLmlvL2l0ZXJhdGlvbl9wcm90b2NvbHMjaXRlcmF0b3IpLlxuICAgICAqXG4gICAgICogQG5hbWUgbmV4dFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5leHQgaXRlcmF0b3IgdmFsdWUuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB3cmFwcGVkID0gXyhbMSwgMl0pO1xuICAgICAqXG4gICAgICogd3JhcHBlZC5uZXh0KCk7XG4gICAgICogLy8gPT4geyAnZG9uZSc6IGZhbHNlLCAndmFsdWUnOiAxIH1cbiAgICAgKlxuICAgICAqIHdyYXBwZWQubmV4dCgpO1xuICAgICAqIC8vID0+IHsgJ2RvbmUnOiBmYWxzZSwgJ3ZhbHVlJzogMiB9XG4gICAgICpcbiAgICAgKiB3cmFwcGVkLm5leHQoKTtcbiAgICAgKiAvLyA9PiB7ICdkb25lJzogdHJ1ZSwgJ3ZhbHVlJzogdW5kZWZpbmVkIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyTmV4dCgpIHtcbiAgICAgIGlmICh0aGlzLl9fdmFsdWVzX18gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9fdmFsdWVzX18gPSB0b0FycmF5KHRoaXMudmFsdWUoKSk7XG4gICAgICB9XG4gICAgICB2YXIgZG9uZSA9IHRoaXMuX19pbmRleF9fID49IHRoaXMuX192YWx1ZXNfXy5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUgPSBkb25lID8gdW5kZWZpbmVkIDogdGhpcy5fX3ZhbHVlc19fW3RoaXMuX19pbmRleF9fKytdO1xuXG4gICAgICByZXR1cm4geyAnZG9uZSc6IGRvbmUsICd2YWx1ZSc6IHZhbHVlIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW5hYmxlcyB0aGUgd3JhcHBlciB0byBiZSBpdGVyYWJsZS5cbiAgICAgKlxuICAgICAqIEBuYW1lIFN5bWJvbC5pdGVyYXRvclxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIHdyYXBwZXIgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgd3JhcHBlZCA9IF8oWzEsIDJdKTtcbiAgICAgKlxuICAgICAqIHdyYXBwZWRbU3ltYm9sLml0ZXJhdG9yXSgpID09PSB3cmFwcGVkO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIEFycmF5LmZyb20od3JhcHBlZCk7XG4gICAgICogLy8gPT4gWzEsIDJdXG4gICAgICovXG4gICAgZnVuY3Rpb24gd3JhcHBlclRvSXRlcmF0b3IoKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgdGhlIGNoYWluIHNlcXVlbmNlIHBsYW50aW5nIGB2YWx1ZWAgYXMgdGhlIHdyYXBwZWQgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAbmFtZSBwbGFudFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMi4wXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHBsYW50LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBgbG9kYXNoYCB3cmFwcGVyIGluc3RhbmNlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBzcXVhcmUobikge1xuICAgICAqICAgcmV0dXJuIG4gKiBuO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHZhciB3cmFwcGVkID0gXyhbMSwgMl0pLm1hcChzcXVhcmUpO1xuICAgICAqIHZhciBvdGhlciA9IHdyYXBwZWQucGxhbnQoWzMsIDRdKTtcbiAgICAgKlxuICAgICAqIG90aGVyLnZhbHVlKCk7XG4gICAgICogLy8gPT4gWzksIDE2XVxuICAgICAqXG4gICAgICogd3JhcHBlZC52YWx1ZSgpO1xuICAgICAqIC8vID0+IFsxLCA0XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdyYXBwZXJQbGFudCh2YWx1ZSkge1xuICAgICAgdmFyIHJlc3VsdCxcbiAgICAgICAgICBwYXJlbnQgPSB0aGlzO1xuXG4gICAgICB3aGlsZSAocGFyZW50IGluc3RhbmNlb2YgYmFzZUxvZGFzaCkge1xuICAgICAgICB2YXIgY2xvbmUgPSB3cmFwcGVyQ2xvbmUocGFyZW50KTtcbiAgICAgICAgY2xvbmUuX19pbmRleF9fID0gMDtcbiAgICAgICAgY2xvbmUuX192YWx1ZXNfXyA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHByZXZpb3VzLl9fd3JhcHBlZF9fID0gY2xvbmU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0gY2xvbmU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHByZXZpb3VzID0gY2xvbmU7XG4gICAgICAgIHBhcmVudCA9IHBhcmVudC5fX3dyYXBwZWRfXztcbiAgICAgIH1cbiAgICAgIHByZXZpb3VzLl9fd3JhcHBlZF9fID0gdmFsdWU7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIHRoZSB3cmFwcGVyIHZlcnNpb24gb2YgYF8ucmV2ZXJzZWAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyB0aGUgd3JhcHBlZCBhcnJheS5cbiAgICAgKlxuICAgICAqIEBuYW1lIHJldmVyc2VcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzEsIDIsIDNdO1xuICAgICAqXG4gICAgICogXyhhcnJheSkucmV2ZXJzZSgpLnZhbHVlKClcbiAgICAgKiAvLyA9PiBbMywgMiwgMV1cbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMywgMiwgMV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyUmV2ZXJzZSgpIHtcbiAgICAgIHZhciB2YWx1ZSA9IHRoaXMuX193cmFwcGVkX187XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBMYXp5V3JhcHBlcikge1xuICAgICAgICB2YXIgd3JhcHBlZCA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgpIHtcbiAgICAgICAgICB3cmFwcGVkID0gbmV3IExhenlXcmFwcGVyKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHdyYXBwZWQgPSB3cmFwcGVkLnJldmVyc2UoKTtcbiAgICAgICAgd3JhcHBlZC5fX2FjdGlvbnNfXy5wdXNoKHtcbiAgICAgICAgICAnZnVuYyc6IHRocnUsXG4gICAgICAgICAgJ2FyZ3MnOiBbcmV2ZXJzZV0sXG4gICAgICAgICAgJ3RoaXNBcmcnOiB1bmRlZmluZWRcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXcgTG9kYXNoV3JhcHBlcih3cmFwcGVkLCB0aGlzLl9fY2hhaW5fXyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy50aHJ1KHJldmVyc2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGVzIHRoZSBjaGFpbiBzZXF1ZW5jZSB0byByZXNvbHZlIHRoZSB1bndyYXBwZWQgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAbmFtZSB2YWx1ZVxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGFsaWFzIHRvSlNPTiwgdmFsdWVPZlxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdW53cmFwcGVkIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfKFsxLCAyLCAzXSkudmFsdWUoKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyVmFsdWUoKSB7XG4gICAgICByZXR1cm4gYmFzZVdyYXBwZXJWYWx1ZSh0aGlzLl9fd3JhcHBlZF9fLCB0aGlzLl9fYWN0aW9uc19fKTtcbiAgICB9XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiBrZXlzIGdlbmVyYXRlZCBmcm9tIHRoZSByZXN1bHRzIG9mIHJ1bm5pbmdcbiAgICAgKiBlYWNoIGVsZW1lbnQgb2YgYGNvbGxlY3Rpb25gIHRocnUgYGl0ZXJhdGVlYC4gVGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgb2ZcbiAgICAgKiBlYWNoIGtleSBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBrZXkgd2FzIHJldHVybmVkIGJ5IGBpdGVyYXRlZWAuIFRoZVxuICAgICAqIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC41LjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIHRvIHRyYW5zZm9ybSBrZXlzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNvbXBvc2VkIGFnZ3JlZ2F0ZSBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uY291bnRCeShbNi4xLCA0LjIsIDYuM10sIE1hdGguZmxvb3IpO1xuICAgICAqIC8vID0+IHsgJzQnOiAxLCAnNic6IDIgfVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5jb3VudEJ5KFsnb25lJywgJ3R3bycsICd0aHJlZSddLCAnbGVuZ3RoJyk7XG4gICAgICogLy8gPT4geyAnMyc6IDIsICc1JzogMSB9XG4gICAgICovXG4gICAgdmFyIGNvdW50QnkgPSBjcmVhdGVBZ2dyZWdhdG9yKGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwocmVzdWx0LCBrZXkpKSB7XG4gICAgICAgICsrcmVzdWx0W2tleV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBiYXNlQXNzaWduVmFsdWUocmVzdWx0LCBrZXksIDEpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBwcmVkaWNhdGVgIHJldHVybnMgdHJ1dGh5IGZvciAqKmFsbCoqIGVsZW1lbnRzIG9mIGBjb2xsZWN0aW9uYC5cbiAgICAgKiBJdGVyYXRpb24gaXMgc3RvcHBlZCBvbmNlIGBwcmVkaWNhdGVgIHJldHVybnMgZmFsc2V5LiBUaGUgcHJlZGljYXRlIGlzXG4gICAgICogaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIHJldHVybnMgYHRydWVgIGZvclxuICAgICAqIFtlbXB0eSBjb2xsZWN0aW9uc10oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRW1wdHlfc2V0KSBiZWNhdXNlXG4gICAgICogW2V2ZXJ5dGhpbmcgaXMgdHJ1ZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVmFjdW91c190cnV0aCkgb2ZcbiAgICAgKiBlbGVtZW50cyBvZiBlbXB0eSBjb2xsZWN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbGwgZWxlbWVudHMgcGFzcyB0aGUgcHJlZGljYXRlIGNoZWNrLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZXZlcnkoW3RydWUsIDEsIG51bGwsICd5ZXMnXSwgQm9vbGVhbik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2LCAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZXZlcnkodXNlcnMsIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5ldmVyeSh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZXZlcnkodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGV2ZXJ5KGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZ3VhcmQpIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5RXZlcnkgOiBiYXNlRXZlcnk7XG4gICAgICBpZiAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBndWFyZCkpIHtcbiAgICAgICAgcHJlZGljYXRlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmAsIHJldHVybmluZyBhbiBhcnJheSBvZiBhbGwgZWxlbWVudHNcbiAgICAgKiBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IuIFRoZSBwcmVkaWNhdGUgaXMgaW52b2tlZCB3aXRoIHRocmVlXG4gICAgICogYXJndW1lbnRzOiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLnJlbW92ZWAsIHRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmlsdGVyZWQgYXJyYXkuXG4gICAgICogQHNlZSBfLnJlamVjdFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLmZpbHRlcih1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gIW8uYWN0aXZlOyB9KTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbHRlcih1c2VycywgeyAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5J11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbHRlcih1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbHRlcih1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5J11cbiAgICAgKlxuICAgICAqIC8vIENvbWJpbmluZyBzZXZlcmFsIHByZWRpY2F0ZXMgdXNpbmcgYF8ub3ZlckV2ZXJ5YCBvciBgXy5vdmVyU29tZWAuXG4gICAgICogXy5maWx0ZXIodXNlcnMsIF8ub3ZlclNvbWUoW3sgJ2FnZSc6IDM2IH0sIFsnYWdlJywgNDBdXSkpO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCcsICdiYXJuZXknXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZpbHRlcihjb2xsZWN0aW9uLCBwcmVkaWNhdGUpIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5RmlsdGVyIDogYmFzZUZpbHRlcjtcbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2YgYGNvbGxlY3Rpb25gLCByZXR1cm5pbmcgdGhlIGZpcnN0IGVsZW1lbnRcbiAgICAgKiBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IuIFRoZSBwcmVkaWNhdGUgaXMgaW52b2tlZCB3aXRoIHRocmVlXG4gICAgICogYXJndW1lbnRzOiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZnJvbUluZGV4PTBdIFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWF0Y2hlZCBlbGVtZW50LCBlbHNlIGB1bmRlZmluZWRgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWdlJzogNDAsICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdwZWJibGVzJywgJ2FnZSc6IDEsICAnYWN0aXZlJzogdHJ1ZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZmluZCh1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gby5hZ2UgPCA0MDsgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0IGZvciAnYmFybmV5J1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmQodXNlcnMsIHsgJ2FnZSc6IDEsICdhY3RpdmUnOiB0cnVlIH0pO1xuICAgICAqIC8vID0+IG9iamVjdCBmb3IgJ3BlYmJsZXMnXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maW5kKHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XG4gICAgICogLy8gPT4gb2JqZWN0IGZvciAnZnJlZCdcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZCh1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IG9iamVjdCBmb3IgJ2Jhcm5leSdcbiAgICAgKi9cbiAgICB2YXIgZmluZCA9IGNyZWF0ZUZpbmQoZmluZEluZGV4KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmluZGAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZlxuICAgICAqIGBjb2xsZWN0aW9uYCBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZnJvbUluZGV4PWNvbGxlY3Rpb24ubGVuZ3RoLTFdIFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWF0Y2hlZCBlbGVtZW50LCBlbHNlIGB1bmRlZmluZWRgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmZpbmRMYXN0KFsxLCAyLCAzLCA0XSwgZnVuY3Rpb24obikge1xuICAgICAqICAgcmV0dXJuIG4gJSAyID09IDE7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gM1xuICAgICAqL1xuICAgIHZhciBmaW5kTGFzdCA9IGNyZWF0ZUZpbmQoZmluZExhc3RJbmRleCk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZmxhdHRlbmVkIGFycmF5IG9mIHZhbHVlcyBieSBydW5uaW5nIGVhY2ggZWxlbWVudCBpbiBgY29sbGVjdGlvbmBcbiAgICAgKiB0aHJ1IGBpdGVyYXRlZWAgYW5kIGZsYXR0ZW5pbmcgdGhlIG1hcHBlZCByZXN1bHRzLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZFxuICAgICAqIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGR1cGxpY2F0ZShuKSB7XG4gICAgICogICByZXR1cm4gW24sIG5dO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIF8uZmxhdE1hcChbMSwgMl0sIGR1cGxpY2F0ZSk7XG4gICAgICogLy8gPT4gWzEsIDEsIDIsIDJdXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmxhdE1hcChjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIGJhc2VGbGF0dGVuKG1hcChjb2xsZWN0aW9uLCBpdGVyYXRlZSksIDEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmxhdE1hcGAgZXhjZXB0IHRoYXQgaXQgcmVjdXJzaXZlbHkgZmxhdHRlbnMgdGhlXG4gICAgICogbWFwcGVkIHJlc3VsdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC43LjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGR1cGxpY2F0ZShuKSB7XG4gICAgICogICByZXR1cm4gW1tbbiwgbl1dXTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBfLmZsYXRNYXBEZWVwKFsxLCAyXSwgZHVwbGljYXRlKTtcbiAgICAgKiAvLyA9PiBbMSwgMSwgMiwgMl1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmbGF0TWFwRGVlcChjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIGJhc2VGbGF0dGVuKG1hcChjb2xsZWN0aW9uLCBpdGVyYXRlZSksIElORklOSVRZKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZsYXRNYXBgIGV4Y2VwdCB0aGF0IGl0IHJlY3Vyc2l2ZWx5IGZsYXR0ZW5zIHRoZVxuICAgICAqIG1hcHBlZCByZXN1bHRzIHVwIHRvIGBkZXB0aGAgdGltZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC43LjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2RlcHRoPTFdIFRoZSBtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGR1cGxpY2F0ZShuKSB7XG4gICAgICogICByZXR1cm4gW1tbbiwgbl1dXTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBfLmZsYXRNYXBEZXB0aChbMSwgMl0sIGR1cGxpY2F0ZSwgMik7XG4gICAgICogLy8gPT4gW1sxLCAxXSwgWzIsIDJdXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZsYXRNYXBEZXB0aChjb2xsZWN0aW9uLCBpdGVyYXRlZSwgZGVwdGgpIHtcbiAgICAgIGRlcHRoID0gZGVwdGggPT09IHVuZGVmaW5lZCA/IDEgOiB0b0ludGVnZXIoZGVwdGgpO1xuICAgICAgcmV0dXJuIGJhc2VGbGF0dGVuKG1hcChjb2xsZWN0aW9uLCBpdGVyYXRlZSksIGRlcHRoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mIGBjb2xsZWN0aW9uYCBhbmQgaW52b2tlcyBgaXRlcmF0ZWVgIGZvciBlYWNoIGVsZW1lbnQuXG4gICAgICogVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXQgaXRlcmF0aW9uIGVhcmx5IGJ5IGV4cGxpY2l0bHkgcmV0dXJuaW5nIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogQXMgd2l0aCBvdGhlciBcIkNvbGxlY3Rpb25zXCIgbWV0aG9kcywgb2JqZWN0cyB3aXRoIGEgXCJsZW5ndGhcIlxuICAgICAqIHByb3BlcnR5IGFyZSBpdGVyYXRlZCBsaWtlIGFycmF5cy4gVG8gYXZvaWQgdGhpcyBiZWhhdmlvciB1c2UgYF8uZm9ySW5gXG4gICAgICogb3IgYF8uZm9yT3duYCBmb3Igb2JqZWN0IGl0ZXJhdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBhbGlhcyBlYWNoXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fE9iamVjdH0gUmV0dXJucyBgY29sbGVjdGlvbmAuXG4gICAgICogQHNlZSBfLmZvckVhY2hSaWdodFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmZvckVhY2goWzEsIDJdLCBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAqICAgY29uc29sZS5sb2codmFsdWUpO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IExvZ3MgYDFgIHRoZW4gYDJgLlxuICAgICAqXG4gICAgICogXy5mb3JFYWNoKHsgJ2EnOiAxLCAnYic6IDIgfSwgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAqICAgY29uc29sZS5sb2coa2V5KTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBMb2dzICdhJyB0aGVuICdiJyAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmb3JFYWNoKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUVhY2ggOiBiYXNlRWFjaDtcbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5mb3JFYWNoYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mXG4gICAgICogYGNvbGxlY3Rpb25gIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjAuMFxuICAgICAqIEBhbGlhcyBlYWNoUmlnaHRcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl8T2JqZWN0fSBSZXR1cm5zIGBjb2xsZWN0aW9uYC5cbiAgICAgKiBAc2VlIF8uZm9yRWFjaFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmZvckVhY2hSaWdodChbMSwgMl0sIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICogICBjb25zb2xlLmxvZyh2YWx1ZSk7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gTG9ncyBgMmAgdGhlbiBgMWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZm9yRWFjaFJpZ2h0KGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUVhY2hSaWdodCA6IGJhc2VFYWNoUmlnaHQ7XG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIGtleXMgZ2VuZXJhdGVkIGZyb20gdGhlIHJlc3VsdHMgb2YgcnVubmluZ1xuICAgICAqIGVhY2ggZWxlbWVudCBvZiBgY29sbGVjdGlvbmAgdGhydSBgaXRlcmF0ZWVgLiBUaGUgb3JkZXIgb2YgZ3JvdXBlZCB2YWx1ZXNcbiAgICAgKiBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBvcmRlciB0aGV5IG9jY3VyIGluIGBjb2xsZWN0aW9uYC4gVGhlIGNvcnJlc3BvbmRpbmdcbiAgICAgKiB2YWx1ZSBvZiBlYWNoIGtleSBpcyBhbiBhcnJheSBvZiBlbGVtZW50cyByZXNwb25zaWJsZSBmb3IgZ2VuZXJhdGluZyB0aGVcbiAgICAgKiBrZXkuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSB0byB0cmFuc2Zvcm0ga2V5cy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjb21wb3NlZCBhZ2dyZWdhdGUgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmdyb3VwQnkoWzYuMSwgNC4yLCA2LjNdLCBNYXRoLmZsb29yKTtcbiAgICAgKiAvLyA9PiB7ICc0JzogWzQuMl0sICc2JzogWzYuMSwgNi4zXSB9XG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmdyb3VwQnkoWydvbmUnLCAndHdvJywgJ3RocmVlJ10sICdsZW5ndGgnKTtcbiAgICAgKiAvLyA9PiB7ICczJzogWydvbmUnLCAndHdvJ10sICc1JzogWyd0aHJlZSddIH1cbiAgICAgKi9cbiAgICB2YXIgZ3JvdXBCeSA9IGNyZWF0ZUFnZ3JlZ2F0b3IoZnVuY3Rpb24ocmVzdWx0LCB2YWx1ZSwga2V5KSB7XG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChyZXN1bHQsIGtleSkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0ucHVzaCh2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBiYXNlQXNzaWduVmFsdWUocmVzdWx0LCBrZXksIFt2YWx1ZV0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgaW4gYGNvbGxlY3Rpb25gLiBJZiBgY29sbGVjdGlvbmAgaXMgYSBzdHJpbmcsIGl0J3NcbiAgICAgKiBjaGVja2VkIGZvciBhIHN1YnN0cmluZyBvZiBgdmFsdWVgLCBvdGhlcndpc2VcbiAgICAgKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGlzIHVzZWQgZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLiBJZiBgZnJvbUluZGV4YCBpcyBuZWdhdGl2ZSwgaXQncyB1c2VkIGFzXG4gICAgICogdGhlIG9mZnNldCBmcm9tIHRoZSBlbmQgb2YgYGNvbGxlY3Rpb25gLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZnJvbUluZGV4PTBdIFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5yZWR1Y2VgLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGZvdW5kLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaW5jbHVkZXMoWzEsIDIsIDNdLCAxKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmluY2x1ZGVzKFsxLCAyLCAzXSwgMSwgMik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaW5jbHVkZXMoeyAnYSc6IDEsICdiJzogMiB9LCAxKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmluY2x1ZGVzKCdhYmNkJywgJ2JjJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluY2x1ZGVzKGNvbGxlY3Rpb24sIHZhbHVlLCBmcm9tSW5kZXgsIGd1YXJkKSB7XG4gICAgICBjb2xsZWN0aW9uID0gaXNBcnJheUxpa2UoY29sbGVjdGlvbikgPyBjb2xsZWN0aW9uIDogdmFsdWVzKGNvbGxlY3Rpb24pO1xuICAgICAgZnJvbUluZGV4ID0gKGZyb21JbmRleCAmJiAhZ3VhcmQpID8gdG9JbnRlZ2VyKGZyb21JbmRleCkgOiAwO1xuXG4gICAgICB2YXIgbGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGg7XG4gICAgICBpZiAoZnJvbUluZGV4IDwgMCkge1xuICAgICAgICBmcm9tSW5kZXggPSBuYXRpdmVNYXgobGVuZ3RoICsgZnJvbUluZGV4LCAwKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpc1N0cmluZyhjb2xsZWN0aW9uKVxuICAgICAgICA/IChmcm9tSW5kZXggPD0gbGVuZ3RoICYmIGNvbGxlY3Rpb24uaW5kZXhPZih2YWx1ZSwgZnJvbUluZGV4KSA+IC0xKVxuICAgICAgICA6ICghIWxlbmd0aCAmJiBiYXNlSW5kZXhPZihjb2xsZWN0aW9uLCB2YWx1ZSwgZnJvbUluZGV4KSA+IC0xKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbnZva2VzIHRoZSBtZXRob2QgYXQgYHBhdGhgIG9mIGVhY2ggZWxlbWVudCBpbiBgY29sbGVjdGlvbmAsIHJldHVybmluZ1xuICAgICAqIGFuIGFycmF5IG9mIHRoZSByZXN1bHRzIG9mIGVhY2ggaW52b2tlZCBtZXRob2QuIEFueSBhZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgICAqIGFyZSBwcm92aWRlZCB0byBlYWNoIGludm9rZWQgbWV0aG9kLiBJZiBgcGF0aGAgaXMgYSBmdW5jdGlvbiwgaXQncyBpbnZva2VkXG4gICAgICogZm9yLCBhbmQgYHRoaXNgIGJvdW5kIHRvLCBlYWNoIGVsZW1lbnQgaW4gYGNvbGxlY3Rpb25gLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtBcnJheXxGdW5jdGlvbnxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIG1ldGhvZCB0byBpbnZva2Ugb3JcbiAgICAgKiAgdGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0gey4uLip9IFthcmdzXSBUaGUgYXJndW1lbnRzIHRvIGludm9rZSBlYWNoIG1ldGhvZCB3aXRoLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcmVzdWx0cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pbnZva2VNYXAoW1s1LCAxLCA3XSwgWzMsIDIsIDFdXSwgJ3NvcnQnKTtcbiAgICAgKiAvLyA9PiBbWzEsIDUsIDddLCBbMSwgMiwgM11dXG4gICAgICpcbiAgICAgKiBfLmludm9rZU1hcChbMTIzLCA0NTZdLCBTdHJpbmcucHJvdG90eXBlLnNwbGl0LCAnJyk7XG4gICAgICogLy8gPT4gW1snMScsICcyJywgJzMnXSwgWyc0JywgJzUnLCAnNiddXVxuICAgICAqL1xuICAgIHZhciBpbnZva2VNYXAgPSBiYXNlUmVzdChmdW5jdGlvbihjb2xsZWN0aW9uLCBwYXRoLCBhcmdzKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBpc0Z1bmMgPSB0eXBlb2YgcGF0aCA9PSAnZnVuY3Rpb24nLFxuICAgICAgICAgIHJlc3VsdCA9IGlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pID8gQXJyYXkoY29sbGVjdGlvbi5sZW5ndGgpIDogW107XG5cbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgIHJlc3VsdFsrK2luZGV4XSA9IGlzRnVuYyA/IGFwcGx5KHBhdGgsIHZhbHVlLCBhcmdzKSA6IGJhc2VJbnZva2UodmFsdWUsIHBhdGgsIGFyZ3MpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3QgY29tcG9zZWQgb2Yga2V5cyBnZW5lcmF0ZWQgZnJvbSB0aGUgcmVzdWx0cyBvZiBydW5uaW5nXG4gICAgICogZWFjaCBlbGVtZW50IG9mIGBjb2xsZWN0aW9uYCB0aHJ1IGBpdGVyYXRlZWAuIFRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIG9mXG4gICAgICogZWFjaCBrZXkgaXMgdGhlIGxhc3QgZWxlbWVudCByZXNwb25zaWJsZSBmb3IgZ2VuZXJhdGluZyB0aGUga2V5LiBUaGVcbiAgICAgKiBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSB0byB0cmFuc2Zvcm0ga2V5cy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjb21wb3NlZCBhZ2dyZWdhdGUgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbXG4gICAgICogICB7ICdkaXInOiAnbGVmdCcsICdjb2RlJzogOTcgfSxcbiAgICAgKiAgIHsgJ2Rpcic6ICdyaWdodCcsICdjb2RlJzogMTAwIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5rZXlCeShhcnJheSwgZnVuY3Rpb24obykge1xuICAgICAqICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoby5jb2RlKTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiB7ICdhJzogeyAnZGlyJzogJ2xlZnQnLCAnY29kZSc6IDk3IH0sICdkJzogeyAnZGlyJzogJ3JpZ2h0JywgJ2NvZGUnOiAxMDAgfSB9XG4gICAgICpcbiAgICAgKiBfLmtleUJ5KGFycmF5LCAnZGlyJyk7XG4gICAgICogLy8gPT4geyAnbGVmdCc6IHsgJ2Rpcic6ICdsZWZ0JywgJ2NvZGUnOiA5NyB9LCAncmlnaHQnOiB7ICdkaXInOiAncmlnaHQnLCAnY29kZSc6IDEwMCB9IH1cbiAgICAgKi9cbiAgICB2YXIga2V5QnkgPSBjcmVhdGVBZ2dyZWdhdG9yKGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xuICAgICAgYmFzZUFzc2lnblZhbHVlKHJlc3VsdCwga2V5LCB2YWx1ZSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHZhbHVlcyBieSBydW5uaW5nIGVhY2ggZWxlbWVudCBpbiBgY29sbGVjdGlvbmAgdGhydVxuICAgICAqIGBpdGVyYXRlZWAuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOlxuICAgICAqICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqIE1hbnkgbG9kYXNoIG1ldGhvZHMgYXJlIGd1YXJkZWQgdG8gd29yayBhcyBpdGVyYXRlZXMgZm9yIG1ldGhvZHMgbGlrZVxuICAgICAqIGBfLmV2ZXJ5YCwgYF8uZmlsdGVyYCwgYF8ubWFwYCwgYF8ubWFwVmFsdWVzYCwgYF8ucmVqZWN0YCwgYW5kIGBfLnNvbWVgLlxuICAgICAqXG4gICAgICogVGhlIGd1YXJkZWQgbWV0aG9kcyBhcmU6XG4gICAgICogYGFyeWAsIGBjaHVua2AsIGBjdXJyeWAsIGBjdXJyeVJpZ2h0YCwgYGRyb3BgLCBgZHJvcFJpZ2h0YCwgYGV2ZXJ5YCxcbiAgICAgKiBgZmlsbGAsIGBpbnZlcnRgLCBgcGFyc2VJbnRgLCBgcmFuZG9tYCwgYHJhbmdlYCwgYHJhbmdlUmlnaHRgLCBgcmVwZWF0YCxcbiAgICAgKiBgc2FtcGxlU2l6ZWAsIGBzbGljZWAsIGBzb21lYCwgYHNvcnRCeWAsIGBzcGxpdGAsIGB0YWtlYCwgYHRha2VSaWdodGAsXG4gICAgICogYHRlbXBsYXRlYCwgYHRyaW1gLCBgdHJpbUVuZGAsIGB0cmltU3RhcnRgLCBhbmQgYHdvcmRzYFxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBzcXVhcmUobikge1xuICAgICAqICAgcmV0dXJuIG4gKiBuO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIF8ubWFwKFs0LCA4XSwgc3F1YXJlKTtcbiAgICAgKiAvLyA9PiBbMTYsIDY0XVxuICAgICAqXG4gICAgICogXy5tYXAoeyAnYSc6IDQsICdiJzogOCB9LCBzcXVhcmUpO1xuICAgICAqIC8vID0+IFsxNiwgNjRdIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLm1hcCh1c2VycywgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiBbJ2Jhcm5leScsICdmcmVkJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5TWFwIDogYmFzZU1hcDtcbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5zb3J0QnlgIGV4Y2VwdCB0aGF0IGl0IGFsbG93cyBzcGVjaWZ5aW5nIHRoZSBzb3J0XG4gICAgICogb3JkZXJzIG9mIHRoZSBpdGVyYXRlZXMgdG8gc29ydCBieS4gSWYgYG9yZGVyc2AgaXMgdW5zcGVjaWZpZWQsIGFsbCB2YWx1ZXNcbiAgICAgKiBhcmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlci4gT3RoZXJ3aXNlLCBzcGVjaWZ5IGFuIG9yZGVyIG9mIFwiZGVzY1wiIGZvclxuICAgICAqIGRlc2NlbmRpbmcgb3IgXCJhc2NcIiBmb3IgYXNjZW5kaW5nIHNvcnQgb3JkZXIgb2YgY29ycmVzcG9uZGluZyB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0FycmF5W118RnVuY3Rpb25bXXxPYmplY3RbXXxzdHJpbmdbXX0gW2l0ZXJhdGVlcz1bXy5pZGVudGl0eV1dXG4gICAgICogIFRoZSBpdGVyYXRlZXMgdG8gc29ydCBieS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBbb3JkZXJzXSBUaGUgc29ydCBvcmRlcnMgb2YgYGl0ZXJhdGVlc2AuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ucmVkdWNlYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzb3J0ZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQ4IH0sXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNCB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDAgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gU29ydCBieSBgdXNlcmAgaW4gYXNjZW5kaW5nIG9yZGVyIGFuZCBieSBgYWdlYCBpbiBkZXNjZW5kaW5nIG9yZGVyLlxuICAgICAqIF8ub3JkZXJCeSh1c2VycywgWyd1c2VyJywgJ2FnZSddLCBbJ2FzYycsICdkZXNjJ10pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFtbJ2Jhcm5leScsIDM2XSwgWydiYXJuZXknLCAzNF0sIFsnZnJlZCcsIDQ4XSwgWydmcmVkJywgNDBdXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG9yZGVyQnkoY29sbGVjdGlvbiwgaXRlcmF0ZWVzLCBvcmRlcnMsIGd1YXJkKSB7XG4gICAgICBpZiAoY29sbGVjdGlvbiA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIGlmICghaXNBcnJheShpdGVyYXRlZXMpKSB7XG4gICAgICAgIGl0ZXJhdGVlcyA9IGl0ZXJhdGVlcyA9PSBudWxsID8gW10gOiBbaXRlcmF0ZWVzXTtcbiAgICAgIH1cbiAgICAgIG9yZGVycyA9IGd1YXJkID8gdW5kZWZpbmVkIDogb3JkZXJzO1xuICAgICAgaWYgKCFpc0FycmF5KG9yZGVycykpIHtcbiAgICAgICAgb3JkZXJzID0gb3JkZXJzID09IG51bGwgPyBbXSA6IFtvcmRlcnNdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VPcmRlckJ5KGNvbGxlY3Rpb24sIGl0ZXJhdGVlcywgb3JkZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGVsZW1lbnRzIHNwbGl0IGludG8gdHdvIGdyb3VwcywgdGhlIGZpcnN0IG9mIHdoaWNoXG4gICAgICogY29udGFpbnMgZWxlbWVudHMgYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yLCB0aGUgc2Vjb25kIG9mIHdoaWNoXG4gICAgICogY29udGFpbnMgZWxlbWVudHMgYHByZWRpY2F0ZWAgcmV0dXJucyBmYWxzZXkgZm9yLiBUaGUgcHJlZGljYXRlIGlzXG4gICAgICogaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIGdyb3VwZWQgZWxlbWVudHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWdlJzogNDAsICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWdlJzogMSwgICdhY3RpdmUnOiBmYWxzZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8ucGFydGl0aW9uKHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLmFjdGl2ZTsgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgW1snZnJlZCddLCBbJ2Jhcm5leScsICdwZWJibGVzJ11dXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ucGFydGl0aW9uKHVzZXJzLCB7ICdhZ2UnOiAxLCAnYWN0aXZlJzogZmFsc2UgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgW1sncGViYmxlcyddLCBbJ2Jhcm5leScsICdmcmVkJ11dXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5wYXJ0aXRpb24odXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbWydiYXJuZXknLCAncGViYmxlcyddLCBbJ2ZyZWQnXV1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ucGFydGl0aW9uKHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgW1snZnJlZCddLCBbJ2Jhcm5leScsICdwZWJibGVzJ11dXG4gICAgICovXG4gICAgdmFyIHBhcnRpdGlvbiA9IGNyZWF0ZUFnZ3JlZ2F0b3IoZnVuY3Rpb24ocmVzdWx0LCB2YWx1ZSwga2V5KSB7XG4gICAgICByZXN1bHRba2V5ID8gMCA6IDFdLnB1c2godmFsdWUpO1xuICAgIH0sIGZ1bmN0aW9uKCkgeyByZXR1cm4gW1tdLCBbXV07IH0pO1xuXG4gICAgLyoqXG4gICAgICogUmVkdWNlcyBgY29sbGVjdGlvbmAgdG8gYSB2YWx1ZSB3aGljaCBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0IG9mIHJ1bm5pbmdcbiAgICAgKiBlYWNoIGVsZW1lbnQgaW4gYGNvbGxlY3Rpb25gIHRocnUgYGl0ZXJhdGVlYCwgd2hlcmUgZWFjaCBzdWNjZXNzaXZlXG4gICAgICogaW52b2NhdGlvbiBpcyBzdXBwbGllZCB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBwcmV2aW91cy4gSWYgYGFjY3VtdWxhdG9yYFxuICAgICAqIGlzIG5vdCBnaXZlbiwgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYGNvbGxlY3Rpb25gIGlzIHVzZWQgYXMgdGhlIGluaXRpYWxcbiAgICAgKiB2YWx1ZS4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBmb3VyIGFyZ3VtZW50czpcbiAgICAgKiAoYWNjdW11bGF0b3IsIHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogTWFueSBsb2Rhc2ggbWV0aG9kcyBhcmUgZ3VhcmRlZCB0byB3b3JrIGFzIGl0ZXJhdGVlcyBmb3IgbWV0aG9kcyBsaWtlXG4gICAgICogYF8ucmVkdWNlYCwgYF8ucmVkdWNlUmlnaHRgLCBhbmQgYF8udHJhbnNmb3JtYC5cbiAgICAgKlxuICAgICAqIFRoZSBndWFyZGVkIG1ldGhvZHMgYXJlOlxuICAgICAqIGBhc3NpZ25gLCBgZGVmYXVsdHNgLCBgZGVmYXVsdHNEZWVwYCwgYGluY2x1ZGVzYCwgYG1lcmdlYCwgYG9yZGVyQnlgLFxuICAgICAqIGFuZCBgc29ydEJ5YFxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbYWNjdW11bGF0b3JdIFRoZSBpbml0aWFsIHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAgICAgKiBAc2VlIF8ucmVkdWNlUmlnaHRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5yZWR1Y2UoWzEsIDJdLCBmdW5jdGlvbihzdW0sIG4pIHtcbiAgICAgKiAgIHJldHVybiBzdW0gKyBuO1xuICAgICAqIH0sIDApO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIF8ucmVkdWNlKHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMSB9LCBmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcbiAgICAgKiAgIChyZXN1bHRbdmFsdWVdIHx8IChyZXN1bHRbdmFsdWVdID0gW10pKS5wdXNoKGtleSk7XG4gICAgICogICByZXR1cm4gcmVzdWx0O1xuICAgICAqIH0sIHt9KTtcbiAgICAgKiAvLyA9PiB7ICcxJzogWydhJywgJ2MnXSwgJzInOiBbJ2InXSB9IChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVkdWNlKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCBhY2N1bXVsYXRvcikge1xuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlSZWR1Y2UgOiBiYXNlUmVkdWNlLFxuICAgICAgICAgIGluaXRBY2N1bSA9IGFyZ3VtZW50cy5sZW5ndGggPCAzO1xuXG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgNCksIGFjY3VtdWxhdG9yLCBpbml0QWNjdW0sIGJhc2VFYWNoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnJlZHVjZWAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZlxuICAgICAqIGBjb2xsZWN0aW9uYCBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gVGhlIGluaXRpYWwgdmFsdWUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgICAqIEBzZWUgXy5yZWR1Y2VcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gW1swLCAxXSwgWzIsIDNdLCBbNCwgNV1dO1xuICAgICAqXG4gICAgICogXy5yZWR1Y2VSaWdodChhcnJheSwgZnVuY3Rpb24oZmxhdHRlbmVkLCBvdGhlcikge1xuICAgICAqICAgcmV0dXJuIGZsYXR0ZW5lZC5jb25jYXQob3RoZXIpO1xuICAgICAqIH0sIFtdKTtcbiAgICAgKiAvLyA9PiBbNCwgNSwgMiwgMywgMCwgMV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZWR1Y2VSaWdodChjb2xsZWN0aW9uLCBpdGVyYXRlZSwgYWNjdW11bGF0b3IpIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5UmVkdWNlUmlnaHQgOiBiYXNlUmVkdWNlLFxuICAgICAgICAgIGluaXRBY2N1bSA9IGFyZ3VtZW50cy5sZW5ndGggPCAzO1xuXG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgNCksIGFjY3VtdWxhdG9yLCBpbml0QWNjdW0sIGJhc2VFYWNoUmlnaHQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHBvc2l0ZSBvZiBgXy5maWx0ZXJgOyB0aGlzIG1ldGhvZCByZXR1cm5zIHRoZSBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmBcbiAgICAgKiB0aGF0IGBwcmVkaWNhdGVgIGRvZXMgKipub3QqKiByZXR1cm4gdHJ1dGh5IGZvci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmaWx0ZXJlZCBhcnJheS5cbiAgICAgKiBAc2VlIF8uZmlsdGVyXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2LCAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogdHJ1ZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8ucmVqZWN0KHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiAhby5hY3RpdmU7IH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ucmVqZWN0KHVzZXJzLCB7ICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IHRydWUgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydiYXJuZXknXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ucmVqZWN0KHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydmcmVkJ11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ucmVqZWN0KHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydiYXJuZXknXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlamVjdChjb2xsZWN0aW9uLCBwcmVkaWNhdGUpIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5RmlsdGVyIDogYmFzZUZpbHRlcjtcbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIG5lZ2F0ZShnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIHJhbmRvbSBlbGVtZW50IGZyb20gYGNvbGxlY3Rpb25gLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuMC4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzYW1wbGUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJhbmRvbSBlbGVtZW50LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNhbXBsZShbMSwgMiwgMywgNF0pO1xuICAgICAqIC8vID0+IDJcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzYW1wbGUoY29sbGVjdGlvbikge1xuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlTYW1wbGUgOiBiYXNlU2FtcGxlO1xuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBgbmAgcmFuZG9tIGVsZW1lbnRzIGF0IHVuaXF1ZSBrZXlzIGZyb20gYGNvbGxlY3Rpb25gIHVwIHRvIHRoZVxuICAgICAqIHNpemUgb2YgYGNvbGxlY3Rpb25gLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzYW1wbGUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuPTFdIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gc2FtcGxlLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSByYW5kb20gZWxlbWVudHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc2FtcGxlU2l6ZShbMSwgMiwgM10sIDIpO1xuICAgICAqIC8vID0+IFszLCAxXVxuICAgICAqXG4gICAgICogXy5zYW1wbGVTaXplKFsxLCAyLCAzXSwgNCk7XG4gICAgICogLy8gPT4gWzIsIDMsIDFdXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2FtcGxlU2l6ZShjb2xsZWN0aW9uLCBuLCBndWFyZCkge1xuICAgICAgaWYgKChndWFyZCA/IGlzSXRlcmF0ZWVDYWxsKGNvbGxlY3Rpb24sIG4sIGd1YXJkKSA6IG4gPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgbiA9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuID0gdG9JbnRlZ2VyKG4pO1xuICAgICAgfVxuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlTYW1wbGVTaXplIDogYmFzZVNhbXBsZVNpemU7XG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBuKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHNodWZmbGVkIHZhbHVlcywgdXNpbmcgYSB2ZXJzaW9uIG9mIHRoZVxuICAgICAqIFtGaXNoZXItWWF0ZXMgc2h1ZmZsZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRmlzaGVyLVlhdGVzX3NodWZmbGUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzaHVmZmxlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHNodWZmbGVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNodWZmbGUoWzEsIDIsIDMsIDRdKTtcbiAgICAgKiAvLyA9PiBbNCwgMSwgMywgMl1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzaHVmZmxlKGNvbGxlY3Rpb24pIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5U2h1ZmZsZSA6IGJhc2VTaHVmZmxlO1xuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgc2l6ZSBvZiBgY29sbGVjdGlvbmAgYnkgcmV0dXJuaW5nIGl0cyBsZW5ndGggZm9yIGFycmF5LWxpa2VcbiAgICAgKiB2YWx1ZXMgb3IgdGhlIG51bWJlciBvZiBvd24gZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydGllcyBmb3Igb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgY29sbGVjdGlvbiBzaXplLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNpemUoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICpcbiAgICAgKiBfLnNpemUoeyAnYSc6IDEsICdiJzogMiB9KTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICpcbiAgICAgKiBfLnNpemUoJ3BlYmJsZXMnKTtcbiAgICAgKiAvLyA9PiA3XG4gICAgICovXG4gICAgZnVuY3Rpb24gc2l6ZShjb2xsZWN0aW9uKSB7XG4gICAgICBpZiAoY29sbGVjdGlvbiA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuICAgICAgaWYgKGlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pKSB7XG4gICAgICAgIHJldHVybiBpc1N0cmluZyhjb2xsZWN0aW9uKSA/IHN0cmluZ1NpemUoY29sbGVjdGlvbikgOiBjb2xsZWN0aW9uLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIHZhciB0YWcgPSBnZXRUYWcoY29sbGVjdGlvbik7XG4gICAgICBpZiAodGFnID09IG1hcFRhZyB8fCB0YWcgPT0gc2V0VGFnKSB7XG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uLnNpemU7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZUtleXMoY29sbGVjdGlvbikubGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IgKiphbnkqKiBlbGVtZW50IG9mIGBjb2xsZWN0aW9uYC5cbiAgICAgKiBJdGVyYXRpb24gaXMgc3RvcHBlZCBvbmNlIGBwcmVkaWNhdGVgIHJldHVybnMgdHJ1dGh5LiBUaGUgcHJlZGljYXRlIGlzXG4gICAgICogaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFueSBlbGVtZW50IHBhc3NlcyB0aGUgcHJlZGljYXRlIGNoZWNrLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc29tZShbbnVsbCwgMCwgJ3llcycsIGZhbHNlXSwgQm9vbGVhbik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uc29tZSh1c2VycywgeyAndXNlcic6ICdiYXJuZXknLCAnYWN0aXZlJzogZmFsc2UgfSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnNvbWUodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnNvbWUodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gc29tZShjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIGd1YXJkKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheVNvbWUgOiBiYXNlU29tZTtcbiAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIGd1YXJkKSkge1xuICAgICAgICBwcmVkaWNhdGUgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGVsZW1lbnRzLCBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIGJ5IHRoZSByZXN1bHRzIG9mXG4gICAgICogcnVubmluZyBlYWNoIGVsZW1lbnQgaW4gYSBjb2xsZWN0aW9uIHRocnUgZWFjaCBpdGVyYXRlZS4gVGhpcyBtZXRob2RcbiAgICAgKiBwZXJmb3JtcyBhIHN0YWJsZSBzb3J0LCB0aGF0IGlzLCBpdCBwcmVzZXJ2ZXMgdGhlIG9yaWdpbmFsIHNvcnQgb3JkZXIgb2ZcbiAgICAgKiBlcXVhbCBlbGVtZW50cy4gVGhlIGl0ZXJhdGVlcyBhcmUgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7Li4uKEZ1bmN0aW9ufEZ1bmN0aW9uW10pfSBbaXRlcmF0ZWVzPVtfLmlkZW50aXR5XV1cbiAgICAgKiAgVGhlIGl0ZXJhdGVlcyB0byBzb3J0IGJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHNvcnRlZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDggfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiAzMCB9LFxuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzQgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLnNvcnRCeSh1c2VycywgW2Z1bmN0aW9uKG8pIHsgcmV0dXJuIG8udXNlcjsgfV0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFtbJ2Jhcm5leScsIDM2XSwgWydiYXJuZXknLCAzNF0sIFsnZnJlZCcsIDQ4XSwgWydmcmVkJywgMzBdXVxuICAgICAqXG4gICAgICogXy5zb3J0QnkodXNlcnMsIFsndXNlcicsICdhZ2UnXSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgW1snYmFybmV5JywgMzRdLCBbJ2Jhcm5leScsIDM2XSwgWydmcmVkJywgMzBdLCBbJ2ZyZWQnLCA0OF1dXG4gICAgICovXG4gICAgdmFyIHNvcnRCeSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGNvbGxlY3Rpb24sIGl0ZXJhdGVlcykge1xuICAgICAgaWYgKGNvbGxlY3Rpb24gPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICB2YXIgbGVuZ3RoID0gaXRlcmF0ZWVzLmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGggPiAxICYmIGlzSXRlcmF0ZWVDYWxsKGNvbGxlY3Rpb24sIGl0ZXJhdGVlc1swXSwgaXRlcmF0ZWVzWzFdKSkge1xuICAgICAgICBpdGVyYXRlZXMgPSBbXTtcbiAgICAgIH0gZWxzZSBpZiAobGVuZ3RoID4gMiAmJiBpc0l0ZXJhdGVlQ2FsbChpdGVyYXRlZXNbMF0sIGl0ZXJhdGVlc1sxXSwgaXRlcmF0ZWVzWzJdKSkge1xuICAgICAgICBpdGVyYXRlZXMgPSBbaXRlcmF0ZWVzWzBdXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlT3JkZXJCeShjb2xsZWN0aW9uLCBiYXNlRmxhdHRlbihpdGVyYXRlZXMsIDEpLCBbXSk7XG4gICAgfSk7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB0aW1lc3RhbXAgb2YgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdGhhdCBoYXZlIGVsYXBzZWQgc2luY2VcbiAgICAgKiB0aGUgVW5peCBlcG9jaCAoMSBKYW51YXJ5IDE5NzAgMDA6MDA6MDAgVVRDKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjQuMFxuICAgICAqIEBjYXRlZ29yeSBEYXRlXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgdGltZXN0YW1wLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRlZmVyKGZ1bmN0aW9uKHN0YW1wKSB7XG4gICAgICogICBjb25zb2xlLmxvZyhfLm5vdygpIC0gc3RhbXApO1xuICAgICAqIH0sIF8ubm93KCkpO1xuICAgICAqIC8vID0+IExvZ3MgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaXQgdG9vayBmb3IgdGhlIGRlZmVycmVkIGludm9jYXRpb24uXG4gICAgICovXG4gICAgdmFyIG5vdyA9IGN0eE5vdyB8fCBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiByb290LkRhdGUubm93KCk7XG4gICAgfTtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHBvc2l0ZSBvZiBgXy5iZWZvcmVgOyB0aGlzIG1ldGhvZCBjcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzXG4gICAgICogYGZ1bmNgIG9uY2UgaXQncyBjYWxsZWQgYG5gIG9yIG1vcmUgdGltZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGNhbGxzIGJlZm9yZSBgZnVuY2AgaXMgaW52b2tlZC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byByZXN0cmljdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyByZXN0cmljdGVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgc2F2ZXMgPSBbJ3Byb2ZpbGUnLCAnc2V0dGluZ3MnXTtcbiAgICAgKlxuICAgICAqIHZhciBkb25lID0gXy5hZnRlcihzYXZlcy5sZW5ndGgsIGZ1bmN0aW9uKCkge1xuICAgICAqICAgY29uc29sZS5sb2coJ2RvbmUgc2F2aW5nIScpO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogXy5mb3JFYWNoKHNhdmVzLCBmdW5jdGlvbih0eXBlKSB7XG4gICAgICogICBhc3luY1NhdmUoeyAndHlwZSc6IHR5cGUsICdjb21wbGV0ZSc6IGRvbmUgfSk7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gTG9ncyAnZG9uZSBzYXZpbmchJyBhZnRlciB0aGUgdHdvIGFzeW5jIHNhdmVzIGhhdmUgY29tcGxldGVkLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFmdGVyKG4sIGZ1bmMpIHtcbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIG4gPSB0b0ludGVnZXIobik7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICgtLW4gPCAxKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCwgd2l0aCB1cCB0byBgbmAgYXJndW1lbnRzLFxuICAgICAqIGlnbm9yaW5nIGFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNhcCBhcmd1bWVudHMgZm9yLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj1mdW5jLmxlbmd0aF0gVGhlIGFyaXR5IGNhcC5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNhcHBlZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5tYXAoWyc2JywgJzgnLCAnMTAnXSwgXy5hcnkocGFyc2VJbnQsIDEpKTtcbiAgICAgKiAvLyA9PiBbNiwgOCwgMTBdXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJ5KGZ1bmMsIG4sIGd1YXJkKSB7XG4gICAgICBuID0gZ3VhcmQgPyB1bmRlZmluZWQgOiBuO1xuICAgICAgbiA9IChmdW5jICYmIG4gPT0gbnVsbCkgPyBmdW5jLmxlbmd0aCA6IG47XG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChmdW5jLCBXUkFQX0FSWV9GTEFHLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIG4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgLCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBhbmQgYXJndW1lbnRzXG4gICAgICogb2YgdGhlIGNyZWF0ZWQgZnVuY3Rpb24sIHdoaWxlIGl0J3MgY2FsbGVkIGxlc3MgdGhhbiBgbmAgdGltZXMuIFN1YnNlcXVlbnRcbiAgICAgKiBjYWxscyB0byB0aGUgY3JlYXRlZCBmdW5jdGlvbiByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBgZnVuY2AgaW52b2NhdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgY2FsbHMgYXQgd2hpY2ggYGZ1bmNgIGlzIG5vIGxvbmdlciBpbnZva2VkLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHJlc3RyaWN0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHJlc3RyaWN0ZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGpRdWVyeShlbGVtZW50KS5vbignY2xpY2snLCBfLmJlZm9yZSg1LCBhZGRDb250YWN0VG9MaXN0KSk7XG4gICAgICogLy8gPT4gQWxsb3dzIGFkZGluZyB1cCB0byA0IGNvbnRhY3RzIHRvIHRoZSBsaXN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJlZm9yZShuLCBmdW5jKSB7XG4gICAgICB2YXIgcmVzdWx0O1xuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgfVxuICAgICAgbiA9IHRvSW50ZWdlcihuKTtcbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKC0tbiA+IDApIHtcbiAgICAgICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG4gPD0gMSkge1xuICAgICAgICAgIGZ1bmMgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgYHRoaXNBcmdgXG4gICAgICogYW5kIGBwYXJ0aWFsc2AgcHJlcGVuZGVkIHRvIHRoZSBhcmd1bWVudHMgaXQgcmVjZWl2ZXMuXG4gICAgICpcbiAgICAgKiBUaGUgYF8uYmluZC5wbGFjZWhvbGRlcmAgdmFsdWUsIHdoaWNoIGRlZmF1bHRzIHRvIGBfYCBpbiBtb25vbGl0aGljIGJ1aWxkcyxcbiAgICAgKiBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIG5hdGl2ZSBgRnVuY3Rpb24jYmluZGAsIHRoaXMgbWV0aG9kIGRvZXNuJ3Qgc2V0IHRoZSBcImxlbmd0aFwiXG4gICAgICogcHJvcGVydHkgb2YgYm91bmQgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYmluZC5cbiAgICAgKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0gey4uLip9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBiZSBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBib3VuZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gZ3JlZXQoZ3JlZXRpbmcsIHB1bmN0dWF0aW9uKSB7XG4gICAgICogICByZXR1cm4gZ3JlZXRpbmcgKyAnICcgKyB0aGlzLnVzZXIgKyBwdW5jdHVhdGlvbjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAndXNlcic6ICdmcmVkJyB9O1xuICAgICAqXG4gICAgICogdmFyIGJvdW5kID0gXy5iaW5kKGdyZWV0LCBvYmplY3QsICdoaScpO1xuICAgICAqIGJvdW5kKCchJyk7XG4gICAgICogLy8gPT4gJ2hpIGZyZWQhJ1xuICAgICAqXG4gICAgICogLy8gQm91bmQgd2l0aCBwbGFjZWhvbGRlcnMuXG4gICAgICogdmFyIGJvdW5kID0gXy5iaW5kKGdyZWV0LCBvYmplY3QsIF8sICchJyk7XG4gICAgICogYm91bmQoJ2hpJyk7XG4gICAgICogLy8gPT4gJ2hpIGZyZWQhJ1xuICAgICAqL1xuICAgIHZhciBiaW5kID0gYmFzZVJlc3QoZnVuY3Rpb24oZnVuYywgdGhpc0FyZywgcGFydGlhbHMpIHtcbiAgICAgIHZhciBiaXRtYXNrID0gV1JBUF9CSU5EX0ZMQUc7XG4gICAgICBpZiAocGFydGlhbHMubGVuZ3RoKSB7XG4gICAgICAgIHZhciBob2xkZXJzID0gcmVwbGFjZUhvbGRlcnMocGFydGlhbHMsIGdldEhvbGRlcihiaW5kKSk7XG4gICAgICAgIGJpdG1hc2sgfD0gV1JBUF9QQVJUSUFMX0ZMQUc7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBwYXJ0aWFscywgaG9sZGVycyk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIHRoZSBtZXRob2QgYXQgYG9iamVjdFtrZXldYCB3aXRoIGBwYXJ0aWFsc2BcbiAgICAgKiBwcmVwZW5kZWQgdG8gdGhlIGFyZ3VtZW50cyBpdCByZWNlaXZlcy5cbiAgICAgKlxuICAgICAqIFRoaXMgbWV0aG9kIGRpZmZlcnMgZnJvbSBgXy5iaW5kYCBieSBhbGxvd2luZyBib3VuZCBmdW5jdGlvbnMgdG8gcmVmZXJlbmNlXG4gICAgICogbWV0aG9kcyB0aGF0IG1heSBiZSByZWRlZmluZWQgb3IgZG9uJ3QgeWV0IGV4aXN0LiBTZWVcbiAgICAgKiBbUGV0ZXIgTWljaGF1eCdzIGFydGljbGVdKGh0dHA6Ly9wZXRlci5taWNoYXV4LmNhL2FydGljbGVzL2xhenktZnVuY3Rpb24tZGVmaW5pdGlvbi1wYXR0ZXJuKVxuICAgICAqIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICpcbiAgICAgKiBUaGUgYF8uYmluZEtleS5wbGFjZWhvbGRlcmAgdmFsdWUsIHdoaWNoIGRlZmF1bHRzIHRvIGBfYCBpbiBtb25vbGl0aGljXG4gICAgICogYnVpbGRzLCBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xMC4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGludm9rZSB0aGUgbWV0aG9kIG9uLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgbWV0aG9kLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW3BhcnRpYWxzXSBUaGUgYXJndW1lbnRzIHRvIGJlIHBhcnRpYWxseSBhcHBsaWVkLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGJvdW5kIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0ge1xuICAgICAqICAgJ3VzZXInOiAnZnJlZCcsXG4gICAgICogICAnZ3JlZXQnOiBmdW5jdGlvbihncmVldGluZywgcHVuY3R1YXRpb24pIHtcbiAgICAgKiAgICAgcmV0dXJuIGdyZWV0aW5nICsgJyAnICsgdGhpcy51c2VyICsgcHVuY3R1YXRpb247XG4gICAgICogICB9XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHZhciBib3VuZCA9IF8uYmluZEtleShvYmplY3QsICdncmVldCcsICdoaScpO1xuICAgICAqIGJvdW5kKCchJyk7XG4gICAgICogLy8gPT4gJ2hpIGZyZWQhJ1xuICAgICAqXG4gICAgICogb2JqZWN0LmdyZWV0ID0gZnVuY3Rpb24oZ3JlZXRpbmcsIHB1bmN0dWF0aW9uKSB7XG4gICAgICogICByZXR1cm4gZ3JlZXRpbmcgKyAneWEgJyArIHRoaXMudXNlciArIHB1bmN0dWF0aW9uO1xuICAgICAqIH07XG4gICAgICpcbiAgICAgKiBib3VuZCgnIScpO1xuICAgICAqIC8vID0+ICdoaXlhIGZyZWQhJ1xuICAgICAqXG4gICAgICogLy8gQm91bmQgd2l0aCBwbGFjZWhvbGRlcnMuXG4gICAgICogdmFyIGJvdW5kID0gXy5iaW5kS2V5KG9iamVjdCwgJ2dyZWV0JywgXywgJyEnKTtcbiAgICAgKiBib3VuZCgnaGknKTtcbiAgICAgKiAvLyA9PiAnaGl5YSBmcmVkISdcbiAgICAgKi9cbiAgICB2YXIgYmluZEtleSA9IGJhc2VSZXN0KGZ1bmN0aW9uKG9iamVjdCwga2V5LCBwYXJ0aWFscykge1xuICAgICAgdmFyIGJpdG1hc2sgPSBXUkFQX0JJTkRfRkxBRyB8IFdSQVBfQklORF9LRVlfRkxBRztcbiAgICAgIGlmIChwYXJ0aWFscy5sZW5ndGgpIHtcbiAgICAgICAgdmFyIGhvbGRlcnMgPSByZXBsYWNlSG9sZGVycyhwYXJ0aWFscywgZ2V0SG9sZGVyKGJpbmRLZXkpKTtcbiAgICAgICAgYml0bWFzayB8PSBXUkFQX1BBUlRJQUxfRkxBRztcbiAgICAgIH1cbiAgICAgIHJldHVybiBjcmVhdGVXcmFwKGtleSwgYml0bWFzaywgb2JqZWN0LCBwYXJ0aWFscywgaG9sZGVycyk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIGFyZ3VtZW50cyBvZiBgZnVuY2AgYW5kIGVpdGhlciBpbnZva2VzXG4gICAgICogYGZ1bmNgIHJldHVybmluZyBpdHMgcmVzdWx0LCBpZiBhdCBsZWFzdCBgYXJpdHlgIG51bWJlciBvZiBhcmd1bWVudHMgaGF2ZVxuICAgICAqIGJlZW4gcHJvdmlkZWQsIG9yIHJldHVybnMgYSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdGhlIHJlbWFpbmluZyBgZnVuY2BcbiAgICAgKiBhcmd1bWVudHMsIGFuZCBzbyBvbi4gVGhlIGFyaXR5IG9mIGBmdW5jYCBtYXkgYmUgc3BlY2lmaWVkIGlmIGBmdW5jLmxlbmd0aGBcbiAgICAgKiBpcyBub3Qgc3VmZmljaWVudC5cbiAgICAgKlxuICAgICAqIFRoZSBgXy5jdXJyeS5wbGFjZWhvbGRlcmAgdmFsdWUsIHdoaWNoIGRlZmF1bHRzIHRvIGBfYCBpbiBtb25vbGl0aGljIGJ1aWxkcyxcbiAgICAgKiBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwcm92aWRlZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgZG9lc24ndCBzZXQgdGhlIFwibGVuZ3RoXCIgcHJvcGVydHkgb2YgY3VycmllZCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjdXJyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyaXR5PWZ1bmMubGVuZ3RoXSBUaGUgYXJpdHkgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY3VycmllZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFiYyA9IGZ1bmN0aW9uKGEsIGIsIGMpIHtcbiAgICAgKiAgIHJldHVybiBbYSwgYiwgY107XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHZhciBjdXJyaWVkID0gXy5jdXJyeShhYmMpO1xuICAgICAqXG4gICAgICogY3VycmllZCgxKSgyKSgzKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIGN1cnJpZWQoMSwgMikoMyk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICpcbiAgICAgKiBjdXJyaWVkKDEsIDIsIDMpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogLy8gQ3VycmllZCB3aXRoIHBsYWNlaG9sZGVycy5cbiAgICAgKiBjdXJyaWVkKDEpKF8sIDMpKDIpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGN1cnJ5KGZ1bmMsIGFyaXR5LCBndWFyZCkge1xuICAgICAgYXJpdHkgPSBndWFyZCA/IHVuZGVmaW5lZCA6IGFyaXR5O1xuICAgICAgdmFyIHJlc3VsdCA9IGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9DVVJSWV9GTEFHLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgYXJpdHkpO1xuICAgICAgcmVzdWx0LnBsYWNlaG9sZGVyID0gY3VycnkucGxhY2Vob2xkZXI7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uY3VycnlgIGV4Y2VwdCB0aGF0IGFyZ3VtZW50cyBhcmUgYXBwbGllZCB0byBgZnVuY2BcbiAgICAgKiBpbiB0aGUgbWFubmVyIG9mIGBfLnBhcnRpYWxSaWdodGAgaW5zdGVhZCBvZiBgXy5wYXJ0aWFsYC5cbiAgICAgKlxuICAgICAqIFRoZSBgXy5jdXJyeVJpZ2h0LnBsYWNlaG9sZGVyYCB2YWx1ZSwgd2hpY2ggZGVmYXVsdHMgdG8gYF9gIGluIG1vbm9saXRoaWNcbiAgICAgKiBidWlsZHMsIG1heSBiZSB1c2VkIGFzIGEgcGxhY2Vob2xkZXIgZm9yIHByb3ZpZGVkIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBkb2Vzbid0IHNldCB0aGUgXCJsZW5ndGhcIiBwcm9wZXJ0eSBvZiBjdXJyaWVkIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGN1cnJ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJpdHk9ZnVuYy5sZW5ndGhdIFRoZSBhcml0eSBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjdXJyaWVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYWJjID0gZnVuY3Rpb24oYSwgYiwgYykge1xuICAgICAqICAgcmV0dXJuIFthLCBiLCBjXTtcbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogdmFyIGN1cnJpZWQgPSBfLmN1cnJ5UmlnaHQoYWJjKTtcbiAgICAgKlxuICAgICAqIGN1cnJpZWQoMykoMikoMSk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICpcbiAgICAgKiBjdXJyaWVkKDIsIDMpKDEpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogY3VycmllZCgxLCAyLCAzKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIC8vIEN1cnJpZWQgd2l0aCBwbGFjZWhvbGRlcnMuXG4gICAgICogY3VycmllZCgzKSgxLCBfKSgyKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjdXJyeVJpZ2h0KGZ1bmMsIGFyaXR5LCBndWFyZCkge1xuICAgICAgYXJpdHkgPSBndWFyZCA/IHVuZGVmaW5lZCA6IGFyaXR5O1xuICAgICAgdmFyIHJlc3VsdCA9IGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9DVVJSWV9SSUdIVF9GTEFHLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgYXJpdHkpO1xuICAgICAgcmVzdWx0LnBsYWNlaG9sZGVyID0gY3VycnlSaWdodC5wbGFjZWhvbGRlcjtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGRlYm91bmNlZCBmdW5jdGlvbiB0aGF0IGRlbGF5cyBpbnZva2luZyBgZnVuY2AgdW50aWwgYWZ0ZXIgYHdhaXRgXG4gICAgICogbWlsbGlzZWNvbmRzIGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCB0aW1lIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gd2FzXG4gICAgICogaW52b2tlZC4gVGhlIGRlYm91bmNlZCBmdW5jdGlvbiBjb21lcyB3aXRoIGEgYGNhbmNlbGAgbWV0aG9kIHRvIGNhbmNlbFxuICAgICAqIGRlbGF5ZWQgYGZ1bmNgIGludm9jYXRpb25zIGFuZCBhIGBmbHVzaGAgbWV0aG9kIHRvIGltbWVkaWF0ZWx5IGludm9rZSB0aGVtLlxuICAgICAqIFByb3ZpZGUgYG9wdGlvbnNgIHRvIGluZGljYXRlIHdoZXRoZXIgYGZ1bmNgIHNob3VsZCBiZSBpbnZva2VkIG9uIHRoZVxuICAgICAqIGxlYWRpbmcgYW5kL29yIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIGB3YWl0YCB0aW1lb3V0LiBUaGUgYGZ1bmNgIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHRoZSBsYXN0IGFyZ3VtZW50cyBwcm92aWRlZCB0byB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uLiBTdWJzZXF1ZW50XG4gICAgICogY2FsbHMgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbiByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBgZnVuY2BcbiAgICAgKiBpbnZvY2F0aW9uLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIElmIGBsZWFkaW5nYCBhbmQgYHRyYWlsaW5nYCBvcHRpb25zIGFyZSBgdHJ1ZWAsIGBmdW5jYCBpc1xuICAgICAqIGludm9rZWQgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQgb25seSBpZiB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uXG4gICAgICogaXMgaW52b2tlZCBtb3JlIHRoYW4gb25jZSBkdXJpbmcgdGhlIGB3YWl0YCB0aW1lb3V0LlxuICAgICAqXG4gICAgICogSWYgYHdhaXRgIGlzIGAwYCBhbmQgYGxlYWRpbmdgIGlzIGBmYWxzZWAsIGBmdW5jYCBpbnZvY2F0aW9uIGlzIGRlZmVycmVkXG4gICAgICogdW50aWwgdG8gdGhlIG5leHQgdGljaywgc2ltaWxhciB0byBgc2V0VGltZW91dGAgd2l0aCBhIHRpbWVvdXQgb2YgYDBgLlxuICAgICAqXG4gICAgICogU2VlIFtEYXZpZCBDb3JiYWNobydzIGFydGljbGVdKGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vZGVib3VuY2luZy10aHJvdHRsaW5nLWV4cGxhaW5lZC1leGFtcGxlcy8pXG4gICAgICogZm9yIGRldGFpbHMgb3ZlciB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBgXy5kZWJvdW5jZWAgYW5kIGBfLnRocm90dGxlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRlYm91bmNlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbd2FpdD0wXSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlYWRpbmc9ZmFsc2VdXG4gICAgICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIGxlYWRpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4V2FpdF1cbiAgICAgKiAgVGhlIG1heGltdW0gdGltZSBgZnVuY2AgaXMgYWxsb3dlZCB0byBiZSBkZWxheWVkIGJlZm9yZSBpdCdzIGludm9rZWQuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy50cmFpbGluZz10cnVlXVxuICAgICAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGRlYm91bmNlZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gQXZvaWQgY29zdGx5IGNhbGN1bGF0aW9ucyB3aGlsZSB0aGUgd2luZG93IHNpemUgaXMgaW4gZmx1eC5cbiAgICAgKiBqUXVlcnkod2luZG93KS5vbigncmVzaXplJywgXy5kZWJvdW5jZShjYWxjdWxhdGVMYXlvdXQsIDE1MCkpO1xuICAgICAqXG4gICAgICogLy8gSW52b2tlIGBzZW5kTWFpbGAgd2hlbiBjbGlja2VkLCBkZWJvdW5jaW5nIHN1YnNlcXVlbnQgY2FsbHMuXG4gICAgICogalF1ZXJ5KGVsZW1lbnQpLm9uKCdjbGljaycsIF8uZGVib3VuY2Uoc2VuZE1haWwsIDMwMCwge1xuICAgICAqICAgJ2xlYWRpbmcnOiB0cnVlLFxuICAgICAqICAgJ3RyYWlsaW5nJzogZmFsc2VcbiAgICAgKiB9KSk7XG4gICAgICpcbiAgICAgKiAvLyBFbnN1cmUgYGJhdGNoTG9nYCBpcyBpbnZva2VkIG9uY2UgYWZ0ZXIgMSBzZWNvbmQgb2YgZGVib3VuY2VkIGNhbGxzLlxuICAgICAqIHZhciBkZWJvdW5jZWQgPSBfLmRlYm91bmNlKGJhdGNoTG9nLCAyNTAsIHsgJ21heFdhaXQnOiAxMDAwIH0pO1xuICAgICAqIHZhciBzb3VyY2UgPSBuZXcgRXZlbnRTb3VyY2UoJy9zdHJlYW0nKTtcbiAgICAgKiBqUXVlcnkoc291cmNlKS5vbignbWVzc2FnZScsIGRlYm91bmNlZCk7XG4gICAgICpcbiAgICAgKiAvLyBDYW5jZWwgdGhlIHRyYWlsaW5nIGRlYm91bmNlZCBpbnZvY2F0aW9uLlxuICAgICAqIGpRdWVyeSh3aW5kb3cpLm9uKCdwb3BzdGF0ZScsIGRlYm91bmNlZC5jYW5jZWwpO1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRlYm91bmNlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBsYXN0QXJncyxcbiAgICAgICAgICBsYXN0VGhpcyxcbiAgICAgICAgICBtYXhXYWl0LFxuICAgICAgICAgIHJlc3VsdCxcbiAgICAgICAgICB0aW1lcklkLFxuICAgICAgICAgIGxhc3RDYWxsVGltZSxcbiAgICAgICAgICBsYXN0SW52b2tlVGltZSA9IDAsXG4gICAgICAgICAgbGVhZGluZyA9IGZhbHNlLFxuICAgICAgICAgIG1heGluZyA9IGZhbHNlLFxuICAgICAgICAgIHRyYWlsaW5nID0gdHJ1ZTtcblxuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgfVxuICAgICAgd2FpdCA9IHRvTnVtYmVyKHdhaXQpIHx8IDA7XG4gICAgICBpZiAoaXNPYmplY3Qob3B0aW9ucykpIHtcbiAgICAgICAgbGVhZGluZyA9ICEhb3B0aW9ucy5sZWFkaW5nO1xuICAgICAgICBtYXhpbmcgPSAnbWF4V2FpdCcgaW4gb3B0aW9ucztcbiAgICAgICAgbWF4V2FpdCA9IG1heGluZyA/IG5hdGl2ZU1heCh0b051bWJlcihvcHRpb25zLm1heFdhaXQpIHx8IDAsIHdhaXQpIDogbWF4V2FpdDtcbiAgICAgICAgdHJhaWxpbmcgPSAndHJhaWxpbmcnIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMudHJhaWxpbmcgOiB0cmFpbGluZztcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gaW52b2tlRnVuYyh0aW1lKSB7XG4gICAgICAgIHZhciBhcmdzID0gbGFzdEFyZ3MsXG4gICAgICAgICAgICB0aGlzQXJnID0gbGFzdFRoaXM7XG5cbiAgICAgICAgbGFzdEFyZ3MgPSBsYXN0VGhpcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgbGFzdEludm9rZVRpbWUgPSB0aW1lO1xuICAgICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBsZWFkaW5nRWRnZSh0aW1lKSB7XG4gICAgICAgIC8vIFJlc2V0IGFueSBgbWF4V2FpdGAgdGltZXIuXG4gICAgICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICAgICAgLy8gU3RhcnQgdGhlIHRpbWVyIGZvciB0aGUgdHJhaWxpbmcgZWRnZS5cbiAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAgICAgLy8gSW52b2tlIHRoZSBsZWFkaW5nIGVkZ2UuXG4gICAgICAgIHJldHVybiBsZWFkaW5nID8gaW52b2tlRnVuYyh0aW1lKSA6IHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gcmVtYWluaW5nV2FpdCh0aW1lKSB7XG4gICAgICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgICAgICB0aW1lU2luY2VMYXN0SW52b2tlID0gdGltZSAtIGxhc3RJbnZva2VUaW1lLFxuICAgICAgICAgICAgdGltZVdhaXRpbmcgPSB3YWl0IC0gdGltZVNpbmNlTGFzdENhbGw7XG5cbiAgICAgICAgcmV0dXJuIG1heGluZ1xuICAgICAgICAgID8gbmF0aXZlTWluKHRpbWVXYWl0aW5nLCBtYXhXYWl0IC0gdGltZVNpbmNlTGFzdEludm9rZSlcbiAgICAgICAgICA6IHRpbWVXYWl0aW5nO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBzaG91bGRJbnZva2UodGltZSkge1xuICAgICAgICB2YXIgdGltZVNpbmNlTGFzdENhbGwgPSB0aW1lIC0gbGFzdENhbGxUaW1lLFxuICAgICAgICAgICAgdGltZVNpbmNlTGFzdEludm9rZSA9IHRpbWUgLSBsYXN0SW52b2tlVGltZTtcblxuICAgICAgICAvLyBFaXRoZXIgdGhpcyBpcyB0aGUgZmlyc3QgY2FsbCwgYWN0aXZpdHkgaGFzIHN0b3BwZWQgYW5kIHdlJ3JlIGF0IHRoZVxuICAgICAgICAvLyB0cmFpbGluZyBlZGdlLCB0aGUgc3lzdGVtIHRpbWUgaGFzIGdvbmUgYmFja3dhcmRzIGFuZCB3ZSdyZSB0cmVhdGluZ1xuICAgICAgICAvLyBpdCBhcyB0aGUgdHJhaWxpbmcgZWRnZSwgb3Igd2UndmUgaGl0IHRoZSBgbWF4V2FpdGAgbGltaXQuXG4gICAgICAgIHJldHVybiAobGFzdENhbGxUaW1lID09PSB1bmRlZmluZWQgfHwgKHRpbWVTaW5jZUxhc3RDYWxsID49IHdhaXQpIHx8XG4gICAgICAgICAgKHRpbWVTaW5jZUxhc3RDYWxsIDwgMCkgfHwgKG1heGluZyAmJiB0aW1lU2luY2VMYXN0SW52b2tlID49IG1heFdhaXQpKTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gdGltZXJFeHBpcmVkKCkge1xuICAgICAgICB2YXIgdGltZSA9IG5vdygpO1xuICAgICAgICBpZiAoc2hvdWxkSW52b2tlKHRpbWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRyYWlsaW5nRWRnZSh0aW1lKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBSZXN0YXJ0IHRoZSB0aW1lci5cbiAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCByZW1haW5pbmdXYWl0KHRpbWUpKTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gdHJhaWxpbmdFZGdlKHRpbWUpIHtcbiAgICAgICAgdGltZXJJZCA9IHVuZGVmaW5lZDtcblxuICAgICAgICAvLyBPbmx5IGludm9rZSBpZiB3ZSBoYXZlIGBsYXN0QXJnc2Agd2hpY2ggbWVhbnMgYGZ1bmNgIGhhcyBiZWVuXG4gICAgICAgIC8vIGRlYm91bmNlZCBhdCBsZWFzdCBvbmNlLlxuICAgICAgICBpZiAodHJhaWxpbmcgJiYgbGFzdEFyZ3MpIHtcbiAgICAgICAgICByZXR1cm4gaW52b2tlRnVuYyh0aW1lKTtcbiAgICAgICAgfVxuICAgICAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBjYW5jZWwoKSB7XG4gICAgICAgIGlmICh0aW1lcklkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXJJZCk7XG4gICAgICAgIH1cbiAgICAgICAgbGFzdEludm9rZVRpbWUgPSAwO1xuICAgICAgICBsYXN0QXJncyA9IGxhc3RDYWxsVGltZSA9IGxhc3RUaGlzID0gdGltZXJJZCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gZmx1c2goKSB7XG4gICAgICAgIHJldHVybiB0aW1lcklkID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiB0cmFpbGluZ0VkZ2Uobm93KCkpO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBkZWJvdW5jZWQoKSB7XG4gICAgICAgIHZhciB0aW1lID0gbm93KCksXG4gICAgICAgICAgICBpc0ludm9raW5nID0gc2hvdWxkSW52b2tlKHRpbWUpO1xuXG4gICAgICAgIGxhc3RBcmdzID0gYXJndW1lbnRzO1xuICAgICAgICBsYXN0VGhpcyA9IHRoaXM7XG4gICAgICAgIGxhc3RDYWxsVGltZSA9IHRpbWU7XG5cbiAgICAgICAgaWYgKGlzSW52b2tpbmcpIHtcbiAgICAgICAgICBpZiAodGltZXJJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gbGVhZGluZ0VkZ2UobGFzdENhbGxUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKG1heGluZykge1xuICAgICAgICAgICAgLy8gSGFuZGxlIGludm9jYXRpb25zIGluIGEgdGlnaHQgbG9vcC5cbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcklkKTtcbiAgICAgICAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XG4gICAgICAgICAgICByZXR1cm4gaW52b2tlRnVuYyhsYXN0Q2FsbFRpbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGltZXJJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgZGVib3VuY2VkLmNhbmNlbCA9IGNhbmNlbDtcbiAgICAgIGRlYm91bmNlZC5mbHVzaCA9IGZsdXNoO1xuICAgICAgcmV0dXJuIGRlYm91bmNlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZlcnMgaW52b2tpbmcgdGhlIGBmdW5jYCB1bnRpbCB0aGUgY3VycmVudCBjYWxsIHN0YWNrIGhhcyBjbGVhcmVkLiBBbnlcbiAgICAgKiBhZGRpdGlvbmFsIGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQgdG8gYGZ1bmNgIHdoZW4gaXQncyBpbnZva2VkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gZGVmZXIuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgYGZ1bmNgIHdpdGguXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgdGltZXIgaWQuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGVmZXIoZnVuY3Rpb24odGV4dCkge1xuICAgICAqICAgY29uc29sZS5sb2codGV4dCk7XG4gICAgICogfSwgJ2RlZmVycmVkJyk7XG4gICAgICogLy8gPT4gTG9ncyAnZGVmZXJyZWQnIGFmdGVyIG9uZSBtaWxsaXNlY29uZC5cbiAgICAgKi9cbiAgICB2YXIgZGVmZXIgPSBiYXNlUmVzdChmdW5jdGlvbihmdW5jLCBhcmdzKSB7XG4gICAgICByZXR1cm4gYmFzZURlbGF5KGZ1bmMsIDEsIGFyZ3MpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogSW52b2tlcyBgZnVuY2AgYWZ0ZXIgYHdhaXRgIG1pbGxpc2Vjb25kcy4gQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIGFyZVxuICAgICAqIHByb3ZpZGVkIHRvIGBmdW5jYCB3aGVuIGl0J3MgaW52b2tlZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRlbGF5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3YWl0IFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIGRlbGF5IGludm9jYXRpb24uXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgYGZ1bmNgIHdpdGguXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgdGltZXIgaWQuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGVsYXkoZnVuY3Rpb24odGV4dCkge1xuICAgICAqICAgY29uc29sZS5sb2codGV4dCk7XG4gICAgICogfSwgMTAwMCwgJ2xhdGVyJyk7XG4gICAgICogLy8gPT4gTG9ncyAnbGF0ZXInIGFmdGVyIG9uZSBzZWNvbmQuXG4gICAgICovXG4gICAgdmFyIGRlbGF5ID0gYmFzZVJlc3QoZnVuY3Rpb24oZnVuYywgd2FpdCwgYXJncykge1xuICAgICAgcmV0dXJuIGJhc2VEZWxheShmdW5jLCB0b051bWJlcih3YWl0KSB8fCAwLCBhcmdzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggYXJndW1lbnRzIHJldmVyc2VkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gZmxpcCBhcmd1bWVudHMgZm9yLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZsaXBwZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBmbGlwcGVkID0gXy5mbGlwKGZ1bmN0aW9uKCkge1xuICAgICAqICAgcmV0dXJuIF8udG9BcnJheShhcmd1bWVudHMpO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogZmxpcHBlZCgnYScsICdiJywgJ2MnLCAnZCcpO1xuICAgICAqIC8vID0+IFsnZCcsICdjJywgJ2InLCAnYSddXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmxpcChmdW5jKSB7XG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChmdW5jLCBXUkFQX0ZMSVBfRkxBRyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgbWVtb2l6ZXMgdGhlIHJlc3VsdCBvZiBgZnVuY2AuIElmIGByZXNvbHZlcmAgaXNcbiAgICAgKiBwcm92aWRlZCwgaXQgZGV0ZXJtaW5lcyB0aGUgY2FjaGUga2V5IGZvciBzdG9yaW5nIHRoZSByZXN1bHQgYmFzZWQgb24gdGhlXG4gICAgICogYXJndW1lbnRzIHByb3ZpZGVkIHRvIHRoZSBtZW1vaXplZCBmdW5jdGlvbi4gQnkgZGVmYXVsdCwgdGhlIGZpcnN0IGFyZ3VtZW50XG4gICAgICogcHJvdmlkZWQgdG8gdGhlIG1lbW9pemVkIGZ1bmN0aW9uIGlzIHVzZWQgYXMgdGhlIG1hcCBjYWNoZSBrZXkuIFRoZSBgZnVuY2BcbiAgICAgKiBpcyBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZSBtZW1vaXplZCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGUgY2FjaGUgaXMgZXhwb3NlZCBhcyB0aGUgYGNhY2hlYCBwcm9wZXJ0eSBvbiB0aGUgbWVtb2l6ZWRcbiAgICAgKiBmdW5jdGlvbi4gSXRzIGNyZWF0aW9uIG1heSBiZSBjdXN0b21pemVkIGJ5IHJlcGxhY2luZyB0aGUgYF8ubWVtb2l6ZS5DYWNoZWBcbiAgICAgKiBjb25zdHJ1Y3RvciB3aXRoIG9uZSB3aG9zZSBpbnN0YW5jZXMgaW1wbGVtZW50IHRoZVxuICAgICAqIFtgTWFwYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtcHJvcGVydGllcy1vZi10aGUtbWFwLXByb3RvdHlwZS1vYmplY3QpXG4gICAgICogbWV0aG9kIGludGVyZmFjZSBvZiBgY2xlYXJgLCBgZGVsZXRlYCwgYGdldGAsIGBoYXNgLCBhbmQgYHNldGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBoYXZlIGl0cyBvdXRwdXQgbWVtb2l6ZWQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3Jlc29sdmVyXSBUaGUgZnVuY3Rpb24gdG8gcmVzb2x2ZSB0aGUgY2FjaGUga2V5LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG1lbW9pemVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogMiB9O1xuICAgICAqIHZhciBvdGhlciA9IHsgJ2MnOiAzLCAnZCc6IDQgfTtcbiAgICAgKlxuICAgICAqIHZhciB2YWx1ZXMgPSBfLm1lbW9pemUoXy52YWx1ZXMpO1xuICAgICAqIHZhbHVlcyhvYmplY3QpO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqXG4gICAgICogdmFsdWVzKG90aGVyKTtcbiAgICAgKiAvLyA9PiBbMywgNF1cbiAgICAgKlxuICAgICAqIG9iamVjdC5hID0gMjtcbiAgICAgKiB2YWx1ZXMob2JqZWN0KTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKlxuICAgICAqIC8vIE1vZGlmeSB0aGUgcmVzdWx0IGNhY2hlLlxuICAgICAqIHZhbHVlcy5jYWNoZS5zZXQob2JqZWN0LCBbJ2EnLCAnYiddKTtcbiAgICAgKiB2YWx1ZXMob2JqZWN0KTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYiddXG4gICAgICpcbiAgICAgKiAvLyBSZXBsYWNlIGBfLm1lbW9pemUuQ2FjaGVgLlxuICAgICAqIF8ubWVtb2l6ZS5DYWNoZSA9IFdlYWtNYXA7XG4gICAgICovXG4gICAgZnVuY3Rpb24gbWVtb2l6ZShmdW5jLCByZXNvbHZlcikge1xuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicgfHwgKHJlc29sdmVyICE9IG51bGwgJiYgdHlwZW9mIHJlc29sdmVyICE9ICdmdW5jdGlvbicpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIHZhciBtZW1vaXplZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgICAgICAgIGtleSA9IHJlc29sdmVyID8gcmVzb2x2ZXIuYXBwbHkodGhpcywgYXJncykgOiBhcmdzWzBdLFxuICAgICAgICAgICAgY2FjaGUgPSBtZW1vaXplZC5jYWNoZTtcblxuICAgICAgICBpZiAoY2FjaGUuaGFzKGtleSkpIHtcbiAgICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJlc3VsdCA9IGZ1bmMuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgIG1lbW9pemVkLmNhY2hlID0gY2FjaGUuc2V0KGtleSwgcmVzdWx0KSB8fCBjYWNoZTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG4gICAgICBtZW1vaXplZC5jYWNoZSA9IG5ldyAobWVtb2l6ZS5DYWNoZSB8fCBNYXBDYWNoZSk7XG4gICAgICByZXR1cm4gbWVtb2l6ZWQ7XG4gICAgfVxuXG4gICAgLy8gRXhwb3NlIGBNYXBDYWNoZWAuXG4gICAgbWVtb2l6ZS5DYWNoZSA9IE1hcENhY2hlO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgbmVnYXRlcyB0aGUgcmVzdWx0IG9mIHRoZSBwcmVkaWNhdGUgYGZ1bmNgLiBUaGVcbiAgICAgKiBgZnVuY2AgcHJlZGljYXRlIGlzIGludm9rZWQgd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgYW5kIGFyZ3VtZW50cyBvZiB0aGVcbiAgICAgKiBjcmVhdGVkIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBwcmVkaWNhdGUgdG8gbmVnYXRlLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG5lZ2F0ZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGlzRXZlbihuKSB7XG4gICAgICogICByZXR1cm4gbiAlIDIgPT0gMDtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBfLmZpbHRlcihbMSwgMiwgMywgNCwgNSwgNl0sIF8ubmVnYXRlKGlzRXZlbikpO1xuICAgICAqIC8vID0+IFsxLCAzLCA1XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG5lZ2F0ZShwcmVkaWNhdGUpIHtcbiAgICAgIGlmICh0eXBlb2YgcHJlZGljYXRlICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xuICAgICAgICAgIGNhc2UgMDogcmV0dXJuICFwcmVkaWNhdGUuY2FsbCh0aGlzKTtcbiAgICAgICAgICBjYXNlIDE6IHJldHVybiAhcHJlZGljYXRlLmNhbGwodGhpcywgYXJnc1swXSk7XG4gICAgICAgICAgY2FzZSAyOiByZXR1cm4gIXByZWRpY2F0ZS5jYWxsKHRoaXMsIGFyZ3NbMF0sIGFyZ3NbMV0pO1xuICAgICAgICAgIGNhc2UgMzogcmV0dXJuICFwcmVkaWNhdGUuY2FsbCh0aGlzLCBhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gIXByZWRpY2F0ZS5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaXMgcmVzdHJpY3RlZCB0byBpbnZva2luZyBgZnVuY2Agb25jZS4gUmVwZWF0IGNhbGxzXG4gICAgICogdG8gdGhlIGZ1bmN0aW9uIHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGludm9jYXRpb24uIFRoZSBgZnVuY2AgaXNcbiAgICAgKiBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIGFuZCBhcmd1bWVudHMgb2YgdGhlIGNyZWF0ZWQgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byByZXN0cmljdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyByZXN0cmljdGVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgaW5pdGlhbGl6ZSA9IF8ub25jZShjcmVhdGVBcHBsaWNhdGlvbik7XG4gICAgICogaW5pdGlhbGl6ZSgpO1xuICAgICAqIGluaXRpYWxpemUoKTtcbiAgICAgKiAvLyA9PiBgY3JlYXRlQXBwbGljYXRpb25gIGlzIGludm9rZWQgb25jZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG9uY2UoZnVuYykge1xuICAgICAgcmV0dXJuIGJlZm9yZSgyLCBmdW5jKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIGl0cyBhcmd1bWVudHMgdHJhbnNmb3JtZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB3cmFwLlxuICAgICAqIEBwYXJhbSB7Li4uKEZ1bmN0aW9ufEZ1bmN0aW9uW10pfSBbdHJhbnNmb3Jtcz1bXy5pZGVudGl0eV1dXG4gICAgICogIFRoZSBhcmd1bWVudCB0cmFuc2Zvcm1zLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBkb3VibGVkKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICogMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBzcXVhcmUobikge1xuICAgICAqICAgcmV0dXJuIG4gKiBuO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHZhciBmdW5jID0gXy5vdmVyQXJncyhmdW5jdGlvbih4LCB5KSB7XG4gICAgICogICByZXR1cm4gW3gsIHldO1xuICAgICAqIH0sIFtzcXVhcmUsIGRvdWJsZWRdKTtcbiAgICAgKlxuICAgICAqIGZ1bmMoOSwgMyk7XG4gICAgICogLy8gPT4gWzgxLCA2XVxuICAgICAqXG4gICAgICogZnVuYygxMCwgNSk7XG4gICAgICogLy8gPT4gWzEwMCwgMTBdXG4gICAgICovXG4gICAgdmFyIG92ZXJBcmdzID0gY2FzdFJlc3QoZnVuY3Rpb24oZnVuYywgdHJhbnNmb3Jtcykge1xuICAgICAgdHJhbnNmb3JtcyA9ICh0cmFuc2Zvcm1zLmxlbmd0aCA9PSAxICYmIGlzQXJyYXkodHJhbnNmb3Jtc1swXSkpXG4gICAgICAgID8gYXJyYXlNYXAodHJhbnNmb3Jtc1swXSwgYmFzZVVuYXJ5KGdldEl0ZXJhdGVlKCkpKVxuICAgICAgICA6IGFycmF5TWFwKGJhc2VGbGF0dGVuKHRyYW5zZm9ybXMsIDEpLCBiYXNlVW5hcnkoZ2V0SXRlcmF0ZWUoKSkpO1xuXG4gICAgICB2YXIgZnVuY3NMZW5ndGggPSB0cmFuc2Zvcm1zLmxlbmd0aDtcbiAgICAgIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihhcmdzKSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWluKGFyZ3MubGVuZ3RoLCBmdW5jc0xlbmd0aCk7XG5cbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICBhcmdzW2luZGV4XSA9IHRyYW5zZm9ybXNbaW5kZXhdLmNhbGwodGhpcywgYXJnc1tpbmRleF0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcHBseShmdW5jLCB0aGlzLCBhcmdzKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCBgcGFydGlhbHNgIHByZXBlbmRlZCB0byB0aGVcbiAgICAgKiBhcmd1bWVudHMgaXQgcmVjZWl2ZXMuIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uYmluZGAgZXhjZXB0IGl0IGRvZXMgKipub3QqKlxuICAgICAqIGFsdGVyIHRoZSBgdGhpc2AgYmluZGluZy5cbiAgICAgKlxuICAgICAqIFRoZSBgXy5wYXJ0aWFsLnBsYWNlaG9sZGVyYCB2YWx1ZSwgd2hpY2ggZGVmYXVsdHMgdG8gYF9gIGluIG1vbm9saXRoaWNcbiAgICAgKiBidWlsZHMsIG1heSBiZSB1c2VkIGFzIGEgcGxhY2Vob2xkZXIgZm9yIHBhcnRpYWxseSBhcHBsaWVkIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBkb2Vzbid0IHNldCB0aGUgXCJsZW5ndGhcIiBwcm9wZXJ0eSBvZiBwYXJ0aWFsbHlcbiAgICAgKiBhcHBsaWVkIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjIuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHBhcnRpYWxseSBhcHBseSBhcmd1bWVudHMgdG8uXG4gICAgICogQHBhcmFtIHsuLi4qfSBbcGFydGlhbHNdIFRoZSBhcmd1bWVudHMgdG8gYmUgcGFydGlhbGx5IGFwcGxpZWQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcGFydGlhbGx5IGFwcGxpZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGdyZWV0KGdyZWV0aW5nLCBuYW1lKSB7XG4gICAgICogICByZXR1cm4gZ3JlZXRpbmcgKyAnICcgKyBuYW1lO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHZhciBzYXlIZWxsb1RvID0gXy5wYXJ0aWFsKGdyZWV0LCAnaGVsbG8nKTtcbiAgICAgKiBzYXlIZWxsb1RvKCdmcmVkJyk7XG4gICAgICogLy8gPT4gJ2hlbGxvIGZyZWQnXG4gICAgICpcbiAgICAgKiAvLyBQYXJ0aWFsbHkgYXBwbGllZCB3aXRoIHBsYWNlaG9sZGVycy5cbiAgICAgKiB2YXIgZ3JlZXRGcmVkID0gXy5wYXJ0aWFsKGdyZWV0LCBfLCAnZnJlZCcpO1xuICAgICAqIGdyZWV0RnJlZCgnaGknKTtcbiAgICAgKiAvLyA9PiAnaGkgZnJlZCdcbiAgICAgKi9cbiAgICB2YXIgcGFydGlhbCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIHBhcnRpYWxzKSB7XG4gICAgICB2YXIgaG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKHBhcnRpYWxzLCBnZXRIb2xkZXIocGFydGlhbCkpO1xuICAgICAgcmV0dXJuIGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9QQVJUSUFMX0ZMQUcsIHVuZGVmaW5lZCwgcGFydGlhbHMsIGhvbGRlcnMpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5wYXJ0aWFsYCBleGNlcHQgdGhhdCBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHNcbiAgICAgKiBhcmUgYXBwZW5kZWQgdG8gdGhlIGFyZ3VtZW50cyBpdCByZWNlaXZlcy5cbiAgICAgKlxuICAgICAqIFRoZSBgXy5wYXJ0aWFsUmlnaHQucGxhY2Vob2xkZXJgIHZhbHVlLCB3aGljaCBkZWZhdWx0cyB0byBgX2AgaW4gbW9ub2xpdGhpY1xuICAgICAqIGJ1aWxkcywgbWF5IGJlIHVzZWQgYXMgYSBwbGFjZWhvbGRlciBmb3IgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGRvZXNuJ3Qgc2V0IHRoZSBcImxlbmd0aFwiIHByb3BlcnR5IG9mIHBhcnRpYWxseVxuICAgICAqIGFwcGxpZWQgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDEuMC4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcGFydGlhbGx5IGFwcGx5IGFyZ3VtZW50cyB0by5cbiAgICAgKiBAcGFyYW0gey4uLip9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBiZSBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBwYXJ0aWFsbHkgYXBwbGllZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gZ3JlZXQoZ3JlZXRpbmcsIG5hbWUpIHtcbiAgICAgKiAgIHJldHVybiBncmVldGluZyArICcgJyArIG5hbWU7XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIGdyZWV0RnJlZCA9IF8ucGFydGlhbFJpZ2h0KGdyZWV0LCAnZnJlZCcpO1xuICAgICAqIGdyZWV0RnJlZCgnaGknKTtcbiAgICAgKiAvLyA9PiAnaGkgZnJlZCdcbiAgICAgKlxuICAgICAqIC8vIFBhcnRpYWxseSBhcHBsaWVkIHdpdGggcGxhY2Vob2xkZXJzLlxuICAgICAqIHZhciBzYXlIZWxsb1RvID0gXy5wYXJ0aWFsUmlnaHQoZ3JlZXQsICdoZWxsbycsIF8pO1xuICAgICAqIHNheUhlbGxvVG8oJ2ZyZWQnKTtcbiAgICAgKiAvLyA9PiAnaGVsbG8gZnJlZCdcbiAgICAgKi9cbiAgICB2YXIgcGFydGlhbFJpZ2h0ID0gYmFzZVJlc3QoZnVuY3Rpb24oZnVuYywgcGFydGlhbHMpIHtcbiAgICAgIHZhciBob2xkZXJzID0gcmVwbGFjZUhvbGRlcnMocGFydGlhbHMsIGdldEhvbGRlcihwYXJ0aWFsUmlnaHQpKTtcbiAgICAgIHJldHVybiBjcmVhdGVXcmFwKGZ1bmMsIFdSQVBfUEFSVElBTF9SSUdIVF9GTEFHLCB1bmRlZmluZWQsIHBhcnRpYWxzLCBob2xkZXJzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggYXJndW1lbnRzIGFycmFuZ2VkIGFjY29yZGluZ1xuICAgICAqIHRvIHRoZSBzcGVjaWZpZWQgYGluZGV4ZXNgIHdoZXJlIHRoZSBhcmd1bWVudCB2YWx1ZSBhdCB0aGUgZmlyc3QgaW5kZXggaXNcbiAgICAgKiBwcm92aWRlZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQsIHRoZSBhcmd1bWVudCB2YWx1ZSBhdCB0aGUgc2Vjb25kIGluZGV4IGlzXG4gICAgICogcHJvdmlkZWQgYXMgdGhlIHNlY29uZCBhcmd1bWVudCwgYW5kIHNvIG9uLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVhcnJhbmdlIGFyZ3VtZW50cyBmb3IuXG4gICAgICogQHBhcmFtIHsuLi4obnVtYmVyfG51bWJlcltdKX0gaW5kZXhlcyBUaGUgYXJyYW5nZWQgYXJndW1lbnQgaW5kZXhlcy5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHJlYXJnZWQgPSBfLnJlYXJnKGZ1bmN0aW9uKGEsIGIsIGMpIHtcbiAgICAgKiAgIHJldHVybiBbYSwgYiwgY107XG4gICAgICogfSwgWzIsIDAsIDFdKTtcbiAgICAgKlxuICAgICAqIHJlYXJnZWQoJ2InLCAnYycsICdhJylcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYicsICdjJ11cbiAgICAgKi9cbiAgICB2YXIgcmVhcmcgPSBmbGF0UmVzdChmdW5jdGlvbihmdW5jLCBpbmRleGVzKSB7XG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChmdW5jLCBXUkFQX1JFQVJHX0ZMQUcsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGluZGV4ZXMpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgdGhlXG4gICAgICogY3JlYXRlZCBmdW5jdGlvbiBhbmQgYXJndW1lbnRzIGZyb20gYHN0YXJ0YCBhbmQgYmV5b25kIHByb3ZpZGVkIGFzXG4gICAgICogYW4gYXJyYXkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb24gdGhlXG4gICAgICogW3Jlc3QgcGFyYW1ldGVyXShodHRwczovL21kbi5pby9yZXN0X3BhcmFtZXRlcnMpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PWZ1bmMubGVuZ3RoLTFdIFRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgcmVzdCBwYXJhbWV0ZXIuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBzYXkgPSBfLnJlc3QoZnVuY3Rpb24od2hhdCwgbmFtZXMpIHtcbiAgICAgKiAgIHJldHVybiB3aGF0ICsgJyAnICsgXy5pbml0aWFsKG5hbWVzKS5qb2luKCcsICcpICtcbiAgICAgKiAgICAgKF8uc2l6ZShuYW1lcykgPiAxID8gJywgJiAnIDogJycpICsgXy5sYXN0KG5hbWVzKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIHNheSgnaGVsbG8nLCAnZnJlZCcsICdiYXJuZXknLCAncGViYmxlcycpO1xuICAgICAqIC8vID0+ICdoZWxsbyBmcmVkLCBiYXJuZXksICYgcGViYmxlcydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZXN0KGZ1bmMsIHN0YXJ0KSB7XG4gICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICBzdGFydCA9IHN0YXJ0ID09PSB1bmRlZmluZWQgPyBzdGFydCA6IHRvSW50ZWdlcihzdGFydCk7XG4gICAgICByZXR1cm4gYmFzZVJlc3QoZnVuYywgc3RhcnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZVxuICAgICAqIGNyZWF0ZSBmdW5jdGlvbiBhbmQgYW4gYXJyYXkgb2YgYXJndW1lbnRzIG11Y2ggbGlrZVxuICAgICAqIFtgRnVuY3Rpb24jYXBwbHlgXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5KS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBvbiB0aGVcbiAgICAgKiBbc3ByZWFkIG9wZXJhdG9yXShodHRwczovL21kbi5pby9zcHJlYWRfb3BlcmF0b3IpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMi4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gc3ByZWFkIGFyZ3VtZW50cyBvdmVyLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9MF0gVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSBzcHJlYWQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBzYXkgPSBfLnNwcmVhZChmdW5jdGlvbih3aG8sIHdoYXQpIHtcbiAgICAgKiAgIHJldHVybiB3aG8gKyAnIHNheXMgJyArIHdoYXQ7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBzYXkoWydmcmVkJywgJ2hlbGxvJ10pO1xuICAgICAqIC8vID0+ICdmcmVkIHNheXMgaGVsbG8nXG4gICAgICpcbiAgICAgKiB2YXIgbnVtYmVycyA9IFByb21pc2UuYWxsKFtcbiAgICAgKiAgIFByb21pc2UucmVzb2x2ZSg0MCksXG4gICAgICogICBQcm9taXNlLnJlc29sdmUoMzYpXG4gICAgICogXSk7XG4gICAgICpcbiAgICAgKiBudW1iZXJzLnRoZW4oXy5zcHJlYWQoZnVuY3Rpb24oeCwgeSkge1xuICAgICAqICAgcmV0dXJuIHggKyB5O1xuICAgICAqIH0pKTtcbiAgICAgKiAvLyA9PiBhIFByb21pc2Ugb2YgNzZcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzcHJlYWQoZnVuYywgc3RhcnQpIHtcbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIHN0YXJ0ID0gc3RhcnQgPT0gbnVsbCA/IDAgOiBuYXRpdmVNYXgodG9JbnRlZ2VyKHN0YXJ0KSwgMCk7XG4gICAgICByZXR1cm4gYmFzZVJlc3QoZnVuY3Rpb24oYXJncykge1xuICAgICAgICB2YXIgYXJyYXkgPSBhcmdzW3N0YXJ0XSxcbiAgICAgICAgICAgIG90aGVyQXJncyA9IGNhc3RTbGljZShhcmdzLCAwLCBzdGFydCk7XG5cbiAgICAgICAgaWYgKGFycmF5KSB7XG4gICAgICAgICAgYXJyYXlQdXNoKG90aGVyQXJncywgYXJyYXkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcHBseShmdW5jLCB0aGlzLCBvdGhlckFyZ3MpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHRocm90dGxlZCBmdW5jdGlvbiB0aGF0IG9ubHkgaW52b2tlcyBgZnVuY2AgYXQgbW9zdCBvbmNlIHBlclxuICAgICAqIGV2ZXJ5IGB3YWl0YCBtaWxsaXNlY29uZHMuIFRoZSB0aHJvdHRsZWQgZnVuY3Rpb24gY29tZXMgd2l0aCBhIGBjYW5jZWxgXG4gICAgICogbWV0aG9kIHRvIGNhbmNlbCBkZWxheWVkIGBmdW5jYCBpbnZvY2F0aW9ucyBhbmQgYSBgZmx1c2hgIG1ldGhvZCB0b1xuICAgICAqIGltbWVkaWF0ZWx5IGludm9rZSB0aGVtLiBQcm92aWRlIGBvcHRpb25zYCB0byBpbmRpY2F0ZSB3aGV0aGVyIGBmdW5jYFxuICAgICAqIHNob3VsZCBiZSBpbnZva2VkIG9uIHRoZSBsZWFkaW5nIGFuZC9vciB0cmFpbGluZyBlZGdlIG9mIHRoZSBgd2FpdGBcbiAgICAgKiB0aW1lb3V0LiBUaGUgYGZ1bmNgIGlzIGludm9rZWQgd2l0aCB0aGUgbGFzdCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlXG4gICAgICogdGhyb3R0bGVkIGZ1bmN0aW9uLiBTdWJzZXF1ZW50IGNhbGxzIHRvIHRoZSB0aHJvdHRsZWQgZnVuY3Rpb24gcmV0dXJuIHRoZVxuICAgICAqIHJlc3VsdCBvZiB0aGUgbGFzdCBgZnVuY2AgaW52b2NhdGlvbi5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBJZiBgbGVhZGluZ2AgYW5kIGB0cmFpbGluZ2Agb3B0aW9ucyBhcmUgYHRydWVgLCBgZnVuY2AgaXNcbiAgICAgKiBpbnZva2VkIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0IG9ubHkgaWYgdGhlIHRocm90dGxlZCBmdW5jdGlvblxuICAgICAqIGlzIGludm9rZWQgbW9yZSB0aGFuIG9uY2UgZHVyaW5nIHRoZSBgd2FpdGAgdGltZW91dC5cbiAgICAgKlxuICAgICAqIElmIGB3YWl0YCBpcyBgMGAgYW5kIGBsZWFkaW5nYCBpcyBgZmFsc2VgLCBgZnVuY2AgaW52b2NhdGlvbiBpcyBkZWZlcnJlZFxuICAgICAqIHVudGlsIHRvIHRoZSBuZXh0IHRpY2ssIHNpbWlsYXIgdG8gYHNldFRpbWVvdXRgIHdpdGggYSB0aW1lb3V0IG9mIGAwYC5cbiAgICAgKlxuICAgICAqIFNlZSBbRGF2aWQgQ29yYmFjaG8ncyBhcnRpY2xlXShodHRwczovL2Nzcy10cmlja3MuY29tL2RlYm91bmNpbmctdGhyb3R0bGluZy1leHBsYWluZWQtZXhhbXBsZXMvKVxuICAgICAqIGZvciBkZXRhaWxzIG92ZXIgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYF8udGhyb3R0bGVgIGFuZCBgXy5kZWJvdW5jZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB0aHJvdHRsZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3dhaXQ9MF0gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gdGhyb3R0bGUgaW52b2NhdGlvbnMgdG8uXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zPXt9XSBUaGUgb3B0aW9ucyBvYmplY3QuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWFkaW5nPXRydWVdXG4gICAgICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIGxlYWRpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnRyYWlsaW5nPXRydWVdXG4gICAgICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgdGhyb3R0bGVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiAvLyBBdm9pZCBleGNlc3NpdmVseSB1cGRhdGluZyB0aGUgcG9zaXRpb24gd2hpbGUgc2Nyb2xsaW5nLlxuICAgICAqIGpRdWVyeSh3aW5kb3cpLm9uKCdzY3JvbGwnLCBfLnRocm90dGxlKHVwZGF0ZVBvc2l0aW9uLCAxMDApKTtcbiAgICAgKlxuICAgICAqIC8vIEludm9rZSBgcmVuZXdUb2tlbmAgd2hlbiB0aGUgY2xpY2sgZXZlbnQgaXMgZmlyZWQsIGJ1dCBub3QgbW9yZSB0aGFuIG9uY2UgZXZlcnkgNSBtaW51dGVzLlxuICAgICAqIHZhciB0aHJvdHRsZWQgPSBfLnRocm90dGxlKHJlbmV3VG9rZW4sIDMwMDAwMCwgeyAndHJhaWxpbmcnOiBmYWxzZSB9KTtcbiAgICAgKiBqUXVlcnkoZWxlbWVudCkub24oJ2NsaWNrJywgdGhyb3R0bGVkKTtcbiAgICAgKlxuICAgICAqIC8vIENhbmNlbCB0aGUgdHJhaWxpbmcgdGhyb3R0bGVkIGludm9jYXRpb24uXG4gICAgICogalF1ZXJ5KHdpbmRvdykub24oJ3BvcHN0YXRlJywgdGhyb3R0bGVkLmNhbmNlbCk7XG4gICAgICovXG4gICAgZnVuY3Rpb24gdGhyb3R0bGUoZnVuYywgd2FpdCwgb3B0aW9ucykge1xuICAgICAgdmFyIGxlYWRpbmcgPSB0cnVlLFxuICAgICAgICAgIHRyYWlsaW5nID0gdHJ1ZTtcblxuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgfVxuICAgICAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgIGxlYWRpbmcgPSAnbGVhZGluZycgaW4gb3B0aW9ucyA/ICEhb3B0aW9ucy5sZWFkaW5nIDogbGVhZGluZztcbiAgICAgICAgdHJhaWxpbmcgPSAndHJhaWxpbmcnIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMudHJhaWxpbmcgOiB0cmFpbGluZztcbiAgICAgIH1cbiAgICAgIHJldHVybiBkZWJvdW5jZShmdW5jLCB3YWl0LCB7XG4gICAgICAgICdsZWFkaW5nJzogbGVhZGluZyxcbiAgICAgICAgJ21heFdhaXQnOiB3YWl0LFxuICAgICAgICAndHJhaWxpbmcnOiB0cmFpbGluZ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byBvbmUgYXJndW1lbnQsIGlnbm9yaW5nIGFueVxuICAgICAqIGFkZGl0aW9uYWwgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2FwIGFyZ3VtZW50cyBmb3IuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY2FwcGVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLm1hcChbJzYnLCAnOCcsICcxMCddLCBfLnVuYXJ5KHBhcnNlSW50KSk7XG4gICAgICogLy8gPT4gWzYsIDgsIDEwXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuYXJ5KGZ1bmMpIHtcbiAgICAgIHJldHVybiBhcnkoZnVuYywgMSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcHJvdmlkZXMgYHZhbHVlYCB0byBgd3JhcHBlcmAgYXMgaXRzIGZpcnN0XG4gICAgICogYXJndW1lbnQuIEFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBwcm92aWRlZCB0byB0aGUgZnVuY3Rpb24gYXJlIGFwcGVuZGVkXG4gICAgICogdG8gdGhvc2UgcHJvdmlkZWQgdG8gdGhlIGB3cmFwcGVyYC4gVGhlIHdyYXBwZXIgaXMgaW52b2tlZCB3aXRoIHRoZSBgdGhpc2BcbiAgICAgKiBiaW5kaW5nIG9mIHRoZSBjcmVhdGVkIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbd3JhcHBlcj1pZGVudGl0eV0gVGhlIHdyYXBwZXIgZnVuY3Rpb24uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBwID0gXy53cmFwKF8uZXNjYXBlLCBmdW5jdGlvbihmdW5jLCB0ZXh0KSB7XG4gICAgICogICByZXR1cm4gJzxwPicgKyBmdW5jKHRleHQpICsgJzwvcD4nO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogcCgnZnJlZCwgYmFybmV5LCAmIHBlYmJsZXMnKTtcbiAgICAgKiAvLyA9PiAnPHA+ZnJlZCwgYmFybmV5LCAmYW1wOyBwZWJibGVzPC9wPidcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwKHZhbHVlLCB3cmFwcGVyKSB7XG4gICAgICByZXR1cm4gcGFydGlhbChjYXN0RnVuY3Rpb24od3JhcHBlciksIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDYXN0cyBgdmFsdWVgIGFzIGFuIGFycmF5IGlmIGl0J3Mgbm90IG9uZS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjQuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGNhc3QgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uY2FzdEFycmF5KDEpO1xuICAgICAqIC8vID0+IFsxXVxuICAgICAqXG4gICAgICogXy5jYXN0QXJyYXkoeyAnYSc6IDEgfSk7XG4gICAgICogLy8gPT4gW3sgJ2EnOiAxIH1dXG4gICAgICpcbiAgICAgKiBfLmNhc3RBcnJheSgnYWJjJyk7XG4gICAgICogLy8gPT4gWydhYmMnXVxuICAgICAqXG4gICAgICogXy5jYXN0QXJyYXkobnVsbCk7XG4gICAgICogLy8gPT4gW251bGxdXG4gICAgICpcbiAgICAgKiBfLmNhc3RBcnJheSh1bmRlZmluZWQpO1xuICAgICAqIC8vID0+IFt1bmRlZmluZWRdXG4gICAgICpcbiAgICAgKiBfLmNhc3RBcnJheSgpO1xuICAgICAqIC8vID0+IFtdXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgMiwgM107XG4gICAgICogY29uc29sZS5sb2coXy5jYXN0QXJyYXkoYXJyYXkpID09PSBhcnJheSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNhc3RBcnJheSgpIHtcbiAgICAgIGlmICghYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICB2YXIgdmFsdWUgPSBhcmd1bWVudHNbMF07XG4gICAgICByZXR1cm4gaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNoYWxsb3cgY2xvbmUgb2YgYHZhbHVlYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uIHRoZVxuICAgICAqIFtzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobV0oaHR0cHM6Ly9tZG4uaW8vU3RydWN0dXJlZF9jbG9uZV9hbGdvcml0aG0pXG4gICAgICogYW5kIHN1cHBvcnRzIGNsb25pbmcgYXJyYXlzLCBhcnJheSBidWZmZXJzLCBib29sZWFucywgZGF0ZSBvYmplY3RzLCBtYXBzLFxuICAgICAqIG51bWJlcnMsIGBPYmplY3RgIG9iamVjdHMsIHJlZ2V4ZXMsIHNldHMsIHN0cmluZ3MsIHN5bWJvbHMsIGFuZCB0eXBlZFxuICAgICAqIGFycmF5cy4gVGhlIG93biBlbnVtZXJhYmxlIHByb3BlcnRpZXMgb2YgYGFyZ3VtZW50c2Agb2JqZWN0cyBhcmUgY2xvbmVkXG4gICAgICogYXMgcGxhaW4gb2JqZWN0cy4gQW4gZW1wdHkgb2JqZWN0IGlzIHJldHVybmVkIGZvciB1bmNsb25lYWJsZSB2YWx1ZXMgc3VjaFxuICAgICAqIGFzIGVycm9yIG9iamVjdHMsIGZ1bmN0aW9ucywgRE9NIG5vZGVzLCBhbmQgV2Vha01hcHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNsb25lLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXG4gICAgICogQHNlZSBfLmNsb25lRGVlcFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICdhJzogMSB9LCB7ICdiJzogMiB9XTtcbiAgICAgKlxuICAgICAqIHZhciBzaGFsbG93ID0gXy5jbG9uZShvYmplY3RzKTtcbiAgICAgKiBjb25zb2xlLmxvZyhzaGFsbG93WzBdID09PSBvYmplY3RzWzBdKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2xvbmUodmFsdWUpIHtcbiAgICAgIHJldHVybiBiYXNlQ2xvbmUodmFsdWUsIENMT05FX1NZTUJPTFNfRkxBRyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5jbG9uZWAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY3VzdG9taXplcmAgd2hpY2hcbiAgICAgKiBpcyBpbnZva2VkIHRvIHByb2R1Y2UgdGhlIGNsb25lZCB2YWx1ZS4gSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGAsXG4gICAgICogY2xvbmluZyBpcyBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBpbnZva2VkIHdpdGhcbiAgICAgKiB1cCB0byBmb3VyIGFyZ3VtZW50czsgKHZhbHVlIFssIGluZGV4fGtleSwgb2JqZWN0LCBzdGFja10pLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjbG9uaW5nLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXG4gICAgICogQHNlZSBfLmNsb25lRGVlcFdpdGhcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gY3VzdG9taXplcih2YWx1ZSkge1xuICAgICAqICAgaWYgKF8uaXNFbGVtZW50KHZhbHVlKSkge1xuICAgICAqICAgICByZXR1cm4gdmFsdWUuY2xvbmVOb2RlKGZhbHNlKTtcbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgZWwgPSBfLmNsb25lV2l0aChkb2N1bWVudC5ib2R5LCBjdXN0b21pemVyKTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGVsID09PSBkb2N1bWVudC5ib2R5KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqIGNvbnNvbGUubG9nKGVsLm5vZGVOYW1lKTtcbiAgICAgKiAvLyA9PiAnQk9EWSdcbiAgICAgKiBjb25zb2xlLmxvZyhlbC5jaGlsZE5vZGVzLmxlbmd0aCk7XG4gICAgICogLy8gPT4gMFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lV2l0aCh2YWx1ZSwgY3VzdG9taXplcikge1xuICAgICAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicgPyBjdXN0b21pemVyIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIGJhc2VDbG9uZSh2YWx1ZSwgQ0xPTkVfU1lNQk9MU19GTEFHLCBjdXN0b21pemVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmNsb25lYCBleGNlcHQgdGhhdCBpdCByZWN1cnNpdmVseSBjbG9uZXMgYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAxLjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcmVjdXJzaXZlbHkgY2xvbmUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGRlZXAgY2xvbmVkIHZhbHVlLlxuICAgICAqIEBzZWUgXy5jbG9uZVxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICdhJzogMSB9LCB7ICdiJzogMiB9XTtcbiAgICAgKlxuICAgICAqIHZhciBkZWVwID0gXy5jbG9uZURlZXAob2JqZWN0cyk7XG4gICAgICogY29uc29sZS5sb2coZGVlcFswXSA9PT0gb2JqZWN0c1swXSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZURlZXAodmFsdWUpIHtcbiAgICAgIHJldHVybiBiYXNlQ2xvbmUodmFsdWUsIENMT05FX0RFRVBfRkxBRyB8IENMT05FX1NZTUJPTFNfRkxBRyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5jbG9uZVdpdGhgIGV4Y2VwdCB0aGF0IGl0IHJlY3Vyc2l2ZWx5IGNsb25lcyBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byByZWN1cnNpdmVseSBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjbG9uaW5nLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBkZWVwIGNsb25lZCB2YWx1ZS5cbiAgICAgKiBAc2VlIF8uY2xvbmVXaXRoXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIodmFsdWUpIHtcbiAgICAgKiAgIGlmIChfLmlzRWxlbWVudCh2YWx1ZSkpIHtcbiAgICAgKiAgICAgcmV0dXJuIHZhbHVlLmNsb25lTm9kZSh0cnVlKTtcbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgZWwgPSBfLmNsb25lRGVlcFdpdGgoZG9jdW1lbnQuYm9keSwgY3VzdG9taXplcik7XG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhlbCA9PT0gZG9jdW1lbnQuYm9keSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKiBjb25zb2xlLmxvZyhlbC5ub2RlTmFtZSk7XG4gICAgICogLy8gPT4gJ0JPRFknXG4gICAgICogY29uc29sZS5sb2coZWwuY2hpbGROb2Rlcy5sZW5ndGgpO1xuICAgICAqIC8vID0+IDIwXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2xvbmVEZWVwV2l0aCh2YWx1ZSwgY3VzdG9taXplcikge1xuICAgICAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicgPyBjdXN0b21pemVyIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIGJhc2VDbG9uZSh2YWx1ZSwgQ0xPTkVfREVFUF9GTEFHIHwgQ0xPTkVfU1lNQk9MU19GTEFHLCBjdXN0b21pemVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYG9iamVjdGAgY29uZm9ybXMgdG8gYHNvdXJjZWAgYnkgaW52b2tpbmcgdGhlIHByZWRpY2F0ZVxuICAgICAqIHByb3BlcnRpZXMgb2YgYHNvdXJjZWAgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSB2YWx1ZXMgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0byBgXy5jb25mb3Jtc2Agd2hlbiBgc291cmNlYCBpc1xuICAgICAqIHBhcnRpYWxseSBhcHBsaWVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMTQuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHByZWRpY2F0ZXMgdG8gY29uZm9ybSB0by5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYG9iamVjdGAgY29uZm9ybXMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6IDIgfTtcbiAgICAgKlxuICAgICAqIF8uY29uZm9ybXNUbyhvYmplY3QsIHsgJ2InOiBmdW5jdGlvbihuKSB7IHJldHVybiBuID4gMTsgfSB9KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmNvbmZvcm1zVG8ob2JqZWN0LCB7ICdiJzogZnVuY3Rpb24obikgeyByZXR1cm4gbiA+IDI7IH0gfSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb25mb3Jtc1RvKG9iamVjdCwgc291cmNlKSB7XG4gICAgICByZXR1cm4gc291cmNlID09IG51bGwgfHwgYmFzZUNvbmZvcm1zVG8ob2JqZWN0LCBzb3VyY2UsIGtleXMoc291cmNlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYVxuICAgICAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gICAgICogY29tcGFyaXNvbiBiZXR3ZWVuIHR3byB2YWx1ZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGVxdWl2YWxlbnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAgICAgKiB2YXIgb3RoZXIgPSB7ICdhJzogMSB9O1xuICAgICAqXG4gICAgICogXy5lcShvYmplY3QsIG9iamVjdCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5lcShvYmplY3QsIG90aGVyKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5lcSgnYScsICdhJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5lcSgnYScsIE9iamVjdCgnYScpKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5lcShOYU4sIE5hTik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVxKHZhbHVlLCBvdGhlcikge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSBvdGhlciB8fCAodmFsdWUgIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgZ3JlYXRlciB0aGFuIGBvdGhlcmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy45LjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBncmVhdGVyIHRoYW4gYG90aGVyYCxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBzZWUgXy5sdFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmd0KDMsIDEpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uZ3QoMywgMyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uZ3QoMSwgMyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgZ3QgPSBjcmVhdGVSZWxhdGlvbmFsT3BlcmF0aW9uKGJhc2VHdCk7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYG90aGVyYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjkuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0b1xuICAgICAqICBgb3RoZXJgLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQHNlZSBfLmx0ZVxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmd0ZSgzLCAxKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmd0ZSgzLCAzKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmd0ZSgxLCAzKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBndGUgPSBjcmVhdGVSZWxhdGlvbmFsT3BlcmF0aW9uKGZ1bmN0aW9uKHZhbHVlLCBvdGhlcikge1xuICAgICAgcmV0dXJuIHZhbHVlID49IG90aGVyO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGFuIGBhcmd1bWVudHNgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNBcmd1bWVudHMoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0FyZ3VtZW50cyhbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGlzQXJndW1lbnRzID0gYmFzZUlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID8gYmFzZUlzQXJndW1lbnRzIDogZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdjYWxsZWUnKSAmJlxuICAgICAgICAhcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh2YWx1ZSwgJ2NhbGxlZScpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGFuIGBBcnJheWAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBhcnJheSwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXkoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXkoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheSgnYWJjJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheShfLm5vb3ApO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhbiBgQXJyYXlCdWZmZXJgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjMuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXkgYnVmZmVyLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheUJ1ZmZlcihuZXcgQXJyYXlCdWZmZXIoMikpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheUJ1ZmZlcihuZXcgQXJyYXkoMikpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGlzQXJyYXlCdWZmZXIgPSBub2RlSXNBcnJheUJ1ZmZlciA/IGJhc2VVbmFyeShub2RlSXNBcnJheUJ1ZmZlcikgOiBiYXNlSXNBcnJheUJ1ZmZlcjtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGFycmF5LWxpa2UuIEEgdmFsdWUgaXMgY29uc2lkZXJlZCBhcnJheS1saWtlIGlmIGl0J3NcbiAgICAgKiBub3QgYSBmdW5jdGlvbiBhbmQgaGFzIGEgYHZhbHVlLmxlbmd0aGAgdGhhdCdzIGFuIGludGVnZXIgZ3JlYXRlciB0aGFuIG9yXG4gICAgICogZXF1YWwgdG8gYDBgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYE51bWJlci5NQVhfU0FGRV9JTlRFR0VSYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYXJyYXktbGlrZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXlMaWtlKFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5TGlrZShkb2N1bWVudC5ib2R5LmNoaWxkcmVuKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXlMaWtlKCdhYmMnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXlMaWtlKF8ubm9vcCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0FycmF5TGlrZSh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgaXNMZW5ndGgodmFsdWUubGVuZ3RoKSAmJiAhaXNGdW5jdGlvbih2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pc0FycmF5TGlrZWAgZXhjZXB0IHRoYXQgaXQgYWxzbyBjaGVja3MgaWYgYHZhbHVlYFxuICAgICAqIGlzIGFuIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXktbGlrZSBvYmplY3QsXG4gICAgICogIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5TGlrZU9iamVjdChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheUxpa2VPYmplY3QoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5TGlrZU9iamVjdCgnYWJjJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheUxpa2VPYmplY3QoXy5ub29wKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzQXJyYXlMaWtlT2JqZWN0KHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0FycmF5TGlrZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGJvb2xlYW4gcHJpbWl0aXZlIG9yIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBib29sZWFuLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNCb29sZWFuKGZhbHNlKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzQm9vbGVhbihudWxsKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzQm9vbGVhbih2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSBmYWxzZSB8fFxuICAgICAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBib29sVGFnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIGJ1ZmZlci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjMuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0J1ZmZlcihuZXcgQnVmZmVyKDIpKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzQnVmZmVyKG5ldyBVaW50OEFycmF5KDIpKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBpc0J1ZmZlciA9IG5hdGl2ZUlzQnVmZmVyIHx8IHN0dWJGYWxzZTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgRGF0ZWAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGRhdGUgb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNEYXRlKG5ldyBEYXRlKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzRGF0ZSgnTW9uIEFwcmlsIDIzIDIwMTInKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBpc0RhdGUgPSBub2RlSXNEYXRlID8gYmFzZVVuYXJ5KG5vZGVJc0RhdGUpIDogYmFzZUlzRGF0ZTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGxpa2VseSBhIERPTSBlbGVtZW50LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIERPTSBlbGVtZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNFbGVtZW50KGRvY3VtZW50LmJvZHkpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNFbGVtZW50KCc8Ym9keT4nKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRWxlbWVudCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgdmFsdWUubm9kZVR5cGUgPT09IDEgJiYgIWlzUGxhaW5PYmplY3QodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGFuIGVtcHR5IG9iamVjdCwgY29sbGVjdGlvbiwgbWFwLCBvciBzZXQuXG4gICAgICpcbiAgICAgKiBPYmplY3RzIGFyZSBjb25zaWRlcmVkIGVtcHR5IGlmIHRoZXkgaGF2ZSBubyBvd24gZW51bWVyYWJsZSBzdHJpbmcga2V5ZWRcbiAgICAgKiBwcm9wZXJ0aWVzLlxuICAgICAqXG4gICAgICogQXJyYXktbGlrZSB2YWx1ZXMgc3VjaCBhcyBgYXJndW1lbnRzYCBvYmplY3RzLCBhcnJheXMsIGJ1ZmZlcnMsIHN0cmluZ3MsIG9yXG4gICAgICogalF1ZXJ5LWxpa2UgY29sbGVjdGlvbnMgYXJlIGNvbnNpZGVyZWQgZW1wdHkgaWYgdGhleSBoYXZlIGEgYGxlbmd0aGAgb2YgYDBgLlxuICAgICAqIFNpbWlsYXJseSwgbWFwcyBhbmQgc2V0cyBhcmUgY29uc2lkZXJlZCBlbXB0eSBpZiB0aGV5IGhhdmUgYSBgc2l6ZWAgb2YgYDBgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBlbXB0eSwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzRW1wdHkobnVsbCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0VtcHR5KHRydWUpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNFbXB0eSgxKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzRW1wdHkoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc0VtcHR5KHsgJ2EnOiAxIH0pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNFbXB0eSh2YWx1ZSkge1xuICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoaXNBcnJheUxpa2UodmFsdWUpICYmXG4gICAgICAgICAgKGlzQXJyYXkodmFsdWUpIHx8IHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsdWUuc3BsaWNlID09ICdmdW5jdGlvbicgfHxcbiAgICAgICAgICAgIGlzQnVmZmVyKHZhbHVlKSB8fCBpc1R5cGVkQXJyYXkodmFsdWUpIHx8IGlzQXJndW1lbnRzKHZhbHVlKSkpIHtcbiAgICAgICAgcmV0dXJuICF2YWx1ZS5sZW5ndGg7XG4gICAgICB9XG4gICAgICB2YXIgdGFnID0gZ2V0VGFnKHZhbHVlKTtcbiAgICAgIGlmICh0YWcgPT0gbWFwVGFnIHx8IHRhZyA9PSBzZXRUYWcpIHtcbiAgICAgICAgcmV0dXJuICF2YWx1ZS5zaXplO1xuICAgICAgfVxuICAgICAgaWYgKGlzUHJvdG90eXBlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gIWJhc2VLZXlzKHZhbHVlKS5sZW5ndGg7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBrZXkgaW4gdmFsdWUpIHtcbiAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGtleSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgZGVlcCBjb21wYXJpc29uIGJldHdlZW4gdHdvIHZhbHVlcyB0byBkZXRlcm1pbmUgaWYgdGhleSBhcmVcbiAgICAgKiBlcXVpdmFsZW50LlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIHN1cHBvcnRzIGNvbXBhcmluZyBhcnJheXMsIGFycmF5IGJ1ZmZlcnMsIGJvb2xlYW5zLFxuICAgICAqIGRhdGUgb2JqZWN0cywgZXJyb3Igb2JqZWN0cywgbWFwcywgbnVtYmVycywgYE9iamVjdGAgb2JqZWN0cywgcmVnZXhlcyxcbiAgICAgKiBzZXRzLCBzdHJpbmdzLCBzeW1ib2xzLCBhbmQgdHlwZWQgYXJyYXlzLiBgT2JqZWN0YCBvYmplY3RzIGFyZSBjb21wYXJlZFxuICAgICAqIGJ5IHRoZWlyIG93biwgbm90IGluaGVyaXRlZCwgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLiBGdW5jdGlvbnMgYW5kIERPTVxuICAgICAqIG5vZGVzIGFyZSBjb21wYXJlZCBieSBzdHJpY3QgZXF1YWxpdHksIGkuZS4gYD09PWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAgICAgKiB2YXIgb3RoZXIgPSB7ICdhJzogMSB9O1xuICAgICAqXG4gICAgICogXy5pc0VxdWFsKG9iamVjdCwgb3RoZXIpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIG9iamVjdCA9PT0gb3RoZXI7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0VxdWFsKHZhbHVlLCBvdGhlcikge1xuICAgICAgcmV0dXJuIGJhc2VJc0VxdWFsKHZhbHVlLCBvdGhlcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pc0VxdWFsYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjdXN0b21pemVyYCB3aGljaFxuICAgICAqIGlzIGludm9rZWQgdG8gY29tcGFyZSB2YWx1ZXMuIElmIGBjdXN0b21pemVyYCByZXR1cm5zIGB1bmRlZmluZWRgLCBjb21wYXJpc29uc1xuICAgICAqIGFyZSBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBpbnZva2VkIHdpdGggdXAgdG9cbiAgICAgKiBzaXggYXJndW1lbnRzOiAob2JqVmFsdWUsIG90aFZhbHVlIFssIGluZGV4fGtleSwgb2JqZWN0LCBvdGhlciwgc3RhY2tdKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGlzR3JlZXRpbmcodmFsdWUpIHtcbiAgICAgKiAgIHJldHVybiAvXmgoPzppfGVsbG8pJC8udGVzdCh2YWx1ZSk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gY3VzdG9taXplcihvYmpWYWx1ZSwgb3RoVmFsdWUpIHtcbiAgICAgKiAgIGlmIChpc0dyZWV0aW5nKG9ialZhbHVlKSAmJiBpc0dyZWV0aW5nKG90aFZhbHVlKSkge1xuICAgICAqICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbJ2hlbGxvJywgJ2dvb2RieWUnXTtcbiAgICAgKiB2YXIgb3RoZXIgPSBbJ2hpJywgJ2dvb2RieWUnXTtcbiAgICAgKlxuICAgICAqIF8uaXNFcXVhbFdpdGgoYXJyYXksIG90aGVyLCBjdXN0b21pemVyKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNFcXVhbFdpdGgodmFsdWUsIG90aGVyLCBjdXN0b21pemVyKSB7XG4gICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gJ2Z1bmN0aW9uJyA/IGN1c3RvbWl6ZXIgOiB1bmRlZmluZWQ7XG4gICAgICB2YXIgcmVzdWx0ID0gY3VzdG9taXplciA/IGN1c3RvbWl6ZXIodmFsdWUsIG90aGVyKSA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiByZXN1bHQgPT09IHVuZGVmaW5lZCA/IGJhc2VJc0VxdWFsKHZhbHVlLCBvdGhlciwgdW5kZWZpbmVkLCBjdXN0b21pemVyKSA6ICEhcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGFuIGBFcnJvcmAsIGBFdmFsRXJyb3JgLCBgUmFuZ2VFcnJvcmAsIGBSZWZlcmVuY2VFcnJvcmAsXG4gICAgICogYFN5bnRheEVycm9yYCwgYFR5cGVFcnJvcmAsIG9yIGBVUklFcnJvcmAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBlcnJvciBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0Vycm9yKG5ldyBFcnJvcik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0Vycm9yKEVycm9yKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRXJyb3IodmFsdWUpIHtcbiAgICAgIGlmICghaXNPYmplY3RMaWtlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgdGFnID0gYmFzZUdldFRhZyh2YWx1ZSk7XG4gICAgICByZXR1cm4gdGFnID09IGVycm9yVGFnIHx8IHRhZyA9PSBkb21FeGNUYWcgfHxcbiAgICAgICAgKHR5cGVvZiB2YWx1ZS5tZXNzYWdlID09ICdzdHJpbmcnICYmIHR5cGVvZiB2YWx1ZS5uYW1lID09ICdzdHJpbmcnICYmICFpc1BsYWluT2JqZWN0KHZhbHVlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBmaW5pdGUgcHJpbWl0aXZlIG51bWJlci5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBvblxuICAgICAqIFtgTnVtYmVyLmlzRmluaXRlYF0oaHR0cHM6Ly9tZG4uaW8vTnVtYmVyL2lzRmluaXRlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBmaW5pdGUgbnVtYmVyLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNGaW5pdGUoMyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0Zpbml0ZShOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzRmluaXRlKEluZmluaXR5KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc0Zpbml0ZSgnMycpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNGaW5pdGUodmFsdWUpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiYgbmF0aXZlSXNGaW5pdGUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgRnVuY3Rpb25gIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBmdW5jdGlvbiwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzRnVuY3Rpb24oXyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0Z1bmN0aW9uKC9hYmMvKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8vIFRoZSB1c2Ugb2YgYE9iamVjdCN0b1N0cmluZ2AgYXZvaWRzIGlzc3VlcyB3aXRoIHRoZSBgdHlwZW9mYCBvcGVyYXRvclxuICAgICAgLy8gaW4gU2FmYXJpIDkgd2hpY2ggcmV0dXJucyAnb2JqZWN0JyBmb3IgdHlwZWQgYXJyYXlzIGFuZCBvdGhlciBjb25zdHJ1Y3RvcnMuXG4gICAgICB2YXIgdGFnID0gYmFzZUdldFRhZyh2YWx1ZSk7XG4gICAgICByZXR1cm4gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZyB8fCB0YWcgPT0gYXN5bmNUYWcgfHwgdGFnID09IHByb3h5VGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGFuIGludGVnZXIuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb25cbiAgICAgKiBbYE51bWJlci5pc0ludGVnZXJgXShodHRwczovL21kbi5pby9OdW1iZXIvaXNJbnRlZ2VyKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gaW50ZWdlciwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzSW50ZWdlcigzKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzSW50ZWdlcihOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc0ludGVnZXIoSW5maW5pdHkpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzSW50ZWdlcignMycpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNJbnRlZ2VyKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdudW1iZXInICYmIHZhbHVlID09IHRvSW50ZWdlcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBhcnJheS1saWtlIGxlbmd0aC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uXG4gICAgICogW2BUb0xlbmd0aGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRvbGVuZ3RoKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBsZW5ndGgsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0xlbmd0aCgzKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTGVuZ3RoKE51bWJlci5NSU5fVkFMVUUpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzTGVuZ3RoKEluZmluaXR5KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc0xlbmd0aCgnMycpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNMZW5ndGgodmFsdWUpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiZcbiAgICAgICAgdmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8PSBNQVhfU0FGRV9JTlRFR0VSO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHRoZVxuICAgICAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAgICAgKiBvZiBgT2JqZWN0YC4gKGUuZy4gYXJyYXlzLCBmdW5jdGlvbnMsIG9iamVjdHMsIHJlZ2V4ZXMsIGBuZXcgTnVtYmVyKDApYCwgYW5kIGBuZXcgU3RyaW5nKCcnKWApXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzT2JqZWN0KHt9KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzT2JqZWN0KFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc09iamVjdChfLm5vb3ApO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNPYmplY3QobnVsbCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xuICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiAodHlwZSA9PSAnb2JqZWN0JyB8fCB0eXBlID09ICdmdW5jdGlvbicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLiBBIHZhbHVlIGlzIG9iamVjdC1saWtlIGlmIGl0J3Mgbm90IGBudWxsYFxuICAgICAqIGFuZCBoYXMgYSBgdHlwZW9mYCByZXN1bHQgb2YgXCJvYmplY3RcIi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc09iamVjdExpa2Uoe30pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNPYmplY3RMaWtlKFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc09iamVjdExpa2UoXy5ub29wKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc09iamVjdExpa2UobnVsbCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PSAnb2JqZWN0JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYE1hcGAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMy4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG1hcCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzTWFwKG5ldyBNYXApO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNNYXAobmV3IFdlYWtNYXApO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGlzTWFwID0gbm9kZUlzTWFwID8gYmFzZVVuYXJ5KG5vZGVJc01hcCkgOiBiYXNlSXNNYXA7XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIHBhcnRpYWwgZGVlcCBjb21wYXJpc29uIGJldHdlZW4gYG9iamVjdGAgYW5kIGBzb3VyY2VgIHRvXG4gICAgICogZGV0ZXJtaW5lIGlmIGBvYmplY3RgIGNvbnRhaW5zIGVxdWl2YWxlbnQgcHJvcGVydHkgdmFsdWVzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gYF8ubWF0Y2hlc2Agd2hlbiBgc291cmNlYCBpc1xuICAgICAqIHBhcnRpYWxseSBhcHBsaWVkLlxuICAgICAqXG4gICAgICogUGFydGlhbCBjb21wYXJpc29ucyB3aWxsIG1hdGNoIGVtcHR5IGFycmF5IGFuZCBlbXB0eSBvYmplY3QgYHNvdXJjZWBcbiAgICAgKiB2YWx1ZXMgYWdhaW5zdCBhbnkgYXJyYXkgb3Igb2JqZWN0IHZhbHVlLCByZXNwZWN0aXZlbHkuIFNlZSBgXy5pc0VxdWFsYFxuICAgICAqIGZvciBhIGxpc3Qgb2Ygc3VwcG9ydGVkIHZhbHVlIGNvbXBhcmlzb25zLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgdmFsdWVzIHRvIG1hdGNoLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgb2JqZWN0YCBpcyBhIG1hdGNoLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSwgJ2InOiAyIH07XG4gICAgICpcbiAgICAgKiBfLmlzTWF0Y2gob2JqZWN0LCB7ICdiJzogMiB9KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTWF0Y2gob2JqZWN0LCB7ICdiJzogMSB9KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTWF0Y2gob2JqZWN0LCBzb3VyY2UpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT09IHNvdXJjZSB8fCBiYXNlSXNNYXRjaChvYmplY3QsIHNvdXJjZSwgZ2V0TWF0Y2hEYXRhKHNvdXJjZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uaXNNYXRjaGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY3VzdG9taXplcmAgd2hpY2hcbiAgICAgKiBpcyBpbnZva2VkIHRvIGNvbXBhcmUgdmFsdWVzLiBJZiBgY3VzdG9taXplcmAgcmV0dXJucyBgdW5kZWZpbmVkYCwgY29tcGFyaXNvbnNcbiAgICAgKiBhcmUgaGFuZGxlZCBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmAgaXMgaW52b2tlZCB3aXRoIGZpdmVcbiAgICAgKiBhcmd1bWVudHM6IChvYmpWYWx1ZSwgc3JjVmFsdWUsIGluZGV4fGtleSwgb2JqZWN0LCBzb3VyY2UpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgdmFsdWVzIHRvIG1hdGNoLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgb2JqZWN0YCBpcyBhIG1hdGNoLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGlzR3JlZXRpbmcodmFsdWUpIHtcbiAgICAgKiAgIHJldHVybiAvXmgoPzppfGVsbG8pJC8udGVzdCh2YWx1ZSk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gY3VzdG9taXplcihvYmpWYWx1ZSwgc3JjVmFsdWUpIHtcbiAgICAgKiAgIGlmIChpc0dyZWV0aW5nKG9ialZhbHVlKSAmJiBpc0dyZWV0aW5nKHNyY1ZhbHVlKSkge1xuICAgICAqICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnZ3JlZXRpbmcnOiAnaGVsbG8nIH07XG4gICAgICogdmFyIHNvdXJjZSA9IHsgJ2dyZWV0aW5nJzogJ2hpJyB9O1xuICAgICAqXG4gICAgICogXy5pc01hdGNoV2l0aChvYmplY3QsIHNvdXJjZSwgY3VzdG9taXplcik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTWF0Y2hXaXRoKG9iamVjdCwgc291cmNlLCBjdXN0b21pemVyKSB7XG4gICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gJ2Z1bmN0aW9uJyA/IGN1c3RvbWl6ZXIgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gYmFzZUlzTWF0Y2gob2JqZWN0LCBzb3VyY2UsIGdldE1hdGNoRGF0YShzb3VyY2UpLCBjdXN0b21pemVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBgTmFOYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBvblxuICAgICAqIFtgTnVtYmVyLmlzTmFOYF0oaHR0cHM6Ly9tZG4uaW8vTnVtYmVyL2lzTmFOKSBhbmQgaXMgbm90IHRoZSBzYW1lIGFzXG4gICAgICogZ2xvYmFsIFtgaXNOYU5gXShodHRwczovL21kbi5pby9pc05hTikgd2hpY2ggcmV0dXJucyBgdHJ1ZWAgZm9yXG4gICAgICogYHVuZGVmaW5lZGAgYW5kIG90aGVyIG5vbi1udW1iZXIgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBgTmFOYCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzTmFOKE5hTik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc05hTihuZXcgTnVtYmVyKE5hTikpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIGlzTmFOKHVuZGVmaW5lZCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc05hTih1bmRlZmluZWQpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNOYU4odmFsdWUpIHtcbiAgICAgIC8vIEFuIGBOYU5gIHByaW1pdGl2ZSBpcyB0aGUgb25seSB2YWx1ZSB0aGF0IGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuXG4gICAgICAvLyBQZXJmb3JtIHRoZSBgdG9TdHJpbmdUYWdgIGNoZWNrIGZpcnN0IHRvIGF2b2lkIGVycm9ycyB3aXRoIHNvbWVcbiAgICAgIC8vIEFjdGl2ZVggb2JqZWN0cyBpbiBJRS5cbiAgICAgIHJldHVybiBpc051bWJlcih2YWx1ZSkgJiYgdmFsdWUgIT0gK3ZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgcHJpc3RpbmUgbmF0aXZlIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGNhbid0IHJlbGlhYmx5IGRldGVjdCBuYXRpdmUgZnVuY3Rpb25zIGluIHRoZSBwcmVzZW5jZVxuICAgICAqIG9mIHRoZSBjb3JlLWpzIHBhY2thZ2UgYmVjYXVzZSBjb3JlLWpzIGNpcmN1bXZlbnRzIHRoaXMga2luZCBvZiBkZXRlY3Rpb24uXG4gICAgICogRGVzcGl0ZSBtdWx0aXBsZSByZXF1ZXN0cywgdGhlIGNvcmUtanMgbWFpbnRhaW5lciBoYXMgbWFkZSBpdCBjbGVhcjogYW55XG4gICAgICogYXR0ZW1wdCB0byBmaXggdGhlIGRldGVjdGlvbiB3aWxsIGJlIG9ic3RydWN0ZWQuIEFzIGEgcmVzdWx0LCB3ZSdyZSBsZWZ0XG4gICAgICogd2l0aCBsaXR0bGUgY2hvaWNlIGJ1dCB0byB0aHJvdyBhbiBlcnJvci4gVW5mb3J0dW5hdGVseSwgdGhpcyBhbHNvIGFmZmVjdHNcbiAgICAgKiBwYWNrYWdlcywgbGlrZSBbYmFiZWwtcG9seWZpbGxdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2JhYmVsLXBvbHlmaWxsKSxcbiAgICAgKiB3aGljaCByZWx5IG9uIGNvcmUtanMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbmF0aXZlIGZ1bmN0aW9uLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNOYXRpdmUoQXJyYXkucHJvdG90eXBlLnB1c2gpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNOYXRpdmUoXyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc05hdGl2ZSh2YWx1ZSkge1xuICAgICAgaWYgKGlzTWFza2FibGUodmFsdWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihDT1JFX0VSUk9SX1RFWFQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VJc05hdGl2ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYG51bGxgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBgbnVsbGAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc051bGwobnVsbCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc051bGwodm9pZCAwKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTnVsbCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGBudWxsYCBvciBgdW5kZWZpbmVkYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgbnVsbGlzaCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzTmlsKG51bGwpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNOaWwodm9pZCAwKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTmlsKE5hTik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc05pbCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlID09IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBOdW1iZXJgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVG8gZXhjbHVkZSBgSW5maW5pdHlgLCBgLUluZmluaXR5YCwgYW5kIGBOYU5gLCB3aGljaCBhcmVcbiAgICAgKiBjbGFzc2lmaWVkIGFzIG51bWJlcnMsIHVzZSB0aGUgYF8uaXNGaW5pdGVgIG1ldGhvZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBudW1iZXIsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc051bWJlcigzKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTnVtYmVyKE51bWJlci5NSU5fVkFMVUUpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNOdW1iZXIoSW5maW5pdHkpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNOdW1iZXIoJzMnKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTnVtYmVyKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdudW1iZXInIHx8XG4gICAgICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IG51bWJlclRhZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIHRoYXQgaXMsIGFuIG9iamVjdCBjcmVhdGVkIGJ5IHRoZVxuICAgICAqIGBPYmplY3RgIGNvbnN0cnVjdG9yIG9yIG9uZSB3aXRoIGEgYFtbUHJvdG90eXBlXV1gIG9mIGBudWxsYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjguMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBfLmlzUGxhaW5PYmplY3QobmV3IEZvbyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNQbGFpbk9iamVjdChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzUGxhaW5PYmplY3QoeyAneCc6IDAsICd5JzogMCB9KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzUGxhaW5PYmplY3QoT2JqZWN0LmNyZWF0ZShudWxsKSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgICAgIGlmICghaXNPYmplY3RMaWtlKHZhbHVlKSB8fCBiYXNlR2V0VGFnKHZhbHVlKSAhPSBvYmplY3RUYWcpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIHByb3RvID0gZ2V0UHJvdG90eXBlKHZhbHVlKTtcbiAgICAgIGlmIChwcm90byA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHZhciBDdG9yID0gaGFzT3duUHJvcGVydHkuY2FsbChwcm90bywgJ2NvbnN0cnVjdG9yJykgJiYgcHJvdG8uY29uc3RydWN0b3I7XG4gICAgICByZXR1cm4gdHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yIGluc3RhbmNlb2YgQ3RvciAmJlxuICAgICAgICBmdW5jVG9TdHJpbmcuY2FsbChDdG9yKSA9PSBvYmplY3RDdG9yU3RyaW5nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgUmVnRXhwYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcmVnZXhwLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNSZWdFeHAoL2FiYy8pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNSZWdFeHAoJy9hYmMvJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgaXNSZWdFeHAgPSBub2RlSXNSZWdFeHAgPyBiYXNlVW5hcnkobm9kZUlzUmVnRXhwKSA6IGJhc2VJc1JlZ0V4cDtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgc2FmZSBpbnRlZ2VyLiBBbiBpbnRlZ2VyIGlzIHNhZmUgaWYgaXQncyBhbiBJRUVFLTc1NFxuICAgICAqIGRvdWJsZSBwcmVjaXNpb24gbnVtYmVyIHdoaWNoIGlzbid0IHRoZSByZXN1bHQgb2YgYSByb3VuZGVkIHVuc2FmZSBpbnRlZ2VyLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGJhc2VkIG9uXG4gICAgICogW2BOdW1iZXIuaXNTYWZlSW50ZWdlcmBdKGh0dHBzOi8vbWRuLmlvL051bWJlci9pc1NhZmVJbnRlZ2VyKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzYWZlIGludGVnZXIsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc1NhZmVJbnRlZ2VyKDMpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNTYWZlSW50ZWdlcihOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc1NhZmVJbnRlZ2VyKEluZmluaXR5KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc1NhZmVJbnRlZ2VyKCczJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc1NhZmVJbnRlZ2VyKHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNJbnRlZ2VyKHZhbHVlKSAmJiB2YWx1ZSA+PSAtTUFYX1NBRkVfSU5URUdFUiAmJiB2YWx1ZSA8PSBNQVhfU0FGRV9JTlRFR0VSO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU2V0YCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4zLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc2V0LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNTZXQobmV3IFNldCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc1NldChuZXcgV2Vha1NldCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgaXNTZXQgPSBub2RlSXNTZXQgPyBiYXNlVW5hcnkobm9kZUlzU2V0KSA6IGJhc2VJc1NldDtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3RyaW5nYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHN0cmluZywgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzU3RyaW5nKCdhYmMnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzU3RyaW5nKDEpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNTdHJpbmcodmFsdWUpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgfHxcbiAgICAgICAgKCFpc0FycmF5KHZhbHVlKSAmJiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHN0cmluZ1RhZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTeW1ib2xgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc3ltYm9sLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNTeW1ib2woU3ltYm9sLml0ZXJhdG9yKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzU3ltYm9sKCdhYmMnKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzU3ltYm9sKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzeW1ib2wnIHx8XG4gICAgICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHN5bWJvbFRhZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIHR5cGVkIGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHR5cGVkIGFycmF5LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNUeXBlZEFycmF5KG5ldyBVaW50OEFycmF5KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzVHlwZWRBcnJheShbXSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgaXNUeXBlZEFycmF5ID0gbm9kZUlzVHlwZWRBcnJheSA/IGJhc2VVbmFyeShub2RlSXNUeXBlZEFycmF5KSA6IGJhc2VJc1R5cGVkQXJyYXk7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBgdW5kZWZpbmVkYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYHVuZGVmaW5lZGAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc1VuZGVmaW5lZCh2b2lkIDApO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNVbmRlZmluZWQobnVsbCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc1VuZGVmaW5lZCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBXZWFrTWFwYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4zLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgd2VhayBtYXAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc1dlYWtNYXAobmV3IFdlYWtNYXApO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNXZWFrTWFwKG5ldyBNYXApO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNXZWFrTWFwKHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBnZXRUYWcodmFsdWUpID09IHdlYWtNYXBUYWc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBXZWFrU2V0YCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4zLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgd2VhayBzZXQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc1dlYWtTZXQobmV3IFdlYWtTZXQpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNXZWFrU2V0KG5ldyBTZXQpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNXZWFrU2V0KHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSB3ZWFrU2V0VGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGxlc3MgdGhhbiBgb3RoZXJgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuOS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgbGVzcyB0aGFuIGBvdGhlcmAsXG4gICAgICogIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAc2VlIF8uZ3RcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5sdCgxLCAzKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmx0KDMsIDMpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmx0KDMsIDEpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGx0ID0gY3JlYXRlUmVsYXRpb25hbE9wZXJhdGlvbihiYXNlTHQpO1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGBvdGhlcmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy45LjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG9cbiAgICAgKiAgYG90aGVyYCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBzZWUgXy5ndGVcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5sdGUoMSwgMyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5sdGUoMywgMyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5sdGUoMywgMSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgbHRlID0gY3JlYXRlUmVsYXRpb25hbE9wZXJhdGlvbihmdW5jdGlvbih2YWx1ZSwgb3RoZXIpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA8PSBvdGhlcjtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYW4gYXJyYXkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9BcnJheSh7ICdhJzogMSwgJ2InOiAyIH0pO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqXG4gICAgICogXy50b0FycmF5KCdhYmMnKTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYicsICdjJ11cbiAgICAgKlxuICAgICAqIF8udG9BcnJheSgxKTtcbiAgICAgKiAvLyA9PiBbXVxuICAgICAqXG4gICAgICogXy50b0FycmF5KG51bGwpO1xuICAgICAqIC8vID0+IFtdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9BcnJheSh2YWx1ZSkge1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBpZiAoaXNBcnJheUxpa2UodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBpc1N0cmluZyh2YWx1ZSkgPyBzdHJpbmdUb0FycmF5KHZhbHVlKSA6IGNvcHlBcnJheSh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAoc3ltSXRlcmF0b3IgJiYgdmFsdWVbc3ltSXRlcmF0b3JdKSB7XG4gICAgICAgIHJldHVybiBpdGVyYXRvclRvQXJyYXkodmFsdWVbc3ltSXRlcmF0b3JdKCkpO1xuICAgICAgfVxuICAgICAgdmFyIHRhZyA9IGdldFRhZyh2YWx1ZSksXG4gICAgICAgICAgZnVuYyA9IHRhZyA9PSBtYXBUYWcgPyBtYXBUb0FycmF5IDogKHRhZyA9PSBzZXRUYWcgPyBzZXRUb0FycmF5IDogdmFsdWVzKTtcblxuICAgICAgcmV0dXJuIGZ1bmModmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBmaW5pdGUgbnVtYmVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMTIuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgbnVtYmVyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRvRmluaXRlKDMuMik7XG4gICAgICogLy8gPT4gMy4yXG4gICAgICpcbiAgICAgKiBfLnRvRmluaXRlKE51bWJlci5NSU5fVkFMVUUpO1xuICAgICAqIC8vID0+IDVlLTMyNFxuICAgICAqXG4gICAgICogXy50b0Zpbml0ZShJbmZpbml0eSk7XG4gICAgICogLy8gPT4gMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDhcbiAgICAgKlxuICAgICAqIF8udG9GaW5pdGUoJzMuMicpO1xuICAgICAqIC8vID0+IDMuMlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvRmluaXRlKHZhbHVlKSB7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogMDtcbiAgICAgIH1cbiAgICAgIHZhbHVlID0gdG9OdW1iZXIodmFsdWUpO1xuICAgICAgaWYgKHZhbHVlID09PSBJTkZJTklUWSB8fCB2YWx1ZSA9PT0gLUlORklOSVRZKSB7XG4gICAgICAgIHZhciBzaWduID0gKHZhbHVlIDwgMCA/IC0xIDogMSk7XG4gICAgICAgIHJldHVybiBzaWduICogTUFYX0lOVEVHRVI7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWUgPT09IHZhbHVlID8gdmFsdWUgOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYW4gaW50ZWdlci5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uXG4gICAgICogW2BUb0ludGVnZXJgXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtdG9pbnRlZ2VyKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgaW50ZWdlci5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50b0ludGVnZXIoMy4yKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICpcbiAgICAgKiBfLnRvSW50ZWdlcihOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiAwXG4gICAgICpcbiAgICAgKiBfLnRvSW50ZWdlcihJbmZpbml0eSk7XG4gICAgICogLy8gPT4gMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDhcbiAgICAgKlxuICAgICAqIF8udG9JbnRlZ2VyKCczLjInKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9JbnRlZ2VyKHZhbHVlKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gdG9GaW5pdGUodmFsdWUpLFxuICAgICAgICAgIHJlbWFpbmRlciA9IHJlc3VsdCAlIDE7XG5cbiAgICAgIHJldHVybiByZXN1bHQgPT09IHJlc3VsdCA/IChyZW1haW5kZXIgPyByZXN1bHQgLSByZW1haW5kZXIgOiByZXN1bHQpIDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGFuIGludGVnZXIgc3VpdGFibGUgZm9yIHVzZSBhcyB0aGUgbGVuZ3RoIG9mIGFuXG4gICAgICogYXJyYXktbGlrZSBvYmplY3QuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb25cbiAgICAgKiBbYFRvTGVuZ3RoYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtdG9sZW5ndGgpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBpbnRlZ2VyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRvTGVuZ3RoKDMuMik7XG4gICAgICogLy8gPT4gM1xuICAgICAqXG4gICAgICogXy50b0xlbmd0aChOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiAwXG4gICAgICpcbiAgICAgKiBfLnRvTGVuZ3RoKEluZmluaXR5KTtcbiAgICAgKiAvLyA9PiA0Mjk0OTY3Mjk1XG4gICAgICpcbiAgICAgKiBfLnRvTGVuZ3RoKCczLjInKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9MZW5ndGgodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA/IGJhc2VDbGFtcCh0b0ludGVnZXIodmFsdWUpLCAwLCBNQVhfQVJSQVlfTEVOR1RIKSA6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBhIG51bWJlci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9OdW1iZXIoMy4yKTtcbiAgICAgKiAvLyA9PiAzLjJcbiAgICAgKlxuICAgICAqIF8udG9OdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gICAgICogLy8gPT4gNWUtMzI0XG4gICAgICpcbiAgICAgKiBfLnRvTnVtYmVyKEluZmluaXR5KTtcbiAgICAgKiAvLyA9PiBJbmZpbml0eVxuICAgICAqXG4gICAgICogXy50b051bWJlcignMy4yJyk7XG4gICAgICogLy8gPT4gMy4yXG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9OdW1iZXIodmFsdWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKGlzU3ltYm9sKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gTkFOO1xuICAgICAgfVxuICAgICAgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICB2YXIgb3RoZXIgPSB0eXBlb2YgdmFsdWUudmFsdWVPZiA9PSAnZnVuY3Rpb24nID8gdmFsdWUudmFsdWVPZigpIDogdmFsdWU7XG4gICAgICAgIHZhbHVlID0gaXNPYmplY3Qob3RoZXIpID8gKG90aGVyICsgJycpIDogb3RoZXI7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogK3ZhbHVlO1xuICAgICAgfVxuICAgICAgdmFsdWUgPSBiYXNlVHJpbSh2YWx1ZSk7XG4gICAgICB2YXIgaXNCaW5hcnkgPSByZUlzQmluYXJ5LnRlc3QodmFsdWUpO1xuICAgICAgcmV0dXJuIChpc0JpbmFyeSB8fCByZUlzT2N0YWwudGVzdCh2YWx1ZSkpXG4gICAgICAgID8gZnJlZVBhcnNlSW50KHZhbHVlLnNsaWNlKDIpLCBpc0JpbmFyeSA/IDIgOiA4KVxuICAgICAgICA6IChyZUlzQmFkSGV4LnRlc3QodmFsdWUpID8gTkFOIDogK3ZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgcGxhaW4gb2JqZWN0IGZsYXR0ZW5pbmcgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nXG4gICAgICoga2V5ZWQgcHJvcGVydGllcyBvZiBgdmFsdWVgIHRvIG93biBwcm9wZXJ0aWVzIG9mIHRoZSBwbGFpbiBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY29udmVydGVkIHBsYWluIG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy5hc3NpZ24oeyAnYSc6IDEgfSwgbmV3IEZvbyk7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XG4gICAgICpcbiAgICAgKiBfLmFzc2lnbih7ICdhJzogMSB9LCBfLnRvUGxhaW5PYmplY3QobmV3IEZvbykpO1xuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMyB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9QbGFpbk9iamVjdCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGNvcHlPYmplY3QodmFsdWUsIGtleXNJbih2YWx1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzYWZlIGludGVnZXIuIEEgc2FmZSBpbnRlZ2VyIGNhbiBiZSBjb21wYXJlZCBhbmRcbiAgICAgKiByZXByZXNlbnRlZCBjb3JyZWN0bHkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgY29udmVydGVkIGludGVnZXIuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9TYWZlSW50ZWdlcigzLjIpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIF8udG9TYWZlSW50ZWdlcihOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiAwXG4gICAgICpcbiAgICAgKiBfLnRvU2FmZUludGVnZXIoSW5maW5pdHkpO1xuICAgICAqIC8vID0+IDkwMDcxOTkyNTQ3NDA5OTFcbiAgICAgKlxuICAgICAqIF8udG9TYWZlSW50ZWdlcignMy4yJyk7XG4gICAgICogLy8gPT4gM1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvU2FmZUludGVnZXIodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICA/IGJhc2VDbGFtcCh0b0ludGVnZXIodmFsdWUpLCAtTUFYX1NBRkVfSU5URUdFUiwgTUFYX1NBRkVfSU5URUdFUilcbiAgICAgICAgOiAodmFsdWUgPT09IDAgPyB2YWx1ZSA6IDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcuIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBmb3IgYG51bGxgXG4gICAgICogYW5kIGB1bmRlZmluZWRgIHZhbHVlcy4gVGhlIHNpZ24gb2YgYC0wYCBpcyBwcmVzZXJ2ZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50b1N0cmluZyhudWxsKTtcbiAgICAgKiAvLyA9PiAnJ1xuICAgICAqXG4gICAgICogXy50b1N0cmluZygtMCk7XG4gICAgICogLy8gPT4gJy0wJ1xuICAgICAqXG4gICAgICogXy50b1N0cmluZyhbMSwgMiwgM10pO1xuICAgICAqIC8vID0+ICcxLDIsMydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0b1N0cmluZyh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlID09IG51bGwgPyAnJyA6IGJhc2VUb1N0cmluZyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQXNzaWducyBvd24gZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydGllcyBvZiBzb3VyY2Ugb2JqZWN0cyB0byB0aGVcbiAgICAgKiBkZXN0aW5hdGlvbiBvYmplY3QuIFNvdXJjZSBvYmplY3RzIGFyZSBhcHBsaWVkIGZyb20gbGVmdCB0byByaWdodC5cbiAgICAgKiBTdWJzZXF1ZW50IHNvdXJjZXMgb3ZlcndyaXRlIHByb3BlcnR5IGFzc2lnbm1lbnRzIG9mIHByZXZpb3VzIHNvdXJjZXMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YCBhbmQgaXMgbG9vc2VseSBiYXNlZCBvblxuICAgICAqIFtgT2JqZWN0LmFzc2lnbmBdKGh0dHBzOi8vbWRuLmlvL09iamVjdC9hc3NpZ24pLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMTAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IFtzb3VyY2VzXSBUaGUgc291cmNlIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAc2VlIF8uYXNzaWduSW5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBCYXIoKSB7XG4gICAgICogICB0aGlzLmMgPSAzO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYiA9IDI7XG4gICAgICogQmFyLnByb3RvdHlwZS5kID0gNDtcbiAgICAgKlxuICAgICAqIF8uYXNzaWduKHsgJ2EnOiAwIH0sIG5ldyBGb28sIG5ldyBCYXIpO1xuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYyc6IDMgfVxuICAgICAqL1xuICAgIHZhciBhc3NpZ24gPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSkge1xuICAgICAgaWYgKGlzUHJvdG90eXBlKHNvdXJjZSkgfHwgaXNBcnJheUxpa2Uoc291cmNlKSkge1xuICAgICAgICBjb3B5T2JqZWN0KHNvdXJjZSwga2V5cyhzb3VyY2UpLCBvYmplY3QpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBzb3VyY2Vba2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uYXNzaWduYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIG93biBhbmRcbiAgICAgKiBpbmhlcml0ZWQgc291cmNlIHByb3BlcnRpZXMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBhbGlhcyBleHRlbmRcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQHNlZSBfLmFzc2lnblxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEJhcigpIHtcbiAgICAgKiAgIHRoaXMuYyA9IDM7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5iID0gMjtcbiAgICAgKiBCYXIucHJvdG90eXBlLmQgPSA0O1xuICAgICAqXG4gICAgICogXy5hc3NpZ25Jbih7ICdhJzogMCB9LCBuZXcgRm9vLCBuZXcgQmFyKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDMsICdkJzogNCB9XG4gICAgICovXG4gICAgdmFyIGFzc2lnbkluID0gY3JlYXRlQXNzaWduZXIoZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2UpIHtcbiAgICAgIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzSW4oc291cmNlKSwgb2JqZWN0KTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uYXNzaWduSW5gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGN1c3RvbWl6ZXJgXG4gICAgICogd2hpY2ggaXMgaW52b2tlZCB0byBwcm9kdWNlIHRoZSBhc3NpZ25lZCB2YWx1ZXMuIElmIGBjdXN0b21pemVyYCByZXR1cm5zXG4gICAgICogYHVuZGVmaW5lZGAsIGFzc2lnbm1lbnQgaXMgaGFuZGxlZCBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmBcbiAgICAgKiBpcyBpbnZva2VkIHdpdGggZml2ZSBhcmd1bWVudHM6IChvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0LCBzb3VyY2UpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAYWxpYXMgZXh0ZW5kV2l0aFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IHNvdXJjZXMgVGhlIHNvdXJjZSBvYmplY3RzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGFzc2lnbmVkIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBzZWUgXy5hc3NpZ25XaXRoXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlKSB7XG4gICAgICogICByZXR1cm4gXy5pc1VuZGVmaW5lZChvYmpWYWx1ZSkgPyBzcmNWYWx1ZSA6IG9ialZhbHVlO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHZhciBkZWZhdWx0cyA9IF8ucGFydGlhbFJpZ2h0KF8uYXNzaWduSW5XaXRoLCBjdXN0b21pemVyKTtcbiAgICAgKlxuICAgICAqIGRlZmF1bHRzKHsgJ2EnOiAxIH0sIHsgJ2InOiAyIH0sIHsgJ2EnOiAzIH0pO1xuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIgfVxuICAgICAqL1xuICAgIHZhciBhc3NpZ25JbldpdGggPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzSW4oc291cmNlKSwgb2JqZWN0LCBjdXN0b21pemVyKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uYXNzaWduYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjdXN0b21pemVyYFxuICAgICAqIHdoaWNoIGlzIGludm9rZWQgdG8gcHJvZHVjZSB0aGUgYXNzaWduZWQgdmFsdWVzLiBJZiBgY3VzdG9taXplcmAgcmV0dXJuc1xuICAgICAqIGB1bmRlZmluZWRgLCBhc3NpZ25tZW50IGlzIGhhbmRsZWQgYnkgdGhlIG1ldGhvZCBpbnN0ZWFkLiBUaGUgYGN1c3RvbWl6ZXJgXG4gICAgICogaXMgaW52b2tlZCB3aXRoIGZpdmUgYXJndW1lbnRzOiAob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCwgc291cmNlKS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gey4uLk9iamVjdH0gc291cmNlcyBUaGUgc291cmNlIG9iamVjdHMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQHNlZSBfLmFzc2lnbkluV2l0aFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBjdXN0b21pemVyKG9ialZhbHVlLCBzcmNWYWx1ZSkge1xuICAgICAqICAgcmV0dXJuIF8uaXNVbmRlZmluZWQob2JqVmFsdWUpID8gc3JjVmFsdWUgOiBvYmpWYWx1ZTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgZGVmYXVsdHMgPSBfLnBhcnRpYWxSaWdodChfLmFzc2lnbldpdGgsIGN1c3RvbWl6ZXIpO1xuICAgICAqXG4gICAgICogZGVmYXVsdHMoeyAnYSc6IDEgfSwgeyAnYic6IDIgfSwgeyAnYSc6IDMgfSk7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XG4gICAgICovXG4gICAgdmFyIGFzc2lnbldpdGggPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzKHNvdXJjZSksIG9iamVjdCwgY3VzdG9taXplcik7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIGBwYXRoc2Agb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMS4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0gey4uLihzdHJpbmd8c3RyaW5nW10pfSBbcGF0aHNdIFRoZSBwcm9wZXJ0eSBwYXRocyB0byBwaWNrLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcGlja2VkIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MnOiAzIH0gfSwgNF0gfTtcbiAgICAgKlxuICAgICAqIF8uYXQob2JqZWN0LCBbJ2FbMF0uYi5jJywgJ2FbMV0nXSk7XG4gICAgICogLy8gPT4gWzMsIDRdXG4gICAgICovXG4gICAgdmFyIGF0ID0gZmxhdFJlc3QoYmFzZUF0KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gb2JqZWN0IHRoYXQgaW5oZXJpdHMgZnJvbSB0aGUgYHByb3RvdHlwZWAgb2JqZWN0LiBJZiBhXG4gICAgICogYHByb3BlcnRpZXNgIG9iamVjdCBpcyBnaXZlbiwgaXRzIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzXG4gICAgICogYXJlIGFzc2lnbmVkIHRvIHRoZSBjcmVhdGVkIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjMuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gcHJvdG90eXBlIFRoZSBvYmplY3QgdG8gaW5oZXJpdCBmcm9tLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbcHJvcGVydGllc10gVGhlIHByb3BlcnRpZXMgdG8gYXNzaWduIHRvIHRoZSBvYmplY3QuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gU2hhcGUoKSB7XG4gICAgICogICB0aGlzLnggPSAwO1xuICAgICAqICAgdGhpcy55ID0gMDtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBDaXJjbGUoKSB7XG4gICAgICogICBTaGFwZS5jYWxsKHRoaXMpO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIENpcmNsZS5wcm90b3R5cGUgPSBfLmNyZWF0ZShTaGFwZS5wcm90b3R5cGUsIHtcbiAgICAgKiAgICdjb25zdHJ1Y3Rvcic6IENpcmNsZVxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogdmFyIGNpcmNsZSA9IG5ldyBDaXJjbGU7XG4gICAgICogY2lyY2xlIGluc3RhbmNlb2YgQ2lyY2xlO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIGNpcmNsZSBpbnN0YW5jZW9mIFNoYXBlO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGUocHJvdG90eXBlLCBwcm9wZXJ0aWVzKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gYmFzZUNyZWF0ZShwcm90b3R5cGUpO1xuICAgICAgcmV0dXJuIHByb3BlcnRpZXMgPT0gbnVsbCA/IHJlc3VsdCA6IGJhc2VBc3NpZ24ocmVzdWx0LCBwcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBc3NpZ25zIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgb2Ygc291cmNlXG4gICAgICogb2JqZWN0cyB0byB0aGUgZGVzdGluYXRpb24gb2JqZWN0IGZvciBhbGwgZGVzdGluYXRpb24gcHJvcGVydGllcyB0aGF0XG4gICAgICogcmVzb2x2ZSB0byBgdW5kZWZpbmVkYC4gU291cmNlIG9iamVjdHMgYXJlIGFwcGxpZWQgZnJvbSBsZWZ0IHRvIHJpZ2h0LlxuICAgICAqIE9uY2UgYSBwcm9wZXJ0eSBpcyBzZXQsIGFkZGl0aW9uYWwgdmFsdWVzIG9mIHRoZSBzYW1lIHByb3BlcnR5IGFyZSBpZ25vcmVkLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQHNlZSBfLmRlZmF1bHRzRGVlcFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRlZmF1bHRzKHsgJ2EnOiAxIH0sIHsgJ2InOiAyIH0sIHsgJ2EnOiAzIH0pO1xuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIgfVxuICAgICAqL1xuICAgIHZhciBkZWZhdWx0cyA9IGJhc2VSZXN0KGZ1bmN0aW9uKG9iamVjdCwgc291cmNlcykge1xuICAgICAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG5cbiAgICAgIHZhciBpbmRleCA9IC0xO1xuICAgICAgdmFyIGxlbmd0aCA9IHNvdXJjZXMubGVuZ3RoO1xuICAgICAgdmFyIGd1YXJkID0gbGVuZ3RoID4gMiA/IHNvdXJjZXNbMl0gOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzb3VyY2VzWzBdLCBzb3VyY2VzWzFdLCBndWFyZCkpIHtcbiAgICAgICAgbGVuZ3RoID0gMTtcbiAgICAgIH1cblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IHNvdXJjZXNbaW5kZXhdO1xuICAgICAgICB2YXIgcHJvcHMgPSBrZXlzSW4oc291cmNlKTtcbiAgICAgICAgdmFyIHByb3BzSW5kZXggPSAtMTtcbiAgICAgICAgdmFyIHByb3BzTGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gICAgICAgIHdoaWxlICgrK3Byb3BzSW5kZXggPCBwcm9wc0xlbmd0aCkge1xuICAgICAgICAgIHZhciBrZXkgPSBwcm9wc1twcm9wc0luZGV4XTtcbiAgICAgICAgICB2YXIgdmFsdWUgPSBvYmplY3Rba2V5XTtcblxuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgIChlcSh2YWx1ZSwgb2JqZWN0UHJvdG9ba2V5XSkgJiYgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSkge1xuICAgICAgICAgICAgb2JqZWN0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZGVmYXVsdHNgIGV4Y2VwdCB0aGF0IGl0IHJlY3Vyc2l2ZWx5IGFzc2lnbnNcbiAgICAgKiBkZWZhdWx0IHByb3BlcnRpZXMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjEwLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQHNlZSBfLmRlZmF1bHRzXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGVmYXVsdHNEZWVwKHsgJ2EnOiB7ICdiJzogMiB9IH0sIHsgJ2EnOiB7ICdiJzogMSwgJ2MnOiAzIH0gfSk7XG4gICAgICogLy8gPT4geyAnYSc6IHsgJ2InOiAyLCAnYyc6IDMgfSB9XG4gICAgICovXG4gICAgdmFyIGRlZmF1bHRzRGVlcCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgIGFyZ3MucHVzaCh1bmRlZmluZWQsIGN1c3RvbURlZmF1bHRzTWVyZ2UpO1xuICAgICAgcmV0dXJuIGFwcGx5KG1lcmdlV2l0aCwgdW5kZWZpbmVkLCBhcmdzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmluZGAgZXhjZXB0IHRoYXQgaXQgcmV0dXJucyB0aGUga2V5IG9mIHRoZSBmaXJzdFxuICAgICAqIGVsZW1lbnQgYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yIGluc3RlYWQgb2YgdGhlIGVsZW1lbnQgaXRzZWxmLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDEuMS4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfHVuZGVmaW5lZH0gUmV0dXJucyB0aGUga2V5IG9mIHRoZSBtYXRjaGVkIGVsZW1lbnQsXG4gICAgICogIGVsc2UgYHVuZGVmaW5lZGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IHtcbiAgICAgKiAgICdiYXJuZXknOiAgeyAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICAnZnJlZCc6ICAgIHsgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgICdwZWJibGVzJzogeyAnYWdlJzogMSwgICdhY3RpdmUnOiB0cnVlIH1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogXy5maW5kS2V5KHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLmFnZSA8IDQwOyB9KTtcbiAgICAgKiAvLyA9PiAnYmFybmV5JyAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRLZXkodXNlcnMsIHsgJ2FnZSc6IDEsICdhY3RpdmUnOiB0cnVlIH0pO1xuICAgICAqIC8vID0+ICdwZWJibGVzJ1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZEtleSh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+ICdmcmVkJ1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maW5kS2V5KHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gJ2Jhcm5leSdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaW5kS2V5KG9iamVjdCwgcHJlZGljYXRlKSB7XG4gICAgICByZXR1cm4gYmFzZUZpbmRLZXkob2JqZWN0LCBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpLCBiYXNlRm9yT3duKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZpbmRLZXlgIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2ZcbiAgICAgKiBhIGNvbGxlY3Rpb24gaW4gdGhlIG9wcG9zaXRlIG9yZGVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfHVuZGVmaW5lZH0gUmV0dXJucyB0aGUga2V5IG9mIHRoZSBtYXRjaGVkIGVsZW1lbnQsXG4gICAgICogIGVsc2UgYHVuZGVmaW5lZGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IHtcbiAgICAgKiAgICdiYXJuZXknOiAgeyAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICAnZnJlZCc6ICAgIHsgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgICdwZWJibGVzJzogeyAnYWdlJzogMSwgICdhY3RpdmUnOiB0cnVlIH1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogXy5maW5kTGFzdEtleSh1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gby5hZ2UgPCA0MDsgfSk7XG4gICAgICogLy8gPT4gcmV0dXJucyAncGViYmxlcycgYXNzdW1pbmcgYF8uZmluZEtleWAgcmV0dXJucyAnYmFybmV5J1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRMYXN0S2V5KHVzZXJzLCB7ICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSk7XG4gICAgICogLy8gPT4gJ2Jhcm5leSdcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRMYXN0S2V5KHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XG4gICAgICogLy8gPT4gJ2ZyZWQnXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRMYXN0S2V5KHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gJ3BlYmJsZXMnXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmluZExhc3RLZXkob2JqZWN0LCBwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiBiYXNlRmluZEtleShvYmplY3QsIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIGJhc2VGb3JPd25SaWdodCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXRlcmF0ZXMgb3ZlciBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzIG9mIGFuXG4gICAgICogb2JqZWN0IGFuZCBpbnZva2VzIGBpdGVyYXRlZWAgZm9yIGVhY2ggcHJvcGVydHkuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwga2V5LCBvYmplY3QpLiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXRcbiAgICAgKiBpdGVyYXRpb24gZWFybHkgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjMuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQHNlZSBfLmZvckluUmlnaHRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8uZm9ySW4obmV3IEZvbywgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAqICAgY29uc29sZS5sb2coa2V5KTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBMb2dzICdhJywgJ2InLCB0aGVuICdjJyAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmb3JJbihvYmplY3QsIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGxcbiAgICAgICAgPyBvYmplY3RcbiAgICAgICAgOiBiYXNlRm9yKG9iamVjdCwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDMpLCBrZXlzSW4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZm9ySW5gIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgcHJvcGVydGllcyBvZlxuICAgICAqIGBvYmplY3RgIGluIHRoZSBvcHBvc2l0ZSBvcmRlci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQHNlZSBfLmZvckluXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLmZvckluUmlnaHQobmV3IEZvbywgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAqICAgY29uc29sZS5sb2coa2V5KTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBMb2dzICdjJywgJ2InLCB0aGVuICdhJyBhc3N1bWluZyBgXy5mb3JJbmAgbG9ncyAnYScsICdiJywgdGhlbiAnYycuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZm9ySW5SaWdodChvYmplY3QsIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGxcbiAgICAgICAgPyBvYmplY3RcbiAgICAgICAgOiBiYXNlRm9yUmlnaHQob2JqZWN0LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMyksIGtleXNJbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXRlcmF0ZXMgb3ZlciBvd24gZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydGllcyBvZiBhbiBvYmplY3QgYW5kXG4gICAgICogaW52b2tlcyBgaXRlcmF0ZWVgIGZvciBlYWNoIHByb3BlcnR5LiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIHRocmVlXG4gICAgICogYXJndW1lbnRzOiAodmFsdWUsIGtleSwgb2JqZWN0KS4gSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvblxuICAgICAqIGVhcmx5IGJ5IGV4cGxpY2l0bHkgcmV0dXJuaW5nIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4zLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBzZWUgXy5mb3JPd25SaWdodFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy5mb3JPd24obmV3IEZvbywgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAqICAgY29uc29sZS5sb2coa2V5KTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBMb2dzICdhJyB0aGVuICdiJyAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmb3JPd24ob2JqZWN0LCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIG9iamVjdCAmJiBiYXNlRm9yT3duKG9iamVjdCwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZvck93bmAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBwcm9wZXJ0aWVzIG9mXG4gICAgICogYG9iamVjdGAgaW4gdGhlIG9wcG9zaXRlIG9yZGVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAc2VlIF8uZm9yT3duXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLmZvck93blJpZ2h0KG5ldyBGb28sIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKGtleSk7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gTG9ncyAnYicgdGhlbiAnYScgYXNzdW1pbmcgYF8uZm9yT3duYCBsb2dzICdhJyB0aGVuICdiJy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmb3JPd25SaWdodChvYmplY3QsIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ICYmIGJhc2VGb3JPd25SaWdodChvYmplY3QsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBmdW5jdGlvbiBwcm9wZXJ0eSBuYW1lcyBmcm9tIG93biBlbnVtZXJhYmxlIHByb3BlcnRpZXNcbiAgICAgKiBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGZ1bmN0aW9uIG5hbWVzLlxuICAgICAqIEBzZWUgXy5mdW5jdGlvbnNJblxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSBfLmNvbnN0YW50KCdhJyk7XG4gICAgICogICB0aGlzLmIgPSBfLmNvbnN0YW50KCdiJyk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gXy5jb25zdGFudCgnYycpO1xuICAgICAqXG4gICAgICogXy5mdW5jdGlvbnMobmV3IEZvbyk7XG4gICAgICogLy8gPT4gWydhJywgJ2InXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZ1bmN0aW9ucyhvYmplY3QpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IFtdIDogYmFzZUZ1bmN0aW9ucyhvYmplY3QsIGtleXMob2JqZWN0KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBmdW5jdGlvbiBwcm9wZXJ0eSBuYW1lcyBmcm9tIG93biBhbmQgaW5oZXJpdGVkXG4gICAgICogZW51bWVyYWJsZSBwcm9wZXJ0aWVzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgZnVuY3Rpb24gbmFtZXMuXG4gICAgICogQHNlZSBfLmZ1bmN0aW9uc1xuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSBfLmNvbnN0YW50KCdhJyk7XG4gICAgICogICB0aGlzLmIgPSBfLmNvbnN0YW50KCdiJyk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gXy5jb25zdGFudCgnYycpO1xuICAgICAqXG4gICAgICogXy5mdW5jdGlvbnNJbihuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYicsICdjJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmdW5jdGlvbnNJbihvYmplY3QpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IFtdIDogYmFzZUZ1bmN0aW9ucyhvYmplY3QsIGtleXNJbihvYmplY3QpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB2YWx1ZSBhdCBgcGF0aGAgb2YgYG9iamVjdGAuIElmIHRoZSByZXNvbHZlZCB2YWx1ZSBpc1xuICAgICAqIGB1bmRlZmluZWRgLCB0aGUgYGRlZmF1bHRWYWx1ZWAgaXMgcmV0dXJuZWQgaW4gaXRzIHBsYWNlLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuNy4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gW2RlZmF1bHRWYWx1ZV0gVGhlIHZhbHVlIHJldHVybmVkIGZvciBgdW5kZWZpbmVkYCByZXNvbHZlZCB2YWx1ZXMuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYyc6IDMgfSB9XSB9O1xuICAgICAqXG4gICAgICogXy5nZXQob2JqZWN0LCAnYVswXS5iLmMnKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICpcbiAgICAgKiBfLmdldChvYmplY3QsIFsnYScsICcwJywgJ2InLCAnYyddKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICpcbiAgICAgKiBfLmdldChvYmplY3QsICdhLmIuYycsICdkZWZhdWx0Jyk7XG4gICAgICogLy8gPT4gJ2RlZmF1bHQnXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0KG9iamVjdCwgcGF0aCwgZGVmYXVsdFZhbHVlKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBiYXNlR2V0KG9iamVjdCwgcGF0aCk7XG4gICAgICByZXR1cm4gcmVzdWx0ID09PSB1bmRlZmluZWQgPyBkZWZhdWx0VmFsdWUgOiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBwYXRoYCBpcyBhIGRpcmVjdCBwcm9wZXJ0eSBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBwYXRoYCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiB7ICdiJzogMiB9IH07XG4gICAgICogdmFyIG90aGVyID0gXy5jcmVhdGUoeyAnYSc6IF8uY3JlYXRlKHsgJ2InOiAyIH0pIH0pO1xuICAgICAqXG4gICAgICogXy5oYXMob2JqZWN0LCAnYScpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaGFzKG9iamVjdCwgJ2EuYicpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaGFzKG9iamVjdCwgWydhJywgJ2InXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5oYXMob3RoZXIsICdhJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYXMob2JqZWN0LCBwYXRoKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ICE9IG51bGwgJiYgaGFzUGF0aChvYmplY3QsIHBhdGgsIGJhc2VIYXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgcGF0aGAgaXMgYSBkaXJlY3Qgb3IgaW5oZXJpdGVkIHByb3BlcnR5IG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHBhdGhgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0gXy5jcmVhdGUoeyAnYSc6IF8uY3JlYXRlKHsgJ2InOiAyIH0pIH0pO1xuICAgICAqXG4gICAgICogXy5oYXNJbihvYmplY3QsICdhJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5oYXNJbihvYmplY3QsICdhLmInKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmhhc0luKG9iamVjdCwgWydhJywgJ2InXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5oYXNJbihvYmplY3QsICdiJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYXNJbihvYmplY3QsIHBhdGgpIHtcbiAgICAgIHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiBoYXNQYXRoKG9iamVjdCwgcGF0aCwgYmFzZUhhc0luKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiB0aGUgaW52ZXJ0ZWQga2V5cyBhbmQgdmFsdWVzIG9mIGBvYmplY3RgLlxuICAgICAqIElmIGBvYmplY3RgIGNvbnRhaW5zIGR1cGxpY2F0ZSB2YWx1ZXMsIHN1YnNlcXVlbnQgdmFsdWVzIG92ZXJ3cml0ZVxuICAgICAqIHByb3BlcnR5IGFzc2lnbm1lbnRzIG9mIHByZXZpb3VzIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjcuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW52ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBpbnZlcnRlZCBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDEgfTtcbiAgICAgKlxuICAgICAqIF8uaW52ZXJ0KG9iamVjdCk7XG4gICAgICogLy8gPT4geyAnMSc6ICdjJywgJzInOiAnYicgfVxuICAgICAqL1xuICAgIHZhciBpbnZlcnQgPSBjcmVhdGVJbnZlcnRlcihmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmXG4gICAgICAgICAgdHlwZW9mIHZhbHVlLnRvU3RyaW5nICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdmFsdWUgPSBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgcmVzdWx0W3ZhbHVlXSA9IGtleTtcbiAgICB9LCBjb25zdGFudChpZGVudGl0eSkpO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pbnZlcnRgIGV4Y2VwdCB0aGF0IHRoZSBpbnZlcnRlZCBvYmplY3QgaXMgZ2VuZXJhdGVkXG4gICAgICogZnJvbSB0aGUgcmVzdWx0cyBvZiBydW5uaW5nIGVhY2ggZWxlbWVudCBvZiBgb2JqZWN0YCB0aHJ1IGBpdGVyYXRlZWAuIFRoZVxuICAgICAqIGNvcnJlc3BvbmRpbmcgaW52ZXJ0ZWQgdmFsdWUgb2YgZWFjaCBpbnZlcnRlZCBrZXkgaXMgYW4gYXJyYXkgb2Yga2V5c1xuICAgICAqIHJlc3BvbnNpYmxlIGZvciBnZW5lcmF0aW5nIHRoZSBpbnZlcnRlZCB2YWx1ZS4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjEuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW52ZXJ0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgaW52ZXJ0ZWQgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogMiwgJ2MnOiAxIH07XG4gICAgICpcbiAgICAgKiBfLmludmVydEJ5KG9iamVjdCk7XG4gICAgICogLy8gPT4geyAnMSc6IFsnYScsICdjJ10sICcyJzogWydiJ10gfVxuICAgICAqXG4gICAgICogXy5pbnZlcnRCeShvYmplY3QsIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICogICByZXR1cm4gJ2dyb3VwJyArIHZhbHVlO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IHsgJ2dyb3VwMSc6IFsnYScsICdjJ10sICdncm91cDInOiBbJ2InXSB9XG4gICAgICovXG4gICAgdmFyIGludmVydEJ5ID0gY3JlYXRlSW52ZXJ0ZXIoZnVuY3Rpb24ocmVzdWx0LCB2YWx1ZSwga2V5KSB7XG4gICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJlxuICAgICAgICAgIHR5cGVvZiB2YWx1ZS50b1N0cmluZyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHZhbHVlID0gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHJlc3VsdCwgdmFsdWUpKSB7XG4gICAgICAgIHJlc3VsdFt2YWx1ZV0ucHVzaChrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0W3ZhbHVlXSA9IFtrZXldO1xuICAgICAgfVxuICAgIH0sIGdldEl0ZXJhdGVlKTtcblxuICAgIC8qKlxuICAgICAqIEludm9rZXMgdGhlIG1ldGhvZCBhdCBgcGF0aGAgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBtZXRob2QgdG8gaW52b2tlLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIHRoZSBtZXRob2Qgd2l0aC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBpbnZva2VkIG1ldGhvZC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MnOiBbMSwgMiwgMywgNF0gfSB9XSB9O1xuICAgICAqXG4gICAgICogXy5pbnZva2Uob2JqZWN0LCAnYVswXS5iLmMuc2xpY2UnLCAxLCAzKTtcbiAgICAgKiAvLyA9PiBbMiwgM11cbiAgICAgKi9cbiAgICB2YXIgaW52b2tlID0gYmFzZVJlc3QoYmFzZUludm9rZSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLiBTZWUgdGhlXG4gICAgICogW0VTIHNwZWNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5rZXlzKVxuICAgICAqIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLmtleXMobmV3IEZvbyk7XG4gICAgICogLy8gPT4gWydhJywgJ2InXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqXG4gICAgICogXy5rZXlzKCdoaScpO1xuICAgICAqIC8vID0+IFsnMCcsICcxJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBrZXlzKG9iamVjdCkge1xuICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlKG9iamVjdCkgPyBhcnJheUxpa2VLZXlzKG9iamVjdCkgOiBiYXNlS2V5cyhvYmplY3QpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8ua2V5c0luKG5ldyBGb28pO1xuICAgICAqIC8vID0+IFsnYScsICdiJywgJ2MnXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGtleXNJbihvYmplY3QpIHtcbiAgICAgIHJldHVybiBpc0FycmF5TGlrZShvYmplY3QpID8gYXJyYXlMaWtlS2V5cyhvYmplY3QsIHRydWUpIDogYmFzZUtleXNJbihvYmplY3QpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHBvc2l0ZSBvZiBgXy5tYXBWYWx1ZXNgOyB0aGlzIG1ldGhvZCBjcmVhdGVzIGFuIG9iamVjdCB3aXRoIHRoZVxuICAgICAqIHNhbWUgdmFsdWVzIGFzIGBvYmplY3RgIGFuZCBrZXlzIGdlbmVyYXRlZCBieSBydW5uaW5nIGVhY2ggb3duIGVudW1lcmFibGVcbiAgICAgKiBzdHJpbmcga2V5ZWQgcHJvcGVydHkgb2YgYG9iamVjdGAgdGhydSBgaXRlcmF0ZWVgLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZFxuICAgICAqIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGtleSwgb2JqZWN0KS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjguMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgb2JqZWN0LlxuICAgICAqIEBzZWUgXy5tYXBWYWx1ZXNcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5tYXBLZXlzKHsgJ2EnOiAxLCAnYic6IDIgfSwgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAqICAgcmV0dXJuIGtleSArIHZhbHVlO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IHsgJ2ExJzogMSwgJ2IyJzogMiB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gbWFwS2V5cyhvYmplY3QsIGl0ZXJhdGVlKSB7XG4gICAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgICBpdGVyYXRlZSA9IGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAzKTtcblxuICAgICAgYmFzZUZvck93bihvYmplY3QsIGZ1bmN0aW9uKHZhbHVlLCBrZXksIG9iamVjdCkge1xuICAgICAgICBiYXNlQXNzaWduVmFsdWUocmVzdWx0LCBpdGVyYXRlZSh2YWx1ZSwga2V5LCBvYmplY3QpLCB2YWx1ZSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3Qgd2l0aCB0aGUgc2FtZSBrZXlzIGFzIGBvYmplY3RgIGFuZCB2YWx1ZXMgZ2VuZXJhdGVkXG4gICAgICogYnkgcnVubmluZyBlYWNoIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0eSBvZiBgb2JqZWN0YCB0aHJ1XG4gICAgICogYGl0ZXJhdGVlYC4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6XG4gICAgICogKHZhbHVlLCBrZXksIG9iamVjdCkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi40LjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIG9iamVjdC5cbiAgICAgKiBAc2VlIF8ubWFwS2V5c1xuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSB7XG4gICAgICogICAnZnJlZCc6ICAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhZ2UnOiA0MCB9LFxuICAgICAqICAgJ3BlYmJsZXMnOiB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWdlJzogMSB9XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIF8ubWFwVmFsdWVzKHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLmFnZTsgfSk7XG4gICAgICogLy8gPT4geyAnZnJlZCc6IDQwLCAncGViYmxlcyc6IDEgfSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5tYXBWYWx1ZXModXNlcnMsICdhZ2UnKTtcbiAgICAgKiAvLyA9PiB7ICdmcmVkJzogNDAsICdwZWJibGVzJzogMSB9IChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWFwVmFsdWVzKG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICAgIGl0ZXJhdGVlID0gZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDMpO1xuXG4gICAgICBiYXNlRm9yT3duKG9iamVjdCwgZnVuY3Rpb24odmFsdWUsIGtleSwgb2JqZWN0KSB7XG4gICAgICAgIGJhc2VBc3NpZ25WYWx1ZShyZXN1bHQsIGtleSwgaXRlcmF0ZWUodmFsdWUsIGtleSwgb2JqZWN0KSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5hc3NpZ25gIGV4Y2VwdCB0aGF0IGl0IHJlY3Vyc2l2ZWx5IG1lcmdlcyBvd24gYW5kXG4gICAgICogaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgb2Ygc291cmNlIG9iamVjdHMgaW50byB0aGVcbiAgICAgKiBkZXN0aW5hdGlvbiBvYmplY3QuIFNvdXJjZSBwcm9wZXJ0aWVzIHRoYXQgcmVzb2x2ZSB0byBgdW5kZWZpbmVkYCBhcmVcbiAgICAgKiBza2lwcGVkIGlmIGEgZGVzdGluYXRpb24gdmFsdWUgZXhpc3RzLiBBcnJheSBhbmQgcGxhaW4gb2JqZWN0IHByb3BlcnRpZXNcbiAgICAgKiBhcmUgbWVyZ2VkIHJlY3Vyc2l2ZWx5LiBPdGhlciBvYmplY3RzIGFuZCB2YWx1ZSB0eXBlcyBhcmUgb3ZlcnJpZGRlbiBieVxuICAgICAqIGFzc2lnbm1lbnQuIFNvdXJjZSBvYmplY3RzIGFyZSBhcHBsaWVkIGZyb20gbGVmdCB0byByaWdodC4gU3Vic2VxdWVudFxuICAgICAqIHNvdXJjZXMgb3ZlcndyaXRlIHByb3BlcnR5IGFzc2lnbm1lbnRzIG9mIHByZXZpb3VzIHNvdXJjZXMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjUuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IFtzb3VyY2VzXSBUaGUgc291cmNlIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHtcbiAgICAgKiAgICdhJzogW3sgJ2InOiAyIH0sIHsgJ2QnOiA0IH1dXG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHZhciBvdGhlciA9IHtcbiAgICAgKiAgICdhJzogW3sgJ2MnOiAzIH0sIHsgJ2UnOiA1IH1dXG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIF8ubWVyZ2Uob2JqZWN0LCBvdGhlcik7XG4gICAgICogLy8gPT4geyAnYSc6IFt7ICdiJzogMiwgJ2MnOiAzIH0sIHsgJ2QnOiA0LCAnZSc6IDUgfV0gfVxuICAgICAqL1xuICAgIHZhciBtZXJnZSA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCkge1xuICAgICAgYmFzZU1lcmdlKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLm1lcmdlYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjdXN0b21pemVyYCB3aGljaFxuICAgICAqIGlzIGludm9rZWQgdG8gcHJvZHVjZSB0aGUgbWVyZ2VkIHZhbHVlcyBvZiB0aGUgZGVzdGluYXRpb24gYW5kIHNvdXJjZVxuICAgICAqIHByb3BlcnRpZXMuIElmIGBjdXN0b21pemVyYCByZXR1cm5zIGB1bmRlZmluZWRgLCBtZXJnaW5nIGlzIGhhbmRsZWQgYnkgdGhlXG4gICAgICogbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmAgaXMgaW52b2tlZCB3aXRoIHNpeCBhcmd1bWVudHM6XG4gICAgICogKG9ialZhbHVlLCBzcmNWYWx1ZSwga2V5LCBvYmplY3QsIHNvdXJjZSwgc3RhY2spLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uT2JqZWN0fSBzb3VyY2VzIFRoZSBzb3VyY2Ugb2JqZWN0cy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjdXN0b21pemVyIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlKSB7XG4gICAgICogICBpZiAoXy5pc0FycmF5KG9ialZhbHVlKSkge1xuICAgICAqICAgICByZXR1cm4gb2JqVmFsdWUuY29uY2F0KHNyY1ZhbHVlKTtcbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFsxXSwgJ2InOiBbMl0gfTtcbiAgICAgKiB2YXIgb3RoZXIgPSB7ICdhJzogWzNdLCAnYic6IFs0XSB9O1xuICAgICAqXG4gICAgICogXy5tZXJnZVdpdGgob2JqZWN0LCBvdGhlciwgY3VzdG9taXplcik7XG4gICAgICogLy8gPT4geyAnYSc6IFsxLCAzXSwgJ2InOiBbMiwgNF0gfVxuICAgICAqL1xuICAgIHZhciBtZXJnZVdpdGggPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIGJhc2VNZXJnZShvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG9wcG9zaXRlIG9mIGBfLnBpY2tgOyB0aGlzIG1ldGhvZCBjcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiB0aGVcbiAgICAgKiBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnR5IHBhdGhzIG9mIGBvYmplY3RgIHRoYXQgYXJlIG5vdCBvbWl0dGVkLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGNvbnNpZGVyYWJseSBzbG93ZXIgdGhhbiBgXy5waWNrYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uKHN0cmluZ3xzdHJpbmdbXSl9IFtwYXRoc10gVGhlIHByb3BlcnR5IHBhdGhzIHRvIG9taXQuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6ICcyJywgJ2MnOiAzIH07XG4gICAgICpcbiAgICAgKiBfLm9taXQob2JqZWN0LCBbJ2EnLCAnYyddKTtcbiAgICAgKiAvLyA9PiB7ICdiJzogJzInIH1cbiAgICAgKi9cbiAgICB2YXIgb21pdCA9IGZsYXRSZXN0KGZ1bmN0aW9uKG9iamVjdCwgcGF0aHMpIHtcbiAgICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgdmFyIGlzRGVlcCA9IGZhbHNlO1xuICAgICAgcGF0aHMgPSBhcnJheU1hcChwYXRocywgZnVuY3Rpb24ocGF0aCkge1xuICAgICAgICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcbiAgICAgICAgaXNEZWVwIHx8IChpc0RlZXAgPSBwYXRoLmxlbmd0aCA+IDEpO1xuICAgICAgICByZXR1cm4gcGF0aDtcbiAgICAgIH0pO1xuICAgICAgY29weU9iamVjdChvYmplY3QsIGdldEFsbEtleXNJbihvYmplY3QpLCByZXN1bHQpO1xuICAgICAgaWYgKGlzRGVlcCkge1xuICAgICAgICByZXN1bHQgPSBiYXNlQ2xvbmUocmVzdWx0LCBDTE9ORV9ERUVQX0ZMQUcgfCBDTE9ORV9GTEFUX0ZMQUcgfCBDTE9ORV9TWU1CT0xTX0ZMQUcsIGN1c3RvbU9taXRDbG9uZSk7XG4gICAgICB9XG4gICAgICB2YXIgbGVuZ3RoID0gcGF0aHMubGVuZ3RoO1xuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIGJhc2VVbnNldChyZXN1bHQsIHBhdGhzW2xlbmd0aF0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHBvc2l0ZSBvZiBgXy5waWNrQnlgOyB0aGlzIG1ldGhvZCBjcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZlxuICAgICAqIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzIG9mIGBvYmplY3RgIHRoYXRcbiAgICAgKiBgcHJlZGljYXRlYCBkb2Vzbid0IHJldHVybiB0cnV0aHkgZm9yLiBUaGUgcHJlZGljYXRlIGlzIGludm9rZWQgd2l0aCB0d29cbiAgICAgKiBhcmd1bWVudHM6ICh2YWx1ZSwga2V5KS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIHByb3BlcnR5LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSwgJ2InOiAnMicsICdjJzogMyB9O1xuICAgICAqXG4gICAgICogXy5vbWl0Qnkob2JqZWN0LCBfLmlzTnVtYmVyKTtcbiAgICAgKiAvLyA9PiB7ICdiJzogJzInIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBvbWl0Qnkob2JqZWN0LCBwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiBwaWNrQnkob2JqZWN0LCBuZWdhdGUoZ2V0SXRlcmF0ZWUocHJlZGljYXRlKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIHRoZSBwaWNrZWQgYG9iamVjdGAgcHJvcGVydGllcy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uKHN0cmluZ3xzdHJpbmdbXSl9IFtwYXRoc10gVGhlIHByb3BlcnR5IHBhdGhzIHRvIHBpY2suXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6ICcyJywgJ2MnOiAzIH07XG4gICAgICpcbiAgICAgKiBfLnBpY2sob2JqZWN0LCBbJ2EnLCAnYyddKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogMSwgJ2MnOiAzIH1cbiAgICAgKi9cbiAgICB2YXIgcGljayA9IGZsYXRSZXN0KGZ1bmN0aW9uKG9iamVjdCwgcGF0aHMpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHt9IDogYmFzZVBpY2sob2JqZWN0LCBwYXRocyk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiB0aGUgYG9iamVjdGAgcHJvcGVydGllcyBgcHJlZGljYXRlYCByZXR1cm5zXG4gICAgICogdHJ1dGh5IGZvci4gVGhlIHByZWRpY2F0ZSBpcyBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50czogKHZhbHVlLCBrZXkpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgcHJvcGVydHkuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6ICcyJywgJ2MnOiAzIH07XG4gICAgICpcbiAgICAgKiBfLnBpY2tCeShvYmplY3QsIF8uaXNOdW1iZXIpO1xuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYyc6IDMgfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHBpY2tCeShvYmplY3QsIHByZWRpY2F0ZSkge1xuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIHZhciBwcm9wcyA9IGFycmF5TWFwKGdldEFsbEtleXNJbihvYmplY3QpLCBmdW5jdGlvbihwcm9wKSB7XG4gICAgICAgIHJldHVybiBbcHJvcF07XG4gICAgICB9KTtcbiAgICAgIHByZWRpY2F0ZSA9IGdldEl0ZXJhdGVlKHByZWRpY2F0ZSk7XG4gICAgICByZXR1cm4gYmFzZVBpY2tCeShvYmplY3QsIHByb3BzLCBmdW5jdGlvbih2YWx1ZSwgcGF0aCkge1xuICAgICAgICByZXR1cm4gcHJlZGljYXRlKHZhbHVlLCBwYXRoWzBdKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZ2V0YCBleGNlcHQgdGhhdCBpZiB0aGUgcmVzb2x2ZWQgdmFsdWUgaXMgYVxuICAgICAqIGZ1bmN0aW9uIGl0J3MgaW52b2tlZCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiBpdHMgcGFyZW50IG9iamVjdCBhbmRcbiAgICAgKiBpdHMgcmVzdWx0IGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gcmVzb2x2ZS5cbiAgICAgKiBAcGFyYW0geyp9IFtkZWZhdWx0VmFsdWVdIFRoZSB2YWx1ZSByZXR1cm5lZCBmb3IgYHVuZGVmaW5lZGAgcmVzb2x2ZWQgdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXNvbHZlZCB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MxJzogMywgJ2MyJzogXy5jb25zdGFudCg0KSB9IH1dIH07XG4gICAgICpcbiAgICAgKiBfLnJlc3VsdChvYmplY3QsICdhWzBdLmIuYzEnKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICpcbiAgICAgKiBfLnJlc3VsdChvYmplY3QsICdhWzBdLmIuYzInKTtcbiAgICAgKiAvLyA9PiA0XG4gICAgICpcbiAgICAgKiBfLnJlc3VsdChvYmplY3QsICdhWzBdLmIuYzMnLCAnZGVmYXVsdCcpO1xuICAgICAqIC8vID0+ICdkZWZhdWx0J1xuICAgICAqXG4gICAgICogXy5yZXN1bHQob2JqZWN0LCAnYVswXS5iLmMzJywgXy5jb25zdGFudCgnZGVmYXVsdCcpKTtcbiAgICAgKiAvLyA9PiAnZGVmYXVsdCdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZXN1bHQob2JqZWN0LCBwYXRoLCBkZWZhdWx0VmFsdWUpIHtcbiAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuXG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aDtcblxuICAgICAgLy8gRW5zdXJlIHRoZSBsb29wIGlzIGVudGVyZWQgd2hlbiBwYXRoIGlzIGVtcHR5LlxuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgbGVuZ3RoID0gMTtcbiAgICAgICAgb2JqZWN0ID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBvYmplY3RbdG9LZXkocGF0aFtpbmRleF0pXTtcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpbmRleCA9IGxlbmd0aDtcbiAgICAgICAgICB2YWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBvYmplY3QgPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHZhbHVlLmNhbGwob2JqZWN0KSA6IHZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSB2YWx1ZSBhdCBgcGF0aGAgb2YgYG9iamVjdGAuIElmIGEgcG9ydGlvbiBvZiBgcGF0aGAgZG9lc24ndCBleGlzdCxcbiAgICAgKiBpdCdzIGNyZWF0ZWQuIEFycmF5cyBhcmUgY3JlYXRlZCBmb3IgbWlzc2luZyBpbmRleCBwcm9wZXJ0aWVzIHdoaWxlIG9iamVjdHNcbiAgICAgKiBhcmUgY3JlYXRlZCBmb3IgYWxsIG90aGVyIG1pc3NpbmcgcHJvcGVydGllcy4gVXNlIGBfLnNldFdpdGhgIHRvIGN1c3RvbWl6ZVxuICAgICAqIGBwYXRoYCBjcmVhdGlvbi5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuNy4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHNldC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MnOiAzIH0gfV0gfTtcbiAgICAgKlxuICAgICAqIF8uc2V0KG9iamVjdCwgJ2FbMF0uYi5jJywgNCk7XG4gICAgICogY29uc29sZS5sb2cob2JqZWN0LmFbMF0uYi5jKTtcbiAgICAgKiAvLyA9PiA0XG4gICAgICpcbiAgICAgKiBfLnNldChvYmplY3QsIFsneCcsICcwJywgJ3knLCAneiddLCA1KTtcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3QueFswXS55LnopO1xuICAgICAqIC8vID0+IDVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzZXQob2JqZWN0LCBwYXRoLCB2YWx1ZSkge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogYmFzZVNldChvYmplY3QsIHBhdGgsIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnNldGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY3VzdG9taXplcmAgd2hpY2ggaXNcbiAgICAgKiBpbnZva2VkIHRvIHByb2R1Y2UgdGhlIG9iamVjdHMgb2YgYHBhdGhgLiAgSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGBcbiAgICAgKiBwYXRoIGNyZWF0aW9uIGlzIGhhbmRsZWQgYnkgdGhlIG1ldGhvZCBpbnN0ZWFkLiBUaGUgYGN1c3RvbWl6ZXJgIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHRocmVlIGFyZ3VtZW50czogKG5zVmFsdWUsIGtleSwgbnNPYmplY3QpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBhc3NpZ25lZCB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHt9O1xuICAgICAqXG4gICAgICogXy5zZXRXaXRoKG9iamVjdCwgJ1swXVsxXScsICdhJywgT2JqZWN0KTtcbiAgICAgKiAvLyA9PiB7ICcwJzogeyAnMSc6ICdhJyB9IH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzZXRXaXRoKG9iamVjdCwgcGF0aCwgdmFsdWUsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIGN1c3RvbWl6ZXIgPSB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nID8gY3VzdG9taXplciA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IG9iamVjdCA6IGJhc2VTZXQob2JqZWN0LCBwYXRoLCB2YWx1ZSwgY3VzdG9taXplcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBvd24gZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQtdmFsdWUgcGFpcnMgZm9yIGBvYmplY3RgXG4gICAgICogd2hpY2ggY2FuIGJlIGNvbnN1bWVkIGJ5IGBfLmZyb21QYWlyc2AuIElmIGBvYmplY3RgIGlzIGEgbWFwIG9yIHNldCwgaXRzXG4gICAgICogZW50cmllcyBhcmUgcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAYWxpYXMgZW50cmllc1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBrZXktdmFsdWUgcGFpcnMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLnRvUGFpcnMobmV3IEZvbyk7XG4gICAgICogLy8gPT4gW1snYScsIDFdLCBbJ2InLCAyXV0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKi9cbiAgICB2YXIgdG9QYWlycyA9IGNyZWF0ZVRvUGFpcnMoa2V5cyk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkLXZhbHVlIHBhaXJzXG4gICAgICogZm9yIGBvYmplY3RgIHdoaWNoIGNhbiBiZSBjb25zdW1lZCBieSBgXy5mcm9tUGFpcnNgLiBJZiBgb2JqZWN0YCBpcyBhIG1hcFxuICAgICAqIG9yIHNldCwgaXRzIGVudHJpZXMgYXJlIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGFsaWFzIGVudHJpZXNJblxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBrZXktdmFsdWUgcGFpcnMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLnRvUGFpcnNJbihuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiBbWydhJywgMV0sIFsnYicsIDJdLCBbJ2MnLCAzXV0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKi9cbiAgICB2YXIgdG9QYWlyc0luID0gY3JlYXRlVG9QYWlycyhrZXlzSW4pO1xuXG4gICAgLyoqXG4gICAgICogQW4gYWx0ZXJuYXRpdmUgdG8gYF8ucmVkdWNlYDsgdGhpcyBtZXRob2QgdHJhbnNmb3JtcyBgb2JqZWN0YCB0byBhIG5ld1xuICAgICAqIGBhY2N1bXVsYXRvcmAgb2JqZWN0IHdoaWNoIGlzIHRoZSByZXN1bHQgb2YgcnVubmluZyBlYWNoIG9mIGl0cyBvd25cbiAgICAgKiBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzIHRocnUgYGl0ZXJhdGVlYCwgd2l0aCBlYWNoIGludm9jYXRpb25cbiAgICAgKiBwb3RlbnRpYWxseSBtdXRhdGluZyB0aGUgYGFjY3VtdWxhdG9yYCBvYmplY3QuIElmIGBhY2N1bXVsYXRvcmAgaXMgbm90XG4gICAgICogcHJvdmlkZWQsIGEgbmV3IG9iamVjdCB3aXRoIHRoZSBzYW1lIGBbW1Byb3RvdHlwZV1dYCB3aWxsIGJlIHVzZWQuIFRoZVxuICAgICAqIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBmb3VyIGFyZ3VtZW50czogKGFjY3VtdWxhdG9yLCB2YWx1ZSwga2V5LCBvYmplY3QpLlxuICAgICAqIEl0ZXJhdGVlIGZ1bmN0aW9ucyBtYXkgZXhpdCBpdGVyYXRpb24gZWFybHkgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAxLjMuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgY3VzdG9tIGFjY3VtdWxhdG9yIHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50cmFuc2Zvcm0oWzIsIDMsIDRdLCBmdW5jdGlvbihyZXN1bHQsIG4pIHtcbiAgICAgKiAgIHJlc3VsdC5wdXNoKG4gKj0gbik7XG4gICAgICogICByZXR1cm4gbiAlIDIgPT0gMDtcbiAgICAgKiB9LCBbXSk7XG4gICAgICogLy8gPT4gWzQsIDldXG4gICAgICpcbiAgICAgKiBfLnRyYW5zZm9ybSh7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDEgfSwgZnVuY3Rpb24ocmVzdWx0LCB2YWx1ZSwga2V5KSB7XG4gICAgICogICAocmVzdWx0W3ZhbHVlXSB8fCAocmVzdWx0W3ZhbHVlXSA9IFtdKSkucHVzaChrZXkpO1xuICAgICAqIH0sIHt9KTtcbiAgICAgKiAvLyA9PiB7ICcxJzogWydhJywgJ2MnXSwgJzInOiBbJ2InXSB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtKG9iamVjdCwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yKSB7XG4gICAgICB2YXIgaXNBcnIgPSBpc0FycmF5KG9iamVjdCksXG4gICAgICAgICAgaXNBcnJMaWtlID0gaXNBcnIgfHwgaXNCdWZmZXIob2JqZWN0KSB8fCBpc1R5cGVkQXJyYXkob2JqZWN0KTtcblxuICAgICAgaXRlcmF0ZWUgPSBnZXRJdGVyYXRlZShpdGVyYXRlZSwgNCk7XG4gICAgICBpZiAoYWNjdW11bGF0b3IgPT0gbnVsbCkge1xuICAgICAgICB2YXIgQ3RvciA9IG9iamVjdCAmJiBvYmplY3QuY29uc3RydWN0b3I7XG4gICAgICAgIGlmIChpc0Fyckxpa2UpIHtcbiAgICAgICAgICBhY2N1bXVsYXRvciA9IGlzQXJyID8gbmV3IEN0b3IgOiBbXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc09iamVjdChvYmplY3QpKSB7XG4gICAgICAgICAgYWNjdW11bGF0b3IgPSBpc0Z1bmN0aW9uKEN0b3IpID8gYmFzZUNyZWF0ZShnZXRQcm90b3R5cGUob2JqZWN0KSkgOiB7fTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBhY2N1bXVsYXRvciA9IHt9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAoaXNBcnJMaWtlID8gYXJyYXlFYWNoIDogYmFzZUZvck93bikob2JqZWN0LCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIG9iamVjdCkge1xuICAgICAgICByZXR1cm4gaXRlcmF0ZWUoYWNjdW11bGF0b3IsIHZhbHVlLCBpbmRleCwgb2JqZWN0KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdGhlIHByb3BlcnR5IGF0IGBwYXRoYCBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHVuc2V0LlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgcHJvcGVydHkgaXMgZGVsZXRlZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYyc6IDcgfSB9XSB9O1xuICAgICAqIF8udW5zZXQob2JqZWN0LCAnYVswXS5iLmMnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3QpO1xuICAgICAqIC8vID0+IHsgJ2EnOiBbeyAnYic6IHt9IH1dIH07XG4gICAgICpcbiAgICAgKiBfLnVuc2V0KG9iamVjdCwgWydhJywgJzAnLCAnYicsICdjJ10pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdCk7XG4gICAgICogLy8gPT4geyAnYSc6IFt7ICdiJzoge30gfV0gfTtcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bnNldChvYmplY3QsIHBhdGgpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHRydWUgOiBiYXNlVW5zZXQob2JqZWN0LCBwYXRoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnNldGAgZXhjZXB0IHRoYXQgYWNjZXB0cyBgdXBkYXRlcmAgdG8gcHJvZHVjZSB0aGVcbiAgICAgKiB2YWx1ZSB0byBzZXQuIFVzZSBgXy51cGRhdGVXaXRoYCB0byBjdXN0b21pemUgYHBhdGhgIGNyZWF0aW9uLiBUaGUgYHVwZGF0ZXJgXG4gICAgICogaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuNi4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHNldC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB1cGRhdGVyIFRoZSBmdW5jdGlvbiB0byBwcm9kdWNlIHRoZSB1cGRhdGVkIHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogW3sgJ2InOiB7ICdjJzogMyB9IH1dIH07XG4gICAgICpcbiAgICAgKiBfLnVwZGF0ZShvYmplY3QsICdhWzBdLmIuYycsIGZ1bmN0aW9uKG4pIHsgcmV0dXJuIG4gKiBuOyB9KTtcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3QuYVswXS5iLmMpO1xuICAgICAqIC8vID0+IDlcbiAgICAgKlxuICAgICAqIF8udXBkYXRlKG9iamVjdCwgJ3hbMF0ueS56JywgZnVuY3Rpb24obikgeyByZXR1cm4gbiA/IG4gKyAxIDogMDsgfSk7XG4gICAgICogY29uc29sZS5sb2cob2JqZWN0LnhbMF0ueS56KTtcbiAgICAgKiAvLyA9PiAwXG4gICAgICovXG4gICAgZnVuY3Rpb24gdXBkYXRlKG9iamVjdCwgcGF0aCwgdXBkYXRlcikge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogYmFzZVVwZGF0ZShvYmplY3QsIHBhdGgsIGNhc3RGdW5jdGlvbih1cGRhdGVyKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy51cGRhdGVgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGN1c3RvbWl6ZXJgIHdoaWNoIGlzXG4gICAgICogaW52b2tlZCB0byBwcm9kdWNlIHRoZSBvYmplY3RzIG9mIGBwYXRoYC4gIElmIGBjdXN0b21pemVyYCByZXR1cm5zIGB1bmRlZmluZWRgXG4gICAgICogcGF0aCBjcmVhdGlvbiBpcyBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0aHJlZSBhcmd1bWVudHM6IChuc1ZhbHVlLCBrZXksIG5zT2JqZWN0KS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuNi4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHNldC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB1cGRhdGVyIFRoZSBmdW5jdGlvbiB0byBwcm9kdWNlIHRoZSB1cGRhdGVkIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGFzc2lnbmVkIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0ge307XG4gICAgICpcbiAgICAgKiBfLnVwZGF0ZVdpdGgob2JqZWN0LCAnWzBdWzFdJywgXy5jb25zdGFudCgnYScpLCBPYmplY3QpO1xuICAgICAqIC8vID0+IHsgJzAnOiB7ICcxJzogJ2EnIH0gfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVwZGF0ZVdpdGgob2JqZWN0LCBwYXRoLCB1cGRhdGVyLCBjdXN0b21pemVyKSB7XG4gICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gJ2Z1bmN0aW9uJyA/IGN1c3RvbWl6ZXIgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBiYXNlVXBkYXRlKG9iamVjdCwgcGF0aCwgY2FzdEZ1bmN0aW9uKHVwZGF0ZXIpLCBjdXN0b21pemVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydHkgdmFsdWVzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIE5vbi1vYmplY3QgdmFsdWVzIGFyZSBjb2VyY2VkIHRvIG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy52YWx1ZXMobmV3IEZvbyk7XG4gICAgICogLy8gPT4gWzEsIDJdIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICpcbiAgICAgKiBfLnZhbHVlcygnaGknKTtcbiAgICAgKiAvLyA9PiBbJ2gnLCAnaSddXG4gICAgICovXG4gICAgZnVuY3Rpb24gdmFsdWVzKG9iamVjdCkge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gW10gOiBiYXNlVmFsdWVzKG9iamVjdCwga2V5cyhvYmplY3QpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0eVxuICAgICAqIHZhbHVlcyBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8udmFsdWVzSW4obmV3IEZvbyk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICovXG4gICAgZnVuY3Rpb24gdmFsdWVzSW4ob2JqZWN0KSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBbXSA6IGJhc2VWYWx1ZXMob2JqZWN0LCBrZXlzSW4ob2JqZWN0KSk7XG4gICAgfVxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ2xhbXBzIGBudW1iZXJgIHdpdGhpbiB0aGUgaW5jbHVzaXZlIGBsb3dlcmAgYW5kIGB1cHBlcmAgYm91bmRzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE51bWJlclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXIgVGhlIG51bWJlciB0byBjbGFtcC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xvd2VyXSBUaGUgbG93ZXIgYm91bmQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHVwcGVyIFRoZSB1cHBlciBib3VuZC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBjbGFtcGVkIG51bWJlci5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5jbGFtcCgtMTAsIC01LCA1KTtcbiAgICAgKiAvLyA9PiAtNVxuICAgICAqXG4gICAgICogXy5jbGFtcCgxMCwgLTUsIDUpO1xuICAgICAqIC8vID0+IDVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbGFtcChudW1iZXIsIGxvd2VyLCB1cHBlcikge1xuICAgICAgaWYgKHVwcGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdXBwZXIgPSBsb3dlcjtcbiAgICAgICAgbG93ZXIgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpZiAodXBwZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB1cHBlciA9IHRvTnVtYmVyKHVwcGVyKTtcbiAgICAgICAgdXBwZXIgPSB1cHBlciA9PT0gdXBwZXIgPyB1cHBlciA6IDA7XG4gICAgICB9XG4gICAgICBpZiAobG93ZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsb3dlciA9IHRvTnVtYmVyKGxvd2VyKTtcbiAgICAgICAgbG93ZXIgPSBsb3dlciA9PT0gbG93ZXIgPyBsb3dlciA6IDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZUNsYW1wKHRvTnVtYmVyKG51bWJlciksIGxvd2VyLCB1cHBlcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBuYCBpcyBiZXR3ZWVuIGBzdGFydGAgYW5kIHVwIHRvLCBidXQgbm90IGluY2x1ZGluZywgYGVuZGAuIElmXG4gICAgICogYGVuZGAgaXMgbm90IHNwZWNpZmllZCwgaXQncyBzZXQgdG8gYHN0YXJ0YCB3aXRoIGBzdGFydGAgdGhlbiBzZXQgdG8gYDBgLlxuICAgICAqIElmIGBzdGFydGAgaXMgZ3JlYXRlciB0aGFuIGBlbmRgIHRoZSBwYXJhbXMgYXJlIHN3YXBwZWQgdG8gc3VwcG9ydFxuICAgICAqIG5lZ2F0aXZlIHJhbmdlcy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjMuMFxuICAgICAqIEBjYXRlZ29yeSBOdW1iZXJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyIFRoZSBudW1iZXIgdG8gY2hlY2suXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgb2YgdGhlIHJhbmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmQgVGhlIGVuZCBvZiB0aGUgcmFuZ2UuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBudW1iZXJgIGlzIGluIHRoZSByYW5nZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBzZWUgXy5yYW5nZSwgXy5yYW5nZVJpZ2h0XG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaW5SYW5nZSgzLCAyLCA0KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmluUmFuZ2UoNCwgOCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pblJhbmdlKDQsIDIpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmluUmFuZ2UoMiwgMik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaW5SYW5nZSgxLjIsIDIpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaW5SYW5nZSg1LjIsIDQpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmluUmFuZ2UoLTMsIC0yLCAtNik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluUmFuZ2UobnVtYmVyLCBzdGFydCwgZW5kKSB7XG4gICAgICBzdGFydCA9IHRvRmluaXRlKHN0YXJ0KTtcbiAgICAgIGlmIChlbmQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBlbmQgPSBzdGFydDtcbiAgICAgICAgc3RhcnQgPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW5kID0gdG9GaW5pdGUoZW5kKTtcbiAgICAgIH1cbiAgICAgIG51bWJlciA9IHRvTnVtYmVyKG51bWJlcik7XG4gICAgICByZXR1cm4gYmFzZUluUmFuZ2UobnVtYmVyLCBzdGFydCwgZW5kKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9kdWNlcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiB0aGUgaW5jbHVzaXZlIGBsb3dlcmAgYW5kIGB1cHBlcmAgYm91bmRzLlxuICAgICAqIElmIG9ubHkgb25lIGFyZ3VtZW50IGlzIHByb3ZpZGVkIGEgbnVtYmVyIGJldHdlZW4gYDBgIGFuZCB0aGUgZ2l2ZW4gbnVtYmVyXG4gICAgICogaXMgcmV0dXJuZWQuIElmIGBmbG9hdGluZ2AgaXMgYHRydWVgLCBvciBlaXRoZXIgYGxvd2VyYCBvciBgdXBwZXJgIGFyZVxuICAgICAqIGZsb2F0cywgYSBmbG9hdGluZy1wb2ludCBudW1iZXIgaXMgcmV0dXJuZWQgaW5zdGVhZCBvZiBhbiBpbnRlZ2VyLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIEphdmFTY3JpcHQgZm9sbG93cyB0aGUgSUVFRS03NTQgc3RhbmRhcmQgZm9yIHJlc29sdmluZ1xuICAgICAqIGZsb2F0aW5nLXBvaW50IHZhbHVlcyB3aGljaCBjYW4gcHJvZHVjZSB1bmV4cGVjdGVkIHJlc3VsdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC43LjBcbiAgICAgKiBAY2F0ZWdvcnkgTnVtYmVyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtsb3dlcj0wXSBUaGUgbG93ZXIgYm91bmQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt1cHBlcj0xXSBUaGUgdXBwZXIgYm91bmQuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZmxvYXRpbmddIFNwZWNpZnkgcmV0dXJuaW5nIGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHJhbmRvbSBudW1iZXIuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucmFuZG9tKDAsIDUpO1xuICAgICAqIC8vID0+IGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCA1XG4gICAgICpcbiAgICAgKiBfLnJhbmRvbSg1KTtcbiAgICAgKiAvLyA9PiBhbHNvIGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCA1XG4gICAgICpcbiAgICAgKiBfLnJhbmRvbSg1LCB0cnVlKTtcbiAgICAgKiAvLyA9PiBhIGZsb2F0aW5nLXBvaW50IG51bWJlciBiZXR3ZWVuIDAgYW5kIDVcbiAgICAgKlxuICAgICAqIF8ucmFuZG9tKDEuMiwgNS4yKTtcbiAgICAgKiAvLyA9PiBhIGZsb2F0aW5nLXBvaW50IG51bWJlciBiZXR3ZWVuIDEuMiBhbmQgNS4yXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmFuZG9tKGxvd2VyLCB1cHBlciwgZmxvYXRpbmcpIHtcbiAgICAgIGlmIChmbG9hdGluZyAmJiB0eXBlb2YgZmxvYXRpbmcgIT0gJ2Jvb2xlYW4nICYmIGlzSXRlcmF0ZWVDYWxsKGxvd2VyLCB1cHBlciwgZmxvYXRpbmcpKSB7XG4gICAgICAgIHVwcGVyID0gZmxvYXRpbmcgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpZiAoZmxvYXRpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodHlwZW9mIHVwcGVyID09ICdib29sZWFuJykge1xuICAgICAgICAgIGZsb2F0aW5nID0gdXBwZXI7XG4gICAgICAgICAgdXBwZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGxvd2VyID09ICdib29sZWFuJykge1xuICAgICAgICAgIGZsb2F0aW5nID0gbG93ZXI7XG4gICAgICAgICAgbG93ZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChsb3dlciA9PT0gdW5kZWZpbmVkICYmIHVwcGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbG93ZXIgPSAwO1xuICAgICAgICB1cHBlciA9IDE7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgbG93ZXIgPSB0b0Zpbml0ZShsb3dlcik7XG4gICAgICAgIGlmICh1cHBlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdXBwZXIgPSBsb3dlcjtcbiAgICAgICAgICBsb3dlciA9IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdXBwZXIgPSB0b0Zpbml0ZSh1cHBlcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChsb3dlciA+IHVwcGVyKSB7XG4gICAgICAgIHZhciB0ZW1wID0gbG93ZXI7XG4gICAgICAgIGxvd2VyID0gdXBwZXI7XG4gICAgICAgIHVwcGVyID0gdGVtcDtcbiAgICAgIH1cbiAgICAgIGlmIChmbG9hdGluZyB8fCBsb3dlciAlIDEgfHwgdXBwZXIgJSAxKSB7XG4gICAgICAgIHZhciByYW5kID0gbmF0aXZlUmFuZG9tKCk7XG4gICAgICAgIHJldHVybiBuYXRpdmVNaW4obG93ZXIgKyAocmFuZCAqICh1cHBlciAtIGxvd2VyICsgZnJlZVBhcnNlRmxvYXQoJzFlLScgKyAoKHJhbmQgKyAnJykubGVuZ3RoIC0gMSkpKSksIHVwcGVyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlUmFuZG9tKGxvd2VyLCB1cHBlcik7XG4gICAgfVxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG8gW2NhbWVsIGNhc2VdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0NhbWVsQ2FzZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjYW1lbCBjYXNlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uY2FtZWxDYXNlKCdGb28gQmFyJyk7XG4gICAgICogLy8gPT4gJ2Zvb0JhcidcbiAgICAgKlxuICAgICAqIF8uY2FtZWxDYXNlKCctLWZvby1iYXItLScpO1xuICAgICAqIC8vID0+ICdmb29CYXInXG4gICAgICpcbiAgICAgKiBfLmNhbWVsQ2FzZSgnX19GT09fQkFSX18nKTtcbiAgICAgKiAvLyA9PiAnZm9vQmFyJ1xuICAgICAqL1xuICAgIHZhciBjYW1lbENhc2UgPSBjcmVhdGVDb21wb3VuZGVyKGZ1bmN0aW9uKHJlc3VsdCwgd29yZCwgaW5kZXgpIHtcbiAgICAgIHdvcmQgPSB3b3JkLnRvTG93ZXJDYXNlKCk7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gY2FwaXRhbGl6ZSh3b3JkKSA6IHdvcmQpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBgc3RyaW5nYCB0byB1cHBlciBjYXNlIGFuZCB0aGUgcmVtYWluaW5nXG4gICAgICogdG8gbG93ZXIgY2FzZS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjYXBpdGFsaXplLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNhcGl0YWxpemVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5jYXBpdGFsaXplKCdGUkVEJyk7XG4gICAgICogLy8gPT4gJ0ZyZWQnXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2FwaXRhbGl6ZShzdHJpbmcpIHtcbiAgICAgIHJldHVybiB1cHBlckZpcnN0KHRvU3RyaW5nKHN0cmluZykudG9Mb3dlckNhc2UoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVidXJycyBgc3RyaW5nYCBieSBjb252ZXJ0aW5nXG4gICAgICogW0xhdGluLTEgU3VwcGxlbWVudF0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGF0aW4tMV9TdXBwbGVtZW50XyhVbmljb2RlX2Jsb2NrKSNDaGFyYWN0ZXJfdGFibGUpXG4gICAgICogYW5kIFtMYXRpbiBFeHRlbmRlZC1BXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MYXRpbl9FeHRlbmRlZC1BKVxuICAgICAqIGxldHRlcnMgdG8gYmFzaWMgTGF0aW4gbGV0dGVycyBhbmQgcmVtb3ZpbmdcbiAgICAgKiBbY29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db21iaW5pbmdfRGlhY3JpdGljYWxfTWFya3MpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGRlYnVyci5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBkZWJ1cnJlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGVidXJyKCdkXHUwMEU5alx1MDBFMCB2dScpO1xuICAgICAqIC8vID0+ICdkZWphIHZ1J1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRlYnVycihzdHJpbmcpIHtcbiAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICByZXR1cm4gc3RyaW5nICYmIHN0cmluZy5yZXBsYWNlKHJlTGF0aW4sIGRlYnVyckxldHRlcikucmVwbGFjZShyZUNvbWJvTWFyaywgJycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgc3RyaW5nYCBlbmRzIHdpdGggdGhlIGdpdmVuIHRhcmdldCBzdHJpbmcuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3RhcmdldF0gVGhlIHN0cmluZyB0byBzZWFyY2ggZm9yLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcG9zaXRpb249c3RyaW5nLmxlbmd0aF0gVGhlIHBvc2l0aW9uIHRvIHNlYXJjaCB1cCB0by5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHN0cmluZ2AgZW5kcyB3aXRoIGB0YXJnZXRgLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZW5kc1dpdGgoJ2FiYycsICdjJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5lbmRzV2l0aCgnYWJjJywgJ2InKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5lbmRzV2l0aCgnYWJjJywgJ2InLCAyKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gZW5kc1dpdGgoc3RyaW5nLCB0YXJnZXQsIHBvc2l0aW9uKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgdGFyZ2V0ID0gYmFzZVRvU3RyaW5nKHRhcmdldCk7XG5cbiAgICAgIHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbiA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gbGVuZ3RoXG4gICAgICAgIDogYmFzZUNsYW1wKHRvSW50ZWdlcihwb3NpdGlvbiksIDAsIGxlbmd0aCk7XG5cbiAgICAgIHZhciBlbmQgPSBwb3NpdGlvbjtcbiAgICAgIHBvc2l0aW9uIC09IHRhcmdldC5sZW5ndGg7XG4gICAgICByZXR1cm4gcG9zaXRpb24gPj0gMCAmJiBzdHJpbmcuc2xpY2UocG9zaXRpb24sIGVuZCkgPT0gdGFyZ2V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIHRoZSBjaGFyYWN0ZXJzIFwiJlwiLCBcIjxcIiwgXCI+XCIsICdcIicsIGFuZCBcIidcIiBpbiBgc3RyaW5nYCB0byB0aGVpclxuICAgICAqIGNvcnJlc3BvbmRpbmcgSFRNTCBlbnRpdGllcy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBObyBvdGhlciBjaGFyYWN0ZXJzIGFyZSBlc2NhcGVkLiBUbyBlc2NhcGUgYWRkaXRpb25hbFxuICAgICAqIGNoYXJhY3RlcnMgdXNlIGEgdGhpcmQtcGFydHkgbGlicmFyeSBsaWtlIFtfaGVfXShodHRwczovL210aHMuYmUvaGUpLlxuICAgICAqXG4gICAgICogVGhvdWdoIHRoZSBcIj5cIiBjaGFyYWN0ZXIgaXMgZXNjYXBlZCBmb3Igc3ltbWV0cnksIGNoYXJhY3RlcnMgbGlrZVxuICAgICAqIFwiPlwiIGFuZCBcIi9cIiBkb24ndCBuZWVkIGVzY2FwaW5nIGluIEhUTUwgYW5kIGhhdmUgbm8gc3BlY2lhbCBtZWFuaW5nXG4gICAgICogdW5sZXNzIHRoZXkncmUgcGFydCBvZiBhIHRhZyBvciB1bnF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUuIFNlZVxuICAgICAqIFtNYXRoaWFzIEJ5bmVucydzIGFydGljbGVdKGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9hbWJpZ3VvdXMtYW1wZXJzYW5kcylcbiAgICAgKiAodW5kZXIgXCJzZW1pLXJlbGF0ZWQgZnVuIGZhY3RcIikgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKlxuICAgICAqIFdoZW4gd29ya2luZyB3aXRoIEhUTUwgeW91IHNob3VsZCBhbHdheXNcbiAgICAgKiBbcXVvdGUgYXR0cmlidXRlIHZhbHVlc10oaHR0cDovL3dvbmtvLmNvbS9wb3N0L2h0bWwtZXNjYXBpbmcpIHRvIHJlZHVjZVxuICAgICAqIFhTUyB2ZWN0b3JzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGVzY2FwZS5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5lc2NhcGUoJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJyk7XG4gICAgICogLy8gPT4gJ2ZyZWQsIGJhcm5leSwgJmFtcDsgcGViYmxlcydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlc2NhcGUoc3RyaW5nKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgcmV0dXJuIChzdHJpbmcgJiYgcmVIYXNVbmVzY2FwZWRIdG1sLnRlc3Qoc3RyaW5nKSlcbiAgICAgICAgPyBzdHJpbmcucmVwbGFjZShyZVVuZXNjYXBlZEh0bWwsIGVzY2FwZUh0bWxDaGFyKVxuICAgICAgICA6IHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFc2NhcGVzIHRoZSBgUmVnRXhwYCBzcGVjaWFsIGNoYXJhY3RlcnMgXCJeXCIsIFwiJFwiLCBcIlxcXCIsIFwiLlwiLCBcIipcIiwgXCIrXCIsXG4gICAgICogXCI/XCIsIFwiKFwiLCBcIilcIiwgXCJbXCIsIFwiXVwiLCBcIntcIiwgXCJ9XCIsIGFuZCBcInxcIiBpbiBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBlc2NhcGUuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZXNjYXBlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZXNjYXBlUmVnRXhwKCdbbG9kYXNoXShodHRwczovL2xvZGFzaC5jb20vKScpO1xuICAgICAqIC8vID0+ICdcXFtsb2Rhc2hcXF1cXChodHRwczovL2xvZGFzaFxcLmNvbS9cXCknXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXNjYXBlUmVnRXhwKHN0cmluZykge1xuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIHJldHVybiAoc3RyaW5nICYmIHJlSGFzUmVnRXhwQ2hhci50ZXN0KHN0cmluZykpXG4gICAgICAgID8gc3RyaW5nLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgICAgICAgOiBzdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG9cbiAgICAgKiBba2ViYWIgY2FzZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGV0dGVyX2Nhc2UjU3BlY2lhbF9jYXNlX3N0eWxlcykuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBrZWJhYiBjYXNlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ua2ViYWJDYXNlKCdGb28gQmFyJyk7XG4gICAgICogLy8gPT4gJ2Zvby1iYXInXG4gICAgICpcbiAgICAgKiBfLmtlYmFiQ2FzZSgnZm9vQmFyJyk7XG4gICAgICogLy8gPT4gJ2Zvby1iYXInXG4gICAgICpcbiAgICAgKiBfLmtlYmFiQ2FzZSgnX19GT09fQkFSX18nKTtcbiAgICAgKiAvLyA9PiAnZm9vLWJhcidcbiAgICAgKi9cbiAgICB2YXIga2ViYWJDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJy0nIDogJycpICsgd29yZC50b0xvd2VyQ2FzZSgpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AsIGFzIHNwYWNlIHNlcGFyYXRlZCB3b3JkcywgdG8gbG93ZXIgY2FzZS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGxvd2VyIGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5sb3dlckNhc2UoJy0tRm9vLUJhci0tJyk7XG4gICAgICogLy8gPT4gJ2ZvbyBiYXInXG4gICAgICpcbiAgICAgKiBfLmxvd2VyQ2FzZSgnZm9vQmFyJyk7XG4gICAgICogLy8gPT4gJ2ZvbyBiYXInXG4gICAgICpcbiAgICAgKiBfLmxvd2VyQ2FzZSgnX19GT09fQkFSX18nKTtcbiAgICAgKiAvLyA9PiAnZm9vIGJhcidcbiAgICAgKi9cbiAgICB2YXIgbG93ZXJDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJyAnIDogJycpICsgd29yZC50b0xvd2VyQ2FzZSgpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBgc3RyaW5nYCB0byBsb3dlciBjYXNlLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5sb3dlckZpcnN0KCdGcmVkJyk7XG4gICAgICogLy8gPT4gJ2ZyZWQnXG4gICAgICpcbiAgICAgKiBfLmxvd2VyRmlyc3QoJ0ZSRUQnKTtcbiAgICAgKiAvLyA9PiAnZlJFRCdcbiAgICAgKi9cbiAgICB2YXIgbG93ZXJGaXJzdCA9IGNyZWF0ZUNhc2VGaXJzdCgndG9Mb3dlckNhc2UnKTtcblxuICAgIC8qKlxuICAgICAqIFBhZHMgYHN0cmluZ2Agb24gdGhlIGxlZnQgYW5kIHJpZ2h0IHNpZGVzIGlmIGl0J3Mgc2hvcnRlciB0aGFuIGBsZW5ndGhgLlxuICAgICAqIFBhZGRpbmcgY2hhcmFjdGVycyBhcmUgdHJ1bmNhdGVkIGlmIHRoZXkgY2FuJ3QgYmUgZXZlbmx5IGRpdmlkZWQgYnkgYGxlbmd0aGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcGFkLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPTBdIFRoZSBwYWRkaW5nIGxlbmd0aC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYXJzPScgJ10gVGhlIHN0cmluZyB1c2VkIGFzIHBhZGRpbmcuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcGFkZGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5wYWQoJ2FiYycsIDgpO1xuICAgICAqIC8vID0+ICcgIGFiYyAgICdcbiAgICAgKlxuICAgICAqIF8ucGFkKCdhYmMnLCA4LCAnXy0nKTtcbiAgICAgKiAvLyA9PiAnXy1hYmNfLV8nXG4gICAgICpcbiAgICAgKiBfLnBhZCgnYWJjJywgMyk7XG4gICAgICogLy8gPT4gJ2FiYydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwYWQoc3RyaW5nLCBsZW5ndGgsIGNoYXJzKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgbGVuZ3RoID0gdG9JbnRlZ2VyKGxlbmd0aCk7XG5cbiAgICAgIHZhciBzdHJMZW5ndGggPSBsZW5ndGggPyBzdHJpbmdTaXplKHN0cmluZykgOiAwO1xuICAgICAgaWYgKCFsZW5ndGggfHwgc3RyTGVuZ3RoID49IGxlbmd0aCkge1xuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgfVxuICAgICAgdmFyIG1pZCA9IChsZW5ndGggLSBzdHJMZW5ndGgpIC8gMjtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGNyZWF0ZVBhZGRpbmcobmF0aXZlRmxvb3IobWlkKSwgY2hhcnMpICtcbiAgICAgICAgc3RyaW5nICtcbiAgICAgICAgY3JlYXRlUGFkZGluZyhuYXRpdmVDZWlsKG1pZCksIGNoYXJzKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYWRzIGBzdHJpbmdgIG9uIHRoZSByaWdodCBzaWRlIGlmIGl0J3Mgc2hvcnRlciB0aGFuIGBsZW5ndGhgLiBQYWRkaW5nXG4gICAgICogY2hhcmFjdGVycyBhcmUgdHJ1bmNhdGVkIGlmIHRoZXkgZXhjZWVkIGBsZW5ndGhgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHBhZC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD0wXSBUaGUgcGFkZGluZyBsZW5ndGguXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtjaGFycz0nICddIFRoZSBzdHJpbmcgdXNlZCBhcyBwYWRkaW5nLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHBhZGRlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucGFkRW5kKCdhYmMnLCA2KTtcbiAgICAgKiAvLyA9PiAnYWJjICAgJ1xuICAgICAqXG4gICAgICogXy5wYWRFbmQoJ2FiYycsIDYsICdfLScpO1xuICAgICAqIC8vID0+ICdhYmNfLV8nXG4gICAgICpcbiAgICAgKiBfLnBhZEVuZCgnYWJjJywgMyk7XG4gICAgICogLy8gPT4gJ2FiYydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwYWRFbmQoc3RyaW5nLCBsZW5ndGgsIGNoYXJzKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgbGVuZ3RoID0gdG9JbnRlZ2VyKGxlbmd0aCk7XG5cbiAgICAgIHZhciBzdHJMZW5ndGggPSBsZW5ndGggPyBzdHJpbmdTaXplKHN0cmluZykgOiAwO1xuICAgICAgcmV0dXJuIChsZW5ndGggJiYgc3RyTGVuZ3RoIDwgbGVuZ3RoKVxuICAgICAgICA/IChzdHJpbmcgKyBjcmVhdGVQYWRkaW5nKGxlbmd0aCAtIHN0ckxlbmd0aCwgY2hhcnMpKVxuICAgICAgICA6IHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYWRzIGBzdHJpbmdgIG9uIHRoZSBsZWZ0IHNpZGUgaWYgaXQncyBzaG9ydGVyIHRoYW4gYGxlbmd0aGAuIFBhZGRpbmdcbiAgICAgKiBjaGFyYWN0ZXJzIGFyZSB0cnVuY2F0ZWQgaWYgdGhleSBleGNlZWQgYGxlbmd0aGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcGFkLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPTBdIFRoZSBwYWRkaW5nIGxlbmd0aC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYXJzPScgJ10gVGhlIHN0cmluZyB1c2VkIGFzIHBhZGRpbmcuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcGFkZGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5wYWRTdGFydCgnYWJjJywgNik7XG4gICAgICogLy8gPT4gJyAgIGFiYydcbiAgICAgKlxuICAgICAqIF8ucGFkU3RhcnQoJ2FiYycsIDYsICdfLScpO1xuICAgICAqIC8vID0+ICdfLV9hYmMnXG4gICAgICpcbiAgICAgKiBfLnBhZFN0YXJ0KCdhYmMnLCAzKTtcbiAgICAgKiAvLyA9PiAnYWJjJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHBhZFN0YXJ0KHN0cmluZywgbGVuZ3RoLCBjaGFycykge1xuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIGxlbmd0aCA9IHRvSW50ZWdlcihsZW5ndGgpO1xuXG4gICAgICB2YXIgc3RyTGVuZ3RoID0gbGVuZ3RoID8gc3RyaW5nU2l6ZShzdHJpbmcpIDogMDtcbiAgICAgIHJldHVybiAobGVuZ3RoICYmIHN0ckxlbmd0aCA8IGxlbmd0aClcbiAgICAgICAgPyAoY3JlYXRlUGFkZGluZyhsZW5ndGggLSBzdHJMZW5ndGgsIGNoYXJzKSArIHN0cmluZylcbiAgICAgICAgOiBzdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG8gYW4gaW50ZWdlciBvZiB0aGUgc3BlY2lmaWVkIHJhZGl4LiBJZiBgcmFkaXhgIGlzXG4gICAgICogYHVuZGVmaW5lZGAgb3IgYDBgLCBhIGByYWRpeGAgb2YgYDEwYCBpcyB1c2VkIHVubGVzcyBgdmFsdWVgIGlzIGFcbiAgICAgKiBoZXhhZGVjaW1hbCwgaW4gd2hpY2ggY2FzZSBhIGByYWRpeGAgb2YgYDE2YCBpcyB1c2VkLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGFsaWducyB3aXRoIHRoZVxuICAgICAqIFtFUzUgaW1wbGVtZW50YXRpb25dKGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jeDE1LjEuMi4yKSBvZiBgcGFyc2VJbnRgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDEuMS4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcmFkaXg9MTBdIFRoZSByYWRpeCB0byBpbnRlcnByZXQgYHZhbHVlYCBieS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBpbnRlZ2VyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnBhcnNlSW50KCcwOCcpO1xuICAgICAqIC8vID0+IDhcbiAgICAgKlxuICAgICAqIF8ubWFwKFsnNicsICcwOCcsICcxMCddLCBfLnBhcnNlSW50KTtcbiAgICAgKiAvLyA9PiBbNiwgOCwgMTBdXG4gICAgICovXG4gICAgZnVuY3Rpb24gcGFyc2VJbnQoc3RyaW5nLCByYWRpeCwgZ3VhcmQpIHtcbiAgICAgIGlmIChndWFyZCB8fCByYWRpeCA9PSBudWxsKSB7XG4gICAgICAgIHJhZGl4ID0gMDtcbiAgICAgIH0gZWxzZSBpZiAocmFkaXgpIHtcbiAgICAgICAgcmFkaXggPSArcmFkaXg7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmF0aXZlUGFyc2VJbnQodG9TdHJpbmcoc3RyaW5nKS5yZXBsYWNlKHJlVHJpbVN0YXJ0LCAnJyksIHJhZGl4IHx8IDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlcGVhdHMgdGhlIGdpdmVuIHN0cmluZyBgbmAgdGltZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcmVwZWF0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0xXSBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIHJlcGVhdCB0aGUgc3RyaW5nLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcmVwZWF0ZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnJlcGVhdCgnKicsIDMpO1xuICAgICAqIC8vID0+ICcqKionXG4gICAgICpcbiAgICAgKiBfLnJlcGVhdCgnYWJjJywgMik7XG4gICAgICogLy8gPT4gJ2FiY2FiYydcbiAgICAgKlxuICAgICAqIF8ucmVwZWF0KCdhYmMnLCAwKTtcbiAgICAgKiAvLyA9PiAnJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlcGVhdChzdHJpbmcsIG4sIGd1YXJkKSB7XG4gICAgICBpZiAoKGd1YXJkID8gaXNJdGVyYXRlZUNhbGwoc3RyaW5nLCBuLCBndWFyZCkgOiBuID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgIG4gPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbiA9IHRvSW50ZWdlcihuKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlUmVwZWF0KHRvU3RyaW5nKHN0cmluZyksIG4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlcGxhY2VzIG1hdGNoZXMgZm9yIGBwYXR0ZXJuYCBpbiBgc3RyaW5nYCB3aXRoIGByZXBsYWNlbWVudGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb25cbiAgICAgKiBbYFN0cmluZyNyZXBsYWNlYF0oaHR0cHM6Ly9tZG4uaW8vU3RyaW5nL3JlcGxhY2UpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge1JlZ0V4cHxzdHJpbmd9IHBhdHRlcm4gVGhlIHBhdHRlcm4gdG8gcmVwbGFjZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufHN0cmluZ30gcmVwbGFjZW1lbnQgVGhlIG1hdGNoIHJlcGxhY2VtZW50LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIG1vZGlmaWVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5yZXBsYWNlKCdIaSBGcmVkJywgJ0ZyZWQnLCAnQmFybmV5Jyk7XG4gICAgICogLy8gPT4gJ0hpIEJhcm5leSdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZXBsYWNlKCkge1xuICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgICAgc3RyaW5nID0gdG9TdHJpbmcoYXJnc1swXSk7XG5cbiAgICAgIHJldHVybiBhcmdzLmxlbmd0aCA8IDMgPyBzdHJpbmcgOiBzdHJpbmcucmVwbGFjZShhcmdzWzFdLCBhcmdzWzJdKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCB0b1xuICAgICAqIFtzbmFrZSBjYXNlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TbmFrZV9jYXNlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHNuYWtlIGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zbmFrZUNhc2UoJ0ZvbyBCYXInKTtcbiAgICAgKiAvLyA9PiAnZm9vX2JhcidcbiAgICAgKlxuICAgICAqIF8uc25ha2VDYXNlKCdmb29CYXInKTtcbiAgICAgKiAvLyA9PiAnZm9vX2JhcidcbiAgICAgKlxuICAgICAqIF8uc25ha2VDYXNlKCctLUZPTy1CQVItLScpO1xuICAgICAqIC8vID0+ICdmb29fYmFyJ1xuICAgICAqL1xuICAgIHZhciBzbmFrZUNhc2UgPSBjcmVhdGVDb21wb3VuZGVyKGZ1bmN0aW9uKHJlc3VsdCwgd29yZCwgaW5kZXgpIHtcbiAgICAgIHJldHVybiByZXN1bHQgKyAoaW5kZXggPyAnXycgOiAnJykgKyB3b3JkLnRvTG93ZXJDYXNlKCk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBTcGxpdHMgYHN0cmluZ2AgYnkgYHNlcGFyYXRvcmAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb25cbiAgICAgKiBbYFN0cmluZyNzcGxpdGBdKGh0dHBzOi8vbWRuLmlvL1N0cmluZy9zcGxpdCkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gc3BsaXQuXG4gICAgICogQHBhcmFtIHtSZWdFeHB8c3RyaW5nfSBzZXBhcmF0b3IgVGhlIHNlcGFyYXRvciBwYXR0ZXJuIHRvIHNwbGl0IGJ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGltaXRdIFRoZSBsZW5ndGggdG8gdHJ1bmNhdGUgcmVzdWx0cyB0by5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHN0cmluZyBzZWdtZW50cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zcGxpdCgnYS1iLWMnLCAnLScsIDIpO1xuICAgICAqIC8vID0+IFsnYScsICdiJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzcGxpdChzdHJpbmcsIHNlcGFyYXRvciwgbGltaXQpIHtcbiAgICAgIGlmIChsaW1pdCAmJiB0eXBlb2YgbGltaXQgIT0gJ251bWJlcicgJiYgaXNJdGVyYXRlZUNhbGwoc3RyaW5nLCBzZXBhcmF0b3IsIGxpbWl0KSkge1xuICAgICAgICBzZXBhcmF0b3IgPSBsaW1pdCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGxpbWl0ID0gbGltaXQgPT09IHVuZGVmaW5lZCA/IE1BWF9BUlJBWV9MRU5HVEggOiBsaW1pdCA+Pj4gMDtcbiAgICAgIGlmICghbGltaXQpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIGlmIChzdHJpbmcgJiYgKFxuICAgICAgICAgICAgdHlwZW9mIHNlcGFyYXRvciA9PSAnc3RyaW5nJyB8fFxuICAgICAgICAgICAgKHNlcGFyYXRvciAhPSBudWxsICYmICFpc1JlZ0V4cChzZXBhcmF0b3IpKVxuICAgICAgICAgICkpIHtcbiAgICAgICAgc2VwYXJhdG9yID0gYmFzZVRvU3RyaW5nKHNlcGFyYXRvcik7XG4gICAgICAgIGlmICghc2VwYXJhdG9yICYmIGhhc1VuaWNvZGUoc3RyaW5nKSkge1xuICAgICAgICAgIHJldHVybiBjYXN0U2xpY2Uoc3RyaW5nVG9BcnJheShzdHJpbmcpLCAwLCBsaW1pdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBzdHJpbmcuc3BsaXQoc2VwYXJhdG9yLCBsaW1pdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG9cbiAgICAgKiBbc3RhcnQgY2FzZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGV0dGVyX2Nhc2UjU3R5bGlzdGljX29yX3NwZWNpYWxpc2VkX3VzYWdlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjEuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHN0YXJ0IGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zdGFydENhc2UoJy0tZm9vLWJhci0tJyk7XG4gICAgICogLy8gPT4gJ0ZvbyBCYXInXG4gICAgICpcbiAgICAgKiBfLnN0YXJ0Q2FzZSgnZm9vQmFyJyk7XG4gICAgICogLy8gPT4gJ0ZvbyBCYXInXG4gICAgICpcbiAgICAgKiBfLnN0YXJ0Q2FzZSgnX19GT09fQkFSX18nKTtcbiAgICAgKiAvLyA9PiAnRk9PIEJBUidcbiAgICAgKi9cbiAgICB2YXIgc3RhcnRDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJyAnIDogJycpICsgdXBwZXJGaXJzdCh3b3JkKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgc3RyaW5nYCBzdGFydHMgd2l0aCB0aGUgZ2l2ZW4gdGFyZ2V0IHN0cmluZy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbdGFyZ2V0XSBUaGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtwb3NpdGlvbj0wXSBUaGUgcG9zaXRpb24gdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBzdHJpbmdgIHN0YXJ0cyB3aXRoIGB0YXJnZXRgLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc3RhcnRzV2l0aCgnYWJjJywgJ2EnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLnN0YXJ0c1dpdGgoJ2FiYycsICdiJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uc3RhcnRzV2l0aCgnYWJjJywgJ2InLCAxKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3RhcnRzV2l0aChzdHJpbmcsIHRhcmdldCwgcG9zaXRpb24pIHtcbiAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uID09IG51bGxcbiAgICAgICAgPyAwXG4gICAgICAgIDogYmFzZUNsYW1wKHRvSW50ZWdlcihwb3NpdGlvbiksIDAsIHN0cmluZy5sZW5ndGgpO1xuXG4gICAgICB0YXJnZXQgPSBiYXNlVG9TdHJpbmcodGFyZ2V0KTtcbiAgICAgIHJldHVybiBzdHJpbmcuc2xpY2UocG9zaXRpb24sIHBvc2l0aW9uICsgdGFyZ2V0Lmxlbmd0aCkgPT0gdGFyZ2V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjb21waWxlZCB0ZW1wbGF0ZSBmdW5jdGlvbiB0aGF0IGNhbiBpbnRlcnBvbGF0ZSBkYXRhIHByb3BlcnRpZXNcbiAgICAgKiBpbiBcImludGVycG9sYXRlXCIgZGVsaW1pdGVycywgSFRNTC1lc2NhcGUgaW50ZXJwb2xhdGVkIGRhdGEgcHJvcGVydGllcyBpblxuICAgICAqIFwiZXNjYXBlXCIgZGVsaW1pdGVycywgYW5kIGV4ZWN1dGUgSmF2YVNjcmlwdCBpbiBcImV2YWx1YXRlXCIgZGVsaW1pdGVycy4gRGF0YVxuICAgICAqIHByb3BlcnRpZXMgbWF5IGJlIGFjY2Vzc2VkIGFzIGZyZWUgdmFyaWFibGVzIGluIHRoZSB0ZW1wbGF0ZS4gSWYgYSBzZXR0aW5nXG4gICAgICogb2JqZWN0IGlzIGdpdmVuLCBpdCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgYF8udGVtcGxhdGVTZXR0aW5nc2AgdmFsdWVzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIEluIHRoZSBkZXZlbG9wbWVudCBidWlsZCBgXy50ZW1wbGF0ZWAgdXRpbGl6ZXNcbiAgICAgKiBbc291cmNlVVJMc10oaHR0cDovL3d3dy5odG1sNXJvY2tzLmNvbS9lbi90dXRvcmlhbHMvZGV2ZWxvcGVydG9vbHMvc291cmNlbWFwcy8jdG9jLXNvdXJjZXVybClcbiAgICAgKiBmb3IgZWFzaWVyIGRlYnVnZ2luZy5cbiAgICAgKlxuICAgICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHByZWNvbXBpbGluZyB0ZW1wbGF0ZXMgc2VlXG4gICAgICogW2xvZGFzaCdzIGN1c3RvbSBidWlsZHMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9sb2Rhc2guY29tL2N1c3RvbS1idWlsZHMpLlxuICAgICAqXG4gICAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gQ2hyb21lIGV4dGVuc2lvbiBzYW5kYm94ZXMgc2VlXG4gICAgICogW0Nocm9tZSdzIGV4dGVuc2lvbnMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXIuY2hyb21lLmNvbS9leHRlbnNpb25zL3NhbmRib3hpbmdFdmFsKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHRlbXBsYXRlIHN0cmluZy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge1JlZ0V4cH0gW29wdGlvbnMuZXNjYXBlPV8udGVtcGxhdGVTZXR0aW5ncy5lc2NhcGVdXG4gICAgICogIFRoZSBIVE1MIFwiZXNjYXBlXCIgZGVsaW1pdGVyLlxuICAgICAqIEBwYXJhbSB7UmVnRXhwfSBbb3B0aW9ucy5ldmFsdWF0ZT1fLnRlbXBsYXRlU2V0dGluZ3MuZXZhbHVhdGVdXG4gICAgICogIFRoZSBcImV2YWx1YXRlXCIgZGVsaW1pdGVyLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucy5pbXBvcnRzPV8udGVtcGxhdGVTZXR0aW5ncy5pbXBvcnRzXVxuICAgICAqICBBbiBvYmplY3QgdG8gaW1wb3J0IGludG8gdGhlIHRlbXBsYXRlIGFzIGZyZWUgdmFyaWFibGVzLlxuICAgICAqIEBwYXJhbSB7UmVnRXhwfSBbb3B0aW9ucy5pbnRlcnBvbGF0ZT1fLnRlbXBsYXRlU2V0dGluZ3MuaW50ZXJwb2xhdGVdXG4gICAgICogIFRoZSBcImludGVycG9sYXRlXCIgZGVsaW1pdGVyLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5zb3VyY2VVUkw9J2xvZGFzaC50ZW1wbGF0ZVNvdXJjZXNbbl0nXVxuICAgICAqICBUaGUgc291cmNlVVJMIG9mIHRoZSBjb21waWxlZCB0ZW1wbGF0ZS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMudmFyaWFibGU9J29iaiddXG4gICAgICogIFRoZSBkYXRhIG9iamVjdCB2YXJpYWJsZSBuYW1lLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBjb21waWxlZCB0ZW1wbGF0ZSBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gVXNlIHRoZSBcImludGVycG9sYXRlXCIgZGVsaW1pdGVyIHRvIGNyZWF0ZSBhIGNvbXBpbGVkIHRlbXBsYXRlLlxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hlbGxvIDwlPSB1c2VyICU+IScpO1xuICAgICAqIGNvbXBpbGVkKHsgJ3VzZXInOiAnZnJlZCcgfSk7XG4gICAgICogLy8gPT4gJ2hlbGxvIGZyZWQhJ1xuICAgICAqXG4gICAgICogLy8gVXNlIHRoZSBIVE1MIFwiZXNjYXBlXCIgZGVsaW1pdGVyIHRvIGVzY2FwZSBkYXRhIHByb3BlcnR5IHZhbHVlcy5cbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCc8Yj48JS0gdmFsdWUgJT48L2I+Jyk7XG4gICAgICogY29tcGlsZWQoeyAndmFsdWUnOiAnPHNjcmlwdD4nIH0pO1xuICAgICAqIC8vID0+ICc8Yj4mbHQ7c2NyaXB0Jmd0OzwvYj4nXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIFwiZXZhbHVhdGVcIiBkZWxpbWl0ZXIgdG8gZXhlY3V0ZSBKYXZhU2NyaXB0IGFuZCBnZW5lcmF0ZSBIVE1MLlxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzwlIF8uZm9yRWFjaCh1c2VycywgZnVuY3Rpb24odXNlcikgeyAlPjxsaT48JS0gdXNlciAlPjwvbGk+PCUgfSk7ICU+Jyk7XG4gICAgICogY29tcGlsZWQoeyAndXNlcnMnOiBbJ2ZyZWQnLCAnYmFybmV5J10gfSk7XG4gICAgICogLy8gPT4gJzxsaT5mcmVkPC9saT48bGk+YmFybmV5PC9saT4nXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIGludGVybmFsIGBwcmludGAgZnVuY3Rpb24gaW4gXCJldmFsdWF0ZVwiIGRlbGltaXRlcnMuXG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnPCUgcHJpbnQoXCJoZWxsbyBcIiArIHVzZXIpOyAlPiEnKTtcbiAgICAgKiBjb21waWxlZCh7ICd1c2VyJzogJ2Jhcm5leScgfSk7XG4gICAgICogLy8gPT4gJ2hlbGxvIGJhcm5leSEnXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIEVTIHRlbXBsYXRlIGxpdGVyYWwgZGVsaW1pdGVyIGFzIGFuIFwiaW50ZXJwb2xhdGVcIiBkZWxpbWl0ZXIuXG4gICAgICogLy8gRGlzYWJsZSBzdXBwb3J0IGJ5IHJlcGxhY2luZyB0aGUgXCJpbnRlcnBvbGF0ZVwiIGRlbGltaXRlci5cbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyAkeyB1c2VyIH0hJyk7XG4gICAgICogY29tcGlsZWQoeyAndXNlcic6ICdwZWJibGVzJyB9KTtcbiAgICAgKiAvLyA9PiAnaGVsbG8gcGViYmxlcyEnXG4gICAgICpcbiAgICAgKiAvLyBVc2UgYmFja3NsYXNoZXMgdG8gdHJlYXQgZGVsaW1pdGVycyBhcyBwbGFpbiB0ZXh0LlxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzwlPSBcIlxcXFw8JS0gdmFsdWUgJVxcXFw+XCIgJT4nKTtcbiAgICAgKiBjb21waWxlZCh7ICd2YWx1ZSc6ICdpZ25vcmVkJyB9KTtcbiAgICAgKiAvLyA9PiAnPCUtIHZhbHVlICU+J1xuICAgICAqXG4gICAgICogLy8gVXNlIHRoZSBgaW1wb3J0c2Agb3B0aW9uIHRvIGltcG9ydCBgalF1ZXJ5YCBhcyBganFgLlxuICAgICAqIHZhciB0ZXh0ID0gJzwlIGpxLmVhY2godXNlcnMsIGZ1bmN0aW9uKHVzZXIpIHsgJT48bGk+PCUtIHVzZXIgJT48L2xpPjwlIH0pOyAlPic7XG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSh0ZXh0LCB7ICdpbXBvcnRzJzogeyAnanEnOiBqUXVlcnkgfSB9KTtcbiAgICAgKiBjb21waWxlZCh7ICd1c2Vycyc6IFsnZnJlZCcsICdiYXJuZXknXSB9KTtcbiAgICAgKiAvLyA9PiAnPGxpPmZyZWQ8L2xpPjxsaT5iYXJuZXk8L2xpPidcbiAgICAgKlxuICAgICAqIC8vIFVzZSB0aGUgYHNvdXJjZVVSTGAgb3B0aW9uIHRvIHNwZWNpZnkgYSBjdXN0b20gc291cmNlVVJMIGZvciB0aGUgdGVtcGxhdGUuXG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnaGVsbG8gPCU9IHVzZXIgJT4hJywgeyAnc291cmNlVVJMJzogJy9iYXNpYy9ncmVldGluZy5qc3QnIH0pO1xuICAgICAqIGNvbXBpbGVkKGRhdGEpO1xuICAgICAqIC8vID0+IEZpbmQgdGhlIHNvdXJjZSBvZiBcImdyZWV0aW5nLmpzdFwiIHVuZGVyIHRoZSBTb3VyY2VzIHRhYiBvciBSZXNvdXJjZXMgcGFuZWwgb2YgdGhlIHdlYiBpbnNwZWN0b3IuXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIGB2YXJpYWJsZWAgb3B0aW9uIHRvIGVuc3VyZSBhIHdpdGgtc3RhdGVtZW50IGlzbid0IHVzZWQgaW4gdGhlIGNvbXBpbGVkIHRlbXBsYXRlLlxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hpIDwlPSBkYXRhLnVzZXIgJT4hJywgeyAndmFyaWFibGUnOiAnZGF0YScgfSk7XG4gICAgICogY29tcGlsZWQuc291cmNlO1xuICAgICAqIC8vID0+IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgKiAvLyAgIHZhciBfX3QsIF9fcCA9ICcnO1xuICAgICAqIC8vICAgX19wICs9ICdoaSAnICsgKChfX3QgPSAoIGRhdGEudXNlciApKSA9PSBudWxsID8gJycgOiBfX3QpICsgJyEnO1xuICAgICAqIC8vICAgcmV0dXJuIF9fcDtcbiAgICAgKiAvLyB9XG4gICAgICpcbiAgICAgKiAvLyBVc2UgY3VzdG9tIHRlbXBsYXRlIGRlbGltaXRlcnMuXG4gICAgICogXy50ZW1wbGF0ZVNldHRpbmdzLmludGVycG9sYXRlID0gL3t7KFtcXHNcXFNdKz8pfX0vZztcbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyB7eyB1c2VyIH19IScpO1xuICAgICAqIGNvbXBpbGVkKHsgJ3VzZXInOiAnbXVzdGFjaGUnIH0pO1xuICAgICAqIC8vID0+ICdoZWxsbyBtdXN0YWNoZSEnXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIGBzb3VyY2VgIHByb3BlcnR5IHRvIGlubGluZSBjb21waWxlZCB0ZW1wbGF0ZXMgZm9yIG1lYW5pbmdmdWxcbiAgICAgKiAvLyBsaW5lIG51bWJlcnMgaW4gZXJyb3IgbWVzc2FnZXMgYW5kIHN0YWNrIHRyYWNlcy5cbiAgICAgKiBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnanN0LmpzJyksICdcXFxuICAgICAqICAgdmFyIEpTVCA9IHtcXFxuICAgICAqICAgICBcIm1haW5cIjogJyArIF8udGVtcGxhdGUobWFpblRleHQpLnNvdXJjZSArICdcXFxuICAgICAqICAgfTtcXFxuICAgICAqICcpO1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRlbXBsYXRlKHN0cmluZywgb3B0aW9ucywgZ3VhcmQpIHtcbiAgICAgIC8vIEJhc2VkIG9uIEpvaG4gUmVzaWcncyBgdG1wbGAgaW1wbGVtZW50YXRpb25cbiAgICAgIC8vIChodHRwOi8vZWpvaG4ub3JnL2Jsb2cvamF2YXNjcmlwdC1taWNyby10ZW1wbGF0aW5nLylcbiAgICAgIC8vIGFuZCBMYXVyYSBEb2t0b3JvdmEncyBkb1QuanMgKGh0dHBzOi8vZ2l0aHViLmNvbS9vbGFkby9kb1QpLlxuICAgICAgdmFyIHNldHRpbmdzID0gbG9kYXNoLnRlbXBsYXRlU2V0dGluZ3M7XG5cbiAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzdHJpbmcsIG9wdGlvbnMsIGd1YXJkKSkge1xuICAgICAgICBvcHRpb25zID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIG9wdGlvbnMgPSBhc3NpZ25JbldpdGgoe30sIG9wdGlvbnMsIHNldHRpbmdzLCBjdXN0b21EZWZhdWx0c0Fzc2lnbkluKTtcblxuICAgICAgdmFyIGltcG9ydHMgPSBhc3NpZ25JbldpdGgoe30sIG9wdGlvbnMuaW1wb3J0cywgc2V0dGluZ3MuaW1wb3J0cywgY3VzdG9tRGVmYXVsdHNBc3NpZ25JbiksXG4gICAgICAgICAgaW1wb3J0c0tleXMgPSBrZXlzKGltcG9ydHMpLFxuICAgICAgICAgIGltcG9ydHNWYWx1ZXMgPSBiYXNlVmFsdWVzKGltcG9ydHMsIGltcG9ydHNLZXlzKTtcblxuICAgICAgdmFyIGlzRXNjYXBpbmcsXG4gICAgICAgICAgaXNFdmFsdWF0aW5nLFxuICAgICAgICAgIGluZGV4ID0gMCxcbiAgICAgICAgICBpbnRlcnBvbGF0ZSA9IG9wdGlvbnMuaW50ZXJwb2xhdGUgfHwgcmVOb01hdGNoLFxuICAgICAgICAgIHNvdXJjZSA9IFwiX19wICs9ICdcIjtcblxuICAgICAgLy8gQ29tcGlsZSB0aGUgcmVnZXhwIHRvIG1hdGNoIGVhY2ggZGVsaW1pdGVyLlxuICAgICAgdmFyIHJlRGVsaW1pdGVycyA9IFJlZ0V4cChcbiAgICAgICAgKG9wdGlvbnMuZXNjYXBlIHx8IHJlTm9NYXRjaCkuc291cmNlICsgJ3wnICtcbiAgICAgICAgaW50ZXJwb2xhdGUuc291cmNlICsgJ3wnICtcbiAgICAgICAgKGludGVycG9sYXRlID09PSByZUludGVycG9sYXRlID8gcmVFc1RlbXBsYXRlIDogcmVOb01hdGNoKS5zb3VyY2UgKyAnfCcgK1xuICAgICAgICAob3B0aW9ucy5ldmFsdWF0ZSB8fCByZU5vTWF0Y2gpLnNvdXJjZSArICd8JCdcbiAgICAgICwgJ2cnKTtcblxuICAgICAgLy8gVXNlIGEgc291cmNlVVJMIGZvciBlYXNpZXIgZGVidWdnaW5nLlxuICAgICAgLy8gVGhlIHNvdXJjZVVSTCBnZXRzIGluamVjdGVkIGludG8gdGhlIHNvdXJjZSB0aGF0J3MgZXZhbC1lZCwgc28gYmUgY2FyZWZ1bFxuICAgICAgLy8gdG8gbm9ybWFsaXplIGFsbCBraW5kcyBvZiB3aGl0ZXNwYWNlLCBzbyBlLmcuIG5ld2xpbmVzIChhbmQgdW5pY29kZSB2ZXJzaW9ucyBvZiBpdCkgY2FuJ3Qgc25lYWsgaW5cbiAgICAgIC8vIGFuZCBlc2NhcGUgdGhlIGNvbW1lbnQsIHRodXMgaW5qZWN0aW5nIGNvZGUgdGhhdCBnZXRzIGV2YWxlZC5cbiAgICAgIHZhciBzb3VyY2VVUkwgPSAnLy8jIHNvdXJjZVVSTD0nICtcbiAgICAgICAgKGhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucywgJ3NvdXJjZVVSTCcpXG4gICAgICAgICAgPyAob3B0aW9ucy5zb3VyY2VVUkwgKyAnJykucmVwbGFjZSgvXFxzL2csICcgJylcbiAgICAgICAgICA6ICgnbG9kYXNoLnRlbXBsYXRlU291cmNlc1snICsgKCsrdGVtcGxhdGVDb3VudGVyKSArICddJylcbiAgICAgICAgKSArICdcXG4nO1xuXG4gICAgICBzdHJpbmcucmVwbGFjZShyZURlbGltaXRlcnMsIGZ1bmN0aW9uKG1hdGNoLCBlc2NhcGVWYWx1ZSwgaW50ZXJwb2xhdGVWYWx1ZSwgZXNUZW1wbGF0ZVZhbHVlLCBldmFsdWF0ZVZhbHVlLCBvZmZzZXQpIHtcbiAgICAgICAgaW50ZXJwb2xhdGVWYWx1ZSB8fCAoaW50ZXJwb2xhdGVWYWx1ZSA9IGVzVGVtcGxhdGVWYWx1ZSk7XG5cbiAgICAgICAgLy8gRXNjYXBlIGNoYXJhY3RlcnMgdGhhdCBjYW4ndCBiZSBpbmNsdWRlZCBpbiBzdHJpbmcgbGl0ZXJhbHMuXG4gICAgICAgIHNvdXJjZSArPSBzdHJpbmcuc2xpY2UoaW5kZXgsIG9mZnNldCkucmVwbGFjZShyZVVuZXNjYXBlZFN0cmluZywgZXNjYXBlU3RyaW5nQ2hhcik7XG5cbiAgICAgICAgLy8gUmVwbGFjZSBkZWxpbWl0ZXJzIHdpdGggc25pcHBldHMuXG4gICAgICAgIGlmIChlc2NhcGVWYWx1ZSkge1xuICAgICAgICAgIGlzRXNjYXBpbmcgPSB0cnVlO1xuICAgICAgICAgIHNvdXJjZSArPSBcIicgK1xcbl9fZShcIiArIGVzY2FwZVZhbHVlICsgXCIpICtcXG4nXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2YWx1YXRlVmFsdWUpIHtcbiAgICAgICAgICBpc0V2YWx1YXRpbmcgPSB0cnVlO1xuICAgICAgICAgIHNvdXJjZSArPSBcIic7XFxuXCIgKyBldmFsdWF0ZVZhbHVlICsgXCI7XFxuX19wICs9ICdcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW50ZXJwb2xhdGVWYWx1ZSkge1xuICAgICAgICAgIHNvdXJjZSArPSBcIicgK1xcbigoX190ID0gKFwiICsgaW50ZXJwb2xhdGVWYWx1ZSArIFwiKSkgPT0gbnVsbCA/ICcnIDogX190KSArXFxuJ1wiO1xuICAgICAgICB9XG4gICAgICAgIGluZGV4ID0gb2Zmc2V0ICsgbWF0Y2gubGVuZ3RoO1xuXG4gICAgICAgIC8vIFRoZSBKUyBlbmdpbmUgZW1iZWRkZWQgaW4gQWRvYmUgcHJvZHVjdHMgbmVlZHMgYG1hdGNoYCByZXR1cm5lZCBpblxuICAgICAgICAvLyBvcmRlciB0byBwcm9kdWNlIHRoZSBjb3JyZWN0IGBvZmZzZXRgIHZhbHVlLlxuICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICB9KTtcblxuICAgICAgc291cmNlICs9IFwiJztcXG5cIjtcblxuICAgICAgLy8gSWYgYHZhcmlhYmxlYCBpcyBub3Qgc3BlY2lmaWVkIHdyYXAgYSB3aXRoLXN0YXRlbWVudCBhcm91bmQgdGhlIGdlbmVyYXRlZFxuICAgICAgLy8gY29kZSB0byBhZGQgdGhlIGRhdGEgb2JqZWN0IHRvIHRoZSB0b3Agb2YgdGhlIHNjb3BlIGNoYWluLlxuICAgICAgdmFyIHZhcmlhYmxlID0gaGFzT3duUHJvcGVydHkuY2FsbChvcHRpb25zLCAndmFyaWFibGUnKSAmJiBvcHRpb25zLnZhcmlhYmxlO1xuICAgICAgaWYgKCF2YXJpYWJsZSkge1xuICAgICAgICBzb3VyY2UgPSAnd2l0aCAob2JqKSB7XFxuJyArIHNvdXJjZSArICdcXG59XFxuJztcbiAgICAgIH1cbiAgICAgIC8vIFRocm93IGFuIGVycm9yIGlmIGEgZm9yYmlkZGVuIGNoYXJhY3RlciB3YXMgZm91bmQgaW4gYHZhcmlhYmxlYCwgdG8gcHJldmVudFxuICAgICAgLy8gcG90ZW50aWFsIGNvbW1hbmQgaW5qZWN0aW9uIGF0dGFja3MuXG4gICAgICBlbHNlIGlmIChyZUZvcmJpZGRlbklkZW50aWZpZXJDaGFycy50ZXN0KHZhcmlhYmxlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoSU5WQUxJRF9URU1QTF9WQVJfRVJST1JfVEVYVCk7XG4gICAgICB9XG5cbiAgICAgIC8vIENsZWFudXAgY29kZSBieSBzdHJpcHBpbmcgZW1wdHkgc3RyaW5ncy5cbiAgICAgIHNvdXJjZSA9IChpc0V2YWx1YXRpbmcgPyBzb3VyY2UucmVwbGFjZShyZUVtcHR5U3RyaW5nTGVhZGluZywgJycpIDogc291cmNlKVxuICAgICAgICAucmVwbGFjZShyZUVtcHR5U3RyaW5nTWlkZGxlLCAnJDEnKVxuICAgICAgICAucmVwbGFjZShyZUVtcHR5U3RyaW5nVHJhaWxpbmcsICckMTsnKTtcblxuICAgICAgLy8gRnJhbWUgY29kZSBhcyB0aGUgZnVuY3Rpb24gYm9keS5cbiAgICAgIHNvdXJjZSA9ICdmdW5jdGlvbignICsgKHZhcmlhYmxlIHx8ICdvYmonKSArICcpIHtcXG4nICtcbiAgICAgICAgKHZhcmlhYmxlXG4gICAgICAgICAgPyAnJ1xuICAgICAgICAgIDogJ29iaiB8fCAob2JqID0ge30pO1xcbidcbiAgICAgICAgKSArXG4gICAgICAgIFwidmFyIF9fdCwgX19wID0gJydcIiArXG4gICAgICAgIChpc0VzY2FwaW5nXG4gICAgICAgICAgID8gJywgX19lID0gXy5lc2NhcGUnXG4gICAgICAgICAgIDogJydcbiAgICAgICAgKSArXG4gICAgICAgIChpc0V2YWx1YXRpbmdcbiAgICAgICAgICA/ICcsIF9faiA9IEFycmF5LnByb3RvdHlwZS5qb2luO1xcbicgK1xuICAgICAgICAgICAgXCJmdW5jdGlvbiBwcmludCgpIHsgX19wICs9IF9fai5jYWxsKGFyZ3VtZW50cywgJycpIH1cXG5cIlxuICAgICAgICAgIDogJztcXG4nXG4gICAgICAgICkgK1xuICAgICAgICBzb3VyY2UgK1xuICAgICAgICAncmV0dXJuIF9fcFxcbn0nO1xuXG4gICAgICB2YXIgcmVzdWx0ID0gYXR0ZW1wdChmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEZ1bmN0aW9uKGltcG9ydHNLZXlzLCBzb3VyY2VVUkwgKyAncmV0dXJuICcgKyBzb3VyY2UpXG4gICAgICAgICAgLmFwcGx5KHVuZGVmaW5lZCwgaW1wb3J0c1ZhbHVlcyk7XG4gICAgICB9KTtcblxuICAgICAgLy8gUHJvdmlkZSB0aGUgY29tcGlsZWQgZnVuY3Rpb24ncyBzb3VyY2UgYnkgaXRzIGB0b1N0cmluZ2AgbWV0aG9kIG9yXG4gICAgICAvLyB0aGUgYHNvdXJjZWAgcHJvcGVydHkgYXMgYSBjb252ZW5pZW5jZSBmb3IgaW5saW5pbmcgY29tcGlsZWQgdGVtcGxhdGVzLlxuICAgICAgcmVzdWx0LnNvdXJjZSA9IHNvdXJjZTtcbiAgICAgIGlmIChpc0Vycm9yKHJlc3VsdCkpIHtcbiAgICAgICAgdGhyb3cgcmVzdWx0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCwgYXMgYSB3aG9sZSwgdG8gbG93ZXIgY2FzZSBqdXN0IGxpa2VcbiAgICAgKiBbU3RyaW5nI3RvTG93ZXJDYXNlXShodHRwczovL21kbi5pby90b0xvd2VyQ2FzZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBsb3dlciBjYXNlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9Mb3dlcignLS1Gb28tQmFyLS0nKTtcbiAgICAgKiAvLyA9PiAnLS1mb28tYmFyLS0nXG4gICAgICpcbiAgICAgKiBfLnRvTG93ZXIoJ2Zvb0JhcicpO1xuICAgICAqIC8vID0+ICdmb29iYXInXG4gICAgICpcbiAgICAgKiBfLnRvTG93ZXIoJ19fRk9PX0JBUl9fJyk7XG4gICAgICogLy8gPT4gJ19fZm9vX2Jhcl9fJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvTG93ZXIodmFsdWUpIHtcbiAgICAgIHJldHVybiB0b1N0cmluZyh2YWx1ZSkudG9Mb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCwgYXMgYSB3aG9sZSwgdG8gdXBwZXIgY2FzZSBqdXN0IGxpa2VcbiAgICAgKiBbU3RyaW5nI3RvVXBwZXJDYXNlXShodHRwczovL21kbi5pby90b1VwcGVyQ2FzZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB1cHBlciBjYXNlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9VcHBlcignLS1mb28tYmFyLS0nKTtcbiAgICAgKiAvLyA9PiAnLS1GT08tQkFSLS0nXG4gICAgICpcbiAgICAgKiBfLnRvVXBwZXIoJ2Zvb0JhcicpO1xuICAgICAqIC8vID0+ICdGT09CQVInXG4gICAgICpcbiAgICAgKiBfLnRvVXBwZXIoJ19fZm9vX2Jhcl9fJyk7XG4gICAgICogLy8gPT4gJ19fRk9PX0JBUl9fJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvVXBwZXIodmFsdWUpIHtcbiAgICAgIHJldHVybiB0b1N0cmluZyh2YWx1ZSkudG9VcHBlckNhc2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2Ugb3Igc3BlY2lmaWVkIGNoYXJhY3RlcnMgZnJvbSBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byB0cmltLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY2hhcnM9d2hpdGVzcGFjZV0gVGhlIGNoYXJhY3RlcnMgdG8gdHJpbS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHRyaW1tZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRyaW0oJyAgYWJjICAnKTtcbiAgICAgKiAvLyA9PiAnYWJjJ1xuICAgICAqXG4gICAgICogXy50cmltKCctXy1hYmMtXy0nLCAnXy0nKTtcbiAgICAgKiAvLyA9PiAnYWJjJ1xuICAgICAqXG4gICAgICogXy5tYXAoWycgIGZvbyAgJywgJyAgYmFyICAnXSwgXy50cmltKTtcbiAgICAgKiAvLyA9PiBbJ2ZvbycsICdiYXInXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRyaW0oc3RyaW5nLCBjaGFycywgZ3VhcmQpIHtcbiAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICBpZiAoc3RyaW5nICYmIChndWFyZCB8fCBjaGFycyA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICByZXR1cm4gYmFzZVRyaW0oc3RyaW5nKTtcbiAgICAgIH1cbiAgICAgIGlmICghc3RyaW5nIHx8ICEoY2hhcnMgPSBiYXNlVG9TdHJpbmcoY2hhcnMpKSkge1xuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgfVxuICAgICAgdmFyIHN0clN5bWJvbHMgPSBzdHJpbmdUb0FycmF5KHN0cmluZyksXG4gICAgICAgICAgY2hyU3ltYm9scyA9IHN0cmluZ1RvQXJyYXkoY2hhcnMpLFxuICAgICAgICAgIHN0YXJ0ID0gY2hhcnNTdGFydEluZGV4KHN0clN5bWJvbHMsIGNoclN5bWJvbHMpLFxuICAgICAgICAgIGVuZCA9IGNoYXJzRW5kSW5kZXgoc3RyU3ltYm9scywgY2hyU3ltYm9scykgKyAxO1xuXG4gICAgICByZXR1cm4gY2FzdFNsaWNlKHN0clN5bWJvbHMsIHN0YXJ0LCBlbmQpLmpvaW4oJycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdHJhaWxpbmcgd2hpdGVzcGFjZSBvciBzcGVjaWZpZWQgY2hhcmFjdGVycyBmcm9tIGBzdHJpbmdgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHRyaW0uXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtjaGFycz13aGl0ZXNwYWNlXSBUaGUgY2hhcmFjdGVycyB0byB0cmltLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdHJpbW1lZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udHJpbUVuZCgnICBhYmMgICcpO1xuICAgICAqIC8vID0+ICcgIGFiYydcbiAgICAgKlxuICAgICAqIF8udHJpbUVuZCgnLV8tYWJjLV8tJywgJ18tJyk7XG4gICAgICogLy8gPT4gJy1fLWFiYydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0cmltRW5kKHN0cmluZywgY2hhcnMsIGd1YXJkKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgaWYgKHN0cmluZyAmJiAoZ3VhcmQgfHwgY2hhcnMgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZy5zbGljZSgwLCB0cmltbWVkRW5kSW5kZXgoc3RyaW5nKSArIDEpO1xuICAgICAgfVxuICAgICAgaWYgKCFzdHJpbmcgfHwgIShjaGFycyA9IGJhc2VUb1N0cmluZyhjaGFycykpKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICB9XG4gICAgICB2YXIgc3RyU3ltYm9scyA9IHN0cmluZ1RvQXJyYXkoc3RyaW5nKSxcbiAgICAgICAgICBlbmQgPSBjaGFyc0VuZEluZGV4KHN0clN5bWJvbHMsIHN0cmluZ1RvQXJyYXkoY2hhcnMpKSArIDE7XG5cbiAgICAgIHJldHVybiBjYXN0U2xpY2Uoc3RyU3ltYm9scywgMCwgZW5kKS5qb2luKCcnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGxlYWRpbmcgd2hpdGVzcGFjZSBvciBzcGVjaWZpZWQgY2hhcmFjdGVycyBmcm9tIGBzdHJpbmdgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHRyaW0uXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtjaGFycz13aGl0ZXNwYWNlXSBUaGUgY2hhcmFjdGVycyB0byB0cmltLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdHJpbW1lZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udHJpbVN0YXJ0KCcgIGFiYyAgJyk7XG4gICAgICogLy8gPT4gJ2FiYyAgJ1xuICAgICAqXG4gICAgICogXy50cmltU3RhcnQoJy1fLWFiYy1fLScsICdfLScpO1xuICAgICAqIC8vID0+ICdhYmMtXy0nXG4gICAgICovXG4gICAgZnVuY3Rpb24gdHJpbVN0YXJ0KHN0cmluZywgY2hhcnMsIGd1YXJkKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgaWYgKHN0cmluZyAmJiAoZ3VhcmQgfHwgY2hhcnMgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKHJlVHJpbVN0YXJ0LCAnJyk7XG4gICAgICB9XG4gICAgICBpZiAoIXN0cmluZyB8fCAhKGNoYXJzID0gYmFzZVRvU3RyaW5nKGNoYXJzKSkpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgIH1cbiAgICAgIHZhciBzdHJTeW1ib2xzID0gc3RyaW5nVG9BcnJheShzdHJpbmcpLFxuICAgICAgICAgIHN0YXJ0ID0gY2hhcnNTdGFydEluZGV4KHN0clN5bWJvbHMsIHN0cmluZ1RvQXJyYXkoY2hhcnMpKTtcblxuICAgICAgcmV0dXJuIGNhc3RTbGljZShzdHJTeW1ib2xzLCBzdGFydCkuam9pbignJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJ1bmNhdGVzIGBzdHJpbmdgIGlmIGl0J3MgbG9uZ2VyIHRoYW4gdGhlIGdpdmVuIG1heGltdW0gc3RyaW5nIGxlbmd0aC5cbiAgICAgKiBUaGUgbGFzdCBjaGFyYWN0ZXJzIG9mIHRoZSB0cnVuY2F0ZWQgc3RyaW5nIGFyZSByZXBsYWNlZCB3aXRoIHRoZSBvbWlzc2lvblxuICAgICAqIHN0cmluZyB3aGljaCBkZWZhdWx0cyB0byBcIi4uLlwiLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHRydW5jYXRlLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5sZW5ndGg9MzBdIFRoZSBtYXhpbXVtIHN0cmluZyBsZW5ndGguXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLm9taXNzaW9uPScuLi4nXSBUaGUgc3RyaW5nIHRvIGluZGljYXRlIHRleHQgaXMgb21pdHRlZC5cbiAgICAgKiBAcGFyYW0ge1JlZ0V4cHxzdHJpbmd9IFtvcHRpb25zLnNlcGFyYXRvcl0gVGhlIHNlcGFyYXRvciBwYXR0ZXJuIHRvIHRydW5jYXRlIHRvLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHRydW5jYXRlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udHJ1bmNhdGUoJ2hpLWRpZGRseS1obyB0aGVyZSwgbmVpZ2hib3Jpbm8nKTtcbiAgICAgKiAvLyA9PiAnaGktZGlkZGx5LWhvIHRoZXJlLCBuZWlnaGJvLi4uJ1xuICAgICAqXG4gICAgICogXy50cnVuY2F0ZSgnaGktZGlkZGx5LWhvIHRoZXJlLCBuZWlnaGJvcmlubycsIHtcbiAgICAgKiAgICdsZW5ndGgnOiAyNCxcbiAgICAgKiAgICdzZXBhcmF0b3InOiAnICdcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiAnaGktZGlkZGx5LWhvIHRoZXJlLC4uLidcbiAgICAgKlxuICAgICAqIF8udHJ1bmNhdGUoJ2hpLWRpZGRseS1obyB0aGVyZSwgbmVpZ2hib3Jpbm8nLCB7XG4gICAgICogICAnbGVuZ3RoJzogMjQsXG4gICAgICogICAnc2VwYXJhdG9yJzogLyw/ICsvXG4gICAgICogfSk7XG4gICAgICogLy8gPT4gJ2hpLWRpZGRseS1obyB0aGVyZS4uLidcbiAgICAgKlxuICAgICAqIF8udHJ1bmNhdGUoJ2hpLWRpZGRseS1obyB0aGVyZSwgbmVpZ2hib3Jpbm8nLCB7XG4gICAgICogICAnb21pc3Npb24nOiAnIFsuLi5dJ1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+ICdoaS1kaWRkbHktaG8gdGhlcmUsIG5laWcgWy4uLl0nXG4gICAgICovXG4gICAgZnVuY3Rpb24gdHJ1bmNhdGUoc3RyaW5nLCBvcHRpb25zKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gREVGQVVMVF9UUlVOQ19MRU5HVEgsXG4gICAgICAgICAgb21pc3Npb24gPSBERUZBVUxUX1RSVU5DX09NSVNTSU9OO1xuXG4gICAgICBpZiAoaXNPYmplY3Qob3B0aW9ucykpIHtcbiAgICAgICAgdmFyIHNlcGFyYXRvciA9ICdzZXBhcmF0b3InIGluIG9wdGlvbnMgPyBvcHRpb25zLnNlcGFyYXRvciA6IHNlcGFyYXRvcjtcbiAgICAgICAgbGVuZ3RoID0gJ2xlbmd0aCcgaW4gb3B0aW9ucyA/IHRvSW50ZWdlcihvcHRpb25zLmxlbmd0aCkgOiBsZW5ndGg7XG4gICAgICAgIG9taXNzaW9uID0gJ29taXNzaW9uJyBpbiBvcHRpb25zID8gYmFzZVRvU3RyaW5nKG9wdGlvbnMub21pc3Npb24pIDogb21pc3Npb247XG4gICAgICB9XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuXG4gICAgICB2YXIgc3RyTGVuZ3RoID0gc3RyaW5nLmxlbmd0aDtcbiAgICAgIGlmIChoYXNVbmljb2RlKHN0cmluZykpIHtcbiAgICAgICAgdmFyIHN0clN5bWJvbHMgPSBzdHJpbmdUb0FycmF5KHN0cmluZyk7XG4gICAgICAgIHN0ckxlbmd0aCA9IHN0clN5bWJvbHMubGVuZ3RoO1xuICAgICAgfVxuICAgICAgaWYgKGxlbmd0aCA+PSBzdHJMZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgIH1cbiAgICAgIHZhciBlbmQgPSBsZW5ndGggLSBzdHJpbmdTaXplKG9taXNzaW9uKTtcbiAgICAgIGlmIChlbmQgPCAxKSB7XG4gICAgICAgIHJldHVybiBvbWlzc2lvbjtcbiAgICAgIH1cbiAgICAgIHZhciByZXN1bHQgPSBzdHJTeW1ib2xzXG4gICAgICAgID8gY2FzdFNsaWNlKHN0clN5bWJvbHMsIDAsIGVuZCkuam9pbignJylcbiAgICAgICAgOiBzdHJpbmcuc2xpY2UoMCwgZW5kKTtcblxuICAgICAgaWYgKHNlcGFyYXRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQgKyBvbWlzc2lvbjtcbiAgICAgIH1cbiAgICAgIGlmIChzdHJTeW1ib2xzKSB7XG4gICAgICAgIGVuZCArPSAocmVzdWx0Lmxlbmd0aCAtIGVuZCk7XG4gICAgICB9XG4gICAgICBpZiAoaXNSZWdFeHAoc2VwYXJhdG9yKSkge1xuICAgICAgICBpZiAoc3RyaW5nLnNsaWNlKGVuZCkuc2VhcmNoKHNlcGFyYXRvcikpIHtcbiAgICAgICAgICB2YXIgbWF0Y2gsXG4gICAgICAgICAgICAgIHN1YnN0cmluZyA9IHJlc3VsdDtcblxuICAgICAgICAgIGlmICghc2VwYXJhdG9yLmdsb2JhbCkge1xuICAgICAgICAgICAgc2VwYXJhdG9yID0gUmVnRXhwKHNlcGFyYXRvci5zb3VyY2UsIHRvU3RyaW5nKHJlRmxhZ3MuZXhlYyhzZXBhcmF0b3IpKSArICdnJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNlcGFyYXRvci5sYXN0SW5kZXggPSAwO1xuICAgICAgICAgIHdoaWxlICgobWF0Y2ggPSBzZXBhcmF0b3IuZXhlYyhzdWJzdHJpbmcpKSkge1xuICAgICAgICAgICAgdmFyIG5ld0VuZCA9IG1hdGNoLmluZGV4O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQuc2xpY2UoMCwgbmV3RW5kID09PSB1bmRlZmluZWQgPyBlbmQgOiBuZXdFbmQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHN0cmluZy5pbmRleE9mKGJhc2VUb1N0cmluZyhzZXBhcmF0b3IpLCBlbmQpICE9IGVuZCkge1xuICAgICAgICB2YXIgaW5kZXggPSByZXN1bHQubGFzdEluZGV4T2Yoc2VwYXJhdG9yKTtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQuc2xpY2UoMCwgaW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0ICsgb21pc3Npb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGludmVyc2Ugb2YgYF8uZXNjYXBlYDsgdGhpcyBtZXRob2QgY29udmVydHMgdGhlIEhUTUwgZW50aXRpZXNcbiAgICAgKiBgJmFtcDtgLCBgJmx0O2AsIGAmZ3Q7YCwgYCZxdW90O2AsIGFuZCBgJiMzOTtgIGluIGBzdHJpbmdgIHRvXG4gICAgICogdGhlaXIgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIE5vIG90aGVyIEhUTUwgZW50aXRpZXMgYXJlIHVuZXNjYXBlZC4gVG8gdW5lc2NhcGUgYWRkaXRpb25hbFxuICAgICAqIEhUTUwgZW50aXRpZXMgdXNlIGEgdGhpcmQtcGFydHkgbGlicmFyeSBsaWtlIFtfaGVfXShodHRwczovL210aHMuYmUvaGUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuNi4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHVuZXNjYXBlLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHVuZXNjYXBlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udW5lc2NhcGUoJ2ZyZWQsIGJhcm5leSwgJmFtcDsgcGViYmxlcycpO1xuICAgICAqIC8vID0+ICdmcmVkLCBiYXJuZXksICYgcGViYmxlcydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bmVzY2FwZShzdHJpbmcpIHtcbiAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICByZXR1cm4gKHN0cmluZyAmJiByZUhhc0VzY2FwZWRIdG1sLnRlc3Qoc3RyaW5nKSlcbiAgICAgICAgPyBzdHJpbmcucmVwbGFjZShyZUVzY2FwZWRIdG1sLCB1bmVzY2FwZUh0bWxDaGFyKVxuICAgICAgICA6IHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCwgYXMgc3BhY2Ugc2VwYXJhdGVkIHdvcmRzLCB0byB1cHBlciBjYXNlLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdXBwZXIgY2FzZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnVwcGVyQ2FzZSgnLS1mb28tYmFyJyk7XG4gICAgICogLy8gPT4gJ0ZPTyBCQVInXG4gICAgICpcbiAgICAgKiBfLnVwcGVyQ2FzZSgnZm9vQmFyJyk7XG4gICAgICogLy8gPT4gJ0ZPTyBCQVInXG4gICAgICpcbiAgICAgKiBfLnVwcGVyQ2FzZSgnX19mb29fYmFyX18nKTtcbiAgICAgKiAvLyA9PiAnRk9PIEJBUidcbiAgICAgKi9cbiAgICB2YXIgdXBwZXJDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJyAnIDogJycpICsgd29yZC50b1VwcGVyQ2FzZSgpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBgc3RyaW5nYCB0byB1cHBlciBjYXNlLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy51cHBlckZpcnN0KCdmcmVkJyk7XG4gICAgICogLy8gPT4gJ0ZyZWQnXG4gICAgICpcbiAgICAgKiBfLnVwcGVyRmlyc3QoJ0ZSRUQnKTtcbiAgICAgKiAvLyA9PiAnRlJFRCdcbiAgICAgKi9cbiAgICB2YXIgdXBwZXJGaXJzdCA9IGNyZWF0ZUNhc2VGaXJzdCgndG9VcHBlckNhc2UnKTtcblxuICAgIC8qKlxuICAgICAqIFNwbGl0cyBgc3RyaW5nYCBpbnRvIGFuIGFycmF5IG9mIGl0cyB3b3Jkcy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7UmVnRXhwfHN0cmluZ30gW3BhdHRlcm5dIFRoZSBwYXR0ZXJuIHRvIG1hdGNoIHdvcmRzLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSB3b3JkcyBvZiBgc3RyaW5nYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy53b3JkcygnZnJlZCwgYmFybmV5LCAmIHBlYmJsZXMnKTtcbiAgICAgKiAvLyA9PiBbJ2ZyZWQnLCAnYmFybmV5JywgJ3BlYmJsZXMnXVxuICAgICAqXG4gICAgICogXy53b3JkcygnZnJlZCwgYmFybmV5LCAmIHBlYmJsZXMnLCAvW14sIF0rL2cpO1xuICAgICAqIC8vID0+IFsnZnJlZCcsICdiYXJuZXknLCAnJicsICdwZWJibGVzJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3b3JkcyhzdHJpbmcsIHBhdHRlcm4sIGd1YXJkKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgcGF0dGVybiA9IGd1YXJkID8gdW5kZWZpbmVkIDogcGF0dGVybjtcblxuICAgICAgaWYgKHBhdHRlcm4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gaGFzVW5pY29kZVdvcmQoc3RyaW5nKSA/IHVuaWNvZGVXb3JkcyhzdHJpbmcpIDogYXNjaWlXb3JkcyhzdHJpbmcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0cmluZy5tYXRjaChwYXR0ZXJuKSB8fCBbXTtcbiAgICB9XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBBdHRlbXB0cyB0byBpbnZva2UgYGZ1bmNgLCByZXR1cm5pbmcgZWl0aGVyIHRoZSByZXN1bHQgb3IgdGhlIGNhdWdodCBlcnJvclxuICAgICAqIG9iamVjdC4gQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIGFyZSBwcm92aWRlZCB0byBgZnVuY2Agd2hlbiBpdCdzIGludm9rZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGF0dGVtcHQuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgYGZ1bmNgIHdpdGguXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGBmdW5jYCByZXN1bHQgb3IgZXJyb3Igb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiAvLyBBdm9pZCB0aHJvd2luZyBlcnJvcnMgZm9yIGludmFsaWQgc2VsZWN0b3JzLlxuICAgICAqIHZhciBlbGVtZW50cyA9IF8uYXR0ZW1wdChmdW5jdGlvbihzZWxlY3Rvcikge1xuICAgICAqICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xuICAgICAqIH0sICc+Xz4nKTtcbiAgICAgKlxuICAgICAqIGlmIChfLmlzRXJyb3IoZWxlbWVudHMpKSB7XG4gICAgICogICBlbGVtZW50cyA9IFtdO1xuICAgICAqIH1cbiAgICAgKi9cbiAgICB2YXIgYXR0ZW1wdCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIGFyZ3MpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhcHBseShmdW5jLCB1bmRlZmluZWQsIGFyZ3MpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gaXNFcnJvcihlKSA/IGUgOiBuZXcgRXJyb3IoZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBCaW5kcyBtZXRob2RzIG9mIGFuIG9iamVjdCB0byB0aGUgb2JqZWN0IGl0c2VsZiwgb3ZlcndyaXRpbmcgdGhlIGV4aXN0aW5nXG4gICAgICogbWV0aG9kLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGRvZXNuJ3Qgc2V0IHRoZSBcImxlbmd0aFwiIHByb3BlcnR5IG9mIGJvdW5kIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGJpbmQgYW5kIGFzc2lnbiB0aGUgYm91bmQgbWV0aG9kcyB0by5cbiAgICAgKiBAcGFyYW0gey4uLihzdHJpbmd8c3RyaW5nW10pfSBtZXRob2ROYW1lcyBUaGUgb2JqZWN0IG1ldGhvZCBuYW1lcyB0byBiaW5kLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB2aWV3ID0ge1xuICAgICAqICAgJ2xhYmVsJzogJ2RvY3MnLFxuICAgICAqICAgJ2NsaWNrJzogZnVuY3Rpb24oKSB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKCdjbGlja2VkICcgKyB0aGlzLmxhYmVsKTtcbiAgICAgKiAgIH1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogXy5iaW5kQWxsKHZpZXcsIFsnY2xpY2snXSk7XG4gICAgICogalF1ZXJ5KGVsZW1lbnQpLm9uKCdjbGljaycsIHZpZXcuY2xpY2spO1xuICAgICAqIC8vID0+IExvZ3MgJ2NsaWNrZWQgZG9jcycgd2hlbiBjbGlja2VkLlxuICAgICAqL1xuICAgIHZhciBiaW5kQWxsID0gZmxhdFJlc3QoZnVuY3Rpb24ob2JqZWN0LCBtZXRob2ROYW1lcykge1xuICAgICAgYXJyYXlFYWNoKG1ldGhvZE5hbWVzLCBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAga2V5ID0gdG9LZXkoa2V5KTtcbiAgICAgICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBiaW5kKG9iamVjdFtrZXldLCBvYmplY3QpKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGl0ZXJhdGVzIG92ZXIgYHBhaXJzYCBhbmQgaW52b2tlcyB0aGUgY29ycmVzcG9uZGluZ1xuICAgICAqIGZ1bmN0aW9uIG9mIHRoZSBmaXJzdCBwcmVkaWNhdGUgdG8gcmV0dXJuIHRydXRoeS4gVGhlIHByZWRpY2F0ZS1mdW5jdGlvblxuICAgICAqIHBhaXJzIGFyZSBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIGFuZCBhcmd1bWVudHMgb2YgdGhlIGNyZWF0ZWRcbiAgICAgKiBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtBcnJheX0gcGFpcnMgVGhlIHByZWRpY2F0ZS1mdW5jdGlvbiBwYWlycy5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjb21wb3NpdGUgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBmdW5jID0gXy5jb25kKFtcbiAgICAgKiAgIFtfLm1hdGNoZXMoeyAnYSc6IDEgfSksICAgICAgICAgICBfLmNvbnN0YW50KCdtYXRjaGVzIEEnKV0sXG4gICAgICogICBbXy5jb25mb3Jtcyh7ICdiJzogXy5pc051bWJlciB9KSwgXy5jb25zdGFudCgnbWF0Y2hlcyBCJyldLFxuICAgICAqICAgW18uc3R1YlRydWUsICAgICAgICAgICAgICAgICAgICAgIF8uY29uc3RhbnQoJ25vIG1hdGNoJyldXG4gICAgICogXSk7XG4gICAgICpcbiAgICAgKiBmdW5jKHsgJ2EnOiAxLCAnYic6IDIgfSk7XG4gICAgICogLy8gPT4gJ21hdGNoZXMgQSdcbiAgICAgKlxuICAgICAqIGZ1bmMoeyAnYSc6IDAsICdiJzogMSB9KTtcbiAgICAgKiAvLyA9PiAnbWF0Y2hlcyBCJ1xuICAgICAqXG4gICAgICogZnVuYyh7ICdhJzogJzEnLCAnYic6ICcyJyB9KTtcbiAgICAgKiAvLyA9PiAnbm8gbWF0Y2gnXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29uZChwYWlycykge1xuICAgICAgdmFyIGxlbmd0aCA9IHBhaXJzID09IG51bGwgPyAwIDogcGFpcnMubGVuZ3RoLFxuICAgICAgICAgIHRvSXRlcmF0ZWUgPSBnZXRJdGVyYXRlZSgpO1xuXG4gICAgICBwYWlycyA9ICFsZW5ndGggPyBbXSA6IGFycmF5TWFwKHBhaXJzLCBmdW5jdGlvbihwYWlyKSB7XG4gICAgICAgIGlmICh0eXBlb2YgcGFpclsxXSAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbdG9JdGVyYXRlZShwYWlyWzBdKSwgcGFpclsxXV07XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTE7XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgdmFyIHBhaXIgPSBwYWlyc1tpbmRleF07XG4gICAgICAgICAgaWYgKGFwcGx5KHBhaXJbMF0sIHRoaXMsIGFyZ3MpKSB7XG4gICAgICAgICAgICByZXR1cm4gYXBwbHkocGFpclsxXSwgdGhpcywgYXJncyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIHRoZSBwcmVkaWNhdGUgcHJvcGVydGllcyBvZiBgc291cmNlYCB3aXRoXG4gICAgICogdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgdmFsdWVzIG9mIGEgZ2l2ZW4gb2JqZWN0LCByZXR1cm5pbmcgYHRydWVgIGlmXG4gICAgICogYWxsIHByZWRpY2F0ZXMgcmV0dXJuIHRydXRoeSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoZSBjcmVhdGVkIGZ1bmN0aW9uIGlzIGVxdWl2YWxlbnQgdG8gYF8uY29uZm9ybXNUb2Agd2l0aFxuICAgICAqIGBzb3VyY2VgIHBhcnRpYWxseSBhcHBsaWVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgcHJlZGljYXRlcyB0byBjb25mb3JtIHRvLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHNwZWMgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gW1xuICAgICAqICAgeyAnYSc6IDIsICdiJzogMSB9LFxuICAgICAqICAgeyAnYSc6IDEsICdiJzogMiB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZmlsdGVyKG9iamVjdHMsIF8uY29uZm9ybXMoeyAnYic6IGZ1bmN0aW9uKG4pIHsgcmV0dXJuIG4gPiAxOyB9IH0pKTtcbiAgICAgKiAvLyA9PiBbeyAnYSc6IDEsICdiJzogMiB9XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbmZvcm1zKHNvdXJjZSkge1xuICAgICAgcmV0dXJuIGJhc2VDb25mb3JtcyhiYXNlQ2xvbmUoc291cmNlLCBDTE9ORV9ERUVQX0ZMQUcpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi40LjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHJldHVybiBmcm9tIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY29uc3RhbnQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gXy50aW1lcygyLCBfLmNvbnN0YW50KHsgJ2EnOiAxIH0pKTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdHMpO1xuICAgICAqIC8vID0+IFt7ICdhJzogMSB9LCB7ICdhJzogMSB9XVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2cob2JqZWN0c1swXSA9PT0gb2JqZWN0c1sxXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbnN0YW50KHZhbHVlKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGB2YWx1ZWAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSByZXR1cm5lZCBpblxuICAgICAqIGl0cyBwbGFjZS4gVGhlIGBkZWZhdWx0VmFsdWVgIGlzIHJldHVybmVkIGlmIGB2YWx1ZWAgaXMgYE5hTmAsIGBudWxsYCxcbiAgICAgKiBvciBgdW5kZWZpbmVkYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjE0LjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEBwYXJhbSB7Kn0gZGVmYXVsdFZhbHVlIFRoZSBkZWZhdWx0IHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXNvbHZlZCB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kZWZhdWx0VG8oMSwgMTApO1xuICAgICAqIC8vID0+IDFcbiAgICAgKlxuICAgICAqIF8uZGVmYXVsdFRvKHVuZGVmaW5lZCwgMTApO1xuICAgICAqIC8vID0+IDEwXG4gICAgICovXG4gICAgZnVuY3Rpb24gZGVmYXVsdFRvKHZhbHVlLCBkZWZhdWx0VmFsdWUpIHtcbiAgICAgIHJldHVybiAodmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSAhPT0gdmFsdWUpID8gZGVmYXVsdFZhbHVlIDogdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgcmVzdWx0IG9mIGludm9raW5nIHRoZSBnaXZlbiBmdW5jdGlvbnNcbiAgICAgKiB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiB0aGUgY3JlYXRlZCBmdW5jdGlvbiwgd2hlcmUgZWFjaCBzdWNjZXNzaXZlXG4gICAgICogaW52b2NhdGlvbiBpcyBzdXBwbGllZCB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBwcmV2aW91cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHsuLi4oRnVuY3Rpb258RnVuY3Rpb25bXSl9IFtmdW5jc10gVGhlIGZ1bmN0aW9ucyB0byBpbnZva2UuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY29tcG9zaXRlIGZ1bmN0aW9uLlxuICAgICAqIEBzZWUgXy5mbG93UmlnaHRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gc3F1YXJlKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICogbjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgYWRkU3F1YXJlID0gXy5mbG93KFtfLmFkZCwgc3F1YXJlXSk7XG4gICAgICogYWRkU3F1YXJlKDEsIDIpO1xuICAgICAqIC8vID0+IDlcbiAgICAgKi9cbiAgICB2YXIgZmxvdyA9IGNyZWF0ZUZsb3coKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmxvd2AgZXhjZXB0IHRoYXQgaXQgY3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXRcbiAgICAgKiBpbnZva2VzIHRoZSBnaXZlbiBmdW5jdGlvbnMgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdKX0gW2Z1bmNzXSBUaGUgZnVuY3Rpb25zIHRvIGludm9rZS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjb21wb3NpdGUgZnVuY3Rpb24uXG4gICAgICogQHNlZSBfLmZsb3dcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gc3F1YXJlKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICogbjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgYWRkU3F1YXJlID0gXy5mbG93UmlnaHQoW3NxdWFyZSwgXy5hZGRdKTtcbiAgICAgKiBhZGRTcXVhcmUoMSwgMik7XG4gICAgICogLy8gPT4gOVxuICAgICAqL1xuICAgIHZhciBmbG93UmlnaHQgPSBjcmVhdGVGbG93KHRydWUpO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgZmlyc3QgYXJndW1lbnQgaXQgcmVjZWl2ZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgQW55IHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIGB2YWx1ZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSB9O1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2coXy5pZGVudGl0eShvYmplY3QpID09PSBvYmplY3QpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpZGVudGl0eSh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggdGhlIGFyZ3VtZW50cyBvZiB0aGUgY3JlYXRlZFxuICAgICAqIGZ1bmN0aW9uLiBJZiBgZnVuY2AgaXMgYSBwcm9wZXJ0eSBuYW1lLCB0aGUgY3JlYXRlZCBmdW5jdGlvbiByZXR1cm5zIHRoZVxuICAgICAqIHByb3BlcnR5IHZhbHVlIGZvciBhIGdpdmVuIGVsZW1lbnQuIElmIGBmdW5jYCBpcyBhbiBhcnJheSBvciBvYmplY3QsIHRoZVxuICAgICAqIGNyZWF0ZWQgZnVuY3Rpb24gcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgY29udGFpbiB0aGUgZXF1aXZhbGVudFxuICAgICAqIHNvdXJjZSBwcm9wZXJ0aWVzLCBvdGhlcndpc2UgaXQgcmV0dXJucyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0geyp9IFtmdW5jPV8uaWRlbnRpdHldIFRoZSB2YWx1ZSB0byBjb252ZXJ0IHRvIGEgY2FsbGJhY2suXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBjYWxsYmFjay5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IGZhbHNlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbHRlcih1c2VycywgXy5pdGVyYXRlZSh7ICd1c2VyJzogJ2Jhcm5leScsICdhY3RpdmUnOiB0cnVlIH0pKTtcbiAgICAgKiAvLyA9PiBbeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH1dXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maWx0ZXIodXNlcnMsIF8uaXRlcmF0ZWUoWyd1c2VyJywgJ2ZyZWQnXSkpO1xuICAgICAqIC8vID0+IFt7ICd1c2VyJzogJ2ZyZWQnLCAnYWdlJzogNDAgfV1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ubWFwKHVzZXJzLCBfLml0ZXJhdGVlKCd1c2VyJykpO1xuICAgICAqIC8vID0+IFsnYmFybmV5JywgJ2ZyZWQnXVxuICAgICAqXG4gICAgICogLy8gQ3JlYXRlIGN1c3RvbSBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqIF8uaXRlcmF0ZWUgPSBfLndyYXAoXy5pdGVyYXRlZSwgZnVuY3Rpb24oaXRlcmF0ZWUsIGZ1bmMpIHtcbiAgICAgKiAgIHJldHVybiAhXy5pc1JlZ0V4cChmdW5jKSA/IGl0ZXJhdGVlKGZ1bmMpIDogZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgICogICAgIHJldHVybiBmdW5jLnRlc3Qoc3RyaW5nKTtcbiAgICAgKiAgIH07XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBfLmZpbHRlcihbJ2FiYycsICdkZWYnXSwgL2VmLyk7XG4gICAgICogLy8gPT4gWydkZWYnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGl0ZXJhdGVlKGZ1bmMpIHtcbiAgICAgIHJldHVybiBiYXNlSXRlcmF0ZWUodHlwZW9mIGZ1bmMgPT0gJ2Z1bmN0aW9uJyA/IGZ1bmMgOiBiYXNlQ2xvbmUoZnVuYywgQ0xPTkVfREVFUF9GTEFHKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcGVyZm9ybXMgYSBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbiBiZXR3ZWVuIGEgZ2l2ZW5cbiAgICAgKiBvYmplY3QgYW5kIGBzb3VyY2VgLCByZXR1cm5pbmcgYHRydWVgIGlmIHRoZSBnaXZlbiBvYmplY3QgaGFzIGVxdWl2YWxlbnRcbiAgICAgKiBwcm9wZXJ0eSB2YWx1ZXMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGUgY3JlYXRlZCBmdW5jdGlvbiBpcyBlcXVpdmFsZW50IHRvIGBfLmlzTWF0Y2hgIHdpdGggYHNvdXJjZWBcbiAgICAgKiBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKlxuICAgICAqIFBhcnRpYWwgY29tcGFyaXNvbnMgd2lsbCBtYXRjaCBlbXB0eSBhcnJheSBhbmQgZW1wdHkgb2JqZWN0IGBzb3VyY2VgXG4gICAgICogdmFsdWVzIGFnYWluc3QgYW55IGFycmF5IG9yIG9iamVjdCB2YWx1ZSwgcmVzcGVjdGl2ZWx5LiBTZWUgYF8uaXNFcXVhbGBcbiAgICAgKiBmb3IgYSBsaXN0IG9mIHN1cHBvcnRlZCB2YWx1ZSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBNdWx0aXBsZSB2YWx1ZXMgY2FuIGJlIGNoZWNrZWQgYnkgY29tYmluaW5nIHNldmVyYWwgbWF0Y2hlcnNcbiAgICAgKiB1c2luZyBgXy5vdmVyU29tZWBcbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFtcbiAgICAgKiAgIHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMyB9LFxuICAgICAqICAgeyAnYSc6IDQsICdiJzogNSwgJ2MnOiA2IH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5maWx0ZXIob2JqZWN0cywgXy5tYXRjaGVzKHsgJ2EnOiA0LCAnYyc6IDYgfSkpO1xuICAgICAqIC8vID0+IFt7ICdhJzogNCwgJ2InOiA1LCAnYyc6IDYgfV1cbiAgICAgKlxuICAgICAqIC8vIENoZWNraW5nIGZvciBzZXZlcmFsIHBvc3NpYmxlIHZhbHVlc1xuICAgICAqIF8uZmlsdGVyKG9iamVjdHMsIF8ub3ZlclNvbWUoW18ubWF0Y2hlcyh7ICdhJzogMSB9KSwgXy5tYXRjaGVzKHsgJ2EnOiA0IH0pXSkpO1xuICAgICAqIC8vID0+IFt7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDMgfSwgeyAnYSc6IDQsICdiJzogNSwgJ2MnOiA2IH1dXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWF0Y2hlcyhzb3VyY2UpIHtcbiAgICAgIHJldHVybiBiYXNlTWF0Y2hlcyhiYXNlQ2xvbmUoc291cmNlLCBDTE9ORV9ERUVQX0ZMQUcpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBwZXJmb3JtcyBhIHBhcnRpYWwgZGVlcCBjb21wYXJpc29uIGJldHdlZW4gdGhlXG4gICAgICogdmFsdWUgYXQgYHBhdGhgIG9mIGEgZ2l2ZW4gb2JqZWN0IHRvIGBzcmNWYWx1ZWAsIHJldHVybmluZyBgdHJ1ZWAgaWYgdGhlXG4gICAgICogb2JqZWN0IHZhbHVlIGlzIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBQYXJ0aWFsIGNvbXBhcmlzb25zIHdpbGwgbWF0Y2ggZW1wdHkgYXJyYXkgYW5kIGVtcHR5IG9iamVjdFxuICAgICAqIGBzcmNWYWx1ZWAgdmFsdWVzIGFnYWluc3QgYW55IGFycmF5IG9yIG9iamVjdCB2YWx1ZSwgcmVzcGVjdGl2ZWx5LiBTZWVcbiAgICAgKiBgXy5pc0VxdWFsYCBmb3IgYSBsaXN0IG9mIHN1cHBvcnRlZCB2YWx1ZSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBNdWx0aXBsZSB2YWx1ZXMgY2FuIGJlIGNoZWNrZWQgYnkgY29tYmluaW5nIHNldmVyYWwgbWF0Y2hlcnNcbiAgICAgKiB1c2luZyBgXy5vdmVyU29tZWBcbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjIuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICAgKiBAcGFyYW0geyp9IHNyY1ZhbHVlIFRoZSB2YWx1ZSB0byBtYXRjaC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFtcbiAgICAgKiAgIHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMyB9LFxuICAgICAqICAgeyAnYSc6IDQsICdiJzogNSwgJ2MnOiA2IH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5maW5kKG9iamVjdHMsIF8ubWF0Y2hlc1Byb3BlcnR5KCdhJywgNCkpO1xuICAgICAqIC8vID0+IHsgJ2EnOiA0LCAnYic6IDUsICdjJzogNiB9XG4gICAgICpcbiAgICAgKiAvLyBDaGVja2luZyBmb3Igc2V2ZXJhbCBwb3NzaWJsZSB2YWx1ZXNcbiAgICAgKiBfLmZpbHRlcihvYmplY3RzLCBfLm92ZXJTb21lKFtfLm1hdGNoZXNQcm9wZXJ0eSgnYScsIDEpLCBfLm1hdGNoZXNQcm9wZXJ0eSgnYScsIDQpXSkpO1xuICAgICAqIC8vID0+IFt7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDMgfSwgeyAnYSc6IDQsICdiJzogNSwgJ2MnOiA2IH1dXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWF0Y2hlc1Byb3BlcnR5KHBhdGgsIHNyY1ZhbHVlKSB7XG4gICAgICByZXR1cm4gYmFzZU1hdGNoZXNQcm9wZXJ0eShwYXRoLCBiYXNlQ2xvbmUoc3JjVmFsdWUsIENMT05FX0RFRVBfRkxBRykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgdGhlIG1ldGhvZCBhdCBgcGF0aGAgb2YgYSBnaXZlbiBvYmplY3QuXG4gICAgICogQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIGFyZSBwcm92aWRlZCB0byB0aGUgaW52b2tlZCBtZXRob2QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy43LjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBtZXRob2QgdG8gaW52b2tlLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIHRoZSBtZXRob2Qgd2l0aC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBpbnZva2VyIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFtcbiAgICAgKiAgIHsgJ2EnOiB7ICdiJzogXy5jb25zdGFudCgyKSB9IH0sXG4gICAgICogICB7ICdhJzogeyAnYic6IF8uY29uc3RhbnQoMSkgfSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8ubWFwKG9iamVjdHMsIF8ubWV0aG9kKCdhLmInKSk7XG4gICAgICogLy8gPT4gWzIsIDFdXG4gICAgICpcbiAgICAgKiBfLm1hcChvYmplY3RzLCBfLm1ldGhvZChbJ2EnLCAnYiddKSk7XG4gICAgICogLy8gPT4gWzIsIDFdXG4gICAgICovXG4gICAgdmFyIG1ldGhvZCA9IGJhc2VSZXN0KGZ1bmN0aW9uKHBhdGgsIGFyZ3MpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIGJhc2VJbnZva2Uob2JqZWN0LCBwYXRoLCBhcmdzKTtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgb3Bwb3NpdGUgb2YgYF8ubWV0aG9kYDsgdGhpcyBtZXRob2QgY3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlc1xuICAgICAqIHRoZSBtZXRob2QgYXQgYSBnaXZlbiBwYXRoIG9mIGBvYmplY3RgLiBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgYXJlXG4gICAgICogcHJvdmlkZWQgdG8gdGhlIGludm9rZWQgbWV0aG9kLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuNy4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgdGhlIG1ldGhvZCB3aXRoLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGludm9rZXIgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IF8udGltZXMoMywgXy5jb25zdGFudCksXG4gICAgICogICAgIG9iamVjdCA9IHsgJ2EnOiBhcnJheSwgJ2InOiBhcnJheSwgJ2MnOiBhcnJheSB9O1xuICAgICAqXG4gICAgICogXy5tYXAoWydhWzJdJywgJ2NbMF0nXSwgXy5tZXRob2RPZihvYmplY3QpKTtcbiAgICAgKiAvLyA9PiBbMiwgMF1cbiAgICAgKlxuICAgICAqIF8ubWFwKFtbJ2EnLCAnMiddLCBbJ2MnLCAnMCddXSwgXy5tZXRob2RPZihvYmplY3QpKTtcbiAgICAgKiAvLyA9PiBbMiwgMF1cbiAgICAgKi9cbiAgICB2YXIgbWV0aG9kT2YgPSBiYXNlUmVzdChmdW5jdGlvbihvYmplY3QsIGFyZ3MpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihwYXRoKSB7XG4gICAgICAgIHJldHVybiBiYXNlSW52b2tlKG9iamVjdCwgcGF0aCwgYXJncyk7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQWRkcyBhbGwgb3duIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIGZ1bmN0aW9uIHByb3BlcnRpZXMgb2YgYSBzb3VyY2VcbiAgICAgKiBvYmplY3QgdG8gdGhlIGRlc3RpbmF0aW9uIG9iamVjdC4gSWYgYG9iamVjdGAgaXMgYSBmdW5jdGlvbiwgdGhlbiBtZXRob2RzXG4gICAgICogYXJlIGFkZGVkIHRvIGl0cyBwcm90b3R5cGUgYXMgd2VsbC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBVc2UgYF8ucnVuSW5Db250ZXh0YCB0byBjcmVhdGUgYSBwcmlzdGluZSBgbG9kYXNoYCBmdW5jdGlvbiB0b1xuICAgICAqIGF2b2lkIGNvbmZsaWN0cyBjYXVzZWQgYnkgbW9kaWZ5aW5nIHRoZSBvcmlnaW5hbC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R9IFtvYmplY3Q9bG9kYXNoXSBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBmdW5jdGlvbnMgdG8gYWRkLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuY2hhaW49dHJ1ZV0gU3BlY2lmeSB3aGV0aGVyIG1peGlucyBhcmUgY2hhaW5hYmxlLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbnxPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIHZvd2VscyhzdHJpbmcpIHtcbiAgICAgKiAgIHJldHVybiBfLmZpbHRlcihzdHJpbmcsIGZ1bmN0aW9uKHYpIHtcbiAgICAgKiAgICAgcmV0dXJuIC9bYWVpb3VdL2kudGVzdCh2KTtcbiAgICAgKiAgIH0pO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIF8ubWl4aW4oeyAndm93ZWxzJzogdm93ZWxzIH0pO1xuICAgICAqIF8udm93ZWxzKCdmcmVkJyk7XG4gICAgICogLy8gPT4gWydlJ11cbiAgICAgKlxuICAgICAqIF8oJ2ZyZWQnKS52b3dlbHMoKS52YWx1ZSgpO1xuICAgICAqIC8vID0+IFsnZSddXG4gICAgICpcbiAgICAgKiBfLm1peGluKHsgJ3Zvd2Vscyc6IHZvd2VscyB9LCB7ICdjaGFpbic6IGZhbHNlIH0pO1xuICAgICAqIF8oJ2ZyZWQnKS52b3dlbHMoKTtcbiAgICAgKiAvLyA9PiBbJ2UnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1peGluKG9iamVjdCwgc291cmNlLCBvcHRpb25zKSB7XG4gICAgICB2YXIgcHJvcHMgPSBrZXlzKHNvdXJjZSksXG4gICAgICAgICAgbWV0aG9kTmFtZXMgPSBiYXNlRnVuY3Rpb25zKHNvdXJjZSwgcHJvcHMpO1xuXG4gICAgICBpZiAob3B0aW9ucyA9PSBudWxsICYmXG4gICAgICAgICAgIShpc09iamVjdChzb3VyY2UpICYmIChtZXRob2ROYW1lcy5sZW5ndGggfHwgIXByb3BzLmxlbmd0aCkpKSB7XG4gICAgICAgIG9wdGlvbnMgPSBzb3VyY2U7XG4gICAgICAgIHNvdXJjZSA9IG9iamVjdDtcbiAgICAgICAgb2JqZWN0ID0gdGhpcztcbiAgICAgICAgbWV0aG9kTmFtZXMgPSBiYXNlRnVuY3Rpb25zKHNvdXJjZSwga2V5cyhzb3VyY2UpKTtcbiAgICAgIH1cbiAgICAgIHZhciBjaGFpbiA9ICEoaXNPYmplY3Qob3B0aW9ucykgJiYgJ2NoYWluJyBpbiBvcHRpb25zKSB8fCAhIW9wdGlvbnMuY2hhaW4sXG4gICAgICAgICAgaXNGdW5jID0gaXNGdW5jdGlvbihvYmplY3QpO1xuXG4gICAgICBhcnJheUVhY2gobWV0aG9kTmFtZXMsIGZ1bmN0aW9uKG1ldGhvZE5hbWUpIHtcbiAgICAgICAgdmFyIGZ1bmMgPSBzb3VyY2VbbWV0aG9kTmFtZV07XG4gICAgICAgIG9iamVjdFttZXRob2ROYW1lXSA9IGZ1bmM7XG4gICAgICAgIGlmIChpc0Z1bmMpIHtcbiAgICAgICAgICBvYmplY3QucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgY2hhaW5BbGwgPSB0aGlzLl9fY2hhaW5fXztcbiAgICAgICAgICAgIGlmIChjaGFpbiB8fCBjaGFpbkFsbCkge1xuICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gb2JqZWN0KHRoaXMuX193cmFwcGVkX18pLFxuICAgICAgICAgICAgICAgICAgYWN0aW9ucyA9IHJlc3VsdC5fX2FjdGlvbnNfXyA9IGNvcHlBcnJheSh0aGlzLl9fYWN0aW9uc19fKTtcblxuICAgICAgICAgICAgICBhY3Rpb25zLnB1c2goeyAnZnVuYyc6IGZ1bmMsICdhcmdzJzogYXJndW1lbnRzLCAndGhpc0FyZyc6IG9iamVjdCB9KTtcbiAgICAgICAgICAgICAgcmVzdWx0Ll9fY2hhaW5fXyA9IGNoYWluQWxsO1xuICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkob2JqZWN0LCBhcnJheVB1c2goW3RoaXMudmFsdWUoKV0sIGFyZ3VtZW50cykpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldmVydHMgdGhlIGBfYCB2YXJpYWJsZSB0byBpdHMgcHJldmlvdXMgdmFsdWUgYW5kIHJldHVybnMgYSByZWZlcmVuY2UgdG9cbiAgICAgKiB0aGUgYGxvZGFzaGAgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgYGxvZGFzaGAgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBsb2Rhc2ggPSBfLm5vQ29uZmxpY3QoKTtcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBub0NvbmZsaWN0KCkge1xuICAgICAgaWYgKHJvb3QuXyA9PT0gdGhpcykge1xuICAgICAgICByb290Ll8gPSBvbGREYXNoO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgcmV0dXJucyBgdW5kZWZpbmVkYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjMuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udGltZXMoMiwgXy5ub29wKTtcbiAgICAgKiAvLyA9PiBbdW5kZWZpbmVkLCB1bmRlZmluZWRdXG4gICAgICovXG4gICAgZnVuY3Rpb24gbm9vcCgpIHtcbiAgICAgIC8vIE5vIG9wZXJhdGlvbiBwZXJmb3JtZWQuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgZ2V0cyB0aGUgYXJndW1lbnQgYXQgaW5kZXggYG5gLiBJZiBgbmAgaXMgbmVnYXRpdmUsXG4gICAgICogdGhlIG50aCBhcmd1bWVudCBmcm9tIHRoZSBlbmQgaXMgcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0wXSBUaGUgaW5kZXggb2YgdGhlIGFyZ3VtZW50IHRvIHJldHVybi5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBwYXNzLXRocnUgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBmdW5jID0gXy5udGhBcmcoMSk7XG4gICAgICogZnVuYygnYScsICdiJywgJ2MnLCAnZCcpO1xuICAgICAqIC8vID0+ICdiJ1xuICAgICAqXG4gICAgICogdmFyIGZ1bmMgPSBfLm50aEFyZygtMik7XG4gICAgICogZnVuYygnYScsICdiJywgJ2MnLCAnZCcpO1xuICAgICAqIC8vID0+ICdjJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIG50aEFyZyhuKSB7XG4gICAgICBuID0gdG9JbnRlZ2VyKG4pO1xuICAgICAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIGJhc2VOdGgoYXJncywgbik7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBpdGVyYXRlZXNgIHdpdGggdGhlIGFyZ3VtZW50cyBpdCByZWNlaXZlc1xuICAgICAqIGFuZCByZXR1cm5zIHRoZWlyIHJlc3VsdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7Li4uKEZ1bmN0aW9ufEZ1bmN0aW9uW10pfSBbaXRlcmF0ZWVzPVtfLmlkZW50aXR5XV1cbiAgICAgKiAgVGhlIGl0ZXJhdGVlcyB0byBpbnZva2UuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBmdW5jID0gXy5vdmVyKFtNYXRoLm1heCwgTWF0aC5taW5dKTtcbiAgICAgKlxuICAgICAqIGZ1bmMoMSwgMiwgMywgNCk7XG4gICAgICogLy8gPT4gWzQsIDFdXG4gICAgICovXG4gICAgdmFyIG92ZXIgPSBjcmVhdGVPdmVyKGFycmF5TWFwKTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGNoZWNrcyBpZiAqKmFsbCoqIG9mIHRoZSBgcHJlZGljYXRlc2AgcmV0dXJuXG4gICAgICogdHJ1dGh5IHdoZW4gaW52b2tlZCB3aXRoIHRoZSBhcmd1bWVudHMgaXQgcmVjZWl2ZXMuXG4gICAgICpcbiAgICAgKiBGb2xsb3dpbmcgc2hvcnRoYW5kcyBhcmUgcG9zc2libGUgZm9yIHByb3ZpZGluZyBwcmVkaWNhdGVzLlxuICAgICAqIFBhc3MgYW4gYE9iamVjdGAgYW5kIGl0IHdpbGwgYmUgdXNlZCBhcyBhbiBwYXJhbWV0ZXIgZm9yIGBfLm1hdGNoZXNgIHRvIGNyZWF0ZSB0aGUgcHJlZGljYXRlLlxuICAgICAqIFBhc3MgYW4gYEFycmF5YCBvZiBwYXJhbWV0ZXJzIGZvciBgXy5tYXRjaGVzUHJvcGVydHlgIGFuZCB0aGUgcHJlZGljYXRlIHdpbGwgYmUgY3JlYXRlZCB1c2luZyB0aGVtLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdKX0gW3ByZWRpY2F0ZXM9W18uaWRlbnRpdHldXVxuICAgICAqICBUaGUgcHJlZGljYXRlcyB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGZ1bmMgPSBfLm92ZXJFdmVyeShbQm9vbGVhbiwgaXNGaW5pdGVdKTtcbiAgICAgKlxuICAgICAqIGZ1bmMoJzEnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBmdW5jKG51bGwpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBmdW5jKE5hTik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgb3ZlckV2ZXJ5ID0gY3JlYXRlT3ZlcihhcnJheUV2ZXJ5KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGNoZWNrcyBpZiAqKmFueSoqIG9mIHRoZSBgcHJlZGljYXRlc2AgcmV0dXJuXG4gICAgICogdHJ1dGh5IHdoZW4gaW52b2tlZCB3aXRoIHRoZSBhcmd1bWVudHMgaXQgcmVjZWl2ZXMuXG4gICAgICpcbiAgICAgKiBGb2xsb3dpbmcgc2hvcnRoYW5kcyBhcmUgcG9zc2libGUgZm9yIHByb3ZpZGluZyBwcmVkaWNhdGVzLlxuICAgICAqIFBhc3MgYW4gYE9iamVjdGAgYW5kIGl0IHdpbGwgYmUgdXNlZCBhcyBhbiBwYXJhbWV0ZXIgZm9yIGBfLm1hdGNoZXNgIHRvIGNyZWF0ZSB0aGUgcHJlZGljYXRlLlxuICAgICAqIFBhc3MgYW4gYEFycmF5YCBvZiBwYXJhbWV0ZXJzIGZvciBgXy5tYXRjaGVzUHJvcGVydHlgIGFuZCB0aGUgcHJlZGljYXRlIHdpbGwgYmUgY3JlYXRlZCB1c2luZyB0aGVtLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdKX0gW3ByZWRpY2F0ZXM9W18uaWRlbnRpdHldXVxuICAgICAqICBUaGUgcHJlZGljYXRlcyB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGZ1bmMgPSBfLm92ZXJTb21lKFtCb29sZWFuLCBpc0Zpbml0ZV0pO1xuICAgICAqXG4gICAgICogZnVuYygnMScpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIGZ1bmMobnVsbCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogZnVuYyhOYU4pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiB2YXIgbWF0Y2hlc0Z1bmMgPSBfLm92ZXJTb21lKFt7ICdhJzogMSB9LCB7ICdhJzogMiB9XSlcbiAgICAgKiB2YXIgbWF0Y2hlc1Byb3BlcnR5RnVuYyA9IF8ub3ZlclNvbWUoW1snYScsIDFdLCBbJ2EnLCAyXV0pXG4gICAgICovXG4gICAgdmFyIG92ZXJTb21lID0gY3JlYXRlT3ZlcihhcnJheVNvbWUpO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgdmFsdWUgYXQgYHBhdGhgIG9mIGEgZ2l2ZW4gb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuNC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFjY2Vzc29yIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFtcbiAgICAgKiAgIHsgJ2EnOiB7ICdiJzogMiB9IH0sXG4gICAgICogICB7ICdhJzogeyAnYic6IDEgfSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8ubWFwKG9iamVjdHMsIF8ucHJvcGVydHkoJ2EuYicpKTtcbiAgICAgKiAvLyA9PiBbMiwgMV1cbiAgICAgKlxuICAgICAqIF8ubWFwKF8uc29ydEJ5KG9iamVjdHMsIF8ucHJvcGVydHkoWydhJywgJ2InXSkpLCAnYS5iJyk7XG4gICAgICogLy8gPT4gWzEsIDJdXG4gICAgICovXG4gICAgZnVuY3Rpb24gcHJvcGVydHkocGF0aCkge1xuICAgICAgcmV0dXJuIGlzS2V5KHBhdGgpID8gYmFzZVByb3BlcnR5KHRvS2V5KHBhdGgpKSA6IGJhc2VQcm9wZXJ0eURlZXAocGF0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIG9wcG9zaXRlIG9mIGBfLnByb3BlcnR5YDsgdGhpcyBtZXRob2QgY3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJuc1xuICAgICAqIHRoZSB2YWx1ZSBhdCBhIGdpdmVuIHBhdGggb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhY2Nlc3NvciBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzAsIDEsIDJdLFxuICAgICAqICAgICBvYmplY3QgPSB7ICdhJzogYXJyYXksICdiJzogYXJyYXksICdjJzogYXJyYXkgfTtcbiAgICAgKlxuICAgICAqIF8ubWFwKFsnYVsyXScsICdjWzBdJ10sIF8ucHJvcGVydHlPZihvYmplY3QpKTtcbiAgICAgKiAvLyA9PiBbMiwgMF1cbiAgICAgKlxuICAgICAqIF8ubWFwKFtbJ2EnLCAnMiddLCBbJ2MnLCAnMCddXSwgXy5wcm9wZXJ0eU9mKG9iamVjdCkpO1xuICAgICAqIC8vID0+IFsyLCAwXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHByb3BlcnR5T2Yob2JqZWN0KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ocGF0aCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBiYXNlR2V0KG9iamVjdCwgcGF0aCk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgbnVtYmVycyAocG9zaXRpdmUgYW5kL29yIG5lZ2F0aXZlKSBwcm9ncmVzc2luZyBmcm9tXG4gICAgICogYHN0YXJ0YCB1cCB0bywgYnV0IG5vdCBpbmNsdWRpbmcsIGBlbmRgLiBBIHN0ZXAgb2YgYC0xYCBpcyB1c2VkIGlmIGEgbmVnYXRpdmVcbiAgICAgKiBgc3RhcnRgIGlzIHNwZWNpZmllZCB3aXRob3V0IGFuIGBlbmRgIG9yIGBzdGVwYC4gSWYgYGVuZGAgaXMgbm90IHNwZWNpZmllZCxcbiAgICAgKiBpdCdzIHNldCB0byBgc3RhcnRgIHdpdGggYHN0YXJ0YCB0aGVuIHNldCB0byBgMGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogSmF2YVNjcmlwdCBmb2xsb3dzIHRoZSBJRUVFLTc1NCBzdGFuZGFyZCBmb3IgcmVzb2x2aW5nXG4gICAgICogZmxvYXRpbmctcG9pbnQgdmFsdWVzIHdoaWNoIGNhbiBwcm9kdWNlIHVuZXhwZWN0ZWQgcmVzdWx0cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgb2YgdGhlIHJhbmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmQgVGhlIGVuZCBvZiB0aGUgcmFuZ2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGVwPTFdIFRoZSB2YWx1ZSB0byBpbmNyZW1lbnQgb3IgZGVjcmVtZW50IGJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcmFuZ2Ugb2YgbnVtYmVycy5cbiAgICAgKiBAc2VlIF8uaW5SYW5nZSwgXy5yYW5nZVJpZ2h0XG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucmFuZ2UoNCk7XG4gICAgICogLy8gPT4gWzAsIDEsIDIsIDNdXG4gICAgICpcbiAgICAgKiBfLnJhbmdlKC00KTtcbiAgICAgKiAvLyA9PiBbMCwgLTEsIC0yLCAtM11cbiAgICAgKlxuICAgICAqIF8ucmFuZ2UoMSwgNSk7XG4gICAgICogLy8gPT4gWzEsIDIsIDMsIDRdXG4gICAgICpcbiAgICAgKiBfLnJhbmdlKDAsIDIwLCA1KTtcbiAgICAgKiAvLyA9PiBbMCwgNSwgMTAsIDE1XVxuICAgICAqXG4gICAgICogXy5yYW5nZSgwLCAtNCwgLTEpO1xuICAgICAqIC8vID0+IFswLCAtMSwgLTIsIC0zXVxuICAgICAqXG4gICAgICogXy5yYW5nZSgxLCA0LCAwKTtcbiAgICAgKiAvLyA9PiBbMSwgMSwgMV1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2UoMCk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKi9cbiAgICB2YXIgcmFuZ2UgPSBjcmVhdGVSYW5nZSgpO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5yYW5nZWAgZXhjZXB0IHRoYXQgaXQgcG9wdWxhdGVzIHZhbHVlcyBpblxuICAgICAqIGRlc2NlbmRpbmcgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9MF0gVGhlIHN0YXJ0IG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kIFRoZSBlbmQgb2YgdGhlIHJhbmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcD0xXSBUaGUgdmFsdWUgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCBieS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHJhbmdlIG9mIG51bWJlcnMuXG4gICAgICogQHNlZSBfLmluUmFuZ2UsIF8ucmFuZ2VcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5yYW5nZVJpZ2h0KDQpO1xuICAgICAqIC8vID0+IFszLCAyLCAxLCAwXVxuICAgICAqXG4gICAgICogXy5yYW5nZVJpZ2h0KC00KTtcbiAgICAgKiAvLyA9PiBbLTMsIC0yLCAtMSwgMF1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2VSaWdodCgxLCA1KTtcbiAgICAgKiAvLyA9PiBbNCwgMywgMiwgMV1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2VSaWdodCgwLCAyMCwgNSk7XG4gICAgICogLy8gPT4gWzE1LCAxMCwgNSwgMF1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2VSaWdodCgwLCAtNCwgLTEpO1xuICAgICAqIC8vID0+IFstMywgLTIsIC0xLCAwXVxuICAgICAqXG4gICAgICogXy5yYW5nZVJpZ2h0KDEsIDQsIDApO1xuICAgICAqIC8vID0+IFsxLCAxLCAxXVxuICAgICAqXG4gICAgICogXy5yYW5nZVJpZ2h0KDApO1xuICAgICAqIC8vID0+IFtdXG4gICAgICovXG4gICAgdmFyIHJhbmdlUmlnaHQgPSBjcmVhdGVSYW5nZSh0cnVlKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgZW1wdHkgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4xMy4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBlbXB0eSBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5cyA9IF8udGltZXMoMiwgXy5zdHViQXJyYXkpO1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXlzKTtcbiAgICAgKiAvLyA9PiBbW10sIFtdXVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXlzWzBdID09PSBhcnJheXNbMV0pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3R1YkFycmF5KCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjEzLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udGltZXMoMiwgXy5zdHViRmFsc2UpO1xuICAgICAqIC8vID0+IFtmYWxzZSwgZmFsc2VdXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3R1YkZhbHNlKCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgZW1wdHkgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMTMuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGVtcHR5IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBfLnRpbWVzKDIsIF8uc3R1Yk9iamVjdCk7XG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3RzKTtcbiAgICAgKiAvLyA9PiBbe30sIHt9XVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2cob2JqZWN0c1swXSA9PT0gb2JqZWN0c1sxXSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdHViT2JqZWN0KCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMTMuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZW1wdHkgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRpbWVzKDIsIF8uc3R1YlN0cmluZyk7XG4gICAgICogLy8gPT4gWycnLCAnJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdHViU3RyaW5nKCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYHRydWVgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMTMuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRpbWVzKDIsIF8uc3R1YlRydWUpO1xuICAgICAqIC8vID0+IFt0cnVlLCB0cnVlXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0dWJUcnVlKCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW52b2tlcyB0aGUgaXRlcmF0ZWUgYG5gIHRpbWVzLCByZXR1cm5pbmcgYW4gYXJyYXkgb2YgdGhlIHJlc3VsdHMgb2ZcbiAgICAgKiBlYWNoIGludm9jYXRpb24uIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OyAoaW5kZXgpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIGludm9rZSBgaXRlcmF0ZWVgLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcmVzdWx0cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50aW1lcygzLCBTdHJpbmcpO1xuICAgICAqIC8vID0+IFsnMCcsICcxJywgJzInXVxuICAgICAqXG4gICAgICogIF8udGltZXMoNCwgXy5jb25zdGFudCgwKSk7XG4gICAgICogLy8gPT4gWzAsIDAsIDAsIDBdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGltZXMobiwgaXRlcmF0ZWUpIHtcbiAgICAgIG4gPSB0b0ludGVnZXIobik7XG4gICAgICBpZiAobiA8IDEgfHwgbiA+IE1BWF9TQUZFX0lOVEVHRVIpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gTUFYX0FSUkFZX0xFTkdUSCxcbiAgICAgICAgICBsZW5ndGggPSBuYXRpdmVNaW4obiwgTUFYX0FSUkFZX0xFTkdUSCk7XG5cbiAgICAgIGl0ZXJhdGVlID0gZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUpO1xuICAgICAgbiAtPSBNQVhfQVJSQVlfTEVOR1RIO1xuXG4gICAgICB2YXIgcmVzdWx0ID0gYmFzZVRpbWVzKGxlbmd0aCwgaXRlcmF0ZWUpO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBuKSB7XG4gICAgICAgIGl0ZXJhdGVlKGluZGV4KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBhIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgcHJvcGVydHkgcGF0aCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50b1BhdGgoJ2EuYi5jJyk7XG4gICAgICogLy8gPT4gWydhJywgJ2InLCAnYyddXG4gICAgICpcbiAgICAgKiBfLnRvUGF0aCgnYVswXS5iLmMnKTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnMCcsICdiJywgJ2MnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvUGF0aCh2YWx1ZSkge1xuICAgICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBhcnJheU1hcCh2YWx1ZSwgdG9LZXkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGlzU3ltYm9sKHZhbHVlKSA/IFt2YWx1ZV0gOiBjb3B5QXJyYXkoc3RyaW5nVG9QYXRoKHRvU3RyaW5nKHZhbHVlKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlcyBhIHVuaXF1ZSBJRC4gSWYgYHByZWZpeGAgaXMgZ2l2ZW4sIHRoZSBJRCBpcyBhcHBlbmRlZCB0byBpdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtwcmVmaXg9JyddIFRoZSB2YWx1ZSB0byBwcmVmaXggdGhlIElEIHdpdGguXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdW5pcXVlIElELlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnVuaXF1ZUlkKCdjb250YWN0XycpO1xuICAgICAqIC8vID0+ICdjb250YWN0XzEwNCdcbiAgICAgKlxuICAgICAqIF8udW5pcXVlSWQoKTtcbiAgICAgKiAvLyA9PiAnMTA1J1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuaXF1ZUlkKHByZWZpeCkge1xuICAgICAgdmFyIGlkID0gKytpZENvdW50ZXI7XG4gICAgICByZXR1cm4gdG9TdHJpbmcocHJlZml4KSArIGlkO1xuICAgIH1cblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIEFkZHMgdHdvIG51bWJlcnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy40LjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBhdWdlbmQgVGhlIGZpcnN0IG51bWJlciBpbiBhbiBhZGRpdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYWRkZW5kIFRoZSBzZWNvbmQgbnVtYmVyIGluIGFuIGFkZGl0aW9uLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRvdGFsLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmFkZCg2LCA0KTtcbiAgICAgKiAvLyA9PiAxMFxuICAgICAqL1xuICAgIHZhciBhZGQgPSBjcmVhdGVNYXRoT3BlcmF0aW9uKGZ1bmN0aW9uKGF1Z2VuZCwgYWRkZW5kKSB7XG4gICAgICByZXR1cm4gYXVnZW5kICsgYWRkZW5kO1xuICAgIH0sIDApO1xuXG4gICAgLyoqXG4gICAgICogQ29tcHV0ZXMgYG51bWJlcmAgcm91bmRlZCB1cCB0byBgcHJlY2lzaW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjEwLjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXIgVGhlIG51bWJlciB0byByb3VuZCB1cC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3ByZWNpc2lvbj0wXSBUaGUgcHJlY2lzaW9uIHRvIHJvdW5kIHVwIHRvLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHJvdW5kZWQgdXAgbnVtYmVyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmNlaWwoNC4wMDYpO1xuICAgICAqIC8vID0+IDVcbiAgICAgKlxuICAgICAqIF8uY2VpbCg2LjAwNCwgMik7XG4gICAgICogLy8gPT4gNi4wMVxuICAgICAqXG4gICAgICogXy5jZWlsKDYwNDAsIC0yKTtcbiAgICAgKiAvLyA9PiA2MTAwXG4gICAgICovXG4gICAgdmFyIGNlaWwgPSBjcmVhdGVSb3VuZCgnY2VpbCcpO1xuXG4gICAgLyoqXG4gICAgICogRGl2aWRlIHR3byBudW1iZXJzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuNy4wXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGl2aWRlbmQgVGhlIGZpcnN0IG51bWJlciBpbiBhIGRpdmlzaW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkaXZpc29yIFRoZSBzZWNvbmQgbnVtYmVyIGluIGEgZGl2aXNpb24uXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgcXVvdGllbnQuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGl2aWRlKDYsIDQpO1xuICAgICAqIC8vID0+IDEuNVxuICAgICAqL1xuICAgIHZhciBkaXZpZGUgPSBjcmVhdGVNYXRoT3BlcmF0aW9uKGZ1bmN0aW9uKGRpdmlkZW5kLCBkaXZpc29yKSB7XG4gICAgICByZXR1cm4gZGl2aWRlbmQgLyBkaXZpc29yO1xuICAgIH0sIDEpO1xuXG4gICAgLyoqXG4gICAgICogQ29tcHV0ZXMgYG51bWJlcmAgcm91bmRlZCBkb3duIHRvIGBwcmVjaXNpb25gLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMTAuMFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG51bWJlciBUaGUgbnVtYmVyIHRvIHJvdW5kIGRvd24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtwcmVjaXNpb249MF0gVGhlIHByZWNpc2lvbiB0byByb3VuZCBkb3duIHRvLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHJvdW5kZWQgZG93biBudW1iZXIuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZmxvb3IoNC4wMDYpO1xuICAgICAqIC8vID0+IDRcbiAgICAgKlxuICAgICAqIF8uZmxvb3IoMC4wNDYsIDIpO1xuICAgICAqIC8vID0+IDAuMDRcbiAgICAgKlxuICAgICAqIF8uZmxvb3IoNDA2MCwgLTIpO1xuICAgICAqIC8vID0+IDQwMDBcbiAgICAgKi9cbiAgICB2YXIgZmxvb3IgPSBjcmVhdGVSb3VuZCgnZmxvb3InKTtcblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIHRoZSBtYXhpbXVtIHZhbHVlIG9mIGBhcnJheWAuIElmIGBhcnJheWAgaXMgZW1wdHkgb3IgZmFsc2V5LFxuICAgICAqIGB1bmRlZmluZWRgIGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtYXhpbXVtIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLm1heChbNCwgMiwgOCwgNl0pO1xuICAgICAqIC8vID0+IDhcbiAgICAgKlxuICAgICAqIF8ubWF4KFtdKTtcbiAgICAgKiAvLyA9PiB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXgoYXJyYXkpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VFeHRyZW11bShhcnJheSwgaWRlbnRpdHksIGJhc2VHdClcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5tYXhgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBpbiBgYXJyYXlgIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb24gYnkgd2hpY2hcbiAgICAgKiB0aGUgdmFsdWUgaXMgcmFua2VkLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1heGltdW0gdmFsdWUuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ24nOiAxIH0sIHsgJ24nOiAyIH1dO1xuICAgICAqXG4gICAgICogXy5tYXhCeShvYmplY3RzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLm47IH0pO1xuICAgICAqIC8vID0+IHsgJ24nOiAyIH1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ubWF4Qnkob2JqZWN0cywgJ24nKTtcbiAgICAgKiAvLyA9PiB7ICduJzogMiB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gbWF4QnkoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlRXh0cmVtdW0oYXJyYXksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSwgYmFzZUd0KVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyB0aGUgbWVhbiBvZiB0aGUgdmFsdWVzIGluIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbWVhbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5tZWFuKFs0LCAyLCA4LCA2XSk7XG4gICAgICogLy8gPT4gNVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1lYW4oYXJyYXkpIHtcbiAgICAgIHJldHVybiBiYXNlTWVhbihhcnJheSwgaWRlbnRpdHkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ubWVhbmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgIHdoaWNoIGlzXG4gICAgICogaW52b2tlZCBmb3IgZWFjaCBlbGVtZW50IGluIGBhcnJheWAgdG8gZ2VuZXJhdGUgdGhlIHZhbHVlIHRvIGJlIGF2ZXJhZ2VkLlxuICAgICAqIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuNy4wXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBtZWFuLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICduJzogNCB9LCB7ICduJzogMiB9LCB7ICduJzogOCB9LCB7ICduJzogNiB9XTtcbiAgICAgKlxuICAgICAqIF8ubWVhbkJ5KG9iamVjdHMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8ubjsgfSk7XG4gICAgICogLy8gPT4gNVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5tZWFuQnkob2JqZWN0cywgJ24nKTtcbiAgICAgKiAvLyA9PiA1XG4gICAgICovXG4gICAgZnVuY3Rpb24gbWVhbkJ5KGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIGJhc2VNZWFuKGFycmF5LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMikpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIHRoZSBtaW5pbXVtIHZhbHVlIG9mIGBhcnJheWAuIElmIGBhcnJheWAgaXMgZW1wdHkgb3IgZmFsc2V5LFxuICAgICAqIGB1bmRlZmluZWRgIGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtaW5pbXVtIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLm1pbihbNCwgMiwgOCwgNl0pO1xuICAgICAqIC8vID0+IDJcbiAgICAgKlxuICAgICAqIF8ubWluKFtdKTtcbiAgICAgKiAvLyA9PiB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtaW4oYXJyYXkpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VFeHRyZW11bShhcnJheSwgaWRlbnRpdHksIGJhc2VMdClcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5taW5gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBpbiBgYXJyYXlgIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb24gYnkgd2hpY2hcbiAgICAgKiB0aGUgdmFsdWUgaXMgcmFua2VkLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1pbmltdW0gdmFsdWUuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ24nOiAxIH0sIHsgJ24nOiAyIH1dO1xuICAgICAqXG4gICAgICogXy5taW5CeShvYmplY3RzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLm47IH0pO1xuICAgICAqIC8vID0+IHsgJ24nOiAxIH1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ubWluQnkob2JqZWN0cywgJ24nKTtcbiAgICAgKiAvLyA9PiB7ICduJzogMSB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gbWluQnkoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlRXh0cmVtdW0oYXJyYXksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSwgYmFzZUx0KVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNdWx0aXBseSB0d28gbnVtYmVycy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjcuMFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG11bHRpcGxpZXIgVGhlIGZpcnN0IG51bWJlciBpbiBhIG11bHRpcGxpY2F0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtdWx0aXBsaWNhbmQgVGhlIHNlY29uZCBudW1iZXIgaW4gYSBtdWx0aXBsaWNhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBwcm9kdWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLm11bHRpcGx5KDYsIDQpO1xuICAgICAqIC8vID0+IDI0XG4gICAgICovXG4gICAgdmFyIG11bHRpcGx5ID0gY3JlYXRlTWF0aE9wZXJhdGlvbihmdW5jdGlvbihtdWx0aXBsaWVyLCBtdWx0aXBsaWNhbmQpIHtcbiAgICAgIHJldHVybiBtdWx0aXBsaWVyICogbXVsdGlwbGljYW5kO1xuICAgIH0sIDEpO1xuXG4gICAgLyoqXG4gICAgICogQ29tcHV0ZXMgYG51bWJlcmAgcm91bmRlZCB0byBgcHJlY2lzaW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjEwLjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXIgVGhlIG51bWJlciB0byByb3VuZC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3ByZWNpc2lvbj0wXSBUaGUgcHJlY2lzaW9uIHRvIHJvdW5kIHRvLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHJvdW5kZWQgbnVtYmVyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnJvdW5kKDQuMDA2KTtcbiAgICAgKiAvLyA9PiA0XG4gICAgICpcbiAgICAgKiBfLnJvdW5kKDQuMDA2LCAyKTtcbiAgICAgKiAvLyA9PiA0LjAxXG4gICAgICpcbiAgICAgKiBfLnJvdW5kKDQwNjAsIC0yKTtcbiAgICAgKiAvLyA9PiA0MTAwXG4gICAgICovXG4gICAgdmFyIHJvdW5kID0gY3JlYXRlUm91bmQoJ3JvdW5kJyk7XG5cbiAgICAvKipcbiAgICAgKiBTdWJ0cmFjdCB0d28gbnVtYmVycy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG1pbnVlbmQgVGhlIGZpcnN0IG51bWJlciBpbiBhIHN1YnRyYWN0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdWJ0cmFoZW5kIFRoZSBzZWNvbmQgbnVtYmVyIGluIGEgc3VidHJhY3Rpb24uXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgZGlmZmVyZW5jZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zdWJ0cmFjdCg2LCA0KTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICovXG4gICAgdmFyIHN1YnRyYWN0ID0gY3JlYXRlTWF0aE9wZXJhdGlvbihmdW5jdGlvbihtaW51ZW5kLCBzdWJ0cmFoZW5kKSB7XG4gICAgICByZXR1cm4gbWludWVuZCAtIHN1YnRyYWhlbmQ7XG4gICAgfSwgMCk7XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyB0aGUgc3VtIG9mIHRoZSB2YWx1ZXMgaW4gYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjQuMFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzdW0uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc3VtKFs0LCAyLCA4LCA2XSk7XG4gICAgICogLy8gPT4gMjBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdW0oYXJyYXkpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VTdW0oYXJyYXksIGlkZW50aXR5KVxuICAgICAgICA6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5zdW1gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBpbiBgYXJyYXlgIHRvIGdlbmVyYXRlIHRoZSB2YWx1ZSB0byBiZSBzdW1tZWQuXG4gICAgICogVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHN1bS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAnbic6IDQgfSwgeyAnbic6IDIgfSwgeyAnbic6IDggfSwgeyAnbic6IDYgfV07XG4gICAgICpcbiAgICAgKiBfLnN1bUJ5KG9iamVjdHMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8ubjsgfSk7XG4gICAgICogLy8gPT4gMjBcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uc3VtQnkob2JqZWN0cywgJ24nKTtcbiAgICAgKiAvLyA9PiAyMFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN1bUJ5KGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpXG4gICAgICAgID8gYmFzZVN1bShhcnJheSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKVxuICAgICAgICA6IDA7XG4gICAgfVxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLy8gQWRkIG1ldGhvZHMgdGhhdCByZXR1cm4gd3JhcHBlZCB2YWx1ZXMgaW4gY2hhaW4gc2VxdWVuY2VzLlxuICAgIGxvZGFzaC5hZnRlciA9IGFmdGVyO1xuICAgIGxvZGFzaC5hcnkgPSBhcnk7XG4gICAgbG9kYXNoLmFzc2lnbiA9IGFzc2lnbjtcbiAgICBsb2Rhc2guYXNzaWduSW4gPSBhc3NpZ25JbjtcbiAgICBsb2Rhc2guYXNzaWduSW5XaXRoID0gYXNzaWduSW5XaXRoO1xuICAgIGxvZGFzaC5hc3NpZ25XaXRoID0gYXNzaWduV2l0aDtcbiAgICBsb2Rhc2guYXQgPSBhdDtcbiAgICBsb2Rhc2guYmVmb3JlID0gYmVmb3JlO1xuICAgIGxvZGFzaC5iaW5kID0gYmluZDtcbiAgICBsb2Rhc2guYmluZEFsbCA9IGJpbmRBbGw7XG4gICAgbG9kYXNoLmJpbmRLZXkgPSBiaW5kS2V5O1xuICAgIGxvZGFzaC5jYXN0QXJyYXkgPSBjYXN0QXJyYXk7XG4gICAgbG9kYXNoLmNoYWluID0gY2hhaW47XG4gICAgbG9kYXNoLmNodW5rID0gY2h1bms7XG4gICAgbG9kYXNoLmNvbXBhY3QgPSBjb21wYWN0O1xuICAgIGxvZGFzaC5jb25jYXQgPSBjb25jYXQ7XG4gICAgbG9kYXNoLmNvbmQgPSBjb25kO1xuICAgIGxvZGFzaC5jb25mb3JtcyA9IGNvbmZvcm1zO1xuICAgIGxvZGFzaC5jb25zdGFudCA9IGNvbnN0YW50O1xuICAgIGxvZGFzaC5jb3VudEJ5ID0gY291bnRCeTtcbiAgICBsb2Rhc2guY3JlYXRlID0gY3JlYXRlO1xuICAgIGxvZGFzaC5jdXJyeSA9IGN1cnJ5O1xuICAgIGxvZGFzaC5jdXJyeVJpZ2h0ID0gY3VycnlSaWdodDtcbiAgICBsb2Rhc2guZGVib3VuY2UgPSBkZWJvdW5jZTtcbiAgICBsb2Rhc2guZGVmYXVsdHMgPSBkZWZhdWx0cztcbiAgICBsb2Rhc2guZGVmYXVsdHNEZWVwID0gZGVmYXVsdHNEZWVwO1xuICAgIGxvZGFzaC5kZWZlciA9IGRlZmVyO1xuICAgIGxvZGFzaC5kZWxheSA9IGRlbGF5O1xuICAgIGxvZGFzaC5kaWZmZXJlbmNlID0gZGlmZmVyZW5jZTtcbiAgICBsb2Rhc2guZGlmZmVyZW5jZUJ5ID0gZGlmZmVyZW5jZUJ5O1xuICAgIGxvZGFzaC5kaWZmZXJlbmNlV2l0aCA9IGRpZmZlcmVuY2VXaXRoO1xuICAgIGxvZGFzaC5kcm9wID0gZHJvcDtcbiAgICBsb2Rhc2guZHJvcFJpZ2h0ID0gZHJvcFJpZ2h0O1xuICAgIGxvZGFzaC5kcm9wUmlnaHRXaGlsZSA9IGRyb3BSaWdodFdoaWxlO1xuICAgIGxvZGFzaC5kcm9wV2hpbGUgPSBkcm9wV2hpbGU7XG4gICAgbG9kYXNoLmZpbGwgPSBmaWxsO1xuICAgIGxvZGFzaC5maWx0ZXIgPSBmaWx0ZXI7XG4gICAgbG9kYXNoLmZsYXRNYXAgPSBmbGF0TWFwO1xuICAgIGxvZGFzaC5mbGF0TWFwRGVlcCA9IGZsYXRNYXBEZWVwO1xuICAgIGxvZGFzaC5mbGF0TWFwRGVwdGggPSBmbGF0TWFwRGVwdGg7XG4gICAgbG9kYXNoLmZsYXR0ZW4gPSBmbGF0dGVuO1xuICAgIGxvZGFzaC5mbGF0dGVuRGVlcCA9IGZsYXR0ZW5EZWVwO1xuICAgIGxvZGFzaC5mbGF0dGVuRGVwdGggPSBmbGF0dGVuRGVwdGg7XG4gICAgbG9kYXNoLmZsaXAgPSBmbGlwO1xuICAgIGxvZGFzaC5mbG93ID0gZmxvdztcbiAgICBsb2Rhc2guZmxvd1JpZ2h0ID0gZmxvd1JpZ2h0O1xuICAgIGxvZGFzaC5mcm9tUGFpcnMgPSBmcm9tUGFpcnM7XG4gICAgbG9kYXNoLmZ1bmN0aW9ucyA9IGZ1bmN0aW9ucztcbiAgICBsb2Rhc2guZnVuY3Rpb25zSW4gPSBmdW5jdGlvbnNJbjtcbiAgICBsb2Rhc2guZ3JvdXBCeSA9IGdyb3VwQnk7XG4gICAgbG9kYXNoLmluaXRpYWwgPSBpbml0aWFsO1xuICAgIGxvZGFzaC5pbnRlcnNlY3Rpb24gPSBpbnRlcnNlY3Rpb247XG4gICAgbG9kYXNoLmludGVyc2VjdGlvbkJ5ID0gaW50ZXJzZWN0aW9uQnk7XG4gICAgbG9kYXNoLmludGVyc2VjdGlvbldpdGggPSBpbnRlcnNlY3Rpb25XaXRoO1xuICAgIGxvZGFzaC5pbnZlcnQgPSBpbnZlcnQ7XG4gICAgbG9kYXNoLmludmVydEJ5ID0gaW52ZXJ0Qnk7XG4gICAgbG9kYXNoLmludm9rZU1hcCA9IGludm9rZU1hcDtcbiAgICBsb2Rhc2guaXRlcmF0ZWUgPSBpdGVyYXRlZTtcbiAgICBsb2Rhc2gua2V5QnkgPSBrZXlCeTtcbiAgICBsb2Rhc2gua2V5cyA9IGtleXM7XG4gICAgbG9kYXNoLmtleXNJbiA9IGtleXNJbjtcbiAgICBsb2Rhc2gubWFwID0gbWFwO1xuICAgIGxvZGFzaC5tYXBLZXlzID0gbWFwS2V5cztcbiAgICBsb2Rhc2gubWFwVmFsdWVzID0gbWFwVmFsdWVzO1xuICAgIGxvZGFzaC5tYXRjaGVzID0gbWF0Y2hlcztcbiAgICBsb2Rhc2gubWF0Y2hlc1Byb3BlcnR5ID0gbWF0Y2hlc1Byb3BlcnR5O1xuICAgIGxvZGFzaC5tZW1vaXplID0gbWVtb2l6ZTtcbiAgICBsb2Rhc2gubWVyZ2UgPSBtZXJnZTtcbiAgICBsb2Rhc2gubWVyZ2VXaXRoID0gbWVyZ2VXaXRoO1xuICAgIGxvZGFzaC5tZXRob2QgPSBtZXRob2Q7XG4gICAgbG9kYXNoLm1ldGhvZE9mID0gbWV0aG9kT2Y7XG4gICAgbG9kYXNoLm1peGluID0gbWl4aW47XG4gICAgbG9kYXNoLm5lZ2F0ZSA9IG5lZ2F0ZTtcbiAgICBsb2Rhc2gubnRoQXJnID0gbnRoQXJnO1xuICAgIGxvZGFzaC5vbWl0ID0gb21pdDtcbiAgICBsb2Rhc2gub21pdEJ5ID0gb21pdEJ5O1xuICAgIGxvZGFzaC5vbmNlID0gb25jZTtcbiAgICBsb2Rhc2gub3JkZXJCeSA9IG9yZGVyQnk7XG4gICAgbG9kYXNoLm92ZXIgPSBvdmVyO1xuICAgIGxvZGFzaC5vdmVyQXJncyA9IG92ZXJBcmdzO1xuICAgIGxvZGFzaC5vdmVyRXZlcnkgPSBvdmVyRXZlcnk7XG4gICAgbG9kYXNoLm92ZXJTb21lID0gb3ZlclNvbWU7XG4gICAgbG9kYXNoLnBhcnRpYWwgPSBwYXJ0aWFsO1xuICAgIGxvZGFzaC5wYXJ0aWFsUmlnaHQgPSBwYXJ0aWFsUmlnaHQ7XG4gICAgbG9kYXNoLnBhcnRpdGlvbiA9IHBhcnRpdGlvbjtcbiAgICBsb2Rhc2gucGljayA9IHBpY2s7XG4gICAgbG9kYXNoLnBpY2tCeSA9IHBpY2tCeTtcbiAgICBsb2Rhc2gucHJvcGVydHkgPSBwcm9wZXJ0eTtcbiAgICBsb2Rhc2gucHJvcGVydHlPZiA9IHByb3BlcnR5T2Y7XG4gICAgbG9kYXNoLnB1bGwgPSBwdWxsO1xuICAgIGxvZGFzaC5wdWxsQWxsID0gcHVsbEFsbDtcbiAgICBsb2Rhc2gucHVsbEFsbEJ5ID0gcHVsbEFsbEJ5O1xuICAgIGxvZGFzaC5wdWxsQWxsV2l0aCA9IHB1bGxBbGxXaXRoO1xuICAgIGxvZGFzaC5wdWxsQXQgPSBwdWxsQXQ7XG4gICAgbG9kYXNoLnJhbmdlID0gcmFuZ2U7XG4gICAgbG9kYXNoLnJhbmdlUmlnaHQgPSByYW5nZVJpZ2h0O1xuICAgIGxvZGFzaC5yZWFyZyA9IHJlYXJnO1xuICAgIGxvZGFzaC5yZWplY3QgPSByZWplY3Q7XG4gICAgbG9kYXNoLnJlbW92ZSA9IHJlbW92ZTtcbiAgICBsb2Rhc2gucmVzdCA9IHJlc3Q7XG4gICAgbG9kYXNoLnJldmVyc2UgPSByZXZlcnNlO1xuICAgIGxvZGFzaC5zYW1wbGVTaXplID0gc2FtcGxlU2l6ZTtcbiAgICBsb2Rhc2guc2V0ID0gc2V0O1xuICAgIGxvZGFzaC5zZXRXaXRoID0gc2V0V2l0aDtcbiAgICBsb2Rhc2guc2h1ZmZsZSA9IHNodWZmbGU7XG4gICAgbG9kYXNoLnNsaWNlID0gc2xpY2U7XG4gICAgbG9kYXNoLnNvcnRCeSA9IHNvcnRCeTtcbiAgICBsb2Rhc2guc29ydGVkVW5pcSA9IHNvcnRlZFVuaXE7XG4gICAgbG9kYXNoLnNvcnRlZFVuaXFCeSA9IHNvcnRlZFVuaXFCeTtcbiAgICBsb2Rhc2guc3BsaXQgPSBzcGxpdDtcbiAgICBsb2Rhc2guc3ByZWFkID0gc3ByZWFkO1xuICAgIGxvZGFzaC50YWlsID0gdGFpbDtcbiAgICBsb2Rhc2gudGFrZSA9IHRha2U7XG4gICAgbG9kYXNoLnRha2VSaWdodCA9IHRha2VSaWdodDtcbiAgICBsb2Rhc2gudGFrZVJpZ2h0V2hpbGUgPSB0YWtlUmlnaHRXaGlsZTtcbiAgICBsb2Rhc2gudGFrZVdoaWxlID0gdGFrZVdoaWxlO1xuICAgIGxvZGFzaC50YXAgPSB0YXA7XG4gICAgbG9kYXNoLnRocm90dGxlID0gdGhyb3R0bGU7XG4gICAgbG9kYXNoLnRocnUgPSB0aHJ1O1xuICAgIGxvZGFzaC50b0FycmF5ID0gdG9BcnJheTtcbiAgICBsb2Rhc2gudG9QYWlycyA9IHRvUGFpcnM7XG4gICAgbG9kYXNoLnRvUGFpcnNJbiA9IHRvUGFpcnNJbjtcbiAgICBsb2Rhc2gudG9QYXRoID0gdG9QYXRoO1xuICAgIGxvZGFzaC50b1BsYWluT2JqZWN0ID0gdG9QbGFpbk9iamVjdDtcbiAgICBsb2Rhc2gudHJhbnNmb3JtID0gdHJhbnNmb3JtO1xuICAgIGxvZGFzaC51bmFyeSA9IHVuYXJ5O1xuICAgIGxvZGFzaC51bmlvbiA9IHVuaW9uO1xuICAgIGxvZGFzaC51bmlvbkJ5ID0gdW5pb25CeTtcbiAgICBsb2Rhc2gudW5pb25XaXRoID0gdW5pb25XaXRoO1xuICAgIGxvZGFzaC51bmlxID0gdW5pcTtcbiAgICBsb2Rhc2gudW5pcUJ5ID0gdW5pcUJ5O1xuICAgIGxvZGFzaC51bmlxV2l0aCA9IHVuaXFXaXRoO1xuICAgIGxvZGFzaC51bnNldCA9IHVuc2V0O1xuICAgIGxvZGFzaC51bnppcCA9IHVuemlwO1xuICAgIGxvZGFzaC51bnppcFdpdGggPSB1bnppcFdpdGg7XG4gICAgbG9kYXNoLnVwZGF0ZSA9IHVwZGF0ZTtcbiAgICBsb2Rhc2gudXBkYXRlV2l0aCA9IHVwZGF0ZVdpdGg7XG4gICAgbG9kYXNoLnZhbHVlcyA9IHZhbHVlcztcbiAgICBsb2Rhc2gudmFsdWVzSW4gPSB2YWx1ZXNJbjtcbiAgICBsb2Rhc2gud2l0aG91dCA9IHdpdGhvdXQ7XG4gICAgbG9kYXNoLndvcmRzID0gd29yZHM7XG4gICAgbG9kYXNoLndyYXAgPSB3cmFwO1xuICAgIGxvZGFzaC54b3IgPSB4b3I7XG4gICAgbG9kYXNoLnhvckJ5ID0geG9yQnk7XG4gICAgbG9kYXNoLnhvcldpdGggPSB4b3JXaXRoO1xuICAgIGxvZGFzaC56aXAgPSB6aXA7XG4gICAgbG9kYXNoLnppcE9iamVjdCA9IHppcE9iamVjdDtcbiAgICBsb2Rhc2guemlwT2JqZWN0RGVlcCA9IHppcE9iamVjdERlZXA7XG4gICAgbG9kYXNoLnppcFdpdGggPSB6aXBXaXRoO1xuXG4gICAgLy8gQWRkIGFsaWFzZXMuXG4gICAgbG9kYXNoLmVudHJpZXMgPSB0b1BhaXJzO1xuICAgIGxvZGFzaC5lbnRyaWVzSW4gPSB0b1BhaXJzSW47XG4gICAgbG9kYXNoLmV4dGVuZCA9IGFzc2lnbkluO1xuICAgIGxvZGFzaC5leHRlbmRXaXRoID0gYXNzaWduSW5XaXRoO1xuXG4gICAgLy8gQWRkIG1ldGhvZHMgdG8gYGxvZGFzaC5wcm90b3R5cGVgLlxuICAgIG1peGluKGxvZGFzaCwgbG9kYXNoKTtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8vIEFkZCBtZXRob2RzIHRoYXQgcmV0dXJuIHVud3JhcHBlZCB2YWx1ZXMgaW4gY2hhaW4gc2VxdWVuY2VzLlxuICAgIGxvZGFzaC5hZGQgPSBhZGQ7XG4gICAgbG9kYXNoLmF0dGVtcHQgPSBhdHRlbXB0O1xuICAgIGxvZGFzaC5jYW1lbENhc2UgPSBjYW1lbENhc2U7XG4gICAgbG9kYXNoLmNhcGl0YWxpemUgPSBjYXBpdGFsaXplO1xuICAgIGxvZGFzaC5jZWlsID0gY2VpbDtcbiAgICBsb2Rhc2guY2xhbXAgPSBjbGFtcDtcbiAgICBsb2Rhc2guY2xvbmUgPSBjbG9uZTtcbiAgICBsb2Rhc2guY2xvbmVEZWVwID0gY2xvbmVEZWVwO1xuICAgIGxvZGFzaC5jbG9uZURlZXBXaXRoID0gY2xvbmVEZWVwV2l0aDtcbiAgICBsb2Rhc2guY2xvbmVXaXRoID0gY2xvbmVXaXRoO1xuICAgIGxvZGFzaC5jb25mb3Jtc1RvID0gY29uZm9ybXNUbztcbiAgICBsb2Rhc2guZGVidXJyID0gZGVidXJyO1xuICAgIGxvZGFzaC5kZWZhdWx0VG8gPSBkZWZhdWx0VG87XG4gICAgbG9kYXNoLmRpdmlkZSA9IGRpdmlkZTtcbiAgICBsb2Rhc2guZW5kc1dpdGggPSBlbmRzV2l0aDtcbiAgICBsb2Rhc2guZXEgPSBlcTtcbiAgICBsb2Rhc2guZXNjYXBlID0gZXNjYXBlO1xuICAgIGxvZGFzaC5lc2NhcGVSZWdFeHAgPSBlc2NhcGVSZWdFeHA7XG4gICAgbG9kYXNoLmV2ZXJ5ID0gZXZlcnk7XG4gICAgbG9kYXNoLmZpbmQgPSBmaW5kO1xuICAgIGxvZGFzaC5maW5kSW5kZXggPSBmaW5kSW5kZXg7XG4gICAgbG9kYXNoLmZpbmRLZXkgPSBmaW5kS2V5O1xuICAgIGxvZGFzaC5maW5kTGFzdCA9IGZpbmRMYXN0O1xuICAgIGxvZGFzaC5maW5kTGFzdEluZGV4ID0gZmluZExhc3RJbmRleDtcbiAgICBsb2Rhc2guZmluZExhc3RLZXkgPSBmaW5kTGFzdEtleTtcbiAgICBsb2Rhc2guZmxvb3IgPSBmbG9vcjtcbiAgICBsb2Rhc2guZm9yRWFjaCA9IGZvckVhY2g7XG4gICAgbG9kYXNoLmZvckVhY2hSaWdodCA9IGZvckVhY2hSaWdodDtcbiAgICBsb2Rhc2guZm9ySW4gPSBmb3JJbjtcbiAgICBsb2Rhc2guZm9ySW5SaWdodCA9IGZvckluUmlnaHQ7XG4gICAgbG9kYXNoLmZvck93biA9IGZvck93bjtcbiAgICBsb2Rhc2guZm9yT3duUmlnaHQgPSBmb3JPd25SaWdodDtcbiAgICBsb2Rhc2guZ2V0ID0gZ2V0O1xuICAgIGxvZGFzaC5ndCA9IGd0O1xuICAgIGxvZGFzaC5ndGUgPSBndGU7XG4gICAgbG9kYXNoLmhhcyA9IGhhcztcbiAgICBsb2Rhc2guaGFzSW4gPSBoYXNJbjtcbiAgICBsb2Rhc2guaGVhZCA9IGhlYWQ7XG4gICAgbG9kYXNoLmlkZW50aXR5ID0gaWRlbnRpdHk7XG4gICAgbG9kYXNoLmluY2x1ZGVzID0gaW5jbHVkZXM7XG4gICAgbG9kYXNoLmluZGV4T2YgPSBpbmRleE9mO1xuICAgIGxvZGFzaC5pblJhbmdlID0gaW5SYW5nZTtcbiAgICBsb2Rhc2guaW52b2tlID0gaW52b2tlO1xuICAgIGxvZGFzaC5pc0FyZ3VtZW50cyA9IGlzQXJndW1lbnRzO1xuICAgIGxvZGFzaC5pc0FycmF5ID0gaXNBcnJheTtcbiAgICBsb2Rhc2guaXNBcnJheUJ1ZmZlciA9IGlzQXJyYXlCdWZmZXI7XG4gICAgbG9kYXNoLmlzQXJyYXlMaWtlID0gaXNBcnJheUxpa2U7XG4gICAgbG9kYXNoLmlzQXJyYXlMaWtlT2JqZWN0ID0gaXNBcnJheUxpa2VPYmplY3Q7XG4gICAgbG9kYXNoLmlzQm9vbGVhbiA9IGlzQm9vbGVhbjtcbiAgICBsb2Rhc2guaXNCdWZmZXIgPSBpc0J1ZmZlcjtcbiAgICBsb2Rhc2guaXNEYXRlID0gaXNEYXRlO1xuICAgIGxvZGFzaC5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7XG4gICAgbG9kYXNoLmlzRW1wdHkgPSBpc0VtcHR5O1xuICAgIGxvZGFzaC5pc0VxdWFsID0gaXNFcXVhbDtcbiAgICBsb2Rhc2guaXNFcXVhbFdpdGggPSBpc0VxdWFsV2l0aDtcbiAgICBsb2Rhc2guaXNFcnJvciA9IGlzRXJyb3I7XG4gICAgbG9kYXNoLmlzRmluaXRlID0gaXNGaW5pdGU7XG4gICAgbG9kYXNoLmlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uO1xuICAgIGxvZGFzaC5pc0ludGVnZXIgPSBpc0ludGVnZXI7XG4gICAgbG9kYXNoLmlzTGVuZ3RoID0gaXNMZW5ndGg7XG4gICAgbG9kYXNoLmlzTWFwID0gaXNNYXA7XG4gICAgbG9kYXNoLmlzTWF0Y2ggPSBpc01hdGNoO1xuICAgIGxvZGFzaC5pc01hdGNoV2l0aCA9IGlzTWF0Y2hXaXRoO1xuICAgIGxvZGFzaC5pc05hTiA9IGlzTmFOO1xuICAgIGxvZGFzaC5pc05hdGl2ZSA9IGlzTmF0aXZlO1xuICAgIGxvZGFzaC5pc05pbCA9IGlzTmlsO1xuICAgIGxvZGFzaC5pc051bGwgPSBpc051bGw7XG4gICAgbG9kYXNoLmlzTnVtYmVyID0gaXNOdW1iZXI7XG4gICAgbG9kYXNoLmlzT2JqZWN0ID0gaXNPYmplY3Q7XG4gICAgbG9kYXNoLmlzT2JqZWN0TGlrZSA9IGlzT2JqZWN0TGlrZTtcbiAgICBsb2Rhc2guaXNQbGFpbk9iamVjdCA9IGlzUGxhaW5PYmplY3Q7XG4gICAgbG9kYXNoLmlzUmVnRXhwID0gaXNSZWdFeHA7XG4gICAgbG9kYXNoLmlzU2FmZUludGVnZXIgPSBpc1NhZmVJbnRlZ2VyO1xuICAgIGxvZGFzaC5pc1NldCA9IGlzU2V0O1xuICAgIGxvZGFzaC5pc1N0cmluZyA9IGlzU3RyaW5nO1xuICAgIGxvZGFzaC5pc1N5bWJvbCA9IGlzU3ltYm9sO1xuICAgIGxvZGFzaC5pc1R5cGVkQXJyYXkgPSBpc1R5cGVkQXJyYXk7XG4gICAgbG9kYXNoLmlzVW5kZWZpbmVkID0gaXNVbmRlZmluZWQ7XG4gICAgbG9kYXNoLmlzV2Vha01hcCA9IGlzV2Vha01hcDtcbiAgICBsb2Rhc2guaXNXZWFrU2V0ID0gaXNXZWFrU2V0O1xuICAgIGxvZGFzaC5qb2luID0gam9pbjtcbiAgICBsb2Rhc2gua2ViYWJDYXNlID0ga2ViYWJDYXNlO1xuICAgIGxvZGFzaC5sYXN0ID0gbGFzdDtcbiAgICBsb2Rhc2gubGFzdEluZGV4T2YgPSBsYXN0SW5kZXhPZjtcbiAgICBsb2Rhc2gubG93ZXJDYXNlID0gbG93ZXJDYXNlO1xuICAgIGxvZGFzaC5sb3dlckZpcnN0ID0gbG93ZXJGaXJzdDtcbiAgICBsb2Rhc2gubHQgPSBsdDtcbiAgICBsb2Rhc2gubHRlID0gbHRlO1xuICAgIGxvZGFzaC5tYXggPSBtYXg7XG4gICAgbG9kYXNoLm1heEJ5ID0gbWF4Qnk7XG4gICAgbG9kYXNoLm1lYW4gPSBtZWFuO1xuICAgIGxvZGFzaC5tZWFuQnkgPSBtZWFuQnk7XG4gICAgbG9kYXNoLm1pbiA9IG1pbjtcbiAgICBsb2Rhc2gubWluQnkgPSBtaW5CeTtcbiAgICBsb2Rhc2guc3R1YkFycmF5ID0gc3R1YkFycmF5O1xuICAgIGxvZGFzaC5zdHViRmFsc2UgPSBzdHViRmFsc2U7XG4gICAgbG9kYXNoLnN0dWJPYmplY3QgPSBzdHViT2JqZWN0O1xuICAgIGxvZGFzaC5zdHViU3RyaW5nID0gc3R1YlN0cmluZztcbiAgICBsb2Rhc2guc3R1YlRydWUgPSBzdHViVHJ1ZTtcbiAgICBsb2Rhc2gubXVsdGlwbHkgPSBtdWx0aXBseTtcbiAgICBsb2Rhc2gubnRoID0gbnRoO1xuICAgIGxvZGFzaC5ub0NvbmZsaWN0ID0gbm9Db25mbGljdDtcbiAgICBsb2Rhc2gubm9vcCA9IG5vb3A7XG4gICAgbG9kYXNoLm5vdyA9IG5vdztcbiAgICBsb2Rhc2gucGFkID0gcGFkO1xuICAgIGxvZGFzaC5wYWRFbmQgPSBwYWRFbmQ7XG4gICAgbG9kYXNoLnBhZFN0YXJ0ID0gcGFkU3RhcnQ7XG4gICAgbG9kYXNoLnBhcnNlSW50ID0gcGFyc2VJbnQ7XG4gICAgbG9kYXNoLnJhbmRvbSA9IHJhbmRvbTtcbiAgICBsb2Rhc2gucmVkdWNlID0gcmVkdWNlO1xuICAgIGxvZGFzaC5yZWR1Y2VSaWdodCA9IHJlZHVjZVJpZ2h0O1xuICAgIGxvZGFzaC5yZXBlYXQgPSByZXBlYXQ7XG4gICAgbG9kYXNoLnJlcGxhY2UgPSByZXBsYWNlO1xuICAgIGxvZGFzaC5yZXN1bHQgPSByZXN1bHQ7XG4gICAgbG9kYXNoLnJvdW5kID0gcm91bmQ7XG4gICAgbG9kYXNoLnJ1bkluQ29udGV4dCA9IHJ1bkluQ29udGV4dDtcbiAgICBsb2Rhc2guc2FtcGxlID0gc2FtcGxlO1xuICAgIGxvZGFzaC5zaXplID0gc2l6ZTtcbiAgICBsb2Rhc2guc25ha2VDYXNlID0gc25ha2VDYXNlO1xuICAgIGxvZGFzaC5zb21lID0gc29tZTtcbiAgICBsb2Rhc2guc29ydGVkSW5kZXggPSBzb3J0ZWRJbmRleDtcbiAgICBsb2Rhc2guc29ydGVkSW5kZXhCeSA9IHNvcnRlZEluZGV4Qnk7XG4gICAgbG9kYXNoLnNvcnRlZEluZGV4T2YgPSBzb3J0ZWRJbmRleE9mO1xuICAgIGxvZGFzaC5zb3J0ZWRMYXN0SW5kZXggPSBzb3J0ZWRMYXN0SW5kZXg7XG4gICAgbG9kYXNoLnNvcnRlZExhc3RJbmRleEJ5ID0gc29ydGVkTGFzdEluZGV4Qnk7XG4gICAgbG9kYXNoLnNvcnRlZExhc3RJbmRleE9mID0gc29ydGVkTGFzdEluZGV4T2Y7XG4gICAgbG9kYXNoLnN0YXJ0Q2FzZSA9IHN0YXJ0Q2FzZTtcbiAgICBsb2Rhc2guc3RhcnRzV2l0aCA9IHN0YXJ0c1dpdGg7XG4gICAgbG9kYXNoLnN1YnRyYWN0ID0gc3VidHJhY3Q7XG4gICAgbG9kYXNoLnN1bSA9IHN1bTtcbiAgICBsb2Rhc2guc3VtQnkgPSBzdW1CeTtcbiAgICBsb2Rhc2gudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICBsb2Rhc2gudGltZXMgPSB0aW1lcztcbiAgICBsb2Rhc2gudG9GaW5pdGUgPSB0b0Zpbml0ZTtcbiAgICBsb2Rhc2gudG9JbnRlZ2VyID0gdG9JbnRlZ2VyO1xuICAgIGxvZGFzaC50b0xlbmd0aCA9IHRvTGVuZ3RoO1xuICAgIGxvZGFzaC50b0xvd2VyID0gdG9Mb3dlcjtcbiAgICBsb2Rhc2gudG9OdW1iZXIgPSB0b051bWJlcjtcbiAgICBsb2Rhc2gudG9TYWZlSW50ZWdlciA9IHRvU2FmZUludGVnZXI7XG4gICAgbG9kYXNoLnRvU3RyaW5nID0gdG9TdHJpbmc7XG4gICAgbG9kYXNoLnRvVXBwZXIgPSB0b1VwcGVyO1xuICAgIGxvZGFzaC50cmltID0gdHJpbTtcbiAgICBsb2Rhc2gudHJpbUVuZCA9IHRyaW1FbmQ7XG4gICAgbG9kYXNoLnRyaW1TdGFydCA9IHRyaW1TdGFydDtcbiAgICBsb2Rhc2gudHJ1bmNhdGUgPSB0cnVuY2F0ZTtcbiAgICBsb2Rhc2gudW5lc2NhcGUgPSB1bmVzY2FwZTtcbiAgICBsb2Rhc2gudW5pcXVlSWQgPSB1bmlxdWVJZDtcbiAgICBsb2Rhc2gudXBwZXJDYXNlID0gdXBwZXJDYXNlO1xuICAgIGxvZGFzaC51cHBlckZpcnN0ID0gdXBwZXJGaXJzdDtcblxuICAgIC8vIEFkZCBhbGlhc2VzLlxuICAgIGxvZGFzaC5lYWNoID0gZm9yRWFjaDtcbiAgICBsb2Rhc2guZWFjaFJpZ2h0ID0gZm9yRWFjaFJpZ2h0O1xuICAgIGxvZGFzaC5maXJzdCA9IGhlYWQ7XG5cbiAgICBtaXhpbihsb2Rhc2gsIChmdW5jdGlvbigpIHtcbiAgICAgIHZhciBzb3VyY2UgPSB7fTtcbiAgICAgIGJhc2VGb3JPd24obG9kYXNoLCBmdW5jdGlvbihmdW5jLCBtZXRob2ROYW1lKSB7XG4gICAgICAgIGlmICghaGFzT3duUHJvcGVydHkuY2FsbChsb2Rhc2gucHJvdG90eXBlLCBtZXRob2ROYW1lKSkge1xuICAgICAgICAgIHNvdXJjZVttZXRob2ROYW1lXSA9IGZ1bmM7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICB9KCkpLCB7ICdjaGFpbic6IGZhbHNlIH0pO1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogVGhlIHNlbWFudGljIHZlcnNpb24gbnVtYmVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICBsb2Rhc2guVkVSU0lPTiA9IFZFUlNJT047XG5cbiAgICAvLyBBc3NpZ24gZGVmYXVsdCBwbGFjZWhvbGRlcnMuXG4gICAgYXJyYXlFYWNoKFsnYmluZCcsICdiaW5kS2V5JywgJ2N1cnJ5JywgJ2N1cnJ5UmlnaHQnLCAncGFydGlhbCcsICdwYXJ0aWFsUmlnaHQnXSwgZnVuY3Rpb24obWV0aG9kTmFtZSkge1xuICAgICAgbG9kYXNoW21ldGhvZE5hbWVdLnBsYWNlaG9sZGVyID0gbG9kYXNoO1xuICAgIH0pO1xuXG4gICAgLy8gQWRkIGBMYXp5V3JhcHBlcmAgbWV0aG9kcyBmb3IgYF8uZHJvcGAgYW5kIGBfLnRha2VgIHZhcmlhbnRzLlxuICAgIGFycmF5RWFjaChbJ2Ryb3AnLCAndGFrZSddLCBmdW5jdGlvbihtZXRob2ROYW1lLCBpbmRleCkge1xuICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24obikge1xuICAgICAgICBuID0gbiA9PT0gdW5kZWZpbmVkID8gMSA6IG5hdGl2ZU1heCh0b0ludGVnZXIobiksIDApO1xuXG4gICAgICAgIHZhciByZXN1bHQgPSAodGhpcy5fX2ZpbHRlcmVkX18gJiYgIWluZGV4KVxuICAgICAgICAgID8gbmV3IExhenlXcmFwcGVyKHRoaXMpXG4gICAgICAgICAgOiB0aGlzLmNsb25lKCk7XG5cbiAgICAgICAgaWYgKHJlc3VsdC5fX2ZpbHRlcmVkX18pIHtcbiAgICAgICAgICByZXN1bHQuX190YWtlQ291bnRfXyA9IG5hdGl2ZU1pbihuLCByZXN1bHQuX190YWtlQ291bnRfXyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0Ll9fdmlld3NfXy5wdXNoKHtcbiAgICAgICAgICAgICdzaXplJzogbmF0aXZlTWluKG4sIE1BWF9BUlJBWV9MRU5HVEgpLFxuICAgICAgICAgICAgJ3R5cGUnOiBtZXRob2ROYW1lICsgKHJlc3VsdC5fX2Rpcl9fIDwgMCA/ICdSaWdodCcgOiAnJylcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcblxuICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWUgKyAnUmlnaHQnXSA9IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmV2ZXJzZSgpW21ldGhvZE5hbWVdKG4pLnJldmVyc2UoKTtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvLyBBZGQgYExhenlXcmFwcGVyYCBtZXRob2RzIHRoYXQgYWNjZXB0IGFuIGBpdGVyYXRlZWAgdmFsdWUuXG4gICAgYXJyYXlFYWNoKFsnZmlsdGVyJywgJ21hcCcsICd0YWtlV2hpbGUnXSwgZnVuY3Rpb24obWV0aG9kTmFtZSwgaW5kZXgpIHtcbiAgICAgIHZhciB0eXBlID0gaW5kZXggKyAxLFxuICAgICAgICAgIGlzRmlsdGVyID0gdHlwZSA9PSBMQVpZX0ZJTFRFUl9GTEFHIHx8IHR5cGUgPT0gTEFaWV9XSElMRV9GTEFHO1xuXG4gICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbihpdGVyYXRlZSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcy5jbG9uZSgpO1xuICAgICAgICByZXN1bHQuX19pdGVyYXRlZXNfXy5wdXNoKHtcbiAgICAgICAgICAnaXRlcmF0ZWUnOiBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMyksXG4gICAgICAgICAgJ3R5cGUnOiB0eXBlXG4gICAgICAgIH0pO1xuICAgICAgICByZXN1bHQuX19maWx0ZXJlZF9fID0gcmVzdWx0Ll9fZmlsdGVyZWRfXyB8fCBpc0ZpbHRlcjtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvLyBBZGQgYExhenlXcmFwcGVyYCBtZXRob2RzIGZvciBgXy5oZWFkYCBhbmQgYF8ubGFzdGAuXG4gICAgYXJyYXlFYWNoKFsnaGVhZCcsICdsYXN0J10sIGZ1bmN0aW9uKG1ldGhvZE5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgdGFrZU5hbWUgPSAndGFrZScgKyAoaW5kZXggPyAnUmlnaHQnIDogJycpO1xuXG4gICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbdGFrZU5hbWVdKDEpLnZhbHVlKClbMF07XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gQWRkIGBMYXp5V3JhcHBlcmAgbWV0aG9kcyBmb3IgYF8uaW5pdGlhbGAgYW5kIGBfLnRhaWxgLlxuICAgIGFycmF5RWFjaChbJ2luaXRpYWwnLCAndGFpbCddLCBmdW5jdGlvbihtZXRob2ROYW1lLCBpbmRleCkge1xuICAgICAgdmFyIGRyb3BOYW1lID0gJ2Ryb3AnICsgKGluZGV4ID8gJycgOiAnUmlnaHQnKTtcblxuICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9fZmlsdGVyZWRfXyA/IG5ldyBMYXp5V3JhcHBlcih0aGlzKSA6IHRoaXNbZHJvcE5hbWVdKDEpO1xuICAgICAgfTtcbiAgICB9KTtcblxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5jb21wYWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXIoaWRlbnRpdHkpO1xuICAgIH07XG5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuZmluZCA9IGZ1bmN0aW9uKHByZWRpY2F0ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyKHByZWRpY2F0ZSkuaGVhZCgpO1xuICAgIH07XG5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuZmluZExhc3QgPSBmdW5jdGlvbihwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnJldmVyc2UoKS5maW5kKHByZWRpY2F0ZSk7XG4gICAgfTtcblxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5pbnZva2VNYXAgPSBiYXNlUmVzdChmdW5jdGlvbihwYXRoLCBhcmdzKSB7XG4gICAgICBpZiAodHlwZW9mIHBhdGggPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbmV3IExhenlXcmFwcGVyKHRoaXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBiYXNlSW52b2tlKHZhbHVlLCBwYXRoLCBhcmdzKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLnJlamVjdCA9IGZ1bmN0aW9uKHByZWRpY2F0ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyKG5lZ2F0ZShnZXRJdGVyYXRlZShwcmVkaWNhdGUpKSk7XG4gICAgfTtcblxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5zbGljZSA9IGZ1bmN0aW9uKHN0YXJ0LCBlbmQpIHtcbiAgICAgIHN0YXJ0ID0gdG9JbnRlZ2VyKHN0YXJ0KTtcblxuICAgICAgdmFyIHJlc3VsdCA9IHRoaXM7XG4gICAgICBpZiAocmVzdWx0Ll9fZmlsdGVyZWRfXyAmJiAoc3RhcnQgPiAwIHx8IGVuZCA8IDApKSB7XG4gICAgICAgIHJldHVybiBuZXcgTGF6eVdyYXBwZXIocmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGlmIChzdGFydCA8IDApIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnRha2VSaWdodCgtc3RhcnQpO1xuICAgICAgfSBlbHNlIGlmIChzdGFydCkge1xuICAgICAgICByZXN1bHQgPSByZXN1bHQuZHJvcChzdGFydCk7XG4gICAgICB9XG4gICAgICBpZiAoZW5kICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZW5kID0gdG9JbnRlZ2VyKGVuZCk7XG4gICAgICAgIHJlc3VsdCA9IGVuZCA8IDAgPyByZXN1bHQuZHJvcFJpZ2h0KC1lbmQpIDogcmVzdWx0LnRha2UoZW5kIC0gc3RhcnQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLnRha2VSaWdodFdoaWxlID0gZnVuY3Rpb24ocHJlZGljYXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXZlcnNlKCkudGFrZVdoaWxlKHByZWRpY2F0ZSkucmV2ZXJzZSgpO1xuICAgIH07XG5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUudG9BcnJheSA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMudGFrZShNQVhfQVJSQVlfTEVOR1RIKTtcbiAgICB9O1xuXG4gICAgLy8gQWRkIGBMYXp5V3JhcHBlcmAgbWV0aG9kcyB0byBgbG9kYXNoLnByb3RvdHlwZWAuXG4gICAgYmFzZUZvck93bihMYXp5V3JhcHBlci5wcm90b3R5cGUsIGZ1bmN0aW9uKGZ1bmMsIG1ldGhvZE5hbWUpIHtcbiAgICAgIHZhciBjaGVja0l0ZXJhdGVlID0gL14oPzpmaWx0ZXJ8ZmluZHxtYXB8cmVqZWN0KXxXaGlsZSQvLnRlc3QobWV0aG9kTmFtZSksXG4gICAgICAgICAgaXNUYWtlciA9IC9eKD86aGVhZHxsYXN0KSQvLnRlc3QobWV0aG9kTmFtZSksXG4gICAgICAgICAgbG9kYXNoRnVuYyA9IGxvZGFzaFtpc1Rha2VyID8gKCd0YWtlJyArIChtZXRob2ROYW1lID09ICdsYXN0JyA/ICdSaWdodCcgOiAnJykpIDogbWV0aG9kTmFtZV0sXG4gICAgICAgICAgcmV0VW53cmFwcGVkID0gaXNUYWtlciB8fCAvXmZpbmQvLnRlc3QobWV0aG9kTmFtZSk7XG5cbiAgICAgIGlmICghbG9kYXNoRnVuYykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsb2Rhc2gucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuX193cmFwcGVkX18sXG4gICAgICAgICAgICBhcmdzID0gaXNUYWtlciA/IFsxXSA6IGFyZ3VtZW50cyxcbiAgICAgICAgICAgIGlzTGF6eSA9IHZhbHVlIGluc3RhbmNlb2YgTGF6eVdyYXBwZXIsXG4gICAgICAgICAgICBpdGVyYXRlZSA9IGFyZ3NbMF0sXG4gICAgICAgICAgICB1c2VMYXp5ID0gaXNMYXp5IHx8IGlzQXJyYXkodmFsdWUpO1xuXG4gICAgICAgIHZhciBpbnRlcmNlcHRvciA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IGxvZGFzaEZ1bmMuYXBwbHkobG9kYXNoLCBhcnJheVB1c2goW3ZhbHVlXSwgYXJncykpO1xuICAgICAgICAgIHJldHVybiAoaXNUYWtlciAmJiBjaGFpbkFsbCkgPyByZXN1bHRbMF0gOiByZXN1bHQ7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHVzZUxhenkgJiYgY2hlY2tJdGVyYXRlZSAmJiB0eXBlb2YgaXRlcmF0ZWUgPT0gJ2Z1bmN0aW9uJyAmJiBpdGVyYXRlZS5sZW5ndGggIT0gMSkge1xuICAgICAgICAgIC8vIEF2b2lkIGxhenkgdXNlIGlmIHRoZSBpdGVyYXRlZSBoYXMgYSBcImxlbmd0aFwiIHZhbHVlIG90aGVyIHRoYW4gYDFgLlxuICAgICAgICAgIGlzTGF6eSA9IHVzZUxhenkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY2hhaW5BbGwgPSB0aGlzLl9fY2hhaW5fXyxcbiAgICAgICAgICAgIGlzSHlicmlkID0gISF0aGlzLl9fYWN0aW9uc19fLmxlbmd0aCxcbiAgICAgICAgICAgIGlzVW53cmFwcGVkID0gcmV0VW53cmFwcGVkICYmICFjaGFpbkFsbCxcbiAgICAgICAgICAgIG9ubHlMYXp5ID0gaXNMYXp5ICYmICFpc0h5YnJpZDtcblxuICAgICAgICBpZiAoIXJldFVud3JhcHBlZCAmJiB1c2VMYXp5KSB7XG4gICAgICAgICAgdmFsdWUgPSBvbmx5TGF6eSA/IHZhbHVlIDogbmV3IExhenlXcmFwcGVyKHRoaXMpO1xuICAgICAgICAgIHZhciByZXN1bHQgPSBmdW5jLmFwcGx5KHZhbHVlLCBhcmdzKTtcbiAgICAgICAgICByZXN1bHQuX19hY3Rpb25zX18ucHVzaCh7ICdmdW5jJzogdGhydSwgJ2FyZ3MnOiBbaW50ZXJjZXB0b3JdLCAndGhpc0FyZyc6IHVuZGVmaW5lZCB9KTtcbiAgICAgICAgICByZXR1cm4gbmV3IExvZGFzaFdyYXBwZXIocmVzdWx0LCBjaGFpbkFsbCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzVW53cmFwcGVkICYmIG9ubHlMYXp5KSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gdGhpcy50aHJ1KGludGVyY2VwdG9yKTtcbiAgICAgICAgcmV0dXJuIGlzVW53cmFwcGVkID8gKGlzVGFrZXIgPyByZXN1bHQudmFsdWUoKVswXSA6IHJlc3VsdC52YWx1ZSgpKSA6IHJlc3VsdDtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvLyBBZGQgYEFycmF5YCBtZXRob2RzIHRvIGBsb2Rhc2gucHJvdG90eXBlYC5cbiAgICBhcnJheUVhY2goWydwb3AnLCAncHVzaCcsICdzaGlmdCcsICdzb3J0JywgJ3NwbGljZScsICd1bnNoaWZ0J10sIGZ1bmN0aW9uKG1ldGhvZE5hbWUpIHtcbiAgICAgIHZhciBmdW5jID0gYXJyYXlQcm90b1ttZXRob2ROYW1lXSxcbiAgICAgICAgICBjaGFpbk5hbWUgPSAvXig/OnB1c2h8c29ydHx1bnNoaWZ0KSQvLnRlc3QobWV0aG9kTmFtZSkgPyAndGFwJyA6ICd0aHJ1JyxcbiAgICAgICAgICByZXRVbndyYXBwZWQgPSAvXig/OnBvcHxzaGlmdCkkLy50ZXN0KG1ldGhvZE5hbWUpO1xuXG4gICAgICBsb2Rhc2gucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgICBpZiAocmV0VW53cmFwcGVkICYmICF0aGlzLl9fY2hhaW5fXykge1xuICAgICAgICAgIHZhciB2YWx1ZSA9IHRoaXMudmFsdWUoKTtcbiAgICAgICAgICByZXR1cm4gZnVuYy5hcHBseShpc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW10sIGFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzW2NoYWluTmFtZV0oZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gZnVuYy5hcHBseShpc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW10sIGFyZ3MpO1xuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvLyBNYXAgbWluaWZpZWQgbWV0aG9kIG5hbWVzIHRvIHRoZWlyIHJlYWwgbmFtZXMuXG4gICAgYmFzZUZvck93bihMYXp5V3JhcHBlci5wcm90b3R5cGUsIGZ1bmN0aW9uKGZ1bmMsIG1ldGhvZE5hbWUpIHtcbiAgICAgIHZhciBsb2Rhc2hGdW5jID0gbG9kYXNoW21ldGhvZE5hbWVdO1xuICAgICAgaWYgKGxvZGFzaEZ1bmMpIHtcbiAgICAgICAgdmFyIGtleSA9IGxvZGFzaEZ1bmMubmFtZSArICcnO1xuICAgICAgICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwocmVhbE5hbWVzLCBrZXkpKSB7XG4gICAgICAgICAgcmVhbE5hbWVzW2tleV0gPSBbXTtcbiAgICAgICAgfVxuICAgICAgICByZWFsTmFtZXNba2V5XS5wdXNoKHsgJ25hbWUnOiBtZXRob2ROYW1lLCAnZnVuYyc6IGxvZGFzaEZ1bmMgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZWFsTmFtZXNbY3JlYXRlSHlicmlkKHVuZGVmaW5lZCwgV1JBUF9CSU5EX0tFWV9GTEFHKS5uYW1lXSA9IFt7XG4gICAgICAnbmFtZSc6ICd3cmFwcGVyJyxcbiAgICAgICdmdW5jJzogdW5kZWZpbmVkXG4gICAgfV07XG5cbiAgICAvLyBBZGQgbWV0aG9kcyB0byBgTGF6eVdyYXBwZXJgLlxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5jbG9uZSA9IGxhenlDbG9uZTtcbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUucmV2ZXJzZSA9IGxhenlSZXZlcnNlO1xuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS52YWx1ZSA9IGxhenlWYWx1ZTtcblxuICAgIC8vIEFkZCBjaGFpbiBzZXF1ZW5jZSBtZXRob2RzIHRvIHRoZSBgbG9kYXNoYCB3cmFwcGVyLlxuICAgIGxvZGFzaC5wcm90b3R5cGUuYXQgPSB3cmFwcGVyQXQ7XG4gICAgbG9kYXNoLnByb3RvdHlwZS5jaGFpbiA9IHdyYXBwZXJDaGFpbjtcbiAgICBsb2Rhc2gucHJvdG90eXBlLmNvbW1pdCA9IHdyYXBwZXJDb21taXQ7XG4gICAgbG9kYXNoLnByb3RvdHlwZS5uZXh0ID0gd3JhcHBlck5leHQ7XG4gICAgbG9kYXNoLnByb3RvdHlwZS5wbGFudCA9IHdyYXBwZXJQbGFudDtcbiAgICBsb2Rhc2gucHJvdG90eXBlLnJldmVyc2UgPSB3cmFwcGVyUmV2ZXJzZTtcbiAgICBsb2Rhc2gucHJvdG90eXBlLnRvSlNPTiA9IGxvZGFzaC5wcm90b3R5cGUudmFsdWVPZiA9IGxvZGFzaC5wcm90b3R5cGUudmFsdWUgPSB3cmFwcGVyVmFsdWU7XG5cbiAgICAvLyBBZGQgbGF6eSBhbGlhc2VzLlxuICAgIGxvZGFzaC5wcm90b3R5cGUuZmlyc3QgPSBsb2Rhc2gucHJvdG90eXBlLmhlYWQ7XG5cbiAgICBpZiAoc3ltSXRlcmF0b3IpIHtcbiAgICAgIGxvZGFzaC5wcm90b3R5cGVbc3ltSXRlcmF0b3JdID0gd3JhcHBlclRvSXRlcmF0b3I7XG4gICAgfVxuICAgIHJldHVybiBsb2Rhc2g7XG4gIH0pO1xuXG4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gIC8vIEV4cG9ydCBsb2Rhc2guXG4gIHZhciBfID0gcnVuSW5Db250ZXh0KCk7XG5cbiAgLy8gU29tZSBBTUQgYnVpbGQgb3B0aW1pemVycywgbGlrZSByLmpzLCBjaGVjayBmb3IgY29uZGl0aW9uIHBhdHRlcm5zIGxpa2U6XG4gIGlmICh0eXBlb2YgZGVmaW5lID09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGRlZmluZS5hbWQgPT0gJ29iamVjdCcgJiYgZGVmaW5lLmFtZCkge1xuICAgIC8vIEV4cG9zZSBMb2Rhc2ggb24gdGhlIGdsb2JhbCBvYmplY3QgdG8gcHJldmVudCBlcnJvcnMgd2hlbiBMb2Rhc2ggaXNcbiAgICAvLyBsb2FkZWQgYnkgYSBzY3JpcHQgdGFnIGluIHRoZSBwcmVzZW5jZSBvZiBhbiBBTUQgbG9hZGVyLlxuICAgIC8vIFNlZSBodHRwOi8vcmVxdWlyZWpzLm9yZy9kb2NzL2Vycm9ycy5odG1sI21pc21hdGNoIGZvciBtb3JlIGRldGFpbHMuXG4gICAgLy8gVXNlIGBfLm5vQ29uZmxpY3RgIHRvIHJlbW92ZSBMb2Rhc2ggZnJvbSB0aGUgZ2xvYmFsIG9iamVjdC5cbiAgICByb290Ll8gPSBfO1xuXG4gICAgLy8gRGVmaW5lIGFzIGFuIGFub255bW91cyBtb2R1bGUgc28sIHRocm91Z2ggcGF0aCBtYXBwaW5nLCBpdCBjYW4gYmVcbiAgICAvLyByZWZlcmVuY2VkIGFzIHRoZSBcInVuZGVyc2NvcmVcIiBtb2R1bGUuXG4gICAgZGVmaW5lKGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIF87XG4gICAgfSk7XG4gIH1cbiAgLy8gQ2hlY2sgZm9yIGBleHBvcnRzYCBhZnRlciBgZGVmaW5lYCBpbiBjYXNlIGEgYnVpbGQgb3B0aW1pemVyIGFkZHMgaXQuXG4gIGVsc2UgaWYgKGZyZWVNb2R1bGUpIHtcbiAgICAvLyBFeHBvcnQgZm9yIE5vZGUuanMuXG4gICAgKGZyZWVNb2R1bGUuZXhwb3J0cyA9IF8pLl8gPSBfO1xuICAgIC8vIEV4cG9ydCBmb3IgQ29tbW9uSlMgc3VwcG9ydC5cbiAgICBmcmVlRXhwb3J0cy5fID0gXztcbiAgfVxuICBlbHNlIHtcbiAgICAvLyBFeHBvcnQgdG8gdGhlIGdsb2JhbCBvYmplY3QuXG4gICAgcm9vdC5fID0gXztcbiAgfVxufS5jYWxsKHRoaXMpKTtcbiIsICJpbXBvcnQgdHlwZSB7IE11bHRpR3JhcGggfSBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwianVnZ2wtYXBpXCI7XHJcbmltcG9ydCB7IGFkZEljb24sIEV2ZW50UmVmLCBNYXJrZG93blZpZXcsIFBsdWdpbiB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQge1xyXG4gIGFkZEZlYXRoZXJJY29uLFxyXG4gIG9wZW5WaWV3LFxyXG4gIHdhaXQsXHJcbn0gZnJvbSBcIm9ic2lkaWFuLWNvbW11bml0eS1saWIvZGlzdC91dGlsc1wiO1xyXG5pbXBvcnQgeyBCQ0FQSSB9IGZyb20gXCIuL0FQSVwiO1xyXG5pbXBvcnQgeyBEZWJ1Z2dlciB9IGZyb20gXCJzcmMvRGVidWdnZXJcIjtcclxuaW1wb3J0IHsgSGllcmFyY2h5Tm90ZVNlbGVjdG9yTW9kYWwgfSBmcm9tIFwiLi9BbHRlcm5hdGl2ZUhpZXJhcmNoaWVzL0hpZXJhcmNoeU5vdGVzL0hpZXJOb3RlTW9kYWxcIjtcclxuaW1wb3J0IHsgZ2V0Q29kZWJsb2NrQ0IgfSBmcm9tIFwiLi9Db2RlYmxvY2tzXCI7XHJcbmltcG9ydCB7IGNvcHlHbG9iYWxJbmRleCwgY29weUxvY2FsSW5kZXggfSBmcm9tIFwiLi9Db21tYW5kcy9DcmVhdGVJbmRleFwiO1xyXG5pbXBvcnQgeyBqdW1wVG9GaXJzdERpciB9IGZyb20gXCIuL0NvbW1hbmRzL2p1bXBUb0ZpcnN0RGlyXCI7XHJcbmltcG9ydCB7IHRocmVhZCB9IGZyb20gXCIuL0NvbW1hbmRzL3RocmVhZGluZ1wiO1xyXG5pbXBvcnQgeyB3cml0ZUJDc1RvQWxsRmlsZXMsIHdyaXRlQkNUb0ZpbGUgfSBmcm9tIFwiLi9Db21tYW5kcy9Xcml0ZUJDc1wiO1xyXG5pbXBvcnQge1xyXG4gIERFRkFVTFRfU0VUVElOR1MsXHJcbiAgRFVDS19JQ09OLFxyXG4gIERVQ0tfSUNPTl9TVkcsXHJcbiAgRFVDS19WSUVXLFxyXG4gIE1BVFJJWF9WSUVXLFxyXG4gIFRSQUlMX0lDT04sXHJcbiAgVFJBSUxfSUNPTl9TVkcsXHJcbiAgVFJFRV9WSUVXLFxyXG4gIEFQSV9OQU1FLFxyXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBGaWVsZFN1Z2dlc3RvciB9IGZyb20gXCIuL0ZpZWxkU3VnZ2VzdG9yXCI7XHJcbmltcG9ydCB0eXBlIHtcclxuICBCQ0FQSUksXHJcbiAgQkNTZXR0aW5ncyxcclxuICBEaXJlY3Rpb25zLFxyXG4gIE15VmlldyxcclxuICBWaWV3SW5mbyxcclxufSBmcm9tIFwiLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IGJ1aWxkQ2xvc2VkRywgYnVpbGRNYWluRywgcmVmcmVzaEluZGV4IH0gZnJvbSBcIi4vcmVmcmVzaEluZGV4XCI7XHJcbmltcG9ydCB7IFJlbGF0aW9uU3VnZ2VzdG9yIH0gZnJvbSBcIi4vUmVsYXRpb25TdWdnZXN0b3JcIjtcclxuaW1wb3J0IHsgQkNTZXR0aW5nVGFiIH0gZnJvbSBcIi4vU2V0dGluZ3MvQnJlYWRjcnVtYnNTZXR0aW5nVGFiXCI7XHJcbmltcG9ydCB7IGdldEZpZWxkcyB9IGZyb20gXCIuL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyB3YWl0Rm9yQ2FjaGUgfSBmcm9tIFwiLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcbmltcG9ydCBEdWNrc1ZpZXcgZnJvbSBcIi4vVmlld3MvRHVja3NWaWV3XCI7XHJcbmltcG9ydCBNYXRyaXhWaWV3IGZyb20gXCIuL1ZpZXdzL01hdHJpeFZpZXdcIjtcclxuaW1wb3J0IHsgZHJhd1RyYWlsIH0gZnJvbSBcIi4vVmlld3MvVHJhaWxWaWV3XCI7XHJcbmltcG9ydCBUcmVlVmlldyBmcm9tIFwiLi9WaWV3cy9UcmVlVmlld1wiO1xyXG5pbXBvcnQgeyBCQ1N0b3JlIH0gZnJvbSBcIi4vVmlzdWFsaXNhdGlvbnMvSnVnZ2xcIjtcclxuaW1wb3J0IHsgVmlzTW9kYWwgfSBmcm9tIFwiLi9WaXN1YWxpc2F0aW9ucy9WaXNNb2RhbFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQkNQbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xyXG4gIHNldHRpbmdzOiBCQ1NldHRpbmdzO1xyXG5cclxuICB2aXNpdGVkOiBbc3RyaW5nLCBIVE1MRGl2RWxlbWVudF1bXSA9IFtdO1xyXG5cclxuICBtYWluRzogTXVsdGlHcmFwaDtcclxuICBjbG9zZWRHOiBNdWx0aUdyYXBoO1xyXG5cclxuICBhY3RpdmVMZWFmQ2hhbmdlOiBFdmVudFJlZiA9IHVuZGVmaW5lZDtcclxuICBsYXlvdXRDaGFuZ2U6IEV2ZW50UmVmID0gdW5kZWZpbmVkO1xyXG5cclxuICBkYjogRGVidWdnZXI7XHJcblxyXG4gIFZJRVdTOiBWaWV3SW5mb1tdO1xyXG5cclxuICBhcGk6IEJDQVBJSTtcclxuICBwcml2YXRlIGJjU3RvcmU6IEJDU3RvcmU7XHJcblxyXG4gIHJlZ2lzdGVyQWN0aXZlTGVhZkNoYW5nZUV2ZW50KCkge1xyXG4gICAgdGhpcy5hY3RpdmVMZWFmQ2hhbmdlID0gYXBwLndvcmtzcGFjZS5vbihcclxuICAgICAgXCJmaWxlLW9wZW5cIixcclxuICAgICAgYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzLnJlZnJlc2hPbk5vdGVDaGFuZ2UpIGF3YWl0IHJlZnJlc2hJbmRleCh0aGlzKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IGFjdGl2ZVZpZXcgPSB0aGlzLmdldEFjdGl2ZVRZUEVWaWV3KE1BVFJJWF9WSUVXKTtcclxuICAgICAgICAgIGlmIChhY3RpdmVWaWV3KSBhd2FpdCBhY3RpdmVWaWV3LmRyYXcoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnQodGhpcy5hY3RpdmVMZWFmQ2hhbmdlKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyTGF5b3V0Q2hhbmdlRXZlbnQoKSB7XHJcbiAgICB0aGlzLmxheW91dENoYW5nZSA9IGFwcC53b3Jrc3BhY2Uub24oXCJsYXlvdXQtY2hhbmdlXCIsIGFzeW5jICgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuc2V0dGluZ3Muc2hvd0JDcykgYXdhaXQgZHJhd1RyYWlsKHRoaXMpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnQodGhpcy5sYXlvdXRDaGFuZ2UpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc29sZS5sb2coXCJsb2FkaW5nIGJyZWFkY3J1bWJzIHBsdWdpblwiKTtcclxuXHJcbiAgICBhd2FpdCB0aGlzLmxvYWRTZXR0aW5ncygpO1xyXG4gICAgdGhpcy5hZGRTZXR0aW5nVGFiKG5ldyBCQ1NldHRpbmdUYWIodGhpcykpO1xyXG5cclxuICAgIHRoaXMuZGIgPSBuZXcgRGVidWdnZXIodGhpcyk7XHJcblxyXG4gICAgY29uc3QgeyBzZXR0aW5ncyB9ID0gdGhpcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgZmllbGRTdWdnZXN0b3IsXHJcbiAgICAgIGVuYWJsZVJlbGF0aW9uU3VnZ2VzdG9yLFxyXG4gICAgICBvcGVuTWF0cml4T25Mb2FkLFxyXG4gICAgICBvcGVuRHVja09uTG9hZCxcclxuICAgICAgb3BlbkRvd25PbkxvYWQsXHJcbiAgICAgIHNob3dCQ3MsXHJcbiAgICAgIHVzZXJIaWVycyxcclxuICAgIH0gPSBzZXR0aW5ncztcclxuXHJcbiAgICBpZiAoZmllbGRTdWdnZXN0b3IpIHRoaXMucmVnaXN0ZXJFZGl0b3JTdWdnZXN0KG5ldyBGaWVsZFN1Z2dlc3Rvcih0aGlzKSk7XHJcbiAgICBpZiAoZW5hYmxlUmVsYXRpb25TdWdnZXN0b3IpXHJcbiAgICAgIHRoaXMucmVnaXN0ZXJFZGl0b3JTdWdnZXN0KG5ldyBSZWxhdGlvblN1Z2dlc3Rvcih0aGlzKSk7XHJcblxyXG5cclxuICAgIC8vIE92ZXJyaWRlIG9sZGVyIHZlcnNpb25zIG9mIHRoZXNlIHNldHRpbmdzXHJcbiAgICBpZiAoc2V0dGluZ3MubGltaXRUcmFpbENoZWNrYm94ZXMubGVuZ3RoID09PSAwKSBzZXR0aW5ncy5saW1pdFRyYWlsQ2hlY2tib3hlcyA9IGdldEZpZWxkcyhzZXR0aW5ncy51c2VySGllcnMpXHJcbiAgICBpZiAodHlwZW9mIHNldHRpbmdzLnNob3dBbGwgPT09ICdib29sZWFuJykgc2V0dGluZ3Muc2hvd0FsbCA9IHNldHRpbmdzLnNob3dBbGwgPyAnQWxsJyA6ICdTaG9ydGVzdCdcclxuXHJcbiAgICB0aGlzLlZJRVdTID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGxhaW46IFwiTWF0cml4XCIsXHJcbiAgICAgICAgdHlwZTogTUFUUklYX1ZJRVcsXHJcbiAgICAgICAgY29uc3RydWN0b3I6IE1hdHJpeFZpZXcsXHJcbiAgICAgICAgb3Blbk9uTG9hZDogb3Blbk1hdHJpeE9uTG9hZCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBsYWluOiBcIkR1Y2tcIixcclxuICAgICAgICB0eXBlOiBEVUNLX1ZJRVcsXHJcbiAgICAgICAgY29uc3RydWN0b3I6IER1Y2tzVmlldyxcclxuICAgICAgICBvcGVuT25Mb2FkOiBvcGVuRHVja09uTG9hZCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBsYWluOiBcIkRvd25cIixcclxuICAgICAgICB0eXBlOiBUUkVFX1ZJRVcsXHJcbiAgICAgICAgY29uc3RydWN0b3I6IFRyZWVWaWV3LFxyXG4gICAgICAgIG9wZW5PbkxvYWQ6IG9wZW5Eb3duT25Mb2FkLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IHsgY29uc3RydWN0b3IsIHR5cGUgfSBvZiB0aGlzLlZJRVdTKSB7XHJcbiAgICAgIHRoaXMucmVnaXN0ZXJWaWV3KHR5cGUsIChsZWFmKSA9PiBuZXcgY29uc3RydWN0b3IobGVhZiwgdGhpcykpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZEljb24oRFVDS19JQ09OLCBEVUNLX0lDT05fU1ZHKTtcclxuICAgIGFkZEljb24oVFJBSUxfSUNPTiwgVFJBSUxfSUNPTl9TVkcpO1xyXG5cclxuICAgIGF3YWl0IHdhaXRGb3JDYWNoZSh0aGlzKTtcclxuICAgIHRoaXMubWFpbkcgPSBhd2FpdCBidWlsZE1haW5HKHRoaXMpO1xyXG4gICAgdGhpcy5jbG9zZWRHID0gYnVpbGRDbG9zZWRHKHRoaXMpO1xyXG5cclxuICAgIGFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeShhc3luYyAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IG5vRmlsZXMgPSBhcHAudmF1bHQuZ2V0TWFya2Rvd25GaWxlcygpLmxlbmd0aDtcclxuICAgICAgaWYgKHRoaXMubWFpbkc/Lm5vZGVzKCkubGVuZ3RoIDwgbm9GaWxlcykge1xyXG4gICAgICAgIGF3YWl0IHdhaXQoMzAwMCk7XHJcbiAgICAgICAgdGhpcy5tYWluRyA9IGF3YWl0IGJ1aWxkTWFpbkcodGhpcyk7XHJcbiAgICAgICAgdGhpcy5jbG9zZWRHID0gYnVpbGRDbG9zZWRHKHRoaXMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IHsgb3Blbk9uTG9hZCwgdHlwZSwgY29uc3RydWN0b3IgfSBvZiB0aGlzLlZJRVdTKVxyXG4gICAgICAgIGlmIChvcGVuT25Mb2FkKSBhd2FpdCBvcGVuVmlldyh0eXBlLCBjb25zdHJ1Y3Rvcik7XHJcblxyXG4gICAgICBpZiAoc2hvd0JDcykgYXdhaXQgZHJhd1RyYWlsKHRoaXMpO1xyXG4gICAgICB0aGlzLnJlZ2lzdGVyQWN0aXZlTGVhZkNoYW5nZUV2ZW50KCk7XHJcbiAgICAgIHRoaXMucmVnaXN0ZXJMYXlvdXRDaGFuZ2VFdmVudCgpO1xyXG5cclxuICAgICAgLy8gU291cmNlIGZvciBzYXZlIHNldHRpbmdcclxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hpcHN0ZXJzbW9vdGhpZS9vYnNpZGlhbi1wbHVnaW4tcHJldHRpZXIvYmxvYi9tYWluL3NyYy9tYWluLnRzXHJcbiAgICAgIGNvbnN0IHNhdmVDb21tYW5kRGVmaW5pdGlvbiA9XHJcbiAgICAgICAgYXBwLmNvbW1hbmRzLmNvbW1hbmRzW1wiZWRpdG9yOnNhdmUtZmlsZVwiXTtcclxuICAgICAgY29uc3Qgc2F2ZSA9IHNhdmVDb21tYW5kRGVmaW5pdGlvbj8uY2FsbGJhY2s7XHJcblxyXG4gICAgICBpZiAodHlwZW9mIHNhdmUgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgIHNhdmVDb21tYW5kRGVmaW5pdGlvbi5jYWxsYmFjayA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICAgIGF3YWl0IHNhdmUoKTtcclxuICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLnJlZnJlc2hPbk5vdGVTYXZlKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHJlZnJlc2hJbmRleCh0aGlzKTtcclxuICAgICAgICAgICAgY29uc3QgYWN0aXZlVmlldyA9IHRoaXMuZ2V0QWN0aXZlVFlQRVZpZXcoTUFUUklYX1ZJRVcpO1xyXG4gICAgICAgICAgICBpZiAoYWN0aXZlVmlldykgYXdhaXQgYWN0aXZlVmlldy5kcmF3KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgYXBwLndvcmtzcGFjZS5pdGVyYXRlQWxsTGVhdmVzKChsZWFmKSA9PiB7XHJcbiAgICAgICAgaWYgKGxlYWYgaW5zdGFuY2VvZiBNYXJrZG93blZpZXcpXHJcbiAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgIGxlYWYudmlldy5wcmV2aWV3TW9kZS5yZXJlbmRlcih0cnVlKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IHsgdHlwZSwgcGxhaW4sIGNvbnN0cnVjdG9yIH0gb2YgdGhpcy5WSUVXUykge1xyXG4gICAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICAgIGlkOiBgc2hvdy0ke3R5cGV9LXZpZXdgLFxyXG4gICAgICAgIG5hbWU6IGBPcGVuICR7cGxhaW59IFZpZXdgLFxyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIGNoZWNrQ2FsbGJhY2s6IGFzeW5jIChjaGVja2luZzogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoZWNraW5nKSByZXR1cm4gYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUodHlwZSkubGVuZ3RoID09PSAwO1xyXG4gICAgICAgICAgYXdhaXQgb3BlblZpZXcodHlwZSwgY29uc3RydWN0b3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiBcIm9wZW4tdmlzLW1vZGFsXCIsXHJcbiAgICAgIG5hbWU6IFwiT3BlbiBWaXN1YWxpc2F0aW9uIE1vZGFsXCIsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiBuZXcgVmlzTW9kYWwodGhpcykub3BlbigpLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6IFwibWFuaXB1bGF0ZS1oaWVyYXJjaHktbm90ZXNcIixcclxuICAgICAgbmFtZTogXCJBZGp1c3QgSGllcmFyY2h5IE5vdGVzXCIsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiBuZXcgSGllcmFyY2h5Tm90ZVNlbGVjdG9yTW9kYWwodGhpcykub3BlbigpLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6IFwiUmVmcmVzaC1CcmVhZGNydW1icy1JbmRleFwiLFxyXG4gICAgICBuYW1lOiBcIlJlZnJlc2ggQnJlYWRjcnVtYnMgSW5kZXhcIixcclxuICAgICAgY2FsbGJhY2s6IGFzeW5jICgpID0+IGF3YWl0IHJlZnJlc2hJbmRleCh0aGlzKSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiBcIlRvZ2dsZS10cmFpbC1pbi1FZGl0JkxQXCIsXHJcbiAgICAgIG5hbWU6IFwiVG9nZ2xlOiBTaG93IFRyYWlsL0dyaWQgaW4gRWRpdCAmIExQIG1vZGVcIixcclxuICAgICAgY2FsbGJhY2s6IGFzeW5jICgpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5zaG93QkNzSW5FZGl0TFBNb2RlID0gIXNldHRpbmdzLnNob3dCQ3NJbkVkaXRMUE1vZGU7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBhd2FpdCBkcmF3VHJhaWwodGhpcyk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogXCJXcml0ZS1CcmVhZGNydW1icy10by1DdXJyZW50LUZpbGVcIixcclxuICAgICAgbmFtZTogXCJXcml0ZSBCcmVhZGNydW1icyB0byBDdXJyZW50IEZpbGVcIixcclxuICAgICAgY2FsbGJhY2s6IGFzeW5jICgpID0+IGF3YWl0IHdyaXRlQkNUb0ZpbGUodGhpcyksXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogXCJXcml0ZS1CcmVhZGNydW1icy10by1BbGwtRmlsZXNcIixcclxuICAgICAgbmFtZTogXCJXcml0ZSBCcmVhZGNydW1icyB0byAqKkFMTCoqIEZpbGVzXCIsXHJcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoKSA9PiBhd2FpdCB3cml0ZUJDc1RvQWxsRmlsZXModGhpcyksXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogXCJsb2NhbC1pbmRleFwiLFxyXG4gICAgICBuYW1lOiBcIkNvcHkgYSBMb2NhbCBJbmRleCB0byB0aGUgY2xpcGJvYXJkXCIsXHJcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoKSA9PiBhd2FpdCBjb3B5TG9jYWxJbmRleCh0aGlzKSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiBcImdsb2JhbC1pbmRleFwiLFxyXG4gICAgICBuYW1lOiBcIkNvcHkgYSBHbG9iYWwgSW5kZXggdG8gdGhlIGNsaXBib2FyZFwiLFxyXG4gICAgICBjYWxsYmFjazogYXN5bmMgKCkgPT4gYXdhaXQgY29weUdsb2JhbEluZGV4KHRoaXMpLFxyXG4gICAgfSk7XHJcblxyXG4gICAgW1widXBcIiwgXCJkb3duXCIsIFwibmV4dFwiLCBcInByZXZcIl0uZm9yRWFjaCgoZGlyOiBEaXJlY3Rpb25zKSA9PiB7XHJcbiAgICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgICAgaWQ6IGBqdW1wLXRvLWZpcnN0LSR7ZGlyfWAsXHJcbiAgICAgICAgbmFtZTogYEp1bXAgdG8gZmlyc3QgJyR7ZGlyfSdgLFxyXG4gICAgICAgIGNhbGxiYWNrOiBhc3luYyAoKSA9PiBhd2FpdCBqdW1wVG9GaXJzdERpcih0aGlzLCBkaXIpLFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIGdldEZpZWxkcyh1c2VySGllcnMpLmZvckVhY2goKGZpZWxkOiBzdHJpbmcpID0+IHtcclxuICAgICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgICBpZDogYG5ldy1maWxlLXdpdGgtY3Vyci1hcy0ke2ZpZWxkfWAsXHJcbiAgICAgICAgbmFtZTogYENyZWF0ZSBhIG5ldyAnJHtmaWVsZH0nIGZyb20gdGhlIGN1cnJlbnQgbm90ZWAsXHJcbiAgICAgICAgY2FsbGJhY2s6IGFzeW5jICgpID0+IGF3YWl0IHRocmVhZCh0aGlzLCBmaWVsZCksXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRSaWJib25JY29uKFxyXG4gICAgICBhZGRGZWF0aGVySWNvbihcInR2XCIpIGFzIHN0cmluZyxcclxuICAgICAgXCJCcmVhZGNydW1icyBWaXN1YWxpc2F0aW9uXCIsXHJcbiAgICAgICgpID0+IG5ldyBWaXNNb2RhbCh0aGlzKS5vcGVuKClcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5yZWdpc3Rlck1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yKFxyXG4gICAgICBcImJyZWFkY3J1bWJzXCIsXHJcbiAgICAgIGdldENvZGVibG9ja0NCKHRoaXMpXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IGp1Z2dsUGx1Z2luID0gZ2V0UGx1Z2luKGFwcCk7XHJcbiAgICBpZiAoanVnZ2xQbHVnaW4pIHtcclxuICAgICAgdGhpcy5iY1N0b3JlID0gbmV3IEJDU3RvcmUodGhpcy5tYWluRywgYXBwLm1ldGFkYXRhQ2FjaGUpO1xyXG4gICAgICBqdWdnbFBsdWdpbi5yZWdpc3RlclN0b3JlKHRoaXMuYmNTdG9yZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcGkgPSBuZXcgQkNBUEkodGhpcyk7XHJcbiAgICAvLyBSZWdpc3RlciBBUEkgdG8gZ2xvYmFsIHdpbmRvdyBvYmplY3QuXHJcbiAgICAod2luZG93W0FQSV9OQU1FXSA9IHRoaXMuYXBpKSAmJlxyXG4gICAgICB0aGlzLnJlZ2lzdGVyKCgpID0+IGRlbGV0ZSB3aW5kb3dbQVBJX05BTUVdKTtcclxuICB9XHJcblxyXG4gIGdldEFjdGl2ZVRZUEVWaWV3KHR5cGU6IHN0cmluZyk6IE15VmlldyB8IG51bGwge1xyXG4gICAgY29uc3QgeyBjb25zdHJ1Y3RvciB9ID0gdGhpcy5WSUVXUy5maW5kKCh2aWV3KSA9PiB2aWV3LnR5cGUgPT09IHR5cGUpO1xyXG4gICAgY29uc3QgbGVhdmVzID0gYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUodHlwZSk7XHJcbiAgICBpZiAobGVhdmVzICYmIGxlYXZlcy5sZW5ndGggPj0gMSkge1xyXG4gICAgICBjb25zdCB7IHZpZXcgfSA9IGxlYXZlc1swXTtcclxuICAgICAgaWYgKHZpZXcgaW5zdGFuY2VvZiBjb25zdHJ1Y3RvcikgcmV0dXJuIHZpZXc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGxvYWRTZXR0aW5ncyA9IGFzeW5jICgpID0+XHJcbiAgKHRoaXMuc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKFxyXG4gICAge30sXHJcbiAgICBERUZBVUxUX1NFVFRJTkdTLFxyXG4gICAgYXdhaXQgdGhpcy5sb2FkRGF0YSgpXHJcbiAgKSk7XHJcblxyXG4gIHNhdmVTZXR0aW5ncyA9IGFzeW5jICgpID0+IGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcblxyXG4gIG9udW5sb2FkKCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXCJ1bmxvYWRpbmdcIik7XHJcbiAgICB0aGlzLlZJRVdTLmZvckVhY2goYXN5bmMgKHZpZXcpID0+IHtcclxuICAgICAgYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUodmlldy50eXBlKS5mb3JFYWNoKChsZWFmKSA9PiB7XHJcbiAgICAgICAgbGVhZi5kZXRhY2goKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnZpc2l0ZWQuZm9yRWFjaCgodmlzaXQpID0+IHZpc2l0WzFdLnJlbW92ZSgpKTtcclxuICAgIGlmICh0aGlzLmJjU3RvcmUpIHtcclxuICAgICAgY29uc3QganVnZ2xQbHVnaW4gPSBnZXRQbHVnaW4oYXBwKTtcclxuICAgICAgaWYgKGp1Z2dsUGx1Z2luKSB7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIGp1Z2dsUGx1Z2luLnJlbW92ZVN0b3JlKHRoaXMuYmNTdG9yZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwgImltcG9ydCB7IHBhcnNlRnJvbnRNYXR0ZXJUYWdzLCBwYXJzZUZyb250TWF0dGVyU3RyaW5nQXJyYXkgfSBmcm9tICdvYnNpZGlhbic7XG5cbmNvbnN0IENBVF9EQU5HTElORyA9ICdkYW5nbGluZyc7XG5jb25zdCBDT1JFX1NUT1JFX0lEID0gJ2NvcmUnO1xuY2xhc3MgVml6SWQge1xuICAgIGNvbnN0cnVjdG9yKGlkLCBzdG9yZUlkKSB7XG4gICAgICAgIHRoaXMuaWQgPSBpZDtcbiAgICAgICAgdGhpcy5zdG9yZUlkID0gc3RvcmVJZDtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLnN0b3JlSWR9OiR7dGhpcy5pZH1gO1xuICAgIH1cbiAgICB0b0lkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50b1N0cmluZygpO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbUlkKGlkKSB7XG4gICAgICAgIGNvbnN0IHNwbGl0ID0gaWQuc3BsaXQoJzonKTtcbiAgICAgICAgY29uc3Qgc3RvcmVJZCA9IHNwbGl0WzBdO1xuICAgICAgICBjb25zdCBfaWQgPSBzcGxpdC5zbGljZSgxKS5qb2luKCc6Jyk7XG4gICAgICAgIHJldHVybiBuZXcgVml6SWQoX2lkLCBzdG9yZUlkKTtcbiAgICB9XG4gICAgc3RhdGljIGZyb21Ob2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIFZpeklkLmZyb21JZChub2RlLmlkKCkpO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbU5vZGVzKG5vZGVzKSB7XG4gICAgICAgIHJldHVybiBub2Rlcy5tYXAoKG4pID0+IFZpeklkLmZyb21Ob2RlKG4pKTtcbiAgICB9XG4gICAgc3RhdGljIGZyb21GaWxlKGZpbGUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBWaXpJZChmaWxlLm5hbWUsICdjb3JlJyk7XG4gICAgfVxuICAgIHN0YXRpYyB0b0lkKGlkLCBzdG9yZUlkKSB7XG4gICAgICAgIHJldHVybiBuZXcgVml6SWQoaWQsIHN0b3JlSWQpLnRvSWQoKTtcbiAgICB9XG59XG5jb25zdCBfcGFyc2VUYWdzID0gZnVuY3Rpb24gKHRhZ3MpIHtcbiAgICByZXR1cm4gW10uY29uY2F0KC4uLnRhZ3NcbiAgICAgICAgLm1hcCgodGFnKSA9PiB7XG4gICAgICAgIHRhZyA9IHRhZy5zbGljZSgxKTtcbiAgICAgICAgY29uc3QgaFNwbGl0ID0gdGFnLnNwbGl0KCcvJyk7XG4gICAgICAgIGNvbnN0IHRhZ3MgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBpIGluIGhTcGxpdCkge1xuICAgICAgICAgICAgY29uc3QgaFRhZyA9IGhTcGxpdC5zbGljZSgwLCBwYXJzZUludChpKSArIDEpLmpvaW4oJy0nKTtcbiAgICAgICAgICAgIHRhZ3MucHVzaChgdGFnLSR7aFRhZ31gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFncztcbiAgICB9KSk7XG59O1xuY29uc3QgZ2V0Q2xhc3NlcyA9IGZ1bmN0aW9uIChmaWxlLCBtZXRhZGF0YUNhY2hlKSB7XG4gICAgaWYgKGZpbGUpIHtcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IFtdO1xuICAgICAgICBpZiAoWydwbmcnLCAnanBnJywgJ2pwZWcnLCAnZ2lmJywgJ2JtcCcsICdzdmcnLCAndGlmZiddLmNvbnRhaW5zKGZpbGUuZXh0ZW5zaW9uKSkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdpbWFnZScpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKFsnbXAzJywgJ3dlYm0nLCAnd2F2JywgJ200YScsICdvZ2cnLCAnM2dwJywgJ2ZsYWMnXS5jb250YWlucyhmaWxlLmV4dGVuc2lvbikpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnYXVkaW8nKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChbJ21wNCcsICd3ZWJtJywgJ29ndiddLmNvbnRhaW5zKGZpbGUuZXh0ZW5zaW9uKSkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCd2aWRlbycpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGZpbGUuZXh0ZW5zaW9uID09PSAncGRmJykge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdwZGYnKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUaGlzIGlzIHJlcGxhY2VkIGJ5IHRoZSAncGF0aCcgZGF0YSBhdHRyaWJ1dGUuXG4gICAgICAgIC8vIGlmICghKGZpbGUucGFyZW50Lm5hbWUgPT09ICcvJyB8fCBmaWxlLnBhcmVudC5uYW1lID09PSAnJykpIHtcbiAgICAgICAgLy8gICBjbGFzc2VzLnB1c2goYGZvbGRlci0ke2ZpbGUucGFyZW50Lm5hbWVcbiAgICAgICAgLy8gICAgICAgLnJlcGxhY2UoJyAnLCAnXycpfWApO1xuICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAvLyAgIGNsYXNzZXMucHVzaCgncm9vdCcpO1xuICAgICAgICAvLyB9XG4gICAgICAgIGlmIChmaWxlLmV4dGVuc2lvbiA9PT0gJ21kJykge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdub3RlJyk7XG4gICAgICAgICAgICBjb25zdCBjYWNoZSA9IG1ldGFkYXRhQ2FjaGUuZ2V0RmlsZUNhY2hlKGZpbGUpO1xuICAgICAgICAgICAgaWYgKGNhY2hlPy5mcm9udG1hdHRlcikge1xuICAgICAgICAgICAgICAgIGlmICgnaW1hZ2UnIGluIGNhY2hlLmZyb250bWF0dGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnaW1hZ2UnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCd0YWdzJyBpbiBjYWNoZS5mcm9udG1hdHRlcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YWdzID0gcGFyc2VGcm9udE1hdHRlclRhZ3MoY2FjaGUuZnJvbnRtYXR0ZXIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGFncykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKC4uLl9wYXJzZVRhZ3ModGFncykpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgnY3NzY2xhc3MnIGluIGNhY2hlLmZyb250bWF0dGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsYXp6ZXMgPSBwYXJzZUZyb250TWF0dGVyU3RyaW5nQXJyYXkoY2FjaGUuZnJvbnRtYXR0ZXIsICdjc3NjbGFzcycpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2xhenplcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKC4uLmNsYXp6ZXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNhY2hlPy50YWdzKSB7XG4gICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKC4uLl9wYXJzZVRhZ3MoY2FjaGUudGFncy5tYXAoKHQpID0+IHQudGFnKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdmaWxlJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNsYXNzZXM7XG4gICAgfVxuICAgIHJldHVybiBbQ0FUX0RBTkdMSU5HXTtcbn07XG5jb25zdCBub2RlRnJvbUZpbGUgPSBhc3luYyBmdW5jdGlvbiAoZmlsZSwgcGx1Z2luLCBzZXR0aW5ncywgaWQpIHtcbiAgICBpZiAoIWlkKSB7XG4gICAgICAgIGlkID0gVml6SWQudG9JZChmaWxlLm5hbWUsIENPUkVfU1RPUkVfSUQpO1xuICAgIH1cbiAgICBjb25zdCBjYWNoZSA9IHBsdWdpbi5hcHAubWV0YWRhdGFDYWNoZS5nZXRGaWxlQ2FjaGUoZmlsZSk7XG4gICAgY29uc3QgbmFtZSA9IGZpbGUuZXh0ZW5zaW9uID09PSAnbWQnID8gZmlsZS5iYXNlbmFtZSA6IGZpbGUubmFtZTtcbiAgICBjb25zdCBjbGFzc2VzID0gZ2V0Q2xhc3NlcyhmaWxlLCBwbHVnaW4uYXBwLm1ldGFkYXRhQ2FjaGUpLmpvaW4oJyAnKTtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICBpZCxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcGF0aDogZmlsZS5wYXRoLFxuICAgIH07XG4gICAgaWYgKFsncG5nJywgJ2pwZycsICdqcGVnJywgJ2dpZicsICdibXAnLCAnc3ZnJywgJ3RpZmYnXS5jb250YWlucyhmaWxlLmV4dGVuc2lvbikpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGRhdGFbJ3Jlc291cmNlX3VybCddID0gYGh0dHA6Ly9sb2NhbGhvc3Q6JHtwbHVnaW4uc2V0dGluZ3MuaW1nU2VydmVyUG9ydH0vJHtlbmNvZGVVUkkoZmlsZS5wYXRoKX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIHsgfVxuICAgIH1cbiAgICBpZiAoc2V0dGluZ3MucmVhZENvbnRlbnQgJiYgZmlsZS5leHRlbnNpb24gPT0gJ21kJykge1xuICAgICAgICBkYXRhWydjb250ZW50J10gPSBhd2FpdCBwbHVnaW4uYXBwLnZhdWx0LmNhY2hlZFJlYWQoZmlsZSk7XG4gICAgfVxuICAgIGNvbnN0IGZyb250bWF0dGVyID0gY2FjaGU/LmZyb250bWF0dGVyO1xuICAgIGlmIChmcm9udG1hdHRlcikge1xuICAgICAgICBPYmplY3Qua2V5cyhmcm9udG1hdHRlcikuZm9yRWFjaCgoaykgPT4ge1xuICAgICAgICAgICAgaWYgKCEoayA9PT0gJ3Bvc2l0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBpZiAoayA9PT0gJ2ltYWdlJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWFnZUZpZWxkID0gZnJvbnRtYXR0ZXJba107XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB1cmwuIHRocm93cyBlcnJvciBvdGhlcndpc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVUkwoaW1hZ2VGaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2tdID0gaW1hZ2VGaWVsZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2tdID0gYGh0dHA6Ly9sb2NhbGhvc3Q6JHtwbHVnaW4uc2V0dGluZ3MuaW1nU2VydmVyUG9ydH0vJHtlbmNvZGVVUkkoaW1hZ2VGaWVsZCl9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIHsgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkYXRhW2tdID0gZnJvbnRtYXR0ZXJba107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZ3JvdXA6ICdub2RlcycsXG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGNsYXNzZXM6IGNsYXNzZXMsXG4gICAgfTtcbn07XG5jb25zdCBub2RlRGFuZ2xpbmcgPSBmdW5jdGlvbiAocGF0aCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIGdyb3VwOiAnbm9kZXMnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBpZDogVml6SWQudG9JZChwYXRoLCBDT1JFX1NUT1JFX0lEKSxcbiAgICAgICAgICAgIG5hbWU6IHBhdGgsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzZXM6ICdkYW5nbGluZycsXG4gICAgfTtcbn07XG5jb25zdCB3aWtpbGlua1JlZ2V4ID0gJ1xcXFxbXFxcXFsoW15cXFxcXVxcXFxyXFxcXG5dKz8pXFxcXF1cXFxcXSc7XG5jb25zdCBuYW1lUmVnZXggPSAnW15cXFxcV1xcXFxkXVxcXFx3Kic7XG5jb25zdCByZWdleEVzY2FwZSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1stXFwvXFxcXF4kKis/LigpfFtcXF17fV0vZywgJ1xcXFwkJicpO1xufTtcbmNvbnN0IHBhcnNlVHlwZWRMaW5rID0gZnVuY3Rpb24gKGxpbmssIGxpbmUsIHR5cGVkTGlua1ByZWZpeCkge1xuICAgIC8vIFRPRE86IFRoaXMgaXMgc29tZXRoaW5nIHNwZWNpZmljIEkgdXNlLCBidXQgc2hvdWxkbid0IGtlZXAgYmVpbmcgaW4gdGhpcyByZXBvLlxuICAgIGNvbnN0IHJlZ2V4UHVibGlzaGVkSW4gPSBuZXcgUmVnRXhwKGBeJHtyZWdleEVzY2FwZSh0eXBlZExpbmtQcmVmaXgpfSAocHVibGlzaGVkSW4pIChcXFxcZFxcXFxkXFxcXGRcXFxcZCkgKCR7d2lraWxpbmtSZWdleH0sPyAqKSskYCk7XG4gICAgY29uc3QgbWF0Y2hQSSA9IHJlZ2V4UHVibGlzaGVkSW4uZXhlYyhsaW5lKTtcbiAgICBpZiAoIShtYXRjaFBJID09PSBudWxsKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2xhc3M6ICd0eXBlLXB1Ymxpc2hlZEluJyxcbiAgICAgICAgICAgIGlzSW5saW5lOiBmYWxzZSxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICB5ZWFyOiBtYXRjaFBJWzJdLFxuICAgICAgICAgICAgICAgIGNvbnRleHQ6ICcnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdwdWJsaXNoZWRJbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvLyBJbnR1aXRpb246IFN0YXJ0IHdpdGggdGhlIHR5cGVkIGxpbmsgcHJlZml4LiBUaGVuIGEgbmVvNGogbmFtZSAobmFtZVJlZ2V4KS5cbiAgICAvLyBUaGVuIG9uZSBvciBtb3JlIG9mIHRoZSB3aWtpbGluayBncm91cDogd2lraWxpbmsgcmVnZXggc2VwYXJhdGVkIGJ5IG9wdGlvbmFsIGNvbW1hIGFuZCBtdWx0aXBsZSBzcGFjZXNcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYF4ke3JlZ2V4RXNjYXBlKHR5cGVkTGlua1ByZWZpeCl9ICgke25hbWVSZWdleH0pICgke3dpa2lsaW5rUmVnZXh9LD8gKikrJGApO1xuICAgIGNvbnN0IG1hdGNoID0gcmVnZXguZXhlYyhsaW5lKTtcbiAgICBjb25zdCBzcGxpdExpbmsgPSBsaW5rLm9yaWdpbmFsLnNwbGl0KCd8Jyk7XG4gICAgbGV0IGFsaWFzID0gbnVsbDtcbiAgICBpZiAoc3BsaXRMaW5rLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgYWxpYXMgPSBzcGxpdExpbmsuc2xpY2UoMSkuam9pbigpLnNsaWNlKDAsIC0yKTtcbiAgICB9XG4gICAgaWYgKCEobWF0Y2ggPT09IG51bGwpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjbGFzczogYHR5cGUtJHttYXRjaFsxXX1gLFxuICAgICAgICAgICAgaXNJbmxpbmU6IGZhbHNlLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGFsaWFzOiBhbGlhcyxcbiAgICAgICAgICAgICAgICBjb250ZXh0OiAnJyxcbiAgICAgICAgICAgICAgICB0eXBlOiBtYXRjaFsxXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcbmNvbnN0IHBhcnNlUmVmQ2FjaGUgPSBmdW5jdGlvbiAocmVmLCBjb250ZW50LCBpZCwgc291cmNlLCB0YXJnZXQsIHR5cGVkTGlua1ByZWZpeCkge1xuICAgIGNvbnN0IGxpbmUgPSBjb250ZW50W3JlZi5wb3NpdGlvbi5zdGFydC5saW5lXTtcbiAgICBsZXQgZGF0YSA9IHtcbiAgICAgICAgaWQ6IGlkLFxuICAgICAgICBzb3VyY2U6IHNvdXJjZSxcbiAgICAgICAgdGFyZ2V0OiB0YXJnZXQsXG4gICAgICAgIGNvbnRleHQ6IGxpbmUsXG4gICAgICAgIGVkZ2VDb3VudDogMSxcbiAgICB9O1xuICAgIGNvbnN0IHNwbGl0TGluayA9IHJlZi5vcmlnaW5hbC5zcGxpdCgnfCcpO1xuICAgIGlmIChzcGxpdExpbmsubGVuZ3RoID4gMSkge1xuICAgICAgICBkYXRhWydhbGlhcyddID0gc3BsaXRMaW5rLnNsaWNlKDEpLmpvaW4oKS5zbGljZSgwLCAtMik7XG4gICAgfVxuICAgIGxldCBjbGFzc2VzID0gJyc7XG4gICAgY29uc3QgdHlwZWRMaW5rID0gcGFyc2VUeXBlZExpbmsocmVmLCBsaW5lLCB0eXBlZExpbmtQcmVmaXgpO1xuICAgIGlmICh0eXBlZExpbmsgPT09IG51bGwpIHtcbiAgICAgICAgY2xhc3NlcyA9IGAke2NsYXNzZXN9IGlubGluZWA7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBkYXRhID0geyAuLi50eXBlZExpbmsucHJvcGVydGllcywgLi4uZGF0YSB9O1xuICAgICAgICBjbGFzc2VzID0gYCR7Y2xhc3Nlc30gJHt0eXBlZExpbmsuY2xhc3N9YDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZ3JvdXA6ICdlZGdlcycsXG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGNsYXNzZXM6IGNsYXNzZXMsXG4gICAgfTtcbn07XG5cbmNvbnN0IGdldFBsdWdpbiA9IGZ1bmN0aW9uIChhcHApIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaWYgKCdqdWdnbCcgaW4gYXBwLnBsdWdpbnMucGx1Z2lucykge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJldHVybiBhcHAucGx1Z2lucy5wbHVnaW5zWydqdWdnbCddO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCB7IFZpeklkLCBnZXRDbGFzc2VzLCBnZXRQbHVnaW4sIG5vZGVEYW5nbGluZywgbm9kZUZyb21GaWxlLCBwYXJzZVJlZkNhY2hlLCBwYXJzZVR5cGVkTGluayB9O1xuIiwgIi8qKlxyXG4gKiBUaGlzIG1vZHVsZSBjb250YWlucyB2YXJpb3VzIHV0aWxpdHkgZnVuY3Rpb25zIGNvbW1vbmx5IHVzZWQgaW4gT2JzaWRpYW4gcGx1Z2lucy5cclxuICogQG1vZHVsZSBvYnNpZGlhbi1jb21tdW5pdHktbGliXHJcbiAqL1xyXG5pbXBvcnQgKiBhcyBmZWF0aGVyIGZyb20gXCJmZWF0aGVyLWljb25zXCI7XHJcbmltcG9ydCB7IGFkZEljb24sIE1hcmtkb3duUmVuZGVyZXIsIE1hcmtkb3duVmlldywgTW9kYWwsIG5vcm1hbGl6ZVBhdGgsIE5vdGljZSwgcmVxdWVzdCwgVEZpbGUsIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbi8qKlxyXG4gKiBZb3UgY2FuIGF3YWl0IHRoaXMgRnVuY3Rpb24gdG8gZGVsYXkgZXhlY3V0aW9uXHJcbiAqXHJcbiAqIEBwYXJhbSBkZWxheSBUaGUgZGVsYXkgaW4gbXNcclxuICovXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3YWl0KGRlbGF5KSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXkpKTtcclxufVxyXG4vKipcclxuICogQWRkcyBhbGwgb2ZmaWNpYWwgRmVhdGhlciBJY29ucyB0byBPYnNpZGlhbi5cclxuICogaHR0cHM6Ly9mZWF0aGVyaWNvbnMuY29tL1xyXG4gKlxyXG4gKiBAcGFyYW0gYXR0ciBTVkcgQXR0cmlidXRlcyBmb3IgdGhlIEljb24uIFRoZSBkZWZhdWx0IHNob3VsZCB3b3JrIGZvciBtb3N0IHVzZWNhc2VzLlxyXG4gKlxyXG4gKiBAZGVwcmVjYXRlZCBBcyBvZiBPYnNpZGlhbiAwLjEzLjI3IHRoaXMgaXMgbm8gbG9uZ2VyIG5lZWRlZCwgYmVjYXVzZSBPYnNpZGlhbiBzaGlwcyB3aXRoIGBsdWNpZGVgLCBhIG1haW50YWluZWQgZm9yayBvZiBmZWF0aGVyLiAoaHR0cHM6Ly9sdWNpZGUuZGV2LylcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRBbGxGZWF0aGVySWNvbnMoYXR0ciA9IHsgdmlld0JveDogXCIwIDAgMjQgMjRcIiwgd2lkdGg6IFwiMTAwXCIsIGhlaWdodDogXCIxMDBcIiB9KSB7XHJcbiAgICBPYmplY3QudmFsdWVzKGZlYXRoZXIuaWNvbnMpLmZvckVhY2goKGkpID0+IHtcclxuICAgICAgICBjb25zdCBzdmcgPSBpLnRvU3ZnKGF0dHIpO1xyXG4gICAgICAgIGFkZEljb24oYGZlYXRoZXItJHtpLm5hbWV9YCwgc3ZnKTtcclxuICAgIH0pO1xyXG59XHJcbi8qKlxyXG4gKiBBZGRzIGEgc3BlY2lmaWMgRmVhdGhlciBJY29uIHRvIE9ic2lkaWFuLlxyXG4gKlxyXG4gKiBAcGFyYW0gbmFtZSBvZmZpY2lhbCBOYW1lIG9mIHRoZSBJY29uIChodHRwczovL2ZlYXRoZXJpY29ucy5jb20vKVxyXG4gKiBAcGFyYW0gYXR0ciBTVkcgQXR0cmlidXRlcyBmb3IgdGhlIEljb24uIFRoZSBkZWZhdWx0IHNob3VsZCB3b3JrIGZvciBtb3N0IHVzZWNhc2VzLlxyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBJY29uIG5hbWVcclxuICpcclxuICogQGRlcHJlY2F0ZWQgQXMgb2YgT2JzaWRpYW4gMC4xMy4yNyB0aGlzIGlzIG5vIGxvbmdlciBuZWVkZWQsIGJlY2F1c2UgT2JzaWRpYW4gc2hpcHMgd2l0aCBgbHVjaWRlYCwgYSBtYWludGFpbmVkIGZvcmsgb2YgZmVhdGhlci4gKGh0dHBzOi8vbHVjaWRlLmRldi8pXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYWRkRmVhdGhlckljb24obmFtZSwgYXR0ciA9IHsgdmlld0JveDogXCIwIDAgMjQgMjRcIiwgd2lkdGg6IFwiMTAwXCIsIGhlaWdodDogXCIxMDBcIiB9KSB7XHJcbiAgICBpZiAoZmVhdGhlci5pY29uc1tuYW1lXSkge1xyXG4gICAgICAgIGNvbnN0IGljb25OYW1lID0gYGZlYXRoZXItJHtuYW1lfWA7XHJcbiAgICAgICAgYWRkSWNvbihpY29uTmFtZSwgZmVhdGhlci5pY29uc1tuYW1lXS50b1N2ZyhhdHRyKSk7XHJcbiAgICAgICAgcmV0dXJuIGljb25OYW1lO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgdGhyb3cgRXJyb3IoYFRoaXMgSWNvbiAoJHtuYW1lfSkgZG9lc24ndCBleGlzdCBpbiB0aGUgRmVhdGhlciBMaWJyYXJ5LmApO1xyXG4gICAgfVxyXG59XHJcbi8qKlxyXG4gKiBDb252ZXJ0IGEgYmFzZTY0IFN0cmluZyB0byBhbiBBcnJheUJ1ZmZlci5cclxuICogWW91IGNhbiB0aGVuIHVzZSB0aGUgQXJyYXlCdWZmZXIgdG8gc2F2ZSB0aGUgYXNzZXQgdG8gZGlzay5cclxuICpcclxuICogQHBhcmFtIGJhc2U2NCBiYXNlNjQgc3RyaW5nIHRvIGJlIGNvbnZlcnRlZC5cclxuICogQHJldHVybnMgQXJyYXlCdWZmZXJcclxuICogQGRlcHJlY2F0ZWQgT2JzaWRpYW4gb2ZmZXJzIGl0J3Mgb3duIG1ldGhvZCBhcyBvZiAwLjE0LjVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBiYXNlNjRUb0FycmF5QnVmZmVyKGJhc2U2NCkge1xyXG4gICAgY29uc3QgYmluYXJ5X3N0cmluZyA9IHdpbmRvdy5hdG9iKGJhc2U2NCk7XHJcbiAgICBjb25zdCBsZW4gPSBiaW5hcnlfc3RyaW5nLmxlbmd0aDtcclxuICAgIGxldCBieXRlcyA9IG5ldyBVaW50OEFycmF5KGxlbik7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgYnl0ZXNbaV0gPSBiaW5hcnlfc3RyaW5nLmNoYXJDb2RlQXQoaSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYnl0ZXMuYnVmZmVyO1xyXG59XHJcbi8qKlxyXG4gKiBUaGlzIGlzIGEgaGVscGVyIG1ldGhvZCBmb3IgYW4gdW5kb2N1bWVudGVkIEFQSSBvZiBPYnNpZGlhbi5cclxuICpcclxuICogQHBhcmFtIGZpbGVOYW1lIFRoZSBGaWxlbmFtZSBmb3IgeW91ciBBdHRhY2htZW50XHJcbiAqIEBwYXJhbSBmb3JtYXQgVGhlIEZpbGVmb3JtYXQgb2YgeW91ciBBdHRhY2htZW50XHJcbiAqIEBwYXJhbSBzb3VyY2VGaWxlIFRoZSBTb3VyY2VmaWxlIGZyb20gd2hlcmUgdGhlIEF0dGFjaG1lbnQgZ2V0cyBhZGRlZCwgdGhpcyBpcyBuZWVkZWQgYmVjYXVzZSB0aGUgQXR0YWNobWVudCBGb2xkZXIgbWlnaHQgYmUgZGlmZmVyZW50IGJhc2VkIG9uIHdoZXJlIGl0IGdldHMgaW5zZXJ0ZWQuXHJcbiAqIEByZXR1cm5zIFRoZSBBdHRhY2htZW50IFBhdGhcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHMoZmlsZU5hbWUsIGZvcm1hdCwgc291cmNlRmlsZSkge1xyXG4gICAgLy9AdHMtZXhwZWN0LWVycm9yXHJcbiAgICByZXR1cm4gYXBwLnZhdWx0LmdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50cyhmaWxlTmFtZSwgZm9ybWF0LCBzb3VyY2VGaWxlKTtcclxufVxyXG4vKipcclxuICogQ29weSBgY29udGVudGAgdG8gdGhlIHVzZXJzIGNsaXBib2FyZC5cclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRlbnQgVGhlIGNvbnRlbnQgdG8gYmUgY29waWVkIHRvIGNsaXBib2FyZC5cclxuICogQHBhcmFtIHsoKSA9PiBhbnl9IHN1Y2Nlc3MgVGhlIGNhbGxiYWNrIHRvIHJ1biB3aGVuIHRleHQgaXMgc3VjY2Vzc2Z1bGx5IGNvcGllZC4gRGVmYXVsdCB0aHJvd3MgYSBuZXcgYE5vdGljZWBcclxuICogQHBhcmFtIHsocmVhc29uPykgPT4gYW55fSBmYWlsdXJlIFRoZSBjYWxsYmFjayB0byBydW4gd2hlbiB0ZXh0IHdhcyBub3QgYWJsZSB0byBiZSBjb3BpZWQuIERlZmF1bHQgdGhyb3dzIGEgbmV3IGBOb3RpY2VgLCBhbmQgY29uc29sZSBsb2dzIHRoZSBlcnJvci5gXHJcbiAqL1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29weShjb250ZW50LCBzdWNjZXNzID0gKCkgPT4gbmV3IE5vdGljZShcIkNvcGllZCB0byBjbGlwYm9hcmRcIiksIGZhaWx1cmUgPSAocmVhc29uKSA9PiB7XHJcbiAgICBuZXcgTm90aWNlKFwiQ291bGQgbm90IGNvcHkgdG8gY2xpcGJvYXJkXCIpO1xyXG4gICAgY29uc29sZS5sb2coeyByZWFzb24gfSk7XHJcbn0pIHtcclxuICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGNvbnRlbnQpLnRoZW4oc3VjY2VzcywgZmFpbHVyZSk7XHJcbn1cclxuLyoqXHJcbiAqIEdpdmVuIGFuIGVkaXRvciwgY2hlY2sgaWYgc29tZXRoaW5nIGlzIHNlbGVjdGVkIGFuZCByZXR1cm4gdGhhdCBzZWxlY3Rpb24sIG90aGVyd2lzZSByZXR1cm4gdGhlIGVudGlyZSBjb250ZW50IG9mIHRoZSBlZGl0b3JcclxuICogQHBhcmFtICB7RWRpdG9yfSBlZGl0b3JcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3Rpb25Gcm9tRWRpdG9yKGVkaXRvcikge1xyXG4gICAgaWYgKGVkaXRvci5zb21ldGhpbmdTZWxlY3RlZCgpKVxyXG4gICAgICAgIHJldHVybiBlZGl0b3IuZ2V0U2VsZWN0aW9uKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgICAgcmV0dXJuIGVkaXRvci5nZXRWYWx1ZSgpO1xyXG59XHJcbi8qKlxyXG4gKiBDaGVjayBpZiBzb21ldGhpbmcgaXMgc2VsZWN0ZWQgaW4gdGhlIGN1cnJlbnQgZmlsZSBhbmQgcmV0dXJuIHRoYXQgc2VsZWN0aW9uLCBvdGhlcndpc2UgcmV0dXJuIHRoZSBlbnRpcmUgY29udGVudCBvZiB0aGUgY3VycmVudCBmaWxlLlxyXG4gKiBAcGFyYW0gIHtib29sZWFufSBbY2FjaGVkPXRydWVdIFVzZSBgY2FjaGVkUmVhZGAgb3IgYHJlYWRgLiBgY2FjaGVkUmVhZGAgYnkgZGVmYXVsdC5cclxuICogQHJldHVybnMge3N0cmluZyB8IG51bGx9IGBudWxsYCBpZiBub3QgZm9jdXNzZWQgb24gYSBtYXJrZG93biBmaWxlXHJcbiAqL1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0U2VsZWN0aW9uRnJvbUN1cnJGaWxlKGNhY2hlZCA9IHRydWUpIHtcclxuICAgIHZhciBfYTtcclxuICAgIGNvbnN0IHRleHQgPSAoX2EgPSB3aW5kb3cgPT09IG51bGwgfHwgd2luZG93ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1N0cmluZygpO1xyXG4gICAgaWYgKHRleHQpXHJcbiAgICAgICAgcmV0dXJuIHRleHQ7XHJcbiAgICBlbHNlXHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IGdldEFjdGl2ZUZpbGVDb250ZW50KGNhY2hlZCk7XHJcbn1cclxuLyoqXHJcbiAqIENoZWNrIGlmIGBub3RlTmFtZWAgaXMgdGhlIG5hbWUgb2YgYSBub3RlIHRoYXQgZXhpc3RzIGluIHRoZSB2YXVsdC5cclxuICogQHBhcmFtICB7c3RyaW5nfSBub3RlTmFtZSBCYXNlbmFtZSBvZiB0aGUgbm90ZSB0byBzZWFyY2ggZm9yLlxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IFtzb3VyY2VQYXRoPVwiXCJdIE9wdGlvbmFsIGZpbGUgcGF0aCB0byBzdGFydCBzZWFyY2hpbmcgZnJvbS4gRGVmYXVsdCBpcyB0aGUgY3VycmVudCBmaWxlLlxyXG4gKiBAcmV0dXJucyBib29sZWFuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgaXNJblZhdWx0ID0gKG5vdGVOYW1lLCBzb3VyY2VQYXRoID0gXCJcIikgPT4gISFhcHAubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChub3RlTmFtZSwgc291cmNlUGF0aCk7XHJcbi8qKlxyXG4gKiBXaGVuIGhvdmVyaW5nIGEgbGluayBnb2luZyB0byBgdG9gLCBzaG93IHRoZSBPYnNpZGlhbiBob3Zlci1wcmV2aWV3IG9mIHRoYXQgbm90ZS5cclxuICpcclxuICogWW91IHByb2JhYmx5IGhhdmUgdG8gaG9sZCBkb3duIGBDdHJsYCB3aGVuIGhvdmVyaW5nIHRoZSBsaW5rIGZvciB0aGUgcHJldmlldyB0byBhcHBlYXIhXHJcbiAqIEBwYXJhbSAge01vdXNlRXZlbnR9IGV2ZW50XHJcbiAqIEBwYXJhbSAge1lvdXJWaWV3fSB2aWV3IFRoZSB2aWV3IHdpdGggdGhlIGxpbmsgYmVpbmcgaG92ZXJlZFxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IHRvIFRoZSBiYXNlbmFtZSBvZiB0aGUgbm90ZSB0byBwcmV2aWV3LlxyXG4gKiBAdGVtcGxhdGUgWW91clZpZXcgVGhlIFZpZXdUeXBlIG9mIHlvdXIgdmlld1xyXG4gKiBAcmV0dXJucyB2b2lkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaG92ZXJQcmV2aWV3KGV2ZW50LCB2aWV3LCB0bykge1xyXG4gICAgY29uc3QgdGFyZ2V0RWwgPSBldmVudC50YXJnZXQ7XHJcbiAgICBhcHAud29ya3NwYWNlLnRyaWdnZXIoXCJob3Zlci1saW5rXCIsIHtcclxuICAgICAgICBldmVudCxcclxuICAgICAgICBzb3VyY2U6IHZpZXcuZ2V0Vmlld1R5cGUoKSxcclxuICAgICAgICBob3ZlclBhcmVudDogdmlldyxcclxuICAgICAgICB0YXJnZXRFbCxcclxuICAgICAgICBsaW5rdGV4dDogdG8sXHJcbiAgICB9KTtcclxufVxyXG4vKipcclxuICogQ3JlYXRlIGEgbmV3IG1hcmtkb3duIG5vdGUgbmFtZWQgYG5ld05hbWVgIGluIHRoZSB1c2VyJ3MgcHJlZmZlcmVkIG5ldy1ub3RlLWZvbGRlci5cclxuICogQHBhcmFtICB7c3RyaW5nfSBuZXdOYW1lIE5hbWUgb2YgbmV3IG5vdGUgKHdpdGggb3Igd2l0aG91dCAnLm1kJylcclxuICogQHBhcmFtICB7c3RyaW5nfSBbY3VyckZpbGVQYXRoPVwiXCJdIEZpbGUgcGF0aCBvZiB0aGUgY3VycmVudCBub3RlLiBVc2UgYW4gZW1wdHkgc3RyaW5nIGlmIHRoZXJlIGlzIG5vIGFjdGl2ZSBmaWxlLlxyXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxURmlsZT59IG5ldyBURmlsZVxyXG4gKi9cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU5ld01ETm90ZShuZXdOYW1lLCBjdXJyRmlsZVBhdGggPSBcIlwiKSB7XHJcbiAgICBjb25zdCBuZXdGaWxlRm9sZGVyID0gYXBwLmZpbGVNYW5hZ2VyLmdldE5ld0ZpbGVQYXJlbnQoY3VyckZpbGVQYXRoKS5wYXRoO1xyXG4gICAgY29uc3QgbmV3RmlsZVBhdGggPSBub3JtYWxpemVQYXRoKGAke25ld0ZpbGVGb2xkZXJ9JHtuZXdGaWxlRm9sZGVyID09PSBcIi9cIiA/IFwiXCIgOiBcIi9cIn0ke2FkZE1EKG5ld05hbWUpfWApO1xyXG4gICAgcmV0dXJuIGF3YWl0IGFwcC52YXVsdC5jcmVhdGUobmV3RmlsZVBhdGgsIFwiXCIpO1xyXG59XHJcbi8qKlxyXG4gKiBBZGQgJy5tZCcgdG8gYG5vdGVOYW1lYCBpZiBpdCBpc24ndCBhbHJlYWR5IHRoZXJlLlxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IG5vdGVOYW1lIHdpdGggb3Igd2l0aG91dCAnLm1kJyBvbiB0aGUgZW5kLlxyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBub3RlTmFtZSB3aXRoICcubWQnIG9uIHRoZSBlbmQuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgYWRkTUQgPSAobm90ZU5hbWUpID0+IHtcclxuICAgIHJldHVybiBub3RlTmFtZS5tYXRjaCgvXFwuTUQkfFxcLm1kJC9tKSA/IG5vdGVOYW1lIDogbm90ZU5hbWUgKyBcIi5tZFwiO1xyXG59O1xyXG4vKipcclxuICogU3RyaXAgJy5tZCcgb2ZmIHRoZSBlbmQgb2YgYSBub3RlIG5hbWUgdG8gZ2V0IGl0cyBiYXNlbmFtZS5cclxuICpcclxuICogV29ya3Mgd2l0aCB0aGUgZWRnZWNhc2Ugd2hlcmUgYSBub3RlIGhhcyAnLm1kJyBpbiBpdHMgYmFzZW5hbWU6IGBPYnNpZGlhbi5tZC5tZGAsIGZvciBleGFtcGxlLlxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IG5vdGVOYW1lIHdpdGggb3Igd2l0aG91dCAnLm1kJyBvbiB0aGUgZW5kLlxyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBub3RlTmFtZSB3aXRob3V0ICcubWQnXHJcbiAqL1xyXG5leHBvcnQgY29uc3Qgc3RyaXBNRCA9IChub3RlTmFtZSkgPT4ge1xyXG4gICAgaWYgKG5vdGVOYW1lLm1hdGNoKC9cXC5NRCR8XFwubWQkL20pKSB7XHJcbiAgICAgICAgcmV0dXJuIG5vdGVOYW1lLnNwbGl0KC9cXC5NRCR8XFwubWQkL20pLnNsaWNlKDAsIC0xKS5qb2luKFwiLm1kXCIpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICAgIHJldHVybiBub3RlTmFtZTtcclxufTtcclxuLyoqXHJcbiAqIFdoZW4gY2xpY2tpbmcgYSBsaW5rLCBjaGVjayBpZiB0aGF0IG5vdGUgaXMgYWxyZWFkeSBvcGVuIGluIGFub3RoZXIgbGVhZiwgYW5kIHN3aXRjaCB0byB0aGF0IGxlYWYsIGlmIHNvLiBPdGhlcndpc2UsIG9wZW4gdGhlIG5vdGUgaW4gYSBuZXcgcGFuZS5cclxuICogQHBhcmFtICB7c3RyaW5nfSBkZXN0IE5hbWUgb2Ygbm90ZSB0byBvcGVuLiBJZiB5b3Ugd2FudCB0byBvcGVuIGEgbm9uLW1kIG5vdGUsIGJlIHN1cmUgdG8gYWRkIHRoZSBmaWxlIGV4dGVuc2lvbi5cclxuICogQHBhcmFtICB7TW91c2VFdmVudH0gZXZlbnRcclxuICogQHBhcmFtICB7e2NyZWF0ZU5ld0ZpbGU6Ym9vbGVhbn19IFtvcHRpb25zPXtjcmVhdGVOZXdGaWxlOnRydWV9XSBXaGV0aGVyIG9yIG5vdCB0byBjcmVhdGUgYGRlc3RgIGZpbGUgaWYgaXQgZG9lc24ndCBleGlzdC4gSWYgYGZhbHNlYCwgc2ltcGx5IHJldHVybiBmcm9tIHRoZSBmdW5jdGlvbi5cclxuICogQHJldHVybnMgUHJvbWlzZVxyXG4gKi9cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9wZW5PclN3aXRjaChkZXN0LCBldmVudCwgb3B0aW9ucyA9IHsgY3JlYXRlTmV3RmlsZTogdHJ1ZSB9KSB7XHJcbiAgICBjb25zdCB7IHdvcmtzcGFjZSB9ID0gYXBwO1xyXG4gICAgbGV0IGRlc3RGaWxlID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoZGVzdCwgXCJcIik7XHJcbiAgICAvLyBJZiBkZXN0IGRvZXNuJ3QgZXhpc3QsIG1ha2UgaXRcclxuICAgIGlmICghZGVzdEZpbGUgJiYgb3B0aW9ucy5jcmVhdGVOZXdGaWxlKSB7XHJcbiAgICAgICAgZGVzdEZpbGUgPSBhd2FpdCBjcmVhdGVOZXdNRE5vdGUoZGVzdCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICghZGVzdEZpbGUgJiYgIW9wdGlvbnMuY3JlYXRlTmV3RmlsZSlcclxuICAgICAgICByZXR1cm47XHJcbiAgICAvLyBDaGVjayBpZiBpdCdzIGFscmVhZHkgb3BlblxyXG4gICAgY29uc3QgbGVhdmVzV2l0aERlc3RBbHJlYWR5T3BlbiA9IFtdO1xyXG4gICAgLy8gRm9yIGFsbCBvcGVuIGxlYXZlcywgaWYgdGhlIGxlYXZlJ3MgYmFzZW5hbWUgaXMgZXF1YWwgdG8gdGhlIGxpbmsgZGVzdGluYXRpb24sIHJhdGhlciBhY3RpdmF0ZSB0aGF0IGxlYWYgaW5zdGVhZCBvZiBvcGVuaW5nIGl0IGluIHR3byBwYW5lc1xyXG4gICAgd29ya3NwYWNlLml0ZXJhdGVBbGxMZWF2ZXMoKGxlYWYpID0+IHtcclxuICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgaWYgKGxlYWYudmlldyBpbnN0YW5jZW9mIE1hcmtkb3duVmlldykge1xyXG4gICAgICAgICAgICBjb25zdCBmaWxlID0gKF9hID0gbGVhZi52aWV3KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZmlsZTtcclxuICAgICAgICAgICAgaWYgKGZpbGUgJiYgZmlsZS5iYXNlbmFtZSArIFwiLlwiICsgZmlsZS5leHRlbnNpb24gPT09IGRlc3QpIHtcclxuICAgICAgICAgICAgICAgIGxlYXZlc1dpdGhEZXN0QWxyZWFkeU9wZW4ucHVzaChsZWFmKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLy8gUmF0aGVyIHN3aXRjaCB0byBpdCBpZiBpdCBpcyBvcGVuXHJcbiAgICBpZiAobGVhdmVzV2l0aERlc3RBbHJlYWR5T3Blbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgd29ya3NwYWNlLnNldEFjdGl2ZUxlYWYobGVhdmVzV2l0aERlc3RBbHJlYWR5T3BlblswXSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgY29uc3QgbW9kZSA9IGFwcC52YXVsdC5nZXRDb25maWcoXCJkZWZhdWx0Vmlld01vZGVcIik7XHJcbiAgICAgICAgY29uc3QgbGVhZiA9IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZShcIk1ldGFcIilcclxuICAgICAgICAgICAgPyB3b3Jrc3BhY2Uuc3BsaXRBY3RpdmVMZWFmKClcclxuICAgICAgICAgICAgOiB3b3Jrc3BhY2UuZ2V0VW5waW5uZWRMZWFmKCk7XHJcbiAgICAgICAgLy9AdHMtZXhwZWN0LWVycm9yXHJcbiAgICAgICAgYXdhaXQgbGVhZi5vcGVuRmlsZShkZXN0RmlsZSwgeyBhY3RpdmU6IHRydWUsIG1vZGUgfSk7XHJcbiAgICB9XHJcbn1cclxuLyoqXHJcbiAqIEdpdmVuIGEgbGlzdCBvZiByZXNvbHZlZCBsaW5rcyBmcm9tIGFwcC5tZXRhZGF0YUNhY2hlLCBjaGVjayBpZiBgZnJvbWAgaGFzIGEgbGluayB0byBgdG9gXHJcbiAqIEBwYXJhbSAge1Jlc29sdmVkTGlua3N9IHJlc29sdmVkTGlua3NcclxuICogQHBhcmFtICB7c3RyaW5nfSBmcm9tIE5vdGUgbmFtZSB3aXRoIGxpbmsgbGVhdmluZyAoV2l0aCBvciB3aXRob3V0ICcubWQnKVxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IHRvIE5vdGUgbmFtZSB3aXRoIGxpbmsgYXJyaXZpbmcgKFdpdGggb3Igd2l0aG91dCAnLm1kJylcclxuICogQHBhcmFtIHtib29sZWFufSBbZGlyZWN0ZWQ9dHJ1ZV0gT25seSBjaGVjayBpZiBgZnJvbWAgaGFzIGEgbGluayB0byBgdG9gLiBJZiBub3QgZGlyZWN0ZWQsIGNoZWNrIGluIGJvdGggZGlyZWN0aW9uc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTGlua2VkKHJlc29sdmVkTGlua3MsIGZyb20sIHRvLCBkaXJlY3RlZCA9IHRydWUpIHtcclxuICAgIHZhciBfYSwgX2I7XHJcbiAgICBmcm9tID0gYWRkTUQoZnJvbSk7XHJcbiAgICB0byA9IGFkZE1EKHRvKTtcclxuICAgIGNvbnN0IGZyb21UbyA9IChfYSA9IHJlc29sdmVkTGlua3NbZnJvbV0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5oYXNPd25Qcm9wZXJ0eSh0byk7XHJcbiAgICBpZiAoIWZyb21UbyAmJiAhZGlyZWN0ZWQpIHtcclxuICAgICAgICBjb25zdCB0b0Zyb20gPSAoX2IgPSByZXNvbHZlZExpbmtzW3RvXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmhhc093blByb3BlcnR5KGZyb20pO1xyXG4gICAgICAgIHJldHVybiB0b0Zyb207XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgICAgcmV0dXJuIGZyb21UbztcclxufVxyXG4vKipcclxuICogQ2hlY2sgaWYgdGhlIGxpbmsgYGZyb21gIFx1MjE5MiBgdG9gIGlzIHJlc29sdmVkIG9yIG5vdC5cclxuICogQHBhcmFtICB7c3RyaW5nfSB0b1xyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IGZyb21cclxuICogQHJldHVybnMgYm9vbGVhblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzb2x2ZWQodG8sIGZyb20pIHtcclxuICAgIHZhciBfYTtcclxuICAgIGNvbnN0IHsgcmVzb2x2ZWRMaW5rcyB9ID0gYXBwLm1ldGFkYXRhQ2FjaGU7XHJcbiAgICByZXR1cm4gKChfYSA9IHJlc29sdmVkTGlua3MgPT09IG51bGwgfHwgcmVzb2x2ZWRMaW5rcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzb2x2ZWRMaW5rc1thZGRNRChmcm9tKV0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVthZGRNRCh0byldKSA+IDA7XHJcbn1cclxuLyoqXHJcbiAqIE9wZW4geW91ciB2aWV3IG9uIHRoZSBjaG9zZW4gYHNpZGVgIGlmIGl0IGlzbid0IGFscmVhZHkgb3BlblxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IHZpZXdUeXBlXHJcbiAqIEBwYXJhbSAge0NvbnN0cnVjdG9yPFlvdXJWaWV3Pn0gdmlld0NsYXNzIFRoZSBjbGFzcyBjb25zdHJ1Y3RvciBvZiB5b3VyIHZpZXdcclxuICogQHBhcmFtICB7XCJsZWZ0XCJ8XCJyaWdodFwifSBbc2lkZT1cInJpZ2h0XCJdXHJcbiAqIEByZXR1cm5zIHtQcm9taXNlPFlvdXJWaWV3Pn0gVGhlIG9wZW5lZCB2aWV3XHJcbiAqL1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gb3BlblZpZXcodmlld1R5cGUsIHZpZXdDbGFzcywgc2lkZSA9IFwicmlnaHRcIikge1xyXG4gICAgbGV0IGxlYWYgPSBudWxsO1xyXG4gICAgZm9yIChsZWFmIG9mIGFwcC53b3Jrc3BhY2UuZ2V0TGVhdmVzT2ZUeXBlKHZpZXdUeXBlKSkge1xyXG4gICAgICAgIGlmIChsZWFmLnZpZXcgaW5zdGFuY2VvZiB2aWV3Q2xhc3MpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGxlYWYudmlldztcclxuICAgICAgICB9XHJcbiAgICAgICAgYXdhaXQgbGVhZi5zZXRWaWV3U3RhdGUoeyB0eXBlOiBcImVtcHR5XCIgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBsZWFmID1cclxuICAgICAgICAobGVhZiAhPT0gbnVsbCAmJiBsZWFmICE9PSB2b2lkIDAgPyBsZWFmIDogc2lkZSA9PT0gXCJyaWdodFwiKVxyXG4gICAgICAgICAgICA/IGFwcC53b3Jrc3BhY2UuZ2V0UmlnaHRMZWFmKGZhbHNlKVxyXG4gICAgICAgICAgICA6IGFwcC53b3Jrc3BhY2UuZ2V0TGVmdExlYWYoZmFsc2UpO1xyXG4gICAgYXdhaXQgbGVhZi5zZXRWaWV3U3RhdGUoe1xyXG4gICAgICAgIHR5cGU6IHZpZXdUeXBlLFxyXG4gICAgICAgIGFjdGl2ZTogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGxlYWYudmlldztcclxufVxyXG4vKipcclxuICogQ2hlY2sgd2hpY2ggc2lkZSBvZiB0aGUgd29ya3NwYWNlIHlvdXIgYHZpZXdUeXBlYCBpcyBvbiwgYW5kIHNhdmUgaXQgaW50byBgcGx1Z2luLnNldHRpbmdzW3NldHRpbmdOYW1lXWAuXHJcbiAqXHJcbiAqICoqVGlwKio6IFJ1biB0aGlzIGZ1bmN0aW9uIG9uIGBwbHVnaW4udW5sb2FkYCB0byBzYXZlIHRoZSBsYXN0IHNpZGUgeW91ciB2aWV3IHdhcyBvbiB3aGVuIGNsb3NpbmcsIHRoZW4ge0BsaW5rIG9wZW5WaWV3fSBvbiB0aGUgc2FtZSBzaWRlIGl0IHdhcyBsYXN0LlxyXG4gKiBAcGFyYW0gIHtZb3VyUGx1Z2lufSBwbHVnaW5cclxuICogQHBhcmFtICB7c3RyaW5nfSB2aWV3VHlwZVxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IHNldHRpbmdOYW1lXHJcbiAqIEByZXR1cm5zIHtcImxlZnRcIiB8IFwicmlnaHRcIn0gYHNpZGVgXHJcbiAqL1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2F2ZVZpZXdTaWRlKHBsdWdpbiwgdmlld1R5cGUsIHNldHRpbmdOYW1lKSB7XHJcbiAgICBjb25zdCBsZWFmID0gYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUodmlld1R5cGUpWzBdO1xyXG4gICAgaWYgKCFsZWFmKSB7XHJcbiAgICAgICAgY29uc29sZS5pbmZvKGBPYnNpZGlhbi1Db21tdW5pdHktTGliOiBObyBpbnN0YW5jZSBvZiAnJHt2aWV3VHlwZX0nIG9wZW4sIGNhbm5vdCBzYXZlIHNpZGVgKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvL0B0cy1pZ25vcmVcclxuICAgIGNvbnN0IHNpZGUgPSBsZWFmLmdldFJvb3QoKS5zaWRlO1xyXG4gICAgLy9AdHMtaWdub3JlXHJcbiAgICBwbHVnaW4uc2V0dGluZ3Nbc2V0dGluZ05hbWVdID0gc2lkZTtcclxuICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgcmV0dXJuIHNpZGU7XHJcbn1cclxuLyoqXHJcbiAqIEEgTW9kYWwgdXNlZCBpbiB7QGxpbmsgYWRkUmVuZGVyZWRNYXJrZG93bkJ1dHRvbn0gdG8gZGlzcGxheSByZW5kZXJlZCBtYXJrZG93biBmcm9tIGEgcmF3IHN0cmluZywgb3IgZmV0Y2hlZCBmcm9tIGEgcHJvdmlkZWQgdXJsLlxyXG4gKlxyXG4gKiAhW10oaHR0cHM6Ly9pLmltZ3VyLmNvbS9OTXdNNTBFLnBuZylcclxuICogQHBhcmFtICB7WW91clBsdWdpbn0gcGx1Z2luXHJcbiAqIEBwYXJhbSAge3N0cmluZ30gc291cmNlIFJhdyBtYXJrZG93biBjb250ZW50IG9yIHVybCB0byBmaW5kIHJhdyBtYXJrZG93bi5cclxuICogQHBhcmFtICB7Ym9vbGVhbn0gZmV0Y2ggVHJ1ZSBcdTIxOTIgZmV0Y2ggbWFya2Rvd24gZnJvbSBgc291cmNlYCBhcyB1cmwuIEZhbHNlIFx1MjE5MiBgc291cmNlYCBpcyBhbHJlYWR5IGEgbWFya2Rvd24gc3RyaW5nLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJlbmRlcmVkTWFya2Rvd25Nb2RhbCBleHRlbmRzIE1vZGFsIHtcclxuICAgIGNvbnN0cnVjdG9yKHBsdWdpbiwgc291cmNlLCBmZXRjaCkge1xyXG4gICAgICAgIHN1cGVyKGFwcCk7XHJcbiAgICAgICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XHJcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XHJcbiAgICAgICAgdGhpcy5mZXRjaCA9IGZldGNoO1xyXG4gICAgfVxyXG4gICAgYXN5bmMgb25PcGVuKCkge1xyXG4gICAgICAgIGxldCB7IGNvbnRlbnRFbCwgc291cmNlLCBwbHVnaW4sIGZldGNoIH0gPSB0aGlzO1xyXG4gICAgICAgIGxldCBjb250ZW50ID0gc291cmNlO1xyXG4gICAgICAgIGlmIChmZXRjaCkge1xyXG4gICAgICAgICAgICBjb250ZW50RWwuY3JlYXRlRGl2KHsgdGV4dDogYFdhaXRpbmcgZm9yIGNvbnRlbnQgZnJvbTogJyR7c291cmNlfSdgIH0pO1xyXG4gICAgICAgICAgICBjb250ZW50ID0gYXdhaXQgcmVxdWVzdCh7IHVybDogc291cmNlIH0pO1xyXG4gICAgICAgICAgICBjb250ZW50RWwuZW1wdHkoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbG9nRGl2ID0gY29udGVudEVsLmNyZWF0ZURpdih7IGNsczogXCJPQ0wtUmVuZGVyZWRNYXJrZG93bk1vZGFsXCIgfSk7XHJcbiAgICAgICAgTWFya2Rvd25SZW5kZXJlci5yZW5kZXJNYXJrZG93bihjb250ZW50LCBsb2dEaXYsIFwiXCIsIHBsdWdpbik7XHJcbiAgICB9XHJcbiAgICBvbkNsb3NlKCkge1xyXG4gICAgICAgIHRoaXMuY29udGVudEVsLmVtcHR5KCk7XHJcbiAgICB9XHJcbn1cclxuLyoqXHJcbiAqIEFkZCBhIGJ1dHRvbiB0byBhbiBIVE1MRUxlbWVudCwgd2hpY2gsIHdoZW4gY2xpY2tlZCwgcG9wcyB1cCBhIHtAbGluayBSZW5kZXJlZE1hcmtkb3duTW9kYWx9IHNob3dpbmcgcmVuZGVyZWQgbWFya2Rvd24uXHJcbiAqXHJcbiAqIFVzZSBgZmV0Y2hgIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIG1hcmtkb3duIHN0cmluZyBuZWVkcyB0byBiZSBmZXRjaGVkLCBvciBpZiBpdCBoYXMgYmVlbiBwcm92aWRlZCBhcyBhIHN0cmluZyBhbHJlYWR5LlxyXG4gKlxyXG4gKiAhW10oaHR0cHM6Ly9pLmltZ3VyLmNvbS9IaTRneXl2LnBuZylcclxuICogQHBhcmFtICB7WW91clBsdWdpbn0gcGx1Z2luXHJcbiAqIEBwYXJhbSAge0hUTUxFbGVtZW50fSBjb250YWluZXJFbCBIVE1MRWxlbWVudCB0byBhZGQgdGhlIGJ1dHRvbiB0b1xyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IHNvdXJjZSBSYXcgbWFya2Rvd24gY29udGVudCBvciB1cmwgdG8gZmluZCByYXcgbWFya2Rvd24uXHJcbiAqIEBwYXJhbSAge2Jvb2xlYW59IGZldGNoIFRydWUgXHUyMTkyIGZldGNoIG1hcmtkb3duIGZyb20gYHNvdXJjZWAgYXMgdXJsLiBGYWxzZSBcdTIxOTIgYHNvdXJjZWAgaXMgYWxyZWFkeSBhIG1hcmtkb3duIHN0cmluZy5cclxuICogQHBhcmFtICB7c3RyaW5nfSBkaXNwbGF5VGV4dCBUZXh0IHRvIGRpc3BsYXkgaW4gdGhlIGJ1dHRvbi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRSZW5kZXJlZE1hcmtkb3duQnV0dG9uKHBsdWdpbiwgY29udGFpbmVyRWwsIHNvdXJjZSwgZmV0Y2gsIGRpc3BsYXlUZXh0KSB7XHJcbiAgICBjb250YWluZXJFbC5jcmVhdGVFbChcImJ1dHRvblwiLCB7IHRleHQ6IGRpc3BsYXlUZXh0IH0sIChidXQpID0+IGJ1dC5vbkNsaWNrRXZlbnQoKCkgPT4ge1xyXG4gICAgICAgIG5ldyBSZW5kZXJlZE1hcmtkb3duTW9kYWwocGx1Z2luLCBzb3VyY2UsIGZldGNoKS5vcGVuKCk7XHJcbiAgICB9KSk7XHJcbn1cclxuLyoqXHJcbiAqIENoZWNrIGlmIGBhcHAubWV0YWRhdGFDYWNoZS5SZXNvbHZlZExpbmtzYCBoYXZlIGZ1bGx5IGluaXRhbGlzZWQuXHJcbiAqXHJcbiAqIFVzZWQgd2l0aCB7QGxpbmsgd2FpdEZvclJlc29sdmVkTGlua3N9LlxyXG4gKiBAcGFyYW0gIHtudW1iZXJ9IG5vRmlsZXMgTnVtYmVyIG9mIGZpbGVzIGluIHlvdXIgdmF1bHQuXHJcbiAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVkTGlua3NDb21wbGV0ZShub0ZpbGVzKSB7XHJcbiAgICBjb25zdCB7IHJlc29sdmVkTGlua3MgfSA9IGFwcC5tZXRhZGF0YUNhY2hlO1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHJlc29sdmVkTGlua3MpLmxlbmd0aCA9PT0gbm9GaWxlcztcclxufVxyXG4vKipcclxuICogV2FpdCBmb3IgYGFwcC5tZXRhZGF0YUNhY2hlLlJlc29sdmVkTGlua3NgIHRvIGhhdmUgZnVsbHkgaW5pdGlhbGlzZWQuXHJcbiAqIEBwYXJhbSAge251bWJlcn0gW2RlbGF5PTEwMDBdIE51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZXR3ZWVuIGVhY2ggY2hlY2suXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbbWF4PTUwXSBNYXhpbXVtIG51bWJlciBvZiBpdGVyYXRpb25zIHRvIGNoZWNrIGJlZm9yZSB0aHJvd2luZyBhbiBlcnJvciBhbmQgYnJlYWtpbmcgb3V0IG9mIHRoZSBsb29wLlxyXG4gKi9cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JSZXNvbHZlZExpbmtzKGRlbGF5ID0gMTAwMCwgbWF4ID0gNTApIHtcclxuICAgIGNvbnN0IG5vRmlsZXMgPSBhcHAudmF1bHQuZ2V0TWFya2Rvd25GaWxlcygpLmxlbmd0aDtcclxuICAgIGxldCBpID0gMDtcclxuICAgIHdoaWxlICghcmVzb2x2ZWRMaW5rc0NvbXBsZXRlKG5vRmlsZXMpICYmIGkgPCBtYXgpIHtcclxuICAgICAgICBhd2FpdCB3YWl0KGRlbGF5KTtcclxuICAgICAgICBpKys7XHJcbiAgICB9XHJcbiAgICBpZiAoaSA9PT0gbWF4KSB7XHJcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJPYnNpZGlhbi1Db21tdW5pdHktTGliOiBSZXNvbHZlZExpbmtzIGRpZCBub3QgZmluaXNoIGluaXRpYWxpc2luZy4gYG1heGAgaXRlcmF0aW9ucyB3YXMgcmVhY2hlZCBmaXJzdC5cIik7XHJcbiAgICB9XHJcbn1cclxuLyoqXHJcbiAqIENoZWNrIGlmIHRoZSBjb250ZW50IG9mIGEgbm90ZSBoYXMgWUFNTC4gSWYgc28sIHJldHVybiBhbiBhcnJheSBvZiB0aGUgWUFNTCBhbmQgdGhlIHJlc3Qgb2YgdGhlIG5vdGUuIElmIG5vdCwgcmV0dXJuIGBbJycsIGNvbnRlbnRdYFxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IGNvbnRlbnRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzcGxpdEF0WWFtbChjb250ZW50KSB7XHJcbiAgICBpZiAoIS9eLS0tXFxuLy50ZXN0KGNvbnRlbnQpKVxyXG4gICAgICAgIHJldHVybiBbXCJcIiwgY29udGVudF07XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCBzcGxpdHMgPSBjb250ZW50LnNwbGl0KFwiLS0tXCIpO1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIHNwbGl0cy5zbGljZSgwLCAyKS5qb2luKFwiLS0tXCIpICsgXCItLS1cIixcclxuICAgICAgICAgICAgc3BsaXRzLnNsaWNlKDIpLmpvaW4oXCItLS1cIiksXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxufVxyXG4vKipcclxuICpcclxuICogQHBhcmFtIHtib29sZWFufSBjYWNoZWQgUmV0dXJuIGNhY2hlZCBmaWxlIGNvbnRlbnQgKipvcioqIHJldHVybiB3aGF0J3Mgb24gZGlzay5cclxuICogQHJldHVybnNcclxuICovXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBY3RpdmVGaWxlQ29udGVudChjYWNoZWQgPSB0cnVlKSB7XHJcbiAgICBjb25zdCBjdXJyRmlsZSA9IGFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlRmlsZSgpO1xyXG4gICAgaWYgKCEoY3VyckZpbGUgaW5zdGFuY2VvZiBURmlsZSkpXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICBpZiAoY2FjaGVkKVxyXG4gICAgICAgIHJldHVybiBhd2FpdCBhcHAudmF1bHQuY2FjaGVkUmVhZChjdXJyRmlsZSk7XHJcbiAgICBlbHNlXHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IGFwcC52YXVsdC5yZWFkKGN1cnJGaWxlKTtcclxufVxyXG4iLCAiaW1wb3J0IHR5cGUge1xyXG4gIEJDU2V0dGluZ3MsXHJcbiAgRGlyZWN0aW9ucyxcclxuICBSZWFsTkltcGxpZWQsXHJcbiAgVXNlckhpZXIsXHJcbn0gZnJvbSBcIi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgdHlwZSB7IElKdWdnbFNldHRpbmdzIH0gZnJvbSBcImp1Z2dsLWFwaVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1BVFJJWF9WSUVXID0gXCJCQy1tYXRyaXhcIjtcclxuLy8gZXhwb3J0IGNvbnN0IFNUQVRTX1ZJRVcgPSBcIkJDLXN0YXRzXCI7XHJcbmV4cG9ydCBjb25zdCBEVUNLX1ZJRVcgPSBcIkJDLWR1Y2tzXCI7XHJcbmV4cG9ydCBjb25zdCBUUkVFX1ZJRVcgPSBcIkJDLXRyZWVcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBUUkFJTF9JQ09OID0gXCJCQy10cmFpbC1pY29uXCI7XHJcbmV4cG9ydCBjb25zdCBUUkFJTF9JQ09OX1NWRyA9XHJcbiAgJzxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTQ4LjgsNGMtNiwwLTEzLjUsMC41LTE5LjcsMy4zUzE3LjksMTUuOSwxNy45LDI1YzAsNSwyLjYsOS43LDYuMSwxMy45czguMSw4LjMsMTIuNiwxMi4zczksNy44LDEyLjIsMTEuNSBjMy4yLDMuNyw1LjEsNy4xLDUuMSwxMC4yYzAsMTQuNC0xMy40LDE5LjMtMTMuNCwxOS4zYy0wLjcsMC4yLTEuMiwwLjgtMS4zLDEuNXMwLjEsMS40LDAuNywxLjljMC42LDAuNSwxLjMsMC42LDIsMC4zIGMwLDAsMTYuMS02LjEsMTYuMS0yM2MwLTQuNi0yLjYtOC44LTYuMS0xMi44Yy0zLjUtNC04LjEtNy45LTEyLjYtMTEuOGMtNC41LTMuOS04LjktNy45LTEyLjItMTEuOGMtMy4yLTMuOS01LjItNy43LTUuMi0xMS40IGMwLTcuOCwzLjYtMTEuNiw4LjgtMTRTNDMsOCw0OC44LDhjNC42LDAsOS4zLDAsMTEsMGMwLjcsMCwxLjQtMC40LDEuNy0xYzAuMy0wLjYsMC4zLTEuNCwwLTJzLTEtMS0xLjctMUM1OC4zLDQsNTMuNCw0LDQ4LjgsNCBMNDguOCw0eiBNNzguMSw0Yy0wLjYsMC0xLjIsMC4yLTEuNiwwLjdsLTguOSw5LjljLTAuNSwwLjYtMC43LDEuNC0wLjMsMi4yYzAuMywwLjcsMSwxLjIsMS44LDEuMmgwLjFsLTIuOCwyLjYgYy0wLjYsMC42LTAuOCwxLjQtMC41LDIuMmMwLjMsMC44LDEsMS4zLDEuOSwxLjNoMS4zbC00LjUsNC42Yy0wLjYsMC42LTAuNywxLjQtMC40LDIuMmMwLjMsMC43LDEsMS4yLDEuOCwxLjJoMTB2NCBjMCwwLjcsMC40LDEuNCwxLDEuOGMwLjYsMC40LDEuNCwwLjQsMiwwYzAuNi0wLjQsMS0xLDEtMS44di00aDEwYzAuOCwwLDEuNS0wLjUsMS44LTEuMmMwLjMtMC43LDAuMS0xLjYtMC40LTIuMkw4Ni45LDI0aDEuMyBjMC44LDAsMS42LTAuNSwxLjktMS4zYzAuMy0wLjgsMC4xLTEuNi0wLjUtMi4ybC0yLjgtMi42aDAuMWMwLjgsMCwxLjUtMC41LDEuOC0xLjJjMC4zLTAuNywwLjItMS42LTAuMy0yLjJsLTguOS05LjkgQzc5LjEsNC4zLDc4LjYsNCw3OC4xLDRMNzguMSw0eiBNNzgsOWw0LjQsNC45aC0wLjdjLTAuOCwwLTEuNiwwLjUtMS45LDEuM2MtMC4zLDAuOC0wLjEsMS42LDAuNSwyLjJsMi44LDIuNmgtMS4xIGMtMC44LDAtMS41LDAuNS0xLjgsMS4yYy0wLjMsMC43LTAuMSwxLjYsMC40LDIuMmw0LjUsNC42SDcwLjhsNC41LTQuNmMwLjYtMC42LDAuNy0xLjQsMC40LTIuMmMtMC4zLTAuNy0xLTEuMi0xLjgtMS4yaC0xLjEgbDIuOC0yLjZjMC42LTAuNiwwLjgtMS40LDAuNS0yLjJjLTAuMy0wLjgtMS0xLjMtMS45LTEuM2gtMC43TDc4LDl6IE01Mi40LDEyYy00LjEsMC03LjEsMC41LTkuNCwxLjVjLTIuMywxLTMuOCwyLjUtNC41LDQuMyBjLTAuNywxLjgtMC41LDMuNiwwLjEsNS4yYzAuNiwxLjUsMS41LDIuOSwyLjUsMy45YzUuNCw1LjQsMTguMSwxMi42LDI5LjYsMjFjNS44LDQuMiwxMS4yLDguNiwxNS4xLDEzYzMuOSw0LjQsNi4yLDguNyw2LjIsMTIuNCBjMCwxNC41LTEyLjksMTguNy0xMi45LDE4LjdjLTAuNywwLjItMS4yLDAuOC0xLjQsMS41czAuMSwxLjUsMC43LDEuOWMwLjYsMC41LDEuMywwLjYsMiwwLjNjMCwwLDE1LjYtNS42LDE1LjYtMjIuNSBjMC01LjMtMi45LTEwLjMtNy4yLTE1LjFDODQuNiw1My42LDc5LDQ5LDczLjEsNDQuN2MtMTEuOC04LjYtMjQuOC0xNi4zLTI5LjItMjAuNmMtMC42LTAuNi0xLjItMS41LTEuNi0yLjQgYy0wLjMtMC45LTAuNC0xLjctMC4xLTIuNGMwLjMtMC43LDAuOC0xLjQsMi4zLTJjMS41LTAuNyw0LjEtMS4yLDcuOC0xLjJjNC45LDAsOS40LDAuMSw5LjQsMC4xYzAuNywwLDEuNC0wLjMsMS44LTEgYzAuNC0wLjYsMC40LTEuNCwwLTIuMWMtMC40LTAuNi0xLjEtMS0xLjgtMUM2MS45LDEyLjEsNTcuMywxMiw1Mi40LDEyTDUyLjQsMTJ6IE0yNCw0NmMtMC41LDAtMS4xLDAuMi0xLjQsMC42TDkuMiw2MC41IGMtMC42LDAuNi0wLjcsMS40LTAuNCwyLjJjMC4zLDAuNywxLDEuMiwxLjgsMS4yaDNsLTYuNSw2LjhjLTAuNiwwLjYtMC43LDEuNC0wLjQsMi4yczEsMS4yLDEuOCwxLjJIMTNsLTguNSw4LjYgQzQsODMuMiwzLjgsODQsNC4yLDg0LjhDNC41LDg1LjUsNS4yLDg2LDYsODZoMTZ2NS40YzAsMC43LDAuNCwxLjQsMSwxLjhjMC42LDAuNCwxLjQsMC40LDIsMGMwLjYtMC40LDEtMSwxLTEuOFY4NmgxNiBjMC44LDAsMS41LTAuNSwxLjgtMS4yYzAuMy0wLjcsMC4xLTEuNi0wLjQtMi4yTDM1LDc0aDQuNGMwLjgsMCwxLjUtMC41LDEuOC0xLjJzMC4yLTEuNi0wLjQtMi4ybC02LjUtNi44aDMgYzAuOCwwLDEuNS0wLjUsMS44LTEuMmMwLjMtMC43LDAuMi0xLjYtMC40LTIuMkwyNS40LDQ2LjZDMjUuMSw0Ni4yLDI0LjUsNDYsMjQsNDZMMjQsNDZ6IE0yNCw1MC45bDguNyw5aC0zIGMtMC44LDAtMS41LDAuNS0xLjgsMS4ycy0wLjIsMS42LDAuNCwyLjJsNi41LDYuOGgtNC41Yy0wLjgsMC0xLjUsMC41LTEuOCwxLjJjLTAuMywwLjctMC4xLDEuNiwwLjQsMi4ybDguNSw4LjZIMTAuOGw4LjUtOC42IGMwLjYtMC42LDAuNy0xLjQsMC40LTIuMmMtMC4zLTAuNy0xLTEuMi0xLjgtMS4yaC00LjVsNi41LTYuOGMwLjYtMC42LDAuNy0xLjQsMC40LTIuMmMtMC4zLTAuNy0xLTEuMi0xLjgtMS4yaC0zTDI0LDUwLjl6XCIvPic7XHJcblxyXG5leHBvcnQgY29uc3QgRFVDS19JQ09OID0gXCJCQy1kdWNrLWljb25cIjtcclxuZXhwb3J0IGNvbnN0IERVQ0tfSUNPTl9TVkcgPVxyXG4gICc8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZD1cIk03MiwzMWMwLTEuNS0xLjItMi44LTIuOC0yLjhjLTEuNSwwLTIuOCwxLjItMi44LDIuOHMxLjIsMi44LDIuOCwyLjhDNzAuOCwzMy44LDcyLDMyLjYsNzIsMzF6IE04MC40LDQ3LjdjMTAuNywwLDE5LjQtOC43LDE5LjQtMTkuNEg4OC40Yy0wLjEtMC42LTAuMS0xLjEtMC4yLTEuN2MtMS42LTcuMS03LjMtMTIuOC0xNC4zLTE0NGMtMS42LTAuNC0zLjEtMC41LTQuNi0wLjVjLTEwLjcsMC0xOS40LDguNy0xOS40LDE5LjR2MTMuOWgtOS40Yy02LjgsMC0xMy42LTIuNC0xOC4yLTcuM2MtMC43LTAuNy0xLjYtMS4xLTIuNC0xMWMtMS43LDAtMy4zLDEuMy0zLjMsMy4zYzAsMTYuNCwxMi41LDMxLDI4LjYsMzIuNmMxLjYsMC4yLDMuMS0xLjEsMy4xLTIuOHYtMi44YzAtMS40LTEtMi42LTIuNC0yLjdjLTcuOS0wOS0xNC44LTYuMi0xOC40LTEzLjVjNC4xLDEuNiw4LjUsMi41LDEzLjEsMi41bDE3LjcsMC4xVjMxYzAtNi4xLDUtMTEuMSwxMS4xLTExLjFjMC45LDAsMS44LDAuMSwyLjcsMC4zYzMuOSwwLjksNy4yLDQuMiw4LjEsOC4xQzgxNCwzNC40LDc4LDM5LjEsNzQsNDFsLTQuNywyLjN2MTIuNGwyLjEsMi40YzEuNSwxLjgsMy40LDQuNywzLjUsOC44YzAuMSwzLjQtMS4zLDYuNy0zLjksOS40Yy0zLDMtNyw0LjgtMTEuMiw0LjhINDMuOWMtMSwwLTIuMS0wMS0zLjItMC4yQzI1LjIsNzkuNSwxMi4zLDY4LjEsOC43LDUzLjJoNS4xYy0xLjItMi43LTItNS41LTIuNS04LjNINS40Yy0zLjMsMC02LDMtNS41LDYuM2MyLjksMjAuMywxOS40LDM2LjEsNDAsMzhjMS4zLDAuMSwyLjYsMDIsNCwwLjJoMTUuOGMxMi41LDAsMjMuNy0xMC4yLDIzLjQtMjIuN2MtMC4xLTUuNC0yLjItMTAuMy01LjYtMTQuMXYtNC45SDgwLjRMODAuNCw0Ny43elwiLz4nO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNwbGl0TGlua3NSZWdleCA9IG5ldyBSZWdFeHAoL1xcW1xcWyguKz8pXFxdXFxdL2cpO1xyXG5leHBvcnQgY29uc3QgZHJvcEhlYWRlck9yQWxpYXMgPSBuZXcgUmVnRXhwKC9cXFtcXFsoW14jfF0rKVxcXVxcXS8pO1xyXG5cclxuLyoqIEEgbWV0YS1yZWdleCB0aGF0IHRha2VzIGluIGEgc3RyaW5nIG9mIHRoZSBmb3JtIGAvcmVnZXgvZmxhZ3NgLCBhbmQgcmV0dXJucyAyIGdyb3VwcywgdGhlIGlubmVyIGByZWdleGAsIGFuZCB0aGUgYGZsYWdzYC4gKi9cclxuZXhwb3J0IGNvbnN0IHJlZ05GbGFncyA9IG5ldyBSZWdFeHAoL14uKC4qPylcXFcoXFx3KikkLyk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IFRSQUlMX0xFTkdUSFMgPSBbXHJcbiAgJ1Nob3J0ZXN0JyxcclxuICAnTG9uZ2VzdCcsXHJcbiAgJ0FsbCdcclxuXVxyXG5cclxuZXhwb3J0IGNvbnN0IFZJU1RZUEVTID0gW1xyXG4gIFwiRm9yY2UgRGlyZWN0ZWQgR3JhcGhcIixcclxuICBcIlRpZHkgVHJlZVwiLFxyXG4gIFwiQ2lyY2xlIFBhY2tpbmdcIixcclxuICBcIkVkZ2UgQnVuZGxpbmdcIixcclxuICBcIkFyYyBEaWFncmFtXCIsXHJcbiAgXCJTdW5idXJzdFwiLFxyXG4gIFwiVHJlZSBNYXBcIixcclxuICBcIkljaWNsZVwiLFxyXG4gIFwiUmFkaWFsIFRyZWVcIixcclxuXSBhcyBjb25zdDtcclxuXHJcbi8qIEFsbCA1IHBvc3NpYmxlIGRpcmVjdGlvbnMuICovXHJcbmV4cG9ydCBjb25zdCBESVJFQ1RJT05TID0gW1widXBcIiwgXCJzYW1lXCIsIFwiZG93blwiLCBcIm5leHRcIiwgXCJwcmV2XCJdIGFzIGNvbnN0O1xyXG5cclxuLyoqXHJcbiAqIEFuIGFycm93IGZvciBlYWNoIHtAbGluayBESVJFQ1RJT05TfSB2YWx1ZS5cclxuICovXHJcbmV4cG9ydCBjb25zdCBBUlJPV19ESVJFQ1RJT05TOiB7IFtkaXIgaW4gRGlyZWN0aW9uc106IHN0cmluZyB9ID0ge1xyXG4gIHVwOiBcIlx1MjE5MVwiLFxyXG4gIHNhbWU6IFwiXHUyMTk0XCIsXHJcbiAgZG93bjogXCJcdTIxOTNcIixcclxuICBuZXh0OiBcIlx1MjE5MlwiLFxyXG4gIHByZXY6IFwiXHUyMTkwXCIsXHJcbn07XHJcbmV4cG9ydCBjb25zdCBSRUxBVElPTlMgPSBbXCJQYXJlbnRcIiwgXCJTaWJsaW5nXCIsIFwiQ2hpbGRcIl0gYXMgY29uc3Q7XHJcbmV4cG9ydCBjb25zdCBSRUFsQ0xPU0VEID0gW1wiUmVhbFwiLCBcIkNsb3NlZFwiXTtcclxuZXhwb3J0IGNvbnN0IEFMTFVOTElOS0VEID0gW1wiQWxsXCIsIFwiTm8gVW5saW5rZWRcIl07XHJcbmV4cG9ydCBjb25zdCBDT0RFQkxPQ0tfVFlQRVMgPSBbXCJ0cmVlXCIsIFwianVnZ2xcIl07XHJcbmV4cG9ydCBjb25zdCBDT0RFQkxPQ0tfRklFTERTID0gW1xyXG4gIFwidHlwZVwiLFxyXG4gIFwiZGlyXCIsXHJcbiAgXCJmaWVsZHNcIixcclxuICBcImRlcHRoXCIsXHJcbiAgXCJ0aXRsZVwiLFxyXG4gIFwiZmxhdFwiLFxyXG4gIFwiY29udGVudFwiLFxyXG4gIFwiZnJvbVwiLFxyXG4gIFwiaW1wbGllZFwiLFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IEpVR0dMX0NCX0RFRkFVTFRTOiBJSnVnZ2xTZXR0aW5ncyA9IHtcclxuICAvLyBAdHMtaWdub3JlXHJcbiAgYW5pbWF0ZUxheW91dDogdHJ1ZSxcclxuICBhdXRvQWRkTm9kZXM6IGZhbHNlLFxyXG4gIGF1dG9FeHBhbmQ6IGZhbHNlLFxyXG4gIGF1dG9ab29tOiBmYWxzZSxcclxuICBjb3JlU3RvcmU6IFwiY29yZVwiLFxyXG4gIGV4cGFuZEluaXRpYWw6IGZhbHNlLFxyXG4gIGZkZ2RMYXlvdXQ6IFwiZDMtZm9yY2VcIixcclxuICBmaWx0ZXI6IFwiXCIsXHJcbiAgaGVpZ2h0OiBcIjc1MHB4XCIsXHJcbiAgaG92ZXJFZGdlczogZmFsc2UsXHJcbiAgbGF5b3V0OiBcImZvcmNlLWRpcmVjdGVkXCIsXHJcbiAgbGltaXQ6IDI1MCxcclxuICBtZXJnZUVkZ2VzOiB0cnVlLFxyXG4gIG1ldGFLZXlIb3ZlcjogdHJ1ZSxcclxuICBtb2RlOiBcIndvcmtzcGFjZVwiLFxyXG4gIG5hdmlnYXRvcjogdHJ1ZSxcclxuICBvcGVuV2l0aFNoaWZ0OiBmYWxzZSxcclxuICByZWFkQ29udGVudDogdHJ1ZSxcclxuICBzdHlsZUdyb3VwczogW10sXHJcbiAgdG9vbGJhcjogdHJ1ZSxcclxuICB3aWR0aDogXCIxMDAlXCIsXHJcbiAgem9vbVNwZWVkOiAxLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEpVR0dMX1RSQUlMX0RFRkFVTFRTOiBJSnVnZ2xTZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oXHJcbiAgSlVHR0xfQ0JfREVGQVVMVFMsXHJcbiAge1xyXG4gICAgYW5pbWF0ZUxheW91dDogdHJ1ZSxcclxuICAgIGF1dG9ab29tOiBmYWxzZSxcclxuICAgIGZkZ2RMYXlvdXQ6IFwiZDMtZm9yY2VcIixcclxuICAgIGhlaWdodDogXCIzMDBweFwiLFxyXG4gICAgcmVhZENvbnRlbnQ6IGZhbHNlLFxyXG4gICAgdG9vbGJhcjogZmFsc2UsXHJcbiAgICBuYXZpZ2F0b3I6IGZhbHNlLFxyXG4gIH1cclxuKTtcclxuQ09ERUJMT0NLX0ZJRUxEUy5wdXNoKC4uLk9iamVjdC5rZXlzKEpVR0dMX0NCX0RFRkFVTFRTKSk7XHJcblxyXG5leHBvcnQgY29uc3QgYmxhbmtVc2VySGllciA9ICgpOiBVc2VySGllciA9PiB7XHJcbiAgcmV0dXJuIHsgdXA6IFtdLCBzYW1lOiBbXSwgZG93bjogW10sIG5leHQ6IFtdLCBwcmV2OiBbXSB9O1xyXG59O1xyXG5leHBvcnQgY29uc3QgYmxhbmtEaXJPYmpzID0gKCk6IHsgW2RpciBpbiBEaXJlY3Rpb25zXToge30gfSA9PiB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHVwOiB7fSxcclxuICAgIHNhbWU6IHt9LFxyXG4gICAgZG93bjoge30sXHJcbiAgICBuZXh0OiB7fSxcclxuICAgIHByZXY6IHt9LFxyXG4gIH07XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgYmxhbmtSZWFsTkltcGxpZWQgPSAoKTogUmVhbE5JbXBsaWVkID0+IHtcclxuICByZXR1cm4ge1xyXG4gICAgdXA6IHsgcmVhbHM6IFtdLCBpbXBsaWVkczogW10gfSxcclxuICAgIGRvd246IHsgcmVhbHM6IFtdLCBpbXBsaWVkczogW10gfSxcclxuICAgIHNhbWU6IHsgcmVhbHM6IFtdLCBpbXBsaWVkczogW10gfSxcclxuICAgIG5leHQ6IHsgcmVhbHM6IFtdLCBpbXBsaWVkczogW10gfSxcclxuICAgIHByZXY6IHsgcmVhbHM6IFtdLCBpbXBsaWVkczogW10gfSxcclxuICB9O1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IFtcclxuICBCQ19JX0FVTlQsXHJcbiAgQkNfSV9DT1VTSU4sXHJcbiAgQkNfSV9TSUJMSU5HXzEsXHJcbiAgQkNfSV9TSUJMSU5HXzIsXHJcbiAgQkNfSV9SRUZMRVhJVkUsXHJcbiAgQkNfSV9QQVJFTlQsXHJcbl0gPSBbXHJcbiAgICBcIkJDLUF1bnRcIixcclxuICAgIFwiQkMtQ291c2luXCIsXHJcbiAgICBcIkJDLVNpYmxpbmctMVwiLFxyXG4gICAgXCJCQy1TaWJsaW5nLTJcIixcclxuICAgIFwiQkMtUmVmbGV4aXZlXCIsXHJcbiAgICBcIkJDLVBhcmVudFwiLFxyXG4gIF07XHJcblxyXG5leHBvcnQgY29uc3QgW1xyXG4gIEJDX0ZPTERFUl9OT1RFLFxyXG4gIEJDX0ZPTERFUl9OT1RFX1NVQkZPTERFUlMsXHJcbiAgQkNfRk9MREVSX05PVEVfUkVDVVJTSVZFLFxyXG4gIEJDX1RBR19OT1RFLFxyXG4gIEJDX1RBR19OT1RFX0ZJRUxELFxyXG4gIEJDX1RBR19OT1RFX0VYQUNULFxyXG4gIEJDX0xJTktfTk9URSxcclxuICBCQ19UUkFWRVJTRV9OT1RFLFxyXG4gIEJDX1JFR0VYX05PVEUsXHJcbiAgQkNfUkVHRVhfTk9URV9GSUVMRCxcclxuICBCQ19EVl9OT1RFLFxyXG4gIEJDX0RWX05PVEVfRklFTEQsXHJcbiAgQkNfSUdOT1JFLFxyXG4gIEJDX0lHTk9SRV9ERU5EUk9OLFxyXG4gIEJDX0hJREVfVFJBSUwsXHJcbiAgQkNfT1JERVIsXHJcbl0gPSBbXHJcbiAgICBcIkJDLWZvbGRlci1ub3RlXCIsXHJcbiAgICBcIkJDLWZvbGRlci1ub3RlLXN1YmZvbGRlcnNcIixcclxuICAgIFwiQkMtZm9sZGVyLW5vdGUtcmVjdXJzaXZlXCIsXHJcbiAgICBcIkJDLXRhZy1ub3RlXCIsXHJcbiAgICBcIkJDLXRhZy1ub3RlLWZpZWxkXCIsXHJcbiAgICBcIkJDLXRhZy1ub3RlLWV4YWN0XCIsXHJcbiAgICBcIkJDLWxpbmstbm90ZVwiLFxyXG4gICAgXCJCQy10cmF2ZXJzZS1ub3RlXCIsXHJcbiAgICBcIkJDLXJlZ2V4LW5vdGVcIixcclxuICAgIFwiQkMtcmVnZXgtbm90ZS1maWVsZFwiLFxyXG4gICAgXCJCQy1kYXRhdmlldy1ub3RlXCIsXHJcbiAgICBcIkJDLWRhdGF2aWV3LW5vdGUtZmllbGRcIixcclxuICAgIFwiQkMtaWdub3JlXCIsXHJcbiAgICBcIkJDLWlnbm9yZS1kZW5kcm9uXCIsXHJcbiAgICBcIkJDLWhpZGUtdHJhaWxcIixcclxuICAgIFwiQkMtb3JkZXJcIixcclxuICBdO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJDX0ZJRUxEU19JTkZPID0gW1xyXG4gIHtcclxuICAgIGZpZWxkOiBCQ19GT0xERVJfTk9URSxcclxuICAgIGRlc2M6IFwiU2V0IHRoaXMgbm90ZSBhcyBhIEJyZWFkY3J1bWJzIGZvbGRlci1ub3RlLiBBbGwgb3RoZXIgbm90ZXMgaW4gdGhpcyBmb2xkZXIgd2lsbCBiZSBhZGRlZCB0byB0aGUgZ3JhcGggd2l0aCB0aGUgZmllbGQgbmFtZSBzcGVjaWZpZWQgaW4gdGhpcyBrZXkncyB2YWx1ZVwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogXCIsXHJcbiAgICBhZnRlcklubGluZTogXCI6OiBcIixcclxuICAgIGFsdDogdHJ1ZSxcclxuICB9LFxyXG4gIHtcclxuICAgIGZpZWxkOiBCQ19GT0xERVJfTk9URV9TVUJGT0xERVJTLFxyXG4gICAgZGVzYzogXCJMaW5rIHRvIG5vdGVzIGluIHN1YmZvbGRlcnMgd2l0aCB0aGUgZ2l2ZW4gZmllbGQuXCIsXHJcbiAgICBhZnRlcllhbWw6IFwiOiBcIixcclxuICAgIGFmdGVySW5saW5lOiBcIjo6IFwiLFxyXG4gICAgYWx0OiBmYWxzZSxcclxuICB9LFxyXG4gIHtcclxuICAgIGZpZWxkOiBCQ19GT0xERVJfTk9URV9SRUNVUlNJVkUsXHJcbiAgICBkZXNjOiBcIlJlY3Vyc2l2ZWx5IGFkZCBub3RlcyBpbiBzdWJmb2xkZXJzIHRvIHRoZSBmb2xkZXJub3RlIG9mIF90aGF0XyBzdWJmb2xkZXIuXCIsXHJcbiAgICBhZnRlcllhbWw6IFwiOiB0cnVlXCIsXHJcbiAgICBhZnRlcklubGluZTogXCI6OiB0cnVlXCIsXHJcbiAgICBhbHQ6IGZhbHNlLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgZmllbGQ6IEJDX1RBR19OT1RFLFxyXG4gICAgZGVzYzogXCJTZXQgdGhpcyBub3RlIGFzIGEgQnJlYWRjcnVtYnMgdGFnLW5vdGUuIEFsbCBvdGhlciBub3RlcyB3aXRoIHRoaXMgdGFnIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGdyYXBoIHVzaW5nIHRoZSBkZWZhdWx0IGZpZWxkTmFtZSBzcGVjaWZpZWQgaW4gYFNldHRpbmdzID4gQWx0ZXJuYXRpdmUgSGllcmFyY2hpZXMgPiBUYWcgTm90ZXMgPiBEZWZhdWx0IEZpZWxkYCwgb3IgdXNpbmcgdGhlIGZpZWxkTmFtZSB5b3Ugc3BlY2lmeSB3aXRoIGBCQy10YWctbm90ZS1maWVsZDogZmllbGROYW1lYFwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogJyNcIixcclxuICAgIGFmdGVySW5saW5lOiBcIjo6ICNcIixcclxuICAgIGFsdDogdHJ1ZSxcclxuICB9LFxyXG4gIHtcclxuICAgIGZpZWxkOiBCQ19UQUdfTk9URV9GSUVMRCxcclxuICAgIGRlc2M6IFwiTWFudWFsbHkgY2hvb3NlIHRoZSBmaWVsZCBmb3IgdGhpcyB0YWctbm90ZSB0byB1c2VcIixcclxuICAgIGFmdGVyWWFtbDogXCI6IFwiLFxyXG4gICAgYWZ0ZXJJbmxpbmU6IFwiOjogXCIsXHJcbiAgICBhbHQ6IGZhbHNlLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgZmllbGQ6IEJDX1RBR19OT1RFX0VYQUNULFxyXG4gICAgZGVzYzogXCJPbmx5IGxvb2sgZm9yIG5vdGVzIHdpdGggdGhlIGV4YWN0IHRhZy4gaS5lLiBgI0FgIHdvbid0IG1hdGNoIGAjQS9CYFwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogdHJ1ZVwiLFxyXG4gICAgYWZ0ZXJJbmxpbmU6IFwiOjogdHJ1ZVwiLFxyXG4gICAgYWx0OiBmYWxzZSxcclxuICB9LFxyXG4gIHtcclxuICAgIGZpZWxkOiBCQ19MSU5LX05PVEUsXHJcbiAgICBkZXNjOiBcIlNldCB0aGlzIG5vdGUgYXMgYSBCcmVhZGNydW1icyBsaW5rLW5vdGUuIEFsbCBsaW5rcyBsZWF2aW5nIHRoaXMgbm90ZSB3aWxsIGJlIGFkZGVkIHRvIHRoZSBncmFwaCB3aXRoIHRoZSBmaWVsZCBuYW1lIHNwZWNpZmllZCBpbiB0aGlzIGtleSdzIHZhbHVlLlwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogXCIsXHJcbiAgICBhZnRlcklubGluZTogXCI6OiBcIixcclxuICAgIGFsdDogdHJ1ZSxcclxuICB9LFxyXG4gIHtcclxuICAgIGZpZWxkOiBCQ19UUkFWRVJTRV9OT1RFLFxyXG4gICAgZGVzYzogXCJTZXQgdGhpcyBub3RlIGFzIGEgQnJlYWRjcnVtYnMgdHJhdmVyc2Utbm90ZS4gU3RhcnRpbmcgZnJvbSB0aGlzIG5vdGUsIHRoZSBPYnNpZGlhbiBncmFwaCB3aWxsIGJlIHRyYXZlcnNlZCBpbiBkZXB0aC1maXJzdCBvcmRlciwgYW5kIGFsbCBub3RlcyBhbG9uZyB0aGUgd2F5IHdpbGwgYmUgYWRkZWQgdG8gdGhlIEJDIGdyYXBoIHVzaW5nIHRoZSBmaWVsZE5hbWUgeW91IHNwZWNpZnlcIixcclxuICAgIGFmdGVyWWFtbDogXCI6IFwiLFxyXG4gICAgYWZ0ZXJJbmxpbmU6IFwiOjogXCIsXHJcbiAgICBhbHQ6IHRydWUsXHJcbiAgfSxcclxuICB7XHJcbiAgICBmaWVsZDogQkNfUkVHRVhfTk9URSxcclxuICAgIGRlc2M6IFwiU2V0IHRoaXMgbm90ZSBhcyBhIEJyZWFkY3J1bWJzIHJlZ2V4LW5vdGUuIFRoZSB2YWx1ZSBvZiB0aGlzIGZpZWxkIGlzIGEgcmVndWxhciBleHByZXNzaW9uIChvZiB0aGUgZm9ybSAnL3JlZ2V4L2ZsYWdzJykuIEFsbCBub3RlIG5hbWVzIHRoYXQgbWF0Y2ggdGhlIHJlZ2V4IHdpbGwgYmUgYWRkZWQgdG8gdGhlIEJDIGdyYXBoIHVzaW5nIHRoZSBkZWZhdWx0IGZpZWxkTmFtZSBzcGVjaWZpZWQgaW4gYFNldHRpbmdzID4gQWx0ZXJuYXRpdmUgSGllcmFyY2hpZXMgPiBSZWdleCBOb3RlcyA+IERlZmF1bHQgRmllbGRgLCBvciB1c2luZyB0aGUgZmllbGROYW1lIHlvdSBzcGVjaWZ5IGluICdCQy1yZWdleC1ub3RlLWZpZWxkJy5cIixcclxuICAgIGFmdGVyWWFtbDogXCI6ICcvXCIsXHJcbiAgICBhZnRlcklubGluZTogXCI6OiAvXCIsXHJcbiAgICBhbHQ6IHRydWUsXHJcbiAgfSxcclxuICB7XHJcbiAgICBmaWVsZDogQkNfUkVHRVhfTk9URV9GSUVMRCxcclxuICAgIGRlc2M6IFwiTWFudWFsbHkgY2hvb3NlIHRoZSBmaWVsZCBmb3IgdGhpcyByZWdleC1ub3RlIHRvIHVzZVwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogXCIsXHJcbiAgICBhZnRlcklubGluZTogXCI6OiBcIixcclxuICAgIGFsdDogZmFsc2UsXHJcbiAgfSxcclxuICB7XHJcbiAgICBmaWVsZDogQkNfRFZfTk9URSxcclxuICAgIGRlc2M6IFwiU2V0IHRoaXMgbm90ZSBhcyBhIEJyZWFkY3J1bWJzIERhdGF2aWV3LW5vdGUuIFRoZSB2YWx1ZSBvZiB0aGlzIGZpZWxkIGlzIGEgRGF0YXZpZXcgYGZyb21gIHF1ZXJ5LiBBbGwgbm90ZXMgdGhhdCBtYXRjaCB0aGUgcXVlcnkgd2lsbCBiZSBhZGRlZCB0byB0aGUgQkMgZ3JhcGggdXNpbmcgdGhlIGRlZmF1bHQgZmllbGROYW1lIHNwZWNpZmllZCBpbiBgU2V0dGluZ3MgPiBBbHRlcm5hdGl2ZSBIaWVyYXJjaGllcyA+IERhdGF2aWV3IE5vdGVzID4gRGVmYXVsdCBGaWVsZGAsIG9yIHVzaW5nIHRoZSBmaWVsZE5hbWUgeW91IHNwZWNpZnkgaW4gJ0JDLWRhdGF2aWV3LW5vdGUtZmllbGQnLlwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogJ1wiLFxyXG4gICAgYWZ0ZXJJbmxpbmU6IFwiOjogXCIsXHJcbiAgICBhbHQ6IHRydWUsXHJcbiAgfSxcclxuICB7XHJcbiAgICBmaWVsZDogQkNfRFZfTk9URV9GSUVMRCxcclxuICAgIGRlc2M6IFwiTWFudWFsbHkgY2hvb3NlIHRoZSBmaWVsZCBmb3IgdGhpcyBEYXRhdmlldy1ub3RlIHRvIHVzZVwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogXCIsXHJcbiAgICBhZnRlcklubGluZTogXCI6OiBcIixcclxuICAgIGFsdDogZmFsc2UsXHJcbiAgfSxcclxuICB7XHJcbiAgICBmaWVsZDogQkNfSUdOT1JFLFxyXG4gICAgZGVzYzogXCJUZWxscyBCcmVhZGNydW1icyB0byBpZ25vcmUgYSBub3RlIGZyb20gaXRzIGluZGV4IGVudGlyZWx5LiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byB1c2UgQnJlYWRjcnVtYnMgdG8gaW5kZXggbm90ZXMsIGJ1dCB5b3UgZG9uJ3Qgd2FudCB0byBzaG93IHRoZW0gaW4gdGhlIGdyYXBoLlwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogdHJ1ZVwiLFxyXG4gICAgYWZ0ZXJJbmxpbmU6IFwiOjogdHJ1ZVwiLFxyXG4gICAgYWx0OiBmYWxzZSxcclxuICB9LFxyXG4gIHtcclxuICAgIGZpZWxkOiBCQ19JR05PUkVfREVORFJPTixcclxuICAgIGRlc2M6IFwiVGVsbHMgQnJlYWRjcnVtYnMgdG8gbm90IHRyZWF0IHRoaXMgbm90ZSBhcyBhIGRlbmRyb24gbm90ZSAob25seSB1c2VmdWwgaWYgdGhlIG5vdGUgbmFtZSBoYXMgeW91IGRlbmRyb24gc3BsaXR0ZXIgaW4gaXQsIHVzdWFsbHkgYSBwZXJpb2QgYC5gKS5cIixcclxuICAgIGFmdGVyWWFtbDogXCI6IHRydWVcIixcclxuICAgIGFmdGVySW5saW5lOiBcIjo6IHRydWVcIixcclxuICAgIGFsdDogZmFsc2UsXHJcbiAgfSxcclxuICB7XHJcbiAgICBmaWVsZDogQkNfSElERV9UUkFJTCxcclxuICAgIGRlc2M6IFwiRG9uJ3Qgc2hvdyB0aGUgdHJhaWwgaW4gdGhpcyBub3RlXCIsXHJcbiAgICBhZnRlcllhbWw6IFwiOiB0cnVlXCIsXHJcbiAgICBhZnRlcklubGluZTogXCI6OiB0cnVlXCIsXHJcbiAgICBhbHQ6IGZhbHNlLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgZmllbGQ6IEJDX09SREVSLFxyXG4gICAgZGVzYzogXCJTZXQgdGhlIG9yZGVyIG9mIHRoaXMgbm90ZSBpbiB0aGUgTWF0cml4IHZpZXcuIEEgbG93ZXIgdmFsdWUgcGxhY2VzIHRoaXMgbm90ZSBoaWdoZXIgaW4gdGhlIG9yZGVyLlwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogXCIsXHJcbiAgICBhZnRlcklubGluZTogXCI6OiBcIixcclxuICAgIGFsdDogZmFsc2UsXHJcbiAgfSxcclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBCQ19BTFRTID0gQkNfRklFTERTX0lORk8uZmlsdGVyKChmKSA9PiBmLmFsdCkubWFwKChmKSA9PiBmLmZpZWxkKTtcclxuXHJcbmV4cG9ydCBjb25zdCBJTExFR0FMX0ZJTEVOQU1FX0NIQVJTID0gW1xyXG4gIFwiXFxcXFwiLFxyXG4gIFwiL1wiLFxyXG4gIFwiOlwiLFxyXG4gIFwiKlwiLFxyXG4gIFwiP1wiLFxyXG4gICdcIicsXHJcbiAgXCI8XCIsXHJcbiAgXCI+XCIsXHJcbiAgXCJ8XCIsXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgREFUQVZJRVdfTUlTU0lORyA9XHJcbiAgXCJUaGUgRGF0YXZpZXcgcGx1Z2luIG11c3QgYmUgaW5zdGFsbGVkIGZvciB0aGlzIHRvIHdvcmtcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBBUElfTkFNRSA9IFwiQkNBUElcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFVFRJTkdTOiBCQ1NldHRpbmdzID0ge1xyXG4gIGFkZERlbmRyb25Ob3RlczogZmFsc2UsXHJcbiAgYWRkRGF0ZU5vdGVzOiBmYWxzZSxcclxuICBhbGlhc2VzSW5JbmRleDogZmFsc2UsXHJcbiAgYWxwaGFTb3J0QXNjOiB0cnVlLFxyXG4gIGFsdExpbmtGaWVsZHM6IFtdLFxyXG4gIENTVlBhdGhzOiBcIlwiLFxyXG4gIGNyZWF0ZUluZGV4SW5kZW50OiAnICAnLFxyXG4gIGRhdGVGb3JtYXQ6IFwiWVlZWS1NTS1ERFwiLFxyXG4gIGRhdGVOb3RlRm9ybWF0OiBcInl5eXktTU0tZGRcIixcclxuICBkYXRlTm90ZUZpZWxkOiBcIm5leHRcIixcclxuICBkYXRhdmlld05vdGVGaWVsZDogXCJ1cFwiLFxyXG4gIGRhdGVOb3RlQWRkTW9udGg6IFwiXCIsXHJcbiAgZGF0ZU5vdGVBZGRZZWFyOiBcIlwiLFxyXG4gIGRlYnVnTW9kZTogXCJXQVJOXCIsXHJcbiAgZGVuZHJvbk5vdGVEZWxpbWl0ZXI6IFwiLlwiLFxyXG4gIGRlbmRyb25Ob3RlRmllbGQ6IFwidXBcIixcclxuICBkdldhaXRUaW1lOiA1MDAwLFxyXG4gIGVuYWJsZUFscGhhU29ydDogdHJ1ZSxcclxuICBlbmFibGVSZWxhdGlvblN1Z2dlc3RvcjogZmFsc2UsXHJcbiAgZmllbGRTdWdnZXN0b3I6IHRydWUsXHJcbiAgZmlsdGVySW1wbGllZFNpYmxpbmdzT2ZEaWZmZXJlbnRUeXBlczogZmFsc2UsXHJcbiAganVnZ2xMYXlvdXQ6IFwiaGllcmFyY2h5XCIsXHJcbiAgbGltaXRXcml0ZUJDQ2hlY2tib3hlczogW10sXHJcbiAgQ0hFQ0tCT1hfU1RBVEVTX09WRVJXUklUVEVOOiBmYWxzZSxcclxuICBncmlkRGVmYXVsdERlcHRoOiAyNSxcclxuICBoaWVyYXJjaHlOb3RlczogW1wiXCJdLFxyXG4gIGhpZXJhcmNoeU5vdGVJc1BhcmVudDogZmFsc2UsXHJcbiAgSE5VcEZpZWxkOiBcIlwiLFxyXG4gIGluZGV4Tm90ZXM6IFtcIlwiXSxcclxuICBuYW1pbmdTeXN0ZW1GaWVsZDogXCJcIixcclxuICBuYW1pbmdTeXN0ZW1SZWdleDogXCJcIixcclxuICBuYW1pbmdTeXN0ZW1TcGxpdDogXCIuXCIsXHJcbiAgbmFtaW5nU3lzdGVtRW5kc1dpdGhEZWxpbWl0ZXI6IGZhbHNlLFxyXG4gIHJlZnJlc2hPbk5vdGVDaGFuZ2U6IGZhbHNlLFxyXG4gIHVzZUFsbE1ldGFkYXRhOiB0cnVlLFxyXG4gIG9wZW5NYXRyaXhPbkxvYWQ6IHRydWUsXHJcbiAgb3BlbkR1Y2tPbkxvYWQ6IGZhbHNlLFxyXG4gIG9wZW5Eb3duT25Mb2FkOiB0cnVlLFxyXG4gIHBhcnNlSnVnZ2xMaW5rc1dpdGhvdXRKdWdnbDogZmFsc2UsXHJcbiAgc2hvd05hbWVPclR5cGU6IHRydWUsXHJcbiAgc2hvd1JlbGF0aW9uVHlwZTogdHJ1ZSxcclxuICByZWdleE5vdGVGaWVsZDogXCJcIixcclxuICByZWxTdWdnZXN0b3JUcmlnZ2VyOiBcIlxcXFxcIixcclxuICBybExlYWY6IHRydWUsXHJcbiAgc2hvd0FsbFBhdGhzSWZOb25lVG9JbmRleE5vdGU6IGZhbHNlLFxyXG4gIHNob3dBbGxBbGlhc2VzOiB0cnVlLFxyXG4gIHNob3dCQ3M6IHRydWUsXHJcbiAgc2hvd0JDc0luRWRpdExQTW9kZTogZmFsc2UsXHJcbiAgc2hvd1JlZnJlc2hOb3RpY2U6IHRydWUsXHJcbiAgc2hvd0ltcGxpZWRSZWxhdGlvbnM6IHRydWUsXHJcbiAgc2hvd1RyYWlsOiB0cnVlLFxyXG4gIHNob3dHcmlkOiB0cnVlLFxyXG4gIHNob3dKdWdnbDogZmFsc2UsXHJcbiAgc2hvd1ByZXZOZXh0OiB0cnVlLFxyXG4gIHNvcnRCeU5hbWVTaG93QWxpYXM6IGZhbHNlLFxyXG4gIHNxdWFyZURpcmVjdGlvbnNPcmRlcjogWzAsIDEsIDIsIDMsIDRdLFxyXG4gIGxpbWl0VHJhaWxDaGVja2JveGVzOiBbXSxcclxuICBsaW1pdEp1bXBUb0ZpcnN0RmllbGRzOiBbXSxcclxuICBzaG93QWxsOiAnQWxsJyxcclxuICBub1BhdGhNZXNzYWdlOiBgVGhpcyBub3RlIGhhcyBubyByZWFsIG9yIGltcGxpZWQgcGFyZW50c2AsXHJcbiAgdGFnTm90ZUZpZWxkOiBcIlwiLFxyXG4gIHRocmVhZEludG9OZXdQYW5lOiBmYWxzZSxcclxuICB0aHJlYWRpbmdUZW1wbGF0ZTogXCJ7e2ZpZWxkfX0gb2Yge3tjdXJyZW50fX1cIixcclxuICB0aHJlYWRpbmdEaXJUZW1wbGF0ZXM6IHsgdXA6IFwiXCIsIHNhbWU6IFwiXCIsIGRvd246IFwiXCIsIG5leHQ6IFwiXCIsIHByZXY6IFwiXCIgfSxcclxuICB0aHJlYWRVbmRlckN1cnNvcjogZmFsc2UsXHJcbiAgdHJhaWxTZXBlcmF0b3I6IFwiXHUyMTkyXCIsXHJcbiAgdHJlYXRDdXJyTm9kZUFzSW1wbGllZFNpYmxpbmc6IGZhbHNlLFxyXG4gIHRyaW1EZW5kcm9uTm90ZXM6IGZhbHNlLFxyXG4gIHJlc3BlY3RSZWFkYWJsZUxpbmVMZW5ndGg6IHRydWUsXHJcbiAgdXNlckhpZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHVwOiBbXCJ1cFwiXSxcclxuICAgICAgc2FtZTogW1wic2FtZVwiXSxcclxuICAgICAgZG93bjogW1wiZG93blwiXSxcclxuICAgICAgbmV4dDogW1wibmV4dFwiXSxcclxuICAgICAgcHJldjogW1wicHJldlwiXSxcclxuICAgIH0sXHJcbiAgXSxcclxuICB3cml0ZUJDc0lubGluZTogZmFsc2UsXHJcbiAgc2hvd1dyaXRlQWxsQkNzQ21kOiBmYWxzZSxcclxuICB2aXNHcmFwaDogXCJGb3JjZSBEaXJlY3RlZCBHcmFwaFwiLFxyXG4gIHZpc1JlbGF0aW9uOiBcIlBhcmVudFwiLFxyXG4gIHZpc0Nsb3NlZDogXCJSZWFsXCIsXHJcbiAgdmlzQWxsOiBcIkFsbFwiLFxyXG4gIHdpa2lsaW5rSW5kZXg6IHRydWUsXHJcbiAgaW1wbGllZFJlbGF0aW9uczoge1xyXG4gICAgc2libGluZ0lkZW50aXR5OiBmYWxzZSxcclxuICAgIHNhbWVQYXJlbnRJc1NpYmxpbmc6IHRydWUsXHJcbiAgICBzaWJsaW5nc1NpYmxpbmdJc1NpYmxpbmc6IGZhbHNlLFxyXG4gICAgc2libGluZ3NQYXJlbnRJc1BhcmVudDogZmFsc2UsXHJcbiAgICBwYXJlbnRzU2libGluZ3NJc1BhcmVudHM6IGZhbHNlLFxyXG4gICAgcGFyZW50c1BhcmVudHNJc1BhcmVudDogZmFsc2UsXHJcbiAgICBjb3VzaW5zSXNTaWJsaW5nOiBmYWxzZSxcclxuICB9LFxyXG4gIHJlZnJlc2hPbk5vdGVTYXZlOiBmYWxzZSxcclxuICBzaG93VXBJbkp1Z2dsOiBmYWxzZVxyXG59O1xyXG4iLCAiaW1wb3J0IHsgZXJyb3IsIGluZm8gfSBmcm9tIFwibG9nbGV2ZWxcIjtcclxuaW1wb3J0IHsgSXRlbVZpZXcsIFRGaWxlLCBXb3Jrc3BhY2VMZWFmIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IERlYnVnZ2VyIH0gZnJvbSBcInNyYy9EZWJ1Z2dlclwiO1xyXG5pbXBvcnQgTWF0cml4IGZyb20gXCIuLi9Db21wb25lbnRzL01hdHJpeC5zdmVsdGVcIjtcclxuaW1wb3J0IHtcclxuICBBUlJPV19ESVJFQ1RJT05TLFxyXG4gIGJsYW5rUmVhbE5JbXBsaWVkLFxyXG4gIE1BVFJJWF9WSUVXLFxyXG4gIFRSQUlMX0lDT04sXHJcbn0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSB7XHJcbiAgRGlyZWN0aW9ucyxcclxuICBFZGdlQXR0cixcclxuICBpbnRlcm5hbExpbmtPYmosXHJcbiAgU3F1YXJlSXRlbSxcclxuICBTcXVhcmVQcm9wcyxcclxuICBVc2VySGllcixcclxufSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQgeyBzcGxpdEFuZFRyaW0gfSBmcm9tIFwiLi4vVXRpbHMvZ2VuZXJhbFV0aWxzXCI7XHJcbmltcG9ydCB7IGdldE9wcERpciwgZ2V0T3BwRmllbGRzIH0gZnJvbSBcIi4uL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXREVkFwaSwgZ2V0Q3VyckZpbGUsIGxpbmtDbGFzcyB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWF0cml4TmVpZ2hib3VycyhwbHVnaW46IEJDUGx1Z2luLCBjdXJyTm9kZTogc3RyaW5nKSB7XHJcbiAgY29uc3QgeyBjbG9zZWRHLCBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgdXNlckhpZXJzIH0gPSBzZXR0aW5ncztcclxuICBjb25zdCBuZWlnaGJvdXJzID0gYmxhbmtSZWFsTkltcGxpZWQoKTtcclxuICBpZiAoIWNsb3NlZEcpIHJldHVybiBuZWlnaGJvdXJzO1xyXG5cclxuICBjbG9zZWRHLmZvckVhY2hFZGdlKGN1cnJOb2RlLCAoaywgYSwgcywgdCkgPT4ge1xyXG4gICAgY29uc3QgeyBmaWVsZCwgZGlyLCBpbXBsaWVkIH0gPSBhIGFzIEVkZ2VBdHRyO1xyXG5cclxuICAgIGlmIChzID09PSBjdXJyTm9kZSkge1xyXG4gICAgICBuZWlnaGJvdXJzW2Rpcl0ucmVhbHMucHVzaCh7IHRvOiB0LCBmaWVsZCwgaW1wbGllZCB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5laWdoYm91cnNbZ2V0T3BwRGlyKGRpcildLmltcGxpZWRzLnB1c2goe1xyXG4gICAgICAgIHRvOiBzLFxyXG4gICAgICAgIGZpZWxkOiBnZXRPcHBGaWVsZHModXNlckhpZXJzLCBmaWVsZCwgZGlyKVswXSxcclxuICAgICAgICBpbXBsaWVkLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIG5laWdoYm91cnM7XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWF0cml4VmlldyBleHRlbmRzIEl0ZW1WaWV3IHtcclxuICBwbHVnaW46IEJDUGx1Z2luO1xyXG4gIHByaXZhdGUgdmlldzogTWF0cml4O1xyXG4gIGRiOiBEZWJ1Z2dlcjtcclxuXHJcbiAgY29uc3RydWN0b3IobGVhZjogV29ya3NwYWNlTGVhZiwgcGx1Z2luOiBCQ1BsdWdpbikge1xyXG4gICAgc3VwZXIobGVhZik7XHJcbiAgICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcclxuICAgIHRoaXMuZGIgPSBuZXcgRGVidWdnZXIocGx1Z2luKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHN1cGVyLm9ubG9hZCgpO1xyXG4gICAgY29uc3QgeyBwbHVnaW4gfSA9IHRoaXM7XHJcblxyXG4gICAgYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KCgpID0+IHtcclxuICAgICAgc2V0VGltZW91dChcclxuICAgICAgICBhc3luYyAoKSA9PiBhd2FpdCB0aGlzLmRyYXcoKSxcclxuICAgICAgICBhcHAucGx1Z2lucy5wbHVnaW5zLmRhdGF2aWV3XHJcbiAgICAgICAgICA/IGFwcC5wbHVnaW5zLnBsdWdpbnMuZGF0YXZpZXcuYXBpXHJcbiAgICAgICAgICAgID8gMVxyXG4gICAgICAgICAgICA6IHBsdWdpbi5zZXR0aW5ncy5kdldhaXRUaW1lXHJcbiAgICAgICAgICA6IDMwMDBcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Vmlld1R5cGUoKSB7XHJcbiAgICByZXR1cm4gTUFUUklYX1ZJRVc7XHJcbiAgfVxyXG4gIGdldERpc3BsYXlUZXh0KCkge1xyXG4gICAgcmV0dXJuIFwiQnJlYWRjcnVtYnMgTWF0cml4XCI7XHJcbiAgfVxyXG4gIGljb24gPSBUUkFJTF9JQ09OO1xyXG5cclxuICBhc3luYyBvbk9wZW4oKTogUHJvbWlzZTx2b2lkPiB7IH1cclxuXHJcbiAgb25DbG9zZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudmlldz8uJGRlc3Ryb3koKTtcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuICB9XHJcblxyXG4gIGdldEFsdChub2RlOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGNvbnN0IHsgcGx1Z2luIH0gPSB0aGlzO1xyXG4gICAgY29uc3QgeyBhbHRMaW5rRmllbGRzLCBzaG93QWxsQWxpYXNlcyB9ID0gcGx1Z2luLnNldHRpbmdzO1xyXG4gICAgaWYgKCFhbHRMaW5rRmllbGRzLmxlbmd0aCkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgLy8gZHYgRmlyc3RcclxuICAgIGNvbnN0IGR2ID0gZ2V0RFZBcGkocGx1Z2luKTtcclxuICAgIGlmIChkdikge1xyXG4gICAgICBjb25zdCBwYWdlID0gZHYucGFnZShub2RlKTtcclxuICAgICAgaWYgKCFwYWdlKSByZXR1cm4gbnVsbDtcclxuICAgICAgZm9yIChjb25zdCBhbHQgb2YgYWx0TGlua0ZpZWxkcykge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gcGFnZVthbHRdIGFzIHN0cmluZztcclxuXHJcbiAgICAgICAgY29uc3QgYXJyOiBzdHJpbmdbXSA9XHJcbiAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyBzcGxpdEFuZFRyaW0odmFsdWUpIDogdmFsdWU7XHJcbiAgICAgICAgaWYgKHZhbHVlKSByZXR1cm4gc2hvd0FsbEFsaWFzZXMgPyBhcnIuam9pbihcIiwgXCIpIDogYXJyWzBdO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBmaWxlID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3Qobm9kZSwgXCJcIik7XHJcbiAgICAgIGlmIChmaWxlKSB7XHJcbiAgICAgICAgY29uc3QgeyBmcm9udG1hdHRlciB9ID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0RmlsZUNhY2hlKGZpbGUpO1xyXG4gICAgICAgIGZvciAoY29uc3QgYWx0RmllbGQgb2YgYWx0TGlua0ZpZWxkcykge1xyXG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBmcm9udG1hdHRlcj8uW2FsdEZpZWxkXTtcclxuXHJcbiAgICAgICAgICBjb25zdCBhcnI6IHN0cmluZ1tdID1cclxuICAgICAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gc3BsaXRBbmRUcmltKHZhbHVlKSA6IHZhbHVlO1xyXG4gICAgICAgICAgaWYgKHZhbHVlKSByZXR1cm4gc2hvd0FsbEFsaWFzZXMgPyBhcnIuam9pbihcIiwgXCIpIDogYXJyWzBdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9JbnRlcm5hbExpbmtPYmogPSAoXHJcbiAgICB0bzogc3RyaW5nLFxyXG4gICAgcmVhbFEgPSB0cnVlLFxyXG4gICAgcGFyZW50OiBzdHJpbmcgfCBudWxsLFxyXG4gICAgaW1wbGllZD86IHN0cmluZ1xyXG4gICk6IGludGVybmFsTGlua09iaiA9PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0byxcclxuICAgICAgY2xzOiBsaW5rQ2xhc3ModG8sIHJlYWxRKSxcclxuICAgICAgYWx0OiB0aGlzLmdldEFsdCh0byksXHJcbiAgICAgIG9yZGVyOiB0aGlzLmdldE9yZGVyKHRvKSxcclxuICAgICAgcGFyZW50LFxyXG4gICAgICBpbXBsaWVkLFxyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICAvLyBBTkNIT1IgUmVtb3ZlIGR1cGxpY2F0ZSBpbXBsaWVkIGxpbmtzXHJcblxyXG4gIHJlbW92ZUR1cGxpY2F0ZUltcGxpZWQoXHJcbiAgICByZWFsczogaW50ZXJuYWxMaW5rT2JqW10sXHJcbiAgICBpbXBsaWVkczogaW50ZXJuYWxMaW5rT2JqW11cclxuICApOiBpbnRlcm5hbExpbmtPYmpbXSB7XHJcbiAgICBjb25zdCByZWFsVG9zID0gcmVhbHMubWFwKChyZWFsKSA9PiByZWFsLnRvKTtcclxuICAgIHJldHVybiBpbXBsaWVkcy5maWx0ZXIoKGltcGxpZWQpID0+ICFyZWFsVG9zLmluY2x1ZGVzKGltcGxpZWQudG8pKTtcclxuICB9XHJcblxyXG4gIGdldE9yZGVyID0gKG5vZGU6IHN0cmluZykgPT5cclxuICAgIE51bWJlci5wYXJzZUludCh0aGlzLnBsdWdpbi5tYWluRy5nZXROb2RlQXR0cmlidXRlKG5vZGUsIFwib3JkZXJcIikpO1xyXG5cclxuICBzb3J0SXRlbXNBbHBoYSA9IChhOiBpbnRlcm5hbExpbmtPYmosIGI6IGludGVybmFsTGlua09iaikgPT4ge1xyXG4gICAgY29uc3QgeyBzb3J0QnlOYW1lU2hvd0FsaWFzLCBhbHBoYVNvcnRBc2MgfSA9IHRoaXMucGx1Z2luLnNldHRpbmdzO1xyXG4gICAgY29uc3QgYVRvU29ydCA9IChzb3J0QnlOYW1lU2hvd0FsaWFzID8gYS50byA6IGEuYWx0ID8/IGEudG8pLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBjb25zdCBiVG9Tb3J0ID0gKHNvcnRCeU5hbWVTaG93QWxpYXMgPyBiLnRvIDogYi5hbHQgPz8gYi50bykudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICBjb25zdCBsZXNzID0gYWxwaGFTb3J0QXNjID8gLTEgOiAxO1xyXG4gICAgY29uc3QgbW9yZSA9IGFscGhhU29ydEFzYyA/IDEgOiAtMTtcclxuXHJcbiAgICByZXR1cm4gYVRvU29ydCA8IGJUb1NvcnQgPyBsZXNzIDogbW9yZTtcclxuICB9O1xyXG5cclxuICBnZXRIaWVyU3F1YXJlcyh1c2VySGllcnM6IFVzZXJIaWVyW10sIGN1cnJGaWxlOiBURmlsZSk6IFNxdWFyZVByb3BzW11bXSB7XHJcbiAgICBjb25zdCB7IHBsdWdpbiB9ID0gdGhpcztcclxuICAgIGNvbnN0IHsgbWFpbkcsIHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgICBjb25zdCB7IGVuYWJsZUFscGhhU29ydCwgc3F1YXJlRGlyZWN0aW9uc09yZGVyIH0gPSBzZXR0aW5ncztcclxuICAgIGlmICghbWFpbkcpIHJldHVybiBbXTtcclxuXHJcbiAgICBjb25zdCB7IGJhc2VuYW1lIH0gPSBjdXJyRmlsZTtcclxuICAgIGlmICghbWFpbkcuaGFzTm9kZShiYXNlbmFtZSkpIHJldHVybiBbXTtcclxuICAgIGNvbnN0IHJlYWxzbkltcGxpZWRzID0gZ2V0TWF0cml4TmVpZ2hib3VycyhwbHVnaW4sIGJhc2VuYW1lKTtcclxuXHJcbiAgICByZXR1cm4gdXNlckhpZXJzLm1hcCgoaGllcikgPT4ge1xyXG4gICAgICBjb25zdCBmaWx0ZXJlZFJlYWxOSW1wbGllZCA9IGJsYW5rUmVhbE5JbXBsaWVkKCkgYXMgdW5rbm93biBhcyB7XHJcbiAgICAgICAgW2RpciBpbiBEaXJlY3Rpb25zXToge1xyXG4gICAgICAgICAgcmVhbHM6IGludGVybmFsTGlua09ialtdO1xyXG4gICAgICAgICAgaW1wbGllZHM6IGludGVybmFsTGlua09ialtdO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBjb25zdCByZXN1bHRzRmlsdGVyID0gKFxyXG4gICAgICAgIGl0ZW06IFNxdWFyZUl0ZW0sXHJcbiAgICAgICAgZGlyOiBEaXJlY3Rpb25zLFxyXG4gICAgICAgIG9wcERpcjogRGlyZWN0aW9ucyxcclxuICAgICAgICBhcnJvdzogc3RyaW5nXHJcbiAgICAgICkgPT5cclxuICAgICAgICBoaWVyW2Rpcl0uaW5jbHVkZXMoaXRlbS5maWVsZCkgfHxcclxuICAgICAgICAoaXRlbS5maWVsZC5pbmNsdWRlcyhgPCR7YXJyb3d9PmApICYmXHJcbiAgICAgICAgICBoaWVyW29wcERpcl0uaW5jbHVkZXMoaXRlbS5maWVsZC5zcGxpdChcIiA8XCIpWzBdKSk7XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IGRpciBpbiByZWFsc25JbXBsaWVkcykge1xyXG4gICAgICAgIGNvbnN0IG9wcERpciA9IGdldE9wcERpcihkaXIgYXMgRGlyZWN0aW9ucyk7XHJcbiAgICAgICAgY29uc3QgYXJyb3cgPSBBUlJPV19ESVJFQ1RJT05TW2Rpcl07XHJcbiAgICAgICAgY29uc3QgeyByZWFscywgaW1wbGllZHMgfSA9IHJlYWxzbkltcGxpZWRzW2Rpcl07XHJcblxyXG4gICAgICAgIGZpbHRlcmVkUmVhbE5JbXBsaWVkW2Rpcl0ucmVhbHMgPSByZWFsc1xyXG4gICAgICAgICAgLmZpbHRlcigocmVhbCkgPT5cclxuICAgICAgICAgICAgcmVzdWx0c0ZpbHRlcihyZWFsLCBkaXIgYXMgRGlyZWN0aW9ucywgb3BwRGlyLCBhcnJvdylcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5tYXAoKGl0ZW0pID0+XHJcbiAgICAgICAgICAgIHRoaXMudG9JbnRlcm5hbExpbmtPYmooaXRlbS50bywgdHJ1ZSwgbnVsbCwgaXRlbS5pbXBsaWVkKVxyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgZmlsdGVyZWRSZWFsTkltcGxpZWRbZGlyXS5pbXBsaWVkcyA9IGltcGxpZWRzXHJcbiAgICAgICAgICAuZmlsdGVyKChpbXBsaWVkKSA9PlxyXG4gICAgICAgICAgICByZXN1bHRzRmlsdGVyKGltcGxpZWQsIGRpciBhcyBEaXJlY3Rpb25zLCBvcHBEaXIsIGFycm93KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLm1hcCgoaXRlbSkgPT5cclxuICAgICAgICAgICAgdGhpcy50b0ludGVybmFsTGlua09iaihpdGVtLnRvLCBmYWxzZSwgbnVsbCwgaXRlbS5pbXBsaWVkKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IHtcclxuICAgICAgICB1cDogeyByZWFsczogcnUsIGltcGxpZWRzOiBpdSB9LFxyXG4gICAgICAgIHNhbWU6IHsgcmVhbHM6IHJzLCBpbXBsaWVkczogaXMgfSxcclxuICAgICAgICBkb3duOiB7IHJlYWxzOiByZCwgaW1wbGllZHM6IGlkIH0sXHJcbiAgICAgICAgbmV4dDogeyByZWFsczogcm4sIGltcGxpZWRzOiBpTiB9LFxyXG4gICAgICAgIHByZXY6IHsgcmVhbHM6IHJwLCBpbXBsaWVkczogaXAgfSxcclxuICAgICAgfSA9IGZpbHRlcmVkUmVhbE5JbXBsaWVkO1xyXG5cclxuICAgICAgLy8gIVNFQ1RJT05cclxuXHJcbiAgICAgIFtpdSwgaXMsIGlkLCBpTiwgaXBdID0gW1xyXG4gICAgICAgIHRoaXMucmVtb3ZlRHVwbGljYXRlSW1wbGllZChydSwgaXUpLFxyXG4gICAgICAgIHRoaXMucmVtb3ZlRHVwbGljYXRlSW1wbGllZChycywgaXMpLFxyXG4gICAgICAgIHRoaXMucmVtb3ZlRHVwbGljYXRlSW1wbGllZChyZCwgaWQpLFxyXG4gICAgICAgIHRoaXMucmVtb3ZlRHVwbGljYXRlSW1wbGllZChybiwgaU4pLFxyXG4gICAgICAgIHRoaXMucmVtb3ZlRHVwbGljYXRlSW1wbGllZChycCwgaXApLFxyXG4gICAgICBdO1xyXG5cclxuICAgICAgY29uc3QgaVNhbWVOb0R1cDogaW50ZXJuYWxMaW5rT2JqW10gPSBbXTtcclxuICAgICAgaXMuZm9yRWFjaCgoaW1wU2liKSA9PiB7XHJcbiAgICAgICAgaWYgKGlTYW1lTm9EdXAuZXZlcnkoKG5vRHVwKSA9PiBub0R1cC50byAhPT0gaW1wU2liLnRvKSkge1xyXG4gICAgICAgICAgaVNhbWVOb0R1cC5wdXNoKGltcFNpYik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaXMgPSBpU2FtZU5vRHVwO1xyXG5cclxuICAgICAgY29uc3QgZ2V0RmllbGRJbkhpZXIgPSAoZGlyOiBEaXJlY3Rpb25zKSA9PlxyXG4gICAgICAgIGhpZXJbZGlyXVswXVxyXG4gICAgICAgICAgPyBoaWVyW2Rpcl0uam9pbihcIiwgXCIpXHJcbiAgICAgICAgICA6IGAke2hpZXJbZ2V0T3BwRGlyKGRpcildLmpvaW4oXCIsXCIpfSR7QVJST1dfRElSRUNUSU9OU1tkaXJdfWA7XHJcblxyXG4gICAgICBjb25zdCBzcXVhcmVzID0gW3J1LCBycywgcmQsIHJuLCBycCwgaXUsIGlzLCBpZCwgaU4sIGlwXTtcclxuXHJcbiAgICAgIGlmIChlbmFibGVBbHBoYVNvcnQpXHJcbiAgICAgICAgc3F1YXJlcy5mb3JFYWNoKChzcSkgPT4gc3Euc29ydCh0aGlzLnNvcnRJdGVtc0FscGhhKSk7XHJcblxyXG4gICAgICBzcXVhcmVzLmZvckVhY2goKHNxKSA9PiBzcS5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcikpO1xyXG5cclxuICAgICAgaW5mbyhbXHJcbiAgICAgICAgeyBydSB9LFxyXG4gICAgICAgIHsgcnMgfSxcclxuICAgICAgICB7IHJkIH0sXHJcbiAgICAgICAgeyBybiB9LFxyXG4gICAgICAgIHsgcnAgfSxcclxuICAgICAgICB7IGl1IH0sXHJcbiAgICAgICAgeyBpcyB9LFxyXG4gICAgICAgIHsgaWQgfSxcclxuICAgICAgICB7IGlOIH0sXHJcbiAgICAgICAgeyBpcCB9LFxyXG4gICAgICBdKTtcclxuXHJcbiAgICAgIGNvbnN0IHNxdWFyZSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICByZWFsSXRlbXM6IHJ1LFxyXG4gICAgICAgICAgaW1wbGllZEl0ZW1zOiBpdSxcclxuICAgICAgICAgIGZpZWxkOiBnZXRGaWVsZEluSGllcihcInVwXCIpLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHJlYWxJdGVtczogcnMsXHJcbiAgICAgICAgICBpbXBsaWVkSXRlbXM6IGlzLFxyXG4gICAgICAgICAgZmllbGQ6IGdldEZpZWxkSW5IaWVyKFwic2FtZVwiKSxcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICB7XHJcbiAgICAgICAgICByZWFsSXRlbXM6IHJkLFxyXG4gICAgICAgICAgaW1wbGllZEl0ZW1zOiBpZCxcclxuICAgICAgICAgIGZpZWxkOiBnZXRGaWVsZEluSGllcihcImRvd25cIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICByZWFsSXRlbXM6IHJuLFxyXG4gICAgICAgICAgaW1wbGllZEl0ZW1zOiBpTixcclxuICAgICAgICAgIGZpZWxkOiBnZXRGaWVsZEluSGllcihcIm5leHRcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICByZWFsSXRlbXM6IHJwLFxyXG4gICAgICAgICAgaW1wbGllZEl0ZW1zOiBpcCxcclxuICAgICAgICAgIGZpZWxkOiBnZXRGaWVsZEluSGllcihcInByZXZcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgXTtcclxuXHJcbiAgICAgIHJldHVybiBzcXVhcmVEaXJlY3Rpb25zT3JkZXIubWFwKChvcmRlcikgPT4gc3F1YXJlW29yZGVyXSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGRyYXcoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCB7IGNvbnRlbnRFbCwgZGIsIHBsdWdpbiB9ID0gdGhpcztcclxuICAgICAgZGIuc3RhcnQyRyhcIkRyYXcgTWF0cml4IFZpZXdcIik7XHJcbiAgICAgIGNvbnRlbnRFbC5lbXB0eSgpO1xyXG5cclxuICAgICAgY29uc3QgeyB1c2VySGllcnMgfSA9IHBsdWdpbi5zZXR0aW5ncztcclxuXHJcbiAgICAgIGNvbnN0IGN1cnJGaWxlID0gZ2V0Q3VyckZpbGUoKTtcclxuICAgICAgaWYgKCFjdXJyRmlsZSkgcmV0dXJuO1xyXG5cclxuICAgICAgY29uc3QgaGllclNxdWFyZXMgPSB0aGlzLmdldEhpZXJTcXVhcmVzKHVzZXJIaWVycywgY3VyckZpbGUpLmZpbHRlcihcclxuICAgICAgICAoc3F1YXJlQXJyKSA9PlxyXG4gICAgICAgICAgc3F1YXJlQXJyLnNvbWUoXHJcbiAgICAgICAgICAgIChzcSkgPT4gc3EucmVhbEl0ZW1zLmxlbmd0aCArIHNxLmltcGxpZWRJdGVtcy5sZW5ndGggPiAwXHJcbiAgICAgICAgICApXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBuZXcgTWF0cml4KHtcclxuICAgICAgICB0YXJnZXQ6IGNvbnRlbnRFbCxcclxuICAgICAgICBwcm9wczogeyBoaWVyU3F1YXJlcywgbWF0cml4VmlldzogdGhpcywgY3VyckZpbGUgfSxcclxuICAgICAgfSlcclxuXHJcblxyXG4gICAgICBkYi5lbmQyRygpO1xyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgIGVycm9yKGVycik7XHJcbiAgICAgIHRoaXMuZGIuZW5kMkcoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwgImltcG9ydCB7IGRlYnVnLCBpbmZvLCBsZXZlbHMgfSBmcm9tIFwibG9nbGV2ZWxcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcInNyYy9tYWluXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRGVidWdnZXIge1xyXG4gIHBsdWdpbjogQkNQbHVnaW47XHJcbiAgY29uc3RydWN0b3IocGx1Z2luOiBCQ1BsdWdpbikge1xyXG4gICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XHJcbiAgfVxyXG5cclxuICBkZWJ1Z0xlc3NUaGFuID0gKGxldmVsOiBudW1iZXIpID0+XHJcbiAgICBsZXZlbHNbdGhpcy5wbHVnaW4uc2V0dGluZ3MuZGVidWdNb2RlXSA8IGxldmVsO1xyXG5cclxuICBzdGFydDJHKGdyb3VwOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmRlYnVnTGVzc1RoYW4oMykpIGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQoZ3JvdXApO1xyXG4gIH1cclxuICBlbmQyRyguLi5tc2dzOiBhbnlbXSkge1xyXG4gICAgaWYgKHRoaXMuZGVidWdMZXNzVGhhbigzKSkge1xyXG4gICAgICBpZiAobXNncy5sZW5ndGgpIGluZm8oLi4ubXNncyk7XHJcbiAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgc3RhcnQxRyhncm91cDogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5kZWJ1Z0xlc3NUaGFuKDIpKSBjb25zb2xlLmdyb3VwQ29sbGFwc2VkKGdyb3VwKTtcclxuICB9XHJcbiAgZW5kMUcoLi4ubXNnczogYW55W10pIHtcclxuICAgIGlmICh0aGlzLmRlYnVnTGVzc1RoYW4oMikpIHtcclxuICAgICAgaWYgKG1zZ3MubGVuZ3RoKSBkZWJ1ZyguLi5tc2dzKTtcclxuICAgICAgY29uc29sZS5ncm91cEVuZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhcnRHcyguLi5ncm91cHM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLnN0YXJ0MkcoZ3JvdXBzWzBdKTtcclxuICAgIGlmIChncm91cHNbMV0pIHRoaXMuc3RhcnQxRyhncm91cHNbMV0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW5kIGEgZGVidWcgYW5kIGluZm8gZ3JvdXAsIGxvZ2dpbmcgYG1zZ3NgIGluIGBlbmREZWJ1Z0dyb3VwYFxyXG4gICAqIEBwYXJhbSAgezF8Mn0gY291bnQgVGhlIG51bWJlciBvZiBncm91cHMgdG8gZW5kLiBgMWAgZW5kcyBUcmFjZSwgMiBlbmRzIGJvdGhcclxuICAgKiBAcGFyYW0gIHthbnlbXX0gLi4ubXNnc1xyXG4gICAqL1xyXG4gIGVuZEdzKGNvdW50OiAxIHwgMiwgLi4ubXNnczogYW55W10pIHtcclxuICAgIGlmIChjb3VudCA9PT0gMSkgdGhpcy5lbmQyRyguLi5tc2dzKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmVuZDFHKCk7XHJcbiAgICAgIHRoaXMuZW5kMkcoLi4ubXNncyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsICJmdW5jdGlvbiBub29wKCkgeyB9XG5jb25zdCBpZGVudGl0eSA9IHggPT4geDtcbmZ1bmN0aW9uIGFzc2lnbih0YXIsIHNyYykge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBmb3IgKGNvbnN0IGsgaW4gc3JjKVxuICAgICAgICB0YXJba10gPSBzcmNba107XG4gICAgcmV0dXJuIHRhcjtcbn1cbmZ1bmN0aW9uIGlzX3Byb21pc2UodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJztcbn1cbmZ1bmN0aW9uIGFkZF9sb2NhdGlvbihlbGVtZW50LCBmaWxlLCBsaW5lLCBjb2x1bW4sIGNoYXIpIHtcbiAgICBlbGVtZW50Ll9fc3ZlbHRlX21ldGEgPSB7XG4gICAgICAgIGxvYzogeyBmaWxlLCBsaW5lLCBjb2x1bW4sIGNoYXIgfVxuICAgIH07XG59XG5mdW5jdGlvbiBydW4oZm4pIHtcbiAgICByZXR1cm4gZm4oKTtcbn1cbmZ1bmN0aW9uIGJsYW5rX29iamVjdCgpIHtcbiAgICByZXR1cm4gT2JqZWN0LmNyZWF0ZShudWxsKTtcbn1cbmZ1bmN0aW9uIHJ1bl9hbGwoZm5zKSB7XG4gICAgZm5zLmZvckVhY2gocnVuKTtcbn1cbmZ1bmN0aW9uIGlzX2Z1bmN0aW9uKHRoaW5nKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGluZyA9PT0gJ2Z1bmN0aW9uJztcbn1cbmZ1bmN0aW9uIHNhZmVfbm90X2VxdWFsKGEsIGIpIHtcbiAgICByZXR1cm4gYSAhPSBhID8gYiA9PSBiIDogYSAhPT0gYiB8fCAoKGEgJiYgdHlwZW9mIGEgPT09ICdvYmplY3QnKSB8fCB0eXBlb2YgYSA9PT0gJ2Z1bmN0aW9uJyk7XG59XG5sZXQgc3JjX3VybF9lcXVhbF9hbmNob3I7XG5mdW5jdGlvbiBzcmNfdXJsX2VxdWFsKGVsZW1lbnRfc3JjLCB1cmwpIHtcbiAgICBpZiAoIXNyY191cmxfZXF1YWxfYW5jaG9yKSB7XG4gICAgICAgIHNyY191cmxfZXF1YWxfYW5jaG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIH1cbiAgICBzcmNfdXJsX2VxdWFsX2FuY2hvci5ocmVmID0gdXJsO1xuICAgIHJldHVybiBlbGVtZW50X3NyYyA9PT0gc3JjX3VybF9lcXVhbF9hbmNob3IuaHJlZjtcbn1cbmZ1bmN0aW9uIG5vdF9lcXVhbChhLCBiKSB7XG4gICAgcmV0dXJuIGEgIT0gYSA/IGIgPT0gYiA6IGEgIT09IGI7XG59XG5mdW5jdGlvbiBpc19lbXB0eShvYmopIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5sZW5ndGggPT09IDA7XG59XG5mdW5jdGlvbiB2YWxpZGF0ZV9zdG9yZShzdG9yZSwgbmFtZSkge1xuICAgIGlmIChzdG9yZSAhPSBudWxsICYmIHR5cGVvZiBzdG9yZS5zdWJzY3JpYmUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHtuYW1lfScgaXMgbm90IGEgc3RvcmUgd2l0aCBhICdzdWJzY3JpYmUnIG1ldGhvZGApO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHN1YnNjcmliZShzdG9yZSwgLi4uY2FsbGJhY2tzKSB7XG4gICAgaWYgKHN0b3JlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG5vb3A7XG4gICAgfVxuICAgIGNvbnN0IHVuc3ViID0gc3RvcmUuc3Vic2NyaWJlKC4uLmNhbGxiYWNrcyk7XG4gICAgcmV0dXJuIHVuc3ViLnVuc3Vic2NyaWJlID8gKCkgPT4gdW5zdWIudW5zdWJzY3JpYmUoKSA6IHVuc3ViO1xufVxuZnVuY3Rpb24gZ2V0X3N0b3JlX3ZhbHVlKHN0b3JlKSB7XG4gICAgbGV0IHZhbHVlO1xuICAgIHN1YnNjcmliZShzdG9yZSwgXyA9PiB2YWx1ZSA9IF8pKCk7XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuZnVuY3Rpb24gY29tcG9uZW50X3N1YnNjcmliZShjb21wb25lbnQsIHN0b3JlLCBjYWxsYmFjaykge1xuICAgIGNvbXBvbmVudC4kJC5vbl9kZXN0cm95LnB1c2goc3Vic2NyaWJlKHN0b3JlLCBjYWxsYmFjaykpO1xufVxuZnVuY3Rpb24gY3JlYXRlX3Nsb3QoZGVmaW5pdGlvbiwgY3R4LCAkJHNjb3BlLCBmbikge1xuICAgIGlmIChkZWZpbml0aW9uKSB7XG4gICAgICAgIGNvbnN0IHNsb3RfY3R4ID0gZ2V0X3Nsb3RfY29udGV4dChkZWZpbml0aW9uLCBjdHgsICQkc2NvcGUsIGZuKTtcbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb25bMF0oc2xvdF9jdHgpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGdldF9zbG90X2NvbnRleHQoZGVmaW5pdGlvbiwgY3R4LCAkJHNjb3BlLCBmbikge1xuICAgIHJldHVybiBkZWZpbml0aW9uWzFdICYmIGZuXG4gICAgICAgID8gYXNzaWduKCQkc2NvcGUuY3R4LnNsaWNlKCksIGRlZmluaXRpb25bMV0oZm4oY3R4KSkpXG4gICAgICAgIDogJCRzY29wZS5jdHg7XG59XG5mdW5jdGlvbiBnZXRfc2xvdF9jaGFuZ2VzKGRlZmluaXRpb24sICQkc2NvcGUsIGRpcnR5LCBmbikge1xuICAgIGlmIChkZWZpbml0aW9uWzJdICYmIGZuKSB7XG4gICAgICAgIGNvbnN0IGxldHMgPSBkZWZpbml0aW9uWzJdKGZuKGRpcnR5KSk7XG4gICAgICAgIGlmICgkJHNjb3BlLmRpcnR5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBsZXRzO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbGV0cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGNvbnN0IG1lcmdlZCA9IFtdO1xuICAgICAgICAgICAgY29uc3QgbGVuID0gTWF0aC5tYXgoJCRzY29wZS5kaXJ0eS5sZW5ndGgsIGxldHMubGVuZ3RoKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpICs9IDEpIHtcbiAgICAgICAgICAgICAgICBtZXJnZWRbaV0gPSAkJHNjb3BlLmRpcnR5W2ldIHwgbGV0c1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBtZXJnZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICQkc2NvcGUuZGlydHkgfCBsZXRzO1xuICAgIH1cbiAgICByZXR1cm4gJCRzY29wZS5kaXJ0eTtcbn1cbmZ1bmN0aW9uIHVwZGF0ZV9zbG90X2Jhc2Uoc2xvdCwgc2xvdF9kZWZpbml0aW9uLCBjdHgsICQkc2NvcGUsIHNsb3RfY2hhbmdlcywgZ2V0X3Nsb3RfY29udGV4dF9mbikge1xuICAgIGlmIChzbG90X2NoYW5nZXMpIHtcbiAgICAgICAgY29uc3Qgc2xvdF9jb250ZXh0ID0gZ2V0X3Nsb3RfY29udGV4dChzbG90X2RlZmluaXRpb24sIGN0eCwgJCRzY29wZSwgZ2V0X3Nsb3RfY29udGV4dF9mbik7XG4gICAgICAgIHNsb3QucChzbG90X2NvbnRleHQsIHNsb3RfY2hhbmdlcyk7XG4gICAgfVxufVxuZnVuY3Rpb24gdXBkYXRlX3Nsb3Qoc2xvdCwgc2xvdF9kZWZpbml0aW9uLCBjdHgsICQkc2NvcGUsIGRpcnR5LCBnZXRfc2xvdF9jaGFuZ2VzX2ZuLCBnZXRfc2xvdF9jb250ZXh0X2ZuKSB7XG4gICAgY29uc3Qgc2xvdF9jaGFuZ2VzID0gZ2V0X3Nsb3RfY2hhbmdlcyhzbG90X2RlZmluaXRpb24sICQkc2NvcGUsIGRpcnR5LCBnZXRfc2xvdF9jaGFuZ2VzX2ZuKTtcbiAgICB1cGRhdGVfc2xvdF9iYXNlKHNsb3QsIHNsb3RfZGVmaW5pdGlvbiwgY3R4LCAkJHNjb3BlLCBzbG90X2NoYW5nZXMsIGdldF9zbG90X2NvbnRleHRfZm4pO1xufVxuZnVuY3Rpb24gZ2V0X2FsbF9kaXJ0eV9mcm9tX3Njb3BlKCQkc2NvcGUpIHtcbiAgICBpZiAoJCRzY29wZS5jdHgubGVuZ3RoID4gMzIpIHtcbiAgICAgICAgY29uc3QgZGlydHkgPSBbXTtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gJCRzY29wZS5jdHgubGVuZ3RoIC8gMzI7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGRpcnR5W2ldID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRpcnR5O1xuICAgIH1cbiAgICByZXR1cm4gLTE7XG59XG5mdW5jdGlvbiBleGNsdWRlX2ludGVybmFsX3Byb3BzKHByb3BzKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBrIGluIHByb3BzKVxuICAgICAgICBpZiAoa1swXSAhPT0gJyQnKVxuICAgICAgICAgICAgcmVzdWx0W2tdID0gcHJvcHNba107XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIGNvbXB1dGVfcmVzdF9wcm9wcyhwcm9wcywga2V5cykge1xuICAgIGNvbnN0IHJlc3QgPSB7fTtcbiAgICBrZXlzID0gbmV3IFNldChrZXlzKTtcbiAgICBmb3IgKGNvbnN0IGsgaW4gcHJvcHMpXG4gICAgICAgIGlmICgha2V5cy5oYXMoaykgJiYga1swXSAhPT0gJyQnKVxuICAgICAgICAgICAgcmVzdFtrXSA9IHByb3BzW2tdO1xuICAgIHJldHVybiByZXN0O1xufVxuZnVuY3Rpb24gY29tcHV0ZV9zbG90cyhzbG90cykge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IGluIHNsb3RzKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIG9uY2UoZm4pIHtcbiAgICBsZXQgcmFuID0gZmFsc2U7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgIGlmIChyYW4pXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHJhbiA9IHRydWU7XG4gICAgICAgIGZuLmNhbGwodGhpcywgLi4uYXJncyk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIG51bGxfdG9fZW1wdHkodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPT0gbnVsbCA/ICcnIDogdmFsdWU7XG59XG5mdW5jdGlvbiBzZXRfc3RvcmVfdmFsdWUoc3RvcmUsIHJldCwgdmFsdWUpIHtcbiAgICBzdG9yZS5zZXQodmFsdWUpO1xuICAgIHJldHVybiByZXQ7XG59XG5jb25zdCBoYXNfcHJvcCA9IChvYmosIHByb3ApID0+IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApO1xuZnVuY3Rpb24gYWN0aW9uX2Rlc3Ryb3llcihhY3Rpb25fcmVzdWx0KSB7XG4gICAgcmV0dXJuIGFjdGlvbl9yZXN1bHQgJiYgaXNfZnVuY3Rpb24oYWN0aW9uX3Jlc3VsdC5kZXN0cm95KSA/IGFjdGlvbl9yZXN1bHQuZGVzdHJveSA6IG5vb3A7XG59XG5cbmNvbnN0IGlzX2NsaWVudCA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnO1xubGV0IG5vdyA9IGlzX2NsaWVudFxuICAgID8gKCkgPT4gd2luZG93LnBlcmZvcm1hbmNlLm5vdygpXG4gICAgOiAoKSA9PiBEYXRlLm5vdygpO1xubGV0IHJhZiA9IGlzX2NsaWVudCA/IGNiID0+IHJlcXVlc3RBbmltYXRpb25GcmFtZShjYikgOiBub29wO1xuLy8gdXNlZCBpbnRlcm5hbGx5IGZvciB0ZXN0aW5nXG5mdW5jdGlvbiBzZXRfbm93KGZuKSB7XG4gICAgbm93ID0gZm47XG59XG5mdW5jdGlvbiBzZXRfcmFmKGZuKSB7XG4gICAgcmFmID0gZm47XG59XG5cbmNvbnN0IHRhc2tzID0gbmV3IFNldCgpO1xuZnVuY3Rpb24gcnVuX3Rhc2tzKG5vdykge1xuICAgIHRhc2tzLmZvckVhY2godGFzayA9PiB7XG4gICAgICAgIGlmICghdGFzay5jKG5vdykpIHtcbiAgICAgICAgICAgIHRhc2tzLmRlbGV0ZSh0YXNrKTtcbiAgICAgICAgICAgIHRhc2suZigpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHRhc2tzLnNpemUgIT09IDApXG4gICAgICAgIHJhZihydW5fdGFza3MpO1xufVxuLyoqXG4gKiBGb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5IVxuICovXG5mdW5jdGlvbiBjbGVhcl9sb29wcygpIHtcbiAgICB0YXNrcy5jbGVhcigpO1xufVxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IHRhc2sgdGhhdCBydW5zIG9uIGVhY2ggcmFmIGZyYW1lXG4gKiB1bnRpbCBpdCByZXR1cm5zIGEgZmFsc3kgdmFsdWUgb3IgaXMgYWJvcnRlZFxuICovXG5mdW5jdGlvbiBsb29wKGNhbGxiYWNrKSB7XG4gICAgbGV0IHRhc2s7XG4gICAgaWYgKHRhc2tzLnNpemUgPT09IDApXG4gICAgICAgIHJhZihydW5fdGFza3MpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHByb21pc2U6IG5ldyBQcm9taXNlKGZ1bGZpbGwgPT4ge1xuICAgICAgICAgICAgdGFza3MuYWRkKHRhc2sgPSB7IGM6IGNhbGxiYWNrLCBmOiBmdWxmaWxsIH0pO1xuICAgICAgICB9KSxcbiAgICAgICAgYWJvcnQoKSB7XG4gICAgICAgICAgICB0YXNrcy5kZWxldGUodGFzayk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG4vLyBUcmFjayB3aGljaCBub2RlcyBhcmUgY2xhaW1lZCBkdXJpbmcgaHlkcmF0aW9uLiBVbmNsYWltZWQgbm9kZXMgY2FuIHRoZW4gYmUgcmVtb3ZlZCBmcm9tIHRoZSBET01cbi8vIGF0IHRoZSBlbmQgb2YgaHlkcmF0aW9uIHdpdGhvdXQgdG91Y2hpbmcgdGhlIHJlbWFpbmluZyBub2Rlcy5cbmxldCBpc19oeWRyYXRpbmcgPSBmYWxzZTtcbmZ1bmN0aW9uIHN0YXJ0X2h5ZHJhdGluZygpIHtcbiAgICBpc19oeWRyYXRpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gZW5kX2h5ZHJhdGluZygpIHtcbiAgICBpc19oeWRyYXRpbmcgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIHVwcGVyX2JvdW5kKGxvdywgaGlnaCwga2V5LCB2YWx1ZSkge1xuICAgIC8vIFJldHVybiBmaXJzdCBpbmRleCBvZiB2YWx1ZSBsYXJnZXIgdGhhbiBpbnB1dCB2YWx1ZSBpbiB0aGUgcmFuZ2UgW2xvdywgaGlnaClcbiAgICB3aGlsZSAobG93IDwgaGlnaCkge1xuICAgICAgICBjb25zdCBtaWQgPSBsb3cgKyAoKGhpZ2ggLSBsb3cpID4+IDEpO1xuICAgICAgICBpZiAoa2V5KG1pZCkgPD0gdmFsdWUpIHtcbiAgICAgICAgICAgIGxvdyA9IG1pZCArIDE7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBoaWdoID0gbWlkO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsb3c7XG59XG5mdW5jdGlvbiBpbml0X2h5ZHJhdGUodGFyZ2V0KSB7XG4gICAgaWYgKHRhcmdldC5oeWRyYXRlX2luaXQpXG4gICAgICAgIHJldHVybjtcbiAgICB0YXJnZXQuaHlkcmF0ZV9pbml0ID0gdHJ1ZTtcbiAgICAvLyBXZSBrbm93IHRoYXQgYWxsIGNoaWxkcmVuIGhhdmUgY2xhaW1fb3JkZXIgdmFsdWVzIHNpbmNlIHRoZSB1bmNsYWltZWQgaGF2ZSBiZWVuIGRldGFjaGVkIGlmIHRhcmdldCBpcyBub3QgPGhlYWQ+XG4gICAgbGV0IGNoaWxkcmVuID0gdGFyZ2V0LmNoaWxkTm9kZXM7XG4gICAgLy8gSWYgdGFyZ2V0IGlzIDxoZWFkPiwgdGhlcmUgbWF5IGJlIGNoaWxkcmVuIHdpdGhvdXQgY2xhaW1fb3JkZXJcbiAgICBpZiAodGFyZ2V0Lm5vZGVOYW1lID09PSAnSEVBRCcpIHtcbiAgICAgICAgY29uc3QgbXlDaGlsZHJlbiA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gY2hpbGRyZW5baV07XG4gICAgICAgICAgICBpZiAobm9kZS5jbGFpbV9vcmRlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgbXlDaGlsZHJlbi5wdXNoKG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNoaWxkcmVuID0gbXlDaGlsZHJlbjtcbiAgICB9XG4gICAgLypcbiAgICAqIFJlb3JkZXIgY2xhaW1lZCBjaGlsZHJlbiBvcHRpbWFsbHkuXG4gICAgKiBXZSBjYW4gcmVvcmRlciBjbGFpbWVkIGNoaWxkcmVuIG9wdGltYWxseSBieSBmaW5kaW5nIHRoZSBsb25nZXN0IHN1YnNlcXVlbmNlIG9mXG4gICAgKiBub2RlcyB0aGF0IGFyZSBhbHJlYWR5IGNsYWltZWQgaW4gb3JkZXIgYW5kIG9ubHkgbW92aW5nIHRoZSByZXN0LiBUaGUgbG9uZ2VzdFxuICAgICogc3Vic2VxdWVuY2Ugc3Vic2VxdWVuY2Ugb2Ygbm9kZXMgdGhhdCBhcmUgY2xhaW1lZCBpbiBvcmRlciBjYW4gYmUgZm91bmQgYnlcbiAgICAqIGNvbXB1dGluZyB0aGUgbG9uZ2VzdCBpbmNyZWFzaW5nIHN1YnNlcXVlbmNlIG9mIC5jbGFpbV9vcmRlciB2YWx1ZXMuXG4gICAgKlxuICAgICogVGhpcyBhbGdvcml0aG0gaXMgb3B0aW1hbCBpbiBnZW5lcmF0aW5nIHRoZSBsZWFzdCBhbW91bnQgb2YgcmVvcmRlciBvcGVyYXRpb25zXG4gICAgKiBwb3NzaWJsZS5cbiAgICAqXG4gICAgKiBQcm9vZjpcbiAgICAqIFdlIGtub3cgdGhhdCwgZ2l2ZW4gYSBzZXQgb2YgcmVvcmRlcmluZyBvcGVyYXRpb25zLCB0aGUgbm9kZXMgdGhhdCBkbyBub3QgbW92ZVxuICAgICogYWx3YXlzIGZvcm0gYW4gaW5jcmVhc2luZyBzdWJzZXF1ZW5jZSwgc2luY2UgdGhleSBkbyBub3QgbW92ZSBhbW9uZyBlYWNoIG90aGVyXG4gICAgKiBtZWFuaW5nIHRoYXQgdGhleSBtdXN0IGJlIGFscmVhZHkgb3JkZXJlZCBhbW9uZyBlYWNoIG90aGVyLiBUaHVzLCB0aGUgbWF4aW1hbFxuICAgICogc2V0IG9mIG5vZGVzIHRoYXQgZG8gbm90IG1vdmUgZm9ybSBhIGxvbmdlc3QgaW5jcmVhc2luZyBzdWJzZXF1ZW5jZS5cbiAgICAqL1xuICAgIC8vIENvbXB1dGUgbG9uZ2VzdCBpbmNyZWFzaW5nIHN1YnNlcXVlbmNlXG4gICAgLy8gbTogc3Vic2VxdWVuY2UgbGVuZ3RoIGogPT4gaW5kZXggayBvZiBzbWFsbGVzdCB2YWx1ZSB0aGF0IGVuZHMgYW4gaW5jcmVhc2luZyBzdWJzZXF1ZW5jZSBvZiBsZW5ndGggalxuICAgIGNvbnN0IG0gPSBuZXcgSW50MzJBcnJheShjaGlsZHJlbi5sZW5ndGggKyAxKTtcbiAgICAvLyBQcmVkZWNlc3NvciBpbmRpY2VzICsgMVxuICAgIGNvbnN0IHAgPSBuZXcgSW50MzJBcnJheShjaGlsZHJlbi5sZW5ndGgpO1xuICAgIG1bMF0gPSAtMTtcbiAgICBsZXQgbG9uZ2VzdCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gY2hpbGRyZW5baV0uY2xhaW1fb3JkZXI7XG4gICAgICAgIC8vIEZpbmQgdGhlIGxhcmdlc3Qgc3Vic2VxdWVuY2UgbGVuZ3RoIHN1Y2ggdGhhdCBpdCBlbmRzIGluIGEgdmFsdWUgbGVzcyB0aGFuIG91ciBjdXJyZW50IHZhbHVlXG4gICAgICAgIC8vIHVwcGVyX2JvdW5kIHJldHVybnMgZmlyc3QgZ3JlYXRlciB2YWx1ZSwgc28gd2Ugc3VidHJhY3Qgb25lXG4gICAgICAgIC8vIHdpdGggZmFzdCBwYXRoIGZvciB3aGVuIHdlIGFyZSBvbiB0aGUgY3VycmVudCBsb25nZXN0IHN1YnNlcXVlbmNlXG4gICAgICAgIGNvbnN0IHNlcUxlbiA9ICgobG9uZ2VzdCA+IDAgJiYgY2hpbGRyZW5bbVtsb25nZXN0XV0uY2xhaW1fb3JkZXIgPD0gY3VycmVudCkgPyBsb25nZXN0ICsgMSA6IHVwcGVyX2JvdW5kKDEsIGxvbmdlc3QsIGlkeCA9PiBjaGlsZHJlblttW2lkeF1dLmNsYWltX29yZGVyLCBjdXJyZW50KSkgLSAxO1xuICAgICAgICBwW2ldID0gbVtzZXFMZW5dICsgMTtcbiAgICAgICAgY29uc3QgbmV3TGVuID0gc2VxTGVuICsgMTtcbiAgICAgICAgLy8gV2UgY2FuIGd1YXJhbnRlZSB0aGF0IGN1cnJlbnQgaXMgdGhlIHNtYWxsZXN0IHZhbHVlLiBPdGhlcndpc2UsIHdlIHdvdWxkIGhhdmUgZ2VuZXJhdGVkIGEgbG9uZ2VyIHNlcXVlbmNlLlxuICAgICAgICBtW25ld0xlbl0gPSBpO1xuICAgICAgICBsb25nZXN0ID0gTWF0aC5tYXgobmV3TGVuLCBsb25nZXN0KTtcbiAgICB9XG4gICAgLy8gVGhlIGxvbmdlc3QgaW5jcmVhc2luZyBzdWJzZXF1ZW5jZSBvZiBub2RlcyAoaW5pdGlhbGx5IHJldmVyc2VkKVxuICAgIGNvbnN0IGxpcyA9IFtdO1xuICAgIC8vIFRoZSByZXN0IG9mIHRoZSBub2Rlcywgbm9kZXMgdGhhdCB3aWxsIGJlIG1vdmVkXG4gICAgY29uc3QgdG9Nb3ZlID0gW107XG4gICAgbGV0IGxhc3QgPSBjaGlsZHJlbi5sZW5ndGggLSAxO1xuICAgIGZvciAobGV0IGN1ciA9IG1bbG9uZ2VzdF0gKyAxOyBjdXIgIT0gMDsgY3VyID0gcFtjdXIgLSAxXSkge1xuICAgICAgICBsaXMucHVzaChjaGlsZHJlbltjdXIgLSAxXSk7XG4gICAgICAgIGZvciAoOyBsYXN0ID49IGN1cjsgbGFzdC0tKSB7XG4gICAgICAgICAgICB0b01vdmUucHVzaChjaGlsZHJlbltsYXN0XSk7XG4gICAgICAgIH1cbiAgICAgICAgbGFzdC0tO1xuICAgIH1cbiAgICBmb3IgKDsgbGFzdCA+PSAwOyBsYXN0LS0pIHtcbiAgICAgICAgdG9Nb3ZlLnB1c2goY2hpbGRyZW5bbGFzdF0pO1xuICAgIH1cbiAgICBsaXMucmV2ZXJzZSgpO1xuICAgIC8vIFdlIHNvcnQgdGhlIG5vZGVzIGJlaW5nIG1vdmVkIHRvIGd1YXJhbnRlZSB0aGF0IHRoZWlyIGluc2VydGlvbiBvcmRlciBtYXRjaGVzIHRoZSBjbGFpbSBvcmRlclxuICAgIHRvTW92ZS5zb3J0KChhLCBiKSA9PiBhLmNsYWltX29yZGVyIC0gYi5jbGFpbV9vcmRlcik7XG4gICAgLy8gRmluYWxseSwgd2UgbW92ZSB0aGUgbm9kZXNcbiAgICBmb3IgKGxldCBpID0gMCwgaiA9IDA7IGkgPCB0b01vdmUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgd2hpbGUgKGogPCBsaXMubGVuZ3RoICYmIHRvTW92ZVtpXS5jbGFpbV9vcmRlciA+PSBsaXNbal0uY2xhaW1fb3JkZXIpIHtcbiAgICAgICAgICAgIGorKztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbmNob3IgPSBqIDwgbGlzLmxlbmd0aCA/IGxpc1tqXSA6IG51bGw7XG4gICAgICAgIHRhcmdldC5pbnNlcnRCZWZvcmUodG9Nb3ZlW2ldLCBhbmNob3IpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFwcGVuZCh0YXJnZXQsIG5vZGUpIHtcbiAgICB0YXJnZXQuYXBwZW5kQ2hpbGQobm9kZSk7XG59XG5mdW5jdGlvbiBhcHBlbmRfc3R5bGVzKHRhcmdldCwgc3R5bGVfc2hlZXRfaWQsIHN0eWxlcykge1xuICAgIGNvbnN0IGFwcGVuZF9zdHlsZXNfdG8gPSBnZXRfcm9vdF9mb3Jfc3R5bGUodGFyZ2V0KTtcbiAgICBpZiAoIWFwcGVuZF9zdHlsZXNfdG8uZ2V0RWxlbWVudEJ5SWQoc3R5bGVfc2hlZXRfaWQpKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlID0gZWxlbWVudCgnc3R5bGUnKTtcbiAgICAgICAgc3R5bGUuaWQgPSBzdHlsZV9zaGVldF9pZDtcbiAgICAgICAgc3R5bGUudGV4dENvbnRlbnQgPSBzdHlsZXM7XG4gICAgICAgIGFwcGVuZF9zdHlsZXNoZWV0KGFwcGVuZF9zdHlsZXNfdG8sIHN0eWxlKTtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRfcm9vdF9mb3Jfc3R5bGUobm9kZSkge1xuICAgIGlmICghbm9kZSlcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50O1xuICAgIGNvbnN0IHJvb3QgPSBub2RlLmdldFJvb3ROb2RlID8gbm9kZS5nZXRSb290Tm9kZSgpIDogbm9kZS5vd25lckRvY3VtZW50O1xuICAgIGlmIChyb290ICYmIHJvb3QuaG9zdCkge1xuICAgICAgICByZXR1cm4gcm9vdDtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGUub3duZXJEb2N1bWVudDtcbn1cbmZ1bmN0aW9uIGFwcGVuZF9lbXB0eV9zdHlsZXNoZWV0KG5vZGUpIHtcbiAgICBjb25zdCBzdHlsZV9lbGVtZW50ID0gZWxlbWVudCgnc3R5bGUnKTtcbiAgICBhcHBlbmRfc3R5bGVzaGVldChnZXRfcm9vdF9mb3Jfc3R5bGUobm9kZSksIHN0eWxlX2VsZW1lbnQpO1xuICAgIHJldHVybiBzdHlsZV9lbGVtZW50O1xufVxuZnVuY3Rpb24gYXBwZW5kX3N0eWxlc2hlZXQobm9kZSwgc3R5bGUpIHtcbiAgICBhcHBlbmQobm9kZS5oZWFkIHx8IG5vZGUsIHN0eWxlKTtcbn1cbmZ1bmN0aW9uIGFwcGVuZF9oeWRyYXRpb24odGFyZ2V0LCBub2RlKSB7XG4gICAgaWYgKGlzX2h5ZHJhdGluZykge1xuICAgICAgICBpbml0X2h5ZHJhdGUodGFyZ2V0KTtcbiAgICAgICAgaWYgKCh0YXJnZXQuYWN0dWFsX2VuZF9jaGlsZCA9PT0gdW5kZWZpbmVkKSB8fCAoKHRhcmdldC5hY3R1YWxfZW5kX2NoaWxkICE9PSBudWxsKSAmJiAodGFyZ2V0LmFjdHVhbF9lbmRfY2hpbGQucGFyZW50RWxlbWVudCAhPT0gdGFyZ2V0KSkpIHtcbiAgICAgICAgICAgIHRhcmdldC5hY3R1YWxfZW5kX2NoaWxkID0gdGFyZ2V0LmZpcnN0Q2hpbGQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2tpcCBub2RlcyBvZiB1bmRlZmluZWQgb3JkZXJpbmdcbiAgICAgICAgd2hpbGUgKCh0YXJnZXQuYWN0dWFsX2VuZF9jaGlsZCAhPT0gbnVsbCkgJiYgKHRhcmdldC5hY3R1YWxfZW5kX2NoaWxkLmNsYWltX29yZGVyID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICB0YXJnZXQuYWN0dWFsX2VuZF9jaGlsZCA9IHRhcmdldC5hY3R1YWxfZW5kX2NoaWxkLm5leHRTaWJsaW5nO1xuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlICE9PSB0YXJnZXQuYWN0dWFsX2VuZF9jaGlsZCkge1xuICAgICAgICAgICAgLy8gV2Ugb25seSBpbnNlcnQgaWYgdGhlIG9yZGVyaW5nIG9mIHRoaXMgbm9kZSBzaG91bGQgYmUgbW9kaWZpZWQgb3IgdGhlIHBhcmVudCBub2RlIGlzIG5vdCB0YXJnZXRcbiAgICAgICAgICAgIGlmIChub2RlLmNsYWltX29yZGVyICE9PSB1bmRlZmluZWQgfHwgbm9kZS5wYXJlbnROb2RlICE9PSB0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQuaW5zZXJ0QmVmb3JlKG5vZGUsIHRhcmdldC5hY3R1YWxfZW5kX2NoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRhcmdldC5hY3R1YWxfZW5kX2NoaWxkID0gbm9kZS5uZXh0U2libGluZztcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmIChub2RlLnBhcmVudE5vZGUgIT09IHRhcmdldCB8fCBub2RlLm5leHRTaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICAgIHRhcmdldC5hcHBlbmRDaGlsZChub2RlKTtcbiAgICB9XG59XG5mdW5jdGlvbiBpbnNlcnQodGFyZ2V0LCBub2RlLCBhbmNob3IpIHtcbiAgICB0YXJnZXQuaW5zZXJ0QmVmb3JlKG5vZGUsIGFuY2hvciB8fCBudWxsKTtcbn1cbmZ1bmN0aW9uIGluc2VydF9oeWRyYXRpb24odGFyZ2V0LCBub2RlLCBhbmNob3IpIHtcbiAgICBpZiAoaXNfaHlkcmF0aW5nICYmICFhbmNob3IpIHtcbiAgICAgICAgYXBwZW5kX2h5ZHJhdGlvbih0YXJnZXQsIG5vZGUpO1xuICAgIH1cbiAgICBlbHNlIGlmIChub2RlLnBhcmVudE5vZGUgIT09IHRhcmdldCB8fCBub2RlLm5leHRTaWJsaW5nICE9IGFuY2hvcikge1xuICAgICAgICB0YXJnZXQuaW5zZXJ0QmVmb3JlKG5vZGUsIGFuY2hvciB8fCBudWxsKTtcbiAgICB9XG59XG5mdW5jdGlvbiBkZXRhY2gobm9kZSkge1xuICAgIG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2RlKTtcbn1cbmZ1bmN0aW9uIGRlc3Ryb3lfZWFjaChpdGVyYXRpb25zLCBkZXRhY2hpbmcpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZXJhdGlvbnMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgaWYgKGl0ZXJhdGlvbnNbaV0pXG4gICAgICAgICAgICBpdGVyYXRpb25zW2ldLmQoZGV0YWNoaW5nKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbGVtZW50KG5hbWUpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChuYW1lKTtcbn1cbmZ1bmN0aW9uIGVsZW1lbnRfaXMobmFtZSwgaXMpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChuYW1lLCB7IGlzIH0pO1xufVxuZnVuY3Rpb24gb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllcyhvYmosIGV4Y2x1ZGUpIHtcbiAgICBjb25zdCB0YXJnZXQgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGsgaW4gb2JqKSB7XG4gICAgICAgIGlmIChoYXNfcHJvcChvYmosIGspXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAmJiBleGNsdWRlLmluZGV4T2YoaykgPT09IC0xKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0YXJnZXRba10gPSBvYmpba107XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbn1cbmZ1bmN0aW9uIHN2Z19lbGVtZW50KG5hbWUpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsIG5hbWUpO1xufVxuZnVuY3Rpb24gdGV4dChkYXRhKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGRhdGEpO1xufVxuZnVuY3Rpb24gc3BhY2UoKSB7XG4gICAgcmV0dXJuIHRleHQoJyAnKTtcbn1cbmZ1bmN0aW9uIGVtcHR5KCkge1xuICAgIHJldHVybiB0ZXh0KCcnKTtcbn1cbmZ1bmN0aW9uIGxpc3Rlbihub2RlLCBldmVudCwgaGFuZGxlciwgb3B0aW9ucykge1xuICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgaGFuZGxlciwgb3B0aW9ucyk7XG4gICAgcmV0dXJuICgpID0+IG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgaGFuZGxlciwgb3B0aW9ucyk7XG59XG5mdW5jdGlvbiBwcmV2ZW50X2RlZmF1bHQoZm4pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIGZuLmNhbGwodGhpcywgZXZlbnQpO1xuICAgIH07XG59XG5mdW5jdGlvbiBzdG9wX3Byb3BhZ2F0aW9uKGZuKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByZXR1cm4gZm4uY2FsbCh0aGlzLCBldmVudCk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIHNlbGYoZm4pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcylcbiAgICAgICAgICAgIGZuLmNhbGwodGhpcywgZXZlbnQpO1xuICAgIH07XG59XG5mdW5jdGlvbiB0cnVzdGVkKGZuKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmIChldmVudC5pc1RydXN0ZWQpXG4gICAgICAgICAgICBmbi5jYWxsKHRoaXMsIGV2ZW50KTtcbiAgICB9O1xufVxuZnVuY3Rpb24gYXR0cihub2RlLCBhdHRyaWJ1dGUsIHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpXG4gICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKGF0dHJpYnV0ZSk7XG4gICAgZWxzZSBpZiAobm9kZS5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKSAhPT0gdmFsdWUpXG4gICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpO1xufVxuZnVuY3Rpb24gc2V0X2F0dHJpYnV0ZXMobm9kZSwgYXR0cmlidXRlcykge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBkZXNjcmlwdG9ycyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG5vZGUuX19wcm90b19fKTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBhdHRyaWJ1dGVzKSB7XG4gICAgICAgIGlmIChhdHRyaWJ1dGVzW2tleV0gPT0gbnVsbCkge1xuICAgICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChrZXkgPT09ICdzdHlsZScpIHtcbiAgICAgICAgICAgIG5vZGUuc3R5bGUuY3NzVGV4dCA9IGF0dHJpYnV0ZXNba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChrZXkgPT09ICdfX3ZhbHVlJykge1xuICAgICAgICAgICAgbm9kZS52YWx1ZSA9IG5vZGVba2V5XSA9IGF0dHJpYnV0ZXNba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChkZXNjcmlwdG9yc1trZXldICYmIGRlc2NyaXB0b3JzW2tleV0uc2V0KSB7XG4gICAgICAgICAgICBub2RlW2tleV0gPSBhdHRyaWJ1dGVzW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhdHRyKG5vZGUsIGtleSwgYXR0cmlidXRlc1trZXldKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIHNldF9zdmdfYXR0cmlidXRlcyhub2RlLCBhdHRyaWJ1dGVzKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gYXR0cmlidXRlcykge1xuICAgICAgICBhdHRyKG5vZGUsIGtleSwgYXR0cmlidXRlc1trZXldKTtcbiAgICB9XG59XG5mdW5jdGlvbiBzZXRfY3VzdG9tX2VsZW1lbnRfZGF0YShub2RlLCBwcm9wLCB2YWx1ZSkge1xuICAgIGlmIChwcm9wIGluIG5vZGUpIHtcbiAgICAgICAgbm9kZVtwcm9wXSA9IHR5cGVvZiBub2RlW3Byb3BdID09PSAnYm9vbGVhbicgJiYgdmFsdWUgPT09ICcnID8gdHJ1ZSA6IHZhbHVlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgYXR0cihub2RlLCBwcm9wLCB2YWx1ZSk7XG4gICAgfVxufVxuZnVuY3Rpb24geGxpbmtfYXR0cihub2RlLCBhdHRyaWJ1dGUsIHZhbHVlKSB7XG4gICAgbm9kZS5zZXRBdHRyaWJ1dGVOUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycsIGF0dHJpYnV0ZSwgdmFsdWUpO1xufVxuZnVuY3Rpb24gZ2V0X2JpbmRpbmdfZ3JvdXBfdmFsdWUoZ3JvdXAsIF9fdmFsdWUsIGNoZWNrZWQpIHtcbiAgICBjb25zdCB2YWx1ZSA9IG5ldyBTZXQoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyb3VwLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIGlmIChncm91cFtpXS5jaGVja2VkKVxuICAgICAgICAgICAgdmFsdWUuYWRkKGdyb3VwW2ldLl9fdmFsdWUpO1xuICAgIH1cbiAgICBpZiAoIWNoZWNrZWQpIHtcbiAgICAgICAgdmFsdWUuZGVsZXRlKF9fdmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gQXJyYXkuZnJvbSh2YWx1ZSk7XG59XG5mdW5jdGlvbiB0b19udW1iZXIodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09ICcnID8gbnVsbCA6ICt2YWx1ZTtcbn1cbmZ1bmN0aW9uIHRpbWVfcmFuZ2VzX3RvX2FycmF5KHJhbmdlcykge1xuICAgIGNvbnN0IGFycmF5ID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByYW5nZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgYXJyYXkucHVzaCh7IHN0YXJ0OiByYW5nZXMuc3RhcnQoaSksIGVuZDogcmFuZ2VzLmVuZChpKSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xufVxuZnVuY3Rpb24gY2hpbGRyZW4oZWxlbWVudCkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKGVsZW1lbnQuY2hpbGROb2Rlcyk7XG59XG5mdW5jdGlvbiBpbml0X2NsYWltX2luZm8obm9kZXMpIHtcbiAgICBpZiAobm9kZXMuY2xhaW1faW5mbyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG5vZGVzLmNsYWltX2luZm8gPSB7IGxhc3RfaW5kZXg6IDAsIHRvdGFsX2NsYWltZWQ6IDAgfTtcbiAgICB9XG59XG5mdW5jdGlvbiBjbGFpbV9ub2RlKG5vZGVzLCBwcmVkaWNhdGUsIHByb2Nlc3NOb2RlLCBjcmVhdGVOb2RlLCBkb250VXBkYXRlTGFzdEluZGV4ID0gZmFsc2UpIHtcbiAgICAvLyBUcnkgdG8gZmluZCBub2RlcyBpbiBhbiBvcmRlciBzdWNoIHRoYXQgd2UgbGVuZ3RoZW4gdGhlIGxvbmdlc3QgaW5jcmVhc2luZyBzdWJzZXF1ZW5jZVxuICAgIGluaXRfY2xhaW1faW5mbyhub2Rlcyk7XG4gICAgY29uc3QgcmVzdWx0Tm9kZSA9ICgoKSA9PiB7XG4gICAgICAgIC8vIFdlIGZpcnN0IHRyeSB0byBmaW5kIGFuIGVsZW1lbnQgYWZ0ZXIgdGhlIHByZXZpb3VzIG9uZVxuICAgICAgICBmb3IgKGxldCBpID0gbm9kZXMuY2xhaW1faW5mby5sYXN0X2luZGV4OyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBub2Rlc1tpXTtcbiAgICAgICAgICAgIGlmIChwcmVkaWNhdGUobm9kZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXBsYWNlbWVudCA9IHByb2Nlc3NOb2RlKG5vZGUpO1xuICAgICAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGVzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGVzW2ldID0gcmVwbGFjZW1lbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZG9udFVwZGF0ZUxhc3RJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBub2Rlcy5jbGFpbV9pbmZvLmxhc3RfaW5kZXggPSBpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBPdGhlcndpc2UsIHdlIHRyeSB0byBmaW5kIG9uZSBiZWZvcmVcbiAgICAgICAgLy8gV2UgaXRlcmF0ZSBpbiByZXZlcnNlIHNvIHRoYXQgd2UgZG9uJ3QgZ28gdG9vIGZhciBiYWNrXG4gICAgICAgIGZvciAobGV0IGkgPSBub2Rlcy5jbGFpbV9pbmZvLmxhc3RfaW5kZXggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzW2ldO1xuICAgICAgICAgICAgaWYgKHByZWRpY2F0ZShub2RlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gcHJvY2Vzc05vZGUobm9kZSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZXNbaV0gPSByZXBsYWNlbWVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFkb250VXBkYXRlTGFzdEluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGVzLmNsYWltX2luZm8ubGFzdF9pbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlcGxhY2VtZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2luY2Ugd2Ugc3BsaWNlZCBiZWZvcmUgdGhlIGxhc3RfaW5kZXgsIHdlIGRlY3JlYXNlIGl0XG4gICAgICAgICAgICAgICAgICAgIG5vZGVzLmNsYWltX2luZm8ubGFzdF9pbmRleC0tO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB3ZSBjYW4ndCBmaW5kIGFueSBtYXRjaGluZyBub2RlLCB3ZSBjcmVhdGUgYSBuZXcgb25lXG4gICAgICAgIHJldHVybiBjcmVhdGVOb2RlKCk7XG4gICAgfSkoKTtcbiAgICByZXN1bHROb2RlLmNsYWltX29yZGVyID0gbm9kZXMuY2xhaW1faW5mby50b3RhbF9jbGFpbWVkO1xuICAgIG5vZGVzLmNsYWltX2luZm8udG90YWxfY2xhaW1lZCArPSAxO1xuICAgIHJldHVybiByZXN1bHROb2RlO1xufVxuZnVuY3Rpb24gY2xhaW1fZWxlbWVudF9iYXNlKG5vZGVzLCBuYW1lLCBhdHRyaWJ1dGVzLCBjcmVhdGVfZWxlbWVudCkge1xuICAgIHJldHVybiBjbGFpbV9ub2RlKG5vZGVzLCAobm9kZSkgPT4gbm9kZS5ub2RlTmFtZSA9PT0gbmFtZSwgKG5vZGUpID0+IHtcbiAgICAgICAgY29uc3QgcmVtb3ZlID0gW107XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbm9kZS5hdHRyaWJ1dGVzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGUgPSBub2RlLmF0dHJpYnV0ZXNbal07XG4gICAgICAgICAgICBpZiAoIWF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdKSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlLnB1c2goYXR0cmlidXRlLm5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlbW92ZS5mb3JFYWNoKHYgPT4gbm9kZS5yZW1vdmVBdHRyaWJ1dGUodikpO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0sICgpID0+IGNyZWF0ZV9lbGVtZW50KG5hbWUpKTtcbn1cbmZ1bmN0aW9uIGNsYWltX2VsZW1lbnQobm9kZXMsIG5hbWUsIGF0dHJpYnV0ZXMpIHtcbiAgICByZXR1cm4gY2xhaW1fZWxlbWVudF9iYXNlKG5vZGVzLCBuYW1lLCBhdHRyaWJ1dGVzLCBlbGVtZW50KTtcbn1cbmZ1bmN0aW9uIGNsYWltX3N2Z19lbGVtZW50KG5vZGVzLCBuYW1lLCBhdHRyaWJ1dGVzKSB7XG4gICAgcmV0dXJuIGNsYWltX2VsZW1lbnRfYmFzZShub2RlcywgbmFtZSwgYXR0cmlidXRlcywgc3ZnX2VsZW1lbnQpO1xufVxuZnVuY3Rpb24gY2xhaW1fdGV4dChub2RlcywgZGF0YSkge1xuICAgIHJldHVybiBjbGFpbV9ub2RlKG5vZGVzLCAobm9kZSkgPT4gbm9kZS5ub2RlVHlwZSA9PT0gMywgKG5vZGUpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YVN0ciA9ICcnICsgZGF0YTtcbiAgICAgICAgaWYgKG5vZGUuZGF0YS5zdGFydHNXaXRoKGRhdGFTdHIpKSB7XG4gICAgICAgICAgICBpZiAobm9kZS5kYXRhLmxlbmd0aCAhPT0gZGF0YVN0ci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5zcGxpdFRleHQoZGF0YVN0ci5sZW5ndGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbm9kZS5kYXRhID0gZGF0YVN0cjtcbiAgICAgICAgfVxuICAgIH0sICgpID0+IHRleHQoZGF0YSksIHRydWUgLy8gVGV4dCBub2RlcyBzaG91bGQgbm90IHVwZGF0ZSBsYXN0IGluZGV4IHNpbmNlIGl0IGlzIGxpa2VseSBub3Qgd29ydGggaXQgdG8gZWxpbWluYXRlIGFuIGluY3JlYXNpbmcgc3Vic2VxdWVuY2Ugb2YgYWN0dWFsIGVsZW1lbnRzXG4gICAgKTtcbn1cbmZ1bmN0aW9uIGNsYWltX3NwYWNlKG5vZGVzKSB7XG4gICAgcmV0dXJuIGNsYWltX3RleHQobm9kZXMsICcgJyk7XG59XG5mdW5jdGlvbiBmaW5kX2NvbW1lbnQobm9kZXMsIHRleHQsIHN0YXJ0KSB7XG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgbm9kZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzW2ldO1xuICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gOCAvKiBjb21tZW50IG5vZGUgKi8gJiYgbm9kZS50ZXh0Q29udGVudC50cmltKCkgPT09IHRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBub2Rlcy5sZW5ndGg7XG59XG5mdW5jdGlvbiBjbGFpbV9odG1sX3RhZyhub2Rlcykge1xuICAgIC8vIGZpbmQgaHRtbCBvcGVuaW5nIHRhZ1xuICAgIGNvbnN0IHN0YXJ0X2luZGV4ID0gZmluZF9jb21tZW50KG5vZGVzLCAnSFRNTF9UQUdfU1RBUlQnLCAwKTtcbiAgICBjb25zdCBlbmRfaW5kZXggPSBmaW5kX2NvbW1lbnQobm9kZXMsICdIVE1MX1RBR19FTkQnLCBzdGFydF9pbmRleCk7XG4gICAgaWYgKHN0YXJ0X2luZGV4ID09PSBlbmRfaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBIdG1sVGFnSHlkcmF0aW9uKCk7XG4gICAgfVxuICAgIGluaXRfY2xhaW1faW5mbyhub2Rlcyk7XG4gICAgY29uc3QgaHRtbF90YWdfbm9kZXMgPSBub2Rlcy5zcGxpY2Uoc3RhcnRfaW5kZXgsIGVuZF9pbmRleCArIDEpO1xuICAgIGRldGFjaChodG1sX3RhZ19ub2Rlc1swXSk7XG4gICAgZGV0YWNoKGh0bWxfdGFnX25vZGVzW2h0bWxfdGFnX25vZGVzLmxlbmd0aCAtIDFdKTtcbiAgICBjb25zdCBjbGFpbWVkX25vZGVzID0gaHRtbF90YWdfbm9kZXMuc2xpY2UoMSwgaHRtbF90YWdfbm9kZXMubGVuZ3RoIC0gMSk7XG4gICAgZm9yIChjb25zdCBuIG9mIGNsYWltZWRfbm9kZXMpIHtcbiAgICAgICAgbi5jbGFpbV9vcmRlciA9IG5vZGVzLmNsYWltX2luZm8udG90YWxfY2xhaW1lZDtcbiAgICAgICAgbm9kZXMuY2xhaW1faW5mby50b3RhbF9jbGFpbWVkICs9IDE7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSHRtbFRhZ0h5ZHJhdGlvbihjbGFpbWVkX25vZGVzKTtcbn1cbmZ1bmN0aW9uIHNldF9kYXRhKHRleHQsIGRhdGEpIHtcbiAgICBkYXRhID0gJycgKyBkYXRhO1xuICAgIGlmICh0ZXh0Lndob2xlVGV4dCAhPT0gZGF0YSlcbiAgICAgICAgdGV4dC5kYXRhID0gZGF0YTtcbn1cbmZ1bmN0aW9uIHNldF9pbnB1dF92YWx1ZShpbnB1dCwgdmFsdWUpIHtcbiAgICBpbnB1dC52YWx1ZSA9IHZhbHVlID09IG51bGwgPyAnJyA6IHZhbHVlO1xufVxuZnVuY3Rpb24gc2V0X2lucHV0X3R5cGUoaW5wdXQsIHR5cGUpIHtcbiAgICB0cnkge1xuICAgICAgICBpbnB1dC50eXBlID0gdHlwZTtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gZG8gbm90aGluZ1xuICAgIH1cbn1cbmZ1bmN0aW9uIHNldF9zdHlsZShub2RlLCBrZXksIHZhbHVlLCBpbXBvcnRhbnQpIHtcbiAgICBub2RlLnN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFsdWUsIGltcG9ydGFudCA/ICdpbXBvcnRhbnQnIDogJycpO1xufVxuZnVuY3Rpb24gc2VsZWN0X29wdGlvbihzZWxlY3QsIHZhbHVlKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3Qub3B0aW9ucy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICBjb25zdCBvcHRpb24gPSBzZWxlY3Qub3B0aW9uc1tpXTtcbiAgICAgICAgaWYgKG9wdGlvbi5fX3ZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgb3B0aW9uLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzZWxlY3Quc2VsZWN0ZWRJbmRleCA9IC0xOyAvLyBubyBvcHRpb24gc2hvdWxkIGJlIHNlbGVjdGVkXG59XG5mdW5jdGlvbiBzZWxlY3Rfb3B0aW9ucyhzZWxlY3QsIHZhbHVlKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3Qub3B0aW9ucy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICBjb25zdCBvcHRpb24gPSBzZWxlY3Qub3B0aW9uc1tpXTtcbiAgICAgICAgb3B0aW9uLnNlbGVjdGVkID0gfnZhbHVlLmluZGV4T2Yob3B0aW9uLl9fdmFsdWUpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHNlbGVjdF92YWx1ZShzZWxlY3QpIHtcbiAgICBjb25zdCBzZWxlY3RlZF9vcHRpb24gPSBzZWxlY3QucXVlcnlTZWxlY3RvcignOmNoZWNrZWQnKSB8fCBzZWxlY3Qub3B0aW9uc1swXTtcbiAgICByZXR1cm4gc2VsZWN0ZWRfb3B0aW9uICYmIHNlbGVjdGVkX29wdGlvbi5fX3ZhbHVlO1xufVxuZnVuY3Rpb24gc2VsZWN0X211bHRpcGxlX3ZhbHVlKHNlbGVjdCkge1xuICAgIHJldHVybiBbXS5tYXAuY2FsbChzZWxlY3QucXVlcnlTZWxlY3RvckFsbCgnOmNoZWNrZWQnKSwgb3B0aW9uID0+IG9wdGlvbi5fX3ZhbHVlKTtcbn1cbi8vIHVuZm9ydHVuYXRlbHkgdGhpcyBjYW4ndCBiZSBhIGNvbnN0YW50IGFzIHRoYXQgd291bGRuJ3QgYmUgdHJlZS1zaGFrZWFibGVcbi8vIHNvIHdlIGNhY2hlIHRoZSByZXN1bHQgaW5zdGVhZFxubGV0IGNyb3Nzb3JpZ2luO1xuZnVuY3Rpb24gaXNfY3Jvc3NvcmlnaW4oKSB7XG4gICAgaWYgKGNyb3Nzb3JpZ2luID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY3Jvc3NvcmlnaW4gPSBmYWxzZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cucGFyZW50KSB7XG4gICAgICAgICAgICAgICAgdm9pZCB3aW5kb3cucGFyZW50LmRvY3VtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY3Jvc3NvcmlnaW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjcm9zc29yaWdpbjtcbn1cbmZ1bmN0aW9uIGFkZF9yZXNpemVfbGlzdGVuZXIobm9kZSwgZm4pIHtcbiAgICBjb25zdCBjb21wdXRlZF9zdHlsZSA9IGdldENvbXB1dGVkU3R5bGUobm9kZSk7XG4gICAgaWYgKGNvbXB1dGVkX3N0eWxlLnBvc2l0aW9uID09PSAnc3RhdGljJykge1xuICAgICAgICBub2RlLnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICB9XG4gICAgY29uc3QgaWZyYW1lID0gZWxlbWVudCgnaWZyYW1lJyk7XG4gICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyAnICtcbiAgICAgICAgJ292ZXJmbG93OiBoaWRkZW47IGJvcmRlcjogMDsgb3BhY2l0eTogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHotaW5kZXg6IC0xOycpO1xuICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcbiAgICBpZnJhbWUudGFiSW5kZXggPSAtMTtcbiAgICBjb25zdCBjcm9zc29yaWdpbiA9IGlzX2Nyb3Nzb3JpZ2luKCk7XG4gICAgbGV0IHVuc3Vic2NyaWJlO1xuICAgIGlmIChjcm9zc29yaWdpbikge1xuICAgICAgICBpZnJhbWUuc3JjID0gXCJkYXRhOnRleHQvaHRtbCw8c2NyaXB0Pm9ucmVzaXplPWZ1bmN0aW9uKCl7cGFyZW50LnBvc3RNZXNzYWdlKDAsJyonKX08L3NjcmlwdD5cIjtcbiAgICAgICAgdW5zdWJzY3JpYmUgPSBsaXN0ZW4od2luZG93LCAnbWVzc2FnZScsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LnNvdXJjZSA9PT0gaWZyYW1lLmNvbnRlbnRXaW5kb3cpXG4gICAgICAgICAgICAgICAgZm4oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZnJhbWUuc3JjID0gJ2Fib3V0OmJsYW5rJztcbiAgICAgICAgaWZyYW1lLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgIHVuc3Vic2NyaWJlID0gbGlzdGVuKGlmcmFtZS5jb250ZW50V2luZG93LCAncmVzaXplJywgZm4pO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBhcHBlbmQobm9kZSwgaWZyYW1lKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY3Jvc3NvcmlnaW4pIHtcbiAgICAgICAgICAgIHVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodW5zdWJzY3JpYmUgJiYgaWZyYW1lLmNvbnRlbnRXaW5kb3cpIHtcbiAgICAgICAgICAgIHVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZGV0YWNoKGlmcmFtZSk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIHRvZ2dsZV9jbGFzcyhlbGVtZW50LCBuYW1lLCB0b2dnbGUpIHtcbiAgICBlbGVtZW50LmNsYXNzTGlzdFt0b2dnbGUgPyAnYWRkJyA6ICdyZW1vdmUnXShuYW1lKTtcbn1cbmZ1bmN0aW9uIGN1c3RvbV9ldmVudCh0eXBlLCBkZXRhaWwsIGJ1YmJsZXMgPSBmYWxzZSkge1xuICAgIGNvbnN0IGUgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnQ3VzdG9tRXZlbnQnKTtcbiAgICBlLmluaXRDdXN0b21FdmVudCh0eXBlLCBidWJibGVzLCBmYWxzZSwgZGV0YWlsKTtcbiAgICByZXR1cm4gZTtcbn1cbmZ1bmN0aW9uIHF1ZXJ5X3NlbGVjdG9yX2FsbChzZWxlY3RvciwgcGFyZW50ID0gZG9jdW1lbnQuYm9keSkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHBhcmVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKSk7XG59XG5jbGFzcyBIdG1sVGFnIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lID0gdGhpcy5uID0gbnVsbDtcbiAgICB9XG4gICAgYyhodG1sKSB7XG4gICAgICAgIHRoaXMuaChodG1sKTtcbiAgICB9XG4gICAgbShodG1sLCB0YXJnZXQsIGFuY2hvciA9IG51bGwpIHtcbiAgICAgICAgaWYgKCF0aGlzLmUpIHtcbiAgICAgICAgICAgIHRoaXMuZSA9IGVsZW1lbnQodGFyZ2V0Lm5vZGVOYW1lKTtcbiAgICAgICAgICAgIHRoaXMudCA9IHRhcmdldDtcbiAgICAgICAgICAgIHRoaXMuYyhodG1sKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmkoYW5jaG9yKTtcbiAgICB9XG4gICAgaChodG1sKSB7XG4gICAgICAgIHRoaXMuZS5pbm5lckhUTUwgPSBodG1sO1xuICAgICAgICB0aGlzLm4gPSBBcnJheS5mcm9tKHRoaXMuZS5jaGlsZE5vZGVzKTtcbiAgICB9XG4gICAgaShhbmNob3IpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm4ubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgIGluc2VydCh0aGlzLnQsIHRoaXMubltpXSwgYW5jaG9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwKGh0bWwpIHtcbiAgICAgICAgdGhpcy5kKCk7XG4gICAgICAgIHRoaXMuaChodG1sKTtcbiAgICAgICAgdGhpcy5pKHRoaXMuYSk7XG4gICAgfVxuICAgIGQoKSB7XG4gICAgICAgIHRoaXMubi5mb3JFYWNoKGRldGFjaCk7XG4gICAgfVxufVxuY2xhc3MgSHRtbFRhZ0h5ZHJhdGlvbiBleHRlbmRzIEh0bWxUYWcge1xuICAgIGNvbnN0cnVjdG9yKGNsYWltZWRfbm9kZXMpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5lID0gdGhpcy5uID0gbnVsbDtcbiAgICAgICAgdGhpcy5sID0gY2xhaW1lZF9ub2RlcztcbiAgICB9XG4gICAgYyhodG1sKSB7XG4gICAgICAgIGlmICh0aGlzLmwpIHtcbiAgICAgICAgICAgIHRoaXMubiA9IHRoaXMubDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLmMoaHRtbCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaShhbmNob3IpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm4ubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgIGluc2VydF9oeWRyYXRpb24odGhpcy50LCB0aGlzLm5baV0sIGFuY2hvcik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBhdHRyaWJ1dGVfdG9fb2JqZWN0KGF0dHJpYnV0ZXMpIHtcbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZSBvZiBhdHRyaWJ1dGVzKSB7XG4gICAgICAgIHJlc3VsdFthdHRyaWJ1dGUubmFtZV0gPSBhdHRyaWJ1dGUudmFsdWU7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBnZXRfY3VzdG9tX2VsZW1lbnRzX3Nsb3RzKGVsZW1lbnQpIHtcbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICBlbGVtZW50LmNoaWxkTm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICByZXN1bHRbbm9kZS5zbG90IHx8ICdkZWZhdWx0J10gPSB0cnVlO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmNvbnN0IGFjdGl2ZV9kb2NzID0gbmV3IFNldCgpO1xubGV0IGFjdGl2ZSA9IDA7XG4vLyBodHRwczovL2dpdGh1Yi5jb20vZGFya3NreWFwcC9zdHJpbmctaGFzaC9ibG9iL21hc3Rlci9pbmRleC5qc1xuZnVuY3Rpb24gaGFzaChzdHIpIHtcbiAgICBsZXQgaGFzaCA9IDUzODE7XG4gICAgbGV0IGkgPSBzdHIubGVuZ3RoO1xuICAgIHdoaWxlIChpLS0pXG4gICAgICAgIGhhc2ggPSAoKGhhc2ggPDwgNSkgLSBoYXNoKSBeIHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgIHJldHVybiBoYXNoID4+PiAwO1xufVxuZnVuY3Rpb24gY3JlYXRlX3J1bGUobm9kZSwgYSwgYiwgZHVyYXRpb24sIGRlbGF5LCBlYXNlLCBmbiwgdWlkID0gMCkge1xuICAgIGNvbnN0IHN0ZXAgPSAxNi42NjYgLyBkdXJhdGlvbjtcbiAgICBsZXQga2V5ZnJhbWVzID0gJ3tcXG4nO1xuICAgIGZvciAobGV0IHAgPSAwOyBwIDw9IDE7IHAgKz0gc3RlcCkge1xuICAgICAgICBjb25zdCB0ID0gYSArIChiIC0gYSkgKiBlYXNlKHApO1xuICAgICAgICBrZXlmcmFtZXMgKz0gcCAqIDEwMCArIGAleyR7Zm4odCwgMSAtIHQpfX1cXG5gO1xuICAgIH1cbiAgICBjb25zdCBydWxlID0ga2V5ZnJhbWVzICsgYDEwMCUgeyR7Zm4oYiwgMSAtIGIpfX1cXG59YDtcbiAgICBjb25zdCBuYW1lID0gYF9fc3ZlbHRlXyR7aGFzaChydWxlKX1fJHt1aWR9YDtcbiAgICBjb25zdCBkb2MgPSBnZXRfcm9vdF9mb3Jfc3R5bGUobm9kZSk7XG4gICAgYWN0aXZlX2RvY3MuYWRkKGRvYyk7XG4gICAgY29uc3Qgc3R5bGVzaGVldCA9IGRvYy5fX3N2ZWx0ZV9zdHlsZXNoZWV0IHx8IChkb2MuX19zdmVsdGVfc3R5bGVzaGVldCA9IGFwcGVuZF9lbXB0eV9zdHlsZXNoZWV0KG5vZGUpLnNoZWV0KTtcbiAgICBjb25zdCBjdXJyZW50X3J1bGVzID0gZG9jLl9fc3ZlbHRlX3J1bGVzIHx8IChkb2MuX19zdmVsdGVfcnVsZXMgPSB7fSk7XG4gICAgaWYgKCFjdXJyZW50X3J1bGVzW25hbWVdKSB7XG4gICAgICAgIGN1cnJlbnRfcnVsZXNbbmFtZV0gPSB0cnVlO1xuICAgICAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUoYEBrZXlmcmFtZXMgJHtuYW1lfSAke3J1bGV9YCwgc3R5bGVzaGVldC5jc3NSdWxlcy5sZW5ndGgpO1xuICAgIH1cbiAgICBjb25zdCBhbmltYXRpb24gPSBub2RlLnN0eWxlLmFuaW1hdGlvbiB8fCAnJztcbiAgICBub2RlLnN0eWxlLmFuaW1hdGlvbiA9IGAke2FuaW1hdGlvbiA/IGAke2FuaW1hdGlvbn0sIGAgOiAnJ30ke25hbWV9ICR7ZHVyYXRpb259bXMgbGluZWFyICR7ZGVsYXl9bXMgMSBib3RoYDtcbiAgICBhY3RpdmUgKz0gMTtcbiAgICByZXR1cm4gbmFtZTtcbn1cbmZ1bmN0aW9uIGRlbGV0ZV9ydWxlKG5vZGUsIG5hbWUpIHtcbiAgICBjb25zdCBwcmV2aW91cyA9IChub2RlLnN0eWxlLmFuaW1hdGlvbiB8fCAnJykuc3BsaXQoJywgJyk7XG4gICAgY29uc3QgbmV4dCA9IHByZXZpb3VzLmZpbHRlcihuYW1lXG4gICAgICAgID8gYW5pbSA9PiBhbmltLmluZGV4T2YobmFtZSkgPCAwIC8vIHJlbW92ZSBzcGVjaWZpYyBhbmltYXRpb25cbiAgICAgICAgOiBhbmltID0+IGFuaW0uaW5kZXhPZignX19zdmVsdGUnKSA9PT0gLTEgLy8gcmVtb3ZlIGFsbCBTdmVsdGUgYW5pbWF0aW9uc1xuICAgICk7XG4gICAgY29uc3QgZGVsZXRlZCA9IHByZXZpb3VzLmxlbmd0aCAtIG5leHQubGVuZ3RoO1xuICAgIGlmIChkZWxldGVkKSB7XG4gICAgICAgIG5vZGUuc3R5bGUuYW5pbWF0aW9uID0gbmV4dC5qb2luKCcsICcpO1xuICAgICAgICBhY3RpdmUgLT0gZGVsZXRlZDtcbiAgICAgICAgaWYgKCFhY3RpdmUpXG4gICAgICAgICAgICBjbGVhcl9ydWxlcygpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNsZWFyX3J1bGVzKCkge1xuICAgIHJhZigoKSA9PiB7XG4gICAgICAgIGlmIChhY3RpdmUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGFjdGl2ZV9kb2NzLmZvckVhY2goZG9jID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlc2hlZXQgPSBkb2MuX19zdmVsdGVfc3R5bGVzaGVldDtcbiAgICAgICAgICAgIGxldCBpID0gc3R5bGVzaGVldC5jc3NSdWxlcy5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaS0tKVxuICAgICAgICAgICAgICAgIHN0eWxlc2hlZXQuZGVsZXRlUnVsZShpKTtcbiAgICAgICAgICAgIGRvYy5fX3N2ZWx0ZV9ydWxlcyA9IHt9O1xuICAgICAgICB9KTtcbiAgICAgICAgYWN0aXZlX2RvY3MuY2xlYXIoKTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlX2FuaW1hdGlvbihub2RlLCBmcm9tLCBmbiwgcGFyYW1zKSB7XG4gICAgaWYgKCFmcm9tKVxuICAgICAgICByZXR1cm4gbm9vcDtcbiAgICBjb25zdCB0byA9IG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgaWYgKGZyb20ubGVmdCA9PT0gdG8ubGVmdCAmJiBmcm9tLnJpZ2h0ID09PSB0by5yaWdodCAmJiBmcm9tLnRvcCA9PT0gdG8udG9wICYmIGZyb20uYm90dG9tID09PSB0by5ib3R0b20pXG4gICAgICAgIHJldHVybiBub29wO1xuICAgIGNvbnN0IHsgZGVsYXkgPSAwLCBkdXJhdGlvbiA9IDMwMCwgZWFzaW5nID0gaWRlbnRpdHksIFxuICAgIC8vIEB0cy1pZ25vcmUgdG9kbzogc2hvdWxkIHRoaXMgYmUgc2VwYXJhdGVkIGZyb20gZGVzdHJ1Y3R1cmluZz8gT3Igc3RhcnQvZW5kIGFkZGVkIHRvIHB1YmxpYyBhcGkgYW5kIGRvY3VtZW50YXRpb24/XG4gICAgc3RhcnQ6IHN0YXJ0X3RpbWUgPSBub3coKSArIGRlbGF5LCBcbiAgICAvLyBAdHMtaWdub3JlIHRvZG86XG4gICAgZW5kID0gc3RhcnRfdGltZSArIGR1cmF0aW9uLCB0aWNrID0gbm9vcCwgY3NzIH0gPSBmbihub2RlLCB7IGZyb20sIHRvIH0sIHBhcmFtcyk7XG4gICAgbGV0IHJ1bm5pbmcgPSB0cnVlO1xuICAgIGxldCBzdGFydGVkID0gZmFsc2U7XG4gICAgbGV0IG5hbWU7XG4gICAgZnVuY3Rpb24gc3RhcnQoKSB7XG4gICAgICAgIGlmIChjc3MpIHtcbiAgICAgICAgICAgIG5hbWUgPSBjcmVhdGVfcnVsZShub2RlLCAwLCAxLCBkdXJhdGlvbiwgZGVsYXksIGVhc2luZywgY3NzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWRlbGF5KSB7XG4gICAgICAgICAgICBzdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBzdG9wKCkge1xuICAgICAgICBpZiAoY3NzKVxuICAgICAgICAgICAgZGVsZXRlX3J1bGUobm9kZSwgbmFtZSk7XG4gICAgICAgIHJ1bm5pbmcgPSBmYWxzZTtcbiAgICB9XG4gICAgbG9vcChub3cgPT4ge1xuICAgICAgICBpZiAoIXN0YXJ0ZWQgJiYgbm93ID49IHN0YXJ0X3RpbWUpIHtcbiAgICAgICAgICAgIHN0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGFydGVkICYmIG5vdyA+PSBlbmQpIHtcbiAgICAgICAgICAgIHRpY2soMSwgMCk7XG4gICAgICAgICAgICBzdG9wKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFydW5uaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXJ0ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHAgPSBub3cgLSBzdGFydF90aW1lO1xuICAgICAgICAgICAgY29uc3QgdCA9IDAgKyAxICogZWFzaW5nKHAgLyBkdXJhdGlvbik7XG4gICAgICAgICAgICB0aWNrKHQsIDEgLSB0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgICBzdGFydCgpO1xuICAgIHRpY2soMCwgMSk7XG4gICAgcmV0dXJuIHN0b3A7XG59XG5mdW5jdGlvbiBmaXhfcG9zaXRpb24obm9kZSkge1xuICAgIGNvbnN0IHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcbiAgICBpZiAoc3R5bGUucG9zaXRpb24gIT09ICdhYnNvbHV0ZScgJiYgc3R5bGUucG9zaXRpb24gIT09ICdmaXhlZCcpIHtcbiAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBzdHlsZTtcbiAgICAgICAgY29uc3QgYSA9IG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIG5vZGUuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgICBub2RlLnN0eWxlLndpZHRoID0gd2lkdGg7XG4gICAgICAgIG5vZGUuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgICBhZGRfdHJhbnNmb3JtKG5vZGUsIGEpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFkZF90cmFuc2Zvcm0obm9kZSwgYSkge1xuICAgIGNvbnN0IGIgPSBub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGlmIChhLmxlZnQgIT09IGIubGVmdCB8fCBhLnRvcCAhPT0gYi50b3ApIHtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpO1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm0gPSBzdHlsZS50cmFuc2Zvcm0gPT09ICdub25lJyA/ICcnIDogc3R5bGUudHJhbnNmb3JtO1xuICAgICAgICBub2RlLnN0eWxlLnRyYW5zZm9ybSA9IGAke3RyYW5zZm9ybX0gdHJhbnNsYXRlKCR7YS5sZWZ0IC0gYi5sZWZ0fXB4LCAke2EudG9wIC0gYi50b3B9cHgpYDtcbiAgICB9XG59XG5cbmxldCBjdXJyZW50X2NvbXBvbmVudDtcbmZ1bmN0aW9uIHNldF9jdXJyZW50X2NvbXBvbmVudChjb21wb25lbnQpIHtcbiAgICBjdXJyZW50X2NvbXBvbmVudCA9IGNvbXBvbmVudDtcbn1cbmZ1bmN0aW9uIGdldF9jdXJyZW50X2NvbXBvbmVudCgpIHtcbiAgICBpZiAoIWN1cnJlbnRfY29tcG9uZW50KVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Z1bmN0aW9uIGNhbGxlZCBvdXRzaWRlIGNvbXBvbmVudCBpbml0aWFsaXphdGlvbicpO1xuICAgIHJldHVybiBjdXJyZW50X2NvbXBvbmVudDtcbn1cbmZ1bmN0aW9uIGJlZm9yZVVwZGF0ZShmbikge1xuICAgIGdldF9jdXJyZW50X2NvbXBvbmVudCgpLiQkLmJlZm9yZV91cGRhdGUucHVzaChmbik7XG59XG5mdW5jdGlvbiBvbk1vdW50KGZuKSB7XG4gICAgZ2V0X2N1cnJlbnRfY29tcG9uZW50KCkuJCQub25fbW91bnQucHVzaChmbik7XG59XG5mdW5jdGlvbiBhZnRlclVwZGF0ZShmbikge1xuICAgIGdldF9jdXJyZW50X2NvbXBvbmVudCgpLiQkLmFmdGVyX3VwZGF0ZS5wdXNoKGZuKTtcbn1cbmZ1bmN0aW9uIG9uRGVzdHJveShmbikge1xuICAgIGdldF9jdXJyZW50X2NvbXBvbmVudCgpLiQkLm9uX2Rlc3Ryb3kucHVzaChmbik7XG59XG5mdW5jdGlvbiBjcmVhdGVFdmVudERpc3BhdGNoZXIoKSB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gZ2V0X2N1cnJlbnRfY29tcG9uZW50KCk7XG4gICAgcmV0dXJuICh0eXBlLCBkZXRhaWwpID0+IHtcbiAgICAgICAgY29uc3QgY2FsbGJhY2tzID0gY29tcG9uZW50LiQkLmNhbGxiYWNrc1t0eXBlXTtcbiAgICAgICAgaWYgKGNhbGxiYWNrcykge1xuICAgICAgICAgICAgLy8gVE9ETyBhcmUgdGhlcmUgc2l0dWF0aW9ucyB3aGVyZSBldmVudHMgY291bGQgYmUgZGlzcGF0Y2hlZFxuICAgICAgICAgICAgLy8gaW4gYSBzZXJ2ZXIgKG5vbi1ET00pIGVudmlyb25tZW50P1xuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBjdXN0b21fZXZlbnQodHlwZSwgZGV0YWlsKTtcbiAgICAgICAgICAgIGNhbGxiYWNrcy5zbGljZSgpLmZvckVhY2goZm4gPT4ge1xuICAgICAgICAgICAgICAgIGZuLmNhbGwoY29tcG9uZW50LCBldmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG59XG5mdW5jdGlvbiBzZXRDb250ZXh0KGtleSwgY29udGV4dCkge1xuICAgIGdldF9jdXJyZW50X2NvbXBvbmVudCgpLiQkLmNvbnRleHQuc2V0KGtleSwgY29udGV4dCk7XG59XG5mdW5jdGlvbiBnZXRDb250ZXh0KGtleSkge1xuICAgIHJldHVybiBnZXRfY3VycmVudF9jb21wb25lbnQoKS4kJC5jb250ZXh0LmdldChrZXkpO1xufVxuZnVuY3Rpb24gZ2V0QWxsQ29udGV4dHMoKSB7XG4gICAgcmV0dXJuIGdldF9jdXJyZW50X2NvbXBvbmVudCgpLiQkLmNvbnRleHQ7XG59XG5mdW5jdGlvbiBoYXNDb250ZXh0KGtleSkge1xuICAgIHJldHVybiBnZXRfY3VycmVudF9jb21wb25lbnQoKS4kJC5jb250ZXh0LmhhcyhrZXkpO1xufVxuLy8gVE9ETyBmaWd1cmUgb3V0IGlmIHdlIHN0aWxsIHdhbnQgdG8gc3VwcG9ydFxuLy8gc2hvcnRoYW5kIGV2ZW50cywgb3IgaWYgd2Ugd2FudCB0byBpbXBsZW1lbnRcbi8vIGEgcmVhbCBidWJibGluZyBtZWNoYW5pc21cbmZ1bmN0aW9uIGJ1YmJsZShjb21wb25lbnQsIGV2ZW50KSB7XG4gICAgY29uc3QgY2FsbGJhY2tzID0gY29tcG9uZW50LiQkLmNhbGxiYWNrc1tldmVudC50eXBlXTtcbiAgICBpZiAoY2FsbGJhY2tzKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgY2FsbGJhY2tzLnNsaWNlKCkuZm9yRWFjaChmbiA9PiBmbi5jYWxsKHRoaXMsIGV2ZW50KSk7XG4gICAgfVxufVxuXG5jb25zdCBkaXJ0eV9jb21wb25lbnRzID0gW107XG5jb25zdCBpbnRyb3MgPSB7IGVuYWJsZWQ6IGZhbHNlIH07XG5jb25zdCBiaW5kaW5nX2NhbGxiYWNrcyA9IFtdO1xuY29uc3QgcmVuZGVyX2NhbGxiYWNrcyA9IFtdO1xuY29uc3QgZmx1c2hfY2FsbGJhY2tzID0gW107XG5jb25zdCByZXNvbHZlZF9wcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7XG5sZXQgdXBkYXRlX3NjaGVkdWxlZCA9IGZhbHNlO1xuZnVuY3Rpb24gc2NoZWR1bGVfdXBkYXRlKCkge1xuICAgIGlmICghdXBkYXRlX3NjaGVkdWxlZCkge1xuICAgICAgICB1cGRhdGVfc2NoZWR1bGVkID0gdHJ1ZTtcbiAgICAgICAgcmVzb2x2ZWRfcHJvbWlzZS50aGVuKGZsdXNoKTtcbiAgICB9XG59XG5mdW5jdGlvbiB0aWNrKCkge1xuICAgIHNjaGVkdWxlX3VwZGF0ZSgpO1xuICAgIHJldHVybiByZXNvbHZlZF9wcm9taXNlO1xufVxuZnVuY3Rpb24gYWRkX3JlbmRlcl9jYWxsYmFjayhmbikge1xuICAgIHJlbmRlcl9jYWxsYmFja3MucHVzaChmbik7XG59XG5mdW5jdGlvbiBhZGRfZmx1c2hfY2FsbGJhY2soZm4pIHtcbiAgICBmbHVzaF9jYWxsYmFja3MucHVzaChmbik7XG59XG5sZXQgZmx1c2hpbmcgPSBmYWxzZTtcbmNvbnN0IHNlZW5fY2FsbGJhY2tzID0gbmV3IFNldCgpO1xuZnVuY3Rpb24gZmx1c2goKSB7XG4gICAgaWYgKGZsdXNoaW5nKVxuICAgICAgICByZXR1cm47XG4gICAgZmx1c2hpbmcgPSB0cnVlO1xuICAgIGRvIHtcbiAgICAgICAgLy8gZmlyc3QsIGNhbGwgYmVmb3JlVXBkYXRlIGZ1bmN0aW9uc1xuICAgICAgICAvLyBhbmQgdXBkYXRlIGNvbXBvbmVudHNcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaXJ0eV9jb21wb25lbnRzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBkaXJ0eV9jb21wb25lbnRzW2ldO1xuICAgICAgICAgICAgc2V0X2N1cnJlbnRfY29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgICAgICAgICB1cGRhdGUoY29tcG9uZW50LiQkKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRfY3VycmVudF9jb21wb25lbnQobnVsbCk7XG4gICAgICAgIGRpcnR5X2NvbXBvbmVudHMubGVuZ3RoID0gMDtcbiAgICAgICAgd2hpbGUgKGJpbmRpbmdfY2FsbGJhY2tzLmxlbmd0aClcbiAgICAgICAgICAgIGJpbmRpbmdfY2FsbGJhY2tzLnBvcCgpKCk7XG4gICAgICAgIC8vIHRoZW4sIG9uY2UgY29tcG9uZW50cyBhcmUgdXBkYXRlZCwgY2FsbFxuICAgICAgICAvLyBhZnRlclVwZGF0ZSBmdW5jdGlvbnMuIFRoaXMgbWF5IGNhdXNlXG4gICAgICAgIC8vIHN1YnNlcXVlbnQgdXBkYXRlcy4uLlxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlbmRlcl9jYWxsYmFja3MubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gcmVuZGVyX2NhbGxiYWNrc1tpXTtcbiAgICAgICAgICAgIGlmICghc2Vlbl9jYWxsYmFja3MuaGFzKGNhbGxiYWNrKSkge1xuICAgICAgICAgICAgICAgIC8vIC4uLnNvIGd1YXJkIGFnYWluc3QgaW5maW5pdGUgbG9vcHNcbiAgICAgICAgICAgICAgICBzZWVuX2NhbGxiYWNrcy5hZGQoY2FsbGJhY2spO1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVuZGVyX2NhbGxiYWNrcy5sZW5ndGggPSAwO1xuICAgIH0gd2hpbGUgKGRpcnR5X2NvbXBvbmVudHMubGVuZ3RoKTtcbiAgICB3aGlsZSAoZmx1c2hfY2FsbGJhY2tzLmxlbmd0aCkge1xuICAgICAgICBmbHVzaF9jYWxsYmFja3MucG9wKCkoKTtcbiAgICB9XG4gICAgdXBkYXRlX3NjaGVkdWxlZCA9IGZhbHNlO1xuICAgIGZsdXNoaW5nID0gZmFsc2U7XG4gICAgc2Vlbl9jYWxsYmFja3MuY2xlYXIoKTtcbn1cbmZ1bmN0aW9uIHVwZGF0ZSgkJCkge1xuICAgIGlmICgkJC5mcmFnbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAkJC51cGRhdGUoKTtcbiAgICAgICAgcnVuX2FsbCgkJC5iZWZvcmVfdXBkYXRlKTtcbiAgICAgICAgY29uc3QgZGlydHkgPSAkJC5kaXJ0eTtcbiAgICAgICAgJCQuZGlydHkgPSBbLTFdO1xuICAgICAgICAkJC5mcmFnbWVudCAmJiAkJC5mcmFnbWVudC5wKCQkLmN0eCwgZGlydHkpO1xuICAgICAgICAkJC5hZnRlcl91cGRhdGUuZm9yRWFjaChhZGRfcmVuZGVyX2NhbGxiYWNrKTtcbiAgICB9XG59XG5cbmxldCBwcm9taXNlO1xuZnVuY3Rpb24gd2FpdCgpIHtcbiAgICBpZiAoIXByb21pc2UpIHtcbiAgICAgICAgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICBwcm9taXNlLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcHJvbWlzZSA9IG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cbmZ1bmN0aW9uIGRpc3BhdGNoKG5vZGUsIGRpcmVjdGlvbiwga2luZCkge1xuICAgIG5vZGUuZGlzcGF0Y2hFdmVudChjdXN0b21fZXZlbnQoYCR7ZGlyZWN0aW9uID8gJ2ludHJvJyA6ICdvdXRybyd9JHtraW5kfWApKTtcbn1cbmNvbnN0IG91dHJvaW5nID0gbmV3IFNldCgpO1xubGV0IG91dHJvcztcbmZ1bmN0aW9uIGdyb3VwX291dHJvcygpIHtcbiAgICBvdXRyb3MgPSB7XG4gICAgICAgIHI6IDAsXG4gICAgICAgIGM6IFtdLFxuICAgICAgICBwOiBvdXRyb3MgLy8gcGFyZW50IGdyb3VwXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNoZWNrX291dHJvcygpIHtcbiAgICBpZiAoIW91dHJvcy5yKSB7XG4gICAgICAgIHJ1bl9hbGwob3V0cm9zLmMpO1xuICAgIH1cbiAgICBvdXRyb3MgPSBvdXRyb3MucDtcbn1cbmZ1bmN0aW9uIHRyYW5zaXRpb25faW4oYmxvY2ssIGxvY2FsKSB7XG4gICAgaWYgKGJsb2NrICYmIGJsb2NrLmkpIHtcbiAgICAgICAgb3V0cm9pbmcuZGVsZXRlKGJsb2NrKTtcbiAgICAgICAgYmxvY2suaShsb2NhbCk7XG4gICAgfVxufVxuZnVuY3Rpb24gdHJhbnNpdGlvbl9vdXQoYmxvY2ssIGxvY2FsLCBkZXRhY2gsIGNhbGxiYWNrKSB7XG4gICAgaWYgKGJsb2NrICYmIGJsb2NrLm8pIHtcbiAgICAgICAgaWYgKG91dHJvaW5nLmhhcyhibG9jaykpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIG91dHJvaW5nLmFkZChibG9jayk7XG4gICAgICAgIG91dHJvcy5jLnB1c2goKCkgPT4ge1xuICAgICAgICAgICAgb3V0cm9pbmcuZGVsZXRlKGJsb2NrKTtcbiAgICAgICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGlmIChkZXRhY2gpXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrLmQoMSk7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGJsb2NrLm8obG9jYWwpO1xuICAgIH1cbn1cbmNvbnN0IG51bGxfdHJhbnNpdGlvbiA9IHsgZHVyYXRpb246IDAgfTtcbmZ1bmN0aW9uIGNyZWF0ZV9pbl90cmFuc2l0aW9uKG5vZGUsIGZuLCBwYXJhbXMpIHtcbiAgICBsZXQgY29uZmlnID0gZm4obm9kZSwgcGFyYW1zKTtcbiAgICBsZXQgcnVubmluZyA9IGZhbHNlO1xuICAgIGxldCBhbmltYXRpb25fbmFtZTtcbiAgICBsZXQgdGFzaztcbiAgICBsZXQgdWlkID0gMDtcbiAgICBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgICBpZiAoYW5pbWF0aW9uX25hbWUpXG4gICAgICAgICAgICBkZWxldGVfcnVsZShub2RlLCBhbmltYXRpb25fbmFtZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdvKCkge1xuICAgICAgICBjb25zdCB7IGRlbGF5ID0gMCwgZHVyYXRpb24gPSAzMDAsIGVhc2luZyA9IGlkZW50aXR5LCB0aWNrID0gbm9vcCwgY3NzIH0gPSBjb25maWcgfHwgbnVsbF90cmFuc2l0aW9uO1xuICAgICAgICBpZiAoY3NzKVxuICAgICAgICAgICAgYW5pbWF0aW9uX25hbWUgPSBjcmVhdGVfcnVsZShub2RlLCAwLCAxLCBkdXJhdGlvbiwgZGVsYXksIGVhc2luZywgY3NzLCB1aWQrKyk7XG4gICAgICAgIHRpY2soMCwgMSk7XG4gICAgICAgIGNvbnN0IHN0YXJ0X3RpbWUgPSBub3coKSArIGRlbGF5O1xuICAgICAgICBjb25zdCBlbmRfdGltZSA9IHN0YXJ0X3RpbWUgKyBkdXJhdGlvbjtcbiAgICAgICAgaWYgKHRhc2spXG4gICAgICAgICAgICB0YXNrLmFib3J0KCk7XG4gICAgICAgIHJ1bm5pbmcgPSB0cnVlO1xuICAgICAgICBhZGRfcmVuZGVyX2NhbGxiYWNrKCgpID0+IGRpc3BhdGNoKG5vZGUsIHRydWUsICdzdGFydCcpKTtcbiAgICAgICAgdGFzayA9IGxvb3Aobm93ID0+IHtcbiAgICAgICAgICAgIGlmIChydW5uaW5nKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5vdyA+PSBlbmRfdGltZSkge1xuICAgICAgICAgICAgICAgICAgICB0aWNrKDEsIDApO1xuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaChub2RlLCB0cnVlLCAnZW5kJyk7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJ1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5vdyA+PSBzdGFydF90aW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBlYXNpbmcoKG5vdyAtIHN0YXJ0X3RpbWUpIC8gZHVyYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICB0aWNrKHQsIDEgLSB0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcnVubmluZztcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGxldCBzdGFydGVkID0gZmFsc2U7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnQoKSB7XG4gICAgICAgICAgICBpZiAoc3RhcnRlZClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBzdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGRlbGV0ZV9ydWxlKG5vZGUpO1xuICAgICAgICAgICAgaWYgKGlzX2Z1bmN0aW9uKGNvbmZpZykpIHtcbiAgICAgICAgICAgICAgICBjb25maWcgPSBjb25maWcoKTtcbiAgICAgICAgICAgICAgICB3YWl0KCkudGhlbihnbyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBnbygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBpbnZhbGlkYXRlKCkge1xuICAgICAgICAgICAgc3RhcnRlZCA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICBlbmQoKSB7XG4gICAgICAgICAgICBpZiAocnVubmluZykge1xuICAgICAgICAgICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgICAgICAgICBydW5uaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlX291dF90cmFuc2l0aW9uKG5vZGUsIGZuLCBwYXJhbXMpIHtcbiAgICBsZXQgY29uZmlnID0gZm4obm9kZSwgcGFyYW1zKTtcbiAgICBsZXQgcnVubmluZyA9IHRydWU7XG4gICAgbGV0IGFuaW1hdGlvbl9uYW1lO1xuICAgIGNvbnN0IGdyb3VwID0gb3V0cm9zO1xuICAgIGdyb3VwLnIgKz0gMTtcbiAgICBmdW5jdGlvbiBnbygpIHtcbiAgICAgICAgY29uc3QgeyBkZWxheSA9IDAsIGR1cmF0aW9uID0gMzAwLCBlYXNpbmcgPSBpZGVudGl0eSwgdGljayA9IG5vb3AsIGNzcyB9ID0gY29uZmlnIHx8IG51bGxfdHJhbnNpdGlvbjtcbiAgICAgICAgaWYgKGNzcylcbiAgICAgICAgICAgIGFuaW1hdGlvbl9uYW1lID0gY3JlYXRlX3J1bGUobm9kZSwgMSwgMCwgZHVyYXRpb24sIGRlbGF5LCBlYXNpbmcsIGNzcyk7XG4gICAgICAgIGNvbnN0IHN0YXJ0X3RpbWUgPSBub3coKSArIGRlbGF5O1xuICAgICAgICBjb25zdCBlbmRfdGltZSA9IHN0YXJ0X3RpbWUgKyBkdXJhdGlvbjtcbiAgICAgICAgYWRkX3JlbmRlcl9jYWxsYmFjaygoKSA9PiBkaXNwYXRjaChub2RlLCBmYWxzZSwgJ3N0YXJ0JykpO1xuICAgICAgICBsb29wKG5vdyA9PiB7XG4gICAgICAgICAgICBpZiAocnVubmluZykge1xuICAgICAgICAgICAgICAgIGlmIChub3cgPj0gZW5kX3RpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGljaygwLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gobm9kZSwgZmFsc2UsICdlbmQnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEtLWdyb3VwLnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgd2lsbCByZXN1bHQgaW4gYGVuZCgpYCBiZWluZyBjYWxsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzbyB3ZSBkb24ndCBuZWVkIHRvIGNsZWFuIHVwIGhlcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9hbGwoZ3JvdXAuYyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobm93ID49IHN0YXJ0X3RpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdCA9IGVhc2luZygobm93IC0gc3RhcnRfdGltZSkgLyBkdXJhdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIHRpY2soMSAtIHQsIHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBydW5uaW5nO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGlzX2Z1bmN0aW9uKGNvbmZpZykpIHtcbiAgICAgICAgd2FpdCgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgY29uZmlnID0gY29uZmlnKCk7XG4gICAgICAgICAgICBnbygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGdvKCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGVuZChyZXNldCkge1xuICAgICAgICAgICAgaWYgKHJlc2V0ICYmIGNvbmZpZy50aWNrKSB7XG4gICAgICAgICAgICAgICAgY29uZmlnLnRpY2soMSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocnVubmluZykge1xuICAgICAgICAgICAgICAgIGlmIChhbmltYXRpb25fbmFtZSlcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlX3J1bGUobm9kZSwgYW5pbWF0aW9uX25hbWUpO1xuICAgICAgICAgICAgICAgIHJ1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG59XG5mdW5jdGlvbiBjcmVhdGVfYmlkaXJlY3Rpb25hbF90cmFuc2l0aW9uKG5vZGUsIGZuLCBwYXJhbXMsIGludHJvKSB7XG4gICAgbGV0IGNvbmZpZyA9IGZuKG5vZGUsIHBhcmFtcyk7XG4gICAgbGV0IHQgPSBpbnRybyA/IDAgOiAxO1xuICAgIGxldCBydW5uaW5nX3Byb2dyYW0gPSBudWxsO1xuICAgIGxldCBwZW5kaW5nX3Byb2dyYW0gPSBudWxsO1xuICAgIGxldCBhbmltYXRpb25fbmFtZSA9IG51bGw7XG4gICAgZnVuY3Rpb24gY2xlYXJfYW5pbWF0aW9uKCkge1xuICAgICAgICBpZiAoYW5pbWF0aW9uX25hbWUpXG4gICAgICAgICAgICBkZWxldGVfcnVsZShub2RlLCBhbmltYXRpb25fbmFtZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluaXQocHJvZ3JhbSwgZHVyYXRpb24pIHtcbiAgICAgICAgY29uc3QgZCA9IChwcm9ncmFtLmIgLSB0KTtcbiAgICAgICAgZHVyYXRpb24gKj0gTWF0aC5hYnMoZCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhOiB0LFxuICAgICAgICAgICAgYjogcHJvZ3JhbS5iLFxuICAgICAgICAgICAgZCxcbiAgICAgICAgICAgIGR1cmF0aW9uLFxuICAgICAgICAgICAgc3RhcnQ6IHByb2dyYW0uc3RhcnQsXG4gICAgICAgICAgICBlbmQ6IHByb2dyYW0uc3RhcnQgKyBkdXJhdGlvbixcbiAgICAgICAgICAgIGdyb3VwOiBwcm9ncmFtLmdyb3VwXG4gICAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdvKGIpIHtcbiAgICAgICAgY29uc3QgeyBkZWxheSA9IDAsIGR1cmF0aW9uID0gMzAwLCBlYXNpbmcgPSBpZGVudGl0eSwgdGljayA9IG5vb3AsIGNzcyB9ID0gY29uZmlnIHx8IG51bGxfdHJhbnNpdGlvbjtcbiAgICAgICAgY29uc3QgcHJvZ3JhbSA9IHtcbiAgICAgICAgICAgIHN0YXJ0OiBub3coKSArIGRlbGF5LFxuICAgICAgICAgICAgYlxuICAgICAgICB9O1xuICAgICAgICBpZiAoIWIpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgdG9kbzogaW1wcm92ZSB0eXBpbmdzXG4gICAgICAgICAgICBwcm9ncmFtLmdyb3VwID0gb3V0cm9zO1xuICAgICAgICAgICAgb3V0cm9zLnIgKz0gMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocnVubmluZ19wcm9ncmFtIHx8IHBlbmRpbmdfcHJvZ3JhbSkge1xuICAgICAgICAgICAgcGVuZGluZ19wcm9ncmFtID0gcHJvZ3JhbTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIGlmIHRoaXMgaXMgYW4gaW50cm8sIGFuZCB0aGVyZSdzIGEgZGVsYXksIHdlIG5lZWQgdG8gZG9cbiAgICAgICAgICAgIC8vIGFuIGluaXRpYWwgdGljayBhbmQvb3IgYXBwbHkgQ1NTIGFuaW1hdGlvbiBpbW1lZGlhdGVseVxuICAgICAgICAgICAgaWYgKGNzcykge1xuICAgICAgICAgICAgICAgIGNsZWFyX2FuaW1hdGlvbigpO1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbl9uYW1lID0gY3JlYXRlX3J1bGUobm9kZSwgdCwgYiwgZHVyYXRpb24sIGRlbGF5LCBlYXNpbmcsIGNzcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYilcbiAgICAgICAgICAgICAgICB0aWNrKDAsIDEpO1xuICAgICAgICAgICAgcnVubmluZ19wcm9ncmFtID0gaW5pdChwcm9ncmFtLCBkdXJhdGlvbik7XG4gICAgICAgICAgICBhZGRfcmVuZGVyX2NhbGxiYWNrKCgpID0+IGRpc3BhdGNoKG5vZGUsIGIsICdzdGFydCcpKTtcbiAgICAgICAgICAgIGxvb3Aobm93ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGVuZGluZ19wcm9ncmFtICYmIG5vdyA+IHBlbmRpbmdfcHJvZ3JhbS5zdGFydCkge1xuICAgICAgICAgICAgICAgICAgICBydW5uaW5nX3Byb2dyYW0gPSBpbml0KHBlbmRpbmdfcHJvZ3JhbSwgZHVyYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICBwZW5kaW5nX3Byb2dyYW0gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaChub2RlLCBydW5uaW5nX3Byb2dyYW0uYiwgJ3N0YXJ0Jyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyX2FuaW1hdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uX25hbWUgPSBjcmVhdGVfcnVsZShub2RlLCB0LCBydW5uaW5nX3Byb2dyYW0uYiwgcnVubmluZ19wcm9ncmFtLmR1cmF0aW9uLCAwLCBlYXNpbmcsIGNvbmZpZy5jc3MpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChydW5uaW5nX3Byb2dyYW0pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vdyA+PSBydW5uaW5nX3Byb2dyYW0uZW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aWNrKHQgPSBydW5uaW5nX3Byb2dyYW0uYiwgMSAtIHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gobm9kZSwgcnVubmluZ19wcm9ncmFtLmIsICdlbmQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGVuZGluZ19wcm9ncmFtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UncmUgZG9uZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChydW5uaW5nX3Byb2dyYW0uYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnRybyBcdTIwMTQgd2UgY2FuIHRpZHkgdXAgaW1tZWRpYXRlbHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJfYW5pbWF0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvdXRybyBcdTIwMTQgbmVlZHMgdG8gYmUgY29vcmRpbmF0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEtLXJ1bm5pbmdfcHJvZ3JhbS5ncm91cC5yKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2FsbChydW5uaW5nX3Byb2dyYW0uZ3JvdXAuYyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcnVubmluZ19wcm9ncmFtID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChub3cgPj0gcnVubmluZ19wcm9ncmFtLnN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwID0gbm93IC0gcnVubmluZ19wcm9ncmFtLnN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgdCA9IHJ1bm5pbmdfcHJvZ3JhbS5hICsgcnVubmluZ19wcm9ncmFtLmQgKiBlYXNpbmcocCAvIHJ1bm5pbmdfcHJvZ3JhbS5kdXJhdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aWNrKHQsIDEgLSB0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gISEocnVubmluZ19wcm9ncmFtIHx8IHBlbmRpbmdfcHJvZ3JhbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBydW4oYikge1xuICAgICAgICAgICAgaWYgKGlzX2Z1bmN0aW9uKGNvbmZpZykpIHtcbiAgICAgICAgICAgICAgICB3YWl0KCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnID0gY29uZmlnKCk7XG4gICAgICAgICAgICAgICAgICAgIGdvKGIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZ28oYik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVuZCgpIHtcbiAgICAgICAgICAgIGNsZWFyX2FuaW1hdGlvbigpO1xuICAgICAgICAgICAgcnVubmluZ19wcm9ncmFtID0gcGVuZGluZ19wcm9ncmFtID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbmZ1bmN0aW9uIGhhbmRsZV9wcm9taXNlKHByb21pc2UsIGluZm8pIHtcbiAgICBjb25zdCB0b2tlbiA9IGluZm8udG9rZW4gPSB7fTtcbiAgICBmdW5jdGlvbiB1cGRhdGUodHlwZSwgaW5kZXgsIGtleSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKGluZm8udG9rZW4gIT09IHRva2VuKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpbmZvLnJlc29sdmVkID0gdmFsdWU7XG4gICAgICAgIGxldCBjaGlsZF9jdHggPSBpbmZvLmN0eDtcbiAgICAgICAgaWYgKGtleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjaGlsZF9jdHggPSBjaGlsZF9jdHguc2xpY2UoKTtcbiAgICAgICAgICAgIGNoaWxkX2N0eFtrZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYmxvY2sgPSB0eXBlICYmIChpbmZvLmN1cnJlbnQgPSB0eXBlKShjaGlsZF9jdHgpO1xuICAgICAgICBsZXQgbmVlZHNfZmx1c2ggPSBmYWxzZTtcbiAgICAgICAgaWYgKGluZm8uYmxvY2spIHtcbiAgICAgICAgICAgIGlmIChpbmZvLmJsb2Nrcykge1xuICAgICAgICAgICAgICAgIGluZm8uYmxvY2tzLmZvckVhY2goKGJsb2NrLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpICE9PSBpbmRleCAmJiBibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBfb3V0cm9zKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uX291dChibG9jaywgMSwgMSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmZvLmJsb2Nrc1tpXSA9PT0gYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5ibG9ja3NbaV0gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfb3V0cm9zKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGluZm8uYmxvY2suZCgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJsb2NrLmMoKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb25faW4oYmxvY2ssIDEpO1xuICAgICAgICAgICAgYmxvY2subShpbmZvLm1vdW50KCksIGluZm8uYW5jaG9yKTtcbiAgICAgICAgICAgIG5lZWRzX2ZsdXNoID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpbmZvLmJsb2NrID0gYmxvY2s7XG4gICAgICAgIGlmIChpbmZvLmJsb2NrcylcbiAgICAgICAgICAgIGluZm8uYmxvY2tzW2luZGV4XSA9IGJsb2NrO1xuICAgICAgICBpZiAobmVlZHNfZmx1c2gpIHtcbiAgICAgICAgICAgIGZsdXNoKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGlzX3Byb21pc2UocHJvbWlzZSkpIHtcbiAgICAgICAgY29uc3QgY3VycmVudF9jb21wb25lbnQgPSBnZXRfY3VycmVudF9jb21wb25lbnQoKTtcbiAgICAgICAgcHJvbWlzZS50aGVuKHZhbHVlID0+IHtcbiAgICAgICAgICAgIHNldF9jdXJyZW50X2NvbXBvbmVudChjdXJyZW50X2NvbXBvbmVudCk7XG4gICAgICAgICAgICB1cGRhdGUoaW5mby50aGVuLCAxLCBpbmZvLnZhbHVlLCB2YWx1ZSk7XG4gICAgICAgICAgICBzZXRfY3VycmVudF9jb21wb25lbnQobnVsbCk7XG4gICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgIHNldF9jdXJyZW50X2NvbXBvbmVudChjdXJyZW50X2NvbXBvbmVudCk7XG4gICAgICAgICAgICB1cGRhdGUoaW5mby5jYXRjaCwgMiwgaW5mby5lcnJvciwgZXJyb3IpO1xuICAgICAgICAgICAgc2V0X2N1cnJlbnRfY29tcG9uZW50KG51bGwpO1xuICAgICAgICAgICAgaWYgKCFpbmZvLmhhc0NhdGNoKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBpZiB3ZSBwcmV2aW91c2x5IGhhZCBhIHRoZW4vY2F0Y2ggYmxvY2ssIGRlc3Ryb3kgaXRcbiAgICAgICAgaWYgKGluZm8uY3VycmVudCAhPT0gaW5mby5wZW5kaW5nKSB7XG4gICAgICAgICAgICB1cGRhdGUoaW5mby5wZW5kaW5nLCAwKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoaW5mby5jdXJyZW50ICE9PSBpbmZvLnRoZW4pIHtcbiAgICAgICAgICAgIHVwZGF0ZShpbmZvLnRoZW4sIDEsIGluZm8udmFsdWUsIHByb21pc2UpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaW5mby5yZXNvbHZlZCA9IHByb21pc2U7XG4gICAgfVxufVxuZnVuY3Rpb24gdXBkYXRlX2F3YWl0X2Jsb2NrX2JyYW5jaChpbmZvLCBjdHgsIGRpcnR5KSB7XG4gICAgY29uc3QgY2hpbGRfY3R4ID0gY3R4LnNsaWNlKCk7XG4gICAgY29uc3QgeyByZXNvbHZlZCB9ID0gaW5mbztcbiAgICBpZiAoaW5mby5jdXJyZW50ID09PSBpbmZvLnRoZW4pIHtcbiAgICAgICAgY2hpbGRfY3R4W2luZm8udmFsdWVdID0gcmVzb2x2ZWQ7XG4gICAgfVxuICAgIGlmIChpbmZvLmN1cnJlbnQgPT09IGluZm8uY2F0Y2gpIHtcbiAgICAgICAgY2hpbGRfY3R4W2luZm8uZXJyb3JdID0gcmVzb2x2ZWQ7XG4gICAgfVxuICAgIGluZm8uYmxvY2sucChjaGlsZF9jdHgsIGRpcnR5KTtcbn1cblxuY29uc3QgZ2xvYmFscyA9ICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJ1xuICAgID8gd2luZG93XG4gICAgOiB0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgPyBnbG9iYWxUaGlzXG4gICAgICAgIDogZ2xvYmFsKTtcblxuZnVuY3Rpb24gZGVzdHJveV9ibG9jayhibG9jaywgbG9va3VwKSB7XG4gICAgYmxvY2suZCgxKTtcbiAgICBsb29rdXAuZGVsZXRlKGJsb2NrLmtleSk7XG59XG5mdW5jdGlvbiBvdXRyb19hbmRfZGVzdHJveV9ibG9jayhibG9jaywgbG9va3VwKSB7XG4gICAgdHJhbnNpdGlvbl9vdXQoYmxvY2ssIDEsIDEsICgpID0+IHtcbiAgICAgICAgbG9va3VwLmRlbGV0ZShibG9jay5rZXkpO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZml4X2FuZF9kZXN0cm95X2Jsb2NrKGJsb2NrLCBsb29rdXApIHtcbiAgICBibG9jay5mKCk7XG4gICAgZGVzdHJveV9ibG9jayhibG9jaywgbG9va3VwKTtcbn1cbmZ1bmN0aW9uIGZpeF9hbmRfb3V0cm9fYW5kX2Rlc3Ryb3lfYmxvY2soYmxvY2ssIGxvb2t1cCkge1xuICAgIGJsb2NrLmYoKTtcbiAgICBvdXRyb19hbmRfZGVzdHJveV9ibG9jayhibG9jaywgbG9va3VwKTtcbn1cbmZ1bmN0aW9uIHVwZGF0ZV9rZXllZF9lYWNoKG9sZF9ibG9ja3MsIGRpcnR5LCBnZXRfa2V5LCBkeW5hbWljLCBjdHgsIGxpc3QsIGxvb2t1cCwgbm9kZSwgZGVzdHJveSwgY3JlYXRlX2VhY2hfYmxvY2ssIG5leHQsIGdldF9jb250ZXh0KSB7XG4gICAgbGV0IG8gPSBvbGRfYmxvY2tzLmxlbmd0aDtcbiAgICBsZXQgbiA9IGxpc3QubGVuZ3RoO1xuICAgIGxldCBpID0gbztcbiAgICBjb25zdCBvbGRfaW5kZXhlcyA9IHt9O1xuICAgIHdoaWxlIChpLS0pXG4gICAgICAgIG9sZF9pbmRleGVzW29sZF9ibG9ja3NbaV0ua2V5XSA9IGk7XG4gICAgY29uc3QgbmV3X2Jsb2NrcyA9IFtdO1xuICAgIGNvbnN0IG5ld19sb29rdXAgPSBuZXcgTWFwKCk7XG4gICAgY29uc3QgZGVsdGFzID0gbmV3IE1hcCgpO1xuICAgIGkgPSBuO1xuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgY29uc3QgY2hpbGRfY3R4ID0gZ2V0X2NvbnRleHQoY3R4LCBsaXN0LCBpKTtcbiAgICAgICAgY29uc3Qga2V5ID0gZ2V0X2tleShjaGlsZF9jdHgpO1xuICAgICAgICBsZXQgYmxvY2sgPSBsb29rdXAuZ2V0KGtleSk7XG4gICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgIGJsb2NrID0gY3JlYXRlX2VhY2hfYmxvY2soa2V5LCBjaGlsZF9jdHgpO1xuICAgICAgICAgICAgYmxvY2suYygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGR5bmFtaWMpIHtcbiAgICAgICAgICAgIGJsb2NrLnAoY2hpbGRfY3R4LCBkaXJ0eSk7XG4gICAgICAgIH1cbiAgICAgICAgbmV3X2xvb2t1cC5zZXQoa2V5LCBuZXdfYmxvY2tzW2ldID0gYmxvY2spO1xuICAgICAgICBpZiAoa2V5IGluIG9sZF9pbmRleGVzKVxuICAgICAgICAgICAgZGVsdGFzLnNldChrZXksIE1hdGguYWJzKGkgLSBvbGRfaW5kZXhlc1trZXldKSk7XG4gICAgfVxuICAgIGNvbnN0IHdpbGxfbW92ZSA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCBkaWRfbW92ZSA9IG5ldyBTZXQoKTtcbiAgICBmdW5jdGlvbiBpbnNlcnQoYmxvY2spIHtcbiAgICAgICAgdHJhbnNpdGlvbl9pbihibG9jaywgMSk7XG4gICAgICAgIGJsb2NrLm0obm9kZSwgbmV4dCk7XG4gICAgICAgIGxvb2t1cC5zZXQoYmxvY2sua2V5LCBibG9jayk7XG4gICAgICAgIG5leHQgPSBibG9jay5maXJzdDtcbiAgICAgICAgbi0tO1xuICAgIH1cbiAgICB3aGlsZSAobyAmJiBuKSB7XG4gICAgICAgIGNvbnN0IG5ld19ibG9jayA9IG5ld19ibG9ja3NbbiAtIDFdO1xuICAgICAgICBjb25zdCBvbGRfYmxvY2sgPSBvbGRfYmxvY2tzW28gLSAxXTtcbiAgICAgICAgY29uc3QgbmV3X2tleSA9IG5ld19ibG9jay5rZXk7XG4gICAgICAgIGNvbnN0IG9sZF9rZXkgPSBvbGRfYmxvY2sua2V5O1xuICAgICAgICBpZiAobmV3X2Jsb2NrID09PSBvbGRfYmxvY2spIHtcbiAgICAgICAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICAgICAgICAgIG5leHQgPSBuZXdfYmxvY2suZmlyc3Q7XG4gICAgICAgICAgICBvLS07XG4gICAgICAgICAgICBuLS07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIW5ld19sb29rdXAuaGFzKG9sZF9rZXkpKSB7XG4gICAgICAgICAgICAvLyByZW1vdmUgb2xkIGJsb2NrXG4gICAgICAgICAgICBkZXN0cm95KG9sZF9ibG9jaywgbG9va3VwKTtcbiAgICAgICAgICAgIG8tLTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghbG9va3VwLmhhcyhuZXdfa2V5KSB8fCB3aWxsX21vdmUuaGFzKG5ld19rZXkpKSB7XG4gICAgICAgICAgICBpbnNlcnQobmV3X2Jsb2NrKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChkaWRfbW92ZS5oYXMob2xkX2tleSkpIHtcbiAgICAgICAgICAgIG8tLTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChkZWx0YXMuZ2V0KG5ld19rZXkpID4gZGVsdGFzLmdldChvbGRfa2V5KSkge1xuICAgICAgICAgICAgZGlkX21vdmUuYWRkKG5ld19rZXkpO1xuICAgICAgICAgICAgaW5zZXJ0KG5ld19ibG9jayk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB3aWxsX21vdmUuYWRkKG9sZF9rZXkpO1xuICAgICAgICAgICAgby0tO1xuICAgICAgICB9XG4gICAgfVxuICAgIHdoaWxlIChvLS0pIHtcbiAgICAgICAgY29uc3Qgb2xkX2Jsb2NrID0gb2xkX2Jsb2Nrc1tvXTtcbiAgICAgICAgaWYgKCFuZXdfbG9va3VwLmhhcyhvbGRfYmxvY2sua2V5KSlcbiAgICAgICAgICAgIGRlc3Ryb3kob2xkX2Jsb2NrLCBsb29rdXApO1xuICAgIH1cbiAgICB3aGlsZSAobilcbiAgICAgICAgaW5zZXJ0KG5ld19ibG9ja3NbbiAtIDFdKTtcbiAgICByZXR1cm4gbmV3X2Jsb2Nrcztcbn1cbmZ1bmN0aW9uIHZhbGlkYXRlX2VhY2hfa2V5cyhjdHgsIGxpc3QsIGdldF9jb250ZXh0LCBnZXRfa2V5KSB7XG4gICAgY29uc3Qga2V5cyA9IG5ldyBTZXQoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qga2V5ID0gZ2V0X2tleShnZXRfY29udGV4dChjdHgsIGxpc3QsIGkpKTtcbiAgICAgICAgaWYgKGtleXMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGhhdmUgZHVwbGljYXRlIGtleXMgaW4gYSBrZXllZCBlYWNoJyk7XG4gICAgICAgIH1cbiAgICAgICAga2V5cy5hZGQoa2V5KTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGdldF9zcHJlYWRfdXBkYXRlKGxldmVscywgdXBkYXRlcykge1xuICAgIGNvbnN0IHVwZGF0ZSA9IHt9O1xuICAgIGNvbnN0IHRvX251bGxfb3V0ID0ge307XG4gICAgY29uc3QgYWNjb3VudGVkX2ZvciA9IHsgJCRzY29wZTogMSB9O1xuICAgIGxldCBpID0gbGV2ZWxzLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICAgIGNvbnN0IG8gPSBsZXZlbHNbaV07XG4gICAgICAgIGNvbnN0IG4gPSB1cGRhdGVzW2ldO1xuICAgICAgICBpZiAobikge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gbykge1xuICAgICAgICAgICAgICAgIGlmICghKGtleSBpbiBuKSlcbiAgICAgICAgICAgICAgICAgICAgdG9fbnVsbF9vdXRba2V5XSA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBuKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFhY2NvdW50ZWRfZm9yW2tleV0pIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlW2tleV0gPSBuW2tleV07XG4gICAgICAgICAgICAgICAgICAgIGFjY291bnRlZF9mb3Jba2V5XSA9IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV2ZWxzW2ldID0gbjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIG8pIHtcbiAgICAgICAgICAgICAgICBhY2NvdW50ZWRfZm9yW2tleV0gPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IGluIHRvX251bGxfb3V0KSB7XG4gICAgICAgIGlmICghKGtleSBpbiB1cGRhdGUpKVxuICAgICAgICAgICAgdXBkYXRlW2tleV0gPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB1cGRhdGU7XG59XG5mdW5jdGlvbiBnZXRfc3ByZWFkX29iamVjdChzcHJlYWRfcHJvcHMpIHtcbiAgICByZXR1cm4gdHlwZW9mIHNwcmVhZF9wcm9wcyA9PT0gJ29iamVjdCcgJiYgc3ByZWFkX3Byb3BzICE9PSBudWxsID8gc3ByZWFkX3Byb3BzIDoge307XG59XG5cbi8vIHNvdXJjZTogaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvaW5kaWNlcy5odG1sXG5jb25zdCBib29sZWFuX2F0dHJpYnV0ZXMgPSBuZXcgU2V0KFtcbiAgICAnYWxsb3dmdWxsc2NyZWVuJyxcbiAgICAnYWxsb3dwYXltZW50cmVxdWVzdCcsXG4gICAgJ2FzeW5jJyxcbiAgICAnYXV0b2ZvY3VzJyxcbiAgICAnYXV0b3BsYXknLFxuICAgICdjaGVja2VkJyxcbiAgICAnY29udHJvbHMnLFxuICAgICdkZWZhdWx0JyxcbiAgICAnZGVmZXInLFxuICAgICdkaXNhYmxlZCcsXG4gICAgJ2Zvcm1ub3ZhbGlkYXRlJyxcbiAgICAnaGlkZGVuJyxcbiAgICAnaXNtYXAnLFxuICAgICdsb29wJyxcbiAgICAnbXVsdGlwbGUnLFxuICAgICdtdXRlZCcsXG4gICAgJ25vbW9kdWxlJyxcbiAgICAnbm92YWxpZGF0ZScsXG4gICAgJ29wZW4nLFxuICAgICdwbGF5c2lubGluZScsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAncmVxdWlyZWQnLFxuICAgICdyZXZlcnNlZCcsXG4gICAgJ3NlbGVjdGVkJ1xuXSk7XG5cbmNvbnN0IGludmFsaWRfYXR0cmlidXRlX25hbWVfY2hhcmFjdGVyID0gL1tcXHMnXCI+Lz1cXHV7RkREMH0tXFx1e0ZERUZ9XFx1e0ZGRkV9XFx1e0ZGRkZ9XFx1ezFGRkZFfVxcdXsxRkZGRn1cXHV7MkZGRkV9XFx1ezJGRkZGfVxcdXszRkZGRX1cXHV7M0ZGRkZ9XFx1ezRGRkZFfVxcdXs0RkZGRn1cXHV7NUZGRkV9XFx1ezVGRkZGfVxcdXs2RkZGRX1cXHV7NkZGRkZ9XFx1ezdGRkZFfVxcdXs3RkZGRn1cXHV7OEZGRkV9XFx1ezhGRkZGfVxcdXs5RkZGRX1cXHV7OUZGRkZ9XFx1e0FGRkZFfVxcdXtBRkZGRn1cXHV7QkZGRkV9XFx1e0JGRkZGfVxcdXtDRkZGRX1cXHV7Q0ZGRkZ9XFx1e0RGRkZFfVxcdXtERkZGRn1cXHV7RUZGRkV9XFx1e0VGRkZGfVxcdXtGRkZGRX1cXHV7RkZGRkZ9XFx1ezEwRkZGRX1cXHV7MTBGRkZGfV0vdTtcbi8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2F0dHJpYnV0ZXMtMlxuLy8gaHR0cHM6Ly9pbmZyYS5zcGVjLndoYXR3Zy5vcmcvI25vbmNoYXJhY3RlclxuZnVuY3Rpb24gc3ByZWFkKGFyZ3MsIGNsYXNzZXNfdG9fYWRkKSB7XG4gICAgY29uc3QgYXR0cmlidXRlcyA9IE9iamVjdC5hc3NpZ24oe30sIC4uLmFyZ3MpO1xuICAgIGlmIChjbGFzc2VzX3RvX2FkZCkge1xuICAgICAgICBpZiAoYXR0cmlidXRlcy5jbGFzcyA9PSBudWxsKSB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVzLmNsYXNzID0gY2xhc3Nlc190b19hZGQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVzLmNsYXNzICs9ICcgJyArIGNsYXNzZXNfdG9fYWRkO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxldCBzdHIgPSAnJztcbiAgICBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKS5mb3JFYWNoKG5hbWUgPT4ge1xuICAgICAgICBpZiAoaW52YWxpZF9hdHRyaWJ1dGVfbmFtZV9jaGFyYWN0ZXIudGVzdChuYW1lKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBhdHRyaWJ1dGVzW25hbWVdO1xuICAgICAgICBpZiAodmFsdWUgPT09IHRydWUpXG4gICAgICAgICAgICBzdHIgKz0gJyAnICsgbmFtZTtcbiAgICAgICAgZWxzZSBpZiAoYm9vbGVhbl9hdHRyaWJ1dGVzLmhhcyhuYW1lLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUpXG4gICAgICAgICAgICAgICAgc3RyICs9ICcgJyArIG5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgc3RyICs9IGAgJHtuYW1lfT1cIiR7dmFsdWV9XCJgO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHN0cjtcbn1cbmNvbnN0IGVzY2FwZWQgPSB7XG4gICAgJ1wiJzogJyZxdW90OycsXG4gICAgXCInXCI6ICcmIzM5OycsXG4gICAgJyYnOiAnJmFtcDsnLFxuICAgICc8JzogJyZsdDsnLFxuICAgICc+JzogJyZndDsnXG59O1xuZnVuY3Rpb24gZXNjYXBlKGh0bWwpIHtcbiAgICByZXR1cm4gU3RyaW5nKGh0bWwpLnJlcGxhY2UoL1tcIicmPD5dL2csIG1hdGNoID0+IGVzY2FwZWRbbWF0Y2hdKTtcbn1cbmZ1bmN0aW9uIGVzY2FwZV9hdHRyaWJ1dGVfdmFsdWUodmFsdWUpIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IGVzY2FwZSh2YWx1ZSkgOiB2YWx1ZTtcbn1cbmZ1bmN0aW9uIGVzY2FwZV9vYmplY3Qob2JqKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gZXNjYXBlX2F0dHJpYnV0ZV92YWx1ZShvYmpba2V5XSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBlYWNoKGl0ZW1zLCBmbikge1xuICAgIGxldCBzdHIgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIHN0ciArPSBmbihpdGVtc1tpXSwgaSk7XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG59XG5jb25zdCBtaXNzaW5nX2NvbXBvbmVudCA9IHtcbiAgICAkJHJlbmRlcjogKCkgPT4gJydcbn07XG5mdW5jdGlvbiB2YWxpZGF0ZV9jb21wb25lbnQoY29tcG9uZW50LCBuYW1lKSB7XG4gICAgaWYgKCFjb21wb25lbnQgfHwgIWNvbXBvbmVudC4kJHJlbmRlcikge1xuICAgICAgICBpZiAobmFtZSA9PT0gJ3N2ZWx0ZTpjb21wb25lbnQnKVxuICAgICAgICAgICAgbmFtZSArPSAnIHRoaXM9ey4uLn0nO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYDwke25hbWV9PiBpcyBub3QgYSB2YWxpZCBTU1IgY29tcG9uZW50LiBZb3UgbWF5IG5lZWQgdG8gcmV2aWV3IHlvdXIgYnVpbGQgY29uZmlnIHRvIGVuc3VyZSB0aGF0IGRlcGVuZGVuY2llcyBhcmUgY29tcGlsZWQsIHJhdGhlciB0aGFuIGltcG9ydGVkIGFzIHByZS1jb21waWxlZCBtb2R1bGVzYCk7XG4gICAgfVxuICAgIHJldHVybiBjb21wb25lbnQ7XG59XG5mdW5jdGlvbiBkZWJ1ZyhmaWxlLCBsaW5lLCBjb2x1bW4sIHZhbHVlcykge1xuICAgIGNvbnNvbGUubG9nKGB7QGRlYnVnfSAke2ZpbGUgPyBmaWxlICsgJyAnIDogJyd9KCR7bGluZX06JHtjb2x1bW59KWApOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmxvZyh2YWx1ZXMpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcbiAgICByZXR1cm4gJyc7XG59XG5sZXQgb25fZGVzdHJveTtcbmZ1bmN0aW9uIGNyZWF0ZV9zc3JfY29tcG9uZW50KGZuKSB7XG4gICAgZnVuY3Rpb24gJCRyZW5kZXIocmVzdWx0LCBwcm9wcywgYmluZGluZ3MsIHNsb3RzLCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHBhcmVudF9jb21wb25lbnQgPSBjdXJyZW50X2NvbXBvbmVudDtcbiAgICAgICAgY29uc3QgJCQgPSB7XG4gICAgICAgICAgICBvbl9kZXN0cm95LFxuICAgICAgICAgICAgY29udGV4dDogbmV3IE1hcChjb250ZXh0IHx8IChwYXJlbnRfY29tcG9uZW50ID8gcGFyZW50X2NvbXBvbmVudC4kJC5jb250ZXh0IDogW10pKSxcbiAgICAgICAgICAgIC8vIHRoZXNlIHdpbGwgYmUgaW1tZWRpYXRlbHkgZGlzY2FyZGVkXG4gICAgICAgICAgICBvbl9tb3VudDogW10sXG4gICAgICAgICAgICBiZWZvcmVfdXBkYXRlOiBbXSxcbiAgICAgICAgICAgIGFmdGVyX3VwZGF0ZTogW10sXG4gICAgICAgICAgICBjYWxsYmFja3M6IGJsYW5rX29iamVjdCgpXG4gICAgICAgIH07XG4gICAgICAgIHNldF9jdXJyZW50X2NvbXBvbmVudCh7ICQkIH0pO1xuICAgICAgICBjb25zdCBodG1sID0gZm4ocmVzdWx0LCBwcm9wcywgYmluZGluZ3MsIHNsb3RzKTtcbiAgICAgICAgc2V0X2N1cnJlbnRfY29tcG9uZW50KHBhcmVudF9jb21wb25lbnQpO1xuICAgICAgICByZXR1cm4gaHRtbDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVuZGVyOiAocHJvcHMgPSB7fSwgeyAkJHNsb3RzID0ge30sIGNvbnRleHQgPSBuZXcgTWFwKCkgfSA9IHt9KSA9PiB7XG4gICAgICAgICAgICBvbl9kZXN0cm95ID0gW107XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7IHRpdGxlOiAnJywgaGVhZDogJycsIGNzczogbmV3IFNldCgpIH07XG4gICAgICAgICAgICBjb25zdCBodG1sID0gJCRyZW5kZXIocmVzdWx0LCBwcm9wcywge30sICQkc2xvdHMsIGNvbnRleHQpO1xuICAgICAgICAgICAgcnVuX2FsbChvbl9kZXN0cm95KTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaHRtbCxcbiAgICAgICAgICAgICAgICBjc3M6IHtcbiAgICAgICAgICAgICAgICAgICAgY29kZTogQXJyYXkuZnJvbShyZXN1bHQuY3NzKS5tYXAoY3NzID0+IGNzcy5jb2RlKS5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwOiBudWxsIC8vIFRPRE9cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGhlYWQ6IHJlc3VsdC50aXRsZSArIHJlc3VsdC5oZWFkXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICAkJHJlbmRlclxuICAgIH07XG59XG5mdW5jdGlvbiBhZGRfYXR0cmlidXRlKG5hbWUsIHZhbHVlLCBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlID09IG51bGwgfHwgKGJvb2xlYW4gJiYgIXZhbHVlKSlcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIHJldHVybiBgICR7bmFtZX0ke3ZhbHVlID09PSB0cnVlID8gJycgOiBgPSR7dHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IEpTT04uc3RyaW5naWZ5KGVzY2FwZSh2YWx1ZSkpIDogYFwiJHt2YWx1ZX1cImB9YH1gO1xufVxuZnVuY3Rpb24gYWRkX2NsYXNzZXMoY2xhc3Nlcykge1xuICAgIHJldHVybiBjbGFzc2VzID8gYCBjbGFzcz1cIiR7Y2xhc3Nlc31cImAgOiAnJztcbn1cblxuZnVuY3Rpb24gYmluZChjb21wb25lbnQsIG5hbWUsIGNhbGxiYWNrKSB7XG4gICAgY29uc3QgaW5kZXggPSBjb21wb25lbnQuJCQucHJvcHNbbmFtZV07XG4gICAgaWYgKGluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29tcG9uZW50LiQkLmJvdW5kW2luZGV4XSA9IGNhbGxiYWNrO1xuICAgICAgICBjYWxsYmFjayhjb21wb25lbnQuJCQuY3R4W2luZGV4XSk7XG4gICAgfVxufVxuZnVuY3Rpb24gY3JlYXRlX2NvbXBvbmVudChibG9jaykge1xuICAgIGJsb2NrICYmIGJsb2NrLmMoKTtcbn1cbmZ1bmN0aW9uIGNsYWltX2NvbXBvbmVudChibG9jaywgcGFyZW50X25vZGVzKSB7XG4gICAgYmxvY2sgJiYgYmxvY2subChwYXJlbnRfbm9kZXMpO1xufVxuZnVuY3Rpb24gbW91bnRfY29tcG9uZW50KGNvbXBvbmVudCwgdGFyZ2V0LCBhbmNob3IsIGN1c3RvbUVsZW1lbnQpIHtcbiAgICBjb25zdCB7IGZyYWdtZW50LCBvbl9tb3VudCwgb25fZGVzdHJveSwgYWZ0ZXJfdXBkYXRlIH0gPSBjb21wb25lbnQuJCQ7XG4gICAgZnJhZ21lbnQgJiYgZnJhZ21lbnQubSh0YXJnZXQsIGFuY2hvcik7XG4gICAgaWYgKCFjdXN0b21FbGVtZW50KSB7XG4gICAgICAgIC8vIG9uTW91bnQgaGFwcGVucyBiZWZvcmUgdGhlIGluaXRpYWwgYWZ0ZXJVcGRhdGVcbiAgICAgICAgYWRkX3JlbmRlcl9jYWxsYmFjaygoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdfb25fZGVzdHJveSA9IG9uX21vdW50Lm1hcChydW4pLmZpbHRlcihpc19mdW5jdGlvbik7XG4gICAgICAgICAgICBpZiAob25fZGVzdHJveSkge1xuICAgICAgICAgICAgICAgIG9uX2Rlc3Ryb3kucHVzaCguLi5uZXdfb25fZGVzdHJveSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBFZGdlIGNhc2UgLSBjb21wb25lbnQgd2FzIGRlc3Ryb3llZCBpbW1lZGlhdGVseSxcbiAgICAgICAgICAgICAgICAvLyBtb3N0IGxpa2VseSBhcyBhIHJlc3VsdCBvZiBhIGJpbmRpbmcgaW5pdGlhbGlzaW5nXG4gICAgICAgICAgICAgICAgcnVuX2FsbChuZXdfb25fZGVzdHJveSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb21wb25lbnQuJCQub25fbW91bnQgPSBbXTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFmdGVyX3VwZGF0ZS5mb3JFYWNoKGFkZF9yZW5kZXJfY2FsbGJhY2spO1xufVxuZnVuY3Rpb24gZGVzdHJveV9jb21wb25lbnQoY29tcG9uZW50LCBkZXRhY2hpbmcpIHtcbiAgICBjb25zdCAkJCA9IGNvbXBvbmVudC4kJDtcbiAgICBpZiAoJCQuZnJhZ21lbnQgIT09IG51bGwpIHtcbiAgICAgICAgcnVuX2FsbCgkJC5vbl9kZXN0cm95KTtcbiAgICAgICAgJCQuZnJhZ21lbnQgJiYgJCQuZnJhZ21lbnQuZChkZXRhY2hpbmcpO1xuICAgICAgICAvLyBUT0RPIG51bGwgb3V0IG90aGVyIHJlZnMsIGluY2x1ZGluZyBjb21wb25lbnQuJCQgKGJ1dCBuZWVkIHRvXG4gICAgICAgIC8vIHByZXNlcnZlIGZpbmFsIHN0YXRlPylcbiAgICAgICAgJCQub25fZGVzdHJveSA9ICQkLmZyYWdtZW50ID0gbnVsbDtcbiAgICAgICAgJCQuY3R4ID0gW107XG4gICAgfVxufVxuZnVuY3Rpb24gbWFrZV9kaXJ0eShjb21wb25lbnQsIGkpIHtcbiAgICBpZiAoY29tcG9uZW50LiQkLmRpcnR5WzBdID09PSAtMSkge1xuICAgICAgICBkaXJ0eV9jb21wb25lbnRzLnB1c2goY29tcG9uZW50KTtcbiAgICAgICAgc2NoZWR1bGVfdXBkYXRlKCk7XG4gICAgICAgIGNvbXBvbmVudC4kJC5kaXJ0eS5maWxsKDApO1xuICAgIH1cbiAgICBjb21wb25lbnQuJCQuZGlydHlbKGkgLyAzMSkgfCAwXSB8PSAoMSA8PCAoaSAlIDMxKSk7XG59XG5mdW5jdGlvbiBpbml0KGNvbXBvbmVudCwgb3B0aW9ucywgaW5zdGFuY2UsIGNyZWF0ZV9mcmFnbWVudCwgbm90X2VxdWFsLCBwcm9wcywgYXBwZW5kX3N0eWxlcywgZGlydHkgPSBbLTFdKSB7XG4gICAgY29uc3QgcGFyZW50X2NvbXBvbmVudCA9IGN1cnJlbnRfY29tcG9uZW50O1xuICAgIHNldF9jdXJyZW50X2NvbXBvbmVudChjb21wb25lbnQpO1xuICAgIGNvbnN0ICQkID0gY29tcG9uZW50LiQkID0ge1xuICAgICAgICBmcmFnbWVudDogbnVsbCxcbiAgICAgICAgY3R4OiBudWxsLFxuICAgICAgICAvLyBzdGF0ZVxuICAgICAgICBwcm9wcyxcbiAgICAgICAgdXBkYXRlOiBub29wLFxuICAgICAgICBub3RfZXF1YWwsXG4gICAgICAgIGJvdW5kOiBibGFua19vYmplY3QoKSxcbiAgICAgICAgLy8gbGlmZWN5Y2xlXG4gICAgICAgIG9uX21vdW50OiBbXSxcbiAgICAgICAgb25fZGVzdHJveTogW10sXG4gICAgICAgIG9uX2Rpc2Nvbm5lY3Q6IFtdLFxuICAgICAgICBiZWZvcmVfdXBkYXRlOiBbXSxcbiAgICAgICAgYWZ0ZXJfdXBkYXRlOiBbXSxcbiAgICAgICAgY29udGV4dDogbmV3IE1hcChvcHRpb25zLmNvbnRleHQgfHwgKHBhcmVudF9jb21wb25lbnQgPyBwYXJlbnRfY29tcG9uZW50LiQkLmNvbnRleHQgOiBbXSkpLFxuICAgICAgICAvLyBldmVyeXRoaW5nIGVsc2VcbiAgICAgICAgY2FsbGJhY2tzOiBibGFua19vYmplY3QoKSxcbiAgICAgICAgZGlydHksXG4gICAgICAgIHNraXBfYm91bmQ6IGZhbHNlLFxuICAgICAgICByb290OiBvcHRpb25zLnRhcmdldCB8fCBwYXJlbnRfY29tcG9uZW50LiQkLnJvb3RcbiAgICB9O1xuICAgIGFwcGVuZF9zdHlsZXMgJiYgYXBwZW5kX3N0eWxlcygkJC5yb290KTtcbiAgICBsZXQgcmVhZHkgPSBmYWxzZTtcbiAgICAkJC5jdHggPSBpbnN0YW5jZVxuICAgICAgICA/IGluc3RhbmNlKGNvbXBvbmVudCwgb3B0aW9ucy5wcm9wcyB8fCB7fSwgKGksIHJldCwgLi4ucmVzdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSByZXN0Lmxlbmd0aCA/IHJlc3RbMF0gOiByZXQ7XG4gICAgICAgICAgICBpZiAoJCQuY3R4ICYmIG5vdF9lcXVhbCgkJC5jdHhbaV0sICQkLmN0eFtpXSA9IHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGlmICghJCQuc2tpcF9ib3VuZCAmJiAkJC5ib3VuZFtpXSlcbiAgICAgICAgICAgICAgICAgICAgJCQuYm91bmRbaV0odmFsdWUpO1xuICAgICAgICAgICAgICAgIGlmIChyZWFkeSlcbiAgICAgICAgICAgICAgICAgICAgbWFrZV9kaXJ0eShjb21wb25lbnQsIGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgICAgfSlcbiAgICAgICAgOiBbXTtcbiAgICAkJC51cGRhdGUoKTtcbiAgICByZWFkeSA9IHRydWU7XG4gICAgcnVuX2FsbCgkJC5iZWZvcmVfdXBkYXRlKTtcbiAgICAvLyBgZmFsc2VgIGFzIGEgc3BlY2lhbCBjYXNlIG9mIG5vIERPTSBjb21wb25lbnRcbiAgICAkJC5mcmFnbWVudCA9IGNyZWF0ZV9mcmFnbWVudCA/IGNyZWF0ZV9mcmFnbWVudCgkJC5jdHgpIDogZmFsc2U7XG4gICAgaWYgKG9wdGlvbnMudGFyZ2V0KSB7XG4gICAgICAgIGlmIChvcHRpb25zLmh5ZHJhdGUpIHtcbiAgICAgICAgICAgIHN0YXJ0X2h5ZHJhdGluZygpO1xuICAgICAgICAgICAgY29uc3Qgbm9kZXMgPSBjaGlsZHJlbihvcHRpb25zLnRhcmdldCk7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgICAgICAgJCQuZnJhZ21lbnQgJiYgJCQuZnJhZ21lbnQubChub2Rlcyk7XG4gICAgICAgICAgICBub2Rlcy5mb3JFYWNoKGRldGFjaCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgICAgICAgJCQuZnJhZ21lbnQgJiYgJCQuZnJhZ21lbnQuYygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmludHJvKVxuICAgICAgICAgICAgdHJhbnNpdGlvbl9pbihjb21wb25lbnQuJCQuZnJhZ21lbnQpO1xuICAgICAgICBtb3VudF9jb21wb25lbnQoY29tcG9uZW50LCBvcHRpb25zLnRhcmdldCwgb3B0aW9ucy5hbmNob3IsIG9wdGlvbnMuY3VzdG9tRWxlbWVudCk7XG4gICAgICAgIGVuZF9oeWRyYXRpbmcoKTtcbiAgICAgICAgZmx1c2goKTtcbiAgICB9XG4gICAgc2V0X2N1cnJlbnRfY29tcG9uZW50KHBhcmVudF9jb21wb25lbnQpO1xufVxubGV0IFN2ZWx0ZUVsZW1lbnQ7XG5pZiAodHlwZW9mIEhUTUxFbGVtZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgU3ZlbHRlRWxlbWVudCA9IGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgICAgIHN1cGVyKCk7XG4gICAgICAgICAgICB0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdvcGVuJyB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgb25fbW91bnQgfSA9IHRoaXMuJCQ7XG4gICAgICAgICAgICB0aGlzLiQkLm9uX2Rpc2Nvbm5lY3QgPSBvbl9tb3VudC5tYXAocnVuKS5maWx0ZXIoaXNfZnVuY3Rpb24pO1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSB0b2RvOiBpbXByb3ZlIHR5cGluZ3NcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuJCQuc2xvdHRlZCkge1xuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgdG9kbzogaW1wcm92ZSB0eXBpbmdzXG4gICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLiQkLnNsb3R0ZWRba2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKGF0dHIsIF9vbGRWYWx1ZSwgbmV3VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXNbYXR0cl0gPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICAgICAgICAgIHJ1bl9hbGwodGhpcy4kJC5vbl9kaXNjb25uZWN0KTtcbiAgICAgICAgfVxuICAgICAgICAkZGVzdHJveSgpIHtcbiAgICAgICAgICAgIGRlc3Ryb3lfY29tcG9uZW50KHRoaXMsIDEpO1xuICAgICAgICAgICAgdGhpcy4kZGVzdHJveSA9IG5vb3A7XG4gICAgICAgIH1cbiAgICAgICAgJG9uKHR5cGUsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAvLyBUT0RPIHNob3VsZCB0aGlzIGRlbGVnYXRlIHRvIGFkZEV2ZW50TGlzdGVuZXI/XG4gICAgICAgICAgICBjb25zdCBjYWxsYmFja3MgPSAodGhpcy4kJC5jYWxsYmFja3NbdHlwZV0gfHwgKHRoaXMuJCQuY2FsbGJhY2tzW3R5cGVdID0gW10pKTtcbiAgICAgICAgICAgIGNhbGxiYWNrcy5wdXNoKGNhbGxiYWNrKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBjYWxsYmFja3MuaW5kZXhPZihjYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSlcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgICRzZXQoJCRwcm9wcykge1xuICAgICAgICAgICAgaWYgKHRoaXMuJCRzZXQgJiYgIWlzX2VtcHR5KCQkcHJvcHMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kJC5za2lwX2JvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLiQkc2V0KCQkcHJvcHMpO1xuICAgICAgICAgICAgICAgIHRoaXMuJCQuc2tpcF9ib3VuZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbn1cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgU3ZlbHRlIGNvbXBvbmVudHMuIFVzZWQgd2hlbiBkZXY9ZmFsc2UuXG4gKi9cbmNsYXNzIFN2ZWx0ZUNvbXBvbmVudCB7XG4gICAgJGRlc3Ryb3koKSB7XG4gICAgICAgIGRlc3Ryb3lfY29tcG9uZW50KHRoaXMsIDEpO1xuICAgICAgICB0aGlzLiRkZXN0cm95ID0gbm9vcDtcbiAgICB9XG4gICAgJG9uKHR5cGUsIGNhbGxiYWNrKSB7XG4gICAgICAgIGNvbnN0IGNhbGxiYWNrcyA9ICh0aGlzLiQkLmNhbGxiYWNrc1t0eXBlXSB8fCAodGhpcy4kJC5jYWxsYmFja3NbdHlwZV0gPSBbXSkpO1xuICAgICAgICBjYWxsYmFja3MucHVzaChjYWxsYmFjayk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGNhbGxiYWNrcy5pbmRleE9mKGNhbGxiYWNrKTtcbiAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpXG4gICAgICAgICAgICAgICAgY2FsbGJhY2tzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgICRzZXQoJCRwcm9wcykge1xuICAgICAgICBpZiAodGhpcy4kJHNldCAmJiAhaXNfZW1wdHkoJCRwcm9wcykpIHtcbiAgICAgICAgICAgIHRoaXMuJCQuc2tpcF9ib3VuZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLiQkc2V0KCQkcHJvcHMpO1xuICAgICAgICAgICAgdGhpcy4kJC5za2lwX2JvdW5kID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIGRpc3BhdGNoX2Rldih0eXBlLCBkZXRhaWwpIHtcbiAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGN1c3RvbV9ldmVudCh0eXBlLCBPYmplY3QuYXNzaWduKHsgdmVyc2lvbjogJzMuNDMuMCcgfSwgZGV0YWlsKSwgdHJ1ZSkpO1xufVxuZnVuY3Rpb24gYXBwZW5kX2Rldih0YXJnZXQsIG5vZGUpIHtcbiAgICBkaXNwYXRjaF9kZXYoJ1N2ZWx0ZURPTUluc2VydCcsIHsgdGFyZ2V0LCBub2RlIH0pO1xuICAgIGFwcGVuZCh0YXJnZXQsIG5vZGUpO1xufVxuZnVuY3Rpb24gYXBwZW5kX2h5ZHJhdGlvbl9kZXYodGFyZ2V0LCBub2RlKSB7XG4gICAgZGlzcGF0Y2hfZGV2KCdTdmVsdGVET01JbnNlcnQnLCB7IHRhcmdldCwgbm9kZSB9KTtcbiAgICBhcHBlbmRfaHlkcmF0aW9uKHRhcmdldCwgbm9kZSk7XG59XG5mdW5jdGlvbiBpbnNlcnRfZGV2KHRhcmdldCwgbm9kZSwgYW5jaG9yKSB7XG4gICAgZGlzcGF0Y2hfZGV2KCdTdmVsdGVET01JbnNlcnQnLCB7IHRhcmdldCwgbm9kZSwgYW5jaG9yIH0pO1xuICAgIGluc2VydCh0YXJnZXQsIG5vZGUsIGFuY2hvcik7XG59XG5mdW5jdGlvbiBpbnNlcnRfaHlkcmF0aW9uX2Rldih0YXJnZXQsIG5vZGUsIGFuY2hvcikge1xuICAgIGRpc3BhdGNoX2RldignU3ZlbHRlRE9NSW5zZXJ0JywgeyB0YXJnZXQsIG5vZGUsIGFuY2hvciB9KTtcbiAgICBpbnNlcnRfaHlkcmF0aW9uKHRhcmdldCwgbm9kZSwgYW5jaG9yKTtcbn1cbmZ1bmN0aW9uIGRldGFjaF9kZXYobm9kZSkge1xuICAgIGRpc3BhdGNoX2RldignU3ZlbHRlRE9NUmVtb3ZlJywgeyBub2RlIH0pO1xuICAgIGRldGFjaChub2RlKTtcbn1cbmZ1bmN0aW9uIGRldGFjaF9iZXR3ZWVuX2RldihiZWZvcmUsIGFmdGVyKSB7XG4gICAgd2hpbGUgKGJlZm9yZS5uZXh0U2libGluZyAmJiBiZWZvcmUubmV4dFNpYmxpbmcgIT09IGFmdGVyKSB7XG4gICAgICAgIGRldGFjaF9kZXYoYmVmb3JlLm5leHRTaWJsaW5nKTtcbiAgICB9XG59XG5mdW5jdGlvbiBkZXRhY2hfYmVmb3JlX2RldihhZnRlcikge1xuICAgIHdoaWxlIChhZnRlci5wcmV2aW91c1NpYmxpbmcpIHtcbiAgICAgICAgZGV0YWNoX2RldihhZnRlci5wcmV2aW91c1NpYmxpbmcpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGRldGFjaF9hZnRlcl9kZXYoYmVmb3JlKSB7XG4gICAgd2hpbGUgKGJlZm9yZS5uZXh0U2libGluZykge1xuICAgICAgICBkZXRhY2hfZGV2KGJlZm9yZS5uZXh0U2libGluZyk7XG4gICAgfVxufVxuZnVuY3Rpb24gbGlzdGVuX2Rldihub2RlLCBldmVudCwgaGFuZGxlciwgb3B0aW9ucywgaGFzX3ByZXZlbnRfZGVmYXVsdCwgaGFzX3N0b3BfcHJvcGFnYXRpb24pIHtcbiAgICBjb25zdCBtb2RpZmllcnMgPSBvcHRpb25zID09PSB0cnVlID8gWydjYXB0dXJlJ10gOiBvcHRpb25zID8gQXJyYXkuZnJvbShPYmplY3Qua2V5cyhvcHRpb25zKSkgOiBbXTtcbiAgICBpZiAoaGFzX3ByZXZlbnRfZGVmYXVsdClcbiAgICAgICAgbW9kaWZpZXJzLnB1c2goJ3ByZXZlbnREZWZhdWx0Jyk7XG4gICAgaWYgKGhhc19zdG9wX3Byb3BhZ2F0aW9uKVxuICAgICAgICBtb2RpZmllcnMucHVzaCgnc3RvcFByb3BhZ2F0aW9uJyk7XG4gICAgZGlzcGF0Y2hfZGV2KCdTdmVsdGVET01BZGRFdmVudExpc3RlbmVyJywgeyBub2RlLCBldmVudCwgaGFuZGxlciwgbW9kaWZpZXJzIH0pO1xuICAgIGNvbnN0IGRpc3Bvc2UgPSBsaXN0ZW4obm9kZSwgZXZlbnQsIGhhbmRsZXIsIG9wdGlvbnMpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRpc3BhdGNoX2RldignU3ZlbHRlRE9NUmVtb3ZlRXZlbnRMaXN0ZW5lcicsIHsgbm9kZSwgZXZlbnQsIGhhbmRsZXIsIG1vZGlmaWVycyB9KTtcbiAgICAgICAgZGlzcG9zZSgpO1xuICAgIH07XG59XG5mdW5jdGlvbiBhdHRyX2Rldihub2RlLCBhdHRyaWJ1dGUsIHZhbHVlKSB7XG4gICAgYXR0cihub2RlLCBhdHRyaWJ1dGUsIHZhbHVlKTtcbiAgICBpZiAodmFsdWUgPT0gbnVsbClcbiAgICAgICAgZGlzcGF0Y2hfZGV2KCdTdmVsdGVET01SZW1vdmVBdHRyaWJ1dGUnLCB7IG5vZGUsIGF0dHJpYnV0ZSB9KTtcbiAgICBlbHNlXG4gICAgICAgIGRpc3BhdGNoX2RldignU3ZlbHRlRE9NU2V0QXR0cmlidXRlJywgeyBub2RlLCBhdHRyaWJ1dGUsIHZhbHVlIH0pO1xufVxuZnVuY3Rpb24gcHJvcF9kZXYobm9kZSwgcHJvcGVydHksIHZhbHVlKSB7XG4gICAgbm9kZVtwcm9wZXJ0eV0gPSB2YWx1ZTtcbiAgICBkaXNwYXRjaF9kZXYoJ1N2ZWx0ZURPTVNldFByb3BlcnR5JywgeyBub2RlLCBwcm9wZXJ0eSwgdmFsdWUgfSk7XG59XG5mdW5jdGlvbiBkYXRhc2V0X2Rldihub2RlLCBwcm9wZXJ0eSwgdmFsdWUpIHtcbiAgICBub2RlLmRhdGFzZXRbcHJvcGVydHldID0gdmFsdWU7XG4gICAgZGlzcGF0Y2hfZGV2KCdTdmVsdGVET01TZXREYXRhc2V0JywgeyBub2RlLCBwcm9wZXJ0eSwgdmFsdWUgfSk7XG59XG5mdW5jdGlvbiBzZXRfZGF0YV9kZXYodGV4dCwgZGF0YSkge1xuICAgIGRhdGEgPSAnJyArIGRhdGE7XG4gICAgaWYgKHRleHQud2hvbGVUZXh0ID09PSBkYXRhKVxuICAgICAgICByZXR1cm47XG4gICAgZGlzcGF0Y2hfZGV2KCdTdmVsdGVET01TZXREYXRhJywgeyBub2RlOiB0ZXh0LCBkYXRhIH0pO1xuICAgIHRleHQuZGF0YSA9IGRhdGE7XG59XG5mdW5jdGlvbiB2YWxpZGF0ZV9lYWNoX2FyZ3VtZW50KGFyZykge1xuICAgIGlmICh0eXBlb2YgYXJnICE9PSAnc3RyaW5nJyAmJiAhKGFyZyAmJiB0eXBlb2YgYXJnID09PSAnb2JqZWN0JyAmJiAnbGVuZ3RoJyBpbiBhcmcpKSB7XG4gICAgICAgIGxldCBtc2cgPSAneyNlYWNofSBvbmx5IGl0ZXJhdGVzIG92ZXIgYXJyYXktbGlrZSBvYmplY3RzLic7XG4gICAgICAgIGlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIGFyZyAmJiBTeW1ib2wuaXRlcmF0b3IgaW4gYXJnKSB7XG4gICAgICAgICAgICBtc2cgKz0gJyBZb3UgY2FuIHVzZSBhIHNwcmVhZCB0byBjb252ZXJ0IHRoaXMgaXRlcmFibGUgaW50byBhbiBhcnJheS4nO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtc2cpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHZhbGlkYXRlX3Nsb3RzKG5hbWUsIHNsb3QsIGtleXMpIHtcbiAgICBmb3IgKGNvbnN0IHNsb3Rfa2V5IG9mIE9iamVjdC5rZXlzKHNsb3QpKSB7XG4gICAgICAgIGlmICghfmtleXMuaW5kZXhPZihzbG90X2tleSkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgPCR7bmFtZX0+IHJlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgc2xvdCBcIiR7c2xvdF9rZXl9XCIuYCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIFN2ZWx0ZSBjb21wb25lbnRzIHdpdGggc29tZSBtaW5vciBkZXYtZW5oYW5jZW1lbnRzLiBVc2VkIHdoZW4gZGV2PXRydWUuXG4gKi9cbmNsYXNzIFN2ZWx0ZUNvbXBvbmVudERldiBleHRlbmRzIFN2ZWx0ZUNvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBpZiAoIW9wdGlvbnMgfHwgKCFvcHRpb25zLnRhcmdldCAmJiAhb3B0aW9ucy4kJGlubGluZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIid0YXJnZXQnIGlzIGEgcmVxdWlyZWQgb3B0aW9uXCIpO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuICAgICRkZXN0cm95KCkge1xuICAgICAgICBzdXBlci4kZGVzdHJveSgpO1xuICAgICAgICB0aGlzLiRkZXN0cm95ID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdDb21wb25lbnQgd2FzIGFscmVhZHkgZGVzdHJveWVkJyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc29sZVxuICAgICAgICB9O1xuICAgIH1cbiAgICAkY2FwdHVyZV9zdGF0ZSgpIHsgfVxuICAgICRpbmplY3Rfc3RhdGUoKSB7IH1cbn1cbi8qKlxuICogQmFzZSBjbGFzcyB0byBjcmVhdGUgc3Ryb25nbHkgdHlwZWQgU3ZlbHRlIGNvbXBvbmVudHMuXG4gKiBUaGlzIG9ubHkgZXhpc3RzIGZvciB0eXBpbmcgcHVycG9zZXMgYW5kIHNob3VsZCBiZSB1c2VkIGluIGAuZC50c2AgZmlsZXMuXG4gKlxuICogIyMjIEV4YW1wbGU6XG4gKlxuICogWW91IGhhdmUgY29tcG9uZW50IGxpYnJhcnkgb24gbnBtIGNhbGxlZCBgY29tcG9uZW50LWxpYnJhcnlgLCBmcm9tIHdoaWNoXG4gKiB5b3UgZXhwb3J0IGEgY29tcG9uZW50IGNhbGxlZCBgTXlDb21wb25lbnRgLiBGb3IgU3ZlbHRlK1R5cGVTY3JpcHQgdXNlcnMsXG4gKiB5b3Ugd2FudCB0byBwcm92aWRlIHR5cGluZ3MuIFRoZXJlZm9yZSB5b3UgY3JlYXRlIGEgYGluZGV4LmQudHNgOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IFN2ZWx0ZUNvbXBvbmVudFR5cGVkIH0gZnJvbSBcInN2ZWx0ZVwiO1xuICogZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IGV4dGVuZHMgU3ZlbHRlQ29tcG9uZW50VHlwZWQ8e2Zvbzogc3RyaW5nfT4ge31cbiAqIGBgYFxuICogVHlwaW5nIHRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIElERXMgbGlrZSBWUyBDb2RlIHdpdGggdGhlIFN2ZWx0ZSBleHRlbnNpb25cbiAqIHRvIHByb3ZpZGUgaW50ZWxsaXNlbnNlIGFuZCB0byB1c2UgdGhlIGNvbXBvbmVudCBsaWtlIHRoaXMgaW4gYSBTdmVsdGUgZmlsZVxuICogd2l0aCBUeXBlU2NyaXB0OlxuICogYGBgc3ZlbHRlXG4gKiA8c2NyaXB0IGxhbmc9XCJ0c1wiPlxuICogXHRpbXBvcnQgeyBNeUNvbXBvbmVudCB9IGZyb20gXCJjb21wb25lbnQtbGlicmFyeVwiO1xuICogPC9zY3JpcHQ+XG4gKiA8TXlDb21wb25lbnQgZm9vPXsnYmFyJ30gLz5cbiAqIGBgYFxuICpcbiAqICMjIyMgV2h5IG5vdCBtYWtlIHRoaXMgcGFydCBvZiBgU3ZlbHRlQ29tcG9uZW50KERldilgP1xuICogQmVjYXVzZVxuICogYGBgdHNcbiAqIGNsYXNzIEFTdWJjbGFzc09mU3ZlbHRlQ29tcG9uZW50IGV4dGVuZHMgU3ZlbHRlQ29tcG9uZW50PHtmb286IHN0cmluZ30+IHt9XG4gKiBjb25zdCBjb21wb25lbnQ6IHR5cGVvZiBTdmVsdGVDb21wb25lbnQgPSBBU3ViY2xhc3NPZlN2ZWx0ZUNvbXBvbmVudDtcbiAqIGBgYFxuICogd2lsbCB0aHJvdyBhIHR5cGUgZXJyb3IsIHNvIHdlIG5lZWQgdG8gc2VwYXJhdGUgdGhlIG1vcmUgc3RyaWN0bHkgdHlwZWQgY2xhc3MuXG4gKi9cbmNsYXNzIFN2ZWx0ZUNvbXBvbmVudFR5cGVkIGV4dGVuZHMgU3ZlbHRlQ29tcG9uZW50RGV2IHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGxvb3BfZ3VhcmQodGltZW91dCkge1xuICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoRGF0ZS5ub3coKSAtIHN0YXJ0ID4gdGltZW91dCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbmZpbml0ZSBsb29wIGRldGVjdGVkJyk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5leHBvcnQgeyBIdG1sVGFnLCBIdG1sVGFnSHlkcmF0aW9uLCBTdmVsdGVDb21wb25lbnQsIFN2ZWx0ZUNvbXBvbmVudERldiwgU3ZlbHRlQ29tcG9uZW50VHlwZWQsIFN2ZWx0ZUVsZW1lbnQsIGFjdGlvbl9kZXN0cm95ZXIsIGFkZF9hdHRyaWJ1dGUsIGFkZF9jbGFzc2VzLCBhZGRfZmx1c2hfY2FsbGJhY2ssIGFkZF9sb2NhdGlvbiwgYWRkX3JlbmRlcl9jYWxsYmFjaywgYWRkX3Jlc2l6ZV9saXN0ZW5lciwgYWRkX3RyYW5zZm9ybSwgYWZ0ZXJVcGRhdGUsIGFwcGVuZCwgYXBwZW5kX2RldiwgYXBwZW5kX2VtcHR5X3N0eWxlc2hlZXQsIGFwcGVuZF9oeWRyYXRpb24sIGFwcGVuZF9oeWRyYXRpb25fZGV2LCBhcHBlbmRfc3R5bGVzLCBhc3NpZ24sIGF0dHIsIGF0dHJfZGV2LCBhdHRyaWJ1dGVfdG9fb2JqZWN0LCBiZWZvcmVVcGRhdGUsIGJpbmQsIGJpbmRpbmdfY2FsbGJhY2tzLCBibGFua19vYmplY3QsIGJ1YmJsZSwgY2hlY2tfb3V0cm9zLCBjaGlsZHJlbiwgY2xhaW1fY29tcG9uZW50LCBjbGFpbV9lbGVtZW50LCBjbGFpbV9odG1sX3RhZywgY2xhaW1fc3BhY2UsIGNsYWltX3N2Z19lbGVtZW50LCBjbGFpbV90ZXh0LCBjbGVhcl9sb29wcywgY29tcG9uZW50X3N1YnNjcmliZSwgY29tcHV0ZV9yZXN0X3Byb3BzLCBjb21wdXRlX3Nsb3RzLCBjcmVhdGVFdmVudERpc3BhdGNoZXIsIGNyZWF0ZV9hbmltYXRpb24sIGNyZWF0ZV9iaWRpcmVjdGlvbmFsX3RyYW5zaXRpb24sIGNyZWF0ZV9jb21wb25lbnQsIGNyZWF0ZV9pbl90cmFuc2l0aW9uLCBjcmVhdGVfb3V0X3RyYW5zaXRpb24sIGNyZWF0ZV9zbG90LCBjcmVhdGVfc3NyX2NvbXBvbmVudCwgY3VycmVudF9jb21wb25lbnQsIGN1c3RvbV9ldmVudCwgZGF0YXNldF9kZXYsIGRlYnVnLCBkZXN0cm95X2Jsb2NrLCBkZXN0cm95X2NvbXBvbmVudCwgZGVzdHJveV9lYWNoLCBkZXRhY2gsIGRldGFjaF9hZnRlcl9kZXYsIGRldGFjaF9iZWZvcmVfZGV2LCBkZXRhY2hfYmV0d2Vlbl9kZXYsIGRldGFjaF9kZXYsIGRpcnR5X2NvbXBvbmVudHMsIGRpc3BhdGNoX2RldiwgZWFjaCwgZWxlbWVudCwgZWxlbWVudF9pcywgZW1wdHksIGVuZF9oeWRyYXRpbmcsIGVzY2FwZSwgZXNjYXBlX2F0dHJpYnV0ZV92YWx1ZSwgZXNjYXBlX29iamVjdCwgZXNjYXBlZCwgZXhjbHVkZV9pbnRlcm5hbF9wcm9wcywgZml4X2FuZF9kZXN0cm95X2Jsb2NrLCBmaXhfYW5kX291dHJvX2FuZF9kZXN0cm95X2Jsb2NrLCBmaXhfcG9zaXRpb24sIGZsdXNoLCBnZXRBbGxDb250ZXh0cywgZ2V0Q29udGV4dCwgZ2V0X2FsbF9kaXJ0eV9mcm9tX3Njb3BlLCBnZXRfYmluZGluZ19ncm91cF92YWx1ZSwgZ2V0X2N1cnJlbnRfY29tcG9uZW50LCBnZXRfY3VzdG9tX2VsZW1lbnRzX3Nsb3RzLCBnZXRfcm9vdF9mb3Jfc3R5bGUsIGdldF9zbG90X2NoYW5nZXMsIGdldF9zcHJlYWRfb2JqZWN0LCBnZXRfc3ByZWFkX3VwZGF0ZSwgZ2V0X3N0b3JlX3ZhbHVlLCBnbG9iYWxzLCBncm91cF9vdXRyb3MsIGhhbmRsZV9wcm9taXNlLCBoYXNDb250ZXh0LCBoYXNfcHJvcCwgaWRlbnRpdHksIGluaXQsIGluc2VydCwgaW5zZXJ0X2RldiwgaW5zZXJ0X2h5ZHJhdGlvbiwgaW5zZXJ0X2h5ZHJhdGlvbl9kZXYsIGludHJvcywgaW52YWxpZF9hdHRyaWJ1dGVfbmFtZV9jaGFyYWN0ZXIsIGlzX2NsaWVudCwgaXNfY3Jvc3NvcmlnaW4sIGlzX2VtcHR5LCBpc19mdW5jdGlvbiwgaXNfcHJvbWlzZSwgbGlzdGVuLCBsaXN0ZW5fZGV2LCBsb29wLCBsb29wX2d1YXJkLCBtaXNzaW5nX2NvbXBvbmVudCwgbW91bnRfY29tcG9uZW50LCBub29wLCBub3RfZXF1YWwsIG5vdywgbnVsbF90b19lbXB0eSwgb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllcywgb25EZXN0cm95LCBvbk1vdW50LCBvbmNlLCBvdXRyb19hbmRfZGVzdHJveV9ibG9jaywgcHJldmVudF9kZWZhdWx0LCBwcm9wX2RldiwgcXVlcnlfc2VsZWN0b3JfYWxsLCByYWYsIHJ1biwgcnVuX2FsbCwgc2FmZV9ub3RfZXF1YWwsIHNjaGVkdWxlX3VwZGF0ZSwgc2VsZWN0X211bHRpcGxlX3ZhbHVlLCBzZWxlY3Rfb3B0aW9uLCBzZWxlY3Rfb3B0aW9ucywgc2VsZWN0X3ZhbHVlLCBzZWxmLCBzZXRDb250ZXh0LCBzZXRfYXR0cmlidXRlcywgc2V0X2N1cnJlbnRfY29tcG9uZW50LCBzZXRfY3VzdG9tX2VsZW1lbnRfZGF0YSwgc2V0X2RhdGEsIHNldF9kYXRhX2Rldiwgc2V0X2lucHV0X3R5cGUsIHNldF9pbnB1dF92YWx1ZSwgc2V0X25vdywgc2V0X3JhZiwgc2V0X3N0b3JlX3ZhbHVlLCBzZXRfc3R5bGUsIHNldF9zdmdfYXR0cmlidXRlcywgc3BhY2UsIHNwcmVhZCwgc3JjX3VybF9lcXVhbCwgc3RhcnRfaHlkcmF0aW5nLCBzdG9wX3Byb3BhZ2F0aW9uLCBzdWJzY3JpYmUsIHN2Z19lbGVtZW50LCB0ZXh0LCB0aWNrLCB0aW1lX3Jhbmdlc190b19hcnJheSwgdG9fbnVtYmVyLCB0b2dnbGVfY2xhc3MsIHRyYW5zaXRpb25faW4sIHRyYW5zaXRpb25fb3V0LCB0cnVzdGVkLCB1cGRhdGVfYXdhaXRfYmxvY2tfYnJhbmNoLCB1cGRhdGVfa2V5ZWRfZWFjaCwgdXBkYXRlX3Nsb3QsIHVwZGF0ZV9zbG90X2Jhc2UsIHZhbGlkYXRlX2NvbXBvbmVudCwgdmFsaWRhdGVfZWFjaF9hcmd1bWVudCwgdmFsaWRhdGVfZWFjaF9rZXlzLCB2YWxpZGF0ZV9zbG90cywgdmFsaWRhdGVfc3RvcmUsIHhsaW5rX2F0dHIgfTtcbiIsICJpbXBvcnQgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHsgZGVidWcsIGVycm9yIH0gZnJvbSBcImxvZ2xldmVsXCI7XHJcbmltcG9ydCB7IG5vcm1hbGl6ZVBhdGgsIE5vdGljZSwgUG9zLCBURmlsZSwgVEZvbGRlciB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgeyB3YWl0IH0gZnJvbSBcIm9ic2lkaWFuLWNvbW11bml0eS1saWJcIjtcclxuaW1wb3J0IHsgYWRkU2libGluZ3NGcm9tU2FtZVBhcmVudCwgYWRkU2libGluZ3NQYXJlbnRJc1BhcmVudCwgYWRkQXVudHNVbmNsZXMsIGFkZENvdXNpbnMsIGFkZFN0cnVjdHVyYWxFcXVpdmFsZW5jZVNpYmxpbmdzIH0gZnJvbSBcIi4vUmVsYXRpb25zXCI7XHJcbmltcG9ydCB7IGFkZENTVkNydW1icywgZ2V0Q1NWUm93cyB9IGZyb20gXCIuL0FsdGVybmF0aXZlSGllcmFyY2hpZXMvQ1NWQ3J1bWJzXCI7XHJcbmltcG9ydCB7IGFkZERhdGF2aWV3Tm90ZXNUb0dyYXBoIH0gZnJvbSBcIi4vQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9EYXRhdmlld05vdGVzXCI7XHJcbmltcG9ydCB7IGFkZERhdGVOb3Rlc1RvR3JhcGggfSBmcm9tIFwiLi9BbHRlcm5hdGl2ZUhpZXJhcmNoaWVzL0RhdGVOb3Rlc1wiO1xyXG5pbXBvcnQgeyBhZGREZW5kcm9uTm90ZXNUb0dyYXBoIH0gZnJvbSBcIi4vQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9EZW5kcm9uTm90ZXNcIjtcclxuaW1wb3J0IHsgYWRkRm9sZGVyTm90ZXNUb0dyYXBoIH0gZnJvbSBcIi4vQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9Gb2xkZXJOb3Rlc1wiO1xyXG5pbXBvcnQge1xyXG4gIGFkZEhOc1RvR3JhcGgsXHJcbiAgZ2V0SGllcmFyY2h5Tm90ZUl0ZW1zLFxyXG59IGZyb20gXCIuL0FsdGVybmF0aXZlSGllcmFyY2hpZXMvSGllcmFyY2h5Tm90ZXMvSGllcmFyY2h5Tm90ZXNcIjtcclxuaW1wb3J0IHtcclxuICBhZGRKdWdnbExpbmtzVG9HcmFwaCxcclxuICBnZXRKdWdnbExpbmtzLFxyXG59IGZyb20gXCIuL0FsdGVybmF0aXZlSGllcmFyY2hpZXMvSnVnZ2xMaW5rc1wiO1xyXG5pbXBvcnQgeyBhZGRMaW5rTm90ZXNUb0dyYXBoIH0gZnJvbSBcIi4vQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9MaW5rTm90ZXNcIjtcclxuaW1wb3J0IHsgYWRkUmVnZXhOb3Rlc1RvR3JhcGggfSBmcm9tIFwiLi9BbHRlcm5hdGl2ZUhpZXJhcmNoaWVzL1JlZ2V4Tm90ZXNcIjtcclxuaW1wb3J0IHsgYWRkVGFnTm90ZXNUb0dyYXBoIH0gZnJvbSBcIi4vQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9UYWdOb3Rlc1wiO1xyXG5pbXBvcnQgeyBhZGRUcmF2ZXJzZU5vdGVzVG9HcmFwaCB9IGZyb20gXCIuL0FsdGVybmF0aXZlSGllcmFyY2hpZXMvVHJhdmVyc2VOb3Rlc1wiO1xyXG5pbXBvcnQge1xyXG4gIEJDX0FMVFMsXHJcbiAgQkNfRFZfTk9URSxcclxuICBCQ19GT0xERVJfTk9URSxcclxuICBCQ19JX0FVTlQsXHJcbiAgQkNfSV9DT1VTSU4sXHJcbiAgQkNfSV9QQVJFTlQsXHJcbiAgQkNfSV9TSUJMSU5HXzEsXHJcbiAgQkNfSV9TSUJMSU5HXzIsXHJcbiAgQkNfTElOS19OT1RFLFxyXG4gIEJDX1JFR0VYX05PVEUsXHJcbiAgQkNfVEFHX05PVEUsXHJcbiAgQkNfVFJBVkVSU0VfTk9URSxcclxuICBkcm9wSGVhZGVyT3JBbGlhcyxcclxuICBzcGxpdExpbmtzUmVnZXgsXHJcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB0eXBlIHtcclxuICBCQ1NldHRpbmdzLFxyXG4gIGR2RnJvbnRtYXR0ZXJDYWNoZSxcclxuICBkdkxpbmssXHJcbiAgUmF3VmFsdWUsXHJcbn0gZnJvbSBcIi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi9tYWluXCI7XHJcbmltcG9ydCB7XHJcbiAgYWRkRWRnZUlmTm90LFxyXG4gIGFkZE5vZGVzSWZOb3QsXHJcbiAgYnVpbGRPYnNHcmFwaCxcclxuICBnZXRSZWZsZXhpdmVDbG9zdXJlLFxyXG4gIGdldFNvdXJjZU9yZGVyLFxyXG4gIGdldFRhcmdldE9yZGVyLFxyXG4gIHBvcHVsYXRlTWFpbixcclxufSBmcm9tIFwiLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcbmltcG9ydCB7IGZhbGxiYWNrRmllbGQsIGdldEZpZWxkSW5mbywgaXRlcmF0ZUhpZXJzIH0gZnJvbSBcIi4vVXRpbHMvSGllclV0aWxzXCI7XHJcbmltcG9ydCB7XHJcbiAgZ2V0QmFzZUZyb21NRFBhdGgsXHJcbiAgZ2V0RFZBcGksXHJcbiAgZ2V0RFZCYXNlbmFtZSxcclxufSBmcm9tIFwiLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcbmltcG9ydCB7IGRyYXdUcmFpbCB9IGZyb20gXCIuL1ZpZXdzL1RyYWlsVmlld1wiO1xyXG5cclxuZnVuY3Rpb24gZ2V0RFZNZXRhZGF0YUNhY2hlKHBsdWdpbjogQkNQbHVnaW4sIGZpbGVzOiBURmlsZVtdKSB7XHJcbiAgY29uc3QgeyBkYiB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IGFwaSA9IGdldERWQXBpKHBsdWdpbik7XHJcbiAgZGIuc3RhcnQxRyhcImdldERWTWV0YWRhdGFDYWNoZVwiKTtcclxuXHJcbiAgY29uc3QgZnJvbnRtcyA9IGZpbGVzLm1hcCgoZmlsZSkgPT4gYXBpLnBhZ2UoZmlsZS5wYXRoKSk7XHJcblxyXG4gIGRiLmVuZDFHKHsgZnJvbnRtcyB9KTtcclxuICByZXR1cm4gZnJvbnRtcztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0T2JzTWV0YWRhdGFDYWNoZShwbHVnaW46IEJDUGx1Z2luLCBmaWxlczogVEZpbGVbXSkge1xyXG4gIGNvbnN0IHsgZGIgfSA9IHBsdWdpbjtcclxuICBkYi5zdGFydDFHKFwiZ2V0T2JzTWV0YWRhdGFDYWNoZVwiKTtcclxuXHJcbiAgY29uc3QgZnJvbnRtczogZHZGcm9udG1hdHRlckNhY2hlW10gPSBmaWxlcy5tYXAoKGZpbGUpID0+IHtcclxuICAgIGNvbnN0IHsgZnJvbnRtYXR0ZXIgfSA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpbGVDYWNoZShmaWxlKTtcclxuICAgIHJldHVybiBmcm9udG1hdHRlciA/IHsgZmlsZSwgLi4uZnJvbnRtYXR0ZXIgfSA6IHsgZmlsZSB9O1xyXG4gIH0pO1xyXG5cclxuICBkYi5lbmQxRyh7IGZyb250bXMgfSk7XHJcbiAgcmV0dXJuIGZyb250bXM7XHJcbn1cclxuXHJcbmNvbnN0IGlzRFZQcm94eSA9IChpdGVtOiBSYXdWYWx1ZSkgPT4gdHlwZW9mIGl0ZW0uZGVmYXVsdENvbXBhcmF0b3IgPT09IFwiZnVuY3Rpb25cIlxyXG5cclxuLyoqXHJcbiAqIEtlZXAgdW53cmFwcGluZyBhIHByb3hpZWQgaXRlbSB1bnRpbCBpdCBpc24ndCBvbmUgYW55bW9yZVxyXG4gKiBAcGFyYW0gIHtSYXdWYWx1ZX0gaXRlbVxyXG4gKi9cclxuZnVuY3Rpb24gdW5wcm94eShpdGVtOiBSYXdWYWx1ZSkge1xyXG4gIGNvbnN0IHVucHJveGllZCA9IFtdO1xyXG4gIGNvbnN0IHF1ZXVlID0gW2l0ZW1dO1xyXG5cclxuICB3aGlsZSAocXVldWUubGVuZ3RoKSB7XHJcbiAgICBjb25zdCBjdXJySXRlbSA9IHF1ZXVlLnNoaWZ0KCk7XHJcblxyXG4gICAgaWYgKGlzRFZQcm94eShjdXJySXRlbSkpIHF1ZXVlLnB1c2goLi4uY3Vyckl0ZW0udmFsdWVzKTtcclxuICAgIGVsc2UgdW5wcm94aWVkLnB1c2goY3Vyckl0ZW0pO1xyXG4gIH1cclxuICByZXR1cm4gdW5wcm94aWVkO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEdpdmVuIGEgYGR2Q2FjaGVbZmllbGRdYCB2YWx1ZSwgcGFyc2UgdGhlIGxpbmsocykgb3V0IG9mIGl0XHJcbiAqIEBwYXJhbSB7c3RyaW5nIHwgc3RyaW5nW10gfCBzdHJpbmdbXVtdIHwgZHZMaW5rIHwgZHZMaW5rW10gfCBQb3MgfCBURmlsZX0gdmFsdWVcclxuICovXHJcbmZ1bmN0aW9uIHBhcnNlRmllbGRWYWx1ZShcclxuICB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10gfCBzdHJpbmdbXVtdIHwgZHZMaW5rIHwgZHZMaW5rW10gfCBQb3MgfCBURmlsZVxyXG4pIHtcclxuICBpZiAoIXZhbHVlKSByZXR1cm4gW107XHJcblxyXG4gIGNvbnN0IHBhcnNlZDogc3RyaW5nW10gPSBbXTtcclxuICB0cnkge1xyXG5cclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgY29uc3Qgc3BsaXRzID0gdmFsdWUubWF0Y2goc3BsaXRMaW5rc1JlZ2V4KTtcclxuXHJcbiAgICAgIGlmIChzcGxpdHMgIT09IG51bGwpIHtcclxuICAgICAgICBjb25zdCBsaW5rTmFtZXMgPSBzcGxpdHMubWFwKChsaW5rKSA9PlxyXG4gICAgICAgICAgZ2V0QmFzZUZyb21NRFBhdGgobGluay5tYXRjaChkcm9wSGVhZGVyT3JBbGlhcylbMV0pXHJcbiAgICAgICAgKTtcclxuICAgICAgICBwYXJzZWQucHVzaCguLi5saW5rTmFtZXMpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCByYXdWYWx1ZXM6IFJhd1ZhbHVlW10gPSBbdmFsdWVdLmZsYXQoNCk7XHJcbiAgICAgIGRlYnVnKC4uLnJhd1ZhbHVlcyk7XHJcblxyXG4gICAgICByYXdWYWx1ZXMuZm9yRWFjaCgocmF3SXRlbSkgPT4ge1xyXG4gICAgICAgIGlmICghcmF3SXRlbSkgcmV0dXJuO1xyXG5cclxuICAgICAgICBjb25zdCB1blByb3hpZWQgPSB1bnByb3h5KHJhd0l0ZW0pO1xyXG4gICAgICAgIHVuUHJveGllZC5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICAgICAgY29uc3QgcmF3QXNTdHJpbmcgPSB2YWx1ZS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBjb25zdCBzcGxpdHMgPSByYXdBc1N0cmluZy5tYXRjaChzcGxpdExpbmtzUmVnZXgpO1xyXG4gICAgICAgICAgICBpZiAoc3BsaXRzICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgc3RycyA9IHNwbGl0cy5tYXAoKGxpbmspID0+XHJcbiAgICAgICAgICAgICAgICBnZXRCYXNlRnJvbU1EUGF0aChsaW5rLm1hdGNoKGRyb3BIZWFkZXJPckFsaWFzKVsxXSlcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHBhcnNlZC5wdXNoKC4uLnN0cnMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGJhc2VuYW1lID0gZ2V0QmFzZUZyb21NRFBhdGgocmF3QXNTdHJpbmcpO1xyXG4gICAgICAgICAgICAgIHBhcnNlZC5wdXNoKGJhc2VuYW1lLnNwbGl0KFwiI1wiKVswXS5zcGxpdChcInxcIilbMF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLnBhdGggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBjb25zdCBiYXNlbmFtZSA9IGdldEJhc2VGcm9tTURQYXRoKHZhbHVlLnBhdGgpO1xyXG4gICAgICAgICAgICBpZiAoYmFzZW5hbWUgIT09IHVuZGVmaW5lZCkgcGFyc2VkLnB1c2goYmFzZW5hbWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYXJzZWQ7XHJcbiAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICBlcnJvcihlcnIpO1xyXG4gICAgcmV0dXJuIHBhcnNlZDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZE1haW5HKHBsdWdpbjogQkNQbHVnaW4pOiBQcm9taXNlPE11bHRpR3JhcGg+IHtcclxuICBjb25zdCBtYWluRyA9IG5ldyBNdWx0aUdyYXBoKCk7XHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHsgc2V0dGluZ3MsIGRiIH0gPSBwbHVnaW47XHJcbiAgICBjb25zdCB7IHVzZXJIaWVycywgQ1NWUGF0aHMsIHBhcnNlSnVnZ2xMaW5rc1dpdGhvdXRKdWdnbCwgaGllcmFyY2h5Tm90ZXMgfSA9XHJcbiAgICAgIHNldHRpbmdzO1xyXG4gICAgZGIuc3RhcnQyRyhcImluaXRHcmFwaHNcIik7XHJcblxyXG4gICAgaWYgKHVzZXJIaWVycy5sZW5ndGggPT09IDApIHtcclxuICAgICAgZGIuZW5kMkcoKTtcclxuICAgICAgbmV3IE5vdGljZShcIllvdSBkbyBub3QgaGF2ZSBhbnkgQnJlYWRjcnVtYnMgaGllcmFyY2hpZXMgc2V0IHVwLlwiKTtcclxuICAgICAgcmV0dXJuIG1haW5HO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZpbGVzID0gYXBwLnZhdWx0LmdldE1hcmtkb3duRmlsZXMoKTtcclxuICAgIGNvbnN0IGR2USA9IGFwcC5wbHVnaW5zLmVuYWJsZWRQbHVnaW5zLmhhcyhcImRhdGF2aWV3XCIpO1xyXG5cclxuICAgIGxldCBmcm9udG1zOiBkdkZyb250bWF0dGVyQ2FjaGVbXSA9IGR2UVxyXG4gICAgICA/IGdldERWTWV0YWRhdGFDYWNoZShwbHVnaW4sIGZpbGVzKVxyXG4gICAgICA6IGdldE9ic01ldGFkYXRhQ2FjaGUocGx1Z2luLCBmaWxlcyk7XHJcblxyXG4gICAgaWYgKGZyb250bXMuc29tZSgoZnJvbnRtKSA9PiBmcm9udG0gPT09IHVuZGVmaW5lZCkpIHtcclxuICAgICAgYXdhaXQgd2FpdCgyMDAwKTtcclxuICAgICAgZnJvbnRtcyA9IGR2UVxyXG4gICAgICAgID8gZ2V0RFZNZXRhZGF0YUNhY2hlKHBsdWdpbiwgZmlsZXMpXHJcbiAgICAgICAgOiBnZXRPYnNNZXRhZGF0YUNhY2hlKHBsdWdpbiwgZmlsZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IENTVlJvd3MgPSBDU1ZQYXRocyAhPT0gXCJcIiA/IGF3YWl0IGdldENTVlJvd3MocGx1Z2luKSA6IFtdO1xyXG5cclxuICAgIGNvbnN0IGVsaWdhYmxlQWx0czogeyBbYWx0RmllbGQ6IHN0cmluZ106IGR2RnJvbnRtYXR0ZXJDYWNoZVtdIH0gPSB7fTtcclxuICAgIEJDX0FMVFMuZm9yRWFjaCgoYWx0KSA9PiAoZWxpZ2FibGVBbHRzW2FsdF0gPSBbXSkpO1xyXG5cclxuICAgIGRiLnN0YXJ0MkcoXCJhZGRGcm9udG1hdHRlclRvR3JhcGhcIik7XHJcbiAgICBmcm9udG1zLmZvckVhY2goKHBhZ2UpID0+IHtcclxuICAgICAgQkNfQUxUUy5mb3JFYWNoKChhbHQpID0+IHtcclxuICAgICAgICBpZiAocGFnZVthbHRdICE9PSB1bmRlZmluZWQgJiYgcGFnZVthbHRdICE9PSBudWxsKVxyXG4gICAgICAgICAgZWxpZ2FibGVBbHRzW2FsdF0ucHVzaChwYWdlKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBjb25zdCBiYXNlbmFtZSA9IGdldERWQmFzZW5hbWUocGFnZS5maWxlKTtcclxuICAgICAgY29uc3Qgc291cmNlT3JkZXIgPSBnZXRTb3VyY2VPcmRlcihwYWdlKTtcclxuXHJcbiAgICAgIGl0ZXJhdGVIaWVycyh1c2VySGllcnMsIChoaWVyLCBkaXIsIGZpZWxkKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVzID0gcGFyc2VGaWVsZFZhbHVlKHBhZ2VbZmllbGRdKTtcclxuXHJcbiAgICAgICAgdmFsdWVzLmZvckVhY2goKHRhcmdldCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRhcmdldC5zdGFydHNXaXRoKFwiPCVcIikgfHwgdGFyZ2V0LnN0YXJ0c1dpdGgoXCJ7e1wiKSkgcmV0dXJuO1xyXG4gICAgICAgICAgY29uc3QgdGFyZ2V0T3JkZXIgPSBnZXRUYXJnZXRPcmRlcihmcm9udG1zLCB0YXJnZXQpO1xyXG5cclxuICAgICAgICAgIHBvcHVsYXRlTWFpbihcclxuICAgICAgICAgICAgc2V0dGluZ3MsXHJcbiAgICAgICAgICAgIG1haW5HLFxyXG4gICAgICAgICAgICBiYXNlbmFtZSxcclxuICAgICAgICAgICAgZmllbGQsXHJcbiAgICAgICAgICAgIHRhcmdldCxcclxuICAgICAgICAgICAgc291cmNlT3JkZXIsXHJcbiAgICAgICAgICAgIHRhcmdldE9yZGVyXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChDU1ZSb3dzLmxlbmd0aCkgYWRkQ1NWQ3J1bWJzKG1haW5HLCBDU1ZSb3dzLCBkaXIsIGZpZWxkKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBkYi5lbmQyRygpO1xyXG5cclxuICAgIC8vIFNFQ1RJT04gIEp1Z2dsIExpbmtzXHJcbiAgICBjb25zdCBqdWdnbExpbmtzID1cclxuICAgICAgYXBwLnBsdWdpbnMucGx1Z2lucy5qdWdnbCB8fCBwYXJzZUp1Z2dsTGlua3NXaXRob3V0SnVnZ2xcclxuICAgICAgICA/IGF3YWl0IGdldEp1Z2dsTGlua3MocGx1Z2luLCBmaWxlcylcclxuICAgICAgICA6IFtdO1xyXG5cclxuICAgIGlmIChqdWdnbExpbmtzLmxlbmd0aClcclxuICAgICAgYWRkSnVnZ2xMaW5rc1RvR3JhcGgoc2V0dGluZ3MsIGp1Z2dsTGlua3MsIGZyb250bXMsIG1haW5HKTtcclxuXHJcbiAgICAvLyAhU0VDVElPTiAgSnVnZ2wgTGlua3NcclxuXHJcbiAgICBkYi5zdGFydDJHKFwiQWx0ZXJuYXRpdmUgSGllcmFyY2hpZXNcIik7XHJcbiAgICAvLyBTRUNUSU9OICBIaWVyYXJjaHkgTm90ZXNcclxuICAgIGRiLnN0YXJ0MkcoXCJIaWVyYXJjaHkgTm90ZXNcIik7XHJcblxyXG4gICAgaWYgKGhpZXJhcmNoeU5vdGVzLmxlbmd0aCkge1xyXG4gICAgICBmb3IgKGNvbnN0IG5vdGVPckZvbGRlciBvZiBoaWVyYXJjaHlOb3Rlcykge1xyXG4gICAgICAgIGlmIChub3RlT3JGb2xkZXIuZW5kc1dpdGgoXCIvXCIpKSB7XHJcbiAgICAgICAgICBjb25zdCBmb2xkZXIgPSBhcHAudmF1bHQuZ2V0QWJzdHJhY3RGaWxlQnlQYXRoKFxyXG4gICAgICAgICAgICBub3JtYWxpemVQYXRoKG5vdGVPckZvbGRlcilcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgaWYgKCEoZm9sZGVyIGluc3RhbmNlb2YgVEZvbGRlcikpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBmb2xkZXIuY2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgVEZpbGUpIHtcclxuICAgICAgICAgICAgICBhZGRITnNUb0dyYXBoKFxyXG4gICAgICAgICAgICAgICAgc2V0dGluZ3MsXHJcbiAgICAgICAgICAgICAgICBhd2FpdCBnZXRIaWVyYXJjaHlOb3RlSXRlbXMoY2hpbGQpLFxyXG4gICAgICAgICAgICAgICAgbWFpbkdcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IGZpbGUgPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChub3RlT3JGb2xkZXIsIFwiXCIpO1xyXG4gICAgICAgICAgaWYgKGZpbGUpXHJcbiAgICAgICAgICAgIGFkZEhOc1RvR3JhcGgoXHJcbiAgICAgICAgICAgICAgc2V0dGluZ3MsXHJcbiAgICAgICAgICAgICAgYXdhaXQgZ2V0SGllcmFyY2h5Tm90ZUl0ZW1zKGZpbGUpLFxyXG4gICAgICAgICAgICAgIG1haW5HXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZGIuZW5kMkcoKTtcclxuICAgIC8vICFTRUNUSU9OICBIaWVyYXJjaHkgTm90ZXNcclxuXHJcbiAgICBkYi5zdGFydDJHKFwiRm9sZGVyIE5vdGVzXCIpO1xyXG4gICAgYWRkRm9sZGVyTm90ZXNUb0dyYXBoKHBsdWdpbiwgZWxpZ2FibGVBbHRzW0JDX0ZPTERFUl9OT1RFXSwgZnJvbnRtcywgbWFpbkcpO1xyXG4gICAgZGIuZW5kMkcoKTtcclxuICAgIGRiLnN0YXJ0MkcoXCJUYWcgTm90ZXNcIik7XHJcbiAgICBhZGRUYWdOb3Rlc1RvR3JhcGgocGx1Z2luLCBlbGlnYWJsZUFsdHNbQkNfVEFHX05PVEVdLCBmcm9udG1zLCBtYWluRyk7XHJcbiAgICBkYi5lbmQyRygpO1xyXG4gICAgZGIuc3RhcnQyRyhcIkxpbmsgTm90ZXNcIik7XHJcbiAgICBhZGRMaW5rTm90ZXNUb0dyYXBoKHBsdWdpbiwgZWxpZ2FibGVBbHRzW0JDX0xJTktfTk9URV0sIGZyb250bXMsIG1haW5HKTtcclxuICAgIGRiLmVuZDJHKCk7XHJcbiAgICBkYi5zdGFydDJHKFwiUmVnZXggTm90ZXNcIik7XHJcbiAgICBhZGRSZWdleE5vdGVzVG9HcmFwaChwbHVnaW4sIGVsaWdhYmxlQWx0c1tCQ19SRUdFWF9OT1RFXSwgZnJvbnRtcywgbWFpbkcpO1xyXG4gICAgZGIuZW5kMkcoKTtcclxuICAgIC8vIHBsdWdpbi5hZGROYW1pbmdTeXN0ZW1Ob3Rlc1RvR3JhcGgoZnJvbnRtcywgbWFpbkcpO1xyXG4gICAgZGIuc3RhcnQyRyhcIlRyYXZlcnNlIE5vdGVzXCIpO1xyXG4gICAgYWRkVHJhdmVyc2VOb3Rlc1RvR3JhcGgoXHJcbiAgICAgIHBsdWdpbixcclxuICAgICAgZWxpZ2FibGVBbHRzW0JDX1RSQVZFUlNFX05PVEVdLFxyXG4gICAgICBtYWluRyxcclxuICAgICAgYnVpbGRPYnNHcmFwaCgpXHJcbiAgICApO1xyXG4gICAgZGIuZW5kMkcoKTtcclxuICAgIGRiLnN0YXJ0MkcoXCJEZW5kcm9uIE5vdGVzXCIpO1xyXG4gICAgYWRkRGVuZHJvbk5vdGVzVG9HcmFwaChwbHVnaW4sIGZyb250bXMsIG1haW5HKTtcclxuICAgIGRiLmVuZDJHKCk7XHJcbiAgICBkYi5zdGFydDJHKFwiRGF0YXZpZXcgTm90ZXNcIik7XHJcbiAgICBhZGREYXRhdmlld05vdGVzVG9HcmFwaChwbHVnaW4sIGVsaWdhYmxlQWx0c1tCQ19EVl9OT1RFXSwgZnJvbnRtcywgbWFpbkcpO1xyXG4gICAgZGIuZW5kMkcoKTtcclxuICAgIGRiLnN0YXJ0MkcoXCJEYXRlIE5vdGVzXCIpO1xyXG4gICAgYWRkRGF0ZU5vdGVzVG9HcmFwaChwbHVnaW4sIGZyb250bXMsIG1haW5HKTtcclxuICAgIGRiLmVuZDJHKCk7XHJcblxyXG4gICAgZGIuZW5kMkcoKTtcclxuXHJcbiAgICBmaWxlcy5mb3JFYWNoKChmaWxlKSA9PiBhZGROb2Rlc0lmTm90KG1haW5HLCBbZmlsZS5iYXNlbmFtZV0pKTtcclxuICAgIGRiLmVuZDJHKFwiZ3JhcGhzIGluaXRlZFwiLCB7IG1haW5HIH0pO1xyXG4gICAgcmV0dXJuIG1haW5HO1xyXG4gIH0gY2F0Y2ggKGVycikge1xyXG4gICAgZXJyb3IoZXJyKTtcclxuICAgIHBsdWdpbi5kYi5lbmQyRygpO1xyXG4gICAgcmV0dXJuIG1haW5HO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQ2xvc2VkRyhwbHVnaW46IEJDUGx1Z2luKSB7XHJcbiAgY29uc3QgeyBtYWluRywgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7XHJcbiAgICB1c2VySGllcnMsXHJcbiAgICBpbXBsaWVkUmVsYXRpb25zOiB7XHJcbiAgICAgIHNhbWVQYXJlbnRJc1NpYmxpbmcsXHJcbiAgICAgIHBhcmVudHNTaWJsaW5nc0lzUGFyZW50cyxcclxuICAgICAgY291c2luc0lzU2libGluZyxcclxuICAgICAgc2libGluZ3NTaWJsaW5nSXNTaWJsaW5nLFxyXG4gICAgICBzaWJsaW5nc1BhcmVudElzUGFyZW50LFxyXG4gICAgfSxcclxuICB9ID0gc2V0dGluZ3M7XHJcbiAgbGV0IGNsb3NlZEcgPSBnZXRSZWZsZXhpdmVDbG9zdXJlKG1haW5HLCB1c2VySGllcnMpO1xyXG5cclxuICBpZiAoc2FtZVBhcmVudElzU2libGluZykgYWRkU2libGluZ3NGcm9tU2FtZVBhcmVudChjbG9zZWRHLCBzZXR0aW5ncyk7XHJcbiAgaWYgKHNpYmxpbmdzUGFyZW50SXNQYXJlbnQpIGFkZFNpYmxpbmdzUGFyZW50SXNQYXJlbnQoY2xvc2VkRyk7XHJcbiAgaWYgKHBhcmVudHNTaWJsaW5nc0lzUGFyZW50cykgYWRkQXVudHNVbmNsZXMoY2xvc2VkRyk7XHJcbiAgaWYgKGNvdXNpbnNJc1NpYmxpbmcpIGFkZENvdXNpbnMoY2xvc2VkRyk7XHJcbiAgaWYgKHNpYmxpbmdzU2libGluZ0lzU2libGluZykgYWRkU3RydWN0dXJhbEVxdWl2YWxlbmNlU2libGluZ3MoY2xvc2VkRyk7XHJcblxyXG4gIHJldHVybiBjbG9zZWRHO1xyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVmcmVzaEluZGV4KHBsdWdpbjogQkNQbHVnaW4pIHtcclxuICBpZiAoIXBsdWdpbi5hY3RpdmVMZWFmQ2hhbmdlKSBwbHVnaW4ucmVnaXN0ZXJBY3RpdmVMZWFmQ2hhbmdlRXZlbnQoKTtcclxuICBpZiAoIXBsdWdpbi5sYXlvdXRDaGFuZ2UpIHBsdWdpbi5yZWdpc3RlckxheW91dENoYW5nZUV2ZW50KCk7XHJcblxyXG4gIHBsdWdpbi5tYWluRyA9IGF3YWl0IGJ1aWxkTWFpbkcocGx1Z2luKTtcclxuICBwbHVnaW4uY2xvc2VkRyA9IGJ1aWxkQ2xvc2VkRyhwbHVnaW4pO1xyXG5cclxuICBmb3IgKGNvbnN0IHsgdHlwZSB9IG9mIHBsdWdpbi5WSUVXUylcclxuICAgIGF3YWl0IHBsdWdpbi5nZXRBY3RpdmVUWVBFVmlldyh0eXBlKT8uZHJhdygpO1xyXG5cclxuICBpZiAocGx1Z2luLnNldHRpbmdzLnNob3dCQ3MpIGF3YWl0IGRyYXdUcmFpbChwbHVnaW4pO1xyXG4gIGlmIChwbHVnaW4uc2V0dGluZ3Muc2hvd1JlZnJlc2hOb3RpY2UpIG5ldyBOb3RpY2UoXCJCQyBJbmRleCByZWZyZXNoZWRcIik7XHJcbn1cclxuIiwgImltcG9ydCBHcmFwaCwgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHsgZGZzRnJvbU5vZGUgfSBmcm9tIFwiZ3JhcGhvbG9neS10cmF2ZXJzYWxcIjtcclxuaW1wb3J0IHR5cGUgeyBBdHRyaWJ1dGVzIH0gZnJvbSBcImdyYXBob2xvZ3ktdHlwZXNcIjtcclxuaW1wb3J0IHsgaW5mbyB9IGZyb20gXCJsb2dsZXZlbFwiO1xyXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vLi4vbWFpblwiO1xyXG5pbXBvcnQge1xyXG4gIEJDX0lfUkVGTEVYSVZFLFxyXG4gIEJDX09SREVSLFxyXG4gIGJsYW5rUmVhbE5JbXBsaWVkLFxyXG4gIERJUkVDVElPTlMsXHJcbn0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSB7XHJcbiAgQkNTZXR0aW5ncyxcclxuICBEaXJlY3Rpb25zLFxyXG4gIGR2RnJvbnRtYXR0ZXJDYWNoZSxcclxuICBFZGdlQXR0cixcclxuICBOb2RlUGF0aCxcclxuICBSZWFsTkltcGxpZWQsXHJcbiAgVXNlckhpZXIsXHJcbn0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHsgZ2V0RmllbGRJbmZvLCBnZXRPcHBEaXIsIGdldE9wcEZpZWxkcyB9IGZyb20gXCIuL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXRCYXNlRnJvbU1EUGF0aCB9IGZyb20gXCIuL09ic2lkaWFuVXRpbHNcIjtcclxuXHJcbi8vIFRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIHJlYWwgJiBpbXBsaWVkIGdyYXBocyBmb3IgYSBnaXZlbiByZWxhdGlvbiwgYW5kIHJldHVybnMgYSBuZXcgZ3JhcGhzIHdpdGggYm90aC5cclxuLy8gSXQgbWFrZXMgaW1wbGllZCByZWxhdGlvbnMgcmVhbFxyXG4vLyBUT0RPIHVzZSByZWZsZXhpdmVDbG9zdXJlIGluc3RlYWRcclxuZXhwb3J0IGZ1bmN0aW9uIGNsb3NlSW1wbGllZExpbmtzKFxyXG4gIHJlYWw6IE11bHRpR3JhcGgsXHJcbiAgaW1wbGllZDogTXVsdGlHcmFwaFxyXG4pOiBNdWx0aUdyYXBoIHtcclxuICBjb25zdCBjbG9zZWRHID0gcmVhbC5jb3B5KCk7XHJcbiAgaW1wbGllZC5mb3JFYWNoRWRnZSgoa2V5LCBhLCBzLCB0KSA9PiB7XHJcbiAgICBjbG9zZWRHLm1lcmdlRWRnZSh0LCBzLCBhKTtcclxuICB9KTtcclxuICByZXR1cm4gY2xvc2VkRztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVW5saW5rZWROb2RlcyhnOiBNdWx0aUdyYXBoKSB7XHJcbiAgY29uc3QgY29weSA9IGcuY29weSgpO1xyXG4gIGNvcHkuZm9yRWFjaE5vZGUoKG5vZGUpID0+IHtcclxuICAgIGlmICghY29weS5kZWdyZWUobm9kZSkpIGNvcHkuZHJvcE5vZGUobm9kZSk7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIGNvcHk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gYSBzdWJncmFwaCBvZiBhbGwgbm9kZXMgJiBlZGdlcyB3aXRoIGBkaXJzLmluY2x1ZGVzKGEuZGlyKWBcclxuICpcclxuICogRmlsdGVyIHRoZSBnaXZlbiBncmFwaCB0byBvbmx5IGluY2x1ZGUgZWRnZXMgaW4gdGhlIGdpdmVuIGRpcmVjdGlvbnMuXHJcbiAqIEBwYXJhbSAge011bHRpR3JhcGh9IGdcclxuICogQHBhcmFtICB7RGlyZWN0aW9uc30gZGlyXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3ViSW5EaXJzKGc6IE11bHRpR3JhcGgsIC4uLmRpcnM6IERpcmVjdGlvbnNbXSkge1xyXG4gIGNvbnN0IHN1YiA9IG5ldyBNdWx0aUdyYXBoKCk7XHJcbiAgZz8uZm9yRWFjaEVkZ2UoKGssIGEsIHMsIHQpID0+IHtcclxuICAgIGlmIChkaXJzLmluY2x1ZGVzKGEuZGlyKSkge1xyXG4gICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgYWRkTm9kZXNJZk5vdChzdWIsIFtzLCB0XSwgeyBvcmRlcjogYS5vcmRlciB9KTtcclxuICAgICAgc3ViLmFkZEVkZ2UocywgdCwgYSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHN1YjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBhIHN1YmdyYXBoIG9mIGFsbCBub2RlcyAmIGVkZ2VzIHdpdGggYGZpZWxkcy5pbmNsdWRlcyhhLmZpZWxkKWAuXHJcbiAqXHJcbiAqIEZpbHRlciB0aGUgZ2l2ZW4gZ3JhcGggdG8gb25seSBpbmNsdWRlIGVkZ2VzIHdpdGggdGhlIGdpdmVuIGZpZWxkcy5cclxuICogQHBhcmFtICB7TXVsdGlHcmFwaH0gZ1xyXG4gKiBAcGFyYW0gIHtzdHJpbmdbXX0gZmllbGRzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3ViRm9yRmllbGRzKGc6IE11bHRpR3JhcGgsIGZpZWxkczogc3RyaW5nW10pIHtcclxuICBjb25zdCBzdWIgPSBuZXcgTXVsdGlHcmFwaCgpO1xyXG4gIGcuZm9yRWFjaEVkZ2UoKGssIGEsIHMsIHQpID0+IHtcclxuICAgIGlmIChmaWVsZHMuaW5jbHVkZXMoYS5maWVsZCkpIHtcclxuICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgIGFkZE5vZGVzSWZOb3Qoc3ViLCBbcywgdF0sIHsgb3JkZXI6IGEub3JkZXIgfSk7XHJcbiAgICAgIHN1Yi5hZGRFZGdlKHMsIHQsIGEpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBzdWI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGb3IgZXZlcnkgZWRnZSBpbiBgZ2AsIGFkZCB0aGUgcmV2ZXJzZSBvZiB0aGUgZWRnZSB0byBhIGNvcHkgb2YgYGdgLlxyXG4gKlxyXG4gKiBJdCBhbHNvIHNldHMgdGhlIGF0dHJzIG9mIHRoZSByZXZlcnNlIGVkZ2VzIHRvIGBvcHBEaXJgIGFuZCBgb3BwRmllbGRzWzBdYFxyXG4gKiBAcGFyYW0gIHtNdWx0aUdyYXBofSBnXHJcbiAqIEBwYXJhbSAge1VzZXJIaWVyW119IHVzZXJIaWVyc1xyXG4gKiBAcGFyYW0gIHtib29sZWFufSBjbG9zZUFzT3Bwb3NpdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWZsZXhpdmVDbG9zdXJlKFxyXG4gIGc6IE11bHRpR3JhcGgsXHJcbiAgdXNlckhpZXJzOiBVc2VySGllcltdXHJcbik6IE11bHRpR3JhcGgge1xyXG4gIGNvbnN0IGNvcHkgPSBnLmNvcHkoKTtcclxuICBjb3B5LmZvckVhY2hFZGdlKChrLCBhLCBzLCB0KSA9PiB7XHJcbiAgICBjb25zdCB7IGRpciwgZmllbGQgfSA9IGE7XHJcbiAgICBpZiAoZmllbGQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG4gICAgY29uc3Qgb3BwRGlyID0gZ2V0T3BwRGlyKGRpcik7XHJcbiAgICBjb25zdCBvcHBGaWVsZCA9XHJcbiAgICAgIGRpciA9PT0gXCJzYW1lXCIgPyBmaWVsZCA6IGdldE9wcEZpZWxkcyh1c2VySGllcnMsIGZpZWxkLCBkaXIpWzBdO1xyXG5cclxuICAgIGFkZE5vZGVzSWZOb3QoY29weSwgW3MsIHRdLCB7IG9yZGVyOiA5OTk5IH0pO1xyXG4gICAgYWRkRWRnZUlmTm90KGNvcHksIHQsIHMsIHtcclxuICAgICAgZGlyOiBvcHBEaXIsXHJcbiAgICAgIGZpZWxkOiBvcHBGaWVsZCxcclxuICAgICAgaW1wbGllZDogQkNfSV9SRUZMRVhJVkUsXHJcbiAgICB9KTtcclxuICB9KTtcclxuICByZXR1cm4gY29weTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZE5vZGVzSWZOb3QoXHJcbiAgZzogTXVsdGlHcmFwaCxcclxuICBub2Rlczogc3RyaW5nW10sXHJcbiAgYXR0ciA9IHsgb3JkZXI6IDk5OTkgfVxyXG4pIHtcclxuICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcclxuICAgIGcudXBkYXRlTm9kZShub2RlLCAoZXhzdGFudEF0dHJzOiBBdHRyaWJ1dGVzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGV4dGFudE9yZGVyOiBudW1iZXIgfCB1bmRlZmluZWQgPSBleHN0YW50QXR0cnMub3JkZXI7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4uZXhzdGFudEF0dHJzLFxyXG4gICAgICAgIG9yZGVyOiBleHRhbnRPcmRlciAmJiBleHRhbnRPcmRlciA8IDk5OTkgPyBleHRhbnRPcmRlciA6IGF0dHIub3JkZXIsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRFZGdlSWZOb3QoXHJcbiAgZzogTXVsdGlHcmFwaCxcclxuICBzb3VyY2U6IHN0cmluZyxcclxuICB0YXJnZXQ6IHN0cmluZyxcclxuICBhdHRyPzogQXR0cmlidXRlc1xyXG4pIHtcclxuICBpZiAoIWcuaGFzRWRnZShzb3VyY2UsIHRhcmdldCkpIGcuYWRkRWRnZShzb3VyY2UsIHRhcmdldCwgYXR0cik7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBnZXRTaW5rcyA9IChnOiBNdWx0aUdyYXBoKSA9PlxyXG4gIGcuZmlsdGVyTm9kZXMoKG5vZGUpID0+IGcuaGFzTm9kZShub2RlKSAmJiAhZy5vdXREZWdyZWUobm9kZSkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldFNvdXJjZXMgPSAoZzogTXVsdGlHcmFwaCkgPT5cclxuICBnLmZpbHRlck5vZGVzKChub2RlKSA9PiBnLmhhc05vZGUobm9kZSkgJiYgIWcuaW5EZWdyZWUobm9kZSkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldE91dE5laWdoYm91cnMgPSAoZzogTXVsdGlHcmFwaCwgbm9kZTogc3RyaW5nKSA9PlxyXG4gIGcuaGFzTm9kZShub2RlKSA/IGcub3V0TmVpZ2hib3JzKG5vZGUpIDogW107XHJcbmV4cG9ydCBjb25zdCBnZXRJbk5laWdoYm91cnMgPSAoZzogTXVsdGlHcmFwaCwgbm9kZTogc3RyaW5nKSA9PlxyXG4gIGcuaGFzTm9kZShub2RlKSA/IGcuaW5OZWlnaGJvcnMobm9kZSkgOiBbXTtcclxuXHJcbi8qKlxyXG4gKiBGaW5kcyBhbGwgcGF0aHMgZnJvbSBhIHN0YXJ0aW5nIG5vZGUgdG8gYWxsIG90aGVyIHNpbmtzIGluIGEgZ3JhcGguXHJcbiAqXHJcbiAqXHJcbiAqIEBwYXJhbSB7TXVsdGlHcmFwaH0gZyAtIFRoZSBncmFwaCB0byBzZWFyY2hcclxuICogQHBhcmFtIHtzdHJpbmd9IHN0YXJ0IC0gVGhlIHN0YXJ0aW5nIG5vZGVcclxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgYXJyYXlzLiBFYWNoIGFycmF5IGlzIGEgcGF0aC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBkZnNBbGxQYXRocyhnOiBNdWx0aUdyYXBoLCBzdGFydDogc3RyaW5nKTogc3RyaW5nW11bXSB7XHJcbiAgY29uc3QgcXVldWU6IE5vZGVQYXRoW10gPSBbeyBub2RlOiBzdGFydCwgcGF0aDogW10gfV07XHJcbiAgY29uc3QgdmlzaXRlZDogeyBbbm90ZTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcclxuICBjb25zdCBhbGxQYXRoczogc3RyaW5nW11bXSA9IFtdO1xyXG5cclxuICBsZXQgaSA9IDA7XHJcbiAgd2hpbGUgKHF1ZXVlLmxlbmd0aCA+IDAgJiYgaSA8IDEwMDApIHtcclxuICAgIGkrKztcclxuICAgIGNvbnN0IHsgbm9kZSwgcGF0aCB9ID0gcXVldWUuc2hpZnQoKTtcclxuXHJcbiAgICBjb25zdCBleHRQYXRoID0gW25vZGUsIC4uLnBhdGhdO1xyXG4gICAgY29uc3Qgc3VjY3NOb3RWaXNpdGVkID0gZy5oYXNOb2RlKG5vZGUpXHJcbiAgICAgID8gZy5maWx0ZXJPdXROZWlnaGJvcnMoXHJcbiAgICAgICAgbm9kZSxcclxuICAgICAgICAoc3VjYykgPT4gIXZpc2l0ZWRbc3VjY10gfHwgdmlzaXRlZFtzdWNjXSA8IDVcclxuICAgICAgKVxyXG4gICAgICA6IFtdO1xyXG4gICAgY29uc3QgbmV3SXRlbXMgPSBzdWNjc05vdFZpc2l0ZWQubWFwKChzdWNjKSA9PiB7XHJcbiAgICAgIHZpc2l0ZWRbc3VjY10gPSB2aXNpdGVkW3N1Y2NdID8gdmlzaXRlZFtzdWNjXSArIDEgOiAxO1xyXG4gICAgICByZXR1cm4geyBub2RlOiBzdWNjLCBwYXRoOiBleHRQYXRoIH07XHJcbiAgICB9KTtcclxuXHJcbiAgICBxdWV1ZS51bnNoaWZ0KC4uLm5ld0l0ZW1zKTtcclxuXHJcbiAgICBpZiAoIWcuaGFzTm9kZShub2RlKSB8fCAhZy5vdXREZWdyZWUobm9kZSkpIGFsbFBhdGhzLnB1c2goZXh0UGF0aCk7XHJcbiAgfVxyXG4gIHJldHVybiBhbGxQYXRocztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGJmc0FsbFBhdGhzKGc6IE11bHRpR3JhcGgsIHN0YXJ0OiBzdHJpbmcpOiBzdHJpbmdbXVtdIHtcclxuICBjb25zdCBwYXRoc0Fycjogc3RyaW5nW11bXSA9IFtdO1xyXG4gIGNvbnN0IHF1ZXVlOiBOb2RlUGF0aFtdID0gW3sgbm9kZTogc3RhcnQsIHBhdGg6IFtdIH1dO1xyXG5cclxuICBsZXQgaSA9IDA7XHJcbiAgd2hpbGUgKHF1ZXVlLmxlbmd0aCAhPT0gMCAmJiBpIDwgMTAwMCkge1xyXG4gICAgaSsrO1xyXG4gICAgY29uc3QgeyBub2RlLCBwYXRoIH0gPSBxdWV1ZS5zaGlmdCgpO1xyXG4gICAgY29uc3QgZXh0UGF0aCA9IFtub2RlLCAuLi5wYXRoXTtcclxuXHJcbiAgICBjb25zdCBzdWNjcyA9IGcuaGFzTm9kZShub2RlKVxyXG4gICAgICA/IGcuZmlsdGVyT3V0TmVpZ2hib3JzKG5vZGUsIChuKSA9PiAhcGF0aC5pbmNsdWRlcyhuKSlcclxuICAgICAgOiBbXTtcclxuICAgIGZvciAoY29uc3Qgbm9kZSBvZiBzdWNjcykge1xyXG4gICAgICBxdWV1ZS5wdXNoKHsgbm9kZSwgcGF0aDogZXh0UGF0aCB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0ZXJtaW5hbCBub2RlXHJcbiAgICBpZiAoIWcuaGFzTm9kZShub2RlKSB8fCBzdWNjcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcGF0aHNBcnIucHVzaChleHRQYXRoKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gU3BsaWNlIG9mZiB0aGUgY3VycmVudCBub3RlIGZyb20gdGhlIHBhdGhcclxuICBwYXRoc0Fyci5mb3JFYWNoKChwYXRoKSA9PiB7XHJcbiAgICBpZiAocGF0aC5sZW5ndGgpIHBhdGguc3BsaWNlKHBhdGgubGVuZ3RoIC0gMSwgMSk7XHJcbiAgfSk7XHJcbiAgaW5mbyh7IHBhdGhzQXJyIH0pO1xyXG4gIHJldHVybiBwYXRoc0FycjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUN5Y2xlcyhnOiBHcmFwaCwgc3RhcnROb2RlOiBzdHJpbmcpIHtcclxuICBjb25zdCBjb3B5ID0gZy5jb3B5KCk7XHJcbiAgbGV0IHByZXZOb2RlID0gbnVsbDtcclxuICBkZnNGcm9tTm9kZShjb3B5LCBzdGFydE5vZGUsIChuKSA9PiB7XHJcbiAgICBjb3B5LmZvckVhY2hPdXROZWlnaGJvcihuLCAodCkgPT4ge1xyXG4gICAgICBpZiAodCA9PT0gcHJldk5vZGUgJiYgY29weS5oYXNFZGdlKHQsIHByZXZOb2RlKSkge1xyXG4gICAgICAgIHRyeSB7IGNvcHkuZHJvcEVkZ2UodCwgcHJldk5vZGUpIH1cclxuICAgICAgICBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcih0LCBwcmV2Tm9kZSwgZXJyb3IpIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcHJldk5vZGUgPSBuO1xyXG4gIH0pO1xyXG4gIHJldHVybiBjb3B5O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3ViQ2xvc2VTdWIoXHJcbiAgZzogTXVsdGlHcmFwaCxcclxuICB1c2VySGllcnM6IFVzZXJIaWVyW10sXHJcbiAgLi4uZGlyczogRGlyZWN0aW9uc1tdXHJcbikge1xyXG4gIGNvbnN0IHN1YiA9IGdldFN1YkluRGlycyhnLCAuLi5kaXJzKTtcclxuICBjb25zdCBjbG9zZWQgPSBnZXRSZWZsZXhpdmVDbG9zdXJlKHN1YiwgdXNlckhpZXJzKTtcclxuICBjb25zdCBjbG9zZWRTdWIgPSBnZXRTdWJJbkRpcnMoY2xvc2VkLCBkaXJzWzBdKTtcclxuICByZXR1cm4gY2xvc2VkU3ViO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRPYnNHcmFwaCgpOiBNdWx0aUdyYXBoIHtcclxuICBjb25zdCBPYnNHID0gbmV3IE11bHRpR3JhcGgoKTtcclxuICBjb25zdCB7IHJlc29sdmVkTGlua3MsIHVucmVzb2x2ZWRMaW5rcyB9ID0gYXBwLm1ldGFkYXRhQ2FjaGU7XHJcblxyXG4gIGZvciAoY29uc3Qgc291cmNlIGluIHJlc29sdmVkTGlua3MpIHtcclxuICAgIGlmICghc291cmNlLmVuZHNXaXRoKFwiLm1kXCIpKSBjb250aW51ZTtcclxuICAgIGNvbnN0IHNvdXJjZUJhc2UgPSBnZXRCYXNlRnJvbU1EUGF0aChzb3VyY2UpO1xyXG4gICAgYWRkTm9kZXNJZk5vdChPYnNHLCBbc291cmNlQmFzZV0pO1xyXG5cclxuICAgIGZvciAoY29uc3QgZGVzdCBpbiByZXNvbHZlZExpbmtzW3NvdXJjZV0pIHtcclxuICAgICAgaWYgKCFkZXN0LmVuZHNXaXRoKFwiLm1kXCIpKSBjb250aW51ZTtcclxuICAgICAgY29uc3QgZGVzdEJhc2UgPSBnZXRCYXNlRnJvbU1EUGF0aChkZXN0KTtcclxuICAgICAgYWRkTm9kZXNJZk5vdChPYnNHLCBbZGVzdEJhc2VdKTtcclxuICAgICAgT2JzRy5hZGRFZGdlKHNvdXJjZUJhc2UsIGRlc3RCYXNlLCB7IHJlc29sdmVkOiB0cnVlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZm9yIChjb25zdCBzb3VyY2UgaW4gdW5yZXNvbHZlZExpbmtzKSB7XHJcbiAgICBjb25zdCBzb3VyY2VCYXNlID0gZ2V0QmFzZUZyb21NRFBhdGgoc291cmNlKTtcclxuICAgIGFkZE5vZGVzSWZOb3QoT2JzRywgW3NvdXJjZUJhc2VdKTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGRlc3QgaW4gdW5yZXNvbHZlZExpbmtzW3NvdXJjZV0pIHtcclxuICAgICAgY29uc3QgZGVzdEJhc2UgPSBnZXRCYXNlRnJvbU1EUGF0aChkZXN0KTtcclxuICAgICAgYWRkTm9kZXNJZk5vdChPYnNHLCBbZGVzdEJhc2VdKTtcclxuICAgICAgaWYgKHNvdXJjZUJhc2UgPT09IGRlc3RCYXNlKSBjb250aW51ZTtcclxuICAgICAgT2JzRy5hZGRFZGdlKHNvdXJjZUJhc2UsIGRlc3RCYXNlLCB7IHJlc29sdmVkOiBmYWxzZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluZm8oeyBPYnNHIH0pO1xyXG4gIHJldHVybiBPYnNHO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcG9wdWxhdGVNYWluKFxyXG4gIHNldHRpbmdzOiBCQ1NldHRpbmdzLFxyXG4gIG1haW5HOiBNdWx0aUdyYXBoLFxyXG4gIHNvdXJjZTogc3RyaW5nLFxyXG4gIGZpZWxkOiBzdHJpbmcsXHJcbiAgdGFyZ2V0OiBzdHJpbmcsXHJcbiAgc291cmNlT3JkZXI6IG51bWJlcixcclxuICB0YXJnZXRPcmRlcjogbnVtYmVyLFxyXG4gIGZpbGxPcHAgPSBmYWxzZVxyXG4pOiB2b2lkIHtcclxuICBjb25zdCB7IHVzZXJIaWVycyB9ID0gc2V0dGluZ3M7XHJcbiAgY29uc3QgZGlyID0gZ2V0RmllbGRJbmZvKHVzZXJIaWVycywgZmllbGQpLmZpZWxkRGlyO1xyXG5cclxuICBhZGROb2Rlc0lmTm90KG1haW5HLCBbc291cmNlXSwge1xyXG4gICAgb3JkZXI6IHNvdXJjZU9yZGVyLFxyXG4gIH0pO1xyXG5cclxuICBhZGROb2Rlc0lmTm90KG1haW5HLCBbdGFyZ2V0XSwge1xyXG4gICAgb3JkZXI6IHRhcmdldE9yZGVyLFxyXG4gIH0pO1xyXG5cclxuICBhZGRFZGdlSWZOb3QobWFpbkcsIHNvdXJjZSwgdGFyZ2V0LCB7XHJcbiAgICBkaXIsXHJcbiAgICBmaWVsZCxcclxuICB9KTtcclxuICBpZiAoZmlsbE9wcCkge1xyXG4gICAgYWRkRWRnZUlmTm90KG1haW5HLCB0YXJnZXQsIHNvdXJjZSwge1xyXG4gICAgICBkaXI6IGdldE9wcERpcihkaXIpLFxyXG4gICAgICBmaWVsZDogZ2V0T3BwRmllbGRzKHVzZXJIaWVycywgZmllbGQsIGRpcilbMF0sXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBnZXRUYXJnZXRPcmRlciA9IChmcm9udG1zOiBkdkZyb250bWF0dGVyQ2FjaGVbXSwgdGFyZ2V0OiBzdHJpbmcpID0+XHJcbiAgcGFyc2VJbnQoXHJcbiAgICAoZnJvbnRtcy5maW5kKChmZikgPT4gZmY/LmZpbGU/LmJhc2VuYW1lID09PSB0YXJnZXQpPy5bXHJcbiAgICAgIEJDX09SREVSXHJcbiAgICBdIGFzIHN0cmluZykgPz8gXCI5OTk5XCJcclxuICApO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldFNvdXJjZU9yZGVyID0gKGZyb250bTogZHZGcm9udG1hdHRlckNhY2hlKSA9PlxyXG4gIHBhcnNlSW50KChmcm9udG1bQkNfT1JERVJdIGFzIHN0cmluZykgPz8gXCI5OTk5XCIpO1xyXG5cclxuLyoqIFJlbWVtYmVyIHRvIGZpbHRlciBieSBoaWVyYXJjaHkgaW4gTWF0cml4VmlldyEgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlYWxuSW1wbGllZChcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIGN1cnJOb2RlOiBzdHJpbmcsXHJcbiAgZGlyOiBEaXJlY3Rpb25zID0gbnVsbFxyXG4pOiBSZWFsTkltcGxpZWQge1xyXG4gIGNvbnN0IHJlYWxzbkltcGxpZWRzOiBSZWFsTkltcGxpZWQgPSBibGFua1JlYWxOSW1wbGllZCgpO1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MsIGNsb3NlZEcgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7IHVzZXJIaWVycyB9ID0gc2V0dGluZ3M7XHJcblxyXG4gIGlmICghY2xvc2VkRy5oYXNOb2RlKGN1cnJOb2RlKSkgcmV0dXJuIHJlYWxzbkltcGxpZWRzO1xyXG4gIGNsb3NlZEcuZm9yRWFjaEVkZ2UoY3Vyck5vZGUsIChrLCBhLCBzLCB0KSA9PiB7XHJcbiAgICBjb25zdCB7IGZpZWxkLCBkaXI6IGVkZ2VEaXIsIGltcGxpZWQgfSA9IGEgYXMgRWRnZUF0dHI7XHJcbiAgICBjb25zdCBvcHBGaWVsZCA9IGdldE9wcEZpZWxkcyh1c2VySGllcnMsIGZpZWxkLCBlZGdlRGlyKVswXTtcclxuXHJcbiAgICAoZGlyID8gW2RpciwgZ2V0T3BwRGlyKGRpcildIDogRElSRUNUSU9OUykuZm9yRWFjaChcclxuICAgICAgKGN1cnJEaXI6IERpcmVjdGlvbnMpID0+IHtcclxuICAgICAgICBjb25zdCBvcHBEaXIgPSBnZXRPcHBEaXIoY3VyckRpcik7XHJcbiAgICAgICAgLy8gUmVhbHNcclxuICAgICAgICBpZiAocyA9PT0gY3Vyck5vZGUgJiYgKGVkZ2VEaXIgPT09IGN1cnJEaXIgfHwgZWRnZURpciA9PT0gb3BwRGlyKSkge1xyXG4gICAgICAgICAgY29uc3QgYXJyID0gcmVhbHNuSW1wbGllZHNbZWRnZURpcl0ucmVhbHM7XHJcbiAgICAgICAgICBpZiAoYXJyLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS50byA9PT0gdCkgPT09IC0xKSB7XHJcbiAgICAgICAgICAgIGFyci5wdXNoKHsgdG86IHQsIGZpZWxkLCBpbXBsaWVkIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJbXBsaWVkc1xyXG4gICAgICAgIC8vIElmIGBzICE9PSBjdXJyTm9kZWAgdGhlbiBgdGAgbXVzdCBiZVxyXG4gICAgICAgIGVsc2UgaWYgKGVkZ2VEaXIgPT09IGN1cnJEaXIgfHwgZWRnZURpciA9PT0gb3BwRGlyKSB7XHJcbiAgICAgICAgICBjb25zdCBhcnIgPSByZWFsc25JbXBsaWVkc1tnZXRPcHBEaXIoZWRnZURpcildLmltcGxpZWRzO1xyXG4gICAgICAgICAgaWYgKGFyci5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0udG8gPT09IHMpID09PSAtMSkge1xyXG4gICAgICAgICAgICBhcnIucHVzaCh7XHJcbiAgICAgICAgICAgICAgdG86IHMsXHJcbiAgICAgICAgICAgICAgZmllbGQ6IG9wcEZpZWxkLFxyXG4gICAgICAgICAgICAgIGltcGxpZWQsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9KTtcclxuICByZXR1cm4gcmVhbHNuSW1wbGllZHM7XHJcbn1cclxuIiwgImltcG9ydCB7IEFSUk9XX0RJUkVDVElPTlMsIERJUkVDVElPTlMgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB0eXBlIHsgRGlyZWN0aW9ucywgVXNlckhpZXIgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG5cclxuLyoqXHJcbiAqIEdldCBhbGwgdGhlIGZpZWxkcyBpbiBgZGlyYC5cclxuICogUmV0dXJucyBhbGwgZmllbGRzIGlmIGBkaXIgPT09ICdhbGwnYFxyXG4gKiBAcGFyYW0gIHtVc2VySGllcltdfSB1c2VySGllcnNcclxuICogQHBhcmFtICB7RGlyZWN0aW9uc3xcImFsbFwifSBkaXJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWVsZHMoXHJcbiAgdXNlckhpZXJzOiBVc2VySGllcltdLFxyXG4gIGRpcjogRGlyZWN0aW9ucyB8IFwiYWxsXCIgPSBcImFsbFwiXHJcbikge1xyXG4gIGNvbnN0IGZpZWxkczogc3RyaW5nW10gPSBbXTtcclxuICB1c2VySGllcnMuZm9yRWFjaCgoaGllcikgPT4ge1xyXG4gICAgaWYgKGRpciA9PT0gXCJhbGxcIikge1xyXG4gICAgICBESVJFQ1RJT05TLmZvckVhY2goKGVhY2hEaXIpID0+IHtcclxuICAgICAgICBmaWVsZHMucHVzaCguLi5oaWVyW2VhY2hEaXJdKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmaWVsZHMucHVzaCguLi5oaWVyW2Rpcl0pO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBmaWVsZHM7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBnZXRPcHBEaXIgPSAoZGlyOiBEaXJlY3Rpb25zKTogRGlyZWN0aW9ucyA9PiB7XHJcbiAgc3dpdGNoIChkaXIpIHtcclxuICAgIGNhc2UgXCJ1cFwiOlxyXG4gICAgICByZXR1cm4gXCJkb3duXCI7XHJcbiAgICBjYXNlIFwiZG93blwiOlxyXG4gICAgICByZXR1cm4gXCJ1cFwiO1xyXG4gICAgY2FzZSBcInNhbWVcIjpcclxuICAgICAgcmV0dXJuIFwic2FtZVwiO1xyXG4gICAgY2FzZSBcIm5leHRcIjpcclxuICAgICAgcmV0dXJuIFwicHJldlwiO1xyXG4gICAgY2FzZSBcInByZXZcIjpcclxuICAgICAgcmV0dXJuIFwibmV4dFwiO1xyXG4gIH1cclxufTtcclxuXHJcbi8qKlxyXG4gKiAgR2V0IHRoZSBoaWVyYXJjaHkgYW5kIGRpcmVjdGlvbiB0aGF0IGBmaWVsZGAgaXMgaW5cclxuICogKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpZWxkSW5mbyh1c2VySGllcnM6IFVzZXJIaWVyW10sIGZpZWxkOiBzdHJpbmcpIHtcclxuICBsZXQgZmllbGREaXI6IERpcmVjdGlvbnM7XHJcbiAgbGV0IGZpZWxkSGllcjogVXNlckhpZXI7XHJcblxyXG4gIERJUkVDVElPTlMuZm9yRWFjaCgoZGlyOiBEaXJlY3Rpb25zKSA9PiB7XHJcbiAgICB1c2VySGllcnMuZm9yRWFjaCgoaGllcikgPT4ge1xyXG4gICAgICBpZiAoaGllcltkaXJdLmluY2x1ZGVzKGZpZWxkKSkge1xyXG4gICAgICAgIGZpZWxkRGlyID0gZGlyO1xyXG4gICAgICAgIGZpZWxkSGllciA9IGhpZXI7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9KTtcclxuICByZXR1cm4geyBmaWVsZEhpZXIsIGZpZWxkRGlyIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHBGaWVsZHMoXHJcbiAgdXNlckhpZXJzOiBVc2VySGllcltdLFxyXG4gIGZpZWxkOiBzdHJpbmcsXHJcbiAgZGlyOiBEaXJlY3Rpb25zXHJcbikge1xyXG4gIC8vIElmIHRoZSBmaWVsZCBlbmRzIHdpdGggYD5gLCBpdCBpcyBhbHJlYWR5IHRoZSBvcHBvc2l0ZSBmaWVsZCB3ZSBuZWVkIChjb21pbmcgZnJvbSBgZ2V0T3BwRmFsbGJhY2tgKVxyXG4gIGlmIChmaWVsZC5lbmRzV2l0aChcIj5cIikpIHJldHVybiBbZmllbGQuc2xpY2UoMCwgLTQpXTtcclxuXHJcbiAgY29uc3Qgb3BwRmllbGRzID0gW2ZhbGxiYWNrT3BwRmllbGQoZmllbGQsIGRpcildO1xyXG4gIGNvbnN0IHsgZmllbGRIaWVyLCBmaWVsZERpciB9ID0gZ2V0RmllbGRJbmZvKHVzZXJIaWVycywgZmllbGQpO1xyXG4gIGlmICghZmllbGRIaWVyIHx8ICFmaWVsZERpcikgcmV0dXJuIG9wcEZpZWxkcztcclxuXHJcbiAgY29uc3Qgb3BwRGlyID0gZ2V0T3BwRGlyKGZpZWxkRGlyKTtcclxuICBvcHBGaWVsZHMudW5zaGlmdCguLi5maWVsZEhpZXJbb3BwRGlyXSk7XHJcbiAgcmV0dXJuIG9wcEZpZWxkcztcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGhpZXJUb1N0ciA9IChoaWVyOiBVc2VySGllcikgPT5cclxuICBESVJFQ1RJT05TLm1hcChcclxuICAgIChkaXIpID0+IGAke0FSUk9XX0RJUkVDVElPTlNbZGlyXX06ICR7aGllcltkaXJdLmpvaW4oXCIsIFwiKX1gXHJcbiAgKS5qb2luKFwiXFxuXCIpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGZhbGxiYWNrRmllbGQgPSAoZmllbGQ6IHN0cmluZywgZGlyOiBEaXJlY3Rpb25zKSA9PlxyXG4gIGAke2ZpZWxkfSA8JHtBUlJPV19ESVJFQ1RJT05TW2Rpcl19PmA7XHJcbmV4cG9ydCBjb25zdCBmYWxsYmFja09wcEZpZWxkID0gKGZpZWxkOiBzdHJpbmcsIGRpcjogRGlyZWN0aW9ucykgPT5cclxuICBgJHtmaWVsZH0gPCR7QVJST1dfRElSRUNUSU9OU1tnZXRPcHBEaXIoZGlyKV19PmA7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXRlcmF0ZUhpZXJzKFxyXG4gIHVzZXJIaWVyczogVXNlckhpZXJbXSxcclxuICBmbjogKGhpZXI6IFVzZXJIaWVyLCBkaXI6IERpcmVjdGlvbnMsIGZpZWxkOiBzdHJpbmcpID0+IHZvaWRcclxuKSB7XHJcbiAgdXNlckhpZXJzLmZvckVhY2goKGhpZXIpID0+IHtcclxuICAgIERJUkVDVElPTlMuZm9yRWFjaCgoZGlyKSA9PiB7XHJcbiAgICAgIGhpZXJbZGlyXS5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIGZuKGhpZXIsIGRpciwgZmllbGQpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH0pO1xyXG59XHJcbiIsICJpbXBvcnQgeyBpbmZvIH0gZnJvbSBcImxvZ2xldmVsXCI7XHJcbmltcG9ydCB7XHJcbiAgRnJvbnRNYXR0ZXJDYWNoZSxcclxuICBwYXJzZVlhbWwsXHJcbiAgc3RyaW5naWZ5WWFtbCxcclxuICBURmlsZSxcclxufSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHtcclxuICBpc0luVmF1bHQsXHJcbiAgd2FpdCxcclxuICB3YWl0Rm9yUmVzb2x2ZWRMaW5rcyxcclxufSBmcm9tIFwib2JzaWRpYW4tY29tbXVuaXR5LWxpYi9kaXN0L3V0aWxzXCI7XHJcbmltcG9ydCB0eXBlIHsgTWV0YWVkaXRBcGkgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQgeyBzcGxpdEFuZFRyaW0gfSBmcm9tIFwiLi9nZW5lcmFsVXRpbHNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRTZXR0aW5ncyA9ICgpID0+IGFwcC5wbHVnaW5zLnBsdWdpbnMuYnJlYWRjcnVtYnMuc2V0dGluZ3NcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRDdXJyRmlsZSA9ICgpOiBURmlsZSB8IG51bGwgPT4gYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVGaWxlKClcclxuXHJcbi8qKlxyXG4gKiBHZXQgYmFzZW5hbWUgZnJvbSBhICoqTWFya2Rvd24qKiBgcGF0aGBcclxuICogQHBhcmFtICB7c3RyaW5nfSBwYXRoXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0QmFzZUZyb21NRFBhdGggPSAocGF0aDogc3RyaW5nKSA9PiB7XHJcbiAgY29uc3Qgc3BsaXRTbGFzaCA9IHBhdGguc3BsaXQoXCIvXCIpLmxhc3QoKTtcclxuICBpZiAoc3BsaXRTbGFzaC5lbmRzV2l0aChcIi5tZFwiKSkge1xyXG4gICAgcmV0dXJuIHNwbGl0U2xhc2guc3BsaXQoXCIubWRcIikuc2xpY2UoMCwgLTEpLmpvaW4oXCIuXCIpO1xyXG4gIH0gZWxzZSByZXR1cm4gc3BsaXRTbGFzaDtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXREVkJhc2VuYW1lID0gKGZpbGU6IFRGaWxlKSA9PiBmaWxlLmJhc2VuYW1lIHx8IGZpbGUubmFtZTtcclxuZXhwb3J0IGNvbnN0IGdldEZvbGRlck5hbWUgPSAoZmlsZTogVEZpbGUpOiBzdHJpbmcgPT5cclxuICAvL0B0cy1pZ25vcmVcclxuICBmaWxlPy5wYXJlbnQ/Lm5hbWUgfHwgZmlsZS5mb2xkZXI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWFrZVdpa2koc3RyOiBzdHJpbmcsIHdpa2lRID0gdHJ1ZSkge1xyXG4gIGxldCBjb3B5ID0gc3RyLnNsaWNlKCk7XHJcbiAgaWYgKHdpa2lRKSB7XHJcbiAgICBjb3B5ID0gXCJbW1wiICsgY29weTtcclxuICAgIGNvcHkgKz0gXCJdXVwiO1xyXG4gIH1cclxuICByZXR1cm4gY29weTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRyb3BXaWtpbGlua3Moc3RyOiBzdHJpbmcpIHtcclxuICBsZXQgY29weSA9IHN0ci5zbGljZSgpO1xyXG4gIGlmIChjb3B5LnN0YXJ0c1dpdGgoXCJbW1wiKSAmJiBjb3B5LmVuZHNXaXRoKFwiXV1cIikpIGNvcHkgPSBjb3B5LnNsaWNlKDIsIC0yKTtcclxuICByZXR1cm4gY29weTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHMgb3IgdXBkYXRlcyB0aGUgZ2l2ZW4geWFtbCBga2V5YCB0byBgdmFsdWVgIGluIHRoZSBnaXZlbiBURmlsZVxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IGtleVxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IHZhbHVlXHJcbiAqIEBwYXJhbSAge1RGaWxlfSBmaWxlXHJcbiAqIEBwYXJhbSAge0Zyb250TWF0dGVyQ2FjaGV8dW5kZWZpbmVkfSBmcm9udG1hdHRlclxyXG4gKiBAcGFyYW0gIHtNZXRhZWRpdEFwaX0gYXBpXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgY3JlYXRlT3JVcGRhdGVZYW1sID0gYXN5bmMgKFxyXG4gIGtleTogc3RyaW5nLFxyXG4gIHZhbHVlOiBzdHJpbmcsXHJcbiAgZmlsZTogVEZpbGUsXHJcbiAgZnJvbnRtYXR0ZXI6IEZyb250TWF0dGVyQ2FjaGUgfCB1bmRlZmluZWQsXHJcbiAgYXBpOiBNZXRhZWRpdEFwaVxyXG4pID0+IHtcclxuICBjb25zdCB2YWx1ZVN0ciA9IHZhbHVlLnRvU3RyaW5nKCk7XHJcblxyXG4gIGlmICghZnJvbnRtYXR0ZXIgfHwgZnJvbnRtYXR0ZXJba2V5XSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICBpbmZvKGBDcmVhdGluZzogJHtrZXl9OiAke3ZhbHVlU3RyfWApO1xyXG4gICAgYXdhaXQgYXBpLmNyZWF0ZVlhbWxQcm9wZXJ0eShrZXksIGBbJyR7dmFsdWVTdHJ9J11gLCBmaWxlKTtcclxuICB9IGVsc2UgaWYgKFsuLi5bZnJvbnRtYXR0ZXJba2V5XV1dLmZsYXQoMykuc29tZSgodmFsKSA9PiB2YWwgPT0gdmFsdWVTdHIpKSB7XHJcbiAgICBpbmZvKFwiQWxyZWFkeSBFeGlzdHMhXCIpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zdCBvbGRWYWx1ZUZsYXQ6IHN0cmluZ1tdID0gWy4uLltmcm9udG1hdHRlcltrZXldXV0uZmxhdCg0KTtcclxuICAgIGNvbnN0IG5ld1ZhbHVlID0gWy4uLm9sZFZhbHVlRmxhdCwgYCcke3ZhbHVlU3RyfSdgXTtcclxuICAgIGluZm8oYFVwZGF0aW5nOiAke2tleX06ICR7bmV3VmFsdWV9YCk7XHJcbiAgICBhd2FpdCBhcGkudXBkYXRlKGtleSwgYFske25ld1ZhbHVlLmpvaW4oXCIsIFwiKX1dYCwgZmlsZSk7XHJcbiAgfVxyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNoYW5nZVlhbWwoeWFtbDogc3RyaW5nLCBrZXk6IHN0cmluZywgbmV3VmFsOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIGlmICh5YW1sID09PSBcIlwiKSB7XHJcbiAgICByZXR1cm4gYCR7a2V5fTogWycke25ld1ZhbH0nXWA7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnN0IHBhcnNlZDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHBhcnNlWWFtbCh5YW1sKTtcclxuICAgIGNvbnN0IHZhbHVlID0gcGFyc2VkW2tleV07XHJcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBwYXJzZWRba2V5XSA9IG5ld1ZhbDtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIHZhbHVlICE9PSBuZXdWYWwpIHtcclxuICAgICAgcGFyc2VkW2tleV0gPSBbdmFsdWUsIG5ld1ZhbF07XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICB0eXBlb2YgdmFsdWU/LlswXSA9PT0gXCJzdHJpbmdcIiAmJlxyXG4gICAgICB2YWx1ZS5pbmNsdWRlcyAmJlxyXG4gICAgICAhdmFsdWUuaW5jbHVkZXMobmV3VmFsKVxyXG4gICAgKSB7XHJcbiAgICAgIHBhcnNlZFtrZXldID0gWy4uLnZhbHVlLCBuZXdWYWxdO1xyXG4gICAgfVxyXG4gICAgLy8gZWxzZSBpZiAob3RoZXIgdHlwZXMgb2YgdmFsdWVzLi4uKVxyXG4gICAgcmV0dXJuIHN0cmluZ2lmeVlhbWwocGFyc2VkKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzcGxpdEF0WWFtbChjb250ZW50OiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmddIHtcclxuICBpZiAoIWNvbnRlbnQuc3RhcnRzV2l0aChcIi0tLVxcblwiKSkgcmV0dXJuIFtcIlwiLCBjb250ZW50XTtcclxuICBlbHNlIHtcclxuICAgIGNvbnN0IHNwbGl0cyA9IGNvbnRlbnQuc3BsaXQoXCItLS1cIik7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICBzcGxpdHMuc2xpY2UoMCwgMikuam9pbihcIi0tLVwiKSArIFwiLS0tXCIsXHJcbiAgICAgIHNwbGl0cy5zbGljZSgyKS5qb2luKFwiLS0tXCIpLFxyXG4gICAgXTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBkcm9wSGFzaCA9ICh0YWc6IHN0cmluZykgPT5cclxuICB0YWcuc3RhcnRzV2l0aChcIiNcIikgPyB0YWcuc2xpY2UoMSkgOiB0YWc7XHJcblxyXG5leHBvcnQgY29uc3QgYWRkSGFzaCA9ICh0YWc6IHN0cmluZykgPT4gKHRhZy5zdGFydHNXaXRoKFwiI1wiKSA/IHRhZyA6IGAjJHt0YWd9YCk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWx0KG5vZGU6IHN0cmluZywgcGx1Z2luOiBCQ1BsdWdpbik6IHN0cmluZyB8IG51bGwge1xyXG4gIGNvbnN0IHsgYWx0TGlua0ZpZWxkcywgc2hvd0FsbEFsaWFzZXMgfSA9IHBsdWdpbi5zZXR0aW5ncztcclxuICBpZiAoYWx0TGlua0ZpZWxkcy5sZW5ndGgpIHtcclxuICAgIGNvbnN0IGZpbGUgPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChub2RlLCBcIlwiKTtcclxuICAgIGlmIChmaWxlKSB7XHJcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0RmlsZUNhY2hlKGZpbGUpO1xyXG4gICAgICBmb3IgKGNvbnN0IGFsdEZpZWxkIG9mIGFsdExpbmtGaWVsZHMpIHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IG1ldGFkYXRhPy5mcm9udG1hdHRlcj8uW2FsdEZpZWxkXTtcclxuXHJcbiAgICAgICAgY29uc3QgYXJyOiBzdHJpbmdbXSA9XHJcbiAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyBzcGxpdEFuZFRyaW0odmFsdWUpIDogdmFsdWU7XHJcbiAgICAgICAgaWYgKHZhbHVlKSByZXR1cm4gc2hvd0FsbEFsaWFzZXMgPyBhcnIuam9pbihcIiwgXCIpIDogYXJyWzBdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBlbHNlIHJldHVybiBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2FpdEZvckNhY2hlKHBsdWdpbjogQkNQbHVnaW4pIHtcclxuICBpZiAoYXBwLnBsdWdpbnMuZW5hYmxlZFBsdWdpbnMuaGFzKFwiZGF0YXZpZXdcIikpIHtcclxuICAgIGxldCBiYXNlbmFtZTogc3RyaW5nO1xyXG4gICAgd2hpbGUgKCFiYXNlbmFtZSB8fCAhYXBwLnBsdWdpbnMucGx1Z2lucy5kYXRhdmlldy5hcGkucGFnZShiYXNlbmFtZSkpIHtcclxuICAgICAgYXdhaXQgd2FpdCgxMDApO1xyXG4gICAgICBiYXNlbmFtZSA9IGdldEN1cnJGaWxlKCk/LmJhc2VuYW1lO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBhd2FpdCB3YWl0Rm9yUmVzb2x2ZWRMaW5rcyhhcHApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGxpbmtDbGFzcyA9ICh0bzogc3RyaW5nLCByZWFsUSA9IHRydWUpID0+XHJcbiAgYGludGVybmFsLWxpbmsgQkMtTGluayAke2lzSW5WYXVsdCh0bykgPyBcIlwiIDogXCJpcy11bnJlc29sdmVkXCJ9ICR7cmVhbFEgPyBcIlwiIDogXCJCQy1JbXBsaWVkXCJcclxuICB9YDtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXREVkFwaSA9IChwbHVnaW46IEJDUGx1Z2luKSA9PlxyXG4gIGFwcC5wbHVnaW5zLnBsdWdpbnMuZGF0YXZpZXc/LmFwaTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0luc2lkZVlhbWwoKTogYm9vbGVhbiB8IG51bGwge1xyXG4gIGNvbnN0IHsgd29ya3NwYWNlLCBtZXRhZGF0YUNhY2hlIH0gPSBhcHA7XHJcbiAgY29uc3QgeyBhY3RpdmVMZWFmIH0gPSB3b3Jrc3BhY2U7XHJcbiAgY29uc3Qge1xyXG4gICAgc3RhdGU6IHsgbW9kZSB9LFxyXG4gIH0gPSBhY3RpdmVMZWFmLmdldFZpZXdTdGF0ZSgpO1xyXG5cclxuICBpZiAobW9kZSAhPT0gXCJzb3VyY2VcIikgcmV0dXJuIG51bGw7XHJcblxyXG4gIGNvbnN0IHsgZWRpdG9yIH0gPSBhY3RpdmVMZWFmLnZpZXc7XHJcblxyXG4gIGNvbnN0IGZpbGUgPSBnZXRDdXJyRmlsZSgpO1xyXG4gIGlmICghZmlsZSkgcmV0dXJuIG51bGw7XHJcblxyXG4gIGNvbnN0IHsgZnJvbnRtYXR0ZXIgfSA9IG1ldGFkYXRhQ2FjaGUuZ2V0RmlsZUNhY2hlKGZpbGUpO1xyXG4gIGlmICghZnJvbnRtYXR0ZXIpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSBmcm9udG1hdHRlci5wb3NpdGlvbjtcclxuICBjb25zdCBjdXJyT2ZmID0gZWRpdG9yLnBvc1RvT2Zmc2V0KGVkaXRvci5nZXRDdXJzb3IoKSk7XHJcbiAgaWYgKGN1cnJPZmYgPj0gc3RhcnQub2Zmc2V0ICYmIGN1cnJPZmYgPD0gZW5kLm9mZnNldCkgcmV0dXJuIHRydWU7XHJcbiAgZWxzZSByZXR1cm4gZmFsc2U7XHJcbn1cclxuIiwgImltcG9ydCB7IHdhcm4gfSBmcm9tIFwibG9nbGV2ZWxcIjtcclxuaW1wb3J0IHsgZHJvcEhlYWRlck9yQWxpYXMsIHJlZ05GbGFncywgc3BsaXRMaW5rc1JlZ2V4IH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSB7IEJDU2V0dGluZ3MgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHN1bShhcnI6IG51bWJlcltdKTogbnVtYmVyIHtcclxuICByZXR1cm4gYXJyLnJlZHVjZSgoYSwgYikgPT4gYSArIGIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXNlKGFycjogbnVtYmVyW10pOiBudW1iZXJbXSB7XHJcbiAgY29uc3QgbWF4ID0gTWF0aC5tYXgoLi4uYXJyKTtcclxuICByZXR1cm4gYXJyLm1hcCgoaXRlbSkgPT4gaXRlbSAvIG1heCk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBpc1N1YnNldCA9IDxUPihhcnIxOiBUW10sIGFycjI6IFRbXSk6IGJvb2xlYW4gPT5cclxuICBhcnIxLmV2ZXJ5KCh2YWx1ZSkgPT4gYXJyMi5pbmNsdWRlcyh2YWx1ZSkpO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0QW5kRHJvcChzdHI6IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuICByZXR1cm4gKFxyXG4gICAgc3RyXHJcbiAgICAgID8ubWF0Y2goc3BsaXRMaW5rc1JlZ2V4KVxyXG4gICAgICA/Lm1hcCgobGluaykgPT4gbGluay5tYXRjaChkcm9wSGVhZGVyT3JBbGlhcyk/LlsxXSkgPz8gW11cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgZHJvcFBhdGggPSAocGF0aDogc3RyaW5nKSA9PiBwYXRoLnJlcGxhY2UoL14uKlxcLy8sIFwiXCIpO1xyXG5leHBvcnQgY29uc3QgZHJvcERlbmRyb24gPSAocGF0aDogc3RyaW5nLCBzZXR0aW5nczogQkNTZXR0aW5ncykgPT5cclxuICBzZXR0aW5ncy50cmltRGVuZHJvbk5vdGVzXHJcbiAgICA/IHBhdGguc3BsaXQoc2V0dGluZ3MuZGVuZHJvbk5vdGVEZWxpbWl0ZXIpLmxhc3QoKVxyXG4gICAgOiBwYXRoO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRyb3BQYXRoTkRlbmRyb24gPSAocGF0aDogc3RyaW5nLCBzZXR0aW5nczogQkNTZXR0aW5ncykgPT5cclxuICBkcm9wRGVuZHJvbihkcm9wUGF0aChwYXRoKSwgc2V0dGluZ3MpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRyb3BGb2xkZXIgPSAocGF0aDogc3RyaW5nKSA9PlxyXG4gIHBhdGguc3BsaXQoXCIvXCIpLmxhc3QoKS5zcGxpdChcIi5cIikuc2xpY2UoMCwgLTEpLmpvaW4oXCIuXCIpO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNwbGl0QW5kVHJpbSA9IChmaWVsZHM6IHN0cmluZyk6IHN0cmluZ1tdID0+IHtcclxuICBpZiAoIWZpZWxkcyB8fCBmaWVsZHMgPT09IFwiXCIpIHJldHVybiBbXTtcclxuICBlbHNlIHJldHVybiBmaWVsZHMuc3BsaXQoXCIsXCIpLm1hcCgoc3RyKSA9PiBzdHIudHJpbSgpKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBQYWQgYW4gYXJyYXkgd2l0aCBhIGZpbGxlciB2YWx1ZSB0byBhIHNwZWNpZmllZCBsZW5ndGguXHJcbiAqIEBwYXJhbSB7VFtdfSBhcnIgLSBUaGUgYXJyYXkgdG8gcGFkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gZmluYWxMZW5ndGggLSBUaGUgZmluYWwgbGVuZ3RoIG9mIHRoZSBhcnJheVxyXG4gKiBAcGFyYW0ge3N0cmluZ30gW2ZpbGxlcj1cIlwiXSAtIFRoZSBmaWxsZXIgdG8gdXNlIGlmIHRoZSBhcnJheSBpcyB0b28gc2hvcnQuXHJcbiAqIEByZXR1cm5zIHsoVCB8IHN0cmluZylbXX0gVGhlIGFycmF5IHdpdGggdGhlIG5ldyB2YWx1ZXMuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcGFkQXJyYXk8VD4oXHJcbiAgYXJyOiBUW10sXHJcbiAgZmluYWxMZW5ndGg6IG51bWJlcixcclxuICBmaWxsZXI6IHN0cmluZyA9IFwiXCJcclxuKTogKFQgfCBzdHJpbmcpW10ge1xyXG4gIGNvbnN0IGNvcHk6IChUIHwgc3RyaW5nKVtdID0gWy4uLmFycl07XHJcbiAgY29uc3QgY3Vyckxlbmd0aCA9IGNvcHkubGVuZ3RoO1xyXG4gIGlmIChjdXJyTGVuZ3RoID4gZmluYWxMZW5ndGgpXHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDdXJyZW50IGxlbmd0aCBpcyBncmVhdGVyIHRoYW4gZmluYWwgbGVuZ3RoXCIpO1xyXG4gIGVsc2UgaWYgKGN1cnJMZW5ndGggPT09IGZpbmFsTGVuZ3RoKSByZXR1cm4gY29weTtcclxuICBlbHNlIHtcclxuICAgIGZvciAobGV0IGkgPSBjdXJyTGVuZ3RoOyBpIDwgZmluYWxMZW5ndGg7IGkrKykgY29weS5wdXNoKGZpbGxlcik7XHJcbiAgICByZXR1cm4gY29weTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiB0cmFuc3Bvc2UoQSkgcmV0dXJucyB0aGUgdHJhbnNwb3NlIG9mIEEuXHJcbiAqIEBwYXJhbSB7VFtdW119IEEgLSBUaGUgbWF0cml4IHRvIHRyYW5zcG9zZS5cclxuICogQHJldHVybnMge1RbXVtdfSBBIDJEIGFycmF5IG9mIHRoZSB0cmFuc3Bvc2VkIG1hdHJpeC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB0cmFuc3Bvc2U8VD4oQTogVFtdW10pOiBUW11bXSB7XHJcbiAgY29uc3QgY29scyA9IEFbMF0ubGVuZ3RoO1xyXG4gIGNvbnN0IEFUOiBUW11bXSA9IFtdO1xyXG5cclxuICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbHM7IGorKykgQVQucHVzaChBLm1hcCgocm93KSA9PiByb3dbal0pKTtcclxuXHJcbiAgcmV0dXJuIEFUO1xyXG59XHJcblxyXG4vKipcclxuICogR2l2ZW4gYW4gYXJyYXkgb2Ygc3RyaW5ncywgcmV0dXJuIGFuIGFycmF5IG9mIG9iamVjdHMgdGhhdCByZXByZXNlbnQgdGhlIHJ1bnMgb2YgY29uc2VjdXRpdmUgc3RyaW5nc1xyXG4gKiBpbiB0aGUgYXJyYXkuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBhcnJcclxuICogQHJldHVybnMgQW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcclxuICpcclxuICogICBgdmFsdWVgOiB0aGUgdmFsdWUgb2YgdGhlIHJ1blxyXG4gKlxyXG4gKiAgIGBmaXJzdGA6IHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgcnVuXHJcbiAqXHJcbiAqICAgYGxhc3RgOiB0aGUgaW5kZXggb2YgdGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgcnVuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcnVucyhcclxuICBhcnI6IHN0cmluZ1tdXHJcbik6IHsgdmFsdWU6IHN0cmluZzsgZmlyc3Q6IG51bWJlcjsgbGFzdDogbnVtYmVyIH1bXSB7XHJcbiAgY29uc3QgcnVuczogeyB2YWx1ZTogc3RyaW5nOyBmaXJzdDogbnVtYmVyOyBsYXN0OiBudW1iZXIgfVtdID0gW107XHJcbiAgbGV0IGkgPSAwO1xyXG4gIHdoaWxlIChpIDwgYXJyLmxlbmd0aCkge1xyXG4gICAgY29uc3QgY3VyclZhbHVlID0gYXJyW2ldO1xyXG4gICAgcnVucy5wdXNoKHsgdmFsdWU6IGN1cnJWYWx1ZSwgZmlyc3Q6IGksIGxhc3Q6IHVuZGVmaW5lZCB9KTtcclxuICAgIHdoaWxlIChjdXJyVmFsdWUgPT09IGFycltpXSkge1xyXG4gICAgICBpKys7XHJcbiAgICB9XHJcbiAgICBydW5zLmxhc3QoKS5sYXN0ID0gaSAtIDE7XHJcbiAgfVxyXG4gIHJldHVybiBydW5zO1xyXG59XHJcblxyXG4vLyBTT1VSQ0UgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvOTk2MDkwOC9wZXJtdXRhdGlvbnMtaW4tamF2YXNjcmlwdFxyXG4vKipcclxuICogR2l2ZW4gYSBwZXJtdXRhdGlvbiwgcmV0dXJuIGFsbCBwb3NzaWJsZSBwZXJtdXRhdGlvbnMgb2YgdGhhdCBwZXJtdXRhdGlvbi5cclxuICogQHBhcmFtIHBlcm11dGF0aW9uIC0gdGhlIGFycmF5IHRvIGJlIHBlcm11dGVkXHJcbiAqIEByZXR1cm5zIGBbIFsgMSwgMiwgMyBdLCBbIDEsIDMsIDIgXSwgWyAyLCAxLCAzIF0sIFsgMiwgMywgMSBdLCBbIDMsIDEsIDIgXSwgWyAzLCAyLCAxIF0gXWBcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwZXJtdXRlKHBlcm11dGF0aW9uOiBhbnlbXSk6IGFueVtdW10ge1xyXG4gIGNvbnN0IGxlbmd0aCA9IHBlcm11dGF0aW9uLmxlbmd0aCxcclxuICAgIHJlc3VsdCA9IFtwZXJtdXRhdGlvbi5zbGljZSgpXSxcclxuICAgIGMgPSBuZXcgQXJyYXkobGVuZ3RoKS5maWxsKDApO1xyXG5cclxuICBsZXQgaSA9IDEsXHJcbiAgICBrOiBudW1iZXIsXHJcbiAgICBwOiBudW1iZXI7XHJcblxyXG4gIHdoaWxlIChpIDwgbGVuZ3RoKSB7XHJcbiAgICBpZiAoY1tpXSA8IGkpIHtcclxuICAgICAgayA9IGkgJSAyICYmIGNbaV07XHJcbiAgICAgIHAgPSBwZXJtdXRhdGlvbltpXTtcclxuICAgICAgcGVybXV0YXRpb25baV0gPSBwZXJtdXRhdGlvbltrXTtcclxuICAgICAgcGVybXV0YXRpb25ba10gPSBwO1xyXG4gICAgICArK2NbaV07XHJcbiAgICAgIGkgPSAxO1xyXG4gICAgICByZXN1bHQucHVzaChwZXJtdXRhdGlvbi5zbGljZSgpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNbaV0gPSAwO1xyXG4gICAgICArK2k7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCByYW5nZSA9IChuOiBudW1iZXIpID0+IFsuLi5BcnJheShuKS5rZXlzKCldO1xyXG5cclxuLyoqXHJcbiAqIFwiR2l2ZW4gdHdvIGFycmF5cywgcmV0dXJuIHRoZSBlbGVtZW50cyBpbiB0aGUgZmlyc3QgYXJyYXkgdGhhdCBhcmUgbm90IGluIHRoZSBzZWNvbmQgYXJyYXkuXCJcclxuICogQHBhcmFtIHtUW119IEEgLSB0aGUgYXJyYXkgb2YgaXRlbXMgdG8gYmUgZmlsdGVyZWRcclxuICogQHBhcmFtIHtUW119IEIgLSB0aGUgYXJyYXkgb2YgaXRlbXMgdGhhdCBhcmUgbm90IGluIEFcclxuICogQHJldHVybnMge1RbXX0gTm9uZVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGNvbXBsZW1lbnQgPSA8VD4oQTogVFtdLCBCOiBUW10pID0+XHJcbiAgQS5maWx0ZXIoKGEpID0+ICFCLmluY2x1ZGVzKGEpKTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzd2FwSXRlbXM8VD4oaTogbnVtYmVyLCBqOiBudW1iZXIsIGFycjogVFtdKSB7XHJcbiAgY29uc3QgbWF4ID0gYXJyLmxlbmd0aCAtIDE7XHJcbiAgaWYgKGkgPCAwIHx8IGkgPiBtYXggfHwgaiA8IDAgfHwgaiA+IG1heCkgcmV0dXJuIGFycjtcclxuICBjb25zdCB0bXAgPSBhcnJbaV07XHJcbiAgYXJyW2ldID0gYXJyW2pdO1xyXG4gIGFycltqXSA9IHRtcDtcclxuICByZXR1cm4gYXJyO1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIGR1cGxpY2F0ZXMgZnJvbSBhbiBhcnJheS5cclxuICogQHBhcmFtIHtUW119IGFyciAtIFRoZSBhcnJheSB0byBiZSBmaWx0ZXJlZC5cclxuICogQHJldHVybnMge1RbXX0gVGhlIGFycmF5IHdpdGggZHVwbGljYXRlcyByZW1vdmVkLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHJlbW92ZUR1cGxpY2F0ZXMgPSA8VD4oYXJyOiBUW10pID0+IFsuLi5uZXcgU2V0KGFycildO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHN0clRvUmVnZXgoaW5wdXQ6IHN0cmluZykge1xyXG4gIGNvbnN0IG1hdGNoID0gaW5wdXQubWF0Y2gocmVnTkZsYWdzKTtcclxuICBpZiAoIW1hdGNoKSByZXR1cm4gbnVsbDtcclxuICBjb25zdCBbLCBpbm5lclJlZ2V4LCBmbGFnc10gPSBtYXRjaDtcclxuICB0cnkge1xyXG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGlubmVyUmVnZXgsIGZsYWdzKTtcclxuICAgIHJldHVybiByZWdleDtcclxuICB9IGNhdGNoIChlKSB7XHJcbiAgICB3YXJuKGUpO1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBTb3VyY2U6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM1NjE0OTMvaXMtdGhlcmUtYS1yZWdleHAtZXNjYXBlLWZ1bmN0aW9uLWluLWphdmFzY3JpcHRcclxuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVJlZ2V4KHN0cmluZykge1xyXG4gIHJldHVybiBzdHJpbmcucmVwbGFjZSgvWy1cXC9cXFxcXiQqKz8uKCl8W1xcXXt9XS9nLCBcIlxcXFwkJlwiKTtcclxufVxyXG4iLCAiaW1wb3J0IHR5cGUgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHsgYWRkRWRnZUlmTm90IH0gZnJvbSBcIi4vVXRpbHMvZ3JhcGhVdGlsc1wiO1xyXG5pbXBvcnQgeyBCQ19JX0FVTlQsIEJDX0lfQ09VU0lOLCBCQ19JX1BBUkVOVCwgQkNfSV9TSUJMSU5HXzEsIEJDX0lfU0lCTElOR18yIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB0eXBlIHsgQkNTZXR0aW5ncyB9IGZyb20gXCIuL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHsgZmFsbGJhY2tGaWVsZCwgZ2V0RmllbGRJbmZvIH0gZnJvbSBcIi4vVXRpbHMvSGllclV0aWxzXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkU2libGluZ3NGcm9tU2FtZVBhcmVudChnOiBNdWx0aUdyYXBoLCBzZXR0aW5nczogQkNTZXR0aW5ncykge1xyXG4gICAgY29uc3QgeyB1c2VySGllcnMsIHRyZWF0Q3Vyck5vZGVBc0ltcGxpZWRTaWJsaW5nIH0gPSBzZXR0aW5ncztcclxuICAgIGcuZm9yRWFjaE5vZGUoKGN1cnJOLCBhKSA9PiB7XHJcbiAgICAgICAgLy8gRmluZCBwYXJlbnRzIG9mIGN1cnJlbnQgbm9kZVxyXG4gICAgICAgIGcuZm9yRWFjaE91dEVkZ2UoY3Vyck4sIChrLCBjdXJyTkF0dHIsIHMsIHBhcmVudE5vZGUpID0+IHtcclxuICAgICAgICAgICAgaWYgKGN1cnJOQXR0ci5kaXIgIT09IFwidXBcIikgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgeyBmaWVsZERpciwgZmllbGRIaWVyIH0gPSBnZXRGaWVsZEluZm8odXNlckhpZXJzLCBjdXJyTkF0dHIuZmllbGQpO1xyXG4gICAgICAgICAgICBjb25zdCBmaWVsZCA9XHJcbiAgICAgICAgICAgICAgICBmaWVsZEhpZXIuc2FtZVswXSA/PyBmYWxsYmFja0ZpZWxkKGN1cnJOQXR0ci5maWVsZCwgZmllbGREaXIpO1xyXG5cclxuICAgICAgICAgICAgLy8gRmluZCB0aGUgY2hpbGRyZW4gb2YgdGhvc2UgcGFyZW50c1xyXG4gICAgICAgICAgICBnLmZvckVhY2hPdXRFZGdlKHBhcmVudE5vZGUsIChrLCBhLCBzLCBpbXBsaWVkU2libGluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gU2tpcCB0aGUgY3VycmVudCBub2RlIGlmIHRoZSBzZXR0aW5ncyBzYXkgdG9cclxuICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICBhLmRpciAhPT0gXCJkb3duXCIgfHxcclxuICAgICAgICAgICAgICAgICAgICAoIXRyZWF0Q3Vyck5vZGVBc0ltcGxpZWRTaWJsaW5nICYmIGltcGxpZWRTaWJsaW5nID09PSBjdXJyTilcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgICAgICAgICAgYWRkRWRnZUlmTm90KGcsIGN1cnJOLCBpbXBsaWVkU2libGluZywge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpcjogXCJzYW1lXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgaW1wbGllZDogQkNfSV9TSUJMSU5HXzEsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFNpYmxpbmdzUGFyZW50SXNQYXJlbnQoZzogTXVsdGlHcmFwaCkge1xyXG4gICAgZy5mb3JFYWNoTm9kZSgoY3Vyck4sIGEpID0+IHtcclxuICAgICAgICAvLyBGaW5kIHNpYmxpbmdzIG9mIGN1cnJlbnQgbm9kZVxyXG4gICAgICAgIGcuZm9yRWFjaE91dEVkZ2UoY3Vyck4sIChrLCBjdXJyTkF0dHIsIHMsIHNpYmxpbmcpID0+IHtcclxuICAgICAgICAgICAgaWYgKGN1cnJOQXR0ci5kaXIgIT09IFwic2FtZVwiKSByZXR1cm47XHJcbiAgICAgICAgICAgIC8vIEZpbmQgdGhlIHBhcmVudHMgb2YgdGhvc2Ugc2libGluZ3NcclxuICAgICAgICAgICAgZy5mb3JFYWNoT3V0RWRnZShzaWJsaW5nLCAoaywgYSwgcywgcGFyZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRpciwgZmllbGQgfSA9IGE7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGlyICE9PSBcInVwXCIpIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgICAgICBhZGRFZGdlSWZOb3QoZywgY3Vyck4sIHBhcmVudCwge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpcjogXCJ1cFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgIGltcGxpZWQ6IEJDX0lfUEFSRU5ULFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbi8vIFRyYW5zaXRpdmUgY2xvc3VyZSBvZiBzaWJsaW5nc1xyXG5leHBvcnQgZnVuY3Rpb24gYWRkU2libGluZ3NGcm9tU2libGluZ3MoZzogTXVsdGlHcmFwaCkgeyB9XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkQXVudHNVbmNsZXMoZzogTXVsdGlHcmFwaCkge1xyXG4gICAgZy5mb3JFYWNoTm9kZSgoY3Vyck4sIGEpID0+IHtcclxuICAgICAgICAvLyBGaW5kIHBhcmVudHMgb2YgY3VycmVudCBub2RlXHJcbiAgICAgICAgZy5mb3JFYWNoT3V0RWRnZShjdXJyTiwgKGssIGN1cnJFQXR0ciwgcywgcGFyZW50Tm9kZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY3VyckVBdHRyLmRpciAhPT0gXCJ1cFwiKSByZXR1cm47XHJcbiAgICAgICAgICAgIC8vIEZpbmQgdGhlIHNpYmxpbmdzIG9mIHRob3NlIHBhcmVudHNcclxuICAgICAgICAgICAgZy5mb3JFYWNoT3V0RWRnZShwYXJlbnROb2RlLCAoaywgYSwgcywgdW5jbGUpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChhLmRpciAhPT0gXCJzYW1lXCIpIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgICAgICBhZGRFZGdlSWZOb3QoZywgY3Vyck4sIHVuY2xlLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlyOiBcInVwXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVXNlIHRoZSBzdGFydGluZyBub2RlJ3MgcGFyZW50IGZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IGN1cnJFQXR0ci5maWVsZCxcclxuICAgICAgICAgICAgICAgICAgICBpbXBsaWVkOiBCQ19JX0FVTlQsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gYWRkQ291c2lucyhnOiBNdWx0aUdyYXBoKSB7XHJcbiAgICBnLmZvckVhY2hOb2RlKChjdXJyTiwgYSkgPT4ge1xyXG4gICAgICAgIC8vIEZpbmQgcGFyZW50cyBvZiBjdXJyZW50IG5vZGVcclxuICAgICAgICBnLmZvckVhY2hPdXRFZGdlKGN1cnJOLCAoaywgY3VyckVBdHRyLCBzLCBwYXJlbnROb2RlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjdXJyRUF0dHIuZGlyICE9PSBcInVwXCIpIHJldHVybjtcclxuICAgICAgICAgICAgLy8gRmluZCB0aGUgc2libGluZ3Mgb2YgdGhvc2UgcGFyZW50c1xyXG4gICAgICAgICAgICBnLmZvckVhY2hPdXRFZGdlKHBhcmVudE5vZGUsIChrLCBwYXJlbnRTaWJsaW5nQXR0ciwgcywgdW5jbGUpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChwYXJlbnRTaWJsaW5nQXR0ci5kaXIgIT09IFwic2FtZVwiKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgICAgICAgZy5mb3JFYWNoT3V0RWRnZSh1bmNsZSwgKGssIGEsIHMsIGNvdXNpbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhLmRpciAhPT0gXCJkb3duXCIgfHwgY3Vyck4gPT09IGNvdXNpbikgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBhZGRFZGdlSWZOb3QoZywgY3Vyck4sIGNvdXNpbiwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXI6IFwic2FtZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZDogcGFyZW50U2libGluZ0F0dHIuZmllbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltcGxpZWQ6IEJDX0lfQ09VU0lOLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbi8vIFNpcyAtLT4gTWUgPC0tIEJyb1xyXG4vLyBJbXBsaWVzOiBTaXMgPC0tPiBCcm9cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFN0cnVjdHVyYWxFcXVpdmFsZW5jZVNpYmxpbmdzKGc6IE11bHRpR3JhcGgpIHtcclxuICAgIGcuZm9yRWFjaE5vZGUoKGN1cnJOLCBhKSA9PiB7XHJcbiAgICAgICAgZy5mb3JFYWNoSW5FZGdlKGN1cnJOLCAoaywgYVNpcywgc2lzLCBfKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChhU2lzLmRpciAhPT0gXCJzYW1lXCIpIHJldHVybjtcclxuICAgICAgICAgICAgZy5mb3JFYWNoSW5FZGdlKGN1cnJOLCAoaywgYUJybywgYnJvLCBfKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYUJyby5kaXIgIT09IFwic2FtZVwiIHx8IHNpcyA9PT0gYnJvKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICBpZiAoYUJyby5maWVsZCA9PT0gYVNpcy5maWVsZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGFkZEVkZ2VJZk5vdChnLCBzaXMsIGJybywge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXI6IFwic2FtZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZDogYUJyby5maWVsZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1wbGllZDogQkNfSV9TSUJMSU5HXzIsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuIiwgImltcG9ydCB0eXBlIHsgTXVsdGlHcmFwaCB9IGZyb20gXCJncmFwaG9sb2d5XCI7XHJcbmltcG9ydCB7IGRlYnVnIH0gZnJvbSBcImxvZ2xldmVsXCI7XHJcbmltcG9ydCB7IG5vcm1hbGl6ZVBhdGggfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHsgZHJvcFdpa2lsaW5rcyB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcbmltcG9ydCB0eXBlIHsgRGlyZWN0aW9ucyB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IGFkZEVkZ2VJZk5vdCwgYWRkTm9kZXNJZk5vdCB9IGZyb20gXCIuLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Q1NWUm93cyhwbHVnaW46IEJDUGx1Z2luKSB7XHJcbiAgY29uc3QgeyBDU1ZQYXRocyB9ID0gcGx1Z2luLnNldHRpbmdzO1xyXG4gIGNvbnN0IENTVlJvd3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1bXSA9IFtdO1xyXG4gIGlmIChDU1ZQYXRocyA9PT0gXCJcIikgcmV0dXJuIENTVlJvd3M7XHJcblxyXG4gIGNvbnN0IGZ1bGxQYXRoID0gbm9ybWFsaXplUGF0aChDU1ZQYXRocyk7XHJcblxyXG4gIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBhcHAudmF1bHQuYWRhcHRlci5yZWFkKGZ1bGxQYXRoKTtcclxuICBjb25zdCBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoXCJcXG5cIik7XHJcblxyXG4gIGNvbnN0IGhlYWRlcnMgPSBsaW5lc1swXS5zcGxpdChcIixcIikubWFwKChoZWFkKSA9PiBoZWFkLnRyaW0oKSk7XHJcbiAgbGluZXMuc2xpY2UoMSkuZm9yRWFjaCgocm93KSA9PiB7XHJcbiAgICBjb25zdCByb3dPYmogPSB7fTtcclxuICAgIHJvd1xyXG4gICAgICAuc3BsaXQoXCIsXCIpXHJcbiAgICAgIC5tYXAoKGhlYWQpID0+IGRyb3BXaWtpbGlua3MoaGVhZC50cmltKCkpKVxyXG4gICAgICAuZm9yRWFjaCgoaXRlbSwgaSkgPT4ge1xyXG4gICAgICAgIHJvd09ialtoZWFkZXJzW2ldXSA9IGl0ZW07XHJcbiAgICAgIH0pO1xyXG4gICAgZGVidWcoeyByb3dPYmogfSk7XHJcbiAgICBDU1ZSb3dzLnB1c2gocm93T2JqKTtcclxuICB9KTtcclxuICByZXR1cm4gQ1NWUm93cztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZENTVkNydW1icyhcclxuICBnOiBNdWx0aUdyYXBoLFxyXG4gIENTVlJvd3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1bXSxcclxuICBkaXI6IERpcmVjdGlvbnMsXHJcbiAgZmllbGQ6IHN0cmluZ1xyXG4pIHtcclxuICBDU1ZSb3dzLmZvckVhY2goKHJvdykgPT4ge1xyXG4gICAgYWRkTm9kZXNJZk5vdChnLCBbcm93LmZpbGVdKTtcclxuICAgIGlmIChmaWVsZCA9PT0gXCJcIiB8fCAhcm93W2ZpZWxkXSkgcmV0dXJuO1xyXG5cclxuICAgIGFkZE5vZGVzSWZOb3QoZywgW3Jvd1tmaWVsZF1dKTtcclxuICAgIGFkZEVkZ2VJZk5vdChnLCByb3cuZmlsZSwgcm93W2ZpZWxkXSwgeyBkaXIsIGZpZWxkIH0pO1xyXG4gIH0pO1xyXG59XHJcbiIsICJpbXBvcnQgdHlwZSB7IE11bHRpR3JhcGggfSBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgeyB3YXJuIH0gZnJvbSBcImxvZ2xldmVsXCI7XHJcbmltcG9ydCB7IE5vdGljZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgeyBCQ19EVl9OT1RFLCBCQ19EVl9OT1RFX0ZJRUxELCBCQ19JR05PUkUsIERBVEFWSUVXX01JU1NJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB0eXBlIHsgZHZGcm9udG1hdHRlckNhY2hlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHtcclxuICBnZXRTb3VyY2VPcmRlcixcclxuICBnZXRUYXJnZXRPcmRlcixcclxuICBwb3B1bGF0ZU1haW4sXHJcbn0gZnJvbSBcIi4uL1V0aWxzL2dyYXBoVXRpbHNcIjtcclxuaW1wb3J0IHsgZ2V0RmllbGRzIH0gZnJvbSBcIi4uL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXREVkFwaSwgZ2V0RFZCYXNlbmFtZSB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkRGF0YXZpZXdOb3Rlc1RvR3JhcGgoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICBlbGlnYWJsZUFsdHM6IGR2RnJvbnRtYXR0ZXJDYWNoZVtdLFxyXG4gIGZyb250bXM6IGR2RnJvbnRtYXR0ZXJDYWNoZVtdLFxyXG4gIG1haW5HOiBNdWx0aUdyYXBoXHJcbikge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7IHVzZXJIaWVycywgZGF0YXZpZXdOb3RlRmllbGQgfSA9IHNldHRpbmdzO1xyXG4gIGNvbnN0IGR2ID0gZ2V0RFZBcGkocGx1Z2luKTtcclxuICBpZiAoIWR2ICYmIGVsaWdhYmxlQWx0cy5sZW5ndGgpIHtcclxuICAgIG5ldyBOb3RpY2UoREFUQVZJRVdfTUlTU0lORyk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBjb25zdCBmaWVsZHMgPSBnZXRGaWVsZHModXNlckhpZXJzKTtcclxuXHJcbiAgZWxpZ2FibGVBbHRzLmZvckVhY2goKGFsdEZpbGUpID0+IHtcclxuICAgIGNvbnN0IGJhc2VuYW1lID0gZ2V0RFZCYXNlbmFtZShhbHRGaWxlLmZpbGUpO1xyXG5cclxuICAgIGxldCBxdWVyeSA9IGFsdEZpbGVbQkNfRFZfTk9URV0gYXMgKHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pO1xyXG4gICAgaWYgKHF1ZXJ5Lmhhc093blByb3BlcnR5KCdwYXRoJykpIHtcclxuICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgIHF1ZXJ5ID0gYFtbJHtxdWVyeS5wYXRofV1dYDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgbGV0IGZpZWxkID1cclxuICAgICAgKGFsdEZpbGVbQkNfRFZfTk9URV9GSUVMRF0gYXMgc3RyaW5nKSA/PyAoZGF0YXZpZXdOb3RlRmllbGQgfHwgZmllbGRzWzBdKTtcclxuXHJcbiAgICBsZXQgdGFyZ2V0czogZHZGcm9udG1hdHRlckNhY2hlW10gPSBbXTtcclxuICAgIHRyeSB7XHJcbiAgICAgIHRhcmdldHMgPSBkdi5wYWdlcyg8c3RyaW5nPnF1ZXJ5KS52YWx1ZXM7XHJcbiAgICB9IGNhdGNoIChlcikge1xyXG4gICAgICBuZXcgTm90aWNlKGAke3F1ZXJ5fSBpcyBub3QgYSB2YWxpZCBEYXRhdmlldyBmcm9tLXF1ZXJ5YCk7XHJcbiAgICAgIHdhcm4oZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3QgdGFyZ2V0IG9mIHRhcmdldHMpIHtcclxuICAgICAgaWYgKHRhcmdldFtCQ19JR05PUkVdKSBjb250aW51ZTtcclxuICAgICAgY29uc3QgdGFyZ2V0Qk4gPSBnZXREVkJhc2VuYW1lKHRhcmdldC5maWxlKTtcclxuICAgICAgY29uc3Qgc291cmNlT3JkZXIgPSBnZXRTb3VyY2VPcmRlcihhbHRGaWxlKTtcclxuICAgICAgY29uc3QgdGFyZ2V0T3JkZXIgPSBnZXRUYXJnZXRPcmRlcihmcm9udG1zLCB0YXJnZXRCTik7XHJcblxyXG4gICAgICBwb3B1bGF0ZU1haW4oXHJcbiAgICAgICAgc2V0dGluZ3MsXHJcbiAgICAgICAgbWFpbkcsXHJcbiAgICAgICAgYmFzZW5hbWUsXHJcbiAgICAgICAgZmllbGQsXHJcbiAgICAgICAgdGFyZ2V0Qk4sXHJcbiAgICAgICAgc291cmNlT3JkZXIsXHJcbiAgICAgICAgdGFyZ2V0T3JkZXIsXHJcbiAgICAgICAgdHJ1ZVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcbiIsICJpbXBvcnQgdHlwZSB7IE11bHRpR3JhcGggfSBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgdHlwZSB7IGR2RnJvbnRtYXR0ZXJDYWNoZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IHBvcHVsYXRlTWFpbiB9IGZyb20gXCIuLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcbmltcG9ydCB7IGdldERWQmFzZW5hbWUgfSBmcm9tIFwiLi4vVXRpbHMvT2JzaWRpYW5VdGlsc1wiO1xyXG5pbXBvcnQgKiBhcyBsdXhvbiBmcm9tIFwibHV4b25cIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGREYXRlTm90ZXNUb0dyYXBoKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgZnJvbnRtczogZHZGcm9udG1hdHRlckNhY2hlW10sXHJcbiAgbWFpbkc6IE11bHRpR3JhcGhcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHtcclxuICAgIGFkZERhdGVOb3RlcyxcclxuICAgIGRhdGVOb3RlQWRkTW9udGgsXHJcbiAgICBkYXRlTm90ZUFkZFllYXIsXHJcbiAgICBkYXRlTm90ZUZvcm1hdCxcclxuICAgIGRhdGVOb3RlRmllbGQsXHJcbiAgfSA9IHNldHRpbmdzO1xyXG4gIGlmICghYWRkRGF0ZU5vdGVzKSByZXR1cm47XHJcblxyXG4gIGNvbnN0IHsgcmVnZXggfSA9IGx1eG9uLkRhdGVUaW1lLmZyb21Gb3JtYXRFeHBsYWluKFwiXCIsIGRhdGVOb3RlRm9ybWF0KTtcclxuICBmcm9udG1zLmZvckVhY2goKHBhZ2UpID0+IHtcclxuICAgIGNvbnN0IHsgZmlsZSB9ID0gcGFnZTtcclxuICAgIGNvbnN0IHsgZGF5IH0gPSBmaWxlO1xyXG4gICAgaWYgKCFkYXkgfHwgIXJlZ2V4LnRlc3QoZ2V0RFZCYXNlbmFtZShmaWxlKSkpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCB0b2RheSA9IGdldERWQmFzZW5hbWUoZmlsZSk7XHJcbiAgICBjb25zdCB0b21vcnJvdyA9IGRheS5wbHVzKHsgZGF5czogMSB9KTtcclxuICAgIGNvbnN0IHRvbVN0ciA9IHRvbW9ycm93LnRvRm9ybWF0KGRhdGVOb3RlRm9ybWF0KTtcclxuXHJcbiAgICBwb3B1bGF0ZU1haW4oXHJcbiAgICAgIHNldHRpbmdzLFxyXG4gICAgICBtYWluRyxcclxuICAgICAgdG9kYXksXHJcbiAgICAgIGRhdGVOb3RlRmllbGQsXHJcbiAgICAgIHRvbVN0cixcclxuICAgICAgOTk5OSxcclxuICAgICAgOTk5OSxcclxuICAgICAgdHJ1ZVxyXG4gICAgKTtcclxuICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHR5cGUgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHsgQkNfSUdOT1JFLCBCQ19JR05PUkVfREVORFJPTiB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHR5cGUgeyBkdkZyb250bWF0dGVyQ2FjaGUgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQge1xyXG4gIGdldFNvdXJjZU9yZGVyLFxyXG4gIGdldFRhcmdldE9yZGVyLFxyXG4gIHBvcHVsYXRlTWFpbixcclxufSBmcm9tIFwiLi4vVXRpbHMvZ3JhcGhVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXREVkJhc2VuYW1lIH0gZnJvbSBcIi4uL1V0aWxzL09ic2lkaWFuVXRpbHNcIjtcclxuXHJcbmNvbnN0IGdldERlbmRyb25QYXJlbnQgPSAoZGVuZHJvbjogc3RyaW5nLCBzcGxpdHRlcjogc3RyaW5nKSA9PlxyXG4gIGRlbmRyb24uc3BsaXQoc3BsaXR0ZXIpLnNsaWNlKDAsIC0xKS5qb2luKHNwbGl0dGVyKTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGREZW5kcm9uTm90ZXNUb0dyYXBoKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgZnJvbnRtczogZHZGcm9udG1hdHRlckNhY2hlW10sXHJcbiAgbWFpbkc6IE11bHRpR3JhcGhcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgYWRkRGVuZHJvbk5vdGVzLCBkZW5kcm9uTm90ZURlbGltaXRlciwgZGVuZHJvbk5vdGVGaWVsZCB9ID0gc2V0dGluZ3M7XHJcbiAgaWYgKCFhZGREZW5kcm9uTm90ZXMpIHJldHVybjtcclxuXHJcbiAgZm9yIChjb25zdCBmcm9udG0gb2YgZnJvbnRtcykge1xyXG4gICAgaWYgKGZyb250bVtCQ19JR05PUkVfREVORFJPTl0gfHwgZnJvbnRtW0JDX0lHTk9SRV0pIGNvbnRpbnVlO1xyXG5cclxuICAgIGxldCBjdXJyID0gZ2V0RFZCYXNlbmFtZShmcm9udG0uZmlsZSk7XHJcbiAgICBsZXQgcGFyZW50ID0gZ2V0RGVuZHJvblBhcmVudChjdXJyLCBkZW5kcm9uTm90ZURlbGltaXRlcik7XHJcblxyXG4gICAgd2hpbGUgKHBhcmVudCAhPT0gXCJcIikge1xyXG4gICAgICBjb25zdCBwYXJlbnRGaWxlID0gZnJvbnRtcy5maW5kKFxyXG4gICAgICAgIChmbSkgPT4gZ2V0RFZCYXNlbmFtZShmbS5maWxlKSA9PT0gcGFyZW50XHJcbiAgICAgICk7XHJcblxyXG4gICAgICAvLyAhcGFyZW50RmlsZSBpbXBsaWVzIGEgXCJzdHViXCJcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICBpZiAoIXBhcmVudEZpbGUgfHwgcGFyZW50RmlsZVtCQ19JR05PUkVfREVORFJPTl0gIT09IHRydWUpIHtcclxuICAgICAgICBwb3B1bGF0ZU1haW4oXHJcbiAgICAgICAgICBzZXR0aW5ncyxcclxuICAgICAgICAgIG1haW5HLFxyXG4gICAgICAgICAgY3VycixcclxuICAgICAgICAgIGRlbmRyb25Ob3RlRmllbGQsXHJcbiAgICAgICAgICBwYXJlbnQsXHJcbiAgICAgICAgICA5OTk5LFxyXG4gICAgICAgICAgOTk5OSxcclxuICAgICAgICAgIHRydWVcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGN1cnIgPSBwYXJlbnQ7XHJcbiAgICAgIHBhcmVudCA9IGdldERlbmRyb25QYXJlbnQocGFyZW50LCBkZW5kcm9uTm90ZURlbGltaXRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBleHBvcnQgZnVuY3Rpb24gYWRkRGVuZHJvbk5vdGVzVG9HcmFwaChcclxuLy8gICBwbHVnaW46IEJDUGx1Z2luLFxyXG4vLyAgIGZyb250bXM6IGR2RnJvbnRtYXR0ZXJDYWNoZVtdLFxyXG4vLyAgIG1haW5HOiBNdWx0aUdyYXBoXHJcbi8vICkge1xyXG4vLyAgIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuLy8gICBjb25zdCB7IGFkZERlbmRyb25Ob3RlcywgZGVuZHJvbk5vdGVEZWxpbWl0ZXIsIGRlbmRyb25Ob3RlRmllbGQgfSA9IHNldHRpbmdzO1xyXG4vLyAgIGlmICghYWRkRGVuZHJvbk5vdGVzKSByZXR1cm47XHJcblxyXG4vLyAgIGZvciAoY29uc3QgZnJvbnRtIG9mIGZyb250bXMpIHtcclxuLy8gICAgIGlmIChmcm9udG1bQkNfSUdOT1JFX0RFTkRST05dKSBjb250aW51ZTtcclxuXHJcbi8vICAgICBjb25zdCBiYXNlbmFtZSA9IGdldERWQmFzZW5hbWUoZnJvbnRtLmZpbGUpO1xyXG5cclxuLy8gICAgIGNvbnN0IHNwbGl0cyA9IGJhc2VuYW1lLnNwbGl0KGRlbmRyb25Ob3RlRGVsaW1pdGVyKTtcclxuLy8gICAgIGlmIChzcGxpdHMubGVuZ3RoIDw9IDEpIGNvbnRpbnVlO1xyXG5cclxuLy8gICAgIGNvbnN0IG5leHRTbGljZSA9IHNwbGl0cy5zbGljZSgwLCAtMSkuam9pbihkZW5kcm9uTm90ZURlbGltaXRlcik7XHJcbi8vICAgICBpZiAoIW5leHRTbGljZSkgY29udGludWU7XHJcbi8vICAgICBjb25zdCBuZXh0U2xpY2VGaWxlID0gZnJvbnRtcy5maW5kKFxyXG4vLyAgICAgICAoZm0pID0+IGdldERWQmFzZW5hbWUoZm0uZmlsZSkgPT09IG5leHRTbGljZVxyXG4vLyAgICAgKTtcclxuXHJcbi8vICAgICBpZiAoIW5leHRTbGljZUZpbGUgfHwgbmV4dFNsaWNlRmlsZVtCQ19JR05PUkVfREVORFJPTl0pIGNvbnRpbnVlO1xyXG5cclxuLy8gICAgIGNvbnN0IHNvdXJjZU9yZGVyID0gZ2V0U291cmNlT3JkZXIoZnJvbnRtKTtcclxuLy8gICAgIGNvbnN0IHRhcmdldE9yZGVyID0gZ2V0VGFyZ2V0T3JkZXIoZnJvbnRtcywgbmV4dFNsaWNlKTtcclxuXHJcbi8vICAgICBwb3B1bGF0ZU1haW4oXHJcbi8vICAgICAgIHNldHRpbmdzLFxyXG4vLyAgICAgICBtYWluRyxcclxuLy8gICAgICAgYmFzZW5hbWUsXHJcbi8vICAgICAgIGRlbmRyb25Ob3RlRmllbGQsXHJcbi8vICAgICAgIG5leHRTbGljZSxcclxuLy8gICAgICAgc291cmNlT3JkZXIsXHJcbi8vICAgICAgIHRhcmdldE9yZGVyLFxyXG4vLyAgICAgICB0cnVlXHJcbi8vICAgICApO1xyXG4vLyAgIH1cclxuLy8gfVxyXG4iLCAiaW1wb3J0IHR5cGUgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHsgVEZpbGUsIFRGb2xkZXIgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHtcclxuICBCQ19GT0xERVJfTk9URSxcclxuICBCQ19GT0xERVJfTk9URV9SRUNVUlNJVkUsXHJcbiAgQkNfRk9MREVSX05PVEVfU1VCRk9MREVSUyxcclxuICBCQ19JR05PUkUsXHJcbn0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSB7IGR2RnJvbnRtYXR0ZXJDYWNoZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7XHJcbiAgZ2V0U291cmNlT3JkZXIsXHJcbiAgZ2V0VGFyZ2V0T3JkZXIsXHJcbiAgcG9wdWxhdGVNYWluLFxyXG59IGZyb20gXCIuLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcbmltcG9ydCB7IGdldEZpZWxkcyB9IGZyb20gXCIuLi9VdGlscy9IaWVyVXRpbHNcIjtcclxuaW1wb3J0IHsgZ2V0RFZCYXNlbmFtZSwgZ2V0Rm9sZGVyTmFtZSB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG5jb25zdCBnZXRTdWJzRnJvbUZvbGRlciA9IChmb2xkZXI6IFRGb2xkZXIpID0+IHtcclxuICBjb25zdCBvdGhlck5vdGVzOiBURmlsZVtdID0gW10sXHJcbiAgICBzdWJGb2xkZXJzOiBURm9sZGVyW10gPSBbXTtcclxuICBmb2xkZXIuY2hpbGRyZW4uZm9yRWFjaCgodEFic3RyYWN0KSA9PiB7XHJcbiAgICBpZiAodEFic3RyYWN0IGluc3RhbmNlb2YgVEZpbGUpIG90aGVyTm90ZXMucHVzaCh0QWJzdHJhY3QpO1xyXG4gICAgZWxzZSBzdWJGb2xkZXJzLnB1c2godEFic3RyYWN0IGFzIFRGb2xkZXIpO1xyXG4gIH0pO1xyXG4gIHJldHVybiB7IG90aGVyTm90ZXMsIHN1YkZvbGRlcnMgfTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRGb2xkZXJOb3Rlc1RvR3JhcGgoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICBmb2xkZXJOb3RlczogZHZGcm9udG1hdHRlckNhY2hlW10sXHJcbiAgZnJvbnRtczogZHZGcm9udG1hdHRlckNhY2hlW10sXHJcbiAgbWFpbkc6IE11bHRpR3JhcGhcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgdXNlckhpZXJzIH0gPSBzZXR0aW5ncztcclxuICBjb25zdCBmaWVsZHMgPSBnZXRGaWVsZHModXNlckhpZXJzKTtcclxuXHJcbiAgZm9sZGVyTm90ZXMuZm9yRWFjaCgoYWx0RmlsZSkgPT4ge1xyXG4gICAgY29uc3QgeyBmaWxlIH0gPSBhbHRGaWxlO1xyXG4gICAgY29uc3QgYmFzZW5hbWUgPSBnZXREVkJhc2VuYW1lKGZpbGUpO1xyXG4gICAgY29uc3QgdG9wRm9sZGVyTmFtZSA9IGdldEZvbGRlck5hbWUoZmlsZSk7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBhcHAudmF1bHQuZ2V0QWJzdHJhY3RGaWxlQnlQYXRoKHRvcEZvbGRlck5hbWUpIGFzIFRGb2xkZXI7XHJcblxyXG4gICAgY29uc3QgdGFyZ2V0cyA9IGZyb250bXNcclxuICAgICAgLm1hcCgoZmYpID0+IGZmLmZpbGUpXHJcbiAgICAgIC5maWx0ZXIoXHJcbiAgICAgICAgKG90aGVyKSA9PlxyXG4gICAgICAgICAgZ2V0Rm9sZGVyTmFtZShvdGhlcikgPT09IHRvcEZvbGRlck5hbWUgJiYgb3RoZXIucGF0aCAhPT0gZmlsZS5wYXRoICYmICFvdGhlcltCQ19JR05PUkVdXHJcbiAgICAgIClcclxuICAgICAgLm1hcChnZXREVkJhc2VuYW1lKTtcclxuXHJcbiAgICBjb25zdCBmaWVsZCA9IGFsdEZpbGVbQkNfRk9MREVSX05PVEVdIGFzIHN0cmluZztcclxuICAgIGlmICh0eXBlb2YgZmllbGQgIT09IFwic3RyaW5nXCIgfHwgIWZpZWxkcy5pbmNsdWRlcyhmaWVsZCkpIHJldHVybjtcclxuXHJcbiAgICB0YXJnZXRzLmZvckVhY2goKHRhcmdldCkgPT4ge1xyXG4gICAgICAvLyBUaGlzIGlzIGdldHRpbmcgdGhlIG9yZGVyIG9mIHRoZSBmb2xkZXIgbm90ZSwgbm90IHRoZSBzb3VyY2UgcG9pbnRpbmcgdXAgdG8gaXRcclxuICAgICAgY29uc3Qgc291cmNlT3JkZXIgPSBnZXRTb3VyY2VPcmRlcihhbHRGaWxlKTtcclxuICAgICAgY29uc3QgdGFyZ2V0T3JkZXIgPSBnZXRUYXJnZXRPcmRlcihmcm9udG1zLCBiYXNlbmFtZSk7XHJcbiAgICAgIHBvcHVsYXRlTWFpbihcclxuICAgICAgICBzZXR0aW5ncyxcclxuICAgICAgICBtYWluRyxcclxuICAgICAgICBiYXNlbmFtZSxcclxuICAgICAgICBmaWVsZCxcclxuICAgICAgICB0YXJnZXQsXHJcbiAgICAgICAgc291cmNlT3JkZXIsXHJcbiAgICAgICAgdGFyZ2V0T3JkZXIsXHJcbiAgICAgICAgdHJ1ZVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGFsdEZpbGVbQkNfRk9MREVSX05PVEVfU1VCRk9MREVSU10pIHtcclxuICAgICAgY29uc3Qgc3ViZm9sZGVyRmllbGQgPSBhbHRGaWxlW0JDX0ZPTERFUl9OT1RFX1NVQkZPTERFUlNdIGFzIHN0cmluZztcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHR5cGVvZiBzdWJmb2xkZXJGaWVsZCAhPT0gXCJzdHJpbmdcIiB8fFxyXG4gICAgICAgICFmaWVsZHMuaW5jbHVkZXMoc3ViZm9sZGVyRmllbGQpXHJcbiAgICAgIClcclxuICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICBjb25zdCB7IHN1YkZvbGRlcnMgfSA9IGdldFN1YnNGcm9tRm9sZGVyKHRvcEZvbGRlcik7XHJcblxyXG4gICAgICBzdWJGb2xkZXJzLmZvckVhY2goKHN1YkZvbGRlcikgPT4ge1xyXG4gICAgICAgIHN1YkZvbGRlci5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgVEZpbGUpIHtcclxuICAgICAgICAgICAgY29uc3QgY2hpbGRCYXNlbmFtZSA9IGdldERWQmFzZW5hbWUoY2hpbGQpO1xyXG5cclxuICAgICAgICAgICAgcG9wdWxhdGVNYWluKFxyXG4gICAgICAgICAgICAgIHNldHRpbmdzLFxyXG4gICAgICAgICAgICAgIG1haW5HLFxyXG4gICAgICAgICAgICAgIGJhc2VuYW1lLFxyXG4gICAgICAgICAgICAgIHN1YmZvbGRlckZpZWxkLFxyXG4gICAgICAgICAgICAgIGNoaWxkQmFzZW5hbWUsXHJcbiAgICAgICAgICAgICAgOTk5OSxcclxuICAgICAgICAgICAgICA5OTk5LFxyXG4gICAgICAgICAgICAgIHRydWVcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFsdEZpbGVbQkNfRk9MREVSX05PVEVfUkVDVVJTSVZFXSkge1xyXG4gICAgICBjb25zdCB7IHN1YkZvbGRlcnMgfSA9IGdldFN1YnNGcm9tRm9sZGVyKHRvcEZvbGRlcik7XHJcbiAgICAgIGNvbnN0IGZvbGRlclF1ZXVlOiBURm9sZGVyW10gPSBbLi4uc3ViRm9sZGVyc107XHJcblxyXG4gICAgICBsZXQgY3VyckZvbGRlciA9IGZvbGRlclF1ZXVlLnNoaWZ0KCk7XHJcbiAgICAgIHdoaWxlIChjdXJyRm9sZGVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjb25zdCB7IG90aGVyTm90ZXMsIHN1YkZvbGRlcnMgfSA9IGdldFN1YnNGcm9tRm9sZGVyKGN1cnJGb2xkZXIpO1xyXG5cclxuICAgICAgICBjb25zdCBmb2xkZXJOb3RlID0gY3VyckZvbGRlci5uYW1lO1xyXG4gICAgICAgIGNvbnN0IHRhcmdldHMgPSBvdGhlck5vdGVzLm1hcChnZXREVkJhc2VuYW1lKTtcclxuXHJcbiAgICAgICAgLy8gaWYgKCFpc0luVmF1bHQoIGZvbGRlck5vdGUsIGZvbGRlck5vdGUpKSBjb250aW51ZTtcclxuXHJcbiAgICAgICAgY29uc3Qgc291cmNlT3JkZXIgPSA5OTk5OyAvLyBnZXRTb3VyY2VPcmRlcihhbHRGaWxlKTtcclxuICAgICAgICBjb25zdCB0YXJnZXRPcmRlciA9IDk5OTk7IC8vICBnZXRUYXJnZXRPcmRlcihmcm9udG1zLCBiYXNlbmFtZSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcmVudEZvbGRlck5vdGUgPSBjdXJyRm9sZGVyLnBhcmVudC5uYW1lO1xyXG5cclxuICAgICAgICBwb3B1bGF0ZU1haW4oXHJcbiAgICAgICAgICBzZXR0aW5ncyxcclxuICAgICAgICAgIG1haW5HLFxyXG4gICAgICAgICAgcGFyZW50Rm9sZGVyTm90ZSxcclxuICAgICAgICAgIGZpZWxkLFxyXG4gICAgICAgICAgZm9sZGVyTm90ZSxcclxuICAgICAgICAgIHNvdXJjZU9yZGVyLFxyXG4gICAgICAgICAgdGFyZ2V0T3JkZXIsXHJcbiAgICAgICAgICB0cnVlXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGFyZ2V0cy5mb3JFYWNoKCh0YXJnZXQpID0+IHtcclxuICAgICAgICAgIGlmICh0YXJnZXQgPT09IGZvbGRlck5vdGUpIHJldHVybjtcclxuICAgICAgICAgIGNvbnN0IHNvdXJjZU9yZGVyID0gOTk5OTsgLy8gZ2V0U291cmNlT3JkZXIoYWx0RmlsZSk7XHJcbiAgICAgICAgICBjb25zdCB0YXJnZXRPcmRlciA9IDk5OTk7IC8vICBnZXRUYXJnZXRPcmRlcihmcm9udG1zLCBiYXNlbmFtZSk7XHJcblxyXG4gICAgICAgICAgcG9wdWxhdGVNYWluKFxyXG4gICAgICAgICAgICBzZXR0aW5ncyxcclxuICAgICAgICAgICAgbWFpbkcsXHJcbiAgICAgICAgICAgIGZvbGRlck5vdGUsXHJcbiAgICAgICAgICAgIGZpZWxkLFxyXG4gICAgICAgICAgICB0YXJnZXQsXHJcbiAgICAgICAgICAgIHNvdXJjZU9yZGVyLFxyXG4gICAgICAgICAgICB0YXJnZXRPcmRlcixcclxuICAgICAgICAgICAgdHJ1ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgZm9sZGVyUXVldWUucHVzaCguLi5zdWJGb2xkZXJzKTtcclxuICAgICAgICBjdXJyRm9sZGVyID0gZm9sZGVyUXVldWUuc2hpZnQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIEZpcnN0IGFkZCBvdGhlck5vdGVzIHRvIGdyYXBoXHJcblxyXG4gICAgLy8gVGhlbiBpdGVyYXRlIHN1YkZvbGRlcnMgZG9pbmcgdGhlIHNhbWVcclxuICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHR5cGUgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHR5cGUgeyBURmlsZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgeyBnZXREVkJhc2VuYW1lLCBnZXRTZXR0aW5ncyB9IGZyb20gXCIuLi8uLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcbmltcG9ydCB0eXBlIHsgQkNTZXR0aW5ncywgSGllcmFyY2h5Tm90ZUl0ZW0gfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgeyBhZGRFZGdlSWZOb3QsIGFkZE5vZGVzSWZOb3QgfSBmcm9tIFwiLi4vLi4vVXRpbHMvZ3JhcGhVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXRGaWVsZEluZm8sIGdldEZpZWxkcywgZ2V0T3BwRGlyLCBnZXRPcHBGaWVsZHMgfSBmcm9tIFwiLi4vLi4vVXRpbHMvSGllclV0aWxzXCI7XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0SGllcmFyY2h5Tm90ZUl0ZW1zKGZpbGU6IFRGaWxlKSB7XHJcbiAgY29uc3QgeyBsaXN0SXRlbXMgfSA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpbGVDYWNoZShmaWxlKTtcclxuICBpZiAoIWxpc3RJdGVtcykgcmV0dXJuIFtdO1xyXG5cclxuICBjb25zdCBiYXNlbmFtZSA9IGdldERWQmFzZW5hbWUoZmlsZSlcclxuICBjb25zdCB7IGhpZXJhcmNoeU5vdGVJc1BhcmVudCB9ID0gZ2V0U2V0dGluZ3MoKTtcclxuXHJcbiAgY29uc3QgbGluZXMgPSAoYXdhaXQgYXBwLnZhdWx0LmNhY2hlZFJlYWQoZmlsZSkpLnNwbGl0KFwiXFxuXCIpO1xyXG5cclxuICBjb25zdCBoaWVyYXJjaHlOb3RlSXRlbXM6IEhpZXJhcmNoeU5vdGVJdGVtW10gPSBbXTtcclxuXHJcbiAgY29uc3QgYWZ0ZXJCdWxsZXRSZWcgPSBuZXcgUmVnRXhwKC9cXHMqWysqLV1cXHMoLiokKS8pO1xyXG4gIGNvbnN0IGRyb3BXaWtpTGlua3NSZWcgPSBuZXcgUmVnRXhwKC9cXFtcXFsoLio/KVxcXVxcXS8pO1xyXG4gIGNvbnN0IGZpZWxkUmVnID0gbmV3IFJlZ0V4cCgvKC4qPylcXFtcXFsuKj9cXF1cXF0vKTtcclxuXHJcbiAgZm9yIChjb25zdCBpdGVtIG9mIGxpc3RJdGVtcykge1xyXG4gICAgY29uc3QgbGluZSA9IGxpbmVzW2l0ZW0ucG9zaXRpb24uc3RhcnQubGluZV07XHJcblxyXG4gICAgY29uc3QgYWZ0ZXJCdWxsZXRDdXJyID0gYWZ0ZXJCdWxsZXRSZWcuZXhlYyhsaW5lKVsxXTtcclxuICAgIGNvbnN0IG5vdGUgPSBkcm9wV2lraUxpbmtzUmVnLmV4ZWMoYWZ0ZXJCdWxsZXRDdXJyKVsxXTtcclxuICAgIGxldCBmaWVsZCA9IGZpZWxkUmVnLmV4ZWMoYWZ0ZXJCdWxsZXRDdXJyKVsxXS50cmltKCkgfHwgbnVsbDtcclxuXHJcbiAgICBjb25zdCB7IHBhcmVudCB9ID0gaXRlbTtcclxuICAgIGlmIChwYXJlbnQgPj0gMCkge1xyXG4gICAgICBjb25zdCBwYXJlbnROb3RlID0gbGluZXNbcGFyZW50XTtcclxuICAgICAgY29uc3QgYWZ0ZXJCdWxsZXRQYXJlbnQgPSBhZnRlckJ1bGxldFJlZy5leGVjKHBhcmVudE5vdGUpWzFdO1xyXG4gICAgICBjb25zdCBkcm9wV2lraVBhcmVudCA9IGRyb3BXaWtpTGlua3NSZWcuZXhlYyhhZnRlckJ1bGxldFBhcmVudClbMV07XHJcblxyXG4gICAgICBoaWVyYXJjaHlOb3RlSXRlbXMucHVzaCh7XHJcbiAgICAgICAgbm90ZSxcclxuICAgICAgICBwYXJlbnQ6IGRyb3BXaWtpUGFyZW50LFxyXG4gICAgICAgIGZpZWxkLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGhpZXJhcmNoeU5vdGVJdGVtcy5wdXNoKHtcclxuICAgICAgICBub3RlLFxyXG4gICAgICAgIHBhcmVudDogaGllcmFyY2h5Tm90ZUlzUGFyZW50ID8gYmFzZW5hbWUgOiBudWxsLFxyXG4gICAgICAgIGZpZWxkLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGhpZXJhcmNoeU5vdGVJdGVtcztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZEhOc1RvR3JhcGgoXHJcbiAgc2V0dGluZ3M6IEJDU2V0dGluZ3MsXHJcbiAgaG5BcnI6IEhpZXJhcmNoeU5vdGVJdGVtW10sXHJcbiAgbWFpbkc6IE11bHRpR3JhcGhcclxuKSB7XHJcbiAgY29uc3QgeyBITlVwRmllbGQsIHVzZXJIaWVycyB9ID0gc2V0dGluZ3M7XHJcbiAgY29uc3QgdXBGaWVsZHMgPSBnZXRGaWVsZHModXNlckhpZXJzLCBcInVwXCIpO1xyXG5cclxuICBobkFyci5mb3JFYWNoKChobkl0ZW0sIGkpID0+IHtcclxuICAgIGNvbnN0IHsgbm90ZSwgZmllbGQsIHBhcmVudCB9ID0gaG5JdGVtO1xyXG5cclxuICAgIGNvbnN0IHRhcmdldEZpZWxkID0gZmllbGQgPz8gKEhOVXBGaWVsZCB8fCB1cEZpZWxkc1swXSk7XHJcbiAgICBjb25zdCBkaXIgPSBnZXRGaWVsZEluZm8odXNlckhpZXJzLCB0YXJnZXRGaWVsZCk/LmZpZWxkRGlyO1xyXG4gICAgY29uc3Qgb3BwRGlyID0gZ2V0T3BwRGlyKGRpcik7XHJcbiAgICBjb25zdCBvcHBGaWVsZCA9IGdldE9wcEZpZWxkcyh1c2VySGllcnMsIHRhcmdldEZpZWxkLCBkaXIpWzBdO1xyXG5cclxuICAgIGlmIChwYXJlbnQgPT09IG51bGwpIHtcclxuICAgICAgY29uc3QgcyA9IG5vdGU7XHJcbiAgICAgIGNvbnN0IHQgPSBobkFycltpICsgMV0/Lm5vdGU7XHJcblxyXG4gICAgICBhZGROb2Rlc0lmTm90KG1haW5HLCBbcywgdF0pO1xyXG4gICAgICBhZGRFZGdlSWZOb3QobWFpbkcsIHMsIHQsIHsgZGlyOiBvcHBEaXIsIGZpZWxkOiBvcHBGaWVsZCB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGFkZE5vZGVzSWZOb3QobWFpbkcsIFtub3RlLCBwYXJlbnRdKTtcclxuICAgICAgaWYgKHNldHRpbmdzLnNob3dVcEluSnVnZ2wpIHtcclxuICAgICAgICBhZGRFZGdlSWZOb3QobWFpbkcsIG5vdGUsIHBhcmVudCwge1xyXG4gICAgICAgICAgZGlyLFxyXG4gICAgICAgICAgZmllbGQ6IHRhcmdldEZpZWxkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhZGRFZGdlSWZOb3QobWFpbkcsIHBhcmVudCwgbm90ZSwge1xyXG4gICAgICAgIGRpcjogb3BwRGlyLFxyXG4gICAgICAgIGZpZWxkOiBvcHBGaWVsZCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuIiwgImltcG9ydCB0eXBlIHsgTXVsdGlHcmFwaCB9IGZyb20gXCJncmFwaG9sb2d5XCI7XHJcbmltcG9ydCB7IHBhcnNlVHlwZWRMaW5rIH0gZnJvbSBcImp1Z2dsLWFwaVwiO1xyXG5pbXBvcnQgdHlwZSB7IFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IHNwbGl0TGlua3NSZWdleCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHR5cGUgeyBCQ1NldHRpbmdzLCBkdkZyb250bWF0dGVyQ2FjaGUsIEp1Z2dsTGluayB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IGdldFRhcmdldE9yZGVyLCBwb3B1bGF0ZU1haW4gfSBmcm9tIFwiLi4vVXRpbHMvZ3JhcGhVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXRGaWVsZEluZm8sIGdldEZpZWxkcyB9IGZyb20gXCIuLi9VdGlscy9IaWVyVXRpbHNcIjtcclxuXHJcbi8vIFRPRE8gSSB0aGluayBpdCdkIGJlIGJldHRlciB0byBkbyB0aGlzIHdob2xlIHRoaW5nIGFzIGFuIG9iaiBpbnN0ZWFkIG9mIEp1Z2dsTGlua1tdXHJcbi8vID0+IHtbbm90ZTogc3RyaW5nXToge3R5cGU6IHN0cmluZywgbGlua3NJbkxpbmU6IHN0cmluZ1tdfVtdfVxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0SnVnZ2xMaW5rcyhcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIGZpbGVzOiBURmlsZVtdXHJcbik6IFByb21pc2U8SnVnZ2xMaW5rW10+IHtcclxuICBjb25zdCB7IHNldHRpbmdzLCBkYiB9ID0gcGx1Z2luO1xyXG4gIGRiLnN0YXJ0MkcoXCJnZXRKdWdnbExpbmtzXCIpO1xyXG5cclxuICBjb25zdCB7IHVzZXJIaWVycyB9ID0gc2V0dGluZ3M7XHJcblxyXG4gIC8vIEFkZCBKdWdnbCBsaW5rc1xyXG4gIGNvbnN0IHR5cGVkTGlua3NBcnI6IEp1Z2dsTGlua1tdID0gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICBmaWxlcy5tYXAoYXN5bmMgKGZpbGUpID0+IHtcclxuICAgICAgY29uc3QganVnZ2xMaW5rOiBKdWdnbExpbmsgPSB7IGZpbGUsIGxpbmtzOiBbXSB9O1xyXG5cclxuICAgICAgLy8gVXNlIE9icyBtZXRhZGF0YWNhY2hlIHRvIGdldCB0aGUgbGlua3MgaW4gdGhlIGN1cnJlbnQgZmlsZVxyXG4gICAgICBjb25zdCBsaW5rcyA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpbGVDYWNoZShmaWxlKT8ubGlua3MgPz8gW107XHJcblxyXG4gICAgICBjb25zdCBjb250ZW50ID0gbGlua3MubGVuZ3RoID8gYXdhaXQgYXBwLnZhdWx0LmNhY2hlZFJlYWQoZmlsZSkgOiBcIlwiO1xyXG4gICAgICBjb25zdCBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoXCJcXG5cIik7XHJcblxyXG4gICAgICBsaW5rcy5mb3JFYWNoKChsaW5rKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbGluZU5vID0gbGluay5wb3NpdGlvbi5zdGFydC5saW5lO1xyXG4gICAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1tsaW5lTm9dO1xyXG5cclxuICAgICAgICAvLyBDaGVjayB0aGUgbGluZSBmb3Igd2lraWxpbmtzLCBhbmQgcmV0dXJuIGFuIGFycmF5IG9mIGxpbmsuaW5uZXJUZXh0XHJcbiAgICAgICAgY29uc3QgbGlua3NJbkxpbmUgPVxyXG4gICAgICAgICAgbGluZVxyXG4gICAgICAgICAgICAubWF0Y2goc3BsaXRMaW5rc1JlZ2V4KVxyXG4gICAgICAgICAgICA/Lm1hcCgobGluaykgPT4gbGluay5zbGljZSgyLCBsaW5rLmxlbmd0aCAtIDIpKVxyXG4gICAgICAgICAgICA/Lm1hcCgoaW5uZXJUZXh0KSA9PiBpbm5lclRleHQuc3BsaXQoXCJ8XCIpWzBdKSA/PyBbXTtcclxuXHJcbiAgICAgICAgY29uc3QgdHlwZWRMaW5rUHJlZml4ID1cclxuICAgICAgICAgIGFwcC5wbHVnaW5zLnBsdWdpbnMuanVnZ2w/LnNldHRpbmdzLnR5cGVkTGlua1ByZWZpeCA/PyBcIi1cIjtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyc2VkTGlua3MgPSBwYXJzZVR5cGVkTGluayhsaW5rLCBsaW5lLCB0eXBlZExpbmtQcmVmaXgpO1xyXG5cclxuICAgICAgICBjb25zdCBmaWVsZCA9IHBhcnNlZExpbmtzPy5wcm9wZXJ0aWVzPy50eXBlID8/IFwiXCI7XHJcbiAgICAgICAgaWYgKGZpZWxkID09PSBcIlwiKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgeyBmaWVsZERpciB9ID0gZ2V0RmllbGRJbmZvKHVzZXJIaWVycywgZmllbGQpIHx8IHt9O1xyXG4gICAgICAgIGlmICghZmllbGREaXIpIHJldHVybjtcclxuXHJcbiAgICAgICAganVnZ2xMaW5rLmxpbmtzLnB1c2goe1xyXG4gICAgICAgICAgZGlyOiBmaWVsZERpcixcclxuICAgICAgICAgIGZpZWxkLFxyXG4gICAgICAgICAgbGlua3NJbkxpbmUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4ganVnZ2xMaW5rO1xyXG4gICAgfSlcclxuICApO1xyXG5cclxuICBjb25zdCBhbGxGaWVsZHMgPSBnZXRGaWVsZHModXNlckhpZXJzKTtcclxuXHJcbiAgY29uc3QgZmlsdGVyZWRMaW5rcyA9IHR5cGVkTGlua3NBcnIubWFwKChqdWdnbExpbmspID0+IHtcclxuICAgIC8vIEZpbHRlciBvdXQgbGlua3Mgd2hvc2UgdHlwZSBpcyBub3QgaW4gYWxsRmllbGRzXHJcbiAgICBqdWdnbExpbmsubGlua3MgPSBqdWdnbExpbmsubGlua3MuZmlsdGVyKChsaW5rKSA9PlxyXG4gICAgICBhbGxGaWVsZHMuaW5jbHVkZXMobGluay5maWVsZClcclxuICAgICk7XHJcbiAgICByZXR1cm4ganVnZ2xMaW5rO1xyXG4gIH0pO1xyXG4gIGRiLmVuZDJHKHsgZmlsdGVyZWRMaW5rcyB9KTtcclxuICByZXR1cm4gZmlsdGVyZWRMaW5rcztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZEp1Z2dsTGlua3NUb0dyYXBoKFxyXG4gIHNldHRpbmdzOiBCQ1NldHRpbmdzLFxyXG4gIGp1Z2dsTGlua3M6IEp1Z2dsTGlua1tdLFxyXG4gIGZyb250bXM6IGR2RnJvbnRtYXR0ZXJDYWNoZVtdLFxyXG4gIG1haW5HOiBNdWx0aUdyYXBoXHJcbikge1xyXG4gIGp1Z2dsTGlua3MuZm9yRWFjaCgoanVnZ2xMaW5rKSA9PiB7XHJcbiAgICBjb25zdCB7IGJhc2VuYW1lIH0gPSBqdWdnbExpbmsuZmlsZTtcclxuICAgIGp1Z2dsTGluay5saW5rcy5mb3JFYWNoKChsaW5rKSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgZGlyLCBmaWVsZCwgbGlua3NJbkxpbmUgfSA9IGxpbms7XHJcbiAgICAgIGlmIChkaXIgPT09IFwiXCIpIHJldHVybjtcclxuICAgICAgY29uc3Qgc291cmNlT3JkZXIgPSBnZXRUYXJnZXRPcmRlcihmcm9udG1zLCBiYXNlbmFtZSk7XHJcbiAgICAgIGxpbmtzSW5MaW5lLmZvckVhY2goKGxpbmtJbkxpbmUpID0+IHtcclxuICAgICAgICAvLyBJcyB0aGlzIGEgYnVnPyBXaHkgbm90IGBnZXRTb3VyY2VPcmRlcmA/XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0c09yZGVyID0gZ2V0VGFyZ2V0T3JkZXIoZnJvbnRtcywgbGlua0luTGluZSk7XHJcblxyXG4gICAgICAgIHBvcHVsYXRlTWFpbihcclxuICAgICAgICAgIHNldHRpbmdzLFxyXG4gICAgICAgICAgbWFpbkcsXHJcbiAgICAgICAgICBiYXNlbmFtZSxcclxuICAgICAgICAgIGZpZWxkLFxyXG4gICAgICAgICAgbGlua0luTGluZSxcclxuICAgICAgICAgIHNvdXJjZU9yZGVyLFxyXG4gICAgICAgICAgdGFyZ2V0c09yZGVyXHJcbiAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHR5cGUgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHsgQkNfTElOS19OT1RFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSB7IGR2RnJvbnRtYXR0ZXJDYWNoZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7XHJcbiAgZ2V0U291cmNlT3JkZXIsXHJcbiAgZ2V0VGFyZ2V0T3JkZXIsXHJcbiAgcG9wdWxhdGVNYWluLFxyXG59IGZyb20gXCIuLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcbmltcG9ydCB7IGdldEZpZWxkcyB9IGZyb20gXCIuLi9VdGlscy9IaWVyVXRpbHNcIjtcclxuaW1wb3J0IHsgZ2V0RFZCYXNlbmFtZSB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkTGlua05vdGVzVG9HcmFwaChcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIGVsaWdhYmxlQWx0czogZHZGcm9udG1hdHRlckNhY2hlW10sXHJcbiAgZnJvbnRtczogZHZGcm9udG1hdHRlckNhY2hlW10sXHJcbiAgbWFpbkc6IE11bHRpR3JhcGhcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgdXNlckhpZXJzIH0gPSBzZXR0aW5ncztcclxuICBjb25zdCBmaWVsZHMgPSBnZXRGaWVsZHModXNlckhpZXJzKTtcclxuICBlbGlnYWJsZUFsdHMuZm9yRWFjaCgoYWx0RmlsZSkgPT4ge1xyXG4gICAgY29uc3QgbGlua05vdGVGaWxlID0gYWx0RmlsZS5maWxlO1xyXG4gICAgY29uc3QgbGlua05vdGVCYXNlbmFtZSA9IGdldERWQmFzZW5hbWUobGlua05vdGVGaWxlKTtcclxuXHJcbiAgICBsZXQgZmllbGQgPSBhbHRGaWxlW0JDX0xJTktfTk9URV0gYXMgc3RyaW5nO1xyXG4gICAgaWYgKHR5cGVvZiBmaWVsZCAhPT0gXCJzdHJpbmdcIiB8fCAhZmllbGRzLmluY2x1ZGVzKGZpZWxkKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGxpbmtzID0gYXBwLm1ldGFkYXRhQ2FjaGVcclxuICAgICAgLmdldEZpbGVDYWNoZShsaW5rTm90ZUZpbGUpXHJcbiAgICAgID8ubGlua3M/Lm1hcCgobCkgPT4gbC5saW5rLm1hdGNoKC9bXiN8XSsvKVswXSk7XHJcblxyXG4gICAgY29uc3QgZW1iZWRzID0gYXBwLm1ldGFkYXRhQ2FjaGVcclxuICAgICAgLmdldEZpbGVDYWNoZShsaW5rTm90ZUZpbGUpXHJcbiAgICAgID8uZW1iZWRzPy5tYXAoKGwpID0+IGwubGluay5tYXRjaCgvW14jfF0rLylbMF0pO1xyXG5cclxuICAgIGNvbnN0IHRhcmdldHMgPSBbLi4uKGxpbmtzID8/IFtdKSwgLi4uKGVtYmVkcyA/PyBbXSldO1xyXG5cclxuICAgIGZvciAoY29uc3QgdGFyZ2V0IG9mIHRhcmdldHMpIHtcclxuICAgICAgY29uc3Qgc291cmNlT3JkZXIgPSBnZXRTb3VyY2VPcmRlcihhbHRGaWxlKTtcclxuICAgICAgY29uc3QgdGFyZ2V0T3JkZXIgPSBnZXRUYXJnZXRPcmRlcihmcm9udG1zLCBsaW5rTm90ZUJhc2VuYW1lKTtcclxuICAgICAgcG9wdWxhdGVNYWluKFxyXG4gICAgICAgIHNldHRpbmdzLFxyXG4gICAgICAgIG1haW5HLFxyXG4gICAgICAgIGxpbmtOb3RlQmFzZW5hbWUsXHJcbiAgICAgICAgZmllbGQsXHJcbiAgICAgICAgdGFyZ2V0LFxyXG4gICAgICAgIHNvdXJjZU9yZGVyLFxyXG4gICAgICAgIHRhcmdldE9yZGVyLFxyXG4gICAgICAgIHRydWVcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHR5cGUgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHsgaW5mbyB9IGZyb20gXCJsb2dsZXZlbFwiO1xyXG5pbXBvcnQgeyBCQ19JR05PUkUsIEJDX1JFR0VYX05PVEUsIEJDX1JFR0VYX05PVEVfRklFTEQgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB0eXBlIHsgZHZGcm9udG1hdHRlckNhY2hlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgc3RyVG9SZWdleCB9IGZyb20gXCIuLi9VdGlscy9nZW5lcmFsVXRpbHNcIjtcclxuaW1wb3J0IHtcclxuICBnZXRTb3VyY2VPcmRlcixcclxuICBnZXRUYXJnZXRPcmRlcixcclxuICBwb3B1bGF0ZU1haW4sXHJcbn0gZnJvbSBcIi4uL1V0aWxzL2dyYXBoVXRpbHNcIjtcclxuaW1wb3J0IHsgZ2V0RmllbGRzIH0gZnJvbSBcIi4uL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXREVkJhc2VuYW1lIH0gZnJvbSBcIi4uL1V0aWxzL09ic2lkaWFuVXRpbHNcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRSZWdleE5vdGVzVG9HcmFwaChcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIGVsaWdhYmxlQWx0czogZHZGcm9udG1hdHRlckNhY2hlW10sXHJcbiAgZnJvbnRtczogZHZGcm9udG1hdHRlckNhY2hlW10sXHJcbiAgbWFpbkc6IE11bHRpR3JhcGhcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgdXNlckhpZXJzLCByZWdleE5vdGVGaWVsZCB9ID0gc2V0dGluZ3M7XHJcbiAgY29uc3QgZmllbGRzID0gZ2V0RmllbGRzKHVzZXJIaWVycyk7XHJcblxyXG4gIGVsaWdhYmxlQWx0cy5mb3JFYWNoKChhbHRGaWxlKSA9PiB7XHJcbiAgICBjb25zdCByZWdleE5vdGVGaWxlID0gYWx0RmlsZS5maWxlO1xyXG4gICAgY29uc3QgcmVnZXhOb3RlQmFzZW5hbWUgPSBnZXREVkJhc2VuYW1lKHJlZ2V4Tm90ZUZpbGUpO1xyXG5cclxuICAgIGNvbnN0IHJlZ2V4ID0gc3RyVG9SZWdleChhbHRGaWxlW0JDX1JFR0VYX05PVEVdIGFzIHN0cmluZyk7XHJcbiAgICBpbmZvKHsgcmVnZXggfSk7XHJcblxyXG4gICAgbGV0IGZpZWxkID0gYWx0RmlsZVtCQ19SRUdFWF9OT1RFX0ZJRUxEXSBhcyBzdHJpbmc7XHJcbiAgICBpZiAodHlwZW9mIGZpZWxkICE9PSBcInN0cmluZ1wiIHx8ICFmaWVsZHMuaW5jbHVkZXMoZmllbGQpKVxyXG4gICAgICBmaWVsZCA9IHJlZ2V4Tm90ZUZpZWxkIHx8IGZpZWxkc1swXTtcclxuXHJcbiAgICBjb25zdCB0YXJnZXRzID0gW107XHJcbiAgICBmcm9udG1zLmZvckVhY2goKHBhZ2UpID0+IHtcclxuICAgICAgaWYgKHBhZ2VbQkNfSUdOT1JFXSkgcmV0dXJuO1xyXG4gICAgICBjb25zdCBiYXNlbmFtZSA9IGdldERWQmFzZW5hbWUocGFnZS5maWxlKTtcclxuICAgICAgaWYgKGJhc2VuYW1lICE9PSByZWdleE5vdGVCYXNlbmFtZSAmJiByZWdleC50ZXN0KGJhc2VuYW1lKSlcclxuICAgICAgICB0YXJnZXRzLnB1c2goYmFzZW5hbWUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZm9yIChjb25zdCB0YXJnZXQgb2YgdGFyZ2V0cykge1xyXG4gICAgICBjb25zdCBzb3VyY2VPcmRlciA9IGdldFNvdXJjZU9yZGVyKGFsdEZpbGUpO1xyXG4gICAgICBjb25zdCB0YXJnZXRPcmRlciA9IGdldFRhcmdldE9yZGVyKGZyb250bXMsIHJlZ2V4Tm90ZUJhc2VuYW1lKTtcclxuICAgICAgcG9wdWxhdGVNYWluKFxyXG4gICAgICAgIHNldHRpbmdzLFxyXG4gICAgICAgIG1haW5HLFxyXG4gICAgICAgIHJlZ2V4Tm90ZUJhc2VuYW1lLFxyXG4gICAgICAgIGZpZWxkLFxyXG4gICAgICAgIHRhcmdldCxcclxuICAgICAgICBzb3VyY2VPcmRlcixcclxuICAgICAgICB0YXJnZXRPcmRlcixcclxuICAgICAgICB0cnVlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuIiwgImltcG9ydCB0eXBlIHsgTXVsdGlHcmFwaCB9IGZyb20gXCJncmFwaG9sb2d5XCI7XHJcbmltcG9ydCB7IGluZm8gfSBmcm9tIFwibG9nbGV2ZWxcIjtcclxuaW1wb3J0IHR5cGUgeyBURmlsZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQge1xyXG4gIEJDX0lHTk9SRSxcclxuICBCQ19UQUdfTk9URSxcclxuICBCQ19UQUdfTk9URV9FWEFDVCxcclxuICBCQ19UQUdfTk9URV9GSUVMRCxcclxufSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB0eXBlIHsgZHZGcm9udG1hdHRlckNhY2hlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgc3BsaXRBbmRUcmltIH0gZnJvbSBcIi4uL1V0aWxzL2dlbmVyYWxVdGlsc1wiO1xyXG5pbXBvcnQge1xyXG4gIGdldFNvdXJjZU9yZGVyLFxyXG4gIGdldFRhcmdldE9yZGVyLFxyXG4gIHBvcHVsYXRlTWFpbixcclxufSBmcm9tIFwiLi4vVXRpbHMvZ3JhcGhVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXRGaWVsZHMgfSBmcm9tIFwiLi4vVXRpbHMvSGllclV0aWxzXCI7XHJcbmltcG9ydCB7IGFkZEhhc2gsIGRyb3BIYXNoLCBnZXREVkJhc2VuYW1lIH0gZnJvbSBcIi4uL1V0aWxzL09ic2lkaWFuVXRpbHNcIjtcclxuXHJcbmNvbnN0IGdldEFsbFRhZ3MgPSAoZmlsZTogVEZpbGUsIHdpdGhIYXNoID0gdHJ1ZSk6IHN0cmluZ1tdID0+IHtcclxuICBjb25zdCB7IHRhZ3MsIGZyb250bWF0dGVyIH0gPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaWxlQ2FjaGUoZmlsZSk7XHJcbiAgY29uc3QgYWxsVGFnczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgdGFncz8uZm9yRWFjaCgodCkgPT4gYWxsVGFncy5wdXNoKGRyb3BIYXNoKHQudGFnKSkpO1xyXG5cclxuICBbZnJvbnRtYXR0ZXI/LnRhZ3MgPz8gW11dLmZsYXQoKS5mb3JFYWNoKCh0OiBzdHJpbmcpID0+IHtcclxuICAgIHNwbGl0QW5kVHJpbSh0KS5mb3JFYWNoKChpbm5lclQpID0+IGFsbFRhZ3MucHVzaChkcm9wSGFzaChpbm5lclQpKSk7XHJcbiAgfSk7XHJcbiAgW2Zyb250bWF0dGVyPy50YWcgPz8gW11dLmZsYXQoKS5mb3JFYWNoKCh0OiBzdHJpbmcpID0+IHtcclxuICAgIHNwbGl0QW5kVHJpbSh0KS5mb3JFYWNoKChpbm5lclQpID0+IGFsbFRhZ3MucHVzaChkcm9wSGFzaChpbm5lclQpKSk7XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiBhbGxUYWdzLm1hcCgodCkgPT4gKHdpdGhIYXNoID8gXCIjXCIgOiBcIlwiKSArIHQudG9Mb3dlckNhc2UoKSk7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkVGFnTm90ZXNUb0dyYXBoKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgZWxpZ2FibGVBbHRzOiBkdkZyb250bWF0dGVyQ2FjaGVbXSxcclxuICBmcm9udG1zOiBkdkZyb250bWF0dGVyQ2FjaGVbXSxcclxuICBtYWluRzogTXVsdGlHcmFwaFxyXG4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgeyB1c2VySGllcnMsIHRhZ05vdGVGaWVsZCB9ID0gc2V0dGluZ3M7XHJcbiAgY29uc3QgZmllbGRzID0gZ2V0RmllbGRzKHVzZXJIaWVycyk7XHJcbiAgZWxpZ2FibGVBbHRzLmZvckVhY2goKGFsdEZpbGUpID0+IHtcclxuICAgIGNvbnN0IHRhZ05vdGVGaWxlID0gYWx0RmlsZS5maWxlO1xyXG5cclxuICAgIGNvbnN0IHRhZ05vdGVCYXNlbmFtZSA9IGdldERWQmFzZW5hbWUodGFnTm90ZUZpbGUpO1xyXG4gICAgY29uc3QgdGFnID0gYWRkSGFzaCgoYWx0RmlsZVtCQ19UQUdfTk9URV0gYXMgc3RyaW5nKS50cmltKCkudG9Mb3dlckNhc2UoKSk7XHJcbiAgICBpbmZvKHsgdGFnIH0pO1xyXG5cclxuICAgIGNvbnN0IGhhc1RoaXNUYWcgPSAoZmlsZTogVEZpbGUpID0+IHtcclxuICAgICAgY29uc3QgYWxsVGFncyA9IGdldEFsbFRhZ3MoZmlsZSk7XHJcbiAgICAgIHJldHVybiBhbHRGaWxlW0JDX1RBR19OT1RFX0VYQUNUXSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgPyBhbGxUYWdzLmluY2x1ZGVzKHRhZylcclxuICAgICAgICA6IGFsbFRhZ3Muc29tZSgodCkgPT4gdC5pbmNsdWRlcyh0YWcpKTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgdGFyZ2V0cyA9IGZyb250bXNcclxuICAgICAgLm1hcCgoZmYpID0+IGZmLmZpbGUpXHJcbiAgICAgIC5maWx0ZXIoKGZpbGUpID0+IGZpbGUucGF0aCAhPT0gdGFnTm90ZUZpbGUucGF0aCAmJiBoYXNUaGlzVGFnKGZpbGUpICYmICFmaWxlW0JDX0lHTk9SRV0pXHJcbiAgICAgIC5tYXAoZ2V0RFZCYXNlbmFtZSk7XHJcbiAgICBpbmZvKHsgdGFyZ2V0cyB9KTtcclxuXHJcbiAgICBsZXQgZmllbGQgPVxyXG4gICAgICAoYWx0RmlsZVtCQ19UQUdfTk9URV9GSUVMRF0gYXMgc3RyaW5nKSA/PyAodGFnTm90ZUZpZWxkIHx8IGZpZWxkc1swXSk7XHJcblxyXG4gICAgdGFyZ2V0cy5mb3JFYWNoKCh0YXJnZXQpID0+IHtcclxuICAgICAgY29uc3Qgc291cmNlT3JkZXIgPSBnZXRTb3VyY2VPcmRlcihhbHRGaWxlKTtcclxuICAgICAgY29uc3QgdGFyZ2V0T3JkZXIgPSBnZXRUYXJnZXRPcmRlcihmcm9udG1zLCB0YWdOb3RlQmFzZW5hbWUpO1xyXG4gICAgICBwb3B1bGF0ZU1haW4oXHJcbiAgICAgICAgc2V0dGluZ3MsXHJcbiAgICAgICAgbWFpbkcsXHJcbiAgICAgICAgdGFnTm90ZUJhc2VuYW1lLFxyXG4gICAgICAgIGZpZWxkLFxyXG4gICAgICAgIHRhcmdldCxcclxuICAgICAgICBzb3VyY2VPcmRlcixcclxuICAgICAgICB0YXJnZXRPcmRlcixcclxuICAgICAgICB0cnVlXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHR5cGUgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHsgaW5mbyB9IGZyb20gXCJsb2dsZXZlbFwiO1xyXG5pbXBvcnQgeyBCQ19UUkFWRVJTRV9OT1RFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSB7IGR2RnJvbnRtYXR0ZXJDYWNoZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IGRmc0FsbFBhdGhzLCBwb3B1bGF0ZU1haW4sIHJlbW92ZUN5Y2xlcyB9IGZyb20gXCIuLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcbmltcG9ydCB7IGdldEZpZWxkcyB9IGZyb20gXCIuLi9VdGlscy9IaWVyVXRpbHNcIjtcclxuaW1wb3J0IHsgZ2V0RFZCYXNlbmFtZSB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkVHJhdmVyc2VOb3Rlc1RvR3JhcGgoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICB0cmF2ZXJzZU5vdGVzOiBkdkZyb250bWF0dGVyQ2FjaGVbXSxcclxuICBtYWluRzogTXVsdGlHcmFwaCxcclxuICBvYnNHOiBNdWx0aUdyYXBoXHJcbikge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7IHVzZXJIaWVycyB9ID0gc2V0dGluZ3M7XHJcbiAgY29uc3QgZmllbGRzID0gZ2V0RmllbGRzKHVzZXJIaWVycyk7XHJcblxyXG4gIHRyYXZlcnNlTm90ZXMuZm9yRWFjaCgoYWx0RmlsZSkgPT4ge1xyXG4gICAgY29uc3QgeyBmaWxlIH0gPSBhbHRGaWxlO1xyXG4gICAgY29uc3QgYmFzZW5hbWUgPSBnZXREVkJhc2VuYW1lKGZpbGUpO1xyXG4gICAgY29uc3Qgbm9DeWNsZXMgPSByZW1vdmVDeWNsZXMob2JzRywgYmFzZW5hbWUpO1xyXG5cclxuICAgIGxldCBmaWVsZCA9IGFsdEZpbGVbQkNfVFJBVkVSU0VfTk9URV0gYXMgc3RyaW5nO1xyXG4gICAgaWYgKHR5cGVvZiBmaWVsZCAhPT0gXCJzdHJpbmdcIiB8fCAhZmllbGRzLmluY2x1ZGVzKGZpZWxkKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGFsbFBhdGhzID0gZGZzQWxsUGF0aHMobm9DeWNsZXMsIGJhc2VuYW1lKTtcclxuICAgIGluZm8oYWxsUGF0aHMpO1xyXG4gICAgY29uc3QgcmV2ZXJzZWQgPSBbLi4uYWxsUGF0aHNdLm1hcCgocGF0aCkgPT4gcGF0aC5yZXZlcnNlKCkpO1xyXG4gICAgcmV2ZXJzZWQuZm9yRWFjaCgocGF0aCkgPT4ge1xyXG4gICAgICBwYXRoLmZvckVhY2goKG5vZGUsIGkpID0+IHtcclxuICAgICAgICBjb25zdCBuZXh0ID0gcGF0aFtpICsgMV07XHJcbiAgICAgICAgaWYgKG5leHQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG4gICAgICAgIHBvcHVsYXRlTWFpbihcclxuICAgICAgICAgIHNldHRpbmdzLFxyXG4gICAgICAgICAgbWFpbkcsXHJcbiAgICAgICAgICBub2RlLFxyXG4gICAgICAgICAgZmllbGQgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgbmV4dCxcclxuICAgICAgICAgIDk5OTksXHJcbiAgICAgICAgICA5OTk5LFxyXG4gICAgICAgICAgdHJ1ZVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfSk7XHJcbn1cclxuIiwgImltcG9ydCB0eXBlIHsgTXVsdGlHcmFwaCB9IGZyb20gXCJncmFwaG9sb2d5XCI7XHJcbmltcG9ydCB7IGVycm9yLCBpbmZvIH0gZnJvbSBcImxvZ2xldmVsXCI7XHJcbmltcG9ydCB7IE1hcmtkb3duVmlldywgVEZpbGUgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IE5leHRQcmV2IGZyb20gXCIuLi9Db21wb25lbnRzL05leHRQcmV2LnN2ZWx0ZVwiO1xyXG5pbXBvcnQgVHJhaWxHcmlkIGZyb20gXCIuLi9Db21wb25lbnRzL1RyYWlsR3JpZC5zdmVsdGVcIjtcclxuaW1wb3J0IFRyYWlsUGF0aCBmcm9tIFwiLi4vQ29tcG9uZW50cy9UcmFpbFBhdGguc3ZlbHRlXCI7XHJcbmltcG9ydCB7XHJcbiAgQkNfSElERV9UUkFJTCxcclxuICBibGFua1JlYWxOSW1wbGllZCxcclxuICBKVUdHTF9UUkFJTF9ERUZBVUxUUyxcclxuICBUUkFJTF9MRU5HVEhTLFxyXG59IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHR5cGUgeyBCQ1NldHRpbmdzLCBFZGdlQXR0ciwgUmVhbE5JbXBsaWVkIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHtcclxuICBiZnNBbGxQYXRocyxcclxuICBnZXRSZWZsZXhpdmVDbG9zdXJlLFxyXG4gIGdldFN1YkZvckZpZWxkcyxcclxuICBnZXRTdWJJbkRpcnMsXHJcbn0gZnJvbSBcIi4uL1V0aWxzL2dyYXBoVXRpbHNcIjtcclxuaW1wb3J0IHsgZ2V0RmllbGRzLCBnZXRPcHBEaXIsIGdldE9wcEZpZWxkcyB9IGZyb20gXCIuLi9VdGlscy9IaWVyVXRpbHNcIjtcclxuaW1wb3J0IHsgY3JlYXRlSnVnZ2xUcmFpbCB9IGZyb20gXCIuLi9WaXN1YWxpc2F0aW9ucy9KdWdnbFwiO1xyXG5cclxuZnVuY3Rpb24gZ2V0TGltaXRlZFRyYWlsU3ViKHBsdWdpbjogQkNQbHVnaW4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzLCBtYWluRywgY2xvc2VkRyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgbGltaXRUcmFpbENoZWNrYm94ZXMsIHVzZXJIaWVycyB9ID0gc2V0dGluZ3M7XHJcblxyXG4gIGlmIChcclxuICAgIGdldEZpZWxkcyh1c2VySGllcnMpLmV2ZXJ5KChmaWVsZCkgPT4gbGltaXRUcmFpbENoZWNrYm94ZXMuaW5jbHVkZXMoZmllbGQpKVxyXG4gICkge1xyXG4gICAgcmV0dXJuIGdldFN1YkluRGlycyhjbG9zZWRHLCBcInVwXCIpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zdCBvcHBGaWVsZHMgPSBsaW1pdFRyYWlsQ2hlY2tib3hlc1xyXG4gICAgICAubWFwKChmaWVsZCkgPT4gZ2V0T3BwRmllbGRzKHVzZXJIaWVycywgZmllbGQsIFwidXBcIik/LlswXSlcclxuICAgICAgLmZpbHRlcigoZmllbGQpID0+IGZpZWxkICE9PSB1bmRlZmluZWQpO1xyXG4gICAgY29uc3Qgc3ViR3JhcGggPSBnZXRTdWJGb3JGaWVsZHMobWFpbkcsIFtcclxuICAgICAgLi4ubGltaXRUcmFpbENoZWNrYm94ZXMsXHJcbiAgICAgIC4uLm9wcEZpZWxkcyxcclxuICAgIF0pO1xyXG4gICAgY29uc3QgY2xvc2VkID0gZ2V0UmVmbGV4aXZlQ2xvc3VyZShzdWJHcmFwaCwgdXNlckhpZXJzKTtcclxuICAgIHJldHVybiBnZXRTdWJJbkRpcnMoY2xvc2VkLCBcInVwXCIpO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QnJlYWRjcnVtYnMoXHJcbiAgc2V0dGluZ3M6IEJDU2V0dGluZ3MsXHJcbiAgZzogTXVsdGlHcmFwaCxcclxuICBjdXJyRmlsZTogVEZpbGVcclxuKTogc3RyaW5nW11bXSB8IG51bGwge1xyXG4gIGNvbnN0IHsgYmFzZW5hbWUsIGV4dGVuc2lvbiB9ID0gY3VyckZpbGU7XHJcbiAgaWYgKGV4dGVuc2lvbiAhPT0gXCJtZFwiKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgY29uc3QgYWxsVHJhaWxzID0gYmZzQWxsUGF0aHMoZywgYmFzZW5hbWUpO1xyXG4gIGxldCBmaWx0ZXJlZFRyYWlscyA9IFsuLi5hbGxUcmFpbHNdO1xyXG5cclxuICBjb25zdCB7IGluZGV4Tm90ZXMsIHNob3dBbGxQYXRoc0lmTm9uZVRvSW5kZXhOb3RlIH0gPSBzZXR0aW5ncztcclxuICAvLyBGaWx0ZXIgZm9yIGluZGV4IG5vdGVzXHJcbiAgaWYgKFxyXG4gICAgLy8gV29ya3MgZm9yIGB1bmRlZmluZWRgIGFuZCBgXCJcImBcclxuICAgIGluZGV4Tm90ZXNbMF0gJiZcclxuICAgIGZpbHRlcmVkVHJhaWxzLmxlbmd0aFxyXG4gICkge1xyXG4gICAgZmlsdGVyZWRUcmFpbHMgPSBmaWx0ZXJlZFRyYWlscy5maWx0ZXIoKHRyYWlsKSA9PlxyXG4gICAgICBpbmRleE5vdGVzLmluY2x1ZGVzKHRyYWlsWzBdKVxyXG4gICAgKTtcclxuICAgIGlmIChmaWx0ZXJlZFRyYWlscy5sZW5ndGggPT09IDAgJiYgc2hvd0FsbFBhdGhzSWZOb25lVG9JbmRleE5vdGUpXHJcbiAgICAgIGZpbHRlcmVkVHJhaWxzID0gWy4uLmFsbFRyYWlsc107XHJcbiAgfVxyXG5cclxuICBjb25zdCBzb3J0ZWRUcmFpbHMgPSBmaWx0ZXJlZFRyYWlsc1xyXG4gICAgLmZpbHRlcigodHJhaWwpID0+IHRyYWlsLmxlbmd0aCA+IDApXHJcbiAgICAuc29ydCgoYSwgYikgPT4gYS5sZW5ndGggLSBiLmxlbmd0aCk7XHJcblxyXG4gIHJldHVybiBzb3J0ZWRUcmFpbHM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldE5leHROUHJldihwbHVnaW46IEJDUGx1Z2luLCBjdXJyTm9kZTogc3RyaW5nKSB7XHJcbiAgY29uc3QgeyBtYWluRyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgdXNlckhpZXJzIH0gPSBwbHVnaW4uc2V0dGluZ3M7XHJcbiAgaWYgKCFtYWluRykgcmV0dXJuIG51bGw7XHJcbiAgY29uc3QgbmV4dE5QcmV2OiBSZWFsTkltcGxpZWQgPSBibGFua1JlYWxOSW1wbGllZCgpO1xyXG5cclxuICBtYWluRy5mb3JFYWNoRWRnZShjdXJyTm9kZSwgKGssIGEsIHMsIHQpID0+IHtcclxuICAgIGNvbnN0IHsgZGlyLCBmaWVsZCwgaW1wbGllZCB9ID0gYSBhcyBFZGdlQXR0cjtcclxuICAgIGlmIChkaXIgIT09IFwibmV4dFwiICYmIGRpciAhPT0gXCJwcmV2XCIpIHJldHVybjtcclxuICAgIGlmIChzID09PSBjdXJyTm9kZSkge1xyXG4gICAgICBuZXh0TlByZXZbZGlyXS5yZWFscy5wdXNoKHsgZmllbGQsIHRvOiB0LCBpbXBsaWVkIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgb3BwRmllbGQgPSBnZXRPcHBGaWVsZHModXNlckhpZXJzLCBmaWVsZCwgZGlyKVswXTtcclxuICAgICAgbmV4dE5QcmV2W2dldE9wcERpcihkaXIpXS5pbXBsaWVkcy5wdXNoKHtcclxuICAgICAgICBmaWVsZDogb3BwRmllbGQsXHJcbiAgICAgICAgdG86IHMsXHJcbiAgICAgICAgaW1wbGllZCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIG5leHROUHJldjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYWlsTGVuZ3RoKGN1cnI6IHN0cmluZywgb2Zmc2V0OiBudW1iZXIgPSAxKSB7XHJcbiAgY29uc3QgaW5kZXggPVxyXG4gICAgKFRSQUlMX0xFTkdUSFMuaW5kZXhPZihjdXJyKSArIG9mZnNldCkgJSBUUkFJTF9MRU5HVEhTLmxlbmd0aDtcclxuICByZXR1cm4gVFJBSUxfTEVOR1RIU1tpbmRleCA8IDAgPyBUUkFJTF9MRU5HVEhTLmxlbmd0aCArIGluZGV4IDogaW5kZXhdO1xyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZHJhd1RyYWlsKHBsdWdpbjogQkNQbHVnaW4pOiBQcm9taXNlPHZvaWQ+IHtcclxuICB0cnkge1xyXG4gICAgY29uc3QgeyBzZXR0aW5ncywgZGIsIG1haW5HIH0gPSBwbHVnaW47XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHNob3dCQ3MsXHJcbiAgICAgIG5vUGF0aE1lc3NhZ2UsXHJcbiAgICAgIHJlc3BlY3RSZWFkYWJsZUxpbmVMZW5ndGgsXHJcbiAgICAgIHNob3dUcmFpbCxcclxuICAgICAgc2hvd0dyaWQsXHJcbiAgICAgIHNob3dKdWdnbCxcclxuICAgICAgc2hvd1ByZXZOZXh0LFxyXG4gICAgICBzaG93QkNzSW5FZGl0TFBNb2RlLFxyXG4gICAgfSA9IHNldHRpbmdzO1xyXG5cclxuICAgIGRiLnN0YXJ0MkcoXCJkcmF3VHJhaWxcIik7XHJcblxyXG4gICAgY29uc3QgYWN0aXZlTURWaWV3ID0gYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldyk7XHJcbiAgICBjb25zdCBtb2RlID0gYWN0aXZlTURWaWV3Py5nZXRNb2RlKCk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICAhc2hvd0JDcyB8fFxyXG4gICAgICAhYWN0aXZlTURWaWV3IHx8XHJcbiAgICAgIChtb2RlICE9PSBcInByZXZpZXdcIiAmJiAhc2hvd0JDc0luRWRpdExQTW9kZSlcclxuICAgICkge1xyXG4gICAgICBhY3RpdmVNRFZpZXc/LmNvbnRhaW5lckVsLnF1ZXJ5U2VsZWN0b3IoXCIuQkMtdHJhaWxcIik/LnJlbW92ZSgpO1xyXG4gICAgICByZXR1cm4gZGIuZW5kMkcoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB7IGZpbGUgfSA9IGFjdGl2ZU1EVmlldztcclxuICAgIGNvbnN0IHsgZnJvbnRtYXR0ZXIgfSA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpbGVDYWNoZShmaWxlKSA/PyB7fTtcclxuXHJcblxyXG4gICAgaWYgKGZyb250bWF0dGVyPy5bQkNfSElERV9UUkFJTF0gfHwgZnJvbnRtYXR0ZXI/LltcImthbmJhbi1wbHVnaW5cIl0pIHJldHVybiBkYi5lbmQyRygpO1xyXG5cclxuICAgIGNvbnN0IHsgYmFzZW5hbWUgfSA9IGZpbGU7XHJcbiAgICBpZiAoIW1haW5HLmhhc05vZGUoYmFzZW5hbWUpKSByZXR1cm4gZGIuZW5kMkcoKTtcclxuXHJcbiAgICBjb25zdCB2aWV3ID1cclxuICAgICAgbW9kZSA9PT0gXCJwcmV2aWV3XCJcclxuICAgICAgICA/IGFjdGl2ZU1EVmlldy5wcmV2aWV3TW9kZS5jb250YWluZXJFbC5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICAgICAgXCJkaXYubWFya2Rvd24tcHJldmlldy12aWV3XCJcclxuICAgICAgICApXHJcbiAgICAgICAgOiBhY3RpdmVNRFZpZXcuY29udGVudEVsLnF1ZXJ5U2VsZWN0b3IoXCJkaXYubWFya2Rvd24tc291cmNlLXZpZXdcIik7XHJcblxyXG4gICAgYWN0aXZlTURWaWV3LmNvbnRhaW5lckVsXHJcbiAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKFwiLkJDLXRyYWlsXCIpXHJcbiAgICAgID8uZm9yRWFjaCgodHJhaWwpID0+IHRyYWlsLnJlbW92ZSgpKTtcclxuXHJcbiAgICBjb25zdCBjbG9zZWRVcCA9IGdldExpbWl0ZWRUcmFpbFN1YihwbHVnaW4pO1xyXG4gICAgY29uc3Qgc29ydGVkVHJhaWxzID0gZ2V0QnJlYWRjcnVtYnMoc2V0dGluZ3MsIGNsb3NlZFVwLCBmaWxlKTtcclxuICAgIGluZm8oeyBzb3J0ZWRUcmFpbHMgfSk7XHJcblxyXG4gICAgY29uc3Qge1xyXG4gICAgICBuZXh0OiB7IHJlYWxzOiByTmV4dCwgaW1wbGllZHM6IGlOZXh0IH0sXHJcbiAgICAgIHByZXY6IHsgcmVhbHM6IHJQcmV2LCBpbXBsaWVkczogaVByZXYgfSxcclxuICAgIH0gPSBnZXROZXh0TlByZXYocGx1Z2luLCBiYXNlbmFtZSk7XHJcblxyXG4gICAgLy8gUmVtb3ZlIGR1cGxpY2F0ZSBpbXBsaWVkXHJcbiAgICBjb25zdCBuZXh0ID0gWy4uLnJOZXh0XTtcclxuICAgIGlOZXh0LmZvckVhY2goKGkpID0+IHtcclxuICAgICAgaWYgKG5leHQuZmluZEluZGV4KChuKSA9PiBuLnRvID09PSBpLnRvKSA9PT0gLTEpXHJcbiAgICAgICAgbmV4dC5wdXNoKGkpXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHByZXYgPSBbLi4uclByZXZdO1xyXG4gICAgaVByZXYuZm9yRWFjaCgoaSkgPT4ge1xyXG4gICAgICBpZiAocHJldi5maW5kSW5kZXgoKG4pID0+IG4udG8gPT09IGkudG8pID09PSAtMSlcclxuICAgICAgICBwcmV2LnB1c2goaSlcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IG5vSXRlbXMgPSAhc29ydGVkVHJhaWxzLmxlbmd0aCAmJiAhbmV4dC5sZW5ndGggJiYgIXByZXYubGVuZ3RoO1xyXG5cclxuICAgIGlmIChub0l0ZW1zICYmIG5vUGF0aE1lc3NhZ2UgPT09IFwiXCIpIHJldHVybiBkYi5lbmQyRygpO1xyXG5cclxuICAgIGNvbnN0IHNlbGVjdG9yRm9yTWF4V2lkdGggPVxyXG4gICAgICBtb2RlID09PSBcInByZXZpZXdcIlxyXG4gICAgICAgID8gXCIubWFya2Rvd24tcHJldmlldy12aWV3LmlzLXJlYWRhYmxlLWxpbmUtd2lkdGggLm1hcmtkb3duLXByZXZpZXctc2l6ZXJcIlxyXG4gICAgICAgIDogXCJcIjtcclxuXHJcbiAgICBjb25zdCBlbEZvck1heFdpZHRoID1cclxuICAgICAgc2VsZWN0b3JGb3JNYXhXaWR0aCAhPT0gXCJcIlxyXG4gICAgICAgID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3RvckZvck1heFdpZHRoKVxyXG4gICAgICAgIDogbnVsbDtcclxuICAgIGNvbnN0IG1heF93aWR0aCA9IGVsRm9yTWF4V2lkdGhcclxuICAgICAgPyBnZXRDb21wdXRlZFN0eWxlKGVsRm9yTWF4V2lkdGgpLmdldFByb3BlcnR5VmFsdWUoXCJtYXgtd2lkdGhcIilcclxuICAgICAgOiBcIjEwMCVcIjtcclxuXHJcbiAgICBjb25zdCB0cmFpbERpdiA9IGNyZWF0ZURpdih7XHJcbiAgICAgIGNsczogYEJDLXRyYWlsICR7cmVzcGVjdFJlYWRhYmxlTGluZUxlbmd0aFxyXG4gICAgICAgID8gXCJpcy1yZWFkYWJsZS1saW5lLXdpZHRoIG1hcmtkb3duLXByZXZpZXctc2l6ZXIgbWFya2Rvd24tcHJldmlldy1zZWN0aW9uXCJcclxuICAgICAgICA6IFwiXCJcclxuICAgICAgICB9YCxcclxuICAgICAgYXR0cjoge1xyXG4gICAgICAgIHN0eWxlOlxyXG4gICAgICAgICAgKG1vZGUgIT09IFwicHJldmlld1wiID8gYG1heC13aWR0aDogJHttYXhfd2lkdGh9O2AgOiBcIlwiKSArXHJcbiAgICAgICAgICBcIm1hcmdpbjogMCBhdXRvO1wiICtcclxuICAgICAgICAgIGAke3Jlc3BlY3RSZWFkYWJsZUxpbmVMZW5ndGhcclxuICAgICAgICAgICAgPyAnd2lkdGg6IHZhcigtLWZpbGUtbGluZS13aWR0aCk7J1xyXG4gICAgICAgICAgICA6ICd3aWR0aDogMTAwJSd9YCxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIHBsdWdpbi52aXNpdGVkLnB1c2goW2ZpbGUucGF0aCwgdHJhaWxEaXZdKTtcclxuXHJcbiAgICBpZiAobW9kZSA9PT0gXCJwcmV2aWV3XCIpIHtcclxuICAgICAgdmlldy5xdWVyeVNlbGVjdG9yKFwiZGl2Lm1hcmtkb3duLXByZXZpZXctc2l6ZXJcIikuYmVmb3JlKHRyYWlsRGl2KTtcclxuXHJcbiAgICAgIC8vIGNvbnN0IGJhbm5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vYnNpZGlhbi1iYW5uZXItd3JhcHBlcicpXHJcbiAgICAgIC8vIGlmIChiYW5uZXIpIHtcclxuICAgICAgLy8gICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xyXG4gICAgICAvLyAgICAgY29uc3QgYmFubmVyTWFyZ2luID0gZ2V0Q29tcHV0ZWRTdHlsZShiYW5uZXIpLm1hcmdpblRvcFxyXG4gICAgICAvLyAgICAgY29uc29sZS5sb2coYmFubmVyTWFyZ2luKVxyXG4gICAgICAvLyAgICAgdHJhaWxEaXYuc3R5bGUubWFyZ2luVG9wID0gYmFubmVyTWFyZ2luO1xyXG4gICAgICAvLyAgICAgYmFubmVyLnN0eWxlLm1hcmdpblRvcCA9ICcwcHgnXHJcbiAgICAgIC8vICAgfSlcclxuICAgICAgLy8gfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgY21HdXR0ZXIgPSB2aWV3LnF1ZXJ5U2VsZWN0b3IoXCJkaXYuY20tZ3V0dGVyc1wiKTtcclxuICAgICAgaWYgKGNtR3V0dGVyKSB7XHJcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGd1dHRlckhlaWdodCA9IHRyYWlsRGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcclxuICAgICAgICAgIC8vIHNldCBwYWRkaW5nIHRvcCBvZiBndXR0ZXIgdG8gbWF0Y2ggaGVpZ2h0IG9mIHRyYWlsRGl2XHJcbiAgICAgICAgICBjbUd1dHRlci5zdHlsZS5wYWRkaW5nVG9wID0gYCR7Z3V0dGVySGVpZ2h0ICsgNH1weGA7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGNvbnN0IGJhbm5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vYnNpZGlhbi1iYW5uZXItc3BhY2VyJylcclxuICAgICAgLy8gaWYgKGJhbm5lcikge1xyXG4gICAgICAvLyAgIGNvbnNvbGUubG9nKHsgYmFubmVyIH0pXHJcbiAgICAgIC8vICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcclxuICAgICAgLy8gICAgIGNvbnN0IGJhbm5lck1hcmdpbiA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUoYmFubmVyKS5oZWlnaHQpXHJcbiAgICAgIC8vICAgICBjb25zb2xlLmxvZyhiYW5uZXJNYXJnaW4pXHJcbiAgICAgIC8vICAgICB0cmFpbERpdi5zdHlsZS5tYXJnaW5Ub3AgPSBgJHtiYW5uZXJNYXJnaW4gKyAxMH1weGA7XHJcbiAgICAgIC8vICAgICBiYW5uZXIuc3R5bGUuaGVpZ2h0ID0gJzBweCdcclxuICAgICAgLy8gICB9KVxyXG4gICAgICAvLyB9XHJcblxyXG4gICAgICB2aWV3LnF1ZXJ5U2VsZWN0b3IoXCJkaXYuY20tY29udGVudENvbnRhaW5lclwiKT8uYmVmb3JlKHRyYWlsRGl2KVxyXG5cclxuICAgIH1cclxuXHJcblxyXG4gICAgdHJhaWxEaXYuZW1wdHkoKTtcclxuICAgIGlmIChzZXR0aW5ncy5pbmRleE5vdGVzLmluY2x1ZGVzKGJhc2VuYW1lKSkge1xyXG4gICAgICB0cmFpbERpdi5pbm5lclRleHQgPSBcIkluZGV4IE5vdGVcIjtcclxuICAgICAgcmV0dXJuIGRiLmVuZDJHKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG5vSXRlbXMpIHtcclxuICAgICAgdHJhaWxEaXYuaW5uZXJUZXh0ID0gbm9QYXRoTWVzc2FnZTtcclxuICAgICAgcmV0dXJuIGRiLmVuZDJHKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdGFyZ2V0UHJvcHMgPSB7XHJcbiAgICAgIHRhcmdldDogdHJhaWxEaXYsXHJcbiAgICAgIHByb3BzOiB7IHNvcnRlZFRyYWlscywgcGx1Z2luIH0sXHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChzaG93VHJhaWwgJiYgc29ydGVkVHJhaWxzLmxlbmd0aCkgbmV3IFRyYWlsUGF0aCh0YXJnZXRQcm9wcyk7XHJcbiAgICBpZiAoc2hvd0dyaWQgJiYgc29ydGVkVHJhaWxzLmxlbmd0aCkgbmV3IFRyYWlsR3JpZCh0YXJnZXRQcm9wcyk7XHJcbiAgICBpZiAoc2hvd1ByZXZOZXh0ICYmIChuZXh0Lmxlbmd0aCB8fCBwcmV2Lmxlbmd0aCkpIHtcclxuICAgICAgbmV3IE5leHRQcmV2KHtcclxuICAgICAgICB0YXJnZXQ6IHRyYWlsRGl2LFxyXG4gICAgICAgIHByb3BzOiB7IHBsdWdpbiwgbmV4dCwgcHJldiB9LFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChzaG93SnVnZ2wgJiYgc29ydGVkVHJhaWxzLmxlbmd0aCkge1xyXG4gICAgICBjcmVhdGVKdWdnbFRyYWlsKFxyXG4gICAgICAgIHBsdWdpbixcclxuICAgICAgICB0cmFpbERpdixcclxuICAgICAgICBzb3J0ZWRUcmFpbHMsXHJcbiAgICAgICAgYmFzZW5hbWUsXHJcbiAgICAgICAgSlVHR0xfVFJBSUxfREVGQVVMVFNcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGRiLmVuZDJHKCk7XHJcbiAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICBlcnJvcihlcnIpO1xyXG4gICAgcGx1Z2luLmRiLmVuZDJHKCk7XHJcbiAgfVxyXG59XHJcbiIsIG51bGwsICI8c2NyaXB0IGxhbmc9XCJ0c1wiPlxyXG4gIGltcG9ydCB7IG9wZW5PclN3aXRjaCwgaG92ZXJQcmV2aWV3IH0gZnJvbSBcIm9ic2lkaWFuLWNvbW11bml0eS1saWJcIjtcclxuICBpbXBvcnQgdHlwZSB7IFNxdWFyZUl0ZW0gfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG4gIGltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbiAgaW1wb3J0IHsgbGlua0NsYXNzIH0gZnJvbSBcIi4uL1V0aWxzL09ic2lkaWFuVXRpbHNcIjtcclxuXHJcbiAgZXhwb3J0IGxldCBwbHVnaW46IEJDUGx1Z2luO1xyXG4gIGV4cG9ydCBsZXQgbmV4dDogU3F1YXJlSXRlbVtdO1xyXG4gIGV4cG9ydCBsZXQgcHJldjogU3F1YXJlSXRlbVtdO1xyXG5cclxuICBjb25zdCBhY3RpdmVMZWFmVmlldyA9IGFwcC53b3Jrc3BhY2UuYWN0aXZlTGVhZi52aWV3O1xyXG48L3NjcmlwdD5cclxuXHJcbjxkaXYgY2xhc3M9XCJCQy1OZXh0UHJldi1Db250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiQkMtcHJldnNcIj5cclxuICAgIDxzcGFuPlxyXG4gICAgICB7I2VhY2ggcHJldiBhcyB7IGZpZWxkLCByZWFsLCB0byB9fVxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwie2xpbmtDbGFzcyh0bywgcmVhbCl9IEJDLXByZXZcIlxyXG4gICAgICAgICAgb246Y2xpY2s9e2FzeW5jIChlKSA9PiBhd2FpdCBvcGVuT3JTd2l0Y2godG8sIGUpfVxyXG4gICAgICAgICAgb246bW91c2VvdmVyPXsoZSkgPT4gaG92ZXJQcmV2aWV3KGUsIGFjdGl2ZUxlYWZWaWV3LCB0byl9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHN0cm9uZz57ZmllbGR9PC9zdHJvbmc+XHJcbiAgICAgICAgICB7dG99XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIHsvZWFjaH1cclxuICAgIDwvc3Bhbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiQkMtbmV4dHNcIj5cclxuICAgIDxzcGFuPlxyXG4gICAgICB7I2VhY2ggbmV4dCBhcyB7IGZpZWxkLCByZWFsLCB0byB9fVxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwie2xpbmtDbGFzcyh0bywgcmVhbCl9IEJDLW5leHRcIlxyXG4gICAgICAgICAgb246Y2xpY2s9e2FzeW5jIChlKSA9PiBhd2FpdCBvcGVuT3JTd2l0Y2godG8sIGUpfVxyXG4gICAgICAgICAgb246bW91c2VvdmVyPXsoZSkgPT4gaG92ZXJQcmV2aWV3KGUsIGFjdGl2ZUxlYWZWaWV3LCB0byl9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3RvfSA8c3Ryb25nPntmaWVsZH08L3N0cm9uZz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgey9lYWNofVxyXG4gICAgPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxzdHlsZT5cclxuICAuQkMtbmV4dHMgZGl2IHtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gIH1cclxuXHJcbiAgLkJDLW5leHRzIHtcclxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYmFja2dyb3VuZC1tb2RpZmllci1ib3JkZXIpO1xyXG4gIH1cclxuICAuQkMtcHJldnMge1xyXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYmFja2dyb3VuZC1tb2RpZmllci1ib3JkZXIpO1xyXG4gIH1cclxuXHJcbiAgLkJDLU5leHRQcmV2LUNvbnRhaW5lciB7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xyXG4gIH1cclxuPC9zdHlsZT5cclxuIiwgbnVsbCwgIjxzY3JpcHQgbGFuZz1cInRzXCI+XHJcbiAgaW1wb3J0IHtcclxuICAgIGhvdmVyUHJldmlldyxcclxuICAgIG9wZW5PclN3aXRjaCxcclxuICB9IGZyb20gXCJvYnNpZGlhbi1jb21tdW5pdHktbGliL2Rpc3QvdXRpbHNcIjtcclxuICBpbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG4gIGltcG9ydCB7XHJcbiAgICBkcm9wRGVuZHJvbixcclxuICAgIHBhZEFycmF5LFxyXG4gICAgcnVucyxcclxuICAgIHRyYW5zcG9zZSxcclxuICB9IGZyb20gXCIuLi9VdGlscy9nZW5lcmFsVXRpbHNcIjtcclxuICBpbXBvcnQgeyBnZXRBbHQsIGxpbmtDbGFzcyB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG4gIGV4cG9ydCBsZXQgc29ydGVkVHJhaWxzOiBzdHJpbmdbXVtdO1xyXG4gIGV4cG9ydCBsZXQgcGx1Z2luOiBCQ1BsdWdpbjtcclxuXHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgZ3JpZERlZmF1bHREZXB0aCB9ID0gc2V0dGluZ3M7XHJcblxyXG4gIGNvbnN0IGFjdGl2ZUxlYWZWaWV3ID0gYXBwLndvcmtzcGFjZS5hY3RpdmVMZWFmLnZpZXc7XHJcbiAgY29uc3QgbWF4TGVuZ3RoID0gc29ydGVkVHJhaWxzLmxhc3QoKS5sZW5ndGg7XHJcblxyXG4gIC8vIFVzZSB0aGUgdXNlciBzZXR0aW5nIHRvIGxpbWl0IHRoZSBpbml0aWFsIGRlcHRoXHJcbiAgbGV0IGRlcHRoID0gTWF0aC5taW4obWF4TGVuZ3RoLCBncmlkRGVmYXVsdERlcHRoKTtcclxuXHJcbiAgbGV0IHNsaWNlZFRyYWlscyA9IHNvcnRlZFRyYWlscztcclxuICAkOiB7XHJcbiAgICBzbGljZWRUcmFpbHMgPSBbXTtcclxuICAgIHNvcnRlZFRyYWlscy5mb3JFYWNoKCh0cmFpbCkgPT4ge1xyXG4gICAgICBjb25zdCBzbGljZSA9IHRyYWlsLnNsaWNlKG1heExlbmd0aCAtIGRlcHRoKTtcclxuICAgICAgaWYgKHNsaWNlLmxlbmd0aCkgc2xpY2VkVHJhaWxzLnB1c2goc2xpY2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAkOiBwYWRkZWRUcmFpbHMgPSBzbGljZWRUcmFpbHMubWFwKCh0cmFpbCkgPT4gcGFkQXJyYXkodHJhaWwsIGRlcHRoKSk7XHJcblxyXG4gICQ6IHRyYW5zcG9zZWRUcmFpbHMgPSB0cmFuc3Bvc2UocGFkZGVkVHJhaWxzKTtcclxuICAkOiBhbGxSdW5zID0gdHJhbnNwb3NlZFRyYWlscy5tYXAocnVucyk7XHJcbjwvc2NyaXB0PlxyXG5cclxuPGRpdiBjbGFzcz1cIkJDLWdyaWQtd3JhcHBlclwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiQkMtdHJhaWwtZ3JpZFwiXHJcbiAgICBzdHlsZT1cIlxyXG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHsnMWZyICcucmVwZWF0KHRyYW5zcG9zZWRUcmFpbHMubGVuZ3RoKX07XHJcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogeycxZnIgJy5yZXBlYXQoc2xpY2VkVHJhaWxzLmxlbmd0aCl9O1wiXHJcbiAgPlxyXG4gICAgeyNlYWNoIHRyYW5zcG9zZWRUcmFpbHMgYXMgY29sLCBpfVxyXG4gICAgICB7I2VhY2ggYWxsUnVuc1tpXSBhcyB7IHZhbHVlLCBmaXJzdCwgbGFzdCB9fVxyXG4gICAgICAgIDwhLS0gc3ZlbHRlLWlnbm9yZSBhMTF5LW1vdXNlLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgLS0+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJCQy10cmFpbC1ncmlkLWl0ZW0ge3ZhbHVlID09PSAnJyA/ICdCQy1maWxsZXInIDogJyd9XCJcclxuICAgICAgICAgIHN0eWxlPVwiXHJcbiAgICAgICAgICAgICAgZ3JpZC1hcmVhOiB7Zmlyc3QgKyAxfSAvIHtpICsgMX0gL1xyXG4gICAgICAgICAgICAgICAgICB7bGFzdCArIDJ9IC8ge2kgKyAyfTtcIlxyXG4gICAgICAgICAgb246Y2xpY2s9e2FzeW5jIChlKSA9PiBhd2FpdCBvcGVuT3JTd2l0Y2godmFsdWUsIGUpfVxyXG4gICAgICAgICAgb246bW91c2VvdmVyPXsoZSkgPT4gaG92ZXJQcmV2aWV3KGUsIGFjdGl2ZUxlYWZWaWV3LCB2YWx1ZSl9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz17bGlua0NsYXNzKHZhbHVlKX0+XHJcbiAgICAgICAgICAgIHtnZXRBbHQodmFsdWUsIHBsdWdpbikgPz8gZHJvcERlbmRyb24odmFsdWUsIHNldHRpbmdzKX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB7L2VhY2h9XHJcbiAgICB7L2VhY2h9XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJCQy1ncmlkLW9wdGlvbnNcIj5cclxuICAgIDxzcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIkJDLWdyaWQtb3B0aW9ucy1pY29uXCI+XHUyNjk5XHVGRTBGPC9zcGFuPlxyXG5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJCQy1ncmlkLW9wdGlvbnMtb3B0aW9uc1wiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIGNsYXNzPVwiQkMtZGVwdGgtYnV0dG9uXCJcclxuICAgICAgICAgIGRpc2FibGVkPXtkZXB0aCA9PT0gMX1cclxuICAgICAgICAgIG9uOmNsaWNrPXsoKSA9PiAoZGVwdGggLT0gMSl9Pi08L2J1dHRvblxyXG4gICAgICAgID5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRyZWUtaXRlbS1mbGFpclwiPntkZXB0aH08L3NwYW4+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgY2xhc3M9XCJCQy1kZXB0aC1idXR0b25cIlxyXG4gICAgICAgICAgZGlzYWJsZWQ9e2RlcHRoID09PSBtYXhMZW5ndGh9XHJcbiAgICAgICAgICBvbjpjbGljaz17KCkgPT4gKGRlcHRoICs9IDEpfT4rPC9idXR0b25cclxuICAgICAgICA+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48c3R5bGU+XHJcbiAgZGl2LkJDLWdyaWQtd3JhcHBlciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgfVxyXG5cclxuICBkaXYuQkMtdHJhaWwtZ3JpZCB7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1iYWNrZ3JvdW5kLW1vZGlmaWVyLWJvcmRlcik7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIGhlaWdodDogYXV0bztcclxuICB9XHJcblxyXG4gIC5CQy1ncmlkLW9wdGlvbnMge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwcHg7XHJcbiAgICByaWdodDogMHB4O1xyXG4gICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgd2lkdGg6IDMycHg7XHJcblxyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYmFja2dyb3VuZC1tb2RpZmllci1ib3JkZXIpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuXHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcztcclxuICAgIG92ZXJmbG93LXdyYXA6IG5vcm1hbDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgfVxyXG4gIGRpdi5CQy1ncmlkLW9wdGlvbnM6aG92ZXIge1xyXG4gICAgcGFkZGluZzogNXB4O1xyXG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gIH1cclxuICBkaXYuQkMtZ3JpZC1vcHRpb25zOmhvdmVyIC5CQy1ncmlkLW9wdGlvbnMtaWNvbiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLkJDLWdyaWQtb3B0aW9ucy1vcHRpb25zIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIGRpdi5CQy1ncmlkLW9wdGlvbnM6aG92ZXIgLkJDLWdyaWQtb3B0aW9ucy1vcHRpb25zIHtcclxuICAgIGRpc3BsYXk6IHVuc2V0O1xyXG4gIH1cclxuXHJcbiAgLkJDLWRlcHRoLWJ1dHRvbiB7XHJcbiAgICBwYWRkaW5nOiAzcHggNXB4O1xyXG4gIH1cclxuXHJcbiAgZGl2LkJDLXRyYWlsLWdyaWQtaXRlbSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJhY2tncm91bmQtbW9kaWZpZXItYm9yZGVyKTtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDJweDtcclxuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICB9XHJcblxyXG4gIGRpdi5CQy10cmFpbC1ncmlkLWl0ZW0uQkMtZmlsbGVyIHtcclxuICAgIG9wYWNpdHk6IDAuNztcclxuICB9XHJcbjwvc3R5bGU+XHJcbiIsIG51bGwsICI8c2NyaXB0IGxhbmc9XCJ0c1wiPlxyXG4gIGltcG9ydCB7XHJcbiAgICBob3ZlclByZXZpZXcsXHJcbiAgICBvcGVuT3JTd2l0Y2gsXHJcbiAgfSBmcm9tIFwib2JzaWRpYW4tY29tbXVuaXR5LWxpYi9kaXN0L3V0aWxzXCI7XHJcbiAgaW1wb3J0IHsgZ2V0VHJhaWxMZW5ndGggfSBmcm9tIFwiLi4vVmlld3MvVHJhaWxWaWV3XCI7XHJcbiAgaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuICBpbXBvcnQgeyBkcm9wRGVuZHJvbiB9IGZyb20gXCIuLi9VdGlscy9nZW5lcmFsVXRpbHNcIjtcclxuICBpbXBvcnQgeyBnZXRBbHQgfSBmcm9tIFwiLi4vVXRpbHMvT2JzaWRpYW5VdGlsc1wiO1xyXG5cclxuICBleHBvcnQgbGV0IHNvcnRlZFRyYWlsczogc3RyaW5nW11bXTtcclxuICBleHBvcnQgbGV0IHBsdWdpbjogQkNQbHVnaW47XHJcblxyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7IHZpZXcgfSA9IGFwcC53b3Jrc3BhY2UuYWN0aXZlTGVhZjtcclxuICBsZXQgeyBzaG93QWxsLCBub1BhdGhNZXNzYWdlLCB0cmFpbFNlcGVyYXRvciB9ID0gc2V0dGluZ3M7XHJcblxyXG4gIGxldCB0cmFpbF9sZW5ndGggPSBzaG93QWxsO1xyXG5cclxuICAkOiB0cmFpbHNUb1Nob3cgPVxyXG4gICAgdHJhaWxfbGVuZ3RoID09IFwiQWxsXCJcclxuICAgICAgPyBzb3J0ZWRUcmFpbHNcclxuICAgICAgOiB0cmFpbF9sZW5ndGggPT0gXCJTaG9ydGVzdFwiXHJcbiAgICAgID8gW3NvcnRlZFRyYWlsc1swXV1cclxuICAgICAgOiBbc29ydGVkVHJhaWxzLmxhc3QoKV07XHJcbjwvc2NyaXB0PlxyXG5cclxuPHNwYW4gY2xhc3M9XCJCQy10cmFpbC1wYXRoLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0cmFpbHMtZGl2XCI+XHJcbiAgICB7I2VhY2ggdHJhaWxzVG9TaG93IGFzIHRyYWlsfVxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIHsjaWYgIXRyYWlsLmxlbmd0aH1cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiQkMtZW1wdHktdHJhaWxcIj57bm9QYXRoTWVzc2FnZX08L3NwYW4+XHJcbiAgICAgICAgezplbHNlfVxyXG4gICAgICAgICAgeyNlYWNoIHRyYWlsIGFzIGNydW1iLCBpfVxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaW50ZXJuYWwtbGluayBCQy1MaW5rXCJcclxuICAgICAgICAgICAgICBvbjpjbGljaz17YXN5bmMgKGUpID0+IGF3YWl0IG9wZW5PclN3aXRjaChjcnVtYiwgZSl9XHJcbiAgICAgICAgICAgICAgb246bW91c2VvdmVyPXsoZSkgPT4gaG92ZXJQcmV2aWV3KGUsIHZpZXcsIGNydW1iKX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtnZXRBbHQoY3J1bWIsIHBsdWdpbikgPz8gZHJvcERlbmRyb24oY3J1bWIsIHNldHRpbmdzKX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICB7I2lmIGkgPCB0cmFpbC5sZW5ndGggLSAxfVxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiQkMtdHJhaWwtc2VwXCI+e1wiIFwiICsgdHJhaWxTZXBlcmF0b3IgKyBcIiBcIn08L3NwYW4+XHJcbiAgICAgICAgICAgIHsvaWZ9XHJcbiAgICAgICAgICB7L2VhY2h9XHJcbiAgICAgICAgey9pZn1cclxuICAgICAgPC9kaXY+XHJcbiAgICB7L2VhY2h9XHJcbiAgPC9kaXY+XHJcblxyXG4gIHsjaWYgc29ydGVkVHJhaWxzLmxlbmd0aCA+IDF9XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJidXR0b24tZGl2XCJcclxuICAgICAgICBvbjpjbGljaz17KCkgPT4gKHRyYWlsX2xlbmd0aCA9IGdldFRyYWlsTGVuZ3RoKHRyYWlsX2xlbmd0aCkpfVxyXG4gICAgICAgIG9uOmNvbnRleHRtZW51PXsoZSkgPT4ge1xyXG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgdHJhaWxfbGVuZ3RoID0gZ2V0VHJhaWxMZW5ndGgodHJhaWxfbGVuZ3RoLCAtMSk7XHJcbiAgICAgICAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIHt0cmFpbF9sZW5ndGh9XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgey9pZn1cclxuPC9zcGFuPlxyXG5cclxuPHN0eWxlPlxyXG4gIHNwYW4uQkMtdHJhaWwtcGF0aC1jb250YWluZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICB9XHJcbjwvc3R5bGU+XHJcbiIsICJpbXBvcnQgdHlwZSB7IEVkZ2VEZWZpbml0aW9uLCBOb2RlU2luZ3VsYXIgfSBmcm9tIFwiY3l0b3NjYXBlXCI7XHJcbmltcG9ydCB0eXBlIHsgTXVsdGlHcmFwaCB9IGZyb20gXCJncmFwaG9sb2d5XCI7XHJcbmltcG9ydCB7XHJcbiAgRGF0YVN0b3JlRXZlbnRzLFxyXG4gIGdldFBsdWdpbixcclxuICBJQ29yZURhdGFTdG9yZSxcclxuICBJSnVnZ2wsXHJcbiAgSUp1Z2dsU2V0dGluZ3MsXHJcbiAgSUp1Z2dsU3RvcmVzLFxyXG4gIG5vZGVEYW5nbGluZyxcclxuICBub2RlRnJvbUZpbGUsXHJcbiAgVml6SWQsXHJcbn0gZnJvbSBcImp1Z2dsLWFwaVwiO1xyXG5pbXBvcnQgeyBpbmZvLCB3YXJuIH0gZnJvbSBcImxvZ2xldmVsXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRzLCBNZXRhZGF0YUNhY2hlLCBURmlsZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgeyBjcmVhdGVJbmRleCB9IGZyb20gXCIuLi9Db21tYW5kcy9DcmVhdGVJbmRleFwiO1xyXG5pbXBvcnQgSnVnZ2xCdXR0b24gZnJvbSBcIi4uL0NvbXBvbmVudHMvSnVnZ2xCdXR0b24uc3ZlbHRlXCI7XHJcbmltcG9ydCBKdWdnbERlcHRoIGZyb20gXCIuLi9Db21wb25lbnRzL0p1Z2dsRGVwdGguc3ZlbHRlXCI7XHJcbmltcG9ydCB7IEpVR0dMX0NCX0RFRkFVTFRTIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQge1xyXG4gIGRmc0FsbFBhdGhzLFxyXG4gIGdldFJlZmxleGl2ZUNsb3N1cmUsXHJcbiAgZ2V0U3ViSW5EaXJzLFxyXG59IGZyb20gXCIuLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcbmNvbnN0IFNUT1JFX0lEID0gXCJjb3JlXCI7XHJcblxyXG5jbGFzcyBCQ1N0b3JlRXZlbnRzIGV4dGVuZHMgRXZlbnRzIGltcGxlbWVudHMgRGF0YVN0b3JlRXZlbnRzIHsgfVxyXG5cclxuZXhwb3J0IGNsYXNzIEJDU3RvcmUgZXh0ZW5kcyBDb21wb25lbnQgaW1wbGVtZW50cyBJQ29yZURhdGFTdG9yZSB7XHJcbiAgZ3JhcGg6IE11bHRpR3JhcGg7XHJcbiAgY2FjaGU6IE1ldGFkYXRhQ2FjaGU7XHJcbiAgZGVwdGhNYXA6IHsgW3ZhbHVlOiBzdHJpbmddOiBudW1iZXIgfTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGdyYXBoOiBNdWx0aUdyYXBoLFxyXG4gICAgbWV0YWRhdGE6IE1ldGFkYXRhQ2FjaGUsXHJcbiAgICBkZXB0aE1hcD86IHsgW3ZhbHVlOiBzdHJpbmddOiBudW1iZXIgfVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuZ3JhcGggPSBncmFwaDtcclxuICAgIHRoaXMuY2FjaGUgPSBtZXRhZGF0YTtcclxuICAgIHRoaXMuZGVwdGhNYXAgPSBkZXB0aE1hcDtcclxuICB9XHJcblxyXG4gIGFzU3RyaW5nKG5vZGU6IE5vZGVTaW5ndWxhcik6IHN0cmluZyB7XHJcbiAgICBjb25zdCBpZCA9IFZpeklkLmZyb21Ob2RlKG5vZGUpO1xyXG4gICAgcmV0dXJuIGlkLmlkLnNsaWNlKDAsIC0zKTtcclxuICB9XHJcblxyXG4gIGdldEZpbGUobm9kZUlkOiBWaXpJZCk6IFRGaWxlIHtcclxuICAgIHJldHVybiB0aGlzLmNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KG5vZGVJZC5pZCwgXCJcIik7XHJcbiAgfVxyXG5cclxuICBhc3luYyBjb25uZWN0Tm9kZXMoXHJcbiAgICBhbGxOb2RlczogY3l0b3NjYXBlLk5vZGVDb2xsZWN0aW9uLFxyXG4gICAgbmV3Tm9kZXM6IGN5dG9zY2FwZS5Ob2RlQ29sbGVjdGlvbixcclxuICAgIGdyYXBoOiBJSnVnZ2xcclxuICApOiBQcm9taXNlPGN5dG9zY2FwZS5FZGdlRGVmaW5pdGlvbltdPiB7XHJcbiAgICBjb25zdCBlZGdlczogRWRnZURlZmluaXRpb25bXSA9IFtdO1xyXG4gICAgY29uc3Qgbm9kZXNMaXN0UyA9IG5ldyBTZXQoXHJcbiAgICAgIGFsbE5vZGVzLm1hcCgobm9kZSkgPT4gdGhpcy5hc1N0cmluZyhub2RlKSkuZmlsdGVyKChzKSA9PiBzKVxyXG4gICAgKTtcclxuICAgIG5ld05vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgY29uc3QgbmFtZSA9IHRoaXMuYXNTdHJpbmcobm9kZSk7XHJcbiAgICAgIGlmICghdGhpcy5ncmFwaC5oYXNOb2RlKG5hbWUpKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZ3JhcGguZm9yRWFjaE91dEVkZ2UoXHJcbiAgICAgICAgdGhpcy5hc1N0cmluZyhub2RlKSxcclxuICAgICAgICAoa2V5LCBhdHRyLCBzb3VyY2UsIHRhcmdldCkgPT4ge1xyXG4gICAgICAgICAgaWYgKG5vZGVzTGlzdFMuaGFzKHRhcmdldCkpIHtcclxuICAgICAgICAgICAgZWRnZXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgaWQ6IGBCQzoke3NvdXJjZX0tPiR7dGFyZ2V0fWAsXHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6IFZpeklkLnRvSWQoc291cmNlLCBTVE9SRV9JRCkgKyBcIi5tZFwiLFxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0OiBWaXpJZC50b0lkKHRhcmdldCwgU1RPUkVfSUQpICsgXCIubWRcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IGF0dHIuZmllbGQsXHJcbiAgICAgICAgICAgICAgICBkaXI6IGF0dHIuZGlyLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgY2xhc3NlczogYHR5cGUtJHthdHRyLmZpZWxkfSBkaXItJHthdHRyLmRpcn0gYnJlYWRjcnVtYnMkYCxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGVkZ2VzKTtcclxuICB9XHJcblxyXG4gIGdldEV2ZW50cyh2aWV3OiBJSnVnZ2wpOiBEYXRhU3RvcmVFdmVudHMge1xyXG4gICAgcmV0dXJuIG5ldyBCQ1N0b3JlRXZlbnRzKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXROZWlnaGJvdXJob29kKFxyXG4gICAgbm9kZUlkczogVml6SWRbXSxcclxuICAgIHZpZXc6IElKdWdnbFxyXG4gICk6IFByb21pc2U8Y3l0b3NjYXBlLk5vZGVEZWZpbml0aW9uW10+IHtcclxuICAgIGNvbnN0IG5ld19ub2RlcyA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBub2RlSWQgb2Ygbm9kZUlkcykge1xyXG4gICAgICBjb25zdCBuYW1lID0gbm9kZUlkLmlkLnNsaWNlKDAsIC0zKTtcclxuICAgICAgaWYgKCF0aGlzLmdyYXBoLmhhc05vZGUobmFtZSkpIHtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBmb3IgKGNvbnN0IG5ld19ub2RlIG9mIHRoaXMuZ3JhcGgubmVpZ2hib3JzKG5hbWUpKSB7XHJcbiAgICAgICAgbmV3X25vZGVzLnB1c2goXHJcbiAgICAgICAgICBhd2FpdCB0aGlzLmdldChuZXcgVml6SWQobmV3X25vZGUgKyBcIi5tZFwiLCBTVE9SRV9JRCksIHZpZXcpXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ld19ub2RlcztcclxuICB9XHJcblxyXG4gIHJlZnJlc2hOb2RlKGlkOiBWaXpJZCwgdmlldzogSUp1Z2dsKTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgc3RvcmVJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFNUT1JFX0lEO1xyXG4gIH1cclxuXHJcbiAgZ2V0KG5vZGVJZDogVml6SWQsIHZpZXc6IElKdWdnbCk6IFByb21pc2U8Y3l0b3NjYXBlLk5vZGVEZWZpbml0aW9uPiB7XHJcbiAgICBjb25zdCBmaWxlID0gdGhpcy5nZXRGaWxlKG5vZGVJZCk7XHJcbiAgICBsZXQgZGVwdGggPSAwO1xyXG4gICAgaWYgKHRoaXMuZGVwdGhNYXAgJiYgbm9kZUlkLmlkIGluIHRoaXMuZGVwdGhNYXApIHtcclxuICAgICAgZGVwdGggPSB0aGlzLmRlcHRoTWFwW25vZGVJZC5pZF07XHJcbiAgICB9XHJcbiAgICBpZiAoZmlsZSA9PT0gbnVsbCkge1xyXG4gICAgICBjb25zdCBkYW5nbGluZyA9IG5vZGVEYW5nbGluZyhub2RlSWQuaWQpO1xyXG4gICAgICBkYW5nbGluZy5kYXRhLmRlcHRoID0gZGVwdGg7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZGFuZ2xpbmcpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY2FjaGUgPSB0aGlzLmNhY2hlLmdldEZpbGVDYWNoZShmaWxlKTtcclxuICAgIGlmIChjYWNoZSA9PT0gbnVsbCkge1xyXG4gICAgICBpbmZvKFwicmV0dXJuaW5nIGVtcHR5IGNhY2hlXCIsIG5vZGVJZCk7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobm9kZURhbmdsaW5nKG5vZGVJZC5pZCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBub2RlRnJvbUZpbGUoZmlsZSwgdmlldy5wbHVnaW4sIHZpZXcuc2V0dGluZ3MsIG5vZGVJZC50b0lkKCkpLnRoZW4oXHJcbiAgICAgIChub2RlKSA9PiB7XHJcbiAgICAgICAgbm9kZS5kYXRhLmRlcHRoID0gZGVwdGg7XHJcbiAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSnVnZ2woXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICB0YXJnZXQ6IEhUTUxFbGVtZW50LFxyXG4gIGluaXRpYWxOb2Rlczogc3RyaW5nW10sXHJcbiAgYXJnczogSUp1Z2dsU2V0dGluZ3MsXHJcbiAgZGVwdGhNYXA6IHsgW3ZhbHVlOiBzdHJpbmddOiBudW1iZXIgfSA9IG51bGxcclxuKTogSUp1Z2dsIHtcclxuICB0cnkge1xyXG4gICAgY29uc3QganVnZ2xQbHVnaW4gPSBnZXRQbHVnaW4oYXBwKTtcclxuICAgIGlmICghanVnZ2xQbHVnaW4pIHtcclxuICAgICAgLy8gVE9ETzogRXJyb3IgaGFuZGxpbmdcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZm9yIChsZXQga2V5IGluIEpVR0dMX0NCX0RFRkFVTFRTKSB7XHJcbiAgICAgIGlmIChrZXkgaW4gYXJncyAmJiBhcmdzW2tleV0gPT09IHVuZGVmaW5lZClcclxuICAgICAgICBhcmdzW2tleV0gPSBKVUdHTF9DQl9ERUZBVUxUU1trZXldO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGJjU3RvcmUgPSBuZXcgQkNTdG9yZShcclxuICAgICAgcGx1Z2luLm1haW5HLFxyXG4gICAgICBhcHAubWV0YWRhdGFDYWNoZSxcclxuICAgICAgZGVwdGhNYXBcclxuICAgICk7XHJcbiAgICBjb25zdCBzdG9yZXM6IElKdWdnbFN0b3JlcyA9IHtcclxuICAgICAgY29yZVN0b3JlOiBiY1N0b3JlLFxyXG4gICAgICBkYXRhU3RvcmVzOiBbYmNTdG9yZV0sXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGp1Z2dsID0ganVnZ2xQbHVnaW4uY3JlYXRlSnVnZ2wodGFyZ2V0LCBhcmdzLCBzdG9yZXMsIGluaXRpYWxOb2Rlcyk7XHJcbiAgICBwbHVnaW4uYWRkQ2hpbGQoanVnZ2wpO1xyXG4gICAgaW5mbyh7IGp1Z2dsIH0pO1xyXG4gICAgcmV0dXJuIGp1Z2dsO1xyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICB3YXJuKHsgZXJyb3IgfSk7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHpvb21Ub1NvdXJjZShqdWdnbDogSUp1Z2dsLCBzb3VyY2U6IHN0cmluZykge1xyXG4gIGlmICghanVnZ2wpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAganVnZ2wub24oXCJ2aXpSZWFkeVwiLCAodml6KSA9PiB7XHJcbiAgICAvLyBBZnRlciBsYXlvdXQgaXMgZG9uZSwgY2VudGVyIG9uIHNvdXJjZSBub2RlXHJcbiAgICB2aXoub25lKFwibGF5b3V0c3RvcFwiLCAoZSkgPT4ge1xyXG4gICAgICBjb25zdCB2aXogPSBlLmN5O1xyXG4gICAgICBjb25zdCBub2RlID0gdml6LiRpZChWaXpJZC50b0lkKHNvdXJjZSArIFwiLm1kXCIsIFNUT1JFX0lEKSk7XHJcbiAgICAgIHZpei5hbmltYXRlKHtcclxuICAgICAgICBjZW50ZXI6IHtcclxuICAgICAgICAgIGVsZXM6IG5vZGUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkdXJhdGlvbjogMjUwLFxyXG4gICAgICAgIHF1ZXVlOiBmYWxzZSxcclxuICAgICAgICB6b29tOiAxLjcsXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHpvb21Ub0dyYXBoKGp1Z2dsOiBJSnVnZ2wpIHtcclxuICBqdWdnbC5vbihcInZpelJlYWR5XCIsICh2aXopID0+IHtcclxuICAgIHZpei5maXQodml6Lm5vZGVzKCkpO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVEZXB0aE1hcChcclxuICBwYXRoczogc3RyaW5nW11bXSxcclxuICBzb3VyY2U6IHN0cmluZyxcclxuICBvZmZzZXQgPSAwXHJcbik6IHsgW25hbWU6IHN0cmluZ106IG51bWJlciB9IHtcclxuICAvLyBUT0RPOiBJcyB0aGVyZSBhIEJDIGZ1bmN0aW9uIGZvciB0aGlzIGFscmVhZHk/XHJcbiAgbGV0IGRlcHRoTWFwOiB7IFt2YWx1ZTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcclxuICBkZXB0aE1hcFtzb3VyY2UgKyBcIi5tZFwiXSA9IDA7XHJcbiAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IG5hbWUgPSBwYXRoW2ldICsgXCIubWRcIjtcclxuICAgICAgY29uc3QgZGVwdGggPSBwYXRoLmxlbmd0aCAtIGkgLSAxICsgb2Zmc2V0O1xyXG4gICAgICBpZiAobmFtZSBpbiBkZXB0aE1hcCkge1xyXG4gICAgICAgIGRlcHRoTWFwW25hbWVdID0gTWF0aC5taW4oZGVwdGhNYXBbbmFtZV0sIGRlcHRoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBkZXB0aE1hcFtuYW1lXSA9IGRlcHRoO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIGRlcHRoTWFwO1xyXG59XHJcblxyXG5mdW5jdGlvbiB1cGRhdGVEZXB0aChqdWdnbDogSUp1Z2dsLCBkZXB0aDogbnVtYmVyKSB7XHJcbiAganVnZ2wudml6LiQoYFtkZXB0aD4ke2RlcHRofV1gKS5hZGRDbGFzcyhcImZpbHRlcmVkXCIpO1xyXG4gIGp1Z2dsLnZpei4kKGBbZGVwdGg8PSR7ZGVwdGh9XWApLnJlbW92ZUNsYXNzKFwiZmlsdGVyZWRcIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVKdWdnbFRyYWlsKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgdGFyZ2V0OiBIVE1MRWxlbWVudCxcclxuICBwYXRoczogc3RyaW5nW11bXSxcclxuICBzb3VyY2U6IHN0cmluZyxcclxuICBhcmdzOiBJSnVnZ2xTZXR0aW5nc1xyXG4pIHtcclxuICBjb25zdCB0b29sYmFyRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICB0b29sYmFyRGl2LmFkZENsYXNzKFwiY3ktdG9vbGJhclwiKTtcclxuICB0YXJnZXQuYXBwZW5kQ2hpbGQodG9vbGJhckRpdik7XHJcblxyXG4gIGNvbnN0IHNlY3REaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gIHNlY3REaXYuYWRkQ2xhc3MoXCJjeS10b29sYmFyLXNlY3Rpb25cIik7XHJcbiAgdG9vbGJhckRpdi5hcHBlbmRDaGlsZChzZWN0RGl2KTtcclxuXHJcbiAgY29uc3QgYW10Q2hpbGRyZW4gPSB0YXJnZXQuY2hpbGRyZW4ubGVuZ3RoO1xyXG5cclxuICBsZXQganVnZ2xVcDogSUp1Z2dsID0gbnVsbDtcclxuICBsZXQganVnZ2xEb3duOiBJSnVnZ2wgPSBudWxsO1xyXG5cclxuICBuZXcgSnVnZ2xCdXR0b24oe1xyXG4gICAgdGFyZ2V0OiBzZWN0RGl2LFxyXG4gICAgcHJvcHM6IHtcclxuICAgICAgaWNvbjogXCJcdTIxOTFcIixcclxuICAgICAgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgIGlmIChqdWdnbFVwKSB7XHJcbiAgICAgICAgICB0YXJnZXQuY2hpbGRyZW5bYW10Q2hpbGRyZW5dLmNsYXNzTGlzdC5yZW1vdmUoXCJqdWdnbC1oaWRlXCIpO1xyXG4gICAgICAgICAgZGVwdGhVcC4kc2V0KHsgdmlzaWJsZTogdHJ1ZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGp1Z2dsRG93bikge1xyXG4gICAgICAgICAgdGFyZ2V0LmNoaWxkcmVuW2FtdENoaWxkcmVuICsgMV0uY2xhc3NMaXN0LmFkZChcImp1Z2dsLWhpZGVcIik7XHJcbiAgICAgICAgICBkZXB0aERvd24uJHNldCh7IHZpc2libGU6IGZhbHNlIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICB0aXRsZTogXCJTaG93IHVwIGdyYXBoXCIsXHJcbiAgICB9LFxyXG4gIH0pO1xyXG5cclxuICBuZXcgSnVnZ2xCdXR0b24oe1xyXG4gICAgdGFyZ2V0OiBzZWN0RGl2LFxyXG4gICAgcHJvcHM6IHtcclxuICAgICAgaWNvbjogXCJcdTIxOTNcIixcclxuICAgICAgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgIGlmIChqdWdnbERvd24pIHtcclxuICAgICAgICAgIHRhcmdldC5jaGlsZHJlblthbXRDaGlsZHJlbiArIDFdLmNsYXNzTGlzdC5yZW1vdmUoXCJqdWdnbC1oaWRlXCIpO1xyXG4gICAgICAgICAgZGVwdGhVcC4kc2V0KHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgICAgICAgICBpZiAoanVnZ2xVcCkge1xyXG4gICAgICAgICAgICB0YXJnZXQuY2hpbGRyZW5bYW10Q2hpbGRyZW5dLmNsYXNzTGlzdC5hZGQoXCJqdWdnbC1oaWRlXCIpO1xyXG4gICAgICAgICAgICBkZXB0aERvd24uJHNldCh7IHZpc2libGU6IHRydWUgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHN1YiA9IGdldFN1YkluRGlycyhwbHVnaW4ubWFpbkcsIFwiZG93blwiLCBcInVwXCIpO1xyXG4gICAgICAgIGNvbnN0IGNsb3NlZCA9IGdldFJlZmxleGl2ZUNsb3N1cmUoc3ViLCBwbHVnaW4uc2V0dGluZ3MudXNlckhpZXJzKTtcclxuICAgICAgICBjb25zdCBzdWJDbG9zZWQgPSBnZXRTdWJJbkRpcnMoY2xvc2VkLCBcImRvd25cIik7XHJcblxyXG5cclxuICAgICAgICBjb25zdCB7IGNyZWF0ZUluZGV4SW5kZW50IH0gPSBwbHVnaW4uc2V0dGluZ3NcclxuICAgICAgICBjb25zdCBhbGxQYXRocyA9IGRmc0FsbFBhdGhzKHN1YkNsb3NlZCwgc291cmNlKTtcclxuICAgICAgICBjb25zdCBpbmRleCA9IGNyZWF0ZUluZGV4KGFsbFBhdGhzLCBmYWxzZSwgY3JlYXRlSW5kZXhJbmRlbnQpO1xyXG4gICAgICAgIGNvbnN0IGxpbmVzID0gaW5kZXhcclxuICAgICAgICAgIC5zcGxpdChcIlxcblwiKVxyXG4gICAgICAgICAgLm1hcCgobGluZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBbaW5kZW50LCAuLi5jb250ZW50XSA9IGxpbmUuc3BsaXQoXCItIFwiKTtcclxuICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQuam9pbihcIi0gXCIpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5maWx0ZXIoKHBhaXIpID0+IHBhaXIpO1xyXG4gICAgICAgIGxldCBkZXB0aE1hcERvd24gPSBjcmVhdGVEZXB0aE1hcChhbGxQYXRocywgc291cmNlKTtcclxuICAgICAgICBjb25zdCBtYXhEZXB0aERvd24gPSBNYXRoLm1heCguLi5PYmplY3QudmFsdWVzKGRlcHRoTWFwRG93bikpO1xyXG5cclxuICAgICAgICBkZXB0aERvd24gPSBuZXcgSnVnZ2xEZXB0aCh7XHJcbiAgICAgICAgICB0YXJnZXQ6IHRvb2xiYXJEaXYsXHJcbiAgICAgICAgICBwcm9wczoge1xyXG4gICAgICAgICAgICBtYXhEZXB0aDogbWF4RGVwdGhEb3duLFxyXG4gICAgICAgICAgICBvblVwZGF0ZURlcHRoOiAoZCkgPT4ge1xyXG4gICAgICAgICAgICAgIHVwZGF0ZURlcHRoKGp1Z2dsRG93biwgZCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGxldCBub2Rlc1MgPSBuZXcgU2V0KGxpbmVzKTtcclxuICAgICAgICBub2Rlc1MuYWRkKHNvdXJjZSk7XHJcbiAgICAgICAgY29uc3Qgbm9kZXMgPSBBcnJheS5mcm9tKG5vZGVzUykubWFwKChzKSA9PiBzICsgXCIubWRcIik7XHJcblxyXG4gICAgICAgIGNvbnN0IGFyZ3NEb3duID0gT2JqZWN0LmFzc2lnbih7fSwgYXJncyk7XHJcbiAgICAgICAgY29uc3QgbGF5b3V0ID0gcGx1Z2luLnNldHRpbmdzLmp1Z2dsTGF5b3V0O1xyXG4gICAgICAgIGlmIChsYXlvdXQgPT09IFwiaGllcmFyY2h5XCIpIHtcclxuICAgICAgICAgIGFyZ3NEb3duLmxheW91dCA9IHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICBuYW1lOiBcImRhZ3JlXCIsXHJcbiAgICAgICAgICAgIGFuaW1hdGU6IGZhbHNlLFxyXG4gICAgICAgICAgICByYW5rZXI6IChncmFwaCkgPT4ge1xyXG4gICAgICAgICAgICAgIE9iamVjdC5rZXlzKGdyYXBoLl9ub2RlcykuZm9yRWFjaCgoaWQpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBWaXpJZC5mcm9tSWQoaWQpLmlkO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5hbWUgaW4gZGVwdGhNYXBEb3duKSB7XHJcbiAgICAgICAgICAgICAgICAgIGdyYXBoLl9ub2Rlc1tpZF0ucmFuayA9IGRlcHRoTWFwRG93bltuYW1lXSArIDE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBncmFwaC5fbm9kZXNbaWRdLnJhbmsgPSAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgYXJnc0Rvd24ubGF5b3V0ID0gbGF5b3V0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBpc0ZkZ2QgPSBsYXlvdXQgPT09IFwiY29sYVwiIHx8IGxheW91dCA9PT0gXCJkMy1mb3JjZVwiO1xyXG4gICAgICAgIGlmIChpc0ZkZ2QpIHtcclxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgIGFyZ3NEb3duLmZkZ2RMYXlvdXQgPSBsYXlvdXQ7XHJcbiAgICAgICAgICBhcmdzRG93bi5sYXlvdXQgPSBcImZvcmNlLWRpcmVjdGVkXCI7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGFyZ3NEb3duLmF1dG9ab29tID0gdHJ1ZTtcclxuICAgICAgICAgIGFyZ3NEb3duLmFuaW1hdGVMYXlvdXQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGp1Z2dsRG93biA9IGNyZWF0ZUp1Z2dsKHBsdWdpbiwgdGFyZ2V0LCBub2RlcywgYXJnc0Rvd24sIGRlcHRoTWFwRG93bik7XHJcblxyXG4gICAgICAgIGlmIChpc0ZkZ2QpIHtcclxuICAgICAgICAgIHpvb21Ub1NvdXJjZShqdWdnbERvd24sIHNvdXJjZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHpvb21Ub0dyYXBoKGp1Z2dsRG93bik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoanVnZ2xVcCkge1xyXG4gICAgICAgICAgdGFyZ2V0LmNoaWxkcmVuW2FtdENoaWxkcmVuXS5hZGRDbGFzcyhcImp1Z2dsLWhpZGVcIik7XHJcbiAgICAgICAgICBkZXB0aFVwLiRzZXQoeyB2aXNpYmxlOiBmYWxzZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgICAgdGl0bGU6IFwiU2hvdyBkb3duIGdyYXBoXCIsXHJcbiAgICB9LFxyXG4gIH0pO1xyXG4gIGNvbnN0IGRlcHRoTWFwVXAgPSBjcmVhdGVEZXB0aE1hcChwYXRocywgc291cmNlLCAxKTtcclxuICBjb25zdCBtYXhEZXB0aFVwID0gTWF0aC5tYXgoLi4uT2JqZWN0LnZhbHVlcyhkZXB0aE1hcFVwKSk7XHJcblxyXG4gIGxldCBkZXB0aERvd246IEp1Z2dsRGVwdGg7XHJcbiAgY29uc3QgZGVwdGhVcCA9IG5ldyBKdWdnbERlcHRoKHtcclxuICAgIHRhcmdldDogdG9vbGJhckRpdixcclxuICAgIHByb3BzOiB7XHJcbiAgICAgIG1heERlcHRoOiBtYXhEZXB0aFVwLFxyXG4gICAgICBvblVwZGF0ZURlcHRoOiAoZCkgPT4ge1xyXG4gICAgICAgIHVwZGF0ZURlcHRoKGp1Z2dsVXAsIGQpO1xyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9KTtcclxuXHJcbiAgLy8gbmV3IEp1Z2dsQnV0dG9uKHtcclxuICAvLyAgICAgdGFyZ2V0OiBzZWN0RGl2LFxyXG4gIC8vICAgICBwcm9wczoge1xyXG4gIC8vICAgICAgICAgaWNvbjogXCJcdTI2RjZcIixcclxuICAvLyAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcclxuICAvLyAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImhlcmVcIilcclxuICAvLyAgICAgICAgICAgICB0YXJnZXQuY2hpbGRyZW5bMV0uYWRkQ2xhc3MoXCJqdWdnbC1mdWxsLXNjcmVlblwiKVxyXG4gIC8vICAgICAgICAgICAgIHRhcmdldC5jaGlsZHJlblsxXS5zZXRBdHRyKFwic3R5bGVcIiwgXCJcIik7XHJcbiAgLy8gICAgICAgICB9LFxyXG4gIC8vICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gIC8vICAgICAgICAgdGl0bGU6IFwiRnVsbCBoZWlnaHRcIlxyXG4gIC8vICAgICB9XHJcbiAgLy8gfSk7XHJcbiAgbGV0IG5vZGVzID0gQXJyYXkuZnJvbShcclxuICAgIG5ldyBTZXQocGF0aHMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBwcmV2LmNvbmNhdChjdXJyKSwgW10pKVxyXG4gICk7XHJcblxyXG4gIG5vZGVzLnB1c2goc291cmNlKTtcclxuICBub2RlcyA9IG5vZGVzLm1hcCgocykgPT4gcyArIFwiLm1kXCIpO1xyXG5cclxuICBjb25zdCBhcmdzVXA6IElKdWdnbFNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgYXJncyk7XHJcblxyXG4gIGNvbnN0IGxheW91dCA9IHBsdWdpbi5zZXR0aW5ncy5qdWdnbExheW91dDtcclxuICBpZiAobGF5b3V0ID09PSBcImhpZXJhcmNoeVwiKSB7XHJcbiAgICBhcmdzVXAubGF5b3V0ID0ge1xyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIG5hbWU6IFwiZGFncmVcIixcclxuICAgICAgYW5pbWF0ZTogZmFsc2UsXHJcbiAgICAgIHJhbmtlcjogKGdyYXBoKSA9PiB7XHJcbiAgICAgICAgT2JqZWN0LmtleXMoZ3JhcGguX25vZGVzKS5mb3JFYWNoKChpZCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgbmFtZSA9IFZpeklkLmZyb21JZChpZCkuaWQ7XHJcbiAgICAgICAgICBpZiAobmFtZSBpbiBkZXB0aE1hcFVwKSB7XHJcbiAgICAgICAgICAgIGdyYXBoLl9ub2Rlc1tpZF0ucmFuayA9IG1heERlcHRoVXAgLSBkZXB0aE1hcFVwW25hbWVdICsgMTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGdyYXBoLl9ub2Rlc1tpZF0ucmFuayA9IG1heERlcHRoVXAgKyAyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9IGVsc2Uge1xyXG4gICAgYXJnc1VwLmxheW91dCA9IGxheW91dDtcclxuICB9XHJcbiAgY29uc3QgaXNGZGdkID0gbGF5b3V0ID09PSBcImNvbGFcIiB8fCBsYXlvdXQgPT09IFwiZDMtZm9yY2VcIjtcclxuICBpZiAoaXNGZGdkKSB7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICBhcmdzVXAuZmRnZExheW91dCA9IGxheW91dDtcclxuICAgIGFyZ3NVcC5sYXlvdXQgPSBcImZvcmNlLWRpcmVjdGVkXCI7XHJcbiAgfSBlbHNlIHtcclxuICAgIGFyZ3NVcC5hdXRvWm9vbSA9IHRydWU7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICBhcmdzVXAuYW5pbWF0ZUxheW91dCA9IGZhbHNlO1xyXG4gIH1cclxuICBqdWdnbFVwID0gY3JlYXRlSnVnZ2wocGx1Z2luLCB0YXJnZXQsIG5vZGVzLCBhcmdzVXAsIGRlcHRoTWFwVXApO1xyXG4gIGlmIChpc0ZkZ2QpIHtcclxuICAgIHpvb21Ub1NvdXJjZShqdWdnbFVwLCBzb3VyY2UpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB6b29tVG9HcmFwaChqdWdnbFVwKTtcclxuICB9XHJcbn1cclxuIiwgImltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IHsgaW5mbyB9IGZyb20gXCJsb2dsZXZlbFwiO1xyXG5pbXBvcnQgeyBjb3B5IH0gZnJvbSBcIm9ic2lkaWFuLWNvbW11bml0eS1saWIvZGlzdC91dGlsc1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQgeyBkZnNBbGxQYXRocywgZ2V0U2lua3MsIGdldFN1YkluRGlycyB9IGZyb20gXCIuLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcbmltcG9ydCB7IGdldEN1cnJGaWxlLCBtYWtlV2lraSB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG4vKipcclxuICogUmV0dXJucyBhIGNvcHkgb2YgYGluZGV4YCwgZG9lc24ndCBtdXRhdGUuXHJcbiAqIEBwYXJhbSAge3N0cmluZ30gaW5kZXhcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRBbGlhc2VzVG9JbmRleChwbHVnaW46IEJDUGx1Z2luLCBpbmRleDogc3RyaW5nKSB7XHJcbiAgY29uc3QgeyBhbGlhc2VzSW5JbmRleCB9ID0gcGx1Z2luLnNldHRpbmdzO1xyXG5cclxuICBjb25zdCBsaW5lcyA9IGluZGV4LnNsaWNlKCkuc3BsaXQoXCJcXG5cIik7XHJcblxyXG4gIGlmIChhbGlhc2VzSW5JbmRleCkge1xyXG4gICAgZm9yIChsZXQgbGluZSBvZiBsaW5lcykge1xyXG4gICAgICBjb25zdCBbaW5kZW50LCAuLi5jb250ZW50XSA9IGxpbmUuc3BsaXQoXCItIFwiKTtcclxuICAgICAgY29uc3Qgbm90ZSA9IGNvbnRlbnQuam9pbihcIi0gXCIpO1xyXG4gICAgICBpZiAoIW5vdGUpIGNvbnRpbnVlO1xyXG5cclxuICAgICAgY29uc3QgY3VyckZpbGUgPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChub3RlLCBcIlwiKTtcclxuXHJcbiAgICAgIGlmIChjdXJyRmlsZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IGNhY2hlID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0RmlsZUNhY2hlKGN1cnJGaWxlKTtcclxuXHJcbiAgICAgICAgY29uc3QgYWxpYXM6IHN0cmluZ1tdID0gY2FjaGU/LmZyb250bWF0dGVyPy5hbGlhcyA/PyBbXTtcclxuICAgICAgICBjb25zdCBhbGlhc2VzOiBzdHJpbmdbXSA9IGNhY2hlPy5mcm9udG1hdHRlcj8uYWxpYXNlcyA/PyBbXTtcclxuXHJcbiAgICAgICAgY29uc3QgYWxsQWxpYXNlczogc3RyaW5nW10gPSBbLi4uW2FsaWFzXS5mbGF0KDMpLCAuLi5bYWxpYXNlc10uZmxhdCgzKV07XHJcbiAgICAgICAgaWYgKGFsbEFsaWFzZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICBsaW5lICs9IGAgKCR7YWxsQWxpYXNlcy5qb2luKFwiLCBcIil9KWA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBsaW5lcy5qb2luKFwiXFxuXCIpO1xyXG59XHJcblxyXG4vKipcclxuICogQ3JlYXRlIGFuIGluZGV4IG9mIGFsbCB0aGUgcGF0aHMgaW4gdGhlIGdyYXBoLlxyXG4gKiBAcGFyYW0gYWxsUGF0aHMgLSBBIGxpc3Qgb2YgYWxsIHBhdGhzIGZyb20gdGhlIHJvb3QgdG8gdGhlIGxlYXZlcy5cclxuICogQHBhcmFtIHtib29sZWFufSBhc1dpa2lsaW5rcyAtIFdoZXRoZXIgdG8gdXNlIHdpa2lsaW5rcyBpbnN0ZWFkIG9mIHBsYWluIHRleHQuXHJcbiAqIEByZXR1cm5zIEEgc3RyaW5nLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUluZGV4KFxyXG4gIGFsbFBhdGhzOiBzdHJpbmdbXVtdLFxyXG4gIGFzV2lraWxpbmtzOiBib29sZWFuLFxyXG4gIGluZGVudCA9IFwiICBcIlxyXG4pOiBzdHJpbmcge1xyXG4gIGxldCBpbmRleCA9IFwiXCI7XHJcbiAgY29uc3QgY29weSA9IGNsb25lRGVlcChhbGxQYXRocyk7XHJcbiAgY29uc3QgcmV2ZXJzZWQgPSBjb3B5Lm1hcCgocGF0aCkgPT4gcGF0aC5yZXZlcnNlKCkpO1xyXG4gIHJldmVyc2VkLmZvckVhY2goKHBhdGgpID0+IHBhdGguc2hpZnQoKSk7XHJcblxyXG4gIGNvbnN0IHJlYWxJbmRlbnQgPSBpbmRlbnQgPT09ICdcXFxcdCcgPyAnXFx0JyA6IGluZGVudDtcclxuXHJcbiAgY29uc3QgdmlzaXRlZDoge1xyXG4gICAgW25vZGU6IHN0cmluZ106IC8qKiBUaGUgZGVwdGhzIGF0IHdoaWNoIGBub2RlYCB3YXMgdmlzaXRlZCAqLyBudW1iZXJbXTtcclxuICB9ID0ge307XHJcblxyXG4gIHJldmVyc2VkLmZvckVhY2goKHBhdGgpID0+IHtcclxuICAgIGZvciAobGV0IGRlcHRoID0gMDsgZGVwdGggPCBwYXRoLmxlbmd0aDsgZGVwdGgrKykge1xyXG4gICAgICBjb25zdCBjdXJyTm9kZSA9IHBhdGhbZGVwdGhdO1xyXG5cclxuICAgICAgLy8gSWYgdGhhdCBub2RlIGhhcyBiZWVuIHZpc2l0ZWQgYmVmb3JlIGF0IHRoZSBjdXJyZW50IGRlcHRoXHJcbiAgICAgIGlmIChcclxuICAgICAgICB2aXNpdGVkLmhhc093blByb3BlcnR5KGN1cnJOb2RlKSAmJlxyXG4gICAgICAgIHZpc2l0ZWRbY3Vyck5vZGVdLmluY2x1ZGVzKGRlcHRoKVxyXG4gICAgICApIGNvbnRpbnVlXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGluZGV4ICs9IGAke3JlYWxJbmRlbnQucmVwZWF0KGRlcHRoKX0tICR7YXNXaWtpbGlua3MgPyBtYWtlV2lraShjdXJyTm9kZSkgOiBjdXJyTm9kZVxyXG4gICAgICAgICAgfVxcbmA7XHJcblxyXG4gICAgICAgIGlmICghdmlzaXRlZC5oYXNPd25Qcm9wZXJ0eShjdXJyTm9kZSkpIHZpc2l0ZWRbY3Vyck5vZGVdID0gW107XHJcbiAgICAgICAgdmlzaXRlZFtjdXJyTm9kZV0ucHVzaChkZXB0aCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuICByZXR1cm4gaW5kZXg7XHJcbn1cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb3B5TG9jYWxJbmRleChwbHVnaW46IEJDUGx1Z2luKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncywgY2xvc2VkRyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgd2lraWxpbmtJbmRleCwgY3JlYXRlSW5kZXhJbmRlbnQgfSA9IHNldHRpbmdzO1xyXG4gIGNvbnN0IHsgYmFzZW5hbWUgfSA9IGdldEN1cnJGaWxlKClcclxuXHJcbiAgY29uc3Qgb25seURvd25zID0gZ2V0U3ViSW5EaXJzKGNsb3NlZEcsIFwiZG93blwiKTtcclxuICBjb25zdCBhbGxQYXRocyA9IGRmc0FsbFBhdGhzKG9ubHlEb3ducywgYmFzZW5hbWUpO1xyXG4gIGNvbnN0IGluZGV4ID0gYWRkQWxpYXNlc1RvSW5kZXgocGx1Z2luLCBjcmVhdGVJbmRleChhbGxQYXRocywgd2lraWxpbmtJbmRleCwgY3JlYXRlSW5kZXhJbmRlbnQpKTtcclxuXHJcbiAgaW5mbyh7IGluZGV4IH0pO1xyXG4gIGF3YWl0IGNvcHkoaW5kZXgpO1xyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29weUdsb2JhbEluZGV4KHBsdWdpbjogQkNQbHVnaW4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzLCBjbG9zZWRHIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgeyB3aWtpbGlua0luZGV4LCBjcmVhdGVJbmRleEluZGVudCB9ID0gc2V0dGluZ3M7XHJcblxyXG4gIGNvbnN0IG9ubHlEb3ducyA9IGdldFN1YkluRGlycyhjbG9zZWRHLCBcImRvd25cIik7XHJcbiAgY29uc3Qgb25seVVwcyA9IGdldFN1YkluRGlycyhjbG9zZWRHLCBcInVwXCIpO1xyXG5cclxuICBjb25zdCBzaW5rcyA9IGdldFNpbmtzKG9ubHlVcHMpO1xyXG5cclxuICBsZXQgZ2xvYmFsSW5kZXggPSBcIlwiO1xyXG4gIHNpbmtzLmZvckVhY2goKHRlcm1pbmFsKSA9PiB7XHJcbiAgICBnbG9iYWxJbmRleCArPSB0ZXJtaW5hbCArIFwiXFxuXCI7XHJcbiAgICBjb25zdCBhbGxQYXRocyA9IGRmc0FsbFBhdGhzKG9ubHlEb3ducywgdGVybWluYWwpO1xyXG4gICAgZ2xvYmFsSW5kZXggKz1cclxuICAgICAgYWRkQWxpYXNlc1RvSW5kZXgocGx1Z2luLCBjcmVhdGVJbmRleChhbGxQYXRocywgd2lraWxpbmtJbmRleCwgY3JlYXRlSW5kZXhJbmRlbnQpKSArIFwiXFxuXCI7XHJcbiAgfSk7XHJcblxyXG4gIGluZm8oeyBnbG9iYWxJbmRleCB9KTtcclxuICBhd2FpdCBjb3B5KGdsb2JhbEluZGV4KTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGluZGV4VG9MaW5lUGFpcnMgPSAoXHJcbiAgaW5kZXg6IHN0cmluZyxcclxuICBmbGF0ID0gZmFsc2VcclxuKTogW3N0cmluZywgc3RyaW5nXVtdID0+XHJcbiAgaW5kZXhcclxuICAgIC5zcGxpdChcIlxcblwiKVxyXG4gICAgLm1hcCgobGluZSkgPT4ge1xyXG4gICAgICBjb25zdCBbaW5kZW50LCAuLi5jb250ZW50XSA9IGxpbmUuc3BsaXQoXCItIFwiKTtcclxuICAgICAgcmV0dXJuIFtmbGF0ID8gXCJcIiA6IGluZGVudCwgY29udGVudC5qb2luKFwiLSBcIildIGFzIFtcclxuICAgICAgICBzdHJpbmcsXHJcbiAgICAgICAgc3RyaW5nXHJcbiAgICAgIF07XHJcbiAgICB9KVxyXG4gICAgLmZpbHRlcigocGFpcikgPT4gcGFpclsxXSAhPT0gXCJcIik7XHJcbiIsICI8c2NyaXB0IGxhbmc9XCJ0c1wiPlxyXG4gIGV4cG9ydCBsZXQgaWNvbjtcclxuICBleHBvcnQgbGV0IG9uQ2xpY2s6ICgpID0+IHZvaWQ7XHJcbiAgZXhwb3J0IGxldCBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGV4cG9ydCBsZXQgdGl0bGUgPSBcIlwiO1xyXG5cclxuICAkOiByZW5kZXJlZEljb24gPSBpY29uO1xyXG48L3NjcmlwdD5cclxuXHJcbjxidXR0b25cclxuICB0eXBlPVwiYnV0dG9uXCJcclxuICBjbGFzcz1cImp1Z2dsLWJ1dHRvblwiXHJcbiAgb246Y2xpY2s9e29uQ2xpY2t9XHJcbiAgYXJpYS1sYWJlbD17dGl0bGV9XHJcbiAge2Rpc2FibGVkfVxyXG4+XHJcbiAge3JlbmRlcmVkSWNvbn1cclxuPC9idXR0b24+XHJcbiIsIG51bGwsIG51bGwsICI8c2NyaXB0IGxhbmc9XCJ0c1wiPlxyXG4gIGltcG9ydCBKdWdnbEJ1dHRvbiBmcm9tIFwiLi9KdWdnbEJ1dHRvbi5zdmVsdGVcIjtcclxuXHJcbiAgZXhwb3J0IGxldCB2aXNpYmxlID0gdHJ1ZTtcclxuICBleHBvcnQgbGV0IG1heERlcHRoOiBudW1iZXI7XHJcbiAgZXhwb3J0IGxldCBvblVwZGF0ZURlcHRoOiAoZGVwdGg6IG51bWJlcikgPT4gdm9pZDtcclxuXHJcbiAgbGV0IGRlcHRoID0gbWF4RGVwdGg7XHJcbjwvc2NyaXB0PlxyXG5cclxueyNpZiB2aXNpYmxlfVxyXG4gIDxkaXYgY2xhc3M9XCJjeS10b29sYmFyLXNlY3Rpb25cIj5cclxuICAgIDxKdWdnbEJ1dHRvblxyXG4gICAgICBpY29uPVwiLVwiXHJcbiAgICAgIGRpc2FibGVkPXtkZXB0aCA8PSAwfVxyXG4gICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgZGVwdGggLT0gMTtcclxuICAgICAgICBvblVwZGF0ZURlcHRoKGRlcHRoKTtcclxuICAgICAgfX1cclxuICAgIC8+XHJcblxyXG4gICAgPEp1Z2dsQnV0dG9uIGljb249e2RlcHRofSBkaXNhYmxlZD17dHJ1ZX0gb25DbGljaz17bnVsbH0gLz5cclxuXHJcbiAgICA8SnVnZ2xCdXR0b25cclxuICAgICAgaWNvbj1cIitcIlxyXG4gICAgICBkaXNhYmxlZD17ZGVwdGggPj0gbWF4RGVwdGh9XHJcbiAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICBkZXB0aCArPSAxO1xyXG4gICAgICAgIG9uVXBkYXRlRGVwdGgoZGVwdGgpO1xyXG4gICAgICB9fVxyXG4gICAgLz5cclxuICA8L2Rpdj5cclxuey9pZn1cclxuIiwgbnVsbCwgIjxzY3JpcHQgbGFuZz1cInRzXCI+XHJcbiAgaW1wb3J0IHsgcmVmcmVzaEluZGV4IH0gZnJvbSBcIi4uL3JlZnJlc2hJbmRleFwiO1xyXG4gIGltcG9ydCB0eXBlIE1hdHJpeFZpZXcgZnJvbSBcIi4uL1ZpZXdzL01hdHJpeFZpZXdcIjtcclxuXHJcbiAgZXhwb3J0IGxldCBtYXRyaXhWaWV3OiBNYXRyaXhWaWV3O1xyXG5cclxuICBjb25zdCB7IHBsdWdpbiB9ID0gbWF0cml4VmlldztcclxuICBjb25zdCB7IGFscGhhU29ydEFzYywgZW5hYmxlQWxwaGFTb3J0IH0gPSBwbHVnaW4uc2V0dGluZ3M7XHJcbjwvc2NyaXB0PlxyXG5cclxuPGJ1dHRvblxyXG4gIGNsYXNzPVwiQkMtcmVmcmVzaC1idXR0b25cIlxyXG4gIGFyaWEtbGFiZWw9XCJSZWZyZXNoIEluZGV4XCJcclxuICBvbjpjbGljaz17YXN5bmMgKCkgPT4gYXdhaXQgcmVmcmVzaEluZGV4KHBsdWdpbil9XHJcbj5cclxuICBcdTIxQkJcclxuPC9idXR0b24+XHJcblxyXG57I2lmIGVuYWJsZUFscGhhU29ydH1cclxuICA8YnV0dG9uXHJcbiAgICBjbGFzcz1cIkJDLXNvcnQtYnV0dG9uXCJcclxuICAgIGFyaWEtbGFiZWw9XCJBbHBoYWJldGljYWwgU29ydGluZyBPcmRlclwiXHJcbiAgICBvbjpjbGljaz17YXN5bmMgKCkgPT4ge1xyXG4gICAgICBwbHVnaW4uc2V0dGluZ3MuYWxwaGFTb3J0QXNjID0gIWFscGhhU29ydEFzYztcclxuICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICBhd2FpdCBtYXRyaXhWaWV3LmRyYXcoKTtcclxuICAgIH19XHJcbiAgPlxyXG4gICAge2FscGhhU29ydEFzYyA/IFwiXHUyMTk3XCIgOiBcIlx1MjE5OFwifVxyXG4gIDwvYnV0dG9uPlxyXG57L2lmfVxyXG5cclxuPHN0eWxlPlxyXG4gIGJ1dHRvbiB7XHJcbiAgICBwYWRkaW5nOiAxcHggNnB4IDJweCA2cHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcclxuICB9XHJcbjwvc3R5bGU+XHJcbiIsIG51bGwsICI8c2NyaXB0IGxhbmc9XCJ0c1wiPlxyXG4gIGltcG9ydCB0eXBlIHsgVEZpbGUgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuICBpbXBvcnQgeyBob3ZlclByZXZpZXcsIG9wZW5PclN3aXRjaCB9IGZyb20gXCJvYnNpZGlhbi1jb21tdW5pdHktbGliXCI7XHJcbiAgaW1wb3J0IE1hdHJpeEJ1dHRvbnMgZnJvbSBcIi4vTWF0cml4QnV0dG9ucy5zdmVsdGVcIjtcclxuICBpbXBvcnQgdHlwZSB7IFNxdWFyZVByb3BzIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuICBpbXBvcnQgeyBkcm9wUGF0aE5EZW5kcm9uIH0gZnJvbSBcIi4uL1V0aWxzL2dlbmVyYWxVdGlsc1wiO1xyXG4gIGltcG9ydCB0eXBlIE1hdHJpeFZpZXcgZnJvbSBcIi4uL1ZpZXdzL01hdHJpeFZpZXdcIjtcclxuXHJcbiAgZXhwb3J0IGxldCBoaWVyU3F1YXJlczogU3F1YXJlUHJvcHNbXVtdO1xyXG4gIGV4cG9ydCBsZXQgY3VyckZpbGU6IFRGaWxlO1xyXG4gIGV4cG9ydCBsZXQgbWF0cml4VmlldzogTWF0cml4VmlldztcclxuXHJcbiAgY29uc3QgeyBwbHVnaW4gfSA9IG1hdHJpeFZpZXc7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG5cclxuICBjb25zdCB7XHJcbiAgICBzaG93SW1wbGllZFJlbGF0aW9ucyxcclxuICAgIHJsTGVhZixcclxuICAgIHRyZWF0Q3Vyck5vZGVBc0ltcGxpZWRTaWJsaW5nLFxyXG4gICAgc2hvd1JlbGF0aW9uVHlwZSxcclxuICB9ID0gc2V0dGluZ3M7XHJcbjwvc2NyaXB0PlxyXG5cclxuPGRpdiBjbGFzcz1cIkJDLW1hdHJpeC1idXR0b25zXCI+XHJcbiAgPE1hdHJpeEJ1dHRvbnMge21hdHJpeFZpZXd9IC8+XHJcbjwvZGl2PlxyXG5cclxuPGRpdlxyXG4gIGNsYXNzPVwiQkMtTWF0cml4ICBtYXJrZG93bi1wcmV2aWV3LXZpZXcge2hpZXJTcXVhcmVzLmxlbmd0aFxyXG4gICAgPyAnJ1xyXG4gICAgOiAnQkMtZW1wdHktdmlldyd9XCJcclxuPlxyXG4gIHsjZWFjaCBoaWVyU3F1YXJlcyBhcyBzcXVhcmVzfVxyXG4gICAgPGRpdiBjbGFzcz1cIkJDLW1hdHJpeC1oaWVyXCI+XHJcbiAgICAgIHsjZWFjaCBzcXVhcmVzIGFzIHsgZmllbGQsIGltcGxpZWRJdGVtcywgcmVhbEl0ZW1zIH19XHJcbiAgICAgICAgeyNpZiByZWFsSXRlbXMubGVuZ3RoIHx8IChzaG93SW1wbGllZFJlbGF0aW9ucyAmJiBpbXBsaWVkSXRlbXMubGVuZ3RoKX1cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJCQy1NYXRyaXgtc3F1YXJlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJCQy1NYXRyaXgtaGVhZGVyc1wiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzcz1cIkJDLU1hdHJpeC1oZWFkZXJcIj57ZmllbGR9PC9oND5cclxuXHJcbiAgICAgICAgICAgICAgeyNpZiBzaG93UmVsYXRpb25UeXBlfVxyXG4gICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwiQkMtTWF0cml4LWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICB7cmVhbEl0ZW1zLmxlbmd0aCA/IFwiUmVhbFwiIDogXCJJbXBsaWVkXCJ9XHJcbiAgICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgIHsvaWZ9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB7I2lmIHJlYWxJdGVtcy5sZW5ndGh9XHJcbiAgICAgICAgICAgICAgPG9sPlxyXG4gICAgICAgICAgICAgICAgeyNlYWNoIHJlYWxJdGVtcyBhcyB7IGFsdCwgY2xzLCBpbXBsaWVkLCB0byB9fVxyXG4gICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBzdmVsdGUtaWdub3JlIGExMXktdW5rbm93bi1hcmlhLWF0dHJpYnV0ZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIHN2ZWx0ZS1pZ25vcmUgYTExeS1tb3VzZS1ldmVudHMtaGF2ZS1rZXktZXZlbnRzIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie2Nsc30ge2ltcGxpZWQgPz8gJyd9XCJcclxuICAgICAgICAgICAgICAgICAgICAgIG9uOmNsaWNrPXthc3luYyAoZSkgPT4gYXdhaXQgb3Blbk9yU3dpdGNoKHRvLCBlKX1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uOm1vdXNlb3Zlcj17KGV2ZW50KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBob3ZlclByZXZpZXcoZXZlbnQsIG1hdHJpeFZpZXcsIHRvKX1cclxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2FsdCA/IHRvIDogXCJcIn1cclxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWwtcG9zaXRpb249e3JsTGVhZiA/IFwibGVmdFwiIDogXCJyaWdodFwifVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHthbHQgPz8gZHJvcFBhdGhORGVuZHJvbih0bywgc2V0dGluZ3MpfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgey9lYWNofVxyXG4gICAgICAgICAgICAgIDwvb2w+XHJcbiAgICAgICAgICAgIHsvaWZ9XHJcblxyXG4gICAgICAgICAgICB7I2lmIHNob3dJbXBsaWVkUmVsYXRpb25zICYmIGltcGxpZWRJdGVtcy5sZW5ndGh9XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIkJDLU1hdHJpeC1oZWFkZXJzXCI+XHJcbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJCQy1NYXRyaXgtaGVhZGVyXCI+e1wiIFwifTwvaDQ+XHJcbiAgICAgICAgICAgICAgICB7I2lmIGltcGxpZWRJdGVtcy5sZW5ndGh9XHJcbiAgICAgICAgICAgICAgICAgIHsjaWYgc2hvd1JlbGF0aW9uVHlwZSAmJiByZWFsSXRlbXMubGVuZ3RofVxyXG4gICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cIkJDLU1hdHJpeC1oZWFkZXJcIj5JbXBsaWVkPC9oNj5cclxuICAgICAgICAgICAgICAgICAgey9pZn1cclxuICAgICAgICAgICAgICAgIHsvaWZ9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPG9sIHN0YXJ0PXtyZWFsSXRlbXMubGVuZ3RoICsgMX0+XHJcbiAgICAgICAgICAgICAgICB7I2VhY2ggaW1wbGllZEl0ZW1zIGFzIHsgYWx0LCBjbHMsIGltcGxpZWQsIHRvLCBwYXJlbnQgfX1cclxuICAgICAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJCQy1JbXBsaWVkIHt0cmVhdEN1cnJOb2RlQXNJbXBsaWVkU2libGluZyAmJlxyXG4gICAgICAgICAgICAgICAgICAgIHRvID09PSBjdXJyRmlsZS5iYXNlbmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgPyAnQkMtYWN0aXZlLW5vdGUnXHJcbiAgICAgICAgICAgICAgICAgICAgICA6ICcnfVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIHN2ZWx0ZS1pZ25vcmUgYTExeS11bmtub3duLWFyaWEtYXR0cmlidXRlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gc3ZlbHRlLWlnbm9yZSBhMTF5LW1vdXNlLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7Y2xzfSB7aW1wbGllZCA/PyAnJ31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgb246Y2xpY2s9e2FzeW5jIChlKSA9PiBhd2FpdCBvcGVuT3JTd2l0Y2godG8sIGUpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgb246bW91c2VvdmVyPXsoZSkgPT4gaG92ZXJQcmV2aWV3KGUsIG1hdHJpeFZpZXcsIHRvKX1cclxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9eyhhbHQgPyBgJHt0b31cXG5gIDogXCJcIikgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAocGFyZW50ID8gXCJcdTIxOTEgXCIgKyBwYXJlbnQgOiBcIlwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWwtcG9zaXRpb249e3JsTGVhZiA/IFwibGVmdFwiIDogXCJyaWdodFwifVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHthbHQgPz8gZHJvcFBhdGhORGVuZHJvbih0bywgc2V0dGluZ3MpfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgey9lYWNofVxyXG4gICAgICAgICAgICAgIDwvb2w+XHJcbiAgICAgICAgICAgIHsvaWZ9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB7L2lmfVxyXG4gICAgICB7L2VhY2h9XHJcbiAgICA8L2Rpdj5cclxuICB7L2VhY2h9XHJcbjwvZGl2PlxyXG5cclxuPHN0eWxlPlxyXG4gIC5CQy1NYXRyaXgge1xyXG4gICAgcGFkZGluZzogNXB4O1xyXG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbiAgfVxyXG4gIC5CQy1NYXRyaXggPiBkaXYge1xyXG4gICAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tYmFja2dyb3VuZC1tb2RpZmllci1ib3JkZXIpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gICAgLyogdGV4dC1hbGlnbjogY2VudGVyOyAqL1xyXG4gICAgbWFyZ2luOiAzcHg7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xyXG4gIH1cclxuXHJcbiAgLyogLkJDLW1hdHJpeCBkaXYge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICB9ICovXHJcblxyXG4gIC5CQy1NYXRyaXgtc3F1YXJlIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJhY2tncm91bmQtbW9kaWZpZXItYm9yZGVyKTtcclxuICB9XHJcblxyXG4gIC5CQy1NYXRyaXgtaGVhZGVycyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcbiAgLkJDLU1hdHJpeC1oZWFkZXIge1xyXG4gICAgbWFyZ2luOiAycHg7XHJcbiAgICBwYWRkaW5nOiAwcHggMTBweDtcclxuICB9XHJcbiAgaDQuQkMtTWF0cml4LWhlYWRlcjpmaXJzdC1sZXR0ZXIge1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgfVxyXG5cclxuICBvbCB7XHJcbiAgICBtYXJnaW46IDNweDtcclxuICAgIHBhZGRpbmctbGVmdDogMzBweDtcclxuICB9XHJcblxyXG4gIC5CQy1NYXRyaXggbGkge1xyXG4gICAgbWFyZ2luOiAwLjFlbTtcclxuICB9XHJcbjwvc3R5bGU+XHJcbiIsICJpbXBvcnQgdHlwZSB7IE11bHRpR3JhcGggfSBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgeyBBUlJPV19ESVJFQ1RJT05TLCBESVJFQ1RJT05TIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB0eXBlIHsgQkNBUElJLCBEaXJlY3Rpb25zLCBVc2VySGllciB9IGZyb20gXCIuL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4vbWFpblwiO1xyXG5pbXBvcnQgeyBnZXRNYXRyaXhOZWlnaGJvdXJzIH0gZnJvbSBcIi4vVmlld3MvTWF0cml4Vmlld1wiO1xyXG5pbXBvcnQge1xyXG4gIGJ1aWxkT2JzR3JhcGgsXHJcbiAgZGZzQWxsUGF0aHMsXHJcbiAgZ2V0U3ViRm9yRmllbGRzLFxyXG4gIGdldFN1YkluRGlycyxcclxufSBmcm9tIFwiLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcbmltcG9ydCB7XHJcbiAgZ2V0RmllbGRJbmZvLFxyXG4gIGdldEZpZWxkcyxcclxuICBnZXRPcHBEaXIsXHJcbiAgZ2V0T3BwRmllbGRzLFxyXG4gIGl0ZXJhdGVIaWVycyxcclxufSBmcm9tIFwiLi9VdGlscy9IaWVyVXRpbHNcIjtcclxuaW1wb3J0IHsgY3JlYXRlSW5kZXggfSBmcm9tIFwiLi9Db21tYW5kcy9DcmVhdGVJbmRleFwiO1xyXG5pbXBvcnQgeyByZWZyZXNoSW5kZXggfSBmcm9tIFwiLi9yZWZyZXNoSW5kZXhcIjtcclxuaW1wb3J0IHsgZ2V0Q3VyckZpbGUgfSBmcm9tIFwiLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQkNBUEkgaW1wbGVtZW50cyBCQ0FQSUkge1xyXG5cclxuICBwbHVnaW46IEJDUGx1Z2luO1xyXG4gIG1haW5HOiBNdWx0aUdyYXBoO1xyXG4gIGNsb3NlZEc6IE11bHRpR3JhcGg7XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwbHVnaW46IEJDUGx1Z2luKSB7XHJcblxyXG4gICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XHJcbiAgICB0aGlzLm1haW5HID0gdGhpcy5wbHVnaW4ubWFpbkc7XHJcbiAgICB0aGlzLmNsb3NlZEcgPSB0aGlzLnBsdWdpbi5jbG9zZWRHO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIERJUkVDVElPTlMgPSBESVJFQ1RJT05TO1xyXG4gIHB1YmxpYyBBUlJPV19ESVJFQ1RJT05TID0gQVJST1dfRElSRUNUSU9OUztcclxuXHJcbiAgcHVibGljIGJ1aWxkT2JzR3JhcGggPSBidWlsZE9ic0dyYXBoO1xyXG5cclxuICBwdWJsaWMgcmVmcmVzaEluZGV4ID0gYXN5bmMgKCkgPT4gYXdhaXQgcmVmcmVzaEluZGV4KHRoaXMucGx1Z2luKVxyXG5cclxuICBwdWJsaWMgZ2V0U3ViSW5EaXJzID0gKGRpcnM6IERpcmVjdGlvbnNbXSwgZyA9IHRoaXMubWFpbkcpID0+XHJcbiAgICBnZXRTdWJJbkRpcnMoZywgLi4uZGlycyk7XHJcblxyXG4gIHB1YmxpYyBnZXRTdWJGb3JGaWVsZHMgPSAoZmllbGRzOiBzdHJpbmdbXSwgZyA9IHRoaXMubWFpbkcpID0+XHJcbiAgICBnZXRTdWJGb3JGaWVsZHMoZywgZmllbGRzKTtcclxuXHJcbiAgcHVibGljIGRmc0FsbFBhdGhzID0gKFxyXG4gICAgZnJvbU5vZGUgPSBnZXRDdXJyRmlsZSgpPy5iYXNlbmFtZSxcclxuICAgIGcgPSB0aGlzLm1haW5HXHJcbiAgKSA9PiBkZnNBbGxQYXRocyhnLCBmcm9tTm9kZSk7XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVJbmRleCA9IChhbGxQYXRoczogc3RyaW5nW11bXSwgd2lraWxpbmtzID0gZmFsc2UsIGluZGVudCA9ICcgICcpID0+XHJcbiAgICBjcmVhdGVJbmRleChhbGxQYXRocywgd2lraWxpbmtzLCBpbmRlbnQpO1xyXG5cclxuICBwdWJsaWMgZ2V0TWF0cml4TmVpZ2hib3VycyA9IChcclxuICAgIGZyb21Ob2RlID0gZ2V0Q3VyckZpbGUoKT8uYmFzZW5hbWVcclxuICApID0+IGdldE1hdHJpeE5laWdoYm91cnModGhpcy5wbHVnaW4sIGZyb21Ob2RlKTtcclxuXHJcbiAgcHVibGljIGdldE9wcERpciA9IChkaXI6IERpcmVjdGlvbnMpID0+IGdldE9wcERpcihkaXIpO1xyXG5cclxuICBwdWJsaWMgZ2V0T3BwRmllbGRzID0gKGZpZWxkOiBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IHsgZmllbGREaXIgfSA9IGdldEZpZWxkSW5mbyh0aGlzLnBsdWdpbi5zZXR0aW5ncy51c2VySGllcnMsIGZpZWxkKTtcclxuICAgIHJldHVybiBnZXRPcHBGaWVsZHModGhpcy5wbHVnaW4uc2V0dGluZ3MudXNlckhpZXJzLCBmaWVsZCwgZmllbGREaXIpO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBnZXRGaWVsZEluZm8gPSAoZmllbGQ6IHN0cmluZykgPT5cclxuICAgIGdldEZpZWxkSW5mbyh0aGlzLnBsdWdpbi5zZXR0aW5ncy51c2VySGllcnMsIGZpZWxkKTtcclxuICBwdWJsaWMgZ2V0RmllbGRzID0gKGRpcj86IERpcmVjdGlvbnMpID0+XHJcbiAgICBnZXRGaWVsZHModGhpcy5wbHVnaW4uc2V0dGluZ3MudXNlckhpZXJzLCBkaXIgPz8gXCJhbGxcIik7XHJcblxyXG4gIHB1YmxpYyBpdGVyYXRlSGllcnMoXHJcbiAgICBjYjogKGhpZXI6IFVzZXJIaWVyLCBkaXI6IERpcmVjdGlvbnMsIGZpZWxkOiBzdHJpbmcpID0+IHZvaWRcclxuICApIHtcclxuICAgIGl0ZXJhdGVIaWVycyh0aGlzLnBsdWdpbi5zZXR0aW5ncy51c2VySGllcnMsIGNiKTtcclxuICB9XHJcbn1cclxuIiwgImltcG9ydCB7IEZ1enp5TWF0Y2gsIEZ1enp5U3VnZ2VzdE1vZGFsLCBOb3RpY2UgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHsgSGllcmFyY2h5Tm90ZU1hbmlwdWxhdG9yIH0gZnJvbSBcIi4vSGllcmFyY2h5Tm90ZU1hbmlwdWxhdG9yXCI7XHJcbmltcG9ydCB0eXBlIHsgQkNTZXR0aW5ncyB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi8uLi9tYWluXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgSGllcmFyY2h5Tm90ZVNlbGVjdG9yTW9kYWwgZXh0ZW5kcyBGdXp6eVN1Z2dlc3RNb2RhbDxzdHJpbmc+IHtcclxuICBwbHVnaW46IEJDUGx1Z2luO1xyXG4gIHNldHRpbmdzOiBCQ1NldHRpbmdzO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwbHVnaW46IEJDUGx1Z2luKSB7XHJcbiAgICBzdXBlcihhcHApO1xyXG4gICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XHJcbiAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5wbHVnaW4uc2V0dGluZ3M7XHJcbiAgfVxyXG5cclxuICBvbk9wZW4oKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFBsYWNlaG9sZGVyKFwiSE4gQ2hvb3NlclwiKTtcclxuICAgIGNvbnN0IHsgaGllcmFyY2h5Tm90ZXMgfSA9IHRoaXMuc2V0dGluZ3M7XHJcbiAgICBpZiAoaGllcmFyY2h5Tm90ZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgbmV3IE5vdGljZShcIk5vIGhpZXJhcmNoeSBub3RlcyBmb3VuZFwiKTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIGhpZXJhcmNoeU5vdGVzLmxlbmd0aCA9PT0gMSAmJlxyXG4gICAgICAhaGllcmFyY2h5Tm90ZXNbMF0uZW5kc1dpdGgoXCIvXCIpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICBuZXcgSGllcmFyY2h5Tm90ZU1hbmlwdWxhdG9yKFxyXG4gICAgICAgIHRoaXMucGx1Z2luLFxyXG4gICAgICAgIGhpZXJhcmNoeU5vdGVzWzBdXHJcbiAgICAgICkub3BlbigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc3VwZXIub25PcGVuKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtcygpOiBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCB7IGhpZXJhcmNoeU5vdGVzIH0gPSB0aGlzLnNldHRpbmdzO1xyXG4gICAgaWYgKGhpZXJhcmNoeU5vdGVzLmxlbmd0aCA9PSAxICYmIGhpZXJhcmNoeU5vdGVzWzBdLmVuZHNXaXRoKFwiL1wiKSkge1xyXG4gICAgICAvLyB0aGlzIGlzIGEgZm9sZGVyXHJcbiAgICAgIGxldCBmb2xkZXIgPSBoaWVyYXJjaHlOb3Rlc1swXS5zbGljZSgwLCAtMSk7XHJcbiAgICAgIGlmIChhcHAucGx1Z2lucy5wbHVnaW5zLmRhdGF2aWV3ICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGxldCBwYWdlcyA9IGFwcC5wbHVnaW5zLnBsdWdpbnMuZGF0YXZpZXcuYXBpLnBhZ2VzKFxyXG4gICAgICAgICAgYFwiJHtmb2xkZXJ9XCJgXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gcGFnZXMudmFsdWVzLm1hcCgocGFnZSkgPT4gcGFnZS5maWxlLnBhdGgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ldyBOb3RpY2UoXCJtYWtlIHN1cmUgeW91IGhhdmUgZGF0YXZpZXcgZW5hYmxlZFwiKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHJldHVybiBoaWVyYXJjaHlOb3RlcztcclxuICB9XHJcblxyXG4gIGdldEl0ZW1UZXh0KGl0ZW06IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7aXRlbX1gO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyU3VnZ2VzdGlvbihpdGVtOiBGdXp6eU1hdGNoPHN0cmluZz4sIGVsOiBIVE1MRWxlbWVudCkge1xyXG4gICAgc3VwZXIucmVuZGVyU3VnZ2VzdGlvbihpdGVtLCBlbCk7XHJcbiAgfVxyXG5cclxuICBvbkNob29zZUl0ZW0oaXRlbTogc3RyaW5nLCBldnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBuZXcgSGllcmFyY2h5Tm90ZU1hbmlwdWxhdG9yKHRoaXMucGx1Z2luLCBpdGVtKS5vcGVuKCk7XHJcbiAgICB0aGlzLmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiIsICJpbXBvcnQgeyBlcnJvciwgaW5mbyB9IGZyb20gXCJsb2dsZXZlbFwiO1xyXG5pbXBvcnQge1xyXG4gIEZ1enp5TWF0Y2gsXHJcbiAgRnV6enlTdWdnZXN0TW9kYWwsXHJcbiAgTGlzdEl0ZW1DYWNoZSxcclxuICBNYXJrZG93blZpZXcsXHJcbiAgTm90aWNlLFxyXG4gIFRGaWxlLFxyXG59IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgdHlwZSB7IEJDU2V0dGluZ3MgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vLi4vbWFpblwiO1xyXG5pbXBvcnQgeyBkcm9wV2lraWxpbmtzIH0gZnJvbSBcIi4uLy4uL1V0aWxzL09ic2lkaWFuVXRpbHNcIjtcclxuaW1wb3J0IHsgTW9kaWZ5SGllckl0ZW1Nb2RhbCB9IGZyb20gXCIuL01vZGlmeUhpZXJJdGVtTW9kYWxcIjtcclxuXHJcbmludGVyZmFjZSBITkl0ZW0ge1xyXG4gIGRlcHRoOiBudW1iZXI7XHJcbiAgbGluZTogc3RyaW5nO1xyXG4gIGxpbmVObzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSGllcmFyY2h5Tm90ZU1hbmlwdWxhdG9yIGV4dGVuZHMgRnV6enlTdWdnZXN0TW9kYWw8SE5JdGVtPiB7XHJcbiAgcGx1Z2luOiBCQ1BsdWdpbjtcclxuICBzZXR0aW5nczogQkNTZXR0aW5ncztcclxuICBoaWVyTm90ZU5hbWU6IHN0cmluZztcclxuICBsaW5lczogc3RyaW5nW107XHJcbiAgbGlzdEl0ZW1zOiBMaXN0SXRlbUNhY2hlW107XHJcbiAgZmlsZTogVEZpbGU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHBsdWdpbjogQkNQbHVnaW4sIGhpZXJOb3RlTmFtZTogc3RyaW5nKSB7XHJcbiAgICBzdXBlcihhcHApO1xyXG4gICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XHJcbiAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5wbHVnaW4uc2V0dGluZ3M7XHJcbiAgICB0aGlzLmhpZXJOb3RlTmFtZSA9IGhpZXJOb3RlTmFtZTtcclxuXHJcbiAgICBjb25zdCBjaG9vc2VPdmVycmlkZSA9IChldnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICB0aGlzLmNob29zZXIudXNlU2VsZWN0ZWRJdGVtKGV2dCk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH07XHJcbiAgICB0aGlzLnNjb3BlLnJlZ2lzdGVyKFtdLCBcIkRlbGV0ZVwiLCBjaG9vc2VPdmVycmlkZSk7XHJcbiAgICB0aGlzLnNjb3BlLnJlZ2lzdGVyKFtcIlNoaWZ0XCJdLCBcIkFycm93VXBcIiwgY2hvb3NlT3ZlcnJpZGUpO1xyXG4gICAgdGhpcy5zY29wZS5yZWdpc3RlcihbXCJTaGlmdFwiXSwgXCJBcnJvd1JpZ2h0XCIsIGNob29zZU92ZXJyaWRlKTtcclxuICAgIHRoaXMuc2NvcGUucmVnaXN0ZXIoW1wiU2hpZnRcIl0sIFwiQXJyb3dEb3duXCIsIGNob29zZU92ZXJyaWRlKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG9uT3BlbigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuc2V0UGxhY2Vob2xkZXIoXCJITiBNYW5pcHVsYXRvclwiKTtcclxuICAgIHRoaXMuc2V0SW5zdHJ1Y3Rpb25zKFtcclxuICAgICAgeyBjb21tYW5kOiBcIlNoaWZ0ICsgRW50ZXJcIiwgcHVycG9zZTogXCJKdW1wIHRvIGl0ZW1cIiB9LFxyXG4gICAgICB7IGNvbW1hbmQ6IFwiU2hpZnQgKyBcdTIxOTFcIiwgcHVycG9zZTogXCJBZGQgcGFyZW50XCIgfSxcclxuICAgICAgeyBjb21tYW5kOiBcIlNoaWZ0ICsgXHUyMTkyXCIsIHB1cnBvc2U6IFwiQWRkIHNpYmxpbmdcIiB9LFxyXG4gICAgICB7IGNvbW1hbmQ6IFwiU2hpZnQgKyBcdTIxOTMgLyBFbnRlciAvIENsaWNrXCIsIHB1cnBvc2U6IFwiQWRkIGNoaWxkXCIgfSxcclxuICAgICAgeyBjb21tYW5kOiBcIkRlbGV0ZVwiLCBwdXJwb3NlOiBcIkRlbGV0ZSBpdGVtXCIgfSxcclxuICAgIF0pO1xyXG5cclxuICAgIHRoaXMuZmlsZSA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KHRoaXMuaGllck5vdGVOYW1lLCBcIlwiKTtcclxuICAgIGlmICghdGhpcy5maWxlKSB0aGlzLmxpbmVzID0gW107XHJcblxyXG4gICAgY29uc29sZS5sb2codGhpcyk7XHJcbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgYXBwLnZhdWx0LmNhY2hlZFJlYWQodGhpcy5maWxlKTtcclxuICAgIHRoaXMubGluZXMgPSBjb250ZW50LnNwbGl0KFwiXFxuXCIpO1xyXG5cclxuICAgIHRoaXMubGlzdEl0ZW1zID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0RmlsZUNhY2hlKHRoaXMuZmlsZSkubGlzdEl0ZW1zO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKHRoaXMpO1xyXG4gICAgc3VwZXIub25PcGVuKCk7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtcygpOiBITkl0ZW1bXSB7XHJcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMubGlzdEl0ZW1zXHJcbiAgICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBjb25zdCBpID0gaXRlbS5wb3NpdGlvbi5zdGFydC5saW5lO1xyXG4gICAgICAgIHJldHVybiB7IGksIGxpbmU6IHRoaXMubGluZXNbaV0gfTtcclxuICAgICAgfSlcclxuICAgICAgLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHNwbGl0cyA9IGl0ZW0ubGluZS5zcGxpdChcIi0gXCIpO1xyXG4gICAgICAgIGNvbnN0IGRlcHRoID0gc3BsaXRzWzBdLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBsaW5lID0gc3BsaXRzLnNsaWNlKDEpLmpvaW4oXCItIFwiKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHsgZGVwdGgsIGxpbmUsIGxpbmVObzogaXRlbS5pIH07XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIGluZm8oaXRlbXMpO1xyXG4gICAgcmV0dXJuIGl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbVRleHQoaXRlbTogSE5JdGVtKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHtcIiBcIi5yZXBlYXQoaXRlbS5kZXB0aCl9LSAke2Ryb3BXaWtpbGlua3MoaXRlbS5saW5lKX1gO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyU3VnZ2VzdGlvbihpdGVtOiBGdXp6eU1hdGNoPEhOSXRlbT4sIGVsOiBIVE1MRWxlbWVudCkge1xyXG4gICAgc3VwZXIucmVuZGVyU3VnZ2VzdGlvbihpdGVtLCBlbCk7XHJcbiAgICBlbC5pbm5lclRleHQgPSBgJHtcIiBcIi5yZXBlYXQoaXRlbS5pdGVtLmRlcHRoKX0tICR7ZHJvcFdpa2lsaW5rcyhcclxuICAgICAgaXRlbS5pdGVtLmxpbmVcclxuICAgICl9YDtcclxuICB9XHJcblxyXG4gIGFzeW5jIGRlbGV0ZUl0ZW0oaXRlbTogSE5JdGVtKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLmxpbmVzLnNwbGljZShpdGVtLmxpbmVObywgMSk7XHJcbiAgICAgIHRoaXMubGlzdEl0ZW1zLnNwbGljZShpdGVtLmxpbmVObywgMSk7XHJcbiAgICAgIGF3YWl0IGFwcC52YXVsdC5tb2RpZnkodGhpcy5maWxlLCB0aGlzLmxpbmVzLmpvaW4oXCJcXG5cIikpO1xyXG4gICAgICBuZXcgTm90aWNlKFwiSXRlbSBkZWxldGVkIFN1Y2Nlc2Z1bGx5XCIpO1xyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgIGVycm9yKGVycik7XHJcbiAgICAgIG5ldyBOb3RpY2UoXCJBbiBlcnJvciBvY2N1cmVkLiBQbGVhc2UgY2hlY2sgdGhlIGNvbnNvbGVcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNob29zZUl0ZW0oaXRlbTogSE5JdGVtLCBldnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoZXZ0IGluc3RhbmNlb2YgS2V5Ym9hcmRFdmVudCAmJiBldnQua2V5ID09PSBcIkRlbGV0ZVwiKSB7XHJcbiAgICAgIHRoaXMuZGVsZXRlSXRlbShpdGVtKTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIGV2dCBpbnN0YW5jZW9mIEtleWJvYXJkRXZlbnQgJiZcclxuICAgICAgZXZ0LmtleSA9PSBcIkVudGVyXCIgJiZcclxuICAgICAgZXZ0LnNoaWZ0S2V5XHJcbiAgICApIHtcclxuICAgICAgY29uc3QgdmlldyA9IGFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpO1xyXG4gICAgICBjb25zdCB7IGVkaXRvciB9ID0gdmlldyA/PyB7fTtcclxuICAgICAgaWYgKCFlZGl0b3IpIHJldHVybjtcclxuICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgIHZpZXcubGVhZi5vcGVuRmlsZSh0aGlzLmZpbGUsIHsgYWN0aXZlOiB0cnVlLCBtb2RlOiBcInNvdXJjZVwiIH0pO1xyXG4gICAgICBlZGl0b3Iuc2V0Q3Vyc29yKHsgbGluZTogaXRlbS5saW5lTm8sIGNoOiBpdGVtLmRlcHRoICsgMiB9KTtcclxuICAgIH0gZWxzZSBpZiAoZXZ0IGluc3RhbmNlb2YgS2V5Ym9hcmRFdmVudCB8fCBldnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgIGxldCByZWw6IFwidXBcIiB8IFwiZG93blwiIHwgXCJzYW1lXCI7XHJcbiAgICAgIGlmIChldnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50ICYmIGV2dC50eXBlID09IFwiY2xpY2tcIikgcmVsID0gXCJkb3duXCI7XHJcbiAgICAgIGlmIChldnQgaW5zdGFuY2VvZiBLZXlib2FyZEV2ZW50KSBpZiAoZXZ0LmtleSA9PT0gXCJFbnRlclwiKSByZWwgPSBcImRvd25cIjtcclxuICAgICAgaWYgKGV2dCBpbnN0YW5jZW9mIEtleWJvYXJkRXZlbnQgJiYgZXZ0LnNoaWZ0S2V5KSB7XHJcbiAgICAgICAgaWYgKGV2dC5rZXkgPT09IFwiQXJyb3dVcFwiKSByZWwgPSBcInVwXCI7XHJcbiAgICAgICAgaWYgKGV2dC5rZXkgPT09IFwiQXJyb3dEb3duXCIpIHJlbCA9IFwiZG93blwiO1xyXG4gICAgICAgIGlmIChldnQua2V5ID09PSBcIkFycm93UmlnaHRcIikgcmVsID0gXCJzYW1lXCI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG5ldyBNb2RpZnlIaWVySXRlbU1vZGFsKFxyXG4gICAgICAgIHRoaXMucGx1Z2luLFxyXG4gICAgICAgIGl0ZW0sXHJcbiAgICAgICAgdGhpcy5maWxlLFxyXG4gICAgICAgIHJlbFxyXG4gICAgICApLm9wZW4oKTtcclxuICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCAiaW1wb3J0IHsgTW9kYWwsIFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCBNb2RpZnlITkl0ZW1Db21wIGZyb20gXCIuLi8uLi9Db21wb25lbnRzL01vZGlmeUhOSXRlbUNvbXAuc3ZlbHRlXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi8uLi9tYWluXCI7XHJcblxyXG5pbnRlcmZhY2UgSE5JdGVtIHtcclxuICBkZXB0aDogbnVtYmVyO1xyXG4gIGxpbmU6IHN0cmluZztcclxuICBsaW5lTm86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1vZGlmeUhpZXJJdGVtTW9kYWwgZXh0ZW5kcyBNb2RhbCB7XHJcbiAgbW91bnQ6IE1vZGlmeUhOSXRlbUNvbXA7XHJcbiAgcGx1Z2luOiBCQ1BsdWdpbjtcclxuICBtb2RhbDogTW9kaWZ5SGllckl0ZW1Nb2RhbDtcclxuICBobkl0ZW06IEhOSXRlbTtcclxuICBmaWxlOiBURmlsZTtcclxuICByZWw6IFwidXBcIiB8IFwic2FtZVwiIHwgXCJkb3duXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICAgIGhuSXRlbTogSE5JdGVtLFxyXG4gICAgZmlsZTogVEZpbGUsXHJcbiAgICByZWw6IFwidXBcIiB8IFwic2FtZVwiIHwgXCJkb3duXCJcclxuICApIHtcclxuICAgIHN1cGVyKGFwcCk7XHJcbiAgICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcclxuICAgIHRoaXMubW9kYWwgPSB0aGlzO1xyXG4gICAgdGhpcy5obkl0ZW0gPSBobkl0ZW07XHJcbiAgICB0aGlzLmZpbGUgPSBmaWxlO1xyXG4gICAgdGhpcy5yZWwgPSByZWw7XHJcbiAgfVxyXG5cclxuICBvbk9wZW4oKSB7XHJcbiAgICBjb25zdCB7IGNvbnRlbnRFbCB9ID0gdGhpcztcclxuICAgIGNvbnRlbnRFbC5lbXB0eSgpO1xyXG5cclxuICAgIHRoaXMubW91bnQgPSBuZXcgTW9kaWZ5SE5JdGVtQ29tcCh7XHJcbiAgICAgIHRhcmdldDogY29udGVudEVsLFxyXG4gICAgICBwcm9wczoge1xyXG4gICAgICAgIG1vZGFsOiB0aGlzLFxyXG4gICAgICAgIHNldHRpbmdzOiB0aGlzLnBsdWdpbi5zZXR0aW5ncyxcclxuICAgICAgICBobkl0ZW06IHRoaXMuaG5JdGVtLFxyXG4gICAgICAgIGZpbGU6IHRoaXMuZmlsZSxcclxuICAgICAgICByZWw6IHRoaXMucmVsLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlKCkge1xyXG4gICAgdGhpcy5tb3VudC4kZGVzdHJveSgpO1xyXG4gICAgdGhpcy5jb250ZW50RWwuZW1wdHkoKTtcclxuICB9XHJcbn1cclxuIiwgbnVsbCwgIjxzY3JpcHQgbGFuZz1cInRzXCI+XHJcbiAgaW1wb3J0IHsgZXJyb3IgfSBmcm9tIFwiY29uc29sZVwiO1xyXG4gIGltcG9ydCB7IE5vdGljZSwgVEZpbGUgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuICBpbXBvcnQgdHlwZSB7IE1vZGlmeUhpZXJJdGVtTW9kYWwgfSBmcm9tIFwiLi4vQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9IaWVyYXJjaHlOb3Rlcy9Nb2RpZnlIaWVySXRlbU1vZGFsXCI7XHJcbiAgaW1wb3J0IHsgQVJST1dfRElSRUNUSU9OUyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuICBpbXBvcnQgdHlwZSB7IEJDU2V0dGluZ3MgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG4gIGltcG9ydCB7IGRyb3BXaWtpbGlua3MsIG1ha2VXaWtpIH0gZnJvbSBcIi4uL1V0aWxzL09ic2lkaWFuVXRpbHNcIjtcclxuXHJcbiAgZXhwb3J0IGxldCBtb2RhbDogTW9kaWZ5SGllckl0ZW1Nb2RhbDtcclxuICBleHBvcnQgbGV0IHNldHRpbmdzOiBCQ1NldHRpbmdzO1xyXG4gIGV4cG9ydCBsZXQgaG5JdGVtOiBITkl0ZW07XHJcbiAgZXhwb3J0IGxldCBmaWxlOiBURmlsZTtcclxuICBleHBvcnQgbGV0IHJlbDogXCJ1cFwiIHwgXCJzYW1lXCIgfCBcImRvd25cIjtcclxuXHJcbiAgaW50ZXJmYWNlIEhOSXRlbSB7XHJcbiAgICBkZXB0aDogbnVtYmVyO1xyXG4gICAgbGluZTogc3RyaW5nO1xyXG4gICAgbGluZU5vOiBudW1iZXI7XHJcbiAgfVxyXG4gIGxldCBpbnB1dEVsOiBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICAvL0B0cy1pZ25vcmVcclxuICBsZXQgbmV3SXRlbSA9IGFwcC53b3Jrc3BhY2UuYWN0aXZlTGVhZi52aWV3LmZpbGUuYmFzZW5hbWU7XHJcblxyXG4gIGNvbnN0IGJ1aWxkTmV3SXRlbSA9IChcclxuICAgIG5ld0l0ZW06IHN0cmluZyxcclxuICAgIGRlcHRoID0gaG5JdGVtLmRlcHRoLFxyXG4gICAgcHJldmlldyA9IGZhbHNlXHJcbiAgKSA9PlxyXG4gICAgYCR7XCIgXCIucmVwZWF0KE1hdGgucm91bmQoZGVwdGggLyAocHJldmlldyA/IDIgOiAxKSkpfS0gJHtcclxuICAgICAgcHJldmlldyA/IG5ld0l0ZW0gfHwgXCI8RW1wdHk+XCIgOiBtYWtlV2lraShuZXdJdGVtKVxyXG4gICAgfWA7XHJcblxyXG4gIC8vIG9uTW91bnQoaW5wdXRFbC5mb2N1cyk7XHJcbjwvc2NyaXB0PlxyXG5cclxuPGg1PkFkZCBhbiB7QVJST1dfRElSRUNUSU9OU1tyZWxdfSB0byB7ZHJvcFdpa2lsaW5rcyhobkl0ZW0ubGluZSl9PC9oNT5cclxuPGRpdj5cclxuICB7I2lmIHJlbCA9PT0gXCJ1cFwifVxyXG4gICAgeyNpZiBobkl0ZW0uZGVwdGggPT09IDB9XHJcbiAgICAgIDxkaXY+Q2FuJ3QgYWRkIHBhcmVudCB0byB0b3AgbGV2ZWwgaXRlbSwgY2hvb3NlIGFub3RoZXIgZGlyZWN0aW9uPC9kaXY+XHJcbiAgICB7OmVsc2V9XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPHByZT5cclxuICAgICAgICAgIHtidWlsZE5ld0l0ZW0obmV3SXRlbSwgaG5JdGVtLmRlcHRoIC0gNCwgdHJ1ZSl9XHJcbiAgICAgICAgPC9wcmU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgey9pZn1cclxuICB7L2lmfVxyXG4gIDxkaXY+XHJcbiAgICA8cHJlPlxyXG4gICAgICAgIDxzdHJvbmdcclxuICAgICAgICA+e2J1aWxkTmV3SXRlbShkcm9wV2lraWxpbmtzKGhuSXRlbS5saW5lKSwgaG5JdGVtLmRlcHRoLCB0cnVlKX08L3N0cm9uZ1xyXG4gICAgICA+XHJcbiAgICA8L3ByZT5cclxuICA8L2Rpdj5cclxuICB7I2lmIHJlbCA9PT0gXCJzYW1lXCJ9XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8cHJlPlxyXG4gICAgICAgIHtidWlsZE5ld0l0ZW0obmV3SXRlbSwgaG5JdGVtLmRlcHRoLCB0cnVlKX1cclxuICAgIDwvcHJlPlxyXG4gICAgPC9kaXY+XHJcbiAgezplbHNlIGlmIHJlbCA9PT0gXCJkb3duXCJ9XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8cHJlPlxyXG4gICAgICAgIHtidWlsZE5ld0l0ZW0obmV3SXRlbSwgaG5JdGVtLmRlcHRoICsgNCwgdHJ1ZSl9XHJcbiAgICA8L3ByZT5cclxuICAgIDwvZGl2PlxyXG4gIHsvaWZ9XHJcblxyXG4gIDwhLS0gc3ZlbHRlLWlnbm9yZSBhMTF5LW5vLW9uY2hhbmdlIC0tPlxyXG4gIDxzZWxlY3QgY2xhc3M9XCJkcm9wZG93blwiIHdpZHRoPVwiMVwiIGJpbmQ6dmFsdWU9e3JlbH0+XHJcbiAgICA8b3B0aW9uIHZhbHVlPVwidXBcIj51cDwvb3B0aW9uPlxyXG4gICAgPG9wdGlvbiB2YWx1ZT1cInNhbWVcIj5zYW1lPC9vcHRpb24+XHJcbiAgICA8b3B0aW9uIHZhbHVlPVwiZG93blwiPmRvd248L29wdGlvbj5cclxuICA8L3NlbGVjdD5cclxuXHJcbiAgPGlucHV0XHJcbiAgICB0eXBlPVwidGV4dFwiXHJcbiAgICBwbGFjZWhvbGRlcj1cIk5ldyBpdGVtXCJcclxuICAgIGJpbmQ6dGhpcz17aW5wdXRFbH1cclxuICAgIGJpbmQ6dmFsdWU9e25ld0l0ZW19XHJcbiAgLz5cclxuXHJcbiAgPGJ1dHRvblxyXG4gICAgb246Y2xpY2s9e2FzeW5jIChlKSA9PiB7XHJcbiAgICAgIGlmIChyZWwgPT09IFwidXBcIiAmJiBobkl0ZW0uZGVwdGggPT09IDApIHtcclxuICAgICAgICBuZXcgTm90aWNlKFxyXG4gICAgICAgICAgXCJDYW4ndCBhZGQgcGFyZW50IHRvIHRvcCBsZXZlbCBpdGVtLCBjaG9vc2UgYW5vdGhlciBkaXJlY3Rpb25cIlxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgYXBwLnZhdWx0LnJlYWQoZmlsZSk7XHJcbiAgICAgICAgICBjb25zdCBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoXCJcXG5cIik7XHJcbiAgICAgICAgICBjb25zdCBsaW5lTm8gPSByZWwgPT09IFwidXBcIiA/IGhuSXRlbS5saW5lTm8gOiBobkl0ZW0ubGluZU5vICsgMTtcclxuXHJcbiAgICAgICAgICBjb25zdCBkZXB0aCA9XHJcbiAgICAgICAgICAgIHJlbCA9PT0gXCJ1cFwiXHJcbiAgICAgICAgICAgICAgPyBobkl0ZW0uZGVwdGggLSA0XHJcbiAgICAgICAgICAgICAgOiByZWwgPT09IFwiZG93blwiXHJcbiAgICAgICAgICAgICAgPyBobkl0ZW0uZGVwdGggKyA0XHJcbiAgICAgICAgICAgICAgOiBobkl0ZW0uZGVwdGg7XHJcblxyXG4gICAgICAgICAgbGluZXMuc3BsaWNlKGxpbmVObywgMCwgYnVpbGROZXdJdGVtKG5ld0l0ZW0sIGRlcHRoKSk7XHJcbiAgICAgICAgICBhd2FpdCBhcHAudmF1bHQubW9kaWZ5KGZpbGUsIGxpbmVzLmpvaW4oXCJcXG5cIikpO1xyXG4gICAgICAgICAgbW9kYWwuY2xvc2UoKTtcclxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgIGVycm9yKGVycik7XHJcbiAgICAgICAgICBuZXcgTm90aWNlKFwiQW4gZXJyb3Igb2NjdXJlZCwgcGxlYXNlIGNoZWNrIHRoZSBjb25zb2xlXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfX0+QWRkPC9idXR0b25cclxuICA+XHJcbjwvZGl2PlxyXG5cclxuPHN0eWxlPlxyXG4gIHByZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgfVxyXG48L3N0eWxlPlxyXG4iLCAiaW1wb3J0IHsgaW5mbyB9IGZyb20gXCJsb2dsZXZlbFwiO1xyXG5pbXBvcnQgeyBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0LCBOb3RpY2UgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHsgZ2V0RFZBcGkgfSBmcm9tIFwiLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcbmltcG9ydCB7IGNyZWF0ZUluZGV4LCBpbmRleFRvTGluZVBhaXJzIH0gZnJvbSBcIi4vQ29tbWFuZHMvQ3JlYXRlSW5kZXhcIjtcclxuaW1wb3J0IENCVHJlZSBmcm9tIFwiLi9Db21wb25lbnRzL0NCVHJlZS5zdmVsdGVcIjtcclxuaW1wb3J0IHsgQ09ERUJMT0NLX0ZJRUxEUywgQ09ERUJMT0NLX1RZUEVTLCBESVJFQ1RJT05TIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB0eXBlIHsgQ29kZWJsb2NrRmllbGRzLCBQYXJzZWRDb2RlYmxvY2sgfSBmcm9tIFwiLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuL21haW5cIjtcclxuaW1wb3J0IHsgZHJvcEZvbGRlciwgc3BsaXRBbmRUcmltIH0gZnJvbSBcIi4vVXRpbHMvZ2VuZXJhbFV0aWxzXCI7XHJcbmltcG9ydCB7XHJcbiAgZGZzQWxsUGF0aHMsXHJcbiAgZ2V0UmVmbGV4aXZlQ2xvc3VyZSxcclxuICBnZXRTdWJGb3JGaWVsZHMsXHJcbiAgZ2V0U3ViSW5EaXJzLFxyXG59IGZyb20gXCIuL1V0aWxzL2dyYXBoVXRpbHNcIjtcclxuaW1wb3J0IHsgZ2V0RmllbGRJbmZvLCBnZXRGaWVsZHMsIGdldE9wcERpciB9IGZyb20gXCIuL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBjcmVhdGVKdWdnbCB9IGZyb20gXCIuL1Zpc3VhbGlzYXRpb25zL0p1Z2dsXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29kZWJsb2NrQ0IocGx1Z2luOiBCQ1BsdWdpbikge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MsIGRiIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgeyB1c2VySGllcnMsIGNyZWF0ZUluZGV4SW5kZW50IH0gPSBzZXR0aW5ncztcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIHNvdXJjZTogc3RyaW5nLFxyXG4gICAgZWw6IEhUTUxFbGVtZW50LFxyXG4gICAgY3R4OiBNYXJrZG93blBvc3RQcm9jZXNzb3JDb250ZXh0XHJcbiAgKSA9PiB7XHJcbiAgICBkYi5zdGFydDJHKFwiQ29kZWJsb2NrXCIpO1xyXG4gICAgY29uc3QgcGFyc2VkU291cmNlID0gcGFyc2VDb2RlQmxvY2tTb3VyY2Uoc291cmNlKTtcclxuICAgIGNvbnN0IGVyciA9IGNvZGVibG9ja0Vycm9yKHBsdWdpbiwgcGFyc2VkU291cmNlKTtcclxuXHJcbiAgICBpZiAoZXJyICE9PSBcIlwiKSB7XHJcbiAgICAgIGVsLmlubmVySFRNTCA9IGVycjtcclxuICAgICAgZGIuZW5kMkcoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBtaW4gPSAwLFxyXG4gICAgICBtYXggPSBJbmZpbml0eTtcclxuICAgIGxldCB7IGRlcHRoLCBkaXIsIGZpZWxkcywgZnJvbSwgaW1wbGllZCwgZmxhdCB9ID0gcGFyc2VkU291cmNlO1xyXG4gICAgaWYgKGRlcHRoICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgY29uc3QgbWluTnVtID0gcGFyc2VJbnQoZGVwdGhbMF0pO1xyXG4gICAgICBpZiAoIWlzTmFOKG1pbk51bSkpIG1pbiA9IG1pbk51bTtcclxuICAgICAgY29uc3QgbWF4TnVtID0gcGFyc2VJbnQoZGVwdGhbMV0pO1xyXG4gICAgICBpZiAoIWlzTmFOKG1heE51bSkpIG1heCA9IG1heE51bTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgY29uc3QgY3VyckZpbGUgPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChcclxuICAgICAgY3R4LnNvdXJjZVBhdGgsXHJcbiAgICAgIFwiXCJcclxuICAgICk7XHJcbiAgICBjb25zdCB7IGJhc2VuYW1lIH0gPSBjdXJyRmlsZTtcclxuXHJcbiAgICBsZXQgZnJvbXMgPSB1bmRlZmluZWQ7XHJcbiAgICBpZiAoZnJvbSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgYXBpID0gZ2V0RFZBcGkocGx1Z2luKTtcclxuICAgICAgICBpZiAoYXBpKSB7XHJcbiAgICAgICAgICBjb25zdCBwYWdlcyA9IGFwaS5wYWdlUGF0aHMoZnJvbSk/LnZhbHVlcztcclxuICAgICAgICAgIGZyb21zID0gcGFnZXMubWFwKGRyb3BGb2xkZXIpO1xyXG4gICAgICAgIH0gZWxzZSBuZXcgTm90aWNlKFwiRGF0YXZpZXcgbXVzdCBiZSBlbmFibGVkIGZvciBgZnJvbWAgdG8gd29yay5cIik7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBuZXcgTm90aWNlKGBUaGUgcXVlcnkgXCIke2Zyb219XCIgZmFpbGVkLmApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb3BwRGlyID0gZ2V0T3BwRGlyKGRpcik7XHJcbiAgICBjb25zdCBzdWIgPVxyXG4gICAgICBpbXBsaWVkID09PSBmYWxzZVxyXG4gICAgICAgID8gZ2V0U3ViSW5EaXJzKHBsdWdpbi5tYWluRywgZGlyKVxyXG4gICAgICAgIDogZ2V0U3ViSW5EaXJzKHBsdWdpbi5tYWluRywgZGlyLCBvcHBEaXIpO1xyXG4gICAgY29uc3QgY2xvc2VkID0gZ2V0UmVmbGV4aXZlQ2xvc3VyZShzdWIsIHVzZXJIaWVycyk7XHJcblxyXG4gICAgY29uc3Qgc3ViRmllbGRzID0gZmllbGRzID8/IGdldEZpZWxkcyh1c2VySGllcnMpO1xyXG4gICAgY29uc3Qgc3ViQ2xvc2VkID0gZ2V0U3ViRm9yRmllbGRzKGdldFN1YkluRGlycyhjbG9zZWQsIGRpciksIHN1YkZpZWxkcyk7XHJcblxyXG5cclxuICAgIGNvbnN0IGFsbFBhdGhzID0gZGZzQWxsUGF0aHMoc3ViQ2xvc2VkLCBiYXNlbmFtZSk7XHJcbiAgICBjb25zdCBpbmRleCA9IGNyZWF0ZUluZGV4KGFsbFBhdGhzLCBmYWxzZSwgY3JlYXRlSW5kZXhJbmRlbnQpO1xyXG4gICAgaW5mbyh7IGFsbFBhdGhzLCBpbmRleCB9KTtcclxuXHJcbiAgICBjb25zdCBsaW5lcyA9IGluZGV4VG9MaW5lUGFpcnMoaW5kZXgsIGZsYXQpO1xyXG5cclxuICAgIHN3aXRjaCAocGFyc2VkU291cmNlLnR5cGUpIHtcclxuICAgICAgY2FzZSBcInRyZWVcIjpcclxuICAgICAgICBuZXcgQ0JUcmVlKHtcclxuICAgICAgICAgIHRhcmdldDogZWwsXHJcbiAgICAgICAgICBwcm9wczoge1xyXG4gICAgICAgICAgICBwbHVnaW4sXHJcbiAgICAgICAgICAgIGVsLFxyXG4gICAgICAgICAgICBtaW4sXHJcbiAgICAgICAgICAgIG1heCxcclxuICAgICAgICAgICAgbGluZXMsXHJcbiAgICAgICAgICAgIGZyb21zLFxyXG4gICAgICAgICAgICBiYXNlbmFtZSxcclxuICAgICAgICAgICAgcGFyc2VkU291cmNlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcImp1Z2dsXCI6XHJcbiAgICAgICAgY3JlYXRlZEp1Z2dsQ0IoXHJcbiAgICAgICAgICBwbHVnaW4sXHJcbiAgICAgICAgICBlbCxcclxuICAgICAgICAgIHBhcnNlZFNvdXJjZSxcclxuICAgICAgICAgIGxpbmVzLFxyXG4gICAgICAgICAgZnJvbXMsXHJcbiAgICAgICAgICBiYXNlbmFtZSxcclxuICAgICAgICAgIG1pbixcclxuICAgICAgICAgIG1heFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgZGIuZW5kMkcoKTtcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogUGFyc2UgYSBzdHJpbmcgYXMgYSBib29sZWFuIHZhbHVlLiBJZiBub3QgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiLCByZXR1cm4gYHZhbHVlYC5cclxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gc3RyaW5nXHJcbiAqIEByZXR1cm5zIHtzdHJpbmcgfCBib29sZWFufVxyXG4gKi9cclxuY29uc3QgcGFyc2VBc0Jvb2wgPSAodmFsdWU6IHN0cmluZyk6IHN0cmluZyB8IGJvb2xlYW4gPT5cclxuICB2YWx1ZSA9PT0gXCJ0cnVlXCIgPyB0cnVlIDogdmFsdWUgPT09IFwiZmFsc2VcIiA/IGZhbHNlIDogdmFsdWU7XHJcblxyXG5mdW5jdGlvbiBwYXJzZUNvZGVCbG9ja1NvdXJjZShzb3VyY2U6IHN0cmluZyk6IFBhcnNlZENvZGVibG9jayB7XHJcbiAgY29uc3QgbGluZXMgPSBzb3VyY2Uuc3BsaXQoXCJcXG5cIik7XHJcbiAgY29uc3QgZ2V0VmFsdWUgPSAodHlwZTogc3RyaW5nKSA9PlxyXG4gICAgbGluZXNcclxuICAgICAgLmZpbmQoKGwpID0+IGwuc3RhcnRzV2l0aChgJHt0eXBlfTpgKSlcclxuICAgICAgPy5zcGxpdChcIjpcIik/LlsxXVxyXG4gICAgICA/LnRyaW0oKTtcclxuXHJcbiAgY29uc3QgcmVzdWx0czogeyBbZmllbGQgaW4gQ29kZWJsb2NrRmllbGRzXTogc3RyaW5nIHwgYm9vbGVhbiB8IHN0cmluZ1tdIH0gPVxyXG4gICAge307XHJcblxyXG4gIENPREVCTE9DS19GSUVMRFMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgIGNvbnN0IHZhbHVlID0gZ2V0VmFsdWUoZmllbGQpO1xyXG4gICAgcmVzdWx0c1tmaWVsZF0gPSBwYXJzZUFzQm9vbCh2YWx1ZSk7XHJcbiAgfSk7XHJcblxyXG4gIHJlc3VsdHMuZmllbGRzID0gcmVzdWx0cy5maWVsZHNcclxuICAgID8gc3BsaXRBbmRUcmltKHJlc3VsdHMuZmllbGRzIGFzIHN0cmluZylcclxuICAgIDogdW5kZWZpbmVkO1xyXG5cclxuICBpZiAocmVzdWx0cy5kZXB0aCkge1xyXG4gICAgY29uc3QgbWF0Y2ggPSAocmVzdWx0cy5kZXB0aCBhcyBzdHJpbmcpLm1hdGNoKC8oXFxkKiktPyhcXGQqKS8pO1xyXG4gICAgcmVzdWx0cy5kZXB0aCA9IFttYXRjaFsxXSwgbWF0Y2hbMl1dO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHJlc3VsdHMgYXMgdW5rbm93biBhcyBQYXJzZWRDb2RlYmxvY2s7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvZGVibG9ja0Vycm9yKHBsdWdpbjogQkNQbHVnaW4sIHBhcnNlZFNvdXJjZTogUGFyc2VkQ29kZWJsb2NrKSB7XHJcbiAgY29uc3QgeyBkaXIsIGZpZWxkcywgdHlwZSwgdGl0bGUsIGRlcHRoLCBmbGF0LCBjb250ZW50LCBmcm9tLCBpbXBsaWVkIH0gPVxyXG4gICAgcGFyc2VkU291cmNlO1xyXG4gIGNvbnN0IHsgdXNlckhpZXJzIH0gPSBwbHVnaW4uc2V0dGluZ3M7XHJcbiAgbGV0IGVyciA9IFwiXCI7XHJcblxyXG4gIGlmICghQ09ERUJMT0NLX1RZUEVTLmluY2x1ZGVzKHR5cGUpKVxyXG4gICAgZXJyICs9IGA8Y29kZT50eXBlOiAke3R5cGV9PC9jb2RlPiBpcyBub3QgYSB2YWxpZCB0eXBlLiBJdCBtdXN0IGJlIG9uZSBvZjogJHtDT0RFQkxPQ0tfVFlQRVMubWFwKFxyXG4gICAgICAodHlwZSkgPT4gYDxjb2RlPiR7dHlwZX08L2NvZGU+YFxyXG4gICAgKS5qb2luKFwiLCBcIil9LjwvYnI+YDtcclxuXHJcbiAgY29uc3QgdmFsaWREaXIgPSBESVJFQ1RJT05TLmluY2x1ZGVzKGRpcik7XHJcbiAgaWYgKCF2YWxpZERpcilcclxuICAgIGVyciArPSBgPGNvZGU+ZGlyOiAke2Rpcn08L2NvZGU+IGlzIG5vdCBhIHZhbGlkIGRpcmVjdGlvbi48L2JyPmA7XHJcblxyXG4gIGNvbnN0IGFsbEZpZWxkcyA9IGdldEZpZWxkcyh1c2VySGllcnMpO1xyXG4gIFtmaWVsZHNdLmZsYXQoKT8uZm9yRWFjaCgoZikgPT4ge1xyXG4gICAgaWYgKGYgIT09IHVuZGVmaW5lZCAmJiAhYWxsRmllbGRzLmluY2x1ZGVzKGYpKVxyXG4gICAgICBlcnIgKz0gYDxjb2RlPmZpZWxkczogJHtmfTwvY29kZT4gaXMgbm90IGEgZmllbGQgaW4geW91ciBoaWVyYXJjaGllcy48L2JyPmA7XHJcbiAgfSk7XHJcblxyXG4gIGlmICh0aXRsZSAhPT0gdW5kZWZpbmVkICYmIHRpdGxlICE9PSBmYWxzZSlcclxuICAgIGVyciArPSBgPGNvZGU+dGl0bGU6ICR7dGl0bGV9PC9jb2RlPiBpcyBub3QgYSB2YWxpZCB2YWx1ZS4gSXQgaGFzIHRvIGJlIDxjb2RlPmZhbHNlPC9jb2RlPiwgb3IgbGVhdmUgdGhlIGVudGlyZSBsaW5lIG91dC48L2JyPmA7XHJcblxyXG4gIGlmIChkZXB0aCAhPT0gdW5kZWZpbmVkICYmIGRlcHRoLmV2ZXJ5KChudW0pID0+IGlzTmFOKHBhcnNlSW50KG51bSkpKSlcclxuICAgIGVyciArPSBgPGNvZGU+ZGVwdGg6ICR7ZGVwdGh9PC9jb2RlPiBpcyBub3QgYSB2YWxpZCB2YWx1ZS4gSXQgaGFzIHRvIGJlIGEgbnVtYmVyLjwvYnI+YDtcclxuXHJcbiAgaWYgKGZsYXQgIT09IHVuZGVmaW5lZCAmJiBmbGF0ICE9PSB0cnVlKVxyXG4gICAgZXJyICs9IGA8Y29kZT5mbGF0OiAke2ZsYXR9PC9jb2RlPiBpcyBub3QgYSB2YWxpZCB2YWx1ZS4gSXQgaGFzIHRvIGJlIDxjb2RlPnRydWU8L2NvZGU+LCBvciBsZWF2ZSB0aGUgZW50aXJlIGxpbmUgb3V0LjwvYnI+YDtcclxuXHJcbiAgaWYgKGNvbnRlbnQgIT09IHVuZGVmaW5lZCAmJiBjb250ZW50ICE9PSBcIm9wZW5cIiAmJiBjb250ZW50ICE9PSBcImNsb3NlZFwiKVxyXG4gICAgZXJyICs9IGA8Y29kZT5jb250ZW50OiAke2NvbnRlbnR9PC9jb2RlPiBpcyBub3QgYSB2YWxpZCB2YWx1ZS4gSXQgaGFzIHRvIGJlIDxjb2RlPm9wZW48L2NvZGU+IG9yIDxjb2RlPmNsb3NlZDwvY29kZT4sIG9yIGxlYXZlIHRoZSBlbnRpcmUgbGluZSBvdXQuPC9icj5gO1xyXG5cclxuICBpZiAoXHJcbiAgICBmcm9tICE9PSB1bmRlZmluZWQgJiZcclxuICAgICFhcHAucGx1Z2lucy5lbmFibGVkUGx1Z2lucy5oYXMoXCJkYXRhdmlld1wiKVxyXG4gICkge1xyXG4gICAgZXJyICs9IGBEYXRhdmlldyBtdXN0IGJlIGVuYWJsZWQgdG8gdXNlIDxjb2RlPmZyb208L2NvZGU+LjwvYnI+YDtcclxuICB9XHJcblxyXG4gIGlmIChpbXBsaWVkICE9PSB1bmRlZmluZWQgJiYgaW1wbGllZCAhPT0gZmFsc2UpXHJcbiAgICBlcnIgKz0gYDxjb2RlPmltcGxpZWQ6ICR7aW1wbGllZH08L2NvZGU+IGlzIG5vdCBhIHZhbGlkIHZhbHVlLiBJdCBoYXMgdG8gYmUgPGNvZGU+ZmFsc2U8L2NvZGU+LCBvciBsZWF2ZSB0aGUgZW50aXJlIGxpbmUgb3V0LjwvYnI+YDtcclxuXHJcbiAgcmV0dXJuIGVyciA9PT0gXCJcIlxyXG4gICAgPyBcIlwiXHJcbiAgICA6IGAke2Vycn08L2JyPlxyXG4gICAgQSB2YWxpZCBleGFtcGxlIHdvdWxkIGJlOlxyXG4gICAgPHByZT48Y29kZT5cclxuICAgICAgdHlwZTogdHJlZVxyXG4gICAgICBkaXI6ICR7dmFsaWREaXIgPyBkaXIgOiBcImRvd25cIn1cclxuICAgICAgZmllbGRzOiAke2FsbEZpZWxkc1xyXG4gICAgICAubWFwKChmKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZiwgZGlyOiBnZXRGaWVsZEluZm8odXNlckhpZXJzLCBmKS5maWVsZERpciB9O1xyXG4gICAgICB9KVxyXG4gICAgICAuZmlsdGVyKChpbmZvKSA9PiBpbmZvLmRpciA9PT0gZGlyKVxyXG4gICAgICAubWFwKChpbmZvKSA9PiBpbmZvLmYpXHJcbiAgICAgIC5qb2luKFwiLCBcIikgfHwgXCJjaGlsZFwiXHJcbiAgICB9XHJcbiAgICAgIGRlcHRoOiAzXHJcbiAgICAgIDwvY29kZT48L3ByZT5gO1xyXG59XHJcblxyXG5jb25zdCBpbmRlbnRUb0RlcHRoID0gKGluZGVudDogc3RyaW5nKSA9PiBpbmRlbnQubGVuZ3RoIC8gMiArIDE7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWVldHNDb25kaXRpb25zKFxyXG4gIGluZGVudDogc3RyaW5nLFxyXG4gIG5vZGU6IHN0cmluZyxcclxuICBmcm9tczogc3RyaW5nW10sXHJcbiAgbWluOiBudW1iZXIsXHJcbiAgbWF4OiBudW1iZXJcclxuKSB7XHJcbiAgY29uc3QgZGVwdGggPSBpbmRlbnRUb0RlcHRoKGluZGVudCk7XHJcbiAgcmV0dXJuIChcclxuICAgIGRlcHRoID49IG1pbiAmJlxyXG4gICAgZGVwdGggPD0gbWF4ICYmXHJcbiAgICAoZnJvbXMgPT09IHVuZGVmaW5lZCB8fCBmcm9tcy5pbmNsdWRlcyhub2RlKSlcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlZEp1Z2dsQ0IoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICB0YXJnZXQ6IEhUTUxFbGVtZW50LFxyXG4gIGFyZ3M6IFBhcnNlZENvZGVibG9jayxcclxuICBsaW5lczogW3N0cmluZywgc3RyaW5nXVtdLFxyXG4gIGZyb21zOiBzdHJpbmdbXSxcclxuICBzb3VyY2U6IHN0cmluZyxcclxuICBtaW46IG51bWJlcixcclxuICBtYXg6IG51bWJlclxyXG4pIHtcclxuICBjb25zdCBub2RlcyA9IGxpbmVzXHJcbiAgICAuZmlsdGVyKChbaW5kZW50LCBub2RlXSkgPT4gbWVldHNDb25kaXRpb25zKGluZGVudCwgbm9kZSwgZnJvbXMsIG1pbiwgbWF4KSlcclxuICAgIC5tYXAoKFtfLCBub2RlXSkgPT4gbm9kZSArIFwiLm1kXCIpO1xyXG4gIGlmIChtaW4gPD0gMCkgbm9kZXMucHVzaChzb3VyY2UgKyBcIi5tZFwiKTtcclxuXHJcbiAgY3JlYXRlSnVnZ2wocGx1Z2luLCB0YXJnZXQsIG5vZGVzLCBhcmdzKTtcclxufVxyXG4iLCBudWxsLCAiPHNjcmlwdCBsYW5nPVwidHNcIj5cclxuICBpbXBvcnQgeyBNYXJrZG93blJlbmRlcmVyIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbiAgaW1wb3J0IHsgb25Nb3VudCB9IGZyb20gXCJzdmVsdGVcIjtcclxuXHJcbiAgZXhwb3J0IGxldCBwYXRoOiBzdHJpbmc7XHJcblxyXG4gIGFzeW5jIGZ1bmN0aW9uIGdldENvbnRlbnQobm90ZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBmaWxlID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3Qobm90ZSwgXCJcIik7XHJcbiAgICByZXR1cm4gYXdhaXQgYXBwLnZhdWx0LmNhY2hlZFJlYWQoZmlsZSk7XHJcbiAgfVxyXG5cclxuICBsZXQgZWw6IEhUTUxFbGVtZW50O1xyXG4gIG9uTW91bnQoYXN5bmMgKCkgPT4ge1xyXG4gICAgTWFya2Rvd25SZW5kZXJlci5yZW5kZXJNYXJrZG93bihhd2FpdCBnZXRDb250ZW50KHBhdGgpLCBlbCwgcGF0aCwgbnVsbCk7XHJcbiAgfSk7XHJcbjwvc2NyaXB0PlxyXG5cclxuPGRpdiBjbGFzcz1cIkJDLW5vdGUtY29udGVudFwiIGJpbmQ6dGhpcz17ZWx9IC8+XHJcblxyXG48c3R5bGU+XHJcbiAgZGl2LkJDLW5vdGUtY29udGVudCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbiAgfVxyXG48L3N0eWxlPlxyXG4iLCBudWxsLCAiPHNjcmlwdCBsYW5nPVwidHNcIj5cclxuICBpbXBvcnQge1xyXG4gICAgaXNJblZhdWx0LFxyXG4gICAgb3Blbk9yU3dpdGNoLFxyXG4gICAgaG92ZXJQcmV2aWV3LFxyXG4gIH0gZnJvbSBcIm9ic2lkaWFuLWNvbW11bml0eS1saWIvZGlzdC91dGlsc1wiO1xyXG4gIGltcG9ydCB7IG1lZXRzQ29uZGl0aW9ucyB9IGZyb20gXCIuLi9Db2RlYmxvY2tzXCI7XHJcbiAgaW1wb3J0IHR5cGUgeyBQYXJzZWRDb2RlYmxvY2sgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG4gIGltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbiAgaW1wb3J0IHsgZHJvcERlbmRyb24gfSBmcm9tIFwiLi4vVXRpbHMvZ2VuZXJhbFV0aWxzXCI7XHJcbiAgaW1wb3J0IFJlbmRlck1hcmtkb3duIGZyb20gXCIuL1JlbmRlck1hcmtkb3duLnN2ZWx0ZVwiO1xyXG5cclxuICBleHBvcnQgbGV0IHBsdWdpbjogQkNQbHVnaW47XHJcbiAgZXhwb3J0IGxldCBlbDogSFRNTEVsZW1lbnQ7XHJcbiAgZXhwb3J0IGxldCBsaW5lczogW3N0cmluZywgc3RyaW5nXVtdO1xyXG4gIGV4cG9ydCBsZXQgZnJvbXM6IHN0cmluZ1tdO1xyXG4gIGV4cG9ydCBsZXQgbWluOiBudW1iZXI7XHJcbiAgZXhwb3J0IGxldCBtYXg6IG51bWJlcjtcclxuICBleHBvcnQgbGV0IGJhc2VuYW1lOiBzdHJpbmc7XHJcbiAgZXhwb3J0IGxldCBwYXJzZWRTb3VyY2U6IFBhcnNlZENvZGVibG9jaztcclxuXHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgdGl0bGUsIGNvbnRlbnQsIGRpciB9ID0gcGFyc2VkU291cmNlO1xyXG5cclxuICBjb25zdCBhY3RpdmVMZWFmVmlldyA9IGFwcC53b3Jrc3BhY2UuYWN0aXZlTGVhZi52aWV3O1xyXG48L3NjcmlwdD5cclxuXHJcbnsjaWYgdGl0bGUgIT09IGZhbHNlfVxyXG4gIDxoMz57ZGlyfSBvZiB7YmFzZW5hbWV9PC9oMz5cclxuey9pZn1cclxuPGRpdiBjbGFzcz1cIkJDLXRyZWVcIj5cclxuICB7I2VhY2ggbGluZXMgYXMgW2luZGVudCwgbGlua119XHJcbiAgICB7I2lmIG1lZXRzQ29uZGl0aW9ucyhpbmRlbnQsIGxpbmssIGZyb21zLCBtaW4sIG1heCl9XHJcbiAgICAgIHsjaWYgY29udGVudCA9PT0gXCJvcGVuXCIgfHwgY29udGVudCA9PT0gXCJjbG9zZWRcIn1cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPHByZSBjbGFzcz1cImluZGVudFwiPntpbmRlbnR9PC9wcmU+XHJcbiAgICAgICAgICA8ZGV0YWlscyBvcGVuPXtjb250ZW50ID09PSBcIm9wZW5cIn0+XHJcbiAgICAgICAgICAgIDxzdW1tYXJ5PlxyXG4gICAgICAgICAgICAgIDwhLS0gc3ZlbHRlLWlnbm9yZSBhMTF5LW1vdXNlLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgLS0+XHJcbiAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaW50ZXJuYWwtbGlua1wiXHJcbiAgICAgICAgICAgICAgICBvbjpjbGljaz17YXN5bmMgKGUpID0+IGF3YWl0IG9wZW5PclN3aXRjaChsaW5rLCBlKX1cclxuICAgICAgICAgICAgICAgIG9uOm1vdXNlb3Zlcj17KGUpID0+IGhvdmVyUHJldmlldyhlLCBhY3RpdmVMZWFmVmlldywgbGluayl9XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPCEtLSBzdmVsdGUtaWdub3JlIGExMXktbWlzc2luZy1hdHRyaWJ1dGUgLS0+XHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImludGVybmFsLWxpbmsge2lzSW5WYXVsdChsaW5rKSA/ICcnIDogJ2lzLXVucmVzb2x2ZWQnfVwiXHJcbiAgICAgICAgICAgICAgICAgID57ZHJvcERlbmRyb24obGluaywgc2V0dGluZ3MpfTwvYVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zdW1tYXJ5PlxyXG4gICAgICAgICAgICA8UmVuZGVyTWFya2Rvd24gcGF0aD17bGlua30gLz5cclxuICAgICAgICAgIDwvZGV0YWlscz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgezplbHNlfVxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8cHJlIGNsYXNzPVwiaW5kZW50XCI+e2luZGVudCArIFwiLVwifTwvcHJlPlxyXG4gICAgICAgICAgPCEtLSBzdmVsdGUtaWdub3JlIGExMXktbW91c2UtZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAtLT5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaW50ZXJuYWwtbGlua1wiXHJcbiAgICAgICAgICAgIG9uOmNsaWNrPXthc3luYyAoZSkgPT4gYXdhaXQgb3Blbk9yU3dpdGNoKGxpbmssIGUpfVxyXG4gICAgICAgICAgICBvbjptb3VzZW92ZXI9eyhlKSA9PiBob3ZlclByZXZpZXcoZSwgYWN0aXZlTGVhZlZpZXcsIGxpbmspfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8IS0tIHN2ZWx0ZS1pZ25vcmUgYTExeS1taXNzaW5nLWF0dHJpYnV0ZSAtLT5cclxuICAgICAgICAgICAgPGEgY2xhc3M9XCJpbnRlcm5hbC1saW5rIHtpc0luVmF1bHQobGluaykgPyAnJyA6ICdpcy11bnJlc29sdmVkJ31cIj5cclxuICAgICAgICAgICAgICB7ZHJvcERlbmRyb24obGluaywgc2V0dGluZ3MpfVxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIHsvaWZ9XHJcbiAgICB7L2lmfVxyXG4gIHsvZWFjaH1cclxuPC9kaXY+XHJcblxyXG48c3R5bGU+XHJcbiAgLkJDLXRyZWUge1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbiAgfVxyXG4gIC8qIC5CQy10cmVlID4gZGl2IHtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgfSAqL1xyXG4gIHByZS5pbmRlbnQge1xyXG4gICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBwb3NpdGlvbjogdG9wO1xyXG4gIH1cclxuICBkZXRhaWxzIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB9XHJcblxyXG4gIC5pcy11bnJlc29sdmVkIHtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcclxuICB9XHJcbjwvc3R5bGU+XHJcbiIsICJpbXBvcnQgeyBOb3RpY2UgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHR5cGUgeyBEaXJlY3Rpb25zIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgZ2V0UmVhbG5JbXBsaWVkIH0gZnJvbSBcIi4uL1V0aWxzL2dyYXBoVXRpbHNcIjtcclxuaW1wb3J0IHtnZXRDdXJyRmlsZX0gZnJvbSBcIi4uL1V0aWxzL09ic2lkaWFuVXRpbHNcIjtcclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBqdW1wVG9GaXJzdERpcihwbHVnaW46IEJDUGx1Z2luLCBkaXI6IERpcmVjdGlvbnMpIHtcclxuICBjb25zdCB7IGxpbWl0SnVtcFRvRmlyc3RGaWVsZHMgfSA9IHBsdWdpbi5zZXR0aW5ncztcclxuICBjb25zdCBmaWxlID0gZ2V0Q3VyckZpbGUoKTtcclxuICBpZiAoIWZpbGUpIHtcclxuICAgIG5ldyBOb3RpY2UoXCJZb3UgbmVlZCB0byBiZSBmb2N1c3NlZCBvbiBhIE1hcmtkb3duIGZpbGVcIik7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGNvbnN0IHsgYmFzZW5hbWUgfSA9IGZpbGU7XHJcblxyXG4gIGNvbnN0IHJlYWxzTkltcGxpZWRzID0gZ2V0UmVhbG5JbXBsaWVkKHBsdWdpbiwgYmFzZW5hbWUsIGRpcilbZGlyXTtcclxuICBjb25zdCBhbGxCQ3MgPSBbLi4ucmVhbHNOSW1wbGllZHMucmVhbHMsIC4uLnJlYWxzTkltcGxpZWRzLmltcGxpZWRzXTtcclxuICBpZiAoYWxsQkNzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgbmV3IE5vdGljZShgTm8gJHtkaXJ9IGZvdW5kYCk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBjb25zdCB0b05vZGUgPSBhbGxCQ3MuZmluZCgoYmMpID0+XHJcbiAgICBsaW1pdEp1bXBUb0ZpcnN0RmllbGRzLmluY2x1ZGVzKGJjLmZpZWxkKVxyXG4gICk/LnRvO1xyXG5cclxuICBpZiAoIXRvTm9kZSkge1xyXG4gICAgbmV3IE5vdGljZShcclxuICAgICAgYE5vIG5vdGUgd2FzIGZvdW5kIGluICR7ZGlyfSBnaXZlbiB0aGUgbGltaXRlZCBmaWVsZHMgYWxsb3dlZDogJHtsaW1pdEp1bXBUb0ZpcnN0RmllbGRzLmpvaW4oXHJcbiAgICAgICAgXCIsIFwiXHJcbiAgICAgICl9YFxyXG4gICAgKTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGNvbnN0IHRvRmlsZSA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KHRvTm9kZSwgXCJcIik7XHJcbiAgYXdhaXQgYXBwLndvcmtzcGFjZS5hY3RpdmVMZWFmLm9wZW5GaWxlKHRvRmlsZSk7XHJcbn1cclxuIiwgImltcG9ydCB7IG5vcm1hbGl6ZVBhdGgsIE5vdGljZSwgVEZpbGUgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHR5cGUgeyBEaXJlY3Rpb25zIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgZ2V0RmllbGRJbmZvLCBnZXRPcHBGaWVsZHMgfSBmcm9tIFwiLi4vVXRpbHMvSGllclV0aWxzXCI7XHJcbmltcG9ydCB7IGNyZWF0ZU9yVXBkYXRlWWFtbCwgZ2V0Q3VyckZpbGUsIHNwbGl0QXRZYW1sIH0gZnJvbSBcIi4uL1V0aWxzL09ic2lkaWFuVXRpbHNcIjtcclxuXHJcbmNvbnN0IHJlc29sdmVUaHJlYWRpbmdOYW1lVGVtcGxhdGUgPSAoXHJcbiAgdGVtcGxhdGU6IHN0cmluZyxcclxuICBjdXJyRmlsZTogVEZpbGUsXHJcbiAgZmllbGQ6IHN0cmluZyxcclxuICBkaXI6IERpcmVjdGlvbnMsXHJcbiAgZGF0ZUZvcm1hdDogc3RyaW5nXHJcbikgPT5cclxuICB0ZW1wbGF0ZVxyXG4gICAgPyB0ZW1wbGF0ZVxyXG4gICAgICAucmVwbGFjZShcInt7Y3VycmVudH19XCIsIGN1cnJGaWxlLmJhc2VuYW1lKVxyXG4gICAgICAucmVwbGFjZShcInt7ZmllbGR9fVwiLCBmaWVsZClcclxuICAgICAgLnJlcGxhY2UoXCJ7e2Rpcn19XCIsIGRpcilcclxuICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgIC5yZXBsYWNlKFwie3tkYXRlfX1cIiwgbW9tZW50KCkuZm9ybWF0KGRhdGVGb3JtYXQpKVxyXG4gICAgOiBcIlVudGl0bGVkXCI7XHJcblxyXG5mdW5jdGlvbiBtYWtlRmlsZW5hbWVVbmlxdWUoZmlsZW5hbWU6IHN0cmluZykge1xyXG4gIGxldCBpID0gMSxcclxuICAgIG5ld05hbWUgPSBmaWxlbmFtZTtcclxuICB3aGlsZSAoYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QobmV3TmFtZSwgXCJcIikpIHtcclxuICAgIGlmIChpID09PSAxKSBuZXdOYW1lICs9IGAgJHtpfWA7XHJcbiAgICBlbHNlIG5ld05hbWUgPSBuZXdOYW1lLnNsaWNlKDAsIC0yKSArIGAgJHtpfWA7XHJcbiAgICBpKys7XHJcbiAgfVxyXG4gIHJldHVybiBuZXdOYW1lO1xyXG59XHJcblxyXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlVGhyZWFkaW5nQ29udGVudFRlbXBsYXRlKFxyXG4gIHdyaXRlQkNzSW5saW5lOiBib29sZWFuLFxyXG4gIHRlbXBsYXRlUGF0aDogc3RyaW5nLFxyXG4gIG9wcEZpZWxkOiBzdHJpbmcsXHJcbiAgY3VyckZpbGU6IFRGaWxlLFxyXG4gIGNydW1iOiBzdHJpbmdcclxuKSB7XHJcbiAgbGV0IG5ld0NvbnRlbnQgPSBjcnVtYjtcclxuXHJcbiAgaWYgKHRlbXBsYXRlUGF0aCkge1xyXG4gICAgY29uc3QgdGVtcGxhdGVGaWxlID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoXHJcbiAgICAgIHRlbXBsYXRlUGF0aCxcclxuICAgICAgXCJcIlxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCB0ZW1wbGF0ZSA9IGF3YWl0IGFwcC52YXVsdC5jYWNoZWRSZWFkKHRlbXBsYXRlRmlsZSk7XHJcbiAgICBuZXdDb250ZW50ID0gdGVtcGxhdGUucmVwbGFjZShcclxuICAgICAgL1xce1xce0JDLXRocmVhZC1jcnVtYlxcfVxcfS9pLFxyXG4gICAgICB3cml0ZUJDc0lubGluZVxyXG4gICAgICAgID8gYCR7b3BwRmllbGR9OjogW1ske2N1cnJGaWxlLmJhc2VuYW1lfV1dYFxyXG4gICAgICAgIDogYCR7b3BwRmllbGR9OiBbJyR7Y3VyckZpbGUuYmFzZW5hbWV9J11gXHJcbiAgICApO1xyXG4gIH1cclxuICByZXR1cm4gbmV3Q29udGVudDtcclxufVxyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRocmVhZChwbHVnaW46IEJDUGx1Z2luLCBmaWVsZDogc3RyaW5nKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHtcclxuICAgIHVzZXJIaWVycyxcclxuICAgIHRocmVhZGluZ1RlbXBsYXRlLFxyXG4gICAgZGF0ZUZvcm1hdCxcclxuICAgIHRocmVhZEludG9OZXdQYW5lLFxyXG4gICAgdGhyZWFkaW5nRGlyVGVtcGxhdGVzLFxyXG4gICAgdGhyZWFkVW5kZXJDdXJzb3IsXHJcbiAgICB3cml0ZUJDc0lubGluZSxcclxuICB9ID0gc2V0dGluZ3M7XHJcblxyXG4gIGNvbnN0IGN1cnJGaWxlID0gZ2V0Q3VyckZpbGUoKTtcclxuICBpZiAoIWN1cnJGaWxlKSByZXR1cm47XHJcblxyXG4gIGNvbnN0IG5ld0ZpbGVQYXJlbnQgPSBhcHAuZmlsZU1hbmFnZXIuZ2V0TmV3RmlsZVBhcmVudChjdXJyRmlsZS5wYXRoKTtcclxuXHJcbiAgY29uc3QgZGlyID0gZ2V0RmllbGRJbmZvKHVzZXJIaWVycywgZmllbGQpLmZpZWxkRGlyO1xyXG4gIGNvbnN0IG9wcEZpZWxkID0gZ2V0T3BwRmllbGRzKHVzZXJIaWVycywgZmllbGQsIGRpcilbMF07XHJcblxyXG4gIGxldCBuZXdCYXNlbmFtZSA9IHJlc29sdmVUaHJlYWRpbmdOYW1lVGVtcGxhdGUoXHJcbiAgICB0aHJlYWRpbmdUZW1wbGF0ZSxcclxuICAgIGN1cnJGaWxlLFxyXG4gICAgZmllbGQsXHJcbiAgICBkaXIsXHJcbiAgICBkYXRlRm9ybWF0XHJcbiAgKTtcclxuICBuZXdCYXNlbmFtZSA9IG1ha2VGaWxlbmFtZVVuaXF1ZShuZXdCYXNlbmFtZSk7XHJcblxyXG4gIGNvbnN0IG9wcENydW1iID0gd3JpdGVCQ3NJbmxpbmVcclxuICAgID8gYCR7b3BwRmllbGR9OjogW1ske2N1cnJGaWxlLmJhc2VuYW1lfV1dYFxyXG4gICAgOiBgLS0tXFxuJHtvcHBGaWVsZH06IFsnJHtjdXJyRmlsZS5iYXNlbmFtZX0nXVxcbi0tLWA7XHJcblxyXG4gIGNvbnN0IHRlbXBsYXRlUGF0aCA9IHRocmVhZGluZ0RpclRlbXBsYXRlc1tkaXJdO1xyXG4gIGNvbnN0IG5ld0NvbnRlbnQgPSBhd2FpdCByZXNvbHZlVGhyZWFkaW5nQ29udGVudFRlbXBsYXRlKFxyXG4gICAgd3JpdGVCQ3NJbmxpbmUsXHJcbiAgICB0ZW1wbGF0ZVBhdGgsXHJcbiAgICBvcHBGaWVsZCxcclxuICAgIGN1cnJGaWxlLFxyXG4gICAgb3BwQ3J1bWJcclxuICApO1xyXG5cclxuICBjb25zdCBuZXdGaWxlID0gYXdhaXQgYXBwLnZhdWx0LmNyZWF0ZShcclxuICAgIG5vcm1hbGl6ZVBhdGgoYCR7bmV3RmlsZVBhcmVudC5wYXRofS8ke25ld0Jhc2VuYW1lfS5tZGApLFxyXG4gICAgbmV3Q29udGVudFxyXG4gICk7XHJcblxyXG4gIGlmICghd3JpdGVCQ3NJbmxpbmUpIHtcclxuICAgIGNvbnN0IHsgYXBpIH0gPSBhcHAucGx1Z2lucy5wbHVnaW5zLm1ldGFlZGl0ID8/IHt9O1xyXG4gICAgaWYgKCFhcGkpIHtcclxuICAgICAgbmV3IE5vdGljZShcclxuICAgICAgICBcIk1ldGFlZGl0IG11c3QgYmUgZW5hYmxlZCB0byB3cml0ZSB0byB5YW1sLiBBbHRlcm5hdGl2ZWx5LCB0b2dnbGUgdGhlIHNldHRpbmcgYFdyaXRlIEJyZWFkY3J1bWJzIElubGluZWAgdG8gdXNlIERhdGF2aWV3IGlubGluZSBmaWVsZHMgaW5zdGVhZC5cIlxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBhd2FpdCBjcmVhdGVPclVwZGF0ZVlhbWwoXHJcbiAgICAgIGZpZWxkLFxyXG4gICAgICBuZXdGaWxlLmJhc2VuYW1lLFxyXG4gICAgICBjdXJyRmlsZSxcclxuICAgICAgYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0RmlsZUNhY2hlKGN1cnJGaWxlKS5mcm9udG1hdHRlcixcclxuICAgICAgYXBpXHJcbiAgICApO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zdCBjcnVtYiA9IGAke2ZpZWxkfTo6IFtbJHtuZXdGaWxlLmJhc2VuYW1lfV1dYDtcclxuICAgIGNvbnN0IHsgZWRpdG9yIH0gPSBhcHAud29ya3NwYWNlLmFjdGl2ZUxlYWYudmlldztcclxuICAgIGlmICh0aHJlYWRVbmRlckN1cnNvciB8fCAhZWRpdG9yKSB7XHJcbiAgICAgIGVkaXRvci5yZXBsYWNlUmFuZ2UoY3J1bWIsIGVkaXRvci5nZXRDdXJzb3IoKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBUT0RPIENoZWNrIGlmIHRoaXMgbm90ZSBhbHJlYWR5IGhhcyB0aGlzIGZpZWxkXHJcbiAgICAgIGxldCBjb250ZW50ID0gYXdhaXQgYXBwLnZhdWx0LnJlYWQoY3VyckZpbGUpO1xyXG4gICAgICBjb25zdCBzcGxpdHMgPSBzcGxpdEF0WWFtbChjb250ZW50KTtcclxuICAgICAgY29udGVudCA9XHJcbiAgICAgICAgc3BsaXRzWzBdICtcclxuICAgICAgICAoc3BsaXRzWzBdLmxlbmd0aCA/IFwiXFxuXCIgOiBcIlwiKSArXHJcbiAgICAgICAgY3J1bWIgK1xyXG4gICAgICAgIChzcGxpdHNbMV0ubGVuZ3RoID8gXCJcXG5cIiA6IFwiXCIpICtcclxuICAgICAgICBzcGxpdHNbMV07XHJcblxyXG4gICAgICBhd2FpdCBhcHAudmF1bHQubW9kaWZ5KGN1cnJGaWxlLCBjb250ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IGxlYWYgPSB0aHJlYWRJbnRvTmV3UGFuZVxyXG4gICAgPyBhcHAud29ya3NwYWNlLmdldExlYWYodHJ1ZSlcclxuICAgIDogYXBwLndvcmtzcGFjZS5hY3RpdmVMZWFmO1xyXG5cclxuICBhd2FpdCBsZWFmLm9wZW5GaWxlKG5ld0ZpbGUsIHsgYWN0aXZlOiB0cnVlLCBtb2RlOiBcInNvdXJjZVwiIH0pO1xyXG5cclxuICBpZiAodGVtcGxhdGVQYXRoKSB7XHJcbiAgICBpZiAoYXBwLnBsdWdpbnMucGx1Z2luc1tcInRlbXBsYXRlci1vYnNpZGlhblwiXSkge1xyXG4gICAgICBhcHAuY29tbWFuZHMuZXhlY3V0ZUNvbW1hbmRCeUlkKFxyXG4gICAgICAgIFwidGVtcGxhdGVyLW9ic2lkaWFuOnJlcGxhY2UtaW4tZmlsZS10ZW1wbGF0ZXJcIlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3IE5vdGljZShcclxuICAgICAgICBcIlRoZSBUZW1wbGF0ZXIgcGx1Z2luIG11c3QgYmUgZW5hYmxlZCB0byByZXNvbHZlIHRoZSB0ZW1wbGF0ZXMgaW4gdGhlIG5ldyBub3RlXCJcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlmICh0aHJlYWRpbmdUZW1wbGF0ZSkge1xyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgY29uc3QgZWRpdG9yID0gbGVhZi52aWV3LmVkaXRvciBhcyBFZGl0b3I7XHJcbiAgICBlZGl0b3Iuc2V0Q3Vyc29yKGVkaXRvci5nZXRWYWx1ZSgpLmxlbmd0aCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnN0IG5vdGVOYW1lSW5wdXRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInZpZXctaGVhZGVyLXRpdGxlXCIpO1xyXG5cclxuICAgIGNvbnN0IG5ld05vdGVJbnB1dEVsID0gQXJyYXkuZnJvbShub3RlTmFtZUlucHV0cykuZmluZChcclxuICAgICAgKGlucHV0OiBIVE1MSW5wdXRFbGVtZW50KSA9PiBpbnB1dC5pbm5lclRleHQgPT09IG5ld0Jhc2VuYW1lXHJcbiAgICApIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBuZXdOb3RlSW5wdXRFbC5pbm5lclRleHQgPSBcIlwiO1xyXG4gICAgbmV3Tm90ZUlucHV0RWwuZm9jdXMoKTtcclxuICB9XHJcbn1cclxuIiwgImltcG9ydCB7IHdhcm4gfSBmcm9tIFwibG9nbGV2ZWxcIjtcclxuaW1wb3J0IHsgTm90aWNlLCBURmlsZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQgeyBnZXRPcHBGaWVsZHMgfSBmcm9tIFwiLi4vVXRpbHMvSGllclV0aWxzXCI7XHJcbmltcG9ydCB7IGNoYW5nZVlhbWwsIGdldEN1cnJGaWxlLCBzcGxpdEF0WWFtbCB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVCQ1RvRmlsZShwbHVnaW46IEJDUGx1Z2luLCBjdXJyRmlsZT86IFRGaWxlKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncywgbWFpbkcgfSA9IHBsdWdpbjtcclxuICBjb25zdCBmaWxlID0gY3VyckZpbGUgPz8gZ2V0Q3VyckZpbGUoKTtcclxuXHJcbiAgY29uc3QgeyBsaW1pdFdyaXRlQkNDaGVja2JveGVzLCB3cml0ZUJDc0lubGluZSwgdXNlckhpZXJzIH0gPSBzZXR0aW5ncztcclxuXHJcbiAgY29uc3Qgc3VjY0luZm8gPSBtYWluRy5tYXBJbkVkZ2VzKGZpbGUuYmFzZW5hbWUsIChrLCBhLCBzLCB0KSA9PiB7XHJcbiAgICBjb25zdCB7IGZpZWxkLCBkaXIgfSA9IGE7XHJcbiAgICBjb25zdCBvcHBGaWVsZCA9IGdldE9wcEZpZWxkcyh1c2VySGllcnMsIGZpZWxkLCBkaXIpWzBdO1xyXG4gICAgcmV0dXJuIHsgc3VjYzogcywgZmllbGQ6IG9wcEZpZWxkIH07XHJcbiAgfSk7XHJcblxyXG4gIGZvciAoY29uc3QgeyBzdWNjLCBmaWVsZCB9IG9mIHN1Y2NJbmZvKSB7XHJcbiAgICBpZiAoIWxpbWl0V3JpdGVCQ0NoZWNrYm94ZXMuaW5jbHVkZXMoZmllbGQpKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IGFwcC52YXVsdC5yZWFkKGZpbGUpO1xyXG4gICAgY29uc3QgW3lhbWwsIGFmdGVyWWFtbF0gPSBzcGxpdEF0WWFtbChjb250ZW50KTtcclxuXHJcbiAgICBpZiAoIXdyaXRlQkNzSW5saW5lKSB7XHJcbiAgICAgIGNvbnN0IGlubmVyID0geWFtbCA9PT0gXCJcIiA/IHlhbWwgOiB5YW1sLnNsaWNlKDQsIC00KTtcclxuICAgICAgY29uc3QgbmV3WWFtbCA9IGNoYW5nZVlhbWwoaW5uZXIsIGZpZWxkLCBzdWNjKTtcclxuICAgICAgY29uc3QgbmV3Q29udGVudCA9IGAtLS1cXG4ke25ld1lhbWx9XFxuLS0tJHthZnRlcllhbWx9YDtcclxuICAgICAgYXdhaXQgYXBwLnZhdWx0Lm1vZGlmeShmaWxlLCBuZXdDb250ZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIFRPRE8gQ2hlY2sgaWYgdGhpcyBub3RlIGFscmVhZHkgaGFzIHRoaXMgZmllbGRcclxuICAgICAgY29uc3QgbmV3Q29udGVudCA9XHJcbiAgICAgICAgeWFtbCArXHJcbiAgICAgICAgKHlhbWwubGVuZ3RoID8gXCJcXG5cIiA6IFwiXCIpICtcclxuICAgICAgICBgJHtmaWVsZH06OiBbWyR7c3VjY31dXWAgK1xyXG4gICAgICAgIChhZnRlcllhbWwubGVuZ3RoID8gXCJcXG5cIiA6IFwiXCIpICtcclxuICAgICAgICBhZnRlcllhbWw7XHJcblxyXG4gICAgICBhd2FpdCBhcHAudmF1bHQubW9kaWZ5KGZpbGUsIG5ld0NvbnRlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlQkNzVG9BbGxGaWxlcyhwbHVnaW46IEJDUGx1Z2luKSB7XHJcbiAgaWYgKCFwbHVnaW4uc2V0dGluZ3Muc2hvd1dyaXRlQWxsQkNzQ21kKSB7XHJcbiAgICBuZXcgTm90aWNlKFxyXG4gICAgICBcIllvdSBmaXJzdCBuZWVkIHRvIGVuYWJsZSB0aGlzIGNvbW1hbmQgaW4gQnJlYWRjcnVtYnMnIHNldHRpbmdzLlwiXHJcbiAgICApO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBpZiAoXHJcbiAgICB3aW5kb3cuY29uZmlybShcclxuICAgICAgXCJUaGlzIGFjdGlvbiB3aWxsIHdyaXRlIHRoZSBpbXBsaWVkIEJyZWFkY3J1bWJzIG9mIGVhY2ggZmlsZSB0byB0aGF0IGZpbGUuXFxuSXQgdXNlcyB0aGUgTWV0YUVkaXQgcGx1Z2lucyBBUEkgdG8gdXBkYXRlIHRoZSBZQU1MLCBzbyBpdCBzaG91bGQgb25seSBhZmZlY3QgdGhhdCBmcm9udG1hdHRlciBvZiB5b3VyIG5vdGUuXFxuSSBjYW4ndCBwcm9taXNlIHRoYXQgbm90aGluZyBiYWQgd2lsbCBoYXBwZW4uICoqVGhpcyBvcGVyYXRpb24gY2Fubm90IGJlIHVuZG9uZSoqLlwiXHJcbiAgICApXHJcbiAgKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHdpbmRvdy5jb25maXJtKFxyXG4gICAgICAgIFwiQXJlIHlvdSBzdXJlPyBZb3UgaGF2ZSBiZWVuIHdhcm5lZCB0aGF0IHRoaXMgb3BlcmF0aW9uIHdpbGwgYXR0ZW1wdCB0byB1cGRhdGUgYWxsIGZpbGVzIHdpdGggaW1wbGllZCBicmVhZGNydW1icy5cIlxyXG4gICAgICApXHJcbiAgICApIHtcclxuICAgICAgaWYgKHdpbmRvdy5jb25maXJtKFwiRm9yIHJlYWwsIHBsZWFzZSBtYWtlIGEgYmFjayB1cCBiZWZvcmUuXCIpKSB7XHJcbiAgICAgICAgY29uc3Qgbm90aWNlID0gbmV3IE5vdGljZShcIk9wZXJhdGlvbiBTdGFydGVkXCIpO1xyXG4gICAgICAgIGNvbnN0IHByb2JsZW1GaWxlcyA9IFtdO1xyXG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBhcHAudmF1bHQuZ2V0TWFya2Rvd25GaWxlcygpKSB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBhd2FpdCB3cml0ZUJDVG9GaWxlKHBsdWdpbiwgZmlsZSk7XHJcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHByb2JsZW1GaWxlcy5wdXNoKGZpbGUucGF0aCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG5vdGljZS5zZXRNZXNzYWdlKFwiT3BlcmF0aW9uIENvbXBsZXRlXCIpO1xyXG4gICAgICAgIGlmIChwcm9ibGVtRmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICBuZXcgTm90aWNlKFxyXG4gICAgICAgICAgICBcIlNvbWUgZmlsZXMgd2VyZSBub3QgdXBkYXRlZCBkdWUgdG8gZXJyb3JzLiBDaGVjayB0aGUgY29uc29sZSB0byBzZWUgd2hpY2ggb25lcy5cIlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHdhcm4oeyBwcm9ibGVtRmlsZXMgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsICJpbXBvcnQge1xyXG4gIEVkaXRvcixcclxuICBFZGl0b3JQb3NpdGlvbixcclxuICBFZGl0b3JTdWdnZXN0LFxyXG4gIEVkaXRvclN1Z2dlc3RDb250ZXh0LFxyXG4gIEVkaXRvclN1Z2dlc3RUcmlnZ2VySW5mbyxcclxuICBURmlsZSxcclxufSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHsgaXNJbnNpZGVZYW1sIH0gZnJvbSBcIi4vVXRpbHMvT2JzaWRpYW5VdGlsc1wiO1xyXG5pbXBvcnQgeyBCQ19GSUVMRFNfSU5GTyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi9tYWluXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRmllbGRTdWdnZXN0b3IgZXh0ZW5kcyBFZGl0b3JTdWdnZXN0PHN0cmluZz4ge1xyXG4gIHBsdWdpbjogQkNQbHVnaW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHBsdWdpbjogQkNQbHVnaW4pIHtcclxuICAgIHN1cGVyKGFwcCk7XHJcbiAgICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcclxuICB9XHJcblxyXG4gIG9uVHJpZ2dlcihcclxuICAgIGN1cnNvcjogRWRpdG9yUG9zaXRpb24sXHJcbiAgICBlZGl0b3I6IEVkaXRvcixcclxuICAgIF86IFRGaWxlXHJcbiAgKTogRWRpdG9yU3VnZ2VzdFRyaWdnZXJJbmZvIHwgbnVsbCB7XHJcbiAgICBjb25zdCBzdWIgPSBlZGl0b3IuZ2V0TGluZShjdXJzb3IubGluZSkuc3Vic3RyaW5nKDAsIGN1cnNvci5jaCk7XHJcbiAgICBjb25zdCBtYXRjaCA9IHN1Yi5tYXRjaCgvXkJDLSguKikkLyk/LlsxXTtcclxuICAgIGlmIChtYXRjaCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZW5kOiBjdXJzb3IsXHJcbiAgICAgICAgc3RhcnQ6IHtcclxuICAgICAgICAgIGNoOiBzdWIubGFzdEluZGV4T2YobWF0Y2gpLFxyXG4gICAgICAgICAgbGluZTogY3Vyc29yLmxpbmUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBxdWVyeTogbWF0Y2gsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXRTdWdnZXN0aW9ucyA9IChjb250ZXh0OiBFZGl0b3JTdWdnZXN0Q29udGV4dCkgPT4ge1xyXG4gICAgY29uc3QgeyBxdWVyeSB9ID0gY29udGV4dDtcclxuICAgIHJldHVybiBCQ19GSUVMRFNfSU5GTy5tYXAoKHN1ZykgPT4gc3VnLmZpZWxkKS5maWx0ZXIoKHN1ZykgPT5cclxuICAgICAgc3VnLmluY2x1ZGVzKHF1ZXJ5KVxyXG4gICAgKTtcclxuICB9O1xyXG5cclxuICByZW5kZXJTdWdnZXN0aW9uKHN1Z2dlc3Rpb246IHN0cmluZywgZWw6IEhUTUxFbGVtZW50KTogdm9pZCB7XHJcbiAgICBlbC5jcmVhdGVEaXYoe1xyXG4gICAgICB0ZXh0OiBzdWdnZXN0aW9uLnJlcGxhY2UoXCJCQy1cIiwgXCJcIiksXHJcbiAgICAgIGNsczogXCJCQy1zdWdnZXN0ZXItY29udGFpbmVyXCIsXHJcbiAgICAgIGF0dHI6IHtcclxuICAgICAgICBcImFyaWEtbGFiZWxcIjogQkNfRklFTERTX0lORk8uZmluZCgoZikgPT4gZi5maWVsZCA9PT0gc3VnZ2VzdGlvbik/LmRlc2MsXHJcbiAgICAgICAgXCJhcmlhLWxhYmVsLXBvc2l0aW9uXCI6IFwicmlnaHRcIixcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0U3VnZ2VzdGlvbihzdWdnZXN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgY29udGV4dCwgcGx1Z2luIH0gPSB0aGlzO1xyXG4gICAgaWYgKCFjb250ZXh0KSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgZmllbGQgPSBCQ19GSUVMRFNfSU5GTy5maW5kKChmKSA9PiBmLmZpZWxkID09PSBzdWdnZXN0aW9uKTtcclxuICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gYCR7c3VnZ2VzdGlvbn0ke2ZpZWxkPy5baXNJbnNpZGVZYW1sKGFwcCkgPyBcImFmdGVyWWFtbFwiIDogXCJhZnRlcklubGluZVwiXVxyXG4gICAgICB9YDtcclxuXHJcbiAgICBjb250ZXh0LmVkaXRvci5yZXBsYWNlUmFuZ2UoXHJcbiAgICAgIHJlcGxhY2VtZW50LFxyXG4gICAgICB7IGNoOiAwLCBsaW5lOiBjb250ZXh0LnN0YXJ0LmxpbmUgfSxcclxuICAgICAgY29udGV4dC5lbmRcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsICJpbXBvcnQge1xyXG4gIEVkaXRvcixcclxuICBFZGl0b3JQb3NpdGlvbixcclxuICBFZGl0b3JTdWdnZXN0LFxyXG4gIEVkaXRvclN1Z2dlc3RDb250ZXh0LFxyXG4gIEVkaXRvclN1Z2dlc3RUcmlnZ2VySW5mbyxcclxuICBURmlsZSxcclxufSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHsgaXNJbnNpZGVZYW1sIH0gZnJvbSBcIi4vVXRpbHMvT2JzaWRpYW5VdGlsc1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi9tYWluXCI7XHJcbmltcG9ydCB7IGVzY2FwZVJlZ2V4IH0gZnJvbSBcIi4vVXRpbHMvZ2VuZXJhbFV0aWxzXCI7XHJcbmltcG9ydCB7IGdldEZpZWxkcyB9IGZyb20gXCIuL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFJlbGF0aW9uU3VnZ2VzdG9yIGV4dGVuZHMgRWRpdG9yU3VnZ2VzdDxzdHJpbmc+IHtcclxuICBwbHVnaW46IEJDUGx1Z2luO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwbHVnaW46IEJDUGx1Z2luKSB7XHJcbiAgICBzdXBlcihhcHApO1xyXG4gICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XHJcbiAgfVxyXG5cclxuICBvblRyaWdnZXIoXHJcbiAgICBjdXJzb3I6IEVkaXRvclBvc2l0aW9uLFxyXG4gICAgZWRpdG9yOiBFZGl0b3IsXHJcbiAgICBfOiBURmlsZVxyXG4gICk6IEVkaXRvclN1Z2dlc3RUcmlnZ2VySW5mbyB8IG51bGwge1xyXG4gICAgY29uc3QgdHJpZyA9IHRoaXMucGx1Z2luLnNldHRpbmdzLnJlbFN1Z2dlc3RvclRyaWdnZXI7XHJcbiAgICBjb25zdCBzdWIgPSBlZGl0b3IuZ2V0TGluZShjdXJzb3IubGluZSkuc3Vic3RyaW5nKDAsIGN1cnNvci5jaCk7XHJcblxyXG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGAuKj8ke2VzY2FwZVJlZ2V4KHRyaWcpfSguKikkYCk7XHJcbiAgICBjb25zdCBtYXRjaCA9IHJlZ2V4LmV4ZWMoc3ViKT8uWzFdO1xyXG5cclxuICAgIGlmIChtYXRjaCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gbnVsbDtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHN0YXJ0OiB7XHJcbiAgICAgICAgY2g6IHN1Yi5sYXN0SW5kZXhPZih0cmlnKSxcclxuICAgICAgICBsaW5lOiBjdXJzb3IubGluZSxcclxuICAgICAgfSxcclxuICAgICAgZW5kOiBjdXJzb3IsXHJcbiAgICAgIHF1ZXJ5OiBtYXRjaCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRTdWdnZXN0aW9ucyA9IChjb250ZXh0OiBFZGl0b3JTdWdnZXN0Q29udGV4dCkgPT4ge1xyXG4gICAgY29uc3QgeyBxdWVyeSB9ID0gY29udGV4dDtcclxuICAgIGNvbnN0IHsgdXNlckhpZXJzIH0gPSB0aGlzLnBsdWdpbi5zZXR0aW5ncztcclxuICAgIHJldHVybiBnZXRGaWVsZHModXNlckhpZXJzKS5maWx0ZXIoKHN1ZykgPT4gc3VnLmluY2x1ZGVzKHF1ZXJ5KSk7XHJcbiAgfTtcclxuXHJcbiAgcmVuZGVyU3VnZ2VzdGlvbihzdWdnZXN0aW9uOiBzdHJpbmcsIGVsOiBIVE1MRWxlbWVudCk6IHZvaWQge1xyXG4gICAgZWwuY3JlYXRlRGl2KHtcclxuICAgICAgdGV4dDogc3VnZ2VzdGlvbixcclxuICAgICAgY2xzOiBcImNvZGVibG9jay1zdWdnZXN0aW9uXCIsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFN1Z2dlc3Rpb24oc3VnZ2VzdGlvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGNvbnRleHQsIHBsdWdpbiB9ID0gdGhpcztcclxuICAgIGlmICghY29udGV4dCkgcmV0dXJuXHJcblxyXG4gICAgY29uc3QgdHJpZyA9IHBsdWdpbi5zZXR0aW5ncy5yZWxTdWdnZXN0b3JUcmlnZ2VyO1xyXG4gICAgY29uc3QgeyBzdGFydCwgZW5kLCBlZGl0b3IgfSA9IGNvbnRleHQ7XHJcblxyXG4gICAgY29uc3QgcmVwbGFjZW1lbnQgPSBzdWdnZXN0aW9uICsgKGlzSW5zaWRlWWFtbChhcHApID8gXCI6IFwiIDogXCI6OiBcIikgKyAnW1snO1xyXG4gICAgZWRpdG9yLnJlcGxhY2VSYW5nZShcclxuICAgICAgcmVwbGFjZW1lbnQsXHJcbiAgICAgIHsgY2g6IHN0YXJ0LmNoICsgMSAtIHRyaWcubGVuZ3RoLCBsaW5lOiBzdGFydC5saW5lIH0sXHJcbiAgICAgIGVuZFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwgImltcG9ydCB7IFBsdWdpblNldHRpbmdUYWIsIFNldHRpbmcgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHsgZHJhd1RyYWlsIH0gZnJvbSBcInNyYy9WaWV3cy9UcmFpbFZpZXdcIjtcclxuaW1wb3J0IEtvRmkgZnJvbSBcIi4uL0NvbXBvbmVudHMvS29GaS5zdmVsdGVcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgYWRkQ3JlYXRlSW5kZXhTZXR0aW5ncyB9IGZyb20gXCIuL0NyZWF0ZUluZGV4U2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgYWRkQ1NWU2V0dGluZ3MgfSBmcm9tIFwiLi9DU1ZTZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBhZGREYXRhdmlld1NldHRpbmdzIH0gZnJvbSBcIi4vRGF0YXZpZXdOb3RlU2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgYWRkRGF0ZU5vdGVTZXR0aW5ncyB9IGZyb20gXCIuL0RhdGVOb3RlU2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgYWRkRGVidWdnaW5nc1NldHRpbmdzIH0gZnJvbSBcIi4vRGVidWdnaW5nU2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgYWRkRGVuZHJvblNldHRpbmdzIH0gZnJvbSBcIi4vRGVuZHJvblNldHRpbmdzXCI7XHJcbmltcG9ydCB7IGFkZEdlbmVyYWxTZXR0aW5ncyB9IGZyb20gXCIuL0dlbmVyYWxTZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBhZGRIaWVyYXJjaHlOb3RlU2V0dGluZ3MgfSBmcm9tIFwiLi9IaWVyYXJjaHlOb3RlU2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgYWRkSGllcmFyY2h5U2V0dGluZ3MgfSBmcm9tIFwiLi9IaWVyYXJjaHlTZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBhZGRKdW1wVG9OZXh0U2V0dGluZ3MgfSBmcm9tIFwiLi9KdW1wVG9OZXh0U2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgYWRkTWF0cml4Vmlld1NldHRpbmdzIH0gZnJvbSBcIi4vTWF0cml4Vmlld1NldHRpbmdzXCI7XHJcbmltcG9ydCB7IGFkZE5vU3lzdGVtU2V0dGluZ3MgfSBmcm9tIFwiLi9Ob1N5c3RlbVNldHRpbmdzXCI7XHJcbmltcG9ydCB7IGFkZFJlZ2V4Tm90ZVNldHRpbmdzIH0gZnJvbSBcIi4vUmVnZXhOb3RlU2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgYWRkUmVsYXRpb25TZXR0aW5ncyB9IGZyb20gXCIuL1JlbGF0aW9uU2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgYWRkVGFnTm90ZVNldHRpbmdzIH0gZnJvbSBcIi4vVGFnTm90ZVNldHRpbmdzXCI7XHJcbmltcG9ydCB7IGFkZFRocmVhZGluZ1NldHRpbmdzIH0gZnJvbSBcIi4vVGhyZWFkaW5nU2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgYWRkVHJhaWxWaWV3U2V0dGluZ3MgfSBmcm9tIFwiLi9UcmFpbFNldHRpbmdzXCI7XHJcbmltcG9ydCB7IGFkZFZpc01vZGFsU2V0dGluZ3MgfSBmcm9tIFwiLi9WaXNNb2RhbFNldHRpbmdzXCI7XHJcbmltcG9ydCB7IGFkZFdyaXRlQkNzU2V0dGluZ3MgfSBmcm9tIFwiLi9Xcml0ZUJDc1NldHRpbmdzXCI7XHJcblxyXG5leHBvcnQgY29uc3QgZnJhZ1dpdGhIVE1MID0gKGh0bWw6IHN0cmluZykgPT5cclxuICBjcmVhdGVGcmFnbWVudCgoZnJhZykgPT4gKGZyYWcuY3JlYXRlRGl2KCkuaW5uZXJIVE1MID0gaHRtbCkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRldGFpbHMgPSAodGV4dDogc3RyaW5nLCBwYXJlbnQ6IEhUTUxFbGVtZW50KSA9PlxyXG4gIHBhcmVudC5jcmVhdGVFbChcImRldGFpbHNcIiwge30sIChkKSA9PiBkLmNyZWF0ZUVsKFwic3VtbWFyeVwiLCB7IHRleHQgfSkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IHN1YkRldGFpbHMgPSAodGV4dDogc3RyaW5nLCBwYXJlbnQ6IEhUTUxEZXRhaWxzRWxlbWVudCkgPT5cclxuICBwYXJlbnQuY3JlYXRlRGl2KHtcclxuICAgIGF0dHI6IHsgc3R5bGU6IFwicGFkZGluZy1sZWZ0OiAxMHB4O1wiIH0sXHJcbiAgfSlcclxuICAgIC5jcmVhdGVFbChcImRldGFpbHNcIiwge30sIChkKSA9PiBkLmNyZWF0ZUVsKFwic3VtbWFyeVwiLCB7IHRleHQgfSkpO1xyXG5cclxuZXhwb3J0IGNsYXNzIEJDU2V0dGluZ1RhYiBleHRlbmRzIFBsdWdpblNldHRpbmdUYWIge1xyXG4gIHBsdWdpbjogQkNQbHVnaW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHBsdWdpbjogQkNQbHVnaW4pIHtcclxuICAgIHN1cGVyKGFwcCwgcGx1Z2luKTtcclxuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZGlzcGxheSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHsgcGx1Z2luLCBjb250YWluZXJFbCB9ID0gdGhpcztcclxuICAgIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpblxyXG5cclxuICAgIGNvbnRhaW5lckVsLmVtcHR5KCk7XHJcbiAgICBjb250YWluZXJFbC5jcmVhdGVFbChcImgyXCIsIHsgdGV4dDogXCJCcmVhZGNydW1icyBTZXR0aW5nc1wiIH0pO1xyXG4gICAgY29udGFpbmVyRWwuYWRkQ2xhc3MoXCJCQy1zZXR0aW5ncy10YWJcIik7XHJcblxyXG4gICAgYWRkSGllcmFyY2h5U2V0dGluZ3MocGx1Z2luLCBjb250YWluZXJFbCk7XHJcbiAgICBhZGRSZWxhdGlvblNldHRpbmdzKHBsdWdpbiwgY29udGFpbmVyRWwpO1xyXG4gICAgYWRkR2VuZXJhbFNldHRpbmdzKHBsdWdpbiwgY29udGFpbmVyRWwpO1xyXG5cclxuICAgIGNvbnN0IHZpZXdEZXRhaWxzID0gZGV0YWlscyhcIlZpZXdzXCIsIGNvbnRhaW5lckVsKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyh2aWV3RGV0YWlscylcclxuICAgICAgLnNldE5hbWUoXCJPcGVuIFZpZXdzIGJ5IERlZmF1bHRcIilcclxuICAgICAgLnNldERlc2MoZnJhZ1dpdGhIVE1MKFwiQ2hvb3NlIHdoaWNoIG9mIHRoZSB2aWV3cyB0byBvcGVuIG9ubG9hZDxici8+T3JkZXIgaXM6IFRyYWlsL0dyaWQvSnVnZ2wsIE1hdHJpeCwgRHVja3MsIFRyZWVcIikpXHJcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cclxuICAgICAgICB0b2dnbGVcclxuICAgICAgICAgIC5zZXRUb29sdGlwKFwiVHJhaWwvR3JpZC9KdWdnbFwiKVxyXG4gICAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLnNob3dCQ3MpXHJcbiAgICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHNldHRpbmdzLnNob3dCQ3MgPSB2YWx1ZTtcclxuICAgICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgICBhd2FpdCBkcmF3VHJhaWwocGx1Z2luKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB7XHJcbiAgICAgICAgdG9nZ2xlXHJcbiAgICAgICAgICAuc2V0VG9vbHRpcChcIk1hdHJpeCBWaWV3XCIpXHJcbiAgICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3Mub3Blbk1hdHJpeE9uTG9hZClcclxuICAgICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgc2V0dGluZ3Mub3Blbk1hdHJpeE9uTG9hZCA9IHZhbHVlO1xyXG4gICAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSlcclxuICAgICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB7XHJcbiAgICAgICAgdG9nZ2xlXHJcbiAgICAgICAgICAuc2V0VG9vbHRpcChcIkR1Y2tzIFZpZXdcIilcclxuICAgICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5vcGVuRHVja09uTG9hZClcclxuICAgICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgc2V0dGluZ3Mub3BlbkR1Y2tPbkxvYWQgPSB2YWx1ZTtcclxuICAgICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xyXG4gICAgICAgIHRvZ2dsZVxyXG4gICAgICAgICAgLnNldFRvb2x0aXAoXCJUcmVlIFZpZXdcIilcclxuICAgICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5vcGVuRG93bk9uTG9hZClcclxuICAgICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgc2V0dGluZ3Mub3BlbkRvd25PbkxvYWQgPSB2YWx1ZTtcclxuICAgICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHZpZXdEZXRhaWxzLmNyZWF0ZUVsKCdocicpXHJcblxyXG4gICAgYWRkTWF0cml4Vmlld1NldHRpbmdzKHBsdWdpbiwgdmlld0RldGFpbHMpO1xyXG4gICAgYWRkVHJhaWxWaWV3U2V0dGluZ3MocGx1Z2luLCB2aWV3RGV0YWlscyk7XHJcbiAgICBhZGRWaXNNb2RhbFNldHRpbmdzKHBsdWdpbiwgdmlld0RldGFpbHMpO1xyXG4gICAgLy8gYWRkVHJlZVZpZXdTZXR0aW5ncyhwbHVnaW4sIHZpZXdEZXRhaWxzKTtcclxuXHJcbiAgICBjb25zdCBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHMgPSBkZXRhaWxzKFxyXG4gICAgICBcIkFsdGVybmF0aXZlIEhpZXJhcmNoaWVzXCIsXHJcbiAgICAgIGNvbnRhaW5lckVsXHJcbiAgICApO1xyXG5cclxuICAgIGFkZFRhZ05vdGVTZXR0aW5ncyhwbHVnaW4sIGFsdGVybmF0aXZlSGllcmFyY2h5RGV0YWlscyk7XHJcbiAgICBhZGRSZWdleE5vdGVTZXR0aW5ncyhwbHVnaW4sIGFsdGVybmF0aXZlSGllcmFyY2h5RGV0YWlscyk7XHJcbiAgICBhZGROb1N5c3RlbVNldHRpbmdzKHBsdWdpbiwgYWx0ZXJuYXRpdmVIaWVyYXJjaHlEZXRhaWxzKTtcclxuICAgIGFkZEhpZXJhcmNoeU5vdGVTZXR0aW5ncyhwbHVnaW4sIGFsdGVybmF0aXZlSGllcmFyY2h5RGV0YWlscyk7XHJcbiAgICBhZGRDU1ZTZXR0aW5ncyhwbHVnaW4sIGFsdGVybmF0aXZlSGllcmFyY2h5RGV0YWlscyk7XHJcbiAgICBhZGREZW5kcm9uU2V0dGluZ3MocGx1Z2luLCBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHMpO1xyXG4gICAgYWRkRGF0YXZpZXdTZXR0aW5ncyhwbHVnaW4sIGFsdGVybmF0aXZlSGllcmFyY2h5RGV0YWlscyk7XHJcbiAgICBhZGREYXRlTm90ZVNldHRpbmdzKHBsdWdpbiwgYWx0ZXJuYXRpdmVIaWVyYXJjaHlEZXRhaWxzKTtcclxuXHJcbiAgICBjb25zdCBjbWRzRGV0YWlscyA9IGRldGFpbHMoXCJDb21tYW5kc1wiLCBjb250YWluZXJFbCk7XHJcbiAgICBhZGRXcml0ZUJDc1NldHRpbmdzKHBsdWdpbiwgY21kc0RldGFpbHMpO1xyXG4gICAgYWRkQ3JlYXRlSW5kZXhTZXR0aW5ncyhwbHVnaW4sIGNtZHNEZXRhaWxzKTtcclxuICAgIGFkZFRocmVhZGluZ1NldHRpbmdzKHBsdWdpbiwgY21kc0RldGFpbHMpO1xyXG4gICAgYWRkSnVtcFRvTmV4dFNldHRpbmdzKHBsdWdpbiwgY21kc0RldGFpbHMpO1xyXG5cclxuICAgIGFkZERlYnVnZ2luZ3NTZXR0aW5ncyhwbHVnaW4sIGNvbnRhaW5lckVsKTtcclxuXHJcbiAgICBuZXcgS29GaSh7IHRhcmdldDogY29udGFpbmVyRWwgfSk7XHJcbiAgfVxyXG59XHJcbiIsICI8IS0tIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL0hFbWlsZS9qdWdnbC9ibG9iL21haW4vanVnZ2wvdWkvS29GaS5zdmVsdGUgLS0+XHJcbjxzY3JpcHQ+XHJcbiAgbGV0IGJ1dHRvbjtcclxuICBjb25zdCBpbml0aWFsaXplS29maSA9ICgpID0+IHtcclxuICAgIGtvZml3aWRnZXQyLmluaXQoXHJcbiAgICAgIFwiU3VwcG9ydCBCcmVhZGNydW1icyBkZXZlbG9wbWVudCFcIixcclxuICAgICAgXCIjMjlhYmUwXCIsXHJcbiAgICAgIFwiRzJHNDU0VFpGXCJcclxuICAgICk7XHJcbiAgICBidXR0b24uaW5uZXJIVE1MID0ga29maXdpZGdldDIuZ2V0SFRNTCgpO1xyXG4gIH07XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN2ZWx0ZTpoZWFkPlxyXG4gIDxzY3JpcHRcclxuICAgIHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIlxyXG4gICAgc3JjPVwiaHR0cHM6Ly9rby1maS5jb20vd2lkZ2V0cy93aWRnZXRfMi5qc1wiXHJcbiAgICBvbjpsb2FkPXtpbml0aWFsaXplS29maX0+XHJcbiAgPC9zY3JpcHQ+XHJcbjwvc3ZlbHRlOmhlYWQ+XHJcbjxkaXYgY2xhc3M9XCJCQy1Lb2ZpLWJ1dHRvblwiIGJpbmQ6dGhpcz17YnV0dG9ufSAvPlxyXG5cclxuPHN0eWxlPlxyXG4gIC5CQy1Lb2ZpLWJ1dHRvbiB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIH1cclxuPC9zdHlsZT5cclxuIiwgImltcG9ydCB7IFNldHRpbmcgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgZnJhZ1dpdGhIVE1MLCBzdWJEZXRhaWxzIH0gZnJvbSBcIi4vQnJlYWRjcnVtYnNTZXR0aW5nVGFiXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkQ3JlYXRlSW5kZXhTZXR0aW5ncyhcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIGNtZHNEZXRhaWxzOiBIVE1MRGV0YWlsc0VsZW1lbnRcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IGNyZWF0ZUluZGV4RGV0YWlscyA9IHN1YkRldGFpbHMoXCJDcmVhdGUgSW5kZXhcIiwgY21kc0RldGFpbHMpO1xyXG5cclxuICBuZXcgU2V0dGluZyhjcmVhdGVJbmRleERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkFkZCB3aWtsaW5rIGJyYWNrZXRzXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgIFwiV2hlbiBjcmVhdGluZyBhbiBpbmRleCwgc2hvdWxkIGl0IHdyYXAgdGhlIG5vdGUgbmFtZSBpbiB3aWtpbGlua3MgPGNvZGU+W1tdXTwvY29kZT4gb3Igbm90Llxcblx1MjcwNSA9IHllcywgXHUyNzRDID0gbm8uXCJcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGUuc2V0VmFsdWUoc2V0dGluZ3Mud2lraWxpbmtJbmRleCkub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3Mud2lraWxpbmtJbmRleCA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKGNyZWF0ZUluZGV4RGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiSW5kZW50IENoYXJhY3RlclwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICAnVGhlIGNoYXJhY3RlcihzKSB1c2VkIHRvIGluZGVudCB0aGUgaW5kZXguIFRoZXNlIGNhbiBiZSBhbnl0aGluZyB5b3Ugd2FudCwgYnV0IHdpbGwgdXN1YWxseSBiZSBlaXRoZXIgc3BhY2VzIG9yIHRhYnMuIEVudGVyIDxjb2RlPlxcXFx0PC9jb2RlPiB0byB1c2UgdGFicy4nXHJcbiAgICAgICkpXHJcbiAgICAuYWRkVGV4dCgodGV4dCkgPT4ge1xyXG4gICAgICB0ZXh0XHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLmNyZWF0ZUluZGV4SW5kZW50KVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLmNyZWF0ZUluZGV4SW5kZW50ID0gdmFsdWU7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgfSlcclxuICAgIH0pXHJcblxyXG4gIG5ldyBTZXR0aW5nKGNyZWF0ZUluZGV4RGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiU2hvdyBhbGlhc2VzIG9mIG5vdGVzIGluIGluZGV4XCIpXHJcbiAgICAuc2V0RGVzYyhcIlNob3cgdGhlIGFsaWFzZXMgb2YgZWFjaCBub3RlIGluIGJyYWNrZXRzLlxcblx1MjcwNSA9IHllcywgXHUyNzRDID0gbm8uXCIpXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgIHRvZ2dsZS5zZXRWYWx1ZShzZXR0aW5ncy5hbGlhc2VzSW5JbmRleCkub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MuYWxpYXNlc0luSW5kZXggPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG59XHJcbiIsICJpbXBvcnQgeyBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IHN1YkRldGFpbHMgfSBmcm9tIFwiLi9CcmVhZGNydW1ic1NldHRpbmdUYWJcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRDU1ZTZXR0aW5ncyhcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIGFsdGVybmF0aXZlSGllcmFyY2h5RGV0YWlsczogSFRNTERldGFpbHNFbGVtZW50XHJcbikge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCBjc3ZEZXRhaWxzID0gc3ViRGV0YWlscyhcIkNTViBOb3Rlc1wiLCBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHMpO1xyXG5cclxuICBuZXcgU2V0dGluZyhjc3ZEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJDU1YgQnJlYWRjcnVtYiBQYXRoc1wiKVxyXG4gICAgLnNldERlc2MoXCJUaGUgZmlsZSBwYXRoIG9mIGEgY3N2IGZpbGVzIHdpdGggYnJlYWRjcnVtYnMgaW5mb3JtYXRpb24uXCIpXHJcbiAgICAuYWRkVGV4dCgodGV4dCkgPT4ge1xyXG4gICAgICB0ZXh0LnNldFZhbHVlKHNldHRpbmdzLkNTVlBhdGhzKTtcclxuICAgICAgdGV4dC5pbnB1dEVsLm9uYmx1ciA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5DU1ZQYXRocyA9IHRleHQuaW5wdXRFbC52YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQsIFNldHRpbmcgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgcmVmcmVzaEluZGV4IH0gZnJvbSBcIi4uL3JlZnJlc2hJbmRleFwiO1xyXG5pbXBvcnQgeyBnZXRGaWVsZHMgfSBmcm9tIFwiLi4vVXRpbHMvSGllclV0aWxzXCI7XHJcbmltcG9ydCB7IGZyYWdXaXRoSFRNTCwgc3ViRGV0YWlscyB9IGZyb20gXCIuL0JyZWFkY3J1bWJzU2V0dGluZ1RhYlwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZERhdGF2aWV3U2V0dGluZ3MoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHM6IEhUTUxEZXRhaWxzRWxlbWVudFxyXG4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgeyB1c2VySGllcnMgfSA9IHNldHRpbmdzO1xyXG4gIGNvbnN0IGZpZWxkcyA9IGdldEZpZWxkcyh1c2VySGllcnMpO1xyXG4gIGNvbnN0IGR2RGV0YWlscyA9IHN1YkRldGFpbHMoXCJEYXRhdmlldyBOb3Rlc1wiLCBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHMpO1xyXG5cclxuICBuZXcgU2V0dGluZyhkdkRldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkRlZmF1bHQgRGF0YXZpZXcgTm90ZSBGaWVsZFwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIkJ5IGRlZmF1bHQsIERhdGF2aWV3IG5vdGVzIHVzZSB0aGUgZmlyc3QgZmllbGQgaW4geW91ciBoaWVyYXJjaGllcyAodXN1YWxseSBhbiA8Y29kZT5cdTIxOTE8L2NvZGU+IGZpZWxkKS4gQ2hvb3NlIGEgZGlmZmVyZW50IG9uZSB0byB1c2UgYnkgZGVmYXVsdCwgd2l0aG91dCBoYXZpbmcgdG8gc3BlY2lmeSA8Y29kZT5CQy1kYXRhdmlldy1ub3RlLWZpZWxkOiB7ZmllbGR9PC9jb2RlPi48L2JyPklmIHlvdSBkb24ndCB3YW50IHRvIGNob29zZSBhIGRlZmF1bHQsIHNlbGVjdCB0aGUgYmxhbmsgb3B0aW9uIGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3QuXCJcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLmFkZERyb3Bkb3duKChkZDogRHJvcGRvd25Db21wb25lbnQpID0+IHtcclxuICAgICAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiBkZC5hZGRPcHRpb24oZmllbGQsIGZpZWxkKSk7XHJcbiAgICAgIGRkLmFkZE9wdGlvbihcIlwiLCBcIlwiKVxyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5kYXRhdmlld05vdGVGaWVsZClcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKGZpZWxkKSA9PiB7XHJcbiAgICAgICAgICBzZXR0aW5ncy5kYXRhdmlld05vdGVGaWVsZCA9IGZpZWxkO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgYXdhaXQgcmVmcmVzaEluZGV4KHBsdWdpbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQsIFNldHRpbmcgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHsgcmVmcmVzaEluZGV4IH0gZnJvbSBcIi4uL3JlZnJlc2hJbmRleFwiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQgeyBnZXRGaWVsZHMgfSBmcm9tIFwiLi4vVXRpbHMvSGllclV0aWxzXCI7XHJcbmltcG9ydCB7IGZyYWdXaXRoSFRNTCwgc3ViRGV0YWlscyB9IGZyb20gXCIuL0JyZWFkY3J1bWJzU2V0dGluZ1RhYlwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZERhdGVOb3RlU2V0dGluZ3MoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHM6IEhUTUxEZXRhaWxzRWxlbWVudFxyXG4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgeyB1c2VySGllcnMgfSA9IHNldHRpbmdzO1xyXG4gIGNvbnN0IGZpZWxkcyA9IGdldEZpZWxkcyh1c2VySGllcnMpO1xyXG4gIGNvbnN0IGZpZWxkT3B0aW9ucyA9IHsgXCJcIjogXCJcIiB9O1xyXG4gIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4gKGZpZWxkT3B0aW9uc1tmaWVsZF0gPSBmaWVsZCkpO1xyXG5cclxuICBjb25zdCBkYXRlTm90ZURldGFpbHMgPSBzdWJEZXRhaWxzKFwiRGF0ZSBOb3Rlc1wiLCBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHMpO1xyXG5cclxuICBuZXcgU2V0dGluZyhkYXRlTm90ZURldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkFkZCBEYXRlIE5vdGVzIHRvIEdyYXBoXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgXCJCcmVhZGNydW1icyB3aWxsIHRyeSB0byBsaW5rIGVhY2ggZGFpbHkgbm90ZSB0byB0aGUgbmV4dCBvbmUgdXNpbmcgdGhlIGRhdGUgZm9ybWF0IHlvdSBwcm92aWRlIGluIHRoZSBzZXR0aW5ncyBiZWxvdy5cIlxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB7XHJcbiAgICAgIHRvZ2dsZS5zZXRWYWx1ZShzZXR0aW5ncy5hZGREYXRlTm90ZXMpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLmFkZERhdGVOb3RlcyA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgbmV3IFNldHRpbmcoZGF0ZU5vdGVEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJEYWlseSBOb3RlIEZvcm1hdFwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBgVGhlIEx1eG9uIGRhdGUgZm9ybWF0IG9mIHlvdXIgZGFpbHkgbm90ZXMuPC9icj48c3Ryb25nPk5vdGU8L3N0cm9uZz46IEx1eG9uIHVzZXMgZGlmZmVyZW50IGZvcm1hdHMgdG8gTW9tZW50LCBzbyB5b3VyIGZvcm1hdCBmb3IgdGhlIERhaWx5IE5vdGVzIHBsdWdpbiBtYXkgbm90IHdvcmsgaGVyZS4gQmUgc3VyZSB0byBjaGVjayBvdXQgPGEgaHJlZj1cImh0dHBzOi8vbW9tZW50LmdpdGh1Yi5pby9sdXhvbi8jL2Zvcm1hdHRpbmc/aWQ9dGFibGUtb2YtdG9rZW5zXCI+dGhlIGRvY3M8L2E+IHRvIGZpbmQgdGhlIHJpZ2h0IGZvcm1hdC48YnI+WW91IGNhbiBlc2NhcGUgY2hhcmFjdGVycyBieSB3cmFwcGluZyB0aGVtIGluIHNpbmdsZSBxdW90ZXMgKGUuZy4gPGNvZGU+eXl5eS1NTS1kZCAnRGFpbHkgTm90ZSc8L2NvZGU+KWBcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLmFkZFRleHQoKHRleHQpID0+IHtcclxuICAgICAgdGV4dC5zZXRWYWx1ZShzZXR0aW5ncy5kYXRlTm90ZUZvcm1hdCk7XHJcbiAgICAgIHRleHQuaW5wdXRFbC5vbmJsdXIgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MuZGF0ZU5vdGVGb3JtYXQgPSB0ZXh0LmdldFZhbHVlKCk7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIGF3YWl0IHJlZnJlc2hJbmRleChwbHVnaW4pO1xyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKGRhdGVOb3RlRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiRGF0ZSBOb3RlIEZpZWxkXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgIFwiU2VsZWN0IGEgZmllbGQgdG8gcG9pbnQgdG8gdG9tb3Jyb3cncyBub3RlIGZyb20gdGhlIGN1cnJlbnQgbm90ZS4gVGhlIG9wcG9zaXRlIGZpZWxkIHdpbGwgYmUgdXNlZCB0byBwb2ludCB0byB5ZXN0ZXJkYXkncyBub3RlLlwiXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIC5hZGREcm9wZG93bigoZGQ6IERyb3Bkb3duQ29tcG9uZW50KSA9PiB7XHJcbiAgICAgIGRkLmFkZE9wdGlvbnMoZmllbGRPcHRpb25zKVxyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5kYXRlTm90ZUZpZWxkKVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAoZmllbGQpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLmRhdGVOb3RlRmllbGQgPSBmaWVsZDtcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgIGF3YWl0IHJlZnJlc2hJbmRleChwbHVnaW4pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gIC8vIG5ldyBTZXR0aW5nKGRhdGVOb3RlRGV0YWlscylcclxuICAvLyAgIC5zZXROYW1lKFwiUG9pbnQgdXAgdG8gTW9udGhcIilcclxuICAvLyAgIC5zZXREZXNjKFxyXG4gIC8vICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgLy8gICAgICAgXCJTZWxlY3QgYSBmaWVsZCB0byBwb2ludCB1cHdhcmRzIHRvIHRoZSBjb3JyZXNwb25kaW5nIG1vbnRoIChUaGlzIHdpbGwgc3RpbGwgd29yayBpZiBhIG5vdGUgZG9lc24ndCBleGlzdCBmb3IgdGhhdCBtb250aCkuPGJyPkxlYXZlIHRoZSBkcm9wZG93biBibGFuayB0byBkaXNhYmxlIHRoaXMgZmVhdHVyZS5cIlxyXG4gIC8vICAgICApXHJcbiAgLy8gICApXHJcbiAgLy8gICAuYWRkRHJvcGRvd24oKGRkOiBEcm9wZG93bkNvbXBvbmVudCkgPT4ge1xyXG4gIC8vICAgICBkZC5hZGRPcHRpb25zKGZpZWxkT3B0aW9ucyk7XHJcbiAgLy8gICAgIGRkLm9uQ2hhbmdlKGFzeW5jIChmaWVsZCkgPT4ge1xyXG4gIC8vICAgICAgIHNldHRpbmdzLmRhdGVOb3RlQWRkTW9udGggPSBmaWVsZDtcclxuICAvLyAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgLy8gICAgICAgYXdhaXQgcmVmcmVzaEluZGV4KHBsdWdpbik7XHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gbmV3IFNldHRpbmcoZGF0ZU5vdGVEZXRhaWxzKVxyXG4gIC8vICAgLnNldE5hbWUoXCJQb2ludCB1cCB0byBZZWFyXCIpXHJcbiAgLy8gICAuc2V0RGVzYyhcclxuICAvLyAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gIC8vICAgICAgIFwiU2VsZWN0IGEgZmllbGQgdG8gcG9pbnQgdXB3YXJkcyB0byB0aGUgY29ycmVzcG9uZGluZyB5ZWFyIChUaGlzIHdpbGwgc3RpbGwgd29yayBpZiBhIG5vdGUgZG9lc24ndCBleGlzdCBmb3IgdGhhdCB5ZWFyKS48YnI+TGVhdmUgdGhlIGRyb3Bkb3duIGJsYW5rIHRvIGRpc2FibGUgdGhpcyBmZWF0dXJlLlwiXHJcbiAgLy8gICAgIClcclxuICAvLyAgIClcclxuICAvLyAgIC5hZGREcm9wZG93bigoZGQ6IERyb3Bkb3duQ29tcG9uZW50KSA9PiB7XHJcbiAgLy8gICAgIGRkLmFkZE9wdGlvbnMoZmllbGRPcHRpb25zKTtcclxuICAvLyAgICAgZGQub25DaGFuZ2UoYXN5bmMgKGZpZWxkKSA9PiB7XHJcbiAgLy8gICAgICAgc2V0dGluZ3MuZGF0ZU5vdGVBZGRZZWFyID0gZmllbGQ7XHJcbiAgLy8gICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gIC8vICAgICAgIGF3YWl0IHJlZnJlc2hJbmRleChwbHVnaW4pO1xyXG4gIC8vICAgICB9KTtcclxuICAvLyAgIH0pO1xyXG59XHJcbiIsICJpbXBvcnQgbG9nIGZyb20gXCJsb2dsZXZlbFwiO1xyXG5pbXBvcnQgeyBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB0eXBlIHsgRGVidWdMZXZlbCB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IGRldGFpbHMsIGZyYWdXaXRoSFRNTCB9IGZyb20gXCIuL0JyZWFkY3J1bWJzU2V0dGluZ1RhYlwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZERlYnVnZ2luZ3NTZXR0aW5ncyhcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudFxyXG4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgZGVidWdEZXRhaWxzID0gZGV0YWlscyhcIkRlYnVnZ2luZ1wiLCBjb250YWluZXJFbCk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKGRlYnVnRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiRGVidWcgTW9kZVwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIlNldCB0aGUgbWluaW11bSBsZXZlbCBvZiBkZWJ1ZyBtZXNzYWdlcyB0byBjb25zb2xlIGxvZy4gSWYgeW91IGNob29zZSA8Y29kZT5UUkFDRTwvY29kZT4sIHRoZW4gZXZlcnl0aGluZyB3aWxsIGJlIGxvZ2dlZC4gSWYgeW91IGNob29zZSA8Y29kZT5FUlJPUjwvY29kZT4sIHRoZW4gb25seSB0aGUgbW9zdCBuZWNlc3NhcnkgaXNzdWVzIHdpbGwgYmUgbG9nZ2VkLiA8Y29kZT5TSUxFTlQ8L2NvZGU+IHdpbGwgdHVybiBvZmYgYWxsIGxvZ3MuXCJcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLmFkZERyb3Bkb3duKChkZCkgPT4ge1xyXG4gICAgICBPYmplY3Qua2V5cyhsb2cubGV2ZWxzKS5mb3JFYWNoKChrZXkpID0+IGRkLmFkZE9wdGlvbihrZXksIGtleSkpO1xyXG4gICAgICBkZC5zZXRWYWx1ZShzZXR0aW5ncy5kZWJ1Z01vZGUpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZTogRGVidWdMZXZlbCkgPT4ge1xyXG4gICAgICAgIGxvZy5zZXRMZXZlbCh2YWx1ZSk7XHJcbiAgICAgICAgc2V0dGluZ3MuZGVidWdNb2RlID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICBkZWJ1Z0RldGFpbHMuY3JlYXRlRWwoXCJidXR0b25cIiwgeyB0ZXh0OiBcIkNvbnNvbGUgbG9nIHNldHRpbmdzXCIgfSwgKGVsKSA9PiB7XHJcbiAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKCkgPT4gY29uc29sZS5sb2coc2V0dGluZ3MpKTtcclxuICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQsIE5vdGljZSwgU2V0dGluZyB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgeyByZWZyZXNoSW5kZXggfSBmcm9tIFwiLi4vcmVmcmVzaEluZGV4XCI7XHJcbmltcG9ydCB7IERFRkFVTFRfU0VUVElOR1MsIE1BVFJJWF9WSUVXIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQgeyBnZXRGaWVsZHMgfSBmcm9tIFwiLi4vVXRpbHMvSGllclV0aWxzXCI7XHJcbmltcG9ydCB7IGZyYWdXaXRoSFRNTCwgc3ViRGV0YWlscyB9IGZyb20gXCIuL0JyZWFkY3J1bWJzU2V0dGluZ1RhYlwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZERlbmRyb25TZXR0aW5ncyhcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIGFsdGVybmF0aXZlSGllcmFyY2h5RGV0YWlsczogSFRNTERldGFpbHNFbGVtZW50XHJcbikge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7IHVzZXJIaWVycyB9ID0gc2V0dGluZ3M7XHJcbiAgY29uc3QgZmllbGRzID0gZ2V0RmllbGRzKHVzZXJIaWVycyk7XHJcbiAgY29uc3QgZGVuZHJvbkRldGFpbHMgPSBzdWJEZXRhaWxzKFxyXG4gICAgXCJEZW5kcm9uIE5vdGVzXCIsXHJcbiAgICBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHNcclxuICApO1xyXG5cclxuICBuZXcgU2V0dGluZyhkZW5kcm9uRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiQWRkIERlbmRyb24gbm90ZXMgdG8gZ3JhcGhcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgXCJEZW5kcm9uIG5vdGVzIGNyZWF0ZSBhIGhpZXJhcmNoeSB1c2luZyBub3RlIG5hbWVzLjwvYnI+PGNvZGU+bm1hdGguYWxnZWJyYTwvY29kZT4gaXMgYSBub3RlIGFib3V0IGFsZ2VicmEsIHdob3NlIHBhcmVudCBpcyA8Y29kZT5tYXRoPC9jb2RlPi48L2JyPjxjb2RlPm5tYXRoLmNhbGN1bHVzLmxpbWl0czwvY29kZT4gaXMgYSBub3RlIGFib3V0IGxpbWl0cyB3aG9zZSBwYXJlbnQgaXMgdGhlIG5vdGUgPGNvZGU+bWF0aC5jYWxjdWx1czwvY29kZT4sIHRoZSBwYXJlbnQgb2Ygd2hpY2ggaXMgPGNvZGU+bWF0aDwvY29kZT4uXCJcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGUuc2V0VmFsdWUoc2V0dGluZ3MuYWRkRGVuZHJvbk5vdGVzKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5hZGREZW5kcm9uTm90ZXMgPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIG5ldyBTZXR0aW5nKGRlbmRyb25EZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJEZWxpbWl0ZXJcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgXCJXaGljaCBkZWxpbWl0ZXIgc2hvdWxkIEJyZWFkY3J1bWJzIGxvb2sgZm9yPyBUaGUgZGVmYXVsdCBpcyA8Y29kZT4uPC9jb2RlPi5cIlxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkVGV4dCgodGV4dCkgPT4ge1xyXG4gICAgICB0ZXh0XHJcbiAgICAgICAgLnNldFBsYWNlaG9sZGVyKFwiRGVsaW1pdGVyXCIpXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLmRlbmRyb25Ob3RlRGVsaW1pdGVyKTtcclxuXHJcbiAgICAgIHRleHQuaW5wdXRFbC5vbmJsdXIgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0ZXh0LmdldFZhbHVlKCk7XHJcbiAgICAgICAgaWYgKHZhbHVlKSBzZXR0aW5ncy5kZW5kcm9uTm90ZURlbGltaXRlciA9IHZhbHVlO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgbmV3IE5vdGljZShgVGhlIGRlbGltaXRlciBjYW4ndCBiZSBibGFua2ApO1xyXG4gICAgICAgICAgc2V0dGluZ3MuZGVuZHJvbk5vdGVEZWxpbWl0ZXIgPSBERUZBVUxUX1NFVFRJTkdTLmRlbmRyb25Ob3RlRGVsaW1pdGVyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuXHJcbiAgbmV3IFNldHRpbmcoZGVuZHJvbkRldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIlRyaW0gRGVuZHJvbiBOb3RlIE5hbWVzXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgIFwiV2hlbiBkaXNwbGF5aW5nIGEgZGVuZHJvbiBub3RlIG5hbWUsIHNob3VsZCBpdCBiZSB0cmltbWVkIHRvIG9ubHkgc2hvdyB0aGUgbGFzdCBpdGVtIGluIHRoZSBjaGFpbj88L2JyPmUuZy4gPGNvZGU+QS5CLkM8L2NvZGU+IFx1MjE5MiA8Y29kZT5DPC9jb2RlPi5cIlxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgIHRvZ2dsZS5zZXRWYWx1ZShzZXR0aW5ncy50cmltRGVuZHJvbk5vdGVzKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy50cmltRGVuZHJvbk5vdGVzID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5nZXRBY3RpdmVUWVBFVmlldyhNQVRSSVhfVklFVykuZHJhdygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgbmV3IFNldHRpbmcoZGVuZHJvbkRldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkRlbmRyb24gTm90ZSBGaWVsZFwiKVxyXG4gICAgLnNldERlc2MoXCJXaGljaCBmaWVsZCBzaG91bGQgQnJlYWRjcnVtYnMgdXNlIGZvciBEZW5kcm9uIG5vdGVzP1wiKVxyXG4gICAgLmFkZERyb3Bkb3duKChkZDogRHJvcGRvd25Db21wb25lbnQpID0+IHtcclxuICAgICAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiBkZC5hZGRPcHRpb24oZmllbGQsIGZpZWxkKSk7XHJcbiAgICAgIGRkLnNldFZhbHVlKHNldHRpbmdzLmRlbmRyb25Ob3RlRmllbGQpO1xyXG5cclxuICAgICAgZGQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MuZGVuZHJvbk5vdGVGaWVsZCA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHsgTm90aWNlLCBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IHJlZnJlc2hJbmRleCB9IGZyb20gXCIuLi9yZWZyZXNoSW5kZXhcIjtcclxuaW1wb3J0IHsgc3BsaXRBbmRUcmltIH0gZnJvbSBcIi4uL1V0aWxzL2dlbmVyYWxVdGlsc1wiO1xyXG5pbXBvcnQgeyBkZXRhaWxzLCBmcmFnV2l0aEhUTUwgfSBmcm9tIFwiLi9CcmVhZGNydW1ic1NldHRpbmdUYWJcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRHZW5lcmFsU2V0dGluZ3MocGx1Z2luOiBCQ1BsdWdpbiwgY29udGFpbmVyRWw6IEhUTUxFbGVtZW50KSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IGdlbmVyYWxEZXRhaWxzID0gZGV0YWlscyhcIkdlbmVyYWwgT3B0aW9uc1wiLCBjb250YWluZXJFbCk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKGdlbmVyYWxEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJSZWZyZXNoIEluZGV4IG9uIE5vdGUgQ2hhbmdlXCIpXHJcbiAgICAuc2V0RGVzYyhmcmFnV2l0aEhUTUwoXHJcbiAgICAgIFwiUmVmcmVzaCB0aGUgQnJlYWRjcnVtYnMgaW5kZXggZGF0YSBldmVyeXRpbWUgeW91IGNoYW5nZSBub3Rlcy48L2JyPjxzdHJvbmc+Tm90ZTwvc3Ryb25nPjogVGhpcyBjYW4gYmUgdmVyeSBzbG93IG9uIGxhcmdlIHZhdWx0cy5cIilcclxuICAgIClcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cclxuICAgICAgdG9nZ2xlLnNldFZhbHVlKHNldHRpbmdzLnJlZnJlc2hPbk5vdGVDaGFuZ2UpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLnJlZnJlc2hPbk5vdGVDaGFuZ2UgPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICBuZXcgU2V0dGluZyhnZW5lcmFsRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiUmVmcmVzaCBJbmRleCBPbiBOb3RlIFNhdmVcIilcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cclxuICAgICAgdG9nZ2xlLnNldFZhbHVlKHNldHRpbmdzLnJlZnJlc2hPbk5vdGVTYXZlKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5yZWZyZXNoT25Ob3RlU2F2ZSA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKGdlbmVyYWxEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJTaG93IFJlZnJlc2ggSW5kZXggTm90aWNlXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgXCJXaGVuIFJlZnJlc2hpbmcgSW5kZXgsIHNob3VsZCBpdCBzaG93IGEgbm90aWNlIG9uY2UgdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZT9cIlxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGUuc2V0VmFsdWUoc2V0dGluZ3Muc2hvd1JlZnJlc2hOb3RpY2UpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLnNob3dSZWZyZXNoTm90aWNlID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgbmV3IFNldHRpbmcoZ2VuZXJhbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkFsaWFzIEZpZWxkc1wiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIkEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZmllbGRzIHVzZWQgdG8gc3BlY2lmeSBhbGlhc2VzLiBUaGVzZSBmaWVsZHMgd2lsbCBiZSBjaGVja2VkLCBpbiBvcmRlciwgdG8gZGlzcGxheSBhbiBhbHRlcm5hdGUgbm90ZSB0aXRsZSBpbiBkaWZmZXJlbnQgdmlld3MuPC9icj5UaGlzIGZpZWxkIHdpbGwgcHJvYmFibHkgYmUgPGNvZGU+YWxpYXM8L2NvZGU+IG9yIDxjb2RlPmFsaWFzZXM8L2NvZGU+LCBidXQgaXQgY2FuIGJlIGFueXRoaW5nLCBsaWtlIDxjb2RlPnRpdGxlPC9jb2RlPi5cIlxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkVGV4dCgodGV4dCkgPT4ge1xyXG4gICAgICB0ZXh0LnNldFZhbHVlKHNldHRpbmdzLmFsdExpbmtGaWVsZHMuam9pbihcIiwgXCIpKTtcclxuICAgICAgdGV4dC5pbnB1dEVsLm9uYmx1ciA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5hbHRMaW5rRmllbGRzID0gc3BsaXRBbmRUcmltKHRleHQuZ2V0VmFsdWUoKSk7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKGdlbmVyYWxEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJPbmx5IHNob3cgZmlyc3QgYWxpYXNcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBcIklmIGEgbm90ZSBoYXMgYW4gYWxpYXMgKHVzaW5nIHRoZSBmaWVsZHMgaW4gdGhlIHNldHRpbmcgYWJvdmUpLCBzaG91bGQgb25seSB0aGUgZmlyc3Qgb25lIGJlIHNob3duP1wiXHJcbiAgICApXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgIHRvZ2dsZS5zZXRWYWx1ZSghc2V0dGluZ3Muc2hvd0FsbEFsaWFzZXMpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLnNob3dBbGxBbGlhc2VzID0gIXZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKGdlbmVyYWxEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJVc2UgeWFtbCBvciBpbmxpbmUgZmllbGRzIGZvciBoaWVyYXJjaHkgZGF0YVwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIFwiSWYgZW5hYmxlZCwgQnJlYWRjcnVtYnMgd2lsbCBtYWtlIGl0J3MgaGllcmFyY2h5IHVzaW5nIHlhbWwgZmllbGRzLCBhbmQgaW5saW5lIERhdGF2aWV3IGZpZWxkcy5cXG5JZiB0aGlzIGlzIGRpc2FibGVkLCBpdCB3aWxsIG9ubHkgdXNlIEp1Z2dsIGxpbmtzIChTZWUgYmVsb3cpLlwiXHJcbiAgICApXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgIHRvZ2dsZS5zZXRWYWx1ZShzZXR0aW5ncy51c2VBbGxNZXRhZGF0YSkub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MudXNlQWxsTWV0YWRhdGEgPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgYXdhaXQgcmVmcmVzaEluZGV4KHBsdWdpbik7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICBuZXcgU2V0dGluZyhnZW5lcmFsRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiVXNlIEp1Z2dsIGxpbmsgc3ludGF4IHdpdGhvdXQgaGF2aW5nIEp1Z2dsIGluc3RhbGxlZC5cIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgJ1Nob3VsZCBCcmVhZGNydW1icyBsb29rIGZvciA8YSBocmVmPVwiaHR0cHM6Ly9qdWdnbC5pby9MaW5rK1R5cGVzXCIgYXJpYS1sYWJlbD1cImh0dHBzOi8vanVnZ2wuaW8vTGluaytUeXBlc1wiPkp1Z2dsIGxpbmtzPC9hPiBldmVuIGlmIHlvdSBkb25cXCd0IGhhdmUgSnVnZ2wgaW5zdGFsbGVkPyBJZiB5b3UgZG8gaGF2ZSBKdWdnbCBpbnN0YWxsZWQsIGl0IHdpbGwgYWx3YXlzIGxvb2sgZm9yIEp1Z2dsIGxpbmtzLidcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGVcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3MucGFyc2VKdWdnbExpbmtzV2l0aG91dEp1Z2dsKVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLnBhcnNlSnVnZ2xMaW5rc1dpdGhvdXRKdWdnbCA9IHZhbHVlO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuXHJcbiAgbmV3IFNldHRpbmcoZ2VuZXJhbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkVuYWJsZSBGaWVsZCBTdWdnZXN0b3JcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgJ0Fsb3Qgb2YgQnJlYWRjcnVtYnMgZmVhdHVyZXMgcmVxdWlyZSBhIG1ldGFkYXRhIChvciBpbmxpbmUgRGF0YXZpZXcpIGZpZWxkIHRvIHdvcmsuIEZvciBleGFtcGxlLCBgQkMtZm9sZGVyLW5vdGVgLjwvYnI+VGhlIEZpZWxkIFN1Z2dlc3RvciB3aWxsIHNob3cgYW4gYXV0b2NvbXBsZXRlIG1lbnUgd2l0aCBhbGwgYXZhaWxhYmxlIEJyZWFkY3J1bWJzIGZpZWxkIG9wdGlvbnMgd2hlbiB5b3UgdHlwZSA8Y29kZT5CQy08L2NvZGU+IGF0IHRoZSBzdGFydCBvZiBhIGxpbmUuJ1xyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgIHRvZ2dsZS5zZXRWYWx1ZShzZXR0aW5ncy5maWVsZFN1Z2dlc3Rvcikub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MuZmllbGRTdWdnZXN0b3IgPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIG5ldyBTZXR0aW5nKGdlbmVyYWxEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJFbmFibGUgUmVsYXRpb24gU3VnZ2VzdG9yXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgIFwiRW5hYmxlIGFuIGVkaXRvciBzdWdnZXN0b3Igd2hpY2ggZ2V0cyB0cmlnZ2VyZWQgYnkgYSBjdXN0b20gc3RyaW5nIHRvIHNob3cgYSBsaXN0IG9mIHJlbGF0aW9ucyBmcm9tIHlvdXIgaGllcmFyY2hpZXMgdG8gaW5zZXJ0LlwiXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cclxuICAgICAgdG9nZ2xlXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLmVuYWJsZVJlbGF0aW9uU3VnZ2VzdG9yKVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLmVuYWJsZVJlbGF0aW9uU3VnZ2VzdG9yID0gdmFsdWU7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcbiAgbmV3IFNldHRpbmcoZ2VuZXJhbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIlJlbGF0aW9uIFN1Z2dlc3RvciBUcmlnZ2VyXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgIFwiVGhlIHN0cmluZyB1c2VkIHRvIHRyaWdnZXIgdGhlIHJlbGF0aW9uIHN1Z2dlc3Rvci4gRGVmYXVsdCBpcyA8Y29kZT5cXFxcPC9jb2RlPi5cIlxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkVGV4dCgodGV4dCkgPT5cclxuICAgICAgdGV4dC5zZXRWYWx1ZShzZXR0aW5ncy5yZWxTdWdnZXN0b3JUcmlnZ2VyKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5yZWxTdWdnZXN0b3JUcmlnZ2VyID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgaWYgKGFwcC5wbHVnaW5zLnBsdWdpbnMuZGF0YXZpZXcgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgbmV3IFNldHRpbmcoZ2VuZXJhbERldGFpbHMpXHJcbiAgICAgIC5zZXROYW1lKFwiRGF0YXZpZXcgV2FpdCBUaW1lXCIpXHJcbiAgICAgIC5zZXREZXNjKFxyXG4gICAgICAgICdFbnRlciBhbiBpbnRlZ2VyIG51bWJlciBvZiBzZWNvbmRzIHRvIHdhaXQgZm9yIHRoZSBEYXRhdmlldyBJbmRleCB0byBsb2FkLiBUaGUgbGFyZ2VyIHlvdXIgdmF1bHQsIHRoZSBsb25nZXIgaXQgd2lsbCB0YWtlLiBUaGUgZGVmYXVsdCBpcyA1IHNlY29uZHMuJ1xyXG4gICAgICApXHJcbiAgICAgIC5hZGRUZXh0KCh0ZXh0KSA9PlxyXG4gICAgICAgIHRleHRcclxuICAgICAgICAgIC5zZXRQbGFjZWhvbGRlcihcIlNlY29uZHNcIilcclxuICAgICAgICAgIC5zZXRWYWx1ZSgoc2V0dGluZ3MuZHZXYWl0VGltZSAvIDEwMDApLnRvU3RyaW5nKCkpXHJcbiAgICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bSA9IE51bWJlcih2YWx1ZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAobnVtID4gMCkge1xyXG4gICAgICAgICAgICAgIHNldHRpbmdzLmR2V2FpdFRpbWUgPSBudW0gKiAxMDAwO1xyXG4gICAgICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBuZXcgTm90aWNlKFwiVGhlIGludGVydmFsIG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iLCAiaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQsIFNldHRpbmcgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHsgcmVmcmVzaEluZGV4IH0gZnJvbSBcIi4uL3JlZnJlc2hJbmRleFwiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQgeyBzcGxpdEFuZFRyaW0gfSBmcm9tIFwiLi4vVXRpbHMvZ2VuZXJhbFV0aWxzXCI7XHJcbmltcG9ydCB7IGdldEZpZWxkcyB9IGZyb20gXCIuLi9VdGlscy9IaWVyVXRpbHNcIjtcclxuaW1wb3J0IHsgZnJhZ1dpdGhIVE1MLCBzdWJEZXRhaWxzIH0gZnJvbSBcIi4vQnJlYWRjcnVtYnNTZXR0aW5nVGFiXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkSGllcmFyY2h5Tm90ZVNldHRpbmdzKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgYWx0ZXJuYXRpdmVIaWVyYXJjaHlEZXRhaWxzOiBIVE1MRGV0YWlsc0VsZW1lbnRcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IGhpZXJhcmNoeU5vdGVEZXRhaWxzID0gc3ViRGV0YWlscyhcclxuICAgIFwiSGllcmFyY2h5IE5vdGVzXCIsXHJcbiAgICBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHNcclxuICApO1xyXG5cclxuICBuZXcgU2V0dGluZyhoaWVyYXJjaHlOb3RlRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiSGllcmFyY2h5IE5vdGUocylcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgXCJBIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIG5vdGVzIHVzZWQgdG8gY3JlYXRlIGV4dGVybmFsIEJyZWFkY3J1bWIgc3RydWN0dXJlcy48YnI+WW91IGNhbiBhbHNvIHBvaW50IHRvIGEgPGVtPmZvbGRlcjwvZW0+IG9mIGhpZXJhcmNoeSBub3RlcyBieSBlbnRlcmluZyA8Y29kZT5mb2xkZXJOYW1lLzwvY29kZT4gKGVuZGluZyB3aXRoIGEgPGNvZGU+LzwvY29kZT4pLjxicj5IaWVyYXJjaHkgbm90ZSBuYW1lcyBhbmQgZm9sZGVycyBvZiBoaWVyYXJjaHkgbm90ZXMgY2FuIGJvdGggYmUgZW50ZXJlZCBpbiB0aGUgc2FtZSBjb21tYS1zZXBhcmF0ZWQgbGlzdC5cIlxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkVGV4dCgodGV4dCkgPT4ge1xyXG4gICAgICB0ZXh0XHJcbiAgICAgICAgLnNldFBsYWNlaG9sZGVyKFwiSGllcmFyY2h5IE5vdGUocylcIilcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3MuaGllcmFyY2h5Tm90ZXMuam9pbihcIiwgXCIpKTtcclxuXHJcbiAgICAgIHRleHQuaW5wdXRFbC5vbmJsdXIgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3BsaXRzID0gc3BsaXRBbmRUcmltKHRleHQuZ2V0VmFsdWUoKSk7XHJcblxyXG4gICAgICAgIHNldHRpbmdzLmhpZXJhcmNoeU5vdGVzID0gc3BsaXRzO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG5cclxuICBuZXcgU2V0dGluZyhoaWVyYXJjaHlOb3RlRGV0YWlscylcclxuICAgIC5zZXROYW1lKCdIaWVyYXJjaHkgbm90ZSBpcyBwYXJlbnQgb2YgdG9wLWxldmVsIGl0ZW1zJylcclxuICAgIC5zZXREZXNjKCdTaG91bGQgdGhlIGFjdHVhbCBoaWVyYXJjaHkgbm90ZSBiZSB0cmVhdGVkIGFzIHRoZSBwYXJlbnQgb2YgYWxsIHRoZSB0b3AtbGV2ZWwgaXRlbXMgaW4gdGhlIGxpc3Q/IFx1MjcwNSA9IFllcywgXHUyNzRDID0gTm8nKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB7XHJcbiAgICAgIHRvZ2dsZVxyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5oaWVyYXJjaHlOb3RlSXNQYXJlbnQpXHJcbiAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3MuaGllcmFyY2h5Tm90ZUlzUGFyZW50ID0gdmFsdWVcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgIGF3YWl0IHJlZnJlc2hJbmRleChwbHVnaW4pO1xyXG4gICAgICAgIH0pXHJcbiAgICB9KVxyXG5cclxuICBuZXcgU2V0dGluZyhoaWVyYXJjaHlOb3RlRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiRGVmYXVsdCBIaWVyYXJjaHkgTm90ZSBGaWVsZFwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIkJ5IGRlZmF1bHQsIGhpZXJhcmNoeSBub3RlcyB1c2UgdGhlIGZpcnN0IDxjb2RlPnVwPC9jb2RlPiBmaWVsZCBpbiB5b3VyIGhpZXJhcmNoaWVzLiBDaG9vc2UgYSBkaWZmZXJlbnQgb25lIHRvIHVzZSBieSBkZWZhdWx0LiBJZiB5b3UgZG9uJ3Qgd2FudCB0byBjaG9vc2UgYSBkZWZhdWx0LCBzZWxlY3QgdGhlIGJsYW5rIG9wdGlvbiBhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0LlwiXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIC5hZGREcm9wZG93bigoZGQ6IERyb3Bkb3duQ29tcG9uZW50KSA9PiB7XHJcbiAgICAgIGNvbnN0IHVwRmllbGRzID0gZ2V0RmllbGRzKHNldHRpbmdzLnVzZXJIaWVycywgXCJ1cFwiKTtcclxuXHJcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB7fTtcclxuICAgICAgdXBGaWVsZHMuZm9yRWFjaChcclxuICAgICAgICAoZmllbGQpID0+IChvcHRpb25zW2ZpZWxkXSA9IGZpZWxkKVxyXG4gICAgICApO1xyXG4gICAgICBkZC5hZGRPcHRpb25zKG9wdGlvbnMpXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLkhOVXBGaWVsZCB8fCB1cEZpZWxkc1swXSlcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKGZpZWxkKSA9PiB7XHJcbiAgICAgICAgICBzZXR0aW5ncy5ITlVwRmllbGQgPSBmaWVsZDtcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgIGF3YWl0IHJlZnJlc2hJbmRleChwbHVnaW4pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuIiwgbnVsbCwgIjxzY3JpcHQgbGFuZz1cInRzXCI+XHJcbiAgaW1wb3J0IHsgTm90aWNlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbiAgaW1wb3J0IEZhTGlzdFVsIGZyb20gXCJzdmVsdGUtaWNvbnMvZmEvRmFMaXN0VWwuc3ZlbHRlXCI7XHJcbiAgaW1wb3J0IEZhUGx1cyBmcm9tIFwic3ZlbHRlLWljb25zL2ZhL0ZhUGx1cy5zdmVsdGVcIjtcclxuICBpbXBvcnQgRmFSZWdUcmFzaEFsdCBmcm9tIFwic3ZlbHRlLWljb25zL2ZhL0ZhUmVnVHJhc2hBbHQuc3ZlbHRlXCI7XHJcbiAgaW1wb3J0IHsgQVJST1dfRElSRUNUSU9OUywgYmxhbmtVc2VySGllciwgRElSRUNUSU9OUyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuICBpbXBvcnQgdHlwZSB7IFVzZXJIaWVyIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuICBpbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG4gIGltcG9ydCB7IHNwbGl0QW5kVHJpbSwgc3dhcEl0ZW1zIH0gZnJvbSBcIi4uL1V0aWxzL2dlbmVyYWxVdGlsc1wiO1xyXG4gIGltcG9ydCB7IGhpZXJUb1N0ciB9IGZyb20gXCIuLi9VdGlscy9IaWVyVXRpbHNcIjtcclxuXHJcbiAgZXhwb3J0IGxldCBwbHVnaW46IEJDUGx1Z2luO1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuXHJcbiAgbGV0IGN1cnJIaWVycyA9IFsuLi5wbHVnaW4uc2V0dGluZ3MudXNlckhpZXJzXTtcclxuICBhc3luYyBmdW5jdGlvbiB1cGRhdGUoY3VyckhpZXJzOiBVc2VySGllcltdKSB7XHJcbiAgICBwbHVnaW4uc2V0dGluZ3MudXNlckhpZXJzID0gY3VyckhpZXJzO1xyXG4gICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gIH1cclxuPC9zY3JpcHQ+XHJcblxyXG48ZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJCQy1CdXR0b25zXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIGFyaWEtbGFiZWw9XCJBZGQgTmV3IEhpZXJhcmNoeVwiXHJcbiAgICAgIG9uOmNsaWNrPXthc3luYyAoKSA9PiAoY3VyckhpZXJzID0gWy4uLmN1cnJIaWVycywgYmxhbmtVc2VySGllcigpXSl9XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+XHJcbiAgICAgICAgPEZhUGx1cyAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBhcmlhLWxhYmVsPVwiUmVzZXQgQWxsIEhpZXJhcmNoaWVzXCJcclxuICAgICAgb246Y2xpY2s9e2FzeW5jICgpID0+IHtcclxuICAgICAgICBpZiAod2luZG93LmNvbmZpcm0oXCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVzZXQgYWxsIGhpZXJhcmNoaWVzP1wiKSkge1xyXG4gICAgICAgICAgY3VyckhpZXJzID0gW107XHJcbiAgICAgICAgICBhd2FpdCB1cGRhdGUoY3VyckhpZXJzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH19XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+XHJcbiAgICAgICAgPEZhUmVnVHJhc2hBbHQgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgYXJpYS1sYWJlbD1cIlNob3cgSGllcmFyY2hpZXNcIlxyXG4gICAgICBvbjpjbGljaz17KCkgPT4gbmV3IE5vdGljZShjdXJySGllcnMubWFwKGhpZXJUb1N0cikuam9pbihcIlxcblxcblwiKSl9XHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCI+XHJcbiAgICAgICAgPEZhTGlzdFVsIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIHsjZWFjaCBjdXJySGllcnMgYXMgaGllciwgaX1cclxuICAgIDxkZXRhaWxzIGNsYXNzPVwiQkMtSGllci1EZXRhaWxzXCI+XHJcbiAgICAgIDxzdW1tYXJ5PlxyXG4gICAgICAgIHtESVJFQ1RJT05TLm1hcCgoZGlyKSA9PiBoaWVyW2Rpcl0/LmpvaW4oXCIsIFwiKSA/PyBcIlwiKVxyXG4gICAgICAgICAgLm1hcCgoZGlyRmllbGRzKSA9PiBgKCR7ZGlyRmllbGRzfSlgKVxyXG4gICAgICAgICAgLmpvaW4oXCIgXCIpfVxyXG5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIkJDLUJ1dHRvbnNcIj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlN3YXAgd2l0aCBIaWVyYXJjaHkgQWJvdmVcIlxyXG4gICAgICAgICAgICBvbjpjbGljaz17YXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGN1cnJIaWVycyA9IHN3YXBJdGVtcyhpLCBpIC0gMSwgY3VyckhpZXJzKTtcclxuICAgICAgICAgICAgICBhd2FpdCB1cGRhdGUoY3VyckhpZXJzKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgXHUyMTkxXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlN3YXAgd2l0aCBIaWVyYXJjaHkgQmVsb3dcIlxyXG4gICAgICAgICAgICBvbjpjbGljaz17YXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGN1cnJIaWVycyA9IHN3YXBJdGVtcyhpLCBpICsgMSwgY3VyckhpZXJzKTtcclxuICAgICAgICAgICAgICBhd2FpdCB1cGRhdGUoY3VyckhpZXJzKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgXHUyMTkzXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlJlbW92ZSBIaWVyYXJjaHlcIlxyXG4gICAgICAgICAgICBvbjpjbGljaz17YXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG9sZEhpZXIgPSBjdXJySGllcnMuc3BsaWNlKGksIDEpWzBdO1xyXG4gICAgICAgICAgICAgIG9sZEhpZXIudXAuZm9yRWFjaCgodXBGaWVsZCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBzZXR0aW5ncy5saW1pdFRyYWlsQ2hlY2tib3hlcy5pbmRleE9mKHVwRmllbGQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHNldHRpbmdzLmxpbWl0VHJhaWxDaGVja2JveGVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgIERJUkVDVElPTlMuZm9yRWFjaCgoZGlyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvbGRIaWVyW2Rpcl0uZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXhJID0gc2V0dGluZ3MubGltaXRKdW1wVG9GaXJzdEZpZWxkcy5pbmRleE9mKGZpZWxkKTtcclxuICAgICAgICAgICAgICAgICAgaWYgKGluZGV4SSA+IC0xKVxyXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLmxpbWl0SnVtcFRvRmlyc3RGaWVsZHMuc3BsaWNlKGluZGV4SSwgMSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICBjb25zdCBpbmRleEogPSBzZXR0aW5ncy5saW1pdFdyaXRlQkNDaGVja2JveGVzLmluZGV4T2YoZmllbGQpO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoaW5kZXhKID4gLTEpXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3MubGltaXRKdW1wVG9GaXJzdEZpZWxkcy5zcGxpY2UoaW5kZXhKLCAxKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICBjdXJySGllcnMgPSBjdXJySGllcnM7XHJcbiAgICAgICAgICAgICAgYXdhaXQgdXBkYXRlKGN1cnJIaWVycyk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIFhcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9zdW1tYXJ5PlxyXG4gICAgICB7I2VhY2ggRElSRUNUSU9OUyBhcyBkaXJ9XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIkJDLUFycm93LUxhYmVsXCIgZm9yPXtkaXJ9PlxyXG4gICAgICAgICAgICB7QVJST1dfRElSRUNUSU9OU1tkaXJdfVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIHNpemU9XCIyMFwiXHJcbiAgICAgICAgICAgIG5hbWU9e2Rpcn1cclxuICAgICAgICAgICAgdmFsdWU9e2hpZXJbZGlyXT8uam9pbihcIiwgXCIpID8/IFwiXCJ9XHJcbiAgICAgICAgICAgIG9uOmNoYW5nZT17YXN5bmMgKGUpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBlLnRhcmdldDtcclxuICAgICAgICAgICAgICBjb25zdCBzcGxpdHMgPSBzcGxpdEFuZFRyaW0odmFsdWUpO1xyXG4gICAgICAgICAgICAgIGN1cnJIaWVyc1tpXVtkaXJdID0gc3BsaXRzO1xyXG4gICAgICAgICAgICAgIGF3YWl0IHVwZGF0ZShjdXJySGllcnMpO1xyXG5cclxuICAgICAgICAgICAgICBzcGxpdHMuZm9yRWFjaCgoc3BsaXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgZGlyID09PSBcInVwXCIgJiZcclxuICAgICAgICAgICAgICAgICAgIXNldHRpbmdzLmxpbWl0VHJhaWxDaGVja2JveGVzLmluY2x1ZGVzKHNwbGl0KVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICBzZXR0aW5ncy5saW1pdFRyYWlsQ2hlY2tib3hlcy5wdXNoKHNwbGl0KTtcclxuICAgICAgICAgICAgICAgIGlmICghc2V0dGluZ3MubGltaXRKdW1wVG9GaXJzdEZpZWxkcy5pbmNsdWRlcyhzcGxpdCkpXHJcbiAgICAgICAgICAgICAgICAgIHNldHRpbmdzLmxpbWl0SnVtcFRvRmlyc3RGaWVsZHMucHVzaChzcGxpdCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXNldHRpbmdzLmxpbWl0V3JpdGVCQ0NoZWNrYm94ZXMuaW5jbHVkZXMoc3BsaXQpKVxyXG4gICAgICAgICAgICAgICAgICBzZXR0aW5ncy5saW1pdFdyaXRlQkNDaGVja2JveGVzLnB1c2goc3BsaXQpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIHsvZWFjaH1cclxuICAgIDwvZGV0YWlscz5cclxuICB7L2VhY2h9XHJcbjwvZGl2PlxyXG5cclxuPHN0eWxlPlxyXG4gIGxhYmVsLkJDLUFycm93LUxhYmVsIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiAyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG4gIGRpdi5CQy1CdXR0b25zIHtcclxuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgfVxyXG5cclxuICBkZXRhaWxzLkJDLUhpZXItRGV0YWlscyB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1iYWNrZ3JvdW5kLW1vZGlmaWVyLWJvcmRlcik7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgcGFkZGluZzogMTBweCA1cHggMTBweCAxMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICB9XHJcbiAgLkJDLUhpZXItRGV0YWlscyBzdW1tYXJ5OjptYXJrZXIge1xyXG4gICAgZm9udC1zaXplOiAxMHB4O1xyXG4gIH1cclxuXHJcbiAgLkJDLUhpZXItRGV0YWlscyBzdW1tYXJ5IGJ1dHRvbiB7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgfVxyXG4gIC5pY29uIHtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LW5vcm1hbCk7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgd2lkdGg6IDE3cHg7XHJcbiAgICBoZWlnaHQ6IDE3cHg7XHJcbiAgfVxyXG48L3N0eWxlPlxyXG4iLCAiPHNjcmlwdD5cbiAgZXhwb3J0IGxldCB0aXRsZSA9IG51bGw7XG4gIGV4cG9ydCBsZXQgdmlld0JveDtcbjwvc2NyaXB0PlxuXG48c3R5bGU+XG4gIHN2ZyB7XG4gICAgc3Ryb2tlOiBjdXJyZW50Q29sb3I7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIHN0cm9rZS13aWR0aDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfSAgXG48L3N0eWxlPlxuXG48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB7dmlld0JveH0+XG4gIHsjaWYgdGl0bGV9XG4gICAgPHRpdGxlPnt0aXRsZX08L3RpdGxlPlxuICB7L2lmfVxuICA8c2xvdCAvPlxuPC9zdmc+XG4iLCAiPHNjcmlwdD5cbiAgICAgICAgaW1wb3J0IEljb25CYXNlIGZyb20gJy4uL2NvbXBvbmVudHMvSWNvbkJhc2Uuc3ZlbHRlJztcbiAgICAgICAgPC9zY3JpcHQ+XG4gICAgICAgIDxJY29uQmFzZSB2aWV3Qm94PVwiMCAwIDUxMiA1MTJcIiB7Li4uJCRwcm9wc30+XG4gICAgICAgICAgPHBhdGggZD1cIk00OCA0OGE0OCA0OCAwIDEgMCA0OCA0OCA0OCA0OCAwIDAgMC00OC00OHptMCAxNjBhNDggNDggMCAxIDAgNDggNDggNDggNDggMCAwIDAtNDgtNDh6bTAgMTYwYTQ4IDQ4IDAgMSAwIDQ4IDQ4IDQ4IDQ4IDAgMCAwLTQ4LTQ4em00NDggMTZIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAtMzIwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZWODBhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgMTYwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2elwiIC8+XG4gICAgICAgIDwvSWNvbkJhc2U+XG4gICAgICAiLCAiPHNjcmlwdD5cbiAgICAgICAgaW1wb3J0IEljb25CYXNlIGZyb20gJy4uL2NvbXBvbmVudHMvSWNvbkJhc2Uuc3ZlbHRlJztcbiAgICAgICAgPC9zY3JpcHQ+XG4gICAgICAgIDxJY29uQmFzZSB2aWV3Qm94PVwiMCAwIDQ0OCA1MTJcIiB7Li4uJCRwcm9wc30+XG4gICAgICAgICAgPHBhdGggZD1cIk00MTYgMjA4SDI3MlY2NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC0zMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYxNDRIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgxNDR2MTQ0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYzMDRoMTQ0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XCIgLz5cbiAgICAgICAgPC9JY29uQmFzZT5cbiAgICAgICIsICI8c2NyaXB0PlxuICAgICAgICBpbXBvcnQgSWNvbkJhc2UgZnJvbSAnLi4vY29tcG9uZW50cy9JY29uQmFzZS5zdmVsdGUnO1xuICAgICAgICA8L3NjcmlwdD5cbiAgICAgICAgPEljb25CYXNlIHZpZXdCb3g9XCIwIDAgNDQ4IDUxMlwiIHsuLi4kJHByb3BzfT5cbiAgICAgICAgICA8cGF0aCBkPVwiTTI2OCA0MTZoMjRhMTIgMTIgMCAwIDAgMTItMTJWMTg4YTEyIDEyIDAgMCAwLTEyLTEyaC0yNGExMiAxMiAwIDAgMC0xMiAxMnYyMTZhMTIgMTIgMCAwIDAgMTIgMTJ6TTQzMiA4MGgtODIuNDFsLTM0LTU2LjdBNDggNDggMCAwIDAgMjc0LjQxIDBIMTczLjU5YTQ4IDQ4IDAgMCAwLTQxLjE2IDIzLjNMOTguNDEgODBIMTZBMTYgMTYgMCAwIDAgMCA5NnYxNmExNiAxNiAwIDAgMCAxNiAxNmgxNnYzMzZhNDggNDggMCAwIDAgNDggNDhoMjg4YTQ4IDQ4IDAgMCAwIDQ4LTQ4VjEyOGgxNmExNiAxNiAwIDAgMCAxNi0xNlY5NmExNiAxNiAwIDAgMC0xNi0xNnpNMTcxLjg0IDUwLjkxQTYgNiAwIDAgMSAxNzcgNDhoOTRhNiA2IDAgMCAxIDUuMTUgMi45MUwyOTMuNjEgODBIMTU0LjM5ek0zNjggNDY0SDgwVjEyOGgyODh6bS0yMTItNDhoMjRhMTIgMTIgMCAwIDAgMTItMTJWMTg4YTEyIDEyIDAgMCAwLTEyLTEyaC0yNGExMiAxMiAwIDAgMC0xMiAxMnYyMTZhMTIgMTIgMCAwIDAgMTIgMTJ6XCIgLz5cbiAgICAgICAgPC9JY29uQmFzZT5cbiAgICAgICIsICJpbXBvcnQgVXNlckhpZXJhcmNoaWVzIGZyb20gXCIuLi9Db21wb25lbnRzL1VzZXJIaWVyYXJjaGllcy5zdmVsdGVcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgZGV0YWlscyB9IGZyb20gXCIuL0JyZWFkY3J1bWJzU2V0dGluZ1RhYlwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZEhpZXJhcmNoeVNldHRpbmdzKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgY29udGFpbmVyRWw6IEhUTUxFbGVtZW50XHJcbikge1xyXG4gIGNvbnN0IGZpZWxkRGV0YWlscyA9IGRldGFpbHMoXCJIaWVyYXJjaGllc1wiLCBjb250YWluZXJFbCk7XHJcblxyXG4gIGZpZWxkRGV0YWlscy5jcmVhdGVFbChcInBcIiwge1xyXG4gICAgdGV4dDogXCJIZXJlIHlvdSBjYW4gc2V0IHVwIGRpZmZlcmVudCBoaWVyYXJjaGllcyB5b3UgdXNlIGluIHlvdXIgdmF1bHQuIFRvIGFkZCBhIG5ldyBoaWVyYXJjaHksIGNsaWNrIHRoZSBwbHVzIGJ1dHRvbi4gVGhlbiwgZmlsbCBpbiB0aGUgZmllbGQgbmFtZXMgb2YgeW91ciBoaWVyYWNoeSBpbnRvIHRoZSA1IGJveGVzIHRoYXQgYXBwZWFyLlwiLFxyXG4gIH0pO1xyXG4gIGZpZWxkRGV0YWlscy5jcmVhdGVFbChcInBcIiwge1xyXG4gICAgdGV4dDogXCJGb3IgZWFjaCBkaXJlY3Rpb24sIHlvdSBjYW4gZW50ZXIgbXVsdGlwbGUgZmllbGQgbmFtZXMgaW4gYSBjb21tYS1zZXBlcmF0ZWQgbGlzdC4gRm9yIGV4YW1wbGU6IGBwYXJlbnQsIGJyb2FkZXIsIHVwcGVyYFwiLFxyXG4gIH0pO1xyXG5cclxuICBuZXcgVXNlckhpZXJhcmNoaWVzKHtcclxuICAgIHRhcmdldDogZmllbGREZXRhaWxzLFxyXG4gICAgcHJvcHM6IHsgcGx1Z2luIH0sXHJcbiAgfSk7XHJcbn1cclxuIiwgbnVsbCwgIjxzY3JpcHQgbGFuZz1cInRzXCI+XHJcbiAgaW1wb3J0IHsgd2FybiB9IGZyb20gXCJsb2dsZXZlbFwiO1xyXG4gIGltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbiAgaW1wb3J0IHsgcmVmcmVzaEluZGV4IH0gZnJvbSBcIi4uL3JlZnJlc2hJbmRleFwiO1xyXG5cclxuICBleHBvcnQgbGV0IHBsdWdpbjogQkNQbHVnaW47XHJcbiAgZXhwb3J0IGxldCBzZXR0aW5nTmFtZTogc3RyaW5nO1xyXG4gIGV4cG9ydCBsZXQgb3B0aW9uczogc3RyaW5nW107XHJcblxyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuXHJcbiAgbGV0IHNlbGVjdGVkID0gc2V0dGluZ3Nbc2V0dGluZ05hbWVdO1xyXG5cclxuICAkOiB0b05vbmUgPSBzZWxlY3RlZC5sZW5ndGggPT09IDAgPyBmYWxzZSA6IHRydWU7XHJcblxyXG4gIGFzeW5jIGZ1bmN0aW9uIHNhdmUoKSB7XHJcbiAgICBpZiAoc2V0dGluZ3Nbc2V0dGluZ05hbWVdID09PSB1bmRlZmluZWQpXHJcbiAgICAgIHJldHVybiB3YXJuKHNldHRpbmdOYW1lICsgXCIgbm90IGZvdW5kIGluIEJDIHNldHRpbmdzXCIpO1xyXG5cclxuICAgIHNldHRpbmdzW3NldHRpbmdOYW1lXSA9IHNlbGVjdGVkO1xyXG4gICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgYXdhaXQgcmVmcmVzaEluZGV4KHBsdWdpbik7XHJcbiAgfVxyXG48L3NjcmlwdD5cclxuXHJcbjxkaXY+XHJcbiAgPGJ1dHRvblxyXG4gICAgb246Y2xpY2s9e2FzeW5jICgpID0+IHtcclxuICAgICAgaWYgKHRvTm9uZSkgc2VsZWN0ZWQgPSBbXTtcclxuICAgICAgZWxzZSBzZWxlY3RlZCA9IG9wdGlvbnM7XHJcbiAgICAgIGF3YWl0IHNhdmUoKTtcclxuICAgIH19XHJcbiAgPlxyXG4gICAgU2VsZWN0IHt0b05vbmUgPyBcIk5vbmVcIiA6IFwiQWxsXCJ9XHJcbiAgPC9idXR0b24+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImdyaWRcIj5cclxuICB7I2VhY2ggb3B0aW9ucyBhcyBvcHRpb259XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8bGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgdmFsdWU9e29wdGlvbn1cclxuICAgICAgICAgIGJpbmQ6Z3JvdXA9e3NlbGVjdGVkfVxyXG4gICAgICAgICAgb246Y2hhbmdlPXthc3luYyAoKSA9PiBhd2FpdCBzYXZlKCl9XHJcbiAgICAgICAgLz5cclxuICAgICAgICB7b3B0aW9ufVxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcbiAgey9lYWNofVxyXG48L2Rpdj5cclxuXHJcbjxzdHlsZT5cclxuICAuZ3JpZCB7XHJcbiAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxMDBweCwgMWZyKSk7XHJcbiAgfVxyXG48L3N0eWxlPlxyXG4iLCAiaW1wb3J0IENoZWNrYm94ZXMgZnJvbSBcIi4uL0NvbXBvbmVudHMvQ2hlY2tib3hlcy5zdmVsdGVcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgZ2V0RmllbGRzIH0gZnJvbSBcIi4uL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBzdWJEZXRhaWxzIH0gZnJvbSBcIi4vQnJlYWRjcnVtYnNTZXR0aW5nVGFiXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkSnVtcFRvTmV4dFNldHRpbmdzKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgdmlld0RldGFpbHM6IEhUTUxEZXRhaWxzRWxlbWVudFxyXG4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3QganVtcFRvRGlyRGV0YWlscyA9IHN1YkRldGFpbHMoXCJKdW1wIHRvIE5leHQgRGlyZWN0aW9uXCIsIHZpZXdEZXRhaWxzKTtcclxuXHJcbiAganVtcFRvRGlyRGV0YWlscy5jcmVhdGVEaXYoeyBjbHM6ICdzZXR0aW5nLWl0ZW0tbmFtZScsIHRleHQ6ICdMaW1pdCB3aGljaCBmaWVsZHMgdG8ganVtcCB0bycgfSlcclxuXHJcbiAgbmV3IENoZWNrYm94ZXMoe1xyXG4gICAgdGFyZ2V0OiBqdW1wVG9EaXJEZXRhaWxzLFxyXG4gICAgcHJvcHM6IHtcclxuICAgICAgcGx1Z2luLFxyXG4gICAgICBzZXR0aW5nTmFtZTogXCJsaW1pdEp1bXBUb0ZpcnN0RmllbGRzXCIsXHJcbiAgICAgIG9wdGlvbnM6IGdldEZpZWxkcyhzZXR0aW5ncy51c2VySGllcnMpLFxyXG4gICAgfSxcclxuICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHsgTm90aWNlLCBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IG9wZW5WaWV3IH0gZnJvbSBcIm9ic2lkaWFuLWNvbW11bml0eS1saWIvZGlzdC91dGlsc1wiO1xyXG5pbXBvcnQgeyBNQVRSSVhfVklFVyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IE1hdHJpeFZpZXcgZnJvbSBcIi4uL1ZpZXdzL01hdHJpeFZpZXdcIjtcclxuaW1wb3J0IHsgZnJhZ1dpdGhIVE1MLCBzdWJEZXRhaWxzIH0gZnJvbSBcIi4vQnJlYWRjcnVtYnNTZXR0aW5nVGFiXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkTWF0cml4Vmlld1NldHRpbmdzKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgdmlld0RldGFpbHM6IEhUTUxEZXRhaWxzRWxlbWVudFxyXG4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgTUxWaWV3RGV0YWlscyA9IHN1YkRldGFpbHMoXCJNYXRyaXggVmlld1wiLCB2aWV3RGV0YWlscyk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKE1MVmlld0RldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIlNob3cgYWxsIGZpZWxkIG5hbWVzIG9yIGp1c3QgcmVsYXRpb24gdHlwZXNcIilcclxuICAgIC5zZXREZXNjKGZyYWdXaXRoSFRNTChcclxuICAgICAgXCJTaG93IHRoZSBsaXN0IG9mIG1ldGFkYXRhIGZpZWxkcyBmb3IgZWFjaCByZWxhdGlvbiB0eXBlIChlLmcuIDxjb2RlPnBhcmVudCwgYnJvYWRlciwgdXBwZXI8L2NvZGU+KSwgb3IganVzdCB0aGUgbmFtZSBvZiB0aGUgcmVsYXRpb24gdHlwZSwgaS5lLiAnPGNvZGU+UGFyZW50PC9jb2RlPicsICc8Y29kZT5TaWJsaW5nPC9jb2RlPicsICc8Y29kZT5DaGlsZDwvY29kZT4nLjwvYnI+XHUyNzA1ID0gc2hvdyB0aGUgZnVsbCBsaXN0LlwiKVxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGUuc2V0VmFsdWUoc2V0dGluZ3Muc2hvd05hbWVPclR5cGUpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLnNob3dOYW1lT3JUeXBlID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5nZXRBY3RpdmVUWVBFVmlldyhNQVRSSVhfVklFVykuZHJhdygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgbmV3IFNldHRpbmcoTUxWaWV3RGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiU2hvdyBSZWxhdGlvbnNoaXAgVHlwZVwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIlNob3cgd2hldGhlciBhIGxpbmsgaXMgcmVhbCBvciBpbXBsaWVkLlwiXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cclxuICAgICAgdG9nZ2xlLnNldFZhbHVlKHNldHRpbmdzLnNob3dSZWxhdGlvblR5cGUpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLnNob3dSZWxhdGlvblR5cGUgPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLmdldEFjdGl2ZVRZUEVWaWV3KE1BVFJJWF9WSUVXKS5kcmF3KCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICBuZXcgU2V0dGluZyhNTFZpZXdEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJEaXJlY3Rpb25zIE9yZGVyXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgIGBDaGFuZ2UgdGhlIG9yZGVyIGluIHdoaWNoIHRoZSBkaXJlY3Rpb25zIGFwcGVhciBpbiB0aGUgTWF0cml4IHZpZXcuPC9icj5UaGUgZGVmYXVsdCBpcyBcInVwLCBzYW1lLCBkb3duLCBuZXh0LCBwcmV2XCIgKDxjb2RlPjAxMjM0PC9jb2RlPikuXHJcbiAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgIDxsaT4wIFx1MjE5MiB1cDwvbGk+XHJcbiAgICAgICAgICAgIDxsaT4xIFx1MjE5MiBzYW1lPC9saT5cclxuICAgICAgICAgICAgPGxpPjIgXHUyMTkyIGRvd248L2xpPlxyXG4gICAgICAgICAgICA8bGk+MyBcdTIxOTIgbmV4dDwvbGk+XHJcbiAgICAgICAgICAgIDxsaT40IFx1MjE5MiBwcmV2PC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICA8c3Ryb25nPk5vdGU8L3N0cm9uZz46IFlvdSBjYW4gcmVtb3ZlIG51bWJlcnMgdG8gaGlkZSB0aG9zZSBkaXJlY3Rpb25zIGluIHRoZSBNYXRyaXggVmlldy4gRm9yIGV4YW1wbGUsIDxjb2RlPjAyPC9jb2RlPiB3aWxsIG9ubHkgc2hvdyB1cCBhbmQgZG93biwgaW4gdGhhdCBvcmRlci5gXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIC5hZGRUZXh0KCh0ZXh0KSA9PiB7XHJcbiAgICAgIHRleHQuc2V0VmFsdWUoc2V0dGluZ3Muc3F1YXJlRGlyZWN0aW9uc09yZGVyLmpvaW4oXCJcIikpO1xyXG4gICAgICB0ZXh0LmlucHV0RWwub25ibHVyID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGV4dC5nZXRWYWx1ZSgpO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHZhbHVlLnNwbGl0KFwiXCIpO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHZhbHVlLmxlbmd0aCA8PSA1ICYmXHJcbiAgICAgICAgICB2YWx1ZXMuZXZlcnkoKHZhbHVlKSA9PiBbXCIwXCIsIFwiMVwiLCBcIjJcIiwgXCIzXCIsIFwiNFwiXS5pbmNsdWRlcyh2YWx1ZSkpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBzZXR0aW5ncy5zcXVhcmVEaXJlY3Rpb25zT3JkZXIgPSB2YWx1ZXMubWFwKChvcmRlcikgPT5cclxuICAgICAgICAgICAgTnVtYmVyLnBhcnNlSW50KG9yZGVyKVxyXG4gICAgICAgICAgKSBhcyAoMCB8IDEgfCAyIHwgMyB8IDQpW107XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uZ2V0QWN0aXZlVFlQRVZpZXcoTUFUUklYX1ZJRVcpLmRyYXcoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmV3IE5vdGljZShcclxuICAgICAgICAgICAgJ1RoZSB2YWx1ZSBtdXN0IGJlIGEgNSBkaWdpdCBudW1iZXIgdXNpbmcgb25seSB0aGUgZGlnaXRzIFwiMFwiLCBcIjFcIiwgXCIyXCIsIFwiM1wiLCBcIjRcIidcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKE1MVmlld0RldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkVuYWJsZSBBbHBhaGVidGljYWwgU29ydGluZ1wiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIFwiQnkgZGVmYXVsdCwgaXRlbXMgaW4gdGhlIE1hdHJpeCB2aWV3IGFyZSBzb3J0ZWQgYnkgdGhlIG9yZGVyIHRoZXkgYXBwZWFyIGluIHlvdXIgbm90ZXMuIFRvZ2dsZSB0aGlzIG9uIHRvIGVuYWJsZSBhbHBoYWJldGljYWwgc29ydGluZy5cIlxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGUuc2V0VmFsdWUoc2V0dGluZ3MuZW5hYmxlQWxwaGFTb3J0KS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5lbmFibGVBbHBoYVNvcnQgPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLmdldEFjdGl2ZVRZUEVWaWV3KE1BVFJJWF9WSUVXKS5kcmF3KCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICAvLyBUT0RPIGhpZGUgdGhpcyBzZXR0aW5nIGlmICFlbmFibGVBbHBoYVNvcnRcclxuICBuZXcgU2V0dGluZyhNTFZpZXdEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJTb3J0IEFscGhhYmV0aWNhbGx5IEFzY2VuZGluZy9EZXNjZW5kaW5nXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgXCJTb3J0IHNxdWFyZSBpdGVtcyBhbHBoYWJldGljYWxseSBpbiBBc2NlbmRpbmcgKFx1MjcwNSkgb3IgRGVzY2VuZGluZyAoXHUyNzRDKSBvcmRlci5cIlxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGUuc2V0VmFsdWUoc2V0dGluZ3MuYWxwaGFTb3J0QXNjKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5hbHBoYVNvcnRBc2MgPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLmdldEFjdGl2ZVRZUEVWaWV3KE1BVFJJWF9WSUVXKS5kcmF3KCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICBuZXcgU2V0dGluZyhNTFZpZXdEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJTb3J0IGJ5IG5vdGUgbmFtZSwgYnV0IHNob3cgYWxpYXNcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBcIldoZW4gdGhpcyBpcyB0dXJuZWQgb2ZmLCBub3RlcyB3aWxsIGZpcnN0IGJlIHNvcnRlZCBieSB0aGVpciBhbGlhcywgYW5kIHRoZW4gYnkgdGhlaXIgbmFtZSBpZiBubyBhbGlhcyBpcyBmb3VuZC4gVHVybiB0aGlzIG9uIHRvIHNvcnQgYnkgbm90ZSBuYW1lIGFsd2F5cywgYnV0IHN0aWxsIHNob3cgdGhlIGFsaWFzIGluIHRoZSByZXN1bHRzLlwiXHJcbiAgICApXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgIHRvZ2dsZS5zZXRWYWx1ZShzZXR0aW5ncy5zb3J0QnlOYW1lU2hvd0FsaWFzKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5zb3J0QnlOYW1lU2hvd0FsaWFzID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5nZXRBY3RpdmVUWVBFVmlldyhNQVRSSVhfVklFVykuZHJhdygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgbmV3IFNldHRpbmcoTUxWaWV3RGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiU2hvdyBJbXBsaWVkIFJlbGF0aW9uc1wiKVxyXG4gICAgLnNldERlc2MoXCJXaGV0aGVyIG9yIG5vdCB0byBzaG93IGltcGxpZWQgcmVsYXRpb25zIGF0IGFsbC5cIilcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cclxuICAgICAgdG9nZ2xlLnNldFZhbHVlKHNldHRpbmdzLnNob3dJbXBsaWVkUmVsYXRpb25zKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5zaG93SW1wbGllZFJlbGF0aW9ucyA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uZ2V0QWN0aXZlVFlQRVZpZXcoTUFUUklYX1ZJRVcpLmRyYXcoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gIC8vIFRPRE8gSSBkb24ndCB0aGluayB0aGlzIHNldHRpbmcgd29ya3MgYW55bW9yZS4gSSByZW1vdmVkIGl0J3MgZnVuY3Rpb25hbGl0eSB3aGVuIGFkZGluZyBtdWx0aXBsZSBoaWVyYXJjaGllc1xyXG4gIC8vIG5ldyBTZXR0aW5nKE1MVmlld0RldGFpbHMpXHJcbiAgLy8gICAuc2V0TmFtZShcIkZpbHRlciBJbXBsaWVkIFNpYmxpbmdzXCIpXHJcbiAgLy8gICAuc2V0RGVzYyhcclxuICAvLyAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gIC8vICAgICAgIGBJbXBsaWVkIHNpYmxpbmdzIGFyZTpcclxuICAvLyAgICAgICAgIDxvbD5cclxuICAvLyAgICAgICAgICAgPGxpPm5vdGVzIHdpdGggdGhlIHNhbWUgcGFyZW50LCBvcjwvbGk+XHJcbiAgLy8gICAgICAgICAgIDxsaT5ub3RlcyB0aGF0IGFyZSByZWFsIHNpYmxpbmdzLjwvbGk+XHJcbiAgLy8gICAgICAgICA8L29sPlxyXG4gIC8vICAgICAgICAgVGhpcyBzZXR0aW5nIG9ubHkgYXBwbGllcyB0byB0eXBlIDEgaW1wbGllZCBzaWJsaW5ncy4gSWYgZW5hYmxlZCwgQnJlYWRjcnVtYnMgd2lsbCBmaWx0ZXIgdHlwZSAxIGltcGxpZWQgc2libGluZ3Mgc28gdGhhdCB0aGV5IG5vdCBvbmx5IHNoYXJlIHRoZSBzYW1lIHBhcmVudCwgYnV0IHRoZSBwYXJlbnQgcmVsYXRpb24gaGFzIHRoZSBleGFjdCBzYW1lIHR5cGUuIEZvciBleGFtcGxlLCB0aGUgdHdvIHJlYWwgcmVsYXRpb25zIDxjb2RlPkIgLXBhcmVudC0+IEE8L2NvZGU+LCBhbmQgPGNvZGU+QyAtcGFyZW50LT4gQTwvY29kZT4gY3JlYXRlIGFuIGltcGxpZWQgc2libGluZyBiZXR3ZWVuIEIgYW5kIEMgKHRoZXkgaGF2ZSB0aGUgc2FtZSBwYXJlbnQsIEEpLiBUaGUgdHdvIHJlYWwgcmVsYXRpb25zIDxjb2RlPkIgLXBhcmVudC0+IEE8L2NvZGU+LCBhbmQgPGNvZGU+QyAtdXAtPiBBPC9jb2RlPiBjcmVhdGUgYW4gaW1wbGllZCBzaWJsaW5nIGJldHdlZW4gQiBhbmQgQyAodGhleSBhbHNvIGhhdmUgdGhlIHNhbWUgcGFyZW50LCBBKS4gQnV0IGlmIHRoaXMgc2V0dGluZyBpcyB0dXJuZWQgb24sIHRoZSBzZWNvbmQgaW1wbGllZCBzaWJsaW5nIHdvdWxkIG5vdCBzaG93LCBiZWNhdXNlIHRoZSBwYXJlbnQgdHlwZXMgYXJlIGRpZmZlcm5ldCAocGFyZW50IHZlcnN1cyB1cCkuYFxyXG4gIC8vICAgICApXHJcbiAgLy8gICApXHJcbiAgLy8gICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgLy8gICAgIHRvZ2dsZVxyXG4gIC8vICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5maWx0ZXJJbXBsaWVkU2libGluZ3NPZkRpZmZlcmVudFR5cGVzKVxyXG4gIC8vICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAvLyAgICAgICAgIHNldHRpbmdzLmZpbHRlckltcGxpZWRTaWJsaW5nc09mRGlmZmVyZW50VHlwZXMgPSB2YWx1ZTtcclxuICAvLyAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAvLyAgICAgICAgIGF3YWl0IHBsdWdpbi5nZXRBY3RpdmVUWVBFVmlldyhNQVRSSVhfVklFVykuZHJhdygpO1xyXG4gIC8vICAgICAgIH0pXHJcbiAgLy8gICApO1xyXG5cclxuICBuZXcgU2V0dGluZyhNTFZpZXdEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJPcGVuIFZpZXcgaW4gUmlnaHQgb3IgTGVmdCBzaWRlXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgXCJXaGVuIGxvYWRpbmcgdGhlIG1hdHJpeCB2aWV3LCBzaG91bGQgaXQgb3BlbiBvbiB0aGUgbGVmdCBvciByaWdodCBzaWRlIGxlYWY/IFx1MjcwNSA9IFJpZ2h0LCBcdTI3NEMgPSBMZWZ0LlwiXHJcbiAgICApXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgIHRvZ2dsZS5zZXRWYWx1ZShzZXR0aW5ncy5ybExlYWYpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLnJsTGVhZiA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBhcHAud29ya3NwYWNlLmRldGFjaExlYXZlc09mVHlwZShNQVRSSVhfVklFVyk7XHJcbiAgICAgICAgYXdhaXQgb3BlblZpZXcoXHJcbiAgICAgICAgICBhcHAsXHJcbiAgICAgICAgICBNQVRSSVhfVklFVyxcclxuICAgICAgICAgIE1hdHJpeFZpZXcsXHJcbiAgICAgICAgICB2YWx1ZSA/IFwicmlnaHRcIiA6IFwibGVmdFwiXHJcbiAgICAgICAgKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbn1cclxuIiwgImltcG9ydCB7IE5vdGljZSwgU2V0dGluZyB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQgeyByZWZyZXNoSW5kZXggfSBmcm9tIFwiLi4vcmVmcmVzaEluZGV4XCI7XHJcbmltcG9ydCB7IHN0clRvUmVnZXggfSBmcm9tIFwiLi4vVXRpbHMvZ2VuZXJhbFV0aWxzXCI7XHJcbmltcG9ydCB7IGdldEZpZWxkcyB9IGZyb20gXCIuLi9VdGlscy9IaWVyVXRpbHNcIjtcclxuaW1wb3J0IHsgZnJhZ1dpdGhIVE1MLCBzdWJEZXRhaWxzIH0gZnJvbSBcIi4vQnJlYWRjcnVtYnNTZXR0aW5nVGFiXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkTm9TeXN0ZW1TZXR0aW5ncyhcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIGFsdGVybmF0aXZlSGllcmFyY2h5RGV0YWlsczogSFRNTERldGFpbHNFbGVtZW50XHJcbikge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7IHVzZXJIaWVycyB9ID0gc2V0dGluZ3M7XHJcbiAgY29uc3QgZmllbGRzID0gZ2V0RmllbGRzKHVzZXJIaWVycyk7XHJcblxyXG4gIGNvbnN0IG5vU3lzdGVtRGV0YWlscyA9IHN1YkRldGFpbHMoXHJcbiAgICBcIk5hbWluZyBTeXN0ZW1cIixcclxuICAgIGFsdGVybmF0aXZlSGllcmFyY2h5RGV0YWlsc1xyXG4gICk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKG5vU3lzdGVtRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiTmFtaW5nIFN5c3RlbSBSZWdleFwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIklmIHlvdSBuYW1lIHlvdXIgbm90ZXMgdXNpbmcgdGhlIEpvaG5ueSBEZWNpbWFsIFN5c3RlbSBvciBhIHJlbGF0ZWQgc3lzdGVtLCBlbnRlciBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGluZyB0aGUgbG9uZ2VzdCBwb3NzaWJsZSBuYW1pbmcgc3lzdGVtIHlvdSB1c2UuIFRoZSByZWdleCBzaG91bGQgb25seSBtYXRjaCB0aGUgbmFtaW5nIHN5c3RlbSBwYXJ0IG9mIHRoZSBuYW1lLCBub3QgdGhlIGFjdHVhbCBub3RlIHRpdGxlLjwvYnI+IEZvciBleGFtcGxlLCBpZiB5b3UgdXNlIHRoZSBKb2hubnkgRGVjaW1hbCBTeXN0ZW0sIHlvdSBtaWdodCB1c2UgPGNvZGU+L15cXFxcZFxcXFwuXFxcXGRcXFxcLlxcXFx3L2c8L2NvZGU+IHRvIG1hdGNoIHRoZSBub3RlIG5hbWVkIDxjb2RlPjEuMi5hIENhcnM8L2NvZGU+LjwvYnI+SWYgeW91IGRvbid0IHdhbnQgdG8gY2hvb3NlIGEgZGVmYXVsdCwgc2VsZWN0IHRoZSBibGFuayBvcHRpb24gYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdC5cIlxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkVGV4dCgodGV4dCkgPT4ge1xyXG4gICAgICB0ZXh0LnNldFZhbHVlKHNldHRpbmdzLm5hbWluZ1N5c3RlbVJlZ2V4KTtcclxuICAgICAgdGV4dC5pbnB1dEVsLm9uYmx1ciA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRleHQuZ2V0VmFsdWUoKTtcclxuICAgICAgICBpZiAodmFsdWUgPT09IFwiXCIgfHwgc3RyVG9SZWdleCh2YWx1ZSkpIHtcclxuICAgICAgICAgIHNldHRpbmdzLm5hbWluZ1N5c3RlbVJlZ2V4ID0gdmFsdWU7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmV3IE5vdGljZShcIkludmFsaWQgUmVnZXhcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgbmV3IFNldHRpbmcobm9TeXN0ZW1EZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJOYW1pbmcgU3lzdGVtIERlbGltaXRlclwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIldoYXQgY2hhcmFjdGVyIGRvIHlvdSB1c2UgdG8gc3BsaXQgdXAgeW91ciBuYW1pbmcgY29udmVudGlvbj8gRm9yIGV4YW1wbGUsIGlmIHlvdSB1c2UgPGNvZGU+MS4yLmEuYjwvY29kZT4sIHRoZW4geW91ciBkZWxpbWl0ZXIgaXMgYSBwZXJpb2QgKDxjb2RlPi48L2NvZGU+KS5cIlxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkVGV4dCgodGV4dCkgPT4ge1xyXG4gICAgICB0ZXh0LnNldFZhbHVlKHNldHRpbmdzLm5hbWluZ1N5c3RlbVNwbGl0KTtcclxuICAgICAgdGV4dC5pbnB1dEVsLm9uYmx1ciA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRleHQuZ2V0VmFsdWUoKTtcclxuICAgICAgICBzZXR0aW5ncy5uYW1pbmdTeXN0ZW1TcGxpdCA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG5cclxuICBuZXcgU2V0dGluZyhub1N5c3RlbURldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIk5hbWluZyBTeXN0ZW0gRmllbGRcIilcclxuICAgIC5zZXREZXNjKFwiV2hpY2ggZmllbGQgc2hvdWxkIEJyZWFkY3J1bWJzIHVzZSBmb3IgTmFtaW5nIFN5c3RlbSBub3Rlcz9cIilcclxuICAgIC5hZGREcm9wZG93bigoZGQpID0+IHtcclxuICAgICAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XHJcbiAgICAgICAgZGQuYWRkT3B0aW9uKGZpZWxkLCBmaWVsZCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBkZC5zZXRWYWx1ZShzZXR0aW5ncy5uYW1pbmdTeXN0ZW1GaWVsZCk7XHJcbiAgICAgIGRkLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLm5hbWluZ1N5c3RlbUZpZWxkID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIGF3YWl0IHJlZnJlc2hJbmRleChwbHVnaW4pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIG5ldyBTZXR0aW5nKG5vU3lzdGVtRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiTmFtaW5nIFN5c3RlbSBFbmRzIHdpdGggRGVsaW1pdGVyXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgIFwiRG9lcyB5b3VyIG5hbWluZyBjb252ZW50aW9uIGVuZCB3aXRoIHRoZSBkZWxpbWl0ZXI/IEZvciBleGFtcGxlLCA8Y29kZT4xLjIuIE5vdGU8L2NvZGU+IGRvZXMgZW5kIHdpdGggdGhlIGRlbGltaXRlciwgYnV0IDxjb2RlPjEuMiBOb3RlPC9jb2RlPiBkb2VzIG5vdC48L2JyPkZvciBtYXRjaGluZyBwdXJwb3NlcywgaXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRvIG5hbWUgeW91ciBub3RlcyB3aXRoIHRoZSBkZWxpbWl0ZXIgb24gdGhlIGVuZC4gT25seSB0dXJuIHRoaXMgc2V0dGluZyBvbiBpZiB5b3UgZG8gbmFtZSB5b3VyIG5vdGVzIHRoaXMgd2F5LCBidXQga25vdyB0aGF0IHRoZSByZXN1bHRzIG1heSBub3QgYmUgYXMgYWNjdXJhdGUgaWYgeW91IGRvbid0LlwiXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIC5hZGRUb2dnbGUoKHRvZykgPT5cclxuICAgICAgdG9nXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLm5hbWluZ1N5c3RlbUVuZHNXaXRoRGVsaW1pdGVyKVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLm5hbWluZ1N5c3RlbUVuZHNXaXRoRGVsaW1pdGVyID0gdmFsdWU7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAgICAgICB9KVxyXG4gICAgKTtcclxufVxyXG4iLCAiaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQsIFNldHRpbmcgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgcmVmcmVzaEluZGV4IH0gZnJvbSBcIi4uL3JlZnJlc2hJbmRleFwiO1xyXG5pbXBvcnQgeyBnZXRGaWVsZHMgfSBmcm9tIFwiLi4vVXRpbHMvSGllclV0aWxzXCI7XHJcbmltcG9ydCB7IGZyYWdXaXRoSFRNTCwgc3ViRGV0YWlscyB9IGZyb20gXCIuL0JyZWFkY3J1bWJzU2V0dGluZ1RhYlwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFJlZ2V4Tm90ZVNldHRpbmdzKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgYWx0ZXJuYXRpdmVIaWVyYXJjaHlEZXRhaWxzOiBIVE1MRGV0YWlsc0VsZW1lbnRcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHJlZ2V4Tm90ZURldGFpbHMgPSBzdWJEZXRhaWxzKFxyXG4gICAgXCJSZWdleCBOb3Rlc1wiLFxyXG4gICAgYWx0ZXJuYXRpdmVIaWVyYXJjaHlEZXRhaWxzXHJcbiAgKTtcclxuXHJcbiAgbmV3IFNldHRpbmcocmVnZXhOb3RlRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiRGVmYXVsdCBSZWdleCBOb3RlIEZpZWxkXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgIFwiQnkgZGVmYXVsdCwgcmVnZXggbm90ZXMgdXNlIHRoZSBmaXJzdCBmaWVsZCBpbiB5b3VyIGhpZXJhcmNoaWVzICh1c3VhbGx5IGFuIDxjb2RlPlx1MjE5MTwvY29kZT4gZmllbGQpLiBDaG9vc2UgYSBkaWZmZXJlbnQgb25lIHRvIHVzZSBieSBkZWZhdWx0LCB3aXRob3V0IGhhdmluZyB0byBzcGVjaWZ5IDxjb2RlPkJDLXJlZ2V4LW5vdGUtZmllbGQ6IHtmaWVsZH08L2NvZGU+LjwvYnI+SWYgeW91IGRvbid0IHdhbnQgdG8gY2hvb3NlIGEgZGVmYXVsdCwgc2VsZWN0IHRoZSBibGFuayBvcHRpb24gYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdC5cIlxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkRHJvcGRvd24oKGRkOiBEcm9wZG93bkNvbXBvbmVudCkgPT4ge1xyXG4gICAgICBjb25zdCBvcHRpb25zID0ge307XHJcbiAgICAgIGdldEZpZWxkcyhzZXR0aW5ncy51c2VySGllcnMpLmZvckVhY2goXHJcbiAgICAgICAgKGZpZWxkKSA9PiAob3B0aW9uc1tmaWVsZF0gPSBmaWVsZClcclxuICAgICAgKTtcclxuICAgICAgZGQuYWRkT3B0aW9ucyhPYmplY3QuYXNzaWduKG9wdGlvbnMsIHsgXCJcIjogXCJcIiB9KSlcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3MucmVnZXhOb3RlRmllbGQpXHJcbiAgICAgICAgLm9uQ2hhbmdlKGFzeW5jIChmaWVsZCkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3MucmVnZXhOb3RlRmllbGQgPSBmaWVsZDtcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgIGF3YWl0IHJlZnJlc2hJbmRleChwbHVnaW4pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuIiwgImltcG9ydCB7IGRldGFpbHMgfSBmcm9tIFwiLi9CcmVhZGNydW1ic1NldHRpbmdUYWJcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgTWFya2Rvd25SZW5kZXJlciwgU2V0dGluZyB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgeyByZWZyZXNoSW5kZXggfSBmcm9tIFwiLi4vcmVmcmVzaEluZGV4XCI7XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFJlbGF0aW9uU2V0dGluZ3MoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICBjb250YWluZXJFbDogSFRNTEVsZW1lbnRcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHJlbGF0aW9uRGV0YWlscyA9IGRldGFpbHMoXCJSZWxhdGlvbnNoaXBzXCIsIGNvbnRhaW5lckVsKTtcclxuXHJcbiAgZnVuY3Rpb24gbWVybWFpZERpYWdyYW0oZGlhZ3JhbVN0cjogc3RyaW5nKSB7XHJcbiAgICBNYXJrZG93blJlbmRlcmVyLnJlbmRlck1hcmtkb3duKFxyXG4gICAgICBkaWFncmFtU3RyLFxyXG4gICAgICByZWxhdGlvbkRldGFpbHMuY3JlYXRlRGl2KCksXHJcbiAgICAgIFwiXCIsXHJcbiAgICAgIG51bGxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcmVsYXRpb25EZXRhaWxzLmNyZWF0ZUVsKFwicFwiLCB7XHJcbiAgICB0ZXh0OiBcIkhlcmUgeW91IGNhbiB0b2dnbGUgb24vb2ZmIGRpZmZlcmVudCB0eXBlcyBvZiBpbXBsaWVkIHJlbGF0aW9uc2hpcHMuIEFsbCBvZiB5b3VyIGV4cGxpY2l0IChyZWFsKSByZWxhdGlvbnNoaXBzIHdpbGwgc3RpbGwgc2hvdywgYnV0IHlvdSBjYW4gY2hvb3NlIHdoaWNoIGltcGxpZWQgb25lcyBnZXQgZmlsbGVkIGluLlxcbkFsbCBpbXBsaWVkIHJlbGF0aW9uc2hpcHMgYXJlIGdpdmVuIGEgQ1NTIGNsYXNzIG9mIHRoZSB0eXBlIG9mIGltcGxpZWQgcmVsYXRpb24sIHNvIHlvdSBjYW4gc3R5bGUgdGhlbSBkaWZmZXJlbnRseS4gRm9yIGV4YW1wbGUgYC5CQy1BdW50YC5cIixcclxuICB9KTtcclxuXHJcbiAgbmV3IFNldHRpbmcocmVsYXRpb25EZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJTYW1lIFBhcmVudCBpcyBTaWJsaW5nc1wiKVxyXG4gICAgLnNldERlc2MoXCJJZiBvbmUgbm90ZSBzaGFyZXMgYSBwYXJlbnQgd2l0aCBhbm90aGVyLCB0cmVhdCB0aGVtIGFzIHNpYmxpbmdzXCIpXHJcbiAgICAuYWRkVG9nZ2xlKCh0ZykgPT5cclxuICAgICAgdGdcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3MuaW1wbGllZFJlbGF0aW9ucy5zYW1lUGFyZW50SXNTaWJsaW5nKVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsKSA9PiB7XHJcbiAgICAgICAgICBzZXR0aW5ncy5pbXBsaWVkUmVsYXRpb25zLnNhbWVQYXJlbnRJc1NpYmxpbmcgPSB2YWw7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgbWVybWFpZERpYWdyYW0oXCJgYGBtZXJtYWlkXFxuZmxvd2NoYXJ0IExSXFxuTWUgLS0+fHVwfCBEYWRcXG5TaXN0ZXIgLS0+fHVwfCBEYWRcXG5NZSA8LS4tPnxzYW1lfCBTaXN0ZXJcXG5gYGBcIilcclxuXHJcbiAgbmV3IFNldHRpbmcocmVsYXRpb25EZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJTaWJsaW5ncycgU2libGluZ3NcIilcclxuICAgIC5zZXREZXNjKFwiVHJlYXQgeW91ciBzaWJsaW5ncycgc2libGluZ3MgYXMgeW91ciBzaWJsaW5nc1wiKVxyXG4gICAgLmFkZFRvZ2dsZSgodGcpID0+XHJcbiAgICAgIHRnXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLmltcGxpZWRSZWxhdGlvbnMuc2libGluZ3NTaWJsaW5nSXNTaWJsaW5nKVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsKSA9PiB7XHJcbiAgICAgICAgICBzZXR0aW5ncy5pbXBsaWVkUmVsYXRpb25zLnNpYmxpbmdzU2libGluZ0lzU2libGluZyA9IHZhbDtcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgIGF3YWl0IHJlZnJlc2hJbmRleChwbHVnaW4pO1xyXG4gICAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICBtZXJtYWlkRGlhZ3JhbShcImBgYG1lcm1haWRcXG5mbG93Y2hhcnQgTFJcXG5NZSAtLT58c2FtZXwgU2lzdGVyXFxuTWUgLS0+fHNhbWV8IEJyb3RoZXJcXG5TaXN0ZXIgPC0uLT58c2FtZXwgQnJvdGhlclxcbmBgYFwiKVxyXG5cclxuICBuZXcgU2V0dGluZyhyZWxhdGlvbkRldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIlNpYmxpbmdzJyBQYXJlbnQgaXMgUGFyZW50XCIpXHJcbiAgICAuc2V0RGVzYyhcIllvdXIgc2libGluZ3MnIHBhcmVudHMgYXJlIHlvdXIgcGFyZW50c1wiKVxyXG4gICAgLmFkZFRvZ2dsZSgodGcpID0+XHJcbiAgICAgIHRnXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLmltcGxpZWRSZWxhdGlvbnMuc2libGluZ3NQYXJlbnRJc1BhcmVudClcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbCkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3MuaW1wbGllZFJlbGF0aW9ucy5zaWJsaW5nc1BhcmVudElzUGFyZW50ID0gdmFsO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgYXdhaXQgcmVmcmVzaEluZGV4KHBsdWdpbik7XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gIG1lcm1haWREaWFncmFtKFwiYGBgbWVybWFpZFxcbmZsb3djaGFydCBMUlxcblNpc3RlciAtLT58dXB8IERhZFxcblNpc3RlciA8LS0+fHNhbWV8IE1lXFxuTWUgLS4tPnx1cHwgRGFkXFxuYGBgXCIpXHJcblxyXG4gIG5ldyBTZXR0aW5nKHJlbGF0aW9uRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiQXVudC9VbmNsZVwiKVxyXG4gICAgLnNldERlc2MoXCJUcmVhdCB5b3VyIHBhcmVudCdzIHNpYmxpbmdzIGFzIHlvdXIgcGFyZW50cyAoYXVudHMvdW5jbGVzKVwiKVxyXG4gICAgLmFkZFRvZ2dsZSgodGcpID0+XHJcbiAgICAgIHRnXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLmltcGxpZWRSZWxhdGlvbnMucGFyZW50c1NpYmxpbmdzSXNQYXJlbnRzKVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsKSA9PiB7XHJcbiAgICAgICAgICBzZXR0aW5ncy5pbXBsaWVkUmVsYXRpb25zLnBhcmVudHNTaWJsaW5nc0lzUGFyZW50cyA9IHZhbDtcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgIGF3YWl0IHJlZnJlc2hJbmRleChwbHVnaW4pO1xyXG4gICAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICBtZXJtYWlkRGlhZ3JhbShcImBgYG1lcm1haWRcXG5mbG93Y2hhcnQgTFJcXG5NZSAtLT58dXB8IERhZFxcbkRhZCAtLT58c2FtZXwgVW5jbGVcXG5NZSAtLi0+fHVwfCBVbmNsZVxcbmBgYFwiKVxyXG5cclxuICBuZXcgU2V0dGluZyhyZWxhdGlvbkRldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkNvdXNpbnNcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBcIlRyZWF0IHRoZSBjb3VzaW5zIG9mIGEgbm90ZSBhcyBzaWJsaW5ncyAocGFyZW50cycgc2libGluZ3MnIGNoaWxkcmVuIGFyZSBjb3VzaW5zKVwiXHJcbiAgICApXHJcbiAgICAuYWRkVG9nZ2xlKCh0ZykgPT5cclxuICAgICAgdGdcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3MuaW1wbGllZFJlbGF0aW9ucy5jb3VzaW5zSXNTaWJsaW5nKVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsKSA9PiB7XHJcbiAgICAgICAgICBzZXR0aW5ncy5pbXBsaWVkUmVsYXRpb25zLmNvdXNpbnNJc1NpYmxpbmcgPSB2YWw7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgbWVybWFpZERpYWdyYW0oXCJgYGBtZXJtYWlkXFxuZmxvd2NoYXJ0IExSXFxuTWUgLS0+fHVwfCBEYWRcXG5EYWQgLS0+fHNhbWV8IFVuY2xlXFxuVW5jbGUgLS0+fGRvd258IENvdXNpblxcbk1lIDwtLi0+fHNhbWV8IENvdXNpblxcbmBgYFwiKVxyXG5cclxuICBuZXcgU2V0dGluZyhyZWxhdGlvbkRldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIk1ha2UgQ3VycmVudCBOb3RlIGFuIEltcGxpZWQgU2libGluZ1wiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIFwiVGVjaGluY2FsbHksIHRoZSBjdXJyZW50IG5vdGUgaXMgYWx3YXlzIGl0J3Mgb3duIGltcGxpZWQgc2libGluZy4gQnkgZGVmYXVsdCwgaXQgaXMgbm90IHNob3cgYXMgc3VjaC4gVG9nZ2xlIHRoaXMgb24gdG8gbWFrZSBpdCBzaG93LlwiXHJcbiAgICApXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgIHRvZ2dsZVxyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy50cmVhdEN1cnJOb2RlQXNJbXBsaWVkU2libGluZylcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICBzZXR0aW5ncy50cmVhdEN1cnJOb2RlQXNJbXBsaWVkU2libGluZyA9IHZhbHVlO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgYXdhaXQgcmVmcmVzaEluZGV4KHBsdWdpbik7XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcbn1cclxuIiwgImltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50LCBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IHJlZnJlc2hJbmRleCB9IGZyb20gXCIuLi9yZWZyZXNoSW5kZXhcIjtcclxuaW1wb3J0IHsgZ2V0RmllbGRzIH0gZnJvbSBcIi4uL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBmcmFnV2l0aEhUTUwsIHN1YkRldGFpbHMgfSBmcm9tIFwiLi9CcmVhZGNydW1ic1NldHRpbmdUYWJcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRUYWdOb3RlU2V0dGluZ3MoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHM6IEhUTUxEZXRhaWxzRWxlbWVudFxyXG4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgdGFnTm90ZURldGFpbHMgPSBzdWJEZXRhaWxzKFwiVGFnIE5vdGVzXCIsIGFsdGVybmF0aXZlSGllcmFyY2h5RGV0YWlscyk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKHRhZ05vdGVEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJEZWZhdWx0IFRhZyBOb3RlIEZpZWxkXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgIFwiQnkgZGVmYXVsdCwgdGFnIG5vdGVzIHVzZSB0aGUgZmlyc3QgZmllbGQgaW4geW91ciBoaWVyYXJjaGllcyAodXN1YWxseSBhbiA8Y29kZT5cdTIxOTE8L2NvZGU+IGZpZWxkKS4gQ2hvb3NlIGEgZGlmZmVyZW50IG9uZSB0byB1c2UgYnkgZGVmYXVsdCwgd2l0aG91dCBoYXZpbmcgdG8gc3BlY2lmeSA8Y29kZT5CQy10YWctbm90ZS1maWVsZDoge2ZpZWxkfTwvY29kZT4uPC9icj5JZiB5b3UgZG9uJ3Qgd2FudCB0byBjaG9vc2UgYSBkZWZhdWx0LCBzZWxlY3QgdGhlIGJsYW5rIG9wdGlvbiBhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0LlwiXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIC5hZGREcm9wZG93bigoZGQ6IERyb3Bkb3duQ29tcG9uZW50KSA9PiB7XHJcblxyXG4gICAgICBjb25zdCBvcHRpb25zID0ge307XHJcbiAgICAgIGdldEZpZWxkcyhzZXR0aW5ncy51c2VySGllcnMpLmZvckVhY2goXHJcbiAgICAgICAgKGZpZWxkKSA9PiAob3B0aW9uc1tmaWVsZF0gPSBmaWVsZClcclxuICAgICAgKTtcclxuICAgICAgZGQuYWRkT3B0aW9ucyhPYmplY3QuYXNzaWduKG9wdGlvbnMsIHsgXCJcIjogXCJcIiB9KSlcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3MudGFnTm90ZUZpZWxkKVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAoZmllbGQpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLnRhZ05vdGVGaWVsZCA9IGZpZWxkO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgYXdhaXQgcmVmcmVzaEluZGV4KHBsdWdpbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHsgTm90aWNlLCBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7XHJcbiAgQVJST1dfRElSRUNUSU9OUyxcclxuICBERUZBVUxUX1NFVFRJTkdTLFxyXG4gIERJUkVDVElPTlMsXHJcbiAgSUxMRUdBTF9GSUxFTkFNRV9DSEFSUyxcclxufSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IGZyYWdXaXRoSFRNTCwgc3ViRGV0YWlscyB9IGZyb20gXCIuL0JyZWFkY3J1bWJzU2V0dGluZ1RhYlwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFRocmVhZGluZ1NldHRpbmdzKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgY21kc0RldGFpbHM6IEhUTUxEZXRhaWxzRWxlbWVudFxyXG4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgdGhyZWFkaW5nRGV0YWlscyA9IHN1YkRldGFpbHMoXCJUaHJlYWRpbmdcIiwgY21kc0RldGFpbHMpO1xyXG5cclxuICB0aHJlYWRpbmdEZXRhaWxzLmNyZWF0ZURpdih7XHJcbiAgICB0ZXh0OiBcIlNldHRpbmdzIGZvciB0aGUgY29tbWFuZHMgYENyZWF0ZSBuZXcgPGZpZWxkPiBmcm9tIGN1cnJlbnQgbm90ZWBcIixcclxuICB9KTtcclxuXHJcbiAgbmV3IFNldHRpbmcodGhyZWFkaW5nRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiT3BlbiBuZXcgdGhyZWFkcyBpbiBuZXcgcGFuZSBvciBjdXJyZW50IHBhbmVcIilcclxuICAgIC5hZGRUb2dnbGUoKHRvZykgPT4ge1xyXG4gICAgICB0b2cuc2V0VmFsdWUoc2V0dGluZ3MudGhyZWFkSW50b05ld1BhbmUpO1xyXG4gICAgICB0b2cub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MudGhyZWFkSW50b05ld1BhbmUgPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgbmV3IFNldHRpbmcodGhyZWFkaW5nRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiVGhyZWFkIHVuZGVyIEN1cnNvclwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIklmIHRoZSBzZXR0aW5nIDxjb2RlPldyaXRlIEJyZWFkY3J1bWJzIElubGluZTwvY29kZT4gaXMgZW5hYmxlZCwgd2hlcmUgc2hvdWxkIHRoZSBuZXcgQnJlYWRjcnVtYiBiZSBhZGRlZCB0byB0aGUgY3VycmVudCBub3RlPyBcdTI3MDUgPSBVbmRlciB0aGUgY3Vyc29yLCBcdTI3NEMgPSBBdCB0aGUgdG9wIG9mIHRoZSBub3RlICh1bmRlciB0aGUgeWFtbCwgaWYgYXBwbGljYWJsZSlcIlxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2cpID0+IHtcclxuICAgICAgdG9nLnNldFZhbHVlKHNldHRpbmdzLnRocmVhZFVuZGVyQ3Vyc29yKTtcclxuICAgICAgdG9nLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLnRocmVhZFVuZGVyQ3Vyc29yID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICBuZXcgU2V0dGluZyh0aHJlYWRpbmdEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJOZXcgTm90ZSBOYW1lIFRlbXBsYXRlXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgIGBXaGVuIHRocmVhZGluZyBpbnRvIGEgbmV3IG5vdGUsIGNob29zZSB0aGUgdGVtcGxhdGUgZm9yIHRoZSBuZXcgbm90ZSBuYW1lLjwvYnI+XHJcbiAgICAgICAgT3B0aW9ucyBpbmNsdWRlOjwvYnI+XHJcbiAgICAgICAgPHVsPlxyXG4gICAgICAgICAgPGxpPjxjb2RlPnt7ZmllbGR9fTwvY29kZT46IHRoZSBmaWVsZCBiZWluZyB0aHJlYWQgaW50bzwvbGk+XHJcbiAgICAgICAgICA8bGk+PGNvZGU+e3tkaXJ9fTwvY29kZT46IHRoZSBkaXJlY3Rpb24gYmVpbmcgdGhyZWFkIGludG88L2xpPlxyXG4gICAgICAgICAgPGxpPjxjb2RlPnt7Y3VycmVudH19PC9jb2RlPjogdGhlIGN1cnJlbnQgbm90ZSBuYW1lPC9saT5cclxuICAgICAgICAgIDxsaT48Y29kZT57e2RhdGV9fTwvY29kZT46IHRoZSBjdXJyZW50IGRhdGUgKFNldCB0aGUgZm9ybWF0IGluIHRoZSBzZXR0aW5nIGJlbG93KTwvbGk+XHJcbiAgICAgICAgPC91bD5gXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIC5hZGRUZXh0KCh0ZXh0KSA9PiB7XHJcbiAgICAgIHRleHQuc2V0VmFsdWUoc2V0dGluZ3MudGhyZWFkaW5nVGVtcGxhdGUpO1xyXG4gICAgICB0ZXh0LmlucHV0RWwub25ibHVyID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGV4dC5nZXRWYWx1ZSgpO1xyXG4gICAgICAgIGlmIChJTExFR0FMX0ZJTEVOQU1FX0NIQVJTLnNvbWUoKGNoYXIpID0+IHZhbHVlLmluY2x1ZGVzKGNoYXIpKSkge1xyXG4gICAgICAgICAgbmV3IE5vdGljZShcclxuICAgICAgICAgICAgYEZpbGUgbmFtZSBjYW5ub3QgY29udGFpbiBhbnkgb2YgdGhlc2UgY2hhcmFjdGVyczogJHtJTExFR0FMX0ZJTEVOQU1FX0NIQVJTLmpvaW4oXHJcbiAgICAgICAgICAgICAgXCIgXCJcclxuICAgICAgICAgICAgKX1gXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGV4dC5zZXRWYWx1ZShzZXR0aW5ncy50aHJlYWRpbmdUZW1wbGF0ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNldHRpbmdzLnRocmVhZGluZ1RlbXBsYXRlID0gdmFsdWU7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgbmV3IFNldHRpbmcodGhyZWFkaW5nRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiRGF0ZSBGb3JtYXRcIilcclxuICAgIC5zZXREZXNjKFwiVGhlIGRhdGUgZm9ybWF0IHVzZWQgaW4gdGhlIFRocmVhZGluZyBUZW1wbGF0ZSAoc2V0dGluZyBhYm92ZSlcIilcclxuICAgIC5hZGRNb21lbnRGb3JtYXQoKGZvcm1hdCkgPT4ge1xyXG4gICAgICBmb3JtYXRcclxuICAgICAgICAuc2V0RGVmYXVsdEZvcm1hdChERUZBVUxUX1NFVFRJTkdTLmRhdGVGb3JtYXQpXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLmRhdGVGb3JtYXQpXHJcbiAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3MuZGF0ZUZvcm1hdCA9IHZhbHVlO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gIGNvbnN0IHRocmVhZERpclRlbXBsYXRlc1NldHRpbmcgPSBuZXcgU2V0dGluZyh0aHJlYWRpbmdEZXRhaWxzKVxyXG4gICAgLnNldENsYXNzKFwidGhyZWFkLWRpci10ZW1wbGF0ZXNcIilcclxuICAgIC5zZXROYW1lKFwiVGVtcGxhdGVyIFRlbXBsYXRlIHBlciBEaXJlY3Rpb25cIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgYEZvciBlYWNoIGRpcmVjdGlvbiB0byBiZSB0aHJlYWQgaW50bywgY2hvb3NlIGEgVGVtcGxhdGVyIHRlbXBsYXRlIHRvIGluc2VydCBpbnRvIHRoZSBuZXcgbm90ZS48L2JyPlxyXG4gICAgICAgICAgR2l2ZSB0aGUgYmFzZW5hbWUsIG9yIHRoZSBmdWxsIGZpbGUgcGF0aCAoZS5nLiA8Y29kZT5UZW1wbGF0ZXMvUGFyZW50IFRlbXBsYXRlPC9jb2RlPikuYFxyXG4gICAgICApXHJcbiAgICApO1xyXG5cclxuICBESVJFQ1RJT05TLmZvckVhY2goKGRpcikgPT5cclxuICAgIHRocmVhZERpclRlbXBsYXRlc1NldHRpbmcuYWRkVGV4dCgodGV4dCkgPT4ge1xyXG4gICAgICB0ZXh0XHJcbiAgICAgICAgLnNldFBsYWNlaG9sZGVyKEFSUk9XX0RJUkVDVElPTlNbZGlyXSlcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3MudGhyZWFkaW5nRGlyVGVtcGxhdGVzW2Rpcl0pO1xyXG4gICAgICB0ZXh0LmlucHV0RWwub25ibHVyID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLnRocmVhZGluZ0RpclRlbXBsYXRlc1tkaXJdID0gdGV4dC5nZXRWYWx1ZSgpO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgfTtcclxuICAgIH0pXHJcbiAgKTtcclxuXHJcbn1cclxuIiwgImltcG9ydCB0eXBlIHsgSnVnZ2xMYXlvdXRzIH0gZnJvbSBcImp1Z2dsLWFwaVwiO1xyXG5pbXBvcnQgeyBEcm9wZG93bkNvbXBvbmVudCwgTm90aWNlLCBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IGlzSW5WYXVsdCB9IGZyb20gXCJvYnNpZGlhbi1jb21tdW5pdHktbGliL2Rpc3QvdXRpbHNcIjtcclxuaW1wb3J0IHsgVFJBSUxfTEVOR1RIUyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IENoZWNrYm94ZXMgZnJvbSBcIi4uL0NvbXBvbmVudHMvQ2hlY2tib3hlcy5zdmVsdGVcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgc3BsaXRBbmRUcmltIH0gZnJvbSBcIi4uL1V0aWxzL2dlbmVyYWxVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXRGaWVsZHMgfSBmcm9tIFwiLi4vVXRpbHMvSGllclV0aWxzXCI7XHJcbmltcG9ydCB7IGRyYXdUcmFpbCB9IGZyb20gXCIuLi9WaWV3cy9UcmFpbFZpZXdcIjtcclxuaW1wb3J0IHsgZnJhZ1dpdGhIVE1MLCBzdWJEZXRhaWxzIH0gZnJvbSBcIi4vQnJlYWRjcnVtYnNTZXR0aW5nVGFiXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkVHJhaWxWaWV3U2V0dGluZ3MoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICB2aWV3RGV0YWlsczogSFRNTERldGFpbHNFbGVtZW50XHJcbikge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCB0cmFpbERldGFpbHMgPSBzdWJEZXRhaWxzKFwiVHJhaWwvR3JpZC9KdWdnbFwiLCB2aWV3RGV0YWlscyk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKHRyYWlsRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiU2hvdyBCcmVhZGNydW1icyBpbiBFZGl0L0xpdmUtUHJldmlldyBNb2RlXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgXCJJdCBhbHdheXMgc2hvd3MgaW4gcHJldmlldyBtb2RlLCBidXQgc2hvdWxkIGl0IGFsc28gc2hvdyBpbiB0aGUgb3RoZXIgdHdvP1wiXHJcbiAgICApXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgIHRvZ2dsZS5zZXRWYWx1ZShzZXR0aW5ncy5zaG93QkNzSW5FZGl0TFBNb2RlKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5zaG93QkNzSW5FZGl0TFBNb2RlID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIGF3YWl0IGRyYXdUcmFpbChwbHVnaW4pO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgdHJhaWxEZXRhaWxzLmNyZWF0ZUVsKCdocicpXHJcbiAgdHJhaWxEZXRhaWxzLmNyZWF0ZURpdih7XHJcbiAgICBjbHM6IFwic2V0dGluZy1pdGVtLW5hbWVcIixcclxuICAgIHRleHQ6IFwiTGltaXQgVHJhaWwgVmlldyB0byBvbmx5IHNob3cgY2VydGFpbiBmaWVsZHNcIixcclxuICB9KTtcclxuXHJcbiAgbmV3IENoZWNrYm94ZXMoe1xyXG4gICAgdGFyZ2V0OiB0cmFpbERldGFpbHMsXHJcbiAgICBwcm9wczoge1xyXG4gICAgICBwbHVnaW4sXHJcbiAgICAgIHNldHRpbmdOYW1lOiBcImxpbWl0VHJhaWxDaGVja2JveGVzXCIsXHJcbiAgICAgIG9wdGlvbnM6IGdldEZpZWxkcyhzZXR0aW5ncy51c2VySGllcnMsIFwidXBcIiksXHJcbiAgICB9LFxyXG4gIH0pO1xyXG5cclxuICBjb25zdCB2aWV3c1RvU2hvdyA9IG5ldyBTZXR0aW5nKHRyYWlsRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiVmlld3MgdG8gc2hvd1wiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIFwiQ2hvb3NlIHdoaWNoIG9mIHRoZSB2aWV3cyB0byBzaG93IGF0IHRoZSB0b3Agb2YgdGhlIG5vdGUuIEp1Z2dsIFZpZXcgcmVxdWlyZXMgdGhlIEp1Z2dsIHBsdWdpbi5cIlxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB7XHJcbiAgICAgIHRvZ2dsZVxyXG4gICAgICAgIC5zZXRUb29sdGlwKFwiVHJhaWwgdmlld1wiKVxyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5zaG93VHJhaWwpXHJcbiAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3Muc2hvd1RyYWlsID0gdmFsdWU7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICBhd2FpdCBkcmF3VHJhaWwocGx1Z2luKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHtcclxuICAgICAgdG9nZ2xlXHJcbiAgICAgICAgLnNldFRvb2x0aXAoXCJHcmlkIHZpZXdcIilcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3Muc2hvd0dyaWQpXHJcbiAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3Muc2hvd0dyaWQgPSB2YWx1ZTtcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgIGF3YWl0IGRyYXdUcmFpbChwbHVnaW4pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSlcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xyXG4gICAgICB0b2dnbGVcclxuICAgICAgICAuc2V0VG9vbHRpcChcIk5leHQvUHJldmlvdXMgdmlld1wiKVxyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5zaG93UHJldk5leHQpXHJcbiAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3Muc2hvd1ByZXZOZXh0ID0gdmFsdWU7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICBhd2FpdCBkcmF3VHJhaWwocGx1Z2luKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pXHJcblxyXG4gIGlmIChhcHAucGx1Z2lucy5wbHVnaW5zLmp1Z2dsICE9PSB1bmRlZmluZWQpIHtcclxuICAgIHZpZXdzVG9TaG93LmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB7XHJcbiAgICAgIHRvZ2dsZVxyXG4gICAgICAgIC5zZXRUb29sdGlwKFwiSnVnZ2wgdmlld1wiKVxyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5zaG93SnVnZ2wpXHJcbiAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3Muc2hvd0p1Z2dsID0gdmFsdWU7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICBhd2FpdCBkcmF3VHJhaWwocGx1Z2luKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZXcgU2V0dGluZyh0cmFpbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZSgnR3JpZCB2aWV3IGRlcHRoJylcclxuICAgIC5zZXREZXNjKCdMaW1pdCB0aGUgaW5pdGlhbCBkZXB0aCBvZiB0aGUgZ3JpZCB2aWV3JylcclxuICAgIC5hZGRTbGlkZXIoKHNsaWRlcikgPT4ge1xyXG4gICAgICBzbGlkZXJcclxuICAgICAgICAuc2V0TGltaXRzKDAsIDI1LCAxKVxyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5ncmlkRGVmYXVsdERlcHRoKVxyXG4gICAgICAgIC5zZXREeW5hbWljVG9vbHRpcCgpO1xyXG5cclxuICAgICAgc2xpZGVyLnNsaWRlckVsLm9uYmx1ciA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5ncmlkRGVmYXVsdERlcHRoID0gc2xpZGVyLmdldFZhbHVlKCk7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIGF3YWl0IGRyYXdUcmFpbChwbHVnaW4pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuXHJcbiAgbmV3IFNldHRpbmcodHJhaWxEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJJbmRleCBOb3RlKHMpXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgIFwiVGhlIG5vdGUgdGhhdCBhbGwgb2YgeW91ciBvdGhlciBub3RlcyBsZWFkIGJhY2sgdG8uIFRoZSBwYXJlbnQgb2YgYWxsIHlvdXIgcGFyZW50IG5vdGVzLiBKdXN0IGVudGVyIHRoZSBiYXNlbmFtZS48L2JyPllvdSBjYW4gYWxzbyBoYXZlIG11bHRpcGxlIGluZGV4IG5vdGVzIChjb21tYS1zZXBhcmF0ZWQgbGlzdCkuPC9icj5MZWF2aW5nIHRoaXMgZmllbGQgZW1wdHkgd2lsbCBtYWtlIHRoZSB0cmFpbCBzaG93IGFsbCBwYXRocyBnb2luZyBhcyBmYXIgdXAgdGhlIHBhcmVudC10cmVlIGFzIHBvc3NpYmxlLlwiXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIC5hZGRUZXh0KCh0ZXh0KSA9PiB7XHJcbiAgICAgIHRleHRcclxuICAgICAgICAuc2V0UGxhY2Vob2xkZXIoXCJJbmRleCBOb3RlXCIpXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLmluZGV4Tm90ZXMuam9pbihcIiwgXCIpKTtcclxuXHJcbiAgICAgIHRleHQuaW5wdXRFbC5vbmJsdXIgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3BsaXRzID0gc3BsaXRBbmRUcmltKHRleHQuZ2V0VmFsdWUoKSk7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgc3BsaXRzWzBdID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgIHNwbGl0cy5ldmVyeSgoaW5kZXgpID0+IGlzSW5WYXVsdChpbmRleCkpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBzZXR0aW5ncy5pbmRleE5vdGVzID0gc3BsaXRzO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIH0gZWxzZSBuZXcgTm90aWNlKFwiQXRsZWFzdCBvbmUgb2YgdGhlIG5vdGVzIGlzIG5vdCBpbiB5b3VyIHZhdWx0XCIpO1xyXG5cclxuICAgICAgfTtcclxuICAgIH0pO1xyXG5cclxuICBuZXcgU2V0dGluZyh0cmFpbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIlNob3dzIGFsbCBwYXRocyBpZiBub25lIHRvIGluZGV4IG5vdGUgYXJlIGZvdW5kXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgXCJJZiB5b3UgaGF2ZSBhbiBpbmRleCBub3RlIGNob3NlbiwgYnV0IHRoZSB0cmFpbCB2aWV3IGhhcyBubyBwYXRocyBnb2luZyB1cCB0byB0aG9zZSBpbmRleCBub3Rlcywgc2hvdWxkIGl0IHNob3cgYWxsIHBhdGhzIGluc3RlYWQ/XCJcclxuICAgIClcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cclxuICAgICAgdG9nZ2xlXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLnNob3dBbGxQYXRoc0lmTm9uZVRvSW5kZXhOb3RlKVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLnNob3dBbGxQYXRoc0lmTm9uZVRvSW5kZXhOb3RlID0gdmFsdWU7XHJcblxyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgYXdhaXQgZHJhd1RyYWlsKHBsdWdpbik7XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKHRyYWlsRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiRGVmYXVsdDogQWxsLCBMb25nZXN0LCBvciBTaG9ydGVzdFwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIFwiSWYgbXVsdGlwbGUgcGF0aHMgYXJlIGZvdW5kIGdvaW5nIHVwIHRoZSBwYXJlbnQgdHJlZSwgd2hpY2ggb2YgdGhlbSBzaG91bGQgc2hvdz9cIlxyXG4gICAgKVxyXG4gICAgLmFkZERyb3Bkb3duKGRkID0+IHtcclxuICAgICAgY29uc3Qgb3B0aW9ucyA9IHt9XHJcbiAgICAgIFRSQUlMX0xFTkdUSFMuZm9yRWFjaChsZW5ndGggPT4ge1xyXG4gICAgICAgIG9wdGlvbnNbbGVuZ3RoXSA9IGxlbmd0aDtcclxuICAgICAgfSlcclxuXHJcbiAgICAgIGRkLmFkZE9wdGlvbnMob3B0aW9ucyk7XHJcbiAgICAgIGRkLnNldFZhbHVlKHNldHRpbmdzLnNob3dBbGwpO1xyXG4gICAgICBkZC5vbkNoYW5nZShhc3luYyAodmFsKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3Muc2hvd0FsbCA9IHZhbDtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgYXdhaXQgZHJhd1RyYWlsKHBsdWdpbik7XHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG5cclxuICBuZXcgU2V0dGluZyh0cmFpbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIlNlcGVyYXRvclwiKVxyXG4gICAgLnNldERlc2MoZnJhZ1dpdGhIVE1MKFxyXG4gICAgICBcIlRoZSBjaGFyYWN0ZXIgdG8gc2hvdyBiZXR3ZWVuIGNydW1icyBpbiB0aGUgYnJlYWRjcnVtYiB0cmFpbC4gVGhlIGRlZmF1bHQgaXMgPGNvZGU+XHUyMTkyPC9jb2RlPlwiKVxyXG4gICAgKVxyXG4gICAgLmFkZFRleHQoKHRleHQpID0+XHJcbiAgICAgIHRleHRcclxuICAgICAgICAuc2V0UGxhY2Vob2xkZXIoXCJcdTIxOTJcIilcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3MudHJhaWxTZXBlcmF0b3IpXHJcbiAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3MudHJhaWxTZXBlcmF0b3IgPSB2YWx1ZTtcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgIGF3YWl0IGRyYXdUcmFpbChwbHVnaW4pO1xyXG4gICAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICBuZXcgU2V0dGluZyh0cmFpbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIk5vIHBhdGggZm91bmQgbWVzc2FnZVwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIFwiVGhlIHRleHQgdG8gZGlzcGxheSB3aGVuIG5vIHBhdGggdG8gdGhlIGluZGV4IG5vdGUgaXMgZm91bmQsIG9yIHRoZSBjdXJyZW50IG5vdGUgaGFzIG5vIHBhcmVudC5cIlxyXG4gICAgKVxyXG4gICAgLmFkZFRleHQoKHRleHQpID0+XHJcbiAgICAgIHRleHRcclxuICAgICAgICAuc2V0UGxhY2Vob2xkZXIoXCJObyBwYXRoIHRvIGluZGV4IG5vdGUgd2FzIGZvdW5kXCIpXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLm5vUGF0aE1lc3NhZ2UpXHJcbiAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3Mubm9QYXRoTWVzc2FnZSA9IHZhbHVlO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgYXdhaXQgZHJhd1RyYWlsKHBsdWdpbik7XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKHRyYWlsRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiUmVzcGVjdCBSZWFkYWJsZSBMaW5lIExlbmd0aFwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIFwiU2hvdWxkIHRoZSBicmVhZGNydW1icyB0cmFpbCBhZGp1c3QgaXRzIHdpZHRoIHRvIHRoZSByZWFkYWJsZSBsaW5lIGxlbmd0aCwgb3IgdXNlIGFzIG11Y2ggc3BhY2UgYXMgcG9zc2libGU/IFx1MjcwNSA9IHVzZSByZWFkYWJsZSBsaW5lIGxlbmd0aC5cIlxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGVcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3MucmVzcGVjdFJlYWRhYmxlTGluZUxlbmd0aClcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICBzZXR0aW5ncy5yZXNwZWN0UmVhZGFibGVMaW5lTGVuZ3RoID0gdmFsdWU7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICBhd2FpdCBkcmF3VHJhaWwocGx1Z2luKTtcclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuXHJcblxyXG4gIG5ldyBTZXR0aW5nKHRyYWlsRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiU2hvdyB1cCBmaWVsZHMgaW4gSnVnZ2xcIilcclxuICAgIC5zZXREZXNjKFwiSnVnZ2wgd2lsbCBzaG93IGJvdGggdXAgYW5kIGRvd24gZmllbGRzXCIpXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHtcclxuICAgICAgdG9nZ2xlXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLnNob3dVcEluSnVnZ2wpXHJcbiAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3Muc2hvd1VwSW5KdWdnbCA9IHZhbHVlO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKHRyYWlsRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiSnVnZ2wgdmlldyBsYXlvdXRcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgXCJUaGUgbGF5b3V0IHR5cGUgdG8gdXNlIGZvciB0aGUgSnVnZ2wgdmlldy48YnI+VGhlIGhpZXJhcmNoeSBsYXlvdXQgaXMgbW9zdCBuYXR1cmFsIGZvciBCcmVhZGNydW1icywgYnV0IGZvciBsYXJnZSBncmFwaHMgRDMgRm9yY2UgaXMgcmVjb21tZW5kZWQuXCJcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLmFkZERyb3Bkb3duKChkYzogRHJvcGRvd25Db21wb25lbnQpID0+IHtcclxuICAgICAgZGMuYWRkT3B0aW9uKFwiaGllcmFyY2h5XCIsIFwiSGllcmFyY2h5XCIpO1xyXG4gICAgICBkYy5hZGRPcHRpb24oXCJkMy1mb3JjZVwiLCBcIkQzIEZvcmNlXCIpO1xyXG4gICAgICBkYy5hZGRPcHRpb24oXCJjb2xhXCIsIFwiQ29sYSBGb3JjZVwiKTtcclxuICAgICAgZGMuYWRkT3B0aW9uKFwiZ3JpZFwiLCBcIkdyaWRcIik7XHJcbiAgICAgIGRjLmFkZE9wdGlvbihcImNvbmNlbnRyaWNcIiwgXCJDb25jZW50cmljXCIpO1xyXG5cclxuICAgICAgZGMuc2V0VmFsdWUoc2V0dGluZ3MuanVnZ2xMYXlvdXQpO1xyXG4gICAgICBkYy5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5qdWdnbExheW91dCA9IHZhbHVlIGFzIEp1Z2dsTGF5b3V0cztcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgYXdhaXQgZHJhd1RyYWlsKHBsdWdpbik7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuIiwgImltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50LCBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IEFMTFVOTElOS0VELCBSRUFsQ0xPU0VELCBSRUxBVElPTlMsIFZJU1RZUEVTIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSB7IFJlbGF0aW9ucywgVmlzVHlwZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IHN1YkRldGFpbHMgfSBmcm9tIFwiLi9CcmVhZGNydW1ic1NldHRpbmdUYWJcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRWaXNNb2RhbFNldHRpbmdzKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgdmlld0RldGFpbHM6IEhUTUxEZXRhaWxzRWxlbWVudFxyXG4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgdmlzTW9kYWxEZXRhaWxzID0gc3ViRGV0YWlscyhcIlZpc3VhbGlzYXRpb24gTW9kYWxcIiwgdmlld0RldGFpbHMpO1xyXG5cclxuICBuZXcgU2V0dGluZyh2aXNNb2RhbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkRlZmF1bHQgVmlzdWFsaXNhdGlvbiBUeXBlXCIpXHJcbiAgICAuc2V0RGVzYyhcIldoaWNoIHZpc3VhbGlzYXRpb24gdG8gc2hvdyBieSBkZWZhdWx0XCIpXHJcbiAgICAuYWRkRHJvcGRvd24oKGNiOiBEcm9wZG93bkNvbXBvbmVudCkgPT4ge1xyXG4gICAgICBWSVNUWVBFUy5mb3JFYWNoKChvcHRpb246IFZpc1R5cGUpID0+IHtcclxuICAgICAgICBjYi5hZGRPcHRpb24ob3B0aW9uLCBvcHRpb24pO1xyXG4gICAgICB9KTtcclxuICAgICAgY2Iuc2V0VmFsdWUoc2V0dGluZ3MudmlzR3JhcGgpO1xyXG5cclxuICAgICAgY2Iub25DaGFuZ2UoYXN5bmMgKHZhbHVlOiBWaXNUeXBlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MudmlzR3JhcGggPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgbmV3IFNldHRpbmcodmlzTW9kYWxEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJEZWZhdWx0IFJlbGF0aW9uXCIpXHJcbiAgICAuc2V0RGVzYyhcIldoaWNoIHJlbGF0aW9uIHR5cGUgdG8gc2hvdyBmaXJzdCB3aGVuIG9wZW5pbmcgdGhlIG1vZGFsXCIpXHJcbiAgICAuYWRkRHJvcGRvd24oKGRkKSA9PiB7XHJcbiAgICAgIFJFTEFUSU9OUy5mb3JFYWNoKChvcHRpb246IFJlbGF0aW9ucykgPT4ge1xyXG4gICAgICAgIGRkLmFkZE9wdGlvbihvcHRpb24sIG9wdGlvbik7XHJcbiAgICAgIH0pO1xyXG4gICAgICBkZC5zZXRWYWx1ZShzZXR0aW5ncy52aXNSZWxhdGlvbik7XHJcblxyXG4gICAgICBkZC5vbkNoYW5nZShhc3luYyAodmFsdWU6IFJlbGF0aW9ucykgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLnZpc1JlbGF0aW9uID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIG5ldyBTZXR0aW5nKHZpc01vZGFsRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiRGVmYXVsdCBSZWFsL0Nsb3NlZFwiKVxyXG4gICAgLnNldERlc2MoXCJTaG93IHRoZSByZWFsIG9yIGNsb3NlZCBncmFwaCBieSBkZWZhdWx0XCIpXHJcbiAgICAuYWRkRHJvcGRvd24oKGNiOiBEcm9wZG93bkNvbXBvbmVudCkgPT4ge1xyXG4gICAgICBSRUFsQ0xPU0VELmZvckVhY2goKG9wdGlvbjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY2IuYWRkT3B0aW9uKG9wdGlvbiwgb3B0aW9uKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNiLnNldFZhbHVlKHNldHRpbmdzLnZpc0Nsb3NlZCk7XHJcblxyXG4gICAgICBjYi5vbkNoYW5nZShhc3luYyAodmFsdWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLnZpc0Nsb3NlZCA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICBuZXcgU2V0dGluZyh2aXNNb2RhbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkRlZmF1bHQgVW5saW5rZWRcIilcclxuICAgIC5zZXREZXNjKFwiU2hvdyBhbGwgbm9kZXMgb3Igb25seSB0aG9zZSB3aGljaCBoYXZlIGxpbmtzIGJ5IGRlZmF1bHRcIilcclxuICAgIC5hZGREcm9wZG93bigoY2I6IERyb3Bkb3duQ29tcG9uZW50KSA9PiB7XHJcbiAgICAgIEFMTFVOTElOS0VELmZvckVhY2goKG9wdGlvbjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY2IuYWRkT3B0aW9uKG9wdGlvbiwgb3B0aW9uKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNiLnNldFZhbHVlKHNldHRpbmdzLnZpc0FsbCk7XHJcblxyXG4gICAgICBjYi5vbkNoYW5nZShhc3luYyAodmFsdWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLnZpc0FsbCA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHsgU2V0dGluZyB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgQ2hlY2tib3hlcyBmcm9tIFwiLi4vQ29tcG9uZW50cy9DaGVja2JveGVzLnN2ZWx0ZVwiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQgeyBnZXRGaWVsZHMgfSBmcm9tIFwiLi4vVXRpbHMvSGllclV0aWxzXCI7XHJcbmltcG9ydCB7IGZyYWdXaXRoSFRNTCwgc3ViRGV0YWlscyB9IGZyb20gXCIuL0JyZWFkY3J1bWJzU2V0dGluZ1RhYlwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFdyaXRlQkNzU2V0dGluZ3MoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICBjbWRzRGV0YWlsczogSFRNTERldGFpbHNFbGVtZW50XHJcbikge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCB3cml0ZUJDc1RvRmlsZURldGFpbHMgPSBzdWJEZXRhaWxzKFxyXG4gICAgXCJXcml0ZSBCcmVhZGNydW1icyB0byBGaWxlXCIsXHJcbiAgICBjbWRzRGV0YWlsc1xyXG4gICk7XHJcblxyXG4gIHdyaXRlQkNzVG9GaWxlRGV0YWlscy5jcmVhdGVEaXYoe1xyXG4gICAgY2xzOiBcInNldHRpbmctaXRlbS1uYW1lXCIsXHJcbiAgICB0ZXh0OiBcIkxpbWl0IHRvIG9ubHkgd3JpdGUgY2VydGFpbiBmaWVsZHNcIixcclxuICB9KTtcclxuXHJcbiAgbmV3IENoZWNrYm94ZXMoe1xyXG4gICAgdGFyZ2V0OiB3cml0ZUJDc1RvRmlsZURldGFpbHMsXHJcbiAgICBwcm9wczoge1xyXG4gICAgICBwbHVnaW4sXHJcbiAgICAgIG9wdGlvbnM6IGdldEZpZWxkcyhzZXR0aW5ncy51c2VySGllcnMpLFxyXG4gICAgICBzZXR0aW5nTmFtZTogXCJsaW1pdFdyaXRlQkNDaGVja2JveGVzXCIsXHJcbiAgICB9LFxyXG4gIH0pO1xyXG5cclxuICBuZXcgU2V0dGluZyh3cml0ZUJDc1RvRmlsZURldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIldyaXRlIElubGluZVwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIFwiV2hlbiB3cml0aW5nIEJDcyB0byBmaWxlLCBzaG91bGQgdGhleSBiZSB3cml0dGVuIGlubGluZSAodXNpbmcgRGF0YXZpZXcgc3ludGF4KSwgb3IgaW50byB0aGUgWUFNTCBvZiB0aGUgbm90ZT9cIlxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGUuc2V0VmFsdWUoc2V0dGluZ3Mud3JpdGVCQ3NJbmxpbmUpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLndyaXRlQkNzSW5saW5lID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgbmV3IFNldHRpbmcod3JpdGVCQ3NUb0ZpbGVEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIlNob3cgdGhlIDxjb2RlPldyaXRlIEJyZWFkY3J1bWJzIHRvIEFMTCBGaWxlczwvY29kZT4gY29tbWFuZFwiXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBcIlRoaXMgY29tbWFuZCBhdHRlbXB0cyB0byB1cGRhdGUgQUxMIGZpbGVzIHdpdGggaW1wbGllZCBicmVhZGNydW1icyBwb2ludGluZyB0byB0aGVtLiBTbywgaXQgaXMgbm90IHNob3duIGJ5IGRlZmF1bHQgKGV2ZW4gdGhvdWdoIGl0IGhhcyAzIGNvbmZpcm1hdGlvbiBib3hlcyB0byBlbnN1cmUgeW91IHdhbnQgdG8gcnVuIGl0XCJcclxuICAgIClcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cclxuICAgICAgdG9nZ2xlLnNldFZhbHVlKHNldHRpbmdzLnNob3dXcml0ZUFsbEJDc0NtZCkub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3Muc2hvd1dyaXRlQWxsQkNzQ21kID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxufVxyXG4iLCAiaW1wb3J0IHsgSXRlbVZpZXcsIFdvcmtzcGFjZUxlYWYgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IER1Y2tzIGZyb20gXCIuLi9Db21wb25lbnRzL0R1Y2tzLnN2ZWx0ZVwiO1xyXG5pbXBvcnQgeyBEVUNLX0lDT04sIERVQ0tfVklFVyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIER1Y2tzVmlldyBleHRlbmRzIEl0ZW1WaWV3IHtcclxuICBwcml2YXRlIHBsdWdpbjogQkNQbHVnaW47XHJcbiAgcHJpdmF0ZSB2aWV3OiBEdWNrcztcclxuXHJcbiAgY29uc3RydWN0b3IobGVhZjogV29ya3NwYWNlTGVhZiwgcGx1Z2luOiBCQ1BsdWdpbikge1xyXG4gICAgc3VwZXIobGVhZik7XHJcbiAgICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcclxuICB9XHJcblxyXG4gIGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHN1cGVyLm9ubG9hZCgpO1xyXG4gICAgYXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICBhcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkoYXN5bmMgKCkgPT4ge1xyXG4gICAgICBhd2FpdCB0aGlzLmRyYXcoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Vmlld1R5cGUoKSB7XHJcbiAgICByZXR1cm4gRFVDS19WSUVXO1xyXG4gIH1cclxuICBnZXREaXNwbGF5VGV4dCgpIHtcclxuICAgIHJldHVybiBcIkJyZWFkY3J1bWJzIER1Y2tzXCI7XHJcbiAgfVxyXG5cclxuICAvLyBUT0RPIER1Y2sgaWNvblxyXG4gIGljb24gPSBEVUNLX0lDT047XHJcblxyXG4gIGFzeW5jIG9uT3BlbigpOiBQcm9taXNlPHZvaWQ+IHsgfVxyXG5cclxuICBvbkNsb3NlKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy52aWV3Py4kZGVzdHJveSgpO1xyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZHJhdygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuY29udGVudEVsLmVtcHR5KCk7XHJcblxyXG4gICAgdGhpcy52aWV3ID0gbmV3IER1Y2tzKHtcclxuICAgICAgdGFyZ2V0OiB0aGlzLmNvbnRlbnRFbCxcclxuICAgICAgcHJvcHM6IHsgcGx1Z2luOiB0aGlzLnBsdWdpbiwgZHVja3NWaWV3OiB0aGlzIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwgIjxzY3JpcHQ+XG4gICAgICAgIGltcG9ydCBJY29uQmFzZSBmcm9tICcuLi9jb21wb25lbnRzL0ljb25CYXNlLnN2ZWx0ZSc7XG4gICAgICAgIDwvc2NyaXB0PlxuICAgICAgICA8SWNvbkJhc2Ugdmlld0JveD1cIjAgMCAxOTIgNTEyXCIgey4uLiQkcHJvcHN9PlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMjAgNDI0LjIyOWgyMFYyNzkuNzcxSDIwYy0xMS4wNDYgMC0yMC04Ljk1NC0yMC0yMFYyMTJjMC0xMS4wNDYgOC45NTQtMjAgMjAtMjBoMTEyYzExLjA0NiAwIDIwIDguOTU0IDIwIDIwdjIxMi4yMjloMjBjMTEuMDQ2IDAgMjAgOC45NTQgMjAgMjBWNDkyYzAgMTEuMDQ2LTguOTU0IDIwLTIwIDIwSDIwYy0xMS4wNDYgMC0yMC04Ljk1NC0yMC0yMHYtNDcuNzcxYzAtMTEuMDQ2IDguOTU0LTIwIDIwLTIwek05NiAwQzU2LjIzNSAwIDI0IDMyLjIzNSAyNCA3MnMzMi4yMzUgNzIgNzIgNzIgNzItMzIuMjM1IDcyLTcyUzEzNS43NjQgMCA5NiAwelwiIC8+XG4gICAgICAgIDwvSWNvbkJhc2U+XG4gICAgICAiLCBudWxsLCAiPHNjcmlwdCBsYW5nPVwidHNcIj5cclxuICBpbXBvcnQgeyBob3ZlclByZXZpZXcsIG9wZW5PclN3aXRjaCB9IGZyb20gXCJvYnNpZGlhbi1jb21tdW5pdHktbGliXCI7XHJcbiAgaW1wb3J0IEZhSW5mbyBmcm9tIFwic3ZlbHRlLWljb25zL2ZhL0ZhSW5mby5zdmVsdGVcIjtcclxuICBpbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG4gIGltcG9ydCB0eXBlIER1Y2tzVmlldyBmcm9tIFwiLi4vVmlld3MvRHVja3NWaWV3XCI7XHJcblxyXG4gIGV4cG9ydCBsZXQgcGx1Z2luOiBCQ1BsdWdpbjtcclxuICBleHBvcnQgbGV0IGR1Y2tzVmlldzogRHVja3NWaWV3O1xyXG5cclxuICBjb25zdCB7IG1haW5HIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgZmlsZXMgPSBhcHAudmF1bHQuZ2V0TWFya2Rvd25GaWxlcygpO1xyXG5cclxuICBsZXQgcXVlcnk6IHN0cmluZyA9IFwiXCI7XHJcbiAgbGV0IHJlZ2V4ID0gbmV3IFJlZ0V4cChxdWVyeSwgXCJnXCIpO1xyXG4gIGxldCBpbmNsdWRlID0gdHJ1ZTtcclxuXHJcbiAgJDoge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgbmV3UmVnID0gbmV3IFJlZ0V4cChxdWVyeSwgXCJnXCIpO1xyXG4gICAgICByZWdleCA9IG5ld1JlZztcclxuICAgIH0gY2F0Y2ggKGUpIHt9XHJcbiAgfVxyXG5cclxuICBjb25zdCBnZXREdWNrcyA9IChyZWdleDogUmVnRXhwKSA9PiB7XHJcbiAgICBpZiAoIXJlZ2V4KSByZXR1cm47XHJcbiAgICByZXR1cm4gZmlsZXNcclxuICAgICAgLm1hcCgoZmlsZSkgPT4gZmlsZS5iYXNlbmFtZSlcclxuICAgICAgLmZpbHRlcihcclxuICAgICAgICAobmFtZSkgPT4gIW1haW5HLm5laWdoYm9ycyhuYW1lKS5sZW5ndGggJiYgaW5jbHVkZSA9PT0gcmVnZXgudGVzdChuYW1lKVxyXG4gICAgICApO1xyXG4gIH07XHJcblxyXG4gICQ6IGR1Y2tzID0gZ2V0RHVja3MocmVnZXgpO1xyXG48L3NjcmlwdD5cclxuXHJcbjxkaXYgY2xhc3M9XCJCQy1EdWNrcyBtYXJrZG93bi1wcmV2aWV3LXZpZXdcIj5cclxuICA8aDY+Tm90ZXMgd2l0aG91dCBCcmVhZGNydW1iczwvaDY+XHJcbiAgPHNwYW5cclxuICAgIGNsYXNzPVwiaWNvblwiXHJcbiAgICBhcmlhLWxhYmVsPXtgQSBSZWdleCB1c2VkIHRvIGZpbHRlciB0aGUgcmVzdWx0cy5cXG5JZiAnSW5jbHVkZScgaXMgY2hlY2tlZCwgaXQgd2lsbCBvbmx5IHNob3cgbm90ZXMgdGhhdCBtYXRjaCB0aGUgcmVnZXguXFxuSWYgJ0luY2x1ZGUnIGlzIG5vdCBjaGVja2VkLCB0aGlzIHJlZ2V4IHdpbGwgZmlsdGVyIG91dCBub3RlcyB0aGF0IG1hdGNoIGl0LmB9XHJcbiAgPlxyXG4gICAgPEZhSW5mbyAvPlxyXG4gIDwvc3Bhbj5cclxuICA8bGFiZWw+XHJcbiAgICBGaWx0ZXI6XHJcbiAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlJlZ2V4XCIgYmluZDp2YWx1ZT17cXVlcnl9IC8+XHJcbiAgPC9sYWJlbD5cclxuICA8aW5wdXQgYXJpYS1sYWJlbD1cIkluY2x1ZGVcIiB0eXBlPVwiY2hlY2tib3hcIiBiaW5kOmNoZWNrZWQ9e2luY2x1ZGV9IC8+XHJcblxyXG4gIHsjZWFjaCBkdWNrcyBhcyBkdWNrfVxyXG4gICAgPGRpdlxyXG4gICAgICBvbjpjbGljaz17YXN5bmMgKGUpID0+IGF3YWl0IG9wZW5PclN3aXRjaChkdWNrLCBlKX1cclxuICAgICAgb246bW91c2VvdmVyPXsoZSkgPT4gaG92ZXJQcmV2aWV3KGUsIGR1Y2tzVmlldywgZHVjayl9XHJcbiAgICA+XHJcbiAgICAgIDwhLS0gc3ZlbHRlLWlnbm9yZSBhMTF5LW1pc3NpbmctYXR0cmlidXRlIC0tPlxyXG4gICAgICA8YSBjbGFzcz1cImludGVybmFsLWxpbmtcIj57ZHVja308L2E+XHJcbiAgICA8L2Rpdj5cclxuICB7L2VhY2h9XHJcbjwvZGl2PlxyXG5cclxuPHN0eWxlPlxyXG4gIC5pY29uIHtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LW5vcm1hbCk7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLXRvcDogNXB4ICFpbXBvcnRhbnQ7XHJcbiAgICB3aWR0aDogMjBweDtcclxuICAgIGhlaWdodDogMjBweDtcclxuICB9XHJcbjwvc3R5bGU+XHJcbiIsICJpbXBvcnQgeyBJdGVtVmlldywgV29ya3NwYWNlTGVhZiB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgeyBhZGRGZWF0aGVySWNvbiB9IGZyb20gXCJvYnNpZGlhbi1jb21tdW5pdHktbGliXCI7XHJcbmltcG9ydCBTaWRlVHJlZSBmcm9tIFwiLi4vQ29tcG9uZW50cy9TaWRlVHJlZS5zdmVsdGVcIjtcclxuaW1wb3J0IHsgVFJFRV9WSUVXIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vLi4vbWFpblwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVHJlZVZpZXcgZXh0ZW5kcyBJdGVtVmlldyB7XHJcbiAgcHJpdmF0ZSBwbHVnaW46IEJDUGx1Z2luO1xyXG4gIHByaXZhdGUgdmlldzogU2lkZVRyZWU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGxlYWY6IFdvcmtzcGFjZUxlYWYsIHBsdWdpbjogQkNQbHVnaW4pIHtcclxuICAgIHN1cGVyKGxlYWYpO1xyXG4gICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XHJcbiAgfVxyXG5cclxuICBhc3luYyBvbmxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBzdXBlci5vbmxvYWQoKTtcclxuICAgIGFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeShhc3luYyAoKSA9PiB7XHJcbiAgICAgIGF3YWl0IHRoaXMuZHJhdygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRWaWV3VHlwZSgpIHtcclxuICAgIHJldHVybiBUUkVFX1ZJRVc7XHJcbiAgfVxyXG4gIGdldERpc3BsYXlUZXh0KCkge1xyXG4gICAgcmV0dXJuIFwiQnJlYWRjcnVtYnMgRG93blwiO1xyXG4gIH1cclxuXHJcbiAgaWNvbiA9IGFkZEZlYXRoZXJJY29uKFwiY29ybmVyLXJpZ2h0LWRvd25cIikgYXMgc3RyaW5nO1xyXG5cclxuICBhc3luYyBvbk9wZW4oKTogUHJvbWlzZTx2b2lkPiB7fVxyXG5cclxuICBvbkNsb3NlKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy52aWV3Py4kZGVzdHJveSgpO1xyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZHJhdygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuY29udGVudEVsLmVtcHR5KCk7XHJcblxyXG4gICAgdGhpcy52aWV3ID0gbmV3IFNpZGVUcmVlKHtcclxuICAgICAgdGFyZ2V0OiB0aGlzLmNvbnRlbnRFbCxcclxuICAgICAgcHJvcHM6IHsgcGx1Z2luOiB0aGlzLnBsdWdpbiwgdmlldzogdGhpcyB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIG51bGwsICI8c2NyaXB0IGxhbmc9XCJ0c1wiPlxyXG4gIGltcG9ydCB7IGluZm8gfSBmcm9tIFwibG9nbGV2ZWxcIjtcclxuICBpbXBvcnQge1xyXG4gICAgaG92ZXJQcmV2aWV3LFxyXG4gICAgaXNJblZhdWx0LFxyXG4gICAgb3Blbk9yU3dpdGNoLFxyXG4gIH0gZnJvbSBcIm9ic2lkaWFuLWNvbW11bml0eS1saWJcIjtcclxuICBpbXBvcnQgRmFGaXJlIGZyb20gXCJzdmVsdGUtaWNvbnMvZmEvRmFGaXJlLnN2ZWx0ZVwiO1xyXG4gIGltcG9ydCBGYVJlZ1Nub3dmbGFrZSBmcm9tIFwic3ZlbHRlLWljb25zL2ZhL0ZhUmVnU25vd2ZsYWtlLnN2ZWx0ZVwiO1xyXG4gIGltcG9ydCB7IGNyZWF0ZUluZGV4LCBpbmRleFRvTGluZVBhaXJzIH0gZnJvbSBcIi4uL0NvbW1hbmRzL0NyZWF0ZUluZGV4XCI7XHJcbiAgaW1wb3J0IHsgRElSRUNUSU9OUyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuICBpbXBvcnQgdHlwZSB7IERpcmVjdGlvbnMgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG4gIGltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbiAgaW1wb3J0IHsgcmVmcmVzaEluZGV4IH0gZnJvbSBcIi4uL3JlZnJlc2hJbmRleFwiO1xyXG4gIGltcG9ydCB7IGRyb3BEZW5kcm9uIH0gZnJvbSBcIi4uL1V0aWxzL2dlbmVyYWxVdGlsc1wiO1xyXG4gIGltcG9ydCB7IGRmc0FsbFBhdGhzLCBnZXRTdWJJbkRpcnMgfSBmcm9tIFwiLi4vVXRpbHMvZ3JhcGhVdGlsc1wiO1xyXG4gIGltcG9ydCB0eXBlIFRyZWVWaWV3IGZyb20gXCIuLi9WaWV3cy9UcmVlVmlld1wiO1xyXG4gIGltcG9ydCB7IGdldEN1cnJGaWxlIH0gZnJvbSBcIi4uL1V0aWxzL09ic2lkaWFuVXRpbHNcIjtcclxuXHJcbiAgZXhwb3J0IGxldCBwbHVnaW46IEJDUGx1Z2luO1xyXG4gIGV4cG9ydCBsZXQgdmlldzogVHJlZVZpZXc7XHJcblxyXG4gIGNvbnN0IHsgc2V0dGluZ3MsIGFwcCwgY2xvc2VkRyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgY3JlYXRlSW5kZXhJbmRlbnQgfSA9IHNldHRpbmdzO1xyXG5cclxuICBsZXQgZGlyOiBEaXJlY3Rpb25zID0gXCJkb3duXCI7XHJcbiAgbGV0IGZyb3plbiA9IGZhbHNlO1xyXG4gIGxldCB7IGJhc2VuYW1lIH0gPSBnZXRDdXJyRmlsZSgpO1xyXG5cclxuICBwbHVnaW4ucmVnaXN0ZXJFdmVudChcclxuICAgIGFwcC53b3Jrc3BhY2Uub24oXCJhY3RpdmUtbGVhZi1jaGFuZ2VcIiwgKCkgPT4ge1xyXG4gICAgICBpZiAoZnJvemVuKSByZXR1cm47XHJcbiAgICAgIGJhc2VuYW1lID0gZ2V0Q3VyckZpbGUoKT8uYmFzZW5hbWU7XHJcbiAgICB9KVxyXG4gICk7XHJcblxyXG4gIGxldCBsaW5lczogW3N0cmluZywgc3RyaW5nXVtdO1xyXG4gICQ6IHtcclxuICAgIGNvbnN0IGRvd25HID0gZ2V0U3ViSW5EaXJzKGNsb3NlZEcsIGRpcik7XHJcbiAgICBjb25zdCBhbGxQYXRocyA9IGRmc0FsbFBhdGhzKGRvd25HLCBiYXNlbmFtZSk7XHJcbiAgICBjb25zdCBpbmRleCA9IGNyZWF0ZUluZGV4KGFsbFBhdGhzLCBmYWxzZSwgY3JlYXRlSW5kZXhJbmRlbnQpO1xyXG4gICAgaW5mbyh7IGFsbFBhdGhzLCBpbmRleCB9KTtcclxuXHJcbiAgICBsaW5lcyA9IGluZGV4VG9MaW5lUGFpcnMoaW5kZXgpO1xyXG4gIH1cclxuPC9zY3JpcHQ+XHJcblxyXG48IS0tIHN2ZWx0ZS1pZ25vcmUgYTExeS11bmtub3duLWFyaWEtYXR0cmlidXRlIC0tPlxyXG48c3BhblxyXG4gIGNsYXNzPVwiaWNvblwiXHJcbiAgYXJpYS1sYWJlbD17ZnJvemVuID8gYEZyb3plbiBvbjogJHtiYXNlbmFtZX1gIDogXCJVbmZyb3plblwifVxyXG4gIGFyaWEtbGFiZWwtcG9zaXRpb249XCJsZWZ0XCJcclxuICBvbjpjbGljaz17KCkgPT4ge1xyXG4gICAgZnJvemVuID0gIWZyb3plbjtcclxuICAgIGlmICghZnJvemVuKSBiYXNlbmFtZSA9IGdldEN1cnJGaWxlKCk/LmJhc2VuYW1lO1xyXG4gIH19XHJcbj5cclxuICB7I2lmIGZyb3plbn1cclxuICAgIDxGYVJlZ1Nub3dmbGFrZSAvPlxyXG4gIHs6ZWxzZX1cclxuICAgIDxGYUZpcmUgLz5cclxuICB7L2lmfVxyXG48L3NwYW4+XHJcblxyXG48YnV0dG9uXHJcbiAgYXJpYS1sYWJlbD1cIlJlZnJlc2ggU3RhdHMgVmlldyAoYWxzbyByZWZyZXNoZXMgQnJlYWRjcnVtYnMgSW5kZXgpXCJcclxuICBvbjpjbGljaz17YXN5bmMgKCkgPT4ge1xyXG4gICAgYXdhaXQgcmVmcmVzaEluZGV4KHBsdWdpbik7XHJcbiAgICBhd2FpdCB2aWV3LmRyYXcoKTtcclxuICB9fVxyXG4+XHJcbiAgXHUyMUJCXHJcbjwvYnV0dG9uPlxyXG5cclxuPHNlbGVjdCBjbGFzcz1cImRyb3Bkb3duXCIgYmluZDp2YWx1ZT17ZGlyfT5cclxuICB7I2VhY2ggRElSRUNUSU9OUyBhcyBkaXJlY3Rpb259XHJcbiAgICA8b3B0aW9uIHZhbHVlPXtkaXJlY3Rpb259PntkaXJlY3Rpb259PC9vcHRpb24+XHJcbiAgey9lYWNofVxyXG48L3NlbGVjdD5cclxuXHJcbjxkaXYgY2xhc3M9XCJCQy1kb3duc1wiPlxyXG4gIHsjZWFjaCBsaW5lcyBhcyBsaW5lfVxyXG4gICAgeyNpZiBsaW5lLmxlbmd0aCA+IDF9XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPHByZT57bGluZVswXSArIFwiLVwifTwvcHJlPlxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICBjbGFzcz1cImludGVybmFsLWxpbmtcIlxyXG4gICAgICAgICAgb246Y2xpY2s9e2FzeW5jIChlKSA9PiBhd2FpdCBvcGVuT3JTd2l0Y2gobGluZVsxXSwgZSl9XHJcbiAgICAgICAgICBvbjptb3VzZW92ZXI9eyhlKSA9PiBob3ZlclByZXZpZXcoZSwgdmlldywgbGluZVsxXSl9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPCEtLSBzdmVsdGUtaWdub3JlIGExMXktbWlzc2luZy1hdHRyaWJ1dGUgLS0+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cImludGVybmFsLWxpbmsge2lzSW5WYXVsdChsaW5lWzFdKSA/ICcnIDogJ2lzLXVucmVzb2x2ZWQnfVwiXHJcbiAgICAgICAgICAgID57ZHJvcERlbmRyb24obGluZVsxXSwgc2V0dGluZ3MpfTwvYVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB7L2lmfVxyXG4gIHsvZWFjaH1cclxuPC9kaXY+XHJcblxyXG48c3R5bGU+XHJcbiAgYnV0dG9uIHtcclxuICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgIHBhZGRpbmc6IDFweCA2cHggMnB4IDZweDtcclxuICB9XHJcblxyXG4gIC5CQy1kb3ducyB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICB9XHJcbiAgcHJlIHtcclxuICAgIGRpc3BsYXk6IGlubGluZTtcclxuICB9XHJcblxyXG4gIC5pcy11bnJlc29sdmVkIHtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcclxuICB9XHJcblxyXG4gIC5pY29uIHtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LW5vcm1hbCk7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLXRvcDogNXB4ICFpbXBvcnRhbnQ7XHJcbiAgICB3aWR0aDogMjBweDtcclxuICAgIGhlaWdodDogMjBweDtcclxuICB9XHJcbjwvc3R5bGU+XHJcbiIsICI8c2NyaXB0PlxuICAgICAgICBpbXBvcnQgSWNvbkJhc2UgZnJvbSAnLi4vY29tcG9uZW50cy9JY29uQmFzZS5zdmVsdGUnO1xuICAgICAgICA8L3NjcmlwdD5cbiAgICAgICAgPEljb25CYXNlIHZpZXdCb3g9XCIwIDAgMzg0IDUxMlwiIHsuLi4kJHByb3BzfT5cbiAgICAgICAgICA8cGF0aCBkPVwiTTIxNiAyMy44NmMwLTIzLjgtMzAuNjUtMzIuNzctNDQuMTUtMTMuMDRDNDggMTkxLjg1IDIyNCAyMDAgMjI0IDI4OGMwIDM1LjYzLTI5LjExIDY0LjQ2LTY0Ljg1IDYzLjk5LTM1LjE3LS40NS02My4xNS0yOS43Ny02My4xNS02NC45NHYtODUuNTFjMC0yMS43LTI2LjQ3LTMyLjIzLTQxLjQzLTE2LjVDMjcuOCAyMTMuMTYgMCAyNjEuMzMgMCAzMjBjMCAxMDUuODcgODYuMTMgMTkyIDE5MiAxOTJzMTkyLTg2LjEzIDE5Mi0xOTJjMC0xNzAuMjktMTY4LTE5My0xNjgtMjk2LjE0elwiIC8+XG4gICAgICAgIDwvSWNvbkJhc2U+XG4gICAgICAiLCAiPHNjcmlwdD5cbiAgICAgICAgaW1wb3J0IEljb25CYXNlIGZyb20gJy4uL2NvbXBvbmVudHMvSWNvbkJhc2Uuc3ZlbHRlJztcbiAgICAgICAgPC9zY3JpcHQ+XG4gICAgICAgIDxJY29uQmFzZSB2aWV3Qm94PVwiMCAwIDQ0OCA1MTJcIiB7Li4uJCRwcm9wc30+XG4gICAgICAgICAgPHBhdGggZD1cIk00NDAuMSAzNTUuMmwtMzkuMi0yMyAzNC4xLTkuM2M4LjQtMi4zIDEzLjQtMTEuMSAxMS4xLTE5LjZsLTQuMS0xNS41Yy0yLjItOC41LTEwLjktMTMuNi0xOS4zLTExLjNMMzQzIDI5OC4yIDI3MS4yIDI1Nmw3MS45LTQyLjIgNzkuNyAyMS43YzguNCAyLjMgMTctMi44IDE5LjMtMTEuM2w0LjEtMTUuNWMyLjItOC41LTIuNy0xNy4zLTExLjEtMTkuNmwtMzQuMS05LjMgMzkuMi0yM2M3LjUtNC40IDEwLjEtMTQuMiA1LjgtMjEuOWwtNy45LTEzLjljLTQuMy03LjctMTQtMTAuMy0yMS41LTUuOWwtMzkuMiAyMyA5LjEtMzQuN2MyLjItOC41LTIuNy0xNy4zLTExLjEtMTkuNmwtMTUuMi00LjFjLTguNC0yLjMtMTcgMi44LTE5LjMgMTEuM2wtMjEuMyA4MS03MS45IDQyLjJ2LTg0LjVMMzA2IDcwLjRjNi4xLTYuMiA2LjEtMTYuNCAwLTIyLjZsLTExLjEtMTEuM2MtNi4xLTYuMi0xNi4xLTYuMi0yMi4yIDBsLTI0LjkgMjUuNFYxNmMwLTguOC03LTE2LTE1LjctMTZoLTE1LjdjLTguNyAwLTE1LjcgNy4yLTE1LjcgMTZ2NDYuMWwtMjQuOS0yNS40Yy02LjEtNi4yLTE2LjEtNi4yLTIyLjIgMEwxNDIuMSA0OGMtNi4xIDYuMi02LjEgMTYuNCAwIDIyLjZsNTguMyA1OS4zdjg0LjVsLTcxLjktNDIuMi0yMS4zLTgxYy0yLjItOC41LTEwLjktMTMuNi0xOS4zLTExLjNMNzIuNyA4NGMtOC40IDIuMy0xMy40IDExLjEtMTEuMSAxOS42bDkuMSAzNC43LTM5LjItMjNjLTcuNS00LjQtMTcuMS0xLjgtMjEuNSA1LjlsLTcuOSAxMy45Yy00LjMgNy43LTEuOCAxNy40IDUuOCAyMS45bDM5LjIgMjMtMzQuMSA5LjFjLTguNCAyLjMtMTMuNCAxMS4xLTExLjEgMTkuNkw2IDIyNC4yYzIuMiA4LjUgMTAuOSAxMy42IDE5LjMgMTEuM2w3OS43LTIxLjcgNzEuOSA0Mi4yLTcxLjkgNDIuMi03OS43LTIxLjdjLTguNC0yLjMtMTcgMi44LTE5LjMgMTEuM2wtNC4xIDE1LjVjLTIuMiA4LjUgMi43IDE3LjMgMTEuMSAxOS42bDM0LjEgOS4zLTM5LjIgMjNjLTcuNSA0LjQtMTAuMSAxNC4yLTUuOCAyMS45TDEwIDM5MWM0LjMgNy43IDE0IDEwLjMgMjEuNSA1LjlsMzkuMi0yMy05LjEgMzQuN2MtMi4yIDguNSAyLjcgMTcuMyAxMS4xIDE5LjZsMTUuMiA0LjFjOC40IDIuMyAxNy0yLjggMTkuMy0xMS4zbDIxLjMtODEgNzEuOS00Mi4ydjg0LjVsLTU4LjMgNTkuM2MtNi4xIDYuMi02LjEgMTYuNCAwIDIyLjZsMTEuMSAxMS4zYzYuMSA2LjIgMTYuMSA2LjIgMjIuMiAwbDI0LjktMjUuNFY0OTZjMCA4LjggNyAxNiAxNS43IDE2aDE1LjdjOC43IDAgMTUuNy03LjIgMTUuNy0xNnYtNDYuMWwyNC45IDI1LjRjNi4xIDYuMiAxNi4xIDYuMiAyMi4yIDBsMTEuMS0xMS4zYzYuMS02LjIgNi4xLTE2LjQgMC0yMi42bC01OC4zLTU5LjN2LTg0LjVsNzEuOSA0Mi4yIDIxLjMgODFjMi4yIDguNSAxMC45IDEzLjYgMTkuMyAxMS4zTDM3NSA0MjhjOC40LTIuMyAxMy40LTExLjEgMTEuMS0xOS42bC05LjEtMzQuNyAzOS4yIDIzYzcuNSA0LjQgMTcuMSAxLjggMjEuNS01LjlsNy45LTEzLjljNC42LTcuNSAyLjEtMTcuMy01LjUtMjEuN3pcIiAvPlxuICAgICAgICA8L0ljb25CYXNlPlxuICAgICAgIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGEsIGIpIHtcbiAgcmV0dXJuIGEgPCBiID8gLTEgOiBhID4gYiA/IDEgOiBhID49IGIgPyAwIDogTmFOO1xufVxuIiwgImltcG9ydCBhc2NlbmRpbmcgZnJvbSBcIi4vYXNjZW5kaW5nLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGYpIHtcbiAgbGV0IGRlbHRhID0gZjtcbiAgbGV0IGNvbXBhcmUgPSBmO1xuXG4gIGlmIChmLmxlbmd0aCA9PT0gMSkge1xuICAgIGRlbHRhID0gKGQsIHgpID0+IGYoZCkgLSB4O1xuICAgIGNvbXBhcmUgPSBhc2NlbmRpbmdDb21wYXJhdG9yKGYpO1xuICB9XG5cbiAgZnVuY3Rpb24gbGVmdChhLCB4LCBsbywgaGkpIHtcbiAgICBpZiAobG8gPT0gbnVsbCkgbG8gPSAwO1xuICAgIGlmIChoaSA9PSBudWxsKSBoaSA9IGEubGVuZ3RoO1xuICAgIHdoaWxlIChsbyA8IGhpKSB7XG4gICAgICBjb25zdCBtaWQgPSAobG8gKyBoaSkgPj4+IDE7XG4gICAgICBpZiAoY29tcGFyZShhW21pZF0sIHgpIDwgMCkgbG8gPSBtaWQgKyAxO1xuICAgICAgZWxzZSBoaSA9IG1pZDtcbiAgICB9XG4gICAgcmV0dXJuIGxvO1xuICB9XG5cbiAgZnVuY3Rpb24gcmlnaHQoYSwgeCwgbG8sIGhpKSB7XG4gICAgaWYgKGxvID09IG51bGwpIGxvID0gMDtcbiAgICBpZiAoaGkgPT0gbnVsbCkgaGkgPSBhLmxlbmd0aDtcbiAgICB3aGlsZSAobG8gPCBoaSkge1xuICAgICAgY29uc3QgbWlkID0gKGxvICsgaGkpID4+PiAxO1xuICAgICAgaWYgKGNvbXBhcmUoYVttaWRdLCB4KSA+IDApIGhpID0gbWlkO1xuICAgICAgZWxzZSBsbyA9IG1pZCArIDE7XG4gICAgfVxuICAgIHJldHVybiBsbztcbiAgfVxuXG4gIGZ1bmN0aW9uIGNlbnRlcihhLCB4LCBsbywgaGkpIHtcbiAgICBpZiAobG8gPT0gbnVsbCkgbG8gPSAwO1xuICAgIGlmIChoaSA9PSBudWxsKSBoaSA9IGEubGVuZ3RoO1xuICAgIGNvbnN0IGkgPSBsZWZ0KGEsIHgsIGxvLCBoaSAtIDEpO1xuICAgIHJldHVybiBpID4gbG8gJiYgZGVsdGEoYVtpIC0gMV0sIHgpID4gLWRlbHRhKGFbaV0sIHgpID8gaSAtIDEgOiBpO1xuICB9XG5cbiAgcmV0dXJuIHtsZWZ0LCBjZW50ZXIsIHJpZ2h0fTtcbn1cblxuZnVuY3Rpb24gYXNjZW5kaW5nQ29tcGFyYXRvcihmKSB7XG4gIHJldHVybiAoZCwgeCkgPT4gYXNjZW5kaW5nKGYoZCksIHgpO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHgpIHtcbiAgcmV0dXJuIHggPT09IG51bGwgPyBOYU4gOiAreDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBudW1iZXJzKHZhbHVlcywgdmFsdWVvZikge1xuICBpZiAodmFsdWVvZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZm9yIChsZXQgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiAodmFsdWUgPSArdmFsdWUpID49IHZhbHVlKSB7XG4gICAgICAgIHlpZWxkIHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBsZXQgaW5kZXggPSAtMTtcbiAgICBmb3IgKGxldCB2YWx1ZSBvZiB2YWx1ZXMpIHtcbiAgICAgIGlmICgodmFsdWUgPSB2YWx1ZW9mKHZhbHVlLCArK2luZGV4LCB2YWx1ZXMpKSAhPSBudWxsICYmICh2YWx1ZSA9ICt2YWx1ZSkgPj0gdmFsdWUpIHtcbiAgICAgICAgeWllbGQgdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCAiaW1wb3J0IGFzY2VuZGluZyBmcm9tIFwiLi9hc2NlbmRpbmcuanNcIjtcbmltcG9ydCBiaXNlY3RvciBmcm9tIFwiLi9iaXNlY3Rvci5qc1wiO1xuaW1wb3J0IG51bWJlciBmcm9tIFwiLi9udW1iZXIuanNcIjtcblxuY29uc3QgYXNjZW5kaW5nQmlzZWN0ID0gYmlzZWN0b3IoYXNjZW5kaW5nKTtcbmV4cG9ydCBjb25zdCBiaXNlY3RSaWdodCA9IGFzY2VuZGluZ0Jpc2VjdC5yaWdodDtcbmV4cG9ydCBjb25zdCBiaXNlY3RMZWZ0ID0gYXNjZW5kaW5nQmlzZWN0LmxlZnQ7XG5leHBvcnQgY29uc3QgYmlzZWN0Q2VudGVyID0gYmlzZWN0b3IobnVtYmVyKS5jZW50ZXI7XG5leHBvcnQgZGVmYXVsdCBiaXNlY3RSaWdodDtcbiIsICJ2YXIgZTEwID0gTWF0aC5zcXJ0KDUwKSxcbiAgICBlNSA9IE1hdGguc3FydCgxMCksXG4gICAgZTIgPSBNYXRoLnNxcnQoMik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHN0YXJ0LCBzdG9wLCBjb3VudCkge1xuICB2YXIgcmV2ZXJzZSxcbiAgICAgIGkgPSAtMSxcbiAgICAgIG4sXG4gICAgICB0aWNrcyxcbiAgICAgIHN0ZXA7XG5cbiAgc3RvcCA9ICtzdG9wLCBzdGFydCA9ICtzdGFydCwgY291bnQgPSArY291bnQ7XG4gIGlmIChzdGFydCA9PT0gc3RvcCAmJiBjb3VudCA+IDApIHJldHVybiBbc3RhcnRdO1xuICBpZiAocmV2ZXJzZSA9IHN0b3AgPCBzdGFydCkgbiA9IHN0YXJ0LCBzdGFydCA9IHN0b3AsIHN0b3AgPSBuO1xuICBpZiAoKHN0ZXAgPSB0aWNrSW5jcmVtZW50KHN0YXJ0LCBzdG9wLCBjb3VudCkpID09PSAwIHx8ICFpc0Zpbml0ZShzdGVwKSkgcmV0dXJuIFtdO1xuXG4gIGlmIChzdGVwID4gMCkge1xuICAgIGxldCByMCA9IE1hdGgucm91bmQoc3RhcnQgLyBzdGVwKSwgcjEgPSBNYXRoLnJvdW5kKHN0b3AgLyBzdGVwKTtcbiAgICBpZiAocjAgKiBzdGVwIDwgc3RhcnQpICsrcjA7XG4gICAgaWYgKHIxICogc3RlcCA+IHN0b3ApIC0tcjE7XG4gICAgdGlja3MgPSBuZXcgQXJyYXkobiA9IHIxIC0gcjAgKyAxKTtcbiAgICB3aGlsZSAoKytpIDwgbikgdGlja3NbaV0gPSAocjAgKyBpKSAqIHN0ZXA7XG4gIH0gZWxzZSB7XG4gICAgc3RlcCA9IC1zdGVwO1xuICAgIGxldCByMCA9IE1hdGgucm91bmQoc3RhcnQgKiBzdGVwKSwgcjEgPSBNYXRoLnJvdW5kKHN0b3AgKiBzdGVwKTtcbiAgICBpZiAocjAgLyBzdGVwIDwgc3RhcnQpICsrcjA7XG4gICAgaWYgKHIxIC8gc3RlcCA+IHN0b3ApIC0tcjE7XG4gICAgdGlja3MgPSBuZXcgQXJyYXkobiA9IHIxIC0gcjAgKyAxKTtcbiAgICB3aGlsZSAoKytpIDwgbikgdGlja3NbaV0gPSAocjAgKyBpKSAvIHN0ZXA7XG4gIH1cblxuICBpZiAocmV2ZXJzZSkgdGlja3MucmV2ZXJzZSgpO1xuXG4gIHJldHVybiB0aWNrcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRpY2tJbmNyZW1lbnQoc3RhcnQsIHN0b3AsIGNvdW50KSB7XG4gIHZhciBzdGVwID0gKHN0b3AgLSBzdGFydCkgLyBNYXRoLm1heCgwLCBjb3VudCksXG4gICAgICBwb3dlciA9IE1hdGguZmxvb3IoTWF0aC5sb2coc3RlcCkgLyBNYXRoLkxOMTApLFxuICAgICAgZXJyb3IgPSBzdGVwIC8gTWF0aC5wb3coMTAsIHBvd2VyKTtcbiAgcmV0dXJuIHBvd2VyID49IDBcbiAgICAgID8gKGVycm9yID49IGUxMCA/IDEwIDogZXJyb3IgPj0gZTUgPyA1IDogZXJyb3IgPj0gZTIgPyAyIDogMSkgKiBNYXRoLnBvdygxMCwgcG93ZXIpXG4gICAgICA6IC1NYXRoLnBvdygxMCwgLXBvd2VyKSAvIChlcnJvciA+PSBlMTAgPyAxMCA6IGVycm9yID49IGU1ID8gNSA6IGVycm9yID49IGUyID8gMiA6IDEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGlja1N0ZXAoc3RhcnQsIHN0b3AsIGNvdW50KSB7XG4gIHZhciBzdGVwMCA9IE1hdGguYWJzKHN0b3AgLSBzdGFydCkgLyBNYXRoLm1heCgwLCBjb3VudCksXG4gICAgICBzdGVwMSA9IE1hdGgucG93KDEwLCBNYXRoLmZsb29yKE1hdGgubG9nKHN0ZXAwKSAvIE1hdGguTE4xMCkpLFxuICAgICAgZXJyb3IgPSBzdGVwMCAvIHN0ZXAxO1xuICBpZiAoZXJyb3IgPj0gZTEwKSBzdGVwMSAqPSAxMDtcbiAgZWxzZSBpZiAoZXJyb3IgPj0gZTUpIHN0ZXAxICo9IDU7XG4gIGVsc2UgaWYgKGVycm9yID49IGUyKSBzdGVwMSAqPSAyO1xuICByZXR1cm4gc3RvcCA8IHN0YXJ0ID8gLXN0ZXAxIDogc3RlcDE7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWF4KHZhbHVlcywgdmFsdWVvZikge1xuICBsZXQgbWF4O1xuICBpZiAodmFsdWVvZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZm9yIChjb25zdCB2YWx1ZSBvZiB2YWx1ZXMpIHtcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsXG4gICAgICAgICAgJiYgKG1heCA8IHZhbHVlIHx8IChtYXggPT09IHVuZGVmaW5lZCAmJiB2YWx1ZSA+PSB2YWx1ZSkpKSB7XG4gICAgICAgIG1heCA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBsZXQgaW5kZXggPSAtMTtcbiAgICBmb3IgKGxldCB2YWx1ZSBvZiB2YWx1ZXMpIHtcbiAgICAgIGlmICgodmFsdWUgPSB2YWx1ZW9mKHZhbHVlLCArK2luZGV4LCB2YWx1ZXMpKSAhPSBudWxsXG4gICAgICAgICAgJiYgKG1heCA8IHZhbHVlIHx8IChtYXggPT09IHVuZGVmaW5lZCAmJiB2YWx1ZSA+PSB2YWx1ZSkpKSB7XG4gICAgICAgIG1heCA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gbWF4O1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHN0YXJ0LCBzdG9wLCBzdGVwKSB7XG4gIHN0YXJ0ID0gK3N0YXJ0LCBzdG9wID0gK3N0b3AsIHN0ZXAgPSAobiA9IGFyZ3VtZW50cy5sZW5ndGgpIDwgMiA/IChzdG9wID0gc3RhcnQsIHN0YXJ0ID0gMCwgMSkgOiBuIDwgMyA/IDEgOiArc3RlcDtcblxuICB2YXIgaSA9IC0xLFxuICAgICAgbiA9IE1hdGgubWF4KDAsIE1hdGguY2VpbCgoc3RvcCAtIHN0YXJ0KSAvIHN0ZXApKSB8IDAsXG4gICAgICByYW5nZSA9IG5ldyBBcnJheShuKTtcblxuICB3aGlsZSAoKytpIDwgbikge1xuICAgIHJhbmdlW2ldID0gc3RhcnQgKyBpICogc3RlcDtcbiAgfVxuXG4gIHJldHVybiByYW5nZTtcbn1cbiIsICJ2YXIgbm9vcCA9IHt2YWx1ZTogKCkgPT4ge319O1xuXG5mdW5jdGlvbiBkaXNwYXRjaCgpIHtcbiAgZm9yICh2YXIgaSA9IDAsIG4gPSBhcmd1bWVudHMubGVuZ3RoLCBfID0ge30sIHQ7IGkgPCBuOyArK2kpIHtcbiAgICBpZiAoISh0ID0gYXJndW1lbnRzW2ldICsgXCJcIikgfHwgKHQgaW4gXykgfHwgL1tcXHMuXS8udGVzdCh0KSkgdGhyb3cgbmV3IEVycm9yKFwiaWxsZWdhbCB0eXBlOiBcIiArIHQpO1xuICAgIF9bdF0gPSBbXTtcbiAgfVxuICByZXR1cm4gbmV3IERpc3BhdGNoKF8pO1xufVxuXG5mdW5jdGlvbiBEaXNwYXRjaChfKSB7XG4gIHRoaXMuXyA9IF87XG59XG5cbmZ1bmN0aW9uIHBhcnNlVHlwZW5hbWVzKHR5cGVuYW1lcywgdHlwZXMpIHtcbiAgcmV0dXJuIHR5cGVuYW1lcy50cmltKCkuc3BsaXQoL158XFxzKy8pLm1hcChmdW5jdGlvbih0KSB7XG4gICAgdmFyIG5hbWUgPSBcIlwiLCBpID0gdC5pbmRleE9mKFwiLlwiKTtcbiAgICBpZiAoaSA+PSAwKSBuYW1lID0gdC5zbGljZShpICsgMSksIHQgPSB0LnNsaWNlKDAsIGkpO1xuICAgIGlmICh0ICYmICF0eXBlcy5oYXNPd25Qcm9wZXJ0eSh0KSkgdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biB0eXBlOiBcIiArIHQpO1xuICAgIHJldHVybiB7dHlwZTogdCwgbmFtZTogbmFtZX07XG4gIH0pO1xufVxuXG5EaXNwYXRjaC5wcm90b3R5cGUgPSBkaXNwYXRjaC5wcm90b3R5cGUgPSB7XG4gIGNvbnN0cnVjdG9yOiBEaXNwYXRjaCxcbiAgb246IGZ1bmN0aW9uKHR5cGVuYW1lLCBjYWxsYmFjaykge1xuICAgIHZhciBfID0gdGhpcy5fLFxuICAgICAgICBUID0gcGFyc2VUeXBlbmFtZXModHlwZW5hbWUgKyBcIlwiLCBfKSxcbiAgICAgICAgdCxcbiAgICAgICAgaSA9IC0xLFxuICAgICAgICBuID0gVC5sZW5ndGg7XG5cbiAgICAvLyBJZiBubyBjYWxsYmFjayB3YXMgc3BlY2lmaWVkLCByZXR1cm4gdGhlIGNhbGxiYWNrIG9mIHRoZSBnaXZlbiB0eXBlIGFuZCBuYW1lLlxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMikge1xuICAgICAgd2hpbGUgKCsraSA8IG4pIGlmICgodCA9ICh0eXBlbmFtZSA9IFRbaV0pLnR5cGUpICYmICh0ID0gZ2V0KF9bdF0sIHR5cGVuYW1lLm5hbWUpKSkgcmV0dXJuIHQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWYgYSB0eXBlIHdhcyBzcGVjaWZpZWQsIHNldCB0aGUgY2FsbGJhY2sgZm9yIHRoZSBnaXZlbiB0eXBlIGFuZCBuYW1lLlxuICAgIC8vIE90aGVyd2lzZSwgaWYgYSBudWxsIGNhbGxiYWNrIHdhcyBzcGVjaWZpZWQsIHJlbW92ZSBjYWxsYmFja3Mgb2YgdGhlIGdpdmVuIG5hbWUuXG4gICAgaWYgKGNhbGxiYWNrICE9IG51bGwgJiYgdHlwZW9mIGNhbGxiYWNrICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBFcnJvcihcImludmFsaWQgY2FsbGJhY2s6IFwiICsgY2FsbGJhY2spO1xuICAgIHdoaWxlICgrK2kgPCBuKSB7XG4gICAgICBpZiAodCA9ICh0eXBlbmFtZSA9IFRbaV0pLnR5cGUpIF9bdF0gPSBzZXQoX1t0XSwgdHlwZW5hbWUubmFtZSwgY2FsbGJhY2spO1xuICAgICAgZWxzZSBpZiAoY2FsbGJhY2sgPT0gbnVsbCkgZm9yICh0IGluIF8pIF9bdF0gPSBzZXQoX1t0XSwgdHlwZW5hbWUubmFtZSwgbnVsbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG4gIGNvcHk6IGZ1bmN0aW9uKCkge1xuICAgIHZhciBjb3B5ID0ge30sIF8gPSB0aGlzLl87XG4gICAgZm9yICh2YXIgdCBpbiBfKSBjb3B5W3RdID0gX1t0XS5zbGljZSgpO1xuICAgIHJldHVybiBuZXcgRGlzcGF0Y2goY29weSk7XG4gIH0sXG4gIGNhbGw6IGZ1bmN0aW9uKHR5cGUsIHRoYXQpIHtcbiAgICBpZiAoKG4gPSBhcmd1bWVudHMubGVuZ3RoIC0gMikgPiAwKSBmb3IgKHZhciBhcmdzID0gbmV3IEFycmF5KG4pLCBpID0gMCwgbiwgdDsgaSA8IG47ICsraSkgYXJnc1tpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgaWYgKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodHlwZSkpIHRocm93IG5ldyBFcnJvcihcInVua25vd24gdHlwZTogXCIgKyB0eXBlKTtcbiAgICBmb3IgKHQgPSB0aGlzLl9bdHlwZV0sIGkgPSAwLCBuID0gdC5sZW5ndGg7IGkgPCBuOyArK2kpIHRbaV0udmFsdWUuYXBwbHkodGhhdCwgYXJncyk7XG4gIH0sXG4gIGFwcGx5OiBmdW5jdGlvbih0eXBlLCB0aGF0LCBhcmdzKSB7XG4gICAgaWYgKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodHlwZSkpIHRocm93IG5ldyBFcnJvcihcInVua25vd24gdHlwZTogXCIgKyB0eXBlKTtcbiAgICBmb3IgKHZhciB0ID0gdGhpcy5fW3R5cGVdLCBpID0gMCwgbiA9IHQubGVuZ3RoOyBpIDwgbjsgKytpKSB0W2ldLnZhbHVlLmFwcGx5KHRoYXQsIGFyZ3MpO1xuICB9XG59O1xuXG5mdW5jdGlvbiBnZXQodHlwZSwgbmFtZSkge1xuICBmb3IgKHZhciBpID0gMCwgbiA9IHR5cGUubGVuZ3RoLCBjOyBpIDwgbjsgKytpKSB7XG4gICAgaWYgKChjID0gdHlwZVtpXSkubmFtZSA9PT0gbmFtZSkge1xuICAgICAgcmV0dXJuIGMudmFsdWU7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNldCh0eXBlLCBuYW1lLCBjYWxsYmFjaykge1xuICBmb3IgKHZhciBpID0gMCwgbiA9IHR5cGUubGVuZ3RoOyBpIDwgbjsgKytpKSB7XG4gICAgaWYgKHR5cGVbaV0ubmFtZSA9PT0gbmFtZSkge1xuICAgICAgdHlwZVtpXSA9IG5vb3AsIHR5cGUgPSB0eXBlLnNsaWNlKDAsIGkpLmNvbmNhdCh0eXBlLnNsaWNlKGkgKyAxKSk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKGNhbGxiYWNrICE9IG51bGwpIHR5cGUucHVzaCh7bmFtZTogbmFtZSwgdmFsdWU6IGNhbGxiYWNrfSk7XG4gIHJldHVybiB0eXBlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBkaXNwYXRjaDtcbiIsICJleHBvcnQgdmFyIHhodG1sID0gXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgc3ZnOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gIHhodG1sOiB4aHRtbCxcbiAgeGxpbms6IFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLFxuICB4bWw6IFwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXCIsXG4gIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvXCJcbn07XG4iLCAiaW1wb3J0IG5hbWVzcGFjZXMgZnJvbSBcIi4vbmFtZXNwYWNlcy5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihuYW1lKSB7XG4gIHZhciBwcmVmaXggPSBuYW1lICs9IFwiXCIsIGkgPSBwcmVmaXguaW5kZXhPZihcIjpcIik7XG4gIGlmIChpID49IDAgJiYgKHByZWZpeCA9IG5hbWUuc2xpY2UoMCwgaSkpICE9PSBcInhtbG5zXCIpIG5hbWUgPSBuYW1lLnNsaWNlKGkgKyAxKTtcbiAgcmV0dXJuIG5hbWVzcGFjZXMuaGFzT3duUHJvcGVydHkocHJlZml4KSA/IHtzcGFjZTogbmFtZXNwYWNlc1twcmVmaXhdLCBsb2NhbDogbmFtZX0gOiBuYW1lOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xufVxuIiwgImltcG9ydCBuYW1lc3BhY2UgZnJvbSBcIi4vbmFtZXNwYWNlLmpzXCI7XG5pbXBvcnQge3hodG1sfSBmcm9tIFwiLi9uYW1lc3BhY2VzLmpzXCI7XG5cbmZ1bmN0aW9uIGNyZWF0b3JJbmhlcml0KG5hbWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBkb2N1bWVudCA9IHRoaXMub3duZXJEb2N1bWVudCxcbiAgICAgICAgdXJpID0gdGhpcy5uYW1lc3BhY2VVUkk7XG4gICAgcmV0dXJuIHVyaSA9PT0geGh0bWwgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSSSA9PT0geGh0bWxcbiAgICAgICAgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG5hbWUpXG4gICAgICAgIDogZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHVyaSwgbmFtZSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGNyZWF0b3JGaXhlZChmdWxsbmFtZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZnVsbG5hbWUuc3BhY2UsIGZ1bGxuYW1lLmxvY2FsKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obmFtZSkge1xuICB2YXIgZnVsbG5hbWUgPSBuYW1lc3BhY2UobmFtZSk7XG4gIHJldHVybiAoZnVsbG5hbWUubG9jYWxcbiAgICAgID8gY3JlYXRvckZpeGVkXG4gICAgICA6IGNyZWF0b3JJbmhlcml0KShmdWxsbmFtZSk7XG59XG4iLCAiZnVuY3Rpb24gbm9uZSgpIHt9XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHNlbGVjdG9yKSB7XG4gIHJldHVybiBzZWxlY3RvciA9PSBudWxsID8gbm9uZSA6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xuICB9O1xufVxuIiwgImltcG9ydCB7U2VsZWN0aW9ufSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuaW1wb3J0IHNlbGVjdG9yIGZyb20gXCIuLi9zZWxlY3Rvci5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzZWxlY3QpIHtcbiAgaWYgKHR5cGVvZiBzZWxlY3QgIT09IFwiZnVuY3Rpb25cIikgc2VsZWN0ID0gc2VsZWN0b3Ioc2VsZWN0KTtcblxuICBmb3IgKHZhciBncm91cHMgPSB0aGlzLl9ncm91cHMsIG0gPSBncm91cHMubGVuZ3RoLCBzdWJncm91cHMgPSBuZXcgQXJyYXkobSksIGogPSAwOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAgPSBncm91cHNbal0sIG4gPSBncm91cC5sZW5ndGgsIHN1Ymdyb3VwID0gc3ViZ3JvdXBzW2pdID0gbmV3IEFycmF5KG4pLCBub2RlLCBzdWJub2RlLCBpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgaWYgKChub2RlID0gZ3JvdXBbaV0pICYmIChzdWJub2RlID0gc2VsZWN0LmNhbGwobm9kZSwgbm9kZS5fX2RhdGFfXywgaSwgZ3JvdXApKSkge1xuICAgICAgICBpZiAoXCJfX2RhdGFfX1wiIGluIG5vZGUpIHN1Ym5vZGUuX19kYXRhX18gPSBub2RlLl9fZGF0YV9fO1xuICAgICAgICBzdWJncm91cFtpXSA9IHN1Ym5vZGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBTZWxlY3Rpb24oc3ViZ3JvdXBzLCB0aGlzLl9wYXJlbnRzKTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbih4KSB7XG4gIHJldHVybiB0eXBlb2YgeCA9PT0gXCJvYmplY3RcIiAmJiBcImxlbmd0aFwiIGluIHhcbiAgICA/IHggLy8gQXJyYXksIFR5cGVkQXJyYXksIE5vZGVMaXN0LCBhcnJheS1saWtlXG4gICAgOiBBcnJheS5mcm9tKHgpOyAvLyBNYXAsIFNldCwgaXRlcmFibGUsIHN0cmluZywgb3IgYW55dGhpbmcgZWxzZVxufVxuIiwgImZ1bmN0aW9uIGVtcHR5KCkge1xuICByZXR1cm4gW107XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHNlbGVjdG9yKSB7XG4gIHJldHVybiBzZWxlY3RvciA9PSBudWxsID8gZW1wdHkgOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcbiAgfTtcbn1cbiIsICJpbXBvcnQge1NlbGVjdGlvbn0gZnJvbSBcIi4vaW5kZXguanNcIjtcbmltcG9ydCBhcnJheSBmcm9tIFwiLi4vYXJyYXkuanNcIjtcbmltcG9ydCBzZWxlY3RvckFsbCBmcm9tIFwiLi4vc2VsZWN0b3JBbGwuanNcIjtcblxuZnVuY3Rpb24gYXJyYXlBbGwoc2VsZWN0KSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgZ3JvdXAgPSBzZWxlY3QuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICByZXR1cm4gZ3JvdXAgPT0gbnVsbCA/IFtdIDogYXJyYXkoZ3JvdXApO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzZWxlY3QpIHtcbiAgaWYgKHR5cGVvZiBzZWxlY3QgPT09IFwiZnVuY3Rpb25cIikgc2VsZWN0ID0gYXJyYXlBbGwoc2VsZWN0KTtcbiAgZWxzZSBzZWxlY3QgPSBzZWxlY3RvckFsbChzZWxlY3QpO1xuXG4gIGZvciAodmFyIGdyb3VwcyA9IHRoaXMuX2dyb3VwcywgbSA9IGdyb3Vwcy5sZW5ndGgsIHN1Ymdyb3VwcyA9IFtdLCBwYXJlbnRzID0gW10sIGogPSAwOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAgPSBncm91cHNbal0sIG4gPSBncm91cC5sZW5ndGgsIG5vZGUsIGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAobm9kZSA9IGdyb3VwW2ldKSB7XG4gICAgICAgIHN1Ymdyb3Vwcy5wdXNoKHNlbGVjdC5jYWxsKG5vZGUsIG5vZGUuX19kYXRhX18sIGksIGdyb3VwKSk7XG4gICAgICAgIHBhcmVudHMucHVzaChub2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IFNlbGVjdGlvbihzdWJncm91cHMsIHBhcmVudHMpO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHNlbGVjdG9yKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5tYXRjaGVzKHNlbGVjdG9yKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoaWxkTWF0Y2hlcihzZWxlY3Rvcikge1xuICByZXR1cm4gZnVuY3Rpb24obm9kZSkge1xuICAgIHJldHVybiBub2RlLm1hdGNoZXMoc2VsZWN0b3IpO1xuICB9O1xufVxuXG4iLCAiaW1wb3J0IHtjaGlsZE1hdGNoZXJ9IGZyb20gXCIuLi9tYXRjaGVyLmpzXCI7XG5cbnZhciBmaW5kID0gQXJyYXkucHJvdG90eXBlLmZpbmQ7XG5cbmZ1bmN0aW9uIGNoaWxkRmluZChtYXRjaCkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGZpbmQuY2FsbCh0aGlzLmNoaWxkcmVuLCBtYXRjaCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGNoaWxkRmlyc3QoKSB7XG4gIHJldHVybiB0aGlzLmZpcnN0RWxlbWVudENoaWxkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihtYXRjaCkge1xuICByZXR1cm4gdGhpcy5zZWxlY3QobWF0Y2ggPT0gbnVsbCA/IGNoaWxkRmlyc3RcbiAgICAgIDogY2hpbGRGaW5kKHR5cGVvZiBtYXRjaCA9PT0gXCJmdW5jdGlvblwiID8gbWF0Y2ggOiBjaGlsZE1hdGNoZXIobWF0Y2gpKSk7XG59XG4iLCAiaW1wb3J0IHtjaGlsZE1hdGNoZXJ9IGZyb20gXCIuLi9tYXRjaGVyLmpzXCI7XG5cbnZhciBmaWx0ZXIgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyO1xuXG5mdW5jdGlvbiBjaGlsZHJlbigpIHtcbiAgcmV0dXJuIHRoaXMuY2hpbGRyZW47XG59XG5cbmZ1bmN0aW9uIGNoaWxkcmVuRmlsdGVyKG1hdGNoKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZmlsdGVyLmNhbGwodGhpcy5jaGlsZHJlbiwgbWF0Y2gpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihtYXRjaCkge1xuICByZXR1cm4gdGhpcy5zZWxlY3RBbGwobWF0Y2ggPT0gbnVsbCA/IGNoaWxkcmVuXG4gICAgICA6IGNoaWxkcmVuRmlsdGVyKHR5cGVvZiBtYXRjaCA9PT0gXCJmdW5jdGlvblwiID8gbWF0Y2ggOiBjaGlsZE1hdGNoZXIobWF0Y2gpKSk7XG59XG4iLCAiaW1wb3J0IHtTZWxlY3Rpb259IGZyb20gXCIuL2luZGV4LmpzXCI7XG5pbXBvcnQgbWF0Y2hlciBmcm9tIFwiLi4vbWF0Y2hlci5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihtYXRjaCkge1xuICBpZiAodHlwZW9mIG1hdGNoICE9PSBcImZ1bmN0aW9uXCIpIG1hdGNoID0gbWF0Y2hlcihtYXRjaCk7XG5cbiAgZm9yICh2YXIgZ3JvdXBzID0gdGhpcy5fZ3JvdXBzLCBtID0gZ3JvdXBzLmxlbmd0aCwgc3ViZ3JvdXBzID0gbmV3IEFycmF5KG0pLCBqID0gMDsgaiA8IG07ICsraikge1xuICAgIGZvciAodmFyIGdyb3VwID0gZ3JvdXBzW2pdLCBuID0gZ3JvdXAubGVuZ3RoLCBzdWJncm91cCA9IHN1Ymdyb3Vwc1tqXSA9IFtdLCBub2RlLCBpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgaWYgKChub2RlID0gZ3JvdXBbaV0pICYmIG1hdGNoLmNhbGwobm9kZSwgbm9kZS5fX2RhdGFfXywgaSwgZ3JvdXApKSB7XG4gICAgICAgIHN1Ymdyb3VwLnB1c2gobm9kZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBTZWxlY3Rpb24oc3ViZ3JvdXBzLCB0aGlzLl9wYXJlbnRzKTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbih1cGRhdGUpIHtcbiAgcmV0dXJuIG5ldyBBcnJheSh1cGRhdGUubGVuZ3RoKTtcbn1cbiIsICJpbXBvcnQgc3BhcnNlIGZyb20gXCIuL3NwYXJzZS5qc1wiO1xuaW1wb3J0IHtTZWxlY3Rpb259IGZyb20gXCIuL2luZGV4LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gbmV3IFNlbGVjdGlvbih0aGlzLl9lbnRlciB8fCB0aGlzLl9ncm91cHMubWFwKHNwYXJzZSksIHRoaXMuX3BhcmVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRW50ZXJOb2RlKHBhcmVudCwgZGF0dW0pIHtcbiAgdGhpcy5vd25lckRvY3VtZW50ID0gcGFyZW50Lm93bmVyRG9jdW1lbnQ7XG4gIHRoaXMubmFtZXNwYWNlVVJJID0gcGFyZW50Lm5hbWVzcGFjZVVSSTtcbiAgdGhpcy5fbmV4dCA9IG51bGw7XG4gIHRoaXMuX3BhcmVudCA9IHBhcmVudDtcbiAgdGhpcy5fX2RhdGFfXyA9IGRhdHVtO1xufVxuXG5FbnRlck5vZGUucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogRW50ZXJOb2RlLFxuICBhcHBlbmRDaGlsZDogZnVuY3Rpb24oY2hpbGQpIHsgcmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUoY2hpbGQsIHRoaXMuX25leHQpOyB9LFxuICBpbnNlcnRCZWZvcmU6IGZ1bmN0aW9uKGNoaWxkLCBuZXh0KSB7IHJldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKGNoaWxkLCBuZXh0KTsgfSxcbiAgcXVlcnlTZWxlY3RvcjogZnVuY3Rpb24oc2VsZWN0b3IpIHsgcmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTsgfSxcbiAgcXVlcnlTZWxlY3RvckFsbDogZnVuY3Rpb24oc2VsZWN0b3IpIHsgcmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTsgfVxufTtcbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbih4KSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4geDtcbiAgfTtcbn1cbiIsICJpbXBvcnQge1NlbGVjdGlvbn0gZnJvbSBcIi4vaW5kZXguanNcIjtcbmltcG9ydCB7RW50ZXJOb2RlfSBmcm9tIFwiLi9lbnRlci5qc1wiO1xuaW1wb3J0IGFycmF5IGZyb20gXCIuLi9hcnJheS5qc1wiO1xuaW1wb3J0IGNvbnN0YW50IGZyb20gXCIuLi9jb25zdGFudC5qc1wiO1xuXG5mdW5jdGlvbiBiaW5kSW5kZXgocGFyZW50LCBncm91cCwgZW50ZXIsIHVwZGF0ZSwgZXhpdCwgZGF0YSkge1xuICB2YXIgaSA9IDAsXG4gICAgICBub2RlLFxuICAgICAgZ3JvdXBMZW5ndGggPSBncm91cC5sZW5ndGgsXG4gICAgICBkYXRhTGVuZ3RoID0gZGF0YS5sZW5ndGg7XG5cbiAgLy8gUHV0IGFueSBub24tbnVsbCBub2RlcyB0aGF0IGZpdCBpbnRvIHVwZGF0ZS5cbiAgLy8gUHV0IGFueSBudWxsIG5vZGVzIGludG8gZW50ZXIuXG4gIC8vIFB1dCBhbnkgcmVtYWluaW5nIGRhdGEgaW50byBlbnRlci5cbiAgZm9yICg7IGkgPCBkYXRhTGVuZ3RoOyArK2kpIHtcbiAgICBpZiAobm9kZSA9IGdyb3VwW2ldKSB7XG4gICAgICBub2RlLl9fZGF0YV9fID0gZGF0YVtpXTtcbiAgICAgIHVwZGF0ZVtpXSA9IG5vZGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVudGVyW2ldID0gbmV3IEVudGVyTm9kZShwYXJlbnQsIGRhdGFbaV0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIFB1dCBhbnkgbm9uLW51bGwgbm9kZXMgdGhhdCBkb25cdTIwMTl0IGZpdCBpbnRvIGV4aXQuXG4gIGZvciAoOyBpIDwgZ3JvdXBMZW5ndGg7ICsraSkge1xuICAgIGlmIChub2RlID0gZ3JvdXBbaV0pIHtcbiAgICAgIGV4aXRbaV0gPSBub2RlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBiaW5kS2V5KHBhcmVudCwgZ3JvdXAsIGVudGVyLCB1cGRhdGUsIGV4aXQsIGRhdGEsIGtleSkge1xuICB2YXIgaSxcbiAgICAgIG5vZGUsXG4gICAgICBub2RlQnlLZXlWYWx1ZSA9IG5ldyBNYXAsXG4gICAgICBncm91cExlbmd0aCA9IGdyb3VwLmxlbmd0aCxcbiAgICAgIGRhdGFMZW5ndGggPSBkYXRhLmxlbmd0aCxcbiAgICAgIGtleVZhbHVlcyA9IG5ldyBBcnJheShncm91cExlbmd0aCksXG4gICAgICBrZXlWYWx1ZTtcblxuICAvLyBDb21wdXRlIHRoZSBrZXkgZm9yIGVhY2ggbm9kZS5cbiAgLy8gSWYgbXVsdGlwbGUgbm9kZXMgaGF2ZSB0aGUgc2FtZSBrZXksIHRoZSBkdXBsaWNhdGVzIGFyZSBhZGRlZCB0byBleGl0LlxuICBmb3IgKGkgPSAwOyBpIDwgZ3JvdXBMZW5ndGg7ICsraSkge1xuICAgIGlmIChub2RlID0gZ3JvdXBbaV0pIHtcbiAgICAgIGtleVZhbHVlc1tpXSA9IGtleVZhbHVlID0ga2V5LmNhbGwobm9kZSwgbm9kZS5fX2RhdGFfXywgaSwgZ3JvdXApICsgXCJcIjtcbiAgICAgIGlmIChub2RlQnlLZXlWYWx1ZS5oYXMoa2V5VmFsdWUpKSB7XG4gICAgICAgIGV4aXRbaV0gPSBub2RlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZUJ5S2V5VmFsdWUuc2V0KGtleVZhbHVlLCBub2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb21wdXRlIHRoZSBrZXkgZm9yIGVhY2ggZGF0dW0uXG4gIC8vIElmIHRoZXJlIGEgbm9kZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBrZXksIGpvaW4gYW5kIGFkZCBpdCB0byB1cGRhdGUuXG4gIC8vIElmIHRoZXJlIGlzIG5vdCAob3IgdGhlIGtleSBpcyBhIGR1cGxpY2F0ZSksIGFkZCBpdCB0byBlbnRlci5cbiAgZm9yIChpID0gMDsgaSA8IGRhdGFMZW5ndGg7ICsraSkge1xuICAgIGtleVZhbHVlID0ga2V5LmNhbGwocGFyZW50LCBkYXRhW2ldLCBpLCBkYXRhKSArIFwiXCI7XG4gICAgaWYgKG5vZGUgPSBub2RlQnlLZXlWYWx1ZS5nZXQoa2V5VmFsdWUpKSB7XG4gICAgICB1cGRhdGVbaV0gPSBub2RlO1xuICAgICAgbm9kZS5fX2RhdGFfXyA9IGRhdGFbaV07XG4gICAgICBub2RlQnlLZXlWYWx1ZS5kZWxldGUoa2V5VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbnRlcltpXSA9IG5ldyBFbnRlck5vZGUocGFyZW50LCBkYXRhW2ldKTtcbiAgICB9XG4gIH1cblxuICAvLyBBZGQgYW55IHJlbWFpbmluZyBub2RlcyB0aGF0IHdlcmUgbm90IGJvdW5kIHRvIGRhdGEgdG8gZXhpdC5cbiAgZm9yIChpID0gMDsgaSA8IGdyb3VwTGVuZ3RoOyArK2kpIHtcbiAgICBpZiAoKG5vZGUgPSBncm91cFtpXSkgJiYgKG5vZGVCeUtleVZhbHVlLmdldChrZXlWYWx1ZXNbaV0pID09PSBub2RlKSkge1xuICAgICAgZXhpdFtpXSA9IG5vZGU7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGRhdHVtKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUuX19kYXRhX187XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLCBkYXR1bSk7XG5cbiAgdmFyIGJpbmQgPSBrZXkgPyBiaW5kS2V5IDogYmluZEluZGV4LFxuICAgICAgcGFyZW50cyA9IHRoaXMuX3BhcmVudHMsXG4gICAgICBncm91cHMgPSB0aGlzLl9ncm91cHM7XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB2YWx1ZSA9IGNvbnN0YW50KHZhbHVlKTtcblxuICBmb3IgKHZhciBtID0gZ3JvdXBzLmxlbmd0aCwgdXBkYXRlID0gbmV3IEFycmF5KG0pLCBlbnRlciA9IG5ldyBBcnJheShtKSwgZXhpdCA9IG5ldyBBcnJheShtKSwgaiA9IDA7IGogPCBtOyArK2opIHtcbiAgICB2YXIgcGFyZW50ID0gcGFyZW50c1tqXSxcbiAgICAgICAgZ3JvdXAgPSBncm91cHNbal0sXG4gICAgICAgIGdyb3VwTGVuZ3RoID0gZ3JvdXAubGVuZ3RoLFxuICAgICAgICBkYXRhID0gYXJyYXkodmFsdWUuY2FsbChwYXJlbnQsIHBhcmVudCAmJiBwYXJlbnQuX19kYXRhX18sIGosIHBhcmVudHMpKSxcbiAgICAgICAgZGF0YUxlbmd0aCA9IGRhdGEubGVuZ3RoLFxuICAgICAgICBlbnRlckdyb3VwID0gZW50ZXJbal0gPSBuZXcgQXJyYXkoZGF0YUxlbmd0aCksXG4gICAgICAgIHVwZGF0ZUdyb3VwID0gdXBkYXRlW2pdID0gbmV3IEFycmF5KGRhdGFMZW5ndGgpLFxuICAgICAgICBleGl0R3JvdXAgPSBleGl0W2pdID0gbmV3IEFycmF5KGdyb3VwTGVuZ3RoKTtcblxuICAgIGJpbmQocGFyZW50LCBncm91cCwgZW50ZXJHcm91cCwgdXBkYXRlR3JvdXAsIGV4aXRHcm91cCwgZGF0YSwga2V5KTtcblxuICAgIC8vIE5vdyBjb25uZWN0IHRoZSBlbnRlciBub2RlcyB0byB0aGVpciBmb2xsb3dpbmcgdXBkYXRlIG5vZGUsIHN1Y2ggdGhhdFxuICAgIC8vIGFwcGVuZENoaWxkIGNhbiBpbnNlcnQgdGhlIG1hdGVyaWFsaXplZCBlbnRlciBub2RlIGJlZm9yZSB0aGlzIG5vZGUsXG4gICAgLy8gcmF0aGVyIHRoYW4gYXQgdGhlIGVuZCBvZiB0aGUgcGFyZW50IG5vZGUuXG4gICAgZm9yICh2YXIgaTAgPSAwLCBpMSA9IDAsIHByZXZpb3VzLCBuZXh0OyBpMCA8IGRhdGFMZW5ndGg7ICsraTApIHtcbiAgICAgIGlmIChwcmV2aW91cyA9IGVudGVyR3JvdXBbaTBdKSB7XG4gICAgICAgIGlmIChpMCA+PSBpMSkgaTEgPSBpMCArIDE7XG4gICAgICAgIHdoaWxlICghKG5leHQgPSB1cGRhdGVHcm91cFtpMV0pICYmICsraTEgPCBkYXRhTGVuZ3RoKTtcbiAgICAgICAgcHJldmlvdXMuX25leHQgPSBuZXh0IHx8IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlID0gbmV3IFNlbGVjdGlvbih1cGRhdGUsIHBhcmVudHMpO1xuICB1cGRhdGUuX2VudGVyID0gZW50ZXI7XG4gIHVwZGF0ZS5fZXhpdCA9IGV4aXQ7XG4gIHJldHVybiB1cGRhdGU7XG59XG4iLCAiaW1wb3J0IHNwYXJzZSBmcm9tIFwiLi9zcGFyc2UuanNcIjtcbmltcG9ydCB7U2VsZWN0aW9ufSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIG5ldyBTZWxlY3Rpb24odGhpcy5fZXhpdCB8fCB0aGlzLl9ncm91cHMubWFwKHNwYXJzZSksIHRoaXMuX3BhcmVudHMpO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG9uZW50ZXIsIG9udXBkYXRlLCBvbmV4aXQpIHtcbiAgdmFyIGVudGVyID0gdGhpcy5lbnRlcigpLCB1cGRhdGUgPSB0aGlzLCBleGl0ID0gdGhpcy5leGl0KCk7XG4gIGVudGVyID0gdHlwZW9mIG9uZW50ZXIgPT09IFwiZnVuY3Rpb25cIiA/IG9uZW50ZXIoZW50ZXIpIDogZW50ZXIuYXBwZW5kKG9uZW50ZXIgKyBcIlwiKTtcbiAgaWYgKG9udXBkYXRlICE9IG51bGwpIHVwZGF0ZSA9IG9udXBkYXRlKHVwZGF0ZSk7XG4gIGlmIChvbmV4aXQgPT0gbnVsbCkgZXhpdC5yZW1vdmUoKTsgZWxzZSBvbmV4aXQoZXhpdCk7XG4gIHJldHVybiBlbnRlciAmJiB1cGRhdGUgPyBlbnRlci5tZXJnZSh1cGRhdGUpLm9yZGVyKCkgOiB1cGRhdGU7XG59XG4iLCAiaW1wb3J0IHtTZWxlY3Rpb259IGZyb20gXCIuL2luZGV4LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHNlbGVjdGlvbikge1xuICBpZiAoIShzZWxlY3Rpb24gaW5zdGFuY2VvZiBTZWxlY3Rpb24pKSB0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIG1lcmdlXCIpO1xuXG4gIGZvciAodmFyIGdyb3VwczAgPSB0aGlzLl9ncm91cHMsIGdyb3VwczEgPSBzZWxlY3Rpb24uX2dyb3VwcywgbTAgPSBncm91cHMwLmxlbmd0aCwgbTEgPSBncm91cHMxLmxlbmd0aCwgbSA9IE1hdGgubWluKG0wLCBtMSksIG1lcmdlcyA9IG5ldyBBcnJheShtMCksIGogPSAwOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAwID0gZ3JvdXBzMFtqXSwgZ3JvdXAxID0gZ3JvdXBzMVtqXSwgbiA9IGdyb3VwMC5sZW5ndGgsIG1lcmdlID0gbWVyZ2VzW2pdID0gbmV3IEFycmF5KG4pLCBub2RlLCBpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgaWYgKG5vZGUgPSBncm91cDBbaV0gfHwgZ3JvdXAxW2ldKSB7XG4gICAgICAgIG1lcmdlW2ldID0gbm9kZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb3IgKDsgaiA8IG0wOyArK2opIHtcbiAgICBtZXJnZXNbal0gPSBncm91cHMwW2pdO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBTZWxlY3Rpb24obWVyZ2VzLCB0aGlzLl9wYXJlbnRzKTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcblxuICBmb3IgKHZhciBncm91cHMgPSB0aGlzLl9ncm91cHMsIGogPSAtMSwgbSA9IGdyb3Vwcy5sZW5ndGg7ICsraiA8IG07KSB7XG4gICAgZm9yICh2YXIgZ3JvdXAgPSBncm91cHNbal0sIGkgPSBncm91cC5sZW5ndGggLSAxLCBuZXh0ID0gZ3JvdXBbaV0sIG5vZGU7IC0taSA+PSAwOykge1xuICAgICAgaWYgKG5vZGUgPSBncm91cFtpXSkge1xuICAgICAgICBpZiAobmV4dCAmJiBub2RlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG5leHQpIF4gNCkgbmV4dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShub2RlLCBuZXh0KTtcbiAgICAgICAgbmV4dCA9IG5vZGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59XG4iLCAiaW1wb3J0IHtTZWxlY3Rpb259IGZyb20gXCIuL2luZGV4LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGNvbXBhcmUpIHtcbiAgaWYgKCFjb21wYXJlKSBjb21wYXJlID0gYXNjZW5kaW5nO1xuXG4gIGZ1bmN0aW9uIGNvbXBhcmVOb2RlKGEsIGIpIHtcbiAgICByZXR1cm4gYSAmJiBiID8gY29tcGFyZShhLl9fZGF0YV9fLCBiLl9fZGF0YV9fKSA6ICFhIC0gIWI7XG4gIH1cblxuICBmb3IgKHZhciBncm91cHMgPSB0aGlzLl9ncm91cHMsIG0gPSBncm91cHMubGVuZ3RoLCBzb3J0Z3JvdXBzID0gbmV3IEFycmF5KG0pLCBqID0gMDsgaiA8IG07ICsraikge1xuICAgIGZvciAodmFyIGdyb3VwID0gZ3JvdXBzW2pdLCBuID0gZ3JvdXAubGVuZ3RoLCBzb3J0Z3JvdXAgPSBzb3J0Z3JvdXBzW2pdID0gbmV3IEFycmF5KG4pLCBub2RlLCBpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgaWYgKG5vZGUgPSBncm91cFtpXSkge1xuICAgICAgICBzb3J0Z3JvdXBbaV0gPSBub2RlO1xuICAgICAgfVxuICAgIH1cbiAgICBzb3J0Z3JvdXAuc29ydChjb21wYXJlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gbmV3IFNlbGVjdGlvbihzb3J0Z3JvdXBzLCB0aGlzLl9wYXJlbnRzKS5vcmRlcigpO1xufVxuXG5mdW5jdGlvbiBhc2NlbmRpbmcoYSwgYikge1xuICByZXR1cm4gYSA8IGIgPyAtMSA6IGEgPiBiID8gMSA6IGEgPj0gYiA/IDAgOiBOYU47XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50c1swXTtcbiAgYXJndW1lbnRzWzBdID0gdGhpcztcbiAgY2FsbGJhY2suYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgcmV0dXJuIHRoaXM7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHJldHVybiBBcnJheS5mcm9tKHRoaXMpO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuXG4gIGZvciAodmFyIGdyb3VwcyA9IHRoaXMuX2dyb3VwcywgaiA9IDAsIG0gPSBncm91cHMubGVuZ3RoOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAgPSBncm91cHNbal0sIGkgPSAwLCBuID0gZ3JvdXAubGVuZ3RoOyBpIDwgbjsgKytpKSB7XG4gICAgICB2YXIgbm9kZSA9IGdyb3VwW2ldO1xuICAgICAgaWYgKG5vZGUpIHJldHVybiBub2RlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICBsZXQgc2l6ZSA9IDA7XG4gIGZvciAoY29uc3Qgbm9kZSBvZiB0aGlzKSArK3NpemU7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgcmV0dXJuIHNpemU7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHJldHVybiAhdGhpcy5ub2RlKCk7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oY2FsbGJhY2spIHtcblxuICBmb3IgKHZhciBncm91cHMgPSB0aGlzLl9ncm91cHMsIGogPSAwLCBtID0gZ3JvdXBzLmxlbmd0aDsgaiA8IG07ICsraikge1xuICAgIGZvciAodmFyIGdyb3VwID0gZ3JvdXBzW2pdLCBpID0gMCwgbiA9IGdyb3VwLmxlbmd0aCwgbm9kZTsgaSA8IG47ICsraSkge1xuICAgICAgaWYgKG5vZGUgPSBncm91cFtpXSkgY2FsbGJhY2suY2FsbChub2RlLCBub2RlLl9fZGF0YV9fLCBpLCBncm91cCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59XG4iLCAiaW1wb3J0IG5hbWVzcGFjZSBmcm9tIFwiLi4vbmFtZXNwYWNlLmpzXCI7XG5cbmZ1bmN0aW9uIGF0dHJSZW1vdmUobmFtZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGF0dHJSZW1vdmVOUyhmdWxsbmFtZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhmdWxsbmFtZS5zcGFjZSwgZnVsbG5hbWUubG9jYWwpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRyQ29uc3RhbnQobmFtZSwgdmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gYXR0ckNvbnN0YW50TlMoZnVsbG5hbWUsIHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZU5TKGZ1bGxuYW1lLnNwYWNlLCBmdWxsbmFtZS5sb2NhbCwgdmFsdWUpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRyRnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciB2ID0gdmFsdWUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICBpZiAodiA9PSBudWxsKSB0aGlzLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICBlbHNlIHRoaXMuc2V0QXR0cmlidXRlKG5hbWUsIHYpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRyRnVuY3Rpb25OUyhmdWxsbmFtZSwgdmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciB2ID0gdmFsdWUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICBpZiAodiA9PSBudWxsKSB0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKGZ1bGxuYW1lLnNwYWNlLCBmdWxsbmFtZS5sb2NhbCk7XG4gICAgZWxzZSB0aGlzLnNldEF0dHJpYnV0ZU5TKGZ1bGxuYW1lLnNwYWNlLCBmdWxsbmFtZS5sb2NhbCwgdik7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7XG4gIHZhciBmdWxsbmFtZSA9IG5hbWVzcGFjZShuYW1lKTtcblxuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDIpIHtcbiAgICB2YXIgbm9kZSA9IHRoaXMubm9kZSgpO1xuICAgIHJldHVybiBmdWxsbmFtZS5sb2NhbFxuICAgICAgICA/IG5vZGUuZ2V0QXR0cmlidXRlTlMoZnVsbG5hbWUuc3BhY2UsIGZ1bGxuYW1lLmxvY2FsKVxuICAgICAgICA6IG5vZGUuZ2V0QXR0cmlidXRlKGZ1bGxuYW1lKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzLmVhY2goKHZhbHVlID09IG51bGxcbiAgICAgID8gKGZ1bGxuYW1lLmxvY2FsID8gYXR0clJlbW92ZU5TIDogYXR0clJlbW92ZSkgOiAodHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgID8gKGZ1bGxuYW1lLmxvY2FsID8gYXR0ckZ1bmN0aW9uTlMgOiBhdHRyRnVuY3Rpb24pXG4gICAgICA6IChmdWxsbmFtZS5sb2NhbCA/IGF0dHJDb25zdGFudE5TIDogYXR0ckNvbnN0YW50KSkpKGZ1bGxuYW1lLCB2YWx1ZSkpO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5vZGUpIHtcbiAgcmV0dXJuIChub2RlLm93bmVyRG9jdW1lbnQgJiYgbm9kZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KSAvLyBub2RlIGlzIGEgTm9kZVxuICAgICAgfHwgKG5vZGUuZG9jdW1lbnQgJiYgbm9kZSkgLy8gbm9kZSBpcyBhIFdpbmRvd1xuICAgICAgfHwgbm9kZS5kZWZhdWx0VmlldzsgLy8gbm9kZSBpcyBhIERvY3VtZW50XG59XG4iLCAiaW1wb3J0IGRlZmF1bHRWaWV3IGZyb20gXCIuLi93aW5kb3cuanNcIjtcblxuZnVuY3Rpb24gc3R5bGVSZW1vdmUobmFtZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShuYW1lKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gc3R5bGVDb25zdGFudChuYW1lLCB2YWx1ZSwgcHJpb3JpdHkpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkobmFtZSwgdmFsdWUsIHByaW9yaXR5KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gc3R5bGVGdW5jdGlvbihuYW1lLCB2YWx1ZSwgcHJpb3JpdHkpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciB2ID0gdmFsdWUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICBpZiAodiA9PSBudWxsKSB0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KG5hbWUpO1xuICAgIGVsc2UgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eShuYW1lLCB2LCBwcmlvcml0eSk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5hbWUsIHZhbHVlLCBwcmlvcml0eSkge1xuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA+IDFcbiAgICAgID8gdGhpcy5lYWNoKCh2YWx1ZSA9PSBudWxsXG4gICAgICAgICAgICA/IHN0eWxlUmVtb3ZlIDogdHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgID8gc3R5bGVGdW5jdGlvblxuICAgICAgICAgICAgOiBzdHlsZUNvbnN0YW50KShuYW1lLCB2YWx1ZSwgcHJpb3JpdHkgPT0gbnVsbCA/IFwiXCIgOiBwcmlvcml0eSkpXG4gICAgICA6IHN0eWxlVmFsdWUodGhpcy5ub2RlKCksIG5hbWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3R5bGVWYWx1ZShub2RlLCBuYW1lKSB7XG4gIHJldHVybiBub2RlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUobmFtZSlcbiAgICAgIHx8IGRlZmF1bHRWaWV3KG5vZGUpLmdldENvbXB1dGVkU3R5bGUobm9kZSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKTtcbn1cbiIsICJmdW5jdGlvbiBwcm9wZXJ0eVJlbW92ZShuYW1lKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICBkZWxldGUgdGhpc1tuYW1lXTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gcHJvcGVydHlDb25zdGFudChuYW1lLCB2YWx1ZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpc1tuYW1lXSA9IHZhbHVlO1xuICB9O1xufVxuXG5mdW5jdGlvbiBwcm9wZXJ0eUZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgdiA9IHZhbHVlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgaWYgKHYgPT0gbnVsbCkgZGVsZXRlIHRoaXNbbmFtZV07XG4gICAgZWxzZSB0aGlzW25hbWVdID0gdjtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPiAxXG4gICAgICA/IHRoaXMuZWFjaCgodmFsdWUgPT0gbnVsbFxuICAgICAgICAgID8gcHJvcGVydHlSZW1vdmUgOiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgID8gcHJvcGVydHlGdW5jdGlvblxuICAgICAgICAgIDogcHJvcGVydHlDb25zdGFudCkobmFtZSwgdmFsdWUpKVxuICAgICAgOiB0aGlzLm5vZGUoKVtuYW1lXTtcbn1cbiIsICJmdW5jdGlvbiBjbGFzc0FycmF5KHN0cmluZykge1xuICByZXR1cm4gc3RyaW5nLnRyaW0oKS5zcGxpdCgvXnxcXHMrLyk7XG59XG5cbmZ1bmN0aW9uIGNsYXNzTGlzdChub2RlKSB7XG4gIHJldHVybiBub2RlLmNsYXNzTGlzdCB8fCBuZXcgQ2xhc3NMaXN0KG5vZGUpO1xufVxuXG5mdW5jdGlvbiBDbGFzc0xpc3Qobm9kZSkge1xuICB0aGlzLl9ub2RlID0gbm9kZTtcbiAgdGhpcy5fbmFtZXMgPSBjbGFzc0FycmF5KG5vZGUuZ2V0QXR0cmlidXRlKFwiY2xhc3NcIikgfHwgXCJcIik7XG59XG5cbkNsYXNzTGlzdC5wcm90b3R5cGUgPSB7XG4gIGFkZDogZnVuY3Rpb24obmFtZSkge1xuICAgIHZhciBpID0gdGhpcy5fbmFtZXMuaW5kZXhPZihuYW1lKTtcbiAgICBpZiAoaSA8IDApIHtcbiAgICAgIHRoaXMuX25hbWVzLnB1c2gobmFtZSk7XG4gICAgICB0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsIHRoaXMuX25hbWVzLmpvaW4oXCIgXCIpKTtcbiAgICB9XG4gIH0sXG4gIHJlbW92ZTogZnVuY3Rpb24obmFtZSkge1xuICAgIHZhciBpID0gdGhpcy5fbmFtZXMuaW5kZXhPZihuYW1lKTtcbiAgICBpZiAoaSA+PSAwKSB7XG4gICAgICB0aGlzLl9uYW1lcy5zcGxpY2UoaSwgMSk7XG4gICAgICB0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsIHRoaXMuX25hbWVzLmpvaW4oXCIgXCIpKTtcbiAgICB9XG4gIH0sXG4gIGNvbnRhaW5zOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX25hbWVzLmluZGV4T2YobmFtZSkgPj0gMDtcbiAgfVxufTtcblxuZnVuY3Rpb24gY2xhc3NlZEFkZChub2RlLCBuYW1lcykge1xuICB2YXIgbGlzdCA9IGNsYXNzTGlzdChub2RlKSwgaSA9IC0xLCBuID0gbmFtZXMubGVuZ3RoO1xuICB3aGlsZSAoKytpIDwgbikgbGlzdC5hZGQobmFtZXNbaV0pO1xufVxuXG5mdW5jdGlvbiBjbGFzc2VkUmVtb3ZlKG5vZGUsIG5hbWVzKSB7XG4gIHZhciBsaXN0ID0gY2xhc3NMaXN0KG5vZGUpLCBpID0gLTEsIG4gPSBuYW1lcy5sZW5ndGg7XG4gIHdoaWxlICgrK2kgPCBuKSBsaXN0LnJlbW92ZShuYW1lc1tpXSk7XG59XG5cbmZ1bmN0aW9uIGNsYXNzZWRUcnVlKG5hbWVzKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICBjbGFzc2VkQWRkKHRoaXMsIG5hbWVzKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gY2xhc3NlZEZhbHNlKG5hbWVzKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICBjbGFzc2VkUmVtb3ZlKHRoaXMsIG5hbWVzKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gY2xhc3NlZEZ1bmN0aW9uKG5hbWVzLCB2YWx1ZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgKHZhbHVlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgPyBjbGFzc2VkQWRkIDogY2xhc3NlZFJlbW92ZSkodGhpcywgbmFtZXMpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICB2YXIgbmFtZXMgPSBjbGFzc0FycmF5KG5hbWUgKyBcIlwiKTtcblxuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDIpIHtcbiAgICB2YXIgbGlzdCA9IGNsYXNzTGlzdCh0aGlzLm5vZGUoKSksIGkgPSAtMSwgbiA9IG5hbWVzLmxlbmd0aDtcbiAgICB3aGlsZSAoKytpIDwgbikgaWYgKCFsaXN0LmNvbnRhaW5zKG5hbWVzW2ldKSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuZWFjaCgodHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgID8gY2xhc3NlZEZ1bmN0aW9uIDogdmFsdWVcbiAgICAgID8gY2xhc3NlZFRydWVcbiAgICAgIDogY2xhc3NlZEZhbHNlKShuYW1lcywgdmFsdWUpKTtcbn1cbiIsICJmdW5jdGlvbiB0ZXh0UmVtb3ZlKCkge1xuICB0aGlzLnRleHRDb250ZW50ID0gXCJcIjtcbn1cblxuZnVuY3Rpb24gdGV4dENvbnN0YW50KHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLnRleHRDb250ZW50ID0gdmFsdWU7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHRleHRGdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHYgPSB2YWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIHRoaXMudGV4dENvbnRlbnQgPSB2ID09IG51bGwgPyBcIlwiIDogdjtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGhcbiAgICAgID8gdGhpcy5lYWNoKHZhbHVlID09IG51bGxcbiAgICAgICAgICA/IHRleHRSZW1vdmUgOiAodHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICA/IHRleHRGdW5jdGlvblxuICAgICAgICAgIDogdGV4dENvbnN0YW50KSh2YWx1ZSkpXG4gICAgICA6IHRoaXMubm9kZSgpLnRleHRDb250ZW50O1xufVxuIiwgImZ1bmN0aW9uIGh0bWxSZW1vdmUoKSB7XG4gIHRoaXMuaW5uZXJIVE1MID0gXCJcIjtcbn1cblxuZnVuY3Rpb24gaHRtbENvbnN0YW50KHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLmlubmVySFRNTCA9IHZhbHVlO1xuICB9O1xufVxuXG5mdW5jdGlvbiBodG1sRnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciB2ID0gdmFsdWUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB0aGlzLmlubmVySFRNTCA9IHYgPT0gbnVsbCA/IFwiXCIgOiB2O1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aFxuICAgICAgPyB0aGlzLmVhY2godmFsdWUgPT0gbnVsbFxuICAgICAgICAgID8gaHRtbFJlbW92ZSA6ICh0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgID8gaHRtbEZ1bmN0aW9uXG4gICAgICAgICAgOiBodG1sQ29uc3RhbnQpKHZhbHVlKSlcbiAgICAgIDogdGhpcy5ub2RlKCkuaW5uZXJIVE1MO1xufVxuIiwgImZ1bmN0aW9uIHJhaXNlKCkge1xuICBpZiAodGhpcy5uZXh0U2libGluZykgdGhpcy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRoaXMuZWFjaChyYWlzZSk7XG59XG4iLCAiZnVuY3Rpb24gbG93ZXIoKSB7XG4gIGlmICh0aGlzLnByZXZpb3VzU2libGluZykgdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLCB0aGlzLnBhcmVudE5vZGUuZmlyc3RDaGlsZCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy5lYWNoKGxvd2VyKTtcbn1cbiIsICJpbXBvcnQgY3JlYXRvciBmcm9tIFwiLi4vY3JlYXRvci5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihuYW1lKSB7XG4gIHZhciBjcmVhdGUgPSB0eXBlb2YgbmFtZSA9PT0gXCJmdW5jdGlvblwiID8gbmFtZSA6IGNyZWF0b3IobmFtZSk7XG4gIHJldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmRDaGlsZChjcmVhdGUuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gIH0pO1xufVxuIiwgImltcG9ydCBjcmVhdG9yIGZyb20gXCIuLi9jcmVhdG9yLmpzXCI7XG5pbXBvcnQgc2VsZWN0b3IgZnJvbSBcIi4uL3NlbGVjdG9yLmpzXCI7XG5cbmZ1bmN0aW9uIGNvbnN0YW50TnVsbCgpIHtcbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5hbWUsIGJlZm9yZSkge1xuICB2YXIgY3JlYXRlID0gdHlwZW9mIG5hbWUgPT09IFwiZnVuY3Rpb25cIiA/IG5hbWUgOiBjcmVhdG9yKG5hbWUpLFxuICAgICAgc2VsZWN0ID0gYmVmb3JlID09IG51bGwgPyBjb25zdGFudE51bGwgOiB0eXBlb2YgYmVmb3JlID09PSBcImZ1bmN0aW9uXCIgPyBiZWZvcmUgOiBzZWxlY3RvcihiZWZvcmUpO1xuICByZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5zZXJ0QmVmb3JlKGNyZWF0ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpLCBzZWxlY3QuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCBudWxsKTtcbiAgfSk7XG59XG4iLCAiZnVuY3Rpb24gcmVtb3ZlKCkge1xuICB2YXIgcGFyZW50ID0gdGhpcy5wYXJlbnROb2RlO1xuICBpZiAocGFyZW50KSBwYXJlbnQucmVtb3ZlQ2hpbGQodGhpcyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy5lYWNoKHJlbW92ZSk7XG59XG4iLCAiZnVuY3Rpb24gc2VsZWN0aW9uX2Nsb25lU2hhbGxvdygpIHtcbiAgdmFyIGNsb25lID0gdGhpcy5jbG9uZU5vZGUoZmFsc2UpLCBwYXJlbnQgPSB0aGlzLnBhcmVudE5vZGU7XG4gIHJldHVybiBwYXJlbnQgPyBwYXJlbnQuaW5zZXJ0QmVmb3JlKGNsb25lLCB0aGlzLm5leHRTaWJsaW5nKSA6IGNsb25lO1xufVxuXG5mdW5jdGlvbiBzZWxlY3Rpb25fY2xvbmVEZWVwKCkge1xuICB2YXIgY2xvbmUgPSB0aGlzLmNsb25lTm9kZSh0cnVlKSwgcGFyZW50ID0gdGhpcy5wYXJlbnROb2RlO1xuICByZXR1cm4gcGFyZW50ID8gcGFyZW50Lmluc2VydEJlZm9yZShjbG9uZSwgdGhpcy5uZXh0U2libGluZykgOiBjbG9uZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oZGVlcCkge1xuICByZXR1cm4gdGhpcy5zZWxlY3QoZGVlcCA/IHNlbGVjdGlvbl9jbG9uZURlZXAgOiBzZWxlY3Rpb25fY2xvbmVTaGFsbG93KTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aFxuICAgICAgPyB0aGlzLnByb3BlcnR5KFwiX19kYXRhX19cIiwgdmFsdWUpXG4gICAgICA6IHRoaXMubm9kZSgpLl9fZGF0YV9fO1xufVxuIiwgImZ1bmN0aW9uIGNvbnRleHRMaXN0ZW5lcihsaXN0ZW5lcikge1xuICByZXR1cm4gZnVuY3Rpb24oZXZlbnQpIHtcbiAgICBsaXN0ZW5lci5jYWxsKHRoaXMsIGV2ZW50LCB0aGlzLl9fZGF0YV9fKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gcGFyc2VUeXBlbmFtZXModHlwZW5hbWVzKSB7XG4gIHJldHVybiB0eXBlbmFtZXMudHJpbSgpLnNwbGl0KC9efFxccysvKS5tYXAoZnVuY3Rpb24odCkge1xuICAgIHZhciBuYW1lID0gXCJcIiwgaSA9IHQuaW5kZXhPZihcIi5cIik7XG4gICAgaWYgKGkgPj0gMCkgbmFtZSA9IHQuc2xpY2UoaSArIDEpLCB0ID0gdC5zbGljZSgwLCBpKTtcbiAgICByZXR1cm4ge3R5cGU6IHQsIG5hbWU6IG5hbWV9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gb25SZW1vdmUodHlwZW5hbWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBvbiA9IHRoaXMuX19vbjtcbiAgICBpZiAoIW9uKSByZXR1cm47XG4gICAgZm9yICh2YXIgaiA9IDAsIGkgPSAtMSwgbSA9IG9uLmxlbmd0aCwgbzsgaiA8IG07ICsraikge1xuICAgICAgaWYgKG8gPSBvbltqXSwgKCF0eXBlbmFtZS50eXBlIHx8IG8udHlwZSA9PT0gdHlwZW5hbWUudHlwZSkgJiYgby5uYW1lID09PSB0eXBlbmFtZS5uYW1lKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihvLnR5cGUsIG8ubGlzdGVuZXIsIG8ub3B0aW9ucyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvblsrK2ldID0gbztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCsraSkgb24ubGVuZ3RoID0gaTtcbiAgICBlbHNlIGRlbGV0ZSB0aGlzLl9fb247XG4gIH07XG59XG5cbmZ1bmN0aW9uIG9uQWRkKHR5cGVuYW1lLCB2YWx1ZSwgb3B0aW9ucykge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIG9uID0gdGhpcy5fX29uLCBvLCBsaXN0ZW5lciA9IGNvbnRleHRMaXN0ZW5lcih2YWx1ZSk7XG4gICAgaWYgKG9uKSBmb3IgKHZhciBqID0gMCwgbSA9IG9uLmxlbmd0aDsgaiA8IG07ICsraikge1xuICAgICAgaWYgKChvID0gb25bal0pLnR5cGUgPT09IHR5cGVuYW1lLnR5cGUgJiYgby5uYW1lID09PSB0eXBlbmFtZS5uYW1lKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihvLnR5cGUsIG8ubGlzdGVuZXIsIG8ub3B0aW9ucyk7XG4gICAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihvLnR5cGUsIG8ubGlzdGVuZXIgPSBsaXN0ZW5lciwgby5vcHRpb25zID0gb3B0aW9ucyk7XG4gICAgICAgIG8udmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIodHlwZW5hbWUudHlwZSwgbGlzdGVuZXIsIG9wdGlvbnMpO1xuICAgIG8gPSB7dHlwZTogdHlwZW5hbWUudHlwZSwgbmFtZTogdHlwZW5hbWUubmFtZSwgdmFsdWU6IHZhbHVlLCBsaXN0ZW5lcjogbGlzdGVuZXIsIG9wdGlvbnM6IG9wdGlvbnN9O1xuICAgIGlmICghb24pIHRoaXMuX19vbiA9IFtvXTtcbiAgICBlbHNlIG9uLnB1c2gobyk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHR5cGVuYW1lLCB2YWx1ZSwgb3B0aW9ucykge1xuICB2YXIgdHlwZW5hbWVzID0gcGFyc2VUeXBlbmFtZXModHlwZW5hbWUgKyBcIlwiKSwgaSwgbiA9IHR5cGVuYW1lcy5sZW5ndGgsIHQ7XG5cbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAyKSB7XG4gICAgdmFyIG9uID0gdGhpcy5ub2RlKCkuX19vbjtcbiAgICBpZiAob24pIGZvciAodmFyIGogPSAwLCBtID0gb24ubGVuZ3RoLCBvOyBqIDwgbTsgKytqKSB7XG4gICAgICBmb3IgKGkgPSAwLCBvID0gb25bal07IGkgPCBuOyArK2kpIHtcbiAgICAgICAgaWYgKCh0ID0gdHlwZW5hbWVzW2ldKS50eXBlID09PSBvLnR5cGUgJiYgdC5uYW1lID09PSBvLm5hbWUpIHtcbiAgICAgICAgICByZXR1cm4gby52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBvbiA9IHZhbHVlID8gb25BZGQgOiBvblJlbW92ZTtcbiAgZm9yIChpID0gMDsgaSA8IG47ICsraSkgdGhpcy5lYWNoKG9uKHR5cGVuYW1lc1tpXSwgdmFsdWUsIG9wdGlvbnMpKTtcbiAgcmV0dXJuIHRoaXM7XG59XG4iLCAiaW1wb3J0IGRlZmF1bHRWaWV3IGZyb20gXCIuLi93aW5kb3cuanNcIjtcblxuZnVuY3Rpb24gZGlzcGF0Y2hFdmVudChub2RlLCB0eXBlLCBwYXJhbXMpIHtcbiAgdmFyIHdpbmRvdyA9IGRlZmF1bHRWaWV3KG5vZGUpLFxuICAgICAgZXZlbnQgPSB3aW5kb3cuQ3VzdG9tRXZlbnQ7XG5cbiAgaWYgKHR5cGVvZiBldmVudCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgZXZlbnQgPSBuZXcgZXZlbnQodHlwZSwgcGFyYW1zKTtcbiAgfSBlbHNlIHtcbiAgICBldmVudCA9IHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFdmVudChcIkV2ZW50XCIpO1xuICAgIGlmIChwYXJhbXMpIGV2ZW50LmluaXRFdmVudCh0eXBlLCBwYXJhbXMuYnViYmxlcywgcGFyYW1zLmNhbmNlbGFibGUpLCBldmVudC5kZXRhaWwgPSBwYXJhbXMuZGV0YWlsO1xuICAgIGVsc2UgZXZlbnQuaW5pdEV2ZW50KHR5cGUsIGZhbHNlLCBmYWxzZSk7XG4gIH1cblxuICBub2RlLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xufVxuXG5mdW5jdGlvbiBkaXNwYXRjaENvbnN0YW50KHR5cGUsIHBhcmFtcykge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRpc3BhdGNoRXZlbnQodGhpcywgdHlwZSwgcGFyYW1zKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hGdW5jdGlvbih0eXBlLCBwYXJhbXMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkaXNwYXRjaEV2ZW50KHRoaXMsIHR5cGUsIHBhcmFtcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odHlwZSwgcGFyYW1zKSB7XG4gIHJldHVybiB0aGlzLmVhY2goKHR5cGVvZiBwYXJhbXMgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgPyBkaXNwYXRjaEZ1bmN0aW9uXG4gICAgICA6IGRpc3BhdGNoQ29uc3RhbnQpKHR5cGUsIHBhcmFtcykpO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKigpIHtcbiAgZm9yICh2YXIgZ3JvdXBzID0gdGhpcy5fZ3JvdXBzLCBqID0gMCwgbSA9IGdyb3Vwcy5sZW5ndGg7IGogPCBtOyArK2opIHtcbiAgICBmb3IgKHZhciBncm91cCA9IGdyb3Vwc1tqXSwgaSA9IDAsIG4gPSBncm91cC5sZW5ndGgsIG5vZGU7IGkgPCBuOyArK2kpIHtcbiAgICAgIGlmIChub2RlID0gZ3JvdXBbaV0pIHlpZWxkIG5vZGU7XG4gICAgfVxuICB9XG59XG4iLCAiaW1wb3J0IHNlbGVjdGlvbl9zZWxlY3QgZnJvbSBcIi4vc2VsZWN0LmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX3NlbGVjdEFsbCBmcm9tIFwiLi9zZWxlY3RBbGwuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fc2VsZWN0Q2hpbGQgZnJvbSBcIi4vc2VsZWN0Q2hpbGQuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fc2VsZWN0Q2hpbGRyZW4gZnJvbSBcIi4vc2VsZWN0Q2hpbGRyZW4uanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fZmlsdGVyIGZyb20gXCIuL2ZpbHRlci5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9kYXRhIGZyb20gXCIuL2RhdGEuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fZW50ZXIgZnJvbSBcIi4vZW50ZXIuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fZXhpdCBmcm9tIFwiLi9leGl0LmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2pvaW4gZnJvbSBcIi4vam9pbi5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9tZXJnZSBmcm9tIFwiLi9tZXJnZS5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9vcmRlciBmcm9tIFwiLi9vcmRlci5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9zb3J0IGZyb20gXCIuL3NvcnQuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fY2FsbCBmcm9tIFwiLi9jYWxsLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX25vZGVzIGZyb20gXCIuL25vZGVzLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX25vZGUgZnJvbSBcIi4vbm9kZS5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9zaXplIGZyb20gXCIuL3NpemUuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fZW1wdHkgZnJvbSBcIi4vZW1wdHkuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fZWFjaCBmcm9tIFwiLi9lYWNoLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2F0dHIgZnJvbSBcIi4vYXR0ci5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9zdHlsZSBmcm9tIFwiLi9zdHlsZS5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9wcm9wZXJ0eSBmcm9tIFwiLi9wcm9wZXJ0eS5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9jbGFzc2VkIGZyb20gXCIuL2NsYXNzZWQuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fdGV4dCBmcm9tIFwiLi90ZXh0LmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2h0bWwgZnJvbSBcIi4vaHRtbC5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9yYWlzZSBmcm9tIFwiLi9yYWlzZS5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9sb3dlciBmcm9tIFwiLi9sb3dlci5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9hcHBlbmQgZnJvbSBcIi4vYXBwZW5kLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2luc2VydCBmcm9tIFwiLi9pbnNlcnQuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fcmVtb3ZlIGZyb20gXCIuL3JlbW92ZS5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9jbG9uZSBmcm9tIFwiLi9jbG9uZS5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9kYXR1bSBmcm9tIFwiLi9kYXR1bS5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9vbiBmcm9tIFwiLi9vbi5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9kaXNwYXRjaCBmcm9tIFwiLi9kaXNwYXRjaC5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9pdGVyYXRvciBmcm9tIFwiLi9pdGVyYXRvci5qc1wiO1xuXG5leHBvcnQgdmFyIHJvb3QgPSBbbnVsbF07XG5cbmV4cG9ydCBmdW5jdGlvbiBTZWxlY3Rpb24oZ3JvdXBzLCBwYXJlbnRzKSB7XG4gIHRoaXMuX2dyb3VwcyA9IGdyb3VwcztcbiAgdGhpcy5fcGFyZW50cyA9IHBhcmVudHM7XG59XG5cbmZ1bmN0aW9uIHNlbGVjdGlvbigpIHtcbiAgcmV0dXJuIG5ldyBTZWxlY3Rpb24oW1tkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdXSwgcm9vdCk7XG59XG5cbmZ1bmN0aW9uIHNlbGVjdGlvbl9zZWxlY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzO1xufVxuXG5TZWxlY3Rpb24ucHJvdG90eXBlID0gc2VsZWN0aW9uLnByb3RvdHlwZSA9IHtcbiAgY29uc3RydWN0b3I6IFNlbGVjdGlvbixcbiAgc2VsZWN0OiBzZWxlY3Rpb25fc2VsZWN0LFxuICBzZWxlY3RBbGw6IHNlbGVjdGlvbl9zZWxlY3RBbGwsXG4gIHNlbGVjdENoaWxkOiBzZWxlY3Rpb25fc2VsZWN0Q2hpbGQsXG4gIHNlbGVjdENoaWxkcmVuOiBzZWxlY3Rpb25fc2VsZWN0Q2hpbGRyZW4sXG4gIGZpbHRlcjogc2VsZWN0aW9uX2ZpbHRlcixcbiAgZGF0YTogc2VsZWN0aW9uX2RhdGEsXG4gIGVudGVyOiBzZWxlY3Rpb25fZW50ZXIsXG4gIGV4aXQ6IHNlbGVjdGlvbl9leGl0LFxuICBqb2luOiBzZWxlY3Rpb25fam9pbixcbiAgbWVyZ2U6IHNlbGVjdGlvbl9tZXJnZSxcbiAgc2VsZWN0aW9uOiBzZWxlY3Rpb25fc2VsZWN0aW9uLFxuICBvcmRlcjogc2VsZWN0aW9uX29yZGVyLFxuICBzb3J0OiBzZWxlY3Rpb25fc29ydCxcbiAgY2FsbDogc2VsZWN0aW9uX2NhbGwsXG4gIG5vZGVzOiBzZWxlY3Rpb25fbm9kZXMsXG4gIG5vZGU6IHNlbGVjdGlvbl9ub2RlLFxuICBzaXplOiBzZWxlY3Rpb25fc2l6ZSxcbiAgZW1wdHk6IHNlbGVjdGlvbl9lbXB0eSxcbiAgZWFjaDogc2VsZWN0aW9uX2VhY2gsXG4gIGF0dHI6IHNlbGVjdGlvbl9hdHRyLFxuICBzdHlsZTogc2VsZWN0aW9uX3N0eWxlLFxuICBwcm9wZXJ0eTogc2VsZWN0aW9uX3Byb3BlcnR5LFxuICBjbGFzc2VkOiBzZWxlY3Rpb25fY2xhc3NlZCxcbiAgdGV4dDogc2VsZWN0aW9uX3RleHQsXG4gIGh0bWw6IHNlbGVjdGlvbl9odG1sLFxuICByYWlzZTogc2VsZWN0aW9uX3JhaXNlLFxuICBsb3dlcjogc2VsZWN0aW9uX2xvd2VyLFxuICBhcHBlbmQ6IHNlbGVjdGlvbl9hcHBlbmQsXG4gIGluc2VydDogc2VsZWN0aW9uX2luc2VydCxcbiAgcmVtb3ZlOiBzZWxlY3Rpb25fcmVtb3ZlLFxuICBjbG9uZTogc2VsZWN0aW9uX2Nsb25lLFxuICBkYXR1bTogc2VsZWN0aW9uX2RhdHVtLFxuICBvbjogc2VsZWN0aW9uX29uLFxuICBkaXNwYXRjaDogc2VsZWN0aW9uX2Rpc3BhdGNoLFxuICBbU3ltYm9sLml0ZXJhdG9yXTogc2VsZWN0aW9uX2l0ZXJhdG9yXG59O1xuXG5leHBvcnQgZGVmYXVsdCBzZWxlY3Rpb247XG4iLCAiaW1wb3J0IHtTZWxlY3Rpb24sIHJvb3R9IGZyb20gXCIuL3NlbGVjdGlvbi9pbmRleC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzZWxlY3Rvcikge1xuICByZXR1cm4gdHlwZW9mIHNlbGVjdG9yID09PSBcInN0cmluZ1wiXG4gICAgICA/IG5ldyBTZWxlY3Rpb24oW1tkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKV1dLCBbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSlcbiAgICAgIDogbmV3IFNlbGVjdGlvbihbW3NlbGVjdG9yXV0sIHJvb3QpO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGV2ZW50KSB7XG4gIGxldCBzb3VyY2VFdmVudDtcbiAgd2hpbGUgKHNvdXJjZUV2ZW50ID0gZXZlbnQuc291cmNlRXZlbnQpIGV2ZW50ID0gc291cmNlRXZlbnQ7XG4gIHJldHVybiBldmVudDtcbn1cbiIsICJpbXBvcnQgc291cmNlRXZlbnQgZnJvbSBcIi4vc291cmNlRXZlbnQuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oZXZlbnQsIG5vZGUpIHtcbiAgZXZlbnQgPSBzb3VyY2VFdmVudChldmVudCk7XG4gIGlmIChub2RlID09PSB1bmRlZmluZWQpIG5vZGUgPSBldmVudC5jdXJyZW50VGFyZ2V0O1xuICBpZiAobm9kZSkge1xuICAgIHZhciBzdmcgPSBub2RlLm93bmVyU1ZHRWxlbWVudCB8fCBub2RlO1xuICAgIGlmIChzdmcuY3JlYXRlU1ZHUG9pbnQpIHtcbiAgICAgIHZhciBwb2ludCA9IHN2Zy5jcmVhdGVTVkdQb2ludCgpO1xuICAgICAgcG9pbnQueCA9IGV2ZW50LmNsaWVudFgsIHBvaW50LnkgPSBldmVudC5jbGllbnRZO1xuICAgICAgcG9pbnQgPSBwb2ludC5tYXRyaXhUcmFuc2Zvcm0obm9kZS5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCkpO1xuICAgICAgcmV0dXJuIFtwb2ludC54LCBwb2ludC55XTtcbiAgICB9XG4gICAgaWYgKG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSB7XG4gICAgICB2YXIgcmVjdCA9IG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICByZXR1cm4gW2V2ZW50LmNsaWVudFggLSByZWN0LmxlZnQgLSBub2RlLmNsaWVudExlZnQsIGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcCAtIG5vZGUuY2xpZW50VG9wXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFtldmVudC5wYWdlWCwgZXZlbnQucGFnZVldO1xufVxuIiwgImV4cG9ydCBmdW5jdGlvbiBub3Byb3BhZ2F0aW9uKGV2ZW50KSB7XG4gIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihldmVudCkge1xuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbn1cbiIsICJpbXBvcnQge3NlbGVjdH0gZnJvbSBcImQzLXNlbGVjdGlvblwiO1xuaW1wb3J0IG5vZXZlbnQgZnJvbSBcIi4vbm9ldmVudC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih2aWV3KSB7XG4gIHZhciByb290ID0gdmlldy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsXG4gICAgICBzZWxlY3Rpb24gPSBzZWxlY3Qodmlldykub24oXCJkcmFnc3RhcnQuZHJhZ1wiLCBub2V2ZW50LCB0cnVlKTtcbiAgaWYgKFwib25zZWxlY3RzdGFydFwiIGluIHJvb3QpIHtcbiAgICBzZWxlY3Rpb24ub24oXCJzZWxlY3RzdGFydC5kcmFnXCIsIG5vZXZlbnQsIHRydWUpO1xuICB9IGVsc2Uge1xuICAgIHJvb3QuX19ub3NlbGVjdCA9IHJvb3Quc3R5bGUuTW96VXNlclNlbGVjdDtcbiAgICByb290LnN0eWxlLk1velVzZXJTZWxlY3QgPSBcIm5vbmVcIjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24geWVzZHJhZyh2aWV3LCBub2NsaWNrKSB7XG4gIHZhciByb290ID0gdmlldy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsXG4gICAgICBzZWxlY3Rpb24gPSBzZWxlY3Qodmlldykub24oXCJkcmFnc3RhcnQuZHJhZ1wiLCBudWxsKTtcbiAgaWYgKG5vY2xpY2spIHtcbiAgICBzZWxlY3Rpb24ub24oXCJjbGljay5kcmFnXCIsIG5vZXZlbnQsIHRydWUpO1xuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHNlbGVjdGlvbi5vbihcImNsaWNrLmRyYWdcIiwgbnVsbCk7IH0sIDApO1xuICB9XG4gIGlmIChcIm9uc2VsZWN0c3RhcnRcIiBpbiByb290KSB7XG4gICAgc2VsZWN0aW9uLm9uKFwic2VsZWN0c3RhcnQuZHJhZ1wiLCBudWxsKTtcbiAgfSBlbHNlIHtcbiAgICByb290LnN0eWxlLk1velVzZXJTZWxlY3QgPSByb290Ll9fbm9zZWxlY3Q7XG4gICAgZGVsZXRlIHJvb3QuX19ub3NlbGVjdDtcbiAgfVxufVxuIiwgImV4cG9ydCBkZWZhdWx0IHggPT4gKCkgPT4geDtcbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEcmFnRXZlbnQodHlwZSwge1xuICBzb3VyY2VFdmVudCxcbiAgc3ViamVjdCxcbiAgdGFyZ2V0LFxuICBpZGVudGlmaWVyLFxuICBhY3RpdmUsXG4gIHgsIHksIGR4LCBkeSxcbiAgZGlzcGF0Y2hcbn0pIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGhpcywge1xuICAgIHR5cGU6IHt2YWx1ZTogdHlwZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlfSxcbiAgICBzb3VyY2VFdmVudDoge3ZhbHVlOiBzb3VyY2VFdmVudCwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlfSxcbiAgICBzdWJqZWN0OiB7dmFsdWU6IHN1YmplY3QsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0sXG4gICAgdGFyZ2V0OiB7dmFsdWU6IHRhcmdldCwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlfSxcbiAgICBpZGVudGlmaWVyOiB7dmFsdWU6IGlkZW50aWZpZXIsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0sXG4gICAgYWN0aXZlOiB7dmFsdWU6IGFjdGl2ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlfSxcbiAgICB4OiB7dmFsdWU6IHgsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0sXG4gICAgeToge3ZhbHVlOiB5LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9LFxuICAgIGR4OiB7dmFsdWU6IGR4LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9LFxuICAgIGR5OiB7dmFsdWU6IGR5LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9LFxuICAgIF86IHt2YWx1ZTogZGlzcGF0Y2h9XG4gIH0pO1xufVxuXG5EcmFnRXZlbnQucHJvdG90eXBlLm9uID0gZnVuY3Rpb24oKSB7XG4gIHZhciB2YWx1ZSA9IHRoaXMuXy5vbi5hcHBseSh0aGlzLl8sIGFyZ3VtZW50cyk7XG4gIHJldHVybiB2YWx1ZSA9PT0gdGhpcy5fID8gdGhpcyA6IHZhbHVlO1xufTtcbiIsICJpbXBvcnQge2Rpc3BhdGNofSBmcm9tIFwiZDMtZGlzcGF0Y2hcIjtcbmltcG9ydCB7c2VsZWN0LCBwb2ludGVyfSBmcm9tIFwiZDMtc2VsZWN0aW9uXCI7XG5pbXBvcnQgbm9kcmFnLCB7eWVzZHJhZ30gZnJvbSBcIi4vbm9kcmFnLmpzXCI7XG5pbXBvcnQgbm9ldmVudCwge25vcHJvcGFnYXRpb259IGZyb20gXCIuL25vZXZlbnQuanNcIjtcbmltcG9ydCBjb25zdGFudCBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuaW1wb3J0IERyYWdFdmVudCBmcm9tIFwiLi9ldmVudC5qc1wiO1xuXG4vLyBJZ25vcmUgcmlnaHQtY2xpY2ssIHNpbmNlIHRoYXQgc2hvdWxkIG9wZW4gdGhlIGNvbnRleHQgbWVudS5cbmZ1bmN0aW9uIGRlZmF1bHRGaWx0ZXIoZXZlbnQpIHtcbiAgcmV0dXJuICFldmVudC5jdHJsS2V5ICYmICFldmVudC5idXR0b247XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRDb250YWluZXIoKSB7XG4gIHJldHVybiB0aGlzLnBhcmVudE5vZGU7XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRTdWJqZWN0KGV2ZW50LCBkKSB7XG4gIHJldHVybiBkID09IG51bGwgPyB7eDogZXZlbnQueCwgeTogZXZlbnQueX0gOiBkO1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0VG91Y2hhYmxlKCkge1xuICByZXR1cm4gbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzIHx8IChcIm9udG91Y2hzdGFydFwiIGluIHRoaXMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgdmFyIGZpbHRlciA9IGRlZmF1bHRGaWx0ZXIsXG4gICAgICBjb250YWluZXIgPSBkZWZhdWx0Q29udGFpbmVyLFxuICAgICAgc3ViamVjdCA9IGRlZmF1bHRTdWJqZWN0LFxuICAgICAgdG91Y2hhYmxlID0gZGVmYXVsdFRvdWNoYWJsZSxcbiAgICAgIGdlc3R1cmVzID0ge30sXG4gICAgICBsaXN0ZW5lcnMgPSBkaXNwYXRjaChcInN0YXJ0XCIsIFwiZHJhZ1wiLCBcImVuZFwiKSxcbiAgICAgIGFjdGl2ZSA9IDAsXG4gICAgICBtb3VzZWRvd254LFxuICAgICAgbW91c2Vkb3dueSxcbiAgICAgIG1vdXNlbW92aW5nLFxuICAgICAgdG91Y2hlbmRpbmcsXG4gICAgICBjbGlja0Rpc3RhbmNlMiA9IDA7XG5cbiAgZnVuY3Rpb24gZHJhZyhzZWxlY3Rpb24pIHtcbiAgICBzZWxlY3Rpb25cbiAgICAgICAgLm9uKFwibW91c2Vkb3duLmRyYWdcIiwgbW91c2Vkb3duZWQpXG4gICAgICAuZmlsdGVyKHRvdWNoYWJsZSlcbiAgICAgICAgLm9uKFwidG91Y2hzdGFydC5kcmFnXCIsIHRvdWNoc3RhcnRlZClcbiAgICAgICAgLm9uKFwidG91Y2htb3ZlLmRyYWdcIiwgdG91Y2htb3ZlZClcbiAgICAgICAgLm9uKFwidG91Y2hlbmQuZHJhZyB0b3VjaGNhbmNlbC5kcmFnXCIsIHRvdWNoZW5kZWQpXG4gICAgICAgIC5zdHlsZShcInRvdWNoLWFjdGlvblwiLCBcIm5vbmVcIilcbiAgICAgICAgLnN0eWxlKFwiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yXCIsIFwicmdiYSgwLDAsMCwwKVwiKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG1vdXNlZG93bmVkKGV2ZW50LCBkKSB7XG4gICAgaWYgKHRvdWNoZW5kaW5nIHx8ICFmaWx0ZXIuY2FsbCh0aGlzLCBldmVudCwgZCkpIHJldHVybjtcbiAgICB2YXIgZ2VzdHVyZSA9IGJlZm9yZXN0YXJ0KHRoaXMsIGNvbnRhaW5lci5jYWxsKHRoaXMsIGV2ZW50LCBkKSwgZXZlbnQsIGQsIFwibW91c2VcIik7XG4gICAgaWYgKCFnZXN0dXJlKSByZXR1cm47XG4gICAgc2VsZWN0KGV2ZW50LnZpZXcpLm9uKFwibW91c2Vtb3ZlLmRyYWdcIiwgbW91c2Vtb3ZlZCwgdHJ1ZSkub24oXCJtb3VzZXVwLmRyYWdcIiwgbW91c2V1cHBlZCwgdHJ1ZSk7XG4gICAgbm9kcmFnKGV2ZW50LnZpZXcpO1xuICAgIG5vcHJvcGFnYXRpb24oZXZlbnQpO1xuICAgIG1vdXNlbW92aW5nID0gZmFsc2U7XG4gICAgbW91c2Vkb3dueCA9IGV2ZW50LmNsaWVudFg7XG4gICAgbW91c2Vkb3dueSA9IGV2ZW50LmNsaWVudFk7XG4gICAgZ2VzdHVyZShcInN0YXJ0XCIsIGV2ZW50KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG1vdXNlbW92ZWQoZXZlbnQpIHtcbiAgICBub2V2ZW50KGV2ZW50KTtcbiAgICBpZiAoIW1vdXNlbW92aW5nKSB7XG4gICAgICB2YXIgZHggPSBldmVudC5jbGllbnRYIC0gbW91c2Vkb3dueCwgZHkgPSBldmVudC5jbGllbnRZIC0gbW91c2Vkb3dueTtcbiAgICAgIG1vdXNlbW92aW5nID0gZHggKiBkeCArIGR5ICogZHkgPiBjbGlja0Rpc3RhbmNlMjtcbiAgICB9XG4gICAgZ2VzdHVyZXMubW91c2UoXCJkcmFnXCIsIGV2ZW50KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG1vdXNldXBwZWQoZXZlbnQpIHtcbiAgICBzZWxlY3QoZXZlbnQudmlldykub24oXCJtb3VzZW1vdmUuZHJhZyBtb3VzZXVwLmRyYWdcIiwgbnVsbCk7XG4gICAgeWVzZHJhZyhldmVudC52aWV3LCBtb3VzZW1vdmluZyk7XG4gICAgbm9ldmVudChldmVudCk7XG4gICAgZ2VzdHVyZXMubW91c2UoXCJlbmRcIiwgZXZlbnQpO1xuICB9XG5cbiAgZnVuY3Rpb24gdG91Y2hzdGFydGVkKGV2ZW50LCBkKSB7XG4gICAgaWYgKCFmaWx0ZXIuY2FsbCh0aGlzLCBldmVudCwgZCkpIHJldHVybjtcbiAgICB2YXIgdG91Y2hlcyA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzLFxuICAgICAgICBjID0gY29udGFpbmVyLmNhbGwodGhpcywgZXZlbnQsIGQpLFxuICAgICAgICBuID0gdG91Y2hlcy5sZW5ndGgsIGksIGdlc3R1cmU7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAoZ2VzdHVyZSA9IGJlZm9yZXN0YXJ0KHRoaXMsIGMsIGV2ZW50LCBkLCB0b3VjaGVzW2ldLmlkZW50aWZpZXIsIHRvdWNoZXNbaV0pKSB7XG4gICAgICAgIG5vcHJvcGFnYXRpb24oZXZlbnQpO1xuICAgICAgICBnZXN0dXJlKFwic3RhcnRcIiwgZXZlbnQsIHRvdWNoZXNbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHRvdWNobW92ZWQoZXZlbnQpIHtcbiAgICB2YXIgdG91Y2hlcyA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzLFxuICAgICAgICBuID0gdG91Y2hlcy5sZW5ndGgsIGksIGdlc3R1cmU7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAoZ2VzdHVyZSA9IGdlc3R1cmVzW3RvdWNoZXNbaV0uaWRlbnRpZmllcl0pIHtcbiAgICAgICAgbm9ldmVudChldmVudCk7XG4gICAgICAgIGdlc3R1cmUoXCJkcmFnXCIsIGV2ZW50LCB0b3VjaGVzW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiB0b3VjaGVuZGVkKGV2ZW50KSB7XG4gICAgdmFyIHRvdWNoZXMgPSBldmVudC5jaGFuZ2VkVG91Y2hlcyxcbiAgICAgICAgbiA9IHRvdWNoZXMubGVuZ3RoLCBpLCBnZXN0dXJlO1xuXG4gICAgaWYgKHRvdWNoZW5kaW5nKSBjbGVhclRpbWVvdXQodG91Y2hlbmRpbmcpO1xuICAgIHRvdWNoZW5kaW5nID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsgdG91Y2hlbmRpbmcgPSBudWxsOyB9LCA1MDApOyAvLyBHaG9zdCBjbGlja3MgYXJlIGRlbGF5ZWQhXG4gICAgZm9yIChpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgaWYgKGdlc3R1cmUgPSBnZXN0dXJlc1t0b3VjaGVzW2ldLmlkZW50aWZpZXJdKSB7XG4gICAgICAgIG5vcHJvcGFnYXRpb24oZXZlbnQpO1xuICAgICAgICBnZXN0dXJlKFwiZW5kXCIsIGV2ZW50LCB0b3VjaGVzW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBiZWZvcmVzdGFydCh0aGF0LCBjb250YWluZXIsIGV2ZW50LCBkLCBpZGVudGlmaWVyLCB0b3VjaCkge1xuICAgIHZhciBkaXNwYXRjaCA9IGxpc3RlbmVycy5jb3B5KCksXG4gICAgICAgIHAgPSBwb2ludGVyKHRvdWNoIHx8IGV2ZW50LCBjb250YWluZXIpLCBkeCwgZHksXG4gICAgICAgIHM7XG5cbiAgICBpZiAoKHMgPSBzdWJqZWN0LmNhbGwodGhhdCwgbmV3IERyYWdFdmVudChcImJlZm9yZXN0YXJ0XCIsIHtcbiAgICAgICAgc291cmNlRXZlbnQ6IGV2ZW50LFxuICAgICAgICB0YXJnZXQ6IGRyYWcsXG4gICAgICAgIGlkZW50aWZpZXIsXG4gICAgICAgIGFjdGl2ZSxcbiAgICAgICAgeDogcFswXSxcbiAgICAgICAgeTogcFsxXSxcbiAgICAgICAgZHg6IDAsXG4gICAgICAgIGR5OiAwLFxuICAgICAgICBkaXNwYXRjaFxuICAgICAgfSksIGQpKSA9PSBudWxsKSByZXR1cm47XG5cbiAgICBkeCA9IHMueCAtIHBbMF0gfHwgMDtcbiAgICBkeSA9IHMueSAtIHBbMV0gfHwgMDtcblxuICAgIHJldHVybiBmdW5jdGlvbiBnZXN0dXJlKHR5cGUsIGV2ZW50LCB0b3VjaCkge1xuICAgICAgdmFyIHAwID0gcCwgbjtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFwic3RhcnRcIjogZ2VzdHVyZXNbaWRlbnRpZmllcl0gPSBnZXN0dXJlLCBuID0gYWN0aXZlKys7IGJyZWFrO1xuICAgICAgICBjYXNlIFwiZW5kXCI6IGRlbGV0ZSBnZXN0dXJlc1tpZGVudGlmaWVyXSwgLS1hY3RpdmU7IC8vIG5vYnJlYWtcbiAgICAgICAgY2FzZSBcImRyYWdcIjogcCA9IHBvaW50ZXIodG91Y2ggfHwgZXZlbnQsIGNvbnRhaW5lciksIG4gPSBhY3RpdmU7IGJyZWFrO1xuICAgICAgfVxuICAgICAgZGlzcGF0Y2guY2FsbChcbiAgICAgICAgdHlwZSxcbiAgICAgICAgdGhhdCxcbiAgICAgICAgbmV3IERyYWdFdmVudCh0eXBlLCB7XG4gICAgICAgICAgc291cmNlRXZlbnQ6IGV2ZW50LFxuICAgICAgICAgIHN1YmplY3Q6IHMsXG4gICAgICAgICAgdGFyZ2V0OiBkcmFnLFxuICAgICAgICAgIGlkZW50aWZpZXIsXG4gICAgICAgICAgYWN0aXZlOiBuLFxuICAgICAgICAgIHg6IHBbMF0gKyBkeCxcbiAgICAgICAgICB5OiBwWzFdICsgZHksXG4gICAgICAgICAgZHg6IHBbMF0gLSBwMFswXSxcbiAgICAgICAgICBkeTogcFsxXSAtIHAwWzFdLFxuICAgICAgICAgIGRpc3BhdGNoXG4gICAgICAgIH0pLFxuICAgICAgICBkXG4gICAgICApO1xuICAgIH07XG4gIH1cblxuICBkcmFnLmZpbHRlciA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChmaWx0ZXIgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCEhXyksIGRyYWcpIDogZmlsdGVyO1xuICB9O1xuXG4gIGRyYWcuY29udGFpbmVyID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGNvbnRhaW5lciA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoXyksIGRyYWcpIDogY29udGFpbmVyO1xuICB9O1xuXG4gIGRyYWcuc3ViamVjdCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChzdWJqZWN0ID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudChfKSwgZHJhZykgOiBzdWJqZWN0O1xuICB9O1xuXG4gIGRyYWcudG91Y2hhYmxlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHRvdWNoYWJsZSA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoISFfKSwgZHJhZykgOiB0b3VjaGFibGU7XG4gIH07XG5cbiAgZHJhZy5vbiA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciB2YWx1ZSA9IGxpc3RlbmVycy5vbi5hcHBseShsaXN0ZW5lcnMsIGFyZ3VtZW50cyk7XG4gICAgcmV0dXJuIHZhbHVlID09PSBsaXN0ZW5lcnMgPyBkcmFnIDogdmFsdWU7XG4gIH07XG5cbiAgZHJhZy5jbGlja0Rpc3RhbmNlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGNsaWNrRGlzdGFuY2UyID0gKF8gPSArXykgKiBfLCBkcmFnKSA6IE1hdGguc3FydChjbGlja0Rpc3RhbmNlMik7XG4gIH07XG5cbiAgcmV0dXJuIGRyYWc7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oY29uc3RydWN0b3IsIGZhY3RvcnksIHByb3RvdHlwZSkge1xuICBjb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBmYWN0b3J5LnByb3RvdHlwZSA9IHByb3RvdHlwZTtcbiAgcHJvdG90eXBlLmNvbnN0cnVjdG9yID0gY29uc3RydWN0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRlbmQocGFyZW50LCBkZWZpbml0aW9uKSB7XG4gIHZhciBwcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHBhcmVudC5wcm90b3R5cGUpO1xuICBmb3IgKHZhciBrZXkgaW4gZGVmaW5pdGlvbikgcHJvdG90eXBlW2tleV0gPSBkZWZpbml0aW9uW2tleV07XG4gIHJldHVybiBwcm90b3R5cGU7XG59XG4iLCAiaW1wb3J0IGRlZmluZSwge2V4dGVuZH0gZnJvbSBcIi4vZGVmaW5lLmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBDb2xvcigpIHt9XG5cbmV4cG9ydCB2YXIgZGFya2VyID0gMC43O1xuZXhwb3J0IHZhciBicmlnaHRlciA9IDEgLyBkYXJrZXI7XG5cbnZhciByZUkgPSBcIlxcXFxzKihbKy1dP1xcXFxkKylcXFxccypcIixcbiAgICByZU4gPSBcIlxcXFxzKihbKy1dP1xcXFxkKlxcXFwuP1xcXFxkKyg/OltlRV1bKy1dP1xcXFxkKyk/KVxcXFxzKlwiLFxuICAgIHJlUCA9IFwiXFxcXHMqKFsrLV0/XFxcXGQqXFxcXC4/XFxcXGQrKD86W2VFXVsrLV0/XFxcXGQrKT8pJVxcXFxzKlwiLFxuICAgIHJlSGV4ID0gL14jKFswLTlhLWZdezMsOH0pJC8sXG4gICAgcmVSZ2JJbnRlZ2VyID0gbmV3IFJlZ0V4cChcIl5yZ2JcXFxcKFwiICsgW3JlSSwgcmVJLCByZUldICsgXCJcXFxcKSRcIiksXG4gICAgcmVSZ2JQZXJjZW50ID0gbmV3IFJlZ0V4cChcIl5yZ2JcXFxcKFwiICsgW3JlUCwgcmVQLCByZVBdICsgXCJcXFxcKSRcIiksXG4gICAgcmVSZ2JhSW50ZWdlciA9IG5ldyBSZWdFeHAoXCJecmdiYVxcXFwoXCIgKyBbcmVJLCByZUksIHJlSSwgcmVOXSArIFwiXFxcXCkkXCIpLFxuICAgIHJlUmdiYVBlcmNlbnQgPSBuZXcgUmVnRXhwKFwiXnJnYmFcXFxcKFwiICsgW3JlUCwgcmVQLCByZVAsIHJlTl0gKyBcIlxcXFwpJFwiKSxcbiAgICByZUhzbFBlcmNlbnQgPSBuZXcgUmVnRXhwKFwiXmhzbFxcXFwoXCIgKyBbcmVOLCByZVAsIHJlUF0gKyBcIlxcXFwpJFwiKSxcbiAgICByZUhzbGFQZXJjZW50ID0gbmV3IFJlZ0V4cChcIl5oc2xhXFxcXChcIiArIFtyZU4sIHJlUCwgcmVQLCByZU5dICsgXCJcXFxcKSRcIik7XG5cbnZhciBuYW1lZCA9IHtcbiAgYWxpY2VibHVlOiAweGYwZjhmZixcbiAgYW50aXF1ZXdoaXRlOiAweGZhZWJkNyxcbiAgYXF1YTogMHgwMGZmZmYsXG4gIGFxdWFtYXJpbmU6IDB4N2ZmZmQ0LFxuICBhenVyZTogMHhmMGZmZmYsXG4gIGJlaWdlOiAweGY1ZjVkYyxcbiAgYmlzcXVlOiAweGZmZTRjNCxcbiAgYmxhY2s6IDB4MDAwMDAwLFxuICBibGFuY2hlZGFsbW9uZDogMHhmZmViY2QsXG4gIGJsdWU6IDB4MDAwMGZmLFxuICBibHVldmlvbGV0OiAweDhhMmJlMixcbiAgYnJvd246IDB4YTUyYTJhLFxuICBidXJseXdvb2Q6IDB4ZGViODg3LFxuICBjYWRldGJsdWU6IDB4NWY5ZWEwLFxuICBjaGFydHJldXNlOiAweDdmZmYwMCxcbiAgY2hvY29sYXRlOiAweGQyNjkxZSxcbiAgY29yYWw6IDB4ZmY3ZjUwLFxuICBjb3JuZmxvd2VyYmx1ZTogMHg2NDk1ZWQsXG4gIGNvcm5zaWxrOiAweGZmZjhkYyxcbiAgY3JpbXNvbjogMHhkYzE0M2MsXG4gIGN5YW46IDB4MDBmZmZmLFxuICBkYXJrYmx1ZTogMHgwMDAwOGIsXG4gIGRhcmtjeWFuOiAweDAwOGI4YixcbiAgZGFya2dvbGRlbnJvZDogMHhiODg2MGIsXG4gIGRhcmtncmF5OiAweGE5YTlhOSxcbiAgZGFya2dyZWVuOiAweDAwNjQwMCxcbiAgZGFya2dyZXk6IDB4YTlhOWE5LFxuICBkYXJra2hha2k6IDB4YmRiNzZiLFxuICBkYXJrbWFnZW50YTogMHg4YjAwOGIsXG4gIGRhcmtvbGl2ZWdyZWVuOiAweDU1NmIyZixcbiAgZGFya29yYW5nZTogMHhmZjhjMDAsXG4gIGRhcmtvcmNoaWQ6IDB4OTkzMmNjLFxuICBkYXJrcmVkOiAweDhiMDAwMCxcbiAgZGFya3NhbG1vbjogMHhlOTk2N2EsXG4gIGRhcmtzZWFncmVlbjogMHg4ZmJjOGYsXG4gIGRhcmtzbGF0ZWJsdWU6IDB4NDgzZDhiLFxuICBkYXJrc2xhdGVncmF5OiAweDJmNGY0ZixcbiAgZGFya3NsYXRlZ3JleTogMHgyZjRmNGYsXG4gIGRhcmt0dXJxdW9pc2U6IDB4MDBjZWQxLFxuICBkYXJrdmlvbGV0OiAweDk0MDBkMyxcbiAgZGVlcHBpbms6IDB4ZmYxNDkzLFxuICBkZWVwc2t5Ymx1ZTogMHgwMGJmZmYsXG4gIGRpbWdyYXk6IDB4Njk2OTY5LFxuICBkaW1ncmV5OiAweDY5Njk2OSxcbiAgZG9kZ2VyYmx1ZTogMHgxZTkwZmYsXG4gIGZpcmVicmljazogMHhiMjIyMjIsXG4gIGZsb3JhbHdoaXRlOiAweGZmZmFmMCxcbiAgZm9yZXN0Z3JlZW46IDB4MjI4YjIyLFxuICBmdWNoc2lhOiAweGZmMDBmZixcbiAgZ2FpbnNib3JvOiAweGRjZGNkYyxcbiAgZ2hvc3R3aGl0ZTogMHhmOGY4ZmYsXG4gIGdvbGQ6IDB4ZmZkNzAwLFxuICBnb2xkZW5yb2Q6IDB4ZGFhNTIwLFxuICBncmF5OiAweDgwODA4MCxcbiAgZ3JlZW46IDB4MDA4MDAwLFxuICBncmVlbnllbGxvdzogMHhhZGZmMmYsXG4gIGdyZXk6IDB4ODA4MDgwLFxuICBob25leWRldzogMHhmMGZmZjAsXG4gIGhvdHBpbms6IDB4ZmY2OWI0LFxuICBpbmRpYW5yZWQ6IDB4Y2Q1YzVjLFxuICBpbmRpZ286IDB4NGIwMDgyLFxuICBpdm9yeTogMHhmZmZmZjAsXG4gIGtoYWtpOiAweGYwZTY4YyxcbiAgbGF2ZW5kZXI6IDB4ZTZlNmZhLFxuICBsYXZlbmRlcmJsdXNoOiAweGZmZjBmNSxcbiAgbGF3bmdyZWVuOiAweDdjZmMwMCxcbiAgbGVtb25jaGlmZm9uOiAweGZmZmFjZCxcbiAgbGlnaHRibHVlOiAweGFkZDhlNixcbiAgbGlnaHRjb3JhbDogMHhmMDgwODAsXG4gIGxpZ2h0Y3lhbjogMHhlMGZmZmYsXG4gIGxpZ2h0Z29sZGVucm9keWVsbG93OiAweGZhZmFkMixcbiAgbGlnaHRncmF5OiAweGQzZDNkMyxcbiAgbGlnaHRncmVlbjogMHg5MGVlOTAsXG4gIGxpZ2h0Z3JleTogMHhkM2QzZDMsXG4gIGxpZ2h0cGluazogMHhmZmI2YzEsXG4gIGxpZ2h0c2FsbW9uOiAweGZmYTA3YSxcbiAgbGlnaHRzZWFncmVlbjogMHgyMGIyYWEsXG4gIGxpZ2h0c2t5Ymx1ZTogMHg4N2NlZmEsXG4gIGxpZ2h0c2xhdGVncmF5OiAweDc3ODg5OSxcbiAgbGlnaHRzbGF0ZWdyZXk6IDB4Nzc4ODk5LFxuICBsaWdodHN0ZWVsYmx1ZTogMHhiMGM0ZGUsXG4gIGxpZ2h0eWVsbG93OiAweGZmZmZlMCxcbiAgbGltZTogMHgwMGZmMDAsXG4gIGxpbWVncmVlbjogMHgzMmNkMzIsXG4gIGxpbmVuOiAweGZhZjBlNixcbiAgbWFnZW50YTogMHhmZjAwZmYsXG4gIG1hcm9vbjogMHg4MDAwMDAsXG4gIG1lZGl1bWFxdWFtYXJpbmU6IDB4NjZjZGFhLFxuICBtZWRpdW1ibHVlOiAweDAwMDBjZCxcbiAgbWVkaXVtb3JjaGlkOiAweGJhNTVkMyxcbiAgbWVkaXVtcHVycGxlOiAweDkzNzBkYixcbiAgbWVkaXVtc2VhZ3JlZW46IDB4M2NiMzcxLFxuICBtZWRpdW1zbGF0ZWJsdWU6IDB4N2I2OGVlLFxuICBtZWRpdW1zcHJpbmdncmVlbjogMHgwMGZhOWEsXG4gIG1lZGl1bXR1cnF1b2lzZTogMHg0OGQxY2MsXG4gIG1lZGl1bXZpb2xldHJlZDogMHhjNzE1ODUsXG4gIG1pZG5pZ2h0Ymx1ZTogMHgxOTE5NzAsXG4gIG1pbnRjcmVhbTogMHhmNWZmZmEsXG4gIG1pc3R5cm9zZTogMHhmZmU0ZTEsXG4gIG1vY2Nhc2luOiAweGZmZTRiNSxcbiAgbmF2YWpvd2hpdGU6IDB4ZmZkZWFkLFxuICBuYXZ5OiAweDAwMDA4MCxcbiAgb2xkbGFjZTogMHhmZGY1ZTYsXG4gIG9saXZlOiAweDgwODAwMCxcbiAgb2xpdmVkcmFiOiAweDZiOGUyMyxcbiAgb3JhbmdlOiAweGZmYTUwMCxcbiAgb3JhbmdlcmVkOiAweGZmNDUwMCxcbiAgb3JjaGlkOiAweGRhNzBkNixcbiAgcGFsZWdvbGRlbnJvZDogMHhlZWU4YWEsXG4gIHBhbGVncmVlbjogMHg5OGZiOTgsXG4gIHBhbGV0dXJxdW9pc2U6IDB4YWZlZWVlLFxuICBwYWxldmlvbGV0cmVkOiAweGRiNzA5MyxcbiAgcGFwYXlhd2hpcDogMHhmZmVmZDUsXG4gIHBlYWNocHVmZjogMHhmZmRhYjksXG4gIHBlcnU6IDB4Y2Q4NTNmLFxuICBwaW5rOiAweGZmYzBjYixcbiAgcGx1bTogMHhkZGEwZGQsXG4gIHBvd2RlcmJsdWU6IDB4YjBlMGU2LFxuICBwdXJwbGU6IDB4ODAwMDgwLFxuICByZWJlY2NhcHVycGxlOiAweDY2MzM5OSxcbiAgcmVkOiAweGZmMDAwMCxcbiAgcm9zeWJyb3duOiAweGJjOGY4ZixcbiAgcm95YWxibHVlOiAweDQxNjllMSxcbiAgc2FkZGxlYnJvd246IDB4OGI0NTEzLFxuICBzYWxtb246IDB4ZmE4MDcyLFxuICBzYW5keWJyb3duOiAweGY0YTQ2MCxcbiAgc2VhZ3JlZW46IDB4MmU4YjU3LFxuICBzZWFzaGVsbDogMHhmZmY1ZWUsXG4gIHNpZW5uYTogMHhhMDUyMmQsXG4gIHNpbHZlcjogMHhjMGMwYzAsXG4gIHNreWJsdWU6IDB4ODdjZWViLFxuICBzbGF0ZWJsdWU6IDB4NmE1YWNkLFxuICBzbGF0ZWdyYXk6IDB4NzA4MDkwLFxuICBzbGF0ZWdyZXk6IDB4NzA4MDkwLFxuICBzbm93OiAweGZmZmFmYSxcbiAgc3ByaW5nZ3JlZW46IDB4MDBmZjdmLFxuICBzdGVlbGJsdWU6IDB4NDY4MmI0LFxuICB0YW46IDB4ZDJiNDhjLFxuICB0ZWFsOiAweDAwODA4MCxcbiAgdGhpc3RsZTogMHhkOGJmZDgsXG4gIHRvbWF0bzogMHhmZjYzNDcsXG4gIHR1cnF1b2lzZTogMHg0MGUwZDAsXG4gIHZpb2xldDogMHhlZTgyZWUsXG4gIHdoZWF0OiAweGY1ZGViMyxcbiAgd2hpdGU6IDB4ZmZmZmZmLFxuICB3aGl0ZXNtb2tlOiAweGY1ZjVmNSxcbiAgeWVsbG93OiAweGZmZmYwMCxcbiAgeWVsbG93Z3JlZW46IDB4OWFjZDMyXG59O1xuXG5kZWZpbmUoQ29sb3IsIGNvbG9yLCB7XG4gIGNvcHk6IGZ1bmN0aW9uKGNoYW5uZWxzKSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IHRoaXMuY29uc3RydWN0b3IsIHRoaXMsIGNoYW5uZWxzKTtcbiAgfSxcbiAgZGlzcGxheWFibGU6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCk7XG4gIH0sXG4gIGhleDogY29sb3JfZm9ybWF0SGV4LCAvLyBEZXByZWNhdGVkISBVc2UgY29sb3IuZm9ybWF0SGV4LlxuICBmb3JtYXRIZXg6IGNvbG9yX2Zvcm1hdEhleCxcbiAgZm9ybWF0SHNsOiBjb2xvcl9mb3JtYXRIc2wsXG4gIGZvcm1hdFJnYjogY29sb3JfZm9ybWF0UmdiLFxuICB0b1N0cmluZzogY29sb3JfZm9ybWF0UmdiXG59KTtcblxuZnVuY3Rpb24gY29sb3JfZm9ybWF0SGV4KCkge1xuICByZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRIZXgoKTtcbn1cblxuZnVuY3Rpb24gY29sb3JfZm9ybWF0SHNsKCkge1xuICByZXR1cm4gaHNsQ29udmVydCh0aGlzKS5mb3JtYXRIc2woKTtcbn1cblxuZnVuY3Rpb24gY29sb3JfZm9ybWF0UmdiKCkge1xuICByZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRSZ2IoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29sb3IoZm9ybWF0KSB7XG4gIHZhciBtLCBsO1xuICBmb3JtYXQgPSAoZm9ybWF0ICsgXCJcIikudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiAobSA9IHJlSGV4LmV4ZWMoZm9ybWF0KSkgPyAobCA9IG1bMV0ubGVuZ3RoLCBtID0gcGFyc2VJbnQobVsxXSwgMTYpLCBsID09PSA2ID8gcmdibihtKSAvLyAjZmYwMDAwXG4gICAgICA6IGwgPT09IDMgPyBuZXcgUmdiKChtID4+IDggJiAweGYpIHwgKG0gPj4gNCAmIDB4ZjApLCAobSA+PiA0ICYgMHhmKSB8IChtICYgMHhmMCksICgobSAmIDB4ZikgPDwgNCkgfCAobSAmIDB4ZiksIDEpIC8vICNmMDBcbiAgICAgIDogbCA9PT0gOCA/IHJnYmEobSA+PiAyNCAmIDB4ZmYsIG0gPj4gMTYgJiAweGZmLCBtID4+IDggJiAweGZmLCAobSAmIDB4ZmYpIC8gMHhmZikgLy8gI2ZmMDAwMDAwXG4gICAgICA6IGwgPT09IDQgPyByZ2JhKChtID4+IDEyICYgMHhmKSB8IChtID4+IDggJiAweGYwKSwgKG0gPj4gOCAmIDB4ZikgfCAobSA+PiA0ICYgMHhmMCksIChtID4+IDQgJiAweGYpIHwgKG0gJiAweGYwKSwgKCgobSAmIDB4ZikgPDwgNCkgfCAobSAmIDB4ZikpIC8gMHhmZikgLy8gI2YwMDBcbiAgICAgIDogbnVsbCkgLy8gaW52YWxpZCBoZXhcbiAgICAgIDogKG0gPSByZVJnYkludGVnZXIuZXhlYyhmb3JtYXQpKSA/IG5ldyBSZ2IobVsxXSwgbVsyXSwgbVszXSwgMSkgLy8gcmdiKDI1NSwgMCwgMClcbiAgICAgIDogKG0gPSByZVJnYlBlcmNlbnQuZXhlYyhmb3JtYXQpKSA/IG5ldyBSZ2IobVsxXSAqIDI1NSAvIDEwMCwgbVsyXSAqIDI1NSAvIDEwMCwgbVszXSAqIDI1NSAvIDEwMCwgMSkgLy8gcmdiKDEwMCUsIDAlLCAwJSlcbiAgICAgIDogKG0gPSByZVJnYmFJbnRlZ2VyLmV4ZWMoZm9ybWF0KSkgPyByZ2JhKG1bMV0sIG1bMl0sIG1bM10sIG1bNF0pIC8vIHJnYmEoMjU1LCAwLCAwLCAxKVxuICAgICAgOiAobSA9IHJlUmdiYVBlcmNlbnQuZXhlYyhmb3JtYXQpKSA/IHJnYmEobVsxXSAqIDI1NSAvIDEwMCwgbVsyXSAqIDI1NSAvIDEwMCwgbVszXSAqIDI1NSAvIDEwMCwgbVs0XSkgLy8gcmdiKDEwMCUsIDAlLCAwJSwgMSlcbiAgICAgIDogKG0gPSByZUhzbFBlcmNlbnQuZXhlYyhmb3JtYXQpKSA/IGhzbGEobVsxXSwgbVsyXSAvIDEwMCwgbVszXSAvIDEwMCwgMSkgLy8gaHNsKDEyMCwgNTAlLCA1MCUpXG4gICAgICA6IChtID0gcmVIc2xhUGVyY2VudC5leGVjKGZvcm1hdCkpID8gaHNsYShtWzFdLCBtWzJdIC8gMTAwLCBtWzNdIC8gMTAwLCBtWzRdKSAvLyBoc2xhKDEyMCwgNTAlLCA1MCUsIDEpXG4gICAgICA6IG5hbWVkLmhhc093blByb3BlcnR5KGZvcm1hdCkgPyByZ2JuKG5hbWVkW2Zvcm1hdF0pIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gICAgICA6IGZvcm1hdCA9PT0gXCJ0cmFuc3BhcmVudFwiID8gbmV3IFJnYihOYU4sIE5hTiwgTmFOLCAwKVxuICAgICAgOiBudWxsO1xufVxuXG5mdW5jdGlvbiByZ2JuKG4pIHtcbiAgcmV0dXJuIG5ldyBSZ2IobiA+PiAxNiAmIDB4ZmYsIG4gPj4gOCAmIDB4ZmYsIG4gJiAweGZmLCAxKTtcbn1cblxuZnVuY3Rpb24gcmdiYShyLCBnLCBiLCBhKSB7XG4gIGlmIChhIDw9IDApIHIgPSBnID0gYiA9IE5hTjtcbiAgcmV0dXJuIG5ldyBSZ2IociwgZywgYiwgYSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZ2JDb252ZXJ0KG8pIHtcbiAgaWYgKCEobyBpbnN0YW5jZW9mIENvbG9yKSkgbyA9IGNvbG9yKG8pO1xuICBpZiAoIW8pIHJldHVybiBuZXcgUmdiO1xuICBvID0gby5yZ2IoKTtcbiAgcmV0dXJuIG5ldyBSZ2Ioby5yLCBvLmcsIG8uYiwgby5vcGFjaXR5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJnYihyLCBnLCBiLCBvcGFjaXR5KSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID09PSAxID8gcmdiQ29udmVydChyKSA6IG5ldyBSZ2IociwgZywgYiwgb3BhY2l0eSA9PSBudWxsID8gMSA6IG9wYWNpdHkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUmdiKHIsIGcsIGIsIG9wYWNpdHkpIHtcbiAgdGhpcy5yID0gK3I7XG4gIHRoaXMuZyA9ICtnO1xuICB0aGlzLmIgPSArYjtcbiAgdGhpcy5vcGFjaXR5ID0gK29wYWNpdHk7XG59XG5cbmRlZmluZShSZ2IsIHJnYiwgZXh0ZW5kKENvbG9yLCB7XG4gIGJyaWdodGVyOiBmdW5jdGlvbihrKSB7XG4gICAgayA9IGsgPT0gbnVsbCA/IGJyaWdodGVyIDogTWF0aC5wb3coYnJpZ2h0ZXIsIGspO1xuICAgIHJldHVybiBuZXcgUmdiKHRoaXMuciAqIGssIHRoaXMuZyAqIGssIHRoaXMuYiAqIGssIHRoaXMub3BhY2l0eSk7XG4gIH0sXG4gIGRhcmtlcjogZnVuY3Rpb24oaykge1xuICAgIGsgPSBrID09IG51bGwgPyBkYXJrZXIgOiBNYXRoLnBvdyhkYXJrZXIsIGspO1xuICAgIHJldHVybiBuZXcgUmdiKHRoaXMuciAqIGssIHRoaXMuZyAqIGssIHRoaXMuYiAqIGssIHRoaXMub3BhY2l0eSk7XG4gIH0sXG4gIHJnYjogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG4gIGRpc3BsYXlhYmxlOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gKC0wLjUgPD0gdGhpcy5yICYmIHRoaXMuciA8IDI1NS41KVxuICAgICAgICAmJiAoLTAuNSA8PSB0aGlzLmcgJiYgdGhpcy5nIDwgMjU1LjUpXG4gICAgICAgICYmICgtMC41IDw9IHRoaXMuYiAmJiB0aGlzLmIgPCAyNTUuNSlcbiAgICAgICAgJiYgKDAgPD0gdGhpcy5vcGFjaXR5ICYmIHRoaXMub3BhY2l0eSA8PSAxKTtcbiAgfSxcbiAgaGV4OiByZ2JfZm9ybWF0SGV4LCAvLyBEZXByZWNhdGVkISBVc2UgY29sb3IuZm9ybWF0SGV4LlxuICBmb3JtYXRIZXg6IHJnYl9mb3JtYXRIZXgsXG4gIGZvcm1hdFJnYjogcmdiX2Zvcm1hdFJnYixcbiAgdG9TdHJpbmc6IHJnYl9mb3JtYXRSZ2Jcbn0pKTtcblxuZnVuY3Rpb24gcmdiX2Zvcm1hdEhleCgpIHtcbiAgcmV0dXJuIFwiI1wiICsgaGV4KHRoaXMucikgKyBoZXgodGhpcy5nKSArIGhleCh0aGlzLmIpO1xufVxuXG5mdW5jdGlvbiByZ2JfZm9ybWF0UmdiKCkge1xuICB2YXIgYSA9IHRoaXMub3BhY2l0eTsgYSA9IGlzTmFOKGEpID8gMSA6IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIGEpKTtcbiAgcmV0dXJuIChhID09PSAxID8gXCJyZ2IoXCIgOiBcInJnYmEoXCIpXG4gICAgICArIE1hdGgubWF4KDAsIE1hdGgubWluKDI1NSwgTWF0aC5yb3VuZCh0aGlzLnIpIHx8IDApKSArIFwiLCBcIlxuICAgICAgKyBNYXRoLm1heCgwLCBNYXRoLm1pbigyNTUsIE1hdGgucm91bmQodGhpcy5nKSB8fCAwKSkgKyBcIiwgXCJcbiAgICAgICsgTWF0aC5tYXgoMCwgTWF0aC5taW4oMjU1LCBNYXRoLnJvdW5kKHRoaXMuYikgfHwgMCkpXG4gICAgICArIChhID09PSAxID8gXCIpXCIgOiBcIiwgXCIgKyBhICsgXCIpXCIpO1xufVxuXG5mdW5jdGlvbiBoZXgodmFsdWUpIHtcbiAgdmFsdWUgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigyNTUsIE1hdGgucm91bmQodmFsdWUpIHx8IDApKTtcbiAgcmV0dXJuICh2YWx1ZSA8IDE2ID8gXCIwXCIgOiBcIlwiKSArIHZhbHVlLnRvU3RyaW5nKDE2KTtcbn1cblxuZnVuY3Rpb24gaHNsYShoLCBzLCBsLCBhKSB7XG4gIGlmIChhIDw9IDApIGggPSBzID0gbCA9IE5hTjtcbiAgZWxzZSBpZiAobCA8PSAwIHx8IGwgPj0gMSkgaCA9IHMgPSBOYU47XG4gIGVsc2UgaWYgKHMgPD0gMCkgaCA9IE5hTjtcbiAgcmV0dXJuIG5ldyBIc2woaCwgcywgbCwgYSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoc2xDb252ZXJ0KG8pIHtcbiAgaWYgKG8gaW5zdGFuY2VvZiBIc2wpIHJldHVybiBuZXcgSHNsKG8uaCwgby5zLCBvLmwsIG8ub3BhY2l0eSk7XG4gIGlmICghKG8gaW5zdGFuY2VvZiBDb2xvcikpIG8gPSBjb2xvcihvKTtcbiAgaWYgKCFvKSByZXR1cm4gbmV3IEhzbDtcbiAgaWYgKG8gaW5zdGFuY2VvZiBIc2wpIHJldHVybiBvO1xuICBvID0gby5yZ2IoKTtcbiAgdmFyIHIgPSBvLnIgLyAyNTUsXG4gICAgICBnID0gby5nIC8gMjU1LFxuICAgICAgYiA9IG8uYiAvIDI1NSxcbiAgICAgIG1pbiA9IE1hdGgubWluKHIsIGcsIGIpLFxuICAgICAgbWF4ID0gTWF0aC5tYXgociwgZywgYiksXG4gICAgICBoID0gTmFOLFxuICAgICAgcyA9IG1heCAtIG1pbixcbiAgICAgIGwgPSAobWF4ICsgbWluKSAvIDI7XG4gIGlmIChzKSB7XG4gICAgaWYgKHIgPT09IG1heCkgaCA9IChnIC0gYikgLyBzICsgKGcgPCBiKSAqIDY7XG4gICAgZWxzZSBpZiAoZyA9PT0gbWF4KSBoID0gKGIgLSByKSAvIHMgKyAyO1xuICAgIGVsc2UgaCA9IChyIC0gZykgLyBzICsgNDtcbiAgICBzIC89IGwgPCAwLjUgPyBtYXggKyBtaW4gOiAyIC0gbWF4IC0gbWluO1xuICAgIGggKj0gNjA7XG4gIH0gZWxzZSB7XG4gICAgcyA9IGwgPiAwICYmIGwgPCAxID8gMCA6IGg7XG4gIH1cbiAgcmV0dXJuIG5ldyBIc2woaCwgcywgbCwgby5vcGFjaXR5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhzbChoLCBzLCBsLCBvcGFjaXR5KSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID09PSAxID8gaHNsQ29udmVydChoKSA6IG5ldyBIc2woaCwgcywgbCwgb3BhY2l0eSA9PSBudWxsID8gMSA6IG9wYWNpdHkpO1xufVxuXG5mdW5jdGlvbiBIc2woaCwgcywgbCwgb3BhY2l0eSkge1xuICB0aGlzLmggPSAraDtcbiAgdGhpcy5zID0gK3M7XG4gIHRoaXMubCA9ICtsO1xuICB0aGlzLm9wYWNpdHkgPSArb3BhY2l0eTtcbn1cblxuZGVmaW5lKEhzbCwgaHNsLCBleHRlbmQoQ29sb3IsIHtcbiAgYnJpZ2h0ZXI6IGZ1bmN0aW9uKGspIHtcbiAgICBrID0gayA9PSBudWxsID8gYnJpZ2h0ZXIgOiBNYXRoLnBvdyhicmlnaHRlciwgayk7XG4gICAgcmV0dXJuIG5ldyBIc2wodGhpcy5oLCB0aGlzLnMsIHRoaXMubCAqIGssIHRoaXMub3BhY2l0eSk7XG4gIH0sXG4gIGRhcmtlcjogZnVuY3Rpb24oaykge1xuICAgIGsgPSBrID09IG51bGwgPyBkYXJrZXIgOiBNYXRoLnBvdyhkYXJrZXIsIGspO1xuICAgIHJldHVybiBuZXcgSHNsKHRoaXMuaCwgdGhpcy5zLCB0aGlzLmwgKiBrLCB0aGlzLm9wYWNpdHkpO1xuICB9LFxuICByZ2I6IGZ1bmN0aW9uKCkge1xuICAgIHZhciBoID0gdGhpcy5oICUgMzYwICsgKHRoaXMuaCA8IDApICogMzYwLFxuICAgICAgICBzID0gaXNOYU4oaCkgfHwgaXNOYU4odGhpcy5zKSA/IDAgOiB0aGlzLnMsXG4gICAgICAgIGwgPSB0aGlzLmwsXG4gICAgICAgIG0yID0gbCArIChsIDwgMC41ID8gbCA6IDEgLSBsKSAqIHMsXG4gICAgICAgIG0xID0gMiAqIGwgLSBtMjtcbiAgICByZXR1cm4gbmV3IFJnYihcbiAgICAgIGhzbDJyZ2IoaCA+PSAyNDAgPyBoIC0gMjQwIDogaCArIDEyMCwgbTEsIG0yKSxcbiAgICAgIGhzbDJyZ2IoaCwgbTEsIG0yKSxcbiAgICAgIGhzbDJyZ2IoaCA8IDEyMCA/IGggKyAyNDAgOiBoIC0gMTIwLCBtMSwgbTIpLFxuICAgICAgdGhpcy5vcGFjaXR5XG4gICAgKTtcbiAgfSxcbiAgZGlzcGxheWFibGU6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAoMCA8PSB0aGlzLnMgJiYgdGhpcy5zIDw9IDEgfHwgaXNOYU4odGhpcy5zKSlcbiAgICAgICAgJiYgKDAgPD0gdGhpcy5sICYmIHRoaXMubCA8PSAxKVxuICAgICAgICAmJiAoMCA8PSB0aGlzLm9wYWNpdHkgJiYgdGhpcy5vcGFjaXR5IDw9IDEpO1xuICB9LFxuICBmb3JtYXRIc2w6IGZ1bmN0aW9uKCkge1xuICAgIHZhciBhID0gdGhpcy5vcGFjaXR5OyBhID0gaXNOYU4oYSkgPyAxIDogTWF0aC5tYXgoMCwgTWF0aC5taW4oMSwgYSkpO1xuICAgIHJldHVybiAoYSA9PT0gMSA/IFwiaHNsKFwiIDogXCJoc2xhKFwiKVxuICAgICAgICArICh0aGlzLmggfHwgMCkgKyBcIiwgXCJcbiAgICAgICAgKyAodGhpcy5zIHx8IDApICogMTAwICsgXCIlLCBcIlxuICAgICAgICArICh0aGlzLmwgfHwgMCkgKiAxMDAgKyBcIiVcIlxuICAgICAgICArIChhID09PSAxID8gXCIpXCIgOiBcIiwgXCIgKyBhICsgXCIpXCIpO1xuICB9XG59KSk7XG5cbi8qIEZyb20gRnZEIDEzLjM3LCBDU1MgQ29sb3IgTW9kdWxlIExldmVsIDMgKi9cbmZ1bmN0aW9uIGhzbDJyZ2IoaCwgbTEsIG0yKSB7XG4gIHJldHVybiAoaCA8IDYwID8gbTEgKyAobTIgLSBtMSkgKiBoIC8gNjBcbiAgICAgIDogaCA8IDE4MCA/IG0yXG4gICAgICA6IGggPCAyNDAgPyBtMSArIChtMiAtIG0xKSAqICgyNDAgLSBoKSAvIDYwXG4gICAgICA6IG0xKSAqIDI1NTtcbn1cbiIsICJleHBvcnQgY29uc3QgcmFkaWFucyA9IE1hdGguUEkgLyAxODA7XG5leHBvcnQgY29uc3QgZGVncmVlcyA9IDE4MCAvIE1hdGguUEk7XG4iLCAiaW1wb3J0IGRlZmluZSwge2V4dGVuZH0gZnJvbSBcIi4vZGVmaW5lLmpzXCI7XG5pbXBvcnQge0NvbG9yLCByZ2JDb252ZXJ0LCBSZ2IsIGRhcmtlciwgYnJpZ2h0ZXJ9IGZyb20gXCIuL2NvbG9yLmpzXCI7XG5pbXBvcnQge2RlZ3JlZXMsIHJhZGlhbnN9IGZyb20gXCIuL21hdGguanNcIjtcblxudmFyIEEgPSAtMC4xNDg2MSxcbiAgICBCID0gKzEuNzgyNzcsXG4gICAgQyA9IC0wLjI5MjI3LFxuICAgIEQgPSAtMC45MDY0OSxcbiAgICBFID0gKzEuOTcyOTQsXG4gICAgRUQgPSBFICogRCxcbiAgICBFQiA9IEUgKiBCLFxuICAgIEJDX0RBID0gQiAqIEMgLSBEICogQTtcblxuZnVuY3Rpb24gY3ViZWhlbGl4Q29udmVydChvKSB7XG4gIGlmIChvIGluc3RhbmNlb2YgQ3ViZWhlbGl4KSByZXR1cm4gbmV3IEN1YmVoZWxpeChvLmgsIG8ucywgby5sLCBvLm9wYWNpdHkpO1xuICBpZiAoIShvIGluc3RhbmNlb2YgUmdiKSkgbyA9IHJnYkNvbnZlcnQobyk7XG4gIHZhciByID0gby5yIC8gMjU1LFxuICAgICAgZyA9IG8uZyAvIDI1NSxcbiAgICAgIGIgPSBvLmIgLyAyNTUsXG4gICAgICBsID0gKEJDX0RBICogYiArIEVEICogciAtIEVCICogZykgLyAoQkNfREEgKyBFRCAtIEVCKSxcbiAgICAgIGJsID0gYiAtIGwsXG4gICAgICBrID0gKEUgKiAoZyAtIGwpIC0gQyAqIGJsKSAvIEQsXG4gICAgICBzID0gTWF0aC5zcXJ0KGsgKiBrICsgYmwgKiBibCkgLyAoRSAqIGwgKiAoMSAtIGwpKSwgLy8gTmFOIGlmIGw9MCBvciBsPTFcbiAgICAgIGggPSBzID8gTWF0aC5hdGFuMihrLCBibCkgKiBkZWdyZWVzIC0gMTIwIDogTmFOO1xuICByZXR1cm4gbmV3IEN1YmVoZWxpeChoIDwgMCA/IGggKyAzNjAgOiBoLCBzLCBsLCBvLm9wYWNpdHkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjdWJlaGVsaXgoaCwgcywgbCwgb3BhY2l0eSkge1xuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA9PT0gMSA/IGN1YmVoZWxpeENvbnZlcnQoaCkgOiBuZXcgQ3ViZWhlbGl4KGgsIHMsIGwsIG9wYWNpdHkgPT0gbnVsbCA/IDEgOiBvcGFjaXR5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEN1YmVoZWxpeChoLCBzLCBsLCBvcGFjaXR5KSB7XG4gIHRoaXMuaCA9ICtoO1xuICB0aGlzLnMgPSArcztcbiAgdGhpcy5sID0gK2w7XG4gIHRoaXMub3BhY2l0eSA9ICtvcGFjaXR5O1xufVxuXG5kZWZpbmUoQ3ViZWhlbGl4LCBjdWJlaGVsaXgsIGV4dGVuZChDb2xvciwge1xuICBicmlnaHRlcjogZnVuY3Rpb24oaykge1xuICAgIGsgPSBrID09IG51bGwgPyBicmlnaHRlciA6IE1hdGgucG93KGJyaWdodGVyLCBrKTtcbiAgICByZXR1cm4gbmV3IEN1YmVoZWxpeCh0aGlzLmgsIHRoaXMucywgdGhpcy5sICogaywgdGhpcy5vcGFjaXR5KTtcbiAgfSxcbiAgZGFya2VyOiBmdW5jdGlvbihrKSB7XG4gICAgayA9IGsgPT0gbnVsbCA/IGRhcmtlciA6IE1hdGgucG93KGRhcmtlciwgayk7XG4gICAgcmV0dXJuIG5ldyBDdWJlaGVsaXgodGhpcy5oLCB0aGlzLnMsIHRoaXMubCAqIGssIHRoaXMub3BhY2l0eSk7XG4gIH0sXG4gIHJnYjogZnVuY3Rpb24oKSB7XG4gICAgdmFyIGggPSBpc05hTih0aGlzLmgpID8gMCA6ICh0aGlzLmggKyAxMjApICogcmFkaWFucyxcbiAgICAgICAgbCA9ICt0aGlzLmwsXG4gICAgICAgIGEgPSBpc05hTih0aGlzLnMpID8gMCA6IHRoaXMucyAqIGwgKiAoMSAtIGwpLFxuICAgICAgICBjb3NoID0gTWF0aC5jb3MoaCksXG4gICAgICAgIHNpbmggPSBNYXRoLnNpbihoKTtcbiAgICByZXR1cm4gbmV3IFJnYihcbiAgICAgIDI1NSAqIChsICsgYSAqIChBICogY29zaCArIEIgKiBzaW5oKSksXG4gICAgICAyNTUgKiAobCArIGEgKiAoQyAqIGNvc2ggKyBEICogc2luaCkpLFxuICAgICAgMjU1ICogKGwgKyBhICogKEUgKiBjb3NoKSksXG4gICAgICB0aGlzLm9wYWNpdHlcbiAgICApO1xuICB9XG59KSk7XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIGJhc2lzKHQxLCB2MCwgdjEsIHYyLCB2Mykge1xuICB2YXIgdDIgPSB0MSAqIHQxLCB0MyA9IHQyICogdDE7XG4gIHJldHVybiAoKDEgLSAzICogdDEgKyAzICogdDIgLSB0MykgKiB2MFxuICAgICAgKyAoNCAtIDYgKiB0MiArIDMgKiB0MykgKiB2MVxuICAgICAgKyAoMSArIDMgKiB0MSArIDMgKiB0MiAtIDMgKiB0MykgKiB2MlxuICAgICAgKyB0MyAqIHYzKSAvIDY7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHZhbHVlcykge1xuICB2YXIgbiA9IHZhbHVlcy5sZW5ndGggLSAxO1xuICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgIHZhciBpID0gdCA8PSAwID8gKHQgPSAwKSA6IHQgPj0gMSA/ICh0ID0gMSwgbiAtIDEpIDogTWF0aC5mbG9vcih0ICogbiksXG4gICAgICAgIHYxID0gdmFsdWVzW2ldLFxuICAgICAgICB2MiA9IHZhbHVlc1tpICsgMV0sXG4gICAgICAgIHYwID0gaSA+IDAgPyB2YWx1ZXNbaSAtIDFdIDogMiAqIHYxIC0gdjIsXG4gICAgICAgIHYzID0gaSA8IG4gLSAxID8gdmFsdWVzW2kgKyAyXSA6IDIgKiB2MiAtIHYxO1xuICAgIHJldHVybiBiYXNpcygodCAtIGkgLyBuKSAqIG4sIHYwLCB2MSwgdjIsIHYzKTtcbiAgfTtcbn1cbiIsICJpbXBvcnQge2Jhc2lzfSBmcm9tIFwiLi9iYXNpcy5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih2YWx1ZXMpIHtcbiAgdmFyIG4gPSB2YWx1ZXMubGVuZ3RoO1xuICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgIHZhciBpID0gTWF0aC5mbG9vcigoKHQgJT0gMSkgPCAwID8gKyt0IDogdCkgKiBuKSxcbiAgICAgICAgdjAgPSB2YWx1ZXNbKGkgKyBuIC0gMSkgJSBuXSxcbiAgICAgICAgdjEgPSB2YWx1ZXNbaSAlIG5dLFxuICAgICAgICB2MiA9IHZhbHVlc1soaSArIDEpICUgbl0sXG4gICAgICAgIHYzID0gdmFsdWVzWyhpICsgMikgJSBuXTtcbiAgICByZXR1cm4gYmFzaXMoKHQgLSBpIC8gbikgKiBuLCB2MCwgdjEsIHYyLCB2Myk7XG4gIH07XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgeCA9PiAoKSA9PiB4O1xuIiwgImltcG9ydCBjb25zdGFudCBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuXG5mdW5jdGlvbiBsaW5lYXIoYSwgZCkge1xuICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgIHJldHVybiBhICsgdCAqIGQ7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGV4cG9uZW50aWFsKGEsIGIsIHkpIHtcbiAgcmV0dXJuIGEgPSBNYXRoLnBvdyhhLCB5KSwgYiA9IE1hdGgucG93KGIsIHkpIC0gYSwgeSA9IDEgLyB5LCBmdW5jdGlvbih0KSB7XG4gICAgcmV0dXJuIE1hdGgucG93KGEgKyB0ICogYiwgeSk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBodWUoYSwgYikge1xuICB2YXIgZCA9IGIgLSBhO1xuICByZXR1cm4gZCA/IGxpbmVhcihhLCBkID4gMTgwIHx8IGQgPCAtMTgwID8gZCAtIDM2MCAqIE1hdGgucm91bmQoZCAvIDM2MCkgOiBkKSA6IGNvbnN0YW50KGlzTmFOKGEpID8gYiA6IGEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2FtbWEoeSkge1xuICByZXR1cm4gKHkgPSAreSkgPT09IDEgPyBub2dhbW1hIDogZnVuY3Rpb24oYSwgYikge1xuICAgIHJldHVybiBiIC0gYSA/IGV4cG9uZW50aWFsKGEsIGIsIHkpIDogY29uc3RhbnQoaXNOYU4oYSkgPyBiIDogYSk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG5vZ2FtbWEoYSwgYikge1xuICB2YXIgZCA9IGIgLSBhO1xuICByZXR1cm4gZCA/IGxpbmVhcihhLCBkKSA6IGNvbnN0YW50KGlzTmFOKGEpID8gYiA6IGEpO1xufVxuIiwgImltcG9ydCB7cmdiIGFzIGNvbG9yUmdifSBmcm9tIFwiZDMtY29sb3JcIjtcbmltcG9ydCBiYXNpcyBmcm9tIFwiLi9iYXNpcy5qc1wiO1xuaW1wb3J0IGJhc2lzQ2xvc2VkIGZyb20gXCIuL2Jhc2lzQ2xvc2VkLmpzXCI7XG5pbXBvcnQgbm9nYW1tYSwge2dhbW1hfSBmcm9tIFwiLi9jb2xvci5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCAoZnVuY3Rpb24gcmdiR2FtbWEoeSkge1xuICB2YXIgY29sb3IgPSBnYW1tYSh5KTtcblxuICBmdW5jdGlvbiByZ2Ioc3RhcnQsIGVuZCkge1xuICAgIHZhciByID0gY29sb3IoKHN0YXJ0ID0gY29sb3JSZ2Ioc3RhcnQpKS5yLCAoZW5kID0gY29sb3JSZ2IoZW5kKSkuciksXG4gICAgICAgIGcgPSBjb2xvcihzdGFydC5nLCBlbmQuZyksXG4gICAgICAgIGIgPSBjb2xvcihzdGFydC5iLCBlbmQuYiksXG4gICAgICAgIG9wYWNpdHkgPSBub2dhbW1hKHN0YXJ0Lm9wYWNpdHksIGVuZC5vcGFjaXR5KTtcbiAgICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgICAgc3RhcnQuciA9IHIodCk7XG4gICAgICBzdGFydC5nID0gZyh0KTtcbiAgICAgIHN0YXJ0LmIgPSBiKHQpO1xuICAgICAgc3RhcnQub3BhY2l0eSA9IG9wYWNpdHkodCk7XG4gICAgICByZXR1cm4gc3RhcnQgKyBcIlwiO1xuICAgIH07XG4gIH1cblxuICByZ2IuZ2FtbWEgPSByZ2JHYW1tYTtcblxuICByZXR1cm4gcmdiO1xufSkoMSk7XG5cbmZ1bmN0aW9uIHJnYlNwbGluZShzcGxpbmUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKGNvbG9ycykge1xuICAgIHZhciBuID0gY29sb3JzLmxlbmd0aCxcbiAgICAgICAgciA9IG5ldyBBcnJheShuKSxcbiAgICAgICAgZyA9IG5ldyBBcnJheShuKSxcbiAgICAgICAgYiA9IG5ldyBBcnJheShuKSxcbiAgICAgICAgaSwgY29sb3I7XG4gICAgZm9yIChpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgY29sb3IgPSBjb2xvclJnYihjb2xvcnNbaV0pO1xuICAgICAgcltpXSA9IGNvbG9yLnIgfHwgMDtcbiAgICAgIGdbaV0gPSBjb2xvci5nIHx8IDA7XG4gICAgICBiW2ldID0gY29sb3IuYiB8fCAwO1xuICAgIH1cbiAgICByID0gc3BsaW5lKHIpO1xuICAgIGcgPSBzcGxpbmUoZyk7XG4gICAgYiA9IHNwbGluZShiKTtcbiAgICBjb2xvci5vcGFjaXR5ID0gMTtcbiAgICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgICAgY29sb3IuciA9IHIodCk7XG4gICAgICBjb2xvci5nID0gZyh0KTtcbiAgICAgIGNvbG9yLmIgPSBiKHQpO1xuICAgICAgcmV0dXJuIGNvbG9yICsgXCJcIjtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgdmFyIHJnYkJhc2lzID0gcmdiU3BsaW5lKGJhc2lzKTtcbmV4cG9ydCB2YXIgcmdiQmFzaXNDbG9zZWQgPSByZ2JTcGxpbmUoYmFzaXNDbG9zZWQpO1xuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGEsIGIpIHtcbiAgaWYgKCFiKSBiID0gW107XG4gIHZhciBuID0gYSA/IE1hdGgubWluKGIubGVuZ3RoLCBhLmxlbmd0aCkgOiAwLFxuICAgICAgYyA9IGIuc2xpY2UoKSxcbiAgICAgIGk7XG4gIHJldHVybiBmdW5jdGlvbih0KSB7XG4gICAgZm9yIChpID0gMDsgaSA8IG47ICsraSkgY1tpXSA9IGFbaV0gKiAoMSAtIHQpICsgYltpXSAqIHQ7XG4gICAgcmV0dXJuIGM7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlckFycmF5KHgpIHtcbiAgcmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyh4KSAmJiAhKHggaW5zdGFuY2VvZiBEYXRhVmlldyk7XG59XG4iLCAiaW1wb3J0IHZhbHVlIGZyb20gXCIuL3ZhbHVlLmpzXCI7XG5pbXBvcnQgbnVtYmVyQXJyYXksIHtpc051bWJlckFycmF5fSBmcm9tIFwiLi9udW1iZXJBcnJheS5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihhLCBiKSB7XG4gIHJldHVybiAoaXNOdW1iZXJBcnJheShiKSA/IG51bWJlckFycmF5IDogZ2VuZXJpY0FycmF5KShhLCBiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyaWNBcnJheShhLCBiKSB7XG4gIHZhciBuYiA9IGIgPyBiLmxlbmd0aCA6IDAsXG4gICAgICBuYSA9IGEgPyBNYXRoLm1pbihuYiwgYS5sZW5ndGgpIDogMCxcbiAgICAgIHggPSBuZXcgQXJyYXkobmEpLFxuICAgICAgYyA9IG5ldyBBcnJheShuYiksXG4gICAgICBpO1xuXG4gIGZvciAoaSA9IDA7IGkgPCBuYTsgKytpKSB4W2ldID0gdmFsdWUoYVtpXSwgYltpXSk7XG4gIGZvciAoOyBpIDwgbmI7ICsraSkgY1tpXSA9IGJbaV07XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKHQpIHtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbmE7ICsraSkgY1tpXSA9IHhbaV0odCk7XG4gICAgcmV0dXJuIGM7XG4gIH07XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oYSwgYikge1xuICB2YXIgZCA9IG5ldyBEYXRlO1xuICByZXR1cm4gYSA9ICthLCBiID0gK2IsIGZ1bmN0aW9uKHQpIHtcbiAgICByZXR1cm4gZC5zZXRUaW1lKGEgKiAoMSAtIHQpICsgYiAqIHQpLCBkO1xuICB9O1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGEsIGIpIHtcbiAgcmV0dXJuIGEgPSArYSwgYiA9ICtiLCBmdW5jdGlvbih0KSB7XG4gICAgcmV0dXJuIGEgKiAoMSAtIHQpICsgYiAqIHQ7XG4gIH07XG59XG4iLCAiaW1wb3J0IHZhbHVlIGZyb20gXCIuL3ZhbHVlLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGEsIGIpIHtcbiAgdmFyIGkgPSB7fSxcbiAgICAgIGMgPSB7fSxcbiAgICAgIGs7XG5cbiAgaWYgKGEgPT09IG51bGwgfHwgdHlwZW9mIGEgIT09IFwib2JqZWN0XCIpIGEgPSB7fTtcbiAgaWYgKGIgPT09IG51bGwgfHwgdHlwZW9mIGIgIT09IFwib2JqZWN0XCIpIGIgPSB7fTtcblxuICBmb3IgKGsgaW4gYikge1xuICAgIGlmIChrIGluIGEpIHtcbiAgICAgIGlba10gPSB2YWx1ZShhW2tdLCBiW2tdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY1trXSA9IGJba107XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKHQpIHtcbiAgICBmb3IgKGsgaW4gaSkgY1trXSA9IGlba10odCk7XG4gICAgcmV0dXJuIGM7XG4gIH07XG59XG4iLCAiaW1wb3J0IG51bWJlciBmcm9tIFwiLi9udW1iZXIuanNcIjtcblxudmFyIHJlQSA9IC9bLStdPyg/OlxcZCtcXC4/XFxkKnxcXC4/XFxkKykoPzpbZUVdWy0rXT9cXGQrKT8vZyxcbiAgICByZUIgPSBuZXcgUmVnRXhwKHJlQS5zb3VyY2UsIFwiZ1wiKTtcblxuZnVuY3Rpb24gemVybyhiKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gYjtcbiAgfTtcbn1cblxuZnVuY3Rpb24gb25lKGIpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHQpIHtcbiAgICByZXR1cm4gYih0KSArIFwiXCI7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGEsIGIpIHtcbiAgdmFyIGJpID0gcmVBLmxhc3RJbmRleCA9IHJlQi5sYXN0SW5kZXggPSAwLCAvLyBzY2FuIGluZGV4IGZvciBuZXh0IG51bWJlciBpbiBiXG4gICAgICBhbSwgLy8gY3VycmVudCBtYXRjaCBpbiBhXG4gICAgICBibSwgLy8gY3VycmVudCBtYXRjaCBpbiBiXG4gICAgICBicywgLy8gc3RyaW5nIHByZWNlZGluZyBjdXJyZW50IG51bWJlciBpbiBiLCBpZiBhbnlcbiAgICAgIGkgPSAtMSwgLy8gaW5kZXggaW4gc1xuICAgICAgcyA9IFtdLCAvLyBzdHJpbmcgY29uc3RhbnRzIGFuZCBwbGFjZWhvbGRlcnNcbiAgICAgIHEgPSBbXTsgLy8gbnVtYmVyIGludGVycG9sYXRvcnNcblxuICAvLyBDb2VyY2UgaW5wdXRzIHRvIHN0cmluZ3MuXG4gIGEgPSBhICsgXCJcIiwgYiA9IGIgKyBcIlwiO1xuXG4gIC8vIEludGVycG9sYXRlIHBhaXJzIG9mIG51bWJlcnMgaW4gYSAmIGIuXG4gIHdoaWxlICgoYW0gPSByZUEuZXhlYyhhKSlcbiAgICAgICYmIChibSA9IHJlQi5leGVjKGIpKSkge1xuICAgIGlmICgoYnMgPSBibS5pbmRleCkgPiBiaSkgeyAvLyBhIHN0cmluZyBwcmVjZWRlcyB0aGUgbmV4dCBudW1iZXIgaW4gYlxuICAgICAgYnMgPSBiLnNsaWNlKGJpLCBicyk7XG4gICAgICBpZiAoc1tpXSkgc1tpXSArPSBiczsgLy8gY29hbGVzY2Ugd2l0aCBwcmV2aW91cyBzdHJpbmdcbiAgICAgIGVsc2Ugc1srK2ldID0gYnM7XG4gICAgfVxuICAgIGlmICgoYW0gPSBhbVswXSkgPT09IChibSA9IGJtWzBdKSkgeyAvLyBudW1iZXJzIGluIGEgJiBiIG1hdGNoXG4gICAgICBpZiAoc1tpXSkgc1tpXSArPSBibTsgLy8gY29hbGVzY2Ugd2l0aCBwcmV2aW91cyBzdHJpbmdcbiAgICAgIGVsc2Ugc1srK2ldID0gYm07XG4gICAgfSBlbHNlIHsgLy8gaW50ZXJwb2xhdGUgbm9uLW1hdGNoaW5nIG51bWJlcnNcbiAgICAgIHNbKytpXSA9IG51bGw7XG4gICAgICBxLnB1c2goe2k6IGksIHg6IG51bWJlcihhbSwgYm0pfSk7XG4gICAgfVxuICAgIGJpID0gcmVCLmxhc3RJbmRleDtcbiAgfVxuXG4gIC8vIEFkZCByZW1haW5zIG9mIGIuXG4gIGlmIChiaSA8IGIubGVuZ3RoKSB7XG4gICAgYnMgPSBiLnNsaWNlKGJpKTtcbiAgICBpZiAoc1tpXSkgc1tpXSArPSBiczsgLy8gY29hbGVzY2Ugd2l0aCBwcmV2aW91cyBzdHJpbmdcbiAgICBlbHNlIHNbKytpXSA9IGJzO1xuICB9XG5cbiAgLy8gU3BlY2lhbCBvcHRpbWl6YXRpb24gZm9yIG9ubHkgYSBzaW5nbGUgbWF0Y2guXG4gIC8vIE90aGVyd2lzZSwgaW50ZXJwb2xhdGUgZWFjaCBvZiB0aGUgbnVtYmVycyBhbmQgcmVqb2luIHRoZSBzdHJpbmcuXG4gIHJldHVybiBzLmxlbmd0aCA8IDIgPyAocVswXVxuICAgICAgPyBvbmUocVswXS54KVxuICAgICAgOiB6ZXJvKGIpKVxuICAgICAgOiAoYiA9IHEubGVuZ3RoLCBmdW5jdGlvbih0KSB7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDAsIG87IGkgPCBiOyArK2kpIHNbKG8gPSBxW2ldKS5pXSA9IG8ueCh0KTtcbiAgICAgICAgICByZXR1cm4gcy5qb2luKFwiXCIpO1xuICAgICAgICB9KTtcbn1cbiIsICJpbXBvcnQge2NvbG9yfSBmcm9tIFwiZDMtY29sb3JcIjtcbmltcG9ydCByZ2IgZnJvbSBcIi4vcmdiLmpzXCI7XG5pbXBvcnQge2dlbmVyaWNBcnJheX0gZnJvbSBcIi4vYXJyYXkuanNcIjtcbmltcG9ydCBkYXRlIGZyb20gXCIuL2RhdGUuanNcIjtcbmltcG9ydCBudW1iZXIgZnJvbSBcIi4vbnVtYmVyLmpzXCI7XG5pbXBvcnQgb2JqZWN0IGZyb20gXCIuL29iamVjdC5qc1wiO1xuaW1wb3J0IHN0cmluZyBmcm9tIFwiLi9zdHJpbmcuanNcIjtcbmltcG9ydCBjb25zdGFudCBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuaW1wb3J0IG51bWJlckFycmF5LCB7aXNOdW1iZXJBcnJheX0gZnJvbSBcIi4vbnVtYmVyQXJyYXkuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oYSwgYikge1xuICB2YXIgdCA9IHR5cGVvZiBiLCBjO1xuICByZXR1cm4gYiA9PSBudWxsIHx8IHQgPT09IFwiYm9vbGVhblwiID8gY29uc3RhbnQoYilcbiAgICAgIDogKHQgPT09IFwibnVtYmVyXCIgPyBudW1iZXJcbiAgICAgIDogdCA9PT0gXCJzdHJpbmdcIiA/ICgoYyA9IGNvbG9yKGIpKSA/IChiID0gYywgcmdiKSA6IHN0cmluZylcbiAgICAgIDogYiBpbnN0YW5jZW9mIGNvbG9yID8gcmdiXG4gICAgICA6IGIgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZVxuICAgICAgOiBpc051bWJlckFycmF5KGIpID8gbnVtYmVyQXJyYXlcbiAgICAgIDogQXJyYXkuaXNBcnJheShiKSA/IGdlbmVyaWNBcnJheVxuICAgICAgOiB0eXBlb2YgYi52YWx1ZU9mICE9PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIGIudG9TdHJpbmcgIT09IFwiZnVuY3Rpb25cIiB8fCBpc05hTihiKSA/IG9iamVjdFxuICAgICAgOiBudW1iZXIpKGEsIGIpO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGEsIGIpIHtcbiAgcmV0dXJuIGEgPSArYSwgYiA9ICtiLCBmdW5jdGlvbih0KSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQoYSAqICgxIC0gdCkgKyBiICogdCk7XG4gIH07XG59XG4iLCAidmFyIGRlZ3JlZXMgPSAxODAgLyBNYXRoLlBJO1xuXG5leHBvcnQgdmFyIGlkZW50aXR5ID0ge1xuICB0cmFuc2xhdGVYOiAwLFxuICB0cmFuc2xhdGVZOiAwLFxuICByb3RhdGU6IDAsXG4gIHNrZXdYOiAwLFxuICBzY2FsZVg6IDEsXG4gIHNjYWxlWTogMVxufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oYSwgYiwgYywgZCwgZSwgZikge1xuICB2YXIgc2NhbGVYLCBzY2FsZVksIHNrZXdYO1xuICBpZiAoc2NhbGVYID0gTWF0aC5zcXJ0KGEgKiBhICsgYiAqIGIpKSBhIC89IHNjYWxlWCwgYiAvPSBzY2FsZVg7XG4gIGlmIChza2V3WCA9IGEgKiBjICsgYiAqIGQpIGMgLT0gYSAqIHNrZXdYLCBkIC09IGIgKiBza2V3WDtcbiAgaWYgKHNjYWxlWSA9IE1hdGguc3FydChjICogYyArIGQgKiBkKSkgYyAvPSBzY2FsZVksIGQgLz0gc2NhbGVZLCBza2V3WCAvPSBzY2FsZVk7XG4gIGlmIChhICogZCA8IGIgKiBjKSBhID0gLWEsIGIgPSAtYiwgc2tld1ggPSAtc2tld1gsIHNjYWxlWCA9IC1zY2FsZVg7XG4gIHJldHVybiB7XG4gICAgdHJhbnNsYXRlWDogZSxcbiAgICB0cmFuc2xhdGVZOiBmLFxuICAgIHJvdGF0ZTogTWF0aC5hdGFuMihiLCBhKSAqIGRlZ3JlZXMsXG4gICAgc2tld1g6IE1hdGguYXRhbihza2V3WCkgKiBkZWdyZWVzLFxuICAgIHNjYWxlWDogc2NhbGVYLFxuICAgIHNjYWxlWTogc2NhbGVZXG4gIH07XG59XG4iLCAiaW1wb3J0IGRlY29tcG9zZSwge2lkZW50aXR5fSBmcm9tIFwiLi9kZWNvbXBvc2UuanNcIjtcblxudmFyIHN2Z05vZGU7XG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVmICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDc3ModmFsdWUpIHtcbiAgY29uc3QgbSA9IG5ldyAodHlwZW9mIERPTU1hdHJpeCA9PT0gXCJmdW5jdGlvblwiID8gRE9NTWF0cml4IDogV2ViS2l0Q1NTTWF0cml4KSh2YWx1ZSArIFwiXCIpO1xuICByZXR1cm4gbS5pc0lkZW50aXR5ID8gaWRlbnRpdHkgOiBkZWNvbXBvc2UobS5hLCBtLmIsIG0uYywgbS5kLCBtLmUsIG0uZik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVN2Zyh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuIGlkZW50aXR5O1xuICBpZiAoIXN2Z05vZGUpIHN2Z05vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLCBcImdcIik7XG4gIHN2Z05vZGUuc2V0QXR0cmlidXRlKFwidHJhbnNmb3JtXCIsIHZhbHVlKTtcbiAgaWYgKCEodmFsdWUgPSBzdmdOb2RlLnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCkpKSByZXR1cm4gaWRlbnRpdHk7XG4gIHZhbHVlID0gdmFsdWUubWF0cml4O1xuICByZXR1cm4gZGVjb21wb3NlKHZhbHVlLmEsIHZhbHVlLmIsIHZhbHVlLmMsIHZhbHVlLmQsIHZhbHVlLmUsIHZhbHVlLmYpO1xufVxuIiwgImltcG9ydCBudW1iZXIgZnJvbSBcIi4uL251bWJlci5qc1wiO1xuaW1wb3J0IHtwYXJzZUNzcywgcGFyc2VTdmd9IGZyb20gXCIuL3BhcnNlLmpzXCI7XG5cbmZ1bmN0aW9uIGludGVycG9sYXRlVHJhbnNmb3JtKHBhcnNlLCBweENvbW1hLCBweFBhcmVuLCBkZWdQYXJlbikge1xuXG4gIGZ1bmN0aW9uIHBvcChzKSB7XG4gICAgcmV0dXJuIHMubGVuZ3RoID8gcy5wb3AoKSArIFwiIFwiIDogXCJcIjtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYW5zbGF0ZSh4YSwgeWEsIHhiLCB5YiwgcywgcSkge1xuICAgIGlmICh4YSAhPT0geGIgfHwgeWEgIT09IHliKSB7XG4gICAgICB2YXIgaSA9IHMucHVzaChcInRyYW5zbGF0ZShcIiwgbnVsbCwgcHhDb21tYSwgbnVsbCwgcHhQYXJlbik7XG4gICAgICBxLnB1c2goe2k6IGkgLSA0LCB4OiBudW1iZXIoeGEsIHhiKX0sIHtpOiBpIC0gMiwgeDogbnVtYmVyKHlhLCB5Yil9KTtcbiAgICB9IGVsc2UgaWYgKHhiIHx8IHliKSB7XG4gICAgICBzLnB1c2goXCJ0cmFuc2xhdGUoXCIgKyB4YiArIHB4Q29tbWEgKyB5YiArIHB4UGFyZW4pO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHJvdGF0ZShhLCBiLCBzLCBxKSB7XG4gICAgaWYgKGEgIT09IGIpIHtcbiAgICAgIGlmIChhIC0gYiA+IDE4MCkgYiArPSAzNjA7IGVsc2UgaWYgKGIgLSBhID4gMTgwKSBhICs9IDM2MDsgLy8gc2hvcnRlc3QgcGF0aFxuICAgICAgcS5wdXNoKHtpOiBzLnB1c2gocG9wKHMpICsgXCJyb3RhdGUoXCIsIG51bGwsIGRlZ1BhcmVuKSAtIDIsIHg6IG51bWJlcihhLCBiKX0pO1xuICAgIH0gZWxzZSBpZiAoYikge1xuICAgICAgcy5wdXNoKHBvcChzKSArIFwicm90YXRlKFwiICsgYiArIGRlZ1BhcmVuKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBza2V3WChhLCBiLCBzLCBxKSB7XG4gICAgaWYgKGEgIT09IGIpIHtcbiAgICAgIHEucHVzaCh7aTogcy5wdXNoKHBvcChzKSArIFwic2tld1goXCIsIG51bGwsIGRlZ1BhcmVuKSAtIDIsIHg6IG51bWJlcihhLCBiKX0pO1xuICAgIH0gZWxzZSBpZiAoYikge1xuICAgICAgcy5wdXNoKHBvcChzKSArIFwic2tld1goXCIgKyBiICsgZGVnUGFyZW4pO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHNjYWxlKHhhLCB5YSwgeGIsIHliLCBzLCBxKSB7XG4gICAgaWYgKHhhICE9PSB4YiB8fCB5YSAhPT0geWIpIHtcbiAgICAgIHZhciBpID0gcy5wdXNoKHBvcChzKSArIFwic2NhbGUoXCIsIG51bGwsIFwiLFwiLCBudWxsLCBcIilcIik7XG4gICAgICBxLnB1c2goe2k6IGkgLSA0LCB4OiBudW1iZXIoeGEsIHhiKX0sIHtpOiBpIC0gMiwgeDogbnVtYmVyKHlhLCB5Yil9KTtcbiAgICB9IGVsc2UgaWYgKHhiICE9PSAxIHx8IHliICE9PSAxKSB7XG4gICAgICBzLnB1c2gocG9wKHMpICsgXCJzY2FsZShcIiArIHhiICsgXCIsXCIgKyB5YiArIFwiKVwiKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24oYSwgYikge1xuICAgIHZhciBzID0gW10sIC8vIHN0cmluZyBjb25zdGFudHMgYW5kIHBsYWNlaG9sZGVyc1xuICAgICAgICBxID0gW107IC8vIG51bWJlciBpbnRlcnBvbGF0b3JzXG4gICAgYSA9IHBhcnNlKGEpLCBiID0gcGFyc2UoYik7XG4gICAgdHJhbnNsYXRlKGEudHJhbnNsYXRlWCwgYS50cmFuc2xhdGVZLCBiLnRyYW5zbGF0ZVgsIGIudHJhbnNsYXRlWSwgcywgcSk7XG4gICAgcm90YXRlKGEucm90YXRlLCBiLnJvdGF0ZSwgcywgcSk7XG4gICAgc2tld1goYS5za2V3WCwgYi5za2V3WCwgcywgcSk7XG4gICAgc2NhbGUoYS5zY2FsZVgsIGEuc2NhbGVZLCBiLnNjYWxlWCwgYi5zY2FsZVksIHMsIHEpO1xuICAgIGEgPSBiID0gbnVsbDsgLy8gZ2NcbiAgICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgICAgdmFyIGkgPSAtMSwgbiA9IHEubGVuZ3RoLCBvO1xuICAgICAgd2hpbGUgKCsraSA8IG4pIHNbKG8gPSBxW2ldKS5pXSA9IG8ueCh0KTtcbiAgICAgIHJldHVybiBzLmpvaW4oXCJcIik7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IHZhciBpbnRlcnBvbGF0ZVRyYW5zZm9ybUNzcyA9IGludGVycG9sYXRlVHJhbnNmb3JtKHBhcnNlQ3NzLCBcInB4LCBcIiwgXCJweClcIiwgXCJkZWcpXCIpO1xuZXhwb3J0IHZhciBpbnRlcnBvbGF0ZVRyYW5zZm9ybVN2ZyA9IGludGVycG9sYXRlVHJhbnNmb3JtKHBhcnNlU3ZnLCBcIiwgXCIsIFwiKVwiLCBcIilcIik7XG4iLCAidmFyIGVwc2lsb24yID0gMWUtMTI7XG5cbmZ1bmN0aW9uIGNvc2goeCkge1xuICByZXR1cm4gKCh4ID0gTWF0aC5leHAoeCkpICsgMSAvIHgpIC8gMjtcbn1cblxuZnVuY3Rpb24gc2luaCh4KSB7XG4gIHJldHVybiAoKHggPSBNYXRoLmV4cCh4KSkgLSAxIC8geCkgLyAyO1xufVxuXG5mdW5jdGlvbiB0YW5oKHgpIHtcbiAgcmV0dXJuICgoeCA9IE1hdGguZXhwKDIgKiB4KSkgLSAxKSAvICh4ICsgMSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IChmdW5jdGlvbiB6b29tUmhvKHJobywgcmhvMiwgcmhvNCkge1xuXG4gIC8vIHAwID0gW3V4MCwgdXkwLCB3MF1cbiAgLy8gcDEgPSBbdXgxLCB1eTEsIHcxXVxuICBmdW5jdGlvbiB6b29tKHAwLCBwMSkge1xuICAgIHZhciB1eDAgPSBwMFswXSwgdXkwID0gcDBbMV0sIHcwID0gcDBbMl0sXG4gICAgICAgIHV4MSA9IHAxWzBdLCB1eTEgPSBwMVsxXSwgdzEgPSBwMVsyXSxcbiAgICAgICAgZHggPSB1eDEgLSB1eDAsXG4gICAgICAgIGR5ID0gdXkxIC0gdXkwLFxuICAgICAgICBkMiA9IGR4ICogZHggKyBkeSAqIGR5LFxuICAgICAgICBpLFxuICAgICAgICBTO1xuXG4gICAgLy8gU3BlY2lhbCBjYXNlIGZvciB1MCBcdTIyNDUgdTEuXG4gICAgaWYgKGQyIDwgZXBzaWxvbjIpIHtcbiAgICAgIFMgPSBNYXRoLmxvZyh3MSAvIHcwKSAvIHJobztcbiAgICAgIGkgPSBmdW5jdGlvbih0KSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgdXgwICsgdCAqIGR4LFxuICAgICAgICAgIHV5MCArIHQgKiBkeSxcbiAgICAgICAgICB3MCAqIE1hdGguZXhwKHJobyAqIHQgKiBTKVxuICAgICAgICBdO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEdlbmVyYWwgY2FzZS5cbiAgICBlbHNlIHtcbiAgICAgIHZhciBkMSA9IE1hdGguc3FydChkMiksXG4gICAgICAgICAgYjAgPSAodzEgKiB3MSAtIHcwICogdzAgKyByaG80ICogZDIpIC8gKDIgKiB3MCAqIHJobzIgKiBkMSksXG4gICAgICAgICAgYjEgPSAodzEgKiB3MSAtIHcwICogdzAgLSByaG80ICogZDIpIC8gKDIgKiB3MSAqIHJobzIgKiBkMSksXG4gICAgICAgICAgcjAgPSBNYXRoLmxvZyhNYXRoLnNxcnQoYjAgKiBiMCArIDEpIC0gYjApLFxuICAgICAgICAgIHIxID0gTWF0aC5sb2coTWF0aC5zcXJ0KGIxICogYjEgKyAxKSAtIGIxKTtcbiAgICAgIFMgPSAocjEgLSByMCkgLyByaG87XG4gICAgICBpID0gZnVuY3Rpb24odCkge1xuICAgICAgICB2YXIgcyA9IHQgKiBTLFxuICAgICAgICAgICAgY29zaHIwID0gY29zaChyMCksXG4gICAgICAgICAgICB1ID0gdzAgLyAocmhvMiAqIGQxKSAqIChjb3NocjAgKiB0YW5oKHJobyAqIHMgKyByMCkgLSBzaW5oKHIwKSk7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgdXgwICsgdSAqIGR4LFxuICAgICAgICAgIHV5MCArIHUgKiBkeSxcbiAgICAgICAgICB3MCAqIGNvc2hyMCAvIGNvc2gocmhvICogcyArIHIwKVxuICAgICAgICBdO1xuICAgICAgfVxuICAgIH1cblxuICAgIGkuZHVyYXRpb24gPSBTICogMTAwMCAqIHJobyAvIE1hdGguU1FSVDI7XG5cbiAgICByZXR1cm4gaTtcbiAgfVxuXG4gIHpvb20ucmhvID0gZnVuY3Rpb24oXykge1xuICAgIHZhciBfMSA9IE1hdGgubWF4KDFlLTMsICtfKSwgXzIgPSBfMSAqIF8xLCBfNCA9IF8yICogXzI7XG4gICAgcmV0dXJuIHpvb21SaG8oXzEsIF8yLCBfNCk7XG4gIH07XG5cbiAgcmV0dXJuIHpvb207XG59KShNYXRoLlNRUlQyLCAyLCA0KTtcbiIsICJpbXBvcnQge2N1YmVoZWxpeCBhcyBjb2xvckN1YmVoZWxpeH0gZnJvbSBcImQzLWNvbG9yXCI7XG5pbXBvcnQgY29sb3IsIHtodWV9IGZyb20gXCIuL2NvbG9yLmpzXCI7XG5cbmZ1bmN0aW9uIGN1YmVoZWxpeChodWUpIHtcbiAgcmV0dXJuIChmdW5jdGlvbiBjdWJlaGVsaXhHYW1tYSh5KSB7XG4gICAgeSA9ICt5O1xuXG4gICAgZnVuY3Rpb24gY3ViZWhlbGl4KHN0YXJ0LCBlbmQpIHtcbiAgICAgIHZhciBoID0gaHVlKChzdGFydCA9IGNvbG9yQ3ViZWhlbGl4KHN0YXJ0KSkuaCwgKGVuZCA9IGNvbG9yQ3ViZWhlbGl4KGVuZCkpLmgpLFxuICAgICAgICAgIHMgPSBjb2xvcihzdGFydC5zLCBlbmQucyksXG4gICAgICAgICAgbCA9IGNvbG9yKHN0YXJ0LmwsIGVuZC5sKSxcbiAgICAgICAgICBvcGFjaXR5ID0gY29sb3Ioc3RhcnQub3BhY2l0eSwgZW5kLm9wYWNpdHkpO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgc3RhcnQuaCA9IGgodCk7XG4gICAgICAgIHN0YXJ0LnMgPSBzKHQpO1xuICAgICAgICBzdGFydC5sID0gbChNYXRoLnBvdyh0LCB5KSk7XG4gICAgICAgIHN0YXJ0Lm9wYWNpdHkgPSBvcGFjaXR5KHQpO1xuICAgICAgICByZXR1cm4gc3RhcnQgKyBcIlwiO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjdWJlaGVsaXguZ2FtbWEgPSBjdWJlaGVsaXhHYW1tYTtcblxuICAgIHJldHVybiBjdWJlaGVsaXg7XG4gIH0pKDEpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjdWJlaGVsaXgoaHVlKTtcbmV4cG9ydCB2YXIgY3ViZWhlbGl4TG9uZyA9IGN1YmVoZWxpeChjb2xvcik7XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW50ZXJwb2xhdG9yLCBuKSB7XG4gIHZhciBzYW1wbGVzID0gbmV3IEFycmF5KG4pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSkgc2FtcGxlc1tpXSA9IGludGVycG9sYXRvcihpIC8gKG4gLSAxKSk7XG4gIHJldHVybiBzYW1wbGVzO1xufVxuIiwgInZhciBmcmFtZSA9IDAsIC8vIGlzIGFuIGFuaW1hdGlvbiBmcmFtZSBwZW5kaW5nP1xuICAgIHRpbWVvdXQgPSAwLCAvLyBpcyBhIHRpbWVvdXQgcGVuZGluZz9cbiAgICBpbnRlcnZhbCA9IDAsIC8vIGFyZSBhbnkgdGltZXJzIGFjdGl2ZT9cbiAgICBwb2tlRGVsYXkgPSAxMDAwLCAvLyBob3cgZnJlcXVlbnRseSB3ZSBjaGVjayBmb3IgY2xvY2sgc2tld1xuICAgIHRhc2tIZWFkLFxuICAgIHRhc2tUYWlsLFxuICAgIGNsb2NrTGFzdCA9IDAsXG4gICAgY2xvY2tOb3cgPSAwLFxuICAgIGNsb2NrU2tldyA9IDAsXG4gICAgY2xvY2sgPSB0eXBlb2YgcGVyZm9ybWFuY2UgPT09IFwib2JqZWN0XCIgJiYgcGVyZm9ybWFuY2Uubm93ID8gcGVyZm9ybWFuY2UgOiBEYXRlLFxuICAgIHNldEZyYW1lID0gdHlwZW9mIHdpbmRvdyA9PT0gXCJvYmplY3RcIiAmJiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID8gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdykgOiBmdW5jdGlvbihmKSB7IHNldFRpbWVvdXQoZiwgMTcpOyB9O1xuXG5leHBvcnQgZnVuY3Rpb24gbm93KCkge1xuICByZXR1cm4gY2xvY2tOb3cgfHwgKHNldEZyYW1lKGNsZWFyTm93KSwgY2xvY2tOb3cgPSBjbG9jay5ub3coKSArIGNsb2NrU2tldyk7XG59XG5cbmZ1bmN0aW9uIGNsZWFyTm93KCkge1xuICBjbG9ja05vdyA9IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBUaW1lcigpIHtcbiAgdGhpcy5fY2FsbCA9XG4gIHRoaXMuX3RpbWUgPVxuICB0aGlzLl9uZXh0ID0gbnVsbDtcbn1cblxuVGltZXIucHJvdG90eXBlID0gdGltZXIucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogVGltZXIsXG4gIHJlc3RhcnQ6IGZ1bmN0aW9uKGNhbGxiYWNrLCBkZWxheSwgdGltZSkge1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcImNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uXCIpO1xuICAgIHRpbWUgPSAodGltZSA9PSBudWxsID8gbm93KCkgOiArdGltZSkgKyAoZGVsYXkgPT0gbnVsbCA/IDAgOiArZGVsYXkpO1xuICAgIGlmICghdGhpcy5fbmV4dCAmJiB0YXNrVGFpbCAhPT0gdGhpcykge1xuICAgICAgaWYgKHRhc2tUYWlsKSB0YXNrVGFpbC5fbmV4dCA9IHRoaXM7XG4gICAgICBlbHNlIHRhc2tIZWFkID0gdGhpcztcbiAgICAgIHRhc2tUYWlsID0gdGhpcztcbiAgICB9XG4gICAgdGhpcy5fY2FsbCA9IGNhbGxiYWNrO1xuICAgIHRoaXMuX3RpbWUgPSB0aW1lO1xuICAgIHNsZWVwKCk7XG4gIH0sXG4gIHN0b3A6IGZ1bmN0aW9uKCkge1xuICAgIGlmICh0aGlzLl9jYWxsKSB7XG4gICAgICB0aGlzLl9jYWxsID0gbnVsbDtcbiAgICAgIHRoaXMuX3RpbWUgPSBJbmZpbml0eTtcbiAgICAgIHNsZWVwKCk7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdGltZXIoY2FsbGJhY2ssIGRlbGF5LCB0aW1lKSB7XG4gIHZhciB0ID0gbmV3IFRpbWVyO1xuICB0LnJlc3RhcnQoY2FsbGJhY2ssIGRlbGF5LCB0aW1lKTtcbiAgcmV0dXJuIHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aW1lckZsdXNoKCkge1xuICBub3coKTsgLy8gR2V0IHRoZSBjdXJyZW50IHRpbWUsIGlmIG5vdCBhbHJlYWR5IHNldC5cbiAgKytmcmFtZTsgLy8gUHJldGVuZCB3ZVx1MjAxOXZlIHNldCBhbiBhbGFybSwgaWYgd2UgaGF2ZW5cdTIwMTl0IGFscmVhZHkuXG4gIHZhciB0ID0gdGFza0hlYWQsIGU7XG4gIHdoaWxlICh0KSB7XG4gICAgaWYgKChlID0gY2xvY2tOb3cgLSB0Ll90aW1lKSA+PSAwKSB0Ll9jYWxsLmNhbGwobnVsbCwgZSk7XG4gICAgdCA9IHQuX25leHQ7XG4gIH1cbiAgLS1mcmFtZTtcbn1cblxuZnVuY3Rpb24gd2FrZSgpIHtcbiAgY2xvY2tOb3cgPSAoY2xvY2tMYXN0ID0gY2xvY2subm93KCkpICsgY2xvY2tTa2V3O1xuICBmcmFtZSA9IHRpbWVvdXQgPSAwO1xuICB0cnkge1xuICAgIHRpbWVyRmx1c2goKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBmcmFtZSA9IDA7XG4gICAgbmFwKCk7XG4gICAgY2xvY2tOb3cgPSAwO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBva2UoKSB7XG4gIHZhciBub3cgPSBjbG9jay5ub3coKSwgZGVsYXkgPSBub3cgLSBjbG9ja0xhc3Q7XG4gIGlmIChkZWxheSA+IHBva2VEZWxheSkgY2xvY2tTa2V3IC09IGRlbGF5LCBjbG9ja0xhc3QgPSBub3c7XG59XG5cbmZ1bmN0aW9uIG5hcCgpIHtcbiAgdmFyIHQwLCB0MSA9IHRhc2tIZWFkLCB0MiwgdGltZSA9IEluZmluaXR5O1xuICB3aGlsZSAodDEpIHtcbiAgICBpZiAodDEuX2NhbGwpIHtcbiAgICAgIGlmICh0aW1lID4gdDEuX3RpbWUpIHRpbWUgPSB0MS5fdGltZTtcbiAgICAgIHQwID0gdDEsIHQxID0gdDEuX25leHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHQyID0gdDEuX25leHQsIHQxLl9uZXh0ID0gbnVsbDtcbiAgICAgIHQxID0gdDAgPyB0MC5fbmV4dCA9IHQyIDogdGFza0hlYWQgPSB0MjtcbiAgICB9XG4gIH1cbiAgdGFza1RhaWwgPSB0MDtcbiAgc2xlZXAodGltZSk7XG59XG5cbmZ1bmN0aW9uIHNsZWVwKHRpbWUpIHtcbiAgaWYgKGZyYW1lKSByZXR1cm47IC8vIFNvb25lc3QgYWxhcm0gYWxyZWFkeSBzZXQsIG9yIHdpbGwgYmUuXG4gIGlmICh0aW1lb3V0KSB0aW1lb3V0ID0gY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICB2YXIgZGVsYXkgPSB0aW1lIC0gY2xvY2tOb3c7IC8vIFN0cmljdGx5IGxlc3MgdGhhbiBpZiB3ZSByZWNvbXB1dGVkIGNsb2NrTm93LlxuICBpZiAoZGVsYXkgPiAyNCkge1xuICAgIGlmICh0aW1lIDwgSW5maW5pdHkpIHRpbWVvdXQgPSBzZXRUaW1lb3V0KHdha2UsIHRpbWUgLSBjbG9jay5ub3coKSAtIGNsb2NrU2tldyk7XG4gICAgaWYgKGludGVydmFsKSBpbnRlcnZhbCA9IGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xuICB9IGVsc2Uge1xuICAgIGlmICghaW50ZXJ2YWwpIGNsb2NrTGFzdCA9IGNsb2NrLm5vdygpLCBpbnRlcnZhbCA9IHNldEludGVydmFsKHBva2UsIHBva2VEZWxheSk7XG4gICAgZnJhbWUgPSAxLCBzZXRGcmFtZSh3YWtlKTtcbiAgfVxufVxuIiwgImltcG9ydCB7VGltZXJ9IGZyb20gXCIuL3RpbWVyLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGNhbGxiYWNrLCBkZWxheSwgdGltZSkge1xuICB2YXIgdCA9IG5ldyBUaW1lcjtcbiAgZGVsYXkgPSBkZWxheSA9PSBudWxsID8gMCA6ICtkZWxheTtcbiAgdC5yZXN0YXJ0KGVsYXBzZWQgPT4ge1xuICAgIHQuc3RvcCgpO1xuICAgIGNhbGxiYWNrKGVsYXBzZWQgKyBkZWxheSk7XG4gIH0sIGRlbGF5LCB0aW1lKTtcbiAgcmV0dXJuIHQ7XG59XG4iLCAiaW1wb3J0IHtkaXNwYXRjaH0gZnJvbSBcImQzLWRpc3BhdGNoXCI7XG5pbXBvcnQge3RpbWVyLCB0aW1lb3V0fSBmcm9tIFwiZDMtdGltZXJcIjtcblxudmFyIGVtcHR5T24gPSBkaXNwYXRjaChcInN0YXJ0XCIsIFwiZW5kXCIsIFwiY2FuY2VsXCIsIFwiaW50ZXJydXB0XCIpO1xudmFyIGVtcHR5VHdlZW4gPSBbXTtcblxuZXhwb3J0IHZhciBDUkVBVEVEID0gMDtcbmV4cG9ydCB2YXIgU0NIRURVTEVEID0gMTtcbmV4cG9ydCB2YXIgU1RBUlRJTkcgPSAyO1xuZXhwb3J0IHZhciBTVEFSVEVEID0gMztcbmV4cG9ydCB2YXIgUlVOTklORyA9IDQ7XG5leHBvcnQgdmFyIEVORElORyA9IDU7XG5leHBvcnQgdmFyIEVOREVEID0gNjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obm9kZSwgbmFtZSwgaWQsIGluZGV4LCBncm91cCwgdGltaW5nKSB7XG4gIHZhciBzY2hlZHVsZXMgPSBub2RlLl9fdHJhbnNpdGlvbjtcbiAgaWYgKCFzY2hlZHVsZXMpIG5vZGUuX190cmFuc2l0aW9uID0ge307XG4gIGVsc2UgaWYgKGlkIGluIHNjaGVkdWxlcykgcmV0dXJuO1xuICBjcmVhdGUobm9kZSwgaWQsIHtcbiAgICBuYW1lOiBuYW1lLFxuICAgIGluZGV4OiBpbmRleCwgLy8gRm9yIGNvbnRleHQgZHVyaW5nIGNhbGxiYWNrLlxuICAgIGdyb3VwOiBncm91cCwgLy8gRm9yIGNvbnRleHQgZHVyaW5nIGNhbGxiYWNrLlxuICAgIG9uOiBlbXB0eU9uLFxuICAgIHR3ZWVuOiBlbXB0eVR3ZWVuLFxuICAgIHRpbWU6IHRpbWluZy50aW1lLFxuICAgIGRlbGF5OiB0aW1pbmcuZGVsYXksXG4gICAgZHVyYXRpb246IHRpbWluZy5kdXJhdGlvbixcbiAgICBlYXNlOiB0aW1pbmcuZWFzZSxcbiAgICB0aW1lcjogbnVsbCxcbiAgICBzdGF0ZTogQ1JFQVRFRFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXQobm9kZSwgaWQpIHtcbiAgdmFyIHNjaGVkdWxlID0gZ2V0KG5vZGUsIGlkKTtcbiAgaWYgKHNjaGVkdWxlLnN0YXRlID4gQ1JFQVRFRCkgdGhyb3cgbmV3IEVycm9yKFwidG9vIGxhdGU7IGFscmVhZHkgc2NoZWR1bGVkXCIpO1xuICByZXR1cm4gc2NoZWR1bGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXQobm9kZSwgaWQpIHtcbiAgdmFyIHNjaGVkdWxlID0gZ2V0KG5vZGUsIGlkKTtcbiAgaWYgKHNjaGVkdWxlLnN0YXRlID4gU1RBUlRFRCkgdGhyb3cgbmV3IEVycm9yKFwidG9vIGxhdGU7IGFscmVhZHkgcnVubmluZ1wiKTtcbiAgcmV0dXJuIHNjaGVkdWxlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0KG5vZGUsIGlkKSB7XG4gIHZhciBzY2hlZHVsZSA9IG5vZGUuX190cmFuc2l0aW9uO1xuICBpZiAoIXNjaGVkdWxlIHx8ICEoc2NoZWR1bGUgPSBzY2hlZHVsZVtpZF0pKSB0aHJvdyBuZXcgRXJyb3IoXCJ0cmFuc2l0aW9uIG5vdCBmb3VuZFwiKTtcbiAgcmV0dXJuIHNjaGVkdWxlO1xufVxuXG5mdW5jdGlvbiBjcmVhdGUobm9kZSwgaWQsIHNlbGYpIHtcbiAgdmFyIHNjaGVkdWxlcyA9IG5vZGUuX190cmFuc2l0aW9uLFxuICAgICAgdHdlZW47XG5cbiAgLy8gSW5pdGlhbGl6ZSB0aGUgc2VsZiB0aW1lciB3aGVuIHRoZSB0cmFuc2l0aW9uIGlzIGNyZWF0ZWQuXG4gIC8vIE5vdGUgdGhlIGFjdHVhbCBkZWxheSBpcyBub3Qga25vd24gdW50aWwgdGhlIGZpcnN0IGNhbGxiYWNrIVxuICBzY2hlZHVsZXNbaWRdID0gc2VsZjtcbiAgc2VsZi50aW1lciA9IHRpbWVyKHNjaGVkdWxlLCAwLCBzZWxmLnRpbWUpO1xuXG4gIGZ1bmN0aW9uIHNjaGVkdWxlKGVsYXBzZWQpIHtcbiAgICBzZWxmLnN0YXRlID0gU0NIRURVTEVEO1xuICAgIHNlbGYudGltZXIucmVzdGFydChzdGFydCwgc2VsZi5kZWxheSwgc2VsZi50aW1lKTtcblxuICAgIC8vIElmIHRoZSBlbGFwc2VkIGRlbGF5IGlzIGxlc3MgdGhhbiBvdXIgZmlyc3Qgc2xlZXAsIHN0YXJ0IGltbWVkaWF0ZWx5LlxuICAgIGlmIChzZWxmLmRlbGF5IDw9IGVsYXBzZWQpIHN0YXJ0KGVsYXBzZWQgLSBzZWxmLmRlbGF5KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHN0YXJ0KGVsYXBzZWQpIHtcbiAgICB2YXIgaSwgaiwgbiwgbztcblxuICAgIC8vIElmIHRoZSBzdGF0ZSBpcyBub3QgU0NIRURVTEVELCB0aGVuIHdlIHByZXZpb3VzbHkgZXJyb3JlZCBvbiBzdGFydC5cbiAgICBpZiAoc2VsZi5zdGF0ZSAhPT0gU0NIRURVTEVEKSByZXR1cm4gc3RvcCgpO1xuXG4gICAgZm9yIChpIGluIHNjaGVkdWxlcykge1xuICAgICAgbyA9IHNjaGVkdWxlc1tpXTtcbiAgICAgIGlmIChvLm5hbWUgIT09IHNlbGYubmFtZSkgY29udGludWU7XG5cbiAgICAgIC8vIFdoaWxlIHRoaXMgZWxlbWVudCBhbHJlYWR5IGhhcyBhIHN0YXJ0aW5nIHRyYW5zaXRpb24gZHVyaW5nIHRoaXMgZnJhbWUsXG4gICAgICAvLyBkZWZlciBzdGFydGluZyBhbiBpbnRlcnJ1cHRpbmcgdHJhbnNpdGlvbiB1bnRpbCB0aGF0IHRyYW5zaXRpb24gaGFzIGFcbiAgICAgIC8vIGNoYW5jZSB0byB0aWNrIChhbmQgcG9zc2libHkgZW5kKTsgc2VlIGQzL2QzLXRyYW5zaXRpb24jNTQhXG4gICAgICBpZiAoby5zdGF0ZSA9PT0gU1RBUlRFRCkgcmV0dXJuIHRpbWVvdXQoc3RhcnQpO1xuXG4gICAgICAvLyBJbnRlcnJ1cHQgdGhlIGFjdGl2ZSB0cmFuc2l0aW9uLCBpZiBhbnkuXG4gICAgICBpZiAoby5zdGF0ZSA9PT0gUlVOTklORykge1xuICAgICAgICBvLnN0YXRlID0gRU5ERUQ7XG4gICAgICAgIG8udGltZXIuc3RvcCgpO1xuICAgICAgICBvLm9uLmNhbGwoXCJpbnRlcnJ1cHRcIiwgbm9kZSwgbm9kZS5fX2RhdGFfXywgby5pbmRleCwgby5ncm91cCk7XG4gICAgICAgIGRlbGV0ZSBzY2hlZHVsZXNbaV07XG4gICAgICB9XG5cbiAgICAgIC8vIENhbmNlbCBhbnkgcHJlLWVtcHRlZCB0cmFuc2l0aW9ucy5cbiAgICAgIGVsc2UgaWYgKCtpIDwgaWQpIHtcbiAgICAgICAgby5zdGF0ZSA9IEVOREVEO1xuICAgICAgICBvLnRpbWVyLnN0b3AoKTtcbiAgICAgICAgby5vbi5jYWxsKFwiY2FuY2VsXCIsIG5vZGUsIG5vZGUuX19kYXRhX18sIG8uaW5kZXgsIG8uZ3JvdXApO1xuICAgICAgICBkZWxldGUgc2NoZWR1bGVzW2ldO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERlZmVyIHRoZSBmaXJzdCB0aWNrIHRvIGVuZCBvZiB0aGUgY3VycmVudCBmcmFtZTsgc2VlIGQzL2QzIzE1NzYuXG4gICAgLy8gTm90ZSB0aGUgdHJhbnNpdGlvbiBtYXkgYmUgY2FuY2VsZWQgYWZ0ZXIgc3RhcnQgYW5kIGJlZm9yZSB0aGUgZmlyc3QgdGljayFcbiAgICAvLyBOb3RlIHRoaXMgbXVzdCBiZSBzY2hlZHVsZWQgYmVmb3JlIHRoZSBzdGFydCBldmVudDsgc2VlIGQzL2QzLXRyYW5zaXRpb24jMTYhXG4gICAgLy8gQXNzdW1pbmcgdGhpcyBpcyBzdWNjZXNzZnVsLCBzdWJzZXF1ZW50IGNhbGxiYWNrcyBnbyBzdHJhaWdodCB0byB0aWNrLlxuICAgIHRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICBpZiAoc2VsZi5zdGF0ZSA9PT0gU1RBUlRFRCkge1xuICAgICAgICBzZWxmLnN0YXRlID0gUlVOTklORztcbiAgICAgICAgc2VsZi50aW1lci5yZXN0YXJ0KHRpY2ssIHNlbGYuZGVsYXksIHNlbGYudGltZSk7XG4gICAgICAgIHRpY2soZWxhcHNlZCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBEaXNwYXRjaCB0aGUgc3RhcnQgZXZlbnQuXG4gICAgLy8gTm90ZSB0aGlzIG11c3QgYmUgZG9uZSBiZWZvcmUgdGhlIHR3ZWVuIGFyZSBpbml0aWFsaXplZC5cbiAgICBzZWxmLnN0YXRlID0gU1RBUlRJTkc7XG4gICAgc2VsZi5vbi5jYWxsKFwic3RhcnRcIiwgbm9kZSwgbm9kZS5fX2RhdGFfXywgc2VsZi5pbmRleCwgc2VsZi5ncm91cCk7XG4gICAgaWYgKHNlbGYuc3RhdGUgIT09IFNUQVJUSU5HKSByZXR1cm47IC8vIGludGVycnVwdGVkXG4gICAgc2VsZi5zdGF0ZSA9IFNUQVJURUQ7XG5cbiAgICAvLyBJbml0aWFsaXplIHRoZSB0d2VlbiwgZGVsZXRpbmcgbnVsbCB0d2Vlbi5cbiAgICB0d2VlbiA9IG5ldyBBcnJheShuID0gc2VsZi50d2Vlbi5sZW5ndGgpO1xuICAgIGZvciAoaSA9IDAsIGogPSAtMTsgaSA8IG47ICsraSkge1xuICAgICAgaWYgKG8gPSBzZWxmLnR3ZWVuW2ldLnZhbHVlLmNhbGwobm9kZSwgbm9kZS5fX2RhdGFfXywgc2VsZi5pbmRleCwgc2VsZi5ncm91cCkpIHtcbiAgICAgICAgdHdlZW5bKytqXSA9IG87XG4gICAgICB9XG4gICAgfVxuICAgIHR3ZWVuLmxlbmd0aCA9IGogKyAxO1xuICB9XG5cbiAgZnVuY3Rpb24gdGljayhlbGFwc2VkKSB7XG4gICAgdmFyIHQgPSBlbGFwc2VkIDwgc2VsZi5kdXJhdGlvbiA/IHNlbGYuZWFzZS5jYWxsKG51bGwsIGVsYXBzZWQgLyBzZWxmLmR1cmF0aW9uKSA6IChzZWxmLnRpbWVyLnJlc3RhcnQoc3RvcCksIHNlbGYuc3RhdGUgPSBFTkRJTkcsIDEpLFxuICAgICAgICBpID0gLTEsXG4gICAgICAgIG4gPSB0d2Vlbi5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpIDwgbikge1xuICAgICAgdHdlZW5baV0uY2FsbChub2RlLCB0KTtcbiAgICB9XG5cbiAgICAvLyBEaXNwYXRjaCB0aGUgZW5kIGV2ZW50LlxuICAgIGlmIChzZWxmLnN0YXRlID09PSBFTkRJTkcpIHtcbiAgICAgIHNlbGYub24uY2FsbChcImVuZFwiLCBub2RlLCBub2RlLl9fZGF0YV9fLCBzZWxmLmluZGV4LCBzZWxmLmdyb3VwKTtcbiAgICAgIHN0b3AoKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBzdG9wKCkge1xuICAgIHNlbGYuc3RhdGUgPSBFTkRFRDtcbiAgICBzZWxmLnRpbWVyLnN0b3AoKTtcbiAgICBkZWxldGUgc2NoZWR1bGVzW2lkXTtcbiAgICBmb3IgKHZhciBpIGluIHNjaGVkdWxlcykgcmV0dXJuOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgZGVsZXRlIG5vZGUuX190cmFuc2l0aW9uO1xuICB9XG59XG4iLCAiaW1wb3J0IHtTVEFSVElORywgRU5ESU5HLCBFTkRFRH0gZnJvbSBcIi4vdHJhbnNpdGlvbi9zY2hlZHVsZS5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihub2RlLCBuYW1lKSB7XG4gIHZhciBzY2hlZHVsZXMgPSBub2RlLl9fdHJhbnNpdGlvbixcbiAgICAgIHNjaGVkdWxlLFxuICAgICAgYWN0aXZlLFxuICAgICAgZW1wdHkgPSB0cnVlLFxuICAgICAgaTtcblxuICBpZiAoIXNjaGVkdWxlcykgcmV0dXJuO1xuXG4gIG5hbWUgPSBuYW1lID09IG51bGwgPyBudWxsIDogbmFtZSArIFwiXCI7XG5cbiAgZm9yIChpIGluIHNjaGVkdWxlcykge1xuICAgIGlmICgoc2NoZWR1bGUgPSBzY2hlZHVsZXNbaV0pLm5hbWUgIT09IG5hbWUpIHsgZW1wdHkgPSBmYWxzZTsgY29udGludWU7IH1cbiAgICBhY3RpdmUgPSBzY2hlZHVsZS5zdGF0ZSA+IFNUQVJUSU5HICYmIHNjaGVkdWxlLnN0YXRlIDwgRU5ESU5HO1xuICAgIHNjaGVkdWxlLnN0YXRlID0gRU5ERUQ7XG4gICAgc2NoZWR1bGUudGltZXIuc3RvcCgpO1xuICAgIHNjaGVkdWxlLm9uLmNhbGwoYWN0aXZlID8gXCJpbnRlcnJ1cHRcIiA6IFwiY2FuY2VsXCIsIG5vZGUsIG5vZGUuX19kYXRhX18sIHNjaGVkdWxlLmluZGV4LCBzY2hlZHVsZS5ncm91cCk7XG4gICAgZGVsZXRlIHNjaGVkdWxlc1tpXTtcbiAgfVxuXG4gIGlmIChlbXB0eSkgZGVsZXRlIG5vZGUuX190cmFuc2l0aW9uO1xufVxuIiwgImltcG9ydCBpbnRlcnJ1cHQgZnJvbSBcIi4uL2ludGVycnVwdC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihuYW1lKSB7XG4gIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgaW50ZXJydXB0KHRoaXMsIG5hbWUpO1xuICB9KTtcbn1cbiIsICJpbXBvcnQge2dldCwgc2V0fSBmcm9tIFwiLi9zY2hlZHVsZS5qc1wiO1xuXG5mdW5jdGlvbiB0d2VlblJlbW92ZShpZCwgbmFtZSkge1xuICB2YXIgdHdlZW4wLCB0d2VlbjE7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2NoZWR1bGUgPSBzZXQodGhpcywgaWQpLFxuICAgICAgICB0d2VlbiA9IHNjaGVkdWxlLnR3ZWVuO1xuXG4gICAgLy8gSWYgdGhpcyBub2RlIHNoYXJlZCB0d2VlbiB3aXRoIHRoZSBwcmV2aW91cyBub2RlLFxuICAgIC8vIGp1c3QgYXNzaWduIHRoZSB1cGRhdGVkIHNoYXJlZCB0d2VlbiBhbmQgd2VcdTIwMTlyZSBkb25lIVxuICAgIC8vIE90aGVyd2lzZSwgY29weS1vbi13cml0ZS5cbiAgICBpZiAodHdlZW4gIT09IHR3ZWVuMCkge1xuICAgICAgdHdlZW4xID0gdHdlZW4wID0gdHdlZW47XG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IHR3ZWVuMS5sZW5ndGg7IGkgPCBuOyArK2kpIHtcbiAgICAgICAgaWYgKHR3ZWVuMVtpXS5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgdHdlZW4xID0gdHdlZW4xLnNsaWNlKCk7XG4gICAgICAgICAgdHdlZW4xLnNwbGljZShpLCAxKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHNjaGVkdWxlLnR3ZWVuID0gdHdlZW4xO1xuICB9O1xufVxuXG5mdW5jdGlvbiB0d2VlbkZ1bmN0aW9uKGlkLCBuYW1lLCB2YWx1ZSkge1xuICB2YXIgdHdlZW4wLCB0d2VlbjE7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IEVycm9yO1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHNjaGVkdWxlID0gc2V0KHRoaXMsIGlkKSxcbiAgICAgICAgdHdlZW4gPSBzY2hlZHVsZS50d2VlbjtcblxuICAgIC8vIElmIHRoaXMgbm9kZSBzaGFyZWQgdHdlZW4gd2l0aCB0aGUgcHJldmlvdXMgbm9kZSxcbiAgICAvLyBqdXN0IGFzc2lnbiB0aGUgdXBkYXRlZCBzaGFyZWQgdHdlZW4gYW5kIHdlXHUyMDE5cmUgZG9uZSFcbiAgICAvLyBPdGhlcndpc2UsIGNvcHktb24td3JpdGUuXG4gICAgaWYgKHR3ZWVuICE9PSB0d2VlbjApIHtcbiAgICAgIHR3ZWVuMSA9ICh0d2VlbjAgPSB0d2Vlbikuc2xpY2UoKTtcbiAgICAgIGZvciAodmFyIHQgPSB7bmFtZTogbmFtZSwgdmFsdWU6IHZhbHVlfSwgaSA9IDAsIG4gPSB0d2VlbjEubGVuZ3RoOyBpIDwgbjsgKytpKSB7XG4gICAgICAgIGlmICh0d2VlbjFbaV0ubmFtZSA9PT0gbmFtZSkge1xuICAgICAgICAgIHR3ZWVuMVtpXSA9IHQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChpID09PSBuKSB0d2VlbjEucHVzaCh0KTtcbiAgICB9XG5cbiAgICBzY2hlZHVsZS50d2VlbiA9IHR3ZWVuMTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgdmFyIGlkID0gdGhpcy5faWQ7XG5cbiAgbmFtZSArPSBcIlwiO1xuXG4gIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMikge1xuICAgIHZhciB0d2VlbiA9IGdldCh0aGlzLm5vZGUoKSwgaWQpLnR3ZWVuO1xuICAgIGZvciAodmFyIGkgPSAwLCBuID0gdHdlZW4ubGVuZ3RoLCB0OyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAoKHQgPSB0d2VlbltpXSkubmFtZSA9PT0gbmFtZSkge1xuICAgICAgICByZXR1cm4gdC52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gdGhpcy5lYWNoKCh2YWx1ZSA9PSBudWxsID8gdHdlZW5SZW1vdmUgOiB0d2VlbkZ1bmN0aW9uKShpZCwgbmFtZSwgdmFsdWUpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR3ZWVuVmFsdWUodHJhbnNpdGlvbiwgbmFtZSwgdmFsdWUpIHtcbiAgdmFyIGlkID0gdHJhbnNpdGlvbi5faWQ7XG5cbiAgdHJhbnNpdGlvbi5lYWNoKGZ1bmN0aW9uKCkge1xuICAgIHZhciBzY2hlZHVsZSA9IHNldCh0aGlzLCBpZCk7XG4gICAgKHNjaGVkdWxlLnZhbHVlIHx8IChzY2hlZHVsZS52YWx1ZSA9IHt9KSlbbmFtZV0gPSB2YWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9KTtcblxuICByZXR1cm4gZnVuY3Rpb24obm9kZSkge1xuICAgIHJldHVybiBnZXQobm9kZSwgaWQpLnZhbHVlW25hbWVdO1xuICB9O1xufVxuIiwgImltcG9ydCB7Y29sb3J9IGZyb20gXCJkMy1jb2xvclwiO1xuaW1wb3J0IHtpbnRlcnBvbGF0ZU51bWJlciwgaW50ZXJwb2xhdGVSZ2IsIGludGVycG9sYXRlU3RyaW5nfSBmcm9tIFwiZDMtaW50ZXJwb2xhdGVcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oYSwgYikge1xuICB2YXIgYztcbiAgcmV0dXJuICh0eXBlb2YgYiA9PT0gXCJudW1iZXJcIiA/IGludGVycG9sYXRlTnVtYmVyXG4gICAgICA6IGIgaW5zdGFuY2VvZiBjb2xvciA/IGludGVycG9sYXRlUmdiXG4gICAgICA6IChjID0gY29sb3IoYikpID8gKGIgPSBjLCBpbnRlcnBvbGF0ZVJnYilcbiAgICAgIDogaW50ZXJwb2xhdGVTdHJpbmcpKGEsIGIpO1xufVxuIiwgImltcG9ydCB7aW50ZXJwb2xhdGVUcmFuc2Zvcm1TdmcgYXMgaW50ZXJwb2xhdGVUcmFuc2Zvcm19IGZyb20gXCJkMy1pbnRlcnBvbGF0ZVwiO1xuaW1wb3J0IHtuYW1lc3BhY2V9IGZyb20gXCJkMy1zZWxlY3Rpb25cIjtcbmltcG9ydCB7dHdlZW5WYWx1ZX0gZnJvbSBcIi4vdHdlZW4uanNcIjtcbmltcG9ydCBpbnRlcnBvbGF0ZSBmcm9tIFwiLi9pbnRlcnBvbGF0ZS5qc1wiO1xuXG5mdW5jdGlvbiBhdHRyUmVtb3ZlKG5hbWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRyUmVtb3ZlTlMoZnVsbG5hbWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlTlMoZnVsbG5hbWUuc3BhY2UsIGZ1bGxuYW1lLmxvY2FsKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gYXR0ckNvbnN0YW50KG5hbWUsIGludGVycG9sYXRlLCB2YWx1ZTEpIHtcbiAgdmFyIHN0cmluZzAwLFxuICAgICAgc3RyaW5nMSA9IHZhbHVlMSArIFwiXCIsXG4gICAgICBpbnRlcnBvbGF0ZTA7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgc3RyaW5nMCA9IHRoaXMuZ2V0QXR0cmlidXRlKG5hbWUpO1xuICAgIHJldHVybiBzdHJpbmcwID09PSBzdHJpbmcxID8gbnVsbFxuICAgICAgICA6IHN0cmluZzAgPT09IHN0cmluZzAwID8gaW50ZXJwb2xhdGUwXG4gICAgICAgIDogaW50ZXJwb2xhdGUwID0gaW50ZXJwb2xhdGUoc3RyaW5nMDAgPSBzdHJpbmcwLCB2YWx1ZTEpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRyQ29uc3RhbnROUyhmdWxsbmFtZSwgaW50ZXJwb2xhdGUsIHZhbHVlMSkge1xuICB2YXIgc3RyaW5nMDAsXG4gICAgICBzdHJpbmcxID0gdmFsdWUxICsgXCJcIixcbiAgICAgIGludGVycG9sYXRlMDtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBzdHJpbmcwID0gdGhpcy5nZXRBdHRyaWJ1dGVOUyhmdWxsbmFtZS5zcGFjZSwgZnVsbG5hbWUubG9jYWwpO1xuICAgIHJldHVybiBzdHJpbmcwID09PSBzdHJpbmcxID8gbnVsbFxuICAgICAgICA6IHN0cmluZzAgPT09IHN0cmluZzAwID8gaW50ZXJwb2xhdGUwXG4gICAgICAgIDogaW50ZXJwb2xhdGUwID0gaW50ZXJwb2xhdGUoc3RyaW5nMDAgPSBzdHJpbmcwLCB2YWx1ZTEpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRyRnVuY3Rpb24obmFtZSwgaW50ZXJwb2xhdGUsIHZhbHVlKSB7XG4gIHZhciBzdHJpbmcwMCxcbiAgICAgIHN0cmluZzEwLFxuICAgICAgaW50ZXJwb2xhdGUwO1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHN0cmluZzAsIHZhbHVlMSA9IHZhbHVlKHRoaXMpLCBzdHJpbmcxO1xuICAgIGlmICh2YWx1ZTEgPT0gbnVsbCkgcmV0dXJuIHZvaWQgdGhpcy5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgc3RyaW5nMCA9IHRoaXMuZ2V0QXR0cmlidXRlKG5hbWUpO1xuICAgIHN0cmluZzEgPSB2YWx1ZTEgKyBcIlwiO1xuICAgIHJldHVybiBzdHJpbmcwID09PSBzdHJpbmcxID8gbnVsbFxuICAgICAgICA6IHN0cmluZzAgPT09IHN0cmluZzAwICYmIHN0cmluZzEgPT09IHN0cmluZzEwID8gaW50ZXJwb2xhdGUwXG4gICAgICAgIDogKHN0cmluZzEwID0gc3RyaW5nMSwgaW50ZXJwb2xhdGUwID0gaW50ZXJwb2xhdGUoc3RyaW5nMDAgPSBzdHJpbmcwLCB2YWx1ZTEpKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gYXR0ckZ1bmN0aW9uTlMoZnVsbG5hbWUsIGludGVycG9sYXRlLCB2YWx1ZSkge1xuICB2YXIgc3RyaW5nMDAsXG4gICAgICBzdHJpbmcxMCxcbiAgICAgIGludGVycG9sYXRlMDtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBzdHJpbmcwLCB2YWx1ZTEgPSB2YWx1ZSh0aGlzKSwgc3RyaW5nMTtcbiAgICBpZiAodmFsdWUxID09IG51bGwpIHJldHVybiB2b2lkIHRoaXMucmVtb3ZlQXR0cmlidXRlTlMoZnVsbG5hbWUuc3BhY2UsIGZ1bGxuYW1lLmxvY2FsKTtcbiAgICBzdHJpbmcwID0gdGhpcy5nZXRBdHRyaWJ1dGVOUyhmdWxsbmFtZS5zcGFjZSwgZnVsbG5hbWUubG9jYWwpO1xuICAgIHN0cmluZzEgPSB2YWx1ZTEgKyBcIlwiO1xuICAgIHJldHVybiBzdHJpbmcwID09PSBzdHJpbmcxID8gbnVsbFxuICAgICAgICA6IHN0cmluZzAgPT09IHN0cmluZzAwICYmIHN0cmluZzEgPT09IHN0cmluZzEwID8gaW50ZXJwb2xhdGUwXG4gICAgICAgIDogKHN0cmluZzEwID0gc3RyaW5nMSwgaW50ZXJwb2xhdGUwID0gaW50ZXJwb2xhdGUoc3RyaW5nMDAgPSBzdHJpbmcwLCB2YWx1ZTEpKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgdmFyIGZ1bGxuYW1lID0gbmFtZXNwYWNlKG5hbWUpLCBpID0gZnVsbG5hbWUgPT09IFwidHJhbnNmb3JtXCIgPyBpbnRlcnBvbGF0ZVRyYW5zZm9ybSA6IGludGVycG9sYXRlO1xuICByZXR1cm4gdGhpcy5hdHRyVHdlZW4obmFtZSwgdHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgID8gKGZ1bGxuYW1lLmxvY2FsID8gYXR0ckZ1bmN0aW9uTlMgOiBhdHRyRnVuY3Rpb24pKGZ1bGxuYW1lLCBpLCB0d2VlblZhbHVlKHRoaXMsIFwiYXR0ci5cIiArIG5hbWUsIHZhbHVlKSlcbiAgICAgIDogdmFsdWUgPT0gbnVsbCA/IChmdWxsbmFtZS5sb2NhbCA/IGF0dHJSZW1vdmVOUyA6IGF0dHJSZW1vdmUpKGZ1bGxuYW1lKVxuICAgICAgOiAoZnVsbG5hbWUubG9jYWwgPyBhdHRyQ29uc3RhbnROUyA6IGF0dHJDb25zdGFudCkoZnVsbG5hbWUsIGksIHZhbHVlKSk7XG59XG4iLCAiaW1wb3J0IHtuYW1lc3BhY2V9IGZyb20gXCJkMy1zZWxlY3Rpb25cIjtcblxuZnVuY3Rpb24gYXR0ckludGVycG9sYXRlKG5hbWUsIGkpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHQpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZShuYW1lLCBpLmNhbGwodGhpcywgdCkpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRySW50ZXJwb2xhdGVOUyhmdWxsbmFtZSwgaSkge1xuICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlTlMoZnVsbG5hbWUuc3BhY2UsIGZ1bGxuYW1lLmxvY2FsLCBpLmNhbGwodGhpcywgdCkpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRyVHdlZW5OUyhmdWxsbmFtZSwgdmFsdWUpIHtcbiAgdmFyIHQwLCBpMDtcbiAgZnVuY3Rpb24gdHdlZW4oKSB7XG4gICAgdmFyIGkgPSB2YWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIGlmIChpICE9PSBpMCkgdDAgPSAoaTAgPSBpKSAmJiBhdHRySW50ZXJwb2xhdGVOUyhmdWxsbmFtZSwgaSk7XG4gICAgcmV0dXJuIHQwO1xuICB9XG4gIHR3ZWVuLl92YWx1ZSA9IHZhbHVlO1xuICByZXR1cm4gdHdlZW47XG59XG5cbmZ1bmN0aW9uIGF0dHJUd2VlbihuYW1lLCB2YWx1ZSkge1xuICB2YXIgdDAsIGkwO1xuICBmdW5jdGlvbiB0d2VlbigpIHtcbiAgICB2YXIgaSA9IHZhbHVlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgaWYgKGkgIT09IGkwKSB0MCA9IChpMCA9IGkpICYmIGF0dHJJbnRlcnBvbGF0ZShuYW1lLCBpKTtcbiAgICByZXR1cm4gdDA7XG4gIH1cbiAgdHdlZW4uX3ZhbHVlID0gdmFsdWU7XG4gIHJldHVybiB0d2Vlbjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgdmFyIGtleSA9IFwiYXR0ci5cIiArIG5hbWU7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMikgcmV0dXJuIChrZXkgPSB0aGlzLnR3ZWVuKGtleSkpICYmIGtleS5fdmFsdWU7XG4gIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gdGhpcy50d2VlbihrZXksIG51bGwpO1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBFcnJvcjtcbiAgdmFyIGZ1bGxuYW1lID0gbmFtZXNwYWNlKG5hbWUpO1xuICByZXR1cm4gdGhpcy50d2VlbihrZXksIChmdWxsbmFtZS5sb2NhbCA/IGF0dHJUd2Vlbk5TIDogYXR0clR3ZWVuKShmdWxsbmFtZSwgdmFsdWUpKTtcbn1cbiIsICJpbXBvcnQge2dldCwgaW5pdH0gZnJvbSBcIi4vc2NoZWR1bGUuanNcIjtcblxuZnVuY3Rpb24gZGVsYXlGdW5jdGlvbihpZCwgdmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIGluaXQodGhpcywgaWQpLmRlbGF5ID0gK3ZhbHVlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGRlbGF5Q29uc3RhbnQoaWQsIHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9ICt2YWx1ZSwgZnVuY3Rpb24oKSB7XG4gICAgaW5pdCh0aGlzLCBpZCkuZGVsYXkgPSB2YWx1ZTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odmFsdWUpIHtcbiAgdmFyIGlkID0gdGhpcy5faWQ7XG5cbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGhcbiAgICAgID8gdGhpcy5lYWNoKCh0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgID8gZGVsYXlGdW5jdGlvblxuICAgICAgICAgIDogZGVsYXlDb25zdGFudCkoaWQsIHZhbHVlKSlcbiAgICAgIDogZ2V0KHRoaXMubm9kZSgpLCBpZCkuZGVsYXk7XG59XG4iLCAiaW1wb3J0IHtnZXQsIHNldH0gZnJvbSBcIi4vc2NoZWR1bGUuanNcIjtcblxuZnVuY3Rpb24gZHVyYXRpb25GdW5jdGlvbihpZCwgdmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHNldCh0aGlzLCBpZCkuZHVyYXRpb24gPSArdmFsdWUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZHVyYXRpb25Db25zdGFudChpZCwgdmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID0gK3ZhbHVlLCBmdW5jdGlvbigpIHtcbiAgICBzZXQodGhpcywgaWQpLmR1cmF0aW9uID0gdmFsdWU7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHZhciBpZCA9IHRoaXMuX2lkO1xuXG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoXG4gICAgICA/IHRoaXMuZWFjaCgodHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICA/IGR1cmF0aW9uRnVuY3Rpb25cbiAgICAgICAgICA6IGR1cmF0aW9uQ29uc3RhbnQpKGlkLCB2YWx1ZSkpXG4gICAgICA6IGdldCh0aGlzLm5vZGUoKSwgaWQpLmR1cmF0aW9uO1xufVxuIiwgImltcG9ydCB7Z2V0LCBzZXR9IGZyb20gXCIuL3NjaGVkdWxlLmpzXCI7XG5cbmZ1bmN0aW9uIGVhc2VDb25zdGFudChpZCwgdmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgRXJyb3I7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICBzZXQodGhpcywgaWQpLmVhc2UgPSB2YWx1ZTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odmFsdWUpIHtcbiAgdmFyIGlkID0gdGhpcy5faWQ7XG5cbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGhcbiAgICAgID8gdGhpcy5lYWNoKGVhc2VDb25zdGFudChpZCwgdmFsdWUpKVxuICAgICAgOiBnZXQodGhpcy5ub2RlKCksIGlkKS5lYXNlO1xufVxuIiwgImltcG9ydCB7c2V0fSBmcm9tIFwiLi9zY2hlZHVsZS5qc1wiO1xuXG5mdW5jdGlvbiBlYXNlVmFyeWluZyhpZCwgdmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciB2ID0gdmFsdWUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICBpZiAodHlwZW9mIHYgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IEVycm9yO1xuICAgIHNldCh0aGlzLCBpZCkuZWFzZSA9IHY7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IEVycm9yO1xuICByZXR1cm4gdGhpcy5lYWNoKGVhc2VWYXJ5aW5nKHRoaXMuX2lkLCB2YWx1ZSkpO1xufVxuIiwgImltcG9ydCB7bWF0Y2hlcn0gZnJvbSBcImQzLXNlbGVjdGlvblwiO1xuaW1wb3J0IHtUcmFuc2l0aW9ufSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihtYXRjaCkge1xuICBpZiAodHlwZW9mIG1hdGNoICE9PSBcImZ1bmN0aW9uXCIpIG1hdGNoID0gbWF0Y2hlcihtYXRjaCk7XG5cbiAgZm9yICh2YXIgZ3JvdXBzID0gdGhpcy5fZ3JvdXBzLCBtID0gZ3JvdXBzLmxlbmd0aCwgc3ViZ3JvdXBzID0gbmV3IEFycmF5KG0pLCBqID0gMDsgaiA8IG07ICsraikge1xuICAgIGZvciAodmFyIGdyb3VwID0gZ3JvdXBzW2pdLCBuID0gZ3JvdXAubGVuZ3RoLCBzdWJncm91cCA9IHN1Ymdyb3Vwc1tqXSA9IFtdLCBub2RlLCBpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgaWYgKChub2RlID0gZ3JvdXBbaV0pICYmIG1hdGNoLmNhbGwobm9kZSwgbm9kZS5fX2RhdGFfXywgaSwgZ3JvdXApKSB7XG4gICAgICAgIHN1Ymdyb3VwLnB1c2gobm9kZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBUcmFuc2l0aW9uKHN1Ymdyb3VwcywgdGhpcy5fcGFyZW50cywgdGhpcy5fbmFtZSwgdGhpcy5faWQpO1xufVxuIiwgImltcG9ydCB7VHJhbnNpdGlvbn0gZnJvbSBcIi4vaW5kZXguanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odHJhbnNpdGlvbikge1xuICBpZiAodHJhbnNpdGlvbi5faWQgIT09IHRoaXMuX2lkKSB0aHJvdyBuZXcgRXJyb3I7XG5cbiAgZm9yICh2YXIgZ3JvdXBzMCA9IHRoaXMuX2dyb3VwcywgZ3JvdXBzMSA9IHRyYW5zaXRpb24uX2dyb3VwcywgbTAgPSBncm91cHMwLmxlbmd0aCwgbTEgPSBncm91cHMxLmxlbmd0aCwgbSA9IE1hdGgubWluKG0wLCBtMSksIG1lcmdlcyA9IG5ldyBBcnJheShtMCksIGogPSAwOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAwID0gZ3JvdXBzMFtqXSwgZ3JvdXAxID0gZ3JvdXBzMVtqXSwgbiA9IGdyb3VwMC5sZW5ndGgsIG1lcmdlID0gbWVyZ2VzW2pdID0gbmV3IEFycmF5KG4pLCBub2RlLCBpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgaWYgKG5vZGUgPSBncm91cDBbaV0gfHwgZ3JvdXAxW2ldKSB7XG4gICAgICAgIG1lcmdlW2ldID0gbm9kZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb3IgKDsgaiA8IG0wOyArK2opIHtcbiAgICBtZXJnZXNbal0gPSBncm91cHMwW2pdO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBUcmFuc2l0aW9uKG1lcmdlcywgdGhpcy5fcGFyZW50cywgdGhpcy5fbmFtZSwgdGhpcy5faWQpO1xufVxuIiwgImltcG9ydCB7Z2V0LCBzZXQsIGluaXR9IGZyb20gXCIuL3NjaGVkdWxlLmpzXCI7XG5cbmZ1bmN0aW9uIHN0YXJ0KG5hbWUpIHtcbiAgcmV0dXJuIChuYW1lICsgXCJcIikudHJpbSgpLnNwbGl0KC9efFxccysvKS5ldmVyeShmdW5jdGlvbih0KSB7XG4gICAgdmFyIGkgPSB0LmluZGV4T2YoXCIuXCIpO1xuICAgIGlmIChpID49IDApIHQgPSB0LnNsaWNlKDAsIGkpO1xuICAgIHJldHVybiAhdCB8fCB0ID09PSBcInN0YXJ0XCI7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBvbkZ1bmN0aW9uKGlkLCBuYW1lLCBsaXN0ZW5lcikge1xuICB2YXIgb24wLCBvbjEsIHNpdCA9IHN0YXJ0KG5hbWUpID8gaW5pdCA6IHNldDtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBzY2hlZHVsZSA9IHNpdCh0aGlzLCBpZCksXG4gICAgICAgIG9uID0gc2NoZWR1bGUub247XG5cbiAgICAvLyBJZiB0aGlzIG5vZGUgc2hhcmVkIGEgZGlzcGF0Y2ggd2l0aCB0aGUgcHJldmlvdXMgbm9kZSxcbiAgICAvLyBqdXN0IGFzc2lnbiB0aGUgdXBkYXRlZCBzaGFyZWQgZGlzcGF0Y2ggYW5kIHdlXHUyMDE5cmUgZG9uZSFcbiAgICAvLyBPdGhlcndpc2UsIGNvcHktb24td3JpdGUuXG4gICAgaWYgKG9uICE9PSBvbjApIChvbjEgPSAob24wID0gb24pLmNvcHkoKSkub24obmFtZSwgbGlzdGVuZXIpO1xuXG4gICAgc2NoZWR1bGUub24gPSBvbjE7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5hbWUsIGxpc3RlbmVyKSB7XG4gIHZhciBpZCA9IHRoaXMuX2lkO1xuXG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoIDwgMlxuICAgICAgPyBnZXQodGhpcy5ub2RlKCksIGlkKS5vbi5vbihuYW1lKVxuICAgICAgOiB0aGlzLmVhY2gob25GdW5jdGlvbihpZCwgbmFtZSwgbGlzdGVuZXIpKTtcbn1cbiIsICJmdW5jdGlvbiByZW1vdmVGdW5jdGlvbihpZCkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHBhcmVudCA9IHRoaXMucGFyZW50Tm9kZTtcbiAgICBmb3IgKHZhciBpIGluIHRoaXMuX190cmFuc2l0aW9uKSBpZiAoK2kgIT09IGlkKSByZXR1cm47XG4gICAgaWYgKHBhcmVudCkgcGFyZW50LnJlbW92ZUNoaWxkKHRoaXMpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRoaXMub24oXCJlbmQucmVtb3ZlXCIsIHJlbW92ZUZ1bmN0aW9uKHRoaXMuX2lkKSk7XG59XG4iLCAiaW1wb3J0IHtzZWxlY3Rvcn0gZnJvbSBcImQzLXNlbGVjdGlvblwiO1xuaW1wb3J0IHtUcmFuc2l0aW9ufSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuaW1wb3J0IHNjaGVkdWxlLCB7Z2V0fSBmcm9tIFwiLi9zY2hlZHVsZS5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzZWxlY3QpIHtcbiAgdmFyIG5hbWUgPSB0aGlzLl9uYW1lLFxuICAgICAgaWQgPSB0aGlzLl9pZDtcblxuICBpZiAodHlwZW9mIHNlbGVjdCAhPT0gXCJmdW5jdGlvblwiKSBzZWxlY3QgPSBzZWxlY3RvcihzZWxlY3QpO1xuXG4gIGZvciAodmFyIGdyb3VwcyA9IHRoaXMuX2dyb3VwcywgbSA9IGdyb3Vwcy5sZW5ndGgsIHN1Ymdyb3VwcyA9IG5ldyBBcnJheShtKSwgaiA9IDA7IGogPCBtOyArK2opIHtcbiAgICBmb3IgKHZhciBncm91cCA9IGdyb3Vwc1tqXSwgbiA9IGdyb3VwLmxlbmd0aCwgc3ViZ3JvdXAgPSBzdWJncm91cHNbal0gPSBuZXcgQXJyYXkobiksIG5vZGUsIHN1Ym5vZGUsIGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAoKG5vZGUgPSBncm91cFtpXSkgJiYgKHN1Ym5vZGUgPSBzZWxlY3QuY2FsbChub2RlLCBub2RlLl9fZGF0YV9fLCBpLCBncm91cCkpKSB7XG4gICAgICAgIGlmIChcIl9fZGF0YV9fXCIgaW4gbm9kZSkgc3Vibm9kZS5fX2RhdGFfXyA9IG5vZGUuX19kYXRhX187XG4gICAgICAgIHN1Ymdyb3VwW2ldID0gc3Vibm9kZTtcbiAgICAgICAgc2NoZWR1bGUoc3ViZ3JvdXBbaV0sIG5hbWUsIGlkLCBpLCBzdWJncm91cCwgZ2V0KG5vZGUsIGlkKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBUcmFuc2l0aW9uKHN1Ymdyb3VwcywgdGhpcy5fcGFyZW50cywgbmFtZSwgaWQpO1xufVxuIiwgImltcG9ydCB7c2VsZWN0b3JBbGx9IGZyb20gXCJkMy1zZWxlY3Rpb25cIjtcbmltcG9ydCB7VHJhbnNpdGlvbn0gZnJvbSBcIi4vaW5kZXguanNcIjtcbmltcG9ydCBzY2hlZHVsZSwge2dldH0gZnJvbSBcIi4vc2NoZWR1bGUuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oc2VsZWN0KSB7XG4gIHZhciBuYW1lID0gdGhpcy5fbmFtZSxcbiAgICAgIGlkID0gdGhpcy5faWQ7XG5cbiAgaWYgKHR5cGVvZiBzZWxlY3QgIT09IFwiZnVuY3Rpb25cIikgc2VsZWN0ID0gc2VsZWN0b3JBbGwoc2VsZWN0KTtcblxuICBmb3IgKHZhciBncm91cHMgPSB0aGlzLl9ncm91cHMsIG0gPSBncm91cHMubGVuZ3RoLCBzdWJncm91cHMgPSBbXSwgcGFyZW50cyA9IFtdLCBqID0gMDsgaiA8IG07ICsraikge1xuICAgIGZvciAodmFyIGdyb3VwID0gZ3JvdXBzW2pdLCBuID0gZ3JvdXAubGVuZ3RoLCBub2RlLCBpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgaWYgKG5vZGUgPSBncm91cFtpXSkge1xuICAgICAgICBmb3IgKHZhciBjaGlsZHJlbiA9IHNlbGVjdC5jYWxsKG5vZGUsIG5vZGUuX19kYXRhX18sIGksIGdyb3VwKSwgY2hpbGQsIGluaGVyaXQgPSBnZXQobm9kZSwgaWQpLCBrID0gMCwgbCA9IGNoaWxkcmVuLmxlbmd0aDsgayA8IGw7ICsraykge1xuICAgICAgICAgIGlmIChjaGlsZCA9IGNoaWxkcmVuW2tdKSB7XG4gICAgICAgICAgICBzY2hlZHVsZShjaGlsZCwgbmFtZSwgaWQsIGssIGNoaWxkcmVuLCBpbmhlcml0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc3ViZ3JvdXBzLnB1c2goY2hpbGRyZW4pO1xuICAgICAgICBwYXJlbnRzLnB1c2gobm9kZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBUcmFuc2l0aW9uKHN1Ymdyb3VwcywgcGFyZW50cywgbmFtZSwgaWQpO1xufVxuIiwgImltcG9ydCB7c2VsZWN0aW9ufSBmcm9tIFwiZDMtc2VsZWN0aW9uXCI7XG5cbnZhciBTZWxlY3Rpb24gPSBzZWxlY3Rpb24ucHJvdG90eXBlLmNvbnN0cnVjdG9yO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIG5ldyBTZWxlY3Rpb24odGhpcy5fZ3JvdXBzLCB0aGlzLl9wYXJlbnRzKTtcbn1cbiIsICJpbXBvcnQge2ludGVycG9sYXRlVHJhbnNmb3JtQ3NzIGFzIGludGVycG9sYXRlVHJhbnNmb3JtfSBmcm9tIFwiZDMtaW50ZXJwb2xhdGVcIjtcbmltcG9ydCB7c3R5bGV9IGZyb20gXCJkMy1zZWxlY3Rpb25cIjtcbmltcG9ydCB7c2V0fSBmcm9tIFwiLi9zY2hlZHVsZS5qc1wiO1xuaW1wb3J0IHt0d2VlblZhbHVlfSBmcm9tIFwiLi90d2Vlbi5qc1wiO1xuaW1wb3J0IGludGVycG9sYXRlIGZyb20gXCIuL2ludGVycG9sYXRlLmpzXCI7XG5cbmZ1bmN0aW9uIHN0eWxlTnVsbChuYW1lLCBpbnRlcnBvbGF0ZSkge1xuICB2YXIgc3RyaW5nMDAsXG4gICAgICBzdHJpbmcxMCxcbiAgICAgIGludGVycG9sYXRlMDtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBzdHJpbmcwID0gc3R5bGUodGhpcywgbmFtZSksXG4gICAgICAgIHN0cmluZzEgPSAodGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShuYW1lKSwgc3R5bGUodGhpcywgbmFtZSkpO1xuICAgIHJldHVybiBzdHJpbmcwID09PSBzdHJpbmcxID8gbnVsbFxuICAgICAgICA6IHN0cmluZzAgPT09IHN0cmluZzAwICYmIHN0cmluZzEgPT09IHN0cmluZzEwID8gaW50ZXJwb2xhdGUwXG4gICAgICAgIDogaW50ZXJwb2xhdGUwID0gaW50ZXJwb2xhdGUoc3RyaW5nMDAgPSBzdHJpbmcwLCBzdHJpbmcxMCA9IHN0cmluZzEpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBzdHlsZVJlbW92ZShuYW1lKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KG5hbWUpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBzdHlsZUNvbnN0YW50KG5hbWUsIGludGVycG9sYXRlLCB2YWx1ZTEpIHtcbiAgdmFyIHN0cmluZzAwLFxuICAgICAgc3RyaW5nMSA9IHZhbHVlMSArIFwiXCIsXG4gICAgICBpbnRlcnBvbGF0ZTA7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgc3RyaW5nMCA9IHN0eWxlKHRoaXMsIG5hbWUpO1xuICAgIHJldHVybiBzdHJpbmcwID09PSBzdHJpbmcxID8gbnVsbFxuICAgICAgICA6IHN0cmluZzAgPT09IHN0cmluZzAwID8gaW50ZXJwb2xhdGUwXG4gICAgICAgIDogaW50ZXJwb2xhdGUwID0gaW50ZXJwb2xhdGUoc3RyaW5nMDAgPSBzdHJpbmcwLCB2YWx1ZTEpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBzdHlsZUZ1bmN0aW9uKG5hbWUsIGludGVycG9sYXRlLCB2YWx1ZSkge1xuICB2YXIgc3RyaW5nMDAsXG4gICAgICBzdHJpbmcxMCxcbiAgICAgIGludGVycG9sYXRlMDtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBzdHJpbmcwID0gc3R5bGUodGhpcywgbmFtZSksXG4gICAgICAgIHZhbHVlMSA9IHZhbHVlKHRoaXMpLFxuICAgICAgICBzdHJpbmcxID0gdmFsdWUxICsgXCJcIjtcbiAgICBpZiAodmFsdWUxID09IG51bGwpIHN0cmluZzEgPSB2YWx1ZTEgPSAodGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShuYW1lKSwgc3R5bGUodGhpcywgbmFtZSkpO1xuICAgIHJldHVybiBzdHJpbmcwID09PSBzdHJpbmcxID8gbnVsbFxuICAgICAgICA6IHN0cmluZzAgPT09IHN0cmluZzAwICYmIHN0cmluZzEgPT09IHN0cmluZzEwID8gaW50ZXJwb2xhdGUwXG4gICAgICAgIDogKHN0cmluZzEwID0gc3RyaW5nMSwgaW50ZXJwb2xhdGUwID0gaW50ZXJwb2xhdGUoc3RyaW5nMDAgPSBzdHJpbmcwLCB2YWx1ZTEpKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gc3R5bGVNYXliZVJlbW92ZShpZCwgbmFtZSkge1xuICB2YXIgb24wLCBvbjEsIGxpc3RlbmVyMCwga2V5ID0gXCJzdHlsZS5cIiArIG5hbWUsIGV2ZW50ID0gXCJlbmQuXCIgKyBrZXksIHJlbW92ZTtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBzY2hlZHVsZSA9IHNldCh0aGlzLCBpZCksXG4gICAgICAgIG9uID0gc2NoZWR1bGUub24sXG4gICAgICAgIGxpc3RlbmVyID0gc2NoZWR1bGUudmFsdWVba2V5XSA9PSBudWxsID8gcmVtb3ZlIHx8IChyZW1vdmUgPSBzdHlsZVJlbW92ZShuYW1lKSkgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBJZiB0aGlzIG5vZGUgc2hhcmVkIGEgZGlzcGF0Y2ggd2l0aCB0aGUgcHJldmlvdXMgbm9kZSxcbiAgICAvLyBqdXN0IGFzc2lnbiB0aGUgdXBkYXRlZCBzaGFyZWQgZGlzcGF0Y2ggYW5kIHdlXHUyMDE5cmUgZG9uZSFcbiAgICAvLyBPdGhlcndpc2UsIGNvcHktb24td3JpdGUuXG4gICAgaWYgKG9uICE9PSBvbjAgfHwgbGlzdGVuZXIwICE9PSBsaXN0ZW5lcikgKG9uMSA9IChvbjAgPSBvbikuY29weSgpKS5vbihldmVudCwgbGlzdGVuZXIwID0gbGlzdGVuZXIpO1xuXG4gICAgc2NoZWR1bGUub24gPSBvbjE7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5hbWUsIHZhbHVlLCBwcmlvcml0eSkge1xuICB2YXIgaSA9IChuYW1lICs9IFwiXCIpID09PSBcInRyYW5zZm9ybVwiID8gaW50ZXJwb2xhdGVUcmFuc2Zvcm0gOiBpbnRlcnBvbGF0ZTtcbiAgcmV0dXJuIHZhbHVlID09IG51bGwgPyB0aGlzXG4gICAgICAuc3R5bGVUd2VlbihuYW1lLCBzdHlsZU51bGwobmFtZSwgaSkpXG4gICAgICAub24oXCJlbmQuc3R5bGUuXCIgKyBuYW1lLCBzdHlsZVJlbW92ZShuYW1lKSlcbiAgICA6IHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiID8gdGhpc1xuICAgICAgLnN0eWxlVHdlZW4obmFtZSwgc3R5bGVGdW5jdGlvbihuYW1lLCBpLCB0d2VlblZhbHVlKHRoaXMsIFwic3R5bGUuXCIgKyBuYW1lLCB2YWx1ZSkpKVxuICAgICAgLmVhY2goc3R5bGVNYXliZVJlbW92ZSh0aGlzLl9pZCwgbmFtZSkpXG4gICAgOiB0aGlzXG4gICAgICAuc3R5bGVUd2VlbihuYW1lLCBzdHlsZUNvbnN0YW50KG5hbWUsIGksIHZhbHVlKSwgcHJpb3JpdHkpXG4gICAgICAub24oXCJlbmQuc3R5bGUuXCIgKyBuYW1lLCBudWxsKTtcbn1cbiIsICJmdW5jdGlvbiBzdHlsZUludGVycG9sYXRlKG5hbWUsIGksIHByaW9yaXR5KSB7XG4gIHJldHVybiBmdW5jdGlvbih0KSB7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eShuYW1lLCBpLmNhbGwodGhpcywgdCksIHByaW9yaXR5KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gc3R5bGVUd2VlbihuYW1lLCB2YWx1ZSwgcHJpb3JpdHkpIHtcbiAgdmFyIHQsIGkwO1xuICBmdW5jdGlvbiB0d2VlbigpIHtcbiAgICB2YXIgaSA9IHZhbHVlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgaWYgKGkgIT09IGkwKSB0ID0gKGkwID0gaSkgJiYgc3R5bGVJbnRlcnBvbGF0ZShuYW1lLCBpLCBwcmlvcml0eSk7XG4gICAgcmV0dXJuIHQ7XG4gIH1cbiAgdHdlZW4uX3ZhbHVlID0gdmFsdWU7XG4gIHJldHVybiB0d2Vlbjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obmFtZSwgdmFsdWUsIHByaW9yaXR5KSB7XG4gIHZhciBrZXkgPSBcInN0eWxlLlwiICsgKG5hbWUgKz0gXCJcIik7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMikgcmV0dXJuIChrZXkgPSB0aGlzLnR3ZWVuKGtleSkpICYmIGtleS5fdmFsdWU7XG4gIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gdGhpcy50d2VlbihrZXksIG51bGwpO1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBFcnJvcjtcbiAgcmV0dXJuIHRoaXMudHdlZW4oa2V5LCBzdHlsZVR3ZWVuKG5hbWUsIHZhbHVlLCBwcmlvcml0eSA9PSBudWxsID8gXCJcIiA6IHByaW9yaXR5KSk7XG59XG4iLCAiaW1wb3J0IHt0d2VlblZhbHVlfSBmcm9tIFwiLi90d2Vlbi5qc1wiO1xuXG5mdW5jdGlvbiB0ZXh0Q29uc3RhbnQodmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHRoaXMudGV4dENvbnRlbnQgPSB2YWx1ZTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gdGV4dEZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgdmFsdWUxID0gdmFsdWUodGhpcyk7XG4gICAgdGhpcy50ZXh0Q29udGVudCA9IHZhbHVlMSA9PSBudWxsID8gXCJcIiA6IHZhbHVlMTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIHRoaXMudHdlZW4oXCJ0ZXh0XCIsIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICA/IHRleHRGdW5jdGlvbih0d2VlblZhbHVlKHRoaXMsIFwidGV4dFwiLCB2YWx1ZSkpXG4gICAgICA6IHRleHRDb25zdGFudCh2YWx1ZSA9PSBudWxsID8gXCJcIiA6IHZhbHVlICsgXCJcIikpO1xufVxuIiwgImZ1bmN0aW9uIHRleHRJbnRlcnBvbGF0ZShpKSB7XG4gIHJldHVybiBmdW5jdGlvbih0KSB7XG4gICAgdGhpcy50ZXh0Q29udGVudCA9IGkuY2FsbCh0aGlzLCB0KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gdGV4dFR3ZWVuKHZhbHVlKSB7XG4gIHZhciB0MCwgaTA7XG4gIGZ1bmN0aW9uIHR3ZWVuKCkge1xuICAgIHZhciBpID0gdmFsdWUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICBpZiAoaSAhPT0gaTApIHQwID0gKGkwID0gaSkgJiYgdGV4dEludGVycG9sYXRlKGkpO1xuICAgIHJldHVybiB0MDtcbiAgfVxuICB0d2Vlbi5fdmFsdWUgPSB2YWx1ZTtcbiAgcmV0dXJuIHR3ZWVuO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih2YWx1ZSkge1xuICB2YXIga2V5ID0gXCJ0ZXh0XCI7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMSkgcmV0dXJuIChrZXkgPSB0aGlzLnR3ZWVuKGtleSkpICYmIGtleS5fdmFsdWU7XG4gIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gdGhpcy50d2VlbihrZXksIG51bGwpO1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBFcnJvcjtcbiAgcmV0dXJuIHRoaXMudHdlZW4oa2V5LCB0ZXh0VHdlZW4odmFsdWUpKTtcbn1cbiIsICJpbXBvcnQge1RyYW5zaXRpb24sIG5ld0lkfSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuaW1wb3J0IHNjaGVkdWxlLCB7Z2V0fSBmcm9tIFwiLi9zY2hlZHVsZS5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgdmFyIG5hbWUgPSB0aGlzLl9uYW1lLFxuICAgICAgaWQwID0gdGhpcy5faWQsXG4gICAgICBpZDEgPSBuZXdJZCgpO1xuXG4gIGZvciAodmFyIGdyb3VwcyA9IHRoaXMuX2dyb3VwcywgbSA9IGdyb3Vwcy5sZW5ndGgsIGogPSAwOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAgPSBncm91cHNbal0sIG4gPSBncm91cC5sZW5ndGgsIG5vZGUsIGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAobm9kZSA9IGdyb3VwW2ldKSB7XG4gICAgICAgIHZhciBpbmhlcml0ID0gZ2V0KG5vZGUsIGlkMCk7XG4gICAgICAgIHNjaGVkdWxlKG5vZGUsIG5hbWUsIGlkMSwgaSwgZ3JvdXAsIHtcbiAgICAgICAgICB0aW1lOiBpbmhlcml0LnRpbWUgKyBpbmhlcml0LmRlbGF5ICsgaW5oZXJpdC5kdXJhdGlvbixcbiAgICAgICAgICBkZWxheTogMCxcbiAgICAgICAgICBkdXJhdGlvbjogaW5oZXJpdC5kdXJhdGlvbixcbiAgICAgICAgICBlYXNlOiBpbmhlcml0LmVhc2VcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBUcmFuc2l0aW9uKGdyb3VwcywgdGhpcy5fcGFyZW50cywgbmFtZSwgaWQxKTtcbn1cbiIsICJpbXBvcnQge3NldH0gZnJvbSBcIi4vc2NoZWR1bGUuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHZhciBvbjAsIG9uMSwgdGhhdCA9IHRoaXMsIGlkID0gdGhhdC5faWQsIHNpemUgPSB0aGF0LnNpemUoKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgIHZhciBjYW5jZWwgPSB7dmFsdWU6IHJlamVjdH0sXG4gICAgICAgIGVuZCA9IHt2YWx1ZTogZnVuY3Rpb24oKSB7IGlmICgtLXNpemUgPT09IDApIHJlc29sdmUoKTsgfX07XG5cbiAgICB0aGF0LmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgc2NoZWR1bGUgPSBzZXQodGhpcywgaWQpLFxuICAgICAgICAgIG9uID0gc2NoZWR1bGUub247XG5cbiAgICAgIC8vIElmIHRoaXMgbm9kZSBzaGFyZWQgYSBkaXNwYXRjaCB3aXRoIHRoZSBwcmV2aW91cyBub2RlLFxuICAgICAgLy8ganVzdCBhc3NpZ24gdGhlIHVwZGF0ZWQgc2hhcmVkIGRpc3BhdGNoIGFuZCB3ZVx1MjAxOXJlIGRvbmUhXG4gICAgICAvLyBPdGhlcndpc2UsIGNvcHktb24td3JpdGUuXG4gICAgICBpZiAob24gIT09IG9uMCkge1xuICAgICAgICBvbjEgPSAob24wID0gb24pLmNvcHkoKTtcbiAgICAgICAgb24xLl8uY2FuY2VsLnB1c2goY2FuY2VsKTtcbiAgICAgICAgb24xLl8uaW50ZXJydXB0LnB1c2goY2FuY2VsKTtcbiAgICAgICAgb24xLl8uZW5kLnB1c2goZW5kKTtcbiAgICAgIH1cblxuICAgICAgc2NoZWR1bGUub24gPSBvbjE7XG4gICAgfSk7XG5cbiAgICAvLyBUaGUgc2VsZWN0aW9uIHdhcyBlbXB0eSwgcmVzb2x2ZSBlbmQgaW1tZWRpYXRlbHlcbiAgICBpZiAoc2l6ZSA9PT0gMCkgcmVzb2x2ZSgpO1xuICB9KTtcbn1cbiIsICJpbXBvcnQge3NlbGVjdGlvbn0gZnJvbSBcImQzLXNlbGVjdGlvblwiO1xuaW1wb3J0IHRyYW5zaXRpb25fYXR0ciBmcm9tIFwiLi9hdHRyLmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl9hdHRyVHdlZW4gZnJvbSBcIi4vYXR0clR3ZWVuLmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl9kZWxheSBmcm9tIFwiLi9kZWxheS5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fZHVyYXRpb24gZnJvbSBcIi4vZHVyYXRpb24uanNcIjtcbmltcG9ydCB0cmFuc2l0aW9uX2Vhc2UgZnJvbSBcIi4vZWFzZS5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fZWFzZVZhcnlpbmcgZnJvbSBcIi4vZWFzZVZhcnlpbmcuanNcIjtcbmltcG9ydCB0cmFuc2l0aW9uX2ZpbHRlciBmcm9tIFwiLi9maWx0ZXIuanNcIjtcbmltcG9ydCB0cmFuc2l0aW9uX21lcmdlIGZyb20gXCIuL21lcmdlLmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl9vbiBmcm9tIFwiLi9vbi5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fcmVtb3ZlIGZyb20gXCIuL3JlbW92ZS5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fc2VsZWN0IGZyb20gXCIuL3NlbGVjdC5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fc2VsZWN0QWxsIGZyb20gXCIuL3NlbGVjdEFsbC5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fc2VsZWN0aW9uIGZyb20gXCIuL3NlbGVjdGlvbi5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fc3R5bGUgZnJvbSBcIi4vc3R5bGUuanNcIjtcbmltcG9ydCB0cmFuc2l0aW9uX3N0eWxlVHdlZW4gZnJvbSBcIi4vc3R5bGVUd2Vlbi5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fdGV4dCBmcm9tIFwiLi90ZXh0LmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl90ZXh0VHdlZW4gZnJvbSBcIi4vdGV4dFR3ZWVuLmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl90cmFuc2l0aW9uIGZyb20gXCIuL3RyYW5zaXRpb24uanNcIjtcbmltcG9ydCB0cmFuc2l0aW9uX3R3ZWVuIGZyb20gXCIuL3R3ZWVuLmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl9lbmQgZnJvbSBcIi4vZW5kLmpzXCI7XG5cbnZhciBpZCA9IDA7XG5cbmV4cG9ydCBmdW5jdGlvbiBUcmFuc2l0aW9uKGdyb3VwcywgcGFyZW50cywgbmFtZSwgaWQpIHtcbiAgdGhpcy5fZ3JvdXBzID0gZ3JvdXBzO1xuICB0aGlzLl9wYXJlbnRzID0gcGFyZW50cztcbiAgdGhpcy5fbmFtZSA9IG5hbWU7XG4gIHRoaXMuX2lkID0gaWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRyYW5zaXRpb24obmFtZSkge1xuICByZXR1cm4gc2VsZWN0aW9uKCkudHJhbnNpdGlvbihuYW1lKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5ld0lkKCkge1xuICByZXR1cm4gKytpZDtcbn1cblxudmFyIHNlbGVjdGlvbl9wcm90b3R5cGUgPSBzZWxlY3Rpb24ucHJvdG90eXBlO1xuXG5UcmFuc2l0aW9uLnByb3RvdHlwZSA9IHRyYW5zaXRpb24ucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogVHJhbnNpdGlvbixcbiAgc2VsZWN0OiB0cmFuc2l0aW9uX3NlbGVjdCxcbiAgc2VsZWN0QWxsOiB0cmFuc2l0aW9uX3NlbGVjdEFsbCxcbiAgZmlsdGVyOiB0cmFuc2l0aW9uX2ZpbHRlcixcbiAgbWVyZ2U6IHRyYW5zaXRpb25fbWVyZ2UsXG4gIHNlbGVjdGlvbjogdHJhbnNpdGlvbl9zZWxlY3Rpb24sXG4gIHRyYW5zaXRpb246IHRyYW5zaXRpb25fdHJhbnNpdGlvbixcbiAgY2FsbDogc2VsZWN0aW9uX3Byb3RvdHlwZS5jYWxsLFxuICBub2Rlczogc2VsZWN0aW9uX3Byb3RvdHlwZS5ub2RlcyxcbiAgbm9kZTogc2VsZWN0aW9uX3Byb3RvdHlwZS5ub2RlLFxuICBzaXplOiBzZWxlY3Rpb25fcHJvdG90eXBlLnNpemUsXG4gIGVtcHR5OiBzZWxlY3Rpb25fcHJvdG90eXBlLmVtcHR5LFxuICBlYWNoOiBzZWxlY3Rpb25fcHJvdG90eXBlLmVhY2gsXG4gIG9uOiB0cmFuc2l0aW9uX29uLFxuICBhdHRyOiB0cmFuc2l0aW9uX2F0dHIsXG4gIGF0dHJUd2VlbjogdHJhbnNpdGlvbl9hdHRyVHdlZW4sXG4gIHN0eWxlOiB0cmFuc2l0aW9uX3N0eWxlLFxuICBzdHlsZVR3ZWVuOiB0cmFuc2l0aW9uX3N0eWxlVHdlZW4sXG4gIHRleHQ6IHRyYW5zaXRpb25fdGV4dCxcbiAgdGV4dFR3ZWVuOiB0cmFuc2l0aW9uX3RleHRUd2VlbixcbiAgcmVtb3ZlOiB0cmFuc2l0aW9uX3JlbW92ZSxcbiAgdHdlZW46IHRyYW5zaXRpb25fdHdlZW4sXG4gIGRlbGF5OiB0cmFuc2l0aW9uX2RlbGF5LFxuICBkdXJhdGlvbjogdHJhbnNpdGlvbl9kdXJhdGlvbixcbiAgZWFzZTogdHJhbnNpdGlvbl9lYXNlLFxuICBlYXNlVmFyeWluZzogdHJhbnNpdGlvbl9lYXNlVmFyeWluZyxcbiAgZW5kOiB0cmFuc2l0aW9uX2VuZCxcbiAgW1N5bWJvbC5pdGVyYXRvcl06IHNlbGVjdGlvbl9wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXVxufTtcbiIsICJleHBvcnQgZnVuY3Rpb24gY3ViaWNJbih0KSB7XG4gIHJldHVybiB0ICogdCAqIHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjdWJpY091dCh0KSB7XG4gIHJldHVybiAtLXQgKiB0ICogdCArIDE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjdWJpY0luT3V0KHQpIHtcbiAgcmV0dXJuICgodCAqPSAyKSA8PSAxID8gdCAqIHQgKiB0IDogKHQgLT0gMikgKiB0ICogdCArIDIpIC8gMjtcbn1cbiIsICJpbXBvcnQge1RyYW5zaXRpb24sIG5ld0lkfSBmcm9tIFwiLi4vdHJhbnNpdGlvbi9pbmRleC5qc1wiO1xuaW1wb3J0IHNjaGVkdWxlIGZyb20gXCIuLi90cmFuc2l0aW9uL3NjaGVkdWxlLmpzXCI7XG5pbXBvcnQge2Vhc2VDdWJpY0luT3V0fSBmcm9tIFwiZDMtZWFzZVwiO1xuaW1wb3J0IHtub3d9IGZyb20gXCJkMy10aW1lclwiO1xuXG52YXIgZGVmYXVsdFRpbWluZyA9IHtcbiAgdGltZTogbnVsbCwgLy8gU2V0IG9uIHVzZS5cbiAgZGVsYXk6IDAsXG4gIGR1cmF0aW9uOiAyNTAsXG4gIGVhc2U6IGVhc2VDdWJpY0luT3V0XG59O1xuXG5mdW5jdGlvbiBpbmhlcml0KG5vZGUsIGlkKSB7XG4gIHZhciB0aW1pbmc7XG4gIHdoaWxlICghKHRpbWluZyA9IG5vZGUuX190cmFuc2l0aW9uKSB8fCAhKHRpbWluZyA9IHRpbWluZ1tpZF0pKSB7XG4gICAgaWYgKCEobm9kZSA9IG5vZGUucGFyZW50Tm9kZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdHJhbnNpdGlvbiAke2lkfSBub3QgZm91bmRgKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRpbWluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obmFtZSkge1xuICB2YXIgaWQsXG4gICAgICB0aW1pbmc7XG5cbiAgaWYgKG5hbWUgaW5zdGFuY2VvZiBUcmFuc2l0aW9uKSB7XG4gICAgaWQgPSBuYW1lLl9pZCwgbmFtZSA9IG5hbWUuX25hbWU7XG4gIH0gZWxzZSB7XG4gICAgaWQgPSBuZXdJZCgpLCAodGltaW5nID0gZGVmYXVsdFRpbWluZykudGltZSA9IG5vdygpLCBuYW1lID0gbmFtZSA9PSBudWxsID8gbnVsbCA6IG5hbWUgKyBcIlwiO1xuICB9XG5cbiAgZm9yICh2YXIgZ3JvdXBzID0gdGhpcy5fZ3JvdXBzLCBtID0gZ3JvdXBzLmxlbmd0aCwgaiA9IDA7IGogPCBtOyArK2opIHtcbiAgICBmb3IgKHZhciBncm91cCA9IGdyb3Vwc1tqXSwgbiA9IGdyb3VwLmxlbmd0aCwgbm9kZSwgaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICAgIGlmIChub2RlID0gZ3JvdXBbaV0pIHtcbiAgICAgICAgc2NoZWR1bGUobm9kZSwgbmFtZSwgaWQsIGksIGdyb3VwLCB0aW1pbmcgfHwgaW5oZXJpdChub2RlLCBpZCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXcgVHJhbnNpdGlvbihncm91cHMsIHRoaXMuX3BhcmVudHMsIG5hbWUsIGlkKTtcbn1cbiIsICJpbXBvcnQge3NlbGVjdGlvbn0gZnJvbSBcImQzLXNlbGVjdGlvblwiO1xuaW1wb3J0IHNlbGVjdGlvbl9pbnRlcnJ1cHQgZnJvbSBcIi4vaW50ZXJydXB0LmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX3RyYW5zaXRpb24gZnJvbSBcIi4vdHJhbnNpdGlvbi5qc1wiO1xuXG5zZWxlY3Rpb24ucHJvdG90eXBlLmludGVycnVwdCA9IHNlbGVjdGlvbl9pbnRlcnJ1cHQ7XG5zZWxlY3Rpb24ucHJvdG90eXBlLnRyYW5zaXRpb24gPSBzZWxlY3Rpb25fdHJhbnNpdGlvbjtcbiIsICJpbXBvcnQge2Rpc3BhdGNofSBmcm9tIFwiZDMtZGlzcGF0Y2hcIjtcbmltcG9ydCB7ZHJhZ0Rpc2FibGUsIGRyYWdFbmFibGV9IGZyb20gXCJkMy1kcmFnXCI7XG5pbXBvcnQge2ludGVycG9sYXRlfSBmcm9tIFwiZDMtaW50ZXJwb2xhdGVcIjtcbmltcG9ydCB7cG9pbnRlciwgc2VsZWN0fSBmcm9tIFwiZDMtc2VsZWN0aW9uXCI7XG5pbXBvcnQge2ludGVycnVwdH0gZnJvbSBcImQzLXRyYW5zaXRpb25cIjtcbmltcG9ydCBjb25zdGFudCBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuaW1wb3J0IEJydXNoRXZlbnQgZnJvbSBcIi4vZXZlbnQuanNcIjtcbmltcG9ydCBub2V2ZW50LCB7bm9wcm9wYWdhdGlvbn0gZnJvbSBcIi4vbm9ldmVudC5qc1wiO1xuXG52YXIgTU9ERV9EUkFHID0ge25hbWU6IFwiZHJhZ1wifSxcbiAgICBNT0RFX1NQQUNFID0ge25hbWU6IFwic3BhY2VcIn0sXG4gICAgTU9ERV9IQU5ETEUgPSB7bmFtZTogXCJoYW5kbGVcIn0sXG4gICAgTU9ERV9DRU5URVIgPSB7bmFtZTogXCJjZW50ZXJcIn07XG5cbmNvbnN0IHthYnMsIG1heCwgbWlufSA9IE1hdGg7XG5cbmZ1bmN0aW9uIG51bWJlcjEoZSkge1xuICByZXR1cm4gWytlWzBdLCArZVsxXV07XG59XG5cbmZ1bmN0aW9uIG51bWJlcjIoZSkge1xuICByZXR1cm4gW251bWJlcjEoZVswXSksIG51bWJlcjEoZVsxXSldO1xufVxuXG52YXIgWCA9IHtcbiAgbmFtZTogXCJ4XCIsXG4gIGhhbmRsZXM6IFtcIndcIiwgXCJlXCJdLm1hcCh0eXBlKSxcbiAgaW5wdXQ6IGZ1bmN0aW9uKHgsIGUpIHsgcmV0dXJuIHggPT0gbnVsbCA/IG51bGwgOiBbWyt4WzBdLCBlWzBdWzFdXSwgWyt4WzFdLCBlWzFdWzFdXV07IH0sXG4gIG91dHB1dDogZnVuY3Rpb24oeHkpIHsgcmV0dXJuIHh5ICYmIFt4eVswXVswXSwgeHlbMV1bMF1dOyB9XG59O1xuXG52YXIgWSA9IHtcbiAgbmFtZTogXCJ5XCIsXG4gIGhhbmRsZXM6IFtcIm5cIiwgXCJzXCJdLm1hcCh0eXBlKSxcbiAgaW5wdXQ6IGZ1bmN0aW9uKHksIGUpIHsgcmV0dXJuIHkgPT0gbnVsbCA/IG51bGwgOiBbW2VbMF1bMF0sICt5WzBdXSwgW2VbMV1bMF0sICt5WzFdXV07IH0sXG4gIG91dHB1dDogZnVuY3Rpb24oeHkpIHsgcmV0dXJuIHh5ICYmIFt4eVswXVsxXSwgeHlbMV1bMV1dOyB9XG59O1xuXG52YXIgWFkgPSB7XG4gIG5hbWU6IFwieHlcIixcbiAgaGFuZGxlczogW1wiblwiLCBcIndcIiwgXCJlXCIsIFwic1wiLCBcIm53XCIsIFwibmVcIiwgXCJzd1wiLCBcInNlXCJdLm1hcCh0eXBlKSxcbiAgaW5wdXQ6IGZ1bmN0aW9uKHh5KSB7IHJldHVybiB4eSA9PSBudWxsID8gbnVsbCA6IG51bWJlcjIoeHkpOyB9LFxuICBvdXRwdXQ6IGZ1bmN0aW9uKHh5KSB7IHJldHVybiB4eTsgfVxufTtcblxudmFyIGN1cnNvcnMgPSB7XG4gIG92ZXJsYXk6IFwiY3Jvc3NoYWlyXCIsXG4gIHNlbGVjdGlvbjogXCJtb3ZlXCIsXG4gIG46IFwibnMtcmVzaXplXCIsXG4gIGU6IFwiZXctcmVzaXplXCIsXG4gIHM6IFwibnMtcmVzaXplXCIsXG4gIHc6IFwiZXctcmVzaXplXCIsXG4gIG53OiBcIm53c2UtcmVzaXplXCIsXG4gIG5lOiBcIm5lc3ctcmVzaXplXCIsXG4gIHNlOiBcIm53c2UtcmVzaXplXCIsXG4gIHN3OiBcIm5lc3ctcmVzaXplXCJcbn07XG5cbnZhciBmbGlwWCA9IHtcbiAgZTogXCJ3XCIsXG4gIHc6IFwiZVwiLFxuICBudzogXCJuZVwiLFxuICBuZTogXCJud1wiLFxuICBzZTogXCJzd1wiLFxuICBzdzogXCJzZVwiXG59O1xuXG52YXIgZmxpcFkgPSB7XG4gIG46IFwic1wiLFxuICBzOiBcIm5cIixcbiAgbnc6IFwic3dcIixcbiAgbmU6IFwic2VcIixcbiAgc2U6IFwibmVcIixcbiAgc3c6IFwibndcIlxufTtcblxudmFyIHNpZ25zWCA9IHtcbiAgb3ZlcmxheTogKzEsXG4gIHNlbGVjdGlvbjogKzEsXG4gIG46IG51bGwsXG4gIGU6ICsxLFxuICBzOiBudWxsLFxuICB3OiAtMSxcbiAgbnc6IC0xLFxuICBuZTogKzEsXG4gIHNlOiArMSxcbiAgc3c6IC0xXG59O1xuXG52YXIgc2lnbnNZID0ge1xuICBvdmVybGF5OiArMSxcbiAgc2VsZWN0aW9uOiArMSxcbiAgbjogLTEsXG4gIGU6IG51bGwsXG4gIHM6ICsxLFxuICB3OiBudWxsLFxuICBudzogLTEsXG4gIG5lOiAtMSxcbiAgc2U6ICsxLFxuICBzdzogKzFcbn07XG5cbmZ1bmN0aW9uIHR5cGUodCkge1xuICByZXR1cm4ge3R5cGU6IHR9O1xufVxuXG4vLyBJZ25vcmUgcmlnaHQtY2xpY2ssIHNpbmNlIHRoYXQgc2hvdWxkIG9wZW4gdGhlIGNvbnRleHQgbWVudS5cbmZ1bmN0aW9uIGRlZmF1bHRGaWx0ZXIoZXZlbnQpIHtcbiAgcmV0dXJuICFldmVudC5jdHJsS2V5ICYmICFldmVudC5idXR0b247XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRFeHRlbnQoKSB7XG4gIHZhciBzdmcgPSB0aGlzLm93bmVyU1ZHRWxlbWVudCB8fCB0aGlzO1xuICBpZiAoc3ZnLmhhc0F0dHJpYnV0ZShcInZpZXdCb3hcIikpIHtcbiAgICBzdmcgPSBzdmcudmlld0JveC5iYXNlVmFsO1xuICAgIHJldHVybiBbW3N2Zy54LCBzdmcueV0sIFtzdmcueCArIHN2Zy53aWR0aCwgc3ZnLnkgKyBzdmcuaGVpZ2h0XV07XG4gIH1cbiAgcmV0dXJuIFtbMCwgMF0sIFtzdmcud2lkdGguYmFzZVZhbC52YWx1ZSwgc3ZnLmhlaWdodC5iYXNlVmFsLnZhbHVlXV07XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRUb3VjaGFibGUoKSB7XG4gIHJldHVybiBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMgfHwgKFwib250b3VjaHN0YXJ0XCIgaW4gdGhpcyk7XG59XG5cbi8vIExpa2UgZDMubG9jYWwsIGJ1dCB3aXRoIHRoZSBuYW1lIFx1MjAxQ19fYnJ1c2hcdTIwMUQgcmF0aGVyIHRoYW4gYXV0by1nZW5lcmF0ZWQuXG5mdW5jdGlvbiBsb2NhbChub2RlKSB7XG4gIHdoaWxlICghbm9kZS5fX2JydXNoKSBpZiAoIShub2RlID0gbm9kZS5wYXJlbnROb2RlKSkgcmV0dXJuO1xuICByZXR1cm4gbm9kZS5fX2JydXNoO1xufVxuXG5mdW5jdGlvbiBlbXB0eShleHRlbnQpIHtcbiAgcmV0dXJuIGV4dGVudFswXVswXSA9PT0gZXh0ZW50WzFdWzBdXG4gICAgICB8fCBleHRlbnRbMF1bMV0gPT09IGV4dGVudFsxXVsxXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJydXNoU2VsZWN0aW9uKG5vZGUpIHtcbiAgdmFyIHN0YXRlID0gbm9kZS5fX2JydXNoO1xuICByZXR1cm4gc3RhdGUgPyBzdGF0ZS5kaW0ub3V0cHV0KHN0YXRlLnNlbGVjdGlvbikgOiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnJ1c2hYKCkge1xuICByZXR1cm4gYnJ1c2goWCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBicnVzaFkoKSB7XG4gIHJldHVybiBicnVzaChZKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHJldHVybiBicnVzaChYWSk7XG59XG5cbmZ1bmN0aW9uIGJydXNoKGRpbSkge1xuICB2YXIgZXh0ZW50ID0gZGVmYXVsdEV4dGVudCxcbiAgICAgIGZpbHRlciA9IGRlZmF1bHRGaWx0ZXIsXG4gICAgICB0b3VjaGFibGUgPSBkZWZhdWx0VG91Y2hhYmxlLFxuICAgICAga2V5cyA9IHRydWUsXG4gICAgICBsaXN0ZW5lcnMgPSBkaXNwYXRjaChcInN0YXJ0XCIsIFwiYnJ1c2hcIiwgXCJlbmRcIiksXG4gICAgICBoYW5kbGVTaXplID0gNixcbiAgICAgIHRvdWNoZW5kaW5nO1xuXG4gIGZ1bmN0aW9uIGJydXNoKGdyb3VwKSB7XG4gICAgdmFyIG92ZXJsYXkgPSBncm91cFxuICAgICAgICAucHJvcGVydHkoXCJfX2JydXNoXCIsIGluaXRpYWxpemUpXG4gICAgICAuc2VsZWN0QWxsKFwiLm92ZXJsYXlcIilcbiAgICAgIC5kYXRhKFt0eXBlKFwib3ZlcmxheVwiKV0pO1xuXG4gICAgb3ZlcmxheS5lbnRlcigpLmFwcGVuZChcInJlY3RcIilcbiAgICAgICAgLmF0dHIoXCJjbGFzc1wiLCBcIm92ZXJsYXlcIilcbiAgICAgICAgLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLCBcImFsbFwiKVxuICAgICAgICAuYXR0cihcImN1cnNvclwiLCBjdXJzb3JzLm92ZXJsYXkpXG4gICAgICAubWVyZ2Uob3ZlcmxheSlcbiAgICAgICAgLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIGV4dGVudCA9IGxvY2FsKHRoaXMpLmV4dGVudDtcbiAgICAgICAgICBzZWxlY3QodGhpcylcbiAgICAgICAgICAgICAgLmF0dHIoXCJ4XCIsIGV4dGVudFswXVswXSlcbiAgICAgICAgICAgICAgLmF0dHIoXCJ5XCIsIGV4dGVudFswXVsxXSlcbiAgICAgICAgICAgICAgLmF0dHIoXCJ3aWR0aFwiLCBleHRlbnRbMV1bMF0gLSBleHRlbnRbMF1bMF0pXG4gICAgICAgICAgICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGV4dGVudFsxXVsxXSAtIGV4dGVudFswXVsxXSk7XG4gICAgICAgIH0pO1xuXG4gICAgZ3JvdXAuc2VsZWN0QWxsKFwiLnNlbGVjdGlvblwiKVxuICAgICAgLmRhdGEoW3R5cGUoXCJzZWxlY3Rpb25cIildKVxuICAgICAgLmVudGVyKCkuYXBwZW5kKFwicmVjdFwiKVxuICAgICAgICAuYXR0cihcImNsYXNzXCIsIFwic2VsZWN0aW9uXCIpXG4gICAgICAgIC5hdHRyKFwiY3Vyc29yXCIsIGN1cnNvcnMuc2VsZWN0aW9uKVxuICAgICAgICAuYXR0cihcImZpbGxcIiwgXCIjNzc3XCIpXG4gICAgICAgIC5hdHRyKFwiZmlsbC1vcGFjaXR5XCIsIDAuMylcbiAgICAgICAgLmF0dHIoXCJzdHJva2VcIiwgXCIjZmZmXCIpXG4gICAgICAgIC5hdHRyKFwic2hhcGUtcmVuZGVyaW5nXCIsIFwiY3Jpc3BFZGdlc1wiKTtcblxuICAgIHZhciBoYW5kbGUgPSBncm91cC5zZWxlY3RBbGwoXCIuaGFuZGxlXCIpXG4gICAgICAuZGF0YShkaW0uaGFuZGxlcywgZnVuY3Rpb24oZCkgeyByZXR1cm4gZC50eXBlOyB9KTtcblxuICAgIGhhbmRsZS5leGl0KCkucmVtb3ZlKCk7XG5cbiAgICBoYW5kbGUuZW50ZXIoKS5hcHBlbmQoXCJyZWN0XCIpXG4gICAgICAgIC5hdHRyKFwiY2xhc3NcIiwgZnVuY3Rpb24oZCkgeyByZXR1cm4gXCJoYW5kbGUgaGFuZGxlLS1cIiArIGQudHlwZTsgfSlcbiAgICAgICAgLmF0dHIoXCJjdXJzb3JcIiwgZnVuY3Rpb24oZCkgeyByZXR1cm4gY3Vyc29yc1tkLnR5cGVdOyB9KTtcblxuICAgIGdyb3VwXG4gICAgICAgIC5lYWNoKHJlZHJhdylcbiAgICAgICAgLmF0dHIoXCJmaWxsXCIsIFwibm9uZVwiKVxuICAgICAgICAuYXR0cihcInBvaW50ZXItZXZlbnRzXCIsIFwiYWxsXCIpXG4gICAgICAgIC5vbihcIm1vdXNlZG93bi5icnVzaFwiLCBzdGFydGVkKVxuICAgICAgLmZpbHRlcih0b3VjaGFibGUpXG4gICAgICAgIC5vbihcInRvdWNoc3RhcnQuYnJ1c2hcIiwgc3RhcnRlZClcbiAgICAgICAgLm9uKFwidG91Y2htb3ZlLmJydXNoXCIsIHRvdWNobW92ZWQpXG4gICAgICAgIC5vbihcInRvdWNoZW5kLmJydXNoIHRvdWNoY2FuY2VsLmJydXNoXCIsIHRvdWNoZW5kZWQpXG4gICAgICAgIC5zdHlsZShcInRvdWNoLWFjdGlvblwiLCBcIm5vbmVcIilcbiAgICAgICAgLnN0eWxlKFwiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yXCIsIFwicmdiYSgwLDAsMCwwKVwiKTtcbiAgfVxuXG4gIGJydXNoLm1vdmUgPSBmdW5jdGlvbihncm91cCwgc2VsZWN0aW9uKSB7XG4gICAgaWYgKGdyb3VwLnR3ZWVuKSB7XG4gICAgICBncm91cFxuICAgICAgICAgIC5vbihcInN0YXJ0LmJydXNoXCIsIGZ1bmN0aW9uKGV2ZW50KSB7IGVtaXR0ZXIodGhpcywgYXJndW1lbnRzKS5iZWZvcmVzdGFydCgpLnN0YXJ0KGV2ZW50KTsgfSlcbiAgICAgICAgICAub24oXCJpbnRlcnJ1cHQuYnJ1c2ggZW5kLmJydXNoXCIsIGZ1bmN0aW9uKGV2ZW50KSB7IGVtaXR0ZXIodGhpcywgYXJndW1lbnRzKS5lbmQoZXZlbnQpOyB9KVxuICAgICAgICAgIC50d2VlbihcImJydXNoXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzLFxuICAgICAgICAgICAgICAgIHN0YXRlID0gdGhhdC5fX2JydXNoLFxuICAgICAgICAgICAgICAgIGVtaXQgPSBlbWl0dGVyKHRoYXQsIGFyZ3VtZW50cyksXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uMCA9IHN0YXRlLnNlbGVjdGlvbixcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb24xID0gZGltLmlucHV0KHR5cGVvZiBzZWxlY3Rpb24gPT09IFwiZnVuY3Rpb25cIiA/IHNlbGVjdGlvbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpIDogc2VsZWN0aW9uLCBzdGF0ZS5leHRlbnQpLFxuICAgICAgICAgICAgICAgIGkgPSBpbnRlcnBvbGF0ZShzZWxlY3Rpb24wLCBzZWxlY3Rpb24xKTtcblxuICAgICAgICAgICAgZnVuY3Rpb24gdHdlZW4odCkge1xuICAgICAgICAgICAgICBzdGF0ZS5zZWxlY3Rpb24gPSB0ID09PSAxICYmIHNlbGVjdGlvbjEgPT09IG51bGwgPyBudWxsIDogaSh0KTtcbiAgICAgICAgICAgICAgcmVkcmF3LmNhbGwodGhhdCk7XG4gICAgICAgICAgICAgIGVtaXQuYnJ1c2goKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjAgIT09IG51bGwgJiYgc2VsZWN0aW9uMSAhPT0gbnVsbCA/IHR3ZWVuIDogdHdlZW4oMSk7XG4gICAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGdyb3VwXG4gICAgICAgICAgLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXMsXG4gICAgICAgICAgICAgICAgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgICAgICAgICAgICBzdGF0ZSA9IHRoYXQuX19icnVzaCxcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb24xID0gZGltLmlucHV0KHR5cGVvZiBzZWxlY3Rpb24gPT09IFwiZnVuY3Rpb25cIiA/IHNlbGVjdGlvbi5hcHBseSh0aGF0LCBhcmdzKSA6IHNlbGVjdGlvbiwgc3RhdGUuZXh0ZW50KSxcbiAgICAgICAgICAgICAgICBlbWl0ID0gZW1pdHRlcih0aGF0LCBhcmdzKS5iZWZvcmVzdGFydCgpO1xuXG4gICAgICAgICAgICBpbnRlcnJ1cHQodGhhdCk7XG4gICAgICAgICAgICBzdGF0ZS5zZWxlY3Rpb24gPSBzZWxlY3Rpb24xID09PSBudWxsID8gbnVsbCA6IHNlbGVjdGlvbjE7XG4gICAgICAgICAgICByZWRyYXcuY2FsbCh0aGF0KTtcbiAgICAgICAgICAgIGVtaXQuc3RhcnQoKS5icnVzaCgpLmVuZCgpO1xuICAgICAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBicnVzaC5jbGVhciA9IGZ1bmN0aW9uKGdyb3VwKSB7XG4gICAgYnJ1c2gubW92ZShncm91cCwgbnVsbCk7XG4gIH07XG5cbiAgZnVuY3Rpb24gcmVkcmF3KCkge1xuICAgIHZhciBncm91cCA9IHNlbGVjdCh0aGlzKSxcbiAgICAgICAgc2VsZWN0aW9uID0gbG9jYWwodGhpcykuc2VsZWN0aW9uO1xuXG4gICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgZ3JvdXAuc2VsZWN0QWxsKFwiLnNlbGVjdGlvblwiKVxuICAgICAgICAgIC5zdHlsZShcImRpc3BsYXlcIiwgbnVsbClcbiAgICAgICAgICAuYXR0cihcInhcIiwgc2VsZWN0aW9uWzBdWzBdKVxuICAgICAgICAgIC5hdHRyKFwieVwiLCBzZWxlY3Rpb25bMF1bMV0pXG4gICAgICAgICAgLmF0dHIoXCJ3aWR0aFwiLCBzZWxlY3Rpb25bMV1bMF0gLSBzZWxlY3Rpb25bMF1bMF0pXG4gICAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgc2VsZWN0aW9uWzFdWzFdIC0gc2VsZWN0aW9uWzBdWzFdKTtcblxuICAgICAgZ3JvdXAuc2VsZWN0QWxsKFwiLmhhbmRsZVwiKVxuICAgICAgICAgIC5zdHlsZShcImRpc3BsYXlcIiwgbnVsbClcbiAgICAgICAgICAuYXR0cihcInhcIiwgZnVuY3Rpb24oZCkgeyByZXR1cm4gZC50eXBlW2QudHlwZS5sZW5ndGggLSAxXSA9PT0gXCJlXCIgPyBzZWxlY3Rpb25bMV1bMF0gLSBoYW5kbGVTaXplIC8gMiA6IHNlbGVjdGlvblswXVswXSAtIGhhbmRsZVNpemUgLyAyOyB9KVxuICAgICAgICAgIC5hdHRyKFwieVwiLCBmdW5jdGlvbihkKSB7IHJldHVybiBkLnR5cGVbMF0gPT09IFwic1wiID8gc2VsZWN0aW9uWzFdWzFdIC0gaGFuZGxlU2l6ZSAvIDIgOiBzZWxlY3Rpb25bMF1bMV0gLSBoYW5kbGVTaXplIC8gMjsgfSlcbiAgICAgICAgICAuYXR0cihcIndpZHRoXCIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQudHlwZSA9PT0gXCJuXCIgfHwgZC50eXBlID09PSBcInNcIiA/IHNlbGVjdGlvblsxXVswXSAtIHNlbGVjdGlvblswXVswXSArIGhhbmRsZVNpemUgOiBoYW5kbGVTaXplOyB9KVxuICAgICAgICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQudHlwZSA9PT0gXCJlXCIgfHwgZC50eXBlID09PSBcIndcIiA/IHNlbGVjdGlvblsxXVsxXSAtIHNlbGVjdGlvblswXVsxXSArIGhhbmRsZVNpemUgOiBoYW5kbGVTaXplOyB9KTtcbiAgICB9XG5cbiAgICBlbHNlIHtcbiAgICAgIGdyb3VwLnNlbGVjdEFsbChcIi5zZWxlY3Rpb24sLmhhbmRsZVwiKVxuICAgICAgICAgIC5zdHlsZShcImRpc3BsYXlcIiwgXCJub25lXCIpXG4gICAgICAgICAgLmF0dHIoXCJ4XCIsIG51bGwpXG4gICAgICAgICAgLmF0dHIoXCJ5XCIsIG51bGwpXG4gICAgICAgICAgLmF0dHIoXCJ3aWR0aFwiLCBudWxsKVxuICAgICAgICAgIC5hdHRyKFwiaGVpZ2h0XCIsIG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGVtaXR0ZXIodGhhdCwgYXJncywgY2xlYW4pIHtcbiAgICB2YXIgZW1pdCA9IHRoYXQuX19icnVzaC5lbWl0dGVyO1xuICAgIHJldHVybiBlbWl0ICYmICghY2xlYW4gfHwgIWVtaXQuY2xlYW4pID8gZW1pdCA6IG5ldyBFbWl0dGVyKHRoYXQsIGFyZ3MsIGNsZWFuKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIEVtaXR0ZXIodGhhdCwgYXJncywgY2xlYW4pIHtcbiAgICB0aGlzLnRoYXQgPSB0aGF0O1xuICAgIHRoaXMuYXJncyA9IGFyZ3M7XG4gICAgdGhpcy5zdGF0ZSA9IHRoYXQuX19icnVzaDtcbiAgICB0aGlzLmFjdGl2ZSA9IDA7XG4gICAgdGhpcy5jbGVhbiA9IGNsZWFuO1xuICB9XG5cbiAgRW1pdHRlci5wcm90b3R5cGUgPSB7XG4gICAgYmVmb3Jlc3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKCsrdGhpcy5hY3RpdmUgPT09IDEpIHRoaXMuc3RhdGUuZW1pdHRlciA9IHRoaXMsIHRoaXMuc3RhcnRpbmcgPSB0cnVlO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICBzdGFydDogZnVuY3Rpb24oZXZlbnQsIG1vZGUpIHtcbiAgICAgIGlmICh0aGlzLnN0YXJ0aW5nKSB0aGlzLnN0YXJ0aW5nID0gZmFsc2UsIHRoaXMuZW1pdChcInN0YXJ0XCIsIGV2ZW50LCBtb2RlKTtcbiAgICAgIGVsc2UgdGhpcy5lbWl0KFwiYnJ1c2hcIiwgZXZlbnQpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICBicnVzaDogZnVuY3Rpb24oZXZlbnQsIG1vZGUpIHtcbiAgICAgIHRoaXMuZW1pdChcImJydXNoXCIsIGV2ZW50LCBtb2RlKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gICAgZW5kOiBmdW5jdGlvbihldmVudCwgbW9kZSkge1xuICAgICAgaWYgKC0tdGhpcy5hY3RpdmUgPT09IDApIGRlbGV0ZSB0aGlzLnN0YXRlLmVtaXR0ZXIsIHRoaXMuZW1pdChcImVuZFwiLCBldmVudCwgbW9kZSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIGVtaXQ6IGZ1bmN0aW9uKHR5cGUsIGV2ZW50LCBtb2RlKSB7XG4gICAgICB2YXIgZCA9IHNlbGVjdCh0aGlzLnRoYXQpLmRhdHVtKCk7XG4gICAgICBsaXN0ZW5lcnMuY2FsbChcbiAgICAgICAgdHlwZSxcbiAgICAgICAgdGhpcy50aGF0LFxuICAgICAgICBuZXcgQnJ1c2hFdmVudCh0eXBlLCB7XG4gICAgICAgICAgc291cmNlRXZlbnQ6IGV2ZW50LFxuICAgICAgICAgIHRhcmdldDogYnJ1c2gsXG4gICAgICAgICAgc2VsZWN0aW9uOiBkaW0ub3V0cHV0KHRoaXMuc3RhdGUuc2VsZWN0aW9uKSxcbiAgICAgICAgICBtb2RlLFxuICAgICAgICAgIGRpc3BhdGNoOiBsaXN0ZW5lcnNcbiAgICAgICAgfSksXG4gICAgICAgIGRcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIGZ1bmN0aW9uIHN0YXJ0ZWQoZXZlbnQpIHtcbiAgICBpZiAodG91Y2hlbmRpbmcgJiYgIWV2ZW50LnRvdWNoZXMpIHJldHVybjtcbiAgICBpZiAoIWZpbHRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpKSByZXR1cm47XG5cbiAgICB2YXIgdGhhdCA9IHRoaXMsXG4gICAgICAgIHR5cGUgPSBldmVudC50YXJnZXQuX19kYXRhX18udHlwZSxcbiAgICAgICAgbW9kZSA9IChrZXlzICYmIGV2ZW50Lm1ldGFLZXkgPyB0eXBlID0gXCJvdmVybGF5XCIgOiB0eXBlKSA9PT0gXCJzZWxlY3Rpb25cIiA/IE1PREVfRFJBRyA6IChrZXlzICYmIGV2ZW50LmFsdEtleSA/IE1PREVfQ0VOVEVSIDogTU9ERV9IQU5ETEUpLFxuICAgICAgICBzaWduWCA9IGRpbSA9PT0gWSA/IG51bGwgOiBzaWduc1hbdHlwZV0sXG4gICAgICAgIHNpZ25ZID0gZGltID09PSBYID8gbnVsbCA6IHNpZ25zWVt0eXBlXSxcbiAgICAgICAgc3RhdGUgPSBsb2NhbCh0aGF0KSxcbiAgICAgICAgZXh0ZW50ID0gc3RhdGUuZXh0ZW50LFxuICAgICAgICBzZWxlY3Rpb24gPSBzdGF0ZS5zZWxlY3Rpb24sXG4gICAgICAgIFcgPSBleHRlbnRbMF1bMF0sIHcwLCB3MSxcbiAgICAgICAgTiA9IGV4dGVudFswXVsxXSwgbjAsIG4xLFxuICAgICAgICBFID0gZXh0ZW50WzFdWzBdLCBlMCwgZTEsXG4gICAgICAgIFMgPSBleHRlbnRbMV1bMV0sIHMwLCBzMSxcbiAgICAgICAgZHggPSAwLFxuICAgICAgICBkeSA9IDAsXG4gICAgICAgIG1vdmluZyxcbiAgICAgICAgc2hpZnRpbmcgPSBzaWduWCAmJiBzaWduWSAmJiBrZXlzICYmIGV2ZW50LnNoaWZ0S2V5LFxuICAgICAgICBsb2NrWCxcbiAgICAgICAgbG9ja1ksXG4gICAgICAgIHBvaW50cyA9IEFycmF5LmZyb20oZXZlbnQudG91Y2hlcyB8fCBbZXZlbnRdLCB0ID0+IHtcbiAgICAgICAgICBjb25zdCBpID0gdC5pZGVudGlmaWVyO1xuICAgICAgICAgIHQgPSBwb2ludGVyKHQsIHRoYXQpO1xuICAgICAgICAgIHQucG9pbnQwID0gdC5zbGljZSgpO1xuICAgICAgICAgIHQuaWRlbnRpZmllciA9IGk7XG4gICAgICAgICAgcmV0dXJuIHQ7XG4gICAgICAgIH0pO1xuXG4gICAgaWYgKHR5cGUgPT09IFwib3ZlcmxheVwiKSB7XG4gICAgICBpZiAoc2VsZWN0aW9uKSBtb3ZpbmcgPSB0cnVlO1xuICAgICAgY29uc3QgcHRzID0gW3BvaW50c1swXSwgcG9pbnRzWzFdIHx8IHBvaW50c1swXV07XG4gICAgICBzdGF0ZS5zZWxlY3Rpb24gPSBzZWxlY3Rpb24gPSBbW1xuICAgICAgICAgIHcwID0gZGltID09PSBZID8gVyA6IG1pbihwdHNbMF1bMF0sIHB0c1sxXVswXSksXG4gICAgICAgICAgbjAgPSBkaW0gPT09IFggPyBOIDogbWluKHB0c1swXVsxXSwgcHRzWzFdWzFdKVxuICAgICAgICBdLCBbXG4gICAgICAgICAgZTAgPSBkaW0gPT09IFkgPyBFIDogbWF4KHB0c1swXVswXSwgcHRzWzFdWzBdKSxcbiAgICAgICAgICBzMCA9IGRpbSA9PT0gWCA/IFMgOiBtYXgocHRzWzBdWzFdLCBwdHNbMV1bMV0pXG4gICAgICAgIF1dO1xuICAgICAgaWYgKHBvaW50cy5sZW5ndGggPiAxKSBtb3ZlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHcwID0gc2VsZWN0aW9uWzBdWzBdO1xuICAgICAgbjAgPSBzZWxlY3Rpb25bMF1bMV07XG4gICAgICBlMCA9IHNlbGVjdGlvblsxXVswXTtcbiAgICAgIHMwID0gc2VsZWN0aW9uWzFdWzFdO1xuICAgIH1cblxuICAgIHcxID0gdzA7XG4gICAgbjEgPSBuMDtcbiAgICBlMSA9IGUwO1xuICAgIHMxID0gczA7XG5cbiAgICB2YXIgZ3JvdXAgPSBzZWxlY3QodGhhdClcbiAgICAgICAgLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLCBcIm5vbmVcIik7XG5cbiAgICB2YXIgb3ZlcmxheSA9IGdyb3VwLnNlbGVjdEFsbChcIi5vdmVybGF5XCIpXG4gICAgICAgIC5hdHRyKFwiY3Vyc29yXCIsIGN1cnNvcnNbdHlwZV0pO1xuXG4gICAgaW50ZXJydXB0KHRoYXQpO1xuICAgIHZhciBlbWl0ID0gZW1pdHRlcih0aGF0LCBhcmd1bWVudHMsIHRydWUpLmJlZm9yZXN0YXJ0KCk7XG5cbiAgICBpZiAoZXZlbnQudG91Y2hlcykge1xuICAgICAgZW1pdC5tb3ZlZCA9IG1vdmVkO1xuICAgICAgZW1pdC5lbmRlZCA9IGVuZGVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgdmlldyA9IHNlbGVjdChldmVudC52aWV3KVxuICAgICAgICAgIC5vbihcIm1vdXNlbW92ZS5icnVzaFwiLCBtb3ZlZCwgdHJ1ZSlcbiAgICAgICAgICAub24oXCJtb3VzZXVwLmJydXNoXCIsIGVuZGVkLCB0cnVlKTtcbiAgICAgIGlmIChrZXlzKSB2aWV3XG4gICAgICAgICAgLm9uKFwia2V5ZG93bi5icnVzaFwiLCBrZXlkb3duZWQsIHRydWUpXG4gICAgICAgICAgLm9uKFwia2V5dXAuYnJ1c2hcIiwga2V5dXBwZWQsIHRydWUpXG5cbiAgICAgIGRyYWdEaXNhYmxlKGV2ZW50LnZpZXcpO1xuICAgIH1cblxuICAgIHJlZHJhdy5jYWxsKHRoYXQpO1xuICAgIGVtaXQuc3RhcnQoZXZlbnQsIG1vZGUubmFtZSk7XG5cbiAgICBmdW5jdGlvbiBtb3ZlZChldmVudCkge1xuICAgICAgZm9yIChjb25zdCBwIG9mIGV2ZW50LmNoYW5nZWRUb3VjaGVzIHx8IFtldmVudF0pIHtcbiAgICAgICAgZm9yIChjb25zdCBkIG9mIHBvaW50cylcbiAgICAgICAgICBpZiAoZC5pZGVudGlmaWVyID09PSBwLmlkZW50aWZpZXIpIGQuY3VyID0gcG9pbnRlcihwLCB0aGF0KTtcbiAgICAgIH1cbiAgICAgIGlmIChzaGlmdGluZyAmJiAhbG9ja1ggJiYgIWxvY2tZICYmIHBvaW50cy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgY29uc3QgcG9pbnQgPSBwb2ludHNbMF07XG4gICAgICAgIGlmIChhYnMocG9pbnQuY3VyWzBdIC0gcG9pbnRbMF0pID4gYWJzKHBvaW50LmN1clsxXSAtIHBvaW50WzFdKSlcbiAgICAgICAgICBsb2NrWSA9IHRydWU7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICBsb2NrWCA9IHRydWU7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IHBvaW50IG9mIHBvaW50cylcbiAgICAgICAgaWYgKHBvaW50LmN1cikgcG9pbnRbMF0gPSBwb2ludC5jdXJbMF0sIHBvaW50WzFdID0gcG9pbnQuY3VyWzFdO1xuICAgICAgbW92aW5nID0gdHJ1ZTtcbiAgICAgIG5vZXZlbnQoZXZlbnQpO1xuICAgICAgbW92ZShldmVudCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbW92ZShldmVudCkge1xuICAgICAgY29uc3QgcG9pbnQgPSBwb2ludHNbMF0sIHBvaW50MCA9IHBvaW50LnBvaW50MDtcbiAgICAgIHZhciB0O1xuXG4gICAgICBkeCA9IHBvaW50WzBdIC0gcG9pbnQwWzBdO1xuICAgICAgZHkgPSBwb2ludFsxXSAtIHBvaW50MFsxXTtcblxuICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgIGNhc2UgTU9ERV9TUEFDRTpcbiAgICAgICAgY2FzZSBNT0RFX0RSQUc6IHtcbiAgICAgICAgICBpZiAoc2lnblgpIGR4ID0gbWF4KFcgLSB3MCwgbWluKEUgLSBlMCwgZHgpKSwgdzEgPSB3MCArIGR4LCBlMSA9IGUwICsgZHg7XG4gICAgICAgICAgaWYgKHNpZ25ZKSBkeSA9IG1heChOIC0gbjAsIG1pbihTIC0gczAsIGR5KSksIG4xID0gbjAgKyBkeSwgczEgPSBzMCArIGR5O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgTU9ERV9IQU5ETEU6IHtcbiAgICAgICAgICBpZiAocG9pbnRzWzFdKSB7XG4gICAgICAgICAgICBpZiAoc2lnblgpIHcxID0gbWF4KFcsIG1pbihFLCBwb2ludHNbMF1bMF0pKSwgZTEgPSBtYXgoVywgbWluKEUsIHBvaW50c1sxXVswXSkpLCBzaWduWCA9IDE7XG4gICAgICAgICAgICBpZiAoc2lnblkpIG4xID0gbWF4KE4sIG1pbihTLCBwb2ludHNbMF1bMV0pKSwgczEgPSBtYXgoTiwgbWluKFMsIHBvaW50c1sxXVsxXSkpLCBzaWduWSA9IDE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChzaWduWCA8IDApIGR4ID0gbWF4KFcgLSB3MCwgbWluKEUgLSB3MCwgZHgpKSwgdzEgPSB3MCArIGR4LCBlMSA9IGUwO1xuICAgICAgICAgICAgZWxzZSBpZiAoc2lnblggPiAwKSBkeCA9IG1heChXIC0gZTAsIG1pbihFIC0gZTAsIGR4KSksIHcxID0gdzAsIGUxID0gZTAgKyBkeDtcbiAgICAgICAgICAgIGlmIChzaWduWSA8IDApIGR5ID0gbWF4KE4gLSBuMCwgbWluKFMgLSBuMCwgZHkpKSwgbjEgPSBuMCArIGR5LCBzMSA9IHMwO1xuICAgICAgICAgICAgZWxzZSBpZiAoc2lnblkgPiAwKSBkeSA9IG1heChOIC0gczAsIG1pbihTIC0gczAsIGR5KSksIG4xID0gbjAsIHMxID0gczAgKyBkeTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBNT0RFX0NFTlRFUjoge1xuICAgICAgICAgIGlmIChzaWduWCkgdzEgPSBtYXgoVywgbWluKEUsIHcwIC0gZHggKiBzaWduWCkpLCBlMSA9IG1heChXLCBtaW4oRSwgZTAgKyBkeCAqIHNpZ25YKSk7XG4gICAgICAgICAgaWYgKHNpZ25ZKSBuMSA9IG1heChOLCBtaW4oUywgbjAgLSBkeSAqIHNpZ25ZKSksIHMxID0gbWF4KE4sIG1pbihTLCBzMCArIGR5ICogc2lnblkpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZTEgPCB3MSkge1xuICAgICAgICBzaWduWCAqPSAtMTtcbiAgICAgICAgdCA9IHcwLCB3MCA9IGUwLCBlMCA9IHQ7XG4gICAgICAgIHQgPSB3MSwgdzEgPSBlMSwgZTEgPSB0O1xuICAgICAgICBpZiAodHlwZSBpbiBmbGlwWCkgb3ZlcmxheS5hdHRyKFwiY3Vyc29yXCIsIGN1cnNvcnNbdHlwZSA9IGZsaXBYW3R5cGVdXSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzMSA8IG4xKSB7XG4gICAgICAgIHNpZ25ZICo9IC0xO1xuICAgICAgICB0ID0gbjAsIG4wID0gczAsIHMwID0gdDtcbiAgICAgICAgdCA9IG4xLCBuMSA9IHMxLCBzMSA9IHQ7XG4gICAgICAgIGlmICh0eXBlIGluIGZsaXBZKSBvdmVybGF5LmF0dHIoXCJjdXJzb3JcIiwgY3Vyc29yc1t0eXBlID0gZmxpcFlbdHlwZV1dKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXRlLnNlbGVjdGlvbikgc2VsZWN0aW9uID0gc3RhdGUuc2VsZWN0aW9uOyAvLyBNYXkgYmUgc2V0IGJ5IGJydXNoLm1vdmUhXG4gICAgICBpZiAobG9ja1gpIHcxID0gc2VsZWN0aW9uWzBdWzBdLCBlMSA9IHNlbGVjdGlvblsxXVswXTtcbiAgICAgIGlmIChsb2NrWSkgbjEgPSBzZWxlY3Rpb25bMF1bMV0sIHMxID0gc2VsZWN0aW9uWzFdWzFdO1xuXG4gICAgICBpZiAoc2VsZWN0aW9uWzBdWzBdICE9PSB3MVxuICAgICAgICAgIHx8IHNlbGVjdGlvblswXVsxXSAhPT0gbjFcbiAgICAgICAgICB8fCBzZWxlY3Rpb25bMV1bMF0gIT09IGUxXG4gICAgICAgICAgfHwgc2VsZWN0aW9uWzFdWzFdICE9PSBzMSkge1xuICAgICAgICBzdGF0ZS5zZWxlY3Rpb24gPSBbW3cxLCBuMV0sIFtlMSwgczFdXTtcbiAgICAgICAgcmVkcmF3LmNhbGwodGhhdCk7XG4gICAgICAgIGVtaXQuYnJ1c2goZXZlbnQsIG1vZGUubmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW5kZWQoZXZlbnQpIHtcbiAgICAgIG5vcHJvcGFnYXRpb24oZXZlbnQpO1xuICAgICAgaWYgKGV2ZW50LnRvdWNoZXMpIHtcbiAgICAgICAgaWYgKGV2ZW50LnRvdWNoZXMubGVuZ3RoKSByZXR1cm47XG4gICAgICAgIGlmICh0b3VjaGVuZGluZykgY2xlYXJUaW1lb3V0KHRvdWNoZW5kaW5nKTtcbiAgICAgICAgdG91Y2hlbmRpbmcgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0b3VjaGVuZGluZyA9IG51bGw7IH0sIDUwMCk7IC8vIEdob3N0IGNsaWNrcyBhcmUgZGVsYXllZCFcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRyYWdFbmFibGUoZXZlbnQudmlldywgbW92aW5nKTtcbiAgICAgICAgdmlldy5vbihcImtleWRvd24uYnJ1c2gga2V5dXAuYnJ1c2ggbW91c2Vtb3ZlLmJydXNoIG1vdXNldXAuYnJ1c2hcIiwgbnVsbCk7XG4gICAgICB9XG4gICAgICBncm91cC5hdHRyKFwicG9pbnRlci1ldmVudHNcIiwgXCJhbGxcIik7XG4gICAgICBvdmVybGF5LmF0dHIoXCJjdXJzb3JcIiwgY3Vyc29ycy5vdmVybGF5KTtcbiAgICAgIGlmIChzdGF0ZS5zZWxlY3Rpb24pIHNlbGVjdGlvbiA9IHN0YXRlLnNlbGVjdGlvbjsgLy8gTWF5IGJlIHNldCBieSBicnVzaC5tb3ZlIChvbiBzdGFydCkhXG4gICAgICBpZiAoZW1wdHkoc2VsZWN0aW9uKSkgc3RhdGUuc2VsZWN0aW9uID0gbnVsbCwgcmVkcmF3LmNhbGwodGhhdCk7XG4gICAgICBlbWl0LmVuZChldmVudCwgbW9kZS5uYW1lKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBrZXlkb3duZWQoZXZlbnQpIHtcbiAgICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkge1xuICAgICAgICBjYXNlIDE2OiB7IC8vIFNISUZUXG4gICAgICAgICAgc2hpZnRpbmcgPSBzaWduWCAmJiBzaWduWTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIDE4OiB7IC8vIEFMVFxuICAgICAgICAgIGlmIChtb2RlID09PSBNT0RFX0hBTkRMRSkge1xuICAgICAgICAgICAgaWYgKHNpZ25YKSBlMCA9IGUxIC0gZHggKiBzaWduWCwgdzAgPSB3MSArIGR4ICogc2lnblg7XG4gICAgICAgICAgICBpZiAoc2lnblkpIHMwID0gczEgLSBkeSAqIHNpZ25ZLCBuMCA9IG4xICsgZHkgKiBzaWduWTtcbiAgICAgICAgICAgIG1vZGUgPSBNT0RFX0NFTlRFUjtcbiAgICAgICAgICAgIG1vdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAzMjogeyAvLyBTUEFDRTsgdGFrZXMgcHJpb3JpdHkgb3ZlciBBTFRcbiAgICAgICAgICBpZiAobW9kZSA9PT0gTU9ERV9IQU5ETEUgfHwgbW9kZSA9PT0gTU9ERV9DRU5URVIpIHtcbiAgICAgICAgICAgIGlmIChzaWduWCA8IDApIGUwID0gZTEgLSBkeDsgZWxzZSBpZiAoc2lnblggPiAwKSB3MCA9IHcxIC0gZHg7XG4gICAgICAgICAgICBpZiAoc2lnblkgPCAwKSBzMCA9IHMxIC0gZHk7IGVsc2UgaWYgKHNpZ25ZID4gMCkgbjAgPSBuMSAtIGR5O1xuICAgICAgICAgICAgbW9kZSA9IE1PREVfU1BBQ0U7XG4gICAgICAgICAgICBvdmVybGF5LmF0dHIoXCJjdXJzb3JcIiwgY3Vyc29ycy5zZWxlY3Rpb24pO1xuICAgICAgICAgICAgbW92ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiByZXR1cm47XG4gICAgICB9XG4gICAgICBub2V2ZW50KGV2ZW50KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBrZXl1cHBlZChldmVudCkge1xuICAgICAgc3dpdGNoIChldmVudC5rZXlDb2RlKSB7XG4gICAgICAgIGNhc2UgMTY6IHsgLy8gU0hJRlRcbiAgICAgICAgICBpZiAoc2hpZnRpbmcpIHtcbiAgICAgICAgICAgIGxvY2tYID0gbG9ja1kgPSBzaGlmdGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgbW92ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIDE4OiB7IC8vIEFMVFxuICAgICAgICAgIGlmIChtb2RlID09PSBNT0RFX0NFTlRFUikge1xuICAgICAgICAgICAgaWYgKHNpZ25YIDwgMCkgZTAgPSBlMTsgZWxzZSBpZiAoc2lnblggPiAwKSB3MCA9IHcxO1xuICAgICAgICAgICAgaWYgKHNpZ25ZIDwgMCkgczAgPSBzMTsgZWxzZSBpZiAoc2lnblkgPiAwKSBuMCA9IG4xO1xuICAgICAgICAgICAgbW9kZSA9IE1PREVfSEFORExFO1xuICAgICAgICAgICAgbW92ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIDMyOiB7IC8vIFNQQUNFXG4gICAgICAgICAgaWYgKG1vZGUgPT09IE1PREVfU1BBQ0UpIHtcbiAgICAgICAgICAgIGlmIChldmVudC5hbHRLZXkpIHtcbiAgICAgICAgICAgICAgaWYgKHNpZ25YKSBlMCA9IGUxIC0gZHggKiBzaWduWCwgdzAgPSB3MSArIGR4ICogc2lnblg7XG4gICAgICAgICAgICAgIGlmIChzaWduWSkgczAgPSBzMSAtIGR5ICogc2lnblksIG4wID0gbjEgKyBkeSAqIHNpZ25ZO1xuICAgICAgICAgICAgICBtb2RlID0gTU9ERV9DRU5URVI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAoc2lnblggPCAwKSBlMCA9IGUxOyBlbHNlIGlmIChzaWduWCA+IDApIHcwID0gdzE7XG4gICAgICAgICAgICAgIGlmIChzaWduWSA8IDApIHMwID0gczE7IGVsc2UgaWYgKHNpZ25ZID4gMCkgbjAgPSBuMTtcbiAgICAgICAgICAgICAgbW9kZSA9IE1PREVfSEFORExFO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3ZlcmxheS5hdHRyKFwiY3Vyc29yXCIsIGN1cnNvcnNbdHlwZV0pO1xuICAgICAgICAgICAgbW92ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiByZXR1cm47XG4gICAgICB9XG4gICAgICBub2V2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiB0b3VjaG1vdmVkKGV2ZW50KSB7XG4gICAgZW1pdHRlcih0aGlzLCBhcmd1bWVudHMpLm1vdmVkKGV2ZW50KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRvdWNoZW5kZWQoZXZlbnQpIHtcbiAgICBlbWl0dGVyKHRoaXMsIGFyZ3VtZW50cykuZW5kZWQoZXZlbnQpO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5pdGlhbGl6ZSgpIHtcbiAgICB2YXIgc3RhdGUgPSB0aGlzLl9fYnJ1c2ggfHwge3NlbGVjdGlvbjogbnVsbH07XG4gICAgc3RhdGUuZXh0ZW50ID0gbnVtYmVyMihleHRlbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gICAgc3RhdGUuZGltID0gZGltO1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGJydXNoLmV4dGVudCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChleHRlbnQgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KG51bWJlcjIoXykpLCBicnVzaCkgOiBleHRlbnQ7XG4gIH07XG5cbiAgYnJ1c2guZmlsdGVyID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGZpbHRlciA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoISFfKSwgYnJ1c2gpIDogZmlsdGVyO1xuICB9O1xuXG4gIGJydXNoLnRvdWNoYWJsZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh0b3VjaGFibGUgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCEhXyksIGJydXNoKSA6IHRvdWNoYWJsZTtcbiAgfTtcblxuICBicnVzaC5oYW5kbGVTaXplID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGhhbmRsZVNpemUgPSArXywgYnJ1c2gpIDogaGFuZGxlU2l6ZTtcbiAgfTtcblxuICBicnVzaC5rZXlNb2RpZmllcnMgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoa2V5cyA9ICEhXywgYnJ1c2gpIDoga2V5cztcbiAgfTtcblxuICBicnVzaC5vbiA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciB2YWx1ZSA9IGxpc3RlbmVycy5vbi5hcHBseShsaXN0ZW5lcnMsIGFyZ3VtZW50cyk7XG4gICAgcmV0dXJuIHZhbHVlID09PSBsaXN0ZW5lcnMgPyBicnVzaCA6IHZhbHVlO1xuICB9O1xuXG4gIHJldHVybiBicnVzaDtcbn1cbiIsICJjb25zdCBwaSA9IE1hdGguUEksXG4gICAgdGF1ID0gMiAqIHBpLFxuICAgIGVwc2lsb24gPSAxZS02LFxuICAgIHRhdUVwc2lsb24gPSB0YXUgLSBlcHNpbG9uO1xuXG5mdW5jdGlvbiBQYXRoKCkge1xuICB0aGlzLl94MCA9IHRoaXMuX3kwID0gLy8gc3RhcnQgb2YgY3VycmVudCBzdWJwYXRoXG4gIHRoaXMuX3gxID0gdGhpcy5feTEgPSBudWxsOyAvLyBlbmQgb2YgY3VycmVudCBzdWJwYXRoXG4gIHRoaXMuXyA9IFwiXCI7XG59XG5cbmZ1bmN0aW9uIHBhdGgoKSB7XG4gIHJldHVybiBuZXcgUGF0aDtcbn1cblxuUGF0aC5wcm90b3R5cGUgPSBwYXRoLnByb3RvdHlwZSA9IHtcbiAgY29uc3RydWN0b3I6IFBhdGgsXG4gIG1vdmVUbzogZnVuY3Rpb24oeCwgeSkge1xuICAgIHRoaXMuXyArPSBcIk1cIiArICh0aGlzLl94MCA9IHRoaXMuX3gxID0gK3gpICsgXCIsXCIgKyAodGhpcy5feTAgPSB0aGlzLl95MSA9ICt5KTtcbiAgfSxcbiAgY2xvc2VQYXRoOiBmdW5jdGlvbigpIHtcbiAgICBpZiAodGhpcy5feDEgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuX3gxID0gdGhpcy5feDAsIHRoaXMuX3kxID0gdGhpcy5feTA7XG4gICAgICB0aGlzLl8gKz0gXCJaXCI7XG4gICAgfVxuICB9LFxuICBsaW5lVG86IGZ1bmN0aW9uKHgsIHkpIHtcbiAgICB0aGlzLl8gKz0gXCJMXCIgKyAodGhpcy5feDEgPSAreCkgKyBcIixcIiArICh0aGlzLl95MSA9ICt5KTtcbiAgfSxcbiAgcXVhZHJhdGljQ3VydmVUbzogZnVuY3Rpb24oeDEsIHkxLCB4LCB5KSB7XG4gICAgdGhpcy5fICs9IFwiUVwiICsgKCt4MSkgKyBcIixcIiArICgreTEpICsgXCIsXCIgKyAodGhpcy5feDEgPSAreCkgKyBcIixcIiArICh0aGlzLl95MSA9ICt5KTtcbiAgfSxcbiAgYmV6aWVyQ3VydmVUbzogZnVuY3Rpb24oeDEsIHkxLCB4MiwgeTIsIHgsIHkpIHtcbiAgICB0aGlzLl8gKz0gXCJDXCIgKyAoK3gxKSArIFwiLFwiICsgKCt5MSkgKyBcIixcIiArICgreDIpICsgXCIsXCIgKyAoK3kyKSArIFwiLFwiICsgKHRoaXMuX3gxID0gK3gpICsgXCIsXCIgKyAodGhpcy5feTEgPSAreSk7XG4gIH0sXG4gIGFyY1RvOiBmdW5jdGlvbih4MSwgeTEsIHgyLCB5Miwgcikge1xuICAgIHgxID0gK3gxLCB5MSA9ICt5MSwgeDIgPSAreDIsIHkyID0gK3kyLCByID0gK3I7XG4gICAgdmFyIHgwID0gdGhpcy5feDEsXG4gICAgICAgIHkwID0gdGhpcy5feTEsXG4gICAgICAgIHgyMSA9IHgyIC0geDEsXG4gICAgICAgIHkyMSA9IHkyIC0geTEsXG4gICAgICAgIHgwMSA9IHgwIC0geDEsXG4gICAgICAgIHkwMSA9IHkwIC0geTEsXG4gICAgICAgIGwwMV8yID0geDAxICogeDAxICsgeTAxICogeTAxO1xuXG4gICAgLy8gSXMgdGhlIHJhZGl1cyBuZWdhdGl2ZT8gRXJyb3IuXG4gICAgaWYgKHIgPCAwKSB0aHJvdyBuZXcgRXJyb3IoXCJuZWdhdGl2ZSByYWRpdXM6IFwiICsgcik7XG5cbiAgICAvLyBJcyB0aGlzIHBhdGggZW1wdHk/IE1vdmUgdG8gKHgxLHkxKS5cbiAgICBpZiAodGhpcy5feDEgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuXyArPSBcIk1cIiArICh0aGlzLl94MSA9IHgxKSArIFwiLFwiICsgKHRoaXMuX3kxID0geTEpO1xuICAgIH1cblxuICAgIC8vIE9yLCBpcyAoeDEseTEpIGNvaW5jaWRlbnQgd2l0aCAoeDAseTApPyBEbyBub3RoaW5nLlxuICAgIGVsc2UgaWYgKCEobDAxXzIgPiBlcHNpbG9uKSk7XG5cbiAgICAvLyBPciwgYXJlICh4MCx5MCksICh4MSx5MSkgYW5kICh4Mix5MikgY29sbGluZWFyP1xuICAgIC8vIEVxdWl2YWxlbnRseSwgaXMgKHgxLHkxKSBjb2luY2lkZW50IHdpdGggKHgyLHkyKT9cbiAgICAvLyBPciwgaXMgdGhlIHJhZGl1cyB6ZXJvPyBMaW5lIHRvICh4MSx5MSkuXG4gICAgZWxzZSBpZiAoIShNYXRoLmFicyh5MDEgKiB4MjEgLSB5MjEgKiB4MDEpID4gZXBzaWxvbikgfHwgIXIpIHtcbiAgICAgIHRoaXMuXyArPSBcIkxcIiArICh0aGlzLl94MSA9IHgxKSArIFwiLFwiICsgKHRoaXMuX3kxID0geTEpO1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSwgZHJhdyBhbiBhcmMhXG4gICAgZWxzZSB7XG4gICAgICB2YXIgeDIwID0geDIgLSB4MCxcbiAgICAgICAgICB5MjAgPSB5MiAtIHkwLFxuICAgICAgICAgIGwyMV8yID0geDIxICogeDIxICsgeTIxICogeTIxLFxuICAgICAgICAgIGwyMF8yID0geDIwICogeDIwICsgeTIwICogeTIwLFxuICAgICAgICAgIGwyMSA9IE1hdGguc3FydChsMjFfMiksXG4gICAgICAgICAgbDAxID0gTWF0aC5zcXJ0KGwwMV8yKSxcbiAgICAgICAgICBsID0gciAqIE1hdGgudGFuKChwaSAtIE1hdGguYWNvcygobDIxXzIgKyBsMDFfMiAtIGwyMF8yKSAvICgyICogbDIxICogbDAxKSkpIC8gMiksXG4gICAgICAgICAgdDAxID0gbCAvIGwwMSxcbiAgICAgICAgICB0MjEgPSBsIC8gbDIxO1xuXG4gICAgICAvLyBJZiB0aGUgc3RhcnQgdGFuZ2VudCBpcyBub3QgY29pbmNpZGVudCB3aXRoICh4MCx5MCksIGxpbmUgdG8uXG4gICAgICBpZiAoTWF0aC5hYnModDAxIC0gMSkgPiBlcHNpbG9uKSB7XG4gICAgICAgIHRoaXMuXyArPSBcIkxcIiArICh4MSArIHQwMSAqIHgwMSkgKyBcIixcIiArICh5MSArIHQwMSAqIHkwMSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuXyArPSBcIkFcIiArIHIgKyBcIixcIiArIHIgKyBcIiwwLDAsXCIgKyAoKyh5MDEgKiB4MjAgPiB4MDEgKiB5MjApKSArIFwiLFwiICsgKHRoaXMuX3gxID0geDEgKyB0MjEgKiB4MjEpICsgXCIsXCIgKyAodGhpcy5feTEgPSB5MSArIHQyMSAqIHkyMSk7XG4gICAgfVxuICB9LFxuICBhcmM6IGZ1bmN0aW9uKHgsIHksIHIsIGEwLCBhMSwgY2N3KSB7XG4gICAgeCA9ICt4LCB5ID0gK3ksIHIgPSArciwgY2N3ID0gISFjY3c7XG4gICAgdmFyIGR4ID0gciAqIE1hdGguY29zKGEwKSxcbiAgICAgICAgZHkgPSByICogTWF0aC5zaW4oYTApLFxuICAgICAgICB4MCA9IHggKyBkeCxcbiAgICAgICAgeTAgPSB5ICsgZHksXG4gICAgICAgIGN3ID0gMSBeIGNjdyxcbiAgICAgICAgZGEgPSBjY3cgPyBhMCAtIGExIDogYTEgLSBhMDtcblxuICAgIC8vIElzIHRoZSByYWRpdXMgbmVnYXRpdmU/IEVycm9yLlxuICAgIGlmIChyIDwgMCkgdGhyb3cgbmV3IEVycm9yKFwibmVnYXRpdmUgcmFkaXVzOiBcIiArIHIpO1xuXG4gICAgLy8gSXMgdGhpcyBwYXRoIGVtcHR5PyBNb3ZlIHRvICh4MCx5MCkuXG4gICAgaWYgKHRoaXMuX3gxID09PSBudWxsKSB7XG4gICAgICB0aGlzLl8gKz0gXCJNXCIgKyB4MCArIFwiLFwiICsgeTA7XG4gICAgfVxuXG4gICAgLy8gT3IsIGlzICh4MCx5MCkgbm90IGNvaW5jaWRlbnQgd2l0aCB0aGUgcHJldmlvdXMgcG9pbnQ/IExpbmUgdG8gKHgwLHkwKS5cbiAgICBlbHNlIGlmIChNYXRoLmFicyh0aGlzLl94MSAtIHgwKSA+IGVwc2lsb24gfHwgTWF0aC5hYnModGhpcy5feTEgLSB5MCkgPiBlcHNpbG9uKSB7XG4gICAgICB0aGlzLl8gKz0gXCJMXCIgKyB4MCArIFwiLFwiICsgeTA7XG4gICAgfVxuXG4gICAgLy8gSXMgdGhpcyBhcmMgZW1wdHk/IFdlXHUyMDE5cmUgZG9uZS5cbiAgICBpZiAoIXIpIHJldHVybjtcblxuICAgIC8vIERvZXMgdGhlIGFuZ2xlIGdvIHRoZSB3cm9uZyB3YXk/IEZsaXAgdGhlIGRpcmVjdGlvbi5cbiAgICBpZiAoZGEgPCAwKSBkYSA9IGRhICUgdGF1ICsgdGF1O1xuXG4gICAgLy8gSXMgdGhpcyBhIGNvbXBsZXRlIGNpcmNsZT8gRHJhdyB0d28gYXJjcyB0byBjb21wbGV0ZSB0aGUgY2lyY2xlLlxuICAgIGlmIChkYSA+IHRhdUVwc2lsb24pIHtcbiAgICAgIHRoaXMuXyArPSBcIkFcIiArIHIgKyBcIixcIiArIHIgKyBcIiwwLDEsXCIgKyBjdyArIFwiLFwiICsgKHggLSBkeCkgKyBcIixcIiArICh5IC0gZHkpICsgXCJBXCIgKyByICsgXCIsXCIgKyByICsgXCIsMCwxLFwiICsgY3cgKyBcIixcIiArICh0aGlzLl94MSA9IHgwKSArIFwiLFwiICsgKHRoaXMuX3kxID0geTApO1xuICAgIH1cblxuICAgIC8vIElzIHRoaXMgYXJjIG5vbi1lbXB0eT8gRHJhdyBhbiBhcmMhXG4gICAgZWxzZSBpZiAoZGEgPiBlcHNpbG9uKSB7XG4gICAgICB0aGlzLl8gKz0gXCJBXCIgKyByICsgXCIsXCIgKyByICsgXCIsMCxcIiArICgrKGRhID49IHBpKSkgKyBcIixcIiArIGN3ICsgXCIsXCIgKyAodGhpcy5feDEgPSB4ICsgciAqIE1hdGguY29zKGExKSkgKyBcIixcIiArICh0aGlzLl95MSA9IHkgKyByICogTWF0aC5zaW4oYTEpKTtcbiAgICB9XG4gIH0sXG4gIHJlY3Q6IGZ1bmN0aW9uKHgsIHksIHcsIGgpIHtcbiAgICB0aGlzLl8gKz0gXCJNXCIgKyAodGhpcy5feDAgPSB0aGlzLl94MSA9ICt4KSArIFwiLFwiICsgKHRoaXMuX3kwID0gdGhpcy5feTEgPSAreSkgKyBcImhcIiArICgrdykgKyBcInZcIiArICgraCkgKyBcImhcIiArICgtdykgKyBcIlpcIjtcbiAgfSxcbiAgdG9TdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLl87XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IHBhdGg7XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeCwgeSkge1xuICB2YXIgbm9kZXMsIHN0cmVuZ3RoID0gMTtcblxuICBpZiAoeCA9PSBudWxsKSB4ID0gMDtcbiAgaWYgKHkgPT0gbnVsbCkgeSA9IDA7XG5cbiAgZnVuY3Rpb24gZm9yY2UoKSB7XG4gICAgdmFyIGksXG4gICAgICAgIG4gPSBub2Rlcy5sZW5ndGgsXG4gICAgICAgIG5vZGUsXG4gICAgICAgIHN4ID0gMCxcbiAgICAgICAgc3kgPSAwO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgbm9kZSA9IG5vZGVzW2ldLCBzeCArPSBub2RlLngsIHN5ICs9IG5vZGUueTtcbiAgICB9XG5cbiAgICBmb3IgKHN4ID0gKHN4IC8gbiAtIHgpICogc3RyZW5ndGgsIHN5ID0gKHN5IC8gbiAtIHkpICogc3RyZW5ndGgsIGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBub2RlID0gbm9kZXNbaV0sIG5vZGUueCAtPSBzeCwgbm9kZS55IC09IHN5O1xuICAgIH1cbiAgfVxuXG4gIGZvcmNlLmluaXRpYWxpemUgPSBmdW5jdGlvbihfKSB7XG4gICAgbm9kZXMgPSBfO1xuICB9O1xuXG4gIGZvcmNlLnggPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoeCA9ICtfLCBmb3JjZSkgOiB4O1xuICB9O1xuXG4gIGZvcmNlLnkgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoeSA9ICtfLCBmb3JjZSkgOiB5O1xuICB9O1xuXG4gIGZvcmNlLnN0cmVuZ3RoID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHN0cmVuZ3RoID0gK18sIGZvcmNlKSA6IHN0cmVuZ3RoO1xuICB9O1xuXG4gIHJldHVybiBmb3JjZTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihkKSB7XG4gIGNvbnN0IHggPSArdGhpcy5feC5jYWxsKG51bGwsIGQpLFxuICAgICAgeSA9ICt0aGlzLl95LmNhbGwobnVsbCwgZCk7XG4gIHJldHVybiBhZGQodGhpcy5jb3Zlcih4LCB5KSwgeCwgeSwgZCk7XG59XG5cbmZ1bmN0aW9uIGFkZCh0cmVlLCB4LCB5LCBkKSB7XG4gIGlmIChpc05hTih4KSB8fCBpc05hTih5KSkgcmV0dXJuIHRyZWU7IC8vIGlnbm9yZSBpbnZhbGlkIHBvaW50c1xuXG4gIHZhciBwYXJlbnQsXG4gICAgICBub2RlID0gdHJlZS5fcm9vdCxcbiAgICAgIGxlYWYgPSB7ZGF0YTogZH0sXG4gICAgICB4MCA9IHRyZWUuX3gwLFxuICAgICAgeTAgPSB0cmVlLl95MCxcbiAgICAgIHgxID0gdHJlZS5feDEsXG4gICAgICB5MSA9IHRyZWUuX3kxLFxuICAgICAgeG0sXG4gICAgICB5bSxcbiAgICAgIHhwLFxuICAgICAgeXAsXG4gICAgICByaWdodCxcbiAgICAgIGJvdHRvbSxcbiAgICAgIGksXG4gICAgICBqO1xuXG4gIC8vIElmIHRoZSB0cmVlIGlzIGVtcHR5LCBpbml0aWFsaXplIHRoZSByb290IGFzIGEgbGVhZi5cbiAgaWYgKCFub2RlKSByZXR1cm4gdHJlZS5fcm9vdCA9IGxlYWYsIHRyZWU7XG5cbiAgLy8gRmluZCB0aGUgZXhpc3RpbmcgbGVhZiBmb3IgdGhlIG5ldyBwb2ludCwgb3IgYWRkIGl0LlxuICB3aGlsZSAobm9kZS5sZW5ndGgpIHtcbiAgICBpZiAocmlnaHQgPSB4ID49ICh4bSA9ICh4MCArIHgxKSAvIDIpKSB4MCA9IHhtOyBlbHNlIHgxID0geG07XG4gICAgaWYgKGJvdHRvbSA9IHkgPj0gKHltID0gKHkwICsgeTEpIC8gMikpIHkwID0geW07IGVsc2UgeTEgPSB5bTtcbiAgICBpZiAocGFyZW50ID0gbm9kZSwgIShub2RlID0gbm9kZVtpID0gYm90dG9tIDw8IDEgfCByaWdodF0pKSByZXR1cm4gcGFyZW50W2ldID0gbGVhZiwgdHJlZTtcbiAgfVxuXG4gIC8vIElzIHRoZSBuZXcgcG9pbnQgaXMgZXhhY3RseSBjb2luY2lkZW50IHdpdGggdGhlIGV4aXN0aW5nIHBvaW50P1xuICB4cCA9ICt0cmVlLl94LmNhbGwobnVsbCwgbm9kZS5kYXRhKTtcbiAgeXAgPSArdHJlZS5feS5jYWxsKG51bGwsIG5vZGUuZGF0YSk7XG4gIGlmICh4ID09PSB4cCAmJiB5ID09PSB5cCkgcmV0dXJuIGxlYWYubmV4dCA9IG5vZGUsIHBhcmVudCA/IHBhcmVudFtpXSA9IGxlYWYgOiB0cmVlLl9yb290ID0gbGVhZiwgdHJlZTtcblxuICAvLyBPdGhlcndpc2UsIHNwbGl0IHRoZSBsZWFmIG5vZGUgdW50aWwgdGhlIG9sZCBhbmQgbmV3IHBvaW50IGFyZSBzZXBhcmF0ZWQuXG4gIGRvIHtcbiAgICBwYXJlbnQgPSBwYXJlbnQgPyBwYXJlbnRbaV0gPSBuZXcgQXJyYXkoNCkgOiB0cmVlLl9yb290ID0gbmV3IEFycmF5KDQpO1xuICAgIGlmIChyaWdodCA9IHggPj0gKHhtID0gKHgwICsgeDEpIC8gMikpIHgwID0geG07IGVsc2UgeDEgPSB4bTtcbiAgICBpZiAoYm90dG9tID0geSA+PSAoeW0gPSAoeTAgKyB5MSkgLyAyKSkgeTAgPSB5bTsgZWxzZSB5MSA9IHltO1xuICB9IHdoaWxlICgoaSA9IGJvdHRvbSA8PCAxIHwgcmlnaHQpID09PSAoaiA9ICh5cCA+PSB5bSkgPDwgMSB8ICh4cCA+PSB4bSkpKTtcbiAgcmV0dXJuIHBhcmVudFtqXSA9IG5vZGUsIHBhcmVudFtpXSA9IGxlYWYsIHRyZWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRBbGwoZGF0YSkge1xuICB2YXIgZCwgaSwgbiA9IGRhdGEubGVuZ3RoLFxuICAgICAgeCxcbiAgICAgIHksXG4gICAgICB4eiA9IG5ldyBBcnJheShuKSxcbiAgICAgIHl6ID0gbmV3IEFycmF5KG4pLFxuICAgICAgeDAgPSBJbmZpbml0eSxcbiAgICAgIHkwID0gSW5maW5pdHksXG4gICAgICB4MSA9IC1JbmZpbml0eSxcbiAgICAgIHkxID0gLUluZmluaXR5O1xuXG4gIC8vIENvbXB1dGUgdGhlIHBvaW50cyBhbmQgdGhlaXIgZXh0ZW50LlxuICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgaWYgKGlzTmFOKHggPSArdGhpcy5feC5jYWxsKG51bGwsIGQgPSBkYXRhW2ldKSkgfHwgaXNOYU4oeSA9ICt0aGlzLl95LmNhbGwobnVsbCwgZCkpKSBjb250aW51ZTtcbiAgICB4eltpXSA9IHg7XG4gICAgeXpbaV0gPSB5O1xuICAgIGlmICh4IDwgeDApIHgwID0geDtcbiAgICBpZiAoeCA+IHgxKSB4MSA9IHg7XG4gICAgaWYgKHkgPCB5MCkgeTAgPSB5O1xuICAgIGlmICh5ID4geTEpIHkxID0geTtcbiAgfVxuXG4gIC8vIElmIHRoZXJlIHdlcmUgbm8gKHZhbGlkKSBwb2ludHMsIGFib3J0LlxuICBpZiAoeDAgPiB4MSB8fCB5MCA+IHkxKSByZXR1cm4gdGhpcztcblxuICAvLyBFeHBhbmQgdGhlIHRyZWUgdG8gY292ZXIgdGhlIG5ldyBwb2ludHMuXG4gIHRoaXMuY292ZXIoeDAsIHkwKS5jb3Zlcih4MSwgeTEpO1xuXG4gIC8vIEFkZCB0aGUgbmV3IHBvaW50cy5cbiAgZm9yIChpID0gMDsgaSA8IG47ICsraSkge1xuICAgIGFkZCh0aGlzLCB4eltpXSwgeXpbaV0sIGRhdGFbaV0pO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeCwgeSkge1xuICBpZiAoaXNOYU4oeCA9ICt4KSB8fCBpc05hTih5ID0gK3kpKSByZXR1cm4gdGhpczsgLy8gaWdub3JlIGludmFsaWQgcG9pbnRzXG5cbiAgdmFyIHgwID0gdGhpcy5feDAsXG4gICAgICB5MCA9IHRoaXMuX3kwLFxuICAgICAgeDEgPSB0aGlzLl94MSxcbiAgICAgIHkxID0gdGhpcy5feTE7XG5cbiAgLy8gSWYgdGhlIHF1YWR0cmVlIGhhcyBubyBleHRlbnQsIGluaXRpYWxpemUgdGhlbS5cbiAgLy8gSW50ZWdlciBleHRlbnQgYXJlIG5lY2Vzc2FyeSBzbyB0aGF0IGlmIHdlIGxhdGVyIGRvdWJsZSB0aGUgZXh0ZW50LFxuICAvLyB0aGUgZXhpc3RpbmcgcXVhZHJhbnQgYm91bmRhcmllcyBkb25cdTIwMTl0IGNoYW5nZSBkdWUgdG8gZmxvYXRpbmcgcG9pbnQgZXJyb3IhXG4gIGlmIChpc05hTih4MCkpIHtcbiAgICB4MSA9ICh4MCA9IE1hdGguZmxvb3IoeCkpICsgMTtcbiAgICB5MSA9ICh5MCA9IE1hdGguZmxvb3IoeSkpICsgMTtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgZG91YmxlIHJlcGVhdGVkbHkgdG8gY292ZXIuXG4gIGVsc2Uge1xuICAgIHZhciB6ID0geDEgLSB4MCB8fCAxLFxuICAgICAgICBub2RlID0gdGhpcy5fcm9vdCxcbiAgICAgICAgcGFyZW50LFxuICAgICAgICBpO1xuXG4gICAgd2hpbGUgKHgwID4geCB8fCB4ID49IHgxIHx8IHkwID4geSB8fCB5ID49IHkxKSB7XG4gICAgICBpID0gKHkgPCB5MCkgPDwgMSB8ICh4IDwgeDApO1xuICAgICAgcGFyZW50ID0gbmV3IEFycmF5KDQpLCBwYXJlbnRbaV0gPSBub2RlLCBub2RlID0gcGFyZW50LCB6ICo9IDI7XG4gICAgICBzd2l0Y2ggKGkpIHtcbiAgICAgICAgY2FzZSAwOiB4MSA9IHgwICsgeiwgeTEgPSB5MCArIHo7IGJyZWFrO1xuICAgICAgICBjYXNlIDE6IHgwID0geDEgLSB6LCB5MSA9IHkwICsgejsgYnJlYWs7XG4gICAgICAgIGNhc2UgMjogeDEgPSB4MCArIHosIHkwID0geTEgLSB6OyBicmVhaztcbiAgICAgICAgY2FzZSAzOiB4MCA9IHgxIC0geiwgeTAgPSB5MSAtIHo7IGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9yb290ICYmIHRoaXMuX3Jvb3QubGVuZ3RoKSB0aGlzLl9yb290ID0gbm9kZTtcbiAgfVxuXG4gIHRoaXMuX3gwID0geDA7XG4gIHRoaXMuX3kwID0geTA7XG4gIHRoaXMuX3gxID0geDE7XG4gIHRoaXMuX3kxID0geTE7XG4gIHJldHVybiB0aGlzO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICB2YXIgZGF0YSA9IFtdO1xuICB0aGlzLnZpc2l0KGZ1bmN0aW9uKG5vZGUpIHtcbiAgICBpZiAoIW5vZGUubGVuZ3RoKSBkbyBkYXRhLnB1c2gobm9kZS5kYXRhKTsgd2hpbGUgKG5vZGUgPSBub2RlLm5leHQpXG4gIH0pO1xuICByZXR1cm4gZGF0YTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihfKSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoXG4gICAgICA/IHRoaXMuY292ZXIoK19bMF1bMF0sICtfWzBdWzFdKS5jb3ZlcigrX1sxXVswXSwgK19bMV1bMV0pXG4gICAgICA6IGlzTmFOKHRoaXMuX3gwKSA/IHVuZGVmaW5lZCA6IFtbdGhpcy5feDAsIHRoaXMuX3kwXSwgW3RoaXMuX3gxLCB0aGlzLl95MV1dO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5vZGUsIHgwLCB5MCwgeDEsIHkxKSB7XG4gIHRoaXMubm9kZSA9IG5vZGU7XG4gIHRoaXMueDAgPSB4MDtcbiAgdGhpcy55MCA9IHkwO1xuICB0aGlzLngxID0geDE7XG4gIHRoaXMueTEgPSB5MTtcbn1cbiIsICJpbXBvcnQgUXVhZCBmcm9tIFwiLi9xdWFkLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHgsIHksIHJhZGl1cykge1xuICB2YXIgZGF0YSxcbiAgICAgIHgwID0gdGhpcy5feDAsXG4gICAgICB5MCA9IHRoaXMuX3kwLFxuICAgICAgeDEsXG4gICAgICB5MSxcbiAgICAgIHgyLFxuICAgICAgeTIsXG4gICAgICB4MyA9IHRoaXMuX3gxLFxuICAgICAgeTMgPSB0aGlzLl95MSxcbiAgICAgIHF1YWRzID0gW10sXG4gICAgICBub2RlID0gdGhpcy5fcm9vdCxcbiAgICAgIHEsXG4gICAgICBpO1xuXG4gIGlmIChub2RlKSBxdWFkcy5wdXNoKG5ldyBRdWFkKG5vZGUsIHgwLCB5MCwgeDMsIHkzKSk7XG4gIGlmIChyYWRpdXMgPT0gbnVsbCkgcmFkaXVzID0gSW5maW5pdHk7XG4gIGVsc2Uge1xuICAgIHgwID0geCAtIHJhZGl1cywgeTAgPSB5IC0gcmFkaXVzO1xuICAgIHgzID0geCArIHJhZGl1cywgeTMgPSB5ICsgcmFkaXVzO1xuICAgIHJhZGl1cyAqPSByYWRpdXM7XG4gIH1cblxuICB3aGlsZSAocSA9IHF1YWRzLnBvcCgpKSB7XG5cbiAgICAvLyBTdG9wIHNlYXJjaGluZyBpZiB0aGlzIHF1YWRyYW50IGNhblx1MjAxOXQgY29udGFpbiBhIGNsb3NlciBub2RlLlxuICAgIGlmICghKG5vZGUgPSBxLm5vZGUpXG4gICAgICAgIHx8ICh4MSA9IHEueDApID4geDNcbiAgICAgICAgfHwgKHkxID0gcS55MCkgPiB5M1xuICAgICAgICB8fCAoeDIgPSBxLngxKSA8IHgwXG4gICAgICAgIHx8ICh5MiA9IHEueTEpIDwgeTApIGNvbnRpbnVlO1xuXG4gICAgLy8gQmlzZWN0IHRoZSBjdXJyZW50IHF1YWRyYW50LlxuICAgIGlmIChub2RlLmxlbmd0aCkge1xuICAgICAgdmFyIHhtID0gKHgxICsgeDIpIC8gMixcbiAgICAgICAgICB5bSA9ICh5MSArIHkyKSAvIDI7XG5cbiAgICAgIHF1YWRzLnB1c2goXG4gICAgICAgIG5ldyBRdWFkKG5vZGVbM10sIHhtLCB5bSwgeDIsIHkyKSxcbiAgICAgICAgbmV3IFF1YWQobm9kZVsyXSwgeDEsIHltLCB4bSwgeTIpLFxuICAgICAgICBuZXcgUXVhZChub2RlWzFdLCB4bSwgeTEsIHgyLCB5bSksXG4gICAgICAgIG5ldyBRdWFkKG5vZGVbMF0sIHgxLCB5MSwgeG0sIHltKVxuICAgICAgKTtcblxuICAgICAgLy8gVmlzaXQgdGhlIGNsb3Nlc3QgcXVhZHJhbnQgZmlyc3QuXG4gICAgICBpZiAoaSA9ICh5ID49IHltKSA8PCAxIHwgKHggPj0geG0pKSB7XG4gICAgICAgIHEgPSBxdWFkc1txdWFkcy5sZW5ndGggLSAxXTtcbiAgICAgICAgcXVhZHNbcXVhZHMubGVuZ3RoIC0gMV0gPSBxdWFkc1txdWFkcy5sZW5ndGggLSAxIC0gaV07XG4gICAgICAgIHF1YWRzW3F1YWRzLmxlbmd0aCAtIDEgLSBpXSA9IHE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVmlzaXQgdGhpcyBwb2ludC4gKFZpc2l0aW5nIGNvaW5jaWRlbnQgcG9pbnRzIGlzblx1MjAxOXQgbmVjZXNzYXJ5ISlcbiAgICBlbHNlIHtcbiAgICAgIHZhciBkeCA9IHggLSArdGhpcy5feC5jYWxsKG51bGwsIG5vZGUuZGF0YSksXG4gICAgICAgICAgZHkgPSB5IC0gK3RoaXMuX3kuY2FsbChudWxsLCBub2RlLmRhdGEpLFxuICAgICAgICAgIGQyID0gZHggKiBkeCArIGR5ICogZHk7XG4gICAgICBpZiAoZDIgPCByYWRpdXMpIHtcbiAgICAgICAgdmFyIGQgPSBNYXRoLnNxcnQocmFkaXVzID0gZDIpO1xuICAgICAgICB4MCA9IHggLSBkLCB5MCA9IHkgLSBkO1xuICAgICAgICB4MyA9IHggKyBkLCB5MyA9IHkgKyBkO1xuICAgICAgICBkYXRhID0gbm9kZS5kYXRhO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkYXRhO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGQpIHtcbiAgaWYgKGlzTmFOKHggPSArdGhpcy5feC5jYWxsKG51bGwsIGQpKSB8fCBpc05hTih5ID0gK3RoaXMuX3kuY2FsbChudWxsLCBkKSkpIHJldHVybiB0aGlzOyAvLyBpZ25vcmUgaW52YWxpZCBwb2ludHNcblxuICB2YXIgcGFyZW50LFxuICAgICAgbm9kZSA9IHRoaXMuX3Jvb3QsXG4gICAgICByZXRhaW5lcixcbiAgICAgIHByZXZpb3VzLFxuICAgICAgbmV4dCxcbiAgICAgIHgwID0gdGhpcy5feDAsXG4gICAgICB5MCA9IHRoaXMuX3kwLFxuICAgICAgeDEgPSB0aGlzLl94MSxcbiAgICAgIHkxID0gdGhpcy5feTEsXG4gICAgICB4LFxuICAgICAgeSxcbiAgICAgIHhtLFxuICAgICAgeW0sXG4gICAgICByaWdodCxcbiAgICAgIGJvdHRvbSxcbiAgICAgIGksXG4gICAgICBqO1xuXG4gIC8vIElmIHRoZSB0cmVlIGlzIGVtcHR5LCBpbml0aWFsaXplIHRoZSByb290IGFzIGEgbGVhZi5cbiAgaWYgKCFub2RlKSByZXR1cm4gdGhpcztcblxuICAvLyBGaW5kIHRoZSBsZWFmIG5vZGUgZm9yIHRoZSBwb2ludC5cbiAgLy8gV2hpbGUgZGVzY2VuZGluZywgYWxzbyByZXRhaW4gdGhlIGRlZXBlc3QgcGFyZW50IHdpdGggYSBub24tcmVtb3ZlZCBzaWJsaW5nLlxuICBpZiAobm9kZS5sZW5ndGgpIHdoaWxlICh0cnVlKSB7XG4gICAgaWYgKHJpZ2h0ID0geCA+PSAoeG0gPSAoeDAgKyB4MSkgLyAyKSkgeDAgPSB4bTsgZWxzZSB4MSA9IHhtO1xuICAgIGlmIChib3R0b20gPSB5ID49ICh5bSA9ICh5MCArIHkxKSAvIDIpKSB5MCA9IHltOyBlbHNlIHkxID0geW07XG4gICAgaWYgKCEocGFyZW50ID0gbm9kZSwgbm9kZSA9IG5vZGVbaSA9IGJvdHRvbSA8PCAxIHwgcmlnaHRdKSkgcmV0dXJuIHRoaXM7XG4gICAgaWYgKCFub2RlLmxlbmd0aCkgYnJlYWs7XG4gICAgaWYgKHBhcmVudFsoaSArIDEpICYgM10gfHwgcGFyZW50WyhpICsgMikgJiAzXSB8fCBwYXJlbnRbKGkgKyAzKSAmIDNdKSByZXRhaW5lciA9IHBhcmVudCwgaiA9IGk7XG4gIH1cblxuICAvLyBGaW5kIHRoZSBwb2ludCB0byByZW1vdmUuXG4gIHdoaWxlIChub2RlLmRhdGEgIT09IGQpIGlmICghKHByZXZpb3VzID0gbm9kZSwgbm9kZSA9IG5vZGUubmV4dCkpIHJldHVybiB0aGlzO1xuICBpZiAobmV4dCA9IG5vZGUubmV4dCkgZGVsZXRlIG5vZGUubmV4dDtcblxuICAvLyBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgY29pbmNpZGVudCBwb2ludHMsIHJlbW92ZSBqdXN0IHRoZSBwb2ludC5cbiAgaWYgKHByZXZpb3VzKSByZXR1cm4gKG5leHQgPyBwcmV2aW91cy5uZXh0ID0gbmV4dCA6IGRlbGV0ZSBwcmV2aW91cy5uZXh0KSwgdGhpcztcblxuICAvLyBJZiB0aGlzIGlzIHRoZSByb290IHBvaW50LCByZW1vdmUgaXQuXG4gIGlmICghcGFyZW50KSByZXR1cm4gdGhpcy5fcm9vdCA9IG5leHQsIHRoaXM7XG5cbiAgLy8gUmVtb3ZlIHRoaXMgbGVhZi5cbiAgbmV4dCA/IHBhcmVudFtpXSA9IG5leHQgOiBkZWxldGUgcGFyZW50W2ldO1xuXG4gIC8vIElmIHRoZSBwYXJlbnQgbm93IGNvbnRhaW5zIGV4YWN0bHkgb25lIGxlYWYsIGNvbGxhcHNlIHN1cGVyZmx1b3VzIHBhcmVudHMuXG4gIGlmICgobm9kZSA9IHBhcmVudFswXSB8fCBwYXJlbnRbMV0gfHwgcGFyZW50WzJdIHx8IHBhcmVudFszXSlcbiAgICAgICYmIG5vZGUgPT09IChwYXJlbnRbM10gfHwgcGFyZW50WzJdIHx8IHBhcmVudFsxXSB8fCBwYXJlbnRbMF0pXG4gICAgICAmJiAhbm9kZS5sZW5ndGgpIHtcbiAgICBpZiAocmV0YWluZXIpIHJldGFpbmVyW2pdID0gbm9kZTtcbiAgICBlbHNlIHRoaXMuX3Jvb3QgPSBub2RlO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVBbGwoZGF0YSkge1xuICBmb3IgKHZhciBpID0gMCwgbiA9IGRhdGEubGVuZ3RoOyBpIDwgbjsgKytpKSB0aGlzLnJlbW92ZShkYXRhW2ldKTtcbiAgcmV0dXJuIHRoaXM7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLl9yb290O1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICB2YXIgc2l6ZSA9IDA7XG4gIHRoaXMudmlzaXQoZnVuY3Rpb24obm9kZSkge1xuICAgIGlmICghbm9kZS5sZW5ndGgpIGRvICsrc2l6ZTsgd2hpbGUgKG5vZGUgPSBub2RlLm5leHQpXG4gIH0pO1xuICByZXR1cm4gc2l6ZTtcbn1cbiIsICJpbXBvcnQgUXVhZCBmcm9tIFwiLi9xdWFkLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gIHZhciBxdWFkcyA9IFtdLCBxLCBub2RlID0gdGhpcy5fcm9vdCwgY2hpbGQsIHgwLCB5MCwgeDEsIHkxO1xuICBpZiAobm9kZSkgcXVhZHMucHVzaChuZXcgUXVhZChub2RlLCB0aGlzLl94MCwgdGhpcy5feTAsIHRoaXMuX3gxLCB0aGlzLl95MSkpO1xuICB3aGlsZSAocSA9IHF1YWRzLnBvcCgpKSB7XG4gICAgaWYgKCFjYWxsYmFjayhub2RlID0gcS5ub2RlLCB4MCA9IHEueDAsIHkwID0gcS55MCwgeDEgPSBxLngxLCB5MSA9IHEueTEpICYmIG5vZGUubGVuZ3RoKSB7XG4gICAgICB2YXIgeG0gPSAoeDAgKyB4MSkgLyAyLCB5bSA9ICh5MCArIHkxKSAvIDI7XG4gICAgICBpZiAoY2hpbGQgPSBub2RlWzNdKSBxdWFkcy5wdXNoKG5ldyBRdWFkKGNoaWxkLCB4bSwgeW0sIHgxLCB5MSkpO1xuICAgICAgaWYgKGNoaWxkID0gbm9kZVsyXSkgcXVhZHMucHVzaChuZXcgUXVhZChjaGlsZCwgeDAsIHltLCB4bSwgeTEpKTtcbiAgICAgIGlmIChjaGlsZCA9IG5vZGVbMV0pIHF1YWRzLnB1c2gobmV3IFF1YWQoY2hpbGQsIHhtLCB5MCwgeDEsIHltKSk7XG4gICAgICBpZiAoY2hpbGQgPSBub2RlWzBdKSBxdWFkcy5wdXNoKG5ldyBRdWFkKGNoaWxkLCB4MCwgeTAsIHhtLCB5bSkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdGhpcztcbn1cbiIsICJpbXBvcnQgUXVhZCBmcm9tIFwiLi9xdWFkLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gIHZhciBxdWFkcyA9IFtdLCBuZXh0ID0gW10sIHE7XG4gIGlmICh0aGlzLl9yb290KSBxdWFkcy5wdXNoKG5ldyBRdWFkKHRoaXMuX3Jvb3QsIHRoaXMuX3gwLCB0aGlzLl95MCwgdGhpcy5feDEsIHRoaXMuX3kxKSk7XG4gIHdoaWxlIChxID0gcXVhZHMucG9wKCkpIHtcbiAgICB2YXIgbm9kZSA9IHEubm9kZTtcbiAgICBpZiAobm9kZS5sZW5ndGgpIHtcbiAgICAgIHZhciBjaGlsZCwgeDAgPSBxLngwLCB5MCA9IHEueTAsIHgxID0gcS54MSwgeTEgPSBxLnkxLCB4bSA9ICh4MCArIHgxKSAvIDIsIHltID0gKHkwICsgeTEpIC8gMjtcbiAgICAgIGlmIChjaGlsZCA9IG5vZGVbMF0pIHF1YWRzLnB1c2gobmV3IFF1YWQoY2hpbGQsIHgwLCB5MCwgeG0sIHltKSk7XG4gICAgICBpZiAoY2hpbGQgPSBub2RlWzFdKSBxdWFkcy5wdXNoKG5ldyBRdWFkKGNoaWxkLCB4bSwgeTAsIHgxLCB5bSkpO1xuICAgICAgaWYgKGNoaWxkID0gbm9kZVsyXSkgcXVhZHMucHVzaChuZXcgUXVhZChjaGlsZCwgeDAsIHltLCB4bSwgeTEpKTtcbiAgICAgIGlmIChjaGlsZCA9IG5vZGVbM10pIHF1YWRzLnB1c2gobmV3IFF1YWQoY2hpbGQsIHhtLCB5bSwgeDEsIHkxKSk7XG4gICAgfVxuICAgIG5leHQucHVzaChxKTtcbiAgfVxuICB3aGlsZSAocSA9IG5leHQucG9wKCkpIHtcbiAgICBjYWxsYmFjayhxLm5vZGUsIHEueDAsIHEueTAsIHEueDEsIHEueTEpO1xuICB9XG4gIHJldHVybiB0aGlzO1xufVxuIiwgImV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0WChkKSB7XG4gIHJldHVybiBkWzBdO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihfKSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHRoaXMuX3ggPSBfLCB0aGlzKSA6IHRoaXMuX3g7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRZKGQpIHtcbiAgcmV0dXJuIGRbMV07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKF8pIHtcbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAodGhpcy5feSA9IF8sIHRoaXMpIDogdGhpcy5feTtcbn1cbiIsICJpbXBvcnQgdHJlZV9hZGQsIHthZGRBbGwgYXMgdHJlZV9hZGRBbGx9IGZyb20gXCIuL2FkZC5qc1wiO1xuaW1wb3J0IHRyZWVfY292ZXIgZnJvbSBcIi4vY292ZXIuanNcIjtcbmltcG9ydCB0cmVlX2RhdGEgZnJvbSBcIi4vZGF0YS5qc1wiO1xuaW1wb3J0IHRyZWVfZXh0ZW50IGZyb20gXCIuL2V4dGVudC5qc1wiO1xuaW1wb3J0IHRyZWVfZmluZCBmcm9tIFwiLi9maW5kLmpzXCI7XG5pbXBvcnQgdHJlZV9yZW1vdmUsIHtyZW1vdmVBbGwgYXMgdHJlZV9yZW1vdmVBbGx9IGZyb20gXCIuL3JlbW92ZS5qc1wiO1xuaW1wb3J0IHRyZWVfcm9vdCBmcm9tIFwiLi9yb290LmpzXCI7XG5pbXBvcnQgdHJlZV9zaXplIGZyb20gXCIuL3NpemUuanNcIjtcbmltcG9ydCB0cmVlX3Zpc2l0IGZyb20gXCIuL3Zpc2l0LmpzXCI7XG5pbXBvcnQgdHJlZV92aXNpdEFmdGVyIGZyb20gXCIuL3Zpc2l0QWZ0ZXIuanNcIjtcbmltcG9ydCB0cmVlX3gsIHtkZWZhdWx0WH0gZnJvbSBcIi4veC5qc1wiO1xuaW1wb3J0IHRyZWVfeSwge2RlZmF1bHRZfSBmcm9tIFwiLi95LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHF1YWR0cmVlKG5vZGVzLCB4LCB5KSB7XG4gIHZhciB0cmVlID0gbmV3IFF1YWR0cmVlKHggPT0gbnVsbCA/IGRlZmF1bHRYIDogeCwgeSA9PSBudWxsID8gZGVmYXVsdFkgOiB5LCBOYU4sIE5hTiwgTmFOLCBOYU4pO1xuICByZXR1cm4gbm9kZXMgPT0gbnVsbCA/IHRyZWUgOiB0cmVlLmFkZEFsbChub2Rlcyk7XG59XG5cbmZ1bmN0aW9uIFF1YWR0cmVlKHgsIHksIHgwLCB5MCwgeDEsIHkxKSB7XG4gIHRoaXMuX3ggPSB4O1xuICB0aGlzLl95ID0geTtcbiAgdGhpcy5feDAgPSB4MDtcbiAgdGhpcy5feTAgPSB5MDtcbiAgdGhpcy5feDEgPSB4MTtcbiAgdGhpcy5feTEgPSB5MTtcbiAgdGhpcy5fcm9vdCA9IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gbGVhZl9jb3B5KGxlYWYpIHtcbiAgdmFyIGNvcHkgPSB7ZGF0YTogbGVhZi5kYXRhfSwgbmV4dCA9IGNvcHk7XG4gIHdoaWxlIChsZWFmID0gbGVhZi5uZXh0KSBuZXh0ID0gbmV4dC5uZXh0ID0ge2RhdGE6IGxlYWYuZGF0YX07XG4gIHJldHVybiBjb3B5O1xufVxuXG52YXIgdHJlZVByb3RvID0gcXVhZHRyZWUucHJvdG90eXBlID0gUXVhZHRyZWUucHJvdG90eXBlO1xuXG50cmVlUHJvdG8uY29weSA9IGZ1bmN0aW9uKCkge1xuICB2YXIgY29weSA9IG5ldyBRdWFkdHJlZSh0aGlzLl94LCB0aGlzLl95LCB0aGlzLl94MCwgdGhpcy5feTAsIHRoaXMuX3gxLCB0aGlzLl95MSksXG4gICAgICBub2RlID0gdGhpcy5fcm9vdCxcbiAgICAgIG5vZGVzLFxuICAgICAgY2hpbGQ7XG5cbiAgaWYgKCFub2RlKSByZXR1cm4gY29weTtcblxuICBpZiAoIW5vZGUubGVuZ3RoKSByZXR1cm4gY29weS5fcm9vdCA9IGxlYWZfY29weShub2RlKSwgY29weTtcblxuICBub2RlcyA9IFt7c291cmNlOiBub2RlLCB0YXJnZXQ6IGNvcHkuX3Jvb3QgPSBuZXcgQXJyYXkoNCl9XTtcbiAgd2hpbGUgKG5vZGUgPSBub2Rlcy5wb3AoKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNDsgKytpKSB7XG4gICAgICBpZiAoY2hpbGQgPSBub2RlLnNvdXJjZVtpXSkge1xuICAgICAgICBpZiAoY2hpbGQubGVuZ3RoKSBub2Rlcy5wdXNoKHtzb3VyY2U6IGNoaWxkLCB0YXJnZXQ6IG5vZGUudGFyZ2V0W2ldID0gbmV3IEFycmF5KDQpfSk7XG4gICAgICAgIGVsc2Ugbm9kZS50YXJnZXRbaV0gPSBsZWFmX2NvcHkoY2hpbGQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb3B5O1xufTtcblxudHJlZVByb3RvLmFkZCA9IHRyZWVfYWRkO1xudHJlZVByb3RvLmFkZEFsbCA9IHRyZWVfYWRkQWxsO1xudHJlZVByb3RvLmNvdmVyID0gdHJlZV9jb3ZlcjtcbnRyZWVQcm90by5kYXRhID0gdHJlZV9kYXRhO1xudHJlZVByb3RvLmV4dGVudCA9IHRyZWVfZXh0ZW50O1xudHJlZVByb3RvLmZpbmQgPSB0cmVlX2ZpbmQ7XG50cmVlUHJvdG8ucmVtb3ZlID0gdHJlZV9yZW1vdmU7XG50cmVlUHJvdG8ucmVtb3ZlQWxsID0gdHJlZV9yZW1vdmVBbGw7XG50cmVlUHJvdG8ucm9vdCA9IHRyZWVfcm9vdDtcbnRyZWVQcm90by5zaXplID0gdHJlZV9zaXplO1xudHJlZVByb3RvLnZpc2l0ID0gdHJlZV92aXNpdDtcbnRyZWVQcm90by52aXNpdEFmdGVyID0gdHJlZV92aXNpdEFmdGVyO1xudHJlZVByb3RvLnggPSB0cmVlX3g7XG50cmVlUHJvdG8ueSA9IHRyZWVfeTtcbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbih4KSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4geDtcbiAgfTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihyYW5kb20pIHtcbiAgcmV0dXJuIChyYW5kb20oKSAtIDAuNSkgKiAxZS02O1xufVxuIiwgImltcG9ydCB7cXVhZHRyZWV9IGZyb20gXCJkMy1xdWFkdHJlZVwiO1xuaW1wb3J0IGNvbnN0YW50IGZyb20gXCIuL2NvbnN0YW50LmpzXCI7XG5pbXBvcnQgamlnZ2xlIGZyb20gXCIuL2ppZ2dsZS5qc1wiO1xuXG5mdW5jdGlvbiB4KGQpIHtcbiAgcmV0dXJuIGQueCArIGQudng7XG59XG5cbmZ1bmN0aW9uIHkoZCkge1xuICByZXR1cm4gZC55ICsgZC52eTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24ocmFkaXVzKSB7XG4gIHZhciBub2RlcyxcbiAgICAgIHJhZGlpLFxuICAgICAgcmFuZG9tLFxuICAgICAgc3RyZW5ndGggPSAxLFxuICAgICAgaXRlcmF0aW9ucyA9IDE7XG5cbiAgaWYgKHR5cGVvZiByYWRpdXMgIT09IFwiZnVuY3Rpb25cIikgcmFkaXVzID0gY29uc3RhbnQocmFkaXVzID09IG51bGwgPyAxIDogK3JhZGl1cyk7XG5cbiAgZnVuY3Rpb24gZm9yY2UoKSB7XG4gICAgdmFyIGksIG4gPSBub2Rlcy5sZW5ndGgsXG4gICAgICAgIHRyZWUsXG4gICAgICAgIG5vZGUsXG4gICAgICAgIHhpLFxuICAgICAgICB5aSxcbiAgICAgICAgcmksXG4gICAgICAgIHJpMjtcblxuICAgIGZvciAodmFyIGsgPSAwOyBrIDwgaXRlcmF0aW9uczsgKytrKSB7XG4gICAgICB0cmVlID0gcXVhZHRyZWUobm9kZXMsIHgsIHkpLnZpc2l0QWZ0ZXIocHJlcGFyZSk7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICAgIG5vZGUgPSBub2Rlc1tpXTtcbiAgICAgICAgcmkgPSByYWRpaVtub2RlLmluZGV4XSwgcmkyID0gcmkgKiByaTtcbiAgICAgICAgeGkgPSBub2RlLnggKyBub2RlLnZ4O1xuICAgICAgICB5aSA9IG5vZGUueSArIG5vZGUudnk7XG4gICAgICAgIHRyZWUudmlzaXQoYXBwbHkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFwcGx5KHF1YWQsIHgwLCB5MCwgeDEsIHkxKSB7XG4gICAgICB2YXIgZGF0YSA9IHF1YWQuZGF0YSwgcmogPSBxdWFkLnIsIHIgPSByaSArIHJqO1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEuaW5kZXggPiBub2RlLmluZGV4KSB7XG4gICAgICAgICAgdmFyIHggPSB4aSAtIGRhdGEueCAtIGRhdGEudngsXG4gICAgICAgICAgICAgIHkgPSB5aSAtIGRhdGEueSAtIGRhdGEudnksXG4gICAgICAgICAgICAgIGwgPSB4ICogeCArIHkgKiB5O1xuICAgICAgICAgIGlmIChsIDwgciAqIHIpIHtcbiAgICAgICAgICAgIGlmICh4ID09PSAwKSB4ID0gamlnZ2xlKHJhbmRvbSksIGwgKz0geCAqIHg7XG4gICAgICAgICAgICBpZiAoeSA9PT0gMCkgeSA9IGppZ2dsZShyYW5kb20pLCBsICs9IHkgKiB5O1xuICAgICAgICAgICAgbCA9IChyIC0gKGwgPSBNYXRoLnNxcnQobCkpKSAvIGwgKiBzdHJlbmd0aDtcbiAgICAgICAgICAgIG5vZGUudnggKz0gKHggKj0gbCkgKiAociA9IChyaiAqPSByaikgLyAocmkyICsgcmopKTtcbiAgICAgICAgICAgIG5vZGUudnkgKz0gKHkgKj0gbCkgKiByO1xuICAgICAgICAgICAgZGF0YS52eCAtPSB4ICogKHIgPSAxIC0gcik7XG4gICAgICAgICAgICBkYXRhLnZ5IC09IHkgKiByO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByZXR1cm4geDAgPiB4aSArIHIgfHwgeDEgPCB4aSAtIHIgfHwgeTAgPiB5aSArIHIgfHwgeTEgPCB5aSAtIHI7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcHJlcGFyZShxdWFkKSB7XG4gICAgaWYgKHF1YWQuZGF0YSkgcmV0dXJuIHF1YWQuciA9IHJhZGlpW3F1YWQuZGF0YS5pbmRleF07XG4gICAgZm9yICh2YXIgaSA9IHF1YWQuciA9IDA7IGkgPCA0OyArK2kpIHtcbiAgICAgIGlmIChxdWFkW2ldICYmIHF1YWRbaV0uciA+IHF1YWQucikge1xuICAgICAgICBxdWFkLnIgPSBxdWFkW2ldLnI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaW5pdGlhbGl6ZSgpIHtcbiAgICBpZiAoIW5vZGVzKSByZXR1cm47XG4gICAgdmFyIGksIG4gPSBub2Rlcy5sZW5ndGgsIG5vZGU7XG4gICAgcmFkaWkgPSBuZXcgQXJyYXkobik7XG4gICAgZm9yIChpID0gMDsgaSA8IG47ICsraSkgbm9kZSA9IG5vZGVzW2ldLCByYWRpaVtub2RlLmluZGV4XSA9ICtyYWRpdXMobm9kZSwgaSwgbm9kZXMpO1xuICB9XG5cbiAgZm9yY2UuaW5pdGlhbGl6ZSA9IGZ1bmN0aW9uKF9ub2RlcywgX3JhbmRvbSkge1xuICAgIG5vZGVzID0gX25vZGVzO1xuICAgIHJhbmRvbSA9IF9yYW5kb207XG4gICAgaW5pdGlhbGl6ZSgpO1xuICB9O1xuXG4gIGZvcmNlLml0ZXJhdGlvbnMgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoaXRlcmF0aW9ucyA9ICtfLCBmb3JjZSkgOiBpdGVyYXRpb25zO1xuICB9O1xuXG4gIGZvcmNlLnN0cmVuZ3RoID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHN0cmVuZ3RoID0gK18sIGZvcmNlKSA6IHN0cmVuZ3RoO1xuICB9O1xuXG4gIGZvcmNlLnJhZGl1cyA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChyYWRpdXMgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCtfKSwgaW5pdGlhbGl6ZSgpLCBmb3JjZSkgOiByYWRpdXM7XG4gIH07XG5cbiAgcmV0dXJuIGZvcmNlO1xufVxuIiwgImltcG9ydCBjb25zdGFudCBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuaW1wb3J0IGppZ2dsZSBmcm9tIFwiLi9qaWdnbGUuanNcIjtcblxuZnVuY3Rpb24gaW5kZXgoZCkge1xuICByZXR1cm4gZC5pbmRleDtcbn1cblxuZnVuY3Rpb24gZmluZChub2RlQnlJZCwgbm9kZUlkKSB7XG4gIHZhciBub2RlID0gbm9kZUJ5SWQuZ2V0KG5vZGVJZCk7XG4gIGlmICghbm9kZSkgdGhyb3cgbmV3IEVycm9yKFwibm9kZSBub3QgZm91bmQ6IFwiICsgbm9kZUlkKTtcbiAgcmV0dXJuIG5vZGU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGxpbmtzKSB7XG4gIHZhciBpZCA9IGluZGV4LFxuICAgICAgc3RyZW5ndGggPSBkZWZhdWx0U3RyZW5ndGgsXG4gICAgICBzdHJlbmd0aHMsXG4gICAgICBkaXN0YW5jZSA9IGNvbnN0YW50KDMwKSxcbiAgICAgIGRpc3RhbmNlcyxcbiAgICAgIG5vZGVzLFxuICAgICAgY291bnQsXG4gICAgICBiaWFzLFxuICAgICAgcmFuZG9tLFxuICAgICAgaXRlcmF0aW9ucyA9IDE7XG5cbiAgaWYgKGxpbmtzID09IG51bGwpIGxpbmtzID0gW107XG5cbiAgZnVuY3Rpb24gZGVmYXVsdFN0cmVuZ3RoKGxpbmspIHtcbiAgICByZXR1cm4gMSAvIE1hdGgubWluKGNvdW50W2xpbmsuc291cmNlLmluZGV4XSwgY291bnRbbGluay50YXJnZXQuaW5kZXhdKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZvcmNlKGFscGhhKSB7XG4gICAgZm9yICh2YXIgayA9IDAsIG4gPSBsaW5rcy5sZW5ndGg7IGsgPCBpdGVyYXRpb25zOyArK2spIHtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsaW5rLCBzb3VyY2UsIHRhcmdldCwgeCwgeSwgbCwgYjsgaSA8IG47ICsraSkge1xuICAgICAgICBsaW5rID0gbGlua3NbaV0sIHNvdXJjZSA9IGxpbmsuc291cmNlLCB0YXJnZXQgPSBsaW5rLnRhcmdldDtcbiAgICAgICAgeCA9IHRhcmdldC54ICsgdGFyZ2V0LnZ4IC0gc291cmNlLnggLSBzb3VyY2UudnggfHwgamlnZ2xlKHJhbmRvbSk7XG4gICAgICAgIHkgPSB0YXJnZXQueSArIHRhcmdldC52eSAtIHNvdXJjZS55IC0gc291cmNlLnZ5IHx8IGppZ2dsZShyYW5kb20pO1xuICAgICAgICBsID0gTWF0aC5zcXJ0KHggKiB4ICsgeSAqIHkpO1xuICAgICAgICBsID0gKGwgLSBkaXN0YW5jZXNbaV0pIC8gbCAqIGFscGhhICogc3RyZW5ndGhzW2ldO1xuICAgICAgICB4ICo9IGwsIHkgKj0gbDtcbiAgICAgICAgdGFyZ2V0LnZ4IC09IHggKiAoYiA9IGJpYXNbaV0pO1xuICAgICAgICB0YXJnZXQudnkgLT0geSAqIGI7XG4gICAgICAgIHNvdXJjZS52eCArPSB4ICogKGIgPSAxIC0gYik7XG4gICAgICAgIHNvdXJjZS52eSArPSB5ICogYjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBpbml0aWFsaXplKCkge1xuICAgIGlmICghbm9kZXMpIHJldHVybjtcblxuICAgIHZhciBpLFxuICAgICAgICBuID0gbm9kZXMubGVuZ3RoLFxuICAgICAgICBtID0gbGlua3MubGVuZ3RoLFxuICAgICAgICBub2RlQnlJZCA9IG5ldyBNYXAobm9kZXMubWFwKChkLCBpKSA9PiBbaWQoZCwgaSwgbm9kZXMpLCBkXSkpLFxuICAgICAgICBsaW5rO1xuXG4gICAgZm9yIChpID0gMCwgY291bnQgPSBuZXcgQXJyYXkobik7IGkgPCBtOyArK2kpIHtcbiAgICAgIGxpbmsgPSBsaW5rc1tpXSwgbGluay5pbmRleCA9IGk7XG4gICAgICBpZiAodHlwZW9mIGxpbmsuc291cmNlICE9PSBcIm9iamVjdFwiKSBsaW5rLnNvdXJjZSA9IGZpbmQobm9kZUJ5SWQsIGxpbmsuc291cmNlKTtcbiAgICAgIGlmICh0eXBlb2YgbGluay50YXJnZXQgIT09IFwib2JqZWN0XCIpIGxpbmsudGFyZ2V0ID0gZmluZChub2RlQnlJZCwgbGluay50YXJnZXQpO1xuICAgICAgY291bnRbbGluay5zb3VyY2UuaW5kZXhdID0gKGNvdW50W2xpbmsuc291cmNlLmluZGV4XSB8fCAwKSArIDE7XG4gICAgICBjb3VudFtsaW5rLnRhcmdldC5pbmRleF0gPSAoY291bnRbbGluay50YXJnZXQuaW5kZXhdIHx8IDApICsgMTtcbiAgICB9XG5cbiAgICBmb3IgKGkgPSAwLCBiaWFzID0gbmV3IEFycmF5KG0pOyBpIDwgbTsgKytpKSB7XG4gICAgICBsaW5rID0gbGlua3NbaV0sIGJpYXNbaV0gPSBjb3VudFtsaW5rLnNvdXJjZS5pbmRleF0gLyAoY291bnRbbGluay5zb3VyY2UuaW5kZXhdICsgY291bnRbbGluay50YXJnZXQuaW5kZXhdKTtcbiAgICB9XG5cbiAgICBzdHJlbmd0aHMgPSBuZXcgQXJyYXkobSksIGluaXRpYWxpemVTdHJlbmd0aCgpO1xuICAgIGRpc3RhbmNlcyA9IG5ldyBBcnJheShtKSwgaW5pdGlhbGl6ZURpc3RhbmNlKCk7XG4gIH1cblxuICBmdW5jdGlvbiBpbml0aWFsaXplU3RyZW5ndGgoKSB7XG4gICAgaWYgKCFub2RlcykgcmV0dXJuO1xuXG4gICAgZm9yICh2YXIgaSA9IDAsIG4gPSBsaW5rcy5sZW5ndGg7IGkgPCBuOyArK2kpIHtcbiAgICAgIHN0cmVuZ3Roc1tpXSA9ICtzdHJlbmd0aChsaW5rc1tpXSwgaSwgbGlua3MpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRpYWxpemVEaXN0YW5jZSgpIHtcbiAgICBpZiAoIW5vZGVzKSByZXR1cm47XG5cbiAgICBmb3IgKHZhciBpID0gMCwgbiA9IGxpbmtzLmxlbmd0aDsgaSA8IG47ICsraSkge1xuICAgICAgZGlzdGFuY2VzW2ldID0gK2Rpc3RhbmNlKGxpbmtzW2ldLCBpLCBsaW5rcyk7XG4gICAgfVxuICB9XG5cbiAgZm9yY2UuaW5pdGlhbGl6ZSA9IGZ1bmN0aW9uKF9ub2RlcywgX3JhbmRvbSkge1xuICAgIG5vZGVzID0gX25vZGVzO1xuICAgIHJhbmRvbSA9IF9yYW5kb207XG4gICAgaW5pdGlhbGl6ZSgpO1xuICB9O1xuXG4gIGZvcmNlLmxpbmtzID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGxpbmtzID0gXywgaW5pdGlhbGl6ZSgpLCBmb3JjZSkgOiBsaW5rcztcbiAgfTtcblxuICBmb3JjZS5pZCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChpZCA9IF8sIGZvcmNlKSA6IGlkO1xuICB9O1xuXG4gIGZvcmNlLml0ZXJhdGlvbnMgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoaXRlcmF0aW9ucyA9ICtfLCBmb3JjZSkgOiBpdGVyYXRpb25zO1xuICB9O1xuXG4gIGZvcmNlLnN0cmVuZ3RoID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHN0cmVuZ3RoID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCgrXyksIGluaXRpYWxpemVTdHJlbmd0aCgpLCBmb3JjZSkgOiBzdHJlbmd0aDtcbiAgfTtcblxuICBmb3JjZS5kaXN0YW5jZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChkaXN0YW5jZSA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoK18pLCBpbml0aWFsaXplRGlzdGFuY2UoKSwgZm9yY2UpIDogZGlzdGFuY2U7XG4gIH07XG5cbiAgcmV0dXJuIGZvcmNlO1xufVxuIiwgIi8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0xpbmVhcl9jb25ncnVlbnRpYWxfZ2VuZXJhdG9yI1BhcmFtZXRlcnNfaW5fY29tbW9uX3VzZVxuY29uc3QgYSA9IDE2NjQ1MjU7XG5jb25zdCBjID0gMTAxMzkwNDIyMztcbmNvbnN0IG0gPSA0Mjk0OTY3Mjk2OyAvLyAyXjMyXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICBsZXQgcyA9IDE7XG4gIHJldHVybiAoKSA9PiAocyA9IChhICogcyArIGMpICUgbSkgLyBtO1xufVxuIiwgImltcG9ydCB7ZGlzcGF0Y2h9IGZyb20gXCJkMy1kaXNwYXRjaFwiO1xuaW1wb3J0IHt0aW1lcn0gZnJvbSBcImQzLXRpbWVyXCI7XG5pbXBvcnQgbGNnIGZyb20gXCIuL2xjZy5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24geChkKSB7XG4gIHJldHVybiBkLng7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB5KGQpIHtcbiAgcmV0dXJuIGQueTtcbn1cblxudmFyIGluaXRpYWxSYWRpdXMgPSAxMCxcbiAgICBpbml0aWFsQW5nbGUgPSBNYXRoLlBJICogKDMgLSBNYXRoLnNxcnQoNSkpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihub2Rlcykge1xuICB2YXIgc2ltdWxhdGlvbixcbiAgICAgIGFscGhhID0gMSxcbiAgICAgIGFscGhhTWluID0gMC4wMDEsXG4gICAgICBhbHBoYURlY2F5ID0gMSAtIE1hdGgucG93KGFscGhhTWluLCAxIC8gMzAwKSxcbiAgICAgIGFscGhhVGFyZ2V0ID0gMCxcbiAgICAgIHZlbG9jaXR5RGVjYXkgPSAwLjYsXG4gICAgICBmb3JjZXMgPSBuZXcgTWFwKCksXG4gICAgICBzdGVwcGVyID0gdGltZXIoc3RlcCksXG4gICAgICBldmVudCA9IGRpc3BhdGNoKFwidGlja1wiLCBcImVuZFwiKSxcbiAgICAgIHJhbmRvbSA9IGxjZygpO1xuXG4gIGlmIChub2RlcyA9PSBudWxsKSBub2RlcyA9IFtdO1xuXG4gIGZ1bmN0aW9uIHN0ZXAoKSB7XG4gICAgdGljaygpO1xuICAgIGV2ZW50LmNhbGwoXCJ0aWNrXCIsIHNpbXVsYXRpb24pO1xuICAgIGlmIChhbHBoYSA8IGFscGhhTWluKSB7XG4gICAgICBzdGVwcGVyLnN0b3AoKTtcbiAgICAgIGV2ZW50LmNhbGwoXCJlbmRcIiwgc2ltdWxhdGlvbik7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gdGljayhpdGVyYXRpb25zKSB7XG4gICAgdmFyIGksIG4gPSBub2Rlcy5sZW5ndGgsIG5vZGU7XG5cbiAgICBpZiAoaXRlcmF0aW9ucyA9PT0gdW5kZWZpbmVkKSBpdGVyYXRpb25zID0gMTtcblxuICAgIGZvciAodmFyIGsgPSAwOyBrIDwgaXRlcmF0aW9uczsgKytrKSB7XG4gICAgICBhbHBoYSArPSAoYWxwaGFUYXJnZXQgLSBhbHBoYSkgKiBhbHBoYURlY2F5O1xuXG4gICAgICBmb3JjZXMuZm9yRWFjaChmdW5jdGlvbihmb3JjZSkge1xuICAgICAgICBmb3JjZShhbHBoYSk7XG4gICAgICB9KTtcblxuICAgICAgZm9yIChpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgICBub2RlID0gbm9kZXNbaV07XG4gICAgICAgIGlmIChub2RlLmZ4ID09IG51bGwpIG5vZGUueCArPSBub2RlLnZ4ICo9IHZlbG9jaXR5RGVjYXk7XG4gICAgICAgIGVsc2Ugbm9kZS54ID0gbm9kZS5meCwgbm9kZS52eCA9IDA7XG4gICAgICAgIGlmIChub2RlLmZ5ID09IG51bGwpIG5vZGUueSArPSBub2RlLnZ5ICo9IHZlbG9jaXR5RGVjYXk7XG4gICAgICAgIGVsc2Ugbm9kZS55ID0gbm9kZS5meSwgbm9kZS52eSA9IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpbXVsYXRpb247XG4gIH1cblxuICBmdW5jdGlvbiBpbml0aWFsaXplTm9kZXMoKSB7XG4gICAgZm9yICh2YXIgaSA9IDAsIG4gPSBub2Rlcy5sZW5ndGgsIG5vZGU7IGkgPCBuOyArK2kpIHtcbiAgICAgIG5vZGUgPSBub2Rlc1tpXSwgbm9kZS5pbmRleCA9IGk7XG4gICAgICBpZiAobm9kZS5meCAhPSBudWxsKSBub2RlLnggPSBub2RlLmZ4O1xuICAgICAgaWYgKG5vZGUuZnkgIT0gbnVsbCkgbm9kZS55ID0gbm9kZS5meTtcbiAgICAgIGlmIChpc05hTihub2RlLngpIHx8IGlzTmFOKG5vZGUueSkpIHtcbiAgICAgICAgdmFyIHJhZGl1cyA9IGluaXRpYWxSYWRpdXMgKiBNYXRoLnNxcnQoMC41ICsgaSksIGFuZ2xlID0gaSAqIGluaXRpYWxBbmdsZTtcbiAgICAgICAgbm9kZS54ID0gcmFkaXVzICogTWF0aC5jb3MoYW5nbGUpO1xuICAgICAgICBub2RlLnkgPSByYWRpdXMgKiBNYXRoLnNpbihhbmdsZSk7XG4gICAgICB9XG4gICAgICBpZiAoaXNOYU4obm9kZS52eCkgfHwgaXNOYU4obm9kZS52eSkpIHtcbiAgICAgICAgbm9kZS52eCA9IG5vZGUudnkgPSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRpYWxpemVGb3JjZShmb3JjZSkge1xuICAgIGlmIChmb3JjZS5pbml0aWFsaXplKSBmb3JjZS5pbml0aWFsaXplKG5vZGVzLCByYW5kb20pO1xuICAgIHJldHVybiBmb3JjZTtcbiAgfVxuXG4gIGluaXRpYWxpemVOb2RlcygpO1xuXG4gIHJldHVybiBzaW11bGF0aW9uID0ge1xuICAgIHRpY2s6IHRpY2ssXG5cbiAgICByZXN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBzdGVwcGVyLnJlc3RhcnQoc3RlcCksIHNpbXVsYXRpb247XG4gICAgfSxcblxuICAgIHN0b3A6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHN0ZXBwZXIuc3RvcCgpLCBzaW11bGF0aW9uO1xuICAgIH0sXG5cbiAgICBub2RlczogZnVuY3Rpb24oXykge1xuICAgICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAobm9kZXMgPSBfLCBpbml0aWFsaXplTm9kZXMoKSwgZm9yY2VzLmZvckVhY2goaW5pdGlhbGl6ZUZvcmNlKSwgc2ltdWxhdGlvbikgOiBub2RlcztcbiAgICB9LFxuXG4gICAgYWxwaGE6IGZ1bmN0aW9uKF8pIHtcbiAgICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGFscGhhID0gK18sIHNpbXVsYXRpb24pIDogYWxwaGE7XG4gICAgfSxcblxuICAgIGFscGhhTWluOiBmdW5jdGlvbihfKSB7XG4gICAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChhbHBoYU1pbiA9ICtfLCBzaW11bGF0aW9uKSA6IGFscGhhTWluO1xuICAgIH0sXG5cbiAgICBhbHBoYURlY2F5OiBmdW5jdGlvbihfKSB7XG4gICAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChhbHBoYURlY2F5ID0gK18sIHNpbXVsYXRpb24pIDogK2FscGhhRGVjYXk7XG4gICAgfSxcblxuICAgIGFscGhhVGFyZ2V0OiBmdW5jdGlvbihfKSB7XG4gICAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChhbHBoYVRhcmdldCA9ICtfLCBzaW11bGF0aW9uKSA6IGFscGhhVGFyZ2V0O1xuICAgIH0sXG5cbiAgICB2ZWxvY2l0eURlY2F5OiBmdW5jdGlvbihfKSB7XG4gICAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh2ZWxvY2l0eURlY2F5ID0gMSAtIF8sIHNpbXVsYXRpb24pIDogMSAtIHZlbG9jaXR5RGVjYXk7XG4gICAgfSxcblxuICAgIHJhbmRvbVNvdXJjZTogZnVuY3Rpb24oXykge1xuICAgICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocmFuZG9tID0gXywgZm9yY2VzLmZvckVhY2goaW5pdGlhbGl6ZUZvcmNlKSwgc2ltdWxhdGlvbikgOiByYW5kb207XG4gICAgfSxcblxuICAgIGZvcmNlOiBmdW5jdGlvbihuYW1lLCBfKSB7XG4gICAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyAoKF8gPT0gbnVsbCA/IGZvcmNlcy5kZWxldGUobmFtZSkgOiBmb3JjZXMuc2V0KG5hbWUsIGluaXRpYWxpemVGb3JjZShfKSkpLCBzaW11bGF0aW9uKSA6IGZvcmNlcy5nZXQobmFtZSk7XG4gICAgfSxcblxuICAgIGZpbmQ6IGZ1bmN0aW9uKHgsIHksIHJhZGl1cykge1xuICAgICAgdmFyIGkgPSAwLFxuICAgICAgICAgIG4gPSBub2Rlcy5sZW5ndGgsXG4gICAgICAgICAgZHgsXG4gICAgICAgICAgZHksXG4gICAgICAgICAgZDIsXG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgICBjbG9zZXN0O1xuXG4gICAgICBpZiAocmFkaXVzID09IG51bGwpIHJhZGl1cyA9IEluZmluaXR5O1xuICAgICAgZWxzZSByYWRpdXMgKj0gcmFkaXVzO1xuXG4gICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICAgIG5vZGUgPSBub2Rlc1tpXTtcbiAgICAgICAgZHggPSB4IC0gbm9kZS54O1xuICAgICAgICBkeSA9IHkgLSBub2RlLnk7XG4gICAgICAgIGQyID0gZHggKiBkeCArIGR5ICogZHk7XG4gICAgICAgIGlmIChkMiA8IHJhZGl1cykgY2xvc2VzdCA9IG5vZGUsIHJhZGl1cyA9IGQyO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2xvc2VzdDtcbiAgICB9LFxuXG4gICAgb246IGZ1bmN0aW9uKG5hbWUsIF8pIHtcbiAgICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID4gMSA/IChldmVudC5vbihuYW1lLCBfKSwgc2ltdWxhdGlvbikgOiBldmVudC5vbihuYW1lKTtcbiAgICB9XG4gIH07XG59XG4iLCAiaW1wb3J0IHtxdWFkdHJlZX0gZnJvbSBcImQzLXF1YWR0cmVlXCI7XG5pbXBvcnQgY29uc3RhbnQgZnJvbSBcIi4vY29uc3RhbnQuanNcIjtcbmltcG9ydCBqaWdnbGUgZnJvbSBcIi4vamlnZ2xlLmpzXCI7XG5pbXBvcnQge3gsIHl9IGZyb20gXCIuL3NpbXVsYXRpb24uanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHZhciBub2RlcyxcbiAgICAgIG5vZGUsXG4gICAgICByYW5kb20sXG4gICAgICBhbHBoYSxcbiAgICAgIHN0cmVuZ3RoID0gY29uc3RhbnQoLTMwKSxcbiAgICAgIHN0cmVuZ3RocyxcbiAgICAgIGRpc3RhbmNlTWluMiA9IDEsXG4gICAgICBkaXN0YW5jZU1heDIgPSBJbmZpbml0eSxcbiAgICAgIHRoZXRhMiA9IDAuODE7XG5cbiAgZnVuY3Rpb24gZm9yY2UoXykge1xuICAgIHZhciBpLCBuID0gbm9kZXMubGVuZ3RoLCB0cmVlID0gcXVhZHRyZWUobm9kZXMsIHgsIHkpLnZpc2l0QWZ0ZXIoYWNjdW11bGF0ZSk7XG4gICAgZm9yIChhbHBoYSA9IF8sIGkgPSAwOyBpIDwgbjsgKytpKSBub2RlID0gbm9kZXNbaV0sIHRyZWUudmlzaXQoYXBwbHkpO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5pdGlhbGl6ZSgpIHtcbiAgICBpZiAoIW5vZGVzKSByZXR1cm47XG4gICAgdmFyIGksIG4gPSBub2Rlcy5sZW5ndGgsIG5vZGU7XG4gICAgc3RyZW5ndGhzID0gbmV3IEFycmF5KG4pO1xuICAgIGZvciAoaSA9IDA7IGkgPCBuOyArK2kpIG5vZGUgPSBub2Rlc1tpXSwgc3RyZW5ndGhzW25vZGUuaW5kZXhdID0gK3N0cmVuZ3RoKG5vZGUsIGksIG5vZGVzKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFjY3VtdWxhdGUocXVhZCkge1xuICAgIHZhciBzdHJlbmd0aCA9IDAsIHEsIGMsIHdlaWdodCA9IDAsIHgsIHksIGk7XG5cbiAgICAvLyBGb3IgaW50ZXJuYWwgbm9kZXMsIGFjY3VtdWxhdGUgZm9yY2VzIGZyb20gY2hpbGQgcXVhZHJhbnRzLlxuICAgIGlmIChxdWFkLmxlbmd0aCkge1xuICAgICAgZm9yICh4ID0geSA9IGkgPSAwOyBpIDwgNDsgKytpKSB7XG4gICAgICAgIGlmICgocSA9IHF1YWRbaV0pICYmIChjID0gTWF0aC5hYnMocS52YWx1ZSkpKSB7XG4gICAgICAgICAgc3RyZW5ndGggKz0gcS52YWx1ZSwgd2VpZ2h0ICs9IGMsIHggKz0gYyAqIHEueCwgeSArPSBjICogcS55O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBxdWFkLnggPSB4IC8gd2VpZ2h0O1xuICAgICAgcXVhZC55ID0geSAvIHdlaWdodDtcbiAgICB9XG5cbiAgICAvLyBGb3IgbGVhZiBub2RlcywgYWNjdW11bGF0ZSBmb3JjZXMgZnJvbSBjb2luY2lkZW50IHF1YWRyYW50cy5cbiAgICBlbHNlIHtcbiAgICAgIHEgPSBxdWFkO1xuICAgICAgcS54ID0gcS5kYXRhLng7XG4gICAgICBxLnkgPSBxLmRhdGEueTtcbiAgICAgIGRvIHN0cmVuZ3RoICs9IHN0cmVuZ3Roc1txLmRhdGEuaW5kZXhdO1xuICAgICAgd2hpbGUgKHEgPSBxLm5leHQpO1xuICAgIH1cblxuICAgIHF1YWQudmFsdWUgPSBzdHJlbmd0aDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFwcGx5KHF1YWQsIHgxLCBfLCB4Mikge1xuICAgIGlmICghcXVhZC52YWx1ZSkgcmV0dXJuIHRydWU7XG5cbiAgICB2YXIgeCA9IHF1YWQueCAtIG5vZGUueCxcbiAgICAgICAgeSA9IHF1YWQueSAtIG5vZGUueSxcbiAgICAgICAgdyA9IHgyIC0geDEsXG4gICAgICAgIGwgPSB4ICogeCArIHkgKiB5O1xuXG4gICAgLy8gQXBwbHkgdGhlIEJhcm5lcy1IdXQgYXBwcm94aW1hdGlvbiBpZiBwb3NzaWJsZS5cbiAgICAvLyBMaW1pdCBmb3JjZXMgZm9yIHZlcnkgY2xvc2Ugbm9kZXM7IHJhbmRvbWl6ZSBkaXJlY3Rpb24gaWYgY29pbmNpZGVudC5cbiAgICBpZiAodyAqIHcgLyB0aGV0YTIgPCBsKSB7XG4gICAgICBpZiAobCA8IGRpc3RhbmNlTWF4Mikge1xuICAgICAgICBpZiAoeCA9PT0gMCkgeCA9IGppZ2dsZShyYW5kb20pLCBsICs9IHggKiB4O1xuICAgICAgICBpZiAoeSA9PT0gMCkgeSA9IGppZ2dsZShyYW5kb20pLCBsICs9IHkgKiB5O1xuICAgICAgICBpZiAobCA8IGRpc3RhbmNlTWluMikgbCA9IE1hdGguc3FydChkaXN0YW5jZU1pbjIgKiBsKTtcbiAgICAgICAgbm9kZS52eCArPSB4ICogcXVhZC52YWx1ZSAqIGFscGhhIC8gbDtcbiAgICAgICAgbm9kZS52eSArPSB5ICogcXVhZC52YWx1ZSAqIGFscGhhIC8gbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSwgcHJvY2VzcyBwb2ludHMgZGlyZWN0bHkuXG4gICAgZWxzZSBpZiAocXVhZC5sZW5ndGggfHwgbCA+PSBkaXN0YW5jZU1heDIpIHJldHVybjtcblxuICAgIC8vIExpbWl0IGZvcmNlcyBmb3IgdmVyeSBjbG9zZSBub2RlczsgcmFuZG9taXplIGRpcmVjdGlvbiBpZiBjb2luY2lkZW50LlxuICAgIGlmIChxdWFkLmRhdGEgIT09IG5vZGUgfHwgcXVhZC5uZXh0KSB7XG4gICAgICBpZiAoeCA9PT0gMCkgeCA9IGppZ2dsZShyYW5kb20pLCBsICs9IHggKiB4O1xuICAgICAgaWYgKHkgPT09IDApIHkgPSBqaWdnbGUocmFuZG9tKSwgbCArPSB5ICogeTtcbiAgICAgIGlmIChsIDwgZGlzdGFuY2VNaW4yKSBsID0gTWF0aC5zcXJ0KGRpc3RhbmNlTWluMiAqIGwpO1xuICAgIH1cblxuICAgIGRvIGlmIChxdWFkLmRhdGEgIT09IG5vZGUpIHtcbiAgICAgIHcgPSBzdHJlbmd0aHNbcXVhZC5kYXRhLmluZGV4XSAqIGFscGhhIC8gbDtcbiAgICAgIG5vZGUudnggKz0geCAqIHc7XG4gICAgICBub2RlLnZ5ICs9IHkgKiB3O1xuICAgIH0gd2hpbGUgKHF1YWQgPSBxdWFkLm5leHQpO1xuICB9XG5cbiAgZm9yY2UuaW5pdGlhbGl6ZSA9IGZ1bmN0aW9uKF9ub2RlcywgX3JhbmRvbSkge1xuICAgIG5vZGVzID0gX25vZGVzO1xuICAgIHJhbmRvbSA9IF9yYW5kb207XG4gICAgaW5pdGlhbGl6ZSgpO1xuICB9O1xuXG4gIGZvcmNlLnN0cmVuZ3RoID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHN0cmVuZ3RoID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCgrXyksIGluaXRpYWxpemUoKSwgZm9yY2UpIDogc3RyZW5ndGg7XG4gIH07XG5cbiAgZm9yY2UuZGlzdGFuY2VNaW4gPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoZGlzdGFuY2VNaW4yID0gXyAqIF8sIGZvcmNlKSA6IE1hdGguc3FydChkaXN0YW5jZU1pbjIpO1xuICB9O1xuXG4gIGZvcmNlLmRpc3RhbmNlTWF4ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGRpc3RhbmNlTWF4MiA9IF8gKiBfLCBmb3JjZSkgOiBNYXRoLnNxcnQoZGlzdGFuY2VNYXgyKTtcbiAgfTtcblxuICBmb3JjZS50aGV0YSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh0aGV0YTIgPSBfICogXywgZm9yY2UpIDogTWF0aC5zcXJ0KHRoZXRhMik7XG4gIH07XG5cbiAgcmV0dXJuIGZvcmNlO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHgpIHtcbiAgcmV0dXJuIE1hdGguYWJzKHggPSBNYXRoLnJvdW5kKHgpKSA+PSAxZTIxXG4gICAgICA/IHgudG9Mb2NhbGVTdHJpbmcoXCJlblwiKS5yZXBsYWNlKC8sL2csIFwiXCIpXG4gICAgICA6IHgudG9TdHJpbmcoMTApO1xufVxuXG4vLyBDb21wdXRlcyB0aGUgZGVjaW1hbCBjb2VmZmljaWVudCBhbmQgZXhwb25lbnQgb2YgdGhlIHNwZWNpZmllZCBudW1iZXIgeCB3aXRoXG4vLyBzaWduaWZpY2FudCBkaWdpdHMgcCwgd2hlcmUgeCBpcyBwb3NpdGl2ZSBhbmQgcCBpcyBpbiBbMSwgMjFdIG9yIHVuZGVmaW5lZC5cbi8vIEZvciBleGFtcGxlLCBmb3JtYXREZWNpbWFsUGFydHMoMS4yMykgcmV0dXJucyBbXCIxMjNcIiwgMF0uXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGVjaW1hbFBhcnRzKHgsIHApIHtcbiAgaWYgKChpID0gKHggPSBwID8geC50b0V4cG9uZW50aWFsKHAgLSAxKSA6IHgudG9FeHBvbmVudGlhbCgpKS5pbmRleE9mKFwiZVwiKSkgPCAwKSByZXR1cm4gbnVsbDsgLy8gTmFOLCBcdTAwQjFJbmZpbml0eVxuICB2YXIgaSwgY29lZmZpY2llbnQgPSB4LnNsaWNlKDAsIGkpO1xuXG4gIC8vIFRoZSBzdHJpbmcgcmV0dXJuZWQgYnkgdG9FeHBvbmVudGlhbCBlaXRoZXIgaGFzIHRoZSBmb3JtIFxcZFxcLlxcZCtlWy0rXVxcZCtcbiAgLy8gKGUuZy4sIDEuMmUrMykgb3IgdGhlIGZvcm0gXFxkZVstK11cXGQrIChlLmcuLCAxZSszKS5cbiAgcmV0dXJuIFtcbiAgICBjb2VmZmljaWVudC5sZW5ndGggPiAxID8gY29lZmZpY2llbnRbMF0gKyBjb2VmZmljaWVudC5zbGljZSgyKSA6IGNvZWZmaWNpZW50LFxuICAgICt4LnNsaWNlKGkgKyAxKVxuICBdO1xufVxuIiwgImltcG9ydCB7Zm9ybWF0RGVjaW1hbFBhcnRzfSBmcm9tIFwiLi9mb3JtYXREZWNpbWFsLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHgpIHtcbiAgcmV0dXJuIHggPSBmb3JtYXREZWNpbWFsUGFydHMoTWF0aC5hYnMoeCkpLCB4ID8geFsxXSA6IE5hTjtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihncm91cGluZywgdGhvdXNhbmRzKSB7XG4gIHJldHVybiBmdW5jdGlvbih2YWx1ZSwgd2lkdGgpIHtcbiAgICB2YXIgaSA9IHZhbHVlLmxlbmd0aCxcbiAgICAgICAgdCA9IFtdLFxuICAgICAgICBqID0gMCxcbiAgICAgICAgZyA9IGdyb3VwaW5nWzBdLFxuICAgICAgICBsZW5ndGggPSAwO1xuXG4gICAgd2hpbGUgKGkgPiAwICYmIGcgPiAwKSB7XG4gICAgICBpZiAobGVuZ3RoICsgZyArIDEgPiB3aWR0aCkgZyA9IE1hdGgubWF4KDEsIHdpZHRoIC0gbGVuZ3RoKTtcbiAgICAgIHQucHVzaCh2YWx1ZS5zdWJzdHJpbmcoaSAtPSBnLCBpICsgZykpO1xuICAgICAgaWYgKChsZW5ndGggKz0gZyArIDEpID4gd2lkdGgpIGJyZWFrO1xuICAgICAgZyA9IGdyb3VwaW5nW2ogPSAoaiArIDEpICUgZ3JvdXBpbmcubGVuZ3RoXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdC5yZXZlcnNlKCkuam9pbih0aG91c2FuZHMpO1xuICB9O1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG51bWVyYWxzKSB7XG4gIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9bMC05XS9nLCBmdW5jdGlvbihpKSB7XG4gICAgICByZXR1cm4gbnVtZXJhbHNbK2ldO1xuICAgIH0pO1xuICB9O1xufVxuIiwgIi8vIFtbZmlsbF1hbGlnbl1bc2lnbl1bc3ltYm9sXVswXVt3aWR0aF1bLF1bLnByZWNpc2lvbl1bfl1bdHlwZV1cbnZhciByZSA9IC9eKD86KC4pPyhbPD49Xl0pKT8oWytcXC0oIF0pPyhbJCNdKT8oMCk/KFxcZCspPygsKT8oXFwuXFxkKyk/KH4pPyhbYS16JV0pPyQvaTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZm9ybWF0U3BlY2lmaWVyKHNwZWNpZmllcikge1xuICBpZiAoIShtYXRjaCA9IHJlLmV4ZWMoc3BlY2lmaWVyKSkpIHRocm93IG5ldyBFcnJvcihcImludmFsaWQgZm9ybWF0OiBcIiArIHNwZWNpZmllcik7XG4gIHZhciBtYXRjaDtcbiAgcmV0dXJuIG5ldyBGb3JtYXRTcGVjaWZpZXIoe1xuICAgIGZpbGw6IG1hdGNoWzFdLFxuICAgIGFsaWduOiBtYXRjaFsyXSxcbiAgICBzaWduOiBtYXRjaFszXSxcbiAgICBzeW1ib2w6IG1hdGNoWzRdLFxuICAgIHplcm86IG1hdGNoWzVdLFxuICAgIHdpZHRoOiBtYXRjaFs2XSxcbiAgICBjb21tYTogbWF0Y2hbN10sXG4gICAgcHJlY2lzaW9uOiBtYXRjaFs4XSAmJiBtYXRjaFs4XS5zbGljZSgxKSxcbiAgICB0cmltOiBtYXRjaFs5XSxcbiAgICB0eXBlOiBtYXRjaFsxMF1cbiAgfSk7XG59XG5cbmZvcm1hdFNwZWNpZmllci5wcm90b3R5cGUgPSBGb3JtYXRTcGVjaWZpZXIucHJvdG90eXBlOyAvLyBpbnN0YW5jZW9mXG5cbmV4cG9ydCBmdW5jdGlvbiBGb3JtYXRTcGVjaWZpZXIoc3BlY2lmaWVyKSB7XG4gIHRoaXMuZmlsbCA9IHNwZWNpZmllci5maWxsID09PSB1bmRlZmluZWQgPyBcIiBcIiA6IHNwZWNpZmllci5maWxsICsgXCJcIjtcbiAgdGhpcy5hbGlnbiA9IHNwZWNpZmllci5hbGlnbiA9PT0gdW5kZWZpbmVkID8gXCI+XCIgOiBzcGVjaWZpZXIuYWxpZ24gKyBcIlwiO1xuICB0aGlzLnNpZ24gPSBzcGVjaWZpZXIuc2lnbiA9PT0gdW5kZWZpbmVkID8gXCItXCIgOiBzcGVjaWZpZXIuc2lnbiArIFwiXCI7XG4gIHRoaXMuc3ltYm9sID0gc3BlY2lmaWVyLnN5bWJvbCA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IHNwZWNpZmllci5zeW1ib2wgKyBcIlwiO1xuICB0aGlzLnplcm8gPSAhIXNwZWNpZmllci56ZXJvO1xuICB0aGlzLndpZHRoID0gc3BlY2lmaWVyLndpZHRoID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiArc3BlY2lmaWVyLndpZHRoO1xuICB0aGlzLmNvbW1hID0gISFzcGVjaWZpZXIuY29tbWE7XG4gIHRoaXMucHJlY2lzaW9uID0gc3BlY2lmaWVyLnByZWNpc2lvbiA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogK3NwZWNpZmllci5wcmVjaXNpb247XG4gIHRoaXMudHJpbSA9ICEhc3BlY2lmaWVyLnRyaW07XG4gIHRoaXMudHlwZSA9IHNwZWNpZmllci50eXBlID09PSB1bmRlZmluZWQgPyBcIlwiIDogc3BlY2lmaWVyLnR5cGUgKyBcIlwiO1xufVxuXG5Gb3JtYXRTcGVjaWZpZXIucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLmZpbGxcbiAgICAgICsgdGhpcy5hbGlnblxuICAgICAgKyB0aGlzLnNpZ25cbiAgICAgICsgdGhpcy5zeW1ib2xcbiAgICAgICsgKHRoaXMuemVybyA/IFwiMFwiIDogXCJcIilcbiAgICAgICsgKHRoaXMud2lkdGggPT09IHVuZGVmaW5lZCA/IFwiXCIgOiBNYXRoLm1heCgxLCB0aGlzLndpZHRoIHwgMCkpXG4gICAgICArICh0aGlzLmNvbW1hID8gXCIsXCIgOiBcIlwiKVxuICAgICAgKyAodGhpcy5wcmVjaXNpb24gPT09IHVuZGVmaW5lZCA/IFwiXCIgOiBcIi5cIiArIE1hdGgubWF4KDAsIHRoaXMucHJlY2lzaW9uIHwgMCkpXG4gICAgICArICh0aGlzLnRyaW0gPyBcIn5cIiA6IFwiXCIpXG4gICAgICArIHRoaXMudHlwZTtcbn07XG4iLCAiLy8gVHJpbXMgaW5zaWduaWZpY2FudCB6ZXJvcywgZS5nLiwgcmVwbGFjZXMgMS4yMDAwayB3aXRoIDEuMmsuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzKSB7XG4gIG91dDogZm9yICh2YXIgbiA9IHMubGVuZ3RoLCBpID0gMSwgaTAgPSAtMSwgaTE7IGkgPCBuOyArK2kpIHtcbiAgICBzd2l0Y2ggKHNbaV0pIHtcbiAgICAgIGNhc2UgXCIuXCI6IGkwID0gaTEgPSBpOyBicmVhaztcbiAgICAgIGNhc2UgXCIwXCI6IGlmIChpMCA9PT0gMCkgaTAgPSBpOyBpMSA9IGk7IGJyZWFrO1xuICAgICAgZGVmYXVsdDogaWYgKCErc1tpXSkgYnJlYWsgb3V0OyBpZiAoaTAgPiAwKSBpMCA9IDA7IGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gaTAgPiAwID8gcy5zbGljZSgwLCBpMCkgKyBzLnNsaWNlKGkxICsgMSkgOiBzO1xufVxuIiwgImltcG9ydCB7Zm9ybWF0RGVjaW1hbFBhcnRzfSBmcm9tIFwiLi9mb3JtYXREZWNpbWFsLmpzXCI7XG5cbmV4cG9ydCB2YXIgcHJlZml4RXhwb25lbnQ7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHgsIHApIHtcbiAgdmFyIGQgPSBmb3JtYXREZWNpbWFsUGFydHMoeCwgcCk7XG4gIGlmICghZCkgcmV0dXJuIHggKyBcIlwiO1xuICB2YXIgY29lZmZpY2llbnQgPSBkWzBdLFxuICAgICAgZXhwb25lbnQgPSBkWzFdLFxuICAgICAgaSA9IGV4cG9uZW50IC0gKHByZWZpeEV4cG9uZW50ID0gTWF0aC5tYXgoLTgsIE1hdGgubWluKDgsIE1hdGguZmxvb3IoZXhwb25lbnQgLyAzKSkpICogMykgKyAxLFxuICAgICAgbiA9IGNvZWZmaWNpZW50Lmxlbmd0aDtcbiAgcmV0dXJuIGkgPT09IG4gPyBjb2VmZmljaWVudFxuICAgICAgOiBpID4gbiA/IGNvZWZmaWNpZW50ICsgbmV3IEFycmF5KGkgLSBuICsgMSkuam9pbihcIjBcIilcbiAgICAgIDogaSA+IDAgPyBjb2VmZmljaWVudC5zbGljZSgwLCBpKSArIFwiLlwiICsgY29lZmZpY2llbnQuc2xpY2UoaSlcbiAgICAgIDogXCIwLlwiICsgbmV3IEFycmF5KDEgLSBpKS5qb2luKFwiMFwiKSArIGZvcm1hdERlY2ltYWxQYXJ0cyh4LCBNYXRoLm1heCgwLCBwICsgaSAtIDEpKVswXTsgLy8gbGVzcyB0aGFuIDF5IVxufVxuIiwgImltcG9ydCB7Zm9ybWF0RGVjaW1hbFBhcnRzfSBmcm9tIFwiLi9mb3JtYXREZWNpbWFsLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHgsIHApIHtcbiAgdmFyIGQgPSBmb3JtYXREZWNpbWFsUGFydHMoeCwgcCk7XG4gIGlmICghZCkgcmV0dXJuIHggKyBcIlwiO1xuICB2YXIgY29lZmZpY2llbnQgPSBkWzBdLFxuICAgICAgZXhwb25lbnQgPSBkWzFdO1xuICByZXR1cm4gZXhwb25lbnQgPCAwID8gXCIwLlwiICsgbmV3IEFycmF5KC1leHBvbmVudCkuam9pbihcIjBcIikgKyBjb2VmZmljaWVudFxuICAgICAgOiBjb2VmZmljaWVudC5sZW5ndGggPiBleHBvbmVudCArIDEgPyBjb2VmZmljaWVudC5zbGljZSgwLCBleHBvbmVudCArIDEpICsgXCIuXCIgKyBjb2VmZmljaWVudC5zbGljZShleHBvbmVudCArIDEpXG4gICAgICA6IGNvZWZmaWNpZW50ICsgbmV3IEFycmF5KGV4cG9uZW50IC0gY29lZmZpY2llbnQubGVuZ3RoICsgMikuam9pbihcIjBcIik7XG59XG4iLCAiaW1wb3J0IGZvcm1hdERlY2ltYWwgZnJvbSBcIi4vZm9ybWF0RGVjaW1hbC5qc1wiO1xuaW1wb3J0IGZvcm1hdFByZWZpeEF1dG8gZnJvbSBcIi4vZm9ybWF0UHJlZml4QXV0by5qc1wiO1xuaW1wb3J0IGZvcm1hdFJvdW5kZWQgZnJvbSBcIi4vZm9ybWF0Um91bmRlZC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFwiJVwiOiAoeCwgcCkgPT4gKHggKiAxMDApLnRvRml4ZWQocCksXG4gIFwiYlwiOiAoeCkgPT4gTWF0aC5yb3VuZCh4KS50b1N0cmluZygyKSxcbiAgXCJjXCI6ICh4KSA9PiB4ICsgXCJcIixcbiAgXCJkXCI6IGZvcm1hdERlY2ltYWwsXG4gIFwiZVwiOiAoeCwgcCkgPT4geC50b0V4cG9uZW50aWFsKHApLFxuICBcImZcIjogKHgsIHApID0+IHgudG9GaXhlZChwKSxcbiAgXCJnXCI6ICh4LCBwKSA9PiB4LnRvUHJlY2lzaW9uKHApLFxuICBcIm9cIjogKHgpID0+IE1hdGgucm91bmQoeCkudG9TdHJpbmcoOCksXG4gIFwicFwiOiAoeCwgcCkgPT4gZm9ybWF0Um91bmRlZCh4ICogMTAwLCBwKSxcbiAgXCJyXCI6IGZvcm1hdFJvdW5kZWQsXG4gIFwic1wiOiBmb3JtYXRQcmVmaXhBdXRvLFxuICBcIlhcIjogKHgpID0+IE1hdGgucm91bmQoeCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCksXG4gIFwieFwiOiAoeCkgPT4gTWF0aC5yb3VuZCh4KS50b1N0cmluZygxNilcbn07XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeCkge1xuICByZXR1cm4geDtcbn1cbiIsICJpbXBvcnQgZXhwb25lbnQgZnJvbSBcIi4vZXhwb25lbnQuanNcIjtcbmltcG9ydCBmb3JtYXRHcm91cCBmcm9tIFwiLi9mb3JtYXRHcm91cC5qc1wiO1xuaW1wb3J0IGZvcm1hdE51bWVyYWxzIGZyb20gXCIuL2Zvcm1hdE51bWVyYWxzLmpzXCI7XG5pbXBvcnQgZm9ybWF0U3BlY2lmaWVyIGZyb20gXCIuL2Zvcm1hdFNwZWNpZmllci5qc1wiO1xuaW1wb3J0IGZvcm1hdFRyaW0gZnJvbSBcIi4vZm9ybWF0VHJpbS5qc1wiO1xuaW1wb3J0IGZvcm1hdFR5cGVzIGZyb20gXCIuL2Zvcm1hdFR5cGVzLmpzXCI7XG5pbXBvcnQge3ByZWZpeEV4cG9uZW50fSBmcm9tIFwiLi9mb3JtYXRQcmVmaXhBdXRvLmpzXCI7XG5pbXBvcnQgaWRlbnRpdHkgZnJvbSBcIi4vaWRlbnRpdHkuanNcIjtcblxudmFyIG1hcCA9IEFycmF5LnByb3RvdHlwZS5tYXAsXG4gICAgcHJlZml4ZXMgPSBbXCJ5XCIsXCJ6XCIsXCJhXCIsXCJmXCIsXCJwXCIsXCJuXCIsXCJcdTAwQjVcIixcIm1cIixcIlwiLFwia1wiLFwiTVwiLFwiR1wiLFwiVFwiLFwiUFwiLFwiRVwiLFwiWlwiLFwiWVwiXTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obG9jYWxlKSB7XG4gIHZhciBncm91cCA9IGxvY2FsZS5ncm91cGluZyA9PT0gdW5kZWZpbmVkIHx8IGxvY2FsZS50aG91c2FuZHMgPT09IHVuZGVmaW5lZCA/IGlkZW50aXR5IDogZm9ybWF0R3JvdXAobWFwLmNhbGwobG9jYWxlLmdyb3VwaW5nLCBOdW1iZXIpLCBsb2NhbGUudGhvdXNhbmRzICsgXCJcIiksXG4gICAgICBjdXJyZW5jeVByZWZpeCA9IGxvY2FsZS5jdXJyZW5jeSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IGxvY2FsZS5jdXJyZW5jeVswXSArIFwiXCIsXG4gICAgICBjdXJyZW5jeVN1ZmZpeCA9IGxvY2FsZS5jdXJyZW5jeSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IGxvY2FsZS5jdXJyZW5jeVsxXSArIFwiXCIsXG4gICAgICBkZWNpbWFsID0gbG9jYWxlLmRlY2ltYWwgPT09IHVuZGVmaW5lZCA/IFwiLlwiIDogbG9jYWxlLmRlY2ltYWwgKyBcIlwiLFxuICAgICAgbnVtZXJhbHMgPSBsb2NhbGUubnVtZXJhbHMgPT09IHVuZGVmaW5lZCA/IGlkZW50aXR5IDogZm9ybWF0TnVtZXJhbHMobWFwLmNhbGwobG9jYWxlLm51bWVyYWxzLCBTdHJpbmcpKSxcbiAgICAgIHBlcmNlbnQgPSBsb2NhbGUucGVyY2VudCA9PT0gdW5kZWZpbmVkID8gXCIlXCIgOiBsb2NhbGUucGVyY2VudCArIFwiXCIsXG4gICAgICBtaW51cyA9IGxvY2FsZS5taW51cyA9PT0gdW5kZWZpbmVkID8gXCJcdTIyMTJcIiA6IGxvY2FsZS5taW51cyArIFwiXCIsXG4gICAgICBuYW4gPSBsb2NhbGUubmFuID09PSB1bmRlZmluZWQgPyBcIk5hTlwiIDogbG9jYWxlLm5hbiArIFwiXCI7XG5cbiAgZnVuY3Rpb24gbmV3Rm9ybWF0KHNwZWNpZmllcikge1xuICAgIHNwZWNpZmllciA9IGZvcm1hdFNwZWNpZmllcihzcGVjaWZpZXIpO1xuXG4gICAgdmFyIGZpbGwgPSBzcGVjaWZpZXIuZmlsbCxcbiAgICAgICAgYWxpZ24gPSBzcGVjaWZpZXIuYWxpZ24sXG4gICAgICAgIHNpZ24gPSBzcGVjaWZpZXIuc2lnbixcbiAgICAgICAgc3ltYm9sID0gc3BlY2lmaWVyLnN5bWJvbCxcbiAgICAgICAgemVybyA9IHNwZWNpZmllci56ZXJvLFxuICAgICAgICB3aWR0aCA9IHNwZWNpZmllci53aWR0aCxcbiAgICAgICAgY29tbWEgPSBzcGVjaWZpZXIuY29tbWEsXG4gICAgICAgIHByZWNpc2lvbiA9IHNwZWNpZmllci5wcmVjaXNpb24sXG4gICAgICAgIHRyaW0gPSBzcGVjaWZpZXIudHJpbSxcbiAgICAgICAgdHlwZSA9IHNwZWNpZmllci50eXBlO1xuXG4gICAgLy8gVGhlIFwiblwiIHR5cGUgaXMgYW4gYWxpYXMgZm9yIFwiLGdcIi5cbiAgICBpZiAodHlwZSA9PT0gXCJuXCIpIGNvbW1hID0gdHJ1ZSwgdHlwZSA9IFwiZ1wiO1xuXG4gICAgLy8gVGhlIFwiXCIgdHlwZSwgYW5kIGFueSBpbnZhbGlkIHR5cGUsIGlzIGFuIGFsaWFzIGZvciBcIi4xMn5nXCIuXG4gICAgZWxzZSBpZiAoIWZvcm1hdFR5cGVzW3R5cGVdKSBwcmVjaXNpb24gPT09IHVuZGVmaW5lZCAmJiAocHJlY2lzaW9uID0gMTIpLCB0cmltID0gdHJ1ZSwgdHlwZSA9IFwiZ1wiO1xuXG4gICAgLy8gSWYgemVybyBmaWxsIGlzIHNwZWNpZmllZCwgcGFkZGluZyBnb2VzIGFmdGVyIHNpZ24gYW5kIGJlZm9yZSBkaWdpdHMuXG4gICAgaWYgKHplcm8gfHwgKGZpbGwgPT09IFwiMFwiICYmIGFsaWduID09PSBcIj1cIikpIHplcm8gPSB0cnVlLCBmaWxsID0gXCIwXCIsIGFsaWduID0gXCI9XCI7XG5cbiAgICAvLyBDb21wdXRlIHRoZSBwcmVmaXggYW5kIHN1ZmZpeC5cbiAgICAvLyBGb3IgU0ktcHJlZml4LCB0aGUgc3VmZml4IGlzIGxhemlseSBjb21wdXRlZC5cbiAgICB2YXIgcHJlZml4ID0gc3ltYm9sID09PSBcIiRcIiA/IGN1cnJlbmN5UHJlZml4IDogc3ltYm9sID09PSBcIiNcIiAmJiAvW2JveFhdLy50ZXN0KHR5cGUpID8gXCIwXCIgKyB0eXBlLnRvTG93ZXJDYXNlKCkgOiBcIlwiLFxuICAgICAgICBzdWZmaXggPSBzeW1ib2wgPT09IFwiJFwiID8gY3VycmVuY3lTdWZmaXggOiAvWyVwXS8udGVzdCh0eXBlKSA/IHBlcmNlbnQgOiBcIlwiO1xuXG4gICAgLy8gV2hhdCBmb3JtYXQgZnVuY3Rpb24gc2hvdWxkIHdlIHVzZT9cbiAgICAvLyBJcyB0aGlzIGFuIGludGVnZXIgdHlwZT9cbiAgICAvLyBDYW4gdGhpcyB0eXBlIGdlbmVyYXRlIGV4cG9uZW50aWFsIG5vdGF0aW9uP1xuICAgIHZhciBmb3JtYXRUeXBlID0gZm9ybWF0VHlwZXNbdHlwZV0sXG4gICAgICAgIG1heWJlU3VmZml4ID0gL1tkZWZncHJzJV0vLnRlc3QodHlwZSk7XG5cbiAgICAvLyBTZXQgdGhlIGRlZmF1bHQgcHJlY2lzaW9uIGlmIG5vdCBzcGVjaWZpZWQsXG4gICAgLy8gb3IgY2xhbXAgdGhlIHNwZWNpZmllZCBwcmVjaXNpb24gdG8gdGhlIHN1cHBvcnRlZCByYW5nZS5cbiAgICAvLyBGb3Igc2lnbmlmaWNhbnQgcHJlY2lzaW9uLCBpdCBtdXN0IGJlIGluIFsxLCAyMV0uXG4gICAgLy8gRm9yIGZpeGVkIHByZWNpc2lvbiwgaXQgbXVzdCBiZSBpbiBbMCwgMjBdLlxuICAgIHByZWNpc2lvbiA9IHByZWNpc2lvbiA9PT0gdW5kZWZpbmVkID8gNlxuICAgICAgICA6IC9bZ3Byc10vLnRlc3QodHlwZSkgPyBNYXRoLm1heCgxLCBNYXRoLm1pbigyMSwgcHJlY2lzaW9uKSlcbiAgICAgICAgOiBNYXRoLm1heCgwLCBNYXRoLm1pbigyMCwgcHJlY2lzaW9uKSk7XG5cbiAgICBmdW5jdGlvbiBmb3JtYXQodmFsdWUpIHtcbiAgICAgIHZhciB2YWx1ZVByZWZpeCA9IHByZWZpeCxcbiAgICAgICAgICB2YWx1ZVN1ZmZpeCA9IHN1ZmZpeCxcbiAgICAgICAgICBpLCBuLCBjO1xuXG4gICAgICBpZiAodHlwZSA9PT0gXCJjXCIpIHtcbiAgICAgICAgdmFsdWVTdWZmaXggPSBmb3JtYXRUeXBlKHZhbHVlKSArIHZhbHVlU3VmZml4O1xuICAgICAgICB2YWx1ZSA9IFwiXCI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9ICt2YWx1ZTtcblxuICAgICAgICAvLyBEZXRlcm1pbmUgdGhlIHNpZ24uIC0wIGlzIG5vdCBsZXNzIHRoYW4gMCwgYnV0IDEgLyAtMCBpcyFcbiAgICAgICAgdmFyIHZhbHVlTmVnYXRpdmUgPSB2YWx1ZSA8IDAgfHwgMSAvIHZhbHVlIDwgMDtcblxuICAgICAgICAvLyBQZXJmb3JtIHRoZSBpbml0aWFsIGZvcm1hdHRpbmcuXG4gICAgICAgIHZhbHVlID0gaXNOYU4odmFsdWUpID8gbmFuIDogZm9ybWF0VHlwZShNYXRoLmFicyh2YWx1ZSksIHByZWNpc2lvbik7XG5cbiAgICAgICAgLy8gVHJpbSBpbnNpZ25pZmljYW50IHplcm9zLlxuICAgICAgICBpZiAodHJpbSkgdmFsdWUgPSBmb3JtYXRUcmltKHZhbHVlKTtcblxuICAgICAgICAvLyBJZiBhIG5lZ2F0aXZlIHZhbHVlIHJvdW5kcyB0byB6ZXJvIGFmdGVyIGZvcm1hdHRpbmcsIGFuZCBubyBleHBsaWNpdCBwb3NpdGl2ZSBzaWduIGlzIHJlcXVlc3RlZCwgaGlkZSB0aGUgc2lnbi5cbiAgICAgICAgaWYgKHZhbHVlTmVnYXRpdmUgJiYgK3ZhbHVlID09PSAwICYmIHNpZ24gIT09IFwiK1wiKSB2YWx1ZU5lZ2F0aXZlID0gZmFsc2U7XG5cbiAgICAgICAgLy8gQ29tcHV0ZSB0aGUgcHJlZml4IGFuZCBzdWZmaXguXG4gICAgICAgIHZhbHVlUHJlZml4ID0gKHZhbHVlTmVnYXRpdmUgPyAoc2lnbiA9PT0gXCIoXCIgPyBzaWduIDogbWludXMpIDogc2lnbiA9PT0gXCItXCIgfHwgc2lnbiA9PT0gXCIoXCIgPyBcIlwiIDogc2lnbikgKyB2YWx1ZVByZWZpeDtcbiAgICAgICAgdmFsdWVTdWZmaXggPSAodHlwZSA9PT0gXCJzXCIgPyBwcmVmaXhlc1s4ICsgcHJlZml4RXhwb25lbnQgLyAzXSA6IFwiXCIpICsgdmFsdWVTdWZmaXggKyAodmFsdWVOZWdhdGl2ZSAmJiBzaWduID09PSBcIihcIiA/IFwiKVwiIDogXCJcIik7XG5cbiAgICAgICAgLy8gQnJlYWsgdGhlIGZvcm1hdHRlZCB2YWx1ZSBpbnRvIHRoZSBpbnRlZ2VyIFx1MjAxQ3ZhbHVlXHUyMDFEIHBhcnQgdGhhdCBjYW4gYmVcbiAgICAgICAgLy8gZ3JvdXBlZCwgYW5kIGZyYWN0aW9uYWwgb3IgZXhwb25lbnRpYWwgXHUyMDFDc3VmZml4XHUyMDFEIHBhcnQgdGhhdCBpcyBub3QuXG4gICAgICAgIGlmIChtYXliZVN1ZmZpeCkge1xuICAgICAgICAgIGkgPSAtMSwgbiA9IHZhbHVlLmxlbmd0aDtcbiAgICAgICAgICB3aGlsZSAoKytpIDwgbikge1xuICAgICAgICAgICAgaWYgKGMgPSB2YWx1ZS5jaGFyQ29kZUF0KGkpLCA0OCA+IGMgfHwgYyA+IDU3KSB7XG4gICAgICAgICAgICAgIHZhbHVlU3VmZml4ID0gKGMgPT09IDQ2ID8gZGVjaW1hbCArIHZhbHVlLnNsaWNlKGkgKyAxKSA6IHZhbHVlLnNsaWNlKGkpKSArIHZhbHVlU3VmZml4O1xuICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDAsIGkpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhlIGZpbGwgY2hhcmFjdGVyIGlzIG5vdCBcIjBcIiwgZ3JvdXBpbmcgaXMgYXBwbGllZCBiZWZvcmUgcGFkZGluZy5cbiAgICAgIGlmIChjb21tYSAmJiAhemVybykgdmFsdWUgPSBncm91cCh2YWx1ZSwgSW5maW5pdHkpO1xuXG4gICAgICAvLyBDb21wdXRlIHRoZSBwYWRkaW5nLlxuICAgICAgdmFyIGxlbmd0aCA9IHZhbHVlUHJlZml4Lmxlbmd0aCArIHZhbHVlLmxlbmd0aCArIHZhbHVlU3VmZml4Lmxlbmd0aCxcbiAgICAgICAgICBwYWRkaW5nID0gbGVuZ3RoIDwgd2lkdGggPyBuZXcgQXJyYXkod2lkdGggLSBsZW5ndGggKyAxKS5qb2luKGZpbGwpIDogXCJcIjtcblxuICAgICAgLy8gSWYgdGhlIGZpbGwgY2hhcmFjdGVyIGlzIFwiMFwiLCBncm91cGluZyBpcyBhcHBsaWVkIGFmdGVyIHBhZGRpbmcuXG4gICAgICBpZiAoY29tbWEgJiYgemVybykgdmFsdWUgPSBncm91cChwYWRkaW5nICsgdmFsdWUsIHBhZGRpbmcubGVuZ3RoID8gd2lkdGggLSB2YWx1ZVN1ZmZpeC5sZW5ndGggOiBJbmZpbml0eSksIHBhZGRpbmcgPSBcIlwiO1xuXG4gICAgICAvLyBSZWNvbnN0cnVjdCB0aGUgZmluYWwgb3V0cHV0IGJhc2VkIG9uIHRoZSBkZXNpcmVkIGFsaWdubWVudC5cbiAgICAgIHN3aXRjaCAoYWxpZ24pIHtcbiAgICAgICAgY2FzZSBcIjxcIjogdmFsdWUgPSB2YWx1ZVByZWZpeCArIHZhbHVlICsgdmFsdWVTdWZmaXggKyBwYWRkaW5nOyBicmVhaztcbiAgICAgICAgY2FzZSBcIj1cIjogdmFsdWUgPSB2YWx1ZVByZWZpeCArIHBhZGRpbmcgKyB2YWx1ZSArIHZhbHVlU3VmZml4OyBicmVhaztcbiAgICAgICAgY2FzZSBcIl5cIjogdmFsdWUgPSBwYWRkaW5nLnNsaWNlKDAsIGxlbmd0aCA9IHBhZGRpbmcubGVuZ3RoID4+IDEpICsgdmFsdWVQcmVmaXggKyB2YWx1ZSArIHZhbHVlU3VmZml4ICsgcGFkZGluZy5zbGljZShsZW5ndGgpOyBicmVhaztcbiAgICAgICAgZGVmYXVsdDogdmFsdWUgPSBwYWRkaW5nICsgdmFsdWVQcmVmaXggKyB2YWx1ZSArIHZhbHVlU3VmZml4OyBicmVhaztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bWVyYWxzKHZhbHVlKTtcbiAgICB9XG5cbiAgICBmb3JtYXQudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBzcGVjaWZpZXIgKyBcIlwiO1xuICAgIH07XG5cbiAgICByZXR1cm4gZm9ybWF0O1xuICB9XG5cbiAgZnVuY3Rpb24gZm9ybWF0UHJlZml4KHNwZWNpZmllciwgdmFsdWUpIHtcbiAgICB2YXIgZiA9IG5ld0Zvcm1hdCgoc3BlY2lmaWVyID0gZm9ybWF0U3BlY2lmaWVyKHNwZWNpZmllciksIHNwZWNpZmllci50eXBlID0gXCJmXCIsIHNwZWNpZmllcikpLFxuICAgICAgICBlID0gTWF0aC5tYXgoLTgsIE1hdGgubWluKDgsIE1hdGguZmxvb3IoZXhwb25lbnQodmFsdWUpIC8gMykpKSAqIDMsXG4gICAgICAgIGsgPSBNYXRoLnBvdygxMCwgLWUpLFxuICAgICAgICBwcmVmaXggPSBwcmVmaXhlc1s4ICsgZSAvIDNdO1xuICAgIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgcmV0dXJuIGYoayAqIHZhbHVlKSArIHByZWZpeDtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBmb3JtYXQ6IG5ld0Zvcm1hdCxcbiAgICBmb3JtYXRQcmVmaXg6IGZvcm1hdFByZWZpeFxuICB9O1xufVxuIiwgImltcG9ydCBmb3JtYXRMb2NhbGUgZnJvbSBcIi4vbG9jYWxlLmpzXCI7XG5cbnZhciBsb2NhbGU7XG5leHBvcnQgdmFyIGZvcm1hdDtcbmV4cG9ydCB2YXIgZm9ybWF0UHJlZml4O1xuXG5kZWZhdWx0TG9jYWxlKHtcbiAgdGhvdXNhbmRzOiBcIixcIixcbiAgZ3JvdXBpbmc6IFszXSxcbiAgY3VycmVuY3k6IFtcIiRcIiwgXCJcIl1cbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkZWZhdWx0TG9jYWxlKGRlZmluaXRpb24pIHtcbiAgbG9jYWxlID0gZm9ybWF0TG9jYWxlKGRlZmluaXRpb24pO1xuICBmb3JtYXQgPSBsb2NhbGUuZm9ybWF0O1xuICBmb3JtYXRQcmVmaXggPSBsb2NhbGUuZm9ybWF0UHJlZml4O1xuICByZXR1cm4gbG9jYWxlO1xufVxuIiwgImltcG9ydCBleHBvbmVudCBmcm9tIFwiLi9leHBvbmVudC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzdGVwKSB7XG4gIHJldHVybiBNYXRoLm1heCgwLCAtZXhwb25lbnQoTWF0aC5hYnMoc3RlcCkpKTtcbn1cbiIsICJpbXBvcnQgZXhwb25lbnQgZnJvbSBcIi4vZXhwb25lbnQuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oc3RlcCwgdmFsdWUpIHtcbiAgcmV0dXJuIE1hdGgubWF4KDAsIE1hdGgubWF4KC04LCBNYXRoLm1pbig4LCBNYXRoLmZsb29yKGV4cG9uZW50KHZhbHVlKSAvIDMpKSkgKiAzIC0gZXhwb25lbnQoTWF0aC5hYnMoc3RlcCkpKTtcbn1cbiIsICJpbXBvcnQgZXhwb25lbnQgZnJvbSBcIi4vZXhwb25lbnQuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oc3RlcCwgbWF4KSB7XG4gIHN0ZXAgPSBNYXRoLmFicyhzdGVwKSwgbWF4ID0gTWF0aC5hYnMobWF4KSAtIHN0ZXA7XG4gIHJldHVybiBNYXRoLm1heCgwLCBleHBvbmVudChtYXgpIC0gZXhwb25lbnQoc3RlcCkpICsgMTtcbn1cbiIsICJmdW5jdGlvbiBkZWZhdWx0U2VwYXJhdGlvbihhLCBiKSB7XG4gIHJldHVybiBhLnBhcmVudCA9PT0gYi5wYXJlbnQgPyAxIDogMjtcbn1cblxuZnVuY3Rpb24gbWVhblgoY2hpbGRyZW4pIHtcbiAgcmV0dXJuIGNoaWxkcmVuLnJlZHVjZShtZWFuWFJlZHVjZSwgMCkgLyBjaGlsZHJlbi5sZW5ndGg7XG59XG5cbmZ1bmN0aW9uIG1lYW5YUmVkdWNlKHgsIGMpIHtcbiAgcmV0dXJuIHggKyBjLng7XG59XG5cbmZ1bmN0aW9uIG1heFkoY2hpbGRyZW4pIHtcbiAgcmV0dXJuIDEgKyBjaGlsZHJlbi5yZWR1Y2UobWF4WVJlZHVjZSwgMCk7XG59XG5cbmZ1bmN0aW9uIG1heFlSZWR1Y2UoeSwgYykge1xuICByZXR1cm4gTWF0aC5tYXgoeSwgYy55KTtcbn1cblxuZnVuY3Rpb24gbGVhZkxlZnQobm9kZSkge1xuICB2YXIgY2hpbGRyZW47XG4gIHdoaWxlIChjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4pIG5vZGUgPSBjaGlsZHJlblswXTtcbiAgcmV0dXJuIG5vZGU7XG59XG5cbmZ1bmN0aW9uIGxlYWZSaWdodChub2RlKSB7XG4gIHZhciBjaGlsZHJlbjtcbiAgd2hpbGUgKGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbikgbm9kZSA9IGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdO1xuICByZXR1cm4gbm9kZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHZhciBzZXBhcmF0aW9uID0gZGVmYXVsdFNlcGFyYXRpb24sXG4gICAgICBkeCA9IDEsXG4gICAgICBkeSA9IDEsXG4gICAgICBub2RlU2l6ZSA9IGZhbHNlO1xuXG4gIGZ1bmN0aW9uIGNsdXN0ZXIocm9vdCkge1xuICAgIHZhciBwcmV2aW91c05vZGUsXG4gICAgICAgIHggPSAwO1xuXG4gICAgLy8gRmlyc3Qgd2FsaywgY29tcHV0aW5nIHRoZSBpbml0aWFsIHggJiB5IHZhbHVlcy5cbiAgICByb290LmVhY2hBZnRlcihmdW5jdGlvbihub2RlKSB7XG4gICAgICB2YXIgY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuO1xuICAgICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgIG5vZGUueCA9IG1lYW5YKGNoaWxkcmVuKTtcbiAgICAgICAgbm9kZS55ID0gbWF4WShjaGlsZHJlbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlLnggPSBwcmV2aW91c05vZGUgPyB4ICs9IHNlcGFyYXRpb24obm9kZSwgcHJldmlvdXNOb2RlKSA6IDA7XG4gICAgICAgIG5vZGUueSA9IDA7XG4gICAgICAgIHByZXZpb3VzTm9kZSA9IG5vZGU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB2YXIgbGVmdCA9IGxlYWZMZWZ0KHJvb3QpLFxuICAgICAgICByaWdodCA9IGxlYWZSaWdodChyb290KSxcbiAgICAgICAgeDAgPSBsZWZ0LnggLSBzZXBhcmF0aW9uKGxlZnQsIHJpZ2h0KSAvIDIsXG4gICAgICAgIHgxID0gcmlnaHQueCArIHNlcGFyYXRpb24ocmlnaHQsIGxlZnQpIC8gMjtcblxuICAgIC8vIFNlY29uZCB3YWxrLCBub3JtYWxpemluZyB4ICYgeSB0byB0aGUgZGVzaXJlZCBzaXplLlxuICAgIHJldHVybiByb290LmVhY2hBZnRlcihub2RlU2l6ZSA/IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgIG5vZGUueCA9IChub2RlLnggLSByb290LngpICogZHg7XG4gICAgICBub2RlLnkgPSAocm9vdC55IC0gbm9kZS55KSAqIGR5O1xuICAgIH0gOiBmdW5jdGlvbihub2RlKSB7XG4gICAgICBub2RlLnggPSAobm9kZS54IC0geDApIC8gKHgxIC0geDApICogZHg7XG4gICAgICBub2RlLnkgPSAoMSAtIChyb290LnkgPyBub2RlLnkgLyByb290LnkgOiAxKSkgKiBkeTtcbiAgICB9KTtcbiAgfVxuXG4gIGNsdXN0ZXIuc2VwYXJhdGlvbiA9IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChzZXBhcmF0aW9uID0geCwgY2x1c3RlcikgOiBzZXBhcmF0aW9uO1xuICB9O1xuXG4gIGNsdXN0ZXIuc2l6ZSA9IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChub2RlU2l6ZSA9IGZhbHNlLCBkeCA9ICt4WzBdLCBkeSA9ICt4WzFdLCBjbHVzdGVyKSA6IChub2RlU2l6ZSA/IG51bGwgOiBbZHgsIGR5XSk7XG4gIH07XG5cbiAgY2x1c3Rlci5ub2RlU2l6ZSA9IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChub2RlU2l6ZSA9IHRydWUsIGR4ID0gK3hbMF0sIGR5ID0gK3hbMV0sIGNsdXN0ZXIpIDogKG5vZGVTaXplID8gW2R4LCBkeV0gOiBudWxsKTtcbiAgfTtcblxuICByZXR1cm4gY2x1c3Rlcjtcbn1cbiIsICJmdW5jdGlvbiBjb3VudChub2RlKSB7XG4gIHZhciBzdW0gPSAwLFxuICAgICAgY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuLFxuICAgICAgaSA9IGNoaWxkcmVuICYmIGNoaWxkcmVuLmxlbmd0aDtcbiAgaWYgKCFpKSBzdW0gPSAxO1xuICBlbHNlIHdoaWxlICgtLWkgPj0gMCkgc3VtICs9IGNoaWxkcmVuW2ldLnZhbHVlO1xuICBub2RlLnZhbHVlID0gc3VtO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRoaXMuZWFjaEFmdGVyKGNvdW50KTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihjYWxsYmFjaywgdGhhdCkge1xuICBsZXQgaW5kZXggPSAtMTtcbiAgZm9yIChjb25zdCBub2RlIG9mIHRoaXMpIHtcbiAgICBjYWxsYmFjay5jYWxsKHRoYXQsIG5vZGUsICsraW5kZXgsIHRoaXMpO1xuICB9XG4gIHJldHVybiB0aGlzO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGNhbGxiYWNrLCB0aGF0KSB7XG4gIHZhciBub2RlID0gdGhpcywgbm9kZXMgPSBbbm9kZV0sIGNoaWxkcmVuLCBpLCBpbmRleCA9IC0xO1xuICB3aGlsZSAobm9kZSA9IG5vZGVzLnBvcCgpKSB7XG4gICAgY2FsbGJhY2suY2FsbCh0aGF0LCBub2RlLCArK2luZGV4LCB0aGlzKTtcbiAgICBpZiAoY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuKSB7XG4gICAgICBmb3IgKGkgPSBjaGlsZHJlbi5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICBub2Rlcy5wdXNoKGNoaWxkcmVuW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oY2FsbGJhY2ssIHRoYXQpIHtcbiAgdmFyIG5vZGUgPSB0aGlzLCBub2RlcyA9IFtub2RlXSwgbmV4dCA9IFtdLCBjaGlsZHJlbiwgaSwgbiwgaW5kZXggPSAtMTtcbiAgd2hpbGUgKG5vZGUgPSBub2Rlcy5wb3AoKSkge1xuICAgIG5leHQucHVzaChub2RlKTtcbiAgICBpZiAoY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuKSB7XG4gICAgICBmb3IgKGkgPSAwLCBuID0gY2hpbGRyZW4ubGVuZ3RoOyBpIDwgbjsgKytpKSB7XG4gICAgICAgIG5vZGVzLnB1c2goY2hpbGRyZW5baV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICB3aGlsZSAobm9kZSA9IG5leHQucG9wKCkpIHtcbiAgICBjYWxsYmFjay5jYWxsKHRoYXQsIG5vZGUsICsraW5kZXgsIHRoaXMpO1xuICB9XG4gIHJldHVybiB0aGlzO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGNhbGxiYWNrLCB0aGF0KSB7XG4gIGxldCBpbmRleCA9IC0xO1xuICBmb3IgKGNvbnN0IG5vZGUgb2YgdGhpcykge1xuICAgIGlmIChjYWxsYmFjay5jYWxsKHRoYXQsIG5vZGUsICsraW5kZXgsIHRoaXMpKSB7XG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gIH1cbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdGhpcy5lYWNoQWZ0ZXIoZnVuY3Rpb24obm9kZSkge1xuICAgIHZhciBzdW0gPSArdmFsdWUobm9kZS5kYXRhKSB8fCAwLFxuICAgICAgICBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4sXG4gICAgICAgIGkgPSBjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGg7XG4gICAgd2hpbGUgKC0taSA+PSAwKSBzdW0gKz0gY2hpbGRyZW5baV0udmFsdWU7XG4gICAgbm9kZS52YWx1ZSA9IHN1bTtcbiAgfSk7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oY29tcGFyZSkge1xuICByZXR1cm4gdGhpcy5lYWNoQmVmb3JlKGZ1bmN0aW9uKG5vZGUpIHtcbiAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgbm9kZS5jaGlsZHJlbi5zb3J0KGNvbXBhcmUpO1xuICAgIH1cbiAgfSk7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oZW5kKSB7XG4gIHZhciBzdGFydCA9IHRoaXMsXG4gICAgICBhbmNlc3RvciA9IGxlYXN0Q29tbW9uQW5jZXN0b3Ioc3RhcnQsIGVuZCksXG4gICAgICBub2RlcyA9IFtzdGFydF07XG4gIHdoaWxlIChzdGFydCAhPT0gYW5jZXN0b3IpIHtcbiAgICBzdGFydCA9IHN0YXJ0LnBhcmVudDtcbiAgICBub2Rlcy5wdXNoKHN0YXJ0KTtcbiAgfVxuICB2YXIgayA9IG5vZGVzLmxlbmd0aDtcbiAgd2hpbGUgKGVuZCAhPT0gYW5jZXN0b3IpIHtcbiAgICBub2Rlcy5zcGxpY2UoaywgMCwgZW5kKTtcbiAgICBlbmQgPSBlbmQucGFyZW50O1xuICB9XG4gIHJldHVybiBub2Rlcztcbn1cblxuZnVuY3Rpb24gbGVhc3RDb21tb25BbmNlc3RvcihhLCBiKSB7XG4gIGlmIChhID09PSBiKSByZXR1cm4gYTtcbiAgdmFyIGFOb2RlcyA9IGEuYW5jZXN0b3JzKCksXG4gICAgICBiTm9kZXMgPSBiLmFuY2VzdG9ycygpLFxuICAgICAgYyA9IG51bGw7XG4gIGEgPSBhTm9kZXMucG9wKCk7XG4gIGIgPSBiTm9kZXMucG9wKCk7XG4gIHdoaWxlIChhID09PSBiKSB7XG4gICAgYyA9IGE7XG4gICAgYSA9IGFOb2Rlcy5wb3AoKTtcbiAgICBiID0gYk5vZGVzLnBvcCgpO1xuICB9XG4gIHJldHVybiBjO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICB2YXIgbm9kZSA9IHRoaXMsIG5vZGVzID0gW25vZGVdO1xuICB3aGlsZSAobm9kZSA9IG5vZGUucGFyZW50KSB7XG4gICAgbm9kZXMucHVzaChub2RlKTtcbiAgfVxuICByZXR1cm4gbm9kZXM7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHJldHVybiBBcnJheS5mcm9tKHRoaXMpO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICB2YXIgbGVhdmVzID0gW107XG4gIHRoaXMuZWFjaEJlZm9yZShmdW5jdGlvbihub2RlKSB7XG4gICAgaWYgKCFub2RlLmNoaWxkcmVuKSB7XG4gICAgICBsZWF2ZXMucHVzaChub2RlKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gbGVhdmVzO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICB2YXIgcm9vdCA9IHRoaXMsIGxpbmtzID0gW107XG4gIHJvb3QuZWFjaChmdW5jdGlvbihub2RlKSB7XG4gICAgaWYgKG5vZGUgIT09IHJvb3QpIHsgLy8gRG9uXHUyMDE5dCBpbmNsdWRlIHRoZSByb290XHUyMDE5cyBwYXJlbnQsIGlmIGFueS5cbiAgICAgIGxpbmtzLnB1c2goe3NvdXJjZTogbm9kZS5wYXJlbnQsIHRhcmdldDogbm9kZX0pO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBsaW5rcztcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiooKSB7XG4gIHZhciBub2RlID0gdGhpcywgY3VycmVudCwgbmV4dCA9IFtub2RlXSwgY2hpbGRyZW4sIGksIG47XG4gIGRvIHtcbiAgICBjdXJyZW50ID0gbmV4dC5yZXZlcnNlKCksIG5leHQgPSBbXTtcbiAgICB3aGlsZSAobm9kZSA9IGN1cnJlbnQucG9wKCkpIHtcbiAgICAgIHlpZWxkIG5vZGU7XG4gICAgICBpZiAoY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgIGZvciAoaSA9IDAsIG4gPSBjaGlsZHJlbi5sZW5ndGg7IGkgPCBuOyArK2kpIHtcbiAgICAgICAgICBuZXh0LnB1c2goY2hpbGRyZW5baV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IHdoaWxlIChuZXh0Lmxlbmd0aCk7XG59XG4iLCAiaW1wb3J0IG5vZGVfY291bnQgZnJvbSBcIi4vY291bnQuanNcIjtcbmltcG9ydCBub2RlX2VhY2ggZnJvbSBcIi4vZWFjaC5qc1wiO1xuaW1wb3J0IG5vZGVfZWFjaEJlZm9yZSBmcm9tIFwiLi9lYWNoQmVmb3JlLmpzXCI7XG5pbXBvcnQgbm9kZV9lYWNoQWZ0ZXIgZnJvbSBcIi4vZWFjaEFmdGVyLmpzXCI7XG5pbXBvcnQgbm9kZV9maW5kIGZyb20gXCIuL2ZpbmQuanNcIjtcbmltcG9ydCBub2RlX3N1bSBmcm9tIFwiLi9zdW0uanNcIjtcbmltcG9ydCBub2RlX3NvcnQgZnJvbSBcIi4vc29ydC5qc1wiO1xuaW1wb3J0IG5vZGVfcGF0aCBmcm9tIFwiLi9wYXRoLmpzXCI7XG5pbXBvcnQgbm9kZV9hbmNlc3RvcnMgZnJvbSBcIi4vYW5jZXN0b3JzLmpzXCI7XG5pbXBvcnQgbm9kZV9kZXNjZW5kYW50cyBmcm9tIFwiLi9kZXNjZW5kYW50cy5qc1wiO1xuaW1wb3J0IG5vZGVfbGVhdmVzIGZyb20gXCIuL2xlYXZlcy5qc1wiO1xuaW1wb3J0IG5vZGVfbGlua3MgZnJvbSBcIi4vbGlua3MuanNcIjtcbmltcG9ydCBub2RlX2l0ZXJhdG9yIGZyb20gXCIuL2l0ZXJhdG9yLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGhpZXJhcmNoeShkYXRhLCBjaGlsZHJlbikge1xuICBpZiAoZGF0YSBpbnN0YW5jZW9mIE1hcCkge1xuICAgIGRhdGEgPSBbdW5kZWZpbmVkLCBkYXRhXTtcbiAgICBpZiAoY2hpbGRyZW4gPT09IHVuZGVmaW5lZCkgY2hpbGRyZW4gPSBtYXBDaGlsZHJlbjtcbiAgfSBlbHNlIGlmIChjaGlsZHJlbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY2hpbGRyZW4gPSBvYmplY3RDaGlsZHJlbjtcbiAgfVxuXG4gIHZhciByb290ID0gbmV3IE5vZGUoZGF0YSksXG4gICAgICBub2RlLFxuICAgICAgbm9kZXMgPSBbcm9vdF0sXG4gICAgICBjaGlsZCxcbiAgICAgIGNoaWxkcyxcbiAgICAgIGksXG4gICAgICBuO1xuXG4gIHdoaWxlIChub2RlID0gbm9kZXMucG9wKCkpIHtcbiAgICBpZiAoKGNoaWxkcyA9IGNoaWxkcmVuKG5vZGUuZGF0YSkpICYmIChuID0gKGNoaWxkcyA9IEFycmF5LmZyb20oY2hpbGRzKSkubGVuZ3RoKSkge1xuICAgICAgbm9kZS5jaGlsZHJlbiA9IGNoaWxkcztcbiAgICAgIGZvciAoaSA9IG4gLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICBub2Rlcy5wdXNoKGNoaWxkID0gY2hpbGRzW2ldID0gbmV3IE5vZGUoY2hpbGRzW2ldKSk7XG4gICAgICAgIGNoaWxkLnBhcmVudCA9IG5vZGU7XG4gICAgICAgIGNoaWxkLmRlcHRoID0gbm9kZS5kZXB0aCArIDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJvb3QuZWFjaEJlZm9yZShjb21wdXRlSGVpZ2h0KTtcbn1cblxuZnVuY3Rpb24gbm9kZV9jb3B5KCkge1xuICByZXR1cm4gaGllcmFyY2h5KHRoaXMpLmVhY2hCZWZvcmUoY29weURhdGEpO1xufVxuXG5mdW5jdGlvbiBvYmplY3RDaGlsZHJlbihkKSB7XG4gIHJldHVybiBkLmNoaWxkcmVuO1xufVxuXG5mdW5jdGlvbiBtYXBDaGlsZHJlbihkKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGQpID8gZFsxXSA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIGNvcHlEYXRhKG5vZGUpIHtcbiAgaWYgKG5vZGUuZGF0YS52YWx1ZSAhPT0gdW5kZWZpbmVkKSBub2RlLnZhbHVlID0gbm9kZS5kYXRhLnZhbHVlO1xuICBub2RlLmRhdGEgPSBub2RlLmRhdGEuZGF0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVIZWlnaHQobm9kZSkge1xuICB2YXIgaGVpZ2h0ID0gMDtcbiAgZG8gbm9kZS5oZWlnaHQgPSBoZWlnaHQ7XG4gIHdoaWxlICgobm9kZSA9IG5vZGUucGFyZW50KSAmJiAobm9kZS5oZWlnaHQgPCArK2hlaWdodCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTm9kZShkYXRhKSB7XG4gIHRoaXMuZGF0YSA9IGRhdGE7XG4gIHRoaXMuZGVwdGggPVxuICB0aGlzLmhlaWdodCA9IDA7XG4gIHRoaXMucGFyZW50ID0gbnVsbDtcbn1cblxuTm9kZS5wcm90b3R5cGUgPSBoaWVyYXJjaHkucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogTm9kZSxcbiAgY291bnQ6IG5vZGVfY291bnQsXG4gIGVhY2g6IG5vZGVfZWFjaCxcbiAgZWFjaEFmdGVyOiBub2RlX2VhY2hBZnRlcixcbiAgZWFjaEJlZm9yZTogbm9kZV9lYWNoQmVmb3JlLFxuICBmaW5kOiBub2RlX2ZpbmQsXG4gIHN1bTogbm9kZV9zdW0sXG4gIHNvcnQ6IG5vZGVfc29ydCxcbiAgcGF0aDogbm9kZV9wYXRoLFxuICBhbmNlc3RvcnM6IG5vZGVfYW5jZXN0b3JzLFxuICBkZXNjZW5kYW50czogbm9kZV9kZXNjZW5kYW50cyxcbiAgbGVhdmVzOiBub2RlX2xlYXZlcyxcbiAgbGlua3M6IG5vZGVfbGlua3MsXG4gIGNvcHk6IG5vZGVfY29weSxcbiAgW1N5bWJvbC5pdGVyYXRvcl06IG5vZGVfaXRlcmF0b3Jcbn07XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIG9wdGlvbmFsKGYpIHtcbiAgcmV0dXJuIGYgPT0gbnVsbCA/IG51bGwgOiByZXF1aXJlZChmKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVkKGYpIHtcbiAgaWYgKHR5cGVvZiBmICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBFcnJvcjtcbiAgcmV0dXJuIGY7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIGNvbnN0YW50WmVybygpIHtcbiAgcmV0dXJuIDA7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB4O1xuICB9O1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5vZGUpIHtcbiAgbm9kZS54MCA9IE1hdGgucm91bmQobm9kZS54MCk7XG4gIG5vZGUueTAgPSBNYXRoLnJvdW5kKG5vZGUueTApO1xuICBub2RlLngxID0gTWF0aC5yb3VuZChub2RlLngxKTtcbiAgbm9kZS55MSA9IE1hdGgucm91bmQobm9kZS55MSk7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24ocGFyZW50LCB4MCwgeTAsIHgxLCB5MSkge1xuICB2YXIgbm9kZXMgPSBwYXJlbnQuY2hpbGRyZW4sXG4gICAgICBub2RlLFxuICAgICAgaSA9IC0xLFxuICAgICAgbiA9IG5vZGVzLmxlbmd0aCxcbiAgICAgIGsgPSBwYXJlbnQudmFsdWUgJiYgKHgxIC0geDApIC8gcGFyZW50LnZhbHVlO1xuXG4gIHdoaWxlICgrK2kgPCBuKSB7XG4gICAgbm9kZSA9IG5vZGVzW2ldLCBub2RlLnkwID0geTAsIG5vZGUueTEgPSB5MTtcbiAgICBub2RlLngwID0geDAsIG5vZGUueDEgPSB4MCArPSBub2RlLnZhbHVlICogaztcbiAgfVxufVxuIiwgImltcG9ydCByb3VuZE5vZGUgZnJvbSBcIi4vdHJlZW1hcC9yb3VuZC5qc1wiO1xuaW1wb3J0IHRyZWVtYXBEaWNlIGZyb20gXCIuL3RyZWVtYXAvZGljZS5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgdmFyIGR4ID0gMSxcbiAgICAgIGR5ID0gMSxcbiAgICAgIHBhZGRpbmcgPSAwLFxuICAgICAgcm91bmQgPSBmYWxzZTtcblxuICBmdW5jdGlvbiBwYXJ0aXRpb24ocm9vdCkge1xuICAgIHZhciBuID0gcm9vdC5oZWlnaHQgKyAxO1xuICAgIHJvb3QueDAgPVxuICAgIHJvb3QueTAgPSBwYWRkaW5nO1xuICAgIHJvb3QueDEgPSBkeDtcbiAgICByb290LnkxID0gZHkgLyBuO1xuICAgIHJvb3QuZWFjaEJlZm9yZShwb3NpdGlvbk5vZGUoZHksIG4pKTtcbiAgICBpZiAocm91bmQpIHJvb3QuZWFjaEJlZm9yZShyb3VuZE5vZGUpO1xuICAgIHJldHVybiByb290O1xuICB9XG5cbiAgZnVuY3Rpb24gcG9zaXRpb25Ob2RlKGR5LCBuKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgIHRyZWVtYXBEaWNlKG5vZGUsIG5vZGUueDAsIGR5ICogKG5vZGUuZGVwdGggKyAxKSAvIG4sIG5vZGUueDEsIGR5ICogKG5vZGUuZGVwdGggKyAyKSAvIG4pO1xuICAgICAgfVxuICAgICAgdmFyIHgwID0gbm9kZS54MCxcbiAgICAgICAgICB5MCA9IG5vZGUueTAsXG4gICAgICAgICAgeDEgPSBub2RlLngxIC0gcGFkZGluZyxcbiAgICAgICAgICB5MSA9IG5vZGUueTEgLSBwYWRkaW5nO1xuICAgICAgaWYgKHgxIDwgeDApIHgwID0geDEgPSAoeDAgKyB4MSkgLyAyO1xuICAgICAgaWYgKHkxIDwgeTApIHkwID0geTEgPSAoeTAgKyB5MSkgLyAyO1xuICAgICAgbm9kZS54MCA9IHgwO1xuICAgICAgbm9kZS55MCA9IHkwO1xuICAgICAgbm9kZS54MSA9IHgxO1xuICAgICAgbm9kZS55MSA9IHkxO1xuICAgIH07XG4gIH1cblxuICBwYXJ0aXRpb24ucm91bmQgPSBmdW5jdGlvbih4KSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocm91bmQgPSAhIXgsIHBhcnRpdGlvbikgOiByb3VuZDtcbiAgfTtcblxuICBwYXJ0aXRpb24uc2l6ZSA9IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChkeCA9ICt4WzBdLCBkeSA9ICt4WzFdLCBwYXJ0aXRpb24pIDogW2R4LCBkeV07XG4gIH07XG5cbiAgcGFydGl0aW9uLnBhZGRpbmcgPSBmdW5jdGlvbih4KSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocGFkZGluZyA9ICt4LCBwYXJ0aXRpb24pIDogcGFkZGluZztcbiAgfTtcblxuICByZXR1cm4gcGFydGl0aW9uO1xufVxuIiwgImltcG9ydCB7cmVxdWlyZWR9IGZyb20gXCIuL2FjY2Vzc29ycy5qc1wiO1xuaW1wb3J0IHtOb2RlLCBjb21wdXRlSGVpZ2h0fSBmcm9tIFwiLi9oaWVyYXJjaHkvaW5kZXguanNcIjtcblxudmFyIHByZXJvb3QgPSB7ZGVwdGg6IC0xfSxcbiAgICBhbWJpZ3VvdXMgPSB7fTtcblxuZnVuY3Rpb24gZGVmYXVsdElkKGQpIHtcbiAgcmV0dXJuIGQuaWQ7XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRQYXJlbnRJZChkKSB7XG4gIHJldHVybiBkLnBhcmVudElkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgdmFyIGlkID0gZGVmYXVsdElkLFxuICAgICAgcGFyZW50SWQgPSBkZWZhdWx0UGFyZW50SWQ7XG5cbiAgZnVuY3Rpb24gc3RyYXRpZnkoZGF0YSkge1xuICAgIHZhciBub2RlcyA9IEFycmF5LmZyb20oZGF0YSksXG4gICAgICAgIG4gPSBub2Rlcy5sZW5ndGgsXG4gICAgICAgIGQsXG4gICAgICAgIGksXG4gICAgICAgIHJvb3QsXG4gICAgICAgIHBhcmVudCxcbiAgICAgICAgbm9kZSxcbiAgICAgICAgbm9kZUlkLFxuICAgICAgICBub2RlS2V5LFxuICAgICAgICBub2RlQnlLZXkgPSBuZXcgTWFwO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgZCA9IG5vZGVzW2ldLCBub2RlID0gbm9kZXNbaV0gPSBuZXcgTm9kZShkKTtcbiAgICAgIGlmICgobm9kZUlkID0gaWQoZCwgaSwgZGF0YSkpICE9IG51bGwgJiYgKG5vZGVJZCArPSBcIlwiKSkge1xuICAgICAgICBub2RlS2V5ID0gbm9kZS5pZCA9IG5vZGVJZDtcbiAgICAgICAgbm9kZUJ5S2V5LnNldChub2RlS2V5LCBub2RlQnlLZXkuaGFzKG5vZGVLZXkpID8gYW1iaWd1b3VzIDogbm9kZSk7XG4gICAgICB9XG4gICAgICBpZiAoKG5vZGVJZCA9IHBhcmVudElkKGQsIGksIGRhdGEpKSAhPSBudWxsICYmIChub2RlSWQgKz0gXCJcIikpIHtcbiAgICAgICAgbm9kZS5wYXJlbnQgPSBub2RlSWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgbm9kZSA9IG5vZGVzW2ldO1xuICAgICAgaWYgKG5vZGVJZCA9IG5vZGUucGFyZW50KSB7XG4gICAgICAgIHBhcmVudCA9IG5vZGVCeUtleS5nZXQobm9kZUlkKTtcbiAgICAgICAgaWYgKCFwYXJlbnQpIHRocm93IG5ldyBFcnJvcihcIm1pc3Npbmc6IFwiICsgbm9kZUlkKTtcbiAgICAgICAgaWYgKHBhcmVudCA9PT0gYW1iaWd1b3VzKSB0aHJvdyBuZXcgRXJyb3IoXCJhbWJpZ3VvdXM6IFwiICsgbm9kZUlkKTtcbiAgICAgICAgaWYgKHBhcmVudC5jaGlsZHJlbikgcGFyZW50LmNoaWxkcmVuLnB1c2gobm9kZSk7XG4gICAgICAgIGVsc2UgcGFyZW50LmNoaWxkcmVuID0gW25vZGVdO1xuICAgICAgICBub2RlLnBhcmVudCA9IHBhcmVudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChyb290KSB0aHJvdyBuZXcgRXJyb3IoXCJtdWx0aXBsZSByb290c1wiKTtcbiAgICAgICAgcm9vdCA9IG5vZGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFyb290KSB0aHJvdyBuZXcgRXJyb3IoXCJubyByb290XCIpO1xuICAgIHJvb3QucGFyZW50ID0gcHJlcm9vdDtcbiAgICByb290LmVhY2hCZWZvcmUoZnVuY3Rpb24obm9kZSkgeyBub2RlLmRlcHRoID0gbm9kZS5wYXJlbnQuZGVwdGggKyAxOyAtLW47IH0pLmVhY2hCZWZvcmUoY29tcHV0ZUhlaWdodCk7XG4gICAgcm9vdC5wYXJlbnQgPSBudWxsO1xuICAgIGlmIChuID4gMCkgdGhyb3cgbmV3IEVycm9yKFwiY3ljbGVcIik7XG5cbiAgICByZXR1cm4gcm9vdDtcbiAgfVxuXG4gIHN0cmF0aWZ5LmlkID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGlkID0gcmVxdWlyZWQoeCksIHN0cmF0aWZ5KSA6IGlkO1xuICB9O1xuXG4gIHN0cmF0aWZ5LnBhcmVudElkID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHBhcmVudElkID0gcmVxdWlyZWQoeCksIHN0cmF0aWZ5KSA6IHBhcmVudElkO1xuICB9O1xuXG4gIHJldHVybiBzdHJhdGlmeTtcbn1cbiIsICJpbXBvcnQge05vZGV9IGZyb20gXCIuL2hpZXJhcmNoeS9pbmRleC5qc1wiO1xuXG5mdW5jdGlvbiBkZWZhdWx0U2VwYXJhdGlvbihhLCBiKSB7XG4gIHJldHVybiBhLnBhcmVudCA9PT0gYi5wYXJlbnQgPyAxIDogMjtcbn1cblxuLy8gZnVuY3Rpb24gcmFkaWFsU2VwYXJhdGlvbihhLCBiKSB7XG4vLyAgIHJldHVybiAoYS5wYXJlbnQgPT09IGIucGFyZW50ID8gMSA6IDIpIC8gYS5kZXB0aDtcbi8vIH1cblxuLy8gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHRyYXZlcnNlIHRoZSBsZWZ0IGNvbnRvdXIgb2YgYSBzdWJ0cmVlIChvclxuLy8gc3ViZm9yZXN0KS4gSXQgcmV0dXJucyB0aGUgc3VjY2Vzc29yIG9mIHYgb24gdGhpcyBjb250b3VyLiBUaGlzIHN1Y2Nlc3NvciBpc1xuLy8gZWl0aGVyIGdpdmVuIGJ5IHRoZSBsZWZ0bW9zdCBjaGlsZCBvZiB2IG9yIGJ5IHRoZSB0aHJlYWQgb2Ygdi4gVGhlIGZ1bmN0aW9uXG4vLyByZXR1cm5zIG51bGwgaWYgYW5kIG9ubHkgaWYgdiBpcyBvbiB0aGUgaGlnaGVzdCBsZXZlbCBvZiBpdHMgc3VidHJlZS5cbmZ1bmN0aW9uIG5leHRMZWZ0KHYpIHtcbiAgdmFyIGNoaWxkcmVuID0gdi5jaGlsZHJlbjtcbiAgcmV0dXJuIGNoaWxkcmVuID8gY2hpbGRyZW5bMF0gOiB2LnQ7XG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gd29ya3MgYW5hbG9nb3VzbHkgdG8gbmV4dExlZnQuXG5mdW5jdGlvbiBuZXh0UmlnaHQodikge1xuICB2YXIgY2hpbGRyZW4gPSB2LmNoaWxkcmVuO1xuICByZXR1cm4gY2hpbGRyZW4gPyBjaGlsZHJlbltjaGlsZHJlbi5sZW5ndGggLSAxXSA6IHYudDtcbn1cblxuLy8gU2hpZnRzIHRoZSBjdXJyZW50IHN1YnRyZWUgcm9vdGVkIGF0IHcrLiBUaGlzIGlzIGRvbmUgYnkgaW5jcmVhc2luZ1xuLy8gcHJlbGltKHcrKSBhbmQgbW9kKHcrKSBieSBzaGlmdC5cbmZ1bmN0aW9uIG1vdmVTdWJ0cmVlKHdtLCB3cCwgc2hpZnQpIHtcbiAgdmFyIGNoYW5nZSA9IHNoaWZ0IC8gKHdwLmkgLSB3bS5pKTtcbiAgd3AuYyAtPSBjaGFuZ2U7XG4gIHdwLnMgKz0gc2hpZnQ7XG4gIHdtLmMgKz0gY2hhbmdlO1xuICB3cC56ICs9IHNoaWZ0O1xuICB3cC5tICs9IHNoaWZ0O1xufVxuXG4vLyBBbGwgb3RoZXIgc2hpZnRzLCBhcHBsaWVkIHRvIHRoZSBzbWFsbGVyIHN1YnRyZWVzIGJldHdlZW4gdy0gYW5kIHcrLCBhcmVcbi8vIHBlcmZvcm1lZCBieSB0aGlzIGZ1bmN0aW9uLiBUbyBwcmVwYXJlIHRoZSBzaGlmdHMsIHdlIGhhdmUgdG8gYWRqdXN0XG4vLyBjaGFuZ2UodyspLCBzaGlmdCh3KyksIGFuZCBjaGFuZ2Uody0pLlxuZnVuY3Rpb24gZXhlY3V0ZVNoaWZ0cyh2KSB7XG4gIHZhciBzaGlmdCA9IDAsXG4gICAgICBjaGFuZ2UgPSAwLFxuICAgICAgY2hpbGRyZW4gPSB2LmNoaWxkcmVuLFxuICAgICAgaSA9IGNoaWxkcmVuLmxlbmd0aCxcbiAgICAgIHc7XG4gIHdoaWxlICgtLWkgPj0gMCkge1xuICAgIHcgPSBjaGlsZHJlbltpXTtcbiAgICB3LnogKz0gc2hpZnQ7XG4gICAgdy5tICs9IHNoaWZ0O1xuICAgIHNoaWZ0ICs9IHcucyArIChjaGFuZ2UgKz0gdy5jKTtcbiAgfVxufVxuXG4vLyBJZiB2aS1cdTIwMTlzIGFuY2VzdG9yIGlzIGEgc2libGluZyBvZiB2LCByZXR1cm5zIHZpLVx1MjAxOXMgYW5jZXN0b3IuIE90aGVyd2lzZSxcbi8vIHJldHVybnMgdGhlIHNwZWNpZmllZCAoZGVmYXVsdCkgYW5jZXN0b3IuXG5mdW5jdGlvbiBuZXh0QW5jZXN0b3IodmltLCB2LCBhbmNlc3Rvcikge1xuICByZXR1cm4gdmltLmEucGFyZW50ID09PSB2LnBhcmVudCA/IHZpbS5hIDogYW5jZXN0b3I7XG59XG5cbmZ1bmN0aW9uIFRyZWVOb2RlKG5vZGUsIGkpIHtcbiAgdGhpcy5fID0gbm9kZTtcbiAgdGhpcy5wYXJlbnQgPSBudWxsO1xuICB0aGlzLmNoaWxkcmVuID0gbnVsbDtcbiAgdGhpcy5BID0gbnVsbDsgLy8gZGVmYXVsdCBhbmNlc3RvclxuICB0aGlzLmEgPSB0aGlzOyAvLyBhbmNlc3RvclxuICB0aGlzLnogPSAwOyAvLyBwcmVsaW1cbiAgdGhpcy5tID0gMDsgLy8gbW9kXG4gIHRoaXMuYyA9IDA7IC8vIGNoYW5nZVxuICB0aGlzLnMgPSAwOyAvLyBzaGlmdFxuICB0aGlzLnQgPSBudWxsOyAvLyB0aHJlYWRcbiAgdGhpcy5pID0gaTsgLy8gbnVtYmVyXG59XG5cblRyZWVOb2RlLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoTm9kZS5wcm90b3R5cGUpO1xuXG5mdW5jdGlvbiB0cmVlUm9vdChyb290KSB7XG4gIHZhciB0cmVlID0gbmV3IFRyZWVOb2RlKHJvb3QsIDApLFxuICAgICAgbm9kZSxcbiAgICAgIG5vZGVzID0gW3RyZWVdLFxuICAgICAgY2hpbGQsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIGksXG4gICAgICBuO1xuXG4gIHdoaWxlIChub2RlID0gbm9kZXMucG9wKCkpIHtcbiAgICBpZiAoY2hpbGRyZW4gPSBub2RlLl8uY2hpbGRyZW4pIHtcbiAgICAgIG5vZGUuY2hpbGRyZW4gPSBuZXcgQXJyYXkobiA9IGNoaWxkcmVuLmxlbmd0aCk7XG4gICAgICBmb3IgKGkgPSBuIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgbm9kZXMucHVzaChjaGlsZCA9IG5vZGUuY2hpbGRyZW5baV0gPSBuZXcgVHJlZU5vZGUoY2hpbGRyZW5baV0sIGkpKTtcbiAgICAgICAgY2hpbGQucGFyZW50ID0gbm9kZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAodHJlZS5wYXJlbnQgPSBuZXcgVHJlZU5vZGUobnVsbCwgMCkpLmNoaWxkcmVuID0gW3RyZWVdO1xuICByZXR1cm4gdHJlZTtcbn1cblxuLy8gTm9kZS1saW5rIHRyZWUgZGlhZ3JhbSB1c2luZyB0aGUgUmVpbmdvbGQtVGlsZm9yZCBcInRpZHlcIiBhbGdvcml0aG1cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICB2YXIgc2VwYXJhdGlvbiA9IGRlZmF1bHRTZXBhcmF0aW9uLFxuICAgICAgZHggPSAxLFxuICAgICAgZHkgPSAxLFxuICAgICAgbm9kZVNpemUgPSBudWxsO1xuXG4gIGZ1bmN0aW9uIHRyZWUocm9vdCkge1xuICAgIHZhciB0ID0gdHJlZVJvb3Qocm9vdCk7XG5cbiAgICAvLyBDb21wdXRlIHRoZSBsYXlvdXQgdXNpbmcgQnVjaGhlaW0gZXQgYWwuXHUyMDE5cyBhbGdvcml0aG0uXG4gICAgdC5lYWNoQWZ0ZXIoZmlyc3RXYWxrKSwgdC5wYXJlbnQubSA9IC10Lno7XG4gICAgdC5lYWNoQmVmb3JlKHNlY29uZFdhbGspO1xuXG4gICAgLy8gSWYgYSBmaXhlZCBub2RlIHNpemUgaXMgc3BlY2lmaWVkLCBzY2FsZSB4IGFuZCB5LlxuICAgIGlmIChub2RlU2l6ZSkgcm9vdC5lYWNoQmVmb3JlKHNpemVOb2RlKTtcblxuICAgIC8vIElmIGEgZml4ZWQgdHJlZSBzaXplIGlzIHNwZWNpZmllZCwgc2NhbGUgeCBhbmQgeSBiYXNlZCBvbiB0aGUgZXh0ZW50LlxuICAgIC8vIENvbXB1dGUgdGhlIGxlZnQtbW9zdCwgcmlnaHQtbW9zdCwgYW5kIGRlcHRoLW1vc3Qgbm9kZXMgZm9yIGV4dGVudHMuXG4gICAgZWxzZSB7XG4gICAgICB2YXIgbGVmdCA9IHJvb3QsXG4gICAgICAgICAgcmlnaHQgPSByb290LFxuICAgICAgICAgIGJvdHRvbSA9IHJvb3Q7XG4gICAgICByb290LmVhY2hCZWZvcmUoZnVuY3Rpb24obm9kZSkge1xuICAgICAgICBpZiAobm9kZS54IDwgbGVmdC54KSBsZWZ0ID0gbm9kZTtcbiAgICAgICAgaWYgKG5vZGUueCA+IHJpZ2h0LngpIHJpZ2h0ID0gbm9kZTtcbiAgICAgICAgaWYgKG5vZGUuZGVwdGggPiBib3R0b20uZGVwdGgpIGJvdHRvbSA9IG5vZGU7XG4gICAgICB9KTtcbiAgICAgIHZhciBzID0gbGVmdCA9PT0gcmlnaHQgPyAxIDogc2VwYXJhdGlvbihsZWZ0LCByaWdodCkgLyAyLFxuICAgICAgICAgIHR4ID0gcyAtIGxlZnQueCxcbiAgICAgICAgICBreCA9IGR4IC8gKHJpZ2h0LnggKyBzICsgdHgpLFxuICAgICAgICAgIGt5ID0gZHkgLyAoYm90dG9tLmRlcHRoIHx8IDEpO1xuICAgICAgcm9vdC5lYWNoQmVmb3JlKGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgICAgbm9kZS54ID0gKG5vZGUueCArIHR4KSAqIGt4O1xuICAgICAgICBub2RlLnkgPSBub2RlLmRlcHRoICoga3k7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcm9vdDtcbiAgfVxuXG4gIC8vIENvbXB1dGVzIGEgcHJlbGltaW5hcnkgeC1jb29yZGluYXRlIGZvciB2LiBCZWZvcmUgdGhhdCwgRklSU1QgV0FMSyBpc1xuICAvLyBhcHBsaWVkIHJlY3Vyc2l2ZWx5IHRvIHRoZSBjaGlsZHJlbiBvZiB2LCBhcyB3ZWxsIGFzIHRoZSBmdW5jdGlvblxuICAvLyBBUFBPUlRJT04uIEFmdGVyIHNwYWNpbmcgb3V0IHRoZSBjaGlsZHJlbiBieSBjYWxsaW5nIEVYRUNVVEUgU0hJRlRTLCB0aGVcbiAgLy8gbm9kZSB2IGlzIHBsYWNlZCB0byB0aGUgbWlkcG9pbnQgb2YgaXRzIG91dGVybW9zdCBjaGlsZHJlbi5cbiAgZnVuY3Rpb24gZmlyc3RXYWxrKHYpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSB2LmNoaWxkcmVuLFxuICAgICAgICBzaWJsaW5ncyA9IHYucGFyZW50LmNoaWxkcmVuLFxuICAgICAgICB3ID0gdi5pID8gc2libGluZ3Nbdi5pIC0gMV0gOiBudWxsO1xuICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgZXhlY3V0ZVNoaWZ0cyh2KTtcbiAgICAgIHZhciBtaWRwb2ludCA9IChjaGlsZHJlblswXS56ICsgY2hpbGRyZW5bY2hpbGRyZW4ubGVuZ3RoIC0gMV0ueikgLyAyO1xuICAgICAgaWYgKHcpIHtcbiAgICAgICAgdi56ID0gdy56ICsgc2VwYXJhdGlvbih2Ll8sIHcuXyk7XG4gICAgICAgIHYubSA9IHYueiAtIG1pZHBvaW50O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdi56ID0gbWlkcG9pbnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh3KSB7XG4gICAgICB2LnogPSB3LnogKyBzZXBhcmF0aW9uKHYuXywgdy5fKTtcbiAgICB9XG4gICAgdi5wYXJlbnQuQSA9IGFwcG9ydGlvbih2LCB3LCB2LnBhcmVudC5BIHx8IHNpYmxpbmdzWzBdKTtcbiAgfVxuXG4gIC8vIENvbXB1dGVzIGFsbCByZWFsIHgtY29vcmRpbmF0ZXMgYnkgc3VtbWluZyB1cCB0aGUgbW9kaWZpZXJzIHJlY3Vyc2l2ZWx5LlxuICBmdW5jdGlvbiBzZWNvbmRXYWxrKHYpIHtcbiAgICB2Ll8ueCA9IHYueiArIHYucGFyZW50Lm07XG4gICAgdi5tICs9IHYucGFyZW50Lm07XG4gIH1cblxuICAvLyBUaGUgY29yZSBvZiB0aGUgYWxnb3JpdGhtLiBIZXJlLCBhIG5ldyBzdWJ0cmVlIGlzIGNvbWJpbmVkIHdpdGggdGhlXG4gIC8vIHByZXZpb3VzIHN1YnRyZWVzLiBUaHJlYWRzIGFyZSB1c2VkIHRvIHRyYXZlcnNlIHRoZSBpbnNpZGUgYW5kIG91dHNpZGVcbiAgLy8gY29udG91cnMgb2YgdGhlIGxlZnQgYW5kIHJpZ2h0IHN1YnRyZWUgdXAgdG8gdGhlIGhpZ2hlc3QgY29tbW9uIGxldmVsLiBUaGVcbiAgLy8gdmVydGljZXMgdXNlZCBmb3IgdGhlIHRyYXZlcnNhbHMgYXJlIHZpKywgdmktLCB2by0sIGFuZCB2byssIHdoZXJlIHRoZVxuICAvLyBzdXBlcnNjcmlwdCBvIG1lYW5zIG91dHNpZGUgYW5kIGkgbWVhbnMgaW5zaWRlLCB0aGUgc3Vic2NyaXB0IC0gbWVhbnMgbGVmdFxuICAvLyBzdWJ0cmVlIGFuZCArIG1lYW5zIHJpZ2h0IHN1YnRyZWUuIEZvciBzdW1taW5nIHVwIHRoZSBtb2RpZmllcnMgYWxvbmcgdGhlXG4gIC8vIGNvbnRvdXIsIHdlIHVzZSByZXNwZWN0aXZlIHZhcmlhYmxlcyBzaSssIHNpLSwgc28tLCBhbmQgc28rLiBXaGVuZXZlciB0d29cbiAgLy8gbm9kZXMgb2YgdGhlIGluc2lkZSBjb250b3VycyBjb25mbGljdCwgd2UgY29tcHV0ZSB0aGUgbGVmdCBvbmUgb2YgdGhlXG4gIC8vIGdyZWF0ZXN0IHVuY29tbW9uIGFuY2VzdG9ycyB1c2luZyB0aGUgZnVuY3Rpb24gQU5DRVNUT1IgYW5kIGNhbGwgTU9WRVxuICAvLyBTVUJUUkVFIHRvIHNoaWZ0IHRoZSBzdWJ0cmVlIGFuZCBwcmVwYXJlIHRoZSBzaGlmdHMgb2Ygc21hbGxlciBzdWJ0cmVlcy5cbiAgLy8gRmluYWxseSwgd2UgYWRkIGEgbmV3IHRocmVhZCAoaWYgbmVjZXNzYXJ5KS5cbiAgZnVuY3Rpb24gYXBwb3J0aW9uKHYsIHcsIGFuY2VzdG9yKSB7XG4gICAgaWYgKHcpIHtcbiAgICAgIHZhciB2aXAgPSB2LFxuICAgICAgICAgIHZvcCA9IHYsXG4gICAgICAgICAgdmltID0gdyxcbiAgICAgICAgICB2b20gPSB2aXAucGFyZW50LmNoaWxkcmVuWzBdLFxuICAgICAgICAgIHNpcCA9IHZpcC5tLFxuICAgICAgICAgIHNvcCA9IHZvcC5tLFxuICAgICAgICAgIHNpbSA9IHZpbS5tLFxuICAgICAgICAgIHNvbSA9IHZvbS5tLFxuICAgICAgICAgIHNoaWZ0O1xuICAgICAgd2hpbGUgKHZpbSA9IG5leHRSaWdodCh2aW0pLCB2aXAgPSBuZXh0TGVmdCh2aXApLCB2aW0gJiYgdmlwKSB7XG4gICAgICAgIHZvbSA9IG5leHRMZWZ0KHZvbSk7XG4gICAgICAgIHZvcCA9IG5leHRSaWdodCh2b3ApO1xuICAgICAgICB2b3AuYSA9IHY7XG4gICAgICAgIHNoaWZ0ID0gdmltLnogKyBzaW0gLSB2aXAueiAtIHNpcCArIHNlcGFyYXRpb24odmltLl8sIHZpcC5fKTtcbiAgICAgICAgaWYgKHNoaWZ0ID4gMCkge1xuICAgICAgICAgIG1vdmVTdWJ0cmVlKG5leHRBbmNlc3Rvcih2aW0sIHYsIGFuY2VzdG9yKSwgdiwgc2hpZnQpO1xuICAgICAgICAgIHNpcCArPSBzaGlmdDtcbiAgICAgICAgICBzb3AgKz0gc2hpZnQ7XG4gICAgICAgIH1cbiAgICAgICAgc2ltICs9IHZpbS5tO1xuICAgICAgICBzaXAgKz0gdmlwLm07XG4gICAgICAgIHNvbSArPSB2b20ubTtcbiAgICAgICAgc29wICs9IHZvcC5tO1xuICAgICAgfVxuICAgICAgaWYgKHZpbSAmJiAhbmV4dFJpZ2h0KHZvcCkpIHtcbiAgICAgICAgdm9wLnQgPSB2aW07XG4gICAgICAgIHZvcC5tICs9IHNpbSAtIHNvcDtcbiAgICAgIH1cbiAgICAgIGlmICh2aXAgJiYgIW5leHRMZWZ0KHZvbSkpIHtcbiAgICAgICAgdm9tLnQgPSB2aXA7XG4gICAgICAgIHZvbS5tICs9IHNpcCAtIHNvbTtcbiAgICAgICAgYW5jZXN0b3IgPSB2O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYW5jZXN0b3I7XG4gIH1cblxuICBmdW5jdGlvbiBzaXplTm9kZShub2RlKSB7XG4gICAgbm9kZS54ICo9IGR4O1xuICAgIG5vZGUueSA9IG5vZGUuZGVwdGggKiBkeTtcbiAgfVxuXG4gIHRyZWUuc2VwYXJhdGlvbiA9IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChzZXBhcmF0aW9uID0geCwgdHJlZSkgOiBzZXBhcmF0aW9uO1xuICB9O1xuXG4gIHRyZWUuc2l6ZSA9IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChub2RlU2l6ZSA9IGZhbHNlLCBkeCA9ICt4WzBdLCBkeSA9ICt4WzFdLCB0cmVlKSA6IChub2RlU2l6ZSA/IG51bGwgOiBbZHgsIGR5XSk7XG4gIH07XG5cbiAgdHJlZS5ub2RlU2l6ZSA9IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChub2RlU2l6ZSA9IHRydWUsIGR4ID0gK3hbMF0sIGR5ID0gK3hbMV0sIHRyZWUpIDogKG5vZGVTaXplID8gW2R4LCBkeV0gOiBudWxsKTtcbiAgfTtcblxuICByZXR1cm4gdHJlZTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihwYXJlbnQsIHgwLCB5MCwgeDEsIHkxKSB7XG4gIHZhciBub2RlcyA9IHBhcmVudC5jaGlsZHJlbixcbiAgICAgIG5vZGUsXG4gICAgICBpID0gLTEsXG4gICAgICBuID0gbm9kZXMubGVuZ3RoLFxuICAgICAgayA9IHBhcmVudC52YWx1ZSAmJiAoeTEgLSB5MCkgLyBwYXJlbnQudmFsdWU7XG5cbiAgd2hpbGUgKCsraSA8IG4pIHtcbiAgICBub2RlID0gbm9kZXNbaV0sIG5vZGUueDAgPSB4MCwgbm9kZS54MSA9IHgxO1xuICAgIG5vZGUueTAgPSB5MCwgbm9kZS55MSA9IHkwICs9IG5vZGUudmFsdWUgKiBrO1xuICB9XG59XG4iLCAiaW1wb3J0IHRyZWVtYXBEaWNlIGZyb20gXCIuL2RpY2UuanNcIjtcbmltcG9ydCB0cmVlbWFwU2xpY2UgZnJvbSBcIi4vc2xpY2UuanNcIjtcblxuZXhwb3J0IHZhciBwaGkgPSAoMSArIE1hdGguc3FydCg1KSkgLyAyO1xuXG5leHBvcnQgZnVuY3Rpb24gc3F1YXJpZnlSYXRpbyhyYXRpbywgcGFyZW50LCB4MCwgeTAsIHgxLCB5MSkge1xuICB2YXIgcm93cyA9IFtdLFxuICAgICAgbm9kZXMgPSBwYXJlbnQuY2hpbGRyZW4sXG4gICAgICByb3csXG4gICAgICBub2RlVmFsdWUsXG4gICAgICBpMCA9IDAsXG4gICAgICBpMSA9IDAsXG4gICAgICBuID0gbm9kZXMubGVuZ3RoLFxuICAgICAgZHgsIGR5LFxuICAgICAgdmFsdWUgPSBwYXJlbnQudmFsdWUsXG4gICAgICBzdW1WYWx1ZSxcbiAgICAgIG1pblZhbHVlLFxuICAgICAgbWF4VmFsdWUsXG4gICAgICBuZXdSYXRpbyxcbiAgICAgIG1pblJhdGlvLFxuICAgICAgYWxwaGEsXG4gICAgICBiZXRhO1xuXG4gIHdoaWxlIChpMCA8IG4pIHtcbiAgICBkeCA9IHgxIC0geDAsIGR5ID0geTEgLSB5MDtcblxuICAgIC8vIEZpbmQgdGhlIG5leHQgbm9uLWVtcHR5IG5vZGUuXG4gICAgZG8gc3VtVmFsdWUgPSBub2Rlc1tpMSsrXS52YWx1ZTsgd2hpbGUgKCFzdW1WYWx1ZSAmJiBpMSA8IG4pO1xuICAgIG1pblZhbHVlID0gbWF4VmFsdWUgPSBzdW1WYWx1ZTtcbiAgICBhbHBoYSA9IE1hdGgubWF4KGR5IC8gZHgsIGR4IC8gZHkpIC8gKHZhbHVlICogcmF0aW8pO1xuICAgIGJldGEgPSBzdW1WYWx1ZSAqIHN1bVZhbHVlICogYWxwaGE7XG4gICAgbWluUmF0aW8gPSBNYXRoLm1heChtYXhWYWx1ZSAvIGJldGEsIGJldGEgLyBtaW5WYWx1ZSk7XG5cbiAgICAvLyBLZWVwIGFkZGluZyBub2RlcyB3aGlsZSB0aGUgYXNwZWN0IHJhdGlvIG1haW50YWlucyBvciBpbXByb3Zlcy5cbiAgICBmb3IgKDsgaTEgPCBuOyArK2kxKSB7XG4gICAgICBzdW1WYWx1ZSArPSBub2RlVmFsdWUgPSBub2Rlc1tpMV0udmFsdWU7XG4gICAgICBpZiAobm9kZVZhbHVlIDwgbWluVmFsdWUpIG1pblZhbHVlID0gbm9kZVZhbHVlO1xuICAgICAgaWYgKG5vZGVWYWx1ZSA+IG1heFZhbHVlKSBtYXhWYWx1ZSA9IG5vZGVWYWx1ZTtcbiAgICAgIGJldGEgPSBzdW1WYWx1ZSAqIHN1bVZhbHVlICogYWxwaGE7XG4gICAgICBuZXdSYXRpbyA9IE1hdGgubWF4KG1heFZhbHVlIC8gYmV0YSwgYmV0YSAvIG1pblZhbHVlKTtcbiAgICAgIGlmIChuZXdSYXRpbyA+IG1pblJhdGlvKSB7IHN1bVZhbHVlIC09IG5vZGVWYWx1ZTsgYnJlYWs7IH1cbiAgICAgIG1pblJhdGlvID0gbmV3UmF0aW87XG4gICAgfVxuXG4gICAgLy8gUG9zaXRpb24gYW5kIHJlY29yZCB0aGUgcm93IG9yaWVudGF0aW9uLlxuICAgIHJvd3MucHVzaChyb3cgPSB7dmFsdWU6IHN1bVZhbHVlLCBkaWNlOiBkeCA8IGR5LCBjaGlsZHJlbjogbm9kZXMuc2xpY2UoaTAsIGkxKX0pO1xuICAgIGlmIChyb3cuZGljZSkgdHJlZW1hcERpY2Uocm93LCB4MCwgeTAsIHgxLCB2YWx1ZSA/IHkwICs9IGR5ICogc3VtVmFsdWUgLyB2YWx1ZSA6IHkxKTtcbiAgICBlbHNlIHRyZWVtYXBTbGljZShyb3csIHgwLCB5MCwgdmFsdWUgPyB4MCArPSBkeCAqIHN1bVZhbHVlIC8gdmFsdWUgOiB4MSwgeTEpO1xuICAgIHZhbHVlIC09IHN1bVZhbHVlLCBpMCA9IGkxO1xuICB9XG5cbiAgcmV0dXJuIHJvd3M7XG59XG5cbmV4cG9ydCBkZWZhdWx0IChmdW5jdGlvbiBjdXN0b20ocmF0aW8pIHtcblxuICBmdW5jdGlvbiBzcXVhcmlmeShwYXJlbnQsIHgwLCB5MCwgeDEsIHkxKSB7XG4gICAgc3F1YXJpZnlSYXRpbyhyYXRpbywgcGFyZW50LCB4MCwgeTAsIHgxLCB5MSk7XG4gIH1cblxuICBzcXVhcmlmeS5yYXRpbyA9IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4gY3VzdG9tKCh4ID0gK3gpID4gMSA/IHggOiAxKTtcbiAgfTtcblxuICByZXR1cm4gc3F1YXJpZnk7XG59KShwaGkpO1xuIiwgImltcG9ydCByb3VuZE5vZGUgZnJvbSBcIi4vcm91bmQuanNcIjtcbmltcG9ydCBzcXVhcmlmeSBmcm9tIFwiLi9zcXVhcmlmeS5qc1wiO1xuaW1wb3J0IHtyZXF1aXJlZH0gZnJvbSBcIi4uL2FjY2Vzc29ycy5qc1wiO1xuaW1wb3J0IGNvbnN0YW50LCB7Y29uc3RhbnRaZXJvfSBmcm9tIFwiLi4vY29uc3RhbnQuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHZhciB0aWxlID0gc3F1YXJpZnksXG4gICAgICByb3VuZCA9IGZhbHNlLFxuICAgICAgZHggPSAxLFxuICAgICAgZHkgPSAxLFxuICAgICAgcGFkZGluZ1N0YWNrID0gWzBdLFxuICAgICAgcGFkZGluZ0lubmVyID0gY29uc3RhbnRaZXJvLFxuICAgICAgcGFkZGluZ1RvcCA9IGNvbnN0YW50WmVybyxcbiAgICAgIHBhZGRpbmdSaWdodCA9IGNvbnN0YW50WmVybyxcbiAgICAgIHBhZGRpbmdCb3R0b20gPSBjb25zdGFudFplcm8sXG4gICAgICBwYWRkaW5nTGVmdCA9IGNvbnN0YW50WmVybztcblxuICBmdW5jdGlvbiB0cmVlbWFwKHJvb3QpIHtcbiAgICByb290LngwID1cbiAgICByb290LnkwID0gMDtcbiAgICByb290LngxID0gZHg7XG4gICAgcm9vdC55MSA9IGR5O1xuICAgIHJvb3QuZWFjaEJlZm9yZShwb3NpdGlvbk5vZGUpO1xuICAgIHBhZGRpbmdTdGFjayA9IFswXTtcbiAgICBpZiAocm91bmQpIHJvb3QuZWFjaEJlZm9yZShyb3VuZE5vZGUpO1xuICAgIHJldHVybiByb290O1xuICB9XG5cbiAgZnVuY3Rpb24gcG9zaXRpb25Ob2RlKG5vZGUpIHtcbiAgICB2YXIgcCA9IHBhZGRpbmdTdGFja1tub2RlLmRlcHRoXSxcbiAgICAgICAgeDAgPSBub2RlLngwICsgcCxcbiAgICAgICAgeTAgPSBub2RlLnkwICsgcCxcbiAgICAgICAgeDEgPSBub2RlLngxIC0gcCxcbiAgICAgICAgeTEgPSBub2RlLnkxIC0gcDtcbiAgICBpZiAoeDEgPCB4MCkgeDAgPSB4MSA9ICh4MCArIHgxKSAvIDI7XG4gICAgaWYgKHkxIDwgeTApIHkwID0geTEgPSAoeTAgKyB5MSkgLyAyO1xuICAgIG5vZGUueDAgPSB4MDtcbiAgICBub2RlLnkwID0geTA7XG4gICAgbm9kZS54MSA9IHgxO1xuICAgIG5vZGUueTEgPSB5MTtcbiAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgcCA9IHBhZGRpbmdTdGFja1tub2RlLmRlcHRoICsgMV0gPSBwYWRkaW5nSW5uZXIobm9kZSkgLyAyO1xuICAgICAgeDAgKz0gcGFkZGluZ0xlZnQobm9kZSkgLSBwO1xuICAgICAgeTAgKz0gcGFkZGluZ1RvcChub2RlKSAtIHA7XG4gICAgICB4MSAtPSBwYWRkaW5nUmlnaHQobm9kZSkgLSBwO1xuICAgICAgeTEgLT0gcGFkZGluZ0JvdHRvbShub2RlKSAtIHA7XG4gICAgICBpZiAoeDEgPCB4MCkgeDAgPSB4MSA9ICh4MCArIHgxKSAvIDI7XG4gICAgICBpZiAoeTEgPCB5MCkgeTAgPSB5MSA9ICh5MCArIHkxKSAvIDI7XG4gICAgICB0aWxlKG5vZGUsIHgwLCB5MCwgeDEsIHkxKTtcbiAgICB9XG4gIH1cblxuICB0cmVlbWFwLnJvdW5kID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHJvdW5kID0gISF4LCB0cmVlbWFwKSA6IHJvdW5kO1xuICB9O1xuXG4gIHRyZWVtYXAuc2l6ZSA9IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChkeCA9ICt4WzBdLCBkeSA9ICt4WzFdLCB0cmVlbWFwKSA6IFtkeCwgZHldO1xuICB9O1xuXG4gIHRyZWVtYXAudGlsZSA9IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh0aWxlID0gcmVxdWlyZWQoeCksIHRyZWVtYXApIDogdGlsZTtcbiAgfTtcblxuICB0cmVlbWFwLnBhZGRpbmcgPSBmdW5jdGlvbih4KSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyB0cmVlbWFwLnBhZGRpbmdJbm5lcih4KS5wYWRkaW5nT3V0ZXIoeCkgOiB0cmVlbWFwLnBhZGRpbmdJbm5lcigpO1xuICB9O1xuXG4gIHRyZWVtYXAucGFkZGluZ0lubmVyID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHBhZGRpbmdJbm5lciA9IHR5cGVvZiB4ID09PSBcImZ1bmN0aW9uXCIgPyB4IDogY29uc3RhbnQoK3gpLCB0cmVlbWFwKSA6IHBhZGRpbmdJbm5lcjtcbiAgfTtcblxuICB0cmVlbWFwLnBhZGRpbmdPdXRlciA9IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IHRyZWVtYXAucGFkZGluZ1RvcCh4KS5wYWRkaW5nUmlnaHQoeCkucGFkZGluZ0JvdHRvbSh4KS5wYWRkaW5nTGVmdCh4KSA6IHRyZWVtYXAucGFkZGluZ1RvcCgpO1xuICB9O1xuXG4gIHRyZWVtYXAucGFkZGluZ1RvcCA9IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChwYWRkaW5nVG9wID0gdHlwZW9mIHggPT09IFwiZnVuY3Rpb25cIiA/IHggOiBjb25zdGFudCgreCksIHRyZWVtYXApIDogcGFkZGluZ1RvcDtcbiAgfTtcblxuICB0cmVlbWFwLnBhZGRpbmdSaWdodCA9IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChwYWRkaW5nUmlnaHQgPSB0eXBlb2YgeCA9PT0gXCJmdW5jdGlvblwiID8geCA6IGNvbnN0YW50KCt4KSwgdHJlZW1hcCkgOiBwYWRkaW5nUmlnaHQ7XG4gIH07XG5cbiAgdHJlZW1hcC5wYWRkaW5nQm90dG9tID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHBhZGRpbmdCb3R0b20gPSB0eXBlb2YgeCA9PT0gXCJmdW5jdGlvblwiID8geCA6IGNvbnN0YW50KCt4KSwgdHJlZW1hcCkgOiBwYWRkaW5nQm90dG9tO1xuICB9O1xuXG4gIHRyZWVtYXAucGFkZGluZ0xlZnQgPSBmdW5jdGlvbih4KSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocGFkZGluZ0xlZnQgPSB0eXBlb2YgeCA9PT0gXCJmdW5jdGlvblwiID8geCA6IGNvbnN0YW50KCt4KSwgdHJlZW1hcCkgOiBwYWRkaW5nTGVmdDtcbiAgfTtcblxuICByZXR1cm4gdHJlZW1hcDtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihwYXJlbnQsIHgwLCB5MCwgeDEsIHkxKSB7XG4gIHZhciBub2RlcyA9IHBhcmVudC5jaGlsZHJlbixcbiAgICAgIGksIG4gPSBub2Rlcy5sZW5ndGgsXG4gICAgICBzdW0sIHN1bXMgPSBuZXcgQXJyYXkobiArIDEpO1xuXG4gIGZvciAoc3Vtc1swXSA9IHN1bSA9IGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgc3Vtc1tpICsgMV0gPSBzdW0gKz0gbm9kZXNbaV0udmFsdWU7XG4gIH1cblxuICBwYXJ0aXRpb24oMCwgbiwgcGFyZW50LnZhbHVlLCB4MCwgeTAsIHgxLCB5MSk7XG5cbiAgZnVuY3Rpb24gcGFydGl0aW9uKGksIGosIHZhbHVlLCB4MCwgeTAsIHgxLCB5MSkge1xuICAgIGlmIChpID49IGogLSAxKSB7XG4gICAgICB2YXIgbm9kZSA9IG5vZGVzW2ldO1xuICAgICAgbm9kZS54MCA9IHgwLCBub2RlLnkwID0geTA7XG4gICAgICBub2RlLngxID0geDEsIG5vZGUueTEgPSB5MTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgdmFsdWVPZmZzZXQgPSBzdW1zW2ldLFxuICAgICAgICB2YWx1ZVRhcmdldCA9ICh2YWx1ZSAvIDIpICsgdmFsdWVPZmZzZXQsXG4gICAgICAgIGsgPSBpICsgMSxcbiAgICAgICAgaGkgPSBqIC0gMTtcblxuICAgIHdoaWxlIChrIDwgaGkpIHtcbiAgICAgIHZhciBtaWQgPSBrICsgaGkgPj4+IDE7XG4gICAgICBpZiAoc3Vtc1ttaWRdIDwgdmFsdWVUYXJnZXQpIGsgPSBtaWQgKyAxO1xuICAgICAgZWxzZSBoaSA9IG1pZDtcbiAgICB9XG5cbiAgICBpZiAoKHZhbHVlVGFyZ2V0IC0gc3Vtc1trIC0gMV0pIDwgKHN1bXNba10gLSB2YWx1ZVRhcmdldCkgJiYgaSArIDEgPCBrKSAtLWs7XG5cbiAgICB2YXIgdmFsdWVMZWZ0ID0gc3Vtc1trXSAtIHZhbHVlT2Zmc2V0LFxuICAgICAgICB2YWx1ZVJpZ2h0ID0gdmFsdWUgLSB2YWx1ZUxlZnQ7XG5cbiAgICBpZiAoKHgxIC0geDApID4gKHkxIC0geTApKSB7XG4gICAgICB2YXIgeGsgPSB2YWx1ZSA/ICh4MCAqIHZhbHVlUmlnaHQgKyB4MSAqIHZhbHVlTGVmdCkgLyB2YWx1ZSA6IHgxO1xuICAgICAgcGFydGl0aW9uKGksIGssIHZhbHVlTGVmdCwgeDAsIHkwLCB4aywgeTEpO1xuICAgICAgcGFydGl0aW9uKGssIGosIHZhbHVlUmlnaHQsIHhrLCB5MCwgeDEsIHkxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHlrID0gdmFsdWUgPyAoeTAgKiB2YWx1ZVJpZ2h0ICsgeTEgKiB2YWx1ZUxlZnQpIC8gdmFsdWUgOiB5MTtcbiAgICAgIHBhcnRpdGlvbihpLCBrLCB2YWx1ZUxlZnQsIHgwLCB5MCwgeDEsIHlrKTtcbiAgICAgIHBhcnRpdGlvbihrLCBqLCB2YWx1ZVJpZ2h0LCB4MCwgeWssIHgxLCB5MSk7XG4gICAgfVxuICB9XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIGluaXRSYW5nZShkb21haW4sIHJhbmdlKSB7XG4gIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkge1xuICAgIGNhc2UgMDogYnJlYWs7XG4gICAgY2FzZSAxOiB0aGlzLnJhbmdlKGRvbWFpbik7IGJyZWFrO1xuICAgIGRlZmF1bHQ6IHRoaXMucmFuZ2UocmFuZ2UpLmRvbWFpbihkb21haW4pOyBicmVhaztcbiAgfVxuICByZXR1cm4gdGhpcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRJbnRlcnBvbGF0b3IoZG9tYWluLCBpbnRlcnBvbGF0b3IpIHtcbiAgc3dpdGNoIChhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgY2FzZSAwOiBicmVhaztcbiAgICBjYXNlIDE6IHtcbiAgICAgIGlmICh0eXBlb2YgZG9tYWluID09PSBcImZ1bmN0aW9uXCIpIHRoaXMuaW50ZXJwb2xhdG9yKGRvbWFpbik7XG4gICAgICBlbHNlIHRoaXMucmFuZ2UoZG9tYWluKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICB0aGlzLmRvbWFpbihkb21haW4pO1xuICAgICAgaWYgKHR5cGVvZiBpbnRlcnBvbGF0b3IgPT09IFwiZnVuY3Rpb25cIikgdGhpcy5pbnRlcnBvbGF0b3IoaW50ZXJwb2xhdG9yKTtcbiAgICAgIGVsc2UgdGhpcy5yYW5nZShpbnRlcnBvbGF0b3IpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiB0aGlzO1xufVxuIiwgImltcG9ydCB7aW5pdFJhbmdlfSBmcm9tIFwiLi9pbml0LmpzXCI7XG5cbmV4cG9ydCBjb25zdCBpbXBsaWNpdCA9IFN5bWJvbChcImltcGxpY2l0XCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBvcmRpbmFsKCkge1xuICB2YXIgaW5kZXggPSBuZXcgTWFwKCksXG4gICAgICBkb21haW4gPSBbXSxcbiAgICAgIHJhbmdlID0gW10sXG4gICAgICB1bmtub3duID0gaW1wbGljaXQ7XG5cbiAgZnVuY3Rpb24gc2NhbGUoZCkge1xuICAgIHZhciBrZXkgPSBkICsgXCJcIiwgaSA9IGluZGV4LmdldChrZXkpO1xuICAgIGlmICghaSkge1xuICAgICAgaWYgKHVua25vd24gIT09IGltcGxpY2l0KSByZXR1cm4gdW5rbm93bjtcbiAgICAgIGluZGV4LnNldChrZXksIGkgPSBkb21haW4ucHVzaChkKSk7XG4gICAgfVxuICAgIHJldHVybiByYW5nZVsoaSAtIDEpICUgcmFuZ2UubGVuZ3RoXTtcbiAgfVxuXG4gIHNjYWxlLmRvbWFpbiA9IGZ1bmN0aW9uKF8pIHtcbiAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHJldHVybiBkb21haW4uc2xpY2UoKTtcbiAgICBkb21haW4gPSBbXSwgaW5kZXggPSBuZXcgTWFwKCk7XG4gICAgZm9yIChjb25zdCB2YWx1ZSBvZiBfKSB7XG4gICAgICBjb25zdCBrZXkgPSB2YWx1ZSArIFwiXCI7XG4gICAgICBpZiAoaW5kZXguaGFzKGtleSkpIGNvbnRpbnVlO1xuICAgICAgaW5kZXguc2V0KGtleSwgZG9tYWluLnB1c2godmFsdWUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHNjYWxlO1xuICB9O1xuXG4gIHNjYWxlLnJhbmdlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHJhbmdlID0gQXJyYXkuZnJvbShfKSwgc2NhbGUpIDogcmFuZ2Uuc2xpY2UoKTtcbiAgfTtcblxuICBzY2FsZS51bmtub3duID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHVua25vd24gPSBfLCBzY2FsZSkgOiB1bmtub3duO1xuICB9O1xuXG4gIHNjYWxlLmNvcHkgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gb3JkaW5hbChkb21haW4sIHJhbmdlKS51bmtub3duKHVua25vd24pO1xuICB9O1xuXG4gIGluaXRSYW5nZS5hcHBseShzY2FsZSwgYXJndW1lbnRzKTtcblxuICByZXR1cm4gc2NhbGU7XG59XG4iLCAiaW1wb3J0IHtyYW5nZSBhcyBzZXF1ZW5jZX0gZnJvbSBcImQzLWFycmF5XCI7XG5pbXBvcnQge2luaXRSYW5nZX0gZnJvbSBcIi4vaW5pdC5qc1wiO1xuaW1wb3J0IG9yZGluYWwgZnJvbSBcIi4vb3JkaW5hbC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBiYW5kKCkge1xuICB2YXIgc2NhbGUgPSBvcmRpbmFsKCkudW5rbm93bih1bmRlZmluZWQpLFxuICAgICAgZG9tYWluID0gc2NhbGUuZG9tYWluLFxuICAgICAgb3JkaW5hbFJhbmdlID0gc2NhbGUucmFuZ2UsXG4gICAgICByMCA9IDAsXG4gICAgICByMSA9IDEsXG4gICAgICBzdGVwLFxuICAgICAgYmFuZHdpZHRoLFxuICAgICAgcm91bmQgPSBmYWxzZSxcbiAgICAgIHBhZGRpbmdJbm5lciA9IDAsXG4gICAgICBwYWRkaW5nT3V0ZXIgPSAwLFxuICAgICAgYWxpZ24gPSAwLjU7XG5cbiAgZGVsZXRlIHNjYWxlLnVua25vd247XG5cbiAgZnVuY3Rpb24gcmVzY2FsZSgpIHtcbiAgICB2YXIgbiA9IGRvbWFpbigpLmxlbmd0aCxcbiAgICAgICAgcmV2ZXJzZSA9IHIxIDwgcjAsXG4gICAgICAgIHN0YXJ0ID0gcmV2ZXJzZSA/IHIxIDogcjAsXG4gICAgICAgIHN0b3AgPSByZXZlcnNlID8gcjAgOiByMTtcbiAgICBzdGVwID0gKHN0b3AgLSBzdGFydCkgLyBNYXRoLm1heCgxLCBuIC0gcGFkZGluZ0lubmVyICsgcGFkZGluZ091dGVyICogMik7XG4gICAgaWYgKHJvdW5kKSBzdGVwID0gTWF0aC5mbG9vcihzdGVwKTtcbiAgICBzdGFydCArPSAoc3RvcCAtIHN0YXJ0IC0gc3RlcCAqIChuIC0gcGFkZGluZ0lubmVyKSkgKiBhbGlnbjtcbiAgICBiYW5kd2lkdGggPSBzdGVwICogKDEgLSBwYWRkaW5nSW5uZXIpO1xuICAgIGlmIChyb3VuZCkgc3RhcnQgPSBNYXRoLnJvdW5kKHN0YXJ0KSwgYmFuZHdpZHRoID0gTWF0aC5yb3VuZChiYW5kd2lkdGgpO1xuICAgIHZhciB2YWx1ZXMgPSBzZXF1ZW5jZShuKS5tYXAoZnVuY3Rpb24oaSkgeyByZXR1cm4gc3RhcnQgKyBzdGVwICogaTsgfSk7XG4gICAgcmV0dXJuIG9yZGluYWxSYW5nZShyZXZlcnNlID8gdmFsdWVzLnJldmVyc2UoKSA6IHZhbHVlcyk7XG4gIH1cblxuICBzY2FsZS5kb21haW4gPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoZG9tYWluKF8pLCByZXNjYWxlKCkpIDogZG9tYWluKCk7XG4gIH07XG5cbiAgc2NhbGUucmFuZ2UgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoW3IwLCByMV0gPSBfLCByMCA9ICtyMCwgcjEgPSArcjEsIHJlc2NhbGUoKSkgOiBbcjAsIHIxXTtcbiAgfTtcblxuICBzY2FsZS5yYW5nZVJvdW5kID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBbcjAsIHIxXSA9IF8sIHIwID0gK3IwLCByMSA9ICtyMSwgcm91bmQgPSB0cnVlLCByZXNjYWxlKCk7XG4gIH07XG5cbiAgc2NhbGUuYmFuZHdpZHRoID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGJhbmR3aWR0aDtcbiAgfTtcblxuICBzY2FsZS5zdGVwID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHN0ZXA7XG4gIH07XG5cbiAgc2NhbGUucm91bmQgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocm91bmQgPSAhIV8sIHJlc2NhbGUoKSkgOiByb3VuZDtcbiAgfTtcblxuICBzY2FsZS5wYWRkaW5nID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHBhZGRpbmdJbm5lciA9IE1hdGgubWluKDEsIHBhZGRpbmdPdXRlciA9ICtfKSwgcmVzY2FsZSgpKSA6IHBhZGRpbmdJbm5lcjtcbiAgfTtcblxuICBzY2FsZS5wYWRkaW5nSW5uZXIgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocGFkZGluZ0lubmVyID0gTWF0aC5taW4oMSwgXyksIHJlc2NhbGUoKSkgOiBwYWRkaW5nSW5uZXI7XG4gIH07XG5cbiAgc2NhbGUucGFkZGluZ091dGVyID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHBhZGRpbmdPdXRlciA9ICtfLCByZXNjYWxlKCkpIDogcGFkZGluZ091dGVyO1xuICB9O1xuXG4gIHNjYWxlLmFsaWduID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGFsaWduID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMSwgXykpLCByZXNjYWxlKCkpIDogYWxpZ247XG4gIH07XG5cbiAgc2NhbGUuY29weSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBiYW5kKGRvbWFpbigpLCBbcjAsIHIxXSlcbiAgICAgICAgLnJvdW5kKHJvdW5kKVxuICAgICAgICAucGFkZGluZ0lubmVyKHBhZGRpbmdJbm5lcilcbiAgICAgICAgLnBhZGRpbmdPdXRlcihwYWRkaW5nT3V0ZXIpXG4gICAgICAgIC5hbGlnbihhbGlnbik7XG4gIH07XG5cbiAgcmV0dXJuIGluaXRSYW5nZS5hcHBseShyZXNjYWxlKCksIGFyZ3VtZW50cyk7XG59XG5cbmZ1bmN0aW9uIHBvaW50aXNoKHNjYWxlKSB7XG4gIHZhciBjb3B5ID0gc2NhbGUuY29weTtcblxuICBzY2FsZS5wYWRkaW5nID0gc2NhbGUucGFkZGluZ091dGVyO1xuICBkZWxldGUgc2NhbGUucGFkZGluZ0lubmVyO1xuICBkZWxldGUgc2NhbGUucGFkZGluZ091dGVyO1xuXG4gIHNjYWxlLmNvcHkgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gcG9pbnRpc2goY29weSgpKTtcbiAgfTtcblxuICByZXR1cm4gc2NhbGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb2ludCgpIHtcbiAgcmV0dXJuIHBvaW50aXNoKGJhbmQuYXBwbHkobnVsbCwgYXJndW1lbnRzKS5wYWRkaW5nSW5uZXIoMSkpO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbnN0YW50cyh4KSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4geDtcbiAgfTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBudW1iZXIoeCkge1xuICByZXR1cm4gK3g7XG59XG4iLCAiaW1wb3J0IHtiaXNlY3R9IGZyb20gXCJkMy1hcnJheVwiO1xuaW1wb3J0IHtpbnRlcnBvbGF0ZSBhcyBpbnRlcnBvbGF0ZVZhbHVlLCBpbnRlcnBvbGF0ZU51bWJlciwgaW50ZXJwb2xhdGVSb3VuZH0gZnJvbSBcImQzLWludGVycG9sYXRlXCI7XG5pbXBvcnQgY29uc3RhbnQgZnJvbSBcIi4vY29uc3RhbnQuanNcIjtcbmltcG9ydCBudW1iZXIgZnJvbSBcIi4vbnVtYmVyLmpzXCI7XG5cbnZhciB1bml0ID0gWzAsIDFdO1xuXG5leHBvcnQgZnVuY3Rpb24gaWRlbnRpdHkoeCkge1xuICByZXR1cm4geDtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplKGEsIGIpIHtcbiAgcmV0dXJuIChiIC09IChhID0gK2EpKVxuICAgICAgPyBmdW5jdGlvbih4KSB7IHJldHVybiAoeCAtIGEpIC8gYjsgfVxuICAgICAgOiBjb25zdGFudChpc05hTihiKSA/IE5hTiA6IDAuNSk7XG59XG5cbmZ1bmN0aW9uIGNsYW1wZXIoYSwgYikge1xuICB2YXIgdDtcbiAgaWYgKGEgPiBiKSB0ID0gYSwgYSA9IGIsIGIgPSB0O1xuICByZXR1cm4gZnVuY3Rpb24oeCkgeyByZXR1cm4gTWF0aC5tYXgoYSwgTWF0aC5taW4oYiwgeCkpOyB9O1xufVxuXG4vLyBub3JtYWxpemUoYSwgYikoeCkgdGFrZXMgYSBkb21haW4gdmFsdWUgeCBpbiBbYSxiXSBhbmQgcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyBwYXJhbWV0ZXIgdCBpbiBbMCwxXS5cbi8vIGludGVycG9sYXRlKGEsIGIpKHQpIHRha2VzIGEgcGFyYW1ldGVyIHQgaW4gWzAsMV0gYW5kIHJldHVybnMgdGhlIGNvcnJlc3BvbmRpbmcgcmFuZ2UgdmFsdWUgeCBpbiBbYSxiXS5cbmZ1bmN0aW9uIGJpbWFwKGRvbWFpbiwgcmFuZ2UsIGludGVycG9sYXRlKSB7XG4gIHZhciBkMCA9IGRvbWFpblswXSwgZDEgPSBkb21haW5bMV0sIHIwID0gcmFuZ2VbMF0sIHIxID0gcmFuZ2VbMV07XG4gIGlmIChkMSA8IGQwKSBkMCA9IG5vcm1hbGl6ZShkMSwgZDApLCByMCA9IGludGVycG9sYXRlKHIxLCByMCk7XG4gIGVsc2UgZDAgPSBub3JtYWxpemUoZDAsIGQxKSwgcjAgPSBpbnRlcnBvbGF0ZShyMCwgcjEpO1xuICByZXR1cm4gZnVuY3Rpb24oeCkgeyByZXR1cm4gcjAoZDAoeCkpOyB9O1xufVxuXG5mdW5jdGlvbiBwb2x5bWFwKGRvbWFpbiwgcmFuZ2UsIGludGVycG9sYXRlKSB7XG4gIHZhciBqID0gTWF0aC5taW4oZG9tYWluLmxlbmd0aCwgcmFuZ2UubGVuZ3RoKSAtIDEsXG4gICAgICBkID0gbmV3IEFycmF5KGopLFxuICAgICAgciA9IG5ldyBBcnJheShqKSxcbiAgICAgIGkgPSAtMTtcblxuICAvLyBSZXZlcnNlIGRlc2NlbmRpbmcgZG9tYWlucy5cbiAgaWYgKGRvbWFpbltqXSA8IGRvbWFpblswXSkge1xuICAgIGRvbWFpbiA9IGRvbWFpbi5zbGljZSgpLnJldmVyc2UoKTtcbiAgICByYW5nZSA9IHJhbmdlLnNsaWNlKCkucmV2ZXJzZSgpO1xuICB9XG5cbiAgd2hpbGUgKCsraSA8IGopIHtcbiAgICBkW2ldID0gbm9ybWFsaXplKGRvbWFpbltpXSwgZG9tYWluW2kgKyAxXSk7XG4gICAgcltpXSA9IGludGVycG9sYXRlKHJhbmdlW2ldLCByYW5nZVtpICsgMV0pO1xuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKHgpIHtcbiAgICB2YXIgaSA9IGJpc2VjdChkb21haW4sIHgsIDEsIGopIC0gMTtcbiAgICByZXR1cm4gcltpXShkW2ldKHgpKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvcHkoc291cmNlLCB0YXJnZXQpIHtcbiAgcmV0dXJuIHRhcmdldFxuICAgICAgLmRvbWFpbihzb3VyY2UuZG9tYWluKCkpXG4gICAgICAucmFuZ2Uoc291cmNlLnJhbmdlKCkpXG4gICAgICAuaW50ZXJwb2xhdGUoc291cmNlLmludGVycG9sYXRlKCkpXG4gICAgICAuY2xhbXAoc291cmNlLmNsYW1wKCkpXG4gICAgICAudW5rbm93bihzb3VyY2UudW5rbm93bigpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybWVyKCkge1xuICB2YXIgZG9tYWluID0gdW5pdCxcbiAgICAgIHJhbmdlID0gdW5pdCxcbiAgICAgIGludGVycG9sYXRlID0gaW50ZXJwb2xhdGVWYWx1ZSxcbiAgICAgIHRyYW5zZm9ybSxcbiAgICAgIHVudHJhbnNmb3JtLFxuICAgICAgdW5rbm93bixcbiAgICAgIGNsYW1wID0gaWRlbnRpdHksXG4gICAgICBwaWVjZXdpc2UsXG4gICAgICBvdXRwdXQsXG4gICAgICBpbnB1dDtcblxuICBmdW5jdGlvbiByZXNjYWxlKCkge1xuICAgIHZhciBuID0gTWF0aC5taW4oZG9tYWluLmxlbmd0aCwgcmFuZ2UubGVuZ3RoKTtcbiAgICBpZiAoY2xhbXAgIT09IGlkZW50aXR5KSBjbGFtcCA9IGNsYW1wZXIoZG9tYWluWzBdLCBkb21haW5bbiAtIDFdKTtcbiAgICBwaWVjZXdpc2UgPSBuID4gMiA/IHBvbHltYXAgOiBiaW1hcDtcbiAgICBvdXRwdXQgPSBpbnB1dCA9IG51bGw7XG4gICAgcmV0dXJuIHNjYWxlO1xuICB9XG5cbiAgZnVuY3Rpb24gc2NhbGUoeCkge1xuICAgIHJldHVybiB4ID09IG51bGwgfHwgaXNOYU4oeCA9ICt4KSA/IHVua25vd24gOiAob3V0cHV0IHx8IChvdXRwdXQgPSBwaWVjZXdpc2UoZG9tYWluLm1hcCh0cmFuc2Zvcm0pLCByYW5nZSwgaW50ZXJwb2xhdGUpKSkodHJhbnNmb3JtKGNsYW1wKHgpKSk7XG4gIH1cblxuICBzY2FsZS5pbnZlcnQgPSBmdW5jdGlvbih5KSB7XG4gICAgcmV0dXJuIGNsYW1wKHVudHJhbnNmb3JtKChpbnB1dCB8fCAoaW5wdXQgPSBwaWVjZXdpc2UocmFuZ2UsIGRvbWFpbi5tYXAodHJhbnNmb3JtKSwgaW50ZXJwb2xhdGVOdW1iZXIpKSkoeSkpKTtcbiAgfTtcblxuICBzY2FsZS5kb21haW4gPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoZG9tYWluID0gQXJyYXkuZnJvbShfLCBudW1iZXIpLCByZXNjYWxlKCkpIDogZG9tYWluLnNsaWNlKCk7XG4gIH07XG5cbiAgc2NhbGUucmFuZ2UgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocmFuZ2UgPSBBcnJheS5mcm9tKF8pLCByZXNjYWxlKCkpIDogcmFuZ2Uuc2xpY2UoKTtcbiAgfTtcblxuICBzY2FsZS5yYW5nZVJvdW5kID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiByYW5nZSA9IEFycmF5LmZyb20oXyksIGludGVycG9sYXRlID0gaW50ZXJwb2xhdGVSb3VuZCwgcmVzY2FsZSgpO1xuICB9O1xuXG4gIHNjYWxlLmNsYW1wID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGNsYW1wID0gXyA/IHRydWUgOiBpZGVudGl0eSwgcmVzY2FsZSgpKSA6IGNsYW1wICE9PSBpZGVudGl0eTtcbiAgfTtcblxuICBzY2FsZS5pbnRlcnBvbGF0ZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChpbnRlcnBvbGF0ZSA9IF8sIHJlc2NhbGUoKSkgOiBpbnRlcnBvbGF0ZTtcbiAgfTtcblxuICBzY2FsZS51bmtub3duID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHVua25vd24gPSBfLCBzY2FsZSkgOiB1bmtub3duO1xuICB9O1xuXG4gIHJldHVybiBmdW5jdGlvbih0LCB1KSB7XG4gICAgdHJhbnNmb3JtID0gdCwgdW50cmFuc2Zvcm0gPSB1O1xuICAgIHJldHVybiByZXNjYWxlKCk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbnRpbnVvdXMoKSB7XG4gIHJldHVybiB0cmFuc2Zvcm1lcigpKGlkZW50aXR5LCBpZGVudGl0eSk7XG59XG4iLCAiaW1wb3J0IHt0aWNrU3RlcH0gZnJvbSBcImQzLWFycmF5XCI7XG5pbXBvcnQge2Zvcm1hdCwgZm9ybWF0UHJlZml4LCBmb3JtYXRTcGVjaWZpZXIsIHByZWNpc2lvbkZpeGVkLCBwcmVjaXNpb25QcmVmaXgsIHByZWNpc2lvblJvdW5kfSBmcm9tIFwiZDMtZm9ybWF0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRpY2tGb3JtYXQoc3RhcnQsIHN0b3AsIGNvdW50LCBzcGVjaWZpZXIpIHtcbiAgdmFyIHN0ZXAgPSB0aWNrU3RlcChzdGFydCwgc3RvcCwgY291bnQpLFxuICAgICAgcHJlY2lzaW9uO1xuICBzcGVjaWZpZXIgPSBmb3JtYXRTcGVjaWZpZXIoc3BlY2lmaWVyID09IG51bGwgPyBcIixmXCIgOiBzcGVjaWZpZXIpO1xuICBzd2l0Y2ggKHNwZWNpZmllci50eXBlKSB7XG4gICAgY2FzZSBcInNcIjoge1xuICAgICAgdmFyIHZhbHVlID0gTWF0aC5tYXgoTWF0aC5hYnMoc3RhcnQpLCBNYXRoLmFicyhzdG9wKSk7XG4gICAgICBpZiAoc3BlY2lmaWVyLnByZWNpc2lvbiA9PSBudWxsICYmICFpc05hTihwcmVjaXNpb24gPSBwcmVjaXNpb25QcmVmaXgoc3RlcCwgdmFsdWUpKSkgc3BlY2lmaWVyLnByZWNpc2lvbiA9IHByZWNpc2lvbjtcbiAgICAgIHJldHVybiBmb3JtYXRQcmVmaXgoc3BlY2lmaWVyLCB2YWx1ZSk7XG4gICAgfVxuICAgIGNhc2UgXCJcIjpcbiAgICBjYXNlIFwiZVwiOlxuICAgIGNhc2UgXCJnXCI6XG4gICAgY2FzZSBcInBcIjpcbiAgICBjYXNlIFwiclwiOiB7XG4gICAgICBpZiAoc3BlY2lmaWVyLnByZWNpc2lvbiA9PSBudWxsICYmICFpc05hTihwcmVjaXNpb24gPSBwcmVjaXNpb25Sb3VuZChzdGVwLCBNYXRoLm1heChNYXRoLmFicyhzdGFydCksIE1hdGguYWJzKHN0b3ApKSkpKSBzcGVjaWZpZXIucHJlY2lzaW9uID0gcHJlY2lzaW9uIC0gKHNwZWNpZmllci50eXBlID09PSBcImVcIik7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBcImZcIjpcbiAgICBjYXNlIFwiJVwiOiB7XG4gICAgICBpZiAoc3BlY2lmaWVyLnByZWNpc2lvbiA9PSBudWxsICYmICFpc05hTihwcmVjaXNpb24gPSBwcmVjaXNpb25GaXhlZChzdGVwKSkpIHNwZWNpZmllci5wcmVjaXNpb24gPSBwcmVjaXNpb24gLSAoc3BlY2lmaWVyLnR5cGUgPT09IFwiJVwiKSAqIDI7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZvcm1hdChzcGVjaWZpZXIpO1xufVxuIiwgImltcG9ydCB7dGlja3MsIHRpY2tJbmNyZW1lbnR9IGZyb20gXCJkMy1hcnJheVwiO1xuaW1wb3J0IGNvbnRpbnVvdXMsIHtjb3B5fSBmcm9tIFwiLi9jb250aW51b3VzLmpzXCI7XG5pbXBvcnQge2luaXRSYW5nZX0gZnJvbSBcIi4vaW5pdC5qc1wiO1xuaW1wb3J0IHRpY2tGb3JtYXQgZnJvbSBcIi4vdGlja0Zvcm1hdC5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gbGluZWFyaXNoKHNjYWxlKSB7XG4gIHZhciBkb21haW4gPSBzY2FsZS5kb21haW47XG5cbiAgc2NhbGUudGlja3MgPSBmdW5jdGlvbihjb3VudCkge1xuICAgIHZhciBkID0gZG9tYWluKCk7XG4gICAgcmV0dXJuIHRpY2tzKGRbMF0sIGRbZC5sZW5ndGggLSAxXSwgY291bnQgPT0gbnVsbCA/IDEwIDogY291bnQpO1xuICB9O1xuXG4gIHNjYWxlLnRpY2tGb3JtYXQgPSBmdW5jdGlvbihjb3VudCwgc3BlY2lmaWVyKSB7XG4gICAgdmFyIGQgPSBkb21haW4oKTtcbiAgICByZXR1cm4gdGlja0Zvcm1hdChkWzBdLCBkW2QubGVuZ3RoIC0gMV0sIGNvdW50ID09IG51bGwgPyAxMCA6IGNvdW50LCBzcGVjaWZpZXIpO1xuICB9O1xuXG4gIHNjYWxlLm5pY2UgPSBmdW5jdGlvbihjb3VudCkge1xuICAgIGlmIChjb3VudCA9PSBudWxsKSBjb3VudCA9IDEwO1xuXG4gICAgdmFyIGQgPSBkb21haW4oKTtcbiAgICB2YXIgaTAgPSAwO1xuICAgIHZhciBpMSA9IGQubGVuZ3RoIC0gMTtcbiAgICB2YXIgc3RhcnQgPSBkW2kwXTtcbiAgICB2YXIgc3RvcCA9IGRbaTFdO1xuICAgIHZhciBwcmVzdGVwO1xuICAgIHZhciBzdGVwO1xuICAgIHZhciBtYXhJdGVyID0gMTA7XG5cbiAgICBpZiAoc3RvcCA8IHN0YXJ0KSB7XG4gICAgICBzdGVwID0gc3RhcnQsIHN0YXJ0ID0gc3RvcCwgc3RvcCA9IHN0ZXA7XG4gICAgICBzdGVwID0gaTAsIGkwID0gaTEsIGkxID0gc3RlcDtcbiAgICB9XG4gICAgXG4gICAgd2hpbGUgKG1heEl0ZXItLSA+IDApIHtcbiAgICAgIHN0ZXAgPSB0aWNrSW5jcmVtZW50KHN0YXJ0LCBzdG9wLCBjb3VudCk7XG4gICAgICBpZiAoc3RlcCA9PT0gcHJlc3RlcCkge1xuICAgICAgICBkW2kwXSA9IHN0YXJ0XG4gICAgICAgIGRbaTFdID0gc3RvcFxuICAgICAgICByZXR1cm4gZG9tYWluKGQpO1xuICAgICAgfSBlbHNlIGlmIChzdGVwID4gMCkge1xuICAgICAgICBzdGFydCA9IE1hdGguZmxvb3Ioc3RhcnQgLyBzdGVwKSAqIHN0ZXA7XG4gICAgICAgIHN0b3AgPSBNYXRoLmNlaWwoc3RvcCAvIHN0ZXApICogc3RlcDtcbiAgICAgIH0gZWxzZSBpZiAoc3RlcCA8IDApIHtcbiAgICAgICAgc3RhcnQgPSBNYXRoLmNlaWwoc3RhcnQgKiBzdGVwKSAvIHN0ZXA7XG4gICAgICAgIHN0b3AgPSBNYXRoLmZsb29yKHN0b3AgKiBzdGVwKSAvIHN0ZXA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHByZXN0ZXAgPSBzdGVwO1xuICAgIH1cblxuICAgIHJldHVybiBzY2FsZTtcbiAgfTtcblxuICByZXR1cm4gc2NhbGU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxpbmVhcigpIHtcbiAgdmFyIHNjYWxlID0gY29udGludW91cygpO1xuXG4gIHNjYWxlLmNvcHkgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gY29weShzY2FsZSwgbGluZWFyKCkpO1xuICB9O1xuXG4gIGluaXRSYW5nZS5hcHBseShzY2FsZSwgYXJndW1lbnRzKTtcblxuICByZXR1cm4gbGluZWFyaXNoKHNjYWxlKTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzcGVjaWZpZXIpIHtcbiAgdmFyIG4gPSBzcGVjaWZpZXIubGVuZ3RoIC8gNiB8IDAsIGNvbG9ycyA9IG5ldyBBcnJheShuKSwgaSA9IDA7XG4gIHdoaWxlIChpIDwgbikgY29sb3JzW2ldID0gXCIjXCIgKyBzcGVjaWZpZXIuc2xpY2UoaSAqIDYsICsraSAqIDYpO1xuICByZXR1cm4gY29sb3JzO1xufVxuIiwgImltcG9ydCBjb2xvcnMgZnJvbSBcIi4uL2NvbG9ycy5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjb2xvcnMoXCIxZjc3YjRmZjdmMGUyY2EwMmNkNjI3Mjg5NDY3YmQ4YzU2NGJlMzc3YzI3ZjdmN2ZiY2JkMjIxN2JlY2ZcIik7XG4iLCAiaW1wb3J0IHtjdWJlaGVsaXh9IGZyb20gXCJkMy1jb2xvclwiO1xuaW1wb3J0IHtpbnRlcnBvbGF0ZUN1YmVoZWxpeExvbmd9IGZyb20gXCJkMy1pbnRlcnBvbGF0ZVwiO1xuXG5leHBvcnQgdmFyIHdhcm0gPSBpbnRlcnBvbGF0ZUN1YmVoZWxpeExvbmcoY3ViZWhlbGl4KC0xMDAsIDAuNzUsIDAuMzUpLCBjdWJlaGVsaXgoODAsIDEuNTAsIDAuOCkpO1xuXG5leHBvcnQgdmFyIGNvb2wgPSBpbnRlcnBvbGF0ZUN1YmVoZWxpeExvbmcoY3ViZWhlbGl4KDI2MCwgMC43NSwgMC4zNSksIGN1YmVoZWxpeCg4MCwgMS41MCwgMC44KSk7XG5cbnZhciBjID0gY3ViZWhlbGl4KCk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHQpIHtcbiAgaWYgKHQgPCAwIHx8IHQgPiAxKSB0IC09IE1hdGguZmxvb3IodCk7XG4gIHZhciB0cyA9IE1hdGguYWJzKHQgLSAwLjUpO1xuICBjLmggPSAzNjAgKiB0IC0gMTAwO1xuICBjLnMgPSAxLjUgLSAxLjUgKiB0cztcbiAgYy5sID0gMC44IC0gMC45ICogdHM7XG4gIHJldHVybiBjICsgXCJcIjtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbih4KSB7XG4gIHJldHVybiBmdW5jdGlvbiBjb25zdGFudCgpIHtcbiAgICByZXR1cm4geDtcbiAgfTtcbn1cbiIsICJleHBvcnQgdmFyIGFicyA9IE1hdGguYWJzO1xuZXhwb3J0IHZhciBhdGFuMiA9IE1hdGguYXRhbjI7XG5leHBvcnQgdmFyIGNvcyA9IE1hdGguY29zO1xuZXhwb3J0IHZhciBtYXggPSBNYXRoLm1heDtcbmV4cG9ydCB2YXIgbWluID0gTWF0aC5taW47XG5leHBvcnQgdmFyIHNpbiA9IE1hdGguc2luO1xuZXhwb3J0IHZhciBzcXJ0ID0gTWF0aC5zcXJ0O1xuXG5leHBvcnQgdmFyIGVwc2lsb24gPSAxZS0xMjtcbmV4cG9ydCB2YXIgcGkgPSBNYXRoLlBJO1xuZXhwb3J0IHZhciBoYWxmUGkgPSBwaSAvIDI7XG5leHBvcnQgdmFyIHRhdSA9IDIgKiBwaTtcblxuZXhwb3J0IGZ1bmN0aW9uIGFjb3MoeCkge1xuICByZXR1cm4geCA+IDEgPyAwIDogeCA8IC0xID8gcGkgOiBNYXRoLmFjb3MoeCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc2luKHgpIHtcbiAgcmV0dXJuIHggPj0gMSA/IGhhbGZQaSA6IHggPD0gLTEgPyAtaGFsZlBpIDogTWF0aC5hc2luKHgpO1xufVxuIiwgImltcG9ydCB7cGF0aH0gZnJvbSBcImQzLXBhdGhcIjtcbmltcG9ydCBjb25zdGFudCBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuaW1wb3J0IHthYnMsIGFjb3MsIGFzaW4sIGF0YW4yLCBjb3MsIGVwc2lsb24sIGhhbGZQaSwgbWF4LCBtaW4sIHBpLCBzaW4sIHNxcnQsIHRhdX0gZnJvbSBcIi4vbWF0aC5qc1wiO1xuXG5mdW5jdGlvbiBhcmNJbm5lclJhZGl1cyhkKSB7XG4gIHJldHVybiBkLmlubmVyUmFkaXVzO1xufVxuXG5mdW5jdGlvbiBhcmNPdXRlclJhZGl1cyhkKSB7XG4gIHJldHVybiBkLm91dGVyUmFkaXVzO1xufVxuXG5mdW5jdGlvbiBhcmNTdGFydEFuZ2xlKGQpIHtcbiAgcmV0dXJuIGQuc3RhcnRBbmdsZTtcbn1cblxuZnVuY3Rpb24gYXJjRW5kQW5nbGUoZCkge1xuICByZXR1cm4gZC5lbmRBbmdsZTtcbn1cblxuZnVuY3Rpb24gYXJjUGFkQW5nbGUoZCkge1xuICByZXR1cm4gZCAmJiBkLnBhZEFuZ2xlOyAvLyBOb3RlOiBvcHRpb25hbCFcbn1cblxuZnVuY3Rpb24gaW50ZXJzZWN0KHgwLCB5MCwgeDEsIHkxLCB4MiwgeTIsIHgzLCB5Mykge1xuICB2YXIgeDEwID0geDEgLSB4MCwgeTEwID0geTEgLSB5MCxcbiAgICAgIHgzMiA9IHgzIC0geDIsIHkzMiA9IHkzIC0geTIsXG4gICAgICB0ID0geTMyICogeDEwIC0geDMyICogeTEwO1xuICBpZiAodCAqIHQgPCBlcHNpbG9uKSByZXR1cm47XG4gIHQgPSAoeDMyICogKHkwIC0geTIpIC0geTMyICogKHgwIC0geDIpKSAvIHQ7XG4gIHJldHVybiBbeDAgKyB0ICogeDEwLCB5MCArIHQgKiB5MTBdO1xufVxuXG4vLyBDb21wdXRlIHBlcnBlbmRpY3VsYXIgb2Zmc2V0IGxpbmUgb2YgbGVuZ3RoIHJjLlxuLy8gaHR0cDovL21hdGh3b3JsZC53b2xmcmFtLmNvbS9DaXJjbGUtTGluZUludGVyc2VjdGlvbi5odG1sXG5mdW5jdGlvbiBjb3JuZXJUYW5nZW50cyh4MCwgeTAsIHgxLCB5MSwgcjEsIHJjLCBjdykge1xuICB2YXIgeDAxID0geDAgLSB4MSxcbiAgICAgIHkwMSA9IHkwIC0geTEsXG4gICAgICBsbyA9IChjdyA/IHJjIDogLXJjKSAvIHNxcnQoeDAxICogeDAxICsgeTAxICogeTAxKSxcbiAgICAgIG94ID0gbG8gKiB5MDEsXG4gICAgICBveSA9IC1sbyAqIHgwMSxcbiAgICAgIHgxMSA9IHgwICsgb3gsXG4gICAgICB5MTEgPSB5MCArIG95LFxuICAgICAgeDEwID0geDEgKyBveCxcbiAgICAgIHkxMCA9IHkxICsgb3ksXG4gICAgICB4MDAgPSAoeDExICsgeDEwKSAvIDIsXG4gICAgICB5MDAgPSAoeTExICsgeTEwKSAvIDIsXG4gICAgICBkeCA9IHgxMCAtIHgxMSxcbiAgICAgIGR5ID0geTEwIC0geTExLFxuICAgICAgZDIgPSBkeCAqIGR4ICsgZHkgKiBkeSxcbiAgICAgIHIgPSByMSAtIHJjLFxuICAgICAgRCA9IHgxMSAqIHkxMCAtIHgxMCAqIHkxMSxcbiAgICAgIGQgPSAoZHkgPCAwID8gLTEgOiAxKSAqIHNxcnQobWF4KDAsIHIgKiByICogZDIgLSBEICogRCkpLFxuICAgICAgY3gwID0gKEQgKiBkeSAtIGR4ICogZCkgLyBkMixcbiAgICAgIGN5MCA9ICgtRCAqIGR4IC0gZHkgKiBkKSAvIGQyLFxuICAgICAgY3gxID0gKEQgKiBkeSArIGR4ICogZCkgLyBkMixcbiAgICAgIGN5MSA9ICgtRCAqIGR4ICsgZHkgKiBkKSAvIGQyLFxuICAgICAgZHgwID0gY3gwIC0geDAwLFxuICAgICAgZHkwID0gY3kwIC0geTAwLFxuICAgICAgZHgxID0gY3gxIC0geDAwLFxuICAgICAgZHkxID0gY3kxIC0geTAwO1xuXG4gIC8vIFBpY2sgdGhlIGNsb3NlciBvZiB0aGUgdHdvIGludGVyc2VjdGlvbiBwb2ludHMuXG4gIC8vIFRPRE8gSXMgdGhlcmUgYSBmYXN0ZXIgd2F5IHRvIGRldGVybWluZSB3aGljaCBpbnRlcnNlY3Rpb24gdG8gdXNlP1xuICBpZiAoZHgwICogZHgwICsgZHkwICogZHkwID4gZHgxICogZHgxICsgZHkxICogZHkxKSBjeDAgPSBjeDEsIGN5MCA9IGN5MTtcblxuICByZXR1cm4ge1xuICAgIGN4OiBjeDAsXG4gICAgY3k6IGN5MCxcbiAgICB4MDE6IC1veCxcbiAgICB5MDE6IC1veSxcbiAgICB4MTE6IGN4MCAqIChyMSAvIHIgLSAxKSxcbiAgICB5MTE6IGN5MCAqIChyMSAvIHIgLSAxKVxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgdmFyIGlubmVyUmFkaXVzID0gYXJjSW5uZXJSYWRpdXMsXG4gICAgICBvdXRlclJhZGl1cyA9IGFyY091dGVyUmFkaXVzLFxuICAgICAgY29ybmVyUmFkaXVzID0gY29uc3RhbnQoMCksXG4gICAgICBwYWRSYWRpdXMgPSBudWxsLFxuICAgICAgc3RhcnRBbmdsZSA9IGFyY1N0YXJ0QW5nbGUsXG4gICAgICBlbmRBbmdsZSA9IGFyY0VuZEFuZ2xlLFxuICAgICAgcGFkQW5nbGUgPSBhcmNQYWRBbmdsZSxcbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gIGZ1bmN0aW9uIGFyYygpIHtcbiAgICB2YXIgYnVmZmVyLFxuICAgICAgICByLFxuICAgICAgICByMCA9ICtpbm5lclJhZGl1cy5hcHBseSh0aGlzLCBhcmd1bWVudHMpLFxuICAgICAgICByMSA9ICtvdXRlclJhZGl1cy5hcHBseSh0aGlzLCBhcmd1bWVudHMpLFxuICAgICAgICBhMCA9IHN0YXJ0QW5nbGUuYXBwbHkodGhpcywgYXJndW1lbnRzKSAtIGhhbGZQaSxcbiAgICAgICAgYTEgPSBlbmRBbmdsZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpIC0gaGFsZlBpLFxuICAgICAgICBkYSA9IGFicyhhMSAtIGEwKSxcbiAgICAgICAgY3cgPSBhMSA+IGEwO1xuXG4gICAgaWYgKCFjb250ZXh0KSBjb250ZXh0ID0gYnVmZmVyID0gcGF0aCgpO1xuXG4gICAgLy8gRW5zdXJlIHRoYXQgdGhlIG91dGVyIHJhZGl1cyBpcyBhbHdheXMgbGFyZ2VyIHRoYW4gdGhlIGlubmVyIHJhZGl1cy5cbiAgICBpZiAocjEgPCByMCkgciA9IHIxLCByMSA9IHIwLCByMCA9IHI7XG5cbiAgICAvLyBJcyBpdCBhIHBvaW50P1xuICAgIGlmICghKHIxID4gZXBzaWxvbikpIGNvbnRleHQubW92ZVRvKDAsIDApO1xuXG4gICAgLy8gT3IgaXMgaXQgYSBjaXJjbGUgb3IgYW5udWx1cz9cbiAgICBlbHNlIGlmIChkYSA+IHRhdSAtIGVwc2lsb24pIHtcbiAgICAgIGNvbnRleHQubW92ZVRvKHIxICogY29zKGEwKSwgcjEgKiBzaW4oYTApKTtcbiAgICAgIGNvbnRleHQuYXJjKDAsIDAsIHIxLCBhMCwgYTEsICFjdyk7XG4gICAgICBpZiAocjAgPiBlcHNpbG9uKSB7XG4gICAgICAgIGNvbnRleHQubW92ZVRvKHIwICogY29zKGExKSwgcjAgKiBzaW4oYTEpKTtcbiAgICAgICAgY29udGV4dC5hcmMoMCwgMCwgcjAsIGExLCBhMCwgY3cpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE9yIGlzIGl0IGEgY2lyY3VsYXIgb3IgYW5udWxhciBzZWN0b3I/XG4gICAgZWxzZSB7XG4gICAgICB2YXIgYTAxID0gYTAsXG4gICAgICAgICAgYTExID0gYTEsXG4gICAgICAgICAgYTAwID0gYTAsXG4gICAgICAgICAgYTEwID0gYTEsXG4gICAgICAgICAgZGEwID0gZGEsXG4gICAgICAgICAgZGExID0gZGEsXG4gICAgICAgICAgYXAgPSBwYWRBbmdsZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpIC8gMixcbiAgICAgICAgICBycCA9IChhcCA+IGVwc2lsb24pICYmIChwYWRSYWRpdXMgPyArcGFkUmFkaXVzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgOiBzcXJ0KHIwICogcjAgKyByMSAqIHIxKSksXG4gICAgICAgICAgcmMgPSBtaW4oYWJzKHIxIC0gcjApIC8gMiwgK2Nvcm5lclJhZGl1cy5hcHBseSh0aGlzLCBhcmd1bWVudHMpKSxcbiAgICAgICAgICByYzAgPSByYyxcbiAgICAgICAgICByYzEgPSByYyxcbiAgICAgICAgICB0MCxcbiAgICAgICAgICB0MTtcblxuICAgICAgLy8gQXBwbHkgcGFkZGluZz8gTm90ZSB0aGF0IHNpbmNlIHIxIFx1MjI2NSByMCwgZGExIFx1MjI2NSBkYTAuXG4gICAgICBpZiAocnAgPiBlcHNpbG9uKSB7XG4gICAgICAgIHZhciBwMCA9IGFzaW4ocnAgLyByMCAqIHNpbihhcCkpLFxuICAgICAgICAgICAgcDEgPSBhc2luKHJwIC8gcjEgKiBzaW4oYXApKTtcbiAgICAgICAgaWYgKChkYTAgLT0gcDAgKiAyKSA+IGVwc2lsb24pIHAwICo9IChjdyA/IDEgOiAtMSksIGEwMCArPSBwMCwgYTEwIC09IHAwO1xuICAgICAgICBlbHNlIGRhMCA9IDAsIGEwMCA9IGExMCA9IChhMCArIGExKSAvIDI7XG4gICAgICAgIGlmICgoZGExIC09IHAxICogMikgPiBlcHNpbG9uKSBwMSAqPSAoY3cgPyAxIDogLTEpLCBhMDEgKz0gcDEsIGExMSAtPSBwMTtcbiAgICAgICAgZWxzZSBkYTEgPSAwLCBhMDEgPSBhMTEgPSAoYTAgKyBhMSkgLyAyO1xuICAgICAgfVxuXG4gICAgICB2YXIgeDAxID0gcjEgKiBjb3MoYTAxKSxcbiAgICAgICAgICB5MDEgPSByMSAqIHNpbihhMDEpLFxuICAgICAgICAgIHgxMCA9IHIwICogY29zKGExMCksXG4gICAgICAgICAgeTEwID0gcjAgKiBzaW4oYTEwKTtcblxuICAgICAgLy8gQXBwbHkgcm91bmRlZCBjb3JuZXJzP1xuICAgICAgaWYgKHJjID4gZXBzaWxvbikge1xuICAgICAgICB2YXIgeDExID0gcjEgKiBjb3MoYTExKSxcbiAgICAgICAgICAgIHkxMSA9IHIxICogc2luKGExMSksXG4gICAgICAgICAgICB4MDAgPSByMCAqIGNvcyhhMDApLFxuICAgICAgICAgICAgeTAwID0gcjAgKiBzaW4oYTAwKSxcbiAgICAgICAgICAgIG9jO1xuXG4gICAgICAgIC8vIFJlc3RyaWN0IHRoZSBjb3JuZXIgcmFkaXVzIGFjY29yZGluZyB0byB0aGUgc2VjdG9yIGFuZ2xlLlxuICAgICAgICBpZiAoZGEgPCBwaSAmJiAob2MgPSBpbnRlcnNlY3QoeDAxLCB5MDEsIHgwMCwgeTAwLCB4MTEsIHkxMSwgeDEwLCB5MTApKSkge1xuICAgICAgICAgIHZhciBheCA9IHgwMSAtIG9jWzBdLFxuICAgICAgICAgICAgICBheSA9IHkwMSAtIG9jWzFdLFxuICAgICAgICAgICAgICBieCA9IHgxMSAtIG9jWzBdLFxuICAgICAgICAgICAgICBieSA9IHkxMSAtIG9jWzFdLFxuICAgICAgICAgICAgICBrYyA9IDEgLyBzaW4oYWNvcygoYXggKiBieCArIGF5ICogYnkpIC8gKHNxcnQoYXggKiBheCArIGF5ICogYXkpICogc3FydChieCAqIGJ4ICsgYnkgKiBieSkpKSAvIDIpLFxuICAgICAgICAgICAgICBsYyA9IHNxcnQob2NbMF0gKiBvY1swXSArIG9jWzFdICogb2NbMV0pO1xuICAgICAgICAgIHJjMCA9IG1pbihyYywgKHIwIC0gbGMpIC8gKGtjIC0gMSkpO1xuICAgICAgICAgIHJjMSA9IG1pbihyYywgKHIxIC0gbGMpIC8gKGtjICsgMSkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIElzIHRoZSBzZWN0b3IgY29sbGFwc2VkIHRvIGEgbGluZT9cbiAgICAgIGlmICghKGRhMSA+IGVwc2lsb24pKSBjb250ZXh0Lm1vdmVUbyh4MDEsIHkwMSk7XG5cbiAgICAgIC8vIERvZXMgdGhlIHNlY3Rvclx1MjAxOXMgb3V0ZXIgcmluZyBoYXZlIHJvdW5kZWQgY29ybmVycz9cbiAgICAgIGVsc2UgaWYgKHJjMSA+IGVwc2lsb24pIHtcbiAgICAgICAgdDAgPSBjb3JuZXJUYW5nZW50cyh4MDAsIHkwMCwgeDAxLCB5MDEsIHIxLCByYzEsIGN3KTtcbiAgICAgICAgdDEgPSBjb3JuZXJUYW5nZW50cyh4MTEsIHkxMSwgeDEwLCB5MTAsIHIxLCByYzEsIGN3KTtcblxuICAgICAgICBjb250ZXh0Lm1vdmVUbyh0MC5jeCArIHQwLngwMSwgdDAuY3kgKyB0MC55MDEpO1xuXG4gICAgICAgIC8vIEhhdmUgdGhlIGNvcm5lcnMgbWVyZ2VkP1xuICAgICAgICBpZiAocmMxIDwgcmMpIGNvbnRleHQuYXJjKHQwLmN4LCB0MC5jeSwgcmMxLCBhdGFuMih0MC55MDEsIHQwLngwMSksIGF0YW4yKHQxLnkwMSwgdDEueDAxKSwgIWN3KTtcblxuICAgICAgICAvLyBPdGhlcndpc2UsIGRyYXcgdGhlIHR3byBjb3JuZXJzIGFuZCB0aGUgcmluZy5cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgY29udGV4dC5hcmModDAuY3gsIHQwLmN5LCByYzEsIGF0YW4yKHQwLnkwMSwgdDAueDAxKSwgYXRhbjIodDAueTExLCB0MC54MTEpLCAhY3cpO1xuICAgICAgICAgIGNvbnRleHQuYXJjKDAsIDAsIHIxLCBhdGFuMih0MC5jeSArIHQwLnkxMSwgdDAuY3ggKyB0MC54MTEpLCBhdGFuMih0MS5jeSArIHQxLnkxMSwgdDEuY3ggKyB0MS54MTEpLCAhY3cpO1xuICAgICAgICAgIGNvbnRleHQuYXJjKHQxLmN4LCB0MS5jeSwgcmMxLCBhdGFuMih0MS55MTEsIHQxLngxMSksIGF0YW4yKHQxLnkwMSwgdDEueDAxKSwgIWN3KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBPciBpcyB0aGUgb3V0ZXIgcmluZyBqdXN0IGEgY2lyY3VsYXIgYXJjP1xuICAgICAgZWxzZSBjb250ZXh0Lm1vdmVUbyh4MDEsIHkwMSksIGNvbnRleHQuYXJjKDAsIDAsIHIxLCBhMDEsIGExMSwgIWN3KTtcblxuICAgICAgLy8gSXMgdGhlcmUgbm8gaW5uZXIgcmluZywgYW5kIGl0XHUyMDE5cyBhIGNpcmN1bGFyIHNlY3Rvcj9cbiAgICAgIC8vIE9yIHBlcmhhcHMgaXRcdTIwMTlzIGFuIGFubnVsYXIgc2VjdG9yIGNvbGxhcHNlZCBkdWUgdG8gcGFkZGluZz9cbiAgICAgIGlmICghKHIwID4gZXBzaWxvbikgfHwgIShkYTAgPiBlcHNpbG9uKSkgY29udGV4dC5saW5lVG8oeDEwLCB5MTApO1xuXG4gICAgICAvLyBEb2VzIHRoZSBzZWN0b3JcdTIwMTlzIGlubmVyIHJpbmcgKG9yIHBvaW50KSBoYXZlIHJvdW5kZWQgY29ybmVycz9cbiAgICAgIGVsc2UgaWYgKHJjMCA+IGVwc2lsb24pIHtcbiAgICAgICAgdDAgPSBjb3JuZXJUYW5nZW50cyh4MTAsIHkxMCwgeDExLCB5MTEsIHIwLCAtcmMwLCBjdyk7XG4gICAgICAgIHQxID0gY29ybmVyVGFuZ2VudHMoeDAxLCB5MDEsIHgwMCwgeTAwLCByMCwgLXJjMCwgY3cpO1xuXG4gICAgICAgIGNvbnRleHQubGluZVRvKHQwLmN4ICsgdDAueDAxLCB0MC5jeSArIHQwLnkwMSk7XG5cbiAgICAgICAgLy8gSGF2ZSB0aGUgY29ybmVycyBtZXJnZWQ/XG4gICAgICAgIGlmIChyYzAgPCByYykgY29udGV4dC5hcmModDAuY3gsIHQwLmN5LCByYzAsIGF0YW4yKHQwLnkwMSwgdDAueDAxKSwgYXRhbjIodDEueTAxLCB0MS54MDEpLCAhY3cpO1xuXG4gICAgICAgIC8vIE90aGVyd2lzZSwgZHJhdyB0aGUgdHdvIGNvcm5lcnMgYW5kIHRoZSByaW5nLlxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBjb250ZXh0LmFyYyh0MC5jeCwgdDAuY3ksIHJjMCwgYXRhbjIodDAueTAxLCB0MC54MDEpLCBhdGFuMih0MC55MTEsIHQwLngxMSksICFjdyk7XG4gICAgICAgICAgY29udGV4dC5hcmMoMCwgMCwgcjAsIGF0YW4yKHQwLmN5ICsgdDAueTExLCB0MC5jeCArIHQwLngxMSksIGF0YW4yKHQxLmN5ICsgdDEueTExLCB0MS5jeCArIHQxLngxMSksIGN3KTtcbiAgICAgICAgICBjb250ZXh0LmFyYyh0MS5jeCwgdDEuY3ksIHJjMCwgYXRhbjIodDEueTExLCB0MS54MTEpLCBhdGFuMih0MS55MDEsIHQxLngwMSksICFjdyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gT3IgaXMgdGhlIGlubmVyIHJpbmcganVzdCBhIGNpcmN1bGFyIGFyYz9cbiAgICAgIGVsc2UgY29udGV4dC5hcmMoMCwgMCwgcjAsIGExMCwgYTAwLCBjdyk7XG4gICAgfVxuXG4gICAgY29udGV4dC5jbG9zZVBhdGgoKTtcblxuICAgIGlmIChidWZmZXIpIHJldHVybiBjb250ZXh0ID0gbnVsbCwgYnVmZmVyICsgXCJcIiB8fCBudWxsO1xuICB9XG5cbiAgYXJjLmNlbnRyb2lkID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHIgPSAoK2lubmVyUmFkaXVzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgKyArb3V0ZXJSYWRpdXMuYXBwbHkodGhpcywgYXJndW1lbnRzKSkgLyAyLFxuICAgICAgICBhID0gKCtzdGFydEFuZ2xlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgKyArZW5kQW5nbGUuYXBwbHkodGhpcywgYXJndW1lbnRzKSkgLyAyIC0gcGkgLyAyO1xuICAgIHJldHVybiBbY29zKGEpICogciwgc2luKGEpICogcl07XG4gIH07XG5cbiAgYXJjLmlubmVyUmFkaXVzID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGlubmVyUmFkaXVzID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCgrXyksIGFyYykgOiBpbm5lclJhZGl1cztcbiAgfTtcblxuICBhcmMub3V0ZXJSYWRpdXMgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAob3V0ZXJSYWRpdXMgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCtfKSwgYXJjKSA6IG91dGVyUmFkaXVzO1xuICB9O1xuXG4gIGFyYy5jb3JuZXJSYWRpdXMgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoY29ybmVyUmFkaXVzID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCgrXyksIGFyYykgOiBjb3JuZXJSYWRpdXM7XG4gIH07XG5cbiAgYXJjLnBhZFJhZGl1cyA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChwYWRSYWRpdXMgPSBfID09IG51bGwgPyBudWxsIDogdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCgrXyksIGFyYykgOiBwYWRSYWRpdXM7XG4gIH07XG5cbiAgYXJjLnN0YXJ0QW5nbGUgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoc3RhcnRBbmdsZSA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoK18pLCBhcmMpIDogc3RhcnRBbmdsZTtcbiAgfTtcblxuICBhcmMuZW5kQW5nbGUgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoZW5kQW5nbGUgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCtfKSwgYXJjKSA6IGVuZEFuZ2xlO1xuICB9O1xuXG4gIGFyYy5wYWRBbmdsZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChwYWRBbmdsZSA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoK18pLCBhcmMpIDogcGFkQW5nbGU7XG4gIH07XG5cbiAgYXJjLmNvbnRleHQgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoKGNvbnRleHQgPSBfID09IG51bGwgPyBudWxsIDogXyksIGFyYykgOiBjb250ZXh0O1xuICB9O1xuXG4gIHJldHVybiBhcmM7XG59XG4iLCAiZXhwb3J0IHZhciBzbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeCkge1xuICByZXR1cm4gdHlwZW9mIHggPT09IFwib2JqZWN0XCIgJiYgXCJsZW5ndGhcIiBpbiB4XG4gICAgPyB4IC8vIEFycmF5LCBUeXBlZEFycmF5LCBOb2RlTGlzdCwgYXJyYXktbGlrZVxuICAgIDogQXJyYXkuZnJvbSh4KTsgLy8gTWFwLCBTZXQsIGl0ZXJhYmxlLCBzdHJpbmcsIG9yIGFueXRoaW5nIGVsc2Vcbn1cbiIsICJmdW5jdGlvbiBMaW5lYXIoY29udGV4dCkge1xuICB0aGlzLl9jb250ZXh0ID0gY29udGV4dDtcbn1cblxuTGluZWFyLnByb3RvdHlwZSA9IHtcbiAgYXJlYVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl9saW5lID0gMDtcbiAgfSxcbiAgYXJlYUVuZDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5fbGluZSA9IE5hTjtcbiAgfSxcbiAgbGluZVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl9wb2ludCA9IDA7XG4gIH0sXG4gIGxpbmVFbmQ6IGZ1bmN0aW9uKCkge1xuICAgIGlmICh0aGlzLl9saW5lIHx8ICh0aGlzLl9saW5lICE9PSAwICYmIHRoaXMuX3BvaW50ID09PSAxKSkgdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTtcbiAgICB0aGlzLl9saW5lID0gMSAtIHRoaXMuX2xpbmU7XG4gIH0sXG4gIHBvaW50OiBmdW5jdGlvbih4LCB5KSB7XG4gICAgeCA9ICt4LCB5ID0gK3k7XG4gICAgc3dpdGNoICh0aGlzLl9wb2ludCkge1xuICAgICAgY2FzZSAwOiB0aGlzLl9wb2ludCA9IDE7IHRoaXMuX2xpbmUgPyB0aGlzLl9jb250ZXh0LmxpbmVUbyh4LCB5KSA6IHRoaXMuX2NvbnRleHQubW92ZVRvKHgsIHkpOyBicmVhaztcbiAgICAgIGNhc2UgMTogdGhpcy5fcG9pbnQgPSAyOyAvLyBwcm9jZWVkXG4gICAgICBkZWZhdWx0OiB0aGlzLl9jb250ZXh0LmxpbmVUbyh4LCB5KTsgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihjb250ZXh0KSB7XG4gIHJldHVybiBuZXcgTGluZWFyKGNvbnRleHQpO1xufVxuIiwgImV4cG9ydCBmdW5jdGlvbiB4KHApIHtcbiAgcmV0dXJuIHBbMF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB5KHApIHtcbiAgcmV0dXJuIHBbMV07XG59XG4iLCAiaW1wb3J0IHtwYXRofSBmcm9tIFwiZDMtcGF0aFwiO1xuaW1wb3J0IGFycmF5IGZyb20gXCIuL2FycmF5LmpzXCI7XG5pbXBvcnQgY29uc3RhbnQgZnJvbSBcIi4vY29uc3RhbnQuanNcIjtcbmltcG9ydCBjdXJ2ZUxpbmVhciBmcm9tIFwiLi9jdXJ2ZS9saW5lYXIuanNcIjtcbmltcG9ydCB7eCBhcyBwb2ludFgsIHkgYXMgcG9pbnRZfSBmcm9tIFwiLi9wb2ludC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih4LCB5KSB7XG4gIHZhciBkZWZpbmVkID0gY29uc3RhbnQodHJ1ZSksXG4gICAgICBjb250ZXh0ID0gbnVsbCxcbiAgICAgIGN1cnZlID0gY3VydmVMaW5lYXIsXG4gICAgICBvdXRwdXQgPSBudWxsO1xuXG4gIHggPSB0eXBlb2YgeCA9PT0gXCJmdW5jdGlvblwiID8geCA6ICh4ID09PSB1bmRlZmluZWQpID8gcG9pbnRYIDogY29uc3RhbnQoeCk7XG4gIHkgPSB0eXBlb2YgeSA9PT0gXCJmdW5jdGlvblwiID8geSA6ICh5ID09PSB1bmRlZmluZWQpID8gcG9pbnRZIDogY29uc3RhbnQoeSk7XG5cbiAgZnVuY3Rpb24gbGluZShkYXRhKSB7XG4gICAgdmFyIGksXG4gICAgICAgIG4gPSAoZGF0YSA9IGFycmF5KGRhdGEpKS5sZW5ndGgsXG4gICAgICAgIGQsXG4gICAgICAgIGRlZmluZWQwID0gZmFsc2UsXG4gICAgICAgIGJ1ZmZlcjtcblxuICAgIGlmIChjb250ZXh0ID09IG51bGwpIG91dHB1dCA9IGN1cnZlKGJ1ZmZlciA9IHBhdGgoKSk7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDw9IG47ICsraSkge1xuICAgICAgaWYgKCEoaSA8IG4gJiYgZGVmaW5lZChkID0gZGF0YVtpXSwgaSwgZGF0YSkpID09PSBkZWZpbmVkMCkge1xuICAgICAgICBpZiAoZGVmaW5lZDAgPSAhZGVmaW5lZDApIG91dHB1dC5saW5lU3RhcnQoKTtcbiAgICAgICAgZWxzZSBvdXRwdXQubGluZUVuZCgpO1xuICAgICAgfVxuICAgICAgaWYgKGRlZmluZWQwKSBvdXRwdXQucG9pbnQoK3goZCwgaSwgZGF0YSksICt5KGQsIGksIGRhdGEpKTtcbiAgICB9XG5cbiAgICBpZiAoYnVmZmVyKSByZXR1cm4gb3V0cHV0ID0gbnVsbCwgYnVmZmVyICsgXCJcIiB8fCBudWxsO1xuICB9XG5cbiAgbGluZS54ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHggPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCtfKSwgbGluZSkgOiB4O1xuICB9O1xuXG4gIGxpbmUueSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh5ID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCgrXyksIGxpbmUpIDogeTtcbiAgfTtcblxuICBsaW5lLmRlZmluZWQgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoZGVmaW5lZCA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoISFfKSwgbGluZSkgOiBkZWZpbmVkO1xuICB9O1xuXG4gIGxpbmUuY3VydmUgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoY3VydmUgPSBfLCBjb250ZXh0ICE9IG51bGwgJiYgKG91dHB1dCA9IGN1cnZlKGNvbnRleHQpKSwgbGluZSkgOiBjdXJ2ZTtcbiAgfTtcblxuICBsaW5lLmNvbnRleHQgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoXyA9PSBudWxsID8gY29udGV4dCA9IG91dHB1dCA9IG51bGwgOiBvdXRwdXQgPSBjdXJ2ZShjb250ZXh0ID0gXyksIGxpbmUpIDogY29udGV4dDtcbiAgfTtcblxuICByZXR1cm4gbGluZTtcbn1cbiIsICJpbXBvcnQgY3VydmVMaW5lYXIgZnJvbSBcIi4vbGluZWFyLmpzXCI7XG5cbmV4cG9ydCB2YXIgY3VydmVSYWRpYWxMaW5lYXIgPSBjdXJ2ZVJhZGlhbChjdXJ2ZUxpbmVhcik7XG5cbmZ1bmN0aW9uIFJhZGlhbChjdXJ2ZSkge1xuICB0aGlzLl9jdXJ2ZSA9IGN1cnZlO1xufVxuXG5SYWRpYWwucHJvdG90eXBlID0ge1xuICBhcmVhU3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuX2N1cnZlLmFyZWFTdGFydCgpO1xuICB9LFxuICBhcmVhRW5kOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl9jdXJ2ZS5hcmVhRW5kKCk7XG4gIH0sXG4gIGxpbmVTdGFydDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5fY3VydmUubGluZVN0YXJ0KCk7XG4gIH0sXG4gIGxpbmVFbmQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuX2N1cnZlLmxpbmVFbmQoKTtcbiAgfSxcbiAgcG9pbnQ6IGZ1bmN0aW9uKGEsIHIpIHtcbiAgICB0aGlzLl9jdXJ2ZS5wb2ludChyICogTWF0aC5zaW4oYSksIHIgKiAtTWF0aC5jb3MoYSkpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjdXJ2ZVJhZGlhbChjdXJ2ZSkge1xuXG4gIGZ1bmN0aW9uIHJhZGlhbChjb250ZXh0KSB7XG4gICAgcmV0dXJuIG5ldyBSYWRpYWwoY3VydmUoY29udGV4dCkpO1xuICB9XG5cbiAgcmFkaWFsLl9jdXJ2ZSA9IGN1cnZlO1xuXG4gIHJldHVybiByYWRpYWw7XG59XG4iLCAiaW1wb3J0IGN1cnZlUmFkaWFsLCB7Y3VydmVSYWRpYWxMaW5lYXJ9IGZyb20gXCIuL2N1cnZlL3JhZGlhbC5qc1wiO1xuaW1wb3J0IGxpbmUgZnJvbSBcIi4vbGluZS5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gbGluZVJhZGlhbChsKSB7XG4gIHZhciBjID0gbC5jdXJ2ZTtcblxuICBsLmFuZ2xlID0gbC54LCBkZWxldGUgbC54O1xuICBsLnJhZGl1cyA9IGwueSwgZGVsZXRlIGwueTtcblxuICBsLmN1cnZlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gYyhjdXJ2ZVJhZGlhbChfKSkgOiBjKCkuX2N1cnZlO1xuICB9O1xuXG4gIHJldHVybiBsO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGxpbmVSYWRpYWwobGluZSgpLmN1cnZlKGN1cnZlUmFkaWFsTGluZWFyKSk7XG59XG4iLCAiaW1wb3J0IHtwYXRofSBmcm9tIFwiZDMtcGF0aFwiO1xuaW1wb3J0IHtzbGljZX0gZnJvbSBcIi4uL2FycmF5LmpzXCI7XG5pbXBvcnQgY29uc3RhbnQgZnJvbSBcIi4uL2NvbnN0YW50LmpzXCI7XG5pbXBvcnQge3ggYXMgcG9pbnRYLCB5IGFzIHBvaW50WX0gZnJvbSBcIi4uL3BvaW50LmpzXCI7XG5pbXBvcnQgcG9pbnRSYWRpYWwgZnJvbSBcIi4uL3BvaW50UmFkaWFsLmpzXCI7XG5cbmZ1bmN0aW9uIGxpbmtTb3VyY2UoZCkge1xuICByZXR1cm4gZC5zb3VyY2U7XG59XG5cbmZ1bmN0aW9uIGxpbmtUYXJnZXQoZCkge1xuICByZXR1cm4gZC50YXJnZXQ7XG59XG5cbmZ1bmN0aW9uIGxpbmsoY3VydmUpIHtcbiAgdmFyIHNvdXJjZSA9IGxpbmtTb3VyY2UsXG4gICAgICB0YXJnZXQgPSBsaW5rVGFyZ2V0LFxuICAgICAgeCA9IHBvaW50WCxcbiAgICAgIHkgPSBwb2ludFksXG4gICAgICBjb250ZXh0ID0gbnVsbDtcblxuICBmdW5jdGlvbiBsaW5rKCkge1xuICAgIHZhciBidWZmZXIsIGFyZ3YgPSBzbGljZS5jYWxsKGFyZ3VtZW50cyksIHMgPSBzb3VyY2UuYXBwbHkodGhpcywgYXJndiksIHQgPSB0YXJnZXQuYXBwbHkodGhpcywgYXJndik7XG4gICAgaWYgKCFjb250ZXh0KSBjb250ZXh0ID0gYnVmZmVyID0gcGF0aCgpO1xuICAgIGN1cnZlKGNvbnRleHQsICt4LmFwcGx5KHRoaXMsIChhcmd2WzBdID0gcywgYXJndikpLCAreS5hcHBseSh0aGlzLCBhcmd2KSwgK3guYXBwbHkodGhpcywgKGFyZ3ZbMF0gPSB0LCBhcmd2KSksICt5LmFwcGx5KHRoaXMsIGFyZ3YpKTtcbiAgICBpZiAoYnVmZmVyKSByZXR1cm4gY29udGV4dCA9IG51bGwsIGJ1ZmZlciArIFwiXCIgfHwgbnVsbDtcbiAgfVxuXG4gIGxpbmsuc291cmNlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHNvdXJjZSA9IF8sIGxpbmspIDogc291cmNlO1xuICB9O1xuXG4gIGxpbmsudGFyZ2V0ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHRhcmdldCA9IF8sIGxpbmspIDogdGFyZ2V0O1xuICB9O1xuXG4gIGxpbmsueCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh4ID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCgrXyksIGxpbmspIDogeDtcbiAgfTtcblxuICBsaW5rLnkgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoeSA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoK18pLCBsaW5rKSA6IHk7XG4gIH07XG5cbiAgbGluay5jb250ZXh0ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKChjb250ZXh0ID0gXyA9PSBudWxsID8gbnVsbCA6IF8pLCBsaW5rKSA6IGNvbnRleHQ7XG4gIH07XG5cbiAgcmV0dXJuIGxpbms7XG59XG5cbmZ1bmN0aW9uIGN1cnZlSG9yaXpvbnRhbChjb250ZXh0LCB4MCwgeTAsIHgxLCB5MSkge1xuICBjb250ZXh0Lm1vdmVUbyh4MCwgeTApO1xuICBjb250ZXh0LmJlemllckN1cnZlVG8oeDAgPSAoeDAgKyB4MSkgLyAyLCB5MCwgeDAsIHkxLCB4MSwgeTEpO1xufVxuXG5mdW5jdGlvbiBjdXJ2ZVZlcnRpY2FsKGNvbnRleHQsIHgwLCB5MCwgeDEsIHkxKSB7XG4gIGNvbnRleHQubW92ZVRvKHgwLCB5MCk7XG4gIGNvbnRleHQuYmV6aWVyQ3VydmVUbyh4MCwgeTAgPSAoeTAgKyB5MSkgLyAyLCB4MSwgeTAsIHgxLCB5MSk7XG59XG5cbmZ1bmN0aW9uIGN1cnZlUmFkaWFsKGNvbnRleHQsIHgwLCB5MCwgeDEsIHkxKSB7XG4gIHZhciBwMCA9IHBvaW50UmFkaWFsKHgwLCB5MCksXG4gICAgICBwMSA9IHBvaW50UmFkaWFsKHgwLCB5MCA9ICh5MCArIHkxKSAvIDIpLFxuICAgICAgcDIgPSBwb2ludFJhZGlhbCh4MSwgeTApLFxuICAgICAgcDMgPSBwb2ludFJhZGlhbCh4MSwgeTEpO1xuICBjb250ZXh0Lm1vdmVUbyhwMFswXSwgcDBbMV0pO1xuICBjb250ZXh0LmJlemllckN1cnZlVG8ocDFbMF0sIHAxWzFdLCBwMlswXSwgcDJbMV0sIHAzWzBdLCBwM1sxXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsaW5rSG9yaXpvbnRhbCgpIHtcbiAgcmV0dXJuIGxpbmsoY3VydmVIb3Jpem9udGFsKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmtWZXJ0aWNhbCgpIHtcbiAgcmV0dXJuIGxpbmsoY3VydmVWZXJ0aWNhbCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsaW5rUmFkaWFsKCkge1xuICB2YXIgbCA9IGxpbmsoY3VydmVSYWRpYWwpO1xuICBsLmFuZ2xlID0gbC54LCBkZWxldGUgbC54O1xuICBsLnJhZGl1cyA9IGwueSwgZGVsZXRlIGwueTtcbiAgcmV0dXJuIGw7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHBvaW50KHRoYXQsIHgsIHkpIHtcbiAgdGhhdC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKFxuICAgICgyICogdGhhdC5feDAgKyB0aGF0Ll94MSkgLyAzLFxuICAgICgyICogdGhhdC5feTAgKyB0aGF0Ll95MSkgLyAzLFxuICAgICh0aGF0Ll94MCArIDIgKiB0aGF0Ll94MSkgLyAzLFxuICAgICh0aGF0Ll95MCArIDIgKiB0aGF0Ll95MSkgLyAzLFxuICAgICh0aGF0Ll94MCArIDQgKiB0aGF0Ll94MSArIHgpIC8gNixcbiAgICAodGhhdC5feTAgKyA0ICogdGhhdC5feTEgKyB5KSAvIDZcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEJhc2lzKGNvbnRleHQpIHtcbiAgdGhpcy5fY29udGV4dCA9IGNvbnRleHQ7XG59XG5cbkJhc2lzLnByb3RvdHlwZSA9IHtcbiAgYXJlYVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl9saW5lID0gMDtcbiAgfSxcbiAgYXJlYUVuZDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5fbGluZSA9IE5hTjtcbiAgfSxcbiAgbGluZVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl94MCA9IHRoaXMuX3gxID1cbiAgICB0aGlzLl95MCA9IHRoaXMuX3kxID0gTmFOO1xuICAgIHRoaXMuX3BvaW50ID0gMDtcbiAgfSxcbiAgbGluZUVuZDogZnVuY3Rpb24oKSB7XG4gICAgc3dpdGNoICh0aGlzLl9wb2ludCkge1xuICAgICAgY2FzZSAzOiBwb2ludCh0aGlzLCB0aGlzLl94MSwgdGhpcy5feTEpOyAvLyBwcm9jZWVkXG4gICAgICBjYXNlIDI6IHRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gxLCB0aGlzLl95MSk7IGJyZWFrO1xuICAgIH1cbiAgICBpZiAodGhpcy5fbGluZSB8fCAodGhpcy5fbGluZSAhPT0gMCAmJiB0aGlzLl9wb2ludCA9PT0gMSkpIHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7XG4gICAgdGhpcy5fbGluZSA9IDEgLSB0aGlzLl9saW5lO1xuICB9LFxuICBwb2ludDogZnVuY3Rpb24oeCwgeSkge1xuICAgIHggPSAreCwgeSA9ICt5O1xuICAgIHN3aXRjaCAodGhpcy5fcG9pbnQpIHtcbiAgICAgIGNhc2UgMDogdGhpcy5fcG9pbnQgPSAxOyB0aGlzLl9saW5lID8gdGhpcy5fY29udGV4dC5saW5lVG8oeCwgeSkgOiB0aGlzLl9jb250ZXh0Lm1vdmVUbyh4LCB5KTsgYnJlYWs7XG4gICAgICBjYXNlIDE6IHRoaXMuX3BvaW50ID0gMjsgYnJlYWs7XG4gICAgICBjYXNlIDI6IHRoaXMuX3BvaW50ID0gMzsgdGhpcy5fY29udGV4dC5saW5lVG8oKDUgKiB0aGlzLl94MCArIHRoaXMuX3gxKSAvIDYsICg1ICogdGhpcy5feTAgKyB0aGlzLl95MSkgLyA2KTsgLy8gcHJvY2VlZFxuICAgICAgZGVmYXVsdDogcG9pbnQodGhpcywgeCwgeSk7IGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLl94MCA9IHRoaXMuX3gxLCB0aGlzLl94MSA9IHg7XG4gICAgdGhpcy5feTAgPSB0aGlzLl95MSwgdGhpcy5feTEgPSB5O1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihjb250ZXh0KSB7XG4gIHJldHVybiBuZXcgQmFzaXMoY29udGV4dCk7XG59XG4iLCAiaW1wb3J0IHtCYXNpc30gZnJvbSBcIi4vYmFzaXMuanNcIjtcblxuZnVuY3Rpb24gQnVuZGxlKGNvbnRleHQsIGJldGEpIHtcbiAgdGhpcy5fYmFzaXMgPSBuZXcgQmFzaXMoY29udGV4dCk7XG4gIHRoaXMuX2JldGEgPSBiZXRhO1xufVxuXG5CdW5kbGUucHJvdG90eXBlID0ge1xuICBsaW5lU3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuX3ggPSBbXTtcbiAgICB0aGlzLl95ID0gW107XG4gICAgdGhpcy5fYmFzaXMubGluZVN0YXJ0KCk7XG4gIH0sXG4gIGxpbmVFbmQ6IGZ1bmN0aW9uKCkge1xuICAgIHZhciB4ID0gdGhpcy5feCxcbiAgICAgICAgeSA9IHRoaXMuX3ksXG4gICAgICAgIGogPSB4Lmxlbmd0aCAtIDE7XG5cbiAgICBpZiAoaiA+IDApIHtcbiAgICAgIHZhciB4MCA9IHhbMF0sXG4gICAgICAgICAgeTAgPSB5WzBdLFxuICAgICAgICAgIGR4ID0geFtqXSAtIHgwLFxuICAgICAgICAgIGR5ID0geVtqXSAtIHkwLFxuICAgICAgICAgIGkgPSAtMSxcbiAgICAgICAgICB0O1xuXG4gICAgICB3aGlsZSAoKytpIDw9IGopIHtcbiAgICAgICAgdCA9IGkgLyBqO1xuICAgICAgICB0aGlzLl9iYXNpcy5wb2ludChcbiAgICAgICAgICB0aGlzLl9iZXRhICogeFtpXSArICgxIC0gdGhpcy5fYmV0YSkgKiAoeDAgKyB0ICogZHgpLFxuICAgICAgICAgIHRoaXMuX2JldGEgKiB5W2ldICsgKDEgLSB0aGlzLl9iZXRhKSAqICh5MCArIHQgKiBkeSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl94ID0gdGhpcy5feSA9IG51bGw7XG4gICAgdGhpcy5fYmFzaXMubGluZUVuZCgpO1xuICB9LFxuICBwb2ludDogZnVuY3Rpb24oeCwgeSkge1xuICAgIHRoaXMuX3gucHVzaCgreCk7XG4gICAgdGhpcy5feS5wdXNoKCt5KTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgKGZ1bmN0aW9uIGN1c3RvbShiZXRhKSB7XG5cbiAgZnVuY3Rpb24gYnVuZGxlKGNvbnRleHQpIHtcbiAgICByZXR1cm4gYmV0YSA9PT0gMSA/IG5ldyBCYXNpcyhjb250ZXh0KSA6IG5ldyBCdW5kbGUoY29udGV4dCwgYmV0YSk7XG4gIH1cblxuICBidW5kbGUuYmV0YSA9IGZ1bmN0aW9uKGJldGEpIHtcbiAgICByZXR1cm4gY3VzdG9tKCtiZXRhKTtcbiAgfTtcblxuICByZXR1cm4gYnVuZGxlO1xufSkoMC44NSk7XG4iLCAiZXhwb3J0IGRlZmF1bHQgeCA9PiAoKSA9PiB4O1xuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFpvb21FdmVudCh0eXBlLCB7XG4gIHNvdXJjZUV2ZW50LFxuICB0YXJnZXQsXG4gIHRyYW5zZm9ybSxcbiAgZGlzcGF0Y2hcbn0pIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGhpcywge1xuICAgIHR5cGU6IHt2YWx1ZTogdHlwZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlfSxcbiAgICBzb3VyY2VFdmVudDoge3ZhbHVlOiBzb3VyY2VFdmVudCwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlfSxcbiAgICB0YXJnZXQ6IHt2YWx1ZTogdGFyZ2V0LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9LFxuICAgIHRyYW5zZm9ybToge3ZhbHVlOiB0cmFuc2Zvcm0sIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0sXG4gICAgXzoge3ZhbHVlOiBkaXNwYXRjaH1cbiAgfSk7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIFRyYW5zZm9ybShrLCB4LCB5KSB7XG4gIHRoaXMuayA9IGs7XG4gIHRoaXMueCA9IHg7XG4gIHRoaXMueSA9IHk7XG59XG5cblRyYW5zZm9ybS5wcm90b3R5cGUgPSB7XG4gIGNvbnN0cnVjdG9yOiBUcmFuc2Zvcm0sXG4gIHNjYWxlOiBmdW5jdGlvbihrKSB7XG4gICAgcmV0dXJuIGsgPT09IDEgPyB0aGlzIDogbmV3IFRyYW5zZm9ybSh0aGlzLmsgKiBrLCB0aGlzLngsIHRoaXMueSk7XG4gIH0sXG4gIHRyYW5zbGF0ZTogZnVuY3Rpb24oeCwgeSkge1xuICAgIHJldHVybiB4ID09PSAwICYgeSA9PT0gMCA/IHRoaXMgOiBuZXcgVHJhbnNmb3JtKHRoaXMuaywgdGhpcy54ICsgdGhpcy5rICogeCwgdGhpcy55ICsgdGhpcy5rICogeSk7XG4gIH0sXG4gIGFwcGx5OiBmdW5jdGlvbihwb2ludCkge1xuICAgIHJldHVybiBbcG9pbnRbMF0gKiB0aGlzLmsgKyB0aGlzLngsIHBvaW50WzFdICogdGhpcy5rICsgdGhpcy55XTtcbiAgfSxcbiAgYXBwbHlYOiBmdW5jdGlvbih4KSB7XG4gICAgcmV0dXJuIHggKiB0aGlzLmsgKyB0aGlzLng7XG4gIH0sXG4gIGFwcGx5WTogZnVuY3Rpb24oeSkge1xuICAgIHJldHVybiB5ICogdGhpcy5rICsgdGhpcy55O1xuICB9LFxuICBpbnZlcnQ6IGZ1bmN0aW9uKGxvY2F0aW9uKSB7XG4gICAgcmV0dXJuIFsobG9jYXRpb25bMF0gLSB0aGlzLngpIC8gdGhpcy5rLCAobG9jYXRpb25bMV0gLSB0aGlzLnkpIC8gdGhpcy5rXTtcbiAgfSxcbiAgaW52ZXJ0WDogZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiAoeCAtIHRoaXMueCkgLyB0aGlzLms7XG4gIH0sXG4gIGludmVydFk6IGZ1bmN0aW9uKHkpIHtcbiAgICByZXR1cm4gKHkgLSB0aGlzLnkpIC8gdGhpcy5rO1xuICB9LFxuICByZXNjYWxlWDogZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiB4LmNvcHkoKS5kb21haW4oeC5yYW5nZSgpLm1hcCh0aGlzLmludmVydFgsIHRoaXMpLm1hcCh4LmludmVydCwgeCkpO1xuICB9LFxuICByZXNjYWxlWTogZnVuY3Rpb24oeSkge1xuICAgIHJldHVybiB5LmNvcHkoKS5kb21haW4oeS5yYW5nZSgpLm1hcCh0aGlzLmludmVydFksIHRoaXMpLm1hcCh5LmludmVydCwgeSkpO1xuICB9LFxuICB0b1N0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIFwidHJhbnNsYXRlKFwiICsgdGhpcy54ICsgXCIsXCIgKyB0aGlzLnkgKyBcIikgc2NhbGUoXCIgKyB0aGlzLmsgKyBcIilcIjtcbiAgfVxufTtcblxuZXhwb3J0IHZhciBpZGVudGl0eSA9IG5ldyBUcmFuc2Zvcm0oMSwgMCwgMCk7XG5cbnRyYW5zZm9ybS5wcm90b3R5cGUgPSBUcmFuc2Zvcm0ucHJvdG90eXBlO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0cmFuc2Zvcm0obm9kZSkge1xuICB3aGlsZSAoIW5vZGUuX196b29tKSBpZiAoIShub2RlID0gbm9kZS5wYXJlbnROb2RlKSkgcmV0dXJuIGlkZW50aXR5O1xuICByZXR1cm4gbm9kZS5fX3pvb207XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIG5vcHJvcGFnYXRpb24oZXZlbnQpIHtcbiAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGV2ZW50KSB7XG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xufVxuIiwgImltcG9ydCB7ZGlzcGF0Y2h9IGZyb20gXCJkMy1kaXNwYXRjaFwiO1xuaW1wb3J0IHtkcmFnRGlzYWJsZSwgZHJhZ0VuYWJsZX0gZnJvbSBcImQzLWRyYWdcIjtcbmltcG9ydCB7aW50ZXJwb2xhdGVab29tfSBmcm9tIFwiZDMtaW50ZXJwb2xhdGVcIjtcbmltcG9ydCB7c2VsZWN0LCBwb2ludGVyfSBmcm9tIFwiZDMtc2VsZWN0aW9uXCI7XG5pbXBvcnQge2ludGVycnVwdH0gZnJvbSBcImQzLXRyYW5zaXRpb25cIjtcbmltcG9ydCBjb25zdGFudCBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuaW1wb3J0IFpvb21FdmVudCBmcm9tIFwiLi9ldmVudC5qc1wiO1xuaW1wb3J0IHtUcmFuc2Zvcm0sIGlkZW50aXR5fSBmcm9tIFwiLi90cmFuc2Zvcm0uanNcIjtcbmltcG9ydCBub2V2ZW50LCB7bm9wcm9wYWdhdGlvbn0gZnJvbSBcIi4vbm9ldmVudC5qc1wiO1xuXG4vLyBJZ25vcmUgcmlnaHQtY2xpY2ssIHNpbmNlIHRoYXQgc2hvdWxkIG9wZW4gdGhlIGNvbnRleHQgbWVudS5cbi8vIGV4Y2VwdCBmb3IgcGluY2gtdG8tem9vbSwgd2hpY2ggaXMgc2VudCBhcyBhIHdoZWVsK2N0cmxLZXkgZXZlbnRcbmZ1bmN0aW9uIGRlZmF1bHRGaWx0ZXIoZXZlbnQpIHtcbiAgcmV0dXJuICghZXZlbnQuY3RybEtleSB8fCBldmVudC50eXBlID09PSAnd2hlZWwnKSAmJiAhZXZlbnQuYnV0dG9uO1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0RXh0ZW50KCkge1xuICB2YXIgZSA9IHRoaXM7XG4gIGlmIChlIGluc3RhbmNlb2YgU1ZHRWxlbWVudCkge1xuICAgIGUgPSBlLm93bmVyU1ZHRWxlbWVudCB8fCBlO1xuICAgIGlmIChlLmhhc0F0dHJpYnV0ZShcInZpZXdCb3hcIikpIHtcbiAgICAgIGUgPSBlLnZpZXdCb3guYmFzZVZhbDtcbiAgICAgIHJldHVybiBbW2UueCwgZS55XSwgW2UueCArIGUud2lkdGgsIGUueSArIGUuaGVpZ2h0XV07XG4gICAgfVxuICAgIHJldHVybiBbWzAsIDBdLCBbZS53aWR0aC5iYXNlVmFsLnZhbHVlLCBlLmhlaWdodC5iYXNlVmFsLnZhbHVlXV07XG4gIH1cbiAgcmV0dXJuIFtbMCwgMF0sIFtlLmNsaWVudFdpZHRoLCBlLmNsaWVudEhlaWdodF1dO1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0VHJhbnNmb3JtKCkge1xuICByZXR1cm4gdGhpcy5fX3pvb20gfHwgaWRlbnRpdHk7XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRXaGVlbERlbHRhKGV2ZW50KSB7XG4gIHJldHVybiAtZXZlbnQuZGVsdGFZICogKGV2ZW50LmRlbHRhTW9kZSA9PT0gMSA/IDAuMDUgOiBldmVudC5kZWx0YU1vZGUgPyAxIDogMC4wMDIpICogKGV2ZW50LmN0cmxLZXkgPyAxMCA6IDEpO1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0VG91Y2hhYmxlKCkge1xuICByZXR1cm4gbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzIHx8IChcIm9udG91Y2hzdGFydFwiIGluIHRoaXMpO1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0Q29uc3RyYWluKHRyYW5zZm9ybSwgZXh0ZW50LCB0cmFuc2xhdGVFeHRlbnQpIHtcbiAgdmFyIGR4MCA9IHRyYW5zZm9ybS5pbnZlcnRYKGV4dGVudFswXVswXSkgLSB0cmFuc2xhdGVFeHRlbnRbMF1bMF0sXG4gICAgICBkeDEgPSB0cmFuc2Zvcm0uaW52ZXJ0WChleHRlbnRbMV1bMF0pIC0gdHJhbnNsYXRlRXh0ZW50WzFdWzBdLFxuICAgICAgZHkwID0gdHJhbnNmb3JtLmludmVydFkoZXh0ZW50WzBdWzFdKSAtIHRyYW5zbGF0ZUV4dGVudFswXVsxXSxcbiAgICAgIGR5MSA9IHRyYW5zZm9ybS5pbnZlcnRZKGV4dGVudFsxXVsxXSkgLSB0cmFuc2xhdGVFeHRlbnRbMV1bMV07XG4gIHJldHVybiB0cmFuc2Zvcm0udHJhbnNsYXRlKFxuICAgIGR4MSA+IGR4MCA/IChkeDAgKyBkeDEpIC8gMiA6IE1hdGgubWluKDAsIGR4MCkgfHwgTWF0aC5tYXgoMCwgZHgxKSxcbiAgICBkeTEgPiBkeTAgPyAoZHkwICsgZHkxKSAvIDIgOiBNYXRoLm1pbigwLCBkeTApIHx8IE1hdGgubWF4KDAsIGR5MSlcbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHZhciBmaWx0ZXIgPSBkZWZhdWx0RmlsdGVyLFxuICAgICAgZXh0ZW50ID0gZGVmYXVsdEV4dGVudCxcbiAgICAgIGNvbnN0cmFpbiA9IGRlZmF1bHRDb25zdHJhaW4sXG4gICAgICB3aGVlbERlbHRhID0gZGVmYXVsdFdoZWVsRGVsdGEsXG4gICAgICB0b3VjaGFibGUgPSBkZWZhdWx0VG91Y2hhYmxlLFxuICAgICAgc2NhbGVFeHRlbnQgPSBbMCwgSW5maW5pdHldLFxuICAgICAgdHJhbnNsYXRlRXh0ZW50ID0gW1stSW5maW5pdHksIC1JbmZpbml0eV0sIFtJbmZpbml0eSwgSW5maW5pdHldXSxcbiAgICAgIGR1cmF0aW9uID0gMjUwLFxuICAgICAgaW50ZXJwb2xhdGUgPSBpbnRlcnBvbGF0ZVpvb20sXG4gICAgICBsaXN0ZW5lcnMgPSBkaXNwYXRjaChcInN0YXJ0XCIsIFwiem9vbVwiLCBcImVuZFwiKSxcbiAgICAgIHRvdWNoc3RhcnRpbmcsXG4gICAgICB0b3VjaGZpcnN0LFxuICAgICAgdG91Y2hlbmRpbmcsXG4gICAgICB0b3VjaERlbGF5ID0gNTAwLFxuICAgICAgd2hlZWxEZWxheSA9IDE1MCxcbiAgICAgIGNsaWNrRGlzdGFuY2UyID0gMCxcbiAgICAgIHRhcERpc3RhbmNlID0gMTA7XG5cbiAgZnVuY3Rpb24gem9vbShzZWxlY3Rpb24pIHtcbiAgICBzZWxlY3Rpb25cbiAgICAgICAgLnByb3BlcnR5KFwiX196b29tXCIsIGRlZmF1bHRUcmFuc2Zvcm0pXG4gICAgICAgIC5vbihcIndoZWVsLnpvb21cIiwgd2hlZWxlZClcbiAgICAgICAgLm9uKFwibW91c2Vkb3duLnpvb21cIiwgbW91c2Vkb3duZWQpXG4gICAgICAgIC5vbihcImRibGNsaWNrLnpvb21cIiwgZGJsY2xpY2tlZClcbiAgICAgIC5maWx0ZXIodG91Y2hhYmxlKVxuICAgICAgICAub24oXCJ0b3VjaHN0YXJ0Lnpvb21cIiwgdG91Y2hzdGFydGVkKVxuICAgICAgICAub24oXCJ0b3VjaG1vdmUuem9vbVwiLCB0b3VjaG1vdmVkKVxuICAgICAgICAub24oXCJ0b3VjaGVuZC56b29tIHRvdWNoY2FuY2VsLnpvb21cIiwgdG91Y2hlbmRlZClcbiAgICAgICAgLnN0eWxlKFwiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yXCIsIFwicmdiYSgwLDAsMCwwKVwiKTtcbiAgfVxuXG4gIHpvb20udHJhbnNmb3JtID0gZnVuY3Rpb24oY29sbGVjdGlvbiwgdHJhbnNmb3JtLCBwb2ludCwgZXZlbnQpIHtcbiAgICB2YXIgc2VsZWN0aW9uID0gY29sbGVjdGlvbi5zZWxlY3Rpb24gPyBjb2xsZWN0aW9uLnNlbGVjdGlvbigpIDogY29sbGVjdGlvbjtcbiAgICBzZWxlY3Rpb24ucHJvcGVydHkoXCJfX3pvb21cIiwgZGVmYXVsdFRyYW5zZm9ybSk7XG4gICAgaWYgKGNvbGxlY3Rpb24gIT09IHNlbGVjdGlvbikge1xuICAgICAgc2NoZWR1bGUoY29sbGVjdGlvbiwgdHJhbnNmb3JtLCBwb2ludCwgZXZlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZWxlY3Rpb24uaW50ZXJydXB0KCkuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgZ2VzdHVyZSh0aGlzLCBhcmd1bWVudHMpXG4gICAgICAgICAgLmV2ZW50KGV2ZW50KVxuICAgICAgICAgIC5zdGFydCgpXG4gICAgICAgICAgLnpvb20obnVsbCwgdHlwZW9mIHRyYW5zZm9ybSA9PT0gXCJmdW5jdGlvblwiID8gdHJhbnNmb3JtLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgOiB0cmFuc2Zvcm0pXG4gICAgICAgICAgLmVuZCgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIHpvb20uc2NhbGVCeSA9IGZ1bmN0aW9uKHNlbGVjdGlvbiwgaywgcCwgZXZlbnQpIHtcbiAgICB6b29tLnNjYWxlVG8oc2VsZWN0aW9uLCBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBrMCA9IHRoaXMuX196b29tLmssXG4gICAgICAgICAgazEgPSB0eXBlb2YgayA9PT0gXCJmdW5jdGlvblwiID8gay5hcHBseSh0aGlzLCBhcmd1bWVudHMpIDogaztcbiAgICAgIHJldHVybiBrMCAqIGsxO1xuICAgIH0sIHAsIGV2ZW50KTtcbiAgfTtcblxuICB6b29tLnNjYWxlVG8gPSBmdW5jdGlvbihzZWxlY3Rpb24sIGssIHAsIGV2ZW50KSB7XG4gICAgem9vbS50cmFuc2Zvcm0oc2VsZWN0aW9uLCBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBlID0gZXh0ZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyksXG4gICAgICAgICAgdDAgPSB0aGlzLl9fem9vbSxcbiAgICAgICAgICBwMCA9IHAgPT0gbnVsbCA/IGNlbnRyb2lkKGUpIDogdHlwZW9mIHAgPT09IFwiZnVuY3Rpb25cIiA/IHAuYXBwbHkodGhpcywgYXJndW1lbnRzKSA6IHAsXG4gICAgICAgICAgcDEgPSB0MC5pbnZlcnQocDApLFxuICAgICAgICAgIGsxID0gdHlwZW9mIGsgPT09IFwiZnVuY3Rpb25cIiA/IGsuYXBwbHkodGhpcywgYXJndW1lbnRzKSA6IGs7XG4gICAgICByZXR1cm4gY29uc3RyYWluKHRyYW5zbGF0ZShzY2FsZSh0MCwgazEpLCBwMCwgcDEpLCBlLCB0cmFuc2xhdGVFeHRlbnQpO1xuICAgIH0sIHAsIGV2ZW50KTtcbiAgfTtcblxuICB6b29tLnRyYW5zbGF0ZUJ5ID0gZnVuY3Rpb24oc2VsZWN0aW9uLCB4LCB5LCBldmVudCkge1xuICAgIHpvb20udHJhbnNmb3JtKHNlbGVjdGlvbiwgZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gY29uc3RyYWluKHRoaXMuX196b29tLnRyYW5zbGF0ZShcbiAgICAgICAgdHlwZW9mIHggPT09IFwiZnVuY3Rpb25cIiA/IHguYXBwbHkodGhpcywgYXJndW1lbnRzKSA6IHgsXG4gICAgICAgIHR5cGVvZiB5ID09PSBcImZ1bmN0aW9uXCIgPyB5LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgOiB5XG4gICAgICApLCBleHRlbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKSwgdHJhbnNsYXRlRXh0ZW50KTtcbiAgICB9LCBudWxsLCBldmVudCk7XG4gIH07XG5cbiAgem9vbS50cmFuc2xhdGVUbyA9IGZ1bmN0aW9uKHNlbGVjdGlvbiwgeCwgeSwgcCwgZXZlbnQpIHtcbiAgICB6b29tLnRyYW5zZm9ybShzZWxlY3Rpb24sIGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGUgPSBleHRlbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKSxcbiAgICAgICAgICB0ID0gdGhpcy5fX3pvb20sXG4gICAgICAgICAgcDAgPSBwID09IG51bGwgPyBjZW50cm9pZChlKSA6IHR5cGVvZiBwID09PSBcImZ1bmN0aW9uXCIgPyBwLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgOiBwO1xuICAgICAgcmV0dXJuIGNvbnN0cmFpbihpZGVudGl0eS50cmFuc2xhdGUocDBbMF0sIHAwWzFdKS5zY2FsZSh0LmspLnRyYW5zbGF0ZShcbiAgICAgICAgdHlwZW9mIHggPT09IFwiZnVuY3Rpb25cIiA/IC14LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgOiAteCxcbiAgICAgICAgdHlwZW9mIHkgPT09IFwiZnVuY3Rpb25cIiA/IC15LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgOiAteVxuICAgICAgKSwgZSwgdHJhbnNsYXRlRXh0ZW50KTtcbiAgICB9LCBwLCBldmVudCk7XG4gIH07XG5cbiAgZnVuY3Rpb24gc2NhbGUodHJhbnNmb3JtLCBrKSB7XG4gICAgayA9IE1hdGgubWF4KHNjYWxlRXh0ZW50WzBdLCBNYXRoLm1pbihzY2FsZUV4dGVudFsxXSwgaykpO1xuICAgIHJldHVybiBrID09PSB0cmFuc2Zvcm0uayA/IHRyYW5zZm9ybSA6IG5ldyBUcmFuc2Zvcm0oaywgdHJhbnNmb3JtLngsIHRyYW5zZm9ybS55KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYW5zbGF0ZSh0cmFuc2Zvcm0sIHAwLCBwMSkge1xuICAgIHZhciB4ID0gcDBbMF0gLSBwMVswXSAqIHRyYW5zZm9ybS5rLCB5ID0gcDBbMV0gLSBwMVsxXSAqIHRyYW5zZm9ybS5rO1xuICAgIHJldHVybiB4ID09PSB0cmFuc2Zvcm0ueCAmJiB5ID09PSB0cmFuc2Zvcm0ueSA/IHRyYW5zZm9ybSA6IG5ldyBUcmFuc2Zvcm0odHJhbnNmb3JtLmssIHgsIHkpO1xuICB9XG5cbiAgZnVuY3Rpb24gY2VudHJvaWQoZXh0ZW50KSB7XG4gICAgcmV0dXJuIFsoK2V4dGVudFswXVswXSArICtleHRlbnRbMV1bMF0pIC8gMiwgKCtleHRlbnRbMF1bMV0gKyArZXh0ZW50WzFdWzFdKSAvIDJdO1xuICB9XG5cbiAgZnVuY3Rpb24gc2NoZWR1bGUodHJhbnNpdGlvbiwgdHJhbnNmb3JtLCBwb2ludCwgZXZlbnQpIHtcbiAgICB0cmFuc2l0aW9uXG4gICAgICAgIC5vbihcInN0YXJ0Lnpvb21cIiwgZnVuY3Rpb24oKSB7IGdlc3R1cmUodGhpcywgYXJndW1lbnRzKS5ldmVudChldmVudCkuc3RhcnQoKTsgfSlcbiAgICAgICAgLm9uKFwiaW50ZXJydXB0Lnpvb20gZW5kLnpvb21cIiwgZnVuY3Rpb24oKSB7IGdlc3R1cmUodGhpcywgYXJndW1lbnRzKS5ldmVudChldmVudCkuZW5kKCk7IH0pXG4gICAgICAgIC50d2VlbihcInpvb21cIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIHRoYXQgPSB0aGlzLFxuICAgICAgICAgICAgICBhcmdzID0gYXJndW1lbnRzLFxuICAgICAgICAgICAgICBnID0gZ2VzdHVyZSh0aGF0LCBhcmdzKS5ldmVudChldmVudCksXG4gICAgICAgICAgICAgIGUgPSBleHRlbnQuYXBwbHkodGhhdCwgYXJncyksXG4gICAgICAgICAgICAgIHAgPSBwb2ludCA9PSBudWxsID8gY2VudHJvaWQoZSkgOiB0eXBlb2YgcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHBvaW50LmFwcGx5KHRoYXQsIGFyZ3MpIDogcG9pbnQsXG4gICAgICAgICAgICAgIHcgPSBNYXRoLm1heChlWzFdWzBdIC0gZVswXVswXSwgZVsxXVsxXSAtIGVbMF1bMV0pLFxuICAgICAgICAgICAgICBhID0gdGhhdC5fX3pvb20sXG4gICAgICAgICAgICAgIGIgPSB0eXBlb2YgdHJhbnNmb3JtID09PSBcImZ1bmN0aW9uXCIgPyB0cmFuc2Zvcm0uYXBwbHkodGhhdCwgYXJncykgOiB0cmFuc2Zvcm0sXG4gICAgICAgICAgICAgIGkgPSBpbnRlcnBvbGF0ZShhLmludmVydChwKS5jb25jYXQodyAvIGEuayksIGIuaW52ZXJ0KHApLmNvbmNhdCh3IC8gYi5rKSk7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgICAgIGlmICh0ID09PSAxKSB0ID0gYjsgLy8gQXZvaWQgcm91bmRpbmcgZXJyb3Igb24gZW5kLlxuICAgICAgICAgICAgZWxzZSB7IHZhciBsID0gaSh0KSwgayA9IHcgLyBsWzJdOyB0ID0gbmV3IFRyYW5zZm9ybShrLCBwWzBdIC0gbFswXSAqIGssIHBbMV0gLSBsWzFdICogayk7IH1cbiAgICAgICAgICAgIGcuem9vbShudWxsLCB0KTtcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdlc3R1cmUodGhhdCwgYXJncywgY2xlYW4pIHtcbiAgICByZXR1cm4gKCFjbGVhbiAmJiB0aGF0Ll9fem9vbWluZykgfHwgbmV3IEdlc3R1cmUodGhhdCwgYXJncyk7XG4gIH1cblxuICBmdW5jdGlvbiBHZXN0dXJlKHRoYXQsIGFyZ3MpIHtcbiAgICB0aGlzLnRoYXQgPSB0aGF0O1xuICAgIHRoaXMuYXJncyA9IGFyZ3M7XG4gICAgdGhpcy5hY3RpdmUgPSAwO1xuICAgIHRoaXMuc291cmNlRXZlbnQgPSBudWxsO1xuICAgIHRoaXMuZXh0ZW50ID0gZXh0ZW50LmFwcGx5KHRoYXQsIGFyZ3MpO1xuICAgIHRoaXMudGFwcyA9IDA7XG4gIH1cblxuICBHZXN0dXJlLnByb3RvdHlwZSA9IHtcbiAgICBldmVudDogZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgIGlmIChldmVudCkgdGhpcy5zb3VyY2VFdmVudCA9IGV2ZW50O1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICBzdGFydDogZnVuY3Rpb24oKSB7XG4gICAgICBpZiAoKyt0aGlzLmFjdGl2ZSA9PT0gMSkge1xuICAgICAgICB0aGlzLnRoYXQuX196b29taW5nID0gdGhpcztcbiAgICAgICAgdGhpcy5lbWl0KFwic3RhcnRcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIHpvb206IGZ1bmN0aW9uKGtleSwgdHJhbnNmb3JtKSB7XG4gICAgICBpZiAodGhpcy5tb3VzZSAmJiBrZXkgIT09IFwibW91c2VcIikgdGhpcy5tb3VzZVsxXSA9IHRyYW5zZm9ybS5pbnZlcnQodGhpcy5tb3VzZVswXSk7XG4gICAgICBpZiAodGhpcy50b3VjaDAgJiYga2V5ICE9PSBcInRvdWNoXCIpIHRoaXMudG91Y2gwWzFdID0gdHJhbnNmb3JtLmludmVydCh0aGlzLnRvdWNoMFswXSk7XG4gICAgICBpZiAodGhpcy50b3VjaDEgJiYga2V5ICE9PSBcInRvdWNoXCIpIHRoaXMudG91Y2gxWzFdID0gdHJhbnNmb3JtLmludmVydCh0aGlzLnRvdWNoMVswXSk7XG4gICAgICB0aGlzLnRoYXQuX196b29tID0gdHJhbnNmb3JtO1xuICAgICAgdGhpcy5lbWl0KFwiem9vbVwiKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gICAgZW5kOiBmdW5jdGlvbigpIHtcbiAgICAgIGlmICgtLXRoaXMuYWN0aXZlID09PSAwKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnRoYXQuX196b29taW5nO1xuICAgICAgICB0aGlzLmVtaXQoXCJlbmRcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIGVtaXQ6IGZ1bmN0aW9uKHR5cGUpIHtcbiAgICAgIHZhciBkID0gc2VsZWN0KHRoaXMudGhhdCkuZGF0dW0oKTtcbiAgICAgIGxpc3RlbmVycy5jYWxsKFxuICAgICAgICB0eXBlLFxuICAgICAgICB0aGlzLnRoYXQsXG4gICAgICAgIG5ldyBab29tRXZlbnQodHlwZSwge1xuICAgICAgICAgIHNvdXJjZUV2ZW50OiB0aGlzLnNvdXJjZUV2ZW50LFxuICAgICAgICAgIHRhcmdldDogem9vbSxcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHRyYW5zZm9ybTogdGhpcy50aGF0Ll9fem9vbSxcbiAgICAgICAgICBkaXNwYXRjaDogbGlzdGVuZXJzXG4gICAgICAgIH0pLFxuICAgICAgICBkXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICBmdW5jdGlvbiB3aGVlbGVkKGV2ZW50LCAuLi5hcmdzKSB7XG4gICAgaWYgKCFmaWx0ZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSkgcmV0dXJuO1xuICAgIHZhciBnID0gZ2VzdHVyZSh0aGlzLCBhcmdzKS5ldmVudChldmVudCksXG4gICAgICAgIHQgPSB0aGlzLl9fem9vbSxcbiAgICAgICAgayA9IE1hdGgubWF4KHNjYWxlRXh0ZW50WzBdLCBNYXRoLm1pbihzY2FsZUV4dGVudFsxXSwgdC5rICogTWF0aC5wb3coMiwgd2hlZWxEZWx0YS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKSkpLFxuICAgICAgICBwID0gcG9pbnRlcihldmVudCk7XG5cbiAgICAvLyBJZiB0aGUgbW91c2UgaXMgaW4gdGhlIHNhbWUgbG9jYXRpb24gYXMgYmVmb3JlLCByZXVzZSBpdC5cbiAgICAvLyBJZiB0aGVyZSB3ZXJlIHJlY2VudCB3aGVlbCBldmVudHMsIHJlc2V0IHRoZSB3aGVlbCBpZGxlIHRpbWVvdXQuXG4gICAgaWYgKGcud2hlZWwpIHtcbiAgICAgIGlmIChnLm1vdXNlWzBdWzBdICE9PSBwWzBdIHx8IGcubW91c2VbMF1bMV0gIT09IHBbMV0pIHtcbiAgICAgICAgZy5tb3VzZVsxXSA9IHQuaW52ZXJ0KGcubW91c2VbMF0gPSBwKTtcbiAgICAgIH1cbiAgICAgIGNsZWFyVGltZW91dChnLndoZWVsKTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGlzIHdoZWVsIGV2ZW50IHdvblx1MjAxOXQgdHJpZ2dlciBhIHRyYW5zZm9ybSBjaGFuZ2UsIGlnbm9yZSBpdC5cbiAgICBlbHNlIGlmICh0LmsgPT09IGspIHJldHVybjtcblxuICAgIC8vIE90aGVyd2lzZSwgY2FwdHVyZSB0aGUgbW91c2UgcG9pbnQgYW5kIGxvY2F0aW9uIGF0IHRoZSBzdGFydC5cbiAgICBlbHNlIHtcbiAgICAgIGcubW91c2UgPSBbcCwgdC5pbnZlcnQocCldO1xuICAgICAgaW50ZXJydXB0KHRoaXMpO1xuICAgICAgZy5zdGFydCgpO1xuICAgIH1cblxuICAgIG5vZXZlbnQoZXZlbnQpO1xuICAgIGcud2hlZWwgPSBzZXRUaW1lb3V0KHdoZWVsaWRsZWQsIHdoZWVsRGVsYXkpO1xuICAgIGcuem9vbShcIm1vdXNlXCIsIGNvbnN0cmFpbih0cmFuc2xhdGUoc2NhbGUodCwgayksIGcubW91c2VbMF0sIGcubW91c2VbMV0pLCBnLmV4dGVudCwgdHJhbnNsYXRlRXh0ZW50KSk7XG5cbiAgICBmdW5jdGlvbiB3aGVlbGlkbGVkKCkge1xuICAgICAgZy53aGVlbCA9IG51bGw7XG4gICAgICBnLmVuZCgpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIG1vdXNlZG93bmVkKGV2ZW50LCAuLi5hcmdzKSB7XG4gICAgaWYgKHRvdWNoZW5kaW5nIHx8ICFmaWx0ZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSkgcmV0dXJuO1xuICAgIHZhciBnID0gZ2VzdHVyZSh0aGlzLCBhcmdzLCB0cnVlKS5ldmVudChldmVudCksXG4gICAgICAgIHYgPSBzZWxlY3QoZXZlbnQudmlldykub24oXCJtb3VzZW1vdmUuem9vbVwiLCBtb3VzZW1vdmVkLCB0cnVlKS5vbihcIm1vdXNldXAuem9vbVwiLCBtb3VzZXVwcGVkLCB0cnVlKSxcbiAgICAgICAgcCA9IHBvaW50ZXIoZXZlbnQsIGN1cnJlbnRUYXJnZXQpLFxuICAgICAgICBjdXJyZW50VGFyZ2V0ID0gZXZlbnQuY3VycmVudFRhcmdldCxcbiAgICAgICAgeDAgPSBldmVudC5jbGllbnRYLFxuICAgICAgICB5MCA9IGV2ZW50LmNsaWVudFk7XG5cbiAgICBkcmFnRGlzYWJsZShldmVudC52aWV3KTtcbiAgICBub3Byb3BhZ2F0aW9uKGV2ZW50KTtcbiAgICBnLm1vdXNlID0gW3AsIHRoaXMuX196b29tLmludmVydChwKV07XG4gICAgaW50ZXJydXB0KHRoaXMpO1xuICAgIGcuc3RhcnQoKTtcblxuICAgIGZ1bmN0aW9uIG1vdXNlbW92ZWQoZXZlbnQpIHtcbiAgICAgIG5vZXZlbnQoZXZlbnQpO1xuICAgICAgaWYgKCFnLm1vdmVkKSB7XG4gICAgICAgIHZhciBkeCA9IGV2ZW50LmNsaWVudFggLSB4MCwgZHkgPSBldmVudC5jbGllbnRZIC0geTA7XG4gICAgICAgIGcubW92ZWQgPSBkeCAqIGR4ICsgZHkgKiBkeSA+IGNsaWNrRGlzdGFuY2UyO1xuICAgICAgfVxuICAgICAgZy5ldmVudChldmVudClcbiAgICAgICAuem9vbShcIm1vdXNlXCIsIGNvbnN0cmFpbih0cmFuc2xhdGUoZy50aGF0Ll9fem9vbSwgZy5tb3VzZVswXSA9IHBvaW50ZXIoZXZlbnQsIGN1cnJlbnRUYXJnZXQpLCBnLm1vdXNlWzFdKSwgZy5leHRlbnQsIHRyYW5zbGF0ZUV4dGVudCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vdXNldXBwZWQoZXZlbnQpIHtcbiAgICAgIHYub24oXCJtb3VzZW1vdmUuem9vbSBtb3VzZXVwLnpvb21cIiwgbnVsbCk7XG4gICAgICBkcmFnRW5hYmxlKGV2ZW50LnZpZXcsIGcubW92ZWQpO1xuICAgICAgbm9ldmVudChldmVudCk7XG4gICAgICBnLmV2ZW50KGV2ZW50KS5lbmQoKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBkYmxjbGlja2VkKGV2ZW50LCAuLi5hcmdzKSB7XG4gICAgaWYgKCFmaWx0ZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSkgcmV0dXJuO1xuICAgIHZhciB0MCA9IHRoaXMuX196b29tLFxuICAgICAgICBwMCA9IHBvaW50ZXIoZXZlbnQuY2hhbmdlZFRvdWNoZXMgPyBldmVudC5jaGFuZ2VkVG91Y2hlc1swXSA6IGV2ZW50LCB0aGlzKSxcbiAgICAgICAgcDEgPSB0MC5pbnZlcnQocDApLFxuICAgICAgICBrMSA9IHQwLmsgKiAoZXZlbnQuc2hpZnRLZXkgPyAwLjUgOiAyKSxcbiAgICAgICAgdDEgPSBjb25zdHJhaW4odHJhbnNsYXRlKHNjYWxlKHQwLCBrMSksIHAwLCBwMSksIGV4dGVudC5hcHBseSh0aGlzLCBhcmdzKSwgdHJhbnNsYXRlRXh0ZW50KTtcblxuICAgIG5vZXZlbnQoZXZlbnQpO1xuICAgIGlmIChkdXJhdGlvbiA+IDApIHNlbGVjdCh0aGlzKS50cmFuc2l0aW9uKCkuZHVyYXRpb24oZHVyYXRpb24pLmNhbGwoc2NoZWR1bGUsIHQxLCBwMCwgZXZlbnQpO1xuICAgIGVsc2Ugc2VsZWN0KHRoaXMpLmNhbGwoem9vbS50cmFuc2Zvcm0sIHQxLCBwMCwgZXZlbnQpO1xuICB9XG5cbiAgZnVuY3Rpb24gdG91Y2hzdGFydGVkKGV2ZW50LCAuLi5hcmdzKSB7XG4gICAgaWYgKCFmaWx0ZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSkgcmV0dXJuO1xuICAgIHZhciB0b3VjaGVzID0gZXZlbnQudG91Y2hlcyxcbiAgICAgICAgbiA9IHRvdWNoZXMubGVuZ3RoLFxuICAgICAgICBnID0gZ2VzdHVyZSh0aGlzLCBhcmdzLCBldmVudC5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPT09IG4pLmV2ZW50KGV2ZW50KSxcbiAgICAgICAgc3RhcnRlZCwgaSwgdCwgcDtcblxuICAgIG5vcHJvcGFnYXRpb24oZXZlbnQpO1xuICAgIGZvciAoaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICAgIHQgPSB0b3VjaGVzW2ldLCBwID0gcG9pbnRlcih0LCB0aGlzKTtcbiAgICAgIHAgPSBbcCwgdGhpcy5fX3pvb20uaW52ZXJ0KHApLCB0LmlkZW50aWZpZXJdO1xuICAgICAgaWYgKCFnLnRvdWNoMCkgZy50b3VjaDAgPSBwLCBzdGFydGVkID0gdHJ1ZSwgZy50YXBzID0gMSArICEhdG91Y2hzdGFydGluZztcbiAgICAgIGVsc2UgaWYgKCFnLnRvdWNoMSAmJiBnLnRvdWNoMFsyXSAhPT0gcFsyXSkgZy50b3VjaDEgPSBwLCBnLnRhcHMgPSAwO1xuICAgIH1cblxuICAgIGlmICh0b3VjaHN0YXJ0aW5nKSB0b3VjaHN0YXJ0aW5nID0gY2xlYXJUaW1lb3V0KHRvdWNoc3RhcnRpbmcpO1xuXG4gICAgaWYgKHN0YXJ0ZWQpIHtcbiAgICAgIGlmIChnLnRhcHMgPCAyKSB0b3VjaGZpcnN0ID0gcFswXSwgdG91Y2hzdGFydGluZyA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRvdWNoc3RhcnRpbmcgPSBudWxsOyB9LCB0b3VjaERlbGF5KTtcbiAgICAgIGludGVycnVwdCh0aGlzKTtcbiAgICAgIGcuc3RhcnQoKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiB0b3VjaG1vdmVkKGV2ZW50LCAuLi5hcmdzKSB7XG4gICAgaWYgKCF0aGlzLl9fem9vbWluZykgcmV0dXJuO1xuICAgIHZhciBnID0gZ2VzdHVyZSh0aGlzLCBhcmdzKS5ldmVudChldmVudCksXG4gICAgICAgIHRvdWNoZXMgPSBldmVudC5jaGFuZ2VkVG91Y2hlcyxcbiAgICAgICAgbiA9IHRvdWNoZXMubGVuZ3RoLCBpLCB0LCBwLCBsO1xuXG4gICAgbm9ldmVudChldmVudCk7XG4gICAgZm9yIChpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgdCA9IHRvdWNoZXNbaV0sIHAgPSBwb2ludGVyKHQsIHRoaXMpO1xuICAgICAgaWYgKGcudG91Y2gwICYmIGcudG91Y2gwWzJdID09PSB0LmlkZW50aWZpZXIpIGcudG91Y2gwWzBdID0gcDtcbiAgICAgIGVsc2UgaWYgKGcudG91Y2gxICYmIGcudG91Y2gxWzJdID09PSB0LmlkZW50aWZpZXIpIGcudG91Y2gxWzBdID0gcDtcbiAgICB9XG4gICAgdCA9IGcudGhhdC5fX3pvb207XG4gICAgaWYgKGcudG91Y2gxKSB7XG4gICAgICB2YXIgcDAgPSBnLnRvdWNoMFswXSwgbDAgPSBnLnRvdWNoMFsxXSxcbiAgICAgICAgICBwMSA9IGcudG91Y2gxWzBdLCBsMSA9IGcudG91Y2gxWzFdLFxuICAgICAgICAgIGRwID0gKGRwID0gcDFbMF0gLSBwMFswXSkgKiBkcCArIChkcCA9IHAxWzFdIC0gcDBbMV0pICogZHAsXG4gICAgICAgICAgZGwgPSAoZGwgPSBsMVswXSAtIGwwWzBdKSAqIGRsICsgKGRsID0gbDFbMV0gLSBsMFsxXSkgKiBkbDtcbiAgICAgIHQgPSBzY2FsZSh0LCBNYXRoLnNxcnQoZHAgLyBkbCkpO1xuICAgICAgcCA9IFsocDBbMF0gKyBwMVswXSkgLyAyLCAocDBbMV0gKyBwMVsxXSkgLyAyXTtcbiAgICAgIGwgPSBbKGwwWzBdICsgbDFbMF0pIC8gMiwgKGwwWzFdICsgbDFbMV0pIC8gMl07XG4gICAgfVxuICAgIGVsc2UgaWYgKGcudG91Y2gwKSBwID0gZy50b3VjaDBbMF0sIGwgPSBnLnRvdWNoMFsxXTtcbiAgICBlbHNlIHJldHVybjtcblxuICAgIGcuem9vbShcInRvdWNoXCIsIGNvbnN0cmFpbih0cmFuc2xhdGUodCwgcCwgbCksIGcuZXh0ZW50LCB0cmFuc2xhdGVFeHRlbnQpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRvdWNoZW5kZWQoZXZlbnQsIC4uLmFyZ3MpIHtcbiAgICBpZiAoIXRoaXMuX196b29taW5nKSByZXR1cm47XG4gICAgdmFyIGcgPSBnZXN0dXJlKHRoaXMsIGFyZ3MpLmV2ZW50KGV2ZW50KSxcbiAgICAgICAgdG91Y2hlcyA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzLFxuICAgICAgICBuID0gdG91Y2hlcy5sZW5ndGgsIGksIHQ7XG5cbiAgICBub3Byb3BhZ2F0aW9uKGV2ZW50KTtcbiAgICBpZiAodG91Y2hlbmRpbmcpIGNsZWFyVGltZW91dCh0b3VjaGVuZGluZyk7XG4gICAgdG91Y2hlbmRpbmcgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0b3VjaGVuZGluZyA9IG51bGw7IH0sIHRvdWNoRGVsYXkpO1xuICAgIGZvciAoaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICAgIHQgPSB0b3VjaGVzW2ldO1xuICAgICAgaWYgKGcudG91Y2gwICYmIGcudG91Y2gwWzJdID09PSB0LmlkZW50aWZpZXIpIGRlbGV0ZSBnLnRvdWNoMDtcbiAgICAgIGVsc2UgaWYgKGcudG91Y2gxICYmIGcudG91Y2gxWzJdID09PSB0LmlkZW50aWZpZXIpIGRlbGV0ZSBnLnRvdWNoMTtcbiAgICB9XG4gICAgaWYgKGcudG91Y2gxICYmICFnLnRvdWNoMCkgZy50b3VjaDAgPSBnLnRvdWNoMSwgZGVsZXRlIGcudG91Y2gxO1xuICAgIGlmIChnLnRvdWNoMCkgZy50b3VjaDBbMV0gPSB0aGlzLl9fem9vbS5pbnZlcnQoZy50b3VjaDBbMF0pO1xuICAgIGVsc2Uge1xuICAgICAgZy5lbmQoKTtcbiAgICAgIC8vIElmIHRoaXMgd2FzIGEgZGJsdGFwLCByZXJvdXRlIHRvIHRoZSAob3B0aW9uYWwpIGRibGNsaWNrLnpvb20gaGFuZGxlci5cbiAgICAgIGlmIChnLnRhcHMgPT09IDIpIHtcbiAgICAgICAgdCA9IHBvaW50ZXIodCwgdGhpcyk7XG4gICAgICAgIGlmIChNYXRoLmh5cG90KHRvdWNoZmlyc3RbMF0gLSB0WzBdLCB0b3VjaGZpcnN0WzFdIC0gdFsxXSkgPCB0YXBEaXN0YW5jZSkge1xuICAgICAgICAgIHZhciBwID0gc2VsZWN0KHRoaXMpLm9uKFwiZGJsY2xpY2suem9vbVwiKTtcbiAgICAgICAgICBpZiAocCkgcC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgem9vbS53aGVlbERlbHRhID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHdoZWVsRGVsdGEgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCtfKSwgem9vbSkgOiB3aGVlbERlbHRhO1xuICB9O1xuXG4gIHpvb20uZmlsdGVyID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGZpbHRlciA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoISFfKSwgem9vbSkgOiBmaWx0ZXI7XG4gIH07XG5cbiAgem9vbS50b3VjaGFibGUgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAodG91Y2hhYmxlID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCghIV8pLCB6b29tKSA6IHRvdWNoYWJsZTtcbiAgfTtcblxuICB6b29tLmV4dGVudCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChleHRlbnQgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KFtbK19bMF1bMF0sICtfWzBdWzFdXSwgWytfWzFdWzBdLCArX1sxXVsxXV1dKSwgem9vbSkgOiBleHRlbnQ7XG4gIH07XG5cbiAgem9vbS5zY2FsZUV4dGVudCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChzY2FsZUV4dGVudFswXSA9ICtfWzBdLCBzY2FsZUV4dGVudFsxXSA9ICtfWzFdLCB6b29tKSA6IFtzY2FsZUV4dGVudFswXSwgc2NhbGVFeHRlbnRbMV1dO1xuICB9O1xuXG4gIHpvb20udHJhbnNsYXRlRXh0ZW50ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHRyYW5zbGF0ZUV4dGVudFswXVswXSA9ICtfWzBdWzBdLCB0cmFuc2xhdGVFeHRlbnRbMV1bMF0gPSArX1sxXVswXSwgdHJhbnNsYXRlRXh0ZW50WzBdWzFdID0gK19bMF1bMV0sIHRyYW5zbGF0ZUV4dGVudFsxXVsxXSA9ICtfWzFdWzFdLCB6b29tKSA6IFtbdHJhbnNsYXRlRXh0ZW50WzBdWzBdLCB0cmFuc2xhdGVFeHRlbnRbMF1bMV1dLCBbdHJhbnNsYXRlRXh0ZW50WzFdWzBdLCB0cmFuc2xhdGVFeHRlbnRbMV1bMV1dXTtcbiAgfTtcblxuICB6b29tLmNvbnN0cmFpbiA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChjb25zdHJhaW4gPSBfLCB6b29tKSA6IGNvbnN0cmFpbjtcbiAgfTtcblxuICB6b29tLmR1cmF0aW9uID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGR1cmF0aW9uID0gK18sIHpvb20pIDogZHVyYXRpb247XG4gIH07XG5cbiAgem9vbS5pbnRlcnBvbGF0ZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChpbnRlcnBvbGF0ZSA9IF8sIHpvb20pIDogaW50ZXJwb2xhdGU7XG4gIH07XG5cbiAgem9vbS5vbiA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciB2YWx1ZSA9IGxpc3RlbmVycy5vbi5hcHBseShsaXN0ZW5lcnMsIGFyZ3VtZW50cyk7XG4gICAgcmV0dXJuIHZhbHVlID09PSBsaXN0ZW5lcnMgPyB6b29tIDogdmFsdWU7XG4gIH07XG5cbiAgem9vbS5jbGlja0Rpc3RhbmNlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGNsaWNrRGlzdGFuY2UyID0gKF8gPSArXykgKiBfLCB6b29tKSA6IE1hdGguc3FydChjbGlja0Rpc3RhbmNlMik7XG4gIH07XG5cbiAgem9vbS50YXBEaXN0YW5jZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh0YXBEaXN0YW5jZSA9ICtfLCB6b29tKSA6IHRhcERpc3RhbmNlO1xuICB9O1xuXG4gIHJldHVybiB6b29tO1xufVxuIiwgImltcG9ydCAqIGFzIGQzIGZyb20gXCJkM1wiO1xyXG5pbXBvcnQgdHlwZSBHcmFwaCBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgeyBNb2RhbCwgTm90aWNlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCBWaXNDb21wIGZyb20gXCIuLi9Db21wb25lbnRzL1Zpc0NvbXAuc3ZlbHRlXCI7XHJcbmltcG9ydCB0eXBlIHsgQWRqTGlzdEl0ZW0sIGQzR3JhcGggfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQge1xyXG4gIGdldEluTmVpZ2hib3VycyxcclxuICBnZXRPdXROZWlnaGJvdXJzLFxyXG4gIGdldFNpbmtzLFxyXG59IGZyb20gXCIuLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ3JhcGhsaWJUb0QzKGc6IEdyYXBoKTogZDNHcmFwaCB7XHJcbiAgY29uc3QgZDNHcmFwaDogZDNHcmFwaCA9IHsgbm9kZXM6IFtdLCBsaW5rczogW10gfTtcclxuICBjb25zdCBub2RlSURzID0ge307XHJcblxyXG4gIGcubm9kZXMoKS5mb3JFYWNoKChub2RlLCBpKSA9PiB7XHJcbiAgICBkM0dyYXBoLm5vZGVzLnB1c2goeyBpZDogaSwgbmFtZTogbm9kZSB9KTtcclxuICAgIG5vZGVJRHNbbm9kZV0gPSBpO1xyXG4gIH0pO1xyXG4gIGcuZm9yRWFjaEVkZ2UoKGssIGEsIHMsIHQpID0+IHtcclxuICAgIGQzR3JhcGgubGlua3MucHVzaCh7XHJcbiAgICAgIHNvdXJjZTogbm9kZUlEc1tzXSxcclxuICAgICAgdGFyZ2V0OiBub2RlSURzW3RdLFxyXG4gICAgfSk7XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiBkM0dyYXBoO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYmZzRnJvbUFsbFNpbmtzKGc6IEdyYXBoKSB7XHJcbiAgY29uc3QgcXVldWU6IHN0cmluZ1tdID0gZ2V0U2lua3MoZyk7XHJcbiAgY29uc3QgYWRqTGlzdDogQWRqTGlzdEl0ZW1bXSA9IFtdO1xyXG5cclxuICBsZXQgaSA9IDA7XHJcbiAgd2hpbGUgKHF1ZXVlLmxlbmd0aCAmJiBpIDwgMTAwMCkge1xyXG4gICAgaSsrO1xyXG5cclxuICAgIGNvbnN0IGN1cnJOb2RlID0gcXVldWUuc2hpZnQoKTtcclxuICAgIGNvbnN0IG5ld05vZGVzID0gZ2V0SW5OZWlnaGJvdXJzKGcsIGN1cnJOb2RlKTtcclxuXHJcbiAgICBpZiAobmV3Tm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgIG5ld05vZGVzLmZvckVhY2goKHByZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5leHQ6IEFkakxpc3RJdGVtID0ge1xyXG4gICAgICAgICAgbmFtZTogY3Vyck5vZGUsXHJcbiAgICAgICAgICBwYXJlbnRJZDogcHJlLFxyXG4gICAgICAgICAgZGVwdGg6IGksXHJcbiAgICAgICAgfTtcclxuICAgICAgICBxdWV1ZS5wdXNoKHByZSk7XHJcbiAgICAgICAgYWRqTGlzdC5wdXNoKG5leHQpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGFkakxpc3QucHVzaCh7XHJcbiAgICAgICAgbmFtZTogY3Vyck5vZGUsXHJcbiAgICAgICAgcGFyZW50SWQ6IHVuZGVmaW5lZCxcclxuICAgICAgICBkZXB0aDogaSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBtYXhEZXB0aCA9IGFkakxpc3Quc29ydCgoYSwgYikgPT4gYS5kZXB0aCAtIGIuZGVwdGgpLmxhc3QoKS5kZXB0aDtcclxuICBhZGpMaXN0LmZvckVhY2goKGl0ZW0pID0+IChpdGVtLmhlaWdodCA9IG1heERlcHRoIC0gaXRlbS5kZXB0aCkpO1xyXG4gIHJldHVybiBhZGpMaXN0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGZzQWRqTGlzdChnOiBHcmFwaCwgc3RhcnROb2RlOiBzdHJpbmcpOiBBZGpMaXN0SXRlbVtdIHtcclxuICBjb25zdCBxdWV1ZTogc3RyaW5nW10gPSBbc3RhcnROb2RlXTtcclxuICBjb25zdCBhZGpMaXN0OiBBZGpMaXN0SXRlbVtdID0gW107XHJcblxyXG4gIGxldCBpID0gMDtcclxuICB3aGlsZSAocXVldWUubGVuZ3RoICYmIGkgPCAxMDAwKSB7XHJcbiAgICBpKys7XHJcblxyXG4gICAgY29uc3QgY3Vyck5vZGUgPSBxdWV1ZS5zaGlmdCgpO1xyXG4gICAgY29uc3QgbmV3Tm9kZXMgPSBnZXRPdXROZWlnaGJvdXJzKGcsIGN1cnJOb2RlKTtcclxuXHJcbiAgICBpZiAobmV3Tm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgIG5ld05vZGVzLmZvckVhY2goKHN1Y2MpID0+IHtcclxuICAgICAgICBjb25zdCBuZXh0OiBBZGpMaXN0SXRlbSA9IHtcclxuICAgICAgICAgIG5hbWU6IGN1cnJOb2RlLFxyXG4gICAgICAgICAgcGFyZW50SWQ6IHN1Y2MsXHJcbiAgICAgICAgICBkZXB0aDogaSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHF1ZXVlLnB1c2goc3VjYyk7XHJcbiAgICAgICAgYWRqTGlzdC5wdXNoKG5leHQpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGFkakxpc3QucHVzaCh7XHJcbiAgICAgICAgbmFtZTogY3Vyck5vZGUsXHJcbiAgICAgICAgcGFyZW50SWQ6IHVuZGVmaW5lZCxcclxuICAgICAgICBkZXB0aDogaSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnN0IG1heERlcHRoID0gYWRqTGlzdC5zb3J0KChhLCBiKSA9PiBhLmRlcHRoIC0gYi5kZXB0aCkubGFzdCgpLmRlcHRoO1xyXG4gIGFkakxpc3QuZm9yRWFjaCgoaXRlbSkgPT4gKGl0ZW0uaGVpZ2h0ID0gbWF4RGVwdGggLSBpdGVtLmRlcHRoKSk7XHJcblxyXG4gIHJldHVybiBhZGpMaXN0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYmZzQWRqTGlzdChnOiBHcmFwaCwgc3RhcnROb2RlOiBzdHJpbmcpOiBBZGpMaXN0SXRlbVtdIHtcclxuICBjb25zdCBxdWV1ZTogc3RyaW5nW10gPSBbc3RhcnROb2RlXTtcclxuICBjb25zdCBhZGpMaXN0OiBBZGpMaXN0SXRlbVtdID0gW107XHJcblxyXG4gIGxldCBpID0gMDtcclxuICB3aGlsZSAocXVldWUubGVuZ3RoICYmIGkgPCAxMDAwKSB7XHJcbiAgICBpKys7XHJcblxyXG4gICAgY29uc3QgY3Vyck5vZGUgPSBxdWV1ZS5zaGlmdCgpO1xyXG4gICAgY29uc3QgbmVpZ2hib3VycyA9IHtcclxuICAgICAgc3VjY3M6IGdldE91dE5laWdoYm91cnMoZywgY3Vyck5vZGUpLFxyXG4gICAgICBwcmVzOiBnZXRJbk5laWdoYm91cnMoZywgY3Vyck5vZGUpLFxyXG4gICAgfTtcclxuICAgIGNvbnNvbGUubG9nKHsgY3Vyck5vZGUsIG5laWdoYm91cnMgfSk7XHJcblxyXG4gICAgY29uc3QgbmV4dDogQWRqTGlzdEl0ZW0gPSB7XHJcbiAgICAgIG5hbWU6IGN1cnJOb2RlLFxyXG4gICAgICBwcmVzOiB1bmRlZmluZWQsXHJcbiAgICAgIHN1Y2NzOiB1bmRlZmluZWQsXHJcbiAgICAgIHBhcmVudElkOiBpLFxyXG4gICAgICBkZXB0aDogaSxcclxuICAgIH07XHJcbiAgICBpZiAobmVpZ2hib3Vycy5zdWNjcy5sZW5ndGgpIHtcclxuICAgICAgbmV4dC5zdWNjcyA9IG5laWdoYm91cnMuc3VjY3M7XHJcbiAgICAgIHF1ZXVlLnB1c2goLi4ubmVpZ2hib3Vycy5zdWNjcyk7XHJcbiAgICB9XHJcbiAgICBpZiAobmVpZ2hib3Vycy5wcmVzLmxlbmd0aCkge1xyXG4gICAgICBuZXh0LnByZXMgPSBuZWlnaGJvdXJzLnByZXM7XHJcbiAgICB9XHJcbiAgICBhZGpMaXN0LnB1c2gobmV4dCk7XHJcbiAgfVxyXG4gIGNvbnN0IG1heERlcHRoID0gYWRqTGlzdC5zb3J0KChhLCBiKSA9PiBhLmRlcHRoIC0gYi5kZXB0aCkubGFzdCgpLmRlcHRoO1xyXG4gIGFkakxpc3QuZm9yRWFjaCgoaXRlbSkgPT4gKGl0ZW0uaGVpZ2h0ID0gbWF4RGVwdGggLSBpdGVtLmRlcHRoKSk7XHJcblxyXG4gIHJldHVybiBhZGpMaXN0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGZzRmxhdEFkakxpc3QoZzogR3JhcGgsIHN0YXJ0Tm9kZTogc3RyaW5nKSB7XHJcbiAgY29uc3Qgbm9kZXMgPSBnLm5vZGVzKCk7XHJcbiAgY29uc3Qgbm9kZUNvdW50ID0gbm9kZXMubGVuZ3RoO1xyXG4gIGNvbnN0IHZpc2l0cyA9IHt9O1xyXG4gIG5vZGVzLmZvckVhY2goKG5vZGUsIGkpID0+IHtcclxuICAgIHZpc2l0c1tub2RlXSA9IG5vZGVDb3VudCAqIGk7XHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0IHF1ZXVlOiBzdHJpbmdbXSA9IFtzdGFydE5vZGVdO1xyXG4gIGNvbnN0IGFkakxpc3Q6IEFkakxpc3RJdGVtW10gPSBbXTtcclxuXHJcbiAgbGV0IGRlcHRoID0gMTtcclxuICBsZXQgaSA9IDA7XHJcbiAgd2hpbGUgKHF1ZXVlLmxlbmd0aCAmJiBpIDwgMTAwMCkge1xyXG4gICAgaSsrO1xyXG5cclxuICAgIGNvbnN0IGN1cnJOb2RlID0gcXVldWUuc2hpZnQoKTtcclxuICAgIGNvbnN0IG5leHQgPSBnZXRPdXROZWlnaGJvdXJzKGcsIGN1cnJOb2RlKTtcclxuXHJcbiAgICBpZiAobmV4dC5sZW5ndGgpIHtcclxuICAgICAgcXVldWUudW5zaGlmdCguLi5uZXh0KTtcclxuICAgICAgbmV4dC5mb3JFYWNoKChzdWNjKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcGFyZW50SWQgPSBub2RlQ291bnQgKiBub2Rlcy5pbmRleE9mKHN1Y2MpO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICFhZGpMaXN0LnNvbWUoXHJcbiAgICAgICAgICAgIChhZGpJdGVtKSA9PlxyXG4gICAgICAgICAgICAgIGFkakl0ZW0ubmFtZSA9PT0gY3Vyck5vZGUgJiYgYWRqSXRlbS5wYXJlbnRJZCA9PT0gcGFyZW50SWRcclxuICAgICAgICAgIClcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGFkakxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgIGlkOiB2aXNpdHNbY3Vyck5vZGVdIGFzIG51bWJlcixcclxuICAgICAgICAgICAgbmFtZTogY3Vyck5vZGUsXHJcbiAgICAgICAgICAgIHBhcmVudElkLFxyXG4gICAgICAgICAgICBkZXB0aCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdmlzaXRzW2N1cnJOb2RlXSsrO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGRlcHRoKys7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBhZGpMaXN0LnB1c2goe1xyXG4gICAgICAgIGlkOiB2aXNpdHNbY3Vyck5vZGVdIGFzIG51bWJlcixcclxuICAgICAgICBuYW1lOiBjdXJyTm9kZSxcclxuICAgICAgICBwYXJlbnRJZDogOTk5OTk5OTk5LFxyXG4gICAgICAgIGRlcHRoLFxyXG4gICAgICB9KTtcclxuICAgICAgZGVwdGggPSAxO1xyXG4gICAgICB2aXNpdHNbY3Vyck5vZGVdKys7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGFkakxpc3QucHVzaCh7XHJcbiAgICBpZDogOTk5OTk5OTk5LFxyXG4gICAgbmFtZTogXCJDT05UQUlORVJcIixcclxuICAgIHBhcmVudElkOiB1bmRlZmluZWQsXHJcbiAgICBkZXB0aDogMCxcclxuICB9KTtcclxuXHJcbiAgY29uc3QgbWF4RGVwdGggPSBhZGpMaXN0LnNvcnQoKGEsIGIpID0+IGEuZGVwdGggLSBiLmRlcHRoKS5sYXN0KCkuZGVwdGg7XHJcbiAgYWRqTGlzdC5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS5oZWlnaHQgPSBtYXhEZXB0aCAtIGl0ZW0uZGVwdGgpKTtcclxuXHJcbiAgY29uc29sZS5sb2coeyB2aXNpdHMgfSk7XHJcbiAgcmV0dXJuIGFkakxpc3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBzdHJhdGlmeSA9IGQzXHJcbiAgLnN0cmF0aWZ5KClcclxuICAuaWQoZnVuY3Rpb24gKGQ6IEFkakxpc3RJdGVtKSB7XHJcbiAgICBjb25zb2xlLmxvZyh7IGQgfSk7XHJcbiAgICByZXR1cm4gZC5uYW1lO1xyXG4gIH0pXHJcbiAgLnBhcmVudElkKGZ1bmN0aW9uIChkOiBBZGpMaXN0SXRlbSkge1xyXG4gICAgcmV0dXJuIGQucGFyZW50SWQ7XHJcbiAgfSk7XHJcbmV4cG9ydCBjbGFzcyBWaXNNb2RhbCBleHRlbmRzIE1vZGFsIHtcclxuICBwbHVnaW46IEJDUGx1Z2luO1xyXG4gIG1vZGFsOiBWaXNNb2RhbDtcclxuXHJcbiAgY29uc3RydWN0b3IocGx1Z2luOiBCQ1BsdWdpbikge1xyXG4gICAgc3VwZXIoYXBwKTtcclxuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xyXG4gICAgdGhpcy5tb2RhbCA9IHRoaXM7XHJcbiAgfVxyXG5cclxuICBvbk9wZW4oKSB7XHJcbiAgICBuZXcgTm90aWNlKFxyXG4gICAgICBcIkFsb3Qgb2YgdGhlc2UgZmVhdHVyZXMgbWF5IG5vdCB3b3JrLCBpdCBpcyBzdGlsbCB2ZXJ5IGV4cGVyaW1lbnRhbC5cIlxyXG4gICAgKTtcclxuICAgIGNvbnN0IHsgY29udGVudEVsIH0gPSB0aGlzO1xyXG4gICAgY29udGVudEVsLmVtcHR5KCk7XHJcblxyXG4gICAgbmV3IFZpc0NvbXAoe1xyXG4gICAgICB0YXJnZXQ6IGNvbnRlbnRFbCxcclxuICAgICAgcHJvcHM6IHtcclxuICAgICAgICBtb2RhbDogdGhpcyxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DbG9zZSgpIHtcclxuICAgIHRoaXMuY29udGVudEVsLmVtcHR5KCk7XHJcbiAgfVxyXG59XHJcbiIsIG51bGwsICI8c2NyaXB0IGxhbmc9XCJ0c1wiPlxyXG4gIGltcG9ydCB7IHdhcm4gfSBmcm9tIFwibG9nbGV2ZWxcIjtcclxuICBpbXBvcnQgeyBBTExVTkxJTktFRCwgUkVBbENMT1NFRCwgUkVMQVRJT05TLCBWSVNUWVBFUyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuICBpbXBvcnQgdHlwZSB7IFZpc0dyYXBocywgVmlzVHlwZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbiAgaW1wb3J0IHtcclxuICAgIGNsb3NlSW1wbGllZExpbmtzLFxyXG4gICAgZ2V0U3ViSW5EaXJzLFxyXG4gICAgcmVtb3ZlVW5saW5rZWROb2RlcyxcclxuICB9IGZyb20gXCIuLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcbiAgaW1wb3J0IHsgYXJjRGlhZ3JhbSB9IGZyb20gXCIuLi9WaXN1YWxpc2F0aW9ucy9BcmNEaWFncmFtXCI7XHJcbiAgaW1wb3J0IHsgY2lyY2xlUGFja2luZyB9IGZyb20gXCIuLi9WaXN1YWxpc2F0aW9ucy9DaXJjbGVQYWNraW5nXCI7XHJcbiAgaW1wb3J0IHsgZWRnZUJ1bmRsaW5nIH0gZnJvbSBcIi4uL1Zpc3VhbGlzYXRpb25zL0VkZ2VCdW5kbGluZ1wiO1xyXG4gIGltcG9ydCB7IGZvcmNlRGlyZWN0ZWRHIH0gZnJvbSBcIi4uL1Zpc3VhbGlzYXRpb25zL0ZvcmNlRGlyZWN0ZWRHXCI7XHJcbiAgaW1wb3J0IHsgaWNpY2xlIH0gZnJvbSBcIi4uL1Zpc3VhbGlzYXRpb25zL0ljaWNsZVwiO1xyXG4gIGltcG9ydCB7IHJhZGlhbFRyZWUgfSBmcm9tIFwiLi4vVmlzdWFsaXNhdGlvbnMvUmFkaWFsVHJlZVwiO1xyXG4gIGltcG9ydCB7IHN1bmJ1cnN0IH0gZnJvbSBcIi4uL1Zpc3VhbGlzYXRpb25zL1N1bmJ1cnN0XCI7XHJcbiAgaW1wb3J0IHsgdGlkeVRyZWUgfSBmcm9tIFwiLi4vVmlzdWFsaXNhdGlvbnMvVGlkeVRyZWVcIjtcclxuICBpbXBvcnQgeyB0cmVlTWFwIH0gZnJvbSBcIi4uL1Zpc3VhbGlzYXRpb25zL1RyZWVNYXBcIjtcclxuICBpbXBvcnQgdHlwZSB7IFZpc01vZGFsIH0gZnJvbSBcIi4uL1Zpc3VhbGlzYXRpb25zL1Zpc01vZGFsXCI7XHJcbiAgaW1wb3J0IHsgZ2V0Q3VyckZpbGUgfSBmcm9tIFwiLi4vVXRpbHMvT2JzaWRpYW5VdGlsc1wiO1xyXG5cclxuICBleHBvcnQgbGV0IG1vZGFsOiBWaXNNb2RhbDtcclxuXHJcbiAgY29uc3QgeyBwbHVnaW4gfSA9IG1vZGFsO1xyXG4gIGNvbnN0IHsgbWFpbkcsIHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgeyB2aXNHcmFwaCwgdmlzUmVsYXRpb24sIHZpc0Nsb3NlZCwgdmlzQWxsIH0gPSBzZXR0aW5ncztcclxuXHJcbiAgY29uc3QgY3VyckZpbGUgPSBnZXRDdXJyRmlsZSgpO1xyXG5cclxuICBjb25zdCBzZWxlY3RvcnMgPSBbXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6IFwiVHlwZVwiLFxyXG4gICAgICBvcHRpb25zOiBWSVNUWVBFUyxcclxuICAgICAgdmFsOiB2aXNHcmFwaCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6IFwiUmVsYXRpb25cIixcclxuICAgICAgb3B0aW9uczogUkVMQVRJT05TLFxyXG4gICAgICB2YWw6IHZpc1JlbGF0aW9uLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDogXCJDbG9zZSBJbXBsaWVkXCIsXHJcbiAgICAgIG9wdGlvbnM6IFJFQWxDTE9TRUQsXHJcbiAgICAgIHZhbDogdmlzQ2xvc2VkLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDogXCJObyBVbmxpbmtlZFwiLFxyXG4gICAgICBvcHRpb25zOiBBTExVTkxJTktFRCxcclxuICAgICAgdmFsOiB2aXNBbGwsXHJcbiAgICB9LFxyXG4gIF07XHJcblxyXG4gIGNvbnN0IFt3aWR0aCwgaGVpZ2h0XSA9IFtcclxuICAgIE1hdGgucm91bmQod2luZG93LmlubmVyV2lkdGggLyAxLjMpLFxyXG4gICAgTWF0aC5yb3VuZCh3aW5kb3cuaW5uZXJIZWlnaHQgLyAxLjMpLFxyXG4gIF07XHJcblxyXG4gIGNvbnN0IFt1cCwgc2FtZSwgZG93bl0gPSBbXHJcbiAgICBnZXRTdWJJbkRpcnMobWFpbkcsIFwidXBcIiksXHJcbiAgICBnZXRTdWJJbkRpcnMobWFpbkcsIFwic2FtZVwiKSxcclxuICAgIGdldFN1YkluRGlycyhtYWluRywgXCJkb3duXCIpLFxyXG4gIF07XHJcblxyXG4gIGNvbnN0IFtjbG9zZWRQYXJlbnROb1NpbmdsZSwgY2xvc2VkU2libGluZ05vU2luZ2xlLCBjbG9zZWRDaGlsZE5vU2luZ2xlXSA9IFtcclxuICAgIGNsb3NlSW1wbGllZExpbmtzKHVwLCBkb3duKSxcclxuICAgIGNsb3NlSW1wbGllZExpbmtzKHNhbWUsIHNhbWUpLFxyXG4gICAgY2xvc2VJbXBsaWVkTGlua3MoZG93biwgdXApLFxyXG4gIF07XHJcblxyXG4gIGNvbnN0IGdyYXBoczogVmlzR3JhcGhzID0ge1xyXG4gICAgUGFyZW50OiB7XHJcbiAgICAgIFJlYWw6IHtcclxuICAgICAgICBBbGw6IHVwLFxyXG4gICAgICAgIFwiTm8gVW5saW5rZWRcIjogcmVtb3ZlVW5saW5rZWROb2Rlcyh1cCksXHJcbiAgICAgIH0sXHJcbiAgICAgIENsb3NlZDoge1xyXG4gICAgICAgIEFsbDogY2xvc2VkUGFyZW50Tm9TaW5nbGUsXHJcbiAgICAgICAgXCJObyBVbmxpbmtlZFwiOiByZW1vdmVVbmxpbmtlZE5vZGVzKGNsb3NlZFBhcmVudE5vU2luZ2xlKSxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBTaWJsaW5nOiB7XHJcbiAgICAgIFJlYWw6IHtcclxuICAgICAgICBBbGw6IHNhbWUsXHJcbiAgICAgICAgXCJObyBVbmxpbmtlZFwiOiByZW1vdmVVbmxpbmtlZE5vZGVzKHNhbWUpLFxyXG4gICAgICB9LFxyXG4gICAgICBDbG9zZWQ6IHtcclxuICAgICAgICBBbGw6IGNsb3NlZFNpYmxpbmdOb1NpbmdsZSxcclxuICAgICAgICBcIk5vIFVubGlua2VkXCI6IHJlbW92ZVVubGlua2VkTm9kZXMoY2xvc2VkU2libGluZ05vU2luZ2xlKSxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBDaGlsZDoge1xyXG4gICAgICBSZWFsOiB7XHJcbiAgICAgICAgQWxsOiBkb3duLFxyXG4gICAgICAgIFwiTm8gVW5saW5rZWRcIjogcmVtb3ZlVW5saW5rZWROb2Rlcyhkb3duKSxcclxuICAgICAgfSxcclxuICAgICAgQ2xvc2VkOiB7XHJcbiAgICAgICAgQWxsOiBjbG9zZWRDaGlsZE5vU2luZ2xlLFxyXG4gICAgICAgIFwiTm8gVW5saW5rZWRcIjogcmVtb3ZlVW5saW5rZWROb2RlcyhjbG9zZWRDaGlsZE5vU2luZ2xlKSxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfTtcclxuXHJcbiAgJDogYXJnQXJyID0gW1xyXG4gICAgZ3JhcGhzW3NlbGVjdG9yc1sxXS52YWxdW3NlbGVjdG9yc1syXS52YWxdW3NlbGVjdG9yc1szXS52YWxdLFxyXG4gICAgYXBwLFxyXG4gICAgY3VyckZpbGUsXHJcbiAgICBtb2RhbCxcclxuICAgIHdpZHRoLFxyXG4gICAgaGVpZ2h0LFxyXG4gIF07XHJcblxyXG4gIGNvbnN0IHR5cGVzOiB7XHJcbiAgICBbdmlzIGluIFZpc1R5cGVdOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQ7XHJcbiAgfSA9IHtcclxuICAgIFwiRm9yY2UgRGlyZWN0ZWQgR3JhcGhcIjogZm9yY2VEaXJlY3RlZEcsXHJcbiAgICBcIlRpZHkgVHJlZVwiOiB0aWR5VHJlZSxcclxuICAgIFwiQ2lyY2xlIFBhY2tpbmdcIjogY2lyY2xlUGFja2luZyxcclxuICAgIFwiRWRnZSBCdW5kbGluZ1wiOiBlZGdlQnVuZGxpbmcsXHJcbiAgICBcIkFyYyBEaWFncmFtXCI6IGFyY0RpYWdyYW0sXHJcbiAgICBTdW5idXJzdDogc3VuYnVyc3QsXHJcbiAgICBcIlRyZWUgTWFwXCI6IHRyZWVNYXAsXHJcbiAgICBJY2ljbGU6IGljaWNsZSxcclxuICAgIFwiUmFkaWFsIFRyZWVcIjogcmFkaWFsVHJlZSxcclxuICB9O1xyXG5cclxuICBmdW5jdGlvbiBkcmF3KHR5cGU6IFZpc1R5cGUpIHtcclxuICAgIGlmICghZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5kMy1ncmFwaFwiKSkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmQzLWdyYXBoXCIpPy5lbXB0eSgpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICB0eXBlc1t0eXBlXSguLi5hcmdBcnIpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICB3YXJuKGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDEwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuZDMtZ3JhcGhcIikuZW1wdHkoKTtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICB0eXBlc1t0eXBlXSguLi5hcmdBcnIpO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIHdhcm4oZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAkOiBkcmF3KHNlbGVjdG9yc1swXS52YWwgYXMgVmlzVHlwZSk7XHJcbjwvc2NyaXB0PlxyXG5cclxuPGRpdj5cclxuICB7I2VhY2ggc2VsZWN0b3JzIGFzIHsgdGV4dCwgb3B0aW9ucywgdmFsIH19XHJcbiAgICA8c3Bhbj5cclxuICAgICAge3RleHR9OlxyXG4gICAgICA8c2VsZWN0IGJpbmQ6dmFsdWU9e3ZhbH0+XHJcbiAgICAgICAgeyNlYWNoIG9wdGlvbnMgYXMgb3B9XHJcbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPXtvcH0+e29wfTwvb3B0aW9uPlxyXG4gICAgICAgIHsvZWFjaH1cclxuICAgICAgPC9zZWxlY3Q+XHJcbiAgICA8L3NwYW4+XHJcbiAgey9lYWNofVxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJkMy1ncmFwaFwiIC8+XHJcbiIsICJpbXBvcnQgKiBhcyBkMyBmcm9tIFwiZDNcIjtcclxuaW1wb3J0IHR5cGUgR3JhcGggZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHR5cGUgeyBURmlsZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgdHlwZSB7IGQzTm9kZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IGdyYXBobGliVG9EMywgVmlzTW9kYWwgfSBmcm9tIFwiLi9WaXNNb2RhbFwiO1xyXG5pbXBvcnQgeyBvcGVuT3JTd2l0Y2ggfSBmcm9tIFwib2JzaWRpYW4tY29tbXVuaXR5LWxpYlwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IGFyY0RpYWdyYW0gPSAoXHJcbiAgZ3JhcGg6IEdyYXBoLFxyXG4gIGN1cnJGaWxlOiBURmlsZSxcclxuICBtb2RhbDogVmlzTW9kYWwsXHJcbiAgd2lkdGg6IG51bWJlcixcclxuICBoZWlnaHQ6IG51bWJlclxyXG4pID0+IHtcclxuICBjb25zdCBkYXRhID0gZ3JhcGhsaWJUb0QzKGdyYXBoKTtcclxuXHJcbiAgY29uc3QgbWFyZ2luID0geyB0b3A6IDIwLCByaWdodDogMjAsIGJvdHRvbTogMjAsIGxlZnQ6IDE1MCB9O1xyXG4gIGNvbnN0IHN2ZyA9IGQzXHJcbiAgICAuc2VsZWN0KFwiLmQzLWdyYXBoXCIpXHJcbiAgICAuYXBwZW5kKFwic3ZnXCIpXHJcbiAgICAuYXR0cihcImhlaWdodFwiLCBoZWlnaHQpXHJcbiAgICAuYXR0cihcIndpZHRoXCIsIHdpZHRoKTtcclxuXHJcbiAgY29uc3Qgbm9kZXMgPSBkYXRhLm5vZGVzLm1hcCgoeyBpZCwgbmFtZSB9KSA9PiAoe1xyXG4gICAgaWQsXHJcbiAgICBuYW1lLFxyXG4gICAgc291cmNlTGlua3M6IFtdLFxyXG4gICAgdGFyZ2V0TGlua3M6IFtdLFxyXG4gIH0pKTtcclxuXHJcbiAgY29uc3Qgbm9kZUJ5SWQgPSBuZXcgTWFwKG5vZGVzLm1hcCgoZCkgPT4gW2QuaWQsIGRdKSk7XHJcblxyXG4gIGNvbnN0IGxpbmtzID0gZGF0YS5saW5rcy5tYXAoKHsgc291cmNlLCB0YXJnZXQgfSkgPT4gKHtcclxuICAgIHNvdXJjZTogbm9kZUJ5SWQuZ2V0KHNvdXJjZSBhcyBudW1iZXIpLFxyXG4gICAgdGFyZ2V0OiBub2RlQnlJZC5nZXQodGFyZ2V0IGFzIG51bWJlciksXHJcbiAgfSkpO1xyXG5cclxuICBmb3IgKGNvbnN0IGxpbmsgb2YgbGlua3MpIHtcclxuICAgIGNvbnN0IHsgc291cmNlLCB0YXJnZXQgfSA9IGxpbms7XHJcbiAgICBzb3VyY2Uuc291cmNlTGlua3MucHVzaChsaW5rKTtcclxuICAgIHRhcmdldC50YXJnZXRMaW5rcy5wdXNoKGxpbmspO1xyXG4gIH1cclxuXHJcbiAgc3ZnLmFwcGVuZChcInN0eWxlXCIpLnRleHQoYFxyXG5cclxucGF0aCB7XHJcbiAgc3Ryb2tlOiAjODA4MDgwO1xyXG4gIG9wYWNpdHk6IDAuODtcclxufVxyXG5cclxudGV4dCB7XHJcbiAgc3Ryb2tlOiB2YXIoLS10ZXh0LWEpO1xyXG4gIG9wYWNpdHk6IDAuODtcclxufVxyXG5cclxuXHJcbi5ob3ZlciBnLnByaW1hcnkgdGV4dCB7XHJcbiAgZmlsbDogYmxhY2s7XHJcbn1cclxuXHJcbi5ob3ZlciBnLnNlY29uZGFyeSB0ZXh0IHtcclxuICBmaWxsOiAjMzMzO1xyXG59XHJcblxyXG4uaG92ZXIgLnNlY29uZGFyeSB7XHJcbiAgICBjb2xvcjogcmVkO1xyXG59XHJcblxyXG4uaG92ZXIgcGF0aC5wcmltYXJ5IHtcclxuICBzdHJva2U6ICMzMzM7XHJcbiAgc3Ryb2tlLW9wYWNpdHk6IDE7XHJcbn1cclxuXHJcbi5ob3ZlciByZWN0IHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbmApO1xyXG5cclxuICBjb25zdCB5ID0gZDMuc2NhbGVQb2ludChub2Rlcy5tYXAoKGQpID0+IGQubmFtZSkuc29ydChkMy5hc2NlbmRpbmcpLCBbXHJcbiAgICBtYXJnaW4udG9wLFxyXG4gICAgaGVpZ2h0IC0gbWFyZ2luLmJvdHRvbSxcclxuICBdKTtcclxuXHJcbiAgY29uc3QgbGFiZWwgPSBzdmdcclxuICAgIC5hcHBlbmQoXCJnXCIpXHJcbiAgICAuYXR0cihcImZvbnQtZmFtaWx5XCIsIFwic2Fucy1zZXJpZlwiKVxyXG4gICAgLmF0dHIoXCJmb250LXNpemVcIiwgMTApXHJcbiAgICAuYXR0cihcInRleHQtYW5jaG9yXCIsIFwiZW5kXCIpXHJcbiAgICAuc2VsZWN0QWxsKFwiZ1wiKVxyXG4gICAgLmRhdGEobm9kZXMpXHJcbiAgICAuam9pbihcImdcIilcclxuICAgIC5hdHRyKFwidHJhbnNmb3JtXCIsIChkKSA9PiBgdHJhbnNsYXRlKCR7bWFyZ2luLmxlZnR9LCR7KGQueSA9IHkoZC5uYW1lKSl9KWApXHJcbiAgICAuY2FsbCgoZykgPT5cclxuICAgICAgZ1xyXG4gICAgICAgIC5hcHBlbmQoXCJ0ZXh0XCIpXHJcbiAgICAgICAgLmF0dHIoXCJ4XCIsIC02KVxyXG4gICAgICAgIC5hdHRyKFwiZHlcIiwgXCIwLjM1ZW1cIilcclxuICAgICAgICAvLyAuYXR0cihcImZpbGxcIiwgKGQpID0+IGQzLmxhYihjb2xvcihkLmdyb3VwKSkuZGFya2VyKDIpKVxyXG4gICAgICAgIC50ZXh0KChkKSA9PiBkLm5hbWUpXHJcbiAgICApXHJcbiAgICAuY2FsbChcclxuICAgICAgKGcpID0+IGcuYXBwZW5kKFwiY2lyY2xlXCIpLmF0dHIoXCJyXCIsIDMpXHJcbiAgICAgIC8vIC5hdHRyKFwiZmlsbFwiLCAoZCkgPT4gY29sb3IoZC5ncm91cCkpXHJcbiAgICApO1xyXG5cclxuICBjb25zdCBwYXRoID0gc3ZnXHJcbiAgICAuaW5zZXJ0KFwiZ1wiLCBcIipcIilcclxuICAgIC5hdHRyKFwiZmlsbFwiLCBcIm5vbmVcIilcclxuICAgIC5hdHRyKFwic3Ryb2tlLW9wYWNpdHlcIiwgMC42KVxyXG4gICAgLmF0dHIoXCJzdHJva2Utd2lkdGhcIiwgMS41KVxyXG4gICAgLnNlbGVjdEFsbChcInBhdGhcIilcclxuICAgIC5kYXRhKGxpbmtzKVxyXG4gICAgLmpvaW4oXCJwYXRoXCIpXHJcbiAgICAvLyAuYXR0cihcInN0cm9rZVwiLCAoZCkgPT5cclxuICAgIC8vICAgZC5zb3VyY2UuZ3JvdXAgPT09IGQudGFyZ2V0Lmdyb3VwID8gY29sb3IoZC5zb3VyY2UuZ3JvdXApIDogXCIjYWFhXCJcclxuICAgIC8vIClcclxuICAgIC5hdHRyKFwiZFwiLCBhcmMpO1xyXG5cclxuICBjb25zdCBzdGVwID0gMTA0O1xyXG5cclxuICBjb25zdCBub2RlQ2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQsIGRlc3Q6IHN0cmluZykgPT4ge1xyXG4gICAgb3Blbk9yU3dpdGNoKGRlc3QsIGV2ZW50KTtcclxuICAgIG1vZGFsLmNsb3NlKCk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgb3ZlcmxheSA9IHN2Z1xyXG4gICAgLmFwcGVuZChcImdcIilcclxuICAgIC5hdHRyKFwiZmlsbFwiLCBcIm5vbmVcIilcclxuICAgIC5hdHRyKFwicG9pbnRlci1ldmVudHNcIiwgXCJhbGxcIilcclxuICAgIC5zZWxlY3RBbGwoXCJyZWN0XCIpXHJcbiAgICAuZGF0YShub2RlcylcclxuICAgIC5qb2luKFwicmVjdFwiKVxyXG4gICAgLmF0dHIoXCJ3aWR0aFwiLCBtYXJnaW4ubGVmdCArIDQwKVxyXG4gICAgLmF0dHIoXCJoZWlnaHRcIiwgc3RlcClcclxuICAgIC5hdHRyKFwieVwiLCAoZCkgPT4geShkLm5hbWUpIC0gc3RlcCAvIDIpXHJcbiAgICAub24oXCJtb3VzZW92ZXJcIiwgKGQpID0+IHtcclxuICAgICAgc3ZnLmNsYXNzZWQoXCJob3ZlclwiLCB0cnVlKTtcclxuICAgICAgbGFiZWwuY2xhc3NlZChcInByaW1hcnlcIiwgKG4pID0+IG4gPT09IGQpO1xyXG4gICAgICBsYWJlbC5jbGFzc2VkKFxyXG4gICAgICAgIFwic2Vjb25kYXJ5XCIsXHJcbiAgICAgICAgKG4pID0+XHJcbiAgICAgICAgICBuLnNvdXJjZUxpbmtzLnNvbWUoKGwpID0+IGwudGFyZ2V0ID09PSBkKSB8fFxyXG4gICAgICAgICAgbi50YXJnZXRMaW5rcy5zb21lKChsKSA9PiBsLnNvdXJjZSA9PT0gZClcclxuICAgICAgKTtcclxuICAgICAgcGF0aFxyXG4gICAgICAgIC5jbGFzc2VkKFwicHJpbWFyeVwiLCAobCkgPT4gbC5zb3VyY2UgPT09IGQgfHwgbC50YXJnZXQgPT09IGQpXHJcbiAgICAgICAgLmZpbHRlcihcIi5wcmltYXJ5XCIpXHJcbiAgICAgICAgLnJhaXNlKCk7XHJcbiAgICB9KVxyXG4gICAgLm9uKFwibW91c2VvdXRcIiwgKGQpID0+IHtcclxuICAgICAgc3ZnLmNsYXNzZWQoXCJob3ZlclwiLCBmYWxzZSk7XHJcbiAgICAgIGxhYmVsLmNsYXNzZWQoXCJwcmltYXJ5XCIsIGZhbHNlKTtcclxuICAgICAgbGFiZWwuY2xhc3NlZChcInNlY29uZGFyeVwiLCBmYWxzZSk7XHJcbiAgICAgIHBhdGguY2xhc3NlZChcInByaW1hcnlcIiwgZmFsc2UpLm9yZGVyKCk7XHJcbiAgICB9KVxyXG4gICAgLm9uKFwiY2xpY2tcIiwgKGV2ZW50OiBNb3VzZUV2ZW50LCBkOiBkM05vZGUpID0+IHtcclxuICAgICAgbm9kZUNsaWNrKGV2ZW50LCBkLm5hbWUpO1xyXG4gICAgfSk7XHJcblxyXG4gIC8vICAgZnVuY3Rpb24gdXBkYXRlKCkge1xyXG4gIC8vICAgICB5LmRvbWFpbihub2Rlcy5zb3J0KHZpZXdvZiBvcmRlci52YWx1ZSkubWFwKGQgPT4gZC5pZCkpO1xyXG5cclxuICAvLyAgICAgY29uc3QgdCA9IHN2Zy50cmFuc2l0aW9uKClcclxuICAvLyAgICAgICAgIC5kdXJhdGlvbig3NTApO1xyXG5cclxuICAvLyAgICAgbGFiZWwudHJhbnNpdGlvbih0KVxyXG4gIC8vICAgICAgICAgLmRlbGF5KChkLCBpKSA9PiBpICogMjApXHJcbiAgLy8gICAgICAgICAuYXR0clR3ZWVuKFwidHJhbnNmb3JtXCIsIGQgPT4ge1xyXG4gIC8vICAgICAgICAgICBjb25zdCBpID0gZDMuaW50ZXJwb2xhdGVOdW1iZXIoZC55LCB5KGQuaWQpKTtcclxuICAvLyAgICAgICAgICAgcmV0dXJuIHQgPT4gYHRyYW5zbGF0ZSgke21hcmdpbi5sZWZ0fSwke2QueSA9IGkodCl9KWA7XHJcbiAgLy8gICAgICAgICB9KTtcclxuXHJcbiAgLy8gICAgIHBhdGgudHJhbnNpdGlvbih0KVxyXG4gIC8vICAgICAgICAgLmR1cmF0aW9uKDc1MCArIG5vZGVzLmxlbmd0aCAqIDIwKVxyXG4gIC8vICAgICAgICAgLmF0dHJUd2VlbihcImRcIiwgZCA9PiAoKSA9PiBhcmMoZCkpO1xyXG5cclxuICAvLyAgICAgb3ZlcmxheS50cmFuc2l0aW9uKHQpXHJcbiAgLy8gICAgICAgICAuZGVsYXkoKGQsIGkpID0+IGkgKiAyMClcclxuICAvLyAgICAgICAgIC5hdHRyKFwieVwiLCBkID0+IHkoZC5pZCkgLSBzdGVwIC8gMik7XHJcbiAgLy8gICB9XHJcblxyXG4gIC8vICAgdmlld29mIG9yZGVyLmFkZEV2ZW50TGlzdGVuZXIoXCJpbnB1dFwiLCB1cGRhdGUpO1xyXG4gIC8vICAgaW52YWxpZGF0aW9uLnRoZW4oKCkgPT4gdmlld29mIG9yZGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJpbnB1dFwiLCB1cGRhdGUpKTtcclxuXHJcbiAgZnVuY3Rpb24gYXJjKGQ6IHsgc291cmNlOiB7IHk6IG51bWJlciB9OyB0YXJnZXQ6IHsgeTogbnVtYmVyIH0gfSkge1xyXG4gICAgY29uc3QgeTEgPSBkLnNvdXJjZS55O1xyXG4gICAgY29uc3QgeTIgPSBkLnRhcmdldC55O1xyXG4gICAgY29uc3QgciA9IE1hdGguYWJzKHkyIC0geTEpIC8gMjtcclxuICAgIHJldHVybiBgTSR7bWFyZ2luLmxlZnR9LCR7eTF9QSR7cn0sJHtyfSAwLDAsJHt5MSA8IHkyID8gMSA6IDB9ICR7bWFyZ2luLmxlZnRcclxuICAgICAgfSwke3kyfWA7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB6b29tZWQoeyB0cmFuc2Zvcm0gfSkge1xyXG4gICAgc3ZnLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgdHJhbnNmb3JtKTtcclxuICB9XHJcbiAgc3ZnLmNhbGwoXHJcbiAgICBkM1xyXG4gICAgICAuem9vbSgpXHJcbiAgICAgIC5leHRlbnQoW1xyXG4gICAgICAgIFswLCAwXSxcclxuICAgICAgICBbd2lkdGgsIGhlaWdodF0sXHJcbiAgICAgIF0pXHJcbiAgICAgIC5zY2FsZUV4dGVudChbMC41LCA4XSlcclxuICAgICAgLm9uKFwiem9vbVwiLCB6b29tZWQpXHJcbiAgKTtcclxufTtcclxuIiwgImltcG9ydCAqIGFzIGQzIGZyb20gXCJkM1wiO1xyXG5pbXBvcnQgdHlwZSBHcmFwaCBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgdHlwZSB7IFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB0eXBlIHsgQWRqTGlzdEl0ZW0sIGQzTGluaywgZDNOb2RlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHsgYmZzQWRqTGlzdCwgZGZzRmxhdEFkakxpc3QsIFZpc01vZGFsIH0gZnJvbSBcIi4vVmlzTW9kYWxcIjtcclxuaW1wb3J0IHsgb3Blbk9yU3dpdGNoIH0gZnJvbSBcIm9ic2lkaWFuLWNvbW11bml0eS1saWJcIjtcclxuaW1wb3J0IHsgZ2V0Q3VyckZpbGUgfSBmcm9tIFwiLi4vVXRpbHMvT2JzaWRpYW5VdGlsc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IGNpcmNsZVBhY2tpbmcgPSAoXHJcbiAgZ3JhcGg6IEdyYXBoLFxyXG4gIGN1cnJGaWxlOiBURmlsZSxcclxuICBtb2RhbDogVmlzTW9kYWwsXHJcbiAgd2lkdGg6IG51bWJlcixcclxuICBoZWlnaHQ6IG51bWJlclxyXG4pID0+IHtcclxuICBjb25zdCBmbGF0QWRqID0gZGZzRmxhdEFkakxpc3QoZ3JhcGgsIGN1cnJGaWxlLmJhc2VuYW1lKTtcclxuICBjb25zb2xlLmxvZyh7IGZsYXRBZGogfSk7XHJcblxyXG4gIGNvbnN0IGhpZXJhcmNoeSA9IGQzLnN0cmF0aWZ5KCkoZmxhdEFkaik7XHJcbiAgY29uc29sZS5sb2coeyBoaWVyYXJjaHkgfSk7XHJcblxyXG4gIGNvbnN0IGFkakxpc3Q6IEFkakxpc3RJdGVtW10gPSBiZnNBZGpMaXN0KGdyYXBoLCBjdXJyRmlsZS5iYXNlbmFtZSk7XHJcbiAgY29uc29sZS5sb2coeyBhZGpMaXN0IH0pO1xyXG5cclxuICBjb25zdCBub0RvdWJsZXMgPSBbLi4uYWRqTGlzdF07XHJcbiAgbm9Eb3VibGVzLmZvckVhY2goKGEsIGkpID0+IHtcclxuICAgIGlmIChub0RvdWJsZXMuc29tZSgoYiwgaikgPT4gaSAhPT0gaiAmJiBhLm5hbWUgPT09IGIubmFtZSkpIHtcclxuICAgICAgY29uc3QgaW5kZXggPSBub0RvdWJsZXMuZmluZEluZGV4KChiLCBqKSA9PiBpICE9PSBqICYmIGEubmFtZSA9PT0gYi5uYW1lKTtcclxuICAgICAgbm9Eb3VibGVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIC8vIGNvbnN0IG5vRG91YmxlcyA9IGFkakxpc3QuZmlsdGVyKChhKSA9PiB7XHJcbiAgLy8gICAhYWRqTGlzdC5zb21lKChiKSA9PiB7XHJcbiAgLy8gICAgIGNvbnNvbGUubG9nKHsgYSwgYiB9KTtcclxuICAvLyAgICAgcmV0dXJuIGEubmFtZSAhPT0gYi5uYW1lICYmIGEucGFyZW50SWQgPT09IGIucGFyZW50SWQ7XHJcbiAgLy8gICB9KTtcclxuICAvLyB9KTtcclxuICBjb25zb2xlLmxvZyh7IG5vRG91YmxlcyB9KTtcclxuXHJcbiAgLy8gY29uc3Qgcm9vdCA9IHN0cmF0aWZ5KG5vRG91Ymxlcyk7XHJcbiAgLy8gY29uc29sZS5sb2cocm9vdCk7XHJcblxyXG4gIC8vIGNvbnN0IGhpZXJhcmNoeTogZDNUcmVlID0gY3JlYXRlVHJlZUhpZXJhcmNoeShub0RvdWJsZXMsIHtcclxuICAvLyAgIGlkOiBcIm5hbWVcIixcclxuICAvLyAgIGV4Y2x1ZGVQYXJlbnQ6IHRydWUsXHJcbiAgLy8gfSk7XHJcblxyXG4gIC8vIGNvbnNvbGUubG9nKHsgaGllcmFyY2h5IH0pO1xyXG5cclxuICBjb25zdCBsaW5rQXJyOiBkM0xpbmtbXSA9IG5vRG91Ymxlcy5tYXAoKGQpID0+IHtcclxuICAgIHJldHVybiB7IHNvdXJjZTogZC5uYW1lLCB0YXJnZXQ6IGQucGFyZW50SWQgfTtcclxuICB9KTtcclxuICBjb25zdCBsaW5rcyA9IGxpbmtBcnIubWFwKChkKSA9PiBPYmplY3QuY3JlYXRlKGQpKTtcclxuXHJcbiAgY29uc3Qgc3ZnID0gZDNcclxuICAgIC5zZWxlY3QoXCIuZDMtZ3JhcGhcIilcclxuICAgIC5hcHBlbmQoXCJzdmdcIilcclxuICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodClcclxuICAgIC5hdHRyKFwid2lkdGhcIiwgd2lkdGgpO1xyXG5cclxuICBjb25zdCBub2RlQ29sb3VyID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eVZhbHVlKFxyXG4gICAgXCItLXRleHQtYWNjZW50XCJcclxuICApO1xyXG5cclxuICAvLyBJbml0aWFsaXplIHRoZSBjaXJjbGU6IGFsbCBsb2NhdGVkIGF0IHRoZSBjZW50ZXIgb2YgdGhlIHN2ZyBhcmVhXHJcbiAgY29uc3Qgbm9kZSA9IHN2Z1xyXG4gICAgLmFwcGVuZChcImdcIilcclxuICAgIC5zZWxlY3RBbGwoXCJjaXJjbGVcIilcclxuICAgIC5kYXRhKG5vRG91YmxlcylcclxuICAgIC5qb2luKFwiY2lyY2xlXCIpXHJcbiAgICAuYXR0cihcInJcIiwgKGQpID0+IE1hdGgucm91bmQoZC5oZWlnaHQgLyAxMCkgKyAxMClcclxuICAgIC5hdHRyKFwiY3hcIiwgd2lkdGggLyAyKVxyXG4gICAgLmF0dHIoXCJjeVwiLCBoZWlnaHQgLyAyKVxyXG4gICAgLnN0eWxlKFwiZmlsbFwiLCBub2RlQ29sb3VyKVxyXG4gICAgLnN0eWxlKFwiZmlsbC1vcGFjaXR5XCIsIDAuNilcclxuICAgIC5hdHRyKFwic3Ryb2tlXCIsIG5vZGVDb2xvdXIpXHJcbiAgICAuc3R5bGUoXCJzdHJva2Utd2lkdGhcIiwgNCk7XHJcblxyXG4gIG5vZGUuYXR0cihcImFyaWEtbGFiZWxcIiwgKGQ6IEFkakxpc3RJdGVtKSA9PiBkLm5hbWUpO1xyXG5cclxuICBjb25zdCBub2RlQ2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQsIGRlc3Q6IHN0cmluZykgPT4ge1xyXG4gICAgY29uc3QgY3VyckZpbGUgPSBnZXRDdXJyRmlsZSgpO1xyXG4gICAgb3Blbk9yU3dpdGNoKGRlc3QsIGV2ZW50KTtcclxuICAgIG1vZGFsLmNsb3NlKCk7XHJcbiAgfTtcclxuICBub2RlLm9uKFwiY2xpY2tcIiwgKGV2ZW50OiBNb3VzZUV2ZW50LCBkOiBkM05vZGUpID0+IHtcclxuICAgIG5vZGVDbGljayhldmVudCwgZC5uYW1lKTtcclxuICB9KTtcclxuXHJcbiAgY29uc3QgbGluayA9IHN2Z1xyXG4gICAgLmFwcGVuZChcImdcIilcclxuICAgIC5hdHRyKFwic3Ryb2tlXCIsIFwiIzg2ODI4MlwiKVxyXG4gICAgLmF0dHIoXCJzdHJva2Utb3BhY2l0eVwiLCAwLjYpXHJcbiAgICAuc2VsZWN0QWxsKFwibGluZVwiKVxyXG4gICAgLmRhdGEobGlua3MpXHJcbiAgICAuam9pbihcImxpbmVcIilcclxuICAgIC5hdHRyKFwic3Ryb2tlLXdpZHRoXCIsIDAuOCk7XHJcblxyXG4gIC8vIEZlYXR1cmVzIG9mIHRoZSBmb3JjZXMgYXBwbGllZCB0byB0aGUgbm9kZXM6XHJcbiAgY29uc3Qgc2ltdWxhdGlvbiA9IGQzXHJcbiAgICAuZm9yY2VTaW11bGF0aW9uKClcclxuICAgIC5mb3JjZShcclxuICAgICAgXCJjZW50ZXJcIixcclxuICAgICAgZDNcclxuICAgICAgICAuZm9yY2VDZW50ZXIoKVxyXG4gICAgICAgIC54KHdpZHRoIC8gMilcclxuICAgICAgICAueShoZWlnaHQgLyAyKVxyXG4gICAgKSAvLyBBdHRyYWN0aW9uIHRvIHRoZSBjZW50ZXIgb2YgdGhlIHN2ZyBhcmVhXHJcbiAgICAuZm9yY2UoXCJjaGFyZ2VcIiwgZDMuZm9yY2VNYW55Qm9keSgpLnN0cmVuZ3RoKDAuNSkpIC8vIE5vZGVzIGFyZSBhdHRyYWN0ZWQgb25lIGVhY2ggb3RoZXIgb2YgdmFsdWUgaXMgPiAwXHJcbiAgICAuZm9yY2UoXHJcbiAgICAgIFwiY29sbGlkZVwiLFxyXG4gICAgICBkMy5mb3JjZUNvbGxpZGUoKS5zdHJlbmd0aCgwLjAyNSkucmFkaXVzKDMwKS5pdGVyYXRpb25zKDEpXHJcbiAgICApOyAvLyBGb3JjZSB0aGF0IGF2b2lkcyBjaXJjbGUgb3ZlcmxhcHBpbmdcclxuXHJcbiAgLy8gQXBwbHkgdGhlc2UgZm9yY2VzIHRvIHRoZSBub2RlcyBhbmQgdXBkYXRlIHRoZWlyIHBvc2l0aW9ucy5cclxuICAvLyBPbmNlIHRoZSBmb3JjZSBhbGdvcml0aG0gaXMgaGFwcHkgd2l0aCBwb3NpdGlvbnMgKCdhbHBoYScgdmFsdWUgaXMgbG93IGVub3VnaCksIHNpbXVsYXRpb25zIHdpbGwgc3RvcC5cclxuICBzaW11bGF0aW9uLm5vZGVzKG5vRG91Ymxlcykub24oXCJ0aWNrXCIsIGZ1bmN0aW9uIChkKSB7XHJcbiAgICBub2RlLmF0dHIoXCJjeFwiLCAoZCkgPT4gZC54KS5hdHRyKFwiY3lcIiwgKGQpID0+IGQueSk7XHJcbiAgfSk7XHJcblxyXG4gIGZ1bmN0aW9uIHpvb21lZCh7IHRyYW5zZm9ybSB9KSB7XHJcbiAgICBub2RlLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgdHJhbnNmb3JtKTtcclxuICB9XHJcbiAgc3ZnLmNhbGwoXHJcbiAgICBkM1xyXG4gICAgICAuem9vbSgpXHJcbiAgICAgIC5leHRlbnQoW1xyXG4gICAgICAgIFswLCAwXSxcclxuICAgICAgICBbd2lkdGgsIGhlaWdodF0sXHJcbiAgICAgIF0pXHJcbiAgICAgIC5zY2FsZUV4dGVudChbMC41LCA4XSlcclxuICAgICAgLm9uKFwiem9vbVwiLCB6b29tZWQpXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgZHJhZyA9IChcclxuICAgIHNpbXVsYXRpb246IGQzLlNpbXVsYXRpb248ZDMuU2ltdWxhdGlvbk5vZGVEYXR1bSwgdW5kZWZpbmVkPlxyXG4gICkgPT4ge1xyXG4gICAgZnVuY3Rpb24gZHJhZ3N0YXJ0ZWQoZXZlbnQsIGQpIHtcclxuICAgICAgaWYgKCFldmVudC5hY3RpdmUpIHNpbXVsYXRpb24uYWxwaGFUYXJnZXQoMC4zKS5yZXN0YXJ0KCk7XHJcbiAgICAgIGQuZnggPSBkLng7XHJcbiAgICAgIGQuZnkgPSBkLnk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gZHJhZ2dlZChldmVudCwgZCkge1xyXG4gICAgICBkLmZ4ID0gZXZlbnQueDtcclxuICAgICAgZC5meSA9IGV2ZW50Lnk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gZHJhZ2VuZGVkKGV2ZW50LCBkKSB7XHJcbiAgICAgIGlmICghZXZlbnQuYWN0aXZlKSBzaW11bGF0aW9uLmFscGhhVGFyZ2V0KDApO1xyXG4gICAgICBkLmZ4ID0gbnVsbDtcclxuICAgICAgZC5meSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGQzXHJcbiAgICAgIC5kcmFnKClcclxuICAgICAgLm9uKFwic3RhcnRcIiwgZHJhZ3N0YXJ0ZWQpXHJcbiAgICAgIC5vbihcImRyYWdcIiwgZHJhZ2dlZClcclxuICAgICAgLm9uKFwiZW5kXCIsIGRyYWdlbmRlZCk7XHJcbiAgfTtcclxuXHJcbiAgbm9kZS5jYWxsKGRyYWcoc2ltdWxhdGlvbikpO1xyXG5cclxuICAvLyAgIGNvbnN0IHBhY2sgPSAoZGF0YSkgPT5cclxuICAvLyAgICAgZDMucGFjaygpLnNpemUoW3dpZHRoLCBoZWlnaHRdKS5wYWRkaW5nKDMpKFxyXG4gIC8vICAgICAgIGQzXHJcbiAgLy8gICAgICAgICAuaGllcmFyY2h5KGRhdGEpXHJcbiAgLy8gICAgICAgICAuc3VtKChkKSA9PiBkLnZhbHVlKVxyXG4gIC8vICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGIudmFsdWUgLSBhLnZhbHVlKVxyXG4gIC8vICAgICApO1xyXG5cclxuICAvLyAgIGNvbnN0IHJvb3QgPSBwYWNrKGhpZXJhcmNoeSk7XHJcblxyXG4gIC8vICAgY29uc3Qgc3ZnID0gZDNcclxuICAvLyAgICAgLnNlbGVjdChcIi5kMy1ncmFwaFwiKVxyXG4gIC8vICAgICAuYXBwZW5kKFwic3ZnXCIpXHJcbiAgLy8gICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodClcclxuICAvLyAgICAgLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aClcclxuICAvLyAgICAgLnN0eWxlKFwiZm9udFwiLCBcIjEwcHggc2Fucy1zZXJpZlwiKVxyXG4gIC8vICAgICAuc3R5bGUoXCJvdmVyZmxvd1wiLCBcInZpc2libGVcIilcclxuICAvLyAgICAgLmF0dHIoXCJ0ZXh0LWFuY2hvclwiLCBcIm1pZGRsZVwiKTtcclxuXHJcbiAgLy8gICBjb25zdCBub2RlID0gc3ZnXHJcbiAgLy8gICAgIC5hcHBlbmQoXCJnXCIpXHJcbiAgLy8gICAgIC5hdHRyKFwicG9pbnRlci1ldmVudHNcIiwgXCJhbGxcIilcclxuICAvLyAgICAgLnNlbGVjdEFsbChcImdcIilcclxuICAvLyAgICAgLmRhdGEocm9vdC5kZXNjZW5kYW50cygpKVxyXG4gIC8vICAgICAuam9pbihcImdcIilcclxuICAvLyAgICAgLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgKGQpID0+IGB0cmFuc2xhdGUoJHtkLnh9LCR7ZC55fSlgKTtcclxuXHJcbiAgLy8gICBub2RlXHJcbiAgLy8gICAgIC5hcHBlbmQoXCJjaXJjbGVcIilcclxuICAvLyAgICAgLmF0dHIoXCJyXCIsIChkKSA9PiBkLnIpXHJcbiAgLy8gICAgIC5hdHRyKFwic3Ryb2tlXCIsIChkKSA9PiAoZC5jaGlsZHJlbiA/IFwiI2JiYlwiIDogXCJub25lXCIpKVxyXG4gIC8vICAgICAuYXR0cihcImZpbGxcIiwgKGQpID0+IChkLmNoaWxkcmVuID8gXCJub25lXCIgOiBcIiNkZGRcIikpO1xyXG5cclxuICAvLyAgIGNvbnN0IGxlYWYgPSBub2RlLmZpbHRlcigoZCkgPT4gIWQuY2hpbGRyZW4pO1xyXG5cclxuICAvLyAgIGxlYWYuc2VsZWN0KFwiY2lyY2xlXCIpO1xyXG5cclxuICAvLyAgIC8vIGxlYWZcclxuICAvLyAgIC8vICAgLmFwcGVuZChcImNsaXBQYXRoXCIpXHJcbiAgLy8gICAvLyAgIC5hdHRyKFwiaWRcIiwgKGQpID0+IChkLmNsaXBVaWQgPSBET00udWlkKFwiY2xpcFwiKSkuaWQpXHJcbiAgLy8gICAvLyAgIC5hcHBlbmQoXCJ1c2VcIilcclxuICAvLyAgIC8vICAgLmF0dHIoXCJ4bGluazpocmVmXCIsIChkKSA9PiBkLmxlYWZVaWQuaHJlZik7XHJcblxyXG4gIC8vICAgLy8gbGVhZlxyXG4gIC8vICAgLy8gICAuYXBwZW5kKFwidGV4dFwiKVxyXG4gIC8vICAgLy8gICAuYXR0cihcImNsaXAtcGF0aFwiLCAoZCkgPT4gZC5jbGlwVWlkKVxyXG4gIC8vICAgLy8gICAuc2VsZWN0QWxsKFwidHNwYW5cIilcclxuICAvLyAgIC8vICAgLmRhdGEoKGQpID0+IGQuZGF0YS5uYW1lLnNwbGl0KC8oPz1bQS1aXVteQS1aXSkvZykpXHJcbiAgLy8gICAvLyAgIC5qb2luKFwidHNwYW5cIilcclxuICAvLyAgIC8vICAgLmF0dHIoXCJ4XCIsIDApXHJcbiAgLy8gICAvLyAgIC5hdHRyKFwieVwiLCAoZCwgaSwgbm9kZXMpID0+IGAke2kgLSBub2Rlcy5sZW5ndGggLyAyICsgMC44fWVtYClcclxuICAvLyAgIC8vICAgLnRleHQoKGQpID0+IGQpO1xyXG5cclxuICAvLyAgIG5vZGUuYXBwZW5kKFwidGl0bGVcIikudGV4dChcclxuICAvLyAgICAgKGQpID0+IGAke2RcclxuICAvLyAgICAgICAuYW5jZXN0b3JzKClcclxuICAvLyAgICAgICAubWFwKChkKSA9PiBkLmRhdGEuZGF0YS5uYW1lKVxyXG4gIC8vICAgICAgIC5yZXZlcnNlKClcclxuICAvLyAgICAgICAuam9pbihcIi9cIil9XHJcbiAgLy8gJHtkLnZhbHVlLnRvTG9jYWxlU3RyaW5nKCl9YFxyXG4gIC8vICAgKTtcclxufTtcclxuIiwgImltcG9ydCAqIGFzIGQzIGZyb20gXCJkM1wiO1xyXG5pbXBvcnQgdHlwZSBHcmFwaCBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgdHlwZSB7IFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IGRmc0ZsYXRBZGpMaXN0LCBWaXNNb2RhbCB9IGZyb20gXCIuL1Zpc01vZGFsXCI7XHJcblxyXG5leHBvcnQgY29uc3QgZWRnZUJ1bmRsaW5nID0gKFxyXG4gIGdyYXBoOiBHcmFwaCxcclxuICBjdXJyRmlsZTogVEZpbGUsXHJcbiAgbW9kYWw6IFZpc01vZGFsLFxyXG4gIHdpZHRoOiBudW1iZXIsXHJcbiAgaGVpZ2h0OiBudW1iZXJcclxuKSA9PiB7XHJcbiAgY29uc3QgZmxhdEFkaiA9IGRmc0ZsYXRBZGpMaXN0KGdyYXBoLCBjdXJyRmlsZS5iYXNlbmFtZSk7XHJcbiAgY29uc29sZS5sb2coeyBmbGF0QWRqIH0pO1xyXG5cclxuICBjb25zdCBoaWVyID0gZDMuc3RyYXRpZnkoKShmbGF0QWRqKTtcclxuICBjb25zb2xlLmxvZyh7IGhpZXIgfSk7XHJcblxyXG4gIGNvbnN0IFBBRERJTkdfQlVCQkxFID0gMTU7IC8vIGRpc3RhbmNlIGJldHdlZW4gZWRnZSBlbmQgYW5kIGJ1YmJsZVxyXG4gIGNvbnN0IFBBRERJTkdfTEFCRUwgPSAzMDsgLy8gZGlzdGFuY2UgYmV0d2VlbiBlZGdlIGVuZCBhbmQgZW5naW5lZXIgbmFtZVxyXG4gIGNvbnN0IEJVQkJMRV9TSVpFX01JTiA9IDQ7XHJcbiAgY29uc3QgQlVCQkxFX1NJWkVfTUFYID0gMjA7XHJcblxyXG4gIHZhciBkaWFtZXRlciA9IDU2MCxcclxuICAgIHJhZGl1cyA9IGRpYW1ldGVyIC8gMixcclxuICAgIGlubmVyUmFkaXVzID0gcmFkaXVzIC0gMTcwOyAvLyBiZXR3ZWVuIGNlbnRlciBhbmQgZWRnZSBlbmRcclxuXHJcbiAgLy8gVGhlICdjbHVzdGVyJyBmdW5jdGlvbiB0YWtlcyAxIGFyZ3VtZW50IGFzIGlucHV0LiBJdCBhbHNvIGhhcyBtZXRob2RzICg/PykgbGlrZSBjbHVzdGVyLnNlcGFyYXRpb24oKSwgY2x1c3Rlci5zaXplKCkgYW5kIGNsdXN0ZXIubm9kZVNpemUoKVxyXG4gIHZhciBjbHVzdGVyID0gZDMuY2x1c3RlcigpLnNpemUoWzM2MCwgaW5uZXJSYWRpdXNdKTtcclxuXHJcbiAgdmFyIGxpbmUgPSBkM1xyXG4gICAgLmxpbmVSYWRpYWwoKVxyXG4gICAgLmN1cnZlKGQzLmN1cnZlQnVuZGxlLmJldGEoMC44NSkpXHJcbiAgICAucmFkaXVzKGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgIHJldHVybiBkWzFdO1xyXG4gICAgfSlcclxuICAgIC5hbmdsZShmdW5jdGlvbiAoZCkge1xyXG4gICAgICByZXR1cm4gKGRbMF0gLyAxODApICogTWF0aC5QSTtcclxuICAgIH0pO1xyXG5cclxuICBjb25zdCBzdmcgPSBkM1xyXG4gICAgLnNlbGVjdChcIi5kMy1ncmFwaFwiKVxyXG4gICAgLmFwcGVuZChcInN2Z1wiKVxyXG4gICAgLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0KVxyXG4gICAgLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aClcclxuICAgIC5hcHBlbmQoXCJnXCIpXHJcbiAgICAuYXR0cihcInRyYW5zZm9ybVwiLCBcInRyYW5zbGF0ZShcIiArIHJhZGl1cyArIFwiLFwiICsgcmFkaXVzICsgXCIpXCIpO1xyXG5cclxuICB2YXIgbGluayA9IHN2Zy5hcHBlbmQoXCJnXCIpLnNlbGVjdEFsbChcIi5saW5rXCIpLFxyXG4gICAgbGFiZWwgPSBzdmcuYXBwZW5kKFwiZ1wiKS5zZWxlY3RBbGwoXCIubGFiZWxcIiksXHJcbiAgICBidWJibGUgPSBzdmcuYXBwZW5kKFwiZ1wiKS5zZWxlY3RBbGwoXCIuYnViYmxlXCIpO1xyXG5cclxuICAvLyBBZGQgYSBzY2FsZSBmb3IgYnViYmxlIHNpemVcclxuICB2YXIgYnViYmxlU2l6ZVNjYWxlID0gZDNcclxuICAgIC5zY2FsZUxpbmVhcigpXHJcbiAgICAuZG9tYWluKFswLCAxMDBdKVxyXG4gICAgLnJhbmdlKFtCVUJCTEVfU0laRV9NSU4sIEJVQkJMRV9TSVpFX01BWF0pO1xyXG5cclxuICAvLyBTY2FsZSBmb3IgdGhlIGJ1YmJsZSBzaXplXHJcblxyXG4gIC8vIElmIHdhbm5hIHNlZSB5b3VyIGRhdGFcclxuICAvLyBjb25zb2xlLmxvZyhoaWVyYXJjaGljYWxEYXRhKVxyXG5cclxuICAvLyBSZWZvcm1hdCB0aGUgZGF0YVxyXG4gIHZhciByb290ID0gcGFja2FnZUhpZXJhcmNoeShoaWVyKVxyXG4gICAgLy9kZWJ1Z2dlcjtcclxuICAgIC5zdW0oZnVuY3Rpb24gKGQpIHtcclxuICAgICAgY29uc29sZS5sb2coZCk7XHJcbiAgICAgIHJldHVybiBkLmhlaWdodDtcclxuICAgIH0pO1xyXG5cclxuICAvLyBjb25zb2xlLmxvZyhyb290KVxyXG5cclxuICAvLyBCdWlsZCBhbiBvYmplY3QgdGhhdCBnaXZlcyBmZWF0dXJlIG9mIGVhY2ggbGVhdmVzXHJcbiAgY2x1c3Rlcihyb290KTtcclxuICBjb25zdCBsZWF2ZXMgPSByb290LmxlYXZlcygpO1xyXG5cclxuICAvLyBMZWF2ZXMgaXMgYW4gYXJyYXkgb2YgT2JqZWN0cy4gMSBpdGVtID0gb25lIGxlYWYuIFByb3ZpZGVzIHggYW5kIHkgZm9yIGxlYWYgcG9zaXRpb24gaW4gdGhlIHN2Zy4gQWxzbyBnaXZlcyBkZXRhaWxzIGFib3V0IGl0cyBwYXJlbnQuXHJcbiAgY29uc3QgX2xpbmsgPSBsaW5rXHJcbiAgICAuZGF0YShwYWNrYWdlSW1wb3J0cyhsZWF2ZXMpKVxyXG4gICAgLmVudGVyKClcclxuICAgIC5hcHBlbmQoXCJwYXRoXCIpXHJcbiAgICAuZWFjaChmdW5jdGlvbiAoZCkge1xyXG4gICAgICAoZC5zb3VyY2UgPSBkWzBdKSwgKGQudGFyZ2V0ID0gZFtkLmxlbmd0aCAtIDFdKTtcclxuICAgIH0pXHJcbiAgICAuYXR0cihcImNsYXNzXCIsIFwibGlua1wiKVxyXG4gICAgLmF0dHIoXCJkXCIsIGxpbmUpXHJcbiAgICAuYXR0cihcImZpbGxcIiwgXCJub25lXCIpXHJcbiAgICAuYXR0cihcInN0cm9rZVwiLCBcImJsYWNrXCIpO1xyXG5cclxuICBjb25zdCBfbGFiZWwgPSBsYWJlbFxyXG4gICAgLmRhdGEobGVhdmVzKVxyXG4gICAgLmVudGVyKClcclxuICAgIC5hcHBlbmQoXCJ0ZXh0XCIpXHJcbiAgICAuYXR0cihcImNsYXNzXCIsIFwibGFiZWxcIilcclxuICAgIC5hdHRyKFwiZHlcIiwgXCIwLjMxZW1cIilcclxuICAgIC5hdHRyKFwidHJhbnNmb3JtXCIsIGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgXCJyb3RhdGUoXCIgK1xyXG4gICAgICAgIChkLnggLSA5MCkgK1xyXG4gICAgICAgIFwiKXRyYW5zbGF0ZShcIiArXHJcbiAgICAgICAgKGQueSArIFBBRERJTkdfTEFCRUwpICtcclxuICAgICAgICBcIiwwKVwiICtcclxuICAgICAgICAoZC54IDwgMTgwID8gXCJcIiA6IFwicm90YXRlKDE4MClcIilcclxuICAgICAgKTtcclxuICAgIH0pXHJcbiAgICAuYXR0cihcInRleHQtYW5jaG9yXCIsIGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgIHJldHVybiBkLnggPCAxODAgPyBcInN0YXJ0XCIgOiBcImVuZFwiO1xyXG4gICAgfSlcclxuICAgIC50ZXh0KGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgIHJldHVybiBkLmRhdGEua2V5O1xyXG4gICAgfSk7XHJcblxyXG4gIGNvbnN0IF9idWJibGUgPSBidWJibGVcclxuICAgIC5kYXRhKGxlYXZlcylcclxuICAgIC5lbnRlcigpXHJcbiAgICAuYXBwZW5kKFwiY2lyY2xlXCIpXHJcbiAgICAuYXR0cihcImNsYXNzXCIsIFwiYnViYmxlXCIpXHJcbiAgICAuYXR0cihcInRyYW5zZm9ybVwiLCBmdW5jdGlvbiAoZCkge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIFwicm90YXRlKFwiICsgKGQueCAtIDkwKSArIFwiKXRyYW5zbGF0ZShcIiArIChkLnkgKyBQQURESU5HX0JVQkJMRSkgKyBcIiwwKVwiXHJcbiAgICAgICk7XHJcbiAgICB9KVxyXG4gICAgLmF0dHIoXCJyXCIsIChkKSA9PiBidWJibGVTaXplU2NhbGUoZC52YWx1ZSkpXHJcbiAgICAuYXR0cihcInN0cm9rZVwiLCBcImJsYWNrXCIpXHJcbiAgICAuYXR0cihcImZpbGxcIiwgXCIjNjlhM2IyXCIpXHJcbiAgICAuc3R5bGUoXCJvcGFjaXR5XCIsIDAuMik7XHJcblxyXG4gIC8vIExhemlseSBjb25zdHJ1Y3QgdGhlIHBhY2thZ2UgaGllcmFyY2h5IGZyb20gY2xhc3MgbmFtZXMuXHJcbiAgZnVuY3Rpb24gcGFja2FnZUhpZXJhcmNoeShjbGFzc2VzKSB7XHJcbiAgICB2YXIgbWFwID0ge307XHJcblxyXG4gICAgZnVuY3Rpb24gZmluZChuYW1lLCBkYXRhKSB7XHJcbiAgICAgIHZhciBub2RlID0gbWFwW25hbWVdLFxyXG4gICAgICAgIGk7XHJcbiAgICAgIGlmICghbm9kZSkge1xyXG4gICAgICAgIG5vZGUgPSBtYXBbbmFtZV0gPSBkYXRhIHx8IHsgbmFtZTogbmFtZSwgY2hpbGRyZW46IFtdIH07XHJcbiAgICAgICAgaWYgKG5hbWUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICBub2RlLnBhcmVudCA9IGZpbmQobmFtZS5zdWJzdHJpbmcoMCwgKGkgPSBuYW1lLmxhc3RJbmRleE9mKFwiLlwiKSkpKTtcclxuICAgICAgICAgIG5vZGUucGFyZW50LmNoaWxkcmVuLnB1c2gobm9kZSk7XHJcbiAgICAgICAgICBub2RlLmtleSA9IG5hbWUuc3Vic3RyaW5nKGkgKyAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgY2xhc3Nlcy5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgIGZpbmQoZC5uYW1lLCBkKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBkMy5oaWVyYXJjaHkobWFwW1wiXCJdKTtcclxuICB9XHJcblxyXG4gIC8vIFJldHVybiBhIGxpc3Qgb2YgaW1wb3J0cyBmb3IgdGhlIGdpdmVuIGFycmF5IG9mIG5vZGVzLlxyXG4gIGZ1bmN0aW9uIHBhY2thZ2VJbXBvcnRzKG5vZGVzKSB7XHJcbiAgICB2YXIgbWFwID0ge30sXHJcbiAgICAgIGltcG9ydHMgPSBbXTtcclxuXHJcbiAgICAvLyBDb21wdXRlIGEgbWFwIGZyb20gbmFtZSB0byBub2RlLlxyXG4gICAgbm9kZXMuZm9yRWFjaChmdW5jdGlvbiAoZCkge1xyXG4gICAgICBtYXBbZC5kYXRhLm5hbWVdID0gZDtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIEZvciBlYWNoIGltcG9ydCwgY29uc3RydWN0IGEgbGluayBmcm9tIHRoZSBzb3VyY2UgdG8gdGFyZ2V0IG5vZGUuXHJcbiAgICBub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgIGlmIChkLmRhdGEuaW1wb3J0cylcclxuICAgICAgICBkLmRhdGEuaW1wb3J0cy5mb3JFYWNoKGZ1bmN0aW9uIChpKSB7XHJcbiAgICAgICAgICBpbXBvcnRzLnB1c2gobWFwW2QuZGF0YS5uYW1lXS5wYXRoKG1hcFtpXSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGltcG9ydHM7XHJcbiAgfVxyXG59O1xyXG4iLCAiaW1wb3J0ICogYXMgZDMgZnJvbSBcImQzXCI7XHJcbmltcG9ydCB0eXBlIEdyYXBoIGZyb20gXCJncmFwaG9sb2d5XCI7XHJcbmltcG9ydCB7IG9wZW5PclN3aXRjaCB9IGZyb20gXCJvYnNpZGlhbi1jb21tdW5pdHktbGliXCI7XHJcbmltcG9ydCB0eXBlIHsgZDNOb2RlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHsgZ3JhcGhsaWJUb0QzLCBWaXNNb2RhbCB9IGZyb20gXCIuL1Zpc01vZGFsXCI7XHJcbmltcG9ydCB0eXBlIHsgVEZpbGUgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuXHJcbmV4cG9ydCBjb25zdCBmb3JjZURpcmVjdGVkRyA9IChcclxuICBncmFwaDogR3JhcGgsXHJcbiAgY3VyckZpbGU6IFRGaWxlLFxyXG4gIG1vZGFsOiBWaXNNb2RhbCxcclxuICB3aWR0aDogbnVtYmVyLFxyXG4gIGhlaWdodDogbnVtYmVyXHJcbikgPT4ge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IG1vZGFsLnBsdWdpbjtcclxuICBsZXQgbm9kZVRvR2V0VG8gPSBjdXJyRmlsZS5iYXNlbmFtZTtcclxuICBjb25zb2xlLmxvZyh7IG5vZGVUb0dldFRvIH0pO1xyXG5cclxuICBjb25zb2xlLnRpbWUoXCJGaW5kIGFsbCBwYXRoc1wiKTtcclxuICAvLyBsZXQgcGF0aHNGcm9tTm9kZVRvR2V0VG8gPSBncmFwaGxpYi5hbGcuZGlqa3N0cmEoZ3JhcGgsIG5vZGVUb0dldFRvKTtcclxuICBjb25zb2xlLnRpbWVFbmQoXCJGaW5kIGFsbCBwYXRoc1wiKTtcclxuXHJcbiAgY29uc3QgZGVmYXVsdE5vZGVDb2xvdXIgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5VmFsdWUoXHJcbiAgICBcIi0tdGV4dC1hY2NlbnRcIlxyXG4gICk7XHJcbiAgbGV0IGN1cnJOb2RlQ29sb3VyID0gZGVmYXVsdE5vZGVDb2xvdXI7XHJcblxyXG4gIGNvbnN0IGNvbG91ckNoYW5nZUlucHV0ID0gZDNcclxuICAgIC5zZWxlY3QoXCIuZDMtZ3JhcGhcIilcclxuICAgIC5hcHBlbmQoXCJpbnB1dFwiKVxyXG4gICAgLmF0dHIoXCJ0eXBlXCIsIFwiY29sb3JcIik7XHJcblxyXG4gIGNvbG91ckNoYW5nZUlucHV0Lm9uKFwiY2hhbmdlXCIsIGZ1bmN0aW9uIGNoYW5nZUNvbG9yKGVsKSB7XHJcbiAgICBjdXJyTm9kZUNvbG91ciA9IGVsLnRhcmdldC52YWx1ZTtcclxuICAgIG5vZGVcclxuICAgICAgLnRyYW5zaXRpb24oKVxyXG4gICAgICAuZHVyYXRpb24oMzAwKVxyXG4gICAgICAuc3R5bGUoXCJmaWxsXCIsIChkKSA9PiB7XHJcbiAgICAgICAgaWYgKGQuaW5kZXggPT09IGN1cnJOb2RlSW5kZXgpIHJldHVybjtcclxuICAgICAgICByZXR1cm4gY3Vyck5vZGVDb2xvdXI7XHJcbiAgICAgIH0pO1xyXG4gIH0pO1xyXG5cclxuICAvLyBjb25zdCBzYXZlTGF5b3V0QnV0dG9uID0gbW9kYWwuY29udGVudEVsLmNyZWF0ZUVsKCdidXR0b24nLCB7IHRleHQ6ICdTYXZlIExheW91dCcgfSlcclxuICAvLyAgIC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHNhdmVHcmFwaClcclxuXHJcbiAgY29uc3QgZGF0YSA9IGdyYXBobGliVG9EMyhncmFwaCk7XHJcblxyXG4gIGNvbnN0IGxpbmtzOiB7XHJcbiAgICBpbmRleDogbnVtYmVyO1xyXG4gICAgc291cmNlOiB7IGluZGV4OiBudW1iZXI7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XHJcbiAgICB0YXJnZXQ6IHsgaW5kZXg6IG51bWJlcjsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcclxuICB9W10gPSBkYXRhLmxpbmtzLm1hcCgoZCkgPT4gT2JqZWN0LmNyZWF0ZShkKSk7XHJcblxyXG4gIGNvbnN0IGN1cnJOb2RlID0gZGF0YS5ub2Rlcy5maW5kKChub2RlKSA9PiBub2RlLm5hbWUgPT09IGN1cnJGaWxlLmJhc2VuYW1lKTtcclxuICBsZXQgY3Vyck5vZGVJbmRleDogbnVtYmVyO1xyXG4gIGlmICghY3Vyck5vZGUpIHtcclxuICAgIGNvbnN0IGlkID0gZGF0YS5ub2Rlcy5sZW5ndGg7XHJcbiAgICBkYXRhLm5vZGVzLnB1c2goeyBpZCwgbmFtZTogY3VyckZpbGUuYmFzZW5hbWUgfSk7XHJcbiAgICBjdXJyTm9kZUluZGV4ID0gaWQ7XHJcbiAgfSBlbHNlIHtcclxuICAgIGN1cnJOb2RlSW5kZXggPSBjdXJyTm9kZS5pZDtcclxuICB9XHJcblxyXG4gIGNvbnN0IG5vZGVzID0gZGF0YS5ub2Rlcy5tYXAoKGQpID0+IE9iamVjdC5jcmVhdGUoZCkpO1xyXG5cclxuICBjb25zdCBzaW11bGF0aW9uID0gZDNcclxuICAgIC5mb3JjZVNpbXVsYXRpb24obm9kZXMpXHJcbiAgICAuZm9yY2UoXHJcbiAgICAgIFwibGlua1wiLFxyXG4gICAgICBkMy5mb3JjZUxpbmsobGlua3MpLmlkKChkKSA9PiBkLmlkKVxyXG4gICAgKVxyXG4gICAgLmZvcmNlKFwiY2hhcmdlXCIsIGQzLmZvcmNlTWFueUJvZHkoKS5zdHJlbmd0aCgtOCkpXHJcbiAgICAuZm9yY2UoXCJjZW50ZXJcIiwgZDMuZm9yY2VDZW50ZXIod2lkdGggLyAyLCBoZWlnaHQgLyAyKS5zdHJlbmd0aCgwLjUpKTtcclxuXHJcbiAgY29uc3QgZHJhZyA9IChzaW11bGF0aW9uOiBkMy5TaW11bGF0aW9uPGFueSwgdW5kZWZpbmVkPikgPT4ge1xyXG4gICAgZnVuY3Rpb24gZHJhZ3N0YXJ0ZWQoZXZlbnQsIGQpIHtcclxuICAgICAgaWYgKCFldmVudC5hY3RpdmUpIHNpbXVsYXRpb24uYWxwaGFUYXJnZXQoMC4zKS5yZXN0YXJ0KCk7XHJcbiAgICAgIGQuZnggPSBkLng7XHJcbiAgICAgIGQuZnkgPSBkLnk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gZHJhZ2dlZChldmVudCwgZCkge1xyXG4gICAgICBkLmZ4ID0gZXZlbnQueDtcclxuICAgICAgZC5meSA9IGV2ZW50Lnk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gZHJhZ2VuZGVkKGV2ZW50LCBkKSB7XHJcbiAgICAgIGlmICghZXZlbnQuYWN0aXZlKSBzaW11bGF0aW9uLmFscGhhVGFyZ2V0KDApO1xyXG4gICAgICBkLmZ4ID0gbnVsbDtcclxuICAgICAgZC5meSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGQzXHJcbiAgICAgIC5kcmFnKClcclxuICAgICAgLm9uKFwic3RhcnRcIiwgZHJhZ3N0YXJ0ZWQpXHJcbiAgICAgIC5vbihcImRyYWdcIiwgZHJhZ2dlZClcclxuICAgICAgLm9uKFwiZW5kXCIsIGRyYWdlbmRlZCk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgc3ZnID0gZDNcclxuICAgIC5zZWxlY3QoXCIuZDMtZ3JhcGhcIilcclxuICAgIC5hcHBlbmQoXCJzdmdcIilcclxuICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodClcclxuICAgIC5hdHRyKFwid2lkdGhcIiwgd2lkdGgpXHJcbiAgICAuYXR0cihcImNsYXNzXCIsIFwiZm9yY2VEaXJlY3RlZEdcIik7XHJcblxyXG4gIGNvbnN0IGxpbmsgPSBzdmdcclxuICAgIC5hcHBlbmQoXCJnXCIpXHJcbiAgICAuYXR0cihcInN0cm9rZVwiLCBcIiM4NjgyODJcIilcclxuICAgIC5hdHRyKFwic3Ryb2tlLW9wYWNpdHlcIiwgMC42KVxyXG4gICAgLnNlbGVjdEFsbChcImxpbmVcIilcclxuICAgIC5kYXRhKGxpbmtzKVxyXG4gICAgLmpvaW4oXCJsaW5lXCIpXHJcbiAgICAuYXR0cihcInN0cm9rZS13aWR0aFwiLCAwLjgpXHJcbiAgICAuYXR0cihcIm1hcmtlci1lbmRcIiwgXCJ1cmwoI2VuZClcIik7XHJcblxyXG4gIHZhciBwYXRoID0gc3ZnXHJcbiAgICAuYXBwZW5kKFwic3ZnOmdcIilcclxuICAgIC5zZWxlY3RBbGwoXCJwYXRoXCIpXHJcbiAgICAuZGF0YShsaW5rcylcclxuICAgIC5lbnRlcigpXHJcbiAgICAuYXBwZW5kKFwic3ZnOnBhdGhcIilcclxuICAgIC8vICAgIC5hdHRyKFwiY2xhc3NcIiwgZnVuY3Rpb24oZCkgeyByZXR1cm4gXCJsaW5rIFwiICsgZC50eXBlOyB9KVxyXG4gICAgLmF0dHIoXCJjbGFzc1wiLCBcImxpbmtcIilcclxuICAgIC5hdHRyKFwibWFya2VyLWVuZFwiLCBcInVybCgjZW5kKVwiKTtcclxuXHJcbiAgY29uc3QgYXJyb3dIZWFkID0gc3ZnXHJcbiAgICAuYXBwZW5kKFwic3ZnOmRlZnNcIilcclxuICAgIC5zZWxlY3RBbGwoXCJtYXJrZXJcIilcclxuICAgIC5kYXRhKFtcImVuZFwiXSkgLy8gRGlmZmVyZW50IGxpbmsvcGF0aCB0eXBlcyBjYW4gYmUgZGVmaW5lZCBoZXJlXHJcbiAgICAuZW50ZXIoKVxyXG4gICAgLmFwcGVuZChcInN2ZzptYXJrZXJcIikgLy8gVGhpcyBzZWN0aW9uIGFkZHMgaW4gdGhlIGFycm93c1xyXG4gICAgLmF0dHIoXCJpZFwiLCBTdHJpbmcpXHJcbiAgICAuYXR0cihcInZpZXdCb3hcIiwgXCIwIC01IDEwIDEwXCIpXHJcbiAgICAuYXR0cihcInJlZlhcIiwgMjApXHJcbiAgICAuYXR0cihcInJlZllcIiwgMC4xKVxyXG4gICAgLmF0dHIoXCJtYXJrZXJXaWR0aFwiLCA2KVxyXG4gICAgLmF0dHIoXCJtYXJrZXJIZWlnaHRcIiwgNilcclxuICAgIC5hdHRyKFwib3JpZW50XCIsIFwiYXV0b1wiKVxyXG4gICAgLy8gLmF0dHIoXCJzdHJva2VcIiwgXCIjODY4MjgyXCIpXHJcbiAgICAuYXR0cihcInN0cm9rZS13aWR0aFwiLCAxMClcclxuICAgIC5hcHBlbmQoXCJzdmc6cGF0aFwiKVxyXG4gICAgLmF0dHIoXCJkXCIsIFwiTTAsLTVMMTAsMEwwLDVcIik7XHJcblxyXG4gIGNvbnN0IG5hbWVGcm9tSW5kZXggPSAoZDogeyBpbmRleDogbnVtYmVyIH0pID0+XHJcbiAgICBkYXRhLm5vZGVzLmZpbmQoKG5vZGUpID0+IG5vZGUuaWQgPT09IGQuaW5kZXgpLm5hbWU7XHJcblxyXG4gIGNvbnN0IGluZGV4RnJvbU5hbWUgPSAobmFtZTogc3RyaW5nKTogbnVtYmVyID0+XHJcbiAgICBkYXRhLm5vZGVzLmZpbmQoKG5vZGUpID0+IG5vZGUubmFtZSA9PT0gbmFtZSkuaWQ7XHJcblxyXG4gIGNvbnN0IG5vZGU6IGQzLlNlbGVjdGlvbjxcclxuICAgIGQzLkJhc2VUeXBlIHwgU1ZHQ2lyY2xlRWxlbWVudCxcclxuICAgIGFueSxcclxuICAgIFNWR0dFbGVtZW50LFxyXG4gICAgdW5rbm93blxyXG4gID4gPSBzdmdcclxuICAgIC5hcHBlbmQoXCJnXCIpXHJcbiAgICAuc2VsZWN0QWxsKFwiY2lyY2xlXCIpXHJcbiAgICAuZGF0YShub2RlcylcclxuICAgIC5qb2luKFwiY2lyY2xlXCIpXHJcblxyXG4gICAgLmF0dHIoXCJyXCIsIDUpXHJcbiAgICAuYXR0cihcImZpbGxcIiwgKGQpID0+IHtcclxuICAgICAgaWYgKG5hbWVGcm9tSW5kZXgoZCkgPT09IGN1cnJGaWxlLmJhc2VuYW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIFwiI2ZmZmZmZlwiO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBjdXJyTm9kZUNvbG91cjtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIC5jYWxsKGRyYWcoc2ltdWxhdGlvbikpO1xyXG5cclxuICBub2RlLmF0dHIoXCJhcmlhLWxhYmVsXCIsIChkOiBkM05vZGUpID0+IGQubmFtZSk7XHJcblxyXG4gIGNvbnN0IG5vZGVDbGljayA9IChldmVudDogTW91c2VFdmVudCwgZGVzdDogc3RyaW5nKSA9PiB7XHJcbiAgICBvcGVuT3JTd2l0Y2goZGVzdCwgZXZlbnQpO1xyXG4gICAgbW9kYWwuY2xvc2UoKTtcclxuICB9O1xyXG4gIG5vZGUub24oXCJjbGlja1wiLCAoZXZlbnQ6IE1vdXNlRXZlbnQsIGQ6IGQzTm9kZSkgPT4ge1xyXG4gICAgbm9kZUNsaWNrKGV2ZW50LCBkLm5hbWUpO1xyXG4gIH0pO1xyXG5cclxuICBub2RlLm9uKFwibW91c2Vkb3duXCIsIChldmVudDogTW91c2VFdmVudCwgZCkgPT4ge1xyXG4gICAgaWYgKGV2ZW50LmJ1dHRvbiA9PT0gMikge1xyXG4gICAgICBub2RlVG9HZXRUbyA9IGQubmFtZTtcclxuXHJcbiAgICAgIG5vZGUuc3R5bGUoXCJmaWxsXCIsIChuKSA9PiB7XHJcbiAgICAgICAgaWYgKG4ubmFtZSA9PT0gbm9kZVRvR2V0VG8pIHtcclxuICAgICAgICAgIHJldHVybiBcIiNmZjAwMDBcIjtcclxuICAgICAgICB9IGVsc2UgcmV0dXJuIGN1cnJOb2RlQ29sb3VyO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIC8vIHBhdGhzRnJvbU5vZGVUb0dldFRvID0gZ3JhcGhsaWIuYWxnLmRpamtzdHJhKGdyYXBoLCBub2RlVG9HZXRUbyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIGZ1bmN0aW9uIGxpbmtlZChhOiBudW1iZXIsIGI6IG51bWJlcikge1xyXG4gICAgaWYgKGEgPT09IGIpIHJldHVybiB0cnVlO1xyXG4gICAgY29uc3QgbGlua2VkQXJyID0gbGlua3MuZmluZChcclxuICAgICAgKGxpbmspID0+XHJcbiAgICAgICAgKGxpbmsuc291cmNlLmluZGV4ID09PSBhICYmIGxpbmsudGFyZ2V0LmluZGV4ID09PSBiKSB8fFxyXG4gICAgICAgIChsaW5rLnRhcmdldC5pbmRleCA9PT0gYSAmJiBsaW5rLnNvdXJjZS5pbmRleCA9PT0gYilcclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuICEhbGlua2VkQXJyO1xyXG4gIH1cclxuXHJcbiAgLy8gZnVuY3Rpb24gd2Fsa0RpamtzdHJhUGF0aHMoXHJcbiAgLy8gICBwYXRoczogeyBbbm9kZTogc3RyaW5nXTogZ3JhcGhsaWIuUGF0aCB9LFxyXG4gIC8vICAgc3RhcnROb2RlOiBzdHJpbmdcclxuICAvLyApIHtcclxuICAvLyAgIGlmIChzdGFydE5vZGUgPT09IG5vZGVUb0dldFRvIHx8IHBhdGhzW3N0YXJ0Tm9kZV0uZGlzdGFuY2UgPT09IEluZmluaXR5KVxyXG4gIC8vICAgICByZXR1cm4gW107XHJcbiAgLy8gICBsZXQgc3RlcCA9IHN0YXJ0Tm9kZTtcclxuXHJcbiAgLy8gICBjb25zdCBwYXRoOiBzdHJpbmdbXSA9IFtzdGFydE5vZGVdO1xyXG4gIC8vICAgbGV0IGkgPSAwO1xyXG4gIC8vICAgY29uc3QgTUFYID0gMzAwO1xyXG4gIC8vICAgd2hpbGUgKHBhdGhzW3N0ZXBdLnByZWRlY2Vzc29yICE9PSBub2RlVG9HZXRUbyAmJiBpIDwgTUFYKSB7XHJcbiAgLy8gICAgIGkrKztcclxuICAvLyAgICAgc3RlcCA9IHBhdGhzW3N0ZXBdLnByZWRlY2Vzc29yO1xyXG4gIC8vICAgICBwYXRoLnB1c2goc3RlcCk7XHJcbiAgLy8gICB9XHJcbiAgLy8gICBpZiAoaSA+PSBNQVgpIHJldHVybiBbXTtcclxuICAvLyAgIHBhdGgucHVzaChub2RlVG9HZXRUbyk7XHJcbiAgLy8gICByZXR1cm4gcGF0aDtcclxuICAvLyB9XHJcblxyXG4gIG5vZGVcclxuICAgIC5vbihcIm1vdXNlb3ZlclwiLCAoZXZlbnQ6IE1vdXNlRXZlbnQsIGQ6IHsgaW5kZXg6IG51bWJlciB9KSA9PiB7XHJcbiAgICAgIG5vZGVcclxuICAgICAgICAudHJhbnNpdGlvbigpXHJcbiAgICAgICAgLmR1cmF0aW9uKDE1MClcclxuICAgICAgICAuc3R5bGUoXCJvcGFjaXR5XCIsIChvKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gbGlua2VkKGQuaW5kZXgsIG8uaW5kZXgpID8gMSA6IDAuMjtcclxuICAgICAgICB9KTtcclxuICAgICAgbGlua1xyXG4gICAgICAgIC50cmFuc2l0aW9uKClcclxuICAgICAgICAuZHVyYXRpb24oMTUwKVxyXG4gICAgICAgIC5zdHlsZShcIm9wYWNpdHlcIiwgZnVuY3Rpb24gKG8pIHtcclxuICAgICAgICAgIHJldHVybiBvLnNvdXJjZS5pbmRleCA9PT0gZC5pbmRleCB8fCBvLnRhcmdldC5pbmRleCA9PT0gZC5pbmRleFxyXG4gICAgICAgICAgICA/IDFcclxuICAgICAgICAgICAgOiAwLjI7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBIaWdobGlnaHQgcGF0aCBmcm9tIGhvdmVyZWQgbm9kZSB0byBjdXJyTm9kZVxyXG4gICAgICBjb25zdCBob3ZlcmVkTm9kZSA9IG5hbWVGcm9tSW5kZXgoZCk7XHJcbiAgICAgIC8vIGNvbnN0IHBhdGggPSB3YWxrRGlqa3N0cmFQYXRocyhwYXRoc0Zyb21Ob2RlVG9HZXRUbywgaG92ZXJlZE5vZGUpO1xyXG4gICAgICAvLyBpZiAocGF0aC5sZW5ndGgpIHtcclxuICAgICAgLy8gICBsaW5rXHJcbiAgICAgIC8vICAgICAudHJhbnNpdGlvbigpXHJcbiAgICAgIC8vICAgICAuZHVyYXRpb24oMTUwKVxyXG4gICAgICAvLyAgICAgLnN0eWxlKFwic3Ryb2tlXCIsIGZ1bmN0aW9uIChsaW5rKSB7XHJcbiAgICAgIC8vICAgICAgIGlmIChcclxuICAgICAgLy8gICAgICAgICBwYXRoLmluY2x1ZGVzKG5hbWVGcm9tSW5kZXgobGluay5zb3VyY2UpKSAmJlxyXG4gICAgICAvLyAgICAgICAgIHBhdGguaW5jbHVkZXMobmFtZUZyb21JbmRleChsaW5rLnRhcmdldCkpXHJcbiAgICAgIC8vICAgICAgIClcclxuICAgICAgLy8gICAgICAgICByZXR1cm4gY3Vyck5vZGVDb2xvdXI7XHJcbiAgICAgIC8vICAgICB9KVxyXG4gICAgICAvLyAgICAgLnN0eWxlKFwib3BhY2l0eVwiLCBmdW5jdGlvbiAobGluaykge1xyXG4gICAgICAvLyAgICAgICBpZiAoXHJcbiAgICAgIC8vICAgICAgICAgcGF0aC5pbmNsdWRlcyhuYW1lRnJvbUluZGV4KGxpbmsuc291cmNlKSkgJiZcclxuICAgICAgLy8gICAgICAgICBwYXRoLmluY2x1ZGVzKG5hbWVGcm9tSW5kZXgobGluay50YXJnZXQpKVxyXG4gICAgICAvLyAgICAgICApXHJcbiAgICAgIC8vICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgIC8vICAgICB9KTtcclxuICAgICAgLy8gfVxyXG4gICAgfSlcclxuICAgIC5vbihcIm1vdXNlb3V0XCIsIHVuZm9jdXMpO1xyXG5cclxuICBmdW5jdGlvbiBmb2N1c05laWdoYm91cnMoZCwgZXZlbnQ6IE1vdXNlRXZlbnQpIHsgfVxyXG5cclxuICBmdW5jdGlvbiB1bmZvY3VzKCkge1xyXG4gICAgLy8gbGFiZWxOb2RlLmF0dHIoXCJkaXNwbGF5XCIsIFwiYmxvY2tcIik7XHJcbiAgICBub2RlLnN0eWxlKFwib3BhY2l0eVwiLCAxKTtcclxuICAgIGxpbmsuc3R5bGUoXCJvcGFjaXR5XCIsIDEpLnN0eWxlKFwic3Ryb2tlXCIsIFwiIzg2ODI4MlwiKTtcclxuICB9XHJcblxyXG4gIHNpbXVsYXRpb24ub24oXCJ0aWNrXCIsICgpID0+IHtcclxuICAgIGxpbmtcclxuICAgICAgLmF0dHIoXCJ4MVwiLCAoZCkgPT4gZC5zb3VyY2UueClcclxuICAgICAgLmF0dHIoXCJ5MVwiLCAoZCkgPT4gZC5zb3VyY2UueSlcclxuICAgICAgLmF0dHIoXCJ4MlwiLCAoZCkgPT4gZC50YXJnZXQueClcclxuICAgICAgLmF0dHIoXCJ5MlwiLCAoZCkgPT4gZC50YXJnZXQueSk7XHJcblxyXG4gICAgbm9kZS5hdHRyKFwiY3hcIiwgKGQpID0+IGQueCkuYXR0cihcImN5XCIsIChkKSA9PiBkLnkpO1xyXG4gIH0pO1xyXG5cclxuICBmdW5jdGlvbiB6b29tZWQoeyB0cmFuc2Zvcm0gfSkge1xyXG4gICAgbm9kZS5hdHRyKFwidHJhbnNmb3JtXCIsIHRyYW5zZm9ybSk7XHJcbiAgICBsaW5rLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgdHJhbnNmb3JtKTtcclxuICB9XHJcbiAgc3ZnLmNhbGwoXHJcbiAgICBkM1xyXG4gICAgICAuem9vbSgpXHJcbiAgICAgIC5leHRlbnQoW1xyXG4gICAgICAgIFswLCAwXSxcclxuICAgICAgICBbd2lkdGgsIGhlaWdodF0sXHJcbiAgICAgIF0pXHJcbiAgICAgIC5zY2FsZUV4dGVudChbMC41LCAxMF0pXHJcbiAgICAgIC5vbihcInpvb21cIiwgem9vbWVkKVxyXG4gICk7XHJcblxyXG4gIGZ1bmN0aW9uIHNhdmVHcmFwaCgpIHtcclxuICAgIGNvbnN0IGNsb25lID0gc3ZnLmNsb25lKHRydWUpO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJGREdcIiwgSlNPTi5zdHJpbmdpZnkoY2xvbmUpKTtcclxuICB9XHJcbn07XHJcbiIsICJpbXBvcnQgKiBhcyBkMyBmcm9tIFwiZDNcIjtcclxuaW1wb3J0IHR5cGUgR3JhcGggZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHR5cGUgeyBURmlsZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgeyBkZnNGbGF0QWRqTGlzdCwgVmlzTW9kYWwgfSBmcm9tIFwiLi9WaXNNb2RhbFwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IGljaWNsZSA9IChcclxuICBncmFwaDogR3JhcGgsXHJcbiAgY3VyckZpbGU6IFRGaWxlLFxyXG4gIG1vZGFsOiBWaXNNb2RhbCxcclxuICB3aWR0aDogbnVtYmVyLFxyXG4gIHZpZXdIZWlnaHQ6IG51bWJlclxyXG4pID0+IHtcclxuICBjb25zdCBmbGF0QWRqID0gZGZzRmxhdEFkakxpc3QoZ3JhcGgsIGN1cnJGaWxlLmJhc2VuYW1lKTtcclxuICBjb25zb2xlLmxvZyh7IGZsYXRBZGogfSk7XHJcblxyXG4gIGNvbnN0IGhpZXIgPSBkMy5zdHJhdGlmeSgpKGZsYXRBZGopO1xyXG4gIGNvbnNvbGUubG9nKHsgaGllciB9KTtcclxuXHJcbiAgY29uc3QgZm9ybWF0ID0gZDMuZm9ybWF0KFwiLGRcIik7XHJcblxyXG4gIGNvbnN0IGNvbG9yID0gZDMuc2NhbGVPcmRpbmFsKFxyXG4gICAgZDMucXVhbnRpemUoZDMuaW50ZXJwb2xhdGVSYWluYm93LCBoaWVyLmNoaWxkcmVuLmxlbmd0aCArIDEpXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgcGFydGl0aW9uID0gKGRhdGEpID0+IHtcclxuICAgIGNvbnN0IHJvb3QgPSBkM1xyXG4gICAgICAuaGllcmFyY2h5KGRhdGEpXHJcbiAgICAgIC5zdW0oKGQpID0+IGQudmFsdWUpXHJcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBiLmhlaWdodCAtIGEuaGVpZ2h0IHx8IGIudmFsdWUgLSBhLnZhbHVlKTtcclxuICAgIHJldHVybiBkMy5wYXJ0aXRpb24oKS5zaXplKFt2aWV3SGVpZ2h0LCAoKHJvb3QuaGVpZ2h0ICsgMSkgKiB3aWR0aCkgLyAzXSkoXHJcbiAgICAgIHJvb3RcclxuICAgICk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgcm9vdCA9IHBhcnRpdGlvbihoaWVyKTtcclxuICBsZXQgZm9jdXMgPSByb290O1xyXG5cclxuICBjb25zdCBzdmcgPSBkM1xyXG4gICAgLnNlbGVjdChcIi5kMy1ncmFwaFwiKVxyXG4gICAgLmFwcGVuZChcInN2Z1wiKVxyXG4gICAgLmF0dHIoXCJoZWlnaHRcIiwgdmlld0hlaWdodClcclxuICAgIC5hdHRyKFwid2lkdGhcIiwgd2lkdGgpXHJcbiAgICAuc3R5bGUoXCJmb250XCIsIFwiMTBweCBzYW5zLXNlcmlmXCIpO1xyXG5cclxuICBjb25zdCBjZWxsID0gc3ZnXHJcbiAgICAuc2VsZWN0QWxsKFwiZ1wiKVxyXG4gICAgLmRhdGEocm9vdC5kZXNjZW5kYW50cygpKVxyXG4gICAgLmpvaW4oXCJnXCIpXHJcbiAgICAuYXR0cihcInRyYW5zZm9ybVwiLCAoZCkgPT4gYHRyYW5zbGF0ZSgke2QueTB9LCR7ZC54MH0pYCk7XHJcblxyXG4gIGNvbnN0IHJlY3QgPSBjZWxsXHJcbiAgICAuYXBwZW5kKFwicmVjdFwiKVxyXG4gICAgLmF0dHIoXCJ3aWR0aFwiLCAoZCkgPT4gZC55MSAtIGQueTAgLSAxKVxyXG4gICAgLmF0dHIoXCJoZWlnaHRcIiwgKGQpID0+IHJlY3RIZWlnaHQoZCkpXHJcbiAgICAuYXR0cihcImZpbGwtb3BhY2l0eVwiLCAwLjYpXHJcbiAgICAuYXR0cihcImZpbGxcIiwgKGQpID0+IHtcclxuICAgICAgaWYgKCFkLmRlcHRoKSByZXR1cm4gXCIjY2NjXCI7XHJcbiAgICAgIHdoaWxlIChkLmRlcHRoID4gMSkgZCA9IGQucGFyZW50O1xyXG4gICAgICByZXR1cm4gY29sb3IoZC5kYXRhLmRhdGEubmFtZSk7XHJcbiAgICB9KVxyXG4gICAgLnN0eWxlKFwiY3Vyc29yXCIsIFwicG9pbnRlclwiKVxyXG4gICAgLm9uKFwiY2xpY2tcIiwgY2xpY2tlZCk7XHJcblxyXG4gIGNvbnN0IHRleHQgPSBjZWxsXHJcbiAgICAuYXBwZW5kKFwidGV4dFwiKVxyXG4gICAgLnN0eWxlKFwidXNlci1zZWxlY3RcIiwgXCJub25lXCIpXHJcbiAgICAuYXR0cihcInBvaW50ZXItZXZlbnRzXCIsIFwibm9uZVwiKVxyXG4gICAgLmF0dHIoXCJ4XCIsIDQpXHJcbiAgICAuYXR0cihcInlcIiwgMTMpO1xyXG4gIC8vIC5hdHRyKFwiZmlsbC1vcGFjaXR5XCIsIChkKSA9PiArbGFiZWxWaXNpYmxlKGQpKTtcclxuXHJcbiAgdGV4dC5hcHBlbmQoXCJ0c3BhblwiKS50ZXh0KChkKSA9PiBkLmRhdGEuZGF0YS5uYW1lKTtcclxuXHJcbiAgY29uc3QgdHNwYW4gPSB0ZXh0XHJcbiAgICAuYXBwZW5kKFwidHNwYW5cIilcclxuICAgIC5hdHRyKFwiZmlsbC1vcGFjaXR5XCIsIChkKSA9PiAobGFiZWxWaXNpYmxlKGQpID8gMSA6IDApICogMC43KVxyXG4gICAgLnRleHQoKGQpID0+IGAgJHtmb3JtYXQoZC52YWx1ZSl9YCk7XHJcblxyXG4gIGNlbGwuYXBwZW5kKFwidGl0bGVcIikudGV4dChcclxuICAgIChkKSA9PlxyXG4gICAgICBgJHtkLmFuY2VzdG9ycygpLm1hcCgoZCkgPT4gZC5kYXRhLmRhdGEubmFtZSlcclxuICAgICAgLy8gLnJldmVyc2UoKVxyXG4gICAgICAvLyAuam9pbihcIi9cIil9XFxuJHtmb3JtYXQoZC52YWx1ZSlcclxuICAgICAgfWBcclxuICApO1xyXG5cclxuICBmdW5jdGlvbiBjbGlja2VkKGV2ZW50LCBwKSB7XHJcbiAgICBjb25zb2xlLmxvZyh7IHAgfSk7XHJcbiAgICBmb2N1cyA9IGZvY3VzID09PSBwID8gKHAgPSBwLnBhcmVudCkgOiBwO1xyXG5cclxuICAgIHJvb3QuZWFjaCgoZCkgPT4ge1xyXG4gICAgICBkLnRhcmdldCA9IHtcclxuICAgICAgICB4MDogKChkLngwIC0gcC54MCkgLyAocC54MSAtIHAueDApKSAqIHZpZXdIZWlnaHQsXHJcbiAgICAgICAgeDE6ICgoZC54MSAtIHAueDApIC8gKHAueDEgLSBwLngwKSkgKiB2aWV3SGVpZ2h0LFxyXG4gICAgICAgIHkwOiBkLnkwIC0gcC55MCxcclxuICAgICAgICB5MTogZC55MSAtIHAueTAsXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnNvbGUubG9nKGQudGFyZ2V0LngwKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHQgPSBjZWxsXHJcbiAgICAgIC50cmFuc2l0aW9uKClcclxuICAgICAgLmR1cmF0aW9uKDc1MClcclxuICAgICAgLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgKGQpID0+IGB0cmFuc2xhdGUoJHtkLnRhcmdldC55MH0sJHtkLnRhcmdldC54MH0pYCk7XHJcblxyXG4gICAgcmVjdC50cmFuc2l0aW9uKHQpLmF0dHIoXCJoZWlnaHRcIiwgKGQpID0+IHJlY3RIZWlnaHQoZC50YXJnZXQpKTtcclxuICAgIHRleHQudHJhbnNpdGlvbih0KS5hdHRyKFwiZmlsbC1vcGFjaXR5XCIsIChkKSA9PiArbGFiZWxWaXNpYmxlKGQudGFyZ2V0KSk7XHJcbiAgICB0c3BhblxyXG4gICAgICAudHJhbnNpdGlvbih0KVxyXG4gICAgICAuYXR0cihcImZpbGwtb3BhY2l0eVwiLCAoZCkgPT4gKGxhYmVsVmlzaWJsZShkKSA/IDEgOiAwKSAqIDAuNyk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiByZWN0SGVpZ2h0KGQpIHtcclxuICAgIGNvbnNvbGUubG9nKHsgZCB9KTtcclxuICAgIHJldHVybiBkLngxIC0gZC54MCAtIE1hdGgubWluKDEsIChkLngxIC0gZC54MCkgLyAyKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGxhYmVsVmlzaWJsZShkKSB7XHJcbiAgICByZXR1cm4gZC55MSA8PSB3aWR0aCAmJiBkLnkwID49IDAgJiYgZC54MSAtIGQueDAgPiAxNjtcclxuICB9XHJcbn07XHJcbiIsICJpbXBvcnQgKiBhcyBkMyBmcm9tIFwiZDNcIjtcclxuaW1wb3J0IHR5cGUgR3JhcGggZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHR5cGUgeyBURmlsZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgeyBkZnNGbGF0QWRqTGlzdCwgVmlzTW9kYWwgfSBmcm9tIFwiLi9WaXNNb2RhbFwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IHJhZGlhbFRyZWUgPSAoXHJcbiAgZ3JhcGg6IEdyYXBoLFxyXG4gIGN1cnJGaWxlOiBURmlsZSxcclxuICBtb2RhbDogVmlzTW9kYWwsXHJcbiAgd2lkdGg6IG51bWJlcixcclxuICBoZWlnaHQ6IG51bWJlclxyXG4pID0+IHtcclxuICBjb25zdCBmbGF0QWRqID0gZGZzRmxhdEFkakxpc3QoZ3JhcGgsIGN1cnJGaWxlLmJhc2VuYW1lKTtcclxuICBjb25zb2xlLmxvZyh7IGZsYXRBZGogfSk7XHJcblxyXG4gIGNvbnN0IGhpZXJhcmNoeSA9IGQzLnN0cmF0aWZ5KCkoZmxhdEFkaik7XHJcbiAgY29uc29sZS5sb2coeyBoaWVyYXJjaHkgfSk7XHJcblxyXG4gIGNvbnN0IHN2ZyA9IGQzXHJcbiAgICAuc2VsZWN0KFwiLmQzLWdyYXBoXCIpXHJcbiAgICAuYXBwZW5kKFwic3ZnXCIpXHJcbiAgICAuYXR0cihcImhlaWdodFwiLCBoZWlnaHQpXHJcbiAgICAuYXR0cihcIndpZHRoXCIsIHdpZHRoKTtcclxuXHJcbiAgY29uc3Qgcm9vdCA9IGQzXHJcbiAgICAuaGllcmFyY2h5KGhpZXJhcmNoeSwgKGQpID0+IGQuY2hpbGRyZW4pXHJcbiAgICAuc3VtKChkKSA9PiAoZC5jaGlsZHJlbiA/IDAgOiAxKSlcclxuICAgIC5zb3J0KChhLCBiKSA9PiBhLmRlcHRoIC0gYi5kZXB0aCk7XHJcblxyXG4gIGNvbnN0IG91dGVyUmFkaXVzID0gd2lkdGggLyAyO1xyXG4gIGNvbnN0IGlubmVyUmFkaXVzID0gb3V0ZXJSYWRpdXMgLSAxNzA7XHJcblxyXG4gIGNvbnN0IGNsdXN0ZXIgPSBkM1xyXG4gICAgLmNsdXN0ZXIoKVxyXG4gICAgLnNpemUoWzM2MCwgaW5uZXJSYWRpdXNdKVxyXG4gICAgLnNlcGFyYXRpb24oKGEsIGIpID0+IDEpO1xyXG5cclxuICBjb25zdCBjb2xvciA9IGQzXHJcbiAgICAuc2NhbGVPcmRpbmFsKClcclxuICAgIC5kb21haW4oZ3JhcGgubm9kZXMoKSlcclxuICAgIC5yYW5nZShkMy5zY2hlbWVDYXRlZ29yeTEwKTtcclxuXHJcbiAgZnVuY3Rpb24gbWF4TGVuZ3RoKGQ6IGQzLkhpZXJhcmNoeU5vZGU8dW5rbm93bj4pIHtcclxuICAgIHJldHVybiBkLmRhdGEuZGF0YS5kZXB0aCArIChkLmNoaWxkcmVuID8gZDMubWF4KGQuY2hpbGRyZW4sIG1heExlbmd0aCkgOiAwKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHNldFJhZGl1cyhkOiBkMy5IaWVyYXJjaHlOb2RlPHVua25vd24+LCB5MDogbnVtYmVyLCBrOiBudW1iZXIpIHtcclxuICAgIGQucmFkaXVzID0gKHkwICs9IGQuZGF0YS5kYXRhLmRlcHRoKSAqIGs7XHJcbiAgICBpZiAoZC5jaGlsZHJlbikgZC5jaGlsZHJlbi5mb3JFYWNoKChkKSA9PiBzZXRSYWRpdXMoZCwgeTAsIGspKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHNldENvbG9yKGQ6IGQzLkhpZXJhcmNoeU5vZGU8dW5rbm93bj4pIHtcclxuICAgIHZhciBuYW1lID0gZC5kYXRhLmRhdGEubmFtZTtcclxuICAgIGQuY29sb3IgPVxyXG4gICAgICBjb2xvci5kb21haW4oKS5pbmRleE9mKG5hbWUpID49IDBcclxuICAgICAgICA/IGNvbG9yKG5hbWUpXHJcbiAgICAgICAgOiBkLnBhcmVudFxyXG4gICAgICAgICAgPyBkLnBhcmVudC5jb2xvclxyXG4gICAgICAgICAgOiBudWxsO1xyXG4gICAgaWYgKGQuY2hpbGRyZW4pIGQuY2hpbGRyZW4uZm9yRWFjaChzZXRDb2xvcik7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBsaW5rVmFyaWFibGUoZCkge1xyXG4gICAgcmV0dXJuIGxpbmtTdGVwKGQuc291cmNlLngsIGQuc291cmNlLnJhZGl1cywgZC50YXJnZXQueCwgZC50YXJnZXQucmFkaXVzKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGxpbmtDb25zdGFudChkKSB7XHJcbiAgICByZXR1cm4gbGlua1N0ZXAoZC5zb3VyY2UueCwgZC5zb3VyY2UueSwgZC50YXJnZXQueCwgZC50YXJnZXQueSk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBsaW5rRXh0ZW5zaW9uVmFyaWFibGUoZCkge1xyXG4gICAgcmV0dXJuIGxpbmtTdGVwKGQudGFyZ2V0LngsIGQudGFyZ2V0LnJhZGl1cywgZC50YXJnZXQueCwgaW5uZXJSYWRpdXMpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gbGlua0V4dGVuc2lvbkNvbnN0YW50KGQpIHtcclxuICAgIHJldHVybiBsaW5rU3RlcChkLnRhcmdldC54LCBkLnRhcmdldC55LCBkLnRhcmdldC54LCBpbm5lclJhZGl1cyk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBsaW5rU3RlcChcclxuICAgIHN0YXJ0QW5nbGU6IG51bWJlcixcclxuICAgIHN0YXJ0UmFkaXVzOiBudW1iZXIsXHJcbiAgICBlbmRBbmdsZTogbnVtYmVyLFxyXG4gICAgZW5kUmFkaXVzOiBudW1iZXJcclxuICApIHtcclxuICAgIGNvbnN0IGMwID0gTWF0aC5jb3MoKHN0YXJ0QW5nbGUgPSAoKHN0YXJ0QW5nbGUgLSA5MCkgLyAxODApICogTWF0aC5QSSkpO1xyXG4gICAgY29uc3QgczAgPSBNYXRoLnNpbihzdGFydEFuZ2xlKTtcclxuICAgIGNvbnN0IGMxID0gTWF0aC5jb3MoKGVuZEFuZ2xlID0gKChlbmRBbmdsZSAtIDkwKSAvIDE4MCkgKiBNYXRoLlBJKSk7XHJcbiAgICBjb25zdCBzMSA9IE1hdGguc2luKGVuZEFuZ2xlKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIFwiTVwiICtcclxuICAgICAgc3RhcnRSYWRpdXMgKiBjMCArXHJcbiAgICAgIFwiLFwiICtcclxuICAgICAgc3RhcnRSYWRpdXMgKiBzMCArXHJcbiAgICAgIChlbmRBbmdsZSA9PT0gc3RhcnRBbmdsZVxyXG4gICAgICAgID8gXCJcIlxyXG4gICAgICAgIDogXCJBXCIgK1xyXG4gICAgICAgIHN0YXJ0UmFkaXVzICtcclxuICAgICAgICBcIixcIiArXHJcbiAgICAgICAgc3RhcnRSYWRpdXMgK1xyXG4gICAgICAgIFwiIDAgMCBcIiArXHJcbiAgICAgICAgKGVuZEFuZ2xlID4gc3RhcnRBbmdsZSA/IDEgOiAwKSArXHJcbiAgICAgICAgXCIgXCIgK1xyXG4gICAgICAgIHN0YXJ0UmFkaXVzICogYzEgK1xyXG4gICAgICAgIFwiLFwiICtcclxuICAgICAgICBzdGFydFJhZGl1cyAqIHMxKSArXHJcbiAgICAgIFwiTFwiICtcclxuICAgICAgZW5kUmFkaXVzICogYzEgK1xyXG4gICAgICBcIixcIiArXHJcbiAgICAgIGVuZFJhZGl1cyAqIHMxXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgbGVnZW5kID0gKHN2ZykgPT4ge1xyXG4gICAgY29uc3QgZyA9IHN2Z1xyXG4gICAgICAuc2VsZWN0QWxsKFwiZ1wiKVxyXG4gICAgICAuZGF0YShjb2xvci5kb21haW4oKSlcclxuICAgICAgLmpvaW4oXCJnXCIpXHJcbiAgICAgIC5hdHRyKFxyXG4gICAgICAgIFwidHJhbnNmb3JtXCIsXHJcbiAgICAgICAgKGQsIGkpID0+IGB0cmFuc2xhdGUoJHstb3V0ZXJSYWRpdXN9LCR7LW91dGVyUmFkaXVzICsgaSAqIDIwfSlgXHJcbiAgICAgICk7XHJcblxyXG4gICAgZy5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJ3aWR0aFwiLCAxOCkuYXR0cihcImhlaWdodFwiLCAxOCkuYXR0cihcImZpbGxcIiwgY29sb3IpO1xyXG5cclxuICAgIGcuYXBwZW5kKFwidGV4dFwiKVxyXG4gICAgICAuYXR0cihcInhcIiwgMjQpXHJcbiAgICAgIC5hdHRyKFwieVwiLCA5KVxyXG4gICAgICAuYXR0cihcImR5XCIsIFwiMC4zNWVtXCIpXHJcbiAgICAgIC50ZXh0KChkKSA9PiBkKTtcclxuICB9O1xyXG5cclxuICBjbHVzdGVyKHJvb3QpO1xyXG4gIHNldFJhZGl1cyhyb290LCAocm9vdC5kYXRhLmRhdGEuZGVwdGggPSAwKSwgaW5uZXJSYWRpdXMgLyBtYXhMZW5ndGgocm9vdCkpO1xyXG4gIHNldENvbG9yKHJvb3QpO1xyXG5cclxuICBzdmcuYXBwZW5kKFwiZ1wiKS5jYWxsKGxlZ2VuZCk7XHJcblxyXG4gIHN2Zy5hcHBlbmQoXCJzdHlsZVwiKS50ZXh0KGBcclxuXHJcbi5saW5rLS1hY3RpdmUge1xyXG5zdHJva2U6ICMwMDAgIWltcG9ydGFudDtcclxuc3Ryb2tlLXdpZHRoOiAxLjVweDtcclxufVxyXG5cclxuLmxpbmstZXh0ZW5zaW9uLS1hY3RpdmUge1xyXG5zdHJva2Utb3BhY2l0eTogLjY7XHJcbn1cclxuXHJcbi5sYWJlbC0tYWN0aXZlIHtcclxuZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbmApO1xyXG5cclxuICBjb25zdCBsaW5rRXh0ZW5zaW9uID0gc3ZnXHJcbiAgICAuYXBwZW5kKFwiZ1wiKVxyXG4gICAgLmF0dHIoXCJmaWxsXCIsIFwibm9uZVwiKVxyXG4gICAgLmF0dHIoXCJzdHJva2VcIiwgXCIjMDAwXCIpXHJcbiAgICAuYXR0cihcInN0cm9rZS1vcGFjaXR5XCIsIDAuMjUpXHJcbiAgICAuc2VsZWN0QWxsKFwicGF0aFwiKVxyXG4gICAgLmRhdGEocm9vdC5saW5rcygpLmZpbHRlcigoZCkgPT4gIWQudGFyZ2V0LmNoaWxkcmVuKSlcclxuICAgIC5qb2luKFwicGF0aFwiKVxyXG4gICAgLmVhY2goZnVuY3Rpb24gKGQpIHtcclxuICAgICAgZC50YXJnZXQubGlua0V4dGVuc2lvbk5vZGUgPSB0aGlzO1xyXG4gICAgfSlcclxuICAgIC5hdHRyKFwiZFwiLCBsaW5rRXh0ZW5zaW9uQ29uc3RhbnQpO1xyXG5cclxuICBjb25zdCBsaW5rID0gc3ZnXHJcbiAgICAuYXBwZW5kKFwiZ1wiKVxyXG4gICAgLmF0dHIoXCJmaWxsXCIsIFwibm9uZVwiKVxyXG4gICAgLmF0dHIoXCJzdHJva2VcIiwgXCIjMDAwXCIpXHJcbiAgICAuc2VsZWN0QWxsKFwicGF0aFwiKVxyXG4gICAgLmRhdGEocm9vdC5saW5rcygpKVxyXG4gICAgLmpvaW4oXCJwYXRoXCIpXHJcbiAgICAuZWFjaChmdW5jdGlvbiAoZCkge1xyXG4gICAgICBkLnRhcmdldC5saW5rTm9kZSA9IHRoaXM7XHJcbiAgICB9KVxyXG4gICAgLmF0dHIoXCJkXCIsIGxpbmtDb25zdGFudClcclxuICAgIC5hdHRyKFwic3Ryb2tlXCIsIChkKSA9PiBkLnRhcmdldC5jb2xvcik7XHJcblxyXG4gIGNvbnN0IGxhYmVsID0gc3ZnXHJcbiAgICAuYXBwZW5kKFwiZ1wiKVxyXG4gICAgLnNlbGVjdEFsbChcInRleHRcIilcclxuICAgIC5kYXRhKHJvb3QubGVhdmVzKCkpXHJcbiAgICAuam9pbihcInRleHRcIilcclxuICAgIC5hdHRyKFwiZHlcIiwgXCIuMzFlbVwiKVxyXG4gICAgLmF0dHIoXHJcbiAgICAgIFwidHJhbnNmb3JtXCIsXHJcbiAgICAgIChkKSA9PlxyXG4gICAgICAgIGByb3RhdGUoJHtkLnggLSA5MH0pIHRyYW5zbGF0ZSgke2lubmVyUmFkaXVzICsgNH0sMCkke2QueCA8IDE4MCA/IFwiXCIgOiBcIiByb3RhdGUoMTgwKVwiXHJcbiAgICAgICAgfWBcclxuICAgIClcclxuICAgIC5hdHRyKFwidGV4dC1hbmNob3JcIiwgKGQpID0+IChkLnggPCAxODAgPyBcInN0YXJ0XCIgOiBcImVuZFwiKSlcclxuICAgIC50ZXh0KChkKSA9PiBkLmRhdGEuZGF0YS5uYW1lKVxyXG4gICAgLm9uKFwibW91c2VvdmVyXCIsIG1vdXNlb3ZlcmVkKHRydWUpKVxyXG4gICAgLm9uKFwibW91c2VvdXRcIiwgbW91c2VvdmVyZWQoZmFsc2UpKTtcclxuXHJcbiAgLy8gICBmdW5jdGlvbiB1cGRhdGUoY2hlY2tlZCkge1xyXG4gIC8vICAgICBjb25zdCB0ID0gZDMudHJhbnNpdGlvbigpLmR1cmF0aW9uKDc1MCk7XHJcbiAgLy8gICAgIGxpbmtFeHRlbnNpb25cclxuICAvLyAgICAgICAudHJhbnNpdGlvbih0KVxyXG4gIC8vICAgICAgIC5hdHRyKFwiZFwiLCBjaGVja2VkID8gbGlua0V4dGVuc2lvblZhcmlhYmxlIDogbGlua0V4dGVuc2lvbkNvbnN0YW50KTtcclxuICAvLyAgICAgbGluay50cmFuc2l0aW9uKHQpLmF0dHIoXCJkXCIsIGNoZWNrZWQgPyBsaW5rVmFyaWFibGUgOiBsaW5rQ29uc3RhbnQpO1xyXG4gIC8vICAgfVxyXG5cclxuICBmdW5jdGlvbiBtb3VzZW92ZXJlZChhY3RpdmUpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAoZXZlbnQsIGQpIHtcclxuICAgICAgZDMuc2VsZWN0KHRoaXMpLmNsYXNzZWQoXCJsYWJlbC0tYWN0aXZlXCIsIGFjdGl2ZSk7XHJcbiAgICAgIGQzLnNlbGVjdChkLmxpbmtFeHRlbnNpb25Ob2RlKVxyXG4gICAgICAgIC5jbGFzc2VkKFwibGluay1leHRlbnNpb24tLWFjdGl2ZVwiLCBhY3RpdmUpXHJcbiAgICAgICAgLnJhaXNlKCk7XHJcbiAgICAgIGRvIGQzLnNlbGVjdChkLmxpbmtOb2RlKS5jbGFzc2VkKFwibGluay0tYWN0aXZlXCIsIGFjdGl2ZSkucmFpc2UoKTtcclxuICAgICAgd2hpbGUgKChkID0gZC5wYXJlbnQpKTtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB6b29tZWQoeyB0cmFuc2Zvcm0gfSkge1xyXG4gICAgbGlua0V4dGVuc2lvbi5hdHRyKFwidHJhbnNmb3JtXCIsIHRyYW5zZm9ybSk7XHJcbiAgICBsaW5rLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgdHJhbnNmb3JtKTtcclxuICAgIGxhYmVsLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgdHJhbnNmb3JtKTtcclxuICB9XHJcbiAgc3ZnLmNhbGwoXHJcbiAgICBkM1xyXG4gICAgICAuem9vbSgpXHJcbiAgICAgIC5leHRlbnQoW1xyXG4gICAgICAgIFswLCAwXSxcclxuICAgICAgICBbd2lkdGgsIGhlaWdodF0sXHJcbiAgICAgIF0pXHJcbiAgICAgIC5zY2FsZUV4dGVudChbMC41LCA4XSlcclxuICAgICAgLm9uKFwiem9vbVwiLCB6b29tZWQpXHJcbiAgKTtcclxufTtcclxuIiwgImltcG9ydCAqIGFzIGQzIGZyb20gXCJkM1wiO1xyXG5pbXBvcnQgdHlwZSBHcmFwaCBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgdHlwZSB7IFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB0eXBlIHsgVmlzTW9kYWwgfSBmcm9tIFwiLi9WaXNNb2RhbFwiO1xyXG5pbXBvcnQgeyBkZnNGbGF0QWRqTGlzdCB9IGZyb20gXCIuL1Zpc01vZGFsXCI7XHJcblxyXG5leHBvcnQgY29uc3Qgc3VuYnVyc3QgPSAoXHJcbiAgZ3JhcGg6IEdyYXBoLFxyXG4gIGN1cnJGaWxlOiBURmlsZSxcclxuICBtb2RhbDogVmlzTW9kYWwsXHJcbiAgd2lkdGg6IG51bWJlcixcclxuICBoZWlnaHQ6IG51bWJlclxyXG4pID0+IHtcclxuICBjb25zdCBmbGF0QWRqID0gZGZzRmxhdEFkakxpc3QoZ3JhcGgsIGN1cnJGaWxlLmJhc2VuYW1lKTtcclxuICBjb25zb2xlLmxvZyh7IGZsYXRBZGogfSk7XHJcblxyXG4gIGNvbnN0IGhpZXJhcmNoeSA9IGQzLnN0cmF0aWZ5KCkoZmxhdEFkaik7XHJcbiAgY29uc29sZS5sb2coeyBoaWVyYXJjaHkgfSk7XHJcblxyXG4gIHZhciByYWRpdXMgPSBNYXRoLm1pbih3aWR0aCwgaGVpZ2h0KSAvIDI7IC8vIDwgLS0gMlxyXG4gIHZhciBjb2xvciA9IGQzLnNjYWxlT3JkaW5hbChkMy5zY2hlbWVDYXRlZ29yeTEwKTtcclxuXHJcbiAgdmFyIGcgPSBkM1xyXG4gICAgLnNlbGVjdChcInN2Z1wiKSAvLyA8LS0gMVxyXG4gICAgLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aCkgLy8gPC0tIDJcclxuICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodClcclxuICAgIC5hcHBlbmQoXCJnXCIpIC8vIDwtLSAzXHJcbiAgICAuYXR0cihcInRyYW5zZm9ybVwiLCBcInRyYW5zbGF0ZShcIiArIHdpZHRoIC8gMiArIFwiLFwiICsgaGVpZ2h0IC8gMiArIFwiKVwiKTsgLy8gPC0tIDRcclxuXHJcbiAgdmFyIGcgPSBkM1xyXG4gICAgLnNlbGVjdChcInN2Z1wiKSAvLyByZXR1cm5zIGEgaGFuZGxlIHRvIHRoZSA8c3ZnPiBlbGVtZW50XHJcbiAgICAuYXR0cihcIndpZHRoXCIsIHdpZHRoKSAvLyBzZXRzIHRoZSB3aWR0aCBvZiA8c3ZnPiBhbmQgdGhlbiByZXR1cm5zIHRoZSA8c3ZnPiBlbGVtZW50IGFnYWluXHJcbiAgICAuYXR0cihcImhlaWdodFwiLCBoZWlnaHQpIC8vIChzYW1lIGFzIHdpZHRoKVxyXG4gICAgLmFwcGVuZChcImdcIikgLy8gYWRkcyBhIDxnPiBlbGVtZW50IHRvIHRoZSA8c3ZnPiBlbGVtZW50LiBJdCByZXR1cm5zIHRoZSA8Zz4gZWxlbWVudFxyXG4gICAgLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgXCJ0cmFuc2xhdGUoXCIgKyB3aWR0aCAvIDIgKyBcIixcIiArIGhlaWdodCAvIDIgKyBcIilcIik7IC8vIHRha2VzIHRoZSA8Zz4gZWxlbWVudCBhbmQgbW92ZXMgdGhlIFswLDBdIGNlbnRlciBvdmVyIGFuZCBkb3duXHJcblxyXG4gIHZhciBnID0gZDNcclxuICAgIC5zZWxlY3QoXCJzdmdcIikgLy8gLS0+IDxzdmc+PC9zdmc+XHJcbiAgICAuYXR0cihcIndpZHRoXCIsIHdpZHRoKSAvLyAtLT4gPHN2ZyB3aWR0aD1cIjUwMFwiPjwvc3ZnPlxyXG4gICAgLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0KSAvLyAtLT4gPHN2ZyB3aWR0aD1cIjUwMFwiIGhlaWdodD1cIjUwMFwiPjwvc3ZnPlxyXG4gICAgLmFwcGVuZChcImdcIikgLy8gLS0+IDxzdmcgd2lkdGg9XCI1MDBcIiBoZWlnaHQ9XCI1MDBcIj48Zz48L2c+PC9zdmc+XHJcbiAgICAuYXR0cihcInRyYW5zZm9ybVwiLCBcInRyYW5zbGF0ZShcIiArIHdpZHRoIC8gMiArIFwiLFwiICsgaGVpZ2h0IC8gMiArIFwiKVwiKTsgLy8gLS0+IDxzdmcgd2lkdGg9XCI1MDBcIiBoZWlnaHQ9XCI1MDBcIj48ZyB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMjUwLDI1MClcIj48L2c+PC9zdmc+XHJcblxyXG4gIHZhciBwYXJ0aXRpb24gPSBkM1xyXG4gICAgLnBhcnRpdGlvbigpIC8vIDwtLSAxXHJcbiAgICAuc2l6ZShbMiAqIE1hdGguUEksIHJhZGl1c10pOyAvLyA8LS0gMlxyXG5cclxuICB2YXIgcm9vdCA9IGQzXHJcbiAgICAuaGllcmFyY2h5KGhpZXJhcmNoeSkgLy8gPC0tIDFcclxuICAgIC5zdW0oZnVuY3Rpb24gKGQpIHtcclxuICAgICAgcmV0dXJuIGQuaGVpZ2h0O1xyXG4gICAgfSk7IC8vIDwtLSAyXHJcblxyXG4gIHBhcnRpdGlvbihyb290KTsgLy8gPC0tIDFcclxuICB2YXIgYXJjID0gZDNcclxuICAgIC5hcmMoKSAvLyA8LS0gMlxyXG4gICAgLnN0YXJ0QW5nbGUoZnVuY3Rpb24gKGQpIHtcclxuICAgICAgcmV0dXJuIGQueDA7XHJcbiAgICB9KVxyXG4gICAgLmVuZEFuZ2xlKGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgIHJldHVybiBkLngxO1xyXG4gICAgfSlcclxuICAgIC5pbm5lclJhZGl1cyhmdW5jdGlvbiAoZCkge1xyXG4gICAgICByZXR1cm4gZC55MDtcclxuICAgIH0pXHJcbiAgICAub3V0ZXJSYWRpdXMoZnVuY3Rpb24gKGQpIHtcclxuICAgICAgcmV0dXJuIGQueTE7XHJcbiAgICB9KTtcclxuXHJcbiAgZy5zZWxlY3RBbGwoXCJwYXRoXCIpIC8vIDwtLSAxXHJcbiAgICAuZGF0YShyb290LmRlc2NlbmRhbnRzKCkpIC8vIDwtLSAyXHJcbiAgICAuZW50ZXIoKSAvLyA8LS0gM1xyXG4gICAgLmFwcGVuZChcInBhdGhcIikgLy8gPC0tIDRcclxuICAgIC5hdHRyKFwiZGlzcGxheVwiLCBmdW5jdGlvbiAoZCkge1xyXG4gICAgICByZXR1cm4gZC5kZXB0aCA/IG51bGwgOiBcIm5vbmVcIjtcclxuICAgIH0pIC8vIDwtLSA1XHJcbiAgICAuYXR0cihcImRcIiwgYXJjKSAvLyA8LS0gNlxyXG4gICAgLnN0eWxlKFwic3Ryb2tlXCIsIFwiI2ZmZlwiKSAvLyA8LS0gN1xyXG4gICAgLnN0eWxlKFwiZmlsbFwiLCBmdW5jdGlvbiAoZCkge1xyXG4gICAgICByZXR1cm4gY29sb3IoKGQuY2hpbGRyZW4gPyBkIDogZC5wYXJlbnQpLmRhdGEubmFtZSk7XHJcbiAgICB9KTsgLy8gPC0tIDhcclxufTtcclxuIiwgImltcG9ydCAqIGFzIGQzIGZyb20gXCJkM1wiO1xyXG5pbXBvcnQgdHlwZSBHcmFwaCBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgdHlwZSB7IFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IG9wZW5PclN3aXRjaCB9IGZyb20gXCJvYnNpZGlhbi1jb21tdW5pdHktbGliXCI7XHJcbmltcG9ydCB7IGRmc0ZsYXRBZGpMaXN0LCBWaXNNb2RhbCB9IGZyb20gXCIuL1Zpc01vZGFsXCI7XHJcblxyXG5leHBvcnQgY29uc3QgdGlkeVRyZWUgPSAoXHJcbiAgZ3JhcGg6IEdyYXBoLFxyXG4gIGN1cnJGaWxlOiBURmlsZSxcclxuICBtb2RhbDogVmlzTW9kYWwsXHJcbiAgd2lkdGg6IG51bWJlcixcclxuICBoZWlnaHQ6IG51bWJlclxyXG4pID0+IHtcclxuICAvLyBjb25zdCBhZGpMaXN0OiBBZGpMaXN0SXRlbVtdID0gYmZzQWRqTGlzdChncmFwaCwgY3VyckZpbGUuYmFzZW5hbWUpO1xyXG4gIC8vIGNvbnNvbGUubG9nKHsgYWRqTGlzdCB9KTtcclxuXHJcbiAgLy8gY29uc3Qgbm9Eb3VibGVzID0gWy4uLmFkakxpc3RdO1xyXG4gIC8vIG5vRG91Ymxlcy5mb3JFYWNoKChhLCBpLCBsaXN0KSA9PiB7XHJcbiAgLy8gICBpZiAobGlzdC5zb21lKChiLCBqKSA9PiBpICE9PSBqICYmIGEucGFyZW50SWQgPT09IGIucGFyZW50SWQpKSB7XHJcbiAgLy8gICAgIG5vRG91Ymxlcy5zcGxpY2UoaSwgMSk7XHJcbiAgLy8gICB9XHJcbiAgLy8gfSk7XHJcbiAgLy8gY29uc29sZS5sb2coeyBub0RvdWJsZXMgfSk7XHJcblxyXG4gIGNvbnN0IHRyZWUgPSAoZGF0YSkgPT4ge1xyXG4gICAgY29uc3Qgcm9vdCA9IGQzLmhpZXJhcmNoeShkYXRhKTtcclxuICAgIHJvb3QuZHggPSAxMDtcclxuICAgIHJvb3QuZHkgPSB3aWR0aCAvIChyb290LmhlaWdodCArIDEpO1xyXG4gICAgcmV0dXJuIGQzLnRyZWUoKS5ub2RlU2l6ZShbcm9vdC5keCwgcm9vdC5keV0pKHJvb3QpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGZsYXRBZGogPSBkZnNGbGF0QWRqTGlzdChncmFwaCwgY3VyckZpbGUuYmFzZW5hbWUpO1xyXG4gIGNvbnNvbGUubG9nKHsgZmxhdEFkaiB9KTtcclxuXHJcbiAgY29uc3QgaGllcmFyY2h5ID0gZDMuc3RyYXRpZnkoKShmbGF0QWRqKTtcclxuICBjb25zb2xlLmxvZyh7IGhpZXJhcmNoeSB9KTtcclxuXHJcbiAgY29uc3Qgcm9vdCA9IHRyZWUoaGllcmFyY2h5KTtcclxuICBjb25zb2xlLmxvZyhyb290KTtcclxuXHJcbiAgbGV0IHgwID0gSW5maW5pdHk7XHJcbiAgbGV0IHgxID0gLXgwO1xyXG4gIHJvb3QuZWFjaCgoZCkgPT4ge1xyXG4gICAgaWYgKGQueCA+IHgxKSB4MSA9IGQueDtcclxuICAgIGlmIChkLnggPCB4MCkgeDAgPSBkLng7XHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0IHN2ZyA9IGQzXHJcbiAgICAuc2VsZWN0KFwiLmQzLWdyYXBoXCIpXHJcbiAgICAuYXBwZW5kKFwic3ZnXCIpXHJcbiAgICAuYXR0cihcImhlaWdodFwiLCBoZWlnaHQpXHJcbiAgICAuYXR0cihcIndpZHRoXCIsIHdpZHRoKTtcclxuXHJcbiAgY29uc3QgZyA9IHN2Z1xyXG4gICAgLmFwcGVuZChcImdcIilcclxuICAgIC5hdHRyKFwiZm9udC1mYW1pbHlcIiwgXCJzYW5zLXNlcmlmXCIpXHJcbiAgICAuYXR0cihcImZvbnQtc2l6ZVwiLCAxMClcclxuICAgIC5hdHRyKFwidHJhbnNmb3JtXCIsIGB0cmFuc2xhdGUoJHtyb290LmR5IC8gM30sJHtyb290LmR4IC0geDB9KWApO1xyXG5cclxuICBjb25zdCBsaW5rID0gZ1xyXG4gICAgLmFwcGVuZChcImdcIilcclxuICAgIC5hdHRyKFwiZmlsbFwiLCBcIm5vbmVcIilcclxuICAgIC5hdHRyKFwic3Ryb2tlXCIsIFwiIzU1NVwiKVxyXG4gICAgLmF0dHIoXCJzdHJva2Utb3BhY2l0eVwiLCAwLjQpXHJcbiAgICAuYXR0cihcInN0cm9rZS13aWR0aFwiLCAxLjUpXHJcbiAgICAuc2VsZWN0QWxsKFwicGF0aFwiKVxyXG4gICAgLmRhdGEocm9vdC5saW5rcygpKVxyXG4gICAgLmpvaW4oXCJwYXRoXCIpXHJcbiAgICAuYXR0cihcclxuICAgICAgXCJkXCIsXHJcbiAgICAgIGQzXHJcbiAgICAgICAgLmxpbmtIb3Jpem9udGFsKClcclxuICAgICAgICAueCgoZCkgPT4gZC55KVxyXG4gICAgICAgIC55KChkKSA9PiBkLngpXHJcbiAgICApO1xyXG5cclxuICBjb25zdCBub2RlID0gZ1xyXG4gICAgLmFwcGVuZChcImdcIilcclxuICAgIC5hdHRyKFwic3Ryb2tlLWxpbmVqb2luXCIsIFwicm91bmRcIilcclxuICAgIC5hdHRyKFwic3Ryb2tlLXdpZHRoXCIsIDEwKVxyXG4gICAgLnNlbGVjdEFsbChcImdcIilcclxuICAgIC5kYXRhKHJvb3QuZGVzY2VuZGFudHMoKSlcclxuICAgIC5qb2luKFwiZ1wiKVxyXG4gICAgLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgKGQpID0+IGB0cmFuc2xhdGUoJHtkLnl9LCR7ZC54fSlgKTtcclxuXHJcbiAgbm9kZVxyXG4gICAgLmFwcGVuZChcImNpcmNsZVwiKVxyXG4gICAgLmF0dHIoXCJmaWxsXCIsIChkKSA9PiAoZC5jaGlsZHJlbiA/IFwiIzU1NVwiIDogXCIjOTk5XCIpKVxyXG4gICAgLmF0dHIoXCJyXCIsIDEwKTtcclxuXHJcbiAgbm9kZS5hdHRyKFwiYXJpYS1sYWJlbFwiLCAoZCkgPT4ge1xyXG4gICAgY29uc29sZS5sb2coZCk7XHJcbiAgICByZXR1cm4gZC5kYXRhLmRhdGEubmFtZTtcclxuICB9KTtcclxuXHJcbiAgY29uc3Qgbm9kZUNsaWNrID0gKGV2ZW50OiBNb3VzZUV2ZW50LCBkZXN0OiBzdHJpbmcpID0+IHtcclxuICAgIG9wZW5PclN3aXRjaChkZXN0LCBldmVudCk7XHJcbiAgICBtb2RhbC5jbG9zZSgpO1xyXG4gIH07XHJcbiAgbm9kZS5vbihcImNsaWNrXCIsIChldmVudDogTW91c2VFdmVudCwgZCkgPT4ge1xyXG4gICAgY29uc29sZS5sb2coeyBkIH0pO1xyXG4gICAgbm9kZUNsaWNrKGV2ZW50LCBkLmRhdGEuZGF0YS5uYW1lKTtcclxuICB9KTtcclxuXHJcbiAgbm9kZVxyXG4gICAgLmFwcGVuZChcInRleHRcIilcclxuICAgIC5hdHRyKFwiZHlcIiwgXCIwLjMxZW1cIilcclxuICAgIC5hdHRyKFwieFwiLCAoZCkgPT4gKGQuY2hpbGRyZW4gPyAtNiA6IDYpKVxyXG4gICAgLmF0dHIoXCJ0ZXh0LWFuY2hvclwiLCAoZCkgPT4gKGQuY2hpbGRyZW4gPyBcImVuZFwiIDogXCJzdGFydFwiKSlcclxuICAgIC50ZXh0KChkKSA9PiBkLmRhdGEuZGF0YS5uYW1lKVxyXG4gICAgLmNsb25lKHRydWUpXHJcbiAgICAubG93ZXIoKVxyXG4gICAgLmF0dHIoXCJzdHJva2VcIiwgXCJ3aGl0ZVwiKTtcclxuXHJcbiAgZnVuY3Rpb24gem9vbWVkKHsgdHJhbnNmb3JtIH0pIHtcclxuICAgIHN2Zy5hdHRyKFwidHJhbnNmb3JtXCIsIHRyYW5zZm9ybSk7XHJcbiAgfVxyXG4gIHN2Zy5jYWxsKFxyXG4gICAgZDNcclxuICAgICAgLnpvb20oKVxyXG4gICAgICAuZXh0ZW50KFtcclxuICAgICAgICBbMCwgMF0sXHJcbiAgICAgICAgW3dpZHRoLCBoZWlnaHRdLFxyXG4gICAgICBdKVxyXG4gICAgICAuc2NhbGVFeHRlbnQoWzAuNSwgOF0pXHJcbiAgICAgIC5vbihcInpvb21cIiwgem9vbWVkKVxyXG4gICk7XHJcbn07XHJcbiIsICJpbXBvcnQgKiBhcyBkMyBmcm9tIFwiZDNcIjtcclxuaW1wb3J0IHR5cGUgR3JhcGggZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHR5cGUgeyBURmlsZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgeyBvcGVuT3JTd2l0Y2ggfSBmcm9tIFwib2JzaWRpYW4tY29tbXVuaXR5LWxpYlwiO1xyXG5pbXBvcnQgdHlwZSB7IFZpc01vZGFsIH0gZnJvbSBcIi4vVmlzTW9kYWxcIjtcclxuaW1wb3J0IHsgZGZzRmxhdEFkakxpc3QgfSBmcm9tIFwiLi9WaXNNb2RhbFwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IHRyZWVNYXAgPSAoXHJcbiAgZ3JhcGg6IEdyYXBoLFxyXG4gIGN1cnJGaWxlOiBURmlsZSxcclxuICBtb2RhbDogVmlzTW9kYWwsXHJcbiAgd2lkdGg6IG51bWJlcixcclxuICBoZWlnaHQ6IG51bWJlclxyXG4pID0+IHtcclxuICBjb25zdCBmbGF0QWRqID0gZGZzRmxhdEFkakxpc3QoZ3JhcGgsIGN1cnJGaWxlLmJhc2VuYW1lKTtcclxuICBjb25zb2xlLmxvZyh7IGZsYXRBZGogfSk7XHJcblxyXG4gIGNvbnN0IGhpZXJhcmNoeSA9IGQzLnN0cmF0aWZ5KCkoZmxhdEFkaik7XHJcbiAgY29uc29sZS5sb2coeyBoaWVyYXJjaHkgfSk7XHJcblxyXG4gIGNvbnN0IHJvb3QgPSBkM1xyXG4gICAgLnRyZWVtYXAoKVxyXG4gICAgLnRpbGUoZDMudHJlZW1hcEJpbmFyeSlcclxuICAgIC5zaXplKFt3aWR0aCwgaGVpZ2h0XSlcclxuICAgIC5wYWRkaW5nKDEpXHJcbiAgICAucm91bmQodHJ1ZSkoXHJcbiAgICAgIGhpZXJhcmNoeS5zdW0oKGQpID0+IGQuaGVpZ2h0KS5zb3J0KChhLCBiKSA9PiBiLmhlaWdodCAtIGEuaGVpZ2h0KVxyXG4gICAgKTtcclxuXHJcbiAgLy8gICBjb25zdCByb290ID0gdHJlZW1hcChkYXRhKTtcclxuXHJcbiAgY29uc3Qgc3ZnID0gZDNcclxuICAgIC5zZWxlY3QoXCIuZDMtZ3JhcGhcIilcclxuICAgIC5hcHBlbmQoXCJzdmdcIilcclxuICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodClcclxuICAgIC5hdHRyKFwid2lkdGhcIiwgd2lkdGgpXHJcbiAgICAuc3R5bGUoXCJmb250XCIsIFwiMTBweCBzYW5zLXNlcmlmXCIpO1xyXG5cclxuICBjb25zdCBsZWFmID0gc3ZnXHJcbiAgICAuc2VsZWN0QWxsKFwiZ1wiKVxyXG4gICAgLmRhdGEocm9vdC5sZWF2ZXMoKSlcclxuICAgIC5qb2luKFwiZ1wiKVxyXG4gICAgLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgKGQpID0+IGB0cmFuc2xhdGUoJHtkLngwfSwke2QueTB9KWApO1xyXG5cclxuICBsZWFmLmF0dHIoXCJhcmlhLWxhYmVsXCIsIChkKSA9PiBkLmRhdGEubmFtZSk7XHJcblxyXG4gIC8vICAgbGVhZi5hcHBlbmQoXCJ0aXRsZVwiKS50ZXh0KFxyXG4gIC8vICAgICAoZCkgPT5cclxuICAvLyAgICAgICBgJHtkXHJcbiAgLy8gICAgICAgICAuYW5jZXN0b3JzKClcclxuICAvLyAgICAgICAgIC5yZXZlcnNlKClcclxuICAvLyAgICAgICAgIC5tYXAoKGQpID0+IGQuZGF0YS5pZClcclxuICAvLyAgICAgICAgIC5qb2luKFwiL1wiKX1cXG4ke2Zvcm1hdChkLmhlaWdodCl9YFxyXG4gIC8vICAgKTtcclxuXHJcbiAgY29uc3QgY29sb3IgPSBkMy5zY2FsZU9yZGluYWwoZDMuc2NoZW1lQ2F0ZWdvcnkxMCk7XHJcblxyXG4gIGxlYWZcclxuICAgIC5hcHBlbmQoXCJyZWN0XCIpXHJcbiAgICAvLyAuYXR0cihcImlkXCIsIChkKSA9PiAoZC5sZWFmVWlkID0gRE9NLnVpZChcImxlYWZcIikpLmlkKVxyXG4gICAgLmF0dHIoXCJmaWxsXCIsIChkKSA9PiB7XHJcbiAgICAgIHdoaWxlIChkLmRlcHRoID4gMSkgZCA9IGQucGFyZW50O1xyXG4gICAgICByZXR1cm4gY29sb3IoZC5kYXRhLmlkKTtcclxuICAgIH0pXHJcbiAgICAuYXR0cihcImZpbGwtb3BhY2l0eVwiLCAwLjYpXHJcbiAgICAuYXR0cihcIndpZHRoXCIsIChkKSA9PiBkLngxIC0gZC54MClcclxuICAgIC5hdHRyKFwiaGVpZ2h0XCIsIChkKSA9PiBkLnkxIC0gZC55MCk7XHJcblxyXG4gIGxlYWZcclxuICAgIC5hcHBlbmQoXCJjbGlwUGF0aFwiKVxyXG4gICAgLy8gLmF0dHIoXCJpZFwiLCAoZCkgPT4gKGQuY2xpcFVpZCA9IERPTS51aWQoXCJjbGlwXCIpKS5pZClcclxuICAgIC5hcHBlbmQoXCJ1c2VcIik7XHJcbiAgLy8gLmF0dHIoXCJ4bGluazpocmVmXCIsIChkKSA9PiBkLmxlYWZVaWQuaHJlZik7XHJcblxyXG4gIC8vICAgbGVhZlxyXG4gIC8vICAgICAuYXBwZW5kKFwidGV4dFwiKVxyXG4gIC8vICAgICAuYXR0cihcImNsaXAtcGF0aFwiLCAoZCkgPT4gZC5jbGlwVWlkKVxyXG4gIC8vICAgICAuc2VsZWN0QWxsKFwidHNwYW5cIilcclxuICAvLyAgICAgLmRhdGEoKGQpID0+IHtcclxuICAvLyAgICAgICBjb25zb2xlLmxvZyh7IGQgfSk7XHJcbiAgLy8gICAgICAgcmV0dXJuIGQuZGF0YS5uYW1lLnNwbGl0KC8oPz1bQS1aXVteQS1aXSkvZykuY29uY2F0KGZvcm1hdChkLmhlaWdodCkpO1xyXG4gIC8vICAgICB9KVxyXG4gIC8vICAgICAuam9pbihcInRzcGFuXCIpXHJcbiAgLy8gICAgIC5hdHRyKFwieFwiLCAzKVxyXG4gIC8vICAgICAuYXR0cihcclxuICAvLyAgICAgICBcInlcIixcclxuICAvLyAgICAgICAoZCwgaSwgbm9kZXMpID0+IGAkeyhpID09PSBub2Rlcy5sZW5ndGggLSAxKSAqIDAuMyArIDEuMSArIGkgKiAwLjl9ZW1gXHJcbiAgLy8gICAgIClcclxuICAvLyAgICAgLmF0dHIoXCJmaWxsLW9wYWNpdHlcIiwgKGQsIGksIG5vZGVzKSA9PlxyXG4gIC8vICAgICAgIGkgPT09IG5vZGVzLmxlbmd0aCAtIDEgPyAwLjcgOiBudWxsXHJcbiAgLy8gICAgICk7XHJcbiAgLy8gICAvLyAudGV4dCgoZCkgPT4gZCk7XHJcblxyXG4gIGNvbnN0IG5vZGVDbGljayA9IChldmVudDogTW91c2VFdmVudCwgZGVzdDogc3RyaW5nKSA9PiB7XHJcbiAgICBvcGVuT3JTd2l0Y2goZGVzdCwgZXZlbnQpO1xyXG4gICAgbW9kYWwuY2xvc2UoKTtcclxuICB9O1xyXG4gIGxlYWYub24oXCJjbGlja1wiLCAoZXZlbnQ6IE1vdXNlRXZlbnQsIGQpID0+IHtcclxuICAgIGNvbnNvbGUubG9nKHsgZCB9KTtcclxuICAgIG5vZGVDbGljayhldmVudCwgZC5kYXRhLm5hbWUpO1xyXG4gIH0pO1xyXG5cclxuICBmdW5jdGlvbiB6b29tZWQoeyB0cmFuc2Zvcm0gfSkge1xyXG4gICAgc3ZnLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgdHJhbnNmb3JtKTtcclxuICB9XHJcbiAgc3ZnLmNhbGwoXHJcbiAgICBkM1xyXG4gICAgICAuem9vbSgpXHJcbiAgICAgIC5leHRlbnQoW1xyXG4gICAgICAgIFswLCAwXSxcclxuICAgICAgICBbd2lkdGgsIGhlaWdodF0sXHJcbiAgICAgIF0pXHJcbiAgICAgIC5zY2FsZUV4dGVudChbMC41LCA4XSlcclxuICAgICAgLm9uKFwiem9vbVwiLCB6b29tZWQpXHJcbiAgKTtcclxufTtcclxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QUFBLFFBQ2hELFFBQVE7QUFBQSxRQUFNLFFBQVE7QUFBQSxRQUFLLFFBQVE7QUFBQSxRQUFLLFFBQVE7QUFBQSxRQUNoRCxRQUFRO0FBQUEsUUFBTSxRQUFRO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQU0sUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQzFFLFFBQVE7QUFBQSxRQUFNLFFBQVE7QUFBQSxRQUFLLFFBQVE7QUFBQSxRQUFLLFFBQVE7QUFBQSxRQUFLLFFBQVE7QUFBQSxRQUFLLFFBQVE7QUFBQSxRQUMxRSxRQUFRO0FBQUEsUUFBTSxRQUFRO0FBQUEsUUFBSyxRQUFRO0FBQUEsUUFBSyxRQUFRO0FBQUEsUUFDaEQsUUFBUTtBQUFBLFFBQU0sUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQ2hELFFBQVE7QUFBQSxRQUFNLFFBQVE7QUFBQSxRQUFLLFFBQVE7QUFBQSxRQUNuQyxRQUFRO0FBQUEsUUFBTSxRQUFRO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQU0sUUFBUTtBQUFBLFFBQ3RCLFFBQVE7QUFBQSxRQUVSLFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUN6QyxVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFDekMsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQ3hELFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUN4RCxVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFDeEQsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQ3ZFLFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUN2RSxVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFDeEQsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQ3hELFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUN4RCxVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFDdkUsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQ3ZFLFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUMxQixVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFDekMsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQ3ZFLFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUN2RSxVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFDeEQsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQ3hELFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUN6QyxVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFDekMsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQ3pDLFVBQVU7QUFBQSxRQUFNLFVBQVU7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QUNFLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLEtBQUs7QUFBQSxFQUNQO0FBQUEsRUFDQTtBQUFBLElBQ0UsT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsS0FBSztBQUFBLEVBQ1A7QUFBQSxFQUNBO0FBQUEsSUFDRSxPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUDtBQUFBLEVBQ0E7QUFBQSxJQUNFLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLEtBQUs7QUFBQSxFQUNQO0FBQUEsRUFDQTtBQUFBLElBQ0UsT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsS0FBSztBQUFBLEVBQ1A7QUFBQSxFQUNBO0FBQUEsSUFDRSxPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUDtBQUFBLEVBQ0E7QUFBQSxJQUNFLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLEtBQUs7QUFBQSxFQUNQO0FBQUEsRUFDQTtBQUFBLElBQ0UsT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsS0FBSztBQUFBLEVBQ1A7QUFBQSxFQUNBO0FBQUEsSUFDRSxPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUDtBQUFBLEVBQ0E7QUFBQSxJQUNFLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLFdBQVc7QUFBQSxJ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QUEsRUFDUCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxnQkFBZ0I7QUFBQSxFQUNoQixNQUFNO0FBQUEsRUFDTixZQUFZO0FBQUEsRUFDWixPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixXQUFXO0FBQUEsRUFDWCxPQUFPO0FBQUEsRUFDUCxnQkFBZ0I7QUFBQSxFQUNoQixVQUFVO0FBQUEsRUFDVixTQUFTO0FBQUEsRUFDVCxNQUFNO0FBQUEsRUFDTixVQUFVO0FBQUEsRUFDVixVQUFVO0FBQUEsRUFDVixlQUFlO0FBQUEsRUFDZixVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxhQUFhO0FBQUEsRUFDYixnQkFBZ0I7QUFBQSxFQUNoQixZQUFZO0FBQUEsRUFDWixZQUFZO0FBQUEsRUFDWixTQUFTO0FBQUEsRUFDVCxZQUFZO0FBQUEsRUFDWixjQUFjO0FBQUEsRUFDZCxlQUFlO0FBQUEsRUFDZixlQUFlO0FBQUEsRUFDZixlQUFlO0FBQUEsRUFDZixlQUFlO0FBQUEsRUFDZixZQUFZO0FBQUEsRUFDWixVQUFVO0FBQUEsRUFDVixhQUFhO0FBQUEsRUFDYixTQUFTO0FBQUEsRUFDVCxTQUFTO0FBQUEsRUFDVCxZQUFZO0FBQUEsRUFDWixXQUFXO0FBQUEsRUFDWCxhQUFhO0FBQUEsRUFDYixhQUFhO0FBQUEsRUFDYixTQUFTO0FBQUEsRUFDVCxXQUFXO0FBQUEsRUFDWCxZQUFZO0FBQUEsRUFDWixNQUFNO0FBQUEsRUFDTixXQUFXO0FBQUEsRUFDWCxNQUFNO0FBQUEsRUFDTixPQUFPO0FBQUEsRUFDUCxhQUFhO0FBQUEsRUFDYixNQUFNO0FBQUEsRUFDTixVQUFVO0FBQUEsRUFDVixTQUFTO0FBQUEsRUFDVCxXQUFXO0FBQUEsRUFDWCxRQUFRO0FBQUEsRUFDUixPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxVQUFVO0FBQUEsRUFDVixlQUFlO0FBQUEsRUFD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LEdBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLEtBQUssRUFBQyxJQUN0RixNQUFNLElBQUksSUFBSSxJQUFLLE1BQUssSUFBSSxLQUFRLE1BQUssSUFBSSxLQUFRLE1BQUssSUFBSSxLQUFRLEtBQUksS0FBUyxNQUFJLE9BQVEsSUFBTSxLQUFJLElBQU0sQ0FBQyxJQUNoSCxNQUFNLElBQUksS0FBSyxNQUFLLEtBQUssS0FBTSxNQUFLLEtBQUssS0FBTSxNQUFLLElBQUksS0FBTyxNQUFJLE9BQVEsR0FBSSxJQUMvRSxNQUFNLElBQUksS0FBTSxNQUFLLEtBQUssS0FBUSxNQUFLLElBQUksS0FBUSxNQUFLLElBQUksS0FBUSxNQUFLLElBQUksS0FBUSxNQUFLLElBQUksS0FBUSxLQUFJLEtBQVUsT0FBSSxPQUFRLElBQU0sS0FBSSxNQUFRLEdBQUksSUFDdEosUUFDQyxNQUFJLGFBQWEsS0FBSyxPQUFNLEtBQUssSUFBSSxJQUFJLEdBQUUsSUFBSSxHQUFFLElBQUksR0FBRSxJQUFJLENBQUMsSUFDNUQsTUFBSSxhQUFhLEtBQUssT0FBTSxLQUFLLElBQUksSUFBSSxHQUFFLEtBQUssTUFBTSxLQUFLLEdBQUUsS0FBSyxNQUFNLEtBQUssR0FBRSxLQUFLLE1BQU0sS0FBSyxDQUFDLElBQ2hHLE1BQUksY0FBYyxLQUFLLE9BQU0sS0FBSyxLQUFLLEdBQUUsSUFBSSxHQUFFLElBQUksR0FBRSxJQUFJLEdBQUUsRUFBRSxJQUM3RCxNQUFJLGNBQWMsS0FBSyxPQUFNLEtBQUssS0FBSyxHQUFFLEtBQUssTUFBTSxLQUFLLEdBQUUsS0FBSyxNQUFNLEtBQUssR0FBRSxLQUFLLE1BQU0sS0FBSyxHQUFFLEVBQUUsSUFDakcsTUFBSSxhQUFhLEtBQUssT0FBTSxLQUFLLEtBQUssR0FBRSxJQUFJLEdBQUUsS0FBSyxLQUFLLEdBQUUsS0FBSyxLQUFLLENBQUMsSUFDckUsTUFBSSxjQUFjLEtBQUssT0FBTSxLQUFLLEtBQUssR0FBRSxJQUFJLEdBQUUsS0FBSyxLQUFLLEdBQUUsS0FBSyxLQUFLLEdBQUUs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 +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvd2VicGFjay9ib290c3RyYXAiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jbGFzc25hbWVzL2RlZHVwZS5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvZXMvYXJyYXkvZnJvbS5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2EtZnVuY3Rpb24uanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hbi1vYmplY3QuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1mcm9tLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9iaW5kLWNvbnRleHQuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jYWxsLXdpdGgtc2FmZS1pdGVyYXRpb24tY2xvc2luZy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NoZWNrLWNvcnJlY3RuZXNzLW9mLWl0ZXJhdGlvbi5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NsYXNzb2YtcmF3LmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY2xhc3NvZi5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvcHktY29uc3RydWN0b3ItcHJvcGVydGllcy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvcnJlY3QtcHJvdG90eXBlLWdldHRlci5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NyZWF0ZS1pdGVyYXRvci1jb25zdHJ1Y3Rvci5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVmaW5lLWl0ZXJhdG9yLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVzY3JpcHRvcnMuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kb2N1bWVudC1jcmVhdGUtZWxlbWVudC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2VudW0tYnVnLWtleXMuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9leHBvcnQuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9mYWlscy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLXRvLXN0cmluZy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2dldC1pdGVyYXRvci1tZXRob2QuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9nbG9iYWwuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9oYXMuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9oaWRkZW4ta2V5cy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2hpZGUuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9odG1sLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbmRleGVkLW9iamVjdC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtYXJyYXktaXRlcmF0b3ItbWV0aG9kLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtZm9yY2VkLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtb2JqZWN0LmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtcHVyZS5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2l0ZXJhdG9ycy1jb3JlLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXRlcmF0b3JzLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbmF0aXZlLXN5bWJvbC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL25hdGl2ZS13ZWFrLW1hcC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1jcmVhdGUuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnRpZXMuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5LmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvci5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtcHJvdG90eXBlLW9mLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3Qta2V5cy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1wcm9wZXJ0eS1pcy1lbnVtZXJhYmxlLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LXNldC1wcm90b3R5cGUtb2YuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vd24ta2V5cy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3BhdGguanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWRlZmluZS5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZS5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NldC1nbG9iYWwuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zZXQtdG8tc3RyaW5nLXRhZy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NoYXJlZC1rZXkuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zaGFyZWQuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJpbmctYXQuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0LmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8taW50ZWdlci5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWxlbmd0aC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLW9iamVjdC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXByaW1pdGl2ZS5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3VpZC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3ZhbGlkYXRlLXNldC1wcm90b3R5cGUtb2YtYXJndW1lbnRzLmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZnJvbS5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyLyh3ZWJwYWNrKS9idWlsZGluL2dsb2JhbC5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvc3JjL2ljb24uanMiLCAibm9kZV9tb2R1bGVzL2ZlYXRoZXItaWNvbnMvZGlzdC93ZWJwYWNrOi9mZWF0aGVyL3NyYy9pY29ucy5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvc3JjL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9mZWF0aGVyLWljb25zL2Rpc3Qvd2VicGFjazovZmVhdGhlci9zcmMvcmVwbGFjZS5qcyIsICJub2RlX21vZHVsZXMvZmVhdGhlci1pY29ucy9kaXN0L3dlYnBhY2s6L2ZlYXRoZXIvc3JjL3RvLXN2Zy5qcyIsICJub2RlX21vZHVsZXMvbG9nbGV2ZWwvbGliL2xvZ2xldmVsLmpzIiwgIm5vZGVfbW9kdWxlcy9ncmFwaG9sb2d5L3NyYy91dGlscy5qcyIsICJub2RlX21vZHVsZXMvZXZlbnRzL2V2ZW50cy5qcyIsICJub2RlX21vZHVsZXMvb2JsaXRlcmF0b3IvaXRlcmF0b3IuanMiLCAibm9kZV9tb2R1bGVzL29ibGl0ZXJhdG9yL3N1cHBvcnQuanMiLCAibm9kZV9tb2R1bGVzL29ibGl0ZXJhdG9yL2l0ZXIuanMiLCAibm9kZV9tb2R1bGVzL29ibGl0ZXJhdG9yL3Rha2UuanMiLCAibm9kZV9tb2R1bGVzL2dyYXBob2xvZ3kvc3JjL2Vycm9ycy5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS9zcmMvZGF0YS5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS9zcmMvaW5kaWNlcy5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS9zcmMvYXR0cmlidXRlcy9ub2Rlcy5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS9zcmMvYXR0cmlidXRlcy9lZGdlcy5qcyIsICJub2RlX21vZHVsZXMvb2JsaXRlcmF0b3IvY2hhaW4uanMiLCAibm9kZV9tb2R1bGVzL2dyYXBob2xvZ3kvc3JjL2l0ZXJhdGlvbi9lZGdlcy5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS9zcmMvaXRlcmF0aW9uL25laWdoYm9ycy5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS9zcmMvaXRlcmF0aW9uL2FkamFjZW5jeS5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS9zcmMvc2VyaWFsaXphdGlvbi5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS9zcmMvZ3JhcGguanMiLCAibm9kZV9tb2R1bGVzL2dyYXBob2xvZ3kvc3JjL2NsYXNzZXMuanMiLCAibm9kZV9tb2R1bGVzL2dyYXBob2xvZ3ktdXRpbHMvaXMtZ3JhcGguanMiLCAibm9kZV9tb2R1bGVzL29ibGl0ZXJhdG9yL3N1cHBvcnQuanMiLCAibm9kZV9tb2R1bGVzL29ibGl0ZXJhdG9yL2ZvcmVhY2guanMiLCAibm9kZV9tb2R1bGVzL21uZW1vbmlzdC91dGlscy90eXBlZC1hcnJheXMuanMiLCAibm9kZV9tb2R1bGVzL21uZW1vbmlzdC91dGlscy9pdGVyYWJsZXMuanMiLCAibm9kZV9tb2R1bGVzL29ibGl0ZXJhdG9yL2l0ZXJhdG9yLmpzIiwgIm5vZGVfbW9kdWxlcy9tbmVtb25pc3QvZml4ZWQtZGVxdWUuanMiLCAibm9kZV9tb2R1bGVzL2dyYXBob2xvZ3ktdHJhdmVyc2FsL3V0aWxzLmpzIiwgIm5vZGVfbW9kdWxlcy9ncmFwaG9sb2d5LXRyYXZlcnNhbC9iZnMuanMiLCAibm9kZV9tb2R1bGVzL2dyYXBob2xvZ3ktdHJhdmVyc2FsL2Rmcy5qcyIsICJub2RlX21vZHVsZXMvZ3JhcGhvbG9neS10cmF2ZXJzYWwvaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9lcnJvcnMuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbXBsL2Zvcm1hdHMuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbXBsL3V0aWwuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbXBsL2VuZ2xpc2guanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbXBsL2Zvcm1hdHRlci5qcyIsICJub2RlX21vZHVsZXMvbHV4b24vc3JjL2ltcGwvaW52YWxpZC5qcyIsICJub2RlX21vZHVsZXMvbHV4b24vc3JjL3pvbmUuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy96b25lcy9zeXN0ZW1ab25lLmpzIiwgIm5vZGVfbW9kdWxlcy9sdXhvbi9zcmMvem9uZXMvSUFOQVpvbmUuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy96b25lcy9maXhlZE9mZnNldFpvbmUuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy96b25lcy9pbnZhbGlkWm9uZS5qcyIsICJub2RlX21vZHVsZXMvbHV4b24vc3JjL2ltcGwvem9uZVV0aWwuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9zZXR0aW5ncy5qcyIsICJub2RlX21vZHVsZXMvbHV4b24vc3JjL2ltcGwvbG9jYWxlLmpzIiwgIm5vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW1wbC9yZWdleFBhcnNlci5qcyIsICJub2RlX21vZHVsZXMvbHV4b24vc3JjL2R1cmF0aW9uLmpzIiwgIm5vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW50ZXJ2YWwuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbmZvLmpzIiwgIm5vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW1wbC9kaWZmLmpzIiwgIm5vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW1wbC9kaWdpdHMuanMiLCAibm9kZV9tb2R1bGVzL2x1eG9uL3NyYy9pbXBsL3Rva2VuUGFyc2VyLmpzIiwgIm5vZGVfbW9kdWxlcy9sdXhvbi9zcmMvaW1wbC9jb252ZXJzaW9ucy5qcyIsICJub2RlX21vZHVsZXMvbHV4b24vc3JjL2RhdGV0aW1lLmpzIiwgIm5vZGVfbW9kdWxlcy9sdXhvbi9zcmMvbHV4b24uanMiLCAibm9kZV9tb2R1bGVzL2xvZGFzaC9sb2Rhc2guanMiLCAic3JjL21haW4udHMiLCAibm9kZV9tb2R1bGVzL2p1Z2dsLWFwaS9kaXN0L2luZGV4Lm1qcyIsICJub2RlX21vZHVsZXMvb2JzaWRpYW4tY29tbXVuaXR5LWxpYi9kaXN0L3V0aWxzLmpzIiwgInNyYy9jb25zdGFudHMudHMiLCAic3JjL1ZpZXdzL01hdHJpeFZpZXcudHMiLCAic3JjL0RlYnVnZ2VyLnRzIiwgIm5vZGVfbW9kdWxlcy9zdmVsdGUvaW50ZXJuYWwvaW5kZXgubWpzIiwgInNyYy9yZWZyZXNoSW5kZXgudHMiLCAic3JjL0FsdGVybmF0aXZlSGllcmFyY2hpZXMvQ1NWQ3J1bWJzLnRzIiwgInNyYy9VdGlscy9PYnNpZGlhblV0aWxzLnRzIiwgInNyYy9VdGlscy9nZW5lcmFsVXRpbHMudHMiLCAic3JjL1V0aWxzL2dyYXBoVXRpbHMudHMiLCAic3JjL1V0aWxzL0hpZXJVdGlscy50cyIsICJzcmMvQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9EYXRhdmlld05vdGVzLnRzIiwgInNyYy9BbHRlcm5hdGl2ZUhpZXJhcmNoaWVzL0RhdGVOb3Rlcy50cyIsICJzcmMvQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9EZW5kcm9uTm90ZXMudHMiLCAic3JjL0FsdGVybmF0aXZlSGllcmFyY2hpZXMvRm9sZGVyTm90ZXMudHMiLCAic3JjL0FsdGVybmF0aXZlSGllcmFyY2hpZXMvSGllcmFyY2h5Tm90ZXMvSGllcmFyY2h5Tm90ZXMudHMiLCAic3JjL0FsdGVybmF0aXZlSGllcmFyY2hpZXMvSnVnZ2xMaW5rcy50cyIsICJzcmMvQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9MaW5rTm90ZXMudHMiLCAic3JjL0FsdGVybmF0aXZlSGllcmFyY2hpZXMvUmVnZXhOb3Rlcy50cyIsICJzcmMvQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9UYWdOb3Rlcy50cyIsICJzcmMvQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9UcmF2ZXJzZU5vdGVzLnRzIiwgInNyYy9SZWxhdGlvbnMudHMiLCAic3JjL1ZpZXdzL1RyYWlsVmlldy50cyIsICJzcmMvc3JjL0NvbXBvbmVudHMvTmV4dFByZXYuc3ZlbHRlIiwgInNyYy9Db21wb25lbnRzL05leHRQcmV2LnN2ZWx0ZSIsICJzcmMvc3JjL0NvbXBvbmVudHMvVHJhaWxHcmlkLnN2ZWx0ZSIsICJzcmMvQ29tcG9uZW50cy9UcmFpbEdyaWQuc3ZlbHRlIiwgInNyYy9zcmMvQ29tcG9uZW50cy9UcmFpbFBhdGguc3ZlbHRlIiwgInNyYy9Db21wb25lbnRzL1RyYWlsUGF0aC5zdmVsdGUiLCAic3JjL1Zpc3VhbGlzYXRpb25zL0p1Z2dsLnRzIiwgInNyYy9Db21tYW5kcy9DcmVhdGVJbmRleC50cyIsICJzcmMvQ29tcG9uZW50cy9KdWdnbEJ1dHRvbi5zdmVsdGUiLCAic3JjL3NyYy9Db21wb25lbnRzL0p1Z2dsQnV0dG9uLnN2ZWx0ZSIsICJzcmMvc3JjL0NvbXBvbmVudHMvSnVnZ2xEZXB0aC5zdmVsdGUiLCAic3JjL0NvbXBvbmVudHMvSnVnZ2xEZXB0aC5zdmVsdGUiLCAic3JjL3NyYy9Db21wb25lbnRzL01hdHJpeEJ1dHRvbnMuc3ZlbHRlIiwgInNyYy9Db21wb25lbnRzL01hdHJpeEJ1dHRvbnMuc3ZlbHRlIiwgInNyYy9zcmMvQ29tcG9uZW50cy9NYXRyaXguc3ZlbHRlIiwgInNyYy9Db21wb25lbnRzL01hdHJpeC5zdmVsdGUiLCAic3JjL0FQSS50cyIsICJzcmMvQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9IaWVyYXJjaHlOb3Rlcy9IaWVyTm90ZU1vZGFsLnRzIiwgInNyYy9BbHRlcm5hdGl2ZUhpZXJhcmNoaWVzL0hpZXJhcmNoeU5vdGVzL0hpZXJhcmNoeU5vdGVNYW5pcHVsYXRvci50cyIsICJzcmMvQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9IaWVyYXJjaHlOb3Rlcy9Nb2RpZnlIaWVySXRlbU1vZGFsLnRzIiwgInNyYy9zcmMvQ29tcG9uZW50cy9Nb2RpZnlITkl0ZW1Db21wLnN2ZWx0ZSIsICJzcmMvQ29tcG9uZW50cy9Nb2RpZnlITkl0ZW1Db21wLnN2ZWx0ZSIsICJzcmMvQ29kZWJsb2Nrcy50cyIsICJzcmMvc3JjL0NvbXBvbmVudHMvUmVuZGVyTWFya2Rvd24uc3ZlbHRlIiwgInNyYy9Db21wb25lbnRzL1JlbmRlck1hcmtkb3duLnN2ZWx0ZSIsICJzcmMvc3JjL0NvbXBvbmVudHMvQ0JUcmVlLnN2ZWx0ZSIsICJzcmMvQ29tcG9uZW50cy9DQlRyZWUuc3ZlbHRlIiwgInNyYy9Db21tYW5kcy9qdW1wVG9GaXJzdERpci50cyIsICJzcmMvQ29tbWFuZHMvdGhyZWFkaW5nLnRzIiwgInNyYy9Db21tYW5kcy9Xcml0ZUJDcy50cyIsICJzcmMvRmllbGRTdWdnZXN0b3IudHMiLCAic3JjL1JlbGF0aW9uU3VnZ2VzdG9yLnRzIiwgInNyYy9TZXR0aW5ncy9CcmVhZGNydW1ic1NldHRpbmdUYWIudHMiLCAic3JjL0NvbXBvbmVudHMvS29GaS5zdmVsdGUiLCAic3JjL1NldHRpbmdzL0NyZWF0ZUluZGV4U2V0dGluZ3MudHMiLCAic3JjL1NldHRpbmdzL0NTVlNldHRpbmdzLnRzIiwgInNyYy9TZXR0aW5ncy9EYXRhdmlld05vdGVTZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvRGF0ZU5vdGVTZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvRGVidWdnaW5nU2V0dGluZ3MudHMiLCAic3JjL1NldHRpbmdzL0RlbmRyb25TZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvR2VuZXJhbFNldHRpbmdzLnRzIiwgInNyYy9TZXR0aW5ncy9IaWVyYXJjaHlOb3RlU2V0dGluZ3MudHMiLCAic3JjL3NyYy9Db21wb25lbnRzL1VzZXJIaWVyYXJjaGllcy5zdmVsdGUiLCAic3JjL0NvbXBvbmVudHMvVXNlckhpZXJhcmNoaWVzLnN2ZWx0ZSIsICJub2RlX21vZHVsZXMvc3ZlbHRlLWljb25zL2NvbXBvbmVudHMvSWNvbkJhc2Uuc3ZlbHRlIiwgIm5vZGVfbW9kdWxlcy9zdmVsdGUtaWNvbnMvZmEvRmFMaXN0VWwuc3ZlbHRlIiwgIm5vZGVfbW9kdWxlcy9zdmVsdGUtaWNvbnMvZmEvRmFQbHVzLnN2ZWx0ZSIsICJub2RlX21vZHVsZXMvc3ZlbHRlLWljb25zL2ZhL0ZhUmVnVHJhc2hBbHQuc3ZlbHRlIiwgInNyYy9TZXR0aW5ncy9IaWVyYXJjaHlTZXR0aW5ncy50cyIsICJzcmMvc3JjL0NvbXBvbmVudHMvQ2hlY2tib3hlcy5zdmVsdGUiLCAic3JjL0NvbXBvbmVudHMvQ2hlY2tib3hlcy5zdmVsdGUiLCAic3JjL1NldHRpbmdzL0p1bXBUb05leHRTZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvTWF0cml4Vmlld1NldHRpbmdzLnRzIiwgInNyYy9TZXR0aW5ncy9Ob1N5c3RlbVNldHRpbmdzLnRzIiwgInNyYy9TZXR0aW5ncy9SZWdleE5vdGVTZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvUmVsYXRpb25TZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvVGFnTm90ZVNldHRpbmdzLnRzIiwgInNyYy9TZXR0aW5ncy9UaHJlYWRpbmdTZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvVHJhaWxTZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvVmlzTW9kYWxTZXR0aW5ncy50cyIsICJzcmMvU2V0dGluZ3MvV3JpdGVCQ3NTZXR0aW5ncy50cyIsICJzcmMvVmlld3MvRHVja3NWaWV3LnRzIiwgIm5vZGVfbW9kdWxlcy9zdmVsdGUtaWNvbnMvZmEvRmFJbmZvLnN2ZWx0ZSIsICJzcmMvc3JjL0NvbXBvbmVudHMvRHVja3Muc3ZlbHRlIiwgInNyYy9Db21wb25lbnRzL0R1Y2tzLnN2ZWx0ZSIsICJzcmMvVmlld3MvVHJlZVZpZXcudHMiLCAic3JjL3NyYy9Db21wb25lbnRzL1NpZGVUcmVlLnN2ZWx0ZSIsICJzcmMvQ29tcG9uZW50cy9TaWRlVHJlZS5zdmVsdGUiLCAibm9kZV9tb2R1bGVzL3N2ZWx0ZS1pY29ucy9mYS9GYUZpcmUuc3ZlbHRlIiwgIm5vZGVfbW9kdWxlcy9zdmVsdGUtaWNvbnMvZmEvRmFSZWdTbm93Zmxha2Uuc3ZlbHRlIiwgIm5vZGVfbW9kdWxlcy9kMy1hcnJheS9zcmMvYXNjZW5kaW5nLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1hcnJheS9zcmMvYmlzZWN0b3IuanMiLCAibm9kZV9tb2R1bGVzL2QzLWFycmF5L3NyYy9udW1iZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLWFycmF5L3NyYy9iaXNlY3QuanMiLCAibm9kZV9tb2R1bGVzL2QzLWFycmF5L3NyYy90aWNrcy5qcyIsICJub2RlX21vZHVsZXMvZDMtYXJyYXkvc3JjL21heC5qcyIsICJub2RlX21vZHVsZXMvZDMtYXJyYXkvc3JjL3JhbmdlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1kaXNwYXRjaC9zcmMvZGlzcGF0Y2guanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvbmFtZXNwYWNlcy5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9uYW1lc3BhY2UuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvY3JlYXRvci5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rvci5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vc2VsZWN0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL2FycmF5LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdG9yQWxsLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9zZWxlY3RBbGwuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvbWF0Y2hlci5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vc2VsZWN0Q2hpbGQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL3NlbGVjdENoaWxkcmVuLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9maWx0ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL3NwYXJzZS5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vZW50ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvY29uc3RhbnQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2RhdGEuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2V4aXQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2pvaW4uanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL21lcmdlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9vcmRlci5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vc29ydC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vY2FsbC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vbm9kZXMuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL25vZGUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL3NpemUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2VtcHR5LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9lYWNoLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9hdHRyLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3dpbmRvdy5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vc3R5bGUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL3Byb3BlcnR5LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9jbGFzc2VkLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi90ZXh0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9odG1sLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9yYWlzZS5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vbG93ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2FwcGVuZC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vaW5zZXJ0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9yZW1vdmUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2Nsb25lLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9kYXR1bS5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vb24uanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0aW9uL2Rpc3BhdGNoLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NlbGVjdGlvbi9pdGVyYXRvci5qcyIsICJub2RlX21vZHVsZXMvZDMtc2VsZWN0aW9uL3NyYy9zZWxlY3Rpb24vaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2QzLXNlbGVjdGlvbi9zcmMvc2VsZWN0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3NvdXJjZUV2ZW50LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zZWxlY3Rpb24vc3JjL3BvaW50ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLWRyYWcvc3JjL25vZXZlbnQuanMiLCAibm9kZV9tb2R1bGVzL2QzLWRyYWcvc3JjL25vZHJhZy5qcyIsICJub2RlX21vZHVsZXMvZDMtZHJhZy9zcmMvY29uc3RhbnQuanMiLCAibm9kZV9tb2R1bGVzL2QzLWRyYWcvc3JjL2V2ZW50LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1kcmFnL3NyYy9kcmFnLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1jb2xvci9zcmMvZGVmaW5lLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1jb2xvci9zcmMvY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL2QzLWNvbG9yL3NyYy9tYXRoLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1jb2xvci9zcmMvY3ViZWhlbGl4LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvYmFzaXMuanMiLCAibm9kZV9tb2R1bGVzL2QzLWludGVycG9sYXRlL3NyYy9iYXNpc0Nsb3NlZC5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL2NvbnN0YW50LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvY29sb3IuanMiLCAibm9kZV9tb2R1bGVzL2QzLWludGVycG9sYXRlL3NyYy9yZ2IuanMiLCAibm9kZV9tb2R1bGVzL2QzLWludGVycG9sYXRlL3NyYy9udW1iZXJBcnJheS5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL2FycmF5LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvZGF0ZS5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL251bWJlci5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL29iamVjdC5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL3N0cmluZy5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL3ZhbHVlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvcm91bmQuanMiLCAibm9kZV9tb2R1bGVzL2QzLWludGVycG9sYXRlL3NyYy90cmFuc2Zvcm0vZGVjb21wb3NlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvdHJhbnNmb3JtL3BhcnNlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvdHJhbnNmb3JtL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1pbnRlcnBvbGF0ZS9zcmMvem9vbS5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL2N1YmVoZWxpeC5qcyIsICJub2RlX21vZHVsZXMvZDMtaW50ZXJwb2xhdGUvc3JjL3F1YW50aXplLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10aW1lci9zcmMvdGltZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRpbWVyL3NyYy90aW1lb3V0LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL3NjaGVkdWxlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy9pbnRlcnJ1cHQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3NlbGVjdGlvbi9pbnRlcnJ1cHQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vdHdlZW4uanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vaW50ZXJwb2xhdGUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vYXR0ci5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvdHJhbnNpdGlvbi9hdHRyVHdlZW4uanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vZGVsYXkuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vZHVyYXRpb24uanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vZWFzZS5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvdHJhbnNpdGlvbi9lYXNlVmFyeWluZy5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvdHJhbnNpdGlvbi9maWx0ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vbWVyZ2UuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vb24uanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vcmVtb3ZlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL3NlbGVjdC5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvdHJhbnNpdGlvbi9zZWxlY3RBbGwuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vc2VsZWN0aW9uLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL3N0eWxlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy90cmFuc2l0aW9uL3N0eWxlVHdlZW4uanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vdGV4dC5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvdHJhbnNpdGlvbi90ZXh0VHdlZW4uanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vdHJhbnNpdGlvbi5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvdHJhbnNpdGlvbi9lbmQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXRyYW5zaXRpb24vc3JjL3RyYW5zaXRpb24vaW5kZXguanMiLCAibm9kZV9tb2R1bGVzL2QzLWVhc2Uvc3JjL2N1YmljLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy10cmFuc2l0aW9uL3NyYy9zZWxlY3Rpb24vdHJhbnNpdGlvbi5qcyIsICJub2RlX21vZHVsZXMvZDMtdHJhbnNpdGlvbi9zcmMvc2VsZWN0aW9uL2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1icnVzaC9zcmMvYnJ1c2guanMiLCAibm9kZV9tb2R1bGVzL2QzLXBhdGgvc3JjL3BhdGguanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcmNlL3NyYy9jZW50ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXF1YWR0cmVlL3NyYy9hZGQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXF1YWR0cmVlL3NyYy9jb3Zlci5qcyIsICJub2RlX21vZHVsZXMvZDMtcXVhZHRyZWUvc3JjL2RhdGEuanMiLCAibm9kZV9tb2R1bGVzL2QzLXF1YWR0cmVlL3NyYy9leHRlbnQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXF1YWR0cmVlL3NyYy9xdWFkLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1xdWFkdHJlZS9zcmMvZmluZC5qcyIsICJub2RlX21vZHVsZXMvZDMtcXVhZHRyZWUvc3JjL3JlbW92ZS5qcyIsICJub2RlX21vZHVsZXMvZDMtcXVhZHRyZWUvc3JjL3Jvb3QuanMiLCAibm9kZV9tb2R1bGVzL2QzLXF1YWR0cmVlL3NyYy9zaXplLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1xdWFkdHJlZS9zcmMvdmlzaXQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXF1YWR0cmVlL3NyYy92aXNpdEFmdGVyLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1xdWFkdHJlZS9zcmMveC5qcyIsICJub2RlX21vZHVsZXMvZDMtcXVhZHRyZWUvc3JjL3kuanMiLCAibm9kZV9tb2R1bGVzL2QzLXF1YWR0cmVlL3NyYy9xdWFkdHJlZS5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9yY2Uvc3JjL2NvbnN0YW50LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1mb3JjZS9zcmMvamlnZ2xlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1mb3JjZS9zcmMvY29sbGlkZS5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9yY2Uvc3JjL2xpbmsuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcmNlL3NyYy9sY2cuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcmNlL3NyYy9zaW11bGF0aW9uLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1mb3JjZS9zcmMvbWFueUJvZHkuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvZm9ybWF0RGVjaW1hbC5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9ybWF0L3NyYy9leHBvbmVudC5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9ybWF0L3NyYy9mb3JtYXRHcm91cC5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9ybWF0L3NyYy9mb3JtYXROdW1lcmFscy5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9ybWF0L3NyYy9mb3JtYXRTcGVjaWZpZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvZm9ybWF0VHJpbS5qcyIsICJub2RlX21vZHVsZXMvZDMtZm9ybWF0L3NyYy9mb3JtYXRQcmVmaXhBdXRvLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1mb3JtYXQvc3JjL2Zvcm1hdFJvdW5kZWQuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvZm9ybWF0VHlwZXMuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvaWRlbnRpdHkuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvbG9jYWxlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1mb3JtYXQvc3JjL2RlZmF1bHRMb2NhbGUuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvcHJlY2lzaW9uRml4ZWQuanMiLCAibm9kZV9tb2R1bGVzL2QzLWZvcm1hdC9zcmMvcHJlY2lzaW9uUHJlZml4LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1mb3JtYXQvc3JjL3ByZWNpc2lvblJvdW5kLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL2NsdXN0ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLWhpZXJhcmNoeS9zcmMvaGllcmFyY2h5L2NvdW50LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL2hpZXJhcmNoeS9lYWNoLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL2hpZXJhcmNoeS9lYWNoQmVmb3JlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL2hpZXJhcmNoeS9lYWNoQWZ0ZXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLWhpZXJhcmNoeS9zcmMvaGllcmFyY2h5L2ZpbmQuanMiLCAibm9kZV9tb2R1bGVzL2QzLWhpZXJhcmNoeS9zcmMvaGllcmFyY2h5L3N1bS5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy9oaWVyYXJjaHkvc29ydC5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy9oaWVyYXJjaHkvcGF0aC5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy9oaWVyYXJjaHkvYW5jZXN0b3JzLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL2hpZXJhcmNoeS9kZXNjZW5kYW50cy5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy9oaWVyYXJjaHkvbGVhdmVzLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL2hpZXJhcmNoeS9saW5rcy5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy9oaWVyYXJjaHkvaXRlcmF0b3IuanMiLCAibm9kZV9tb2R1bGVzL2QzLWhpZXJhcmNoeS9zcmMvaGllcmFyY2h5L2luZGV4LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL2FjY2Vzc29ycy5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy9jb25zdGFudC5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy90cmVlbWFwL3JvdW5kLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL3RyZWVtYXAvZGljZS5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy9wYXJ0aXRpb24uanMiLCAibm9kZV9tb2R1bGVzL2QzLWhpZXJhcmNoeS9zcmMvc3RyYXRpZnkuanMiLCAibm9kZV9tb2R1bGVzL2QzLWhpZXJhcmNoeS9zcmMvdHJlZS5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy90cmVlbWFwL3NsaWNlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1oaWVyYXJjaHkvc3JjL3RyZWVtYXAvc3F1YXJpZnkuanMiLCAibm9kZV9tb2R1bGVzL2QzLWhpZXJhcmNoeS9zcmMvdHJlZW1hcC9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZDMtaGllcmFyY2h5L3NyYy90cmVlbWFwL2JpbmFyeS5qcyIsICJub2RlX21vZHVsZXMvZDMtc2NhbGUvc3JjL2luaXQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNjYWxlL3NyYy9vcmRpbmFsLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zY2FsZS9zcmMvYmFuZC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2NhbGUvc3JjL2NvbnN0YW50LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zY2FsZS9zcmMvbnVtYmVyLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zY2FsZS9zcmMvY29udGludW91cy5qcyIsICJub2RlX21vZHVsZXMvZDMtc2NhbGUvc3JjL3RpY2tGb3JtYXQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNjYWxlL3NyYy9saW5lYXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNjYWxlLWNocm9tYXRpYy9zcmMvY29sb3JzLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zY2FsZS1jaHJvbWF0aWMvc3JjL2NhdGVnb3JpY2FsL2NhdGVnb3J5MTAuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNjYWxlLWNocm9tYXRpYy9zcmMvc2VxdWVudGlhbC1tdWx0aS9yYWluYm93LmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvY29uc3RhbnQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9tYXRoLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvYXJjLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvYXJyYXkuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9jdXJ2ZS9saW5lYXIuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9wb2ludC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2hhcGUvc3JjL2xpbmUuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9jdXJ2ZS9yYWRpYWwuanMiLCAibm9kZV9tb2R1bGVzL2QzLXNoYXBlL3NyYy9saW5lUmFkaWFsLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvbGluay9pbmRleC5qcyIsICJub2RlX21vZHVsZXMvZDMtc2hhcGUvc3JjL2N1cnZlL2Jhc2lzLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy1zaGFwZS9zcmMvY3VydmUvYnVuZGxlLmpzIiwgIm5vZGVfbW9kdWxlcy9kMy16b29tL3NyYy9jb25zdGFudC5qcyIsICJub2RlX21vZHVsZXMvZDMtem9vbS9zcmMvZXZlbnQuanMiLCAibm9kZV9tb2R1bGVzL2QzLXpvb20vc3JjL3RyYW5zZm9ybS5qcyIsICJub2RlX21vZHVsZXMvZDMtem9vbS9zcmMvbm9ldmVudC5qcyIsICJub2RlX21vZHVsZXMvZDMtem9vbS9zcmMvem9vbS5qcyIsICJzcmMvVmlzdWFsaXNhdGlvbnMvVmlzTW9kYWwudHMiLCAic3JjL3NyYy9Db21wb25lbnRzL1Zpc0NvbXAuc3ZlbHRlIiwgInNyYy9Db21wb25lbnRzL1Zpc0NvbXAuc3ZlbHRlIiwgInNyYy9WaXN1YWxpc2F0aW9ucy9BcmNEaWFncmFtLnRzIiwgInNyYy9WaXN1YWxpc2F0aW9ucy9DaXJjbGVQYWNraW5nLnRzIiwgInNyYy9WaXN1YWxpc2F0aW9ucy9FZGdlQnVuZGxpbmcudHMiLCAic3JjL1Zpc3VhbGlzYXRpb25zL0ZvcmNlRGlyZWN0ZWRHLnRzIiwgInNyYy9WaXN1YWxpc2F0aW9ucy9JY2ljbGUudHMiLCAic3JjL1Zpc3VhbGlzYXRpb25zL1JhZGlhbFRyZWUudHMiLCAic3JjL1Zpc3VhbGlzYXRpb25zL1N1bmJ1cnN0LnRzIiwgInNyYy9WaXN1YWxpc2F0aW9ucy9UaWR5VHJlZS50cyIsICJzcmMvVmlzdWFsaXNhdGlvbnMvVHJlZU1hcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiZmVhdGhlclwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJmZWF0aGVyXCJdID0gZmFjdG9yeSgpO1xufSkodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnID8gc2VsZiA6IHRoaXMsIGZ1bmN0aW9uKCkge1xucmV0dXJuICIsICIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbiBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbiBcdFx0XHR9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDApO1xuIiwgIi8qIVxuICBDb3B5cmlnaHQgKGMpIDIwMTYgSmVkIFdhdHNvbi5cbiAgTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlIChNSVQpLCBzZWVcbiAgaHR0cDovL2plZHdhdHNvbi5naXRodWIuaW8vY2xhc3NuYW1lc1xuKi9cbi8qIGdsb2JhbCBkZWZpbmUgKi9cblxuKGZ1bmN0aW9uICgpIHtcblx0J3VzZSBzdHJpY3QnO1xuXG5cdHZhciBjbGFzc05hbWVzID0gKGZ1bmN0aW9uICgpIHtcblx0XHQvLyBkb24ndCBpbmhlcml0IGZyb20gT2JqZWN0IHNvIHdlIGNhbiBza2lwIGhhc093blByb3BlcnR5IGNoZWNrIGxhdGVyXG5cdFx0Ly8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNTUxODMyOC9jcmVhdGluZy1qcy1vYmplY3Qtd2l0aC1vYmplY3QtY3JlYXRlbnVsbCNhbnN3ZXItMjEwNzkyMzJcblx0XHRmdW5jdGlvbiBTdG9yYWdlT2JqZWN0KCkge31cblx0XHRTdG9yYWdlT2JqZWN0LnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cblx0XHRmdW5jdGlvbiBfcGFyc2VBcnJheSAocmVzdWx0U2V0LCBhcnJheSkge1xuXHRcdFx0dmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuXHRcdFx0XHRfcGFyc2UocmVzdWx0U2V0LCBhcnJheVtpXSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dmFyIGhhc093biA9IHt9Lmhhc093blByb3BlcnR5O1xuXG5cdFx0ZnVuY3Rpb24gX3BhcnNlTnVtYmVyIChyZXN1bHRTZXQsIG51bSkge1xuXHRcdFx0cmVzdWx0U2V0W251bV0gPSB0cnVlO1xuXHRcdH1cblxuXHRcdGZ1bmN0aW9uIF9wYXJzZU9iamVjdCAocmVzdWx0U2V0LCBvYmplY3QpIHtcblx0XHRcdGZvciAodmFyIGsgaW4gb2JqZWN0KSB7XG5cdFx0XHRcdGlmIChoYXNPd24uY2FsbChvYmplY3QsIGspKSB7XG5cdFx0XHRcdFx0Ly8gc2V0IHZhbHVlIHRvIGZhbHNlIGluc3RlYWQgb2YgZGVsZXRpbmcgaXQgdG8gYXZvaWQgY2hhbmdpbmcgb2JqZWN0IHN0cnVjdHVyZVxuXHRcdFx0XHRcdC8vIGh0dHBzOi8vd3d3LnNtYXNoaW5nbWFnYXppbmUuY29tLzIwMTIvMTEvd3JpdGluZy1mYXN0LW1lbW9yeS1lZmZpY2llbnQtamF2YXNjcmlwdC8jZGUtcmVmZXJlbmNpbmctbWlzY29uY2VwdGlvbnNcblx0XHRcdFx0XHRyZXN1bHRTZXRba10gPSAhIW9iamVjdFtrXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHZhciBTUEFDRSA9IC9cXHMrLztcblx0XHRmdW5jdGlvbiBfcGFyc2VTdHJpbmcgKHJlc3VsdFNldCwgc3RyKSB7XG5cdFx0XHR2YXIgYXJyYXkgPSBzdHIuc3BsaXQoU1BBQ0UpO1xuXHRcdFx0dmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuXHRcdFx0XHRyZXN1bHRTZXRbYXJyYXlbaV1dID0gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRmdW5jdGlvbiBfcGFyc2UgKHJlc3VsdFNldCwgYXJnKSB7XG5cdFx0XHRpZiAoIWFyZykgcmV0dXJuO1xuXHRcdFx0dmFyIGFyZ1R5cGUgPSB0eXBlb2YgYXJnO1xuXG5cdFx0XHQvLyAnZm9vIGJhcidcblx0XHRcdGlmIChhcmdUeXBlID09PSAnc3RyaW5nJykge1xuXHRcdFx0XHRfcGFyc2VTdHJpbmcocmVzdWx0U2V0LCBhcmcpO1xuXG5cdFx0XHQvLyBbJ2ZvbycsICdiYXInLCAuLi5dXG5cdFx0XHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYXJnKSkge1xuXHRcdFx0XHRfcGFyc2VBcnJheShyZXN1bHRTZXQsIGFyZyk7XG5cblx0XHRcdC8vIHsgJ2Zvbyc6IHRydWUsIC4uLiB9XG5cdFx0XHR9IGVsc2UgaWYgKGFyZ1R5cGUgPT09ICdvYmplY3QnKSB7XG5cdFx0XHRcdF9wYXJzZU9iamVjdChyZXN1bHRTZXQsIGFyZyk7XG5cblx0XHRcdC8vICcxMzAnXG5cdFx0XHR9IGVsc2UgaWYgKGFyZ1R5cGUgPT09ICdudW1iZXInKSB7XG5cdFx0XHRcdF9wYXJzZU51bWJlcihyZXN1bHRTZXQsIGFyZyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gX2NsYXNzTmFtZXMgKCkge1xuXHRcdFx0Ly8gZG9uJ3QgbGVhayBhcmd1bWVudHNcblx0XHRcdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wZXRrYWFudG9ub3YvYmx1ZWJpcmQvd2lraS9PcHRpbWl6YXRpb24ta2lsbGVycyMzMi1sZWFraW5nLWFyZ3VtZW50c1xuXHRcdFx0dmFyIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG5cdFx0XHR2YXIgYXJncyA9IEFycmF5KGxlbik7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRcdGFyZ3NbaV0gPSBhcmd1bWVudHNbaV07XG5cdFx0XHR9XG5cblx0XHRcdHZhciBjbGFzc1NldCA9IG5ldyBTdG9yYWdlT2JqZWN0KCk7XG5cdFx0XHRfcGFyc2VBcnJheShjbGFzc1NldCwgYXJncyk7XG5cblx0XHRcdHZhciBsaXN0ID0gW107XG5cblx0XHRcdGZvciAodmFyIGsgaW4gY2xhc3NTZXQpIHtcblx0XHRcdFx0aWYgKGNsYXNzU2V0W2tdKSB7XG5cdFx0XHRcdFx0bGlzdC5wdXNoKGspXG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGxpc3Quam9pbignICcpO1xuXHRcdH1cblxuXHRcdHJldHVybiBfY2xhc3NOYW1lcztcblx0fSkoKTtcblxuXHRpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGNsYXNzTmFtZXM7XG5cdH0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZGVmaW5lLmFtZCA9PT0gJ29iamVjdCcgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIHJlZ2lzdGVyIGFzICdjbGFzc25hbWVzJywgY29uc2lzdGVudCB3aXRoIG5wbSBwYWNrYWdlIG5hbWVcblx0XHRkZWZpbmUoJ2NsYXNzbmFtZXMnLCBbXSwgZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIGNsYXNzTmFtZXM7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0d2luZG93LmNsYXNzTmFtZXMgPSBjbGFzc05hbWVzO1xuXHR9XG59KCkpO1xuIiwgInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMuc3RyaW5nLml0ZXJhdG9yJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzLmFycmF5LmZyb20nKTtcbnZhciBwYXRoID0gcmVxdWlyZSgnLi4vLi4vaW50ZXJuYWxzL3BhdGgnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXRoLkFycmF5LmZyb207XG4iLCAibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKHR5cGVvZiBpdCAhPSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKFN0cmluZyhpdCkgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG4gIH0gcmV0dXJuIGl0O1xufTtcbiIsICJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKFN0cmluZyhpdCkgKyAnIGlzIG5vdCBhbiBvYmplY3QnKTtcbiAgfSByZXR1cm4gaXQ7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBiaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2JpbmQtY29udGV4dCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIGNhbGxXaXRoU2FmZUl0ZXJhdGlvbkNsb3NpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2FsbC13aXRoLXNhZmUtaXRlcmF0aW9uLWNsb3NpbmcnKTtcbnZhciBpc0FycmF5SXRlcmF0b3JNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtYXJyYXktaXRlcmF0b3ItbWV0aG9kJyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgY3JlYXRlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5Jyk7XG52YXIgZ2V0SXRlcmF0b3JNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWl0ZXJhdG9yLW1ldGhvZCcpO1xuXG4vLyBgQXJyYXkuZnJvbWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5mcm9tXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGZyb20oYXJyYXlMaWtlIC8qICwgbWFwZm4gPSB1bmRlZmluZWQsIHRoaXNBcmcgPSB1bmRlZmluZWQgKi8pIHtcbiAgdmFyIE8gPSB0b09iamVjdChhcnJheUxpa2UpO1xuICB2YXIgQyA9IHR5cGVvZiB0aGlzID09ICdmdW5jdGlvbicgPyB0aGlzIDogQXJyYXk7XG4gIHZhciBhcmd1bWVudHNMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICB2YXIgbWFwZm4gPSBhcmd1bWVudHNMZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuICB2YXIgbWFwcGluZyA9IG1hcGZuICE9PSB1bmRlZmluZWQ7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBpdGVyYXRvck1ldGhvZCA9IGdldEl0ZXJhdG9yTWV0aG9kKE8pO1xuICB2YXIgbGVuZ3RoLCByZXN1bHQsIHN0ZXAsIGl0ZXJhdG9yO1xuICBpZiAobWFwcGluZykgbWFwZm4gPSBiaW5kKG1hcGZuLCBhcmd1bWVudHNMZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogdW5kZWZpbmVkLCAyKTtcbiAgLy8gaWYgdGhlIHRhcmdldCBpcyBub3QgaXRlcmFibGUgb3IgaXQncyBhbiBhcnJheSB3aXRoIHRoZSBkZWZhdWx0IGl0ZXJhdG9yIC0gdXNlIGEgc2ltcGxlIGNhc2VcbiAgaWYgKGl0ZXJhdG9yTWV0aG9kICE9IHVuZGVmaW5lZCAmJiAhKEMgPT0gQXJyYXkgJiYgaXNBcnJheUl0ZXJhdG9yTWV0aG9kKGl0ZXJhdG9yTWV0aG9kKSkpIHtcbiAgICBpdGVyYXRvciA9IGl0ZXJhdG9yTWV0aG9kLmNhbGwoTyk7XG4gICAgcmVzdWx0ID0gbmV3IEMoKTtcbiAgICBmb3IgKDshKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmU7IGluZGV4KyspIHtcbiAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIG1hcHBpbmdcbiAgICAgICAgPyBjYWxsV2l0aFNhZmVJdGVyYXRpb25DbG9zaW5nKGl0ZXJhdG9yLCBtYXBmbiwgW3N0ZXAudmFsdWUsIGluZGV4XSwgdHJ1ZSlcbiAgICAgICAgOiBzdGVwLnZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBsZW5ndGggPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gICAgcmVzdWx0ID0gbmV3IEMobGVuZ3RoKTtcbiAgICBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykge1xuICAgICAgY3JlYXRlUHJvcGVydHkocmVzdWx0LCBpbmRleCwgbWFwcGluZyA/IG1hcGZuKE9baW5kZXhdLCBpbmRleCkgOiBPW2luZGV4XSk7XG4gICAgfVxuICB9XG4gIHJlc3VsdC5sZW5ndGggPSBpbmRleDtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCAidmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleCcpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLnsgaW5kZXhPZiwgaW5jbHVkZXMgfWAgbWV0aG9kcyBpbXBsZW1lbnRhdGlvblxuLy8gZmFsc2UgLT4gQXJyYXkjaW5kZXhPZlxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmluZGV4b2Zcbi8vIHRydWUgIC0+IEFycmF5I2luY2x1ZGVzXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5jbHVkZXNcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKElTX0lOQ0xVREVTKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGVsLCBmcm9tSW5kZXgpIHtcbiAgICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdCgkdGhpcyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoZnJvbUluZGV4LCBsZW5ndGgpO1xuICAgIHZhciB2YWx1ZTtcbiAgICAvLyBBcnJheSNpbmNsdWRlcyB1c2VzIFNhbWVWYWx1ZVplcm8gZXF1YWxpdHkgYWxnb3JpdGhtXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgIGlmIChJU19JTkNMVURFUyAmJiBlbCAhPSBlbCkgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSB7XG4gICAgICB2YWx1ZSA9IE9baW5kZXgrK107XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgICBpZiAodmFsdWUgIT0gdmFsdWUpIHJldHVybiB0cnVlO1xuICAgIC8vIEFycmF5I2luZGV4T2YgaWdub3JlcyBob2xlcywgQXJyYXkjaW5jbHVkZXMgLSBub3RcbiAgICB9IGVsc2UgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIGlmIChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSB7XG4gICAgICBpZiAoT1tpbmRleF0gPT09IGVsKSByZXR1cm4gSVNfSU5DTFVERVMgfHwgaW5kZXggfHwgMDtcbiAgICB9IHJldHVybiAhSVNfSU5DTFVERVMgJiYgLTE7XG4gIH07XG59O1xuIiwgInZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xuXG4vLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0LCBsZW5ndGgpIHtcbiAgYUZ1bmN0aW9uKGZuKTtcbiAgaWYgKHRoYXQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZuO1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgMDogcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQpO1xuICAgIH07XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24gKGEpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEpO1xuICAgIH07XG4gICAgY2FzZSAyOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIpO1xuICAgIH07XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIsIGMpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIsIGMpO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uICgvKiAuLi5hcmdzICovKSB7XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoYXQsIGFyZ3VtZW50cyk7XG4gIH07XG59O1xuIiwgInZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcblxuLy8gY2FsbCBzb21ldGhpbmcgb24gaXRlcmF0b3Igc3RlcCB3aXRoIHNhZmUgY2xvc2luZyBvbiBlcnJvclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlcmF0b3IsIGZuLCB2YWx1ZSwgRU5UUklFUykge1xuICB0cnkge1xuICAgIHJldHVybiBFTlRSSUVTID8gZm4oYW5PYmplY3QodmFsdWUpWzBdLCB2YWx1ZVsxXSkgOiBmbih2YWx1ZSk7XG4gIC8vIDcuNC42IEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3IsIGNvbXBsZXRpb24pXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdmFyIHJldHVybk1ldGhvZCA9IGl0ZXJhdG9yWydyZXR1cm4nXTtcbiAgICBpZiAocmV0dXJuTWV0aG9kICE9PSB1bmRlZmluZWQpIGFuT2JqZWN0KHJldHVybk1ldGhvZC5jYWxsKGl0ZXJhdG9yKSk7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG4iLCAidmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG52YXIgU0FGRV9DTE9TSU5HID0gZmFsc2U7XG5cbnRyeSB7XG4gIHZhciBjYWxsZWQgPSAwO1xuICB2YXIgaXRlcmF0b3JXaXRoUmV0dXJuID0ge1xuICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB7IGRvbmU6ICEhY2FsbGVkKysgfTtcbiAgICB9LFxuICAgICdyZXR1cm4nOiBmdW5jdGlvbiAoKSB7XG4gICAgICBTQUZFX0NMT1NJTkcgPSB0cnVlO1xuICAgIH1cbiAgfTtcbiAgaXRlcmF0b3JXaXRoUmV0dXJuW0lURVJBVE9SXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXRocm93LWxpdGVyYWxcbiAgQXJyYXkuZnJvbShpdGVyYXRvcldpdGhSZXR1cm4sIGZ1bmN0aW9uICgpIHsgdGhyb3cgMjsgfSk7XG59IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMsIFNLSVBfQ0xPU0lORykge1xuICBpZiAoIVNLSVBfQ0xPU0lORyAmJiAhU0FGRV9DTE9TSU5HKSByZXR1cm4gZmFsc2U7XG4gIHZhciBJVEVSQVRJT05fU1VQUE9SVCA9IGZhbHNlO1xuICB0cnkge1xuICAgIHZhciBvYmplY3QgPSB7fTtcbiAgICBvYmplY3RbSVRFUkFUT1JdID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiB7IGRvbmU6IElURVJBVElPTl9TVVBQT1JUID0gdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH07XG4gICAgZXhlYyhvYmplY3QpO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBJVEVSQVRJT05fU1VQUE9SVDtcbn07XG4iLCAidmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKGl0KS5zbGljZSg4LCAtMSk7XG59O1xuIiwgInZhciBjbGFzc29mUmF3ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBUT19TVFJJTkdfVEFHID0gd2VsbEtub3duU3ltYm9sKCd0b1N0cmluZ1RhZycpO1xuLy8gRVMzIHdyb25nIGhlcmVcbnZhciBDT1JSRUNUX0FSR1VNRU5UUyA9IGNsYXNzb2ZSYXcoZnVuY3Rpb24gKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID09ICdBcmd1bWVudHMnO1xuXG4vLyBmYWxsYmFjayBmb3IgSUUxMSBTY3JpcHQgQWNjZXNzIERlbmllZCBlcnJvclxudmFyIHRyeUdldCA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGl0W2tleV07XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbn07XG5cbi8vIGdldHRpbmcgdGFnIGZyb20gRVM2KyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2Bcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBPLCB0YWcsIHJlc3VsdDtcbiAgcmV0dXJuIGl0ID09PSB1bmRlZmluZWQgPyAnVW5kZWZpbmVkJyA6IGl0ID09PSBudWxsID8gJ051bGwnXG4gICAgLy8gQEB0b1N0cmluZ1RhZyBjYXNlXG4gICAgOiB0eXBlb2YgKHRhZyA9IHRyeUdldChPID0gT2JqZWN0KGl0KSwgVE9fU1RSSU5HX1RBRykpID09ICdzdHJpbmcnID8gdGFnXG4gICAgLy8gYnVpbHRpblRhZyBjYXNlXG4gICAgOiBDT1JSRUNUX0FSR1VNRU5UUyA/IGNsYXNzb2ZSYXcoTylcbiAgICAvLyBFUzMgYXJndW1lbnRzIGZhbGxiYWNrXG4gICAgOiAocmVzdWx0ID0gY2xhc3NvZlJhdyhPKSkgPT0gJ09iamVjdCcgJiYgdHlwZW9mIE8uY2FsbGVlID09ICdmdW5jdGlvbicgPyAnQXJndW1lbnRzJyA6IHJlc3VsdDtcbn07XG4iLCAidmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBvd25LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL293bi1rZXlzJyk7XG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG4gIHZhciBrZXlzID0gb3duS2V5cyhzb3VyY2UpO1xuICB2YXIgZGVmaW5lUHJvcGVydHkgPSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mO1xuICB2YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlLmY7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuICAgIGlmICghaGFzKHRhcmdldCwga2V5KSkgZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpO1xuICB9XG59O1xuIiwgInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIEYoKSB7IC8qIGVtcHR5ICovIH1cbiAgRi5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBudWxsO1xuICByZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBGKCkpICE9PSBGLnByb3RvdHlwZTtcbn0pO1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMtY29yZScpLkl0ZXJhdG9yUHJvdG90eXBlO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzJyk7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoSXRlcmF0b3JDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCkge1xuICB2YXIgVE9fU1RSSU5HX1RBRyA9IE5BTUUgKyAnIEl0ZXJhdG9yJztcbiAgSXRlcmF0b3JDb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBjcmVhdGUoSXRlcmF0b3JQcm90b3R5cGUsIHsgbmV4dDogY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDEsIG5leHQpIH0pO1xuICBzZXRUb1N0cmluZ1RhZyhJdGVyYXRvckNvbnN0cnVjdG9yLCBUT19TVFJJTkdfVEFHLCBmYWxzZSwgdHJ1ZSk7XG4gIEl0ZXJhdG9yc1tUT19TVFJJTkdfVEFHXSA9IHJldHVyblRoaXM7XG4gIHJldHVybiBJdGVyYXRvckNvbnN0cnVjdG9yO1xufTtcbiIsICJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1wcmltaXRpdmUnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICB2YXIgcHJvcGVydHlLZXkgPSB0b1ByaW1pdGl2ZShrZXkpO1xuICBpZiAocHJvcGVydHlLZXkgaW4gb2JqZWN0KSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKG9iamVjdCwgcHJvcGVydHlLZXksIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigwLCB2YWx1ZSkpO1xuICBlbHNlIG9iamVjdFtwcm9wZXJ0eUtleV0gPSB2YWx1ZTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY3JlYXRlSXRlcmF0b3JDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaXRlcmF0b3ItY29uc3RydWN0b3InKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZicpO1xudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1zZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGUnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWRlZmluZScpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMnKTtcbnZhciBJdGVyYXRvcnNDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycy1jb3JlJyk7XG5cbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IEl0ZXJhdG9yc0NvcmUuSXRlcmF0b3JQcm90b3R5cGU7XG52YXIgQlVHR1lfU0FGQVJJX0lURVJBVE9SUyA9IEl0ZXJhdG9yc0NvcmUuQlVHR1lfU0FGQVJJX0lURVJBVE9SUztcbnZhciBJVEVSQVRPUiA9IHdlbGxLbm93blN5bWJvbCgnaXRlcmF0b3InKTtcbnZhciBLRVlTID0gJ2tleXMnO1xudmFyIFZBTFVFUyA9ICd2YWx1ZXMnO1xudmFyIEVOVFJJRVMgPSAnZW50cmllcyc7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoSXRlcmFibGUsIE5BTUUsIEl0ZXJhdG9yQ29uc3RydWN0b3IsIG5leHQsIERFRkFVTFQsIElTX1NFVCwgRk9SQ0VEKSB7XG4gIGNyZWF0ZUl0ZXJhdG9yQ29uc3RydWN0b3IoSXRlcmF0b3JDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCk7XG5cbiAgdmFyIGdldEl0ZXJhdGlvbk1ldGhvZCA9IGZ1bmN0aW9uIChLSU5EKSB7XG4gICAgaWYgKEtJTkQgPT09IERFRkFVTFQgJiYgZGVmYXVsdEl0ZXJhdG9yKSByZXR1cm4gZGVmYXVsdEl0ZXJhdG9yO1xuICAgIGlmICghQlVHR1lfU0FGQVJJX0lURVJBVE9SUyAmJiBLSU5EIGluIEl0ZXJhYmxlUHJvdG90eXBlKSByZXR1cm4gSXRlcmFibGVQcm90b3R5cGVbS0lORF07XG4gICAgc3dpdGNoIChLSU5EKSB7XG4gICAgICBjYXNlIEtFWVM6IHJldHVybiBmdW5jdGlvbiBrZXlzKCkgeyByZXR1cm4gbmV3IEl0ZXJhdG9yQ29uc3RydWN0b3IodGhpcywgS0lORCk7IH07XG4gICAgICBjYXNlIFZBTFVFUzogcmV0dXJuIGZ1bmN0aW9uIHZhbHVlcygpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMsIEtJTkQpOyB9O1xuICAgICAgY2FzZSBFTlRSSUVTOiByZXR1cm4gZnVuY3Rpb24gZW50cmllcygpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMsIEtJTkQpOyB9O1xuICAgIH0gcmV0dXJuIGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMpOyB9O1xuICB9O1xuXG4gIHZhciBUT19TVFJJTkdfVEFHID0gTkFNRSArICcgSXRlcmF0b3InO1xuICB2YXIgSU5DT1JSRUNUX1ZBTFVFU19OQU1FID0gZmFsc2U7XG4gIHZhciBJdGVyYWJsZVByb3RvdHlwZSA9IEl0ZXJhYmxlLnByb3RvdHlwZTtcbiAgdmFyIG5hdGl2ZUl0ZXJhdG9yID0gSXRlcmFibGVQcm90b3R5cGVbSVRFUkFUT1JdXG4gICAgfHwgSXRlcmFibGVQcm90b3R5cGVbJ0BAaXRlcmF0b3InXVxuICAgIHx8IERFRkFVTFQgJiYgSXRlcmFibGVQcm90b3R5cGVbREVGQVVMVF07XG4gIHZhciBkZWZhdWx0SXRlcmF0b3IgPSAhQlVHR1lfU0FGQVJJX0lURVJBVE9SUyAmJiBuYXRpdmVJdGVyYXRvciB8fCBnZXRJdGVyYXRpb25NZXRob2QoREVGQVVMVCk7XG4gIHZhciBhbnlOYXRpdmVJdGVyYXRvciA9IE5BTUUgPT0gJ0FycmF5JyA/IEl0ZXJhYmxlUHJvdG90eXBlLmVudHJpZXMgfHwgbmF0aXZlSXRlcmF0b3IgOiBuYXRpdmVJdGVyYXRvcjtcbiAgdmFyIEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSwgbWV0aG9kcywgS0VZO1xuXG4gIC8vIGZpeCBuYXRpdmVcbiAgaWYgKGFueU5hdGl2ZUl0ZXJhdG9yKSB7XG4gICAgQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG90eXBlT2YoYW55TmF0aXZlSXRlcmF0b3IuY2FsbChuZXcgSXRlcmFibGUoKSkpO1xuICAgIGlmIChJdGVyYXRvclByb3RvdHlwZSAhPT0gT2JqZWN0LnByb3RvdHlwZSAmJiBDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUubmV4dCkge1xuICAgICAgaWYgKCFJU19QVVJFICYmIGdldFByb3RvdHlwZU9mKEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSkgIT09IEl0ZXJhdG9yUHJvdG90eXBlKSB7XG4gICAgICAgIGlmIChzZXRQcm90b3R5cGVPZikge1xuICAgICAgICAgIHNldFByb3RvdHlwZU9mKEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSwgSXRlcmF0b3JQcm90b3R5cGUpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBDdXJyZW50SXRlcmF0b3JQcm90b3R5cGVbSVRFUkFUT1JdICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBoaWRlKEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IsIHJldHVyblRoaXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBTZXQgQEB0b1N0cmluZ1RhZyB0byBuYXRpdmUgaXRlcmF0b3JzXG4gICAgICBzZXRUb1N0cmluZ1RhZyhDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUsIFRPX1NUUklOR19UQUcsIHRydWUsIHRydWUpO1xuICAgICAgaWYgKElTX1BVUkUpIEl0ZXJhdG9yc1tUT19TVFJJTkdfVEFHXSA9IHJldHVyblRoaXM7XG4gICAgfVxuICB9XG5cbiAgLy8gZml4IEFycmF5I3t2YWx1ZXMsIEBAaXRlcmF0b3J9Lm5hbWUgaW4gVjggLyBGRlxuICBpZiAoREVGQVVMVCA9PSBWQUxVRVMgJiYgbmF0aXZlSXRlcmF0b3IgJiYgbmF0aXZlSXRlcmF0b3IubmFtZSAhPT0gVkFMVUVTKSB7XG4gICAgSU5DT1JSRUNUX1ZBTFVFU19OQU1FID0gdHJ1ZTtcbiAgICBkZWZhdWx0SXRlcmF0b3IgPSBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiBuYXRpdmVJdGVyYXRvci5jYWxsKHRoaXMpOyB9O1xuICB9XG5cbiAgLy8gZGVmaW5lIGl0ZXJhdG9yXG4gIGlmICgoIUlTX1BVUkUgfHwgRk9SQ0VEKSAmJiBJdGVyYWJsZVByb3RvdHlwZVtJVEVSQVRPUl0gIT09IGRlZmF1bHRJdGVyYXRvcikge1xuICAgIGhpZGUoSXRlcmFibGVQcm90b3R5cGUsIElURVJBVE9SLCBkZWZhdWx0SXRlcmF0b3IpO1xuICB9XG4gIEl0ZXJhdG9yc1tOQU1FXSA9IGRlZmF1bHRJdGVyYXRvcjtcblxuICAvLyBleHBvcnQgYWRkaXRpb25hbCBtZXRob2RzXG4gIGlmIChERUZBVUxUKSB7XG4gICAgbWV0aG9kcyA9IHtcbiAgICAgIHZhbHVlczogZ2V0SXRlcmF0aW9uTWV0aG9kKFZBTFVFUyksXG4gICAgICBrZXlzOiBJU19TRVQgPyBkZWZhdWx0SXRlcmF0b3IgOiBnZXRJdGVyYXRpb25NZXRob2QoS0VZUyksXG4gICAgICBlbnRyaWVzOiBnZXRJdGVyYXRpb25NZXRob2QoRU5UUklFUylcbiAgICB9O1xuICAgIGlmIChGT1JDRUQpIGZvciAoS0VZIGluIG1ldGhvZHMpIHtcbiAgICAgIGlmIChCVUdHWV9TQUZBUklfSVRFUkFUT1JTIHx8IElOQ09SUkVDVF9WQUxVRVNfTkFNRSB8fCAhKEtFWSBpbiBJdGVyYWJsZVByb3RvdHlwZSkpIHtcbiAgICAgICAgcmVkZWZpbmUoSXRlcmFibGVQcm90b3R5cGUsIEtFWSwgbWV0aG9kc1tLRVldKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgJCh7IHRhcmdldDogTkFNRSwgcHJvdG86IHRydWUsIGZvcmNlZDogQlVHR1lfU0FGQVJJX0lURVJBVE9SUyB8fCBJTkNPUlJFQ1RfVkFMVUVTX05BTUUgfSwgbWV0aG9kcyk7XG4gIH1cblxuICByZXR1cm4gbWV0aG9kcztcbn07XG4iLCAidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbi8vIFRoYW5rJ3MgSUU4IGZvciBoaXMgZnVubnkgZGVmaW5lUHJvcGVydHlcbm1vZHVsZS5leHBvcnRzID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG59KTtcbiIsICJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG52YXIgZG9jdW1lbnQgPSBnbG9iYWwuZG9jdW1lbnQ7XG4vLyB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBpcyAnb2JqZWN0JyBpbiBvbGQgSUVcbnZhciBleGlzdCA9IGlzT2JqZWN0KGRvY3VtZW50KSAmJiBpc09iamVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGV4aXN0ID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdCkgOiB7fTtcbn07XG4iLCAiLy8gSUU4LSBkb24ndCBlbnVtIGJ1ZyBrZXlzXG5tb2R1bGUuZXhwb3J0cyA9IFtcbiAgJ2NvbnN0cnVjdG9yJyxcbiAgJ2hhc093blByb3BlcnR5JyxcbiAgJ2lzUHJvdG90eXBlT2YnLFxuICAncHJvcGVydHlJc0VudW1lcmFibGUnLFxuICAndG9Mb2NhbGVTdHJpbmcnLFxuICAndG9TdHJpbmcnLFxuICAndmFsdWVPZidcbl07XG4iLCAidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpLmY7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oaWRlJyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUnKTtcbnZhciBzZXRHbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LWdsb2JhbCcpO1xudmFyIGNvcHlDb25zdHJ1Y3RvclByb3BlcnRpZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29weS1jb25zdHJ1Y3Rvci1wcm9wZXJ0aWVzJyk7XG52YXIgaXNGb3JjZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtZm9yY2VkJyk7XG5cbi8qXG4gIG9wdGlvbnMudGFyZ2V0ICAgICAgLSBuYW1lIG9mIHRoZSB0YXJnZXQgb2JqZWN0XG4gIG9wdGlvbnMuZ2xvYmFsICAgICAgLSB0YXJnZXQgaXMgdGhlIGdsb2JhbCBvYmplY3RcbiAgb3B0aW9ucy5zdGF0ICAgICAgICAtIGV4cG9ydCBhcyBzdGF0aWMgbWV0aG9kcyBvZiB0YXJnZXRcbiAgb3B0aW9ucy5wcm90byAgICAgICAtIGV4cG9ydCBhcyBwcm90b3R5cGUgbWV0aG9kcyBvZiB0YXJnZXRcbiAgb3B0aW9ucy5yZWFsICAgICAgICAtIHJlYWwgcHJvdG90eXBlIG1ldGhvZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMuZm9yY2VkICAgICAgLSBleHBvcnQgZXZlbiBpZiB0aGUgbmF0aXZlIGZlYXR1cmUgaXMgYXZhaWxhYmxlXG4gIG9wdGlvbnMuYmluZCAgICAgICAgLSBiaW5kIG1ldGhvZHMgdG8gdGhlIHRhcmdldCwgcmVxdWlyZWQgZm9yIHRoZSBgcHVyZWAgdmVyc2lvblxuICBvcHRpb25zLndyYXAgICAgICAgIC0gd3JhcCBjb25zdHJ1Y3RvcnMgdG8gcHJldmVudGluZyBnbG9iYWwgcG9sbHV0aW9uLCByZXF1aXJlZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMudW5zYWZlICAgICAgLSB1c2UgdGhlIHNpbXBsZSBhc3NpZ25tZW50IG9mIHByb3BlcnR5IGluc3RlYWQgb2YgZGVsZXRlICsgZGVmaW5lUHJvcGVydHlcbiAgb3B0aW9ucy5zaGFtICAgICAgICAtIGFkZCBhIGZsYWcgdG8gbm90IGNvbXBsZXRlbHkgZnVsbCBwb2x5ZmlsbHNcbiAgb3B0aW9ucy5lbnVtZXJhYmxlICAtIGV4cG9ydCBhcyBlbnVtZXJhYmxlIHByb3BlcnR5XG4gIG9wdGlvbnMubm9UYXJnZXRHZXQgLSBwcmV2ZW50IGNhbGxpbmcgYSBnZXR0ZXIgb24gdGFyZ2V0XG4qL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob3B0aW9ucywgc291cmNlKSB7XG4gIHZhciBUQVJHRVQgPSBvcHRpb25zLnRhcmdldDtcbiAgdmFyIEdMT0JBTCA9IG9wdGlvbnMuZ2xvYmFsO1xuICB2YXIgU1RBVElDID0gb3B0aW9ucy5zdGF0O1xuICB2YXIgRk9SQ0VELCB0YXJnZXQsIGtleSwgdGFyZ2V0UHJvcGVydHksIHNvdXJjZVByb3BlcnR5LCBkZXNjcmlwdG9yO1xuICBpZiAoR0xPQkFMKSB7XG4gICAgdGFyZ2V0ID0gZ2xvYmFsO1xuICB9IGVsc2UgaWYgKFNUQVRJQykge1xuICAgIHRhcmdldCA9IGdsb2JhbFtUQVJHRVRdIHx8IHNldEdsb2JhbChUQVJHRVQsIHt9KTtcbiAgfSBlbHNlIHtcbiAgICB0YXJnZXQgPSAoZ2xvYmFsW1RBUkdFVF0gfHwge30pLnByb3RvdHlwZTtcbiAgfVxuICBpZiAodGFyZ2V0KSBmb3IgKGtleSBpbiBzb3VyY2UpIHtcbiAgICBzb3VyY2VQcm9wZXJ0eSA9IHNvdXJjZVtrZXldO1xuICAgIGlmIChvcHRpb25zLm5vVGFyZ2V0R2V0KSB7XG4gICAgICBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KTtcbiAgICAgIHRhcmdldFByb3BlcnR5ID0gZGVzY3JpcHRvciAmJiBkZXNjcmlwdG9yLnZhbHVlO1xuICAgIH0gZWxzZSB0YXJnZXRQcm9wZXJ0eSA9IHRhcmdldFtrZXldO1xuICAgIEZPUkNFRCA9IGlzRm9yY2VkKEdMT0JBTCA/IGtleSA6IFRBUkdFVCArIChTVEFUSUMgPyAnLicgOiAnIycpICsga2V5LCBvcHRpb25zLmZvcmNlZCk7XG4gICAgLy8gY29udGFpbmVkIGluIHRhcmdldFxuICAgIGlmICghRk9SQ0VEICYmIHRhcmdldFByb3BlcnR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0eXBlb2Ygc291cmNlUHJvcGVydHkgPT09IHR5cGVvZiB0YXJnZXRQcm9wZXJ0eSkgY29udGludWU7XG4gICAgICBjb3B5Q29uc3RydWN0b3JQcm9wZXJ0aWVzKHNvdXJjZVByb3BlcnR5LCB0YXJnZXRQcm9wZXJ0eSk7XG4gICAgfVxuICAgIC8vIGFkZCBhIGZsYWcgdG8gbm90IGNvbXBsZXRlbHkgZnVsbCBwb2x5ZmlsbHNcbiAgICBpZiAob3B0aW9ucy5zaGFtIHx8ICh0YXJnZXRQcm9wZXJ0eSAmJiB0YXJnZXRQcm9wZXJ0eS5zaGFtKSkge1xuICAgICAgaGlkZShzb3VyY2VQcm9wZXJ0eSwgJ3NoYW0nLCB0cnVlKTtcbiAgICB9XG4gICAgLy8gZXh0ZW5kIGdsb2JhbFxuICAgIHJlZGVmaW5lKHRhcmdldCwga2V5LCBzb3VyY2VQcm9wZXJ0eSwgb3B0aW9ucyk7XG4gIH1cbn07XG4iLCAibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYykge1xuICB0cnkge1xuICAgIHJldHVybiAhIWV4ZWMoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufTtcbiIsICJ2YXIgc2hhcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHNoYXJlZCgnbmF0aXZlLWZ1bmN0aW9uLXRvLXN0cmluZycsIEZ1bmN0aW9uLnRvU3RyaW5nKTtcbiIsICJ2YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycycpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpdCAhPSB1bmRlZmluZWQpIHJldHVybiBpdFtJVEVSQVRPUl1cbiAgICB8fCBpdFsnQEBpdGVyYXRvciddXG4gICAgfHwgSXRlcmF0b3JzW2NsYXNzb2YoaXQpXTtcbn07XG4iLCAidmFyIE8gPSAnb2JqZWN0JztcbnZhciBjaGVjayA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgJiYgaXQuTWF0aCA9PSBNYXRoICYmIGl0O1xufTtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcbm1vZHVsZS5leHBvcnRzID1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gIGNoZWNrKHR5cGVvZiBnbG9iYWxUaGlzID09IE8gJiYgZ2xvYmFsVGhpcykgfHxcbiAgY2hlY2sodHlwZW9mIHdpbmRvdyA9PSBPICYmIHdpbmRvdykgfHxcbiAgY2hlY2sodHlwZW9mIHNlbGYgPT0gTyAmJiBzZWxmKSB8fFxuICBjaGVjayh0eXBlb2YgZ2xvYmFsID09IE8gJiYgZ2xvYmFsKSB8fFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcbiAgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcbiIsICJ2YXIgaGFzT3duUHJvcGVydHkgPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChpdCwga2V5KTtcbn07XG4iLCAibW9kdWxlLmV4cG9ydHMgPSB7fTtcbiIsICJ2YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gREVTQ1JJUFRPUlMgPyBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIHJldHVybiBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKG9iamVjdCwga2V5LCBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoMSwgdmFsdWUpKTtcbn0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIHJldHVybiBvYmplY3Q7XG59O1xuIiwgInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG5cbnZhciBkb2N1bWVudCA9IGdsb2JhbC5kb2N1bWVudDtcblxubW9kdWxlLmV4cG9ydHMgPSBkb2N1bWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4iLCAidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBjcmVhdGVFbGVtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50Jyk7XG5cbi8vIFRoYW5rJ3MgSUU4IGZvciBoaXMgZnVubnkgZGVmaW5lUHJvcGVydHlcbm1vZHVsZS5leHBvcnRzID0gIURFU0NSSVBUT1JTICYmICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoY3JlYXRlRWxlbWVudCgnZGl2JyksICdhJywge1xuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfVxuICB9KS5hICE9IDc7XG59KTtcbiIsICIvLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5nc1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xuXG52YXIgc3BsaXQgPSAnJy5zcGxpdDtcblxubW9kdWxlLmV4cG9ydHMgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIHRocm93cyBhbiBlcnJvciBpbiByaGlubywgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL3JoaW5vL2lzc3Vlcy8zNDZcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xuICByZXR1cm4gIU9iamVjdCgneicpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApO1xufSkgPyBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGNsYXNzb2YoaXQpID09ICdTdHJpbmcnID8gc3BsaXQuY2FsbChpdCwgJycpIDogT2JqZWN0KGl0KTtcbn0gOiBPYmplY3Q7XG4iLCAidmFyIE5BVElWRV9XRUFLX01BUCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uYXRpdmUtd2Vhay1tYXAnKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oaWRlJyk7XG52YXIgb2JqZWN0SGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHNoYXJlZEtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQta2V5Jyk7XG52YXIgaGlkZGVuS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oaWRkZW4ta2V5cycpO1xuXG52YXIgV2Vha01hcCA9IGdsb2JhbC5XZWFrTWFwO1xudmFyIHNldCwgZ2V0LCBoYXM7XG5cbnZhciBlbmZvcmNlID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBoYXMoaXQpID8gZ2V0KGl0KSA6IHNldChpdCwge30pO1xufTtcblxudmFyIGdldHRlckZvciA9IGZ1bmN0aW9uIChUWVBFKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoaXQpIHtcbiAgICB2YXIgc3RhdGU7XG4gICAgaWYgKCFpc09iamVjdChpdCkgfHwgKHN0YXRlID0gZ2V0KGl0KSkudHlwZSAhPT0gVFlQRSkge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICcgKyBUWVBFICsgJyByZXF1aXJlZCcpO1xuICAgIH0gcmV0dXJuIHN0YXRlO1xuICB9O1xufTtcblxuaWYgKE5BVElWRV9XRUFLX01BUCkge1xuICB2YXIgc3RvcmUgPSBuZXcgV2Vha01hcCgpO1xuICB2YXIgd21nZXQgPSBzdG9yZS5nZXQ7XG4gIHZhciB3bWhhcyA9IHN0b3JlLmhhcztcbiAgdmFyIHdtc2V0ID0gc3RvcmUuc2V0O1xuICBzZXQgPSBmdW5jdGlvbiAoaXQsIG1ldGFkYXRhKSB7XG4gICAgd21zZXQuY2FsbChzdG9yZSwgaXQsIG1ldGFkYXRhKTtcbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH07XG4gIGdldCA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiB3bWdldC5jYWxsKHN0b3JlLCBpdCkgfHwge307XG4gIH07XG4gIGhhcyA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiB3bWhhcy5jYWxsKHN0b3JlLCBpdCk7XG4gIH07XG59IGVsc2Uge1xuICB2YXIgU1RBVEUgPSBzaGFyZWRLZXkoJ3N0YXRlJyk7XG4gIGhpZGRlbktleXNbU1RBVEVdID0gdHJ1ZTtcbiAgc2V0ID0gZnVuY3Rpb24gKGl0LCBtZXRhZGF0YSkge1xuICAgIGhpZGUoaXQsIFNUQVRFLCBtZXRhZGF0YSk7XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xuICB9O1xuICBnZXQgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gb2JqZWN0SGFzKGl0LCBTVEFURSkgPyBpdFtTVEFURV0gOiB7fTtcbiAgfTtcbiAgaGFzID0gZnVuY3Rpb24gKGl0KSB7XG4gICAgcmV0dXJuIG9iamVjdEhhcyhpdCwgU1RBVEUpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgc2V0OiBzZXQsXG4gIGdldDogZ2V0LFxuICBoYXM6IGhhcyxcbiAgZW5mb3JjZTogZW5mb3JjZSxcbiAgZ2V0dGVyRm9yOiBnZXR0ZXJGb3Jcbn07XG4iLCAidmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMnKTtcblxudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xudmFyIEFycmF5UHJvdG90eXBlID0gQXJyYXkucHJvdG90eXBlO1xuXG4vLyBjaGVjayBvbiBkZWZhdWx0IEFycmF5IGl0ZXJhdG9yXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgIT09IHVuZGVmaW5lZCAmJiAoSXRlcmF0b3JzLkFycmF5ID09PSBpdCB8fCBBcnJheVByb3RvdHlwZVtJVEVSQVRPUl0gPT09IGl0KTtcbn07XG4iLCAidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbnZhciByZXBsYWNlbWVudCA9IC8jfFxcLnByb3RvdHlwZVxcLi87XG5cbnZhciBpc0ZvcmNlZCA9IGZ1bmN0aW9uIChmZWF0dXJlLCBkZXRlY3Rpb24pIHtcbiAgdmFyIHZhbHVlID0gZGF0YVtub3JtYWxpemUoZmVhdHVyZSldO1xuICByZXR1cm4gdmFsdWUgPT0gUE9MWUZJTEwgPyB0cnVlXG4gICAgOiB2YWx1ZSA9PSBOQVRJVkUgPyBmYWxzZVxuICAgIDogdHlwZW9mIGRldGVjdGlvbiA9PSAnZnVuY3Rpb24nID8gZmFpbHMoZGV0ZWN0aW9uKVxuICAgIDogISFkZXRlY3Rpb247XG59O1xuXG52YXIgbm9ybWFsaXplID0gaXNGb3JjZWQubm9ybWFsaXplID0gZnVuY3Rpb24gKHN0cmluZykge1xuICByZXR1cm4gU3RyaW5nKHN0cmluZykucmVwbGFjZShyZXBsYWNlbWVudCwgJy4nKS50b0xvd2VyQ2FzZSgpO1xufTtcblxudmFyIGRhdGEgPSBpc0ZvcmNlZC5kYXRhID0ge307XG52YXIgTkFUSVZFID0gaXNGb3JjZWQuTkFUSVZFID0gJ04nO1xudmFyIFBPTFlGSUxMID0gaXNGb3JjZWQuUE9MWUZJTEwgPSAnUCc7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNGb3JjZWQ7XG4iLCAibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJztcbn07XG4iLCAibW9kdWxlLmV4cG9ydHMgPSBmYWxzZTtcbiIsICIndXNlIHN0cmljdCc7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG5cbnZhciBJVEVSQVRPUiA9IHdlbGxLbm93blN5bWJvbCgnaXRlcmF0b3InKTtcbnZhciBCVUdHWV9TQUZBUklfSVRFUkFUT1JTID0gZmFsc2U7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxuLy8gYCVJdGVyYXRvclByb3RvdHlwZSVgIG9iamVjdFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJWl0ZXJhdG9ycHJvdG90eXBlJS1vYmplY3RcbnZhciBJdGVyYXRvclByb3RvdHlwZSwgUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlLCBhcnJheUl0ZXJhdG9yO1xuXG5pZiAoW10ua2V5cykge1xuICBhcnJheUl0ZXJhdG9yID0gW10ua2V5cygpO1xuICAvLyBTYWZhcmkgOCBoYXMgYnVnZ3kgaXRlcmF0b3JzIHcvbyBgbmV4dGBcbiAgaWYgKCEoJ25leHQnIGluIGFycmF5SXRlcmF0b3IpKSBCVUdHWV9TQUZBUklfSVRFUkFUT1JTID0gdHJ1ZTtcbiAgZWxzZSB7XG4gICAgUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG90eXBlT2YoZ2V0UHJvdG90eXBlT2YoYXJyYXlJdGVyYXRvcikpO1xuICAgIGlmIChQcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUpIEl0ZXJhdG9yUHJvdG90eXBlID0gUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlO1xuICB9XG59XG5cbmlmIChJdGVyYXRvclByb3RvdHlwZSA9PSB1bmRlZmluZWQpIEl0ZXJhdG9yUHJvdG90eXBlID0ge307XG5cbi8vIDI1LjEuMi4xLjEgJUl0ZXJhdG9yUHJvdG90eXBlJVtAQGl0ZXJhdG9yXSgpXG5pZiAoIUlTX1BVUkUgJiYgIWhhcyhJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IpKSBoaWRlKEl0ZXJhdG9yUHJvdG90eXBlLCBJVEVSQVRPUiwgcmV0dXJuVGhpcyk7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBJdGVyYXRvclByb3RvdHlwZTogSXRlcmF0b3JQcm90b3R5cGUsXG4gIEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6IEJVR0dZX1NBRkFSSV9JVEVSQVRPUlNcbn07XG4iLCAibW9kdWxlLmV4cG9ydHMgPSB7fTtcbiIsICJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSAhIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gQ2hyb21lIDM4IFN5bWJvbCBoYXMgaW5jb3JyZWN0IHRvU3RyaW5nIGNvbnZlcnNpb25cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gIHJldHVybiAhU3RyaW5nKFN5bWJvbCgpKTtcbn0pO1xuIiwgInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgbmF0aXZlRnVuY3Rpb25Ub1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi10by1zdHJpbmcnKTtcblxudmFyIFdlYWtNYXAgPSBnbG9iYWwuV2Vha01hcDtcblxubW9kdWxlLmV4cG9ydHMgPSB0eXBlb2YgV2Vha01hcCA9PT0gJ2Z1bmN0aW9uJyAmJiAvbmF0aXZlIGNvZGUvLnRlc3QobmF0aXZlRnVuY3Rpb25Ub1N0cmluZy5jYWxsKFdlYWtNYXApKTtcbiIsICJ2YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgZGVmaW5lUHJvcGVydGllcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnRpZXMnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzJyk7XG52YXIgaGlkZGVuS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oaWRkZW4ta2V5cycpO1xudmFyIGh0bWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaHRtbCcpO1xudmFyIGRvY3VtZW50Q3JlYXRlRWxlbWVudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb2N1bWVudC1jcmVhdGUtZWxlbWVudCcpO1xudmFyIHNoYXJlZEtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQta2V5Jyk7XG52YXIgSUVfUFJPVE8gPSBzaGFyZWRLZXkoJ0lFX1BST1RPJyk7XG5cbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcbnZhciBFbXB0eSA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcblxuLy8gQ3JlYXRlIG9iamVjdCB3aXRoIGZha2UgYG51bGxgIHByb3RvdHlwZTogdXNlIGlmcmFtZSBPYmplY3Qgd2l0aCBjbGVhcmVkIHByb3RvdHlwZVxudmFyIGNyZWF0ZURpY3QgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIFRocmFzaCwgd2FzdGUgYW5kIHNvZG9teTogSUUgR0MgYnVnXG4gIHZhciBpZnJhbWUgPSBkb2N1bWVudENyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICB2YXIgbGVuZ3RoID0gZW51bUJ1Z0tleXMubGVuZ3RoO1xuICB2YXIgbHQgPSAnPCc7XG4gIHZhciBzY3JpcHQgPSAnc2NyaXB0JztcbiAgdmFyIGd0ID0gJz4nO1xuICB2YXIganMgPSAnamF2YScgKyBzY3JpcHQgKyAnOic7XG4gIHZhciBpZnJhbWVEb2N1bWVudDtcbiAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIGh0bWwuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgaWZyYW1lLnNyYyA9IFN0cmluZyhqcyk7XG4gIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgaWZyYW1lRG9jdW1lbnQud3JpdGUobHQgKyBzY3JpcHQgKyBndCArICdkb2N1bWVudC5GPU9iamVjdCcgKyBsdCArICcvJyArIHNjcmlwdCArIGd0KTtcbiAgaWZyYW1lRG9jdW1lbnQuY2xvc2UoKTtcbiAgY3JlYXRlRGljdCA9IGlmcmFtZURvY3VtZW50LkY7XG4gIHdoaWxlIChsZW5ndGgtLSkgZGVsZXRlIGNyZWF0ZURpY3RbUFJPVE9UWVBFXVtlbnVtQnVnS2V5c1tsZW5ndGhdXTtcbiAgcmV0dXJuIGNyZWF0ZURpY3QoKTtcbn07XG5cbi8vIDE5LjEuMi4yIC8gMTUuMi4zLjUgT2JqZWN0LmNyZWF0ZShPIFssIFByb3BlcnRpZXNdKVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuY3JlYXRlIHx8IGZ1bmN0aW9uIGNyZWF0ZShPLCBQcm9wZXJ0aWVzKSB7XG4gIHZhciByZXN1bHQ7XG4gIGlmIChPICE9PSBudWxsKSB7XG4gICAgRW1wdHlbUFJPVE9UWVBFXSA9IGFuT2JqZWN0KE8pO1xuICAgIHJlc3VsdCA9IG5ldyBFbXB0eSgpO1xuICAgIEVtcHR5W1BST1RPVFlQRV0gPSBudWxsO1xuICAgIC8vIGFkZCBcIl9fcHJvdG9fX1wiIGZvciBPYmplY3QuZ2V0UHJvdG90eXBlT2YgcG9seWZpbGxcbiAgICByZXN1bHRbSUVfUFJPVE9dID0gTztcbiAgfSBlbHNlIHJlc3VsdCA9IGNyZWF0ZURpY3QoKTtcbiAgcmV0dXJuIFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCA/IHJlc3VsdCA6IGRlZmluZVByb3BlcnRpZXMocmVzdWx0LCBQcm9wZXJ0aWVzKTtcbn07XG5cbmhpZGRlbktleXNbSUVfUFJPVE9dID0gdHJ1ZTtcbiIsICJ2YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgb2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IERFU0NSSVBUT1JTID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIHZhciBrZXlzID0gb2JqZWN0S2V5cyhQcm9wZXJ0aWVzKTtcbiAgdmFyIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICB2YXIgaSA9IDA7XG4gIHZhciBrZXk7XG4gIHdoaWxlIChsZW5ndGggPiBpKSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKE8sIGtleSA9IGtleXNbaSsrXSwgUHJvcGVydGllc1trZXldKTtcbiAgcmV0dXJuIE87XG59O1xuIiwgInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2llOC1kb20tZGVmaW5lJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlJyk7XG5cbnZhciBuYXRpdmVEZWZpbmVQcm9wZXJ0eSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcblxuZXhwb3J0cy5mID0gREVTQ1JJUFRPUlMgPyBuYXRpdmVEZWZpbmVQcm9wZXJ0eSA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmIChJRThfRE9NX0RFRklORSkgdHJ5IHtcbiAgICByZXR1cm4gbmF0aXZlRGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKCdnZXQnIGluIEF0dHJpYnV0ZXMgfHwgJ3NldCcgaW4gQXR0cmlidXRlcykgdGhyb3cgVHlwZUVycm9yKCdBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCcpO1xuICBpZiAoJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzKSBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTtcbiAgcmV0dXJuIE87XG59O1xuIiwgInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1wcm9wZXJ0eS1pcy1lbnVtZXJhYmxlJyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2llOC1kb20tZGVmaW5lJyk7XG5cbnZhciBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuXG5leHBvcnRzLmYgPSBERVNDUklQVE9SUyA/IG5hdGl2ZUdldE93blByb3BlcnR5RGVzY3JpcHRvciA6IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihPLCBQKSB7XG4gIE8gPSB0b0luZGV4ZWRPYmplY3QoTyk7XG4gIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKGhhcyhPLCBQKSkgcmV0dXJuIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcighcHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUuZi5jYWxsKE8sIFApLCBPW1BdKTtcbn07XG4iLCAiLy8gMTkuMS4yLjcgLyAxNS4yLjMuNCBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPKVxudmFyIGludGVybmFsT2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cy1pbnRlcm5hbCcpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VudW0tYnVnLWtleXMnKTtcblxudmFyIGhpZGRlbktleXMgPSBlbnVtQnVnS2V5cy5jb25jYXQoJ2xlbmd0aCcsICdwcm90b3R5cGUnKTtcblxuZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhPKSB7XG4gIHJldHVybiBpbnRlcm5hbE9iamVjdEtleXMoTywgaGlkZGVuS2V5cyk7XG59O1xuIiwgImV4cG9ydHMuZiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG4iLCAidmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xudmFyIENPUlJFQ1RfUFJPVE9UWVBFX0dFVFRFUiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb3JyZWN0LXByb3RvdHlwZS1nZXR0ZXInKTtcblxudmFyIElFX1BST1RPID0gc2hhcmVkS2V5KCdJRV9QUk9UTycpO1xudmFyIE9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8vIDE5LjEuMi45IC8gMTUuMi4zLjIgT2JqZWN0LmdldFByb3RvdHlwZU9mKE8pXG5tb2R1bGUuZXhwb3J0cyA9IENPUlJFQ1RfUFJPVE9UWVBFX0dFVFRFUiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIChPKSB7XG4gIE8gPSB0b09iamVjdChPKTtcbiAgaWYgKGhhcyhPLCBJRV9QUk9UTykpIHJldHVybiBPW0lFX1BST1RPXTtcbiAgaWYgKHR5cGVvZiBPLmNvbnN0cnVjdG9yID09ICdmdW5jdGlvbicgJiYgTyBpbnN0YW5jZW9mIE8uY29uc3RydWN0b3IpIHtcbiAgICByZXR1cm4gTy5jb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIH0gcmV0dXJuIE8gaW5zdGFuY2VvZiBPYmplY3QgPyBPYmplY3RQcm90b3R5cGUgOiBudWxsO1xufTtcbiIsICJ2YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGFycmF5SW5jbHVkZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMnKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG5cbnZhciBhcnJheUluZGV4T2YgPSBhcnJheUluY2x1ZGVzKGZhbHNlKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgIWhhcyhoaWRkZW5LZXlzLCBrZXkpICYmIGhhcyhPLCBrZXkpICYmIHJlc3VsdC5wdXNoKGtleSk7XG4gIC8vIERvbid0IGVudW0gYnVnICYgaGlkZGVuIGtleXNcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIGlmIChoYXMoTywga2V5ID0gbmFtZXNbaSsrXSkpIHtcbiAgICB+YXJyYXlJbmRleE9mKHJlc3VsdCwga2V5KSB8fCByZXN1bHQucHVzaChrZXkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuIiwgInZhciBpbnRlcm5hbE9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzJyk7XG5cbi8vIDE5LjEuMi4xNCAvIDE1LjIuMy4xNCBPYmplY3Qua2V5cyhPKVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiBrZXlzKE8pIHtcbiAgcmV0dXJuIGludGVybmFsT2JqZWN0S2V5cyhPLCBlbnVtQnVnS2V5cyk7XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBuYXRpdmVQcm9wZXJ0eUlzRW51bWVyYWJsZSA9IHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbi8vIE5hc2hvcm4gfiBKREs4IGJ1Z1xudmFyIE5BU0hPUk5fQlVHID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yICYmICFuYXRpdmVQcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHsgMTogMiB9LCAxKTtcblxuZXhwb3J0cy5mID0gTkFTSE9STl9CVUcgPyBmdW5jdGlvbiBwcm9wZXJ0eUlzRW51bWVyYWJsZShWKSB7XG4gIHZhciBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsIFYpO1xuICByZXR1cm4gISFkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZTtcbn0gOiBuYXRpdmVQcm9wZXJ0eUlzRW51bWVyYWJsZTtcbiIsICJ2YXIgdmFsaWRhdGVTZXRQcm90b3R5cGVPZkFyZ3VtZW50cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy92YWxpZGF0ZS1zZXQtcHJvdG90eXBlLW9mLWFyZ3VtZW50cycpO1xuXG4vLyBXb3JrcyB3aXRoIF9fcHJvdG9fXyBvbmx5LiBPbGQgdjggY2FuJ3Qgd29yayB3aXRoIG51bGwgcHJvdG8gb2JqZWN0cy5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvICovXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCAoJ19fcHJvdG9fXycgaW4ge30gPyBmdW5jdGlvbiAoKSB7XG4gIHZhciBjb3JyZWN0U2V0dGVyID0gZmFsc2U7XG4gIHZhciB0ZXN0ID0ge307XG4gIHZhciBzZXR0ZXI7XG4gIHRyeSB7XG4gICAgc2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCAnX19wcm90b19fJykuc2V0O1xuICAgIHNldHRlci5jYWxsKHRlc3QsIFtdKTtcbiAgICBjb3JyZWN0U2V0dGVyID0gdGVzdCBpbnN0YW5jZW9mIEFycmF5O1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBmdW5jdGlvbiBzZXRQcm90b3R5cGVPZihPLCBwcm90bykge1xuICAgIHZhbGlkYXRlU2V0UHJvdG90eXBlT2ZBcmd1bWVudHMoTywgcHJvdG8pO1xuICAgIGlmIChjb3JyZWN0U2V0dGVyKSBzZXR0ZXIuY2FsbChPLCBwcm90byk7XG4gICAgZWxzZSBPLl9fcHJvdG9fXyA9IHByb3RvO1xuICAgIHJldHVybiBPO1xuICB9O1xufSgpIDogdW5kZWZpbmVkKTtcbiIsICJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGdldE93blByb3BlcnR5TmFtZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scycpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xuXG52YXIgUmVmbGVjdCA9IGdsb2JhbC5SZWZsZWN0O1xuXG4vLyBhbGwgb2JqZWN0IGtleXMsIGluY2x1ZGVzIG5vbi1lbnVtZXJhYmxlIGFuZCBzeW1ib2xzXG5tb2R1bGUuZXhwb3J0cyA9IFJlZmxlY3QgJiYgUmVmbGVjdC5vd25LZXlzIHx8IGZ1bmN0aW9uIG93bktleXMoaXQpIHtcbiAgdmFyIGtleXMgPSBnZXRPd25Qcm9wZXJ0eU5hbWVzTW9kdWxlLmYoYW5PYmplY3QoaXQpKTtcbiAgdmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZS5mO1xuICByZXR1cm4gZ2V0T3duUHJvcGVydHlTeW1ib2xzID8ga2V5cy5jb25jYXQoZ2V0T3duUHJvcGVydHlTeW1ib2xzKGl0KSkgOiBrZXlzO1xufTtcbiIsICJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbiIsICJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgc2V0R2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NldC1nbG9iYWwnKTtcbnZhciBuYXRpdmVGdW5jdGlvblRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXRvLXN0cmluZycpO1xudmFyIEludGVybmFsU3RhdGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKTtcblxudmFyIGdldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldDtcbnZhciBlbmZvcmNlSW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZW5mb3JjZTtcbnZhciBURU1QTEFURSA9IFN0cmluZyhuYXRpdmVGdW5jdGlvblRvU3RyaW5nKS5zcGxpdCgndG9TdHJpbmcnKTtcblxuc2hhcmVkKCdpbnNwZWN0U291cmNlJywgZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBuYXRpdmVGdW5jdGlvblRvU3RyaW5nLmNhbGwoaXQpO1xufSk7XG5cbihtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBrZXksIHZhbHVlLCBvcHRpb25zKSB7XG4gIHZhciB1bnNhZmUgPSBvcHRpb25zID8gISFvcHRpb25zLnVuc2FmZSA6IGZhbHNlO1xuICB2YXIgc2ltcGxlID0gb3B0aW9ucyA/ICEhb3B0aW9ucy5lbnVtZXJhYmxlIDogZmFsc2U7XG4gIHZhciBub1RhcmdldEdldCA9IG9wdGlvbnMgPyAhIW9wdGlvbnMubm9UYXJnZXRHZXQgOiBmYWxzZTtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKHR5cGVvZiBrZXkgPT0gJ3N0cmluZycgJiYgIWhhcyh2YWx1ZSwgJ25hbWUnKSkgaGlkZSh2YWx1ZSwgJ25hbWUnLCBrZXkpO1xuICAgIGVuZm9yY2VJbnRlcm5hbFN0YXRlKHZhbHVlKS5zb3VyY2UgPSBURU1QTEFURS5qb2luKHR5cGVvZiBrZXkgPT0gJ3N0cmluZycgPyBrZXkgOiAnJyk7XG4gIH1cbiAgaWYgKE8gPT09IGdsb2JhbCkge1xuICAgIGlmIChzaW1wbGUpIE9ba2V5XSA9IHZhbHVlO1xuICAgIGVsc2Ugc2V0R2xvYmFsKGtleSwgdmFsdWUpO1xuICAgIHJldHVybjtcbiAgfSBlbHNlIGlmICghdW5zYWZlKSB7XG4gICAgZGVsZXRlIE9ba2V5XTtcbiAgfSBlbHNlIGlmICghbm9UYXJnZXRHZXQgJiYgT1trZXldKSB7XG4gICAgc2ltcGxlID0gdHJ1ZTtcbiAgfVxuICBpZiAoc2ltcGxlKSBPW2tleV0gPSB2YWx1ZTtcbiAgZWxzZSBoaWRlKE8sIGtleSwgdmFsdWUpO1xuLy8gYWRkIGZha2UgRnVuY3Rpb24jdG9TdHJpbmcgZm9yIGNvcnJlY3Qgd29yayB3cmFwcGVkIG1ldGhvZHMgLyBjb25zdHJ1Y3RvcnMgd2l0aCBtZXRob2RzIGxpa2UgTG9EYXNoIGlzTmF0aXZlXG59KShGdW5jdGlvbi5wcm90b3R5cGUsICd0b1N0cmluZycsIGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICByZXR1cm4gdHlwZW9mIHRoaXMgPT0gJ2Z1bmN0aW9uJyAmJiBnZXRJbnRlcm5hbFN0YXRlKHRoaXMpLnNvdXJjZSB8fCBuYXRpdmVGdW5jdGlvblRvU3RyaW5nLmNhbGwodGhpcyk7XG59KTtcbiIsICIvLyBgUmVxdWlyZU9iamVjdENvZXJjaWJsZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZXF1aXJlb2JqZWN0Y29lcmNpYmxlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgPT0gdW5kZWZpbmVkKSB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjYWxsIG1ldGhvZCBvbiBcIiArIGl0KTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsICJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHRyeSB7XG4gICAgaGlkZShnbG9iYWwsIGtleSwgdmFsdWUpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGdsb2JhbFtrZXldID0gdmFsdWU7XG4gIH0gcmV0dXJuIHZhbHVlO1xufTtcbiIsICJ2YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG52YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgVE9fU1RSSU5HX1RBRyA9IHdlbGxLbm93blN5bWJvbCgndG9TdHJpbmdUYWcnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIFRBRywgU1RBVElDKSB7XG4gIGlmIChpdCAmJiAhaGFzKGl0ID0gU1RBVElDID8gaXQgOiBpdC5wcm90b3R5cGUsIFRPX1NUUklOR19UQUcpKSB7XG4gICAgZGVmaW5lUHJvcGVydHkoaXQsIFRPX1NUUklOR19UQUcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogVEFHIH0pO1xuICB9XG59O1xuIiwgInZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VpZCcpO1xuXG52YXIga2V5cyA9IHNoYXJlZCgna2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuIGtleXNba2V5XSB8fCAoa2V5c1trZXldID0gdWlkKGtleSkpO1xufTtcbiIsICJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHNldEdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtZ2xvYmFsJyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG5cbnZhciBTSEFSRUQgPSAnX19jb3JlLWpzX3NoYXJlZF9fJztcbnZhciBzdG9yZSA9IGdsb2JhbFtTSEFSRURdIHx8IHNldEdsb2JhbChTSEFSRUQsIHt9KTtcblxuKG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIHN0b3JlW2tleV0gfHwgKHN0b3JlW2tleV0gPSB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiB7fSk7XG59KSgndmVyc2lvbnMnLCBbXSkucHVzaCh7XG4gIHZlcnNpb246ICczLjEuMycsXG4gIG1vZGU6IElTX1BVUkUgPyAncHVyZScgOiAnZ2xvYmFsJyxcbiAgY29weXJpZ2h0OiAnXHUwMEE5IDIwMTkgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSknXG59KTtcbiIsICJ2YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXInKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xuXG4vLyBDT05WRVJUX1RPX1NUUklORzogdHJ1ZSAgLT4gU3RyaW5nI2F0XG4vLyBDT05WRVJUX1RPX1NUUklORzogZmFsc2UgLT4gU3RyaW5nI2NvZGVQb2ludEF0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0aGF0LCBwb3MsIENPTlZFUlRfVE9fU1RSSU5HKSB7XG4gIHZhciBTID0gU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhhdCkpO1xuICB2YXIgcG9zaXRpb24gPSB0b0ludGVnZXIocG9zKTtcbiAgdmFyIHNpemUgPSBTLmxlbmd0aDtcbiAgdmFyIGZpcnN0LCBzZWNvbmQ7XG4gIGlmIChwb3NpdGlvbiA8IDAgfHwgcG9zaXRpb24gPj0gc2l6ZSkgcmV0dXJuIENPTlZFUlRfVE9fU1RSSU5HID8gJycgOiB1bmRlZmluZWQ7XG4gIGZpcnN0ID0gUy5jaGFyQ29kZUF0KHBvc2l0aW9uKTtcbiAgcmV0dXJuIGZpcnN0IDwgMHhEODAwIHx8IGZpcnN0ID4gMHhEQkZGIHx8IHBvc2l0aW9uICsgMSA9PT0gc2l6ZVxuICAgIHx8IChzZWNvbmQgPSBTLmNoYXJDb2RlQXQocG9zaXRpb24gKyAxKSkgPCAweERDMDAgfHwgc2Vjb25kID4gMHhERkZGXG4gICAgICA/IENPTlZFUlRfVE9fU1RSSU5HID8gUy5jaGFyQXQocG9zaXRpb24pIDogZmlyc3RcbiAgICAgIDogQ09OVkVSVF9UT19TVFJJTkcgPyBTLnNsaWNlKHBvc2l0aW9uLCBwb3NpdGlvbiArIDIpIDogKGZpcnN0IC0gMHhEODAwIDw8IDEwKSArIChzZWNvbmQgLSAweERDMDApICsgMHgxMDAwMDtcbn07XG4iLCAidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyJyk7XG5cbnZhciBtYXggPSBNYXRoLm1heDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcblxuLy8gSGVscGVyIGZvciBhIHBvcHVsYXIgcmVwZWF0aW5nIGNhc2Ugb2YgdGhlIHNwZWM6XG4vLyBMZXQgaW50ZWdlciBiZSA/IFRvSW50ZWdlcihpbmRleCkuXG4vLyBJZiBpbnRlZ2VyIDwgMCwgbGV0IHJlc3VsdCBiZSBtYXgoKGxlbmd0aCArIGludGVnZXIpLCAwKTsgZWxzZSBsZXQgcmVzdWx0IGJlIG1pbihsZW5ndGgsIGxlbmd0aCkuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpbmRleCwgbGVuZ3RoKSB7XG4gIHZhciBpbnRlZ2VyID0gdG9JbnRlZ2VyKGluZGV4KTtcbiAgcmV0dXJuIGludGVnZXIgPCAwID8gbWF4KGludGVnZXIgKyBsZW5ndGgsIDApIDogbWluKGludGVnZXIsIGxlbmd0aCk7XG59O1xuIiwgIi8vIHRvT2JqZWN0IHdpdGggZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBzdHJpbmdzXG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBJbmRleGVkT2JqZWN0KHJlcXVpcmVPYmplY3RDb2VyY2libGUoaXQpKTtcbn07XG4iLCAidmFyIGNlaWwgPSBNYXRoLmNlaWw7XG52YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xuXG4vLyBgVG9JbnRlZ2VyYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXRvaW50ZWdlclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIGlzTmFOKGFyZ3VtZW50ID0gK2FyZ3VtZW50KSA/IDAgOiAoYXJndW1lbnQgPiAwID8gZmxvb3IgOiBjZWlsKShhcmd1bWVudCk7XG59O1xuIiwgInZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlcicpO1xuXG52YXIgbWluID0gTWF0aC5taW47XG5cbi8vIGBUb0xlbmd0aGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy10b2xlbmd0aFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIGFyZ3VtZW50ID4gMCA/IG1pbih0b0ludGVnZXIoYXJndW1lbnQpLCAweDFGRkZGRkZGRkZGRkZGKSA6IDA7IC8vIDIgKiogNTMgLSAxID09IDkwMDcxOTkyNTQ3NDA5OTFcbn07XG4iLCAidmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbi8vIGBUb09iamVjdGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy10b29iamVjdFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIE9iamVjdChyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KSk7XG59O1xuIiwgInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxuLy8gNy4xLjEgVG9QcmltaXRpdmUoaW5wdXQgWywgUHJlZmVycmVkVHlwZV0pXG4vLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuLy8gYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgLSBmbGFnIC0gcHJlZmVycmVkIHR5cGUgaXMgYSBzdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBTKSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSByZXR1cm4gaXQ7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAoUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHR5cGVvZiAoZm4gPSBpdC52YWx1ZU9mKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIGlmICghUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcbiIsICJ2YXIgaWQgPSAwO1xudmFyIHBvc3RmaXggPSBNYXRoLnJhbmRvbSgpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuICdTeW1ib2woJy5jb25jYXQoa2V5ID09PSB1bmRlZmluZWQgPyAnJyA6IGtleSwgJylfJywgKCsraWQgKyBwb3N0Zml4KS50b1N0cmluZygzNikpO1xufTtcbiIsICJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE8sIHByb3RvKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBpZiAoIWlzT2JqZWN0KHByb3RvKSAmJiBwcm90byAhPT0gbnVsbCkge1xuICAgIHRocm93IFR5cGVFcnJvcihcIkNhbid0IHNldCBcIiArIFN0cmluZyhwcm90bykgKyAnIGFzIGEgcHJvdG90eXBlJyk7XG4gIH1cbn07XG4iLCAidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VpZCcpO1xudmFyIE5BVElWRV9TWU1CT0wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbmF0aXZlLXN5bWJvbCcpO1xuXG52YXIgU3ltYm9sID0gZ2xvYmFsLlN5bWJvbDtcbnZhciBzdG9yZSA9IHNoYXJlZCgnd2tzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgcmV0dXJuIHN0b3JlW25hbWVdIHx8IChzdG9yZVtuYW1lXSA9IE5BVElWRV9TWU1CT0wgJiYgU3ltYm9sW25hbWVdXG4gICAgfHwgKE5BVElWRV9TWU1CT0wgPyBTeW1ib2wgOiB1aWQpKCdTeW1ib2wuJyArIG5hbWUpKTtcbn07XG4iLCAidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZnJvbSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1mcm9tJyk7XG52YXIgY2hlY2tDb3JyZWN0bmVzc09mSXRlcmF0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NoZWNrLWNvcnJlY3RuZXNzLW9mLWl0ZXJhdGlvbicpO1xuXG52YXIgSU5DT1JSRUNUX0lURVJBVElPTiA9ICFjaGVja0NvcnJlY3RuZXNzT2ZJdGVyYXRpb24oZnVuY3Rpb24gKGl0ZXJhYmxlKSB7XG4gIEFycmF5LmZyb20oaXRlcmFibGUpO1xufSk7XG5cbi8vIGBBcnJheS5mcm9tYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LmZyb21cbiQoeyB0YXJnZXQ6ICdBcnJheScsIHN0YXQ6IHRydWUsIGZvcmNlZDogSU5DT1JSRUNUX0lURVJBVElPTiB9LCB7XG4gIGZyb206IGZyb21cbn0pO1xuIiwgIid1c2Ugc3RyaWN0JztcbnZhciBjb2RlUG9pbnRBdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctYXQnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG52YXIgZGVmaW5lSXRlcmF0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWl0ZXJhdG9yJyk7XG5cbnZhciBTVFJJTkdfSVRFUkFUT1IgPSAnU3RyaW5nIEl0ZXJhdG9yJztcbnZhciBzZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5zZXQ7XG52YXIgZ2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0dGVyRm9yKFNUUklOR19JVEVSQVRPUik7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlW0BAaXRlcmF0b3JdYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUtQEBpdGVyYXRvclxuZGVmaW5lSXRlcmF0b3IoU3RyaW5nLCAnU3RyaW5nJywgZnVuY3Rpb24gKGl0ZXJhdGVkKSB7XG4gIHNldEludGVybmFsU3RhdGUodGhpcywge1xuICAgIHR5cGU6IFNUUklOR19JVEVSQVRPUixcbiAgICBzdHJpbmc6IFN0cmluZyhpdGVyYXRlZCksXG4gICAgaW5kZXg6IDBcbiAgfSk7XG4vLyBgJVN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJS5uZXh0YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLSVzdHJpbmdpdGVyYXRvcnByb3RvdHlwZSUubmV4dFxufSwgZnVuY3Rpb24gbmV4dCgpIHtcbiAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKTtcbiAgdmFyIHN0cmluZyA9IHN0YXRlLnN0cmluZztcbiAgdmFyIGluZGV4ID0gc3RhdGUuaW5kZXg7XG4gIHZhciBwb2ludDtcbiAgaWYgKGluZGV4ID49IHN0cmluZy5sZW5ndGgpIHJldHVybiB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfTtcbiAgcG9pbnQgPSBjb2RlUG9pbnRBdChzdHJpbmcsIGluZGV4LCB0cnVlKTtcbiAgc3RhdGUuaW5kZXggKz0gcG9pbnQubGVuZ3RoO1xuICByZXR1cm4geyB2YWx1ZTogcG9pbnQsIGRvbmU6IGZhbHNlIH07XG59KTtcbiIsICJ2YXIgZztcclxuXHJcbi8vIFRoaXMgd29ya3MgaW4gbm9uLXN0cmljdCBtb2RlXHJcbmcgPSAoZnVuY3Rpb24oKSB7XHJcblx0cmV0dXJuIHRoaXM7XHJcbn0pKCk7XHJcblxyXG50cnkge1xyXG5cdC8vIFRoaXMgd29ya3MgaWYgZXZhbCBpcyBhbGxvd2VkIChzZWUgQ1NQKVxyXG5cdGcgPSBnIHx8IEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKSB8fCAoMSwgZXZhbCkoXCJ0aGlzXCIpO1xyXG59IGNhdGNoIChlKSB7XHJcblx0Ly8gVGhpcyB3b3JrcyBpZiB0aGUgd2luZG93IHJlZmVyZW5jZSBpcyBhdmFpbGFibGVcclxuXHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJvYmplY3RcIikgZyA9IHdpbmRvdztcclxufVxyXG5cclxuLy8gZyBjYW4gc3RpbGwgYmUgdW5kZWZpbmVkLCBidXQgbm90aGluZyB0byBkbyBhYm91dCBpdC4uLlxyXG4vLyBXZSByZXR1cm4gdW5kZWZpbmVkLCBpbnN0ZWFkIG9mIG5vdGhpbmcgaGVyZSwgc28gaXQnc1xyXG4vLyBlYXNpZXIgdG8gaGFuZGxlIHRoaXMgY2FzZS4gaWYoIWdsb2JhbCkgeyAuLi59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGc7XHJcbiIsICJpbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzL2RlZHVwZSc7XG5cbmltcG9ydCBERUZBVUxUX0FUVFJTIGZyb20gJy4vZGVmYXVsdC1hdHRycy5qc29uJztcblxuY2xhc3MgSWNvbiB7XG4gIGNvbnN0cnVjdG9yKG5hbWUsIGNvbnRlbnRzLCB0YWdzID0gW10pIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMuY29udGVudHMgPSBjb250ZW50cztcbiAgICB0aGlzLnRhZ3MgPSB0YWdzO1xuICAgIHRoaXMuYXR0cnMgPSB7XG4gICAgICAuLi5ERUZBVUxUX0FUVFJTLFxuICAgICAgLi4ueyBjbGFzczogYGZlYXRoZXIgZmVhdGhlci0ke25hbWV9YCB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIFNWRyBzdHJpbmcuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBhdHRyc1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgdG9TdmcoYXR0cnMgPSB7fSkge1xuICAgIGNvbnN0IGNvbWJpbmVkQXR0cnMgPSB7XG4gICAgICAuLi50aGlzLmF0dHJzLFxuICAgICAgLi4uYXR0cnMsXG4gICAgICAuLi57IGNsYXNzOiBjbGFzc25hbWVzKHRoaXMuYXR0cnMuY2xhc3MsIGF0dHJzLmNsYXNzKSB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gYDxzdmcgJHthdHRyc1RvU3RyaW5nKGNvbWJpbmVkQXR0cnMpfT4ke3RoaXMuY29udGVudHN9PC9zdmc+YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIGBJY29uYC5cbiAgICpcbiAgICogQWRkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIElmIG9sZCBjb2RlIGV4cGVjdHMgYGZlYXRoZXIuaWNvbnMuPG5hbWU+YFxuICAgKiB0byBiZSBhIHN0cmluZywgYHRvU3RyaW5nKClgIHdpbGwgZ2V0IGltcGxpY2l0bHkgY2FsbGVkLlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudHM7XG4gIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0IGF0dHJpYnV0ZXMgb2JqZWN0IHRvIHN0cmluZyBvZiBIVE1MIGF0dHJpYnV0ZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gYXR0cnNcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGF0dHJzVG9TdHJpbmcoYXR0cnMpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGF0dHJzKVxuICAgIC5tYXAoa2V5ID0+IGAke2tleX09XCIke2F0dHJzW2tleV19XCJgKVxuICAgIC5qb2luKCcgJyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEljb247XG4iLCAiaW1wb3J0IEljb24gZnJvbSAnLi9pY29uJztcbmltcG9ydCBpY29ucyBmcm9tICcuLi9kaXN0L2ljb25zLmpzb24nO1xuaW1wb3J0IHRhZ3MgZnJvbSAnLi90YWdzLmpzb24nO1xuXG5leHBvcnQgZGVmYXVsdCBPYmplY3Qua2V5cyhpY29ucylcbiAgLm1hcChrZXkgPT4gbmV3IEljb24oa2V5LCBpY29uc1trZXldLCB0YWdzW2tleV0pKVxuICAucmVkdWNlKChvYmplY3QsIGljb24pID0+IHtcbiAgICBvYmplY3RbaWNvbi5uYW1lXSA9IGljb247XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfSwge30pO1xuIiwgImltcG9ydCBpY29ucyBmcm9tICcuL2ljb25zJztcbmltcG9ydCB0b1N2ZyBmcm9tICcuL3RvLXN2Zyc7XG5pbXBvcnQgcmVwbGFjZSBmcm9tICcuL3JlcGxhY2UnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHsgaWNvbnMsIHRvU3ZnLCByZXBsYWNlIH07XG4iLCAiLyogZXNsaW50LWVudiBicm93c2VyICovXG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzL2RlZHVwZSc7XG5cbmltcG9ydCBpY29ucyBmcm9tICcuL2ljb25zJztcblxuLyoqXG4gKiBSZXBsYWNlIGFsbCBIVE1MIGVsZW1lbnRzIHRoYXQgaGF2ZSBhIGBkYXRhLWZlYXRoZXJgIGF0dHJpYnV0ZSB3aXRoIFNWRyBtYXJrdXBcbiAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGVsZW1lbnQncyBgZGF0YS1mZWF0aGVyYCBhdHRyaWJ1dGUgdmFsdWUuXG4gKiBAcGFyYW0ge09iamVjdH0gYXR0cnNcbiAqL1xuZnVuY3Rpb24gcmVwbGFjZShhdHRycyA9IHt9KSB7XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdgZmVhdGhlci5yZXBsYWNlKClgIG9ubHkgd29ya3MgaW4gYSBicm93c2VyIGVudmlyb25tZW50LicpO1xuICB9XG5cbiAgY29uc3QgZWxlbWVudHNUb1JlcGxhY2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1mZWF0aGVyXScpO1xuXG4gIEFycmF5LmZyb20oZWxlbWVudHNUb1JlcGxhY2UpLmZvckVhY2goZWxlbWVudCA9PlxuICAgIHJlcGxhY2VFbGVtZW50KGVsZW1lbnQsIGF0dHJzKSxcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXBsYWNlIGEgc2luZ2xlIEhUTUwgZWxlbWVudCB3aXRoIFNWRyBtYXJrdXBcbiAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGVsZW1lbnQncyBgZGF0YS1mZWF0aGVyYCBhdHRyaWJ1dGUgdmFsdWUuXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50XG4gKiBAcGFyYW0ge09iamVjdH0gYXR0cnNcbiAqL1xuZnVuY3Rpb24gcmVwbGFjZUVsZW1lbnQoZWxlbWVudCwgYXR0cnMgPSB7fSkge1xuICBjb25zdCBlbGVtZW50QXR0cnMgPSBnZXRBdHRycyhlbGVtZW50KTtcbiAgY29uc3QgbmFtZSA9IGVsZW1lbnRBdHRyc1snZGF0YS1mZWF0aGVyJ107XG4gIGRlbGV0ZSBlbGVtZW50QXR0cnNbJ2RhdGEtZmVhdGhlciddO1xuXG4gIGNvbnN0IHN2Z1N0cmluZyA9IGljb25zW25hbWVdLnRvU3ZnKHtcbiAgICAuLi5hdHRycyxcbiAgICAuLi5lbGVtZW50QXR0cnMsXG4gICAgLi4ueyBjbGFzczogY2xhc3NuYW1lcyhhdHRycy5jbGFzcywgZWxlbWVudEF0dHJzLmNsYXNzKSB9LFxuICB9KTtcbiAgY29uc3Qgc3ZnRG9jdW1lbnQgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKFxuICAgIHN2Z1N0cmluZyxcbiAgICAnaW1hZ2Uvc3ZnK3htbCcsXG4gICk7XG4gIGNvbnN0IHN2Z0VsZW1lbnQgPSBzdmdEb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzdmcnKTtcblxuICBlbGVtZW50LnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHN2Z0VsZW1lbnQsIGVsZW1lbnQpO1xufVxuXG4vKipcbiAqIEdldCB0aGUgYXR0cmlidXRlcyBvZiBhbiBIVE1MIGVsZW1lbnQuXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50XG4gKiBAcmV0dXJucyB7T2JqZWN0fVxuICovXG5mdW5jdGlvbiBnZXRBdHRycyhlbGVtZW50KSB7XG4gIHJldHVybiBBcnJheS5mcm9tKGVsZW1lbnQuYXR0cmlidXRlcykucmVkdWNlKChhdHRycywgYXR0cikgPT4ge1xuICAgIGF0dHJzW2F0dHIubmFtZV0gPSBhdHRyLnZhbHVlO1xuICAgIHJldHVybiBhdHRycztcbiAgfSwge30pO1xufVxuXG5leHBvcnQgZGVmYXVsdCByZXBsYWNlO1xuIiwgImltcG9ydCBpY29ucyBmcm9tICcuL2ljb25zJztcblxuLyoqXG4gKiBDcmVhdGUgYW4gU1ZHIHN0cmluZy5cbiAqIEBkZXByZWNhdGVkXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHBhcmFtIHtPYmplY3R9IGF0dHJzXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiB0b1N2ZyhuYW1lLCBhdHRycyA9IHt9KSB7XG4gIGNvbnNvbGUud2FybihcbiAgICAnZmVhdGhlci50b1N2ZygpIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgZmVhdGhlci5pY29uc1tuYW1lXS50b1N2ZygpIGluc3RlYWQuJyxcbiAgKTtcblxuICBpZiAoIW5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSByZXF1aXJlZCBga2V5YCAoaWNvbiBuYW1lKSBwYXJhbWV0ZXIgaXMgbWlzc2luZy4nKTtcbiAgfVxuXG4gIGlmICghaWNvbnNbbmFtZV0pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgTm8gaWNvbiBtYXRjaGluZyAnJHtcbiAgICAgICAgbmFtZVxuICAgICAgfScuIFNlZSB0aGUgY29tcGxldGUgbGlzdCBvZiBpY29ucyBhdCBodHRwczovL2ZlYXRoZXJpY29ucy5jb21gLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gaWNvbnNbbmFtZV0udG9TdmcoYXR0cnMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB0b1N2ZztcbiIsICIvKlxuKiBsb2dsZXZlbCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9waW10ZXJyeS9sb2dsZXZlbFxuKlxuKiBDb3B5cmlnaHQgKGMpIDIwMTMgVGltIFBlcnJ5XG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiovXG4oZnVuY3Rpb24gKHJvb3QsIGRlZmluaXRpb24pIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG4gICAgICAgIGRlZmluZShkZWZpbml0aW9uKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnICYmIG1vZHVsZS5leHBvcnRzKSB7XG4gICAgICAgIG1vZHVsZS5leHBvcnRzID0gZGVmaW5pdGlvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJvb3QubG9nID0gZGVmaW5pdGlvbigpO1xuICAgIH1cbn0odGhpcywgZnVuY3Rpb24gKCkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuXG4gICAgLy8gU2xpZ2h0bHkgZHViaW91cyB0cmlja3MgdG8gY3V0IGRvd24gbWluaW1pemVkIGZpbGUgc2l6ZVxuICAgIHZhciBub29wID0gZnVuY3Rpb24oKSB7fTtcbiAgICB2YXIgdW5kZWZpbmVkVHlwZSA9IFwidW5kZWZpbmVkXCI7XG4gICAgdmFyIGlzSUUgPSAodHlwZW9mIHdpbmRvdyAhPT0gdW5kZWZpbmVkVHlwZSkgJiYgKHR5cGVvZiB3aW5kb3cubmF2aWdhdG9yICE9PSB1bmRlZmluZWRUeXBlKSAmJiAoXG4gICAgICAgIC9UcmlkZW50XFwvfE1TSUUgLy50ZXN0KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KVxuICAgICk7XG5cbiAgICB2YXIgbG9nTWV0aG9kcyA9IFtcbiAgICAgICAgXCJ0cmFjZVwiLFxuICAgICAgICBcImRlYnVnXCIsXG4gICAgICAgIFwiaW5mb1wiLFxuICAgICAgICBcIndhcm5cIixcbiAgICAgICAgXCJlcnJvclwiXG4gICAgXTtcblxuICAgIC8vIENyb3NzLWJyb3dzZXIgYmluZCBlcXVpdmFsZW50IHRoYXQgd29ya3MgYXQgbGVhc3QgYmFjayB0byBJRTZcbiAgICBmdW5jdGlvbiBiaW5kTWV0aG9kKG9iaiwgbWV0aG9kTmFtZSkge1xuICAgICAgICB2YXIgbWV0aG9kID0gb2JqW21ldGhvZE5hbWVdO1xuICAgICAgICBpZiAodHlwZW9mIG1ldGhvZC5iaW5kID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gbWV0aG9kLmJpbmQob2JqKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmNhbGwobWV0aG9kLCBvYmopO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIC8vIE1pc3NpbmcgYmluZCBzaGltIG9yIElFOCArIE1vZGVybml6ciwgZmFsbGJhY2sgdG8gd3JhcHBpbmdcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuYXBwbHkobWV0aG9kLCBbb2JqLCBhcmd1bWVudHNdKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVHJhY2UoKSBkb2Vzbid0IHByaW50IHRoZSBtZXNzYWdlIGluIElFLCBzbyBmb3IgdGhhdCBjYXNlIHdlIG5lZWQgdG8gd3JhcCBpdFxuICAgIGZ1bmN0aW9uIHRyYWNlRm9ySUUoKSB7XG4gICAgICAgIGlmIChjb25zb2xlLmxvZykge1xuICAgICAgICAgICAgaWYgKGNvbnNvbGUubG9nLmFwcGx5KSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2cuYXBwbHkoY29uc29sZSwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gSW4gb2xkIElFLCBuYXRpdmUgY29uc29sZSBtZXRob2RzIHRoZW1zZWx2ZXMgZG9uJ3QgaGF2ZSBhcHBseSgpLlxuICAgICAgICAgICAgICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5hcHBseShjb25zb2xlLmxvZywgW2NvbnNvbGUsIGFyZ3VtZW50c10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjb25zb2xlLnRyYWNlKSBjb25zb2xlLnRyYWNlKCk7XG4gICAgfVxuXG4gICAgLy8gQnVpbGQgdGhlIGJlc3QgbG9nZ2luZyBtZXRob2QgcG9zc2libGUgZm9yIHRoaXMgZW52XG4gICAgLy8gV2hlcmV2ZXIgcG9zc2libGUgd2Ugd2FudCB0byBiaW5kLCBub3Qgd3JhcCwgdG8gcHJlc2VydmUgc3RhY2sgdHJhY2VzXG4gICAgZnVuY3Rpb24gcmVhbE1ldGhvZChtZXRob2ROYW1lKSB7XG4gICAgICAgIGlmIChtZXRob2ROYW1lID09PSAnZGVidWcnKSB7XG4gICAgICAgICAgICBtZXRob2ROYW1lID0gJ2xvZyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGNvbnNvbGUgPT09IHVuZGVmaW5lZFR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gTm8gbWV0aG9kIHBvc3NpYmxlLCBmb3Igbm93IC0gZml4ZWQgbGF0ZXIgYnkgZW5hYmxlTG9nZ2luZ1doZW5Db25zb2xlQXJyaXZlc1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGhvZE5hbWUgPT09ICd0cmFjZScgJiYgaXNJRSkge1xuICAgICAgICAgICAgcmV0dXJuIHRyYWNlRm9ySUU7XG4gICAgICAgIH0gZWxzZSBpZiAoY29uc29sZVttZXRob2ROYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gYmluZE1ldGhvZChjb25zb2xlLCBtZXRob2ROYW1lKTtcbiAgICAgICAgfSBlbHNlIGlmIChjb25zb2xlLmxvZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gYmluZE1ldGhvZChjb25zb2xlLCAnbG9nJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbm9vcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZXNlIHByaXZhdGUgZnVuY3Rpb25zIGFsd2F5cyBuZWVkIGB0aGlzYCB0byBiZSBzZXQgcHJvcGVybHlcblxuICAgIGZ1bmN0aW9uIHJlcGxhY2VMb2dnaW5nTWV0aG9kcyhsZXZlbCwgbG9nZ2VyTmFtZSkge1xuICAgICAgICAvKmpzaGludCB2YWxpZHRoaXM6dHJ1ZSAqL1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxvZ01ldGhvZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBtZXRob2ROYW1lID0gbG9nTWV0aG9kc1tpXTtcbiAgICAgICAgICAgIHRoaXNbbWV0aG9kTmFtZV0gPSAoaSA8IGxldmVsKSA/XG4gICAgICAgICAgICAgICAgbm9vcCA6XG4gICAgICAgICAgICAgICAgdGhpcy5tZXRob2RGYWN0b3J5KG1ldGhvZE5hbWUsIGxldmVsLCBsb2dnZXJOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERlZmluZSBsb2cubG9nIGFzIGFuIGFsaWFzIGZvciBsb2cuZGVidWdcbiAgICAgICAgdGhpcy5sb2cgPSB0aGlzLmRlYnVnO1xuICAgIH1cblxuICAgIC8vIEluIG9sZCBJRSB2ZXJzaW9ucywgdGhlIGNvbnNvbGUgaXNuJ3QgcHJlc2VudCB1bnRpbCB5b3UgZmlyc3Qgb3BlbiBpdC5cbiAgICAvLyBXZSBidWlsZCByZWFsTWV0aG9kKCkgcmVwbGFjZW1lbnRzIGhlcmUgdGhhdCByZWdlbmVyYXRlIGxvZ2dpbmcgbWV0aG9kc1xuICAgIGZ1bmN0aW9uIGVuYWJsZUxvZ2dpbmdXaGVuQ29uc29sZUFycml2ZXMobWV0aG9kTmFtZSwgbGV2ZWwsIGxvZ2dlck5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gdW5kZWZpbmVkVHlwZSkge1xuICAgICAgICAgICAgICAgIHJlcGxhY2VMb2dnaW5nTWV0aG9kcy5jYWxsKHRoaXMsIGxldmVsLCBsb2dnZXJOYW1lKTtcbiAgICAgICAgICAgICAgICB0aGlzW21ldGhvZE5hbWVdLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gQnkgZGVmYXVsdCwgd2UgdXNlIGNsb3NlbHkgYm91bmQgcmVhbCBtZXRob2RzIHdoZXJldmVyIHBvc3NpYmxlLCBhbmRcbiAgICAvLyBvdGhlcndpc2Ugd2Ugd2FpdCBmb3IgYSBjb25zb2xlIHRvIGFwcGVhciwgYW5kIHRoZW4gdHJ5IGFnYWluLlxuICAgIGZ1bmN0aW9uIGRlZmF1bHRNZXRob2RGYWN0b3J5KG1ldGhvZE5hbWUsIGxldmVsLCBsb2dnZXJOYW1lKSB7XG4gICAgICAgIC8qanNoaW50IHZhbGlkdGhpczp0cnVlICovXG4gICAgICAgIHJldHVybiByZWFsTWV0aG9kKG1ldGhvZE5hbWUpIHx8XG4gICAgICAgICAgICAgICBlbmFibGVMb2dnaW5nV2hlbkNvbnNvbGVBcnJpdmVzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gTG9nZ2VyKG5hbWUsIGRlZmF1bHRMZXZlbCwgZmFjdG9yeSkge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgdmFyIGN1cnJlbnRMZXZlbDtcbiAgICAgIGRlZmF1bHRMZXZlbCA9IGRlZmF1bHRMZXZlbCA9PSBudWxsID8gXCJXQVJOXCIgOiBkZWZhdWx0TGV2ZWw7XG5cbiAgICAgIHZhciBzdG9yYWdlS2V5ID0gXCJsb2dsZXZlbFwiO1xuICAgICAgaWYgKHR5cGVvZiBuYW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHN0b3JhZ2VLZXkgKz0gXCI6XCIgKyBuYW1lO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzeW1ib2xcIikge1xuICAgICAgICBzdG9yYWdlS2V5ID0gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBwZXJzaXN0TGV2ZWxJZlBvc3NpYmxlKGxldmVsTnVtKSB7XG4gICAgICAgICAgdmFyIGxldmVsTmFtZSA9IChsb2dNZXRob2RzW2xldmVsTnVtXSB8fCAnc2lsZW50JykudG9VcHBlckNhc2UoKTtcblxuICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSB1bmRlZmluZWRUeXBlIHx8ICFzdG9yYWdlS2V5KSByZXR1cm47XG5cbiAgICAgICAgICAvLyBVc2UgbG9jYWxTdG9yYWdlIGlmIGF2YWlsYWJsZVxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Vbc3RvcmFnZUtleV0gPSBsZXZlbE5hbWU7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9IGNhdGNoIChpZ25vcmUpIHt9XG5cbiAgICAgICAgICAvLyBVc2Ugc2Vzc2lvbiBjb29raWUgYXMgZmFsbGJhY2tcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB3aW5kb3cuZG9jdW1lbnQuY29va2llID1cbiAgICAgICAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoc3RvcmFnZUtleSkgKyBcIj1cIiArIGxldmVsTmFtZSArIFwiO1wiO1xuICAgICAgICAgIH0gY2F0Y2ggKGlnbm9yZSkge31cbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gZ2V0UGVyc2lzdGVkTGV2ZWwoKSB7XG4gICAgICAgICAgdmFyIHN0b3JlZExldmVsO1xuXG4gICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IHVuZGVmaW5lZFR5cGUgfHwgIXN0b3JhZ2VLZXkpIHJldHVybjtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHN0b3JlZExldmVsID0gd2luZG93LmxvY2FsU3RvcmFnZVtzdG9yYWdlS2V5XTtcbiAgICAgICAgICB9IGNhdGNoIChpZ25vcmUpIHt9XG5cbiAgICAgICAgICAvLyBGYWxsYmFjayB0byBjb29raWVzIGlmIGxvY2FsIHN0b3JhZ2UgZ2l2ZXMgdXMgbm90aGluZ1xuICAgICAgICAgIGlmICh0eXBlb2Ygc3RvcmVkTGV2ZWwgPT09IHVuZGVmaW5lZFR5cGUpIHtcbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgIHZhciBjb29raWUgPSB3aW5kb3cuZG9jdW1lbnQuY29va2llO1xuICAgICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gY29va2llLmluZGV4T2YoXG4gICAgICAgICAgICAgICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KHN0b3JhZ2VLZXkpICsgXCI9XCIpO1xuICAgICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgIHN0b3JlZExldmVsID0gL14oW147XSspLy5leGVjKGNvb2tpZS5zbGljZShsb2NhdGlvbikpWzFdO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGNhdGNoIChpZ25vcmUpIHt9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gSWYgdGhlIHN0b3JlZCBsZXZlbCBpcyBub3QgdmFsaWQsIHRyZWF0IGl0IGFzIGlmIG5vdGhpbmcgd2FzIHN0b3JlZC5cbiAgICAgICAgICBpZiAoc2VsZi5sZXZlbHNbc3RvcmVkTGV2ZWxdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgc3RvcmVkTGV2ZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHN0b3JlZExldmVsO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBjbGVhclBlcnNpc3RlZExldmVsKCkge1xuICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSB1bmRlZmluZWRUeXBlIHx8ICFzdG9yYWdlS2V5KSByZXR1cm47XG5cbiAgICAgICAgICAvLyBVc2UgbG9jYWxTdG9yYWdlIGlmIGF2YWlsYWJsZVxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShzdG9yYWdlS2V5KTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH0gY2F0Y2ggKGlnbm9yZSkge31cblxuICAgICAgICAgIC8vIFVzZSBzZXNzaW9uIGNvb2tpZSBhcyBmYWxsYmFja1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHdpbmRvdy5kb2N1bWVudC5jb29raWUgPVxuICAgICAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChzdG9yYWdlS2V5KSArIFwiPTsgZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIFVUQ1wiO1xuICAgICAgICAgIH0gY2F0Y2ggKGlnbm9yZSkge31cbiAgICAgIH1cblxuICAgICAgLypcbiAgICAgICAqXG4gICAgICAgKiBQdWJsaWMgbG9nZ2VyIEFQSSAtIHNlZSBodHRwczovL2dpdGh1Yi5jb20vcGltdGVycnkvbG9nbGV2ZWwgZm9yIGRldGFpbHNcbiAgICAgICAqXG4gICAgICAgKi9cblxuICAgICAgc2VsZi5uYW1lID0gbmFtZTtcblxuICAgICAgc2VsZi5sZXZlbHMgPSB7IFwiVFJBQ0VcIjogMCwgXCJERUJVR1wiOiAxLCBcIklORk9cIjogMiwgXCJXQVJOXCI6IDMsXG4gICAgICAgICAgXCJFUlJPUlwiOiA0LCBcIlNJTEVOVFwiOiA1fTtcblxuICAgICAgc2VsZi5tZXRob2RGYWN0b3J5ID0gZmFjdG9yeSB8fCBkZWZhdWx0TWV0aG9kRmFjdG9yeTtcblxuICAgICAgc2VsZi5nZXRMZXZlbCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gY3VycmVudExldmVsO1xuICAgICAgfTtcblxuICAgICAgc2VsZi5zZXRMZXZlbCA9IGZ1bmN0aW9uIChsZXZlbCwgcGVyc2lzdCkge1xuICAgICAgICAgIGlmICh0eXBlb2YgbGV2ZWwgPT09IFwic3RyaW5nXCIgJiYgc2VsZi5sZXZlbHNbbGV2ZWwudG9VcHBlckNhc2UoKV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBsZXZlbCA9IHNlbGYubGV2ZWxzW2xldmVsLnRvVXBwZXJDYXNlKCldO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHlwZW9mIGxldmVsID09PSBcIm51bWJlclwiICYmIGxldmVsID49IDAgJiYgbGV2ZWwgPD0gc2VsZi5sZXZlbHMuU0lMRU5UKSB7XG4gICAgICAgICAgICAgIGN1cnJlbnRMZXZlbCA9IGxldmVsO1xuICAgICAgICAgICAgICBpZiAocGVyc2lzdCAhPT0gZmFsc2UpIHsgIC8vIGRlZmF1bHRzIHRvIHRydWVcbiAgICAgICAgICAgICAgICAgIHBlcnNpc3RMZXZlbElmUG9zc2libGUobGV2ZWwpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJlcGxhY2VMb2dnaW5nTWV0aG9kcy5jYWxsKHNlbGYsIGxldmVsLCBuYW1lKTtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb25zb2xlID09PSB1bmRlZmluZWRUeXBlICYmIGxldmVsIDwgc2VsZi5sZXZlbHMuU0lMRU5UKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gXCJObyBjb25zb2xlIGF2YWlsYWJsZSBmb3IgbG9nZ2luZ1wiO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhyb3cgXCJsb2cuc2V0TGV2ZWwoKSBjYWxsZWQgd2l0aCBpbnZhbGlkIGxldmVsOiBcIiArIGxldmVsO1xuICAgICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHNlbGYuc2V0RGVmYXVsdExldmVsID0gZnVuY3Rpb24gKGxldmVsKSB7XG4gICAgICAgICAgZGVmYXVsdExldmVsID0gbGV2ZWw7XG4gICAgICAgICAgaWYgKCFnZXRQZXJzaXN0ZWRMZXZlbCgpKSB7XG4gICAgICAgICAgICAgIHNlbGYuc2V0TGV2ZWwobGV2ZWwsIGZhbHNlKTtcbiAgICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBzZWxmLnJlc2V0TGV2ZWwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgc2VsZi5zZXRMZXZlbChkZWZhdWx0TGV2ZWwsIGZhbHNlKTtcbiAgICAgICAgICBjbGVhclBlcnNpc3RlZExldmVsKCk7XG4gICAgICB9O1xuXG4gICAgICBzZWxmLmVuYWJsZUFsbCA9IGZ1bmN0aW9uKHBlcnNpc3QpIHtcbiAgICAgICAgICBzZWxmLnNldExldmVsKHNlbGYubGV2ZWxzLlRSQUNFLCBwZXJzaXN0KTtcbiAgICAgIH07XG5cbiAgICAgIHNlbGYuZGlzYWJsZUFsbCA9IGZ1bmN0aW9uKHBlcnNpc3QpIHtcbiAgICAgICAgICBzZWxmLnNldExldmVsKHNlbGYubGV2ZWxzLlNJTEVOVCwgcGVyc2lzdCk7XG4gICAgICB9O1xuXG4gICAgICAvLyBJbml0aWFsaXplIHdpdGggdGhlIHJpZ2h0IGxldmVsXG4gICAgICB2YXIgaW5pdGlhbExldmVsID0gZ2V0UGVyc2lzdGVkTGV2ZWwoKTtcbiAgICAgIGlmIChpbml0aWFsTGV2ZWwgPT0gbnVsbCkge1xuICAgICAgICAgIGluaXRpYWxMZXZlbCA9IGRlZmF1bHRMZXZlbDtcbiAgICAgIH1cbiAgICAgIHNlbGYuc2V0TGV2ZWwoaW5pdGlhbExldmVsLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKlxuICAgICAqIFRvcC1sZXZlbCBBUElcbiAgICAgKlxuICAgICAqL1xuXG4gICAgdmFyIGRlZmF1bHRMb2dnZXIgPSBuZXcgTG9nZ2VyKCk7XG5cbiAgICB2YXIgX2xvZ2dlcnNCeU5hbWUgPSB7fTtcbiAgICBkZWZhdWx0TG9nZ2VyLmdldExvZ2dlciA9IGZ1bmN0aW9uIGdldExvZ2dlcihuYW1lKSB7XG4gICAgICAgIGlmICgodHlwZW9mIG5hbWUgIT09IFwic3ltYm9sXCIgJiYgdHlwZW9mIG5hbWUgIT09IFwic3RyaW5nXCIpIHx8IG5hbWUgPT09IFwiXCIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiWW91IG11c3Qgc3VwcGx5IGEgbmFtZSB3aGVuIGNyZWF0aW5nIGEgbG9nZ2VyLlwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBsb2dnZXIgPSBfbG9nZ2Vyc0J5TmFtZVtuYW1lXTtcbiAgICAgICAgaWYgKCFsb2dnZXIpIHtcbiAgICAgICAgICBsb2dnZXIgPSBfbG9nZ2Vyc0J5TmFtZVtuYW1lXSA9IG5ldyBMb2dnZXIoXG4gICAgICAgICAgICBuYW1lLCBkZWZhdWx0TG9nZ2VyLmdldExldmVsKCksIGRlZmF1bHRMb2dnZXIubWV0aG9kRmFjdG9yeSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvZ2dlcjtcbiAgICB9O1xuXG4gICAgLy8gR3JhYiB0aGUgY3VycmVudCBnbG9iYWwgbG9nIHZhcmlhYmxlIGluIGNhc2Ugb2Ygb3ZlcndyaXRlXG4gICAgdmFyIF9sb2cgPSAodHlwZW9mIHdpbmRvdyAhPT0gdW5kZWZpbmVkVHlwZSkgPyB3aW5kb3cubG9nIDogdW5kZWZpbmVkO1xuICAgIGRlZmF1bHRMb2dnZXIubm9Db25mbGljdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gdW5kZWZpbmVkVHlwZSAmJlxuICAgICAgICAgICAgICAgd2luZG93LmxvZyA9PT0gZGVmYXVsdExvZ2dlcikge1xuICAgICAgICAgICAgd2luZG93LmxvZyA9IF9sb2c7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGVmYXVsdExvZ2dlcjtcbiAgICB9O1xuXG4gICAgZGVmYXVsdExvZ2dlci5nZXRMb2dnZXJzID0gZnVuY3Rpb24gZ2V0TG9nZ2VycygpIHtcbiAgICAgICAgcmV0dXJuIF9sb2dnZXJzQnlOYW1lO1xuICAgIH07XG5cbiAgICAvLyBFUzYgZGVmYXVsdCBleHBvcnQsIGZvciBjb21wYXRpYmlsaXR5XG4gICAgZGVmYXVsdExvZ2dlclsnZGVmYXVsdCddID0gZGVmYXVsdExvZ2dlcjtcblxuICAgIHJldHVybiBkZWZhdWx0TG9nZ2VyO1xufSkpO1xuIiwgIi8qKlxuICogR3JhcGhvbG9neSBVdGlsaXRpZXNcbiAqID09PT09PT09PT09PT09PT09PT09PVxuICpcbiAqIENvbGxlY3Rpb24gb2YgaGVscGZ1bCBmdW5jdGlvbnMgdXNlZCBieSB0aGUgaW1wbGVtZW50YXRpb24uXG4gKi9cblxuLyoqXG4gKiBPYmplY3QuYXNzaWduLWxpa2UgcG9seWZpbGwuXG4gKlxuICogQHBhcmFtICB7b2JqZWN0fSB0YXJnZXQgICAgICAgLSBGaXJzdCBvYmplY3QuXG4gKiBAcGFyYW0gIHtvYmplY3R9IFsuLi5vYmplY3RzXSAtIE9iamVjdHMgdG8gbWVyZ2UuXG4gKiBAcmV0dXJuIHtvYmplY3R9XG4gKi9cbmZ1bmN0aW9uIGFzc2lnblBvbHlmaWxsKCkge1xuICBjb25zdCB0YXJnZXQgPSBhcmd1bWVudHNbMF07XG5cbiAgZm9yIChsZXQgaSA9IDEsIGwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgaWYgKCFhcmd1bWVudHNbaV0pIGNvbnRpbnVlO1xuXG4gICAgZm9yIChjb25zdCBrIGluIGFyZ3VtZW50c1tpXSkgdGFyZ2V0W2tdID0gYXJndW1lbnRzW2ldW2tdO1xuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxubGV0IGFzc2lnbiA9IGFzc2lnblBvbHlmaWxsO1xuXG5pZiAodHlwZW9mIE9iamVjdC5hc3NpZ24gPT09ICdmdW5jdGlvbicpIGFzc2lnbiA9IE9iamVjdC5hc3NpZ247XG5cbmV4cG9ydCB7YXNzaWdufTtcblxuLyoqXG4gKiBGdW5jdGlvbiByZXR1cm5pbmcgdGhlIGZpcnN0IG1hdGNoaW5nIGVkZ2UgZm9yIGdpdmVuIHBhdGguXG4gKiBOb3RlOiB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IGNoZWNrIHRoZSBleGlzdGVuY2Ugb2Ygc291cmNlICYgdGFyZ2V0LiBUaGlzXG4gKiBtdXN0IGJlIHBlcmZvcm1lZCBieSB0aGUgY2FsbGVyLlxuICpcbiAqIEBwYXJhbSAge0dyYXBofSAgZ3JhcGggIC0gVGFyZ2V0IGdyYXBoLlxuICogQHBhcmFtICB7YW55fSAgICBzb3VyY2UgLSBTb3VyY2Ugbm9kZS5cbiAqIEBwYXJhbSAge2FueX0gICAgdGFyZ2V0IC0gVGFyZ2V0IG5vZGUuXG4gKiBAcGFyYW0gIHtzdHJpbmd9IHR5cGUgICAtIFR5cGUgb2YgdGhlIGVkZ2UgKG1peGVkLCBkaXJlY3RlZCBvciB1bmRpcmVjdGVkKS5cbiAqIEByZXR1cm4ge3N0cmluZ3xudWxsfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWF0Y2hpbmdFZGdlKGdyYXBoLCBzb3VyY2UsIHRhcmdldCwgdHlwZSkge1xuICBjb25zdCBzb3VyY2VEYXRhID0gZ3JhcGguX25vZGVzLmdldChzb3VyY2UpO1xuXG4gIGxldCBlZGdlID0gbnVsbDtcblxuICBpZiAoIXNvdXJjZURhdGEpIHJldHVybiBlZGdlO1xuXG4gIGlmICh0eXBlID09PSAnbWl4ZWQnKSB7XG4gICAgZWRnZSA9XG4gICAgICAoc291cmNlRGF0YS5vdXQgJiYgc291cmNlRGF0YS5vdXRbdGFyZ2V0XSkgfHxcbiAgICAgIChzb3VyY2VEYXRhLnVuZGlyZWN0ZWQgJiYgc291cmNlRGF0YS51bmRpcmVjdGVkW3RhcmdldF0pO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdkaXJlY3RlZCcpIHtcbiAgICBlZGdlID0gc291cmNlRGF0YS5vdXQgJiYgc291cmNlRGF0YS5vdXRbdGFyZ2V0XTtcbiAgfSBlbHNlIHtcbiAgICBlZGdlID0gc291cmNlRGF0YS51bmRpcmVjdGVkICYmIHNvdXJjZURhdGEudW5kaXJlY3RlZFt0YXJnZXRdO1xuICB9XG5cbiAgcmV0dXJuIGVkZ2U7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHZhbHVlIGlzIGEgR3JhcGggaW1wbGVtZW50YXRpb24gaW5zdGFuY2UuXG4gKlxuICogQHBhcmFtICB7bWl4ZWR9ICAgdmFsdWUgLSBUYXJnZXQgdmFsdWUuXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNHcmFwaCh2YWx1ZSkge1xuICByZXR1cm4gKFxuICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgIHR5cGVvZiB2YWx1ZS5hZGRVbmRpcmVjdGVkRWRnZVdpdGhLZXkgPT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlb2YgdmFsdWUuZHJvcE5vZGUgPT09ICdmdW5jdGlvbidcbiAgKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBwbGFpbiBvYmplY3QuXG4gKlxuICogQHBhcmFtICB7bWl4ZWR9ICAgdmFsdWUgLSBUYXJnZXQgdmFsdWUuXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZSkge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUuY29uc3RydWN0b3IgPT09IE9iamVjdFxuICApO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgaXMgZW1wdHkuXG4gKlxuICogQHBhcmFtICB7b2JqZWN0fSAgbyAtIFRhcmdldCBPYmplY3QuXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbXB0eShvKSB7XG4gIGxldCBrO1xuXG4gIGZvciAoayBpbiBvKSByZXR1cm4gZmFsc2U7XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIFwicHJpdmF0ZVwiIHByb3BlcnR5IGZvciB0aGUgZ2l2ZW4gbWVtYmVyIG5hbWUgYnkgY29uY2VhbGluZyBpdFxuICogdXNpbmcgdGhlIGBlbnVtZXJhYmxlYCBvcHRpb24uXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHRhcmdldCAtIFRhcmdldCBvYmplY3QuXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAgIC0gTWVtYmVyIG5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcml2YXRlUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB2YWx1ZSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICB2YWx1ZVxuICB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgcmVhZC1vbmx5IHByb3BlcnR5IGZvciB0aGUgZ2l2ZW4gbWVtYmVyIG5hbWUgJiB0aGUgZ2l2ZW4gZ2V0dGVyLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSAgIHRhcmdldCAtIFRhcmdldCBvYmplY3QuXG4gKiBAcGFyYW0ge3N0cmluZ30gICBuYW1lICAgLSBNZW1iZXIgbmFtZS5cbiAqIEBwYXJhbSB7bWl4ZWR9ICAgIHZhbHVlICAtIFRoZSBhdHRhY2hlZCBnZXR0ZXIgb3IgZml4ZWQgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWFkT25seVByb3BlcnR5KHRhcmdldCwgbmFtZSwgdmFsdWUpIHtcbiAgY29uc3QgZGVzY3JpcHRvciA9IHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9O1xuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBkZXNjcmlwdG9yLmdldCA9IHZhbHVlO1xuICB9IGVsc2Uge1xuICAgIGRlc2NyaXB0b3IudmFsdWUgPSB2YWx1ZTtcbiAgICBkZXNjcmlwdG9yLndyaXRhYmxlID0gZmFsc2U7XG4gIH1cblxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCBkZXNjcmlwdG9yKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGdpdmVuIG9iamVjdCBjb25zdGl0dXRlIHZhbGlkIGhpbnRzLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBoaW50cyAtIFRhcmdldCBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUhpbnRzKGhpbnRzKSB7XG4gIGlmICghaXNQbGFpbk9iamVjdChoaW50cykpIHJldHVybiBmYWxzZTtcblxuICBpZiAoaGludHMuYXR0cmlidXRlcyAmJiAhQXJyYXkuaXNBcnJheShoaW50cy5hdHRyaWJ1dGVzKSkgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiBnZW5lcmF0aW5nIGluY3JlbWVudGFsIGlkcyBmb3IgZWRnZXMuXG4gKlxuICogQHJldHVybiB7ZnVuY3Rpb259XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmNyZW1lbnRhbElkU3RhcnRpbmdGcm9tUmFuZG9tQnl0ZSgpIHtcbiAgbGV0IGkgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyNTYpICYgMHhmZjtcblxuICByZXR1cm4gKCkgPT4ge1xuICAgIHJldHVybiBpKys7XG4gIH07XG59XG4iLCAiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFIgPSB0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgPyBSZWZsZWN0IDogbnVsbFxudmFyIFJlZmxlY3RBcHBseSA9IFIgJiYgdHlwZW9mIFIuYXBwbHkgPT09ICdmdW5jdGlvbidcbiAgPyBSLmFwcGx5XG4gIDogZnVuY3Rpb24gUmVmbGVjdEFwcGx5KHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpIHtcbiAgICByZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwodGFyZ2V0LCByZWNlaXZlciwgYXJncyk7XG4gIH1cblxudmFyIFJlZmxlY3RPd25LZXlzXG5pZiAoUiAmJiB0eXBlb2YgUi5vd25LZXlzID09PSAnZnVuY3Rpb24nKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gUi5vd25LZXlzXG59IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KVxuICAgICAgLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkpO1xuICB9O1xufSBlbHNlIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gUHJvY2Vzc0VtaXRXYXJuaW5nKHdhcm5pbmcpIHtcbiAgaWYgKGNvbnNvbGUgJiYgY29uc29sZS53YXJuKSBjb25zb2xlLndhcm4od2FybmluZyk7XG59XG5cbnZhciBOdW1iZXJJc05hTiA9IE51bWJlci5pc05hTiB8fCBmdW5jdGlvbiBOdW1iZXJJc05hTih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xufVxuXG5mdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gIEV2ZW50RW1pdHRlci5pbml0LmNhbGwodGhpcyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50RW1pdHRlcjtcbm1vZHVsZS5leHBvcnRzLm9uY2UgPSBvbmNlO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50c0NvdW50ID0gMDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxudmFyIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxuZnVuY3Rpb24gY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcikge1xuICBpZiAodHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwibGlzdGVuZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBsaXN0ZW5lcik7XG4gIH1cbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEV2ZW50RW1pdHRlciwgJ2RlZmF1bHRNYXhMaXN0ZW5lcnMnLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24oYXJnKSB7XG4gICAgaWYgKHR5cGVvZiBhcmcgIT09ICdudW1iZXInIHx8IGFyZyA8IDAgfHwgTnVtYmVySXNOYU4oYXJnKSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcImRlZmF1bHRNYXhMaXN0ZW5lcnNcIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgYXJnICsgJy4nKTtcbiAgICB9XG4gICAgZGVmYXVsdE1heExpc3RlbmVycyA9IGFyZztcbiAgfVxufSk7XG5cbkV2ZW50RW1pdHRlci5pbml0ID0gZnVuY3Rpb24oKSB7XG5cbiAgaWYgKHRoaXMuX2V2ZW50cyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLl9ldmVudHMgPT09IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKSB7XG4gICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gIH1cblxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSB0aGlzLl9tYXhMaXN0ZW5lcnMgfHwgdW5kZWZpbmVkO1xufTtcblxuLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzXG4vLyB0aGF0IHRvIGJlIGluY3JlYXNlZC4gU2V0IHRvIHplcm8gZm9yIHVubGltaXRlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gc2V0TWF4TGlzdGVuZXJzKG4pIHtcbiAgaWYgKHR5cGVvZiBuICE9PSAnbnVtYmVyJyB8fCBuIDwgMCB8fCBOdW1iZXJJc05hTihuKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJuXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIG4gKyAnLicpO1xuICB9XG4gIHRoaXMuX21heExpc3RlbmVycyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuZnVuY3Rpb24gX2dldE1heExpc3RlbmVycyh0aGF0KSB7XG4gIGlmICh0aGF0Ll9tYXhMaXN0ZW5lcnMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIHJldHVybiB0aGF0Ll9tYXhMaXN0ZW5lcnM7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gZ2V0TWF4TGlzdGVuZXJzKCkge1xuICByZXR1cm4gX2dldE1heExpc3RlbmVycyh0aGlzKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uIGVtaXQodHlwZSkge1xuICB2YXIgYXJncyA9IFtdO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgYXJncy5wdXNoKGFyZ3VtZW50c1tpXSk7XG4gIHZhciBkb0Vycm9yID0gKHR5cGUgPT09ICdlcnJvcicpO1xuXG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZClcbiAgICBkb0Vycm9yID0gKGRvRXJyb3IgJiYgZXZlbnRzLmVycm9yID09PSB1bmRlZmluZWQpO1xuICBlbHNlIGlmICghZG9FcnJvcilcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gJ2Vycm9yJyBldmVudCBsaXN0ZW5lciB0aGVuIHRocm93LlxuICBpZiAoZG9FcnJvcikge1xuICAgIHZhciBlcjtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKVxuICAgICAgZXIgPSBhcmdzWzBdO1xuICAgIGlmIChlciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAvLyBOb3RlOiBUaGUgY29tbWVudHMgb24gdGhlIGB0aHJvd2AgbGluZXMgYXJlIGludGVudGlvbmFsLCB0aGV5IHNob3dcbiAgICAgIC8vIHVwIGluIE5vZGUncyBvdXRwdXQgaWYgdGhpcyByZXN1bHRzIGluIGFuIHVuaGFuZGxlZCBleGNlcHRpb24uXG4gICAgICB0aHJvdyBlcjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgICB9XG4gICAgLy8gQXQgbGVhc3QgZ2l2ZSBzb21lIGtpbmQgb2YgY29udGV4dCB0byB0aGUgdXNlclxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1VuaGFuZGxlZCBlcnJvci4nICsgKGVyID8gJyAoJyArIGVyLm1lc3NhZ2UgKyAnKScgOiAnJykpO1xuICAgIGVyci5jb250ZXh0ID0gZXI7XG4gICAgdGhyb3cgZXJyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICB9XG5cbiAgdmFyIGhhbmRsZXIgPSBldmVudHNbdHlwZV07XG5cbiAgaWYgKGhhbmRsZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgUmVmbGVjdEFwcGx5KGhhbmRsZXIsIHRoaXMsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIHZhciBsZW4gPSBoYW5kbGVyLmxlbmd0aDtcbiAgICB2YXIgbGlzdGVuZXJzID0gYXJyYXlDbG9uZShoYW5kbGVyLCBsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICBSZWZsZWN0QXBwbHkobGlzdGVuZXJzW2ldLCB0aGlzLCBhcmdzKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZnVuY3Rpb24gX2FkZExpc3RlbmVyKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIsIHByZXBlbmQpIHtcbiAgdmFyIG07XG4gIHZhciBldmVudHM7XG4gIHZhciBleGlzdGluZztcblxuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRhcmdldC5fZXZlbnRzQ291bnQgPSAwO1xuICB9IGVsc2Uge1xuICAgIC8vIFRvIGF2b2lkIHJlY3Vyc2lvbiBpbiB0aGUgY2FzZSB0aGF0IHR5cGUgPT09IFwibmV3TGlzdGVuZXJcIiEgQmVmb3JlXG4gICAgLy8gYWRkaW5nIGl0IHRvIHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgXCJuZXdMaXN0ZW5lclwiLlxuICAgIGlmIChldmVudHMubmV3TGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFyZ2V0LmVtaXQoJ25ld0xpc3RlbmVyJywgdHlwZSxcbiAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyID8gbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7XG5cbiAgICAgIC8vIFJlLWFzc2lnbiBgZXZlbnRzYCBiZWNhdXNlIGEgbmV3TGlzdGVuZXIgaGFuZGxlciBjb3VsZCBoYXZlIGNhdXNlZCB0aGVcbiAgICAgIC8vIHRoaXMuX2V2ZW50cyB0byBiZSBhc3NpZ25lZCB0byBhIG5ldyBvYmplY3RcbiAgICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICAgIH1cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXTtcbiAgfVxuXG4gIGlmIChleGlzdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugb2Ygb25lIGxpc3RlbmVyLiBEb24ndCBuZWVkIHRoZSBleHRyYSBhcnJheSBvYmplY3QuXG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPSBsaXN0ZW5lcjtcbiAgICArK3RhcmdldC5fZXZlbnRzQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gQWRkaW5nIHRoZSBzZWNvbmQgZWxlbWVudCwgbmVlZCB0byBjaGFuZ2UgdG8gYXJyYXkuXG4gICAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9XG4gICAgICAgIHByZXBlbmQgPyBbbGlzdGVuZXIsIGV4aXN0aW5nXSA6IFtleGlzdGluZywgbGlzdGVuZXJdO1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLlxuICAgIH0gZWxzZSBpZiAocHJlcGVuZCkge1xuICAgICAgZXhpc3RpbmcudW5zaGlmdChsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0aW5nLnB1c2gobGlzdGVuZXIpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBsaXN0ZW5lciBsZWFrXG4gICAgbSA9IF9nZXRNYXhMaXN0ZW5lcnModGFyZ2V0KTtcbiAgICBpZiAobSA+IDAgJiYgZXhpc3RpbmcubGVuZ3RoID4gbSAmJiAhZXhpc3Rpbmcud2FybmVkKSB7XG4gICAgICBleGlzdGluZy53YXJuZWQgPSB0cnVlO1xuICAgICAgLy8gTm8gZXJyb3IgY29kZSBmb3IgdGhpcyBzaW5jZSBpdCBpcyBhIFdhcm5pbmdcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgdmFyIHcgPSBuZXcgRXJyb3IoJ1Bvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmxlbmd0aCArICcgJyArIFN0cmluZyh0eXBlKSArICcgbGlzdGVuZXJzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5jcmVhc2UgbGltaXQnKTtcbiAgICAgIHcubmFtZSA9ICdNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmcnO1xuICAgICAgdy5lbWl0dGVyID0gdGFyZ2V0O1xuICAgICAgdy50eXBlID0gdHlwZTtcbiAgICAgIHcuY291bnQgPSBleGlzdGluZy5sZW5ndGg7XG4gICAgICBQcm9jZXNzRW1pdFdhcm5pbmcodyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IGZ1bmN0aW9uIGFkZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub24gPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCB0cnVlKTtcbiAgICB9O1xuXG5mdW5jdGlvbiBvbmNlV3JhcHBlcigpIHtcbiAgaWYgKCF0aGlzLmZpcmVkKSB7XG4gICAgdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLCB0aGlzLndyYXBGbik7XG4gICAgdGhpcy5maXJlZCA9IHRydWU7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5jYWxsKHRoaXMudGFyZ2V0KTtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCwgYXJndW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfb25jZVdyYXAodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lcikge1xuICB2YXIgc3RhdGUgPSB7IGZpcmVkOiBmYWxzZSwgd3JhcEZuOiB1bmRlZmluZWQsIHRhcmdldDogdGFyZ2V0LCB0eXBlOiB0eXBlLCBsaXN0ZW5lcjogbGlzdGVuZXIgfTtcbiAgdmFyIHdyYXBwZWQgPSBvbmNlV3JhcHBlci5iaW5kKHN0YXRlKTtcbiAgd3JhcHBlZC5saXN0ZW5lciA9IGxpc3RlbmVyO1xuICBzdGF0ZS53cmFwRm4gPSB3cmFwcGVkO1xuICByZXR1cm4gd3JhcHBlZDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbmNlID0gZnVuY3Rpb24gb25jZSh0eXBlLCBsaXN0ZW5lcikge1xuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgdGhpcy5vbih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRPbmNlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgICAgdGhpcy5wcmVwZW5kTGlzdGVuZXIodHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4vLyBFbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWYgYW5kIG9ubHkgaWYgdGhlIGxpc3RlbmVyIHdhcyByZW1vdmVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHZhciBsaXN0LCBldmVudHMsIHBvc2l0aW9uLCBpLCBvcmlnaW5hbExpc3RlbmVyO1xuXG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgbGlzdCA9IGV2ZW50c1t0eXBlXTtcbiAgICAgIGlmIChsaXN0ID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBpZiAobGlzdCA9PT0gbGlzdGVuZXIgfHwgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3QubGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBsaXN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHBvc2l0aW9uID0gLTE7XG5cbiAgICAgICAgZm9yIChpID0gbGlzdC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGlmIChsaXN0W2ldID09PSBsaXN0ZW5lciB8fCBsaXN0W2ldLmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICAgICAgb3JpZ2luYWxMaXN0ZW5lciA9IGxpc3RbaV0ubGlzdGVuZXI7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9zaXRpb24gPCAwKVxuICAgICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gMClcbiAgICAgICAgICBsaXN0LnNoaWZ0KCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHNwbGljZU9uZShsaXN0LCBwb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlzdC5sZW5ndGggPT09IDEpXG4gICAgICAgICAgZXZlbnRzW3R5cGVdID0gbGlzdFswXTtcblxuICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIG9yaWdpbmFsTGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9mZiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cbiAgICBmdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnModHlwZSkge1xuICAgICAgdmFyIGxpc3RlbmVycywgZXZlbnRzLCBpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0XG4gICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudHNbdHlwZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICAvLyBlbWl0IHJlbW92ZUxpc3RlbmVyIGZvciBhbGwgbGlzdGVuZXJzIG9uIGFsbCBldmVudHNcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZXZlbnRzKTtcbiAgICAgICAgdmFyIGtleTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgIGlmIChrZXkgPT09ICdyZW1vdmVMaXN0ZW5lcicpIGNvbnRpbnVlO1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3JlbW92ZUxpc3RlbmVyJyk7XG4gICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIGxpc3RlbmVycyA9IGV2ZW50c1t0eXBlXTtcblxuICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lcnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpO1xuICAgICAgfSBlbHNlIGlmIChsaXN0ZW5lcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBMSUZPIG9yZGVyXG4gICAgICAgIGZvciAoaSA9IGxpc3RlbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5mdW5jdGlvbiBfbGlzdGVuZXJzKHRhcmdldCwgdHlwZSwgdW53cmFwKSB7XG4gIHZhciBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuICBpZiAoZXZsaXN0ZW5lciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpXG4gICAgcmV0dXJuIHVud3JhcCA/IFtldmxpc3RlbmVyLmxpc3RlbmVyIHx8IGV2bGlzdGVuZXJdIDogW2V2bGlzdGVuZXJdO1xuXG4gIHJldHVybiB1bndyYXAgP1xuICAgIHVud3JhcExpc3RlbmVycyhldmxpc3RlbmVyKSA6IGFycmF5Q2xvbmUoZXZsaXN0ZW5lciwgZXZsaXN0ZW5lci5sZW5ndGgpO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uIGxpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIHRydWUpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yYXdMaXN0ZW5lcnMgPSBmdW5jdGlvbiByYXdMaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uKGVtaXR0ZXIsIHR5cGUpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLmxpc3RlbmVyQ291bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZW1pdHRlci5saXN0ZW5lckNvdW50KHR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsaXN0ZW5lckNvdW50LmNhbGwoZW1pdHRlciwgdHlwZSk7XG4gIH1cbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJDb3VudCA9IGxpc3RlbmVyQ291bnQ7XG5mdW5jdGlvbiBsaXN0ZW5lckNvdW50KHR5cGUpIHtcbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcblxuICAgIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChldmxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBldmxpc3RlbmVyLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5ldmVudE5hbWVzID0gZnVuY3Rpb24gZXZlbnROYW1lcygpIHtcbiAgcmV0dXJuIHRoaXMuX2V2ZW50c0NvdW50ID4gMCA/IFJlZmxlY3RPd25LZXlzKHRoaXMuX2V2ZW50cykgOiBbXTtcbn07XG5cbmZ1bmN0aW9uIGFycmF5Q2xvbmUoYXJyLCBuKSB7XG4gIHZhciBjb3B5ID0gbmV3IEFycmF5KG4pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSlcbiAgICBjb3B5W2ldID0gYXJyW2ldO1xuICByZXR1cm4gY29weTtcbn1cblxuZnVuY3Rpb24gc3BsaWNlT25lKGxpc3QsIGluZGV4KSB7XG4gIGZvciAoOyBpbmRleCArIDEgPCBsaXN0Lmxlbmd0aDsgaW5kZXgrKylcbiAgICBsaXN0W2luZGV4XSA9IGxpc3RbaW5kZXggKyAxXTtcbiAgbGlzdC5wb3AoKTtcbn1cblxuZnVuY3Rpb24gdW53cmFwTGlzdGVuZXJzKGFycikge1xuICB2YXIgcmV0ID0gbmV3IEFycmF5KGFyci5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHJldC5sZW5ndGg7ICsraSkge1xuICAgIHJldFtpXSA9IGFycltpXS5saXN0ZW5lciB8fCBhcnJbaV07XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb25jZShlbWl0dGVyLCBuYW1lKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgZnVuY3Rpb24gZXJyb3JMaXN0ZW5lcihlcnIpIHtcbiAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIobmFtZSwgcmVzb2x2ZXIpO1xuICAgICAgcmVqZWN0KGVycik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZXIoKSB7XG4gICAgICBpZiAodHlwZW9mIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBlcnJvckxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgICB9O1xuXG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIHJlc29sdmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgaWYgKG5hbWUgIT09ICdlcnJvcicpIHtcbiAgICAgIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGVycm9yTGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBoYW5kbGVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgJ2Vycm9yJywgaGFuZGxlciwgZmxhZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCBsaXN0ZW5lciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgIGVtaXR0ZXIub25jZShuYW1lLCBsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVtaXR0ZXIub24obmFtZSwgbGlzdGVuZXIpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gRXZlbnRUYXJnZXQgZG9lcyBub3QgaGF2ZSBgZXJyb3JgIGV2ZW50IHNlbWFudGljcyBsaWtlIE5vZGVcbiAgICAvLyBFdmVudEVtaXR0ZXJzLCB3ZSBkbyBub3QgbGlzdGVuIGZvciBgZXJyb3JgIGV2ZW50cyBoZXJlLlxuICAgIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBmdW5jdGlvbiB3cmFwTGlzdGVuZXIoYXJnKSB7XG4gICAgICAvLyBJRSBkb2VzIG5vdCBoYXZlIGJ1aWx0aW4gYHsgb25jZTogdHJ1ZSB9YCBzdXBwb3J0IHNvIHdlXG4gICAgICAvLyBoYXZlIHRvIGRvIGl0IG1hbnVhbGx5LlxuICAgICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIHdyYXBMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICBsaXN0ZW5lcihhcmcpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImVtaXR0ZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgZW1pdHRlcik7XG4gIH1cbn1cbiIsICIvKipcbiAqIE9ibGl0ZXJhdG9yIEl0ZXJhdG9yIENsYXNzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBTaW1wbGUgY2xhc3MgcmVwcmVzZW50aW5nIHRoZSBsaWJyYXJ5J3MgaXRlcmF0b3JzLlxuICovXG5cbi8qKlxuICogSXRlcmF0b3IgY2xhc3MuXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBuZXh0IC0gTmV4dCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gSXRlcmF0b3IobmV4dCkge1xuICBpZiAodHlwZW9mIG5leHQgIT09ICdmdW5jdGlvbicpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdvYmxpdGVyYXRvci9pdGVyYXRvcjogZXhwZWN0aW5nIGEgZnVuY3Rpb24hJyk7XG5cbiAgdGhpcy5uZXh0ID0gbmV4dDtcbn1cblxuLyoqXG4gKiBJZiBzeW1ib2xzIGFyZSBzdXBwb3J0ZWQsIHdlIGFkZCBgbmV4dGAgdG8gYFN5bWJvbC5pdGVyYXRvcmAuXG4gKi9cbmlmICh0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJylcbiAgSXRlcmF0b3IucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbi8qKlxuICogUmV0dXJuaW5nIGFuIGl0ZXJhdG9yIG9mIHRoZSBnaXZlbiB2YWx1ZXMuXG4gKlxuICogQHBhcmFtICB7YW55Li4ufSB2YWx1ZXMgLSBWYWx1ZXMuXG4gKiBAcmV0dXJuIHtJdGVyYXRvcn1cbiAqL1xuSXRlcmF0b3Iub2YgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBhcmdzID0gYXJndW1lbnRzLFxuICAgIGwgPSBhcmdzLmxlbmd0aCxcbiAgICBpID0gMDtcblxuICByZXR1cm4gbmV3IEl0ZXJhdG9yKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoaSA+PSBsKSByZXR1cm4ge2RvbmU6IHRydWV9O1xuXG4gICAgcmV0dXJuIHtkb25lOiBmYWxzZSwgdmFsdWU6IGFyZ3NbaSsrXX07XG4gIH0pO1xufTtcblxuLyoqXG4gKiBSZXR1cm5pbmcgYW4gZW1wdHkgaXRlcmF0b3IuXG4gKlxuICogQHJldHVybiB7SXRlcmF0b3J9XG4gKi9cbkl0ZXJhdG9yLmVtcHR5ID0gZnVuY3Rpb24gKCkge1xuICB2YXIgaXRlcmF0b3IgPSBuZXcgSXRlcmF0b3IoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB7ZG9uZTogdHJ1ZX07XG4gIH0pO1xuXG4gIHJldHVybiBpdGVyYXRvcjtcbn07XG5cbi8qKlxuICogUmV0dXJuaW5nIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGdpdmVuIGluZGV4ZWQgc2VxdWVuY2UuXG4gKlxuICogQHBhcmFtICB7c3RyaW5nfEFycmF5fSBzZXF1ZW5jZSAtIFRhcmdldCBzZXF1ZW5jZS5cbiAqIEByZXR1cm4ge0l0ZXJhdG9yfVxuICovXG5JdGVyYXRvci5mcm9tU2VxdWVuY2UgPSBmdW5jdGlvbiAoc2VxdWVuY2UpIHtcbiAgdmFyIGkgPSAwLFxuICAgIGwgPSBzZXF1ZW5jZS5sZW5ndGg7XG5cbiAgcmV0dXJuIG5ldyBJdGVyYXRvcihmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGkgPj0gbCkgcmV0dXJuIHtkb25lOiB0cnVlfTtcblxuICAgIHJldHVybiB7ZG9uZTogZmFsc2UsIHZhbHVlOiBzZXF1ZW5jZVtpKytdfTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIFJldHVybmluZyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhbiBpdGVyYXRvci5cbiAqXG4gKiBAcGFyYW0gIHthbnl9IHZhbHVlIC0gVmFsdWUuXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5JdGVyYXRvci5pcyA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBJdGVyYXRvcikgcmV0dXJuIHRydWU7XG5cbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICB0eXBlb2YgdmFsdWUubmV4dCA9PT0gJ2Z1bmN0aW9uJ1xuICApO1xufTtcblxuLyoqXG4gKiBFeHBvcnRpbmcuXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gSXRlcmF0b3I7XG4iLCAiZXhwb3J0cy5BUlJBWV9CVUZGRVJfU1VQUE9SVCA9IHR5cGVvZiBBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCc7XG5leHBvcnRzLlNZTUJPTF9TVVBQT1JUID0gdHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCc7XG4iLCAiLyoqXG4gKiBPYmxpdGVyYXRvciBJdGVyIEZ1bmN0aW9uXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PVxuICpcbiAqIEZ1bmN0aW9uIGNvZXJjaW5nIHZhbHVlcyB0byBhbiBpdGVyYXRvci4gSXQgY2FuIGJlIHF1aXRlIHVzZWZ1bCB3aGVuIG5lZWRpbmdcbiAqIHRvIGhhbmRsZSBpdGVyYWJsZXMgYW5kIGl0ZXJhdG9ycyB0aGUgc2FtZSB3YXkuXG4gKi9cbnZhciBJdGVyYXRvciA9IHJlcXVpcmUoJy4vaXRlcmF0b3IuanMnKTtcbnZhciBzdXBwb3J0ID0gcmVxdWlyZSgnLi9zdXBwb3J0LmpzJyk7XG5cbnZhciBBUlJBWV9CVUZGRVJfU1VQUE9SVCA9IHN1cHBvcnQuQVJSQVlfQlVGRkVSX1NVUFBPUlQ7XG52YXIgU1lNQk9MX1NVUFBPUlQgPSBzdXBwb3J0LlNZTUJPTF9TVVBQT1JUO1xuXG5mdW5jdGlvbiBpdGVyT3JOdWxsKHRhcmdldCkge1xuICAvLyBJbmRleGVkIHNlcXVlbmNlXG4gIGlmIChcbiAgICB0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJyB8fFxuICAgIEFycmF5LmlzQXJyYXkodGFyZ2V0KSB8fFxuICAgIChBUlJBWV9CVUZGRVJfU1VQUE9SVCAmJiBBcnJheUJ1ZmZlci5pc1ZpZXcodGFyZ2V0KSlcbiAgKVxuICAgIHJldHVybiBJdGVyYXRvci5mcm9tU2VxdWVuY2UodGFyZ2V0KTtcblxuICAvLyBJbnZhbGlkIHZhbHVlXG4gIGlmICh0eXBlb2YgdGFyZ2V0ICE9PSAnb2JqZWN0JyB8fCB0YXJnZXQgPT09IG51bGwpIHJldHVybiBudWxsO1xuXG4gIC8vIEl0ZXJhYmxlXG4gIGlmIChTWU1CT0xfU1VQUE9SVCAmJiB0eXBlb2YgdGFyZ2V0W1N5bWJvbC5pdGVyYXRvcl0gPT09ICdmdW5jdGlvbicpXG4gICAgcmV0dXJuIHRhcmdldFtTeW1ib2wuaXRlcmF0b3JdKCk7XG5cbiAgLy8gSXRlcmF0b3IgZHVjay10eXBpbmdcbiAgaWYgKHR5cGVvZiB0YXJnZXQubmV4dCA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHRhcmdldDtcblxuICAvLyBJbnZhbGlkIG9iamVjdFxuICByZXR1cm4gbnVsbDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpdGVyKHRhcmdldCkge1xuICB2YXIgaXRlcmF0b3IgPSBpdGVyT3JOdWxsKHRhcmdldCk7XG5cbiAgaWYgKCFpdGVyYXRvcilcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnb2JsaXRlcmF0b3I6IHRhcmdldCBpcyBub3QgaXRlcmFibGUgbm9yIGEgdmFsaWQgaXRlcmF0b3IuJ1xuICAgICk7XG5cbiAgcmV0dXJuIGl0ZXJhdG9yO1xufTtcbiIsICIvKiBlc2xpbnQgbm8tY29uc3RhbnQtY29uZGl0aW9uOiAwICovXG4vKipcbiAqIE9ibGl0ZXJhdG9yIFRha2UgRnVuY3Rpb25cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKlxuICogRnVuY3Rpb24gdGFraW5nIG4gb3IgZXZlcnkgdmFsdWUgb2YgdGhlIGdpdmVuIGl0ZXJhdG9yIGFuZCByZXR1cm5zIHRoZW1cbiAqIGludG8gYW4gYXJyYXkuXG4gKi9cbnZhciBpdGVyID0gcmVxdWlyZSgnLi9pdGVyLmpzJyk7XG5cbi8qKlxuICogVGFrZS5cbiAqXG4gKiBAcGFyYW0gIHtJdGVyYWJsZX0gaXRlcmFibGUgLSBUYXJnZXQgaXRlcmFibGUuXG4gKiBAcGFyYW0gIHtudW1iZXJ9ICAgW25dICAgICAgLSBPcHRpb25hbCBudW1iZXIgb2YgaXRlbXMgdG8gdGFrZS5cbiAqIEByZXR1cm4ge2FycmF5fVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHRha2UoaXRlcmFibGUsIG4pIHtcbiAgdmFyIGwgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IG4gOiBJbmZpbml0eSxcbiAgICBhcnJheSA9IGwgIT09IEluZmluaXR5ID8gbmV3IEFycmF5KGwpIDogW10sXG4gICAgc3RlcCxcbiAgICBpID0gMDtcblxuICB2YXIgaXRlcmF0b3IgPSBpdGVyKGl0ZXJhYmxlKTtcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGlmIChpID09PSBsKSByZXR1cm4gYXJyYXk7XG5cbiAgICBzdGVwID0gaXRlcmF0b3IubmV4dCgpO1xuXG4gICAgaWYgKHN0ZXAuZG9uZSkge1xuICAgICAgaWYgKGkgIT09IG4pIGFycmF5Lmxlbmd0aCA9IGk7XG5cbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG5cbiAgICBhcnJheVtpKytdID0gc3RlcC52YWx1ZTtcbiAgfVxufTtcbiIsICIvKipcbiAqIEdyYXBob2xvZ3kgQ3VzdG9tIEVycm9yc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PVxuICpcbiAqIERlZmluaW5nIGN1c3RvbSBlcnJvcnMgZm9yIGVhc2Ugb2YgdXNlICYgZWFzeSB1bml0IHRlc3RzIGFjcm9zc1xuICogaW1wbGVtZW50YXRpb25zIChub3JtYWxpemVkIHR5cG9sb2d5IHJhdGhlciB0aGFuIHJlbHlpbmcgb24gZXJyb3JcbiAqIG1lc3NhZ2VzIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvcnJlY3QgZXJyb3Igd2FzIGZvdW5kKS5cbiAqL1xuZXhwb3J0IGNsYXNzIEdyYXBoRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubmFtZSA9ICdHcmFwaEVycm9yJztcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvciBleHRlbmRzIEdyYXBoRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0ludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yJztcblxuICAgIC8vIFRoaXMgaXMgVjggc3BlY2lmaWMgdG8gZW5oYW5jZSBzdGFjayByZWFkYWJpbGl0eVxuICAgIGlmICh0eXBlb2YgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UgPT09ICdmdW5jdGlvbicpXG4gICAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yXG4gICAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb3RGb3VuZEdyYXBoRXJyb3IgZXh0ZW5kcyBHcmFwaEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdOb3RGb3VuZEdyYXBoRXJyb3InO1xuXG4gICAgLy8gVGhpcyBpcyBWOCBzcGVjaWZpYyB0byBlbmhhbmNlIHN0YWNrIHJlYWRhYmlsaXR5XG4gICAgaWYgKHR5cGVvZiBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIE5vdEZvdW5kR3JhcGhFcnJvci5wcm90b3R5cGUuY29uc3RydWN0b3IpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVc2FnZUdyYXBoRXJyb3IgZXh0ZW5kcyBHcmFwaEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdVc2FnZUdyYXBoRXJyb3InO1xuXG4gICAgLy8gVGhpcyBpcyBWOCBzcGVjaWZpYyB0byBlbmhhbmNlIHN0YWNrIHJlYWRhYmlsaXR5XG4gICAgaWYgKHR5cGVvZiBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIFVzYWdlR3JhcGhFcnJvci5wcm90b3R5cGUuY29uc3RydWN0b3IpO1xuICB9XG59XG4iLCAiLyoqXG4gKiBHcmFwaG9sb2d5IEludGVybmFsIERhdGEgQ2xhc3Nlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKlxuICogSW50ZXJuYWwgY2xhc3NlcyBob3BlZnVsbHkgcmVkdWNlZCB0byBzdHJ1Y3RzIGJ5IGVuZ2luZXMgJiBzdG9yaW5nXG4gKiBuZWNlc3NhcnkgaW5mb3JtYXRpb24gZm9yIG5vZGVzICYgZWRnZXMuXG4gKlxuICogTm90ZSB0aGF0IHRob3NlIGNsYXNzZXMgZG9uJ3QgcmVseSBvbiB0aGUgYGNsYXNzYCBrZXl3b3JkIHRvIGF2b2lkIHNvbWVcbiAqIGNydWZ0IGludHJvZHVjZWQgYnkgbW9zdCBvZiBFUzIwMTUgdHJhbnNwaWxlcnMuXG4gKi9cblxuLyoqXG4gKiBNaXhlZE5vZGVEYXRhIGNsYXNzLlxuICpcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyAgICAgLSBUaGUgbm9kZSdzIGtleS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBhdHRyaWJ1dGVzIC0gTm9kZSdzIGF0dHJpYnV0ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBNaXhlZE5vZGVEYXRhKGtleSwgYXR0cmlidXRlcykge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHRoaXMua2V5ID0ga2V5O1xuICB0aGlzLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuXG4gIHRoaXMuY2xlYXIoKTtcbn1cblxuTWl4ZWROb2RlRGF0YS5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIERlZ3JlZXNcbiAgdGhpcy5pbkRlZ3JlZSA9IDA7XG4gIHRoaXMub3V0RGVncmVlID0gMDtcbiAgdGhpcy51bmRpcmVjdGVkRGVncmVlID0gMDtcbiAgdGhpcy5kaXJlY3RlZFNlbGZMb29wcyA9IDA7XG4gIHRoaXMudW5kaXJlY3RlZFNlbGZMb29wcyA9IDA7XG5cbiAgLy8gSW5kaWNlc1xuICB0aGlzLmluID0ge307XG4gIHRoaXMub3V0ID0ge307XG4gIHRoaXMudW5kaXJlY3RlZCA9IHt9O1xufTtcblxuLyoqXG4gKiBEaXJlY3RlZE5vZGVEYXRhIGNsYXNzLlxuICpcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyAgICAgLSBUaGUgbm9kZSdzIGtleS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBhdHRyaWJ1dGVzIC0gTm9kZSdzIGF0dHJpYnV0ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEaXJlY3RlZE5vZGVEYXRhKGtleSwgYXR0cmlidXRlcykge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHRoaXMua2V5ID0ga2V5O1xuICB0aGlzLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuXG4gIHRoaXMuY2xlYXIoKTtcbn1cblxuRGlyZWN0ZWROb2RlRGF0YS5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIERlZ3JlZXNcbiAgdGhpcy5pbkRlZ3JlZSA9IDA7XG4gIHRoaXMub3V0RGVncmVlID0gMDtcbiAgdGhpcy5kaXJlY3RlZFNlbGZMb29wcyA9IDA7XG5cbiAgLy8gSW5kaWNlc1xuICB0aGlzLmluID0ge307XG4gIHRoaXMub3V0ID0ge307XG59O1xuXG5EaXJlY3RlZE5vZGVEYXRhLnByb3RvdHlwZS51cGdyYWRlVG9NaXhlZCA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gRGVncmVlc1xuICB0aGlzLnVuZGlyZWN0ZWREZWdyZWUgPSAwO1xuICB0aGlzLnVuZGlyZWN0ZWRTZWxmTG9vcHMgPSAwO1xuXG4gIC8vIEluZGljZXNcbiAgdGhpcy51bmRpcmVjdGVkID0ge307XG59O1xuXG4vKipcbiAqIFVuZGlyZWN0ZWROb2RlRGF0YSBjbGFzcy5cbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgICAgIC0gVGhlIG5vZGUncyBrZXkuXG4gKiBAcGFyYW0ge29iamVjdH0gYXR0cmlidXRlcyAtIE5vZGUncyBhdHRyaWJ1dGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gVW5kaXJlY3RlZE5vZGVEYXRhKGtleSwgYXR0cmlidXRlcykge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHRoaXMua2V5ID0ga2V5O1xuICB0aGlzLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuXG4gIHRoaXMuY2xlYXIoKTtcbn1cblxuVW5kaXJlY3RlZE5vZGVEYXRhLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gRGVncmVlc1xuICB0aGlzLnVuZGlyZWN0ZWREZWdyZWUgPSAwO1xuICB0aGlzLnVuZGlyZWN0ZWRTZWxmTG9vcHMgPSAwO1xuXG4gIC8vIEluZGljZXNcbiAgdGhpcy51bmRpcmVjdGVkID0ge307XG59O1xuXG5VbmRpcmVjdGVkTm9kZURhdGEucHJvdG90eXBlLnVwZ3JhZGVUb01peGVkID0gZnVuY3Rpb24gKCkge1xuICAvLyBEZWdyZWVzXG4gIHRoaXMuaW5EZWdyZWUgPSAwO1xuICB0aGlzLm91dERlZ3JlZSA9IDA7XG4gIHRoaXMuZGlyZWN0ZWRTZWxmTG9vcHMgPSAwO1xuXG4gIC8vIEluZGljZXNcbiAgdGhpcy5pbiA9IHt9O1xuICB0aGlzLm91dCA9IHt9O1xufTtcblxuLyoqXG4gKiBFZGdlRGF0YSBjbGFzcy5cbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gdW5kaXJlY3RlZCAgIC0gV2hldGhlciB0aGUgZWRnZSBpcyB1bmRpcmVjdGVkLlxuICogQHBhcmFtIHtzdHJpbmd9ICBzdHJpbmcgICAgICAgLSBUaGUgZWRnZSdzIGtleS5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgc291cmNlICAgICAgIC0gU291cmNlIG9mIHRoZSBlZGdlLlxuICogQHBhcmFtIHtzdHJpbmd9ICB0YXJnZXQgICAgICAgLSBUYXJnZXQgb2YgdGhlIGVkZ2UuXG4gKiBAcGFyYW0ge29iamVjdH0gIGF0dHJpYnV0ZXMgICAtIEVkZ2UncyBhdHRyaWJ1dGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRWRnZURhdGEodW5kaXJlY3RlZCwga2V5LCBzb3VyY2UsIHRhcmdldCwgYXR0cmlidXRlcykge1xuICAvLyBBdHRyaWJ1dGVzXG4gIHRoaXMua2V5ID0ga2V5O1xuICB0aGlzLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuICB0aGlzLnVuZGlyZWN0ZWQgPSB1bmRpcmVjdGVkO1xuXG4gIC8vIEV4dHJlbWl0aWVzXG4gIHRoaXMuc291cmNlID0gc291cmNlO1xuICB0aGlzLnRhcmdldCA9IHRhcmdldDtcbn1cbiIsICIvKipcbiAqIEdyYXBob2xvZ3kgSW5kZXhlcyBGdW5jdGlvbnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKlxuICogQnVuY2ggb2YgZnVuY3Rpb25zIHVzZWQgdG8gY29tcHV0ZSBvciBjbGVhciBpbmRleGVzLlxuICovXG5cbi8qKlxuICogRnVuY3Rpb24gdXBkYXRpbmcgdGhlICdzdHJ1Y3R1cmUnIGluZGV4IHdpdGggdGhlIGdpdmVuIGVkZ2UncyBkYXRhLlxuICogTm90ZSB0aGF0IGluIHRoZSBjYXNlIG9mIHRoZSBtdWx0aSBncmFwaCwgcmVsYXRlZCBlZGdlcyBhcmUgc3RvcmVkIGluIGFcbiAqIHNldCB0aGF0IGlzIHRoZSBzYW1lIGZvciBBIC0+IEIgJiBCIDwtIEEuXG4gKlxuICogQHBhcmFtIHtHcmFwaH0gICAgZ3JhcGggICAgICAtIFRhcmdldCBHcmFwaCBpbnN0YW5jZS5cbiAqIEBwYXJhbSB7RWRnZURhdGF9IGVkZ2VEYXRhICAgLSBBZGRlZCBlZGdlJ3MgZGF0YS5cbiAqIEBwYXJhbSB7Tm9kZURhdGF9IHNvdXJjZURhdGEgLSBTb3VyY2Ugbm9kZSdzIGRhdGEuXG4gKiBAcGFyYW0ge05vZGVEYXRhfSB0YXJnZXREYXRhIC0gVGFyZ2V0IG5vZGUncyBkYXRhLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlU3RydWN0dXJlSW5kZXgoXG4gIGdyYXBoLFxuICB1bmRpcmVjdGVkLFxuICBlZGdlRGF0YSxcbiAgc291cmNlLFxuICB0YXJnZXQsXG4gIHNvdXJjZURhdGEsXG4gIHRhcmdldERhdGFcbikge1xuICBjb25zdCBtdWx0aSA9IGdyYXBoLm11bHRpO1xuXG4gIGxldCBvdXRLZXkgPSAnb3V0JztcbiAgbGV0IGluS2V5ID0gJ2luJztcblxuICBpZiAodW5kaXJlY3RlZCkgb3V0S2V5ID0gaW5LZXkgPSAndW5kaXJlY3RlZCc7XG5cbiAgbGV0IGFkaiwgY29udGFpbmVyO1xuXG4gIGlmIChtdWx0aSkge1xuICAgIC8vIEhhbmRsaW5nIHNvdXJjZVxuICAgIGFkaiA9IHNvdXJjZURhdGFbb3V0S2V5XTtcbiAgICBjb250YWluZXIgPSBhZGpbdGFyZ2V0XTtcblxuICAgIGlmICh0eXBlb2YgY29udGFpbmVyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgY29udGFpbmVyID0gbmV3IFNldCgpO1xuICAgICAgYWRqW3RhcmdldF0gPSBjb250YWluZXI7XG4gICAgfVxuXG4gICAgY29udGFpbmVyLmFkZChlZGdlRGF0YSk7XG5cbiAgICAvLyBJZiBzZWxmTG9vcCwgd2UgYnJlYWsgaGVyZVxuICAgIGlmIChzb3VyY2UgPT09IHRhcmdldCAmJiB1bmRpcmVjdGVkKSByZXR1cm47XG5cbiAgICAvLyBIYW5kbGluZyB0YXJnZXQgKHdlIHdvbid0IGFkZCB0aGUgZWRnZSBiZWNhdXNlIGl0IHdhcyBhbHJlYWR5IHRha2VuXG4gICAgLy8gY2FyZSBvZiB3aXRoIHNvdXJjZSBhYm92ZSlcbiAgICBhZGogPSB0YXJnZXREYXRhW2luS2V5XTtcbiAgICBpZiAodHlwZW9mIGFkaltzb3VyY2VdID09PSAndW5kZWZpbmVkJykgYWRqW3NvdXJjZV0gPSBjb250YWluZXI7XG4gIH0gZWxzZSB7XG4gICAgLy8gSGFuZGxpbmcgc291cmNlXG4gICAgc291cmNlRGF0YVtvdXRLZXldW3RhcmdldF0gPSBlZGdlRGF0YTtcblxuICAgIC8vIElmIHNlbGZMb29wLCB3ZSBicmVhayBoZXJlXG4gICAgaWYgKHNvdXJjZSA9PT0gdGFyZ2V0ICYmIHVuZGlyZWN0ZWQpIHJldHVybjtcblxuICAgIC8vIEhhbmRsaW5nIHRhcmdldFxuICAgIHRhcmdldERhdGFbaW5LZXldW3NvdXJjZV0gPSBlZGdlRGF0YTtcbiAgfVxufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGNsZWFyaW5nIHRoZSAnc3RydWN0dXJlJyBpbmRleCBkYXRhIHJlbGF0ZWQgdG8gdGhlIGdpdmVuIGVkZ2UuXG4gKlxuICogQHBhcmFtIHtHcmFwaH0gICAgZ3JhcGggICAgLSBUYXJnZXQgR3JhcGggaW5zdGFuY2UuXG4gKiBAcGFyYW0ge0VkZ2VEYXRhfSBlZGdlRGF0YSAtIERyb3BwZWQgZWRnZSdzIGRhdGEuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhckVkZ2VGcm9tU3RydWN0dXJlSW5kZXgoZ3JhcGgsIHVuZGlyZWN0ZWQsIGVkZ2VEYXRhKSB7XG4gIGNvbnN0IG11bHRpID0gZ3JhcGgubXVsdGk7XG5cbiAgY29uc3Qge3NvdXJjZTogc291cmNlRGF0YSwgdGFyZ2V0OiB0YXJnZXREYXRhfSA9IGVkZ2VEYXRhO1xuXG4gIGNvbnN0IHNvdXJjZSA9IHNvdXJjZURhdGEua2V5LFxuICAgIHRhcmdldCA9IHRhcmdldERhdGEua2V5O1xuXG4gIC8vIE5PVEU6IHNpbmNlIHRoZSBlZGdlIHNldCBpcyB0aGUgc2FtZSBmb3Igc291cmNlICYgdGFyZ2V0LCB3ZSBjYW4gb25seVxuICAvLyBhZmZlY3Qgc291cmNlXG4gIGNvbnN0IG91dEtleSA9IHVuZGlyZWN0ZWQgPyAndW5kaXJlY3RlZCcgOiAnb3V0JyxcbiAgICBzb3VyY2VJbmRleCA9IHNvdXJjZURhdGFbb3V0S2V5XTtcblxuICBjb25zdCBpbktleSA9IHVuZGlyZWN0ZWQgPyAndW5kaXJlY3RlZCcgOiAnaW4nO1xuXG4gIGlmICh0YXJnZXQgaW4gc291cmNlSW5kZXgpIHtcbiAgICBpZiAobXVsdGkpIHtcbiAgICAgIGNvbnN0IHNldCA9IHNvdXJjZUluZGV4W3RhcmdldF07XG5cbiAgICAgIGlmIChzZXQuc2l6ZSA9PT0gMSkge1xuICAgICAgICBkZWxldGUgc291cmNlSW5kZXhbdGFyZ2V0XTtcbiAgICAgICAgZGVsZXRlIHRhcmdldERhdGFbaW5LZXldW3NvdXJjZV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXQuZGVsZXRlKGVkZ2VEYXRhKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgZGVsZXRlIHNvdXJjZUluZGV4W3RhcmdldF07XG4gIH1cblxuICBpZiAobXVsdGkpIHJldHVybjtcblxuICBjb25zdCB0YXJnZXRJbmRleCA9IHRhcmdldERhdGFbaW5LZXldO1xuXG4gIGRlbGV0ZSB0YXJnZXRJbmRleFtzb3VyY2VdO1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGNsZWFyaW5nIHRoZSB3aG9sZSAnc3RydWN0dXJlJyBpbmRleC5cbiAqXG4gKiBAcGFyYW0ge0dyYXBofSBncmFwaCAtIFRhcmdldCBHcmFwaCBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyU3RydWN0dXJlSW5kZXgoZ3JhcGgpIHtcbiAgY29uc3QgaXRlcmF0b3IgPSBncmFwaC5fbm9kZXMudmFsdWVzKCk7XG5cbiAgbGV0IHN0ZXA7XG5cbiAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICBzdGVwLnZhbHVlLmNsZWFyKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIHRvIHVwZ3JhZGUgYSBzaW1wbGUgYHN0cnVjdHVyZWAgaW5kZXggdG8gYSBtdWx0aSBvbi5cbiAqXG4gKiBAcGFyYW0ge0dyYXBofSAgZ3JhcGggLSBUYXJnZXQgR3JhcGggaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGdyYWRlU3RydWN0dXJlSW5kZXhUb011bHRpKGdyYXBoKSB7XG4gIGdyYXBoLl9ub2Rlcy5mb3JFYWNoKChkYXRhLCBub2RlKSA9PiB7XG4gICAgLy8gRGlyZWN0ZWRcbiAgICBpZiAoZGF0YS5vdXQpIHtcbiAgICAgIGZvciAoY29uc3QgbmVpZ2hib3IgaW4gZGF0YS5vdXQpIHtcbiAgICAgICAgY29uc3QgZWRnZXMgPSBuZXcgU2V0KCk7XG4gICAgICAgIGVkZ2VzLmFkZChkYXRhLm91dFtuZWlnaGJvcl0pO1xuICAgICAgICBkYXRhLm91dFtuZWlnaGJvcl0gPSBlZGdlcztcbiAgICAgICAgZ3JhcGguX25vZGVzLmdldChuZWlnaGJvcikuaW5bbm9kZV0gPSBlZGdlcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVbmRpcmVjdGVkXG4gICAgaWYgKGRhdGEudW5kaXJlY3RlZCkge1xuICAgICAgZm9yIChjb25zdCBuZWlnaGJvciBpbiBkYXRhLnVuZGlyZWN0ZWQpIHtcbiAgICAgICAgaWYgKG5laWdoYm9yID4gbm9kZSkgY29udGludWU7XG5cbiAgICAgICAgY29uc3QgZWRnZXMgPSBuZXcgU2V0KCk7XG4gICAgICAgIGVkZ2VzLmFkZChkYXRhLnVuZGlyZWN0ZWRbbmVpZ2hib3JdKTtcbiAgICAgICAgZGF0YS51bmRpcmVjdGVkW25laWdoYm9yXSA9IGVkZ2VzO1xuICAgICAgICBncmFwaC5fbm9kZXMuZ2V0KG5laWdoYm9yKS51bmRpcmVjdGVkW25vZGVdID0gZWRnZXM7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cbiIsICIvKipcbiAqIEdyYXBob2xvZ3kgTm9kZSBBdHRyaWJ1dGVzIG1ldGhvZHNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKi9cbmltcG9ydCB7YXNzaWduLCBpc1BsYWluT2JqZWN0fSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7SW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IsIE5vdEZvdW5kR3JhcGhFcnJvcn0gZnJvbSAnLi4vZXJyb3JzJztcblxuY29uc3QgTk9ERSA9IDA7XG5jb25zdCBTT1VSQ0UgPSAxO1xuY29uc3QgVEFSR0VUID0gMjtcbmNvbnN0IE9QUE9TSVRFID0gMztcblxuZnVuY3Rpb24gZmluZFJlbGV2YW50Tm9kZURhdGEoXG4gIGdyYXBoLFxuICBtZXRob2QsXG4gIG1vZGUsXG4gIG5vZGVPckVkZ2UsXG4gIG5hbWVPckVkZ2UsXG4gIGFkZDEsXG4gIGFkZDJcbikge1xuICBsZXQgbm9kZURhdGEsIGVkZ2VEYXRhLCBhcmcxLCBhcmcyO1xuXG4gIG5vZGVPckVkZ2UgPSAnJyArIG5vZGVPckVkZ2U7XG5cbiAgaWYgKG1vZGUgPT09IE5PREUpIHtcbiAgICBub2RlRGF0YSA9IGdyYXBoLl9ub2Rlcy5nZXQobm9kZU9yRWRnZSk7XG5cbiAgICBpZiAoIW5vZGVEYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlT3JFZGdlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBhcmcxID0gbmFtZU9yRWRnZTtcbiAgICBhcmcyID0gYWRkMTtcbiAgfSBlbHNlIGlmIChtb2RlID09PSBPUFBPU0lURSkge1xuICAgIG5hbWVPckVkZ2UgPSAnJyArIG5hbWVPckVkZ2U7XG5cbiAgICBlZGdlRGF0YSA9IGdyYXBoLl9lZGdlcy5nZXQobmFtZU9yRWRnZSk7XG5cbiAgICBpZiAoIWVkZ2VEYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtuYW1lT3JFZGdlfVwiIGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBjb25zdCBzb3VyY2UgPSBlZGdlRGF0YS5zb3VyY2Uua2V5O1xuICAgIGNvbnN0IHRhcmdldCA9IGVkZ2VEYXRhLnRhcmdldC5rZXk7XG5cbiAgICBpZiAobm9kZU9yRWRnZSA9PT0gc291cmNlKSB7XG4gICAgICBub2RlRGF0YSA9IGVkZ2VEYXRhLnRhcmdldDtcbiAgICB9IGVsc2UgaWYgKG5vZGVPckVkZ2UgPT09IHRhcmdldCkge1xuICAgICAgbm9kZURhdGEgPSBlZGdlRGF0YS5zb3VyY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IHRoZSBcIiR7bm9kZU9yRWRnZX1cIiBub2RlIGlzIG5vdCBhdHRhY2hlZCB0byB0aGUgXCIke25hbWVPckVkZ2V9XCIgZWRnZSAoJHtzb3VyY2V9LCAke3RhcmdldH0pLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgYXJnMSA9IGFkZDE7XG4gICAgYXJnMiA9IGFkZDI7XG4gIH0gZWxzZSB7XG4gICAgZWRnZURhdGEgPSBncmFwaC5fZWRnZXMuZ2V0KG5vZGVPckVkZ2UpO1xuXG4gICAgaWYgKCFlZGdlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZU9yRWRnZX1cIiBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKG1vZGUgPT09IFNPVVJDRSkge1xuICAgICAgbm9kZURhdGEgPSBlZGdlRGF0YS5zb3VyY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGVEYXRhID0gZWRnZURhdGEudGFyZ2V0O1xuICAgIH1cblxuICAgIGFyZzEgPSBuYW1lT3JFZGdlO1xuICAgIGFyZzIgPSBhZGQxO1xuICB9XG5cbiAgcmV0dXJuIFtub2RlRGF0YSwgYXJnMSwgYXJnMl07XG59XG5cbmZ1bmN0aW9uIGF0dGFjaE5vZGVBdHRyaWJ1dGVHZXR0ZXIoQ2xhc3MsIG1ldGhvZCwgbW9kZSkge1xuICBDbGFzcy5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uIChub2RlT3JFZGdlLCBuYW1lT3JFZGdlLCBhZGQxKSB7XG4gICAgY29uc3QgW2RhdGEsIG5hbWVdID0gZmluZFJlbGV2YW50Tm9kZURhdGEoXG4gICAgICB0aGlzLFxuICAgICAgbWV0aG9kLFxuICAgICAgbW9kZSxcbiAgICAgIG5vZGVPckVkZ2UsXG4gICAgICBuYW1lT3JFZGdlLFxuICAgICAgYWRkMVxuICAgICk7XG5cbiAgICByZXR1cm4gZGF0YS5hdHRyaWJ1dGVzW25hbWVdO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRhY2hOb2RlQXR0cmlidXRlc0dldHRlcihDbGFzcywgbWV0aG9kLCBtb2RlKSB7XG4gIENsYXNzLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKG5vZGVPckVkZ2UsIG5hbWVPckVkZ2UpIHtcbiAgICBjb25zdCBbZGF0YV0gPSBmaW5kUmVsZXZhbnROb2RlRGF0YShcbiAgICAgIHRoaXMsXG4gICAgICBtZXRob2QsXG4gICAgICBtb2RlLFxuICAgICAgbm9kZU9yRWRnZSxcbiAgICAgIG5hbWVPckVkZ2VcbiAgICApO1xuXG4gICAgcmV0dXJuIGRhdGEuYXR0cmlidXRlcztcbiAgfTtcbn1cblxuZnVuY3Rpb24gYXR0YWNoTm9kZUF0dHJpYnV0ZUNoZWNrZXIoQ2xhc3MsIG1ldGhvZCwgbW9kZSkge1xuICBDbGFzcy5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uIChub2RlT3JFZGdlLCBuYW1lT3JFZGdlLCBhZGQxKSB7XG4gICAgY29uc3QgW2RhdGEsIG5hbWVdID0gZmluZFJlbGV2YW50Tm9kZURhdGEoXG4gICAgICB0aGlzLFxuICAgICAgbWV0aG9kLFxuICAgICAgbW9kZSxcbiAgICAgIG5vZGVPckVkZ2UsXG4gICAgICBuYW1lT3JFZGdlLFxuICAgICAgYWRkMVxuICAgICk7XG5cbiAgICByZXR1cm4gZGF0YS5hdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KG5hbWUpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRhY2hOb2RlQXR0cmlidXRlU2V0dGVyKENsYXNzLCBtZXRob2QsIG1vZGUpIHtcbiAgQ2xhc3MucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiAobm9kZU9yRWRnZSwgbmFtZU9yRWRnZSwgYWRkMSwgYWRkMikge1xuICAgIGNvbnN0IFtkYXRhLCBuYW1lLCB2YWx1ZV0gPSBmaW5kUmVsZXZhbnROb2RlRGF0YShcbiAgICAgIHRoaXMsXG4gICAgICBtZXRob2QsXG4gICAgICBtb2RlLFxuICAgICAgbm9kZU9yRWRnZSxcbiAgICAgIG5hbWVPckVkZ2UsXG4gICAgICBhZGQxLFxuICAgICAgYWRkMlxuICAgICk7XG5cbiAgICBkYXRhLmF0dHJpYnV0ZXNbbmFtZV0gPSB2YWx1ZTtcblxuICAgIC8vIEVtaXR0aW5nXG4gICAgdGhpcy5lbWl0KCdub2RlQXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICBrZXk6IGRhdGEua2V5LFxuICAgICAgdHlwZTogJ3NldCcsXG4gICAgICBhdHRyaWJ1dGVzOiBkYXRhLmF0dHJpYnV0ZXMsXG4gICAgICBuYW1lXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbn1cblxuZnVuY3Rpb24gYXR0YWNoTm9kZUF0dHJpYnV0ZVVwZGF0ZXIoQ2xhc3MsIG1ldGhvZCwgbW9kZSkge1xuICBDbGFzcy5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uIChub2RlT3JFZGdlLCBuYW1lT3JFZGdlLCBhZGQxLCBhZGQyKSB7XG4gICAgY29uc3QgW2RhdGEsIG5hbWUsIHVwZGF0ZXJdID0gZmluZFJlbGV2YW50Tm9kZURhdGEoXG4gICAgICB0aGlzLFxuICAgICAgbWV0aG9kLFxuICAgICAgbW9kZSxcbiAgICAgIG5vZGVPckVkZ2UsXG4gICAgICBuYW1lT3JFZGdlLFxuICAgICAgYWRkMSxcbiAgICAgIGFkZDJcbiAgICApO1xuXG4gICAgaWYgKHR5cGVvZiB1cGRhdGVyICE9PSAnZnVuY3Rpb24nKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiB1cGRhdGVyIHNob3VsZCBiZSBhIGZ1bmN0aW9uLmBcbiAgICAgICk7XG5cbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gZGF0YS5hdHRyaWJ1dGVzO1xuICAgIGNvbnN0IHZhbHVlID0gdXBkYXRlcihhdHRyaWJ1dGVzW25hbWVdKTtcblxuICAgIGF0dHJpYnV0ZXNbbmFtZV0gPSB2YWx1ZTtcblxuICAgIC8vIEVtaXR0aW5nXG4gICAgdGhpcy5lbWl0KCdub2RlQXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICBrZXk6IGRhdGEua2V5LFxuICAgICAgdHlwZTogJ3NldCcsXG4gICAgICBhdHRyaWJ1dGVzOiBkYXRhLmF0dHJpYnV0ZXMsXG4gICAgICBuYW1lXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbn1cblxuZnVuY3Rpb24gYXR0YWNoTm9kZUF0dHJpYnV0ZVJlbW92ZXIoQ2xhc3MsIG1ldGhvZCwgbW9kZSkge1xuICBDbGFzcy5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uIChub2RlT3JFZGdlLCBuYW1lT3JFZGdlLCBhZGQxKSB7XG4gICAgY29uc3QgW2RhdGEsIG5hbWVdID0gZmluZFJlbGV2YW50Tm9kZURhdGEoXG4gICAgICB0aGlzLFxuICAgICAgbWV0aG9kLFxuICAgICAgbW9kZSxcbiAgICAgIG5vZGVPckVkZ2UsXG4gICAgICBuYW1lT3JFZGdlLFxuICAgICAgYWRkMVxuICAgICk7XG5cbiAgICBkZWxldGUgZGF0YS5hdHRyaWJ1dGVzW25hbWVdO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ25vZGVBdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgIGtleTogZGF0YS5rZXksXG4gICAgICB0eXBlOiAncmVtb3ZlJyxcbiAgICAgIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlcyxcbiAgICAgIG5hbWVcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRhY2hOb2RlQXR0cmlidXRlc1JlcGxhY2VyKENsYXNzLCBtZXRob2QsIG1vZGUpIHtcbiAgQ2xhc3MucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiAobm9kZU9yRWRnZSwgbmFtZU9yRWRnZSwgYWRkMSkge1xuICAgIGNvbnN0IFtkYXRhLCBhdHRyaWJ1dGVzXSA9IGZpbmRSZWxldmFudE5vZGVEYXRhKFxuICAgICAgdGhpcyxcbiAgICAgIG1ldGhvZCxcbiAgICAgIG1vZGUsXG4gICAgICBub2RlT3JFZGdlLFxuICAgICAgbmFtZU9yRWRnZSxcbiAgICAgIGFkZDFcbiAgICApO1xuXG4gICAgaWYgKCFpc1BsYWluT2JqZWN0KGF0dHJpYnV0ZXMpKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBwcm92aWRlZCBhdHRyaWJ1dGVzIGFyZSBub3QgYSBwbGFpbiBvYmplY3QuYFxuICAgICAgKTtcblxuICAgIGRhdGEuYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnbm9kZUF0dHJpYnV0ZXNVcGRhdGVkJywge1xuICAgICAga2V5OiBkYXRhLmtleSxcbiAgICAgIHR5cGU6ICdyZXBsYWNlJyxcbiAgICAgIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlc1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGF0dGFjaE5vZGVBdHRyaWJ1dGVzTWVyZ2VyKENsYXNzLCBtZXRob2QsIG1vZGUpIHtcbiAgQ2xhc3MucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiAobm9kZU9yRWRnZSwgbmFtZU9yRWRnZSwgYWRkMSkge1xuICAgIGNvbnN0IFtkYXRhLCBhdHRyaWJ1dGVzXSA9IGZpbmRSZWxldmFudE5vZGVEYXRhKFxuICAgICAgdGhpcyxcbiAgICAgIG1ldGhvZCxcbiAgICAgIG1vZGUsXG4gICAgICBub2RlT3JFZGdlLFxuICAgICAgbmFtZU9yRWRnZSxcbiAgICAgIGFkZDFcbiAgICApO1xuXG4gICAgaWYgKCFpc1BsYWluT2JqZWN0KGF0dHJpYnV0ZXMpKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBwcm92aWRlZCBhdHRyaWJ1dGVzIGFyZSBub3QgYSBwbGFpbiBvYmplY3QuYFxuICAgICAgKTtcblxuICAgIGFzc2lnbihkYXRhLmF0dHJpYnV0ZXMsIGF0dHJpYnV0ZXMpO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ25vZGVBdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgIGtleTogZGF0YS5rZXksXG4gICAgICB0eXBlOiAnbWVyZ2UnLFxuICAgICAgYXR0cmlidXRlczogZGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgZGF0YTogYXR0cmlidXRlc1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGF0dGFjaE5vZGVBdHRyaWJ1dGVzVXBkYXRlcihDbGFzcywgbWV0aG9kLCBtb2RlKSB7XG4gIENsYXNzLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKG5vZGVPckVkZ2UsIG5hbWVPckVkZ2UsIGFkZDEpIHtcbiAgICBjb25zdCBbZGF0YSwgdXBkYXRlcl0gPSBmaW5kUmVsZXZhbnROb2RlRGF0YShcbiAgICAgIHRoaXMsXG4gICAgICBtZXRob2QsXG4gICAgICBtb2RlLFxuICAgICAgbm9kZU9yRWRnZSxcbiAgICAgIG5hbWVPckVkZ2UsXG4gICAgICBhZGQxXG4gICAgKTtcblxuICAgIGlmICh0eXBlb2YgdXBkYXRlciAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogcHJvdmlkZWQgdXBkYXRlciBpcyBub3QgYSBmdW5jdGlvbi5gXG4gICAgICApO1xuXG4gICAgZGF0YS5hdHRyaWJ1dGVzID0gdXBkYXRlcihkYXRhLmF0dHJpYnV0ZXMpO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ25vZGVBdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgIGtleTogZGF0YS5rZXksXG4gICAgICB0eXBlOiAndXBkYXRlJyxcbiAgICAgIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlc1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG59XG5cbi8qKlxuICogTGlzdCBvZiBtZXRob2RzIHRvIGF0dGFjaC5cbiAqL1xuY29uc3QgTk9ERV9BVFRSSUJVVEVTX01FVEhPRFMgPSBbXG4gIHtcbiAgICBuYW1lOiBlbGVtZW50ID0+IGBnZXQke2VsZW1lbnR9QXR0cmlidXRlYCxcbiAgICBhdHRhY2hlcjogYXR0YWNoTm9kZUF0dHJpYnV0ZUdldHRlclxuICB9LFxuICB7XG4gICAgbmFtZTogZWxlbWVudCA9PiBgZ2V0JHtlbGVtZW50fUF0dHJpYnV0ZXNgLFxuICAgIGF0dGFjaGVyOiBhdHRhY2hOb2RlQXR0cmlidXRlc0dldHRlclxuICB9LFxuICB7XG4gICAgbmFtZTogZWxlbWVudCA9PiBgaGFzJHtlbGVtZW50fUF0dHJpYnV0ZWAsXG4gICAgYXR0YWNoZXI6IGF0dGFjaE5vZGVBdHRyaWJ1dGVDaGVja2VyXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBlbGVtZW50ID0+IGBzZXQke2VsZW1lbnR9QXR0cmlidXRlYCxcbiAgICBhdHRhY2hlcjogYXR0YWNoTm9kZUF0dHJpYnV0ZVNldHRlclxuICB9LFxuICB7XG4gICAgbmFtZTogZWxlbWVudCA9PiBgdXBkYXRlJHtlbGVtZW50fUF0dHJpYnV0ZWAsXG4gICAgYXR0YWNoZXI6IGF0dGFjaE5vZGVBdHRyaWJ1dGVVcGRhdGVyXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBlbGVtZW50ID0+IGByZW1vdmUke2VsZW1lbnR9QXR0cmlidXRlYCxcbiAgICBhdHRhY2hlcjogYXR0YWNoTm9kZUF0dHJpYnV0ZVJlbW92ZXJcbiAgfSxcbiAge1xuICAgIG5hbWU6IGVsZW1lbnQgPT4gYHJlcGxhY2Uke2VsZW1lbnR9QXR0cmlidXRlc2AsXG4gICAgYXR0YWNoZXI6IGF0dGFjaE5vZGVBdHRyaWJ1dGVzUmVwbGFjZXJcbiAgfSxcbiAge1xuICAgIG5hbWU6IGVsZW1lbnQgPT4gYG1lcmdlJHtlbGVtZW50fUF0dHJpYnV0ZXNgLFxuICAgIGF0dGFjaGVyOiBhdHRhY2hOb2RlQXR0cmlidXRlc01lcmdlclxuICB9LFxuICB7XG4gICAgbmFtZTogZWxlbWVudCA9PiBgdXBkYXRlJHtlbGVtZW50fUF0dHJpYnV0ZXNgLFxuICAgIGF0dGFjaGVyOiBhdHRhY2hOb2RlQXR0cmlidXRlc1VwZGF0ZXJcbiAgfVxuXTtcblxuLyoqXG4gKiBBdHRhY2ggZXZlcnkgYXR0cmlidXRlcy1yZWxhdGVkIG1ldGhvZHMgdG8gYSBHcmFwaCBjbGFzcy5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBHcmFwaCAtIFRhcmdldCBjbGFzcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYXR0YWNoTm9kZUF0dHJpYnV0ZXNNZXRob2RzKEdyYXBoKSB7XG4gIE5PREVfQVRUUklCVVRFU19NRVRIT0RTLmZvckVhY2goZnVuY3Rpb24gKHtuYW1lLCBhdHRhY2hlcn0pIHtcbiAgICAvLyBGb3Igbm9kZXNcbiAgICBhdHRhY2hlcihHcmFwaCwgbmFtZSgnTm9kZScpLCBOT0RFKTtcblxuICAgIC8vIEZvciBzb3VyY2VzXG4gICAgYXR0YWNoZXIoR3JhcGgsIG5hbWUoJ1NvdXJjZScpLCBTT1VSQ0UpO1xuXG4gICAgLy8gRm9yIHRhcmdldHNcbiAgICBhdHRhY2hlcihHcmFwaCwgbmFtZSgnVGFyZ2V0JyksIFRBUkdFVCk7XG5cbiAgICAvLyBGb3Igb3Bwb3NpdGVzXG4gICAgYXR0YWNoZXIoR3JhcGgsIG5hbWUoJ09wcG9zaXRlJyksIE9QUE9TSVRFKTtcbiAgfSk7XG59XG4iLCAiLyoqXG4gKiBHcmFwaG9sb2d5IEVkZ2UgQXR0cmlidXRlcyBtZXRob2RzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICovXG5pbXBvcnQge2Fzc2lnbiwgaXNQbGFpbk9iamVjdCwgZ2V0TWF0Y2hpbmdFZGdlfSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7XG4gIEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yLFxuICBOb3RGb3VuZEdyYXBoRXJyb3IsXG4gIFVzYWdlR3JhcGhFcnJvclxufSBmcm9tICcuLi9lcnJvcnMnO1xuXG4vKipcbiAqIEF0dGFjaCBhbiBhdHRyaWJ1dGUgZ2V0dGVyIG1ldGhvZCBvbnRvIHRoZSBwcm92aWRlZCBjbGFzcy5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBDbGFzcyAgICAgICAgIC0gVGFyZ2V0IGNsYXNzLlxuICogQHBhcmFtIHtzdHJpbmd9ICAgbWV0aG9kICAgICAgICAtIE1ldGhvZCBuYW1lLlxuICogQHBhcmFtIHtzdHJpbmd9ICAgdHlwZSAgICAgICAgICAtIFR5cGUgb2YgdGhlIGVkZ2UgdG8gZmluZC5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoRWRnZUF0dHJpYnV0ZUdldHRlcihDbGFzcywgbWV0aG9kLCB0eXBlKSB7XG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlc2lyZWQgYXR0cmlidXRlIGZvciB0aGUgZ2l2ZW4gZWxlbWVudCAobm9kZSBvciBlZGdlKS5cbiAgICpcbiAgICogQXJpdHkgMjpcbiAgICogQHBhcmFtICB7YW55fSAgICBlbGVtZW50IC0gVGFyZ2V0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge3N0cmluZ30gbmFtZSAgICAtIEF0dHJpYnV0ZSdzIG5hbWUuXG4gICAqXG4gICAqIEFyaXR5IDMgKG9ubHkgZm9yIGVkZ2VzKTpcbiAgICogQHBhcmFtICB7YW55fSAgICAgc291cmNlIC0gU291cmNlIGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge2FueX0gICAgIHRhcmdldCAtIFRhcmdldCBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9ICBuYW1lICAgLSBBdHRyaWJ1dGUncyBuYW1lLlxuICAgKlxuICAgKiBAcmV0dXJuIHttaXhlZH0gICAgICAgICAgLSBUaGUgYXR0cmlidXRlJ3MgdmFsdWUuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdG9vIG1hbnkgYXJndW1lbnRzIGFyZSBwcm92aWRlZC5cbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiBhbnkgb2YgdGhlIGVsZW1lbnRzIGlzIG5vdCBmb3VuZC5cbiAgICovXG4gIENsYXNzLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKGVsZW1lbnQsIG5hbWUpIHtcbiAgICBsZXQgZGF0YTtcblxuICAgIGlmICh0aGlzLnR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSB0aGlzLnR5cGUpXG4gICAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjYW5ub3QgZmluZCB0aGlzIHR5cGUgb2YgZWRnZXMgaW4geW91ciAke3RoaXMudHlwZX0gZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMikge1xuICAgICAgaWYgKHRoaXMubXVsdGkpXG4gICAgICAgIHRocm93IG5ldyBVc2FnZUdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY2Fubm90IHVzZSBhIHtzb3VyY2UsdGFyZ2V0fSBjb21ibyB3aGVuIGFza2luZyBhYm91dCBhbiBlZGdlJ3MgYXR0cmlidXRlcyBpbiBhIE11bHRpR3JhcGggc2luY2Ugd2UgY2Fubm90IGluZmVyIHRoZSBvbmUgeW91IHdhbnQgaW5mb3JtYXRpb24gYWJvdXQuYFxuICAgICAgICApO1xuXG4gICAgICBjb25zdCBzb3VyY2UgPSAnJyArIGVsZW1lbnQsXG4gICAgICAgIHRhcmdldCA9ICcnICsgbmFtZTtcblxuICAgICAgbmFtZSA9IGFyZ3VtZW50c1syXTtcblxuICAgICAgZGF0YSA9IGdldE1hdGNoaW5nRWRnZSh0aGlzLCBzb3VyY2UsIHRhcmdldCwgdHlwZSk7XG5cbiAgICAgIGlmICghZGF0YSlcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCBhbiBlZGdlIGZvciB0aGUgZ2l2ZW4gcGF0aCAoXCIke3NvdXJjZX1cIiAtIFwiJHt0YXJnZXR9XCIpLmBcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWxlbWVudCA9ICcnICsgZWxlbWVudDtcbiAgICAgIGRhdGEgPSB0aGlzLl9lZGdlcy5nZXQoZWxlbWVudCk7XG5cbiAgICAgIGlmICghZGF0YSlcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VsZW1lbnR9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmICh0eXBlICE9PSAnbWl4ZWQnICYmIGRhdGEudW5kaXJlY3RlZCAhPT0gKHR5cGUgPT09ICd1bmRpcmVjdGVkJykpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VsZW1lbnR9XCIgJHt0eXBlfSBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgcmV0dXJuIGRhdGEuYXR0cmlidXRlc1tuYW1lXTtcbiAgfTtcbn1cblxuLyoqXG4gKiBBdHRhY2ggYW4gYXR0cmlidXRlcyBnZXR0ZXIgbWV0aG9kIG9udG8gdGhlIHByb3ZpZGVkIGNsYXNzLlxuICpcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IENsYXNzICAgICAgIC0gVGFyZ2V0IGNsYXNzLlxuICogQHBhcmFtIHtzdHJpbmd9ICAgbWV0aG9kICAgICAgLSBNZXRob2QgbmFtZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIHR5cGUgICAgICAgIC0gVHlwZSBvZiB0aGUgZWRnZSB0byBmaW5kLlxuICovXG5mdW5jdGlvbiBhdHRhY2hFZGdlQXR0cmlidXRlc0dldHRlcihDbGFzcywgbWV0aG9kLCB0eXBlKSB7XG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYWxsIHRoZSB0YXJnZXQgZWxlbWVudCdzIGF0dHJpYnV0ZXMuXG4gICAqXG4gICAqIEFyaXR5IDI6XG4gICAqIEBwYXJhbSAge2FueX0gICAgZWxlbWVudCAtIFRhcmdldCBlbGVtZW50LlxuICAgKlxuICAgKiBBcml0eSAzIChvbmx5IGZvciBlZGdlcyk6XG4gICAqIEBwYXJhbSAge2FueX0gICAgIHNvdXJjZSAtIFNvdXJjZSBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICB0YXJnZXQgLSBUYXJnZXQgZWxlbWVudC5cbiAgICpcbiAgICogQHJldHVybiB7b2JqZWN0fSAgICAgICAgICAtIFRoZSBlbGVtZW50J3MgYXR0cmlidXRlcy5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0b28gbWFueSBhcmd1bWVudHMgYXJlIHByb3ZpZGVkLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIGFueSBvZiB0aGUgZWxlbWVudHMgaXMgbm90IGZvdW5kLlxuICAgKi9cbiAgQ2xhc3MucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIGxldCBkYXRhO1xuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09IHRoaXMudHlwZSlcbiAgICAgIHRocm93IG5ldyBVc2FnZUdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNhbm5vdCBmaW5kIHRoaXMgdHlwZSBvZiBlZGdlcyBpbiB5b3VyICR7dGhpcy50eXBlfSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aSlcbiAgICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjYW5ub3QgdXNlIGEge3NvdXJjZSx0YXJnZXR9IGNvbWJvIHdoZW4gYXNraW5nIGFib3V0IGFuIGVkZ2UncyBhdHRyaWJ1dGVzIGluIGEgTXVsdGlHcmFwaCBzaW5jZSB3ZSBjYW5ub3QgaW5mZXIgdGhlIG9uZSB5b3Ugd2FudCBpbmZvcm1hdGlvbiBhYm91dC5gXG4gICAgICAgICk7XG5cbiAgICAgIGNvbnN0IHNvdXJjZSA9ICcnICsgZWxlbWVudCxcbiAgICAgICAgdGFyZ2V0ID0gJycgKyBhcmd1bWVudHNbMV07XG5cbiAgICAgIGRhdGEgPSBnZXRNYXRjaGluZ0VkZ2UodGhpcywgc291cmNlLCB0YXJnZXQsIHR5cGUpO1xuXG4gICAgICBpZiAoIWRhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgYW4gZWRnZSBmb3IgdGhlIGdpdmVuIHBhdGggKFwiJHtzb3VyY2V9XCIgLSBcIiR7dGFyZ2V0fVwiKS5gXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1lbnQgPSAnJyArIGVsZW1lbnQ7XG4gICAgICBkYXRhID0gdGhpcy5fZWRnZXMuZ2V0KGVsZW1lbnQpO1xuXG4gICAgICBpZiAoIWRhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtlbGVtZW50fVwiIGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZSAhPT0gJ21peGVkJyAmJiBkYXRhLnVuZGlyZWN0ZWQgIT09ICh0eXBlID09PSAndW5kaXJlY3RlZCcpKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtlbGVtZW50fVwiICR7dHlwZX0gZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIHJldHVybiBkYXRhLmF0dHJpYnV0ZXM7XG4gIH07XG59XG5cbi8qKlxuICogQXR0YWNoIGFuIGF0dHJpYnV0ZSBjaGVja2VyIG1ldGhvZCBvbnRvIHRoZSBwcm92aWRlZCBjbGFzcy5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBDbGFzcyAgICAgICAtIFRhcmdldCBjbGFzcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIG1ldGhvZCAgICAgIC0gTWV0aG9kIG5hbWUuXG4gKiBAcGFyYW0ge3N0cmluZ30gICB0eXBlICAgICAgICAtIFR5cGUgb2YgdGhlIGVkZ2UgdG8gZmluZC5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoRWRnZUF0dHJpYnV0ZUNoZWNrZXIoQ2xhc3MsIG1ldGhvZCwgdHlwZSkge1xuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGRlc2lyZWQgYXR0cmlidXRlIGlzIHNldCBmb3IgdGhlIGdpdmVuIGVsZW1lbnQgKG5vZGUgb3IgZWRnZSkuXG4gICAqXG4gICAqIEFyaXR5IDI6XG4gICAqIEBwYXJhbSAge2FueX0gICAgZWxlbWVudCAtIFRhcmdldCBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9IG5hbWUgICAgLSBBdHRyaWJ1dGUncyBuYW1lLlxuICAgKlxuICAgKiBBcml0eSAzIChvbmx5IGZvciBlZGdlcyk6XG4gICAqIEBwYXJhbSAge2FueX0gICAgIHNvdXJjZSAtIFNvdXJjZSBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICB0YXJnZXQgLSBUYXJnZXQgZWxlbWVudC5cbiAgICogQHBhcmFtICB7c3RyaW5nfSAgbmFtZSAgIC0gQXR0cmlidXRlJ3MgbmFtZS5cbiAgICpcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0b28gbWFueSBhcmd1bWVudHMgYXJlIHByb3ZpZGVkLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIGFueSBvZiB0aGUgZWxlbWVudHMgaXMgbm90IGZvdW5kLlxuICAgKi9cbiAgQ2xhc3MucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiAoZWxlbWVudCwgbmFtZSkge1xuICAgIGxldCBkYXRhO1xuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09IHRoaXMudHlwZSlcbiAgICAgIHRocm93IG5ldyBVc2FnZUdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNhbm5vdCBmaW5kIHRoaXMgdHlwZSBvZiBlZGdlcyBpbiB5b3VyICR7dGhpcy50eXBlfSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aSlcbiAgICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjYW5ub3QgdXNlIGEge3NvdXJjZSx0YXJnZXR9IGNvbWJvIHdoZW4gYXNraW5nIGFib3V0IGFuIGVkZ2UncyBhdHRyaWJ1dGVzIGluIGEgTXVsdGlHcmFwaCBzaW5jZSB3ZSBjYW5ub3QgaW5mZXIgdGhlIG9uZSB5b3Ugd2FudCBpbmZvcm1hdGlvbiBhYm91dC5gXG4gICAgICAgICk7XG5cbiAgICAgIGNvbnN0IHNvdXJjZSA9ICcnICsgZWxlbWVudCxcbiAgICAgICAgdGFyZ2V0ID0gJycgKyBuYW1lO1xuXG4gICAgICBuYW1lID0gYXJndW1lbnRzWzJdO1xuXG4gICAgICBkYXRhID0gZ2V0TWF0Y2hpbmdFZGdlKHRoaXMsIHNvdXJjZSwgdGFyZ2V0LCB0eXBlKTtcblxuICAgICAgaWYgKCFkYXRhKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIGFuIGVkZ2UgZm9yIHRoZSBnaXZlbiBwYXRoIChcIiR7c291cmNlfVwiIC0gXCIke3RhcmdldH1cIikuYFxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVtZW50ID0gJycgKyBlbGVtZW50O1xuICAgICAgZGF0YSA9IHRoaXMuX2VkZ2VzLmdldChlbGVtZW50KTtcblxuICAgICAgaWYgKCFkYXRhKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWxlbWVudH1cIiBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgIT09ICdtaXhlZCcgJiYgZGF0YS51bmRpcmVjdGVkICE9PSAodHlwZSA9PT0gJ3VuZGlyZWN0ZWQnKSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWxlbWVudH1cIiAke3R5cGV9IGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICByZXR1cm4gZGF0YS5hdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KG5hbWUpO1xuICB9O1xufVxuXG4vKipcbiAqIEF0dGFjaCBhbiBhdHRyaWJ1dGUgc2V0dGVyIG1ldGhvZCBvbnRvIHRoZSBwcm92aWRlZCBjbGFzcy5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBDbGFzcyAgICAgICAgIC0gVGFyZ2V0IGNsYXNzLlxuICogQHBhcmFtIHtzdHJpbmd9ICAgbWV0aG9kICAgICAgICAtIE1ldGhvZCBuYW1lLlxuICogQHBhcmFtIHtzdHJpbmd9ICAgdHlwZSAgICAgICAgICAtIFR5cGUgb2YgdGhlIGVkZ2UgdG8gZmluZC5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoRWRnZUF0dHJpYnV0ZVNldHRlcihDbGFzcywgbWV0aG9kLCB0eXBlKSB7XG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlc2lyZWQgYXR0cmlidXRlIGZvciB0aGUgZ2l2ZW4gZWxlbWVudCAobm9kZSBvciBlZGdlKS5cbiAgICpcbiAgICogQXJpdHkgMjpcbiAgICogQHBhcmFtICB7YW55fSAgICBlbGVtZW50IC0gVGFyZ2V0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge3N0cmluZ30gbmFtZSAgICAtIEF0dHJpYnV0ZSdzIG5hbWUuXG4gICAqIEBwYXJhbSAge21peGVkfSAgdmFsdWUgICAtIE5ldyBhdHRyaWJ1dGUgdmFsdWUuXG4gICAqXG4gICAqIEFyaXR5IDMgKG9ubHkgZm9yIGVkZ2VzKTpcbiAgICogQHBhcmFtICB7YW55fSAgICAgc291cmNlIC0gU291cmNlIGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge2FueX0gICAgIHRhcmdldCAtIFRhcmdldCBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9ICBuYW1lICAgLSBBdHRyaWJ1dGUncyBuYW1lLlxuICAgKiBAcGFyYW0gIHttaXhlZH0gIHZhbHVlICAgLSBOZXcgYXR0cmlidXRlIHZhbHVlLlxuICAgKlxuICAgKiBAcmV0dXJuIHtHcmFwaH0gICAgICAgICAgLSBSZXR1cm5zIGl0c2VsZiBmb3IgY2hhaW5pbmcuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdG9vIG1hbnkgYXJndW1lbnRzIGFyZSBwcm92aWRlZC5cbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiBhbnkgb2YgdGhlIGVsZW1lbnRzIGlzIG5vdCBmb3VuZC5cbiAgICovXG4gIENsYXNzLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKGVsZW1lbnQsIG5hbWUsIHZhbHVlKSB7XG4gICAgbGV0IGRhdGE7XG5cbiAgICBpZiAodGhpcy50eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gdGhpcy50eXBlKVxuICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY2Fubm90IGZpbmQgdGhpcyB0eXBlIG9mIGVkZ2VzIGluIHlvdXIgJHt0aGlzLnR5cGV9IGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDMpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpKVxuICAgICAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNhbm5vdCB1c2UgYSB7c291cmNlLHRhcmdldH0gY29tYm8gd2hlbiBhc2tpbmcgYWJvdXQgYW4gZWRnZSdzIGF0dHJpYnV0ZXMgaW4gYSBNdWx0aUdyYXBoIHNpbmNlIHdlIGNhbm5vdCBpbmZlciB0aGUgb25lIHlvdSB3YW50IGluZm9ybWF0aW9uIGFib3V0LmBcbiAgICAgICAgKTtcblxuICAgICAgY29uc3Qgc291cmNlID0gJycgKyBlbGVtZW50LFxuICAgICAgICB0YXJnZXQgPSAnJyArIG5hbWU7XG5cbiAgICAgIG5hbWUgPSBhcmd1bWVudHNbMl07XG4gICAgICB2YWx1ZSA9IGFyZ3VtZW50c1szXTtcblxuICAgICAgZGF0YSA9IGdldE1hdGNoaW5nRWRnZSh0aGlzLCBzb3VyY2UsIHRhcmdldCwgdHlwZSk7XG5cbiAgICAgIGlmICghZGF0YSlcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCBhbiBlZGdlIGZvciB0aGUgZ2l2ZW4gcGF0aCAoXCIke3NvdXJjZX1cIiAtIFwiJHt0YXJnZXR9XCIpLmBcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWxlbWVudCA9ICcnICsgZWxlbWVudDtcbiAgICAgIGRhdGEgPSB0aGlzLl9lZGdlcy5nZXQoZWxlbWVudCk7XG5cbiAgICAgIGlmICghZGF0YSlcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VsZW1lbnR9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmICh0eXBlICE9PSAnbWl4ZWQnICYmIGRhdGEudW5kaXJlY3RlZCAhPT0gKHR5cGUgPT09ICd1bmRpcmVjdGVkJykpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VsZW1lbnR9XCIgJHt0eXBlfSBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgZGF0YS5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnZWRnZUF0dHJpYnV0ZXNVcGRhdGVkJywge1xuICAgICAga2V5OiBkYXRhLmtleSxcbiAgICAgIHR5cGU6ICdzZXQnLFxuICAgICAgYXR0cmlidXRlczogZGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgbmFtZVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG59XG5cbi8qKlxuICogQXR0YWNoIGFuIGF0dHJpYnV0ZSB1cGRhdGVyIG1ldGhvZCBvbnRvIHRoZSBwcm92aWRlZCBjbGFzcy5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBDbGFzcyAgICAgICAgIC0gVGFyZ2V0IGNsYXNzLlxuICogQHBhcmFtIHtzdHJpbmd9ICAgbWV0aG9kICAgICAgICAtIE1ldGhvZCBuYW1lLlxuICogQHBhcmFtIHtzdHJpbmd9ICAgdHlwZSAgICAgICAgICAtIFR5cGUgb2YgdGhlIGVkZ2UgdG8gZmluZC5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoRWRnZUF0dHJpYnV0ZVVwZGF0ZXIoQ2xhc3MsIG1ldGhvZCwgdHlwZSkge1xuICAvKipcbiAgICogVXBkYXRlIHRoZSBkZXNpcmVkIGF0dHJpYnV0ZSBmb3IgdGhlIGdpdmVuIGVsZW1lbnQgKG5vZGUgb3IgZWRnZSkgdXNpbmdcbiAgICogdGhlIHByb3ZpZGVkIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBBcml0eSAyOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgZWxlbWVudCAtIFRhcmdldCBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9ICAgbmFtZSAgICAtIEF0dHJpYnV0ZSdzIG5hbWUuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSB1cGRhdGVyIC0gVXBkYXRlciBmdW5jdGlvbi5cbiAgICpcbiAgICogQXJpdHkgMyAob25seSBmb3IgZWRnZXMpOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgc291cmNlICAtIFNvdXJjZSBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgdGFyZ2V0ICAtIFRhcmdldCBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9ICAgbmFtZSAgICAtIEF0dHJpYnV0ZSdzIG5hbWUuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSB1cGRhdGVyIC0gVXBkYXRlciBmdW5jdGlvbi5cbiAgICpcbiAgICogQHJldHVybiB7R3JhcGh9ICAgICAgICAgICAgLSBSZXR1cm5zIGl0c2VsZiBmb3IgY2hhaW5pbmcuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdG9vIG1hbnkgYXJndW1lbnRzIGFyZSBwcm92aWRlZC5cbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiBhbnkgb2YgdGhlIGVsZW1lbnRzIGlzIG5vdCBmb3VuZC5cbiAgICovXG4gIENsYXNzLnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24gKGVsZW1lbnQsIG5hbWUsIHVwZGF0ZXIpIHtcbiAgICBsZXQgZGF0YTtcblxuICAgIGlmICh0aGlzLnR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSB0aGlzLnR5cGUpXG4gICAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjYW5ub3QgZmluZCB0aGlzIHR5cGUgb2YgZWRnZXMgaW4geW91ciAke3RoaXMudHlwZX0gZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMykge1xuICAgICAgaWYgKHRoaXMubXVsdGkpXG4gICAgICAgIHRocm93IG5ldyBVc2FnZUdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY2Fubm90IHVzZSBhIHtzb3VyY2UsdGFyZ2V0fSBjb21ibyB3aGVuIGFza2luZyBhYm91dCBhbiBlZGdlJ3MgYXR0cmlidXRlcyBpbiBhIE11bHRpR3JhcGggc2luY2Ugd2UgY2Fubm90IGluZmVyIHRoZSBvbmUgeW91IHdhbnQgaW5mb3JtYXRpb24gYWJvdXQuYFxuICAgICAgICApO1xuXG4gICAgICBjb25zdCBzb3VyY2UgPSAnJyArIGVsZW1lbnQsXG4gICAgICAgIHRhcmdldCA9ICcnICsgbmFtZTtcblxuICAgICAgbmFtZSA9IGFyZ3VtZW50c1syXTtcbiAgICAgIHVwZGF0ZXIgPSBhcmd1bWVudHNbM107XG5cbiAgICAgIGRhdGEgPSBnZXRNYXRjaGluZ0VkZ2UodGhpcywgc291cmNlLCB0YXJnZXQsIHR5cGUpO1xuXG4gICAgICBpZiAoIWRhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgYW4gZWRnZSBmb3IgdGhlIGdpdmVuIHBhdGggKFwiJHtzb3VyY2V9XCIgLSBcIiR7dGFyZ2V0fVwiKS5gXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1lbnQgPSAnJyArIGVsZW1lbnQ7XG4gICAgICBkYXRhID0gdGhpcy5fZWRnZXMuZ2V0KGVsZW1lbnQpO1xuXG4gICAgICBpZiAoIWRhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtlbGVtZW50fVwiIGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHVwZGF0ZXIgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IHVwZGF0ZXIgc2hvdWxkIGJlIGEgZnVuY3Rpb24uYFxuICAgICAgKTtcblxuICAgIGlmICh0eXBlICE9PSAnbWl4ZWQnICYmIGRhdGEudW5kaXJlY3RlZCAhPT0gKHR5cGUgPT09ICd1bmRpcmVjdGVkJykpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VsZW1lbnR9XCIgJHt0eXBlfSBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgZGF0YS5hdHRyaWJ1dGVzW25hbWVdID0gdXBkYXRlcihkYXRhLmF0dHJpYnV0ZXNbbmFtZV0pO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ2VkZ2VBdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgIGtleTogZGF0YS5rZXksXG4gICAgICB0eXBlOiAnc2V0JyxcbiAgICAgIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlcyxcbiAgICAgIG5hbWVcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xufVxuXG4vKipcbiAqIEF0dGFjaCBhbiBhdHRyaWJ1dGUgcmVtb3ZlciBtZXRob2Qgb250byB0aGUgcHJvdmlkZWQgY2xhc3MuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gQ2xhc3MgICAgICAgICAtIFRhcmdldCBjbGFzcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIG1ldGhvZCAgICAgICAgLSBNZXRob2QgbmFtZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIHR5cGUgICAgICAgICAgLSBUeXBlIG9mIHRoZSBlZGdlIHRvIGZpbmQuXG4gKi9cbmZ1bmN0aW9uIGF0dGFjaEVkZ2VBdHRyaWJ1dGVSZW1vdmVyKENsYXNzLCBtZXRob2QsIHR5cGUpIHtcbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgZGVzaXJlZCBhdHRyaWJ1dGUgZm9yIHRoZSBnaXZlbiBlbGVtZW50IChub2RlIG9yIGVkZ2UpLlxuICAgKlxuICAgKiBBcml0eSAyOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgIGVsZW1lbnQgLSBUYXJnZXQgZWxlbWVudC5cbiAgICogQHBhcmFtICB7c3RyaW5nfSBuYW1lICAgIC0gQXR0cmlidXRlJ3MgbmFtZS5cbiAgICpcbiAgICogQXJpdHkgMyAob25seSBmb3IgZWRnZXMpOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBzb3VyY2UgLSBTb3VyY2UgZWxlbWVudC5cbiAgICogQHBhcmFtICB7YW55fSAgICAgdGFyZ2V0IC0gVGFyZ2V0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge3N0cmluZ30gIG5hbWUgICAtIEF0dHJpYnV0ZSdzIG5hbWUuXG4gICAqXG4gICAqIEByZXR1cm4ge0dyYXBofSAgICAgICAgICAtIFJldHVybnMgaXRzZWxmIGZvciBjaGFpbmluZy5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0b28gbWFueSBhcmd1bWVudHMgYXJlIHByb3ZpZGVkLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIGFueSBvZiB0aGUgZWxlbWVudHMgaXMgbm90IGZvdW5kLlxuICAgKi9cbiAgQ2xhc3MucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiAoZWxlbWVudCwgbmFtZSkge1xuICAgIGxldCBkYXRhO1xuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09IHRoaXMudHlwZSlcbiAgICAgIHRocm93IG5ldyBVc2FnZUdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNhbm5vdCBmaW5kIHRoaXMgdHlwZSBvZiBlZGdlcyBpbiB5b3VyICR7dGhpcy50eXBlfSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aSlcbiAgICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjYW5ub3QgdXNlIGEge3NvdXJjZSx0YXJnZXR9IGNvbWJvIHdoZW4gYXNraW5nIGFib3V0IGFuIGVkZ2UncyBhdHRyaWJ1dGVzIGluIGEgTXVsdGlHcmFwaCBzaW5jZSB3ZSBjYW5ub3QgaW5mZXIgdGhlIG9uZSB5b3Ugd2FudCBpbmZvcm1hdGlvbiBhYm91dC5gXG4gICAgICAgICk7XG5cbiAgICAgIGNvbnN0IHNvdXJjZSA9ICcnICsgZWxlbWVudCxcbiAgICAgICAgdGFyZ2V0ID0gJycgKyBuYW1lO1xuXG4gICAgICBuYW1lID0gYXJndW1lbnRzWzJdO1xuXG4gICAgICBkYXRhID0gZ2V0TWF0Y2hpbmdFZGdlKHRoaXMsIHNvdXJjZSwgdGFyZ2V0LCB0eXBlKTtcblxuICAgICAgaWYgKCFkYXRhKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIGFuIGVkZ2UgZm9yIHRoZSBnaXZlbiBwYXRoIChcIiR7c291cmNlfVwiIC0gXCIke3RhcmdldH1cIikuYFxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVtZW50ID0gJycgKyBlbGVtZW50O1xuICAgICAgZGF0YSA9IHRoaXMuX2VkZ2VzLmdldChlbGVtZW50KTtcblxuICAgICAgaWYgKCFkYXRhKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWxlbWVudH1cIiBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgIT09ICdtaXhlZCcgJiYgZGF0YS51bmRpcmVjdGVkICE9PSAodHlwZSA9PT0gJ3VuZGlyZWN0ZWQnKSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWxlbWVudH1cIiAke3R5cGV9IGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBkZWxldGUgZGF0YS5hdHRyaWJ1dGVzW25hbWVdO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ2VkZ2VBdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgIGtleTogZGF0YS5rZXksXG4gICAgICB0eXBlOiAncmVtb3ZlJyxcbiAgICAgIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlcyxcbiAgICAgIG5hbWVcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xufVxuXG4vKipcbiAqIEF0dGFjaCBhbiBhdHRyaWJ1dGUgcmVwbGFjZXIgbWV0aG9kIG9udG8gdGhlIHByb3ZpZGVkIGNsYXNzLlxuICpcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IENsYXNzICAgICAgICAgLSBUYXJnZXQgY2xhc3MuXG4gKiBAcGFyYW0ge3N0cmluZ30gICBtZXRob2QgICAgICAgIC0gTWV0aG9kIG5hbWUuXG4gKiBAcGFyYW0ge3N0cmluZ30gICB0eXBlICAgICAgICAgIC0gVHlwZSBvZiB0aGUgZWRnZSB0byBmaW5kLlxuICovXG5mdW5jdGlvbiBhdHRhY2hFZGdlQXR0cmlidXRlc1JlcGxhY2VyKENsYXNzLCBtZXRob2QsIHR5cGUpIHtcbiAgLyoqXG4gICAqIFJlcGxhY2UgdGhlIGF0dHJpYnV0ZXMgZm9yIHRoZSBnaXZlbiBlbGVtZW50IChub2RlIG9yIGVkZ2UpLlxuICAgKlxuICAgKiBBcml0eSAyOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgIGVsZW1lbnQgICAgLSBUYXJnZXQgZWxlbWVudC5cbiAgICogQHBhcmFtICB7b2JqZWN0fSBhdHRyaWJ1dGVzIC0gTmV3IGF0dHJpYnV0ZXMuXG4gICAqXG4gICAqIEFyaXR5IDMgKG9ubHkgZm9yIGVkZ2VzKTpcbiAgICogQHBhcmFtICB7YW55fSAgICAgc291cmNlICAgICAtIFNvdXJjZSBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICB0YXJnZXQgICAgIC0gVGFyZ2V0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge29iamVjdH0gIGF0dHJpYnV0ZXMgLSBOZXcgYXR0cmlidXRlcy5cbiAgICpcbiAgICogQHJldHVybiB7R3JhcGh9ICAgICAgICAgICAgICAtIFJldHVybnMgaXRzZWxmIGZvciBjaGFpbmluZy5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0b28gbWFueSBhcmd1bWVudHMgYXJlIHByb3ZpZGVkLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIGFueSBvZiB0aGUgZWxlbWVudHMgaXMgbm90IGZvdW5kLlxuICAgKi9cbiAgQ2xhc3MucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiAoZWxlbWVudCwgYXR0cmlidXRlcykge1xuICAgIGxldCBkYXRhO1xuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09IHRoaXMudHlwZSlcbiAgICAgIHRocm93IG5ldyBVc2FnZUdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNhbm5vdCBmaW5kIHRoaXMgdHlwZSBvZiBlZGdlcyBpbiB5b3VyICR7dGhpcy50eXBlfSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAyKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aSlcbiAgICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjYW5ub3QgdXNlIGEge3NvdXJjZSx0YXJnZXR9IGNvbWJvIHdoZW4gYXNraW5nIGFib3V0IGFuIGVkZ2UncyBhdHRyaWJ1dGVzIGluIGEgTXVsdGlHcmFwaCBzaW5jZSB3ZSBjYW5ub3QgaW5mZXIgdGhlIG9uZSB5b3Ugd2FudCBpbmZvcm1hdGlvbiBhYm91dC5gXG4gICAgICAgICk7XG5cbiAgICAgIGNvbnN0IHNvdXJjZSA9ICcnICsgZWxlbWVudCxcbiAgICAgICAgdGFyZ2V0ID0gJycgKyBhdHRyaWJ1dGVzO1xuXG4gICAgICBhdHRyaWJ1dGVzID0gYXJndW1lbnRzWzJdO1xuXG4gICAgICBkYXRhID0gZ2V0TWF0Y2hpbmdFZGdlKHRoaXMsIHNvdXJjZSwgdGFyZ2V0LCB0eXBlKTtcblxuICAgICAgaWYgKCFkYXRhKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIGFuIGVkZ2UgZm9yIHRoZSBnaXZlbiBwYXRoIChcIiR7c291cmNlfVwiIC0gXCIke3RhcmdldH1cIikuYFxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbGVtZW50ID0gJycgKyBlbGVtZW50O1xuICAgICAgZGF0YSA9IHRoaXMuX2VkZ2VzLmdldChlbGVtZW50KTtcblxuICAgICAgaWYgKCFkYXRhKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWxlbWVudH1cIiBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1BsYWluT2JqZWN0KGF0dHJpYnV0ZXMpKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBwcm92aWRlZCBhdHRyaWJ1dGVzIGFyZSBub3QgYSBwbGFpbiBvYmplY3QuYFxuICAgICAgKTtcblxuICAgIGlmICh0eXBlICE9PSAnbWl4ZWQnICYmIGRhdGEudW5kaXJlY3RlZCAhPT0gKHR5cGUgPT09ICd1bmRpcmVjdGVkJykpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VsZW1lbnR9XCIgJHt0eXBlfSBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgZGF0YS5hdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcblxuICAgIC8vIEVtaXR0aW5nXG4gICAgdGhpcy5lbWl0KCdlZGdlQXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICBrZXk6IGRhdGEua2V5LFxuICAgICAgdHlwZTogJ3JlcGxhY2UnLFxuICAgICAgYXR0cmlidXRlczogZGF0YS5hdHRyaWJ1dGVzXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbn1cblxuLyoqXG4gKiBBdHRhY2ggYW4gYXR0cmlidXRlIG1lcmdlciBtZXRob2Qgb250byB0aGUgcHJvdmlkZWQgY2xhc3MuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gQ2xhc3MgICAgICAgICAtIFRhcmdldCBjbGFzcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIG1ldGhvZCAgICAgICAgLSBNZXRob2QgbmFtZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIHR5cGUgICAgICAgICAgLSBUeXBlIG9mIHRoZSBlZGdlIHRvIGZpbmQuXG4gKi9cbmZ1bmN0aW9uIGF0dGFjaEVkZ2VBdHRyaWJ1dGVzTWVyZ2VyKENsYXNzLCBtZXRob2QsIHR5cGUpIHtcbiAgLyoqXG4gICAqIE1lcmdlIHRoZSBhdHRyaWJ1dGVzIGZvciB0aGUgZ2l2ZW4gZWxlbWVudCAobm9kZSBvciBlZGdlKS5cbiAgICpcbiAgICogQXJpdHkgMjpcbiAgICogQHBhcmFtICB7YW55fSAgICBlbGVtZW50ICAgIC0gVGFyZ2V0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge29iamVjdH0gYXR0cmlidXRlcyAtIEF0dHJpYnV0ZXMgdG8gbWVyZ2UuXG4gICAqXG4gICAqIEFyaXR5IDMgKG9ubHkgZm9yIGVkZ2VzKTpcbiAgICogQHBhcmFtICB7YW55fSAgICAgc291cmNlICAgICAtIFNvdXJjZSBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICB0YXJnZXQgICAgIC0gVGFyZ2V0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge29iamVjdH0gIGF0dHJpYnV0ZXMgLSBBdHRyaWJ1dGVzIHRvIG1lcmdlLlxuICAgKlxuICAgKiBAcmV0dXJuIHtHcmFwaH0gICAgICAgICAgICAgIC0gUmV0dXJucyBpdHNlbGYgZm9yIGNoYWluaW5nLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRvbyBtYW55IGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgYW55IG9mIHRoZSBlbGVtZW50cyBpcyBub3QgZm91bmQuXG4gICAqL1xuICBDbGFzcy5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uIChlbGVtZW50LCBhdHRyaWJ1dGVzKSB7XG4gICAgbGV0IGRhdGE7XG5cbiAgICBpZiAodGhpcy50eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gdGhpcy50eXBlKVxuICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY2Fubm90IGZpbmQgdGhpcyB0eXBlIG9mIGVkZ2VzIGluIHlvdXIgJHt0aGlzLnR5cGV9IGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDIpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpKVxuICAgICAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNhbm5vdCB1c2UgYSB7c291cmNlLHRhcmdldH0gY29tYm8gd2hlbiBhc2tpbmcgYWJvdXQgYW4gZWRnZSdzIGF0dHJpYnV0ZXMgaW4gYSBNdWx0aUdyYXBoIHNpbmNlIHdlIGNhbm5vdCBpbmZlciB0aGUgb25lIHlvdSB3YW50IGluZm9ybWF0aW9uIGFib3V0LmBcbiAgICAgICAgKTtcblxuICAgICAgY29uc3Qgc291cmNlID0gJycgKyBlbGVtZW50LFxuICAgICAgICB0YXJnZXQgPSAnJyArIGF0dHJpYnV0ZXM7XG5cbiAgICAgIGF0dHJpYnV0ZXMgPSBhcmd1bWVudHNbMl07XG5cbiAgICAgIGRhdGEgPSBnZXRNYXRjaGluZ0VkZ2UodGhpcywgc291cmNlLCB0YXJnZXQsIHR5cGUpO1xuXG4gICAgICBpZiAoIWRhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgYW4gZWRnZSBmb3IgdGhlIGdpdmVuIHBhdGggKFwiJHtzb3VyY2V9XCIgLSBcIiR7dGFyZ2V0fVwiKS5gXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1lbnQgPSAnJyArIGVsZW1lbnQ7XG4gICAgICBkYXRhID0gdGhpcy5fZWRnZXMuZ2V0KGVsZW1lbnQpO1xuXG4gICAgICBpZiAoIWRhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtlbGVtZW50fVwiIGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzUGxhaW5PYmplY3QoYXR0cmlidXRlcykpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IHByb3ZpZGVkIGF0dHJpYnV0ZXMgYXJlIG5vdCBhIHBsYWluIG9iamVjdC5gXG4gICAgICApO1xuXG4gICAgaWYgKHR5cGUgIT09ICdtaXhlZCcgJiYgZGF0YS51bmRpcmVjdGVkICE9PSAodHlwZSA9PT0gJ3VuZGlyZWN0ZWQnKSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWxlbWVudH1cIiAke3R5cGV9IGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBhc3NpZ24oZGF0YS5hdHRyaWJ1dGVzLCBhdHRyaWJ1dGVzKTtcblxuICAgIC8vIEVtaXR0aW5nXG4gICAgdGhpcy5lbWl0KCdlZGdlQXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICBrZXk6IGRhdGEua2V5LFxuICAgICAgdHlwZTogJ21lcmdlJyxcbiAgICAgIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlcyxcbiAgICAgIGRhdGE6IGF0dHJpYnV0ZXNcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xufVxuXG4vKipcbiAqIEF0dGFjaCBhbiBhdHRyaWJ1dGUgdXBkYXRlciBtZXRob2Qgb250byB0aGUgcHJvdmlkZWQgY2xhc3MuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gQ2xhc3MgICAgICAgICAtIFRhcmdldCBjbGFzcy5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIG1ldGhvZCAgICAgICAgLSBNZXRob2QgbmFtZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIHR5cGUgICAgICAgICAgLSBUeXBlIG9mIHRoZSBlZGdlIHRvIGZpbmQuXG4gKi9cbmZ1bmN0aW9uIGF0dGFjaEVkZ2VBdHRyaWJ1dGVzVXBkYXRlcihDbGFzcywgbWV0aG9kLCB0eXBlKSB7XG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGdpdmVuIGVsZW1lbnQgKG5vZGUgb3IgZWRnZSkuXG4gICAqXG4gICAqIEFyaXR5IDI6XG4gICAqIEBwYXJhbSAge2FueX0gICAgICBlbGVtZW50IC0gVGFyZ2V0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSB1cGRhdGVyIC0gVXBkYXRlciBmdW5jdGlvbi5cbiAgICpcbiAgICogQXJpdHkgMyAob25seSBmb3IgZWRnZXMpOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgc291cmNlICAtIFNvdXJjZSBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgdGFyZ2V0ICAtIFRhcmdldCBlbGVtZW50LlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gdXBkYXRlciAtIFVwZGF0ZXIgZnVuY3Rpb24uXG4gICAqXG4gICAqIEByZXR1cm4ge0dyYXBofSAgICAgICAgICAgIC0gUmV0dXJucyBpdHNlbGYgZm9yIGNoYWluaW5nLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRvbyBtYW55IGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgYW55IG9mIHRoZSBlbGVtZW50cyBpcyBub3QgZm91bmQuXG4gICAqL1xuICBDbGFzcy5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uIChlbGVtZW50LCB1cGRhdGVyKSB7XG4gICAgbGV0IGRhdGE7XG5cbiAgICBpZiAodGhpcy50eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gdGhpcy50eXBlKVxuICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY2Fubm90IGZpbmQgdGhpcyB0eXBlIG9mIGVkZ2VzIGluIHlvdXIgJHt0aGlzLnR5cGV9IGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDIpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpKVxuICAgICAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke21ldGhvZH06IGNhbm5vdCB1c2UgYSB7c291cmNlLHRhcmdldH0gY29tYm8gd2hlbiBhc2tpbmcgYWJvdXQgYW4gZWRnZSdzIGF0dHJpYnV0ZXMgaW4gYSBNdWx0aUdyYXBoIHNpbmNlIHdlIGNhbm5vdCBpbmZlciB0aGUgb25lIHlvdSB3YW50IGluZm9ybWF0aW9uIGFib3V0LmBcbiAgICAgICAgKTtcblxuICAgICAgY29uc3Qgc291cmNlID0gJycgKyBlbGVtZW50LFxuICAgICAgICB0YXJnZXQgPSAnJyArIHVwZGF0ZXI7XG5cbiAgICAgIHVwZGF0ZXIgPSBhcmd1bWVudHNbMl07XG5cbiAgICAgIGRhdGEgPSBnZXRNYXRjaGluZ0VkZ2UodGhpcywgc291cmNlLCB0YXJnZXQsIHR5cGUpO1xuXG4gICAgICBpZiAoIWRhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgYW4gZWRnZSBmb3IgdGhlIGdpdmVuIHBhdGggKFwiJHtzb3VyY2V9XCIgLSBcIiR7dGFyZ2V0fVwiKS5gXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1lbnQgPSAnJyArIGVsZW1lbnQ7XG4gICAgICBkYXRhID0gdGhpcy5fZWRnZXMuZ2V0KGVsZW1lbnQpO1xuXG4gICAgICBpZiAoIWRhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bWV0aG9kfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtlbGVtZW50fVwiIGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHVwZGF0ZXIgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke21ldGhvZH06IHByb3ZpZGVkIHVwZGF0ZXIgaXMgbm90IGEgZnVuY3Rpb24uYFxuICAgICAgKTtcblxuICAgIGlmICh0eXBlICE9PSAnbWl4ZWQnICYmIGRhdGEudW5kaXJlY3RlZCAhPT0gKHR5cGUgPT09ICd1bmRpcmVjdGVkJykpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHttZXRob2R9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VsZW1lbnR9XCIgJHt0eXBlfSBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgZGF0YS5hdHRyaWJ1dGVzID0gdXBkYXRlcihkYXRhLmF0dHJpYnV0ZXMpO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ2VkZ2VBdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgIGtleTogZGF0YS5rZXksXG4gICAgICB0eXBlOiAndXBkYXRlJyxcbiAgICAgIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlc1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG59XG5cbi8qKlxuICogTGlzdCBvZiBtZXRob2RzIHRvIGF0dGFjaC5cbiAqL1xuY29uc3QgRURHRV9BVFRSSUJVVEVTX01FVEhPRFMgPSBbXG4gIHtcbiAgICBuYW1lOiBlbGVtZW50ID0+IGBnZXQke2VsZW1lbnR9QXR0cmlidXRlYCxcbiAgICBhdHRhY2hlcjogYXR0YWNoRWRnZUF0dHJpYnV0ZUdldHRlclxuICB9LFxuICB7XG4gICAgbmFtZTogZWxlbWVudCA9PiBgZ2V0JHtlbGVtZW50fUF0dHJpYnV0ZXNgLFxuICAgIGF0dGFjaGVyOiBhdHRhY2hFZGdlQXR0cmlidXRlc0dldHRlclxuICB9LFxuICB7XG4gICAgbmFtZTogZWxlbWVudCA9PiBgaGFzJHtlbGVtZW50fUF0dHJpYnV0ZWAsXG4gICAgYXR0YWNoZXI6IGF0dGFjaEVkZ2VBdHRyaWJ1dGVDaGVja2VyXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBlbGVtZW50ID0+IGBzZXQke2VsZW1lbnR9QXR0cmlidXRlYCxcbiAgICBhdHRhY2hlcjogYXR0YWNoRWRnZUF0dHJpYnV0ZVNldHRlclxuICB9LFxuICB7XG4gICAgbmFtZTogZWxlbWVudCA9PiBgdXBkYXRlJHtlbGVtZW50fUF0dHJpYnV0ZWAsXG4gICAgYXR0YWNoZXI6IGF0dGFjaEVkZ2VBdHRyaWJ1dGVVcGRhdGVyXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBlbGVtZW50ID0+IGByZW1vdmUke2VsZW1lbnR9QXR0cmlidXRlYCxcbiAgICBhdHRhY2hlcjogYXR0YWNoRWRnZUF0dHJpYnV0ZVJlbW92ZXJcbiAgfSxcbiAge1xuICAgIG5hbWU6IGVsZW1lbnQgPT4gYHJlcGxhY2Uke2VsZW1lbnR9QXR0cmlidXRlc2AsXG4gICAgYXR0YWNoZXI6IGF0dGFjaEVkZ2VBdHRyaWJ1dGVzUmVwbGFjZXJcbiAgfSxcbiAge1xuICAgIG5hbWU6IGVsZW1lbnQgPT4gYG1lcmdlJHtlbGVtZW50fUF0dHJpYnV0ZXNgLFxuICAgIGF0dGFjaGVyOiBhdHRhY2hFZGdlQXR0cmlidXRlc01lcmdlclxuICB9LFxuICB7XG4gICAgbmFtZTogZWxlbWVudCA9PiBgdXBkYXRlJHtlbGVtZW50fUF0dHJpYnV0ZXNgLFxuICAgIGF0dGFjaGVyOiBhdHRhY2hFZGdlQXR0cmlidXRlc1VwZGF0ZXJcbiAgfVxuXTtcblxuLyoqXG4gKiBBdHRhY2ggZXZlcnkgYXR0cmlidXRlcy1yZWxhdGVkIG1ldGhvZHMgdG8gYSBHcmFwaCBjbGFzcy5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBHcmFwaCAtIFRhcmdldCBjbGFzcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYXR0YWNoRWRnZUF0dHJpYnV0ZXNNZXRob2RzKEdyYXBoKSB7XG4gIEVER0VfQVRUUklCVVRFU19NRVRIT0RTLmZvckVhY2goZnVuY3Rpb24gKHtuYW1lLCBhdHRhY2hlcn0pIHtcbiAgICAvLyBGb3IgZWRnZXNcbiAgICBhdHRhY2hlcihHcmFwaCwgbmFtZSgnRWRnZScpLCAnbWl4ZWQnKTtcblxuICAgIC8vIEZvciBkaXJlY3RlZCBlZGdlc1xuICAgIGF0dGFjaGVyKEdyYXBoLCBuYW1lKCdEaXJlY3RlZEVkZ2UnKSwgJ2RpcmVjdGVkJyk7XG5cbiAgICAvLyBGb3IgdW5kaXJlY3RlZCBlZGdlc1xuICAgIGF0dGFjaGVyKEdyYXBoLCBuYW1lKCdVbmRpcmVjdGVkRWRnZScpLCAndW5kaXJlY3RlZCcpO1xuICB9KTtcbn1cbiIsICIvKipcbiAqIE9ibGl0ZXJhdG9yIENoYWluIEZ1bmN0aW9uXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBWYXJpYWRpYyBmdW5jdGlvbiBjb21iaW5pbmcgdGhlIGdpdmVuIGl0ZXJhYmxlcy5cbiAqL1xudmFyIEl0ZXJhdG9yID0gcmVxdWlyZSgnLi9pdGVyYXRvci5qcycpLFxuICBpdGVyID0gcmVxdWlyZSgnLi9pdGVyLmpzJyk7XG5cbi8qKlxuICogQ2hhaW4uXG4gKlxuICogQHBhcmFtICB7Li4uSXRlcmF0b3J9IGl0ZXJhYmxlcyAtIFRhcmdldCBpdGVyYWJsZXMuXG4gKiBAcmV0dXJuIHtJdGVyYXRvcn1cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjaGFpbigpIHtcbiAgdmFyIGl0ZXJhYmxlcyA9IGFyZ3VtZW50cyxcbiAgICBjdXJyZW50LFxuICAgIGkgPSAtMTtcblxuICByZXR1cm4gbmV3IEl0ZXJhdG9yKGZ1bmN0aW9uIGl0ZXJhdGUoKSB7XG4gICAgaWYgKCFjdXJyZW50KSB7XG4gICAgICBpKys7XG5cbiAgICAgIGlmIChpID49IGl0ZXJhYmxlcy5sZW5ndGgpIHJldHVybiB7ZG9uZTogdHJ1ZX07XG5cbiAgICAgIGN1cnJlbnQgPSBpdGVyKGl0ZXJhYmxlc1tpXSk7XG4gICAgfVxuXG4gICAgdmFyIHN0ZXAgPSBjdXJyZW50Lm5leHQoKTtcblxuICAgIGlmIChzdGVwLmRvbmUpIHtcbiAgICAgIGN1cnJlbnQgPSBudWxsO1xuICAgICAgcmV0dXJuIGl0ZXJhdGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RlcDtcbiAgfSk7XG59O1xuIiwgIi8qKlxuICogR3JhcGhvbG9neSBFZGdlIEl0ZXJhdGlvblxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBBdHRhY2hpbmcgc29tZSBtZXRob2RzIHRvIHRoZSBHcmFwaCBjbGFzcyB0byBiZSBhYmxlIHRvIGl0ZXJhdGUgb3ZlciBhXG4gKiBncmFwaCdzIGVkZ2VzLlxuICovXG5pbXBvcnQgSXRlcmF0b3IgZnJvbSAnb2JsaXRlcmF0b3IvaXRlcmF0b3InO1xuaW1wb3J0IGNoYWluIGZyb20gJ29ibGl0ZXJhdG9yL2NoYWluJztcbmltcG9ydCB0YWtlIGZyb20gJ29ibGl0ZXJhdG9yL3Rha2UnO1xuXG5pbXBvcnQge0ludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yLCBOb3RGb3VuZEdyYXBoRXJyb3J9IGZyb20gJy4uL2Vycm9ycyc7XG5cbi8qKlxuICogRGVmaW5pdGlvbnMuXG4gKi9cbmNvbnN0IEVER0VTX0lURVJBVElPTiA9IFtcbiAge1xuICAgIG5hbWU6ICdlZGdlcycsXG4gICAgdHlwZTogJ21peGVkJ1xuICB9LFxuICB7XG4gICAgbmFtZTogJ2luRWRnZXMnLFxuICAgIHR5cGU6ICdkaXJlY3RlZCcsXG4gICAgZGlyZWN0aW9uOiAnaW4nXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnb3V0RWRnZXMnLFxuICAgIHR5cGU6ICdkaXJlY3RlZCcsXG4gICAgZGlyZWN0aW9uOiAnb3V0J1xuICB9LFxuICB7XG4gICAgbmFtZTogJ2luYm91bmRFZGdlcycsXG4gICAgdHlwZTogJ21peGVkJyxcbiAgICBkaXJlY3Rpb246ICdpbidcbiAgfSxcbiAge1xuICAgIG5hbWU6ICdvdXRib3VuZEVkZ2VzJyxcbiAgICB0eXBlOiAnbWl4ZWQnLFxuICAgIGRpcmVjdGlvbjogJ291dCdcbiAgfSxcbiAge1xuICAgIG5hbWU6ICdkaXJlY3RlZEVkZ2VzJyxcbiAgICB0eXBlOiAnZGlyZWN0ZWQnXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAndW5kaXJlY3RlZEVkZ2VzJyxcbiAgICB0eXBlOiAndW5kaXJlY3RlZCdcbiAgfVxuXTtcblxuLyoqXG4gKiBGdW5jdGlvbiBjb2xsZWN0aW5nIGVkZ2VzIGZyb20gdGhlIGdpdmVuIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0gIHthcnJheX0gIGVkZ2VzICAtIEVkZ2VzIGFycmF5IHRvIHBvcHVsYXRlLlxuICogQHBhcmFtICB7b2JqZWN0fSBvYmplY3QgLSBUYXJnZXQgb2JqZWN0LlxuICogQHJldHVybiB7YXJyYXl9ICAgICAgICAgLSBUaGUgZm91bmQgZWRnZXMuXG4gKi9cbmZ1bmN0aW9uIGNvbGxlY3RTaW1wbGUoZWRnZXMsIG9iamVjdCkge1xuICBmb3IgKGNvbnN0IGsgaW4gb2JqZWN0KSBlZGdlcy5wdXNoKG9iamVjdFtrXS5rZXkpO1xufVxuXG5mdW5jdGlvbiBjb2xsZWN0TXVsdGkoZWRnZXMsIG9iamVjdCkge1xuICBmb3IgKGNvbnN0IGsgaW4gb2JqZWN0KVxuICAgIG9iamVjdFtrXS5mb3JFYWNoKGVkZ2VEYXRhID0+IGVkZ2VzLnB1c2goZWRnZURhdGEua2V5KSk7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgZWRnZXMgZnJvbSB0aGUgZ2l2ZW4gb2JqZWN0IHVzaW5nIGEgY2FsbGJhY2suXG4gKlxuICogQHBhcmFtIHtvYmplY3R9ICAgb2JqZWN0ICAgLSBUYXJnZXQgb2JqZWN0LlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBGdW5jdGlvbiB0byBjYWxsLlxuICovXG5mdW5jdGlvbiBmb3JFYWNoU2ltcGxlKG9iamVjdCwgY2FsbGJhY2ssIGF2b2lkKSB7XG4gIGZvciAoY29uc3QgayBpbiBvYmplY3QpIHtcbiAgICBpZiAoayA9PT0gYXZvaWQpIGNvbnRpbnVlO1xuXG4gICAgY29uc3QgZWRnZURhdGEgPSBvYmplY3Rba107XG5cbiAgICBjYWxsYmFjayhcbiAgICAgIGVkZ2VEYXRhLmtleSxcbiAgICAgIGVkZ2VEYXRhLmF0dHJpYnV0ZXMsXG4gICAgICBlZGdlRGF0YS5zb3VyY2Uua2V5LFxuICAgICAgZWRnZURhdGEudGFyZ2V0LmtleSxcbiAgICAgIGVkZ2VEYXRhLnNvdXJjZS5hdHRyaWJ1dGVzLFxuICAgICAgZWRnZURhdGEudGFyZ2V0LmF0dHJpYnV0ZXMsXG4gICAgICBlZGdlRGF0YS51bmRpcmVjdGVkXG4gICAgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmb3JFYWNoTXVsdGkob2JqZWN0LCBjYWxsYmFjaywgYXZvaWQpIHtcbiAgZm9yIChjb25zdCBrIGluIG9iamVjdCkge1xuICAgIGlmIChrID09PSBhdm9pZCkgY29udGludWU7XG5cbiAgICBvYmplY3Rba10uZm9yRWFjaChlZGdlRGF0YSA9PlxuICAgICAgY2FsbGJhY2soXG4gICAgICAgIGVkZ2VEYXRhLmtleSxcbiAgICAgICAgZWRnZURhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgZWRnZURhdGEuc291cmNlLmtleSxcbiAgICAgICAgZWRnZURhdGEudGFyZ2V0LmtleSxcbiAgICAgICAgZWRnZURhdGEuc291cmNlLmF0dHJpYnV0ZXMsXG4gICAgICAgIGVkZ2VEYXRhLnRhcmdldC5hdHRyaWJ1dGVzLFxuICAgICAgICBlZGdlRGF0YS51bmRpcmVjdGVkXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIGVkZ2VzIGZyb20gdGhlIGdpdmVuIG9iamVjdCB0byBtYXRjaCBvbmUgb2YgdGhlbS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gICBvYmplY3QgICAtIFRhcmdldCBvYmplY3QuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIEZ1bmN0aW9uIHRvIGNhbGwuXG4gKi9cbmZ1bmN0aW9uIGZpbmRTaW1wbGUob2JqZWN0LCBjYWxsYmFjaywgYXZvaWQpIHtcbiAgbGV0IHNob3VsZEJyZWFrID0gZmFsc2U7XG5cbiAgZm9yIChjb25zdCBrIGluIG9iamVjdCkge1xuICAgIGlmIChrID09PSBhdm9pZCkgY29udGludWU7XG5cbiAgICBjb25zdCBlZGdlRGF0YSA9IG9iamVjdFtrXTtcblxuICAgIHNob3VsZEJyZWFrID0gY2FsbGJhY2soXG4gICAgICBlZGdlRGF0YS5rZXksXG4gICAgICBlZGdlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgZWRnZURhdGEuc291cmNlLmtleSxcbiAgICAgIGVkZ2VEYXRhLnRhcmdldC5rZXksXG4gICAgICBlZGdlRGF0YS5zb3VyY2UuYXR0cmlidXRlcyxcbiAgICAgIGVkZ2VEYXRhLnRhcmdldC5hdHRyaWJ1dGVzLFxuICAgICAgZWRnZURhdGEudW5kaXJlY3RlZFxuICAgICk7XG5cbiAgICBpZiAoc2hvdWxkQnJlYWspIHJldHVybiBlZGdlRGF0YS5rZXk7XG4gIH1cblxuICByZXR1cm47XG59XG5cbmZ1bmN0aW9uIGZpbmRNdWx0aShvYmplY3QsIGNhbGxiYWNrLCBhdm9pZCkge1xuICBsZXQgaXRlcmF0b3IsIHN0ZXAsIGVkZ2VEYXRhLCBzb3VyY2UsIHRhcmdldDtcblxuICBsZXQgc2hvdWxkQnJlYWsgPSBmYWxzZTtcblxuICBmb3IgKGNvbnN0IGsgaW4gb2JqZWN0KSB7XG4gICAgaWYgKGsgPT09IGF2b2lkKSBjb250aW51ZTtcblxuICAgIGl0ZXJhdG9yID0gb2JqZWN0W2tdLnZhbHVlcygpO1xuXG4gICAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICAgIGVkZ2VEYXRhID0gc3RlcC52YWx1ZTtcbiAgICAgIHNvdXJjZSA9IGVkZ2VEYXRhLnNvdXJjZTtcbiAgICAgIHRhcmdldCA9IGVkZ2VEYXRhLnRhcmdldDtcblxuICAgICAgc2hvdWxkQnJlYWsgPSBjYWxsYmFjayhcbiAgICAgICAgZWRnZURhdGEua2V5LFxuICAgICAgICBlZGdlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICBzb3VyY2Uua2V5LFxuICAgICAgICB0YXJnZXQua2V5LFxuICAgICAgICBzb3VyY2UuYXR0cmlidXRlcyxcbiAgICAgICAgdGFyZ2V0LmF0dHJpYnV0ZXMsXG4gICAgICAgIGVkZ2VEYXRhLnVuZGlyZWN0ZWRcbiAgICAgICk7XG5cbiAgICAgIGlmIChzaG91bGRCcmVhaykgcmV0dXJuIGVkZ2VEYXRhLmtleTtcbiAgICB9XG4gIH1cblxuICByZXR1cm47XG59XG5cbi8qKlxuICogRnVuY3Rpb24gcmV0dXJuaW5nIGFuIGl0ZXJhdG9yIG92ZXIgZWRnZXMgZnJvbSB0aGUgZ2l2ZW4gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSAge29iamVjdH0gICBvYmplY3QgLSBUYXJnZXQgb2JqZWN0LlxuICogQHJldHVybiB7SXRlcmF0b3J9XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUl0ZXJhdG9yKG9iamVjdCwgYXZvaWQpIHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCksXG4gICAgbCA9IGtleXMubGVuZ3RoO1xuXG4gIGxldCBpbm5lciA9IG51bGwsXG4gICAgaSA9IDA7XG5cbiAgcmV0dXJuIG5ldyBJdGVyYXRvcihmdW5jdGlvbiBuZXh0KCkge1xuICAgIGxldCBlZGdlRGF0YTtcblxuICAgIGlmIChpbm5lcikge1xuICAgICAgY29uc3Qgc3RlcCA9IGlubmVyLm5leHQoKTtcblxuICAgICAgaWYgKHN0ZXAuZG9uZSkge1xuICAgICAgICBpbm5lciA9IG51bGw7XG4gICAgICAgIGkrKztcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgIH1cblxuICAgICAgZWRnZURhdGEgPSBzdGVwLnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaSA+PSBsKSByZXR1cm4ge2RvbmU6IHRydWV9O1xuXG4gICAgICBjb25zdCBrID0ga2V5c1tpXTtcblxuICAgICAgaWYgKGsgPT09IGF2b2lkKSB7XG4gICAgICAgIGkrKztcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgIH1cblxuICAgICAgZWRnZURhdGEgPSBvYmplY3Rba107XG5cbiAgICAgIGlmIChlZGdlRGF0YSBpbnN0YW5jZW9mIFNldCkge1xuICAgICAgICBpbm5lciA9IGVkZ2VEYXRhLnZhbHVlcygpO1xuICAgICAgICByZXR1cm4gbmV4dCgpO1xuICAgICAgfVxuXG4gICAgICBpKys7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRvbmU6IGZhbHNlLFxuICAgICAgdmFsdWU6IHtcbiAgICAgICAgZWRnZTogZWRnZURhdGEua2V5LFxuICAgICAgICBhdHRyaWJ1dGVzOiBlZGdlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICBzb3VyY2U6IGVkZ2VEYXRhLnNvdXJjZS5rZXksXG4gICAgICAgIHRhcmdldDogZWRnZURhdGEudGFyZ2V0LmtleSxcbiAgICAgICAgc291cmNlQXR0cmlidXRlczogZWRnZURhdGEuc291cmNlLmF0dHJpYnV0ZXMsXG4gICAgICAgIHRhcmdldEF0dHJpYnV0ZXM6IGVkZ2VEYXRhLnRhcmdldC5hdHRyaWJ1dGVzLFxuICAgICAgICB1bmRpcmVjdGVkOiBlZGdlRGF0YS51bmRpcmVjdGVkXG4gICAgICB9XG4gICAgfTtcbiAgfSk7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gY29sbGVjdGluZyBlZGdlcyBmcm9tIHRoZSBnaXZlbiBvYmplY3QgYXQgZ2l2ZW4ga2V5LlxuICpcbiAqIEBwYXJhbSAge2FycmF5fSAgZWRnZXMgIC0gRWRnZXMgYXJyYXkgdG8gcG9wdWxhdGUuXG4gKiBAcGFyYW0gIHtvYmplY3R9IG9iamVjdCAtIFRhcmdldCBvYmplY3QuXG4gKiBAcGFyYW0gIHttaXhlZH0gIGsgICAgICAtIE5laWdoYm9yIGtleS5cbiAqIEByZXR1cm4ge2FycmF5fSAgICAgICAgIC0gVGhlIGZvdW5kIGVkZ2VzLlxuICovXG5mdW5jdGlvbiBjb2xsZWN0Rm9yS2V5U2ltcGxlKGVkZ2VzLCBvYmplY3QsIGspIHtcbiAgY29uc3QgZWRnZURhdGEgPSBvYmplY3Rba107XG5cbiAgaWYgKCFlZGdlRGF0YSkgcmV0dXJuO1xuXG4gIGVkZ2VzLnB1c2goZWRnZURhdGEua2V5KTtcbn1cblxuZnVuY3Rpb24gY29sbGVjdEZvcktleU11bHRpKGVkZ2VzLCBvYmplY3QsIGspIHtcbiAgY29uc3QgZWRnZXNEYXRhID0gb2JqZWN0W2tdO1xuXG4gIGlmICghZWRnZXNEYXRhKSByZXR1cm47XG5cbiAgZWRnZXNEYXRhLmZvckVhY2goZWRnZURhdGEgPT4gZWRnZXMucHVzaChlZGdlRGF0YS5rZXkpKTtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBpdGVyYXRpbmcgb3ZlciB0aGUgZWdkZXMgZnJvbSB0aGUgb2JqZWN0IGF0IGdpdmVuIGtleSB1c2luZ1xuICogYSBjYWxsYmFjay5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gICBvYmplY3QgICAtIFRhcmdldCBvYmplY3QuXG4gKiBAcGFyYW0ge21peGVkfSAgICBrICAgICAgICAtIE5laWdoYm9yIGtleS5cbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICovXG5mdW5jdGlvbiBmb3JFYWNoRm9yS2V5U2ltcGxlKG9iamVjdCwgaywgY2FsbGJhY2spIHtcbiAgY29uc3QgZWRnZURhdGEgPSBvYmplY3Rba107XG5cbiAgaWYgKCFlZGdlRGF0YSkgcmV0dXJuO1xuXG4gIGNvbnN0IHNvdXJjZURhdGEgPSBlZGdlRGF0YS5zb3VyY2U7XG4gIGNvbnN0IHRhcmdldERhdGEgPSBlZGdlRGF0YS50YXJnZXQ7XG5cbiAgY2FsbGJhY2soXG4gICAgZWRnZURhdGEua2V5LFxuICAgIGVkZ2VEYXRhLmF0dHJpYnV0ZXMsXG4gICAgc291cmNlRGF0YS5rZXksXG4gICAgdGFyZ2V0RGF0YS5rZXksXG4gICAgc291cmNlRGF0YS5hdHRyaWJ1dGVzLFxuICAgIHRhcmdldERhdGEuYXR0cmlidXRlcyxcbiAgICBlZGdlRGF0YS51bmRpcmVjdGVkXG4gICk7XG59XG5cbmZ1bmN0aW9uIGZvckVhY2hGb3JLZXlNdWx0aShvYmplY3QsIGssIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGVkZ2VzRGF0YSA9IG9iamVjdFtrXTtcblxuICBpZiAoIWVkZ2VzRGF0YSkgcmV0dXJuO1xuXG4gIGVkZ2VzRGF0YS5mb3JFYWNoKGVkZ2VEYXRhID0+XG4gICAgY2FsbGJhY2soXG4gICAgICBlZGdlRGF0YS5rZXksXG4gICAgICBlZGdlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgZWRnZURhdGEuc291cmNlLmtleSxcbiAgICAgIGVkZ2VEYXRhLnRhcmdldC5rZXksXG4gICAgICBlZGdlRGF0YS5zb3VyY2UuYXR0cmlidXRlcyxcbiAgICAgIGVkZ2VEYXRhLnRhcmdldC5hdHRyaWJ1dGVzLFxuICAgICAgZWRnZURhdGEudW5kaXJlY3RlZFxuICAgIClcbiAgKTtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBpdGVyYXRpbmcgb3ZlciB0aGUgZWdkZXMgZnJvbSB0aGUgb2JqZWN0IGF0IGdpdmVuIGtleSB0byBtYXRjaFxuICogb25lIG9mIHRoZW0uXG4gKlxuICogQHBhcmFtIHtvYmplY3R9ICAgb2JqZWN0ICAgLSBUYXJnZXQgb2JqZWN0LlxuICogQHBhcmFtIHttaXhlZH0gICAgayAgICAgICAgLSBOZWlnaGJvciBrZXkuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAqL1xuZnVuY3Rpb24gZmluZEZvcktleVNpbXBsZShvYmplY3QsIGssIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGVkZ2VEYXRhID0gb2JqZWN0W2tdO1xuXG4gIGlmICghZWRnZURhdGEpIHJldHVybjtcblxuICBjb25zdCBzb3VyY2VEYXRhID0gZWRnZURhdGEuc291cmNlO1xuICBjb25zdCB0YXJnZXREYXRhID0gZWRnZURhdGEudGFyZ2V0O1xuXG4gIGlmIChcbiAgICBjYWxsYmFjayhcbiAgICAgIGVkZ2VEYXRhLmtleSxcbiAgICAgIGVkZ2VEYXRhLmF0dHJpYnV0ZXMsXG4gICAgICBzb3VyY2VEYXRhLmtleSxcbiAgICAgIHRhcmdldERhdGEua2V5LFxuICAgICAgc291cmNlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgdGFyZ2V0RGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgZWRnZURhdGEudW5kaXJlY3RlZFxuICAgIClcbiAgKVxuICAgIHJldHVybiBlZGdlRGF0YS5rZXk7XG59XG5cbmZ1bmN0aW9uIGZpbmRGb3JLZXlNdWx0aShvYmplY3QsIGssIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGVkZ2VzRGF0YSA9IG9iamVjdFtrXTtcblxuICBpZiAoIWVkZ2VzRGF0YSkgcmV0dXJuO1xuXG4gIGxldCBzaG91bGRCcmVhayA9IGZhbHNlO1xuXG4gIGNvbnN0IGl0ZXJhdG9yID0gZWRnZXNEYXRhLnZhbHVlcygpO1xuICBsZXQgc3RlcCwgZWRnZURhdGE7XG5cbiAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICBlZGdlRGF0YSA9IHN0ZXAudmFsdWU7XG5cbiAgICBzaG91bGRCcmVhayA9IGNhbGxiYWNrKFxuICAgICAgZWRnZURhdGEua2V5LFxuICAgICAgZWRnZURhdGEuYXR0cmlidXRlcyxcbiAgICAgIGVkZ2VEYXRhLnNvdXJjZS5rZXksXG4gICAgICBlZGdlRGF0YS50YXJnZXQua2V5LFxuICAgICAgZWRnZURhdGEuc291cmNlLmF0dHJpYnV0ZXMsXG4gICAgICBlZGdlRGF0YS50YXJnZXQuYXR0cmlidXRlcyxcbiAgICAgIGVkZ2VEYXRhLnVuZGlyZWN0ZWRcbiAgICApO1xuXG4gICAgaWYgKHNob3VsZEJyZWFrKSByZXR1cm4gZWRnZURhdGEua2V5O1xuICB9XG5cbiAgcmV0dXJuO1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIHJldHVybmluZyBhbiBpdGVyYXRvciBvdmVyIHRoZSBlZ2RlcyBmcm9tIHRoZSBvYmplY3QgYXQgZ2l2ZW4ga2V5LlxuICpcbiAqIEBwYXJhbSAge29iamVjdH0gICBvYmplY3QgICAtIFRhcmdldCBvYmplY3QuXG4gKiBAcGFyYW0gIHttaXhlZH0gICAgayAgICAgICAgLSBOZWlnaGJvciBrZXkuXG4gKiBAcmV0dXJuIHtJdGVyYXRvcn1cbiAqL1xuZnVuY3Rpb24gY3JlYXRlSXRlcmF0b3JGb3JLZXkob2JqZWN0LCBrKSB7XG4gIGNvbnN0IHYgPSBvYmplY3Rba107XG5cbiAgaWYgKHYgaW5zdGFuY2VvZiBTZXQpIHtcbiAgICBjb25zdCBpdGVyYXRvciA9IHYudmFsdWVzKCk7XG5cbiAgICByZXR1cm4gbmV3IEl0ZXJhdG9yKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHN0ZXAgPSBpdGVyYXRvci5uZXh0KCk7XG5cbiAgICAgIGlmIChzdGVwLmRvbmUpIHJldHVybiBzdGVwO1xuXG4gICAgICBjb25zdCBlZGdlRGF0YSA9IHN0ZXAudmFsdWU7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRvbmU6IGZhbHNlLFxuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIGVkZ2U6IGVkZ2VEYXRhLmtleSxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiBlZGdlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgIHNvdXJjZTogZWRnZURhdGEuc291cmNlLmtleSxcbiAgICAgICAgICB0YXJnZXQ6IGVkZ2VEYXRhLnRhcmdldC5rZXksXG4gICAgICAgICAgc291cmNlQXR0cmlidXRlczogZWRnZURhdGEuc291cmNlLmF0dHJpYnV0ZXMsXG4gICAgICAgICAgdGFyZ2V0QXR0cmlidXRlczogZWRnZURhdGEudGFyZ2V0LmF0dHJpYnV0ZXMsXG4gICAgICAgICAgdW5kaXJlY3RlZDogZWRnZURhdGEudW5kaXJlY3RlZFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIEl0ZXJhdG9yLm9mKFtcbiAgICB2LmtleSxcbiAgICB2LmF0dHJpYnV0ZXMsXG4gICAgdi5zb3VyY2Uua2V5LFxuICAgIHYudGFyZ2V0LmtleSxcbiAgICB2LnNvdXJjZS5hdHRyaWJ1dGVzLFxuICAgIHYudGFyZ2V0LmF0dHJpYnV0ZXNcbiAgXSk7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gY3JlYXRpbmcgYW4gYXJyYXkgb2YgZWRnZXMgZm9yIHRoZSBnaXZlbiB0eXBlLlxuICpcbiAqIEBwYXJhbSAge0dyYXBofSAgIGdyYXBoIC0gVGFyZ2V0IEdyYXBoIGluc3RhbmNlLlxuICogQHBhcmFtICB7c3RyaW5nfSAgdHlwZSAgLSBUeXBlIG9mIGVkZ2VzIHRvIHJldHJpZXZlLlxuICogQHJldHVybiB7YXJyYXl9ICAgICAgICAgLSBBcnJheSBvZiBlZGdlcy5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlRWRnZUFycmF5KGdyYXBoLCB0eXBlKSB7XG4gIGlmIChncmFwaC5zaXplID09PSAwKSByZXR1cm4gW107XG5cbiAgaWYgKHR5cGUgPT09ICdtaXhlZCcgfHwgdHlwZSA9PT0gZ3JhcGgudHlwZSkge1xuICAgIGlmICh0eXBlb2YgQXJyYXkuZnJvbSA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgIHJldHVybiBBcnJheS5mcm9tKGdyYXBoLl9lZGdlcy5rZXlzKCkpO1xuXG4gICAgcmV0dXJuIHRha2UoZ3JhcGguX2VkZ2VzLmtleXMoKSwgZ3JhcGguX2VkZ2VzLnNpemUpO1xuICB9XG5cbiAgY29uc3Qgc2l6ZSA9XG4gICAgdHlwZSA9PT0gJ3VuZGlyZWN0ZWQnID8gZ3JhcGgudW5kaXJlY3RlZFNpemUgOiBncmFwaC5kaXJlY3RlZFNpemU7XG5cbiAgY29uc3QgbGlzdCA9IG5ldyBBcnJheShzaXplKSxcbiAgICBtYXNrID0gdHlwZSA9PT0gJ3VuZGlyZWN0ZWQnO1xuXG4gIGNvbnN0IGl0ZXJhdG9yID0gZ3JhcGguX2VkZ2VzLnZhbHVlcygpO1xuXG4gIGxldCBpID0gMDtcbiAgbGV0IHN0ZXAsIGRhdGE7XG5cbiAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICBkYXRhID0gc3RlcC52YWx1ZTtcblxuICAgIGlmIChkYXRhLnVuZGlyZWN0ZWQgPT09IG1hc2spIGxpc3RbaSsrXSA9IGRhdGEua2V5O1xuICB9XG5cbiAgcmV0dXJuIGxpc3Q7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgYSBncmFwaCdzIGVkZ2VzIHVzaW5nIGEgY2FsbGJhY2suXG4gKlxuICogQHBhcmFtICB7R3JhcGh9ICAgIGdyYXBoICAgIC0gVGFyZ2V0IEdyYXBoIGluc3RhbmNlLlxuICogQHBhcmFtICB7c3RyaW5nfSAgIHR5cGUgICAgIC0gVHlwZSBvZiBlZGdlcyB0byByZXRyaWV2ZS5cbiAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAtIEZ1bmN0aW9uIHRvIGNhbGwuXG4gKi9cbmZ1bmN0aW9uIGZvckVhY2hFZGdlKGdyYXBoLCB0eXBlLCBjYWxsYmFjaykge1xuICBpZiAoZ3JhcGguc2l6ZSA9PT0gMCkgcmV0dXJuO1xuXG4gIGNvbnN0IHNob3VsZEZpbHRlciA9IHR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gZ3JhcGgudHlwZTtcbiAgY29uc3QgbWFzayA9IHR5cGUgPT09ICd1bmRpcmVjdGVkJztcblxuICBsZXQgc3RlcCwgZGF0YTtcbiAgY29uc3QgaXRlcmF0b3IgPSBncmFwaC5fZWRnZXMudmFsdWVzKCk7XG5cbiAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICBkYXRhID0gc3RlcC52YWx1ZTtcblxuICAgIGlmIChzaG91bGRGaWx0ZXIgJiYgZGF0YS51bmRpcmVjdGVkICE9PSBtYXNrKSBjb250aW51ZTtcblxuICAgIGNvbnN0IHtrZXksIGF0dHJpYnV0ZXMsIHNvdXJjZSwgdGFyZ2V0fSA9IGRhdGE7XG5cbiAgICBjYWxsYmFjayhcbiAgICAgIGtleSxcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICBzb3VyY2Uua2V5LFxuICAgICAgdGFyZ2V0LmtleSxcbiAgICAgIHNvdXJjZS5hdHRyaWJ1dGVzLFxuICAgICAgdGFyZ2V0LmF0dHJpYnV0ZXMsXG4gICAgICBkYXRhLnVuZGlyZWN0ZWRcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgYSBncmFwaCdzIGVkZ2VzIHVzaW5nIGEgY2FsbGJhY2sgdG8gbWF0Y2ggb25lIG9mXG4gKiB0aGVtLlxuICpcbiAqIEBwYXJhbSAge0dyYXBofSAgICBncmFwaCAgICAtIFRhcmdldCBHcmFwaCBpbnN0YW5jZS5cbiAqIEBwYXJhbSAge3N0cmluZ30gICB0eXBlICAgICAtIFR5cGUgb2YgZWRnZXMgdG8gcmV0cmlldmUuXG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBGdW5jdGlvbiB0byBjYWxsLlxuICovXG5mdW5jdGlvbiBmaW5kRWRnZShncmFwaCwgdHlwZSwgY2FsbGJhY2spIHtcbiAgaWYgKGdyYXBoLnNpemUgPT09IDApIHJldHVybjtcblxuICBjb25zdCBzaG91bGRGaWx0ZXIgPSB0eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09IGdyYXBoLnR5cGU7XG4gIGNvbnN0IG1hc2sgPSB0eXBlID09PSAndW5kaXJlY3RlZCc7XG5cbiAgbGV0IHN0ZXAsIGRhdGE7XG4gIGxldCBzaG91bGRCcmVhayA9IGZhbHNlO1xuICBjb25zdCBpdGVyYXRvciA9IGdyYXBoLl9lZGdlcy52YWx1ZXMoKTtcblxuICB3aGlsZSAoKChzdGVwID0gaXRlcmF0b3IubmV4dCgpKSwgc3RlcC5kb25lICE9PSB0cnVlKSkge1xuICAgIGRhdGEgPSBzdGVwLnZhbHVlO1xuXG4gICAgaWYgKHNob3VsZEZpbHRlciAmJiBkYXRhLnVuZGlyZWN0ZWQgIT09IG1hc2spIGNvbnRpbnVlO1xuXG4gICAgY29uc3Qge2tleSwgYXR0cmlidXRlcywgc291cmNlLCB0YXJnZXR9ID0gZGF0YTtcblxuICAgIHNob3VsZEJyZWFrID0gY2FsbGJhY2soXG4gICAgICBrZXksXG4gICAgICBhdHRyaWJ1dGVzLFxuICAgICAgc291cmNlLmtleSxcbiAgICAgIHRhcmdldC5rZXksXG4gICAgICBzb3VyY2UuYXR0cmlidXRlcyxcbiAgICAgIHRhcmdldC5hdHRyaWJ1dGVzLFxuICAgICAgZGF0YS51bmRpcmVjdGVkXG4gICAgKTtcblxuICAgIGlmIChzaG91bGRCcmVhaykgcmV0dXJuIGtleTtcbiAgfVxuXG4gIHJldHVybjtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBjcmVhdGluZyBhbiBpdGVyYXRvciBvZiBlZGdlcyBmb3IgdGhlIGdpdmVuIHR5cGUuXG4gKlxuICogQHBhcmFtICB7R3JhcGh9ICAgIGdyYXBoIC0gVGFyZ2V0IEdyYXBoIGluc3RhbmNlLlxuICogQHBhcmFtICB7c3RyaW5nfSAgIHR5cGUgIC0gVHlwZSBvZiBlZGdlcyB0byByZXRyaWV2ZS5cbiAqIEByZXR1cm4ge0l0ZXJhdG9yfVxuICovXG5mdW5jdGlvbiBjcmVhdGVFZGdlSXRlcmF0b3IoZ3JhcGgsIHR5cGUpIHtcbiAgaWYgKGdyYXBoLnNpemUgPT09IDApIHJldHVybiBJdGVyYXRvci5lbXB0eSgpO1xuXG4gIGNvbnN0IHNob3VsZEZpbHRlciA9IHR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gZ3JhcGgudHlwZTtcbiAgY29uc3QgbWFzayA9IHR5cGUgPT09ICd1bmRpcmVjdGVkJztcblxuICBjb25zdCBpdGVyYXRvciA9IGdyYXBoLl9lZGdlcy52YWx1ZXMoKTtcblxuICByZXR1cm4gbmV3IEl0ZXJhdG9yKGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgbGV0IHN0ZXAsIGRhdGE7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc3RhbnQtY29uZGl0aW9uXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIHN0ZXAgPSBpdGVyYXRvci5uZXh0KCk7XG5cbiAgICAgIGlmIChzdGVwLmRvbmUpIHJldHVybiBzdGVwO1xuXG4gICAgICBkYXRhID0gc3RlcC52YWx1ZTtcblxuICAgICAgaWYgKHNob3VsZEZpbHRlciAmJiBkYXRhLnVuZGlyZWN0ZWQgIT09IG1hc2spIGNvbnRpbnVlO1xuXG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHtcbiAgICAgIGVkZ2U6IGRhdGEua2V5LFxuICAgICAgYXR0cmlidXRlczogZGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgc291cmNlOiBkYXRhLnNvdXJjZS5rZXksXG4gICAgICB0YXJnZXQ6IGRhdGEudGFyZ2V0LmtleSxcbiAgICAgIHNvdXJjZUF0dHJpYnV0ZXM6IGRhdGEuc291cmNlLmF0dHJpYnV0ZXMsXG4gICAgICB0YXJnZXRBdHRyaWJ1dGVzOiBkYXRhLnRhcmdldC5hdHRyaWJ1dGVzLFxuICAgICAgdW5kaXJlY3RlZDogZGF0YS51bmRpcmVjdGVkXG4gICAgfTtcblxuICAgIHJldHVybiB7dmFsdWUsIGRvbmU6IGZhbHNlfTtcbiAgfSk7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gY3JlYXRpbmcgYW4gYXJyYXkgb2YgZWRnZXMgZm9yIHRoZSBnaXZlbiB0eXBlICYgdGhlIGdpdmVuIG5vZGUuXG4gKlxuICogQHBhcmFtICB7Ym9vbGVhbn0gbXVsdGkgICAgIC0gV2hldGhlciB0aGUgZ3JhcGggaXMgbXVsdGkgb3Igbm90LlxuICogQHBhcmFtICB7c3RyaW5nfSAgdHlwZSAgICAgIC0gVHlwZSBvZiBlZGdlcyB0byByZXRyaWV2ZS5cbiAqIEBwYXJhbSAge3N0cmluZ30gIGRpcmVjdGlvbiAtIEluIG9yIG91dD9cbiAqIEBwYXJhbSAge2FueX0gICAgIG5vZGVEYXRhICAtIFRhcmdldCBub2RlJ3MgZGF0YS5cbiAqIEByZXR1cm4ge2FycmF5fSAgICAgICAgICAgICAtIEFycmF5IG9mIGVkZ2VzLlxuICovXG5mdW5jdGlvbiBjcmVhdGVFZGdlQXJyYXlGb3JOb2RlKG11bHRpLCB0eXBlLCBkaXJlY3Rpb24sIG5vZGVEYXRhKSB7XG4gIGNvbnN0IGVkZ2VzID0gW107XG5cbiAgY29uc3QgZm4gPSBtdWx0aSA/IGNvbGxlY3RNdWx0aSA6IGNvbGxlY3RTaW1wbGU7XG5cbiAgaWYgKHR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgIGlmIChkaXJlY3Rpb24gIT09ICdvdXQnKSBmbihlZGdlcywgbm9kZURhdGEuaW4pO1xuICAgIGlmIChkaXJlY3Rpb24gIT09ICdpbicpIGZuKGVkZ2VzLCBub2RlRGF0YS5vdXQpO1xuXG4gICAgLy8gSGFuZGxpbmcgc2VsZiBsb29wIGVkZ2UgY2FzZVxuICAgIGlmICghZGlyZWN0aW9uICYmIG5vZGVEYXRhLmRpcmVjdGVkU2VsZkxvb3BzID4gMClcbiAgICAgIGVkZ2VzLnNwbGljZShlZGdlcy5sYXN0SW5kZXhPZihub2RlRGF0YS5rZXkpLCAxKTtcbiAgfVxuXG4gIGlmICh0eXBlICE9PSAnZGlyZWN0ZWQnKSB7XG4gICAgZm4oZWRnZXMsIG5vZGVEYXRhLnVuZGlyZWN0ZWQpO1xuICB9XG5cbiAgcmV0dXJuIGVkZ2VzO1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIGEgbm9kZSdzIGVkZ2VzIHVzaW5nIGEgY2FsbGJhY2suXG4gKlxuICogQHBhcmFtICB7Ym9vbGVhbn0gIG11bHRpICAgICAtIFdoZXRoZXIgdGhlIGdyYXBoIGlzIG11bHRpIG9yIG5vdC5cbiAqIEBwYXJhbSAge3N0cmluZ30gICB0eXBlICAgICAgLSBUeXBlIG9mIGVkZ2VzIHRvIHJldHJpZXZlLlxuICogQHBhcmFtICB7c3RyaW5nfSAgIGRpcmVjdGlvbiAtIEluIG9yIG91dD9cbiAqIEBwYXJhbSAge2FueX0gICAgICBub2RlRGF0YSAgLSBUYXJnZXQgbm9kZSdzIGRhdGEuXG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgIC0gRnVuY3Rpb24gdG8gY2FsbC5cbiAqL1xuZnVuY3Rpb24gZm9yRWFjaEVkZ2VGb3JOb2RlKG11bHRpLCB0eXBlLCBkaXJlY3Rpb24sIG5vZGVEYXRhLCBjYWxsYmFjaykge1xuICBjb25zdCBmbiA9IG11bHRpID8gZm9yRWFjaE11bHRpIDogZm9yRWFjaFNpbXBsZTtcblxuICBpZiAodHlwZSAhPT0gJ3VuZGlyZWN0ZWQnKSB7XG4gICAgaWYgKGRpcmVjdGlvbiAhPT0gJ291dCcpIGZuKG5vZGVEYXRhLmluLCBjYWxsYmFjayk7XG4gICAgaWYgKGRpcmVjdGlvbiAhPT0gJ2luJylcbiAgICAgIGZuKG5vZGVEYXRhLm91dCwgY2FsbGJhY2ssICFkaXJlY3Rpb24gPyBub2RlRGF0YS5rZXkgOiBudWxsKTtcbiAgfVxuXG4gIGlmICh0eXBlICE9PSAnZGlyZWN0ZWQnKSB7XG4gICAgZm4obm9kZURhdGEudW5kaXJlY3RlZCwgY2FsbGJhY2spO1xuICB9XG59XG5cbi8qKlxuICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgYSBub2RlJ3MgZWRnZXMgdXNpbmcgYSBjYWxsYmFjayB0byBtYXRjaCBvbmUgb2YgdGhlbS5cbiAqXG4gKiBAcGFyYW0gIHtib29sZWFufSAgbXVsdGkgICAgIC0gV2hldGhlciB0aGUgZ3JhcGggaXMgbXVsdGkgb3Igbm90LlxuICogQHBhcmFtICB7c3RyaW5nfSAgIHR5cGUgICAgICAtIFR5cGUgb2YgZWRnZXMgdG8gcmV0cmlldmUuXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgZGlyZWN0aW9uIC0gSW4gb3Igb3V0P1xuICogQHBhcmFtICB7YW55fSAgICAgIG5vZGVEYXRhICAtIFRhcmdldCBub2RlJ3MgZGF0YS5cbiAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAgLSBGdW5jdGlvbiB0byBjYWxsLlxuICovXG5mdW5jdGlvbiBmaW5kRWRnZUZvck5vZGUobXVsdGksIHR5cGUsIGRpcmVjdGlvbiwgbm9kZURhdGEsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGZuID0gbXVsdGkgPyBmaW5kTXVsdGkgOiBmaW5kU2ltcGxlO1xuXG4gIGxldCBmb3VuZDtcblxuICBpZiAodHlwZSAhPT0gJ3VuZGlyZWN0ZWQnKSB7XG4gICAgaWYgKGRpcmVjdGlvbiAhPT0gJ291dCcpIHtcbiAgICAgIGZvdW5kID0gZm4obm9kZURhdGEuaW4sIGNhbGxiYWNrKTtcblxuICAgICAgaWYgKGZvdW5kKSByZXR1cm4gZm91bmQ7XG4gICAgfVxuICAgIGlmIChkaXJlY3Rpb24gIT09ICdpbicpIHtcbiAgICAgIGZvdW5kID0gZm4obm9kZURhdGEub3V0LCBjYWxsYmFjaywgIWRpcmVjdGlvbiA/IG5vZGVEYXRhLmtleSA6IG51bGwpO1xuXG4gICAgICBpZiAoZm91bmQpIHJldHVybiBmb3VuZDtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZSAhPT0gJ2RpcmVjdGVkJykge1xuICAgIGZvdW5kID0gZm4obm9kZURhdGEudW5kaXJlY3RlZCwgY2FsbGJhY2spO1xuXG4gICAgaWYgKGZvdW5kKSByZXR1cm4gZm91bmQ7XG4gIH1cblxuICByZXR1cm47XG59XG5cbi8qKlxuICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgYSBub2RlJ3MgZWRnZXMgdXNpbmcgYSBjYWxsYmFjay5cbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgdHlwZSAgICAgIC0gVHlwZSBvZiBlZGdlcyB0byByZXRyaWV2ZS5cbiAqIEBwYXJhbSAge3N0cmluZ30gICBkaXJlY3Rpb24gLSBJbiBvciBvdXQ/XG4gKiBAcGFyYW0gIHthbnl9ICAgICAgbm9kZURhdGEgIC0gVGFyZ2V0IG5vZGUncyBkYXRhLlxuICogQHJldHVybiB7SXRlcmF0b3J9XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUVkZ2VJdGVyYXRvckZvck5vZGUodHlwZSwgZGlyZWN0aW9uLCBub2RlRGF0YSkge1xuICBsZXQgaXRlcmF0b3IgPSBJdGVyYXRvci5lbXB0eSgpO1xuXG4gIGlmICh0eXBlICE9PSAndW5kaXJlY3RlZCcpIHtcbiAgICBpZiAoZGlyZWN0aW9uICE9PSAnb3V0JyAmJiB0eXBlb2Ygbm9kZURhdGEuaW4gIT09ICd1bmRlZmluZWQnKVxuICAgICAgaXRlcmF0b3IgPSBjaGFpbihpdGVyYXRvciwgY3JlYXRlSXRlcmF0b3Iobm9kZURhdGEuaW4pKTtcbiAgICBpZiAoZGlyZWN0aW9uICE9PSAnaW4nICYmIHR5cGVvZiBub2RlRGF0YS5vdXQgIT09ICd1bmRlZmluZWQnKVxuICAgICAgaXRlcmF0b3IgPSBjaGFpbihcbiAgICAgICAgaXRlcmF0b3IsXG4gICAgICAgIGNyZWF0ZUl0ZXJhdG9yKG5vZGVEYXRhLm91dCwgIWRpcmVjdGlvbiA/IG5vZGVEYXRhLmtleSA6IG51bGwpXG4gICAgICApO1xuICB9XG5cbiAgaWYgKHR5cGUgIT09ICdkaXJlY3RlZCcgJiYgdHlwZW9mIG5vZGVEYXRhLnVuZGlyZWN0ZWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgaXRlcmF0b3IgPSBjaGFpbihpdGVyYXRvciwgY3JlYXRlSXRlcmF0b3Iobm9kZURhdGEudW5kaXJlY3RlZCkpO1xuICB9XG5cbiAgcmV0dXJuIGl0ZXJhdG9yO1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGNyZWF0aW5nIGFuIGFycmF5IG9mIGVkZ2VzIGZvciB0aGUgZ2l2ZW4gcGF0aC5cbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgdHlwZSAgICAgICAtIFR5cGUgb2YgZWRnZXMgdG8gcmV0cmlldmUuXG4gKiBAcGFyYW0gIHtib29sZWFufSAgbXVsdGkgICAgICAtIFdoZXRoZXIgdGhlIGdyYXBoIGlzIG11bHRpLlxuICogQHBhcmFtICB7c3RyaW5nfSAgIGRpcmVjdGlvbiAgLSBJbiBvciBvdXQ/XG4gKiBAcGFyYW0gIHtOb2RlRGF0YX0gc291cmNlRGF0YSAtIFNvdXJjZSBub2RlJ3MgZGF0YS5cbiAqIEBwYXJhbSAge2FueX0gICAgICB0YXJnZXQgICAgIC0gVGFyZ2V0IG5vZGUuXG4gKiBAcmV0dXJuIHthcnJheX0gICAgICAgICAgICAgICAtIEFycmF5IG9mIGVkZ2VzLlxuICovXG5mdW5jdGlvbiBjcmVhdGVFZGdlQXJyYXlGb3JQYXRoKHR5cGUsIG11bHRpLCBkaXJlY3Rpb24sIHNvdXJjZURhdGEsIHRhcmdldCkge1xuICBjb25zdCBmbiA9IG11bHRpID8gY29sbGVjdEZvcktleU11bHRpIDogY29sbGVjdEZvcktleVNpbXBsZTtcblxuICBjb25zdCBlZGdlcyA9IFtdO1xuXG4gIGlmICh0eXBlICE9PSAndW5kaXJlY3RlZCcpIHtcbiAgICBpZiAodHlwZW9mIHNvdXJjZURhdGEuaW4gIT09ICd1bmRlZmluZWQnICYmIGRpcmVjdGlvbiAhPT0gJ291dCcpXG4gICAgICBmbihlZGdlcywgc291cmNlRGF0YS5pbiwgdGFyZ2V0KTtcblxuICAgIGlmICh0eXBlb2Ygc291cmNlRGF0YS5vdXQgIT09ICd1bmRlZmluZWQnICYmIGRpcmVjdGlvbiAhPT0gJ2luJylcbiAgICAgIGZuKGVkZ2VzLCBzb3VyY2VEYXRhLm91dCwgdGFyZ2V0KTtcblxuICAgIC8vIEhhbmRsaW5nIHNlbGYgbG9vcCBlZGdlIGNhc2VcbiAgICBpZiAoIWRpcmVjdGlvbiAmJiBzb3VyY2VEYXRhLmRpcmVjdGVkU2VsZkxvb3BzID4gMClcbiAgICAgIGVkZ2VzLnNwbGljZShlZGdlcy5sYXN0SW5kZXhPZihzb3VyY2VEYXRhLmtleSksIDEpO1xuICB9XG5cbiAgaWYgKHR5cGUgIT09ICdkaXJlY3RlZCcpIHtcbiAgICBpZiAodHlwZW9mIHNvdXJjZURhdGEudW5kaXJlY3RlZCAhPT0gJ3VuZGVmaW5lZCcpXG4gICAgICBmbihlZGdlcywgc291cmNlRGF0YS51bmRpcmVjdGVkLCB0YXJnZXQpO1xuICB9XG5cbiAgcmV0dXJuIGVkZ2VzO1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIGVkZ2VzIGZvciB0aGUgZ2l2ZW4gcGF0aCB1c2luZyBhIGNhbGxiYWNrLlxuICpcbiAqIEBwYXJhbSAge3N0cmluZ30gICB0eXBlICAgICAgIC0gVHlwZSBvZiBlZGdlcyB0byByZXRyaWV2ZS5cbiAqIEBwYXJhbSAge2Jvb2xlYW59ICBtdWx0aSAgICAgIC0gV2hldGhlciB0aGUgZ3JhcGggaXMgbXVsdGkuXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgZGlyZWN0aW9uICAtIEluIG9yIG91dD9cbiAqIEBwYXJhbSAge05vZGVEYXRhfSBzb3VyY2VEYXRhIC0gU291cmNlIG5vZGUncyBkYXRhLlxuICogQHBhcmFtICB7c3RyaW5nfSAgIHRhcmdldCAgICAgLSBUYXJnZXQgbm9kZS5cbiAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAgIC0gRnVuY3Rpb24gdG8gY2FsbC5cbiAqL1xuZnVuY3Rpb24gZm9yRWFjaEVkZ2VGb3JQYXRoKFxuICB0eXBlLFxuICBtdWx0aSxcbiAgZGlyZWN0aW9uLFxuICBzb3VyY2VEYXRhLFxuICB0YXJnZXQsXG4gIGNhbGxiYWNrXG4pIHtcbiAgY29uc3QgZm4gPSBtdWx0aSA/IGZvckVhY2hGb3JLZXlNdWx0aSA6IGZvckVhY2hGb3JLZXlTaW1wbGU7XG5cbiAgaWYgKHR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgIGlmICh0eXBlb2Ygc291cmNlRGF0YS5pbiAhPT0gJ3VuZGVmaW5lZCcgJiYgZGlyZWN0aW9uICE9PSAnb3V0JylcbiAgICAgIGZuKHNvdXJjZURhdGEuaW4sIHRhcmdldCwgY2FsbGJhY2spO1xuXG4gICAgaWYgKHNvdXJjZURhdGEua2V5ICE9PSB0YXJnZXQpXG4gICAgICBpZiAodHlwZW9mIHNvdXJjZURhdGEub3V0ICE9PSAndW5kZWZpbmVkJyAmJiBkaXJlY3Rpb24gIT09ICdpbicpXG4gICAgICAgIGZuKHNvdXJjZURhdGEub3V0LCB0YXJnZXQsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIGlmICh0eXBlICE9PSAnZGlyZWN0ZWQnKSB7XG4gICAgaWYgKHR5cGVvZiBzb3VyY2VEYXRhLnVuZGlyZWN0ZWQgIT09ICd1bmRlZmluZWQnKVxuICAgICAgZm4oc291cmNlRGF0YS51bmRpcmVjdGVkLCB0YXJnZXQsIGNhbGxiYWNrKTtcbiAgfVxufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIGVkZ2VzIGZvciB0aGUgZ2l2ZW4gcGF0aCB1c2luZyBhIGNhbGxiYWNrIHRvIG1hdGNoXG4gKiBvbmUgb2YgdGhlbS5cbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgdHlwZSAgICAgICAtIFR5cGUgb2YgZWRnZXMgdG8gcmV0cmlldmUuXG4gKiBAcGFyYW0gIHtib29sZWFufSAgbXVsdGkgICAgICAtIFdoZXRoZXIgdGhlIGdyYXBoIGlzIG11bHRpLlxuICogQHBhcmFtICB7c3RyaW5nfSAgIGRpcmVjdGlvbiAgLSBJbiBvciBvdXQ/XG4gKiBAcGFyYW0gIHtOb2RlRGF0YX0gc291cmNlRGF0YSAtIFNvdXJjZSBub2RlJ3MgZGF0YS5cbiAqIEBwYXJhbSAge3N0cmluZ30gICB0YXJnZXQgICAgIC0gVGFyZ2V0IG5vZGUuXG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgICAtIEZ1bmN0aW9uIHRvIGNhbGwuXG4gKi9cbmZ1bmN0aW9uIGZpbmRFZGdlRm9yUGF0aCh0eXBlLCBtdWx0aSwgZGlyZWN0aW9uLCBzb3VyY2VEYXRhLCB0YXJnZXQsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGZuID0gbXVsdGkgPyBmaW5kRm9yS2V5TXVsdGkgOiBmaW5kRm9yS2V5U2ltcGxlO1xuXG4gIGxldCBmb3VuZDtcblxuICBpZiAodHlwZSAhPT0gJ3VuZGlyZWN0ZWQnKSB7XG4gICAgaWYgKHR5cGVvZiBzb3VyY2VEYXRhLmluICE9PSAndW5kZWZpbmVkJyAmJiBkaXJlY3Rpb24gIT09ICdvdXQnKSB7XG4gICAgICBmb3VuZCA9IGZuKHNvdXJjZURhdGEuaW4sIHRhcmdldCwgY2FsbGJhY2spO1xuXG4gICAgICBpZiAoZm91bmQpIHJldHVybiBmb3VuZDtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlRGF0YS5rZXkgIT09IHRhcmdldClcbiAgICAgIGlmICh0eXBlb2Ygc291cmNlRGF0YS5vdXQgIT09ICd1bmRlZmluZWQnICYmIGRpcmVjdGlvbiAhPT0gJ2luJykge1xuICAgICAgICBmb3VuZCA9IGZuKFxuICAgICAgICAgIHNvdXJjZURhdGEub3V0LFxuICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICBjYWxsYmFjayxcbiAgICAgICAgICAhZGlyZWN0aW9uID8gc291cmNlRGF0YS5rZXkgOiBudWxsXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGZvdW5kKSByZXR1cm4gZm91bmQ7XG4gICAgICB9XG4gIH1cblxuICBpZiAodHlwZSAhPT0gJ2RpcmVjdGVkJykge1xuICAgIGlmICh0eXBlb2Ygc291cmNlRGF0YS51bmRpcmVjdGVkICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgZm91bmQgPSBmbihzb3VyY2VEYXRhLnVuZGlyZWN0ZWQsIHRhcmdldCwgY2FsbGJhY2spO1xuXG4gICAgICBpZiAoZm91bmQpIHJldHVybiBmb3VuZDtcbiAgICB9XG4gIH1cblxuICByZXR1cm47XG59XG5cbi8qKlxuICogRnVuY3Rpb24gcmV0dXJuaW5nIGFuIGl0ZXJhdG9yIG92ZXIgZWRnZXMgZm9yIHRoZSBnaXZlbiBwYXRoLlxuICpcbiAqIEBwYXJhbSAge3N0cmluZ30gICB0eXBlICAgICAgIC0gVHlwZSBvZiBlZGdlcyB0byByZXRyaWV2ZS5cbiAqIEBwYXJhbSAge3N0cmluZ30gICBkaXJlY3Rpb24gIC0gSW4gb3Igb3V0P1xuICogQHBhcmFtICB7Tm9kZURhdGF9IHNvdXJjZURhdGEgLSBTb3VyY2Ugbm9kZSdzIGRhdGEuXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgdGFyZ2V0ICAgICAtIFRhcmdldCBub2RlLlxuICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrICAgLSBGdW5jdGlvbiB0byBjYWxsLlxuICovXG5mdW5jdGlvbiBjcmVhdGVFZGdlSXRlcmF0b3JGb3JQYXRoKHR5cGUsIGRpcmVjdGlvbiwgc291cmNlRGF0YSwgdGFyZ2V0KSB7XG4gIGxldCBpdGVyYXRvciA9IEl0ZXJhdG9yLmVtcHR5KCk7XG5cbiAgaWYgKHR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiBzb3VyY2VEYXRhLmluICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgZGlyZWN0aW9uICE9PSAnb3V0JyAmJlxuICAgICAgdGFyZ2V0IGluIHNvdXJjZURhdGEuaW5cbiAgICApXG4gICAgICBpdGVyYXRvciA9IGNoYWluKGl0ZXJhdG9yLCBjcmVhdGVJdGVyYXRvckZvcktleShzb3VyY2VEYXRhLmluLCB0YXJnZXQpKTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBzb3VyY2VEYXRhLm91dCAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgIGRpcmVjdGlvbiAhPT0gJ2luJyAmJlxuICAgICAgdGFyZ2V0IGluIHNvdXJjZURhdGEub3V0XG4gICAgKVxuICAgICAgaXRlcmF0b3IgPSBjaGFpbihpdGVyYXRvciwgY3JlYXRlSXRlcmF0b3JGb3JLZXkoc291cmNlRGF0YS5vdXQsIHRhcmdldCkpO1xuICB9XG5cbiAgaWYgKHR5cGUgIT09ICdkaXJlY3RlZCcpIHtcbiAgICBpZiAoXG4gICAgICB0eXBlb2Ygc291cmNlRGF0YS51bmRpcmVjdGVkICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgdGFyZ2V0IGluIHNvdXJjZURhdGEudW5kaXJlY3RlZFxuICAgIClcbiAgICAgIGl0ZXJhdG9yID0gY2hhaW4oXG4gICAgICAgIGl0ZXJhdG9yLFxuICAgICAgICBjcmVhdGVJdGVyYXRvckZvcktleShzb3VyY2VEYXRhLnVuZGlyZWN0ZWQsIHRhcmdldClcbiAgICAgICk7XG4gIH1cblxuICByZXR1cm4gaXRlcmF0b3I7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gYXR0YWNoaW5nIGFuIGVkZ2UgYXJyYXkgY3JlYXRvciBtZXRob2QgdG8gdGhlIEdyYXBoIHByb3RvdHlwZS5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBDbGFzcyAgICAgICAtIFRhcmdldCBjbGFzcy5cbiAqIEBwYXJhbSB7b2JqZWN0fSAgIGRlc2NyaXB0aW9uIC0gTWV0aG9kIGRlc2NyaXB0aW9uLlxuICovXG5mdW5jdGlvbiBhdHRhY2hFZGdlQXJyYXlDcmVhdG9yKENsYXNzLCBkZXNjcmlwdGlvbikge1xuICBjb25zdCB7bmFtZSwgdHlwZSwgZGlyZWN0aW9ufSA9IGRlc2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiByZXR1cm5pbmcgYW4gYXJyYXkgb2YgY2VydGFpbiBlZGdlcy5cbiAgICpcbiAgICogQXJpdHkgMDogUmV0dXJuIGFsbCB0aGUgcmVsZXZhbnQgZWRnZXMuXG4gICAqXG4gICAqIEFyaXR5IDE6IFJldHVybiBhbGwgb2YgYSBub2RlJ3MgcmVsZXZhbnQgZWRnZXMuXG4gICAqIEBwYXJhbSAge2FueX0gICBub2RlICAgLSBUYXJnZXQgbm9kZS5cbiAgICpcbiAgICogQXJpdHkgMjogUmV0dXJuIHRoZSByZWxldmFudCBlZGdlcyBhY3Jvc3MgdGhlIGdpdmVuIHBhdGguXG4gICAqIEBwYXJhbSAge2FueX0gICBzb3VyY2UgLSBTb3VyY2Ugbm9kZS5cbiAgICogQHBhcmFtICB7YW55fSAgIHRhcmdldCAtIFRhcmdldCBub2RlLlxuICAgKlxuICAgKiBAcmV0dXJuIHthcnJheXxudW1iZXJ9IC0gVGhlIGVkZ2VzIG9yIHRoZSBudW1iZXIgb2YgZWRnZXMuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGFyZ3VtZW50cy5cbiAgICovXG4gIENsYXNzLnByb3RvdHlwZVtuYW1lXSA9IGZ1bmN0aW9uIChzb3VyY2UsIHRhcmdldCkge1xuICAgIC8vIEVhcmx5IHRlcm1pbmF0aW9uXG4gICAgaWYgKHR5cGUgIT09ICdtaXhlZCcgJiYgdGhpcy50eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09IHRoaXMudHlwZSlcbiAgICAgIHJldHVybiBbXTtcblxuICAgIGlmICghYXJndW1lbnRzLmxlbmd0aCkgcmV0dXJuIGNyZWF0ZUVkZ2VBcnJheSh0aGlzLCB0eXBlKTtcblxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICBzb3VyY2UgPSAnJyArIHNvdXJjZTtcblxuICAgICAgY29uc3Qgbm9kZURhdGEgPSB0aGlzLl9ub2Rlcy5nZXQoc291cmNlKTtcblxuICAgICAgaWYgKHR5cGVvZiBub2RlRGF0YSA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bmFtZX06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7c291cmNlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcblxuICAgICAgLy8gSXRlcmF0aW5nIG92ZXIgYSBub2RlJ3MgZWRnZXNcbiAgICAgIHJldHVybiBjcmVhdGVFZGdlQXJyYXlGb3JOb2RlKFxuICAgICAgICB0aGlzLm11bHRpLFxuICAgICAgICB0eXBlID09PSAnbWl4ZWQnID8gdGhpcy50eXBlIDogdHlwZSxcbiAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICBub2RlRGF0YVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgc291cmNlID0gJycgKyBzb3VyY2U7XG4gICAgICB0YXJnZXQgPSAnJyArIHRhcmdldDtcblxuICAgICAgY29uc3Qgc291cmNlRGF0YSA9IHRoaXMuX25vZGVzLmdldChzb3VyY2UpO1xuXG4gICAgICBpZiAoIXNvdXJjZURhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bmFtZX06ICBjb3VsZCBub3QgZmluZCB0aGUgXCIke3NvdXJjZX1cIiBzb3VyY2Ugbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgICApO1xuXG4gICAgICBpZiAoIXRoaXMuX25vZGVzLmhhcyh0YXJnZXQpKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke25hbWV9OiAgY291bGQgbm90IGZpbmQgdGhlIFwiJHt0YXJnZXR9XCIgdGFyZ2V0IG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcblxuICAgICAgLy8gSXRlcmF0aW5nIG92ZXIgdGhlIGVkZ2VzIGJldHdlZW4gc291cmNlICYgdGFyZ2V0XG4gICAgICByZXR1cm4gY3JlYXRlRWRnZUFycmF5Rm9yUGF0aChcbiAgICAgICAgdHlwZSxcbiAgICAgICAgdGhpcy5tdWx0aSxcbiAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICBzb3VyY2VEYXRhLFxuICAgICAgICB0YXJnZXRcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLiR7bmFtZX06IHRvbyBtYW55IGFyZ3VtZW50cyAoZXhwZWN0aW5nIDAsIDEgb3IgMiBhbmQgZ290ICR7YXJndW1lbnRzLmxlbmd0aH0pLmBcbiAgICApO1xuICB9O1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGF0dGFjaGluZyBhIGVkZ2UgY2FsbGJhY2sgaXRlcmF0b3IgbWV0aG9kIHRvIHRoZSBHcmFwaCBwcm90b3R5cGUuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gQ2xhc3MgICAgICAgLSBUYXJnZXQgY2xhc3MuXG4gKiBAcGFyYW0ge29iamVjdH0gICBkZXNjcmlwdGlvbiAtIE1ldGhvZCBkZXNjcmlwdGlvbi5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoRm9yRWFjaEVkZ2UoQ2xhc3MsIGRlc2NyaXB0aW9uKSB7XG4gIGNvbnN0IHtuYW1lLCB0eXBlLCBkaXJlY3Rpb259ID0gZGVzY3JpcHRpb247XG5cbiAgY29uc3QgZm9yRWFjaE5hbWUgPSAnZm9yRWFjaCcgKyBuYW1lWzBdLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEsIC0xKTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgdGhlIGdyYXBoJ3MgcmVsZXZhbnQgZWRnZXMgYnkgYXBwbHlpbmcgdGhlIGdpdmVuXG4gICAqIGNhbGxiYWNrLlxuICAgKlxuICAgKiBBcml0eSAxOiBJdGVyYXRlIG92ZXIgYWxsIHRoZSByZWxldmFudCBlZGdlcy5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICAgKlxuICAgKiBBcml0eSAyOiBJdGVyYXRlIG92ZXIgYWxsIG9mIGEgbm9kZSdzIHJlbGV2YW50IGVkZ2VzLlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgbm9kZSAgICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICAgKlxuICAgKiBBcml0eSAzOiBJdGVyYXRlIG92ZXIgdGhlIHJlbGV2YW50IGVkZ2VzIGFjcm9zcyB0aGUgZ2l2ZW4gcGF0aC5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIHNvdXJjZSAgIC0gU291cmNlIG5vZGUuXG4gICAqIEBwYXJhbSAge2FueX0gICAgICB0YXJnZXQgICAtIFRhcmdldCBub2RlLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byB1c2UuXG4gICAqXG4gICAqIEByZXR1cm4ge3VuZGVmaW5lZH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgYXJndW1lbnRzLlxuICAgKi9cbiAgQ2xhc3MucHJvdG90eXBlW2ZvckVhY2hOYW1lXSA9IGZ1bmN0aW9uIChzb3VyY2UsIHRhcmdldCwgY2FsbGJhY2spIHtcbiAgICAvLyBFYXJseSB0ZXJtaW5hdGlvblxuICAgIGlmICh0eXBlICE9PSAnbWl4ZWQnICYmIHRoaXMudHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSB0aGlzLnR5cGUpIHJldHVybjtcblxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICBjYWxsYmFjayA9IHNvdXJjZTtcbiAgICAgIHJldHVybiBmb3JFYWNoRWRnZSh0aGlzLCB0eXBlLCBjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcbiAgICAgIHNvdXJjZSA9ICcnICsgc291cmNlO1xuICAgICAgY2FsbGJhY2sgPSB0YXJnZXQ7XG5cbiAgICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KHNvdXJjZSk7XG5cbiAgICAgIGlmICh0eXBlb2Ygbm9kZURhdGEgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke2ZvckVhY2hOYW1lfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtzb3VyY2V9XCIgbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgICApO1xuXG4gICAgICAvLyBJdGVyYXRpbmcgb3ZlciBhIG5vZGUncyBlZGdlc1xuICAgICAgLy8gVE9ETzogbWF5YmUgYXR0YWNoIHRoZSBzdWIgbWV0aG9kIHRvIHRoZSBpbnN0YW5jZSBkeW5hbWljYWxseT9cbiAgICAgIHJldHVybiBmb3JFYWNoRWRnZUZvck5vZGUoXG4gICAgICAgIHRoaXMubXVsdGksXG4gICAgICAgIHR5cGUgPT09ICdtaXhlZCcgPyB0aGlzLnR5cGUgOiB0eXBlLFxuICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgIG5vZGVEYXRhLFxuICAgICAgICBjYWxsYmFja1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMykge1xuICAgICAgc291cmNlID0gJycgKyBzb3VyY2U7XG4gICAgICB0YXJnZXQgPSAnJyArIHRhcmdldDtcblxuICAgICAgY29uc3Qgc291cmNlRGF0YSA9IHRoaXMuX25vZGVzLmdldChzb3VyY2UpO1xuXG4gICAgICBpZiAoIXNvdXJjZURhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7Zm9yRWFjaE5hbWV9OiAgY291bGQgbm90IGZpbmQgdGhlIFwiJHtzb3VyY2V9XCIgc291cmNlIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcblxuICAgICAgaWYgKCF0aGlzLl9ub2Rlcy5oYXModGFyZ2V0KSlcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHtmb3JFYWNoTmFtZX06ICBjb3VsZCBub3QgZmluZCB0aGUgXCIke3RhcmdldH1cIiB0YXJnZXQgbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgICApO1xuXG4gICAgICAvLyBJdGVyYXRpbmcgb3ZlciB0aGUgZWRnZXMgYmV0d2VlbiBzb3VyY2UgJiB0YXJnZXRcbiAgICAgIHJldHVybiBmb3JFYWNoRWRnZUZvclBhdGgoXG4gICAgICAgIHR5cGUsXG4gICAgICAgIHRoaXMubXVsdGksXG4gICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgc291cmNlRGF0YSxcbiAgICAgICAgdGFyZ2V0LFxuICAgICAgICBjYWxsYmFja1xuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICBgR3JhcGguJHtmb3JFYWNoTmFtZX06IHRvbyBtYW55IGFyZ3VtZW50cyAoZXhwZWN0aW5nIDEsIDIgb3IgMyBhbmQgZ290ICR7YXJndW1lbnRzLmxlbmd0aH0pLmBcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiBtYXBwaW5nIHRoZSBncmFwaCdzIHJlbGV2YW50IGVkZ2VzIGJ5IGFwcGx5aW5nIHRoZSBnaXZlblxuICAgKiBjYWxsYmFjay5cbiAgICpcbiAgICogQXJpdHkgMTogTWFwIGFsbCB0aGUgcmVsZXZhbnQgZWRnZXMuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAgICpcbiAgICogQXJpdHkgMjogTWFwIGFsbCBvZiBhIG5vZGUncyByZWxldmFudCBlZGdlcy5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIG5vZGUgICAgIC0gVGFyZ2V0IG5vZGUuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAgICpcbiAgICogQXJpdHkgMzogTWFwIHRoZSByZWxldmFudCBlZGdlcyBhY3Jvc3MgdGhlIGdpdmVuIHBhdGguXG4gICAqIEBwYXJhbSAge2FueX0gICAgICBzb3VyY2UgICAtIFNvdXJjZSBub2RlLlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgdGFyZ2V0ICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICAgKlxuICAgKiBAcmV0dXJuIHt1bmRlZmluZWR9XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGFyZ3VtZW50cy5cbiAgICovXG4gIGNvbnN0IG1hcE5hbWUgPSAnbWFwJyArIG5hbWVbMF0udG9VcHBlckNhc2UoKSArIG5hbWUuc2xpY2UoMSk7XG5cbiAgQ2xhc3MucHJvdG90eXBlW21hcE5hbWVdID0gZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgIGNvbnN0IGNhbGxiYWNrID0gYXJncy5wb3AoKTtcblxuICAgIGxldCByZXN1bHQ7XG5cbiAgICAvLyBXZSBrbm93IHRoZSByZXN1bHQgbGVuZ3RoIGJlZm9yZWhhbmRcbiAgICBpZiAoYXJncy5sZW5ndGggPT09IDApIHtcbiAgICAgIGxldCBsZW5ndGggPSAwO1xuXG4gICAgICBpZiAodHlwZSAhPT0gJ2RpcmVjdGVkJykgbGVuZ3RoICs9IHRoaXMudW5kaXJlY3RlZFNpemU7XG4gICAgICBpZiAodHlwZSAhPT0gJ3VuZGlyZWN0ZWQnKSBsZW5ndGggKz0gdGhpcy5kaXJlY3RlZFNpemU7XG5cbiAgICAgIHJlc3VsdCA9IG5ldyBBcnJheShsZW5ndGgpO1xuXG4gICAgICBsZXQgaSA9IDA7XG5cbiAgICAgIGFyZ3MucHVzaCgoZSwgZWEsIHMsIHQsIHNhLCB0YSwgdSkgPT4ge1xuICAgICAgICByZXN1bHRbaSsrXSA9IGNhbGxiYWNrKGUsIGVhLCBzLCB0LCBzYSwgdGEsIHUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gV2UgZG9uJ3Qga25vdyB0aGUgcmVzdWx0IGxlbmd0aCBiZWZvcmVoYW5kXG4gICAgLy8gVE9ETzogd2UgY2FuIGluIHNvbWUgaW5zdGFuY2VzIG9mIHNpbXBsZSBncmFwaHMsIGtub3dpbmcgZGVncmVlXG4gICAgZWxzZSB7XG4gICAgICByZXN1bHQgPSBbXTtcblxuICAgICAgYXJncy5wdXNoKChlLCBlYSwgcywgdCwgc2EsIHRhLCB1KSA9PiB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGNhbGxiYWNrKGUsIGVhLCBzLCB0LCBzYSwgdGEsIHUpKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXNbZm9yRWFjaE5hbWVdLmFwcGx5KHRoaXMsIGFyZ3MpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gZmlsdGVyaW5nIHRoZSBncmFwaCdzIHJlbGV2YW50IGVkZ2VzIHVzaW5nIHRoZSBwcm92aWRlZCBwcmVkaWNhdGVcbiAgICogZnVuY3Rpb24uXG4gICAqXG4gICAqIEFyaXR5IDE6IEZpbHRlciBhbGwgdGhlIHJlbGV2YW50IGVkZ2VzLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gcHJlZGljYXRlIC0gUHJlZGljYXRlIHRvIHVzZS5cbiAgICpcbiAgICogQXJpdHkgMjogRmlsdGVyIGFsbCBvZiBhIG5vZGUncyByZWxldmFudCBlZGdlcy5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIG5vZGUgICAgICAtIFRhcmdldCBub2RlLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gcHJlZGljYXRlIC0gUHJlZGljYXRlIHRvIHVzZS5cbiAgICpcbiAgICogQXJpdHkgMzogRmlsdGVyIHRoZSByZWxldmFudCBlZGdlcyBhY3Jvc3MgdGhlIGdpdmVuIHBhdGguXG4gICAqIEBwYXJhbSAge2FueX0gICAgICBzb3VyY2UgICAgLSBTb3VyY2Ugbm9kZS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIHRhcmdldCAgICAtIFRhcmdldCBub2RlLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gcHJlZGljYXRlIC0gUHJlZGljYXRlIHRvIHVzZS5cbiAgICpcbiAgICogQHJldHVybiB7dW5kZWZpbmVkfVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZXJlIGFyZSB0b28gbWFueSBhcmd1bWVudHMuXG4gICAqL1xuICBjb25zdCBmaWx0ZXJOYW1lID0gJ2ZpbHRlcicgKyBuYW1lWzBdLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEpO1xuXG4gIENsYXNzLnByb3RvdHlwZVtmaWx0ZXJOYW1lXSA9IGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgICBjb25zdCBjYWxsYmFjayA9IGFyZ3MucG9wKCk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgIGFyZ3MucHVzaCgoZSwgZWEsIHMsIHQsIHNhLCB0YSwgdSkgPT4ge1xuICAgICAgaWYgKGNhbGxiYWNrKGUsIGVhLCBzLCB0LCBzYSwgdGEsIHUpKSByZXN1bHQucHVzaChlKTtcbiAgICB9KTtcblxuICAgIHRoaXNbZm9yRWFjaE5hbWVdLmFwcGx5KHRoaXMsIGFyZ3MpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gcmVkdWNpbmcgdGhlIGdyYXBoJ3MgcmVsZXZhbnQgZWRnZXMgdXNpbmcgdGhlIHByb3ZpZGVkIGFjY3VtdWxhdG9yXG4gICAqIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBBcml0eSAxOiBSZWR1Y2UgYWxsIHRoZSByZWxldmFudCBlZGdlcy5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGFjY3VtdWxhdG9yICAtIEFjY3VtdWxhdG9yIHRvIHVzZS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIGluaXRpYWxWYWx1ZSAtIEluaXRpYWwgdmFsdWUuXG4gICAqXG4gICAqIEFyaXR5IDI6IFJlZHVjZSBhbGwgb2YgYSBub2RlJ3MgcmVsZXZhbnQgZWRnZXMuXG4gICAqIEBwYXJhbSAge2FueX0gICAgICBub2RlICAgICAgICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGFjY3VtdWxhdG9yICAtIEFjY3VtdWxhdG9yIHRvIHVzZS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIGluaXRpYWxWYWx1ZSAtIEluaXRpYWwgdmFsdWUuXG4gICAqXG4gICAqIEFyaXR5IDM6IFJlZHVjZSB0aGUgcmVsZXZhbnQgZWRnZXMgYWNyb3NzIHRoZSBnaXZlbiBwYXRoLlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgc291cmNlICAgICAgIC0gU291cmNlIG5vZGUuXG4gICAqIEBwYXJhbSAge2FueX0gICAgICB0YXJnZXQgICAgICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGFjY3VtdWxhdG9yICAtIEFjY3VtdWxhdG9yIHRvIHVzZS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIGluaXRpYWxWYWx1ZSAtIEluaXRpYWwgdmFsdWUuXG4gICAqXG4gICAqIEByZXR1cm4ge3VuZGVmaW5lZH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgYXJndW1lbnRzLlxuICAgKi9cbiAgY29uc3QgcmVkdWNlTmFtZSA9ICdyZWR1Y2UnICsgbmFtZVswXS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKTtcblxuICBDbGFzcy5wcm90b3R5cGVbcmVkdWNlTmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuXG4gICAgaWYgKGFyZ3MubGVuZ3RoIDwgMiB8fCBhcmdzLmxlbmd0aCA+IDQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7cmVkdWNlTmFtZX06IGludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cyAoZXhwZWN0aW5nIDIsIDMgb3IgNCBhbmQgZ290ICR7YXJncy5sZW5ndGh9KS5gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0gPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIHR5cGVvZiBhcmdzW2FyZ3MubGVuZ3RoIC0gMl0gIT09ICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7cmVkdWNlTmFtZX06IG1pc3NpbmcgaW5pdGlhbCB2YWx1ZS4gWW91IG11c3QgcHJvdmlkZSBpdCBiZWNhdXNlIHRoZSBjYWxsYmFjayB0YWtlcyBtb3JlIHRoYW4gb25lIGFyZ3VtZW50IGFuZCB3ZSBjYW5ub3QgaW5mZXIgdGhlIGluaXRpYWwgdmFsdWUgZnJvbSB0aGUgZmlyc3QgaXRlcmF0aW9uLCBhcyB5b3UgY291bGQgd2l0aCBhIHNpbXBsZSBhcnJheS5gXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBjYWxsYmFjaztcbiAgICBsZXQgaW5pdGlhbFZhbHVlO1xuXG4gICAgaWYgKGFyZ3MubGVuZ3RoID09PSAyKSB7XG4gICAgICBjYWxsYmFjayA9IGFyZ3NbMF07XG4gICAgICBpbml0aWFsVmFsdWUgPSBhcmdzWzFdO1xuICAgICAgYXJncyA9IFtdO1xuICAgIH0gZWxzZSBpZiAoYXJncy5sZW5ndGggPT09IDMpIHtcbiAgICAgIGNhbGxiYWNrID0gYXJnc1sxXTtcbiAgICAgIGluaXRpYWxWYWx1ZSA9IGFyZ3NbMl07XG4gICAgICBhcmdzID0gW2FyZ3NbMF1dO1xuICAgIH0gZWxzZSBpZiAoYXJncy5sZW5ndGggPT09IDQpIHtcbiAgICAgIGNhbGxiYWNrID0gYXJnc1syXTtcbiAgICAgIGluaXRpYWxWYWx1ZSA9IGFyZ3NbM107XG4gICAgICBhcmdzID0gW2FyZ3NbMF0sIGFyZ3NbMV1dO1xuICAgIH1cblxuICAgIGxldCBhY2N1bXVsYXRvciA9IGluaXRpYWxWYWx1ZTtcblxuICAgIGFyZ3MucHVzaCgoZSwgZWEsIHMsIHQsIHNhLCB0YSwgdSkgPT4ge1xuICAgICAgYWNjdW11bGF0b3IgPSBjYWxsYmFjayhhY2N1bXVsYXRvciwgZSwgZWEsIHMsIHQsIHNhLCB0YSwgdSk7XG4gICAgfSk7XG5cbiAgICB0aGlzW2ZvckVhY2hOYW1lXS5hcHBseSh0aGlzLCBhcmdzKTtcblxuICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgfTtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBhdHRhY2hpbmcgYSBicmVha2FibGUgZWRnZSBjYWxsYmFjayBpdGVyYXRvciBtZXRob2QgdG8gdGhlIEdyYXBoXG4gKiBwcm90b3R5cGUuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gQ2xhc3MgICAgICAgLSBUYXJnZXQgY2xhc3MuXG4gKiBAcGFyYW0ge29iamVjdH0gICBkZXNjcmlwdGlvbiAtIE1ldGhvZCBkZXNjcmlwdGlvbi5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoRmluZEVkZ2UoQ2xhc3MsIGRlc2NyaXB0aW9uKSB7XG4gIGNvbnN0IHtuYW1lLCB0eXBlLCBkaXJlY3Rpb259ID0gZGVzY3JpcHRpb247XG5cbiAgY29uc3QgZmluZEVkZ2VOYW1lID0gJ2ZpbmQnICsgbmFtZVswXS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxLCAtMSk7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIHRoZSBncmFwaCdzIHJlbGV2YW50IGVkZ2VzIGluIG9yZGVyIHRvIG1hdGNoXG4gICAqIG9uZSBvZiB0aGVtIHVzaW5nIHRoZSBwcm92aWRlZCBwcmVkaWNhdGUgZnVuY3Rpb24uXG4gICAqXG4gICAqIEFyaXR5IDE6IEl0ZXJhdGUgb3ZlciBhbGwgdGhlIHJlbGV2YW50IGVkZ2VzLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byB1c2UuXG4gICAqXG4gICAqIEFyaXR5IDI6IEl0ZXJhdGUgb3ZlciBhbGwgb2YgYSBub2RlJ3MgcmVsZXZhbnQgZWRnZXMuXG4gICAqIEBwYXJhbSAge2FueX0gICAgICBub2RlICAgICAtIFRhcmdldCBub2RlLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byB1c2UuXG4gICAqXG4gICAqIEFyaXR5IDM6IEl0ZXJhdGUgb3ZlciB0aGUgcmVsZXZhbnQgZWRnZXMgYWNyb3NzIHRoZSBnaXZlbiBwYXRoLlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgc291cmNlICAgLSBTb3VyY2Ugbm9kZS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIHRhcmdldCAgIC0gVGFyZ2V0IG5vZGUuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAgICpcbiAgICogQHJldHVybiB7dW5kZWZpbmVkfVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZXJlIGFyZSB0b28gbWFueSBhcmd1bWVudHMuXG4gICAqL1xuICBDbGFzcy5wcm90b3R5cGVbZmluZEVkZ2VOYW1lXSA9IGZ1bmN0aW9uIChzb3VyY2UsIHRhcmdldCwgY2FsbGJhY2spIHtcbiAgICAvLyBFYXJseSB0ZXJtaW5hdGlvblxuICAgIGlmICh0eXBlICE9PSAnbWl4ZWQnICYmIHRoaXMudHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSB0aGlzLnR5cGUpXG4gICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY2FsbGJhY2sgPSBzb3VyY2U7XG4gICAgICByZXR1cm4gZmluZEVkZ2UodGhpcywgdHlwZSwgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XG4gICAgICBzb3VyY2UgPSAnJyArIHNvdXJjZTtcbiAgICAgIGNhbGxiYWNrID0gdGFyZ2V0O1xuXG4gICAgICBjb25zdCBub2RlRGF0YSA9IHRoaXMuX25vZGVzLmdldChzb3VyY2UpO1xuXG4gICAgICBpZiAodHlwZW9mIG5vZGVEYXRhID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHtmaW5kRWRnZU5hbWV9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke3NvdXJjZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICAgICk7XG5cbiAgICAgIC8vIEl0ZXJhdGluZyBvdmVyIGEgbm9kZSdzIGVkZ2VzXG4gICAgICAvLyBUT0RPOiBtYXliZSBhdHRhY2ggdGhlIHN1YiBtZXRob2QgdG8gdGhlIGluc3RhbmNlIGR5bmFtaWNhbGx5P1xuICAgICAgcmV0dXJuIGZpbmRFZGdlRm9yTm9kZShcbiAgICAgICAgdGhpcy5tdWx0aSxcbiAgICAgICAgdHlwZSA9PT0gJ21peGVkJyA/IHRoaXMudHlwZSA6IHR5cGUsXG4gICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgbm9kZURhdGEsXG4gICAgICAgIGNhbGxiYWNrXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAzKSB7XG4gICAgICBzb3VyY2UgPSAnJyArIHNvdXJjZTtcbiAgICAgIHRhcmdldCA9ICcnICsgdGFyZ2V0O1xuXG4gICAgICBjb25zdCBzb3VyY2VEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KHNvdXJjZSk7XG5cbiAgICAgIGlmICghc291cmNlRGF0YSlcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHtmaW5kRWRnZU5hbWV9OiAgY291bGQgbm90IGZpbmQgdGhlIFwiJHtzb3VyY2V9XCIgc291cmNlIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcblxuICAgICAgaWYgKCF0aGlzLl9ub2Rlcy5oYXModGFyZ2V0KSlcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHtmaW5kRWRnZU5hbWV9OiAgY291bGQgbm90IGZpbmQgdGhlIFwiJHt0YXJnZXR9XCIgdGFyZ2V0IG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcblxuICAgICAgLy8gSXRlcmF0aW5nIG92ZXIgdGhlIGVkZ2VzIGJldHdlZW4gc291cmNlICYgdGFyZ2V0XG4gICAgICByZXR1cm4gZmluZEVkZ2VGb3JQYXRoKFxuICAgICAgICB0eXBlLFxuICAgICAgICB0aGlzLm11bHRpLFxuICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgIHNvdXJjZURhdGEsXG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgY2FsbGJhY2tcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLiR7ZmluZEVkZ2VOYW1lfTogdG9vIG1hbnkgYXJndW1lbnRzIChleHBlY3RpbmcgMSwgMiBvciAzIGFuZCBnb3QgJHthcmd1bWVudHMubGVuZ3RofSkuYFxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIHRoZSBncmFwaCdzIHJlbGV2YW50IGVkZ2VzIGluIG9yZGVyIHRvIGFzc2VydFxuICAgKiB3aGV0aGVyIGFueSBvbmUgb2YgdGhlbSBtYXRjaGVzIHRoZSBwcm92aWRlZCBwcmVkaWNhdGUgZnVuY3Rpb24uXG4gICAqXG4gICAqIEFyaXR5IDE6IEl0ZXJhdGUgb3ZlciBhbGwgdGhlIHJlbGV2YW50IGVkZ2VzLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byB1c2UuXG4gICAqXG4gICAqIEFyaXR5IDI6IEl0ZXJhdGUgb3ZlciBhbGwgb2YgYSBub2RlJ3MgcmVsZXZhbnQgZWRnZXMuXG4gICAqIEBwYXJhbSAge2FueX0gICAgICBub2RlICAgICAtIFRhcmdldCBub2RlLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byB1c2UuXG4gICAqXG4gICAqIEFyaXR5IDM6IEl0ZXJhdGUgb3ZlciB0aGUgcmVsZXZhbnQgZWRnZXMgYWNyb3NzIHRoZSBnaXZlbiBwYXRoLlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgc291cmNlICAgLSBTb3VyY2Ugbm9kZS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIHRhcmdldCAgIC0gVGFyZ2V0IG5vZGUuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAgICpcbiAgICogQHJldHVybiB7dW5kZWZpbmVkfVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZXJlIGFyZSB0b28gbWFueSBhcmd1bWVudHMuXG4gICAqL1xuICBjb25zdCBzb21lTmFtZSA9ICdzb21lJyArIG5hbWVbMF0udG9VcHBlckNhc2UoKSArIG5hbWUuc2xpY2UoMSwgLTEpO1xuXG4gIENsYXNzLnByb3RvdHlwZVtzb21lTmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgY29uc3QgY2FsbGJhY2sgPSBhcmdzLnBvcCgpO1xuXG4gICAgYXJncy5wdXNoKChlLCBlYSwgcywgdCwgc2EsIHRhLCB1KSA9PiB7XG4gICAgICByZXR1cm4gY2FsbGJhY2soZSwgZWEsIHMsIHQsIHNhLCB0YSwgdSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBmb3VuZCA9IHRoaXNbZmluZEVkZ2VOYW1lXS5hcHBseSh0aGlzLCBhcmdzKTtcblxuICAgIGlmIChmb3VuZCkgcmV0dXJuIHRydWU7XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIHRoZSBncmFwaCdzIHJlbGV2YW50IGVkZ2VzIGluIG9yZGVyIHRvIGFzc2VydFxuICAgKiB3aGV0aGVyIGFsbCBvZiB0aGVtIG1hdGNoZSB0aGUgcHJvdmlkZWQgcHJlZGljYXRlIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBBcml0eSAxOiBJdGVyYXRlIG92ZXIgYWxsIHRoZSByZWxldmFudCBlZGdlcy5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICAgKlxuICAgKiBBcml0eSAyOiBJdGVyYXRlIG92ZXIgYWxsIG9mIGEgbm9kZSdzIHJlbGV2YW50IGVkZ2VzLlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgbm9kZSAgICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICAgKlxuICAgKiBBcml0eSAzOiBJdGVyYXRlIG92ZXIgdGhlIHJlbGV2YW50IGVkZ2VzIGFjcm9zcyB0aGUgZ2l2ZW4gcGF0aC5cbiAgICogQHBhcmFtICB7YW55fSAgICAgIHNvdXJjZSAgIC0gU291cmNlIG5vZGUuXG4gICAqIEBwYXJhbSAge2FueX0gICAgICB0YXJnZXQgICAtIFRhcmdldCBub2RlLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byB1c2UuXG4gICAqXG4gICAqIEByZXR1cm4ge3VuZGVmaW5lZH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgYXJndW1lbnRzLlxuICAgKi9cbiAgY29uc3QgZXZlcnlOYW1lID0gJ2V2ZXJ5JyArIG5hbWVbMF0udG9VcHBlckNhc2UoKSArIG5hbWUuc2xpY2UoMSwgLTEpO1xuXG4gIENsYXNzLnByb3RvdHlwZVtldmVyeU5hbWVdID0gZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgIGNvbnN0IGNhbGxiYWNrID0gYXJncy5wb3AoKTtcblxuICAgIGFyZ3MucHVzaCgoZSwgZWEsIHMsIHQsIHNhLCB0YSwgdSkgPT4ge1xuICAgICAgcmV0dXJuICFjYWxsYmFjayhlLCBlYSwgcywgdCwgc2EsIHRhLCB1KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGZvdW5kID0gdGhpc1tmaW5kRWRnZU5hbWVdLmFwcGx5KHRoaXMsIGFyZ3MpO1xuXG4gICAgaWYgKGZvdW5kKSByZXR1cm4gZmFsc2U7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBhdHRhY2hpbmcgYW4gZWRnZSBpdGVyYXRvciBtZXRob2QgdG8gdGhlIEdyYXBoIHByb3RvdHlwZS5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBDbGFzcyAgICAgICAtIFRhcmdldCBjbGFzcy5cbiAqIEBwYXJhbSB7b2JqZWN0fSAgIGRlc2NyaXB0aW9uIC0gTWV0aG9kIGRlc2NyaXB0aW9uLlxuICovXG5mdW5jdGlvbiBhdHRhY2hFZGdlSXRlcmF0b3JDcmVhdG9yKENsYXNzLCBkZXNjcmlwdGlvbikge1xuICBjb25zdCB7bmFtZTogb3JpZ2luYWxOYW1lLCB0eXBlLCBkaXJlY3Rpb259ID0gZGVzY3JpcHRpb247XG5cbiAgY29uc3QgbmFtZSA9IG9yaWdpbmFsTmFtZS5zbGljZSgwLCAtMSkgKyAnRW50cmllcyc7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHJldHVybmluZyBhbiBpdGVyYXRvciBvdmVyIHRoZSBncmFwaCdzIGVkZ2VzLlxuICAgKlxuICAgKiBBcml0eSAwOiBJdGVyYXRlIG92ZXIgYWxsIHRoZSByZWxldmFudCBlZGdlcy5cbiAgICpcbiAgICogQXJpdHkgMTogSXRlcmF0ZSBvdmVyIGFsbCBvZiBhIG5vZGUncyByZWxldmFudCBlZGdlcy5cbiAgICogQHBhcmFtICB7YW55fSAgIG5vZGUgICAtIFRhcmdldCBub2RlLlxuICAgKlxuICAgKiBBcml0eSAyOiBJdGVyYXRlIG92ZXIgdGhlIHJlbGV2YW50IGVkZ2VzIGFjcm9zcyB0aGUgZ2l2ZW4gcGF0aC5cbiAgICogQHBhcmFtICB7YW55fSAgIHNvdXJjZSAtIFNvdXJjZSBub2RlLlxuICAgKiBAcGFyYW0gIHthbnl9ICAgdGFyZ2V0IC0gVGFyZ2V0IG5vZGUuXG4gICAqXG4gICAqIEByZXR1cm4ge2FycmF5fG51bWJlcn0gLSBUaGUgZWRnZXMgb3IgdGhlIG51bWJlciBvZiBlZGdlcy5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgYXJndW1lbnRzLlxuICAgKi9cbiAgQ2xhc3MucHJvdG90eXBlW25hbWVdID0gZnVuY3Rpb24gKHNvdXJjZSwgdGFyZ2V0KSB7XG4gICAgLy8gRWFybHkgdGVybWluYXRpb25cbiAgICBpZiAodHlwZSAhPT0gJ21peGVkJyAmJiB0aGlzLnR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gdGhpcy50eXBlKVxuICAgICAgcmV0dXJuIEl0ZXJhdG9yLmVtcHR5KCk7XG5cbiAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHJldHVybiBjcmVhdGVFZGdlSXRlcmF0b3IodGhpcywgdHlwZSk7XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgc291cmNlID0gJycgKyBzb3VyY2U7XG5cbiAgICAgIGNvbnN0IHNvdXJjZURhdGEgPSB0aGlzLl9ub2Rlcy5nZXQoc291cmNlKTtcblxuICAgICAgaWYgKCFzb3VyY2VEYXRhKVxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke25hbWV9OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke3NvdXJjZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICAgICk7XG5cbiAgICAgIC8vIEl0ZXJhdGluZyBvdmVyIGEgbm9kZSdzIGVkZ2VzXG4gICAgICByZXR1cm4gY3JlYXRlRWRnZUl0ZXJhdG9yRm9yTm9kZSh0eXBlLCBkaXJlY3Rpb24sIHNvdXJjZURhdGEpO1xuICAgIH1cblxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XG4gICAgICBzb3VyY2UgPSAnJyArIHNvdXJjZTtcbiAgICAgIHRhcmdldCA9ICcnICsgdGFyZ2V0O1xuXG4gICAgICBjb25zdCBzb3VyY2VEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KHNvdXJjZSk7XG5cbiAgICAgIGlmICghc291cmNlRGF0YSlcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgICBgR3JhcGguJHtuYW1lfTogIGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7c291cmNlfVwiIHNvdXJjZSBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICAgICk7XG5cbiAgICAgIGlmICghdGhpcy5fbm9kZXMuaGFzKHRhcmdldCkpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bmFtZX06ICBjb3VsZCBub3QgZmluZCB0aGUgXCIke3RhcmdldH1cIiB0YXJnZXQgbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgICApO1xuXG4gICAgICAvLyBJdGVyYXRpbmcgb3ZlciB0aGUgZWRnZXMgYmV0d2VlbiBzb3VyY2UgJiB0YXJnZXRcbiAgICAgIHJldHVybiBjcmVhdGVFZGdlSXRlcmF0b3JGb3JQYXRoKHR5cGUsIGRpcmVjdGlvbiwgc291cmNlRGF0YSwgdGFyZ2V0KTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICBgR3JhcGguJHtuYW1lfTogdG9vIG1hbnkgYXJndW1lbnRzIChleHBlY3RpbmcgMCwgMSBvciAyIGFuZCBnb3QgJHthcmd1bWVudHMubGVuZ3RofSkuYFxuICAgICk7XG4gIH07XG59XG5cbi8qKlxuICogRnVuY3Rpb24gYXR0YWNoaW5nIGV2ZXJ5IGVkZ2UgaXRlcmF0aW9uIG1ldGhvZCB0byB0aGUgR3JhcGggY2xhc3MuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gR3JhcGggLSBHcmFwaCBjbGFzcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYXR0YWNoRWRnZUl0ZXJhdGlvbk1ldGhvZHMoR3JhcGgpIHtcbiAgRURHRVNfSVRFUkFUSU9OLmZvckVhY2goZGVzY3JpcHRpb24gPT4ge1xuICAgIGF0dGFjaEVkZ2VBcnJheUNyZWF0b3IoR3JhcGgsIGRlc2NyaXB0aW9uKTtcbiAgICBhdHRhY2hGb3JFYWNoRWRnZShHcmFwaCwgZGVzY3JpcHRpb24pO1xuICAgIGF0dGFjaEZpbmRFZGdlKEdyYXBoLCBkZXNjcmlwdGlvbik7XG4gICAgYXR0YWNoRWRnZUl0ZXJhdG9yQ3JlYXRvcihHcmFwaCwgZGVzY3JpcHRpb24pO1xuICB9KTtcbn1cbiIsICIvKipcbiAqIEdyYXBob2xvZ3kgTmVpZ2hib3IgSXRlcmF0aW9uXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBBdHRhY2hpbmcgc29tZSBtZXRob2RzIHRvIHRoZSBHcmFwaCBjbGFzcyB0byBiZSBhYmxlIHRvIGl0ZXJhdGUgb3ZlclxuICogbmVpZ2hib3JzLlxuICovXG5pbXBvcnQgSXRlcmF0b3IgZnJvbSAnb2JsaXRlcmF0b3IvaXRlcmF0b3InO1xuaW1wb3J0IGNoYWluIGZyb20gJ29ibGl0ZXJhdG9yL2NoYWluJztcbmltcG9ydCB0YWtlIGZyb20gJ29ibGl0ZXJhdG9yL3Rha2UnO1xuXG5pbXBvcnQge05vdEZvdW5kR3JhcGhFcnJvciwgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3J9IGZyb20gJy4uL2Vycm9ycyc7XG5cbi8qKlxuICogRGVmaW5pdGlvbnMuXG4gKi9cbmNvbnN0IE5FSUdIQk9SU19JVEVSQVRJT04gPSBbXG4gIHtcbiAgICBuYW1lOiAnbmVpZ2hib3JzJyxcbiAgICB0eXBlOiAnbWl4ZWQnXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnaW5OZWlnaGJvcnMnLFxuICAgIHR5cGU6ICdkaXJlY3RlZCcsXG4gICAgZGlyZWN0aW9uOiAnaW4nXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnb3V0TmVpZ2hib3JzJyxcbiAgICB0eXBlOiAnZGlyZWN0ZWQnLFxuICAgIGRpcmVjdGlvbjogJ291dCdcbiAgfSxcbiAge1xuICAgIG5hbWU6ICdpbmJvdW5kTmVpZ2hib3JzJyxcbiAgICB0eXBlOiAnbWl4ZWQnLFxuICAgIGRpcmVjdGlvbjogJ2luJ1xuICB9LFxuICB7XG4gICAgbmFtZTogJ291dGJvdW5kTmVpZ2hib3JzJyxcbiAgICB0eXBlOiAnbWl4ZWQnLFxuICAgIGRpcmVjdGlvbjogJ291dCdcbiAgfSxcbiAge1xuICAgIG5hbWU6ICdkaXJlY3RlZE5laWdoYm9ycycsXG4gICAgdHlwZTogJ2RpcmVjdGVkJ1xuICB9LFxuICB7XG4gICAgbmFtZTogJ3VuZGlyZWN0ZWROZWlnaGJvcnMnLFxuICAgIHR5cGU6ICd1bmRpcmVjdGVkJ1xuICB9XG5dO1xuXG4vKipcbiAqIEZ1bmN0aW9uIG1lcmdpbmcgbmVpZ2hib3JzIGludG8gdGhlIGdpdmVuIHNldCBpdGVyYXRpbmcgb3ZlciB0aGUgZ2l2ZW4gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB7QmFzaWNTZXR9IG5laWdoYm9ycyAtIE5laWdoYm9ycyBzZXQuXG4gKiBAcGFyYW0ge29iamVjdH0gICBvYmplY3QgICAgLSBUYXJnZXQgb2JqZWN0LlxuICovXG5mdW5jdGlvbiBtZXJnZShuZWlnaGJvcnMsIG9iamVjdCkge1xuICBpZiAodHlwZW9mIG9iamVjdCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcblxuICBmb3IgKGNvbnN0IG5laWdoYm9yIGluIG9iamVjdCkgbmVpZ2hib3JzLmFkZChuZWlnaGJvcik7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gY3JlYXRpbmcgYW4gYXJyYXkgb2YgcmVsZXZhbnQgbmVpZ2hib3JzIGZvciB0aGUgZ2l2ZW4gbm9kZS5cbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgICAgIHR5cGUgICAgICAtIFR5cGUgb2YgbmVpZ2hib3JzLlxuICogQHBhcmFtICB7c3RyaW5nfSAgICAgICBkaXJlY3Rpb24gLSBEaXJlY3Rpb24uXG4gKiBAcGFyYW0gIHthbnl9ICAgICAgICAgIG5vZGVEYXRhICAtIFRhcmdldCBub2RlJ3MgZGF0YS5cbiAqIEByZXR1cm4ge0FycmF5fSAgICAgICAgICAgICAgICAgIC0gVGhlIGxpc3Qgb2YgbmVpZ2hib3JzLlxuICovXG5mdW5jdGlvbiBjcmVhdGVOZWlnaGJvckFycmF5Rm9yTm9kZSh0eXBlLCBkaXJlY3Rpb24sIG5vZGVEYXRhKSB7XG4gIC8vIElmIHdlIHdhbnQgb25seSB1bmRpcmVjdGVkIG9yIGluIG9yIG91dCwgd2UgY2FuIHJvbGwgc29tZSBvcHRpbWl6YXRpb25zXG4gIGlmICh0eXBlICE9PSAnbWl4ZWQnKSB7XG4gICAgaWYgKHR5cGUgPT09ICd1bmRpcmVjdGVkJykgcmV0dXJuIE9iamVjdC5rZXlzKG5vZGVEYXRhLnVuZGlyZWN0ZWQpO1xuXG4gICAgaWYgKHR5cGVvZiBkaXJlY3Rpb24gPT09ICdzdHJpbmcnKSByZXR1cm4gT2JqZWN0LmtleXMobm9kZURhdGFbZGlyZWN0aW9uXSk7XG4gIH1cblxuICAvLyBFbHNlIHdlIG5lZWQgdG8ga2VlcCBhIHNldCBvZiBuZWlnaGJvcnMgbm90IHRvIHJldHVybiBkdXBsaWNhdGVzXG4gIGNvbnN0IG5laWdoYm9ycyA9IG5ldyBTZXQoKTtcblxuICBpZiAodHlwZSAhPT0gJ3VuZGlyZWN0ZWQnKSB7XG4gICAgaWYgKGRpcmVjdGlvbiAhPT0gJ291dCcpIHtcbiAgICAgIG1lcmdlKG5laWdoYm9ycywgbm9kZURhdGEuaW4pO1xuICAgIH1cbiAgICBpZiAoZGlyZWN0aW9uICE9PSAnaW4nKSB7XG4gICAgICBtZXJnZShuZWlnaGJvcnMsIG5vZGVEYXRhLm91dCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGUgIT09ICdkaXJlY3RlZCcpIHtcbiAgICBtZXJnZShuZWlnaGJvcnMsIG5vZGVEYXRhLnVuZGlyZWN0ZWQpO1xuICB9XG5cbiAgcmV0dXJuIHRha2UobmVpZ2hib3JzLnZhbHVlcygpLCBuZWlnaGJvcnMuc2l6ZSk7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgdGhlIGdpdmVuIG5vZGUncyByZWxldmFudCBuZWlnaGJvcnMgdXNpbmcgYVxuICogY2FsbGJhY2suXG4gKlxuICogQHBhcmFtICB7c3RyaW5nfSAgIHR5cGUgICAgICAtIFR5cGUgb2YgbmVpZ2hib3JzLlxuICogQHBhcmFtICB7c3RyaW5nfSAgIGRpcmVjdGlvbiAtIERpcmVjdGlvbi5cbiAqIEBwYXJhbSAge2FueX0gICAgICBub2RlRGF0YSAgLSBUYXJnZXQgbm9kZSdzIGRhdGEuXG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICovXG5mdW5jdGlvbiBmb3JFYWNoSW5PYmplY3Qobm9kZURhdGEsIG9iamVjdCwgY2FsbGJhY2spIHtcbiAgZm9yIChjb25zdCBrIGluIG9iamVjdCkge1xuICAgIGxldCBlZGdlRGF0YSA9IG9iamVjdFtrXTtcblxuICAgIGlmIChlZGdlRGF0YSBpbnN0YW5jZW9mIFNldCkgZWRnZURhdGEgPSBlZGdlRGF0YS52YWx1ZXMoKS5uZXh0KCkudmFsdWU7XG5cbiAgICBjb25zdCBzb3VyY2VEYXRhID0gZWRnZURhdGEuc291cmNlLFxuICAgICAgdGFyZ2V0RGF0YSA9IGVkZ2VEYXRhLnRhcmdldDtcblxuICAgIGNvbnN0IG5laWdoYm9yRGF0YSA9IHNvdXJjZURhdGEgPT09IG5vZGVEYXRhID8gdGFyZ2V0RGF0YSA6IHNvdXJjZURhdGE7XG5cbiAgICBjYWxsYmFjayhuZWlnaGJvckRhdGEua2V5LCBuZWlnaGJvckRhdGEuYXR0cmlidXRlcyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZm9yRWFjaEluT2JqZWN0T25jZSh2aXNpdGVkLCBub2RlRGF0YSwgb2JqZWN0LCBjYWxsYmFjaykge1xuICBmb3IgKGNvbnN0IGsgaW4gb2JqZWN0KSB7XG4gICAgbGV0IGVkZ2VEYXRhID0gb2JqZWN0W2tdO1xuXG4gICAgaWYgKGVkZ2VEYXRhIGluc3RhbmNlb2YgU2V0KSBlZGdlRGF0YSA9IGVkZ2VEYXRhLnZhbHVlcygpLm5leHQoKS52YWx1ZTtcblxuICAgIGNvbnN0IHNvdXJjZURhdGEgPSBlZGdlRGF0YS5zb3VyY2UsXG4gICAgICB0YXJnZXREYXRhID0gZWRnZURhdGEudGFyZ2V0O1xuXG4gICAgY29uc3QgbmVpZ2hib3JEYXRhID0gc291cmNlRGF0YSA9PT0gbm9kZURhdGEgPyB0YXJnZXREYXRhIDogc291cmNlRGF0YTtcblxuICAgIGlmICh2aXNpdGVkLmhhcyhuZWlnaGJvckRhdGEua2V5KSkgY29udGludWU7XG5cbiAgICB2aXNpdGVkLmFkZChuZWlnaGJvckRhdGEua2V5KTtcblxuICAgIGNhbGxiYWNrKG5laWdoYm9yRGF0YS5rZXksIG5laWdoYm9yRGF0YS5hdHRyaWJ1dGVzKTtcbiAgfVxufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIHRoZSBnaXZlbiBub2RlJ3MgcmVsZXZhbnQgbmVpZ2hib3JzIHRvIG1hdGNoXG4gKiBvbmUgb2YgdGhlbSB1c2luZyBhIHByZWRpY2F0ZWQgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtICB7c3RyaW5nfSAgIHR5cGUgICAgICAtIFR5cGUgb2YgbmVpZ2hib3JzLlxuICogQHBhcmFtICB7c3RyaW5nfSAgIGRpcmVjdGlvbiAtIERpcmVjdGlvbi5cbiAqIEBwYXJhbSAge2FueX0gICAgICBub2RlRGF0YSAgLSBUYXJnZXQgbm9kZSdzIGRhdGEuXG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICovXG5mdW5jdGlvbiBmaW5kSW5PYmplY3Qobm9kZURhdGEsIG9iamVjdCwgY2FsbGJhY2spIHtcbiAgZm9yIChjb25zdCBrIGluIG9iamVjdCkge1xuICAgIGxldCBlZGdlRGF0YSA9IG9iamVjdFtrXTtcblxuICAgIGlmIChlZGdlRGF0YSBpbnN0YW5jZW9mIFNldCkgZWRnZURhdGEgPSBlZGdlRGF0YS52YWx1ZXMoKS5uZXh0KCkudmFsdWU7XG5cbiAgICBjb25zdCBzb3VyY2VEYXRhID0gZWRnZURhdGEuc291cmNlO1xuICAgIGNvbnN0IHRhcmdldERhdGEgPSBlZGdlRGF0YS50YXJnZXQ7XG5cbiAgICBjb25zdCBuZWlnaGJvckRhdGEgPSBzb3VyY2VEYXRhID09PSBub2RlRGF0YSA/IHRhcmdldERhdGEgOiBzb3VyY2VEYXRhO1xuXG4gICAgY29uc3Qgc2hvdWxkQnJlYWsgPSBjYWxsYmFjayhuZWlnaGJvckRhdGEua2V5LCBuZWlnaGJvckRhdGEuYXR0cmlidXRlcyk7XG5cbiAgICBpZiAoc2hvdWxkQnJlYWspIHJldHVybiBuZWlnaGJvckRhdGEua2V5O1xuICB9XG5cbiAgcmV0dXJuO1xufVxuXG5mdW5jdGlvbiBmaW5kSW5PYmplY3RPbmNlKHZpc2l0ZWQsIG5vZGVEYXRhLCBvYmplY3QsIGNhbGxiYWNrKSB7XG4gIGZvciAoY29uc3QgayBpbiBvYmplY3QpIHtcbiAgICBsZXQgZWRnZURhdGEgPSBvYmplY3Rba107XG5cbiAgICBpZiAoZWRnZURhdGEgaW5zdGFuY2VvZiBTZXQpIGVkZ2VEYXRhID0gZWRnZURhdGEudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xuXG4gICAgY29uc3Qgc291cmNlRGF0YSA9IGVkZ2VEYXRhLnNvdXJjZTtcbiAgICBjb25zdCB0YXJnZXREYXRhID0gZWRnZURhdGEudGFyZ2V0O1xuXG4gICAgY29uc3QgbmVpZ2hib3JEYXRhID0gc291cmNlRGF0YSA9PT0gbm9kZURhdGEgPyB0YXJnZXREYXRhIDogc291cmNlRGF0YTtcblxuICAgIGlmICh2aXNpdGVkLmhhcyhuZWlnaGJvckRhdGEua2V5KSkgY29udGludWU7XG5cbiAgICB2aXNpdGVkLmFkZChuZWlnaGJvckRhdGEua2V5KTtcblxuICAgIGNvbnN0IHNob3VsZEJyZWFrID0gY2FsbGJhY2sobmVpZ2hib3JEYXRhLmtleSwgbmVpZ2hib3JEYXRhLmF0dHJpYnV0ZXMpO1xuXG4gICAgaWYgKHNob3VsZEJyZWFrKSByZXR1cm4gbmVpZ2hib3JEYXRhLmtleTtcbiAgfVxuXG4gIHJldHVybjtcbn1cblxuZnVuY3Rpb24gZm9yRWFjaE5laWdoYm9yRm9yTm9kZSh0eXBlLCBkaXJlY3Rpb24sIG5vZGVEYXRhLCBjYWxsYmFjaykge1xuICAvLyBJZiB3ZSB3YW50IG9ubHkgdW5kaXJlY3RlZCBvciBpbiBvciBvdXQsIHdlIGNhbiByb2xsIHNvbWUgb3B0aW1pemF0aW9uc1xuICBpZiAodHlwZSAhPT0gJ21peGVkJykge1xuICAgIGlmICh0eXBlID09PSAndW5kaXJlY3RlZCcpXG4gICAgICByZXR1cm4gZm9yRWFjaEluT2JqZWN0KG5vZGVEYXRhLCBub2RlRGF0YS51bmRpcmVjdGVkLCBjYWxsYmFjayk7XG5cbiAgICBpZiAodHlwZW9mIGRpcmVjdGlvbiA9PT0gJ3N0cmluZycpXG4gICAgICByZXR1cm4gZm9yRWFjaEluT2JqZWN0KG5vZGVEYXRhLCBub2RlRGF0YVtkaXJlY3Rpb25dLCBjYWxsYmFjayk7XG4gIH1cblxuICAvLyBFbHNlIHdlIG5lZWQgdG8ga2VlcCBhIHNldCBvZiBuZWlnaGJvcnMgbm90IHRvIHJldHVybiBkdXBsaWNhdGVzXG4gIGNvbnN0IHZpc2l0ZWQgPSBuZXcgU2V0KCk7XG5cbiAgaWYgKHR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgIGlmIChkaXJlY3Rpb24gIT09ICdvdXQnKSB7XG4gICAgICBmb3JFYWNoSW5PYmplY3RPbmNlKHZpc2l0ZWQsIG5vZGVEYXRhLCBub2RlRGF0YS5pbiwgY2FsbGJhY2spO1xuICAgIH1cbiAgICBpZiAoZGlyZWN0aW9uICE9PSAnaW4nKSB7XG4gICAgICBmb3JFYWNoSW5PYmplY3RPbmNlKHZpc2l0ZWQsIG5vZGVEYXRhLCBub2RlRGF0YS5vdXQsIGNhbGxiYWNrKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZSAhPT0gJ2RpcmVjdGVkJykge1xuICAgIGZvckVhY2hJbk9iamVjdE9uY2UodmlzaXRlZCwgbm9kZURhdGEsIG5vZGVEYXRhLnVuZGlyZWN0ZWQsIGNhbGxiYWNrKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kTmVpZ2hib3IodHlwZSwgZGlyZWN0aW9uLCBub2RlRGF0YSwgY2FsbGJhY2spIHtcbiAgLy8gSWYgd2Ugd2FudCBvbmx5IHVuZGlyZWN0ZWQgb3IgaW4gb3Igb3V0LCB3ZSBjYW4gcm9sbCBzb21lIG9wdGltaXphdGlvbnNcbiAgaWYgKHR5cGUgIT09ICdtaXhlZCcpIHtcbiAgICBpZiAodHlwZSA9PT0gJ3VuZGlyZWN0ZWQnKVxuICAgICAgcmV0dXJuIGZpbmRJbk9iamVjdChub2RlRGF0YSwgbm9kZURhdGEudW5kaXJlY3RlZCwgY2FsbGJhY2spO1xuXG4gICAgaWYgKHR5cGVvZiBkaXJlY3Rpb24gPT09ICdzdHJpbmcnKVxuICAgICAgcmV0dXJuIGZpbmRJbk9iamVjdChub2RlRGF0YSwgbm9kZURhdGFbZGlyZWN0aW9uXSwgY2FsbGJhY2spO1xuICB9XG5cbiAgLy8gRWxzZSB3ZSBuZWVkIHRvIGtlZXAgYSBzZXQgb2YgbmVpZ2hib3JzIG5vdCB0byByZXR1cm4gZHVwbGljYXRlc1xuICBjb25zdCB2aXNpdGVkID0gbmV3IFNldCgpO1xuXG4gIGxldCBmb3VuZDtcblxuICBpZiAodHlwZSAhPT0gJ3VuZGlyZWN0ZWQnKSB7XG4gICAgaWYgKGRpcmVjdGlvbiAhPT0gJ291dCcpIHtcbiAgICAgIGZvdW5kID0gZmluZEluT2JqZWN0T25jZSh2aXNpdGVkLCBub2RlRGF0YSwgbm9kZURhdGEuaW4sIGNhbGxiYWNrKTtcblxuICAgICAgaWYgKGZvdW5kKSByZXR1cm4gZm91bmQ7XG4gICAgfVxuICAgIGlmIChkaXJlY3Rpb24gIT09ICdpbicpIHtcbiAgICAgIGZvdW5kID0gZmluZEluT2JqZWN0T25jZSh2aXNpdGVkLCBub2RlRGF0YSwgbm9kZURhdGEub3V0LCBjYWxsYmFjayk7XG5cbiAgICAgIGlmIChmb3VuZCkgcmV0dXJuIGZvdW5kO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlICE9PSAnZGlyZWN0ZWQnKSB7XG4gICAgZm91bmQgPSBmaW5kSW5PYmplY3RPbmNlKHZpc2l0ZWQsIG5vZGVEYXRhLCBub2RlRGF0YS51bmRpcmVjdGVkLCBjYWxsYmFjayk7XG5cbiAgICBpZiAoZm91bmQpIHJldHVybiBmb3VuZDtcbiAgfVxuXG4gIHJldHVybjtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiByZXR1cm5pbmcgYW4gaXRlcmF0b3Igb3ZlciB0aGUgZ2l2ZW4gbm9kZSdzIHJlbGV2YW50IG5laWdoYm9ycy5cbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgdHlwZSAgICAgIC0gVHlwZSBvZiBuZWlnaGJvcnMuXG4gKiBAcGFyYW0gIHtzdHJpbmd9ICAgZGlyZWN0aW9uIC0gRGlyZWN0aW9uLlxuICogQHBhcmFtICB7YW55fSAgICAgIG5vZGVEYXRhICAtIFRhcmdldCBub2RlJ3MgZGF0YS5cbiAqIEByZXR1cm4ge0l0ZXJhdG9yfVxuICovXG5mdW5jdGlvbiBjcmVhdGVPYmplY3RJdGVyYXRvcihub2RlRGF0YSwgb2JqZWN0KSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpLFxuICAgIGwgPSBrZXlzLmxlbmd0aDtcblxuICBsZXQgaSA9IDA7XG5cbiAgcmV0dXJuIG5ldyBJdGVyYXRvcihmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGkgPj0gbCkgcmV0dXJuIHtkb25lOiB0cnVlfTtcblxuICAgIGxldCBlZGdlRGF0YSA9IG9iamVjdFtrZXlzW2krK11dO1xuXG4gICAgaWYgKGVkZ2VEYXRhIGluc3RhbmNlb2YgU2V0KSBlZGdlRGF0YSA9IGVkZ2VEYXRhLnZhbHVlcygpLm5leHQoKS52YWx1ZTtcblxuICAgIGNvbnN0IHNvdXJjZURhdGEgPSBlZGdlRGF0YS5zb3VyY2UsXG4gICAgICB0YXJnZXREYXRhID0gZWRnZURhdGEudGFyZ2V0O1xuXG4gICAgY29uc3QgbmVpZ2hib3JEYXRhID0gc291cmNlRGF0YSA9PT0gbm9kZURhdGEgPyB0YXJnZXREYXRhIDogc291cmNlRGF0YTtcblxuICAgIHJldHVybiB7XG4gICAgICBkb25lOiBmYWxzZSxcbiAgICAgIHZhbHVlOiB7bmVpZ2hib3I6IG5laWdoYm9yRGF0YS5rZXksIGF0dHJpYnV0ZXM6IG5laWdoYm9yRGF0YS5hdHRyaWJ1dGVzfVxuICAgIH07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEZWR1cGVkT2JqZWN0SXRlcmF0b3IodmlzaXRlZCwgbm9kZURhdGEsIG9iamVjdCkge1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KSxcbiAgICBsID0ga2V5cy5sZW5ndGg7XG5cbiAgbGV0IGkgPSAwO1xuXG4gIHJldHVybiBuZXcgSXRlcmF0b3IoZnVuY3Rpb24gbmV4dCgpIHtcbiAgICBpZiAoaSA+PSBsKSByZXR1cm4ge2RvbmU6IHRydWV9O1xuXG4gICAgbGV0IGVkZ2VEYXRhID0gb2JqZWN0W2tleXNbaSsrXV07XG5cbiAgICBpZiAoZWRnZURhdGEgaW5zdGFuY2VvZiBTZXQpIGVkZ2VEYXRhID0gZWRnZURhdGEudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xuXG4gICAgY29uc3Qgc291cmNlRGF0YSA9IGVkZ2VEYXRhLnNvdXJjZSxcbiAgICAgIHRhcmdldERhdGEgPSBlZGdlRGF0YS50YXJnZXQ7XG5cbiAgICBjb25zdCBuZWlnaGJvckRhdGEgPSBzb3VyY2VEYXRhID09PSBub2RlRGF0YSA/IHRhcmdldERhdGEgOiBzb3VyY2VEYXRhO1xuXG4gICAgaWYgKHZpc2l0ZWQuaGFzKG5laWdoYm9yRGF0YS5rZXkpKSByZXR1cm4gbmV4dCgpO1xuXG4gICAgdmlzaXRlZC5hZGQobmVpZ2hib3JEYXRhLmtleSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZG9uZTogZmFsc2UsXG4gICAgICB2YWx1ZToge25laWdoYm9yOiBuZWlnaGJvckRhdGEua2V5LCBhdHRyaWJ1dGVzOiBuZWlnaGJvckRhdGEuYXR0cmlidXRlc31cbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTmVpZ2hib3JJdGVyYXRvcih0eXBlLCBkaXJlY3Rpb24sIG5vZGVEYXRhKSB7XG4gIC8vIElmIHdlIHdhbnQgb25seSB1bmRpcmVjdGVkIG9yIGluIG9yIG91dCwgd2UgY2FuIHJvbGwgc29tZSBvcHRpbWl6YXRpb25zXG4gIGlmICh0eXBlICE9PSAnbWl4ZWQnKSB7XG4gICAgaWYgKHR5cGUgPT09ICd1bmRpcmVjdGVkJylcbiAgICAgIHJldHVybiBjcmVhdGVPYmplY3RJdGVyYXRvcihub2RlRGF0YSwgbm9kZURhdGEudW5kaXJlY3RlZCk7XG5cbiAgICBpZiAodHlwZW9mIGRpcmVjdGlvbiA9PT0gJ3N0cmluZycpXG4gICAgICByZXR1cm4gY3JlYXRlT2JqZWN0SXRlcmF0b3Iobm9kZURhdGEsIG5vZGVEYXRhW2RpcmVjdGlvbl0pO1xuICB9XG5cbiAgbGV0IGl0ZXJhdG9yID0gSXRlcmF0b3IuZW1wdHkoKTtcblxuICAvLyBFbHNlIHdlIG5lZWQgdG8ga2VlcCBhIHNldCBvZiBuZWlnaGJvcnMgbm90IHRvIHJldHVybiBkdXBsaWNhdGVzXG4gIGNvbnN0IHZpc2l0ZWQgPSBuZXcgU2V0KCk7XG5cbiAgaWYgKHR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgIGlmIChkaXJlY3Rpb24gIT09ICdvdXQnKSB7XG4gICAgICBpdGVyYXRvciA9IGNoYWluKFxuICAgICAgICBpdGVyYXRvcixcbiAgICAgICAgY3JlYXRlRGVkdXBlZE9iamVjdEl0ZXJhdG9yKHZpc2l0ZWQsIG5vZGVEYXRhLCBub2RlRGF0YS5pbilcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChkaXJlY3Rpb24gIT09ICdpbicpIHtcbiAgICAgIGl0ZXJhdG9yID0gY2hhaW4oXG4gICAgICAgIGl0ZXJhdG9yLFxuICAgICAgICBjcmVhdGVEZWR1cGVkT2JqZWN0SXRlcmF0b3IodmlzaXRlZCwgbm9kZURhdGEsIG5vZGVEYXRhLm91dClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGUgIT09ICdkaXJlY3RlZCcpIHtcbiAgICBpdGVyYXRvciA9IGNoYWluKFxuICAgICAgaXRlcmF0b3IsXG4gICAgICBjcmVhdGVEZWR1cGVkT2JqZWN0SXRlcmF0b3IodmlzaXRlZCwgbm9kZURhdGEsIG5vZGVEYXRhLnVuZGlyZWN0ZWQpXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBpdGVyYXRvcjtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBhdHRhY2hpbmcgYSBuZWlnaGJvcnMgYXJyYXkgY3JlYXRvciBtZXRob2QgdG8gdGhlIEdyYXBoIHByb3RvdHlwZS5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBDbGFzcyAgICAgICAtIFRhcmdldCBjbGFzcy5cbiAqIEBwYXJhbSB7b2JqZWN0fSAgIGRlc2NyaXB0aW9uIC0gTWV0aG9kIGRlc2NyaXB0aW9uLlxuICovXG5mdW5jdGlvbiBhdHRhY2hOZWlnaGJvckFycmF5Q3JlYXRvcihDbGFzcywgZGVzY3JpcHRpb24pIHtcbiAgY29uc3Qge25hbWUsIHR5cGUsIGRpcmVjdGlvbn0gPSBkZXNjcmlwdGlvbjtcblxuICAvKipcbiAgICogRnVuY3Rpb24gcmV0dXJuaW5nIGFuIGFycmF5IG9mIGNlcnRhaW4gbmVpZ2hib3JzLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgbm9kZSAgIC0gVGFyZ2V0IG5vZGUuXG4gICAqIEByZXR1cm4ge2FycmF5fSAtIFRoZSBuZWlnaGJvcnMgb2YgbmVpZ2hib3JzLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIG5vZGUgaXMgbm90IGZvdW5kIGluIHRoZSBncmFwaC5cbiAgICovXG4gIENsYXNzLnByb3RvdHlwZVtuYW1lXSA9IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgLy8gRWFybHkgdGVybWluYXRpb25cbiAgICBpZiAodHlwZSAhPT0gJ21peGVkJyAmJiB0aGlzLnR5cGUgIT09ICdtaXhlZCcgJiYgdHlwZSAhPT0gdGhpcy50eXBlKVxuICAgICAgcmV0dXJuIFtdO1xuXG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKHR5cGVvZiBub2RlRGF0YSA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHtuYW1lfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICAvLyBIZXJlLCB3ZSB3YW50IHRvIGl0ZXJhdGUgb3ZlciBhIG5vZGUncyByZWxldmFudCBuZWlnaGJvcnNcbiAgICByZXR1cm4gY3JlYXRlTmVpZ2hib3JBcnJheUZvck5vZGUoXG4gICAgICB0eXBlID09PSAnbWl4ZWQnID8gdGhpcy50eXBlIDogdHlwZSxcbiAgICAgIGRpcmVjdGlvbixcbiAgICAgIG5vZGVEYXRhXG4gICAgKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBhdHRhY2hpbmcgYSBuZWlnaGJvcnMgY2FsbGJhY2sgaXRlcmF0b3IgbWV0aG9kIHRvIHRoZSBHcmFwaCBwcm90b3R5cGUuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gQ2xhc3MgICAgICAgLSBUYXJnZXQgY2xhc3MuXG4gKiBAcGFyYW0ge29iamVjdH0gICBkZXNjcmlwdGlvbiAtIE1ldGhvZCBkZXNjcmlwdGlvbi5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoRm9yRWFjaE5laWdoYm9yKENsYXNzLCBkZXNjcmlwdGlvbikge1xuICBjb25zdCB7bmFtZSwgdHlwZSwgZGlyZWN0aW9ufSA9IGRlc2NyaXB0aW9uO1xuXG4gIGNvbnN0IGZvckVhY2hOYW1lID0gJ2ZvckVhY2gnICsgbmFtZVswXS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxLCAtMSk7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIGFsbCB0aGUgcmVsZXZhbnQgbmVpZ2hib3JzIHVzaW5nIGEgY2FsbGJhY2suXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgICBub2RlICAgICAtIFRhcmdldCBub2RlLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byB1c2UuXG4gICAqIEByZXR1cm4ge3VuZGVmaW5lZH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgYXJndW1lbnRzLlxuICAgKi9cbiAgQ2xhc3MucHJvdG90eXBlW2ZvckVhY2hOYW1lXSA9IGZ1bmN0aW9uIChub2RlLCBjYWxsYmFjaykge1xuICAgIC8vIEVhcmx5IHRlcm1pbmF0aW9uXG4gICAgaWYgKHR5cGUgIT09ICdtaXhlZCcgJiYgdGhpcy50eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09IHRoaXMudHlwZSkgcmV0dXJuO1xuXG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKHR5cGVvZiBub2RlRGF0YSA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHtmb3JFYWNoTmFtZX06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgLy8gSGVyZSwgd2Ugd2FudCB0byBpdGVyYXRlIG92ZXIgYSBub2RlJ3MgcmVsZXZhbnQgbmVpZ2hib3JzXG4gICAgZm9yRWFjaE5laWdoYm9yRm9yTm9kZShcbiAgICAgIHR5cGUgPT09ICdtaXhlZCcgPyB0aGlzLnR5cGUgOiB0eXBlLFxuICAgICAgZGlyZWN0aW9uLFxuICAgICAgbm9kZURhdGEsXG4gICAgICBjYWxsYmFja1xuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIG1hcHBpbmcgdGhlIHJlbGV2YW50IG5laWdoYm9ycyB1c2luZyBhIGNhbGxiYWNrLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgbm9kZSAgICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZXJlIGFyZSB0b28gbWFueSBhcmd1bWVudHMuXG4gICAqL1xuICBjb25zdCBtYXBOYW1lID0gJ21hcCcgKyBuYW1lWzBdLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEpO1xuXG4gIENsYXNzLnByb3RvdHlwZVttYXBOYW1lXSA9IGZ1bmN0aW9uIChub2RlLCBjYWxsYmFjaykge1xuICAgIC8vIFRPRE86IG9wdGltaXplIHdoZW4gc2l6ZSBpcyBrbm93biBiZWZvcmVoYW5kXG4gICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICB0aGlzW2ZvckVhY2hOYW1lXShub2RlLCAobiwgYSkgPT4ge1xuICAgICAgcmVzdWx0LnB1c2goY2FsbGJhY2sobiwgYSkpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gZmlsdGVyaW5nIHRoZSByZWxldmFudCBuZWlnaGJvcnMgdXNpbmcgYSBjYWxsYmFjay5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgIG5vZGUgICAgIC0gVGFyZ2V0IG5vZGUuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgYXJndW1lbnRzLlxuICAgKi9cbiAgY29uc3QgZmlsdGVyTmFtZSA9ICdmaWx0ZXInICsgbmFtZVswXS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKTtcblxuICBDbGFzcy5wcm90b3R5cGVbZmlsdGVyTmFtZV0gPSBmdW5jdGlvbiAobm9kZSwgY2FsbGJhY2spIHtcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgIHRoaXNbZm9yRWFjaE5hbWVdKG5vZGUsIChuLCBhKSA9PiB7XG4gICAgICBpZiAoY2FsbGJhY2sobiwgYSkpIHJlc3VsdC5wdXNoKG4pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gcmVkdWNpbmcgdGhlIHJlbGV2YW50IG5laWdoYm9ycyB1c2luZyBhIGNhbGxiYWNrLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgbm9kZSAgICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZXJlIGFyZSB0b28gbWFueSBhcmd1bWVudHMuXG4gICAqL1xuICBjb25zdCByZWR1Y2VOYW1lID0gJ3JlZHVjZScgKyBuYW1lWzBdLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEpO1xuXG4gIENsYXNzLnByb3RvdHlwZVtyZWR1Y2VOYW1lXSA9IGZ1bmN0aW9uIChub2RlLCBjYWxsYmFjaywgaW5pdGlhbFZhbHVlKSB7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAzKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHtyZWR1Y2VOYW1lfTogbWlzc2luZyBpbml0aWFsIHZhbHVlLiBZb3UgbXVzdCBwcm92aWRlIGl0IGJlY2F1c2UgdGhlIGNhbGxiYWNrIHRha2VzIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQgYW5kIHdlIGNhbm5vdCBpbmZlciB0aGUgaW5pdGlhbCB2YWx1ZSBmcm9tIHRoZSBmaXJzdCBpdGVyYXRpb24sIGFzIHlvdSBjb3VsZCB3aXRoIGEgc2ltcGxlIGFycmF5LmBcbiAgICAgICk7XG5cbiAgICBsZXQgYWNjdW11bGF0b3IgPSBpbml0aWFsVmFsdWU7XG5cbiAgICB0aGlzW2ZvckVhY2hOYW1lXShub2RlLCAobiwgYSkgPT4ge1xuICAgICAgYWNjdW11bGF0b3IgPSBjYWxsYmFjayhhY2N1bXVsYXRvciwgbiwgYSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gIH07XG59XG5cbi8qKlxuICogRnVuY3Rpb24gYXR0YWNoaW5nIGEgYnJlYWthYmxlIG5laWdoYm9ycyBjYWxsYmFjayBpdGVyYXRvciBtZXRob2QgdG8gdGhlXG4gKiBHcmFwaCBwcm90b3R5cGUuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gQ2xhc3MgICAgICAgLSBUYXJnZXQgY2xhc3MuXG4gKiBAcGFyYW0ge29iamVjdH0gICBkZXNjcmlwdGlvbiAtIE1ldGhvZCBkZXNjcmlwdGlvbi5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoRmluZE5laWdoYm9yKENsYXNzLCBkZXNjcmlwdGlvbikge1xuICBjb25zdCB7bmFtZSwgdHlwZSwgZGlyZWN0aW9ufSA9IGRlc2NyaXB0aW9uO1xuXG4gIGNvbnN0IGNhcGl0YWxpemVkU2luZ3VsYXIgPSBuYW1lWzBdLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEsIC0xKTtcblxuICBjb25zdCBmaW5kTmFtZSA9ICdmaW5kJyArIGNhcGl0YWxpemVkU2luZ3VsYXI7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIGFsbCB0aGUgcmVsZXZhbnQgbmVpZ2hib3JzIHVzaW5nIGEgY2FsbGJhY2suXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgICBub2RlICAgICAtIFRhcmdldCBub2RlLlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byB1c2UuXG4gICAqIEByZXR1cm4ge3VuZGVmaW5lZH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgYXJndW1lbnRzLlxuICAgKi9cbiAgQ2xhc3MucHJvdG90eXBlW2ZpbmROYW1lXSA9IGZ1bmN0aW9uIChub2RlLCBjYWxsYmFjaykge1xuICAgIC8vIEVhcmx5IHRlcm1pbmF0aW9uXG4gICAgaWYgKHR5cGUgIT09ICdtaXhlZCcgJiYgdGhpcy50eXBlICE9PSAnbWl4ZWQnICYmIHR5cGUgIT09IHRoaXMudHlwZSkgcmV0dXJuO1xuXG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKHR5cGVvZiBub2RlRGF0YSA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguJHtmaW5kTmFtZX06IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgLy8gSGVyZSwgd2Ugd2FudCB0byBpdGVyYXRlIG92ZXIgYSBub2RlJ3MgcmVsZXZhbnQgbmVpZ2hib3JzXG4gICAgcmV0dXJuIGZpbmROZWlnaGJvcihcbiAgICAgIHR5cGUgPT09ICdtaXhlZCcgPyB0aGlzLnR5cGUgOiB0eXBlLFxuICAgICAgZGlyZWN0aW9uLFxuICAgICAgbm9kZURhdGEsXG4gICAgICBjYWxsYmFja1xuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIGFsbCB0aGUgcmVsZXZhbnQgbmVpZ2hib3JzIHRvIGZpbmQgaWYgYW55IG9mIHRoZW1cbiAgICogbWF0Y2hlcyB0aGUgZ2l2ZW4gcHJlZGljYXRlLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgbm9kZSAgICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gdXNlLlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZXJlIGFyZSB0b28gbWFueSBhcmd1bWVudHMuXG4gICAqL1xuICBjb25zdCBzb21lTmFtZSA9ICdzb21lJyArIGNhcGl0YWxpemVkU2luZ3VsYXI7XG5cbiAgQ2xhc3MucHJvdG90eXBlW3NvbWVOYW1lXSA9IGZ1bmN0aW9uIChub2RlLCBjYWxsYmFjaykge1xuICAgIGNvbnN0IGZvdW5kID0gdGhpc1tmaW5kTmFtZV0obm9kZSwgY2FsbGJhY2spO1xuXG4gICAgaWYgKGZvdW5kKSByZXR1cm4gdHJ1ZTtcblxuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgYWxsIHRoZSByZWxldmFudCBuZWlnaGJvcnMgdG8gZmluZCBpZiBhbGwgb2YgdGhlbVxuICAgKiBtYXRjaGUgdGhlIGdpdmVuIHByZWRpY2F0ZS5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgIG5vZGUgICAgIC0gVGFyZ2V0IG5vZGUuXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgYXJndW1lbnRzLlxuICAgKi9cbiAgY29uc3QgZXZlcnlOYW1lID0gJ2V2ZXJ5JyArIGNhcGl0YWxpemVkU2luZ3VsYXI7XG5cbiAgQ2xhc3MucHJvdG90eXBlW2V2ZXJ5TmFtZV0gPSBmdW5jdGlvbiAobm9kZSwgY2FsbGJhY2spIHtcbiAgICBjb25zdCBmb3VuZCA9IHRoaXNbZmluZE5hbWVdKG5vZGUsIChuLCBhKSA9PiB7XG4gICAgICByZXR1cm4gIWNhbGxiYWNrKG4sIGEpO1xuICAgIH0pO1xuXG4gICAgaWYgKGZvdW5kKSByZXR1cm4gZmFsc2U7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBhdHRhY2hpbmcgYSBuZWlnaGJvcnMgY2FsbGJhY2sgaXRlcmF0b3IgbWV0aG9kIHRvIHRoZSBHcmFwaCBwcm90b3R5cGUuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gQ2xhc3MgICAgICAgLSBUYXJnZXQgY2xhc3MuXG4gKiBAcGFyYW0ge29iamVjdH0gICBkZXNjcmlwdGlvbiAtIE1ldGhvZCBkZXNjcmlwdGlvbi5cbiAqL1xuZnVuY3Rpb24gYXR0YWNoTmVpZ2hib3JJdGVyYXRvckNyZWF0b3IoQ2xhc3MsIGRlc2NyaXB0aW9uKSB7XG4gIGNvbnN0IHtuYW1lLCB0eXBlLCBkaXJlY3Rpb259ID0gZGVzY3JpcHRpb247XG5cbiAgY29uc3QgaXRlcmF0b3JOYW1lID0gbmFtZS5zbGljZSgwLCAtMSkgKyAnRW50cmllcyc7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHJldHVybmluZyBhbiBpdGVyYXRvciBvdmVyIGFsbCB0aGUgcmVsZXZhbnQgbmVpZ2hib3JzLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICAgbm9kZSAgICAgLSBUYXJnZXQgbm9kZS5cbiAgICogQHJldHVybiB7SXRlcmF0b3J9XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlcmUgYXJlIHRvbyBtYW55IGFyZ3VtZW50cy5cbiAgICovXG4gIENsYXNzLnByb3RvdHlwZVtpdGVyYXRvck5hbWVdID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAvLyBFYXJseSB0ZXJtaW5hdGlvblxuICAgIGlmICh0eXBlICE9PSAnbWl4ZWQnICYmIHRoaXMudHlwZSAhPT0gJ21peGVkJyAmJiB0eXBlICE9PSB0aGlzLnR5cGUpXG4gICAgICByZXR1cm4gSXRlcmF0b3IuZW1wdHkoKTtcblxuICAgIG5vZGUgPSAnJyArIG5vZGU7XG5cbiAgICBjb25zdCBub2RlRGF0YSA9IHRoaXMuX25vZGVzLmdldChub2RlKTtcblxuICAgIGlmICh0eXBlb2Ygbm9kZURhdGEgPT09ICd1bmRlZmluZWQnKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7aXRlcmF0b3JOYW1lfTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICAvLyBIZXJlLCB3ZSB3YW50IHRvIGl0ZXJhdGUgb3ZlciBhIG5vZGUncyByZWxldmFudCBuZWlnaGJvcnNcbiAgICByZXR1cm4gY3JlYXRlTmVpZ2hib3JJdGVyYXRvcihcbiAgICAgIHR5cGUgPT09ICdtaXhlZCcgPyB0aGlzLnR5cGUgOiB0eXBlLFxuICAgICAgZGlyZWN0aW9uLFxuICAgICAgbm9kZURhdGFcbiAgICApO1xuICB9O1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGF0dGFjaGluZyBldmVyeSBuZWlnaGJvciBpdGVyYXRpb24gbWV0aG9kIHRvIHRoZSBHcmFwaCBjbGFzcy5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBHcmFwaCAtIEdyYXBoIGNsYXNzLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhdHRhY2hOZWlnaGJvckl0ZXJhdGlvbk1ldGhvZHMoR3JhcGgpIHtcbiAgTkVJR0hCT1JTX0lURVJBVElPTi5mb3JFYWNoKGRlc2NyaXB0aW9uID0+IHtcbiAgICBhdHRhY2hOZWlnaGJvckFycmF5Q3JlYXRvcihHcmFwaCwgZGVzY3JpcHRpb24pO1xuICAgIGF0dGFjaEZvckVhY2hOZWlnaGJvcihHcmFwaCwgZGVzY3JpcHRpb24pO1xuICAgIGF0dGFjaEZpbmROZWlnaGJvcihHcmFwaCwgZGVzY3JpcHRpb24pO1xuICAgIGF0dGFjaE5laWdoYm9ySXRlcmF0b3JDcmVhdG9yKEdyYXBoLCBkZXNjcmlwdGlvbik7XG4gIH0pO1xufVxuIiwgIi8qKlxuICogR3JhcGhvbG9neSBBZGphY2VuY3kgSXRlcmF0aW9uXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICpcbiAqIEF0dGFjaGluZyBzb21lIG1ldGhvZHMgdG8gdGhlIEdyYXBoIGNsYXNzIHRvIGJlIGFibGUgdG8gaXRlcmF0ZSBvdmVyIGFcbiAqIGdyYXBoJ3MgYWRqYWNlbmN5LlxuICovXG5cbi8qKlxuICogRnVuY3Rpb24gaXRlcmF0aW5nIG92ZXIgYSBzaW1wbGUgZ3JhcGgncyBhZGphY2VuY3kgdXNpbmcgYSBjYWxsYmFjay5cbiAqXG4gKiBAcGFyYW0ge2Jvb2xlYW59ICBicmVha2FibGUgICAgICAgICAtIENhbiB3ZSBicmVhaz9cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gIGFzc3ltZXRyaWMgICAgICAgIC0gV2hldGhlciB0byBlbWl0IHVuZGlyZWN0ZWQgZWRnZXMgb25seSBvbmNlLlxuICogQHBhcmFtIHtib29sZWFufSAgZGlzY29ubmVjdGVkTm9kZXMgLSBXaGV0aGVyIHRvIGVtaXQgZGlzY29ubmVjdGVkIG5vZGVzLlxuICogQHBhcmFtIHtHcmFwaH0gICAgZ3JhcGggICAgICAgICAgICAgLSBUYXJnZXQgR3JhcGggaW5zdGFuY2UuXG4gKiBAcGFyYW0ge2NhbGxiYWNrfSBmdW5jdGlvbiAgICAgICAgICAtIEl0ZXJhdGlvbiBjYWxsYmFjay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvckVhY2hBZGphY2VuY3lTaW1wbGUoXG4gIGJyZWFrYWJsZSxcbiAgYXNzeW1ldHJpYyxcbiAgZGlzY29ubmVjdGVkTm9kZXMsXG4gIGdyYXBoLFxuICBjYWxsYmFja1xuKSB7XG4gIGNvbnN0IGl0ZXJhdG9yID0gZ3JhcGguX25vZGVzLnZhbHVlcygpO1xuXG4gIGNvbnN0IHR5cGUgPSBncmFwaC50eXBlO1xuXG4gIGxldCBzdGVwLCBzb3VyY2VEYXRhLCBuZWlnaGJvciwgYWRqLCBlZGdlRGF0YSwgdGFyZ2V0RGF0YSwgc2hvdWxkQnJlYWs7XG5cbiAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICBsZXQgaGFzRWRnZXMgPSBmYWxzZTtcblxuICAgIHNvdXJjZURhdGEgPSBzdGVwLnZhbHVlO1xuXG4gICAgaWYgKHR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgICAgYWRqID0gc291cmNlRGF0YS5vdXQ7XG5cbiAgICAgIGZvciAobmVpZ2hib3IgaW4gYWRqKSB7XG4gICAgICAgIGVkZ2VEYXRhID0gYWRqW25laWdoYm9yXTtcbiAgICAgICAgdGFyZ2V0RGF0YSA9IGVkZ2VEYXRhLnRhcmdldDtcblxuICAgICAgICBoYXNFZGdlcyA9IHRydWU7XG4gICAgICAgIHNob3VsZEJyZWFrID0gY2FsbGJhY2soXG4gICAgICAgICAgc291cmNlRGF0YS5rZXksXG4gICAgICAgICAgdGFyZ2V0RGF0YS5rZXksXG4gICAgICAgICAgc291cmNlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgIHRhcmdldERhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgICBlZGdlRGF0YS5rZXksXG4gICAgICAgICAgZWRnZURhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgICBlZGdlRGF0YS51bmRpcmVjdGVkXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGJyZWFrYWJsZSAmJiBzaG91bGRCcmVhaykgcmV0dXJuIGVkZ2VEYXRhO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlICE9PSAnZGlyZWN0ZWQnKSB7XG4gICAgICBhZGogPSBzb3VyY2VEYXRhLnVuZGlyZWN0ZWQ7XG5cbiAgICAgIGZvciAobmVpZ2hib3IgaW4gYWRqKSB7XG4gICAgICAgIGlmIChhc3N5bWV0cmljICYmIHNvdXJjZURhdGEua2V5ID4gbmVpZ2hib3IpIGNvbnRpbnVlO1xuXG4gICAgICAgIGVkZ2VEYXRhID0gYWRqW25laWdoYm9yXTtcbiAgICAgICAgdGFyZ2V0RGF0YSA9IGVkZ2VEYXRhLnRhcmdldDtcblxuICAgICAgICBpZiAodGFyZ2V0RGF0YS5rZXkgIT09IG5laWdoYm9yKSB0YXJnZXREYXRhID0gZWRnZURhdGEuc291cmNlO1xuXG4gICAgICAgIGhhc0VkZ2VzID0gdHJ1ZTtcbiAgICAgICAgc2hvdWxkQnJlYWsgPSBjYWxsYmFjayhcbiAgICAgICAgICBzb3VyY2VEYXRhLmtleSxcbiAgICAgICAgICB0YXJnZXREYXRhLmtleSxcbiAgICAgICAgICBzb3VyY2VEYXRhLmF0dHJpYnV0ZXMsXG4gICAgICAgICAgdGFyZ2V0RGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgIGVkZ2VEYXRhLmtleSxcbiAgICAgICAgICBlZGdlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgIGVkZ2VEYXRhLnVuZGlyZWN0ZWRcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoYnJlYWthYmxlICYmIHNob3VsZEJyZWFrKSByZXR1cm4gZWRnZURhdGE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRpc2Nvbm5lY3RlZE5vZGVzICYmICFoYXNFZGdlcykge1xuICAgICAgc2hvdWxkQnJlYWsgPSBjYWxsYmFjayhcbiAgICAgICAgc291cmNlRGF0YS5rZXksXG4gICAgICAgIG51bGwsXG4gICAgICAgIHNvdXJjZURhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbnVsbFxuICAgICAgKTtcblxuICAgICAgaWYgKGJyZWFrYWJsZSAmJiBzaG91bGRCcmVhaykgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuO1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGl0ZXJhdGluZyBvdmVyIGEgbXVsdGkgZ3JhcGgncyBhZGphY2VuY3kgdXNpbmcgYSBjYWxsYmFjay5cbiAqXG4gKiBAcGFyYW0ge2Jvb2xlYW59ICBicmVha2FibGUgICAgICAgICAtIENhbiB3ZSBicmVhaz9cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gIGFzc3ltZXRyaWMgICAgICAgIC0gV2hldGhlciB0byBlbWl0IHVuZGlyZWN0ZWQgZWRnZXMgb25seSBvbmNlLlxuICogQHBhcmFtIHtib29sZWFufSAgZGlzY29ubmVjdGVkTm9kZXMgLSBXaGV0aGVyIHRvIGVtaXQgZGlzY29ubmVjdGVkIG5vZGVzLlxuICogQHBhcmFtIHtHcmFwaH0gICAgZ3JhcGggICAgICAgICAgICAgLSBUYXJnZXQgR3JhcGggaW5zdGFuY2UuXG4gKiBAcGFyYW0ge2NhbGxiYWNrfSBmdW5jdGlvbiAgICAgICAgICAtIEl0ZXJhdGlvbiBjYWxsYmFjay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvckVhY2hBZGphY2VuY3lNdWx0aShcbiAgYnJlYWthYmxlLFxuICBhc3N5bWV0cmljLFxuICBkaXNjb25uZWN0ZWROb2RlcyxcbiAgZ3JhcGgsXG4gIGNhbGxiYWNrXG4pIHtcbiAgY29uc3QgaXRlcmF0b3IgPSBncmFwaC5fbm9kZXMudmFsdWVzKCk7XG5cbiAgY29uc3QgdHlwZSA9IGdyYXBoLnR5cGU7XG5cbiAgbGV0IHN0ZXA7XG4gIGxldCBzb3VyY2VEYXRhO1xuICBsZXQgbmVpZ2hib3I7XG4gIGxldCBjb250YWluZXI7XG4gIGxldCBjb250YWluZXJTdGVwO1xuICBsZXQgYWRqO1xuICBsZXQgZWRnZURhdGE7XG4gIGxldCB0YXJnZXREYXRhO1xuICBsZXQgc2hvdWxkQnJlYWs7XG5cbiAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICBsZXQgaGFzRWRnZXMgPSBmYWxzZTtcblxuICAgIHNvdXJjZURhdGEgPSBzdGVwLnZhbHVlO1xuXG4gICAgaWYgKHR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgICAgYWRqID0gc291cmNlRGF0YS5vdXQ7XG5cbiAgICAgIGZvciAobmVpZ2hib3IgaW4gYWRqKSB7XG4gICAgICAgIGNvbnRhaW5lciA9IGFkaltuZWlnaGJvcl0udmFsdWVzKCk7XG5cbiAgICAgICAgd2hpbGUgKFxuICAgICAgICAgICgoY29udGFpbmVyU3RlcCA9IGNvbnRhaW5lci5uZXh0KCkpLCBjb250YWluZXJTdGVwLmRvbmUgIT09IHRydWUpXG4gICAgICAgICkge1xuICAgICAgICAgIGVkZ2VEYXRhID0gY29udGFpbmVyU3RlcC52YWx1ZTtcbiAgICAgICAgICB0YXJnZXREYXRhID0gZWRnZURhdGEudGFyZ2V0O1xuXG4gICAgICAgICAgaGFzRWRnZXMgPSB0cnVlO1xuICAgICAgICAgIHNob3VsZEJyZWFrID0gY2FsbGJhY2soXG4gICAgICAgICAgICBzb3VyY2VEYXRhLmtleSxcbiAgICAgICAgICAgIHRhcmdldERhdGEua2V5LFxuICAgICAgICAgICAgc291cmNlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgICAgdGFyZ2V0RGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgICAgZWRnZURhdGEua2V5LFxuICAgICAgICAgICAgZWRnZURhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgICAgIGVkZ2VEYXRhLnVuZGlyZWN0ZWRcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKGJyZWFrYWJsZSAmJiBzaG91bGRCcmVhaykgcmV0dXJuIGVkZ2VEYXRhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgIT09ICdkaXJlY3RlZCcpIHtcbiAgICAgIGFkaiA9IHNvdXJjZURhdGEudW5kaXJlY3RlZDtcblxuICAgICAgZm9yIChuZWlnaGJvciBpbiBhZGopIHtcbiAgICAgICAgaWYgKGFzc3ltZXRyaWMgJiYgc291cmNlRGF0YS5rZXkgPiBuZWlnaGJvcikgY29udGludWU7XG5cbiAgICAgICAgY29udGFpbmVyID0gYWRqW25laWdoYm9yXS52YWx1ZXMoKTtcblxuICAgICAgICB3aGlsZSAoXG4gICAgICAgICAgKChjb250YWluZXJTdGVwID0gY29udGFpbmVyLm5leHQoKSksIGNvbnRhaW5lclN0ZXAuZG9uZSAhPT0gdHJ1ZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgZWRnZURhdGEgPSBjb250YWluZXJTdGVwLnZhbHVlO1xuICAgICAgICAgIHRhcmdldERhdGEgPSBlZGdlRGF0YS50YXJnZXQ7XG5cbiAgICAgICAgICBpZiAodGFyZ2V0RGF0YS5rZXkgIT09IG5laWdoYm9yKSB0YXJnZXREYXRhID0gZWRnZURhdGEuc291cmNlO1xuXG4gICAgICAgICAgaGFzRWRnZXMgPSB0cnVlO1xuICAgICAgICAgIHNob3VsZEJyZWFrID0gY2FsbGJhY2soXG4gICAgICAgICAgICBzb3VyY2VEYXRhLmtleSxcbiAgICAgICAgICAgIHRhcmdldERhdGEua2V5LFxuICAgICAgICAgICAgc291cmNlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgICAgdGFyZ2V0RGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgICAgZWRnZURhdGEua2V5LFxuICAgICAgICAgICAgZWRnZURhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgICAgIGVkZ2VEYXRhLnVuZGlyZWN0ZWRcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKGJyZWFrYWJsZSAmJiBzaG91bGRCcmVhaykgcmV0dXJuIGVkZ2VEYXRhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRpc2Nvbm5lY3RlZE5vZGVzICYmICFoYXNFZGdlcykge1xuICAgICAgc2hvdWxkQnJlYWsgPSBjYWxsYmFjayhcbiAgICAgICAgc291cmNlRGF0YS5rZXksXG4gICAgICAgIG51bGwsXG4gICAgICAgIHNvdXJjZURhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbnVsbFxuICAgICAgKTtcblxuICAgICAgaWYgKGJyZWFrYWJsZSAmJiBzaG91bGRCcmVhaykgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuO1xufVxuXG4vLyBleHBvcnQgZnVuY3Rpb24gY3JlYXRlQWRqYWNlbmN5SXRlcmF0b3JTaW1wbGUoZ3JhcGgpIHtcbi8vICAgY29uc3QgaXRlcmF0b3IgPSBncmFwaC5fbm9kZXMudmFsdWVzKCk7XG5cbi8vICAgY29uc3QgdHlwZSA9IGdyYXBoLnR5cGU7XG5cbi8vICAgbGV0IHN0YXRlID0gJ291dGVyJyxcbi8vICAgICBzb3VyY2VEYXRhLFxuLy8gICAgIG5laWdoYm9ycyxcbi8vICAgICBhZGosXG4vLyAgICAgb2Zmc2V0O1xuXG4vLyAgIHJldHVybiBuZXcgSXRlcmF0b3IoZnVuY3Rpb24gbmV4dCgpIHtcbi8vICAgICBsZXQgc3RlcDtcblxuLy8gICAgIGlmIChzdGF0ZSA9PT0gJ291dGVyJykge1xuLy8gICAgICAgc3RlcCA9IGl0ZXJhdG9yLm5leHQoKTtcblxuLy8gICAgICAgaWYgKHN0ZXAuZG9uZSA9PT0gdHJ1ZSkgcmV0dXJuIHN0ZXA7XG5cbi8vICAgICAgIHNvdXJjZURhdGEgPSBzdGVwLnZhbHVlO1xuXG4vLyAgICAgICBzdGF0ZSA9ICdkaXJlY3RlZCc7XG4vLyAgICAgICByZXR1cm4gbmV4dCgpO1xuLy8gICAgIH1cblxuLy8gICAgIGlmIChzdGF0ZSA9PT0gJ2RpcmVjdGVkJykge1xuLy8gICAgICAgaWYgKHR5cGUgPT09ICd1bmRpcmVjdGVkJykge1xuLy8gICAgICAgICBzdGF0ZSA9ICd1bmRpcmVjdGVkJztcbi8vICAgICAgICAgcmV0dXJuIG5leHQoKTtcbi8vICAgICAgIH1cblxuLy8gICAgICAgYWRqID0gc291cmNlRGF0YS5vdXQ7XG4vLyAgICAgICBuZWlnaGJvcnMgPSBPYmplY3Qua2V5cyhzb3VyY2VEYXRhLm91dCk7XG4vLyAgICAgICBvZmZzZXQgPSAwO1xuLy8gICAgICAgc3RhdGUgPSAnaW5uZXItZGlyZWN0ZWQnO1xuXG4vLyAgICAgICByZXR1cm4gbmV4dCgpO1xuLy8gICAgIH1cblxuLy8gICAgIGlmIChzdGF0ZSA9PT0gJ3VuZGlyZWN0ZWQnKSB7XG4vLyAgICAgICBpZiAodHlwZSA9PT0gJ2RpcmVjdGVkJykge1xuLy8gICAgICAgICBzdGF0ZSA9ICdvdXRlcic7XG4vLyAgICAgICAgIHJldHVybiBuZXh0KCk7XG4vLyAgICAgICB9XG5cbi8vICAgICAgIGFkaiA9IHNvdXJjZURhdGEudW5kaXJlY3RlZDtcbi8vICAgICAgIG5laWdoYm9ycyA9IE9iamVjdC5rZXlzKHNvdXJjZURhdGEudW5kaXJlY3RlZCk7XG4vLyAgICAgICBvZmZzZXQgPSAwO1xuLy8gICAgICAgc3RhdGUgPSAnaW5uZXItdW5kaXJlY3RlZCc7XG4vLyAgICAgfVxuXG4vLyAgICAgLy8gSW5uZXJcbi8vICAgICBpZiAob2Zmc2V0ID49IG5laWdoYm9ycy5sZW5ndGgpIHtcbi8vICAgICAgIGlmIChzdGF0ZSA9PT0gJ2lubmVyLXVuZGlyZWN0ZWQnKSBzdGF0ZSA9ICdvdXRlcic7XG4vLyAgICAgICBlbHNlIHN0YXRlID0gJ3VuZGlyZWN0ZWQnO1xuXG4vLyAgICAgICByZXR1cm4gbmV4dCgpO1xuLy8gICAgIH1cblxuLy8gICAgIGNvbnN0IG5laWdoYm9yID0gbmVpZ2hib3JzW29mZnNldCsrXTtcbi8vICAgICBjb25zdCBlZGdlRGF0YSA9IGFkaltuZWlnaGJvcl07XG4vLyAgICAgbGV0IHRhcmdldERhdGEgPSBlZGdlRGF0YS50YXJnZXQ7XG5cbi8vICAgICBpZiAoc3RhdGUgPT09ICdpbm5lci11bmRpcmVjdGVkJyAmJiB0YXJnZXREYXRhLmtleSA9PT0gc291cmNlRGF0YS5rZXkpXG4vLyAgICAgICB0YXJnZXREYXRhID0gZWRnZURhdGEuc291cmNlO1xuXG4vLyAgICAgcmV0dXJuIHtcbi8vICAgICAgIGRvbmU6IGZhbHNlLFxuLy8gICAgICAgdmFsdWU6IHtcbi8vICAgICAgICAgc291cmNlOiBzb3VyY2VEYXRhLmtleSxcbi8vICAgICAgICAgdGFyZ2V0OiB0YXJnZXREYXRhLmtleSxcbi8vICAgICAgICAgc291cmNlQXR0cmlidXRlczogc291cmNlRGF0YS5hdHRyaWJ1dGVzLFxuLy8gICAgICAgICB0YXJnZXRBdHRyaWJ1dGVzOiB0YXJnZXREYXRhLmF0dHJpYnV0ZXMsXG4vLyAgICAgICAgIGVkZ2VLZXk6IGVkZ2VEYXRhLmtleSxcbi8vICAgICAgICAgZWRnZUF0dHJpYnV0ZXM6IGVkZ2VEYXRhLmF0dHJpYnV0ZXMsXG4vLyAgICAgICAgIHVuZGlyZWN0ZWQ6IGVkZ2VEYXRhLnVuZGlyZWN0ZWRcbi8vICAgICAgIH1cbi8vICAgICB9O1xuLy8gICB9KTtcbi8vIH1cblxuLy8gZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFkamFjZW5jeUl0ZXJhdG9yTXVsdGkoZ3JhcGgpIHtcbi8vICAgY29uc3QgaXRlcmF0b3IgPSBncmFwaC5fbm9kZXMudmFsdWVzKCk7XG5cbi8vICAgY29uc3QgdHlwZSA9IGdyYXBoLnR5cGU7XG5cbi8vICAgbGV0IHN0YXRlID0gJ291dGVyJyxcbi8vICAgICBzb3VyY2VEYXRhLFxuLy8gICAgIG5laWdoYm9ycyxcbi8vICAgICBjb250YWluZXIgPSBudWxsLFxuLy8gICAgIGFkaixcbi8vICAgICBvZmZzZXQ7XG5cbi8vICAgcmV0dXJuIG5ldyBJdGVyYXRvcihmdW5jdGlvbiBuZXh0KCkge1xuLy8gICAgIGxldCBzdGVwO1xuXG4vLyAgICAgaWYgKHN0YXRlID09PSAnb3V0ZXInKSB7XG4vLyAgICAgICBzdGVwID0gaXRlcmF0b3IubmV4dCgpO1xuXG4vLyAgICAgICBpZiAoc3RlcC5kb25lID09PSB0cnVlKSByZXR1cm4gc3RlcDtcblxuLy8gICAgICAgc291cmNlRGF0YSA9IHN0ZXAudmFsdWU7XG5cbi8vICAgICAgIHN0YXRlID0gJ2RpcmVjdGVkJztcbi8vICAgICAgIHJldHVybiBuZXh0KCk7XG4vLyAgICAgfVxuXG4vLyAgICAgaWYgKHN0YXRlID09PSAnZGlyZWN0ZWQnKSB7XG4vLyAgICAgICBpZiAodHlwZSA9PT0gJ3VuZGlyZWN0ZWQnKSB7XG4vLyAgICAgICAgIHN0YXRlID0gJ3VuZGlyZWN0ZWQnO1xuLy8gICAgICAgICByZXR1cm4gbmV4dCgpO1xuLy8gICAgICAgfVxuXG4vLyAgICAgICBhZGogPSBzb3VyY2VEYXRhLm91dDtcbi8vICAgICAgIG5laWdoYm9ycyA9IE9iamVjdC5rZXlzKHNvdXJjZURhdGEub3V0KTtcbi8vICAgICAgIG9mZnNldCA9IDA7XG4vLyAgICAgICBzdGF0ZSA9ICdpbm5lci1kaXJlY3RlZCc7XG5cbi8vICAgICAgIHJldHVybiBuZXh0KCk7XG4vLyAgICAgfVxuXG4vLyAgICAgaWYgKHN0YXRlID09PSAndW5kaXJlY3RlZCcpIHtcbi8vICAgICAgIGlmICh0eXBlID09PSAnZGlyZWN0ZWQnKSB7XG4vLyAgICAgICAgIHN0YXRlID0gJ291dGVyJztcbi8vICAgICAgICAgcmV0dXJuIG5leHQoKTtcbi8vICAgICAgIH1cblxuLy8gICAgICAgYWRqID0gc291cmNlRGF0YS51bmRpcmVjdGVkO1xuLy8gICAgICAgbmVpZ2hib3JzID0gT2JqZWN0LmtleXMoc291cmNlRGF0YS51bmRpcmVjdGVkKTtcbi8vICAgICAgIG9mZnNldCA9IDA7XG4vLyAgICAgICBzdGF0ZSA9ICdpbm5lci11bmRpcmVjdGVkJztcbi8vICAgICB9XG5cbi8vICAgICAvLyBJbm5lclxuLy8gICAgIGlmICghY29udGFpbmVyICYmIG9mZnNldCA+PSBuZWlnaGJvcnMubGVuZ3RoKSB7XG4vLyAgICAgICBpZiAoc3RhdGUgPT09ICdpbm5lci11bmRpcmVjdGVkJykgc3RhdGUgPSAnb3V0ZXInO1xuLy8gICAgICAgZWxzZSBzdGF0ZSA9ICd1bmRpcmVjdGVkJztcblxuLy8gICAgICAgcmV0dXJuIG5leHQoKTtcbi8vICAgICB9XG5cbi8vICAgICBpZiAoIWNvbnRhaW5lcikge1xuLy8gICAgICAgY29uc3QgbmVpZ2hib3IgPSBuZWlnaGJvcnNbb2Zmc2V0KytdO1xuLy8gICAgICAgY29udGFpbmVyID0gYWRqW25laWdoYm9yXS52YWx1ZXMoKTtcbi8vICAgICAgIHJldHVybiBuZXh0KCk7XG4vLyAgICAgfVxuXG4vLyAgICAgc3RlcCA9IGNvbnRhaW5lci5uZXh0KCk7XG5cbi8vICAgICBpZiAoc3RlcC5kb25lKSB7XG4vLyAgICAgICBjb250YWluZXIgPSBudWxsO1xuLy8gICAgICAgcmV0dXJuIG5leHQoKTtcbi8vICAgICB9XG5cbi8vICAgICBjb25zdCBlZGdlRGF0YSA9IHN0ZXAudmFsdWU7XG4vLyAgICAgbGV0IHRhcmdldERhdGEgPSBlZGdlRGF0YS50YXJnZXQ7XG5cbi8vICAgICBpZiAoc3RhdGUgPT09ICdpbm5lci11bmRpcmVjdGVkJyAmJiB0YXJnZXREYXRhLmtleSA9PT0gc291cmNlRGF0YS5rZXkpXG4vLyAgICAgICB0YXJnZXREYXRhID0gZWRnZURhdGEuc291cmNlO1xuXG4vLyAgICAgcmV0dXJuIHtcbi8vICAgICAgIGRvbmU6IGZhbHNlLFxuLy8gICAgICAgdmFsdWU6IHtcbi8vICAgICAgICAgc291cmNlOiBzb3VyY2VEYXRhLmtleSxcbi8vICAgICAgICAgdGFyZ2V0OiB0YXJnZXREYXRhLmtleSxcbi8vICAgICAgICAgc291cmNlQXR0cmlidXRlczogc291cmNlRGF0YS5hdHRyaWJ1dGVzLFxuLy8gICAgICAgICB0YXJnZXRBdHRyaWJ1dGVzOiB0YXJnZXREYXRhLmF0dHJpYnV0ZXMsXG4vLyAgICAgICAgIGVkZ2U6IGVkZ2VEYXRhLmtleSxcbi8vICAgICAgICAgZWRnZUF0dHJpYnV0ZXM6IGVkZ2VEYXRhLmF0dHJpYnV0ZXMsXG4vLyAgICAgICAgIHVuZGlyZWN0ZWQ6IGVkZ2VEYXRhLnVuZGlyZWN0ZWRcbi8vICAgICAgIH1cbi8vICAgICB9O1xuLy8gICB9KTtcbi8vIH1cbiIsICIvKipcbiAqIEdyYXBob2xvZ3kgU2VyaWFsaXphdGlvbiBVdGlsaXRpZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKlxuICogQ29sbGVjdGlvbiBvZiBmdW5jdGlvbnMgdXNlZCB0byB2YWxpZGF0ZSBpbXBvcnQtZXhwb3J0IGZvcm1hdHMgJiB0byBvdXB1dFxuICogdGhlbSBmcm9tIGludGVybmFsIGdyYXBoIGRhdGEuXG4gKlxuICogU2VyaWFsaXplZCBOb2RlOlxuICoge2tleSwgP2F0dHJpYnV0ZXN9XG4gKlxuICogU2VyaWFsaXplZCBFZGdlOlxuICoge2tleT8sIHNvdXJjZSwgdGFyZ2V0LCBhdHRyaWJ1dGVzPywgdW5kaXJlY3RlZD99XG4gKlxuICogU2VyaWFsaXplZCBHcmFwaDpcbiAqIHtub2Rlc1tdLCBlZGdlcz9bXX1cbiAqL1xuaW1wb3J0IHthc3NpZ24sIGlzUGxhaW5PYmplY3QsIGlzRW1wdHl9IGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIEZvcm1hdHMgaW50ZXJuYWwgbm9kZSBkYXRhIGludG8gYSBzZXJpYWxpemVkIG5vZGUuXG4gKlxuICogQHBhcmFtICB7YW55fSAgICBrZXkgIC0gVGhlIG5vZGUncyBrZXkuXG4gKiBAcGFyYW0gIHtvYmplY3R9IGRhdGEgLSBJbnRlcm5hbCBub2RlJ3MgZGF0YS5cbiAqIEByZXR1cm4ge2FycmF5fSAgICAgICAtIFRoZSBzZXJpYWxpemVkIG5vZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVOb2RlKGtleSwgZGF0YSkge1xuICBjb25zdCBzZXJpYWxpemVkID0ge2tleX07XG5cbiAgaWYgKCFpc0VtcHR5KGRhdGEuYXR0cmlidXRlcykpXG4gICAgc2VyaWFsaXplZC5hdHRyaWJ1dGVzID0gYXNzaWduKHt9LCBkYXRhLmF0dHJpYnV0ZXMpO1xuXG4gIHJldHVybiBzZXJpYWxpemVkO1xufVxuXG4vKipcbiAqIEZvcm1hdHMgaW50ZXJuYWwgZWRnZSBkYXRhIGludG8gYSBzZXJpYWxpemVkIGVkZ2UuXG4gKlxuICogQHBhcmFtICB7YW55fSAgICBrZXkgIC0gVGhlIGVkZ2UncyBrZXkuXG4gKiBAcGFyYW0gIHtvYmplY3R9IGRhdGEgLSBJbnRlcm5hbCBlZGdlJ3MgZGF0YS5cbiAqIEByZXR1cm4ge2FycmF5fSAgICAgICAtIFRoZSBzZXJpYWxpemVkIGVkZ2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVFZGdlKGtleSwgZGF0YSkge1xuICBjb25zdCBzZXJpYWxpemVkID0ge1xuICAgIGtleSxcbiAgICBzb3VyY2U6IGRhdGEuc291cmNlLmtleSxcbiAgICB0YXJnZXQ6IGRhdGEudGFyZ2V0LmtleVxuICB9O1xuXG4gIGlmICghaXNFbXB0eShkYXRhLmF0dHJpYnV0ZXMpKVxuICAgIHNlcmlhbGl6ZWQuYXR0cmlidXRlcyA9IGFzc2lnbih7fSwgZGF0YS5hdHRyaWJ1dGVzKTtcblxuICBpZiAoZGF0YS51bmRpcmVjdGVkKSBzZXJpYWxpemVkLnVuZGlyZWN0ZWQgPSB0cnVlO1xuXG4gIHJldHVybiBzZXJpYWxpemVkO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIHNlcmlhbGl6ZWQgbm9kZS5cbiAqXG4gKiBAcGFyYW0gIHttaXhlZH0gdmFsdWUgLSBUYXJnZXQgdmFsdWUuXG4gKiBAcmV0dXJuIHtzdHJpbmd8bnVsbH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU2VyaWFsaXplZE5vZGUodmFsdWUpIHtcbiAgaWYgKCFpc1BsYWluT2JqZWN0KHZhbHVlKSkgcmV0dXJuICdub3Qtb2JqZWN0JztcblxuICBpZiAoISgna2V5JyBpbiB2YWx1ZSkpIHJldHVybiAnbm8ta2V5JztcblxuICBpZiAoXG4gICAgJ2F0dHJpYnV0ZXMnIGluIHZhbHVlICYmXG4gICAgKCFpc1BsYWluT2JqZWN0KHZhbHVlLmF0dHJpYnV0ZXMpIHx8IHZhbHVlLmF0dHJpYnV0ZXMgPT09IG51bGwpXG4gIClcbiAgICByZXR1cm4gJ2ludmFsaWQtYXR0cmlidXRlcyc7XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHZhbHVlIGlzIGEgc2VyaWFsaXplZCBlZGdlLlxuICpcbiAqIEBwYXJhbSAge21peGVkfSB2YWx1ZSAtIFRhcmdldCB2YWx1ZS5cbiAqIEByZXR1cm4ge3N0cmluZ3xudWxsfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTZXJpYWxpemVkRWRnZSh2YWx1ZSkge1xuICBpZiAoIWlzUGxhaW5PYmplY3QodmFsdWUpKSByZXR1cm4gJ25vdC1vYmplY3QnO1xuXG4gIGlmICghKCdzb3VyY2UnIGluIHZhbHVlKSkgcmV0dXJuICduby1zb3VyY2UnO1xuXG4gIGlmICghKCd0YXJnZXQnIGluIHZhbHVlKSkgcmV0dXJuICduby10YXJnZXQnO1xuXG4gIGlmIChcbiAgICAnYXR0cmlidXRlcycgaW4gdmFsdWUgJiZcbiAgICAoIWlzUGxhaW5PYmplY3QodmFsdWUuYXR0cmlidXRlcykgfHwgdmFsdWUuYXR0cmlidXRlcyA9PT0gbnVsbClcbiAgKVxuICAgIHJldHVybiAnaW52YWxpZC1hdHRyaWJ1dGVzJztcblxuICBpZiAoJ3VuZGlyZWN0ZWQnIGluIHZhbHVlICYmIHR5cGVvZiB2YWx1ZS51bmRpcmVjdGVkICE9PSAnYm9vbGVhbicpXG4gICAgcmV0dXJuICdpbnZhbGlkLXVuZGlyZWN0ZWQnO1xuXG4gIHJldHVybiBudWxsO1xufVxuIiwgIi8qIGVzbGludCBuby1uZXN0ZWQtdGVybmFyeTogMCAqL1xuLyoqXG4gKiBHcmFwaG9sb2d5IFJlZmVyZW5jZSBJbXBsZW1lbnRhdGlvblxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKlxuICogUmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBncmFwaG9sb2d5IHNwZWNzLlxuICovXG5pbXBvcnQge0V2ZW50RW1pdHRlcn0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCBJdGVyYXRvciBmcm9tICdvYmxpdGVyYXRvci9pdGVyYXRvcic7XG5pbXBvcnQgdGFrZSBmcm9tICdvYmxpdGVyYXRvci90YWtlJztcblxuaW1wb3J0IHtcbiAgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IsXG4gIE5vdEZvdW5kR3JhcGhFcnJvcixcbiAgVXNhZ2VHcmFwaEVycm9yXG59IGZyb20gJy4vZXJyb3JzJztcblxuaW1wb3J0IHtcbiAgTWl4ZWROb2RlRGF0YSxcbiAgRGlyZWN0ZWROb2RlRGF0YSxcbiAgVW5kaXJlY3RlZE5vZGVEYXRhLFxuICBFZGdlRGF0YVxufSBmcm9tICcuL2RhdGEnO1xuXG5pbXBvcnQge1xuICB1cGRhdGVTdHJ1Y3R1cmVJbmRleCxcbiAgY2xlYXJFZGdlRnJvbVN0cnVjdHVyZUluZGV4LFxuICBjbGVhclN0cnVjdHVyZUluZGV4LFxuICB1cGdyYWRlU3RydWN0dXJlSW5kZXhUb011bHRpXG59IGZyb20gJy4vaW5kaWNlcyc7XG5cbmltcG9ydCBhdHRhY2hOb2RlQXR0cmlidXRlc01ldGhvZHMgZnJvbSAnLi9hdHRyaWJ1dGVzL25vZGVzJztcbmltcG9ydCBhdHRhY2hFZGdlQXR0cmlidXRlc01ldGhvZHMgZnJvbSAnLi9hdHRyaWJ1dGVzL2VkZ2VzJztcbmltcG9ydCBhdHRhY2hFZGdlSXRlcmF0aW9uTWV0aG9kcyBmcm9tICcuL2l0ZXJhdGlvbi9lZGdlcyc7XG5pbXBvcnQgYXR0YWNoTmVpZ2hib3JJdGVyYXRpb25NZXRob2RzIGZyb20gJy4vaXRlcmF0aW9uL25laWdoYm9ycyc7XG5pbXBvcnQge1xuICBmb3JFYWNoQWRqYWNlbmN5U2ltcGxlLFxuICBmb3JFYWNoQWRqYWNlbmN5TXVsdGlcbn0gZnJvbSAnLi9pdGVyYXRpb24vYWRqYWNlbmN5JztcblxuaW1wb3J0IHtcbiAgc2VyaWFsaXplTm9kZSxcbiAgc2VyaWFsaXplRWRnZSxcbiAgdmFsaWRhdGVTZXJpYWxpemVkTm9kZSxcbiAgdmFsaWRhdGVTZXJpYWxpemVkRWRnZVxufSBmcm9tICcuL3NlcmlhbGl6YXRpb24nO1xuXG5pbXBvcnQge1xuICBhc3NpZ24sXG4gIGdldE1hdGNoaW5nRWRnZSxcbiAgaXNHcmFwaCxcbiAgaXNQbGFpbk9iamVjdCxcbiAgcHJpdmF0ZVByb3BlcnR5LFxuICByZWFkT25seVByb3BlcnR5LFxuICBpbmNyZW1lbnRhbElkU3RhcnRpbmdGcm9tUmFuZG9tQnl0ZSxcbiAgdmFsaWRhdGVIaW50c1xufSBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBDb25zdGFudHMuXG4gKi9cbmNvbnN0IElOU1RBTkNFX0lEID0gaW5jcmVtZW50YWxJZFN0YXJ0aW5nRnJvbVJhbmRvbUJ5dGUoKTtcblxuLyoqXG4gKiBFbnVtcy5cbiAqL1xuY29uc3QgVFlQRVMgPSBuZXcgU2V0KFsnZGlyZWN0ZWQnLCAndW5kaXJlY3RlZCcsICdtaXhlZCddKTtcblxuY29uc3QgRU1JVFRFUl9QUk9QUyA9IG5ldyBTZXQoW1xuICAnZG9tYWluJyxcbiAgJ19ldmVudHMnLFxuICAnX2V2ZW50c0NvdW50JyxcbiAgJ19tYXhMaXN0ZW5lcnMnXG5dKTtcblxuY29uc3QgRURHRV9BRERfTUVUSE9EUyA9IFtcbiAge1xuICAgIG5hbWU6IHZlcmIgPT4gYCR7dmVyYn1FZGdlYCxcbiAgICBnZW5lcmF0ZUtleTogdHJ1ZVxuICB9LFxuICB7XG4gICAgbmFtZTogdmVyYiA9PiBgJHt2ZXJifURpcmVjdGVkRWRnZWAsXG4gICAgZ2VuZXJhdGVLZXk6IHRydWUsXG4gICAgdHlwZTogJ2RpcmVjdGVkJ1xuICB9LFxuICB7XG4gICAgbmFtZTogdmVyYiA9PiBgJHt2ZXJifVVuZGlyZWN0ZWRFZGdlYCxcbiAgICBnZW5lcmF0ZUtleTogdHJ1ZSxcbiAgICB0eXBlOiAndW5kaXJlY3RlZCdcbiAgfSxcbiAge1xuICAgIG5hbWU6IHZlcmIgPT4gYCR7dmVyYn1FZGdlV2l0aEtleWBcbiAgfSxcbiAge1xuICAgIG5hbWU6IHZlcmIgPT4gYCR7dmVyYn1EaXJlY3RlZEVkZ2VXaXRoS2V5YCxcbiAgICB0eXBlOiAnZGlyZWN0ZWQnXG4gIH0sXG4gIHtcbiAgICBuYW1lOiB2ZXJiID0+IGAke3ZlcmJ9VW5kaXJlY3RlZEVkZ2VXaXRoS2V5YCxcbiAgICB0eXBlOiAndW5kaXJlY3RlZCdcbiAgfVxuXTtcblxuLyoqXG4gKiBEZWZhdWx0IG9wdGlvbnMuXG4gKi9cbmNvbnN0IERFRkFVTFRTID0ge1xuICBhbGxvd1NlbGZMb29wczogdHJ1ZSxcbiAgbXVsdGk6IGZhbHNlLFxuICB0eXBlOiAnbWl4ZWQnXG59O1xuXG4vKipcbiAqIEFic3RyYWN0IGZ1bmN0aW9ucyB1c2VkIGJ5IHRoZSBHcmFwaCBjbGFzcyBmb3IgdmFyaW91cyBtZXRob2RzLlxuICovXG5cbi8qKlxuICogSW50ZXJuYWwgbWV0aG9kIHVzZWQgdG8gYWRkIGEgbm9kZSB0byB0aGUgZ2l2ZW4gZ3JhcGhcbiAqXG4gKiBAcGFyYW0gIHtHcmFwaH0gICBncmFwaCAgICAgICAgICAgLSBUYXJnZXQgZ3JhcGguXG4gKiBAcGFyYW0gIHthbnl9ICAgICBub2RlICAgICAgICAgICAgLSBUaGUgbm9kZSdzIGtleS5cbiAqIEBwYXJhbSAge29iamVjdH0gIFthdHRyaWJ1dGVzXSAgICAtIE9wdGlvbmFsIGF0dHJpYnV0ZXMuXG4gKiBAcmV0dXJuIHtOb2RlRGF0YX0gICAgICAgICAgICAgICAgLSBDcmVhdGVkIG5vZGUgZGF0YS5cbiAqL1xuZnVuY3Rpb24gYWRkTm9kZShncmFwaCwgbm9kZSwgYXR0cmlidXRlcykge1xuICBpZiAoYXR0cmlidXRlcyAmJiAhaXNQbGFpbk9iamVjdChhdHRyaWJ1dGVzKSlcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICBgR3JhcGguYWRkTm9kZTogaW52YWxpZCBhdHRyaWJ1dGVzLiBFeHBlY3RpbmcgYW4gb2JqZWN0IGJ1dCBnb3QgXCIke2F0dHJpYnV0ZXN9XCJgXG4gICAgKTtcblxuICAvLyBTdHJpbmcgY29lcmNpb25cbiAgbm9kZSA9ICcnICsgbm9kZTtcbiAgYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXMgfHwge307XG5cbiAgaWYgKGdyYXBoLl9ub2Rlcy5oYXMobm9kZSkpXG4gICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgIGBHcmFwaC5hZGROb2RlOiB0aGUgXCIke25vZGV9XCIgbm9kZSBhbHJlYWR5IGV4aXN0IGluIHRoZSBncmFwaC5gXG4gICAgKTtcblxuICBjb25zdCBkYXRhID0gbmV3IGdyYXBoLk5vZGVEYXRhQ2xhc3Mobm9kZSwgYXR0cmlidXRlcyk7XG5cbiAgLy8gQWRkaW5nIHRoZSBub2RlIHRvIGludGVybmFsIHJlZ2lzdGVyXG4gIGdyYXBoLl9ub2Rlcy5zZXQobm9kZSwgZGF0YSk7XG5cbiAgLy8gRW1pdHRpbmdcbiAgZ3JhcGguZW1pdCgnbm9kZUFkZGVkJywge1xuICAgIGtleTogbm9kZSxcbiAgICBhdHRyaWJ1dGVzXG4gIH0pO1xuXG4gIHJldHVybiBkYXRhO1xufVxuXG4vKipcbiAqIFNhbWUgYXMgdGhlIGFib3ZlIGJ1dCB3aXRob3V0IHNhbml0eSBjaGVja3MgYmVjYXVzZSB3ZSBjYWxsIHRoaXMgaW4gY29udGV4dHNcbiAqIHdoZXJlIG5lY2Vzc2FyeSBjaGVja3Mgd2VyZSBhbHJlYWR5IGRvbmUuXG4gKi9cbmZ1bmN0aW9uIHVuc2FmZUFkZE5vZGUoZ3JhcGgsIG5vZGUsIGF0dHJpYnV0ZXMpIHtcbiAgY29uc3QgZGF0YSA9IG5ldyBncmFwaC5Ob2RlRGF0YUNsYXNzKG5vZGUsIGF0dHJpYnV0ZXMpO1xuXG4gIGdyYXBoLl9ub2Rlcy5zZXQobm9kZSwgZGF0YSk7XG5cbiAgZ3JhcGguZW1pdCgnbm9kZUFkZGVkJywge1xuICAgIGtleTogbm9kZSxcbiAgICBhdHRyaWJ1dGVzXG4gIH0pO1xuXG4gIHJldHVybiBkYXRhO1xufVxuXG4vKipcbiAqIEludGVybmFsIG1ldGhvZCB1c2VkIHRvIGFkZCBhbiBhcmJpdHJhcnkgZWRnZSB0byB0aGUgZ2l2ZW4gZ3JhcGguXG4gKlxuICogQHBhcmFtICB7R3JhcGh9ICAgZ3JhcGggICAgICAgICAgIC0gVGFyZ2V0IGdyYXBoLlxuICogQHBhcmFtICB7c3RyaW5nfSAgbmFtZSAgICAgICAgICAgIC0gTmFtZSBvZiB0aGUgY2hpbGQgbWV0aG9kIGZvciBlcnJvcnMuXG4gKiBAcGFyYW0gIHtib29sZWFufSBtdXN0R2VuZXJhdGVLZXkgLSBTaG91bGQgdGhlIGdyYXBoIGdlbmVyYXRlIGFuIGlkP1xuICogQHBhcmFtICB7Ym9vbGVhbn0gdW5kaXJlY3RlZCAgICAgIC0gV2hldGhlciB0aGUgZWRnZSBpcyB1bmRpcmVjdGVkLlxuICogQHBhcmFtICB7YW55fSAgICAgZWRnZSAgICAgICAgICAgIC0gVGhlIGVkZ2UncyBrZXkuXG4gKiBAcGFyYW0gIHthbnl9ICAgICBzb3VyY2UgICAgICAgICAgLSBUaGUgc291cmNlIG5vZGUuXG4gKiBAcGFyYW0gIHthbnl9ICAgICB0YXJnZXQgICAgICAgICAgLSBUaGUgdGFyZ2V0IG5vZGUuXG4gKiBAcGFyYW0gIHtvYmplY3R9ICBbYXR0cmlidXRlc10gICAgLSBPcHRpb25hbCBhdHRyaWJ1dGVzLlxuICogQHJldHVybiB7YW55fSAgICAgICAgICAgICAgICAgICAgIC0gVGhlIGVkZ2UuXG4gKlxuICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgZ3JhcGggaXMgb2YgdGhlIHdyb25nIHR5cGUuXG4gKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBnaXZlbiBhdHRyaWJ1dGVzIGFyZSBub3QgYW4gb2JqZWN0LlxuICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiBzb3VyY2Ugb3IgdGFyZ2V0IGRvZXNuJ3QgZXhpc3QuXG4gKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBlZGdlIGFscmVhZHkgZXhpc3QuXG4gKi9cbmZ1bmN0aW9uIGFkZEVkZ2UoXG4gIGdyYXBoLFxuICBuYW1lLFxuICBtdXN0R2VuZXJhdGVLZXksXG4gIHVuZGlyZWN0ZWQsXG4gIGVkZ2UsXG4gIHNvdXJjZSxcbiAgdGFyZ2V0LFxuICBhdHRyaWJ1dGVzXG4pIHtcbiAgLy8gQ2hlY2tpbmcgdmFsaWRpdHkgb2Ygb3BlcmF0aW9uXG4gIGlmICghdW5kaXJlY3RlZCAmJiBncmFwaC50eXBlID09PSAndW5kaXJlY3RlZCcpXG4gICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgIGBHcmFwaC4ke25hbWV9OiB5b3UgY2Fubm90IGFkZCBhIGRpcmVjdGVkIGVkZ2UgdG8gYW4gdW5kaXJlY3RlZCBncmFwaC4gVXNlIHRoZSAjLmFkZEVkZ2Ugb3IgIy5hZGRVbmRpcmVjdGVkRWRnZSBpbnN0ZWFkLmBcbiAgICApO1xuXG4gIGlmICh1bmRpcmVjdGVkICYmIGdyYXBoLnR5cGUgPT09ICdkaXJlY3RlZCcpXG4gICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgIGBHcmFwaC4ke25hbWV9OiB5b3UgY2Fubm90IGFkZCBhbiB1bmRpcmVjdGVkIGVkZ2UgdG8gYSBkaXJlY3RlZCBncmFwaC4gVXNlIHRoZSAjLmFkZEVkZ2Ugb3IgIy5hZGREaXJlY3RlZEVkZ2UgaW5zdGVhZC5gXG4gICAgKTtcblxuICBpZiAoYXR0cmlidXRlcyAmJiAhaXNQbGFpbk9iamVjdChhdHRyaWJ1dGVzKSlcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICBgR3JhcGguJHtuYW1lfTogaW52YWxpZCBhdHRyaWJ1dGVzLiBFeHBlY3RpbmcgYW4gb2JqZWN0IGJ1dCBnb3QgXCIke2F0dHJpYnV0ZXN9XCJgXG4gICAgKTtcblxuICAvLyBDb2VyY2lvbiBvZiBzb3VyY2UgJiB0YXJnZXQ6XG4gIHNvdXJjZSA9ICcnICsgc291cmNlO1xuICB0YXJnZXQgPSAnJyArIHRhcmdldDtcbiAgYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXMgfHwge307XG5cbiAgaWYgKCFncmFwaC5hbGxvd1NlbGZMb29wcyAmJiBzb3VyY2UgPT09IHRhcmdldClcbiAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLiR7bmFtZX06IHNvdXJjZSAmIHRhcmdldCBhcmUgdGhlIHNhbWUgKFwiJHtzb3VyY2V9XCIpLCB0aHVzIGNyZWF0aW5nIGEgbG9vcCBleHBsaWNpdGx5IGZvcmJpZGRlbiBieSB0aGlzIGdyYXBoICdhbGxvd1NlbGZMb29wcycgb3B0aW9uIHNldCB0byBmYWxzZS5gXG4gICAgKTtcblxuICBjb25zdCBzb3VyY2VEYXRhID0gZ3JhcGguX25vZGVzLmdldChzb3VyY2UpLFxuICAgIHRhcmdldERhdGEgPSBncmFwaC5fbm9kZXMuZ2V0KHRhcmdldCk7XG5cbiAgaWYgKCFzb3VyY2VEYXRhKVxuICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICBgR3JhcGguJHtuYW1lfTogc291cmNlIG5vZGUgXCIke3NvdXJjZX1cIiBub3QgZm91bmQuYFxuICAgICk7XG5cbiAgaWYgKCF0YXJnZXREYXRhKVxuICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICBgR3JhcGguJHtuYW1lfTogdGFyZ2V0IG5vZGUgXCIke3RhcmdldH1cIiBub3QgZm91bmQuYFxuICAgICk7XG5cbiAgLy8gTXVzdCB0aGUgZ3JhcGggZ2VuZXJhdGUgYW4gaWQgZm9yIHRoaXMgZWRnZT9cbiAgY29uc3QgZXZlbnREYXRhID0ge1xuICAgIGtleTogbnVsbCxcbiAgICB1bmRpcmVjdGVkLFxuICAgIHNvdXJjZSxcbiAgICB0YXJnZXQsXG4gICAgYXR0cmlidXRlc1xuICB9O1xuXG4gIGlmIChtdXN0R2VuZXJhdGVLZXkpIHtcbiAgICAvLyBOT1RFOiBpbiB0aGlzIGNhc2Ugd2UgY2FuIGd1YXJhbnRlZSB0aGF0IHRoZSBrZXkgZG9lcyBub3QgYWxyZWFkeVxuICAgIC8vIGV4aXN0IGFuZCBpcyBhbHJlYWR5IGNvcnJlY3RseSBjYXN0ZWQgYXMgYSBzdHJpbmdcbiAgICBlZGdlID0gZ3JhcGguX2VkZ2VLZXlHZW5lcmF0b3IoKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBDb2VyY2lvbiBvZiBlZGdlIGtleVxuICAgIGVkZ2UgPSAnJyArIGVkZ2U7XG5cbiAgICAvLyBIZXJlLCB3ZSBoYXZlIGEga2V5IGNvbGxpc2lvblxuICAgIGlmIChncmFwaC5fZWRnZXMuaGFzKGVkZ2UpKVxuICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLiR7bmFtZX06IHRoZSBcIiR7ZWRnZX1cIiBlZGdlIGFscmVhZHkgZXhpc3RzIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuICB9XG5cbiAgLy8gSGVyZSwgd2UgbWlnaHQgaGF2ZSBhIHNvdXJjZSAvIHRhcmdldCBjb2xsaXNpb25cbiAgaWYgKFxuICAgICFncmFwaC5tdWx0aSAmJlxuICAgICh1bmRpcmVjdGVkXG4gICAgICA/IHR5cGVvZiBzb3VyY2VEYXRhLnVuZGlyZWN0ZWRbdGFyZ2V0XSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgIDogdHlwZW9mIHNvdXJjZURhdGEub3V0W3RhcmdldF0gIT09ICd1bmRlZmluZWQnKVxuICApIHtcbiAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLiR7bmFtZX06IGFuIGVkZ2UgbGlua2luZyBcIiR7c291cmNlfVwiIHRvIFwiJHt0YXJnZXR9XCIgYWxyZWFkeSBleGlzdHMuIElmIHlvdSByZWFsbHkgd2FudCB0byBhZGQgbXVsdGlwbGUgZWRnZXMgbGlua2luZyB0aG9zZSBub2RlcywgeW91IHNob3VsZCBjcmVhdGUgYSBtdWx0aSBncmFwaCBieSB1c2luZyB0aGUgJ211bHRpJyBvcHRpb24uYFxuICAgICk7XG4gIH1cblxuICAvLyBTdG9yaW5nIHNvbWUgZGF0YVxuICBjb25zdCBlZGdlRGF0YSA9IG5ldyBFZGdlRGF0YShcbiAgICB1bmRpcmVjdGVkLFxuICAgIGVkZ2UsXG4gICAgc291cmNlRGF0YSxcbiAgICB0YXJnZXREYXRhLFxuICAgIGF0dHJpYnV0ZXNcbiAgKTtcblxuICAvLyBBZGRpbmcgdGhlIGVkZ2UgdG8gdGhlIGludGVybmFsIHJlZ2lzdGVyXG4gIGdyYXBoLl9lZGdlcy5zZXQoZWRnZSwgZWRnZURhdGEpO1xuXG4gIC8vIEluY3JlbWVudGluZyBub2RlIGRlZ3JlZSBjb3VudGVyc1xuICBpZiAoc291cmNlID09PSB0YXJnZXQpIHtcbiAgICBpZiAodW5kaXJlY3RlZCkge1xuICAgICAgc291cmNlRGF0YS51bmRpcmVjdGVkU2VsZkxvb3BzKys7XG4gICAgICBncmFwaC5fdW5kaXJlY3RlZFNlbGZMb29wQ291bnQrKztcbiAgICB9IGVsc2Uge1xuICAgICAgc291cmNlRGF0YS5kaXJlY3RlZFNlbGZMb29wcysrO1xuICAgICAgZ3JhcGguX2RpcmVjdGVkU2VsZkxvb3BDb3VudCsrO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAodW5kaXJlY3RlZCkge1xuICAgICAgc291cmNlRGF0YS51bmRpcmVjdGVkRGVncmVlKys7XG4gICAgICB0YXJnZXREYXRhLnVuZGlyZWN0ZWREZWdyZWUrKztcbiAgICB9IGVsc2Uge1xuICAgICAgc291cmNlRGF0YS5vdXREZWdyZWUrKztcbiAgICAgIHRhcmdldERhdGEuaW5EZWdyZWUrKztcbiAgICB9XG4gIH1cblxuICAvLyBVcGRhdGluZyByZWxldmFudCBpbmRleFxuICB1cGRhdGVTdHJ1Y3R1cmVJbmRleChcbiAgICBncmFwaCxcbiAgICB1bmRpcmVjdGVkLFxuICAgIGVkZ2VEYXRhLFxuICAgIHNvdXJjZSxcbiAgICB0YXJnZXQsXG4gICAgc291cmNlRGF0YSxcbiAgICB0YXJnZXREYXRhXG4gICk7XG5cbiAgaWYgKHVuZGlyZWN0ZWQpIGdyYXBoLl91bmRpcmVjdGVkU2l6ZSsrO1xuICBlbHNlIGdyYXBoLl9kaXJlY3RlZFNpemUrKztcblxuICAvLyBFbWl0dGluZ1xuICBldmVudERhdGEua2V5ID0gZWRnZTtcblxuICBncmFwaC5lbWl0KCdlZGdlQWRkZWQnLCBldmVudERhdGEpO1xuXG4gIHJldHVybiBlZGdlO1xufVxuXG4vKipcbiAqIEludGVybmFsIG1ldGhvZCB1c2VkIHRvIGFkZCBhbiBhcmJpdHJhcnkgZWRnZSB0byB0aGUgZ2l2ZW4gZ3JhcGguXG4gKlxuICogQHBhcmFtICB7R3JhcGh9ICAgZ3JhcGggICAgICAgICAgIC0gVGFyZ2V0IGdyYXBoLlxuICogQHBhcmFtICB7c3RyaW5nfSAgbmFtZSAgICAgICAgICAgIC0gTmFtZSBvZiB0aGUgY2hpbGQgbWV0aG9kIGZvciBlcnJvcnMuXG4gKiBAcGFyYW0gIHtib29sZWFufSBtdXN0R2VuZXJhdGVLZXkgLSBTaG91bGQgdGhlIGdyYXBoIGdlbmVyYXRlIGFuIGlkP1xuICogQHBhcmFtICB7Ym9vbGVhbn0gdW5kaXJlY3RlZCAgICAgIC0gV2hldGhlciB0aGUgZWRnZSBpcyB1bmRpcmVjdGVkLlxuICogQHBhcmFtICB7YW55fSAgICAgZWRnZSAgICAgICAgICAgIC0gVGhlIGVkZ2UncyBrZXkuXG4gKiBAcGFyYW0gIHthbnl9ICAgICBzb3VyY2UgICAgICAgICAgLSBUaGUgc291cmNlIG5vZGUuXG4gKiBAcGFyYW0gIHthbnl9ICAgICB0YXJnZXQgICAgICAgICAgLSBUaGUgdGFyZ2V0IG5vZGUuXG4gKiBAcGFyYW0gIHtvYmplY3R9ICBbYXR0cmlidXRlc10gICAgLSBPcHRpb25hbCBhdHRyaWJ1dGVzLlxuICogQHBhcmFtICB7Ym9vbGVhbn0gW2FzVXBkYXRlcl0gICAgICAgLSBBcmUgd2UgdXBkYXRpbmcgb3IgbWVyZ2luZz9cbiAqIEByZXR1cm4ge2FueX0gICAgICAgICAgICAgICAgICAgICAtIFRoZSBlZGdlLlxuICpcbiAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIGdyYXBoIGlzIG9mIHRoZSB3cm9uZyB0eXBlLlxuICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgZ2l2ZW4gYXR0cmlidXRlcyBhcmUgbm90IGFuIG9iamVjdC5cbiAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgc291cmNlIG9yIHRhcmdldCBkb2Vzbid0IGV4aXN0LlxuICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgZWRnZSBhbHJlYWR5IGV4aXN0LlxuICovXG5mdW5jdGlvbiBtZXJnZUVkZ2UoXG4gIGdyYXBoLFxuICBuYW1lLFxuICBtdXN0R2VuZXJhdGVLZXksXG4gIHVuZGlyZWN0ZWQsXG4gIGVkZ2UsXG4gIHNvdXJjZSxcbiAgdGFyZ2V0LFxuICBhdHRyaWJ1dGVzLFxuICBhc1VwZGF0ZXJcbikge1xuICAvLyBDaGVja2luZyB2YWxpZGl0eSBvZiBvcGVyYXRpb25cbiAgaWYgKCF1bmRpcmVjdGVkICYmIGdyYXBoLnR5cGUgPT09ICd1bmRpcmVjdGVkJylcbiAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLiR7bmFtZX06IHlvdSBjYW5ub3QgbWVyZ2UvdXBkYXRlIGEgZGlyZWN0ZWQgZWRnZSB0byBhbiB1bmRpcmVjdGVkIGdyYXBoLiBVc2UgdGhlICMubWVyZ2VFZGdlLyMudXBkYXRlRWRnZSBvciAjLmFkZFVuZGlyZWN0ZWRFZGdlIGluc3RlYWQuYFxuICAgICk7XG5cbiAgaWYgKHVuZGlyZWN0ZWQgJiYgZ3JhcGgudHlwZSA9PT0gJ2RpcmVjdGVkJylcbiAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLiR7bmFtZX06IHlvdSBjYW5ub3QgbWVyZ2UvdXBkYXRlIGFuIHVuZGlyZWN0ZWQgZWRnZSB0byBhIGRpcmVjdGVkIGdyYXBoLiBVc2UgdGhlICMubWVyZ2VFZGdlLyMudXBkYXRlRWRnZSBvciAjLmFkZERpcmVjdGVkRWRnZSBpbnN0ZWFkLmBcbiAgICApO1xuXG4gIGlmIChhdHRyaWJ1dGVzKSB7XG4gICAgaWYgKGFzVXBkYXRlcikge1xuICAgICAgaWYgKHR5cGVvZiBhdHRyaWJ1dGVzICE9PSAnZnVuY3Rpb24nKVxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bmFtZX06IGludmFsaWQgdXBkYXRlciBmdW5jdGlvbi4gRXhwZWN0aW5nIGEgZnVuY3Rpb24gYnV0IGdvdCBcIiR7YXR0cmlidXRlc31cImBcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFpc1BsYWluT2JqZWN0KGF0dHJpYnV0ZXMpKVxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLiR7bmFtZX06IGludmFsaWQgYXR0cmlidXRlcy4gRXhwZWN0aW5nIGFuIG9iamVjdCBidXQgZ290IFwiJHthdHRyaWJ1dGVzfVwiYFxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvZXJjaW9uIG9mIHNvdXJjZSAmIHRhcmdldDpcbiAgc291cmNlID0gJycgKyBzb3VyY2U7XG4gIHRhcmdldCA9ICcnICsgdGFyZ2V0O1xuXG4gIGxldCB1cGRhdGVyO1xuXG4gIGlmIChhc1VwZGF0ZXIpIHtcbiAgICB1cGRhdGVyID0gYXR0cmlidXRlcztcbiAgICBhdHRyaWJ1dGVzID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKCFncmFwaC5hbGxvd1NlbGZMb29wcyAmJiBzb3VyY2UgPT09IHRhcmdldClcbiAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLiR7bmFtZX06IHNvdXJjZSAmIHRhcmdldCBhcmUgdGhlIHNhbWUgKFwiJHtzb3VyY2V9XCIpLCB0aHVzIGNyZWF0aW5nIGEgbG9vcCBleHBsaWNpdGx5IGZvcmJpZGRlbiBieSB0aGlzIGdyYXBoICdhbGxvd1NlbGZMb29wcycgb3B0aW9uIHNldCB0byBmYWxzZS5gXG4gICAgKTtcblxuICBsZXQgc291cmNlRGF0YSA9IGdyYXBoLl9ub2Rlcy5nZXQoc291cmNlKTtcbiAgbGV0IHRhcmdldERhdGEgPSBncmFwaC5fbm9kZXMuZ2V0KHRhcmdldCk7XG4gIGxldCBlZGdlRGF0YTtcblxuICAvLyBEbyB3ZSBuZWVkIHRvIGhhbmRsZSBkdXBsaWNhdGU/XG4gIGxldCBhbHJlYWR5RXhpc3RpbmdFZGdlRGF0YTtcblxuICBpZiAoIW11c3RHZW5lcmF0ZUtleSkge1xuICAgIGVkZ2VEYXRhID0gZ3JhcGguX2VkZ2VzLmdldChlZGdlKTtcblxuICAgIGlmIChlZGdlRGF0YSkge1xuICAgICAgLy8gSGVyZSwgd2UgbmVlZCB0byBlbnN1cmUsIGlmIHRoZSB1c2VyIGdhdmUgYSBrZXksIHRoYXQgc291cmNlICYgdGFyZ2V0XG4gICAgICAvLyBhcmUgY29oZXJlbnRcbiAgICAgIGlmIChcbiAgICAgICAgZWRnZURhdGEuc291cmNlLmtleSAhPT0gc291cmNlIHx8XG4gICAgICAgIGVkZ2VEYXRhLnRhcmdldC5rZXkgIT09IHRhcmdldCB8fFxuICAgICAgICAodW5kaXJlY3RlZCAmJlxuICAgICAgICAgIChlZGdlRGF0YS5zb3VyY2Uua2V5ICE9PSB0YXJnZXQgfHwgZWRnZURhdGEudGFyZ2V0LmtleSAhPT0gc291cmNlKSlcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgICAgIGBHcmFwaC4ke25hbWV9OiBpbmNvbnNpc3RlbmN5IGRldGVjdGVkIHdoZW4gYXR0ZW1wdGluZyB0byBtZXJnZSB0aGUgXCIke2VkZ2V9XCIgZWRnZSB3aXRoIFwiJHtzb3VyY2V9XCIgc291cmNlICYgXCIke3RhcmdldH1cIiB0YXJnZXQgdnMuIChcIiR7ZWRnZURhdGEuc291cmNlLmtleX1cIiwgXCIke2VkZ2VEYXRhLnRhcmdldC5rZXl9XCIpLmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgYWxyZWFkeUV4aXN0aW5nRWRnZURhdGEgPSBlZGdlRGF0YTtcbiAgICB9XG4gIH1cblxuICAvLyBIZXJlLCB3ZSBtaWdodCBoYXZlIGEgc291cmNlIC8gdGFyZ2V0IGNvbGxpc2lvblxuICBpZiAoIWFscmVhZHlFeGlzdGluZ0VkZ2VEYXRhICYmICFncmFwaC5tdWx0aSAmJiBzb3VyY2VEYXRhKSB7XG4gICAgYWxyZWFkeUV4aXN0aW5nRWRnZURhdGEgPSB1bmRpcmVjdGVkXG4gICAgICA/IHNvdXJjZURhdGEudW5kaXJlY3RlZFt0YXJnZXRdXG4gICAgICA6IHNvdXJjZURhdGEub3V0W3RhcmdldF07XG4gIH1cblxuICAvLyBIYW5kbGluZyBkdXBsaWNhdGVzXG4gIGlmIChhbHJlYWR5RXhpc3RpbmdFZGdlRGF0YSkge1xuICAgIGNvbnN0IGluZm8gPSBbYWxyZWFkeUV4aXN0aW5nRWRnZURhdGEua2V5LCBmYWxzZSwgZmFsc2UsIGZhbHNlXTtcblxuICAgIC8vIFdlIGNhbiBza2lwIHRoZSBhdHRyaWJ1dGUgbWVyZ2luZyBwYXJ0IGlmIHRoZSB1c2VyIGRpZCBub3QgcHJvdmlkZSB0aGVtXG4gICAgaWYgKGFzVXBkYXRlciA/ICF1cGRhdGVyIDogIWF0dHJpYnV0ZXMpIHJldHVybiBpbmZvO1xuXG4gICAgLy8gVXBkYXRpbmcgdGhlIGF0dHJpYnV0ZXNcbiAgICBpZiAoYXNVcGRhdGVyKSB7XG4gICAgICBjb25zdCBvbGRBdHRyaWJ1dGVzID0gYWxyZWFkeUV4aXN0aW5nRWRnZURhdGEuYXR0cmlidXRlcztcbiAgICAgIGFscmVhZHlFeGlzdGluZ0VkZ2VEYXRhLmF0dHJpYnV0ZXMgPSB1cGRhdGVyKG9sZEF0dHJpYnV0ZXMpO1xuXG4gICAgICBncmFwaC5lbWl0KCdlZGdlQXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICAgIHR5cGU6ICdyZXBsYWNlJyxcbiAgICAgICAga2V5OiBhbHJlYWR5RXhpc3RpbmdFZGdlRGF0YS5rZXksXG4gICAgICAgIGF0dHJpYnV0ZXM6IGFscmVhZHlFeGlzdGluZ0VkZ2VEYXRhLmF0dHJpYnV0ZXNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIE1lcmdpbmcgdGhlIGF0dHJpYnV0ZXNcbiAgICBlbHNlIHtcbiAgICAgIGFzc2lnbihhbHJlYWR5RXhpc3RpbmdFZGdlRGF0YS5hdHRyaWJ1dGVzLCBhdHRyaWJ1dGVzKTtcblxuICAgICAgZ3JhcGguZW1pdCgnZWRnZUF0dHJpYnV0ZXNVcGRhdGVkJywge1xuICAgICAgICB0eXBlOiAnbWVyZ2UnLFxuICAgICAgICBrZXk6IGFscmVhZHlFeGlzdGluZ0VkZ2VEYXRhLmtleSxcbiAgICAgICAgYXR0cmlidXRlczogYWxyZWFkeUV4aXN0aW5nRWRnZURhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgZGF0YTogYXR0cmlidXRlc1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluZm87XG4gIH1cblxuICBhdHRyaWJ1dGVzID0gYXR0cmlidXRlcyB8fCB7fTtcblxuICBpZiAoYXNVcGRhdGVyICYmIHVwZGF0ZXIpIGF0dHJpYnV0ZXMgPSB1cGRhdGVyKGF0dHJpYnV0ZXMpO1xuXG4gIC8vIE11c3QgdGhlIGdyYXBoIGdlbmVyYXRlIGFuIGlkIGZvciB0aGlzIGVkZ2U/XG4gIGNvbnN0IGV2ZW50RGF0YSA9IHtcbiAgICBrZXk6IG51bGwsXG4gICAgdW5kaXJlY3RlZCxcbiAgICBzb3VyY2UsXG4gICAgdGFyZ2V0LFxuICAgIGF0dHJpYnV0ZXNcbiAgfTtcblxuICBpZiAobXVzdEdlbmVyYXRlS2V5KSB7XG4gICAgLy8gTk9URTogaW4gdGhpcyBjYXNlIHdlIGNhbiBndWFyYW50ZWUgdGhhdCB0aGUga2V5IGRvZXMgbm90IGFscmVhZHlcbiAgICAvLyBleGlzdCBhbmQgaXMgYWxyZWFkeSBjb3JyZWN0bHkgY2FzdGVkIGFzIGEgc3RyaW5nXG4gICAgZWRnZSA9IGdyYXBoLl9lZGdlS2V5R2VuZXJhdG9yKCk7XG4gIH0gZWxzZSB7XG4gICAgLy8gQ29lcmNpb24gb2YgZWRnZSBrZXlcbiAgICBlZGdlID0gJycgKyBlZGdlO1xuXG4gICAgLy8gSGVyZSwgd2UgaGF2ZSBhIGtleSBjb2xsaXNpb25cbiAgICBpZiAoZ3JhcGguX2VkZ2VzLmhhcyhlZGdlKSlcbiAgICAgIHRocm93IG5ldyBVc2FnZUdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC4ke25hbWV9OiB0aGUgXCIke2VkZ2V9XCIgZWRnZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcbiAgfVxuXG4gIGxldCBzb3VyY2VXYXNBZGRlZCA9IGZhbHNlO1xuICBsZXQgdGFyZ2V0V2FzQWRkZWQgPSBmYWxzZTtcblxuICBpZiAoIXNvdXJjZURhdGEpIHtcbiAgICBzb3VyY2VEYXRhID0gdW5zYWZlQWRkTm9kZShncmFwaCwgc291cmNlLCB7fSk7XG4gICAgc291cmNlV2FzQWRkZWQgPSB0cnVlO1xuXG4gICAgaWYgKHNvdXJjZSA9PT0gdGFyZ2V0KSB7XG4gICAgICB0YXJnZXREYXRhID0gc291cmNlRGF0YTtcbiAgICAgIHRhcmdldFdhc0FkZGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgaWYgKCF0YXJnZXREYXRhKSB7XG4gICAgdGFyZ2V0RGF0YSA9IHVuc2FmZUFkZE5vZGUoZ3JhcGgsIHRhcmdldCwge30pO1xuICAgIHRhcmdldFdhc0FkZGVkID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIFN0b3Jpbmcgc29tZSBkYXRhXG4gIGVkZ2VEYXRhID0gbmV3IEVkZ2VEYXRhKHVuZGlyZWN0ZWQsIGVkZ2UsIHNvdXJjZURhdGEsIHRhcmdldERhdGEsIGF0dHJpYnV0ZXMpO1xuXG4gIC8vIEFkZGluZyB0aGUgZWRnZSB0byB0aGUgaW50ZXJuYWwgcmVnaXN0ZXJcbiAgZ3JhcGguX2VkZ2VzLnNldChlZGdlLCBlZGdlRGF0YSk7XG5cbiAgLy8gSW5jcmVtZW50aW5nIG5vZGUgZGVncmVlIGNvdW50ZXJzXG4gIGlmIChzb3VyY2UgPT09IHRhcmdldCkge1xuICAgIGlmICh1bmRpcmVjdGVkKSB7XG4gICAgICBzb3VyY2VEYXRhLnVuZGlyZWN0ZWRTZWxmTG9vcHMrKztcbiAgICAgIGdyYXBoLl91bmRpcmVjdGVkU2VsZkxvb3BDb3VudCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzb3VyY2VEYXRhLmRpcmVjdGVkU2VsZkxvb3BzKys7XG4gICAgICBncmFwaC5fZGlyZWN0ZWRTZWxmTG9vcENvdW50Kys7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmICh1bmRpcmVjdGVkKSB7XG4gICAgICBzb3VyY2VEYXRhLnVuZGlyZWN0ZWREZWdyZWUrKztcbiAgICAgIHRhcmdldERhdGEudW5kaXJlY3RlZERlZ3JlZSsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBzb3VyY2VEYXRhLm91dERlZ3JlZSsrO1xuICAgICAgdGFyZ2V0RGF0YS5pbkRlZ3JlZSsrO1xuICAgIH1cbiAgfVxuXG4gIC8vIFVwZGF0aW5nIHJlbGV2YW50IGluZGV4XG4gIHVwZGF0ZVN0cnVjdHVyZUluZGV4KFxuICAgIGdyYXBoLFxuICAgIHVuZGlyZWN0ZWQsXG4gICAgZWRnZURhdGEsXG4gICAgc291cmNlLFxuICAgIHRhcmdldCxcbiAgICBzb3VyY2VEYXRhLFxuICAgIHRhcmdldERhdGFcbiAgKTtcblxuICBpZiAodW5kaXJlY3RlZCkgZ3JhcGguX3VuZGlyZWN0ZWRTaXplKys7XG4gIGVsc2UgZ3JhcGguX2RpcmVjdGVkU2l6ZSsrO1xuXG4gIC8vIEVtaXR0aW5nXG4gIGV2ZW50RGF0YS5rZXkgPSBlZGdlO1xuXG4gIGdyYXBoLmVtaXQoJ2VkZ2VBZGRlZCcsIGV2ZW50RGF0YSk7XG5cbiAgcmV0dXJuIFtlZGdlLCB0cnVlLCBzb3VyY2VXYXNBZGRlZCwgdGFyZ2V0V2FzQWRkZWRdO1xufVxuXG4vKipcbiAqIEdyYXBoIGNsYXNzXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0gIHtvYmplY3R9ICBbb3B0aW9uc10gLSBPcHRpb25zOlxuICogQHBhcmFtICB7Ym9vbGVhbn0gICBbYWxsb3dTZWxmTG9vcHNdIC0gQWxsb3cgc2VsZiBsb29wcz9cbiAqIEBwYXJhbSAge3N0cmluZ30gICAgW3R5cGVdICAgICAgICAgICAtIFR5cGUgb2YgdGhlIGdyYXBoLlxuICogQHBhcmFtICB7Ym9vbGVhbn0gICBbbWFwXSAgICAgICAgICAgIC0gQWxsb3cgcmVmZXJlbmNlcyBhcyBrZXlzP1xuICogQHBhcmFtICB7Ym9vbGVhbn0gICBbbXVsdGldICAgICAgICAgIC0gQWxsb3cgcGFyYWxsZWwgZWRnZXM/XG4gKlxuICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgYXJndW1lbnRzIGFyZSBub3QgdmFsaWQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdyYXBoIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvLy0tIFNvbHZpbmcgb3B0aW9uc1xuICAgIG9wdGlvbnMgPSBhc3NpZ24oe30sIERFRkFVTFRTLCBvcHRpb25zKTtcblxuICAgIC8vIEVuZm9yY2luZyBvcHRpb25zIHZhbGlkaXR5XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLm11bHRpICE9PSAnYm9vbGVhbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5jb25zdHJ1Y3RvcjogaW52YWxpZCAnbXVsdGknIG9wdGlvbi4gRXhwZWN0aW5nIGEgYm9vbGVhbiBidXQgZ290IFwiJHtvcHRpb25zLm11bHRpfVwiLmBcbiAgICAgICk7XG5cbiAgICBpZiAoIVRZUEVTLmhhcyhvcHRpb25zLnR5cGUpKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguY29uc3RydWN0b3I6IGludmFsaWQgJ3R5cGUnIG9wdGlvbi4gU2hvdWxkIGJlIG9uZSBvZiBcIm1peGVkXCIsIFwiZGlyZWN0ZWRcIiBvciBcInVuZGlyZWN0ZWRcIiBidXQgZ290IFwiJHtvcHRpb25zLnR5cGV9XCIuYFxuICAgICAgKTtcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5hbGxvd1NlbGZMb29wcyAhPT0gJ2Jvb2xlYW4nKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguY29uc3RydWN0b3I6IGludmFsaWQgJ2FsbG93U2VsZkxvb3BzJyBvcHRpb24uIEV4cGVjdGluZyBhIGJvb2xlYW4gYnV0IGdvdCBcIiR7b3B0aW9ucy5hbGxvd1NlbGZMb29wc31cIi5gXG4gICAgICApO1xuXG4gICAgLy8tLSBQcml2YXRlIHByb3BlcnRpZXNcblxuICAgIC8vIFV0aWxpdGllc1xuICAgIGNvbnN0IE5vZGVEYXRhQ2xhc3MgPVxuICAgICAgb3B0aW9ucy50eXBlID09PSAnbWl4ZWQnXG4gICAgICAgID8gTWl4ZWROb2RlRGF0YVxuICAgICAgICA6IG9wdGlvbnMudHlwZSA9PT0gJ2RpcmVjdGVkJ1xuICAgICAgICA/IERpcmVjdGVkTm9kZURhdGFcbiAgICAgICAgOiBVbmRpcmVjdGVkTm9kZURhdGE7XG5cbiAgICBwcml2YXRlUHJvcGVydHkodGhpcywgJ05vZGVEYXRhQ2xhc3MnLCBOb2RlRGF0YUNsYXNzKTtcblxuICAgIC8vIEludGVybmFsIGVkZ2Uga2V5IGdlbmVyYXRvclxuXG4gICAgLy8gTk9URTogdGhpcyBpbnRlcm5hbCBnZW5lcmF0b3IgcHJvZHVjZSBrZXlzIHRoYXQgYXJlIHN0cmluZ3NcbiAgICAvLyBjb21wb3NlZCBvZiBhIHdlaXJkIHByZWZpeCwgYW4gaW5jcmVtZW50YWwgaW5zdGFuY2UgaWQgc3RhcnRpbmcgZnJvbVxuICAgIC8vIGEgcmFuZG9tIGJ5dGUgYW5kIGZpbmFsbHkgYW4gaW50ZXJuYWwgaW5zdGFuY2UgaW5jcmVtZW50YWwgaWQuXG4gICAgLy8gQWxsIHRoaXMgdG8gYXZvaWQgaW50cmEtZnJhbWUgYW5kIGNyb3NzLWZyYW1lIGFkdmVyc2FyaWFsIGlucHV0c1xuICAgIC8vIHRoYXQgY2FuIGZvcmNlIGEgc2luZ2xlICMuYWRkRWRnZSBjYWxsIHRvIGRlZ2VuZXJhdGUgaW50byBhIE8obilcbiAgICAvLyBhdmFpbGFibGUga2V5IHNlYXJjaCBsb29wLlxuXG4gICAgLy8gSXQgYWxzbyBlbnN1cmVzIHRoYXQgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZWRnZSBrZXlzIGFyZSB1bmxpa2VseVxuICAgIC8vIHRvIHByb2R1Y2UgY29sbGlzaW9ucyB3aXRoIGFyYml0cmFyeSBrZXlzIGdpdmVuIGJ5IHVzZXJzLlxuICAgIGNvbnN0IGluc3RhbmNlSWQgPSBJTlNUQU5DRV9JRCgpO1xuICAgIGxldCBlZGdlSWQgPSAwO1xuXG4gICAgY29uc3QgZWRnZUtleUdlbmVyYXRvciA9ICgpID0+IHtcbiAgICAgIGxldCBhdmFpbGFibGVFZGdlS2V5O1xuXG4gICAgICBkbyB7XG4gICAgICAgIGF2YWlsYWJsZUVkZ2VLZXkgPSAnZ2VpZF8nICsgaW5zdGFuY2VJZCArICdfJyArIGVkZ2VJZCsrO1xuICAgICAgfSB3aGlsZSAodGhpcy5fZWRnZXMuaGFzKGF2YWlsYWJsZUVkZ2VLZXkpKTtcblxuICAgICAgcmV0dXJuIGF2YWlsYWJsZUVkZ2VLZXk7XG4gICAgfTtcblxuICAgIC8vIEluZGV4ZXNcbiAgICBwcml2YXRlUHJvcGVydHkodGhpcywgJ19hdHRyaWJ1dGVzJywge30pO1xuICAgIHByaXZhdGVQcm9wZXJ0eSh0aGlzLCAnX25vZGVzJywgbmV3IE1hcCgpKTtcbiAgICBwcml2YXRlUHJvcGVydHkodGhpcywgJ19lZGdlcycsIG5ldyBNYXAoKSk7XG4gICAgcHJpdmF0ZVByb3BlcnR5KHRoaXMsICdfZGlyZWN0ZWRTaXplJywgMCk7XG4gICAgcHJpdmF0ZVByb3BlcnR5KHRoaXMsICdfdW5kaXJlY3RlZFNpemUnLCAwKTtcbiAgICBwcml2YXRlUHJvcGVydHkodGhpcywgJ19kaXJlY3RlZFNlbGZMb29wQ291bnQnLCAwKTtcbiAgICBwcml2YXRlUHJvcGVydHkodGhpcywgJ191bmRpcmVjdGVkU2VsZkxvb3BDb3VudCcsIDApO1xuICAgIHByaXZhdGVQcm9wZXJ0eSh0aGlzLCAnX2VkZ2VLZXlHZW5lcmF0b3InLCBlZGdlS2V5R2VuZXJhdG9yKTtcblxuICAgIC8vIE9wdGlvbnNcbiAgICBwcml2YXRlUHJvcGVydHkodGhpcywgJ19vcHRpb25zJywgb3B0aW9ucyk7XG5cbiAgICAvLyBFbWl0dGVyIHByb3BlcnRpZXNcbiAgICBFTUlUVEVSX1BST1BTLmZvckVhY2gocHJvcCA9PiBwcml2YXRlUHJvcGVydHkodGhpcywgcHJvcCwgdGhpc1twcm9wXSkpO1xuXG4gICAgLy8tLSBQcm9wZXJ0aWVzIHJlYWRlcnNcbiAgICByZWFkT25seVByb3BlcnR5KHRoaXMsICdvcmRlcicsICgpID0+IHRoaXMuX25vZGVzLnNpemUpO1xuICAgIHJlYWRPbmx5UHJvcGVydHkodGhpcywgJ3NpemUnLCAoKSA9PiB0aGlzLl9lZGdlcy5zaXplKTtcbiAgICByZWFkT25seVByb3BlcnR5KHRoaXMsICdkaXJlY3RlZFNpemUnLCAoKSA9PiB0aGlzLl9kaXJlY3RlZFNpemUpO1xuICAgIHJlYWRPbmx5UHJvcGVydHkodGhpcywgJ3VuZGlyZWN0ZWRTaXplJywgKCkgPT4gdGhpcy5fdW5kaXJlY3RlZFNpemUpO1xuICAgIHJlYWRPbmx5UHJvcGVydHkoXG4gICAgICB0aGlzLFxuICAgICAgJ3NlbGZMb29wQ291bnQnLFxuICAgICAgKCkgPT4gdGhpcy5fZGlyZWN0ZWRTZWxmTG9vcENvdW50ICsgdGhpcy5fdW5kaXJlY3RlZFNlbGZMb29wQ291bnRcbiAgICApO1xuICAgIHJlYWRPbmx5UHJvcGVydHkoXG4gICAgICB0aGlzLFxuICAgICAgJ2RpcmVjdGVkU2VsZkxvb3BDb3VudCcsXG4gICAgICAoKSA9PiB0aGlzLl9kaXJlY3RlZFNlbGZMb29wQ291bnRcbiAgICApO1xuICAgIHJlYWRPbmx5UHJvcGVydHkoXG4gICAgICB0aGlzLFxuICAgICAgJ3VuZGlyZWN0ZWRTZWxmTG9vcENvdW50JyxcbiAgICAgICgpID0+IHRoaXMuX3VuZGlyZWN0ZWRTZWxmTG9vcENvdW50XG4gICAgKTtcbiAgICByZWFkT25seVByb3BlcnR5KHRoaXMsICdtdWx0aScsIHRoaXMuX29wdGlvbnMubXVsdGkpO1xuICAgIHJlYWRPbmx5UHJvcGVydHkodGhpcywgJ3R5cGUnLCB0aGlzLl9vcHRpb25zLnR5cGUpO1xuICAgIHJlYWRPbmx5UHJvcGVydHkodGhpcywgJ2FsbG93U2VsZkxvb3BzJywgdGhpcy5fb3B0aW9ucy5hbGxvd1NlbGZMb29wcyk7XG4gICAgcmVhZE9ubHlQcm9wZXJ0eSh0aGlzLCAnaW1wbGVtZW50YXRpb24nLCAoKSA9PiAnZ3JhcGhvbG9neScpO1xuICB9XG5cbiAgX3Jlc2V0SW5zdGFuY2VDb3VudGVycygpIHtcbiAgICB0aGlzLl9kaXJlY3RlZFNpemUgPSAwO1xuICAgIHRoaXMuX3VuZGlyZWN0ZWRTaXplID0gMDtcbiAgICB0aGlzLl9kaXJlY3RlZFNlbGZMb29wQ291bnQgPSAwO1xuICAgIHRoaXMuX3VuZGlyZWN0ZWRTZWxmTG9vcENvdW50ID0gMDtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBSZWFkXG4gICAqKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKi9cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB3aGV0aGVyIHRoZSBnaXZlbiBub2RlIGlzIGZvdW5kIGluIHRoZSBncmFwaC5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgbm9kZSAtIFRoZSBub2RlLlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaGFzTm9kZShub2RlKSB7XG4gICAgcmV0dXJuIHRoaXMuX25vZGVzLmhhcygnJyArIG5vZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgd2hldGhlciB0aGUgZ2l2ZW4gZGlyZWN0ZWQgZWRnZSBpcyBmb3VuZCBpbiB0aGUgZ3JhcGguXG4gICAqXG4gICAqIEFyaXR5IDE6XG4gICAqIEBwYXJhbSAge2FueX0gICAgIGVkZ2UgLSBUaGUgZWRnZSdzIGtleS5cbiAgICpcbiAgICogQXJpdHkgMjpcbiAgICogQHBhcmFtICB7YW55fSAgICAgc291cmNlIC0gVGhlIGVkZ2UncyBzb3VyY2UuXG4gICAqIEBwYXJhbSAge2FueX0gICAgIHRhcmdldCAtIFRoZSBlZGdlJ3MgdGFyZ2V0LlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBhcmd1bWVudHMgYXJlIGludmFsaWQuXG4gICAqL1xuICBoYXNEaXJlY3RlZEVkZ2Uoc291cmNlLCB0YXJnZXQpIHtcbiAgICAvLyBFYXJseSB0ZXJtaW5hdGlvblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd1bmRpcmVjdGVkJykgcmV0dXJuIGZhbHNlO1xuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGVkZ2UgPSAnJyArIHNvdXJjZTtcblxuICAgICAgY29uc3QgZWRnZURhdGEgPSB0aGlzLl9lZGdlcy5nZXQoZWRnZSk7XG5cbiAgICAgIHJldHVybiAhIWVkZ2VEYXRhICYmICFlZGdlRGF0YS51bmRpcmVjdGVkO1xuICAgIH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgc291cmNlID0gJycgKyBzb3VyY2U7XG4gICAgICB0YXJnZXQgPSAnJyArIHRhcmdldDtcblxuICAgICAgLy8gSWYgdGhlIG5vZGUgc291cmNlIG9yIHRoZSB0YXJnZXQgaXMgbm90IGluIHRoZSBncmFwaCB3ZSBicmVha1xuICAgICAgY29uc3Qgbm9kZURhdGEgPSB0aGlzLl9ub2Rlcy5nZXQoc291cmNlKTtcblxuICAgICAgaWYgKCFub2RlRGF0YSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAvLyBJcyB0aGVyZSBhIGRpcmVjdGVkIGVkZ2UgcG9pbnRpbmcgdG93YXJkIHRhcmdldD9cbiAgICAgIGNvbnN0IGVkZ2VzID0gbm9kZURhdGEub3V0W3RhcmdldF07XG5cbiAgICAgIGlmICghZWRnZXMpIHJldHVybiBmYWxzZTtcblxuICAgICAgcmV0dXJuIHRoaXMubXVsdGkgPyAhIWVkZ2VzLnNpemUgOiB0cnVlO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgIGBHcmFwaC5oYXNEaXJlY3RlZEVkZ2U6IGludmFsaWQgYXJpdHkgKCR7YXJndW1lbnRzLmxlbmd0aH0sIGluc3RlYWQgb2YgMSBvciAyKS4gWW91IGNhbiBlaXRoZXIgYXNrIGZvciBhbiBlZGdlIGlkIG9yIGZvciB0aGUgZXhpc3RlbmNlIG9mIGFuIGVkZ2UgYmV0d2VlbiBhIHNvdXJjZSAmIGEgdGFyZ2V0LmBcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgd2hldGhlciB0aGUgZ2l2ZW4gdW5kaXJlY3RlZCBlZGdlIGlzIGZvdW5kIGluIHRoZSBncmFwaC5cbiAgICpcbiAgICogQXJpdHkgMTpcbiAgICogQHBhcmFtICB7YW55fSAgICAgZWRnZSAtIFRoZSBlZGdlJ3Mga2V5LlxuICAgKlxuICAgKiBBcml0eSAyOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBzb3VyY2UgLSBUaGUgZWRnZSdzIHNvdXJjZS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgdGFyZ2V0IC0gVGhlIGVkZ2UncyB0YXJnZXQuXG4gICAqXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZC5cbiAgICovXG4gIGhhc1VuZGlyZWN0ZWRFZGdlKHNvdXJjZSwgdGFyZ2V0KSB7XG4gICAgLy8gRWFybHkgdGVybWluYXRpb25cbiAgICBpZiAodGhpcy50eXBlID09PSAnZGlyZWN0ZWQnKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZWRnZSA9ICcnICsgc291cmNlO1xuXG4gICAgICBjb25zdCBlZGdlRGF0YSA9IHRoaXMuX2VkZ2VzLmdldChlZGdlKTtcblxuICAgICAgcmV0dXJuICEhZWRnZURhdGEgJiYgZWRnZURhdGEudW5kaXJlY3RlZDtcbiAgICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcbiAgICAgIHNvdXJjZSA9ICcnICsgc291cmNlO1xuICAgICAgdGFyZ2V0ID0gJycgKyB0YXJnZXQ7XG5cbiAgICAgIC8vIElmIHRoZSBub2RlIHNvdXJjZSBvciB0aGUgdGFyZ2V0IGlzIG5vdCBpbiB0aGUgZ3JhcGggd2UgYnJlYWtcbiAgICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KHNvdXJjZSk7XG5cbiAgICAgIGlmICghbm9kZURhdGEpIHJldHVybiBmYWxzZTtcblxuICAgICAgLy8gSXMgdGhlcmUgYSBkaXJlY3RlZCBlZGdlIHBvaW50aW5nIHRvd2FyZCB0YXJnZXQ/XG4gICAgICBjb25zdCBlZGdlcyA9IG5vZGVEYXRhLnVuZGlyZWN0ZWRbdGFyZ2V0XTtcblxuICAgICAgaWYgKCFlZGdlcykgcmV0dXJuIGZhbHNlO1xuXG4gICAgICByZXR1cm4gdGhpcy5tdWx0aSA/ICEhZWRnZXMuc2l6ZSA6IHRydWU7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLmhhc0RpcmVjdGVkRWRnZTogaW52YWxpZCBhcml0eSAoJHthcmd1bWVudHMubGVuZ3RofSwgaW5zdGVhZCBvZiAxIG9yIDIpLiBZb3UgY2FuIGVpdGhlciBhc2sgZm9yIGFuIGVkZ2UgaWQgb3IgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYW4gZWRnZSBiZXR3ZWVuIGEgc291cmNlICYgYSB0YXJnZXQuYFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB3aGV0aGVyIHRoZSBnaXZlbiBlZGdlIGlzIGZvdW5kIGluIHRoZSBncmFwaC5cbiAgICpcbiAgICogQXJpdHkgMTpcbiAgICogQHBhcmFtICB7YW55fSAgICAgZWRnZSAtIFRoZSBlZGdlJ3Mga2V5LlxuICAgKlxuICAgKiBBcml0eSAyOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBzb3VyY2UgLSBUaGUgZWRnZSdzIHNvdXJjZS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgdGFyZ2V0IC0gVGhlIGVkZ2UncyB0YXJnZXQuXG4gICAqXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZC5cbiAgICovXG4gIGhhc0VkZ2Uoc291cmNlLCB0YXJnZXQpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZWRnZSA9ICcnICsgc291cmNlO1xuXG4gICAgICByZXR1cm4gdGhpcy5fZWRnZXMuaGFzKGVkZ2UpO1xuICAgIH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikge1xuICAgICAgc291cmNlID0gJycgKyBzb3VyY2U7XG4gICAgICB0YXJnZXQgPSAnJyArIHRhcmdldDtcblxuICAgICAgLy8gSWYgdGhlIG5vZGUgc291cmNlIG9yIHRoZSB0YXJnZXQgaXMgbm90IGluIHRoZSBncmFwaCB3ZSBicmVha1xuICAgICAgY29uc3Qgbm9kZURhdGEgPSB0aGlzLl9ub2Rlcy5nZXQoc291cmNlKTtcblxuICAgICAgaWYgKCFub2RlRGF0YSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAvLyBJcyB0aGVyZSBhIGRpcmVjdGVkIGVkZ2UgcG9pbnRpbmcgdG93YXJkIHRhcmdldD9cbiAgICAgIGxldCBlZGdlcyA9IHR5cGVvZiBub2RlRGF0YS5vdXQgIT09ICd1bmRlZmluZWQnICYmIG5vZGVEYXRhLm91dFt0YXJnZXRdO1xuXG4gICAgICBpZiAoIWVkZ2VzKVxuICAgICAgICBlZGdlcyA9XG4gICAgICAgICAgdHlwZW9mIG5vZGVEYXRhLnVuZGlyZWN0ZWQgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgbm9kZURhdGEudW5kaXJlY3RlZFt0YXJnZXRdO1xuXG4gICAgICBpZiAoIWVkZ2VzKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgIHJldHVybiB0aGlzLm11bHRpID8gISFlZGdlcy5zaXplIDogdHJ1ZTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICBgR3JhcGguaGFzRWRnZTogaW52YWxpZCBhcml0eSAoJHthcmd1bWVudHMubGVuZ3RofSwgaW5zdGVhZCBvZiAxIG9yIDIpLiBZb3UgY2FuIGVpdGhlciBhc2sgZm9yIGFuIGVkZ2UgaWQgb3IgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYW4gZWRnZSBiZXR3ZWVuIGEgc291cmNlICYgYSB0YXJnZXQuYFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZWRnZSBtYXRjaGluZyBzb3VyY2UgJiB0YXJnZXQgaW4gYSBkaXJlY3RlZCBmYXNoaW9uLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9IHNvdXJjZSAtIFRoZSBlZGdlJ3Mgc291cmNlLlxuICAgKiBAcGFyYW0gIHthbnl9IHRhcmdldCAtIFRoZSBlZGdlJ3MgdGFyZ2V0LlxuICAgKlxuICAgKiBAcmV0dXJuIHthbnl8dW5kZWZpbmVkfVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBncmFwaCBpcyBtdWx0aS5cbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiBzb3VyY2Ugb3IgdGFyZ2V0IGRvZXNuJ3QgZXhpc3QuXG4gICAqL1xuICBkaXJlY3RlZEVkZ2Uoc291cmNlLCB0YXJnZXQpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAndW5kaXJlY3RlZCcpIHJldHVybjtcblxuICAgIHNvdXJjZSA9ICcnICsgc291cmNlO1xuICAgIHRhcmdldCA9ICcnICsgdGFyZ2V0O1xuXG4gICAgaWYgKHRoaXMubXVsdGkpXG4gICAgICB0aHJvdyBuZXcgVXNhZ2VHcmFwaEVycm9yKFxuICAgICAgICAnR3JhcGguZGlyZWN0ZWRFZGdlOiB0aGlzIG1ldGhvZCBpcyBpcnJlbGV2YW50IHdpdGggbXVsdGlncmFwaHMgc2luY2UgdGhlcmUgbWlnaHQgYmUgbXVsdGlwbGUgZWRnZXMgYmV0d2VlbiBzb3VyY2UgJiB0YXJnZXQuIFNlZSAjLmRpcmVjdGVkRWRnZXMgaW5zdGVhZC4nXG4gICAgICApO1xuXG4gICAgY29uc3Qgc291cmNlRGF0YSA9IHRoaXMuX25vZGVzLmdldChzb3VyY2UpO1xuXG4gICAgaWYgKCFzb3VyY2VEYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLmRpcmVjdGVkRWRnZTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtzb3VyY2V9XCIgc291cmNlIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAoIXRoaXMuX25vZGVzLmhhcyh0YXJnZXQpKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLmRpcmVjdGVkRWRnZTogY291bGQgbm90IGZpbmQgdGhlIFwiJHt0YXJnZXR9XCIgdGFyZ2V0IG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBjb25zdCBlZGdlRGF0YSA9IChzb3VyY2VEYXRhLm91dCAmJiBzb3VyY2VEYXRhLm91dFt0YXJnZXRdKSB8fCB1bmRlZmluZWQ7XG5cbiAgICBpZiAoZWRnZURhdGEpIHJldHVybiBlZGdlRGF0YS5rZXk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZWRnZSBtYXRjaGluZyBzb3VyY2UgJiB0YXJnZXQgaW4gYSB1bmRpcmVjdGVkIGZhc2hpb24uXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gc291cmNlIC0gVGhlIGVkZ2UncyBzb3VyY2UuXG4gICAqIEBwYXJhbSAge2FueX0gdGFyZ2V0IC0gVGhlIGVkZ2UncyB0YXJnZXQuXG4gICAqXG4gICAqIEByZXR1cm4ge2FueXx1bmRlZmluZWR9XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIGdyYXBoIGlzIG11bHRpLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHNvdXJjZSBvciB0YXJnZXQgZG9lc24ndCBleGlzdC5cbiAgICovXG4gIHVuZGlyZWN0ZWRFZGdlKHNvdXJjZSwgdGFyZ2V0KSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2RpcmVjdGVkJykgcmV0dXJuO1xuXG4gICAgc291cmNlID0gJycgKyBzb3VyY2U7XG4gICAgdGFyZ2V0ID0gJycgKyB0YXJnZXQ7XG5cbiAgICBpZiAodGhpcy5tdWx0aSlcbiAgICAgIHRocm93IG5ldyBVc2FnZUdyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC51bmRpcmVjdGVkRWRnZTogdGhpcyBtZXRob2QgaXMgaXJyZWxldmFudCB3aXRoIG11bHRpZ3JhcGhzIHNpbmNlIHRoZXJlIG1pZ2h0IGJlIG11bHRpcGxlIGVkZ2VzIGJldHdlZW4gc291cmNlICYgdGFyZ2V0LiBTZWUgIy51bmRpcmVjdGVkRWRnZXMgaW5zdGVhZC4nXG4gICAgICApO1xuXG4gICAgY29uc3Qgc291cmNlRGF0YSA9IHRoaXMuX25vZGVzLmdldChzb3VyY2UpO1xuXG4gICAgaWYgKCFzb3VyY2VEYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLnVuZGlyZWN0ZWRFZGdlOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke3NvdXJjZX1cIiBzb3VyY2Ugbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGlmICghdGhpcy5fbm9kZXMuaGFzKHRhcmdldCkpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGgudW5kaXJlY3RlZEVkZ2U6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7dGFyZ2V0fVwiIHRhcmdldCBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgY29uc3QgZWRnZURhdGEgPVxuICAgICAgKHNvdXJjZURhdGEudW5kaXJlY3RlZCAmJiBzb3VyY2VEYXRhLnVuZGlyZWN0ZWRbdGFyZ2V0XSkgfHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKGVkZ2VEYXRhKSByZXR1cm4gZWRnZURhdGEua2V5O1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgdGhlIGVkZ2UgbWF0Y2hpbmcgc291cmNlICYgdGFyZ2V0IGluIGEgbWl4ZWQgZmFzaGlvbi5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSBzb3VyY2UgLSBUaGUgZWRnZSdzIHNvdXJjZS5cbiAgICogQHBhcmFtICB7YW55fSB0YXJnZXQgLSBUaGUgZWRnZSdzIHRhcmdldC5cbiAgICpcbiAgICogQHJldHVybiB7YW55fHVuZGVmaW5lZH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgZ3JhcGggaXMgbXVsdGkuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgc291cmNlIG9yIHRhcmdldCBkb2Vzbid0IGV4aXN0LlxuICAgKi9cbiAgZWRnZShzb3VyY2UsIHRhcmdldCkge1xuICAgIGlmICh0aGlzLm11bHRpKVxuICAgICAgdGhyb3cgbmV3IFVzYWdlR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLmVkZ2U6IHRoaXMgbWV0aG9kIGlzIGlycmVsZXZhbnQgd2l0aCBtdWx0aWdyYXBocyBzaW5jZSB0aGVyZSBtaWdodCBiZSBtdWx0aXBsZSBlZGdlcyBiZXR3ZWVuIHNvdXJjZSAmIHRhcmdldC4gU2VlICMuZWRnZXMgaW5zdGVhZC4nXG4gICAgICApO1xuXG4gICAgc291cmNlID0gJycgKyBzb3VyY2U7XG4gICAgdGFyZ2V0ID0gJycgKyB0YXJnZXQ7XG5cbiAgICBjb25zdCBzb3VyY2VEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KHNvdXJjZSk7XG5cbiAgICBpZiAoIXNvdXJjZURhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguZWRnZTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtzb3VyY2V9XCIgc291cmNlIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAoIXRoaXMuX25vZGVzLmhhcyh0YXJnZXQpKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLmVkZ2U6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7dGFyZ2V0fVwiIHRhcmdldCBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgY29uc3QgZWRnZURhdGEgPVxuICAgICAgKHNvdXJjZURhdGEub3V0ICYmIHNvdXJjZURhdGEub3V0W3RhcmdldF0pIHx8XG4gICAgICAoc291cmNlRGF0YS51bmRpcmVjdGVkICYmIHNvdXJjZURhdGEudW5kaXJlY3RlZFt0YXJnZXRdKSB8fFxuICAgICAgdW5kZWZpbmVkO1xuXG4gICAgaWYgKGVkZ2VEYXRhKSByZXR1cm4gZWRnZURhdGEua2V5O1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgd2hldGhlciB0d28gbm9kZXMgYXJlIGRpcmVjdGVkIG5laWdoYm9ycy5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgbm9kZSAgICAgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgbmVpZ2hib3IgLSBUaGUgbmVpZ2hib3IncyBrZXkuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIG5vZGUgaXNuJ3QgaW4gdGhlIGdyYXBoLlxuICAgKi9cbiAgYXJlRGlyZWN0ZWROZWlnaGJvcnMobm9kZSwgbmVpZ2hib3IpIHtcbiAgICBub2RlID0gJycgKyBub2RlO1xuICAgIG5laWdoYm9yID0gJycgKyBuZWlnaGJvcjtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFub2RlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5hcmVEaXJlY3RlZE5laWdoYm9yczogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAndW5kaXJlY3RlZCcpIHJldHVybiBmYWxzZTtcblxuICAgIHJldHVybiBuZWlnaGJvciBpbiBub2RlRGF0YS5pbiB8fCBuZWlnaGJvciBpbiBub2RlRGF0YS5vdXQ7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB3aGV0aGVyIHR3byBub2RlcyBhcmUgb3V0IG5laWdoYm9ycy5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgbm9kZSAgICAgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgbmVpZ2hib3IgLSBUaGUgbmVpZ2hib3IncyBrZXkuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIG5vZGUgaXNuJ3QgaW4gdGhlIGdyYXBoLlxuICAgKi9cbiAgYXJlT3V0TmVpZ2hib3JzKG5vZGUsIG5laWdoYm9yKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcbiAgICBuZWlnaGJvciA9ICcnICsgbmVpZ2hib3I7XG5cbiAgICBjb25zdCBub2RlRGF0YSA9IHRoaXMuX25vZGVzLmdldChub2RlKTtcblxuICAgIGlmICghbm9kZURhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguYXJlT3V0TmVpZ2hib3JzOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke25vZGV9XCIgbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd1bmRpcmVjdGVkJykgcmV0dXJuIGZhbHNlO1xuXG4gICAgcmV0dXJuIG5laWdoYm9yIGluIG5vZGVEYXRhLm91dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHdoZXRoZXIgdHdvIG5vZGVzIGFyZSBpbiBuZWlnaGJvcnMuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgICAgIC0gVGhlIG5vZGUncyBrZXkuXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5laWdoYm9yIC0gVGhlIG5laWdoYm9yJ3Mga2V5LlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIGFyZUluTmVpZ2hib3JzKG5vZGUsIG5laWdoYm9yKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcbiAgICBuZWlnaGJvciA9ICcnICsgbmVpZ2hib3I7XG5cbiAgICBjb25zdCBub2RlRGF0YSA9IHRoaXMuX25vZGVzLmdldChub2RlKTtcblxuICAgIGlmICghbm9kZURhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguYXJlSW5OZWlnaGJvcnM6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3VuZGlyZWN0ZWQnKSByZXR1cm4gZmFsc2U7XG5cbiAgICByZXR1cm4gbmVpZ2hib3IgaW4gbm9kZURhdGEuaW47XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB3aGV0aGVyIHR3byBub2RlcyBhcmUgdW5kaXJlY3RlZCBuZWlnaGJvcnMuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgICAgIC0gVGhlIG5vZGUncyBrZXkuXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5laWdoYm9yIC0gVGhlIG5laWdoYm9yJ3Mga2V5LlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIGFyZVVuZGlyZWN0ZWROZWlnaGJvcnMobm9kZSwgbmVpZ2hib3IpIHtcbiAgICBub2RlID0gJycgKyBub2RlO1xuICAgIG5laWdoYm9yID0gJycgKyBuZWlnaGJvcjtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFub2RlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5hcmVVbmRpcmVjdGVkTmVpZ2hib3JzOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke25vZGV9XCIgbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdkaXJlY3RlZCcpIHJldHVybiBmYWxzZTtcblxuICAgIHJldHVybiBuZWlnaGJvciBpbiBub2RlRGF0YS51bmRpcmVjdGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgd2hldGhlciB0d28gbm9kZXMgYXJlIG5laWdoYm9ycy5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgbm9kZSAgICAgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgbmVpZ2hib3IgLSBUaGUgbmVpZ2hib3IncyBrZXkuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIG5vZGUgaXNuJ3QgaW4gdGhlIGdyYXBoLlxuICAgKi9cbiAgYXJlTmVpZ2hib3JzKG5vZGUsIG5laWdoYm9yKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcbiAgICBuZWlnaGJvciA9ICcnICsgbmVpZ2hib3I7XG5cbiAgICBjb25zdCBub2RlRGF0YSA9IHRoaXMuX25vZGVzLmdldChub2RlKTtcblxuICAgIGlmICghbm9kZURhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguYXJlTmVpZ2hib3JzOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke25vZGV9XCIgbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGlmICh0aGlzLnR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgICAgaWYgKG5laWdoYm9yIGluIG5vZGVEYXRhLmluIHx8IG5laWdoYm9yIGluIG5vZGVEYXRhLm91dCkgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ2RpcmVjdGVkJykge1xuICAgICAgaWYgKG5laWdoYm9yIGluIG5vZGVEYXRhLnVuZGlyZWN0ZWQpIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHdoZXRoZXIgdHdvIG5vZGVzIGFyZSBpbmJvdW5kIG5laWdoYm9ycy5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgbm9kZSAgICAgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHBhcmFtICB7YW55fSAgICAgbmVpZ2hib3IgLSBUaGUgbmVpZ2hib3IncyBrZXkuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIG5vZGUgaXNuJ3QgaW4gdGhlIGdyYXBoLlxuICAgKi9cbiAgYXJlSW5ib3VuZE5laWdoYm9ycyhub2RlLCBuZWlnaGJvcikge1xuICAgIG5vZGUgPSAnJyArIG5vZGU7XG4gICAgbmVpZ2hib3IgPSAnJyArIG5laWdoYm9yO1xuXG4gICAgY29uc3Qgbm9kZURhdGEgPSB0aGlzLl9ub2Rlcy5nZXQobm9kZSk7XG5cbiAgICBpZiAoIW5vZGVEYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLmFyZUluYm91bmROZWlnaGJvcnM6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ3VuZGlyZWN0ZWQnKSB7XG4gICAgICBpZiAobmVpZ2hib3IgaW4gbm9kZURhdGEuaW4pIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgIT09ICdkaXJlY3RlZCcpIHtcbiAgICAgIGlmIChuZWlnaGJvciBpbiBub2RlRGF0YS51bmRpcmVjdGVkKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB3aGV0aGVyIHR3byBub2RlcyBhcmUgb3V0Ym91bmQgbmVpZ2hib3JzLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBub2RlICAgICAtIFRoZSBub2RlJ3Mga2V5LlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBuZWlnaGJvciAtIFRoZSBuZWlnaGJvcidzIGtleS5cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgbm9kZSBpc24ndCBpbiB0aGUgZ3JhcGguXG4gICAqL1xuICBhcmVPdXRib3VuZE5laWdoYm9ycyhub2RlLCBuZWlnaGJvcikge1xuICAgIG5vZGUgPSAnJyArIG5vZGU7XG4gICAgbmVpZ2hib3IgPSAnJyArIG5laWdoYm9yO1xuXG4gICAgY29uc3Qgbm9kZURhdGEgPSB0aGlzLl9ub2Rlcy5nZXQobm9kZSk7XG5cbiAgICBpZiAoIW5vZGVEYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLmFyZU91dGJvdW5kTmVpZ2hib3JzOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke25vZGV9XCIgbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGlmICh0aGlzLnR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgICAgaWYgKG5laWdoYm9yIGluIG5vZGVEYXRhLm91dCkgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ2RpcmVjdGVkJykge1xuICAgICAgaWYgKG5laWdoYm9yIGluIG5vZGVEYXRhLnVuZGlyZWN0ZWQpIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHRoZSBnaXZlbiBub2RlJ3MgaW4gZGVncmVlLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBub2RlIC0gVGhlIG5vZGUncyBrZXkuXG4gICAqIEByZXR1cm4ge251bWJlcn0gICAgICAgLSBUaGUgbm9kZSdzIGluIGRlZ3JlZS5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgbm9kZSBpc24ndCBpbiB0aGUgZ3JhcGguXG4gICAqL1xuICBpbkRlZ3JlZShub2RlKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFub2RlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5pbkRlZ3JlZTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAndW5kaXJlY3RlZCcpIHJldHVybiAwO1xuXG4gICAgcmV0dXJuIG5vZGVEYXRhLmluRGVncmVlICsgbm9kZURhdGEuZGlyZWN0ZWRTZWxmTG9vcHM7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZ2l2ZW4gbm9kZSdzIG91dCBkZWdyZWUuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHJldHVybiB7bnVtYmVyfSAgICAgICAtIFRoZSBub2RlJ3MgaW4gZGVncmVlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIG91dERlZ3JlZShub2RlKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFub2RlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5vdXREZWdyZWU6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3VuZGlyZWN0ZWQnKSByZXR1cm4gMDtcblxuICAgIHJldHVybiBub2RlRGF0YS5vdXREZWdyZWUgKyBub2RlRGF0YS5kaXJlY3RlZFNlbGZMb29wcztcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHRoZSBnaXZlbiBub2RlJ3MgZGlyZWN0ZWQgZGVncmVlLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBub2RlIC0gVGhlIG5vZGUncyBrZXkuXG4gICAqIEByZXR1cm4ge251bWJlcn0gICAgICAgLSBUaGUgbm9kZSdzIGluIGRlZ3JlZS5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgbm9kZSBpc24ndCBpbiB0aGUgZ3JhcGguXG4gICAqL1xuICBkaXJlY3RlZERlZ3JlZShub2RlKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFub2RlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5kaXJlY3RlZERlZ3JlZTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAndW5kaXJlY3RlZCcpIHJldHVybiAwO1xuXG4gICAgY29uc3QgbG9vcHMgPSBub2RlRGF0YS5kaXJlY3RlZFNlbGZMb29wcztcblxuICAgIGNvbnN0IGluRGVncmVlID0gbm9kZURhdGEuaW5EZWdyZWUgKyBsb29wcztcbiAgICBjb25zdCBvdXREZWdyZWUgPSBub2RlRGF0YS5vdXREZWdyZWUgKyBsb29wcztcblxuICAgIHJldHVybiBpbkRlZ3JlZSArIG91dERlZ3JlZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHRoZSBnaXZlbiBub2RlJ3MgdW5kaXJlY3RlZCBkZWdyZWUuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHJldHVybiB7bnVtYmVyfSAgICAgICAtIFRoZSBub2RlJ3MgaW4gZGVncmVlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIHVuZGlyZWN0ZWREZWdyZWUobm9kZSkge1xuICAgIG5vZGUgPSAnJyArIG5vZGU7XG5cbiAgICBjb25zdCBub2RlRGF0YSA9IHRoaXMuX25vZGVzLmdldChub2RlKTtcblxuICAgIGlmICghbm9kZURhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGgudW5kaXJlY3RlZERlZ3JlZTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAnZGlyZWN0ZWQnKSByZXR1cm4gMDtcblxuICAgIGNvbnN0IGxvb3BzID0gbm9kZURhdGEudW5kaXJlY3RlZFNlbGZMb29wcztcblxuICAgIHJldHVybiBub2RlRGF0YS51bmRpcmVjdGVkRGVncmVlICsgbG9vcHMgKiAyO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgdGhlIGdpdmVuIG5vZGUncyBkaXJlY3RlZCBkZWdyZWUuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHJldHVybiB7bnVtYmVyfSAgICAgICAtIFRoZSBub2RlJ3MgaW4gZGVncmVlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIGRlZ3JlZShub2RlKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFub2RlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5kZWdyZWU6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgbGV0IGRlZ3JlZSA9IDA7XG5cbiAgICBpZiAodGhpcy50eXBlICE9PSAnZGlyZWN0ZWQnKSB7XG4gICAgICBkZWdyZWUgKz0gbm9kZURhdGEudW5kaXJlY3RlZERlZ3JlZSArIG5vZGVEYXRhLnVuZGlyZWN0ZWRTZWxmTG9vcHMgKiAyO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgICAgZGVncmVlICs9XG4gICAgICAgIG5vZGVEYXRhLmluRGVncmVlICsgbm9kZURhdGEub3V0RGVncmVlICsgbm9kZURhdGEuZGlyZWN0ZWRTZWxmTG9vcHMgKiAyO1xuICAgIH1cblxuICAgIHJldHVybiBkZWdyZWU7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZ2l2ZW4gbm9kZSdzIGluIGRlZ3JlZSB3aXRob3V0IGNvbnNpZGVyaW5nIHNlbGYgbG9vcHMuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHJldHVybiB7bnVtYmVyfSAgICAgICAtIFRoZSBub2RlJ3MgaW4gZGVncmVlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIGluRGVncmVlV2l0aG91dFNlbGZMb29wcyhub2RlKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFub2RlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5pbkRlZ3JlZVdpdGhvdXRTZWxmTG9vcHM6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3VuZGlyZWN0ZWQnKSByZXR1cm4gMDtcblxuICAgIHJldHVybiBub2RlRGF0YS5pbkRlZ3JlZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHRoZSBnaXZlbiBub2RlJ3Mgb3V0IGRlZ3JlZSB3aXRob3V0IGNvbnNpZGVyaW5nIHNlbGYgbG9vcHMuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHJldHVybiB7bnVtYmVyfSAgICAgICAtIFRoZSBub2RlJ3MgaW4gZGVncmVlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIG91dERlZ3JlZVdpdGhvdXRTZWxmTG9vcHMobm9kZSkge1xuICAgIG5vZGUgPSAnJyArIG5vZGU7XG5cbiAgICBjb25zdCBub2RlRGF0YSA9IHRoaXMuX25vZGVzLmdldChub2RlKTtcblxuICAgIGlmICghbm9kZURhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGgub3V0RGVncmVlV2l0aG91dFNlbGZMb29wczogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAndW5kaXJlY3RlZCcpIHJldHVybiAwO1xuXG4gICAgcmV0dXJuIG5vZGVEYXRhLm91dERlZ3JlZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHRoZSBnaXZlbiBub2RlJ3MgZGlyZWN0ZWQgZGVncmVlIHdpdGhvdXQgY29uc2lkZXJpbmcgc2VsZiBsb29wcy5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgbm9kZSAtIFRoZSBub2RlJ3Mga2V5LlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9ICAgICAgIC0gVGhlIG5vZGUncyBpbiBkZWdyZWUuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIG5vZGUgaXNuJ3QgaW4gdGhlIGdyYXBoLlxuICAgKi9cbiAgZGlyZWN0ZWREZWdyZWVXaXRob3V0U2VsZkxvb3BzKG5vZGUpIHtcbiAgICBub2RlID0gJycgKyBub2RlO1xuXG4gICAgY29uc3Qgbm9kZURhdGEgPSB0aGlzLl9ub2Rlcy5nZXQobm9kZSk7XG5cbiAgICBpZiAoIW5vZGVEYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLmRpcmVjdGVkRGVncmVlV2l0aG91dFNlbGZMb29wczogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAndW5kaXJlY3RlZCcpIHJldHVybiAwO1xuXG4gICAgcmV0dXJuIG5vZGVEYXRhLmluRGVncmVlICsgbm9kZURhdGEub3V0RGVncmVlO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgdGhlIGdpdmVuIG5vZGUncyB1bmRpcmVjdGVkIGRlZ3JlZSB3aXRob3V0IGNvbnNpZGVyaW5nIHNlbGYgbG9vcHMuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHJldHVybiB7bnVtYmVyfSAgICAgICAtIFRoZSBub2RlJ3MgaW4gZGVncmVlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIHVuZGlyZWN0ZWREZWdyZWVXaXRob3V0U2VsZkxvb3BzKG5vZGUpIHtcbiAgICBub2RlID0gJycgKyBub2RlO1xuXG4gICAgY29uc3Qgbm9kZURhdGEgPSB0aGlzLl9ub2Rlcy5nZXQobm9kZSk7XG5cbiAgICBpZiAoIW5vZGVEYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLnVuZGlyZWN0ZWREZWdyZWVXaXRob3V0U2VsZkxvb3BzOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke25vZGV9XCIgbm9kZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdkaXJlY3RlZCcpIHJldHVybiAwO1xuXG4gICAgcmV0dXJuIG5vZGVEYXRhLnVuZGlyZWN0ZWREZWdyZWU7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZ2l2ZW4gbm9kZSdzIGRpcmVjdGVkIGRlZ3JlZSB3aXRob3V0IGNvbnNpZGVyaW5nIHNlbGYgbG9vcHMuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIG5vZGUgLSBUaGUgbm9kZSdzIGtleS5cbiAgICogQHJldHVybiB7bnVtYmVyfSAgICAgICAtIFRoZSBub2RlJ3MgaW4gZGVncmVlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIGRlZ3JlZVdpdGhvdXRTZWxmTG9vcHMobm9kZSkge1xuICAgIG5vZGUgPSAnJyArIG5vZGU7XG5cbiAgICBjb25zdCBub2RlRGF0YSA9IHRoaXMuX25vZGVzLmdldChub2RlKTtcblxuICAgIGlmICghbm9kZURhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguZGVncmVlV2l0aG91dFNlbGZMb29wczogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICBsZXQgZGVncmVlID0gMDtcblxuICAgIGlmICh0aGlzLnR5cGUgIT09ICdkaXJlY3RlZCcpIHtcbiAgICAgIGRlZ3JlZSArPSBub2RlRGF0YS51bmRpcmVjdGVkRGVncmVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgIT09ICd1bmRpcmVjdGVkJykge1xuICAgICAgZGVncmVlICs9IG5vZGVEYXRhLmluRGVncmVlICsgbm9kZURhdGEub3V0RGVncmVlO1xuICAgIH1cblxuICAgIHJldHVybiBkZWdyZWU7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZ2l2ZW4gZWRnZSdzIHNvdXJjZS5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSBlZGdlIC0gVGhlIGVkZ2UncyBrZXkuXG4gICAqIEByZXR1cm4ge2FueX0gICAgICAtIFRoZSBlZGdlJ3Mgc291cmNlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBlZGdlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIHNvdXJjZShlZGdlKSB7XG4gICAgZWRnZSA9ICcnICsgZWRnZTtcblxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9lZGdlcy5nZXQoZWRnZSk7XG5cbiAgICBpZiAoIWRhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguc291cmNlOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VkZ2V9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIHJldHVybiBkYXRhLnNvdXJjZS5rZXk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZ2l2ZW4gZWRnZSdzIHRhcmdldC5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSBlZGdlIC0gVGhlIGVkZ2UncyBrZXkuXG4gICAqIEByZXR1cm4ge2FueX0gICAgICAtIFRoZSBlZGdlJ3MgdGFyZ2V0LlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBlZGdlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIHRhcmdldChlZGdlKSB7XG4gICAgZWRnZSA9ICcnICsgZWRnZTtcblxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9lZGdlcy5nZXQoZWRnZSk7XG5cbiAgICBpZiAoIWRhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGgudGFyZ2V0OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VkZ2V9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIHJldHVybiBkYXRhLnRhcmdldC5rZXk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZ2l2ZW4gZWRnZSdzIGV4dHJlbWl0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgZWRnZSAtIFRoZSBlZGdlJ3Mga2V5LlxuICAgKiBAcmV0dXJuIHthcnJheX0gICAgICAtIFRoZSBlZGdlJ3MgZXh0cmVtaXRpZXMuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIGVkZ2UgaXNuJ3QgaW4gdGhlIGdyYXBoLlxuICAgKi9cbiAgZXh0cmVtaXRpZXMoZWRnZSkge1xuICAgIGVkZ2UgPSAnJyArIGVkZ2U7XG5cbiAgICBjb25zdCBlZGdlRGF0YSA9IHRoaXMuX2VkZ2VzLmdldChlZGdlKTtcblxuICAgIGlmICghZWRnZURhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguZXh0cmVtaXRpZXM6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWRnZX1cIiBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgcmV0dXJuIFtlZGdlRGF0YS5zb3VyY2Uua2V5LCBlZGdlRGF0YS50YXJnZXQua2V5XTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiBhIG5vZGUgJiBhbiBlZGdlLCByZXR1cm5zIHRoZSBvdGhlciBleHRyZW1pdHkgb2YgdGhlIGVkZ2UuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICBub2RlIC0gVGhlIG5vZGUncyBrZXkuXG4gICAqIEBwYXJhbSAge2FueX0gICBlZGdlIC0gVGhlIGVkZ2UncyBrZXkuXG4gICAqIEByZXR1cm4ge2FueX0gICAgICAgIC0gVGhlIHJlbGF0ZWQgbm9kZS5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgZWRnZSBpc24ndCBpbiB0aGUgZ3JhcGggb3IgaWYgdGhlXG4gICAqICAgICAgICAgICAgICAgICAgIGVkZ2UgJiBub2RlIGFyZSBub3QgcmVsYXRlZC5cbiAgICovXG4gIG9wcG9zaXRlKG5vZGUsIGVkZ2UpIHtcbiAgICBub2RlID0gJycgKyBub2RlO1xuICAgIGVkZ2UgPSAnJyArIGVkZ2U7XG5cbiAgICBjb25zdCBkYXRhID0gdGhpcy5fZWRnZXMuZ2V0KGVkZ2UpO1xuXG4gICAgaWYgKCFkYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLm9wcG9zaXRlOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VkZ2V9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIGNvbnN0IHNvdXJjZSA9IGRhdGEuc291cmNlLmtleTtcbiAgICBjb25zdCB0YXJnZXQgPSBkYXRhLnRhcmdldC5rZXk7XG5cbiAgICBpZiAobm9kZSA9PT0gc291cmNlKSByZXR1cm4gdGFyZ2V0O1xuICAgIGlmIChub2RlID09PSB0YXJnZXQpIHJldHVybiBzb3VyY2U7XG5cbiAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgYEdyYXBoLm9wcG9zaXRlOiB0aGUgXCIke25vZGV9XCIgbm9kZSBpcyBub3QgYXR0YWNoZWQgdG8gdGhlIFwiJHtlZGdlfVwiIGVkZ2UgKCR7c291cmNlfSwgJHt0YXJnZXR9KS5gXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGdpdmVuIGVkZ2UgaGFzIHRoZSBnaXZlbiBub2RlIGFzIGV4dHJlbWl0eS5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgZWRnZSAtIFRoZSBlZGdlJ3Mga2V5LlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBub2RlIC0gVGhlIG5vZGUncyBrZXkuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59ICAgICAgLSBUaGUgcmVsYXRlZCBub2RlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIGVpdGhlciB0aGUgbm9kZSBvciB0aGUgZWRnZSBpc24ndCBpbiB0aGUgZ3JhcGguXG4gICAqL1xuICBoYXNFeHRyZW1pdHkoZWRnZSwgbm9kZSkge1xuICAgIGVkZ2UgPSAnJyArIGVkZ2U7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9lZGdlcy5nZXQoZWRnZSk7XG5cbiAgICBpZiAoIWRhdGEpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGguaGFzRXh0cmVtaXR5OiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VkZ2V9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIHJldHVybiBkYXRhLnNvdXJjZS5rZXkgPT09IG5vZGUgfHwgZGF0YS50YXJnZXQua2V5ID09PSBub2RlO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgd2hldGhlciB0aGUgZ2l2ZW4gZWRnZSBpcyB1bmRpcmVjdGVkLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICBlZGdlIC0gVGhlIGVkZ2UncyBrZXkuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIGVkZ2UgaXNuJ3QgaW4gdGhlIGdyYXBoLlxuICAgKi9cbiAgaXNVbmRpcmVjdGVkKGVkZ2UpIHtcbiAgICBlZGdlID0gJycgKyBlZGdlO1xuXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuX2VkZ2VzLmdldChlZGdlKTtcblxuICAgIGlmICghZGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5pc1VuZGlyZWN0ZWQ6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWRnZX1cIiBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgcmV0dXJuIGRhdGEudW5kaXJlY3RlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHdoZXRoZXIgdGhlIGdpdmVuIGVkZ2UgaXMgZGlyZWN0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgIGVkZ2UgLSBUaGUgZWRnZSdzIGtleS5cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgZWRnZSBpc24ndCBpbiB0aGUgZ3JhcGguXG4gICAqL1xuICBpc0RpcmVjdGVkKGVkZ2UpIHtcbiAgICBlZGdlID0gJycgKyBlZGdlO1xuXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuX2VkZ2VzLmdldChlZGdlKTtcblxuICAgIGlmICghZGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5pc0RpcmVjdGVkOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VkZ2V9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIHJldHVybiAhZGF0YS51bmRpcmVjdGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgd2hldGhlciB0aGUgZ2l2ZW4gZWRnZSBpcyBhIHNlbGYgbG9vcC5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICAgZWRnZSAtIFRoZSBlZGdlJ3Mga2V5LlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBlZGdlIGlzbid0IGluIHRoZSBncmFwaC5cbiAgICovXG4gIGlzU2VsZkxvb3AoZWRnZSkge1xuICAgIGVkZ2UgPSAnJyArIGVkZ2U7XG5cbiAgICBjb25zdCBkYXRhID0gdGhpcy5fZWRnZXMuZ2V0KGVkZ2UpO1xuXG4gICAgaWYgKCFkYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLmlzU2VsZkxvb3A6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7ZWRnZX1cIiBlZGdlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgcmV0dXJuIGRhdGEuc291cmNlID09PSBkYXRhLnRhcmdldDtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBNdXRhdGlvblxuICAgKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICovXG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2VkIHRvIGFkZCBhIG5vZGUgdG8gdGhlIGdyYXBoLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgIG5vZGUgICAgICAgICAtIFRoZSBub2RlLlxuICAgKiBAcGFyYW0gIHtvYmplY3R9IFthdHRyaWJ1dGVzXSAtIE9wdGlvbmFsIGF0dHJpYnV0ZXMuXG4gICAqIEByZXR1cm4ge2FueX0gICAgICAgICAgICAgICAgIC0gVGhlIG5vZGUuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIGdpdmVuIG5vZGUgYWxyZWFkeSBleGlzdC5cbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgZ2l2ZW4gYXR0cmlidXRlcyBhcmUgbm90IGFuIG9iamVjdC5cbiAgICovXG4gIGFkZE5vZGUobm9kZSwgYXR0cmlidXRlcykge1xuICAgIGNvbnN0IG5vZGVEYXRhID0gYWRkTm9kZSh0aGlzLCBub2RlLCBhdHRyaWJ1dGVzKTtcblxuICAgIHJldHVybiBub2RlRGF0YS5rZXk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgdG8gbWVyZ2UgYSBub2RlIGludG8gdGhlIGdyYXBoLlxuICAgKlxuICAgKiBAcGFyYW0gIHthbnl9ICAgIG5vZGUgICAgICAgICAtIFRoZSBub2RlLlxuICAgKiBAcGFyYW0gIHtvYmplY3R9IFthdHRyaWJ1dGVzXSAtIE9wdGlvbmFsIGF0dHJpYnV0ZXMuXG4gICAqIEByZXR1cm4ge2FueX0gICAgICAgICAgICAgICAgIC0gVGhlIG5vZGUuXG4gICAqL1xuICBtZXJnZU5vZGUobm9kZSwgYXR0cmlidXRlcykge1xuICAgIGlmIChhdHRyaWJ1dGVzICYmICFpc1BsYWluT2JqZWN0KGF0dHJpYnV0ZXMpKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGgubWVyZ2VOb2RlOiBpbnZhbGlkIGF0dHJpYnV0ZXMuIEV4cGVjdGluZyBhbiBvYmplY3QgYnV0IGdvdCBcIiR7YXR0cmlidXRlc31cImBcbiAgICAgICk7XG5cbiAgICAvLyBTdHJpbmcgY29lcmNpb25cbiAgICBub2RlID0gJycgKyBub2RlO1xuICAgIGF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzIHx8IHt9O1xuXG4gICAgLy8gSWYgdGhlIG5vZGUgYWxyZWFkeSBleGlzdHMsIHdlIG1lcmdlIHRoZSBhdHRyaWJ1dGVzXG4gICAgbGV0IGRhdGEgPSB0aGlzLl9ub2Rlcy5nZXQobm9kZSk7XG5cbiAgICBpZiAoZGF0YSkge1xuICAgICAgaWYgKGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgYXNzaWduKGRhdGEuYXR0cmlidXRlcywgYXR0cmlidXRlcyk7XG5cbiAgICAgICAgdGhpcy5lbWl0KCdub2RlQXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICAgICAgdHlwZTogJ21lcmdlJyxcbiAgICAgICAgICBrZXk6IG5vZGUsXG4gICAgICAgICAgYXR0cmlidXRlczogZGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICAgIGRhdGE6IGF0dHJpYnV0ZXNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW25vZGUsIGZhbHNlXTtcbiAgICB9XG5cbiAgICBkYXRhID0gbmV3IHRoaXMuTm9kZURhdGFDbGFzcyhub2RlLCBhdHRyaWJ1dGVzKTtcblxuICAgIC8vIEFkZGluZyB0aGUgbm9kZSB0byBpbnRlcm5hbCByZWdpc3RlclxuICAgIHRoaXMuX25vZGVzLnNldChub2RlLCBkYXRhKTtcblxuICAgIC8vIEVtaXR0aW5nXG4gICAgdGhpcy5lbWl0KCdub2RlQWRkZWQnLCB7XG4gICAgICBrZXk6IG5vZGUsXG4gICAgICBhdHRyaWJ1dGVzXG4gICAgfSk7XG5cbiAgICByZXR1cm4gW25vZGUsIHRydWVdO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2VkIHRvIGFkZCBhIG5vZGUgaWYgaXQgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGdyYXBoIG9yIGVsc2UgdG9cbiAgICogdXBkYXRlIGl0cyBhdHRyaWJ1dGVzIHVzaW5nIGEgZnVuY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICAgICBub2RlICAgICAgLSBUaGUgbm9kZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IFt1cGRhdGVyXSAtIE9wdGlvbmFsIHVwZGF0ZXIgZnVuY3Rpb24uXG4gICAqIEByZXR1cm4ge2FueX0gICAgICAgICAgICAgICAgLSBUaGUgbm9kZS5cbiAgICovXG4gIHVwZGF0ZU5vZGUobm9kZSwgdXBkYXRlcikge1xuICAgIGlmICh1cGRhdGVyICYmIHR5cGVvZiB1cGRhdGVyICE9PSAnZnVuY3Rpb24nKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICBgR3JhcGgudXBkYXRlTm9kZTogaW52YWxpZCB1cGRhdGVyIGZ1bmN0aW9uLiBFeHBlY3RpbmcgYSBmdW5jdGlvbiBidXQgZ290IFwiJHt1cGRhdGVyfVwiYFxuICAgICAgKTtcblxuICAgIC8vIFN0cmluZyBjb2VyY2lvblxuICAgIG5vZGUgPSAnJyArIG5vZGU7XG5cbiAgICAvLyBJZiB0aGUgbm9kZSBhbHJlYWR5IGV4aXN0cywgd2UgdXBkYXRlIHRoZSBhdHRyaWJ1dGVzXG4gICAgbGV0IGRhdGEgPSB0aGlzLl9ub2Rlcy5nZXQobm9kZSk7XG5cbiAgICBpZiAoZGF0YSkge1xuICAgICAgaWYgKHVwZGF0ZXIpIHtcbiAgICAgICAgY29uc3Qgb2xkQXR0cmlidXRlcyA9IGRhdGEuYXR0cmlidXRlcztcbiAgICAgICAgZGF0YS5hdHRyaWJ1dGVzID0gdXBkYXRlcihvbGRBdHRyaWJ1dGVzKTtcblxuICAgICAgICB0aGlzLmVtaXQoJ25vZGVBdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgICAgICB0eXBlOiAncmVwbGFjZScsXG4gICAgICAgICAga2V5OiBub2RlLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlc1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbbm9kZSwgZmFsc2VdO1xuICAgIH1cblxuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSB1cGRhdGVyID8gdXBkYXRlcih7fSkgOiB7fTtcblxuICAgIGRhdGEgPSBuZXcgdGhpcy5Ob2RlRGF0YUNsYXNzKG5vZGUsIGF0dHJpYnV0ZXMpO1xuXG4gICAgLy8gQWRkaW5nIHRoZSBub2RlIHRvIGludGVybmFsIHJlZ2lzdGVyXG4gICAgdGhpcy5fbm9kZXMuc2V0KG5vZGUsIGRhdGEpO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ25vZGVBZGRlZCcsIHtcbiAgICAgIGtleTogbm9kZSxcbiAgICAgIGF0dHJpYnV0ZXNcbiAgICB9KTtcblxuICAgIHJldHVybiBbbm9kZSwgdHJ1ZV07XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgdG8gZHJvcCBhIHNpbmdsZSBub2RlICYgYWxsIGl0cyBhdHRhY2hlZCBlZGdlcyBmcm9tIHRoZSBncmFwaC5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgICBub2RlIC0gVGhlIG5vZGUuXG4gICAqIEByZXR1cm4ge0dyYXBofVxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGRvZXNuJ3QgZXhpc3QuXG4gICAqL1xuICBkcm9wTm9kZShub2RlKSB7XG4gICAgbm9kZSA9ICcnICsgbm9kZTtcblxuICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFub2RlRGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5kcm9wTm9kZTogY291bGQgbm90IGZpbmQgdGhlIFwiJHtub2RlfVwiIG5vZGUgaW4gdGhlIGdyYXBoLmBcbiAgICAgICk7XG5cbiAgICAvLyBSZW1vdmluZyBhdHRhY2hlZCBlZGdlc1xuICAgIC8vIFRPRE86IHdlIGNvdWxkIGRvIGZhc3RlclxuICAgIHRoaXMuZm9yRWFjaEVkZ2Uobm9kZSwgZWRnZSA9PiB7XG4gICAgICB0aGlzLmRyb3BFZGdlKGVkZ2UpO1xuICAgIH0pO1xuXG4gICAgLy8gRHJvcHBpbmcgdGhlIG5vZGUgZnJvbSB0aGUgcmVnaXN0ZXJcbiAgICB0aGlzLl9ub2Rlcy5kZWxldGUobm9kZSk7XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnbm9kZURyb3BwZWQnLCB7XG4gICAgICBrZXk6IG5vZGUsXG4gICAgICBhdHRyaWJ1dGVzOiBub2RlRGF0YS5hdHRyaWJ1dGVzXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgdG8gZHJvcCBhIHNpbmdsZSBlZGdlIGZyb20gdGhlIGdyYXBoLlxuICAgKlxuICAgKiBBcml0eSAxOlxuICAgKiBAcGFyYW0gIHthbnl9ICAgIGVkZ2UgLSBUaGUgZWRnZS5cbiAgICpcbiAgICogQXJpdHkgMjpcbiAgICogQHBhcmFtICB7YW55fSAgICBzb3VyY2UgLSBTb3VyY2Ugbm9kZS5cbiAgICogQHBhcmFtICB7YW55fSAgICB0YXJnZXQgLSBUYXJnZXQgbm9kZS5cbiAgICpcbiAgICogQHJldHVybiB7R3JhcGh9XG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIFdpbGwgdGhyb3cgaWYgdGhlIGVkZ2UgZG9lc24ndCBleGlzdC5cbiAgICovXG4gIGRyb3BFZGdlKGVkZ2UpIHtcbiAgICBsZXQgZWRnZURhdGE7XG5cbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnN0IHNvdXJjZSA9ICcnICsgYXJndW1lbnRzWzBdLFxuICAgICAgICB0YXJnZXQgPSAnJyArIGFyZ3VtZW50c1sxXTtcblxuICAgICAgZWRnZURhdGEgPSBnZXRNYXRjaGluZ0VkZ2UodGhpcywgc291cmNlLCB0YXJnZXQsIHRoaXMudHlwZSk7XG5cbiAgICAgIGlmICghZWRnZURhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLmRyb3BFZGdlOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke3NvdXJjZX1cIiAtPiBcIiR7dGFyZ2V0fVwiIGVkZ2UgaW4gdGhlIGdyYXBoLmBcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWRnZSA9ICcnICsgZWRnZTtcblxuICAgICAgZWRnZURhdGEgPSB0aGlzLl9lZGdlcy5nZXQoZWRnZSk7XG5cbiAgICAgIGlmICghZWRnZURhdGEpXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgICAgYEdyYXBoLmRyb3BFZGdlOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VkZ2V9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIERyb3BwaW5nIHRoZSBlZGdlIGZyb20gdGhlIHJlZ2lzdGVyXG4gICAgdGhpcy5fZWRnZXMuZGVsZXRlKGVkZ2VEYXRhLmtleSk7XG5cbiAgICAvLyBVcGRhdGluZyByZWxhdGVkIGRlZ3JlZXNcbiAgICBjb25zdCB7c291cmNlOiBzb3VyY2VEYXRhLCB0YXJnZXQ6IHRhcmdldERhdGEsIGF0dHJpYnV0ZXN9ID0gZWRnZURhdGE7XG5cbiAgICBjb25zdCB1bmRpcmVjdGVkID0gZWRnZURhdGEudW5kaXJlY3RlZDtcblxuICAgIGlmIChzb3VyY2VEYXRhID09PSB0YXJnZXREYXRhKSB7XG4gICAgICBpZiAodW5kaXJlY3RlZCkge1xuICAgICAgICBzb3VyY2VEYXRhLnVuZGlyZWN0ZWRTZWxmTG9vcHMtLTtcbiAgICAgICAgdGhpcy5fdW5kaXJlY3RlZFNlbGZMb29wQ291bnQtLTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNvdXJjZURhdGEuZGlyZWN0ZWRTZWxmTG9vcHMtLTtcbiAgICAgICAgdGhpcy5fZGlyZWN0ZWRTZWxmTG9vcENvdW50LS07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh1bmRpcmVjdGVkKSB7XG4gICAgICAgIHNvdXJjZURhdGEudW5kaXJlY3RlZERlZ3JlZS0tO1xuICAgICAgICB0YXJnZXREYXRhLnVuZGlyZWN0ZWREZWdyZWUtLTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNvdXJjZURhdGEub3V0RGVncmVlLS07XG4gICAgICAgIHRhcmdldERhdGEuaW5EZWdyZWUtLTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGVhcmluZyBpbmRleFxuICAgIGNsZWFyRWRnZUZyb21TdHJ1Y3R1cmVJbmRleCh0aGlzLCB1bmRpcmVjdGVkLCBlZGdlRGF0YSk7XG5cbiAgICBpZiAodW5kaXJlY3RlZCkgdGhpcy5fdW5kaXJlY3RlZFNpemUtLTtcbiAgICBlbHNlIHRoaXMuX2RpcmVjdGVkU2l6ZS0tO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ2VkZ2VEcm9wcGVkJywge1xuICAgICAga2V5OiBlZGdlLFxuICAgICAgYXR0cmlidXRlcyxcbiAgICAgIHNvdXJjZTogc291cmNlRGF0YS5rZXksXG4gICAgICB0YXJnZXQ6IHRhcmdldERhdGEua2V5LFxuICAgICAgdW5kaXJlY3RlZFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgdG8gcmVtb3ZlIGV2ZXJ5IGVkZ2UgJiBldmVyeSBub2RlIGZyb20gdGhlIGdyYXBoLlxuICAgKlxuICAgKiBAcmV0dXJuIHtHcmFwaH1cbiAgICovXG4gIGNsZWFyKCkge1xuICAgIC8vIENsZWFyaW5nIGVkZ2VzXG4gICAgdGhpcy5fZWRnZXMuY2xlYXIoKTtcblxuICAgIC8vIENsZWFyaW5nIG5vZGVzXG4gICAgdGhpcy5fbm9kZXMuY2xlYXIoKTtcblxuICAgIC8vIFJlc2V0IGNvdW50ZXJzXG4gICAgdGhpcy5fcmVzZXRJbnN0YW5jZUNvdW50ZXJzKCk7XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnY2xlYXJlZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2VkIHRvIHJlbW92ZSBldmVyeSBlZGdlIGZyb20gdGhlIGdyYXBoLlxuICAgKlxuICAgKiBAcmV0dXJuIHtHcmFwaH1cbiAgICovXG4gIGNsZWFyRWRnZXMoKSB7XG4gICAgY2xlYXJTdHJ1Y3R1cmVJbmRleCh0aGlzKTtcblxuICAgIC8vIENsZWFyaW5nIGVkZ2VzXG4gICAgdGhpcy5fZWRnZXMuY2xlYXIoKTtcblxuICAgIC8vIFJlc2V0IGNvdW50ZXJzXG4gICAgdGhpcy5fcmVzZXRJbnN0YW5jZUNvdW50ZXJzKCk7XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnZWRnZXNDbGVhcmVkJyk7XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQXR0cmlidXRlcy1yZWxhdGVkIG1ldGhvZHNcbiAgICoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqL1xuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHRoZSBkZXNpcmVkIGdyYXBoJ3MgYXR0cmlidXRlLlxuICAgKlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9IG5hbWUgLSBOYW1lIG9mIHRoZSBhdHRyaWJ1dGUuXG4gICAqIEByZXR1cm4ge2FueX1cbiAgICovXG4gIGdldEF0dHJpYnV0ZShuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F0dHJpYnV0ZXNbbmFtZV07XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgZ3JhcGgncyBhdHRyaWJ1dGVzLlxuICAgKlxuICAgKiBAcmV0dXJuIHtvYmplY3R9XG4gICAqL1xuICBnZXRBdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiB0aGlzLl9hdHRyaWJ1dGVzO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgd2hldGhlciB0aGUgZ3JhcGggaGFzIHRoZSBkZXNpcmVkIGF0dHJpYnV0ZS5cbiAgICpcbiAgICogQHBhcmFtICB7c3RyaW5nfSAgbmFtZSAtIE5hbWUgb2YgdGhlIGF0dHJpYnV0ZS5cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGhhc0F0dHJpYnV0ZShuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHNldHRpbmcgYSB2YWx1ZSBmb3IgdGhlIGRlc2lyZWQgZ3JhcGgncyBhdHRyaWJ1dGUuXG4gICAqXG4gICAqIEBwYXJhbSAge3N0cmluZ30gIG5hbWUgIC0gTmFtZSBvZiB0aGUgYXR0cmlidXRlLlxuICAgKiBAcGFyYW0gIHthbnl9ICAgICB2YWx1ZSAtIFZhbHVlIGZvciB0aGUgYXR0cmlidXRlLlxuICAgKiBAcmV0dXJuIHtHcmFwaH1cbiAgICovXG4gIHNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkge1xuICAgIHRoaXMuX2F0dHJpYnV0ZXNbbmFtZV0gPSB2YWx1ZTtcblxuICAgIC8vIEVtaXR0aW5nXG4gICAgdGhpcy5lbWl0KCdhdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgIHR5cGU6ICdzZXQnLFxuICAgICAgYXR0cmlidXRlczogdGhpcy5fYXR0cmlidXRlcyxcbiAgICAgIG5hbWVcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2luZyBhIGZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgZGVzaXJlZCBncmFwaCdzIGF0dHJpYnV0ZSdzIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9ICAgbmFtZSAgICAtIE5hbWUgb2YgdGhlIGF0dHJpYnV0ZS5cbiAgICogQHBhcmFtICB7ZnVuY3Rpb259IHVwZGF0ZXIgLSBGdW5jdGlvbiB1c2UgdG8gdXBkYXRlIHRoZSBhdHRyaWJ1dGUncyB2YWx1ZS5cbiAgICogQHJldHVybiB7R3JhcGh9XG4gICAqL1xuICB1cGRhdGVBdHRyaWJ1dGUobmFtZSwgdXBkYXRlcikge1xuICAgIGlmICh0eXBlb2YgdXBkYXRlciAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLnVwZGF0ZUF0dHJpYnV0ZTogdXBkYXRlciBzaG91bGQgYmUgYSBmdW5jdGlvbi4nXG4gICAgICApO1xuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9hdHRyaWJ1dGVzW25hbWVdO1xuXG4gICAgdGhpcy5fYXR0cmlidXRlc1tuYW1lXSA9IHVwZGF0ZXIodmFsdWUpO1xuXG4gICAgLy8gRW1pdHRpbmdcbiAgICB0aGlzLmVtaXQoJ2F0dHJpYnV0ZXNVcGRhdGVkJywge1xuICAgICAgdHlwZTogJ3NldCcsXG4gICAgICBhdHRyaWJ1dGVzOiB0aGlzLl9hdHRyaWJ1dGVzLFxuICAgICAgbmFtZVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJlbW92aW5nIHRoZSBkZXNpcmVkIGdyYXBoJ3MgYXR0cmlidXRlLlxuICAgKlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9IG5hbWUgIC0gTmFtZSBvZiB0aGUgYXR0cmlidXRlLlxuICAgKiBAcmV0dXJuIHtHcmFwaH1cbiAgICovXG4gIHJlbW92ZUF0dHJpYnV0ZShuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMuX2F0dHJpYnV0ZXNbbmFtZV07XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnYXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICB0eXBlOiAncmVtb3ZlJyxcbiAgICAgIGF0dHJpYnV0ZXM6IHRoaXMuX2F0dHJpYnV0ZXMsXG4gICAgICBuYW1lXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmVwbGFjaW5nIHRoZSBncmFwaCdzIGF0dHJpYnV0ZXMuXG4gICAqXG4gICAqIEBwYXJhbSAge29iamVjdH0gYXR0cmlidXRlcyAtIE5ldyBhdHRyaWJ1dGVzLlxuICAgKiBAcmV0dXJuIHtHcmFwaH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiBnaXZlbiBhdHRyaWJ1dGVzIGFyZSBub3QgYSBwbGFpbiBvYmplY3QuXG4gICAqL1xuICByZXBsYWNlQXR0cmlidXRlcyhhdHRyaWJ1dGVzKSB7XG4gICAgaWYgKCFpc1BsYWluT2JqZWN0KGF0dHJpYnV0ZXMpKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnR3JhcGgucmVwbGFjZUF0dHJpYnV0ZXM6IHByb3ZpZGVkIGF0dHJpYnV0ZXMgYXJlIG5vdCBhIHBsYWluIG9iamVjdC4nXG4gICAgICApO1xuXG4gICAgdGhpcy5fYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnYXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICB0eXBlOiAncmVwbGFjZScsXG4gICAgICBhdHRyaWJ1dGVzOiB0aGlzLl9hdHRyaWJ1dGVzXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgbWVyZ2luZyB0aGUgZ3JhcGgncyBhdHRyaWJ1dGVzLlxuICAgKlxuICAgKiBAcGFyYW0gIHtvYmplY3R9IGF0dHJpYnV0ZXMgLSBBdHRyaWJ1dGVzIHRvIG1lcmdlLlxuICAgKiBAcmV0dXJuIHtHcmFwaH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiBnaXZlbiBhdHRyaWJ1dGVzIGFyZSBub3QgYSBwbGFpbiBvYmplY3QuXG4gICAqL1xuICBtZXJnZUF0dHJpYnV0ZXMoYXR0cmlidXRlcykge1xuICAgIGlmICghaXNQbGFpbk9iamVjdChhdHRyaWJ1dGVzKSlcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLm1lcmdlQXR0cmlidXRlczogcHJvdmlkZWQgYXR0cmlidXRlcyBhcmUgbm90IGEgcGxhaW4gb2JqZWN0LidcbiAgICAgICk7XG5cbiAgICBhc3NpZ24odGhpcy5fYXR0cmlidXRlcywgYXR0cmlidXRlcyk7XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnYXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICB0eXBlOiAnbWVyZ2UnLFxuICAgICAgYXR0cmlidXRlczogdGhpcy5fYXR0cmlidXRlcyxcbiAgICAgIGRhdGE6IGF0dHJpYnV0ZXNcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1cGRhdGluZyB0aGUgZ3JhcGgncyBhdHRyaWJ1dGVzLlxuICAgKlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gdXBkYXRlciAtIEZ1bmN0aW9uIHVzZWQgdG8gdXBkYXRlIHRoZSBhdHRyaWJ1dGVzLlxuICAgKiBAcmV0dXJuIHtHcmFwaH1cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiBnaXZlbiB1cGRhdGVyIGlzIG5vdCBhIGZ1bmN0aW9uLlxuICAgKi9cbiAgdXBkYXRlQXR0cmlidXRlcyh1cGRhdGVyKSB7XG4gICAgaWYgKHR5cGVvZiB1cGRhdGVyICE9PSAnZnVuY3Rpb24nKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnR3JhcGgudXBkYXRlQXR0cmlidXRlczogcHJvdmlkZWQgdXBkYXRlciBpcyBub3QgYSBmdW5jdGlvbi4nXG4gICAgICApO1xuXG4gICAgdGhpcy5fYXR0cmlidXRlcyA9IHVwZGF0ZXIodGhpcy5fYXR0cmlidXRlcyk7XG5cbiAgICAvLyBFbWl0dGluZ1xuICAgIHRoaXMuZW1pdCgnYXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICB0eXBlOiAndXBkYXRlJyxcbiAgICAgIGF0dHJpYnV0ZXM6IHRoaXMuX2F0dHJpYnV0ZXNcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2VkIHRvIHVwZGF0ZSBlYWNoIG5vZGUncyBhdHRyaWJ1dGVzIHVzaW5nIHRoZSBnaXZlbiBmdW5jdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gIHVwZGF0ZXIgLSBVcGRhdGVyIGZ1bmN0aW9uIHRvIHVzZS5cbiAgICogQHBhcmFtIHtvYmplY3R9ICAgIFtoaW50c10gLSBPcHRpb25hbCBoaW50cy5cbiAgICovXG4gIHVwZGF0ZUVhY2hOb2RlQXR0cmlidXRlcyh1cGRhdGVyLCBoaW50cykge1xuICAgIGlmICh0eXBlb2YgdXBkYXRlciAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLnVwZGF0ZUVhY2hOb2RlQXR0cmlidXRlczogZXhwZWN0aW5nIGFuIHVwZGF0ZXIgZnVuY3Rpb24uJ1xuICAgICAgKTtcblxuICAgIGlmIChoaW50cyAmJiAhdmFsaWRhdGVIaW50cyhoaW50cykpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC51cGRhdGVFYWNoTm9kZUF0dHJpYnV0ZXM6IGludmFsaWQgaGludHMuIEV4cGVjdGluZyBhbiBvYmplY3QgaGF2aW5nIHRoZSBmb2xsb3dpbmcgc2hhcGU6IHthdHRyaWJ1dGVzPzogW3N0cmluZ119J1xuICAgICAgKTtcblxuICAgIGNvbnN0IGl0ZXJhdG9yID0gdGhpcy5fbm9kZXMudmFsdWVzKCk7XG5cbiAgICBsZXQgc3RlcCwgbm9kZURhdGE7XG5cbiAgICB3aGlsZSAoKChzdGVwID0gaXRlcmF0b3IubmV4dCgpKSwgc3RlcC5kb25lICE9PSB0cnVlKSkge1xuICAgICAgbm9kZURhdGEgPSBzdGVwLnZhbHVlO1xuICAgICAgbm9kZURhdGEuYXR0cmlidXRlcyA9IHVwZGF0ZXIobm9kZURhdGEua2V5LCBub2RlRGF0YS5hdHRyaWJ1dGVzKTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXQoJ2VhY2hOb2RlQXR0cmlidXRlc1VwZGF0ZWQnLCB7XG4gICAgICBoaW50czogaGludHMgPyBoaW50cyA6IG51bGxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdXNlZCB0byB1cGRhdGUgZWFjaCBlZGdlJ3MgYXR0cmlidXRlcyB1c2luZyB0aGUgZ2l2ZW4gZnVuY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259ICB1cGRhdGVyIC0gVXBkYXRlciBmdW5jdGlvbiB0byB1c2UuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSAgICBbaGludHNdIC0gT3B0aW9uYWwgaGludHMuXG4gICAqL1xuICB1cGRhdGVFYWNoRWRnZUF0dHJpYnV0ZXModXBkYXRlciwgaGludHMpIHtcbiAgICBpZiAodHlwZW9mIHVwZGF0ZXIgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC51cGRhdGVFYWNoRWRnZUF0dHJpYnV0ZXM6IGV4cGVjdGluZyBhbiB1cGRhdGVyIGZ1bmN0aW9uLidcbiAgICAgICk7XG5cbiAgICBpZiAoaGludHMgJiYgIXZhbGlkYXRlSGludHMoaGludHMpKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnR3JhcGgudXBkYXRlRWFjaEVkZ2VBdHRyaWJ1dGVzOiBpbnZhbGlkIGhpbnRzLiBFeHBlY3RpbmcgYW4gb2JqZWN0IGhhdmluZyB0aGUgZm9sbG93aW5nIHNoYXBlOiB7YXR0cmlidXRlcz86IFtzdHJpbmddfSdcbiAgICAgICk7XG5cbiAgICBjb25zdCBpdGVyYXRvciA9IHRoaXMuX2VkZ2VzLnZhbHVlcygpO1xuXG4gICAgbGV0IHN0ZXAsIGVkZ2VEYXRhLCBzb3VyY2VEYXRhLCB0YXJnZXREYXRhO1xuXG4gICAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICAgIGVkZ2VEYXRhID0gc3RlcC52YWx1ZTtcbiAgICAgIHNvdXJjZURhdGEgPSBlZGdlRGF0YS5zb3VyY2U7XG4gICAgICB0YXJnZXREYXRhID0gZWRnZURhdGEudGFyZ2V0O1xuXG4gICAgICBlZGdlRGF0YS5hdHRyaWJ1dGVzID0gdXBkYXRlcihcbiAgICAgICAgZWRnZURhdGEua2V5LFxuICAgICAgICBlZGdlRGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICBzb3VyY2VEYXRhLmtleSxcbiAgICAgICAgdGFyZ2V0RGF0YS5rZXksXG4gICAgICAgIHNvdXJjZURhdGEuYXR0cmlidXRlcyxcbiAgICAgICAgdGFyZ2V0RGF0YS5hdHRyaWJ1dGVzLFxuICAgICAgICBlZGdlRGF0YS51bmRpcmVjdGVkXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdCgnZWFjaEVkZ2VBdHRyaWJ1dGVzVXBkYXRlZCcsIHtcbiAgICAgIGhpbnRzOiBoaW50cyA/IGhpbnRzIDogbnVsbFxuICAgIH0pO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEl0ZXJhdGlvbi1yZWxhdGVkIG1ldGhvZHNcbiAgICoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqL1xuXG4gIC8qKlxuICAgKiBNZXRob2QgaXRlcmF0aW5nIG92ZXIgdGhlIGdyYXBoJ3MgYWRqYWNlbmN5IHVzaW5nIHRoZSBnaXZlbiBjYWxsYmFjay5cbiAgICpcbiAgICogQHBhcmFtICB7ZnVuY3Rpb259ICBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAgICovXG4gIGZvckVhY2hBZGphY2VuY3lFbnRyeShjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC5mb3JFYWNoQWRqYWNlbmN5RW50cnk6IGV4cGVjdGluZyBhIGNhbGxiYWNrLidcbiAgICAgICk7XG5cbiAgICBpZiAodGhpcy5tdWx0aSkgZm9yRWFjaEFkamFjZW5jeU11bHRpKGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRoaXMsIGNhbGxiYWNrKTtcbiAgICBlbHNlIGZvckVhY2hBZGphY2VuY3lTaW1wbGUoZmFsc2UsIGZhbHNlLCBmYWxzZSwgdGhpcywgY2FsbGJhY2spO1xuICB9XG4gIGZvckVhY2hBZGphY2VuY3lFbnRyeVdpdGhPcnBoYW5zKGNhbGxiYWNrKSB7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLmZvckVhY2hBZGphY2VuY3lFbnRyeVdpdGhPcnBoYW5zOiBleHBlY3RpbmcgYSBjYWxsYmFjay4nXG4gICAgICApO1xuXG4gICAgaWYgKHRoaXMubXVsdGkpIGZvckVhY2hBZGphY2VuY3lNdWx0aShmYWxzZSwgZmFsc2UsIHRydWUsIHRoaXMsIGNhbGxiYWNrKTtcbiAgICBlbHNlIGZvckVhY2hBZGphY2VuY3lTaW1wbGUoZmFsc2UsIGZhbHNlLCB0cnVlLCB0aGlzLCBjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGl0ZXJhdGluZyBvdmVyIHRoZSBncmFwaCdzIGFzc3ltZXRyaWMgYWRqYWNlbmN5IHVzaW5nIHRoZSBnaXZlbiBjYWxsYmFjay5cbiAgICpcbiAgICogQHBhcmFtICB7ZnVuY3Rpb259ICBjYWxsYmFjayAtIENhbGxiYWNrIHRvIHVzZS5cbiAgICovXG4gIGZvckVhY2hBc3N5bWV0cmljQWRqYWNlbmN5RW50cnkoY2FsbGJhY2spIHtcbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnR3JhcGguZm9yRWFjaEFzc3ltZXRyaWNBZGphY2VuY3lFbnRyeTogZXhwZWN0aW5nIGEgY2FsbGJhY2suJ1xuICAgICAgKTtcblxuICAgIGlmICh0aGlzLm11bHRpKSBmb3JFYWNoQWRqYWNlbmN5TXVsdGkoZmFsc2UsIHRydWUsIGZhbHNlLCB0aGlzLCBjYWxsYmFjayk7XG4gICAgZWxzZSBmb3JFYWNoQWRqYWNlbmN5U2ltcGxlKGZhbHNlLCB0cnVlLCBmYWxzZSwgdGhpcywgY2FsbGJhY2spO1xuICB9XG4gIGZvckVhY2hBc3N5bWV0cmljQWRqYWNlbmN5RW50cnlXaXRoT3JwaGFucyhjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC5mb3JFYWNoQXNzeW1ldHJpY0FkamFjZW5jeUVudHJ5V2l0aE9ycGhhbnM6IGV4cGVjdGluZyBhIGNhbGxiYWNrLidcbiAgICAgICk7XG5cbiAgICBpZiAodGhpcy5tdWx0aSkgZm9yRWFjaEFkamFjZW5jeU11bHRpKGZhbHNlLCB0cnVlLCB0cnVlLCB0aGlzLCBjYWxsYmFjayk7XG4gICAgZWxzZSBmb3JFYWNoQWRqYWNlbmN5U2ltcGxlKGZhbHNlLCB0cnVlLCB0cnVlLCB0aGlzLCBjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyB0aGUgbGlzdCBvZiB0aGUgZ3JhcGgncyBub2Rlcy5cbiAgICpcbiAgICogQHJldHVybiB7YXJyYXl9IC0gVGhlIG5vZGVzLlxuICAgKi9cbiAgbm9kZXMoKSB7XG4gICAgaWYgKHR5cGVvZiBBcnJheS5mcm9tID09PSAnZnVuY3Rpb24nKSByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9ub2Rlcy5rZXlzKCkpO1xuXG4gICAgcmV0dXJuIHRha2UodGhpcy5fbm9kZXMua2V5cygpLCB0aGlzLl9ub2Rlcy5zaXplKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgaXRlcmF0aW5nIG92ZXIgdGhlIGdyYXBoJ3Mgbm9kZXMgdXNpbmcgdGhlIGdpdmVuIGNhbGxiYWNrLlxuICAgKlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gIGNhbGxiYWNrIC0gQ2FsbGJhY2sgKGtleSwgYXR0cmlidXRlcywgaW5kZXgpLlxuICAgKi9cbiAgZm9yRWFjaE5vZGUoY2FsbGJhY2spIHtcbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnR3JhcGguZm9yRWFjaE5vZGU6IGV4cGVjdGluZyBhIGNhbGxiYWNrLidcbiAgICAgICk7XG5cbiAgICBjb25zdCBpdGVyYXRvciA9IHRoaXMuX25vZGVzLnZhbHVlcygpO1xuXG4gICAgbGV0IHN0ZXAsIG5vZGVEYXRhO1xuXG4gICAgd2hpbGUgKCgoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSksIHN0ZXAuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICAgIG5vZGVEYXRhID0gc3RlcC52YWx1ZTtcbiAgICAgIGNhbGxiYWNrKG5vZGVEYXRhLmtleSwgbm9kZURhdGEuYXR0cmlidXRlcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBpdGVyYXRpbmcgYXR0ZW1wdGluZyB0byBmaW5kIGEgbm9kZSBtYXRjaGluZyB0aGUgZ2l2ZW4gcHJlZGljYXRlXG4gICAqIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gIGNhbGxiYWNrIC0gQ2FsbGJhY2sgKGtleSwgYXR0cmlidXRlcykuXG4gICAqL1xuICBmaW5kTm9kZShjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC5maW5kTm9kZTogZXhwZWN0aW5nIGEgY2FsbGJhY2suJ1xuICAgICAgKTtcblxuICAgIGNvbnN0IGl0ZXJhdG9yID0gdGhpcy5fbm9kZXMudmFsdWVzKCk7XG5cbiAgICBsZXQgc3RlcCwgbm9kZURhdGE7XG5cbiAgICB3aGlsZSAoKChzdGVwID0gaXRlcmF0b3IubmV4dCgpKSwgc3RlcC5kb25lICE9PSB0cnVlKSkge1xuICAgICAgbm9kZURhdGEgPSBzdGVwLnZhbHVlO1xuXG4gICAgICBpZiAoY2FsbGJhY2sobm9kZURhdGEua2V5LCBub2RlRGF0YS5hdHRyaWJ1dGVzKSkgcmV0dXJuIG5vZGVEYXRhLmtleTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIG1hcHBpbmcgbm9kZXMuXG4gICAqXG4gICAqIEBwYXJhbSAge2Z1bmN0aW9ufSAgY2FsbGJhY2sgLSBDYWxsYmFjayAoa2V5LCBhdHRyaWJ1dGVzKS5cbiAgICovXG4gIG1hcE5vZGVzKGNhbGxiYWNrKSB7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLm1hcE5vZGU6IGV4cGVjdGluZyBhIGNhbGxiYWNrLidcbiAgICAgICk7XG5cbiAgICBjb25zdCBpdGVyYXRvciA9IHRoaXMuX25vZGVzLnZhbHVlcygpO1xuXG4gICAgbGV0IHN0ZXAsIG5vZGVEYXRhO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5KHRoaXMub3JkZXIpO1xuICAgIGxldCBpID0gMDtcblxuICAgIHdoaWxlICgoKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLCBzdGVwLmRvbmUgIT09IHRydWUpKSB7XG4gICAgICBub2RlRGF0YSA9IHN0ZXAudmFsdWU7XG4gICAgICByZXN1bHRbaSsrXSA9IGNhbGxiYWNrKG5vZGVEYXRhLmtleSwgbm9kZURhdGEuYXR0cmlidXRlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIHdoZXRoZXIgc29tZSBub2RlIHZlcmlmeSB0aGUgZ2l2ZW4gcHJlZGljYXRlLlxuICAgKlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gIGNhbGxiYWNrIC0gQ2FsbGJhY2sgKGtleSwgYXR0cmlidXRlcykuXG4gICAqL1xuICBzb21lTm9kZShjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC5zb21lTm9kZTogZXhwZWN0aW5nIGEgY2FsbGJhY2suJ1xuICAgICAgKTtcblxuICAgIGNvbnN0IGl0ZXJhdG9yID0gdGhpcy5fbm9kZXMudmFsdWVzKCk7XG5cbiAgICBsZXQgc3RlcCwgbm9kZURhdGE7XG5cbiAgICB3aGlsZSAoKChzdGVwID0gaXRlcmF0b3IubmV4dCgpKSwgc3RlcC5kb25lICE9PSB0cnVlKSkge1xuICAgICAgbm9kZURhdGEgPSBzdGVwLnZhbHVlO1xuXG4gICAgICBpZiAoY2FsbGJhY2sobm9kZURhdGEua2V5LCBub2RlRGF0YS5hdHRyaWJ1dGVzKSkgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgd2hldGhlciBhbGwgbm9kZSB2ZXJpZnkgdGhlIGdpdmVuIHByZWRpY2F0ZS5cbiAgICpcbiAgICogQHBhcmFtICB7ZnVuY3Rpb259ICBjYWxsYmFjayAtIENhbGxiYWNrIChrZXksIGF0dHJpYnV0ZXMpLlxuICAgKi9cbiAgZXZlcnlOb2RlKGNhbGxiYWNrKSB7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLmV2ZXJ5Tm9kZTogZXhwZWN0aW5nIGEgY2FsbGJhY2suJ1xuICAgICAgKTtcblxuICAgIGNvbnN0IGl0ZXJhdG9yID0gdGhpcy5fbm9kZXMudmFsdWVzKCk7XG5cbiAgICBsZXQgc3RlcCwgbm9kZURhdGE7XG5cbiAgICB3aGlsZSAoKChzdGVwID0gaXRlcmF0b3IubmV4dCgpKSwgc3RlcC5kb25lICE9PSB0cnVlKSkge1xuICAgICAgbm9kZURhdGEgPSBzdGVwLnZhbHVlO1xuXG4gICAgICBpZiAoIWNhbGxiYWNrKG5vZGVEYXRhLmtleSwgbm9kZURhdGEuYXR0cmlidXRlcykpIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgZmlsdGVyaW5nIG5vZGVzLlxuICAgKlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gIGNhbGxiYWNrIC0gQ2FsbGJhY2sgKGtleSwgYXR0cmlidXRlcykuXG4gICAqL1xuICBmaWx0ZXJOb2RlcyhjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC5maWx0ZXJOb2RlczogZXhwZWN0aW5nIGEgY2FsbGJhY2suJ1xuICAgICAgKTtcblxuICAgIGNvbnN0IGl0ZXJhdG9yID0gdGhpcy5fbm9kZXMudmFsdWVzKCk7XG5cbiAgICBsZXQgc3RlcCwgbm9kZURhdGE7XG5cbiAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgIHdoaWxlICgoKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLCBzdGVwLmRvbmUgIT09IHRydWUpKSB7XG4gICAgICBub2RlRGF0YSA9IHN0ZXAudmFsdWU7XG5cbiAgICAgIGlmIChjYWxsYmFjayhub2RlRGF0YS5rZXksIG5vZGVEYXRhLmF0dHJpYnV0ZXMpKVxuICAgICAgICByZXN1bHQucHVzaChub2RlRGF0YS5rZXkpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJlZHVjaW5nIG5vZGVzLlxuICAgKlxuICAgKiBAcGFyYW0gIHtmdW5jdGlvbn0gIGNhbGxiYWNrIC0gQ2FsbGJhY2sgKGFjY3VtdWxhdG9yLCBrZXksIGF0dHJpYnV0ZXMpLlxuICAgKi9cbiAgcmVkdWNlTm9kZXMoY2FsbGJhY2ssIGluaXRpYWxWYWx1ZSkge1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdHcmFwaC5yZWR1Y2VOb2RlczogZXhwZWN0aW5nIGEgY2FsbGJhY2suJ1xuICAgICAgKTtcblxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMilcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLnJlZHVjZU5vZGVzOiBtaXNzaW5nIGluaXRpYWwgdmFsdWUuIFlvdSBtdXN0IHByb3ZpZGUgaXQgYmVjYXVzZSB0aGUgY2FsbGJhY2sgdGFrZXMgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCBhbmQgd2UgY2Fubm90IGluZmVyIHRoZSBpbml0aWFsIHZhbHVlIGZyb20gdGhlIGZpcnN0IGl0ZXJhdGlvbiwgYXMgeW91IGNvdWxkIHdpdGggYSBzaW1wbGUgYXJyYXkuJ1xuICAgICAgKTtcblxuICAgIGxldCBhY2N1bXVsYXRvciA9IGluaXRpYWxWYWx1ZTtcblxuICAgIGNvbnN0IGl0ZXJhdG9yID0gdGhpcy5fbm9kZXMudmFsdWVzKCk7XG5cbiAgICBsZXQgc3RlcCwgbm9kZURhdGE7XG5cbiAgICB3aGlsZSAoKChzdGVwID0gaXRlcmF0b3IubmV4dCgpKSwgc3RlcC5kb25lICE9PSB0cnVlKSkge1xuICAgICAgbm9kZURhdGEgPSBzdGVwLnZhbHVlO1xuICAgICAgYWNjdW11bGF0b3IgPSBjYWxsYmFjayhhY2N1bXVsYXRvciwgbm9kZURhdGEua2V5LCBub2RlRGF0YS5hdHRyaWJ1dGVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyBhbiBpdGVyYXRvciBvdmVyIHRoZSBncmFwaCdzIG5vZGUgZW50cmllcy5cbiAgICpcbiAgICogQHJldHVybiB7SXRlcmF0b3J9XG4gICAqL1xuICBub2RlRW50cmllcygpIHtcbiAgICBjb25zdCBpdGVyYXRvciA9IHRoaXMuX25vZGVzLnZhbHVlcygpO1xuXG4gICAgcmV0dXJuIG5ldyBJdGVyYXRvcigoKSA9PiB7XG4gICAgICBjb25zdCBzdGVwID0gaXRlcmF0b3IubmV4dCgpO1xuXG4gICAgICBpZiAoc3RlcC5kb25lKSByZXR1cm4gc3RlcDtcblxuICAgICAgY29uc3QgZGF0YSA9IHN0ZXAudmFsdWU7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlOiB7bm9kZTogZGF0YS5rZXksIGF0dHJpYnV0ZXM6IGRhdGEuYXR0cmlidXRlc30sXG4gICAgICAgIGRvbmU6IGZhbHNlXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIFNlcmlhbGl6YXRpb25cbiAgICoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqL1xuXG4gIC8qKlxuICAgKiBNZXRob2QgZXhwb3J0aW5nIHRoZSB0YXJnZXQgbm9kZS5cbiAgICpcbiAgICogQHBhcmFtICB7YW55fSAgIG5vZGUgLSBUYXJnZXQgbm9kZS5cbiAgICogQHJldHVybiB7YXJyYXl9ICAgICAgLSBUaGUgc2VyaWFsaXplZCBub2RlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBXaWxsIHRocm93IGlmIHRoZSBub2RlIGlzIG5vdCBmb3VuZC5cbiAgICovXG4gIGV4cG9ydE5vZGUobm9kZSkge1xuICAgIG5vZGUgPSAnJyArIG5vZGU7XG5cbiAgICBjb25zdCBkYXRhID0gdGhpcy5fbm9kZXMuZ2V0KG5vZGUpO1xuXG4gICAgaWYgKCFkYXRhKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kR3JhcGhFcnJvcihcbiAgICAgICAgYEdyYXBoLmV4cG9ydE5vZGU6IGNvdWxkIG5vdCBmaW5kIHRoZSBcIiR7bm9kZX1cIiBub2RlIGluIHRoZSBncmFwaC5gXG4gICAgICApO1xuXG4gICAgcmV0dXJuIHNlcmlhbGl6ZU5vZGUobm9kZSwgZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGV4cG9ydGluZyB0aGUgdGFyZ2V0IGVkZ2UuXG4gICAqXG4gICAqIEBwYXJhbSAge2FueX0gICBlZGdlIC0gVGFyZ2V0IGVkZ2UuXG4gICAqIEByZXR1cm4ge2FycmF5fSAgICAgIC0gVGhlIHNlcmlhbGl6ZWQgZWRnZS5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IC0gV2lsbCB0aHJvdyBpZiB0aGUgZWRnZSBpcyBub3QgZm91bmQuXG4gICAqL1xuICBleHBvcnRFZGdlKGVkZ2UpIHtcbiAgICBlZGdlID0gJycgKyBlZGdlO1xuXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuX2VkZ2VzLmdldChlZGdlKTtcblxuICAgIGlmICghZGF0YSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEdyYXBoRXJyb3IoXG4gICAgICAgIGBHcmFwaC5leHBvcnRFZGdlOiBjb3VsZCBub3QgZmluZCB0aGUgXCIke2VkZ2V9XCIgZWRnZSBpbiB0aGUgZ3JhcGguYFxuICAgICAgKTtcblxuICAgIHJldHVybiBzZXJpYWxpemVFZGdlKGVkZ2UsIGRhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2VkIHRvIGV4cG9ydCB0aGUgd2hvbGUgZ3JhcGguXG4gICAqXG4gICAqIEByZXR1cm4ge29iamVjdH0gLSBUaGUgc2VyaWFsaXplZCBncmFwaC5cbiAgICovXG4gIGV4cG9ydCgpIHtcbiAgICBjb25zdCBub2RlcyA9IG5ldyBBcnJheSh0aGlzLl9ub2Rlcy5zaXplKTtcblxuICAgIGxldCBpID0gMDtcblxuICAgIHRoaXMuX25vZGVzLmZvckVhY2goKGRhdGEsIGtleSkgPT4ge1xuICAgICAgbm9kZXNbaSsrXSA9IHNlcmlhbGl6ZU5vZGUoa2V5LCBkYXRhKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGVkZ2VzID0gbmV3IEFycmF5KHRoaXMuX2VkZ2VzLnNpemUpO1xuXG4gICAgaSA9IDA7XG5cbiAgICB0aGlzLl9lZGdlcy5mb3JFYWNoKChkYXRhLCBrZXkpID0+IHtcbiAgICAgIGVkZ2VzW2krK10gPSBzZXJpYWxpemVFZGdlKGtleSwgZGF0YSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRlczogdGhpcy5nZXRBdHRyaWJ1dGVzKCksXG4gICAgICBub2RlcyxcbiAgICAgIGVkZ2VzLFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgIG11bHRpOiB0aGlzLm11bHRpLFxuICAgICAgICBhbGxvd1NlbGZMb29wczogdGhpcy5hbGxvd1NlbGZMb29wc1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgdG8gaW1wb3J0IGEgc2VyaWFsaXplZCBub2RlLlxuICAgKlxuICAgKiBAcGFyYW0gIHtvYmplY3R9IGRhdGEgICAtIFRoZSBzZXJpYWxpemVkIG5vZGUuXG4gICAqIEBwYXJhbSAge2Jvb2xlYW59IG1lcmdlIC0gV2hldGhlciB0byBtZXJnZSB0aGUgZ2l2ZW4gbm9kZS5cbiAgICogQHJldHVybiB7R3JhcGh9ICAgICAgICAgLSBSZXR1cm5zIGl0c2VsZiBmb3IgY2hhaW5pbmcuXG4gICAqL1xuICBpbXBvcnROb2RlKGRhdGEsIG1lcmdlID0gZmFsc2UpIHtcbiAgICAvLyBWYWxpZGF0aW5nXG4gICAgY29uc3QgZXJyb3IgPSB2YWxpZGF0ZVNlcmlhbGl6ZWROb2RlKGRhdGEpO1xuXG4gICAgaWYgKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgPT09ICdub3Qtb2JqZWN0JylcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAgICdHcmFwaC5pbXBvcnROb2RlOiBpbnZhbGlkIHNlcmlhbGl6ZWQgbm9kZS4gQSBzZXJpYWxpemVkIG5vZGUgc2hvdWxkIGJlIGEgcGxhaW4gb2JqZWN0IHdpdGggYXQgbGVhc3QgYSBcImtleVwiIHByb3BlcnR5LidcbiAgICAgICAgKTtcbiAgICAgIGlmIChlcnJvciA9PT0gJ25vLWtleScpXG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgICAnR3JhcGguaW1wb3J0Tm9kZTogbm8ga2V5IHByb3ZpZGVkLidcbiAgICAgICAgKTtcbiAgICAgIGlmIChlcnJvciA9PT0gJ2ludmFsaWQtYXR0cmlidXRlcycpXG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgICAnR3JhcGguaW1wb3J0Tm9kZTogaW52YWxpZCBhdHRyaWJ1dGVzLiBBdHRyaWJ1dGVzIHNob3VsZCBiZSBhIHBsYWluIG9iamVjdCwgbnVsbCBvciBvbWl0dGVkLidcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBBZGRpbmcgdGhlIG5vZGVcbiAgICBjb25zdCB7a2V5LCBhdHRyaWJ1dGVzID0ge319ID0gZGF0YTtcblxuICAgIGlmIChtZXJnZSkgdGhpcy5tZXJnZU5vZGUoa2V5LCBhdHRyaWJ1dGVzKTtcbiAgICBlbHNlIHRoaXMuYWRkTm9kZShrZXksIGF0dHJpYnV0ZXMpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHVzZWQgdG8gaW1wb3J0IGEgc2VyaWFsaXplZCBlZGdlLlxuICAgKlxuICAgKiBAcGFyYW0gIHtvYmplY3R9ICBkYXRhICAtIFRoZSBzZXJpYWxpemVkIGVkZ2UuXG4gICAqIEBwYXJhbSAge2Jvb2xlYW59IG1lcmdlIC0gV2hldGhlciB0byBtZXJnZSB0aGUgZ2l2ZW4gZWRnZS5cbiAgICogQHJldHVybiB7R3JhcGh9ICAgICAgICAgLSBSZXR1cm5zIGl0c2VsZiBmb3IgY2hhaW5pbmcuXG4gICAqL1xuICBpbXBvcnRFZGdlKGRhdGEsIG1lcmdlID0gZmFsc2UpIHtcbiAgICAvLyBWYWxpZGF0aW5nXG4gICAgY29uc3QgZXJyb3IgPSB2YWxpZGF0ZVNlcmlhbGl6ZWRFZGdlKGRhdGEpO1xuXG4gICAgaWYgKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgPT09ICdub3Qtb2JqZWN0JylcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAgICdHcmFwaC5pbXBvcnRFZGdlOiBpbnZhbGlkIHNlcmlhbGl6ZWQgZWRnZS4gQSBzZXJpYWxpemVkIGVkZ2Ugc2hvdWxkIGJlIGEgcGxhaW4gb2JqZWN0IHdpdGggYXQgbGVhc3QgYSBcInNvdXJjZVwiICYgXCJ0YXJnZXRcIiBwcm9wZXJ0eS4nXG4gICAgICAgICk7XG4gICAgICBpZiAoZXJyb3IgPT09ICduby1zb3VyY2UnKVxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICAgJ0dyYXBoLmltcG9ydEVkZ2U6IG1pc3Npbmcgc291Y2UuJ1xuICAgICAgICApO1xuICAgICAgaWYgKGVycm9yID09PSAnbm8tdGFyZ2V0JylcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAgICdHcmFwaC5pbXBvcnRFZGdlOiBtaXNzaW5nIHRhcmdldC4nXG4gICAgICAgICk7XG4gICAgICBpZiAoZXJyb3IgPT09ICdpbnZhbGlkLWF0dHJpYnV0ZXMnKVxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICAgJ0dyYXBoLmltcG9ydEVkZ2U6IGludmFsaWQgYXR0cmlidXRlcy4gQXR0cmlidXRlcyBzaG91bGQgYmUgYSBwbGFpbiBvYmplY3QsIG51bGwgb3Igb21pdHRlZC4nXG4gICAgICAgICk7XG4gICAgICBpZiAoZXJyb3IgPT09ICdpbnZhbGlkLXVuZGlyZWN0ZWQnKVxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICAgJ0dyYXBoLmltcG9ydEVkZ2U6IGludmFsaWQgdW5kaXJlY3RlZC4gVW5kaXJlY3RlZCBzaG91bGQgYmUgYm9vbGVhbiBvciBvbWl0dGVkLidcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBBZGRpbmcgdGhlIGVkZ2VcbiAgICBjb25zdCB7c291cmNlLCB0YXJnZXQsIGF0dHJpYnV0ZXMgPSB7fSwgdW5kaXJlY3RlZCA9IGZhbHNlfSA9IGRhdGE7XG5cbiAgICBsZXQgbWV0aG9kO1xuXG4gICAgaWYgKCdrZXknIGluIGRhdGEpIHtcbiAgICAgIG1ldGhvZCA9IG1lcmdlXG4gICAgICAgID8gdW5kaXJlY3RlZFxuICAgICAgICAgID8gdGhpcy5tZXJnZVVuZGlyZWN0ZWRFZGdlV2l0aEtleVxuICAgICAgICAgIDogdGhpcy5tZXJnZURpcmVjdGVkRWRnZVdpdGhLZXlcbiAgICAgICAgOiB1bmRpcmVjdGVkXG4gICAgICAgID8gdGhpcy5hZGRVbmRpcmVjdGVkRWRnZVdpdGhLZXlcbiAgICAgICAgOiB0aGlzLmFkZERpcmVjdGVkRWRnZVdpdGhLZXk7XG5cbiAgICAgIG1ldGhvZC5jYWxsKHRoaXMsIGRhdGEua2V5LCBzb3VyY2UsIHRhcmdldCwgYXR0cmlidXRlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1ldGhvZCA9IG1lcmdlXG4gICAgICAgID8gdW5kaXJlY3RlZFxuICAgICAgICAgID8gdGhpcy5tZXJnZVVuZGlyZWN0ZWRFZGdlXG4gICAgICAgICAgOiB0aGlzLm1lcmdlRGlyZWN0ZWRFZGdlXG4gICAgICAgIDogdW5kaXJlY3RlZFxuICAgICAgICA/IHRoaXMuYWRkVW5kaXJlY3RlZEVkZ2VcbiAgICAgICAgOiB0aGlzLmFkZERpcmVjdGVkRWRnZTtcblxuICAgICAgbWV0aG9kLmNhbGwodGhpcywgc291cmNlLCB0YXJnZXQsIGF0dHJpYnV0ZXMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2VkIHRvIGltcG9ydCBhIHNlcmlhbGl6ZWQgZ3JhcGguXG4gICAqXG4gICAqIEBwYXJhbSAge29iamVjdHxHcmFwaH0gZGF0YSAgLSBUaGUgc2VyaWFsaXplZCBncmFwaC5cbiAgICogQHBhcmFtICB7Ym9vbGVhbn0gICAgICBtZXJnZSAtIFdoZXRoZXIgdG8gbWVyZ2UgZGF0YS5cbiAgICogQHJldHVybiB7R3JhcGh9ICAgICAgICAgICAgICAtIFJldHVybnMgaXRzZWxmIGZvciBjaGFpbmluZy5cbiAgICovXG4gIGltcG9ydChkYXRhLCBtZXJnZSA9IGZhbHNlKSB7XG4gICAgLy8gSW1wb3J0aW5nIGEgR3JhcGggaW5zdGFuY2VcbiAgICBpZiAoaXNHcmFwaChkYXRhKSkge1xuICAgICAgdGhpcy5pbXBvcnQoZGF0YS5leHBvcnQoKSwgbWVyZ2UpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gSW1wb3J0aW5nIGEgc2VyaWFsaXplZCBncmFwaFxuICAgIGlmICghaXNQbGFpbk9iamVjdChkYXRhKSlcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ0dyYXBoLmltcG9ydDogaW52YWxpZCBhcmd1bWVudC4gRXhwZWN0aW5nIGEgc2VyaWFsaXplZCBncmFwaCBvciwgYWx0ZXJuYXRpdmVseSwgYSBHcmFwaCBpbnN0YW5jZS4nXG4gICAgICApO1xuXG4gICAgaWYgKGRhdGEuYXR0cmlidXRlcykge1xuICAgICAgaWYgKCFpc1BsYWluT2JqZWN0KGRhdGEuYXR0cmlidXRlcykpXG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgICAnR3JhcGguaW1wb3J0OiBpbnZhbGlkIGF0dHJpYnV0ZXMuIEV4cGVjdGluZyBhIHBsYWluIG9iamVjdC4nXG4gICAgICAgICk7XG5cbiAgICAgIGlmIChtZXJnZSkgdGhpcy5tZXJnZUF0dHJpYnV0ZXMoZGF0YS5hdHRyaWJ1dGVzKTtcbiAgICAgIGVsc2UgdGhpcy5yZXBsYWNlQXR0cmlidXRlcyhkYXRhLmF0dHJpYnV0ZXMpO1xuICAgIH1cblxuICAgIGxldCBpLCBsLCBsaXN0O1xuXG4gICAgaWYgKGRhdGEubm9kZXMpIHtcbiAgICAgIGxpc3QgPSBkYXRhLm5vZGVzO1xuXG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkobGlzdCkpXG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgICAnR3JhcGguaW1wb3J0OiBpbnZhbGlkIG5vZGVzLiBFeHBlY3RpbmcgYW4gYXJyYXkuJ1xuICAgICAgICApO1xuXG4gICAgICBmb3IgKGkgPSAwLCBsID0gbGlzdC5sZW5ndGg7IGkgPCBsOyBpKyspIHRoaXMuaW1wb3J0Tm9kZShsaXN0W2ldLCBtZXJnZSk7XG4gICAgfVxuXG4gICAgaWYgKGRhdGEuZWRnZXMpIHtcbiAgICAgIGxpc3QgPSBkYXRhLmVkZ2VzO1xuXG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkobGlzdCkpXG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgICAnR3JhcGguaW1wb3J0OiBpbnZhbGlkIGVkZ2VzLiBFeHBlY3RpbmcgYW4gYXJyYXkuJ1xuICAgICAgICApO1xuXG4gICAgICBmb3IgKGkgPSAwLCBsID0gbGlzdC5sZW5ndGg7IGkgPCBsOyBpKyspIHRoaXMuaW1wb3J0RWRnZShsaXN0W2ldLCBtZXJnZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogVXRpbHNcbiAgICoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqL1xuXG4gIC8qKlxuICAgKiBNZXRob2QgcmV0dXJuaW5nIGEgbnVsbCBjb3B5IG9mIHRoZSBncmFwaCwgaS5lLiBhIGdyYXBoIHdpdGhvdXQgbm9kZXNcbiAgICogJiBlZGdlcyBidXQgd2l0aCB0aGUgZXhhY3Qgc2FtZSBvcHRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gIHtvYmplY3R9IG9wdGlvbnMgLSBPcHRpb25zIHRvIG1lcmdlIHdpdGggdGhlIGN1cnJlbnQgb25lcy5cbiAgICogQHJldHVybiB7R3JhcGh9ICAgICAgICAgIC0gVGhlIG51bGwgY29weS5cbiAgICovXG4gIG51bGxDb3B5KG9wdGlvbnMpIHtcbiAgICBjb25zdCBncmFwaCA9IG5ldyBHcmFwaChhc3NpZ24oe30sIHRoaXMuX29wdGlvbnMsIG9wdGlvbnMpKTtcbiAgICBncmFwaC5yZXBsYWNlQXR0cmlidXRlcyhhc3NpZ24oe30sIHRoaXMuZ2V0QXR0cmlidXRlcygpKSk7XG4gICAgcmV0dXJuIGdyYXBoO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCByZXR1cm5pbmcgYW4gZW1wdHkgY29weSBvZiB0aGUgZ3JhcGgsIGkuZS4gYSBncmFwaCB3aXRob3V0IGVkZ2VzIGJ1dFxuICAgKiB3aXRoIHRoZSBleGFjdCBzYW1lIG9wdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSAge29iamVjdH0gb3B0aW9ucyAtIE9wdGlvbnMgdG8gbWVyZ2Ugd2l0aCB0aGUgY3VycmVudCBvbmVzLlxuICAgKiBAcmV0dXJuIHtHcmFwaH0gICAgICAgICAgLSBUaGUgZW1wdHkgY29weS5cbiAgICovXG4gIGVtcHR5Q29weShvcHRpb25zKSB7XG4gICAgY29uc3QgZ3JhcGggPSB0aGlzLm51bGxDb3B5KG9wdGlvbnMpO1xuXG4gICAgdGhpcy5fbm9kZXMuZm9yRWFjaCgobm9kZURhdGEsIGtleSkgPT4ge1xuICAgICAgY29uc3QgYXR0cmlidXRlcyA9IGFzc2lnbih7fSwgbm9kZURhdGEuYXR0cmlidXRlcyk7XG5cbiAgICAgIC8vIE5PVEU6IG5vIG5lZWQgdG8gZW1pdCBldmVudHMgc2luY2UgdXNlciBjYW5ub3QgYWNjZXNzIHRoZSBpbnN0YW5jZSB5ZXRcbiAgICAgIG5vZGVEYXRhID0gbmV3IGdyYXBoLk5vZGVEYXRhQ2xhc3Moa2V5LCBhdHRyaWJ1dGVzKTtcbiAgICAgIGdyYXBoLl9ub2Rlcy5zZXQoa2V5LCBub2RlRGF0YSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ3JhcGg7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyBhbiBleGFjdCBjb3B5IG9mIHRoZSBncmFwaC5cbiAgICpcbiAgICogQHJldHVybiB7R3JhcGh9IC0gVGhlIGNvcHkuXG4gICAqL1xuICBjb3B5KCkge1xuICAgIGNvbnN0IGdyYXBoID0gdGhpcy5lbXB0eUNvcHkoKTtcblxuICAgIGNvbnN0IGl0ZXJhdG9yID0gdGhpcy5fZWRnZXMudmFsdWVzKCk7XG5cbiAgICBsZXQgc3RlcCwgZWRnZURhdGE7XG5cbiAgICB3aGlsZSAoKChzdGVwID0gaXRlcmF0b3IubmV4dCgpKSwgc3RlcC5kb25lICE9PSB0cnVlKSkge1xuICAgICAgZWRnZURhdGEgPSBzdGVwLnZhbHVlO1xuXG4gICAgICAvLyBOT1RFOiBubyBuZWVkIHRvIGVtaXQgZXZlbnRzIHNpbmNlIHVzZXIgY2Fubm90IGFjY2VzcyB0aGUgaW5zdGFuY2UgeWV0XG4gICAgICBhZGRFZGdlKFxuICAgICAgICBncmFwaCxcbiAgICAgICAgJ2NvcHknLFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgZWRnZURhdGEudW5kaXJlY3RlZCxcbiAgICAgICAgZWRnZURhdGEua2V5LFxuICAgICAgICBlZGdlRGF0YS5zb3VyY2Uua2V5LFxuICAgICAgICBlZGdlRGF0YS50YXJnZXQua2V5LFxuICAgICAgICBhc3NpZ24oe30sIGVkZ2VEYXRhLmF0dHJpYnV0ZXMpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBncmFwaDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdXBncmFkaW5nIHRoZSBncmFwaCB0byBhIG1peGVkIG9uZS5cbiAgICpcbiAgICogQHJldHVybiB7R3JhcGh9IC0gVGhlIGNvcHkuXG4gICAqL1xuICB1cGdyYWRlVG9NaXhlZCgpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnbWl4ZWQnKSByZXR1cm4gdGhpcztcblxuICAgIC8vIFVwZ3JhZGluZyBub2RlIGRhdGE6XG4gICAgLy8gTk9URTogbWF5YmUgdGhpcyBjb3VsZCBsZWFkIHRvIHNvbWUgZGUtb3B0aW1pemF0aW9uIGJ5IHVzdWFsXG4gICAgLy8gSmF2YVNjcmlwdCBlbmdpbmVzIGJ1dCBJIGNhbm5vdCBiZSBzdXJlIG9mIGl0LiBBbm90aGVyIHNvbHV0aW9uXG4gICAgLy8gd291bGQgYmUgdG8gcmVpbnN0YW50aWF0ZSB0aGUgY2xhc3NlcyBidXQgdGhpcyBzdXJlbHkgaGFzIGEgcGVyZm9ybWFuY2VcbiAgICAvLyBhbmQgbWVtb3J5IGltcGFjdC5cbiAgICB0aGlzLl9ub2Rlcy5mb3JFYWNoKGRhdGEgPT4gZGF0YS51cGdyYWRlVG9NaXhlZCgpKTtcblxuICAgIC8vIE11dGF0aW5nIHRoZSBvcHRpb25zICYgdGhlIGluc3RhbmNlXG4gICAgdGhpcy5fb3B0aW9ucy50eXBlID0gJ21peGVkJztcbiAgICByZWFkT25seVByb3BlcnR5KHRoaXMsICd0eXBlJywgdGhpcy5fb3B0aW9ucy50eXBlKTtcbiAgICBwcml2YXRlUHJvcGVydHkodGhpcywgJ05vZGVEYXRhQ2xhc3MnLCBNaXhlZE5vZGVEYXRhKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1cGdyYWRpbmcgdGhlIGdyYXBoIHRvIGEgbXVsdGkgb25lLlxuICAgKlxuICAgKiBAcmV0dXJuIHtHcmFwaH0gLSBUaGUgY29weS5cbiAgICovXG4gIHVwZ3JhZGVUb011bHRpKCkge1xuICAgIGlmICh0aGlzLm11bHRpKSByZXR1cm4gdGhpcztcblxuICAgIC8vIE11dGF0aW5nIHRoZSBvcHRpb25zICYgdGhlIGluc3RhbmNlXG4gICAgdGhpcy5fb3B0aW9ucy5tdWx0aSA9IHRydWU7XG4gICAgcmVhZE9ubHlQcm9wZXJ0eSh0aGlzLCAnbXVsdGknLCB0cnVlKTtcblxuICAgIC8vIFVwZ3JhZGluZyBpbmRpY2VzXG4gICAgdXBncmFkZVN0cnVjdHVyZUluZGV4VG9NdWx0aSh0aGlzKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEtub3duIG1ldGhvZHNcbiAgICoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqL1xuXG4gIC8qKlxuICAgKiBNZXRob2QgdXNlZCBieSBKYXZhU2NyaXB0IHRvIHBlcmZvcm0gSlNPTiBzZXJpYWxpemF0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJuIHtvYmplY3R9IC0gVGhlIHNlcmlhbGl6ZWQgZ3JhcGguXG4gICAqL1xuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhwb3J0KCk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHJldHVybmluZyBbb2JqZWN0IEdyYXBoXS5cbiAgICovXG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiAnW29iamVjdCBHcmFwaF0nO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB1c2VkIGludGVybmFsbHkgYnkgbm9kZSdzIGNvbnNvbGUgdG8gZGlzcGxheSBhIGN1c3RvbSBvYmplY3QuXG4gICAqXG4gICAqIEByZXR1cm4ge29iamVjdH0gLSBGb3JtYXR0ZWQgb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBncmFwaC5cbiAgICovXG4gIGluc3BlY3QoKSB7XG4gICAgY29uc3Qgbm9kZXMgPSB7fTtcbiAgICB0aGlzLl9ub2Rlcy5mb3JFYWNoKChkYXRhLCBrZXkpID0+IHtcbiAgICAgIG5vZGVzW2tleV0gPSBkYXRhLmF0dHJpYnV0ZXM7XG4gICAgfSk7XG5cbiAgICBjb25zdCBlZGdlcyA9IHt9LFxuICAgICAgbXVsdGlJbmRleCA9IHt9O1xuXG4gICAgdGhpcy5fZWRnZXMuZm9yRWFjaCgoZGF0YSwga2V5KSA9PiB7XG4gICAgICBjb25zdCBkaXJlY3Rpb24gPSBkYXRhLnVuZGlyZWN0ZWQgPyAnLS0nIDogJy0+JztcblxuICAgICAgbGV0IGxhYmVsID0gJyc7XG5cbiAgICAgIGxldCBzb3VyY2UgPSBkYXRhLnNvdXJjZS5rZXk7XG4gICAgICBsZXQgdGFyZ2V0ID0gZGF0YS50YXJnZXQua2V5O1xuICAgICAgbGV0IHRtcDtcblxuICAgICAgaWYgKGRhdGEudW5kaXJlY3RlZCAmJiBzb3VyY2UgPiB0YXJnZXQpIHtcbiAgICAgICAgdG1wID0gc291cmNlO1xuICAgICAgICBzb3VyY2UgPSB0YXJnZXQ7XG4gICAgICAgIHRhcmdldCA9IHRtcDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGVzYyA9IGAoJHtzb3VyY2V9KSR7ZGlyZWN0aW9ufSgke3RhcmdldH0pYDtcblxuICAgICAgaWYgKCFrZXkuc3RhcnRzV2l0aCgnZ2VpZF8nKSkge1xuICAgICAgICBsYWJlbCArPSBgWyR7a2V5fV06IGA7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMubXVsdGkpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBtdWx0aUluZGV4W2Rlc2NdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIG11bHRpSW5kZXhbZGVzY10gPSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG11bHRpSW5kZXhbZGVzY10rKztcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsICs9IGAke211bHRpSW5kZXhbZGVzY119LiBgO1xuICAgICAgfVxuXG4gICAgICBsYWJlbCArPSBkZXNjO1xuXG4gICAgICBlZGdlc1tsYWJlbF0gPSBkYXRhLmF0dHJpYnV0ZXM7XG4gICAgfSk7XG5cbiAgICBjb25zdCBkdW1teSA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBrIGluIHRoaXMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5oYXNPd25Qcm9wZXJ0eShrKSAmJlxuICAgICAgICAhRU1JVFRFUl9QUk9QUy5oYXMoaykgJiZcbiAgICAgICAgdHlwZW9mIHRoaXNba10gIT09ICdmdW5jdGlvbicgJiZcbiAgICAgICAgdHlwZW9mIGsgIT09ICdzeW1ib2wnXG4gICAgICApXG4gICAgICAgIGR1bW15W2tdID0gdGhpc1trXTtcbiAgICB9XG5cbiAgICBkdW1teS5hdHRyaWJ1dGVzID0gdGhpcy5fYXR0cmlidXRlcztcbiAgICBkdW1teS5ub2RlcyA9IG5vZGVzO1xuICAgIGR1bW15LmVkZ2VzID0gZWRnZXM7XG5cbiAgICBwcml2YXRlUHJvcGVydHkoZHVtbXksICdjb25zdHJ1Y3RvcicsIHRoaXMuY29uc3RydWN0b3IpO1xuXG4gICAgcmV0dXJuIGR1bW15O1xuICB9XG59XG5cbi8qKlxuICogQXR0YWNoaW5nIG1ldGhvZHMgdG8gdGhlIHByb3RvdHlwZS5cbiAqXG4gKiBIZXJlLCB3ZSBhcmUgYXR0YWNoaW5nIGEgd2lkZSB2YXJpZXR5IG9mIG1ldGhvZHMgdG8gdGhlIEdyYXBoIGNsYXNzJ1xuICogcHJvdG90eXBlIHdoZW4gdGhvc2UgYXJlIHZlcnkgbnVtZXJvdXMgYW5kIHdoZW4gdGhlaXIgY3JlYXRpb24gaXNcbiAqIGFic3RyYWN0ZWQuXG4gKi9cblxuLyoqXG4gKiBBdHRhY2hpbmcgY3VzdG9tIGluc3BlY3QgbWV0aG9kIGZvciBub2RlID49IDEwLlxuICovXG5pZiAodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcpXG4gIEdyYXBoLnByb3RvdHlwZVtTeW1ib2wuZm9yKCdub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbScpXSA9XG4gICAgR3JhcGgucHJvdG90eXBlLmluc3BlY3Q7XG5cbi8qKlxuICogUmVsYXRlZCB0byBlZGdlIGFkZGl0aW9uLlxuICovXG5FREdFX0FERF9NRVRIT0RTLmZvckVhY2gobWV0aG9kID0+IHtcbiAgWydhZGQnLCAnbWVyZ2UnLCAndXBkYXRlJ10uZm9yRWFjaCh2ZXJiID0+IHtcbiAgICBjb25zdCBuYW1lID0gbWV0aG9kLm5hbWUodmVyYik7XG4gICAgY29uc3QgZm4gPSB2ZXJiID09PSAnYWRkJyA/IGFkZEVkZ2UgOiBtZXJnZUVkZ2U7XG5cbiAgICBpZiAobWV0aG9kLmdlbmVyYXRlS2V5KSB7XG4gICAgICBHcmFwaC5wcm90b3R5cGVbbmFtZV0gPSBmdW5jdGlvbiAoc291cmNlLCB0YXJnZXQsIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgcmV0dXJuIGZuKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIChtZXRob2QudHlwZSB8fCB0aGlzLnR5cGUpID09PSAndW5kaXJlY3RlZCcsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBzb3VyY2UsXG4gICAgICAgICAgdGFyZ2V0LFxuICAgICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICAgICAgdmVyYiA9PT0gJ3VwZGF0ZSdcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIEdyYXBoLnByb3RvdHlwZVtuYW1lXSA9IGZ1bmN0aW9uIChlZGdlLCBzb3VyY2UsIHRhcmdldCwgYXR0cmlidXRlcykge1xuICAgICAgICByZXR1cm4gZm4oXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIChtZXRob2QudHlwZSB8fCB0aGlzLnR5cGUpID09PSAndW5kaXJlY3RlZCcsXG4gICAgICAgICAgZWRnZSxcbiAgICAgICAgICBzb3VyY2UsXG4gICAgICAgICAgdGFyZ2V0LFxuICAgICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICAgICAgdmVyYiA9PT0gJ3VwZGF0ZSdcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgfVxuICB9KTtcbn0pO1xuXG4vKipcbiAqIEF0dHJpYnV0ZXMtcmVsYXRlZC5cbiAqL1xuYXR0YWNoTm9kZUF0dHJpYnV0ZXNNZXRob2RzKEdyYXBoKTtcbmF0dGFjaEVkZ2VBdHRyaWJ1dGVzTWV0aG9kcyhHcmFwaCk7XG5cbi8qKlxuICogRWRnZSBpdGVyYXRpb24tcmVsYXRlZC5cbiAqL1xuYXR0YWNoRWRnZUl0ZXJhdGlvbk1ldGhvZHMoR3JhcGgpO1xuXG4vKipcbiAqIE5laWdoYm9yIGl0ZXJhdGlvbi1yZWxhdGVkLlxuICovXG5hdHRhY2hOZWlnaGJvckl0ZXJhdGlvbk1ldGhvZHMoR3JhcGgpO1xuIiwgIi8qKlxuICogR3JhcGhvbG9neSBIZWxwZXIgQ2xhc3Nlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBCdWlsZGluZyBzb21lIGhpZ2hlci1vcmRlciBjbGFzc2VzIGluc3RhbnRpYXRpbmcgdGhlIGdyYXBoIHdpdGhcbiAqIHByZWRlZmluaXRlIG9wdGlvbnMuXG4gKi9cbmltcG9ydCB7YXNzaWdufSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBHcmFwaCBmcm9tICcuL2dyYXBoJztcblxuaW1wb3J0IHtcbiAgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IsXG4gIE5vdEZvdW5kR3JhcGhFcnJvcixcbiAgVXNhZ2VHcmFwaEVycm9yXG59IGZyb20gJy4vZXJyb3JzJztcblxuLyoqXG4gKiBBbHRlcm5hdGl2ZSBjb25zdHJ1Y3RvcnMuXG4gKi9cbmNsYXNzIERpcmVjdGVkR3JhcGggZXh0ZW5kcyBHcmFwaCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICBjb25zdCBmaW5hbE9wdGlvbnMgPSBhc3NpZ24oe3R5cGU6ICdkaXJlY3RlZCd9LCBvcHRpb25zKTtcblxuICAgIGlmICgnbXVsdGknIGluIGZpbmFsT3B0aW9ucyAmJiBmaW5hbE9wdGlvbnMubXVsdGkgIT09IGZhbHNlKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnRGlyZWN0ZWRHcmFwaC5mcm9tOiBpbmNvbnNpc3RlbnQgaW5kaWNhdGlvbiB0aGF0IHRoZSBncmFwaCBzaG91bGQgYmUgbXVsdGkgaW4gZ2l2ZW4gb3B0aW9ucyEnXG4gICAgICApO1xuXG4gICAgaWYgKGZpbmFsT3B0aW9ucy50eXBlICE9PSAnZGlyZWN0ZWQnKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnRGlyZWN0ZWRHcmFwaC5mcm9tOiBpbmNvbnNpc3RlbnQgXCInICtcbiAgICAgICAgICBmaW5hbE9wdGlvbnMudHlwZSArXG4gICAgICAgICAgJ1wiIHR5cGUgaW4gZ2l2ZW4gb3B0aW9ucyEnXG4gICAgICApO1xuXG4gICAgc3VwZXIoZmluYWxPcHRpb25zKTtcbiAgfVxufVxuY2xhc3MgVW5kaXJlY3RlZEdyYXBoIGV4dGVuZHMgR3JhcGgge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgY29uc3QgZmluYWxPcHRpb25zID0gYXNzaWduKHt0eXBlOiAndW5kaXJlY3RlZCd9LCBvcHRpb25zKTtcblxuICAgIGlmICgnbXVsdGknIGluIGZpbmFsT3B0aW9ucyAmJiBmaW5hbE9wdGlvbnMubXVsdGkgIT09IGZhbHNlKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnVW5kaXJlY3RlZEdyYXBoLmZyb206IGluY29uc2lzdGVudCBpbmRpY2F0aW9uIHRoYXQgdGhlIGdyYXBoIHNob3VsZCBiZSBtdWx0aSBpbiBnaXZlbiBvcHRpb25zISdcbiAgICAgICk7XG5cbiAgICBpZiAoZmluYWxPcHRpb25zLnR5cGUgIT09ICd1bmRpcmVjdGVkJylcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ1VuZGlyZWN0ZWRHcmFwaC5mcm9tOiBpbmNvbnNpc3RlbnQgXCInICtcbiAgICAgICAgICBmaW5hbE9wdGlvbnMudHlwZSArXG4gICAgICAgICAgJ1wiIHR5cGUgaW4gZ2l2ZW4gb3B0aW9ucyEnXG4gICAgICApO1xuXG4gICAgc3VwZXIoZmluYWxPcHRpb25zKTtcbiAgfVxufVxuY2xhc3MgTXVsdGlHcmFwaCBleHRlbmRzIEdyYXBoIHtcbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgIGNvbnN0IGZpbmFsT3B0aW9ucyA9IGFzc2lnbih7bXVsdGk6IHRydWV9LCBvcHRpb25zKTtcblxuICAgIGlmICgnbXVsdGknIGluIGZpbmFsT3B0aW9ucyAmJiBmaW5hbE9wdGlvbnMubXVsdGkgIT09IHRydWUpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdNdWx0aUdyYXBoLmZyb206IGluY29uc2lzdGVudCBpbmRpY2F0aW9uIHRoYXQgdGhlIGdyYXBoIHNob3VsZCBiZSBzaW1wbGUgaW4gZ2l2ZW4gb3B0aW9ucyEnXG4gICAgICApO1xuXG4gICAgc3VwZXIoZmluYWxPcHRpb25zKTtcbiAgfVxufVxuY2xhc3MgTXVsdGlEaXJlY3RlZEdyYXBoIGV4dGVuZHMgR3JhcGgge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgY29uc3QgZmluYWxPcHRpb25zID0gYXNzaWduKHt0eXBlOiAnZGlyZWN0ZWQnLCBtdWx0aTogdHJ1ZX0sIG9wdGlvbnMpO1xuXG4gICAgaWYgKCdtdWx0aScgaW4gZmluYWxPcHRpb25zICYmIGZpbmFsT3B0aW9ucy5tdWx0aSAhPT0gdHJ1ZSlcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ011bHRpRGlyZWN0ZWRHcmFwaC5mcm9tOiBpbmNvbnNpc3RlbnQgaW5kaWNhdGlvbiB0aGF0IHRoZSBncmFwaCBzaG91bGQgYmUgc2ltcGxlIGluIGdpdmVuIG9wdGlvbnMhJ1xuICAgICAgKTtcblxuICAgIGlmIChmaW5hbE9wdGlvbnMudHlwZSAhPT0gJ2RpcmVjdGVkJylcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvcihcbiAgICAgICAgJ011bHRpRGlyZWN0ZWRHcmFwaC5mcm9tOiBpbmNvbnNpc3RlbnQgXCInICtcbiAgICAgICAgICBmaW5hbE9wdGlvbnMudHlwZSArXG4gICAgICAgICAgJ1wiIHR5cGUgaW4gZ2l2ZW4gb3B0aW9ucyEnXG4gICAgICApO1xuXG4gICAgc3VwZXIoZmluYWxPcHRpb25zKTtcbiAgfVxufVxuY2xhc3MgTXVsdGlVbmRpcmVjdGVkR3JhcGggZXh0ZW5kcyBHcmFwaCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICBjb25zdCBmaW5hbE9wdGlvbnMgPSBhc3NpZ24oe3R5cGU6ICd1bmRpcmVjdGVkJywgbXVsdGk6IHRydWV9LCBvcHRpb25zKTtcblxuICAgIGlmICgnbXVsdGknIGluIGZpbmFsT3B0aW9ucyAmJiBmaW5hbE9wdGlvbnMubXVsdGkgIT09IHRydWUpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50c0dyYXBoRXJyb3IoXG4gICAgICAgICdNdWx0aVVuZGlyZWN0ZWRHcmFwaC5mcm9tOiBpbmNvbnNpc3RlbnQgaW5kaWNhdGlvbiB0aGF0IHRoZSBncmFwaCBzaG91bGQgYmUgc2ltcGxlIGluIGdpdmVuIG9wdGlvbnMhJ1xuICAgICAgKTtcblxuICAgIGlmIChmaW5hbE9wdGlvbnMudHlwZSAhPT0gJ3VuZGlyZWN0ZWQnKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yKFxuICAgICAgICAnTXVsdGlVbmRpcmVjdGVkR3JhcGguZnJvbTogaW5jb25zaXN0ZW50IFwiJyArXG4gICAgICAgICAgZmluYWxPcHRpb25zLnR5cGUgK1xuICAgICAgICAgICdcIiB0eXBlIGluIGdpdmVuIG9wdGlvbnMhJ1xuICAgICAgKTtcblxuICAgIHN1cGVyKGZpbmFsT3B0aW9ucyk7XG4gIH1cbn1cblxuLyoqXG4gKiBBdHRhY2hpbmcgc3RhdGljICMuZnJvbSBtZXRob2QgdG8gZWFjaCBvZiB0aGUgY29uc3RydWN0b3JzLlxuICovXG5mdW5jdGlvbiBhdHRhY2hTdGF0aWNGcm9tTWV0aG9kKENsYXNzKSB7XG4gIC8qKlxuICAgKiBCdWlsZHMgYSBncmFwaCBmcm9tIHNlcmlhbGl6ZWQgZGF0YSBvciBhbm90aGVyIGdyYXBoJ3MgZGF0YS5cbiAgICpcbiAgICogQHBhcmFtICB7R3JhcGh8U2VyaWFsaXplZEdyYXBofSBkYXRhICAgICAgLSBIeWRyYXRhdGlvbiBkYXRhLlxuICAgKiBAcGFyYW0gIHtvYmplY3R9ICAgICAgICAgICAgICAgIFtvcHRpb25zXSAtIE9wdGlvbnMuXG4gICAqIEByZXR1cm4ge0NsYXNzfVxuICAgKi9cbiAgQ2xhc3MuZnJvbSA9IGZ1bmN0aW9uIChkYXRhLCBvcHRpb25zKSB7XG4gICAgLy8gTWVyZ2luZyBnaXZlbiBvcHRpb25zIHdpdGggc2VyaWFsaXplZCBvbmVzXG4gICAgY29uc3QgZmluYWxPcHRpb25zID0gYXNzaWduKHt9LCBkYXRhLm9wdGlvbnMsIG9wdGlvbnMpO1xuXG4gICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgQ2xhc3MoZmluYWxPcHRpb25zKTtcbiAgICBpbnN0YW5jZS5pbXBvcnQoZGF0YSk7XG5cbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH07XG59XG5cbmF0dGFjaFN0YXRpY0Zyb21NZXRob2QoR3JhcGgpO1xuYXR0YWNoU3RhdGljRnJvbU1ldGhvZChEaXJlY3RlZEdyYXBoKTtcbmF0dGFjaFN0YXRpY0Zyb21NZXRob2QoVW5kaXJlY3RlZEdyYXBoKTtcbmF0dGFjaFN0YXRpY0Zyb21NZXRob2QoTXVsdGlHcmFwaCk7XG5hdHRhY2hTdGF0aWNGcm9tTWV0aG9kKE11bHRpRGlyZWN0ZWRHcmFwaCk7XG5hdHRhY2hTdGF0aWNGcm9tTWV0aG9kKE11bHRpVW5kaXJlY3RlZEdyYXBoKTtcblxuR3JhcGguR3JhcGggPSBHcmFwaDtcbkdyYXBoLkRpcmVjdGVkR3JhcGggPSBEaXJlY3RlZEdyYXBoO1xuR3JhcGguVW5kaXJlY3RlZEdyYXBoID0gVW5kaXJlY3RlZEdyYXBoO1xuR3JhcGguTXVsdGlHcmFwaCA9IE11bHRpR3JhcGg7XG5HcmFwaC5NdWx0aURpcmVjdGVkR3JhcGggPSBNdWx0aURpcmVjdGVkR3JhcGg7XG5HcmFwaC5NdWx0aVVuZGlyZWN0ZWRHcmFwaCA9IE11bHRpVW5kaXJlY3RlZEdyYXBoO1xuXG5HcmFwaC5JbnZhbGlkQXJndW1lbnRzR3JhcGhFcnJvciA9IEludmFsaWRBcmd1bWVudHNHcmFwaEVycm9yO1xuR3JhcGguTm90Rm91bmRHcmFwaEVycm9yID0gTm90Rm91bmRHcmFwaEVycm9yO1xuR3JhcGguVXNhZ2VHcmFwaEVycm9yID0gVXNhZ2VHcmFwaEVycm9yO1xuXG5leHBvcnQge1xuICBHcmFwaCxcbiAgRGlyZWN0ZWRHcmFwaCxcbiAgVW5kaXJlY3RlZEdyYXBoLFxuICBNdWx0aUdyYXBoLFxuICBNdWx0aURpcmVjdGVkR3JhcGgsXG4gIE11bHRpVW5kaXJlY3RlZEdyYXBoXG59O1xuIiwgIi8qKlxuICogR3JhcGhvbG9neSBpc0dyYXBoXG4gKiA9PT09PT09PT09PT09PT09PT09XG4gKlxuICogVmVyeSBzaW1wbGUgZnVuY3Rpb24gYWltaW5nIGF0IGVuc3VyaW5nIHRoZSBnaXZlbiB2YXJpYWJsZSBpcyBhXG4gKiBncmFwaG9sb2d5IGluc3RhbmNlLlxuICovXG5cbi8qKlxuICogQ2hlY2tpbmcgdGhlIHZhbHVlIGlzIGEgZ3JhcGhvbG9neSBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0gIHthbnl9ICAgICB2YWx1ZSAtIFRhcmdldCB2YWx1ZS5cbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaXNHcmFwaCh2YWx1ZSkge1xuICByZXR1cm4gKFxuICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgIHR5cGVvZiB2YWx1ZS5hZGRVbmRpcmVjdGVkRWRnZVdpdGhLZXkgPT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlb2YgdmFsdWUuZHJvcE5vZGUgPT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlb2YgdmFsdWUubXVsdGkgPT09ICdib29sZWFuJ1xuICApO1xufTtcbiIsICJleHBvcnRzLkFSUkFZX0JVRkZFUl9TVVBQT1JUID0gdHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJztcbmV4cG9ydHMuU1lNQk9MX1NVUFBPUlQgPSB0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJztcbiIsICIvKipcbiAqIE9ibGl0ZXJhdG9yIEZvckVhY2ggRnVuY3Rpb25cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKlxuICogSGVscGVyIGZ1bmN0aW9uIHVzZWQgdG8gZWFzaWx5IGl0ZXJhdGUgb3ZlciBtaXhlZCB2YWx1ZXMuXG4gKi9cbnZhciBzdXBwb3J0ID0gcmVxdWlyZSgnLi9zdXBwb3J0LmpzJyk7XG5cbnZhciBBUlJBWV9CVUZGRVJfU1VQUE9SVCA9IHN1cHBvcnQuQVJSQVlfQlVGRkVSX1NVUFBPUlQ7XG52YXIgU1lNQk9MX1NVUFBPUlQgPSBzdXBwb3J0LlNZTUJPTF9TVVBQT1JUO1xuXG4vKipcbiAqIEZ1bmN0aW9uIGFibGUgdG8gaXRlcmF0ZSBvdmVyIGFsbW9zdCBhbnkgaXRlcmFibGUgSlMgdmFsdWUuXG4gKlxuICogQHBhcmFtICB7YW55fSAgICAgIGl0ZXJhYmxlIC0gSXRlcmFibGUgdmFsdWUuXG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsYmFjayBmdW5jdGlvbi5cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBmb3JFYWNoKGl0ZXJhYmxlLCBjYWxsYmFjaykge1xuICB2YXIgaXRlcmF0b3IsIGssIGksIGwsIHM7XG5cbiAgaWYgKCFpdGVyYWJsZSkgdGhyb3cgbmV3IEVycm9yKCdvYmxpdGVyYXRvci9mb3JFYWNoOiBpbnZhbGlkIGl0ZXJhYmxlLicpO1xuXG4gIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdvYmxpdGVyYXRvci9mb3JFYWNoOiBleHBlY3RpbmcgYSBjYWxsYmFjay4nKTtcblxuICAvLyBUaGUgdGFyZ2V0IGlzIGFuIGFycmF5IG9yIGEgc3RyaW5nIG9yIGZ1bmN0aW9uIGFyZ3VtZW50c1xuICBpZiAoXG4gICAgQXJyYXkuaXNBcnJheShpdGVyYWJsZSkgfHxcbiAgICAoQVJSQVlfQlVGRkVSX1NVUFBPUlQgJiYgQXJyYXlCdWZmZXIuaXNWaWV3KGl0ZXJhYmxlKSkgfHxcbiAgICB0eXBlb2YgaXRlcmFibGUgPT09ICdzdHJpbmcnIHx8XG4gICAgaXRlcmFibGUudG9TdHJpbmcoKSA9PT0gJ1tvYmplY3QgQXJndW1lbnRzXSdcbiAgKSB7XG4gICAgZm9yIChpID0gMCwgbCA9IGl0ZXJhYmxlLmxlbmd0aDsgaSA8IGw7IGkrKykgY2FsbGJhY2soaXRlcmFibGVbaV0sIGkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIFRoZSB0YXJnZXQgaGFzIGEgIy5mb3JFYWNoIG1ldGhvZFxuICBpZiAodHlwZW9mIGl0ZXJhYmxlLmZvckVhY2ggPT09ICdmdW5jdGlvbicpIHtcbiAgICBpdGVyYWJsZS5mb3JFYWNoKGNhbGxiYWNrKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBUaGUgdGFyZ2V0IGlzIGl0ZXJhYmxlXG4gIGlmIChcbiAgICBTWU1CT0xfU1VQUE9SVCAmJlxuICAgIFN5bWJvbC5pdGVyYXRvciBpbiBpdGVyYWJsZSAmJlxuICAgIHR5cGVvZiBpdGVyYWJsZS5uZXh0ICE9PSAnZnVuY3Rpb24nXG4gICkge1xuICAgIGl0ZXJhYmxlID0gaXRlcmFibGVbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICB9XG5cbiAgLy8gVGhlIHRhcmdldCBpcyBhbiBpdGVyYXRvclxuICBpZiAodHlwZW9mIGl0ZXJhYmxlLm5leHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpdGVyYXRvciA9IGl0ZXJhYmxlO1xuICAgIGkgPSAwO1xuXG4gICAgd2hpbGUgKCgocyA9IGl0ZXJhdG9yLm5leHQoKSksIHMuZG9uZSAhPT0gdHJ1ZSkpIHtcbiAgICAgIGNhbGxiYWNrKHMudmFsdWUsIGkpO1xuICAgICAgaSsrO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIFRoZSB0YXJnZXQgaXMgYSBwbGFpbiBvYmplY3RcbiAgZm9yIChrIGluIGl0ZXJhYmxlKSB7XG4gICAgaWYgKGl0ZXJhYmxlLmhhc093blByb3BlcnR5KGspKSB7XG4gICAgICBjYWxsYmFjayhpdGVyYWJsZVtrXSwgayk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuO1xufTtcbiIsICIvKipcbiAqIE1uZW1vbmlzdCBUeXBlZCBBcnJheSBIZWxwZXJzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBNaXNjZWxsYW5lb3VzIGhlbHBlcnMgcmVsYXRlZCB0byB0eXBlZCBhcnJheXMuXG4gKi9cblxuLyoqXG4gKiBXaGVuIHVzaW5nIGFuIHVuc2lnbmVkIGludGVnZXIgYXJyYXkgdG8gc3RvcmUgcG9pbnRlcnMsIG9uZSBtaWdodCB3YW50IHRvXG4gKiBjaG9vc2UgdGhlIG9wdGltYWwgd29yZCBzaXplIGluIHJlZ2FyZHMgdG8gdGhlIGFjdHVhbCBudW1iZXJzIG9mIHBvaW50ZXJzXG4gKiB0byBzdG9yZS5cbiAqXG4gKiBUaGlzIGhlbHBlcnMgZG9lcyBqdXN0IHRoYXQuXG4gKlxuICogQHBhcmFtICB7bnVtYmVyfSBzaXplIC0gRXhwZWN0ZWQgc2l6ZSBvZiB0aGUgYXJyYXkgdG8gbWFwLlxuICogQHJldHVybiB7VHlwZWRBcnJheX1cbiAqL1xudmFyIE1BWF84QklUX0lOVEVHRVIgPSBNYXRoLnBvdygyLCA4KSAtIDEsXG4gICAgTUFYXzE2QklUX0lOVEVHRVIgPSBNYXRoLnBvdygyLCAxNikgLSAxLFxuICAgIE1BWF8zMkJJVF9JTlRFR0VSID0gTWF0aC5wb3coMiwgMzIpIC0gMTtcblxudmFyIE1BWF9TSUdORURfOEJJVF9JTlRFR0VSID0gTWF0aC5wb3coMiwgNykgLSAxLFxuICAgIE1BWF9TSUdORURfMTZCSVRfSU5URUdFUiA9IE1hdGgucG93KDIsIDE1KSAtIDEsXG4gICAgTUFYX1NJR05FRF8zMkJJVF9JTlRFR0VSID0gTWF0aC5wb3coMiwgMzEpIC0gMTtcblxuZXhwb3J0cy5nZXRQb2ludGVyQXJyYXkgPSBmdW5jdGlvbihzaXplKSB7XG4gIHZhciBtYXhJbmRleCA9IHNpemUgLSAxO1xuXG4gIGlmIChtYXhJbmRleCA8PSBNQVhfOEJJVF9JTlRFR0VSKVxuICAgIHJldHVybiBVaW50OEFycmF5O1xuXG4gIGlmIChtYXhJbmRleCA8PSBNQVhfMTZCSVRfSU5URUdFUilcbiAgICByZXR1cm4gVWludDE2QXJyYXk7XG5cbiAgaWYgKG1heEluZGV4IDw9IE1BWF8zMkJJVF9JTlRFR0VSKVxuICAgIHJldHVybiBVaW50MzJBcnJheTtcblxuICB0aHJvdyBuZXcgRXJyb3IoJ21uZW1vbmlzdDogUG9pbnRlciBBcnJheSBvZiBzaXplID4gNDI5NDk2NzI5NSBpcyBub3Qgc3VwcG9ydGVkLicpO1xufTtcblxuZXhwb3J0cy5nZXRTaWduZWRQb2ludGVyQXJyYXkgPSBmdW5jdGlvbihzaXplKSB7XG4gIHZhciBtYXhJbmRleCA9IHNpemUgLSAxO1xuXG4gIGlmIChtYXhJbmRleCA8PSBNQVhfU0lHTkVEXzhCSVRfSU5URUdFUilcbiAgICByZXR1cm4gSW50OEFycmF5O1xuXG4gIGlmIChtYXhJbmRleCA8PSBNQVhfU0lHTkVEXzE2QklUX0lOVEVHRVIpXG4gICAgcmV0dXJuIEludDE2QXJyYXk7XG5cbiAgaWYgKG1heEluZGV4IDw9IE1BWF9TSUdORURfMzJCSVRfSU5URUdFUilcbiAgICByZXR1cm4gSW50MzJBcnJheTtcblxuICByZXR1cm4gRmxvYXQ2NEFycmF5O1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiByZXR1cm5pbmcgdGhlIG1pbmltYWwgdHlwZSBhYmxlIHRvIHJlcHJlc2VudCB0aGUgZ2l2ZW4gbnVtYmVyLlxuICpcbiAqIEBwYXJhbSAge251bWJlcn0gdmFsdWUgLSBWYWx1ZSB0byB0ZXN0LlxuICogQHJldHVybiB7VHlwZWRBcnJheUNsYXNzfVxuICovXG5leHBvcnRzLmdldE51bWJlclR5cGUgPSBmdW5jdGlvbih2YWx1ZSkge1xuXG4gIC8vIDw9IDMyIGJpdHMgaXRudGVnZXI/XG4gIGlmICh2YWx1ZSA9PT0gKHZhbHVlIHwgMCkpIHtcblxuICAgIC8vIE5lZ2F0aXZlXG4gICAgaWYgKE1hdGguc2lnbih2YWx1ZSkgPT09IC0xKSB7XG4gICAgICBpZiAodmFsdWUgPD0gMTI3ICYmIHZhbHVlID49IC0xMjgpXG4gICAgICAgIHJldHVybiBJbnQ4QXJyYXk7XG5cbiAgICAgIGlmICh2YWx1ZSA8PSAzMjc2NyAmJiB2YWx1ZSA+PSAtMzI3NjgpXG4gICAgICAgIHJldHVybiBJbnQxNkFycmF5O1xuXG4gICAgICByZXR1cm4gSW50MzJBcnJheTtcbiAgICB9XG4gICAgZWxzZSB7XG5cbiAgICAgIGlmICh2YWx1ZSA8PSAyNTUpXG4gICAgICAgIHJldHVybiBVaW50OEFycmF5O1xuXG4gICAgICBpZiAodmFsdWUgPD0gNjU1MzUpXG4gICAgICAgIHJldHVybiBVaW50MTZBcnJheTtcblxuICAgICAgcmV0dXJuIFVpbnQzMkFycmF5O1xuICAgIH1cbiAgfVxuXG4gIC8vIDUzIGJpdHMgaW50ZWdlciAmIGZsb2F0c1xuICAvLyBOT1RFOiBpdCdzIGtpbmRhIGhhcmQgdG8gdGVsbCB3aGV0aGVyIHdlIGNvdWxkIHVzZSAzMmJpdHMgb3Igbm90Li4uXG4gIHJldHVybiBGbG9hdDY0QXJyYXk7XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHJldHVybmluZyB0aGUgbWluaW1hbCB0eXBlIGFibGUgdG8gcmVwcmVzZW50IHRoZSBnaXZlbiBhcnJheVxuICogb2YgSmF2YVNjcmlwdCBudW1iZXJzLlxuICpcbiAqIEBwYXJhbSAge2FycmF5fSAgICBhcnJheSAgLSBBcnJheSB0byByZXByZXNlbnQuXG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gZ2V0dGVyIC0gT3B0aW9uYWwgZ2V0dGVyLlxuICogQHJldHVybiB7VHlwZWRBcnJheUNsYXNzfVxuICovXG52YXIgVFlQRV9QUklPUklUWSA9IHtcbiAgVWludDhBcnJheTogMSxcbiAgSW50OEFycmF5OiAyLFxuICBVaW50MTZBcnJheTogMyxcbiAgSW50MTZBcnJheTogNCxcbiAgVWludDMyQXJyYXk6IDUsXG4gIEludDMyQXJyYXk6IDYsXG4gIEZsb2F0MzJBcnJheTogNyxcbiAgRmxvYXQ2NEFycmF5OiA4XG59O1xuXG4vLyBUT0RPOiBtYWtlIHRoaXMgYSBvbmUtc2hvdCBmb3Igb25lIHZhbHVlXG5leHBvcnRzLmdldE1pbmltYWxSZXByZXNlbnRhdGlvbiA9IGZ1bmN0aW9uKGFycmF5LCBnZXR0ZXIpIHtcbiAgdmFyIG1heFR5cGUgPSBudWxsLFxuICAgICAgbWF4UHJpb3JpdHkgPSAwLFxuICAgICAgcCxcbiAgICAgIHQsXG4gICAgICB2LFxuICAgICAgaSxcbiAgICAgIGw7XG5cbiAgZm9yIChpID0gMCwgbCA9IGFycmF5Lmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIHYgPSBnZXR0ZXIgPyBnZXR0ZXIoYXJyYXlbaV0pIDogYXJyYXlbaV07XG4gICAgdCA9IGV4cG9ydHMuZ2V0TnVtYmVyVHlwZSh2KTtcbiAgICBwID0gVFlQRV9QUklPUklUWVt0Lm5hbWVdO1xuXG4gICAgaWYgKHAgPiBtYXhQcmlvcml0eSkge1xuICAgICAgbWF4UHJpb3JpdHkgPSBwO1xuICAgICAgbWF4VHlwZSA9IHQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1heFR5cGU7XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHJldHVybmluZyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIHR5cGVkIGFycmF5LlxuICpcbiAqIEBwYXJhbSAge2FueX0gdmFsdWUgLSBWYWx1ZSB0byB0ZXN0LlxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0cy5pc1R5cGVkQXJyYXkgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJiBBcnJheUJ1ZmZlci5pc1ZpZXcodmFsdWUpO1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIHRvIGNvbmNhdCBieXRlIGFycmF5cy5cbiAqXG4gKiBAcGFyYW0gIHsuLi5CeXRlQXJyYXl9XG4gKiBAcmV0dXJuIHtCeXRlQXJyYXl9XG4gKi9cbmV4cG9ydHMuY29uY2F0ID0gZnVuY3Rpb24oKSB7XG4gIHZhciBsZW5ndGggPSAwLFxuICAgICAgaSxcbiAgICAgIG8sXG4gICAgICBsO1xuXG4gIGZvciAoaSA9IDAsIGwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbDsgaSsrKVxuICAgIGxlbmd0aCArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xuXG4gIHZhciBhcnJheSA9IG5ldyAoYXJndW1lbnRzWzBdLmNvbnN0cnVjdG9yKShsZW5ndGgpO1xuXG4gIGZvciAoaSA9IDAsIG8gPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgYXJyYXkuc2V0KGFyZ3VtZW50c1tpXSwgbyk7XG4gICAgbyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xuICB9XG5cbiAgcmV0dXJuIGFycmF5O1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIHRvIGluaXRpYWxpemUgYSBieXRlIGFycmF5IG9mIGluZGljZXMuXG4gKlxuICogQHBhcmFtICB7bnVtYmVyfSAgICBsZW5ndGggLSBMZW5ndGggb2YgdGFyZ2V0LlxuICogQHJldHVybiB7Qnl0ZUFycmF5fVxuICovXG5leHBvcnRzLmluZGljZXMgPSBmdW5jdGlvbihsZW5ndGgpIHtcbiAgdmFyIFBvaW50ZXJBcnJheSA9IGV4cG9ydHMuZ2V0UG9pbnRlckFycmF5KGxlbmd0aCk7XG5cbiAgdmFyIGFycmF5ID0gbmV3IFBvaW50ZXJBcnJheShsZW5ndGgpO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspXG4gICAgYXJyYXlbaV0gPSBpO1xuXG4gIHJldHVybiBhcnJheTtcbn07XG4iLCAiLyoqXG4gKiBNbmVtb25pc3QgSXRlcmFibGUgRnVuY3Rpb25cbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBIYXJtb25pemVkIGl0ZXJhdGlvbiBoZWxwZXJzIG92ZXIgbWl4ZWQgaXRlcmFibGUgdGFyZ2V0cy5cbiAqL1xudmFyIGZvckVhY2ggPSByZXF1aXJlKCdvYmxpdGVyYXRvci9mb3JlYWNoJyk7XG5cbnZhciB0eXBlZCA9IHJlcXVpcmUoJy4vdHlwZWQtYXJyYXlzLmpzJyk7XG5cbi8qKlxuICogRnVuY3Rpb24gdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gb2JqZWN0IHN1cHBvcnRzIGFycmF5LWxpa2VcbiAqIHJhbmRvbSBhY2Nlc3MuXG4gKlxuICogQHBhcmFtICB7YW55fSB0YXJnZXQgLSBUYXJnZXQgb2JqZWN0LlxuICogQHJldHVybiB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNBcnJheUxpa2UodGFyZ2V0KSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHRhcmdldCkgfHwgdHlwZWQuaXNUeXBlZEFycmF5KHRhcmdldCk7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gdXNlZCB0byBndWVzcyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJ1Y3R1cmUgb3ZlciB3aGljaCB3ZSBhcmUgZ29pbmdcbiAqIHRvIGl0ZXJhdGUuXG4gKlxuICogQHBhcmFtICB7YW55fSB0YXJnZXQgLSBUYXJnZXQgb2JqZWN0LlxuICogQHJldHVybiB7bnVtYmVyfHVuZGVmaW5lZH1cbiAqL1xuZnVuY3Rpb24gZ3Vlc3NMZW5ndGgodGFyZ2V0KSB7XG4gIGlmICh0eXBlb2YgdGFyZ2V0Lmxlbmd0aCA9PT0gJ251bWJlcicpXG4gICAgcmV0dXJuIHRhcmdldC5sZW5ndGg7XG5cbiAgaWYgKHR5cGVvZiB0YXJnZXQuc2l6ZSA9PT0gJ251bWJlcicpXG4gICAgcmV0dXJuIHRhcmdldC5zaXplO1xuXG4gIHJldHVybjtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIHRvIGNvbnZlcnQgYW4gaXRlcmFibGUgdG8gYW4gYXJyYXkuXG4gKlxuICogQHBhcmFtICB7YW55fSAgIHRhcmdldCAtIEl0ZXJhdGlvbiB0YXJnZXQuXG4gKiBAcmV0dXJuIHthcnJheX1cbiAqL1xuZnVuY3Rpb24gdG9BcnJheSh0YXJnZXQpIHtcbiAgdmFyIGwgPSBndWVzc0xlbmd0aCh0YXJnZXQpO1xuXG4gIHZhciBhcnJheSA9IHR5cGVvZiBsID09PSAnbnVtYmVyJyA/IG5ldyBBcnJheShsKSA6IFtdO1xuXG4gIHZhciBpID0gMDtcblxuICAvLyBUT0RPOiB3ZSBjb3VsZCBvcHRpbWl6ZSB3aGVuIGdpdmVuIHRhcmdldCBpcyBhcnJheSBsaWtlXG4gIGZvckVhY2godGFyZ2V0LCBmdW5jdGlvbih2YWx1ZSkge1xuICAgIGFycmF5W2krK10gPSB2YWx1ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGFycmF5O1xufVxuXG4vKipcbiAqIFNhbWUgYXMgYWJvdmUgYnV0IHJldHVybnMgYSBzdXBwbGVtZW50YXJ5IGluZGljZXMgYXJyYXkuXG4gKlxuICogQHBhcmFtICB7YW55fSAgIHRhcmdldCAtIEl0ZXJhdGlvbiB0YXJnZXQuXG4gKiBAcmV0dXJuIHthcnJheX1cbiAqL1xuZnVuY3Rpb24gdG9BcnJheVdpdGhJbmRpY2VzKHRhcmdldCkge1xuICB2YXIgbCA9IGd1ZXNzTGVuZ3RoKHRhcmdldCk7XG5cbiAgdmFyIEluZGV4QXJyYXkgPSB0eXBlb2YgbCA9PT0gJ251bWJlcicgP1xuICAgIHR5cGVkLmdldFBvaW50ZXJBcnJheShsKSA6XG4gICAgQXJyYXk7XG5cbiAgdmFyIGFycmF5ID0gdHlwZW9mIGwgPT09ICdudW1iZXInID8gbmV3IEFycmF5KGwpIDogW107XG4gIHZhciBpbmRpY2VzID0gdHlwZW9mIGwgPT09ICdudW1iZXInID8gbmV3IEluZGV4QXJyYXkobCkgOiBbXTtcblxuICB2YXIgaSA9IDA7XG5cbiAgLy8gVE9ETzogd2UgY291bGQgb3B0aW1pemUgd2hlbiBnaXZlbiB0YXJnZXQgaXMgYXJyYXkgbGlrZVxuICBmb3JFYWNoKHRhcmdldCwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICBhcnJheVtpXSA9IHZhbHVlO1xuICAgIGluZGljZXNbaV0gPSBpKys7XG4gIH0pO1xuXG4gIHJldHVybiBbYXJyYXksIGluZGljZXNdO1xufVxuXG4vKipcbiAqIEV4cG9ydGluZy5cbiAqL1xuZXhwb3J0cy5pc0FycmF5TGlrZSA9IGlzQXJyYXlMaWtlO1xuZXhwb3J0cy5ndWVzc0xlbmd0aCA9IGd1ZXNzTGVuZ3RoO1xuZXhwb3J0cy50b0FycmF5ID0gdG9BcnJheTtcbmV4cG9ydHMudG9BcnJheVdpdGhJbmRpY2VzID0gdG9BcnJheVdpdGhJbmRpY2VzO1xuIiwgIi8qKlxuICogT2JsaXRlcmF0b3IgSXRlcmF0b3IgQ2xhc3NcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICpcbiAqIFNpbXBsZSBjbGFzcyByZXByZXNlbnRpbmcgdGhlIGxpYnJhcnkncyBpdGVyYXRvcnMuXG4gKi9cblxuLyoqXG4gKiBJdGVyYXRvciBjbGFzcy5cbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IG5leHQgLSBOZXh0IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBJdGVyYXRvcihuZXh0KSB7XG4gIGlmICh0eXBlb2YgbmV4dCAhPT0gJ2Z1bmN0aW9uJylcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ29ibGl0ZXJhdG9yL2l0ZXJhdG9yOiBleHBlY3RpbmcgYSBmdW5jdGlvbiEnKTtcblxuICB0aGlzLm5leHQgPSBuZXh0O1xufVxuXG4vKipcbiAqIElmIHN5bWJvbHMgYXJlIHN1cHBvcnRlZCwgd2UgYWRkIGBuZXh0YCB0byBgU3ltYm9sLml0ZXJhdG9yYC5cbiAqL1xuaWYgKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnKVxuICBJdGVyYXRvci5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuLyoqXG4gKiBSZXR1cm5pbmcgYW4gaXRlcmF0b3Igb2YgdGhlIGdpdmVuIHZhbHVlcy5cbiAqXG4gKiBAcGFyYW0gIHthbnkuLi59IHZhbHVlcyAtIFZhbHVlcy5cbiAqIEByZXR1cm4ge0l0ZXJhdG9yfVxuICovXG5JdGVyYXRvci5vZiA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgbCA9IGFyZ3MubGVuZ3RoLFxuICAgIGkgPSAwO1xuXG4gIHJldHVybiBuZXcgSXRlcmF0b3IoZnVuY3Rpb24gKCkge1xuICAgIGlmIChpID49IGwpIHJldHVybiB7ZG9uZTogdHJ1ZX07XG5cbiAgICByZXR1cm4ge2RvbmU6IGZhbHNlLCB2YWx1ZTogYXJnc1tpKytdfTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIFJldHVybmluZyBhbiBlbXB0eSBpdGVyYXRvci5cbiAqXG4gKiBAcmV0dXJuIHtJdGVyYXRvcn1cbiAqL1xuSXRlcmF0b3IuZW1wdHkgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBpdGVyYXRvciA9IG5ldyBJdGVyYXRvcihmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtkb25lOiB0cnVlfTtcbiAgfSk7XG5cbiAgcmV0dXJuIGl0ZXJhdG9yO1xufTtcblxuLyoqXG4gKiBSZXR1cm5pbmcgYW4gaXRlcmF0b3Igb3ZlciB0aGUgZ2l2ZW4gaW5kZXhlZCBzZXF1ZW5jZS5cbiAqXG4gKiBAcGFyYW0gIHtzdHJpbmd8QXJyYXl9IHNlcXVlbmNlIC0gVGFyZ2V0IHNlcXVlbmNlLlxuICogQHJldHVybiB7SXRlcmF0b3J9XG4gKi9cbkl0ZXJhdG9yLmZyb21TZXF1ZW5jZSA9IGZ1bmN0aW9uIChzZXF1ZW5jZSkge1xuICB2YXIgaSA9IDAsXG4gICAgbCA9IHNlcXVlbmNlLmxlbmd0aDtcblxuICByZXR1cm4gbmV3IEl0ZXJhdG9yKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoaSA+PSBsKSByZXR1cm4ge2RvbmU6IHRydWV9O1xuXG4gICAgcmV0dXJuIHtkb25lOiBmYWxzZSwgdmFsdWU6IHNlcXVlbmNlW2krK119O1xuICB9KTtcbn07XG5cbi8qKlxuICogUmV0dXJuaW5nIHdoZXRoZXIgdGhlIGdpdmVuIHZhbHVlIGlzIGFuIGl0ZXJhdG9yLlxuICpcbiAqIEBwYXJhbSAge2FueX0gdmFsdWUgLSBWYWx1ZS5cbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbkl0ZXJhdG9yLmlzID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEl0ZXJhdG9yKSByZXR1cm4gdHJ1ZTtcblxuICByZXR1cm4gKFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICB2YWx1ZSAhPT0gbnVsbCAmJlxuICAgIHR5cGVvZiB2YWx1ZS5uZXh0ID09PSAnZnVuY3Rpb24nXG4gICk7XG59O1xuXG4vKipcbiAqIEV4cG9ydGluZy5cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBJdGVyYXRvcjtcbiIsICIvKipcbiAqIE1uZW1vbmlzdCBGaXhlZERlcXVlXG4gKiA9PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBGaXhlZCBjYXBhY2l0eSBkb3VibGUtZW5kZWQgcXVldWUgaW1wbGVtZW50ZWQgYXMgcmluZyBkZXF1ZS5cbiAqL1xudmFyIGl0ZXJhYmxlcyA9IHJlcXVpcmUoJy4vdXRpbHMvaXRlcmFibGVzLmpzJyksXG4gICAgSXRlcmF0b3IgPSByZXF1aXJlKCdvYmxpdGVyYXRvci9pdGVyYXRvcicpO1xuXG4vKipcbiAqIEZpeGVkRGVxdWUuXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKi9cbmZ1bmN0aW9uIEZpeGVkRGVxdWUoQXJyYXlDbGFzcywgY2FwYWNpdHkpIHtcblxuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDIpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdtbmVtb25pc3QvZml4ZWQtZGVxdWU6IGV4cGVjdGluZyBhbiBBcnJheSBjbGFzcyBhbmQgYSBjYXBhY2l0eS4nKTtcblxuICBpZiAodHlwZW9mIGNhcGFjaXR5ICE9PSAnbnVtYmVyJyB8fCBjYXBhY2l0eSA8PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignbW5lbW9uaXN0L2ZpeGVkLWRlcXVlOiBgY2FwYWNpdHlgIHNob3VsZCBiZSBhIHBvc2l0aXZlIG51bWJlci4nKTtcblxuICB0aGlzLkFycmF5Q2xhc3MgPSBBcnJheUNsYXNzO1xuICB0aGlzLmNhcGFjaXR5ID0gY2FwYWNpdHk7XG4gIHRoaXMuaXRlbXMgPSBuZXcgQXJyYXlDbGFzcyh0aGlzLmNhcGFjaXR5KTtcbiAgdGhpcy5jbGVhcigpO1xufVxuXG4vKipcbiAqIE1ldGhvZCB1c2VkIHRvIGNsZWFyIHRoZSBzdHJ1Y3R1cmUuXG4gKlxuICogQHJldHVybiB7dW5kZWZpbmVkfVxuICovXG5GaXhlZERlcXVlLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uKCkge1xuXG4gIC8vIFByb3BlcnRpZXNcbiAgdGhpcy5zdGFydCA9IDA7XG4gIHRoaXMuc2l6ZSA9IDA7XG59O1xuXG4vKipcbiAqIE1ldGhvZCB1c2VkIHRvIGFwcGVuZCBhIHZhbHVlIHRvIHRoZSBkZXF1ZS5cbiAqXG4gKiBAcGFyYW0gIHthbnl9ICAgIGl0ZW0gLSBJdGVtIHRvIGFwcGVuZC5cbiAqIEByZXR1cm4ge251bWJlcn0gICAgICAtIFJldHVybnMgdGhlIG5ldyBzaXplIG9mIHRoZSBkZXF1ZS5cbiAqL1xuRml4ZWREZXF1ZS5wcm90b3R5cGUucHVzaCA9IGZ1bmN0aW9uKGl0ZW0pIHtcbiAgaWYgKHRoaXMuc2l6ZSA9PT0gdGhpcy5jYXBhY2l0eSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ21uZW1vbmlzdC9maXhlZC1kZXF1ZS5wdXNoOiBkZXF1ZSBjYXBhY2l0eSAoJyArIHRoaXMuY2FwYWNpdHkgKyAnKSBleGNlZWRlZCEnKTtcblxuICB2YXIgaW5kZXggPSAodGhpcy5zdGFydCArIHRoaXMuc2l6ZSkgJSB0aGlzLmNhcGFjaXR5O1xuXG4gIHRoaXMuaXRlbXNbaW5kZXhdID0gaXRlbTtcblxuICByZXR1cm4gKyt0aGlzLnNpemU7XG59O1xuXG4vKipcbiAqIE1ldGhvZCB1c2VkIHRvIHByZXBlbmQgYSB2YWx1ZSB0byB0aGUgZGVxdWUuXG4gKlxuICogQHBhcmFtICB7YW55fSAgICBpdGVtIC0gSXRlbSB0byBwcmVwZW5kLlxuICogQHJldHVybiB7bnVtYmVyfSAgICAgIC0gUmV0dXJucyB0aGUgbmV3IHNpemUgb2YgdGhlIGRlcXVlLlxuICovXG5GaXhlZERlcXVlLnByb3RvdHlwZS51bnNoaWZ0ID0gZnVuY3Rpb24oaXRlbSkge1xuICBpZiAodGhpcy5zaXplID09PSB0aGlzLmNhcGFjaXR5KVxuICAgIHRocm93IG5ldyBFcnJvcignbW5lbW9uaXN0L2ZpeGVkLWRlcXVlLnVuc2hpZnQ6IGRlcXVlIGNhcGFjaXR5ICgnICsgdGhpcy5jYXBhY2l0eSArICcpIGV4Y2VlZGVkIScpO1xuXG4gIHZhciBpbmRleCA9IHRoaXMuc3RhcnQgLSAxO1xuXG4gIGlmICh0aGlzLnN0YXJ0ID09PSAwKVxuICAgIGluZGV4ID0gdGhpcy5jYXBhY2l0eSAtIDE7XG5cbiAgdGhpcy5pdGVtc1tpbmRleF0gPSBpdGVtO1xuICB0aGlzLnN0YXJ0ID0gaW5kZXg7XG5cbiAgcmV0dXJuICsrdGhpcy5zaXplO1xufTtcblxuLyoqXG4gKiBNZXRob2QgdXNlZCB0byBwb3AgdGhlIGRlcXVlLlxuICpcbiAqIEByZXR1cm4ge2FueX0gLSBSZXR1cm5zIHRoZSBwb3BwZWQgaXRlbS5cbiAqL1xuRml4ZWREZXF1ZS5wcm90b3R5cGUucG9wID0gZnVuY3Rpb24oKSB7XG4gIGlmICh0aGlzLnNpemUgPT09IDApXG4gICAgcmV0dXJuO1xuXG4gIGNvbnN0IGluZGV4ID0gKHRoaXMuc3RhcnQgKyB0aGlzLnNpemUgLSAxKSAlIHRoaXMuY2FwYWNpdHk7XG5cbiAgdGhpcy5zaXplLS07XG5cbiAgcmV0dXJuIHRoaXMuaXRlbXNbaW5kZXhdO1xufTtcblxuLyoqXG4gKiBNZXRob2QgdXNlZCB0byBzaGlmdCB0aGUgZGVxdWUuXG4gKlxuICogQHJldHVybiB7YW55fSAtIFJldHVybnMgdGhlIHNoaWZ0ZWQgaXRlbS5cbiAqL1xuRml4ZWREZXF1ZS5wcm90b3R5cGUuc2hpZnQgPSBmdW5jdGlvbigpIHtcbiAgaWYgKHRoaXMuc2l6ZSA9PT0gMClcbiAgICByZXR1cm47XG5cbiAgdmFyIGluZGV4ID0gdGhpcy5zdGFydDtcblxuICB0aGlzLnNpemUtLTtcbiAgdGhpcy5zdGFydCsrO1xuXG4gIGlmICh0aGlzLnN0YXJ0ID09PSB0aGlzLmNhcGFjaXR5KVxuICAgIHRoaXMuc3RhcnQgPSAwO1xuXG4gIHJldHVybiB0aGlzLml0ZW1zW2luZGV4XTtcbn07XG5cbi8qKlxuICogTWV0aG9kIHVzZWQgdG8gcGVlayB0aGUgZmlyc3QgdmFsdWUgb2YgdGhlIGRlcXVlLlxuICpcbiAqIEByZXR1cm4ge2FueX1cbiAqL1xuRml4ZWREZXF1ZS5wcm90b3R5cGUucGVla0ZpcnN0ID0gZnVuY3Rpb24oKSB7XG4gIGlmICh0aGlzLnNpemUgPT09IDApXG4gICAgcmV0dXJuO1xuXG4gIHJldHVybiB0aGlzLml0ZW1zW3RoaXMuc3RhcnRdO1xufTtcblxuLyoqXG4gKiBNZXRob2QgdXNlZCB0byBwZWVrIHRoZSBsYXN0IHZhbHVlIG9mIHRoZSBkZXF1ZS5cbiAqXG4gKiBAcmV0dXJuIHthbnl9XG4gKi9cbkZpeGVkRGVxdWUucHJvdG90eXBlLnBlZWtMYXN0ID0gZnVuY3Rpb24oKSB7XG4gIGlmICh0aGlzLnNpemUgPT09IDApXG4gICAgcmV0dXJuO1xuXG4gIHZhciBpbmRleCA9IHRoaXMuc3RhcnQgKyB0aGlzLnNpemUgLSAxO1xuXG4gIGlmIChpbmRleCA+IHRoaXMuY2FwYWNpdHkpXG4gICAgaW5kZXggLT0gdGhpcy5jYXBhY2l0eTtcblxuICByZXR1cm4gdGhpcy5pdGVtc1tpbmRleF07XG59O1xuXG4vKipcbiAqIE1ldGhvZCB1c2VkIHRvIGdldCB0aGUgZGVzaXJlZCB2YWx1ZSBvZiB0aGUgZGVxdWUuXG4gKlxuICogQHBhcmFtICB7bnVtYmVyfSBpbmRleFxuICogQHJldHVybiB7YW55fVxuICovXG5GaXhlZERlcXVlLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbihpbmRleCkge1xuICBpZiAodGhpcy5zaXplID09PSAwKVxuICAgIHJldHVybjtcblxuICBpbmRleCA9IHRoaXMuc3RhcnQgKyBpbmRleDtcblxuICBpZiAoaW5kZXggPiB0aGlzLmNhcGFjaXR5KVxuICAgIGluZGV4IC09IHRoaXMuY2FwYWNpdHk7XG5cbiAgcmV0dXJuIHRoaXMuaXRlbXNbaW5kZXhdO1xufTtcblxuLyoqXG4gKiBNZXRob2QgdXNlZCB0byBpdGVyYXRlIG92ZXIgdGhlIGRlcXVlLlxuICpcbiAqIEBwYXJhbSAge2Z1bmN0aW9ufSAgY2FsbGJhY2sgLSBGdW5jdGlvbiB0byBjYWxsIGZvciBlYWNoIGl0ZW0uXG4gKiBAcGFyYW0gIHtvYmplY3R9ICAgIHNjb3BlICAgIC0gT3B0aW9uYWwgc2NvcGUuXG4gKiBAcmV0dXJuIHt1bmRlZmluZWR9XG4gKi9cbkZpeGVkRGVxdWUucHJvdG90eXBlLmZvckVhY2ggPSBmdW5jdGlvbihjYWxsYmFjaywgc2NvcGUpIHtcbiAgc2NvcGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IHNjb3BlIDogdGhpcztcblxuICB2YXIgYyA9IHRoaXMuY2FwYWNpdHksXG4gICAgICBsID0gdGhpcy5zaXplLFxuICAgICAgaSA9IHRoaXMuc3RhcnQsXG4gICAgICBqID0gMDtcblxuICB3aGlsZSAoaiA8IGwpIHtcbiAgICBjYWxsYmFjay5jYWxsKHNjb3BlLCB0aGlzLml0ZW1zW2ldLCBqLCB0aGlzKTtcbiAgICBpKys7XG4gICAgaisrO1xuXG4gICAgaWYgKGkgPT09IGMpXG4gICAgICBpID0gMDtcbiAgfVxufTtcblxuLyoqXG4gKiBNZXRob2QgdXNlZCB0byBjb252ZXJ0IHRoZSBkZXF1ZSB0byBhIEphdmFTY3JpcHQgYXJyYXkuXG4gKlxuICogQHJldHVybiB7YXJyYXl9XG4gKi9cbi8vIFRPRE86IG9wdGlvbmFsIGFycmF5IGNsYXNzIGFzIGFyZ3VtZW50P1xuRml4ZWREZXF1ZS5wcm90b3R5cGUudG9BcnJheSA9IGZ1bmN0aW9uKCkge1xuXG4gIC8vIE9wdGltaXphdGlvblxuICB2YXIgb2Zmc2V0ID0gdGhpcy5zdGFydCArIHRoaXMuc2l6ZTtcblxuICBpZiAob2Zmc2V0IDwgdGhpcy5jYXBhY2l0eSlcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5zbGljZSh0aGlzLnN0YXJ0LCBvZmZzZXQpO1xuXG4gIHZhciBhcnJheSA9IG5ldyB0aGlzLkFycmF5Q2xhc3ModGhpcy5zaXplKSxcbiAgICAgIGMgPSB0aGlzLmNhcGFjaXR5LFxuICAgICAgbCA9IHRoaXMuc2l6ZSxcbiAgICAgIGkgPSB0aGlzLnN0YXJ0LFxuICAgICAgaiA9IDA7XG5cbiAgd2hpbGUgKGogPCBsKSB7XG4gICAgYXJyYXlbal0gPSB0aGlzLml0ZW1zW2ldO1xuICAgIGkrKztcbiAgICBqKys7XG5cbiAgICBpZiAoaSA9PT0gYylcbiAgICAgIGkgPSAwO1xuICB9XG5cbiAgcmV0dXJuIGFycmF5O1xufTtcblxuLyoqXG4gKiBNZXRob2QgdXNlZCB0byBjcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgZGVxdWUncyB2YWx1ZXMuXG4gKlxuICogQHJldHVybiB7SXRlcmF0b3J9XG4gKi9cbkZpeGVkRGVxdWUucHJvdG90eXBlLnZhbHVlcyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgaXRlbXMgPSB0aGlzLml0ZW1zLFxuICAgICAgYyA9IHRoaXMuY2FwYWNpdHksXG4gICAgICBsID0gdGhpcy5zaXplLFxuICAgICAgaSA9IHRoaXMuc3RhcnQsXG4gICAgICBqID0gMDtcblxuICByZXR1cm4gbmV3IEl0ZXJhdG9yKGZ1bmN0aW9uKCkge1xuICAgIGlmIChqID49IGwpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkb25lOiB0cnVlXG4gICAgICB9O1xuXG4gICAgdmFyIHZhbHVlID0gaXRlbXNbaV07XG5cbiAgICBpKys7XG4gICAgaisrO1xuXG4gICAgaWYgKGkgPT09IGMpXG4gICAgICBpID0gMDtcblxuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBkb25lOiBmYWxzZVxuICAgIH07XG4gIH0pO1xufTtcblxuLyoqXG4gKiBNZXRob2QgdXNlZCB0byBjcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgZGVxdWUncyBlbnRyaWVzLlxuICpcbiAqIEByZXR1cm4ge0l0ZXJhdG9yfVxuICovXG5GaXhlZERlcXVlLnByb3RvdHlwZS5lbnRyaWVzID0gZnVuY3Rpb24oKSB7XG4gIHZhciBpdGVtcyA9IHRoaXMuaXRlbXMsXG4gICAgICBjID0gdGhpcy5jYXBhY2l0eSxcbiAgICAgIGwgPSB0aGlzLnNpemUsXG4gICAgICBpID0gdGhpcy5zdGFydCxcbiAgICAgIGogPSAwO1xuXG4gIHJldHVybiBuZXcgSXRlcmF0b3IoZnVuY3Rpb24oKSB7XG4gICAgaWYgKGogPj0gbClcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRvbmU6IHRydWVcbiAgICAgIH07XG5cbiAgICB2YXIgdmFsdWUgPSBpdGVtc1tpXTtcblxuICAgIGkrKztcblxuICAgIGlmIChpID09PSBjKVxuICAgICAgaSA9IDA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IFtqKyssIHZhbHVlXSxcbiAgICAgIGRvbmU6IGZhbHNlXG4gICAgfTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIEF0dGFjaGluZyB0aGUgIy52YWx1ZXMgbWV0aG9kIHRvIFN5bWJvbC5pdGVyYXRvciBpZiBwb3NzaWJsZS5cbiAqL1xuaWYgKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnKVxuICBGaXhlZERlcXVlLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdID0gRml4ZWREZXF1ZS5wcm90b3R5cGUudmFsdWVzO1xuXG4vKipcbiAqIENvbnZlbmllbmNlIGtub3duIG1ldGhvZHMuXG4gKi9cbkZpeGVkRGVxdWUucHJvdG90eXBlLmluc3BlY3QgPSBmdW5jdGlvbigpIHtcbiAgdmFyIGFycmF5ID0gdGhpcy50b0FycmF5KCk7XG5cbiAgYXJyYXkudHlwZSA9IHRoaXMuQXJyYXlDbGFzcy5uYW1lO1xuICBhcnJheS5jYXBhY2l0eSA9IHRoaXMuY2FwYWNpdHk7XG5cbiAgLy8gVHJpY2sgc28gdGhhdCBub2RlIGRpc3BsYXlzIHRoZSBuYW1lIG9mIHRoZSBjb25zdHJ1Y3RvclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksICdjb25zdHJ1Y3RvcicsIHtcbiAgICB2YWx1ZTogRml4ZWREZXF1ZSxcbiAgICBlbnVtZXJhYmxlOiBmYWxzZVxuICB9KTtcblxuICByZXR1cm4gYXJyYXk7XG59O1xuXG5pZiAodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcpXG4gIEZpeGVkRGVxdWUucHJvdG90eXBlW1N5bWJvbC5mb3IoJ25vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tJyldID0gRml4ZWREZXF1ZS5wcm90b3R5cGUuaW5zcGVjdDtcblxuLyoqXG4gKiBTdGF0aWMgQC5mcm9tIGZ1bmN0aW9uIHRha2luZyBhbiBhcmJpdHJhcnkgaXRlcmFibGUgJiBjb252ZXJ0aW5nIGl0IGludG9cbiAqIGEgZGVxdWUuXG4gKlxuICogQHBhcmFtICB7SXRlcmFibGV9IGl0ZXJhYmxlICAgLSBUYXJnZXQgaXRlcmFibGUuXG4gKiBAcGFyYW0gIHtmdW5jdGlvbn0gQXJyYXlDbGFzcyAtIEFycmF5IGNsYXNzIHRvIHVzZS5cbiAqIEBwYXJhbSAge251bWJlcn0gICBjYXBhY2l0eSAgIC0gRGVzaXJlZCBjYXBhY2l0eS5cbiAqIEByZXR1cm4ge0Zpbml0ZVN0YWNrfVxuICovXG5GaXhlZERlcXVlLmZyb20gPSBmdW5jdGlvbihpdGVyYWJsZSwgQXJyYXlDbGFzcywgY2FwYWNpdHkpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAzKSB7XG4gICAgY2FwYWNpdHkgPSBpdGVyYWJsZXMuZ3Vlc3NMZW5ndGgoaXRlcmFibGUpO1xuXG4gICAgaWYgKHR5cGVvZiBjYXBhY2l0eSAhPT0gJ251bWJlcicpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21uZW1vbmlzdC9maXhlZC1kZXF1ZS5mcm9tOiBjb3VsZCBub3QgZ3Vlc3MgaXRlcmFibGUgbGVuZ3RoLiBQbGVhc2UgcHJvdmlkZSBkZXNpcmVkIGNhcGFjaXR5IGFzIGxhc3QgYXJndW1lbnQuJyk7XG4gIH1cblxuICB2YXIgZGVxdWUgPSBuZXcgRml4ZWREZXF1ZShBcnJheUNsYXNzLCBjYXBhY2l0eSk7XG5cbiAgaWYgKGl0ZXJhYmxlcy5pc0FycmF5TGlrZShpdGVyYWJsZSkpIHtcbiAgICB2YXIgaSwgbDtcblxuICAgIGZvciAoaSA9IDAsIGwgPSBpdGVyYWJsZS5sZW5ndGg7IGkgPCBsOyBpKyspXG4gICAgICBkZXF1ZS5pdGVtc1tpXSA9IGl0ZXJhYmxlW2ldO1xuXG4gICAgZGVxdWUuc2l6ZSA9IGw7XG5cbiAgICByZXR1cm4gZGVxdWU7XG4gIH1cblxuICBpdGVyYWJsZXMuZm9yRWFjaChpdGVyYWJsZSwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICBkZXF1ZS5wdXNoKHZhbHVlKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGRlcXVlO1xufTtcblxuLyoqXG4gKiBFeHBvcnRpbmcuXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gRml4ZWREZXF1ZTtcbiIsICIvKipcbiAqIEdyYXBob2xvZ3kgVHJhdmVyc2FsIFV0aWxzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBNaXNjZWxsYW5lb3VzIHV0aWxzIHVzZWQgdGhyb3VnaG91dCB0aGUgbGlicmFyeS5cbiAqL1xuXG5mdW5jdGlvbiBUcmF2ZXJzYWxSZWNvcmQobm9kZSwgYXR0ciwgZGVwdGgpIHtcbiAgdGhpcy5ub2RlID0gbm9kZTtcbiAgdGhpcy5hdHRyaWJ1dGVzID0gYXR0cjtcbiAgdGhpcy5kZXB0aCA9IGRlcHRoO1xufVxuXG5leHBvcnRzLlRyYXZlcnNhbFJlY29yZCA9IFRyYXZlcnNhbFJlY29yZDtcbiIsICIvKipcbiAqIEdyYXBob2xvZ3kgVHJhdmVyc2FsIEJGU1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PVxuICpcbiAqIEJyZWFkdGgtRmlyc3QgU2VhcmNoIHRyYXZlcnNhbCBmdW5jdGlvbi5cbiAqL1xudmFyIGlzR3JhcGggPSByZXF1aXJlKCdncmFwaG9sb2d5LXV0aWxzL2lzLWdyYXBoJyk7XG52YXIgRml4ZWREZXF1ZSA9IHJlcXVpcmUoJ21uZW1vbmlzdC9maXhlZC1kZXF1ZScpO1xudmFyIFRyYXZlcnNhbFJlY29yZCA9IHJlcXVpcmUoJy4vdXRpbHMnKS5UcmF2ZXJzYWxSZWNvcmQ7XG5cbi8qKlxuICogQkZTIHRyYXZlcnNhbCBpbiB0aGUgZ2l2ZW4gZ3JhcGggdXNpbmcgYSBjYWxsYmFjayBmdW5jdGlvblxuICpcbiAqIEBwYXJhbSB7R3JhcGh9ICAgIGdyYXBoICAgIC0gVGFyZ2V0IGdyYXBoLlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBJdGVyYXRpb24gY2FsbGJhY2suXG4gKi9cbmZ1bmN0aW9uIGJmcyhncmFwaCwgY2FsbGJhY2spIHtcbiAgaWYgKCFpc0dyYXBoKGdyYXBoKSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2dyYXBob2xvZ3ktdHJhdmVyc2FsL2JmczogZXhwZWN0aW5nIGEgZ3JhcGhvbG9neSBpbnN0YW5jZS4nKTtcblxuICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKVxuICAgIHRocm93IG5ldyBFcnJvcignZ3JhcGhvbG9neS10cmF2ZXJzYWwvYmZzOiBnaXZlbiBjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbi4nKTtcblxuICAvLyBFYXJseSB0ZXJtaW5hdGlvblxuICBpZiAoZ3JhcGgub3JkZXIgPT09IDApXG4gICAgcmV0dXJuO1xuXG4gIHZhciBzZWVuID0gbmV3IFNldCgpO1xuICB2YXIgcXVldWUgPSBuZXcgRml4ZWREZXF1ZShBcnJheSwgZ3JhcGgub3JkZXIpO1xuICB2YXIgcmVjb3JkLCBkZXB0aDtcblxuICBmdW5jdGlvbiBuZWlnaGJvckNhbGxiYWNrKG5laWdoYm9yLCBhdHRyKSB7XG4gICAgaWYgKHNlZW4uaGFzKG5laWdoYm9yKSlcbiAgICAgIHJldHVybjtcblxuICAgIHNlZW4uYWRkKG5laWdoYm9yKTtcbiAgICBxdWV1ZS5wdXNoKG5ldyBUcmF2ZXJzYWxSZWNvcmQobmVpZ2hib3IsIGF0dHIsIGRlcHRoICsgMSkpO1xuICB9XG5cbiAgZ3JhcGguZm9yRWFjaE5vZGUoZnVuY3Rpb24obm9kZSwgYXR0cikge1xuICAgIGlmIChzZWVuLmhhcyhub2RlKSlcbiAgICAgIHJldHVybjtcblxuICAgIHNlZW4uYWRkKG5vZGUpO1xuICAgIHF1ZXVlLnB1c2gobmV3IFRyYXZlcnNhbFJlY29yZChub2RlLCBhdHRyLCAwKSk7XG5cbiAgICB3aGlsZSAocXVldWUuc2l6ZSAhPT0gMCkge1xuICAgICAgcmVjb3JkID0gcXVldWUuc2hpZnQoKTtcbiAgICAgIGRlcHRoID0gcmVjb3JkLmRlcHRoO1xuXG4gICAgICBjYWxsYmFjayhyZWNvcmQubm9kZSwgcmVjb3JkLmF0dHJpYnV0ZXMsIGRlcHRoKTtcblxuICAgICAgZ3JhcGguZm9yRWFjaE91dGJvdW5kTmVpZ2hib3IocmVjb3JkLm5vZGUsIG5laWdoYm9yQ2FsbGJhY2spO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogQkZTIHRyYXZlcnNhbCBpbiB0aGUgZ2l2ZW4gZ3JhcGgsIHN0YXJ0aW5nIGZyb20gdGhlIGdpdmVuIG5vZGUsIHVzaW5nIGFcbiAqIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7R3JhcGh9ICAgIGdyYXBoICAgIC0gVGFyZ2V0IGdyYXBoLlxuICogQHBhcmFtIHtzdHJpbmd9ICAgbm9kZSAgICAgLSBTdGFydGluZyBub2RlLlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBJdGVyYXRpb24gY2FsbGJhY2suXG4gKi9cbmZ1bmN0aW9uIGJmc0Zyb21Ob2RlKGdyYXBoLCBub2RlLCBjYWxsYmFjaykge1xuICBpZiAoIWlzR3JhcGgoZ3JhcGgpKVxuICAgIHRocm93IG5ldyBFcnJvcignZ3JhcGhvbG9neS10cmF2ZXJzYWwvZGZzOiBleHBlY3RpbmcgYSBncmFwaG9sb2d5IGluc3RhbmNlLicpO1xuXG4gIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdncmFwaG9sb2d5LXRyYXZlcnNhbC9kZnM6IGdpdmVuIGNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uLicpO1xuXG4gIC8vIEVhcmx5IHRlcm1pbmF0aW9uXG4gIGlmIChncmFwaC5vcmRlciA9PT0gMClcbiAgICByZXR1cm47XG5cbiAgbm9kZSA9ICcnICsgbm9kZTtcblxuICB2YXIgc2VlbiA9IG5ldyBTZXQoKTtcbiAgdmFyIHF1ZXVlID0gbmV3IEZpeGVkRGVxdWUoQXJyYXksIGdyYXBoLm9yZGVyKTtcbiAgdmFyIGRlcHRoLCByZWNvcmQ7XG5cbiAgZnVuY3Rpb24gbmVpZ2hib3JDYWxsYmFjayhuZWlnaGJvciwgYXR0cikge1xuICAgIGlmIChzZWVuLmhhcyhuZWlnaGJvcikpXG4gICAgICByZXR1cm47XG5cbiAgICBzZWVuLmFkZChuZWlnaGJvcik7XG4gICAgcXVldWUucHVzaChuZXcgVHJhdmVyc2FsUmVjb3JkKG5laWdoYm9yLCBhdHRyLCBkZXB0aCArIDEpKTtcbiAgfVxuXG4gIHNlZW4uYWRkKG5vZGUpO1xuICBxdWV1ZS5wdXNoKG5ldyBUcmF2ZXJzYWxSZWNvcmQobm9kZSwgZ3JhcGguZ2V0Tm9kZUF0dHJpYnV0ZXMobm9kZSksIDApKTtcblxuICB3aGlsZSAocXVldWUuc2l6ZSAhPT0gMCkge1xuICAgIHJlY29yZCA9IHF1ZXVlLnNoaWZ0KCk7XG4gICAgZGVwdGggPSByZWNvcmQuZGVwdGg7XG5cbiAgICBjYWxsYmFjayhyZWNvcmQubm9kZSwgcmVjb3JkLmF0dHJpYnV0ZXMsIGRlcHRoKTtcblxuICAgIGdyYXBoLmZvckVhY2hPdXRib3VuZE5laWdoYm9yKHJlY29yZC5ub2RlLCBuZWlnaGJvckNhbGxiYWNrKTtcbiAgfVxufVxuXG5leHBvcnRzLmJmcyA9IGJmcztcbmV4cG9ydHMuYmZzRnJvbU5vZGUgPSBiZnNGcm9tTm9kZTtcbiIsICIvKipcbiAqIEdyYXBob2xvZ3kgVHJhdmVyc2FsIERGU1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PVxuICpcbiAqIERlcHRoLUZpcnN0IFNlYXJjaCB0cmF2ZXJzYWwgZnVuY3Rpb24uXG4gKi9cbnZhciBpc0dyYXBoID0gcmVxdWlyZSgnZ3JhcGhvbG9neS11dGlscy9pcy1ncmFwaCcpO1xudmFyIFRyYXZlcnNhbFJlY29yZCA9IHJlcXVpcmUoJy4vdXRpbHMnKS5UcmF2ZXJzYWxSZWNvcmQ7XG5cbi8qKlxuICogREZTIHRyYXZlcnNhbCBpbiB0aGUgZ2l2ZW4gZ3JhcGggdXNpbmcgYSBjYWxsYmFjayBmdW5jdGlvblxuICpcbiAqIEBwYXJhbSB7R3JhcGh9ICAgIGdyYXBoICAgIC0gVGFyZ2V0IGdyYXBoLlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBJdGVyYXRpb24gY2FsbGJhY2suXG4gKi9cbmZ1bmN0aW9uIGRmcyhncmFwaCwgY2FsbGJhY2spIHtcbiAgaWYgKCFpc0dyYXBoKGdyYXBoKSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2dyYXBob2xvZ3ktdHJhdmVyc2FsL2RmczogZXhwZWN0aW5nIGEgZ3JhcGhvbG9neSBpbnN0YW5jZS4nKTtcblxuICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKVxuICAgIHRocm93IG5ldyBFcnJvcignZ3JhcGhvbG9neS10cmF2ZXJzYWwvZGZzOiBnaXZlbiBjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbi4nKTtcblxuICAvLyBFYXJseSB0ZXJtaW5hdGlvblxuICBpZiAoZ3JhcGgub3JkZXIgPT09IDApXG4gICAgcmV0dXJuO1xuXG4gIHZhciBzZWVuID0gbmV3IFNldCgpO1xuICB2YXIgc3RhY2sgPSBbXTtcbiAgdmFyIGRlcHRoLCByZWNvcmQ7XG5cbiAgZnVuY3Rpb24gbmVpZ2hib3JDYWxsYmFjayhuZWlnaGJvciwgYXR0cikge1xuICAgIGlmIChzZWVuLmhhcyhuZWlnaGJvcikpXG4gICAgICByZXR1cm47XG5cbiAgICBzZWVuLmFkZChuZWlnaGJvcik7XG4gICAgc3RhY2sucHVzaChuZXcgVHJhdmVyc2FsUmVjb3JkKG5laWdoYm9yLCBhdHRyLCBkZXB0aCArIDEpKTtcbiAgfVxuXG4gIGdyYXBoLmZvckVhY2hOb2RlKGZ1bmN0aW9uKG5vZGUsIGF0dHIpIHtcbiAgICBpZiAoc2Vlbi5oYXMobm9kZSkpXG4gICAgICByZXR1cm47XG5cbiAgICBzZWVuLmFkZChub2RlKTtcbiAgICBzdGFjay5wdXNoKG5ldyBUcmF2ZXJzYWxSZWNvcmQobm9kZSwgYXR0ciwgMCkpO1xuXG4gICAgd2hpbGUgKHN0YWNrLmxlbmd0aCAhPT0gMCkge1xuICAgICAgcmVjb3JkID0gc3RhY2sucG9wKCk7XG4gICAgICBkZXB0aCA9IHJlY29yZC5kZXB0aDtcblxuICAgICAgY2FsbGJhY2socmVjb3JkLm5vZGUsIHJlY29yZC5hdHRyaWJ1dGVzLCBkZXB0aCk7XG5cbiAgICAgIGdyYXBoLmZvckVhY2hPdXRib3VuZE5laWdoYm9yKHJlY29yZC5ub2RlLCBuZWlnaGJvckNhbGxiYWNrKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIERGUyB0cmF2ZXJzYWwgaW4gdGhlIGdpdmVuIGdyYXBoLCBzdGFydGluZyBmcm9tIHRoZSBnaXZlbiBub2RlLCB1c2luZyBhXG4gKiBjYWxsYmFjayBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0ge0dyYXBofSAgICBncmFwaCAgICAtIFRhcmdldCBncmFwaC5cbiAqIEBwYXJhbSB7c3RyaW5nfSAgIG5vZGUgICAgIC0gU3RhcnRpbmcgbm9kZS5cbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gSXRlcmF0aW9uIGNhbGxiYWNrLlxuICovXG5mdW5jdGlvbiBkZnNGcm9tTm9kZShncmFwaCwgbm9kZSwgY2FsbGJhY2spIHtcbiAgaWYgKCFpc0dyYXBoKGdyYXBoKSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2dyYXBob2xvZ3ktdHJhdmVyc2FsL2RmczogZXhwZWN0aW5nIGEgZ3JhcGhvbG9neSBpbnN0YW5jZS4nKTtcblxuICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKVxuICAgIHRocm93IG5ldyBFcnJvcignZ3JhcGhvbG9neS10cmF2ZXJzYWwvZGZzOiBnaXZlbiBjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbi4nKTtcblxuICAvLyBFYXJseSB0ZXJtaW5hdGlvblxuICBpZiAoZ3JhcGgub3JkZXIgPT09IDApXG4gICAgcmV0dXJuO1xuXG4gIG5vZGUgPSAnJyArIG5vZGU7XG5cbiAgdmFyIHNlZW4gPSBuZXcgU2V0KCk7XG4gIHZhciBzdGFjayA9IFtdO1xuICB2YXIgZGVwdGgsIHJlY29yZDtcblxuICBmdW5jdGlvbiBuZWlnaGJvckNhbGxiYWNrKG5laWdoYm9yLCBhdHRyKSB7XG4gICAgaWYgKHNlZW4uaGFzKG5laWdoYm9yKSlcbiAgICAgIHJldHVybjtcblxuICAgIHNlZW4uYWRkKG5laWdoYm9yKTtcbiAgICBzdGFjay5wdXNoKG5ldyBUcmF2ZXJzYWxSZWNvcmQobmVpZ2hib3IsIGF0dHIsIGRlcHRoICsgMSkpO1xuICB9XG5cbiAgc2Vlbi5hZGQobm9kZSk7XG4gIHN0YWNrLnB1c2gobmV3IFRyYXZlcnNhbFJlY29yZChub2RlLCBncmFwaC5nZXROb2RlQXR0cmlidXRlcyhub2RlKSwgMCkpO1xuXG4gIHdoaWxlIChzdGFjay5sZW5ndGggIT09IDApIHtcbiAgICByZWNvcmQgPSBzdGFjay5wb3AoKTtcbiAgICBkZXB0aCA9IHJlY29yZC5kZXB0aDtcblxuICAgIGNhbGxiYWNrKHJlY29yZC5ub2RlLCByZWNvcmQuYXR0cmlidXRlcywgZGVwdGgpO1xuXG4gICAgZ3JhcGguZm9yRWFjaE91dGJvdW5kTmVpZ2hib3IocmVjb3JkLm5vZGUsIG5laWdoYm9yQ2FsbGJhY2spO1xuICB9XG59XG5cbmV4cG9ydHMuZGZzID0gZGZzO1xuZXhwb3J0cy5kZnNGcm9tTm9kZSA9IGRmc0Zyb21Ob2RlO1xuIiwgInZhciBiZnNNb2R1bGUgPSByZXF1aXJlKCcuL2Jmcy5qcycpO1xudmFyIGRmc01vZHVsZSA9IHJlcXVpcmUoJy4vZGZzLmpzJyk7XG5cbnZhciBrO1xuXG5mb3IgKGsgaW4gYmZzTW9kdWxlKVxuICBleHBvcnRzW2tdID0gYmZzTW9kdWxlW2tdO1xuXG5mb3IgKGsgaW4gZGZzTW9kdWxlKVxuICBleHBvcnRzW2tdID0gZGZzTW9kdWxlW2tdO1xuIiwgIi8vIHRoZXNlIGFyZW4ndCByZWFsbHkgcHJpdmF0ZSwgYnV0IG5vciBhcmUgdGhleSByZWFsbHkgdXNlZnVsIHRvIGRvY3VtZW50XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY2xhc3MgTHV4b25FcnJvciBleHRlbmRzIEVycm9yIHt9XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIEludmFsaWREYXRlVGltZUVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHJlYXNvbikge1xuICAgIHN1cGVyKGBJbnZhbGlkIERhdGVUaW1lOiAke3JlYXNvbi50b01lc3NhZ2UoKX1gKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnZhbGlkSW50ZXJ2YWxFcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihyZWFzb24pIHtcbiAgICBzdXBlcihgSW52YWxpZCBJbnRlcnZhbDogJHtyZWFzb24udG9NZXNzYWdlKCl9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZER1cmF0aW9uRXJyb3IgZXh0ZW5kcyBMdXhvbkVycm9yIHtcbiAgY29uc3RydWN0b3IocmVhc29uKSB7XG4gICAgc3VwZXIoYEludmFsaWQgRHVyYXRpb246ICR7cmVhc29uLnRvTWVzc2FnZSgpfWApO1xuICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7fVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnZhbGlkVW5pdEVycm9yIGV4dGVuZHMgTHV4b25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHVuaXQpIHtcbiAgICBzdXBlcihgSW52YWxpZCB1bml0ICR7dW5pdH1gKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnZhbGlkQXJndW1lbnRFcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige31cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgWm9uZUlzQWJzdHJhY3RFcnJvciBleHRlbmRzIEx1eG9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcIlpvbmUgaXMgYW4gYWJzdHJhY3QgY2xhc3NcIik7XG4gIH1cbn1cbiIsICIvKipcbiAqIEBwcml2YXRlXG4gKi9cblxuY29uc3QgbiA9IFwibnVtZXJpY1wiLFxuICBzID0gXCJzaG9ydFwiLFxuICBsID0gXCJsb25nXCI7XG5cbmV4cG9ydCBjb25zdCBEQVRFX1NIT1JUID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbixcbiAgZGF5OiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVfTUVEID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogcyxcbiAgZGF5OiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVfTUVEX1dJVEhfV0VFS0RBWSA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IHMsXG4gIGRheTogbixcbiAgd2Vla2RheTogcyxcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFX0ZVTEwgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBsLFxuICBkYXk6IG4sXG59O1xuXG5leHBvcnQgY29uc3QgREFURV9IVUdFID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbCxcbiAgZGF5OiBuLFxuICB3ZWVrZGF5OiBsLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfU0lNUExFID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG59O1xuXG5leHBvcnQgY29uc3QgVElNRV9XSVRIX1NFQ09ORFMgPSB7XG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfV0lUSF9TSE9SVF9PRkZTRVQgPSB7XG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxuICB0aW1lWm9uZU5hbWU6IHMsXG59O1xuXG5leHBvcnQgY29uc3QgVElNRV9XSVRIX0xPTkdfT0ZGU0VUID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbiAgdGltZVpvbmVOYW1lOiBsLFxufTtcblxuZXhwb3J0IGNvbnN0IFRJTUVfMjRfU0lNUExFID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIGhvdXJDeWNsZTogXCJoMjNcIixcbn07XG5cbmV4cG9ydCBjb25zdCBUSU1FXzI0X1dJVEhfU0VDT05EUyA9IHtcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIGhvdXJDeWNsZTogXCJoMjNcIixcbn07XG5cbmV4cG9ydCBjb25zdCBUSU1FXzI0X1dJVEhfU0hPUlRfT0ZGU0VUID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbiAgaG91ckN5Y2xlOiBcImgyM1wiLFxuICB0aW1lWm9uZU5hbWU6IHMsXG59O1xuXG5leHBvcnQgY29uc3QgVElNRV8yNF9XSVRIX0xPTkdfT0ZGU0VUID0ge1xuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHNlY29uZDogbixcbiAgaG91ckN5Y2xlOiBcImgyM1wiLFxuICB0aW1lWm9uZU5hbWU6IGwsXG59O1xuXG5leHBvcnQgY29uc3QgREFURVRJTUVfU0hPUlQgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBuLFxuICBkYXk6IG4sXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9TSE9SVF9XSVRIX1NFQ09ORFMgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBuLFxuICBkYXk6IG4sXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVUSU1FX01FRCA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IHMsXG4gIGRheTogbixcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFMgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBzLFxuICBkYXk6IG4sXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbiAgc2Vjb25kOiBuLFxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVkgPSB7XG4gIHllYXI6IG4sXG4gIG1vbnRoOiBzLFxuICBkYXk6IG4sXG4gIHdlZWtkYXk6IHMsXG4gIGhvdXI6IG4sXG4gIG1pbnV0ZTogbixcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9GVUxMID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbCxcbiAgZGF5OiBuLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHRpbWVab25lTmFtZTogcyxcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUyA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IGwsXG4gIGRheTogbixcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIHRpbWVab25lTmFtZTogcyxcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9IVUdFID0ge1xuICB5ZWFyOiBuLFxuICBtb250aDogbCxcbiAgZGF5OiBuLFxuICB3ZWVrZGF5OiBsLFxuICBob3VyOiBuLFxuICBtaW51dGU6IG4sXG4gIHRpbWVab25lTmFtZTogbCxcbn07XG5cbmV4cG9ydCBjb25zdCBEQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUyA9IHtcbiAgeWVhcjogbixcbiAgbW9udGg6IGwsXG4gIGRheTogbixcbiAgd2Vla2RheTogbCxcbiAgaG91cjogbixcbiAgbWludXRlOiBuLFxuICBzZWNvbmQ6IG4sXG4gIHRpbWVab25lTmFtZTogbCxcbn07XG4iLCAiLypcbiAgVGhpcyBpcyBqdXN0IGEganVuayBkcmF3ZXIsIGNvbnRhaW5pbmcgYW55dGhpbmcgdXNlZCBhY3Jvc3MgbXVsdGlwbGUgY2xhc3Nlcy5cbiAgQmVjYXVzZSBMdXhvbiBpcyBzbWFsbChpc2gpLCB0aGlzIHNob3VsZCBzdGF5IHNtYWxsIGFuZCB3ZSB3b24ndCB3b3JyeSBhYm91dCBzcGxpdHRpbmdcbiAgaXQgdXAgaW50bywgc2F5LCBwYXJzaW5nVXRpbC5qcyBhbmQgYmFzaWNVdGlsLmpzIGFuZCBzbyBvbi4gQnV0IHRoZXkgYXJlIGRpdmlkZWQgdXAgYnkgZmVhdHVyZSBhcmVhLlxuKi9cblxuaW1wb3J0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JzLmpzXCI7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuXG4vLyBUWVBFU1xuXG5leHBvcnQgZnVuY3Rpb24gaXNVbmRlZmluZWQobykge1xuICByZXR1cm4gdHlwZW9mIG8gPT09IFwidW5kZWZpbmVkXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlcihvKSB7XG4gIHJldHVybiB0eXBlb2YgbyA9PT0gXCJudW1iZXJcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZWdlcihvKSB7XG4gIHJldHVybiB0eXBlb2YgbyA9PT0gXCJudW1iZXJcIiAmJiBvICUgMSA9PT0gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nKG8pIHtcbiAgcmV0dXJuIHR5cGVvZiBvID09PSBcInN0cmluZ1wiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlKG8pIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKSA9PT0gXCJbb2JqZWN0IERhdGVdXCI7XG59XG5cbi8vIENBUEFCSUxJVElFU1xuXG5leHBvcnQgZnVuY3Rpb24gaGFzUmVsYXRpdmUoKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHR5cGVvZiBJbnRsICE9PSBcInVuZGVmaW5lZFwiICYmICEhSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQ7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8gT0JKRUNUUyBBTkQgQVJSQVlTXG5cbmV4cG9ydCBmdW5jdGlvbiBtYXliZUFycmF5KHRoaW5nKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHRoaW5nKSA/IHRoaW5nIDogW3RoaW5nXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJlc3RCeShhcnIsIGJ5LCBjb21wYXJlKSB7XG4gIGlmIChhcnIubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4gYXJyLnJlZHVjZSgoYmVzdCwgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHBhaXIgPSBbYnkobmV4dCksIG5leHRdO1xuICAgIGlmICghYmVzdCkge1xuICAgICAgcmV0dXJuIHBhaXI7XG4gICAgfSBlbHNlIGlmIChjb21wYXJlKGJlc3RbMF0sIHBhaXJbMF0pID09PSBiZXN0WzBdKSB7XG4gICAgICByZXR1cm4gYmVzdDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHBhaXI7XG4gICAgfVxuICB9LCBudWxsKVsxXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBpY2sob2JqLCBrZXlzKSB7XG4gIHJldHVybiBrZXlzLnJlZHVjZSgoYSwgaykgPT4ge1xuICAgIGFba10gPSBvYmpba107XG4gICAgcmV0dXJuIGE7XG4gIH0sIHt9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc093blByb3BlcnR5KG9iaiwgcHJvcCkge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7XG59XG5cbi8vIE5VTUJFUlMgQU5EIFNUUklOR1NcblxuZXhwb3J0IGZ1bmN0aW9uIGludGVnZXJCZXR3ZWVuKHRoaW5nLCBib3R0b20sIHRvcCkge1xuICByZXR1cm4gaXNJbnRlZ2VyKHRoaW5nKSAmJiB0aGluZyA+PSBib3R0b20gJiYgdGhpbmcgPD0gdG9wO1xufVxuXG4vLyB4ICUgbiBidXQgdGFrZXMgdGhlIHNpZ24gb2YgbiBpbnN0ZWFkIG9mIHhcbmV4cG9ydCBmdW5jdGlvbiBmbG9vck1vZCh4LCBuKSB7XG4gIHJldHVybiB4IC0gbiAqIE1hdGguZmxvb3IoeCAvIG4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFkU3RhcnQoaW5wdXQsIG4gPSAyKSB7XG4gIGNvbnN0IGlzTmVnID0gaW5wdXQgPCAwO1xuICBsZXQgcGFkZGVkO1xuICBpZiAoaXNOZWcpIHtcbiAgICBwYWRkZWQgPSBcIi1cIiArIChcIlwiICsgLWlucHV0KS5wYWRTdGFydChuLCBcIjBcIik7XG4gIH0gZWxzZSB7XG4gICAgcGFkZGVkID0gKFwiXCIgKyBpbnB1dCkucGFkU3RhcnQobiwgXCIwXCIpO1xuICB9XG4gIHJldHVybiBwYWRkZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUludGVnZXIoc3RyaW5nKSB7XG4gIGlmIChpc1VuZGVmaW5lZChzdHJpbmcpIHx8IHN0cmluZyA9PT0gbnVsbCB8fCBzdHJpbmcgPT09IFwiXCIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBwYXJzZUludChzdHJpbmcsIDEwKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGbG9hdGluZyhzdHJpbmcpIHtcbiAgaWYgKGlzVW5kZWZpbmVkKHN0cmluZykgfHwgc3RyaW5nID09PSBudWxsIHx8IHN0cmluZyA9PT0gXCJcIikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHBhcnNlRmxvYXQoc3RyaW5nKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VNaWxsaXMoZnJhY3Rpb24pIHtcbiAgLy8gUmV0dXJuIHVuZGVmaW5lZCAoaW5zdGVhZCBvZiAwKSBpbiB0aGVzZSBjYXNlcywgd2hlcmUgZnJhY3Rpb24gaXMgbm90IHNldFxuICBpZiAoaXNVbmRlZmluZWQoZnJhY3Rpb24pIHx8IGZyYWN0aW9uID09PSBudWxsIHx8IGZyYWN0aW9uID09PSBcIlwiKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBmID0gcGFyc2VGbG9hdChcIjAuXCIgKyBmcmFjdGlvbikgKiAxMDAwO1xuICAgIHJldHVybiBNYXRoLmZsb29yKGYpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByb3VuZFRvKG51bWJlciwgZGlnaXRzLCB0b3dhcmRaZXJvID0gZmFsc2UpIHtcbiAgY29uc3QgZmFjdG9yID0gMTAgKiogZGlnaXRzLFxuICAgIHJvdW5kZXIgPSB0b3dhcmRaZXJvID8gTWF0aC50cnVuYyA6IE1hdGgucm91bmQ7XG4gIHJldHVybiByb3VuZGVyKG51bWJlciAqIGZhY3RvcikgLyBmYWN0b3I7XG59XG5cbi8vIERBVEUgQkFTSUNTXG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xlYXBZZWFyKHllYXIpIHtcbiAgcmV0dXJuIHllYXIgJSA0ID09PSAwICYmICh5ZWFyICUgMTAwICE9PSAwIHx8IHllYXIgJSA0MDAgPT09IDApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF5c0luWWVhcih5ZWFyKSB7XG4gIHJldHVybiBpc0xlYXBZZWFyKHllYXIpID8gMzY2IDogMzY1O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF5c0luTW9udGgoeWVhciwgbW9udGgpIHtcbiAgY29uc3QgbW9kTW9udGggPSBmbG9vck1vZChtb250aCAtIDEsIDEyKSArIDEsXG4gICAgbW9kWWVhciA9IHllYXIgKyAobW9udGggLSBtb2RNb250aCkgLyAxMjtcblxuICBpZiAobW9kTW9udGggPT09IDIpIHtcbiAgICByZXR1cm4gaXNMZWFwWWVhcihtb2RZZWFyKSA/IDI5IDogMjg7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFszMSwgbnVsbCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdW21vZE1vbnRoIC0gMV07XG4gIH1cbn1cblxuLy8gY292ZXJ0IGEgY2FsZW5kYXIgb2JqZWN0IHRvIGEgbG9jYWwgdGltZXN0YW1wIChlcG9jaCwgYnV0IHdpdGggdGhlIG9mZnNldCBiYWtlZCBpbilcbmV4cG9ydCBmdW5jdGlvbiBvYmpUb0xvY2FsVFMob2JqKSB7XG4gIGxldCBkID0gRGF0ZS5VVEMoXG4gICAgb2JqLnllYXIsXG4gICAgb2JqLm1vbnRoIC0gMSxcbiAgICBvYmouZGF5LFxuICAgIG9iai5ob3VyLFxuICAgIG9iai5taW51dGUsXG4gICAgb2JqLnNlY29uZCxcbiAgICBvYmoubWlsbGlzZWNvbmRcbiAgKTtcblxuICAvLyBmb3IgbGVnYWN5IHJlYXNvbnMsIHllYXJzIGJldHdlZW4gMCBhbmQgOTkgYXJlIGludGVycHJldGVkIGFzIDE5WFg7IHJldmVydCB0aGF0XG4gIGlmIChvYmoueWVhciA8IDEwMCAmJiBvYmoueWVhciA+PSAwKSB7XG4gICAgZCA9IG5ldyBEYXRlKGQpO1xuICAgIGQuc2V0VVRDRnVsbFllYXIoZC5nZXRVVENGdWxsWWVhcigpIC0gMTkwMCk7XG4gIH1cbiAgcmV0dXJuICtkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2Vla3NJbldlZWtZZWFyKHdlZWtZZWFyKSB7XG4gIGNvbnN0IHAxID1cbiAgICAgICh3ZWVrWWVhciArXG4gICAgICAgIE1hdGguZmxvb3Iod2Vla1llYXIgLyA0KSAtXG4gICAgICAgIE1hdGguZmxvb3Iod2Vla1llYXIgLyAxMDApICtcbiAgICAgICAgTWF0aC5mbG9vcih3ZWVrWWVhciAvIDQwMCkpICVcbiAgICAgIDcsXG4gICAgbGFzdCA9IHdlZWtZZWFyIC0gMSxcbiAgICBwMiA9IChsYXN0ICsgTWF0aC5mbG9vcihsYXN0IC8gNCkgLSBNYXRoLmZsb29yKGxhc3QgLyAxMDApICsgTWF0aC5mbG9vcihsYXN0IC8gNDAwKSkgJSA3O1xuICByZXR1cm4gcDEgPT09IDQgfHwgcDIgPT09IDMgPyA1MyA6IDUyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW50cnVuY2F0ZVllYXIoeWVhcikge1xuICBpZiAoeWVhciA+IDk5KSB7XG4gICAgcmV0dXJuIHllYXI7XG4gIH0gZWxzZSByZXR1cm4geWVhciA+IDYwID8gMTkwMCArIHllYXIgOiAyMDAwICsgeWVhcjtcbn1cblxuLy8gUEFSU0lOR1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2Vab25lSW5mbyh0cywgb2Zmc2V0Rm9ybWF0LCBsb2NhbGUsIHRpbWVab25lID0gbnVsbCkge1xuICBjb25zdCBkYXRlID0gbmV3IERhdGUodHMpLFxuICAgIGludGxPcHRzID0ge1xuICAgICAgaG91ckN5Y2xlOiBcImgyM1wiLFxuICAgICAgeWVhcjogXCJudW1lcmljXCIsXG4gICAgICBtb250aDogXCIyLWRpZ2l0XCIsXG4gICAgICBkYXk6IFwiMi1kaWdpdFwiLFxuICAgICAgaG91cjogXCIyLWRpZ2l0XCIsXG4gICAgICBtaW51dGU6IFwiMi1kaWdpdFwiLFxuICAgIH07XG5cbiAgaWYgKHRpbWVab25lKSB7XG4gICAgaW50bE9wdHMudGltZVpvbmUgPSB0aW1lWm9uZTtcbiAgfVxuXG4gIGNvbnN0IG1vZGlmaWVkID0geyB0aW1lWm9uZU5hbWU6IG9mZnNldEZvcm1hdCwgLi4uaW50bE9wdHMgfTtcblxuICBjb25zdCBwYXJzZWQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIG1vZGlmaWVkKVxuICAgIC5mb3JtYXRUb1BhcnRzKGRhdGUpXG4gICAgLmZpbmQoKG0pID0+IG0udHlwZS50b0xvd2VyQ2FzZSgpID09PSBcInRpbWV6b25lbmFtZVwiKTtcbiAgcmV0dXJuIHBhcnNlZCA/IHBhcnNlZC52YWx1ZSA6IG51bGw7XG59XG5cbi8vIHNpZ25lZE9mZnNldCgnLTUnLCAnMzAnKSAtPiAtMzMwXG5leHBvcnQgZnVuY3Rpb24gc2lnbmVkT2Zmc2V0KG9mZkhvdXJTdHIsIG9mZk1pbnV0ZVN0cikge1xuICBsZXQgb2ZmSG91ciA9IHBhcnNlSW50KG9mZkhvdXJTdHIsIDEwKTtcblxuICAvLyBkb24ndCB8fCB0aGlzIGJlY2F1c2Ugd2Ugd2FudCB0byBwcmVzZXJ2ZSAtMFxuICBpZiAoTnVtYmVyLmlzTmFOKG9mZkhvdXIpKSB7XG4gICAgb2ZmSG91ciA9IDA7XG4gIH1cblxuICBjb25zdCBvZmZNaW4gPSBwYXJzZUludChvZmZNaW51dGVTdHIsIDEwKSB8fCAwLFxuICAgIG9mZk1pblNpZ25lZCA9IG9mZkhvdXIgPCAwIHx8IE9iamVjdC5pcyhvZmZIb3VyLCAtMCkgPyAtb2ZmTWluIDogb2ZmTWluO1xuICByZXR1cm4gb2ZmSG91ciAqIDYwICsgb2ZmTWluU2lnbmVkO1xufVxuXG4vLyBDT0VSQ0lPTlxuXG5leHBvcnQgZnVuY3Rpb24gYXNOdW1iZXIodmFsdWUpIHtcbiAgY29uc3QgbnVtZXJpY1ZhbHVlID0gTnVtYmVyKHZhbHVlKTtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCIgfHwgdmFsdWUgPT09IFwiXCIgfHwgTnVtYmVyLmlzTmFOKG51bWVyaWNWYWx1ZSkpXG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKGBJbnZhbGlkIHVuaXQgdmFsdWUgJHt2YWx1ZX1gKTtcbiAgcmV0dXJuIG51bWVyaWNWYWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZU9iamVjdChvYmosIG5vcm1hbGl6ZXIpIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IHt9O1xuICBmb3IgKGNvbnN0IHUgaW4gb2JqKSB7XG4gICAgaWYgKGhhc093blByb3BlcnR5KG9iaiwgdSkpIHtcbiAgICAgIGNvbnN0IHYgPSBvYmpbdV07XG4gICAgICBpZiAodiA9PT0gdW5kZWZpbmVkIHx8IHYgPT09IG51bGwpIGNvbnRpbnVlO1xuICAgICAgbm9ybWFsaXplZFtub3JtYWxpemVyKHUpXSA9IGFzTnVtYmVyKHYpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbm9ybWFsaXplZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE9mZnNldChvZmZzZXQsIGZvcm1hdCkge1xuICBjb25zdCBob3VycyA9IE1hdGgudHJ1bmMoTWF0aC5hYnMob2Zmc2V0IC8gNjApKSxcbiAgICBtaW51dGVzID0gTWF0aC50cnVuYyhNYXRoLmFicyhvZmZzZXQgJSA2MCkpLFxuICAgIHNpZ24gPSBvZmZzZXQgPj0gMCA/IFwiK1wiIDogXCItXCI7XG5cbiAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICBjYXNlIFwic2hvcnRcIjpcbiAgICAgIHJldHVybiBgJHtzaWdufSR7cGFkU3RhcnQoaG91cnMsIDIpfToke3BhZFN0YXJ0KG1pbnV0ZXMsIDIpfWA7XG4gICAgY2FzZSBcIm5hcnJvd1wiOlxuICAgICAgcmV0dXJuIGAke3NpZ259JHtob3Vyc30ke21pbnV0ZXMgPiAwID8gYDoke21pbnV0ZXN9YCA6IFwiXCJ9YDtcbiAgICBjYXNlIFwidGVjaGllXCI6XG4gICAgICByZXR1cm4gYCR7c2lnbn0ke3BhZFN0YXJ0KGhvdXJzLCAyKX0ke3BhZFN0YXJ0KG1pbnV0ZXMsIDIpfWA7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKGBWYWx1ZSBmb3JtYXQgJHtmb3JtYXR9IGlzIG91dCBvZiByYW5nZSBmb3IgcHJvcGVydHkgZm9ybWF0YCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRpbWVPYmplY3Qob2JqKSB7XG4gIHJldHVybiBwaWNrKG9iaiwgW1wiaG91clwiLCBcIm1pbnV0ZVwiLCBcInNlY29uZFwiLCBcIm1pbGxpc2Vjb25kXCJdKTtcbn1cblxuZXhwb3J0IGNvbnN0IGlhbmFSZWdleCA9IC9bQS1aYS16XystXXsxLDI1Nn0oOj9cXC9bQS1aYS16MC05XystXXsxLDI1Nn0oXFwvW0EtWmEtejAtOV8rLV17MSwyNTZ9KT8pPy87XG4iLCAiaW1wb3J0ICogYXMgRm9ybWF0cyBmcm9tIFwiLi9mb3JtYXRzLmpzXCI7XG5pbXBvcnQgeyBwaWNrIH0gZnJvbSBcIi4vdXRpbC5qc1wiO1xuXG5mdW5jdGlvbiBzdHJpbmdpZnkob2JqKSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmosIE9iamVjdC5rZXlzKG9iaikuc29ydCgpKTtcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmV4cG9ydCBjb25zdCBtb250aHNMb25nID0gW1xuICBcIkphbnVhcnlcIixcbiAgXCJGZWJydWFyeVwiLFxuICBcIk1hcmNoXCIsXG4gIFwiQXByaWxcIixcbiAgXCJNYXlcIixcbiAgXCJKdW5lXCIsXG4gIFwiSnVseVwiLFxuICBcIkF1Z3VzdFwiLFxuICBcIlNlcHRlbWJlclwiLFxuICBcIk9jdG9iZXJcIixcbiAgXCJOb3ZlbWJlclwiLFxuICBcIkRlY2VtYmVyXCIsXG5dO1xuXG5leHBvcnQgY29uc3QgbW9udGhzU2hvcnQgPSBbXG4gIFwiSmFuXCIsXG4gIFwiRmViXCIsXG4gIFwiTWFyXCIsXG4gIFwiQXByXCIsXG4gIFwiTWF5XCIsXG4gIFwiSnVuXCIsXG4gIFwiSnVsXCIsXG4gIFwiQXVnXCIsXG4gIFwiU2VwXCIsXG4gIFwiT2N0XCIsXG4gIFwiTm92XCIsXG4gIFwiRGVjXCIsXG5dO1xuXG5leHBvcnQgY29uc3QgbW9udGhzTmFycm93ID0gW1wiSlwiLCBcIkZcIiwgXCJNXCIsIFwiQVwiLCBcIk1cIiwgXCJKXCIsIFwiSlwiLCBcIkFcIiwgXCJTXCIsIFwiT1wiLCBcIk5cIiwgXCJEXCJdO1xuXG5leHBvcnQgZnVuY3Rpb24gbW9udGhzKGxlbmd0aCkge1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgXCJuYXJyb3dcIjpcbiAgICAgIHJldHVybiBbLi4ubW9udGhzTmFycm93XTtcbiAgICBjYXNlIFwic2hvcnRcIjpcbiAgICAgIHJldHVybiBbLi4ubW9udGhzU2hvcnRdO1xuICAgIGNhc2UgXCJsb25nXCI6XG4gICAgICByZXR1cm4gWy4uLm1vbnRoc0xvbmddO1xuICAgIGNhc2UgXCJudW1lcmljXCI6XG4gICAgICByZXR1cm4gW1wiMVwiLCBcIjJcIiwgXCIzXCIsIFwiNFwiLCBcIjVcIiwgXCI2XCIsIFwiN1wiLCBcIjhcIiwgXCI5XCIsIFwiMTBcIiwgXCIxMVwiLCBcIjEyXCJdO1xuICAgIGNhc2UgXCIyLWRpZ2l0XCI6XG4gICAgICByZXR1cm4gW1wiMDFcIiwgXCIwMlwiLCBcIjAzXCIsIFwiMDRcIiwgXCIwNVwiLCBcIjA2XCIsIFwiMDdcIiwgXCIwOFwiLCBcIjA5XCIsIFwiMTBcIiwgXCIxMVwiLCBcIjEyXCJdO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgd2Vla2RheXNMb25nID0gW1xuICBcIk1vbmRheVwiLFxuICBcIlR1ZXNkYXlcIixcbiAgXCJXZWRuZXNkYXlcIixcbiAgXCJUaHVyc2RheVwiLFxuICBcIkZyaWRheVwiLFxuICBcIlNhdHVyZGF5XCIsXG4gIFwiU3VuZGF5XCIsXG5dO1xuXG5leHBvcnQgY29uc3Qgd2Vla2RheXNTaG9ydCA9IFtcIk1vblwiLCBcIlR1ZVwiLCBcIldlZFwiLCBcIlRodVwiLCBcIkZyaVwiLCBcIlNhdFwiLCBcIlN1blwiXTtcblxuZXhwb3J0IGNvbnN0IHdlZWtkYXlzTmFycm93ID0gW1wiTVwiLCBcIlRcIiwgXCJXXCIsIFwiVFwiLCBcIkZcIiwgXCJTXCIsIFwiU1wiXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHdlZWtkYXlzKGxlbmd0aCkge1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgXCJuYXJyb3dcIjpcbiAgICAgIHJldHVybiBbLi4ud2Vla2RheXNOYXJyb3ddO1xuICAgIGNhc2UgXCJzaG9ydFwiOlxuICAgICAgcmV0dXJuIFsuLi53ZWVrZGF5c1Nob3J0XTtcbiAgICBjYXNlIFwibG9uZ1wiOlxuICAgICAgcmV0dXJuIFsuLi53ZWVrZGF5c0xvbmddO1xuICAgIGNhc2UgXCJudW1lcmljXCI6XG4gICAgICByZXR1cm4gW1wiMVwiLCBcIjJcIiwgXCIzXCIsIFwiNFwiLCBcIjVcIiwgXCI2XCIsIFwiN1wiXTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG1lcmlkaWVtcyA9IFtcIkFNXCIsIFwiUE1cIl07XG5cbmV4cG9ydCBjb25zdCBlcmFzTG9uZyA9IFtcIkJlZm9yZSBDaHJpc3RcIiwgXCJBbm5vIERvbWluaVwiXTtcblxuZXhwb3J0IGNvbnN0IGVyYXNTaG9ydCA9IFtcIkJDXCIsIFwiQURcIl07XG5cbmV4cG9ydCBjb25zdCBlcmFzTmFycm93ID0gW1wiQlwiLCBcIkFcIl07XG5cbmV4cG9ydCBmdW5jdGlvbiBlcmFzKGxlbmd0aCkge1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgXCJuYXJyb3dcIjpcbiAgICAgIHJldHVybiBbLi4uZXJhc05hcnJvd107XG4gICAgY2FzZSBcInNob3J0XCI6XG4gICAgICByZXR1cm4gWy4uLmVyYXNTaG9ydF07XG4gICAgY2FzZSBcImxvbmdcIjpcbiAgICAgIHJldHVybiBbLi4uZXJhc0xvbmddO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWVyaWRpZW1Gb3JEYXRlVGltZShkdCkge1xuICByZXR1cm4gbWVyaWRpZW1zW2R0LmhvdXIgPCAxMiA/IDAgOiAxXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdlZWtkYXlGb3JEYXRlVGltZShkdCwgbGVuZ3RoKSB7XG4gIHJldHVybiB3ZWVrZGF5cyhsZW5ndGgpW2R0LndlZWtkYXkgLSAxXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vbnRoRm9yRGF0ZVRpbWUoZHQsIGxlbmd0aCkge1xuICByZXR1cm4gbW9udGhzKGxlbmd0aClbZHQubW9udGggLSAxXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVyYUZvckRhdGVUaW1lKGR0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGVyYXMobGVuZ3RoKVtkdC55ZWFyIDwgMCA/IDAgOiAxXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFJlbGF0aXZlVGltZSh1bml0LCBjb3VudCwgbnVtZXJpYyA9IFwiYWx3YXlzXCIsIG5hcnJvdyA9IGZhbHNlKSB7XG4gIGNvbnN0IHVuaXRzID0ge1xuICAgIHllYXJzOiBbXCJ5ZWFyXCIsIFwieXIuXCJdLFxuICAgIHF1YXJ0ZXJzOiBbXCJxdWFydGVyXCIsIFwicXRyLlwiXSxcbiAgICBtb250aHM6IFtcIm1vbnRoXCIsIFwibW8uXCJdLFxuICAgIHdlZWtzOiBbXCJ3ZWVrXCIsIFwid2suXCJdLFxuICAgIGRheXM6IFtcImRheVwiLCBcImRheVwiLCBcImRheXNcIl0sXG4gICAgaG91cnM6IFtcImhvdXJcIiwgXCJoci5cIl0sXG4gICAgbWludXRlczogW1wibWludXRlXCIsIFwibWluLlwiXSxcbiAgICBzZWNvbmRzOiBbXCJzZWNvbmRcIiwgXCJzZWMuXCJdLFxuICB9O1xuXG4gIGNvbnN0IGxhc3RhYmxlID0gW1wiaG91cnNcIiwgXCJtaW51dGVzXCIsIFwic2Vjb25kc1wiXS5pbmRleE9mKHVuaXQpID09PSAtMTtcblxuICBpZiAobnVtZXJpYyA9PT0gXCJhdXRvXCIgJiYgbGFzdGFibGUpIHtcbiAgICBjb25zdCBpc0RheSA9IHVuaXQgPT09IFwiZGF5c1wiO1xuICAgIHN3aXRjaCAoY291bnQpIHtcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgcmV0dXJuIGlzRGF5ID8gXCJ0b21vcnJvd1wiIDogYG5leHQgJHt1bml0c1t1bml0XVswXX1gO1xuICAgICAgY2FzZSAtMTpcbiAgICAgICAgcmV0dXJuIGlzRGF5ID8gXCJ5ZXN0ZXJkYXlcIiA6IGBsYXN0ICR7dW5pdHNbdW5pdF1bMF19YDtcbiAgICAgIGNhc2UgMDpcbiAgICAgICAgcmV0dXJuIGlzRGF5ID8gXCJ0b2RheVwiIDogYHRoaXMgJHt1bml0c1t1bml0XVswXX1gO1xuICAgICAgZGVmYXVsdDogLy8gZmFsbCB0aHJvdWdoXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaXNJblBhc3QgPSBPYmplY3QuaXMoY291bnQsIC0wKSB8fCBjb3VudCA8IDAsXG4gICAgZm10VmFsdWUgPSBNYXRoLmFicyhjb3VudCksXG4gICAgc2luZ3VsYXIgPSBmbXRWYWx1ZSA9PT0gMSxcbiAgICBsaWxVbml0cyA9IHVuaXRzW3VuaXRdLFxuICAgIGZtdFVuaXQgPSBuYXJyb3dcbiAgICAgID8gc2luZ3VsYXJcbiAgICAgICAgPyBsaWxVbml0c1sxXVxuICAgICAgICA6IGxpbFVuaXRzWzJdIHx8IGxpbFVuaXRzWzFdXG4gICAgICA6IHNpbmd1bGFyXG4gICAgICA/IHVuaXRzW3VuaXRdWzBdXG4gICAgICA6IHVuaXQ7XG4gIHJldHVybiBpc0luUGFzdCA/IGAke2ZtdFZhbHVlfSAke2ZtdFVuaXR9IGFnb2AgOiBgaW4gJHtmbXRWYWx1ZX0gJHtmbXRVbml0fWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTdHJpbmcoa25vd25Gb3JtYXQpIHtcbiAgLy8gdGhlc2UgYWxsIGhhdmUgdGhlIG9mZnNldHMgcmVtb3ZlZCBiZWNhdXNlIHdlIGRvbid0IGhhdmUgYWNjZXNzIHRvIHRoZW1cbiAgLy8gd2l0aG91dCBhbGwgdGhlIGludGwgc3R1ZmYgdGhpcyBpcyBiYWNrZmlsbGluZ1xuICBjb25zdCBmaWx0ZXJlZCA9IHBpY2soa25vd25Gb3JtYXQsIFtcbiAgICAgIFwid2Vla2RheVwiLFxuICAgICAgXCJlcmFcIixcbiAgICAgIFwieWVhclwiLFxuICAgICAgXCJtb250aFwiLFxuICAgICAgXCJkYXlcIixcbiAgICAgIFwiaG91clwiLFxuICAgICAgXCJtaW51dGVcIixcbiAgICAgIFwic2Vjb25kXCIsXG4gICAgICBcInRpbWVab25lTmFtZVwiLFxuICAgICAgXCJob3VyQ3ljbGVcIixcbiAgICBdKSxcbiAgICBrZXkgPSBzdHJpbmdpZnkoZmlsdGVyZWQpLFxuICAgIGRhdGVUaW1lSHVnZSA9IFwiRUVFRSwgTExMTCBkLCB5eXl5LCBoOm1tIGFcIjtcbiAgc3dpdGNoIChrZXkpIHtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVfU0hPUlQpOlxuICAgICAgcmV0dXJuIFwiTS9kL3l5eXlcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVfTUVEKTpcbiAgICAgIHJldHVybiBcIkxMTCBkLCB5eXl5XCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFX01FRF9XSVRIX1dFRUtEQVkpOlxuICAgICAgcmV0dXJuIFwiRUVFLCBMTEwgZCwgeXl5eVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURV9GVUxMKTpcbiAgICAgIHJldHVybiBcIkxMTEwgZCwgeXl5eVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURV9IVUdFKTpcbiAgICAgIHJldHVybiBcIkVFRUUsIExMTEwgZCwgeXl5eVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuVElNRV9TSU1QTEUpOlxuICAgICAgcmV0dXJuIFwiaDptbSBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5USU1FX1dJVEhfU0VDT05EUyk6XG4gICAgICByZXR1cm4gXCJoOm1tOnNzIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLlRJTUVfV0lUSF9TSE9SVF9PRkZTRVQpOlxuICAgICAgcmV0dXJuIFwiaDptbSBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5USU1FX1dJVEhfTE9OR19PRkZTRVQpOlxuICAgICAgcmV0dXJuIFwiaDptbSBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5USU1FXzI0X1NJTVBMRSk6XG4gICAgICByZXR1cm4gXCJISDptbVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuVElNRV8yNF9XSVRIX1NFQ09ORFMpOlxuICAgICAgcmV0dXJuIFwiSEg6bW06c3NcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLlRJTUVfMjRfV0lUSF9TSE9SVF9PRkZTRVQpOlxuICAgICAgcmV0dXJuIFwiSEg6bW1cIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLlRJTUVfMjRfV0lUSF9MT05HX09GRlNFVCk6XG4gICAgICByZXR1cm4gXCJISDptbVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfU0hPUlQpOlxuICAgICAgcmV0dXJuIFwiTS9kL3l5eXksIGg6bW0gYVwiO1xuICAgIGNhc2Ugc3RyaW5naWZ5KEZvcm1hdHMuREFURVRJTUVfTUVEKTpcbiAgICAgIHJldHVybiBcIkxMTCBkLCB5eXl5LCBoOm1tIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX0ZVTEwpOlxuICAgICAgcmV0dXJuIFwiTExMTCBkLCB5eXl5LCBoOm1tIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX0hVR0UpOlxuICAgICAgcmV0dXJuIGRhdGVUaW1lSHVnZTtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUyk6XG4gICAgICByZXR1cm4gXCJNL2QveXl5eSwgaDptbTpzcyBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFVElNRV9NRURfV0lUSF9TRUNPTkRTKTpcbiAgICAgIHJldHVybiBcIkxMTCBkLCB5eXl5LCBoOm1tOnNzIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX01FRF9XSVRIX1dFRUtEQVkpOlxuICAgICAgcmV0dXJuIFwiRUVFLCBkIExMTCB5eXl5LCBoOm1tIGFcIjtcbiAgICBjYXNlIHN0cmluZ2lmeShGb3JtYXRzLkRBVEVUSU1FX0ZVTExfV0lUSF9TRUNPTkRTKTpcbiAgICAgIHJldHVybiBcIkxMTEwgZCwgeXl5eSwgaDptbTpzcyBhXCI7XG4gICAgY2FzZSBzdHJpbmdpZnkoRm9ybWF0cy5EQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUyk6XG4gICAgICByZXR1cm4gXCJFRUVFLCBMTExMIGQsIHl5eXksIGg6bW06c3MgYVwiO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZGF0ZVRpbWVIdWdlO1xuICB9XG59XG4iLCAiaW1wb3J0ICogYXMgRW5nbGlzaCBmcm9tIFwiLi9lbmdsaXNoLmpzXCI7XG5pbXBvcnQgKiBhcyBGb3JtYXRzIGZyb20gXCIuL2Zvcm1hdHMuanNcIjtcbmltcG9ydCB7IHBhZFN0YXJ0IH0gZnJvbSBcIi4vdXRpbC5qc1wiO1xuXG5mdW5jdGlvbiBzdHJpbmdpZnlUb2tlbnMoc3BsaXRzLCB0b2tlblRvU3RyaW5nKSB7XG4gIGxldCBzID0gXCJcIjtcbiAgZm9yIChjb25zdCB0b2tlbiBvZiBzcGxpdHMpIHtcbiAgICBpZiAodG9rZW4ubGl0ZXJhbCkge1xuICAgICAgcyArPSB0b2tlbi52YWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHMgKz0gdG9rZW5Ub1N0cmluZyh0b2tlbi52YWwpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcztcbn1cblxuY29uc3QgbWFjcm9Ub2tlblRvRm9ybWF0T3B0cyA9IHtcbiAgRDogRm9ybWF0cy5EQVRFX1NIT1JULFxuICBERDogRm9ybWF0cy5EQVRFX01FRCxcbiAgREREOiBGb3JtYXRzLkRBVEVfRlVMTCxcbiAgRERERDogRm9ybWF0cy5EQVRFX0hVR0UsXG4gIHQ6IEZvcm1hdHMuVElNRV9TSU1QTEUsXG4gIHR0OiBGb3JtYXRzLlRJTUVfV0lUSF9TRUNPTkRTLFxuICB0dHQ6IEZvcm1hdHMuVElNRV9XSVRIX1NIT1JUX09GRlNFVCxcbiAgdHR0dDogRm9ybWF0cy5USU1FX1dJVEhfTE9OR19PRkZTRVQsXG4gIFQ6IEZvcm1hdHMuVElNRV8yNF9TSU1QTEUsXG4gIFRUOiBGb3JtYXRzLlRJTUVfMjRfV0lUSF9TRUNPTkRTLFxuICBUVFQ6IEZvcm1hdHMuVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVCxcbiAgVFRUVDogRm9ybWF0cy5USU1FXzI0X1dJVEhfTE9OR19PRkZTRVQsXG4gIGY6IEZvcm1hdHMuREFURVRJTUVfU0hPUlQsXG4gIGZmOiBGb3JtYXRzLkRBVEVUSU1FX01FRCxcbiAgZmZmOiBGb3JtYXRzLkRBVEVUSU1FX0ZVTEwsXG4gIGZmZmY6IEZvcm1hdHMuREFURVRJTUVfSFVHRSxcbiAgRjogRm9ybWF0cy5EQVRFVElNRV9TSE9SVF9XSVRIX1NFQ09ORFMsXG4gIEZGOiBGb3JtYXRzLkRBVEVUSU1FX01FRF9XSVRIX1NFQ09ORFMsXG4gIEZGRjogRm9ybWF0cy5EQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUyxcbiAgRkZGRjogRm9ybWF0cy5EQVRFVElNRV9IVUdFX1dJVEhfU0VDT05EUyxcbn07XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGb3JtYXR0ZXIge1xuICBzdGF0aWMgY3JlYXRlKGxvY2FsZSwgb3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIG5ldyBGb3JtYXR0ZXIobG9jYWxlLCBvcHRzKTtcbiAgfVxuXG4gIHN0YXRpYyBwYXJzZUZvcm1hdChmbXQpIHtcbiAgICBsZXQgY3VycmVudCA9IG51bGwsXG4gICAgICBjdXJyZW50RnVsbCA9IFwiXCIsXG4gICAgICBicmFja2V0ZWQgPSBmYWxzZTtcbiAgICBjb25zdCBzcGxpdHMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZtdC5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgYyA9IGZtdC5jaGFyQXQoaSk7XG4gICAgICBpZiAoYyA9PT0gXCInXCIpIHtcbiAgICAgICAgaWYgKGN1cnJlbnRGdWxsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBzcGxpdHMucHVzaCh7IGxpdGVyYWw6IGJyYWNrZXRlZCwgdmFsOiBjdXJyZW50RnVsbCB9KTtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50ID0gbnVsbDtcbiAgICAgICAgY3VycmVudEZ1bGwgPSBcIlwiO1xuICAgICAgICBicmFja2V0ZWQgPSAhYnJhY2tldGVkO1xuICAgICAgfSBlbHNlIGlmIChicmFja2V0ZWQpIHtcbiAgICAgICAgY3VycmVudEZ1bGwgKz0gYztcbiAgICAgIH0gZWxzZSBpZiAoYyA9PT0gY3VycmVudCkge1xuICAgICAgICBjdXJyZW50RnVsbCArPSBjO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGN1cnJlbnRGdWxsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBzcGxpdHMucHVzaCh7IGxpdGVyYWw6IGZhbHNlLCB2YWw6IGN1cnJlbnRGdWxsIH0pO1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnRGdWxsID0gYztcbiAgICAgICAgY3VycmVudCA9IGM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRGdWxsLmxlbmd0aCA+IDApIHtcbiAgICAgIHNwbGl0cy5wdXNoKHsgbGl0ZXJhbDogYnJhY2tldGVkLCB2YWw6IGN1cnJlbnRGdWxsIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzcGxpdHM7XG4gIH1cblxuICBzdGF0aWMgbWFjcm9Ub2tlblRvRm9ybWF0T3B0cyh0b2tlbikge1xuICAgIHJldHVybiBtYWNyb1Rva2VuVG9Gb3JtYXRPcHRzW3Rva2VuXTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGxvY2FsZSwgZm9ybWF0T3B0cykge1xuICAgIHRoaXMub3B0cyA9IGZvcm1hdE9wdHM7XG4gICAgdGhpcy5sb2MgPSBsb2NhbGU7XG4gICAgdGhpcy5zeXN0ZW1Mb2MgPSBudWxsO1xuICB9XG5cbiAgZm9ybWF0V2l0aFN5c3RlbURlZmF1bHQoZHQsIG9wdHMpIHtcbiAgICBpZiAodGhpcy5zeXN0ZW1Mb2MgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuc3lzdGVtTG9jID0gdGhpcy5sb2MucmVkZWZhdWx0VG9TeXN0ZW0oKTtcbiAgICB9XG4gICAgY29uc3QgZGYgPSB0aGlzLnN5c3RlbUxvYy5kdEZvcm1hdHRlcihkdCwgeyAuLi50aGlzLm9wdHMsIC4uLm9wdHMgfSk7XG4gICAgcmV0dXJuIGRmLmZvcm1hdCgpO1xuICB9XG5cbiAgZm9ybWF0RGF0ZVRpbWUoZHQsIG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IGRmID0gdGhpcy5sb2MuZHRGb3JtYXR0ZXIoZHQsIHsgLi4udGhpcy5vcHRzLCAuLi5vcHRzIH0pO1xuICAgIHJldHVybiBkZi5mb3JtYXQoKTtcbiAgfVxuXG4gIGZvcm1hdERhdGVUaW1lUGFydHMoZHQsIG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IGRmID0gdGhpcy5sb2MuZHRGb3JtYXR0ZXIoZHQsIHsgLi4udGhpcy5vcHRzLCAuLi5vcHRzIH0pO1xuICAgIHJldHVybiBkZi5mb3JtYXRUb1BhcnRzKCk7XG4gIH1cblxuICByZXNvbHZlZE9wdGlvbnMoZHQsIG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IGRmID0gdGhpcy5sb2MuZHRGb3JtYXR0ZXIoZHQsIHsgLi4udGhpcy5vcHRzLCAuLi5vcHRzIH0pO1xuICAgIHJldHVybiBkZi5yZXNvbHZlZE9wdGlvbnMoKTtcbiAgfVxuXG4gIG51bShuLCBwID0gMCkge1xuICAgIC8vIHdlIGdldCBzb21lIHBlcmYgb3V0IG9mIGRvaW5nIHRoaXMgaGVyZSwgYW5ub3lpbmdseVxuICAgIGlmICh0aGlzLm9wdHMuZm9yY2VTaW1wbGUpIHtcbiAgICAgIHJldHVybiBwYWRTdGFydChuLCBwKTtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRzID0geyAuLi50aGlzLm9wdHMgfTtcblxuICAgIGlmIChwID4gMCkge1xuICAgICAgb3B0cy5wYWRUbyA9IHA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubG9jLm51bWJlckZvcm1hdHRlcihvcHRzKS5mb3JtYXQobik7XG4gIH1cblxuICBmb3JtYXREYXRlVGltZUZyb21TdHJpbmcoZHQsIGZtdCkge1xuICAgIGNvbnN0IGtub3duRW5nbGlzaCA9IHRoaXMubG9jLmxpc3RpbmdNb2RlKCkgPT09IFwiZW5cIixcbiAgICAgIHVzZURhdGVUaW1lRm9ybWF0dGVyID0gdGhpcy5sb2Mub3V0cHV0Q2FsZW5kYXIgJiYgdGhpcy5sb2Mub3V0cHV0Q2FsZW5kYXIgIT09IFwiZ3JlZ29yeVwiLFxuICAgICAgc3RyaW5nID0gKG9wdHMsIGV4dHJhY3QpID0+IHRoaXMubG9jLmV4dHJhY3QoZHQsIG9wdHMsIGV4dHJhY3QpLFxuICAgICAgZm9ybWF0T2Zmc2V0ID0gKG9wdHMpID0+IHtcbiAgICAgICAgaWYgKGR0LmlzT2Zmc2V0Rml4ZWQgJiYgZHQub2Zmc2V0ID09PSAwICYmIG9wdHMuYWxsb3daKSB7XG4gICAgICAgICAgcmV0dXJuIFwiWlwiO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGR0LmlzVmFsaWQgPyBkdC56b25lLmZvcm1hdE9mZnNldChkdC50cywgb3B0cy5mb3JtYXQpIDogXCJcIjtcbiAgICAgIH0sXG4gICAgICBtZXJpZGllbSA9ICgpID0+XG4gICAgICAgIGtub3duRW5nbGlzaFxuICAgICAgICAgID8gRW5nbGlzaC5tZXJpZGllbUZvckRhdGVUaW1lKGR0KVxuICAgICAgICAgIDogc3RyaW5nKHsgaG91cjogXCJudW1lcmljXCIsIGhvdXJDeWNsZTogXCJoMTJcIiB9LCBcImRheXBlcmlvZFwiKSxcbiAgICAgIG1vbnRoID0gKGxlbmd0aCwgc3RhbmRhbG9uZSkgPT5cbiAgICAgICAga25vd25FbmdsaXNoXG4gICAgICAgICAgPyBFbmdsaXNoLm1vbnRoRm9yRGF0ZVRpbWUoZHQsIGxlbmd0aClcbiAgICAgICAgICA6IHN0cmluZyhzdGFuZGFsb25lID8geyBtb250aDogbGVuZ3RoIH0gOiB7IG1vbnRoOiBsZW5ndGgsIGRheTogXCJudW1lcmljXCIgfSwgXCJtb250aFwiKSxcbiAgICAgIHdlZWtkYXkgPSAobGVuZ3RoLCBzdGFuZGFsb25lKSA9PlxuICAgICAgICBrbm93bkVuZ2xpc2hcbiAgICAgICAgICA/IEVuZ2xpc2gud2Vla2RheUZvckRhdGVUaW1lKGR0LCBsZW5ndGgpXG4gICAgICAgICAgOiBzdHJpbmcoXG4gICAgICAgICAgICAgIHN0YW5kYWxvbmUgPyB7IHdlZWtkYXk6IGxlbmd0aCB9IDogeyB3ZWVrZGF5OiBsZW5ndGgsIG1vbnRoOiBcImxvbmdcIiwgZGF5OiBcIm51bWVyaWNcIiB9LFxuICAgICAgICAgICAgICBcIndlZWtkYXlcIlxuICAgICAgICAgICAgKSxcbiAgICAgIG1heWJlTWFjcm8gPSAodG9rZW4pID0+IHtcbiAgICAgICAgY29uc3QgZm9ybWF0T3B0cyA9IEZvcm1hdHRlci5tYWNyb1Rva2VuVG9Gb3JtYXRPcHRzKHRva2VuKTtcbiAgICAgICAgaWYgKGZvcm1hdE9wdHMpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRXaXRoU3lzdGVtRGVmYXVsdChkdCwgZm9ybWF0T3B0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJhID0gKGxlbmd0aCkgPT5cbiAgICAgICAga25vd25FbmdsaXNoID8gRW5nbGlzaC5lcmFGb3JEYXRlVGltZShkdCwgbGVuZ3RoKSA6IHN0cmluZyh7IGVyYTogbGVuZ3RoIH0sIFwiZXJhXCIpLFxuICAgICAgdG9rZW5Ub1N0cmluZyA9ICh0b2tlbikgPT4ge1xuICAgICAgICAvLyBXaGVyZSBwb3NzaWJsZTogaHR0cDovL2NsZHIudW5pY29kZS5vcmcvdHJhbnNsYXRpb24vZGF0ZS10aW1lLTEvZGF0ZS10aW1lI1RPQy1TdGFuZGFsb25lLXZzLi1Gb3JtYXQtU3R5bGVzXG4gICAgICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICAgICAgICAvLyBtc1xuICAgICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQubWlsbGlzZWNvbmQpO1xuICAgICAgICAgIGNhc2UgXCJ1XCI6XG4gICAgICAgICAgLy8gZmFsbHMgdGhyb3VnaFxuICAgICAgICAgIGNhc2UgXCJTU1NcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5taWxsaXNlY29uZCwgMyk7XG4gICAgICAgICAgLy8gc2Vjb25kc1xuICAgICAgICAgIGNhc2UgXCJzXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuc2Vjb25kKTtcbiAgICAgICAgICBjYXNlIFwic3NcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5zZWNvbmQsIDIpO1xuICAgICAgICAgIC8vIGZyYWN0aW9uYWwgc2Vjb25kc1xuICAgICAgICAgIGNhc2UgXCJ1dVwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKE1hdGguZmxvb3IoZHQubWlsbGlzZWNvbmQgLyAxMCksIDIpO1xuICAgICAgICAgIGNhc2UgXCJ1dXVcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShNYXRoLmZsb29yKGR0Lm1pbGxpc2Vjb25kIC8gMTAwKSk7XG4gICAgICAgICAgLy8gbWludXRlc1xuICAgICAgICAgIGNhc2UgXCJtXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQubWludXRlKTtcbiAgICAgICAgICBjYXNlIFwibW1cIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5taW51dGUsIDIpO1xuICAgICAgICAgIC8vIGhvdXJzXG4gICAgICAgICAgY2FzZSBcImhcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5ob3VyICUgMTIgPT09IDAgPyAxMiA6IGR0LmhvdXIgJSAxMik7XG4gICAgICAgICAgY2FzZSBcImhoXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuaG91ciAlIDEyID09PSAwID8gMTIgOiBkdC5ob3VyICUgMTIsIDIpO1xuICAgICAgICAgIGNhc2UgXCJIXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuaG91cik7XG4gICAgICAgICAgY2FzZSBcIkhIXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQuaG91ciwgMik7XG4gICAgICAgICAgLy8gb2Zmc2V0XG4gICAgICAgICAgY2FzZSBcIlpcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgKzZcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRPZmZzZXQoeyBmb3JtYXQ6IFwibmFycm93XCIsIGFsbG93WjogdGhpcy5vcHRzLmFsbG93WiB9KTtcbiAgICAgICAgICBjYXNlIFwiWlpcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgKzA2OjAwXG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHsgZm9ybWF0OiBcInNob3J0XCIsIGFsbG93WjogdGhpcy5vcHRzLmFsbG93WiB9KTtcbiAgICAgICAgICBjYXNlIFwiWlpaXCI6XG4gICAgICAgICAgICAvLyBsaWtlICswNjAwXG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHsgZm9ybWF0OiBcInRlY2hpZVwiLCBhbGxvd1o6IHRoaXMub3B0cy5hbGxvd1ogfSk7XG4gICAgICAgICAgY2FzZSBcIlpaWlpcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgRVNUXG4gICAgICAgICAgICByZXR1cm4gZHQuem9uZS5vZmZzZXROYW1lKGR0LnRzLCB7IGZvcm1hdDogXCJzaG9ydFwiLCBsb2NhbGU6IHRoaXMubG9jLmxvY2FsZSB9KTtcbiAgICAgICAgICBjYXNlIFwiWlpaWlpcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgRWFzdGVybiBTdGFuZGFyZCBUaW1lXG4gICAgICAgICAgICByZXR1cm4gZHQuem9uZS5vZmZzZXROYW1lKGR0LnRzLCB7IGZvcm1hdDogXCJsb25nXCIsIGxvY2FsZTogdGhpcy5sb2MubG9jYWxlIH0pO1xuICAgICAgICAgIC8vIHpvbmVcbiAgICAgICAgICBjYXNlIFwielwiOlxuICAgICAgICAgICAgLy8gbGlrZSBBbWVyaWNhL05ld19Zb3JrXG4gICAgICAgICAgICByZXR1cm4gZHQuem9uZU5hbWU7XG4gICAgICAgICAgLy8gbWVyaWRpZW1zXG4gICAgICAgICAgY2FzZSBcImFcIjpcbiAgICAgICAgICAgIHJldHVybiBtZXJpZGllbSgpO1xuICAgICAgICAgIC8vIGRhdGVzXG4gICAgICAgICAgY2FzZSBcImRcIjpcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlciA/IHN0cmluZyh7IGRheTogXCJudW1lcmljXCIgfSwgXCJkYXlcIikgOiB0aGlzLm51bShkdC5kYXkpO1xuICAgICAgICAgIGNhc2UgXCJkZFwiOlxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyID8gc3RyaW5nKHsgZGF5OiBcIjItZGlnaXRcIiB9LCBcImRheVwiKSA6IHRoaXMubnVtKGR0LmRheSwgMik7XG4gICAgICAgICAgLy8gd2Vla2RheXMgLSBzdGFuZGFsb25lXG4gICAgICAgICAgY2FzZSBcImNcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtkYXkpO1xuICAgICAgICAgIGNhc2UgXCJjY2NcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgJ1R1ZXMnXG4gICAgICAgICAgICByZXR1cm4gd2Vla2RheShcInNob3J0XCIsIHRydWUpO1xuICAgICAgICAgIGNhc2UgXCJjY2NjXCI6XG4gICAgICAgICAgICAvLyBsaWtlICdUdWVzZGF5J1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoXCJsb25nXCIsIHRydWUpO1xuICAgICAgICAgIGNhc2UgXCJjY2NjY1wiOlxuICAgICAgICAgICAgLy8gbGlrZSAnVCdcbiAgICAgICAgICAgIHJldHVybiB3ZWVrZGF5KFwibmFycm93XCIsIHRydWUpO1xuICAgICAgICAgIC8vIHdlZWtkYXlzIC0gZm9ybWF0XG4gICAgICAgICAgY2FzZSBcIkVcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtkYXkpO1xuICAgICAgICAgIGNhc2UgXCJFRUVcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgJ1R1ZXMnXG4gICAgICAgICAgICByZXR1cm4gd2Vla2RheShcInNob3J0XCIsIGZhbHNlKTtcbiAgICAgICAgICBjYXNlIFwiRUVFRVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAnVHVlc2RheSdcbiAgICAgICAgICAgIHJldHVybiB3ZWVrZGF5KFwibG9uZ1wiLCBmYWxzZSk7XG4gICAgICAgICAgY2FzZSBcIkVFRUVFXCI6XG4gICAgICAgICAgICAvLyBsaWtlICdUJ1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXkoXCJuYXJyb3dcIiwgZmFsc2UpO1xuICAgICAgICAgIC8vIG1vbnRocyAtIHN0YW5kYWxvbmVcbiAgICAgICAgICBjYXNlIFwiTFwiOlxuICAgICAgICAgICAgLy8gbGlrZSAxXG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXJcbiAgICAgICAgICAgICAgPyBzdHJpbmcoeyBtb250aDogXCJudW1lcmljXCIsIGRheTogXCJudW1lcmljXCIgfSwgXCJtb250aFwiKVxuICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0Lm1vbnRoKTtcbiAgICAgICAgICBjYXNlIFwiTExcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMDEsIGRvZXNuJ3Qgc2VlbSB0byB3b3JrXG4gICAgICAgICAgICByZXR1cm4gdXNlRGF0ZVRpbWVGb3JtYXR0ZXJcbiAgICAgICAgICAgICAgPyBzdHJpbmcoeyBtb250aDogXCIyLWRpZ2l0XCIsIGRheTogXCJudW1lcmljXCIgfSwgXCJtb250aFwiKVxuICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0Lm1vbnRoLCAyKTtcbiAgICAgICAgICBjYXNlIFwiTExMXCI6XG4gICAgICAgICAgICAvLyBsaWtlIEphblxuICAgICAgICAgICAgcmV0dXJuIG1vbnRoKFwic2hvcnRcIiwgdHJ1ZSk7XG4gICAgICAgICAgY2FzZSBcIkxMTExcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgSmFudWFyeVxuICAgICAgICAgICAgcmV0dXJuIG1vbnRoKFwibG9uZ1wiLCB0cnVlKTtcbiAgICAgICAgICBjYXNlIFwiTExMTExcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgSlxuICAgICAgICAgICAgcmV0dXJuIG1vbnRoKFwibmFycm93XCIsIHRydWUpO1xuICAgICAgICAgIC8vIG1vbnRocyAtIGZvcm1hdFxuICAgICAgICAgIGNhc2UgXCJNXCI6XG4gICAgICAgICAgICAvLyBsaWtlIDFcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlclxuICAgICAgICAgICAgICA/IHN0cmluZyh7IG1vbnRoOiBcIm51bWVyaWNcIiB9LCBcIm1vbnRoXCIpXG4gICAgICAgICAgICAgIDogdGhpcy5udW0oZHQubW9udGgpO1xuICAgICAgICAgIGNhc2UgXCJNTVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAwMVxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyXG4gICAgICAgICAgICAgID8gc3RyaW5nKHsgbW9udGg6IFwiMi1kaWdpdFwiIH0sIFwibW9udGhcIilcbiAgICAgICAgICAgICAgOiB0aGlzLm51bShkdC5tb250aCwgMik7XG4gICAgICAgICAgY2FzZSBcIk1NTVwiOlxuICAgICAgICAgICAgLy8gbGlrZSBKYW5cbiAgICAgICAgICAgIHJldHVybiBtb250aChcInNob3J0XCIsIGZhbHNlKTtcbiAgICAgICAgICBjYXNlIFwiTU1NTVwiOlxuICAgICAgICAgICAgLy8gbGlrZSBKYW51YXJ5XG4gICAgICAgICAgICByZXR1cm4gbW9udGgoXCJsb25nXCIsIGZhbHNlKTtcbiAgICAgICAgICBjYXNlIFwiTU1NTU1cIjpcbiAgICAgICAgICAgIC8vIGxpa2UgSlxuICAgICAgICAgICAgcmV0dXJuIG1vbnRoKFwibmFycm93XCIsIGZhbHNlKTtcbiAgICAgICAgICAvLyB5ZWFyc1xuICAgICAgICAgIGNhc2UgXCJ5XCI6XG4gICAgICAgICAgICAvLyBsaWtlIDIwMTRcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlciA/IHN0cmluZyh7IHllYXI6IFwibnVtZXJpY1wiIH0sIFwieWVhclwiKSA6IHRoaXMubnVtKGR0LnllYXIpO1xuICAgICAgICAgIGNhc2UgXCJ5eVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAxNFxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyXG4gICAgICAgICAgICAgID8gc3RyaW5nKHsgeWVhcjogXCIyLWRpZ2l0XCIgfSwgXCJ5ZWFyXCIpXG4gICAgICAgICAgICAgIDogdGhpcy5udW0oZHQueWVhci50b1N0cmluZygpLnNsaWNlKC0yKSwgMik7XG4gICAgICAgICAgY2FzZSBcInl5eXlcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMDAxMlxuICAgICAgICAgICAgcmV0dXJuIHVzZURhdGVUaW1lRm9ybWF0dGVyXG4gICAgICAgICAgICAgID8gc3RyaW5nKHsgeWVhcjogXCJudW1lcmljXCIgfSwgXCJ5ZWFyXCIpXG4gICAgICAgICAgICAgIDogdGhpcy5udW0oZHQueWVhciwgNCk7XG4gICAgICAgICAgY2FzZSBcInl5eXl5eVwiOlxuICAgICAgICAgICAgLy8gbGlrZSAwMDAwMTJcbiAgICAgICAgICAgIHJldHVybiB1c2VEYXRlVGltZUZvcm1hdHRlclxuICAgICAgICAgICAgICA/IHN0cmluZyh7IHllYXI6IFwibnVtZXJpY1wiIH0sIFwieWVhclwiKVxuICAgICAgICAgICAgICA6IHRoaXMubnVtKGR0LnllYXIsIDYpO1xuICAgICAgICAgIC8vIGVyYXNcbiAgICAgICAgICBjYXNlIFwiR1wiOlxuICAgICAgICAgICAgLy8gbGlrZSBBRFxuICAgICAgICAgICAgcmV0dXJuIGVyYShcInNob3J0XCIpO1xuICAgICAgICAgIGNhc2UgXCJHR1wiOlxuICAgICAgICAgICAgLy8gbGlrZSBBbm5vIERvbWluaVxuICAgICAgICAgICAgcmV0dXJuIGVyYShcImxvbmdcIik7XG4gICAgICAgICAgY2FzZSBcIkdHR0dHXCI6XG4gICAgICAgICAgICByZXR1cm4gZXJhKFwibmFycm93XCIpO1xuICAgICAgICAgIGNhc2UgXCJra1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtZZWFyLnRvU3RyaW5nKCkuc2xpY2UoLTIpLCAyKTtcbiAgICAgICAgICBjYXNlIFwia2tra1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtZZWFyLCA0KTtcbiAgICAgICAgICBjYXNlIFwiV1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtOdW1iZXIpO1xuICAgICAgICAgIGNhc2UgXCJXV1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0LndlZWtOdW1iZXIsIDIpO1xuICAgICAgICAgIGNhc2UgXCJvXCI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5udW0oZHQub3JkaW5hbCk7XG4gICAgICAgICAgY2FzZSBcIm9vb1wiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGR0Lm9yZGluYWwsIDMpO1xuICAgICAgICAgIGNhc2UgXCJxXCI6XG4gICAgICAgICAgICAvLyBsaWtlIDFcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5xdWFydGVyKTtcbiAgICAgICAgICBjYXNlIFwicXFcIjpcbiAgICAgICAgICAgIC8vIGxpa2UgMDFcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC5xdWFydGVyLCAyKTtcbiAgICAgICAgICBjYXNlIFwiWFwiOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtKE1hdGguZmxvb3IoZHQudHMgLyAxMDAwKSk7XG4gICAgICAgICAgY2FzZSBcInhcIjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bShkdC50cyk7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBtYXliZU1hY3JvKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgIHJldHVybiBzdHJpbmdpZnlUb2tlbnMoRm9ybWF0dGVyLnBhcnNlRm9ybWF0KGZtdCksIHRva2VuVG9TdHJpbmcpO1xuICB9XG5cbiAgZm9ybWF0RHVyYXRpb25Gcm9tU3RyaW5nKGR1ciwgZm10KSB7XG4gICAgY29uc3QgdG9rZW5Ub0ZpZWxkID0gKHRva2VuKSA9PiB7XG4gICAgICAgIHN3aXRjaCAodG9rZW5bMF0pIHtcbiAgICAgICAgICBjYXNlIFwiU1wiOlxuICAgICAgICAgICAgcmV0dXJuIFwibWlsbGlzZWNvbmRcIjtcbiAgICAgICAgICBjYXNlIFwic1wiOlxuICAgICAgICAgICAgcmV0dXJuIFwic2Vjb25kXCI7XG4gICAgICAgICAgY2FzZSBcIm1cIjpcbiAgICAgICAgICAgIHJldHVybiBcIm1pbnV0ZVwiO1xuICAgICAgICAgIGNhc2UgXCJoXCI6XG4gICAgICAgICAgICByZXR1cm4gXCJob3VyXCI7XG4gICAgICAgICAgY2FzZSBcImRcIjpcbiAgICAgICAgICAgIHJldHVybiBcImRheVwiO1xuICAgICAgICAgIGNhc2UgXCJNXCI6XG4gICAgICAgICAgICByZXR1cm4gXCJtb250aFwiO1xuICAgICAgICAgIGNhc2UgXCJ5XCI6XG4gICAgICAgICAgICByZXR1cm4gXCJ5ZWFyXCI7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdG9rZW5Ub1N0cmluZyA9IChsaWxkdXIpID0+ICh0b2tlbikgPT4ge1xuICAgICAgICBjb25zdCBtYXBwZWQgPSB0b2tlblRvRmllbGQodG9rZW4pO1xuICAgICAgICBpZiAobWFwcGVkKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubnVtKGxpbGR1ci5nZXQobWFwcGVkKSwgdG9rZW4ubGVuZ3RoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB0b2tlbnMgPSBGb3JtYXR0ZXIucGFyc2VGb3JtYXQoZm10KSxcbiAgICAgIHJlYWxUb2tlbnMgPSB0b2tlbnMucmVkdWNlKFxuICAgICAgICAoZm91bmQsIHsgbGl0ZXJhbCwgdmFsIH0pID0+IChsaXRlcmFsID8gZm91bmQgOiBmb3VuZC5jb25jYXQodmFsKSksXG4gICAgICAgIFtdXG4gICAgICApLFxuICAgICAgY29sbGFwc2VkID0gZHVyLnNoaWZ0VG8oLi4ucmVhbFRva2Vucy5tYXAodG9rZW5Ub0ZpZWxkKS5maWx0ZXIoKHQpID0+IHQpKTtcbiAgICByZXR1cm4gc3RyaW5naWZ5VG9rZW5zKHRva2VucywgdG9rZW5Ub1N0cmluZyhjb2xsYXBzZWQpKTtcbiAgfVxufVxuIiwgImV4cG9ydCBkZWZhdWx0IGNsYXNzIEludmFsaWQge1xuICBjb25zdHJ1Y3RvcihyZWFzb24sIGV4cGxhbmF0aW9uKSB7XG4gICAgdGhpcy5yZWFzb24gPSByZWFzb247XG4gICAgdGhpcy5leHBsYW5hdGlvbiA9IGV4cGxhbmF0aW9uO1xuICB9XG5cbiAgdG9NZXNzYWdlKCkge1xuICAgIGlmICh0aGlzLmV4cGxhbmF0aW9uKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5yZWFzb259OiAke3RoaXMuZXhwbGFuYXRpb259YDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucmVhc29uO1xuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCB7IFpvbmVJc0Fic3RyYWN0RXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMuanNcIjtcblxuLyoqXG4gKiBAaW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFpvbmUge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2Ygem9uZVxuICAgKiBAYWJzdHJhY3RcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCB0eXBlKCkge1xuICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyB6b25lLlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBuYW1lKCkge1xuICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBvZmZzZXQgaXMga25vd24gdG8gYmUgZml4ZWQgZm9yIHRoZSB3aG9sZSB5ZWFyLlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNVbml2ZXJzYWwoKSB7XG4gICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvZmZzZXQncyBjb21tb24gbmFtZSAoc3VjaCBhcyBFU1QpIGF0IHRoZSBzcGVjaWZpZWQgdGltZXN0YW1wXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcGFyYW0ge251bWJlcn0gdHMgLSBFcG9jaCBtaWxsaXNlY29uZHMgZm9yIHdoaWNoIHRvIGdldCB0aGUgbmFtZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIE9wdGlvbnMgdG8gYWZmZWN0IHRoZSBmb3JtYXRcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMuZm9ybWF0IC0gV2hhdCBzdHlsZSBvZiBvZmZzZXQgdG8gcmV0dXJuLiBBY2NlcHRzICdsb25nJyBvciAnc2hvcnQnLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5sb2NhbGUgLSBXaGF0IGxvY2FsZSB0byByZXR1cm4gdGhlIG9mZnNldCBuYW1lIGluLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICBvZmZzZXROYW1lKHRzLCBvcHRzKSB7XG4gICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvZmZzZXQncyB2YWx1ZSBhcyBhIHN0cmluZ1xuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRzIC0gRXBvY2ggbWlsbGlzZWNvbmRzIGZvciB3aGljaCB0byBnZXQgdGhlIG9mZnNldFxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm9ybWF0IC0gV2hhdCBzdHlsZSBvZiBvZmZzZXQgdG8gcmV0dXJuLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjZXB0cyAnbmFycm93JywgJ3Nob3J0Jywgb3IgJ3RlY2hpZScuIFJldHVybmluZyAnKzYnLCAnKzA2OjAwJywgb3IgJyswNjAwJyByZXNwZWN0aXZlbHlcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgZm9ybWF0T2Zmc2V0KHRzLCBmb3JtYXQpIHtcbiAgICB0aHJvdyBuZXcgWm9uZUlzQWJzdHJhY3RFcnJvcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgb2Zmc2V0IGluIG1pbnV0ZXMgZm9yIHRoaXMgem9uZSBhdCB0aGUgc3BlY2lmaWVkIHRpbWVzdGFtcC5cbiAgICogQGFic3RyYWN0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0cyAtIEVwb2NoIG1pbGxpc2Vjb25kcyBmb3Igd2hpY2ggdG8gY29tcHV0ZSB0aGUgb2Zmc2V0XG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIG9mZnNldCh0cykge1xuICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBab25lIGlzIGVxdWFsIHRvIGFub3RoZXIgem9uZVxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtab25lfSBvdGhlclpvbmUgLSB0aGUgem9uZSB0byBjb21wYXJlXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBlcXVhbHMob3RoZXJab25lKSB7XG4gICAgdGhyb3cgbmV3IFpvbmVJc0Fic3RyYWN0RXJyb3IoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIFpvbmUgaXMgdmFsaWQuXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc1ZhbGlkKCkge1xuICAgIHRocm93IG5ldyBab25lSXNBYnN0cmFjdEVycm9yKCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBmb3JtYXRPZmZzZXQsIHBhcnNlWm9uZUluZm8gfSBmcm9tIFwiLi4vaW1wbC91dGlsLmpzXCI7XG5pbXBvcnQgWm9uZSBmcm9tIFwiLi4vem9uZS5qc1wiO1xuXG5sZXQgc2luZ2xldG9uID0gbnVsbDtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBsb2NhbCB6b25lIGZvciB0aGlzIEphdmFTY3JpcHQgZW52aXJvbm1lbnQuXG4gKiBAaW1wbGVtZW50cyB7Wm9uZX1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3lzdGVtWm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogR2V0IGEgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoZSBsb2NhbCB6b25lXG4gICAqIEByZXR1cm4ge1N5c3RlbVpvbmV9XG4gICAqL1xuICBzdGF0aWMgZ2V0IGluc3RhbmNlKCkge1xuICAgIGlmIChzaW5nbGV0b24gPT09IG51bGwpIHtcbiAgICAgIHNpbmdsZXRvbiA9IG5ldyBTeXN0ZW1ab25lKCk7XG4gICAgfVxuICAgIHJldHVybiBzaW5nbGV0b247XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gXCJzeXN0ZW1cIjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IGlzVW5pdmVyc2FsKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldE5hbWUodHMsIHsgZm9ybWF0LCBsb2NhbGUgfSkge1xuICAgIHJldHVybiBwYXJzZVpvbmVJbmZvKHRzLCBmb3JtYXQsIGxvY2FsZSk7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBmb3JtYXRPZmZzZXQodHMsIGZvcm1hdCkge1xuICAgIHJldHVybiBmb3JtYXRPZmZzZXQodGhpcy5vZmZzZXQodHMpLCBmb3JtYXQpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgb2Zmc2V0KHRzKSB7XG4gICAgcmV0dXJuIC1uZXcgRGF0ZSh0cykuZ2V0VGltZXpvbmVPZmZzZXQoKTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscyhvdGhlclpvbmUpIHtcbiAgICByZXR1cm4gb3RoZXJab25lLnR5cGUgPT09IFwic3lzdGVtXCI7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwgImltcG9ydCB7IGZvcm1hdE9mZnNldCwgcGFyc2Vab25lSW5mbywgaXNVbmRlZmluZWQsIGlhbmFSZWdleCwgb2JqVG9Mb2NhbFRTIH0gZnJvbSBcIi4uL2ltcGwvdXRpbC5qc1wiO1xuaW1wb3J0IFpvbmUgZnJvbSBcIi4uL3pvbmUuanNcIjtcblxuY29uc3QgbWF0Y2hpbmdSZWdleCA9IFJlZ0V4cChgXiR7aWFuYVJlZ2V4LnNvdXJjZX0kYCk7XG5cbmxldCBkdGZDYWNoZSA9IHt9O1xuZnVuY3Rpb24gbWFrZURURih6b25lKSB7XG4gIGlmICghZHRmQ2FjaGVbem9uZV0pIHtcbiAgICBkdGZDYWNoZVt6b25lXSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFwiZW4tVVNcIiwge1xuICAgICAgaG91cjEyOiBmYWxzZSxcbiAgICAgIHRpbWVab25lOiB6b25lLFxuICAgICAgeWVhcjogXCJudW1lcmljXCIsXG4gICAgICBtb250aDogXCIyLWRpZ2l0XCIsXG4gICAgICBkYXk6IFwiMi1kaWdpdFwiLFxuICAgICAgaG91cjogXCIyLWRpZ2l0XCIsXG4gICAgICBtaW51dGU6IFwiMi1kaWdpdFwiLFxuICAgICAgc2Vjb25kOiBcIjItZGlnaXRcIixcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gZHRmQ2FjaGVbem9uZV07XG59XG5cbmNvbnN0IHR5cGVUb1BvcyA9IHtcbiAgeWVhcjogMCxcbiAgbW9udGg6IDEsXG4gIGRheTogMixcbiAgaG91cjogMyxcbiAgbWludXRlOiA0LFxuICBzZWNvbmQ6IDUsXG59O1xuXG5mdW5jdGlvbiBoYWNreU9mZnNldChkdGYsIGRhdGUpIHtcbiAgY29uc3QgZm9ybWF0dGVkID0gZHRmLmZvcm1hdChkYXRlKS5yZXBsYWNlKC9cXHUyMDBFL2csIFwiXCIpLFxuICAgIHBhcnNlZCA9IC8oXFxkKylcXC8oXFxkKylcXC8oXFxkKyksPyAoXFxkKyk6KFxcZCspOihcXGQrKS8uZXhlYyhmb3JtYXR0ZWQpLFxuICAgIFssIGZNb250aCwgZkRheSwgZlllYXIsIGZIb3VyLCBmTWludXRlLCBmU2Vjb25kXSA9IHBhcnNlZDtcbiAgcmV0dXJuIFtmWWVhciwgZk1vbnRoLCBmRGF5LCBmSG91ciwgZk1pbnV0ZSwgZlNlY29uZF07XG59XG5cbmZ1bmN0aW9uIHBhcnRzT2Zmc2V0KGR0ZiwgZGF0ZSkge1xuICBjb25zdCBmb3JtYXR0ZWQgPSBkdGYuZm9ybWF0VG9QYXJ0cyhkYXRlKSxcbiAgICBmaWxsZWQgPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBmb3JtYXR0ZWQubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCB7IHR5cGUsIHZhbHVlIH0gPSBmb3JtYXR0ZWRbaV0sXG4gICAgICBwb3MgPSB0eXBlVG9Qb3NbdHlwZV07XG5cbiAgICBpZiAoIWlzVW5kZWZpbmVkKHBvcykpIHtcbiAgICAgIGZpbGxlZFtwb3NdID0gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZpbGxlZDtcbn1cblxubGV0IGlhbmFab25lQ2FjaGUgPSB7fTtcbi8qKlxuICogQSB6b25lIGlkZW50aWZpZWQgYnkgYW4gSUFOQSBpZGVudGlmaWVyLCBsaWtlIEFtZXJpY2EvTmV3X1lvcmtcbiAqIEBpbXBsZW1lbnRzIHtab25lfVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJQU5BWm9uZSBleHRlbmRzIFpvbmUge1xuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBab25lIG5hbWVcbiAgICogQHJldHVybiB7SUFOQVpvbmV9XG4gICAqL1xuICBzdGF0aWMgY3JlYXRlKG5hbWUpIHtcbiAgICBpZiAoIWlhbmFab25lQ2FjaGVbbmFtZV0pIHtcbiAgICAgIGlhbmFab25lQ2FjaGVbbmFtZV0gPSBuZXcgSUFOQVpvbmUobmFtZSk7XG4gICAgfVxuICAgIHJldHVybiBpYW5hWm9uZUNhY2hlW25hbWVdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IGxvY2FsIGNhY2hlcy4gU2hvdWxkIG9ubHkgYmUgbmVjZXNzYXJ5IGluIHRlc3Rpbmcgc2NlbmFyaW9zLlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgc3RhdGljIHJlc2V0Q2FjaGUoKSB7XG4gICAgaWFuYVpvbmVDYWNoZSA9IHt9O1xuICAgIGR0ZkNhY2hlID0ge307XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBwcm92aWRlZCBzdHJpbmcgaXMgYSB2YWxpZCBzcGVjaWZpZXIuIFRoaXMgb25seSBjaGVja3MgdGhlIHN0cmluZydzIGZvcm1hdCwgbm90IHRoYXQgdGhlIHNwZWNpZmllciBpZGVudGlmaWVzIGEga25vd24gem9uZTsgc2VlIGlzVmFsaWRab25lIGZvciB0aGF0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcyAtIFRoZSBzdHJpbmcgdG8gY2hlY2sgdmFsaWRpdHkgb25cbiAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFNwZWNpZmllcihcIkFtZXJpY2EvTmV3X1lvcmtcIikgLy89PiB0cnVlXG4gICAqIEBleGFtcGxlIElBTkFab25lLmlzVmFsaWRTcGVjaWZpZXIoXCJGYW50YXNpYS9DYXN0bGVcIikgLy89PiB0cnVlXG4gICAqIEBleGFtcGxlIElBTkFab25lLmlzVmFsaWRTcGVjaWZpZXIoXCJTcG9ydH5+YmxvcnBcIikgLy89PiBmYWxzZVxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgc3RhdGljIGlzVmFsaWRTcGVjaWZpZXIocykge1xuICAgIHJldHVybiAhIShzICYmIHMubWF0Y2gobWF0Y2hpbmdSZWdleCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgcHJvdmlkZWQgc3RyaW5nIGlkZW50aWZpZXMgYSByZWFsIHpvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHpvbmUgLSBUaGUgc3RyaW5nIHRvIGNoZWNrXG4gICAqIEBleGFtcGxlIElBTkFab25lLmlzVmFsaWRab25lKFwiQW1lcmljYS9OZXdfWW9ya1wiKSAvLz0+IHRydWVcbiAgICogQGV4YW1wbGUgSUFOQVpvbmUuaXNWYWxpZFpvbmUoXCJGYW50YXNpYS9DYXN0bGVcIikgLy89PiBmYWxzZVxuICAgKiBAZXhhbXBsZSBJQU5BWm9uZS5pc1ZhbGlkWm9uZShcIlNwb3J0fn5ibG9ycFwiKSAvLz0+IGZhbHNlXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZFpvbmUoem9uZSkge1xuICAgIGlmICghem9uZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJlbi1VU1wiLCB7IHRpbWVab25lOiB6b25lIH0pLmZvcm1hdCgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKG5hbWUpIHtcbiAgICBzdXBlcigpO1xuICAgIC8qKiBAcHJpdmF0ZSAqKi9cbiAgICB0aGlzLnpvbmVOYW1lID0gbmFtZTtcbiAgICAvKiogQHByaXZhdGUgKiovXG4gICAgdGhpcy52YWxpZCA9IElBTkFab25lLmlzVmFsaWRab25lKG5hbWUpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuIFwiaWFuYVwiO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuem9uZU5hbWU7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNVbml2ZXJzYWwoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgb2Zmc2V0TmFtZSh0cywgeyBmb3JtYXQsIGxvY2FsZSB9KSB7XG4gICAgcmV0dXJuIHBhcnNlWm9uZUluZm8odHMsIGZvcm1hdCwgbG9jYWxlLCB0aGlzLm5hbWUpO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZm9ybWF0T2Zmc2V0KHRzLCBmb3JtYXQpIHtcbiAgICByZXR1cm4gZm9ybWF0T2Zmc2V0KHRoaXMub2Zmc2V0KHRzKSwgZm9ybWF0KTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldCh0cykge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0cyk7XG5cbiAgICBpZiAoaXNOYU4oZGF0ZSkpIHJldHVybiBOYU47XG5cbiAgICBjb25zdCBkdGYgPSBtYWtlRFRGKHRoaXMubmFtZSksXG4gICAgICBbeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmRdID0gZHRmLmZvcm1hdFRvUGFydHNcbiAgICAgICAgPyBwYXJ0c09mZnNldChkdGYsIGRhdGUpXG4gICAgICAgIDogaGFja3lPZmZzZXQoZHRmLCBkYXRlKTtcblxuICAgIC8vIGJlY2F1c2Ugd2UncmUgdXNpbmcgaG91cjEyIGFuZCBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0xMDI1NTY0JmNhbj0yJnE9JTIyMjQlM0EwMCUyMiUyMGRhdGV0aW1lZm9ybWF0XG4gICAgY29uc3QgYWRqdXN0ZWRIb3VyID0gaG91ciA9PT0gMjQgPyAwIDogaG91cjtcblxuICAgIGNvbnN0IGFzVVRDID0gb2JqVG9Mb2NhbFRTKHtcbiAgICAgIHllYXIsXG4gICAgICBtb250aCxcbiAgICAgIGRheSxcbiAgICAgIGhvdXI6IGFkanVzdGVkSG91cixcbiAgICAgIG1pbnV0ZSxcbiAgICAgIHNlY29uZCxcbiAgICAgIG1pbGxpc2Vjb25kOiAwLFxuICAgIH0pO1xuXG4gICAgbGV0IGFzVFMgPSArZGF0ZTtcbiAgICBjb25zdCBvdmVyID0gYXNUUyAlIDEwMDA7XG4gICAgYXNUUyAtPSBvdmVyID49IDAgPyBvdmVyIDogMTAwMCArIG92ZXI7XG4gICAgcmV0dXJuIChhc1VUQyAtIGFzVFMpIC8gKDYwICogMTAwMCk7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBlcXVhbHMob3RoZXJab25lKSB7XG4gICAgcmV0dXJuIG90aGVyWm9uZS50eXBlID09PSBcImlhbmFcIiAmJiBvdGhlclpvbmUubmFtZSA9PT0gdGhpcy5uYW1lO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IGlzVmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWQ7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBmb3JtYXRPZmZzZXQsIHNpZ25lZE9mZnNldCB9IGZyb20gXCIuLi9pbXBsL3V0aWwuanNcIjtcbmltcG9ydCBab25lIGZyb20gXCIuLi96b25lLmpzXCI7XG5cbmxldCBzaW5nbGV0b24gPSBudWxsO1xuXG4vKipcbiAqIEEgem9uZSB3aXRoIGEgZml4ZWQgb2Zmc2V0IChtZWFuaW5nIG5vIERTVClcbiAqIEBpbXBsZW1lbnRzIHtab25lfVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaXhlZE9mZnNldFpvbmUgZXh0ZW5kcyBab25lIHtcbiAgLyoqXG4gICAqIEdldCBhIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiBVVENcbiAgICogQHJldHVybiB7Rml4ZWRPZmZzZXRab25lfVxuICAgKi9cbiAgc3RhdGljIGdldCB1dGNJbnN0YW5jZSgpIHtcbiAgICBpZiAoc2luZ2xldG9uID09PSBudWxsKSB7XG4gICAgICBzaW5nbGV0b24gPSBuZXcgRml4ZWRPZmZzZXRab25lKDApO1xuICAgIH1cbiAgICByZXR1cm4gc2luZ2xldG9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBpbnN0YW5jZSB3aXRoIGEgc3BlY2lmaWVkIG9mZnNldFxuICAgKiBAcGFyYW0ge251bWJlcn0gb2Zmc2V0IC0gVGhlIG9mZnNldCBpbiBtaW51dGVzXG4gICAqIEByZXR1cm4ge0ZpeGVkT2Zmc2V0Wm9uZX1cbiAgICovXG4gIHN0YXRpYyBpbnN0YW5jZShvZmZzZXQpIHtcbiAgICByZXR1cm4gb2Zmc2V0ID09PSAwID8gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlIDogbmV3IEZpeGVkT2Zmc2V0Wm9uZShvZmZzZXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBpbnN0YW5jZSBvZiBGaXhlZE9mZnNldFpvbmUgZnJvbSBhIFVUQyBvZmZzZXQgc3RyaW5nLCBsaWtlIFwiVVRDKzZcIlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcyAtIFRoZSBvZmZzZXQgc3RyaW5nIHRvIHBhcnNlXG4gICAqIEBleGFtcGxlIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcihcIlVUQys2XCIpXG4gICAqIEBleGFtcGxlIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcihcIlVUQyswNlwiKVxuICAgKiBAZXhhbXBsZSBGaXhlZE9mZnNldFpvbmUucGFyc2VTcGVjaWZpZXIoXCJVVEMtNjowMFwiKVxuICAgKiBAcmV0dXJuIHtGaXhlZE9mZnNldFpvbmV9XG4gICAqL1xuICBzdGF0aWMgcGFyc2VTcGVjaWZpZXIocykge1xuICAgIGlmIChzKSB7XG4gICAgICBjb25zdCByID0gcy5tYXRjaCgvXnV0Yyg/OihbKy1dXFxkezEsMn0pKD86OihcXGR7Mn0pKT8pPyQvaSk7XG4gICAgICBpZiAocikge1xuICAgICAgICByZXR1cm4gbmV3IEZpeGVkT2Zmc2V0Wm9uZShzaWduZWRPZmZzZXQoclsxXSwgclsyXSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKG9mZnNldCkge1xuICAgIHN1cGVyKCk7XG4gICAgLyoqIEBwcml2YXRlICoqL1xuICAgIHRoaXMuZml4ZWQgPSBvZmZzZXQ7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gXCJmaXhlZFwiO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZml4ZWQgPT09IDAgPyBcIlVUQ1wiIDogYFVUQyR7Zm9ybWF0T2Zmc2V0KHRoaXMuZml4ZWQsIFwibmFycm93XCIpfWA7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBvZmZzZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBmb3JtYXRPZmZzZXQodHMsIGZvcm1hdCkge1xuICAgIHJldHVybiBmb3JtYXRPZmZzZXQodGhpcy5maXhlZCwgZm9ybWF0KTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBpc1VuaXZlcnNhbCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldCgpIHtcbiAgICByZXR1cm4gdGhpcy5maXhlZDtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscyhvdGhlclpvbmUpIHtcbiAgICByZXR1cm4gb3RoZXJab25lLnR5cGUgPT09IFwiZml4ZWRcIiAmJiBvdGhlclpvbmUuZml4ZWQgPT09IHRoaXMuZml4ZWQ7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIiwgImltcG9ydCBab25lIGZyb20gXCIuLi96b25lLmpzXCI7XG5cbi8qKlxuICogQSB6b25lIHRoYXQgZmFpbGVkIHRvIHBhcnNlLiBZb3Ugc2hvdWxkIG5ldmVyIG5lZWQgdG8gaW5zdGFudGlhdGUgdGhpcy5cbiAqIEBpbXBsZW1lbnRzIHtab25lfVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbnZhbGlkWm9uZSBleHRlbmRzIFpvbmUge1xuICBjb25zdHJ1Y3Rvcih6b25lTmFtZSkge1xuICAgIHN1cGVyKCk7XG4gICAgLyoqICBAcHJpdmF0ZSAqL1xuICAgIHRoaXMuem9uZU5hbWUgPSB6b25lTmFtZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiBcImludmFsaWRcIjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnpvbmVOYW1lO1xuICB9XG5cbiAgLyoqIEBvdmVycmlkZSAqKi9cbiAgZ2V0IGlzVW5pdmVyc2FsKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIG9mZnNldE5hbWUoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBmb3JtYXRPZmZzZXQoKSB7XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBvZmZzZXQoKSB7XG4gICAgcmV0dXJuIE5hTjtcbiAgfVxuXG4gIC8qKiBAb3ZlcnJpZGUgKiovXG4gIGVxdWFscygpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogQG92ZXJyaWRlICoqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsICIvKipcbiAqIEBwcml2YXRlXG4gKi9cblxuaW1wb3J0IFpvbmUgZnJvbSBcIi4uL3pvbmUuanNcIjtcbmltcG9ydCBJQU5BWm9uZSBmcm9tIFwiLi4vem9uZXMvSUFOQVpvbmUuanNcIjtcbmltcG9ydCBGaXhlZE9mZnNldFpvbmUgZnJvbSBcIi4uL3pvbmVzL2ZpeGVkT2Zmc2V0Wm9uZS5qc1wiO1xuaW1wb3J0IEludmFsaWRab25lIGZyb20gXCIuLi96b25lcy9pbnZhbGlkWm9uZS5qc1wiO1xuXG5pbXBvcnQgeyBpc1VuZGVmaW5lZCwgaXNTdHJpbmcsIGlzTnVtYmVyIH0gZnJvbSBcIi4vdXRpbC5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplWm9uZShpbnB1dCwgZGVmYXVsdFpvbmUpIHtcbiAgbGV0IG9mZnNldDtcbiAgaWYgKGlzVW5kZWZpbmVkKGlucHV0KSB8fCBpbnB1dCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBkZWZhdWx0Wm9uZTtcbiAgfSBlbHNlIGlmIChpbnB1dCBpbnN0YW5jZW9mIFpvbmUpIHtcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH0gZWxzZSBpZiAoaXNTdHJpbmcoaW5wdXQpKSB7XG4gICAgY29uc3QgbG93ZXJlZCA9IGlucHV0LnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGxvd2VyZWQgPT09IFwibG9jYWxcIiB8fCBsb3dlcmVkID09PSBcInN5c3RlbVwiKSByZXR1cm4gZGVmYXVsdFpvbmU7XG4gICAgZWxzZSBpZiAobG93ZXJlZCA9PT0gXCJ1dGNcIiB8fCBsb3dlcmVkID09PSBcImdtdFwiKSByZXR1cm4gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlO1xuICAgIGVsc2UgaWYgKElBTkFab25lLmlzVmFsaWRTcGVjaWZpZXIobG93ZXJlZCkpIHJldHVybiBJQU5BWm9uZS5jcmVhdGUoaW5wdXQpO1xuICAgIGVsc2UgcmV0dXJuIEZpeGVkT2Zmc2V0Wm9uZS5wYXJzZVNwZWNpZmllcihsb3dlcmVkKSB8fCBuZXcgSW52YWxpZFpvbmUoaW5wdXQpO1xuICB9IGVsc2UgaWYgKGlzTnVtYmVyKGlucHV0KSkge1xuICAgIHJldHVybiBGaXhlZE9mZnNldFpvbmUuaW5zdGFuY2UoaW5wdXQpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJvYmplY3RcIiAmJiBpbnB1dC5vZmZzZXQgJiYgdHlwZW9mIGlucHV0Lm9mZnNldCA9PT0gXCJudW1iZXJcIikge1xuICAgIC8vIFRoaXMgaXMgZHVtYiwgYnV0IHRoZSBpbnN0YW5jZW9mIGNoZWNrIGFib3ZlIGRvZXNuJ3Qgc2VlbSB0byByZWFsbHkgd29ya1xuICAgIC8vIHNvIHdlJ3JlIGR1Y2sgY2hlY2tpbmcgaXRcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5ldyBJbnZhbGlkWm9uZShpbnB1dCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgU3lzdGVtWm9uZSBmcm9tIFwiLi96b25lcy9zeXN0ZW1ab25lLmpzXCI7XG5pbXBvcnQgSUFOQVpvbmUgZnJvbSBcIi4vem9uZXMvSUFOQVpvbmUuanNcIjtcbmltcG9ydCBMb2NhbGUgZnJvbSBcIi4vaW1wbC9sb2NhbGUuanNcIjtcblxuaW1wb3J0IHsgbm9ybWFsaXplWm9uZSB9IGZyb20gXCIuL2ltcGwvem9uZVV0aWwuanNcIjtcblxubGV0IG5vdyA9ICgpID0+IERhdGUubm93KCksXG4gIGRlZmF1bHRab25lID0gXCJzeXN0ZW1cIixcbiAgZGVmYXVsdExvY2FsZSA9IG51bGwsXG4gIGRlZmF1bHROdW1iZXJpbmdTeXN0ZW0gPSBudWxsLFxuICBkZWZhdWx0T3V0cHV0Q2FsZW5kYXIgPSBudWxsLFxuICB0aHJvd09uSW52YWxpZDtcblxuLyoqXG4gKiBTZXR0aW5ncyBjb250YWlucyBzdGF0aWMgZ2V0dGVycyBhbmQgc2V0dGVycyB0aGF0IGNvbnRyb2wgTHV4b24ncyBvdmVyYWxsIGJlaGF2aW9yLiBMdXhvbiBpcyBhIHNpbXBsZSBsaWJyYXJ5IHdpdGggZmV3IG9wdGlvbnMsIGJ1dCB0aGUgb25lcyBpdCBkb2VzIGhhdmUgbGl2ZSBoZXJlLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBHZXQgdGhlIGNhbGxiYWNrIGZvciByZXR1cm5pbmcgdGhlIGN1cnJlbnQgdGltZXN0YW1wLlxuICAgKiBAdHlwZSB7ZnVuY3Rpb259XG4gICAqL1xuICBzdGF0aWMgZ2V0IG5vdygpIHtcbiAgICByZXR1cm4gbm93O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgY2FsbGJhY2sgZm9yIHJldHVybmluZyB0aGUgY3VycmVudCB0aW1lc3RhbXAuXG4gICAqIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGEgbnVtYmVyLCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIEVwb2NoIG1pbGxpc2Vjb25kIGNvdW50XG4gICAqIEB0eXBlIHtmdW5jdGlvbn1cbiAgICogQGV4YW1wbGUgU2V0dGluZ3Mubm93ID0gKCkgPT4gRGF0ZS5ub3coKSArIDMwMDAgLy8gcHJldGVuZCBpdCBpcyAzIHNlY29uZHMgaW4gdGhlIGZ1dHVyZVxuICAgKiBAZXhhbXBsZSBTZXR0aW5ncy5ub3cgPSAoKSA9PiAwIC8vIGFsd2F5cyBwcmV0ZW5kIGl0J3MgSmFuIDEsIDE5NzAgYXQgbWlkbmlnaHQgaW4gVVRDIHRpbWVcbiAgICovXG4gIHN0YXRpYyBzZXQgbm93KG4pIHtcbiAgICBub3cgPSBuO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgdG8gY3JlYXRlIERhdGVUaW1lcyBpbi4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogVXNlIHRoZSB2YWx1ZSBcInN5c3RlbVwiIHRvIHJlc2V0IHRoaXMgdmFsdWUgdG8gdGhlIHN5c3RlbSdzIHRpbWUgem9uZS5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBzZXQgZGVmYXVsdFpvbmUoem9uZSkge1xuICAgIGRlZmF1bHRab25lID0gem9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgdGltZSB6b25lIG9iamVjdCBjdXJyZW50bHkgdXNlZCB0byBjcmVhdGUgRGF0ZVRpbWVzLiBEb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLlxuICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB0aGUgc3lzdGVtJ3MgdGltZSB6b25lICh0aGUgb25lIHNldCBvbiB0aGUgbWFjaGluZSB0aGF0IHJ1bnMgdGhpcyBjb2RlKS5cbiAgICogQHR5cGUge1pvbmV9XG4gICAqL1xuICBzdGF0aWMgZ2V0IGRlZmF1bHRab25lKCkge1xuICAgIHJldHVybiBub3JtYWxpemVab25lKGRlZmF1bHRab25lLCBTeXN0ZW1ab25lLmluc3RhbmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgbG9jYWxlIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBnZXQgZGVmYXVsdExvY2FsZSgpIHtcbiAgICByZXR1cm4gZGVmYXVsdExvY2FsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgbG9jYWxlIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBzZXQgZGVmYXVsdExvY2FsZShsb2NhbGUpIHtcbiAgICBkZWZhdWx0TG9jYWxlID0gbG9jYWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGVmYXVsdCBudW1iZXJpbmcgc3lzdGVtIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBnZXQgZGVmYXVsdE51bWJlcmluZ1N5c3RlbSgpIHtcbiAgICByZXR1cm4gZGVmYXVsdE51bWJlcmluZ1N5c3RlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgbnVtYmVyaW5nIHN5c3RlbSB0byBjcmVhdGUgRGF0ZVRpbWVzIHdpdGguIERvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBzdGF0aWMgc2V0IGRlZmF1bHROdW1iZXJpbmdTeXN0ZW0obnVtYmVyaW5nU3lzdGVtKSB7XG4gICAgZGVmYXVsdE51bWJlcmluZ1N5c3RlbSA9IG51bWJlcmluZ1N5c3RlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlZmF1bHQgb3V0cHV0IGNhbGVuZGFyIHRvIGNyZWF0ZSBEYXRlVGltZXMgd2l0aC4gRG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIHN0YXRpYyBnZXQgZGVmYXVsdE91dHB1dENhbGVuZGFyKCkge1xuICAgIHJldHVybiBkZWZhdWx0T3V0cHV0Q2FsZW5kYXI7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBkZWZhdWx0IG91dHB1dCBjYWxlbmRhciB0byBjcmVhdGUgRGF0ZVRpbWVzIHdpdGguIERvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBzdGF0aWMgc2V0IGRlZmF1bHRPdXRwdXRDYWxlbmRhcihvdXRwdXRDYWxlbmRhcikge1xuICAgIGRlZmF1bHRPdXRwdXRDYWxlbmRhciA9IG91dHB1dENhbGVuZGFyO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB3aGV0aGVyIEx1eG9uIHdpbGwgdGhyb3cgd2hlbiBpdCBlbmNvdW50ZXJzIGludmFsaWQgRGF0ZVRpbWVzLCBEdXJhdGlvbnMsIG9yIEludGVydmFsc1xuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBnZXQgdGhyb3dPbkludmFsaWQoKSB7XG4gICAgcmV0dXJuIHRocm93T25JbnZhbGlkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIEx1eG9uIHdpbGwgdGhyb3cgd2hlbiBpdCBlbmNvdW50ZXJzIGludmFsaWQgRGF0ZVRpbWVzLCBEdXJhdGlvbnMsIG9yIEludGVydmFsc1xuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBzZXQgdGhyb3dPbkludmFsaWQodCkge1xuICAgIHRocm93T25JbnZhbGlkID0gdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBMdXhvbidzIGdsb2JhbCBjYWNoZXMuIFNob3VsZCBvbmx5IGJlIG5lY2Vzc2FyeSBpbiB0ZXN0aW5nIHNjZW5hcmlvcy5cbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIHN0YXRpYyByZXNldENhY2hlcygpIHtcbiAgICBMb2NhbGUucmVzZXRDYWNoZSgpO1xuICAgIElBTkFab25lLnJlc2V0Q2FjaGUoKTtcbiAgfVxufVxuIiwgImltcG9ydCB7IHBhZFN0YXJ0LCByb3VuZFRvLCBoYXNSZWxhdGl2ZSB9IGZyb20gXCIuL3V0aWwuanNcIjtcbmltcG9ydCAqIGFzIEVuZ2xpc2ggZnJvbSBcIi4vZW5nbGlzaC5qc1wiO1xuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuLi9zZXR0aW5ncy5qc1wiO1xuaW1wb3J0IERhdGVUaW1lIGZyb20gXCIuLi9kYXRldGltZS5qc1wiO1xuaW1wb3J0IElBTkFab25lIGZyb20gXCIuLi96b25lcy9JQU5BWm9uZS5qc1wiO1xuXG4vLyB0b2RvIC0gcmVtYXAgY2FjaGluZ1xuXG5sZXQgaW50bExGQ2FjaGUgPSB7fTtcbmZ1bmN0aW9uIGdldENhY2hlZExGKGxvY1N0cmluZywgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KFtsb2NTdHJpbmcsIG9wdHNdKTtcbiAgbGV0IGR0ZiA9IGludGxMRkNhY2hlW2tleV07XG4gIGlmICghZHRmKSB7XG4gICAgZHRmID0gbmV3IEludGwuTGlzdEZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxMRkNhY2hlW2tleV0gPSBkdGY7XG4gIH1cbiAgcmV0dXJuIGR0Zjtcbn1cblxubGV0IGludGxEVENhY2hlID0ge307XG5mdW5jdGlvbiBnZXRDYWNoZWREVEYobG9jU3RyaW5nLCBvcHRzID0ge30pIHtcbiAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoW2xvY1N0cmluZywgb3B0c10pO1xuICBsZXQgZHRmID0gaW50bERUQ2FjaGVba2V5XTtcbiAgaWYgKCFkdGYpIHtcbiAgICBkdGYgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxEVENhY2hlW2tleV0gPSBkdGY7XG4gIH1cbiAgcmV0dXJuIGR0Zjtcbn1cblxubGV0IGludGxOdW1DYWNoZSA9IHt9O1xuZnVuY3Rpb24gZ2V0Q2FjaGVkSU5GKGxvY1N0cmluZywgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KFtsb2NTdHJpbmcsIG9wdHNdKTtcbiAgbGV0IGluZiA9IGludGxOdW1DYWNoZVtrZXldO1xuICBpZiAoIWluZikge1xuICAgIGluZiA9IG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxOdW1DYWNoZVtrZXldID0gaW5mO1xuICB9XG4gIHJldHVybiBpbmY7XG59XG5cbmxldCBpbnRsUmVsQ2FjaGUgPSB7fTtcbmZ1bmN0aW9uIGdldENhY2hlZFJURihsb2NTdHJpbmcsIG9wdHMgPSB7fSkge1xuICBjb25zdCB7IGJhc2UsIC4uLmNhY2hlS2V5T3B0cyB9ID0gb3B0czsgLy8gZXhjbHVkZSBgYmFzZWAgZnJvbSB0aGUgb3B0aW9uc1xuICBjb25zdCBrZXkgPSBKU09OLnN0cmluZ2lmeShbbG9jU3RyaW5nLCBjYWNoZUtleU9wdHNdKTtcbiAgbGV0IGluZiA9IGludGxSZWxDYWNoZVtrZXldO1xuICBpZiAoIWluZikge1xuICAgIGluZiA9IG5ldyBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdChsb2NTdHJpbmcsIG9wdHMpO1xuICAgIGludGxSZWxDYWNoZVtrZXldID0gaW5mO1xuICB9XG4gIHJldHVybiBpbmY7XG59XG5cbmxldCBzeXNMb2NhbGVDYWNoZSA9IG51bGw7XG5mdW5jdGlvbiBzeXN0ZW1Mb2NhbGUoKSB7XG4gIGlmIChzeXNMb2NhbGVDYWNoZSkge1xuICAgIHJldHVybiBzeXNMb2NhbGVDYWNoZTtcbiAgfSBlbHNlIHtcbiAgICBzeXNMb2NhbGVDYWNoZSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlO1xuICAgIHJldHVybiBzeXNMb2NhbGVDYWNoZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUxvY2FsZVN0cmluZyhsb2NhbGVTdHIpIHtcbiAgLy8gSSByZWFsbHkgd2FudCB0byBhdm9pZCB3cml0aW5nIGEgQkNQIDQ3IHBhcnNlclxuICAvLyBzZWUsIGUuZy4gaHR0cHM6Ly9naXRodWIuY29tL3dvb29ybS9iY3AtNDdcbiAgLy8gSW5zdGVhZCwgd2UnbGwgZG8gdGhpczpcblxuICAvLyBhKSBpZiB0aGUgc3RyaW5nIGhhcyBubyAtdSBleHRlbnNpb25zLCBqdXN0IGxlYXZlIGl0IGFsb25lXG4gIC8vIGIpIGlmIGl0IGRvZXMsIHVzZSBJbnRsIHRvIHJlc29sdmUgZXZlcnl0aGluZ1xuICAvLyBjKSBpZiBJbnRsIGZhaWxzLCB0cnkgYWdhaW4gd2l0aG91dCB0aGUgLXVcblxuICBjb25zdCB1SW5kZXggPSBsb2NhbGVTdHIuaW5kZXhPZihcIi11LVwiKTtcbiAgaWYgKHVJbmRleCA9PT0gLTEpIHtcbiAgICByZXR1cm4gW2xvY2FsZVN0cl07XG4gIH0gZWxzZSB7XG4gICAgbGV0IG9wdGlvbnM7XG4gICAgY29uc3Qgc21hbGxlciA9IGxvY2FsZVN0ci5zdWJzdHJpbmcoMCwgdUluZGV4KTtcbiAgICB0cnkge1xuICAgICAgb3B0aW9ucyA9IGdldENhY2hlZERURihsb2NhbGVTdHIpLnJlc29sdmVkT3B0aW9ucygpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIG9wdGlvbnMgPSBnZXRDYWNoZWREVEYoc21hbGxlcikucmVzb2x2ZWRPcHRpb25zKCk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBudW1iZXJpbmdTeXN0ZW0sIGNhbGVuZGFyIH0gPSBvcHRpb25zO1xuICAgIC8vIHJldHVybiB0aGUgc21hbGxlciBvbmUgc28gdGhhdCB3ZSBjYW4gYXBwZW5kIHRoZSBjYWxlbmRhciBhbmQgbnVtYmVyaW5nIG92ZXJyaWRlcyB0byBpdFxuICAgIHJldHVybiBbc21hbGxlciwgbnVtYmVyaW5nU3lzdGVtLCBjYWxlbmRhcl07XG4gIH1cbn1cblxuZnVuY3Rpb24gaW50bENvbmZpZ1N0cmluZyhsb2NhbGVTdHIsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIpIHtcbiAgaWYgKG91dHB1dENhbGVuZGFyIHx8IG51bWJlcmluZ1N5c3RlbSkge1xuICAgIGxvY2FsZVN0ciArPSBcIi11XCI7XG5cbiAgICBpZiAob3V0cHV0Q2FsZW5kYXIpIHtcbiAgICAgIGxvY2FsZVN0ciArPSBgLWNhLSR7b3V0cHV0Q2FsZW5kYXJ9YDtcbiAgICB9XG5cbiAgICBpZiAobnVtYmVyaW5nU3lzdGVtKSB7XG4gICAgICBsb2NhbGVTdHIgKz0gYC1udS0ke251bWJlcmluZ1N5c3RlbX1gO1xuICAgIH1cbiAgICByZXR1cm4gbG9jYWxlU3RyO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsb2NhbGVTdHI7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFwTW9udGhzKGYpIHtcbiAgY29uc3QgbXMgPSBbXTtcbiAgZm9yIChsZXQgaSA9IDE7IGkgPD0gMTI7IGkrKykge1xuICAgIGNvbnN0IGR0ID0gRGF0ZVRpbWUudXRjKDIwMTYsIGksIDEpO1xuICAgIG1zLnB1c2goZihkdCkpO1xuICB9XG4gIHJldHVybiBtcztcbn1cblxuZnVuY3Rpb24gbWFwV2Vla2RheXMoZikge1xuICBjb25zdCBtcyA9IFtdO1xuICBmb3IgKGxldCBpID0gMTsgaSA8PSA3OyBpKyspIHtcbiAgICBjb25zdCBkdCA9IERhdGVUaW1lLnV0YygyMDE2LCAxMSwgMTMgKyBpKTtcbiAgICBtcy5wdXNoKGYoZHQpKTtcbiAgfVxuICByZXR1cm4gbXM7XG59XG5cbmZ1bmN0aW9uIGxpc3RTdHVmZihsb2MsIGxlbmd0aCwgZGVmYXVsdE9LLCBlbmdsaXNoRm4sIGludGxGbikge1xuICBjb25zdCBtb2RlID0gbG9jLmxpc3RpbmdNb2RlKGRlZmF1bHRPSyk7XG5cbiAgaWYgKG1vZGUgPT09IFwiZXJyb3JcIikge1xuICAgIHJldHVybiBudWxsO1xuICB9IGVsc2UgaWYgKG1vZGUgPT09IFwiZW5cIikge1xuICAgIHJldHVybiBlbmdsaXNoRm4obGVuZ3RoKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gaW50bEZuKGxlbmd0aCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3VwcG9ydHNGYXN0TnVtYmVycyhsb2MpIHtcbiAgaWYgKGxvYy5udW1iZXJpbmdTeXN0ZW0gJiYgbG9jLm51bWJlcmluZ1N5c3RlbSAhPT0gXCJsYXRuXCIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGxvYy5udW1iZXJpbmdTeXN0ZW0gPT09IFwibGF0blwiIHx8XG4gICAgICAhbG9jLmxvY2FsZSB8fFxuICAgICAgbG9jLmxvY2FsZS5zdGFydHNXaXRoKFwiZW5cIikgfHxcbiAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvYy5pbnRsKS5yZXNvbHZlZE9wdGlvbnMoKS5udW1iZXJpbmdTeXN0ZW0gPT09IFwibGF0blwiXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuY2xhc3MgUG9seU51bWJlckZvcm1hdHRlciB7XG4gIGNvbnN0cnVjdG9yKGludGwsIGZvcmNlU2ltcGxlLCBvcHRzKSB7XG4gICAgdGhpcy5wYWRUbyA9IG9wdHMucGFkVG8gfHwgMDtcbiAgICB0aGlzLmZsb29yID0gb3B0cy5mbG9vciB8fCBmYWxzZTtcblxuICAgIGNvbnN0IHsgcGFkVG8sIGZsb29yLCAuLi5vdGhlck9wdHMgfSA9IG9wdHM7XG5cbiAgICBpZiAoIWZvcmNlU2ltcGxlIHx8IE9iamVjdC5rZXlzKG90aGVyT3B0cykubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgaW50bE9wdHMgPSB7IHVzZUdyb3VwaW5nOiBmYWxzZSwgLi4ub3B0cyB9O1xuICAgICAgaWYgKG9wdHMucGFkVG8gPiAwKSBpbnRsT3B0cy5taW5pbXVtSW50ZWdlckRpZ2l0cyA9IG9wdHMucGFkVG87XG4gICAgICB0aGlzLmluZiA9IGdldENhY2hlZElORihpbnRsLCBpbnRsT3B0cyk7XG4gICAgfVxuICB9XG5cbiAgZm9ybWF0KGkpIHtcbiAgICBpZiAodGhpcy5pbmYpIHtcbiAgICAgIGNvbnN0IGZpeGVkID0gdGhpcy5mbG9vciA/IE1hdGguZmxvb3IoaSkgOiBpO1xuICAgICAgcmV0dXJuIHRoaXMuaW5mLmZvcm1hdChmaXhlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRvIG1hdGNoIHRoZSBicm93c2VyJ3MgbnVtYmVyZm9ybWF0dGVyIGRlZmF1bHRzXG4gICAgICBjb25zdCBmaXhlZCA9IHRoaXMuZmxvb3IgPyBNYXRoLmZsb29yKGkpIDogcm91bmRUbyhpLCAzKTtcbiAgICAgIHJldHVybiBwYWRTdGFydChmaXhlZCwgdGhpcy5wYWRUbyk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuXG5jbGFzcyBQb2x5RGF0ZUZvcm1hdHRlciB7XG4gIGNvbnN0cnVjdG9yKGR0LCBpbnRsLCBvcHRzKSB7XG4gICAgdGhpcy5vcHRzID0gb3B0cztcblxuICAgIGxldCB6O1xuICAgIGlmIChkdC56b25lLmlzVW5pdmVyc2FsKSB7XG4gICAgICAvLyBVVEMtOCBvciBFdGMvVVRDLTggYXJlIG5vdCBwYXJ0IG9mIHR6ZGF0YSwgb25seSBFdGMvR01UKzggYW5kIHRoZSBsaWtlLlxuICAgICAgLy8gVGhhdCBpcyB3aHkgZml4ZWQtb2Zmc2V0IFRaIGlzIHNldCB0byB0aGF0IHVubGVzcyBpdCBpczpcbiAgICAgIC8vIDEuIFJlcHJlc2VudGluZyBvZmZzZXQgMCB3aGVuIFVUQyBpcyB1c2VkIHRvIG1haW50YWluIHByZXZpb3VzIGJlaGF2aW9yIGFuZCBkb2VzIG5vdCBiZWNvbWUgR01ULlxuICAgICAgLy8gMi4gVW5zdXBwb3J0ZWQgYnkgdGhlIGJyb3dzZXI6XG4gICAgICAvLyAgICAtIHNvbWUgZG8gbm90IHN1cHBvcnQgRXRjL1xuICAgICAgLy8gICAgLSA8IEV0Yy9HTVQtMTQsID4gRXRjL0dNVCsxMiwgYW5kIDMwLW1pbnV0ZSBvciA0NS1taW51dGUgb2Zmc2V0cyBhcmUgbm90IHBhcnQgb2YgdHpkYXRhXG4gICAgICBjb25zdCBnbXRPZmZzZXQgPSAtMSAqIChkdC5vZmZzZXQgLyA2MCk7XG4gICAgICBjb25zdCBvZmZzZXRaID0gZ210T2Zmc2V0ID49IDAgPyBgRXRjL0dNVCske2dtdE9mZnNldH1gIDogYEV0Yy9HTVQke2dtdE9mZnNldH1gO1xuICAgICAgaWYgKGR0Lm9mZnNldCAhPT0gMCAmJiBJQU5BWm9uZS5jcmVhdGUob2Zmc2V0WikudmFsaWQpIHtcbiAgICAgICAgeiA9IG9mZnNldFo7XG4gICAgICAgIHRoaXMuZHQgPSBkdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5vdCBhbGwgZml4ZWQtb2Zmc2V0IHpvbmVzIGxpa2UgRXRjLys0OjMwIGFyZSBwcmVzZW50IGluIHR6ZGF0YS5cbiAgICAgICAgLy8gU28gd2UgaGF2ZSB0byBtYWtlIGRvLiBUd28gY2FzZXM6XG4gICAgICAgIC8vIDEuIFRoZSBmb3JtYXQgb3B0aW9ucyB0ZWxsIHVzIHRvIHNob3cgdGhlIHpvbmUuIFdlIGNhbid0IGRvIHRoYXQsIHNvIHRoZSBiZXN0XG4gICAgICAgIC8vIHdlIGNhbiBkbyBpcyBmb3JtYXQgdGhlIGRhdGUgaW4gVVRDLlxuICAgICAgICAvLyAyLiBUaGUgZm9ybWF0IG9wdGlvbnMgZG9uJ3QgdGVsbCB1cyB0byBzaG93IHRoZSB6b25lLiBUaGVuIHdlIGNhbiBhZGp1c3QgdGhlbVxuICAgICAgICAvLyB0aGUgdGltZSBhbmQgdGVsbCB0aGUgZm9ybWF0dGVyIHRvIHNob3cgaXQgdG8gdXMgaW4gVVRDLCBzbyB0aGF0IHRoZSB0aW1lIGlzIHJpZ2h0XG4gICAgICAgIC8vIGFuZCB0aGUgYmFkIHpvbmUgZG9lc24ndCBzaG93IHVwLlxuICAgICAgICB6ID0gXCJVVENcIjtcbiAgICAgICAgaWYgKG9wdHMudGltZVpvbmVOYW1lKSB7XG4gICAgICAgICAgdGhpcy5kdCA9IGR0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZHQgPSBkdC5vZmZzZXQgPT09IDAgPyBkdCA6IERhdGVUaW1lLmZyb21NaWxsaXMoZHQudHMgKyBkdC5vZmZzZXQgKiA2MCAqIDEwMDApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChkdC56b25lLnR5cGUgPT09IFwic3lzdGVtXCIpIHtcbiAgICAgIHRoaXMuZHQgPSBkdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kdCA9IGR0O1xuICAgICAgeiA9IGR0LnpvbmUubmFtZTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnRsT3B0cyA9IHsgLi4udGhpcy5vcHRzIH07XG4gICAgaWYgKHopIHtcbiAgICAgIGludGxPcHRzLnRpbWVab25lID0gejtcbiAgICB9XG4gICAgdGhpcy5kdGYgPSBnZXRDYWNoZWREVEYoaW50bCwgaW50bE9wdHMpO1xuICB9XG5cbiAgZm9ybWF0KCkge1xuICAgIHJldHVybiB0aGlzLmR0Zi5mb3JtYXQodGhpcy5kdC50b0pTRGF0ZSgpKTtcbiAgfVxuXG4gIGZvcm1hdFRvUGFydHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZHRmLmZvcm1hdFRvUGFydHModGhpcy5kdC50b0pTRGF0ZSgpKTtcbiAgfVxuXG4gIHJlc29sdmVkT3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5kdGYucmVzb2x2ZWRPcHRpb25zKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBQb2x5UmVsRm9ybWF0dGVyIHtcbiAgY29uc3RydWN0b3IoaW50bCwgaXNFbmdsaXNoLCBvcHRzKSB7XG4gICAgdGhpcy5vcHRzID0geyBzdHlsZTogXCJsb25nXCIsIC4uLm9wdHMgfTtcbiAgICBpZiAoIWlzRW5nbGlzaCAmJiBoYXNSZWxhdGl2ZSgpKSB7XG4gICAgICB0aGlzLnJ0ZiA9IGdldENhY2hlZFJURihpbnRsLCBvcHRzKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXQoY291bnQsIHVuaXQpIHtcbiAgICBpZiAodGhpcy5ydGYpIHtcbiAgICAgIHJldHVybiB0aGlzLnJ0Zi5mb3JtYXQoY291bnQsIHVuaXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gRW5nbGlzaC5mb3JtYXRSZWxhdGl2ZVRpbWUodW5pdCwgY291bnQsIHRoaXMub3B0cy5udW1lcmljLCB0aGlzLm9wdHMuc3R5bGUgIT09IFwibG9uZ1wiKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXRUb1BhcnRzKGNvdW50LCB1bml0KSB7XG4gICAgaWYgKHRoaXMucnRmKSB7XG4gICAgICByZXR1cm4gdGhpcy5ydGYuZm9ybWF0VG9QYXJ0cyhjb3VudCwgdW5pdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvY2FsZSB7XG4gIHN0YXRpYyBmcm9tT3B0cyhvcHRzKSB7XG4gICAgcmV0dXJuIExvY2FsZS5jcmVhdGUob3B0cy5sb2NhbGUsIG9wdHMubnVtYmVyaW5nU3lzdGVtLCBvcHRzLm91dHB1dENhbGVuZGFyLCBvcHRzLmRlZmF1bHRUb0VOKTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyLCBkZWZhdWx0VG9FTiA9IGZhbHNlKSB7XG4gICAgY29uc3Qgc3BlY2lmaWVkTG9jYWxlID0gbG9jYWxlIHx8IFNldHRpbmdzLmRlZmF1bHRMb2NhbGU7XG4gICAgLy8gdGhlIHN5c3RlbSBsb2NhbGUgaXMgdXNlZnVsIGZvciBodW1hbiByZWFkYWJsZSBzdHJpbmdzIGJ1dCBhbm5veWluZyBmb3IgcGFyc2luZy9mb3JtYXR0aW5nIGtub3duIGZvcm1hdHNcbiAgICBjb25zdCBsb2NhbGVSID0gc3BlY2lmaWVkTG9jYWxlIHx8IChkZWZhdWx0VG9FTiA/IFwiZW4tVVNcIiA6IHN5c3RlbUxvY2FsZSgpKTtcbiAgICBjb25zdCBudW1iZXJpbmdTeXN0ZW1SID0gbnVtYmVyaW5nU3lzdGVtIHx8IFNldHRpbmdzLmRlZmF1bHROdW1iZXJpbmdTeXN0ZW07XG4gICAgY29uc3Qgb3V0cHV0Q2FsZW5kYXJSID0gb3V0cHV0Q2FsZW5kYXIgfHwgU2V0dGluZ3MuZGVmYXVsdE91dHB1dENhbGVuZGFyO1xuICAgIHJldHVybiBuZXcgTG9jYWxlKGxvY2FsZVIsIG51bWJlcmluZ1N5c3RlbVIsIG91dHB1dENhbGVuZGFyUiwgc3BlY2lmaWVkTG9jYWxlKTtcbiAgfVxuXG4gIHN0YXRpYyByZXNldENhY2hlKCkge1xuICAgIHN5c0xvY2FsZUNhY2hlID0gbnVsbDtcbiAgICBpbnRsRFRDYWNoZSA9IHt9O1xuICAgIGludGxOdW1DYWNoZSA9IHt9O1xuICAgIGludGxSZWxDYWNoZSA9IHt9O1xuICB9XG5cbiAgc3RhdGljIGZyb21PYmplY3QoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIgfSA9IHt9KSB7XG4gICAgcmV0dXJuIExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGxvY2FsZSwgbnVtYmVyaW5nLCBvdXRwdXRDYWxlbmRhciwgc3BlY2lmaWVkTG9jYWxlKSB7XG4gICAgY29uc3QgW3BhcnNlZExvY2FsZSwgcGFyc2VkTnVtYmVyaW5nU3lzdGVtLCBwYXJzZWRPdXRwdXRDYWxlbmRhcl0gPSBwYXJzZUxvY2FsZVN0cmluZyhsb2NhbGUpO1xuXG4gICAgdGhpcy5sb2NhbGUgPSBwYXJzZWRMb2NhbGU7XG4gICAgdGhpcy5udW1iZXJpbmdTeXN0ZW0gPSBudW1iZXJpbmcgfHwgcGFyc2VkTnVtYmVyaW5nU3lzdGVtIHx8IG51bGw7XG4gICAgdGhpcy5vdXRwdXRDYWxlbmRhciA9IG91dHB1dENhbGVuZGFyIHx8IHBhcnNlZE91dHB1dENhbGVuZGFyIHx8IG51bGw7XG4gICAgdGhpcy5pbnRsID0gaW50bENvbmZpZ1N0cmluZyh0aGlzLmxvY2FsZSwgdGhpcy5udW1iZXJpbmdTeXN0ZW0sIHRoaXMub3V0cHV0Q2FsZW5kYXIpO1xuXG4gICAgdGhpcy53ZWVrZGF5c0NhY2hlID0geyBmb3JtYXQ6IHt9LCBzdGFuZGFsb25lOiB7fSB9O1xuICAgIHRoaXMubW9udGhzQ2FjaGUgPSB7IGZvcm1hdDoge30sIHN0YW5kYWxvbmU6IHt9IH07XG4gICAgdGhpcy5tZXJpZGllbUNhY2hlID0gbnVsbDtcbiAgICB0aGlzLmVyYUNhY2hlID0ge307XG5cbiAgICB0aGlzLnNwZWNpZmllZExvY2FsZSA9IHNwZWNpZmllZExvY2FsZTtcbiAgICB0aGlzLmZhc3ROdW1iZXJzQ2FjaGVkID0gbnVsbDtcbiAgfVxuXG4gIGdldCBmYXN0TnVtYmVycygpIHtcbiAgICBpZiAodGhpcy5mYXN0TnVtYmVyc0NhY2hlZCA9PSBudWxsKSB7XG4gICAgICB0aGlzLmZhc3ROdW1iZXJzQ2FjaGVkID0gc3VwcG9ydHNGYXN0TnVtYmVycyh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mYXN0TnVtYmVyc0NhY2hlZDtcbiAgfVxuXG4gIGxpc3RpbmdNb2RlKCkge1xuICAgIGNvbnN0IGlzQWN0dWFsbHlFbiA9IHRoaXMuaXNFbmdsaXNoKCk7XG4gICAgY29uc3QgaGFzTm9XZWlyZG5lc3MgPVxuICAgICAgKHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSBudWxsIHx8IHRoaXMubnVtYmVyaW5nU3lzdGVtID09PSBcImxhdG5cIikgJiZcbiAgICAgICh0aGlzLm91dHB1dENhbGVuZGFyID09PSBudWxsIHx8IHRoaXMub3V0cHV0Q2FsZW5kYXIgPT09IFwiZ3JlZ29yeVwiKTtcbiAgICByZXR1cm4gaXNBY3R1YWxseUVuICYmIGhhc05vV2VpcmRuZXNzID8gXCJlblwiIDogXCJpbnRsXCI7XG4gIH1cblxuICBjbG9uZShhbHRzKSB7XG4gICAgaWYgKCFhbHRzIHx8IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGFsdHMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBMb2NhbGUuY3JlYXRlKFxuICAgICAgICBhbHRzLmxvY2FsZSB8fCB0aGlzLnNwZWNpZmllZExvY2FsZSxcbiAgICAgICAgYWx0cy5udW1iZXJpbmdTeXN0ZW0gfHwgdGhpcy5udW1iZXJpbmdTeXN0ZW0sXG4gICAgICAgIGFsdHMub3V0cHV0Q2FsZW5kYXIgfHwgdGhpcy5vdXRwdXRDYWxlbmRhcixcbiAgICAgICAgYWx0cy5kZWZhdWx0VG9FTiB8fCBmYWxzZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZWRlZmF1bHRUb0VOKGFsdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmNsb25lKHsgLi4uYWx0cywgZGVmYXVsdFRvRU46IHRydWUgfSk7XG4gIH1cblxuICByZWRlZmF1bHRUb1N5c3RlbShhbHRzID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSh7IC4uLmFsdHMsIGRlZmF1bHRUb0VOOiBmYWxzZSB9KTtcbiAgfVxuXG4gIG1vbnRocyhsZW5ndGgsIGZvcm1hdCA9IGZhbHNlLCBkZWZhdWx0T0sgPSB0cnVlKSB7XG4gICAgcmV0dXJuIGxpc3RTdHVmZih0aGlzLCBsZW5ndGgsIGRlZmF1bHRPSywgRW5nbGlzaC5tb250aHMsICgpID0+IHtcbiAgICAgIGNvbnN0IGludGwgPSBmb3JtYXQgPyB7IG1vbnRoOiBsZW5ndGgsIGRheTogXCJudW1lcmljXCIgfSA6IHsgbW9udGg6IGxlbmd0aCB9LFxuICAgICAgICBmb3JtYXRTdHIgPSBmb3JtYXQgPyBcImZvcm1hdFwiIDogXCJzdGFuZGFsb25lXCI7XG4gICAgICBpZiAoIXRoaXMubW9udGhzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdKSB7XG4gICAgICAgIHRoaXMubW9udGhzQ2FjaGVbZm9ybWF0U3RyXVtsZW5ndGhdID0gbWFwTW9udGhzKChkdCkgPT4gdGhpcy5leHRyYWN0KGR0LCBpbnRsLCBcIm1vbnRoXCIpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLm1vbnRoc0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXTtcbiAgICB9KTtcbiAgfVxuXG4gIHdlZWtkYXlzKGxlbmd0aCwgZm9ybWF0ID0gZmFsc2UsIGRlZmF1bHRPSyA9IHRydWUpIHtcbiAgICByZXR1cm4gbGlzdFN0dWZmKHRoaXMsIGxlbmd0aCwgZGVmYXVsdE9LLCBFbmdsaXNoLndlZWtkYXlzLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbnRsID0gZm9ybWF0XG4gICAgICAgICAgPyB7IHdlZWtkYXk6IGxlbmd0aCwgeWVhcjogXCJudW1lcmljXCIsIG1vbnRoOiBcImxvbmdcIiwgZGF5OiBcIm51bWVyaWNcIiB9XG4gICAgICAgICAgOiB7IHdlZWtkYXk6IGxlbmd0aCB9LFxuICAgICAgICBmb3JtYXRTdHIgPSBmb3JtYXQgPyBcImZvcm1hdFwiIDogXCJzdGFuZGFsb25lXCI7XG4gICAgICBpZiAoIXRoaXMud2Vla2RheXNDYWNoZVtmb3JtYXRTdHJdW2xlbmd0aF0pIHtcbiAgICAgICAgdGhpcy53ZWVrZGF5c0NhY2hlW2Zvcm1hdFN0cl1bbGVuZ3RoXSA9IG1hcFdlZWtkYXlzKChkdCkgPT5cbiAgICAgICAgICB0aGlzLmV4dHJhY3QoZHQsIGludGwsIFwid2Vla2RheVwiKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMud2Vla2RheXNDYWNoZVtmb3JtYXRTdHJdW2xlbmd0aF07XG4gICAgfSk7XG4gIH1cblxuICBtZXJpZGllbXMoZGVmYXVsdE9LID0gdHJ1ZSkge1xuICAgIHJldHVybiBsaXN0U3R1ZmYoXG4gICAgICB0aGlzLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgZGVmYXVsdE9LLFxuICAgICAgKCkgPT4gRW5nbGlzaC5tZXJpZGllbXMsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIEluIHRoZW9yeSB0aGVyZSBjb3VsZCBiZSBhcmliaXRyYXJ5IGRheSBwZXJpb2RzLiBXZSdyZSBnb25uYSBhc3N1bWUgdGhlcmUgYXJlIGV4YWN0bHkgdHdvXG4gICAgICAgIC8vIGZvciBBTSBhbmQgUE0uIFRoaXMgaXMgcHJvYmFibHkgd3JvbmcsIGJ1dCBpdCdzIG1ha2VzIHBhcnNpbmcgd2F5IGVhc2llci5cbiAgICAgICAgaWYgKCF0aGlzLm1lcmlkaWVtQ2FjaGUpIHtcbiAgICAgICAgICBjb25zdCBpbnRsID0geyBob3VyOiBcIm51bWVyaWNcIiwgaG91ckN5Y2xlOiBcImgxMlwiIH07XG4gICAgICAgICAgdGhpcy5tZXJpZGllbUNhY2hlID0gW0RhdGVUaW1lLnV0YygyMDE2LCAxMSwgMTMsIDkpLCBEYXRlVGltZS51dGMoMjAxNiwgMTEsIDEzLCAxOSldLm1hcChcbiAgICAgICAgICAgIChkdCkgPT4gdGhpcy5leHRyYWN0KGR0LCBpbnRsLCBcImRheXBlcmlvZFwiKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5tZXJpZGllbUNhY2hlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBlcmFzKGxlbmd0aCwgZGVmYXVsdE9LID0gdHJ1ZSkge1xuICAgIHJldHVybiBsaXN0U3R1ZmYodGhpcywgbGVuZ3RoLCBkZWZhdWx0T0ssIEVuZ2xpc2guZXJhcywgKCkgPT4ge1xuICAgICAgY29uc3QgaW50bCA9IHsgZXJhOiBsZW5ndGggfTtcblxuICAgICAgLy8gVGhpcyBpcyBwcm9ibGVtYXRpYy4gRGlmZmVyZW50IGNhbGVuZGFycyBhcmUgZ29pbmcgdG8gZGVmaW5lIGVyYXMgdG90YWxseSBkaWZmZXJlbnRseS4gV2hhdCBJIG5lZWQgaXMgdGhlIG1pbmltdW0gc2V0IG9mIGRhdGVzXG4gICAgICAvLyB0byBkZWZpbml0ZWx5IGVudW1lcmF0ZSB0aGVtLlxuICAgICAgaWYgKCF0aGlzLmVyYUNhY2hlW2xlbmd0aF0pIHtcbiAgICAgICAgdGhpcy5lcmFDYWNoZVtsZW5ndGhdID0gW0RhdGVUaW1lLnV0YygtNDAsIDEsIDEpLCBEYXRlVGltZS51dGMoMjAxNywgMSwgMSldLm1hcCgoZHQpID0+XG4gICAgICAgICAgdGhpcy5leHRyYWN0KGR0LCBpbnRsLCBcImVyYVwiKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5lcmFDYWNoZVtsZW5ndGhdO1xuICAgIH0pO1xuICB9XG5cbiAgZXh0cmFjdChkdCwgaW50bE9wdHMsIGZpZWxkKSB7XG4gICAgY29uc3QgZGYgPSB0aGlzLmR0Rm9ybWF0dGVyKGR0LCBpbnRsT3B0cyksXG4gICAgICByZXN1bHRzID0gZGYuZm9ybWF0VG9QYXJ0cygpLFxuICAgICAgbWF0Y2hpbmcgPSByZXN1bHRzLmZpbmQoKG0pID0+IG0udHlwZS50b0xvd2VyQ2FzZSgpID09PSBmaWVsZCk7XG4gICAgcmV0dXJuIG1hdGNoaW5nID8gbWF0Y2hpbmcudmFsdWUgOiBudWxsO1xuICB9XG5cbiAgbnVtYmVyRm9ybWF0dGVyKG9wdHMgPSB7fSkge1xuICAgIC8vIHRoaXMgZm9yY2VzaW1wbGUgb3B0aW9uIGlzIG5ldmVyIHVzZWQgKHRoZSBvbmx5IGNhbGxlciBzaG9ydC1jaXJjdWl0cyBvbiBpdCwgYnV0IGl0IHNlZW1zIHNhZmVyIHRvIGxlYXZlKVxuICAgIC8vIChpbiBjb250cmFzdCwgdGhlIHJlc3Qgb2YgdGhlIGNvbmRpdGlvbiBpcyB1c2VkIGhlYXZpbHkpXG4gICAgcmV0dXJuIG5ldyBQb2x5TnVtYmVyRm9ybWF0dGVyKHRoaXMuaW50bCwgb3B0cy5mb3JjZVNpbXBsZSB8fCB0aGlzLmZhc3ROdW1iZXJzLCBvcHRzKTtcbiAgfVxuXG4gIGR0Rm9ybWF0dGVyKGR0LCBpbnRsT3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIG5ldyBQb2x5RGF0ZUZvcm1hdHRlcihkdCwgdGhpcy5pbnRsLCBpbnRsT3B0cyk7XG4gIH1cblxuICByZWxGb3JtYXR0ZXIob3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIG5ldyBQb2x5UmVsRm9ybWF0dGVyKHRoaXMuaW50bCwgdGhpcy5pc0VuZ2xpc2goKSwgb3B0cyk7XG4gIH1cblxuICBsaXN0Rm9ybWF0dGVyKG9wdHMgPSB7fSkge1xuICAgIHJldHVybiBnZXRDYWNoZWRMRih0aGlzLmludGwsIG9wdHMpO1xuICB9XG5cbiAgaXNFbmdsaXNoKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmxvY2FsZSA9PT0gXCJlblwiIHx8XG4gICAgICB0aGlzLmxvY2FsZS50b0xvd2VyQ2FzZSgpID09PSBcImVuLXVzXCIgfHxcbiAgICAgIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMuaW50bCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlLnN0YXJ0c1dpdGgoXCJlbi11c1wiKVxuICAgICk7XG4gIH1cblxuICBlcXVhbHMob3RoZXIpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5sb2NhbGUgPT09IG90aGVyLmxvY2FsZSAmJlxuICAgICAgdGhpcy5udW1iZXJpbmdTeXN0ZW0gPT09IG90aGVyLm51bWJlcmluZ1N5c3RlbSAmJlxuICAgICAgdGhpcy5vdXRwdXRDYWxlbmRhciA9PT0gb3RoZXIub3V0cHV0Q2FsZW5kYXJcbiAgICApO1xuICB9XG59XG4iLCAiaW1wb3J0IHtcbiAgdW50cnVuY2F0ZVllYXIsXG4gIHNpZ25lZE9mZnNldCxcbiAgcGFyc2VJbnRlZ2VyLFxuICBwYXJzZU1pbGxpcyxcbiAgaWFuYVJlZ2V4LFxuICBpc1VuZGVmaW5lZCxcbiAgcGFyc2VGbG9hdGluZyxcbn0gZnJvbSBcIi4vdXRpbC5qc1wiO1xuaW1wb3J0ICogYXMgRW5nbGlzaCBmcm9tIFwiLi9lbmdsaXNoLmpzXCI7XG5pbXBvcnQgRml4ZWRPZmZzZXRab25lIGZyb20gXCIuLi96b25lcy9maXhlZE9mZnNldFpvbmUuanNcIjtcbmltcG9ydCBJQU5BWm9uZSBmcm9tIFwiLi4vem9uZXMvSUFOQVpvbmUuanNcIjtcblxuLypcbiAqIFRoaXMgZmlsZSBoYW5kbGVzIHBhcnNpbmcgZm9yIHdlbGwtc3BlY2lmaWVkIGZvcm1hdHMuIEhlcmUncyBob3cgaXQgd29ya3M6XG4gKiBUd28gdGhpbmdzIGdvIGludG8gcGFyc2luZzogYSByZWdleCB0byBtYXRjaCB3aXRoIGFuZCBhbiBleHRyYWN0b3IgdG8gdGFrZSBhcGFydCB0aGUgZ3JvdXBzIGluIHRoZSBtYXRjaC5cbiAqIEFuIGV4dHJhY3RvciBpcyBqdXN0IGEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIHJlZ2V4IG1hdGNoIGFycmF5IGFuZCByZXR1cm5zIGEgeyB5ZWFyOiAuLi4sIG1vbnRoOiAuLi4gfSBvYmplY3RcbiAqIHBhcnNlKCkgZG9lcyB0aGUgd29yayBvZiBleGVjdXRpbmcgdGhlIHJlZ2V4IGFuZCBhcHBseWluZyB0aGUgZXh0cmFjdG9yLiBJdCB0YWtlcyBtdWx0aXBsZSByZWdleC9leHRyYWN0b3IgcGFpcnMgdG8gdHJ5IGluIHNlcXVlbmNlLlxuICogRXh0cmFjdG9ycyBjYW4gdGFrZSBhIFwiY3Vyc29yXCIgcmVwcmVzZW50aW5nIHRoZSBvZmZzZXQgaW4gdGhlIG1hdGNoIHRvIGxvb2sgYXQuIFRoaXMgbWFrZXMgaXQgZWFzeSB0byBjb21iaW5lIGV4dHJhY3RvcnMuXG4gKiBjb21iaW5lRXh0cmFjdG9ycygpIGRvZXMgdGhlIHdvcmsgb2YgY29tYmluaW5nIHRoZW0sIGtlZXBpbmcgdHJhY2sgb2YgdGhlIGN1cnNvciB0aHJvdWdoIG11bHRpcGxlIGV4dHJhY3Rpb25zLlxuICogU29tZSBleHRyYWN0aW9ucyBhcmUgc3VwZXIgZHVtYiBhbmQgc2ltcGxlUGFyc2UgYW5kIGZyb21TdHJpbmdzIGhlbHAgRFJZIHRoZW0uXG4gKi9cblxuZnVuY3Rpb24gY29tYmluZVJlZ2V4ZXMoLi4ucmVnZXhlcykge1xuICBjb25zdCBmdWxsID0gcmVnZXhlcy5yZWR1Y2UoKGYsIHIpID0+IGYgKyByLnNvdXJjZSwgXCJcIik7XG4gIHJldHVybiBSZWdFeHAoYF4ke2Z1bGx9JGApO1xufVxuXG5mdW5jdGlvbiBjb21iaW5lRXh0cmFjdG9ycyguLi5leHRyYWN0b3JzKSB7XG4gIHJldHVybiAobSkgPT5cbiAgICBleHRyYWN0b3JzXG4gICAgICAucmVkdWNlKFxuICAgICAgICAoW21lcmdlZFZhbHMsIG1lcmdlZFpvbmUsIGN1cnNvcl0sIGV4KSA9PiB7XG4gICAgICAgICAgY29uc3QgW3ZhbCwgem9uZSwgbmV4dF0gPSBleChtLCBjdXJzb3IpO1xuICAgICAgICAgIHJldHVybiBbeyAuLi5tZXJnZWRWYWxzLCAuLi52YWwgfSwgbWVyZ2VkWm9uZSB8fCB6b25lLCBuZXh0XTtcbiAgICAgICAgfSxcbiAgICAgICAgW3t9LCBudWxsLCAxXVxuICAgICAgKVxuICAgICAgLnNsaWNlKDAsIDIpO1xufVxuXG5mdW5jdGlvbiBwYXJzZShzLCAuLi5wYXR0ZXJucykge1xuICBpZiAocyA9PSBudWxsKSB7XG4gICAgcmV0dXJuIFtudWxsLCBudWxsXTtcbiAgfVxuXG4gIGZvciAoY29uc3QgW3JlZ2V4LCBleHRyYWN0b3JdIG9mIHBhdHRlcm5zKSB7XG4gICAgY29uc3QgbSA9IHJlZ2V4LmV4ZWMocyk7XG4gICAgaWYgKG0pIHtcbiAgICAgIHJldHVybiBleHRyYWN0b3IobSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBbbnVsbCwgbnVsbF07XG59XG5cbmZ1bmN0aW9uIHNpbXBsZVBhcnNlKC4uLmtleXMpIHtcbiAgcmV0dXJuIChtYXRjaCwgY3Vyc29yKSA9PiB7XG4gICAgY29uc3QgcmV0ID0ge307XG4gICAgbGV0IGk7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgcmV0W2tleXNbaV1dID0gcGFyc2VJbnRlZ2VyKG1hdGNoW2N1cnNvciArIGldKTtcbiAgICB9XG4gICAgcmV0dXJuIFtyZXQsIG51bGwsIGN1cnNvciArIGldO1xuICB9O1xufVxuXG4vLyBJU08gYW5kIFNRTCBwYXJzaW5nXG5jb25zdCBvZmZzZXRSZWdleCA9IC8oPzooWil8KFsrLV1cXGRcXGQpKD86Oj8oXFxkXFxkKSk/KS8sXG4gIGlzb1RpbWVCYXNlUmVnZXggPSAvKFxcZFxcZCkoPzo6PyhcXGRcXGQpKD86Oj8oXFxkXFxkKSg/OlsuLF0oXFxkezEsMzB9KSk/KT8pPy8sXG4gIGlzb1RpbWVSZWdleCA9IFJlZ0V4cChgJHtpc29UaW1lQmFzZVJlZ2V4LnNvdXJjZX0ke29mZnNldFJlZ2V4LnNvdXJjZX0/YCksXG4gIGlzb1RpbWVFeHRlbnNpb25SZWdleCA9IFJlZ0V4cChgKD86VCR7aXNvVGltZVJlZ2V4LnNvdXJjZX0pP2ApLFxuICBpc29ZbWRSZWdleCA9IC8oWystXVxcZHs2fXxcXGR7NH0pKD86LT8oXFxkXFxkKSg/Oi0/KFxcZFxcZCkpPyk/LyxcbiAgaXNvV2Vla1JlZ2V4ID0gLyhcXGR7NH0pLT9XKFxcZFxcZCkoPzotPyhcXGQpKT8vLFxuICBpc29PcmRpbmFsUmVnZXggPSAvKFxcZHs0fSktPyhcXGR7M30pLyxcbiAgZXh0cmFjdElTT1dlZWtEYXRhID0gc2ltcGxlUGFyc2UoXCJ3ZWVrWWVhclwiLCBcIndlZWtOdW1iZXJcIiwgXCJ3ZWVrRGF5XCIpLFxuICBleHRyYWN0SVNPT3JkaW5hbERhdGEgPSBzaW1wbGVQYXJzZShcInllYXJcIiwgXCJvcmRpbmFsXCIpLFxuICBzcWxZbWRSZWdleCA9IC8oXFxkezR9KS0oXFxkXFxkKS0oXFxkXFxkKS8sIC8vIGR1bWJlZC1kb3duIHZlcnNpb24gb2YgdGhlIElTTyBvbmVcbiAgc3FsVGltZVJlZ2V4ID0gUmVnRXhwKFxuICAgIGAke2lzb1RpbWVCYXNlUmVnZXguc291cmNlfSA/KD86JHtvZmZzZXRSZWdleC5zb3VyY2V9fCgke2lhbmFSZWdleC5zb3VyY2V9KSk/YFxuICApLFxuICBzcWxUaW1lRXh0ZW5zaW9uUmVnZXggPSBSZWdFeHAoYCg/OiAke3NxbFRpbWVSZWdleC5zb3VyY2V9KT9gKTtcblxuZnVuY3Rpb24gaW50KG1hdGNoLCBwb3MsIGZhbGxiYWNrKSB7XG4gIGNvbnN0IG0gPSBtYXRjaFtwb3NdO1xuICByZXR1cm4gaXNVbmRlZmluZWQobSkgPyBmYWxsYmFjayA6IHBhcnNlSW50ZWdlcihtKTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdElTT1ltZChtYXRjaCwgY3Vyc29yKSB7XG4gIGNvbnN0IGl0ZW0gPSB7XG4gICAgeWVhcjogaW50KG1hdGNoLCBjdXJzb3IpLFxuICAgIG1vbnRoOiBpbnQobWF0Y2gsIGN1cnNvciArIDEsIDEpLFxuICAgIGRheTogaW50KG1hdGNoLCBjdXJzb3IgKyAyLCAxKSxcbiAgfTtcblxuICByZXR1cm4gW2l0ZW0sIG51bGwsIGN1cnNvciArIDNdO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0SVNPVGltZShtYXRjaCwgY3Vyc29yKSB7XG4gIGNvbnN0IGl0ZW0gPSB7XG4gICAgaG91cnM6IGludChtYXRjaCwgY3Vyc29yLCAwKSxcbiAgICBtaW51dGVzOiBpbnQobWF0Y2gsIGN1cnNvciArIDEsIDApLFxuICAgIHNlY29uZHM6IGludChtYXRjaCwgY3Vyc29yICsgMiwgMCksXG4gICAgbWlsbGlzZWNvbmRzOiBwYXJzZU1pbGxpcyhtYXRjaFtjdXJzb3IgKyAzXSksXG4gIH07XG5cbiAgcmV0dXJuIFtpdGVtLCBudWxsLCBjdXJzb3IgKyA0XTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdElTT09mZnNldChtYXRjaCwgY3Vyc29yKSB7XG4gIGNvbnN0IGxvY2FsID0gIW1hdGNoW2N1cnNvcl0gJiYgIW1hdGNoW2N1cnNvciArIDFdLFxuICAgIGZ1bGxPZmZzZXQgPSBzaWduZWRPZmZzZXQobWF0Y2hbY3Vyc29yICsgMV0sIG1hdGNoW2N1cnNvciArIDJdKSxcbiAgICB6b25lID0gbG9jYWwgPyBudWxsIDogRml4ZWRPZmZzZXRab25lLmluc3RhbmNlKGZ1bGxPZmZzZXQpO1xuICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAzXTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdElBTkFab25lKG1hdGNoLCBjdXJzb3IpIHtcbiAgY29uc3Qgem9uZSA9IG1hdGNoW2N1cnNvcl0gPyBJQU5BWm9uZS5jcmVhdGUobWF0Y2hbY3Vyc29yXSkgOiBudWxsO1xuICByZXR1cm4gW3t9LCB6b25lLCBjdXJzb3IgKyAxXTtcbn1cblxuLy8gSVNPIHRpbWUgcGFyc2luZ1xuXG5jb25zdCBpc29UaW1lT25seSA9IFJlZ0V4cChgXlQ/JHtpc29UaW1lQmFzZVJlZ2V4LnNvdXJjZX0kYCk7XG5cbi8vIElTTyBkdXJhdGlvbiBwYXJzaW5nXG5cbmNvbnN0IGlzb0R1cmF0aW9uID1cbiAgL14tP1AoPzooPzooLT9cXGR7MSw5fSg/OlxcLlxcZHsxLDl9KT8pWSk/KD86KC0/XFxkezEsOX0oPzpcXC5cXGR7MSw5fSk/KU0pPyg/OigtP1xcZHsxLDl9KD86XFwuXFxkezEsOX0pPylXKT8oPzooLT9cXGR7MSw5fSg/OlxcLlxcZHsxLDl9KT8pRCk/KD86VCg/OigtP1xcZHsxLDl9KD86XFwuXFxkezEsOX0pPylIKT8oPzooLT9cXGR7MSw5fSg/OlxcLlxcZHsxLDl9KT8pTSk/KD86KC0/XFxkezEsMjB9KSg/OlsuLF0oLT9cXGR7MSw5fSkpP1MpPyk/KSQvO1xuXG5mdW5jdGlvbiBleHRyYWN0SVNPRHVyYXRpb24obWF0Y2gpIHtcbiAgY29uc3QgW3MsIHllYXJTdHIsIG1vbnRoU3RyLCB3ZWVrU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyLCBtaWxsaXNlY29uZHNTdHJdID1cbiAgICBtYXRjaDtcblxuICBjb25zdCBoYXNOZWdhdGl2ZVByZWZpeCA9IHNbMF0gPT09IFwiLVwiO1xuICBjb25zdCBuZWdhdGl2ZVNlY29uZHMgPSBzZWNvbmRTdHIgJiYgc2Vjb25kU3RyWzBdID09PSBcIi1cIjtcblxuICBjb25zdCBtYXliZU5lZ2F0ZSA9IChudW0sIGZvcmNlID0gZmFsc2UpID0+XG4gICAgbnVtICE9PSB1bmRlZmluZWQgJiYgKGZvcmNlIHx8IChudW0gJiYgaGFzTmVnYXRpdmVQcmVmaXgpKSA/IC1udW0gOiBudW07XG5cbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICB5ZWFyczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyh5ZWFyU3RyKSksXG4gICAgICBtb250aHM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcobW9udGhTdHIpKSxcbiAgICAgIHdlZWtzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKHdlZWtTdHIpKSxcbiAgICAgIGRheXM6IG1heWJlTmVnYXRlKHBhcnNlRmxvYXRpbmcoZGF5U3RyKSksXG4gICAgICBob3VyczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyhob3VyU3RyKSksXG4gICAgICBtaW51dGVzOiBtYXliZU5lZ2F0ZShwYXJzZUZsb2F0aW5nKG1pbnV0ZVN0cikpLFxuICAgICAgc2Vjb25kczogbWF5YmVOZWdhdGUocGFyc2VGbG9hdGluZyhzZWNvbmRTdHIpLCBzZWNvbmRTdHIgPT09IFwiLTBcIiksXG4gICAgICBtaWxsaXNlY29uZHM6IG1heWJlTmVnYXRlKHBhcnNlTWlsbGlzKG1pbGxpc2Vjb25kc1N0ciksIG5lZ2F0aXZlU2Vjb25kcyksXG4gICAgfSxcbiAgXTtcbn1cblxuLy8gVGhlc2UgYXJlIGEgbGl0dGxlIGJyYWluZGVhZC4gRURUICpzaG91bGQqIHRlbGwgdXMgdGhhdCB3ZSdyZSBpbiwgc2F5LCBBbWVyaWNhL05ld19Zb3JrXG4vLyBhbmQgbm90IGp1c3QgdGhhdCB3ZSdyZSBpbiAtMjQwICpyaWdodCBub3cqLiBCdXQgc2luY2UgSSBkb24ndCB0aGluayB0aGVzZSBhcmUgdXNlZCB0aGF0IG9mdGVuXG4vLyBJJ20ganVzdCBnb2luZyB0byBpZ25vcmUgdGhhdFxuY29uc3Qgb2JzT2Zmc2V0cyA9IHtcbiAgR01UOiAwLFxuICBFRFQ6IC00ICogNjAsXG4gIEVTVDogLTUgKiA2MCxcbiAgQ0RUOiAtNSAqIDYwLFxuICBDU1Q6IC02ICogNjAsXG4gIE1EVDogLTYgKiA2MCxcbiAgTVNUOiAtNyAqIDYwLFxuICBQRFQ6IC03ICogNjAsXG4gIFBTVDogLTggKiA2MCxcbn07XG5cbmZ1bmN0aW9uIGZyb21TdHJpbmdzKHdlZWtkYXlTdHIsIHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKSB7XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICB5ZWFyOiB5ZWFyU3RyLmxlbmd0aCA9PT0gMiA/IHVudHJ1bmNhdGVZZWFyKHBhcnNlSW50ZWdlcih5ZWFyU3RyKSkgOiBwYXJzZUludGVnZXIoeWVhclN0ciksXG4gICAgbW9udGg6IEVuZ2xpc2gubW9udGhzU2hvcnQuaW5kZXhPZihtb250aFN0cikgKyAxLFxuICAgIGRheTogcGFyc2VJbnRlZ2VyKGRheVN0ciksXG4gICAgaG91cjogcGFyc2VJbnRlZ2VyKGhvdXJTdHIpLFxuICAgIG1pbnV0ZTogcGFyc2VJbnRlZ2VyKG1pbnV0ZVN0ciksXG4gIH07XG5cbiAgaWYgKHNlY29uZFN0cikgcmVzdWx0LnNlY29uZCA9IHBhcnNlSW50ZWdlcihzZWNvbmRTdHIpO1xuICBpZiAod2Vla2RheVN0cikge1xuICAgIHJlc3VsdC53ZWVrZGF5ID1cbiAgICAgIHdlZWtkYXlTdHIubGVuZ3RoID4gM1xuICAgICAgICA/IEVuZ2xpc2gud2Vla2RheXNMb25nLmluZGV4T2Yod2Vla2RheVN0cikgKyAxXG4gICAgICAgIDogRW5nbGlzaC53ZWVrZGF5c1Nob3J0LmluZGV4T2Yod2Vla2RheVN0cikgKyAxO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gUkZDIDI4MjIvNTMyMlxuY29uc3QgcmZjMjgyMiA9XG4gIC9eKD86KE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1biksXFxzKT8oXFxkezEsMn0pXFxzKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKVxccyhcXGR7Miw0fSlcXHMoXFxkXFxkKTooXFxkXFxkKSg/OjooXFxkXFxkKSk/XFxzKD86KFVUfEdNVHxbRUNNUF1bU0RdVCl8KFtael0pfCg/OihbKy1dXFxkXFxkKShcXGRcXGQpKSkkLztcblxuZnVuY3Rpb24gZXh0cmFjdFJGQzI4MjIobWF0Y2gpIHtcbiAgY29uc3QgW1xuICAgICAgLFxuICAgICAgd2Vla2RheVN0cixcbiAgICAgIGRheVN0cixcbiAgICAgIG1vbnRoU3RyLFxuICAgICAgeWVhclN0cixcbiAgICAgIGhvdXJTdHIsXG4gICAgICBtaW51dGVTdHIsXG4gICAgICBzZWNvbmRTdHIsXG4gICAgICBvYnNPZmZzZXQsXG4gICAgICBtaWxPZmZzZXQsXG4gICAgICBvZmZIb3VyU3RyLFxuICAgICAgb2ZmTWludXRlU3RyLFxuICAgIF0gPSBtYXRjaCxcbiAgICByZXN1bHQgPSBmcm9tU3RyaW5ncyh3ZWVrZGF5U3RyLCB5ZWFyU3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0cik7XG5cbiAgbGV0IG9mZnNldDtcbiAgaWYgKG9ic09mZnNldCkge1xuICAgIG9mZnNldCA9IG9ic09mZnNldHNbb2JzT2Zmc2V0XTtcbiAgfSBlbHNlIGlmIChtaWxPZmZzZXQpIHtcbiAgICBvZmZzZXQgPSAwO1xuICB9IGVsc2Uge1xuICAgIG9mZnNldCA9IHNpZ25lZE9mZnNldChvZmZIb3VyU3RyLCBvZmZNaW51dGVTdHIpO1xuICB9XG5cbiAgcmV0dXJuIFtyZXN1bHQsIG5ldyBGaXhlZE9mZnNldFpvbmUob2Zmc2V0KV07XG59XG5cbmZ1bmN0aW9uIHByZXByb2Nlc3NSRkMyODIyKHMpIHtcbiAgLy8gUmVtb3ZlIGNvbW1lbnRzIGFuZCBmb2xkaW5nIHdoaXRlc3BhY2UgYW5kIHJlcGxhY2UgbXVsdGlwbGUtc3BhY2VzIHdpdGggYSBzaW5nbGUgc3BhY2VcbiAgcmV0dXJuIHNcbiAgICAucmVwbGFjZSgvXFwoW14pXSpcXCl8W1xcblxcdF0vZywgXCIgXCIpXG4gICAgLnJlcGxhY2UoLyhcXHNcXHMrKS9nLCBcIiBcIilcbiAgICAudHJpbSgpO1xufVxuXG4vLyBodHRwIGRhdGVcblxuY29uc3QgcmZjMTEyMyA9XG4gICAgL14oTW9ufFR1ZXxXZWR8VGh1fEZyaXxTYXR8U3VuKSwgKFxcZFxcZCkgKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKSAoXFxkezR9KSAoXFxkXFxkKTooXFxkXFxkKTooXFxkXFxkKSBHTVQkLyxcbiAgcmZjODUwID1cbiAgICAvXihNb25kYXl8VHVlc2RheXxXZWRzZGF5fFRodXJzZGF5fEZyaWRheXxTYXR1cmRheXxTdW5kYXkpLCAoXFxkXFxkKS0oSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpLShcXGRcXGQpIChcXGRcXGQpOihcXGRcXGQpOihcXGRcXGQpIEdNVCQvLFxuICBhc2NpaSA9XG4gICAgL14oTW9ufFR1ZXxXZWR8VGh1fEZyaXxTYXR8U3VuKSAoSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpICggXFxkfFxcZFxcZCkgKFxcZFxcZCk6KFxcZFxcZCk6KFxcZFxcZCkgKFxcZHs0fSkkLztcblxuZnVuY3Rpb24gZXh0cmFjdFJGQzExMjNPcjg1MChtYXRjaCkge1xuICBjb25zdCBbLCB3ZWVrZGF5U3RyLCBkYXlTdHIsIG1vbnRoU3RyLCB5ZWFyU3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0cl0gPSBtYXRjaCxcbiAgICByZXN1bHQgPSBmcm9tU3RyaW5ncyh3ZWVrZGF5U3RyLCB5ZWFyU3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0cik7XG4gIHJldHVybiBbcmVzdWx0LCBGaXhlZE9mZnNldFpvbmUudXRjSW5zdGFuY2VdO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0QVNDSUkobWF0Y2gpIHtcbiAgY29uc3QgWywgd2Vla2RheVN0ciwgbW9udGhTdHIsIGRheVN0ciwgaG91clN0ciwgbWludXRlU3RyLCBzZWNvbmRTdHIsIHllYXJTdHJdID0gbWF0Y2gsXG4gICAgcmVzdWx0ID0gZnJvbVN0cmluZ3Mod2Vla2RheVN0ciwgeWVhclN0ciwgbW9udGhTdHIsIGRheVN0ciwgaG91clN0ciwgbWludXRlU3RyLCBzZWNvbmRTdHIpO1xuICByZXR1cm4gW3Jlc3VsdCwgRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlXTtcbn1cblxuY29uc3QgaXNvWW1kV2l0aFRpbWVFeHRlbnNpb25SZWdleCA9IGNvbWJpbmVSZWdleGVzKGlzb1ltZFJlZ2V4LCBpc29UaW1lRXh0ZW5zaW9uUmVnZXgpO1xuY29uc3QgaXNvV2Vla1dpdGhUaW1lRXh0ZW5zaW9uUmVnZXggPSBjb21iaW5lUmVnZXhlcyhpc29XZWVrUmVnZXgsIGlzb1RpbWVFeHRlbnNpb25SZWdleCk7XG5jb25zdCBpc29PcmRpbmFsV2l0aFRpbWVFeHRlbnNpb25SZWdleCA9IGNvbWJpbmVSZWdleGVzKGlzb09yZGluYWxSZWdleCwgaXNvVGltZUV4dGVuc2lvblJlZ2V4KTtcbmNvbnN0IGlzb1RpbWVDb21iaW5lZFJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoaXNvVGltZVJlZ2V4KTtcblxuY29uc3QgZXh0cmFjdElTT1ltZFRpbWVBbmRPZmZzZXQgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT1ltZCxcbiAgZXh0cmFjdElTT1RpbWUsXG4gIGV4dHJhY3RJU09PZmZzZXRcbik7XG5jb25zdCBleHRyYWN0SVNPV2Vla1RpbWVBbmRPZmZzZXQgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT1dlZWtEYXRhLFxuICBleHRyYWN0SVNPVGltZSxcbiAgZXh0cmFjdElTT09mZnNldFxuKTtcbmNvbnN0IGV4dHJhY3RJU09PcmRpbmFsRGF0ZUFuZFRpbWUgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT09yZGluYWxEYXRhLFxuICBleHRyYWN0SVNPVGltZSxcbiAgZXh0cmFjdElTT09mZnNldFxuKTtcbmNvbnN0IGV4dHJhY3RJU09UaW1lQW5kT2Zmc2V0ID0gY29tYmluZUV4dHJhY3RvcnMoZXh0cmFjdElTT1RpbWUsIGV4dHJhY3RJU09PZmZzZXQpO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSVNPRGF0ZShzKSB7XG4gIHJldHVybiBwYXJzZShcbiAgICBzLFxuICAgIFtpc29ZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4LCBleHRyYWN0SVNPWW1kVGltZUFuZE9mZnNldF0sXG4gICAgW2lzb1dlZWtXaXRoVGltZUV4dGVuc2lvblJlZ2V4LCBleHRyYWN0SVNPV2Vla1RpbWVBbmRPZmZzZXRdLFxuICAgIFtpc29PcmRpbmFsV2l0aFRpbWVFeHRlbnNpb25SZWdleCwgZXh0cmFjdElTT09yZGluYWxEYXRlQW5kVGltZV0sXG4gICAgW2lzb1RpbWVDb21iaW5lZFJlZ2V4LCBleHRyYWN0SVNPVGltZUFuZE9mZnNldF1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUkZDMjgyMkRhdGUocykge1xuICByZXR1cm4gcGFyc2UocHJlcHJvY2Vzc1JGQzI4MjIocyksIFtyZmMyODIyLCBleHRyYWN0UkZDMjgyMl0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VIVFRQRGF0ZShzKSB7XG4gIHJldHVybiBwYXJzZShcbiAgICBzLFxuICAgIFtyZmMxMTIzLCBleHRyYWN0UkZDMTEyM09yODUwXSxcbiAgICBbcmZjODUwLCBleHRyYWN0UkZDMTEyM09yODUwXSxcbiAgICBbYXNjaWksIGV4dHJhY3RBU0NJSV1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSVNPRHVyYXRpb24ocykge1xuICByZXR1cm4gcGFyc2UocywgW2lzb0R1cmF0aW9uLCBleHRyYWN0SVNPRHVyYXRpb25dKTtcbn1cblxuY29uc3QgZXh0cmFjdElTT1RpbWVPbmx5ID0gY29tYmluZUV4dHJhY3RvcnMoZXh0cmFjdElTT1RpbWUpO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJU09UaW1lT25seShzKSB7XG4gIHJldHVybiBwYXJzZShzLCBbaXNvVGltZU9ubHksIGV4dHJhY3RJU09UaW1lT25seV0pO1xufVxuXG5jb25zdCBzcWxZbWRXaXRoVGltZUV4dGVuc2lvblJlZ2V4ID0gY29tYmluZVJlZ2V4ZXMoc3FsWW1kUmVnZXgsIHNxbFRpbWVFeHRlbnNpb25SZWdleCk7XG5jb25zdCBzcWxUaW1lQ29tYmluZWRSZWdleCA9IGNvbWJpbmVSZWdleGVzKHNxbFRpbWVSZWdleCk7XG5cbmNvbnN0IGV4dHJhY3RJU09ZbWRUaW1lT2Zmc2V0QW5kSUFOQVpvbmUgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT1ltZCxcbiAgZXh0cmFjdElTT1RpbWUsXG4gIGV4dHJhY3RJU09PZmZzZXQsXG4gIGV4dHJhY3RJQU5BWm9uZVxuKTtcbmNvbnN0IGV4dHJhY3RJU09UaW1lT2Zmc2V0QW5kSUFOQVpvbmUgPSBjb21iaW5lRXh0cmFjdG9ycyhcbiAgZXh0cmFjdElTT1RpbWUsXG4gIGV4dHJhY3RJU09PZmZzZXQsXG4gIGV4dHJhY3RJQU5BWm9uZVxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU1FMKHMpIHtcbiAgcmV0dXJuIHBhcnNlKFxuICAgIHMsXG4gICAgW3NxbFltZFdpdGhUaW1lRXh0ZW5zaW9uUmVnZXgsIGV4dHJhY3RJU09ZbWRUaW1lT2Zmc2V0QW5kSUFOQVpvbmVdLFxuICAgIFtzcWxUaW1lQ29tYmluZWRSZWdleCwgZXh0cmFjdElTT1RpbWVPZmZzZXRBbmRJQU5BWm9uZV1cbiAgKTtcbn1cbiIsICJpbXBvcnQgeyBJbnZhbGlkQXJndW1lbnRFcnJvciwgSW52YWxpZER1cmF0aW9uRXJyb3IsIEludmFsaWRVbml0RXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMuanNcIjtcbmltcG9ydCBGb3JtYXR0ZXIgZnJvbSBcIi4vaW1wbC9mb3JtYXR0ZXIuanNcIjtcbmltcG9ydCBJbnZhbGlkIGZyb20gXCIuL2ltcGwvaW52YWxpZC5qc1wiO1xuaW1wb3J0IExvY2FsZSBmcm9tIFwiLi9pbXBsL2xvY2FsZS5qc1wiO1xuaW1wb3J0IHsgcGFyc2VJU09EdXJhdGlvbiwgcGFyc2VJU09UaW1lT25seSB9IGZyb20gXCIuL2ltcGwvcmVnZXhQYXJzZXIuanNcIjtcbmltcG9ydCB7XG4gIGFzTnVtYmVyLFxuICBoYXNPd25Qcm9wZXJ0eSxcbiAgaXNJbnRlZ2VyLFxuICBpc051bWJlcixcbiAgaXNVbmRlZmluZWQsXG4gIG5vcm1hbGl6ZU9iamVjdCxcbiAgcm91bmRUbyxcbn0gZnJvbSBcIi4vaW1wbC91dGlsLmpzXCI7XG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3MuanNcIjtcblxuY29uc3QgSU5WQUxJRCA9IFwiSW52YWxpZCBEdXJhdGlvblwiO1xuXG4vLyB1bml0IGNvbnZlcnNpb24gY29uc3RhbnRzXG5leHBvcnQgY29uc3QgbG93T3JkZXJNYXRyaXggPSB7XG4gICAgd2Vla3M6IHtcbiAgICAgIGRheXM6IDcsXG4gICAgICBob3VyczogNyAqIDI0LFxuICAgICAgbWludXRlczogNyAqIDI0ICogNjAsXG4gICAgICBzZWNvbmRzOiA3ICogMjQgKiA2MCAqIDYwLFxuICAgICAgbWlsbGlzZWNvbmRzOiA3ICogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgICB9LFxuICAgIGRheXM6IHtcbiAgICAgIGhvdXJzOiAyNCxcbiAgICAgIG1pbnV0ZXM6IDI0ICogNjAsXG4gICAgICBzZWNvbmRzOiAyNCAqIDYwICogNjAsXG4gICAgICBtaWxsaXNlY29uZHM6IDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gICAgfSxcbiAgICBob3VyczogeyBtaW51dGVzOiA2MCwgc2Vjb25kczogNjAgKiA2MCwgbWlsbGlzZWNvbmRzOiA2MCAqIDYwICogMTAwMCB9LFxuICAgIG1pbnV0ZXM6IHsgc2Vjb25kczogNjAsIG1pbGxpc2Vjb25kczogNjAgKiAxMDAwIH0sXG4gICAgc2Vjb25kczogeyBtaWxsaXNlY29uZHM6IDEwMDAgfSxcbiAgfSxcbiAgY2FzdWFsTWF0cml4ID0ge1xuICAgIHllYXJzOiB7XG4gICAgICBxdWFydGVyczogNCxcbiAgICAgIG1vbnRoczogMTIsXG4gICAgICB3ZWVrczogNTIsXG4gICAgICBkYXlzOiAzNjUsXG4gICAgICBob3VyczogMzY1ICogMjQsXG4gICAgICBtaW51dGVzOiAzNjUgKiAyNCAqIDYwLFxuICAgICAgc2Vjb25kczogMzY1ICogMjQgKiA2MCAqIDYwLFxuICAgICAgbWlsbGlzZWNvbmRzOiAzNjUgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgIH0sXG4gICAgcXVhcnRlcnM6IHtcbiAgICAgIG1vbnRoczogMyxcbiAgICAgIHdlZWtzOiAxMyxcbiAgICAgIGRheXM6IDkxLFxuICAgICAgaG91cnM6IDkxICogMjQsXG4gICAgICBtaW51dGVzOiA5MSAqIDI0ICogNjAsXG4gICAgICBzZWNvbmRzOiA5MSAqIDI0ICogNjAgKiA2MCxcbiAgICAgIG1pbGxpc2Vjb25kczogOTEgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgIH0sXG4gICAgbW9udGhzOiB7XG4gICAgICB3ZWVrczogNCxcbiAgICAgIGRheXM6IDMwLFxuICAgICAgaG91cnM6IDMwICogMjQsXG4gICAgICBtaW51dGVzOiAzMCAqIDI0ICogNjAsXG4gICAgICBzZWNvbmRzOiAzMCAqIDI0ICogNjAgKiA2MCxcbiAgICAgIG1pbGxpc2Vjb25kczogMzAgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgIH0sXG5cbiAgICAuLi5sb3dPcmRlck1hdHJpeCxcbiAgfSxcbiAgZGF5c0luWWVhckFjY3VyYXRlID0gMTQ2MDk3LjAgLyA0MDAsXG4gIGRheXNJbk1vbnRoQWNjdXJhdGUgPSAxNDYwOTcuMCAvIDQ4MDAsXG4gIGFjY3VyYXRlTWF0cml4ID0ge1xuICAgIHllYXJzOiB7XG4gICAgICBxdWFydGVyczogNCxcbiAgICAgIG1vbnRoczogMTIsXG4gICAgICB3ZWVrczogZGF5c0luWWVhckFjY3VyYXRlIC8gNyxcbiAgICAgIGRheXM6IGRheXNJblllYXJBY2N1cmF0ZSxcbiAgICAgIGhvdXJzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCxcbiAgICAgIG1pbnV0ZXM6IGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjAsXG4gICAgICBzZWNvbmRzOiBkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwICogNjAsXG4gICAgICBtaWxsaXNlY29uZHM6IGRheXNJblllYXJBY2N1cmF0ZSAqIDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gICAgfSxcbiAgICBxdWFydGVyczoge1xuICAgICAgbW9udGhzOiAzLFxuICAgICAgd2Vla3M6IGRheXNJblllYXJBY2N1cmF0ZSAvIDI4LFxuICAgICAgZGF5czogZGF5c0luWWVhckFjY3VyYXRlIC8gNCxcbiAgICAgIGhvdXJzOiAoZGF5c0luWWVhckFjY3VyYXRlICogMjQpIC8gNCxcbiAgICAgIG1pbnV0ZXM6IChkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwKSAvIDQsXG4gICAgICBzZWNvbmRzOiAoZGF5c0luWWVhckFjY3VyYXRlICogMjQgKiA2MCAqIDYwKSAvIDQsXG4gICAgICBtaWxsaXNlY29uZHM6IChkYXlzSW5ZZWFyQWNjdXJhdGUgKiAyNCAqIDYwICogNjAgKiAxMDAwKSAvIDQsXG4gICAgfSxcbiAgICBtb250aHM6IHtcbiAgICAgIHdlZWtzOiBkYXlzSW5Nb250aEFjY3VyYXRlIC8gNyxcbiAgICAgIGRheXM6IGRheXNJbk1vbnRoQWNjdXJhdGUsXG4gICAgICBob3VyczogZGF5c0luTW9udGhBY2N1cmF0ZSAqIDI0LFxuICAgICAgbWludXRlczogZGF5c0luTW9udGhBY2N1cmF0ZSAqIDI0ICogNjAsXG4gICAgICBzZWNvbmRzOiBkYXlzSW5Nb250aEFjY3VyYXRlICogMjQgKiA2MCAqIDYwLFxuICAgICAgbWlsbGlzZWNvbmRzOiBkYXlzSW5Nb250aEFjY3VyYXRlICogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgICB9LFxuICAgIC4uLmxvd09yZGVyTWF0cml4LFxuICB9O1xuXG4vLyB1bml0cyBvcmRlcmVkIGJ5IHNpemVcbmNvbnN0IG9yZGVyZWRVbml0cyA9IFtcbiAgXCJ5ZWFyc1wiLFxuICBcInF1YXJ0ZXJzXCIsXG4gIFwibW9udGhzXCIsXG4gIFwid2Vla3NcIixcbiAgXCJkYXlzXCIsXG4gIFwiaG91cnNcIixcbiAgXCJtaW51dGVzXCIsXG4gIFwic2Vjb25kc1wiLFxuICBcIm1pbGxpc2Vjb25kc1wiLFxuXTtcblxuY29uc3QgcmV2ZXJzZVVuaXRzID0gb3JkZXJlZFVuaXRzLnNsaWNlKDApLnJldmVyc2UoKTtcblxuLy8gY2xvbmUgcmVhbGx5IG1lYW5zIFwiY3JlYXRlIGFub3RoZXIgaW5zdGFuY2UganVzdCBsaWtlIHRoaXMgb25lLCBidXQgd2l0aCB0aGVzZSBjaGFuZ2VzXCJcbmZ1bmN0aW9uIGNsb25lKGR1ciwgYWx0cywgY2xlYXIgPSBmYWxzZSkge1xuICAvLyBkZWVwIG1lcmdlIGZvciB2YWxzXG4gIGNvbnN0IGNvbmYgPSB7XG4gICAgdmFsdWVzOiBjbGVhciA/IGFsdHMudmFsdWVzIDogeyAuLi5kdXIudmFsdWVzLCAuLi4oYWx0cy52YWx1ZXMgfHwge30pIH0sXG4gICAgbG9jOiBkdXIubG9jLmNsb25lKGFsdHMubG9jKSxcbiAgICBjb252ZXJzaW9uQWNjdXJhY3k6IGFsdHMuY29udmVyc2lvbkFjY3VyYWN5IHx8IGR1ci5jb252ZXJzaW9uQWNjdXJhY3ksXG4gIH07XG4gIHJldHVybiBuZXcgRHVyYXRpb24oY29uZik7XG59XG5cbmZ1bmN0aW9uIGFudGlUcnVuYyhuKSB7XG4gIHJldHVybiBuIDwgMCA/IE1hdGguZmxvb3IobikgOiBNYXRoLmNlaWwobik7XG59XG5cbi8vIE5COiBtdXRhdGVzIHBhcmFtZXRlcnNcbmZ1bmN0aW9uIGNvbnZlcnQobWF0cml4LCBmcm9tTWFwLCBmcm9tVW5pdCwgdG9NYXAsIHRvVW5pdCkge1xuICBjb25zdCBjb252ID0gbWF0cml4W3RvVW5pdF1bZnJvbVVuaXRdLFxuICAgIHJhdyA9IGZyb21NYXBbZnJvbVVuaXRdIC8gY29udixcbiAgICBzYW1lU2lnbiA9IE1hdGguc2lnbihyYXcpID09PSBNYXRoLnNpZ24odG9NYXBbdG9Vbml0XSksXG4gICAgLy8gb2ssIHNvIHRoaXMgaXMgd2lsZCwgYnV0IHNlZSB0aGUgbWF0cml4IGluIHRoZSB0ZXN0c1xuICAgIGFkZGVkID1cbiAgICAgICFzYW1lU2lnbiAmJiB0b01hcFt0b1VuaXRdICE9PSAwICYmIE1hdGguYWJzKHJhdykgPD0gMSA/IGFudGlUcnVuYyhyYXcpIDogTWF0aC50cnVuYyhyYXcpO1xuICB0b01hcFt0b1VuaXRdICs9IGFkZGVkO1xuICBmcm9tTWFwW2Zyb21Vbml0XSAtPSBhZGRlZCAqIGNvbnY7XG59XG5cbi8vIE5COiBtdXRhdGVzIHBhcmFtZXRlcnNcbmZ1bmN0aW9uIG5vcm1hbGl6ZVZhbHVlcyhtYXRyaXgsIHZhbHMpIHtcbiAgcmV2ZXJzZVVuaXRzLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHtcbiAgICBpZiAoIWlzVW5kZWZpbmVkKHZhbHNbY3VycmVudF0pKSB7XG4gICAgICBpZiAocHJldmlvdXMpIHtcbiAgICAgICAgY29udmVydChtYXRyaXgsIHZhbHMsIHByZXZpb3VzLCB2YWxzLCBjdXJyZW50KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjdXJyZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcHJldmlvdXM7XG4gICAgfVxuICB9LCBudWxsKTtcbn1cblxuLyoqXG4gKiBBIER1cmF0aW9uIG9iamVjdCByZXByZXNlbnRzIGEgcGVyaW9kIG9mIHRpbWUsIGxpa2UgXCIyIG1vbnRoc1wiIG9yIFwiMSBkYXksIDEgaG91clwiLiBDb25jZXB0dWFsbHksIGl0J3MganVzdCBhIG1hcCBvZiB1bml0cyB0byB0aGVpciBxdWFudGl0aWVzLCBhY2NvbXBhbmllZCBieSBzb21lIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBhbmQgbWV0aG9kcyBmb3IgY3JlYXRpbmcsIHBhcnNpbmcsIGludGVycm9nYXRpbmcsIHRyYW5zZm9ybWluZywgYW5kIGZvcm1hdHRpbmcgdGhlbS4gVGhleSBjYW4gYmUgdXNlZCBvbiB0aGVpciBvd24gb3IgaW4gY29uanVuY3Rpb24gd2l0aCBvdGhlciBMdXhvbiB0eXBlczsgZm9yIGV4YW1wbGUsIHlvdSBjYW4gdXNlIHtAbGluayBEYXRlVGltZSNwbHVzfSB0byBhZGQgYSBEdXJhdGlvbiBvYmplY3QgdG8gYSBEYXRlVGltZSwgcHJvZHVjaW5nIGFub3RoZXIgRGF0ZVRpbWUuXG4gKlxuICogSGVyZSBpcyBhIGJyaWVmIG92ZXJ2aWV3IG9mIGNvbW1vbmx5IHVzZWQgbWV0aG9kcyBhbmQgZ2V0dGVycyBpbiBEdXJhdGlvbjpcbiAqXG4gKiAqICoqQ3JlYXRpb24qKiBUbyBjcmVhdGUgYSBEdXJhdGlvbiwgdXNlIHtAbGluayBEdXJhdGlvbiNmcm9tTWlsbGlzfSwge0BsaW5rIER1cmF0aW9uI2Zyb21PYmplY3R9LCBvciB7QGxpbmsgRHVyYXRpb24jZnJvbUlTT30uXG4gKiAqICoqVW5pdCB2YWx1ZXMqKiBTZWUgdGhlIHtAbGluayBEdXJhdGlvbiN5ZWFyc30sIHtAbGluayBEdXJhdGlvbi5tb250aHN9LCB7QGxpbmsgRHVyYXRpb24jd2Vla3N9LCB7QGxpbmsgRHVyYXRpb24jZGF5c30sIHtAbGluayBEdXJhdGlvbiNob3Vyc30sIHtAbGluayBEdXJhdGlvbiNtaW51dGVzfSwge0BsaW5rIER1cmF0aW9uI3NlY29uZHN9LCB7QGxpbmsgRHVyYXRpb24jbWlsbGlzZWNvbmRzfSBhY2Nlc3NvcnMuXG4gKiAqICoqQ29uZmlndXJhdGlvbioqIFNlZSAge0BsaW5rIER1cmF0aW9uI2xvY2FsZX0gYW5kIHtAbGluayBEdXJhdGlvbiNudW1iZXJpbmdTeXN0ZW19IGFjY2Vzc29ycy5cbiAqICogKipUcmFuc2Zvcm1hdGlvbioqIFRvIGNyZWF0ZSBuZXcgRHVyYXRpb25zIG91dCBvZiBvbGQgb25lcyB1c2Uge0BsaW5rIER1cmF0aW9uI3BsdXN9LCB7QGxpbmsgRHVyYXRpb24jbWludXN9LCB7QGxpbmsgRHVyYXRpb24jbm9ybWFsaXplfSwge0BsaW5rIER1cmF0aW9uI3NldH0sIHtAbGluayBEdXJhdGlvbiNyZWNvbmZpZ3VyZX0sIHtAbGluayBEdXJhdGlvbiNzaGlmdFRvfSwgYW5kIHtAbGluayBEdXJhdGlvbiNuZWdhdGV9LlxuICogKiAqKk91dHB1dCoqIFRvIGNvbnZlcnQgdGhlIER1cmF0aW9uIGludG8gb3RoZXIgcmVwcmVzZW50YXRpb25zLCBzZWUge0BsaW5rIER1cmF0aW9uI2FzfSwge0BsaW5rIER1cmF0aW9uI3RvSVNPfSwge0BsaW5rIER1cmF0aW9uI3RvRm9ybWF0fSwgYW5kIHtAbGluayBEdXJhdGlvbiN0b0pTT059XG4gKlxuICogVGhlcmUncyBhcmUgbW9yZSBtZXRob2RzIGRvY3VtZW50ZWQgYmVsb3cuIEluIGFkZGl0aW9uLCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBzdWJ0bGVyIHRvcGljcyBsaWtlIGludGVybmF0aW9uYWxpemF0aW9uIGFuZCB2YWxpZGl0eSwgc2VlIHRoZSBleHRlcm5hbCBkb2N1bWVudGF0aW9uLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEdXJhdGlvbiB7XG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29uc3RydWN0b3IoY29uZmlnKSB7XG4gICAgY29uc3QgYWNjdXJhdGUgPSBjb25maWcuY29udmVyc2lvbkFjY3VyYWN5ID09PSBcImxvbmd0ZXJtXCIgfHwgZmFsc2U7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy52YWx1ZXMgPSBjb25maWcudmFsdWVzO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMubG9jID0gY29uZmlnLmxvYyB8fCBMb2NhbGUuY3JlYXRlKCk7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5jb252ZXJzaW9uQWNjdXJhY3kgPSBhY2N1cmF0ZSA/IFwibG9uZ3Rlcm1cIiA6IFwiY2FzdWFsXCI7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5pbnZhbGlkID0gY29uZmlnLmludmFsaWQgfHwgbnVsbDtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLm1hdHJpeCA9IGFjY3VyYXRlID8gYWNjdXJhdGVNYXRyaXggOiBjYXN1YWxNYXRyaXg7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5pc0x1eG9uRHVyYXRpb24gPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBEdXJhdGlvbiBmcm9tIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcy5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGNvdW50IG9mIG1pbGxpc2Vjb25kc1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgZm9yIHBhcnNpbmdcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIHRoZSBsb2NhbGUgdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuY29udmVyc2lvbkFjY3VyYWN5PSdjYXN1YWwnXSAtIHRoZSBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2VcbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBzdGF0aWMgZnJvbU1pbGxpcyhjb3VudCwgb3B0cykge1xuICAgIHJldHVybiBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbWlsbGlzZWNvbmRzOiBjb3VudCB9LCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEdXJhdGlvbiBmcm9tIGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCBrZXlzIGxpa2UgJ3llYXJzJyBhbmQgJ2hvdXJzJy5cbiAgICogSWYgdGhpcyBvYmplY3QgaXMgZW1wdHkgdGhlbiBhIHplcm8gbWlsbGlzZWNvbmRzIGR1cmF0aW9uIGlzIHJldHVybmVkLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqIC0gdGhlIG9iamVjdCB0byBjcmVhdGUgdGhlIERhdGVUaW1lIGZyb21cbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai55ZWFyc1xuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLnF1YXJ0ZXJzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubW9udGhzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoud2Vla3NcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5kYXlzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmouaG91cnNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5taW51dGVzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmouc2Vjb25kc1xuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1pbGxpc2Vjb25kc1xuICAgKiBAcGFyYW0ge09iamVjdH0gW29wdHM9W11dIC0gb3B0aW9ucyBmb3IgY3JlYXRpbmcgdGhpcyBEdXJhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gdGhlIGxvY2FsZSB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5jb252ZXJzaW9uQWNjdXJhY3k9J2Nhc3VhbCddIC0gdGhlIGNvbnZlcnNpb24gc3lzdGVtIHRvIHVzZVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHN0YXRpYyBmcm9tT2JqZWN0KG9iaiwgb3B0cyA9IHt9KSB7XG4gICAgaWYgKG9iaiA9PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihcbiAgICAgICAgYER1cmF0aW9uLmZyb21PYmplY3Q6IGFyZ3VtZW50IGV4cGVjdGVkIHRvIGJlIGFuIG9iamVjdCwgZ290ICR7XG4gICAgICAgICAgb2JqID09PSBudWxsID8gXCJudWxsXCIgOiB0eXBlb2Ygb2JqXG4gICAgICAgIH1gXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRHVyYXRpb24oe1xuICAgICAgdmFsdWVzOiBub3JtYWxpemVPYmplY3Qob2JqLCBEdXJhdGlvbi5ub3JtYWxpemVVbml0KSxcbiAgICAgIGxvYzogTG9jYWxlLmZyb21PYmplY3Qob3B0cyksXG4gICAgICBjb252ZXJzaW9uQWNjdXJhY3k6IG9wdHMuY29udmVyc2lvbkFjY3VyYWN5LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIER1cmF0aW9uIGZyb20gRHVyYXRpb25MaWtlLlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdCB8IG51bWJlciB8IER1cmF0aW9ufSBkdXJhdGlvbkxpa2VcbiAgICogT25lIG9mOlxuICAgKiAtIG9iamVjdCB3aXRoIGtleXMgbGlrZSAneWVhcnMnIGFuZCAnaG91cnMnLlxuICAgKiAtIG51bWJlciByZXByZXNlbnRpbmcgbWlsbGlzZWNvbmRzXG4gICAqIC0gRHVyYXRpb24gaW5zdGFuY2VcbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBzdGF0aWMgZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbkxpa2UpIHtcbiAgICBpZiAoaXNOdW1iZXIoZHVyYXRpb25MaWtlKSkge1xuICAgICAgcmV0dXJuIER1cmF0aW9uLmZyb21NaWxsaXMoZHVyYXRpb25MaWtlKTtcbiAgICB9IGVsc2UgaWYgKER1cmF0aW9uLmlzRHVyYXRpb24oZHVyYXRpb25MaWtlKSkge1xuICAgICAgcmV0dXJuIGR1cmF0aW9uTGlrZTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkdXJhdGlvbkxpa2UgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5mcm9tT2JqZWN0KGR1cmF0aW9uTGlrZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihcbiAgICAgICAgYFVua25vd24gZHVyYXRpb24gYXJndW1lbnQgJHtkdXJhdGlvbkxpa2V9IG9mIHR5cGUgJHt0eXBlb2YgZHVyYXRpb25MaWtlfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIER1cmF0aW9uIGZyb20gYW4gSVNPIDg2MDEgZHVyYXRpb24gc3RyaW5nLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRleHQgdG8gcGFyc2VcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIGZvciBwYXJzaW5nXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGU9J2VuLVVTJ10gLSB0aGUgbG9jYWxlIHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjRHVyYXRpb25zXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU08oJ1AzWTZNMVc0RFQxMkgzME01UycpLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiAzLCBtb250aHM6IDYsIHdlZWtzOiAxLCBkYXlzOiA0LCBob3VyczogMTIsIG1pbnV0ZXM6IDMwLCBzZWNvbmRzOiA1IH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTTygnUFQyM0gnKS50b09iamVjdCgpIC8vPT4geyBob3VyczogMjMgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPKCdQNVkzTScpLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiA1LCBtb250aHM6IDMgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHN0YXRpYyBmcm9tSVNPKHRleHQsIG9wdHMpIHtcbiAgICBjb25zdCBbcGFyc2VkXSA9IHBhcnNlSVNPRHVyYXRpb24odGV4dCk7XG4gICAgaWYgKHBhcnNlZCkge1xuICAgICAgcmV0dXJuIER1cmF0aW9uLmZyb21PYmplY3QocGFyc2VkLCBvcHRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIER1cmF0aW9uLmludmFsaWQoXCJ1bnBhcnNhYmxlXCIsIGB0aGUgaW5wdXQgXCIke3RleHR9XCIgY2FuJ3QgYmUgcGFyc2VkIGFzIElTTyA4NjAxYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIER1cmF0aW9uIGZyb20gYW4gSVNPIDg2MDEgdGltZSBzdHJpbmcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGV4dCB0byBwYXJzZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgZm9yIHBhcnNpbmdcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIHRoZSBsb2NhbGUgdG8gdXNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHVzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuY29udmVyc2lvbkFjY3VyYWN5PSdjYXN1YWwnXSAtIHRoZSBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2VcbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lc1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tSVNPVGltZSgnMTE6MjI6MzMuNDQ0JykudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDExLCBtaW51dGVzOiAyMiwgc2Vjb25kczogMzMsIG1pbGxpc2Vjb25kczogNDQ0IH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTT1RpbWUoJzExOjAwJykudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDExLCBtaW51dGVzOiAwLCBzZWNvbmRzOiAwIH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTT1RpbWUoJ1QxMTowMCcpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMCwgc2Vjb25kczogMCB9XG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21JU09UaW1lKCcxMTAwJykudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDExLCBtaW51dGVzOiAwLCBzZWNvbmRzOiAwIH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbUlTT1RpbWUoJ1QxMTAwJykudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDExLCBtaW51dGVzOiAwLCBzZWNvbmRzOiAwIH1cbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBzdGF0aWMgZnJvbUlTT1RpbWUodGV4dCwgb3B0cykge1xuICAgIGNvbnN0IFtwYXJzZWRdID0gcGFyc2VJU09UaW1lT25seSh0ZXh0KTtcbiAgICBpZiAocGFyc2VkKSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uZnJvbU9iamVjdChwYXJzZWQsIG9wdHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uaW52YWxpZChcInVucGFyc2FibGVcIiwgYHRoZSBpbnB1dCBcIiR7dGV4dH1cIiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDFgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGludmFsaWQgRHVyYXRpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWFzb24gLSBzaW1wbGUgc3RyaW5nIG9mIHdoeSB0aGlzIGRhdGV0aW1lIGlzIGludmFsaWQuIFNob3VsZCBub3QgY29udGFpbiBwYXJhbWV0ZXJzIG9yIGFueXRoaW5nIGVsc2UgZGF0YS1kZXBlbmRlbnRcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtleHBsYW5hdGlvbj1udWxsXSAtIGxvbmdlciBleHBsYW5hdGlvbiwgbWF5IGluY2x1ZGUgcGFyYW1ldGVycyBhbmQgb3RoZXIgdXNlZnVsIGRlYnVnZ2luZyBpbmZvcm1hdGlvblxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHN0YXRpYyBpbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24gPSBudWxsKSB7XG4gICAgaWYgKCFyZWFzb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihcIm5lZWQgdG8gc3BlY2lmeSBhIHJlYXNvbiB0aGUgRHVyYXRpb24gaXMgaW52YWxpZFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnZhbGlkID0gcmVhc29uIGluc3RhbmNlb2YgSW52YWxpZCA/IHJlYXNvbiA6IG5ldyBJbnZhbGlkKHJlYXNvbiwgZXhwbGFuYXRpb24pO1xuXG4gICAgaWYgKFNldHRpbmdzLnRocm93T25JbnZhbGlkKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZER1cmF0aW9uRXJyb3IoaW52YWxpZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgRHVyYXRpb24oeyBpbnZhbGlkIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgc3RhdGljIG5vcm1hbGl6ZVVuaXQodW5pdCkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB7XG4gICAgICB5ZWFyOiBcInllYXJzXCIsXG4gICAgICB5ZWFyczogXCJ5ZWFyc1wiLFxuICAgICAgcXVhcnRlcjogXCJxdWFydGVyc1wiLFxuICAgICAgcXVhcnRlcnM6IFwicXVhcnRlcnNcIixcbiAgICAgIG1vbnRoOiBcIm1vbnRoc1wiLFxuICAgICAgbW9udGhzOiBcIm1vbnRoc1wiLFxuICAgICAgd2VlazogXCJ3ZWVrc1wiLFxuICAgICAgd2Vla3M6IFwid2Vla3NcIixcbiAgICAgIGRheTogXCJkYXlzXCIsXG4gICAgICBkYXlzOiBcImRheXNcIixcbiAgICAgIGhvdXI6IFwiaG91cnNcIixcbiAgICAgIGhvdXJzOiBcImhvdXJzXCIsXG4gICAgICBtaW51dGU6IFwibWludXRlc1wiLFxuICAgICAgbWludXRlczogXCJtaW51dGVzXCIsXG4gICAgICBzZWNvbmQ6IFwic2Vjb25kc1wiLFxuICAgICAgc2Vjb25kczogXCJzZWNvbmRzXCIsXG4gICAgICBtaWxsaXNlY29uZDogXCJtaWxsaXNlY29uZHNcIixcbiAgICAgIG1pbGxpc2Vjb25kczogXCJtaWxsaXNlY29uZHNcIixcbiAgICB9W3VuaXQgPyB1bml0LnRvTG93ZXJDYXNlKCkgOiB1bml0XTtcblxuICAgIGlmICghbm9ybWFsaXplZCkgdGhyb3cgbmV3IEludmFsaWRVbml0RXJyb3IodW5pdCk7XG5cbiAgICByZXR1cm4gbm9ybWFsaXplZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBvYmplY3QgaXMgYSBEdXJhdGlvbi4gV29ya3MgYWNyb3NzIGNvbnRleHQgYm91bmRhcmllc1xuICAgKiBAcGFyYW0ge29iamVjdH0gb1xuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgc3RhdGljIGlzRHVyYXRpb24obykge1xuICAgIHJldHVybiAobyAmJiBvLmlzTHV4b25EdXJhdGlvbikgfHwgZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogR2V0ICB0aGUgbG9jYWxlIG9mIGEgRHVyYXRpb24sIHN1Y2ggJ2VuLUdCJ1xuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IGxvY2FsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2MubG9jYWxlIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG51bWJlcmluZyBzeXN0ZW0gb2YgYSBEdXJhdGlvbiwgc3VjaCAnYmVuZycuIFRoZSBudW1iZXJpbmcgc3lzdGVtIGlzIHVzZWQgd2hlbiBmb3JtYXR0aW5nIHRoZSBEdXJhdGlvblxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IG51bWJlcmluZ1N5c3RlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2MubnVtYmVyaW5nU3lzdGVtIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgRHVyYXRpb24gZm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIGZvcm1hdCBzdHJpbmcuIFlvdSBtYXkgdXNlIHRoZXNlIHRva2VuczpcbiAgICogKiBgU2AgZm9yIG1pbGxpc2Vjb25kc1xuICAgKiAqIGBzYCBmb3Igc2Vjb25kc1xuICAgKiAqIGBtYCBmb3IgbWludXRlc1xuICAgKiAqIGBoYCBmb3IgaG91cnNcbiAgICogKiBgZGAgZm9yIGRheXNcbiAgICogKiBgTWAgZm9yIG1vbnRoc1xuICAgKiAqIGB5YCBmb3IgeWVhcnNcbiAgICogTm90ZXM6XG4gICAqICogQWRkIHBhZGRpbmcgYnkgcmVwZWF0aW5nIHRoZSB0b2tlbiwgZS5nLiBcInl5XCIgcGFkcyB0aGUgeWVhcnMgdG8gdHdvIGRpZ2l0cywgXCJoaGhoXCIgcGFkcyB0aGUgaG91cnMgb3V0IHRvIGZvdXIgZGlnaXRzXG4gICAqICogVGhlIGR1cmF0aW9uIHdpbGwgYmUgY29udmVydGVkIHRvIHRoZSBzZXQgb2YgdW5pdHMgaW4gdGhlIGZvcm1hdCBzdHJpbmcgdXNpbmcge0BsaW5rIER1cmF0aW9uI3NoaWZ0VG99IGFuZCB0aGUgRHVyYXRpb25zJ3MgY29udmVyc2lvbiBhY2N1cmFjeSBzZXR0aW5nLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm10IC0gdGhlIGZvcm1hdCBzdHJpbmdcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuZmxvb3I9dHJ1ZV0gLSBmbG9vciBudW1lcmljYWwgdmFsdWVzXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMSwgZGF5czogNiwgc2Vjb25kczogMiB9KS50b0Zvcm1hdChcInkgZCBzXCIpIC8vPT4gXCIxIDYgMlwiXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyB5ZWFyczogMSwgZGF5czogNiwgc2Vjb25kczogMiB9KS50b0Zvcm1hdChcInl5IGRkIHNzc1wiKSAvLz0+IFwiMDEgMDYgMDAyXCJcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0pLnRvRm9ybWF0KFwiTSBTXCIpIC8vPT4gXCIxMiA1MTg0MDIwMDBcIlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0Zvcm1hdChmbXQsIG9wdHMgPSB7fSkge1xuICAgIC8vIHJldmVyc2UtY29tcGF0IHNpbmNlIDEuMjsgd2UgYWx3YXlzIHJvdW5kIGRvd24gbm93LCBuZXZlciB1cCwgYW5kIHdlIGRvIGl0IGJ5IGRlZmF1bHRcbiAgICBjb25zdCBmbXRPcHRzID0ge1xuICAgICAgLi4ub3B0cyxcbiAgICAgIGZsb29yOiBvcHRzLnJvdW5kICE9PSBmYWxzZSAmJiBvcHRzLmZsb29yICE9PSBmYWxzZSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRcbiAgICAgID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYywgZm10T3B0cykuZm9ybWF0RHVyYXRpb25Gcm9tU3RyaW5nKHRoaXMsIGZtdClcbiAgICAgIDogSU5WQUxJRDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgRHVyYXRpb24gd2l0aCBhbGwgdW5pdHMgaW5jbHVkZWRcbiAgICogVG8gbW9kaWZ5IGl0cyBiZWhhdmlvciB1c2UgdGhlIGBsaXN0U3R5bGVgIGFuZCBhbnkgSW50bC5OdW1iZXJGb3JtYXQgb3B0aW9uLCB0aG91Z2ggYHVuaXREaXNwbGF5YCBpcyBlc3BlY2lhbGx5IHJlbGV2YW50LiBTZWUge0BsaW5rIEludGwuTnVtYmVyRm9ybWF0fS5cbiAgICogQHBhcmFtIG9wdHMgLSBPbiBvcHRpb24gb2JqZWN0IHRvIG92ZXJyaWRlIHRoZSBmb3JtYXR0aW5nLiBBY2NlcHRzIHRoZSBzYW1lIGtleXMgYXMgdGhlIG9wdGlvbnMgcGFyYW1ldGVyIG9mIHRoZSBuYXRpdmUgYEludC5OdW1iZXJGb3JtYXRgIGNvbnN0cnVjdG9yLCBhcyB3ZWxsIGFzIGBsaXN0U3R5bGVgLlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBqc1xuICAgKiB2YXIgZHVyID0gRHVyYXRpb24uZnJvbU9iamVjdCh7IGRheXM6IDEsIGhvdXJzOiA1LCBtaW51dGVzOiA2IH0pXG4gICAqIGR1ci50b0h1bWFuKCkgLy89PiAnMSBkYXksIDUgaG91cnMsIDYgbWludXRlcydcbiAgICogZHVyLnRvSHVtYW4oeyBsaXN0U3R5bGU6IFwibG9uZ1wiIH0pIC8vPT4gJzEgZGF5LCA1IGhvdXJzLCBhbmQgNiBtaW51dGVzJ1xuICAgKiBkdXIudG9IdW1hbih7IHVuaXREaXNwbGF5OiBcInNob3J0XCIgfSkgLy89PiAnMSBkYXksIDUgaHIsIDYgbWluJ1xuICAgKiBgYGBcbiAgICovXG4gIHRvSHVtYW4ob3B0cyA9IHt9KSB7XG4gICAgY29uc3QgbCA9IG9yZGVyZWRVbml0c1xuICAgICAgLm1hcCgodW5pdCkgPT4ge1xuICAgICAgICBjb25zdCB2YWwgPSB0aGlzLnZhbHVlc1t1bml0XTtcbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkKHZhbCkpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5sb2NcbiAgICAgICAgICAubnVtYmVyRm9ybWF0dGVyKHsgc3R5bGU6IFwidW5pdFwiLCB1bml0RGlzcGxheTogXCJsb25nXCIsIC4uLm9wdHMsIHVuaXQ6IHVuaXQuc2xpY2UoMCwgLTEpIH0pXG4gICAgICAgICAgLmZvcm1hdCh2YWwpO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKG4pID0+IG4pO1xuXG4gICAgcmV0dXJuIHRoaXMubG9jXG4gICAgICAubGlzdEZvcm1hdHRlcih7IHR5cGU6IFwiY29uanVuY3Rpb25cIiwgc3R5bGU6IG9wdHMubGlzdFN0eWxlIHx8IFwibmFycm93XCIsIC4uLm9wdHMgfSlcbiAgICAgIC5mb3JtYXQobCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIEphdmFTY3JpcHQgb2JqZWN0IHdpdGggdGhpcyBEdXJhdGlvbidzIHZhbHVlcy5cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH0pLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiAxLCBkYXlzOiA2LCBzZWNvbmRzOiAyIH1cbiAgICogQHJldHVybiB7T2JqZWN0fVxuICAgKi9cbiAgdG9PYmplY3QoKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB7fTtcbiAgICByZXR1cm4geyAuLi50aGlzLnZhbHVlcyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uLlxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI0R1cmF0aW9uc1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgeWVhcnM6IDMsIHNlY29uZHM6IDQ1IH0pLnRvSVNPKCkgLy89PiAnUDNZVDQ1UydcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IG1vbnRoczogNCwgc2Vjb25kczogNDUgfSkudG9JU08oKSAvLz0+ICdQNE1UNDVTJ1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbW9udGhzOiA1IH0pLnRvSVNPKCkgLy89PiAnUDVNJ1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgbWludXRlczogNSB9KS50b0lTTygpIC8vPT4gJ1BUNU0nXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBtaWxsaXNlY29uZHM6IDYgfSkudG9JU08oKSAvLz0+ICdQVDAuMDA2UydcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU08oKSB7XG4gICAgLy8gd2UgY291bGQgdXNlIHRoZSBmb3JtYXR0ZXIsIGJ1dCB0aGlzIGlzIGFuIGVhc2llciB3YXkgdG8gZ2V0IHRoZSBtaW5pbXVtIHN0cmluZ1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gbnVsbDtcblxuICAgIGxldCBzID0gXCJQXCI7XG4gICAgaWYgKHRoaXMueWVhcnMgIT09IDApIHMgKz0gdGhpcy55ZWFycyArIFwiWVwiO1xuICAgIGlmICh0aGlzLm1vbnRocyAhPT0gMCB8fCB0aGlzLnF1YXJ0ZXJzICE9PSAwKSBzICs9IHRoaXMubW9udGhzICsgdGhpcy5xdWFydGVycyAqIDMgKyBcIk1cIjtcbiAgICBpZiAodGhpcy53ZWVrcyAhPT0gMCkgcyArPSB0aGlzLndlZWtzICsgXCJXXCI7XG4gICAgaWYgKHRoaXMuZGF5cyAhPT0gMCkgcyArPSB0aGlzLmRheXMgKyBcIkRcIjtcbiAgICBpZiAodGhpcy5ob3VycyAhPT0gMCB8fCB0aGlzLm1pbnV0ZXMgIT09IDAgfHwgdGhpcy5zZWNvbmRzICE9PSAwIHx8IHRoaXMubWlsbGlzZWNvbmRzICE9PSAwKVxuICAgICAgcyArPSBcIlRcIjtcbiAgICBpZiAodGhpcy5ob3VycyAhPT0gMCkgcyArPSB0aGlzLmhvdXJzICsgXCJIXCI7XG4gICAgaWYgKHRoaXMubWludXRlcyAhPT0gMCkgcyArPSB0aGlzLm1pbnV0ZXMgKyBcIk1cIjtcbiAgICBpZiAodGhpcy5zZWNvbmRzICE9PSAwIHx8IHRoaXMubWlsbGlzZWNvbmRzICE9PSAwKVxuICAgICAgLy8gdGhpcyB3aWxsIGhhbmRsZSBcImZsb2F0aW5nIHBvaW50IG1hZG5lc3NcIiBieSByZW1vdmluZyBleHRyYSBkZWNpbWFsIHBsYWNlc1xuICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTg4MDA0L2lzLWZsb2F0aW5nLXBvaW50LW1hdGgtYnJva2VuXG4gICAgICBzICs9IHJvdW5kVG8odGhpcy5zZWNvbmRzICsgdGhpcy5taWxsaXNlY29uZHMgLyAxMDAwLCAzKSArIFwiU1wiO1xuICAgIGlmIChzID09PSBcIlBcIikgcyArPSBcIlQwU1wiO1xuICAgIHJldHVybiBzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIER1cmF0aW9uLCBmb3JtYXR0ZWQgYXMgYSB0aW1lIG9mIGRheS5cbiAgICogTm90ZSB0aGF0IHRoaXMgd2lsbCByZXR1cm4gbnVsbCBpZiB0aGUgZHVyYXRpb24gaXMgaW52YWxpZCwgbmVnYXRpdmUsIG9yIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiAyNCBob3Vycy5cbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lc1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc01pbGxpc2Vjb25kcz1mYWxzZV0gLSBleGNsdWRlIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc3VwcHJlc3NTZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgc2Vjb25kcyBmcm9tIHRoZSBmb3JtYXQgaWYgdGhleSdyZSAwXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZVByZWZpeD1mYWxzZV0gLSBpbmNsdWRlIHRoZSBgVGAgcHJlZml4XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5mb3JtYXQ9J2V4dGVuZGVkJ10gLSBjaG9vc2UgYmV0d2VlbiB0aGUgYmFzaWMgYW5kIGV4dGVuZGVkIGZvcm1hdFxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDExIH0pLnRvSVNPVGltZSgpIC8vPT4gJzExOjAwOjAwLjAwMCdcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoeyBzdXBwcmVzc01pbGxpc2Vjb25kczogdHJ1ZSB9KSAvLz0+ICcxMTowMDowMCdcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMSB9KS50b0lTT1RpbWUoeyBzdXBwcmVzc1NlY29uZHM6IHRydWUgfSkgLy89PiAnMTE6MDAnXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3QoeyBob3VyczogMTEgfSkudG9JU09UaW1lKHsgaW5jbHVkZVByZWZpeDogdHJ1ZSB9KSAvLz0+ICdUMTE6MDA6MDAuMDAwJ1xuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDExIH0pLnRvSVNPVGltZSh7IGZvcm1hdDogJ2Jhc2ljJyB9KSAvLz0+ICcxMTAwMDAuMDAwJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0lTT1RpbWUob3B0cyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgbWlsbGlzID0gdGhpcy50b01pbGxpcygpO1xuICAgIGlmIChtaWxsaXMgPCAwIHx8IG1pbGxpcyA+PSA4NjQwMDAwMCkgcmV0dXJuIG51bGw7XG5cbiAgICBvcHRzID0ge1xuICAgICAgc3VwcHJlc3NNaWxsaXNlY29uZHM6IGZhbHNlLFxuICAgICAgc3VwcHJlc3NTZWNvbmRzOiBmYWxzZSxcbiAgICAgIGluY2x1ZGVQcmVmaXg6IGZhbHNlLFxuICAgICAgZm9ybWF0OiBcImV4dGVuZGVkXCIsXG4gICAgICAuLi5vcHRzLFxuICAgIH07XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc2hpZnRUbyhcImhvdXJzXCIsIFwibWludXRlc1wiLCBcInNlY29uZHNcIiwgXCJtaWxsaXNlY29uZHNcIik7XG5cbiAgICBsZXQgZm10ID0gb3B0cy5mb3JtYXQgPT09IFwiYmFzaWNcIiA/IFwiaGhtbVwiIDogXCJoaDptbVwiO1xuXG4gICAgaWYgKCFvcHRzLnN1cHByZXNzU2Vjb25kcyB8fCB2YWx1ZS5zZWNvbmRzICE9PSAwIHx8IHZhbHVlLm1pbGxpc2Vjb25kcyAhPT0gMCkge1xuICAgICAgZm10ICs9IG9wdHMuZm9ybWF0ID09PSBcImJhc2ljXCIgPyBcInNzXCIgOiBcIjpzc1wiO1xuICAgICAgaWYgKCFvcHRzLnN1cHByZXNzTWlsbGlzZWNvbmRzIHx8IHZhbHVlLm1pbGxpc2Vjb25kcyAhPT0gMCkge1xuICAgICAgICBmbXQgKz0gXCIuU1NTXCI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IHN0ciA9IHZhbHVlLnRvRm9ybWF0KGZtdCk7XG5cbiAgICBpZiAob3B0cy5pbmNsdWRlUHJlZml4KSB7XG4gICAgICBzdHIgPSBcIlRcIiArIHN0cjtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEdXJhdGlvbiBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIEpTT04uXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy50b0lTTygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEdXJhdGlvbiBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIGRlYnVnZ2luZy5cbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9JU08oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG1pbGxpc2Vjb25kcyB2YWx1ZSBvZiB0aGlzIER1cmF0aW9uLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICB0b01pbGxpcygpIHtcbiAgICByZXR1cm4gdGhpcy5hcyhcIm1pbGxpc2Vjb25kc1wiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG1pbGxpc2Vjb25kcyB2YWx1ZSBvZiB0aGlzIER1cmF0aW9uLiBBbGlhcyBvZiB7QGxpbmsgdG9NaWxsaXN9XG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIHZhbHVlT2YoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9NaWxsaXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIHRoaXMgRHVyYXRpb24gbG9uZ2VyIGJ5IHRoZSBzcGVjaWZpZWQgYW1vdW50LiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi5cbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBhbW91bnQgdG8gYWRkLiBFaXRoZXIgYSBMdXhvbiBEdXJhdGlvbiwgYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLCB0aGUgb2JqZWN0IGFyZ3VtZW50IHRvIER1cmF0aW9uLmZyb21PYmplY3QoKVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHBsdXMoZHVyYXRpb24pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG5cbiAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKSxcbiAgICAgIHJlc3VsdCA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBrIG9mIG9yZGVyZWRVbml0cykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5KGR1ci52YWx1ZXMsIGspIHx8IGhhc093blByb3BlcnR5KHRoaXMudmFsdWVzLCBrKSkge1xuICAgICAgICByZXN1bHRba10gPSBkdXIuZ2V0KGspICsgdGhpcy5nZXQoayk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdmFsdWVzOiByZXN1bHQgfSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSB0aGlzIER1cmF0aW9uIHNob3J0ZXIgYnkgdGhlIHNwZWNpZmllZCBhbW91bnQuIFJldHVybiBhIG5ld2x5LWNvbnN0cnVjdGVkIER1cmF0aW9uLlxuICAgKiBAcGFyYW0ge0R1cmF0aW9ufE9iamVjdHxudW1iZXJ9IGR1cmF0aW9uIC0gVGhlIGFtb3VudCB0byBzdWJ0cmFjdC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KClcbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBtaW51cyhkdXJhdGlvbikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcblxuICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pO1xuICAgIHJldHVybiB0aGlzLnBsdXMoZHVyLm5lZ2F0ZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY2FsZSB0aGlzIER1cmF0aW9uIGJ5IHRoZSBzcGVjaWZpZWQgYW1vdW50LiBSZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi5cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgdG8gZWFjaCB1bml0LiBBcml0eSBpcyAxIG9yIDI6IHRoZSB2YWx1ZSBvZiB0aGUgdW5pdCBhbmQsIG9wdGlvbmFsbHksIHRoZSB1bml0IG5hbWUuIE11c3QgcmV0dXJuIGEgbnVtYmVyLlxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEsIG1pbnV0ZXM6IDMwIH0pLm1hcFVuaXRzKHggPT4geCAqIDIpIC8vPT4geyBob3VyczogMiwgbWludXRlczogNjAgfVxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEsIG1pbnV0ZXM6IDMwIH0pLm1hcFVuaXRzKCh4LCB1KSA9PiB1ID09PSBcImhvdXJcIiA/IHggKiAyIDogeCkgLy89PiB7IGhvdXJzOiAyLCBtaW51dGVzOiAzMCB9XG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgbWFwVW5pdHMoZm4pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBrIG9mIE9iamVjdC5rZXlzKHRoaXMudmFsdWVzKSkge1xuICAgICAgcmVzdWx0W2tdID0gYXNOdW1iZXIoZm4odGhpcy52YWx1ZXNba10sIGspKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdmFsdWVzOiByZXN1bHQgfSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB2YWx1ZSBvZiB1bml0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIGEgdW5pdCBzdWNoIGFzICdtaW51dGUnIG9yICdkYXknXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3Qoe3llYXJzOiAyLCBkYXlzOiAzfSkuZ2V0KCd5ZWFycycpIC8vPT4gMlxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHt5ZWFyczogMiwgZGF5czogM30pLmdldCgnbW9udGhzJykgLy89PiAwXG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3Qoe3llYXJzOiAyLCBkYXlzOiAzfSkuZ2V0KCdkYXlzJykgLy89PiAzXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGdldCh1bml0KSB7XG4gICAgcmV0dXJuIHRoaXNbRHVyYXRpb24ubm9ybWFsaXplVW5pdCh1bml0KV07XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGUgdmFsdWVzIG9mIHNwZWNpZmllZCB1bml0cy4gUmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgRHVyYXRpb24uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZXMgLSBhIG1hcHBpbmcgb2YgdW5pdHMgdG8gbnVtYmVyc1xuICAgKiBAZXhhbXBsZSBkdXIuc2V0KHsgeWVhcnM6IDIwMTcgfSlcbiAgICogQGV4YW1wbGUgZHVyLnNldCh7IGhvdXJzOiA4LCBtaW51dGVzOiAzMCB9KVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHNldCh2YWx1ZXMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG5cbiAgICBjb25zdCBtaXhlZCA9IHsgLi4udGhpcy52YWx1ZXMsIC4uLm5vcm1hbGl6ZU9iamVjdCh2YWx1ZXMsIER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQpIH07XG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdmFsdWVzOiBtaXhlZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBsb2NhbGUgYW5kL29yIG51bWJlcmluZ1N5c3RlbS4gIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEdXJhdGlvbi5cbiAgICogQGV4YW1wbGUgZHVyLnJlY29uZmlndXJlKHsgbG9jYWxlOiAnZW4tR0InIH0pXG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgcmVjb25maWd1cmUoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgY29udmVyc2lvbkFjY3VyYWN5IH0gPSB7fSkge1xuICAgIGNvbnN0IGxvYyA9IHRoaXMubG9jLmNsb25lKHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0gfSksXG4gICAgICBvcHRzID0geyBsb2MgfTtcblxuICAgIGlmIChjb252ZXJzaW9uQWNjdXJhY3kpIHtcbiAgICAgIG9wdHMuY29udmVyc2lvbkFjY3VyYWN5ID0gY29udmVyc2lvbkFjY3VyYWN5O1xuICAgIH1cblxuICAgIHJldHVybiBjbG9uZSh0aGlzLCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgZHVyYXRpb24gaW4gdGhlIHNwZWNpZmllZCB1bml0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIGEgdW5pdCBzdWNoIGFzICdtaW51dGVzJyBvciAnZGF5cydcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7eWVhcnM6IDF9KS5hcygnZGF5cycpIC8vPT4gMzY1XG4gICAqIEBleGFtcGxlIER1cmF0aW9uLmZyb21PYmplY3Qoe3llYXJzOiAxfSkuYXMoJ21vbnRocycpIC8vPT4gMTJcbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7aG91cnM6IDYwfSkuYXMoJ2RheXMnKSAvLz0+IDIuNVxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBhcyh1bml0KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuc2hpZnRUbyh1bml0KS5nZXQodW5pdCkgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogUmVkdWNlIHRoaXMgRHVyYXRpb24gdG8gaXRzIGNhbm9uaWNhbCByZXByZXNlbnRhdGlvbiBpbiBpdHMgY3VycmVudCB1bml0cy5cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IHllYXJzOiAyLCBkYXlzOiA1MDAwIH0pLm5vcm1hbGl6ZSgpLnRvT2JqZWN0KCkgLy89PiB7IHllYXJzOiAxNSwgZGF5czogMjU1IH1cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxMiwgbWludXRlczogLTQ1IH0pLm5vcm1hbGl6ZSgpLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAxMSwgbWludXRlczogMTUgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIG5vcm1hbGl6ZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgdmFscyA9IHRoaXMudG9PYmplY3QoKTtcbiAgICBub3JtYWxpemVWYWx1ZXModGhpcy5tYXRyaXgsIHZhbHMpO1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHZhbHVlczogdmFscyB9LCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IHRoaXMgRHVyYXRpb24gaW50byBpdHMgcmVwcmVzZW50YXRpb24gaW4gYSBkaWZmZXJlbnQgc2V0IG9mIHVuaXRzLlxuICAgKiBAZXhhbXBsZSBEdXJhdGlvbi5mcm9tT2JqZWN0KHsgaG91cnM6IDEsIHNlY29uZHM6IDMwIH0pLnNoaWZ0VG8oJ21pbnV0ZXMnLCAnbWlsbGlzZWNvbmRzJykudG9PYmplY3QoKSAvLz0+IHsgbWludXRlczogNjAsIG1pbGxpc2Vjb25kczogMzAwMDAgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHNoaWZ0VG8oLi4udW5pdHMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG5cbiAgICBpZiAodW5pdHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB1bml0cyA9IHVuaXRzLm1hcCgodSkgPT4gRHVyYXRpb24ubm9ybWFsaXplVW5pdCh1KSk7XG5cbiAgICBjb25zdCBidWlsdCA9IHt9LFxuICAgICAgYWNjdW11bGF0ZWQgPSB7fSxcbiAgICAgIHZhbHMgPSB0aGlzLnRvT2JqZWN0KCk7XG4gICAgbGV0IGxhc3RVbml0O1xuXG4gICAgZm9yIChjb25zdCBrIG9mIG9yZGVyZWRVbml0cykge1xuICAgICAgaWYgKHVuaXRzLmluZGV4T2YoaykgPj0gMCkge1xuICAgICAgICBsYXN0VW5pdCA9IGs7XG5cbiAgICAgICAgbGV0IG93biA9IDA7XG5cbiAgICAgICAgLy8gYW55dGhpbmcgd2UgaGF2ZW4ndCBib2lsZWQgZG93biB5ZXQgc2hvdWxkIGdldCBib2lsZWQgdG8gdGhpcyB1bml0XG4gICAgICAgIGZvciAoY29uc3QgYWsgaW4gYWNjdW11bGF0ZWQpIHtcbiAgICAgICAgICBvd24gKz0gdGhpcy5tYXRyaXhbYWtdW2tdICogYWNjdW11bGF0ZWRbYWtdO1xuICAgICAgICAgIGFjY3VtdWxhdGVkW2FrXSA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBwbHVzIGFueXRoaW5nIHRoYXQncyBhbHJlYWR5IGluIHRoaXMgdW5pdFxuICAgICAgICBpZiAoaXNOdW1iZXIodmFsc1trXSkpIHtcbiAgICAgICAgICBvd24gKz0gdmFsc1trXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGkgPSBNYXRoLnRydW5jKG93bik7XG4gICAgICAgIGJ1aWx0W2tdID0gaTtcbiAgICAgICAgYWNjdW11bGF0ZWRba10gPSAob3duICogMTAwMCAtIGkgKiAxMDAwKSAvIDEwMDA7XG5cbiAgICAgICAgLy8gcGx1cyBhbnl0aGluZyBmdXJ0aGVyIGRvd24gdGhlIGNoYWluIHRoYXQgc2hvdWxkIGJlIHJvbGxlZCB1cCBpbiB0byB0aGlzXG4gICAgICAgIGZvciAoY29uc3QgZG93biBpbiB2YWxzKSB7XG4gICAgICAgICAgaWYgKG9yZGVyZWRVbml0cy5pbmRleE9mKGRvd24pID4gb3JkZXJlZFVuaXRzLmluZGV4T2YoaykpIHtcbiAgICAgICAgICAgIGNvbnZlcnQodGhpcy5tYXRyaXgsIHZhbHMsIGRvd24sIGJ1aWx0LCBrKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gb3RoZXJ3aXNlLCBrZWVwIGl0IGluIHRoZSB3aW5ncyB0byBib2lsIGl0IGxhdGVyXG4gICAgICB9IGVsc2UgaWYgKGlzTnVtYmVyKHZhbHNba10pKSB7XG4gICAgICAgIGFjY3VtdWxhdGVkW2tdID0gdmFsc1trXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBhbnl0aGluZyBsZWZ0b3ZlciBiZWNvbWVzIHRoZSBkZWNpbWFsIGZvciB0aGUgbGFzdCB1bml0XG4gICAgLy8gbGFzdFVuaXQgbXVzdCBiZSBkZWZpbmVkIHNpbmNlIHVuaXRzIGlzIG5vdCBlbXB0eVxuICAgIGZvciAoY29uc3Qga2V5IGluIGFjY3VtdWxhdGVkKSB7XG4gICAgICBpZiAoYWNjdW11bGF0ZWRba2V5XSAhPT0gMCkge1xuICAgICAgICBidWlsdFtsYXN0VW5pdF0gKz1cbiAgICAgICAgICBrZXkgPT09IGxhc3RVbml0ID8gYWNjdW11bGF0ZWRba2V5XSA6IGFjY3VtdWxhdGVkW2tleV0gLyB0aGlzLm1hdHJpeFtsYXN0VW5pdF1ba2V5XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY2xvbmUodGhpcywgeyB2YWx1ZXM6IGJ1aWx0IH0sIHRydWUpLm5vcm1hbGl6ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgbmVnYXRpdmUgb2YgdGhpcyBEdXJhdGlvbi5cbiAgICogQGV4YW1wbGUgRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAxLCBzZWNvbmRzOiAzMCB9KS5uZWdhdGUoKS50b09iamVjdCgpIC8vPT4geyBob3VyczogLTEsIHNlY29uZHM6IC0zMCB9XG4gICAqIEByZXR1cm4ge0R1cmF0aW9ufVxuICAgKi9cbiAgbmVnYXRlKCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICBjb25zdCBuZWdhdGVkID0ge307XG4gICAgZm9yIChjb25zdCBrIG9mIE9iamVjdC5rZXlzKHRoaXMudmFsdWVzKSkge1xuICAgICAgbmVnYXRlZFtrXSA9IC10aGlzLnZhbHVlc1trXTtcbiAgICB9XG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdmFsdWVzOiBuZWdhdGVkIH0sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgeWVhcnMuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgeWVhcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLnllYXJzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBxdWFydGVycy5cbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBxdWFydGVycygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMucXVhcnRlcnMgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1vbnRocy5cbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBtb250aHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLm1vbnRocyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgd2Vla3NcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCB3ZWVrcygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMud2Vla3MgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRheXMuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgZGF5cygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy52YWx1ZXMuZGF5cyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaG91cnMuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgaG91cnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLmhvdXJzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtaW51dGVzLlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IG1pbnV0ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLm1pbnV0ZXMgfHwgMCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHNlY29uZHMuXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGdldCBzZWNvbmRzKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnZhbHVlcy5zZWNvbmRzIHx8IDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtaWxsaXNlY29uZHMuXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGdldCBtaWxsaXNlY29uZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudmFsdWVzLm1pbGxpc2Vjb25kcyB8fCAwIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgRHVyYXRpb24gaXMgaW52YWxpZC4gSW52YWxpZCBkdXJhdGlvbnMgYXJlIHJldHVybmVkIGJ5IGRpZmYgb3BlcmF0aW9uc1xuICAgKiBvbiBpbnZhbGlkIERhdGVUaW1lcyBvciBJbnRlcnZhbHMuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID09PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gZXJyb3IgY29kZSBpZiB0aGlzIER1cmF0aW9uIGJlY2FtZSBpbnZhbGlkLCBvciBudWxsIGlmIHRoZSBEdXJhdGlvbiBpcyB2YWxpZFxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgaW52YWxpZFJlYXNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBleHBsYW5hdGlvbiBvZiB3aHkgdGhpcyBEdXJhdGlvbiBiZWNhbWUgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgRHVyYXRpb24gaXMgdmFsaWRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBpbnZhbGlkRXhwbGFuYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogRXF1YWxpdHkgY2hlY2tcbiAgICogVHdvIER1cmF0aW9ucyBhcmUgZXF1YWwgaWZmIHRoZXkgaGF2ZSB0aGUgc2FtZSB1bml0cyBhbmQgdGhlIHNhbWUgdmFsdWVzIGZvciBlYWNoIHVuaXQuXG4gICAqIEBwYXJhbSB7RHVyYXRpb259IG90aGVyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBlcXVhbHMob3RoZXIpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCB8fCAhb3RoZXIuaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5sb2MuZXF1YWxzKG90aGVyLmxvYykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlcSh2MSwgdjIpIHtcbiAgICAgIC8vIENvbnNpZGVyIDAgYW5kIHVuZGVmaW5lZCBhcyBlcXVhbFxuICAgICAgaWYgKHYxID09PSB1bmRlZmluZWQgfHwgdjEgPT09IDApIHJldHVybiB2MiA9PT0gdW5kZWZpbmVkIHx8IHYyID09PSAwO1xuICAgICAgcmV0dXJuIHYxID09PSB2MjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHUgb2Ygb3JkZXJlZFVuaXRzKSB7XG4gICAgICBpZiAoIWVxKHRoaXMudmFsdWVzW3VdLCBvdGhlci52YWx1ZXNbdV0pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiIsICJpbXBvcnQgRGF0ZVRpbWUsIHsgZnJpZW5kbHlEYXRlVGltZSB9IGZyb20gXCIuL2RhdGV0aW1lLmpzXCI7XG5pbXBvcnQgRHVyYXRpb24gZnJvbSBcIi4vZHVyYXRpb24uanNcIjtcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5ncy5qc1wiO1xuaW1wb3J0IHsgSW52YWxpZEFyZ3VtZW50RXJyb3IsIEludmFsaWRJbnRlcnZhbEVycm9yIH0gZnJvbSBcIi4vZXJyb3JzLmpzXCI7XG5pbXBvcnQgSW52YWxpZCBmcm9tIFwiLi9pbXBsL2ludmFsaWQuanNcIjtcblxuY29uc3QgSU5WQUxJRCA9IFwiSW52YWxpZCBJbnRlcnZhbFwiO1xuXG4vLyBjaGVja3MgaWYgdGhlIHN0YXJ0IGlzIGVxdWFsIHRvIG9yIGJlZm9yZSB0aGUgZW5kXG5mdW5jdGlvbiB2YWxpZGF0ZVN0YXJ0RW5kKHN0YXJ0LCBlbmQpIHtcbiAgaWYgKCFzdGFydCB8fCAhc3RhcnQuaXNWYWxpZCkge1xuICAgIHJldHVybiBJbnRlcnZhbC5pbnZhbGlkKFwibWlzc2luZyBvciBpbnZhbGlkIHN0YXJ0XCIpO1xuICB9IGVsc2UgaWYgKCFlbmQgfHwgIWVuZC5pc1ZhbGlkKSB7XG4gICAgcmV0dXJuIEludGVydmFsLmludmFsaWQoXCJtaXNzaW5nIG9yIGludmFsaWQgZW5kXCIpO1xuICB9IGVsc2UgaWYgKGVuZCA8IHN0YXJ0KSB7XG4gICAgcmV0dXJuIEludGVydmFsLmludmFsaWQoXG4gICAgICBcImVuZCBiZWZvcmUgc3RhcnRcIixcbiAgICAgIGBUaGUgZW5kIG9mIGFuIGludGVydmFsIG11c3QgYmUgYWZ0ZXIgaXRzIHN0YXJ0LCBidXQgeW91IGhhZCBzdGFydD0ke3N0YXJ0LnRvSVNPKCl9IGFuZCBlbmQ9JHtlbmQudG9JU08oKX1gXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIEFuIEludGVydmFsIG9iamVjdCByZXByZXNlbnRzIGEgaGFsZi1vcGVuIGludGVydmFsIG9mIHRpbWUsIHdoZXJlIGVhY2ggZW5kcG9pbnQgaXMgYSB7QGxpbmsgRGF0ZVRpbWV9LiBDb25jZXB0dWFsbHksIGl0J3MgYSBjb250YWluZXIgZm9yIHRob3NlIHR3byBlbmRwb2ludHMsIGFjY29tcGFuaWVkIGJ5IG1ldGhvZHMgZm9yIGNyZWF0aW5nLCBwYXJzaW5nLCBpbnRlcnJvZ2F0aW5nLCBjb21wYXJpbmcsIHRyYW5zZm9ybWluZywgYW5kIGZvcm1hdHRpbmcgdGhlbS5cbiAqXG4gKiBIZXJlIGlzIGEgYnJpZWYgb3ZlcnZpZXcgb2YgdGhlIG1vc3QgY29tbW9ubHkgdXNlZCBtZXRob2RzIGFuZCBnZXR0ZXJzIGluIEludGVydmFsOlxuICpcbiAqICogKipDcmVhdGlvbioqIFRvIGNyZWF0ZSBhbiBJbnRlcnZhbCwgdXNlIHtAbGluayBJbnRlcnZhbCNmcm9tRGF0ZVRpbWVzfSwge0BsaW5rIEludGVydmFsI2FmdGVyfSwge0BsaW5rIEludGVydmFsI2JlZm9yZX0sIG9yIHtAbGluayBJbnRlcnZhbCNmcm9tSVNPfS5cbiAqICogKipBY2Nlc3NvcnMqKiBVc2Uge0BsaW5rIEludGVydmFsI3N0YXJ0fSBhbmQge0BsaW5rIEludGVydmFsI2VuZH0gdG8gZ2V0IHRoZSBzdGFydCBhbmQgZW5kLlxuICogKiAqKkludGVycm9nYXRpb24qKiBUbyBhbmFseXplIHRoZSBJbnRlcnZhbCwgdXNlIHtAbGluayBJbnRlcnZhbCNjb3VudH0sIHtAbGluayBJbnRlcnZhbCNsZW5ndGh9LCB7QGxpbmsgSW50ZXJ2YWwjaGFzU2FtZX0sIHtAbGluayBJbnRlcnZhbCNjb250YWluc30sIHtAbGluayBJbnRlcnZhbCNpc0FmdGVyfSwgb3Ige0BsaW5rIEludGVydmFsI2lzQmVmb3JlfS5cbiAqICogKipUcmFuc2Zvcm1hdGlvbioqIFRvIGNyZWF0ZSBvdGhlciBJbnRlcnZhbHMgb3V0IG9mIHRoaXMgb25lLCB1c2Uge0BsaW5rIEludGVydmFsI3NldH0sIHtAbGluayBJbnRlcnZhbCNzcGxpdEF0fSwge0BsaW5rIEludGVydmFsI3NwbGl0Qnl9LCB7QGxpbmsgSW50ZXJ2YWwjZGl2aWRlRXF1YWxseX0sIHtAbGluayBJbnRlcnZhbCNtZXJnZX0sIHtAbGluayBJbnRlcnZhbCN4b3J9LCB7QGxpbmsgSW50ZXJ2YWwjdW5pb259LCB7QGxpbmsgSW50ZXJ2YWwjaW50ZXJzZWN0aW9ufSwgb3Ige0BsaW5rIEludGVydmFsI2RpZmZlcmVuY2V9LlxuICogKiAqKkNvbXBhcmlzb24qKiBUbyBjb21wYXJlIHRoaXMgSW50ZXJ2YWwgdG8gYW5vdGhlciBvbmUsIHVzZSB7QGxpbmsgSW50ZXJ2YWwjZXF1YWxzfSwge0BsaW5rIEludGVydmFsI292ZXJsYXBzfSwge0BsaW5rIEludGVydmFsI2FidXRzU3RhcnR9LCB7QGxpbmsgSW50ZXJ2YWwjYWJ1dHNFbmR9LCB7QGxpbmsgSW50ZXJ2YWwjZW5ndWxmc31cbiAqICogKipPdXRwdXQqKiBUbyBjb252ZXJ0IHRoZSBJbnRlcnZhbCBpbnRvIG90aGVyIHJlcHJlc2VudGF0aW9ucywgc2VlIHtAbGluayBJbnRlcnZhbCN0b1N0cmluZ30sIHtAbGluayBJbnRlcnZhbCN0b0lTT30sIHtAbGluayBJbnRlcnZhbCN0b0lTT0RhdGV9LCB7QGxpbmsgSW50ZXJ2YWwjdG9JU09UaW1lfSwge0BsaW5rIEludGVydmFsI3RvRm9ybWF0fSwgYW5kIHtAbGluayBJbnRlcnZhbCN0b0R1cmF0aW9ufS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW50ZXJ2YWwge1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbmZpZykge1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMucyA9IGNvbmZpZy5zdGFydDtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmUgPSBjb25maWcuZW5kO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuaW52YWxpZCA9IGNvbmZpZy5pbnZhbGlkIHx8IG51bGw7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5pc0x1eG9uSW50ZXJ2YWwgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBpbnZhbGlkIEludGVydmFsLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uIC0gc2ltcGxlIHN0cmluZyBvZiB3aHkgdGhpcyBJbnRlcnZhbCBpcyBpbnZhbGlkLiBTaG91bGQgbm90IGNvbnRhaW4gcGFyYW1ldGVycyBvciBhbnl0aGluZyBlbHNlIGRhdGEtZGVwZW5kZW50XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbZXhwbGFuYXRpb249bnVsbF0gLSBsb25nZXIgZXhwbGFuYXRpb24sIG1heSBpbmNsdWRlIHBhcmFtZXRlcnMgYW5kIG90aGVyIHVzZWZ1bCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb25cbiAgICogQHJldHVybiB7SW50ZXJ2YWx9XG4gICAqL1xuICBzdGF0aWMgaW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uID0gbnVsbCkge1xuICAgIGlmICghcmVhc29uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJuZWVkIHRvIHNwZWNpZnkgYSByZWFzb24gdGhlIEludGVydmFsIGlzIGludmFsaWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgaW52YWxpZCA9IHJlYXNvbiBpbnN0YW5jZW9mIEludmFsaWQgPyByZWFzb24gOiBuZXcgSW52YWxpZChyZWFzb24sIGV4cGxhbmF0aW9uKTtcblxuICAgIGlmIChTZXR0aW5ncy50aHJvd09uSW52YWxpZCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRJbnRlcnZhbEVycm9yKGludmFsaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV3IEludGVydmFsKHsgaW52YWxpZCB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIEludGVydmFsIGZyb20gYSBzdGFydCBEYXRlVGltZSBhbmQgYW4gZW5kIERhdGVUaW1lLiBJbmNsdXNpdmUgb2YgdGhlIHN0YXJ0IGJ1dCBub3QgdGhlIGVuZC5cbiAgICogQHBhcmFtIHtEYXRlVGltZXxEYXRlfE9iamVjdH0gc3RhcnRcbiAgICogQHBhcmFtIHtEYXRlVGltZXxEYXRlfE9iamVjdH0gZW5kXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgc3RhdGljIGZyb21EYXRlVGltZXMoc3RhcnQsIGVuZCkge1xuICAgIGNvbnN0IGJ1aWx0U3RhcnQgPSBmcmllbmRseURhdGVUaW1lKHN0YXJ0KSxcbiAgICAgIGJ1aWx0RW5kID0gZnJpZW5kbHlEYXRlVGltZShlbmQpO1xuXG4gICAgY29uc3QgdmFsaWRhdGVFcnJvciA9IHZhbGlkYXRlU3RhcnRFbmQoYnVpbHRTdGFydCwgYnVpbHRFbmQpO1xuXG4gICAgaWYgKHZhbGlkYXRlRXJyb3IgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG5ldyBJbnRlcnZhbCh7XG4gICAgICAgIHN0YXJ0OiBidWlsdFN0YXJ0LFxuICAgICAgICBlbmQ6IGJ1aWx0RW5kLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB2YWxpZGF0ZUVycm9yO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gSW50ZXJ2YWwgZnJvbSBhIHN0YXJ0IERhdGVUaW1lIGFuZCBhIER1cmF0aW9uIHRvIGV4dGVuZCB0by5cbiAgICogQHBhcmFtIHtEYXRlVGltZXxEYXRlfE9iamVjdH0gc3RhcnRcbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIHRoZSBsZW5ndGggb2YgdGhlIEludGVydmFsLlxuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICovXG4gIHN0YXRpYyBhZnRlcihzdGFydCwgZHVyYXRpb24pIHtcbiAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tRHVyYXRpb25MaWtlKGR1cmF0aW9uKSxcbiAgICAgIGR0ID0gZnJpZW5kbHlEYXRlVGltZShzdGFydCk7XG4gICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQsIGR0LnBsdXMoZHVyKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIEludGVydmFsIGZyb20gYW4gZW5kIERhdGVUaW1lIGFuZCBhIER1cmF0aW9uIHRvIGV4dGVuZCBiYWNrd2FyZHMgdG8uXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV8RGF0ZXxPYmplY3R9IGVuZFxuICAgKiBAcGFyYW0ge0R1cmF0aW9ufE9iamVjdHxudW1iZXJ9IGR1cmF0aW9uIC0gdGhlIGxlbmd0aCBvZiB0aGUgSW50ZXJ2YWwuXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgc3RhdGljIGJlZm9yZShlbmQsIGR1cmF0aW9uKSB7XG4gICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbiksXG4gICAgICBkdCA9IGZyaWVuZGx5RGF0ZVRpbWUoZW5kKTtcbiAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdC5taW51cyhkdXIpLCBkdCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIEludGVydmFsIGZyb20gYW4gSVNPIDg2MDEgc3RyaW5nLlxuICAgKiBBY2NlcHRzIGA8c3RhcnQ+LzxlbmQ+YCwgYDxzdGFydD4vPGR1cmF0aW9uPmAsIGFuZCBgPGR1cmF0aW9uPi88ZW5kPmAgZm9ybWF0cy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgSVNPIHN0cmluZyB0byBwYXJzZVxuICAgKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIC0gb3B0aW9ucyB0byBwYXNzIHtAbGluayBEYXRlVGltZSNmcm9tSVNPfSBhbmQgb3B0aW9uYWxseSB7QGxpbmsgRHVyYXRpb24jZnJvbUlTT31cbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lX2ludGVydmFsc1xuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICovXG4gIHN0YXRpYyBmcm9tSVNPKHRleHQsIG9wdHMpIHtcbiAgICBjb25zdCBbcywgZV0gPSAodGV4dCB8fCBcIlwiKS5zcGxpdChcIi9cIiwgMik7XG4gICAgaWYgKHMgJiYgZSkge1xuICAgICAgbGV0IHN0YXJ0LCBzdGFydElzVmFsaWQ7XG4gICAgICB0cnkge1xuICAgICAgICBzdGFydCA9IERhdGVUaW1lLmZyb21JU08ocywgb3B0cyk7XG4gICAgICAgIHN0YXJ0SXNWYWxpZCA9IHN0YXJ0LmlzVmFsaWQ7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHN0YXJ0SXNWYWxpZCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBsZXQgZW5kLCBlbmRJc1ZhbGlkO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZW5kID0gRGF0ZVRpbWUuZnJvbUlTTyhlLCBvcHRzKTtcbiAgICAgICAgZW5kSXNWYWxpZCA9IGVuZC5pc1ZhbGlkO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBlbmRJc1ZhbGlkID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGFydElzVmFsaWQgJiYgZW5kSXNWYWxpZCkge1xuICAgICAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzdGFydCwgZW5kKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXJ0SXNWYWxpZCkge1xuICAgICAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tSVNPKGUsIG9wdHMpO1xuICAgICAgICBpZiAoZHVyLmlzVmFsaWQpIHtcbiAgICAgICAgICByZXR1cm4gSW50ZXJ2YWwuYWZ0ZXIoc3RhcnQsIGR1cik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZW5kSXNWYWxpZCkge1xuICAgICAgICBjb25zdCBkdXIgPSBEdXJhdGlvbi5mcm9tSVNPKHMsIG9wdHMpO1xuICAgICAgICBpZiAoZHVyLmlzVmFsaWQpIHtcbiAgICAgICAgICByZXR1cm4gSW50ZXJ2YWwuYmVmb3JlKGVuZCwgZHVyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gSW50ZXJ2YWwuaW52YWxpZChcInVucGFyc2FibGVcIiwgYHRoZSBpbnB1dCBcIiR7dGV4dH1cIiBjYW4ndCBiZSBwYXJzZWQgYXMgSVNPIDg2MDFgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBvYmplY3QgaXMgYW4gSW50ZXJ2YWwuIFdvcmtzIGFjcm9zcyBjb250ZXh0IGJvdW5kYXJpZXNcbiAgICogQHBhcmFtIHtvYmplY3R9IG9cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBpc0ludGVydmFsKG8pIHtcbiAgICByZXR1cm4gKG8gJiYgby5pc0x1eG9uSW50ZXJ2YWwpIHx8IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSBJbnRlcnZhbFxuICAgKiBAdHlwZSB7RGF0ZVRpbWV9XG4gICAqL1xuICBnZXQgc3RhcnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMucyA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZW5kIG9mIHRoZSBJbnRlcnZhbFxuICAgKiBAdHlwZSB7RGF0ZVRpbWV9XG4gICAqL1xuICBnZXQgZW5kKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLmUgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGlzIEludGVydmFsJ3MgZW5kIGlzIGF0IGxlYXN0IGl0cyBzdGFydCwgbWVhbmluZyB0aGF0IHRoZSBJbnRlcnZhbCBpc24ndCAnYmFja3dhcmRzJy5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkUmVhc29uID09PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gZXJyb3IgY29kZSBpZiB0aGlzIEludGVydmFsIGlzIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIEludGVydmFsIGlzIHZhbGlkXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgaW52YWxpZFJlYXNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBleHBsYW5hdGlvbiBvZiB3aHkgdGhpcyBJbnRlcnZhbCBiZWNhbWUgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgSW50ZXJ2YWwgaXMgdmFsaWRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBpbnZhbGlkRXhwbGFuYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBJbnRlcnZhbCBpbiB0aGUgc3BlY2lmaWVkIHVuaXQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gdGhlIHVuaXQgKHN1Y2ggYXMgJ2hvdXJzJyBvciAnZGF5cycpIHRvIHJldHVybiB0aGUgbGVuZ3RoIGluLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBsZW5ndGgodW5pdCA9IFwibWlsbGlzZWNvbmRzXCIpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy50b0R1cmF0aW9uKC4uLlt1bml0XSkuZ2V0KHVuaXQpIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNvdW50IG9mIG1pbnV0ZXMsIGhvdXJzLCBkYXlzLCBtb250aHMsIG9yIHllYXJzIGluY2x1ZGVkIGluIHRoZSBJbnRlcnZhbCwgZXZlbiBpbiBwYXJ0LlxuICAgKiBVbmxpa2Uge0BsaW5rIEludGVydmFsI2xlbmd0aH0gdGhpcyBjb3VudHMgc2VjdGlvbnMgb2YgdGhlIGNhbGVuZGFyLCBub3QgcGVyaW9kcyBvZiB0aW1lLCBlLmcuIHNwZWNpZnlpbmcgJ2RheSdcbiAgICogYXNrcyAnd2hhdCBkYXRlcyBhcmUgaW5jbHVkZWQgaW4gdGhpcyBpbnRlcnZhbD8nLCBub3QgJ2hvdyBtYW55IGRheXMgbG9uZyBpcyB0aGlzIGludGVydmFsPydcbiAgICogQHBhcmFtIHtzdHJpbmd9IFt1bml0PSdtaWxsaXNlY29uZHMnXSAtIHRoZSB1bml0IG9mIHRpbWUgdG8gY291bnQuXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIGNvdW50KHVuaXQgPSBcIm1pbGxpc2Vjb25kc1wiKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBOYU47XG4gICAgY29uc3Qgc3RhcnQgPSB0aGlzLnN0YXJ0LnN0YXJ0T2YodW5pdCksXG4gICAgICBlbmQgPSB0aGlzLmVuZC5zdGFydE9mKHVuaXQpO1xuICAgIHJldHVybiBNYXRoLmZsb29yKGVuZC5kaWZmKHN0YXJ0LCB1bml0KS5nZXQodW5pdCkpICsgMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIHN0YXJ0IGFuZCBlbmQgYXJlIGJvdGggaW4gdGhlIHNhbWUgdW5pdCBvZiB0aW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gdGhlIHVuaXQgb2YgdGltZSB0byBjaGVjayBzYW1lbmVzcyBvblxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaGFzU2FtZSh1bml0KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuaXNFbXB0eSgpIHx8IHRoaXMuZS5taW51cygxKS5oYXNTYW1lKHRoaXMucywgdW5pdCkgOiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsIGhhcyB0aGUgc2FtZSBzdGFydCBhbmQgZW5kIERhdGVUaW1lcy5cbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGlzRW1wdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMucy52YWx1ZU9mKCkgPT09IHRoaXMuZS52YWx1ZU9mKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIHN0YXJ0IGlzIGFmdGVyIHRoZSBzcGVjaWZpZWQgRGF0ZVRpbWUuXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IGRhdGVUaW1lXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBpc0FmdGVyKGRhdGVUaW1lKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5zID4gZGF0ZVRpbWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCdzIGVuZCBpcyBiZWZvcmUgdGhlIHNwZWNpZmllZCBEYXRlVGltZS5cbiAgICogQHBhcmFtIHtEYXRlVGltZX0gZGF0ZVRpbWVcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGlzQmVmb3JlKGRhdGVUaW1lKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5lIDw9IGRhdGVUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoaXMgSW50ZXJ2YWwgY29udGFpbnMgdGhlIHNwZWNpZmllZCBEYXRlVGltZS5cbiAgICogQHBhcmFtIHtEYXRlVGltZX0gZGF0ZVRpbWVcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGNvbnRhaW5zKGRhdGVUaW1lKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5zIDw9IGRhdGVUaW1lICYmIHRoaXMuZSA+IGRhdGVUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0c1wiIHRoZSBzdGFydCBhbmQvb3IgZW5kIGRhdGVzLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgSW50ZXJ2YWwuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSB2YWx1ZXMgLSB0aGUgdmFsdWVzIHRvIHNldFxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfSB2YWx1ZXMuc3RhcnQgLSB0aGUgc3RhcnRpbmcgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtEYXRlVGltZX0gdmFsdWVzLmVuZCAtIHRoZSBlbmRpbmcgRGF0ZVRpbWVcbiAgICogQHJldHVybiB7SW50ZXJ2YWx9XG4gICAqL1xuICBzZXQoeyBzdGFydCwgZW5kIH0gPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzdGFydCB8fCB0aGlzLnMsIGVuZCB8fCB0aGlzLmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwbGl0IHRoaXMgSW50ZXJ2YWwgYXQgZWFjaCBvZiB0aGUgc3BlY2lmaWVkIERhdGVUaW1lc1xuICAgKiBAcGFyYW0gey4uLkRhdGVUaW1lfSBkYXRlVGltZXMgLSB0aGUgdW5pdCBvZiB0aW1lIHRvIGNvdW50LlxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHNwbGl0QXQoLi4uZGF0ZVRpbWVzKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBbXTtcbiAgICBjb25zdCBzb3J0ZWQgPSBkYXRlVGltZXNcbiAgICAgICAgLm1hcChmcmllbmRseURhdGVUaW1lKVxuICAgICAgICAuZmlsdGVyKChkKSA9PiB0aGlzLmNvbnRhaW5zKGQpKVxuICAgICAgICAuc29ydCgpLFxuICAgICAgcmVzdWx0cyA9IFtdO1xuICAgIGxldCB7IHMgfSA9IHRoaXMsXG4gICAgICBpID0gMDtcblxuICAgIHdoaWxlIChzIDwgdGhpcy5lKSB7XG4gICAgICBjb25zdCBhZGRlZCA9IHNvcnRlZFtpXSB8fCB0aGlzLmUsXG4gICAgICAgIG5leHQgPSArYWRkZWQgPiArdGhpcy5lID8gdGhpcy5lIDogYWRkZWQ7XG4gICAgICByZXN1bHRzLnB1c2goSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzLCBuZXh0KSk7XG4gICAgICBzID0gbmV4dDtcbiAgICAgIGkgKz0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdCB0aGlzIEludGVydmFsIGludG8gc21hbGxlciBJbnRlcnZhbHMsIGVhY2ggb2YgdGhlIHNwZWNpZmllZCBsZW5ndGguXG4gICAqIExlZnQgb3ZlciB0aW1lIGlzIGdyb3VwZWQgaW50byBhIHNtYWxsZXIgaW50ZXJ2YWxcbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBsZW5ndGggb2YgZWFjaCByZXN1bHRpbmcgaW50ZXJ2YWwuXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3BsaXRCeShkdXJhdGlvbikge1xuICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pO1xuXG4gICAgaWYgKCF0aGlzLmlzVmFsaWQgfHwgIWR1ci5pc1ZhbGlkIHx8IGR1ci5hcyhcIm1pbGxpc2Vjb25kc1wiKSA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGxldCB7IHMgfSA9IHRoaXMsXG4gICAgICBpZHggPSAxLFxuICAgICAgbmV4dDtcblxuICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcbiAgICB3aGlsZSAocyA8IHRoaXMuZSkge1xuICAgICAgY29uc3QgYWRkZWQgPSB0aGlzLnN0YXJ0LnBsdXMoZHVyLm1hcFVuaXRzKCh4KSA9PiB4ICogaWR4KSk7XG4gICAgICBuZXh0ID0gK2FkZGVkID4gK3RoaXMuZSA/IHRoaXMuZSA6IGFkZGVkO1xuICAgICAgcmVzdWx0cy5wdXNoKEludGVydmFsLmZyb21EYXRlVGltZXMocywgbmV4dCkpO1xuICAgICAgcyA9IG5leHQ7XG4gICAgICBpZHggKz0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdCB0aGlzIEludGVydmFsIGludG8gdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc21hbGxlciBpbnRlcnZhbHMuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXJPZlBhcnRzIC0gVGhlIG51bWJlciBvZiBJbnRlcnZhbHMgdG8gZGl2aWRlIHRoZSBJbnRlcnZhbCBpbnRvLlxuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIGRpdmlkZUVxdWFsbHkobnVtYmVyT2ZQYXJ0cykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gW107XG4gICAgcmV0dXJuIHRoaXMuc3BsaXRCeSh0aGlzLmxlbmd0aCgpIC8gbnVtYmVyT2ZQYXJ0cykuc2xpY2UoMCwgbnVtYmVyT2ZQYXJ0cyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBvdmVybGFwcyB3aXRoIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWxcbiAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIG92ZXJsYXBzKG90aGVyKSB7XG4gICAgcmV0dXJuIHRoaXMuZSA+IG90aGVyLnMgJiYgdGhpcy5zIDwgb3RoZXIuZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsJ3MgZW5kIGlzIGFkamFjZW50IHRvIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwncyBzdGFydC5cbiAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGFidXRzU3RhcnQob3RoZXIpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiArdGhpcy5lID09PSArb3RoZXIucztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIEludGVydmFsJ3Mgc3RhcnQgaXMgYWRqYWNlbnQgdG8gdGhlIHNwZWNpZmllZCBJbnRlcnZhbCdzIGVuZC5cbiAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGFidXRzRW5kKG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gK290aGVyLmUgPT09ICt0aGlzLnM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBlbmd1bGZzIHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWwuXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBlbmd1bGZzKG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5zIDw9IG90aGVyLnMgJiYgdGhpcy5lID49IG90aGVyLmU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBJbnRlcnZhbCBoYXMgdGhlIHNhbWUgc3RhcnQgYW5kIGVuZCBhcyB0aGUgc3BlY2lmaWVkIEludGVydmFsLlxuICAgKiBAcGFyYW0ge0ludGVydmFsfSBvdGhlclxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZXF1YWxzKG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQgfHwgIW90aGVyLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zLmVxdWFscyhvdGhlci5zKSAmJiB0aGlzLmUuZXF1YWxzKG90aGVyLmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBJbnRlcnZhbCByZXByZXNlbnRpbmcgdGhlIGludGVyc2VjdGlvbiBvZiB0aGlzIEludGVydmFsIGFuZCB0aGUgc3BlY2lmaWVkIEludGVydmFsLlxuICAgKiBTcGVjaWZpY2FsbHksIHRoZSByZXN1bHRpbmcgSW50ZXJ2YWwgaGFzIHRoZSBtYXhpbXVtIHN0YXJ0IHRpbWUgYW5kIHRoZSBtaW5pbXVtIGVuZCB0aW1lIG9mIHRoZSB0d28gSW50ZXJ2YWxzLlxuICAgKiBSZXR1cm5zIG51bGwgaWYgdGhlIGludGVyc2VjdGlvbiBpcyBlbXB0eSwgbWVhbmluZywgdGhlIGludGVydmFscyBkb24ndCBpbnRlcnNlY3QuXG4gICAqIEBwYXJhbSB7SW50ZXJ2YWx9IG90aGVyXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKi9cbiAgaW50ZXJzZWN0aW9uKG90aGVyKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuICAgIGNvbnN0IHMgPSB0aGlzLnMgPiBvdGhlci5zID8gdGhpcy5zIDogb3RoZXIucyxcbiAgICAgIGUgPSB0aGlzLmUgPCBvdGhlci5lID8gdGhpcy5lIDogb3RoZXIuZTtcblxuICAgIGlmIChzID49IGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhzLCBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIEludGVydmFsIHJlcHJlc2VudGluZyB0aGUgdW5pb24gb2YgdGhpcyBJbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBJbnRlcnZhbC5cbiAgICogU3BlY2lmaWNhbGx5LCB0aGUgcmVzdWx0aW5nIEludGVydmFsIGhhcyB0aGUgbWluaW11bSBzdGFydCB0aW1lIGFuZCB0aGUgbWF4aW11bSBlbmQgdGltZSBvZiB0aGUgdHdvIEludGVydmFscy5cbiAgICogQHBhcmFtIHtJbnRlcnZhbH0gb3RoZXJcbiAgICogQHJldHVybiB7SW50ZXJ2YWx9XG4gICAqL1xuICB1bmlvbihvdGhlcikge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICBjb25zdCBzID0gdGhpcy5zIDwgb3RoZXIucyA/IHRoaXMucyA6IG90aGVyLnMsXG4gICAgICBlID0gdGhpcy5lID4gb3RoZXIuZSA/IHRoaXMuZSA6IG90aGVyLmU7XG4gICAgcmV0dXJuIEludGVydmFsLmZyb21EYXRlVGltZXMocywgZSk7XG4gIH1cblxuICAvKipcbiAgICogTWVyZ2UgYW4gYXJyYXkgb2YgSW50ZXJ2YWxzIGludG8gYSBlcXVpdmFsZW50IG1pbmltYWwgc2V0IG9mIEludGVydmFscy5cbiAgICogQ29tYmluZXMgb3ZlcmxhcHBpbmcgYW5kIGFkamFjZW50IEludGVydmFscy5cbiAgICogQHBhcmFtIHtBcnJheX0gaW50ZXJ2YWxzXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3RhdGljIG1lcmdlKGludGVydmFscykge1xuICAgIGNvbnN0IFtmb3VuZCwgZmluYWxdID0gaW50ZXJ2YWxzXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5zIC0gYi5zKVxuICAgICAgLnJlZHVjZShcbiAgICAgICAgKFtzb2ZhciwgY3VycmVudF0sIGl0ZW0pID0+IHtcbiAgICAgICAgICBpZiAoIWN1cnJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBbc29mYXIsIGl0ZW1dO1xuICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudC5vdmVybGFwcyhpdGVtKSB8fCBjdXJyZW50LmFidXRzU3RhcnQoaXRlbSkpIHtcbiAgICAgICAgICAgIHJldHVybiBbc29mYXIsIGN1cnJlbnQudW5pb24oaXRlbSldO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gW3NvZmFyLmNvbmNhdChbY3VycmVudF0pLCBpdGVtXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtbXSwgbnVsbF1cbiAgICAgICk7XG4gICAgaWYgKGZpbmFsKSB7XG4gICAgICBmb3VuZC5wdXNoKGZpbmFsKTtcbiAgICB9XG4gICAgcmV0dXJuIGZvdW5kO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBhcnJheSBvZiBJbnRlcnZhbHMgcmVwcmVzZW50aW5nIHRoZSBzcGFucyBvZiB0aW1lIHRoYXQgb25seSBhcHBlYXIgaW4gb25lIG9mIHRoZSBzcGVjaWZpZWQgSW50ZXJ2YWxzLlxuICAgKiBAcGFyYW0ge0FycmF5fSBpbnRlcnZhbHNcbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBzdGF0aWMgeG9yKGludGVydmFscykge1xuICAgIGxldCBzdGFydCA9IG51bGwsXG4gICAgICBjdXJyZW50Q291bnQgPSAwO1xuICAgIGNvbnN0IHJlc3VsdHMgPSBbXSxcbiAgICAgIGVuZHMgPSBpbnRlcnZhbHMubWFwKChpKSA9PiBbXG4gICAgICAgIHsgdGltZTogaS5zLCB0eXBlOiBcInNcIiB9LFxuICAgICAgICB7IHRpbWU6IGkuZSwgdHlwZTogXCJlXCIgfSxcbiAgICAgIF0pLFxuICAgICAgZmxhdHRlbmVkID0gQXJyYXkucHJvdG90eXBlLmNvbmNhdCguLi5lbmRzKSxcbiAgICAgIGFyciA9IGZsYXR0ZW5lZC5zb3J0KChhLCBiKSA9PiBhLnRpbWUgLSBiLnRpbWUpO1xuXG4gICAgZm9yIChjb25zdCBpIG9mIGFycikge1xuICAgICAgY3VycmVudENvdW50ICs9IGkudHlwZSA9PT0gXCJzXCIgPyAxIDogLTE7XG5cbiAgICAgIGlmIChjdXJyZW50Q291bnQgPT09IDEpIHtcbiAgICAgICAgc3RhcnQgPSBpLnRpbWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc3RhcnQgJiYgK3N0YXJ0ICE9PSAraS50aW1lKSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKEludGVydmFsLmZyb21EYXRlVGltZXMoc3RhcnQsIGkudGltZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhcnQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBJbnRlcnZhbC5tZXJnZShyZXN1bHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgcmVwcmVzZW50aW5nIHRoZSBzcGFuIG9mIHRpbWUgaW4gdGhpcyBJbnRlcnZhbCB0aGF0IGRvZXNuJ3Qgb3ZlcmxhcCB3aXRoIGFueSBvZiB0aGUgc3BlY2lmaWVkIEludGVydmFscy5cbiAgICogQHBhcmFtIHsuLi5JbnRlcnZhbH0gaW50ZXJ2YWxzXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgZGlmZmVyZW5jZSguLi5pbnRlcnZhbHMpIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwueG9yKFt0aGlzXS5jb25jYXQoaW50ZXJ2YWxzKSlcbiAgICAgIC5tYXAoKGkpID0+IHRoaXMuaW50ZXJzZWN0aW9uKGkpKVxuICAgICAgLmZpbHRlcigoaSkgPT4gaSAmJiAhaS5pc0VtcHR5KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBJbnRlcnZhbCBhcHByb3ByaWF0ZSBmb3IgZGVidWdnaW5nLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b1N0cmluZygpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQ7XG4gICAgcmV0dXJuIGBbJHt0aGlzLnMudG9JU08oKX0gXHUyMDEzICR7dGhpcy5lLnRvSVNPKCl9KWA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBJU08gODYwMS1jb21wbGlhbnQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgSW50ZXJ2YWwuXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBUaGUgc2FtZSBvcHRpb25zIGFzIHtAbGluayBEYXRlVGltZSN0b0lTT31cbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU08ob3B0cykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gSU5WQUxJRDtcbiAgICByZXR1cm4gYCR7dGhpcy5zLnRvSVNPKG9wdHMpfS8ke3RoaXMuZS50b0lTTyhvcHRzKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBkYXRlIG9mIHRoaXMgSW50ZXJ2YWwuXG4gICAqIFRoZSB0aW1lIGNvbXBvbmVudHMgYXJlIGlnbm9yZWQuXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHNcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU09EYXRlKCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gSU5WQUxJRDtcbiAgICByZXR1cm4gYCR7dGhpcy5zLnRvSVNPRGF0ZSgpfS8ke3RoaXMuZS50b0lTT0RhdGUoKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aW1lIG9mIHRoaXMgSW50ZXJ2YWwuXG4gICAqIFRoZSBkYXRlIGNvbXBvbmVudHMgYXJlIGlnbm9yZWQuXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBUaGUgc2FtZSBvcHRpb25zIGFzIHtAbGluayBEYXRlVGltZSN0b0lTT31cbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU09UaW1lKG9wdHMpIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQ7XG4gICAgcmV0dXJuIGAke3RoaXMucy50b0lTT1RpbWUob3B0cyl9LyR7dGhpcy5lLnRvSVNPVGltZShvcHRzKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBJbnRlcnZhbCBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgZm9ybWF0IHN0cmluZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGVGb3JtYXQgLSB0aGUgZm9ybWF0IHN0cmluZy4gVGhpcyBzdHJpbmcgZm9ybWF0cyB0aGUgc3RhcnQgYW5kIGVuZCB0aW1lLiBTZWUge0BsaW5rIERhdGVUaW1lI3RvRm9ybWF0fSBmb3IgZGV0YWlscy5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5zZXBhcmF0b3IgPSAgJyBcdTIwMTMgJ10gLSBhIHNlcGFyYXRvciB0byBwbGFjZSBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kIHJlcHJlc2VudGF0aW9uc1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0Zvcm1hdChkYXRlRm9ybWF0LCB7IHNlcGFyYXRvciA9IFwiIFx1MjAxMyBcIiB9ID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIElOVkFMSUQ7XG4gICAgcmV0dXJuIGAke3RoaXMucy50b0Zvcm1hdChkYXRlRm9ybWF0KX0ke3NlcGFyYXRvcn0ke3RoaXMuZS50b0Zvcm1hdChkYXRlRm9ybWF0KX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIER1cmF0aW9uIHJlcHJlc2VudGluZyB0aGUgdGltZSBzcGFubmVkIGJ5IHRoaXMgaW50ZXJ2YWwuXG4gICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBbdW5pdD1bJ21pbGxpc2Vjb25kcyddXSAtIHRoZSB1bml0IG9yIHVuaXRzIChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byBpbmNsdWRlIGluIHRoZSBkdXJhdGlvbi5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiB0aGUgRHVyYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlXG4gICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oKS50b09iamVjdCgpIC8vPT4geyBtaWxsaXNlY29uZHM6IDg4NDg5MjU3IH1cbiAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikudG9EdXJhdGlvbignZGF5cycpLnRvT2JqZWN0KCkgLy89PiB7IGRheXM6IDEuMDI0MTgxMjE1Mjc3Nzc3OCB9XG4gICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oWydob3VycycsICdtaW51dGVzJ10pLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAyNCwgbWludXRlczogMzQuODIwOTUgfVxuICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS50b0R1cmF0aW9uKFsnaG91cnMnLCAnbWludXRlcycsICdzZWNvbmRzJ10pLnRvT2JqZWN0KCkgLy89PiB7IGhvdXJzOiAyNCwgbWludXRlczogMzQsIHNlY29uZHM6IDQ5LjI1NyB9XG4gICAqIEBleGFtcGxlIEludGVydmFsLmZyb21EYXRlVGltZXMoZHQxLCBkdDIpLnRvRHVyYXRpb24oJ3NlY29uZHMnKS50b09iamVjdCgpIC8vPT4geyBzZWNvbmRzOiA4ODQ4OS4yNTcgfVxuICAgKiBAcmV0dXJuIHtEdXJhdGlvbn1cbiAgICovXG4gIHRvRHVyYXRpb24odW5pdCwgb3B0cykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uaW52YWxpZCh0aGlzLmludmFsaWRSZWFzb24pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lLmRpZmYodGhpcy5zLCB1bml0LCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gbWFwRm4gb24gdGhlIGludGVydmFsIHN0YXJ0IGFuZCBlbmQsIHJldHVybmluZyBhIG5ldyBJbnRlcnZhbCBmcm9tIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWVzXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG1hcEZuXG4gICAqIEByZXR1cm4ge0ludGVydmFsfVxuICAgKiBAZXhhbXBsZSBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKGR0MSwgZHQyKS5tYXBFbmRwb2ludHMoZW5kcG9pbnQgPT4gZW5kcG9pbnQudG9VVEMoKSlcbiAgICogQGV4YW1wbGUgSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyhkdDEsIGR0MikubWFwRW5kcG9pbnRzKGVuZHBvaW50ID0+IGVuZHBvaW50LnBsdXMoeyBob3VyczogMiB9KSlcbiAgICovXG4gIG1hcEVuZHBvaW50cyhtYXBGbikge1xuICAgIHJldHVybiBJbnRlcnZhbC5mcm9tRGF0ZVRpbWVzKG1hcEZuKHRoaXMucyksIG1hcEZuKHRoaXMuZSkpO1xuICB9XG59XG4iLCAiaW1wb3J0IERhdGVUaW1lIGZyb20gXCIuL2RhdGV0aW1lLmpzXCI7XG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3MuanNcIjtcbmltcG9ydCBMb2NhbGUgZnJvbSBcIi4vaW1wbC9sb2NhbGUuanNcIjtcbmltcG9ydCBJQU5BWm9uZSBmcm9tIFwiLi96b25lcy9JQU5BWm9uZS5qc1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplWm9uZSB9IGZyb20gXCIuL2ltcGwvem9uZVV0aWwuanNcIjtcblxuaW1wb3J0IHsgaGFzUmVsYXRpdmUgfSBmcm9tIFwiLi9pbXBsL3V0aWwuanNcIjtcblxuLyoqXG4gKiBUaGUgSW5mbyBjbGFzcyBjb250YWlucyBzdGF0aWMgbWV0aG9kcyBmb3IgcmV0cmlldmluZyBnZW5lcmFsIHRpbWUgYW5kIGRhdGUgcmVsYXRlZCBkYXRhLiBGb3IgZXhhbXBsZSwgaXQgaGFzIG1ldGhvZHMgZm9yIGZpbmRpbmcgb3V0IGlmIGEgdGltZSB6b25lIGhhcyBhIERTVCwgZm9yIGxpc3RpbmcgdGhlIG1vbnRocyBpbiBhbnkgc3VwcG9ydGVkIGxvY2FsZSwgYW5kIGZvciBkaXNjb3ZlcmluZyB3aGljaCBvZiBMdXhvbiBmZWF0dXJlcyBhcmUgYXZhaWxhYmxlIGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50LlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbmZvIHtcbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgem9uZSBjb250YWlucyBhIERTVC5cbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW3pvbmU9J2xvY2FsJ10gLSBab25lIHRvIGNoZWNrLiBEZWZhdWx0cyB0byB0aGUgZW52aXJvbm1lbnQncyBsb2NhbCB6b25lLlxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgc3RhdGljIGhhc0RTVCh6b25lID0gU2V0dGluZ3MuZGVmYXVsdFpvbmUpIHtcbiAgICBjb25zdCBwcm90byA9IERhdGVUaW1lLm5vdygpLnNldFpvbmUoem9uZSkuc2V0KHsgbW9udGg6IDEyIH0pO1xuXG4gICAgcmV0dXJuICF6b25lLmlzVW5pdmVyc2FsICYmIHByb3RvLm9mZnNldCAhPT0gcHJvdG8uc2V0KHsgbW9udGg6IDYgfSkub2Zmc2V0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgem9uZSBpcyBhIHZhbGlkIElBTkEgc3BlY2lmaWVyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gem9uZSAtIFpvbmUgdG8gY2hlY2tcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIHN0YXRpYyBpc1ZhbGlkSUFOQVpvbmUoem9uZSkge1xuICAgIHJldHVybiBJQU5BWm9uZS5pc1ZhbGlkU3BlY2lmaWVyKHpvbmUpICYmIElBTkFab25lLmlzVmFsaWRab25lKHpvbmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBpbnB1dCBpbnRvIGEge0BsaW5rIFpvbmV9IGluc3RhbmNlLlxuICAgKlxuICAgKiAqIElmIGBpbnB1dGAgaXMgYWxyZWFkeSBhIFpvbmUgaW5zdGFuY2UsIGl0IGlzIHJldHVybmVkIHVuY2hhbmdlZC5cbiAgICogKiBJZiBgaW5wdXRgIGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSB2YWxpZCB0aW1lIHpvbmUgbmFtZSwgYSBab25lIGluc3RhbmNlXG4gICAqICAgd2l0aCB0aGF0IG5hbWUgaXMgcmV0dXJuZWQuXG4gICAqICogSWYgYGlucHV0YCBpcyBhIHN0cmluZyB0aGF0IGRvZXNuJ3QgcmVmZXIgdG8gYSBrbm93biB0aW1lIHpvbmUsIGEgWm9uZVxuICAgKiAgIGluc3RhbmNlIHdpdGgge0BsaW5rIFpvbmUjaXNWYWxpZH0gPT0gZmFsc2UgaXMgcmV0dXJuZWQuXG4gICAqICogSWYgYGlucHV0IGlzIGEgbnVtYmVyLCBhIFpvbmUgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGZpeGVkIG9mZnNldFxuICAgKiAgIGluIG1pbnV0ZXMgaXMgcmV0dXJuZWQuXG4gICAqICogSWYgYGlucHV0YCBpcyBgbnVsbGAgb3IgYHVuZGVmaW5lZGAsIHRoZSBkZWZhdWx0IHpvbmUgaXMgcmV0dXJuZWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV8bnVtYmVyfSBbaW5wdXRdIC0gdGhlIHZhbHVlIHRvIGJlIGNvbnZlcnRlZFxuICAgKiBAcmV0dXJuIHtab25lfVxuICAgKi9cbiAgc3RhdGljIG5vcm1hbGl6ZVpvbmUoaW5wdXQpIHtcbiAgICByZXR1cm4gbm9ybWFsaXplWm9uZShpbnB1dCwgU2V0dGluZ3MuZGVmYXVsdFpvbmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBhcnJheSBvZiBzdGFuZGFsb25lIG1vbnRoIG5hbWVzLlxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoPSdsb25nJ10gLSB0aGUgbGVuZ3RoIG9mIHRoZSBtb250aCByZXByZXNlbnRhdGlvbiwgc3VjaCBhcyBcIm51bWVyaWNcIiwgXCIyLWRpZ2l0XCIsIFwibmFycm93XCIsIFwic2hvcnRcIiwgXCJsb25nXCJcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGVdIC0gdGhlIGxvY2FsZSBjb2RlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5udW1iZXJpbmdTeXN0ZW09bnVsbF0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm91dHB1dENhbGVuZGFyPSdncmVnb3J5J10gLSB0aGUgY2FsZW5kYXJcbiAgICogQGV4YW1wbGUgSW5mby5tb250aHMoKVswXSAvLz0+ICdKYW51YXJ5J1xuICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnc2hvcnQnKVswXSAvLz0+ICdKYW4nXG4gICAqIEBleGFtcGxlIEluZm8ubW9udGhzKCdudW1lcmljJylbMF0gLy89PiAnMSdcbiAgICogQGV4YW1wbGUgSW5mby5tb250aHMoJ3Nob3J0JywgeyBsb2NhbGU6ICdmci1DQScgfSApWzBdIC8vPT4gJ2phbnYuJ1xuICAgKiBAZXhhbXBsZSBJbmZvLm1vbnRocygnbnVtZXJpYycsIHsgbG9jYWxlOiAnYXInIH0pWzBdIC8vPT4gJ1x1MDY2MSdcbiAgICogQGV4YW1wbGUgSW5mby5tb250aHMoJ2xvbmcnLCB7IG91dHB1dENhbGVuZGFyOiAnaXNsYW1pYycgfSlbMF0gLy89PiAnUmFiaVx1MDJCQiBJJ1xuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHN0YXRpYyBtb250aHMoXG4gICAgbGVuZ3RoID0gXCJsb25nXCIsXG4gICAgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsLCBsb2NPYmogPSBudWxsLCBvdXRwdXRDYWxlbmRhciA9IFwiZ3JlZ29yeVwiIH0gPSB7fVxuICApIHtcbiAgICByZXR1cm4gKGxvY09iaiB8fCBMb2NhbGUuY3JlYXRlKGxvY2FsZSwgbnVtYmVyaW5nU3lzdGVtLCBvdXRwdXRDYWxlbmRhcikpLm1vbnRocyhsZW5ndGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBhcnJheSBvZiBmb3JtYXQgbW9udGggbmFtZXMuXG4gICAqIEZvcm1hdCBtb250aHMgZGlmZmVyIGZyb20gc3RhbmRhbG9uZSBtb250aHMgaW4gdGhhdCB0aGV5J3JlIG1lYW50IHRvIGFwcGVhciBuZXh0IHRvIHRoZSBkYXkgb2YgdGhlIG1vbnRoLiBJbiBzb21lIGxhbmd1YWdlcywgdGhhdFxuICAgKiBjaGFuZ2VzIHRoZSBzdHJpbmcuXG4gICAqIFNlZSB7QGxpbmsgSW5mbyNtb250aHN9XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoPSdsb25nJ10gLSB0aGUgbGVuZ3RoIG9mIHRoZSBtb250aCByZXByZXNlbnRhdGlvbiwgc3VjaCBhcyBcIm51bWVyaWNcIiwgXCIyLWRpZ2l0XCIsIFwibmFycm93XCIsIFwic2hvcnRcIiwgXCJsb25nXCJcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGVdIC0gdGhlIGxvY2FsZSBjb2RlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5udW1iZXJpbmdTeXN0ZW09bnVsbF0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jT2JqPW51bGxdIC0gYW4gZXhpc3RpbmcgbG9jYWxlIG9iamVjdCB0byB1c2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLm91dHB1dENhbGVuZGFyPSdncmVnb3J5J10gLSB0aGUgY2FsZW5kYXJcbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBzdGF0aWMgbW9udGhzRm9ybWF0KFxuICAgIGxlbmd0aCA9IFwibG9uZ1wiLFxuICAgIHsgbG9jYWxlID0gbnVsbCwgbnVtYmVyaW5nU3lzdGVtID0gbnVsbCwgbG9jT2JqID0gbnVsbCwgb3V0cHV0Q2FsZW5kYXIgPSBcImdyZWdvcnlcIiB9ID0ge31cbiAgKSB7XG4gICAgcmV0dXJuIChsb2NPYmogfHwgTG9jYWxlLmNyZWF0ZShsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIpKS5tb250aHMobGVuZ3RoLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gYXJyYXkgb2Ygc3RhbmRhbG9uZSB3ZWVrIG5hbWVzLlxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGVUaW1lRm9ybWF0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoPSdsb25nJ10gLSB0aGUgbGVuZ3RoIG9mIHRoZSB3ZWVrZGF5IHJlcHJlc2VudGF0aW9uLCBzdWNoIGFzIFwibmFycm93XCIsIFwic2hvcnRcIiwgXCJsb25nXCIuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtPW51bGxdIC0gdGhlIG51bWJlcmluZyBzeXN0ZW1cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY09iaj1udWxsXSAtIGFuIGV4aXN0aW5nIGxvY2FsZSBvYmplY3QgdG8gdXNlXG4gICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoKVswXSAvLz0+ICdNb25kYXknXG4gICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoJ3Nob3J0JylbMF0gLy89PiAnTW9uJ1xuICAgKiBAZXhhbXBsZSBJbmZvLndlZWtkYXlzKCdzaG9ydCcsIHsgbG9jYWxlOiAnZnItQ0EnIH0pWzBdIC8vPT4gJ2x1bi4nXG4gICAqIEBleGFtcGxlIEluZm8ud2Vla2RheXMoJ3Nob3J0JywgeyBsb2NhbGU6ICdhcicgfSlbMF0gLy89PiAnXHUwNjI3XHUwNjQ0XHUwNjI3XHUwNjJCXHUwNjQ2XHUwNjRBXHUwNjQ2J1xuICAgKiBAcmV0dXJuIHtBcnJheX1cbiAgICovXG4gIHN0YXRpYyB3ZWVrZGF5cyhsZW5ndGggPSBcImxvbmdcIiwgeyBsb2NhbGUgPSBudWxsLCBudW1iZXJpbmdTeXN0ZW0gPSBudWxsLCBsb2NPYmogPSBudWxsIH0gPSB7fSkge1xuICAgIHJldHVybiAobG9jT2JqIHx8IExvY2FsZS5jcmVhdGUobG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG51bGwpKS53ZWVrZGF5cyhsZW5ndGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBhcnJheSBvZiBmb3JtYXQgd2VlayBuYW1lcy5cbiAgICogRm9ybWF0IHdlZWtkYXlzIGRpZmZlciBmcm9tIHN0YW5kYWxvbmUgd2Vla2RheXMgaW4gdGhhdCB0aGV5J3JlIG1lYW50IHRvIGFwcGVhciBuZXh0IHRvIG1vcmUgZGF0ZSBpbmZvcm1hdGlvbi4gSW4gc29tZSBsYW5ndWFnZXMsIHRoYXRcbiAgICogY2hhbmdlcyB0aGUgc3RyaW5nLlxuICAgKiBTZWUge0BsaW5rIEluZm8jd2Vla2RheXN9XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbGVuZ3RoPSdsb25nJ10gLSB0aGUgbGVuZ3RoIG9mIHRoZSBtb250aCByZXByZXNlbnRhdGlvbiwgc3VjaCBhcyBcIm5hcnJvd1wiLCBcInNob3J0XCIsIFwibG9uZ1wiLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT1udWxsXSAtIHRoZSBsb2NhbGUgY29kZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubnVtYmVyaW5nU3lzdGVtPW51bGxdIC0gdGhlIG51bWJlcmluZyBzeXN0ZW1cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY09iaj1udWxsXSAtIGFuIGV4aXN0aW5nIGxvY2FsZSBvYmplY3QgdG8gdXNlXG4gICAqIEByZXR1cm4ge0FycmF5fVxuICAgKi9cbiAgc3RhdGljIHdlZWtkYXlzRm9ybWF0KFxuICAgIGxlbmd0aCA9IFwibG9uZ1wiLFxuICAgIHsgbG9jYWxlID0gbnVsbCwgbnVtYmVyaW5nU3lzdGVtID0gbnVsbCwgbG9jT2JqID0gbnVsbCB9ID0ge31cbiAgKSB7XG4gICAgcmV0dXJuIChsb2NPYmogfHwgTG9jYWxlLmNyZWF0ZShsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgbnVsbCkpLndlZWtkYXlzKGxlbmd0aCwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFycmF5IG9mIG1lcmlkaWVtcy5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5sb2NhbGVdIC0gdGhlIGxvY2FsZSBjb2RlXG4gICAqIEBleGFtcGxlIEluZm8ubWVyaWRpZW1zKCkgLy89PiBbICdBTScsICdQTScgXVxuICAgKiBAZXhhbXBsZSBJbmZvLm1lcmlkaWVtcyh7IGxvY2FsZTogJ215JyB9KSAvLz0+IFsgJ1x1MTAxNFx1MTAzNlx1MTAxNFx1MTAwMFx1MTAzQScsICdcdTEwMEFcdTEwMTRcdTEwMzEnIF1cbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBzdGF0aWMgbWVyaWRpZW1zKHsgbG9jYWxlID0gbnVsbCB9ID0ge30pIHtcbiAgICByZXR1cm4gTG9jYWxlLmNyZWF0ZShsb2NhbGUpLm1lcmlkaWVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbiBhcnJheSBvZiBlcmFzLCBzdWNoIGFzIFsnQkMnLCAnQUQnXS4gVGhlIGxvY2FsZSBjYW4gYmUgc3BlY2lmaWVkLCBidXQgdGhlIGNhbGVuZGFyIHN5c3RlbSBpcyBhbHdheXMgR3JlZ29yaWFuLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2xlbmd0aD0nc2hvcnQnXSAtIHRoZSBsZW5ndGggb2YgdGhlIGVyYSByZXByZXNlbnRhdGlvbiwgc3VjaCBhcyBcInNob3J0XCIgb3IgXCJsb25nXCIuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlXSAtIHRoZSBsb2NhbGUgY29kZVxuICAgKiBAZXhhbXBsZSBJbmZvLmVyYXMoKSAvLz0+IFsgJ0JDJywgJ0FEJyBdXG4gICAqIEBleGFtcGxlIEluZm8uZXJhcygnbG9uZycpIC8vPT4gWyAnQmVmb3JlIENocmlzdCcsICdBbm5vIERvbWluaScgXVxuICAgKiBAZXhhbXBsZSBJbmZvLmVyYXMoJ2xvbmcnLCB7IGxvY2FsZTogJ2ZyJyB9KSAvLz0+IFsgJ2F2YW50IEpcdTAwRTlzdXMtQ2hyaXN0JywgJ2Fwclx1MDBFOHMgSlx1MDBFOXN1cy1DaHJpc3QnIF1cbiAgICogQHJldHVybiB7QXJyYXl9XG4gICAqL1xuICBzdGF0aWMgZXJhcyhsZW5ndGggPSBcInNob3J0XCIsIHsgbG9jYWxlID0gbnVsbCB9ID0ge30pIHtcbiAgICByZXR1cm4gTG9jYWxlLmNyZWF0ZShsb2NhbGUsIG51bGwsIFwiZ3JlZ29yeVwiKS5lcmFzKGxlbmd0aCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBzZXQgb2YgYXZhaWxhYmxlIGZlYXR1cmVzIGluIHRoaXMgZW52aXJvbm1lbnQuXG4gICAqIFNvbWUgZmVhdHVyZXMgb2YgTHV4b24gYXJlIG5vdCBhdmFpbGFibGUgaW4gYWxsIGVudmlyb25tZW50cy4gRm9yIGV4YW1wbGUsIG9uIG9sZGVyIGJyb3dzZXJzLCByZWxhdGl2ZSB0aW1lIGZvcm1hdHRpbmcgc3VwcG9ydCBpcyBub3QgYXZhaWxhYmxlLiBVc2UgdGhpcyBmdW5jdGlvbiB0byBmaWd1cmUgb3V0IGlmIHRoYXQncyB0aGUgY2FzZS5cbiAgICogS2V5czpcbiAgICogKiBgcmVsYXRpdmVgOiB3aGV0aGVyIHRoaXMgZW52aXJvbm1lbnQgc3VwcG9ydHMgcmVsYXRpdmUgdGltZSBmb3JtYXR0aW5nXG4gICAqIEBleGFtcGxlIEluZm8uZmVhdHVyZXMoKSAvLz0+IHsgcmVsYXRpdmU6IGZhbHNlIH1cbiAgICogQHJldHVybiB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGZlYXR1cmVzKCkge1xuICAgIHJldHVybiB7IHJlbGF0aXZlOiBoYXNSZWxhdGl2ZSgpIH07XG4gIH1cbn1cbiIsICJpbXBvcnQgRHVyYXRpb24gZnJvbSBcIi4uL2R1cmF0aW9uLmpzXCI7XG5cbmZ1bmN0aW9uIGRheURpZmYoZWFybGllciwgbGF0ZXIpIHtcbiAgY29uc3QgdXRjRGF5U3RhcnQgPSAoZHQpID0+IGR0LnRvVVRDKDAsIHsga2VlcExvY2FsVGltZTogdHJ1ZSB9KS5zdGFydE9mKFwiZGF5XCIpLnZhbHVlT2YoKSxcbiAgICBtcyA9IHV0Y0RheVN0YXJ0KGxhdGVyKSAtIHV0Y0RheVN0YXJ0KGVhcmxpZXIpO1xuICByZXR1cm4gTWF0aC5mbG9vcihEdXJhdGlvbi5mcm9tTWlsbGlzKG1zKS5hcyhcImRheXNcIikpO1xufVxuXG5mdW5jdGlvbiBoaWdoT3JkZXJEaWZmcyhjdXJzb3IsIGxhdGVyLCB1bml0cykge1xuICBjb25zdCBkaWZmZXJzID0gW1xuICAgIFtcInllYXJzXCIsIChhLCBiKSA9PiBiLnllYXIgLSBhLnllYXJdLFxuICAgIFtcInF1YXJ0ZXJzXCIsIChhLCBiKSA9PiBiLnF1YXJ0ZXIgLSBhLnF1YXJ0ZXJdLFxuICAgIFtcIm1vbnRoc1wiLCAoYSwgYikgPT4gYi5tb250aCAtIGEubW9udGggKyAoYi55ZWFyIC0gYS55ZWFyKSAqIDEyXSxcbiAgICBbXG4gICAgICBcIndlZWtzXCIsXG4gICAgICAoYSwgYikgPT4ge1xuICAgICAgICBjb25zdCBkYXlzID0gZGF5RGlmZihhLCBiKTtcbiAgICAgICAgcmV0dXJuIChkYXlzIC0gKGRheXMgJSA3KSkgLyA3O1xuICAgICAgfSxcbiAgICBdLFxuICAgIFtcImRheXNcIiwgZGF5RGlmZl0sXG4gIF07XG5cbiAgY29uc3QgcmVzdWx0cyA9IHt9O1xuICBsZXQgbG93ZXN0T3JkZXIsIGhpZ2hXYXRlcjtcblxuICBmb3IgKGNvbnN0IFt1bml0LCBkaWZmZXJdIG9mIGRpZmZlcnMpIHtcbiAgICBpZiAodW5pdHMuaW5kZXhPZih1bml0KSA+PSAwKSB7XG4gICAgICBsb3dlc3RPcmRlciA9IHVuaXQ7XG5cbiAgICAgIGxldCBkZWx0YSA9IGRpZmZlcihjdXJzb3IsIGxhdGVyKTtcbiAgICAgIGhpZ2hXYXRlciA9IGN1cnNvci5wbHVzKHsgW3VuaXRdOiBkZWx0YSB9KTtcblxuICAgICAgaWYgKGhpZ2hXYXRlciA+IGxhdGVyKSB7XG4gICAgICAgIGN1cnNvciA9IGN1cnNvci5wbHVzKHsgW3VuaXRdOiBkZWx0YSAtIDEgfSk7XG4gICAgICAgIGRlbHRhIC09IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjdXJzb3IgPSBoaWdoV2F0ZXI7XG4gICAgICB9XG5cbiAgICAgIHJlc3VsdHNbdW5pdF0gPSBkZWx0YTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gW2N1cnNvciwgcmVzdWx0cywgaGlnaFdhdGVyLCBsb3dlc3RPcmRlcl07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChlYXJsaWVyLCBsYXRlciwgdW5pdHMsIG9wdHMpIHtcbiAgbGV0IFtjdXJzb3IsIHJlc3VsdHMsIGhpZ2hXYXRlciwgbG93ZXN0T3JkZXJdID0gaGlnaE9yZGVyRGlmZnMoZWFybGllciwgbGF0ZXIsIHVuaXRzKTtcblxuICBjb25zdCByZW1haW5pbmdNaWxsaXMgPSBsYXRlciAtIGN1cnNvcjtcblxuICBjb25zdCBsb3dlck9yZGVyVW5pdHMgPSB1bml0cy5maWx0ZXIoXG4gICAgKHUpID0+IFtcImhvdXJzXCIsIFwibWludXRlc1wiLCBcInNlY29uZHNcIiwgXCJtaWxsaXNlY29uZHNcIl0uaW5kZXhPZih1KSA+PSAwXG4gICk7XG5cbiAgaWYgKGxvd2VyT3JkZXJVbml0cy5sZW5ndGggPT09IDApIHtcbiAgICBpZiAoaGlnaFdhdGVyIDwgbGF0ZXIpIHtcbiAgICAgIGhpZ2hXYXRlciA9IGN1cnNvci5wbHVzKHsgW2xvd2VzdE9yZGVyXTogMSB9KTtcbiAgICB9XG5cbiAgICBpZiAoaGlnaFdhdGVyICE9PSBjdXJzb3IpIHtcbiAgICAgIHJlc3VsdHNbbG93ZXN0T3JkZXJdID0gKHJlc3VsdHNbbG93ZXN0T3JkZXJdIHx8IDApICsgcmVtYWluaW5nTWlsbGlzIC8gKGhpZ2hXYXRlciAtIGN1cnNvcik7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZHVyYXRpb24gPSBEdXJhdGlvbi5mcm9tT2JqZWN0KHJlc3VsdHMsIG9wdHMpO1xuXG4gIGlmIChsb3dlck9yZGVyVW5pdHMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBEdXJhdGlvbi5mcm9tTWlsbGlzKHJlbWFpbmluZ01pbGxpcywgb3B0cylcbiAgICAgIC5zaGlmdFRvKC4uLmxvd2VyT3JkZXJVbml0cylcbiAgICAgIC5wbHVzKGR1cmF0aW9uKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZHVyYXRpb247XG4gIH1cbn1cbiIsICJjb25zdCBudW1iZXJpbmdTeXN0ZW1zID0ge1xuICBhcmFiOiBcIltcXHUwNjYwLVxcdTA2NjldXCIsXG4gIGFyYWJleHQ6IFwiW1xcdTA2RjAtXFx1MDZGOV1cIixcbiAgYmFsaTogXCJbXFx1MUI1MC1cXHUxQjU5XVwiLFxuICBiZW5nOiBcIltcXHUwOUU2LVxcdTA5RUZdXCIsXG4gIGRldmE6IFwiW1xcdTA5NjYtXFx1MDk2Rl1cIixcbiAgZnVsbHdpZGU6IFwiW1xcdUZGMTAtXFx1RkYxOV1cIixcbiAgZ3VqcjogXCJbXFx1MEFFNi1cXHUwQUVGXVwiLFxuICBoYW5pZGVjOiBcIltcdTMwMDd8XHU0RTAwfFx1NEU4Q3xcdTRFMDl8XHU1NkRCfFx1NEU5NHxcdTUxNkR8XHU0RTAzfFx1NTE2QnxcdTRFNURdXCIsXG4gIGtobXI6IFwiW1xcdTE3RTAtXFx1MTdFOV1cIixcbiAga25kYTogXCJbXFx1MENFNi1cXHUwQ0VGXVwiLFxuICBsYW9vOiBcIltcXHUwRUQwLVxcdTBFRDldXCIsXG4gIGxpbWI6IFwiW1xcdTE5NDYtXFx1MTk0Rl1cIixcbiAgbWx5bTogXCJbXFx1MEQ2Ni1cXHUwRDZGXVwiLFxuICBtb25nOiBcIltcXHUxODEwLVxcdTE4MTldXCIsXG4gIG15bXI6IFwiW1xcdTEwNDAtXFx1MTA0OV1cIixcbiAgb3J5YTogXCJbXFx1MEI2Ni1cXHUwQjZGXVwiLFxuICB0YW1sZGVjOiBcIltcXHUwQkU2LVxcdTBCRUZdXCIsXG4gIHRlbHU6IFwiW1xcdTBDNjYtXFx1MEM2Rl1cIixcbiAgdGhhaTogXCJbXFx1MEU1MC1cXHUwRTU5XVwiLFxuICB0aWJ0OiBcIltcXHUwRjIwLVxcdTBGMjldXCIsXG4gIGxhdG46IFwiXFxcXGRcIixcbn07XG5cbmNvbnN0IG51bWJlcmluZ1N5c3RlbXNVVEYxNiA9IHtcbiAgYXJhYjogWzE2MzIsIDE2NDFdLFxuICBhcmFiZXh0OiBbMTc3NiwgMTc4NV0sXG4gIGJhbGk6IFs2OTkyLCA3MDAxXSxcbiAgYmVuZzogWzI1MzQsIDI1NDNdLFxuICBkZXZhOiBbMjQwNiwgMjQxNV0sXG4gIGZ1bGx3aWRlOiBbNjUyOTYsIDY1MzAzXSxcbiAgZ3VqcjogWzI3OTAsIDI3OTldLFxuICBraG1yOiBbNjExMiwgNjEyMV0sXG4gIGtuZGE6IFszMzAyLCAzMzExXSxcbiAgbGFvbzogWzM3OTIsIDM4MDFdLFxuICBsaW1iOiBbNjQ3MCwgNjQ3OV0sXG4gIG1seW06IFszNDMwLCAzNDM5XSxcbiAgbW9uZzogWzYxNjAsIDYxNjldLFxuICBteW1yOiBbNDE2MCwgNDE2OV0sXG4gIG9yeWE6IFsyOTE4LCAyOTI3XSxcbiAgdGFtbGRlYzogWzMwNDYsIDMwNTVdLFxuICB0ZWx1OiBbMzE3NCwgMzE4M10sXG4gIHRoYWk6IFszNjY0LCAzNjczXSxcbiAgdGlidDogWzM4NzIsIDM4ODFdLFxufTtcblxuY29uc3QgaGFuaWRlY0NoYXJzID0gbnVtYmVyaW5nU3lzdGVtcy5oYW5pZGVjLnJlcGxhY2UoL1tcXFt8XFxdXS9nLCBcIlwiKS5zcGxpdChcIlwiKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRGlnaXRzKHN0cikge1xuICBsZXQgdmFsdWUgPSBwYXJzZUludChzdHIsIDEwKTtcbiAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgIHZhbHVlID0gXCJcIjtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY29kZSA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuXG4gICAgICBpZiAoc3RyW2ldLnNlYXJjaChudW1iZXJpbmdTeXN0ZW1zLmhhbmlkZWMpICE9PSAtMSkge1xuICAgICAgICB2YWx1ZSArPSBoYW5pZGVjQ2hhcnMuaW5kZXhPZihzdHJbaV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gbnVtYmVyaW5nU3lzdGVtc1VURjE2KSB7XG4gICAgICAgICAgY29uc3QgW21pbiwgbWF4XSA9IG51bWJlcmluZ1N5c3RlbXNVVEYxNltrZXldO1xuICAgICAgICAgIGlmIChjb2RlID49IG1pbiAmJiBjb2RlIDw9IG1heCkge1xuICAgICAgICAgICAgdmFsdWUgKz0gY29kZSAtIG1pbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWdpdFJlZ2V4KHsgbnVtYmVyaW5nU3lzdGVtIH0sIGFwcGVuZCA9IFwiXCIpIHtcbiAgcmV0dXJuIG5ldyBSZWdFeHAoYCR7bnVtYmVyaW5nU3lzdGVtc1tudW1iZXJpbmdTeXN0ZW0gfHwgXCJsYXRuXCJdfSR7YXBwZW5kfWApO1xufVxuIiwgImltcG9ydCB7IHBhcnNlTWlsbGlzLCBpc1VuZGVmaW5lZCwgdW50cnVuY2F0ZVllYXIsIHNpZ25lZE9mZnNldCwgaGFzT3duUHJvcGVydHkgfSBmcm9tIFwiLi91dGlsLmpzXCI7XG5pbXBvcnQgRm9ybWF0dGVyIGZyb20gXCIuL2Zvcm1hdHRlci5qc1wiO1xuaW1wb3J0IEZpeGVkT2Zmc2V0Wm9uZSBmcm9tIFwiLi4vem9uZXMvZml4ZWRPZmZzZXRab25lLmpzXCI7XG5pbXBvcnQgSUFOQVpvbmUgZnJvbSBcIi4uL3pvbmVzL0lBTkFab25lLmpzXCI7XG5pbXBvcnQgRGF0ZVRpbWUgZnJvbSBcIi4uL2RhdGV0aW1lLmpzXCI7XG5pbXBvcnQgeyBkaWdpdFJlZ2V4LCBwYXJzZURpZ2l0cyB9IGZyb20gXCIuL2RpZ2l0cy5qc1wiO1xuaW1wb3J0IHsgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JzLmpzXCI7XG5cbmNvbnN0IE1JU1NJTkdfRlRQID0gXCJtaXNzaW5nIEludGwuRGF0ZVRpbWVGb3JtYXQuZm9ybWF0VG9QYXJ0cyBzdXBwb3J0XCI7XG5cbmZ1bmN0aW9uIGludFVuaXQocmVnZXgsIHBvc3QgPSAoaSkgPT4gaSkge1xuICByZXR1cm4geyByZWdleCwgZGVzZXI6IChbc10pID0+IHBvc3QocGFyc2VEaWdpdHMocykpIH07XG59XG5cbmNvbnN0IE5CU1AgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDE2MCk7XG5jb25zdCBzcGFjZU9yTkJTUCA9IGAoIHwke05CU1B9KWA7XG5jb25zdCBzcGFjZU9yTkJTUFJlZ0V4cCA9IG5ldyBSZWdFeHAoc3BhY2VPck5CU1AsIFwiZ1wiKTtcblxuZnVuY3Rpb24gZml4TGlzdFJlZ2V4KHMpIHtcbiAgLy8gbWFrZSBkb3RzIG9wdGlvbmFsIGFuZCBhbHNvIG1ha2UgdGhlbSBsaXRlcmFsXG4gIC8vIG1ha2Ugc3BhY2UgYW5kIG5vbiBicmVha2FibGUgc3BhY2UgY2hhcmFjdGVycyBpbnRlcmNoYW5nZWFibGVcbiAgcmV0dXJuIHMucmVwbGFjZSgvXFwuL2csIFwiXFxcXC4/XCIpLnJlcGxhY2Uoc3BhY2VPck5CU1BSZWdFeHAsIHNwYWNlT3JOQlNQKTtcbn1cblxuZnVuY3Rpb24gc3RyaXBJbnNlbnNpdGl2aXRpZXMocykge1xuICByZXR1cm4gc1xuICAgIC5yZXBsYWNlKC9cXC4vZywgXCJcIikgLy8gaWdub3JlIGRvdHMgdGhhdCB3ZXJlIG1hZGUgb3B0aW9uYWxcbiAgICAucmVwbGFjZShzcGFjZU9yTkJTUFJlZ0V4cCwgXCIgXCIpIC8vIGludGVyY2hhbmdlIHNwYWNlIGFuZCBuYnNwXG4gICAgLnRvTG93ZXJDYXNlKCk7XG59XG5cbmZ1bmN0aW9uIG9uZU9mKHN0cmluZ3MsIHN0YXJ0SW5kZXgpIHtcbiAgaWYgKHN0cmluZ3MgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVnZXg6IFJlZ0V4cChzdHJpbmdzLm1hcChmaXhMaXN0UmVnZXgpLmpvaW4oXCJ8XCIpKSxcbiAgICAgIGRlc2VyOiAoW3NdKSA9PlxuICAgICAgICBzdHJpbmdzLmZpbmRJbmRleCgoaSkgPT4gc3RyaXBJbnNlbnNpdGl2aXRpZXMocykgPT09IHN0cmlwSW5zZW5zaXRpdml0aWVzKGkpKSArIHN0YXJ0SW5kZXgsXG4gICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBvZmZzZXQocmVnZXgsIGdyb3Vwcykge1xuICByZXR1cm4geyByZWdleCwgZGVzZXI6IChbLCBoLCBtXSkgPT4gc2lnbmVkT2Zmc2V0KGgsIG0pLCBncm91cHMgfTtcbn1cblxuZnVuY3Rpb24gc2ltcGxlKHJlZ2V4KSB7XG4gIHJldHVybiB7IHJlZ2V4LCBkZXNlcjogKFtzXSkgPT4gcyB9O1xufVxuXG5mdW5jdGlvbiBlc2NhcGVUb2tlbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZSgvW1xcLVxcW1xcXXt9KCkqKz8uLFxcXFxcXF4kfCNcXHNdL2csIFwiXFxcXCQmXCIpO1xufVxuXG5mdW5jdGlvbiB1bml0Rm9yVG9rZW4odG9rZW4sIGxvYykge1xuICBjb25zdCBvbmUgPSBkaWdpdFJlZ2V4KGxvYyksXG4gICAgdHdvID0gZGlnaXRSZWdleChsb2MsIFwiezJ9XCIpLFxuICAgIHRocmVlID0gZGlnaXRSZWdleChsb2MsIFwiezN9XCIpLFxuICAgIGZvdXIgPSBkaWdpdFJlZ2V4KGxvYywgXCJ7NH1cIiksXG4gICAgc2l4ID0gZGlnaXRSZWdleChsb2MsIFwiezZ9XCIpLFxuICAgIG9uZU9yVHdvID0gZGlnaXRSZWdleChsb2MsIFwiezEsMn1cIiksXG4gICAgb25lVG9UaHJlZSA9IGRpZ2l0UmVnZXgobG9jLCBcInsxLDN9XCIpLFxuICAgIG9uZVRvU2l4ID0gZGlnaXRSZWdleChsb2MsIFwiezEsNn1cIiksXG4gICAgb25lVG9OaW5lID0gZGlnaXRSZWdleChsb2MsIFwiezEsOX1cIiksXG4gICAgdHdvVG9Gb3VyID0gZGlnaXRSZWdleChsb2MsIFwiezIsNH1cIiksXG4gICAgZm91clRvU2l4ID0gZGlnaXRSZWdleChsb2MsIFwiezQsNn1cIiksXG4gICAgbGl0ZXJhbCA9ICh0KSA9PiAoeyByZWdleDogUmVnRXhwKGVzY2FwZVRva2VuKHQudmFsKSksIGRlc2VyOiAoW3NdKSA9PiBzLCBsaXRlcmFsOiB0cnVlIH0pLFxuICAgIHVuaXRhdGUgPSAodCkgPT4ge1xuICAgICAgaWYgKHRva2VuLmxpdGVyYWwpIHtcbiAgICAgICAgcmV0dXJuIGxpdGVyYWwodCk7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKHQudmFsKSB7XG4gICAgICAgIC8vIGVyYVxuICAgICAgICBjYXNlIFwiR1wiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MuZXJhcyhcInNob3J0XCIsIGZhbHNlKSwgMCk7XG4gICAgICAgIGNhc2UgXCJHR1wiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MuZXJhcyhcImxvbmdcIiwgZmFsc2UpLCAwKTtcbiAgICAgICAgLy8geWVhcnNcbiAgICAgICAgY2FzZSBcInlcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVUb1NpeCk7XG4gICAgICAgIGNhc2UgXCJ5eVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3b1RvRm91ciwgdW50cnVuY2F0ZVllYXIpO1xuICAgICAgICBjYXNlIFwieXl5eVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KGZvdXIpO1xuICAgICAgICBjYXNlIFwieXl5eXlcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChmb3VyVG9TaXgpO1xuICAgICAgICBjYXNlIFwieXl5eXl5XCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQoc2l4KTtcbiAgICAgICAgLy8gbW9udGhzXG4gICAgICAgIGNhc2UgXCJNXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pO1xuICAgICAgICBjYXNlIFwiTU1cIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pO1xuICAgICAgICBjYXNlIFwiTU1NXCI6XG4gICAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy5tb250aHMoXCJzaG9ydFwiLCB0cnVlLCBmYWxzZSksIDEpO1xuICAgICAgICBjYXNlIFwiTU1NTVwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKFwibG9uZ1wiLCB0cnVlLCBmYWxzZSksIDEpO1xuICAgICAgICBjYXNlIFwiTFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcIkxMXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgY2FzZSBcIkxMTFwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2MubW9udGhzKFwic2hvcnRcIiwgZmFsc2UsIGZhbHNlKSwgMSk7XG4gICAgICAgIGNhc2UgXCJMTExMXCI6XG4gICAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy5tb250aHMoXCJsb25nXCIsIGZhbHNlLCBmYWxzZSksIDEpO1xuICAgICAgICAvLyBkYXRlc1xuICAgICAgICBjYXNlIFwiZFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcImRkXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgLy8gb3JkaW5hbHNcbiAgICAgICAgY2FzZSBcIm9cIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVUb1RocmVlKTtcbiAgICAgICAgY2FzZSBcIm9vb1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHRocmVlKTtcbiAgICAgICAgLy8gdGltZVxuICAgICAgICBjYXNlIFwiSEhcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d28pO1xuICAgICAgICBjYXNlIFwiSFwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcImhoXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgY2FzZSBcImhcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJtbVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIGNhc2UgXCJtXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lT3JUd28pO1xuICAgICAgICBjYXNlIFwicVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcInFxXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQodHdvKTtcbiAgICAgICAgY2FzZSBcInNcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJzc1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lVG9UaHJlZSk7XG4gICAgICAgIGNhc2UgXCJTU1NcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0aHJlZSk7XG4gICAgICAgIGNhc2UgXCJ1XCI6XG4gICAgICAgICAgcmV0dXJuIHNpbXBsZShvbmVUb05pbmUpO1xuICAgICAgICBjYXNlIFwidXVcIjpcbiAgICAgICAgICByZXR1cm4gc2ltcGxlKG9uZU9yVHdvKTtcbiAgICAgICAgY2FzZSBcInV1dVwiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KG9uZSk7XG4gICAgICAgIC8vIG1lcmlkaWVtXG4gICAgICAgIGNhc2UgXCJhXCI6XG4gICAgICAgICAgcmV0dXJuIG9uZU9mKGxvYy5tZXJpZGllbXMoKSwgMCk7XG4gICAgICAgIC8vIHdlZWtZZWFyIChrKVxuICAgICAgICBjYXNlIFwia2tra1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KGZvdXIpO1xuICAgICAgICBjYXNlIFwia2tcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdCh0d29Ub0ZvdXIsIHVudHJ1bmNhdGVZZWFyKTtcbiAgICAgICAgLy8gd2Vla051bWJlciAoVylcbiAgICAgICAgY2FzZSBcIldcIjpcbiAgICAgICAgICByZXR1cm4gaW50VW5pdChvbmVPclR3byk7XG4gICAgICAgIGNhc2UgXCJXV1wiOlxuICAgICAgICAgIHJldHVybiBpbnRVbml0KHR3byk7XG4gICAgICAgIC8vIHdlZWtkYXlzXG4gICAgICAgIGNhc2UgXCJFXCI6XG4gICAgICAgIGNhc2UgXCJjXCI6XG4gICAgICAgICAgcmV0dXJuIGludFVuaXQob25lKTtcbiAgICAgICAgY2FzZSBcIkVFRVwiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoXCJzaG9ydFwiLCBmYWxzZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgY2FzZSBcIkVFRUVcIjpcbiAgICAgICAgICByZXR1cm4gb25lT2YobG9jLndlZWtkYXlzKFwibG9uZ1wiLCBmYWxzZSwgZmFsc2UpLCAxKTtcbiAgICAgICAgY2FzZSBcImNjY1wiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoXCJzaG9ydFwiLCB0cnVlLCBmYWxzZSksIDEpO1xuICAgICAgICBjYXNlIFwiY2NjY1wiOlxuICAgICAgICAgIHJldHVybiBvbmVPZihsb2Mud2Vla2RheXMoXCJsb25nXCIsIHRydWUsIGZhbHNlKSwgMSk7XG4gICAgICAgIC8vIG9mZnNldC96b25lXG4gICAgICAgIGNhc2UgXCJaXCI6XG4gICAgICAgIGNhc2UgXCJaWlwiOlxuICAgICAgICAgIHJldHVybiBvZmZzZXQobmV3IFJlZ0V4cChgKFsrLV0ke29uZU9yVHdvLnNvdXJjZX0pKD86Oigke3R3by5zb3VyY2V9KSk/YCksIDIpO1xuICAgICAgICBjYXNlIFwiWlpaXCI6XG4gICAgICAgICAgcmV0dXJuIG9mZnNldChuZXcgUmVnRXhwKGAoWystXSR7b25lT3JUd28uc291cmNlfSkoJHt0d28uc291cmNlfSk/YCksIDIpO1xuICAgICAgICAvLyB3ZSBkb24ndCBzdXBwb3J0IFpaWlogKFBTVCkgb3IgWlpaWlogKFBhY2lmaWMgU3RhbmRhcmQgVGltZSkgaW4gcGFyc2luZ1xuICAgICAgICAvLyBiZWNhdXNlIHdlIGRvbid0IGhhdmUgYW55IHdheSB0byBmaWd1cmUgb3V0IHdoYXQgdGhleSBhcmVcbiAgICAgICAgY2FzZSBcInpcIjpcbiAgICAgICAgICByZXR1cm4gc2ltcGxlKC9bYS16XystL117MSwyNTZ9Py9pKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gbGl0ZXJhbCh0KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gIGNvbnN0IHVuaXQgPSB1bml0YXRlKHRva2VuKSB8fCB7XG4gICAgaW52YWxpZFJlYXNvbjogTUlTU0lOR19GVFAsXG4gIH07XG5cbiAgdW5pdC50b2tlbiA9IHRva2VuO1xuXG4gIHJldHVybiB1bml0O1xufVxuXG5jb25zdCBwYXJ0VHlwZVN0eWxlVG9Ub2tlblZhbCA9IHtcbiAgeWVhcjoge1xuICAgIFwiMi1kaWdpdFwiOiBcInl5XCIsXG4gICAgbnVtZXJpYzogXCJ5eXl5eVwiLFxuICB9LFxuICBtb250aDoge1xuICAgIG51bWVyaWM6IFwiTVwiLFxuICAgIFwiMi1kaWdpdFwiOiBcIk1NXCIsXG4gICAgc2hvcnQ6IFwiTU1NXCIsXG4gICAgbG9uZzogXCJNTU1NXCIsXG4gIH0sXG4gIGRheToge1xuICAgIG51bWVyaWM6IFwiZFwiLFxuICAgIFwiMi1kaWdpdFwiOiBcImRkXCIsXG4gIH0sXG4gIHdlZWtkYXk6IHtcbiAgICBzaG9ydDogXCJFRUVcIixcbiAgICBsb25nOiBcIkVFRUVcIixcbiAgfSxcbiAgZGF5cGVyaW9kOiBcImFcIixcbiAgZGF5UGVyaW9kOiBcImFcIixcbiAgaG91cjoge1xuICAgIG51bWVyaWM6IFwiaFwiLFxuICAgIFwiMi1kaWdpdFwiOiBcImhoXCIsXG4gIH0sXG4gIG1pbnV0ZToge1xuICAgIG51bWVyaWM6IFwibVwiLFxuICAgIFwiMi1kaWdpdFwiOiBcIm1tXCIsXG4gIH0sXG4gIHNlY29uZDoge1xuICAgIG51bWVyaWM6IFwic1wiLFxuICAgIFwiMi1kaWdpdFwiOiBcInNzXCIsXG4gIH0sXG59O1xuXG5mdW5jdGlvbiB0b2tlbkZvclBhcnQocGFydCwgbG9jYWxlLCBmb3JtYXRPcHRzKSB7XG4gIGNvbnN0IHsgdHlwZSwgdmFsdWUgfSA9IHBhcnQ7XG5cbiAgaWYgKHR5cGUgPT09IFwibGl0ZXJhbFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpdGVyYWw6IHRydWUsXG4gICAgICB2YWw6IHZhbHVlLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBzdHlsZSA9IGZvcm1hdE9wdHNbdHlwZV07XG5cbiAgbGV0IHZhbCA9IHBhcnRUeXBlU3R5bGVUb1Rva2VuVmFsW3R5cGVdO1xuICBpZiAodHlwZW9mIHZhbCA9PT0gXCJvYmplY3RcIikge1xuICAgIHZhbCA9IHZhbFtzdHlsZV07XG4gIH1cblxuICBpZiAodmFsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpdGVyYWw6IGZhbHNlLFxuICAgICAgdmFsLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBidWlsZFJlZ2V4KHVuaXRzKSB7XG4gIGNvbnN0IHJlID0gdW5pdHMubWFwKCh1KSA9PiB1LnJlZ2V4KS5yZWR1Y2UoKGYsIHIpID0+IGAke2Z9KCR7ci5zb3VyY2V9KWAsIFwiXCIpO1xuICByZXR1cm4gW2BeJHtyZX0kYCwgdW5pdHNdO1xufVxuXG5mdW5jdGlvbiBtYXRjaChpbnB1dCwgcmVnZXgsIGhhbmRsZXJzKSB7XG4gIGNvbnN0IG1hdGNoZXMgPSBpbnB1dC5tYXRjaChyZWdleCk7XG5cbiAgaWYgKG1hdGNoZXMpIHtcbiAgICBjb25zdCBhbGwgPSB7fTtcbiAgICBsZXQgbWF0Y2hJbmRleCA9IDE7XG4gICAgZm9yIChjb25zdCBpIGluIGhhbmRsZXJzKSB7XG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkoaGFuZGxlcnMsIGkpKSB7XG4gICAgICAgIGNvbnN0IGggPSBoYW5kbGVyc1tpXSxcbiAgICAgICAgICBncm91cHMgPSBoLmdyb3VwcyA/IGguZ3JvdXBzICsgMSA6IDE7XG4gICAgICAgIGlmICghaC5saXRlcmFsICYmIGgudG9rZW4pIHtcbiAgICAgICAgICBhbGxbaC50b2tlbi52YWxbMF1dID0gaC5kZXNlcihtYXRjaGVzLnNsaWNlKG1hdGNoSW5kZXgsIG1hdGNoSW5kZXggKyBncm91cHMpKTtcbiAgICAgICAgfVxuICAgICAgICBtYXRjaEluZGV4ICs9IGdyb3VwcztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFttYXRjaGVzLCBhbGxdO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbbWF0Y2hlcywge31dO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRhdGVUaW1lRnJvbU1hdGNoZXMobWF0Y2hlcykge1xuICBjb25zdCB0b0ZpZWxkID0gKHRva2VuKSA9PiB7XG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgICAgY2FzZSBcIlNcIjpcbiAgICAgICAgcmV0dXJuIFwibWlsbGlzZWNvbmRcIjtcbiAgICAgIGNhc2UgXCJzXCI6XG4gICAgICAgIHJldHVybiBcInNlY29uZFwiO1xuICAgICAgY2FzZSBcIm1cIjpcbiAgICAgICAgcmV0dXJuIFwibWludXRlXCI7XG4gICAgICBjYXNlIFwiaFwiOlxuICAgICAgY2FzZSBcIkhcIjpcbiAgICAgICAgcmV0dXJuIFwiaG91clwiO1xuICAgICAgY2FzZSBcImRcIjpcbiAgICAgICAgcmV0dXJuIFwiZGF5XCI7XG4gICAgICBjYXNlIFwib1wiOlxuICAgICAgICByZXR1cm4gXCJvcmRpbmFsXCI7XG4gICAgICBjYXNlIFwiTFwiOlxuICAgICAgY2FzZSBcIk1cIjpcbiAgICAgICAgcmV0dXJuIFwibW9udGhcIjtcbiAgICAgIGNhc2UgXCJ5XCI6XG4gICAgICAgIHJldHVybiBcInllYXJcIjtcbiAgICAgIGNhc2UgXCJFXCI6XG4gICAgICBjYXNlIFwiY1wiOlxuICAgICAgICByZXR1cm4gXCJ3ZWVrZGF5XCI7XG4gICAgICBjYXNlIFwiV1wiOlxuICAgICAgICByZXR1cm4gXCJ3ZWVrTnVtYmVyXCI7XG4gICAgICBjYXNlIFwia1wiOlxuICAgICAgICByZXR1cm4gXCJ3ZWVrWWVhclwiO1xuICAgICAgY2FzZSBcInFcIjpcbiAgICAgICAgcmV0dXJuIFwicXVhcnRlclwiO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9O1xuXG4gIGxldCB6b25lID0gbnVsbDtcbiAgbGV0IHNwZWNpZmljT2Zmc2V0O1xuICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMueikpIHtcbiAgICB6b25lID0gSUFOQVpvbmUuY3JlYXRlKG1hdGNoZXMueik7XG4gIH1cblxuICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMuWikpIHtcbiAgICBpZiAoIXpvbmUpIHtcbiAgICAgIHpvbmUgPSBuZXcgRml4ZWRPZmZzZXRab25lKG1hdGNoZXMuWik7XG4gICAgfVxuICAgIHNwZWNpZmljT2Zmc2V0ID0gbWF0Y2hlcy5aO1xuICB9XG5cbiAgaWYgKCFpc1VuZGVmaW5lZChtYXRjaGVzLnEpKSB7XG4gICAgbWF0Y2hlcy5NID0gKG1hdGNoZXMucSAtIDEpICogMyArIDE7XG4gIH1cblxuICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMuaCkpIHtcbiAgICBpZiAobWF0Y2hlcy5oIDwgMTIgJiYgbWF0Y2hlcy5hID09PSAxKSB7XG4gICAgICBtYXRjaGVzLmggKz0gMTI7XG4gICAgfSBlbHNlIGlmIChtYXRjaGVzLmggPT09IDEyICYmIG1hdGNoZXMuYSA9PT0gMCkge1xuICAgICAgbWF0Y2hlcy5oID0gMDtcbiAgICB9XG4gIH1cblxuICBpZiAobWF0Y2hlcy5HID09PSAwICYmIG1hdGNoZXMueSkge1xuICAgIG1hdGNoZXMueSA9IC1tYXRjaGVzLnk7XG4gIH1cblxuICBpZiAoIWlzVW5kZWZpbmVkKG1hdGNoZXMudSkpIHtcbiAgICBtYXRjaGVzLlMgPSBwYXJzZU1pbGxpcyhtYXRjaGVzLnUpO1xuICB9XG5cbiAgY29uc3QgdmFscyA9IE9iamVjdC5rZXlzKG1hdGNoZXMpLnJlZHVjZSgociwgaykgPT4ge1xuICAgIGNvbnN0IGYgPSB0b0ZpZWxkKGspO1xuICAgIGlmIChmKSB7XG4gICAgICByW2ZdID0gbWF0Y2hlc1trXTtcbiAgICB9XG5cbiAgICByZXR1cm4gcjtcbiAgfSwge30pO1xuXG4gIHJldHVybiBbdmFscywgem9uZSwgc3BlY2lmaWNPZmZzZXRdO1xufVxuXG5sZXQgZHVtbXlEYXRlVGltZUNhY2hlID0gbnVsbDtcblxuZnVuY3Rpb24gZ2V0RHVtbXlEYXRlVGltZSgpIHtcbiAgaWYgKCFkdW1teURhdGVUaW1lQ2FjaGUpIHtcbiAgICBkdW1teURhdGVUaW1lQ2FjaGUgPSBEYXRlVGltZS5mcm9tTWlsbGlzKDE1NTU1NTU1NTU1NTUpO1xuICB9XG5cbiAgcmV0dXJuIGR1bW15RGF0ZVRpbWVDYWNoZTtcbn1cblxuZnVuY3Rpb24gbWF5YmVFeHBhbmRNYWNyb1Rva2VuKHRva2VuLCBsb2NhbGUpIHtcbiAgaWYgKHRva2VuLmxpdGVyYWwpIHtcbiAgICByZXR1cm4gdG9rZW47XG4gIH1cblxuICBjb25zdCBmb3JtYXRPcHRzID0gRm9ybWF0dGVyLm1hY3JvVG9rZW5Ub0Zvcm1hdE9wdHModG9rZW4udmFsKTtcblxuICBpZiAoIWZvcm1hdE9wdHMpIHtcbiAgICByZXR1cm4gdG9rZW47XG4gIH1cblxuICBjb25zdCBmb3JtYXR0ZXIgPSBGb3JtYXR0ZXIuY3JlYXRlKGxvY2FsZSwgZm9ybWF0T3B0cyk7XG4gIGNvbnN0IHBhcnRzID0gZm9ybWF0dGVyLmZvcm1hdERhdGVUaW1lUGFydHMoZ2V0RHVtbXlEYXRlVGltZSgpKTtcblxuICBjb25zdCB0b2tlbnMgPSBwYXJ0cy5tYXAoKHApID0+IHRva2VuRm9yUGFydChwLCBsb2NhbGUsIGZvcm1hdE9wdHMpKTtcblxuICBpZiAodG9rZW5zLmluY2x1ZGVzKHVuZGVmaW5lZCkpIHtcbiAgICByZXR1cm4gdG9rZW47XG4gIH1cblxuICByZXR1cm4gdG9rZW5zO1xufVxuXG5mdW5jdGlvbiBleHBhbmRNYWNyb1Rva2Vucyh0b2tlbnMsIGxvY2FsZSkge1xuICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdCguLi50b2tlbnMubWFwKCh0KSA9PiBtYXliZUV4cGFuZE1hY3JvVG9rZW4odCwgbG9jYWxlKSkpO1xufVxuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cGxhaW5Gcm9tVG9rZW5zKGxvY2FsZSwgaW5wdXQsIGZvcm1hdCkge1xuICBjb25zdCB0b2tlbnMgPSBleHBhbmRNYWNyb1Rva2VucyhGb3JtYXR0ZXIucGFyc2VGb3JtYXQoZm9ybWF0KSwgbG9jYWxlKSxcbiAgICB1bml0cyA9IHRva2Vucy5tYXAoKHQpID0+IHVuaXRGb3JUb2tlbih0LCBsb2NhbGUpKSxcbiAgICBkaXNxdWFsaWZ5aW5nVW5pdCA9IHVuaXRzLmZpbmQoKHQpID0+IHQuaW52YWxpZFJlYXNvbik7XG5cbiAgaWYgKGRpc3F1YWxpZnlpbmdVbml0KSB7XG4gICAgcmV0dXJuIHsgaW5wdXQsIHRva2VucywgaW52YWxpZFJlYXNvbjogZGlzcXVhbGlmeWluZ1VuaXQuaW52YWxpZFJlYXNvbiB9O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IFtyZWdleFN0cmluZywgaGFuZGxlcnNdID0gYnVpbGRSZWdleCh1bml0cyksXG4gICAgICByZWdleCA9IFJlZ0V4cChyZWdleFN0cmluZywgXCJpXCIpLFxuICAgICAgW3Jhd01hdGNoZXMsIG1hdGNoZXNdID0gbWF0Y2goaW5wdXQsIHJlZ2V4LCBoYW5kbGVycyksXG4gICAgICBbcmVzdWx0LCB6b25lLCBzcGVjaWZpY09mZnNldF0gPSBtYXRjaGVzXG4gICAgICAgID8gZGF0ZVRpbWVGcm9tTWF0Y2hlcyhtYXRjaGVzKVxuICAgICAgICA6IFtudWxsLCBudWxsLCB1bmRlZmluZWRdO1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eShtYXRjaGVzLCBcImFcIikgJiYgaGFzT3duUHJvcGVydHkobWF0Y2hlcywgXCJIXCIpKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmxpY3RpbmdTcGVjaWZpY2F0aW9uRXJyb3IoXG4gICAgICAgIFwiQ2FuJ3QgaW5jbHVkZSBtZXJpZGllbSB3aGVuIHNwZWNpZnlpbmcgMjQtaG91ciBmb3JtYXRcIlxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgaW5wdXQsIHRva2VucywgcmVnZXgsIHJhd01hdGNoZXMsIG1hdGNoZXMsIHJlc3VsdCwgem9uZSwgc3BlY2lmaWNPZmZzZXQgfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGcm9tVG9rZW5zKGxvY2FsZSwgaW5wdXQsIGZvcm1hdCkge1xuICBjb25zdCB7IHJlc3VsdCwgem9uZSwgc3BlY2lmaWNPZmZzZXQsIGludmFsaWRSZWFzb24gfSA9IGV4cGxhaW5Gcm9tVG9rZW5zKGxvY2FsZSwgaW5wdXQsIGZvcm1hdCk7XG4gIHJldHVybiBbcmVzdWx0LCB6b25lLCBzcGVjaWZpY09mZnNldCwgaW52YWxpZFJlYXNvbl07XG59XG4iLCAiaW1wb3J0IHtcbiAgaW50ZWdlckJldHdlZW4sXG4gIGlzTGVhcFllYXIsXG4gIHRpbWVPYmplY3QsXG4gIGRheXNJblllYXIsXG4gIGRheXNJbk1vbnRoLFxuICB3ZWVrc0luV2Vla1llYXIsXG4gIGlzSW50ZWdlcixcbn0gZnJvbSBcIi4vdXRpbC5qc1wiO1xuaW1wb3J0IEludmFsaWQgZnJvbSBcIi4vaW52YWxpZC5qc1wiO1xuXG5jb25zdCBub25MZWFwTGFkZGVyID0gWzAsIDMxLCA1OSwgOTAsIDEyMCwgMTUxLCAxODEsIDIxMiwgMjQzLCAyNzMsIDMwNCwgMzM0XSxcbiAgbGVhcExhZGRlciA9IFswLCAzMSwgNjAsIDkxLCAxMjEsIDE1MiwgMTgyLCAyMTMsIDI0NCwgMjc0LCAzMDUsIDMzNV07XG5cbmZ1bmN0aW9uIHVuaXRPdXRPZlJhbmdlKHVuaXQsIHZhbHVlKSB7XG4gIHJldHVybiBuZXcgSW52YWxpZChcbiAgICBcInVuaXQgb3V0IG9mIHJhbmdlXCIsXG4gICAgYHlvdSBzcGVjaWZpZWQgJHt2YWx1ZX0gKG9mIHR5cGUgJHt0eXBlb2YgdmFsdWV9KSBhcyBhICR7dW5pdH0sIHdoaWNoIGlzIGludmFsaWRgXG4gICk7XG59XG5cbmZ1bmN0aW9uIGRheU9mV2Vlayh5ZWFyLCBtb250aCwgZGF5KSB7XG4gIGNvbnN0IGpzID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGggLSAxLCBkYXkpKS5nZXRVVENEYXkoKTtcbiAgcmV0dXJuIGpzID09PSAwID8gNyA6IGpzO1xufVxuXG5mdW5jdGlvbiBjb21wdXRlT3JkaW5hbCh5ZWFyLCBtb250aCwgZGF5KSB7XG4gIHJldHVybiBkYXkgKyAoaXNMZWFwWWVhcih5ZWFyKSA/IGxlYXBMYWRkZXIgOiBub25MZWFwTGFkZGVyKVttb250aCAtIDFdO1xufVxuXG5mdW5jdGlvbiB1bmNvbXB1dGVPcmRpbmFsKHllYXIsIG9yZGluYWwpIHtcbiAgY29uc3QgdGFibGUgPSBpc0xlYXBZZWFyKHllYXIpID8gbGVhcExhZGRlciA6IG5vbkxlYXBMYWRkZXIsXG4gICAgbW9udGgwID0gdGFibGUuZmluZEluZGV4KChpKSA9PiBpIDwgb3JkaW5hbCksXG4gICAgZGF5ID0gb3JkaW5hbCAtIHRhYmxlW21vbnRoMF07XG4gIHJldHVybiB7IG1vbnRoOiBtb250aDAgKyAxLCBkYXkgfTtcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBncmVnb3JpYW5Ub1dlZWsoZ3JlZ09iaikge1xuICBjb25zdCB7IHllYXIsIG1vbnRoLCBkYXkgfSA9IGdyZWdPYmosXG4gICAgb3JkaW5hbCA9IGNvbXB1dGVPcmRpbmFsKHllYXIsIG1vbnRoLCBkYXkpLFxuICAgIHdlZWtkYXkgPSBkYXlPZldlZWsoeWVhciwgbW9udGgsIGRheSk7XG5cbiAgbGV0IHdlZWtOdW1iZXIgPSBNYXRoLmZsb29yKChvcmRpbmFsIC0gd2Vla2RheSArIDEwKSAvIDcpLFxuICAgIHdlZWtZZWFyO1xuXG4gIGlmICh3ZWVrTnVtYmVyIDwgMSkge1xuICAgIHdlZWtZZWFyID0geWVhciAtIDE7XG4gICAgd2Vla051bWJlciA9IHdlZWtzSW5XZWVrWWVhcih3ZWVrWWVhcik7XG4gIH0gZWxzZSBpZiAod2Vla051bWJlciA+IHdlZWtzSW5XZWVrWWVhcih5ZWFyKSkge1xuICAgIHdlZWtZZWFyID0geWVhciArIDE7XG4gICAgd2Vla051bWJlciA9IDE7XG4gIH0gZWxzZSB7XG4gICAgd2Vla1llYXIgPSB5ZWFyO1xuICB9XG5cbiAgcmV0dXJuIHsgd2Vla1llYXIsIHdlZWtOdW1iZXIsIHdlZWtkYXksIC4uLnRpbWVPYmplY3QoZ3JlZ09iaikgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdlZWtUb0dyZWdvcmlhbih3ZWVrRGF0YSkge1xuICBjb25zdCB7IHdlZWtZZWFyLCB3ZWVrTnVtYmVyLCB3ZWVrZGF5IH0gPSB3ZWVrRGF0YSxcbiAgICB3ZWVrZGF5T2ZKYW40ID0gZGF5T2ZXZWVrKHdlZWtZZWFyLCAxLCA0KSxcbiAgICB5ZWFySW5EYXlzID0gZGF5c0luWWVhcih3ZWVrWWVhcik7XG5cbiAgbGV0IG9yZGluYWwgPSB3ZWVrTnVtYmVyICogNyArIHdlZWtkYXkgLSB3ZWVrZGF5T2ZKYW40IC0gMyxcbiAgICB5ZWFyO1xuXG4gIGlmIChvcmRpbmFsIDwgMSkge1xuICAgIHllYXIgPSB3ZWVrWWVhciAtIDE7XG4gICAgb3JkaW5hbCArPSBkYXlzSW5ZZWFyKHllYXIpO1xuICB9IGVsc2UgaWYgKG9yZGluYWwgPiB5ZWFySW5EYXlzKSB7XG4gICAgeWVhciA9IHdlZWtZZWFyICsgMTtcbiAgICBvcmRpbmFsIC09IGRheXNJblllYXIod2Vla1llYXIpO1xuICB9IGVsc2Uge1xuICAgIHllYXIgPSB3ZWVrWWVhcjtcbiAgfVxuXG4gIGNvbnN0IHsgbW9udGgsIGRheSB9ID0gdW5jb21wdXRlT3JkaW5hbCh5ZWFyLCBvcmRpbmFsKTtcbiAgcmV0dXJuIHsgeWVhciwgbW9udGgsIGRheSwgLi4udGltZU9iamVjdCh3ZWVrRGF0YSkgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyZWdvcmlhblRvT3JkaW5hbChncmVnRGF0YSkge1xuICBjb25zdCB7IHllYXIsIG1vbnRoLCBkYXkgfSA9IGdyZWdEYXRhO1xuICBjb25zdCBvcmRpbmFsID0gY29tcHV0ZU9yZGluYWwoeWVhciwgbW9udGgsIGRheSk7XG4gIHJldHVybiB7IHllYXIsIG9yZGluYWwsIC4uLnRpbWVPYmplY3QoZ3JlZ0RhdGEpIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvcmRpbmFsVG9HcmVnb3JpYW4ob3JkaW5hbERhdGEpIHtcbiAgY29uc3QgeyB5ZWFyLCBvcmRpbmFsIH0gPSBvcmRpbmFsRGF0YTtcbiAgY29uc3QgeyBtb250aCwgZGF5IH0gPSB1bmNvbXB1dGVPcmRpbmFsKHllYXIsIG9yZGluYWwpO1xuICByZXR1cm4geyB5ZWFyLCBtb250aCwgZGF5LCAuLi50aW1lT2JqZWN0KG9yZGluYWxEYXRhKSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW52YWxpZFdlZWtEYXRhKG9iaikge1xuICBjb25zdCB2YWxpZFllYXIgPSBpc0ludGVnZXIob2JqLndlZWtZZWFyKSxcbiAgICB2YWxpZFdlZWsgPSBpbnRlZ2VyQmV0d2VlbihvYmoud2Vla051bWJlciwgMSwgd2Vla3NJbldlZWtZZWFyKG9iai53ZWVrWWVhcikpLFxuICAgIHZhbGlkV2Vla2RheSA9IGludGVnZXJCZXR3ZWVuKG9iai53ZWVrZGF5LCAxLCA3KTtcblxuICBpZiAoIXZhbGlkWWVhcikge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcIndlZWtZZWFyXCIsIG9iai53ZWVrWWVhcik7XG4gIH0gZWxzZSBpZiAoIXZhbGlkV2Vlaykge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcIndlZWtcIiwgb2JqLndlZWspO1xuICB9IGVsc2UgaWYgKCF2YWxpZFdlZWtkYXkpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJ3ZWVrZGF5XCIsIG9iai53ZWVrZGF5KTtcbiAgfSBlbHNlIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludmFsaWRPcmRpbmFsRGF0YShvYmopIHtcbiAgY29uc3QgdmFsaWRZZWFyID0gaXNJbnRlZ2VyKG9iai55ZWFyKSxcbiAgICB2YWxpZE9yZGluYWwgPSBpbnRlZ2VyQmV0d2VlbihvYmoub3JkaW5hbCwgMSwgZGF5c0luWWVhcihvYmoueWVhcikpO1xuXG4gIGlmICghdmFsaWRZZWFyKSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwieWVhclwiLCBvYmoueWVhcik7XG4gIH0gZWxzZSBpZiAoIXZhbGlkT3JkaW5hbCkge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcIm9yZGluYWxcIiwgb2JqLm9yZGluYWwpO1xuICB9IGVsc2UgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW52YWxpZEdyZWdvcmlhbkRhdGEob2JqKSB7XG4gIGNvbnN0IHZhbGlkWWVhciA9IGlzSW50ZWdlcihvYmoueWVhciksXG4gICAgdmFsaWRNb250aCA9IGludGVnZXJCZXR3ZWVuKG9iai5tb250aCwgMSwgMTIpLFxuICAgIHZhbGlkRGF5ID0gaW50ZWdlckJldHdlZW4ob2JqLmRheSwgMSwgZGF5c0luTW9udGgob2JqLnllYXIsIG9iai5tb250aCkpO1xuXG4gIGlmICghdmFsaWRZZWFyKSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwieWVhclwiLCBvYmoueWVhcik7XG4gIH0gZWxzZSBpZiAoIXZhbGlkTW9udGgpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJtb250aFwiLCBvYmoubW9udGgpO1xuICB9IGVsc2UgaWYgKCF2YWxpZERheSkge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcImRheVwiLCBvYmouZGF5KTtcbiAgfSBlbHNlIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludmFsaWRUaW1lRGF0YShvYmopIHtcbiAgY29uc3QgeyBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmQgfSA9IG9iajtcbiAgY29uc3QgdmFsaWRIb3VyID1cbiAgICAgIGludGVnZXJCZXR3ZWVuKGhvdXIsIDAsIDIzKSB8fFxuICAgICAgKGhvdXIgPT09IDI0ICYmIG1pbnV0ZSA9PT0gMCAmJiBzZWNvbmQgPT09IDAgJiYgbWlsbGlzZWNvbmQgPT09IDApLFxuICAgIHZhbGlkTWludXRlID0gaW50ZWdlckJldHdlZW4obWludXRlLCAwLCA1OSksXG4gICAgdmFsaWRTZWNvbmQgPSBpbnRlZ2VyQmV0d2VlbihzZWNvbmQsIDAsIDU5KSxcbiAgICB2YWxpZE1pbGxpc2Vjb25kID0gaW50ZWdlckJldHdlZW4obWlsbGlzZWNvbmQsIDAsIDk5OSk7XG5cbiAgaWYgKCF2YWxpZEhvdXIpIHtcbiAgICByZXR1cm4gdW5pdE91dE9mUmFuZ2UoXCJob3VyXCIsIGhvdXIpO1xuICB9IGVsc2UgaWYgKCF2YWxpZE1pbnV0ZSkge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcIm1pbnV0ZVwiLCBtaW51dGUpO1xuICB9IGVsc2UgaWYgKCF2YWxpZFNlY29uZCkge1xuICAgIHJldHVybiB1bml0T3V0T2ZSYW5nZShcInNlY29uZFwiLCBzZWNvbmQpO1xuICB9IGVsc2UgaWYgKCF2YWxpZE1pbGxpc2Vjb25kKSB7XG4gICAgcmV0dXJuIHVuaXRPdXRPZlJhbmdlKFwibWlsbGlzZWNvbmRcIiwgbWlsbGlzZWNvbmQpO1xuICB9IGVsc2UgcmV0dXJuIGZhbHNlO1xufVxuIiwgImltcG9ydCBEdXJhdGlvbiBmcm9tIFwiLi9kdXJhdGlvbi5qc1wiO1xuaW1wb3J0IEludGVydmFsIGZyb20gXCIuL2ludGVydmFsLmpzXCI7XG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3MuanNcIjtcbmltcG9ydCBJbmZvIGZyb20gXCIuL2luZm8uanNcIjtcbmltcG9ydCBGb3JtYXR0ZXIgZnJvbSBcIi4vaW1wbC9mb3JtYXR0ZXIuanNcIjtcbmltcG9ydCBGaXhlZE9mZnNldFpvbmUgZnJvbSBcIi4vem9uZXMvZml4ZWRPZmZzZXRab25lLmpzXCI7XG5pbXBvcnQgTG9jYWxlIGZyb20gXCIuL2ltcGwvbG9jYWxlLmpzXCI7XG5pbXBvcnQge1xuICBpc1VuZGVmaW5lZCxcbiAgbWF5YmVBcnJheSxcbiAgaXNEYXRlLFxuICBpc051bWJlcixcbiAgYmVzdEJ5LFxuICBkYXlzSW5Nb250aCxcbiAgZGF5c0luWWVhcixcbiAgaXNMZWFwWWVhcixcbiAgd2Vla3NJbldlZWtZZWFyLFxuICBub3JtYWxpemVPYmplY3QsXG4gIHJvdW5kVG8sXG4gIG9ialRvTG9jYWxUUyxcbiAgcGFkU3RhcnQsXG59IGZyb20gXCIuL2ltcGwvdXRpbC5qc1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplWm9uZSB9IGZyb20gXCIuL2ltcGwvem9uZVV0aWwuanNcIjtcbmltcG9ydCBkaWZmIGZyb20gXCIuL2ltcGwvZGlmZi5qc1wiO1xuaW1wb3J0IHsgcGFyc2VSRkMyODIyRGF0ZSwgcGFyc2VJU09EYXRlLCBwYXJzZUhUVFBEYXRlLCBwYXJzZVNRTCB9IGZyb20gXCIuL2ltcGwvcmVnZXhQYXJzZXIuanNcIjtcbmltcG9ydCB7IHBhcnNlRnJvbVRva2VucywgZXhwbGFpbkZyb21Ub2tlbnMgfSBmcm9tIFwiLi9pbXBsL3Rva2VuUGFyc2VyLmpzXCI7XG5pbXBvcnQge1xuICBncmVnb3JpYW5Ub1dlZWssXG4gIHdlZWtUb0dyZWdvcmlhbixcbiAgZ3JlZ29yaWFuVG9PcmRpbmFsLFxuICBvcmRpbmFsVG9HcmVnb3JpYW4sXG4gIGhhc0ludmFsaWRHcmVnb3JpYW5EYXRhLFxuICBoYXNJbnZhbGlkV2Vla0RhdGEsXG4gIGhhc0ludmFsaWRPcmRpbmFsRGF0YSxcbiAgaGFzSW52YWxpZFRpbWVEYXRhLFxufSBmcm9tIFwiLi9pbXBsL2NvbnZlcnNpb25zLmpzXCI7XG5pbXBvcnQgKiBhcyBGb3JtYXRzIGZyb20gXCIuL2ltcGwvZm9ybWF0cy5qc1wiO1xuaW1wb3J0IHtcbiAgSW52YWxpZEFyZ3VtZW50RXJyb3IsXG4gIENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yLFxuICBJbnZhbGlkVW5pdEVycm9yLFxuICBJbnZhbGlkRGF0ZVRpbWVFcnJvcixcbn0gZnJvbSBcIi4vZXJyb3JzLmpzXCI7XG5pbXBvcnQgSW52YWxpZCBmcm9tIFwiLi9pbXBsL2ludmFsaWQuanNcIjtcblxuY29uc3QgSU5WQUxJRCA9IFwiSW52YWxpZCBEYXRlVGltZVwiO1xuY29uc3QgTUFYX0RBVEUgPSA4LjY0ZTE1O1xuXG5mdW5jdGlvbiB1bnN1cHBvcnRlZFpvbmUoem9uZSkge1xuICByZXR1cm4gbmV3IEludmFsaWQoXCJ1bnN1cHBvcnRlZCB6b25lXCIsIGB0aGUgem9uZSBcIiR7em9uZS5uYW1lfVwiIGlzIG5vdCBzdXBwb3J0ZWRgKTtcbn1cblxuLy8gd2UgY2FjaGUgd2VlayBkYXRhIG9uIHRoZSBEVCBvYmplY3QgYW5kIHRoaXMgaW50ZXJtZWRpYXRlcyB0aGUgY2FjaGVcbmZ1bmN0aW9uIHBvc3NpYmx5Q2FjaGVkV2Vla0RhdGEoZHQpIHtcbiAgaWYgKGR0LndlZWtEYXRhID09PSBudWxsKSB7XG4gICAgZHQud2Vla0RhdGEgPSBncmVnb3JpYW5Ub1dlZWsoZHQuYyk7XG4gIH1cbiAgcmV0dXJuIGR0LndlZWtEYXRhO1xufVxuXG4vLyBjbG9uZSByZWFsbHkgbWVhbnMsIFwibWFrZSBhIG5ldyBvYmplY3Qgd2l0aCB0aGVzZSBtb2RpZmljYXRpb25zXCIuIGFsbCBcInNldHRlcnNcIiByZWFsbHkgdXNlIHRoaXNcbi8vIHRvIGNyZWF0ZSBhIG5ldyBvYmplY3Qgd2hpbGUgb25seSBjaGFuZ2luZyBzb21lIG9mIHRoZSBwcm9wZXJ0aWVzXG5mdW5jdGlvbiBjbG9uZShpbnN0LCBhbHRzKSB7XG4gIGNvbnN0IGN1cnJlbnQgPSB7XG4gICAgdHM6IGluc3QudHMsXG4gICAgem9uZTogaW5zdC56b25lLFxuICAgIGM6IGluc3QuYyxcbiAgICBvOiBpbnN0Lm8sXG4gICAgbG9jOiBpbnN0LmxvYyxcbiAgICBpbnZhbGlkOiBpbnN0LmludmFsaWQsXG4gIH07XG4gIHJldHVybiBuZXcgRGF0ZVRpbWUoeyAuLi5jdXJyZW50LCAuLi5hbHRzLCBvbGQ6IGN1cnJlbnQgfSk7XG59XG5cbi8vIGZpbmQgdGhlIHJpZ2h0IG9mZnNldCBhIGdpdmVuIGxvY2FsIHRpbWUuIFRoZSBvIGlucHV0IGlzIG91ciBndWVzcywgd2hpY2ggZGV0ZXJtaW5lcyB3aGljaFxuLy8gb2Zmc2V0IHdlJ2xsIHBpY2sgaW4gYW1iaWd1b3VzIGNhc2VzIChlLmcuIHRoZXJlIGFyZSB0d28gMyBBTXMgYi9jIEZhbGxiYWNrIERTVClcbmZ1bmN0aW9uIGZpeE9mZnNldChsb2NhbFRTLCBvLCB0eikge1xuICAvLyBPdXIgVVRDIHRpbWUgaXMganVzdCBhIGd1ZXNzIGJlY2F1c2Ugb3VyIG9mZnNldCBpcyBqdXN0IGEgZ3Vlc3NcbiAgbGV0IHV0Y0d1ZXNzID0gbG9jYWxUUyAtIG8gKiA2MCAqIDEwMDA7XG5cbiAgLy8gVGVzdCB3aGV0aGVyIHRoZSB6b25lIG1hdGNoZXMgdGhlIG9mZnNldCBmb3IgdGhpcyB0c1xuICBjb25zdCBvMiA9IHR6Lm9mZnNldCh1dGNHdWVzcyk7XG5cbiAgLy8gSWYgc28sIG9mZnNldCBkaWRuJ3QgY2hhbmdlIGFuZCB3ZSdyZSBkb25lXG4gIGlmIChvID09PSBvMikge1xuICAgIHJldHVybiBbdXRjR3Vlc3MsIG9dO1xuICB9XG5cbiAgLy8gSWYgbm90LCBjaGFuZ2UgdGhlIHRzIGJ5IHRoZSBkaWZmZXJlbmNlIGluIHRoZSBvZmZzZXRcbiAgdXRjR3Vlc3MgLT0gKG8yIC0gbykgKiA2MCAqIDEwMDA7XG5cbiAgLy8gSWYgdGhhdCBnaXZlcyB1cyB0aGUgbG9jYWwgdGltZSB3ZSB3YW50LCB3ZSdyZSBkb25lXG4gIGNvbnN0IG8zID0gdHoub2Zmc2V0KHV0Y0d1ZXNzKTtcbiAgaWYgKG8yID09PSBvMykge1xuICAgIHJldHVybiBbdXRjR3Vlc3MsIG8yXTtcbiAgfVxuXG4gIC8vIElmIGl0J3MgZGlmZmVyZW50LCB3ZSdyZSBpbiBhIGhvbGUgdGltZS4gVGhlIG9mZnNldCBoYXMgY2hhbmdlZCwgYnV0IHRoZSB3ZSBkb24ndCBhZGp1c3QgdGhlIHRpbWVcbiAgcmV0dXJuIFtsb2NhbFRTIC0gTWF0aC5taW4obzIsIG8zKSAqIDYwICogMTAwMCwgTWF0aC5tYXgobzIsIG8zKV07XG59XG5cbi8vIGNvbnZlcnQgYW4gZXBvY2ggdGltZXN0YW1wIGludG8gYSBjYWxlbmRhciBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gb2Zmc2V0XG5mdW5jdGlvbiB0c1RvT2JqKHRzLCBvZmZzZXQpIHtcbiAgdHMgKz0gb2Zmc2V0ICogNjAgKiAxMDAwO1xuXG4gIGNvbnN0IGQgPSBuZXcgRGF0ZSh0cyk7XG5cbiAgcmV0dXJuIHtcbiAgICB5ZWFyOiBkLmdldFVUQ0Z1bGxZZWFyKCksXG4gICAgbW9udGg6IGQuZ2V0VVRDTW9udGgoKSArIDEsXG4gICAgZGF5OiBkLmdldFVUQ0RhdGUoKSxcbiAgICBob3VyOiBkLmdldFVUQ0hvdXJzKCksXG4gICAgbWludXRlOiBkLmdldFVUQ01pbnV0ZXMoKSxcbiAgICBzZWNvbmQ6IGQuZ2V0VVRDU2Vjb25kcygpLFxuICAgIG1pbGxpc2Vjb25kOiBkLmdldFVUQ01pbGxpc2Vjb25kcygpLFxuICB9O1xufVxuXG4vLyBjb252ZXJ0IGEgY2FsZW5kYXIgb2JqZWN0IHRvIGEgZXBvY2ggdGltZXN0YW1wXG5mdW5jdGlvbiBvYmpUb1RTKG9iaiwgb2Zmc2V0LCB6b25lKSB7XG4gIHJldHVybiBmaXhPZmZzZXQob2JqVG9Mb2NhbFRTKG9iaiksIG9mZnNldCwgem9uZSk7XG59XG5cbi8vIGNyZWF0ZSBhIG5ldyBEVCBpbnN0YW5jZSBieSBhZGRpbmcgYSBkdXJhdGlvbiwgYWRqdXN0aW5nIGZvciBEU1RzXG5mdW5jdGlvbiBhZGp1c3RUaW1lKGluc3QsIGR1cikge1xuICBjb25zdCBvUHJlID0gaW5zdC5vLFxuICAgIHllYXIgPSBpbnN0LmMueWVhciArIE1hdGgudHJ1bmMoZHVyLnllYXJzKSxcbiAgICBtb250aCA9IGluc3QuYy5tb250aCArIE1hdGgudHJ1bmMoZHVyLm1vbnRocykgKyBNYXRoLnRydW5jKGR1ci5xdWFydGVycykgKiAzLFxuICAgIGMgPSB7XG4gICAgICAuLi5pbnN0LmMsXG4gICAgICB5ZWFyLFxuICAgICAgbW9udGgsXG4gICAgICBkYXk6XG4gICAgICAgIE1hdGgubWluKGluc3QuYy5kYXksIGRheXNJbk1vbnRoKHllYXIsIG1vbnRoKSkgK1xuICAgICAgICBNYXRoLnRydW5jKGR1ci5kYXlzKSArXG4gICAgICAgIE1hdGgudHJ1bmMoZHVyLndlZWtzKSAqIDcsXG4gICAgfSxcbiAgICBtaWxsaXNUb0FkZCA9IER1cmF0aW9uLmZyb21PYmplY3Qoe1xuICAgICAgeWVhcnM6IGR1ci55ZWFycyAtIE1hdGgudHJ1bmMoZHVyLnllYXJzKSxcbiAgICAgIHF1YXJ0ZXJzOiBkdXIucXVhcnRlcnMgLSBNYXRoLnRydW5jKGR1ci5xdWFydGVycyksXG4gICAgICBtb250aHM6IGR1ci5tb250aHMgLSBNYXRoLnRydW5jKGR1ci5tb250aHMpLFxuICAgICAgd2Vla3M6IGR1ci53ZWVrcyAtIE1hdGgudHJ1bmMoZHVyLndlZWtzKSxcbiAgICAgIGRheXM6IGR1ci5kYXlzIC0gTWF0aC50cnVuYyhkdXIuZGF5cyksXG4gICAgICBob3VyczogZHVyLmhvdXJzLFxuICAgICAgbWludXRlczogZHVyLm1pbnV0ZXMsXG4gICAgICBzZWNvbmRzOiBkdXIuc2Vjb25kcyxcbiAgICAgIG1pbGxpc2Vjb25kczogZHVyLm1pbGxpc2Vjb25kcyxcbiAgICB9KS5hcyhcIm1pbGxpc2Vjb25kc1wiKSxcbiAgICBsb2NhbFRTID0gb2JqVG9Mb2NhbFRTKGMpO1xuXG4gIGxldCBbdHMsIG9dID0gZml4T2Zmc2V0KGxvY2FsVFMsIG9QcmUsIGluc3Quem9uZSk7XG5cbiAgaWYgKG1pbGxpc1RvQWRkICE9PSAwKSB7XG4gICAgdHMgKz0gbWlsbGlzVG9BZGQ7XG4gICAgLy8gdGhhdCBjb3VsZCBoYXZlIGNoYW5nZWQgdGhlIG9mZnNldCBieSBnb2luZyBvdmVyIGEgRFNULCBidXQgd2Ugd2FudCB0byBrZWVwIHRoZSB0cyB0aGUgc2FtZVxuICAgIG8gPSBpbnN0LnpvbmUub2Zmc2V0KHRzKTtcbiAgfVxuXG4gIHJldHVybiB7IHRzLCBvIH07XG59XG5cbi8vIGhlbHBlciB1c2VmdWwgaW4gdHVybmluZyB0aGUgcmVzdWx0cyBvZiBwYXJzaW5nIGludG8gcmVhbCBkYXRlc1xuLy8gYnkgaGFuZGxpbmcgdGhlIHpvbmUgb3B0aW9uc1xuZnVuY3Rpb24gcGFyc2VEYXRhVG9EYXRlVGltZShwYXJzZWQsIHBhcnNlZFpvbmUsIG9wdHMsIGZvcm1hdCwgdGV4dCwgc3BlY2lmaWNPZmZzZXQpIHtcbiAgY29uc3QgeyBzZXRab25lLCB6b25lIH0gPSBvcHRzO1xuICBpZiAocGFyc2VkICYmIE9iamVjdC5rZXlzKHBhcnNlZCkubGVuZ3RoICE9PSAwKSB7XG4gICAgY29uc3QgaW50ZXJwcmV0YXRpb25ab25lID0gcGFyc2VkWm9uZSB8fCB6b25lLFxuICAgICAgaW5zdCA9IERhdGVUaW1lLmZyb21PYmplY3QocGFyc2VkLCB7XG4gICAgICAgIC4uLm9wdHMsXG4gICAgICAgIHpvbmU6IGludGVycHJldGF0aW9uWm9uZSxcbiAgICAgICAgc3BlY2lmaWNPZmZzZXQsXG4gICAgICB9KTtcbiAgICByZXR1cm4gc2V0Wm9uZSA/IGluc3QgOiBpbnN0LnNldFpvbmUoem9uZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoXG4gICAgICBuZXcgSW52YWxpZChcInVucGFyc2FibGVcIiwgYHRoZSBpbnB1dCBcIiR7dGV4dH1cIiBjYW4ndCBiZSBwYXJzZWQgYXMgJHtmb3JtYXR9YClcbiAgICApO1xuICB9XG59XG5cbi8vIGlmIHlvdSB3YW50IHRvIG91dHB1dCBhIHRlY2huaWNhbCBmb3JtYXQgKGUuZy4gUkZDIDI4MjIpLCB0aGlzIGhlbHBlclxuLy8gaGVscHMgaGFuZGxlIHRoZSBkZXRhaWxzXG5mdW5jdGlvbiB0b1RlY2hGb3JtYXQoZHQsIGZvcm1hdCwgYWxsb3daID0gdHJ1ZSkge1xuICByZXR1cm4gZHQuaXNWYWxpZFxuICAgID8gRm9ybWF0dGVyLmNyZWF0ZShMb2NhbGUuY3JlYXRlKFwiZW4tVVNcIiksIHtcbiAgICAgICAgYWxsb3daLFxuICAgICAgICBmb3JjZVNpbXBsZTogdHJ1ZSxcbiAgICAgIH0pLmZvcm1hdERhdGVUaW1lRnJvbVN0cmluZyhkdCwgZm9ybWF0KVxuICAgIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gdG9JU09EYXRlKG8sIGV4dGVuZGVkKSB7XG4gIGNvbnN0IGxvbmdGb3JtYXQgPSBvLmMueWVhciA+IDk5OTkgfHwgby5jLnllYXIgPCAwO1xuICBsZXQgYyA9IFwiXCI7XG4gIGlmIChsb25nRm9ybWF0ICYmIG8uYy55ZWFyID49IDApIGMgKz0gXCIrXCI7XG4gIGMgKz0gcGFkU3RhcnQoby5jLnllYXIsIGxvbmdGb3JtYXQgPyA2IDogNCk7XG5cbiAgaWYgKGV4dGVuZGVkKSB7XG4gICAgYyArPSBcIi1cIjtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5tb250aCk7XG4gICAgYyArPSBcIi1cIjtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5kYXkpO1xuICB9IGVsc2Uge1xuICAgIGMgKz0gcGFkU3RhcnQoby5jLm1vbnRoKTtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5kYXkpO1xuICB9XG4gIHJldHVybiBjO1xufVxuXG5mdW5jdGlvbiB0b0lTT1RpbWUobywgZXh0ZW5kZWQsIHN1cHByZXNzU2Vjb25kcywgc3VwcHJlc3NNaWxsaXNlY29uZHMsIGluY2x1ZGVPZmZzZXQpIHtcbiAgbGV0IGMgPSBwYWRTdGFydChvLmMuaG91cik7XG4gIGlmIChleHRlbmRlZCkge1xuICAgIGMgKz0gXCI6XCI7XG4gICAgYyArPSBwYWRTdGFydChvLmMubWludXRlKTtcbiAgICBpZiAoby5jLnNlY29uZCAhPT0gMCB8fCAhc3VwcHJlc3NTZWNvbmRzKSB7XG4gICAgICBjICs9IFwiOlwiO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjICs9IHBhZFN0YXJ0KG8uYy5taW51dGUpO1xuICB9XG5cbiAgaWYgKG8uYy5zZWNvbmQgIT09IDAgfHwgIXN1cHByZXNzU2Vjb25kcykge1xuICAgIGMgKz0gcGFkU3RhcnQoby5jLnNlY29uZCk7XG5cbiAgICBpZiAoby5jLm1pbGxpc2Vjb25kICE9PSAwIHx8ICFzdXBwcmVzc01pbGxpc2Vjb25kcykge1xuICAgICAgYyArPSBcIi5cIjtcbiAgICAgIGMgKz0gcGFkU3RhcnQoby5jLm1pbGxpc2Vjb25kLCAzKTtcbiAgICB9XG4gIH1cblxuICBpZiAoaW5jbHVkZU9mZnNldCkge1xuICAgIGlmIChvLmlzT2Zmc2V0Rml4ZWQgJiYgby5vZmZzZXQgPT09IDApIHtcbiAgICAgIGMgKz0gXCJaXCI7XG4gICAgfSBlbHNlIGlmIChvLm8gPCAwKSB7XG4gICAgICBjICs9IFwiLVwiO1xuICAgICAgYyArPSBwYWRTdGFydChNYXRoLnRydW5jKC1vLm8gLyA2MCkpO1xuICAgICAgYyArPSBcIjpcIjtcbiAgICAgIGMgKz0gcGFkU3RhcnQoTWF0aC50cnVuYygtby5vICUgNjApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYyArPSBcIitcIjtcbiAgICAgIGMgKz0gcGFkU3RhcnQoTWF0aC50cnVuYyhvLm8gLyA2MCkpO1xuICAgICAgYyArPSBcIjpcIjtcbiAgICAgIGMgKz0gcGFkU3RhcnQoTWF0aC50cnVuYyhvLm8gJSA2MCkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYztcbn1cblxuLy8gZGVmYXVsdHMgZm9yIHVuc3BlY2lmaWVkIHVuaXRzIGluIHRoZSBzdXBwb3J0ZWQgY2FsZW5kYXJzXG5jb25zdCBkZWZhdWx0VW5pdFZhbHVlcyA9IHtcbiAgICBtb250aDogMSxcbiAgICBkYXk6IDEsXG4gICAgaG91cjogMCxcbiAgICBtaW51dGU6IDAsXG4gICAgc2Vjb25kOiAwLFxuICAgIG1pbGxpc2Vjb25kOiAwLFxuICB9LFxuICBkZWZhdWx0V2Vla1VuaXRWYWx1ZXMgPSB7XG4gICAgd2Vla051bWJlcjogMSxcbiAgICB3ZWVrZGF5OiAxLFxuICAgIGhvdXI6IDAsXG4gICAgbWludXRlOiAwLFxuICAgIHNlY29uZDogMCxcbiAgICBtaWxsaXNlY29uZDogMCxcbiAgfSxcbiAgZGVmYXVsdE9yZGluYWxVbml0VmFsdWVzID0ge1xuICAgIG9yZGluYWw6IDEsXG4gICAgaG91cjogMCxcbiAgICBtaW51dGU6IDAsXG4gICAgc2Vjb25kOiAwLFxuICAgIG1pbGxpc2Vjb25kOiAwLFxuICB9O1xuXG4vLyBVbml0cyBpbiB0aGUgc3VwcG9ydGVkIGNhbGVuZGFycywgc29ydGVkIGJ5IGJpZ25lc3NcbmNvbnN0IG9yZGVyZWRVbml0cyA9IFtcInllYXJcIiwgXCJtb250aFwiLCBcImRheVwiLCBcImhvdXJcIiwgXCJtaW51dGVcIiwgXCJzZWNvbmRcIiwgXCJtaWxsaXNlY29uZFwiXSxcbiAgb3JkZXJlZFdlZWtVbml0cyA9IFtcbiAgICBcIndlZWtZZWFyXCIsXG4gICAgXCJ3ZWVrTnVtYmVyXCIsXG4gICAgXCJ3ZWVrZGF5XCIsXG4gICAgXCJob3VyXCIsXG4gICAgXCJtaW51dGVcIixcbiAgICBcInNlY29uZFwiLFxuICAgIFwibWlsbGlzZWNvbmRcIixcbiAgXSxcbiAgb3JkZXJlZE9yZGluYWxVbml0cyA9IFtcInllYXJcIiwgXCJvcmRpbmFsXCIsIFwiaG91clwiLCBcIm1pbnV0ZVwiLCBcInNlY29uZFwiLCBcIm1pbGxpc2Vjb25kXCJdO1xuXG4vLyBzdGFuZGFyZGl6ZSBjYXNlIGFuZCBwbHVyYWxpdHkgaW4gdW5pdHNcbmZ1bmN0aW9uIG5vcm1hbGl6ZVVuaXQodW5pdCkge1xuICBjb25zdCBub3JtYWxpemVkID0ge1xuICAgIHllYXI6IFwieWVhclwiLFxuICAgIHllYXJzOiBcInllYXJcIixcbiAgICBtb250aDogXCJtb250aFwiLFxuICAgIG1vbnRoczogXCJtb250aFwiLFxuICAgIGRheTogXCJkYXlcIixcbiAgICBkYXlzOiBcImRheVwiLFxuICAgIGhvdXI6IFwiaG91clwiLFxuICAgIGhvdXJzOiBcImhvdXJcIixcbiAgICBtaW51dGU6IFwibWludXRlXCIsXG4gICAgbWludXRlczogXCJtaW51dGVcIixcbiAgICBxdWFydGVyOiBcInF1YXJ0ZXJcIixcbiAgICBxdWFydGVyczogXCJxdWFydGVyXCIsXG4gICAgc2Vjb25kOiBcInNlY29uZFwiLFxuICAgIHNlY29uZHM6IFwic2Vjb25kXCIsXG4gICAgbWlsbGlzZWNvbmQ6IFwibWlsbGlzZWNvbmRcIixcbiAgICBtaWxsaXNlY29uZHM6IFwibWlsbGlzZWNvbmRcIixcbiAgICB3ZWVrZGF5OiBcIndlZWtkYXlcIixcbiAgICB3ZWVrZGF5czogXCJ3ZWVrZGF5XCIsXG4gICAgd2Vla251bWJlcjogXCJ3ZWVrTnVtYmVyXCIsXG4gICAgd2Vla3NudW1iZXI6IFwid2Vla051bWJlclwiLFxuICAgIHdlZWtudW1iZXJzOiBcIndlZWtOdW1iZXJcIixcbiAgICB3ZWVreWVhcjogXCJ3ZWVrWWVhclwiLFxuICAgIHdlZWt5ZWFyczogXCJ3ZWVrWWVhclwiLFxuICAgIG9yZGluYWw6IFwib3JkaW5hbFwiLFxuICB9W3VuaXQudG9Mb3dlckNhc2UoKV07XG5cbiAgaWYgKCFub3JtYWxpemVkKSB0aHJvdyBuZXcgSW52YWxpZFVuaXRFcnJvcih1bml0KTtcblxuICByZXR1cm4gbm9ybWFsaXplZDtcbn1cblxuLy8gdGhpcyBpcyBhIGR1bWJlZCBkb3duIHZlcnNpb24gb2YgZnJvbU9iamVjdCgpIHRoYXQgcnVucyBhYm91dCA2MCUgZmFzdGVyXG4vLyBidXQgZG9lc24ndCBkbyBhbnkgdmFsaWRhdGlvbiwgbWFrZXMgYSBidW5jaCBvZiBhc3N1bXB0aW9ucyBhYm91dCB3aGF0IHVuaXRzXG4vLyBhcmUgcHJlc2VudCwgYW5kIHNvIG9uLlxuXG4vLyB0aGlzIGlzIGEgZHVtYmVkIGRvd24gdmVyc2lvbiBvZiBmcm9tT2JqZWN0KCkgdGhhdCBydW5zIGFib3V0IDYwJSBmYXN0ZXJcbi8vIGJ1dCBkb2Vzbid0IGRvIGFueSB2YWxpZGF0aW9uLCBtYWtlcyBhIGJ1bmNoIG9mIGFzc3VtcHRpb25zIGFib3V0IHdoYXQgdW5pdHNcbi8vIGFyZSBwcmVzZW50LCBhbmQgc28gb24uXG5mdW5jdGlvbiBxdWlja0RUKG9iaiwgb3B0cykge1xuICBjb25zdCB6b25lID0gbm9ybWFsaXplWm9uZShvcHRzLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKSxcbiAgICBsb2MgPSBMb2NhbGUuZnJvbU9iamVjdChvcHRzKSxcbiAgICB0c05vdyA9IFNldHRpbmdzLm5vdygpO1xuXG4gIGxldCB0cywgbztcblxuICAvLyBhc3N1bWUgd2UgaGF2ZSB0aGUgaGlnaGVyLW9yZGVyIHVuaXRzXG4gIGlmICghaXNVbmRlZmluZWQob2JqLnllYXIpKSB7XG4gICAgZm9yIChjb25zdCB1IG9mIG9yZGVyZWRVbml0cykge1xuICAgICAgaWYgKGlzVW5kZWZpbmVkKG9ialt1XSkpIHtcbiAgICAgICAgb2JqW3VdID0gZGVmYXVsdFVuaXRWYWx1ZXNbdV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaW52YWxpZCA9IGhhc0ludmFsaWRHcmVnb3JpYW5EYXRhKG9iaikgfHwgaGFzSW52YWxpZFRpbWVEYXRhKG9iaik7XG4gICAgaWYgKGludmFsaWQpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKGludmFsaWQpO1xuICAgIH1cblxuICAgIGNvbnN0IG9mZnNldFByb3ZpcyA9IHpvbmUub2Zmc2V0KHRzTm93KTtcbiAgICBbdHMsIG9dID0gb2JqVG9UUyhvYmosIG9mZnNldFByb3Zpcywgem9uZSk7XG4gIH0gZWxzZSB7XG4gICAgdHMgPSB0c05vdztcbiAgfVxuXG4gIHJldHVybiBuZXcgRGF0ZVRpbWUoeyB0cywgem9uZSwgbG9jLCBvIH0pO1xufVxuXG5mdW5jdGlvbiBkaWZmUmVsYXRpdmUoc3RhcnQsIGVuZCwgb3B0cykge1xuICBjb25zdCByb3VuZCA9IGlzVW5kZWZpbmVkKG9wdHMucm91bmQpID8gdHJ1ZSA6IG9wdHMucm91bmQsXG4gICAgZm9ybWF0ID0gKGMsIHVuaXQpID0+IHtcbiAgICAgIGMgPSByb3VuZFRvKGMsIHJvdW5kIHx8IG9wdHMuY2FsZW5kYXJ5ID8gMCA6IDIsIHRydWUpO1xuICAgICAgY29uc3QgZm9ybWF0dGVyID0gZW5kLmxvYy5jbG9uZShvcHRzKS5yZWxGb3JtYXR0ZXIob3B0cyk7XG4gICAgICByZXR1cm4gZm9ybWF0dGVyLmZvcm1hdChjLCB1bml0KTtcbiAgICB9LFxuICAgIGRpZmZlciA9ICh1bml0KSA9PiB7XG4gICAgICBpZiAob3B0cy5jYWxlbmRhcnkpIHtcbiAgICAgICAgaWYgKCFlbmQuaGFzU2FtZShzdGFydCwgdW5pdCkpIHtcbiAgICAgICAgICByZXR1cm4gZW5kLnN0YXJ0T2YodW5pdCkuZGlmZihzdGFydC5zdGFydE9mKHVuaXQpLCB1bml0KS5nZXQodW5pdCk7XG4gICAgICAgIH0gZWxzZSByZXR1cm4gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBlbmQuZGlmZihzdGFydCwgdW5pdCkuZ2V0KHVuaXQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgaWYgKG9wdHMudW5pdCkge1xuICAgIHJldHVybiBmb3JtYXQoZGlmZmVyKG9wdHMudW5pdCksIG9wdHMudW5pdCk7XG4gIH1cblxuICBmb3IgKGNvbnN0IHVuaXQgb2Ygb3B0cy51bml0cykge1xuICAgIGNvbnN0IGNvdW50ID0gZGlmZmVyKHVuaXQpO1xuICAgIGlmIChNYXRoLmFicyhjb3VudCkgPj0gMSkge1xuICAgICAgcmV0dXJuIGZvcm1hdChjb3VudCwgdW5pdCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBmb3JtYXQoc3RhcnQgPiBlbmQgPyAtMCA6IDAsIG9wdHMudW5pdHNbb3B0cy51bml0cy5sZW5ndGggLSAxXSk7XG59XG5cbmZ1bmN0aW9uIGxhc3RPcHRzKGFyZ0xpc3QpIHtcbiAgbGV0IG9wdHMgPSB7fSxcbiAgICBhcmdzO1xuICBpZiAoYXJnTGlzdC5sZW5ndGggPiAwICYmIHR5cGVvZiBhcmdMaXN0W2FyZ0xpc3QubGVuZ3RoIC0gMV0gPT09IFwib2JqZWN0XCIpIHtcbiAgICBvcHRzID0gYXJnTGlzdFthcmdMaXN0Lmxlbmd0aCAtIDFdO1xuICAgIGFyZ3MgPSBBcnJheS5mcm9tKGFyZ0xpc3QpLnNsaWNlKDAsIGFyZ0xpc3QubGVuZ3RoIC0gMSk7XG4gIH0gZWxzZSB7XG4gICAgYXJncyA9IEFycmF5LmZyb20oYXJnTGlzdCk7XG4gIH1cbiAgcmV0dXJuIFtvcHRzLCBhcmdzXTtcbn1cblxuLyoqXG4gKiBBIERhdGVUaW1lIGlzIGFuIGltbXV0YWJsZSBkYXRhIHN0cnVjdHVyZSByZXByZXNlbnRpbmcgYSBzcGVjaWZpYyBkYXRlIGFuZCB0aW1lIGFuZCBhY2NvbXBhbnlpbmcgbWV0aG9kcy4gSXQgY29udGFpbnMgY2xhc3MgYW5kIGluc3RhbmNlIG1ldGhvZHMgZm9yIGNyZWF0aW5nLCBwYXJzaW5nLCBpbnRlcnJvZ2F0aW5nLCB0cmFuc2Zvcm1pbmcsIGFuZCBmb3JtYXR0aW5nIHRoZW0uXG4gKlxuICogQSBEYXRlVGltZSBjb21wcmlzZXMgb2Y6XG4gKiAqIEEgdGltZXN0YW1wLiBFYWNoIERhdGVUaW1lIGluc3RhbmNlIHJlZmVycyB0byBhIHNwZWNpZmljIG1pbGxpc2Vjb25kIG9mIHRoZSBVbml4IGVwb2NoLlxuICogKiBBIHRpbWUgem9uZS4gRWFjaCBpbnN0YW5jZSBpcyBjb25zaWRlcmVkIGluIHRoZSBjb250ZXh0IG9mIGEgc3BlY2lmaWMgem9uZSAoYnkgZGVmYXVsdCB0aGUgbG9jYWwgc3lzdGVtJ3Mgem9uZSkuXG4gKiAqIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyB0aGF0IGVmZmVjdCBob3cgb3V0cHV0IHN0cmluZ3MgYXJlIGZvcm1hdHRlZCwgc3VjaCBhcyBgbG9jYWxlYCwgYG51bWJlcmluZ1N5c3RlbWAsIGFuZCBgb3V0cHV0Q2FsZW5kYXJgLlxuICpcbiAqIEhlcmUgaXMgYSBicmllZiBvdmVydmlldyBvZiB0aGUgbW9zdCBjb21tb25seSB1c2VkIGZ1bmN0aW9uYWxpdHkgaXQgcHJvdmlkZXM6XG4gKlxuICogKiAqKkNyZWF0aW9uKio6IFRvIGNyZWF0ZSBhIERhdGVUaW1lIGZyb20gaXRzIGNvbXBvbmVudHMsIHVzZSBvbmUgb2YgaXRzIGZhY3RvcnkgY2xhc3MgbWV0aG9kczoge0BsaW5rIERhdGVUaW1lI2xvY2FsfSwge0BsaW5rIERhdGVUaW1lI3V0Y30sIGFuZCAobW9zdCBmbGV4aWJseSkge0BsaW5rIERhdGVUaW1lI2Zyb21PYmplY3R9LiBUbyBjcmVhdGUgb25lIGZyb20gYSBzdGFuZGFyZCBzdHJpbmcgZm9ybWF0LCB1c2Uge0BsaW5rIERhdGVUaW1lI2Zyb21JU099LCB7QGxpbmsgRGF0ZVRpbWUjZnJvbUhUVFB9LCBhbmQge0BsaW5rIERhdGVUaW1lI2Zyb21SRkMyODIyfS4gVG8gY3JlYXRlIG9uZSBmcm9tIGEgY3VzdG9tIHN0cmluZyBmb3JtYXQsIHVzZSB7QGxpbmsgRGF0ZVRpbWUjZnJvbUZvcm1hdH0uIFRvIGNyZWF0ZSBvbmUgZnJvbSBhIG5hdGl2ZSBKUyBkYXRlLCB1c2Uge0BsaW5rIERhdGVUaW1lI2Zyb21KU0RhdGV9LlxuICogKiAqKkdyZWdvcmlhbiBjYWxlbmRhciBhbmQgdGltZSoqOiBUbyBleGFtaW5lIHRoZSBHcmVnb3JpYW4gcHJvcGVydGllcyBvZiBhIERhdGVUaW1lIGluZGl2aWR1YWxseSAoaS5lIGFzIG9wcG9zZWQgdG8gY29sbGVjdGl2ZWx5IHRocm91Z2gge0BsaW5rIERhdGVUaW1lI3RvT2JqZWN0fSksIHVzZSB0aGUge0BsaW5rIERhdGVUaW1lI3llYXJ9LCB7QGxpbmsgRGF0ZVRpbWUjbW9udGh9LFxuICoge0BsaW5rIERhdGVUaW1lI2RheX0sIHtAbGluayBEYXRlVGltZSNob3VyfSwge0BsaW5rIERhdGVUaW1lI21pbnV0ZX0sIHtAbGluayBEYXRlVGltZSNzZWNvbmR9LCB7QGxpbmsgRGF0ZVRpbWUjbWlsbGlzZWNvbmR9IGFjY2Vzc29ycy5cbiAqICogKipXZWVrIGNhbGVuZGFyKio6IEZvciBJU08gd2VlayBjYWxlbmRhciBhdHRyaWJ1dGVzLCBzZWUgdGhlIHtAbGluayBEYXRlVGltZSN3ZWVrWWVhcn0sIHtAbGluayBEYXRlVGltZSN3ZWVrTnVtYmVyfSwgYW5kIHtAbGluayBEYXRlVGltZSN3ZWVrZGF5fSBhY2Nlc3NvcnMuXG4gKiAqICoqQ29uZmlndXJhdGlvbioqIFNlZSB0aGUge0BsaW5rIERhdGVUaW1lI2xvY2FsZX0gYW5kIHtAbGluayBEYXRlVGltZSNudW1iZXJpbmdTeXN0ZW19IGFjY2Vzc29ycy5cbiAqICogKipUcmFuc2Zvcm1hdGlvbioqOiBUbyB0cmFuc2Zvcm0gdGhlIERhdGVUaW1lIGludG8gb3RoZXIgRGF0ZVRpbWVzLCB1c2Uge0BsaW5rIERhdGVUaW1lI3NldH0sIHtAbGluayBEYXRlVGltZSNyZWNvbmZpZ3VyZX0sIHtAbGluayBEYXRlVGltZSNzZXRab25lfSwge0BsaW5rIERhdGVUaW1lI3NldExvY2FsZX0sIHtAbGluayBEYXRlVGltZS5wbHVzfSwge0BsaW5rIERhdGVUaW1lI21pbnVzfSwge0BsaW5rIERhdGVUaW1lI2VuZE9mfSwge0BsaW5rIERhdGVUaW1lI3N0YXJ0T2Z9LCB7QGxpbmsgRGF0ZVRpbWUjdG9VVEN9LCBhbmQge0BsaW5rIERhdGVUaW1lI3RvTG9jYWx9LlxuICogKiAqKk91dHB1dCoqOiBUbyBjb252ZXJ0IHRoZSBEYXRlVGltZSB0byBvdGhlciByZXByZXNlbnRhdGlvbnMsIHVzZSB0aGUge0BsaW5rIERhdGVUaW1lI3RvUmVsYXRpdmV9LCB7QGxpbmsgRGF0ZVRpbWUjdG9SZWxhdGl2ZUNhbGVuZGFyfSwge0BsaW5rIERhdGVUaW1lI3RvSlNPTn0sIHtAbGluayBEYXRlVGltZSN0b0lTT30sIHtAbGluayBEYXRlVGltZSN0b0hUVFB9LCB7QGxpbmsgRGF0ZVRpbWUjdG9PYmplY3R9LCB7QGxpbmsgRGF0ZVRpbWUjdG9SRkMyODIyfSwge0BsaW5rIERhdGVUaW1lI3RvU3RyaW5nfSwge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSwge0BsaW5rIERhdGVUaW1lI3RvRm9ybWF0fSwge0BsaW5rIERhdGVUaW1lI3RvTWlsbGlzfSBhbmQge0BsaW5rIERhdGVUaW1lI3RvSlNEYXRlfS5cbiAqXG4gKiBUaGVyZSdzIHBsZW50eSBvdGhlcnMgZG9jdW1lbnRlZCBiZWxvdy4gSW4gYWRkaXRpb24sIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHN1YnRsZXIgdG9waWNzIGxpa2UgaW50ZXJuYXRpb25hbGl6YXRpb24sIHRpbWUgem9uZXMsIGFsdGVybmF0aXZlIGNhbGVuZGFycywgdmFsaWRpdHksIGFuZCBzbyBvbiwgc2VlIHRoZSBleHRlcm5hbCBkb2N1bWVudGF0aW9uLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEYXRlVGltZSB7XG4gIC8qKlxuICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbmZpZykge1xuICAgIGNvbnN0IHpvbmUgPSBjb25maWcuem9uZSB8fCBTZXR0aW5ncy5kZWZhdWx0Wm9uZTtcblxuICAgIGxldCBpbnZhbGlkID1cbiAgICAgIGNvbmZpZy5pbnZhbGlkIHx8XG4gICAgICAoTnVtYmVyLmlzTmFOKGNvbmZpZy50cykgPyBuZXcgSW52YWxpZChcImludmFsaWQgaW5wdXRcIikgOiBudWxsKSB8fFxuICAgICAgKCF6b25lLmlzVmFsaWQgPyB1bnN1cHBvcnRlZFpvbmUoem9uZSkgOiBudWxsKTtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLnRzID0gaXNVbmRlZmluZWQoY29uZmlnLnRzKSA/IFNldHRpbmdzLm5vdygpIDogY29uZmlnLnRzO1xuXG4gICAgbGV0IGMgPSBudWxsLFxuICAgICAgbyA9IG51bGw7XG4gICAgaWYgKCFpbnZhbGlkKSB7XG4gICAgICBjb25zdCB1bmNoYW5nZWQgPSBjb25maWcub2xkICYmIGNvbmZpZy5vbGQudHMgPT09IHRoaXMudHMgJiYgY29uZmlnLm9sZC56b25lLmVxdWFscyh6b25lKTtcblxuICAgICAgaWYgKHVuY2hhbmdlZCkge1xuICAgICAgICBbYywgb10gPSBbY29uZmlnLm9sZC5jLCBjb25maWcub2xkLm9dO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgb3QgPSB6b25lLm9mZnNldCh0aGlzLnRzKTtcbiAgICAgICAgYyA9IHRzVG9PYmoodGhpcy50cywgb3QpO1xuICAgICAgICBpbnZhbGlkID0gTnVtYmVyLmlzTmFOKGMueWVhcikgPyBuZXcgSW52YWxpZChcImludmFsaWQgaW5wdXRcIikgOiBudWxsO1xuICAgICAgICBjID0gaW52YWxpZCA/IG51bGwgOiBjO1xuICAgICAgICBvID0gaW52YWxpZCA/IG51bGwgOiBvdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLl96b25lID0gem9uZTtcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLmxvYyA9IGNvbmZpZy5sb2MgfHwgTG9jYWxlLmNyZWF0ZSgpO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuaW52YWxpZCA9IGludmFsaWQ7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy53ZWVrRGF0YSA9IG51bGw7XG4gICAgLyoqXG4gICAgICogQGFjY2VzcyBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5jID0gYztcbiAgICAvKipcbiAgICAgKiBAYWNjZXNzIHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLm8gPSBvO1xuICAgIC8qKlxuICAgICAqIEBhY2Nlc3MgcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuaXNMdXhvbkRhdGVUaW1lID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIENPTlNUUlVDVFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmb3IgdGhlIGN1cnJlbnQgaW5zdGFudCwgaW4gdGhlIHN5c3RlbSdzIHRpbWUgem9uZS5cbiAgICpcbiAgICogVXNlIFNldHRpbmdzIHRvIG92ZXJyaWRlIHRoZXNlIGRlZmF1bHQgdmFsdWVzIGlmIG5lZWRlZC5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9JU08oKSAvL34+IG5vdyBpbiB0aGUgSVNPIGZvcm1hdFxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBub3coKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7fSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbG9jYWwgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtudW1iZXJ9IFt5ZWFyXSAtIFRoZSBjYWxlbmRhciB5ZWFyLiBJZiBvbWl0dGVkIChhcyBpbiwgY2FsbCBgbG9jYWwoKWAgd2l0aCBubyBhcmd1bWVudHMpLCB0aGUgY3VycmVudCB0aW1lIHdpbGwgYmUgdXNlZFxuICAgKiBAcGFyYW0ge251bWJlcn0gW21vbnRoPTFdIC0gVGhlIG1vbnRoLCAxLWluZGV4ZWRcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtkYXk9MV0gLSBUaGUgZGF5IG9mIHRoZSBtb250aCwgMS1pbmRleGVkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbaG91cj0wXSAtIFRoZSBob3VyIG9mIHRoZSBkYXksIGluIDI0LWhvdXIgdGltZVxuICAgKiBAcGFyYW0ge251bWJlcn0gW21pbnV0ZT0wXSAtIFRoZSBtaW51dGUgb2YgdGhlIGhvdXIsIG1lYW5pbmcgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCA1OVxuICAgKiBAcGFyYW0ge251bWJlcn0gW3NlY29uZD0wXSAtIFRoZSBzZWNvbmQgb2YgdGhlIG1pbnV0ZSwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbWlsbGlzZWNvbmQ9MF0gLSBUaGUgbWlsbGlzZWNvbmQgb2YgdGhlIHNlY29uZCwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDk5OVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gbm93XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKHsgem9uZTogXCJBbWVyaWNhL05ld19Zb3JrXCIgfSkgICAgICAvL34+IG5vdywgaW4gVVMgZWFzdCBjb2FzdCB0aW1lXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAxLTAxVDAwOjAwOjAwXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTAxVDAwOjAwOjAwXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCB7IGxvY2FsZTogXCJmclwiIH0pICAgICAvL34+IDIwMTctMDMtMTJUMDA6MDA6MDAsIHdpdGggYSBGcmVuY2ggbG9jYWxlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCA1KSAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjAwOjAwXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDMsIDEyLCA1LCB7IHpvbmU6IFwidXRjXCIgfSkgICAvL34+IDIwMTctMDMtMTJUMDU6MDA6MDAsIGluIFVUQ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgNDUpICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NTowMFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgNDUsIDEwKSAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NToxMFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAzLCAxMiwgNSwgNDUsIDEwLCA3NjUpICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NToxMC43NjVcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgbG9jYWwoKSB7XG4gICAgY29uc3QgW29wdHMsIGFyZ3NdID0gbGFzdE9wdHMoYXJndW1lbnRzKSxcbiAgICAgIFt5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmRdID0gYXJncztcbiAgICByZXR1cm4gcXVpY2tEVCh7IHllYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBtaWxsaXNlY29uZCB9LCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBpbiBVVENcbiAgICogQHBhcmFtIHtudW1iZXJ9IFt5ZWFyXSAtIFRoZSBjYWxlbmRhciB5ZWFyLiBJZiBvbWl0dGVkIChhcyBpbiwgY2FsbCBgdXRjKClgIHdpdGggbm8gYXJndW1lbnRzKSwgdGhlIGN1cnJlbnQgdGltZSB3aWxsIGJlIHVzZWRcbiAgICogQHBhcmFtIHtudW1iZXJ9IFttb250aD0xXSAtIFRoZSBtb250aCwgMS1pbmRleGVkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbZGF5PTFdIC0gVGhlIGRheSBvZiB0aGUgbW9udGhcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtob3VyPTBdIC0gVGhlIGhvdXIgb2YgdGhlIGRheSwgaW4gMjQtaG91ciB0aW1lXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbWludXRlPTBdIC0gVGhlIG1pbnV0ZSBvZiB0aGUgaG91ciwgbWVhbmluZyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDU5XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbc2Vjb25kPTBdIC0gVGhlIHNlY29uZCBvZiB0aGUgbWludXRlLCBtZWFuaW5nIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgNTlcbiAgICogQHBhcmFtIHtudW1iZXJ9IFttaWxsaXNlY29uZD0wXSAtIFRoZSBtaWxsaXNlY29uZCBvZiB0aGUgc2Vjb25kLCBtZWFuaW5nIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgOTk5XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmxvY2FsZV0gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMub3V0cHV0Q2FsZW5kYXJdIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubnVtYmVyaW5nU3lzdGVtXSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gbm93XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMS0wMVQwMDowMDowMFpcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTAxVDAwOjAwOjAwWlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMywgMTIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL34+IDIwMTctMDMtMTJUMDA6MDA6MDBaXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE3LCAzLCAxMiwgNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTowMDowMFpcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjAwWlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMywgMTIsIDUsIDQ1LCB7IGxvY2FsZTogXCJmclwiIH0pICAgICAgICAgIC8vfj4gMjAxNy0wMy0xMlQwNTo0NTowMFogd2l0aCBhIEZyZW5jaCBsb2NhbGVcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTcsIDMsIDEyLCA1LCA0NSwgMTApICAgICAgICAgICAgICAgICAgICAgICAgLy9+PiAyMDE3LTAzLTEyVDA1OjQ1OjEwWlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNywgMywgMTIsIDUsIDQ1LCAxMCwgNzY1LCB7IGxvY2FsZTogXCJmclwiIH0pIC8vfj4gMjAxNy0wMy0xMlQwNTo0NToxMC43NjVaIHdpdGggYSBGcmVuY2ggbG9jYWxlXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc3RhdGljIHV0YygpIHtcbiAgICBjb25zdCBbb3B0cywgYXJnc10gPSBsYXN0T3B0cyhhcmd1bWVudHMpLFxuICAgICAgW3llYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBtaWxsaXNlY29uZF0gPSBhcmdzO1xuXG4gICAgb3B0cy56b25lID0gRml4ZWRPZmZzZXRab25lLnV0Y0luc3RhbmNlO1xuICAgIHJldHVybiBxdWlja0RUKHsgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kIH0sIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYSBKYXZhU2NyaXB0IERhdGUgb2JqZWN0LiBVc2VzIHRoZSBkZWZhdWx0IHpvbmUuXG4gICAqIEBwYXJhbSB7RGF0ZX0gZGF0ZSAtIGEgSmF2YVNjcmlwdCBEYXRlIG9iamVjdFxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRpb25zLnpvbmU9J2xvY2FsJ10gLSB0aGUgem9uZSB0byBwbGFjZSB0aGUgRGF0ZVRpbWUgaW50b1xuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNEYXRlKGRhdGUsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHRzID0gaXNEYXRlKGRhdGUpID8gZGF0ZS52YWx1ZU9mKCkgOiBOYU47XG4gICAgaWYgKE51bWJlci5pc05hTih0cykpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKFwiaW52YWxpZCBpbnB1dFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCB6b25lVG9Vc2UgPSBub3JtYWxpemVab25lKG9wdGlvbnMuem9uZSwgU2V0dGluZ3MuZGVmYXVsdFpvbmUpO1xuICAgIGlmICghem9uZVRvVXNlLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKHVuc3VwcG9ydGVkWm9uZSh6b25lVG9Vc2UpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGVUaW1lKHtcbiAgICAgIHRzOiB0cyxcbiAgICAgIHpvbmU6IHpvbmVUb1VzZSxcbiAgICAgIGxvYzogTG9jYWxlLmZyb21PYmplY3Qob3B0aW9ucyksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UgdGhlIGVwb2NoIChtZWFuaW5nIHNpbmNlIDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuIFVzZXMgdGhlIGRlZmF1bHQgem9uZS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IG1pbGxpc2Vjb25kcyAtIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBzaW5jZSAxOTcwIFVUQ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRpb25zLnpvbmU9J2xvY2FsJ10gLSB0aGUgem9uZSB0byBwbGFjZSB0aGUgRGF0ZVRpbWUgaW50b1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubG9jYWxlXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tTWlsbGlzKG1pbGxpc2Vjb25kcywgb3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKCFpc051bWJlcihtaWxsaXNlY29uZHMpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAgIGBmcm9tTWlsbGlzIHJlcXVpcmVzIGEgbnVtZXJpY2FsIGlucHV0LCBidXQgcmVjZWl2ZWQgYSAke3R5cGVvZiBtaWxsaXNlY29uZHN9IHdpdGggdmFsdWUgJHttaWxsaXNlY29uZHN9YFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKG1pbGxpc2Vjb25kcyA8IC1NQVhfREFURSB8fCBtaWxsaXNlY29uZHMgPiBNQVhfREFURSkge1xuICAgICAgLy8gdGhpcyBpc24ndCBwZXJmZWN0IGJlY2F1c2UgYmVjYXVzZSB3ZSBjYW4gc3RpbGwgZW5kIHVwIG91dCBvZiByYW5nZSBiZWNhdXNlIG9mIGFkZGl0aW9uYWwgc2hpZnRpbmcsIGJ1dCBpdCdzIGEgc3RhcnRcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKFwiVGltZXN0YW1wIG91dCBvZiByYW5nZVwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7XG4gICAgICAgIHRzOiBtaWxsaXNlY29uZHMsXG4gICAgICAgIHpvbmU6IG5vcm1hbGl6ZVpvbmUob3B0aW9ucy56b25lLCBTZXR0aW5ncy5kZWZhdWx0Wm9uZSksXG4gICAgICAgIGxvYzogTG9jYWxlLmZyb21PYmplY3Qob3B0aW9ucyksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhIG51bWJlciBvZiBzZWNvbmRzIHNpbmNlIHRoZSBlcG9jaCAobWVhbmluZyBzaW5jZSAxIEphbnVhcnkgMTk3MCAwMDowMDowMCBVVEMpLiBVc2VzIHRoZSBkZWZhdWx0IHpvbmUuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzZWNvbmRzIC0gYSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSAxOTcwIFVUQ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRpb25zLnpvbmU9J2xvY2FsJ10gLSB0aGUgem9uZSB0byBwbGFjZSB0aGUgRGF0ZVRpbWUgaW50b1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMubG9jYWxlXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tU2Vjb25kcyhzZWNvbmRzLCBvcHRpb25zID0ge30pIHtcbiAgICBpZiAoIWlzTnVtYmVyKHNlY29uZHMpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoXCJmcm9tU2Vjb25kcyByZXF1aXJlcyBhIG51bWVyaWNhbCBpbnB1dFwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7XG4gICAgICAgIHRzOiBzZWNvbmRzICogMTAwMCxcbiAgICAgICAgem9uZTogbm9ybWFsaXplWm9uZShvcHRpb25zLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKSxcbiAgICAgICAgbG9jOiBMb2NhbGUuZnJvbU9iamVjdChvcHRpb25zKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCBrZXlzIGxpa2UgJ3llYXInIGFuZCAnaG91cicgd2l0aCByZWFzb25hYmxlIGRlZmF1bHRzLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqIC0gdGhlIG9iamVjdCB0byBjcmVhdGUgdGhlIERhdGVUaW1lIGZyb21cbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai55ZWFyIC0gYSB5ZWFyLCBzdWNoIGFzIDE5ODdcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5tb250aCAtIGEgbW9udGgsIDEtMTJcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5kYXkgLSBhIGRheSBvZiB0aGUgbW9udGgsIDEtMzEsIGRlcGVuZGluZyBvbiB0aGUgbW9udGhcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai5vcmRpbmFsIC0gZGF5IG9mIHRoZSB5ZWFyLCAxLTM2NSBvciAzNjZcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai53ZWVrWWVhciAtIGFuIElTTyB3ZWVrIHllYXJcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai53ZWVrTnVtYmVyIC0gYW4gSVNPIHdlZWsgbnVtYmVyLCBiZXR3ZWVuIDEgYW5kIDUyIG9yIDUzLCBkZXBlbmRpbmcgb24gdGhlIHllYXJcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9iai53ZWVrZGF5IC0gYW4gSVNPIHdlZWtkYXksIDEtNywgd2hlcmUgMSBpcyBNb25kYXkgYW5kIDcgaXMgU3VuZGF5XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmouaG91ciAtIGhvdXIgb2YgdGhlIGRheSwgMC0yM1xuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLm1pbnV0ZSAtIG1pbnV0ZSBvZiB0aGUgaG91ciwgMC01OVxuICAgKiBAcGFyYW0ge251bWJlcn0gb2JqLnNlY29uZCAtIHNlY29uZCBvZiB0aGUgbWludXRlLCAwLTU5XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvYmoubWlsbGlzZWNvbmQgLSBtaWxsaXNlY29uZCBvZiB0aGUgc2Vjb25kLCAwLTk5OVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgZm9yIGNyZWF0aW5nIHRoaXMgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIGludGVycHJldCB0aGUgbnVtYmVycyBpbiB0aGUgY29udGV4dCBvZiBhIHBhcnRpY3VsYXIgem9uZS4gQ2FuIHRha2UgYW55IHZhbHVlIHRha2VuIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byBzZXRab25lKClcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IHllYXI6IDE5ODIsIG1vbnRoOiA1LCBkYXk6IDI1fSkudG9JU09EYXRlKCkgLy89PiAnMTk4Mi0wNS0yNSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IHllYXI6IDE5ODIgfSkudG9JU09EYXRlKCkgLy89PiAnMTk4Mi0wMS0wMSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IGhvdXI6IDEwLCBtaW51dGU6IDI2LCBzZWNvbmQ6IDYgfSkgLy9+PiB0b2RheSBhdCAxMDoyNjowNlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgaG91cjogMTAsIG1pbnV0ZTogMjYsIHNlY29uZDogNiB9LCB7IHpvbmU6ICd1dGMnIH0pLFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tT2JqZWN0KHsgaG91cjogMTAsIG1pbnV0ZTogMjYsIHNlY29uZDogNiB9LCB7IHpvbmU6ICdsb2NhbCcgfSlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IGhvdXI6IDEwLCBtaW51dGU6IDI2LCBzZWNvbmQ6IDYgfSwgeyB6b25lOiAnQW1lcmljYS9OZXdfWW9yaycgfSlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbU9iamVjdCh7IHdlZWtZZWFyOiAyMDE2LCB3ZWVrTnVtYmVyOiAyLCB3ZWVrZGF5OiAzIH0pLnRvSVNPRGF0ZSgpIC8vPT4gJzIwMTYtMDEtMTMnXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc3RhdGljIGZyb21PYmplY3Qob2JqLCBvcHRzID0ge30pIHtcbiAgICBvYmogPSBvYmogfHwge307XG4gICAgY29uc3Qgem9uZVRvVXNlID0gbm9ybWFsaXplWm9uZShvcHRzLnpvbmUsIFNldHRpbmdzLmRlZmF1bHRab25lKTtcbiAgICBpZiAoIXpvbmVUb1VzZS5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gRGF0ZVRpbWUuaW52YWxpZCh1bnN1cHBvcnRlZFpvbmUoem9uZVRvVXNlKSk7XG4gICAgfVxuXG4gICAgY29uc3QgdHNOb3cgPSBTZXR0aW5ncy5ub3coKSxcbiAgICAgIG9mZnNldFByb3ZpcyA9ICFpc1VuZGVmaW5lZChvcHRzLnNwZWNpZmljT2Zmc2V0KVxuICAgICAgICA/IG9wdHMuc3BlY2lmaWNPZmZzZXRcbiAgICAgICAgOiB6b25lVG9Vc2Uub2Zmc2V0KHRzTm93KSxcbiAgICAgIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVPYmplY3Qob2JqLCBub3JtYWxpemVVbml0KSxcbiAgICAgIGNvbnRhaW5zT3JkaW5hbCA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLm9yZGluYWwpLFxuICAgICAgY29udGFpbnNHcmVnb3JZZWFyID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQueWVhciksXG4gICAgICBjb250YWluc0dyZWdvck1EID0gIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQubW9udGgpIHx8ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLmRheSksXG4gICAgICBjb250YWluc0dyZWdvciA9IGNvbnRhaW5zR3JlZ29yWWVhciB8fCBjb250YWluc0dyZWdvck1ELFxuICAgICAgZGVmaW5pdGVXZWVrRGVmID0gbm9ybWFsaXplZC53ZWVrWWVhciB8fCBub3JtYWxpemVkLndlZWtOdW1iZXIsXG4gICAgICBsb2MgPSBMb2NhbGUuZnJvbU9iamVjdChvcHRzKTtcblxuICAgIC8vIGNhc2VzOlxuICAgIC8vIGp1c3QgYSB3ZWVrZGF5IC0+IHRoaXMgd2VlaydzIGluc3RhbmNlIG9mIHRoYXQgd2Vla2RheSwgbm8gd29ycmllc1xuICAgIC8vIChncmVnb3JpYW4gZGF0YSBvciBvcmRpbmFsKSArICh3ZWVrWWVhciBvciB3ZWVrTnVtYmVyKSAtPiBlcnJvclxuICAgIC8vIChncmVnb3JpYW4gbW9udGggb3IgZGF5KSArIG9yZGluYWwgLT4gZXJyb3JcbiAgICAvLyBvdGhlcndpc2UganVzdCB1c2Ugd2Vla3Mgb3Igb3JkaW5hbHMgb3IgZ3JlZ29yaWFuLCBkZXBlbmRpbmcgb24gd2hhdCdzIHNwZWNpZmllZFxuXG4gICAgaWYgKChjb250YWluc0dyZWdvciB8fCBjb250YWluc09yZGluYWwpICYmIGRlZmluaXRlV2Vla0RlZikge1xuICAgICAgdGhyb3cgbmV3IENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yKFxuICAgICAgICBcIkNhbid0IG1peCB3ZWVrWWVhci93ZWVrTnVtYmVyIHVuaXRzIHdpdGggeWVhci9tb250aC9kYXkgb3Igb3JkaW5hbHNcIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY29udGFpbnNHcmVnb3JNRCAmJiBjb250YWluc09yZGluYWwpIHtcbiAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcihcIkNhbid0IG1peCBvcmRpbmFsIGRhdGVzIHdpdGggbW9udGgvZGF5XCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZVdlZWtEYXRhID0gZGVmaW5pdGVXZWVrRGVmIHx8IChub3JtYWxpemVkLndlZWtkYXkgJiYgIWNvbnRhaW5zR3JlZ29yKTtcblxuICAgIC8vIGNvbmZpZ3VyZSBvdXJzZWx2ZXMgdG8gZGVhbCB3aXRoIGdyZWdvcmlhbiBkYXRlcyBvciB3ZWVrIHN0dWZmXG4gICAgbGV0IHVuaXRzLFxuICAgICAgZGVmYXVsdFZhbHVlcyxcbiAgICAgIG9iak5vdyA9IHRzVG9PYmoodHNOb3csIG9mZnNldFByb3Zpcyk7XG4gICAgaWYgKHVzZVdlZWtEYXRhKSB7XG4gICAgICB1bml0cyA9IG9yZGVyZWRXZWVrVW5pdHM7XG4gICAgICBkZWZhdWx0VmFsdWVzID0gZGVmYXVsdFdlZWtVbml0VmFsdWVzO1xuICAgICAgb2JqTm93ID0gZ3JlZ29yaWFuVG9XZWVrKG9iak5vdyk7XG4gICAgfSBlbHNlIGlmIChjb250YWluc09yZGluYWwpIHtcbiAgICAgIHVuaXRzID0gb3JkZXJlZE9yZGluYWxVbml0cztcbiAgICAgIGRlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0T3JkaW5hbFVuaXRWYWx1ZXM7XG4gICAgICBvYmpOb3cgPSBncmVnb3JpYW5Ub09yZGluYWwob2JqTm93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdW5pdHMgPSBvcmRlcmVkVW5pdHM7XG4gICAgICBkZWZhdWx0VmFsdWVzID0gZGVmYXVsdFVuaXRWYWx1ZXM7XG4gICAgfVxuXG4gICAgLy8gc2V0IGRlZmF1bHQgdmFsdWVzIGZvciBtaXNzaW5nIHN0dWZmXG4gICAgbGV0IGZvdW5kRmlyc3QgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IHUgb2YgdW5pdHMpIHtcbiAgICAgIGNvbnN0IHYgPSBub3JtYWxpemVkW3VdO1xuICAgICAgaWYgKCFpc1VuZGVmaW5lZCh2KSkge1xuICAgICAgICBmb3VuZEZpcnN0ID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoZm91bmRGaXJzdCkge1xuICAgICAgICBub3JtYWxpemVkW3VdID0gZGVmYXVsdFZhbHVlc1t1XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vcm1hbGl6ZWRbdV0gPSBvYmpOb3dbdV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gbWFrZSBzdXJlIHRoZSB2YWx1ZXMgd2UgaGF2ZSBhcmUgaW4gcmFuZ2VcbiAgICBjb25zdCBoaWdoZXJPcmRlckludmFsaWQgPSB1c2VXZWVrRGF0YVxuICAgICAgICA/IGhhc0ludmFsaWRXZWVrRGF0YShub3JtYWxpemVkKVxuICAgICAgICA6IGNvbnRhaW5zT3JkaW5hbFxuICAgICAgICA/IGhhc0ludmFsaWRPcmRpbmFsRGF0YShub3JtYWxpemVkKVxuICAgICAgICA6IGhhc0ludmFsaWRHcmVnb3JpYW5EYXRhKG5vcm1hbGl6ZWQpLFxuICAgICAgaW52YWxpZCA9IGhpZ2hlck9yZGVySW52YWxpZCB8fCBoYXNJbnZhbGlkVGltZURhdGEobm9ybWFsaXplZCk7XG5cbiAgICBpZiAoaW52YWxpZCkge1xuICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoaW52YWxpZCk7XG4gICAgfVxuXG4gICAgLy8gY29tcHV0ZSB0aGUgYWN0dWFsIHRpbWVcbiAgICBjb25zdCBncmVnb3JpYW4gPSB1c2VXZWVrRGF0YVxuICAgICAgICA/IHdlZWtUb0dyZWdvcmlhbihub3JtYWxpemVkKVxuICAgICAgICA6IGNvbnRhaW5zT3JkaW5hbFxuICAgICAgICA/IG9yZGluYWxUb0dyZWdvcmlhbihub3JtYWxpemVkKVxuICAgICAgICA6IG5vcm1hbGl6ZWQsXG4gICAgICBbdHNGaW5hbCwgb2Zmc2V0RmluYWxdID0gb2JqVG9UUyhncmVnb3JpYW4sIG9mZnNldFByb3Zpcywgem9uZVRvVXNlKSxcbiAgICAgIGluc3QgPSBuZXcgRGF0ZVRpbWUoe1xuICAgICAgICB0czogdHNGaW5hbCxcbiAgICAgICAgem9uZTogem9uZVRvVXNlLFxuICAgICAgICBvOiBvZmZzZXRGaW5hbCxcbiAgICAgICAgbG9jLFxuICAgICAgfSk7XG5cbiAgICAvLyBncmVnb3JpYW4gZGF0YSArIHdlZWtkYXkgc2VydmVzIG9ubHkgdG8gdmFsaWRhdGVcbiAgICBpZiAobm9ybWFsaXplZC53ZWVrZGF5ICYmIGNvbnRhaW5zR3JlZ29yICYmIG9iai53ZWVrZGF5ICE9PSBpbnN0LndlZWtkYXkpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKFxuICAgICAgICBcIm1pc21hdGNoZWQgd2Vla2RheVwiLFxuICAgICAgICBgeW91IGNhbid0IHNwZWNpZnkgYm90aCBhIHdlZWtkYXkgb2YgJHtub3JtYWxpemVkLndlZWtkYXl9IGFuZCBhIGRhdGUgb2YgJHtpbnN0LnRvSVNPKCl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5zdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGFuIElTTyA4NjAxIHN0cmluZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIHRoZSBJU08gc3RyaW5nXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0byBhZmZlY3QgdGhlIGNyZWF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSB1c2UgdGhpcyB6b25lIGlmIG5vIG9mZnNldCBpcyBzcGVjaWZpZWQgaW4gdGhlIGlucHV0IHN0cmluZyBpdHNlbGYuIFdpbGwgYWxzbyBjb252ZXJ0IHRoZSB0aW1lIHRvIHRoaXMgem9uZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnNldFpvbmU9ZmFsc2VdIC0gb3ZlcnJpZGUgdGhlIHpvbmUgd2l0aCBhIGZpeGVkLW9mZnNldCB6b25lIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nIGl0c2VsZiwgaWYgaXQgc3BlY2lmaWVzIG9uZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdzeXN0ZW0ncyBsb2NhbGUnXSAtIGEgbG9jYWxlIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5vdXRwdXRDYWxlbmRhcl0gLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5udW1iZXJpbmdTeXN0ZW1dIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUlTTygnMjAxNi0wNS0yNVQwOTowODozNC4xMjMnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LTA1LTI1VDA5OjA4OjM0LjEyMyswNjowMCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21JU08oJzIwMTYtMDUtMjVUMDk6MDg6MzQuMTIzKzA2OjAwJywge3NldFpvbmU6IHRydWV9KVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tSVNPKCcyMDE2LTA1LTI1VDA5OjA4OjM0LjEyMycsIHt6b25lOiAndXRjJ30pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21JU08oJzIwMTYtVzA1LTQnKVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSVNPKHRleHQsIG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IFt2YWxzLCBwYXJzZWRab25lXSA9IHBhcnNlSVNPRGF0ZSh0ZXh0KTtcbiAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCBcIklTTyA4NjAxXCIsIHRleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGVUaW1lIGZyb20gYW4gUkZDIDI4MjIgc3RyaW5nXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIFJGQyAyODIyIHN0cmluZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gY29udmVydCB0aGUgdGltZSB0byB0aGlzIHpvbmUuIFNpbmNlIHRoZSBvZmZzZXQgaXMgYWx3YXlzIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nIGl0c2VsZiwgdGhpcyBoYXMgbm8gZWZmZWN0IG9uIHRoZSBpbnRlcnByZXRhdGlvbiBvZiBzdHJpbmcsIG1lcmVseSB0aGUgem9uZSB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGlzIGV4cHJlc3NlZCBpbi5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSBmaXhlZC1vZmZzZXQgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVJGQzI4MjIoJzI1IE5vdiAyMDE2IDEzOjIzOjEyIEdNVCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21SRkMyODIyKCdGcmksIDI1IE5vdiAyMDE2IDEzOjIzOjEyICswNjAwJylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVJGQzI4MjIoJzI1IE5vdiAyMDE2IDEzOjIzIFonKVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tUkZDMjgyMih0ZXh0LCBvcHRzID0ge30pIHtcbiAgICBjb25zdCBbdmFscywgcGFyc2VkWm9uZV0gPSBwYXJzZVJGQzI4MjJEYXRlKHRleHQpO1xuICAgIHJldHVybiBwYXJzZURhdGFUb0RhdGVUaW1lKHZhbHMsIHBhcnNlZFpvbmUsIG9wdHMsIFwiUkZDIDI4MjJcIiwgdGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhbiBIVFRQIGhlYWRlciBkYXRlXG4gICAqIEBzZWUgaHR0cHM6Ly93d3cudzMub3JnL1Byb3RvY29scy9yZmMyNjE2L3JmYzI2MTYtc2VjMy5odG1sI3NlYzMuMy4xXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIEhUVFAgaGVhZGVyIGRhdGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRvIGFmZmVjdCB0aGUgY3JlYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd8Wm9uZX0gW29wdHMuem9uZT0nbG9jYWwnXSAtIGNvbnZlcnQgdGhlIHRpbWUgdG8gdGhpcyB6b25lLiBTaW5jZSBIVFRQIGRhdGVzIGFyZSBhbHdheXMgaW4gVVRDLCB0aGlzIGhhcyBubyBlZmZlY3Qgb24gdGhlIGludGVycHJldGF0aW9uIG9mIHN0cmluZywgbWVyZWx5IHRoZSB6b25lIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaXMgZXhwcmVzc2VkIGluLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnNldFpvbmU9ZmFsc2VdIC0gb3ZlcnJpZGUgdGhlIHpvbmUgd2l0aCB0aGUgZml4ZWQtb2Zmc2V0IHpvbmUgc3BlY2lmaWVkIGluIHRoZSBzdHJpbmcuIEZvciBIVFRQIGRhdGVzLCB0aGlzIGlzIGFsd2F5cyBVVEMsIHNvIHRoaXMgb3B0aW9uIGlzIGVxdWl2YWxlbnQgdG8gc2V0dGluZyB0aGUgYHpvbmVgIG9wdGlvbiB0byAndXRjJywgYnV0IHRoaXMgb3B0aW9uIGlzIGluY2x1ZGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHNpbWlsYXIgbWV0aG9kcy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nc3lzdGVtJ3MgbG9jYWxlJ10gLSBhIGxvY2FsZSB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5vdXRwdXRDYWxlbmRhciAtIHRoZSBvdXRwdXQgY2FsZW5kYXIgdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMubnVtYmVyaW5nU3lzdGVtIC0gdGhlIG51bWJlcmluZyBzeXN0ZW0gdG8gc2V0IG9uIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgaW5zdGFuY2VcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUhUVFAoJ1N1biwgMDYgTm92IDE5OTQgMDg6NDk6MzcgR01UJylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbUhUVFAoJ1N1bmRheSwgMDYtTm92LTk0IDA4OjQ5OjM3IEdNVCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21IVFRQKCdTdW4gTm92ICA2IDA4OjQ5OjM3IDE5OTQnKVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSFRUUCh0ZXh0LCBvcHRzID0ge30pIHtcbiAgICBjb25zdCBbdmFscywgcGFyc2VkWm9uZV0gPSBwYXJzZUhUVFBEYXRlKHRleHQpO1xuICAgIHJldHVybiBwYXJzZURhdGFUb0RhdGVUaW1lKHZhbHMsIHBhcnNlZFpvbmUsIG9wdHMsIFwiSFRUUFwiLCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEYXRlVGltZSBmcm9tIGFuIGlucHV0IHN0cmluZyBhbmQgZm9ybWF0IHN0cmluZy5cbiAgICogRGVmYXVsdHMgdG8gZW4tVVMgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZCwgcmVnYXJkbGVzcyBvZiB0aGUgc3lzdGVtJ3MgbG9jYWxlLiBGb3IgYSB0YWJsZSBvZiB0b2tlbnMgYW5kIHRoZWlyIGludGVycHJldGF0aW9ucywgc2VlIFtoZXJlXShodHRwczovL21vbWVudC5naXRodWIuaW8vbHV4b24vIy9wYXJzaW5nP2lkPXRhYmxlLW9mLXRva2VucykuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gdGhlIHN0cmluZyB0byBwYXJzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm10IC0gdGhlIGZvcm1hdCB0aGUgc3RyaW5nIGlzIGV4cGVjdGVkIHRvIGJlIGluIChzZWUgdGhlIGxpbmsgYmVsb3cgZm9yIHRoZSBmb3JtYXRzKVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdG8gYWZmZWN0IHRoZSBjcmVhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ3xab25lfSBbb3B0cy56b25lPSdsb2NhbCddIC0gdXNlIHRoaXMgem9uZSBpZiBubyBvZmZzZXQgaXMgc3BlY2lmaWVkIGluIHRoZSBpbnB1dCBzdHJpbmcgaXRzZWxmLiBXaWxsIGFsc28gY29udmVydCB0aGUgRGF0ZVRpbWUgdG8gdGhpcyB6b25lXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuc2V0Wm9uZT1mYWxzZV0gLSBvdmVycmlkZSB0aGUgem9uZSB3aXRoIGEgem9uZSBzcGVjaWZpZWQgaW4gdGhlIHN0cmluZyBpdHNlbGYsIGlmIGl0IHNwZWNpZmllcyBvbmVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmxvY2FsZT0nZW4tVVMnXSAtIGEgbG9jYWxlIHN0cmluZyB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSBEYXRlVGltZSB0byB0aGlzIGxvY2FsZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5udW1iZXJpbmdTeXN0ZW0gLSB0aGUgbnVtYmVyaW5nIHN5c3RlbSB0byB1c2Ugd2hlbiBwYXJzaW5nLiBXaWxsIGFsc28gc2V0IHRoZSByZXN1bHRpbmcgRGF0ZVRpbWUgdG8gdGhpcyBudW1iZXJpbmcgc3lzdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm91dHB1dENhbGVuZGFyIC0gdGhlIG91dHB1dCBjYWxlbmRhciB0byBzZXQgb24gdGhlIHJlc3VsdGluZyBEYXRlVGltZSBpbnN0YW5jZVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tRm9ybWF0KHRleHQsIGZtdCwgb3B0cyA9IHt9KSB7XG4gICAgaWYgKGlzVW5kZWZpbmVkKHRleHQpIHx8IGlzVW5kZWZpbmVkKGZtdCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFcnJvcihcImZyb21Gb3JtYXQgcmVxdWlyZXMgYW4gaW5wdXQgc3RyaW5nIGFuZCBhIGZvcm1hdFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IGxvY2FsZSA9IG51bGwsIG51bWJlcmluZ1N5c3RlbSA9IG51bGwgfSA9IG9wdHMsXG4gICAgICBsb2NhbGVUb1VzZSA9IExvY2FsZS5mcm9tT3B0cyh7XG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgbnVtYmVyaW5nU3lzdGVtLFxuICAgICAgICBkZWZhdWx0VG9FTjogdHJ1ZSxcbiAgICAgIH0pLFxuICAgICAgW3ZhbHMsIHBhcnNlZFpvbmUsIHNwZWNpZmljT2Zmc2V0LCBpbnZhbGlkXSA9IHBhcnNlRnJvbVRva2Vucyhsb2NhbGVUb1VzZSwgdGV4dCwgZm10KTtcbiAgICBpZiAoaW52YWxpZCkge1xuICAgICAgcmV0dXJuIERhdGVUaW1lLmludmFsaWQoaW52YWxpZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYXJzZURhdGFUb0RhdGVUaW1lKHZhbHMsIHBhcnNlZFpvbmUsIG9wdHMsIGBmb3JtYXQgJHtmbXR9YCwgdGV4dCwgc3BlY2lmaWNPZmZzZXQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgZnJvbUZvcm1hdCBpbnN0ZWFkXG4gICAqL1xuICBzdGF0aWMgZnJvbVN0cmluZyh0ZXh0LCBmbXQsIG9wdHMgPSB7fSkge1xuICAgIHJldHVybiBEYXRlVGltZS5mcm9tRm9ybWF0KHRleHQsIGZtdCwgb3B0cyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0ZVRpbWUgZnJvbSBhIFNRTCBkYXRlLCB0aW1lLCBvciBkYXRldGltZVxuICAgKiBEZWZhdWx0cyB0byBlbi1VUyBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkLCByZWdhcmRsZXNzIG9mIHRoZSBzeXN0ZW0ncyBsb2NhbGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgc3RyaW5nIHRvIHBhcnNlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9ucyB0byBhZmZlY3QgdGhlIGNyZWF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFtvcHRzLnpvbmU9J2xvY2FsJ10gLSB1c2UgdGhpcyB6b25lIGlmIG5vIG9mZnNldCBpcyBzcGVjaWZpZWQgaW4gdGhlIGlucHV0IHN0cmluZyBpdHNlbGYuIFdpbGwgYWxzbyBjb252ZXJ0IHRoZSBEYXRlVGltZSB0byB0aGlzIHpvbmVcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zZXRab25lPWZhbHNlXSAtIG92ZXJyaWRlIHRoZSB6b25lIHdpdGggYSB6b25lIHNwZWNpZmllZCBpbiB0aGUgc3RyaW5nIGl0c2VsZiwgaWYgaXQgc3BlY2lmaWVzIG9uZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMubG9jYWxlPSdlbi1VUyddIC0gYSBsb2NhbGUgc3RyaW5nIHRvIHVzZSB3aGVuIHBhcnNpbmcuIFdpbGwgYWxzbyBzZXQgdGhlIERhdGVUaW1lIHRvIHRoaXMgbG9jYWxlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLm51bWJlcmluZ1N5c3RlbSAtIHRoZSBudW1iZXJpbmcgc3lzdGVtIHRvIHVzZSB3aGVuIHBhcnNpbmcuIFdpbGwgYWxzbyBzZXQgdGhlIHJlc3VsdGluZyBEYXRlVGltZSB0byB0aGlzIG51bWJlcmluZyBzeXN0ZW1cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMub3V0cHV0Q2FsZW5kYXIgLSB0aGUgb3V0cHV0IGNhbGVuZGFyIHRvIHNldCBvbiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lIGluc3RhbmNlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0JylcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMjAxNy0wNS0xNSAwOToxMjozNC4zNDInKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MiswNjowMCcpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUgMDk6MTI6MzQuMzQyIEFtZXJpY2EvTG9zX0FuZ2VsZXMnKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5mcm9tU1FMKCcyMDE3LTA1LTE1IDA5OjEyOjM0LjM0MiBBbWVyaWNhL0xvc19BbmdlbGVzJywgeyBzZXRab25lOiB0cnVlIH0pXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmZyb21TUUwoJzIwMTctMDUtMTUgMDk6MTI6MzQuMzQyJywgeyB6b25lOiAnQW1lcmljYS9Mb3NfQW5nZWxlcycgfSlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUuZnJvbVNRTCgnMDk6MTI6MzQuMzQyJylcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzdGF0aWMgZnJvbVNRTCh0ZXh0LCBvcHRzID0ge30pIHtcbiAgICBjb25zdCBbdmFscywgcGFyc2VkWm9uZV0gPSBwYXJzZVNRTCh0ZXh0KTtcbiAgICByZXR1cm4gcGFyc2VEYXRhVG9EYXRlVGltZSh2YWxzLCBwYXJzZWRab25lLCBvcHRzLCBcIlNRTFwiLCB0ZXh0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaW52YWxpZCBEYXRlVGltZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvbiAtIHNpbXBsZSBzdHJpbmcgb2Ygd2h5IHRoaXMgRGF0ZVRpbWUgaXMgaW52YWxpZC4gU2hvdWxkIG5vdCBjb250YWluIHBhcmFtZXRlcnMgb3IgYW55dGhpbmcgZWxzZSBkYXRhLWRlcGVuZGVudFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2V4cGxhbmF0aW9uPW51bGxdIC0gbG9uZ2VyIGV4cGxhbmF0aW9uLCBtYXkgaW5jbHVkZSBwYXJhbWV0ZXJzIGFuZCBvdGhlciB1c2VmdWwgZGVidWdnaW5nIGluZm9ybWF0aW9uXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc3RhdGljIGludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbiA9IG51bGwpIHtcbiAgICBpZiAoIXJlYXNvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFwibmVlZCB0byBzcGVjaWZ5IGEgcmVhc29uIHRoZSBEYXRlVGltZSBpcyBpbnZhbGlkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGludmFsaWQgPSByZWFzb24gaW5zdGFuY2VvZiBJbnZhbGlkID8gcmVhc29uIDogbmV3IEludmFsaWQocmVhc29uLCBleHBsYW5hdGlvbik7XG5cbiAgICBpZiAoU2V0dGluZ3MudGhyb3dPbkludmFsaWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkRGF0ZVRpbWVFcnJvcihpbnZhbGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlVGltZSh7IGludmFsaWQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIG9iamVjdCBpcyBhIERhdGVUaW1lLiBXb3JrcyBhY3Jvc3MgY29udGV4dCBib3VuZGFyaWVzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzdGF0aWMgaXNEYXRlVGltZShvKSB7XG4gICAgcmV0dXJuIChvICYmIG8uaXNMdXhvbkRhdGVUaW1lKSB8fCBmYWxzZTtcbiAgfVxuXG4gIC8vIElORk9cblxuICAvKipcbiAgICogR2V0IHRoZSB2YWx1ZSBvZiB1bml0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdCAtIGEgdW5pdCBzdWNoIGFzICdtaW51dGUnIG9yICdkYXknXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDcsIDQpLmdldCgnbW9udGgnKTsgLy89PiA3XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDcsIDQpLmdldCgnZGF5Jyk7IC8vPT4gNFxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBnZXQodW5pdCkge1xuICAgIHJldHVybiB0aGlzW3VuaXRdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgRGF0ZVRpbWUgaXMgdmFsaWQuIEludmFsaWQgRGF0ZVRpbWVzIG9jY3VyIHdoZW46XG4gICAqICogVGhlIERhdGVUaW1lIHdhcyBjcmVhdGVkIGZyb20gaW52YWxpZCBjYWxlbmRhciBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgMTN0aCBtb250aCBvciBGZWJydWFyeSAzMFxuICAgKiAqIFRoZSBEYXRlVGltZSB3YXMgY3JlYXRlZCBieSBhbiBvcGVyYXRpb24gb24gYW5vdGhlciBpbnZhbGlkIGRhdGVcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNWYWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID09PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gZXJyb3IgY29kZSBpZiB0aGlzIERhdGVUaW1lIGlzIGludmFsaWQsIG9yIG51bGwgaWYgdGhlIERhdGVUaW1lIGlzIHZhbGlkXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgaW52YWxpZFJlYXNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gdGhpcy5pbnZhbGlkLnJlYXNvbiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBleHBsYW5hdGlvbiBvZiB3aHkgdGhpcyBEYXRlVGltZSBiZWNhbWUgaW52YWxpZCwgb3IgbnVsbCBpZiB0aGUgRGF0ZVRpbWUgaXMgdmFsaWRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBpbnZhbGlkRXhwbGFuYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCA/IHRoaXMuaW52YWxpZC5leHBsYW5hdGlvbiA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBsb2NhbGUgb2YgYSBEYXRlVGltZSwgc3VjaCAnZW4tR0InLiBUaGUgbG9jYWxlIGlzIHVzZWQgd2hlbiBmb3JtYXR0aW5nIHRoZSBEYXRlVGltZVxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IGxvY2FsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2MubG9jYWxlIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG51bWJlcmluZyBzeXN0ZW0gb2YgYSBEYXRlVGltZSwgc3VjaCAnYmVuZycuIFRoZSBudW1iZXJpbmcgc3lzdGVtIGlzIHVzZWQgd2hlbiBmb3JtYXR0aW5nIHRoZSBEYXRlVGltZVxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IG51bWJlcmluZ1N5c3RlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2MubnVtYmVyaW5nU3lzdGVtIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG91dHB1dCBjYWxlbmRhciBvZiBhIERhdGVUaW1lLCBzdWNoICdpc2xhbWljJy4gVGhlIG91dHB1dCBjYWxlbmRhciBpcyB1c2VkIHdoZW4gZm9ybWF0dGluZyB0aGUgRGF0ZVRpbWVcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBvdXRwdXRDYWxlbmRhcigpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5sb2Mub3V0cHV0Q2FsZW5kYXIgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdGltZSB6b25lIGFzc29jaWF0ZWQgd2l0aCB0aGlzIERhdGVUaW1lLlxuICAgKiBAdHlwZSB7Wm9uZX1cbiAgICovXG4gIGdldCB6b25lKCkge1xuICAgIHJldHVybiB0aGlzLl96b25lO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbmFtZSBvZiB0aGUgdGltZSB6b25lLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IHpvbmVOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyB0aGlzLnpvbmUubmFtZSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB5ZWFyXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS55ZWFyIC8vPT4gMjAxN1xuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IHllYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy55ZWFyIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcXVhcnRlclxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkucXVhcnRlciAvLz0+IDJcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBxdWFydGVyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBNYXRoLmNlaWwodGhpcy5jLm1vbnRoIC8gMykgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtb250aCAoMS0xMikuXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5tb250aCAvLz0+IDVcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBtb250aCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLm1vbnRoIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGF5IG9mIHRoZSBtb250aCAoMS0zMGlzaCkuXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5kYXkgLy89PiAyNVxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IGRheSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLmRheSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGhvdXIgb2YgdGhlIGRheSAoMC0yMykuXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1LCA5KS5ob3VyIC8vPT4gOVxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IGhvdXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy5ob3VyIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbWludXRlIG9mIHRoZSBob3VyICgwLTU5KS5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUsIDksIDMwKS5taW51dGUgLy89PiAzMFxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IG1pbnV0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLm1pbnV0ZSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHNlY29uZCBvZiB0aGUgbWludXRlICgwLTU5KS5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUsIDksIDMwLCA1Mikuc2Vjb25kIC8vPT4gNTJcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBzZWNvbmQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMuYy5zZWNvbmQgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBtaWxsaXNlY29uZCBvZiB0aGUgc2Vjb25kICgwLTk5OSkuXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1LCA5LCAzMCwgNTIsIDY1NCkubWlsbGlzZWNvbmQgLy89PiA2NTRcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCBtaWxsaXNlY29uZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5jLm1pbGxpc2Vjb25kIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgd2VlayB5ZWFyXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAxMiwgMzEpLndlZWtZZWFyIC8vPT4gMjAxNVxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IHdlZWtZZWFyKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBwb3NzaWJseUNhY2hlZFdlZWtEYXRhKHRoaXMpLndlZWtZZWFyIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgd2VlayBudW1iZXIgb2YgdGhlIHdlZWsgeWVhciAoMS01MmlzaCkuXG4gICAqIEBzZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCA1LCAyNSkud2Vla051bWJlciAvLz0+IDIxXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgd2Vla051bWJlcigpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gcG9zc2libHlDYWNoZWRXZWVrRGF0YSh0aGlzKS53ZWVrTnVtYmVyIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGF5IG9mIHRoZSB3ZWVrLlxuICAgKiAxIGlzIE1vbmRheSBhbmQgNyBpcyBTdW5kYXlcbiAgICogQHNlZSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDExLCAzMSkud2Vla2RheSAvLz0+IDRcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCB3ZWVrZGF5KCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBwb3NzaWJseUNhY2hlZFdlZWtEYXRhKHRoaXMpLndlZWtkYXkgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBvcmRpbmFsIChtZWFuaW5nIHRoZSBkYXkgb2YgdGhlIHllYXIpXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDUsIDI1KS5vcmRpbmFsIC8vPT4gMTQ1XG4gICAqIEB0eXBlIHtudW1iZXJ8RGF0ZVRpbWV9XG4gICAqL1xuICBnZXQgb3JkaW5hbCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gZ3JlZ29yaWFuVG9PcmRpbmFsKHRoaXMuYykub3JkaW5hbCA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGh1bWFuIHJlYWRhYmxlIHNob3J0IG1vbnRoIG5hbWUsIHN1Y2ggYXMgJ09jdCcuXG4gICAqIERlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbGUgaWYgbm8gbG9jYWxlIGhhcyBiZWVuIHNwZWNpZmllZFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE3LCAxMCwgMzApLm1vbnRoU2hvcnQgLy89PiBPY3RcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBtb250aFNob3J0KCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbmZvLm1vbnRocyhcInNob3J0XCIsIHsgbG9jT2JqOiB0aGlzLmxvYyB9KVt0aGlzLm1vbnRoIC0gMV0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaHVtYW4gcmVhZGFibGUgbG9uZyBtb250aCBuYW1lLCBzdWNoIGFzICdPY3RvYmVyJy5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDEwLCAzMCkubW9udGhMb25nIC8vPT4gT2N0b2JlclxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0IG1vbnRoTG9uZygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW5mby5tb250aHMoXCJsb25nXCIsIHsgbG9jT2JqOiB0aGlzLmxvYyB9KVt0aGlzLm1vbnRoIC0gMV0gOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaHVtYW4gcmVhZGFibGUgc2hvcnQgd2Vla2RheSwgc3VjaCBhcyAnTW9uJy5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDEwLCAzMCkud2Vla2RheVNob3J0IC8vPT4gTW9uXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgd2Vla2RheVNob3J0KCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBJbmZvLndlZWtkYXlzKFwic2hvcnRcIiwgeyBsb2NPYmo6IHRoaXMubG9jIH0pW3RoaXMud2Vla2RheSAtIDFdIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGh1bWFuIHJlYWRhYmxlIGxvbmcgd2Vla2RheSwgc3VjaCBhcyAnTW9uZGF5Jy5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTcsIDEwLCAzMCkud2Vla2RheUxvbmcgLy89PiBNb25kYXlcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCB3ZWVrZGF5TG9uZygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW5mby53ZWVrZGF5cyhcImxvbmdcIiwgeyBsb2NPYmo6IHRoaXMubG9jIH0pW3RoaXMud2Vla2RheSAtIDFdIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIFVUQyBvZmZzZXQgb2YgdGhpcyBEYXRlVGltZSBpbiBtaW51dGVzXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLm9mZnNldCAvLz0+IC0yNDBcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkub2Zmc2V0IC8vPT4gMFxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZ2V0IG9mZnNldCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gK3RoaXMubyA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHNob3J0IGh1bWFuIG5hbWUgZm9yIHRoZSB6b25lJ3MgY3VycmVudCBvZmZzZXQsIGZvciBleGFtcGxlIFwiRVNUXCIgb3IgXCJFRFRcIi5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBnZXQgb2Zmc2V0TmFtZVNob3J0KCkge1xuICAgIGlmICh0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnpvbmUub2Zmc2V0TmFtZSh0aGlzLnRzLCB7XG4gICAgICAgIGZvcm1hdDogXCJzaG9ydFwiLFxuICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxvbmcgaHVtYW4gbmFtZSBmb3IgdGhlIHpvbmUncyBjdXJyZW50IG9mZnNldCwgZm9yIGV4YW1wbGUgXCJFYXN0ZXJuIFN0YW5kYXJkIFRpbWVcIiBvciBcIkVhc3Rlcm4gRGF5bGlnaHQgVGltZVwiLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWxlIGlmIG5vIGxvY2FsZSBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gIGdldCBvZmZzZXROYW1lTG9uZygpIHtcbiAgICBpZiAodGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gdGhpcy56b25lLm9mZnNldE5hbWUodGhpcy50cywge1xuICAgICAgICBmb3JtYXQ6IFwibG9uZ1wiLFxuICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgd2hldGhlciB0aGlzIHpvbmUncyBvZmZzZXQgZXZlciBjaGFuZ2VzLCBhcyBpbiBhIERTVC5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgaXNPZmZzZXRGaXhlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy56b25lLmlzVW5pdmVyc2FsIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgd2hldGhlciB0aGUgRGF0ZVRpbWUgaXMgaW4gYSBEU1QuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IGlzSW5EU1QoKSB7XG4gICAgaWYgKHRoaXMuaXNPZmZzZXRGaXhlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLm9mZnNldCA+IHRoaXMuc2V0KHsgbW9udGg6IDEgfSkub2Zmc2V0IHx8IHRoaXMub2Zmc2V0ID4gdGhpcy5zZXQoeyBtb250aDogNSB9KS5vZmZzZXRcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIERhdGVUaW1lIGlzIGluIGEgbGVhcCB5ZWFyLCBmYWxzZSBvdGhlcndpc2VcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNikuaXNJbkxlYXBZZWFyIC8vPT4gdHJ1ZVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDEzKS5pc0luTGVhcFllYXIgLy89PiBmYWxzZVxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBpc0luTGVhcFllYXIoKSB7XG4gICAgcmV0dXJuIGlzTGVhcFllYXIodGhpcy55ZWFyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGF5cyBpbiB0aGlzIERhdGVUaW1lJ3MgbW9udGhcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNiwgMikuZGF5c0luTW9udGggLy89PiAyOVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE2LCAzKS5kYXlzSW5Nb250aCAvLz0+IDMxXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgZGF5c0luTW9udGgoKSB7XG4gICAgcmV0dXJuIGRheXNJbk1vbnRoKHRoaXMueWVhciwgdGhpcy5tb250aCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhpcyBEYXRlVGltZSdzIHllYXJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNikuZGF5c0luWWVhciAvLz0+IDM2NlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDEzKS5kYXlzSW5ZZWFyIC8vPT4gMzY1XG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBnZXQgZGF5c0luWWVhcigpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gZGF5c0luWWVhcih0aGlzLnllYXIpIDogTmFOO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiB3ZWVrcyBpbiB0aGlzIERhdGVUaW1lJ3MgeWVhclxuICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGVcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAwNCkud2Vla3NJbldlZWtZZWFyIC8vPT4gNTNcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxMykud2Vla3NJbldlZWtZZWFyIC8vPT4gNTJcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIGdldCB3ZWVrc0luV2Vla1llYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHdlZWtzSW5XZWVrWWVhcih0aGlzLndlZWtZZWFyKSA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSByZXNvbHZlZCBJbnRsIG9wdGlvbnMgZm9yIHRoaXMgRGF0ZVRpbWUuXG4gICAqIFRoaXMgaXMgdXNlZnVsIGluIHVuZGVyc3RhbmRpbmcgdGhlIGJlaGF2aW9yIG9mIGZvcm1hdHRpbmcgbWV0aG9kc1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIHRoZSBzYW1lIG9wdGlvbnMgYXMgdG9Mb2NhbGVTdHJpbmdcbiAgICogQHJldHVybiB7T2JqZWN0fVxuICAgKi9cbiAgcmVzb2x2ZWRMb2NhbGVPcHRpb25zKG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIGNhbGVuZGFyIH0gPSBGb3JtYXR0ZXIuY3JlYXRlKFxuICAgICAgdGhpcy5sb2MuY2xvbmUob3B0cyksXG4gICAgICBvcHRzXG4gICAgKS5yZXNvbHZlZE9wdGlvbnModGhpcyk7XG4gICAgcmV0dXJuIHsgbG9jYWxlLCBudW1iZXJpbmdTeXN0ZW0sIG91dHB1dENhbGVuZGFyOiBjYWxlbmRhciB9O1xuICB9XG5cbiAgLy8gVFJBTlNGT1JNXG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhlIERhdGVUaW1lJ3Mgem9uZSB0byBVVEMuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS5cbiAgICpcbiAgICogRXF1aXZhbGVudCB0byB7QGxpbmsgRGF0ZVRpbWUjc2V0Wm9uZX0oJ3V0YycpXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0PTBdIC0gb3B0aW9uYWxseSwgYW4gb2Zmc2V0IGZyb20gVVRDIGluIG1pbnV0ZXNcbiAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRzPXt9XSAtIG9wdGlvbnMgdG8gcGFzcyB0byBgc2V0Wm9uZSgpYFxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHRvVVRDKG9mZnNldCA9IDAsIG9wdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLnNldFpvbmUoRml4ZWRPZmZzZXRab25lLmluc3RhbmNlKG9mZnNldCksIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhlIERhdGVUaW1lJ3Mgem9uZSB0byB0aGUgaG9zdCdzIGxvY2FsIHpvbmUuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS5cbiAgICpcbiAgICogRXF1aXZhbGVudCB0byBgc2V0Wm9uZSgnbG9jYWwnKWBcbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICB0b0xvY2FsKCkge1xuICAgIHJldHVybiB0aGlzLnNldFpvbmUoU2V0dGluZ3MuZGVmYXVsdFpvbmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhlIERhdGVUaW1lJ3Mgem9uZSB0byBzcGVjaWZpZWQgem9uZS4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIERhdGVUaW1lLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgc2V0dGVyIGtlZXBzIHRoZSB1bmRlcmx5aW5nIHRpbWUgdGhlIHNhbWUgKGFzIGluLCB0aGUgc2FtZSB0aW1lc3RhbXApLCBidXQgdGhlIG5ldyBpbnN0YW5jZSB3aWxsIHJlcG9ydCBkaWZmZXJlbnQgbG9jYWwgdGltZXMgYW5kIGNvbnNpZGVyIERTVHMgd2hlbiBtYWtpbmcgY29tcHV0YXRpb25zLCBhcyB3aXRoIHtAbGluayBEYXRlVGltZSNwbHVzfS4gWW91IG1heSB3aXNoIHRvIHVzZSB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbH0gYW5kIHtAbGluayBEYXRlVGltZSN0b1VUQ30gd2hpY2ggcHJvdmlkZSBzaW1wbGUgY29udmVuaWVuY2Ugd3JhcHBlcnMgZm9yIGNvbW1vbmx5IHVzZWQgem9uZXMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfFpvbmV9IFt6b25lPSdsb2NhbCddIC0gYSB6b25lIGlkZW50aWZpZXIuIEFzIGEgc3RyaW5nLCB0aGF0IGNhbiBiZSBhbnkgSUFOQSB6b25lIHN1cHBvcnRlZCBieSB0aGUgaG9zdCBlbnZpcm9ubWVudCwgb3IgYSBmaXhlZC1vZmZzZXQgbmFtZSBvZiB0aGUgZm9ybSAnVVRDKzMnLCBvciB0aGUgc3RyaW5ncyAnbG9jYWwnIG9yICd1dGMnLiBZb3UgbWF5IGFsc28gc3VwcGx5IGFuIGluc3RhbmNlIG9mIGEge0BsaW5rIERhdGVUaW1lI1pvbmV9IGNsYXNzLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnNcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5rZWVwTG9jYWxUaW1lPWZhbHNlXSAtIElmIHRydWUsIGFkanVzdCB0aGUgdW5kZXJseWluZyB0aW1lIHNvIHRoYXQgdGhlIGxvY2FsIHRpbWUgc3RheXMgdGhlIHNhbWUsIGJ1dCBpbiB0aGUgdGFyZ2V0IHpvbmUuIFlvdSBzaG91bGQgcmFyZWx5IG5lZWQgdGhpcy5cbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBzZXRab25lKHpvbmUsIHsga2VlcExvY2FsVGltZSA9IGZhbHNlLCBrZWVwQ2FsZW5kYXJUaW1lID0gZmFsc2UgfSA9IHt9KSB7XG4gICAgem9uZSA9IG5vcm1hbGl6ZVpvbmUoem9uZSwgU2V0dGluZ3MuZGVmYXVsdFpvbmUpO1xuICAgIGlmICh6b25lLmVxdWFscyh0aGlzLnpvbmUpKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9IGVsc2UgaWYgKCF6b25lLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBEYXRlVGltZS5pbnZhbGlkKHVuc3VwcG9ydGVkWm9uZSh6b25lKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBuZXdUUyA9IHRoaXMudHM7XG4gICAgICBpZiAoa2VlcExvY2FsVGltZSB8fCBrZWVwQ2FsZW5kYXJUaW1lKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldEd1ZXNzID0gem9uZS5vZmZzZXQodGhpcy50cyk7XG4gICAgICAgIGNvbnN0IGFzT2JqID0gdGhpcy50b09iamVjdCgpO1xuICAgICAgICBbbmV3VFNdID0gb2JqVG9UUyhhc09iaiwgb2Zmc2V0R3Vlc3MsIHpvbmUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgdHM6IG5ld1RTLCB6b25lIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3Igb3V0cHV0Q2FsZW5kYXIuIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBEYXRlVGltZS5cbiAgICogQHBhcmFtIHtPYmplY3R9IHByb3BlcnRpZXMgLSB0aGUgcHJvcGVydGllcyB0byBzZXRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLnJlY29uZmlndXJlKHsgbG9jYWxlOiAnZW4tR0InIH0pXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgcmVjb25maWd1cmUoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIgfSA9IHt9KSB7XG4gICAgY29uc3QgbG9jID0gdGhpcy5sb2MuY2xvbmUoeyBsb2NhbGUsIG51bWJlcmluZ1N5c3RlbSwgb3V0cHV0Q2FsZW5kYXIgfSk7XG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIHsgbG9jIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiU2V0XCIgdGhlIGxvY2FsZS4gUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIERhdGVUaW1lLlxuICAgKiBKdXN0IGEgY29udmVuaWVudCBhbGlhcyBmb3IgcmVjb25maWd1cmUoeyBsb2NhbGUgfSlcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNywgNSwgMjUpLnNldExvY2FsZSgnZW4tR0InKVxuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHNldExvY2FsZShsb2NhbGUpIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvbmZpZ3VyZSh7IGxvY2FsZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoZSB2YWx1ZXMgb2Ygc3BlY2lmaWVkIHVuaXRzLiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgRGF0ZVRpbWUuXG4gICAqIFlvdSBjYW4gb25seSBzZXQgdW5pdHMgd2l0aCB0aGlzIG1ldGhvZDsgZm9yIFwic2V0dGluZ1wiIG1ldGFkYXRhLCBzZWUge0BsaW5rIERhdGVUaW1lI3JlY29uZmlndXJlfSBhbmQge0BsaW5rIERhdGVUaW1lI3NldFpvbmV9LlxuICAgKiBAcGFyYW0ge09iamVjdH0gdmFsdWVzIC0gYSBtYXBwaW5nIG9mIHVuaXRzIHRvIG51bWJlcnNcbiAgICogQGV4YW1wbGUgZHQuc2V0KHsgeWVhcjogMjAxNyB9KVxuICAgKiBAZXhhbXBsZSBkdC5zZXQoeyBob3VyOiA4LCBtaW51dGU6IDMwIH0pXG4gICAqIEBleGFtcGxlIGR0LnNldCh7IHdlZWtkYXk6IDUgfSlcbiAgICogQGV4YW1wbGUgZHQuc2V0KHsgeWVhcjogMjAwNSwgb3JkaW5hbDogMjM0IH0pXG4gICAqIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgc2V0KHZhbHVlcykge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcblxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVPYmplY3QodmFsdWVzLCBub3JtYWxpemVVbml0KSxcbiAgICAgIHNldHRpbmdXZWVrU3R1ZmYgPVxuICAgICAgICAhaXNVbmRlZmluZWQobm9ybWFsaXplZC53ZWVrWWVhcikgfHxcbiAgICAgICAgIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQud2Vla051bWJlcikgfHxcbiAgICAgICAgIWlzVW5kZWZpbmVkKG5vcm1hbGl6ZWQud2Vla2RheSksXG4gICAgICBjb250YWluc09yZGluYWwgPSAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5vcmRpbmFsKSxcbiAgICAgIGNvbnRhaW5zR3JlZ29yWWVhciA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLnllYXIpLFxuICAgICAgY29udGFpbnNHcmVnb3JNRCA9ICFpc1VuZGVmaW5lZChub3JtYWxpemVkLm1vbnRoKSB8fCAhaXNVbmRlZmluZWQobm9ybWFsaXplZC5kYXkpLFxuICAgICAgY29udGFpbnNHcmVnb3IgPSBjb250YWluc0dyZWdvclllYXIgfHwgY29udGFpbnNHcmVnb3JNRCxcbiAgICAgIGRlZmluaXRlV2Vla0RlZiA9IG5vcm1hbGl6ZWQud2Vla1llYXIgfHwgbm9ybWFsaXplZC53ZWVrTnVtYmVyO1xuXG4gICAgaWYgKChjb250YWluc0dyZWdvciB8fCBjb250YWluc09yZGluYWwpICYmIGRlZmluaXRlV2Vla0RlZikge1xuICAgICAgdGhyb3cgbmV3IENvbmZsaWN0aW5nU3BlY2lmaWNhdGlvbkVycm9yKFxuICAgICAgICBcIkNhbid0IG1peCB3ZWVrWWVhci93ZWVrTnVtYmVyIHVuaXRzIHdpdGggeWVhci9tb250aC9kYXkgb3Igb3JkaW5hbHNcIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY29udGFpbnNHcmVnb3JNRCAmJiBjb250YWluc09yZGluYWwpIHtcbiAgICAgIHRocm93IG5ldyBDb25mbGljdGluZ1NwZWNpZmljYXRpb25FcnJvcihcIkNhbid0IG1peCBvcmRpbmFsIGRhdGVzIHdpdGggbW9udGgvZGF5XCIpO1xuICAgIH1cblxuICAgIGxldCBtaXhlZDtcbiAgICBpZiAoc2V0dGluZ1dlZWtTdHVmZikge1xuICAgICAgbWl4ZWQgPSB3ZWVrVG9HcmVnb3JpYW4oeyAuLi5ncmVnb3JpYW5Ub1dlZWsodGhpcy5jKSwgLi4ubm9ybWFsaXplZCB9KTtcbiAgICB9IGVsc2UgaWYgKCFpc1VuZGVmaW5lZChub3JtYWxpemVkLm9yZGluYWwpKSB7XG4gICAgICBtaXhlZCA9IG9yZGluYWxUb0dyZWdvcmlhbih7IC4uLmdyZWdvcmlhblRvT3JkaW5hbCh0aGlzLmMpLCAuLi5ub3JtYWxpemVkIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBtaXhlZCA9IHsgLi4udGhpcy50b09iamVjdCgpLCAuLi5ub3JtYWxpemVkIH07XG5cbiAgICAgIC8vIGlmIHdlIGRpZG4ndCBzZXQgdGhlIGRheSBidXQgd2UgZW5kZWQgdXAgb24gYW4gb3ZlcmZsb3cgZGF0ZSxcbiAgICAgIC8vIHVzZSB0aGUgbGFzdCBkYXkgb2YgdGhlIHJpZ2h0IG1vbnRoXG4gICAgICBpZiAoaXNVbmRlZmluZWQobm9ybWFsaXplZC5kYXkpKSB7XG4gICAgICAgIG1peGVkLmRheSA9IE1hdGgubWluKGRheXNJbk1vbnRoKG1peGVkLnllYXIsIG1peGVkLm1vbnRoKSwgbWl4ZWQuZGF5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBbdHMsIG9dID0gb2JqVG9UUyhtaXhlZCwgdGhpcy5vLCB0aGlzLnpvbmUpO1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCB7IHRzLCBvIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHBlcmlvZCBvZiB0aW1lIHRvIHRoaXMgRGF0ZVRpbWUgYW5kIHJldHVybiB0aGUgcmVzdWx0aW5nIERhdGVUaW1lXG4gICAqXG4gICAqIEFkZGluZyBob3VycywgbWludXRlcywgc2Vjb25kcywgb3IgbWlsbGlzZWNvbmRzIGluY3JlYXNlcyB0aGUgdGltZXN0YW1wIGJ5IHRoZSByaWdodCBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLiBBZGRpbmcgZGF5cywgbW9udGhzLCBvciB5ZWFycyBzaGlmdHMgdGhlIGNhbGVuZGFyLCBhY2NvdW50aW5nIGZvciBEU1RzIGFuZCBsZWFwIHllYXJzIGFsb25nIHRoZSB3YXkuIFRodXMsIGBkdC5wbHVzKHsgaG91cnM6IDI0IH0pYCBtYXkgcmVzdWx0IGluIGEgZGlmZmVyZW50IHRpbWUgdGhhbiBgZHQucGx1cyh7IGRheXM6IDEgfSlgIGlmIHRoZXJlJ3MgYSBEU1Qgc2hpZnQgaW4gYmV0d2Vlbi5cbiAgICogQHBhcmFtIHtEdXJhdGlvbnxPYmplY3R8bnVtYmVyfSBkdXJhdGlvbiAtIFRoZSBhbW91bnQgdG8gYWRkLiBFaXRoZXIgYSBMdXhvbiBEdXJhdGlvbiwgYSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLCB0aGUgb2JqZWN0IGFyZ3VtZW50IHRvIER1cmF0aW9uLmZyb21PYmplY3QoKVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKDEyMykgLy9+PiBpbiAxMjMgbWlsbGlzZWNvbmRzXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBtaW51dGVzOiAxNSB9KSAvL34+IGluIDE1IG1pbnV0ZXNcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkgLy9+PiB0aGlzIHRpbWUgdG9tb3Jyb3dcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IC0xIH0pIC8vfj4gdGhpcyB0aW1lIHllc3RlcmRheVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgaG91cnM6IDMsIG1pbnV0ZXM6IDEzIH0pIC8vfj4gaW4gMyBociwgMTMgbWluXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoRHVyYXRpb24uZnJvbU9iamVjdCh7IGhvdXJzOiAzLCBtaW51dGVzOiAxMyB9KSkgLy9+PiBpbiAzIGhyLCAxMyBtaW5cbiAgICogQHJldHVybiB7RGF0ZVRpbWV9XG4gICAqL1xuICBwbHVzKGR1cmF0aW9uKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiB0aGlzO1xuICAgIGNvbnN0IGR1ciA9IER1cmF0aW9uLmZyb21EdXJhdGlvbkxpa2UoZHVyYXRpb24pO1xuICAgIHJldHVybiBjbG9uZSh0aGlzLCBhZGp1c3RUaW1lKHRoaXMsIGR1cikpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnRyYWN0IGEgcGVyaW9kIG9mIHRpbWUgdG8gdGhpcyBEYXRlVGltZSBhbmQgcmV0dXJuIHRoZSByZXN1bHRpbmcgRGF0ZVRpbWVcbiAgICogU2VlIHtAbGluayBEYXRlVGltZSNwbHVzfVxuICAgKiBAcGFyYW0ge0R1cmF0aW9ufE9iamVjdHxudW1iZXJ9IGR1cmF0aW9uIC0gVGhlIGFtb3VudCB0byBzdWJ0cmFjdC4gRWl0aGVyIGEgTHV4b24gRHVyYXRpb24sIGEgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcywgdGhlIG9iamVjdCBhcmd1bWVudCB0byBEdXJhdGlvbi5mcm9tT2JqZWN0KClcbiAgIEByZXR1cm4ge0RhdGVUaW1lfVxuICAgKi9cbiAgbWludXMoZHVyYXRpb24pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIHRoaXM7XG4gICAgY29uc3QgZHVyID0gRHVyYXRpb24uZnJvbUR1cmF0aW9uTGlrZShkdXJhdGlvbikubmVnYXRlKCk7XG4gICAgcmV0dXJuIGNsb25lKHRoaXMsIGFkanVzdFRpbWUodGhpcywgZHVyKSk7XG4gIH1cblxuICAvKipcbiAgICogXCJTZXRcIiB0aGlzIERhdGVUaW1lIHRvIHRoZSBiZWdpbm5pbmcgb2YgYSB1bml0IG9mIHRpbWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0IC0gVGhlIHVuaXQgdG8gZ28gdG8gdGhlIGJlZ2lubmluZyBvZi4gQ2FuIGJlICd5ZWFyJywgJ3F1YXJ0ZXInLCAnbW9udGgnLCAnd2VlaycsICdkYXknLCAnaG91cicsICdtaW51dGUnLCAnc2Vjb25kJywgb3IgJ21pbGxpc2Vjb25kJy5cbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuc3RhcnRPZignbW9udGgnKS50b0lTT0RhdGUoKTsgLy89PiAnMjAxNC0wMy0wMSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuc3RhcnRPZigneWVhcicpLnRvSVNPRGF0ZSgpOyAvLz0+ICcyMDE0LTAxLTAxJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzKS5zdGFydE9mKCd3ZWVrJykudG9JU09EYXRlKCk7IC8vPT4gJzIwMTQtMDMtMDMnLCB3ZWVrcyBhbHdheXMgc3RhcnQgb24gTW9uZGF5c1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzLCA1LCAzMCkuc3RhcnRPZignZGF5JykudG9JU09UaW1lKCk7IC8vPT4gJzAwOjAwLjAwMC0wNTowMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMywgNSwgMzApLnN0YXJ0T2YoJ2hvdXInKS50b0lTT1RpbWUoKTsgLy89PiAnMDU6MDA6MDAuMDAwLTA1OjAwJ1xuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIHN0YXJ0T2YodW5pdCkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4gdGhpcztcbiAgICBjb25zdCBvID0ge30sXG4gICAgICBub3JtYWxpemVkVW5pdCA9IER1cmF0aW9uLm5vcm1hbGl6ZVVuaXQodW5pdCk7XG4gICAgc3dpdGNoIChub3JtYWxpemVkVW5pdCkge1xuICAgICAgY2FzZSBcInllYXJzXCI6XG4gICAgICAgIG8ubW9udGggPSAxO1xuICAgICAgLy8gZmFsbHMgdGhyb3VnaFxuICAgICAgY2FzZSBcInF1YXJ0ZXJzXCI6XG4gICAgICBjYXNlIFwibW9udGhzXCI6XG4gICAgICAgIG8uZGF5ID0gMTtcbiAgICAgIC8vIGZhbGxzIHRocm91Z2hcbiAgICAgIGNhc2UgXCJ3ZWVrc1wiOlxuICAgICAgY2FzZSBcImRheXNcIjpcbiAgICAgICAgby5ob3VyID0gMDtcbiAgICAgIC8vIGZhbGxzIHRocm91Z2hcbiAgICAgIGNhc2UgXCJob3Vyc1wiOlxuICAgICAgICBvLm1pbnV0ZSA9IDA7XG4gICAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBjYXNlIFwibWludXRlc1wiOlxuICAgICAgICBvLnNlY29uZCA9IDA7XG4gICAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBjYXNlIFwic2Vjb25kc1wiOlxuICAgICAgICBvLm1pbGxpc2Vjb25kID0gMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwibWlsbGlzZWNvbmRzXCI6XG4gICAgICAgIGJyZWFrO1xuICAgICAgLy8gbm8gZGVmYXVsdCwgaW52YWxpZCB1bml0cyB0aHJvdyBpbiBub3JtYWxpemVVbml0KClcbiAgICB9XG5cbiAgICBpZiAobm9ybWFsaXplZFVuaXQgPT09IFwid2Vla3NcIikge1xuICAgICAgby53ZWVrZGF5ID0gMTtcbiAgICB9XG5cbiAgICBpZiAobm9ybWFsaXplZFVuaXQgPT09IFwicXVhcnRlcnNcIikge1xuICAgICAgY29uc3QgcSA9IE1hdGguY2VpbCh0aGlzLm1vbnRoIC8gMyk7XG4gICAgICBvLm1vbnRoID0gKHEgLSAxKSAqIDMgKyAxO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNldChvKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIlNldFwiIHRoaXMgRGF0ZVRpbWUgdG8gdGhlIGVuZCAobWVhbmluZyB0aGUgbGFzdCBtaWxsaXNlY29uZCkgb2YgYSB1bml0IG9mIHRpbWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSBUaGUgdW5pdCB0byBnbyB0byB0aGUgZW5kIG9mLiBDYW4gYmUgJ3llYXInLCAncXVhcnRlcicsICdtb250aCcsICd3ZWVrJywgJ2RheScsICdob3VyJywgJ21pbnV0ZScsICdzZWNvbmQnLCBvciAnbWlsbGlzZWNvbmQnLlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCAzLCAzKS5lbmRPZignbW9udGgnKS50b0lTTygpOyAvLz0+ICcyMDE0LTAzLTMxVDIzOjU5OjU5Ljk5OS0wNTowMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuZW5kT2YoJ3llYXInKS50b0lTTygpOyAvLz0+ICcyMDE0LTEyLTMxVDIzOjU5OjU5Ljk5OS0wNTowMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgMywgMykuZW5kT2YoJ3dlZWsnKS50b0lTTygpOyAvLyA9PiAnMjAxNC0wMy0wOVQyMzo1OTo1OS45OTktMDU6MDAnLCB3ZWVrcyBzdGFydCBvbiBNb25kYXlzXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMsIDUsIDMwKS5lbmRPZignZGF5JykudG9JU08oKTsgLy89PiAnMjAxNC0wMy0wM1QyMzo1OTo1OS45OTktMDU6MDAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLmxvY2FsKDIwMTQsIDMsIDMsIDUsIDMwKS5lbmRPZignaG91cicpLnRvSVNPKCk7IC8vPT4gJzIwMTQtMDMtMDNUMDU6NTk6NTkuOTk5LTA1OjAwJ1xuICAgKiBAcmV0dXJuIHtEYXRlVGltZX1cbiAgICovXG4gIGVuZE9mKHVuaXQpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkXG4gICAgICA/IHRoaXMucGx1cyh7IFt1bml0XTogMSB9KVxuICAgICAgICAgIC5zdGFydE9mKHVuaXQpXG4gICAgICAgICAgLm1pbnVzKDEpXG4gICAgICA6IHRoaXM7XG4gIH1cblxuICAvLyBPVVRQVVRcblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBmb3JtYXQgc3RyaW5nLlxuICAgKiAqKllvdSBtYXkgbm90IHdhbnQgdGhpcy4qKiBTZWUge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3IgYSBtb3JlIGZsZXhpYmxlIGZvcm1hdHRpbmcgdG9vbC4gRm9yIGEgdGFibGUgb2YgdG9rZW5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbnMsIHNlZSBbaGVyZV0oaHR0cHM6Ly9tb21lbnQuZ2l0aHViLmlvL2x1eG9uLyMvZm9ybWF0dGluZz9pZD10YWJsZS1vZi10b2tlbnMpLlxuICAgKiBEZWZhdWx0cyB0byBlbi1VUyBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkLCByZWdhcmRsZXNzIG9mIHRoZSBzeXN0ZW0ncyBsb2NhbGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmbXQgLSB0aGUgZm9ybWF0IHN0cmluZ1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdHMgdG8gb3ZlcnJpZGUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvbiB0aGlzIERhdGVUaW1lXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvRm9ybWF0KCd5eXl5IExMTCBkZCcpIC8vPT4gJzIwMTcgQXByIDIyJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5zZXRMb2NhbGUoJ2ZyJykudG9Gb3JtYXQoJ3l5eXkgTExMIGRkJykgLy89PiAnMjAxNyBhdnIuIDIyJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0Zvcm1hdCgneXl5eSBMTEwgZGQnLCB7IGxvY2FsZTogXCJmclwiIH0pIC8vPT4gJzIwMTcgYXZyLiAyMidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Gb3JtYXQoXCJISCAnaG91cnMgYW5kJyBtbSAnbWludXRlcydcIikgLy89PiAnMjAgaG91cnMgYW5kIDU1IG1pbnV0ZXMnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvRm9ybWF0KGZtdCwgb3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZFxuICAgICAgPyBGb3JtYXR0ZXIuY3JlYXRlKHRoaXMubG9jLnJlZGVmYXVsdFRvRU4ob3B0cykpLmZvcm1hdERhdGVUaW1lRnJvbVN0cmluZyh0aGlzLCBmbXQpXG4gICAgICA6IElOVkFMSUQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxvY2FsaXplZCBzdHJpbmcgcmVwcmVzZW50aW5nIHRoaXMgZGF0ZS4gQWNjZXB0cyB0aGUgc2FtZSBvcHRpb25zIGFzIHRoZSBJbnRsLkRhdGVUaW1lRm9ybWF0IGNvbnN0cnVjdG9yIGFuZCBhbnkgcHJlc2V0cyBkZWZpbmVkIGJ5IEx1eG9uLCBzdWNoIGFzIGBEYXRlVGltZS5EQVRFX0ZVTExgIG9yIGBEYXRlVGltZS5USU1FX1NJTVBMRWAuXG4gICAqIFRoZSBleGFjdCBiZWhhdmlvciBvZiB0aGlzIG1ldGhvZCBpcyBicm93c2VyLXNwZWNpZmljLCBidXQgaW4gZ2VuZXJhbCBpdCB3aWxsIHJldHVybiBhbiBhcHByb3ByaWF0ZSByZXByZXNlbnRhdGlvblxuICAgKiBvZiB0aGUgRGF0ZVRpbWUgaW4gdGhlIGFzc2lnbmVkIGxvY2FsZS5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXRcbiAgICogQHBhcmFtIGZvcm1hdE9wdHMge09iamVjdH0gLSBJbnRsLkRhdGVUaW1lRm9ybWF0IGNvbnN0cnVjdG9yIG9wdGlvbnMgYW5kIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdHMgdG8gb3ZlcnJpZGUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvbiB0aGlzIERhdGVUaW1lXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKCk7IC8vPT4gNC8yMC8yMDE3XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnNldExvY2FsZSgnZW4tZ2InKS50b0xvY2FsZVN0cmluZygpOyAvLz0+ICcyMC8wNC8yMDE3J1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVN0cmluZyh7IGxvY2FsZTogJ2VuLWdiJyB9KTsgLy89PiAnMjAvMDQvMjAxNydcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVTdHJpbmcoRGF0ZVRpbWUuREFURV9GVUxMKTsgLy89PiAnQXByaWwgMjAsIDIwMTcnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKERhdGVUaW1lLlRJTUVfU0lNUExFKTsgLy89PiAnMTE6MzIgQU0nXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKERhdGVUaW1lLkRBVEVUSU1FX1NIT1JUKTsgLy89PiAnNC8yMC8yMDE3LCAxMTozMiBBTSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9Mb2NhbGVTdHJpbmcoeyB3ZWVrZGF5OiAnbG9uZycsIG1vbnRoOiAnbG9uZycsIGRheTogJzItZGlnaXQnIH0pOyAvLz0+ICdUaHVyc2RheSwgQXByaWwgMjAnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKHsgd2Vla2RheTogJ3Nob3J0JywgbW9udGg6ICdzaG9ydCcsIGRheTogJzItZGlnaXQnLCBob3VyOiAnMi1kaWdpdCcsIG1pbnV0ZTogJzItZGlnaXQnIH0pOyAvLz0+ICdUaHUsIEFwciAyMCwgMTE6MjcgQU0nXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvTG9jYWxlU3RyaW5nKHsgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JywgaG91ckN5Y2xlOiAnaDIzJyB9KTsgLy89PiAnMTE6MzInXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvTG9jYWxlU3RyaW5nKGZvcm1hdE9wdHMgPSBGb3JtYXRzLkRBVEVfU0hPUlQsIG9wdHMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRcbiAgICAgID8gRm9ybWF0dGVyLmNyZWF0ZSh0aGlzLmxvYy5jbG9uZShvcHRzKSwgZm9ybWF0T3B0cykuZm9ybWF0RGF0ZVRpbWUodGhpcylcbiAgICAgIDogSU5WQUxJRDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGZvcm1hdCBcInBhcnRzXCIsIG1lYW5pbmcgaW5kaXZpZHVhbCB0b2tlbnMgYWxvbmcgd2l0aCBtZXRhZGF0YS4gVGhpcyBpcyBhbGxvd3MgY2FsbGVycyB0byBwb3N0LXByb2Nlc3MgaW5kaXZpZHVhbCBzZWN0aW9ucyBvZiB0aGUgZm9ybWF0dGVkIG91dHB1dC5cbiAgICogRGVmYXVsdHMgdG8gdGhlIHN5c3RlbSdzIGxvY2FsZSBpZiBubyBsb2NhbGUgaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZVRpbWVGb3JtYXQvZm9ybWF0VG9QYXJ0c1xuICAgKiBAcGFyYW0gb3B0cyB7T2JqZWN0fSAtIEludGwuRGF0ZVRpbWVGb3JtYXQgY29uc3RydWN0b3Igb3B0aW9ucywgc2FtZSBhcyBgdG9Mb2NhbGVTdHJpbmdgLlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b0xvY2FsZVBhcnRzKCk7IC8vPT4gW1xuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy89PiAgIHsgdHlwZTogJ2RheScsIHZhbHVlOiAnMjUnIH0sXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+ICAgeyB0eXBlOiAnbGl0ZXJhbCcsIHZhbHVlOiAnLycgfSxcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPT4gICB7IHR5cGU6ICdtb250aCcsIHZhbHVlOiAnMDUnIH0sXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+ICAgeyB0eXBlOiAnbGl0ZXJhbCcsIHZhbHVlOiAnLycgfSxcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vPT4gICB7IHR5cGU6ICd5ZWFyJywgdmFsdWU6ICcxOTgyJyB9XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLz0+IF1cbiAgICovXG4gIHRvTG9jYWxlUGFydHMob3B0cyA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZFxuICAgICAgPyBGb3JtYXR0ZXIuY3JlYXRlKHRoaXMubG9jLmNsb25lKG9wdHMpLCBvcHRzKS5mb3JtYXREYXRlVGltZVBhcnRzKHRoaXMpXG4gICAgICA6IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnN1cHByZXNzTWlsbGlzZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDBcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc1NlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDBcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0PXRydWVdIC0gaW5jbHVkZSB0aGUgb2Zmc2V0LCBzdWNoIGFzICdaJyBvciAnLTA0OjAwJ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZm9ybWF0PSdleHRlbmRlZCddIC0gY2hvb3NlIGJldHdlZW4gdGhlIGJhc2ljIGFuZCBleHRlbmRlZCBmb3JtYXRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDE5ODMsIDUsIDI1KS50b0lTTygpIC8vPT4gJzE5ODItMDUtMjVUMDA6MDA6MDAuMDAwWidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9JU08oKSAvLz0+ICcyMDE3LTA0LTIyVDIwOjQ3OjA1LjMzNS0wNDowMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9JU08oeyBpbmNsdWRlT2Zmc2V0OiBmYWxzZSB9KSAvLz0+ICcyMDE3LTA0LTIyVDIwOjQ3OjA1LjMzNSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9JU08oeyBmb3JtYXQ6ICdiYXNpYycgfSkgLy89PiAnMjAxNzA0MjJUMjA0NzA1LjMzNS0wNDAwJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0lTTyh7XG4gICAgZm9ybWF0ID0gXCJleHRlbmRlZFwiLFxuICAgIHN1cHByZXNzU2Vjb25kcyA9IGZhbHNlLFxuICAgIHN1cHByZXNzTWlsbGlzZWNvbmRzID0gZmFsc2UsXG4gICAgaW5jbHVkZU9mZnNldCA9IHRydWUsXG4gIH0gPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBleHQgPSBmb3JtYXQgPT09IFwiZXh0ZW5kZWRcIjtcblxuICAgIGxldCBjID0gdG9JU09EYXRlKHRoaXMsIGV4dCk7XG4gICAgYyArPSBcIlRcIjtcbiAgICBjICs9IHRvSVNPVGltZSh0aGlzLCBleHQsIHN1cHByZXNzU2Vjb25kcywgc3VwcHJlc3NNaWxsaXNlY29uZHMsIGluY2x1ZGVPZmZzZXQpO1xuICAgIHJldHVybiBjO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lJ3MgZGF0ZSBjb21wb25lbnRcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5mb3JtYXQ9J2V4dGVuZGVkJ10gLSBjaG9vc2UgYmV0d2VlbiB0aGUgYmFzaWMgYW5kIGV4dGVuZGVkIGZvcm1hdFxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMTk4MiwgNSwgMjUpLnRvSVNPRGF0ZSgpIC8vPT4gJzE5ODItMDUtMjUnXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgyLCA1LCAyNSkudG9JU09EYXRlKHsgZm9ybWF0OiAnYmFzaWMnIH0pIC8vPT4gJzE5ODIwNTI1J1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b0lTT0RhdGUoeyBmb3JtYXQgPSBcImV4dGVuZGVkXCIgfSA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0b0lTT0RhdGUodGhpcywgZm9ybWF0ID09PSBcImV4dGVuZGVkXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSVNPIDg2MDEtY29tcGxpYW50IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lJ3Mgd2VlayBkYXRlXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygxOTgyLCA1LCAyNSkudG9JU09XZWVrRGF0ZSgpIC8vPT4gJzE5ODItVzIxLTInXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvSVNPV2Vla0RhdGUoKSB7XG4gICAgcmV0dXJuIHRvVGVjaEZvcm1hdCh0aGlzLCBcImtra2stJ1cnV1ctY1wiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIElTTyA4NjAxLWNvbXBsaWFudCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSdzIHRpbWUgY29tcG9uZW50XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLnN1cHByZXNzTWlsbGlzZWNvbmRzPWZhbHNlXSAtIGV4Y2x1ZGUgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDBcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5zdXBwcmVzc1NlY29uZHM9ZmFsc2VdIC0gZXhjbHVkZSBzZWNvbmRzIGZyb20gdGhlIGZvcm1hdCBpZiB0aGV5J3JlIDBcbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0PXRydWVdIC0gaW5jbHVkZSB0aGUgb2Zmc2V0LCBzdWNoIGFzICdaJyBvciAnLTA0OjAwJ1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVQcmVmaXg9ZmFsc2VdIC0gaW5jbHVkZSB0aGUgYFRgIHByZWZpeFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZm9ybWF0PSdleHRlbmRlZCddIC0gY2hvb3NlIGJldHdlZW4gdGhlIGJhc2ljIGFuZCBleHRlbmRlZCBmb3JtYXRcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkuc2V0KHsgaG91cjogNywgbWludXRlOiAzNCB9KS50b0lTT1RpbWUoKSAvLz0+ICcwNzozNDoxOS4zNjFaJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS5zZXQoeyBob3VyOiA3LCBtaW51dGU6IDM0LCBzZWNvbmRzOiAwLCBtaWxsaXNlY29uZHM6IDAgfSkudG9JU09UaW1lKHsgc3VwcHJlc3NTZWNvbmRzOiB0cnVlIH0pIC8vPT4gJzA3OjM0WidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKCkuc2V0KHsgaG91cjogNywgbWludXRlOiAzNCB9KS50b0lTT1RpbWUoeyBmb3JtYXQ6ICdiYXNpYycgfSkgLy89PiAnMDczNDE5LjM2MVonXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygpLnNldCh7IGhvdXI6IDcsIG1pbnV0ZTogMzQgfSkudG9JU09UaW1lKHsgaW5jbHVkZVByZWZpeDogdHJ1ZSB9KSAvLz0+ICdUMDc6MzQ6MTkuMzYxWidcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9JU09UaW1lKHtcbiAgICBzdXBwcmVzc01pbGxpc2Vjb25kcyA9IGZhbHNlLFxuICAgIHN1cHByZXNzU2Vjb25kcyA9IGZhbHNlLFxuICAgIGluY2x1ZGVPZmZzZXQgPSB0cnVlLFxuICAgIGluY2x1ZGVQcmVmaXggPSBmYWxzZSxcbiAgICBmb3JtYXQgPSBcImV4dGVuZGVkXCIsXG4gIH0gPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgYyA9IGluY2x1ZGVQcmVmaXggPyBcIlRcIiA6IFwiXCI7XG4gICAgcmV0dXJuIChcbiAgICAgIGMgK1xuICAgICAgdG9JU09UaW1lKHRoaXMsIGZvcm1hdCA9PT0gXCJleHRlbmRlZFwiLCBzdXBwcmVzc1NlY29uZHMsIHN1cHByZXNzTWlsbGlzZWNvbmRzLCBpbmNsdWRlT2Zmc2V0KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBSRkMgMjgyMi1jb21wYXRpYmxlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLnV0YygyMDE0LCA3LCAxMykudG9SRkMyODIyKCkgLy89PiAnU3VuLCAxMyBKdWwgMjAxNCAwMDowMDowMCArMDAwMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgNywgMTMpLnRvUkZDMjgyMigpIC8vPT4gJ1N1biwgMTMgSnVsIDIwMTQgMDA6MDA6MDAgLTA0MDAnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvUkZDMjgyMigpIHtcbiAgICByZXR1cm4gdG9UZWNoRm9ybWF0KHRoaXMsIFwiRUVFLCBkZCBMTEwgeXl5eSBISDptbTpzcyBaWlpcIiwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIEhUVFAgaGVhZGVycy4gVGhlIG91dHB1dCBpcyBhbHdheXMgZXhwcmVzc2VkIGluIEdNVC5cbiAgICogU3BlY2lmaWNhbGx5LCB0aGUgc3RyaW5nIGNvbmZvcm1zIHRvIFJGQyAxMTIzLlxuICAgKiBAc2VlIGh0dHBzOi8vd3d3LnczLm9yZy9Qcm90b2NvbHMvcmZjMjYxNi9yZmMyNjE2LXNlYzMuaHRtbCNzZWMzLjMuMVxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMpLnRvSFRUUCgpIC8vPT4gJ1N1biwgMTMgSnVsIDIwMTQgMDA6MDA6MDAgR01UJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMsIDE5KS50b0hUVFAoKSAvLz0+ICdTdW4sIDEzIEp1bCAyMDE0IDE5OjAwOjAwIEdNVCdcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9IVFRQKCkge1xuICAgIHJldHVybiB0b1RlY2hGb3JtYXQodGhpcy50b1VUQygpLCBcIkVFRSwgZGQgTExMIHl5eXkgSEg6bW06c3MgJ0dNVCdcIik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gU1FMIERhdGVcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUudXRjKDIwMTQsIDcsIDEzKS50b1NRTERhdGUoKSAvLz0+ICcyMDE0LTA3LTEzJ1xuICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAqL1xuICB0b1NRTERhdGUoKSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdG9JU09EYXRlKHRoaXMsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBEYXRlVGltZSBhcHByb3ByaWF0ZSBmb3IgdXNlIGluIFNRTCBUaW1lXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVab25lPWZhbHNlXSAtIGluY2x1ZGUgdGhlIHpvbmUsIHN1Y2ggYXMgJ0FtZXJpY2EvTmV3X1lvcmsnLiBPdmVycmlkZXMgaW5jbHVkZU9mZnNldC5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0PXRydWVdIC0gaW5jbHVkZSB0aGUgb2Zmc2V0LCBzdWNoIGFzICdaJyBvciAnLTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoKS50b1NRTCgpIC8vPT4gJzA1OjE1OjE2LjM0NSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9TUUwoKSAvLz0+ICcwNToxNToxNi4zNDUgLTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS50b1NRTCh7IGluY2x1ZGVPZmZzZXQ6IGZhbHNlIH0pIC8vPT4gJzA1OjE1OjE2LjM0NSdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkudG9TUUwoeyBpbmNsdWRlWm9uZTogZmFsc2UgfSkgLy89PiAnMDU6MTU6MTYuMzQ1IEFtZXJpY2EvTmV3X1lvcmsnXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIHRvU1FMVGltZSh7IGluY2x1ZGVPZmZzZXQgPSB0cnVlLCBpbmNsdWRlWm9uZSA9IGZhbHNlIH0gPSB7fSkge1xuICAgIGxldCBmbXQgPSBcIkhIOm1tOnNzLlNTU1wiO1xuXG4gICAgaWYgKGluY2x1ZGVab25lIHx8IGluY2x1ZGVPZmZzZXQpIHtcbiAgICAgIGZtdCArPSBcIiBcIjtcbiAgICAgIGlmIChpbmNsdWRlWm9uZSkge1xuICAgICAgICBmbXQgKz0gXCJ6XCI7XG4gICAgICB9IGVsc2UgaWYgKGluY2x1ZGVPZmZzZXQpIHtcbiAgICAgICAgZm10ICs9IFwiWlpcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdG9UZWNoRm9ybWF0KHRoaXMsIGZtdCwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gU1FMIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRzLmluY2x1ZGVab25lPWZhbHNlXSAtIGluY2x1ZGUgdGhlIHpvbmUsIHN1Y2ggYXMgJ0FtZXJpY2EvTmV3X1lvcmsnLiBPdmVycmlkZXMgaW5jbHVkZU9mZnNldC5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5pbmNsdWRlT2Zmc2V0PXRydWVdIC0gaW5jbHVkZSB0aGUgb2Zmc2V0LCBzdWNoIGFzICdaJyBvciAnLTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS51dGMoMjAxNCwgNywgMTMpLnRvU1FMKCkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAgWidcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgNywgMTMpLnRvU1FMKCkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAgLTA0OjAwJ1xuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5sb2NhbCgyMDE0LCA3LCAxMykudG9TUUwoeyBpbmNsdWRlT2Zmc2V0OiBmYWxzZSB9KSAvLz0+ICcyMDE0LTA3LTEzIDAwOjAwOjAwLjAwMCdcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubG9jYWwoMjAxNCwgNywgMTMpLnRvU1FMKHsgaW5jbHVkZVpvbmU6IHRydWUgfSkgLy89PiAnMjAxNC0wNy0xMyAwMDowMDowMC4wMDAgQW1lcmljYS9OZXdfWW9yaydcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9TUUwob3B0cyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBgJHt0aGlzLnRvU1FMRGF0ZSgpfSAke3RoaXMudG9TUUxUaW1lKG9wdHMpfWA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciBkZWJ1Z2dpbmdcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZCA/IHRoaXMudG9JU08oKSA6IElOVkFMSUQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZXBvY2ggbWlsbGlzZWNvbmRzIG9mIHRoaXMgRGF0ZVRpbWUuIEFsaWFzIG9mIHtAbGluayBEYXRlVGltZSN0b01pbGxpc31cbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgdmFsdWVPZigpIHtcbiAgICByZXR1cm4gdGhpcy50b01pbGxpcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVwb2NoIG1pbGxpc2Vjb25kcyBvZiB0aGlzIERhdGVUaW1lLlxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICB0b01pbGxpcygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy50cyA6IE5hTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBlcG9jaCBzZWNvbmRzIG9mIHRoaXMgRGF0ZVRpbWUuXG4gICAqIEByZXR1cm4ge251bWJlcn1cbiAgICovXG4gIHRvU2Vjb25kcygpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy50cyAvIDEwMDAgOiBOYU47XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBJU08gODYwMSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIERhdGVUaW1lIGFwcHJvcHJpYXRlIGZvciB1c2UgaW4gSlNPTi5cbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgdG9KU09OKCkge1xuICAgIHJldHVybiB0aGlzLnRvSVNPKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIEJTT04gc2VyaWFsaXphYmxlIGVxdWl2YWxlbnQgdG8gdGhpcyBEYXRlVGltZS5cbiAgICogQHJldHVybiB7RGF0ZX1cbiAgICovXG4gIHRvQlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy50b0pTRGF0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIHRoaXMgRGF0ZVRpbWUncyB5ZWFyLCBtb250aCwgZGF5LCBhbmQgc28gb24uXG4gICAqIEBwYXJhbSBvcHRzIC0gb3B0aW9ucyBmb3IgZ2VuZXJhdGluZyB0aGUgb2JqZWN0XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdHMuaW5jbHVkZUNvbmZpZz1mYWxzZV0gLSBpbmNsdWRlIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlcyBpbiB0aGUgb3V0cHV0XG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnRvT2JqZWN0KCkgLy89PiB7IHllYXI6IDIwMTcsIG1vbnRoOiA0LCBkYXk6IDIyLCBob3VyOiAyMCwgbWludXRlOiA0OSwgc2Vjb25kOiA0MiwgbWlsbGlzZWNvbmQ6IDI2OCB9XG4gICAqIEByZXR1cm4ge09iamVjdH1cbiAgICovXG4gIHRvT2JqZWN0KG9wdHMgPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKSByZXR1cm4ge307XG5cbiAgICBjb25zdCBiYXNlID0geyAuLi50aGlzLmMgfTtcblxuICAgIGlmIChvcHRzLmluY2x1ZGVDb25maWcpIHtcbiAgICAgIGJhc2Uub3V0cHV0Q2FsZW5kYXIgPSB0aGlzLm91dHB1dENhbGVuZGFyO1xuICAgICAgYmFzZS5udW1iZXJpbmdTeXN0ZW0gPSB0aGlzLmxvYy5udW1iZXJpbmdTeXN0ZW07XG4gICAgICBiYXNlLmxvY2FsZSA9IHRoaXMubG9jLmxvY2FsZTtcbiAgICB9XG4gICAgcmV0dXJuIGJhc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIEphdmFTY3JpcHQgRGF0ZSBlcXVpdmFsZW50IHRvIHRoaXMgRGF0ZVRpbWUuXG4gICAqIEByZXR1cm4ge0RhdGV9XG4gICAqL1xuICB0b0pTRGF0ZSgpIHtcbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5pc1ZhbGlkID8gdGhpcy50cyA6IE5hTik7XG4gIH1cblxuICAvLyBDT01QQVJFXG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHR3byBEYXRlVGltZXMgYXMgYSBEdXJhdGlvbi5cbiAgICogQHBhcmFtIHtEYXRlVGltZX0gb3RoZXJEYXRlVGltZSAtIHRoZSBEYXRlVGltZSB0byBjb21wYXJlIHRoaXMgb25lIHRvXG4gICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBbdW5pdD1bJ21pbGxpc2Vjb25kcyddXSAtIHRoZSB1bml0IG9yIGFycmF5IG9mIHVuaXRzIChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byBpbmNsdWRlIGluIHRoZSBkdXJhdGlvbi5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiB0aGUgRHVyYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmNvbnZlcnNpb25BY2N1cmFjeT0nY2FzdWFsJ10gLSB0aGUgY29udmVyc2lvbiBzeXN0ZW0gdG8gdXNlXG4gICAqIEBleGFtcGxlXG4gICAqIHZhciBpMSA9IERhdGVUaW1lLmZyb21JU08oJzE5ODItMDUtMjVUMDk6NDUnKSxcbiAgICogICAgIGkyID0gRGF0ZVRpbWUuZnJvbUlTTygnMTk4My0xMC0xNFQxMDozMCcpO1xuICAgKiBpMi5kaWZmKGkxKS50b09iamVjdCgpIC8vPT4geyBtaWxsaXNlY29uZHM6IDQzODA3NTAwMDAwIH1cbiAgICogaTIuZGlmZihpMSwgJ2hvdXJzJykudG9PYmplY3QoKSAvLz0+IHsgaG91cnM6IDEyMTY4Ljc1IH1cbiAgICogaTIuZGlmZihpMSwgWydtb250aHMnLCAnZGF5cyddKS50b09iamVjdCgpIC8vPT4geyBtb250aHM6IDE2LCBkYXlzOiAxOS4wMzEyNSB9XG4gICAqIGkyLmRpZmYoaTEsIFsnbW9udGhzJywgJ2RheXMnLCAnaG91cnMnXSkudG9PYmplY3QoKSAvLz0+IHsgbW9udGhzOiAxNiwgZGF5czogMTksIGhvdXJzOiAwLjc1IH1cbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBkaWZmKG90aGVyRGF0ZVRpbWUsIHVuaXQgPSBcIm1pbGxpc2Vjb25kc1wiLCBvcHRzID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCB8fCAhb3RoZXJEYXRlVGltZS5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uaW52YWxpZChcImNyZWF0ZWQgYnkgZGlmZmluZyBhbiBpbnZhbGlkIERhdGVUaW1lXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGR1ck9wdHMgPSB7IGxvY2FsZTogdGhpcy5sb2NhbGUsIG51bWJlcmluZ1N5c3RlbTogdGhpcy5udW1iZXJpbmdTeXN0ZW0sIC4uLm9wdHMgfTtcblxuICAgIGNvbnN0IHVuaXRzID0gbWF5YmVBcnJheSh1bml0KS5tYXAoRHVyYXRpb24ubm9ybWFsaXplVW5pdCksXG4gICAgICBvdGhlcklzTGF0ZXIgPSBvdGhlckRhdGVUaW1lLnZhbHVlT2YoKSA+IHRoaXMudmFsdWVPZigpLFxuICAgICAgZWFybGllciA9IG90aGVySXNMYXRlciA/IHRoaXMgOiBvdGhlckRhdGVUaW1lLFxuICAgICAgbGF0ZXIgPSBvdGhlcklzTGF0ZXIgPyBvdGhlckRhdGVUaW1lIDogdGhpcyxcbiAgICAgIGRpZmZlZCA9IGRpZmYoZWFybGllciwgbGF0ZXIsIHVuaXRzLCBkdXJPcHRzKTtcblxuICAgIHJldHVybiBvdGhlcklzTGF0ZXIgPyBkaWZmZWQubmVnYXRlKCkgOiBkaWZmZWQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBEYXRlVGltZSBhbmQgcmlnaHQgbm93LlxuICAgKiBTZWUge0BsaW5rIERhdGVUaW1lI2RpZmZ9XG4gICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBbdW5pdD1bJ21pbGxpc2Vjb25kcyddXSAtIHRoZSB1bml0IG9yIHVuaXRzIHVuaXRzIChzdWNoIGFzICdob3Vycycgb3IgJ2RheXMnKSB0byBpbmNsdWRlIGluIHRoZSBkdXJhdGlvblxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIGNyZWF0aW9uIG9mIHRoZSBEdXJhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuY29udmVyc2lvbkFjY3VyYWN5PSdjYXN1YWwnXSAtIHRoZSBjb252ZXJzaW9uIHN5c3RlbSB0byB1c2VcbiAgICogQHJldHVybiB7RHVyYXRpb259XG4gICAqL1xuICBkaWZmTm93KHVuaXQgPSBcIm1pbGxpc2Vjb25kc1wiLCBvcHRzID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5kaWZmKERhdGVUaW1lLm5vdygpLCB1bml0LCBvcHRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gSW50ZXJ2YWwgc3Bhbm5pbmcgYmV0d2VlbiB0aGlzIERhdGVUaW1lIGFuZCBhbm90aGVyIERhdGVUaW1lXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IG90aGVyRGF0ZVRpbWUgLSB0aGUgb3RoZXIgZW5kIHBvaW50IG9mIHRoZSBJbnRlcnZhbFxuICAgKiBAcmV0dXJuIHtJbnRlcnZhbH1cbiAgICovXG4gIHVudGlsKG90aGVyRGF0ZVRpbWUpIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gSW50ZXJ2YWwuZnJvbURhdGVUaW1lcyh0aGlzLCBvdGhlckRhdGVUaW1lKSA6IHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBEYXRlVGltZSBpcyBpbiB0aGUgc2FtZSB1bml0IG9mIHRpbWUgYXMgYW5vdGhlciBEYXRlVGltZS5cbiAgICogSGlnaGVyLW9yZGVyIHVuaXRzIG11c3QgYWxzbyBiZSBpZGVudGljYWwgZm9yIHRoaXMgZnVuY3Rpb24gdG8gcmV0dXJuIGB0cnVlYC5cbiAgICogTm90ZSB0aGF0IHRpbWUgem9uZXMgYXJlICoqaWdub3JlZCoqIGluIHRoaXMgY29tcGFyaXNvbiwgd2hpY2ggY29tcGFyZXMgdGhlICoqbG9jYWwqKiBjYWxlbmRhciB0aW1lLiBVc2Uge0BsaW5rIERhdGVUaW1lI3NldFpvbmV9IHRvIGNvbnZlcnQgb25lIG9mIHRoZSBkYXRlcyBpZiBuZWVkZWQuXG4gICAqIEBwYXJhbSB7RGF0ZVRpbWV9IG90aGVyRGF0ZVRpbWUgLSB0aGUgb3RoZXIgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXQgLSB0aGUgdW5pdCBvZiB0aW1lIHRvIGNoZWNrIHNhbWVuZXNzIG9uXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLmhhc1NhbWUob3RoZXJEVCwgJ2RheScpOyAvL34+IHRydWUgaWYgb3RoZXJEVCBpcyBpbiB0aGUgc2FtZSBjdXJyZW50IGNhbGVuZGFyIGRheVxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgaGFzU2FtZShvdGhlckRhdGVUaW1lLCB1bml0KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGlucHV0TXMgPSBvdGhlckRhdGVUaW1lLnZhbHVlT2YoKTtcbiAgICBjb25zdCBhZGp1c3RlZFRvWm9uZSA9IHRoaXMuc2V0Wm9uZShvdGhlckRhdGVUaW1lLnpvbmUsIHsga2VlcExvY2FsVGltZTogdHJ1ZSB9KTtcbiAgICByZXR1cm4gYWRqdXN0ZWRUb1pvbmUuc3RhcnRPZih1bml0KSA8PSBpbnB1dE1zICYmIGlucHV0TXMgPD0gYWRqdXN0ZWRUb1pvbmUuZW5kT2YodW5pdCk7XG4gIH1cblxuICAvKipcbiAgICogRXF1YWxpdHkgY2hlY2tcbiAgICogVHdvIERhdGVUaW1lcyBhcmUgZXF1YWwgaWZmIHRoZXkgcmVwcmVzZW50IHRoZSBzYW1lIG1pbGxpc2Vjb25kLCBoYXZlIHRoZSBzYW1lIHpvbmUgYW5kIGxvY2F0aW9uLCBhbmQgYXJlIGJvdGggdmFsaWQuXG4gICAqIFRvIGNvbXBhcmUganVzdCB0aGUgbWlsbGlzZWNvbmQgdmFsdWVzLCB1c2UgYCtkdDEgPT09ICtkdDJgLlxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBvdGhlciAtIHRoZSBvdGhlciBEYXRlVGltZVxuICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgKi9cbiAgZXF1YWxzKG90aGVyKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaXNWYWxpZCAmJlxuICAgICAgb3RoZXIuaXNWYWxpZCAmJlxuICAgICAgdGhpcy52YWx1ZU9mKCkgPT09IG90aGVyLnZhbHVlT2YoKSAmJlxuICAgICAgdGhpcy56b25lLmVxdWFscyhvdGhlci56b25lKSAmJlxuICAgICAgdGhpcy5sb2MuZXF1YWxzKG90aGVyLmxvYylcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSB0aGlzIHRpbWUgcmVsYXRpdmUgdG8gbm93LCBzdWNoIGFzIFwiaW4gdHdvIGRheXNcIi4gQ2FuIG9ubHkgaW50ZXJuYXRpb25hbGl6ZSBpZiB5b3VyXG4gICAqIHBsYXRmb3JtIHN1cHBvcnRzIEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LiBSb3VuZHMgZG93biBieSBkZWZhdWx0LlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIG91dHB1dFxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBbb3B0aW9ucy5iYXNlPURhdGVUaW1lLm5vdygpXSAtIHRoZSBEYXRlVGltZSB0byB1c2UgYXMgdGhlIGJhc2lzIHRvIHdoaWNoIHRoaXMgdGltZSBpcyBjb21wYXJlZC4gRGVmYXVsdHMgdG8gbm93LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuc3R5bGU9XCJsb25nXCJdIC0gdGhlIHN0eWxlIG9mIHVuaXRzLCBtdXN0IGJlIFwibG9uZ1wiLCBcInNob3J0XCIsIG9yIFwibmFycm93XCJcbiAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IG9wdGlvbnMudW5pdCAtIHVzZSBhIHNwZWNpZmljIHVuaXQgb3IgYXJyYXkgb2YgdW5pdHM7IGlmIG9taXR0ZWQsIG9yIGFuIGFycmF5LCB0aGUgbWV0aG9kIHdpbGwgcGljayB0aGUgYmVzdCB1bml0LiBVc2UgYW4gYXJyYXkgb3Igb25lIG9mIFwieWVhcnNcIiwgXCJxdWFydGVyc1wiLCBcIm1vbnRoc1wiLCBcIndlZWtzXCIsIFwiZGF5c1wiLCBcImhvdXJzXCIsIFwibWludXRlc1wiLCBvciBcInNlY29uZHNcIlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnJvdW5kPXRydWVdIC0gd2hldGhlciB0byByb3VuZCB0aGUgbnVtYmVycyBpbiB0aGUgb3V0cHV0LlxuICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMucGFkZGluZz0wXSAtIHBhZGRpbmcgaW4gbWlsbGlzZWNvbmRzLiBUaGlzIGFsbG93cyB5b3UgdG8gcm91bmQgdXAgdGhlIHJlc3VsdCBpZiBpdCBmaXRzIGluc2lkZSB0aGUgdGhyZXNob2xkLiBEb24ndCB1c2UgaW4gY29tYmluYXRpb24gd2l0aCB7cm91bmQ6IGZhbHNlfSBiZWNhdXNlIHRoZSBkZWNpbWFsIG91dHB1dCB3aWxsIGluY2x1ZGUgdGhlIHBhZGRpbmcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmxvY2FsZSAtIG92ZXJyaWRlIHRoZSBsb2NhbGUgb2YgdGhpcyBEYXRlVGltZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5udW1iZXJpbmdTeXN0ZW0gLSBvdmVycmlkZSB0aGUgbnVtYmVyaW5nU3lzdGVtIG9mIHRoaXMgRGF0ZVRpbWUuIFRoZSBJbnRsIHN5c3RlbSBtYXkgY2hvb3NlIG5vdCB0byBob25vciB0aGlzXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLnBsdXMoeyBkYXlzOiAxIH0pLnRvUmVsYXRpdmUoKSAvLz0+IFwiaW4gMSBkYXlcIlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5zZXRMb2NhbGUoXCJlc1wiKS50b1JlbGF0aXZlKHsgZGF5czogMSB9KSAvLz0+IFwiZGVudHJvIGRlIDEgZFx1MDBFRGFcIlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5wbHVzKHsgZGF5czogMSB9KS50b1JlbGF0aXZlKHsgbG9jYWxlOiBcImZyXCIgfSkgLy89PiBcImRhbnMgMjMgaGV1cmVzXCJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkubWludXMoeyBkYXlzOiAyIH0pLnRvUmVsYXRpdmUoKSAvLz0+IFwiMiBkYXlzIGFnb1wiXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLm1pbnVzKHsgZGF5czogMiB9KS50b1JlbGF0aXZlKHsgdW5pdDogXCJob3Vyc1wiIH0pIC8vPT4gXCI0OCBob3VycyBhZ29cIlxuICAgKiBAZXhhbXBsZSBEYXRlVGltZS5ub3coKS5taW51cyh7IGhvdXJzOiAzNiB9KS50b1JlbGF0aXZlKHsgcm91bmQ6IGZhbHNlIH0pIC8vPT4gXCIxLjUgZGF5cyBhZ29cIlxuICAgKi9cbiAgdG9SZWxhdGl2ZShvcHRpb25zID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZCkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgYmFzZSA9IG9wdGlvbnMuYmFzZSB8fCBEYXRlVGltZS5mcm9tT2JqZWN0KHt9LCB7IHpvbmU6IHRoaXMuem9uZSB9KSxcbiAgICAgIHBhZGRpbmcgPSBvcHRpb25zLnBhZGRpbmcgPyAodGhpcyA8IGJhc2UgPyAtb3B0aW9ucy5wYWRkaW5nIDogb3B0aW9ucy5wYWRkaW5nKSA6IDA7XG4gICAgbGV0IHVuaXRzID0gW1wieWVhcnNcIiwgXCJtb250aHNcIiwgXCJkYXlzXCIsIFwiaG91cnNcIiwgXCJtaW51dGVzXCIsIFwic2Vjb25kc1wiXTtcbiAgICBsZXQgdW5pdCA9IG9wdGlvbnMudW5pdDtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLnVuaXQpKSB7XG4gICAgICB1bml0cyA9IG9wdGlvbnMudW5pdDtcbiAgICAgIHVuaXQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiBkaWZmUmVsYXRpdmUoYmFzZSwgdGhpcy5wbHVzKHBhZGRpbmcpLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgbnVtZXJpYzogXCJhbHdheXNcIixcbiAgICAgIHVuaXRzLFxuICAgICAgdW5pdCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgZGF0ZSByZWxhdGl2ZSB0byB0b2RheSwgc3VjaCBhcyBcInllc3RlcmRheVwiIG9yIFwibmV4dCBtb250aFwiLlxuICAgKiBPbmx5IGludGVybmF0aW9uYWxpemVzIG9uIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnRzIEludGwuUmVsYXRpdmVUaW1lRm9ybWF0LlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIG91dHB1dFxuICAgKiBAcGFyYW0ge0RhdGVUaW1lfSBbb3B0aW9ucy5iYXNlPURhdGVUaW1lLm5vdygpXSAtIHRoZSBEYXRlVGltZSB0byB1c2UgYXMgdGhlIGJhc2lzIHRvIHdoaWNoIHRoaXMgdGltZSBpcyBjb21wYXJlZC4gRGVmYXVsdHMgdG8gbm93LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5sb2NhbGUgLSBvdmVycmlkZSB0aGUgbG9jYWxlIG9mIHRoaXMgRGF0ZVRpbWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMudW5pdCAtIHVzZSBhIHNwZWNpZmljIHVuaXQ7IGlmIG9taXR0ZWQsIHRoZSBtZXRob2Qgd2lsbCBwaWNrIHRoZSB1bml0LiBVc2Ugb25lIG9mIFwieWVhcnNcIiwgXCJxdWFydGVyc1wiLCBcIm1vbnRoc1wiLCBcIndlZWtzXCIsIG9yIFwiZGF5c1wiXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm51bWJlcmluZ1N5c3RlbSAtIG92ZXJyaWRlIHRoZSBudW1iZXJpbmdTeXN0ZW0gb2YgdGhpcyBEYXRlVGltZS4gVGhlIEludGwgc3lzdGVtIG1heSBjaG9vc2Ugbm90IHRvIGhvbm9yIHRoaXNcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZUNhbGVuZGFyKCkgLy89PiBcInRvbW9ycm93XCJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkuc2V0TG9jYWxlKFwiZXNcIikucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZSgpIC8vPT4gXCJcIm1hXHUwMEYxYW5hXCJcbiAgICogQGV4YW1wbGUgRGF0ZVRpbWUubm93KCkucGx1cyh7IGRheXM6IDEgfSkudG9SZWxhdGl2ZUNhbGVuZGFyKHsgbG9jYWxlOiBcImZyXCIgfSkgLy89PiBcImRlbWFpblwiXG4gICAqIEBleGFtcGxlIERhdGVUaW1lLm5vdygpLm1pbnVzKHsgZGF5czogMiB9KS50b1JlbGF0aXZlQ2FsZW5kYXIoKSAvLz0+IFwiMiBkYXlzIGFnb1wiXG4gICAqL1xuICB0b1JlbGF0aXZlQ2FsZW5kYXIob3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIGRpZmZSZWxhdGl2ZShvcHRpb25zLmJhc2UgfHwgRGF0ZVRpbWUuZnJvbU9iamVjdCh7fSwgeyB6b25lOiB0aGlzLnpvbmUgfSksIHRoaXMsIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBudW1lcmljOiBcImF1dG9cIixcbiAgICAgIHVuaXRzOiBbXCJ5ZWFyc1wiLCBcIm1vbnRoc1wiLCBcImRheXNcIl0sXG4gICAgICBjYWxlbmRhcnk6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBtaW4gb2Ygc2V2ZXJhbCBkYXRlIHRpbWVzXG4gICAqIEBwYXJhbSB7Li4uRGF0ZVRpbWV9IGRhdGVUaW1lcyAtIHRoZSBEYXRlVGltZXMgZnJvbSB3aGljaCB0byBjaG9vc2UgdGhlIG1pbmltdW1cbiAgICogQHJldHVybiB7RGF0ZVRpbWV9IHRoZSBtaW4gRGF0ZVRpbWUsIG9yIHVuZGVmaW5lZCBpZiBjYWxsZWQgd2l0aCBubyBhcmd1bWVudFxuICAgKi9cbiAgc3RhdGljIG1pbiguLi5kYXRlVGltZXMpIHtcbiAgICBpZiAoIWRhdGVUaW1lcy5ldmVyeShEYXRlVGltZS5pc0RhdGVUaW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFwibWluIHJlcXVpcmVzIGFsbCBhcmd1bWVudHMgYmUgRGF0ZVRpbWVzXCIpO1xuICAgIH1cbiAgICByZXR1cm4gYmVzdEJ5KGRhdGVUaW1lcywgKGkpID0+IGkudmFsdWVPZigpLCBNYXRoLm1pbik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBtYXggb2Ygc2V2ZXJhbCBkYXRlIHRpbWVzXG4gICAqIEBwYXJhbSB7Li4uRGF0ZVRpbWV9IGRhdGVUaW1lcyAtIHRoZSBEYXRlVGltZXMgZnJvbSB3aGljaCB0byBjaG9vc2UgdGhlIG1heGltdW1cbiAgICogQHJldHVybiB7RGF0ZVRpbWV9IHRoZSBtYXggRGF0ZVRpbWUsIG9yIHVuZGVmaW5lZCBpZiBjYWxsZWQgd2l0aCBubyBhcmd1bWVudFxuICAgKi9cbiAgc3RhdGljIG1heCguLi5kYXRlVGltZXMpIHtcbiAgICBpZiAoIWRhdGVUaW1lcy5ldmVyeShEYXRlVGltZS5pc0RhdGVUaW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFwibWF4IHJlcXVpcmVzIGFsbCBhcmd1bWVudHMgYmUgRGF0ZVRpbWVzXCIpO1xuICAgIH1cbiAgICByZXR1cm4gYmVzdEJ5KGRhdGVUaW1lcywgKGkpID0+IGkudmFsdWVPZigpLCBNYXRoLm1heCk7XG4gIH1cblxuICAvLyBNSVNDXG5cbiAgLyoqXG4gICAqIEV4cGxhaW4gaG93IGEgc3RyaW5nIHdvdWxkIGJlIHBhcnNlZCBieSBmcm9tRm9ybWF0KClcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSB0aGUgc3RyaW5nIHRvIHBhcnNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmbXQgLSB0aGUgZm9ybWF0IHRoZSBzdHJpbmcgaXMgZXhwZWN0ZWQgdG8gYmUgaW4gKHNlZSBkZXNjcmlwdGlvbilcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBvcHRpb25zIHRha2VuIGJ5IGZyb21Gb3JtYXQoKVxuICAgKiBAcmV0dXJuIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZnJvbUZvcm1hdEV4cGxhaW4odGV4dCwgZm10LCBvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCB7IGxvY2FsZSA9IG51bGwsIG51bWJlcmluZ1N5c3RlbSA9IG51bGwgfSA9IG9wdGlvbnMsXG4gICAgICBsb2NhbGVUb1VzZSA9IExvY2FsZS5mcm9tT3B0cyh7XG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgbnVtYmVyaW5nU3lzdGVtLFxuICAgICAgICBkZWZhdWx0VG9FTjogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIHJldHVybiBleHBsYWluRnJvbVRva2Vucyhsb2NhbGVUb1VzZSwgdGV4dCwgZm10KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgZnJvbUZvcm1hdEV4cGxhaW4gaW5zdGVhZFxuICAgKi9cbiAgc3RhdGljIGZyb21TdHJpbmdFeHBsYWluKHRleHQsIGZtdCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXRFeHBsYWluKHRleHQsIGZtdCwgb3B0aW9ucyk7XG4gIH1cblxuICAvLyBGT1JNQVQgUFJFU0VUU1xuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlIDEwLzE0LzE5ODNcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURV9TSE9SVCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFX1NIT1JUO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdCAxNCwgMTk4MydcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURV9NRUQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURV9NRUQ7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnRnJpLCBPY3QgMTQsIDE5ODMnXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVfTUVEX1dJVEhfV0VFS0RBWSgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFX01FRF9XSVRIX1dFRUtEQVk7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnT2N0b2JlciAxNCwgMTk4MydcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURV9GVUxMKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVfRlVMTDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdUdWVzZGF5LCBPY3RvYmVyIDE0LCAxOTgzJ1xuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFX0hVR0UoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURV9IVUdFO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IFRJTUVfU0lNUExFKCkge1xuICAgIHJldHVybiBGb3JtYXRzLlRJTUVfU0lNUExFO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IFRJTUVfV0lUSF9TRUNPTkRTKCkge1xuICAgIHJldHVybiBGb3JtYXRzLlRJTUVfV0lUSF9TRUNPTkRTO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzA5OjMwOjIzIEFNIEVEVCcuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBUSU1FX1dJVEhfU0hPUlRfT0ZGU0VUKCkge1xuICAgIHJldHVybiBGb3JtYXRzLlRJTUVfV0lUSF9TSE9SVF9PRkZTRVQ7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMgQU0gRWFzdGVybiBEYXlsaWdodCBUaW1lJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IFRJTUVfV0lUSF9MT05HX09GRlNFVCgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5USU1FX1dJVEhfTE9OR19PRkZTRVQ7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzAnLCBhbHdheXMgMjQtaG91ci5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV8yNF9TSU1QTEUoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV8yNF9TSU1QTEU7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMnLCBhbHdheXMgMjQtaG91ci5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV8yNF9XSVRIX1NFQ09ORFMoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV8yNF9XSVRIX1NFQ09ORFM7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIERhdGVUaW1lI3RvTG9jYWxlU3RyaW5nfSBmb3JtYXQgbGlrZSAnMDk6MzA6MjMgRURUJywgYWx3YXlzIDI0LWhvdXIuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IFRJTUVfMjRfV0lUSF9TSE9SVF9PRkZTRVQoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuVElNRV8yNF9XSVRIX1NIT1JUX09GRlNFVDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcwOTozMDoyMyBFYXN0ZXJuIERheWxpZ2h0IFRpbWUnLCBhbHdheXMgMjQtaG91ci5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgVElNRV8yNF9XSVRIX0xPTkdfT0ZGU0VUKCkge1xuICAgIHJldHVybiBGb3JtYXRzLlRJTUVfMjRfV0lUSF9MT05HX09GRlNFVDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICcxMC8xNC8xOTgzLCA5OjMwIEFNJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVUSU1FX1NIT1JUKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX1NIT1JUO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJzEwLzE0LzE5ODMsIDk6MzA6MzMgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfU0hPUlRfV0lUSF9TRUNPTkRTKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX1NIT1JUX1dJVEhfU0VDT05EUztcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3QgMTQsIDE5ODMsIDk6MzAgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfTUVEKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX01FRDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3QgMTQsIDE5ODMsIDk6MzA6MzMgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfTUVEX1dJVEhfU0VDT05EUygpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFVElNRV9NRURfV0lUSF9TRUNPTkRTO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ0ZyaSwgMTQgT2N0IDE5ODMsIDk6MzAgQU0nLiBPbmx5IDEyLWhvdXIgaWYgdGhlIGxvY2FsZSBpcy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHN0YXRpYyBnZXQgREFURVRJTUVfTUVEX1dJVEhfV0VFS0RBWSgpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFVElNRV9NRURfV0lUSF9XRUVLREFZO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBEYXRlVGltZSN0b0xvY2FsZVN0cmluZ30gZm9ybWF0IGxpa2UgJ09jdG9iZXIgMTQsIDE5ODMsIDk6MzAgQU0gRURUJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVUSU1FX0ZVTEwoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfRlVMTDtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdPY3RvYmVyIDE0LCAxOTgzLCA5OjMwOjMzIEFNIEVEVCcuIE9ubHkgMTItaG91ciBpZiB0aGUgbG9jYWxlIGlzLlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgc3RhdGljIGdldCBEQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUygpIHtcbiAgICByZXR1cm4gRm9ybWF0cy5EQVRFVElNRV9GVUxMX1dJVEhfU0VDT05EUztcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdGcmlkYXksIE9jdG9iZXIgMTQsIDE5ODMsIDk6MzAgQU0gRWFzdGVybiBEYXlsaWdodCBUaW1lJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVUSU1FX0hVR0UoKSB7XG4gICAgcmV0dXJuIEZvcm1hdHMuREFURVRJTUVfSFVHRTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgRGF0ZVRpbWUjdG9Mb2NhbGVTdHJpbmd9IGZvcm1hdCBsaWtlICdGcmlkYXksIE9jdG9iZXIgMTQsIDE5ODMsIDk6MzA6MzMgQU0gRWFzdGVybiBEYXlsaWdodCBUaW1lJy4gT25seSAxMi1ob3VyIGlmIHRoZSBsb2NhbGUgaXMuXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBzdGF0aWMgZ2V0IERBVEVUSU1FX0hVR0VfV0lUSF9TRUNPTkRTKCkge1xuICAgIHJldHVybiBGb3JtYXRzLkRBVEVUSU1FX0hVR0VfV0lUSF9TRUNPTkRTO1xuICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyaWVuZGx5RGF0ZVRpbWUoZGF0ZVRpbWVpc2gpIHtcbiAgaWYgKERhdGVUaW1lLmlzRGF0ZVRpbWUoZGF0ZVRpbWVpc2gpKSB7XG4gICAgcmV0dXJuIGRhdGVUaW1laXNoO1xuICB9IGVsc2UgaWYgKGRhdGVUaW1laXNoICYmIGRhdGVUaW1laXNoLnZhbHVlT2YgJiYgaXNOdW1iZXIoZGF0ZVRpbWVpc2gudmFsdWVPZigpKSkge1xuICAgIHJldHVybiBEYXRlVGltZS5mcm9tSlNEYXRlKGRhdGVUaW1laXNoKTtcbiAgfSBlbHNlIGlmIChkYXRlVGltZWlzaCAmJiB0eXBlb2YgZGF0ZVRpbWVpc2ggPT09IFwib2JqZWN0XCIpIHtcbiAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbU9iamVjdChkYXRlVGltZWlzaCk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgYFVua25vd24gZGF0ZXRpbWUgYXJndW1lbnQ6ICR7ZGF0ZVRpbWVpc2h9LCBvZiB0eXBlICR7dHlwZW9mIGRhdGVUaW1laXNofWBcbiAgICApO1xuICB9XG59XG4iLCAiaW1wb3J0IERhdGVUaW1lIGZyb20gXCIuL2RhdGV0aW1lLmpzXCI7XG5pbXBvcnQgRHVyYXRpb24gZnJvbSBcIi4vZHVyYXRpb24uanNcIjtcbmltcG9ydCBJbnRlcnZhbCBmcm9tIFwiLi9pbnRlcnZhbC5qc1wiO1xuaW1wb3J0IEluZm8gZnJvbSBcIi4vaW5mby5qc1wiO1xuaW1wb3J0IFpvbmUgZnJvbSBcIi4vem9uZS5qc1wiO1xuaW1wb3J0IEZpeGVkT2Zmc2V0Wm9uZSBmcm9tIFwiLi96b25lcy9maXhlZE9mZnNldFpvbmUuanNcIjtcbmltcG9ydCBJQU5BWm9uZSBmcm9tIFwiLi96b25lcy9JQU5BWm9uZS5qc1wiO1xuaW1wb3J0IEludmFsaWRab25lIGZyb20gXCIuL3pvbmVzL2ludmFsaWRab25lLmpzXCI7XG5pbXBvcnQgU3lzdGVtWm9uZSBmcm9tIFwiLi96b25lcy9zeXN0ZW1ab25lLmpzXCI7XG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3MuanNcIjtcblxuY29uc3QgVkVSU0lPTiA9IFwiMi4zLjBcIjtcblxuZXhwb3J0IHtcbiAgVkVSU0lPTixcbiAgRGF0ZVRpbWUsXG4gIER1cmF0aW9uLFxuICBJbnRlcnZhbCxcbiAgSW5mbyxcbiAgWm9uZSxcbiAgRml4ZWRPZmZzZXRab25lLFxuICBJQU5BWm9uZSxcbiAgSW52YWxpZFpvbmUsXG4gIFN5c3RlbVpvbmUsXG4gIFNldHRpbmdzLFxufTtcbiIsICIvKipcbiAqIEBsaWNlbnNlXG4gKiBMb2Rhc2ggPGh0dHBzOi8vbG9kYXNoLmNvbS8+XG4gKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyA8aHR0cHM6Ly9vcGVuanNmLm9yZy8+XG4gKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+XG4gKiBCYXNlZCBvbiBVbmRlcnNjb3JlLmpzIDEuOC4zIDxodHRwOi8vdW5kZXJzY29yZWpzLm9yZy9MSUNFTlNFPlxuICogQ29weXJpZ2h0IEplcmVteSBBc2hrZW5hcywgRG9jdW1lbnRDbG91ZCBhbmQgSW52ZXN0aWdhdGl2ZSBSZXBvcnRlcnMgJiBFZGl0b3JzXG4gKi9cbjsoZnVuY3Rpb24oKSB7XG5cbiAgLyoqIFVzZWQgYXMgYSBzYWZlIHJlZmVyZW5jZSBmb3IgYHVuZGVmaW5lZGAgaW4gcHJlLUVTNSBlbnZpcm9ubWVudHMuICovXG4gIHZhciB1bmRlZmluZWQ7XG5cbiAgLyoqIFVzZWQgYXMgdGhlIHNlbWFudGljIHZlcnNpb24gbnVtYmVyLiAqL1xuICB2YXIgVkVSU0lPTiA9ICc0LjE3LjIxJztcblxuICAvKiogVXNlZCBhcyB0aGUgc2l6ZSB0byBlbmFibGUgbGFyZ2UgYXJyYXkgb3B0aW1pemF0aW9ucy4gKi9cbiAgdmFyIExBUkdFX0FSUkFZX1NJWkUgPSAyMDA7XG5cbiAgLyoqIEVycm9yIG1lc3NhZ2UgY29uc3RhbnRzLiAqL1xuICB2YXIgQ09SRV9FUlJPUl9URVhUID0gJ1Vuc3VwcG9ydGVkIGNvcmUtanMgdXNlLiBUcnkgaHR0cHM6Ly9ucG1zLmlvL3NlYXJjaD9xPXBvbnlmaWxsLicsXG4gICAgICBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbicsXG4gICAgICBJTlZBTElEX1RFTVBMX1ZBUl9FUlJPUl9URVhUID0gJ0ludmFsaWQgYHZhcmlhYmxlYCBvcHRpb24gcGFzc2VkIGludG8gYF8udGVtcGxhdGVgJztcblxuICAvKiogVXNlZCB0byBzdGFuZC1pbiBmb3IgYHVuZGVmaW5lZGAgaGFzaCB2YWx1ZXMuICovXG4gIHZhciBIQVNIX1VOREVGSU5FRCA9ICdfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fJztcblxuICAvKiogVXNlZCBhcyB0aGUgbWF4aW11bSBtZW1vaXplIGNhY2hlIHNpemUuICovXG4gIHZhciBNQVhfTUVNT0laRV9TSVpFID0gNTAwO1xuXG4gIC8qKiBVc2VkIGFzIHRoZSBpbnRlcm5hbCBhcmd1bWVudCBwbGFjZWhvbGRlci4gKi9cbiAgdmFyIFBMQUNFSE9MREVSID0gJ19fbG9kYXNoX3BsYWNlaG9sZGVyX18nO1xuXG4gIC8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIGNsb25pbmcuICovXG4gIHZhciBDTE9ORV9ERUVQX0ZMQUcgPSAxLFxuICAgICAgQ0xPTkVfRkxBVF9GTEFHID0gMixcbiAgICAgIENMT05FX1NZTUJPTFNfRkxBRyA9IDQ7XG5cbiAgLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgdmFsdWUgY29tcGFyaXNvbnMuICovXG4gIHZhciBDT01QQVJFX1BBUlRJQUxfRkxBRyA9IDEsXG4gICAgICBDT01QQVJFX1VOT1JERVJFRF9GTEFHID0gMjtcblxuICAvKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciBmdW5jdGlvbiBtZXRhZGF0YS4gKi9cbiAgdmFyIFdSQVBfQklORF9GTEFHID0gMSxcbiAgICAgIFdSQVBfQklORF9LRVlfRkxBRyA9IDIsXG4gICAgICBXUkFQX0NVUlJZX0JPVU5EX0ZMQUcgPSA0LFxuICAgICAgV1JBUF9DVVJSWV9GTEFHID0gOCxcbiAgICAgIFdSQVBfQ1VSUllfUklHSFRfRkxBRyA9IDE2LFxuICAgICAgV1JBUF9QQVJUSUFMX0ZMQUcgPSAzMixcbiAgICAgIFdSQVBfUEFSVElBTF9SSUdIVF9GTEFHID0gNjQsXG4gICAgICBXUkFQX0FSWV9GTEFHID0gMTI4LFxuICAgICAgV1JBUF9SRUFSR19GTEFHID0gMjU2LFxuICAgICAgV1JBUF9GTElQX0ZMQUcgPSA1MTI7XG5cbiAgLyoqIFVzZWQgYXMgZGVmYXVsdCBvcHRpb25zIGZvciBgXy50cnVuY2F0ZWAuICovXG4gIHZhciBERUZBVUxUX1RSVU5DX0xFTkdUSCA9IDMwLFxuICAgICAgREVGQVVMVF9UUlVOQ19PTUlTU0lPTiA9ICcuLi4nO1xuXG4gIC8qKiBVc2VkIHRvIGRldGVjdCBob3QgZnVuY3Rpb25zIGJ5IG51bWJlciBvZiBjYWxscyB3aXRoaW4gYSBzcGFuIG9mIG1pbGxpc2Vjb25kcy4gKi9cbiAgdmFyIEhPVF9DT1VOVCA9IDgwMCxcbiAgICAgIEhPVF9TUEFOID0gMTY7XG5cbiAgLyoqIFVzZWQgdG8gaW5kaWNhdGUgdGhlIHR5cGUgb2YgbGF6eSBpdGVyYXRlZXMuICovXG4gIHZhciBMQVpZX0ZJTFRFUl9GTEFHID0gMSxcbiAgICAgIExBWllfTUFQX0ZMQUcgPSAyLFxuICAgICAgTEFaWV9XSElMRV9GTEFHID0gMztcblxuICAvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbiAgdmFyIElORklOSVRZID0gMSAvIDAsXG4gICAgICBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MSxcbiAgICAgIE1BWF9JTlRFR0VSID0gMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDgsXG4gICAgICBOQU4gPSAwIC8gMDtcblxuICAvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB0aGUgbWF4aW11bSBsZW5ndGggYW5kIGluZGV4IG9mIGFuIGFycmF5LiAqL1xuICB2YXIgTUFYX0FSUkFZX0xFTkdUSCA9IDQyOTQ5NjcyOTUsXG4gICAgICBNQVhfQVJSQVlfSU5ERVggPSBNQVhfQVJSQVlfTEVOR1RIIC0gMSxcbiAgICAgIEhBTEZfTUFYX0FSUkFZX0xFTkdUSCA9IE1BWF9BUlJBWV9MRU5HVEggPj4+IDE7XG5cbiAgLyoqIFVzZWQgdG8gYXNzb2NpYXRlIHdyYXAgbWV0aG9kcyB3aXRoIHRoZWlyIGJpdCBmbGFncy4gKi9cbiAgdmFyIHdyYXBGbGFncyA9IFtcbiAgICBbJ2FyeScsIFdSQVBfQVJZX0ZMQUddLFxuICAgIFsnYmluZCcsIFdSQVBfQklORF9GTEFHXSxcbiAgICBbJ2JpbmRLZXknLCBXUkFQX0JJTkRfS0VZX0ZMQUddLFxuICAgIFsnY3VycnknLCBXUkFQX0NVUlJZX0ZMQUddLFxuICAgIFsnY3VycnlSaWdodCcsIFdSQVBfQ1VSUllfUklHSFRfRkxBR10sXG4gICAgWydmbGlwJywgV1JBUF9GTElQX0ZMQUddLFxuICAgIFsncGFydGlhbCcsIFdSQVBfUEFSVElBTF9GTEFHXSxcbiAgICBbJ3BhcnRpYWxSaWdodCcsIFdSQVBfUEFSVElBTF9SSUdIVF9GTEFHXSxcbiAgICBbJ3JlYXJnJywgV1JBUF9SRUFSR19GTEFHXVxuICBdO1xuXG4gIC8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbiAgdmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJyxcbiAgICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICAgIGFzeW5jVGFnID0gJ1tvYmplY3QgQXN5bmNGdW5jdGlvbl0nLFxuICAgICAgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcbiAgICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgICBkb21FeGNUYWcgPSAnW29iamVjdCBET01FeGNlcHRpb25dJyxcbiAgICAgIGVycm9yVGFnID0gJ1tvYmplY3QgRXJyb3JdJyxcbiAgICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgICAgZ2VuVGFnID0gJ1tvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dJyxcbiAgICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgICBudWxsVGFnID0gJ1tvYmplY3QgTnVsbF0nLFxuICAgICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXG4gICAgICBwcm9taXNlVGFnID0gJ1tvYmplY3QgUHJvbWlzZV0nLFxuICAgICAgcHJveHlUYWcgPSAnW29iamVjdCBQcm94eV0nLFxuICAgICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgICBzZXRUYWcgPSAnW29iamVjdCBTZXRdJyxcbiAgICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgICAgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXScsXG4gICAgICB1bmRlZmluZWRUYWcgPSAnW29iamVjdCBVbmRlZmluZWRdJyxcbiAgICAgIHdlYWtNYXBUYWcgPSAnW29iamVjdCBXZWFrTWFwXScsXG4gICAgICB3ZWFrU2V0VGFnID0gJ1tvYmplY3QgV2Vha1NldF0nO1xuXG4gIHZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgICBkYXRhVmlld1RhZyA9ICdbb2JqZWN0IERhdGFWaWV3XScsXG4gICAgICBmbG9hdDMyVGFnID0gJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgICBmbG9hdDY0VGFnID0gJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScsXG4gICAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgICBpbnQxNlRhZyA9ICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICAgIGludDMyVGFnID0gJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgICB1aW50OENsYW1wZWRUYWcgPSAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgICAgdWludDE2VGFnID0gJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggZW1wdHkgc3RyaW5nIGxpdGVyYWxzIGluIGNvbXBpbGVkIHRlbXBsYXRlIHNvdXJjZS4gKi9cbiAgdmFyIHJlRW1wdHlTdHJpbmdMZWFkaW5nID0gL1xcYl9fcCBcXCs9ICcnOy9nLFxuICAgICAgcmVFbXB0eVN0cmluZ01pZGRsZSA9IC9cXGIoX19wIFxcKz0pICcnIFxcKy9nLFxuICAgICAgcmVFbXB0eVN0cmluZ1RyYWlsaW5nID0gLyhfX2VcXCguKj9cXCl8XFxiX190XFwpKSBcXCtcXG4nJzsvZztcblxuICAvKiogVXNlZCB0byBtYXRjaCBIVE1MIGVudGl0aWVzIGFuZCBIVE1MIGNoYXJhY3RlcnMuICovXG4gIHZhciByZUVzY2FwZWRIdG1sID0gLyYoPzphbXB8bHR8Z3R8cXVvdHwjMzkpOy9nLFxuICAgICAgcmVVbmVzY2FwZWRIdG1sID0gL1smPD5cIiddL2csXG4gICAgICByZUhhc0VzY2FwZWRIdG1sID0gUmVnRXhwKHJlRXNjYXBlZEh0bWwuc291cmNlKSxcbiAgICAgIHJlSGFzVW5lc2NhcGVkSHRtbCA9IFJlZ0V4cChyZVVuZXNjYXBlZEh0bWwuc291cmNlKTtcblxuICAvKiogVXNlZCB0byBtYXRjaCB0ZW1wbGF0ZSBkZWxpbWl0ZXJzLiAqL1xuICB2YXIgcmVFc2NhcGUgPSAvPCUtKFtcXHNcXFNdKz8pJT4vZyxcbiAgICAgIHJlRXZhbHVhdGUgPSAvPCUoW1xcc1xcU10rPyklPi9nLFxuICAgICAgcmVJbnRlcnBvbGF0ZSA9IC88JT0oW1xcc1xcU10rPyklPi9nO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIHByb3BlcnR5IG5hbWVzIHdpdGhpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbiAgdmFyIHJlSXNEZWVwUHJvcCA9IC9cXC58XFxbKD86W15bXFxdXSp8KFtcIiddKSg/Oig/IVxcMSlbXlxcXFxdfFxcXFwuKSo/XFwxKVxcXS8sXG4gICAgICByZUlzUGxhaW5Qcm9wID0gL15cXHcqJC8sXG4gICAgICByZVByb3BOYW1lID0gL1teLltcXF1dK3xcXFsoPzooLT9cXGQrKD86XFwuXFxkKyk/KXwoW1wiJ10pKCg/Oig/IVxcMilbXlxcXFxdfFxcXFwuKSo/KVxcMilcXF18KD89KD86XFwufFxcW1xcXSkoPzpcXC58XFxbXFxdfCQpKS9nO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgXG4gICAqIFtzeW50YXggY2hhcmFjdGVyc10oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtcGF0dGVybnMpLlxuICAgKi9cbiAgdmFyIHJlUmVnRXhwQ2hhciA9IC9bXFxcXF4kLiorPygpW1xcXXt9fF0vZyxcbiAgICAgIHJlSGFzUmVnRXhwQ2hhciA9IFJlZ0V4cChyZVJlZ0V4cENoYXIuc291cmNlKTtcblxuICAvKiogVXNlZCB0byBtYXRjaCBsZWFkaW5nIHdoaXRlc3BhY2UuICovXG4gIHZhciByZVRyaW1TdGFydCA9IC9eXFxzKy87XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggYSBzaW5nbGUgd2hpdGVzcGFjZSBjaGFyYWN0ZXIuICovXG4gIHZhciByZVdoaXRlc3BhY2UgPSAvXFxzLztcblxuICAvKiogVXNlZCB0byBtYXRjaCB3cmFwIGRldGFpbCBjb21tZW50cy4gKi9cbiAgdmFyIHJlV3JhcENvbW1lbnQgPSAvXFx7KD86XFxuXFwvXFwqIFxcW3dyYXBwZWQgd2l0aCAuK1xcXSBcXCpcXC8pP1xcbj8vLFxuICAgICAgcmVXcmFwRGV0YWlscyA9IC9cXHtcXG5cXC9cXCogXFxbd3JhcHBlZCB3aXRoICguKylcXF0gXFwqLyxcbiAgICAgIHJlU3BsaXREZXRhaWxzID0gLyw/ICYgLztcblxuICAvKiogVXNlZCB0byBtYXRjaCB3b3JkcyBjb21wb3NlZCBvZiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy4gKi9cbiAgdmFyIHJlQXNjaWlXb3JkID0gL1teXFx4MDAtXFx4MmZcXHgzYS1cXHg0MFxceDViLVxceDYwXFx4N2ItXFx4N2ZdKy9nO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIHZhbGlkYXRlIHRoZSBgdmFsaWRhdGVgIG9wdGlvbiBpbiBgXy50ZW1wbGF0ZWAgdmFyaWFibGUuXG4gICAqXG4gICAqIEZvcmJpZHMgY2hhcmFjdGVycyB3aGljaCBjb3VsZCBwb3RlbnRpYWxseSBjaGFuZ2UgdGhlIG1lYW5pbmcgb2YgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50IGRlZmluaXRpb246XG4gICAqIC0gXCIoKSxcIiAobW9kaWZpY2F0aW9uIG9mIGZ1bmN0aW9uIHBhcmFtZXRlcnMpXG4gICAqIC0gXCI9XCIgKGRlZmF1bHQgdmFsdWUpXG4gICAqIC0gXCJbXXt9XCIgKGRlc3RydWN0dXJpbmcgb2YgZnVuY3Rpb24gcGFyYW1ldGVycylcbiAgICogLSBcIi9cIiAoYmVnaW5uaW5nIG9mIGEgY29tbWVudClcbiAgICogLSB3aGl0ZXNwYWNlXG4gICAqL1xuICB2YXIgcmVGb3JiaWRkZW5JZGVudGlmaWVyQ2hhcnMgPSAvWygpPSx7fVxcW1xcXVxcL1xcc10vO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGJhY2tzbGFzaGVzIGluIHByb3BlcnR5IHBhdGhzLiAqL1xuICB2YXIgcmVFc2NhcGVDaGFyID0gL1xcXFwoXFxcXCk/L2c7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gbWF0Y2hcbiAgICogW0VTIHRlbXBsYXRlIGRlbGltaXRlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRlbXBsYXRlLWxpdGVyYWwtbGV4aWNhbC1jb21wb25lbnRzKS5cbiAgICovXG4gIHZhciByZUVzVGVtcGxhdGUgPSAvXFwkXFx7KFteXFxcXH1dKig/OlxcXFwuW15cXFxcfV0qKSopXFx9L2c7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggYFJlZ0V4cGAgZmxhZ3MgZnJvbSB0aGVpciBjb2VyY2VkIHN0cmluZyB2YWx1ZXMuICovXG4gIHZhciByZUZsYWdzID0gL1xcdyokLztcblxuICAvKiogVXNlZCB0byBkZXRlY3QgYmFkIHNpZ25lZCBoZXhhZGVjaW1hbCBzdHJpbmcgdmFsdWVzLiAqL1xuICB2YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xuXG4gIC8qKiBVc2VkIHRvIGRldGVjdCBiaW5hcnkgc3RyaW5nIHZhbHVlcy4gKi9cbiAgdmFyIHJlSXNCaW5hcnkgPSAvXjBiWzAxXSskL2k7XG5cbiAgLyoqIFVzZWQgdG8gZGV0ZWN0IGhvc3QgY29uc3RydWN0b3JzIChTYWZhcmkpLiAqL1xuICB2YXIgcmVJc0hvc3RDdG9yID0gL15cXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXF0kLztcblxuICAvKiogVXNlZCB0byBkZXRlY3Qgb2N0YWwgc3RyaW5nIHZhbHVlcy4gKi9cbiAgdmFyIHJlSXNPY3RhbCA9IC9eMG9bMC03XSskL2k7XG5cbiAgLyoqIFVzZWQgdG8gZGV0ZWN0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzLiAqL1xuICB2YXIgcmVJc1VpbnQgPSAvXig/OjB8WzEtOV1cXGQqKSQvO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIExhdGluIFVuaWNvZGUgbGV0dGVycyAoZXhjbHVkaW5nIG1hdGhlbWF0aWNhbCBvcGVyYXRvcnMpLiAqL1xuICB2YXIgcmVMYXRpbiA9IC9bXFx4YzAtXFx4ZDZcXHhkOC1cXHhmNlxceGY4LVxceGZmXFx1MDEwMC1cXHUwMTdmXS9nO1xuXG4gIC8qKiBVc2VkIHRvIGVuc3VyZSBjYXB0dXJpbmcgb3JkZXIgb2YgdGVtcGxhdGUgZGVsaW1pdGVycy4gKi9cbiAgdmFyIHJlTm9NYXRjaCA9IC8oJF4pLztcblxuICAvKiogVXNlZCB0byBtYXRjaCB1bmVzY2FwZWQgY2hhcmFjdGVycyBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuICovXG4gIHZhciByZVVuZXNjYXBlZFN0cmluZyA9IC9bJ1xcblxcclxcdTIwMjhcXHUyMDI5XFxcXF0vZztcblxuICAvKiogVXNlZCB0byBjb21wb3NlIHVuaWNvZGUgY2hhcmFjdGVyIGNsYXNzZXMuICovXG4gIHZhciByc0FzdHJhbFJhbmdlID0gJ1xcXFx1ZDgwMC1cXFxcdWRmZmYnLFxuICAgICAgcnNDb21ib01hcmtzUmFuZ2UgPSAnXFxcXHUwMzAwLVxcXFx1MDM2ZicsXG4gICAgICByZUNvbWJvSGFsZk1hcmtzUmFuZ2UgPSAnXFxcXHVmZTIwLVxcXFx1ZmUyZicsXG4gICAgICByc0NvbWJvU3ltYm9sc1JhbmdlID0gJ1xcXFx1MjBkMC1cXFxcdTIwZmYnLFxuICAgICAgcnNDb21ib1JhbmdlID0gcnNDb21ib01hcmtzUmFuZ2UgKyByZUNvbWJvSGFsZk1hcmtzUmFuZ2UgKyByc0NvbWJvU3ltYm9sc1JhbmdlLFxuICAgICAgcnNEaW5nYmF0UmFuZ2UgPSAnXFxcXHUyNzAwLVxcXFx1MjdiZicsXG4gICAgICByc0xvd2VyUmFuZ2UgPSAnYS16XFxcXHhkZi1cXFxceGY2XFxcXHhmOC1cXFxceGZmJyxcbiAgICAgIHJzTWF0aE9wUmFuZ2UgPSAnXFxcXHhhY1xcXFx4YjFcXFxceGQ3XFxcXHhmNycsXG4gICAgICByc05vbkNoYXJSYW5nZSA9ICdcXFxceDAwLVxcXFx4MmZcXFxceDNhLVxcXFx4NDBcXFxceDViLVxcXFx4NjBcXFxceDdiLVxcXFx4YmYnLFxuICAgICAgcnNQdW5jdHVhdGlvblJhbmdlID0gJ1xcXFx1MjAwMC1cXFxcdTIwNmYnLFxuICAgICAgcnNTcGFjZVJhbmdlID0gJyBcXFxcdFxcXFx4MGJcXFxcZlxcXFx4YTBcXFxcdWZlZmZcXFxcblxcXFxyXFxcXHUyMDI4XFxcXHUyMDI5XFxcXHUxNjgwXFxcXHUxODBlXFxcXHUyMDAwXFxcXHUyMDAxXFxcXHUyMDAyXFxcXHUyMDAzXFxcXHUyMDA0XFxcXHUyMDA1XFxcXHUyMDA2XFxcXHUyMDA3XFxcXHUyMDA4XFxcXHUyMDA5XFxcXHUyMDBhXFxcXHUyMDJmXFxcXHUyMDVmXFxcXHUzMDAwJyxcbiAgICAgIHJzVXBwZXJSYW5nZSA9ICdBLVpcXFxceGMwLVxcXFx4ZDZcXFxceGQ4LVxcXFx4ZGUnLFxuICAgICAgcnNWYXJSYW5nZSA9ICdcXFxcdWZlMGVcXFxcdWZlMGYnLFxuICAgICAgcnNCcmVha1JhbmdlID0gcnNNYXRoT3BSYW5nZSArIHJzTm9uQ2hhclJhbmdlICsgcnNQdW5jdHVhdGlvblJhbmdlICsgcnNTcGFjZVJhbmdlO1xuXG4gIC8qKiBVc2VkIHRvIGNvbXBvc2UgdW5pY29kZSBjYXB0dXJlIGdyb3Vwcy4gKi9cbiAgdmFyIHJzQXBvcyA9IFwiWydcXHUyMDE5XVwiLFxuICAgICAgcnNBc3RyYWwgPSAnWycgKyByc0FzdHJhbFJhbmdlICsgJ10nLFxuICAgICAgcnNCcmVhayA9ICdbJyArIHJzQnJlYWtSYW5nZSArICddJyxcbiAgICAgIHJzQ29tYm8gPSAnWycgKyByc0NvbWJvUmFuZ2UgKyAnXScsXG4gICAgICByc0RpZ2l0cyA9ICdcXFxcZCsnLFxuICAgICAgcnNEaW5nYmF0ID0gJ1snICsgcnNEaW5nYmF0UmFuZ2UgKyAnXScsXG4gICAgICByc0xvd2VyID0gJ1snICsgcnNMb3dlclJhbmdlICsgJ10nLFxuICAgICAgcnNNaXNjID0gJ1teJyArIHJzQXN0cmFsUmFuZ2UgKyByc0JyZWFrUmFuZ2UgKyByc0RpZ2l0cyArIHJzRGluZ2JhdFJhbmdlICsgcnNMb3dlclJhbmdlICsgcnNVcHBlclJhbmdlICsgJ10nLFxuICAgICAgcnNGaXR6ID0gJ1xcXFx1ZDgzY1tcXFxcdWRmZmItXFxcXHVkZmZmXScsXG4gICAgICByc01vZGlmaWVyID0gJyg/OicgKyByc0NvbWJvICsgJ3wnICsgcnNGaXR6ICsgJyknLFxuICAgICAgcnNOb25Bc3RyYWwgPSAnW14nICsgcnNBc3RyYWxSYW5nZSArICddJyxcbiAgICAgIHJzUmVnaW9uYWwgPSAnKD86XFxcXHVkODNjW1xcXFx1ZGRlNi1cXFxcdWRkZmZdKXsyfScsXG4gICAgICByc1N1cnJQYWlyID0gJ1tcXFxcdWQ4MDAtXFxcXHVkYmZmXVtcXFxcdWRjMDAtXFxcXHVkZmZmXScsXG4gICAgICByc1VwcGVyID0gJ1snICsgcnNVcHBlclJhbmdlICsgJ10nLFxuICAgICAgcnNaV0ogPSAnXFxcXHUyMDBkJztcblxuICAvKiogVXNlZCB0byBjb21wb3NlIHVuaWNvZGUgcmVnZXhlcy4gKi9cbiAgdmFyIHJzTWlzY0xvd2VyID0gJyg/OicgKyByc0xvd2VyICsgJ3wnICsgcnNNaXNjICsgJyknLFxuICAgICAgcnNNaXNjVXBwZXIgPSAnKD86JyArIHJzVXBwZXIgKyAnfCcgKyByc01pc2MgKyAnKScsXG4gICAgICByc09wdENvbnRyTG93ZXIgPSAnKD86JyArIHJzQXBvcyArICcoPzpkfGxsfG18cmV8c3x0fHZlKSk/JyxcbiAgICAgIHJzT3B0Q29udHJVcHBlciA9ICcoPzonICsgcnNBcG9zICsgJyg/OkR8TEx8TXxSRXxTfFR8VkUpKT8nLFxuICAgICAgcmVPcHRNb2QgPSByc01vZGlmaWVyICsgJz8nLFxuICAgICAgcnNPcHRWYXIgPSAnWycgKyByc1ZhclJhbmdlICsgJ10/JyxcbiAgICAgIHJzT3B0Sm9pbiA9ICcoPzonICsgcnNaV0ogKyAnKD86JyArIFtyc05vbkFzdHJhbCwgcnNSZWdpb25hbCwgcnNTdXJyUGFpcl0uam9pbignfCcpICsgJyknICsgcnNPcHRWYXIgKyByZU9wdE1vZCArICcpKicsXG4gICAgICByc09yZExvd2VyID0gJ1xcXFxkKig/OjFzdHwybmR8M3JkfCg/IVsxMjNdKVxcXFxkdGgpKD89XFxcXGJ8W0EtWl9dKScsXG4gICAgICByc09yZFVwcGVyID0gJ1xcXFxkKig/OjFTVHwyTkR8M1JEfCg/IVsxMjNdKVxcXFxkVEgpKD89XFxcXGJ8W2Etel9dKScsXG4gICAgICByc1NlcSA9IHJzT3B0VmFyICsgcmVPcHRNb2QgKyByc09wdEpvaW4sXG4gICAgICByc0Vtb2ppID0gJyg/OicgKyBbcnNEaW5nYmF0LCByc1JlZ2lvbmFsLCByc1N1cnJQYWlyXS5qb2luKCd8JykgKyAnKScgKyByc1NlcSxcbiAgICAgIHJzU3ltYm9sID0gJyg/OicgKyBbcnNOb25Bc3RyYWwgKyByc0NvbWJvICsgJz8nLCByc0NvbWJvLCByc1JlZ2lvbmFsLCByc1N1cnJQYWlyLCByc0FzdHJhbF0uam9pbignfCcpICsgJyknO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGFwb3N0cm9waGVzLiAqL1xuICB2YXIgcmVBcG9zID0gUmVnRXhwKHJzQXBvcywgJ2cnKTtcblxuICAvKipcbiAgICogVXNlZCB0byBtYXRjaCBbY29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db21iaW5pbmdfRGlhY3JpdGljYWxfTWFya3MpIGFuZFxuICAgKiBbY29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzIGZvciBzeW1ib2xzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db21iaW5pbmdfRGlhY3JpdGljYWxfTWFya3NfZm9yX1N5bWJvbHMpLlxuICAgKi9cbiAgdmFyIHJlQ29tYm9NYXJrID0gUmVnRXhwKHJzQ29tYm8sICdnJyk7XG5cbiAgLyoqIFVzZWQgdG8gbWF0Y2ggW3N0cmluZyBzeW1ib2xzXShodHRwczovL21hdGhpYXNieW5lbnMuYmUvbm90ZXMvamF2YXNjcmlwdC11bmljb2RlKS4gKi9cbiAgdmFyIHJlVW5pY29kZSA9IFJlZ0V4cChyc0ZpdHogKyAnKD89JyArIHJzRml0eiArICcpfCcgKyByc1N5bWJvbCArIHJzU2VxLCAnZycpO1xuXG4gIC8qKiBVc2VkIHRvIG1hdGNoIGNvbXBsZXggb3IgY29tcG91bmQgd29yZHMuICovXG4gIHZhciByZVVuaWNvZGVXb3JkID0gUmVnRXhwKFtcbiAgICByc1VwcGVyICsgJz8nICsgcnNMb3dlciArICcrJyArIHJzT3B0Q29udHJMb3dlciArICcoPz0nICsgW3JzQnJlYWssIHJzVXBwZXIsICckJ10uam9pbignfCcpICsgJyknLFxuICAgIHJzTWlzY1VwcGVyICsgJysnICsgcnNPcHRDb250clVwcGVyICsgJyg/PScgKyBbcnNCcmVhaywgcnNVcHBlciArIHJzTWlzY0xvd2VyLCAnJCddLmpvaW4oJ3wnKSArICcpJyxcbiAgICByc1VwcGVyICsgJz8nICsgcnNNaXNjTG93ZXIgKyAnKycgKyByc09wdENvbnRyTG93ZXIsXG4gICAgcnNVcHBlciArICcrJyArIHJzT3B0Q29udHJVcHBlcixcbiAgICByc09yZFVwcGVyLFxuICAgIHJzT3JkTG93ZXIsXG4gICAgcnNEaWdpdHMsXG4gICAgcnNFbW9qaVxuICBdLmpvaW4oJ3wnKSwgJ2cnKTtcblxuICAvKiogVXNlZCB0byBkZXRlY3Qgc3RyaW5ncyB3aXRoIFt6ZXJvLXdpZHRoIGpvaW5lcnMgb3IgY29kZSBwb2ludHMgZnJvbSB0aGUgYXN0cmFsIHBsYW5lc10oaHR0cDovL2Vldi5lZS9ibG9nLzIwMTUvMDkvMTIvZGFyay1jb3JuZXJzLW9mLXVuaWNvZGUvKS4gKi9cbiAgdmFyIHJlSGFzVW5pY29kZSA9IFJlZ0V4cCgnWycgKyByc1pXSiArIHJzQXN0cmFsUmFuZ2UgICsgcnNDb21ib1JhbmdlICsgcnNWYXJSYW5nZSArICddJyk7XG5cbiAgLyoqIFVzZWQgdG8gZGV0ZWN0IHN0cmluZ3MgdGhhdCBuZWVkIGEgbW9yZSByb2J1c3QgcmVnZXhwIHRvIG1hdGNoIHdvcmRzLiAqL1xuICB2YXIgcmVIYXNVbmljb2RlV29yZCA9IC9bYS16XVtBLVpdfFtBLVpdezJ9W2Etel18WzAtOV1bYS16QS1aXXxbYS16QS1aXVswLTldfFteYS16QS1aMC05IF0vO1xuXG4gIC8qKiBVc2VkIHRvIGFzc2lnbiBkZWZhdWx0IGBjb250ZXh0YCBvYmplY3QgcHJvcGVydGllcy4gKi9cbiAgdmFyIGNvbnRleHRQcm9wcyA9IFtcbiAgICAnQXJyYXknLCAnQnVmZmVyJywgJ0RhdGFWaWV3JywgJ0RhdGUnLCAnRXJyb3InLCAnRmxvYXQzMkFycmF5JywgJ0Zsb2F0NjRBcnJheScsXG4gICAgJ0Z1bmN0aW9uJywgJ0ludDhBcnJheScsICdJbnQxNkFycmF5JywgJ0ludDMyQXJyYXknLCAnTWFwJywgJ01hdGgnLCAnT2JqZWN0JyxcbiAgICAnUHJvbWlzZScsICdSZWdFeHAnLCAnU2V0JywgJ1N0cmluZycsICdTeW1ib2wnLCAnVHlwZUVycm9yJywgJ1VpbnQ4QXJyYXknLFxuICAgICdVaW50OENsYW1wZWRBcnJheScsICdVaW50MTZBcnJheScsICdVaW50MzJBcnJheScsICdXZWFrTWFwJyxcbiAgICAnXycsICdjbGVhclRpbWVvdXQnLCAnaXNGaW5pdGUnLCAncGFyc2VJbnQnLCAnc2V0VGltZW91dCdcbiAgXTtcblxuICAvKiogVXNlZCB0byBtYWtlIHRlbXBsYXRlIHNvdXJjZVVSTHMgZWFzaWVyIHRvIGlkZW50aWZ5LiAqL1xuICB2YXIgdGVtcGxhdGVDb3VudGVyID0gLTE7XG5cbiAgLyoqIFVzZWQgdG8gaWRlbnRpZnkgYHRvU3RyaW5nVGFnYCB2YWx1ZXMgb2YgdHlwZWQgYXJyYXlzLiAqL1xuICB2YXIgdHlwZWRBcnJheVRhZ3MgPSB7fTtcbiAgdHlwZWRBcnJheVRhZ3NbZmxvYXQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1tmbG9hdDY0VGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW2ludDhUYWddID0gdHlwZWRBcnJheVRhZ3NbaW50MTZUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbaW50MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDhUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQxNlRhZ10gPVxuICB0eXBlZEFycmF5VGFnc1t1aW50MzJUYWddID0gdHJ1ZTtcbiAgdHlwZWRBcnJheVRhZ3NbYXJnc1RhZ10gPSB0eXBlZEFycmF5VGFnc1thcnJheVRhZ10gPVxuICB0eXBlZEFycmF5VGFnc1thcnJheUJ1ZmZlclRhZ10gPSB0eXBlZEFycmF5VGFnc1tib29sVGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW2RhdGFWaWV3VGFnXSA9IHR5cGVkQXJyYXlUYWdzW2RhdGVUYWddID1cbiAgdHlwZWRBcnJheVRhZ3NbZXJyb3JUYWddID0gdHlwZWRBcnJheVRhZ3NbZnVuY1RhZ10gPVxuICB0eXBlZEFycmF5VGFnc1ttYXBUYWddID0gdHlwZWRBcnJheVRhZ3NbbnVtYmVyVGFnXSA9XG4gIHR5cGVkQXJyYXlUYWdzW29iamVjdFRhZ10gPSB0eXBlZEFycmF5VGFnc1tyZWdleHBUYWddID1cbiAgdHlwZWRBcnJheVRhZ3Nbc2V0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3N0cmluZ1RhZ10gPVxuICB0eXBlZEFycmF5VGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xuXG4gIC8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIHN1cHBvcnRlZCBieSBgXy5jbG9uZWAuICovXG4gIHZhciBjbG9uZWFibGVUYWdzID0ge307XG4gIGNsb25lYWJsZVRhZ3NbYXJnc1RhZ10gPSBjbG9uZWFibGVUYWdzW2FycmF5VGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gY2xvbmVhYmxlVGFnc1tkYXRhVmlld1RhZ10gPVxuICBjbG9uZWFibGVUYWdzW2Jvb2xUYWddID0gY2xvbmVhYmxlVGFnc1tkYXRlVGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbZmxvYXQzMlRhZ10gPSBjbG9uZWFibGVUYWdzW2Zsb2F0NjRUYWddID1cbiAgY2xvbmVhYmxlVGFnc1tpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbaW50MTZUYWddID1cbiAgY2xvbmVhYmxlVGFnc1tpbnQzMlRhZ10gPSBjbG9uZWFibGVUYWdzW21hcFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW251bWJlclRhZ10gPSBjbG9uZWFibGVUYWdzW29iamVjdFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW3JlZ2V4cFRhZ10gPSBjbG9uZWFibGVUYWdzW3NldFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW3N0cmluZ1RhZ10gPSBjbG9uZWFibGVUYWdzW3N5bWJvbFRhZ10gPVxuICBjbG9uZWFibGVUYWdzW3VpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9XG4gIGNsb25lYWJsZVRhZ3NbdWludDE2VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG4gIGNsb25lYWJsZVRhZ3NbZXJyb3JUYWddID0gY2xvbmVhYmxlVGFnc1tmdW5jVGFnXSA9XG4gIGNsb25lYWJsZVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcblxuICAvKiogVXNlZCB0byBtYXAgTGF0aW4gVW5pY29kZSBsZXR0ZXJzIHRvIGJhc2ljIExhdGluIGxldHRlcnMuICovXG4gIHZhciBkZWJ1cnJlZExldHRlcnMgPSB7XG4gICAgLy8gTGF0aW4tMSBTdXBwbGVtZW50IGJsb2NrLlxuICAgICdcXHhjMCc6ICdBJywgICdcXHhjMSc6ICdBJywgJ1xceGMyJzogJ0EnLCAnXFx4YzMnOiAnQScsICdcXHhjNCc6ICdBJywgJ1xceGM1JzogJ0EnLFxuICAgICdcXHhlMCc6ICdhJywgICdcXHhlMSc6ICdhJywgJ1xceGUyJzogJ2EnLCAnXFx4ZTMnOiAnYScsICdcXHhlNCc6ICdhJywgJ1xceGU1JzogJ2EnLFxuICAgICdcXHhjNyc6ICdDJywgICdcXHhlNyc6ICdjJyxcbiAgICAnXFx4ZDAnOiAnRCcsICAnXFx4ZjAnOiAnZCcsXG4gICAgJ1xceGM4JzogJ0UnLCAgJ1xceGM5JzogJ0UnLCAnXFx4Y2EnOiAnRScsICdcXHhjYic6ICdFJyxcbiAgICAnXFx4ZTgnOiAnZScsICAnXFx4ZTknOiAnZScsICdcXHhlYSc6ICdlJywgJ1xceGViJzogJ2UnLFxuICAgICdcXHhjYyc6ICdJJywgICdcXHhjZCc6ICdJJywgJ1xceGNlJzogJ0knLCAnXFx4Y2YnOiAnSScsXG4gICAgJ1xceGVjJzogJ2knLCAgJ1xceGVkJzogJ2knLCAnXFx4ZWUnOiAnaScsICdcXHhlZic6ICdpJyxcbiAgICAnXFx4ZDEnOiAnTicsICAnXFx4ZjEnOiAnbicsXG4gICAgJ1xceGQyJzogJ08nLCAgJ1xceGQzJzogJ08nLCAnXFx4ZDQnOiAnTycsICdcXHhkNSc6ICdPJywgJ1xceGQ2JzogJ08nLCAnXFx4ZDgnOiAnTycsXG4gICAgJ1xceGYyJzogJ28nLCAgJ1xceGYzJzogJ28nLCAnXFx4ZjQnOiAnbycsICdcXHhmNSc6ICdvJywgJ1xceGY2JzogJ28nLCAnXFx4ZjgnOiAnbycsXG4gICAgJ1xceGQ5JzogJ1UnLCAgJ1xceGRhJzogJ1UnLCAnXFx4ZGInOiAnVScsICdcXHhkYyc6ICdVJyxcbiAgICAnXFx4ZjknOiAndScsICAnXFx4ZmEnOiAndScsICdcXHhmYic6ICd1JywgJ1xceGZjJzogJ3UnLFxuICAgICdcXHhkZCc6ICdZJywgICdcXHhmZCc6ICd5JywgJ1xceGZmJzogJ3knLFxuICAgICdcXHhjNic6ICdBZScsICdcXHhlNic6ICdhZScsXG4gICAgJ1xceGRlJzogJ1RoJywgJ1xceGZlJzogJ3RoJyxcbiAgICAnXFx4ZGYnOiAnc3MnLFxuICAgIC8vIExhdGluIEV4dGVuZGVkLUEgYmxvY2suXG4gICAgJ1xcdTAxMDAnOiAnQScsICAnXFx1MDEwMic6ICdBJywgJ1xcdTAxMDQnOiAnQScsXG4gICAgJ1xcdTAxMDEnOiAnYScsICAnXFx1MDEwMyc6ICdhJywgJ1xcdTAxMDUnOiAnYScsXG4gICAgJ1xcdTAxMDYnOiAnQycsICAnXFx1MDEwOCc6ICdDJywgJ1xcdTAxMGEnOiAnQycsICdcXHUwMTBjJzogJ0MnLFxuICAgICdcXHUwMTA3JzogJ2MnLCAgJ1xcdTAxMDknOiAnYycsICdcXHUwMTBiJzogJ2MnLCAnXFx1MDEwZCc6ICdjJyxcbiAgICAnXFx1MDEwZSc6ICdEJywgICdcXHUwMTEwJzogJ0QnLCAnXFx1MDEwZic6ICdkJywgJ1xcdTAxMTEnOiAnZCcsXG4gICAgJ1xcdTAxMTInOiAnRScsICAnXFx1MDExNCc6ICdFJywgJ1xcdTAxMTYnOiAnRScsICdcXHUwMTE4JzogJ0UnLCAnXFx1MDExYSc6ICdFJyxcbiAgICAnXFx1MDExMyc6ICdlJywgICdcXHUwMTE1JzogJ2UnLCAnXFx1MDExNyc6ICdlJywgJ1xcdTAxMTknOiAnZScsICdcXHUwMTFiJzogJ2UnLFxuICAgICdcXHUwMTFjJzogJ0cnLCAgJ1xcdTAxMWUnOiAnRycsICdcXHUwMTIwJzogJ0cnLCAnXFx1MDEyMic6ICdHJyxcbiAgICAnXFx1MDExZCc6ICdnJywgICdcXHUwMTFmJzogJ2cnLCAnXFx1MDEyMSc6ICdnJywgJ1xcdTAxMjMnOiAnZycsXG4gICAgJ1xcdTAxMjQnOiAnSCcsICAnXFx1MDEyNic6ICdIJywgJ1xcdTAxMjUnOiAnaCcsICdcXHUwMTI3JzogJ2gnLFxuICAgICdcXHUwMTI4JzogJ0knLCAgJ1xcdTAxMmEnOiAnSScsICdcXHUwMTJjJzogJ0knLCAnXFx1MDEyZSc6ICdJJywgJ1xcdTAxMzAnOiAnSScsXG4gICAgJ1xcdTAxMjknOiAnaScsICAnXFx1MDEyYic6ICdpJywgJ1xcdTAxMmQnOiAnaScsICdcXHUwMTJmJzogJ2knLCAnXFx1MDEzMSc6ICdpJyxcbiAgICAnXFx1MDEzNCc6ICdKJywgICdcXHUwMTM1JzogJ2onLFxuICAgICdcXHUwMTM2JzogJ0snLCAgJ1xcdTAxMzcnOiAnaycsICdcXHUwMTM4JzogJ2snLFxuICAgICdcXHUwMTM5JzogJ0wnLCAgJ1xcdTAxM2InOiAnTCcsICdcXHUwMTNkJzogJ0wnLCAnXFx1MDEzZic6ICdMJywgJ1xcdTAxNDEnOiAnTCcsXG4gICAgJ1xcdTAxM2EnOiAnbCcsICAnXFx1MDEzYyc6ICdsJywgJ1xcdTAxM2UnOiAnbCcsICdcXHUwMTQwJzogJ2wnLCAnXFx1MDE0Mic6ICdsJyxcbiAgICAnXFx1MDE0Myc6ICdOJywgICdcXHUwMTQ1JzogJ04nLCAnXFx1MDE0Nyc6ICdOJywgJ1xcdTAxNGEnOiAnTicsXG4gICAgJ1xcdTAxNDQnOiAnbicsICAnXFx1MDE0Nic6ICduJywgJ1xcdTAxNDgnOiAnbicsICdcXHUwMTRiJzogJ24nLFxuICAgICdcXHUwMTRjJzogJ08nLCAgJ1xcdTAxNGUnOiAnTycsICdcXHUwMTUwJzogJ08nLFxuICAgICdcXHUwMTRkJzogJ28nLCAgJ1xcdTAxNGYnOiAnbycsICdcXHUwMTUxJzogJ28nLFxuICAgICdcXHUwMTU0JzogJ1InLCAgJ1xcdTAxNTYnOiAnUicsICdcXHUwMTU4JzogJ1InLFxuICAgICdcXHUwMTU1JzogJ3InLCAgJ1xcdTAxNTcnOiAncicsICdcXHUwMTU5JzogJ3InLFxuICAgICdcXHUwMTVhJzogJ1MnLCAgJ1xcdTAxNWMnOiAnUycsICdcXHUwMTVlJzogJ1MnLCAnXFx1MDE2MCc6ICdTJyxcbiAgICAnXFx1MDE1Yic6ICdzJywgICdcXHUwMTVkJzogJ3MnLCAnXFx1MDE1Zic6ICdzJywgJ1xcdTAxNjEnOiAncycsXG4gICAgJ1xcdTAxNjInOiAnVCcsICAnXFx1MDE2NCc6ICdUJywgJ1xcdTAxNjYnOiAnVCcsXG4gICAgJ1xcdTAxNjMnOiAndCcsICAnXFx1MDE2NSc6ICd0JywgJ1xcdTAxNjcnOiAndCcsXG4gICAgJ1xcdTAxNjgnOiAnVScsICAnXFx1MDE2YSc6ICdVJywgJ1xcdTAxNmMnOiAnVScsICdcXHUwMTZlJzogJ1UnLCAnXFx1MDE3MCc6ICdVJywgJ1xcdTAxNzInOiAnVScsXG4gICAgJ1xcdTAxNjknOiAndScsICAnXFx1MDE2Yic6ICd1JywgJ1xcdTAxNmQnOiAndScsICdcXHUwMTZmJzogJ3UnLCAnXFx1MDE3MSc6ICd1JywgJ1xcdTAxNzMnOiAndScsXG4gICAgJ1xcdTAxNzQnOiAnVycsICAnXFx1MDE3NSc6ICd3JyxcbiAgICAnXFx1MDE3Nic6ICdZJywgICdcXHUwMTc3JzogJ3knLCAnXFx1MDE3OCc6ICdZJyxcbiAgICAnXFx1MDE3OSc6ICdaJywgICdcXHUwMTdiJzogJ1onLCAnXFx1MDE3ZCc6ICdaJyxcbiAgICAnXFx1MDE3YSc6ICd6JywgICdcXHUwMTdjJzogJ3onLCAnXFx1MDE3ZSc6ICd6JyxcbiAgICAnXFx1MDEzMic6ICdJSicsICdcXHUwMTMzJzogJ2lqJyxcbiAgICAnXFx1MDE1Mic6ICdPZScsICdcXHUwMTUzJzogJ29lJyxcbiAgICAnXFx1MDE0OSc6IFwiJ25cIiwgJ1xcdTAxN2YnOiAncydcbiAgfTtcblxuICAvKiogVXNlZCB0byBtYXAgY2hhcmFjdGVycyB0byBIVE1MIGVudGl0aWVzLiAqL1xuICB2YXIgaHRtbEVzY2FwZXMgPSB7XG4gICAgJyYnOiAnJmFtcDsnLFxuICAgICc8JzogJyZsdDsnLFxuICAgICc+JzogJyZndDsnLFxuICAgICdcIic6ICcmcXVvdDsnLFxuICAgIFwiJ1wiOiAnJiMzOTsnXG4gIH07XG5cbiAgLyoqIFVzZWQgdG8gbWFwIEhUTUwgZW50aXRpZXMgdG8gY2hhcmFjdGVycy4gKi9cbiAgdmFyIGh0bWxVbmVzY2FwZXMgPSB7XG4gICAgJyZhbXA7JzogJyYnLFxuICAgICcmbHQ7JzogJzwnLFxuICAgICcmZ3Q7JzogJz4nLFxuICAgICcmcXVvdDsnOiAnXCInLFxuICAgICcmIzM5Oyc6IFwiJ1wiXG4gIH07XG5cbiAgLyoqIFVzZWQgdG8gZXNjYXBlIGNoYXJhY3RlcnMgZm9yIGluY2x1c2lvbiBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuICovXG4gIHZhciBzdHJpbmdFc2NhcGVzID0ge1xuICAgICdcXFxcJzogJ1xcXFwnLFxuICAgIFwiJ1wiOiBcIidcIixcbiAgICAnXFxuJzogJ24nLFxuICAgICdcXHInOiAncicsXG4gICAgJ1xcdTIwMjgnOiAndTIwMjgnLFxuICAgICdcXHUyMDI5JzogJ3UyMDI5J1xuICB9O1xuXG4gIC8qKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB3aXRob3V0IGEgZGVwZW5kZW5jeSBvbiBgcm9vdGAuICovXG4gIHZhciBmcmVlUGFyc2VGbG9hdCA9IHBhcnNlRmxvYXQsXG4gICAgICBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcblxuICAvKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGdsb2JhbGAgZnJvbSBOb2RlLmpzLiAqL1xuICB2YXIgZnJlZUdsb2JhbCA9IHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBnbG9iYWw7XG5cbiAgLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbiAgdmFyIGZyZWVTZWxmID0gdHlwZW9mIHNlbGYgPT0gJ29iamVjdCcgJiYgc2VsZiAmJiBzZWxmLk9iamVjdCA9PT0gT2JqZWN0ICYmIHNlbGY7XG5cbiAgLyoqIFVzZWQgYXMgYSByZWZlcmVuY2UgdG8gdGhlIGdsb2JhbCBvYmplY3QuICovXG4gIHZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG4gIC8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG4gIHZhciBmcmVlRXhwb3J0cyA9IHR5cGVvZiBleHBvcnRzID09ICdvYmplY3QnICYmIGV4cG9ydHMgJiYgIWV4cG9ydHMubm9kZVR5cGUgJiYgZXhwb3J0cztcblxuICAvKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYG1vZHVsZWAuICovXG4gIHZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbiAgLyoqIERldGVjdCB0aGUgcG9wdWxhciBDb21tb25KUyBleHRlbnNpb24gYG1vZHVsZS5leHBvcnRzYC4gKi9cbiAgdmFyIG1vZHVsZUV4cG9ydHMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUuZXhwb3J0cyA9PT0gZnJlZUV4cG9ydHM7XG5cbiAgLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBwcm9jZXNzYCBmcm9tIE5vZGUuanMuICovXG4gIHZhciBmcmVlUHJvY2VzcyA9IG1vZHVsZUV4cG9ydHMgJiYgZnJlZUdsb2JhbC5wcm9jZXNzO1xuXG4gIC8qKiBVc2VkIHRvIGFjY2VzcyBmYXN0ZXIgTm9kZS5qcyBoZWxwZXJzLiAqL1xuICB2YXIgbm9kZVV0aWwgPSAoZnVuY3Rpb24oKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFVzZSBgdXRpbC50eXBlc2AgZm9yIE5vZGUuanMgMTArLlxuICAgICAgdmFyIHR5cGVzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLnJlcXVpcmUgJiYgZnJlZU1vZHVsZS5yZXF1aXJlKCd1dGlsJykudHlwZXM7XG5cbiAgICAgIGlmICh0eXBlcykge1xuICAgICAgICByZXR1cm4gdHlwZXM7XG4gICAgICB9XG5cbiAgICAgIC8vIExlZ2FjeSBgcHJvY2Vzcy5iaW5kaW5nKCd1dGlsJylgIGZvciBOb2RlLmpzIDwgMTAuXG4gICAgICByZXR1cm4gZnJlZVByb2Nlc3MgJiYgZnJlZVByb2Nlc3MuYmluZGluZyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nKCd1dGlsJyk7XG4gICAgfSBjYXRjaCAoZSkge31cbiAgfSgpKTtcblxuICAvKiBOb2RlLmpzIGhlbHBlciByZWZlcmVuY2VzLiAqL1xuICB2YXIgbm9kZUlzQXJyYXlCdWZmZXIgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc0FycmF5QnVmZmVyLFxuICAgICAgbm9kZUlzRGF0ZSA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzRGF0ZSxcbiAgICAgIG5vZGVJc01hcCA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzTWFwLFxuICAgICAgbm9kZUlzUmVnRXhwID0gbm9kZVV0aWwgJiYgbm9kZVV0aWwuaXNSZWdFeHAsXG4gICAgICBub2RlSXNTZXQgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1NldCxcbiAgICAgIG5vZGVJc1R5cGVkQXJyYXkgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1R5cGVkQXJyYXk7XG5cbiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgLyoqXG4gICAqIEEgZmFzdGVyIGFsdGVybmF0aXZlIHRvIGBGdW5jdGlvbiNhcHBseWAsIHRoaXMgZnVuY3Rpb24gaW52b2tlcyBgZnVuY2BcbiAgICogd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgYHRoaXNBcmdgIGFuZCB0aGUgYXJndW1lbnRzIG9mIGBhcmdzYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gaW52b2tlLlxuICAgKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAgICogQHBhcmFtIHtBcnJheX0gYXJncyBUaGUgYXJndW1lbnRzIHRvIGludm9rZSBgZnVuY2Agd2l0aC5cbiAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc3VsdCBvZiBgZnVuY2AuXG4gICAqL1xuICBmdW5jdGlvbiBhcHBseShmdW5jLCB0aGlzQXJnLCBhcmdzKSB7XG4gICAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xuICAgICAgY2FzZSAwOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcpO1xuICAgICAgY2FzZSAxOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0pO1xuICAgICAgY2FzZSAyOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0sIGFyZ3NbMV0pO1xuICAgICAgY2FzZSAzOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0pO1xuICAgIH1cbiAgICByZXR1cm4gZnVuYy5hcHBseSh0aGlzQXJnLCBhcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VBZ2dyZWdhdG9yYCBmb3IgYXJyYXlzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHNldHRlciBUaGUgZnVuY3Rpb24gdG8gc2V0IGBhY2N1bXVsYXRvcmAgdmFsdWVzLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgaXRlcmF0ZWUgdG8gdHJhbnNmb3JtIGtleXMuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBhY2N1bXVsYXRvciBUaGUgaW5pdGlhbCBhZ2dyZWdhdGVkIG9iamVjdC5cbiAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBhY2N1bXVsYXRvcmAuXG4gICAqL1xuICBmdW5jdGlvbiBhcnJheUFnZ3JlZ2F0b3IoYXJyYXksIHNldHRlciwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgIHNldHRlcihhY2N1bXVsYXRvciwgdmFsdWUsIGl0ZXJhdGVlKHZhbHVlKSwgYXJyYXkpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gIH1cblxuICAvKipcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZvckVhY2hgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICAgKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlFYWNoKGFycmF5LCBpdGVyYXRlZSkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBpZiAoaXRlcmF0ZWUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpID09PSBmYWxzZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xuICB9XG5cbiAgLyoqXG4gICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5mb3JFYWNoUmlnaHRgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICAgKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlFYWNoUmlnaHQoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICBpZiAoaXRlcmF0ZWUoYXJyYXlbbGVuZ3RoXSwgbGVuZ3RoLCBhcnJheSkgPT09IGZhbHNlKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXJyYXk7XG4gIH1cblxuICAvKipcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmV2ZXJ5YCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFsbCBlbGVtZW50cyBwYXNzIHRoZSBwcmVkaWNhdGUgY2hlY2ssXG4gICAqICBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBhcnJheUV2ZXJ5KGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKCFwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmZpbHRlcmAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gICAqIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IFthcnJheV0gVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZpbHRlcmVkIGFycmF5LlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlGaWx0ZXIoYXJyYXksIHByZWRpY2F0ZSkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgcmVzSW5kZXggPSAwLFxuICAgICAgICByZXN1bHQgPSBbXTtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XG4gICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5pbmNsdWRlc2AgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gICAqIHNwZWNpZnlpbmcgYW4gaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IFthcnJheV0gVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7Kn0gdGFyZ2V0IFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHRhcmdldGAgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cbiAgICovXG4gIGZ1bmN0aW9uIGFycmF5SW5jbHVkZXMoYXJyYXksIHZhbHVlKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgIHJldHVybiAhIWxlbmd0aCAmJiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIDApID4gLTE7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGBhcnJheUluY2x1ZGVzYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGEgY29tcGFyYXRvci5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHsqfSB0YXJnZXQgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNvbXBhcmF0b3IgVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB0YXJnZXRgIGlzIGZvdW5kLCBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBhcnJheUluY2x1ZGVzV2l0aChhcnJheSwgdmFsdWUsIGNvbXBhcmF0b3IpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKGNvbXBhcmF0b3IodmFsdWUsIGFycmF5W2luZGV4XSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ubWFwYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWVcbiAgICogc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgYXJyYXkuXG4gICAqL1xuICBmdW5jdGlvbiBhcnJheU1hcChhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmRzIHRoZSBlbGVtZW50cyBvZiBgdmFsdWVzYCB0byBgYXJyYXlgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byBhcHBlbmQuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlQdXNoKGFycmF5LCB2YWx1ZXMpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gdmFsdWVzLmxlbmd0aCxcbiAgICAgICAgb2Zmc2V0ID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIGFycmF5W29mZnNldCArIGluZGV4XSA9IHZhbHVlc1tpbmRleF07XG4gICAgfVxuICAgIHJldHVybiBhcnJheTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ucmVkdWNlYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gVGhlIGluaXRpYWwgdmFsdWUuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2luaXRBY2N1bV0gU3BlY2lmeSB1c2luZyB0aGUgZmlyc3QgZWxlbWVudCBvZiBgYXJyYXlgIGFzXG4gICAqICB0aGUgaW5pdGlhbCB2YWx1ZS5cbiAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlSZWR1Y2UoYXJyYXksIGl0ZXJhdGVlLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuXG4gICAgaWYgKGluaXRBY2N1bSAmJiBsZW5ndGgpIHtcbiAgICAgIGFjY3VtdWxhdG9yID0gYXJyYXlbKytpbmRleF07XG4gICAgfVxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBhY2N1bXVsYXRvciA9IGl0ZXJhdGVlKGFjY3VtdWxhdG9yLCBhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSk7XG4gICAgfVxuICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ucmVkdWNlUmlnaHRgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICAgKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgaW5pdGlhbCB2YWx1ZS5cbiAgICogQHBhcmFtIHtib29sZWFufSBbaW5pdEFjY3VtXSBTcGVjaWZ5IHVzaW5nIHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YCBhc1xuICAgKiAgdGhlIGluaXRpYWwgdmFsdWUuXG4gICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAgICovXG4gIGZ1bmN0aW9uIGFycmF5UmVkdWNlUmlnaHQoYXJyYXksIGl0ZXJhdGVlLCBhY2N1bXVsYXRvciwgaW5pdEFjY3VtKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgIGlmIChpbml0QWNjdW0gJiYgbGVuZ3RoKSB7XG4gICAgICBhY2N1bXVsYXRvciA9IGFycmF5Wy0tbGVuZ3RoXTtcbiAgICB9XG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICBhY2N1bXVsYXRvciA9IGl0ZXJhdGVlKGFjY3VtdWxhdG9yLCBhcnJheVtsZW5ndGhdLCBsZW5ndGgsIGFycmF5KTtcbiAgICB9XG4gICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5zb21lYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWVcbiAgICogc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFueSBlbGVtZW50IHBhc3NlcyB0aGUgcHJlZGljYXRlIGNoZWNrLFxuICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgKi9cbiAgZnVuY3Rpb24gYXJyYXlTb21lKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKHByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzaXplIG9mIGFuIEFTQ0lJIGBzdHJpbmdgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgaW5zcGVjdC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc3RyaW5nIHNpemUuXG4gICAqL1xuICB2YXIgYXNjaWlTaXplID0gYmFzZVByb3BlcnR5KCdsZW5ndGgnKTtcblxuICAvKipcbiAgICogQ29udmVydHMgYW4gQVNDSUkgYHN0cmluZ2AgdG8gYW4gYXJyYXkuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBhcnJheS5cbiAgICovXG4gIGZ1bmN0aW9uIGFzY2lpVG9BcnJheShzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyaW5nLnNwbGl0KCcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdHMgYW4gQVNDSUkgYHN0cmluZ2AgaW50byBhbiBhcnJheSBvZiBpdHMgd29yZHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgd29yZHMgb2YgYHN0cmluZ2AuXG4gICAqL1xuICBmdW5jdGlvbiBhc2NpaVdvcmRzKHN0cmluZykge1xuICAgIHJldHVybiBzdHJpbmcubWF0Y2gocmVBc2NpaVdvcmQpIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZHMgbGlrZSBgXy5maW5kS2V5YCBhbmQgYF8uZmluZExhc3RLZXlgLFxuICAgKiB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMsIHdoaWNoIGl0ZXJhdGVzIG92ZXIgYGNvbGxlY3Rpb25gXG4gICAqIHVzaW5nIGBlYWNoRnVuY2AuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGBjb2xsZWN0aW9uYC5cbiAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGZvdW5kIGVsZW1lbnQgb3IgaXRzIGtleSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VGaW5kS2V5KGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZWFjaEZ1bmMpIHtcbiAgICB2YXIgcmVzdWx0O1xuICAgIGVhY2hGdW5jKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pIHtcbiAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIGtleSwgY29sbGVjdGlvbikpIHtcbiAgICAgICAgcmVzdWx0ID0ga2V5O1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5maW5kSW5kZXhgIGFuZCBgXy5maW5kTGFzdEluZGV4YCB3aXRob3V0XG4gICAqIHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZUZpbmRJbmRleChhcnJheSwgcHJlZGljYXRlLCBmcm9tSW5kZXgsIGZyb21SaWdodCkge1xuICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgIGluZGV4ID0gZnJvbUluZGV4ICsgKGZyb21SaWdodCA/IDEgOiAtMSk7XG5cbiAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgICAgaWYgKHByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaW5kZXhPZmAgd2l0aG91dCBgZnJvbUluZGV4YCBib3VuZHMgY2hlY2tzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAqL1xuICBmdW5jdGlvbiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWVcbiAgICAgID8gc3RyaWN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleClcbiAgICAgIDogYmFzZUZpbmRJbmRleChhcnJheSwgYmFzZUlzTmFOLCBmcm9tSW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgYmFzZUluZGV4T2ZgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYSBjb21wYXJhdG9yLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNvbXBhcmF0b3IgVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VJbmRleE9mV2l0aChhcnJheSwgdmFsdWUsIGZyb21JbmRleCwgY29tcGFyYXRvcikge1xuICAgIHZhciBpbmRleCA9IGZyb21JbmRleCAtIDEsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBpZiAoY29tcGFyYXRvcihhcnJheVtpbmRleF0sIHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc05hTmAgd2l0aG91dCBzdXBwb3J0IGZvciBudW1iZXIgb2JqZWN0cy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGBOYU5gLCBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBiYXNlSXNOYU4odmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1lYW5gIGFuZCBgXy5tZWFuQnlgIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAgICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbWVhbi5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VNZWFuKGFycmF5LCBpdGVyYXRlZSkge1xuICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICByZXR1cm4gbGVuZ3RoID8gKGJhc2VTdW0oYXJyYXksIGl0ZXJhdGVlKSAvIGxlbmd0aCkgOiBOQU47XG4gIH1cblxuICAvKipcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHJvcGVydHlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFjY2Vzc29yIGZ1bmN0aW9uLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVByb3BlcnR5KGtleSkge1xuICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IG9iamVjdFtrZXldO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHJvcGVydHlPZmAgd2l0aG91dCBzdXBwb3J0IGZvciBkZWVwIHBhdGhzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFjY2Vzc29yIGZ1bmN0aW9uLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVByb3BlcnR5T2Yob2JqZWN0KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGtleSkge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W2tleV07XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5yZWR1Y2VgIGFuZCBgXy5yZWR1Y2VSaWdodGAsIHdpdGhvdXQgc3VwcG9ydFxuICAgKiBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcywgd2hpY2ggaXRlcmF0ZXMgb3ZlciBgY29sbGVjdGlvbmAgdXNpbmcgYGVhY2hGdW5jYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgKiBAcGFyYW0geyp9IGFjY3VtdWxhdG9yIFRoZSBpbml0aWFsIHZhbHVlLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGluaXRBY2N1bSBTcGVjaWZ5IHVzaW5nIHRoZSBmaXJzdCBvciBsYXN0IGVsZW1lbnQgb2ZcbiAgICogIGBjb2xsZWN0aW9uYCBhcyB0aGUgaW5pdGlhbCB2YWx1ZS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZWFjaEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBgY29sbGVjdGlvbmAuXG4gICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VSZWR1Y2UoY29sbGVjdGlvbiwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yLCBpbml0QWNjdW0sIGVhY2hGdW5jKSB7XG4gICAgZWFjaEZ1bmMoY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICBhY2N1bXVsYXRvciA9IGluaXRBY2N1bVxuICAgICAgICA/IChpbml0QWNjdW0gPSBmYWxzZSwgdmFsdWUpXG4gICAgICAgIDogaXRlcmF0ZWUoYWNjdW11bGF0b3IsIHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbik7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNvcnRCeWAgd2hpY2ggdXNlcyBgY29tcGFyZXJgIHRvIGRlZmluZSB0aGVcbiAgICogc29ydCBvcmRlciBvZiBgYXJyYXlgIGFuZCByZXBsYWNlcyBjcml0ZXJpYSBvYmplY3RzIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZ1xuICAgKiB2YWx1ZXMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzb3J0LlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjb21wYXJlciBUaGUgZnVuY3Rpb24gdG8gZGVmaW5lIHNvcnQgb3JkZXIuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVNvcnRCeShhcnJheSwgY29tcGFyZXIpIHtcbiAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgYXJyYXkuc29ydChjb21wYXJlcik7XG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICBhcnJheVtsZW5ndGhdID0gYXJyYXlbbGVuZ3RoXS52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnN1bWAgYW5kIGBfLnN1bUJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yXG4gICAqIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHN1bS5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VTdW0oYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgdmFyIHJlc3VsdCxcbiAgICAgICAgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciBjdXJyZW50ID0gaXRlcmF0ZWUoYXJyYXlbaW5kZXhdKTtcbiAgICAgIGlmIChjdXJyZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ID09PSB1bmRlZmluZWQgPyBjdXJyZW50IDogKHJlc3VsdCArIGN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRpbWVzYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHNcbiAgICogb3IgbWF4IGFycmF5IGxlbmd0aCBjaGVja3MuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgdGltZXMgdG8gaW52b2tlIGBpdGVyYXRlZWAuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcmVzdWx0cy5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VUaW1lcyhuLCBpdGVyYXRlZSkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICByZXN1bHQgPSBBcnJheShuKTtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbikge1xuICAgICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGluZGV4KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50b1BhaXJzYCBhbmQgYF8udG9QYWlyc0luYCB3aGljaCBjcmVhdGVzIGFuIGFycmF5XG4gICAqIG9mIGtleS12YWx1ZSBwYWlycyBmb3IgYG9iamVjdGAgY29ycmVzcG9uZGluZyB0byB0aGUgcHJvcGVydHkgbmFtZXMgb2YgYHByb3BzYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgbmFtZXMgdG8gZ2V0IHZhbHVlcyBmb3IuXG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGtleS12YWx1ZSBwYWlycy5cbiAgICovXG4gIGZ1bmN0aW9uIGJhc2VUb1BhaXJzKG9iamVjdCwgcHJvcHMpIHtcbiAgICByZXR1cm4gYXJyYXlNYXAocHJvcHMsIGZ1bmN0aW9uKGtleSkge1xuICAgICAgcmV0dXJuIFtrZXksIG9iamVjdFtrZXldXTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50cmltYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIHRyaW0uXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHRyaW1tZWQgc3RyaW5nLlxuICAgKi9cbiAgZnVuY3Rpb24gYmFzZVRyaW0oc3RyaW5nKSB7XG4gICAgcmV0dXJuIHN0cmluZ1xuICAgICAgPyBzdHJpbmcuc2xpY2UoMCwgdHJpbW1lZEVuZEluZGV4KHN0cmluZykgKyAxKS5yZXBsYWNlKHJlVHJpbVN0YXJ0LCAnJylcbiAgICAgIDogc3RyaW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVuYXJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yIHN0b3JpbmcgbWV0YWRhdGEuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNhcCBhcmd1bWVudHMgZm9yLlxuICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjYXBwZWQgZnVuY3Rpb24uXG4gICAqL1xuICBmdW5jdGlvbiBiYXNlVW5hcnkoZnVuYykge1xuICAgIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgcmV0dXJuIGZ1bmModmFsdWUpO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udmFsdWVzYCBhbmQgYF8udmFsdWVzSW5gIHdoaWNoIGNyZWF0ZXMgYW5cbiAgICogYXJyYXkgb2YgYG9iamVjdGAgcHJvcGVydHkgdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHByb3BlcnR5IG5hbWVzXG4gICAqIG9mIGBwcm9wc2AuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IG5hbWVzIHRvIGdldCB2YWx1ZXMgZm9yLlxuICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSB2YWx1ZXMuXG4gICAqL1xuICBmdW5jdGlvbiBiYXNlVmFsdWVzKG9iamVjdCwgcHJvcHMpIHtcbiAgICByZXR1cm4gYXJyYXlNYXAocHJvcHMsIGZ1bmN0aW9uKGtleSkge1xuICAgICAgcmV0dXJuIG9iamVjdFtrZXldO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIGBjYWNoZWAgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtPYmplY3R9IGNhY2hlIFRoZSBjYWNoZSB0byBxdWVyeS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAgICovXG4gIGZ1bmN0aW9uIGNhY2hlSGFzKGNhY2hlLCBrZXkpIHtcbiAgICByZXR1cm4gY2FjaGUuaGFzKGtleSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBgXy50cmltYCBhbmQgYF8udHJpbVN0YXJ0YCB0byBnZXQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBzdHJpbmcgc3ltYm9sXG4gICAqIHRoYXQgaXMgbm90IGZvdW5kIGluIHRoZSBjaGFyYWN0ZXIgc3ltYm9scy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gc3RyU3ltYm9scyBUaGUgc3RyaW5nIHN5bWJvbHMgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHtBcnJheX0gY2hyU3ltYm9scyBUaGUgY2hhcmFjdGVyIHN5bWJvbHMgdG8gZmluZC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IHVubWF0Y2hlZCBzdHJpbmcgc3ltYm9sLlxuICAgKi9cbiAgZnVuY3Rpb24gY2hhcnNTdGFydEluZGV4KHN0clN5bWJvbHMsIGNoclN5bWJvbHMpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gc3RyU3ltYm9scy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCAmJiBiYXNlSW5kZXhPZihjaHJTeW1ib2xzLCBzdHJTeW1ib2xzW2luZGV4XSwgMCkgPiAtMSkge31cbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBieSBgXy50cmltYCBhbmQgYF8udHJpbUVuZGAgdG8gZ2V0IHRoZSBpbmRleCBvZiB0aGUgbGFzdCBzdHJpbmcgc3ltYm9sXG4gICAqIHRoYXQgaXMgbm90IGZvdW5kIGluIHRoZSBjaGFyYWN0ZXIgc3ltYm9scy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gc3RyU3ltYm9scyBUaGUgc3RyaW5nIHN5bWJvbHMgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHtBcnJheX0gY2hyU3ltYm9scyBUaGUgY2hhcmFjdGVyIHN5bWJvbHMgdG8gZmluZC5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3QgdW5tYXRjaGVkIHN0cmluZyBzeW1ib2wuXG4gICAqL1xuICBmdW5jdGlvbiBjaGFyc0VuZEluZGV4KHN0clN5bWJvbHMsIGNoclN5bWJvbHMpIHtcbiAgICB2YXIgaW5kZXggPSBzdHJTeW1ib2xzLmxlbmd0aDtcblxuICAgIHdoaWxlIChpbmRleC0tICYmIGJhc2VJbmRleE9mKGNoclN5bWJvbHMsIHN0clN5bWJvbHNbaW5kZXhdLCAwKSA+IC0xKSB7fVxuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBudW1iZXIgb2YgYHBsYWNlaG9sZGVyYCBvY2N1cnJlbmNlcyBpbiBgYXJyYXlgLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICogQHBhcmFtIHsqfSBwbGFjZWhvbGRlciBUaGUgcGxhY2Vob2xkZXIgdG8gc2VhcmNoIGZvci5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgcGxhY2Vob2xkZXIgY291bnQuXG4gICAqL1xuICBmdW5jdGlvbiBjb3VudEhvbGRlcnMoYXJyYXksIHBsYWNlaG9sZGVyKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgcmVzdWx0ID0gMDtcblxuICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgaWYgKGFycmF5W2xlbmd0aF0gPT09IHBsYWNlaG9sZGVyKSB7XG4gICAgICAgICsrcmVzdWx0O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8uZGVidXJyYCB0byBjb252ZXJ0IExhdGluLTEgU3VwcGxlbWVudCBhbmQgTGF0aW4gRXh0ZW5kZWQtQVxuICAgKiBsZXR0ZXJzIHRvIGJhc2ljIExhdGluIGxldHRlcnMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBsZXR0ZXIgVGhlIG1hdGNoZWQgbGV0dGVyIHRvIGRlYnVyci5cbiAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZGVidXJyZWQgbGV0dGVyLlxuICAgKi9cbiAgdmFyIGRlYnVyckxldHRlciA9IGJhc2VQcm9wZXJ0eU9mKGRlYnVycmVkTGV0dGVycyk7XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgYF8uZXNjYXBlYCB0byBjb252ZXJ0IGNoYXJhY3RlcnMgdG8gSFRNTCBlbnRpdGllcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNociBUaGUgbWF0Y2hlZCBjaGFyYWN0ZXIgdG8gZXNjYXBlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIGNoYXJhY3Rlci5cbiAgICovXG4gIHZhciBlc2NhcGVIdG1sQ2hhciA9IGJhc2VQcm9wZXJ0eU9mKGh0bWxFc2NhcGVzKTtcblxuICAvKipcbiAgICogVXNlZCBieSBgXy50ZW1wbGF0ZWAgdG8gZXNjYXBlIGNoYXJhY3RlcnMgZm9yIGluY2x1c2lvbiBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaHIgVGhlIG1hdGNoZWQgY2hhcmFjdGVyIHRvIGVzY2FwZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZXNjYXBlZCBjaGFyYWN0ZXIuXG4gICAqL1xuICBmdW5jdGlvbiBlc2NhcGVTdHJpbmdDaGFyKGNocikge1xuICAgIHJldHVybiAnXFxcXCcgKyBzdHJpbmdFc2NhcGVzW2Nocl07XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdmFsdWUgYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlLlxuICAgKi9cbiAgZnVuY3Rpb24gZ2V0VmFsdWUob2JqZWN0LCBrZXkpIHtcbiAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBvYmplY3Rba2V5XTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYHN0cmluZ2AgY29udGFpbnMgVW5pY29kZSBzeW1ib2xzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGEgc3ltYm9sIGlzIGZvdW5kLCBlbHNlIGBmYWxzZWAuXG4gICAqL1xuICBmdW5jdGlvbiBoYXNVbmljb2RlKHN0cmluZykge1xuICAgIHJldHVybiByZUhhc1VuaWNvZGUudGVzdChzdHJpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBgc3RyaW5nYCBjb250YWlucyBhIHdvcmQgY29tcG9zZWQgb2YgVW5pY29kZSBzeW1ib2xzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGEgd29yZCBpcyBmb3VuZCwgZWxzZSBgZmFsc2VgLlxuICAgKi9cbiAgZnVuY3Rpb24gaGFzVW5pY29kZVdvcmQoc3RyaW5nKSB7XG4gICAgcmV0dXJuIHJlSGFzVW5pY29kZVdvcmQudGVzdChzdHJpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGBpdGVyYXRvcmAgdG8gYW4gYXJyYXkuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBpdGVyYXRvciBUaGUgaXRlcmF0b3IgdG8gY29udmVydC5cbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgYXJyYXkuXG4gICAqL1xuICBmdW5jdGlvbiBpdGVyYXRvclRvQXJyYXkoaXRlcmF0b3IpIHtcbiAgICB2YXIgZGF0YSxcbiAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICB3aGlsZSAoIShkYXRhID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XG4gICAgICByZXN1bHQucHVzaChkYXRhLnZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBgbWFwYCB0byBpdHMga2V5LXZhbHVlIHBhaXJzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge09iamVjdH0gbWFwIFRoZSBtYXAgdG8gY29udmVydC5cbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBrZXktdmFsdWUgcGFpcnMuXG4gICAqL1xuICBmdW5jdGlvbiBtYXBUb0FycmF5KG1hcCkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICByZXN1bHQgPSBBcnJheShtYXAuc2l6ZSk7XG5cbiAgICBtYXAuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSwga2V5KSB7XG4gICAgICByZXN1bHRbKytpbmRleF0gPSBba2V5LCB2YWx1ZV07XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgdW5hcnkgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIGl0cyBhcmd1bWVudCB0cmFuc2Zvcm1lZC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gd3JhcC5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gdHJhbnNmb3JtIFRoZSBhcmd1bWVudCB0cmFuc2Zvcm0uXG4gICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgKi9cbiAgZnVuY3Rpb24gb3ZlckFyZyhmdW5jLCB0cmFuc2Zvcm0pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oYXJnKSB7XG4gICAgICByZXR1cm4gZnVuYyh0cmFuc2Zvcm0oYXJnKSk7XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyBhbGwgYHBsYWNlaG9sZGVyYCBlbGVtZW50cyBpbiBgYXJyYXlgIHdpdGggYW4gaW50ZXJuYWwgcGxhY2Vob2xkZXJcbiAgICogYW5kIHJldHVybnMgYW4gYXJyYXkgb2YgdGhlaXIgaW5kZXhlcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cbiAgICogQHBhcmFtIHsqfSBwbGFjZWhvbGRlciBUaGUgcGxhY2Vob2xkZXIgdG8gcmVwbGFjZS5cbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAgICovXG4gIGZ1bmN0aW9uIHJlcGxhY2VIb2xkZXJzKGFycmF5LCBwbGFjZWhvbGRlcikge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgIHJlc0luZGV4ID0gMCxcbiAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgaWYgKHZhbHVlID09PSBwbGFjZWhvbGRlciB8fCB2YWx1ZSA9PT0gUExBQ0VIT0xERVIpIHtcbiAgICAgICAgYXJyYXlbaW5kZXhdID0gUExBQ0VIT0xERVI7XG4gICAgICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IGluZGV4O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGBzZXRgIHRvIGFuIGFycmF5IG9mIGl0cyB2YWx1ZXMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBzZXQgVGhlIHNldCB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHZhbHVlcy5cbiAgICovXG4gIGZ1bmN0aW9uIHNldFRvQXJyYXkoc2V0KSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIHJlc3VsdCA9IEFycmF5KHNldC5zaXplKTtcblxuICAgIHNldC5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICByZXN1bHRbKytpbmRleF0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGBzZXRgIHRvIGl0cyB2YWx1ZS12YWx1ZSBwYWlycy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtPYmplY3R9IHNldCBUaGUgc2V0IHRvIGNvbnZlcnQuXG4gICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgdmFsdWUtdmFsdWUgcGFpcnMuXG4gICAqL1xuICBmdW5jdGlvbiBzZXRUb1BhaXJzKHNldCkge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICByZXN1bHQgPSBBcnJheShzZXQuc2l6ZSk7XG5cbiAgICBzZXQuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgcmVzdWx0WysraW5kZXhdID0gW3ZhbHVlLCB2YWx1ZV07XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uaW5kZXhPZmAgd2hpY2ggcGVyZm9ybXMgc3RyaWN0IGVxdWFsaXR5XG4gICAqIGNvbXBhcmlzb25zIG9mIHZhbHVlcywgaS5lLiBgPT09YC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmcm9tSW5kZXggVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICAgKi9cbiAgZnVuY3Rpb24gc3RyaWN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleCkge1xuICAgIHZhciBpbmRleCA9IGZyb21JbmRleCAtIDEsXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBpZiAoYXJyYXlbaW5kZXhdID09PSB2YWx1ZSkge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ubGFzdEluZGV4T2ZgIHdoaWNoIHBlcmZvcm1zIHN0cmljdCBlcXVhbGl0eVxuICAgKiBjb21wYXJpc29ucyBvZiB2YWx1ZXMsIGkuZS4gYD09PWAuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgKiBAcGFyYW0ge251bWJlcn0gZnJvbUluZGV4IFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICovXG4gIGZ1bmN0aW9uIHN0cmljdExhc3RJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gICAgdmFyIGluZGV4ID0gZnJvbUluZGV4ICsgMTtcbiAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgaWYgKGFycmF5W2luZGV4XSA9PT0gdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbnVtYmVyIG9mIHN5bWJvbHMgaW4gYHN0cmluZ2AuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBpbnNwZWN0LlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzdHJpbmcgc2l6ZS5cbiAgICovXG4gIGZ1bmN0aW9uIHN0cmluZ1NpemUoc3RyaW5nKSB7XG4gICAgcmV0dXJuIGhhc1VuaWNvZGUoc3RyaW5nKVxuICAgICAgPyB1bmljb2RlU2l6ZShzdHJpbmcpXG4gICAgICA6IGFzY2lpU2l6ZShzdHJpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGBzdHJpbmdgIHRvIGFuIGFycmF5LlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgYXJyYXkuXG4gICAqL1xuICBmdW5jdGlvbiBzdHJpbmdUb0FycmF5KHN0cmluZykge1xuICAgIHJldHVybiBoYXNVbmljb2RlKHN0cmluZylcbiAgICAgID8gdW5pY29kZVRvQXJyYXkoc3RyaW5nKVxuICAgICAgOiBhc2NpaVRvQXJyYXkoc3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIGJ5IGBfLnRyaW1gIGFuZCBgXy50cmltRW5kYCB0byBnZXQgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG5vbi13aGl0ZXNwYWNlXG4gICAqIGNoYXJhY3RlciBvZiBgc3RyaW5nYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIHRvIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3Rlci5cbiAgICovXG4gIGZ1bmN0aW9uIHRyaW1tZWRFbmRJbmRleChzdHJpbmcpIHtcbiAgICB2YXIgaW5kZXggPSBzdHJpbmcubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGluZGV4LS0gJiYgcmVXaGl0ZXNwYWNlLnRlc3Qoc3RyaW5nLmNoYXJBdChpbmRleCkpKSB7fVxuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIGJ5IGBfLnVuZXNjYXBlYCB0byBjb252ZXJ0IEhUTUwgZW50aXRpZXMgdG8gY2hhcmFjdGVycy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNociBUaGUgbWF0Y2hlZCBjaGFyYWN0ZXIgdG8gdW5lc2NhcGUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHVuZXNjYXBlZCBjaGFyYWN0ZXIuXG4gICAqL1xuICB2YXIgdW5lc2NhcGVIdG1sQ2hhciA9IGJhc2VQcm9wZXJ0eU9mKGh0bWxVbmVzY2FwZXMpO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzaXplIG9mIGEgVW5pY29kZSBgc3RyaW5nYC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZyBUaGUgc3RyaW5nIGluc3BlY3QuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHN0cmluZyBzaXplLlxuICAgKi9cbiAgZnVuY3Rpb24gdW5pY29kZVNpemUoc3RyaW5nKSB7XG4gICAgdmFyIHJlc3VsdCA9IHJlVW5pY29kZS5sYXN0SW5kZXggPSAwO1xuICAgIHdoaWxlIChyZVVuaWNvZGUudGVzdChzdHJpbmcpKSB7XG4gICAgICArK3Jlc3VsdDtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIFVuaWNvZGUgYHN0cmluZ2AgdG8gYW4gYXJyYXkuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBhcnJheS5cbiAgICovXG4gIGZ1bmN0aW9uIHVuaWNvZGVUb0FycmF5KHN0cmluZykge1xuICAgIHJldHVybiBzdHJpbmcubWF0Y2gocmVVbmljb2RlKSB8fCBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdHMgYSBVbmljb2RlIGBzdHJpbmdgIGludG8gYW4gYXJyYXkgb2YgaXRzIHdvcmRzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gVGhlIHN0cmluZyB0byBpbnNwZWN0LlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHdvcmRzIG9mIGBzdHJpbmdgLlxuICAgKi9cbiAgZnVuY3Rpb24gdW5pY29kZVdvcmRzKHN0cmluZykge1xuICAgIHJldHVybiBzdHJpbmcubWF0Y2gocmVVbmljb2RlV29yZCkgfHwgW107XG4gIH1cblxuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IHByaXN0aW5lIGBsb2Rhc2hgIGZ1bmN0aW9uIHVzaW5nIHRoZSBgY29udGV4dGAgb2JqZWN0LlxuICAgKlxuICAgKiBAc3RhdGljXG4gICAqIEBtZW1iZXJPZiBfXG4gICAqIEBzaW5jZSAxLjEuMFxuICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgKiBAcGFyYW0ge09iamVjdH0gW2NvbnRleHQ9cm9vdF0gVGhlIGNvbnRleHQgb2JqZWN0LlxuICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYSBuZXcgYGxvZGFzaGAgZnVuY3Rpb24uXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIF8ubWl4aW4oeyAnZm9vJzogXy5jb25zdGFudCgnZm9vJykgfSk7XG4gICAqXG4gICAqIHZhciBsb2Rhc2ggPSBfLnJ1bkluQ29udGV4dCgpO1xuICAgKiBsb2Rhc2gubWl4aW4oeyAnYmFyJzogbG9kYXNoLmNvbnN0YW50KCdiYXInKSB9KTtcbiAgICpcbiAgICogXy5pc0Z1bmN0aW9uKF8uZm9vKTtcbiAgICogLy8gPT4gdHJ1ZVxuICAgKiBfLmlzRnVuY3Rpb24oXy5iYXIpO1xuICAgKiAvLyA9PiBmYWxzZVxuICAgKlxuICAgKiBsb2Rhc2guaXNGdW5jdGlvbihsb2Rhc2guZm9vKTtcbiAgICogLy8gPT4gZmFsc2VcbiAgICogbG9kYXNoLmlzRnVuY3Rpb24obG9kYXNoLmJhcik7XG4gICAqIC8vID0+IHRydWVcbiAgICpcbiAgICogLy8gQ3JlYXRlIGEgc3VwZWQtdXAgYGRlZmVyYCBpbiBOb2RlLmpzLlxuICAgKiB2YXIgZGVmZXIgPSBfLnJ1bkluQ29udGV4dCh7ICdzZXRUaW1lb3V0Jzogc2V0SW1tZWRpYXRlIH0pLmRlZmVyO1xuICAgKi9cbiAgdmFyIHJ1bkluQ29udGV4dCA9IChmdW5jdGlvbiBydW5JbkNvbnRleHQoY29udGV4dCkge1xuICAgIGNvbnRleHQgPSBjb250ZXh0ID09IG51bGwgPyByb290IDogXy5kZWZhdWx0cyhyb290Lk9iamVjdCgpLCBjb250ZXh0LCBfLnBpY2socm9vdCwgY29udGV4dFByb3BzKSk7XG5cbiAgICAvKiogQnVpbHQtaW4gY29uc3RydWN0b3IgcmVmZXJlbmNlcy4gKi9cbiAgICB2YXIgQXJyYXkgPSBjb250ZXh0LkFycmF5LFxuICAgICAgICBEYXRlID0gY29udGV4dC5EYXRlLFxuICAgICAgICBFcnJvciA9IGNvbnRleHQuRXJyb3IsXG4gICAgICAgIEZ1bmN0aW9uID0gY29udGV4dC5GdW5jdGlvbixcbiAgICAgICAgTWF0aCA9IGNvbnRleHQuTWF0aCxcbiAgICAgICAgT2JqZWN0ID0gY29udGV4dC5PYmplY3QsXG4gICAgICAgIFJlZ0V4cCA9IGNvbnRleHQuUmVnRXhwLFxuICAgICAgICBTdHJpbmcgPSBjb250ZXh0LlN0cmluZyxcbiAgICAgICAgVHlwZUVycm9yID0gY29udGV4dC5UeXBlRXJyb3I7XG5cbiAgICAvKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG4gICAgdmFyIGFycmF5UHJvdG8gPSBBcnJheS5wcm90b3R5cGUsXG4gICAgICAgIGZ1bmNQcm90byA9IEZ1bmN0aW9uLnByb3RvdHlwZSxcbiAgICAgICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4gICAgLyoqIFVzZWQgdG8gZGV0ZWN0IG92ZXJyZWFjaGluZyBjb3JlLWpzIHNoaW1zLiAqL1xuICAgIHZhciBjb3JlSnNEYXRhID0gY29udGV4dFsnX19jb3JlLWpzX3NoYXJlZF9fJ107XG5cbiAgICAvKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG4gICAgdmFyIGZ1bmNUb1N0cmluZyA9IGZ1bmNQcm90by50b1N0cmluZztcblxuICAgIC8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xuICAgIHZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4gICAgLyoqIFVzZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIElEcy4gKi9cbiAgICB2YXIgaWRDb3VudGVyID0gMDtcblxuICAgIC8qKiBVc2VkIHRvIGRldGVjdCBtZXRob2RzIG1hc3F1ZXJhZGluZyBhcyBuYXRpdmUuICovXG4gICAgdmFyIG1hc2tTcmNLZXkgPSAoZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgdWlkID0gL1teLl0rJC8uZXhlYyhjb3JlSnNEYXRhICYmIGNvcmVKc0RhdGEua2V5cyAmJiBjb3JlSnNEYXRhLmtleXMuSUVfUFJPVE8gfHwgJycpO1xuICAgICAgcmV0dXJuIHVpZCA/ICgnU3ltYm9sKHNyYylfMS4nICsgdWlkKSA6ICcnO1xuICAgIH0oKSk7XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gICAgICogW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gICAgICogb2YgdmFsdWVzLlxuICAgICAqL1xuICAgIHZhciBuYXRpdmVPYmplY3RUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4gICAgLyoqIFVzZWQgdG8gaW5mZXIgdGhlIGBPYmplY3RgIGNvbnN0cnVjdG9yLiAqL1xuICAgIHZhciBvYmplY3RDdG9yU3RyaW5nID0gZnVuY1RvU3RyaW5nLmNhbGwoT2JqZWN0KTtcblxuICAgIC8qKiBVc2VkIHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGBfYCByZWZlcmVuY2UgaW4gYF8ubm9Db25mbGljdGAuICovXG4gICAgdmFyIG9sZERhc2ggPSByb290Ll87XG5cbiAgICAvKiogVXNlZCB0byBkZXRlY3QgaWYgYSBtZXRob2QgaXMgbmF0aXZlLiAqL1xuICAgIHZhciByZUlzTmF0aXZlID0gUmVnRXhwKCdeJyArXG4gICAgICBmdW5jVG9TdHJpbmcuY2FsbChoYXNPd25Qcm9wZXJ0eSkucmVwbGFjZShyZVJlZ0V4cENoYXIsICdcXFxcJCYnKVxuICAgICAgLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFxcXFwoKXwgZm9yIC4rPyg/PVxcXFxcXF0pL2csICckMS4qPycpICsgJyQnXG4gICAgKTtcblxuICAgIC8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xuICAgIHZhciBCdWZmZXIgPSBtb2R1bGVFeHBvcnRzID8gY29udGV4dC5CdWZmZXIgOiB1bmRlZmluZWQsXG4gICAgICAgIFN5bWJvbCA9IGNvbnRleHQuU3ltYm9sLFxuICAgICAgICBVaW50OEFycmF5ID0gY29udGV4dC5VaW50OEFycmF5LFxuICAgICAgICBhbGxvY1Vuc2FmZSA9IEJ1ZmZlciA/IEJ1ZmZlci5hbGxvY1Vuc2FmZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZ2V0UHJvdG90eXBlID0gb3ZlckFyZyhPYmplY3QuZ2V0UHJvdG90eXBlT2YsIE9iamVjdCksXG4gICAgICAgIG9iamVjdENyZWF0ZSA9IE9iamVjdC5jcmVhdGUsXG4gICAgICAgIHByb3BlcnR5SXNFbnVtZXJhYmxlID0gb2JqZWN0UHJvdG8ucHJvcGVydHlJc0VudW1lcmFibGUsXG4gICAgICAgIHNwbGljZSA9IGFycmF5UHJvdG8uc3BsaWNlLFxuICAgICAgICBzcHJlYWRhYmxlU3ltYm9sID0gU3ltYm9sID8gU3ltYm9sLmlzQ29uY2F0U3ByZWFkYWJsZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgc3ltSXRlcmF0b3IgPSBTeW1ib2wgPyBTeW1ib2wuaXRlcmF0b3IgOiB1bmRlZmluZWQsXG4gICAgICAgIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4gICAgdmFyIGRlZmluZVByb3BlcnR5ID0gKGZ1bmN0aW9uKCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIGZ1bmMgPSBnZXROYXRpdmUoT2JqZWN0LCAnZGVmaW5lUHJvcGVydHknKTtcbiAgICAgICAgZnVuYyh7fSwgJycsIHt9KTtcbiAgICAgICAgcmV0dXJuIGZ1bmM7XG4gICAgICB9IGNhdGNoIChlKSB7fVxuICAgIH0oKSk7XG5cbiAgICAvKiogTW9ja2VkIGJ1aWx0LWlucy4gKi9cbiAgICB2YXIgY3R4Q2xlYXJUaW1lb3V0ID0gY29udGV4dC5jbGVhclRpbWVvdXQgIT09IHJvb3QuY2xlYXJUaW1lb3V0ICYmIGNvbnRleHQuY2xlYXJUaW1lb3V0LFxuICAgICAgICBjdHhOb3cgPSBEYXRlICYmIERhdGUubm93ICE9PSByb290LkRhdGUubm93ICYmIERhdGUubm93LFxuICAgICAgICBjdHhTZXRUaW1lb3V0ID0gY29udGV4dC5zZXRUaW1lb3V0ICE9PSByb290LnNldFRpbWVvdXQgJiYgY29udGV4dC5zZXRUaW1lb3V0O1xuXG4gICAgLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xuICAgIHZhciBuYXRpdmVDZWlsID0gTWF0aC5jZWlsLFxuICAgICAgICBuYXRpdmVGbG9vciA9IE1hdGguZmxvb3IsXG4gICAgICAgIG5hdGl2ZUdldFN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLFxuICAgICAgICBuYXRpdmVJc0J1ZmZlciA9IEJ1ZmZlciA/IEJ1ZmZlci5pc0J1ZmZlciA6IHVuZGVmaW5lZCxcbiAgICAgICAgbmF0aXZlSXNGaW5pdGUgPSBjb250ZXh0LmlzRmluaXRlLFxuICAgICAgICBuYXRpdmVKb2luID0gYXJyYXlQcm90by5qb2luLFxuICAgICAgICBuYXRpdmVLZXlzID0gb3ZlckFyZyhPYmplY3Qua2V5cywgT2JqZWN0KSxcbiAgICAgICAgbmF0aXZlTWF4ID0gTWF0aC5tYXgsXG4gICAgICAgIG5hdGl2ZU1pbiA9IE1hdGgubWluLFxuICAgICAgICBuYXRpdmVOb3cgPSBEYXRlLm5vdyxcbiAgICAgICAgbmF0aXZlUGFyc2VJbnQgPSBjb250ZXh0LnBhcnNlSW50LFxuICAgICAgICBuYXRpdmVSYW5kb20gPSBNYXRoLnJhbmRvbSxcbiAgICAgICAgbmF0aXZlUmV2ZXJzZSA9IGFycmF5UHJvdG8ucmV2ZXJzZTtcblxuICAgIC8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbiAgICB2YXIgRGF0YVZpZXcgPSBnZXROYXRpdmUoY29udGV4dCwgJ0RhdGFWaWV3JyksXG4gICAgICAgIE1hcCA9IGdldE5hdGl2ZShjb250ZXh0LCAnTWFwJyksXG4gICAgICAgIFByb21pc2UgPSBnZXROYXRpdmUoY29udGV4dCwgJ1Byb21pc2UnKSxcbiAgICAgICAgU2V0ID0gZ2V0TmF0aXZlKGNvbnRleHQsICdTZXQnKSxcbiAgICAgICAgV2Vha01hcCA9IGdldE5hdGl2ZShjb250ZXh0LCAnV2Vha01hcCcpLFxuICAgICAgICBuYXRpdmVDcmVhdGUgPSBnZXROYXRpdmUoT2JqZWN0LCAnY3JlYXRlJyk7XG5cbiAgICAvKiogVXNlZCB0byBzdG9yZSBmdW5jdGlvbiBtZXRhZGF0YS4gKi9cbiAgICB2YXIgbWV0YU1hcCA9IFdlYWtNYXAgJiYgbmV3IFdlYWtNYXA7XG5cbiAgICAvKiogVXNlZCB0byBsb29rdXAgdW5taW5pZmllZCBmdW5jdGlvbiBuYW1lcy4gKi9cbiAgICB2YXIgcmVhbE5hbWVzID0ge307XG5cbiAgICAvKiogVXNlZCB0byBkZXRlY3QgbWFwcywgc2V0cywgYW5kIHdlYWttYXBzLiAqL1xuICAgIHZhciBkYXRhVmlld0N0b3JTdHJpbmcgPSB0b1NvdXJjZShEYXRhVmlldyksXG4gICAgICAgIG1hcEN0b3JTdHJpbmcgPSB0b1NvdXJjZShNYXApLFxuICAgICAgICBwcm9taXNlQ3RvclN0cmluZyA9IHRvU291cmNlKFByb21pc2UpLFxuICAgICAgICBzZXRDdG9yU3RyaW5nID0gdG9Tb3VyY2UoU2V0KSxcbiAgICAgICAgd2Vha01hcEN0b3JTdHJpbmcgPSB0b1NvdXJjZShXZWFrTWFwKTtcblxuICAgIC8qKiBVc2VkIHRvIGNvbnZlcnQgc3ltYm9scyB0byBwcmltaXRpdmVzIGFuZCBzdHJpbmdzLiAqL1xuICAgIHZhciBzeW1ib2xQcm90byA9IFN5bWJvbCA/IFN5bWJvbC5wcm90b3R5cGUgOiB1bmRlZmluZWQsXG4gICAgICAgIHN5bWJvbFZhbHVlT2YgPSBzeW1ib2xQcm90byA/IHN5bWJvbFByb3RvLnZhbHVlT2YgOiB1bmRlZmluZWQsXG4gICAgICAgIHN5bWJvbFRvU3RyaW5nID0gc3ltYm9sUHJvdG8gPyBzeW1ib2xQcm90by50b1N0cmluZyA6IHVuZGVmaW5lZDtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBgbG9kYXNoYCBvYmplY3Qgd2hpY2ggd3JhcHMgYHZhbHVlYCB0byBlbmFibGUgaW1wbGljaXQgbWV0aG9kXG4gICAgICogY2hhaW4gc2VxdWVuY2VzLiBNZXRob2RzIHRoYXQgb3BlcmF0ZSBvbiBhbmQgcmV0dXJuIGFycmF5cywgY29sbGVjdGlvbnMsXG4gICAgICogYW5kIGZ1bmN0aW9ucyBjYW4gYmUgY2hhaW5lZCB0b2dldGhlci4gTWV0aG9kcyB0aGF0IHJldHJpZXZlIGEgc2luZ2xlIHZhbHVlXG4gICAgICogb3IgbWF5IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZSB3aWxsIGF1dG9tYXRpY2FsbHkgZW5kIHRoZSBjaGFpbiBzZXF1ZW5jZVxuICAgICAqIGFuZCByZXR1cm4gdGhlIHVud3JhcHBlZCB2YWx1ZS4gT3RoZXJ3aXNlLCB0aGUgdmFsdWUgbXVzdCBiZSB1bndyYXBwZWRcbiAgICAgKiB3aXRoIGBfI3ZhbHVlYC5cbiAgICAgKlxuICAgICAqIEV4cGxpY2l0IGNoYWluIHNlcXVlbmNlcywgd2hpY2ggbXVzdCBiZSB1bndyYXBwZWQgd2l0aCBgXyN2YWx1ZWAsIG1heSBiZVxuICAgICAqIGVuYWJsZWQgdXNpbmcgYF8uY2hhaW5gLlxuICAgICAqXG4gICAgICogVGhlIGV4ZWN1dGlvbiBvZiBjaGFpbmVkIG1ldGhvZHMgaXMgbGF6eSwgdGhhdCBpcywgaXQncyBkZWZlcnJlZCB1bnRpbFxuICAgICAqIGBfI3ZhbHVlYCBpcyBpbXBsaWNpdGx5IG9yIGV4cGxpY2l0bHkgY2FsbGVkLlxuICAgICAqXG4gICAgICogTGF6eSBldmFsdWF0aW9uIGFsbG93cyBzZXZlcmFsIG1ldGhvZHMgdG8gc3VwcG9ydCBzaG9ydGN1dCBmdXNpb24uXG4gICAgICogU2hvcnRjdXQgZnVzaW9uIGlzIGFuIG9wdGltaXphdGlvbiB0byBtZXJnZSBpdGVyYXRlZSBjYWxsczsgdGhpcyBhdm9pZHNcbiAgICAgKiB0aGUgY3JlYXRpb24gb2YgaW50ZXJtZWRpYXRlIGFycmF5cyBhbmQgY2FuIGdyZWF0bHkgcmVkdWNlIHRoZSBudW1iZXIgb2ZcbiAgICAgKiBpdGVyYXRlZSBleGVjdXRpb25zLiBTZWN0aW9ucyBvZiBhIGNoYWluIHNlcXVlbmNlIHF1YWxpZnkgZm9yIHNob3J0Y3V0XG4gICAgICogZnVzaW9uIGlmIHRoZSBzZWN0aW9uIGlzIGFwcGxpZWQgdG8gYW4gYXJyYXkgYW5kIGl0ZXJhdGVlcyBhY2NlcHQgb25seVxuICAgICAqIG9uZSBhcmd1bWVudC4gVGhlIGhldXJpc3RpYyBmb3Igd2hldGhlciBhIHNlY3Rpb24gcXVhbGlmaWVzIGZvciBzaG9ydGN1dFxuICAgICAqIGZ1c2lvbiBpcyBzdWJqZWN0IHRvIGNoYW5nZS5cbiAgICAgKlxuICAgICAqIENoYWluaW5nIGlzIHN1cHBvcnRlZCBpbiBjdXN0b20gYnVpbGRzIGFzIGxvbmcgYXMgdGhlIGBfI3ZhbHVlYCBtZXRob2QgaXNcbiAgICAgKiBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGluY2x1ZGVkIGluIHRoZSBidWlsZC5cbiAgICAgKlxuICAgICAqIEluIGFkZGl0aW9uIHRvIGxvZGFzaCBtZXRob2RzLCB3cmFwcGVycyBoYXZlIGBBcnJheWAgYW5kIGBTdHJpbmdgIG1ldGhvZHMuXG4gICAgICpcbiAgICAgKiBUaGUgd3JhcHBlciBgQXJyYXlgIG1ldGhvZHMgYXJlOlxuICAgICAqIGBjb25jYXRgLCBgam9pbmAsIGBwb3BgLCBgcHVzaGAsIGBzaGlmdGAsIGBzb3J0YCwgYHNwbGljZWAsIGFuZCBgdW5zaGlmdGBcbiAgICAgKlxuICAgICAqIFRoZSB3cmFwcGVyIGBTdHJpbmdgIG1ldGhvZHMgYXJlOlxuICAgICAqIGByZXBsYWNlYCBhbmQgYHNwbGl0YFxuICAgICAqXG4gICAgICogVGhlIHdyYXBwZXIgbWV0aG9kcyB0aGF0IHN1cHBvcnQgc2hvcnRjdXQgZnVzaW9uIGFyZTpcbiAgICAgKiBgYXRgLCBgY29tcGFjdGAsIGBkcm9wYCwgYGRyb3BSaWdodGAsIGBkcm9wV2hpbGVgLCBgZmlsdGVyYCwgYGZpbmRgLFxuICAgICAqIGBmaW5kTGFzdGAsIGBoZWFkYCwgYGluaXRpYWxgLCBgbGFzdGAsIGBtYXBgLCBgcmVqZWN0YCwgYHJldmVyc2VgLCBgc2xpY2VgLFxuICAgICAqIGB0YWlsYCwgYHRha2VgLCBgdGFrZVJpZ2h0YCwgYHRha2VSaWdodFdoaWxlYCwgYHRha2VXaGlsZWAsIGFuZCBgdG9BcnJheWBcbiAgICAgKlxuICAgICAqIFRoZSBjaGFpbmFibGUgd3JhcHBlciBtZXRob2RzIGFyZTpcbiAgICAgKiBgYWZ0ZXJgLCBgYXJ5YCwgYGFzc2lnbmAsIGBhc3NpZ25JbmAsIGBhc3NpZ25JbldpdGhgLCBgYXNzaWduV2l0aGAsIGBhdGAsXG4gICAgICogYGJlZm9yZWAsIGBiaW5kYCwgYGJpbmRBbGxgLCBgYmluZEtleWAsIGBjYXN0QXJyYXlgLCBgY2hhaW5gLCBgY2h1bmtgLFxuICAgICAqIGBjb21taXRgLCBgY29tcGFjdGAsIGBjb25jYXRgLCBgY29uZm9ybXNgLCBgY29uc3RhbnRgLCBgY291bnRCeWAsIGBjcmVhdGVgLFxuICAgICAqIGBjdXJyeWAsIGBkZWJvdW5jZWAsIGBkZWZhdWx0c2AsIGBkZWZhdWx0c0RlZXBgLCBgZGVmZXJgLCBgZGVsYXlgLFxuICAgICAqIGBkaWZmZXJlbmNlYCwgYGRpZmZlcmVuY2VCeWAsIGBkaWZmZXJlbmNlV2l0aGAsIGBkcm9wYCwgYGRyb3BSaWdodGAsXG4gICAgICogYGRyb3BSaWdodFdoaWxlYCwgYGRyb3BXaGlsZWAsIGBleHRlbmRgLCBgZXh0ZW5kV2l0aGAsIGBmaWxsYCwgYGZpbHRlcmAsXG4gICAgICogYGZsYXRNYXBgLCBgZmxhdE1hcERlZXBgLCBgZmxhdE1hcERlcHRoYCwgYGZsYXR0ZW5gLCBgZmxhdHRlbkRlZXBgLFxuICAgICAqIGBmbGF0dGVuRGVwdGhgLCBgZmxpcGAsIGBmbG93YCwgYGZsb3dSaWdodGAsIGBmcm9tUGFpcnNgLCBgZnVuY3Rpb25zYCxcbiAgICAgKiBgZnVuY3Rpb25zSW5gLCBgZ3JvdXBCeWAsIGBpbml0aWFsYCwgYGludGVyc2VjdGlvbmAsIGBpbnRlcnNlY3Rpb25CeWAsXG4gICAgICogYGludGVyc2VjdGlvbldpdGhgLCBgaW52ZXJ0YCwgYGludmVydEJ5YCwgYGludm9rZU1hcGAsIGBpdGVyYXRlZWAsIGBrZXlCeWAsXG4gICAgICogYGtleXNgLCBga2V5c0luYCwgYG1hcGAsIGBtYXBLZXlzYCwgYG1hcFZhbHVlc2AsIGBtYXRjaGVzYCwgYG1hdGNoZXNQcm9wZXJ0eWAsXG4gICAgICogYG1lbW9pemVgLCBgbWVyZ2VgLCBgbWVyZ2VXaXRoYCwgYG1ldGhvZGAsIGBtZXRob2RPZmAsIGBtaXhpbmAsIGBuZWdhdGVgLFxuICAgICAqIGBudGhBcmdgLCBgb21pdGAsIGBvbWl0QnlgLCBgb25jZWAsIGBvcmRlckJ5YCwgYG92ZXJgLCBgb3ZlckFyZ3NgLFxuICAgICAqIGBvdmVyRXZlcnlgLCBgb3ZlclNvbWVgLCBgcGFydGlhbGAsIGBwYXJ0aWFsUmlnaHRgLCBgcGFydGl0aW9uYCwgYHBpY2tgLFxuICAgICAqIGBwaWNrQnlgLCBgcGxhbnRgLCBgcHJvcGVydHlgLCBgcHJvcGVydHlPZmAsIGBwdWxsYCwgYHB1bGxBbGxgLCBgcHVsbEFsbEJ5YCxcbiAgICAgKiBgcHVsbEFsbFdpdGhgLCBgcHVsbEF0YCwgYHB1c2hgLCBgcmFuZ2VgLCBgcmFuZ2VSaWdodGAsIGByZWFyZ2AsIGByZWplY3RgLFxuICAgICAqIGByZW1vdmVgLCBgcmVzdGAsIGByZXZlcnNlYCwgYHNhbXBsZVNpemVgLCBgc2V0YCwgYHNldFdpdGhgLCBgc2h1ZmZsZWAsXG4gICAgICogYHNsaWNlYCwgYHNvcnRgLCBgc29ydEJ5YCwgYHNwbGljZWAsIGBzcHJlYWRgLCBgdGFpbGAsIGB0YWtlYCwgYHRha2VSaWdodGAsXG4gICAgICogYHRha2VSaWdodFdoaWxlYCwgYHRha2VXaGlsZWAsIGB0YXBgLCBgdGhyb3R0bGVgLCBgdGhydWAsIGB0b0FycmF5YCxcbiAgICAgKiBgdG9QYWlyc2AsIGB0b1BhaXJzSW5gLCBgdG9QYXRoYCwgYHRvUGxhaW5PYmplY3RgLCBgdHJhbnNmb3JtYCwgYHVuYXJ5YCxcbiAgICAgKiBgdW5pb25gLCBgdW5pb25CeWAsIGB1bmlvbldpdGhgLCBgdW5pcWAsIGB1bmlxQnlgLCBgdW5pcVdpdGhgLCBgdW5zZXRgLFxuICAgICAqIGB1bnNoaWZ0YCwgYHVuemlwYCwgYHVuemlwV2l0aGAsIGB1cGRhdGVgLCBgdXBkYXRlV2l0aGAsIGB2YWx1ZXNgLFxuICAgICAqIGB2YWx1ZXNJbmAsIGB3aXRob3V0YCwgYHdyYXBgLCBgeG9yYCwgYHhvckJ5YCwgYHhvcldpdGhgLCBgemlwYCxcbiAgICAgKiBgemlwT2JqZWN0YCwgYHppcE9iamVjdERlZXBgLCBhbmQgYHppcFdpdGhgXG4gICAgICpcbiAgICAgKiBUaGUgd3JhcHBlciBtZXRob2RzIHRoYXQgYXJlICoqbm90KiogY2hhaW5hYmxlIGJ5IGRlZmF1bHQgYXJlOlxuICAgICAqIGBhZGRgLCBgYXR0ZW1wdGAsIGBjYW1lbENhc2VgLCBgY2FwaXRhbGl6ZWAsIGBjZWlsYCwgYGNsYW1wYCwgYGNsb25lYCxcbiAgICAgKiBgY2xvbmVEZWVwYCwgYGNsb25lRGVlcFdpdGhgLCBgY2xvbmVXaXRoYCwgYGNvbmZvcm1zVG9gLCBgZGVidXJyYCxcbiAgICAgKiBgZGVmYXVsdFRvYCwgYGRpdmlkZWAsIGBlYWNoYCwgYGVhY2hSaWdodGAsIGBlbmRzV2l0aGAsIGBlcWAsIGBlc2NhcGVgLFxuICAgICAqIGBlc2NhcGVSZWdFeHBgLCBgZXZlcnlgLCBgZmluZGAsIGBmaW5kSW5kZXhgLCBgZmluZEtleWAsIGBmaW5kTGFzdGAsXG4gICAgICogYGZpbmRMYXN0SW5kZXhgLCBgZmluZExhc3RLZXlgLCBgZmlyc3RgLCBgZmxvb3JgLCBgZm9yRWFjaGAsIGBmb3JFYWNoUmlnaHRgLFxuICAgICAqIGBmb3JJbmAsIGBmb3JJblJpZ2h0YCwgYGZvck93bmAsIGBmb3JPd25SaWdodGAsIGBnZXRgLCBgZ3RgLCBgZ3RlYCwgYGhhc2AsXG4gICAgICogYGhhc0luYCwgYGhlYWRgLCBgaWRlbnRpdHlgLCBgaW5jbHVkZXNgLCBgaW5kZXhPZmAsIGBpblJhbmdlYCwgYGludm9rZWAsXG4gICAgICogYGlzQXJndW1lbnRzYCwgYGlzQXJyYXlgLCBgaXNBcnJheUJ1ZmZlcmAsIGBpc0FycmF5TGlrZWAsIGBpc0FycmF5TGlrZU9iamVjdGAsXG4gICAgICogYGlzQm9vbGVhbmAsIGBpc0J1ZmZlcmAsIGBpc0RhdGVgLCBgaXNFbGVtZW50YCwgYGlzRW1wdHlgLCBgaXNFcXVhbGAsXG4gICAgICogYGlzRXF1YWxXaXRoYCwgYGlzRXJyb3JgLCBgaXNGaW5pdGVgLCBgaXNGdW5jdGlvbmAsIGBpc0ludGVnZXJgLCBgaXNMZW5ndGhgLFxuICAgICAqIGBpc01hcGAsIGBpc01hdGNoYCwgYGlzTWF0Y2hXaXRoYCwgYGlzTmFOYCwgYGlzTmF0aXZlYCwgYGlzTmlsYCwgYGlzTnVsbGAsXG4gICAgICogYGlzTnVtYmVyYCwgYGlzT2JqZWN0YCwgYGlzT2JqZWN0TGlrZWAsIGBpc1BsYWluT2JqZWN0YCwgYGlzUmVnRXhwYCxcbiAgICAgKiBgaXNTYWZlSW50ZWdlcmAsIGBpc1NldGAsIGBpc1N0cmluZ2AsIGBpc1VuZGVmaW5lZGAsIGBpc1R5cGVkQXJyYXlgLFxuICAgICAqIGBpc1dlYWtNYXBgLCBgaXNXZWFrU2V0YCwgYGpvaW5gLCBga2ViYWJDYXNlYCwgYGxhc3RgLCBgbGFzdEluZGV4T2ZgLFxuICAgICAqIGBsb3dlckNhc2VgLCBgbG93ZXJGaXJzdGAsIGBsdGAsIGBsdGVgLCBgbWF4YCwgYG1heEJ5YCwgYG1lYW5gLCBgbWVhbkJ5YCxcbiAgICAgKiBgbWluYCwgYG1pbkJ5YCwgYG11bHRpcGx5YCwgYG5vQ29uZmxpY3RgLCBgbm9vcGAsIGBub3dgLCBgbnRoYCwgYHBhZGAsXG4gICAgICogYHBhZEVuZGAsIGBwYWRTdGFydGAsIGBwYXJzZUludGAsIGBwb3BgLCBgcmFuZG9tYCwgYHJlZHVjZWAsIGByZWR1Y2VSaWdodGAsXG4gICAgICogYHJlcGVhdGAsIGByZXN1bHRgLCBgcm91bmRgLCBgcnVuSW5Db250ZXh0YCwgYHNhbXBsZWAsIGBzaGlmdGAsIGBzaXplYCxcbiAgICAgKiBgc25ha2VDYXNlYCwgYHNvbWVgLCBgc29ydGVkSW5kZXhgLCBgc29ydGVkSW5kZXhCeWAsIGBzb3J0ZWRMYXN0SW5kZXhgLFxuICAgICAqIGBzb3J0ZWRMYXN0SW5kZXhCeWAsIGBzdGFydENhc2VgLCBgc3RhcnRzV2l0aGAsIGBzdHViQXJyYXlgLCBgc3R1YkZhbHNlYCxcbiAgICAgKiBgc3R1Yk9iamVjdGAsIGBzdHViU3RyaW5nYCwgYHN0dWJUcnVlYCwgYHN1YnRyYWN0YCwgYHN1bWAsIGBzdW1CeWAsXG4gICAgICogYHRlbXBsYXRlYCwgYHRpbWVzYCwgYHRvRmluaXRlYCwgYHRvSW50ZWdlcmAsIGB0b0pTT05gLCBgdG9MZW5ndGhgLFxuICAgICAqIGB0b0xvd2VyYCwgYHRvTnVtYmVyYCwgYHRvU2FmZUludGVnZXJgLCBgdG9TdHJpbmdgLCBgdG9VcHBlcmAsIGB0cmltYCxcbiAgICAgKiBgdHJpbUVuZGAsIGB0cmltU3RhcnRgLCBgdHJ1bmNhdGVgLCBgdW5lc2NhcGVgLCBgdW5pcXVlSWRgLCBgdXBwZXJDYXNlYCxcbiAgICAgKiBgdXBwZXJGaXJzdGAsIGB2YWx1ZWAsIGFuZCBgd29yZHNgXG4gICAgICpcbiAgICAgKiBAbmFtZSBfXG4gICAgICogQGNvbnN0cnVjdG9yXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAgaW4gYSBgbG9kYXNoYCBpbnN0YW5jZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gc3F1YXJlKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICogbjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgd3JhcHBlZCA9IF8oWzEsIDIsIDNdKTtcbiAgICAgKlxuICAgICAqIC8vIFJldHVybnMgYW4gdW53cmFwcGVkIHZhbHVlLlxuICAgICAqIHdyYXBwZWQucmVkdWNlKF8uYWRkKTtcbiAgICAgKiAvLyA9PiA2XG4gICAgICpcbiAgICAgKiAvLyBSZXR1cm5zIGEgd3JhcHBlZCB2YWx1ZS5cbiAgICAgKiB2YXIgc3F1YXJlcyA9IHdyYXBwZWQubWFwKHNxdWFyZSk7XG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXkoc3F1YXJlcyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheShzcXVhcmVzLnZhbHVlKCkpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBsb2Rhc2godmFsdWUpIHtcbiAgICAgIGlmIChpc09iamVjdExpa2UodmFsdWUpICYmICFpc0FycmF5KHZhbHVlKSAmJiAhKHZhbHVlIGluc3RhbmNlb2YgTGF6eVdyYXBwZXIpKSB7XG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIExvZGFzaFdyYXBwZXIpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdfX3dyYXBwZWRfXycpKSB7XG4gICAgICAgICAgcmV0dXJuIHdyYXBwZXJDbG9uZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgTG9kYXNoV3JhcHBlcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY3JlYXRlYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFzc2lnbmluZ1xuICAgICAqIHByb3BlcnRpZXMgdG8gdGhlIGNyZWF0ZWQgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gcHJvdG8gVGhlIG9iamVjdCB0byBpbmhlcml0IGZyb20uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKi9cbiAgICB2YXIgYmFzZUNyZWF0ZSA9IChmdW5jdGlvbigpIHtcbiAgICAgIGZ1bmN0aW9uIG9iamVjdCgpIHt9XG4gICAgICByZXR1cm4gZnVuY3Rpb24ocHJvdG8pIHtcbiAgICAgICAgaWYgKCFpc09iamVjdChwcm90bykpIHtcbiAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9iamVjdENyZWF0ZSkge1xuICAgICAgICAgIHJldHVybiBvYmplY3RDcmVhdGUocHJvdG8pO1xuICAgICAgICB9XG4gICAgICAgIG9iamVjdC5wcm90b3R5cGUgPSBwcm90bztcbiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBvYmplY3Q7XG4gICAgICAgIG9iamVjdC5wcm90b3R5cGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH0oKSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZnVuY3Rpb24gd2hvc2UgcHJvdG90eXBlIGNoYWluIHNlcXVlbmNlIHdyYXBwZXJzIGluaGVyaXQgZnJvbS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUxvZGFzaCgpIHtcbiAgICAgIC8vIE5vIG9wZXJhdGlvbiBwZXJmb3JtZWQuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgY29uc3RydWN0b3IgZm9yIGNyZWF0aW5nIGBsb2Rhc2hgIHdyYXBwZXIgb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtjaGFpbkFsbF0gRW5hYmxlIGV4cGxpY2l0IG1ldGhvZCBjaGFpbiBzZXF1ZW5jZXMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gTG9kYXNoV3JhcHBlcih2YWx1ZSwgY2hhaW5BbGwpIHtcbiAgICAgIHRoaXMuX193cmFwcGVkX18gPSB2YWx1ZTtcbiAgICAgIHRoaXMuX19hY3Rpb25zX18gPSBbXTtcbiAgICAgIHRoaXMuX19jaGFpbl9fID0gISFjaGFpbkFsbDtcbiAgICAgIHRoaXMuX19pbmRleF9fID0gMDtcbiAgICAgIHRoaXMuX192YWx1ZXNfXyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBCeSBkZWZhdWx0LCB0aGUgdGVtcGxhdGUgZGVsaW1pdGVycyB1c2VkIGJ5IGxvZGFzaCBhcmUgbGlrZSB0aG9zZSBpblxuICAgICAqIGVtYmVkZGVkIFJ1YnkgKEVSQikgYXMgd2VsbCBhcyBFUzIwMTUgdGVtcGxhdGUgc3RyaW5ncy4gQ2hhbmdlIHRoZVxuICAgICAqIGZvbGxvd2luZyB0ZW1wbGF0ZSBzZXR0aW5ncyB0byB1c2UgYWx0ZXJuYXRpdmUgZGVsaW1pdGVycy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEB0eXBlIHtPYmplY3R9XG4gICAgICovXG4gICAgbG9kYXNoLnRlbXBsYXRlU2V0dGluZ3MgPSB7XG5cbiAgICAgIC8qKlxuICAgICAgICogVXNlZCB0byBkZXRlY3QgYGRhdGFgIHByb3BlcnR5IHZhbHVlcyB0byBiZSBIVE1MLWVzY2FwZWQuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgICAgICogQHR5cGUge1JlZ0V4cH1cbiAgICAgICAqL1xuICAgICAgJ2VzY2FwZSc6IHJlRXNjYXBlLFxuXG4gICAgICAvKipcbiAgICAgICAqIFVzZWQgdG8gZGV0ZWN0IGNvZGUgdG8gYmUgZXZhbHVhdGVkLlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICAgICAqIEB0eXBlIHtSZWdFeHB9XG4gICAgICAgKi9cbiAgICAgICdldmFsdWF0ZSc6IHJlRXZhbHVhdGUsXG5cbiAgICAgIC8qKlxuICAgICAgICogVXNlZCB0byBkZXRlY3QgYGRhdGFgIHByb3BlcnR5IHZhbHVlcyB0byBpbmplY3QuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgICAgICogQHR5cGUge1JlZ0V4cH1cbiAgICAgICAqL1xuICAgICAgJ2ludGVycG9sYXRlJzogcmVJbnRlcnBvbGF0ZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBVc2VkIHRvIHJlZmVyZW5jZSB0aGUgZGF0YSBvYmplY3QgaW4gdGhlIHRlbXBsYXRlIHRleHQuXG4gICAgICAgKlxuICAgICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgICAqL1xuICAgICAgJ3ZhcmlhYmxlJzogJycsXG5cbiAgICAgIC8qKlxuICAgICAgICogVXNlZCB0byBpbXBvcnQgdmFyaWFibGVzIGludG8gdGhlIGNvbXBpbGVkIHRlbXBsYXRlLlxuICAgICAgICpcbiAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICAgICAqIEB0eXBlIHtPYmplY3R9XG4gICAgICAgKi9cbiAgICAgICdpbXBvcnRzJzoge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgYGxvZGFzaGAgZnVuY3Rpb24uXG4gICAgICAgICAqXG4gICAgICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3MuaW1wb3J0c1xuICAgICAgICAgKiBAdHlwZSB7RnVuY3Rpb259XG4gICAgICAgICAqL1xuICAgICAgICAnXyc6IGxvZGFzaFxuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBFbnN1cmUgd3JhcHBlcnMgYXJlIGluc3RhbmNlcyBvZiBgYmFzZUxvZGFzaGAuXG4gICAgbG9kYXNoLnByb3RvdHlwZSA9IGJhc2VMb2Rhc2gucHJvdG90eXBlO1xuICAgIGxvZGFzaC5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBsb2Rhc2g7XG5cbiAgICBMb2Rhc2hXcmFwcGVyLnByb3RvdHlwZSA9IGJhc2VDcmVhdGUoYmFzZUxvZGFzaC5wcm90b3R5cGUpO1xuICAgIExvZGFzaFdyYXBwZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTG9kYXNoV3JhcHBlcjtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBsYXp5IHdyYXBwZXIgb2JqZWN0IHdoaWNoIHdyYXBzIGB2YWx1ZWAgdG8gZW5hYmxlIGxhenkgZXZhbHVhdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQGNvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gd3JhcC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBMYXp5V3JhcHBlcih2YWx1ZSkge1xuICAgICAgdGhpcy5fX3dyYXBwZWRfXyA9IHZhbHVlO1xuICAgICAgdGhpcy5fX2FjdGlvbnNfXyA9IFtdO1xuICAgICAgdGhpcy5fX2Rpcl9fID0gMTtcbiAgICAgIHRoaXMuX19maWx0ZXJlZF9fID0gZmFsc2U7XG4gICAgICB0aGlzLl9faXRlcmF0ZWVzX18gPSBbXTtcbiAgICAgIHRoaXMuX190YWtlQ291bnRfXyA9IE1BWF9BUlJBWV9MRU5HVEg7XG4gICAgICB0aGlzLl9fdmlld3NfXyA9IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiB0aGUgbGF6eSB3cmFwcGVyIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgY2xvbmVcbiAgICAgKiBAbWVtYmVyT2YgTGF6eVdyYXBwZXJcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgYExhenlXcmFwcGVyYCBvYmplY3QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGF6eUNsb25lKCkge1xuICAgICAgdmFyIHJlc3VsdCA9IG5ldyBMYXp5V3JhcHBlcih0aGlzLl9fd3JhcHBlZF9fKTtcbiAgICAgIHJlc3VsdC5fX2FjdGlvbnNfXyA9IGNvcHlBcnJheSh0aGlzLl9fYWN0aW9uc19fKTtcbiAgICAgIHJlc3VsdC5fX2Rpcl9fID0gdGhpcy5fX2Rpcl9fO1xuICAgICAgcmVzdWx0Ll9fZmlsdGVyZWRfXyA9IHRoaXMuX19maWx0ZXJlZF9fO1xuICAgICAgcmVzdWx0Ll9faXRlcmF0ZWVzX18gPSBjb3B5QXJyYXkodGhpcy5fX2l0ZXJhdGVlc19fKTtcbiAgICAgIHJlc3VsdC5fX3Rha2VDb3VudF9fID0gdGhpcy5fX3Rha2VDb3VudF9fO1xuICAgICAgcmVzdWx0Ll9fdmlld3NfXyA9IGNvcHlBcnJheSh0aGlzLl9fdmlld3NfXyk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldmVyc2VzIHRoZSBkaXJlY3Rpb24gb2YgbGF6eSBpdGVyYXRpb24uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIHJldmVyc2VcbiAgICAgKiBAbWVtYmVyT2YgTGF6eVdyYXBwZXJcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgcmV2ZXJzZWQgYExhenlXcmFwcGVyYCBvYmplY3QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGF6eVJldmVyc2UoKSB7XG4gICAgICBpZiAodGhpcy5fX2ZpbHRlcmVkX18pIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBMYXp5V3JhcHBlcih0aGlzKTtcbiAgICAgICAgcmVzdWx0Ll9fZGlyX18gPSAtMTtcbiAgICAgICAgcmVzdWx0Ll9fZmlsdGVyZWRfXyA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSB0aGlzLmNsb25lKCk7XG4gICAgICAgIHJlc3VsdC5fX2Rpcl9fICo9IC0xO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeHRyYWN0cyB0aGUgdW53cmFwcGVkIHZhbHVlIGZyb20gaXRzIGxhenkgd3JhcHBlci5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgdmFsdWVcbiAgICAgKiBAbWVtYmVyT2YgTGF6eVdyYXBwZXJcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgdW53cmFwcGVkIHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxhenlWYWx1ZSgpIHtcbiAgICAgIHZhciBhcnJheSA9IHRoaXMuX193cmFwcGVkX18udmFsdWUoKSxcbiAgICAgICAgICBkaXIgPSB0aGlzLl9fZGlyX18sXG4gICAgICAgICAgaXNBcnIgPSBpc0FycmF5KGFycmF5KSxcbiAgICAgICAgICBpc1JpZ2h0ID0gZGlyIDwgMCxcbiAgICAgICAgICBhcnJMZW5ndGggPSBpc0FyciA/IGFycmF5Lmxlbmd0aCA6IDAsXG4gICAgICAgICAgdmlldyA9IGdldFZpZXcoMCwgYXJyTGVuZ3RoLCB0aGlzLl9fdmlld3NfXyksXG4gICAgICAgICAgc3RhcnQgPSB2aWV3LnN0YXJ0LFxuICAgICAgICAgIGVuZCA9IHZpZXcuZW5kLFxuICAgICAgICAgIGxlbmd0aCA9IGVuZCAtIHN0YXJ0LFxuICAgICAgICAgIGluZGV4ID0gaXNSaWdodCA/IGVuZCA6IChzdGFydCAtIDEpLFxuICAgICAgICAgIGl0ZXJhdGVlcyA9IHRoaXMuX19pdGVyYXRlZXNfXyxcbiAgICAgICAgICBpdGVyTGVuZ3RoID0gaXRlcmF0ZWVzLmxlbmd0aCxcbiAgICAgICAgICByZXNJbmRleCA9IDAsXG4gICAgICAgICAgdGFrZUNvdW50ID0gbmF0aXZlTWluKGxlbmd0aCwgdGhpcy5fX3Rha2VDb3VudF9fKTtcblxuICAgICAgaWYgKCFpc0FyciB8fCAoIWlzUmlnaHQgJiYgYXJyTGVuZ3RoID09IGxlbmd0aCAmJiB0YWtlQ291bnQgPT0gbGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gYmFzZVdyYXBwZXJWYWx1ZShhcnJheSwgdGhpcy5fX2FjdGlvbnNfXyk7XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gW107XG5cbiAgICAgIG91dGVyOlxuICAgICAgd2hpbGUgKGxlbmd0aC0tICYmIHJlc0luZGV4IDwgdGFrZUNvdW50KSB7XG4gICAgICAgIGluZGV4ICs9IGRpcjtcblxuICAgICAgICB2YXIgaXRlckluZGV4ID0gLTEsXG4gICAgICAgICAgICB2YWx1ZSA9IGFycmF5W2luZGV4XTtcblxuICAgICAgICB3aGlsZSAoKytpdGVySW5kZXggPCBpdGVyTGVuZ3RoKSB7XG4gICAgICAgICAgdmFyIGRhdGEgPSBpdGVyYXRlZXNbaXRlckluZGV4XSxcbiAgICAgICAgICAgICAgaXRlcmF0ZWUgPSBkYXRhLml0ZXJhdGVlLFxuICAgICAgICAgICAgICB0eXBlID0gZGF0YS50eXBlLFxuICAgICAgICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlKHZhbHVlKTtcblxuICAgICAgICAgIGlmICh0eXBlID09IExBWllfTUFQX0ZMQUcpIHtcbiAgICAgICAgICAgIHZhbHVlID0gY29tcHV0ZWQ7XG4gICAgICAgICAgfSBlbHNlIGlmICghY29tcHV0ZWQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlID09IExBWllfRklMVEVSX0ZMQUcpIHtcbiAgICAgICAgICAgICAgY29udGludWUgb3V0ZXI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBicmVhayBvdXRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0W3Jlc0luZGV4KytdID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSBgTGF6eVdyYXBwZXJgIGlzIGFuIGluc3RhbmNlIG9mIGBiYXNlTG9kYXNoYC5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUgPSBiYXNlQ3JlYXRlKGJhc2VMb2Rhc2gucHJvdG90eXBlKTtcbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBMYXp5V3JhcHBlcjtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBoYXNoIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQGNvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2VudHJpZXNdIFRoZSBrZXktdmFsdWUgcGFpcnMgdG8gY2FjaGUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gSGFzaChlbnRyaWVzKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgICAgICB0aGlzLnNldChlbnRyeVswXSwgZW50cnlbMV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIGhhc2guXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGNsZWFyXG4gICAgICogQG1lbWJlck9mIEhhc2hcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYXNoQ2xlYXIoKSB7XG4gICAgICB0aGlzLl9fZGF0YV9fID0gbmF0aXZlQ3JlYXRlID8gbmF0aXZlQ3JlYXRlKG51bGwpIDoge307XG4gICAgICB0aGlzLnNpemUgPSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBoYXNoLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBkZWxldGVcbiAgICAgKiBAbWVtYmVyT2YgSGFzaFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBoYXNoIFRoZSBoYXNoIHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGVudHJ5IHdhcyByZW1vdmVkLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGFzaERlbGV0ZShrZXkpIHtcbiAgICAgIHZhciByZXN1bHQgPSB0aGlzLmhhcyhrZXkpICYmIGRlbGV0ZSB0aGlzLl9fZGF0YV9fW2tleV07XG4gICAgICB0aGlzLnNpemUgLT0gcmVzdWx0ID8gMSA6IDA7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGhhc2ggdmFsdWUgZm9yIGBrZXlgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBnZXRcbiAgICAgKiBAbWVtYmVyT2YgSGFzaFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBlbnRyeSB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYXNoR2V0KGtleSkge1xuICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICAgICAgaWYgKG5hdGl2ZUNyZWF0ZSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gZGF0YVtrZXldO1xuICAgICAgICByZXR1cm4gcmVzdWx0ID09PSBIQVNIX1VOREVGSU5FRCA/IHVuZGVmaW5lZCA6IHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsIGtleSkgPyBkYXRhW2tleV0gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGEgaGFzaCB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBoYXNcbiAgICAgKiBAbWVtYmVyT2YgSGFzaFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYXNoSGFzKGtleSkge1xuICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICAgICAgcmV0dXJuIG5hdGl2ZUNyZWF0ZSA/IChkYXRhW2tleV0gIT09IHVuZGVmaW5lZCkgOiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsIGtleSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgaGFzaCBga2V5YCB0byBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBzZXRcbiAgICAgKiBAbWVtYmVyT2YgSGFzaFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBoYXNoIGluc3RhbmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGhhc2hTZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICAgICAgdGhpcy5zaXplICs9IHRoaXMuaGFzKGtleSkgPyAwIDogMTtcbiAgICAgIGRhdGFba2V5XSA9IChuYXRpdmVDcmVhdGUgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCkgPyBIQVNIX1VOREVGSU5FRCA6IHZhbHVlO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gQWRkIG1ldGhvZHMgdG8gYEhhc2hgLlxuICAgIEhhc2gucHJvdG90eXBlLmNsZWFyID0gaGFzaENsZWFyO1xuICAgIEhhc2gucHJvdG90eXBlWydkZWxldGUnXSA9IGhhc2hEZWxldGU7XG4gICAgSGFzaC5wcm90b3R5cGUuZ2V0ID0gaGFzaEdldDtcbiAgICBIYXNoLnByb3RvdHlwZS5oYXMgPSBoYXNoSGFzO1xuICAgIEhhc2gucHJvdG90eXBlLnNldCA9IGhhc2hTZXQ7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGxpc3QgY2FjaGUgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBMaXN0Q2FjaGUoZW50cmllcykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gZW50cmllcyA9PSBudWxsID8gMCA6IGVudHJpZXMubGVuZ3RoO1xuXG4gICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgZW50cnkgPSBlbnRyaWVzW2luZGV4XTtcbiAgICAgICAgdGhpcy5zZXQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGFsbCBrZXktdmFsdWUgZW50cmllcyBmcm9tIHRoZSBsaXN0IGNhY2hlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBjbGVhclxuICAgICAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBsaXN0Q2FjaGVDbGVhcigpIHtcbiAgICAgIHRoaXMuX19kYXRhX18gPSBbXTtcbiAgICAgIHRoaXMuc2l6ZSA9IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIGxpc3QgY2FjaGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGRlbGV0ZVxuICAgICAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGVudHJ5IHdhcyByZW1vdmVkLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGlzdENhY2hlRGVsZXRlKGtleSkge1xuICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fLFxuICAgICAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIGxhc3RJbmRleCA9IGRhdGEubGVuZ3RoIC0gMTtcbiAgICAgIGlmIChpbmRleCA9PSBsYXN0SW5kZXgpIHtcbiAgICAgICAgZGF0YS5wb3AoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNwbGljZS5jYWxsKGRhdGEsIGluZGV4LCAxKTtcbiAgICAgIH1cbiAgICAgIC0tdGhpcy5zaXplO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbGlzdCBjYWNoZSB2YWx1ZSBmb3IgYGtleWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGdldFxuICAgICAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGlzdENhY2hlR2V0KGtleSkge1xuICAgICAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fLFxuICAgICAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgICAgIHJldHVybiBpbmRleCA8IDAgPyB1bmRlZmluZWQgOiBkYXRhW2luZGV4XVsxXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYSBsaXN0IGNhY2hlIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGhhc1xuICAgICAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGlzdENhY2hlSGFzKGtleSkge1xuICAgICAgcmV0dXJuIGFzc29jSW5kZXhPZih0aGlzLl9fZGF0YV9fLCBrZXkpID4gLTE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgbGlzdCBjYWNoZSBga2V5YCB0byBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBzZXRcbiAgICAgKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGxpc3QgY2FjaGUgaW5zdGFuY2UuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbGlzdENhY2hlU2V0KGtleSwgdmFsdWUpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgICAgICBpbmRleCA9IGFzc29jSW5kZXhPZihkYXRhLCBrZXkpO1xuXG4gICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgICsrdGhpcy5zaXplO1xuICAgICAgICBkYXRhLnB1c2goW2tleSwgdmFsdWVdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdGFbaW5kZXhdWzFdID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvLyBBZGQgbWV0aG9kcyB0byBgTGlzdENhY2hlYC5cbiAgICBMaXN0Q2FjaGUucHJvdG90eXBlLmNsZWFyID0gbGlzdENhY2hlQ2xlYXI7XG4gICAgTGlzdENhY2hlLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBsaXN0Q2FjaGVEZWxldGU7XG4gICAgTGlzdENhY2hlLnByb3RvdHlwZS5nZXQgPSBsaXN0Q2FjaGVHZXQ7XG4gICAgTGlzdENhY2hlLnByb3RvdHlwZS5oYXMgPSBsaXN0Q2FjaGVIYXM7XG4gICAgTGlzdENhY2hlLnByb3RvdHlwZS5zZXQgPSBsaXN0Q2FjaGVTZXQ7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbWFwIGNhY2hlIG9iamVjdCB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBjb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIE1hcENhY2hlKGVudHJpZXMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA/IDAgOiBlbnRyaWVzLmxlbmd0aDtcblxuICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gZW50cmllc1tpbmRleF07XG4gICAgICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgbWFwLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBjbGVhclxuICAgICAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hcENhY2hlQ2xlYXIoKSB7XG4gICAgICB0aGlzLnNpemUgPSAwO1xuICAgICAgdGhpcy5fX2RhdGFfXyA9IHtcbiAgICAgICAgJ2hhc2gnOiBuZXcgSGFzaCxcbiAgICAgICAgJ21hcCc6IG5ldyAoTWFwIHx8IExpc3RDYWNoZSksXG4gICAgICAgICdzdHJpbmcnOiBuZXcgSGFzaFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgbWFwLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBkZWxldGVcbiAgICAgKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGVudHJ5IHdhcyByZW1vdmVkLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWFwQ2FjaGVEZWxldGUoa2V5KSB7XG4gICAgICB2YXIgcmVzdWx0ID0gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpWydkZWxldGUnXShrZXkpO1xuICAgICAgdGhpcy5zaXplIC09IHJlc3VsdCA/IDEgOiAwO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBtYXAgdmFsdWUgZm9yIGBrZXlgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBnZXRcbiAgICAgKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWFwQ2FjaGVHZXQoa2V5KSB7XG4gICAgICByZXR1cm4gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmdldChrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBhIG1hcCB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBoYXNcbiAgICAgKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWFwQ2FjaGVIYXMoa2V5KSB7XG4gICAgICByZXR1cm4gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmhhcyhrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIG1hcCBga2V5YCB0byBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbmFtZSBzZXRcbiAgICAgKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHNldC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbWFwIGNhY2hlIGluc3RhbmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hcENhY2hlU2V0KGtleSwgdmFsdWUpIHtcbiAgICAgIHZhciBkYXRhID0gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLFxuICAgICAgICAgIHNpemUgPSBkYXRhLnNpemU7XG5cbiAgICAgIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgdGhpcy5zaXplICs9IGRhdGEuc2l6ZSA9PSBzaXplID8gMCA6IDE7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvLyBBZGQgbWV0aG9kcyB0byBgTWFwQ2FjaGVgLlxuICAgIE1hcENhY2hlLnByb3RvdHlwZS5jbGVhciA9IG1hcENhY2hlQ2xlYXI7XG4gICAgTWFwQ2FjaGUucHJvdG90eXBlWydkZWxldGUnXSA9IG1hcENhY2hlRGVsZXRlO1xuICAgIE1hcENhY2hlLnByb3RvdHlwZS5nZXQgPSBtYXBDYWNoZUdldDtcbiAgICBNYXBDYWNoZS5wcm90b3R5cGUuaGFzID0gbWFwQ2FjaGVIYXM7XG4gICAgTWFwQ2FjaGUucHJvdG90eXBlLnNldCA9IG1hcENhY2hlU2V0O1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IGNhY2hlIG9iamVjdCB0byBzdG9yZSB1bmlxdWUgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbdmFsdWVzXSBUaGUgdmFsdWVzIHRvIGNhY2hlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIFNldENhY2hlKHZhbHVlcykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gdmFsdWVzID09IG51bGwgPyAwIDogdmFsdWVzLmxlbmd0aDtcblxuICAgICAgdGhpcy5fX2RhdGFfXyA9IG5ldyBNYXBDYWNoZTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuYWRkKHZhbHVlc1tpbmRleF0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgYHZhbHVlYCB0byB0aGUgYXJyYXkgY2FjaGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGFkZFxuICAgICAqIEBtZW1iZXJPZiBTZXRDYWNoZVxuICAgICAqIEBhbGlhcyBwdXNoXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2FjaGUuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2FjaGUgaW5zdGFuY2UuXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2V0Q2FjaGVBZGQodmFsdWUpIHtcbiAgICAgIHRoaXMuX19kYXRhX18uc2V0KHZhbHVlLCBIQVNIX1VOREVGSU5FRCk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBpbiB0aGUgYXJyYXkgY2FjaGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGhhc1xuICAgICAqIEBtZW1iZXJPZiBTZXRDYWNoZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBmb3VuZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNldENhY2hlSGFzKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModmFsdWUpO1xuICAgIH1cblxuICAgIC8vIEFkZCBtZXRob2RzIHRvIGBTZXRDYWNoZWAuXG4gICAgU2V0Q2FjaGUucHJvdG90eXBlLmFkZCA9IFNldENhY2hlLnByb3RvdHlwZS5wdXNoID0gc2V0Q2FjaGVBZGQ7XG4gICAgU2V0Q2FjaGUucHJvdG90eXBlLmhhcyA9IHNldENhY2hlSGFzO1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHN0YWNrIGNhY2hlIG9iamVjdCB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBjb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIFN0YWNrKGVudHJpZXMpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyA9IG5ldyBMaXN0Q2FjaGUoZW50cmllcyk7XG4gICAgICB0aGlzLnNpemUgPSBkYXRhLnNpemU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgc3RhY2suXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGNsZWFyXG4gICAgICogQG1lbWJlck9mIFN0YWNrXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3RhY2tDbGVhcigpIHtcbiAgICAgIHRoaXMuX19kYXRhX18gPSBuZXcgTGlzdENhY2hlO1xuICAgICAgdGhpcy5zaXplID0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgc3RhY2suXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBuYW1lIGRlbGV0ZVxuICAgICAqIEBtZW1iZXJPZiBTdGFja1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdGFja0RlbGV0ZShrZXkpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgICAgICByZXN1bHQgPSBkYXRhWydkZWxldGUnXShrZXkpO1xuXG4gICAgICB0aGlzLnNpemUgPSBkYXRhLnNpemU7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHN0YWNrIHZhbHVlIGZvciBga2V5YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgZ2V0XG4gICAgICogQG1lbWJlck9mIFN0YWNrXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0YWNrR2V0KGtleSkge1xuICAgICAgcmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KGtleSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGEgc3RhY2sgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgaGFzXG4gICAgICogQG1lbWJlck9mIFN0YWNrXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0YWNrSGFzKGtleSkge1xuICAgICAgcmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKGtleSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgc3RhY2sgYGtleWAgdG8gYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQG5hbWUgc2V0XG4gICAgICogQG1lbWJlck9mIFN0YWNrXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIHN0YWNrIGNhY2hlIGluc3RhbmNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0YWNrU2V0KGtleSwgdmFsdWUpIHtcbiAgICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgICAgIGlmIChkYXRhIGluc3RhbmNlb2YgTGlzdENhY2hlKSB7XG4gICAgICAgIHZhciBwYWlycyA9IGRhdGEuX19kYXRhX187XG4gICAgICAgIGlmICghTWFwIHx8IChwYWlycy5sZW5ndGggPCBMQVJHRV9BUlJBWV9TSVpFIC0gMSkpIHtcbiAgICAgICAgICBwYWlycy5wdXNoKFtrZXksIHZhbHVlXSk7XG4gICAgICAgICAgdGhpcy5zaXplID0gKytkYXRhLnNpemU7XG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgZGF0YSA9IHRoaXMuX19kYXRhX18gPSBuZXcgTWFwQ2FjaGUocGFpcnMpO1xuICAgICAgfVxuICAgICAgZGF0YS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICB0aGlzLnNpemUgPSBkYXRhLnNpemU7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvLyBBZGQgbWV0aG9kcyB0byBgU3RhY2tgLlxuICAgIFN0YWNrLnByb3RvdHlwZS5jbGVhciA9IHN0YWNrQ2xlYXI7XG4gICAgU3RhY2sucHJvdG90eXBlWydkZWxldGUnXSA9IHN0YWNrRGVsZXRlO1xuICAgIFN0YWNrLnByb3RvdHlwZS5nZXQgPSBzdGFja0dldDtcbiAgICBTdGFjay5wcm90b3R5cGUuaGFzID0gc3RhY2tIYXM7XG4gICAgU3RhY2sucHJvdG90eXBlLnNldCA9IHN0YWNrU2V0O1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiB0aGUgYXJyYXktbGlrZSBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGluaGVyaXRlZCBTcGVjaWZ5IHJldHVybmluZyBpbmhlcml0ZWQgcHJvcGVydHkgbmFtZXMuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhcnJheUxpa2VLZXlzKHZhbHVlLCBpbmhlcml0ZWQpIHtcbiAgICAgIHZhciBpc0FyciA9IGlzQXJyYXkodmFsdWUpLFxuICAgICAgICAgIGlzQXJnID0gIWlzQXJyICYmIGlzQXJndW1lbnRzKHZhbHVlKSxcbiAgICAgICAgICBpc0J1ZmYgPSAhaXNBcnIgJiYgIWlzQXJnICYmIGlzQnVmZmVyKHZhbHVlKSxcbiAgICAgICAgICBpc1R5cGUgPSAhaXNBcnIgJiYgIWlzQXJnICYmICFpc0J1ZmYgJiYgaXNUeXBlZEFycmF5KHZhbHVlKSxcbiAgICAgICAgICBza2lwSW5kZXhlcyA9IGlzQXJyIHx8IGlzQXJnIHx8IGlzQnVmZiB8fCBpc1R5cGUsXG4gICAgICAgICAgcmVzdWx0ID0gc2tpcEluZGV4ZXMgPyBiYXNlVGltZXModmFsdWUubGVuZ3RoLCBTdHJpbmcpIDogW10sXG4gICAgICAgICAgbGVuZ3RoID0gcmVzdWx0Lmxlbmd0aDtcblxuICAgICAgZm9yICh2YXIga2V5IGluIHZhbHVlKSB7XG4gICAgICAgIGlmICgoaW5oZXJpdGVkIHx8IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGtleSkpICYmXG4gICAgICAgICAgICAhKHNraXBJbmRleGVzICYmIChcbiAgICAgICAgICAgICAgIC8vIFNhZmFyaSA5IGhhcyBlbnVtZXJhYmxlIGBhcmd1bWVudHMubGVuZ3RoYCBpbiBzdHJpY3QgbW9kZS5cbiAgICAgICAgICAgICAgIGtleSA9PSAnbGVuZ3RoJyB8fFxuICAgICAgICAgICAgICAgLy8gTm9kZS5qcyAwLjEwIGhhcyBlbnVtZXJhYmxlIG5vbi1pbmRleCBwcm9wZXJ0aWVzIG9uIGJ1ZmZlcnMuXG4gICAgICAgICAgICAgICAoaXNCdWZmICYmIChrZXkgPT0gJ29mZnNldCcgfHwga2V5ID09ICdwYXJlbnQnKSkgfHxcbiAgICAgICAgICAgICAgIC8vIFBoYW50b21KUyAyIGhhcyBlbnVtZXJhYmxlIG5vbi1pbmRleCBwcm9wZXJ0aWVzIG9uIHR5cGVkIGFycmF5cy5cbiAgICAgICAgICAgICAgIChpc1R5cGUgJiYgKGtleSA9PSAnYnVmZmVyJyB8fCBrZXkgPT0gJ2J5dGVMZW5ndGgnIHx8IGtleSA9PSAnYnl0ZU9mZnNldCcpKSB8fFxuICAgICAgICAgICAgICAgLy8gU2tpcCBpbmRleCBwcm9wZXJ0aWVzLlxuICAgICAgICAgICAgICAgaXNJbmRleChrZXksIGxlbmd0aClcbiAgICAgICAgICAgICkpKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uc2FtcGxlYCBmb3IgYXJyYXlzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2FtcGxlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByYW5kb20gZWxlbWVudC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhcnJheVNhbXBsZShhcnJheSkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgIHJldHVybiBsZW5ndGggPyBhcnJheVtiYXNlUmFuZG9tKDAsIGxlbmd0aCAtIDEpXSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uc2FtcGxlU2l6ZWAgZm9yIGFycmF5cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNhbXBsZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIHNhbXBsZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHJhbmRvbSBlbGVtZW50cy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhcnJheVNhbXBsZVNpemUoYXJyYXksIG4pIHtcbiAgICAgIHJldHVybiBzaHVmZmxlU2VsZihjb3B5QXJyYXkoYXJyYXkpLCBiYXNlQ2xhbXAobiwgMCwgYXJyYXkubGVuZ3RoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLnNodWZmbGVgIGZvciBhcnJheXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzaHVmZmxlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHNodWZmbGVkIGFycmF5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFycmF5U2h1ZmZsZShhcnJheSkge1xuICAgICAgcmV0dXJuIHNodWZmbGVTZWxmKGNvcHlBcnJheShhcnJheSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgYXNzaWduVmFsdWVgIGV4Y2VwdCB0aGF0IGl0IGRvZXNuJ3QgYXNzaWduXG4gICAgICogYHVuZGVmaW5lZGAgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICAgICAgaWYgKCh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmICFlcShvYmplY3Rba2V5XSwgdmFsdWUpKSB8fFxuICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpKSB7XG4gICAgICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFzc2lnbnMgYHZhbHVlYCB0byBga2V5YCBvZiBgb2JqZWN0YCBpZiB0aGUgZXhpc3RpbmcgdmFsdWUgaXMgbm90IGVxdWl2YWxlbnRcbiAgICAgKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gICAgICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgICAgIGlmICghKGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpICYmIGVxKG9ialZhbHVlLCB2YWx1ZSkpIHx8XG4gICAgICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgIShrZXkgaW4gb2JqZWN0KSkpIHtcbiAgICAgICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgaW5kZXggYXQgd2hpY2ggdGhlIGBrZXlgIGlzIGZvdW5kIGluIGBhcnJheWAgb2Yga2V5LXZhbHVlIHBhaXJzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IGtleSBUaGUga2V5IHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhc3NvY0luZGV4T2YoYXJyYXksIGtleSkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICBpZiAoZXEoYXJyYXlbbGVuZ3RoXVswXSwga2V5KSkge1xuICAgICAgICAgIHJldHVybiBsZW5ndGg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZ2dyZWdhdGVzIGVsZW1lbnRzIG9mIGBjb2xsZWN0aW9uYCBvbiBgYWNjdW11bGF0b3JgIHdpdGgga2V5cyB0cmFuc2Zvcm1lZFxuICAgICAqIGJ5IGBpdGVyYXRlZWAgYW5kIHZhbHVlcyBzZXQgYnkgYHNldHRlcmAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzZXR0ZXIgVGhlIGZ1bmN0aW9uIHRvIHNldCBgYWNjdW11bGF0b3JgIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgaXRlcmF0ZWUgdG8gdHJhbnNmb3JtIGtleXMuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGFjY3VtdWxhdG9yIFRoZSBpbml0aWFsIGFnZ3JlZ2F0ZWQgb2JqZWN0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgYWNjdW11bGF0b3JgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VBZ2dyZWdhdG9yKGNvbGxlY3Rpb24sIHNldHRlciwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yKSB7XG4gICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKSB7XG4gICAgICAgIHNldHRlcihhY2N1bXVsYXRvciwgdmFsdWUsIGl0ZXJhdGVlKHZhbHVlKSwgY29sbGVjdGlvbik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5hc3NpZ25gIHdpdGhvdXQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc291cmNlc1xuICAgICAqIG9yIGBjdXN0b21pemVyYCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUFzc2lnbihvYmplY3QsIHNvdXJjZSkge1xuICAgICAgcmV0dXJuIG9iamVjdCAmJiBjb3B5T2JqZWN0KHNvdXJjZSwga2V5cyhzb3VyY2UpLCBvYmplY3QpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmFzc2lnbkluYCB3aXRob3V0IHN1cHBvcnQgZm9yIG11bHRpcGxlIHNvdXJjZXNcbiAgICAgKiBvciBgY3VzdG9taXplcmAgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VBc3NpZ25JbihvYmplY3QsIHNvdXJjZSkge1xuICAgICAgcmV0dXJuIG9iamVjdCAmJiBjb3B5T2JqZWN0KHNvdXJjZSwga2V5c0luKHNvdXJjZSksIG9iamVjdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGFzc2lnblZhbHVlYCBhbmQgYGFzc2lnbk1lcmdlVmFsdWVgIHdpdGhvdXRcbiAgICAgKiB2YWx1ZSBjaGVja3MuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYXNzaWduLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgICAgIGlmIChrZXkgPT0gJ19fcHJvdG9fXycgJiYgZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHtcbiAgICAgICAgICAnY29uZmlndXJhYmxlJzogdHJ1ZSxcbiAgICAgICAgICAnZW51bWVyYWJsZSc6IHRydWUsXG4gICAgICAgICAgJ3ZhbHVlJzogdmFsdWUsXG4gICAgICAgICAgJ3dyaXRhYmxlJzogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9iamVjdFtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uYXRgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaW5kaXZpZHVhbCBwYXRocy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRocyBUaGUgcHJvcGVydHkgcGF0aHMgdG8gcGljay5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHBpY2tlZCBlbGVtZW50cy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlQXQob2JqZWN0LCBwYXRocykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gcGF0aHMubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCksXG4gICAgICAgICAgc2tpcCA9IG9iamVjdCA9PSBudWxsO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICByZXN1bHRbaW5kZXhdID0gc2tpcCA/IHVuZGVmaW5lZCA6IGdldChvYmplY3QsIHBhdGhzW2luZGV4XSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNsYW1wYCB3aGljaCBkb2Vzbid0IGNvZXJjZSBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXIgVGhlIG51bWJlciB0byBjbGFtcC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xvd2VyXSBUaGUgbG93ZXIgYm91bmQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHVwcGVyIFRoZSB1cHBlciBib3VuZC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBjbGFtcGVkIG51bWJlci5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlQ2xhbXAobnVtYmVyLCBsb3dlciwgdXBwZXIpIHtcbiAgICAgIGlmIChudW1iZXIgPT09IG51bWJlcikge1xuICAgICAgICBpZiAodXBwZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG51bWJlciA9IG51bWJlciA8PSB1cHBlciA/IG51bWJlciA6IHVwcGVyO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgbnVtYmVyID0gbnVtYmVyID49IGxvd2VyID8gbnVtYmVyIDogbG93ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudW1iZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY2xvbmVgIGFuZCBgXy5jbG9uZURlZXBgIHdoaWNoIHRyYWNrc1xuICAgICAqIHRyYXZlcnNlZCBvYmplY3RzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuXG4gICAgICogIDEgLSBEZWVwIGNsb25lXG4gICAgICogIDIgLSBGbGF0dGVuIGluaGVyaXRlZCBwcm9wZXJ0aWVzXG4gICAgICogIDQgLSBDbG9uZSBzeW1ib2xzXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY2xvbmluZy5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2tleV0gVGhlIGtleSBvZiBgdmFsdWVgLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgcGFyZW50IG9iamVjdCBvZiBgdmFsdWVgLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgb2JqZWN0cyBhbmQgdGhlaXIgY2xvbmUgY291bnRlcnBhcnRzLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUNsb25lKHZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBrZXksIG9iamVjdCwgc3RhY2spIHtcbiAgICAgIHZhciByZXN1bHQsXG4gICAgICAgICAgaXNEZWVwID0gYml0bWFzayAmIENMT05FX0RFRVBfRkxBRyxcbiAgICAgICAgICBpc0ZsYXQgPSBiaXRtYXNrICYgQ0xPTkVfRkxBVF9GTEFHLFxuICAgICAgICAgIGlzRnVsbCA9IGJpdG1hc2sgJiBDTE9ORV9TWU1CT0xTX0ZMQUc7XG5cbiAgICAgIGlmIChjdXN0b21pemVyKSB7XG4gICAgICAgIHJlc3VsdCA9IG9iamVjdCA/IGN1c3RvbWl6ZXIodmFsdWUsIGtleSwgb2JqZWN0LCBzdGFjaykgOiBjdXN0b21pemVyKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKCFpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgdmFyIGlzQXJyID0gaXNBcnJheSh2YWx1ZSk7XG4gICAgICBpZiAoaXNBcnIpIHtcbiAgICAgICAgcmVzdWx0ID0gaW5pdENsb25lQXJyYXkodmFsdWUpO1xuICAgICAgICBpZiAoIWlzRGVlcCkge1xuICAgICAgICAgIHJldHVybiBjb3B5QXJyYXkodmFsdWUsIHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciB0YWcgPSBnZXRUYWcodmFsdWUpLFxuICAgICAgICAgICAgaXNGdW5jID0gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZztcblxuICAgICAgICBpZiAoaXNCdWZmZXIodmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGNsb25lQnVmZmVyKHZhbHVlLCBpc0RlZXApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YWcgPT0gb2JqZWN0VGFnIHx8IHRhZyA9PSBhcmdzVGFnIHx8IChpc0Z1bmMgJiYgIW9iamVjdCkpIHtcbiAgICAgICAgICByZXN1bHQgPSAoaXNGbGF0IHx8IGlzRnVuYykgPyB7fSA6IGluaXRDbG9uZU9iamVjdCh2YWx1ZSk7XG4gICAgICAgICAgaWYgKCFpc0RlZXApIHtcbiAgICAgICAgICAgIHJldHVybiBpc0ZsYXRcbiAgICAgICAgICAgICAgPyBjb3B5U3ltYm9sc0luKHZhbHVlLCBiYXNlQXNzaWduSW4ocmVzdWx0LCB2YWx1ZSkpXG4gICAgICAgICAgICAgIDogY29weVN5bWJvbHModmFsdWUsIGJhc2VBc3NpZ24ocmVzdWx0LCB2YWx1ZSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIWNsb25lYWJsZVRhZ3NbdGFnXSkge1xuICAgICAgICAgICAgcmV0dXJuIG9iamVjdCA/IHZhbHVlIDoge307XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdCA9IGluaXRDbG9uZUJ5VGFnKHZhbHVlLCB0YWcsIGlzRGVlcCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIENoZWNrIGZvciBjaXJjdWxhciByZWZlcmVuY2VzIGFuZCByZXR1cm4gaXRzIGNvcnJlc3BvbmRpbmcgY2xvbmUuXG4gICAgICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2spO1xuICAgICAgdmFyIHN0YWNrZWQgPSBzdGFjay5nZXQodmFsdWUpO1xuICAgICAgaWYgKHN0YWNrZWQpIHtcbiAgICAgICAgcmV0dXJuIHN0YWNrZWQ7XG4gICAgICB9XG4gICAgICBzdGFjay5zZXQodmFsdWUsIHJlc3VsdCk7XG5cbiAgICAgIGlmIChpc1NldCh2YWx1ZSkpIHtcbiAgICAgICAgdmFsdWUuZm9yRWFjaChmdW5jdGlvbihzdWJWYWx1ZSkge1xuICAgICAgICAgIHJlc3VsdC5hZGQoYmFzZUNsb25lKHN1YlZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdWJWYWx1ZSwgdmFsdWUsIHN0YWNrKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChpc01hcCh2YWx1ZSkpIHtcbiAgICAgICAgdmFsdWUuZm9yRWFjaChmdW5jdGlvbihzdWJWYWx1ZSwga2V5KSB7XG4gICAgICAgICAgcmVzdWx0LnNldChrZXksIGJhc2VDbG9uZShzdWJWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwga2V5LCB2YWx1ZSwgc3RhY2spKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHZhciBrZXlzRnVuYyA9IGlzRnVsbFxuICAgICAgICA/IChpc0ZsYXQgPyBnZXRBbGxLZXlzSW4gOiBnZXRBbGxLZXlzKVxuICAgICAgICA6IChpc0ZsYXQgPyBrZXlzSW4gOiBrZXlzKTtcblxuICAgICAgdmFyIHByb3BzID0gaXNBcnIgPyB1bmRlZmluZWQgOiBrZXlzRnVuYyh2YWx1ZSk7XG4gICAgICBhcnJheUVhY2gocHJvcHMgfHwgdmFsdWUsIGZ1bmN0aW9uKHN1YlZhbHVlLCBrZXkpIHtcbiAgICAgICAgaWYgKHByb3BzKSB7XG4gICAgICAgICAga2V5ID0gc3ViVmFsdWU7XG4gICAgICAgICAgc3ViVmFsdWUgPSB2YWx1ZVtrZXldO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJlY3Vyc2l2ZWx5IHBvcHVsYXRlIGNsb25lIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAgIGFzc2lnblZhbHVlKHJlc3VsdCwga2V5LCBiYXNlQ2xvbmUoc3ViVmFsdWUsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGtleSwgdmFsdWUsIHN0YWNrKSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY29uZm9ybXNgIHdoaWNoIGRvZXNuJ3QgY2xvbmUgYHNvdXJjZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBwcm9wZXJ0eSBwcmVkaWNhdGVzIHRvIGNvbmZvcm0gdG8uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc3BlYyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlQ29uZm9ybXMoc291cmNlKSB7XG4gICAgICB2YXIgcHJvcHMgPSBrZXlzKHNvdXJjZSk7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBiYXNlQ29uZm9ybXNUbyhvYmplY3QsIHNvdXJjZSwgcHJvcHMpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5jb25mb3Jtc1RvYCB3aGljaCBhY2NlcHRzIGBwcm9wc2AgdG8gY2hlY2suXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBwcm9wZXJ0eSBwcmVkaWNhdGVzIHRvIGNvbmZvcm0gdG8uXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBvYmplY3RgIGNvbmZvcm1zLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUNvbmZvcm1zVG8ob2JqZWN0LCBzb3VyY2UsIHByb3BzKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiAhbGVuZ3RoO1xuICAgICAgfVxuICAgICAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG4gICAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgdmFyIGtleSA9IHByb3BzW2xlbmd0aF0sXG4gICAgICAgICAgICBwcmVkaWNhdGUgPSBzb3VyY2Vba2V5XSxcbiAgICAgICAgICAgIHZhbHVlID0gb2JqZWN0W2tleV07XG5cbiAgICAgICAgaWYgKCh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpIHx8ICFwcmVkaWNhdGUodmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5kZWxheWAgYW5kIGBfLmRlZmVyYCB3aGljaCBhY2NlcHRzIGBhcmdzYFxuICAgICAqIHRvIHByb3ZpZGUgdG8gYGZ1bmNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWxheS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gd2FpdCBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheSBpbnZvY2F0aW9uLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFyZ3MgVGhlIGFyZ3VtZW50cyB0byBwcm92aWRlIHRvIGBmdW5jYC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfE9iamVjdH0gUmV0dXJucyB0aGUgdGltZXIgaWQgb3IgdGltZW91dCBvYmplY3QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZURlbGF5KGZ1bmMsIHdhaXQsIGFyZ3MpIHtcbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBmdW5jLmFwcGx5KHVuZGVmaW5lZCwgYXJncyk7IH0sIHdhaXQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZHMgbGlrZSBgXy5kaWZmZXJlbmNlYCB3aXRob3V0IHN1cHBvcnRcbiAgICAgKiBmb3IgZXhjbHVkaW5nIG11bHRpcGxlIGFycmF5cyBvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byBleGNsdWRlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VEaWZmZXJlbmNlKGFycmF5LCB2YWx1ZXMsIGl0ZXJhdGVlLCBjb21wYXJhdG9yKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBpbmNsdWRlcyA9IGFycmF5SW5jbHVkZXMsXG4gICAgICAgICAgaXNDb21tb24gPSB0cnVlLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBbXSxcbiAgICAgICAgICB2YWx1ZXNMZW5ndGggPSB2YWx1ZXMubGVuZ3RoO1xuXG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKGl0ZXJhdGVlKSB7XG4gICAgICAgIHZhbHVlcyA9IGFycmF5TWFwKHZhbHVlcywgYmFzZVVuYXJ5KGl0ZXJhdGVlKSk7XG4gICAgICB9XG4gICAgICBpZiAoY29tcGFyYXRvcikge1xuICAgICAgICBpbmNsdWRlcyA9IGFycmF5SW5jbHVkZXNXaXRoO1xuICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAodmFsdWVzLmxlbmd0aCA+PSBMQVJHRV9BUlJBWV9TSVpFKSB7XG4gICAgICAgIGluY2x1ZGVzID0gY2FjaGVIYXM7XG4gICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICAgIHZhbHVlcyA9IG5ldyBTZXRDYWNoZSh2YWx1ZXMpO1xuICAgICAgfVxuICAgICAgb3V0ZXI6XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF0sXG4gICAgICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlID09IG51bGwgPyB2YWx1ZSA6IGl0ZXJhdGVlKHZhbHVlKTtcblxuICAgICAgICB2YWx1ZSA9IChjb21wYXJhdG9yIHx8IHZhbHVlICE9PSAwKSA/IHZhbHVlIDogMDtcbiAgICAgICAgaWYgKGlzQ29tbW9uICYmIGNvbXB1dGVkID09PSBjb21wdXRlZCkge1xuICAgICAgICAgIHZhciB2YWx1ZXNJbmRleCA9IHZhbHVlc0xlbmd0aDtcbiAgICAgICAgICB3aGlsZSAodmFsdWVzSW5kZXgtLSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlc1t2YWx1ZXNJbmRleF0gPT09IGNvbXB1dGVkKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlIG91dGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIWluY2x1ZGVzKHZhbHVlcywgY29tcHV0ZWQsIGNvbXBhcmF0b3IpKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZvckVhY2hgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fE9iamVjdH0gUmV0dXJucyBgY29sbGVjdGlvbmAuXG4gICAgICovXG4gICAgdmFyIGJhc2VFYWNoID0gY3JlYXRlQmFzZUVhY2goYmFzZUZvck93bik7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mb3JFYWNoUmlnaHRgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fE9iamVjdH0gUmV0dXJucyBgY29sbGVjdGlvbmAuXG4gICAgICovXG4gICAgdmFyIGJhc2VFYWNoUmlnaHQgPSBjcmVhdGVCYXNlRWFjaChiYXNlRm9yT3duUmlnaHQsIHRydWUpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZXZlcnlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbGwgZWxlbWVudHMgcGFzcyB0aGUgcHJlZGljYXRlIGNoZWNrLFxuICAgICAqICBlbHNlIGBmYWxzZWBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRXZlcnkoY29sbGVjdGlvbiwgcHJlZGljYXRlKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gdHJ1ZTtcbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbikge1xuICAgICAgICByZXN1bHQgPSAhIXByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZHMgbGlrZSBgXy5tYXhgIGFuZCBgXy5taW5gIHdoaWNoIGFjY2VwdHMgYVxuICAgICAqIGBjb21wYXJhdG9yYCB0byBkZXRlcm1pbmUgdGhlIGV4dHJlbXVtIHZhbHVlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY29tcGFyYXRvciBUaGUgY29tcGFyYXRvciB1c2VkIHRvIGNvbXBhcmUgdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBleHRyZW11bSB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRXh0cmVtdW0oYXJyYXksIGl0ZXJhdGVlLCBjb21wYXJhdG9yKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICAgIGN1cnJlbnQgPSBpdGVyYXRlZSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnQgIT0gbnVsbCAmJiAoY29tcHV0ZWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/IChjdXJyZW50ID09PSBjdXJyZW50ICYmICFpc1N5bWJvbChjdXJyZW50KSlcbiAgICAgICAgICAgICAgOiBjb21wYXJhdG9yKGN1cnJlbnQsIGNvbXB1dGVkKVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgIHZhciBjb21wdXRlZCA9IGN1cnJlbnQsXG4gICAgICAgICAgICAgIHJlc3VsdCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZpbGxgIHdpdGhvdXQgYW4gaXRlcmF0ZWUgY2FsbCBndWFyZC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGZpbGwuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZmlsbCBgYXJyYXlgIHdpdGguXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtlbmQ9YXJyYXkubGVuZ3RoXSBUaGUgZW5kIHBvc2l0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VGaWxsKGFycmF5LCB2YWx1ZSwgc3RhcnQsIGVuZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgICAgc3RhcnQgPSB0b0ludGVnZXIoc3RhcnQpO1xuICAgICAgaWYgKHN0YXJ0IDwgMCkge1xuICAgICAgICBzdGFydCA9IC1zdGFydCA+IGxlbmd0aCA/IDAgOiAobGVuZ3RoICsgc3RhcnQpO1xuICAgICAgfVxuICAgICAgZW5kID0gKGVuZCA9PT0gdW5kZWZpbmVkIHx8IGVuZCA+IGxlbmd0aCkgPyBsZW5ndGggOiB0b0ludGVnZXIoZW5kKTtcbiAgICAgIGlmIChlbmQgPCAwKSB7XG4gICAgICAgIGVuZCArPSBsZW5ndGg7XG4gICAgICB9XG4gICAgICBlbmQgPSBzdGFydCA+IGVuZCA/IDAgOiB0b0xlbmd0aChlbmQpO1xuICAgICAgd2hpbGUgKHN0YXJ0IDwgZW5kKSB7XG4gICAgICAgIGFycmF5W3N0YXJ0KytdID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZmlsdGVyYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmaWx0ZXJlZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRmlsdGVyKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgICAgYmFzZUVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICAgIGlmIChwcmVkaWNhdGUodmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZsYXR0ZW5gIHdpdGggc3VwcG9ydCBmb3IgcmVzdHJpY3RpbmcgZmxhdHRlbmluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGZsYXR0ZW4uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGRlcHRoIFRoZSBtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtwcmVkaWNhdGU9aXNGbGF0dGVuYWJsZV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc1N0cmljdF0gUmVzdHJpY3QgdG8gdmFsdWVzIHRoYXQgcGFzcyBgcHJlZGljYXRlYCBjaGVja3MuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3Jlc3VsdD1bXV0gVGhlIGluaXRpYWwgcmVzdWx0IHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZsYXR0ZW5lZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRmxhdHRlbihhcnJheSwgZGVwdGgsIHByZWRpY2F0ZSwgaXNTdHJpY3QsIHJlc3VsdCkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgICBwcmVkaWNhdGUgfHwgKHByZWRpY2F0ZSA9IGlzRmxhdHRlbmFibGUpO1xuICAgICAgcmVzdWx0IHx8IChyZXN1bHQgPSBbXSk7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgICAgaWYgKGRlcHRoID4gMCAmJiBwcmVkaWNhdGUodmFsdWUpKSB7XG4gICAgICAgICAgaWYgKGRlcHRoID4gMSkge1xuICAgICAgICAgICAgLy8gUmVjdXJzaXZlbHkgZmxhdHRlbiBhcnJheXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgICAgIGJhc2VGbGF0dGVuKHZhbHVlLCBkZXB0aCAtIDEsIHByZWRpY2F0ZSwgaXNTdHJpY3QsIHJlc3VsdCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFycmF5UHVzaChyZXN1bHQsIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzU3RyaWN0KSB7XG4gICAgICAgICAgcmVzdWx0W3Jlc3VsdC5sZW5ndGhdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGJhc2VGb3JPd25gIHdoaWNoIGl0ZXJhdGVzIG92ZXIgYG9iamVjdGBcbiAgICAgKiBwcm9wZXJ0aWVzIHJldHVybmVkIGJ5IGBrZXlzRnVuY2AgYW5kIGludm9rZXMgYGl0ZXJhdGVlYCBmb3IgZWFjaCBwcm9wZXJ0eS5cbiAgICAgKiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXQgaXRlcmF0aW9uIGVhcmx5IGJ5IGV4cGxpY2l0bHkgcmV0dXJuaW5nIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBrZXlzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBrZXlzIG9mIGBvYmplY3RgLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICovXG4gICAgdmFyIGJhc2VGb3IgPSBjcmVhdGVCYXNlRm9yKCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2UgYGJhc2VGb3JgIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgcHJvcGVydGllc1xuICAgICAqIGluIHRoZSBvcHBvc2l0ZSBvcmRlci5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGtleXNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgb2YgYG9iamVjdGAuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICB2YXIgYmFzZUZvclJpZ2h0ID0gY3JlYXRlQmFzZUZvcih0cnVlKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZvck93bmAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRm9yT3duKG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBvYmplY3QgJiYgYmFzZUZvcihvYmplY3QsIGl0ZXJhdGVlLCBrZXlzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mb3JPd25SaWdodGAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlRm9yT3duUmlnaHQob2JqZWN0LCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIG9iamVjdCAmJiBiYXNlRm9yUmlnaHQob2JqZWN0LCBpdGVyYXRlZSwga2V5cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZnVuY3Rpb25zYCB3aGljaCBjcmVhdGVzIGFuIGFycmF5IG9mXG4gICAgICogYG9iamVjdGAgZnVuY3Rpb24gcHJvcGVydHkgbmFtZXMgZmlsdGVyZWQgZnJvbSBgcHJvcHNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgbmFtZXMgdG8gZmlsdGVyLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgZnVuY3Rpb24gbmFtZXMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUZ1bmN0aW9ucyhvYmplY3QsIHByb3BzKSB7XG4gICAgICByZXR1cm4gYXJyYXlGaWx0ZXIocHJvcHMsIGZ1bmN0aW9uKGtleSkge1xuICAgICAgICByZXR1cm4gaXNGdW5jdGlvbihvYmplY3Rba2V5XSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5nZXRgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVmYXVsdCB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXNvbHZlZCB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlR2V0KG9iamVjdCwgcGF0aCkge1xuICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG5cbiAgICAgIHZhciBpbmRleCA9IDAsXG4gICAgICAgICAgbGVuZ3RoID0gcGF0aC5sZW5ndGg7XG5cbiAgICAgIHdoaWxlIChvYmplY3QgIT0gbnVsbCAmJiBpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICBvYmplY3QgPSBvYmplY3RbdG9LZXkocGF0aFtpbmRleCsrXSldO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChpbmRleCAmJiBpbmRleCA9PSBsZW5ndGgpID8gb2JqZWN0IDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBnZXRBbGxLZXlzYCBhbmQgYGdldEFsbEtleXNJbmAgd2hpY2ggdXNlc1xuICAgICAqIGBrZXlzRnVuY2AgYW5kIGBzeW1ib2xzRnVuY2AgdG8gZ2V0IHRoZSBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIGFuZFxuICAgICAqIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBrZXlzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBrZXlzIG9mIGBvYmplY3RgLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHN5bWJvbHNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlR2V0QWxsS2V5cyhvYmplY3QsIGtleXNGdW5jLCBzeW1ib2xzRnVuYykge1xuICAgICAgdmFyIHJlc3VsdCA9IGtleXNGdW5jKG9iamVjdCk7XG4gICAgICByZXR1cm4gaXNBcnJheShvYmplY3QpID8gcmVzdWx0IDogYXJyYXlQdXNoKHJlc3VsdCwgc3ltYm9sc0Z1bmMob2JqZWN0KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGdldFRhZ2Agd2l0aG91dCBmYWxsYmFja3MgZm9yIGJ1Z2d5IGVudmlyb25tZW50cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgYHRvU3RyaW5nVGFnYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlR2V0VGFnKHZhbHVlKSB7XG4gICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZFRhZyA6IG51bGxUYWc7XG4gICAgICB9XG4gICAgICByZXR1cm4gKHN5bVRvU3RyaW5nVGFnICYmIHN5bVRvU3RyaW5nVGFnIGluIE9iamVjdCh2YWx1ZSkpXG4gICAgICAgID8gZ2V0UmF3VGFnKHZhbHVlKVxuICAgICAgICA6IG9iamVjdFRvU3RyaW5nKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5ndGAgd2hpY2ggZG9lc24ndCBjb2VyY2UgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZ3JlYXRlciB0aGFuIGBvdGhlcmAsXG4gICAgICogIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlR3QodmFsdWUsIG90aGVyKSB7XG4gICAgICByZXR1cm4gdmFsdWUgPiBvdGhlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5oYXNgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IGtleSBUaGUga2V5IHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSGFzKG9iamVjdCwga2V5KSB7XG4gICAgICByZXR1cm4gb2JqZWN0ICE9IG51bGwgJiYgaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaGFzSW5gIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IGtleSBUaGUga2V5IHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSGFzSW4ob2JqZWN0LCBrZXkpIHtcbiAgICAgIHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiBrZXkgaW4gT2JqZWN0KG9iamVjdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaW5SYW5nZWAgd2hpY2ggZG9lc24ndCBjb2VyY2UgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyIFRoZSBudW1iZXIgdG8gY2hlY2suXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0IFRoZSBzdGFydCBvZiB0aGUgcmFuZ2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGVuZCBUaGUgZW5kIG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYG51bWJlcmAgaXMgaW4gdGhlIHJhbmdlLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUluUmFuZ2UobnVtYmVyLCBzdGFydCwgZW5kKSB7XG4gICAgICByZXR1cm4gbnVtYmVyID49IG5hdGl2ZU1pbihzdGFydCwgZW5kKSAmJiBudW1iZXIgPCBuYXRpdmVNYXgoc3RhcnQsIGVuZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgbWV0aG9kcyBsaWtlIGBfLmludGVyc2VjdGlvbmAsIHdpdGhvdXQgc3VwcG9ydFxuICAgICAqIGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLCB0aGF0IGFjY2VwdHMgYW4gYXJyYXkgb2YgYXJyYXlzIHRvIGluc3BlY3QuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5cyBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBzaGFyZWQgdmFsdWVzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJbnRlcnNlY3Rpb24oYXJyYXlzLCBpdGVyYXRlZSwgY29tcGFyYXRvcikge1xuICAgICAgdmFyIGluY2x1ZGVzID0gY29tcGFyYXRvciA/IGFycmF5SW5jbHVkZXNXaXRoIDogYXJyYXlJbmNsdWRlcyxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheXNbMF0ubGVuZ3RoLFxuICAgICAgICAgIG90aExlbmd0aCA9IGFycmF5cy5sZW5ndGgsXG4gICAgICAgICAgb3RoSW5kZXggPSBvdGhMZW5ndGgsXG4gICAgICAgICAgY2FjaGVzID0gQXJyYXkob3RoTGVuZ3RoKSxcbiAgICAgICAgICBtYXhMZW5ndGggPSBJbmZpbml0eSxcbiAgICAgICAgICByZXN1bHQgPSBbXTtcblxuICAgICAgd2hpbGUgKG90aEluZGV4LS0pIHtcbiAgICAgICAgdmFyIGFycmF5ID0gYXJyYXlzW290aEluZGV4XTtcbiAgICAgICAgaWYgKG90aEluZGV4ICYmIGl0ZXJhdGVlKSB7XG4gICAgICAgICAgYXJyYXkgPSBhcnJheU1hcChhcnJheSwgYmFzZVVuYXJ5KGl0ZXJhdGVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgbWF4TGVuZ3RoID0gbmF0aXZlTWluKGFycmF5Lmxlbmd0aCwgbWF4TGVuZ3RoKTtcbiAgICAgICAgY2FjaGVzW290aEluZGV4XSA9ICFjb21wYXJhdG9yICYmIChpdGVyYXRlZSB8fCAobGVuZ3RoID49IDEyMCAmJiBhcnJheS5sZW5ndGggPj0gMTIwKSlcbiAgICAgICAgICA/IG5ldyBTZXRDYWNoZShvdGhJbmRleCAmJiBhcnJheSlcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGFycmF5ID0gYXJyYXlzWzBdO1xuXG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBzZWVuID0gY2FjaGVzWzBdO1xuXG4gICAgICBvdXRlcjpcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoICYmIHJlc3VsdC5sZW5ndGggPCBtYXhMZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICAgICAgY29tcHV0ZWQgPSBpdGVyYXRlZSA/IGl0ZXJhdGVlKHZhbHVlKSA6IHZhbHVlO1xuXG4gICAgICAgIHZhbHVlID0gKGNvbXBhcmF0b3IgfHwgdmFsdWUgIT09IDApID8gdmFsdWUgOiAwO1xuICAgICAgICBpZiAoIShzZWVuXG4gICAgICAgICAgICAgID8gY2FjaGVIYXMoc2VlbiwgY29tcHV0ZWQpXG4gICAgICAgICAgICAgIDogaW5jbHVkZXMocmVzdWx0LCBjb21wdXRlZCwgY29tcGFyYXRvcilcbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICBvdGhJbmRleCA9IG90aExlbmd0aDtcbiAgICAgICAgICB3aGlsZSAoLS1vdGhJbmRleCkge1xuICAgICAgICAgICAgdmFyIGNhY2hlID0gY2FjaGVzW290aEluZGV4XTtcbiAgICAgICAgICAgIGlmICghKGNhY2hlXG4gICAgICAgICAgICAgICAgICA/IGNhY2hlSGFzKGNhY2hlLCBjb21wdXRlZClcbiAgICAgICAgICAgICAgICAgIDogaW5jbHVkZXMoYXJyYXlzW290aEluZGV4XSwgY29tcHV0ZWQsIGNvbXBhcmF0b3IpKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjb250aW51ZSBvdXRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHNlZW4pIHtcbiAgICAgICAgICAgIHNlZW4ucHVzaChjb21wdXRlZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pbnZlcnRgIGFuZCBgXy5pbnZlcnRCeWAgd2hpY2ggaW52ZXJ0c1xuICAgICAqIGBvYmplY3RgIHdpdGggdmFsdWVzIHRyYW5zZm9ybWVkIGJ5IGBpdGVyYXRlZWAgYW5kIHNldCBieSBgc2V0dGVyYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzZXR0ZXIgVGhlIGZ1bmN0aW9uIHRvIHNldCBgYWNjdW11bGF0b3JgIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgaXRlcmF0ZWUgdG8gdHJhbnNmb3JtIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gYWNjdW11bGF0b3IgVGhlIGluaXRpYWwgaW52ZXJ0ZWQgb2JqZWN0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgYWNjdW11bGF0b3JgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJbnZlcnRlcihvYmplY3QsIHNldHRlciwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yKSB7XG4gICAgICBiYXNlRm9yT3duKG9iamVjdCwgZnVuY3Rpb24odmFsdWUsIGtleSwgb2JqZWN0KSB7XG4gICAgICAgIHNldHRlcihhY2N1bXVsYXRvciwgaXRlcmF0ZWUodmFsdWUpLCBrZXksIG9iamVjdCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pbnZva2VgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaW5kaXZpZHVhbFxuICAgICAqIG1ldGhvZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgbWV0aG9kIHRvIGludm9rZS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcmdzIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIHRoZSBtZXRob2Qgd2l0aC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBpbnZva2VkIG1ldGhvZC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSW52b2tlKG9iamVjdCwgcGF0aCwgYXJncykge1xuICAgICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG4gICAgICBvYmplY3QgPSBwYXJlbnQob2JqZWN0LCBwYXRoKTtcbiAgICAgIHZhciBmdW5jID0gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBvYmplY3RbdG9LZXkobGFzdChwYXRoKSldO1xuICAgICAgcmV0dXJuIGZ1bmMgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IGFwcGx5KGZ1bmMsIG9iamVjdCwgYXJncyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNBcmd1bWVudHNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBgYXJndW1lbnRzYCBvYmplY3QsXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUlzQXJndW1lbnRzKHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBhcmdzVGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzQXJyYXlCdWZmZXJgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBhcnJheSBidWZmZXIsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNBcnJheUJ1ZmZlcih2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJyYXlCdWZmZXJUYWc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNEYXRlYCB3aXRob3V0IE5vZGUuanMgb3B0aW1pemF0aW9ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBkYXRlIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJc0RhdGUodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IGRhdGVUYWc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNFcXVhbGAgd2hpY2ggc3VwcG9ydHMgcGFydGlhbCBjb21wYXJpc29uc1xuICAgICAqIGFuZCB0cmFja3MgdHJhdmVyc2VkIG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuXG4gICAgICogIDEgLSBVbm9yZGVyZWQgY29tcGFyaXNvblxuICAgICAqICAyIC0gUGFydGlhbCBjb21wYXJpc29uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtzdGFja10gVHJhY2tzIHRyYXZlcnNlZCBgdmFsdWVgIGFuZCBgb3RoZXJgIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNFcXVhbCh2YWx1ZSwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIHN0YWNrKSB7XG4gICAgICBpZiAodmFsdWUgPT09IG90aGVyKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHZhbHVlID09IG51bGwgfHwgb3RoZXIgPT0gbnVsbCB8fCAoIWlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgIWlzT2JqZWN0TGlrZShvdGhlcikpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSAhPT0gdmFsdWUgJiYgb3RoZXIgIT09IG90aGVyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VJc0VxdWFsRGVlcCh2YWx1ZSwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGJhc2VJc0VxdWFsLCBzdGFjayk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbGAgZm9yIGFycmF5cyBhbmQgb2JqZWN0cyB3aGljaCBwZXJmb3Jtc1xuICAgICAqIGRlZXAgY29tcGFyaXNvbnMgYW5kIHRyYWNrcyB0cmF2ZXJzZWQgb2JqZWN0cyBlbmFibGluZyBvYmplY3RzIHdpdGggY2lyY3VsYXJcbiAgICAgKiByZWZlcmVuY2VzIHRvIGJlIGNvbXBhcmVkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGJhc2VJc0VxdWFsYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGN1c3RvbWl6ZXIgVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpc29ucy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtzdGFja10gVHJhY2tzIHRyYXZlcnNlZCBgb2JqZWN0YCBhbmQgYG90aGVyYCBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJc0VxdWFsRGVlcChvYmplY3QsIG90aGVyLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKSB7XG4gICAgICB2YXIgb2JqSXNBcnIgPSBpc0FycmF5KG9iamVjdCksXG4gICAgICAgICAgb3RoSXNBcnIgPSBpc0FycmF5KG90aGVyKSxcbiAgICAgICAgICBvYmpUYWcgPSBvYmpJc0FyciA/IGFycmF5VGFnIDogZ2V0VGFnKG9iamVjdCksXG4gICAgICAgICAgb3RoVGFnID0gb3RoSXNBcnIgPyBhcnJheVRhZyA6IGdldFRhZyhvdGhlcik7XG5cbiAgICAgIG9ialRhZyA9IG9ialRhZyA9PSBhcmdzVGFnID8gb2JqZWN0VGFnIDogb2JqVGFnO1xuICAgICAgb3RoVGFnID0gb3RoVGFnID09IGFyZ3NUYWcgPyBvYmplY3RUYWcgOiBvdGhUYWc7XG5cbiAgICAgIHZhciBvYmpJc09iaiA9IG9ialRhZyA9PSBvYmplY3RUYWcsXG4gICAgICAgICAgb3RoSXNPYmogPSBvdGhUYWcgPT0gb2JqZWN0VGFnLFxuICAgICAgICAgIGlzU2FtZVRhZyA9IG9ialRhZyA9PSBvdGhUYWc7XG5cbiAgICAgIGlmIChpc1NhbWVUYWcgJiYgaXNCdWZmZXIob2JqZWN0KSkge1xuICAgICAgICBpZiAoIWlzQnVmZmVyKG90aGVyKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBvYmpJc0FyciA9IHRydWU7XG4gICAgICAgIG9iaklzT2JqID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoaXNTYW1lVGFnICYmICFvYmpJc09iaikge1xuICAgICAgICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2spO1xuICAgICAgICByZXR1cm4gKG9iaklzQXJyIHx8IGlzVHlwZWRBcnJheShvYmplY3QpKVxuICAgICAgICAgID8gZXF1YWxBcnJheXMob2JqZWN0LCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjaylcbiAgICAgICAgICA6IGVxdWFsQnlUYWcob2JqZWN0LCBvdGhlciwgb2JqVGFnLCBiaXRtYXNrLCBjdXN0b21pemVyLCBlcXVhbEZ1bmMsIHN0YWNrKTtcbiAgICAgIH1cbiAgICAgIGlmICghKGJpdG1hc2sgJiBDT01QQVJFX1BBUlRJQUxfRkxBRykpIHtcbiAgICAgICAgdmFyIG9iaklzV3JhcHBlZCA9IG9iaklzT2JqICYmIGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCAnX193cmFwcGVkX18nKSxcbiAgICAgICAgICAgIG90aElzV3JhcHBlZCA9IG90aElzT2JqICYmIGhhc093blByb3BlcnR5LmNhbGwob3RoZXIsICdfX3dyYXBwZWRfXycpO1xuXG4gICAgICAgIGlmIChvYmpJc1dyYXBwZWQgfHwgb3RoSXNXcmFwcGVkKSB7XG4gICAgICAgICAgdmFyIG9ialVud3JhcHBlZCA9IG9iaklzV3JhcHBlZCA/IG9iamVjdC52YWx1ZSgpIDogb2JqZWN0LFxuICAgICAgICAgICAgICBvdGhVbndyYXBwZWQgPSBvdGhJc1dyYXBwZWQgPyBvdGhlci52YWx1ZSgpIDogb3RoZXI7XG5cbiAgICAgICAgICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2spO1xuICAgICAgICAgIHJldHVybiBlcXVhbEZ1bmMob2JqVW53cmFwcGVkLCBvdGhVbndyYXBwZWQsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIHN0YWNrKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFpc1NhbWVUYWcpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgc3RhY2sgfHwgKHN0YWNrID0gbmV3IFN0YWNrKTtcbiAgICAgIHJldHVybiBlcXVhbE9iamVjdHMob2JqZWN0LCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjayk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNNYXBgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG1hcCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJc01hcCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgZ2V0VGFnKHZhbHVlKSA9PSBtYXBUYWc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNNYXRjaGAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgdmFsdWVzIHRvIG1hdGNoLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IG1hdGNoRGF0YSBUaGUgcHJvcGVydHkgbmFtZXMsIHZhbHVlcywgYW5kIGNvbXBhcmUgZmxhZ3MgdG8gbWF0Y2guXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBvYmplY3RgIGlzIGEgbWF0Y2gsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNNYXRjaChvYmplY3QsIHNvdXJjZSwgbWF0Y2hEYXRhLCBjdXN0b21pemVyKSB7XG4gICAgICB2YXIgaW5kZXggPSBtYXRjaERhdGEubGVuZ3RoLFxuICAgICAgICAgIGxlbmd0aCA9IGluZGV4LFxuICAgICAgICAgIG5vQ3VzdG9taXplciA9ICFjdXN0b21pemVyO1xuXG4gICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuICFsZW5ndGg7XG4gICAgICB9XG4gICAgICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcbiAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgIHZhciBkYXRhID0gbWF0Y2hEYXRhW2luZGV4XTtcbiAgICAgICAgaWYgKChub0N1c3RvbWl6ZXIgJiYgZGF0YVsyXSlcbiAgICAgICAgICAgICAgPyBkYXRhWzFdICE9PSBvYmplY3RbZGF0YVswXV1cbiAgICAgICAgICAgICAgOiAhKGRhdGFbMF0gaW4gb2JqZWN0KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICBkYXRhID0gbWF0Y2hEYXRhW2luZGV4XTtcbiAgICAgICAgdmFyIGtleSA9IGRhdGFbMF0sXG4gICAgICAgICAgICBvYmpWYWx1ZSA9IG9iamVjdFtrZXldLFxuICAgICAgICAgICAgc3JjVmFsdWUgPSBkYXRhWzFdO1xuXG4gICAgICAgIGlmIChub0N1c3RvbWl6ZXIgJiYgZGF0YVsyXSkge1xuICAgICAgICAgIGlmIChvYmpWYWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIHN0YWNrID0gbmV3IFN0YWNrO1xuICAgICAgICAgIGlmIChjdXN0b21pemVyKSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gY3VzdG9taXplcihvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCEocmVzdWx0ID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IGJhc2VJc0VxdWFsKHNyY1ZhbHVlLCBvYmpWYWx1ZSwgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgfCBDT01QQVJFX1VOT1JERVJFRF9GTEFHLCBjdXN0b21pemVyLCBzdGFjaylcbiAgICAgICAgICAgICAgICA6IHJlc3VsdFxuICAgICAgICAgICAgICApKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc05hdGl2ZWAgd2l0aG91dCBiYWQgc2hpbSBjaGVja3MuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbmF0aXZlIGZ1bmN0aW9uLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZUlzTmF0aXZlKHZhbHVlKSB7XG4gICAgICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCBpc01hc2tlZCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIHBhdHRlcm4gPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHJlSXNOYXRpdmUgOiByZUlzSG9zdEN0b3I7XG4gICAgICByZXR1cm4gcGF0dGVybi50ZXN0KHRvU291cmNlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNSZWdFeHBgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHJlZ2V4cCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VJc1JlZ0V4cCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gcmVnZXhwVGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzU2V0YCB3aXRob3V0IE5vZGUuanMgb3B0aW1pemF0aW9ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzZXQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNTZXQodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGdldFRhZyh2YWx1ZSkgPT0gc2V0VGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzVHlwZWRBcnJheWAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdHlwZWQgYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXNUeXBlZEFycmF5KHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJlxuICAgICAgICBpc0xlbmd0aCh2YWx1ZS5sZW5ndGgpICYmICEhdHlwZWRBcnJheVRhZ3NbYmFzZUdldFRhZyh2YWx1ZSldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLml0ZXJhdGVlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSBbdmFsdWU9Xy5pZGVudGl0eV0gVGhlIHZhbHVlIHRvIGNvbnZlcnQgdG8gYW4gaXRlcmF0ZWUuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBpdGVyYXRlZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlSXRlcmF0ZWUodmFsdWUpIHtcbiAgICAgIC8vIERvbid0IHN0b3JlIHRoZSBgdHlwZW9mYCByZXN1bHQgaW4gYSB2YXJpYWJsZSB0byBhdm9pZCBhIEpJVCBidWcgaW4gU2FmYXJpIDkuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjAzNCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBpZGVudGl0eTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIGlzQXJyYXkodmFsdWUpXG4gICAgICAgICAgPyBiYXNlTWF0Y2hlc1Byb3BlcnR5KHZhbHVlWzBdLCB2YWx1ZVsxXSlcbiAgICAgICAgICA6IGJhc2VNYXRjaGVzKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c2Agd2hpY2ggZG9lc24ndCB0cmVhdCBzcGFyc2UgYXJyYXlzIGFzIGRlbnNlLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlS2V5cyhvYmplY3QpIHtcbiAgICAgIGlmICghaXNQcm90b3R5cGUob2JqZWN0KSkge1xuICAgICAgICByZXR1cm4gbmF0aXZlS2V5cyhvYmplY3QpO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgICAgZm9yICh2YXIga2V5IGluIE9iamVjdChvYmplY3QpKSB7XG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSAmJiBrZXkgIT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c0luYCB3aGljaCBkb2Vzbid0IHRyZWF0IHNwYXJzZSBhcnJheXMgYXMgZGVuc2UuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VLZXlzSW4ob2JqZWN0KSB7XG4gICAgICBpZiAoIWlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgICAgcmV0dXJuIG5hdGl2ZUtleXNJbihvYmplY3QpO1xuICAgICAgfVxuICAgICAgdmFyIGlzUHJvdG8gPSBpc1Byb3RvdHlwZShvYmplY3QpLFxuICAgICAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgICBmb3IgKHZhciBrZXkgaW4gb2JqZWN0KSB7XG4gICAgICAgIGlmICghKGtleSA9PSAnY29uc3RydWN0b3InICYmIChpc1Byb3RvIHx8ICFoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkpKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5sdGAgd2hpY2ggZG9lc24ndCBjb2VyY2UgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgbGVzcyB0aGFuIGBvdGhlcmAsXG4gICAgICogIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTHQodmFsdWUsIG90aGVyKSB7XG4gICAgICByZXR1cm4gdmFsdWUgPCBvdGhlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5tYXBgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIGFycmF5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VNYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIHJlc3VsdCA9IGlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pID8gQXJyYXkoY29sbGVjdGlvbi5sZW5ndGgpIDogW107XG5cbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pIHtcbiAgICAgICAgcmVzdWx0WysraW5kZXhdID0gaXRlcmF0ZWUodmFsdWUsIGtleSwgY29sbGVjdGlvbik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWF0Y2hlc2Agd2hpY2ggZG9lc24ndCBjbG9uZSBgc291cmNlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VNYXRjaGVzKHNvdXJjZSkge1xuICAgICAgdmFyIG1hdGNoRGF0YSA9IGdldE1hdGNoRGF0YShzb3VyY2UpO1xuICAgICAgaWYgKG1hdGNoRGF0YS5sZW5ndGggPT0gMSAmJiBtYXRjaERhdGFbMF1bMl0pIHtcbiAgICAgICAgcmV0dXJuIG1hdGNoZXNTdHJpY3RDb21wYXJhYmxlKG1hdGNoRGF0YVswXVswXSwgbWF0Y2hEYXRhWzBdWzFdKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdCA9PT0gc291cmNlIHx8IGJhc2VJc01hdGNoKG9iamVjdCwgc291cmNlLCBtYXRjaERhdGEpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5tYXRjaGVzUHJvcGVydHlgIHdoaWNoIGRvZXNuJ3QgY2xvbmUgYHNyY1ZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICAgKiBAcGFyYW0geyp9IHNyY1ZhbHVlIFRoZSB2YWx1ZSB0byBtYXRjaC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VNYXRjaGVzUHJvcGVydHkocGF0aCwgc3JjVmFsdWUpIHtcbiAgICAgIGlmIChpc0tleShwYXRoKSAmJiBpc1N0cmljdENvbXBhcmFibGUoc3JjVmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBtYXRjaGVzU3RyaWN0Q29tcGFyYWJsZSh0b0tleShwYXRoKSwgc3JjVmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICB2YXIgb2JqVmFsdWUgPSBnZXQob2JqZWN0LCBwYXRoKTtcbiAgICAgICAgcmV0dXJuIChvYmpWYWx1ZSA9PT0gdW5kZWZpbmVkICYmIG9ialZhbHVlID09PSBzcmNWYWx1ZSlcbiAgICAgICAgICA/IGhhc0luKG9iamVjdCwgcGF0aClcbiAgICAgICAgICA6IGJhc2VJc0VxdWFsKHNyY1ZhbHVlLCBvYmpWYWx1ZSwgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgfCBDT01QQVJFX1VOT1JERVJFRF9GTEFHKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWVyZ2VgIHdpdGhvdXQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc291cmNlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHNyY0luZGV4IFRoZSBpbmRleCBvZiBgc291cmNlYC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBtZXJnZWQgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgc291cmNlIHZhbHVlcyBhbmQgdGhlaXIgbWVyZ2VkXG4gICAgICogIGNvdW50ZXJwYXJ0cy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTWVyZ2Uob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4LCBjdXN0b21pemVyLCBzdGFjaykge1xuICAgICAgaWYgKG9iamVjdCA9PT0gc291cmNlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGJhc2VGb3Ioc291cmNlLCBmdW5jdGlvbihzcmNWYWx1ZSwga2V5KSB7XG4gICAgICAgIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjayk7XG4gICAgICAgIGlmIChpc09iamVjdChzcmNWYWx1ZSkpIHtcbiAgICAgICAgICBiYXNlTWVyZ2VEZWVwKG9iamVjdCwgc291cmNlLCBrZXksIHNyY0luZGV4LCBiYXNlTWVyZ2UsIGN1c3RvbWl6ZXIsIHN0YWNrKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB2YXIgbmV3VmFsdWUgPSBjdXN0b21pemVyXG4gICAgICAgICAgICA/IGN1c3RvbWl6ZXIoc2FmZUdldChvYmplY3QsIGtleSksIHNyY1ZhbHVlLCAoa2V5ICsgJycpLCBvYmplY3QsIHNvdXJjZSwgc3RhY2spXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgIGlmIChuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9IHNyY1ZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sIGtleXNJbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlTWVyZ2VgIGZvciBhcnJheXMgYW5kIG9iamVjdHMgd2hpY2ggcGVyZm9ybXNcbiAgICAgKiBkZWVwIG1lcmdlcyBhbmQgdHJhY2tzIHRyYXZlcnNlZCBvYmplY3RzIGVuYWJsaW5nIG9iamVjdHMgd2l0aCBjaXJjdWxhclxuICAgICAqIHJlZmVyZW5jZXMgdG8gYmUgbWVyZ2VkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIG1lcmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzcmNJbmRleCBUaGUgaW5kZXggb2YgYHNvdXJjZWAuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gbWVyZ2VGdW5jIFRoZSBmdW5jdGlvbiB0byBtZXJnZSB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgc291cmNlIHZhbHVlcyBhbmQgdGhlaXIgbWVyZ2VkXG4gICAgICogIGNvdW50ZXJwYXJ0cy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlTWVyZ2VEZWVwKG9iamVjdCwgc291cmNlLCBrZXksIHNyY0luZGV4LCBtZXJnZUZ1bmMsIGN1c3RvbWl6ZXIsIHN0YWNrKSB7XG4gICAgICB2YXIgb2JqVmFsdWUgPSBzYWZlR2V0KG9iamVjdCwga2V5KSxcbiAgICAgICAgICBzcmNWYWx1ZSA9IHNhZmVHZXQoc291cmNlLCBrZXkpLFxuICAgICAgICAgIHN0YWNrZWQgPSBzdGFjay5nZXQoc3JjVmFsdWUpO1xuXG4gICAgICBpZiAoc3RhY2tlZCkge1xuICAgICAgICBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCBzdGFja2VkKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplclxuICAgICAgICA/IGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlLCAoa2V5ICsgJycpLCBvYmplY3QsIHNvdXJjZSwgc3RhY2spXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICB2YXIgaXNDb21tb24gPSBuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkO1xuXG4gICAgICBpZiAoaXNDb21tb24pIHtcbiAgICAgICAgdmFyIGlzQXJyID0gaXNBcnJheShzcmNWYWx1ZSksXG4gICAgICAgICAgICBpc0J1ZmYgPSAhaXNBcnIgJiYgaXNCdWZmZXIoc3JjVmFsdWUpLFxuICAgICAgICAgICAgaXNUeXBlZCA9ICFpc0FyciAmJiAhaXNCdWZmICYmIGlzVHlwZWRBcnJheShzcmNWYWx1ZSk7XG5cbiAgICAgICAgbmV3VmFsdWUgPSBzcmNWYWx1ZTtcbiAgICAgICAgaWYgKGlzQXJyIHx8IGlzQnVmZiB8fCBpc1R5cGVkKSB7XG4gICAgICAgICAgaWYgKGlzQXJyYXkob2JqVmFsdWUpKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9IG9ialZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIGlmIChpc0FycmF5TGlrZU9iamVjdChvYmpWYWx1ZSkpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gY29weUFycmF5KG9ialZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSBpZiAoaXNCdWZmKSB7XG4gICAgICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICAgICAgbmV3VmFsdWUgPSBjbG9uZUJ1ZmZlcihzcmNWYWx1ZSwgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2UgaWYgKGlzVHlwZWQpIHtcbiAgICAgICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9IGNsb25lVHlwZWRBcnJheShzcmNWYWx1ZSwgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbmV3VmFsdWUgPSBbXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNQbGFpbk9iamVjdChzcmNWYWx1ZSkgfHwgaXNBcmd1bWVudHMoc3JjVmFsdWUpKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSBvYmpWYWx1ZTtcbiAgICAgICAgICBpZiAoaXNBcmd1bWVudHMob2JqVmFsdWUpKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9IHRvUGxhaW5PYmplY3Qob2JqVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIGlmICghaXNPYmplY3Qob2JqVmFsdWUpIHx8IGlzRnVuY3Rpb24ob2JqVmFsdWUpKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZSA9IGluaXRDbG9uZU9iamVjdChzcmNWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChpc0NvbW1vbikge1xuICAgICAgICAvLyBSZWN1cnNpdmVseSBtZXJnZSBvYmplY3RzIGFuZCBhcnJheXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgc3RhY2suc2V0KHNyY1ZhbHVlLCBuZXdWYWx1ZSk7XG4gICAgICAgIG1lcmdlRnVuYyhuZXdWYWx1ZSwgc3JjVmFsdWUsIHNyY0luZGV4LCBjdXN0b21pemVyLCBzdGFjayk7XG4gICAgICAgIHN0YWNrWydkZWxldGUnXShzcmNWYWx1ZSk7XG4gICAgICB9XG4gICAgICBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubnRoYCB3aGljaCBkb2Vzbid0IGNvZXJjZSBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgaW5kZXggb2YgdGhlIGVsZW1lbnQgdG8gcmV0dXJuLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBudGggZWxlbWVudCBvZiBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VOdGgoYXJyYXksIG4pIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBuICs9IG4gPCAwID8gbGVuZ3RoIDogMDtcbiAgICAgIHJldHVybiBpc0luZGV4KG4sIGxlbmd0aCkgPyBhcnJheVtuXSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5vcmRlckJ5YCB3aXRob3V0IHBhcmFtIGd1YXJkcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb25bXXxPYmplY3RbXXxzdHJpbmdbXX0gaXRlcmF0ZWVzIFRoZSBpdGVyYXRlZXMgdG8gc29ydCBieS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBvcmRlcnMgVGhlIHNvcnQgb3JkZXJzIG9mIGBpdGVyYXRlZXNgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHNvcnRlZCBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlT3JkZXJCeShjb2xsZWN0aW9uLCBpdGVyYXRlZXMsIG9yZGVycykge1xuICAgICAgaWYgKGl0ZXJhdGVlcy5sZW5ndGgpIHtcbiAgICAgICAgaXRlcmF0ZWVzID0gYXJyYXlNYXAoaXRlcmF0ZWVzLCBmdW5jdGlvbihpdGVyYXRlZSkge1xuICAgICAgICAgIGlmIChpc0FycmF5KGl0ZXJhdGVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgICAgIHJldHVybiBiYXNlR2V0KHZhbHVlLCBpdGVyYXRlZS5sZW5ndGggPT09IDEgPyBpdGVyYXRlZVswXSA6IGl0ZXJhdGVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGl0ZXJhdGVlO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGl0ZXJhdGVlcyA9IFtpZGVudGl0eV07XG4gICAgICB9XG5cbiAgICAgIHZhciBpbmRleCA9IC0xO1xuICAgICAgaXRlcmF0ZWVzID0gYXJyYXlNYXAoaXRlcmF0ZWVzLCBiYXNlVW5hcnkoZ2V0SXRlcmF0ZWUoKSkpO1xuXG4gICAgICB2YXIgcmVzdWx0ID0gYmFzZU1hcChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKSB7XG4gICAgICAgIHZhciBjcml0ZXJpYSA9IGFycmF5TWFwKGl0ZXJhdGVlcywgZnVuY3Rpb24oaXRlcmF0ZWUpIHtcbiAgICAgICAgICByZXR1cm4gaXRlcmF0ZWUodmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHsgJ2NyaXRlcmlhJzogY3JpdGVyaWEsICdpbmRleCc6ICsraW5kZXgsICd2YWx1ZSc6IHZhbHVlIH07XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGJhc2VTb3J0QnkocmVzdWx0LCBmdW5jdGlvbihvYmplY3QsIG90aGVyKSB7XG4gICAgICAgIHJldHVybiBjb21wYXJlTXVsdGlwbGUob2JqZWN0LCBvdGhlciwgb3JkZXJzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnBpY2tgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaW5kaXZpZHVhbFxuICAgICAqIHByb3BlcnR5IGlkZW50aWZpZXJzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nW119IHBhdGhzIFRoZSBwcm9wZXJ0eSBwYXRocyB0byBwaWNrLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVBpY2sob2JqZWN0LCBwYXRocykge1xuICAgICAgcmV0dXJuIGJhc2VQaWNrQnkob2JqZWN0LCBwYXRocywgZnVuY3Rpb24odmFsdWUsIHBhdGgpIHtcbiAgICAgICAgcmV0dXJuIGhhc0luKG9iamVjdCwgcGF0aCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiAgYF8ucGlja0J5YCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gcGF0aHMgVGhlIHByb3BlcnR5IHBhdGhzIHRvIHBpY2suXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBwcm9wZXJ0eS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VQaWNrQnkob2JqZWN0LCBwYXRocywgcHJlZGljYXRlKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBwYXRocy5sZW5ndGgsXG4gICAgICAgICAgcmVzdWx0ID0ge307XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBwYXRoID0gcGF0aHNbaW5kZXhdLFxuICAgICAgICAgICAgdmFsdWUgPSBiYXNlR2V0KG9iamVjdCwgcGF0aCk7XG5cbiAgICAgICAgaWYgKHByZWRpY2F0ZSh2YWx1ZSwgcGF0aCkpIHtcbiAgICAgICAgICBiYXNlU2V0KHJlc3VsdCwgY2FzdFBhdGgocGF0aCwgb2JqZWN0KSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZVByb3BlcnR5YCB3aGljaCBzdXBwb3J0cyBkZWVwIHBhdGhzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFjY2Vzc29yIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VQcm9wZXJ0eURlZXAocGF0aCkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICByZXR1cm4gYmFzZUdldChvYmplY3QsIHBhdGgpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5wdWxsQWxsQnlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWVcbiAgICAgKiBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgdmFsdWVzIHRvIHJlbW92ZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWVdIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VQdWxsQWxsKGFycmF5LCB2YWx1ZXMsIGl0ZXJhdGVlLCBjb21wYXJhdG9yKSB7XG4gICAgICB2YXIgaW5kZXhPZiA9IGNvbXBhcmF0b3IgPyBiYXNlSW5kZXhPZldpdGggOiBiYXNlSW5kZXhPZixcbiAgICAgICAgICBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHZhbHVlcy5sZW5ndGgsXG4gICAgICAgICAgc2VlbiA9IGFycmF5O1xuXG4gICAgICBpZiAoYXJyYXkgPT09IHZhbHVlcykge1xuICAgICAgICB2YWx1ZXMgPSBjb3B5QXJyYXkodmFsdWVzKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVyYXRlZSkge1xuICAgICAgICBzZWVuID0gYXJyYXlNYXAoYXJyYXksIGJhc2VVbmFyeShpdGVyYXRlZSkpO1xuICAgICAgfVxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGZyb21JbmRleCA9IDAsXG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlc1tpbmRleF0sXG4gICAgICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlID8gaXRlcmF0ZWUodmFsdWUpIDogdmFsdWU7XG5cbiAgICAgICAgd2hpbGUgKChmcm9tSW5kZXggPSBpbmRleE9mKHNlZW4sIGNvbXB1dGVkLCBmcm9tSW5kZXgsIGNvbXBhcmF0b3IpKSA+IC0xKSB7XG4gICAgICAgICAgaWYgKHNlZW4gIT09IGFycmF5KSB7XG4gICAgICAgICAgICBzcGxpY2UuY2FsbChzZWVuLCBmcm9tSW5kZXgsIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzcGxpY2UuY2FsbChhcnJheSwgZnJvbUluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGFycmF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnB1bGxBdGAgd2l0aG91dCBzdXBwb3J0IGZvciBpbmRpdmlkdWFsXG4gICAgICogaW5kZXhlcyBvciBjYXB0dXJpbmcgdGhlIHJlbW92ZWQgZWxlbWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJbXX0gaW5kZXhlcyBUaGUgaW5kZXhlcyBvZiBlbGVtZW50cyB0byByZW1vdmUuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVB1bGxBdChhcnJheSwgaW5kZXhlcykge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID8gaW5kZXhlcy5sZW5ndGggOiAwLFxuICAgICAgICAgIGxhc3RJbmRleCA9IGxlbmd0aCAtIDE7XG5cbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICB2YXIgaW5kZXggPSBpbmRleGVzW2xlbmd0aF07XG4gICAgICAgIGlmIChsZW5ndGggPT0gbGFzdEluZGV4IHx8IGluZGV4ICE9PSBwcmV2aW91cykge1xuICAgICAgICAgIHZhciBwcmV2aW91cyA9IGluZGV4O1xuICAgICAgICAgIGlmIChpc0luZGV4KGluZGV4KSkge1xuICAgICAgICAgICAgc3BsaWNlLmNhbGwoYXJyYXksIGluZGV4LCAxKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYmFzZVVuc2V0KGFycmF5LCBpbmRleCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucmFuZG9tYCB3aXRob3V0IHN1cHBvcnQgZm9yIHJldHVybmluZ1xuICAgICAqIGZsb2F0aW5nLXBvaW50IG51bWJlcnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsb3dlciBUaGUgbG93ZXIgYm91bmQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHVwcGVyIFRoZSB1cHBlciBib3VuZC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSByYW5kb20gbnVtYmVyLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VSYW5kb20obG93ZXIsIHVwcGVyKSB7XG4gICAgICByZXR1cm4gbG93ZXIgKyBuYXRpdmVGbG9vcihuYXRpdmVSYW5kb20oKSAqICh1cHBlciAtIGxvd2VyICsgMSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnJhbmdlYCBhbmQgYF8ucmFuZ2VSaWdodGAgd2hpY2ggZG9lc24ndFxuICAgICAqIGNvZXJjZSBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydCBUaGUgc3RhcnQgb2YgdGhlIHJhbmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmQgVGhlIGVuZCBvZiB0aGUgcmFuZ2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHN0ZXAgVGhlIHZhbHVlIHRvIGluY3JlbWVudCBvciBkZWNyZW1lbnQgYnkuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSByYW5nZSBvZiBudW1iZXJzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VSYW5nZShzdGFydCwgZW5kLCBzdGVwLCBmcm9tUmlnaHQpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1heChuYXRpdmVDZWlsKChlbmQgLSBzdGFydCkgLyAoc3RlcCB8fCAxKSksIDApLFxuICAgICAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICByZXN1bHRbZnJvbVJpZ2h0ID8gbGVuZ3RoIDogKytpbmRleF0gPSBzdGFydDtcbiAgICAgICAgc3RhcnQgKz0gc3RlcDtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucmVwZWF0YCB3aGljaCBkb2Vzbid0IGNvZXJjZSBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byByZXBlYXQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiB0aW1lcyB0byByZXBlYXQgdGhlIHN0cmluZy5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSByZXBlYXRlZCBzdHJpbmcuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVJlcGVhdChzdHJpbmcsIG4pIHtcbiAgICAgIHZhciByZXN1bHQgPSAnJztcbiAgICAgIGlmICghc3RyaW5nIHx8IG4gPCAxIHx8IG4gPiBNQVhfU0FGRV9JTlRFR0VSKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICAvLyBMZXZlcmFnZSB0aGUgZXhwb25lbnRpYXRpb24gYnkgc3F1YXJpbmcgYWxnb3JpdGhtIGZvciBhIGZhc3RlciByZXBlYXQuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXhwb25lbnRpYXRpb25fYnlfc3F1YXJpbmcgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgIGRvIHtcbiAgICAgICAgaWYgKG4gJSAyKSB7XG4gICAgICAgICAgcmVzdWx0ICs9IHN0cmluZztcbiAgICAgICAgfVxuICAgICAgICBuID0gbmF0aXZlRmxvb3IobiAvIDIpO1xuICAgICAgICBpZiAobikge1xuICAgICAgICAgIHN0cmluZyArPSBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgIH0gd2hpbGUgKG4pO1xuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnJlc3RgIHdoaWNoIGRvZXNuJ3QgdmFsaWRhdGUgb3IgY29lcmNlIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PWZ1bmMubGVuZ3RoLTFdIFRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgcmVzdCBwYXJhbWV0ZXIuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVJlc3QoZnVuYywgc3RhcnQpIHtcbiAgICAgIHJldHVybiBzZXRUb1N0cmluZyhvdmVyUmVzdChmdW5jLCBzdGFydCwgaWRlbnRpdHkpLCBmdW5jICsgJycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNhbXBsZWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIHNhbXBsZS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmFuZG9tIGVsZW1lbnQuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVNhbXBsZShjb2xsZWN0aW9uKSB7XG4gICAgICByZXR1cm4gYXJyYXlTYW1wbGUodmFsdWVzKGNvbGxlY3Rpb24pKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zYW1wbGVTaXplYCB3aXRob3V0IHBhcmFtIGd1YXJkcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2FtcGxlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gc2FtcGxlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcmFuZG9tIGVsZW1lbnRzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTYW1wbGVTaXplKGNvbGxlY3Rpb24sIG4pIHtcbiAgICAgIHZhciBhcnJheSA9IHZhbHVlcyhjb2xsZWN0aW9uKTtcbiAgICAgIHJldHVybiBzaHVmZmxlU2VsZihhcnJheSwgYmFzZUNsYW1wKG4sIDAsIGFycmF5Lmxlbmd0aCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNldGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHNldC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgcGF0aCBjcmVhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTZXQob2JqZWN0LCBwYXRoLCB2YWx1ZSwgY3VzdG9taXplcikge1xuICAgICAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICB9XG4gICAgICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcblxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gcGF0aC5sZW5ndGgsXG4gICAgICAgICAgbGFzdEluZGV4ID0gbGVuZ3RoIC0gMSxcbiAgICAgICAgICBuZXN0ZWQgPSBvYmplY3Q7XG5cbiAgICAgIHdoaWxlIChuZXN0ZWQgIT0gbnVsbCAmJiArK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBrZXkgPSB0b0tleShwYXRoW2luZGV4XSksXG4gICAgICAgICAgICBuZXdWYWx1ZSA9IHZhbHVlO1xuXG4gICAgICAgIGlmIChrZXkgPT09ICdfX3Byb3RvX18nIHx8IGtleSA9PT0gJ2NvbnN0cnVjdG9yJyB8fCBrZXkgPT09ICdwcm90b3R5cGUnKSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpbmRleCAhPSBsYXN0SW5kZXgpIHtcbiAgICAgICAgICB2YXIgb2JqVmFsdWUgPSBuZXN0ZWRba2V5XTtcbiAgICAgICAgICBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXIgPyBjdXN0b21pemVyKG9ialZhbHVlLCBrZXksIG5lc3RlZCkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgaWYgKG5ld1ZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gaXNPYmplY3Qob2JqVmFsdWUpXG4gICAgICAgICAgICAgID8gb2JqVmFsdWVcbiAgICAgICAgICAgICAgOiAoaXNJbmRleChwYXRoW2luZGV4ICsgMV0pID8gW10gOiB7fSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGFzc2lnblZhbHVlKG5lc3RlZCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgICAgIG5lc3RlZCA9IG5lc3RlZFtrZXldO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgc2V0RGF0YWAgd2l0aG91dCBzdXBwb3J0IGZvciBob3QgbG9vcCBzaG9ydGluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXNzb2NpYXRlIG1ldGFkYXRhIHdpdGguXG4gICAgICogQHBhcmFtIHsqfSBkYXRhIFRoZSBtZXRhZGF0YS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGZ1bmNgLlxuICAgICAqL1xuICAgIHZhciBiYXNlU2V0RGF0YSA9ICFtZXRhTWFwID8gaWRlbnRpdHkgOiBmdW5jdGlvbihmdW5jLCBkYXRhKSB7XG4gICAgICBtZXRhTWFwLnNldChmdW5jLCBkYXRhKTtcbiAgICAgIHJldHVybiBmdW5jO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgc2V0VG9TdHJpbmdgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaG90IGxvb3Agc2hvcnRpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBzdHJpbmcgVGhlIGB0b1N0cmluZ2AgcmVzdWx0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgZnVuY2AuXG4gICAgICovXG4gICAgdmFyIGJhc2VTZXRUb1N0cmluZyA9ICFkZWZpbmVQcm9wZXJ0eSA/IGlkZW50aXR5IDogZnVuY3Rpb24oZnVuYywgc3RyaW5nKSB7XG4gICAgICByZXR1cm4gZGVmaW5lUHJvcGVydHkoZnVuYywgJ3RvU3RyaW5nJywge1xuICAgICAgICAnY29uZmlndXJhYmxlJzogdHJ1ZSxcbiAgICAgICAgJ2VudW1lcmFibGUnOiBmYWxzZSxcbiAgICAgICAgJ3ZhbHVlJzogY29uc3RhbnQoc3RyaW5nKSxcbiAgICAgICAgJ3dyaXRhYmxlJzogdHJ1ZVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNodWZmbGVgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzaHVmZmxlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHNodWZmbGVkIGFycmF5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTaHVmZmxlKGNvbGxlY3Rpb24pIHtcbiAgICAgIHJldHVybiBzaHVmZmxlU2VsZih2YWx1ZXMoY29sbGVjdGlvbikpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnNsaWNlYCB3aXRob3V0IGFuIGl0ZXJhdGVlIGNhbGwgZ3VhcmQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzbGljZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBwb3NpdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2VuZD1hcnJheS5sZW5ndGhdIFRoZSBlbmQgcG9zaXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTbGljZShhcnJheSwgc3RhcnQsIGVuZCkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgICAgIHN0YXJ0ID0gLXN0YXJ0ID4gbGVuZ3RoID8gMCA6IChsZW5ndGggKyBzdGFydCk7XG4gICAgICB9XG4gICAgICBlbmQgPSBlbmQgPiBsZW5ndGggPyBsZW5ndGggOiBlbmQ7XG4gICAgICBpZiAoZW5kIDwgMCkge1xuICAgICAgICBlbmQgKz0gbGVuZ3RoO1xuICAgICAgfVxuICAgICAgbGVuZ3RoID0gc3RhcnQgPiBlbmQgPyAwIDogKChlbmQgLSBzdGFydCkgPj4+IDApO1xuICAgICAgc3RhcnQgPj4+PSAwO1xuXG4gICAgICB2YXIgcmVzdWx0ID0gQXJyYXkobGVuZ3RoKTtcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdFtpbmRleF0gPSBhcnJheVtpbmRleCArIHN0YXJ0XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc29tZWAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFueSBlbGVtZW50IHBhc3NlcyB0aGUgcHJlZGljYXRlIGNoZWNrLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVNvbWUoY29sbGVjdGlvbiwgcHJlZGljYXRlKSB7XG4gICAgICB2YXIgcmVzdWx0O1xuXG4gICAgICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pIHtcbiAgICAgICAgcmVzdWx0ID0gcHJlZGljYXRlKHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbik7XG4gICAgICAgIHJldHVybiAhcmVzdWx0O1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gISFyZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc29ydGVkSW5kZXhgIGFuZCBgXy5zb3J0ZWRMYXN0SW5kZXhgIHdoaWNoXG4gICAgICogcGVyZm9ybXMgYSBiaW5hcnkgc2VhcmNoIG9mIGBhcnJheWAgdG8gZGV0ZXJtaW5lIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgXG4gICAgICogc2hvdWxkIGJlIGluc2VydGVkIGludG8gYGFycmF5YCBpbiBvcmRlciB0byBtYWludGFpbiBpdHMgc29ydCBvcmRlci5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIHNvcnRlZCBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGV2YWx1YXRlLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3JldEhpZ2hlc3RdIFNwZWNpZnkgcmV0dXJuaW5nIHRoZSBoaWdoZXN0IHF1YWxpZmllZCBpbmRleC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZCBiZSBpbnNlcnRlZFxuICAgICAqICBpbnRvIGBhcnJheWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVNvcnRlZEluZGV4KGFycmF5LCB2YWx1ZSwgcmV0SGlnaGVzdCkge1xuICAgICAgdmFyIGxvdyA9IDAsXG4gICAgICAgICAgaGlnaCA9IGFycmF5ID09IG51bGwgPyBsb3cgOiBhcnJheS5sZW5ndGg7XG5cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiYgdmFsdWUgPT09IHZhbHVlICYmIGhpZ2ggPD0gSEFMRl9NQVhfQVJSQVlfTEVOR1RIKSB7XG4gICAgICAgIHdoaWxlIChsb3cgPCBoaWdoKSB7XG4gICAgICAgICAgdmFyIG1pZCA9IChsb3cgKyBoaWdoKSA+Pj4gMSxcbiAgICAgICAgICAgICAgY29tcHV0ZWQgPSBhcnJheVttaWRdO1xuXG4gICAgICAgICAgaWYgKGNvbXB1dGVkICE9PSBudWxsICYmICFpc1N5bWJvbChjb21wdXRlZCkgJiZcbiAgICAgICAgICAgICAgKHJldEhpZ2hlc3QgPyAoY29tcHV0ZWQgPD0gdmFsdWUpIDogKGNvbXB1dGVkIDwgdmFsdWUpKSkge1xuICAgICAgICAgICAgbG93ID0gbWlkICsgMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaGlnaCA9IG1pZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhpZ2g7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZVNvcnRlZEluZGV4QnkoYXJyYXksIHZhbHVlLCBpZGVudGl0eSwgcmV0SGlnaGVzdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc29ydGVkSW5kZXhCeWAgYW5kIGBfLnNvcnRlZExhc3RJbmRleEJ5YFxuICAgICAqIHdoaWNoIGludm9rZXMgYGl0ZXJhdGVlYCBmb3IgYHZhbHVlYCBhbmQgZWFjaCBlbGVtZW50IG9mIGBhcnJheWAgdG8gY29tcHV0ZVxuICAgICAqIHRoZWlyIHNvcnQgcmFua2luZy4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ7ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBzb3J0ZWQgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBldmFsdWF0ZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtyZXRIaWdoZXN0XSBTcGVjaWZ5IHJldHVybmluZyB0aGUgaGlnaGVzdCBxdWFsaWZpZWQgaW5kZXguXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWRcbiAgICAgKiAgaW50byBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VTb3J0ZWRJbmRleEJ5KGFycmF5LCB2YWx1ZSwgaXRlcmF0ZWUsIHJldEhpZ2hlc3QpIHtcbiAgICAgIHZhciBsb3cgPSAwLFxuICAgICAgICAgIGhpZ2ggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIGlmIChoaWdoID09PSAwKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuXG4gICAgICB2YWx1ZSA9IGl0ZXJhdGVlKHZhbHVlKTtcbiAgICAgIHZhciB2YWxJc05hTiA9IHZhbHVlICE9PSB2YWx1ZSxcbiAgICAgICAgICB2YWxJc051bGwgPSB2YWx1ZSA9PT0gbnVsbCxcbiAgICAgICAgICB2YWxJc1N5bWJvbCA9IGlzU3ltYm9sKHZhbHVlKSxcbiAgICAgICAgICB2YWxJc1VuZGVmaW5lZCA9IHZhbHVlID09PSB1bmRlZmluZWQ7XG5cbiAgICAgIHdoaWxlIChsb3cgPCBoaWdoKSB7XG4gICAgICAgIHZhciBtaWQgPSBuYXRpdmVGbG9vcigobG93ICsgaGlnaCkgLyAyKSxcbiAgICAgICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUoYXJyYXlbbWlkXSksXG4gICAgICAgICAgICBvdGhJc0RlZmluZWQgPSBjb21wdXRlZCAhPT0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgb3RoSXNOdWxsID0gY29tcHV0ZWQgPT09IG51bGwsXG4gICAgICAgICAgICBvdGhJc1JlZmxleGl2ZSA9IGNvbXB1dGVkID09PSBjb21wdXRlZCxcbiAgICAgICAgICAgIG90aElzU3ltYm9sID0gaXNTeW1ib2woY29tcHV0ZWQpO1xuXG4gICAgICAgIGlmICh2YWxJc05hTikge1xuICAgICAgICAgIHZhciBzZXRMb3cgPSByZXRIaWdoZXN0IHx8IG90aElzUmVmbGV4aXZlO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbElzVW5kZWZpbmVkKSB7XG4gICAgICAgICAgc2V0TG93ID0gb3RoSXNSZWZsZXhpdmUgJiYgKHJldEhpZ2hlc3QgfHwgb3RoSXNEZWZpbmVkKTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWxJc051bGwpIHtcbiAgICAgICAgICBzZXRMb3cgPSBvdGhJc1JlZmxleGl2ZSAmJiBvdGhJc0RlZmluZWQgJiYgKHJldEhpZ2hlc3QgfHwgIW90aElzTnVsbCk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsSXNTeW1ib2wpIHtcbiAgICAgICAgICBzZXRMb3cgPSBvdGhJc1JlZmxleGl2ZSAmJiBvdGhJc0RlZmluZWQgJiYgIW90aElzTnVsbCAmJiAocmV0SGlnaGVzdCB8fCAhb3RoSXNTeW1ib2wpO1xuICAgICAgICB9IGVsc2UgaWYgKG90aElzTnVsbCB8fCBvdGhJc1N5bWJvbCkge1xuICAgICAgICAgIHNldExvdyA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldExvdyA9IHJldEhpZ2hlc3QgPyAoY29tcHV0ZWQgPD0gdmFsdWUpIDogKGNvbXB1dGVkIDwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzZXRMb3cpIHtcbiAgICAgICAgICBsb3cgPSBtaWQgKyAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGhpZ2ggPSBtaWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuYXRpdmVNaW4oaGlnaCwgTUFYX0FSUkFZX0lOREVYKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zb3J0ZWRVbmlxYCBhbmQgYF8uc29ydGVkVW5pcUJ5YCB3aXRob3V0XG4gICAgICogc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBkdXBsaWNhdGUgZnJlZSBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlU29ydGVkVW5pcShhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICByZXNJbmRleCA9IDAsXG4gICAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICAgIGNvbXB1dGVkID0gaXRlcmF0ZWUgPyBpdGVyYXRlZSh2YWx1ZSkgOiB2YWx1ZTtcblxuICAgICAgICBpZiAoIWluZGV4IHx8ICFlcShjb21wdXRlZCwgc2VlbikpIHtcbiAgICAgICAgICB2YXIgc2VlbiA9IGNvbXB1dGVkO1xuICAgICAgICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IHZhbHVlID09PSAwID8gMCA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRvTnVtYmVyYCB3aGljaCBkb2Vzbid0IGVuc3VyZSBjb3JyZWN0XG4gICAgICogY29udmVyc2lvbnMgb2YgYmluYXJ5LCBoZXhhZGVjaW1hbCwgb3Igb2N0YWwgc3RyaW5nIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVRvTnVtYmVyKHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIE5BTjtcbiAgICAgIH1cbiAgICAgIHJldHVybiArdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udG9TdHJpbmdgIHdoaWNoIGRvZXNuJ3QgY29udmVydCBudWxsaXNoXG4gICAgICogdmFsdWVzIHRvIGVtcHR5IHN0cmluZ3MuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgc3RyaW5nLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VUb1N0cmluZyh2YWx1ZSkge1xuICAgICAgLy8gRXhpdCBlYXJseSBmb3Igc3RyaW5ncyB0byBhdm9pZCBhIHBlcmZvcm1hbmNlIGhpdCBpbiBzb21lIGVudmlyb25tZW50cy5cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbnZlcnQgdmFsdWVzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICAgIHJldHVybiBhcnJheU1hcCh2YWx1ZSwgYmFzZVRvU3RyaW5nKSArICcnO1xuICAgICAgfVxuICAgICAgaWYgKGlzU3ltYm9sKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gc3ltYm9sVG9TdHJpbmcgPyBzeW1ib2xUb1N0cmluZy5jYWxsKHZhbHVlKSA6ICcnO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdCA9ICh2YWx1ZSArICcnKTtcbiAgICAgIHJldHVybiAocmVzdWx0ID09ICcwJyAmJiAoMSAvIHZhbHVlKSA9PSAtSU5GSU5JVFkpID8gJy0wJyA6IHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy51bmlxQnlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBkdXBsaWNhdGUgZnJlZSBhcnJheS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBiYXNlVW5pcShhcnJheSwgaXRlcmF0ZWUsIGNvbXBhcmF0b3IpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGluY2x1ZGVzID0gYXJyYXlJbmNsdWRlcyxcbiAgICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgaXNDb21tb24gPSB0cnVlLFxuICAgICAgICAgIHJlc3VsdCA9IFtdLFxuICAgICAgICAgIHNlZW4gPSByZXN1bHQ7XG5cbiAgICAgIGlmIChjb21wYXJhdG9yKSB7XG4gICAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgICAgIGluY2x1ZGVzID0gYXJyYXlJbmNsdWRlc1dpdGg7XG4gICAgICB9XG4gICAgICBlbHNlIGlmIChsZW5ndGggPj0gTEFSR0VfQVJSQVlfU0laRSkge1xuICAgICAgICB2YXIgc2V0ID0gaXRlcmF0ZWUgPyBudWxsIDogY3JlYXRlU2V0KGFycmF5KTtcbiAgICAgICAgaWYgKHNldCkge1xuICAgICAgICAgIHJldHVybiBzZXRUb0FycmF5KHNldCk7XG4gICAgICAgIH1cbiAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICAgICAgaW5jbHVkZXMgPSBjYWNoZUhhcztcbiAgICAgICAgc2VlbiA9IG5ldyBTZXRDYWNoZTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBzZWVuID0gaXRlcmF0ZWUgPyBbXSA6IHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIG91dGVyOlxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICAgICAgY29tcHV0ZWQgPSBpdGVyYXRlZSA/IGl0ZXJhdGVlKHZhbHVlKSA6IHZhbHVlO1xuXG4gICAgICAgIHZhbHVlID0gKGNvbXBhcmF0b3IgfHwgdmFsdWUgIT09IDApID8gdmFsdWUgOiAwO1xuICAgICAgICBpZiAoaXNDb21tb24gJiYgY29tcHV0ZWQgPT09IGNvbXB1dGVkKSB7XG4gICAgICAgICAgdmFyIHNlZW5JbmRleCA9IHNlZW4ubGVuZ3RoO1xuICAgICAgICAgIHdoaWxlIChzZWVuSW5kZXgtLSkge1xuICAgICAgICAgICAgaWYgKHNlZW5bc2VlbkluZGV4XSA9PT0gY29tcHV0ZWQpIHtcbiAgICAgICAgICAgICAgY29udGludWUgb3V0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpdGVyYXRlZSkge1xuICAgICAgICAgICAgc2Vlbi5wdXNoKGNvbXB1dGVkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCFpbmNsdWRlcyhzZWVuLCBjb21wdXRlZCwgY29tcGFyYXRvcikpIHtcbiAgICAgICAgICBpZiAoc2VlbiAhPT0gcmVzdWx0KSB7XG4gICAgICAgICAgICBzZWVuLnB1c2goY29tcHV0ZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udW5zZXRgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwcm9wZXJ0eSBwYXRoIHRvIHVuc2V0LlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgcHJvcGVydHkgaXMgZGVsZXRlZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VVbnNldChvYmplY3QsIHBhdGgpIHtcbiAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuICAgICAgb2JqZWN0ID0gcGFyZW50KG9iamVjdCwgcGF0aCk7XG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgfHwgZGVsZXRlIG9iamVjdFt0b0tleShsYXN0KHBhdGgpKV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udXBkYXRlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gdXBkYXRlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHVwZGF0ZXIgVGhlIGZ1bmN0aW9uIHRvIHByb2R1Y2UgdGhlIHVwZGF0ZWQgdmFsdWUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgcGF0aCBjcmVhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VVcGRhdGUob2JqZWN0LCBwYXRoLCB1cGRhdGVyLCBjdXN0b21pemVyKSB7XG4gICAgICByZXR1cm4gYmFzZVNldChvYmplY3QsIHBhdGgsIHVwZGF0ZXIoYmFzZUdldChvYmplY3QsIHBhdGgpKSwgY3VzdG9taXplcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgbWV0aG9kcyBsaWtlIGBfLmRyb3BXaGlsZWAgYW5kIGBfLnRha2VXaGlsZWBcbiAgICAgKiB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0Ryb3BdIFNwZWNpZnkgZHJvcHBpbmcgZWxlbWVudHMgaW5zdGVhZCBvZiB0YWtpbmcgdGhlbS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVdoaWxlKGFycmF5LCBwcmVkaWNhdGUsIGlzRHJvcCwgZnJvbVJpZ2h0KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIGluZGV4ID0gZnJvbVJpZ2h0ID8gbGVuZ3RoIDogLTE7XG5cbiAgICAgIHdoaWxlICgoZnJvbVJpZ2h0ID8gaW5kZXgtLSA6ICsraW5kZXggPCBsZW5ndGgpICYmXG4gICAgICAgIHByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHt9XG5cbiAgICAgIHJldHVybiBpc0Ryb3BcbiAgICAgICAgPyBiYXNlU2xpY2UoYXJyYXksIChmcm9tUmlnaHQgPyAwIDogaW5kZXgpLCAoZnJvbVJpZ2h0ID8gaW5kZXggKyAxIDogbGVuZ3RoKSlcbiAgICAgICAgOiBiYXNlU2xpY2UoYXJyYXksIChmcm9tUmlnaHQgPyBpbmRleCArIDEgOiAwKSwgKGZyb21SaWdodCA/IGxlbmd0aCA6IGluZGV4KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYHdyYXBwZXJWYWx1ZWAgd2hpY2ggcmV0dXJucyB0aGUgcmVzdWx0IG9mXG4gICAgICogcGVyZm9ybWluZyBhIHNlcXVlbmNlIG9mIGFjdGlvbnMgb24gdGhlIHVud3JhcHBlZCBgdmFsdWVgLCB3aGVyZSBlYWNoXG4gICAgICogc3VjY2Vzc2l2ZSBhY3Rpb24gaXMgc3VwcGxpZWQgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgcHJldmlvdXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHVud3JhcHBlZCB2YWx1ZS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhY3Rpb25zIEFjdGlvbnMgdG8gcGVyZm9ybSB0byByZXNvbHZlIHRoZSB1bndyYXBwZWQgdmFsdWUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHZhbHVlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VXcmFwcGVyVmFsdWUodmFsdWUsIGFjdGlvbnMpIHtcbiAgICAgIHZhciByZXN1bHQgPSB2YWx1ZTtcbiAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBMYXp5V3JhcHBlcikge1xuICAgICAgICByZXN1bHQgPSByZXN1bHQudmFsdWUoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheVJlZHVjZShhY3Rpb25zLCBmdW5jdGlvbihyZXN1bHQsIGFjdGlvbikge1xuICAgICAgICByZXR1cm4gYWN0aW9uLmZ1bmMuYXBwbHkoYWN0aW9uLnRoaXNBcmcsIGFycmF5UHVzaChbcmVzdWx0XSwgYWN0aW9uLmFyZ3MpKTtcbiAgICAgIH0sIHJlc3VsdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgbWV0aG9kcyBsaWtlIGBfLnhvcmAsIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAgICAgKiBpdGVyYXRlZSBzaG9ydGhhbmRzLCB0aGF0IGFjY2VwdHMgYW4gYXJyYXkgb2YgYXJyYXlzIHRvIGluc3BlY3QuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5cyBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiB2YWx1ZXMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gYmFzZVhvcihhcnJheXMsIGl0ZXJhdGVlLCBjb21wYXJhdG9yKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXlzLmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGggPCAyKSB7XG4gICAgICAgIHJldHVybiBsZW5ndGggPyBiYXNlVW5pcShhcnJheXNbMF0pIDogW107XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgYXJyYXkgPSBhcnJheXNbaW5kZXhdLFxuICAgICAgICAgICAgb3RoSW5kZXggPSAtMTtcblxuICAgICAgICB3aGlsZSAoKytvdGhJbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIGlmIChvdGhJbmRleCAhPSBpbmRleCkge1xuICAgICAgICAgICAgcmVzdWx0W2luZGV4XSA9IGJhc2VEaWZmZXJlbmNlKHJlc3VsdFtpbmRleF0gfHwgYXJyYXksIGFycmF5c1tvdGhJbmRleF0sIGl0ZXJhdGVlLCBjb21wYXJhdG9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlVW5pcShiYXNlRmxhdHRlbihyZXN1bHQsIDEpLCBpdGVyYXRlZSwgY29tcGFyYXRvcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnppcE9iamVjdGAgd2hpY2ggYXNzaWducyB2YWx1ZXMgdXNpbmcgYGFzc2lnbkZ1bmNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgaWRlbnRpZmllcnMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSBwcm9wZXJ0eSB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gYXNzaWduRnVuYyBUaGUgZnVuY3Rpb24gdG8gYXNzaWduIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJhc2VaaXBPYmplY3QocHJvcHMsIHZhbHVlcywgYXNzaWduRnVuYykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoLFxuICAgICAgICAgIHZhbHNMZW5ndGggPSB2YWx1ZXMubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IHt9O1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBpbmRleCA8IHZhbHNMZW5ndGggPyB2YWx1ZXNbaW5kZXhdIDogdW5kZWZpbmVkO1xuICAgICAgICBhc3NpZ25GdW5jKHJlc3VsdCwgcHJvcHNbaW5kZXhdLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhc3RzIGB2YWx1ZWAgdG8gYW4gZW1wdHkgYXJyYXkgaWYgaXQncyBub3QgYW4gYXJyYXkgbGlrZSBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fE9iamVjdH0gUmV0dXJucyB0aGUgY2FzdCBhcnJheS1saWtlIG9iamVjdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjYXN0QXJyYXlMaWtlT2JqZWN0KHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNBcnJheUxpa2VPYmplY3QodmFsdWUpID8gdmFsdWUgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYXN0cyBgdmFsdWVgIHRvIGBpZGVudGl0eWAgaWYgaXQncyBub3QgYSBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgY2FzdCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjYXN0RnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ2Z1bmN0aW9uJyA/IHZhbHVlIDogaWRlbnRpdHk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FzdHMgYHZhbHVlYCB0byBhIHBhdGggYXJyYXkgaWYgaXQncyBub3Qgb25lLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5IGtleXMgb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjYXN0IHByb3BlcnR5IHBhdGggYXJyYXkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2FzdFBhdGgodmFsdWUsIG9iamVjdCkge1xuICAgICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpc0tleSh2YWx1ZSwgb2JqZWN0KSA/IFt2YWx1ZV0gOiBzdHJpbmdUb1BhdGgodG9TdHJpbmcodmFsdWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIGBiYXNlUmVzdGAgYWxpYXMgd2hpY2ggY2FuIGJlIHJlcGxhY2VkIHdpdGggYGlkZW50aXR5YCBieSBtb2R1bGVcbiAgICAgKiByZXBsYWNlbWVudCBwbHVnaW5zLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAdHlwZSB7RnVuY3Rpb259XG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICB2YXIgY2FzdFJlc3QgPSBiYXNlUmVzdDtcblxuICAgIC8qKlxuICAgICAqIENhc3RzIGBhcnJheWAgdG8gYSBzbGljZSBpZiBpdCdzIG5lZWRlZC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0IFRoZSBzdGFydCBwb3NpdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2VuZD1hcnJheS5sZW5ndGhdIFRoZSBlbmQgcG9zaXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjYXN0IHNsaWNlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNhc3RTbGljZShhcnJheSwgc3RhcnQsIGVuZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuZ3RoIDogZW5kO1xuICAgICAgcmV0dXJuICghc3RhcnQgJiYgZW5kID49IGxlbmd0aCkgPyBhcnJheSA6IGJhc2VTbGljZShhcnJheSwgc3RhcnQsIGVuZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzaW1wbGUgd3JhcHBlciBhcm91bmQgdGhlIGdsb2JhbCBbYGNsZWFyVGltZW91dGBdKGh0dHBzOi8vbWRuLmlvL2NsZWFyVGltZW91dCkuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfE9iamVjdH0gaWQgVGhlIHRpbWVyIGlkIG9yIHRpbWVvdXQgb2JqZWN0IG9mIHRoZSB0aW1lciB0byBjbGVhci5cbiAgICAgKi9cbiAgICB2YXIgY2xlYXJUaW1lb3V0ID0gY3R4Q2xlYXJUaW1lb3V0IHx8IGZ1bmN0aW9uKGlkKSB7XG4gICAgICByZXR1cm4gcm9vdC5jbGVhclRpbWVvdXQoaWQpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgIGBidWZmZXJgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyIFRoZSBidWZmZXIgdG8gY2xvbmUuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7QnVmZmVyfSBSZXR1cm5zIHRoZSBjbG9uZWQgYnVmZmVyLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lQnVmZmVyKGJ1ZmZlciwgaXNEZWVwKSB7XG4gICAgICBpZiAoaXNEZWVwKSB7XG4gICAgICAgIHJldHVybiBidWZmZXIuc2xpY2UoKTtcbiAgICAgIH1cbiAgICAgIHZhciBsZW5ndGggPSBidWZmZXIubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IGFsbG9jVW5zYWZlID8gYWxsb2NVbnNhZmUobGVuZ3RoKSA6IG5ldyBidWZmZXIuY29uc3RydWN0b3IobGVuZ3RoKTtcblxuICAgICAgYnVmZmVyLmNvcHkocmVzdWx0KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mIGBhcnJheUJ1ZmZlcmAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXlCdWZmZXJ9IGFycmF5QnVmZmVyIFRoZSBhcnJheSBidWZmZXIgdG8gY2xvbmUuXG4gICAgICogQHJldHVybnMge0FycmF5QnVmZmVyfSBSZXR1cm5zIHRoZSBjbG9uZWQgYXJyYXkgYnVmZmVyLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lQXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIpIHtcbiAgICAgIHZhciByZXN1bHQgPSBuZXcgYXJyYXlCdWZmZXIuY29uc3RydWN0b3IoYXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCk7XG4gICAgICBuZXcgVWludDhBcnJheShyZXN1bHQpLnNldChuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgYGRhdGFWaWV3YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGFWaWV3IFRoZSBkYXRhIHZpZXcgdG8gY2xvbmUuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgZGF0YSB2aWV3LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lRGF0YVZpZXcoZGF0YVZpZXcsIGlzRGVlcCkge1xuICAgICAgdmFyIGJ1ZmZlciA9IGlzRGVlcCA/IGNsb25lQXJyYXlCdWZmZXIoZGF0YVZpZXcuYnVmZmVyKSA6IGRhdGFWaWV3LmJ1ZmZlcjtcbiAgICAgIHJldHVybiBuZXcgZGF0YVZpZXcuY29uc3RydWN0b3IoYnVmZmVyLCBkYXRhVmlldy5ieXRlT2Zmc2V0LCBkYXRhVmlldy5ieXRlTGVuZ3RoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgYHJlZ2V4cGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSByZWdleHAgVGhlIHJlZ2V4cCB0byBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgcmVnZXhwLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lUmVnRXhwKHJlZ2V4cCkge1xuICAgICAgdmFyIHJlc3VsdCA9IG5ldyByZWdleHAuY29uc3RydWN0b3IocmVnZXhwLnNvdXJjZSwgcmVGbGFncy5leGVjKHJlZ2V4cCkpO1xuICAgICAgcmVzdWx0Lmxhc3RJbmRleCA9IHJlZ2V4cC5sYXN0SW5kZXg7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiB0aGUgYHN5bWJvbGAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc3ltYm9sIFRoZSBzeW1ib2wgb2JqZWN0IHRvIGNsb25lLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCBzeW1ib2wgb2JqZWN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lU3ltYm9sKHN5bWJvbCkge1xuICAgICAgcmV0dXJuIHN5bWJvbFZhbHVlT2YgPyBPYmplY3Qoc3ltYm9sVmFsdWVPZi5jYWxsKHN5bWJvbCkpIDoge307XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGNsb25lIG9mIGB0eXBlZEFycmF5YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHR5cGVkQXJyYXkgVGhlIHR5cGVkIGFycmF5IHRvIGNsb25lLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIHR5cGVkIGFycmF5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lVHlwZWRBcnJheSh0eXBlZEFycmF5LCBpc0RlZXApIHtcbiAgICAgIHZhciBidWZmZXIgPSBpc0RlZXAgPyBjbG9uZUFycmF5QnVmZmVyKHR5cGVkQXJyYXkuYnVmZmVyKSA6IHR5cGVkQXJyYXkuYnVmZmVyO1xuICAgICAgcmV0dXJuIG5ldyB0eXBlZEFycmF5LmNvbnN0cnVjdG9yKGJ1ZmZlciwgdHlwZWRBcnJheS5ieXRlT2Zmc2V0LCB0eXBlZEFycmF5Lmxlbmd0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29tcGFyZXMgdmFsdWVzIHRvIHNvcnQgdGhlbSBpbiBhc2NlbmRpbmcgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzb3J0IG9yZGVyIGluZGljYXRvciBmb3IgYHZhbHVlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb21wYXJlQXNjZW5kaW5nKHZhbHVlLCBvdGhlcikge1xuICAgICAgaWYgKHZhbHVlICE9PSBvdGhlcikge1xuICAgICAgICB2YXIgdmFsSXNEZWZpbmVkID0gdmFsdWUgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHZhbElzTnVsbCA9IHZhbHVlID09PSBudWxsLFxuICAgICAgICAgICAgdmFsSXNSZWZsZXhpdmUgPSB2YWx1ZSA9PT0gdmFsdWUsXG4gICAgICAgICAgICB2YWxJc1N5bWJvbCA9IGlzU3ltYm9sKHZhbHVlKTtcblxuICAgICAgICB2YXIgb3RoSXNEZWZpbmVkID0gb3RoZXIgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG90aElzTnVsbCA9IG90aGVyID09PSBudWxsLFxuICAgICAgICAgICAgb3RoSXNSZWZsZXhpdmUgPSBvdGhlciA9PT0gb3RoZXIsXG4gICAgICAgICAgICBvdGhJc1N5bWJvbCA9IGlzU3ltYm9sKG90aGVyKTtcblxuICAgICAgICBpZiAoKCFvdGhJc051bGwgJiYgIW90aElzU3ltYm9sICYmICF2YWxJc1N5bWJvbCAmJiB2YWx1ZSA+IG90aGVyKSB8fFxuICAgICAgICAgICAgKHZhbElzU3ltYm9sICYmIG90aElzRGVmaW5lZCAmJiBvdGhJc1JlZmxleGl2ZSAmJiAhb3RoSXNOdWxsICYmICFvdGhJc1N5bWJvbCkgfHxcbiAgICAgICAgICAgICh2YWxJc051bGwgJiYgb3RoSXNEZWZpbmVkICYmIG90aElzUmVmbGV4aXZlKSB8fFxuICAgICAgICAgICAgKCF2YWxJc0RlZmluZWQgJiYgb3RoSXNSZWZsZXhpdmUpIHx8XG4gICAgICAgICAgICAhdmFsSXNSZWZsZXhpdmUpIHtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKCF2YWxJc051bGwgJiYgIXZhbElzU3ltYm9sICYmICFvdGhJc1N5bWJvbCAmJiB2YWx1ZSA8IG90aGVyKSB8fFxuICAgICAgICAgICAgKG90aElzU3ltYm9sICYmIHZhbElzRGVmaW5lZCAmJiB2YWxJc1JlZmxleGl2ZSAmJiAhdmFsSXNOdWxsICYmICF2YWxJc1N5bWJvbCkgfHxcbiAgICAgICAgICAgIChvdGhJc051bGwgJiYgdmFsSXNEZWZpbmVkICYmIHZhbElzUmVmbGV4aXZlKSB8fFxuICAgICAgICAgICAgKCFvdGhJc0RlZmluZWQgJiYgdmFsSXNSZWZsZXhpdmUpIHx8XG4gICAgICAgICAgICAhb3RoSXNSZWZsZXhpdmUpIHtcbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZWQgYnkgYF8ub3JkZXJCeWAgdG8gY29tcGFyZSBtdWx0aXBsZSBwcm9wZXJ0aWVzIG9mIGEgdmFsdWUgdG8gYW5vdGhlclxuICAgICAqIGFuZCBzdGFibGUgc29ydCB0aGVtLlxuICAgICAqXG4gICAgICogSWYgYG9yZGVyc2AgaXMgdW5zcGVjaWZpZWQsIGFsbCB2YWx1ZXMgYXJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIuIE90aGVyd2lzZSxcbiAgICAgKiBzcGVjaWZ5IGFuIG9yZGVyIG9mIFwiZGVzY1wiIGZvciBkZXNjZW5kaW5nIG9yIFwiYXNjXCIgZm9yIGFzY2VuZGluZyBzb3J0IG9yZGVyXG4gICAgICogb2YgY29ycmVzcG9uZGluZyB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb3RoZXIgb2JqZWN0IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtib29sZWFuW118c3RyaW5nW119IG9yZGVycyBUaGUgb3JkZXIgdG8gc29ydCBieSBmb3IgZWFjaCBwcm9wZXJ0eS5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzb3J0IG9yZGVyIGluZGljYXRvciBmb3IgYG9iamVjdGAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29tcGFyZU11bHRpcGxlKG9iamVjdCwgb3RoZXIsIG9yZGVycykge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgb2JqQ3JpdGVyaWEgPSBvYmplY3QuY3JpdGVyaWEsXG4gICAgICAgICAgb3RoQ3JpdGVyaWEgPSBvdGhlci5jcml0ZXJpYSxcbiAgICAgICAgICBsZW5ndGggPSBvYmpDcml0ZXJpYS5sZW5ndGgsXG4gICAgICAgICAgb3JkZXJzTGVuZ3RoID0gb3JkZXJzLmxlbmd0aDtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IGNvbXBhcmVBc2NlbmRpbmcob2JqQ3JpdGVyaWFbaW5kZXhdLCBvdGhDcml0ZXJpYVtpbmRleF0pO1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgaWYgKGluZGV4ID49IG9yZGVyc0xlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIG9yZGVyID0gb3JkZXJzW2luZGV4XTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0ICogKG9yZGVyID09ICdkZXNjJyA/IC0xIDogMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIEZpeGVzIGFuIGBBcnJheSNzb3J0YCBidWcgaW4gdGhlIEpTIGVuZ2luZSBlbWJlZGRlZCBpbiBBZG9iZSBhcHBsaWNhdGlvbnNcbiAgICAgIC8vIHRoYXQgY2F1c2VzIGl0LCB1bmRlciBjZXJ0YWluIGNpcmN1bXN0YW5jZXMsIHRvIHByb3ZpZGUgdGhlIHNhbWUgdmFsdWUgZm9yXG4gICAgICAvLyBgb2JqZWN0YCBhbmQgYG90aGVyYC4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qYXNoa2VuYXMvdW5kZXJzY29yZS9wdWxsLzEyNDdcbiAgICAgIC8vIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICAvL1xuICAgICAgLy8gVGhpcyBhbHNvIGVuc3VyZXMgYSBzdGFibGUgc29ydCBpbiBWOCBhbmQgb3RoZXIgZW5naW5lcy5cbiAgICAgIC8vIFNlZSBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD05MCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgcmV0dXJuIG9iamVjdC5pbmRleCAtIG90aGVyLmluZGV4O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgdGhhdCBpcyB0aGUgY29tcG9zaXRpb24gb2YgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzLFxuICAgICAqIHBsYWNlaG9sZGVycywgYW5kIHByb3ZpZGVkIGFyZ3VtZW50cyBpbnRvIGEgc2luZ2xlIGFycmF5IG9mIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJncyBUaGUgcHJvdmlkZWQgYXJndW1lbnRzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHBhcnRpYWxzIFRoZSBhcmd1bWVudHMgdG8gcHJlcGVuZCB0byB0aG9zZSBwcm92aWRlZC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBob2xkZXJzIFRoZSBgcGFydGlhbHNgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXG4gICAgICogQHBhcmFtcyB7Ym9vbGVhbn0gW2lzQ3VycmllZF0gU3BlY2lmeSBjb21wb3NpbmcgZm9yIGEgY3VycmllZCBmdW5jdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjb21wb3NlZCBhcmd1bWVudHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29tcG9zZUFyZ3MoYXJncywgcGFydGlhbHMsIGhvbGRlcnMsIGlzQ3VycmllZCkge1xuICAgICAgdmFyIGFyZ3NJbmRleCA9IC0xLFxuICAgICAgICAgIGFyZ3NMZW5ndGggPSBhcmdzLmxlbmd0aCxcbiAgICAgICAgICBob2xkZXJzTGVuZ3RoID0gaG9sZGVycy5sZW5ndGgsXG4gICAgICAgICAgbGVmdEluZGV4ID0gLTEsXG4gICAgICAgICAgbGVmdExlbmd0aCA9IHBhcnRpYWxzLmxlbmd0aCxcbiAgICAgICAgICByYW5nZUxlbmd0aCA9IG5hdGl2ZU1heChhcmdzTGVuZ3RoIC0gaG9sZGVyc0xlbmd0aCwgMCksXG4gICAgICAgICAgcmVzdWx0ID0gQXJyYXkobGVmdExlbmd0aCArIHJhbmdlTGVuZ3RoKSxcbiAgICAgICAgICBpc1VuY3VycmllZCA9ICFpc0N1cnJpZWQ7XG5cbiAgICAgIHdoaWxlICgrK2xlZnRJbmRleCA8IGxlZnRMZW5ndGgpIHtcbiAgICAgICAgcmVzdWx0W2xlZnRJbmRleF0gPSBwYXJ0aWFsc1tsZWZ0SW5kZXhdO1xuICAgICAgfVxuICAgICAgd2hpbGUgKCsrYXJnc0luZGV4IDwgaG9sZGVyc0xlbmd0aCkge1xuICAgICAgICBpZiAoaXNVbmN1cnJpZWQgfHwgYXJnc0luZGV4IDwgYXJnc0xlbmd0aCkge1xuICAgICAgICAgIHJlc3VsdFtob2xkZXJzW2FyZ3NJbmRleF1dID0gYXJnc1thcmdzSW5kZXhdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB3aGlsZSAocmFuZ2VMZW5ndGgtLSkge1xuICAgICAgICByZXN1bHRbbGVmdEluZGV4KytdID0gYXJnc1thcmdzSW5kZXgrK107XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgY29tcG9zZUFyZ3NgIGV4Y2VwdCB0aGF0IHRoZSBhcmd1bWVudHMgY29tcG9zaXRpb25cbiAgICAgKiBpcyB0YWlsb3JlZCBmb3IgYF8ucGFydGlhbFJpZ2h0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJncyBUaGUgcHJvdmlkZWQgYXJndW1lbnRzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHBhcnRpYWxzIFRoZSBhcmd1bWVudHMgdG8gYXBwZW5kIHRvIHRob3NlIHByb3ZpZGVkLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGhvbGRlcnMgVGhlIGBwYXJ0aWFsc2AgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAgICAgKiBAcGFyYW1zIHtib29sZWFufSBbaXNDdXJyaWVkXSBTcGVjaWZ5IGNvbXBvc2luZyBmb3IgYSBjdXJyaWVkIGZ1bmN0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGNvbXBvc2VkIGFyZ3VtZW50cy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb21wb3NlQXJnc1JpZ2h0KGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzLCBpc0N1cnJpZWQpIHtcbiAgICAgIHZhciBhcmdzSW5kZXggPSAtMSxcbiAgICAgICAgICBhcmdzTGVuZ3RoID0gYXJncy5sZW5ndGgsXG4gICAgICAgICAgaG9sZGVyc0luZGV4ID0gLTEsXG4gICAgICAgICAgaG9sZGVyc0xlbmd0aCA9IGhvbGRlcnMubGVuZ3RoLFxuICAgICAgICAgIHJpZ2h0SW5kZXggPSAtMSxcbiAgICAgICAgICByaWdodExlbmd0aCA9IHBhcnRpYWxzLmxlbmd0aCxcbiAgICAgICAgICByYW5nZUxlbmd0aCA9IG5hdGl2ZU1heChhcmdzTGVuZ3RoIC0gaG9sZGVyc0xlbmd0aCwgMCksXG4gICAgICAgICAgcmVzdWx0ID0gQXJyYXkocmFuZ2VMZW5ndGggKyByaWdodExlbmd0aCksXG4gICAgICAgICAgaXNVbmN1cnJpZWQgPSAhaXNDdXJyaWVkO1xuXG4gICAgICB3aGlsZSAoKythcmdzSW5kZXggPCByYW5nZUxlbmd0aCkge1xuICAgICAgICByZXN1bHRbYXJnc0luZGV4XSA9IGFyZ3NbYXJnc0luZGV4XTtcbiAgICAgIH1cbiAgICAgIHZhciBvZmZzZXQgPSBhcmdzSW5kZXg7XG4gICAgICB3aGlsZSAoKytyaWdodEluZGV4IDwgcmlnaHRMZW5ndGgpIHtcbiAgICAgICAgcmVzdWx0W29mZnNldCArIHJpZ2h0SW5kZXhdID0gcGFydGlhbHNbcmlnaHRJbmRleF07XG4gICAgICB9XG4gICAgICB3aGlsZSAoKytob2xkZXJzSW5kZXggPCBob2xkZXJzTGVuZ3RoKSB7XG4gICAgICAgIGlmIChpc1VuY3VycmllZCB8fCBhcmdzSW5kZXggPCBhcmdzTGVuZ3RoKSB7XG4gICAgICAgICAgcmVzdWx0W29mZnNldCArIGhvbGRlcnNbaG9sZGVyc0luZGV4XV0gPSBhcmdzW2FyZ3NJbmRleCsrXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgdGhlIHZhbHVlcyBvZiBgc291cmNlYCB0byBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBzb3VyY2UgVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIGZyb20uXG4gICAgICogQHBhcmFtIHtBcnJheX0gW2FycmF5PVtdXSBUaGUgYXJyYXkgdG8gY29weSB2YWx1ZXMgdG8uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29weUFycmF5KHNvdXJjZSwgYXJyYXkpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHNvdXJjZS5sZW5ndGg7XG5cbiAgICAgIGFycmF5IHx8IChhcnJheSA9IEFycmF5KGxlbmd0aCkpO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgYXJyYXlbaW5kZXhdID0gc291cmNlW2luZGV4XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgcHJvcGVydGllcyBvZiBgc291cmNlYCB0byBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyBmcm9tLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHByb3BzIFRoZSBwcm9wZXJ0eSBpZGVudGlmaWVycyB0byBjb3B5LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyB0by5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb3BpZWQgdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29weU9iamVjdChzb3VyY2UsIHByb3BzLCBvYmplY3QsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIHZhciBpc05ldyA9ICFvYmplY3Q7XG4gICAgICBvYmplY3QgfHwgKG9iamVjdCA9IHt9KTtcblxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuXG4gICAgICAgIHZhciBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXJcbiAgICAgICAgICA/IGN1c3RvbWl6ZXIob2JqZWN0W2tleV0sIHNvdXJjZVtrZXldLCBrZXksIG9iamVjdCwgc291cmNlKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNOZXcpIHtcbiAgICAgICAgICBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcGllcyBvd24gc3ltYm9scyBvZiBgc291cmNlYCB0byBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IHRvIGNvcHkgc3ltYm9scyBmcm9tLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgc3ltYm9scyB0by5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvcHlTeW1ib2xzKHNvdXJjZSwgb2JqZWN0KSB7XG4gICAgICByZXR1cm4gY29weU9iamVjdChzb3VyY2UsIGdldFN5bWJvbHMoc291cmNlKSwgb2JqZWN0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgb3duIGFuZCBpbmhlcml0ZWQgc3ltYm9scyBvZiBgc291cmNlYCB0byBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IHRvIGNvcHkgc3ltYm9scyBmcm9tLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgc3ltYm9scyB0by5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvcHlTeW1ib2xzSW4oc291cmNlLCBvYmplY3QpIHtcbiAgICAgIHJldHVybiBjb3B5T2JqZWN0KHNvdXJjZSwgZ2V0U3ltYm9sc0luKHNvdXJjZSksIG9iamVjdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8uZ3JvdXBCeWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHNldHRlciBUaGUgZnVuY3Rpb24gdG8gc2V0IGFjY3VtdWxhdG9yIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaW5pdGlhbGl6ZXJdIFRoZSBhY2N1bXVsYXRvciBvYmplY3QgaW5pdGlhbGl6ZXIuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYWdncmVnYXRvciBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVBZ2dyZWdhdG9yKHNldHRlciwgaW5pdGlhbGl6ZXIpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICAgICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUFnZ3JlZ2F0b3IgOiBiYXNlQWdncmVnYXRvcixcbiAgICAgICAgICAgIGFjY3VtdWxhdG9yID0gaW5pdGlhbGl6ZXIgPyBpbml0aWFsaXplcigpIDoge307XG5cbiAgICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgc2V0dGVyLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMiksIGFjY3VtdWxhdG9yKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8uYXNzaWduYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gYXNzaWduZXIgVGhlIGZ1bmN0aW9uIHRvIGFzc2lnbiB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYXNzaWduZXIgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQXNzaWduZXIoYXNzaWduZXIpIHtcbiAgICAgIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihvYmplY3QsIHNvdXJjZXMpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgICBsZW5ndGggPSBzb3VyY2VzLmxlbmd0aCxcbiAgICAgICAgICAgIGN1c3RvbWl6ZXIgPSBsZW5ndGggPiAxID8gc291cmNlc1tsZW5ndGggLSAxXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGd1YXJkID0gbGVuZ3RoID4gMiA/IHNvdXJjZXNbMl0gOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgY3VzdG9taXplciA9IChhc3NpZ25lci5sZW5ndGggPiAzICYmIHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicpXG4gICAgICAgICAgPyAobGVuZ3RoLS0sIGN1c3RvbWl6ZXIpXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHNvdXJjZXNbMF0sIHNvdXJjZXNbMV0sIGd1YXJkKSkge1xuICAgICAgICAgIGN1c3RvbWl6ZXIgPSBsZW5ndGggPCAzID8gdW5kZWZpbmVkIDogY3VzdG9taXplcjtcbiAgICAgICAgICBsZW5ndGggPSAxO1xuICAgICAgICB9XG4gICAgICAgIG9iamVjdCA9IE9iamVjdChvYmplY3QpO1xuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgIHZhciBzb3VyY2UgPSBzb3VyY2VzW2luZGV4XTtcbiAgICAgICAgICBpZiAoc291cmNlKSB7XG4gICAgICAgICAgICBhc3NpZ25lcihvYmplY3QsIHNvdXJjZSwgaW5kZXgsIGN1c3RvbWl6ZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBiYXNlRWFjaGAgb3IgYGJhc2VFYWNoUmlnaHRgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGEgY29sbGVjdGlvbi5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBiYXNlIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUJhc2VFYWNoKGVhY2hGdW5jLCBmcm9tUmlnaHQpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICAgICAgICBpZiAoY29sbGVjdGlvbiA9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0FycmF5TGlrZShjb2xsZWN0aW9uKSkge1xuICAgICAgICAgIHJldHVybiBlYWNoRnVuYyhjb2xsZWN0aW9uLCBpdGVyYXRlZSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGxlbmd0aCA9IGNvbGxlY3Rpb24ubGVuZ3RoLFxuICAgICAgICAgICAgaW5kZXggPSBmcm9tUmlnaHQgPyBsZW5ndGggOiAtMSxcbiAgICAgICAgICAgIGl0ZXJhYmxlID0gT2JqZWN0KGNvbGxlY3Rpb24pO1xuXG4gICAgICAgIHdoaWxlICgoZnJvbVJpZ2h0ID8gaW5kZXgtLSA6ICsraW5kZXggPCBsZW5ndGgpKSB7XG4gICAgICAgICAgaWYgKGl0ZXJhdGVlKGl0ZXJhYmxlW2luZGV4XSwgaW5kZXgsIGl0ZXJhYmxlKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGJhc2UgZnVuY3Rpb24gZm9yIG1ldGhvZHMgbGlrZSBgXy5mb3JJbmAgYW5kIGBfLmZvck93bmAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGJhc2UgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQmFzZUZvcihmcm9tUmlnaHQpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QsIGl0ZXJhdGVlLCBrZXlzRnVuYykge1xuICAgICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICAgIGl0ZXJhYmxlID0gT2JqZWN0KG9iamVjdCksXG4gICAgICAgICAgICBwcm9wcyA9IGtleXNGdW5jKG9iamVjdCksXG4gICAgICAgICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cbiAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgICAgdmFyIGtleSA9IHByb3BzW2Zyb21SaWdodCA/IGxlbmd0aCA6ICsraW5kZXhdO1xuICAgICAgICAgIGlmIChpdGVyYXRlZShpdGVyYWJsZVtrZXldLCBrZXksIGl0ZXJhYmxlKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCB3cmFwcyBgZnVuY2AgdG8gaW52b2tlIGl0IHdpdGggdGhlIG9wdGlvbmFsIGB0aGlzYFxuICAgICAqIGJpbmRpbmcgb2YgYHRoaXNBcmdgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB3cmFwLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGNyZWF0ZVdyYXBgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB3cmFwcGVkIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUJpbmQoZnVuYywgYml0bWFzaywgdGhpc0FyZykge1xuICAgICAgdmFyIGlzQmluZCA9IGJpdG1hc2sgJiBXUkFQX0JJTkRfRkxBRyxcbiAgICAgICAgICBDdG9yID0gY3JlYXRlQ3RvcihmdW5jKTtcblxuICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAgICAgdmFyIGZuID0gKHRoaXMgJiYgdGhpcyAhPT0gcm9vdCAmJiB0aGlzIGluc3RhbmNlb2Ygd3JhcHBlcikgPyBDdG9yIDogZnVuYztcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KGlzQmluZCA/IHRoaXNBcmcgOiB0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8ubG93ZXJGaXJzdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2ROYW1lIFRoZSBuYW1lIG9mIHRoZSBgU3RyaW5nYCBjYXNlIG1ldGhvZCB0byB1c2UuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY2FzZSBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVDYXNlRmlyc3QobWV0aG9kTmFtZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuXG4gICAgICAgIHZhciBzdHJTeW1ib2xzID0gaGFzVW5pY29kZShzdHJpbmcpXG4gICAgICAgICAgPyBzdHJpbmdUb0FycmF5KHN0cmluZylcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICB2YXIgY2hyID0gc3RyU3ltYm9sc1xuICAgICAgICAgID8gc3RyU3ltYm9sc1swXVxuICAgICAgICAgIDogc3RyaW5nLmNoYXJBdCgwKTtcblxuICAgICAgICB2YXIgdHJhaWxpbmcgPSBzdHJTeW1ib2xzXG4gICAgICAgICAgPyBjYXN0U2xpY2Uoc3RyU3ltYm9scywgMSkuam9pbignJylcbiAgICAgICAgICA6IHN0cmluZy5zbGljZSgxKTtcblxuICAgICAgICByZXR1cm4gY2hyW21ldGhvZE5hbWVdKCkgKyB0cmFpbGluZztcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8uY2FtZWxDYXNlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgVGhlIGZ1bmN0aW9uIHRvIGNvbWJpbmUgZWFjaCB3b3JkLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNvbXBvdW5kZXIgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlQ29tcG91bmRlcihjYWxsYmFjaykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN0cmluZykge1xuICAgICAgICByZXR1cm4gYXJyYXlSZWR1Y2Uod29yZHMoZGVidXJyKHN0cmluZykucmVwbGFjZShyZUFwb3MsICcnKSksIGNhbGxiYWNrLCAnJyk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHByb2R1Y2VzIGFuIGluc3RhbmNlIG9mIGBDdG9yYCByZWdhcmRsZXNzIG9mXG4gICAgICogd2hldGhlciBpdCB3YXMgaW52b2tlZCBhcyBwYXJ0IG9mIGEgYG5ld2AgZXhwcmVzc2lvbiBvciBieSBgY2FsbGAgb3IgYGFwcGx5YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gQ3RvciBUaGUgY29uc3RydWN0b3IgdG8gd3JhcC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB3cmFwcGVkIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUN0b3IoQ3Rvcikge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAvLyBVc2UgYSBgc3dpdGNoYCBzdGF0ZW1lbnQgdG8gd29yayB3aXRoIGNsYXNzIGNvbnN0cnVjdG9ycy4gU2VlXG4gICAgICAgIC8vIGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLWVjbWFzY3JpcHQtZnVuY3Rpb24tb2JqZWN0cy1jYWxsLXRoaXNhcmd1bWVudC1hcmd1bWVudHNsaXN0XG4gICAgICAgIC8vIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgICBzd2l0Y2ggKGFyZ3MubGVuZ3RoKSB7XG4gICAgICAgICAgY2FzZSAwOiByZXR1cm4gbmV3IEN0b3I7XG4gICAgICAgICAgY2FzZSAxOiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSk7XG4gICAgICAgICAgY2FzZSAyOiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSk7XG4gICAgICAgICAgY2FzZSAzOiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSk7XG4gICAgICAgICAgY2FzZSA0OiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSk7XG4gICAgICAgICAgY2FzZSA1OiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSwgYXJnc1s0XSk7XG4gICAgICAgICAgY2FzZSA2OiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSwgYXJnc1s0XSwgYXJnc1s1XSk7XG4gICAgICAgICAgY2FzZSA3OiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSwgYXJnc1s0XSwgYXJnc1s1XSwgYXJnc1s2XSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRoaXNCaW5kaW5nID0gYmFzZUNyZWF0ZShDdG9yLnByb3RvdHlwZSksXG4gICAgICAgICAgICByZXN1bHQgPSBDdG9yLmFwcGx5KHRoaXNCaW5kaW5nLCBhcmdzKTtcblxuICAgICAgICAvLyBNaW1pYyB0aGUgY29uc3RydWN0b3IncyBgcmV0dXJuYCBiZWhhdmlvci5cbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jeDEzLjIuMiBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgICByZXR1cm4gaXNPYmplY3QocmVzdWx0KSA/IHJlc3VsdCA6IHRoaXNCaW5kaW5nO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCB3cmFwcyBgZnVuY2AgdG8gZW5hYmxlIGN1cnJ5aW5nLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB3cmFwLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGNyZWF0ZVdyYXBgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGFyaXR5IFRoZSBhcml0eSBvZiBgZnVuY2AuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgd3JhcHBlZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVDdXJyeShmdW5jLCBiaXRtYXNrLCBhcml0eSkge1xuICAgICAgdmFyIEN0b3IgPSBjcmVhdGVDdG9yKGZ1bmMpO1xuXG4gICAgICBmdW5jdGlvbiB3cmFwcGVyKCkge1xuICAgICAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCxcbiAgICAgICAgICAgIGFyZ3MgPSBBcnJheShsZW5ndGgpLFxuICAgICAgICAgICAgaW5kZXggPSBsZW5ndGgsXG4gICAgICAgICAgICBwbGFjZWhvbGRlciA9IGdldEhvbGRlcih3cmFwcGVyKTtcblxuICAgICAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgICAgIGFyZ3NbaW5kZXhdID0gYXJndW1lbnRzW2luZGV4XTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaG9sZGVycyA9IChsZW5ndGggPCAzICYmIGFyZ3NbMF0gIT09IHBsYWNlaG9sZGVyICYmIGFyZ3NbbGVuZ3RoIC0gMV0gIT09IHBsYWNlaG9sZGVyKVxuICAgICAgICAgID8gW11cbiAgICAgICAgICA6IHJlcGxhY2VIb2xkZXJzKGFyZ3MsIHBsYWNlaG9sZGVyKTtcblxuICAgICAgICBsZW5ndGggLT0gaG9sZGVycy5sZW5ndGg7XG4gICAgICAgIGlmIChsZW5ndGggPCBhcml0eSkge1xuICAgICAgICAgIHJldHVybiBjcmVhdGVSZWN1cnJ5KFxuICAgICAgICAgICAgZnVuYywgYml0bWFzaywgY3JlYXRlSHlicmlkLCB3cmFwcGVyLnBsYWNlaG9sZGVyLCB1bmRlZmluZWQsXG4gICAgICAgICAgICBhcmdzLCBob2xkZXJzLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgYXJpdHkgLSBsZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBmbiA9ICh0aGlzICYmIHRoaXMgIT09IHJvb3QgJiYgdGhpcyBpbnN0YW5jZW9mIHdyYXBwZXIpID8gQ3RvciA6IGZ1bmM7XG4gICAgICAgIHJldHVybiBhcHBseShmbiwgdGhpcywgYXJncyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYF8uZmluZGAgb3IgYF8uZmluZExhc3RgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmaW5kSW5kZXhGdW5jIFRoZSBmdW5jdGlvbiB0byBmaW5kIHRoZSBjb2xsZWN0aW9uIGluZGV4LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZpbmQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlRmluZChmaW5kSW5kZXhGdW5jKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgcHJlZGljYXRlLCBmcm9tSW5kZXgpIHtcbiAgICAgICAgdmFyIGl0ZXJhYmxlID0gT2JqZWN0KGNvbGxlY3Rpb24pO1xuICAgICAgICBpZiAoIWlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pKSB7XG4gICAgICAgICAgdmFyIGl0ZXJhdGVlID0gZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKTtcbiAgICAgICAgICBjb2xsZWN0aW9uID0ga2V5cyhjb2xsZWN0aW9uKTtcbiAgICAgICAgICBwcmVkaWNhdGUgPSBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIGl0ZXJhdGVlKGl0ZXJhYmxlW2tleV0sIGtleSwgaXRlcmFibGUpOyB9O1xuICAgICAgICB9XG4gICAgICAgIHZhciBpbmRleCA9IGZpbmRJbmRleEZ1bmMoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBmcm9tSW5kZXgpO1xuICAgICAgICByZXR1cm4gaW5kZXggPiAtMSA/IGl0ZXJhYmxlW2l0ZXJhdGVlID8gY29sbGVjdGlvbltpbmRleF0gOiBpbmRleF0gOiB1bmRlZmluZWQ7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBgXy5mbG93YCBvciBgXy5mbG93UmlnaHRgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmbG93IGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZUZsb3coZnJvbVJpZ2h0KSB7XG4gICAgICByZXR1cm4gZmxhdFJlc3QoZnVuY3Rpb24oZnVuY3MpIHtcbiAgICAgICAgdmFyIGxlbmd0aCA9IGZ1bmNzLmxlbmd0aCxcbiAgICAgICAgICAgIGluZGV4ID0gbGVuZ3RoLFxuICAgICAgICAgICAgcHJlcmVxID0gTG9kYXNoV3JhcHBlci5wcm90b3R5cGUudGhydTtcblxuICAgICAgICBpZiAoZnJvbVJpZ2h0KSB7XG4gICAgICAgICAgZnVuY3MucmV2ZXJzZSgpO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgICAgdmFyIGZ1bmMgPSBmdW5jc1tpbmRleF07XG4gICAgICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHByZXJlcSAmJiAhd3JhcHBlciAmJiBnZXRGdW5jTmFtZShmdW5jKSA9PSAnd3JhcHBlcicpIHtcbiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gbmV3IExvZGFzaFdyYXBwZXIoW10sIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpbmRleCA9IHdyYXBwZXIgPyBpbmRleCA6IGxlbmd0aDtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICBmdW5jID0gZnVuY3NbaW5kZXhdO1xuXG4gICAgICAgICAgdmFyIGZ1bmNOYW1lID0gZ2V0RnVuY05hbWUoZnVuYyksXG4gICAgICAgICAgICAgIGRhdGEgPSBmdW5jTmFtZSA9PSAnd3JhcHBlcicgPyBnZXREYXRhKGZ1bmMpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgaWYgKGRhdGEgJiYgaXNMYXppYWJsZShkYXRhWzBdKSAmJlxuICAgICAgICAgICAgICAgIGRhdGFbMV0gPT0gKFdSQVBfQVJZX0ZMQUcgfCBXUkFQX0NVUlJZX0ZMQUcgfCBXUkFQX1BBUlRJQUxfRkxBRyB8IFdSQVBfUkVBUkdfRkxBRykgJiZcbiAgICAgICAgICAgICAgICAhZGF0YVs0XS5sZW5ndGggJiYgZGF0YVs5XSA9PSAxXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgd3JhcHBlciA9IHdyYXBwZXJbZ2V0RnVuY05hbWUoZGF0YVswXSldLmFwcGx5KHdyYXBwZXIsIGRhdGFbM10pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3cmFwcGVyID0gKGZ1bmMubGVuZ3RoID09IDEgJiYgaXNMYXppYWJsZShmdW5jKSlcbiAgICAgICAgICAgICAgPyB3cmFwcGVyW2Z1bmNOYW1lXSgpXG4gICAgICAgICAgICAgIDogd3JhcHBlci50aHJ1KGZ1bmMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgICAgICAgIHZhbHVlID0gYXJnc1swXTtcblxuICAgICAgICAgIGlmICh3cmFwcGVyICYmIGFyZ3MubGVuZ3RoID09IDEgJiYgaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwcGVyLnBsYW50KHZhbHVlKS52YWx1ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgaW5kZXggPSAwLFxuICAgICAgICAgICAgICByZXN1bHQgPSBsZW5ndGggPyBmdW5jc1tpbmRleF0uYXBwbHkodGhpcywgYXJncykgOiB2YWx1ZTtcblxuICAgICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBmdW5jc1tpbmRleF0uY2FsbCh0aGlzLCByZXN1bHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIHRvIGludm9rZSBpdCB3aXRoIG9wdGlvbmFsIGB0aGlzYFxuICAgICAqIGJpbmRpbmcgb2YgYHRoaXNBcmdgLCBwYXJ0aWFsIGFwcGxpY2F0aW9uLCBhbmQgY3VycnlpbmcuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258c3RyaW5nfSBmdW5jIFRoZSBmdW5jdGlvbiBvciBtZXRob2QgbmFtZSB0byB3cmFwLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGNyZWF0ZVdyYXBgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbcGFydGlhbHNdIFRoZSBhcmd1bWVudHMgdG8gcHJlcGVuZCB0byB0aG9zZSBwcm92aWRlZCB0b1xuICAgICAqICB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtob2xkZXJzXSBUaGUgYHBhcnRpYWxzYCBwbGFjZWhvbGRlciBpbmRleGVzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtwYXJ0aWFsc1JpZ2h0XSBUaGUgYXJndW1lbnRzIHRvIGFwcGVuZCB0byB0aG9zZSBwcm92aWRlZFxuICAgICAqICB0byB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtob2xkZXJzUmlnaHRdIFRoZSBgcGFydGlhbHNSaWdodGAgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbYXJnUG9zXSBUaGUgYXJndW1lbnQgcG9zaXRpb25zIG9mIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcnldIFRoZSBhcml0eSBjYXAgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJpdHldIFRoZSBhcml0eSBvZiBgZnVuY2AuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgd3JhcHBlZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVIeWJyaWQoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMsIHBhcnRpYWxzUmlnaHQsIGhvbGRlcnNSaWdodCwgYXJnUG9zLCBhcnksIGFyaXR5KSB7XG4gICAgICB2YXIgaXNBcnkgPSBiaXRtYXNrICYgV1JBUF9BUllfRkxBRyxcbiAgICAgICAgICBpc0JpbmQgPSBiaXRtYXNrICYgV1JBUF9CSU5EX0ZMQUcsXG4gICAgICAgICAgaXNCaW5kS2V5ID0gYml0bWFzayAmIFdSQVBfQklORF9LRVlfRkxBRyxcbiAgICAgICAgICBpc0N1cnJpZWQgPSBiaXRtYXNrICYgKFdSQVBfQ1VSUllfRkxBRyB8IFdSQVBfQ1VSUllfUklHSFRfRkxBRyksXG4gICAgICAgICAgaXNGbGlwID0gYml0bWFzayAmIFdSQVBfRkxJUF9GTEFHLFxuICAgICAgICAgIEN0b3IgPSBpc0JpbmRLZXkgPyB1bmRlZmluZWQgOiBjcmVhdGVDdG9yKGZ1bmMpO1xuXG4gICAgICBmdW5jdGlvbiB3cmFwcGVyKCkge1xuICAgICAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCxcbiAgICAgICAgICAgIGFyZ3MgPSBBcnJheShsZW5ndGgpLFxuICAgICAgICAgICAgaW5kZXggPSBsZW5ndGg7XG5cbiAgICAgICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgICAgICBhcmdzW2luZGV4XSA9IGFyZ3VtZW50c1tpbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQ3VycmllZCkge1xuICAgICAgICAgIHZhciBwbGFjZWhvbGRlciA9IGdldEhvbGRlcih3cmFwcGVyKSxcbiAgICAgICAgICAgICAgaG9sZGVyc0NvdW50ID0gY291bnRIb2xkZXJzKGFyZ3MsIHBsYWNlaG9sZGVyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFydGlhbHMpIHtcbiAgICAgICAgICBhcmdzID0gY29tcG9zZUFyZ3MoYXJncywgcGFydGlhbHMsIGhvbGRlcnMsIGlzQ3VycmllZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcnRpYWxzUmlnaHQpIHtcbiAgICAgICAgICBhcmdzID0gY29tcG9zZUFyZ3NSaWdodChhcmdzLCBwYXJ0aWFsc1JpZ2h0LCBob2xkZXJzUmlnaHQsIGlzQ3VycmllZCk7XG4gICAgICAgIH1cbiAgICAgICAgbGVuZ3RoIC09IGhvbGRlcnNDb3VudDtcbiAgICAgICAgaWYgKGlzQ3VycmllZCAmJiBsZW5ndGggPCBhcml0eSkge1xuICAgICAgICAgIHZhciBuZXdIb2xkZXJzID0gcmVwbGFjZUhvbGRlcnMoYXJncywgcGxhY2Vob2xkZXIpO1xuICAgICAgICAgIHJldHVybiBjcmVhdGVSZWN1cnJ5KFxuICAgICAgICAgICAgZnVuYywgYml0bWFzaywgY3JlYXRlSHlicmlkLCB3cmFwcGVyLnBsYWNlaG9sZGVyLCB0aGlzQXJnLFxuICAgICAgICAgICAgYXJncywgbmV3SG9sZGVycywgYXJnUG9zLCBhcnksIGFyaXR5IC0gbGVuZ3RoXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdGhpc0JpbmRpbmcgPSBpc0JpbmQgPyB0aGlzQXJnIDogdGhpcyxcbiAgICAgICAgICAgIGZuID0gaXNCaW5kS2V5ID8gdGhpc0JpbmRpbmdbZnVuY10gOiBmdW5jO1xuXG4gICAgICAgIGxlbmd0aCA9IGFyZ3MubGVuZ3RoO1xuICAgICAgICBpZiAoYXJnUG9zKSB7XG4gICAgICAgICAgYXJncyA9IHJlb3JkZXIoYXJncywgYXJnUG9zKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0ZsaXAgJiYgbGVuZ3RoID4gMSkge1xuICAgICAgICAgIGFyZ3MucmV2ZXJzZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0FyeSAmJiBhcnkgPCBsZW5ndGgpIHtcbiAgICAgICAgICBhcmdzLmxlbmd0aCA9IGFyeTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcyAmJiB0aGlzICE9PSByb290ICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyKSB7XG4gICAgICAgICAgZm4gPSBDdG9yIHx8IGNyZWF0ZUN0b3IoZm4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzQmluZGluZywgYXJncyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gbGlrZSBgXy5pbnZlcnRCeWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHNldHRlciBUaGUgZnVuY3Rpb24gdG8gc2V0IGFjY3VtdWxhdG9yIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB0b0l0ZXJhdGVlIFRoZSBmdW5jdGlvbiB0byByZXNvbHZlIGl0ZXJhdGVlcy5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBpbnZlcnRlciBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVJbnZlcnRlcihzZXR0ZXIsIHRvSXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QsIGl0ZXJhdGVlKSB7XG4gICAgICAgIHJldHVybiBiYXNlSW52ZXJ0ZXIob2JqZWN0LCBzZXR0ZXIsIHRvSXRlcmF0ZWUoaXRlcmF0ZWUpLCB7fSk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHBlcmZvcm1zIGEgbWF0aGVtYXRpY2FsIG9wZXJhdGlvbiBvbiB0d28gdmFsdWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcGVyYXRvciBUaGUgZnVuY3Rpb24gdG8gcGVyZm9ybSB0aGUgb3BlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZGVmYXVsdFZhbHVlXSBUaGUgdmFsdWUgdXNlZCBmb3IgYHVuZGVmaW5lZGAgYXJndW1lbnRzLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG1hdGhlbWF0aWNhbCBvcGVyYXRpb24gZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlTWF0aE9wZXJhdGlvbihvcGVyYXRvciwgZGVmYXVsdFZhbHVlKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24odmFsdWUsIG90aGVyKSB7XG4gICAgICAgIHZhciByZXN1bHQ7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmIG90aGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmVzdWx0ID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG90aGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBvdGhlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyB8fCB0eXBlb2Ygb3RoZXIgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHZhbHVlID0gYmFzZVRvU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIG90aGVyID0gYmFzZVRvU3RyaW5nKG90aGVyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSBiYXNlVG9OdW1iZXIodmFsdWUpO1xuICAgICAgICAgICAgb3RoZXIgPSBiYXNlVG9OdW1iZXIob3RoZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQgPSBvcGVyYXRvcih2YWx1ZSwgb3RoZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiBsaWtlIGBfLm92ZXJgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBhcnJheUZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBpdGVyYXRlZXMuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgb3ZlciBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVPdmVyKGFycmF5RnVuYykge1xuICAgICAgcmV0dXJuIGZsYXRSZXN0KGZ1bmN0aW9uKGl0ZXJhdGVlcykge1xuICAgICAgICBpdGVyYXRlZXMgPSBhcnJheU1hcChpdGVyYXRlZXMsIGJhc2VVbmFyeShnZXRJdGVyYXRlZSgpKSk7XG4gICAgICAgIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihhcmdzKSB7XG4gICAgICAgICAgdmFyIHRoaXNBcmcgPSB0aGlzO1xuICAgICAgICAgIHJldHVybiBhcnJheUZ1bmMoaXRlcmF0ZWVzLCBmdW5jdGlvbihpdGVyYXRlZSkge1xuICAgICAgICAgICAgcmV0dXJuIGFwcGx5KGl0ZXJhdGVlLCB0aGlzQXJnLCBhcmdzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHRoZSBwYWRkaW5nIGZvciBgc3RyaW5nYCBiYXNlZCBvbiBgbGVuZ3RoYC4gVGhlIGBjaGFyc2Agc3RyaW5nXG4gICAgICogaXMgdHJ1bmNhdGVkIGlmIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBleGNlZWRzIGBsZW5ndGhgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbGVuZ3RoIFRoZSBwYWRkaW5nIGxlbmd0aC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYXJzPScgJ10gVGhlIHN0cmluZyB1c2VkIGFzIHBhZGRpbmcuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcGFkZGluZyBmb3IgYHN0cmluZ2AuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlUGFkZGluZyhsZW5ndGgsIGNoYXJzKSB7XG4gICAgICBjaGFycyA9IGNoYXJzID09PSB1bmRlZmluZWQgPyAnICcgOiBiYXNlVG9TdHJpbmcoY2hhcnMpO1xuXG4gICAgICB2YXIgY2hhcnNMZW5ndGggPSBjaGFycy5sZW5ndGg7XG4gICAgICBpZiAoY2hhcnNMZW5ndGggPCAyKSB7XG4gICAgICAgIHJldHVybiBjaGFyc0xlbmd0aCA/IGJhc2VSZXBlYXQoY2hhcnMsIGxlbmd0aCkgOiBjaGFycztcbiAgICAgIH1cbiAgICAgIHZhciByZXN1bHQgPSBiYXNlUmVwZWF0KGNoYXJzLCBuYXRpdmVDZWlsKGxlbmd0aCAvIHN0cmluZ1NpemUoY2hhcnMpKSk7XG4gICAgICByZXR1cm4gaGFzVW5pY29kZShjaGFycylcbiAgICAgICAgPyBjYXN0U2xpY2Uoc3RyaW5nVG9BcnJheShyZXN1bHQpLCAwLCBsZW5ndGgpLmpvaW4oJycpXG4gICAgICAgIDogcmVzdWx0LnNsaWNlKDAsIGxlbmd0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIHRvIGludm9rZSBpdCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZ1xuICAgICAqIG9mIGB0aGlzQXJnYCBhbmQgYHBhcnRpYWxzYCBwcmVwZW5kZWQgdG8gdGhlIGFyZ3VtZW50cyBpdCByZWNlaXZlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBjcmVhdGVXcmFwYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEBwYXJhbSB7Kn0gdGhpc0FyZyBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHBhcnRpYWxzIFRoZSBhcmd1bWVudHMgdG8gcHJlcGVuZCB0byB0aG9zZSBwcm92aWRlZCB0b1xuICAgICAqICB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHdyYXBwZWQgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3JlYXRlUGFydGlhbChmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBwYXJ0aWFscykge1xuICAgICAgdmFyIGlzQmluZCA9IGJpdG1hc2sgJiBXUkFQX0JJTkRfRkxBRyxcbiAgICAgICAgICBDdG9yID0gY3JlYXRlQ3RvcihmdW5jKTtcblxuICAgICAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAgICAgdmFyIGFyZ3NJbmRleCA9IC0xLFxuICAgICAgICAgICAgYXJnc0xlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG4gICAgICAgICAgICBsZWZ0SW5kZXggPSAtMSxcbiAgICAgICAgICAgIGxlZnRMZW5ndGggPSBwYXJ0aWFscy5sZW5ndGgsXG4gICAgICAgICAgICBhcmdzID0gQXJyYXkobGVmdExlbmd0aCArIGFyZ3NMZW5ndGgpLFxuICAgICAgICAgICAgZm4gPSAodGhpcyAmJiB0aGlzICE9PSByb290ICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyKSA/IEN0b3IgOiBmdW5jO1xuXG4gICAgICAgIHdoaWxlICgrK2xlZnRJbmRleCA8IGxlZnRMZW5ndGgpIHtcbiAgICAgICAgICBhcmdzW2xlZnRJbmRleF0gPSBwYXJ0aWFsc1tsZWZ0SW5kZXhdO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChhcmdzTGVuZ3RoLS0pIHtcbiAgICAgICAgICBhcmdzW2xlZnRJbmRleCsrXSA9IGFyZ3VtZW50c1srK2FyZ3NJbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFwcGx5KGZuLCBpc0JpbmQgPyB0aGlzQXJnIDogdGhpcywgYXJncyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYF8ucmFuZ2VgIG9yIGBfLnJhbmdlUmlnaHRgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyByYW5nZSBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVSYW5nZShmcm9tUmlnaHQpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihzdGFydCwgZW5kLCBzdGVwKSB7XG4gICAgICAgIGlmIChzdGVwICYmIHR5cGVvZiBzdGVwICE9ICdudW1iZXInICYmIGlzSXRlcmF0ZWVDYWxsKHN0YXJ0LCBlbmQsIHN0ZXApKSB7XG4gICAgICAgICAgZW5kID0gc3RlcCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICAvLyBFbnN1cmUgdGhlIHNpZ24gb2YgYC0wYCBpcyBwcmVzZXJ2ZWQuXG4gICAgICAgIHN0YXJ0ID0gdG9GaW5pdGUoc3RhcnQpO1xuICAgICAgICBpZiAoZW5kID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBlbmQgPSBzdGFydDtcbiAgICAgICAgICBzdGFydCA9IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZW5kID0gdG9GaW5pdGUoZW5kKTtcbiAgICAgICAgfVxuICAgICAgICBzdGVwID0gc3RlcCA9PT0gdW5kZWZpbmVkID8gKHN0YXJ0IDwgZW5kID8gMSA6IC0xKSA6IHRvRmluaXRlKHN0ZXApO1xuICAgICAgICByZXR1cm4gYmFzZVJhbmdlKHN0YXJ0LCBlbmQsIHN0ZXAsIGZyb21SaWdodCk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHBlcmZvcm1zIGEgcmVsYXRpb25hbCBvcGVyYXRpb24gb24gdHdvIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3BlcmF0b3IgVGhlIGZ1bmN0aW9uIHRvIHBlcmZvcm0gdGhlIG9wZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyByZWxhdGlvbmFsIG9wZXJhdGlvbiBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVSZWxhdGlvbmFsT3BlcmF0aW9uKG9wZXJhdG9yKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24odmFsdWUsIG90aGVyKSB7XG4gICAgICAgIGlmICghKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyAmJiB0eXBlb2Ygb3RoZXIgPT0gJ3N0cmluZycpKSB7XG4gICAgICAgICAgdmFsdWUgPSB0b051bWJlcih2YWx1ZSk7XG4gICAgICAgICAgb3RoZXIgPSB0b051bWJlcihvdGhlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9wZXJhdG9yKHZhbHVlLCBvdGhlcik7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHdyYXBzIGBmdW5jYCB0byBjb250aW51ZSBjdXJyeWluZy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBjcmVhdGVXcmFwYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHdyYXBGdW5jIFRoZSBmdW5jdGlvbiB0byBjcmVhdGUgdGhlIGBmdW5jYCB3cmFwcGVyLlxuICAgICAqIEBwYXJhbSB7Kn0gcGxhY2Vob2xkZXIgVGhlIHBsYWNlaG9sZGVyIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3BhcnRpYWxzXSBUaGUgYXJndW1lbnRzIHRvIHByZXBlbmQgdG8gdGhvc2UgcHJvdmlkZWQgdG9cbiAgICAgKiAgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc10gVGhlIGBwYXJ0aWFsc2AgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBbYXJnUG9zXSBUaGUgYXJndW1lbnQgcG9zaXRpb25zIG9mIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcnldIFRoZSBhcml0eSBjYXAgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJpdHldIFRoZSBhcml0eSBvZiBgZnVuY2AuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgd3JhcHBlZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVSZWN1cnJ5KGZ1bmMsIGJpdG1hc2ssIHdyYXBGdW5jLCBwbGFjZWhvbGRlciwgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMsIGFyZ1BvcywgYXJ5LCBhcml0eSkge1xuICAgICAgdmFyIGlzQ3VycnkgPSBiaXRtYXNrICYgV1JBUF9DVVJSWV9GTEFHLFxuICAgICAgICAgIG5ld0hvbGRlcnMgPSBpc0N1cnJ5ID8gaG9sZGVycyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBuZXdIb2xkZXJzUmlnaHQgPSBpc0N1cnJ5ID8gdW5kZWZpbmVkIDogaG9sZGVycyxcbiAgICAgICAgICBuZXdQYXJ0aWFscyA9IGlzQ3VycnkgPyBwYXJ0aWFscyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBuZXdQYXJ0aWFsc1JpZ2h0ID0gaXNDdXJyeSA/IHVuZGVmaW5lZCA6IHBhcnRpYWxzO1xuXG4gICAgICBiaXRtYXNrIHw9IChpc0N1cnJ5ID8gV1JBUF9QQVJUSUFMX0ZMQUcgOiBXUkFQX1BBUlRJQUxfUklHSFRfRkxBRyk7XG4gICAgICBiaXRtYXNrICY9IH4oaXNDdXJyeSA/IFdSQVBfUEFSVElBTF9SSUdIVF9GTEFHIDogV1JBUF9QQVJUSUFMX0ZMQUcpO1xuXG4gICAgICBpZiAoIShiaXRtYXNrICYgV1JBUF9DVVJSWV9CT1VORF9GTEFHKSkge1xuICAgICAgICBiaXRtYXNrICY9IH4oV1JBUF9CSU5EX0ZMQUcgfCBXUkFQX0JJTkRfS0VZX0ZMQUcpO1xuICAgICAgfVxuICAgICAgdmFyIG5ld0RhdGEgPSBbXG4gICAgICAgIGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIG5ld1BhcnRpYWxzLCBuZXdIb2xkZXJzLCBuZXdQYXJ0aWFsc1JpZ2h0LFxuICAgICAgICBuZXdIb2xkZXJzUmlnaHQsIGFyZ1BvcywgYXJ5LCBhcml0eVxuICAgICAgXTtcblxuICAgICAgdmFyIHJlc3VsdCA9IHdyYXBGdW5jLmFwcGx5KHVuZGVmaW5lZCwgbmV3RGF0YSk7XG4gICAgICBpZiAoaXNMYXppYWJsZShmdW5jKSkge1xuICAgICAgICBzZXREYXRhKHJlc3VsdCwgbmV3RGF0YSk7XG4gICAgICB9XG4gICAgICByZXN1bHQucGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICAgIHJldHVybiBzZXRXcmFwVG9TdHJpbmcocmVzdWx0LCBmdW5jLCBiaXRtYXNrKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gbGlrZSBgXy5yb3VuZGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2ROYW1lIFRoZSBuYW1lIG9mIHRoZSBgTWF0aGAgbWV0aG9kIHRvIHVzZSB3aGVuIHJvdW5kaW5nLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHJvdW5kIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZVJvdW5kKG1ldGhvZE5hbWUpIHtcbiAgICAgIHZhciBmdW5jID0gTWF0aFttZXRob2ROYW1lXTtcbiAgICAgIHJldHVybiBmdW5jdGlvbihudW1iZXIsIHByZWNpc2lvbikge1xuICAgICAgICBudW1iZXIgPSB0b051bWJlcihudW1iZXIpO1xuICAgICAgICBwcmVjaXNpb24gPSBwcmVjaXNpb24gPT0gbnVsbCA/IDAgOiBuYXRpdmVNaW4odG9JbnRlZ2VyKHByZWNpc2lvbiksIDI5Mik7XG4gICAgICAgIGlmIChwcmVjaXNpb24gJiYgbmF0aXZlSXNGaW5pdGUobnVtYmVyKSkge1xuICAgICAgICAgIC8vIFNoaWZ0IHdpdGggZXhwb25lbnRpYWwgbm90YXRpb24gdG8gYXZvaWQgZmxvYXRpbmctcG9pbnQgaXNzdWVzLlxuICAgICAgICAgIC8vIFNlZSBbTUROXShodHRwczovL21kbi5pby9yb3VuZCNFeGFtcGxlcykgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgICAgICB2YXIgcGFpciA9ICh0b1N0cmluZyhudW1iZXIpICsgJ2UnKS5zcGxpdCgnZScpLFxuICAgICAgICAgICAgICB2YWx1ZSA9IGZ1bmMocGFpclswXSArICdlJyArICgrcGFpclsxXSArIHByZWNpc2lvbikpO1xuXG4gICAgICAgICAgcGFpciA9ICh0b1N0cmluZyh2YWx1ZSkgKyAnZScpLnNwbGl0KCdlJyk7XG4gICAgICAgICAgcmV0dXJuICsocGFpclswXSArICdlJyArICgrcGFpclsxXSAtIHByZWNpc2lvbikpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmdW5jKG51bWJlcik7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzZXQgb2JqZWN0IG9mIGB2YWx1ZXNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSB2YWx1ZXMgVGhlIHZhbHVlcyB0byBhZGQgdG8gdGhlIHNldC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgc2V0LlxuICAgICAqL1xuICAgIHZhciBjcmVhdGVTZXQgPSAhKFNldCAmJiAoMSAvIHNldFRvQXJyYXkobmV3IFNldChbLC0wXSkpWzFdKSA9PSBJTkZJTklUWSkgPyBub29wIDogZnVuY3Rpb24odmFsdWVzKSB7XG4gICAgICByZXR1cm4gbmV3IFNldCh2YWx1ZXMpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYF8udG9QYWlyc2Agb3IgYF8udG9QYWlyc0luYCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0ga2V5c0Z1bmMgVGhlIGZ1bmN0aW9uIHRvIGdldCB0aGUga2V5cyBvZiBhIGdpdmVuIG9iamVjdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBwYWlycyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVUb1BhaXJzKGtleXNGdW5jKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgIHZhciB0YWcgPSBnZXRUYWcob2JqZWN0KTtcbiAgICAgICAgaWYgKHRhZyA9PSBtYXBUYWcpIHtcbiAgICAgICAgICByZXR1cm4gbWFwVG9BcnJheShvYmplY3QpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YWcgPT0gc2V0VGFnKSB7XG4gICAgICAgICAgcmV0dXJuIHNldFRvUGFpcnMob2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYmFzZVRvUGFpcnMob2JqZWN0LCBrZXlzRnVuYyhvYmplY3QpKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgZWl0aGVyIGN1cnJpZXMgb3IgaW52b2tlcyBgZnVuY2Agd2l0aCBvcHRpb25hbFxuICAgICAqIGB0aGlzYCBiaW5kaW5nIGFuZCBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb258c3RyaW5nfSBmdW5jIFRoZSBmdW5jdGlvbiBvciBtZXRob2QgbmFtZSB0byB3cmFwLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLlxuICAgICAqICAgIDEgLSBgXy5iaW5kYFxuICAgICAqICAgIDIgLSBgXy5iaW5kS2V5YFxuICAgICAqICAgIDQgLSBgXy5jdXJyeWAgb3IgYF8uY3VycnlSaWdodGAgb2YgYSBib3VuZCBmdW5jdGlvblxuICAgICAqICAgIDggLSBgXy5jdXJyeWBcbiAgICAgKiAgIDE2IC0gYF8uY3VycnlSaWdodGBcbiAgICAgKiAgIDMyIC0gYF8ucGFydGlhbGBcbiAgICAgKiAgIDY0IC0gYF8ucGFydGlhbFJpZ2h0YFxuICAgICAqICAxMjggLSBgXy5yZWFyZ2BcbiAgICAgKiAgMjU2IC0gYF8uYXJ5YFxuICAgICAqICA1MTIgLSBgXy5mbGlwYFxuICAgICAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3BhcnRpYWxzXSBUaGUgYXJndW1lbnRzIHRvIGJlIHBhcnRpYWxseSBhcHBsaWVkLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFtob2xkZXJzXSBUaGUgYHBhcnRpYWxzYCBwbGFjZWhvbGRlciBpbmRleGVzLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IFthcmdQb3NdIFRoZSBhcmd1bWVudCBwb3NpdGlvbnMgb2YgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyeV0gVGhlIGFyaXR5IGNhcCBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthcml0eV0gVGhlIGFyaXR5IG9mIGBmdW5jYC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB3cmFwcGVkIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNyZWF0ZVdyYXAoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMsIGFyZ1BvcywgYXJ5LCBhcml0eSkge1xuICAgICAgdmFyIGlzQmluZEtleSA9IGJpdG1hc2sgJiBXUkFQX0JJTkRfS0VZX0ZMQUc7XG4gICAgICBpZiAoIWlzQmluZEtleSAmJiB0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIHZhciBsZW5ndGggPSBwYXJ0aWFscyA/IHBhcnRpYWxzLmxlbmd0aCA6IDA7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICBiaXRtYXNrICY9IH4oV1JBUF9QQVJUSUFMX0ZMQUcgfCBXUkFQX1BBUlRJQUxfUklHSFRfRkxBRyk7XG4gICAgICAgIHBhcnRpYWxzID0gaG9sZGVycyA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGFyeSA9IGFyeSA9PT0gdW5kZWZpbmVkID8gYXJ5IDogbmF0aXZlTWF4KHRvSW50ZWdlcihhcnkpLCAwKTtcbiAgICAgIGFyaXR5ID0gYXJpdHkgPT09IHVuZGVmaW5lZCA/IGFyaXR5IDogdG9JbnRlZ2VyKGFyaXR5KTtcbiAgICAgIGxlbmd0aCAtPSBob2xkZXJzID8gaG9sZGVycy5sZW5ndGggOiAwO1xuXG4gICAgICBpZiAoYml0bWFzayAmIFdSQVBfUEFSVElBTF9SSUdIVF9GTEFHKSB7XG4gICAgICAgIHZhciBwYXJ0aWFsc1JpZ2h0ID0gcGFydGlhbHMsXG4gICAgICAgICAgICBob2xkZXJzUmlnaHQgPSBob2xkZXJzO1xuXG4gICAgICAgIHBhcnRpYWxzID0gaG9sZGVycyA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHZhciBkYXRhID0gaXNCaW5kS2V5ID8gdW5kZWZpbmVkIDogZ2V0RGF0YShmdW5jKTtcblxuICAgICAgdmFyIG5ld0RhdGEgPSBbXG4gICAgICAgIGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzLCBwYXJ0aWFsc1JpZ2h0LCBob2xkZXJzUmlnaHQsXG4gICAgICAgIGFyZ1BvcywgYXJ5LCBhcml0eVxuICAgICAgXTtcblxuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgbWVyZ2VEYXRhKG5ld0RhdGEsIGRhdGEpO1xuICAgICAgfVxuICAgICAgZnVuYyA9IG5ld0RhdGFbMF07XG4gICAgICBiaXRtYXNrID0gbmV3RGF0YVsxXTtcbiAgICAgIHRoaXNBcmcgPSBuZXdEYXRhWzJdO1xuICAgICAgcGFydGlhbHMgPSBuZXdEYXRhWzNdO1xuICAgICAgaG9sZGVycyA9IG5ld0RhdGFbNF07XG4gICAgICBhcml0eSA9IG5ld0RhdGFbOV0gPSBuZXdEYXRhWzldID09PSB1bmRlZmluZWRcbiAgICAgICAgPyAoaXNCaW5kS2V5ID8gMCA6IGZ1bmMubGVuZ3RoKVxuICAgICAgICA6IG5hdGl2ZU1heChuZXdEYXRhWzldIC0gbGVuZ3RoLCAwKTtcblxuICAgICAgaWYgKCFhcml0eSAmJiBiaXRtYXNrICYgKFdSQVBfQ1VSUllfRkxBRyB8IFdSQVBfQ1VSUllfUklHSFRfRkxBRykpIHtcbiAgICAgICAgYml0bWFzayAmPSB+KFdSQVBfQ1VSUllfRkxBRyB8IFdSQVBfQ1VSUllfUklHSFRfRkxBRyk7XG4gICAgICB9XG4gICAgICBpZiAoIWJpdG1hc2sgfHwgYml0bWFzayA9PSBXUkFQX0JJTkRfRkxBRykge1xuICAgICAgICB2YXIgcmVzdWx0ID0gY3JlYXRlQmluZChmdW5jLCBiaXRtYXNrLCB0aGlzQXJnKTtcbiAgICAgIH0gZWxzZSBpZiAoYml0bWFzayA9PSBXUkFQX0NVUlJZX0ZMQUcgfHwgYml0bWFzayA9PSBXUkFQX0NVUlJZX1JJR0hUX0ZMQUcpIHtcbiAgICAgICAgcmVzdWx0ID0gY3JlYXRlQ3VycnkoZnVuYywgYml0bWFzaywgYXJpdHkpO1xuICAgICAgfSBlbHNlIGlmICgoYml0bWFzayA9PSBXUkFQX1BBUlRJQUxfRkxBRyB8fCBiaXRtYXNrID09IChXUkFQX0JJTkRfRkxBRyB8IFdSQVBfUEFSVElBTF9GTEFHKSkgJiYgIWhvbGRlcnMubGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdCA9IGNyZWF0ZVBhcnRpYWwoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gY3JlYXRlSHlicmlkLmFwcGx5KHVuZGVmaW5lZCwgbmV3RGF0YSk7XG4gICAgICB9XG4gICAgICB2YXIgc2V0dGVyID0gZGF0YSA/IGJhc2VTZXREYXRhIDogc2V0RGF0YTtcbiAgICAgIHJldHVybiBzZXRXcmFwVG9TdHJpbmcoc2V0dGVyKHJlc3VsdCwgbmV3RGF0YSksIGZ1bmMsIGJpdG1hc2spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZWQgYnkgYF8uZGVmYXVsdHNgIHRvIGN1c3RvbWl6ZSBpdHMgYF8uYXNzaWduSW5gIHVzZSB0byBhc3NpZ24gcHJvcGVydGllc1xuICAgICAqIG9mIHNvdXJjZSBvYmplY3RzIHRvIHRoZSBkZXN0aW5hdGlvbiBvYmplY3QgZm9yIGFsbCBkZXN0aW5hdGlvbiBwcm9wZXJ0aWVzXG4gICAgICogdGhhdCByZXNvbHZlIHRvIGB1bmRlZmluZWRgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IG9ialZhbHVlIFRoZSBkZXN0aW5hdGlvbiB2YWx1ZS5cbiAgICAgKiBAcGFyYW0geyp9IHNyY1ZhbHVlIFRoZSBzb3VyY2UgdmFsdWUuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgcGFyZW50IG9iamVjdCBvZiBgb2JqVmFsdWVgLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY3VzdG9tRGVmYXVsdHNBc3NpZ25JbihvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0KSB7XG4gICAgICBpZiAob2JqVmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgIChlcShvYmpWYWx1ZSwgb2JqZWN0UHJvdG9ba2V5XSkgJiYgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSkge1xuICAgICAgICByZXR1cm4gc3JjVmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqVmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXNlZCBieSBgXy5kZWZhdWx0c0RlZXBgIHRvIGN1c3RvbWl6ZSBpdHMgYF8ubWVyZ2VgIHVzZSB0byBtZXJnZSBzb3VyY2VcbiAgICAgKiBvYmplY3RzIGludG8gZGVzdGluYXRpb24gb2JqZWN0cyB0aGF0IGFyZSBwYXNzZWQgdGhydS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSBvYmpWYWx1ZSBUaGUgZGVzdGluYXRpb24gdmFsdWUuXG4gICAgICogQHBhcmFtIHsqfSBzcmNWYWx1ZSBUaGUgc291cmNlIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gbWVyZ2UuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgcGFyZW50IG9iamVjdCBvZiBgb2JqVmFsdWVgLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHBhcmVudCBvYmplY3Qgb2YgYHNyY1ZhbHVlYC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIHNvdXJjZSB2YWx1ZXMgYW5kIHRoZWlyIG1lcmdlZFxuICAgICAqICBjb3VudGVycGFydHMuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjdXN0b21EZWZhdWx0c01lcmdlKG9ialZhbHVlLCBzcmNWYWx1ZSwga2V5LCBvYmplY3QsIHNvdXJjZSwgc3RhY2spIHtcbiAgICAgIGlmIChpc09iamVjdChvYmpWYWx1ZSkgJiYgaXNPYmplY3Qoc3JjVmFsdWUpKSB7XG4gICAgICAgIC8vIFJlY3Vyc2l2ZWx5IG1lcmdlIG9iamVjdHMgYW5kIGFycmF5cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgICAgICBzdGFjay5zZXQoc3JjVmFsdWUsIG9ialZhbHVlKTtcbiAgICAgICAgYmFzZU1lcmdlKG9ialZhbHVlLCBzcmNWYWx1ZSwgdW5kZWZpbmVkLCBjdXN0b21EZWZhdWx0c01lcmdlLCBzdGFjayk7XG4gICAgICAgIHN0YWNrWydkZWxldGUnXShzcmNWYWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JqVmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXNlZCBieSBgXy5vbWl0YCB0byBjdXN0b21pemUgaXRzIGBfLmNsb25lRGVlcGAgdXNlIHRvIG9ubHkgY2xvbmUgcGxhaW5cbiAgICAgKiBvYmplY3RzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgdW5jbG9uZWQgdmFsdWUgb3IgYHVuZGVmaW5lZGAgdG8gZGVmZXIgY2xvbmluZyB0byBgXy5jbG9uZURlZXBgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGN1c3RvbU9taXRDbG9uZSh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzUGxhaW5PYmplY3QodmFsdWUpID8gdW5kZWZpbmVkIDogdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBhcnJheXMgd2l0aCBzdXBwb3J0IGZvclxuICAgICAqIHBhcnRpYWwgZGVlcCBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtBcnJheX0gb3RoZXIgVGhlIG90aGVyIGFycmF5IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgYmFzZUlzRXF1YWxgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY3VzdG9taXplciBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGVxdWFsRnVuYyBUaGUgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGVxdWl2YWxlbnRzIG9mIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc3RhY2sgVHJhY2tzIHRyYXZlcnNlZCBgYXJyYXlgIGFuZCBgb3RoZXJgIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBhcnJheXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlcXVhbEFycmF5cyhhcnJheSwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spIHtcbiAgICAgIHZhciBpc1BhcnRpYWwgPSBiaXRtYXNrICYgQ09NUEFSRV9QQVJUSUFMX0ZMQUcsXG4gICAgICAgICAgYXJyTGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIG90aExlbmd0aCA9IG90aGVyLmxlbmd0aDtcblxuICAgICAgaWYgKGFyckxlbmd0aCAhPSBvdGhMZW5ndGggJiYgIShpc1BhcnRpYWwgJiYgb3RoTGVuZ3RoID4gYXJyTGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICAvLyBDaGVjayB0aGF0IGN5Y2xpYyB2YWx1ZXMgYXJlIGVxdWFsLlxuICAgICAgdmFyIGFyclN0YWNrZWQgPSBzdGFjay5nZXQoYXJyYXkpO1xuICAgICAgdmFyIG90aFN0YWNrZWQgPSBzdGFjay5nZXQob3RoZXIpO1xuICAgICAgaWYgKGFyclN0YWNrZWQgJiYgb3RoU3RhY2tlZCkge1xuICAgICAgICByZXR1cm4gYXJyU3RhY2tlZCA9PSBvdGhlciAmJiBvdGhTdGFja2VkID09IGFycmF5O1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgcmVzdWx0ID0gdHJ1ZSxcbiAgICAgICAgICBzZWVuID0gKGJpdG1hc2sgJiBDT01QQVJFX1VOT1JERVJFRF9GTEFHKSA/IG5ldyBTZXRDYWNoZSA6IHVuZGVmaW5lZDtcblxuICAgICAgc3RhY2suc2V0KGFycmF5LCBvdGhlcik7XG4gICAgICBzdGFjay5zZXQob3RoZXIsIGFycmF5KTtcblxuICAgICAgLy8gSWdub3JlIG5vbi1pbmRleCBwcm9wZXJ0aWVzLlxuICAgICAgd2hpbGUgKCsraW5kZXggPCBhcnJMZW5ndGgpIHtcbiAgICAgICAgdmFyIGFyclZhbHVlID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICAgICAgb3RoVmFsdWUgPSBvdGhlcltpbmRleF07XG5cbiAgICAgICAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICAgICAgICB2YXIgY29tcGFyZWQgPSBpc1BhcnRpYWxcbiAgICAgICAgICAgID8gY3VzdG9taXplcihvdGhWYWx1ZSwgYXJyVmFsdWUsIGluZGV4LCBvdGhlciwgYXJyYXksIHN0YWNrKVxuICAgICAgICAgICAgOiBjdXN0b21pemVyKGFyclZhbHVlLCBvdGhWYWx1ZSwgaW5kZXgsIGFycmF5LCBvdGhlciwgc3RhY2spO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb21wYXJlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaWYgKGNvbXBhcmVkKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgY29tcGFyZSBhcnJheXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgaWYgKHNlZW4pIHtcbiAgICAgICAgICBpZiAoIWFycmF5U29tZShvdGhlciwgZnVuY3Rpb24ob3RoVmFsdWUsIG90aEluZGV4KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFjYWNoZUhhcyhzZWVuLCBvdGhJbmRleCkgJiZcbiAgICAgICAgICAgICAgICAgICAgKGFyclZhbHVlID09PSBvdGhWYWx1ZSB8fCBlcXVhbEZ1bmMoYXJyVmFsdWUsIG90aFZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjaykpKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gc2Vlbi5wdXNoKG90aEluZGV4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghKFxuICAgICAgICAgICAgICBhcnJWYWx1ZSA9PT0gb3RoVmFsdWUgfHxcbiAgICAgICAgICAgICAgICBlcXVhbEZ1bmMoYXJyVmFsdWUsIG90aFZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjaylcbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3RhY2tbJ2RlbGV0ZSddKGFycmF5KTtcbiAgICAgIHN0YWNrWydkZWxldGUnXShvdGhlcik7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUlzRXF1YWxEZWVwYCBmb3IgY29tcGFyaW5nIG9iamVjdHMgb2ZcbiAgICAgKiB0aGUgc2FtZSBgdG9TdHJpbmdUYWdgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gb25seSBzdXBwb3J0cyBjb21wYXJpbmcgdmFsdWVzIHdpdGggdGFncyBvZlxuICAgICAqIGBCb29sZWFuYCwgYERhdGVgLCBgRXJyb3JgLCBgTnVtYmVyYCwgYFJlZ0V4cGAsIG9yIGBTdHJpbmdgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIGB0b1N0cmluZ1RhZ2Agb2YgdGhlIG9iamVjdHMgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBiYXNlSXNFcXVhbGAgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjdXN0b21pemVyIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZXF1YWxGdW5jIFRoZSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgZXF1aXZhbGVudHMgb2YgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzdGFjayBUcmFja3MgdHJhdmVyc2VkIGBvYmplY3RgIGFuZCBgb3RoZXJgIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXF1YWxCeVRhZyhvYmplY3QsIG90aGVyLCB0YWcsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spIHtcbiAgICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgIGNhc2UgZGF0YVZpZXdUYWc6XG4gICAgICAgICAgaWYgKChvYmplY3QuYnl0ZUxlbmd0aCAhPSBvdGhlci5ieXRlTGVuZ3RoKSB8fFxuICAgICAgICAgICAgICAob2JqZWN0LmJ5dGVPZmZzZXQgIT0gb3RoZXIuYnl0ZU9mZnNldCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb2JqZWN0ID0gb2JqZWN0LmJ1ZmZlcjtcbiAgICAgICAgICBvdGhlciA9IG90aGVyLmJ1ZmZlcjtcblxuICAgICAgICBjYXNlIGFycmF5QnVmZmVyVGFnOlxuICAgICAgICAgIGlmICgob2JqZWN0LmJ5dGVMZW5ndGggIT0gb3RoZXIuYnl0ZUxlbmd0aCkgfHxcbiAgICAgICAgICAgICAgIWVxdWFsRnVuYyhuZXcgVWludDhBcnJheShvYmplY3QpLCBuZXcgVWludDhBcnJheShvdGhlcikpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgICAgIGNhc2UgYm9vbFRhZzpcbiAgICAgICAgY2FzZSBkYXRlVGFnOlxuICAgICAgICBjYXNlIG51bWJlclRhZzpcbiAgICAgICAgICAvLyBDb2VyY2UgYm9vbGVhbnMgdG8gYDFgIG9yIGAwYCBhbmQgZGF0ZXMgdG8gbWlsbGlzZWNvbmRzLlxuICAgICAgICAgIC8vIEludmFsaWQgZGF0ZXMgYXJlIGNvZXJjZWQgdG8gYE5hTmAuXG4gICAgICAgICAgcmV0dXJuIGVxKCtvYmplY3QsICtvdGhlcik7XG5cbiAgICAgICAgY2FzZSBlcnJvclRhZzpcbiAgICAgICAgICByZXR1cm4gb2JqZWN0Lm5hbWUgPT0gb3RoZXIubmFtZSAmJiBvYmplY3QubWVzc2FnZSA9PSBvdGhlci5tZXNzYWdlO1xuXG4gICAgICAgIGNhc2UgcmVnZXhwVGFnOlxuICAgICAgICBjYXNlIHN0cmluZ1RhZzpcbiAgICAgICAgICAvLyBDb2VyY2UgcmVnZXhlcyB0byBzdHJpbmdzIGFuZCB0cmVhdCBzdHJpbmdzLCBwcmltaXRpdmVzIGFuZCBvYmplY3RzLFxuICAgICAgICAgIC8vIGFzIGVxdWFsLiBTZWUgaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXJlZ2V4cC5wcm90b3R5cGUudG9zdHJpbmdcbiAgICAgICAgICAvLyBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgICAgIHJldHVybiBvYmplY3QgPT0gKG90aGVyICsgJycpO1xuXG4gICAgICAgIGNhc2UgbWFwVGFnOlxuICAgICAgICAgIHZhciBjb252ZXJ0ID0gbWFwVG9BcnJheTtcblxuICAgICAgICBjYXNlIHNldFRhZzpcbiAgICAgICAgICB2YXIgaXNQYXJ0aWFsID0gYml0bWFzayAmIENPTVBBUkVfUEFSVElBTF9GTEFHO1xuICAgICAgICAgIGNvbnZlcnQgfHwgKGNvbnZlcnQgPSBzZXRUb0FycmF5KTtcblxuICAgICAgICAgIGlmIChvYmplY3Quc2l6ZSAhPSBvdGhlci5zaXplICYmICFpc1BhcnRpYWwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gQXNzdW1lIGN5Y2xpYyB2YWx1ZXMgYXJlIGVxdWFsLlxuICAgICAgICAgIHZhciBzdGFja2VkID0gc3RhY2suZ2V0KG9iamVjdCk7XG4gICAgICAgICAgaWYgKHN0YWNrZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBzdGFja2VkID09IG90aGVyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBiaXRtYXNrIHw9IENPTVBBUkVfVU5PUkRFUkVEX0ZMQUc7XG5cbiAgICAgICAgICAvLyBSZWN1cnNpdmVseSBjb21wYXJlIG9iamVjdHMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgICBzdGFjay5zZXQob2JqZWN0LCBvdGhlcik7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IGVxdWFsQXJyYXlzKGNvbnZlcnQob2JqZWN0KSwgY29udmVydChvdGhlciksIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spO1xuICAgICAgICAgIHN0YWNrWydkZWxldGUnXShvYmplY3QpO1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG5cbiAgICAgICAgY2FzZSBzeW1ib2xUYWc6XG4gICAgICAgICAgaWYgKHN5bWJvbFZhbHVlT2YpIHtcbiAgICAgICAgICAgIHJldHVybiBzeW1ib2xWYWx1ZU9mLmNhbGwob2JqZWN0KSA9PSBzeW1ib2xWYWx1ZU9mLmNhbGwob3RoZXIpO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsRGVlcGAgZm9yIG9iamVjdHMgd2l0aCBzdXBwb3J0IGZvclxuICAgICAqIHBhcnRpYWwgZGVlcCBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG90aGVyIFRoZSBvdGhlciBvYmplY3QgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBmbGFncy4gU2VlIGBiYXNlSXNFcXVhbGAgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjdXN0b21pemVyIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZXF1YWxGdW5jIFRoZSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgZXF1aXZhbGVudHMgb2YgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzdGFjayBUcmFja3MgdHJhdmVyc2VkIGBvYmplY3RgIGFuZCBgb3RoZXJgIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXF1YWxPYmplY3RzKG9iamVjdCwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spIHtcbiAgICAgIHZhciBpc1BhcnRpYWwgPSBiaXRtYXNrICYgQ09NUEFSRV9QQVJUSUFMX0ZMQUcsXG4gICAgICAgICAgb2JqUHJvcHMgPSBnZXRBbGxLZXlzKG9iamVjdCksXG4gICAgICAgICAgb2JqTGVuZ3RoID0gb2JqUHJvcHMubGVuZ3RoLFxuICAgICAgICAgIG90aFByb3BzID0gZ2V0QWxsS2V5cyhvdGhlciksXG4gICAgICAgICAgb3RoTGVuZ3RoID0gb3RoUHJvcHMubGVuZ3RoO1xuXG4gICAgICBpZiAob2JqTGVuZ3RoICE9IG90aExlbmd0aCAmJiAhaXNQYXJ0aWFsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IG9iakxlbmd0aDtcbiAgICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICAgIHZhciBrZXkgPSBvYmpQcm9wc1tpbmRleF07XG4gICAgICAgIGlmICghKGlzUGFydGlhbCA/IGtleSBpbiBvdGhlciA6IGhhc093blByb3BlcnR5LmNhbGwob3RoZXIsIGtleSkpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBDaGVjayB0aGF0IGN5Y2xpYyB2YWx1ZXMgYXJlIGVxdWFsLlxuICAgICAgdmFyIG9ialN0YWNrZWQgPSBzdGFjay5nZXQob2JqZWN0KTtcbiAgICAgIHZhciBvdGhTdGFja2VkID0gc3RhY2suZ2V0KG90aGVyKTtcbiAgICAgIGlmIChvYmpTdGFja2VkICYmIG90aFN0YWNrZWQpIHtcbiAgICAgICAgcmV0dXJuIG9ialN0YWNrZWQgPT0gb3RoZXIgJiYgb3RoU3RhY2tlZCA9PSBvYmplY3Q7XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gdHJ1ZTtcbiAgICAgIHN0YWNrLnNldChvYmplY3QsIG90aGVyKTtcbiAgICAgIHN0YWNrLnNldChvdGhlciwgb2JqZWN0KTtcblxuICAgICAgdmFyIHNraXBDdG9yID0gaXNQYXJ0aWFsO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBvYmpMZW5ndGgpIHtcbiAgICAgICAga2V5ID0gb2JqUHJvcHNbaW5kZXhdO1xuICAgICAgICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XSxcbiAgICAgICAgICAgIG90aFZhbHVlID0gb3RoZXJba2V5XTtcblxuICAgICAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgICAgIHZhciBjb21wYXJlZCA9IGlzUGFydGlhbFxuICAgICAgICAgICAgPyBjdXN0b21pemVyKG90aFZhbHVlLCBvYmpWYWx1ZSwga2V5LCBvdGhlciwgb2JqZWN0LCBzdGFjaylcbiAgICAgICAgICAgIDogY3VzdG9taXplcihvYmpWYWx1ZSwgb3RoVmFsdWUsIGtleSwgb2JqZWN0LCBvdGhlciwgc3RhY2spO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbXBhcmUgb2JqZWN0cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgICAgICBpZiAoIShjb21wYXJlZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgID8gKG9ialZhbHVlID09PSBvdGhWYWx1ZSB8fCBlcXVhbEZ1bmMob2JqVmFsdWUsIG90aFZhbHVlLCBiaXRtYXNrLCBjdXN0b21pemVyLCBzdGFjaykpXG4gICAgICAgICAgICAgIDogY29tcGFyZWRcbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBza2lwQ3RvciB8fCAoc2tpcEN0b3IgPSBrZXkgPT0gJ2NvbnN0cnVjdG9yJyk7XG4gICAgICB9XG4gICAgICBpZiAocmVzdWx0ICYmICFza2lwQ3Rvcikge1xuICAgICAgICB2YXIgb2JqQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcixcbiAgICAgICAgICAgIG90aEN0b3IgPSBvdGhlci5jb25zdHJ1Y3RvcjtcblxuICAgICAgICAvLyBOb24gYE9iamVjdGAgb2JqZWN0IGluc3RhbmNlcyB3aXRoIGRpZmZlcmVudCBjb25zdHJ1Y3RvcnMgYXJlIG5vdCBlcXVhbC5cbiAgICAgICAgaWYgKG9iakN0b3IgIT0gb3RoQ3RvciAmJlxuICAgICAgICAgICAgKCdjb25zdHJ1Y3RvcicgaW4gb2JqZWN0ICYmICdjb25zdHJ1Y3RvcicgaW4gb3RoZXIpICYmXG4gICAgICAgICAgICAhKHR5cGVvZiBvYmpDdG9yID09ICdmdW5jdGlvbicgJiYgb2JqQ3RvciBpbnN0YW5jZW9mIG9iakN0b3IgJiZcbiAgICAgICAgICAgICAgdHlwZW9mIG90aEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBvdGhDdG9yIGluc3RhbmNlb2Ygb3RoQ3RvcikpIHtcbiAgICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3RhY2tbJ2RlbGV0ZSddKG9iamVjdCk7XG4gICAgICBzdGFja1snZGVsZXRlJ10ob3RoZXIpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VSZXN0YCB3aGljaCBmbGF0dGVucyB0aGUgcmVzdCBhcnJheS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmbGF0UmVzdChmdW5jKSB7XG4gICAgICByZXR1cm4gc2V0VG9TdHJpbmcob3ZlclJlc3QoZnVuYywgdW5kZWZpbmVkLCBmbGF0dGVuKSwgZnVuYyArICcnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIG93biBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIGFuZCBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRBbGxLZXlzKG9iamVjdCkge1xuICAgICAgcmV0dXJuIGJhc2VHZXRBbGxLZXlzKG9iamVjdCwga2V5cywgZ2V0U3ltYm9scyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIGFuZFxuICAgICAqIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzIGFuZCBzeW1ib2xzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldEFsbEtleXNJbihvYmplY3QpIHtcbiAgICAgIHJldHVybiBiYXNlR2V0QWxsS2V5cyhvYmplY3QsIGtleXNJbiwgZ2V0U3ltYm9sc0luKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIG1ldGFkYXRhIGZvciBgZnVuY2AuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtZXRhZGF0YSBmb3IgYGZ1bmNgLlxuICAgICAqL1xuICAgIHZhciBnZXREYXRhID0gIW1ldGFNYXAgPyBub29wIDogZnVuY3Rpb24oZnVuYykge1xuICAgICAgcmV0dXJuIG1ldGFNYXAuZ2V0KGZ1bmMpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBuYW1lIG9mIGBmdW5jYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZnVuY3Rpb24gbmFtZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRGdW5jTmFtZShmdW5jKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gKGZ1bmMubmFtZSArICcnKSxcbiAgICAgICAgICBhcnJheSA9IHJlYWxOYW1lc1tyZXN1bHRdLFxuICAgICAgICAgIGxlbmd0aCA9IGhhc093blByb3BlcnR5LmNhbGwocmVhbE5hbWVzLCByZXN1bHQpID8gYXJyYXkubGVuZ3RoIDogMDtcblxuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIHZhciBkYXRhID0gYXJyYXlbbGVuZ3RoXSxcbiAgICAgICAgICAgIG90aGVyRnVuYyA9IGRhdGEuZnVuYztcbiAgICAgICAgaWYgKG90aGVyRnVuYyA9PSBudWxsIHx8IG90aGVyRnVuYyA9PSBmdW5jKSB7XG4gICAgICAgICAgcmV0dXJuIGRhdGEubmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBhcmd1bWVudCBwbGFjZWhvbGRlciB2YWx1ZSBmb3IgYGZ1bmNgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBwbGFjZWhvbGRlciB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRIb2xkZXIoZnVuYykge1xuICAgICAgdmFyIG9iamVjdCA9IGhhc093blByb3BlcnR5LmNhbGwobG9kYXNoLCAncGxhY2Vob2xkZXInKSA/IGxvZGFzaCA6IGZ1bmM7XG4gICAgICByZXR1cm4gb2JqZWN0LnBsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGFwcHJvcHJpYXRlIFwiaXRlcmF0ZWVcIiBmdW5jdGlvbi4gSWYgYF8uaXRlcmF0ZWVgIGlzIGN1c3RvbWl6ZWQsXG4gICAgICogdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBjdXN0b20gbWV0aG9kLCBvdGhlcndpc2UgaXQgcmV0dXJucyBgYmFzZUl0ZXJhdGVlYC5cbiAgICAgKiBJZiBhcmd1bWVudHMgYXJlIHByb3ZpZGVkLCB0aGUgY2hvc2VuIGZ1bmN0aW9uIGlzIGludm9rZWQgd2l0aCB0aGVtIGFuZFxuICAgICAqIGl0cyByZXN1bHQgaXMgcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gW3ZhbHVlXSBUaGUgdmFsdWUgdG8gY29udmVydCB0byBhbiBpdGVyYXRlZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyaXR5XSBUaGUgYXJpdHkgb2YgdGhlIGNyZWF0ZWQgaXRlcmF0ZWUuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBjaG9zZW4gZnVuY3Rpb24gb3IgaXRzIHJlc3VsdC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRJdGVyYXRlZSgpIHtcbiAgICAgIHZhciByZXN1bHQgPSBsb2Rhc2guaXRlcmF0ZWUgfHwgaXRlcmF0ZWU7XG4gICAgICByZXN1bHQgPSByZXN1bHQgPT09IGl0ZXJhdGVlID8gYmFzZUl0ZXJhdGVlIDogcmVzdWx0O1xuICAgICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyByZXN1bHQoYXJndW1lbnRzWzBdLCBhcmd1bWVudHNbMV0pIDogcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGRhdGEgZm9yIGBtYXBgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gbWFwIFRoZSBtYXAgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUgcmVmZXJlbmNlIGtleS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWFwIGRhdGEuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0TWFwRGF0YShtYXAsIGtleSkge1xuICAgICAgdmFyIGRhdGEgPSBtYXAuX19kYXRhX187XG4gICAgICByZXR1cm4gaXNLZXlhYmxlKGtleSlcbiAgICAgICAgPyBkYXRhW3R5cGVvZiBrZXkgPT0gJ3N0cmluZycgPyAnc3RyaW5nJyA6ICdoYXNoJ11cbiAgICAgICAgOiBkYXRhLm1hcDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBwcm9wZXJ0eSBuYW1lcywgdmFsdWVzLCBhbmQgY29tcGFyZSBmbGFncyBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbWF0Y2ggZGF0YSBvZiBgb2JqZWN0YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRNYXRjaERhdGEob2JqZWN0KSB7XG4gICAgICB2YXIgcmVzdWx0ID0ga2V5cyhvYmplY3QpLFxuICAgICAgICAgIGxlbmd0aCA9IHJlc3VsdC5sZW5ndGg7XG5cbiAgICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICB2YXIga2V5ID0gcmVzdWx0W2xlbmd0aF0sXG4gICAgICAgICAgICB2YWx1ZSA9IG9iamVjdFtrZXldO1xuXG4gICAgICAgIHJlc3VsdFtsZW5ndGhdID0gW2tleSwgdmFsdWUsIGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSldO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBuYXRpdmUgZnVuY3Rpb24gYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIG1ldGhvZCB0byBnZXQuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGZ1bmN0aW9uIGlmIGl0J3MgbmF0aXZlLCBlbHNlIGB1bmRlZmluZWRgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldE5hdGl2ZShvYmplY3QsIGtleSkge1xuICAgICAgdmFyIHZhbHVlID0gZ2V0VmFsdWUob2JqZWN0LCBrZXkpO1xuICAgICAgcmV0dXJuIGJhc2VJc05hdGl2ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VHZXRUYWdgIHdoaWNoIGlnbm9yZXMgYFN5bWJvbC50b1N0cmluZ1RhZ2AgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSByYXcgYHRvU3RyaW5nVGFnYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRSYXdUYWcodmFsdWUpIHtcbiAgICAgIHZhciBpc093biA9IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIHN5bVRvU3RyaW5nVGFnKSxcbiAgICAgICAgICB0YWcgPSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdmFyIHVubWFza2VkID0gdHJ1ZTtcbiAgICAgIH0gY2F0Y2ggKGUpIHt9XG5cbiAgICAgIHZhciByZXN1bHQgPSBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICAgIGlmICh1bm1hc2tlZCkge1xuICAgICAgICBpZiAoaXNPd24pIHtcbiAgICAgICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB0YWc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gZW51bWVyYWJsZSBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBzeW1ib2xzLlxuICAgICAqL1xuICAgIHZhciBnZXRTeW1ib2xzID0gIW5hdGl2ZUdldFN5bWJvbHMgPyBzdHViQXJyYXkgOiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcbiAgICAgIHJldHVybiBhcnJheUZpbHRlcihuYXRpdmVHZXRTeW1ib2xzKG9iamVjdCksIGZ1bmN0aW9uKHN5bWJvbCkge1xuICAgICAgICByZXR1cm4gcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChvYmplY3QsIHN5bWJvbCk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBzeW1ib2xzLlxuICAgICAqL1xuICAgIHZhciBnZXRTeW1ib2xzSW4gPSAhbmF0aXZlR2V0U3ltYm9scyA/IHN0dWJBcnJheSA6IGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgICAgd2hpbGUgKG9iamVjdCkge1xuICAgICAgICBhcnJheVB1c2gocmVzdWx0LCBnZXRTeW1ib2xzKG9iamVjdCkpO1xuICAgICAgICBvYmplY3QgPSBnZXRQcm90b3R5cGUob2JqZWN0KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGB0b1N0cmluZ1RhZ2Agb2YgYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgYHRvU3RyaW5nVGFnYC5cbiAgICAgKi9cbiAgICB2YXIgZ2V0VGFnID0gYmFzZUdldFRhZztcblxuICAgIC8vIEZhbGxiYWNrIGZvciBkYXRhIHZpZXdzLCBtYXBzLCBzZXRzLCBhbmQgd2VhayBtYXBzIGluIElFIDExIGFuZCBwcm9taXNlcyBpbiBOb2RlLmpzIDwgNi5cbiAgICBpZiAoKERhdGFWaWV3ICYmIGdldFRhZyhuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDEpKSkgIT0gZGF0YVZpZXdUYWcpIHx8XG4gICAgICAgIChNYXAgJiYgZ2V0VGFnKG5ldyBNYXApICE9IG1hcFRhZykgfHxcbiAgICAgICAgKFByb21pc2UgJiYgZ2V0VGFnKFByb21pc2UucmVzb2x2ZSgpKSAhPSBwcm9taXNlVGFnKSB8fFxuICAgICAgICAoU2V0ICYmIGdldFRhZyhuZXcgU2V0KSAhPSBzZXRUYWcpIHx8XG4gICAgICAgIChXZWFrTWFwICYmIGdldFRhZyhuZXcgV2Vha01hcCkgIT0gd2Vha01hcFRhZykpIHtcbiAgICAgIGdldFRhZyA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBiYXNlR2V0VGFnKHZhbHVlKSxcbiAgICAgICAgICAgIEN0b3IgPSByZXN1bHQgPT0gb2JqZWN0VGFnID8gdmFsdWUuY29uc3RydWN0b3IgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBjdG9yU3RyaW5nID0gQ3RvciA/IHRvU291cmNlKEN0b3IpIDogJyc7XG5cbiAgICAgICAgaWYgKGN0b3JTdHJpbmcpIHtcbiAgICAgICAgICBzd2l0Y2ggKGN0b3JTdHJpbmcpIHtcbiAgICAgICAgICAgIGNhc2UgZGF0YVZpZXdDdG9yU3RyaW5nOiByZXR1cm4gZGF0YVZpZXdUYWc7XG4gICAgICAgICAgICBjYXNlIG1hcEN0b3JTdHJpbmc6IHJldHVybiBtYXBUYWc7XG4gICAgICAgICAgICBjYXNlIHByb21pc2VDdG9yU3RyaW5nOiByZXR1cm4gcHJvbWlzZVRhZztcbiAgICAgICAgICAgIGNhc2Ugc2V0Q3RvclN0cmluZzogcmV0dXJuIHNldFRhZztcbiAgICAgICAgICAgIGNhc2Ugd2Vha01hcEN0b3JTdHJpbmc6IHJldHVybiB3ZWFrTWFwVGFnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB2aWV3LCBhcHBseWluZyBhbnkgYHRyYW5zZm9ybXNgIHRvIHRoZSBgc3RhcnRgIGFuZCBgZW5kYCBwb3NpdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydCBUaGUgc3RhcnQgb2YgdGhlIHZpZXcuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGVuZCBUaGUgZW5kIG9mIHRoZSB2aWV3LlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHRyYW5zZm9ybXMgVGhlIHRyYW5zZm9ybWF0aW9ucyB0byBhcHBseSB0byB0aGUgdmlldy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBgc3RhcnRgIGFuZCBgZW5kYFxuICAgICAqICBwb3NpdGlvbnMgb2YgdGhlIHZpZXcuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0VmlldyhzdGFydCwgZW5kLCB0cmFuc2Zvcm1zKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSB0cmFuc2Zvcm1zLmxlbmd0aDtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIGRhdGEgPSB0cmFuc2Zvcm1zW2luZGV4XSxcbiAgICAgICAgICAgIHNpemUgPSBkYXRhLnNpemU7XG5cbiAgICAgICAgc3dpdGNoIChkYXRhLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdkcm9wJzogICAgICBzdGFydCArPSBzaXplOyBicmVhaztcbiAgICAgICAgICBjYXNlICdkcm9wUmlnaHQnOiBlbmQgLT0gc2l6ZTsgYnJlYWs7XG4gICAgICAgICAgY2FzZSAndGFrZSc6ICAgICAgZW5kID0gbmF0aXZlTWluKGVuZCwgc3RhcnQgKyBzaXplKTsgYnJlYWs7XG4gICAgICAgICAgY2FzZSAndGFrZVJpZ2h0Jzogc3RhcnQgPSBuYXRpdmVNYXgoc3RhcnQsIGVuZCAtIHNpemUpOyBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHsgJ3N0YXJ0Jzogc3RhcnQsICdlbmQnOiBlbmQgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeHRyYWN0cyB3cmFwcGVyIGRldGFpbHMgZnJvbSB0aGUgYHNvdXJjZWAgYm9keSBjb21tZW50LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc291cmNlIFRoZSBzb3VyY2UgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHdyYXBwZXIgZGV0YWlscy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRXcmFwRGV0YWlscyhzb3VyY2UpIHtcbiAgICAgIHZhciBtYXRjaCA9IHNvdXJjZS5tYXRjaChyZVdyYXBEZXRhaWxzKTtcbiAgICAgIHJldHVybiBtYXRjaCA/IG1hdGNoWzFdLnNwbGl0KHJlU3BsaXREZXRhaWxzKSA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgcGF0aGAgZXhpc3RzIG9uIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggdG8gY2hlY2suXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaGFzRnVuYyBUaGUgZnVuY3Rpb24gdG8gY2hlY2sgcHJvcGVydGllcy5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHBhdGhgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGhhc1BhdGgob2JqZWN0LCBwYXRoLCBoYXNGdW5jKSB7XG4gICAgICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcblxuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gcGF0aC5sZW5ndGgsXG4gICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBrZXkgPSB0b0tleShwYXRoW2luZGV4XSk7XG4gICAgICAgIGlmICghKHJlc3VsdCA9IG9iamVjdCAhPSBudWxsICYmIGhhc0Z1bmMob2JqZWN0LCBrZXkpKSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIG9iamVjdCA9IG9iamVjdFtrZXldO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdCB8fCArK2luZGV4ICE9IGxlbmd0aCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgbGVuZ3RoID0gb2JqZWN0ID09IG51bGwgPyAwIDogb2JqZWN0Lmxlbmd0aDtcbiAgICAgIHJldHVybiAhIWxlbmd0aCAmJiBpc0xlbmd0aChsZW5ndGgpICYmIGlzSW5kZXgoa2V5LCBsZW5ndGgpICYmXG4gICAgICAgIChpc0FycmF5KG9iamVjdCkgfHwgaXNBcmd1bWVudHMob2JqZWN0KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgYW4gYXJyYXkgY2xvbmUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluaXRDbG9uZUFycmF5KGFycmF5KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IG5ldyBhcnJheS5jb25zdHJ1Y3RvcihsZW5ndGgpO1xuXG4gICAgICAvLyBBZGQgcHJvcGVydGllcyBhc3NpZ25lZCBieSBgUmVnRXhwI2V4ZWNgLlxuICAgICAgaWYgKGxlbmd0aCAmJiB0eXBlb2YgYXJyYXlbMF0gPT0gJ3N0cmluZycgJiYgaGFzT3duUHJvcGVydHkuY2FsbChhcnJheSwgJ2luZGV4JykpIHtcbiAgICAgICAgcmVzdWx0LmluZGV4ID0gYXJyYXkuaW5kZXg7XG4gICAgICAgIHJlc3VsdC5pbnB1dCA9IGFycmF5LmlucHV0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhbiBvYmplY3QgY2xvbmUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjbG9uZS5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbml0Q2xvbmVPYmplY3Qob2JqZWN0KSB7XG4gICAgICByZXR1cm4gKHR5cGVvZiBvYmplY3QuY29uc3RydWN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNQcm90b3R5cGUob2JqZWN0KSlcbiAgICAgICAgPyBiYXNlQ3JlYXRlKGdldFByb3RvdHlwZShvYmplY3QpKVxuICAgICAgICA6IHt9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIGFuIG9iamVjdCBjbG9uZSBiYXNlZCBvbiBpdHMgYHRvU3RyaW5nVGFnYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIGZ1bmN0aW9uIG9ubHkgc3VwcG9ydHMgY2xvbmluZyB2YWx1ZXMgd2l0aCB0YWdzIG9mXG4gICAgICogYEJvb2xlYW5gLCBgRGF0ZWAsIGBFcnJvcmAsIGBNYXBgLCBgTnVtYmVyYCwgYFJlZ0V4cGAsIGBTZXRgLCBvciBgU3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNsb25lLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIGB0b1N0cmluZ1RhZ2Agb2YgdGhlIG9iamVjdCB0byBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluaXRDbG9uZUJ5VGFnKG9iamVjdCwgdGFnLCBpc0RlZXApIHtcbiAgICAgIHZhciBDdG9yID0gb2JqZWN0LmNvbnN0cnVjdG9yO1xuICAgICAgc3dpdGNoICh0YWcpIHtcbiAgICAgICAgY2FzZSBhcnJheUJ1ZmZlclRhZzpcbiAgICAgICAgICByZXR1cm4gY2xvbmVBcnJheUJ1ZmZlcihvYmplY3QpO1xuXG4gICAgICAgIGNhc2UgYm9vbFRhZzpcbiAgICAgICAgY2FzZSBkYXRlVGFnOlxuICAgICAgICAgIHJldHVybiBuZXcgQ3Rvcigrb2JqZWN0KTtcblxuICAgICAgICBjYXNlIGRhdGFWaWV3VGFnOlxuICAgICAgICAgIHJldHVybiBjbG9uZURhdGFWaWV3KG9iamVjdCwgaXNEZWVwKTtcblxuICAgICAgICBjYXNlIGZsb2F0MzJUYWc6IGNhc2UgZmxvYXQ2NFRhZzpcbiAgICAgICAgY2FzZSBpbnQ4VGFnOiBjYXNlIGludDE2VGFnOiBjYXNlIGludDMyVGFnOlxuICAgICAgICBjYXNlIHVpbnQ4VGFnOiBjYXNlIHVpbnQ4Q2xhbXBlZFRhZzogY2FzZSB1aW50MTZUYWc6IGNhc2UgdWludDMyVGFnOlxuICAgICAgICAgIHJldHVybiBjbG9uZVR5cGVkQXJyYXkob2JqZWN0LCBpc0RlZXApO1xuXG4gICAgICAgIGNhc2UgbWFwVGFnOlxuICAgICAgICAgIHJldHVybiBuZXcgQ3RvcjtcblxuICAgICAgICBjYXNlIG51bWJlclRhZzpcbiAgICAgICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICAgICAgcmV0dXJuIG5ldyBDdG9yKG9iamVjdCk7XG5cbiAgICAgICAgY2FzZSByZWdleHBUYWc6XG4gICAgICAgICAgcmV0dXJuIGNsb25lUmVnRXhwKG9iamVjdCk7XG5cbiAgICAgICAgY2FzZSBzZXRUYWc6XG4gICAgICAgICAgcmV0dXJuIG5ldyBDdG9yO1xuXG4gICAgICAgIGNhc2Ugc3ltYm9sVGFnOlxuICAgICAgICAgIHJldHVybiBjbG9uZVN5bWJvbChvYmplY3QpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluc2VydHMgd3JhcHBlciBgZGV0YWlsc2AgaW4gYSBjb21tZW50IGF0IHRoZSB0b3Agb2YgdGhlIGBzb3VyY2VgIGJvZHkuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2UgVGhlIHNvdXJjZSB0byBtb2RpZnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBkZXRhaWxzIFRoZSBkZXRhaWxzIHRvIGluc2VydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBtb2RpZmllZCBzb3VyY2UuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5zZXJ0V3JhcERldGFpbHMoc291cmNlLCBkZXRhaWxzKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gZGV0YWlscy5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gc291cmNlO1xuICAgICAgfVxuICAgICAgdmFyIGxhc3RJbmRleCA9IGxlbmd0aCAtIDE7XG4gICAgICBkZXRhaWxzW2xhc3RJbmRleF0gPSAobGVuZ3RoID4gMSA/ICcmICcgOiAnJykgKyBkZXRhaWxzW2xhc3RJbmRleF07XG4gICAgICBkZXRhaWxzID0gZGV0YWlscy5qb2luKGxlbmd0aCA+IDIgPyAnLCAnIDogJyAnKTtcbiAgICAgIHJldHVybiBzb3VyY2UucmVwbGFjZShyZVdyYXBDb21tZW50LCAne1xcbi8qIFt3cmFwcGVkIHdpdGggJyArIGRldGFpbHMgKyAnXSAqL1xcbicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgZmxhdHRlbmFibGUgYGFyZ3VtZW50c2Agb2JqZWN0IG9yIGFycmF5LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBmbGF0dGVuYWJsZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRmxhdHRlbmFibGUodmFsdWUpIHtcbiAgICAgIHJldHVybiBpc0FycmF5KHZhbHVlKSB8fCBpc0FyZ3VtZW50cyh2YWx1ZSkgfHxcbiAgICAgICAgISEoc3ByZWFkYWJsZVN5bWJvbCAmJiB2YWx1ZSAmJiB2YWx1ZVtzcHJlYWRhYmxlU3ltYm9sXSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBhcnJheS1saWtlIGluZGV4LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD1NQVhfU0FGRV9JTlRFR0VSXSBUaGUgdXBwZXIgYm91bmRzIG9mIGEgdmFsaWQgaW5kZXguXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBpbmRleCwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzSW5kZXgodmFsdWUsIGxlbmd0aCkge1xuICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgICBsZW5ndGggPSBsZW5ndGggPT0gbnVsbCA/IE1BWF9TQUZFX0lOVEVHRVIgOiBsZW5ndGg7XG5cbiAgICAgIHJldHVybiAhIWxlbmd0aCAmJlxuICAgICAgICAodHlwZSA9PSAnbnVtYmVyJyB8fFxuICAgICAgICAgICh0eXBlICE9ICdzeW1ib2wnICYmIHJlSXNVaW50LnRlc3QodmFsdWUpKSkgJiZcbiAgICAgICAgICAgICh2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDwgbGVuZ3RoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIGdpdmVuIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgdmFsdWUgYXJndW1lbnQuXG4gICAgICogQHBhcmFtIHsqfSBpbmRleCBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIGluZGV4IG9yIGtleSBhcmd1bWVudC5cbiAgICAgKiBAcGFyYW0geyp9IG9iamVjdCBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIG9iamVjdCBhcmd1bWVudC5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNJdGVyYXRlZUNhbGwodmFsdWUsIGluZGV4LCBvYmplY3QpIHtcbiAgICAgIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgdHlwZSA9IHR5cGVvZiBpbmRleDtcbiAgICAgIGlmICh0eXBlID09ICdudW1iZXInXG4gICAgICAgICAgICA/IChpc0FycmF5TGlrZShvYmplY3QpICYmIGlzSW5kZXgoaW5kZXgsIG9iamVjdC5sZW5ndGgpKVxuICAgICAgICAgICAgOiAodHlwZSA9PSAnc3RyaW5nJyAmJiBpbmRleCBpbiBvYmplY3QpXG4gICAgICAgICAgKSB7XG4gICAgICAgIHJldHVybiBlcShvYmplY3RbaW5kZXhdLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBwcm9wZXJ0eSBuYW1lIGFuZCBub3QgYSBwcm9wZXJ0eSBwYXRoLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeSBrZXlzIG9uLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcHJvcGVydHkgbmFtZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzS2V5KHZhbHVlLCBvYmplY3QpIHtcbiAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgICAgIGlmICh0eXBlID09ICdudW1iZXInIHx8IHR5cGUgPT0gJ3N5bWJvbCcgfHwgdHlwZSA9PSAnYm9vbGVhbicgfHxcbiAgICAgICAgICB2YWx1ZSA9PSBudWxsIHx8IGlzU3ltYm9sKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZUlzUGxhaW5Qcm9wLnRlc3QodmFsdWUpIHx8ICFyZUlzRGVlcFByb3AudGVzdCh2YWx1ZSkgfHxcbiAgICAgICAgKG9iamVjdCAhPSBudWxsICYmIHZhbHVlIGluIE9iamVjdChvYmplY3QpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBzdWl0YWJsZSBmb3IgdXNlIGFzIHVuaXF1ZSBvYmplY3Qga2V5LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBzdWl0YWJsZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzS2V5YWJsZSh2YWx1ZSkge1xuICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgICByZXR1cm4gKHR5cGUgPT0gJ3N0cmluZycgfHwgdHlwZSA9PSAnbnVtYmVyJyB8fCB0eXBlID09ICdzeW1ib2wnIHx8IHR5cGUgPT0gJ2Jvb2xlYW4nKVxuICAgICAgICA/ICh2YWx1ZSAhPT0gJ19fcHJvdG9fXycpXG4gICAgICAgIDogKHZhbHVlID09PSBudWxsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYGZ1bmNgIGhhcyBhIGxhenkgY291bnRlcnBhcnQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgZnVuY2AgaGFzIGEgbGF6eSBjb3VudGVycGFydCxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTGF6aWFibGUoZnVuYykge1xuICAgICAgdmFyIGZ1bmNOYW1lID0gZ2V0RnVuY05hbWUoZnVuYyksXG4gICAgICAgICAgb3RoZXIgPSBsb2Rhc2hbZnVuY05hbWVdO1xuXG4gICAgICBpZiAodHlwZW9mIG90aGVyICE9ICdmdW5jdGlvbicgfHwgIShmdW5jTmFtZSBpbiBMYXp5V3JhcHBlci5wcm90b3R5cGUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChmdW5jID09PSBvdGhlcikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHZhciBkYXRhID0gZ2V0RGF0YShvdGhlcik7XG4gICAgICByZXR1cm4gISFkYXRhICYmIGZ1bmMgPT09IGRhdGFbMF07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBmdW5jYCBoYXMgaXRzIHNvdXJjZSBtYXNrZWQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgZnVuY2AgaXMgbWFza2VkLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNNYXNrZWQoZnVuYykge1xuICAgICAgcmV0dXJuICEhbWFza1NyY0tleSAmJiAobWFza1NyY0tleSBpbiBmdW5jKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYGZ1bmNgIGlzIGNhcGFibGUgb2YgYmVpbmcgbWFza2VkLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGlzIG1hc2thYmxlLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgdmFyIGlzTWFza2FibGUgPSBjb3JlSnNEYXRhID8gaXNGdW5jdGlvbiA6IHN0dWJGYWxzZTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGxpa2VseSBhIHByb3RvdHlwZSBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcHJvdG90eXBlLCBlbHNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNQcm90b3R5cGUodmFsdWUpIHtcbiAgICAgIHZhciBDdG9yID0gdmFsdWUgJiYgdmFsdWUuY29uc3RydWN0b3IsXG4gICAgICAgICAgcHJvdG8gPSAodHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yLnByb3RvdHlwZSkgfHwgb2JqZWN0UHJvdG87XG5cbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gcHJvdG87XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUgZm9yIHN0cmljdCBlcXVhbGl0eSBjb21wYXJpc29ucywgaS5lLiBgPT09YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaWYgc3VpdGFibGUgZm9yIHN0cmljdFxuICAgICAqICBlcXVhbGl0eSBjb21wYXJpc29ucywgZWxzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSB2YWx1ZSAmJiAhaXNPYmplY3QodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgbWF0Y2hlc1Byb3BlcnR5YCBmb3Igc291cmNlIHZhbHVlcyBzdWl0YWJsZVxuICAgICAqIGZvciBzdHJpY3QgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGkuZS4gYD09PWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gc3JjVmFsdWUgVGhlIHZhbHVlIHRvIG1hdGNoLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHNwZWMgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWF0Y2hlc1N0cmljdENvbXBhcmFibGUoa2V5LCBzcmNWYWx1ZSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iamVjdFtrZXldID09PSBzcmNWYWx1ZSAmJlxuICAgICAgICAgIChzcmNWYWx1ZSAhPT0gdW5kZWZpbmVkIHx8IChrZXkgaW4gT2JqZWN0KG9iamVjdCkpKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLm1lbW9pemVgIHdoaWNoIGNsZWFycyB0aGUgbWVtb2l6ZWQgZnVuY3Rpb24nc1xuICAgICAqIGNhY2hlIHdoZW4gaXQgZXhjZWVkcyBgTUFYX01FTU9JWkVfU0laRWAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGhhdmUgaXRzIG91dHB1dCBtZW1vaXplZC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtZW1vaXplZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtZW1vaXplQ2FwcGVkKGZ1bmMpIHtcbiAgICAgIHZhciByZXN1bHQgPSBtZW1vaXplKGZ1bmMsIGZ1bmN0aW9uKGtleSkge1xuICAgICAgICBpZiAoY2FjaGUuc2l6ZSA9PT0gTUFYX01FTU9JWkVfU0laRSkge1xuICAgICAgICAgIGNhY2hlLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgIH0pO1xuXG4gICAgICB2YXIgY2FjaGUgPSByZXN1bHQuY2FjaGU7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1lcmdlcyB0aGUgZnVuY3Rpb24gbWV0YWRhdGEgb2YgYHNvdXJjZWAgaW50byBgZGF0YWAuXG4gICAgICpcbiAgICAgKiBNZXJnaW5nIG1ldGFkYXRhIHJlZHVjZXMgdGhlIG51bWJlciBvZiB3cmFwcGVycyB1c2VkIHRvIGludm9rZSBhIGZ1bmN0aW9uLlxuICAgICAqIFRoaXMgaXMgcG9zc2libGUgYmVjYXVzZSBtZXRob2RzIGxpa2UgYF8uYmluZGAsIGBfLmN1cnJ5YCwgYW5kIGBfLnBhcnRpYWxgXG4gICAgICogbWF5IGJlIGFwcGxpZWQgcmVnYXJkbGVzcyBvZiBleGVjdXRpb24gb3JkZXIuIE1ldGhvZHMgbGlrZSBgXy5hcnlgIGFuZFxuICAgICAqIGBfLnJlYXJnYCBtb2RpZnkgZnVuY3Rpb24gYXJndW1lbnRzLCBtYWtpbmcgdGhlIG9yZGVyIGluIHdoaWNoIHRoZXkgYXJlXG4gICAgICogZXhlY3V0ZWQgaW1wb3J0YW50LCBwcmV2ZW50aW5nIHRoZSBtZXJnaW5nIG9mIG1ldGFkYXRhLiBIb3dldmVyLCB3ZSBtYWtlXG4gICAgICogYW4gZXhjZXB0aW9uIGZvciBhIHNhZmUgY29tYmluZWQgY2FzZSB3aGVyZSBjdXJyaWVkIGZ1bmN0aW9ucyBoYXZlIGBfLmFyeWBcbiAgICAgKiBhbmQgb3IgYF8ucmVhcmdgIGFwcGxpZWQuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGRhdGEgVGhlIGRlc3RpbmF0aW9uIG1ldGFkYXRhLlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHNvdXJjZSBUaGUgc291cmNlIG1ldGFkYXRhLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgZGF0YWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWVyZ2VEYXRhKGRhdGEsIHNvdXJjZSkge1xuICAgICAgdmFyIGJpdG1hc2sgPSBkYXRhWzFdLFxuICAgICAgICAgIHNyY0JpdG1hc2sgPSBzb3VyY2VbMV0sXG4gICAgICAgICAgbmV3Qml0bWFzayA9IGJpdG1hc2sgfCBzcmNCaXRtYXNrLFxuICAgICAgICAgIGlzQ29tbW9uID0gbmV3Qml0bWFzayA8IChXUkFQX0JJTkRfRkxBRyB8IFdSQVBfQklORF9LRVlfRkxBRyB8IFdSQVBfQVJZX0ZMQUcpO1xuXG4gICAgICB2YXIgaXNDb21ibyA9XG4gICAgICAgICgoc3JjQml0bWFzayA9PSBXUkFQX0FSWV9GTEFHKSAmJiAoYml0bWFzayA9PSBXUkFQX0NVUlJZX0ZMQUcpKSB8fFxuICAgICAgICAoKHNyY0JpdG1hc2sgPT0gV1JBUF9BUllfRkxBRykgJiYgKGJpdG1hc2sgPT0gV1JBUF9SRUFSR19GTEFHKSAmJiAoZGF0YVs3XS5sZW5ndGggPD0gc291cmNlWzhdKSkgfHxcbiAgICAgICAgKChzcmNCaXRtYXNrID09IChXUkFQX0FSWV9GTEFHIHwgV1JBUF9SRUFSR19GTEFHKSkgJiYgKHNvdXJjZVs3XS5sZW5ndGggPD0gc291cmNlWzhdKSAmJiAoYml0bWFzayA9PSBXUkFQX0NVUlJZX0ZMQUcpKTtcblxuICAgICAgLy8gRXhpdCBlYXJseSBpZiBtZXRhZGF0YSBjYW4ndCBiZSBtZXJnZWQuXG4gICAgICBpZiAoIShpc0NvbW1vbiB8fCBpc0NvbWJvKSkge1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH1cbiAgICAgIC8vIFVzZSBzb3VyY2UgYHRoaXNBcmdgIGlmIGF2YWlsYWJsZS5cbiAgICAgIGlmIChzcmNCaXRtYXNrICYgV1JBUF9CSU5EX0ZMQUcpIHtcbiAgICAgICAgZGF0YVsyXSA9IHNvdXJjZVsyXTtcbiAgICAgICAgLy8gU2V0IHdoZW4gY3VycnlpbmcgYSBib3VuZCBmdW5jdGlvbi5cbiAgICAgICAgbmV3Qml0bWFzayB8PSBiaXRtYXNrICYgV1JBUF9CSU5EX0ZMQUcgPyAwIDogV1JBUF9DVVJSWV9CT1VORF9GTEFHO1xuICAgICAgfVxuICAgICAgLy8gQ29tcG9zZSBwYXJ0aWFsIGFyZ3VtZW50cy5cbiAgICAgIHZhciB2YWx1ZSA9IHNvdXJjZVszXTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB2YXIgcGFydGlhbHMgPSBkYXRhWzNdO1xuICAgICAgICBkYXRhWzNdID0gcGFydGlhbHMgPyBjb21wb3NlQXJncyhwYXJ0aWFscywgdmFsdWUsIHNvdXJjZVs0XSkgOiB2YWx1ZTtcbiAgICAgICAgZGF0YVs0XSA9IHBhcnRpYWxzID8gcmVwbGFjZUhvbGRlcnMoZGF0YVszXSwgUExBQ0VIT0xERVIpIDogc291cmNlWzRdO1xuICAgICAgfVxuICAgICAgLy8gQ29tcG9zZSBwYXJ0aWFsIHJpZ2h0IGFyZ3VtZW50cy5cbiAgICAgIHZhbHVlID0gc291cmNlWzVdO1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHBhcnRpYWxzID0gZGF0YVs1XTtcbiAgICAgICAgZGF0YVs1XSA9IHBhcnRpYWxzID8gY29tcG9zZUFyZ3NSaWdodChwYXJ0aWFscywgdmFsdWUsIHNvdXJjZVs2XSkgOiB2YWx1ZTtcbiAgICAgICAgZGF0YVs2XSA9IHBhcnRpYWxzID8gcmVwbGFjZUhvbGRlcnMoZGF0YVs1XSwgUExBQ0VIT0xERVIpIDogc291cmNlWzZdO1xuICAgICAgfVxuICAgICAgLy8gVXNlIHNvdXJjZSBgYXJnUG9zYCBpZiBhdmFpbGFibGUuXG4gICAgICB2YWx1ZSA9IHNvdXJjZVs3XTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBkYXRhWzddID0gdmFsdWU7XG4gICAgICB9XG4gICAgICAvLyBVc2Ugc291cmNlIGBhcnlgIGlmIGl0J3Mgc21hbGxlci5cbiAgICAgIGlmIChzcmNCaXRtYXNrICYgV1JBUF9BUllfRkxBRykge1xuICAgICAgICBkYXRhWzhdID0gZGF0YVs4XSA9PSBudWxsID8gc291cmNlWzhdIDogbmF0aXZlTWluKGRhdGFbOF0sIHNvdXJjZVs4XSk7XG4gICAgICB9XG4gICAgICAvLyBVc2Ugc291cmNlIGBhcml0eWAgaWYgb25lIGlzIG5vdCBwcm92aWRlZC5cbiAgICAgIGlmIChkYXRhWzldID09IG51bGwpIHtcbiAgICAgICAgZGF0YVs5XSA9IHNvdXJjZVs5XTtcbiAgICAgIH1cbiAgICAgIC8vIFVzZSBzb3VyY2UgYGZ1bmNgIGFuZCBtZXJnZSBiaXRtYXNrcy5cbiAgICAgIGRhdGFbMF0gPSBzb3VyY2VbMF07XG4gICAgICBkYXRhWzFdID0gbmV3Qml0bWFzaztcblxuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlXG4gICAgICogW2BPYmplY3Qua2V5c2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5rZXlzKVxuICAgICAqIGV4Y2VwdCB0aGF0IGl0IGluY2x1ZGVzIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG5hdGl2ZUtleXNJbihvYmplY3QpIHtcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgIGlmIChvYmplY3QgIT0gbnVsbCkge1xuICAgICAgICBmb3IgKHZhciBrZXkgaW4gT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcgdXNpbmcgYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBzdHJpbmcuXG4gICAgICovXG4gICAgZnVuY3Rpb24gb2JqZWN0VG9TdHJpbmcodmFsdWUpIHtcbiAgICAgIHJldHVybiBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VSZXN0YCB3aGljaCB0cmFuc2Zvcm1zIHRoZSByZXN0IGFycmF5LlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhcHBseSBhIHJlc3QgcGFyYW1ldGVyIHRvLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9ZnVuYy5sZW5ndGgtMV0gVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSByZXN0IHBhcmFtZXRlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB0cmFuc2Zvcm0gVGhlIHJlc3QgYXJyYXkgdHJhbnNmb3JtLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG92ZXJSZXN0KGZ1bmMsIHN0YXJ0LCB0cmFuc2Zvcm0pIHtcbiAgICAgIHN0YXJ0ID0gbmF0aXZlTWF4KHN0YXJ0ID09PSB1bmRlZmluZWQgPyAoZnVuYy5sZW5ndGggLSAxKSA6IHN0YXJ0LCAwKTtcbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgICAgICBpbmRleCA9IC0xLFxuICAgICAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWF4KGFyZ3MubGVuZ3RoIC0gc3RhcnQsIDApLFxuICAgICAgICAgICAgYXJyYXkgPSBBcnJheShsZW5ndGgpO1xuXG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgYXJyYXlbaW5kZXhdID0gYXJnc1tzdGFydCArIGluZGV4XTtcbiAgICAgICAgfVxuICAgICAgICBpbmRleCA9IC0xO1xuICAgICAgICB2YXIgb3RoZXJBcmdzID0gQXJyYXkoc3RhcnQgKyAxKTtcbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBzdGFydCkge1xuICAgICAgICAgIG90aGVyQXJnc1tpbmRleF0gPSBhcmdzW2luZGV4XTtcbiAgICAgICAgfVxuICAgICAgICBvdGhlckFyZ3Nbc3RhcnRdID0gdHJhbnNmb3JtKGFycmF5KTtcbiAgICAgICAgcmV0dXJuIGFwcGx5KGZ1bmMsIHRoaXMsIG90aGVyQXJncyk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHBhcmVudCB2YWx1ZSBhdCBgcGF0aGAgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwYXRoIFRoZSBwYXRoIHRvIGdldCB0aGUgcGFyZW50IHZhbHVlIG9mLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBwYXJlbnQgdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gcGFyZW50KG9iamVjdCwgcGF0aCkge1xuICAgICAgcmV0dXJuIHBhdGgubGVuZ3RoIDwgMiA/IG9iamVjdCA6IGJhc2VHZXQob2JqZWN0LCBiYXNlU2xpY2UocGF0aCwgMCwgLTEpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW9yZGVyIGBhcnJheWAgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgaW5kZXhlcyB3aGVyZSB0aGUgZWxlbWVudCBhdFxuICAgICAqIHRoZSBmaXJzdCBpbmRleCBpcyBhc3NpZ25lZCBhcyB0aGUgZmlyc3QgZWxlbWVudCwgdGhlIGVsZW1lbnQgYXRcbiAgICAgKiB0aGUgc2Vjb25kIGluZGV4IGlzIGFzc2lnbmVkIGFzIHRoZSBzZWNvbmQgZWxlbWVudCwgYW5kIHNvIG9uLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcmVvcmRlci5cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBpbmRleGVzIFRoZSBhcnJhbmdlZCBhcnJheSBpbmRleGVzLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlb3JkZXIoYXJyYXksIGluZGV4ZXMpIHtcbiAgICAgIHZhciBhcnJMZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWluKGluZGV4ZXMubGVuZ3RoLCBhcnJMZW5ndGgpLFxuICAgICAgICAgIG9sZEFycmF5ID0gY29weUFycmF5KGFycmF5KTtcblxuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIHZhciBpbmRleCA9IGluZGV4ZXNbbGVuZ3RoXTtcbiAgICAgICAgYXJyYXlbbGVuZ3RoXSA9IGlzSW5kZXgoaW5kZXgsIGFyckxlbmd0aCkgPyBvbGRBcnJheVtpbmRleF0gOiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgdmFsdWUgYXQgYGtleWAsIHVubGVzcyBga2V5YCBpcyBcIl9fcHJvdG9fX1wiIG9yIFwiY29uc3RydWN0b3JcIi5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzYWZlR2V0KG9iamVjdCwga2V5KSB7XG4gICAgICBpZiAoa2V5ID09PSAnY29uc3RydWN0b3InICYmIHR5cGVvZiBvYmplY3Rba2V5XSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChrZXkgPT0gJ19fcHJvdG9fXycpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gb2JqZWN0W2tleV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBtZXRhZGF0YSBmb3IgYGZ1bmNgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIElmIHRoaXMgZnVuY3Rpb24gYmVjb21lcyBob3QsIGkuZS4gaXMgaW52b2tlZCBhIGxvdCBpbiBhIHNob3J0XG4gICAgICogcGVyaW9kIG9mIHRpbWUsIGl0IHdpbGwgdHJpcCBpdHMgYnJlYWtlciBhbmQgdHJhbnNpdGlvbiB0byBhbiBpZGVudGl0eVxuICAgICAqIGZ1bmN0aW9uIHRvIGF2b2lkIGdhcmJhZ2UgY29sbGVjdGlvbiBwYXVzZXMgaW4gVjguIFNlZVxuICAgICAqIFtWOCBpc3N1ZSAyMDcwXShodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0yMDcwKVxuICAgICAqIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFzc29jaWF0ZSBtZXRhZGF0YSB3aXRoLlxuICAgICAqIEBwYXJhbSB7Kn0gZGF0YSBUaGUgbWV0YWRhdGEuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBmdW5jYC5cbiAgICAgKi9cbiAgICB2YXIgc2V0RGF0YSA9IHNob3J0T3V0KGJhc2VTZXREYXRhKTtcblxuICAgIC8qKlxuICAgICAqIEEgc2ltcGxlIHdyYXBwZXIgYXJvdW5kIHRoZSBnbG9iYWwgW2BzZXRUaW1lb3V0YF0oaHR0cHM6Ly9tZG4uaW8vc2V0VGltZW91dCkuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRlbGF5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3YWl0IFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIGRlbGF5IGludm9jYXRpb24uXG4gICAgICogQHJldHVybnMge251bWJlcnxPYmplY3R9IFJldHVybnMgdGhlIHRpbWVyIGlkIG9yIHRpbWVvdXQgb2JqZWN0LlxuICAgICAqL1xuICAgIHZhciBzZXRUaW1lb3V0ID0gY3R4U2V0VGltZW91dCB8fCBmdW5jdGlvbihmdW5jLCB3YWl0KSB7XG4gICAgICByZXR1cm4gcm9vdC5zZXRUaW1lb3V0KGZ1bmMsIHdhaXQpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgdG9TdHJpbmdgIG1ldGhvZCBvZiBgZnVuY2AgdG8gcmV0dXJuIGBzdHJpbmdgLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gc3RyaW5nIFRoZSBgdG9TdHJpbmdgIHJlc3VsdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGZ1bmNgLlxuICAgICAqL1xuICAgIHZhciBzZXRUb1N0cmluZyA9IHNob3J0T3V0KGJhc2VTZXRUb1N0cmluZyk7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgdG9TdHJpbmdgIG1ldGhvZCBvZiBgd3JhcHBlcmAgdG8gbWltaWMgdGhlIHNvdXJjZSBvZiBgcmVmZXJlbmNlYFxuICAgICAqIHdpdGggd3JhcHBlciBkZXRhaWxzIGluIGEgY29tbWVudCBhdCB0aGUgdG9wIG9mIHRoZSBzb3VyY2UgYm9keS5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gd3JhcHBlciBUaGUgZnVuY3Rpb24gdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IHJlZmVyZW5jZSBUaGUgcmVmZXJlbmNlIGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGNyZWF0ZVdyYXBgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGB3cmFwcGVyYC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzZXRXcmFwVG9TdHJpbmcod3JhcHBlciwgcmVmZXJlbmNlLCBiaXRtYXNrKSB7XG4gICAgICB2YXIgc291cmNlID0gKHJlZmVyZW5jZSArICcnKTtcbiAgICAgIHJldHVybiBzZXRUb1N0cmluZyh3cmFwcGVyLCBpbnNlcnRXcmFwRGV0YWlscyhzb3VyY2UsIHVwZGF0ZVdyYXBEZXRhaWxzKGdldFdyYXBEZXRhaWxzKHNvdXJjZSksIGJpdG1hc2spKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQnbGwgc2hvcnQgb3V0IGFuZCBpbnZva2UgYGlkZW50aXR5YCBpbnN0ZWFkXG4gICAgICogb2YgYGZ1bmNgIHdoZW4gaXQncyBjYWxsZWQgYEhPVF9DT1VOVGAgb3IgbW9yZSB0aW1lcyBpbiBgSE9UX1NQQU5gXG4gICAgICogbWlsbGlzZWNvbmRzLlxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byByZXN0cmljdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzaG9ydGFibGUgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2hvcnRPdXQoZnVuYykge1xuICAgICAgdmFyIGNvdW50ID0gMCxcbiAgICAgICAgICBsYXN0Q2FsbGVkID0gMDtcblxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgc3RhbXAgPSBuYXRpdmVOb3coKSxcbiAgICAgICAgICAgIHJlbWFpbmluZyA9IEhPVF9TUEFOIC0gKHN0YW1wIC0gbGFzdENhbGxlZCk7XG5cbiAgICAgICAgbGFzdENhbGxlZCA9IHN0YW1wO1xuICAgICAgICBpZiAocmVtYWluaW5nID4gMCkge1xuICAgICAgICAgIGlmICgrK2NvdW50ID49IEhPVF9DT1VOVCkge1xuICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50c1swXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY291bnQgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmdW5jLmFwcGx5KHVuZGVmaW5lZCwgYXJndW1lbnRzKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLnNodWZmbGVgIHdoaWNoIG11dGF0ZXMgYW5kIHNldHMgdGhlIHNpemUgb2YgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNodWZmbGUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzaXplPWFycmF5Lmxlbmd0aF0gVGhlIHNpemUgb2YgYGFycmF5YC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzaHVmZmxlU2VsZihhcnJheSwgc2l6ZSkge1xuICAgICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIGxhc3RJbmRleCA9IGxlbmd0aCAtIDE7XG5cbiAgICAgIHNpemUgPSBzaXplID09PSB1bmRlZmluZWQgPyBsZW5ndGggOiBzaXplO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBzaXplKSB7XG4gICAgICAgIHZhciByYW5kID0gYmFzZVJhbmRvbShpbmRleCwgbGFzdEluZGV4KSxcbiAgICAgICAgICAgIHZhbHVlID0gYXJyYXlbcmFuZF07XG5cbiAgICAgICAgYXJyYXlbcmFuZF0gPSBhcnJheVtpbmRleF07XG4gICAgICAgIGFycmF5W2luZGV4XSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgYXJyYXkubGVuZ3RoID0gc2l6ZTtcbiAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCB0byBhIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcHJvcGVydHkgcGF0aCBhcnJheS5cbiAgICAgKi9cbiAgICB2YXIgc3RyaW5nVG9QYXRoID0gbWVtb2l6ZUNhcHBlZChmdW5jdGlvbihzdHJpbmcpIHtcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgIGlmIChzdHJpbmcuY2hhckNvZGVBdCgwKSA9PT0gNDYgLyogLiAqLykge1xuICAgICAgICByZXN1bHQucHVzaCgnJyk7XG4gICAgICB9XG4gICAgICBzdHJpbmcucmVwbGFjZShyZVByb3BOYW1lLCBmdW5jdGlvbihtYXRjaCwgbnVtYmVyLCBxdW90ZSwgc3ViU3RyaW5nKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHF1b3RlID8gc3ViU3RyaW5nLnJlcGxhY2UocmVFc2NhcGVDaGFyLCAnJDEnKSA6IChudW1iZXIgfHwgbWF0Y2gpKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcga2V5IGlmIGl0J3Mgbm90IGEgc3RyaW5nIG9yIHN5bWJvbC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfHN5bWJvbH0gUmV0dXJucyB0aGUga2V5LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvS2V5KHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8IGlzU3ltYm9sKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gKHZhbHVlICsgJycpO1xuICAgICAgcmV0dXJuIChyZXN1bHQgPT0gJzAnICYmICgxIC8gdmFsdWUpID09IC1JTkZJTklUWSkgPyAnLTAnIDogcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGBmdW5jYCB0byBpdHMgc291cmNlIGNvZGUuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgc291cmNlIGNvZGUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9Tb3VyY2UoZnVuYykge1xuICAgICAgaWYgKGZ1bmMgIT0gbnVsbCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBmdW5jVG9TdHJpbmcuY2FsbChmdW5jKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gKGZ1bmMgKyAnJyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICB9XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB3cmFwcGVyIGBkZXRhaWxzYCBiYXNlZCBvbiBgYml0bWFza2AgZmxhZ3MuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gZGV0YWlscyBUaGUgZGV0YWlscyB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgY3JlYXRlV3JhcGAgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGRldGFpbHNgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVwZGF0ZVdyYXBEZXRhaWxzKGRldGFpbHMsIGJpdG1hc2spIHtcbiAgICAgIGFycmF5RWFjaCh3cmFwRmxhZ3MsIGZ1bmN0aW9uKHBhaXIpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gJ18uJyArIHBhaXJbMF07XG4gICAgICAgIGlmICgoYml0bWFzayAmIHBhaXJbMV0pICYmICFhcnJheUluY2x1ZGVzKGRldGFpbHMsIHZhbHVlKSkge1xuICAgICAgICAgIGRldGFpbHMucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGRldGFpbHMuc29ydCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgd3JhcHBlcmAuXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSB3cmFwcGVyIFRoZSB3cmFwcGVyIHRvIGNsb25lLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCB3cmFwcGVyLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdyYXBwZXJDbG9uZSh3cmFwcGVyKSB7XG4gICAgICBpZiAod3JhcHBlciBpbnN0YW5jZW9mIExhenlXcmFwcGVyKSB7XG4gICAgICAgIHJldHVybiB3cmFwcGVyLmNsb25lKCk7XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gbmV3IExvZGFzaFdyYXBwZXIod3JhcHBlci5fX3dyYXBwZWRfXywgd3JhcHBlci5fX2NoYWluX18pO1xuICAgICAgcmVzdWx0Ll9fYWN0aW9uc19fID0gY29weUFycmF5KHdyYXBwZXIuX19hY3Rpb25zX18pO1xuICAgICAgcmVzdWx0Ll9faW5kZXhfXyAgPSB3cmFwcGVyLl9faW5kZXhfXztcbiAgICAgIHJlc3VsdC5fX3ZhbHVlc19fID0gd3JhcHBlci5fX3ZhbHVlc19fO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGVsZW1lbnRzIHNwbGl0IGludG8gZ3JvdXBzIHRoZSBsZW5ndGggb2YgYHNpemVgLlxuICAgICAqIElmIGBhcnJheWAgY2FuJ3QgYmUgc3BsaXQgZXZlbmx5LCB0aGUgZmluYWwgY2h1bmsgd2lsbCBiZSB0aGUgcmVtYWluaW5nXG4gICAgICogZWxlbWVudHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NpemU9MV0gVGhlIGxlbmd0aCBvZiBlYWNoIGNodW5rXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjaHVua3MuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uY2h1bmsoWydhJywgJ2InLCAnYycsICdkJ10sIDIpO1xuICAgICAqIC8vID0+IFtbJ2EnLCAnYiddLCBbJ2MnLCAnZCddXVxuICAgICAqXG4gICAgICogXy5jaHVuayhbJ2EnLCAnYicsICdjJywgJ2QnXSwgMyk7XG4gICAgICogLy8gPT4gW1snYScsICdiJywgJ2MnXSwgWydkJ11dXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2h1bmsoYXJyYXksIHNpemUsIGd1YXJkKSB7XG4gICAgICBpZiAoKGd1YXJkID8gaXNJdGVyYXRlZUNhbGwoYXJyYXksIHNpemUsIGd1YXJkKSA6IHNpemUgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgc2l6ZSA9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzaXplID0gbmF0aXZlTWF4KHRvSW50ZWdlcihzaXplKSwgMCk7XG4gICAgICB9XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCB8fCBzaXplIDwgMSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSAwLFxuICAgICAgICAgIHJlc0luZGV4ID0gMCxcbiAgICAgICAgICByZXN1bHQgPSBBcnJheShuYXRpdmVDZWlsKGxlbmd0aCAvIHNpemUpKTtcblxuICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdFtyZXNJbmRleCsrXSA9IGJhc2VTbGljZShhcnJheSwgaW5kZXgsIChpbmRleCArPSBzaXplKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgd2l0aCBhbGwgZmFsc2V5IHZhbHVlcyByZW1vdmVkLiBUaGUgdmFsdWVzIGBmYWxzZWAsIGBudWxsYCxcbiAgICAgKiBgMGAsIGBcIlwiYCwgYHVuZGVmaW5lZGAsIGFuZCBgTmFOYCBhcmUgZmFsc2V5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGNvbXBhY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmNvbXBhY3QoWzAsIDEsIGZhbHNlLCAyLCAnJywgM10pO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbXBhY3QoYXJyYXkpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoLFxuICAgICAgICAgIHJlc0luZGV4ID0gMCxcbiAgICAgICAgICByZXN1bHQgPSBbXTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICByZXN1bHRbcmVzSW5kZXgrK10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGFycmF5IGNvbmNhdGVuYXRpbmcgYGFycmF5YCB3aXRoIGFueSBhZGRpdGlvbmFsIGFycmF5c1xuICAgICAqIGFuZC9vciB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY29uY2F0ZW5hdGUuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbdmFsdWVzXSBUaGUgdmFsdWVzIHRvIGNvbmNhdGVuYXRlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGNvbmNhdGVuYXRlZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzFdO1xuICAgICAqIHZhciBvdGhlciA9IF8uY29uY2F0KGFycmF5LCAyLCBbM10sIFtbNF1dKTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKG90aGVyKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgMywgWzRdXVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsxXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbmNhdCgpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgdmFyIGFyZ3MgPSBBcnJheShsZW5ndGggLSAxKSxcbiAgICAgICAgICBhcnJheSA9IGFyZ3VtZW50c1swXSxcbiAgICAgICAgICBpbmRleCA9IGxlbmd0aDtcblxuICAgICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgICAgYXJnc1tpbmRleCAtIDFdID0gYXJndW1lbnRzW2luZGV4XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnJheVB1c2goaXNBcnJheShhcnJheSkgPyBjb3B5QXJyYXkoYXJyYXkpIDogW2FycmF5XSwgYmFzZUZsYXR0ZW4oYXJncywgMSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgYGFycmF5YCB2YWx1ZXMgbm90IGluY2x1ZGVkIGluIHRoZSBvdGhlciBnaXZlbiBhcnJheXNcbiAgICAgKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy4gVGhlIG9yZGVyIGFuZCByZWZlcmVuY2VzIG9mIHJlc3VsdCB2YWx1ZXMgYXJlXG4gICAgICogZGV0ZXJtaW5lZCBieSB0aGUgZmlyc3QgYXJyYXkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLnB1bGxBbGxgLCB0aGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW3ZhbHVlc10gVGhlIHZhbHVlcyB0byBleGNsdWRlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cbiAgICAgKiBAc2VlIF8ud2l0aG91dCwgXy54b3JcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kaWZmZXJlbmNlKFsyLCAxXSwgWzIsIDNdKTtcbiAgICAgKiAvLyA9PiBbMV1cbiAgICAgKi9cbiAgICB2YXIgZGlmZmVyZW5jZSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5LCB2YWx1ZXMpIHtcbiAgICAgIHJldHVybiBpc0FycmF5TGlrZU9iamVjdChhcnJheSlcbiAgICAgICAgPyBiYXNlRGlmZmVyZW5jZShhcnJheSwgYmFzZUZsYXR0ZW4odmFsdWVzLCAxLCBpc0FycmF5TGlrZU9iamVjdCwgdHJ1ZSkpXG4gICAgICAgIDogW107XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmRpZmZlcmVuY2VgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaFxuICAgICAqIGlzIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBvZiBgYXJyYXlgIGFuZCBgdmFsdWVzYCB0byBnZW5lcmF0ZSB0aGUgY3JpdGVyaW9uXG4gICAgICogYnkgd2hpY2ggdGhleSdyZSBjb21wYXJlZC4gVGhlIG9yZGVyIGFuZCByZWZlcmVuY2VzIG9mIHJlc3VsdCB2YWx1ZXMgYXJlXG4gICAgICogZGV0ZXJtaW5lZCBieSB0aGUgZmlyc3QgYXJyYXkuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OlxuICAgICAqICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLnB1bGxBbGxCeWAsIHRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbdmFsdWVzXSBUaGUgdmFsdWVzIHRvIGV4Y2x1ZGUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kaWZmZXJlbmNlQnkoWzIuMSwgMS4yXSwgWzIuMywgMy40XSwgTWF0aC5mbG9vcik7XG4gICAgICogLy8gPT4gWzEuMl1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZGlmZmVyZW5jZUJ5KFt7ICd4JzogMiB9LCB7ICd4JzogMSB9XSwgW3sgJ3gnOiAxIH1dLCAneCcpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMiB9XVxuICAgICAqL1xuICAgIHZhciBkaWZmZXJlbmNlQnkgPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheSwgdmFsdWVzKSB7XG4gICAgICB2YXIgaXRlcmF0ZWUgPSBsYXN0KHZhbHVlcyk7XG4gICAgICBpZiAoaXNBcnJheUxpa2VPYmplY3QoaXRlcmF0ZWUpKSB7XG4gICAgICAgIGl0ZXJhdGVlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlT2JqZWN0KGFycmF5KVxuICAgICAgICA/IGJhc2VEaWZmZXJlbmNlKGFycmF5LCBiYXNlRmxhdHRlbih2YWx1ZXMsIDEsIGlzQXJyYXlMaWtlT2JqZWN0LCB0cnVlKSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKVxuICAgICAgICA6IFtdO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5kaWZmZXJlbmNlYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjb21wYXJhdG9yYFxuICAgICAqIHdoaWNoIGlzIGludm9rZWQgdG8gY29tcGFyZSBlbGVtZW50cyBvZiBgYXJyYXlgIHRvIGB2YWx1ZXNgLiBUaGUgb3JkZXIgYW5kXG4gICAgICogcmVmZXJlbmNlcyBvZiByZXN1bHQgdmFsdWVzIGFyZSBkZXRlcm1pbmVkIGJ5IHRoZSBmaXJzdCBhcnJheS4gVGhlIGNvbXBhcmF0b3JcbiAgICAgKiBpcyBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50czogKGFyclZhbCwgb3RoVmFsKS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBVbmxpa2UgYF8ucHVsbEFsbFdpdGhgLCB0aGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW3ZhbHVlc10gVGhlIHZhbHVlcyB0byBleGNsdWRlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAneCc6IDEsICd5JzogMiB9LCB7ICd4JzogMiwgJ3knOiAxIH1dO1xuICAgICAqXG4gICAgICogXy5kaWZmZXJlbmNlV2l0aChvYmplY3RzLCBbeyAneCc6IDEsICd5JzogMiB9XSwgXy5pc0VxdWFsKTtcbiAgICAgKiAvLyA9PiBbeyAneCc6IDIsICd5JzogMSB9XVxuICAgICAqL1xuICAgIHZhciBkaWZmZXJlbmNlV2l0aCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5LCB2YWx1ZXMpIHtcbiAgICAgIHZhciBjb21wYXJhdG9yID0gbGFzdCh2YWx1ZXMpO1xuICAgICAgaWYgKGlzQXJyYXlMaWtlT2JqZWN0KGNvbXBhcmF0b3IpKSB7XG4gICAgICAgIGNvbXBhcmF0b3IgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gaXNBcnJheUxpa2VPYmplY3QoYXJyYXkpXG4gICAgICAgID8gYmFzZURpZmZlcmVuY2UoYXJyYXksIGJhc2VGbGF0dGVuKHZhbHVlcywgMSwgaXNBcnJheUxpa2VPYmplY3QsIHRydWUpLCB1bmRlZmluZWQsIGNvbXBhcmF0b3IpXG4gICAgICAgIDogW107XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCB3aXRoIGBuYCBlbGVtZW50cyBkcm9wcGVkIGZyb20gdGhlIGJlZ2lubmluZy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjUuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249MV0gVGhlIG51bWJlciBvZiBlbGVtZW50cyB0byBkcm9wLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRyb3AoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBbMiwgM11cbiAgICAgKlxuICAgICAqIF8uZHJvcChbMSwgMiwgM10sIDIpO1xuICAgICAqIC8vID0+IFszXVxuICAgICAqXG4gICAgICogXy5kcm9wKFsxLCAyLCAzXSwgNSk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKlxuICAgICAqIF8uZHJvcChbMSwgMiwgM10sIDApO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRyb3AoYXJyYXksIG4sIGd1YXJkKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBuID0gKGd1YXJkIHx8IG4gPT09IHVuZGVmaW5lZCkgPyAxIDogdG9JbnRlZ2VyKG4pO1xuICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgbiA8IDAgPyAwIDogbiwgbGVuZ3RoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCB3aXRoIGBuYCBlbGVtZW50cyBkcm9wcGVkIGZyb20gdGhlIGVuZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249MV0gVGhlIG51bWJlciBvZiBlbGVtZW50cyB0byBkcm9wLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRyb3BSaWdodChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqXG4gICAgICogXy5kcm9wUmlnaHQoWzEsIDIsIDNdLCAyKTtcbiAgICAgKiAvLyA9PiBbMV1cbiAgICAgKlxuICAgICAqIF8uZHJvcFJpZ2h0KFsxLCAyLCAzXSwgNSk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKlxuICAgICAqIF8uZHJvcFJpZ2h0KFsxLCAyLCAzXSwgMCk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICovXG4gICAgZnVuY3Rpb24gZHJvcFJpZ2h0KGFycmF5LCBuLCBndWFyZCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgbiA9IChndWFyZCB8fCBuID09PSB1bmRlZmluZWQpID8gMSA6IHRvSW50ZWdlcihuKTtcbiAgICAgIG4gPSBsZW5ndGggLSBuO1xuICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgMCwgbiA8IDAgPyAwIDogbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgZXhjbHVkaW5nIGVsZW1lbnRzIGRyb3BwZWQgZnJvbSB0aGUgZW5kLlxuICAgICAqIEVsZW1lbnRzIGFyZSBkcm9wcGVkIHVudGlsIGBwcmVkaWNhdGVgIHJldHVybnMgZmFsc2V5LiBUaGUgcHJlZGljYXRlIGlzXG4gICAgICogaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleCwgYXJyYXkpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiBmYWxzZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZHJvcFJpZ2h0V2hpbGUodXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuICFvLmFjdGl2ZTsgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydiYXJuZXknXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmRyb3BSaWdodFdoaWxlKHVzZXJzLCB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogZmFsc2UgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydiYXJuZXknLCAnZnJlZCddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5kcm9wUmlnaHRXaGlsZSh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5J11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZHJvcFJpZ2h0V2hpbGUodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2Jhcm5leScsICdmcmVkJywgJ3BlYmJsZXMnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRyb3BSaWdodFdoaWxlKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VXaGlsZShhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgdHJ1ZSwgdHJ1ZSlcbiAgICAgICAgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCBleGNsdWRpbmcgZWxlbWVudHMgZHJvcHBlZCBmcm9tIHRoZSBiZWdpbm5pbmcuXG4gICAgICogRWxlbWVudHMgYXJlIGRyb3BwZWQgdW50aWwgYHByZWRpY2F0ZWAgcmV0dXJucyBmYWxzZXkuIFRoZSBwcmVkaWNhdGUgaXNcbiAgICAgKiBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4LCBhcnJheSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiB0cnVlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5kcm9wV2hpbGUodXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuICFvLmFjdGl2ZTsgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydwZWJibGVzJ11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5kcm9wV2hpbGUodXNlcnMsIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCcsICdwZWJibGVzJ11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmRyb3BXaGlsZSh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsncGViYmxlcyddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmRyb3BXaGlsZSh1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5JywgJ2ZyZWQnLCAncGViYmxlcyddXG4gICAgICovXG4gICAgZnVuY3Rpb24gZHJvcFdoaWxlKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VXaGlsZShhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgdHJ1ZSlcbiAgICAgICAgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGaWxscyBlbGVtZW50cyBvZiBgYXJyYXlgIHdpdGggYHZhbHVlYCBmcm9tIGBzdGFydGAgdXAgdG8sIGJ1dCBub3RcbiAgICAgKiBpbmNsdWRpbmcsIGBlbmRgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjIuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmaWxsLlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGZpbGwgYGFycmF5YCB3aXRoLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9MF0gVGhlIHN0YXJ0IHBvc2l0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZW5kPWFycmF5Lmxlbmd0aF0gVGhlIGVuZCBwb3NpdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzEsIDIsIDNdO1xuICAgICAqXG4gICAgICogXy5maWxsKGFycmF5LCAnYScpO1xuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYScsICdhJ11cbiAgICAgKlxuICAgICAqIF8uZmlsbChBcnJheSgzKSwgMik7XG4gICAgICogLy8gPT4gWzIsIDIsIDJdXG4gICAgICpcbiAgICAgKiBfLmZpbGwoWzQsIDYsIDgsIDEwXSwgJyonLCAxLCAzKTtcbiAgICAgKiAvLyA9PiBbNCwgJyonLCAnKicsIDEwXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZpbGwoYXJyYXksIHZhbHVlLCBzdGFydCwgZW5kKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBpZiAoc3RhcnQgJiYgdHlwZW9mIHN0YXJ0ICE9ICdudW1iZXInICYmIGlzSXRlcmF0ZWVDYWxsKGFycmF5LCB2YWx1ZSwgc3RhcnQpKSB7XG4gICAgICAgIHN0YXJ0ID0gMDtcbiAgICAgICAgZW5kID0gbGVuZ3RoO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VGaWxsKGFycmF5LCB2YWx1ZSwgc3RhcnQsIGVuZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5maW5kYCBleGNlcHQgdGhhdCBpdCByZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3RcbiAgICAgKiBlbGVtZW50IGBwcmVkaWNhdGVgIHJldHVybnMgdHJ1dGh5IGZvciBpbnN0ZWFkIG9mIHRoZSBlbGVtZW50IGl0c2VsZi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAxLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD0wXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZvdW5kIGVsZW1lbnQsIGVsc2UgYC0xYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiB0cnVlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5maW5kSW5kZXgodXNlcnMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8udXNlciA9PSAnYmFybmV5JzsgfSk7XG4gICAgICogLy8gPT4gMFxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRJbmRleCh1c2VycywgeyAndXNlcic6ICdmcmVkJywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IDFcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRJbmRleCh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IDBcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZEluZGV4KHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gMlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZpbmRJbmRleChhcnJheSwgcHJlZGljYXRlLCBmcm9tSW5kZXgpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICAgIHZhciBpbmRleCA9IGZyb21JbmRleCA9PSBudWxsID8gMCA6IHRvSW50ZWdlcihmcm9tSW5kZXgpO1xuICAgICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgICBpbmRleCA9IG5hdGl2ZU1heChsZW5ndGggKyBpbmRleCwgMCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZUZpbmRJbmRleChhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgaW5kZXgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmluZEluZGV4YCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIGVsZW1lbnRzXG4gICAgICogb2YgYGNvbGxlY3Rpb25gIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD1hcnJheS5sZW5ndGgtMV0gVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmb3VuZCBlbGVtZW50LCBlbHNlIGAtMWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAncGViYmxlcycsICdhY3RpdmUnOiBmYWxzZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZmluZExhc3RJbmRleCh1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gby51c2VyID09ICdwZWJibGVzJzsgfSk7XG4gICAgICogLy8gPT4gMlxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRMYXN0SW5kZXgodXNlcnMsIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IHRydWUgfSk7XG4gICAgICogLy8gPT4gMFxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZExhc3RJbmRleCh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IDJcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZExhc3RJbmRleCh1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IDBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaW5kTGFzdEluZGV4KGFycmF5LCBwcmVkaWNhdGUsIGZyb21JbmRleCkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gbGVuZ3RoIC0gMTtcbiAgICAgIGlmIChmcm9tSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpbmRleCA9IHRvSW50ZWdlcihmcm9tSW5kZXgpO1xuICAgICAgICBpbmRleCA9IGZyb21JbmRleCA8IDBcbiAgICAgICAgICA/IG5hdGl2ZU1heChsZW5ndGggKyBpbmRleCwgMClcbiAgICAgICAgICA6IG5hdGl2ZU1pbihpbmRleCwgbGVuZ3RoIC0gMSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZUZpbmRJbmRleChhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgaW5kZXgsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZsYXR0ZW5zIGBhcnJheWAgYSBzaW5nbGUgbGV2ZWwgZGVlcC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmbGF0dGVuLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZsYXR0ZW5lZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5mbGF0dGVuKFsxLCBbMiwgWzMsIFs0XV0sIDVdXSk7XG4gICAgICogLy8gPT4gWzEsIDIsIFszLCBbNF1dLCA1XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZsYXR0ZW4oYXJyYXkpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIHJldHVybiBsZW5ndGggPyBiYXNlRmxhdHRlbihhcnJheSwgMSkgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWN1cnNpdmVseSBmbGF0dGVucyBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGZsYXR0ZW4uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmZsYXR0ZW5EZWVwKFsxLCBbMiwgWzMsIFs0XV0sIDVdXSk7XG4gICAgICogLy8gPT4gWzEsIDIsIDMsIDQsIDVdXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmxhdHRlbkRlZXAoYXJyYXkpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIHJldHVybiBsZW5ndGggPyBiYXNlRmxhdHRlbihhcnJheSwgSU5GSU5JVFkpIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVjdXJzaXZlbHkgZmxhdHRlbiBgYXJyYXlgIHVwIHRvIGBkZXB0aGAgdGltZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC40LjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gZmxhdHRlbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2RlcHRoPTFdIFRoZSBtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsxLCBbMiwgWzMsIFs0XV0sIDVdXTtcbiAgICAgKlxuICAgICAqIF8uZmxhdHRlbkRlcHRoKGFycmF5LCAxKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgWzMsIFs0XV0sIDVdXG4gICAgICpcbiAgICAgKiBfLmZsYXR0ZW5EZXB0aChhcnJheSwgMik7XG4gICAgICogLy8gPT4gWzEsIDIsIDMsIFs0XSwgNV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmbGF0dGVuRGVwdGgoYXJyYXksIGRlcHRoKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBkZXB0aCA9IGRlcHRoID09PSB1bmRlZmluZWQgPyAxIDogdG9JbnRlZ2VyKGRlcHRoKTtcbiAgICAgIHJldHVybiBiYXNlRmxhdHRlbihhcnJheSwgZGVwdGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBpbnZlcnNlIG9mIGBfLnRvUGFpcnNgOyB0aGlzIG1ldGhvZCByZXR1cm5zIGFuIG9iamVjdCBjb21wb3NlZFxuICAgICAqIGZyb20ga2V5LXZhbHVlIGBwYWlyc2AuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBwYWlycyBUaGUga2V5LXZhbHVlIHBhaXJzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZnJvbVBhaXJzKFtbJ2EnLCAxXSwgWydiJywgMl1dKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogMSwgJ2InOiAyIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmcm9tUGFpcnMocGFpcnMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgIGxlbmd0aCA9IHBhaXJzID09IG51bGwgPyAwIDogcGFpcnMubGVuZ3RoLFxuICAgICAgICAgIHJlc3VsdCA9IHt9O1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICB2YXIgcGFpciA9IHBhaXJzW2luZGV4XTtcbiAgICAgICAgcmVzdWx0W3BhaXJbMF1dID0gcGFpclsxXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgZmlyc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGFsaWFzIGZpcnN0XG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmaXJzdCBlbGVtZW50IG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaGVhZChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IDFcbiAgICAgKlxuICAgICAqIF8uaGVhZChbXSk7XG4gICAgICogLy8gPT4gdW5kZWZpbmVkXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGVhZChhcnJheSkge1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpID8gYXJyYXlbMF0gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgaW5kZXggYXQgd2hpY2ggdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYHZhbHVlYCBpcyBmb3VuZCBpbiBgYXJyYXlgXG4gICAgICogdXNpbmcgW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAgICAgKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuIElmIGBmcm9tSW5kZXhgIGlzIG5lZ2F0aXZlLCBpdCdzIHVzZWQgYXMgdGhlXG4gICAgICogb2Zmc2V0IGZyb20gdGhlIGVuZCBvZiBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD0wXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pbmRleE9mKFsxLCAyLCAxLCAyXSwgMik7XG4gICAgICogLy8gPT4gMVxuICAgICAqXG4gICAgICogLy8gU2VhcmNoIGZyb20gdGhlIGBmcm9tSW5kZXhgLlxuICAgICAqIF8uaW5kZXhPZihbMSwgMiwgMSwgMl0sIDIsIDIpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSBmcm9tSW5kZXggPT0gbnVsbCA/IDAgOiB0b0ludGVnZXIoZnJvbUluZGV4KTtcbiAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgaW5kZXggPSBuYXRpdmVNYXgobGVuZ3RoICsgaW5kZXgsIDApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VJbmRleE9mKGFycmF5LCB2YWx1ZSwgaW5kZXgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIGJ1dCB0aGUgbGFzdCBlbGVtZW50IG9mIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmluaXRpYWwoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbml0aWFsKGFycmF5KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICByZXR1cm4gbGVuZ3RoID8gYmFzZVNsaWNlKGFycmF5LCAwLCAtMSkgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHVuaXF1ZSB2YWx1ZXMgdGhhdCBhcmUgaW5jbHVkZWQgaW4gYWxsIGdpdmVuIGFycmF5c1xuICAgICAqIHVzaW5nIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gICAgICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLiBUaGUgb3JkZXIgYW5kIHJlZmVyZW5jZXMgb2YgcmVzdWx0IHZhbHVlcyBhcmVcbiAgICAgKiBkZXRlcm1pbmVkIGJ5IHRoZSBmaXJzdCBhcnJheS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBpbnRlcnNlY3RpbmcgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmludGVyc2VjdGlvbihbMiwgMV0sIFsyLCAzXSk7XG4gICAgICogLy8gPT4gWzJdXG4gICAgICovXG4gICAgdmFyIGludGVyc2VjdGlvbiA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgdmFyIG1hcHBlZCA9IGFycmF5TWFwKGFycmF5cywgY2FzdEFycmF5TGlrZU9iamVjdCk7XG4gICAgICByZXR1cm4gKG1hcHBlZC5sZW5ndGggJiYgbWFwcGVkWzBdID09PSBhcnJheXNbMF0pXG4gICAgICAgID8gYmFzZUludGVyc2VjdGlvbihtYXBwZWQpXG4gICAgICAgIDogW107XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmludGVyc2VjdGlvbmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgXG4gICAgICogd2hpY2ggaXMgaW52b2tlZCBmb3IgZWFjaCBlbGVtZW50IG9mIGVhY2ggYGFycmF5c2AgdG8gZ2VuZXJhdGUgdGhlIGNyaXRlcmlvblxuICAgICAqIGJ5IHdoaWNoIHRoZXkncmUgY29tcGFyZWQuIFRoZSBvcmRlciBhbmQgcmVmZXJlbmNlcyBvZiByZXN1bHQgdmFsdWVzIGFyZVxuICAgICAqIGRldGVybWluZWQgYnkgdGhlIGZpcnN0IGFycmF5LiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDpcbiAgICAgKiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBpbnRlcnNlY3RpbmcgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmludGVyc2VjdGlvbkJ5KFsyLjEsIDEuMl0sIFsyLjMsIDMuNF0sIE1hdGguZmxvb3IpO1xuICAgICAqIC8vID0+IFsyLjFdXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmludGVyc2VjdGlvbkJ5KFt7ICd4JzogMSB9XSwgW3sgJ3gnOiAyIH0sIHsgJ3gnOiAxIH1dLCAneCcpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMSB9XVxuICAgICAqL1xuICAgIHZhciBpbnRlcnNlY3Rpb25CeSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgdmFyIGl0ZXJhdGVlID0gbGFzdChhcnJheXMpLFxuICAgICAgICAgIG1hcHBlZCA9IGFycmF5TWFwKGFycmF5cywgY2FzdEFycmF5TGlrZU9iamVjdCk7XG5cbiAgICAgIGlmIChpdGVyYXRlZSA9PT0gbGFzdChtYXBwZWQpKSB7XG4gICAgICAgIGl0ZXJhdGVlID0gdW5kZWZpbmVkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWFwcGVkLnBvcCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChtYXBwZWQubGVuZ3RoICYmIG1hcHBlZFswXSA9PT0gYXJyYXlzWzBdKVxuICAgICAgICA/IGJhc2VJbnRlcnNlY3Rpb24obWFwcGVkLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMikpXG4gICAgICAgIDogW107XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmludGVyc2VjdGlvbmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY29tcGFyYXRvcmBcbiAgICAgKiB3aGljaCBpcyBpbnZva2VkIHRvIGNvbXBhcmUgZWxlbWVudHMgb2YgYGFycmF5c2AuIFRoZSBvcmRlciBhbmQgcmVmZXJlbmNlc1xuICAgICAqIG9mIHJlc3VsdCB2YWx1ZXMgYXJlIGRldGVybWluZWQgYnkgdGhlIGZpcnN0IGFycmF5LiBUaGUgY29tcGFyYXRvciBpc1xuICAgICAqIGludm9rZWQgd2l0aCB0d28gYXJndW1lbnRzOiAoYXJyVmFsLCBvdGhWYWwpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGludGVyc2VjdGluZyB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDIsICd5JzogMSB9XTtcbiAgICAgKiB2YXIgb3RoZXJzID0gW3sgJ3gnOiAxLCAneSc6IDEgfSwgeyAneCc6IDEsICd5JzogMiB9XTtcbiAgICAgKlxuICAgICAqIF8uaW50ZXJzZWN0aW9uV2l0aChvYmplY3RzLCBvdGhlcnMsIF8uaXNFcXVhbCk7XG4gICAgICogLy8gPT4gW3sgJ3gnOiAxLCAneSc6IDIgfV1cbiAgICAgKi9cbiAgICB2YXIgaW50ZXJzZWN0aW9uV2l0aCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgdmFyIGNvbXBhcmF0b3IgPSBsYXN0KGFycmF5cyksXG4gICAgICAgICAgbWFwcGVkID0gYXJyYXlNYXAoYXJyYXlzLCBjYXN0QXJyYXlMaWtlT2JqZWN0KTtcblxuICAgICAgY29tcGFyYXRvciA9IHR5cGVvZiBjb21wYXJhdG9yID09ICdmdW5jdGlvbicgPyBjb21wYXJhdG9yIDogdW5kZWZpbmVkO1xuICAgICAgaWYgKGNvbXBhcmF0b3IpIHtcbiAgICAgICAgbWFwcGVkLnBvcCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChtYXBwZWQubGVuZ3RoICYmIG1hcHBlZFswXSA9PT0gYXJyYXlzWzBdKVxuICAgICAgICA/IGJhc2VJbnRlcnNlY3Rpb24obWFwcGVkLCB1bmRlZmluZWQsIGNvbXBhcmF0b3IpXG4gICAgICAgIDogW107XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBhbGwgZWxlbWVudHMgaW4gYGFycmF5YCBpbnRvIGEgc3RyaW5nIHNlcGFyYXRlZCBieSBgc2VwYXJhdG9yYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBjb252ZXJ0LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc2VwYXJhdG9yPScsJ10gVGhlIGVsZW1lbnQgc2VwYXJhdG9yLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGpvaW5lZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uam9pbihbJ2EnLCAnYicsICdjJ10sICd+Jyk7XG4gICAgICogLy8gPT4gJ2F+Yn5jJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGpvaW4oYXJyYXksIHNlcGFyYXRvcikge1xuICAgICAgcmV0dXJuIGFycmF5ID09IG51bGwgPyAnJyA6IG5hdGl2ZUpvaW4uY2FsbChhcnJheSwgc2VwYXJhdG9yKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbGFzdCBlbGVtZW50IG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ubGFzdChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IDNcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBsYXN0KGFycmF5KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICByZXR1cm4gbGVuZ3RoID8gYXJyYXlbbGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pbmRleE9mYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mXG4gICAgICogYGFycmF5YCBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZnJvbUluZGV4PWFycmF5Lmxlbmd0aC0xXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5sYXN0SW5kZXhPZihbMSwgMiwgMSwgMl0sIDIpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIC8vIFNlYXJjaCBmcm9tIHRoZSBgZnJvbUluZGV4YC5cbiAgICAgKiBfLmxhc3RJbmRleE9mKFsxLCAyLCAxLCAyXSwgMiwgMik7XG4gICAgICogLy8gPT4gMVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxhc3RJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSBsZW5ndGg7XG4gICAgICBpZiAoZnJvbUluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaW5kZXggPSB0b0ludGVnZXIoZnJvbUluZGV4KTtcbiAgICAgICAgaW5kZXggPSBpbmRleCA8IDAgPyBuYXRpdmVNYXgobGVuZ3RoICsgaW5kZXgsIDApIDogbmF0aXZlTWluKGluZGV4LCBsZW5ndGggLSAxKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWVcbiAgICAgICAgPyBzdHJpY3RMYXN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGluZGV4KVxuICAgICAgICA6IGJhc2VGaW5kSW5kZXgoYXJyYXksIGJhc2VJc05hTiwgaW5kZXgsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGVsZW1lbnQgYXQgaW5kZXggYG5gIG9mIGBhcnJheWAuIElmIGBuYCBpcyBuZWdhdGl2ZSwgdGhlIG50aFxuICAgICAqIGVsZW1lbnQgZnJvbSB0aGUgZW5kIGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMTEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW249MF0gVGhlIGluZGV4IG9mIHRoZSBlbGVtZW50IHRvIHJldHVybi5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbnRoIGVsZW1lbnQgb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWydhJywgJ2InLCAnYycsICdkJ107XG4gICAgICpcbiAgICAgKiBfLm50aChhcnJheSwgMSk7XG4gICAgICogLy8gPT4gJ2InXG4gICAgICpcbiAgICAgKiBfLm50aChhcnJheSwgLTIpO1xuICAgICAqIC8vID0+ICdjJztcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBudGgoYXJyYXksIG4pIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSA/IGJhc2VOdGgoYXJyYXksIHRvSW50ZWdlcihuKSkgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhbGwgZ2l2ZW4gdmFsdWVzIGZyb20gYGFycmF5YCB1c2luZ1xuICAgICAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gICAgICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy53aXRob3V0YCwgdGhpcyBtZXRob2QgbXV0YXRlcyBgYXJyYXlgLiBVc2UgYF8ucmVtb3ZlYFxuICAgICAqIHRvIHJlbW92ZSBlbGVtZW50cyBmcm9tIGFuIGFycmF5IGJ5IHByZWRpY2F0ZS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbdmFsdWVzXSBUaGUgdmFsdWVzIHRvIHJlbW92ZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWydhJywgJ2InLCAnYycsICdhJywgJ2InLCAnYyddO1xuICAgICAqXG4gICAgICogXy5wdWxsKGFycmF5LCAnYScsICdjJyk7XG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsnYicsICdiJ11cbiAgICAgKi9cbiAgICB2YXIgcHVsbCA9IGJhc2VSZXN0KHB1bGxBbGwpO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5wdWxsYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGFuIGFycmF5IG9mIHZhbHVlcyB0byByZW1vdmUuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLmRpZmZlcmVuY2VgLCB0aGlzIG1ldGhvZCBtdXRhdGVzIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgdmFsdWVzIHRvIHJlbW92ZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWydhJywgJ2InLCAnYycsICdhJywgJ2InLCAnYyddO1xuICAgICAqXG4gICAgICogXy5wdWxsQWxsKGFycmF5LCBbJ2EnLCAnYyddKTtcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XG4gICAgICogLy8gPT4gWydiJywgJ2InXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHB1bGxBbGwoYXJyYXksIHZhbHVlcykge1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGggJiYgdmFsdWVzICYmIHZhbHVlcy5sZW5ndGgpXG4gICAgICAgID8gYmFzZVB1bGxBbGwoYXJyYXksIHZhbHVlcylcbiAgICAgICAgOiBhcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnB1bGxBbGxgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBvZiBgYXJyYXlgIGFuZCBgdmFsdWVzYCB0byBnZW5lcmF0ZSB0aGUgY3JpdGVyaW9uXG4gICAgICogYnkgd2hpY2ggdGhleSdyZSBjb21wYXJlZC4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLmRpZmZlcmVuY2VCeWAsIHRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSB2YWx1ZXMgdG8gcmVtb3ZlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gW3sgJ3gnOiAxIH0sIHsgJ3gnOiAyIH0sIHsgJ3gnOiAzIH0sIHsgJ3gnOiAxIH1dO1xuICAgICAqXG4gICAgICogXy5wdWxsQWxsQnkoYXJyYXksIFt7ICd4JzogMSB9LCB7ICd4JzogMyB9XSwgJ3gnKTtcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XG4gICAgICogLy8gPT4gW3sgJ3gnOiAyIH1dXG4gICAgICovXG4gICAgZnVuY3Rpb24gcHVsbEFsbEJ5KGFycmF5LCB2YWx1ZXMsIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCAmJiB2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aClcbiAgICAgICAgPyBiYXNlUHVsbEFsbChhcnJheSwgdmFsdWVzLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMikpXG4gICAgICAgIDogYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5wdWxsQWxsYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjb21wYXJhdG9yYCB3aGljaFxuICAgICAqIGlzIGludm9rZWQgdG8gY29tcGFyZSBlbGVtZW50cyBvZiBgYXJyYXlgIHRvIGB2YWx1ZXNgLiBUaGUgY29tcGFyYXRvciBpc1xuICAgICAqIGludm9rZWQgd2l0aCB0d28gYXJndW1lbnRzOiAoYXJyVmFsLCBvdGhWYWwpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFVubGlrZSBgXy5kaWZmZXJlbmNlV2l0aGAsIHRoaXMgbWV0aG9kIG11dGF0ZXMgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjYuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSB2YWx1ZXMgdG8gcmVtb3ZlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbeyAneCc6IDEsICd5JzogMiB9LCB7ICd4JzogMywgJ3knOiA0IH0sIHsgJ3gnOiA1LCAneSc6IDYgfV07XG4gICAgICpcbiAgICAgKiBfLnB1bGxBbGxXaXRoKGFycmF5LCBbeyAneCc6IDMsICd5JzogNCB9XSwgXy5pc0VxdWFsKTtcbiAgICAgKiBjb25zb2xlLmxvZyhhcnJheSk7XG4gICAgICogLy8gPT4gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDUsICd5JzogNiB9XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHB1bGxBbGxXaXRoKGFycmF5LCB2YWx1ZXMsIGNvbXBhcmF0b3IpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoICYmIHZhbHVlcyAmJiB2YWx1ZXMubGVuZ3RoKVxuICAgICAgICA/IGJhc2VQdWxsQWxsKGFycmF5LCB2YWx1ZXMsIHVuZGVmaW5lZCwgY29tcGFyYXRvcilcbiAgICAgICAgOiBhcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGVsZW1lbnRzIGZyb20gYGFycmF5YCBjb3JyZXNwb25kaW5nIHRvIGBpbmRleGVzYCBhbmQgcmV0dXJucyBhblxuICAgICAqIGFycmF5IG9mIHJlbW92ZWQgZWxlbWVudHMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLmF0YCwgdGhpcyBtZXRob2QgbXV0YXRlcyBgYXJyYXlgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0gey4uLihudW1iZXJ8bnVtYmVyW10pfSBbaW5kZXhlc10gVGhlIGluZGV4ZXMgb2YgZWxlbWVudHMgdG8gcmVtb3ZlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIHJlbW92ZWQgZWxlbWVudHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IFsnYScsICdiJywgJ2MnLCAnZCddO1xuICAgICAqIHZhciBwdWxsZWQgPSBfLnB1bGxBdChhcnJheSwgWzEsIDNdKTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYyddXG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhwdWxsZWQpO1xuICAgICAqIC8vID0+IFsnYicsICdkJ11cbiAgICAgKi9cbiAgICB2YXIgcHVsbEF0ID0gZmxhdFJlc3QoZnVuY3Rpb24oYXJyYXksIGluZGV4ZXMpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgICByZXN1bHQgPSBiYXNlQXQoYXJyYXksIGluZGV4ZXMpO1xuXG4gICAgICBiYXNlUHVsbEF0KGFycmF5LCBhcnJheU1hcChpbmRleGVzLCBmdW5jdGlvbihpbmRleCkge1xuICAgICAgICByZXR1cm4gaXNJbmRleChpbmRleCwgbGVuZ3RoKSA/ICtpbmRleCA6IGluZGV4O1xuICAgICAgfSkuc29ydChjb21wYXJlQXNjZW5kaW5nKSk7XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGFsbCBlbGVtZW50cyBmcm9tIGBhcnJheWAgdGhhdCBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3JcbiAgICAgKiBhbmQgcmV0dXJucyBhbiBhcnJheSBvZiB0aGUgcmVtb3ZlZCBlbGVtZW50cy4gVGhlIHByZWRpY2F0ZSBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXgsIGFycmF5KS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBVbmxpa2UgYF8uZmlsdGVyYCwgdGhpcyBtZXRob2QgbXV0YXRlcyBgYXJyYXlgLiBVc2UgYF8ucHVsbGBcbiAgICAgKiB0byBwdWxsIGVsZW1lbnRzIGZyb20gYW4gYXJyYXkgYnkgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiByZW1vdmVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgMiwgMywgNF07XG4gICAgICogdmFyIGV2ZW5zID0gXy5yZW1vdmUoYXJyYXksIGZ1bmN0aW9uKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICUgMiA9PSAwO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsxLCAzXVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2coZXZlbnMpO1xuICAgICAqIC8vID0+IFsyLCA0XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlbW92ZShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgICBpZiAoIShhcnJheSAmJiBhcnJheS5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBpbmRleGVzID0gW10sXG4gICAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gICAgICBwcmVkaWNhdGUgPSBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICAgIGluZGV4ZXMucHVzaChpbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJhc2VQdWxsQXQoYXJyYXksIGluZGV4ZXMpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXZlcnNlcyBgYXJyYXlgIHNvIHRoYXQgdGhlIGZpcnN0IGVsZW1lbnQgYmVjb21lcyB0aGUgbGFzdCwgdGhlIHNlY29uZFxuICAgICAqIGVsZW1lbnQgYmVjb21lcyB0aGUgc2Vjb25kIHRvIGxhc3QsIGFuZCBzbyBvbi5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBhcnJheWAgYW5kIGlzIGJhc2VkIG9uXG4gICAgICogW2BBcnJheSNyZXZlcnNlYF0oaHR0cHM6Ly9tZG4uaW8vQXJyYXkvcmV2ZXJzZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgMiwgM107XG4gICAgICpcbiAgICAgKiBfLnJldmVyc2UoYXJyYXkpO1xuICAgICAqIC8vID0+IFszLCAyLCAxXVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFszLCAyLCAxXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJldmVyc2UoYXJyYXkpIHtcbiAgICAgIHJldHVybiBhcnJheSA9PSBudWxsID8gYXJyYXkgOiBuYXRpdmVSZXZlcnNlLmNhbGwoYXJyYXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIGZyb20gYHN0YXJ0YCB1cCB0bywgYnV0IG5vdCBpbmNsdWRpbmcsIGBlbmRgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIHVzZWQgaW5zdGVhZCBvZlxuICAgICAqIFtgQXJyYXkjc2xpY2VgXShodHRwczovL21kbi5pby9BcnJheS9zbGljZSkgdG8gZW5zdXJlIGRlbnNlIGFycmF5cyBhcmVcbiAgICAgKiByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzbGljZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBwb3NpdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2VuZD1hcnJheS5sZW5ndGhdIFRoZSBlbmQgcG9zaXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNsaWNlKGFycmF5LCBzdGFydCwgZW5kKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBpZiAoZW5kICYmIHR5cGVvZiBlbmQgIT0gJ251bWJlcicgJiYgaXNJdGVyYXRlZUNhbGwoYXJyYXksIHN0YXJ0LCBlbmQpKSB7XG4gICAgICAgIHN0YXJ0ID0gMDtcbiAgICAgICAgZW5kID0gbGVuZ3RoO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHN0YXJ0ID0gc3RhcnQgPT0gbnVsbCA/IDAgOiB0b0ludGVnZXIoc3RhcnQpO1xuICAgICAgICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZCA/IGxlbmd0aCA6IHRvSW50ZWdlcihlbmQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgc3RhcnQsIGVuZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXNlcyBhIGJpbmFyeSBzZWFyY2ggdG8gZGV0ZXJtaW5lIHRoZSBsb3dlc3QgaW5kZXggYXQgd2hpY2ggYHZhbHVlYFxuICAgICAqIHNob3VsZCBiZSBpbnNlcnRlZCBpbnRvIGBhcnJheWAgaW4gb3JkZXIgdG8gbWFpbnRhaW4gaXRzIHNvcnQgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgc29ydGVkIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZXZhbHVhdGUuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWRcbiAgICAgKiAgaW50byBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNvcnRlZEluZGV4KFszMCwgNTBdLCA0MCk7XG4gICAgICogLy8gPT4gMVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvcnRlZEluZGV4KGFycmF5LCB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGJhc2VTb3J0ZWRJbmRleChhcnJheSwgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc29ydGVkSW5kZXhgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYFxuICAgICAqIHdoaWNoIGlzIGludm9rZWQgZm9yIGB2YWx1ZWAgYW5kIGVhY2ggZWxlbWVudCBvZiBgYXJyYXlgIHRvIGNvbXB1dGUgdGhlaXJcbiAgICAgKiBzb3J0IHJhbmtpbmcuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIHNvcnRlZCBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGV2YWx1YXRlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZCBiZSBpbnNlcnRlZFxuICAgICAqICBpbnRvIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ3gnOiA0IH0sIHsgJ3gnOiA1IH1dO1xuICAgICAqXG4gICAgICogXy5zb3J0ZWRJbmRleEJ5KG9iamVjdHMsIHsgJ3gnOiA0IH0sIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8ueDsgfSk7XG4gICAgICogLy8gPT4gMFxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5zb3J0ZWRJbmRleEJ5KG9iamVjdHMsIHsgJ3gnOiA0IH0sICd4Jyk7XG4gICAgICogLy8gPT4gMFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvcnRlZEluZGV4QnkoYXJyYXksIHZhbHVlLCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIGJhc2VTb3J0ZWRJbmRleEJ5KGFycmF5LCB2YWx1ZSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmluZGV4T2ZgIGV4Y2VwdCB0aGF0IGl0IHBlcmZvcm1zIGEgYmluYXJ5XG4gICAgICogc2VhcmNoIG9uIGEgc29ydGVkIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc29ydGVkSW5kZXhPZihbNCwgNSwgNSwgNSwgNl0sIDUpO1xuICAgICAqIC8vID0+IDFcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzb3J0ZWRJbmRleE9mKGFycmF5LCB2YWx1ZSkge1xuICAgICAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICAgICAgaWYgKGxlbmd0aCkge1xuICAgICAgICB2YXIgaW5kZXggPSBiYXNlU29ydGVkSW5kZXgoYXJyYXksIHZhbHVlKTtcbiAgICAgICAgaWYgKGluZGV4IDwgbGVuZ3RoICYmIGVxKGFycmF5W2luZGV4XSwgdmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5zb3J0ZWRJbmRleGAgZXhjZXB0IHRoYXQgaXQgcmV0dXJucyB0aGUgaGlnaGVzdFxuICAgICAqIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkIGJlIGluc2VydGVkIGludG8gYGFycmF5YCBpbiBvcmRlciB0b1xuICAgICAqIG1haW50YWluIGl0cyBzb3J0IG9yZGVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIHNvcnRlZCBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGV2YWx1YXRlLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IGF0IHdoaWNoIGB2YWx1ZWAgc2hvdWxkIGJlIGluc2VydGVkXG4gICAgICogIGludG8gYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zb3J0ZWRMYXN0SW5kZXgoWzQsIDUsIDUsIDUsIDZdLCA1KTtcbiAgICAgKiAvLyA9PiA0XG4gICAgICovXG4gICAgZnVuY3Rpb24gc29ydGVkTGFzdEluZGV4KGFycmF5LCB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGJhc2VTb3J0ZWRJbmRleChhcnJheSwgdmFsdWUsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uc29ydGVkTGFzdEluZGV4YCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWBcbiAgICAgKiB3aGljaCBpcyBpbnZva2VkIGZvciBgdmFsdWVgIGFuZCBlYWNoIGVsZW1lbnQgb2YgYGFycmF5YCB0byBjb21wdXRlIHRoZWlyXG4gICAgICogc29ydCByYW5raW5nLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBzb3J0ZWQgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBldmFsdWF0ZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYCBzaG91bGQgYmUgaW5zZXJ0ZWRcbiAgICAgKiAgaW50byBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICd4JzogNCB9LCB7ICd4JzogNSB9XTtcbiAgICAgKlxuICAgICAqIF8uc29ydGVkTGFzdEluZGV4Qnkob2JqZWN0cywgeyAneCc6IDQgfSwgZnVuY3Rpb24obykgeyByZXR1cm4gby54OyB9KTtcbiAgICAgKiAvLyA9PiAxXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnNvcnRlZExhc3RJbmRleEJ5KG9iamVjdHMsIHsgJ3gnOiA0IH0sICd4Jyk7XG4gICAgICogLy8gPT4gMVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvcnRlZExhc3RJbmRleEJ5KGFycmF5LCB2YWx1ZSwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiBiYXNlU29ydGVkSW5kZXhCeShhcnJheSwgdmFsdWUsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5sYXN0SW5kZXhPZmAgZXhjZXB0IHRoYXQgaXQgcGVyZm9ybXMgYSBiaW5hcnlcbiAgICAgKiBzZWFyY2ggb24gYSBzb3J0ZWQgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zb3J0ZWRMYXN0SW5kZXhPZihbNCwgNSwgNSwgNSwgNl0sIDUpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzb3J0ZWRMYXN0SW5kZXhPZihhcnJheSwgdmFsdWUpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGgpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gYmFzZVNvcnRlZEluZGV4KGFycmF5LCB2YWx1ZSwgdHJ1ZSkgLSAxO1xuICAgICAgICBpZiAoZXEoYXJyYXlbaW5kZXhdLCB2YWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnVuaXFgIGV4Y2VwdCB0aGF0IGl0J3MgZGVzaWduZWQgYW5kIG9wdGltaXplZFxuICAgICAqIGZvciBzb3J0ZWQgYXJyYXlzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZHVwbGljYXRlIGZyZWUgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc29ydGVkVW5pcShbMSwgMSwgMl0pO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvcnRlZFVuaXEoYXJyYXkpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VTb3J0ZWRVbmlxKGFycmF5KVxuICAgICAgICA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8udW5pcUJ5YCBleGNlcHQgdGhhdCBpdCdzIGRlc2lnbmVkIGFuZCBvcHRpbWl6ZWRcbiAgICAgKiBmb3Igc29ydGVkIGFycmF5cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZHVwbGljYXRlIGZyZWUgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc29ydGVkVW5pcUJ5KFsxLjEsIDEuMiwgMi4zLCAyLjRdLCBNYXRoLmZsb29yKTtcbiAgICAgKiAvLyA9PiBbMS4xLCAyLjNdXG4gICAgICovXG4gICAgZnVuY3Rpb24gc29ydGVkVW5pcUJ5KGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpXG4gICAgICAgID8gYmFzZVNvcnRlZFVuaXEoYXJyYXksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSlcbiAgICAgICAgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBidXQgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udGFpbChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IFsyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRhaWwoYXJyYXkpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICAgIHJldHVybiBsZW5ndGggPyBiYXNlU2xpY2UoYXJyYXksIDEsIGxlbmd0aCkgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2xpY2Ugb2YgYGFycmF5YCB3aXRoIGBuYCBlbGVtZW50cyB0YWtlbiBmcm9tIHRoZSBiZWdpbm5pbmcuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuPTFdIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gdGFrZS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50YWtlKFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gWzFdXG4gICAgICpcbiAgICAgKiBfLnRha2UoWzEsIDIsIDNdLCAyKTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKlxuICAgICAqIF8udGFrZShbMSwgMiwgM10sIDUpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogXy50YWtlKFsxLCAyLCAzXSwgMCk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0YWtlKGFycmF5LCBuLCBndWFyZCkge1xuICAgICAgaWYgKCEoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBuID0gKGd1YXJkIHx8IG4gPT09IHVuZGVmaW5lZCkgPyAxIDogdG9JbnRlZ2VyKG4pO1xuICAgICAgcmV0dXJuIGJhc2VTbGljZShhcnJheSwgMCwgbiA8IDAgPyAwIDogbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgd2l0aCBgbmAgZWxlbWVudHMgdGFrZW4gZnJvbSB0aGUgZW5kLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0xXSBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIHRha2UuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udGFrZVJpZ2h0KFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gWzNdXG4gICAgICpcbiAgICAgKiBfLnRha2VSaWdodChbMSwgMiwgM10sIDIpO1xuICAgICAqIC8vID0+IFsyLCAzXVxuICAgICAqXG4gICAgICogXy50YWtlUmlnaHQoWzEsIDIsIDNdLCA1KTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIF8udGFrZVJpZ2h0KFsxLCAyLCAzXSwgMCk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0YWtlUmlnaHQoYXJyYXksIG4sIGd1YXJkKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBuID0gKGd1YXJkIHx8IG4gPT09IHVuZGVmaW5lZCkgPyAxIDogdG9JbnRlZ2VyKG4pO1xuICAgICAgbiA9IGxlbmd0aCAtIG47XG4gICAgICByZXR1cm4gYmFzZVNsaWNlKGFycmF5LCBuIDwgMCA/IDAgOiBuLCBsZW5ndGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBzbGljZSBvZiBgYXJyYXlgIHdpdGggZWxlbWVudHMgdGFrZW4gZnJvbSB0aGUgZW5kLiBFbGVtZW50cyBhcmVcbiAgICAgKiB0YWtlbiB1bnRpbCBgcHJlZGljYXRlYCByZXR1cm5zIGZhbHNleS4gVGhlIHByZWRpY2F0ZSBpcyBpbnZva2VkIHdpdGhcbiAgICAgKiB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXgsIGFycmF5KS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBzbGljZSBvZiBgYXJyYXlgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLnRha2VSaWdodFdoaWxlKHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiAhby5hY3RpdmU7IH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCcsICdwZWJibGVzJ11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzYCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy50YWtlUmlnaHRXaGlsZSh1c2VycywgeyAndXNlcic6ICdwZWJibGVzJywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsncGViYmxlcyddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy50YWtlUmlnaHRXaGlsZSh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCcsICdwZWJibGVzJ11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8udGFrZVJpZ2h0V2hpbGUodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiBbXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRha2VSaWdodFdoaWxlKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VXaGlsZShhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSwgZmFsc2UsIHRydWUpXG4gICAgICAgIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNsaWNlIG9mIGBhcnJheWAgd2l0aCBlbGVtZW50cyB0YWtlbiBmcm9tIHRoZSBiZWdpbm5pbmcuIEVsZW1lbnRzXG4gICAgICogYXJlIHRha2VuIHVudGlsIGBwcmVkaWNhdGVgIHJldHVybnMgZmFsc2V5LiBUaGUgcHJlZGljYXRlIGlzIGludm9rZWQgd2l0aFxuICAgICAqIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleCwgYXJyYXkpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWN0aXZlJzogdHJ1ZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8udGFrZVdoaWxlKHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiAhby5hY3RpdmU7IH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5JywgJ2ZyZWQnXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnRha2VXaGlsZSh1c2VycywgeyAndXNlcic6ICdiYXJuZXknLCAnYWN0aXZlJzogZmFsc2UgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydiYXJuZXknXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8udGFrZVdoaWxlKHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydiYXJuZXknLCAnZnJlZCddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnRha2VXaGlsZSh1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IFtdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGFrZVdoaWxlKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VXaGlsZShhcnJheSwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSlcbiAgICAgICAgOiBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHVuaXF1ZSB2YWx1ZXMsIGluIG9yZGVyLCBmcm9tIGFsbCBnaXZlbiBhcnJheXMgdXNpbmdcbiAgICAgKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjb21iaW5lZCB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udW5pb24oWzJdLCBbMSwgMl0pO1xuICAgICAqIC8vID0+IFsyLCAxXVxuICAgICAqL1xuICAgIHZhciB1bmlvbiA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgcmV0dXJuIGJhc2VVbmlxKGJhc2VGbGF0dGVuKGFycmF5cywgMSwgaXNBcnJheUxpa2VPYmplY3QsIHRydWUpKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8udW5pb25gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBvZiBlYWNoIGBhcnJheXNgIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb24gYnlcbiAgICAgKiB3aGljaCB1bmlxdWVuZXNzIGlzIGNvbXB1dGVkLiBSZXN1bHQgdmFsdWVzIGFyZSBjaG9zZW4gZnJvbSB0aGUgZmlyc3RcbiAgICAgKiBhcnJheSBpbiB3aGljaCB0aGUgdmFsdWUgb2NjdXJzLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDpcbiAgICAgKiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjb21iaW5lZCB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udW5pb25CeShbMi4xXSwgWzEuMiwgMi4zXSwgTWF0aC5mbG9vcik7XG4gICAgICogLy8gPT4gWzIuMSwgMS4yXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy51bmlvbkJ5KFt7ICd4JzogMSB9XSwgW3sgJ3gnOiAyIH0sIHsgJ3gnOiAxIH1dLCAneCcpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMSB9LCB7ICd4JzogMiB9XVxuICAgICAqL1xuICAgIHZhciB1bmlvbkJ5ID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XG4gICAgICB2YXIgaXRlcmF0ZWUgPSBsYXN0KGFycmF5cyk7XG4gICAgICBpZiAoaXNBcnJheUxpa2VPYmplY3QoaXRlcmF0ZWUpKSB7XG4gICAgICAgIGl0ZXJhdGVlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VVbmlxKGJhc2VGbGF0dGVuKGFycmF5cywgMSwgaXNBcnJheUxpa2VPYmplY3QsIHRydWUpLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMikpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy51bmlvbmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY29tcGFyYXRvcmAgd2hpY2hcbiAgICAgKiBpcyBpbnZva2VkIHRvIGNvbXBhcmUgZWxlbWVudHMgb2YgYGFycmF5c2AuIFJlc3VsdCB2YWx1ZXMgYXJlIGNob3NlbiBmcm9tXG4gICAgICogdGhlIGZpcnN0IGFycmF5IGluIHdoaWNoIHRoZSB2YWx1ZSBvY2N1cnMuIFRoZSBjb21wYXJhdG9yIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHR3byBhcmd1bWVudHM6IChhcnJWYWwsIG90aFZhbCkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbYXJyYXlzXSBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgY29tYmluZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICd4JzogMSwgJ3knOiAyIH0sIHsgJ3gnOiAyLCAneSc6IDEgfV07XG4gICAgICogdmFyIG90aGVycyA9IFt7ICd4JzogMSwgJ3knOiAxIH0sIHsgJ3gnOiAxLCAneSc6IDIgfV07XG4gICAgICpcbiAgICAgKiBfLnVuaW9uV2l0aChvYmplY3RzLCBvdGhlcnMsIF8uaXNFcXVhbCk7XG4gICAgICogLy8gPT4gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDIsICd5JzogMSB9LCB7ICd4JzogMSwgJ3knOiAxIH1dXG4gICAgICovXG4gICAgdmFyIHVuaW9uV2l0aCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgdmFyIGNvbXBhcmF0b3IgPSBsYXN0KGFycmF5cyk7XG4gICAgICBjb21wYXJhdG9yID0gdHlwZW9mIGNvbXBhcmF0b3IgPT0gJ2Z1bmN0aW9uJyA/IGNvbXBhcmF0b3IgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gYmFzZVVuaXEoYmFzZUZsYXR0ZW4oYXJyYXlzLCAxLCBpc0FycmF5TGlrZU9iamVjdCwgdHJ1ZSksIHVuZGVmaW5lZCwgY29tcGFyYXRvcik7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZHVwbGljYXRlLWZyZWUgdmVyc2lvbiBvZiBhbiBhcnJheSwgdXNpbmdcbiAgICAgKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucywgaW4gd2hpY2ggb25seSB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiBlYWNoIGVsZW1lbnRcbiAgICAgKiBpcyBrZXB0LiBUaGUgb3JkZXIgb2YgcmVzdWx0IHZhbHVlcyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBvcmRlciB0aGV5IG9jY3VyXG4gICAgICogaW4gdGhlIGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZHVwbGljYXRlIGZyZWUgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udW5pcShbMiwgMSwgMl0pO1xuICAgICAqIC8vID0+IFsyLCAxXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuaXEoYXJyYXkpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSA/IGJhc2VVbmlxKGFycmF5KSA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8udW5pcWAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgIHdoaWNoIGlzXG4gICAgICogaW52b2tlZCBmb3IgZWFjaCBlbGVtZW50IGluIGBhcnJheWAgdG8gZ2VuZXJhdGUgdGhlIGNyaXRlcmlvbiBieSB3aGljaFxuICAgICAqIHVuaXF1ZW5lc3MgaXMgY29tcHV0ZWQuIFRoZSBvcmRlciBvZiByZXN1bHQgdmFsdWVzIGlzIGRldGVybWluZWQgYnkgdGhlXG4gICAgICogb3JkZXIgdGhleSBvY2N1ciBpbiB0aGUgYXJyYXkuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OlxuICAgICAqICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZHVwbGljYXRlIGZyZWUgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udW5pcUJ5KFsyLjEsIDEuMiwgMi4zXSwgTWF0aC5mbG9vcik7XG4gICAgICogLy8gPT4gWzIuMSwgMS4yXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy51bmlxQnkoW3sgJ3gnOiAxIH0sIHsgJ3gnOiAyIH0sIHsgJ3gnOiAxIH1dLCAneCcpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMSB9LCB7ICd4JzogMiB9XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuaXFCeShhcnJheSwgaXRlcmF0ZWUpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSA/IGJhc2VVbmlxKGFycmF5LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMikpIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy51bmlxYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjb21wYXJhdG9yYCB3aGljaFxuICAgICAqIGlzIGludm9rZWQgdG8gY29tcGFyZSBlbGVtZW50cyBvZiBgYXJyYXlgLiBUaGUgb3JkZXIgb2YgcmVzdWx0IHZhbHVlcyBpc1xuICAgICAqIGRldGVybWluZWQgYnkgdGhlIG9yZGVyIHRoZXkgb2NjdXIgaW4gdGhlIGFycmF5LlRoZSBjb21wYXJhdG9yIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHR3byBhcmd1bWVudHM6IChhcnJWYWwsIG90aFZhbCkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBkdXBsaWNhdGUgZnJlZSBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAneCc6IDEsICd5JzogMiB9LCB7ICd4JzogMiwgJ3knOiAxIH0sIHsgJ3gnOiAxLCAneSc6IDIgfV07XG4gICAgICpcbiAgICAgKiBfLnVuaXFXaXRoKG9iamVjdHMsIF8uaXNFcXVhbCk7XG4gICAgICogLy8gPT4gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDIsICd5JzogMSB9XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuaXFXaXRoKGFycmF5LCBjb21wYXJhdG9yKSB7XG4gICAgICBjb21wYXJhdG9yID0gdHlwZW9mIGNvbXBhcmF0b3IgPT0gJ2Z1bmN0aW9uJyA/IGNvbXBhcmF0b3IgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkgPyBiYXNlVW5pcShhcnJheSwgdW5kZWZpbmVkLCBjb21wYXJhdG9yKSA6IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uemlwYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGFuIGFycmF5IG9mIGdyb3VwZWRcbiAgICAgKiBlbGVtZW50cyBhbmQgY3JlYXRlcyBhbiBhcnJheSByZWdyb3VwaW5nIHRoZSBlbGVtZW50cyB0byB0aGVpciBwcmUtemlwXG4gICAgICogY29uZmlndXJhdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAxLjIuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSBvZiBncm91cGVkIGVsZW1lbnRzIHRvIHByb2Nlc3MuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgcmVncm91cGVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgemlwcGVkID0gXy56aXAoWydhJywgJ2InXSwgWzEsIDJdLCBbdHJ1ZSwgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiBbWydhJywgMSwgdHJ1ZV0sIFsnYicsIDIsIGZhbHNlXV1cbiAgICAgKlxuICAgICAqIF8udW56aXAoemlwcGVkKTtcbiAgICAgKiAvLyA9PiBbWydhJywgJ2InXSwgWzEsIDJdLCBbdHJ1ZSwgZmFsc2VdXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuemlwKGFycmF5KSB7XG4gICAgICBpZiAoIShhcnJheSAmJiBhcnJheS5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHZhciBsZW5ndGggPSAwO1xuICAgICAgYXJyYXkgPSBhcnJheUZpbHRlcihhcnJheSwgZnVuY3Rpb24oZ3JvdXApIHtcbiAgICAgICAgaWYgKGlzQXJyYXlMaWtlT2JqZWN0KGdyb3VwKSkge1xuICAgICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1heChncm91cC5sZW5ndGgsIGxlbmd0aCk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGJhc2VUaW1lcyhsZW5ndGgsIGZ1bmN0aW9uKGluZGV4KSB7XG4gICAgICAgIHJldHVybiBhcnJheU1hcChhcnJheSwgYmFzZVByb3BlcnR5KGluZGV4KSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnVuemlwYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBpdGVyYXRlZWAgdG8gc3BlY2lmeVxuICAgICAqIGhvdyByZWdyb3VwZWQgdmFsdWVzIHNob3VsZCBiZSBjb21iaW5lZC4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCB0aGVcbiAgICAgKiBlbGVtZW50cyBvZiBlYWNoIGdyb3VwOiAoLi4uZ3JvdXApLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuOC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IG9mIGdyb3VwZWQgZWxlbWVudHMgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIHRvIGNvbWJpbmVcbiAgICAgKiAgcmVncm91cGVkIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiByZWdyb3VwZWQgZWxlbWVudHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB6aXBwZWQgPSBfLnppcChbMSwgMl0sIFsxMCwgMjBdLCBbMTAwLCAyMDBdKTtcbiAgICAgKiAvLyA9PiBbWzEsIDEwLCAxMDBdLCBbMiwgMjAsIDIwMF1dXG4gICAgICpcbiAgICAgKiBfLnVuemlwV2l0aCh6aXBwZWQsIF8uYWRkKTtcbiAgICAgKiAvLyA9PiBbMywgMzAsIDMwMF1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bnppcFdpdGgoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgICBpZiAoIShhcnJheSAmJiBhcnJheS5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHZhciByZXN1bHQgPSB1bnppcChhcnJheSk7XG4gICAgICBpZiAoaXRlcmF0ZWUgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFycmF5TWFwKHJlc3VsdCwgZnVuY3Rpb24oZ3JvdXApIHtcbiAgICAgICAgcmV0dXJuIGFwcGx5KGl0ZXJhdGVlLCB1bmRlZmluZWQsIGdyb3VwKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgZXhjbHVkaW5nIGFsbCBnaXZlbiB2YWx1ZXMgdXNpbmdcbiAgICAgKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBVbmxpa2UgYF8ucHVsbGAsIHRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0gey4uLip9IFt2YWx1ZXNdIFRoZSB2YWx1ZXMgdG8gZXhjbHVkZS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCB2YWx1ZXMuXG4gICAgICogQHNlZSBfLmRpZmZlcmVuY2UsIF8ueG9yXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ud2l0aG91dChbMiwgMSwgMiwgM10sIDEsIDIpO1xuICAgICAqIC8vID0+IFszXVxuICAgICAqL1xuICAgIHZhciB3aXRob3V0ID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXksIHZhbHVlcykge1xuICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlT2JqZWN0KGFycmF5KVxuICAgICAgICA/IGJhc2VEaWZmZXJlbmNlKGFycmF5LCB2YWx1ZXMpXG4gICAgICAgIDogW107XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHVuaXF1ZSB2YWx1ZXMgdGhhdCBpcyB0aGVcbiAgICAgKiBbc3ltbWV0cmljIGRpZmZlcmVuY2VdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1N5bW1ldHJpY19kaWZmZXJlbmNlKVxuICAgICAqIG9mIHRoZSBnaXZlbiBhcnJheXMuIFRoZSBvcmRlciBvZiByZXN1bHQgdmFsdWVzIGlzIGRldGVybWluZWQgYnkgdGhlIG9yZGVyXG4gICAgICogdGhleSBvY2N1ciBpbiB0aGUgYXJyYXlzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuNC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGZpbHRlcmVkIHZhbHVlcy5cbiAgICAgKiBAc2VlIF8uZGlmZmVyZW5jZSwgXy53aXRob3V0XG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ueG9yKFsyLCAxXSwgWzIsIDNdKTtcbiAgICAgKiAvLyA9PiBbMSwgM11cbiAgICAgKi9cbiAgICB2YXIgeG9yID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XG4gICAgICByZXR1cm4gYmFzZVhvcihhcnJheUZpbHRlcihhcnJheXMsIGlzQXJyYXlMaWtlT2JqZWN0KSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnhvcmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgIHdoaWNoIGlzXG4gICAgICogaW52b2tlZCBmb3IgZWFjaCBlbGVtZW50IG9mIGVhY2ggYGFycmF5c2AgdG8gZ2VuZXJhdGUgdGhlIGNyaXRlcmlvbiBieVxuICAgICAqIHdoaWNoIGJ5IHdoaWNoIHRoZXkncmUgY29tcGFyZWQuIFRoZSBvcmRlciBvZiByZXN1bHQgdmFsdWVzIGlzIGRldGVybWluZWRcbiAgICAgKiBieSB0aGUgb3JkZXIgdGhleSBvY2N1ciBpbiB0aGUgYXJyYXlzLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZVxuICAgICAqIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBmaWx0ZXJlZCB2YWx1ZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ueG9yQnkoWzIuMSwgMS4yXSwgWzIuMywgMy40XSwgTWF0aC5mbG9vcik7XG4gICAgICogLy8gPT4gWzEuMiwgMy40XVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy54b3JCeShbeyAneCc6IDEgfV0sIFt7ICd4JzogMiB9LCB7ICd4JzogMSB9XSwgJ3gnKTtcbiAgICAgKiAvLyA9PiBbeyAneCc6IDIgfV1cbiAgICAgKi9cbiAgICB2YXIgeG9yQnkgPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgIHZhciBpdGVyYXRlZSA9IGxhc3QoYXJyYXlzKTtcbiAgICAgIGlmIChpc0FycmF5TGlrZU9iamVjdChpdGVyYXRlZSkpIHtcbiAgICAgICAgaXRlcmF0ZWUgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZVhvcihhcnJheUZpbHRlcihhcnJheXMsIGlzQXJyYXlMaWtlT2JqZWN0KSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ueG9yYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjb21wYXJhdG9yYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgdG8gY29tcGFyZSBlbGVtZW50cyBvZiBgYXJyYXlzYC4gVGhlIG9yZGVyIG9mIHJlc3VsdCB2YWx1ZXMgaXNcbiAgICAgKiBkZXRlcm1pbmVkIGJ5IHRoZSBvcmRlciB0aGV5IG9jY3VyIGluIHRoZSBhcnJheXMuIFRoZSBjb21wYXJhdG9yIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHR3byBhcmd1bWVudHM6IChhcnJWYWwsIG90aFZhbCkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQXJyYXlcbiAgICAgKiBAcGFyYW0gey4uLkFycmF5fSBbYXJyYXlzXSBUaGUgYXJyYXlzIHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgZmlsdGVyZWQgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICd4JzogMSwgJ3knOiAyIH0sIHsgJ3gnOiAyLCAneSc6IDEgfV07XG4gICAgICogdmFyIG90aGVycyA9IFt7ICd4JzogMSwgJ3knOiAxIH0sIHsgJ3gnOiAxLCAneSc6IDIgfV07XG4gICAgICpcbiAgICAgKiBfLnhvcldpdGgob2JqZWN0cywgb3RoZXJzLCBfLmlzRXF1YWwpO1xuICAgICAqIC8vID0+IFt7ICd4JzogMiwgJ3knOiAxIH0sIHsgJ3gnOiAxLCAneSc6IDEgfV1cbiAgICAgKi9cbiAgICB2YXIgeG9yV2l0aCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFycmF5cykge1xuICAgICAgdmFyIGNvbXBhcmF0b3IgPSBsYXN0KGFycmF5cyk7XG4gICAgICBjb21wYXJhdG9yID0gdHlwZW9mIGNvbXBhcmF0b3IgPT0gJ2Z1bmN0aW9uJyA/IGNvbXBhcmF0b3IgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gYmFzZVhvcihhcnJheUZpbHRlcihhcnJheXMsIGlzQXJyYXlMaWtlT2JqZWN0KSwgdW5kZWZpbmVkLCBjb21wYXJhdG9yKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgZ3JvdXBlZCBlbGVtZW50cywgdGhlIGZpcnN0IG9mIHdoaWNoIGNvbnRhaW5zIHRoZVxuICAgICAqIGZpcnN0IGVsZW1lbnRzIG9mIHRoZSBnaXZlbiBhcnJheXMsIHRoZSBzZWNvbmQgb2Ygd2hpY2ggY29udGFpbnMgdGhlXG4gICAgICogc2Vjb25kIGVsZW1lbnRzIG9mIHRoZSBnaXZlbiBhcnJheXMsIGFuZCBzbyBvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBBcnJheVxuICAgICAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBncm91cGVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnppcChbJ2EnLCAnYiddLCBbMSwgMl0sIFt0cnVlLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IFtbJ2EnLCAxLCB0cnVlXSwgWydiJywgMiwgZmFsc2VdXVxuICAgICAqL1xuICAgIHZhciB6aXAgPSBiYXNlUmVzdCh1bnppcCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZyb21QYWlyc2AgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyB0d28gYXJyYXlzLFxuICAgICAqIG9uZSBvZiBwcm9wZXJ0eSBpZGVudGlmaWVycyBhbmQgb25lIG9mIGNvcnJlc3BvbmRpbmcgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuNC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gW3Byb3BzPVtdXSBUaGUgcHJvcGVydHkgaWRlbnRpZmllcnMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3ZhbHVlcz1bXV0gVGhlIHByb3BlcnR5IHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnppcE9iamVjdChbJ2EnLCAnYiddLCBbMSwgMl0pO1xuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIgfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHppcE9iamVjdChwcm9wcywgdmFsdWVzKSB7XG4gICAgICByZXR1cm4gYmFzZVppcE9iamVjdChwcm9wcyB8fCBbXSwgdmFsdWVzIHx8IFtdLCBhc3NpZ25WYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy56aXBPYmplY3RgIGV4Y2VwdCB0aGF0IGl0IHN1cHBvcnRzIHByb3BlcnR5IHBhdGhzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMS4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHtBcnJheX0gW3Byb3BzPVtdXSBUaGUgcHJvcGVydHkgaWRlbnRpZmllcnMuXG4gICAgICogQHBhcmFtIHtBcnJheX0gW3ZhbHVlcz1bXV0gVGhlIHByb3BlcnR5IHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnppcE9iamVjdERlZXAoWydhLmJbMF0uYycsICdhLmJbMV0uZCddLCBbMSwgMl0pO1xuICAgICAqIC8vID0+IHsgJ2EnOiB7ICdiJzogW3sgJ2MnOiAxIH0sIHsgJ2QnOiAyIH1dIH0gfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHppcE9iamVjdERlZXAocHJvcHMsIHZhbHVlcykge1xuICAgICAgcmV0dXJuIGJhc2VaaXBPYmplY3QocHJvcHMgfHwgW10sIHZhbHVlcyB8fCBbXSwgYmFzZVNldCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy56aXBgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB0byBzcGVjaWZ5XG4gICAgICogaG93IGdyb3VwZWQgdmFsdWVzIHNob3VsZCBiZSBjb21iaW5lZC4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCB0aGVcbiAgICAgKiBlbGVtZW50cyBvZiBlYWNoIGdyb3VwOiAoLi4uZ3JvdXApLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuOC4wXG4gICAgICogQGNhdGVnb3J5IEFycmF5XG4gICAgICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBwcm9jZXNzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gdG8gY29tYmluZVxuICAgICAqICBncm91cGVkIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBncm91cGVkIGVsZW1lbnRzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnppcFdpdGgoWzEsIDJdLCBbMTAsIDIwXSwgWzEwMCwgMjAwXSwgZnVuY3Rpb24oYSwgYiwgYykge1xuICAgICAqICAgcmV0dXJuIGEgKyBiICsgYztcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBbMTExLCAyMjJdXG4gICAgICovXG4gICAgdmFyIHppcFdpdGggPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgICAgIHZhciBsZW5ndGggPSBhcnJheXMubGVuZ3RoLFxuICAgICAgICAgIGl0ZXJhdGVlID0gbGVuZ3RoID4gMSA/IGFycmF5c1tsZW5ndGggLSAxXSA6IHVuZGVmaW5lZDtcblxuICAgICAgaXRlcmF0ZWUgPSB0eXBlb2YgaXRlcmF0ZWUgPT0gJ2Z1bmN0aW9uJyA/IChhcnJheXMucG9wKCksIGl0ZXJhdGVlKSA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiB1bnppcFdpdGgoYXJyYXlzLCBpdGVyYXRlZSk7XG4gICAgfSk7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZSB0aGF0IHdyYXBzIGB2YWx1ZWAgd2l0aCBleHBsaWNpdCBtZXRob2RcbiAgICAgKiBjaGFpbiBzZXF1ZW5jZXMgZW5hYmxlZC4gVGhlIHJlc3VsdCBvZiBzdWNoIHNlcXVlbmNlcyBtdXN0IGJlIHVud3JhcHBlZFxuICAgICAqIHdpdGggYF8jdmFsdWVgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDEuMy4wXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhZ2UnOiAzNiB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAgJ2FnZSc6IDQwIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWdlJzogMSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIHZhciB5b3VuZ2VzdCA9IF9cbiAgICAgKiAgIC5jaGFpbih1c2VycylcbiAgICAgKiAgIC5zb3J0QnkoJ2FnZScpXG4gICAgICogICAubWFwKGZ1bmN0aW9uKG8pIHtcbiAgICAgKiAgICAgcmV0dXJuIG8udXNlciArICcgaXMgJyArIG8uYWdlO1xuICAgICAqICAgfSlcbiAgICAgKiAgIC5oZWFkKClcbiAgICAgKiAgIC52YWx1ZSgpO1xuICAgICAqIC8vID0+ICdwZWJibGVzIGlzIDEnXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2hhaW4odmFsdWUpIHtcbiAgICAgIHZhciByZXN1bHQgPSBsb2Rhc2godmFsdWUpO1xuICAgICAgcmVzdWx0Ll9fY2hhaW5fXyA9IHRydWU7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGludm9rZXMgYGludGVyY2VwdG9yYCBhbmQgcmV0dXJucyBgdmFsdWVgLiBUaGUgaW50ZXJjZXB0b3JcbiAgICAgKiBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OyAodmFsdWUpLiBUaGUgcHVycG9zZSBvZiB0aGlzIG1ldGhvZCBpcyB0b1xuICAgICAqIFwidGFwIGludG9cIiBhIG1ldGhvZCBjaGFpbiBzZXF1ZW5jZSBpbiBvcmRlciB0byBtb2RpZnkgaW50ZXJtZWRpYXRlIHJlc3VsdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgU2VxXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvdmlkZSB0byBgaW50ZXJjZXB0b3JgLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGludGVyY2VwdG9yIFRoZSBmdW5jdGlvbiB0byBpbnZva2UuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgYHZhbHVlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXyhbMSwgMiwgM10pXG4gICAgICogIC50YXAoZnVuY3Rpb24oYXJyYXkpIHtcbiAgICAgKiAgICAvLyBNdXRhdGUgaW5wdXQgYXJyYXkuXG4gICAgICogICAgYXJyYXkucG9wKCk7XG4gICAgICogIH0pXG4gICAgICogIC5yZXZlcnNlKClcbiAgICAgKiAgLnZhbHVlKCk7XG4gICAgICogLy8gPT4gWzIsIDFdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGFwKHZhbHVlLCBpbnRlcmNlcHRvcikge1xuICAgICAgaW50ZXJjZXB0b3IodmFsdWUpO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8udGFwYCBleGNlcHQgdGhhdCBpdCByZXR1cm5zIHRoZSByZXN1bHQgb2YgYGludGVyY2VwdG9yYC5cbiAgICAgKiBUaGUgcHVycG9zZSBvZiB0aGlzIG1ldGhvZCBpcyB0byBcInBhc3MgdGhydVwiIHZhbHVlcyByZXBsYWNpbmcgaW50ZXJtZWRpYXRlXG4gICAgICogcmVzdWx0cyBpbiBhIG1ldGhvZCBjaGFpbiBzZXF1ZW5jZS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm92aWRlIHRvIGBpbnRlcmNlcHRvcmAuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaW50ZXJjZXB0b3IgVGhlIGZ1bmN0aW9uIHRvIGludm9rZS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzdWx0IG9mIGBpbnRlcmNlcHRvcmAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8oJyAgYWJjICAnKVxuICAgICAqICAuY2hhaW4oKVxuICAgICAqICAudHJpbSgpXG4gICAgICogIC50aHJ1KGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICogICAgcmV0dXJuIFt2YWx1ZV07XG4gICAgICogIH0pXG4gICAgICogIC52YWx1ZSgpO1xuICAgICAqIC8vID0+IFsnYWJjJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0aHJ1KHZhbHVlLCBpbnRlcmNlcHRvcikge1xuICAgICAgcmV0dXJuIGludGVyY2VwdG9yKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyB0aGUgd3JhcHBlciB2ZXJzaW9uIG9mIGBfLmF0YC5cbiAgICAgKlxuICAgICAqIEBuYW1lIGF0XG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMS4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU2VxXG4gICAgICogQHBhcmFtIHsuLi4oc3RyaW5nfHN0cmluZ1tdKX0gW3BhdGhzXSBUaGUgcHJvcGVydHkgcGF0aHMgdG8gcGljay5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MnOiAzIH0gfSwgNF0gfTtcbiAgICAgKlxuICAgICAqIF8ob2JqZWN0KS5hdChbJ2FbMF0uYi5jJywgJ2FbMV0nXSkudmFsdWUoKTtcbiAgICAgKiAvLyA9PiBbMywgNF1cbiAgICAgKi9cbiAgICB2YXIgd3JhcHBlckF0ID0gZmxhdFJlc3QoZnVuY3Rpb24ocGF0aHMpIHtcbiAgICAgIHZhciBsZW5ndGggPSBwYXRocy5sZW5ndGgsXG4gICAgICAgICAgc3RhcnQgPSBsZW5ndGggPyBwYXRoc1swXSA6IDAsXG4gICAgICAgICAgdmFsdWUgPSB0aGlzLl9fd3JhcHBlZF9fLFxuICAgICAgICAgIGludGVyY2VwdG9yID0gZnVuY3Rpb24ob2JqZWN0KSB7IHJldHVybiBiYXNlQXQob2JqZWN0LCBwYXRocyk7IH07XG5cbiAgICAgIGlmIChsZW5ndGggPiAxIHx8IHRoaXMuX19hY3Rpb25zX18ubGVuZ3RoIHx8XG4gICAgICAgICAgISh2YWx1ZSBpbnN0YW5jZW9mIExhenlXcmFwcGVyKSB8fCAhaXNJbmRleChzdGFydCkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGhydShpbnRlcmNlcHRvcik7XG4gICAgICB9XG4gICAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKHN0YXJ0LCArc3RhcnQgKyAobGVuZ3RoID8gMSA6IDApKTtcbiAgICAgIHZhbHVlLl9fYWN0aW9uc19fLnB1c2goe1xuICAgICAgICAnZnVuYyc6IHRocnUsXG4gICAgICAgICdhcmdzJzogW2ludGVyY2VwdG9yXSxcbiAgICAgICAgJ3RoaXNBcmcnOiB1bmRlZmluZWRcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBMb2Rhc2hXcmFwcGVyKHZhbHVlLCB0aGlzLl9fY2hhaW5fXykudGhydShmdW5jdGlvbihhcnJheSkge1xuICAgICAgICBpZiAobGVuZ3RoICYmICFhcnJheS5sZW5ndGgpIHtcbiAgICAgICAgICBhcnJheS5wdXNoKHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZSB3aXRoIGV4cGxpY2l0IG1ldGhvZCBjaGFpbiBzZXF1ZW5jZXMgZW5hYmxlZC5cbiAgICAgKlxuICAgICAqIEBuYW1lIGNoYWluXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgU2VxXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGBsb2Rhc2hgIHdyYXBwZXIgaW5zdGFuY2UuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIC8vIEEgc2VxdWVuY2Ugd2l0aG91dCBleHBsaWNpdCBjaGFpbmluZy5cbiAgICAgKiBfKHVzZXJzKS5oZWFkKCk7XG4gICAgICogLy8gPT4geyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYgfVxuICAgICAqXG4gICAgICogLy8gQSBzZXF1ZW5jZSB3aXRoIGV4cGxpY2l0IGNoYWluaW5nLlxuICAgICAqIF8odXNlcnMpXG4gICAgICogICAuY2hhaW4oKVxuICAgICAqICAgLmhlYWQoKVxuICAgICAqICAgLnBpY2soJ3VzZXInKVxuICAgICAqICAgLnZhbHVlKCk7XG4gICAgICogLy8gPT4geyAndXNlcic6ICdiYXJuZXknIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyQ2hhaW4oKSB7XG4gICAgICByZXR1cm4gY2hhaW4odGhpcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgdGhlIGNoYWluIHNlcXVlbmNlIGFuZCByZXR1cm5zIHRoZSB3cmFwcGVkIHJlc3VsdC5cbiAgICAgKlxuICAgICAqIEBuYW1lIGNvbW1pdFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMi4wXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBgbG9kYXNoYCB3cmFwcGVyIGluc3RhbmNlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgMl07XG4gICAgICogdmFyIHdyYXBwZWQgPSBfKGFycmF5KS5wdXNoKDMpO1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqXG4gICAgICogd3JhcHBlZCA9IHdyYXBwZWQuY29tbWl0KCk7XG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogd3JhcHBlZC5sYXN0KCk7XG4gICAgICogLy8gPT4gM1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXkpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdyYXBwZXJDb21taXQoKSB7XG4gICAgICByZXR1cm4gbmV3IExvZGFzaFdyYXBwZXIodGhpcy52YWx1ZSgpLCB0aGlzLl9fY2hhaW5fXyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbmV4dCB2YWx1ZSBvbiBhIHdyYXBwZWQgb2JqZWN0IGZvbGxvd2luZyB0aGVcbiAgICAgKiBbaXRlcmF0b3IgcHJvdG9jb2xdKGh0dHBzOi8vbWRuLmlvL2l0ZXJhdGlvbl9wcm90b2NvbHMjaXRlcmF0b3IpLlxuICAgICAqXG4gICAgICogQG5hbWUgbmV4dFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5leHQgaXRlcmF0b3IgdmFsdWUuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB3cmFwcGVkID0gXyhbMSwgMl0pO1xuICAgICAqXG4gICAgICogd3JhcHBlZC5uZXh0KCk7XG4gICAgICogLy8gPT4geyAnZG9uZSc6IGZhbHNlLCAndmFsdWUnOiAxIH1cbiAgICAgKlxuICAgICAqIHdyYXBwZWQubmV4dCgpO1xuICAgICAqIC8vID0+IHsgJ2RvbmUnOiBmYWxzZSwgJ3ZhbHVlJzogMiB9XG4gICAgICpcbiAgICAgKiB3cmFwcGVkLm5leHQoKTtcbiAgICAgKiAvLyA9PiB7ICdkb25lJzogdHJ1ZSwgJ3ZhbHVlJzogdW5kZWZpbmVkIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyTmV4dCgpIHtcbiAgICAgIGlmICh0aGlzLl9fdmFsdWVzX18gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9fdmFsdWVzX18gPSB0b0FycmF5KHRoaXMudmFsdWUoKSk7XG4gICAgICB9XG4gICAgICB2YXIgZG9uZSA9IHRoaXMuX19pbmRleF9fID49IHRoaXMuX192YWx1ZXNfXy5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUgPSBkb25lID8gdW5kZWZpbmVkIDogdGhpcy5fX3ZhbHVlc19fW3RoaXMuX19pbmRleF9fKytdO1xuXG4gICAgICByZXR1cm4geyAnZG9uZSc6IGRvbmUsICd2YWx1ZSc6IHZhbHVlIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW5hYmxlcyB0aGUgd3JhcHBlciB0byBiZSBpdGVyYWJsZS5cbiAgICAgKlxuICAgICAqIEBuYW1lIFN5bWJvbC5pdGVyYXRvclxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIHdyYXBwZXIgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgd3JhcHBlZCA9IF8oWzEsIDJdKTtcbiAgICAgKlxuICAgICAqIHdyYXBwZWRbU3ltYm9sLml0ZXJhdG9yXSgpID09PSB3cmFwcGVkO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIEFycmF5LmZyb20od3JhcHBlZCk7XG4gICAgICogLy8gPT4gWzEsIDJdXG4gICAgICovXG4gICAgZnVuY3Rpb24gd3JhcHBlclRvSXRlcmF0b3IoKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgdGhlIGNoYWluIHNlcXVlbmNlIHBsYW50aW5nIGB2YWx1ZWAgYXMgdGhlIHdyYXBwZWQgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAbmFtZSBwbGFudFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMi4wXG4gICAgICogQGNhdGVnb3J5IFNlcVxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHBsYW50LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBgbG9kYXNoYCB3cmFwcGVyIGluc3RhbmNlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBzcXVhcmUobikge1xuICAgICAqICAgcmV0dXJuIG4gKiBuO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHZhciB3cmFwcGVkID0gXyhbMSwgMl0pLm1hcChzcXVhcmUpO1xuICAgICAqIHZhciBvdGhlciA9IHdyYXBwZWQucGxhbnQoWzMsIDRdKTtcbiAgICAgKlxuICAgICAqIG90aGVyLnZhbHVlKCk7XG4gICAgICogLy8gPT4gWzksIDE2XVxuICAgICAqXG4gICAgICogd3JhcHBlZC52YWx1ZSgpO1xuICAgICAqIC8vID0+IFsxLCA0XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdyYXBwZXJQbGFudCh2YWx1ZSkge1xuICAgICAgdmFyIHJlc3VsdCxcbiAgICAgICAgICBwYXJlbnQgPSB0aGlzO1xuXG4gICAgICB3aGlsZSAocGFyZW50IGluc3RhbmNlb2YgYmFzZUxvZGFzaCkge1xuICAgICAgICB2YXIgY2xvbmUgPSB3cmFwcGVyQ2xvbmUocGFyZW50KTtcbiAgICAgICAgY2xvbmUuX19pbmRleF9fID0gMDtcbiAgICAgICAgY2xvbmUuX192YWx1ZXNfXyA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHByZXZpb3VzLl9fd3JhcHBlZF9fID0gY2xvbmU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0gY2xvbmU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHByZXZpb3VzID0gY2xvbmU7XG4gICAgICAgIHBhcmVudCA9IHBhcmVudC5fX3dyYXBwZWRfXztcbiAgICAgIH1cbiAgICAgIHByZXZpb3VzLl9fd3JhcHBlZF9fID0gdmFsdWU7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIHRoZSB3cmFwcGVyIHZlcnNpb24gb2YgYF8ucmV2ZXJzZWAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyB0aGUgd3JhcHBlZCBhcnJheS5cbiAgICAgKlxuICAgICAqIEBuYW1lIHJldmVyc2VcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzEsIDIsIDNdO1xuICAgICAqXG4gICAgICogXyhhcnJheSkucmV2ZXJzZSgpLnZhbHVlKClcbiAgICAgKiAvLyA9PiBbMywgMiwgMV1cbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGFycmF5KTtcbiAgICAgKiAvLyA9PiBbMywgMiwgMV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyUmV2ZXJzZSgpIHtcbiAgICAgIHZhciB2YWx1ZSA9IHRoaXMuX193cmFwcGVkX187XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBMYXp5V3JhcHBlcikge1xuICAgICAgICB2YXIgd3JhcHBlZCA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgpIHtcbiAgICAgICAgICB3cmFwcGVkID0gbmV3IExhenlXcmFwcGVyKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHdyYXBwZWQgPSB3cmFwcGVkLnJldmVyc2UoKTtcbiAgICAgICAgd3JhcHBlZC5fX2FjdGlvbnNfXy5wdXNoKHtcbiAgICAgICAgICAnZnVuYyc6IHRocnUsXG4gICAgICAgICAgJ2FyZ3MnOiBbcmV2ZXJzZV0sXG4gICAgICAgICAgJ3RoaXNBcmcnOiB1bmRlZmluZWRcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXcgTG9kYXNoV3JhcHBlcih3cmFwcGVkLCB0aGlzLl9fY2hhaW5fXyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy50aHJ1KHJldmVyc2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGVzIHRoZSBjaGFpbiBzZXF1ZW5jZSB0byByZXNvbHZlIHRoZSB1bndyYXBwZWQgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAbmFtZSB2YWx1ZVxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGFsaWFzIHRvSlNPTiwgdmFsdWVPZlxuICAgICAqIEBjYXRlZ29yeSBTZXFcbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdW53cmFwcGVkIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfKFsxLCAyLCAzXSkudmFsdWUoKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwcGVyVmFsdWUoKSB7XG4gICAgICByZXR1cm4gYmFzZVdyYXBwZXJWYWx1ZSh0aGlzLl9fd3JhcHBlZF9fLCB0aGlzLl9fYWN0aW9uc19fKTtcbiAgICB9XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiBrZXlzIGdlbmVyYXRlZCBmcm9tIHRoZSByZXN1bHRzIG9mIHJ1bm5pbmdcbiAgICAgKiBlYWNoIGVsZW1lbnQgb2YgYGNvbGxlY3Rpb25gIHRocnUgYGl0ZXJhdGVlYC4gVGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgb2ZcbiAgICAgKiBlYWNoIGtleSBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBrZXkgd2FzIHJldHVybmVkIGJ5IGBpdGVyYXRlZWAuIFRoZVxuICAgICAqIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC41LjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIHRvIHRyYW5zZm9ybSBrZXlzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNvbXBvc2VkIGFnZ3JlZ2F0ZSBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uY291bnRCeShbNi4xLCA0LjIsIDYuM10sIE1hdGguZmxvb3IpO1xuICAgICAqIC8vID0+IHsgJzQnOiAxLCAnNic6IDIgfVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5jb3VudEJ5KFsnb25lJywgJ3R3bycsICd0aHJlZSddLCAnbGVuZ3RoJyk7XG4gICAgICogLy8gPT4geyAnMyc6IDIsICc1JzogMSB9XG4gICAgICovXG4gICAgdmFyIGNvdW50QnkgPSBjcmVhdGVBZ2dyZWdhdG9yKGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwocmVzdWx0LCBrZXkpKSB7XG4gICAgICAgICsrcmVzdWx0W2tleV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBiYXNlQXNzaWduVmFsdWUocmVzdWx0LCBrZXksIDEpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBwcmVkaWNhdGVgIHJldHVybnMgdHJ1dGh5IGZvciAqKmFsbCoqIGVsZW1lbnRzIG9mIGBjb2xsZWN0aW9uYC5cbiAgICAgKiBJdGVyYXRpb24gaXMgc3RvcHBlZCBvbmNlIGBwcmVkaWNhdGVgIHJldHVybnMgZmFsc2V5LiBUaGUgcHJlZGljYXRlIGlzXG4gICAgICogaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIHJldHVybnMgYHRydWVgIGZvclxuICAgICAqIFtlbXB0eSBjb2xsZWN0aW9uc10oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRW1wdHlfc2V0KSBiZWNhdXNlXG4gICAgICogW2V2ZXJ5dGhpbmcgaXMgdHJ1ZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVmFjdW91c190cnV0aCkgb2ZcbiAgICAgKiBlbGVtZW50cyBvZiBlbXB0eSBjb2xsZWN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbGwgZWxlbWVudHMgcGFzcyB0aGUgcHJlZGljYXRlIGNoZWNrLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZXZlcnkoW3RydWUsIDEsIG51bGwsICd5ZXMnXSwgQm9vbGVhbik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2LCAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZXZlcnkodXNlcnMsIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FjdGl2ZSc6IGZhbHNlIH0pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5ldmVyeSh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZXZlcnkodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGV2ZXJ5KGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZ3VhcmQpIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5RXZlcnkgOiBiYXNlRXZlcnk7XG4gICAgICBpZiAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBndWFyZCkpIHtcbiAgICAgICAgcHJlZGljYXRlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgZ2V0SXRlcmF0ZWUocHJlZGljYXRlLCAzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmAsIHJldHVybmluZyBhbiBhcnJheSBvZiBhbGwgZWxlbWVudHNcbiAgICAgKiBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IuIFRoZSBwcmVkaWNhdGUgaXMgaW52b2tlZCB3aXRoIHRocmVlXG4gICAgICogYXJndW1lbnRzOiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIGBfLnJlbW92ZWAsIHRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmlsdGVyZWQgYXJyYXkuXG4gICAgICogQHNlZSBfLnJlamVjdFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLmZpbHRlcih1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gIW8uYWN0aXZlOyB9KTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbJ2ZyZWQnXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbHRlcih1c2VycywgeyAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5J11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbHRlcih1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbHRlcih1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnYmFybmV5J11cbiAgICAgKlxuICAgICAqIC8vIENvbWJpbmluZyBzZXZlcmFsIHByZWRpY2F0ZXMgdXNpbmcgYF8ub3ZlckV2ZXJ5YCBvciBgXy5vdmVyU29tZWAuXG4gICAgICogXy5maWx0ZXIodXNlcnMsIF8ub3ZlclNvbWUoW3sgJ2FnZSc6IDM2IH0sIFsnYWdlJywgNDBdXSkpO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCcsICdiYXJuZXknXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZpbHRlcihjb2xsZWN0aW9uLCBwcmVkaWNhdGUpIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5RmlsdGVyIDogYmFzZUZpbHRlcjtcbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2YgYGNvbGxlY3Rpb25gLCByZXR1cm5pbmcgdGhlIGZpcnN0IGVsZW1lbnRcbiAgICAgKiBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IuIFRoZSBwcmVkaWNhdGUgaXMgaW52b2tlZCB3aXRoIHRocmVlXG4gICAgICogYXJndW1lbnRzOiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZnJvbUluZGV4PTBdIFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWF0Y2hlZCBlbGVtZW50LCBlbHNlIGB1bmRlZmluZWRgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWdlJzogNDAsICdhY3RpdmUnOiBmYWxzZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdwZWJibGVzJywgJ2FnZSc6IDEsICAnYWN0aXZlJzogdHJ1ZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZmluZCh1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gby5hZ2UgPCA0MDsgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0IGZvciAnYmFybmV5J1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmQodXNlcnMsIHsgJ2FnZSc6IDEsICdhY3RpdmUnOiB0cnVlIH0pO1xuICAgICAqIC8vID0+IG9iamVjdCBmb3IgJ3BlYmJsZXMnXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maW5kKHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XG4gICAgICogLy8gPT4gb2JqZWN0IGZvciAnZnJlZCdcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZCh1c2VycywgJ2FjdGl2ZScpO1xuICAgICAqIC8vID0+IG9iamVjdCBmb3IgJ2Jhcm5leSdcbiAgICAgKi9cbiAgICB2YXIgZmluZCA9IGNyZWF0ZUZpbmQoZmluZEluZGV4KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmluZGAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZlxuICAgICAqIGBjb2xsZWN0aW9uYCBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZnJvbUluZGV4PWNvbGxlY3Rpb24ubGVuZ3RoLTFdIFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWF0Y2hlZCBlbGVtZW50LCBlbHNlIGB1bmRlZmluZWRgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmZpbmRMYXN0KFsxLCAyLCAzLCA0XSwgZnVuY3Rpb24obikge1xuICAgICAqICAgcmV0dXJuIG4gJSAyID09IDE7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gM1xuICAgICAqL1xuICAgIHZhciBmaW5kTGFzdCA9IGNyZWF0ZUZpbmQoZmluZExhc3RJbmRleCk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZmxhdHRlbmVkIGFycmF5IG9mIHZhbHVlcyBieSBydW5uaW5nIGVhY2ggZWxlbWVudCBpbiBgY29sbGVjdGlvbmBcbiAgICAgKiB0aHJ1IGBpdGVyYXRlZWAgYW5kIGZsYXR0ZW5pbmcgdGhlIG1hcHBlZCByZXN1bHRzLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZFxuICAgICAqIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGR1cGxpY2F0ZShuKSB7XG4gICAgICogICByZXR1cm4gW24sIG5dO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIF8uZmxhdE1hcChbMSwgMl0sIGR1cGxpY2F0ZSk7XG4gICAgICogLy8gPT4gWzEsIDEsIDIsIDJdXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmxhdE1hcChjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIGJhc2VGbGF0dGVuKG1hcChjb2xsZWN0aW9uLCBpdGVyYXRlZSksIDEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmxhdE1hcGAgZXhjZXB0IHRoYXQgaXQgcmVjdXJzaXZlbHkgZmxhdHRlbnMgdGhlXG4gICAgICogbWFwcGVkIHJlc3VsdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC43LjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGR1cGxpY2F0ZShuKSB7XG4gICAgICogICByZXR1cm4gW1tbbiwgbl1dXTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBfLmZsYXRNYXBEZWVwKFsxLCAyXSwgZHVwbGljYXRlKTtcbiAgICAgKiAvLyA9PiBbMSwgMSwgMiwgMl1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmbGF0TWFwRGVlcChjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIGJhc2VGbGF0dGVuKG1hcChjb2xsZWN0aW9uLCBpdGVyYXRlZSksIElORklOSVRZKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZsYXRNYXBgIGV4Y2VwdCB0aGF0IGl0IHJlY3Vyc2l2ZWx5IGZsYXR0ZW5zIHRoZVxuICAgICAqIG1hcHBlZCByZXN1bHRzIHVwIHRvIGBkZXB0aGAgdGltZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC43LjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2RlcHRoPTFdIFRoZSBtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGR1cGxpY2F0ZShuKSB7XG4gICAgICogICByZXR1cm4gW1tbbiwgbl1dXTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBfLmZsYXRNYXBEZXB0aChbMSwgMl0sIGR1cGxpY2F0ZSwgMik7XG4gICAgICogLy8gPT4gW1sxLCAxXSwgWzIsIDJdXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZsYXRNYXBEZXB0aChjb2xsZWN0aW9uLCBpdGVyYXRlZSwgZGVwdGgpIHtcbiAgICAgIGRlcHRoID0gZGVwdGggPT09IHVuZGVmaW5lZCA/IDEgOiB0b0ludGVnZXIoZGVwdGgpO1xuICAgICAgcmV0dXJuIGJhc2VGbGF0dGVuKG1hcChjb2xsZWN0aW9uLCBpdGVyYXRlZSksIGRlcHRoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mIGBjb2xsZWN0aW9uYCBhbmQgaW52b2tlcyBgaXRlcmF0ZWVgIGZvciBlYWNoIGVsZW1lbnQuXG4gICAgICogVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXQgaXRlcmF0aW9uIGVhcmx5IGJ5IGV4cGxpY2l0bHkgcmV0dXJuaW5nIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogQXMgd2l0aCBvdGhlciBcIkNvbGxlY3Rpb25zXCIgbWV0aG9kcywgb2JqZWN0cyB3aXRoIGEgXCJsZW5ndGhcIlxuICAgICAqIHByb3BlcnR5IGFyZSBpdGVyYXRlZCBsaWtlIGFycmF5cy4gVG8gYXZvaWQgdGhpcyBiZWhhdmlvciB1c2UgYF8uZm9ySW5gXG4gICAgICogb3IgYF8uZm9yT3duYCBmb3Igb2JqZWN0IGl0ZXJhdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBhbGlhcyBlYWNoXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fE9iamVjdH0gUmV0dXJucyBgY29sbGVjdGlvbmAuXG4gICAgICogQHNlZSBfLmZvckVhY2hSaWdodFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmZvckVhY2goWzEsIDJdLCBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAqICAgY29uc29sZS5sb2codmFsdWUpO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IExvZ3MgYDFgIHRoZW4gYDJgLlxuICAgICAqXG4gICAgICogXy5mb3JFYWNoKHsgJ2EnOiAxLCAnYic6IDIgfSwgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAqICAgY29uc29sZS5sb2coa2V5KTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBMb2dzICdhJyB0aGVuICdiJyAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmb3JFYWNoKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUVhY2ggOiBiYXNlRWFjaDtcbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5mb3JFYWNoYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIGVsZW1lbnRzIG9mXG4gICAgICogYGNvbGxlY3Rpb25gIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjAuMFxuICAgICAqIEBhbGlhcyBlYWNoUmlnaHRcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl8T2JqZWN0fSBSZXR1cm5zIGBjb2xsZWN0aW9uYC5cbiAgICAgKiBAc2VlIF8uZm9yRWFjaFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmZvckVhY2hSaWdodChbMSwgMl0sIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICogICBjb25zb2xlLmxvZyh2YWx1ZSk7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gTG9ncyBgMmAgdGhlbiBgMWAuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZm9yRWFjaFJpZ2h0KGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheUVhY2hSaWdodCA6IGJhc2VFYWNoUmlnaHQ7XG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIGtleXMgZ2VuZXJhdGVkIGZyb20gdGhlIHJlc3VsdHMgb2YgcnVubmluZ1xuICAgICAqIGVhY2ggZWxlbWVudCBvZiBgY29sbGVjdGlvbmAgdGhydSBgaXRlcmF0ZWVgLiBUaGUgb3JkZXIgb2YgZ3JvdXBlZCB2YWx1ZXNcbiAgICAgKiBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBvcmRlciB0aGV5IG9jY3VyIGluIGBjb2xsZWN0aW9uYC4gVGhlIGNvcnJlc3BvbmRpbmdcbiAgICAgKiB2YWx1ZSBvZiBlYWNoIGtleSBpcyBhbiBhcnJheSBvZiBlbGVtZW50cyByZXNwb25zaWJsZSBmb3IgZ2VuZXJhdGluZyB0aGVcbiAgICAgKiBrZXkuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSB0byB0cmFuc2Zvcm0ga2V5cy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjb21wb3NlZCBhZ2dyZWdhdGUgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmdyb3VwQnkoWzYuMSwgNC4yLCA2LjNdLCBNYXRoLmZsb29yKTtcbiAgICAgKiAvLyA9PiB7ICc0JzogWzQuMl0sICc2JzogWzYuMSwgNi4zXSB9XG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmdyb3VwQnkoWydvbmUnLCAndHdvJywgJ3RocmVlJ10sICdsZW5ndGgnKTtcbiAgICAgKiAvLyA9PiB7ICczJzogWydvbmUnLCAndHdvJ10sICc1JzogWyd0aHJlZSddIH1cbiAgICAgKi9cbiAgICB2YXIgZ3JvdXBCeSA9IGNyZWF0ZUFnZ3JlZ2F0b3IoZnVuY3Rpb24ocmVzdWx0LCB2YWx1ZSwga2V5KSB7XG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChyZXN1bHQsIGtleSkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0ucHVzaCh2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBiYXNlQXNzaWduVmFsdWUocmVzdWx0LCBrZXksIFt2YWx1ZV0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgaW4gYGNvbGxlY3Rpb25gLiBJZiBgY29sbGVjdGlvbmAgaXMgYSBzdHJpbmcsIGl0J3NcbiAgICAgKiBjaGVja2VkIGZvciBhIHN1YnN0cmluZyBvZiBgdmFsdWVgLCBvdGhlcndpc2VcbiAgICAgKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICAgICAqIGlzIHVzZWQgZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLiBJZiBgZnJvbUluZGV4YCBpcyBuZWdhdGl2ZSwgaXQncyB1c2VkIGFzXG4gICAgICogdGhlIG9mZnNldCBmcm9tIHRoZSBlbmQgb2YgYGNvbGxlY3Rpb25gLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZnJvbUluZGV4PTBdIFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5yZWR1Y2VgLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGZvdW5kLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaW5jbHVkZXMoWzEsIDIsIDNdLCAxKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmluY2x1ZGVzKFsxLCAyLCAzXSwgMSwgMik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaW5jbHVkZXMoeyAnYSc6IDEsICdiJzogMiB9LCAxKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmluY2x1ZGVzKCdhYmNkJywgJ2JjJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluY2x1ZGVzKGNvbGxlY3Rpb24sIHZhbHVlLCBmcm9tSW5kZXgsIGd1YXJkKSB7XG4gICAgICBjb2xsZWN0aW9uID0gaXNBcnJheUxpa2UoY29sbGVjdGlvbikgPyBjb2xsZWN0aW9uIDogdmFsdWVzKGNvbGxlY3Rpb24pO1xuICAgICAgZnJvbUluZGV4ID0gKGZyb21JbmRleCAmJiAhZ3VhcmQpID8gdG9JbnRlZ2VyKGZyb21JbmRleCkgOiAwO1xuXG4gICAgICB2YXIgbGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGg7XG4gICAgICBpZiAoZnJvbUluZGV4IDwgMCkge1xuICAgICAgICBmcm9tSW5kZXggPSBuYXRpdmVNYXgobGVuZ3RoICsgZnJvbUluZGV4LCAwKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpc1N0cmluZyhjb2xsZWN0aW9uKVxuICAgICAgICA/IChmcm9tSW5kZXggPD0gbGVuZ3RoICYmIGNvbGxlY3Rpb24uaW5kZXhPZih2YWx1ZSwgZnJvbUluZGV4KSA+IC0xKVxuICAgICAgICA6ICghIWxlbmd0aCAmJiBiYXNlSW5kZXhPZihjb2xsZWN0aW9uLCB2YWx1ZSwgZnJvbUluZGV4KSA+IC0xKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbnZva2VzIHRoZSBtZXRob2QgYXQgYHBhdGhgIG9mIGVhY2ggZWxlbWVudCBpbiBgY29sbGVjdGlvbmAsIHJldHVybmluZ1xuICAgICAqIGFuIGFycmF5IG9mIHRoZSByZXN1bHRzIG9mIGVhY2ggaW52b2tlZCBtZXRob2QuIEFueSBhZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgICAqIGFyZSBwcm92aWRlZCB0byBlYWNoIGludm9rZWQgbWV0aG9kLiBJZiBgcGF0aGAgaXMgYSBmdW5jdGlvbiwgaXQncyBpbnZva2VkXG4gICAgICogZm9yLCBhbmQgYHRoaXNgIGJvdW5kIHRvLCBlYWNoIGVsZW1lbnQgaW4gYGNvbGxlY3Rpb25gLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtBcnJheXxGdW5jdGlvbnxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIG1ldGhvZCB0byBpbnZva2Ugb3JcbiAgICAgKiAgdGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0gey4uLip9IFthcmdzXSBUaGUgYXJndW1lbnRzIHRvIGludm9rZSBlYWNoIG1ldGhvZCB3aXRoLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcmVzdWx0cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pbnZva2VNYXAoW1s1LCAxLCA3XSwgWzMsIDIsIDFdXSwgJ3NvcnQnKTtcbiAgICAgKiAvLyA9PiBbWzEsIDUsIDddLCBbMSwgMiwgM11dXG4gICAgICpcbiAgICAgKiBfLmludm9rZU1hcChbMTIzLCA0NTZdLCBTdHJpbmcucHJvdG90eXBlLnNwbGl0LCAnJyk7XG4gICAgICogLy8gPT4gW1snMScsICcyJywgJzMnXSwgWyc0JywgJzUnLCAnNiddXVxuICAgICAqL1xuICAgIHZhciBpbnZva2VNYXAgPSBiYXNlUmVzdChmdW5jdGlvbihjb2xsZWN0aW9uLCBwYXRoLCBhcmdzKSB7XG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBpc0Z1bmMgPSB0eXBlb2YgcGF0aCA9PSAnZnVuY3Rpb24nLFxuICAgICAgICAgIHJlc3VsdCA9IGlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pID8gQXJyYXkoY29sbGVjdGlvbi5sZW5ndGgpIDogW107XG5cbiAgICAgIGJhc2VFYWNoKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgIHJlc3VsdFsrK2luZGV4XSA9IGlzRnVuYyA/IGFwcGx5KHBhdGgsIHZhbHVlLCBhcmdzKSA6IGJhc2VJbnZva2UodmFsdWUsIHBhdGgsIGFyZ3MpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3QgY29tcG9zZWQgb2Yga2V5cyBnZW5lcmF0ZWQgZnJvbSB0aGUgcmVzdWx0cyBvZiBydW5uaW5nXG4gICAgICogZWFjaCBlbGVtZW50IG9mIGBjb2xsZWN0aW9uYCB0aHJ1IGBpdGVyYXRlZWAuIFRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIG9mXG4gICAgICogZWFjaCBrZXkgaXMgdGhlIGxhc3QgZWxlbWVudCByZXNwb25zaWJsZSBmb3IgZ2VuZXJhdGluZyB0aGUga2V5LiBUaGVcbiAgICAgKiBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSB0byB0cmFuc2Zvcm0ga2V5cy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjb21wb3NlZCBhZ2dyZWdhdGUgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbXG4gICAgICogICB7ICdkaXInOiAnbGVmdCcsICdjb2RlJzogOTcgfSxcbiAgICAgKiAgIHsgJ2Rpcic6ICdyaWdodCcsICdjb2RlJzogMTAwIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5rZXlCeShhcnJheSwgZnVuY3Rpb24obykge1xuICAgICAqICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoby5jb2RlKTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiB7ICdhJzogeyAnZGlyJzogJ2xlZnQnLCAnY29kZSc6IDk3IH0sICdkJzogeyAnZGlyJzogJ3JpZ2h0JywgJ2NvZGUnOiAxMDAgfSB9XG4gICAgICpcbiAgICAgKiBfLmtleUJ5KGFycmF5LCAnZGlyJyk7XG4gICAgICogLy8gPT4geyAnbGVmdCc6IHsgJ2Rpcic6ICdsZWZ0JywgJ2NvZGUnOiA5NyB9LCAncmlnaHQnOiB7ICdkaXInOiAncmlnaHQnLCAnY29kZSc6IDEwMCB9IH1cbiAgICAgKi9cbiAgICB2YXIga2V5QnkgPSBjcmVhdGVBZ2dyZWdhdG9yKGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xuICAgICAgYmFzZUFzc2lnblZhbHVlKHJlc3VsdCwga2V5LCB2YWx1ZSk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHZhbHVlcyBieSBydW5uaW5nIGVhY2ggZWxlbWVudCBpbiBgY29sbGVjdGlvbmAgdGhydVxuICAgICAqIGBpdGVyYXRlZWAuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOlxuICAgICAqICh2YWx1ZSwgaW5kZXh8a2V5LCBjb2xsZWN0aW9uKS5cbiAgICAgKlxuICAgICAqIE1hbnkgbG9kYXNoIG1ldGhvZHMgYXJlIGd1YXJkZWQgdG8gd29yayBhcyBpdGVyYXRlZXMgZm9yIG1ldGhvZHMgbGlrZVxuICAgICAqIGBfLmV2ZXJ5YCwgYF8uZmlsdGVyYCwgYF8ubWFwYCwgYF8ubWFwVmFsdWVzYCwgYF8ucmVqZWN0YCwgYW5kIGBfLnNvbWVgLlxuICAgICAqXG4gICAgICogVGhlIGd1YXJkZWQgbWV0aG9kcyBhcmU6XG4gICAgICogYGFyeWAsIGBjaHVua2AsIGBjdXJyeWAsIGBjdXJyeVJpZ2h0YCwgYGRyb3BgLCBgZHJvcFJpZ2h0YCwgYGV2ZXJ5YCxcbiAgICAgKiBgZmlsbGAsIGBpbnZlcnRgLCBgcGFyc2VJbnRgLCBgcmFuZG9tYCwgYHJhbmdlYCwgYHJhbmdlUmlnaHRgLCBgcmVwZWF0YCxcbiAgICAgKiBgc2FtcGxlU2l6ZWAsIGBzbGljZWAsIGBzb21lYCwgYHNvcnRCeWAsIGBzcGxpdGAsIGB0YWtlYCwgYHRha2VSaWdodGAsXG4gICAgICogYHRlbXBsYXRlYCwgYHRyaW1gLCBgdHJpbUVuZGAsIGB0cmltU3RhcnRgLCBhbmQgYHdvcmRzYFxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBzcXVhcmUobikge1xuICAgICAqICAgcmV0dXJuIG4gKiBuO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIF8ubWFwKFs0LCA4XSwgc3F1YXJlKTtcbiAgICAgKiAvLyA9PiBbMTYsIDY0XVxuICAgICAqXG4gICAgICogXy5tYXAoeyAnYSc6IDQsICdiJzogOCB9LCBzcXVhcmUpO1xuICAgICAqIC8vID0+IFsxNiwgNjRdIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSBbXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLm1hcCh1c2VycywgJ3VzZXInKTtcbiAgICAgKiAvLyA9PiBbJ2Jhcm5leScsICdmcmVkJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXAoY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5TWFwIDogYmFzZU1hcDtcbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5zb3J0QnlgIGV4Y2VwdCB0aGF0IGl0IGFsbG93cyBzcGVjaWZ5aW5nIHRoZSBzb3J0XG4gICAgICogb3JkZXJzIG9mIHRoZSBpdGVyYXRlZXMgdG8gc29ydCBieS4gSWYgYG9yZGVyc2AgaXMgdW5zcGVjaWZpZWQsIGFsbCB2YWx1ZXNcbiAgICAgKiBhcmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlci4gT3RoZXJ3aXNlLCBzcGVjaWZ5IGFuIG9yZGVyIG9mIFwiZGVzY1wiIGZvclxuICAgICAqIGRlc2NlbmRpbmcgb3IgXCJhc2NcIiBmb3IgYXNjZW5kaW5nIHNvcnQgb3JkZXIgb2YgY29ycmVzcG9uZGluZyB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0FycmF5W118RnVuY3Rpb25bXXxPYmplY3RbXXxzdHJpbmdbXX0gW2l0ZXJhdGVlcz1bXy5pZGVudGl0eV1dXG4gICAgICogIFRoZSBpdGVyYXRlZXMgdG8gc29ydCBieS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBbb3JkZXJzXSBUaGUgc29ydCBvcmRlcnMgb2YgYGl0ZXJhdGVlc2AuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ucmVkdWNlYC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBzb3J0ZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQ4IH0sXG4gICAgICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNCB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDAgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gU29ydCBieSBgdXNlcmAgaW4gYXNjZW5kaW5nIG9yZGVyIGFuZCBieSBgYWdlYCBpbiBkZXNjZW5kaW5nIG9yZGVyLlxuICAgICAqIF8ub3JkZXJCeSh1c2VycywgWyd1c2VyJywgJ2FnZSddLCBbJ2FzYycsICdkZXNjJ10pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFtbJ2Jhcm5leScsIDM2XSwgWydiYXJuZXknLCAzNF0sIFsnZnJlZCcsIDQ4XSwgWydmcmVkJywgNDBdXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG9yZGVyQnkoY29sbGVjdGlvbiwgaXRlcmF0ZWVzLCBvcmRlcnMsIGd1YXJkKSB7XG4gICAgICBpZiAoY29sbGVjdGlvbiA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIGlmICghaXNBcnJheShpdGVyYXRlZXMpKSB7XG4gICAgICAgIGl0ZXJhdGVlcyA9IGl0ZXJhdGVlcyA9PSBudWxsID8gW10gOiBbaXRlcmF0ZWVzXTtcbiAgICAgIH1cbiAgICAgIG9yZGVycyA9IGd1YXJkID8gdW5kZWZpbmVkIDogb3JkZXJzO1xuICAgICAgaWYgKCFpc0FycmF5KG9yZGVycykpIHtcbiAgICAgICAgb3JkZXJzID0gb3JkZXJzID09IG51bGwgPyBbXSA6IFtvcmRlcnNdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VPcmRlckJ5KGNvbGxlY3Rpb24sIGl0ZXJhdGVlcywgb3JkZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGVsZW1lbnRzIHNwbGl0IGludG8gdHdvIGdyb3VwcywgdGhlIGZpcnN0IG9mIHdoaWNoXG4gICAgICogY29udGFpbnMgZWxlbWVudHMgYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yLCB0aGUgc2Vjb25kIG9mIHdoaWNoXG4gICAgICogY29udGFpbnMgZWxlbWVudHMgYHByZWRpY2F0ZWAgcmV0dXJucyBmYWxzZXkgZm9yLiBUaGUgcHJlZGljYXRlIGlzXG4gICAgICogaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIGdyb3VwZWQgZWxlbWVudHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IGZhbHNlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWdlJzogNDAsICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWdlJzogMSwgICdhY3RpdmUnOiBmYWxzZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8ucGFydGl0aW9uKHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLmFjdGl2ZTsgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgW1snZnJlZCddLCBbJ2Jhcm5leScsICdwZWJibGVzJ11dXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ucGFydGl0aW9uKHVzZXJzLCB7ICdhZ2UnOiAxLCAnYWN0aXZlJzogZmFsc2UgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgW1sncGViYmxlcyddLCBbJ2Jhcm5leScsICdmcmVkJ11dXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5wYXJ0aXRpb24odXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiBvYmplY3RzIGZvciBbWydiYXJuZXknLCAncGViYmxlcyddLCBbJ2ZyZWQnXV1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ucGFydGl0aW9uKHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgW1snZnJlZCddLCBbJ2Jhcm5leScsICdwZWJibGVzJ11dXG4gICAgICovXG4gICAgdmFyIHBhcnRpdGlvbiA9IGNyZWF0ZUFnZ3JlZ2F0b3IoZnVuY3Rpb24ocmVzdWx0LCB2YWx1ZSwga2V5KSB7XG4gICAgICByZXN1bHRba2V5ID8gMCA6IDFdLnB1c2godmFsdWUpO1xuICAgIH0sIGZ1bmN0aW9uKCkgeyByZXR1cm4gW1tdLCBbXV07IH0pO1xuXG4gICAgLyoqXG4gICAgICogUmVkdWNlcyBgY29sbGVjdGlvbmAgdG8gYSB2YWx1ZSB3aGljaCBpcyB0aGUgYWNjdW11bGF0ZWQgcmVzdWx0IG9mIHJ1bm5pbmdcbiAgICAgKiBlYWNoIGVsZW1lbnQgaW4gYGNvbGxlY3Rpb25gIHRocnUgYGl0ZXJhdGVlYCwgd2hlcmUgZWFjaCBzdWNjZXNzaXZlXG4gICAgICogaW52b2NhdGlvbiBpcyBzdXBwbGllZCB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBwcmV2aW91cy4gSWYgYGFjY3VtdWxhdG9yYFxuICAgICAqIGlzIG5vdCBnaXZlbiwgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYGNvbGxlY3Rpb25gIGlzIHVzZWQgYXMgdGhlIGluaXRpYWxcbiAgICAgKiB2YWx1ZS4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBmb3VyIGFyZ3VtZW50czpcbiAgICAgKiAoYWNjdW11bGF0b3IsIHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogTWFueSBsb2Rhc2ggbWV0aG9kcyBhcmUgZ3VhcmRlZCB0byB3b3JrIGFzIGl0ZXJhdGVlcyBmb3IgbWV0aG9kcyBsaWtlXG4gICAgICogYF8ucmVkdWNlYCwgYF8ucmVkdWNlUmlnaHRgLCBhbmQgYF8udHJhbnNmb3JtYC5cbiAgICAgKlxuICAgICAqIFRoZSBndWFyZGVkIG1ldGhvZHMgYXJlOlxuICAgICAqIGBhc3NpZ25gLCBgZGVmYXVsdHNgLCBgZGVmYXVsdHNEZWVwYCwgYGluY2x1ZGVzYCwgYG1lcmdlYCwgYG9yZGVyQnlgLFxuICAgICAqIGFuZCBgc29ydEJ5YFxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHBhcmFtIHsqfSBbYWNjdW11bGF0b3JdIFRoZSBpbml0aWFsIHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAgICAgKiBAc2VlIF8ucmVkdWNlUmlnaHRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5yZWR1Y2UoWzEsIDJdLCBmdW5jdGlvbihzdW0sIG4pIHtcbiAgICAgKiAgIHJldHVybiBzdW0gKyBuO1xuICAgICAqIH0sIDApO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIF8ucmVkdWNlKHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMSB9LCBmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcbiAgICAgKiAgIChyZXN1bHRbdmFsdWVdIHx8IChyZXN1bHRbdmFsdWVdID0gW10pKS5wdXNoKGtleSk7XG4gICAgICogICByZXR1cm4gcmVzdWx0O1xuICAgICAqIH0sIHt9KTtcbiAgICAgKiAvLyA9PiB7ICcxJzogWydhJywgJ2MnXSwgJzInOiBbJ2InXSB9IChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVkdWNlKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCBhY2N1bXVsYXRvcikge1xuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlSZWR1Y2UgOiBiYXNlUmVkdWNlLFxuICAgICAgICAgIGluaXRBY2N1bSA9IGFyZ3VtZW50cy5sZW5ndGggPCAzO1xuXG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgNCksIGFjY3VtdWxhdG9yLCBpbml0QWNjdW0sIGJhc2VFYWNoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnJlZHVjZWAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZlxuICAgICAqIGBjb2xsZWN0aW9uYCBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gVGhlIGluaXRpYWwgdmFsdWUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICAgICAqIEBzZWUgXy5yZWR1Y2VcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gW1swLCAxXSwgWzIsIDNdLCBbNCwgNV1dO1xuICAgICAqXG4gICAgICogXy5yZWR1Y2VSaWdodChhcnJheSwgZnVuY3Rpb24oZmxhdHRlbmVkLCBvdGhlcikge1xuICAgICAqICAgcmV0dXJuIGZsYXR0ZW5lZC5jb25jYXQob3RoZXIpO1xuICAgICAqIH0sIFtdKTtcbiAgICAgKiAvLyA9PiBbNCwgNSwgMiwgMywgMCwgMV1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZWR1Y2VSaWdodChjb2xsZWN0aW9uLCBpdGVyYXRlZSwgYWNjdW11bGF0b3IpIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5UmVkdWNlUmlnaHQgOiBiYXNlUmVkdWNlLFxuICAgICAgICAgIGluaXRBY2N1bSA9IGFyZ3VtZW50cy5sZW5ndGggPCAzO1xuXG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgNCksIGFjY3VtdWxhdG9yLCBpbml0QWNjdW0sIGJhc2VFYWNoUmlnaHQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHBvc2l0ZSBvZiBgXy5maWx0ZXJgOyB0aGlzIG1ldGhvZCByZXR1cm5zIHRoZSBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmBcbiAgICAgKiB0aGF0IGBwcmVkaWNhdGVgIGRvZXMgKipub3QqKiByZXR1cm4gdHJ1dGh5IGZvci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmaWx0ZXJlZCBhcnJheS5cbiAgICAgKiBAc2VlIF8uZmlsdGVyXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IFtcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2LCAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnZnJlZCcsICAgJ2FnZSc6IDQwLCAnYWN0aXZlJzogdHJ1ZSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8ucmVqZWN0KHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiAhby5hY3RpdmU7IH0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFsnZnJlZCddXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ucmVqZWN0KHVzZXJzLCB7ICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IHRydWUgfSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydiYXJuZXknXVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ucmVqZWN0KHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydmcmVkJ11cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ucmVqZWN0KHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgWydiYXJuZXknXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlamVjdChjb2xsZWN0aW9uLCBwcmVkaWNhdGUpIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5RmlsdGVyIDogYmFzZUZpbHRlcjtcbiAgICAgIHJldHVybiBmdW5jKGNvbGxlY3Rpb24sIG5lZ2F0ZShnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIHJhbmRvbSBlbGVtZW50IGZyb20gYGNvbGxlY3Rpb25gLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuMC4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzYW1wbGUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJhbmRvbSBlbGVtZW50LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNhbXBsZShbMSwgMiwgMywgNF0pO1xuICAgICAqIC8vID0+IDJcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzYW1wbGUoY29sbGVjdGlvbikge1xuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlTYW1wbGUgOiBiYXNlU2FtcGxlO1xuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBgbmAgcmFuZG9tIGVsZW1lbnRzIGF0IHVuaXF1ZSBrZXlzIGZyb20gYGNvbGxlY3Rpb25gIHVwIHRvIHRoZVxuICAgICAqIHNpemUgb2YgYGNvbGxlY3Rpb25gLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzYW1wbGUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtuPTFdIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8gc2FtcGxlLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSByYW5kb20gZWxlbWVudHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc2FtcGxlU2l6ZShbMSwgMiwgM10sIDIpO1xuICAgICAqIC8vID0+IFszLCAxXVxuICAgICAqXG4gICAgICogXy5zYW1wbGVTaXplKFsxLCAyLCAzXSwgNCk7XG4gICAgICogLy8gPT4gWzIsIDMsIDFdXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2FtcGxlU2l6ZShjb2xsZWN0aW9uLCBuLCBndWFyZCkge1xuICAgICAgaWYgKChndWFyZCA/IGlzSXRlcmF0ZWVDYWxsKGNvbGxlY3Rpb24sIG4sIGd1YXJkKSA6IG4gPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgbiA9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuID0gdG9JbnRlZ2VyKG4pO1xuICAgICAgfVxuICAgICAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlTYW1wbGVTaXplIDogYmFzZVNhbXBsZVNpemU7XG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBuKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHNodWZmbGVkIHZhbHVlcywgdXNpbmcgYSB2ZXJzaW9uIG9mIHRoZVxuICAgICAqIFtGaXNoZXItWWF0ZXMgc2h1ZmZsZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRmlzaGVyLVlhdGVzX3NodWZmbGUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBzaHVmZmxlLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHNodWZmbGVkIGFycmF5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNodWZmbGUoWzEsIDIsIDMsIDRdKTtcbiAgICAgKiAvLyA9PiBbNCwgMSwgMywgMl1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzaHVmZmxlKGNvbGxlY3Rpb24pIHtcbiAgICAgIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5U2h1ZmZsZSA6IGJhc2VTaHVmZmxlO1xuICAgICAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgc2l6ZSBvZiBgY29sbGVjdGlvbmAgYnkgcmV0dXJuaW5nIGl0cyBsZW5ndGggZm9yIGFycmF5LWxpa2VcbiAgICAgKiB2YWx1ZXMgb3IgdGhlIG51bWJlciBvZiBvd24gZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydGllcyBmb3Igb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R8c3RyaW5nfSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGluc3BlY3QuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgY29sbGVjdGlvbiBzaXplLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnNpemUoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICpcbiAgICAgKiBfLnNpemUoeyAnYSc6IDEsICdiJzogMiB9KTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICpcbiAgICAgKiBfLnNpemUoJ3BlYmJsZXMnKTtcbiAgICAgKiAvLyA9PiA3XG4gICAgICovXG4gICAgZnVuY3Rpb24gc2l6ZShjb2xsZWN0aW9uKSB7XG4gICAgICBpZiAoY29sbGVjdGlvbiA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuICAgICAgaWYgKGlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pKSB7XG4gICAgICAgIHJldHVybiBpc1N0cmluZyhjb2xsZWN0aW9uKSA/IHN0cmluZ1NpemUoY29sbGVjdGlvbikgOiBjb2xsZWN0aW9uLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIHZhciB0YWcgPSBnZXRUYWcoY29sbGVjdGlvbik7XG4gICAgICBpZiAodGFnID09IG1hcFRhZyB8fCB0YWcgPT0gc2V0VGFnKSB7XG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uLnNpemU7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZUtleXMoY29sbGVjdGlvbikubGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgcHJlZGljYXRlYCByZXR1cm5zIHRydXRoeSBmb3IgKiphbnkqKiBlbGVtZW50IG9mIGBjb2xsZWN0aW9uYC5cbiAgICAgKiBJdGVyYXRpb24gaXMgc3RvcHBlZCBvbmNlIGBwcmVkaWNhdGVgIHJldHVybnMgdHJ1dGh5LiBUaGUgcHJlZGljYXRlIGlzXG4gICAgICogaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFueSBlbGVtZW50IHBhc3NlcyB0aGUgcHJlZGljYXRlIGNoZWNrLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc29tZShbbnVsbCwgMCwgJ3llcycsIGZhbHNlXSwgQm9vbGVhbik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWN0aXZlJzogdHJ1ZSB9LFxuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWN0aXZlJzogZmFsc2UgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc2AgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uc29tZSh1c2VycywgeyAndXNlcic6ICdiYXJuZXknLCAnYWN0aXZlJzogZmFsc2UgfSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnNvbWUodXNlcnMsIFsnYWN0aXZlJywgZmFsc2VdKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLnNvbWUodXNlcnMsICdhY3RpdmUnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gc29tZShjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIGd1YXJkKSB7XG4gICAgICB2YXIgZnVuYyA9IGlzQXJyYXkoY29sbGVjdGlvbikgPyBhcnJheVNvbWUgOiBiYXNlU29tZTtcbiAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIGd1YXJkKSkge1xuICAgICAgICBwcmVkaWNhdGUgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIGVsZW1lbnRzLCBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIGJ5IHRoZSByZXN1bHRzIG9mXG4gICAgICogcnVubmluZyBlYWNoIGVsZW1lbnQgaW4gYSBjb2xsZWN0aW9uIHRocnUgZWFjaCBpdGVyYXRlZS4gVGhpcyBtZXRob2RcbiAgICAgKiBwZXJmb3JtcyBhIHN0YWJsZSBzb3J0LCB0aGF0IGlzLCBpdCBwcmVzZXJ2ZXMgdGhlIG9yaWdpbmFsIHNvcnQgb3JkZXIgb2ZcbiAgICAgKiBlcXVhbCBlbGVtZW50cy4gVGhlIGl0ZXJhdGVlcyBhcmUgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7Li4uKEZ1bmN0aW9ufEZ1bmN0aW9uW10pfSBbaXRlcmF0ZWVzPVtfLmlkZW50aXR5XV1cbiAgICAgKiAgVGhlIGl0ZXJhdGVlcyB0byBzb3J0IGJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHNvcnRlZCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdmcmVkJywgICAnYWdlJzogNDggfSxcbiAgICAgKiAgIHsgJ3VzZXInOiAnYmFybmV5JywgJ2FnZSc6IDM2IH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiAzMCB9LFxuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzQgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBfLnNvcnRCeSh1c2VycywgW2Z1bmN0aW9uKG8pIHsgcmV0dXJuIG8udXNlcjsgfV0pO1xuICAgICAqIC8vID0+IG9iamVjdHMgZm9yIFtbJ2Jhcm5leScsIDM2XSwgWydiYXJuZXknLCAzNF0sIFsnZnJlZCcsIDQ4XSwgWydmcmVkJywgMzBdXVxuICAgICAqXG4gICAgICogXy5zb3J0QnkodXNlcnMsIFsndXNlcicsICdhZ2UnXSk7XG4gICAgICogLy8gPT4gb2JqZWN0cyBmb3IgW1snYmFybmV5JywgMzRdLCBbJ2Jhcm5leScsIDM2XSwgWydmcmVkJywgMzBdLCBbJ2ZyZWQnLCA0OF1dXG4gICAgICovXG4gICAgdmFyIHNvcnRCeSA9IGJhc2VSZXN0KGZ1bmN0aW9uKGNvbGxlY3Rpb24sIGl0ZXJhdGVlcykge1xuICAgICAgaWYgKGNvbGxlY3Rpb24gPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICB2YXIgbGVuZ3RoID0gaXRlcmF0ZWVzLmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGggPiAxICYmIGlzSXRlcmF0ZWVDYWxsKGNvbGxlY3Rpb24sIGl0ZXJhdGVlc1swXSwgaXRlcmF0ZWVzWzFdKSkge1xuICAgICAgICBpdGVyYXRlZXMgPSBbXTtcbiAgICAgIH0gZWxzZSBpZiAobGVuZ3RoID4gMiAmJiBpc0l0ZXJhdGVlQ2FsbChpdGVyYXRlZXNbMF0sIGl0ZXJhdGVlc1sxXSwgaXRlcmF0ZWVzWzJdKSkge1xuICAgICAgICBpdGVyYXRlZXMgPSBbaXRlcmF0ZWVzWzBdXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlT3JkZXJCeShjb2xsZWN0aW9uLCBiYXNlRmxhdHRlbihpdGVyYXRlZXMsIDEpLCBbXSk7XG4gICAgfSk7XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB0aW1lc3RhbXAgb2YgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdGhhdCBoYXZlIGVsYXBzZWQgc2luY2VcbiAgICAgKiB0aGUgVW5peCBlcG9jaCAoMSBKYW51YXJ5IDE5NzAgMDA6MDA6MDAgVVRDKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjQuMFxuICAgICAqIEBjYXRlZ29yeSBEYXRlXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgdGltZXN0YW1wLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRlZmVyKGZ1bmN0aW9uKHN0YW1wKSB7XG4gICAgICogICBjb25zb2xlLmxvZyhfLm5vdygpIC0gc3RhbXApO1xuICAgICAqIH0sIF8ubm93KCkpO1xuICAgICAqIC8vID0+IExvZ3MgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaXQgdG9vayBmb3IgdGhlIGRlZmVycmVkIGludm9jYXRpb24uXG4gICAgICovXG4gICAgdmFyIG5vdyA9IGN0eE5vdyB8fCBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiByb290LkRhdGUubm93KCk7XG4gICAgfTtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHBvc2l0ZSBvZiBgXy5iZWZvcmVgOyB0aGlzIG1ldGhvZCBjcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzXG4gICAgICogYGZ1bmNgIG9uY2UgaXQncyBjYWxsZWQgYG5gIG9yIG1vcmUgdGltZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGNhbGxzIGJlZm9yZSBgZnVuY2AgaXMgaW52b2tlZC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byByZXN0cmljdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyByZXN0cmljdGVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgc2F2ZXMgPSBbJ3Byb2ZpbGUnLCAnc2V0dGluZ3MnXTtcbiAgICAgKlxuICAgICAqIHZhciBkb25lID0gXy5hZnRlcihzYXZlcy5sZW5ndGgsIGZ1bmN0aW9uKCkge1xuICAgICAqICAgY29uc29sZS5sb2coJ2RvbmUgc2F2aW5nIScpO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogXy5mb3JFYWNoKHNhdmVzLCBmdW5jdGlvbih0eXBlKSB7XG4gICAgICogICBhc3luY1NhdmUoeyAndHlwZSc6IHR5cGUsICdjb21wbGV0ZSc6IGRvbmUgfSk7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gTG9ncyAnZG9uZSBzYXZpbmchJyBhZnRlciB0aGUgdHdvIGFzeW5jIHNhdmVzIGhhdmUgY29tcGxldGVkLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFmdGVyKG4sIGZ1bmMpIHtcbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIG4gPSB0b0ludGVnZXIobik7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICgtLW4gPCAxKSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCwgd2l0aCB1cCB0byBgbmAgYXJndW1lbnRzLFxuICAgICAqIGlnbm9yaW5nIGFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNhcCBhcmd1bWVudHMgZm9yLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj1mdW5jLmxlbmd0aF0gVGhlIGFyaXR5IGNhcC5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNhcHBlZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5tYXAoWyc2JywgJzgnLCAnMTAnXSwgXy5hcnkocGFyc2VJbnQsIDEpKTtcbiAgICAgKiAvLyA9PiBbNiwgOCwgMTBdXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXJ5KGZ1bmMsIG4sIGd1YXJkKSB7XG4gICAgICBuID0gZ3VhcmQgPyB1bmRlZmluZWQgOiBuO1xuICAgICAgbiA9IChmdW5jICYmIG4gPT0gbnVsbCkgPyBmdW5jLmxlbmd0aCA6IG47XG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChmdW5jLCBXUkFQX0FSWV9GTEFHLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIG4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgLCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBhbmQgYXJndW1lbnRzXG4gICAgICogb2YgdGhlIGNyZWF0ZWQgZnVuY3Rpb24sIHdoaWxlIGl0J3MgY2FsbGVkIGxlc3MgdGhhbiBgbmAgdGltZXMuIFN1YnNlcXVlbnRcbiAgICAgKiBjYWxscyB0byB0aGUgY3JlYXRlZCBmdW5jdGlvbiByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBgZnVuY2AgaW52b2NhdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgY2FsbHMgYXQgd2hpY2ggYGZ1bmNgIGlzIG5vIGxvbmdlciBpbnZva2VkLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHJlc3RyaWN0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHJlc3RyaWN0ZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGpRdWVyeShlbGVtZW50KS5vbignY2xpY2snLCBfLmJlZm9yZSg1LCBhZGRDb250YWN0VG9MaXN0KSk7XG4gICAgICogLy8gPT4gQWxsb3dzIGFkZGluZyB1cCB0byA0IGNvbnRhY3RzIHRvIHRoZSBsaXN0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGJlZm9yZShuLCBmdW5jKSB7XG4gICAgICB2YXIgcmVzdWx0O1xuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgfVxuICAgICAgbiA9IHRvSW50ZWdlcihuKTtcbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKC0tbiA+IDApIHtcbiAgICAgICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG4gPD0gMSkge1xuICAgICAgICAgIGZ1bmMgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgYHRoaXNBcmdgXG4gICAgICogYW5kIGBwYXJ0aWFsc2AgcHJlcGVuZGVkIHRvIHRoZSBhcmd1bWVudHMgaXQgcmVjZWl2ZXMuXG4gICAgICpcbiAgICAgKiBUaGUgYF8uYmluZC5wbGFjZWhvbGRlcmAgdmFsdWUsIHdoaWNoIGRlZmF1bHRzIHRvIGBfYCBpbiBtb25vbGl0aGljIGJ1aWxkcyxcbiAgICAgKiBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVW5saWtlIG5hdGl2ZSBgRnVuY3Rpb24jYmluZGAsIHRoaXMgbWV0aG9kIGRvZXNuJ3Qgc2V0IHRoZSBcImxlbmd0aFwiXG4gICAgICogcHJvcGVydHkgb2YgYm91bmQgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYmluZC5cbiAgICAgKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAgICAgKiBAcGFyYW0gey4uLip9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBiZSBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBib3VuZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gZ3JlZXQoZ3JlZXRpbmcsIHB1bmN0dWF0aW9uKSB7XG4gICAgICogICByZXR1cm4gZ3JlZXRpbmcgKyAnICcgKyB0aGlzLnVzZXIgKyBwdW5jdHVhdGlvbjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAndXNlcic6ICdmcmVkJyB9O1xuICAgICAqXG4gICAgICogdmFyIGJvdW5kID0gXy5iaW5kKGdyZWV0LCBvYmplY3QsICdoaScpO1xuICAgICAqIGJvdW5kKCchJyk7XG4gICAgICogLy8gPT4gJ2hpIGZyZWQhJ1xuICAgICAqXG4gICAgICogLy8gQm91bmQgd2l0aCBwbGFjZWhvbGRlcnMuXG4gICAgICogdmFyIGJvdW5kID0gXy5iaW5kKGdyZWV0LCBvYmplY3QsIF8sICchJyk7XG4gICAgICogYm91bmQoJ2hpJyk7XG4gICAgICogLy8gPT4gJ2hpIGZyZWQhJ1xuICAgICAqL1xuICAgIHZhciBiaW5kID0gYmFzZVJlc3QoZnVuY3Rpb24oZnVuYywgdGhpc0FyZywgcGFydGlhbHMpIHtcbiAgICAgIHZhciBiaXRtYXNrID0gV1JBUF9CSU5EX0ZMQUc7XG4gICAgICBpZiAocGFydGlhbHMubGVuZ3RoKSB7XG4gICAgICAgIHZhciBob2xkZXJzID0gcmVwbGFjZUhvbGRlcnMocGFydGlhbHMsIGdldEhvbGRlcihiaW5kKSk7XG4gICAgICAgIGJpdG1hc2sgfD0gV1JBUF9QQVJUSUFMX0ZMQUc7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBwYXJ0aWFscywgaG9sZGVycyk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIHRoZSBtZXRob2QgYXQgYG9iamVjdFtrZXldYCB3aXRoIGBwYXJ0aWFsc2BcbiAgICAgKiBwcmVwZW5kZWQgdG8gdGhlIGFyZ3VtZW50cyBpdCByZWNlaXZlcy5cbiAgICAgKlxuICAgICAqIFRoaXMgbWV0aG9kIGRpZmZlcnMgZnJvbSBgXy5iaW5kYCBieSBhbGxvd2luZyBib3VuZCBmdW5jdGlvbnMgdG8gcmVmZXJlbmNlXG4gICAgICogbWV0aG9kcyB0aGF0IG1heSBiZSByZWRlZmluZWQgb3IgZG9uJ3QgeWV0IGV4aXN0LiBTZWVcbiAgICAgKiBbUGV0ZXIgTWljaGF1eCdzIGFydGljbGVdKGh0dHA6Ly9wZXRlci5taWNoYXV4LmNhL2FydGljbGVzL2xhenktZnVuY3Rpb24tZGVmaW5pdGlvbi1wYXR0ZXJuKVxuICAgICAqIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICpcbiAgICAgKiBUaGUgYF8uYmluZEtleS5wbGFjZWhvbGRlcmAgdmFsdWUsIHdoaWNoIGRlZmF1bHRzIHRvIGBfYCBpbiBtb25vbGl0aGljXG4gICAgICogYnVpbGRzLCBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xMC4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGludm9rZSB0aGUgbWV0aG9kIG9uLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgbWV0aG9kLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW3BhcnRpYWxzXSBUaGUgYXJndW1lbnRzIHRvIGJlIHBhcnRpYWxseSBhcHBsaWVkLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGJvdW5kIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0ge1xuICAgICAqICAgJ3VzZXInOiAnZnJlZCcsXG4gICAgICogICAnZ3JlZXQnOiBmdW5jdGlvbihncmVldGluZywgcHVuY3R1YXRpb24pIHtcbiAgICAgKiAgICAgcmV0dXJuIGdyZWV0aW5nICsgJyAnICsgdGhpcy51c2VyICsgcHVuY3R1YXRpb247XG4gICAgICogICB9XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHZhciBib3VuZCA9IF8uYmluZEtleShvYmplY3QsICdncmVldCcsICdoaScpO1xuICAgICAqIGJvdW5kKCchJyk7XG4gICAgICogLy8gPT4gJ2hpIGZyZWQhJ1xuICAgICAqXG4gICAgICogb2JqZWN0LmdyZWV0ID0gZnVuY3Rpb24oZ3JlZXRpbmcsIHB1bmN0dWF0aW9uKSB7XG4gICAgICogICByZXR1cm4gZ3JlZXRpbmcgKyAneWEgJyArIHRoaXMudXNlciArIHB1bmN0dWF0aW9uO1xuICAgICAqIH07XG4gICAgICpcbiAgICAgKiBib3VuZCgnIScpO1xuICAgICAqIC8vID0+ICdoaXlhIGZyZWQhJ1xuICAgICAqXG4gICAgICogLy8gQm91bmQgd2l0aCBwbGFjZWhvbGRlcnMuXG4gICAgICogdmFyIGJvdW5kID0gXy5iaW5kS2V5KG9iamVjdCwgJ2dyZWV0JywgXywgJyEnKTtcbiAgICAgKiBib3VuZCgnaGknKTtcbiAgICAgKiAvLyA9PiAnaGl5YSBmcmVkISdcbiAgICAgKi9cbiAgICB2YXIgYmluZEtleSA9IGJhc2VSZXN0KGZ1bmN0aW9uKG9iamVjdCwga2V5LCBwYXJ0aWFscykge1xuICAgICAgdmFyIGJpdG1hc2sgPSBXUkFQX0JJTkRfRkxBRyB8IFdSQVBfQklORF9LRVlfRkxBRztcbiAgICAgIGlmIChwYXJ0aWFscy5sZW5ndGgpIHtcbiAgICAgICAgdmFyIGhvbGRlcnMgPSByZXBsYWNlSG9sZGVycyhwYXJ0aWFscywgZ2V0SG9sZGVyKGJpbmRLZXkpKTtcbiAgICAgICAgYml0bWFzayB8PSBXUkFQX1BBUlRJQUxfRkxBRztcbiAgICAgIH1cbiAgICAgIHJldHVybiBjcmVhdGVXcmFwKGtleSwgYml0bWFzaywgb2JqZWN0LCBwYXJ0aWFscywgaG9sZGVycyk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIGFyZ3VtZW50cyBvZiBgZnVuY2AgYW5kIGVpdGhlciBpbnZva2VzXG4gICAgICogYGZ1bmNgIHJldHVybmluZyBpdHMgcmVzdWx0LCBpZiBhdCBsZWFzdCBgYXJpdHlgIG51bWJlciBvZiBhcmd1bWVudHMgaGF2ZVxuICAgICAqIGJlZW4gcHJvdmlkZWQsIG9yIHJldHVybnMgYSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdGhlIHJlbWFpbmluZyBgZnVuY2BcbiAgICAgKiBhcmd1bWVudHMsIGFuZCBzbyBvbi4gVGhlIGFyaXR5IG9mIGBmdW5jYCBtYXkgYmUgc3BlY2lmaWVkIGlmIGBmdW5jLmxlbmd0aGBcbiAgICAgKiBpcyBub3Qgc3VmZmljaWVudC5cbiAgICAgKlxuICAgICAqIFRoZSBgXy5jdXJyeS5wbGFjZWhvbGRlcmAgdmFsdWUsIHdoaWNoIGRlZmF1bHRzIHRvIGBfYCBpbiBtb25vbGl0aGljIGJ1aWxkcyxcbiAgICAgKiBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwcm92aWRlZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgZG9lc24ndCBzZXQgdGhlIFwibGVuZ3RoXCIgcHJvcGVydHkgb2YgY3VycmllZCBmdW5jdGlvbnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjdXJyeS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FyaXR5PWZ1bmMubGVuZ3RoXSBUaGUgYXJpdHkgb2YgYGZ1bmNgLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY3VycmllZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFiYyA9IGZ1bmN0aW9uKGEsIGIsIGMpIHtcbiAgICAgKiAgIHJldHVybiBbYSwgYiwgY107XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHZhciBjdXJyaWVkID0gXy5jdXJyeShhYmMpO1xuICAgICAqXG4gICAgICogY3VycmllZCgxKSgyKSgzKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIGN1cnJpZWQoMSwgMikoMyk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICpcbiAgICAgKiBjdXJyaWVkKDEsIDIsIDMpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogLy8gQ3VycmllZCB3aXRoIHBsYWNlaG9sZGVycy5cbiAgICAgKiBjdXJyaWVkKDEpKF8sIDMpKDIpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGN1cnJ5KGZ1bmMsIGFyaXR5LCBndWFyZCkge1xuICAgICAgYXJpdHkgPSBndWFyZCA/IHVuZGVmaW5lZCA6IGFyaXR5O1xuICAgICAgdmFyIHJlc3VsdCA9IGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9DVVJSWV9GTEFHLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgYXJpdHkpO1xuICAgICAgcmVzdWx0LnBsYWNlaG9sZGVyID0gY3VycnkucGxhY2Vob2xkZXI7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uY3VycnlgIGV4Y2VwdCB0aGF0IGFyZ3VtZW50cyBhcmUgYXBwbGllZCB0byBgZnVuY2BcbiAgICAgKiBpbiB0aGUgbWFubmVyIG9mIGBfLnBhcnRpYWxSaWdodGAgaW5zdGVhZCBvZiBgXy5wYXJ0aWFsYC5cbiAgICAgKlxuICAgICAqIFRoZSBgXy5jdXJyeVJpZ2h0LnBsYWNlaG9sZGVyYCB2YWx1ZSwgd2hpY2ggZGVmYXVsdHMgdG8gYF9gIGluIG1vbm9saXRoaWNcbiAgICAgKiBidWlsZHMsIG1heSBiZSB1c2VkIGFzIGEgcGxhY2Vob2xkZXIgZm9yIHByb3ZpZGVkIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBkb2Vzbid0IHNldCB0aGUgXCJsZW5ndGhcIiBwcm9wZXJ0eSBvZiBjdXJyaWVkIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGN1cnJ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYXJpdHk9ZnVuYy5sZW5ndGhdIFRoZSBhcml0eSBvZiBgZnVuY2AuXG4gICAgICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjdXJyaWVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgYWJjID0gZnVuY3Rpb24oYSwgYiwgYykge1xuICAgICAqICAgcmV0dXJuIFthLCBiLCBjXTtcbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogdmFyIGN1cnJpZWQgPSBfLmN1cnJ5UmlnaHQoYWJjKTtcbiAgICAgKlxuICAgICAqIGN1cnJpZWQoMykoMikoMSk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdXG4gICAgICpcbiAgICAgKiBjdXJyaWVkKDIsIDMpKDEpO1xuICAgICAqIC8vID0+IFsxLCAyLCAzXVxuICAgICAqXG4gICAgICogY3VycmllZCgxLCAyLCAzKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKlxuICAgICAqIC8vIEN1cnJpZWQgd2l0aCBwbGFjZWhvbGRlcnMuXG4gICAgICogY3VycmllZCgzKSgxLCBfKSgyKTtcbiAgICAgKiAvLyA9PiBbMSwgMiwgM11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjdXJyeVJpZ2h0KGZ1bmMsIGFyaXR5LCBndWFyZCkge1xuICAgICAgYXJpdHkgPSBndWFyZCA/IHVuZGVmaW5lZCA6IGFyaXR5O1xuICAgICAgdmFyIHJlc3VsdCA9IGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9DVVJSWV9SSUdIVF9GTEFHLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgYXJpdHkpO1xuICAgICAgcmVzdWx0LnBsYWNlaG9sZGVyID0gY3VycnlSaWdodC5wbGFjZWhvbGRlcjtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGRlYm91bmNlZCBmdW5jdGlvbiB0aGF0IGRlbGF5cyBpbnZva2luZyBgZnVuY2AgdW50aWwgYWZ0ZXIgYHdhaXRgXG4gICAgICogbWlsbGlzZWNvbmRzIGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCB0aW1lIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gd2FzXG4gICAgICogaW52b2tlZC4gVGhlIGRlYm91bmNlZCBmdW5jdGlvbiBjb21lcyB3aXRoIGEgYGNhbmNlbGAgbWV0aG9kIHRvIGNhbmNlbFxuICAgICAqIGRlbGF5ZWQgYGZ1bmNgIGludm9jYXRpb25zIGFuZCBhIGBmbHVzaGAgbWV0aG9kIHRvIGltbWVkaWF0ZWx5IGludm9rZSB0aGVtLlxuICAgICAqIFByb3ZpZGUgYG9wdGlvbnNgIHRvIGluZGljYXRlIHdoZXRoZXIgYGZ1bmNgIHNob3VsZCBiZSBpbnZva2VkIG9uIHRoZVxuICAgICAqIGxlYWRpbmcgYW5kL29yIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIGB3YWl0YCB0aW1lb3V0LiBUaGUgYGZ1bmNgIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHRoZSBsYXN0IGFyZ3VtZW50cyBwcm92aWRlZCB0byB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uLiBTdWJzZXF1ZW50XG4gICAgICogY2FsbHMgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbiByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBgZnVuY2BcbiAgICAgKiBpbnZvY2F0aW9uLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIElmIGBsZWFkaW5nYCBhbmQgYHRyYWlsaW5nYCBvcHRpb25zIGFyZSBgdHJ1ZWAsIGBmdW5jYCBpc1xuICAgICAqIGludm9rZWQgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQgb25seSBpZiB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uXG4gICAgICogaXMgaW52b2tlZCBtb3JlIHRoYW4gb25jZSBkdXJpbmcgdGhlIGB3YWl0YCB0aW1lb3V0LlxuICAgICAqXG4gICAgICogSWYgYHdhaXRgIGlzIGAwYCBhbmQgYGxlYWRpbmdgIGlzIGBmYWxzZWAsIGBmdW5jYCBpbnZvY2F0aW9uIGlzIGRlZmVycmVkXG4gICAgICogdW50aWwgdG8gdGhlIG5leHQgdGljaywgc2ltaWxhciB0byBgc2V0VGltZW91dGAgd2l0aCBhIHRpbWVvdXQgb2YgYDBgLlxuICAgICAqXG4gICAgICogU2VlIFtEYXZpZCBDb3JiYWNobydzIGFydGljbGVdKGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vZGVib3VuY2luZy10aHJvdHRsaW5nLWV4cGxhaW5lZC1leGFtcGxlcy8pXG4gICAgICogZm9yIGRldGFpbHMgb3ZlciB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBgXy5kZWJvdW5jZWAgYW5kIGBfLnRocm90dGxlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRlYm91bmNlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbd2FpdD0wXSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheS5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlYWRpbmc9ZmFsc2VdXG4gICAgICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIGxlYWRpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4V2FpdF1cbiAgICAgKiAgVGhlIG1heGltdW0gdGltZSBgZnVuY2AgaXMgYWxsb3dlZCB0byBiZSBkZWxheWVkIGJlZm9yZSBpdCdzIGludm9rZWQuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy50cmFpbGluZz10cnVlXVxuICAgICAqICBTcGVjaWZ5IGludm9raW5nIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGRlYm91bmNlZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gQXZvaWQgY29zdGx5IGNhbGN1bGF0aW9ucyB3aGlsZSB0aGUgd2luZG93IHNpemUgaXMgaW4gZmx1eC5cbiAgICAgKiBqUXVlcnkod2luZG93KS5vbigncmVzaXplJywgXy5kZWJvdW5jZShjYWxjdWxhdGVMYXlvdXQsIDE1MCkpO1xuICAgICAqXG4gICAgICogLy8gSW52b2tlIGBzZW5kTWFpbGAgd2hlbiBjbGlja2VkLCBkZWJvdW5jaW5nIHN1YnNlcXVlbnQgY2FsbHMuXG4gICAgICogalF1ZXJ5KGVsZW1lbnQpLm9uKCdjbGljaycsIF8uZGVib3VuY2Uoc2VuZE1haWwsIDMwMCwge1xuICAgICAqICAgJ2xlYWRpbmcnOiB0cnVlLFxuICAgICAqICAgJ3RyYWlsaW5nJzogZmFsc2VcbiAgICAgKiB9KSk7XG4gICAgICpcbiAgICAgKiAvLyBFbnN1cmUgYGJhdGNoTG9nYCBpcyBpbnZva2VkIG9uY2UgYWZ0ZXIgMSBzZWNvbmQgb2YgZGVib3VuY2VkIGNhbGxzLlxuICAgICAqIHZhciBkZWJvdW5jZWQgPSBfLmRlYm91bmNlKGJhdGNoTG9nLCAyNTAsIHsgJ21heFdhaXQnOiAxMDAwIH0pO1xuICAgICAqIHZhciBzb3VyY2UgPSBuZXcgRXZlbnRTb3VyY2UoJy9zdHJlYW0nKTtcbiAgICAgKiBqUXVlcnkoc291cmNlKS5vbignbWVzc2FnZScsIGRlYm91bmNlZCk7XG4gICAgICpcbiAgICAgKiAvLyBDYW5jZWwgdGhlIHRyYWlsaW5nIGRlYm91bmNlZCBpbnZvY2F0aW9uLlxuICAgICAqIGpRdWVyeSh3aW5kb3cpLm9uKCdwb3BzdGF0ZScsIGRlYm91bmNlZC5jYW5jZWwpO1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRlYm91bmNlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBsYXN0QXJncyxcbiAgICAgICAgICBsYXN0VGhpcyxcbiAgICAgICAgICBtYXhXYWl0LFxuICAgICAgICAgIHJlc3VsdCxcbiAgICAgICAgICB0aW1lcklkLFxuICAgICAgICAgIGxhc3RDYWxsVGltZSxcbiAgICAgICAgICBsYXN0SW52b2tlVGltZSA9IDAsXG4gICAgICAgICAgbGVhZGluZyA9IGZhbHNlLFxuICAgICAgICAgIG1heGluZyA9IGZhbHNlLFxuICAgICAgICAgIHRyYWlsaW5nID0gdHJ1ZTtcblxuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgfVxuICAgICAgd2FpdCA9IHRvTnVtYmVyKHdhaXQpIHx8IDA7XG4gICAgICBpZiAoaXNPYmplY3Qob3B0aW9ucykpIHtcbiAgICAgICAgbGVhZGluZyA9ICEhb3B0aW9ucy5sZWFkaW5nO1xuICAgICAgICBtYXhpbmcgPSAnbWF4V2FpdCcgaW4gb3B0aW9ucztcbiAgICAgICAgbWF4V2FpdCA9IG1heGluZyA/IG5hdGl2ZU1heCh0b051bWJlcihvcHRpb25zLm1heFdhaXQpIHx8IDAsIHdhaXQpIDogbWF4V2FpdDtcbiAgICAgICAgdHJhaWxpbmcgPSAndHJhaWxpbmcnIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMudHJhaWxpbmcgOiB0cmFpbGluZztcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gaW52b2tlRnVuYyh0aW1lKSB7XG4gICAgICAgIHZhciBhcmdzID0gbGFzdEFyZ3MsXG4gICAgICAgICAgICB0aGlzQXJnID0gbGFzdFRoaXM7XG5cbiAgICAgICAgbGFzdEFyZ3MgPSBsYXN0VGhpcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgbGFzdEludm9rZVRpbWUgPSB0aW1lO1xuICAgICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBsZWFkaW5nRWRnZSh0aW1lKSB7XG4gICAgICAgIC8vIFJlc2V0IGFueSBgbWF4V2FpdGAgdGltZXIuXG4gICAgICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICAgICAgLy8gU3RhcnQgdGhlIHRpbWVyIGZvciB0aGUgdHJhaWxpbmcgZWRnZS5cbiAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAgICAgLy8gSW52b2tlIHRoZSBsZWFkaW5nIGVkZ2UuXG4gICAgICAgIHJldHVybiBsZWFkaW5nID8gaW52b2tlRnVuYyh0aW1lKSA6IHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gcmVtYWluaW5nV2FpdCh0aW1lKSB7XG4gICAgICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgICAgICB0aW1lU2luY2VMYXN0SW52b2tlID0gdGltZSAtIGxhc3RJbnZva2VUaW1lLFxuICAgICAgICAgICAgdGltZVdhaXRpbmcgPSB3YWl0IC0gdGltZVNpbmNlTGFzdENhbGw7XG5cbiAgICAgICAgcmV0dXJuIG1heGluZ1xuICAgICAgICAgID8gbmF0aXZlTWluKHRpbWVXYWl0aW5nLCBtYXhXYWl0IC0gdGltZVNpbmNlTGFzdEludm9rZSlcbiAgICAgICAgICA6IHRpbWVXYWl0aW5nO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBzaG91bGRJbnZva2UodGltZSkge1xuICAgICAgICB2YXIgdGltZVNpbmNlTGFzdENhbGwgPSB0aW1lIC0gbGFzdENhbGxUaW1lLFxuICAgICAgICAgICAgdGltZVNpbmNlTGFzdEludm9rZSA9IHRpbWUgLSBsYXN0SW52b2tlVGltZTtcblxuICAgICAgICAvLyBFaXRoZXIgdGhpcyBpcyB0aGUgZmlyc3QgY2FsbCwgYWN0aXZpdHkgaGFzIHN0b3BwZWQgYW5kIHdlJ3JlIGF0IHRoZVxuICAgICAgICAvLyB0cmFpbGluZyBlZGdlLCB0aGUgc3lzdGVtIHRpbWUgaGFzIGdvbmUgYmFja3dhcmRzIGFuZCB3ZSdyZSB0cmVhdGluZ1xuICAgICAgICAvLyBpdCBhcyB0aGUgdHJhaWxpbmcgZWRnZSwgb3Igd2UndmUgaGl0IHRoZSBgbWF4V2FpdGAgbGltaXQuXG4gICAgICAgIHJldHVybiAobGFzdENhbGxUaW1lID09PSB1bmRlZmluZWQgfHwgKHRpbWVTaW5jZUxhc3RDYWxsID49IHdhaXQpIHx8XG4gICAgICAgICAgKHRpbWVTaW5jZUxhc3RDYWxsIDwgMCkgfHwgKG1heGluZyAmJiB0aW1lU2luY2VMYXN0SW52b2tlID49IG1heFdhaXQpKTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gdGltZXJFeHBpcmVkKCkge1xuICAgICAgICB2YXIgdGltZSA9IG5vdygpO1xuICAgICAgICBpZiAoc2hvdWxkSW52b2tlKHRpbWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRyYWlsaW5nRWRnZSh0aW1lKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBSZXN0YXJ0IHRoZSB0aW1lci5cbiAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCByZW1haW5pbmdXYWl0KHRpbWUpKTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gdHJhaWxpbmdFZGdlKHRpbWUpIHtcbiAgICAgICAgdGltZXJJZCA9IHVuZGVmaW5lZDtcblxuICAgICAgICAvLyBPbmx5IGludm9rZSBpZiB3ZSBoYXZlIGBsYXN0QXJnc2Agd2hpY2ggbWVhbnMgYGZ1bmNgIGhhcyBiZWVuXG4gICAgICAgIC8vIGRlYm91bmNlZCBhdCBsZWFzdCBvbmNlLlxuICAgICAgICBpZiAodHJhaWxpbmcgJiYgbGFzdEFyZ3MpIHtcbiAgICAgICAgICByZXR1cm4gaW52b2tlRnVuYyh0aW1lKTtcbiAgICAgICAgfVxuICAgICAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBjYW5jZWwoKSB7XG4gICAgICAgIGlmICh0aW1lcklkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXJJZCk7XG4gICAgICAgIH1cbiAgICAgICAgbGFzdEludm9rZVRpbWUgPSAwO1xuICAgICAgICBsYXN0QXJncyA9IGxhc3RDYWxsVGltZSA9IGxhc3RUaGlzID0gdGltZXJJZCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gZmx1c2goKSB7XG4gICAgICAgIHJldHVybiB0aW1lcklkID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiB0cmFpbGluZ0VkZ2Uobm93KCkpO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBkZWJvdW5jZWQoKSB7XG4gICAgICAgIHZhciB0aW1lID0gbm93KCksXG4gICAgICAgICAgICBpc0ludm9raW5nID0gc2hvdWxkSW52b2tlKHRpbWUpO1xuXG4gICAgICAgIGxhc3RBcmdzID0gYXJndW1lbnRzO1xuICAgICAgICBsYXN0VGhpcyA9IHRoaXM7XG4gICAgICAgIGxhc3RDYWxsVGltZSA9IHRpbWU7XG5cbiAgICAgICAgaWYgKGlzSW52b2tpbmcpIHtcbiAgICAgICAgICBpZiAodGltZXJJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gbGVhZGluZ0VkZ2UobGFzdENhbGxUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKG1heGluZykge1xuICAgICAgICAgICAgLy8gSGFuZGxlIGludm9jYXRpb25zIGluIGEgdGlnaHQgbG9vcC5cbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcklkKTtcbiAgICAgICAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XG4gICAgICAgICAgICByZXR1cm4gaW52b2tlRnVuYyhsYXN0Q2FsbFRpbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGltZXJJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgZGVib3VuY2VkLmNhbmNlbCA9IGNhbmNlbDtcbiAgICAgIGRlYm91bmNlZC5mbHVzaCA9IGZsdXNoO1xuICAgICAgcmV0dXJuIGRlYm91bmNlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZlcnMgaW52b2tpbmcgdGhlIGBmdW5jYCB1bnRpbCB0aGUgY3VycmVudCBjYWxsIHN0YWNrIGhhcyBjbGVhcmVkLiBBbnlcbiAgICAgKiBhZGRpdGlvbmFsIGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQgdG8gYGZ1bmNgIHdoZW4gaXQncyBpbnZva2VkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gZGVmZXIuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgYGZ1bmNgIHdpdGguXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgdGltZXIgaWQuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGVmZXIoZnVuY3Rpb24odGV4dCkge1xuICAgICAqICAgY29uc29sZS5sb2codGV4dCk7XG4gICAgICogfSwgJ2RlZmVycmVkJyk7XG4gICAgICogLy8gPT4gTG9ncyAnZGVmZXJyZWQnIGFmdGVyIG9uZSBtaWxsaXNlY29uZC5cbiAgICAgKi9cbiAgICB2YXIgZGVmZXIgPSBiYXNlUmVzdChmdW5jdGlvbihmdW5jLCBhcmdzKSB7XG4gICAgICByZXR1cm4gYmFzZURlbGF5KGZ1bmMsIDEsIGFyZ3MpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogSW52b2tlcyBgZnVuY2AgYWZ0ZXIgYHdhaXRgIG1pbGxpc2Vjb25kcy4gQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIGFyZVxuICAgICAqIHByb3ZpZGVkIHRvIGBmdW5jYCB3aGVuIGl0J3MgaW52b2tlZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRlbGF5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3YWl0IFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIGRlbGF5IGludm9jYXRpb24uXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgYGZ1bmNgIHdpdGguXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgdGltZXIgaWQuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGVsYXkoZnVuY3Rpb24odGV4dCkge1xuICAgICAqICAgY29uc29sZS5sb2codGV4dCk7XG4gICAgICogfSwgMTAwMCwgJ2xhdGVyJyk7XG4gICAgICogLy8gPT4gTG9ncyAnbGF0ZXInIGFmdGVyIG9uZSBzZWNvbmQuXG4gICAgICovXG4gICAgdmFyIGRlbGF5ID0gYmFzZVJlc3QoZnVuY3Rpb24oZnVuYywgd2FpdCwgYXJncykge1xuICAgICAgcmV0dXJuIGJhc2VEZWxheShmdW5jLCB0b051bWJlcih3YWl0KSB8fCAwLCBhcmdzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggYXJndW1lbnRzIHJldmVyc2VkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gZmxpcCBhcmd1bWVudHMgZm9yLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZsaXBwZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBmbGlwcGVkID0gXy5mbGlwKGZ1bmN0aW9uKCkge1xuICAgICAqICAgcmV0dXJuIF8udG9BcnJheShhcmd1bWVudHMpO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogZmxpcHBlZCgnYScsICdiJywgJ2MnLCAnZCcpO1xuICAgICAqIC8vID0+IFsnZCcsICdjJywgJ2InLCAnYSddXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmxpcChmdW5jKSB7XG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChmdW5jLCBXUkFQX0ZMSVBfRkxBRyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgbWVtb2l6ZXMgdGhlIHJlc3VsdCBvZiBgZnVuY2AuIElmIGByZXNvbHZlcmAgaXNcbiAgICAgKiBwcm92aWRlZCwgaXQgZGV0ZXJtaW5lcyB0aGUgY2FjaGUga2V5IGZvciBzdG9yaW5nIHRoZSByZXN1bHQgYmFzZWQgb24gdGhlXG4gICAgICogYXJndW1lbnRzIHByb3ZpZGVkIHRvIHRoZSBtZW1vaXplZCBmdW5jdGlvbi4gQnkgZGVmYXVsdCwgdGhlIGZpcnN0IGFyZ3VtZW50XG4gICAgICogcHJvdmlkZWQgdG8gdGhlIG1lbW9pemVkIGZ1bmN0aW9uIGlzIHVzZWQgYXMgdGhlIG1hcCBjYWNoZSBrZXkuIFRoZSBgZnVuY2BcbiAgICAgKiBpcyBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZSBtZW1vaXplZCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGUgY2FjaGUgaXMgZXhwb3NlZCBhcyB0aGUgYGNhY2hlYCBwcm9wZXJ0eSBvbiB0aGUgbWVtb2l6ZWRcbiAgICAgKiBmdW5jdGlvbi4gSXRzIGNyZWF0aW9uIG1heSBiZSBjdXN0b21pemVkIGJ5IHJlcGxhY2luZyB0aGUgYF8ubWVtb2l6ZS5DYWNoZWBcbiAgICAgKiBjb25zdHJ1Y3RvciB3aXRoIG9uZSB3aG9zZSBpbnN0YW5jZXMgaW1wbGVtZW50IHRoZVxuICAgICAqIFtgTWFwYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtcHJvcGVydGllcy1vZi10aGUtbWFwLXByb3RvdHlwZS1vYmplY3QpXG4gICAgICogbWV0aG9kIGludGVyZmFjZSBvZiBgY2xlYXJgLCBgZGVsZXRlYCwgYGdldGAsIGBoYXNgLCBhbmQgYHNldGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBoYXZlIGl0cyBvdXRwdXQgbWVtb2l6ZWQuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3Jlc29sdmVyXSBUaGUgZnVuY3Rpb24gdG8gcmVzb2x2ZSB0aGUgY2FjaGUga2V5LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG1lbW9pemVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogMiB9O1xuICAgICAqIHZhciBvdGhlciA9IHsgJ2MnOiAzLCAnZCc6IDQgfTtcbiAgICAgKlxuICAgICAqIHZhciB2YWx1ZXMgPSBfLm1lbW9pemUoXy52YWx1ZXMpO1xuICAgICAqIHZhbHVlcyhvYmplY3QpO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqXG4gICAgICogdmFsdWVzKG90aGVyKTtcbiAgICAgKiAvLyA9PiBbMywgNF1cbiAgICAgKlxuICAgICAqIG9iamVjdC5hID0gMjtcbiAgICAgKiB2YWx1ZXMob2JqZWN0KTtcbiAgICAgKiAvLyA9PiBbMSwgMl1cbiAgICAgKlxuICAgICAqIC8vIE1vZGlmeSB0aGUgcmVzdWx0IGNhY2hlLlxuICAgICAqIHZhbHVlcy5jYWNoZS5zZXQob2JqZWN0LCBbJ2EnLCAnYiddKTtcbiAgICAgKiB2YWx1ZXMob2JqZWN0KTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYiddXG4gICAgICpcbiAgICAgKiAvLyBSZXBsYWNlIGBfLm1lbW9pemUuQ2FjaGVgLlxuICAgICAqIF8ubWVtb2l6ZS5DYWNoZSA9IFdlYWtNYXA7XG4gICAgICovXG4gICAgZnVuY3Rpb24gbWVtb2l6ZShmdW5jLCByZXNvbHZlcikge1xuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicgfHwgKHJlc29sdmVyICE9IG51bGwgJiYgdHlwZW9mIHJlc29sdmVyICE9ICdmdW5jdGlvbicpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIHZhciBtZW1vaXplZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgICAgICAgIGtleSA9IHJlc29sdmVyID8gcmVzb2x2ZXIuYXBwbHkodGhpcywgYXJncykgOiBhcmdzWzBdLFxuICAgICAgICAgICAgY2FjaGUgPSBtZW1vaXplZC5jYWNoZTtcblxuICAgICAgICBpZiAoY2FjaGUuaGFzKGtleSkpIHtcbiAgICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJlc3VsdCA9IGZ1bmMuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgIG1lbW9pemVkLmNhY2hlID0gY2FjaGUuc2V0KGtleSwgcmVzdWx0KSB8fCBjYWNoZTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG4gICAgICBtZW1vaXplZC5jYWNoZSA9IG5ldyAobWVtb2l6ZS5DYWNoZSB8fCBNYXBDYWNoZSk7XG4gICAgICByZXR1cm4gbWVtb2l6ZWQ7XG4gICAgfVxuXG4gICAgLy8gRXhwb3NlIGBNYXBDYWNoZWAuXG4gICAgbWVtb2l6ZS5DYWNoZSA9IE1hcENhY2hlO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgbmVnYXRlcyB0aGUgcmVzdWx0IG9mIHRoZSBwcmVkaWNhdGUgYGZ1bmNgLiBUaGVcbiAgICAgKiBgZnVuY2AgcHJlZGljYXRlIGlzIGludm9rZWQgd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgYW5kIGFyZ3VtZW50cyBvZiB0aGVcbiAgICAgKiBjcmVhdGVkIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBwcmVkaWNhdGUgdG8gbmVnYXRlLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG5lZ2F0ZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGlzRXZlbihuKSB7XG4gICAgICogICByZXR1cm4gbiAlIDIgPT0gMDtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBfLmZpbHRlcihbMSwgMiwgMywgNCwgNSwgNl0sIF8ubmVnYXRlKGlzRXZlbikpO1xuICAgICAqIC8vID0+IFsxLCAzLCA1XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG5lZ2F0ZShwcmVkaWNhdGUpIHtcbiAgICAgIGlmICh0eXBlb2YgcHJlZGljYXRlICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xuICAgICAgICAgIGNhc2UgMDogcmV0dXJuICFwcmVkaWNhdGUuY2FsbCh0aGlzKTtcbiAgICAgICAgICBjYXNlIDE6IHJldHVybiAhcHJlZGljYXRlLmNhbGwodGhpcywgYXJnc1swXSk7XG4gICAgICAgICAgY2FzZSAyOiByZXR1cm4gIXByZWRpY2F0ZS5jYWxsKHRoaXMsIGFyZ3NbMF0sIGFyZ3NbMV0pO1xuICAgICAgICAgIGNhc2UgMzogcmV0dXJuICFwcmVkaWNhdGUuY2FsbCh0aGlzLCBhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gIXByZWRpY2F0ZS5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaXMgcmVzdHJpY3RlZCB0byBpbnZva2luZyBgZnVuY2Agb25jZS4gUmVwZWF0IGNhbGxzXG4gICAgICogdG8gdGhlIGZ1bmN0aW9uIHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGludm9jYXRpb24uIFRoZSBgZnVuY2AgaXNcbiAgICAgKiBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIGFuZCBhcmd1bWVudHMgb2YgdGhlIGNyZWF0ZWQgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byByZXN0cmljdC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyByZXN0cmljdGVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgaW5pdGlhbGl6ZSA9IF8ub25jZShjcmVhdGVBcHBsaWNhdGlvbik7XG4gICAgICogaW5pdGlhbGl6ZSgpO1xuICAgICAqIGluaXRpYWxpemUoKTtcbiAgICAgKiAvLyA9PiBgY3JlYXRlQXBwbGljYXRpb25gIGlzIGludm9rZWQgb25jZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG9uY2UoZnVuYykge1xuICAgICAgcmV0dXJuIGJlZm9yZSgyLCBmdW5jKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIGl0cyBhcmd1bWVudHMgdHJhbnNmb3JtZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB3cmFwLlxuICAgICAqIEBwYXJhbSB7Li4uKEZ1bmN0aW9ufEZ1bmN0aW9uW10pfSBbdHJhbnNmb3Jtcz1bXy5pZGVudGl0eV1dXG4gICAgICogIFRoZSBhcmd1bWVudCB0cmFuc2Zvcm1zLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBkb3VibGVkKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICogMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBzcXVhcmUobikge1xuICAgICAqICAgcmV0dXJuIG4gKiBuO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHZhciBmdW5jID0gXy5vdmVyQXJncyhmdW5jdGlvbih4LCB5KSB7XG4gICAgICogICByZXR1cm4gW3gsIHldO1xuICAgICAqIH0sIFtzcXVhcmUsIGRvdWJsZWRdKTtcbiAgICAgKlxuICAgICAqIGZ1bmMoOSwgMyk7XG4gICAgICogLy8gPT4gWzgxLCA2XVxuICAgICAqXG4gICAgICogZnVuYygxMCwgNSk7XG4gICAgICogLy8gPT4gWzEwMCwgMTBdXG4gICAgICovXG4gICAgdmFyIG92ZXJBcmdzID0gY2FzdFJlc3QoZnVuY3Rpb24oZnVuYywgdHJhbnNmb3Jtcykge1xuICAgICAgdHJhbnNmb3JtcyA9ICh0cmFuc2Zvcm1zLmxlbmd0aCA9PSAxICYmIGlzQXJyYXkodHJhbnNmb3Jtc1swXSkpXG4gICAgICAgID8gYXJyYXlNYXAodHJhbnNmb3Jtc1swXSwgYmFzZVVuYXJ5KGdldEl0ZXJhdGVlKCkpKVxuICAgICAgICA6IGFycmF5TWFwKGJhc2VGbGF0dGVuKHRyYW5zZm9ybXMsIDEpLCBiYXNlVW5hcnkoZ2V0SXRlcmF0ZWUoKSkpO1xuXG4gICAgICB2YXIgZnVuY3NMZW5ndGggPSB0cmFuc2Zvcm1zLmxlbmd0aDtcbiAgICAgIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihhcmdzKSB7XG4gICAgICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWluKGFyZ3MubGVuZ3RoLCBmdW5jc0xlbmd0aCk7XG5cbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICBhcmdzW2luZGV4XSA9IHRyYW5zZm9ybXNbaW5kZXhdLmNhbGwodGhpcywgYXJnc1tpbmRleF0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcHBseShmdW5jLCB0aGlzLCBhcmdzKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCBgcGFydGlhbHNgIHByZXBlbmRlZCB0byB0aGVcbiAgICAgKiBhcmd1bWVudHMgaXQgcmVjZWl2ZXMuIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uYmluZGAgZXhjZXB0IGl0IGRvZXMgKipub3QqKlxuICAgICAqIGFsdGVyIHRoZSBgdGhpc2AgYmluZGluZy5cbiAgICAgKlxuICAgICAqIFRoZSBgXy5wYXJ0aWFsLnBsYWNlaG9sZGVyYCB2YWx1ZSwgd2hpY2ggZGVmYXVsdHMgdG8gYF9gIGluIG1vbm9saXRoaWNcbiAgICAgKiBidWlsZHMsIG1heSBiZSB1c2VkIGFzIGEgcGxhY2Vob2xkZXIgZm9yIHBhcnRpYWxseSBhcHBsaWVkIGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBkb2Vzbid0IHNldCB0aGUgXCJsZW5ndGhcIiBwcm9wZXJ0eSBvZiBwYXJ0aWFsbHlcbiAgICAgKiBhcHBsaWVkIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjIuMFxuICAgICAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHBhcnRpYWxseSBhcHBseSBhcmd1bWVudHMgdG8uXG4gICAgICogQHBhcmFtIHsuLi4qfSBbcGFydGlhbHNdIFRoZSBhcmd1bWVudHMgdG8gYmUgcGFydGlhbGx5IGFwcGxpZWQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgcGFydGlhbGx5IGFwcGxpZWQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGdyZWV0KGdyZWV0aW5nLCBuYW1lKSB7XG4gICAgICogICByZXR1cm4gZ3JlZXRpbmcgKyAnICcgKyBuYW1lO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHZhciBzYXlIZWxsb1RvID0gXy5wYXJ0aWFsKGdyZWV0LCAnaGVsbG8nKTtcbiAgICAgKiBzYXlIZWxsb1RvKCdmcmVkJyk7XG4gICAgICogLy8gPT4gJ2hlbGxvIGZyZWQnXG4gICAgICpcbiAgICAgKiAvLyBQYXJ0aWFsbHkgYXBwbGllZCB3aXRoIHBsYWNlaG9sZGVycy5cbiAgICAgKiB2YXIgZ3JlZXRGcmVkID0gXy5wYXJ0aWFsKGdyZWV0LCBfLCAnZnJlZCcpO1xuICAgICAqIGdyZWV0RnJlZCgnaGknKTtcbiAgICAgKiAvLyA9PiAnaGkgZnJlZCdcbiAgICAgKi9cbiAgICB2YXIgcGFydGlhbCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIHBhcnRpYWxzKSB7XG4gICAgICB2YXIgaG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKHBhcnRpYWxzLCBnZXRIb2xkZXIocGFydGlhbCkpO1xuICAgICAgcmV0dXJuIGNyZWF0ZVdyYXAoZnVuYywgV1JBUF9QQVJUSUFMX0ZMQUcsIHVuZGVmaW5lZCwgcGFydGlhbHMsIGhvbGRlcnMpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5wYXJ0aWFsYCBleGNlcHQgdGhhdCBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHNcbiAgICAgKiBhcmUgYXBwZW5kZWQgdG8gdGhlIGFyZ3VtZW50cyBpdCByZWNlaXZlcy5cbiAgICAgKlxuICAgICAqIFRoZSBgXy5wYXJ0aWFsUmlnaHQucGxhY2Vob2xkZXJgIHZhbHVlLCB3aGljaCBkZWZhdWx0cyB0byBgX2AgaW4gbW9ub2xpdGhpY1xuICAgICAqIGJ1aWxkcywgbWF5IGJlIHVzZWQgYXMgYSBwbGFjZWhvbGRlciBmb3IgcGFydGlhbGx5IGFwcGxpZWQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGRvZXNuJ3Qgc2V0IHRoZSBcImxlbmd0aFwiIHByb3BlcnR5IG9mIHBhcnRpYWxseVxuICAgICAqIGFwcGxpZWQgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDEuMC4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcGFydGlhbGx5IGFwcGx5IGFyZ3VtZW50cyB0by5cbiAgICAgKiBAcGFyYW0gey4uLip9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBiZSBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBwYXJ0aWFsbHkgYXBwbGllZCBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gZ3JlZXQoZ3JlZXRpbmcsIG5hbWUpIHtcbiAgICAgKiAgIHJldHVybiBncmVldGluZyArICcgJyArIG5hbWU7XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIGdyZWV0RnJlZCA9IF8ucGFydGlhbFJpZ2h0KGdyZWV0LCAnZnJlZCcpO1xuICAgICAqIGdyZWV0RnJlZCgnaGknKTtcbiAgICAgKiAvLyA9PiAnaGkgZnJlZCdcbiAgICAgKlxuICAgICAqIC8vIFBhcnRpYWxseSBhcHBsaWVkIHdpdGggcGxhY2Vob2xkZXJzLlxuICAgICAqIHZhciBzYXlIZWxsb1RvID0gXy5wYXJ0aWFsUmlnaHQoZ3JlZXQsICdoZWxsbycsIF8pO1xuICAgICAqIHNheUhlbGxvVG8oJ2ZyZWQnKTtcbiAgICAgKiAvLyA9PiAnaGVsbG8gZnJlZCdcbiAgICAgKi9cbiAgICB2YXIgcGFydGlhbFJpZ2h0ID0gYmFzZVJlc3QoZnVuY3Rpb24oZnVuYywgcGFydGlhbHMpIHtcbiAgICAgIHZhciBob2xkZXJzID0gcmVwbGFjZUhvbGRlcnMocGFydGlhbHMsIGdldEhvbGRlcihwYXJ0aWFsUmlnaHQpKTtcbiAgICAgIHJldHVybiBjcmVhdGVXcmFwKGZ1bmMsIFdSQVBfUEFSVElBTF9SSUdIVF9GTEFHLCB1bmRlZmluZWQsIHBhcnRpYWxzLCBob2xkZXJzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggYXJndW1lbnRzIGFycmFuZ2VkIGFjY29yZGluZ1xuICAgICAqIHRvIHRoZSBzcGVjaWZpZWQgYGluZGV4ZXNgIHdoZXJlIHRoZSBhcmd1bWVudCB2YWx1ZSBhdCB0aGUgZmlyc3QgaW5kZXggaXNcbiAgICAgKiBwcm92aWRlZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQsIHRoZSBhcmd1bWVudCB2YWx1ZSBhdCB0aGUgc2Vjb25kIGluZGV4IGlzXG4gICAgICogcHJvdmlkZWQgYXMgdGhlIHNlY29uZCBhcmd1bWVudCwgYW5kIHNvIG9uLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVhcnJhbmdlIGFyZ3VtZW50cyBmb3IuXG4gICAgICogQHBhcmFtIHsuLi4obnVtYmVyfG51bWJlcltdKX0gaW5kZXhlcyBUaGUgYXJyYW5nZWQgYXJndW1lbnQgaW5kZXhlcy5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHJlYXJnZWQgPSBfLnJlYXJnKGZ1bmN0aW9uKGEsIGIsIGMpIHtcbiAgICAgKiAgIHJldHVybiBbYSwgYiwgY107XG4gICAgICogfSwgWzIsIDAsIDFdKTtcbiAgICAgKlxuICAgICAqIHJlYXJnZWQoJ2InLCAnYycsICdhJylcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYicsICdjJ11cbiAgICAgKi9cbiAgICB2YXIgcmVhcmcgPSBmbGF0UmVzdChmdW5jdGlvbihmdW5jLCBpbmRleGVzKSB7XG4gICAgICByZXR1cm4gY3JlYXRlV3JhcChmdW5jLCBXUkFQX1JFQVJHX0ZMQUcsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGluZGV4ZXMpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgdGhlXG4gICAgICogY3JlYXRlZCBmdW5jdGlvbiBhbmQgYXJndW1lbnRzIGZyb20gYHN0YXJ0YCBhbmQgYmV5b25kIHByb3ZpZGVkIGFzXG4gICAgICogYW4gYXJyYXkuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb24gdGhlXG4gICAgICogW3Jlc3QgcGFyYW1ldGVyXShodHRwczovL21kbi5pby9yZXN0X3BhcmFtZXRlcnMpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PWZ1bmMubGVuZ3RoLTFdIFRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgcmVzdCBwYXJhbWV0ZXIuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBzYXkgPSBfLnJlc3QoZnVuY3Rpb24od2hhdCwgbmFtZXMpIHtcbiAgICAgKiAgIHJldHVybiB3aGF0ICsgJyAnICsgXy5pbml0aWFsKG5hbWVzKS5qb2luKCcsICcpICtcbiAgICAgKiAgICAgKF8uc2l6ZShuYW1lcykgPiAxID8gJywgJiAnIDogJycpICsgXy5sYXN0KG5hbWVzKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIHNheSgnaGVsbG8nLCAnZnJlZCcsICdiYXJuZXknLCAncGViYmxlcycpO1xuICAgICAqIC8vID0+ICdoZWxsbyBmcmVkLCBiYXJuZXksICYgcGViYmxlcydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZXN0KGZ1bmMsIHN0YXJ0KSB7XG4gICAgICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gICAgICB9XG4gICAgICBzdGFydCA9IHN0YXJ0ID09PSB1bmRlZmluZWQgPyBzdGFydCA6IHRvSW50ZWdlcihzdGFydCk7XG4gICAgICByZXR1cm4gYmFzZVJlc3QoZnVuYywgc3RhcnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZVxuICAgICAqIGNyZWF0ZSBmdW5jdGlvbiBhbmQgYW4gYXJyYXkgb2YgYXJndW1lbnRzIG11Y2ggbGlrZVxuICAgICAqIFtgRnVuY3Rpb24jYXBwbHlgXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5KS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBvbiB0aGVcbiAgICAgKiBbc3ByZWFkIG9wZXJhdG9yXShodHRwczovL21kbi5pby9zcHJlYWRfb3BlcmF0b3IpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMi4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gc3ByZWFkIGFyZ3VtZW50cyBvdmVyLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9MF0gVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSBzcHJlYWQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBzYXkgPSBfLnNwcmVhZChmdW5jdGlvbih3aG8sIHdoYXQpIHtcbiAgICAgKiAgIHJldHVybiB3aG8gKyAnIHNheXMgJyArIHdoYXQ7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBzYXkoWydmcmVkJywgJ2hlbGxvJ10pO1xuICAgICAqIC8vID0+ICdmcmVkIHNheXMgaGVsbG8nXG4gICAgICpcbiAgICAgKiB2YXIgbnVtYmVycyA9IFByb21pc2UuYWxsKFtcbiAgICAgKiAgIFByb21pc2UucmVzb2x2ZSg0MCksXG4gICAgICogICBQcm9taXNlLnJlc29sdmUoMzYpXG4gICAgICogXSk7XG4gICAgICpcbiAgICAgKiBudW1iZXJzLnRoZW4oXy5zcHJlYWQoZnVuY3Rpb24oeCwgeSkge1xuICAgICAqICAgcmV0dXJuIHggKyB5O1xuICAgICAqIH0pKTtcbiAgICAgKiAvLyA9PiBhIFByb21pc2Ugb2YgNzZcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzcHJlYWQoZnVuYywgc3RhcnQpIHtcbiAgICAgIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgICAgIH1cbiAgICAgIHN0YXJ0ID0gc3RhcnQgPT0gbnVsbCA/IDAgOiBuYXRpdmVNYXgodG9JbnRlZ2VyKHN0YXJ0KSwgMCk7XG4gICAgICByZXR1cm4gYmFzZVJlc3QoZnVuY3Rpb24oYXJncykge1xuICAgICAgICB2YXIgYXJyYXkgPSBhcmdzW3N0YXJ0XSxcbiAgICAgICAgICAgIG90aGVyQXJncyA9IGNhc3RTbGljZShhcmdzLCAwLCBzdGFydCk7XG5cbiAgICAgICAgaWYgKGFycmF5KSB7XG4gICAgICAgICAgYXJyYXlQdXNoKG90aGVyQXJncywgYXJyYXkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcHBseShmdW5jLCB0aGlzLCBvdGhlckFyZ3MpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHRocm90dGxlZCBmdW5jdGlvbiB0aGF0IG9ubHkgaW52b2tlcyBgZnVuY2AgYXQgbW9zdCBvbmNlIHBlclxuICAgICAqIGV2ZXJ5IGB3YWl0YCBtaWxsaXNlY29uZHMuIFRoZSB0aHJvdHRsZWQgZnVuY3Rpb24gY29tZXMgd2l0aCBhIGBjYW5jZWxgXG4gICAgICogbWV0aG9kIHRvIGNhbmNlbCBkZWxheWVkIGBmdW5jYCBpbnZvY2F0aW9ucyBhbmQgYSBgZmx1c2hgIG1ldGhvZCB0b1xuICAgICAqIGltbWVkaWF0ZWx5IGludm9rZSB0aGVtLiBQcm92aWRlIGBvcHRpb25zYCB0byBpbmRpY2F0ZSB3aGV0aGVyIGBmdW5jYFxuICAgICAqIHNob3VsZCBiZSBpbnZva2VkIG9uIHRoZSBsZWFkaW5nIGFuZC9vciB0cmFpbGluZyBlZGdlIG9mIHRoZSBgd2FpdGBcbiAgICAgKiB0aW1lb3V0LiBUaGUgYGZ1bmNgIGlzIGludm9rZWQgd2l0aCB0aGUgbGFzdCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlXG4gICAgICogdGhyb3R0bGVkIGZ1bmN0aW9uLiBTdWJzZXF1ZW50IGNhbGxzIHRvIHRoZSB0aHJvdHRsZWQgZnVuY3Rpb24gcmV0dXJuIHRoZVxuICAgICAqIHJlc3VsdCBvZiB0aGUgbGFzdCBgZnVuY2AgaW52b2NhdGlvbi5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBJZiBgbGVhZGluZ2AgYW5kIGB0cmFpbGluZ2Agb3B0aW9ucyBhcmUgYHRydWVgLCBgZnVuY2AgaXNcbiAgICAgKiBpbnZva2VkIG9uIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSB0aW1lb3V0IG9ubHkgaWYgdGhlIHRocm90dGxlZCBmdW5jdGlvblxuICAgICAqIGlzIGludm9rZWQgbW9yZSB0aGFuIG9uY2UgZHVyaW5nIHRoZSBgd2FpdGAgdGltZW91dC5cbiAgICAgKlxuICAgICAqIElmIGB3YWl0YCBpcyBgMGAgYW5kIGBsZWFkaW5nYCBpcyBgZmFsc2VgLCBgZnVuY2AgaW52b2NhdGlvbiBpcyBkZWZlcnJlZFxuICAgICAqIHVudGlsIHRvIHRoZSBuZXh0IHRpY2ssIHNpbWlsYXIgdG8gYHNldFRpbWVvdXRgIHdpdGggYSB0aW1lb3V0IG9mIGAwYC5cbiAgICAgKlxuICAgICAqIFNlZSBbRGF2aWQgQ29yYmFjaG8ncyBhcnRpY2xlXShodHRwczovL2Nzcy10cmlja3MuY29tL2RlYm91bmNpbmctdGhyb3R0bGluZy1leHBsYWluZWQtZXhhbXBsZXMvKVxuICAgICAqIGZvciBkZXRhaWxzIG92ZXIgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYF8udGhyb3R0bGVgIGFuZCBgXy5kZWJvdW5jZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB0aHJvdHRsZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3dhaXQ9MF0gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gdGhyb3R0bGUgaW52b2NhdGlvbnMgdG8uXG4gICAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zPXt9XSBUaGUgb3B0aW9ucyBvYmplY3QuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWFkaW5nPXRydWVdXG4gICAgICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIGxlYWRpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnRyYWlsaW5nPXRydWVdXG4gICAgICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgdGhyb3R0bGVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiAvLyBBdm9pZCBleGNlc3NpdmVseSB1cGRhdGluZyB0aGUgcG9zaXRpb24gd2hpbGUgc2Nyb2xsaW5nLlxuICAgICAqIGpRdWVyeSh3aW5kb3cpLm9uKCdzY3JvbGwnLCBfLnRocm90dGxlKHVwZGF0ZVBvc2l0aW9uLCAxMDApKTtcbiAgICAgKlxuICAgICAqIC8vIEludm9rZSBgcmVuZXdUb2tlbmAgd2hlbiB0aGUgY2xpY2sgZXZlbnQgaXMgZmlyZWQsIGJ1dCBub3QgbW9yZSB0aGFuIG9uY2UgZXZlcnkgNSBtaW51dGVzLlxuICAgICAqIHZhciB0aHJvdHRsZWQgPSBfLnRocm90dGxlKHJlbmV3VG9rZW4sIDMwMDAwMCwgeyAndHJhaWxpbmcnOiBmYWxzZSB9KTtcbiAgICAgKiBqUXVlcnkoZWxlbWVudCkub24oJ2NsaWNrJywgdGhyb3R0bGVkKTtcbiAgICAgKlxuICAgICAqIC8vIENhbmNlbCB0aGUgdHJhaWxpbmcgdGhyb3R0bGVkIGludm9jYXRpb24uXG4gICAgICogalF1ZXJ5KHdpbmRvdykub24oJ3BvcHN0YXRlJywgdGhyb3R0bGVkLmNhbmNlbCk7XG4gICAgICovXG4gICAgZnVuY3Rpb24gdGhyb3R0bGUoZnVuYywgd2FpdCwgb3B0aW9ucykge1xuICAgICAgdmFyIGxlYWRpbmcgPSB0cnVlLFxuICAgICAgICAgIHRyYWlsaW5nID0gdHJ1ZTtcblxuICAgICAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgfVxuICAgICAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgIGxlYWRpbmcgPSAnbGVhZGluZycgaW4gb3B0aW9ucyA/ICEhb3B0aW9ucy5sZWFkaW5nIDogbGVhZGluZztcbiAgICAgICAgdHJhaWxpbmcgPSAndHJhaWxpbmcnIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMudHJhaWxpbmcgOiB0cmFpbGluZztcbiAgICAgIH1cbiAgICAgIHJldHVybiBkZWJvdW5jZShmdW5jLCB3YWl0LCB7XG4gICAgICAgICdsZWFkaW5nJzogbGVhZGluZyxcbiAgICAgICAgJ21heFdhaXQnOiB3YWl0LFxuICAgICAgICAndHJhaWxpbmcnOiB0cmFpbGluZ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyB1cCB0byBvbmUgYXJndW1lbnQsIGlnbm9yaW5nIGFueVxuICAgICAqIGFkZGl0aW9uYWwgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2FwIGFyZ3VtZW50cyBmb3IuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY2FwcGVkIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLm1hcChbJzYnLCAnOCcsICcxMCddLCBfLnVuYXJ5KHBhcnNlSW50KSk7XG4gICAgICogLy8gPT4gWzYsIDgsIDEwXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuYXJ5KGZ1bmMpIHtcbiAgICAgIHJldHVybiBhcnkoZnVuYywgMSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcHJvdmlkZXMgYHZhbHVlYCB0byBgd3JhcHBlcmAgYXMgaXRzIGZpcnN0XG4gICAgICogYXJndW1lbnQuIEFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBwcm92aWRlZCB0byB0aGUgZnVuY3Rpb24gYXJlIGFwcGVuZGVkXG4gICAgICogdG8gdGhvc2UgcHJvdmlkZWQgdG8gdGhlIGB3cmFwcGVyYC4gVGhlIHdyYXBwZXIgaXMgaW52b2tlZCB3aXRoIHRoZSBgdGhpc2BcbiAgICAgKiBiaW5kaW5nIG9mIHRoZSBjcmVhdGVkIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gd3JhcC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbd3JhcHBlcj1pZGVudGl0eV0gVGhlIHdyYXBwZXIgZnVuY3Rpb24uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBwID0gXy53cmFwKF8uZXNjYXBlLCBmdW5jdGlvbihmdW5jLCB0ZXh0KSB7XG4gICAgICogICByZXR1cm4gJzxwPicgKyBmdW5jKHRleHQpICsgJzwvcD4nO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogcCgnZnJlZCwgYmFybmV5LCAmIHBlYmJsZXMnKTtcbiAgICAgKiAvLyA9PiAnPHA+ZnJlZCwgYmFybmV5LCAmYW1wOyBwZWJibGVzPC9wPidcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cmFwKHZhbHVlLCB3cmFwcGVyKSB7XG4gICAgICByZXR1cm4gcGFydGlhbChjYXN0RnVuY3Rpb24od3JhcHBlciksIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBDYXN0cyBgdmFsdWVgIGFzIGFuIGFycmF5IGlmIGl0J3Mgbm90IG9uZS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjQuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGNhc3QgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uY2FzdEFycmF5KDEpO1xuICAgICAqIC8vID0+IFsxXVxuICAgICAqXG4gICAgICogXy5jYXN0QXJyYXkoeyAnYSc6IDEgfSk7XG4gICAgICogLy8gPT4gW3sgJ2EnOiAxIH1dXG4gICAgICpcbiAgICAgKiBfLmNhc3RBcnJheSgnYWJjJyk7XG4gICAgICogLy8gPT4gWydhYmMnXVxuICAgICAqXG4gICAgICogXy5jYXN0QXJyYXkobnVsbCk7XG4gICAgICogLy8gPT4gW251bGxdXG4gICAgICpcbiAgICAgKiBfLmNhc3RBcnJheSh1bmRlZmluZWQpO1xuICAgICAqIC8vID0+IFt1bmRlZmluZWRdXG4gICAgICpcbiAgICAgKiBfLmNhc3RBcnJheSgpO1xuICAgICAqIC8vID0+IFtdXG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbMSwgMiwgM107XG4gICAgICogY29uc29sZS5sb2coXy5jYXN0QXJyYXkoYXJyYXkpID09PSBhcnJheSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNhc3RBcnJheSgpIHtcbiAgICAgIGlmICghYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICB2YXIgdmFsdWUgPSBhcmd1bWVudHNbMF07XG4gICAgICByZXR1cm4gaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNoYWxsb3cgY2xvbmUgb2YgYHZhbHVlYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uIHRoZVxuICAgICAqIFtzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobV0oaHR0cHM6Ly9tZG4uaW8vU3RydWN0dXJlZF9jbG9uZV9hbGdvcml0aG0pXG4gICAgICogYW5kIHN1cHBvcnRzIGNsb25pbmcgYXJyYXlzLCBhcnJheSBidWZmZXJzLCBib29sZWFucywgZGF0ZSBvYmplY3RzLCBtYXBzLFxuICAgICAqIG51bWJlcnMsIGBPYmplY3RgIG9iamVjdHMsIHJlZ2V4ZXMsIHNldHMsIHN0cmluZ3MsIHN5bWJvbHMsIGFuZCB0eXBlZFxuICAgICAqIGFycmF5cy4gVGhlIG93biBlbnVtZXJhYmxlIHByb3BlcnRpZXMgb2YgYGFyZ3VtZW50c2Agb2JqZWN0cyBhcmUgY2xvbmVkXG4gICAgICogYXMgcGxhaW4gb2JqZWN0cy4gQW4gZW1wdHkgb2JqZWN0IGlzIHJldHVybmVkIGZvciB1bmNsb25lYWJsZSB2YWx1ZXMgc3VjaFxuICAgICAqIGFzIGVycm9yIG9iamVjdHMsIGZ1bmN0aW9ucywgRE9NIG5vZGVzLCBhbmQgV2Vha01hcHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNsb25lLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXG4gICAgICogQHNlZSBfLmNsb25lRGVlcFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICdhJzogMSB9LCB7ICdiJzogMiB9XTtcbiAgICAgKlxuICAgICAqIHZhciBzaGFsbG93ID0gXy5jbG9uZShvYmplY3RzKTtcbiAgICAgKiBjb25zb2xlLmxvZyhzaGFsbG93WzBdID09PSBvYmplY3RzWzBdKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2xvbmUodmFsdWUpIHtcbiAgICAgIHJldHVybiBiYXNlQ2xvbmUodmFsdWUsIENMT05FX1NZTUJPTFNfRkxBRyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5jbG9uZWAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY3VzdG9taXplcmAgd2hpY2hcbiAgICAgKiBpcyBpbnZva2VkIHRvIHByb2R1Y2UgdGhlIGNsb25lZCB2YWx1ZS4gSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGAsXG4gICAgICogY2xvbmluZyBpcyBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBpbnZva2VkIHdpdGhcbiAgICAgKiB1cCB0byBmb3VyIGFyZ3VtZW50czsgKHZhbHVlIFssIGluZGV4fGtleSwgb2JqZWN0LCBzdGFja10pLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjbG9uaW5nLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXG4gICAgICogQHNlZSBfLmNsb25lRGVlcFdpdGhcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gY3VzdG9taXplcih2YWx1ZSkge1xuICAgICAqICAgaWYgKF8uaXNFbGVtZW50KHZhbHVlKSkge1xuICAgICAqICAgICByZXR1cm4gdmFsdWUuY2xvbmVOb2RlKGZhbHNlKTtcbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgZWwgPSBfLmNsb25lV2l0aChkb2N1bWVudC5ib2R5LCBjdXN0b21pemVyKTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKGVsID09PSBkb2N1bWVudC5ib2R5KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqIGNvbnNvbGUubG9nKGVsLm5vZGVOYW1lKTtcbiAgICAgKiAvLyA9PiAnQk9EWSdcbiAgICAgKiBjb25zb2xlLmxvZyhlbC5jaGlsZE5vZGVzLmxlbmd0aCk7XG4gICAgICogLy8gPT4gMFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNsb25lV2l0aCh2YWx1ZSwgY3VzdG9taXplcikge1xuICAgICAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicgPyBjdXN0b21pemVyIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIGJhc2VDbG9uZSh2YWx1ZSwgQ0xPTkVfU1lNQk9MU19GTEFHLCBjdXN0b21pemVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmNsb25lYCBleGNlcHQgdGhhdCBpdCByZWN1cnNpdmVseSBjbG9uZXMgYHZhbHVlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAxLjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcmVjdXJzaXZlbHkgY2xvbmUuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGRlZXAgY2xvbmVkIHZhbHVlLlxuICAgICAqIEBzZWUgXy5jbG9uZVxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICdhJzogMSB9LCB7ICdiJzogMiB9XTtcbiAgICAgKlxuICAgICAqIHZhciBkZWVwID0gXy5jbG9uZURlZXAob2JqZWN0cyk7XG4gICAgICogY29uc29sZS5sb2coZGVlcFswXSA9PT0gb2JqZWN0c1swXSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbG9uZURlZXAodmFsdWUpIHtcbiAgICAgIHJldHVybiBiYXNlQ2xvbmUodmFsdWUsIENMT05FX0RFRVBfRkxBRyB8IENMT05FX1NZTUJPTFNfRkxBRyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5jbG9uZVdpdGhgIGV4Y2VwdCB0aGF0IGl0IHJlY3Vyc2l2ZWx5IGNsb25lcyBgdmFsdWVgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byByZWN1cnNpdmVseSBjbG9uZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjbG9uaW5nLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBkZWVwIGNsb25lZCB2YWx1ZS5cbiAgICAgKiBAc2VlIF8uY2xvbmVXaXRoXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIodmFsdWUpIHtcbiAgICAgKiAgIGlmIChfLmlzRWxlbWVudCh2YWx1ZSkpIHtcbiAgICAgKiAgICAgcmV0dXJuIHZhbHVlLmNsb25lTm9kZSh0cnVlKTtcbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgZWwgPSBfLmNsb25lRGVlcFdpdGgoZG9jdW1lbnQuYm9keSwgY3VzdG9taXplcik7XG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhlbCA9PT0gZG9jdW1lbnQuYm9keSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKiBjb25zb2xlLmxvZyhlbC5ub2RlTmFtZSk7XG4gICAgICogLy8gPT4gJ0JPRFknXG4gICAgICogY29uc29sZS5sb2coZWwuY2hpbGROb2Rlcy5sZW5ndGgpO1xuICAgICAqIC8vID0+IDIwXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2xvbmVEZWVwV2l0aCh2YWx1ZSwgY3VzdG9taXplcikge1xuICAgICAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicgPyBjdXN0b21pemVyIDogdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIGJhc2VDbG9uZSh2YWx1ZSwgQ0xPTkVfREVFUF9GTEFHIHwgQ0xPTkVfU1lNQk9MU19GTEFHLCBjdXN0b21pemVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYG9iamVjdGAgY29uZm9ybXMgdG8gYHNvdXJjZWAgYnkgaW52b2tpbmcgdGhlIHByZWRpY2F0ZVxuICAgICAqIHByb3BlcnRpZXMgb2YgYHNvdXJjZWAgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSB2YWx1ZXMgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0byBgXy5jb25mb3Jtc2Agd2hlbiBgc291cmNlYCBpc1xuICAgICAqIHBhcnRpYWxseSBhcHBsaWVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMTQuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHByZWRpY2F0ZXMgdG8gY29uZm9ybSB0by5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYG9iamVjdGAgY29uZm9ybXMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6IDIgfTtcbiAgICAgKlxuICAgICAqIF8uY29uZm9ybXNUbyhvYmplY3QsIHsgJ2InOiBmdW5jdGlvbihuKSB7IHJldHVybiBuID4gMTsgfSB9KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmNvbmZvcm1zVG8ob2JqZWN0LCB7ICdiJzogZnVuY3Rpb24obikgeyByZXR1cm4gbiA+IDI7IH0gfSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb25mb3Jtc1RvKG9iamVjdCwgc291cmNlKSB7XG4gICAgICByZXR1cm4gc291cmNlID09IG51bGwgfHwgYmFzZUNvbmZvcm1zVG8ob2JqZWN0LCBzb3VyY2UsIGtleXMoc291cmNlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYVxuICAgICAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gICAgICogY29tcGFyaXNvbiBiZXR3ZWVuIHR3byB2YWx1ZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGVxdWl2YWxlbnQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAgICAgKiB2YXIgb3RoZXIgPSB7ICdhJzogMSB9O1xuICAgICAqXG4gICAgICogXy5lcShvYmplY3QsIG9iamVjdCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5lcShvYmplY3QsIG90aGVyKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5lcSgnYScsICdhJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5lcSgnYScsIE9iamVjdCgnYScpKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5lcShOYU4sIE5hTik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVxKHZhbHVlLCBvdGhlcikge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSBvdGhlciB8fCAodmFsdWUgIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgZ3JlYXRlciB0aGFuIGBvdGhlcmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy45LjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBncmVhdGVyIHRoYW4gYG90aGVyYCxcbiAgICAgKiAgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBzZWUgXy5sdFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmd0KDMsIDEpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uZ3QoMywgMyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uZ3QoMSwgMyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgZ3QgPSBjcmVhdGVSZWxhdGlvbmFsT3BlcmF0aW9uKGJhc2VHdCk7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYG90aGVyYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjkuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0b1xuICAgICAqICBgb3RoZXJgLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQHNlZSBfLmx0ZVxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmd0ZSgzLCAxKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmd0ZSgzLCAzKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmd0ZSgxLCAzKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBndGUgPSBjcmVhdGVSZWxhdGlvbmFsT3BlcmF0aW9uKGZ1bmN0aW9uKHZhbHVlLCBvdGhlcikge1xuICAgICAgcmV0dXJuIHZhbHVlID49IG90aGVyO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGFuIGBhcmd1bWVudHNgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNBcmd1bWVudHMoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0FyZ3VtZW50cyhbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGlzQXJndW1lbnRzID0gYmFzZUlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID8gYmFzZUlzQXJndW1lbnRzIDogZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdjYWxsZWUnKSAmJlxuICAgICAgICAhcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh2YWx1ZSwgJ2NhbGxlZScpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGFuIGBBcnJheWAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBhcnJheSwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXkoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXkoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheSgnYWJjJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheShfLm5vb3ApO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhbiBgQXJyYXlCdWZmZXJgIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjMuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXkgYnVmZmVyLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheUJ1ZmZlcihuZXcgQXJyYXlCdWZmZXIoMikpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheUJ1ZmZlcihuZXcgQXJyYXkoMikpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGlzQXJyYXlCdWZmZXIgPSBub2RlSXNBcnJheUJ1ZmZlciA/IGJhc2VVbmFyeShub2RlSXNBcnJheUJ1ZmZlcikgOiBiYXNlSXNBcnJheUJ1ZmZlcjtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGFycmF5LWxpa2UuIEEgdmFsdWUgaXMgY29uc2lkZXJlZCBhcnJheS1saWtlIGlmIGl0J3NcbiAgICAgKiBub3QgYSBmdW5jdGlvbiBhbmQgaGFzIGEgYHZhbHVlLmxlbmd0aGAgdGhhdCdzIGFuIGludGVnZXIgZ3JlYXRlciB0aGFuIG9yXG4gICAgICogZXF1YWwgdG8gYDBgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYE51bWJlci5NQVhfU0FGRV9JTlRFR0VSYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYXJyYXktbGlrZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXlMaWtlKFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5TGlrZShkb2N1bWVudC5ib2R5LmNoaWxkcmVuKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXlMaWtlKCdhYmMnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzQXJyYXlMaWtlKF8ubm9vcCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0FycmF5TGlrZSh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgaXNMZW5ndGgodmFsdWUubGVuZ3RoKSAmJiAhaXNGdW5jdGlvbih2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pc0FycmF5TGlrZWAgZXhjZXB0IHRoYXQgaXQgYWxzbyBjaGVja3MgaWYgYHZhbHVlYFxuICAgICAqIGlzIGFuIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXktbGlrZSBvYmplY3QsXG4gICAgICogIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5TGlrZU9iamVjdChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheUxpa2VPYmplY3QoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0FycmF5TGlrZU9iamVjdCgnYWJjJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNBcnJheUxpa2VPYmplY3QoXy5ub29wKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzQXJyYXlMaWtlT2JqZWN0KHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0FycmF5TGlrZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGJvb2xlYW4gcHJpbWl0aXZlIG9yIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBib29sZWFuLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNCb29sZWFuKGZhbHNlKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzQm9vbGVhbihudWxsKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzQm9vbGVhbih2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSBmYWxzZSB8fFxuICAgICAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBib29sVGFnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIGJ1ZmZlci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjMuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0J1ZmZlcihuZXcgQnVmZmVyKDIpKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzQnVmZmVyKG5ldyBVaW50OEFycmF5KDIpKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBpc0J1ZmZlciA9IG5hdGl2ZUlzQnVmZmVyIHx8IHN0dWJGYWxzZTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgRGF0ZWAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGRhdGUgb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNEYXRlKG5ldyBEYXRlKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzRGF0ZSgnTW9uIEFwcmlsIDIzIDIwMTInKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIHZhciBpc0RhdGUgPSBub2RlSXNEYXRlID8gYmFzZVVuYXJ5KG5vZGVJc0RhdGUpIDogYmFzZUlzRGF0ZTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGxpa2VseSBhIERPTSBlbGVtZW50LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIERPTSBlbGVtZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNFbGVtZW50KGRvY3VtZW50LmJvZHkpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNFbGVtZW50KCc8Ym9keT4nKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRWxlbWVudCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgdmFsdWUubm9kZVR5cGUgPT09IDEgJiYgIWlzUGxhaW5PYmplY3QodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGFuIGVtcHR5IG9iamVjdCwgY29sbGVjdGlvbiwgbWFwLCBvciBzZXQuXG4gICAgICpcbiAgICAgKiBPYmplY3RzIGFyZSBjb25zaWRlcmVkIGVtcHR5IGlmIHRoZXkgaGF2ZSBubyBvd24gZW51bWVyYWJsZSBzdHJpbmcga2V5ZWRcbiAgICAgKiBwcm9wZXJ0aWVzLlxuICAgICAqXG4gICAgICogQXJyYXktbGlrZSB2YWx1ZXMgc3VjaCBhcyBgYXJndW1lbnRzYCBvYmplY3RzLCBhcnJheXMsIGJ1ZmZlcnMsIHN0cmluZ3MsIG9yXG4gICAgICogalF1ZXJ5LWxpa2UgY29sbGVjdGlvbnMgYXJlIGNvbnNpZGVyZWQgZW1wdHkgaWYgdGhleSBoYXZlIGEgYGxlbmd0aGAgb2YgYDBgLlxuICAgICAqIFNpbWlsYXJseSwgbWFwcyBhbmQgc2V0cyBhcmUgY29uc2lkZXJlZCBlbXB0eSBpZiB0aGV5IGhhdmUgYSBgc2l6ZWAgb2YgYDBgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBlbXB0eSwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzRW1wdHkobnVsbCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0VtcHR5KHRydWUpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNFbXB0eSgxKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzRW1wdHkoWzEsIDIsIDNdKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc0VtcHR5KHsgJ2EnOiAxIH0pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNFbXB0eSh2YWx1ZSkge1xuICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoaXNBcnJheUxpa2UodmFsdWUpICYmXG4gICAgICAgICAgKGlzQXJyYXkodmFsdWUpIHx8IHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsdWUuc3BsaWNlID09ICdmdW5jdGlvbicgfHxcbiAgICAgICAgICAgIGlzQnVmZmVyKHZhbHVlKSB8fCBpc1R5cGVkQXJyYXkodmFsdWUpIHx8IGlzQXJndW1lbnRzKHZhbHVlKSkpIHtcbiAgICAgICAgcmV0dXJuICF2YWx1ZS5sZW5ndGg7XG4gICAgICB9XG4gICAgICB2YXIgdGFnID0gZ2V0VGFnKHZhbHVlKTtcbiAgICAgIGlmICh0YWcgPT0gbWFwVGFnIHx8IHRhZyA9PSBzZXRUYWcpIHtcbiAgICAgICAgcmV0dXJuICF2YWx1ZS5zaXplO1xuICAgICAgfVxuICAgICAgaWYgKGlzUHJvdG90eXBlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gIWJhc2VLZXlzKHZhbHVlKS5sZW5ndGg7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBrZXkgaW4gdmFsdWUpIHtcbiAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGtleSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgZGVlcCBjb21wYXJpc29uIGJldHdlZW4gdHdvIHZhbHVlcyB0byBkZXRlcm1pbmUgaWYgdGhleSBhcmVcbiAgICAgKiBlcXVpdmFsZW50LlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIHN1cHBvcnRzIGNvbXBhcmluZyBhcnJheXMsIGFycmF5IGJ1ZmZlcnMsIGJvb2xlYW5zLFxuICAgICAqIGRhdGUgb2JqZWN0cywgZXJyb3Igb2JqZWN0cywgbWFwcywgbnVtYmVycywgYE9iamVjdGAgb2JqZWN0cywgcmVnZXhlcyxcbiAgICAgKiBzZXRzLCBzdHJpbmdzLCBzeW1ib2xzLCBhbmQgdHlwZWQgYXJyYXlzLiBgT2JqZWN0YCBvYmplY3RzIGFyZSBjb21wYXJlZFxuICAgICAqIGJ5IHRoZWlyIG93biwgbm90IGluaGVyaXRlZCwgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLiBGdW5jdGlvbnMgYW5kIERPTVxuICAgICAqIG5vZGVzIGFyZSBjb21wYXJlZCBieSBzdHJpY3QgZXF1YWxpdHksIGkuZS4gYD09PWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAgICAgKiB2YXIgb3RoZXIgPSB7ICdhJzogMSB9O1xuICAgICAqXG4gICAgICogXy5pc0VxdWFsKG9iamVjdCwgb3RoZXIpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIG9iamVjdCA9PT0gb3RoZXI7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc0VxdWFsKHZhbHVlLCBvdGhlcikge1xuICAgICAgcmV0dXJuIGJhc2VJc0VxdWFsKHZhbHVlLCBvdGhlcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pc0VxdWFsYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjdXN0b21pemVyYCB3aGljaFxuICAgICAqIGlzIGludm9rZWQgdG8gY29tcGFyZSB2YWx1ZXMuIElmIGBjdXN0b21pemVyYCByZXR1cm5zIGB1bmRlZmluZWRgLCBjb21wYXJpc29uc1xuICAgICAqIGFyZSBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBpbnZva2VkIHdpdGggdXAgdG9cbiAgICAgKiBzaXggYXJndW1lbnRzOiAob2JqVmFsdWUsIG90aFZhbHVlIFssIGluZGV4fGtleSwgb2JqZWN0LCBvdGhlciwgc3RhY2tdKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGlzR3JlZXRpbmcodmFsdWUpIHtcbiAgICAgKiAgIHJldHVybiAvXmgoPzppfGVsbG8pJC8udGVzdCh2YWx1ZSk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gY3VzdG9taXplcihvYmpWYWx1ZSwgb3RoVmFsdWUpIHtcbiAgICAgKiAgIGlmIChpc0dyZWV0aW5nKG9ialZhbHVlKSAmJiBpc0dyZWV0aW5nKG90aFZhbHVlKSkge1xuICAgICAqICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgYXJyYXkgPSBbJ2hlbGxvJywgJ2dvb2RieWUnXTtcbiAgICAgKiB2YXIgb3RoZXIgPSBbJ2hpJywgJ2dvb2RieWUnXTtcbiAgICAgKlxuICAgICAqIF8uaXNFcXVhbFdpdGgoYXJyYXksIG90aGVyLCBjdXN0b21pemVyKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNFcXVhbFdpdGgodmFsdWUsIG90aGVyLCBjdXN0b21pemVyKSB7XG4gICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gJ2Z1bmN0aW9uJyA/IGN1c3RvbWl6ZXIgOiB1bmRlZmluZWQ7XG4gICAgICB2YXIgcmVzdWx0ID0gY3VzdG9taXplciA/IGN1c3RvbWl6ZXIodmFsdWUsIG90aGVyKSA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiByZXN1bHQgPT09IHVuZGVmaW5lZCA/IGJhc2VJc0VxdWFsKHZhbHVlLCBvdGhlciwgdW5kZWZpbmVkLCBjdXN0b21pemVyKSA6ICEhcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGFuIGBFcnJvcmAsIGBFdmFsRXJyb3JgLCBgUmFuZ2VFcnJvcmAsIGBSZWZlcmVuY2VFcnJvcmAsXG4gICAgICogYFN5bnRheEVycm9yYCwgYFR5cGVFcnJvcmAsIG9yIGBVUklFcnJvcmAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBlcnJvciBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0Vycm9yKG5ldyBFcnJvcik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0Vycm9yKEVycm9yKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRXJyb3IodmFsdWUpIHtcbiAgICAgIGlmICghaXNPYmplY3RMaWtlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgdGFnID0gYmFzZUdldFRhZyh2YWx1ZSk7XG4gICAgICByZXR1cm4gdGFnID09IGVycm9yVGFnIHx8IHRhZyA9PSBkb21FeGNUYWcgfHxcbiAgICAgICAgKHR5cGVvZiB2YWx1ZS5tZXNzYWdlID09ICdzdHJpbmcnICYmIHR5cGVvZiB2YWx1ZS5uYW1lID09ICdzdHJpbmcnICYmICFpc1BsYWluT2JqZWN0KHZhbHVlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBmaW5pdGUgcHJpbWl0aXZlIG51bWJlci5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBvblxuICAgICAqIFtgTnVtYmVyLmlzRmluaXRlYF0oaHR0cHM6Ly9tZG4uaW8vTnVtYmVyL2lzRmluaXRlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBmaW5pdGUgbnVtYmVyLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNGaW5pdGUoMyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0Zpbml0ZShOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzRmluaXRlKEluZmluaXR5KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc0Zpbml0ZSgnMycpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNGaW5pdGUodmFsdWUpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiYgbmF0aXZlSXNGaW5pdGUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgRnVuY3Rpb25gIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBmdW5jdGlvbiwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzRnVuY3Rpb24oXyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc0Z1bmN0aW9uKC9hYmMvKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8vIFRoZSB1c2Ugb2YgYE9iamVjdCN0b1N0cmluZ2AgYXZvaWRzIGlzc3VlcyB3aXRoIHRoZSBgdHlwZW9mYCBvcGVyYXRvclxuICAgICAgLy8gaW4gU2FmYXJpIDkgd2hpY2ggcmV0dXJucyAnb2JqZWN0JyBmb3IgdHlwZWQgYXJyYXlzIGFuZCBvdGhlciBjb25zdHJ1Y3RvcnMuXG4gICAgICB2YXIgdGFnID0gYmFzZUdldFRhZyh2YWx1ZSk7XG4gICAgICByZXR1cm4gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZyB8fCB0YWcgPT0gYXN5bmNUYWcgfHwgdGFnID09IHByb3h5VGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGFuIGludGVnZXIuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb25cbiAgICAgKiBbYE51bWJlci5pc0ludGVnZXJgXShodHRwczovL21kbi5pby9OdW1iZXIvaXNJbnRlZ2VyKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gaW50ZWdlciwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzSW50ZWdlcigzKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzSW50ZWdlcihOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc0ludGVnZXIoSW5maW5pdHkpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzSW50ZWdlcignMycpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNJbnRlZ2VyKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdudW1iZXInICYmIHZhbHVlID09IHRvSW50ZWdlcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBhcnJheS1saWtlIGxlbmd0aC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uXG4gICAgICogW2BUb0xlbmd0aGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRvbGVuZ3RoKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBsZW5ndGgsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc0xlbmd0aCgzKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTGVuZ3RoKE51bWJlci5NSU5fVkFMVUUpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzTGVuZ3RoKEluZmluaXR5KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc0xlbmd0aCgnMycpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNMZW5ndGgodmFsdWUpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiZcbiAgICAgICAgdmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8PSBNQVhfU0FGRV9JTlRFR0VSO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHRoZVxuICAgICAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAgICAgKiBvZiBgT2JqZWN0YC4gKGUuZy4gYXJyYXlzLCBmdW5jdGlvbnMsIG9iamVjdHMsIHJlZ2V4ZXMsIGBuZXcgTnVtYmVyKDApYCwgYW5kIGBuZXcgU3RyaW5nKCcnKWApXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzT2JqZWN0KHt9KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzT2JqZWN0KFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc09iamVjdChfLm5vb3ApO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNPYmplY3QobnVsbCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xuICAgICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiAodHlwZSA9PSAnb2JqZWN0JyB8fCB0eXBlID09ICdmdW5jdGlvbicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLiBBIHZhbHVlIGlzIG9iamVjdC1saWtlIGlmIGl0J3Mgbm90IGBudWxsYFxuICAgICAqIGFuZCBoYXMgYSBgdHlwZW9mYCByZXN1bHQgb2YgXCJvYmplY3RcIi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc09iamVjdExpa2Uoe30pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNPYmplY3RMaWtlKFsxLCAyLCAzXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc09iamVjdExpa2UoXy5ub29wKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc09iamVjdExpa2UobnVsbCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PSAnb2JqZWN0JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYE1hcGAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMy4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG1hcCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzTWFwKG5ldyBNYXApO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNNYXAobmV3IFdlYWtNYXApO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGlzTWFwID0gbm9kZUlzTWFwID8gYmFzZVVuYXJ5KG5vZGVJc01hcCkgOiBiYXNlSXNNYXA7XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIHBhcnRpYWwgZGVlcCBjb21wYXJpc29uIGJldHdlZW4gYG9iamVjdGAgYW5kIGBzb3VyY2VgIHRvXG4gICAgICogZGV0ZXJtaW5lIGlmIGBvYmplY3RgIGNvbnRhaW5zIGVxdWl2YWxlbnQgcHJvcGVydHkgdmFsdWVzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gYF8ubWF0Y2hlc2Agd2hlbiBgc291cmNlYCBpc1xuICAgICAqIHBhcnRpYWxseSBhcHBsaWVkLlxuICAgICAqXG4gICAgICogUGFydGlhbCBjb21wYXJpc29ucyB3aWxsIG1hdGNoIGVtcHR5IGFycmF5IGFuZCBlbXB0eSBvYmplY3QgYHNvdXJjZWBcbiAgICAgKiB2YWx1ZXMgYWdhaW5zdCBhbnkgYXJyYXkgb3Igb2JqZWN0IHZhbHVlLCByZXNwZWN0aXZlbHkuIFNlZSBgXy5pc0VxdWFsYFxuICAgICAqIGZvciBhIGxpc3Qgb2Ygc3VwcG9ydGVkIHZhbHVlIGNvbXBhcmlzb25zLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgdmFsdWVzIHRvIG1hdGNoLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgb2JqZWN0YCBpcyBhIG1hdGNoLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSwgJ2InOiAyIH07XG4gICAgICpcbiAgICAgKiBfLmlzTWF0Y2gob2JqZWN0LCB7ICdiJzogMiB9KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTWF0Y2gob2JqZWN0LCB7ICdiJzogMSB9KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTWF0Y2gob2JqZWN0LCBzb3VyY2UpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT09IHNvdXJjZSB8fCBiYXNlSXNNYXRjaChvYmplY3QsIHNvdXJjZSwgZ2V0TWF0Y2hEYXRhKHNvdXJjZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uaXNNYXRjaGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY3VzdG9taXplcmAgd2hpY2hcbiAgICAgKiBpcyBpbnZva2VkIHRvIGNvbXBhcmUgdmFsdWVzLiBJZiBgY3VzdG9taXplcmAgcmV0dXJucyBgdW5kZWZpbmVkYCwgY29tcGFyaXNvbnNcbiAgICAgKiBhcmUgaGFuZGxlZCBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmAgaXMgaW52b2tlZCB3aXRoIGZpdmVcbiAgICAgKiBhcmd1bWVudHM6IChvYmpWYWx1ZSwgc3JjVmFsdWUsIGluZGV4fGtleSwgb2JqZWN0LCBzb3VyY2UpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgdmFsdWVzIHRvIG1hdGNoLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgb2JqZWN0YCBpcyBhIG1hdGNoLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGlzR3JlZXRpbmcodmFsdWUpIHtcbiAgICAgKiAgIHJldHVybiAvXmgoPzppfGVsbG8pJC8udGVzdCh2YWx1ZSk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gY3VzdG9taXplcihvYmpWYWx1ZSwgc3JjVmFsdWUpIHtcbiAgICAgKiAgIGlmIChpc0dyZWV0aW5nKG9ialZhbHVlKSAmJiBpc0dyZWV0aW5nKHNyY1ZhbHVlKSkge1xuICAgICAqICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnZ3JlZXRpbmcnOiAnaGVsbG8nIH07XG4gICAgICogdmFyIHNvdXJjZSA9IHsgJ2dyZWV0aW5nJzogJ2hpJyB9O1xuICAgICAqXG4gICAgICogXy5pc01hdGNoV2l0aChvYmplY3QsIHNvdXJjZSwgY3VzdG9taXplcik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTWF0Y2hXaXRoKG9iamVjdCwgc291cmNlLCBjdXN0b21pemVyKSB7XG4gICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gJ2Z1bmN0aW9uJyA/IGN1c3RvbWl6ZXIgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gYmFzZUlzTWF0Y2gob2JqZWN0LCBzb3VyY2UsIGdldE1hdGNoRGF0YShzb3VyY2UpLCBjdXN0b21pemVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBgTmFOYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBiYXNlZCBvblxuICAgICAqIFtgTnVtYmVyLmlzTmFOYF0oaHR0cHM6Ly9tZG4uaW8vTnVtYmVyL2lzTmFOKSBhbmQgaXMgbm90IHRoZSBzYW1lIGFzXG4gICAgICogZ2xvYmFsIFtgaXNOYU5gXShodHRwczovL21kbi5pby9pc05hTikgd2hpY2ggcmV0dXJucyBgdHJ1ZWAgZm9yXG4gICAgICogYHVuZGVmaW5lZGAgYW5kIG90aGVyIG5vbi1udW1iZXIgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBgTmFOYCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzTmFOKE5hTik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc05hTihuZXcgTnVtYmVyKE5hTikpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIGlzTmFOKHVuZGVmaW5lZCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc05hTih1bmRlZmluZWQpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNOYU4odmFsdWUpIHtcbiAgICAgIC8vIEFuIGBOYU5gIHByaW1pdGl2ZSBpcyB0aGUgb25seSB2YWx1ZSB0aGF0IGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuXG4gICAgICAvLyBQZXJmb3JtIHRoZSBgdG9TdHJpbmdUYWdgIGNoZWNrIGZpcnN0IHRvIGF2b2lkIGVycm9ycyB3aXRoIHNvbWVcbiAgICAgIC8vIEFjdGl2ZVggb2JqZWN0cyBpbiBJRS5cbiAgICAgIHJldHVybiBpc051bWJlcih2YWx1ZSkgJiYgdmFsdWUgIT0gK3ZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgcHJpc3RpbmUgbmF0aXZlIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGNhbid0IHJlbGlhYmx5IGRldGVjdCBuYXRpdmUgZnVuY3Rpb25zIGluIHRoZSBwcmVzZW5jZVxuICAgICAqIG9mIHRoZSBjb3JlLWpzIHBhY2thZ2UgYmVjYXVzZSBjb3JlLWpzIGNpcmN1bXZlbnRzIHRoaXMga2luZCBvZiBkZXRlY3Rpb24uXG4gICAgICogRGVzcGl0ZSBtdWx0aXBsZSByZXF1ZXN0cywgdGhlIGNvcmUtanMgbWFpbnRhaW5lciBoYXMgbWFkZSBpdCBjbGVhcjogYW55XG4gICAgICogYXR0ZW1wdCB0byBmaXggdGhlIGRldGVjdGlvbiB3aWxsIGJlIG9ic3RydWN0ZWQuIEFzIGEgcmVzdWx0LCB3ZSdyZSBsZWZ0XG4gICAgICogd2l0aCBsaXR0bGUgY2hvaWNlIGJ1dCB0byB0aHJvdyBhbiBlcnJvci4gVW5mb3J0dW5hdGVseSwgdGhpcyBhbHNvIGFmZmVjdHNcbiAgICAgKiBwYWNrYWdlcywgbGlrZSBbYmFiZWwtcG9seWZpbGxdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2JhYmVsLXBvbHlmaWxsKSxcbiAgICAgKiB3aGljaCByZWx5IG9uIGNvcmUtanMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbmF0aXZlIGZ1bmN0aW9uLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNOYXRpdmUoQXJyYXkucHJvdG90eXBlLnB1c2gpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNOYXRpdmUoXyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc05hdGl2ZSh2YWx1ZSkge1xuICAgICAgaWYgKGlzTWFza2FibGUodmFsdWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihDT1JFX0VSUk9SX1RFWFQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhc2VJc05hdGl2ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYG51bGxgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBgbnVsbGAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc051bGwobnVsbCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc051bGwodm9pZCAwKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTnVsbCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGBudWxsYCBvciBgdW5kZWZpbmVkYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgbnVsbGlzaCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzTmlsKG51bGwpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNOaWwodm9pZCAwKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTmlsKE5hTik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc05pbCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlID09IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBOdW1iZXJgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVG8gZXhjbHVkZSBgSW5maW5pdHlgLCBgLUluZmluaXR5YCwgYW5kIGBOYU5gLCB3aGljaCBhcmVcbiAgICAgKiBjbGFzc2lmaWVkIGFzIG51bWJlcnMsIHVzZSB0aGUgYF8uaXNGaW5pdGVgIG1ldGhvZC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBudW1iZXIsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc051bWJlcigzKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzTnVtYmVyKE51bWJlci5NSU5fVkFMVUUpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNOdW1iZXIoSW5maW5pdHkpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNOdW1iZXIoJzMnKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzTnVtYmVyKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdudW1iZXInIHx8XG4gICAgICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IG51bWJlclRhZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIHRoYXQgaXMsIGFuIG9iamVjdCBjcmVhdGVkIGJ5IHRoZVxuICAgICAqIGBPYmplY3RgIGNvbnN0cnVjdG9yIG9yIG9uZSB3aXRoIGEgYFtbUHJvdG90eXBlXV1gIG9mIGBudWxsYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjguMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBfLmlzUGxhaW5PYmplY3QobmV3IEZvbyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaXNQbGFpbk9iamVjdChbMSwgMiwgM10pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmlzUGxhaW5PYmplY3QoeyAneCc6IDAsICd5JzogMCB9KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzUGxhaW5PYmplY3QoT2JqZWN0LmNyZWF0ZShudWxsKSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgICAgIGlmICghaXNPYmplY3RMaWtlKHZhbHVlKSB8fCBiYXNlR2V0VGFnKHZhbHVlKSAhPSBvYmplY3RUYWcpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIHByb3RvID0gZ2V0UHJvdG90eXBlKHZhbHVlKTtcbiAgICAgIGlmIChwcm90byA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHZhciBDdG9yID0gaGFzT3duUHJvcGVydHkuY2FsbChwcm90bywgJ2NvbnN0cnVjdG9yJykgJiYgcHJvdG8uY29uc3RydWN0b3I7XG4gICAgICByZXR1cm4gdHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yIGluc3RhbmNlb2YgQ3RvciAmJlxuICAgICAgICBmdW5jVG9TdHJpbmcuY2FsbChDdG9yKSA9PSBvYmplY3RDdG9yU3RyaW5nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgUmVnRXhwYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcmVnZXhwLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNSZWdFeHAoL2FiYy8pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNSZWdFeHAoJy9hYmMvJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgaXNSZWdFeHAgPSBub2RlSXNSZWdFeHAgPyBiYXNlVW5hcnkobm9kZUlzUmVnRXhwKSA6IGJhc2VJc1JlZ0V4cDtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgc2FmZSBpbnRlZ2VyLiBBbiBpbnRlZ2VyIGlzIHNhZmUgaWYgaXQncyBhbiBJRUVFLTc1NFxuICAgICAqIGRvdWJsZSBwcmVjaXNpb24gbnVtYmVyIHdoaWNoIGlzbid0IHRoZSByZXN1bHQgb2YgYSByb3VuZGVkIHVuc2FmZSBpbnRlZ2VyLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGJhc2VkIG9uXG4gICAgICogW2BOdW1iZXIuaXNTYWZlSW50ZWdlcmBdKGh0dHBzOi8vbWRuLmlvL051bWJlci9pc1NhZmVJbnRlZ2VyKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzYWZlIGludGVnZXIsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc1NhZmVJbnRlZ2VyKDMpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNTYWZlSW50ZWdlcihOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc1NhZmVJbnRlZ2VyKEluZmluaXR5KTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5pc1NhZmVJbnRlZ2VyKCczJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc1NhZmVJbnRlZ2VyKHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNJbnRlZ2VyKHZhbHVlKSAmJiB2YWx1ZSA+PSAtTUFYX1NBRkVfSU5URUdFUiAmJiB2YWx1ZSA8PSBNQVhfU0FGRV9JTlRFR0VSO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU2V0YCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4zLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc2V0LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNTZXQobmV3IFNldCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pc1NldChuZXcgV2Vha1NldCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgaXNTZXQgPSBub2RlSXNTZXQgPyBiYXNlVW5hcnkobm9kZUlzU2V0KSA6IGJhc2VJc1NldDtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3RyaW5nYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHN0cmluZywgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmlzU3RyaW5nKCdhYmMnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzU3RyaW5nKDEpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNTdHJpbmcodmFsdWUpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgfHxcbiAgICAgICAgKCFpc0FycmF5KHZhbHVlKSAmJiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHN0cmluZ1RhZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTeW1ib2xgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc3ltYm9sLCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNTeW1ib2woU3ltYm9sLml0ZXJhdG9yKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzU3ltYm9sKCdhYmMnKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzU3ltYm9sKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzeW1ib2wnIHx8XG4gICAgICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHN5bWJvbFRhZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIHR5cGVkIGFycmF5LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHR5cGVkIGFycmF5LCBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaXNUeXBlZEFycmF5KG5ldyBVaW50OEFycmF5KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmlzVHlwZWRBcnJheShbXSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgaXNUeXBlZEFycmF5ID0gbm9kZUlzVHlwZWRBcnJheSA/IGJhc2VVbmFyeShub2RlSXNUeXBlZEFycmF5KSA6IGJhc2VJc1R5cGVkQXJyYXk7XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBgdW5kZWZpbmVkYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYHVuZGVmaW5lZGAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc1VuZGVmaW5lZCh2b2lkIDApO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNVbmRlZmluZWQobnVsbCk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpc1VuZGVmaW5lZCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBXZWFrTWFwYCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4zLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgd2VhayBtYXAsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc1dlYWtNYXAobmV3IFdlYWtNYXApO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNXZWFrTWFwKG5ldyBNYXApO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNXZWFrTWFwKHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBnZXRUYWcodmFsdWUpID09IHdlYWtNYXBUYWc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBXZWFrU2V0YCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4zLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgd2VhayBzZXQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5pc1dlYWtTZXQobmV3IFdlYWtTZXQpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaXNXZWFrU2V0KG5ldyBTZXQpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNXZWFrU2V0KHZhbHVlKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSB3ZWFrU2V0VGFnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGxlc3MgdGhhbiBgb3RoZXJgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuOS4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgbGVzcyB0aGFuIGBvdGhlcmAsXG4gICAgICogIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAc2VlIF8uZ3RcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5sdCgxLCAzKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmx0KDMsIDMpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmx0KDMsIDEpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgdmFyIGx0ID0gY3JlYXRlUmVsYXRpb25hbE9wZXJhdGlvbihiYXNlTHQpO1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGBvdGhlcmAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy45LjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG9cbiAgICAgKiAgYG90aGVyYCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBzZWUgXy5ndGVcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5sdGUoMSwgMyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5sdGUoMywgMyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5sdGUoMywgMSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgbHRlID0gY3JlYXRlUmVsYXRpb25hbE9wZXJhdGlvbihmdW5jdGlvbih2YWx1ZSwgb3RoZXIpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA8PSBvdGhlcjtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYW4gYXJyYXkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgYXJyYXkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9BcnJheSh7ICdhJzogMSwgJ2InOiAyIH0pO1xuICAgICAqIC8vID0+IFsxLCAyXVxuICAgICAqXG4gICAgICogXy50b0FycmF5KCdhYmMnKTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYicsICdjJ11cbiAgICAgKlxuICAgICAqIF8udG9BcnJheSgxKTtcbiAgICAgKiAvLyA9PiBbXVxuICAgICAqXG4gICAgICogXy50b0FycmF5KG51bGwpO1xuICAgICAqIC8vID0+IFtdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9BcnJheSh2YWx1ZSkge1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBpZiAoaXNBcnJheUxpa2UodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBpc1N0cmluZyh2YWx1ZSkgPyBzdHJpbmdUb0FycmF5KHZhbHVlKSA6IGNvcHlBcnJheSh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAoc3ltSXRlcmF0b3IgJiYgdmFsdWVbc3ltSXRlcmF0b3JdKSB7XG4gICAgICAgIHJldHVybiBpdGVyYXRvclRvQXJyYXkodmFsdWVbc3ltSXRlcmF0b3JdKCkpO1xuICAgICAgfVxuICAgICAgdmFyIHRhZyA9IGdldFRhZyh2YWx1ZSksXG4gICAgICAgICAgZnVuYyA9IHRhZyA9PSBtYXBUYWcgPyBtYXBUb0FycmF5IDogKHRhZyA9PSBzZXRUYWcgPyBzZXRUb0FycmF5IDogdmFsdWVzKTtcblxuICAgICAgcmV0dXJuIGZ1bmModmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBmaW5pdGUgbnVtYmVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMTIuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgbnVtYmVyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRvRmluaXRlKDMuMik7XG4gICAgICogLy8gPT4gMy4yXG4gICAgICpcbiAgICAgKiBfLnRvRmluaXRlKE51bWJlci5NSU5fVkFMVUUpO1xuICAgICAqIC8vID0+IDVlLTMyNFxuICAgICAqXG4gICAgICogXy50b0Zpbml0ZShJbmZpbml0eSk7XG4gICAgICogLy8gPT4gMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDhcbiAgICAgKlxuICAgICAqIF8udG9GaW5pdGUoJzMuMicpO1xuICAgICAqIC8vID0+IDMuMlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvRmluaXRlKHZhbHVlKSB7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogMDtcbiAgICAgIH1cbiAgICAgIHZhbHVlID0gdG9OdW1iZXIodmFsdWUpO1xuICAgICAgaWYgKHZhbHVlID09PSBJTkZJTklUWSB8fCB2YWx1ZSA9PT0gLUlORklOSVRZKSB7XG4gICAgICAgIHZhciBzaWduID0gKHZhbHVlIDwgMCA/IC0xIDogMSk7XG4gICAgICAgIHJldHVybiBzaWduICogTUFYX0lOVEVHRVI7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWUgPT09IHZhbHVlID8gdmFsdWUgOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYW4gaW50ZWdlci5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uXG4gICAgICogW2BUb0ludGVnZXJgXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtdG9pbnRlZ2VyKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgaW50ZWdlci5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50b0ludGVnZXIoMy4yKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICpcbiAgICAgKiBfLnRvSW50ZWdlcihOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiAwXG4gICAgICpcbiAgICAgKiBfLnRvSW50ZWdlcihJbmZpbml0eSk7XG4gICAgICogLy8gPT4gMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDhcbiAgICAgKlxuICAgICAqIF8udG9JbnRlZ2VyKCczLjInKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9JbnRlZ2VyKHZhbHVlKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gdG9GaW5pdGUodmFsdWUpLFxuICAgICAgICAgIHJlbWFpbmRlciA9IHJlc3VsdCAlIDE7XG5cbiAgICAgIHJldHVybiByZXN1bHQgPT09IHJlc3VsdCA/IChyZW1haW5kZXIgPyByZXN1bHQgLSByZW1haW5kZXIgOiByZXN1bHQpIDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGFuIGludGVnZXIgc3VpdGFibGUgZm9yIHVzZSBhcyB0aGUgbGVuZ3RoIG9mIGFuXG4gICAgICogYXJyYXktbGlrZSBvYmplY3QuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb25cbiAgICAgKiBbYFRvTGVuZ3RoYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtdG9sZW5ndGgpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IExhbmdcbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBpbnRlZ2VyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRvTGVuZ3RoKDMuMik7XG4gICAgICogLy8gPT4gM1xuICAgICAqXG4gICAgICogXy50b0xlbmd0aChOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiAwXG4gICAgICpcbiAgICAgKiBfLnRvTGVuZ3RoKEluZmluaXR5KTtcbiAgICAgKiAvLyA9PiA0Mjk0OTY3Mjk1XG4gICAgICpcbiAgICAgKiBfLnRvTGVuZ3RoKCczLjInKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9MZW5ndGgodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA/IGJhc2VDbGFtcCh0b0ludGVnZXIodmFsdWUpLCAwLCBNQVhfQVJSQVlfTEVOR1RIKSA6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBhIG51bWJlci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBMYW5nXG4gICAgICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9OdW1iZXIoMy4yKTtcbiAgICAgKiAvLyA9PiAzLjJcbiAgICAgKlxuICAgICAqIF8udG9OdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gICAgICogLy8gPT4gNWUtMzI0XG4gICAgICpcbiAgICAgKiBfLnRvTnVtYmVyKEluZmluaXR5KTtcbiAgICAgKiAvLyA9PiBJbmZpbml0eVxuICAgICAqXG4gICAgICogXy50b051bWJlcignMy4yJyk7XG4gICAgICogLy8gPT4gMy4yXG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9OdW1iZXIodmFsdWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKGlzU3ltYm9sKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gTkFOO1xuICAgICAgfVxuICAgICAgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICB2YXIgb3RoZXIgPSB0eXBlb2YgdmFsdWUudmFsdWVPZiA9PSAnZnVuY3Rpb24nID8gdmFsdWUudmFsdWVPZigpIDogdmFsdWU7XG4gICAgICAgIHZhbHVlID0gaXNPYmplY3Qob3RoZXIpID8gKG90aGVyICsgJycpIDogb3RoZXI7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogK3ZhbHVlO1xuICAgICAgfVxuICAgICAgdmFsdWUgPSBiYXNlVHJpbSh2YWx1ZSk7XG4gICAgICB2YXIgaXNCaW5hcnkgPSByZUlzQmluYXJ5LnRlc3QodmFsdWUpO1xuICAgICAgcmV0dXJuIChpc0JpbmFyeSB8fCByZUlzT2N0YWwudGVzdCh2YWx1ZSkpXG4gICAgICAgID8gZnJlZVBhcnNlSW50KHZhbHVlLnNsaWNlKDIpLCBpc0JpbmFyeSA/IDIgOiA4KVxuICAgICAgICA6IChyZUlzQmFkSGV4LnRlc3QodmFsdWUpID8gTkFOIDogK3ZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgcGxhaW4gb2JqZWN0IGZsYXR0ZW5pbmcgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nXG4gICAgICoga2V5ZWQgcHJvcGVydGllcyBvZiBgdmFsdWVgIHRvIG93biBwcm9wZXJ0aWVzIG9mIHRoZSBwbGFpbiBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY29udmVydGVkIHBsYWluIG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy5hc3NpZ24oeyAnYSc6IDEgfSwgbmV3IEZvbyk7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XG4gICAgICpcbiAgICAgKiBfLmFzc2lnbih7ICdhJzogMSB9LCBfLnRvUGxhaW5PYmplY3QobmV3IEZvbykpO1xuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMyB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gdG9QbGFpbk9iamVjdCh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGNvcHlPYmplY3QodmFsdWUsIGtleXNJbih2YWx1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzYWZlIGludGVnZXIuIEEgc2FmZSBpbnRlZ2VyIGNhbiBiZSBjb21wYXJlZCBhbmRcbiAgICAgKiByZXByZXNlbnRlZCBjb3JyZWN0bHkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgY29udmVydGVkIGludGVnZXIuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9TYWZlSW50ZWdlcigzLjIpO1xuICAgICAqIC8vID0+IDNcbiAgICAgKlxuICAgICAqIF8udG9TYWZlSW50ZWdlcihOdW1iZXIuTUlOX1ZBTFVFKTtcbiAgICAgKiAvLyA9PiAwXG4gICAgICpcbiAgICAgKiBfLnRvU2FmZUludGVnZXIoSW5maW5pdHkpO1xuICAgICAqIC8vID0+IDkwMDcxOTkyNTQ3NDA5OTFcbiAgICAgKlxuICAgICAqIF8udG9TYWZlSW50ZWdlcignMy4yJyk7XG4gICAgICogLy8gPT4gM1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvU2FmZUludGVnZXIodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICA/IGJhc2VDbGFtcCh0b0ludGVnZXIodmFsdWUpLCAtTUFYX1NBRkVfSU5URUdFUiwgTUFYX1NBRkVfSU5URUdFUilcbiAgICAgICAgOiAodmFsdWUgPT09IDAgPyB2YWx1ZSA6IDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcuIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBmb3IgYG51bGxgXG4gICAgICogYW5kIGB1bmRlZmluZWRgIHZhbHVlcy4gVGhlIHNpZ24gb2YgYC0wYCBpcyBwcmVzZXJ2ZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTGFuZ1xuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50b1N0cmluZyhudWxsKTtcbiAgICAgKiAvLyA9PiAnJ1xuICAgICAqXG4gICAgICogXy50b1N0cmluZygtMCk7XG4gICAgICogLy8gPT4gJy0wJ1xuICAgICAqXG4gICAgICogXy50b1N0cmluZyhbMSwgMiwgM10pO1xuICAgICAqIC8vID0+ICcxLDIsMydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0b1N0cmluZyh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlID09IG51bGwgPyAnJyA6IGJhc2VUb1N0cmluZyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQXNzaWducyBvd24gZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydGllcyBvZiBzb3VyY2Ugb2JqZWN0cyB0byB0aGVcbiAgICAgKiBkZXN0aW5hdGlvbiBvYmplY3QuIFNvdXJjZSBvYmplY3RzIGFyZSBhcHBsaWVkIGZyb20gbGVmdCB0byByaWdodC5cbiAgICAgKiBTdWJzZXF1ZW50IHNvdXJjZXMgb3ZlcndyaXRlIHByb3BlcnR5IGFzc2lnbm1lbnRzIG9mIHByZXZpb3VzIHNvdXJjZXMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YCBhbmQgaXMgbG9vc2VseSBiYXNlZCBvblxuICAgICAqIFtgT2JqZWN0LmFzc2lnbmBdKGh0dHBzOi8vbWRuLmlvL09iamVjdC9hc3NpZ24pLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuMTAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IFtzb3VyY2VzXSBUaGUgc291cmNlIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAc2VlIF8uYXNzaWduSW5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBCYXIoKSB7XG4gICAgICogICB0aGlzLmMgPSAzO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYiA9IDI7XG4gICAgICogQmFyLnByb3RvdHlwZS5kID0gNDtcbiAgICAgKlxuICAgICAqIF8uYXNzaWduKHsgJ2EnOiAwIH0sIG5ldyBGb28sIG5ldyBCYXIpO1xuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYyc6IDMgfVxuICAgICAqL1xuICAgIHZhciBhc3NpZ24gPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSkge1xuICAgICAgaWYgKGlzUHJvdG90eXBlKHNvdXJjZSkgfHwgaXNBcnJheUxpa2Uoc291cmNlKSkge1xuICAgICAgICBjb3B5T2JqZWN0KHNvdXJjZSwga2V5cyhzb3VyY2UpLCBvYmplY3QpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBzb3VyY2Vba2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uYXNzaWduYCBleGNlcHQgdGhhdCBpdCBpdGVyYXRlcyBvdmVyIG93biBhbmRcbiAgICAgKiBpbmhlcml0ZWQgc291cmNlIHByb3BlcnRpZXMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBhbGlhcyBleHRlbmRcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQHNlZSBfLmFzc2lnblxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEJhcigpIHtcbiAgICAgKiAgIHRoaXMuYyA9IDM7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5iID0gMjtcbiAgICAgKiBCYXIucHJvdG90eXBlLmQgPSA0O1xuICAgICAqXG4gICAgICogXy5hc3NpZ25Jbih7ICdhJzogMCB9LCBuZXcgRm9vLCBuZXcgQmFyKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDMsICdkJzogNCB9XG4gICAgICovXG4gICAgdmFyIGFzc2lnbkluID0gY3JlYXRlQXNzaWduZXIoZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2UpIHtcbiAgICAgIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzSW4oc291cmNlKSwgb2JqZWN0KTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uYXNzaWduSW5gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGN1c3RvbWl6ZXJgXG4gICAgICogd2hpY2ggaXMgaW52b2tlZCB0byBwcm9kdWNlIHRoZSBhc3NpZ25lZCB2YWx1ZXMuIElmIGBjdXN0b21pemVyYCByZXR1cm5zXG4gICAgICogYHVuZGVmaW5lZGAsIGFzc2lnbm1lbnQgaXMgaGFuZGxlZCBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmBcbiAgICAgKiBpcyBpbnZva2VkIHdpdGggZml2ZSBhcmd1bWVudHM6IChvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0LCBzb3VyY2UpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAYWxpYXMgZXh0ZW5kV2l0aFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IHNvdXJjZXMgVGhlIHNvdXJjZSBvYmplY3RzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGFzc2lnbmVkIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBzZWUgXy5hc3NpZ25XaXRoXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlKSB7XG4gICAgICogICByZXR1cm4gXy5pc1VuZGVmaW5lZChvYmpWYWx1ZSkgPyBzcmNWYWx1ZSA6IG9ialZhbHVlO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHZhciBkZWZhdWx0cyA9IF8ucGFydGlhbFJpZ2h0KF8uYXNzaWduSW5XaXRoLCBjdXN0b21pemVyKTtcbiAgICAgKlxuICAgICAqIGRlZmF1bHRzKHsgJ2EnOiAxIH0sIHsgJ2InOiAyIH0sIHsgJ2EnOiAzIH0pO1xuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIgfVxuICAgICAqL1xuICAgIHZhciBhc3NpZ25JbldpdGggPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzSW4oc291cmNlKSwgb2JqZWN0LCBjdXN0b21pemVyKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uYXNzaWduYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjdXN0b21pemVyYFxuICAgICAqIHdoaWNoIGlzIGludm9rZWQgdG8gcHJvZHVjZSB0aGUgYXNzaWduZWQgdmFsdWVzLiBJZiBgY3VzdG9taXplcmAgcmV0dXJuc1xuICAgICAqIGB1bmRlZmluZWRgLCBhc3NpZ25tZW50IGlzIGhhbmRsZWQgYnkgdGhlIG1ldGhvZCBpbnN0ZWFkLiBUaGUgYGN1c3RvbWl6ZXJgXG4gICAgICogaXMgaW52b2tlZCB3aXRoIGZpdmUgYXJndW1lbnRzOiAob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCwgc291cmNlKS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gey4uLk9iamVjdH0gc291cmNlcyBUaGUgc291cmNlIG9iamVjdHMuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQHNlZSBfLmFzc2lnbkluV2l0aFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBjdXN0b21pemVyKG9ialZhbHVlLCBzcmNWYWx1ZSkge1xuICAgICAqICAgcmV0dXJuIF8uaXNVbmRlZmluZWQob2JqVmFsdWUpID8gc3JjVmFsdWUgOiBvYmpWYWx1ZTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgZGVmYXVsdHMgPSBfLnBhcnRpYWxSaWdodChfLmFzc2lnbldpdGgsIGN1c3RvbWl6ZXIpO1xuICAgICAqXG4gICAgICogZGVmYXVsdHMoeyAnYSc6IDEgfSwgeyAnYic6IDIgfSwgeyAnYSc6IDMgfSk7XG4gICAgICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XG4gICAgICovXG4gICAgdmFyIGFzc2lnbldpdGggPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzKHNvdXJjZSksIG9iamVjdCwgY3VzdG9taXplcik7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIGBwYXRoc2Agb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMS4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0gey4uLihzdHJpbmd8c3RyaW5nW10pfSBbcGF0aHNdIFRoZSBwcm9wZXJ0eSBwYXRocyB0byBwaWNrLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcGlja2VkIHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MnOiAzIH0gfSwgNF0gfTtcbiAgICAgKlxuICAgICAqIF8uYXQob2JqZWN0LCBbJ2FbMF0uYi5jJywgJ2FbMV0nXSk7XG4gICAgICogLy8gPT4gWzMsIDRdXG4gICAgICovXG4gICAgdmFyIGF0ID0gZmxhdFJlc3QoYmFzZUF0KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gb2JqZWN0IHRoYXQgaW5oZXJpdHMgZnJvbSB0aGUgYHByb3RvdHlwZWAgb2JqZWN0LiBJZiBhXG4gICAgICogYHByb3BlcnRpZXNgIG9iamVjdCBpcyBnaXZlbiwgaXRzIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzXG4gICAgICogYXJlIGFzc2lnbmVkIHRvIHRoZSBjcmVhdGVkIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjMuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gcHJvdG90eXBlIFRoZSBvYmplY3QgdG8gaW5oZXJpdCBmcm9tLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbcHJvcGVydGllc10gVGhlIHByb3BlcnRpZXMgdG8gYXNzaWduIHRvIHRoZSBvYmplY3QuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gU2hhcGUoKSB7XG4gICAgICogICB0aGlzLnggPSAwO1xuICAgICAqICAgdGhpcy55ID0gMDtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBDaXJjbGUoKSB7XG4gICAgICogICBTaGFwZS5jYWxsKHRoaXMpO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIENpcmNsZS5wcm90b3R5cGUgPSBfLmNyZWF0ZShTaGFwZS5wcm90b3R5cGUsIHtcbiAgICAgKiAgICdjb25zdHJ1Y3Rvcic6IENpcmNsZVxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogdmFyIGNpcmNsZSA9IG5ldyBDaXJjbGU7XG4gICAgICogY2lyY2xlIGluc3RhbmNlb2YgQ2lyY2xlO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIGNpcmNsZSBpbnN0YW5jZW9mIFNoYXBlO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGUocHJvdG90eXBlLCBwcm9wZXJ0aWVzKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gYmFzZUNyZWF0ZShwcm90b3R5cGUpO1xuICAgICAgcmV0dXJuIHByb3BlcnRpZXMgPT0gbnVsbCA/IHJlc3VsdCA6IGJhc2VBc3NpZ24ocmVzdWx0LCBwcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBc3NpZ25zIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgb2Ygc291cmNlXG4gICAgICogb2JqZWN0cyB0byB0aGUgZGVzdGluYXRpb24gb2JqZWN0IGZvciBhbGwgZGVzdGluYXRpb24gcHJvcGVydGllcyB0aGF0XG4gICAgICogcmVzb2x2ZSB0byBgdW5kZWZpbmVkYC4gU291cmNlIG9iamVjdHMgYXJlIGFwcGxpZWQgZnJvbSBsZWZ0IHRvIHJpZ2h0LlxuICAgICAqIE9uY2UgYSBwcm9wZXJ0eSBpcyBzZXQsIGFkZGl0aW9uYWwgdmFsdWVzIG9mIHRoZSBzYW1lIHByb3BlcnR5IGFyZSBpZ25vcmVkLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQHNlZSBfLmRlZmF1bHRzRGVlcFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmRlZmF1bHRzKHsgJ2EnOiAxIH0sIHsgJ2InOiAyIH0sIHsgJ2EnOiAzIH0pO1xuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIgfVxuICAgICAqL1xuICAgIHZhciBkZWZhdWx0cyA9IGJhc2VSZXN0KGZ1bmN0aW9uKG9iamVjdCwgc291cmNlcykge1xuICAgICAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG5cbiAgICAgIHZhciBpbmRleCA9IC0xO1xuICAgICAgdmFyIGxlbmd0aCA9IHNvdXJjZXMubGVuZ3RoO1xuICAgICAgdmFyIGd1YXJkID0gbGVuZ3RoID4gMiA/IHNvdXJjZXNbMl0gOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzb3VyY2VzWzBdLCBzb3VyY2VzWzFdLCBndWFyZCkpIHtcbiAgICAgICAgbGVuZ3RoID0gMTtcbiAgICAgIH1cblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IHNvdXJjZXNbaW5kZXhdO1xuICAgICAgICB2YXIgcHJvcHMgPSBrZXlzSW4oc291cmNlKTtcbiAgICAgICAgdmFyIHByb3BzSW5kZXggPSAtMTtcbiAgICAgICAgdmFyIHByb3BzTGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gICAgICAgIHdoaWxlICgrK3Byb3BzSW5kZXggPCBwcm9wc0xlbmd0aCkge1xuICAgICAgICAgIHZhciBrZXkgPSBwcm9wc1twcm9wc0luZGV4XTtcbiAgICAgICAgICB2YXIgdmFsdWUgPSBvYmplY3Rba2V5XTtcblxuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgIChlcSh2YWx1ZSwgb2JqZWN0UHJvdG9ba2V5XSkgJiYgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSkge1xuICAgICAgICAgICAgb2JqZWN0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZGVmYXVsdHNgIGV4Y2VwdCB0aGF0IGl0IHJlY3Vyc2l2ZWx5IGFzc2lnbnNcbiAgICAgKiBkZWZhdWx0IHByb3BlcnRpZXMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjEwLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQHNlZSBfLmRlZmF1bHRzXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGVmYXVsdHNEZWVwKHsgJ2EnOiB7ICdiJzogMiB9IH0sIHsgJ2EnOiB7ICdiJzogMSwgJ2MnOiAzIH0gfSk7XG4gICAgICogLy8gPT4geyAnYSc6IHsgJ2InOiAyLCAnYyc6IDMgfSB9XG4gICAgICovXG4gICAgdmFyIGRlZmF1bHRzRGVlcCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgIGFyZ3MucHVzaCh1bmRlZmluZWQsIGN1c3RvbURlZmF1bHRzTWVyZ2UpO1xuICAgICAgcmV0dXJuIGFwcGx5KG1lcmdlV2l0aCwgdW5kZWZpbmVkLCBhcmdzKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmluZGAgZXhjZXB0IHRoYXQgaXQgcmV0dXJucyB0aGUga2V5IG9mIHRoZSBmaXJzdFxuICAgICAqIGVsZW1lbnQgYHByZWRpY2F0ZWAgcmV0dXJucyB0cnV0aHkgZm9yIGluc3RlYWQgb2YgdGhlIGVsZW1lbnQgaXRzZWxmLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDEuMS4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfHVuZGVmaW5lZH0gUmV0dXJucyB0aGUga2V5IG9mIHRoZSBtYXRjaGVkIGVsZW1lbnQsXG4gICAgICogIGVsc2UgYHVuZGVmaW5lZGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IHtcbiAgICAgKiAgICdiYXJuZXknOiAgeyAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICAnZnJlZCc6ICAgIHsgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgICdwZWJibGVzJzogeyAnYWdlJzogMSwgICdhY3RpdmUnOiB0cnVlIH1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogXy5maW5kS2V5KHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLmFnZSA8IDQwOyB9KTtcbiAgICAgKiAvLyA9PiAnYmFybmV5JyAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRLZXkodXNlcnMsIHsgJ2FnZSc6IDEsICdhY3RpdmUnOiB0cnVlIH0pO1xuICAgICAqIC8vID0+ICdwZWJibGVzJ1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uZmluZEtleSh1c2VycywgWydhY3RpdmUnLCBmYWxzZV0pO1xuICAgICAqIC8vID0+ICdmcmVkJ1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maW5kS2V5KHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gJ2Jhcm5leSdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaW5kS2V5KG9iamVjdCwgcHJlZGljYXRlKSB7XG4gICAgICByZXR1cm4gYmFzZUZpbmRLZXkob2JqZWN0LCBnZXRJdGVyYXRlZShwcmVkaWNhdGUsIDMpLCBiYXNlRm9yT3duKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZpbmRLZXlgIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2ZcbiAgICAgKiBhIGNvbGxlY3Rpb24gaW4gdGhlIG9wcG9zaXRlIG9yZGVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfHVuZGVmaW5lZH0gUmV0dXJucyB0aGUga2V5IG9mIHRoZSBtYXRjaGVkIGVsZW1lbnQsXG4gICAgICogIGVsc2UgYHVuZGVmaW5lZGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB1c2VycyA9IHtcbiAgICAgKiAgICdiYXJuZXknOiAgeyAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICAnZnJlZCc6ICAgIHsgJ2FnZSc6IDQwLCAnYWN0aXZlJzogZmFsc2UgfSxcbiAgICAgKiAgICdwZWJibGVzJzogeyAnYWdlJzogMSwgICdhY3RpdmUnOiB0cnVlIH1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogXy5maW5kTGFzdEtleSh1c2VycywgZnVuY3Rpb24obykgeyByZXR1cm4gby5hZ2UgPCA0MDsgfSk7XG4gICAgICogLy8gPT4gcmV0dXJucyAncGViYmxlcycgYXNzdW1pbmcgYF8uZmluZEtleWAgcmV0dXJucyAnYmFybmV5J1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRMYXN0S2V5KHVzZXJzLCB7ICdhZ2UnOiAzNiwgJ2FjdGl2ZSc6IHRydWUgfSk7XG4gICAgICogLy8gPT4gJ2Jhcm5leSdcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5tYXRjaGVzUHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRMYXN0S2V5KHVzZXJzLCBbJ2FjdGl2ZScsIGZhbHNlXSk7XG4gICAgICogLy8gPT4gJ2ZyZWQnXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ucHJvcGVydHlgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbmRMYXN0S2V5KHVzZXJzLCAnYWN0aXZlJyk7XG4gICAgICogLy8gPT4gJ3BlYmJsZXMnXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmluZExhc3RLZXkob2JqZWN0LCBwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiBiYXNlRmluZEtleShvYmplY3QsIGdldEl0ZXJhdGVlKHByZWRpY2F0ZSwgMyksIGJhc2VGb3JPd25SaWdodCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXRlcmF0ZXMgb3ZlciBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzIG9mIGFuXG4gICAgICogb2JqZWN0IGFuZCBpbnZva2VzIGBpdGVyYXRlZWAgZm9yIGVhY2ggcHJvcGVydHkuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0aHJlZSBhcmd1bWVudHM6ICh2YWx1ZSwga2V5LCBvYmplY3QpLiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXRcbiAgICAgKiBpdGVyYXRpb24gZWFybHkgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjMuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQHNlZSBfLmZvckluUmlnaHRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8uZm9ySW4obmV3IEZvbywgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAqICAgY29uc29sZS5sb2coa2V5KTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBMb2dzICdhJywgJ2InLCB0aGVuICdjJyAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmb3JJbihvYmplY3QsIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGxcbiAgICAgICAgPyBvYmplY3RcbiAgICAgICAgOiBiYXNlRm9yKG9iamVjdCwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDMpLCBrZXlzSW4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZm9ySW5gIGV4Y2VwdCB0aGF0IGl0IGl0ZXJhdGVzIG92ZXIgcHJvcGVydGllcyBvZlxuICAgICAqIGBvYmplY3RgIGluIHRoZSBvcHBvc2l0ZSBvcmRlci5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQHNlZSBfLmZvckluXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLmZvckluUmlnaHQobmV3IEZvbywgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAqICAgY29uc29sZS5sb2coa2V5KTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBMb2dzICdjJywgJ2InLCB0aGVuICdhJyBhc3N1bWluZyBgXy5mb3JJbmAgbG9ncyAnYScsICdiJywgdGhlbiAnYycuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZm9ySW5SaWdodChvYmplY3QsIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGxcbiAgICAgICAgPyBvYmplY3RcbiAgICAgICAgOiBiYXNlRm9yUmlnaHQob2JqZWN0LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMyksIGtleXNJbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXRlcmF0ZXMgb3ZlciBvd24gZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydGllcyBvZiBhbiBvYmplY3QgYW5kXG4gICAgICogaW52b2tlcyBgaXRlcmF0ZWVgIGZvciBlYWNoIHByb3BlcnR5LiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIHRocmVlXG4gICAgICogYXJndW1lbnRzOiAodmFsdWUsIGtleSwgb2JqZWN0KS4gSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvblxuICAgICAqIGVhcmx5IGJ5IGV4cGxpY2l0bHkgcmV0dXJuaW5nIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC4zLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBzZWUgXy5mb3JPd25SaWdodFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy5mb3JPd24obmV3IEZvbywgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAqICAgY29uc29sZS5sb2coa2V5KTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiBMb2dzICdhJyB0aGVuICdiJyAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmb3JPd24ob2JqZWN0LCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIG9iamVjdCAmJiBiYXNlRm9yT3duKG9iamVjdCwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmZvck93bmAgZXhjZXB0IHRoYXQgaXQgaXRlcmF0ZXMgb3ZlciBwcm9wZXJ0aWVzIG9mXG4gICAgICogYG9iamVjdGAgaW4gdGhlIG9wcG9zaXRlIG9yZGVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAc2VlIF8uZm9yT3duXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLmZvck93blJpZ2h0KG5ldyBGb28sIGZ1bmN0aW9uKHZhbHVlLCBrZXkpIHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKGtleSk7XG4gICAgICogfSk7XG4gICAgICogLy8gPT4gTG9ncyAnYicgdGhlbiAnYScgYXNzdW1pbmcgYF8uZm9yT3duYCBsb2dzICdhJyB0aGVuICdiJy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmb3JPd25SaWdodChvYmplY3QsIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ICYmIGJhc2VGb3JPd25SaWdodChvYmplY3QsIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAzKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBmdW5jdGlvbiBwcm9wZXJ0eSBuYW1lcyBmcm9tIG93biBlbnVtZXJhYmxlIHByb3BlcnRpZXNcbiAgICAgKiBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW5zcGVjdC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGZ1bmN0aW9uIG5hbWVzLlxuICAgICAqIEBzZWUgXy5mdW5jdGlvbnNJblxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSBfLmNvbnN0YW50KCdhJyk7XG4gICAgICogICB0aGlzLmIgPSBfLmNvbnN0YW50KCdiJyk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gXy5jb25zdGFudCgnYycpO1xuICAgICAqXG4gICAgICogXy5mdW5jdGlvbnMobmV3IEZvbyk7XG4gICAgICogLy8gPT4gWydhJywgJ2InXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZ1bmN0aW9ucyhvYmplY3QpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IFtdIDogYmFzZUZ1bmN0aW9ucyhvYmplY3QsIGtleXMob2JqZWN0KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBmdW5jdGlvbiBwcm9wZXJ0eSBuYW1lcyBmcm9tIG93biBhbmQgaW5oZXJpdGVkXG4gICAgICogZW51bWVyYWJsZSBwcm9wZXJ0aWVzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgZnVuY3Rpb24gbmFtZXMuXG4gICAgICogQHNlZSBfLmZ1bmN0aW9uc1xuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSBfLmNvbnN0YW50KCdhJyk7XG4gICAgICogICB0aGlzLmIgPSBfLmNvbnN0YW50KCdiJyk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gXy5jb25zdGFudCgnYycpO1xuICAgICAqXG4gICAgICogXy5mdW5jdGlvbnNJbihuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnYicsICdjJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmdW5jdGlvbnNJbihvYmplY3QpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IFtdIDogYmFzZUZ1bmN0aW9ucyhvYmplY3QsIGtleXNJbihvYmplY3QpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB2YWx1ZSBhdCBgcGF0aGAgb2YgYG9iamVjdGAuIElmIHRoZSByZXNvbHZlZCB2YWx1ZSBpc1xuICAgICAqIGB1bmRlZmluZWRgLCB0aGUgYGRlZmF1bHRWYWx1ZWAgaXMgcmV0dXJuZWQgaW4gaXRzIHBsYWNlLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuNy4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gW2RlZmF1bHRWYWx1ZV0gVGhlIHZhbHVlIHJldHVybmVkIGZvciBgdW5kZWZpbmVkYCByZXNvbHZlZCB2YWx1ZXMuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYyc6IDMgfSB9XSB9O1xuICAgICAqXG4gICAgICogXy5nZXQob2JqZWN0LCAnYVswXS5iLmMnKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICpcbiAgICAgKiBfLmdldChvYmplY3QsIFsnYScsICcwJywgJ2InLCAnYyddKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICpcbiAgICAgKiBfLmdldChvYmplY3QsICdhLmIuYycsICdkZWZhdWx0Jyk7XG4gICAgICogLy8gPT4gJ2RlZmF1bHQnXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0KG9iamVjdCwgcGF0aCwgZGVmYXVsdFZhbHVlKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBiYXNlR2V0KG9iamVjdCwgcGF0aCk7XG4gICAgICByZXR1cm4gcmVzdWx0ID09PSB1bmRlZmluZWQgPyBkZWZhdWx0VmFsdWUgOiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBwYXRoYCBpcyBhIGRpcmVjdCBwcm9wZXJ0eSBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggdG8gY2hlY2suXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBwYXRoYCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiB7ICdiJzogMiB9IH07XG4gICAgICogdmFyIG90aGVyID0gXy5jcmVhdGUoeyAnYSc6IF8uY3JlYXRlKHsgJ2InOiAyIH0pIH0pO1xuICAgICAqXG4gICAgICogXy5oYXMob2JqZWN0LCAnYScpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaGFzKG9iamVjdCwgJ2EuYicpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaGFzKG9iamVjdCwgWydhJywgJ2InXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5oYXMob3RoZXIsICdhJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYXMob2JqZWN0LCBwYXRoKSB7XG4gICAgICByZXR1cm4gb2JqZWN0ICE9IG51bGwgJiYgaGFzUGF0aChvYmplY3QsIHBhdGgsIGJhc2VIYXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgcGF0aGAgaXMgYSBkaXJlY3Qgb3IgaW5oZXJpdGVkIHByb3BlcnR5IG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHBhdGhgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0gXy5jcmVhdGUoeyAnYSc6IF8uY3JlYXRlKHsgJ2InOiAyIH0pIH0pO1xuICAgICAqXG4gICAgICogXy5oYXNJbihvYmplY3QsICdhJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5oYXNJbihvYmplY3QsICdhLmInKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmhhc0luKG9iamVjdCwgWydhJywgJ2InXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5oYXNJbihvYmplY3QsICdiJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBoYXNJbihvYmplY3QsIHBhdGgpIHtcbiAgICAgIHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiBoYXNQYXRoKG9iamVjdCwgcGF0aCwgYmFzZUhhc0luKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiB0aGUgaW52ZXJ0ZWQga2V5cyBhbmQgdmFsdWVzIG9mIGBvYmplY3RgLlxuICAgICAqIElmIGBvYmplY3RgIGNvbnRhaW5zIGR1cGxpY2F0ZSB2YWx1ZXMsIHN1YnNlcXVlbnQgdmFsdWVzIG92ZXJ3cml0ZVxuICAgICAqIHByb3BlcnR5IGFzc2lnbm1lbnRzIG9mIHByZXZpb3VzIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjcuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW52ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBpbnZlcnRlZCBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDEgfTtcbiAgICAgKlxuICAgICAqIF8uaW52ZXJ0KG9iamVjdCk7XG4gICAgICogLy8gPT4geyAnMSc6ICdjJywgJzInOiAnYicgfVxuICAgICAqL1xuICAgIHZhciBpbnZlcnQgPSBjcmVhdGVJbnZlcnRlcihmdW5jdGlvbihyZXN1bHQsIHZhbHVlLCBrZXkpIHtcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmXG4gICAgICAgICAgdHlwZW9mIHZhbHVlLnRvU3RyaW5nICE9ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdmFsdWUgPSBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgcmVzdWx0W3ZhbHVlXSA9IGtleTtcbiAgICB9LCBjb25zdGFudChpZGVudGl0eSkpO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pbnZlcnRgIGV4Y2VwdCB0aGF0IHRoZSBpbnZlcnRlZCBvYmplY3QgaXMgZ2VuZXJhdGVkXG4gICAgICogZnJvbSB0aGUgcmVzdWx0cyBvZiBydW5uaW5nIGVhY2ggZWxlbWVudCBvZiBgb2JqZWN0YCB0aHJ1IGBpdGVyYXRlZWAuIFRoZVxuICAgICAqIGNvcnJlc3BvbmRpbmcgaW52ZXJ0ZWQgdmFsdWUgb2YgZWFjaCBpbnZlcnRlZCBrZXkgaXMgYW4gYXJyYXkgb2Yga2V5c1xuICAgICAqIHJlc3BvbnNpYmxlIGZvciBnZW5lcmF0aW5nIHRoZSBpbnZlcnRlZCB2YWx1ZS4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjEuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaW52ZXJ0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgaW52ZXJ0ZWQgb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogMiwgJ2MnOiAxIH07XG4gICAgICpcbiAgICAgKiBfLmludmVydEJ5KG9iamVjdCk7XG4gICAgICogLy8gPT4geyAnMSc6IFsnYScsICdjJ10sICcyJzogWydiJ10gfVxuICAgICAqXG4gICAgICogXy5pbnZlcnRCeShvYmplY3QsIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICogICByZXR1cm4gJ2dyb3VwJyArIHZhbHVlO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IHsgJ2dyb3VwMSc6IFsnYScsICdjJ10sICdncm91cDInOiBbJ2InXSB9XG4gICAgICovXG4gICAgdmFyIGludmVydEJ5ID0gY3JlYXRlSW52ZXJ0ZXIoZnVuY3Rpb24ocmVzdWx0LCB2YWx1ZSwga2V5KSB7XG4gICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJlxuICAgICAgICAgIHR5cGVvZiB2YWx1ZS50b1N0cmluZyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHZhbHVlID0gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHJlc3VsdCwgdmFsdWUpKSB7XG4gICAgICAgIHJlc3VsdFt2YWx1ZV0ucHVzaChrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0W3ZhbHVlXSA9IFtrZXldO1xuICAgICAgfVxuICAgIH0sIGdldEl0ZXJhdGVlKTtcblxuICAgIC8qKlxuICAgICAqIEludm9rZXMgdGhlIG1ldGhvZCBhdCBgcGF0aGAgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBtZXRob2QgdG8gaW52b2tlLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIHRoZSBtZXRob2Qgd2l0aC5cbiAgICAgKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBpbnZva2VkIG1ldGhvZC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MnOiBbMSwgMiwgMywgNF0gfSB9XSB9O1xuICAgICAqXG4gICAgICogXy5pbnZva2Uob2JqZWN0LCAnYVswXS5iLmMuc2xpY2UnLCAxLCAzKTtcbiAgICAgKiAvLyA9PiBbMiwgM11cbiAgICAgKi9cbiAgICB2YXIgaW52b2tlID0gYmFzZVJlc3QoYmFzZUludm9rZSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLiBTZWUgdGhlXG4gICAgICogW0VTIHNwZWNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5rZXlzKVxuICAgICAqIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLmtleXMobmV3IEZvbyk7XG4gICAgICogLy8gPT4gWydhJywgJ2InXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqXG4gICAgICogXy5rZXlzKCdoaScpO1xuICAgICAqIC8vID0+IFsnMCcsICcxJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBrZXlzKG9iamVjdCkge1xuICAgICAgcmV0dXJuIGlzQXJyYXlMaWtlKG9iamVjdCkgPyBhcnJheUxpa2VLZXlzKG9iamVjdCkgOiBiYXNlS2V5cyhvYmplY3QpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8ua2V5c0luKG5ldyBGb28pO1xuICAgICAqIC8vID0+IFsnYScsICdiJywgJ2MnXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGtleXNJbihvYmplY3QpIHtcbiAgICAgIHJldHVybiBpc0FycmF5TGlrZShvYmplY3QpID8gYXJyYXlMaWtlS2V5cyhvYmplY3QsIHRydWUpIDogYmFzZUtleXNJbihvYmplY3QpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHBvc2l0ZSBvZiBgXy5tYXBWYWx1ZXNgOyB0aGlzIG1ldGhvZCBjcmVhdGVzIGFuIG9iamVjdCB3aXRoIHRoZVxuICAgICAqIHNhbWUgdmFsdWVzIGFzIGBvYmplY3RgIGFuZCBrZXlzIGdlbmVyYXRlZCBieSBydW5uaW5nIGVhY2ggb3duIGVudW1lcmFibGVcbiAgICAgKiBzdHJpbmcga2V5ZWQgcHJvcGVydHkgb2YgYG9iamVjdGAgdGhydSBgaXRlcmF0ZWVgLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZFxuICAgICAqIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGtleSwgb2JqZWN0KS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjguMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgb2JqZWN0LlxuICAgICAqIEBzZWUgXy5tYXBWYWx1ZXNcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5tYXBLZXlzKHsgJ2EnOiAxLCAnYic6IDIgfSwgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAqICAgcmV0dXJuIGtleSArIHZhbHVlO1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+IHsgJ2ExJzogMSwgJ2IyJzogMiB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gbWFwS2V5cyhvYmplY3QsIGl0ZXJhdGVlKSB7XG4gICAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgICBpdGVyYXRlZSA9IGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAzKTtcblxuICAgICAgYmFzZUZvck93bihvYmplY3QsIGZ1bmN0aW9uKHZhbHVlLCBrZXksIG9iamVjdCkge1xuICAgICAgICBiYXNlQXNzaWduVmFsdWUocmVzdWx0LCBpdGVyYXRlZSh2YWx1ZSwga2V5LCBvYmplY3QpLCB2YWx1ZSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBvYmplY3Qgd2l0aCB0aGUgc2FtZSBrZXlzIGFzIGBvYmplY3RgIGFuZCB2YWx1ZXMgZ2VuZXJhdGVkXG4gICAgICogYnkgcnVubmluZyBlYWNoIG93biBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0eSBvZiBgb2JqZWN0YCB0aHJ1XG4gICAgICogYGl0ZXJhdGVlYC4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6XG4gICAgICogKHZhbHVlLCBrZXksIG9iamVjdCkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi40LjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIG9iamVjdC5cbiAgICAgKiBAc2VlIF8ubWFwS2V5c1xuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgdXNlcnMgPSB7XG4gICAgICogICAnZnJlZCc6ICAgIHsgJ3VzZXInOiAnZnJlZCcsICAgICdhZ2UnOiA0MCB9LFxuICAgICAqICAgJ3BlYmJsZXMnOiB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWdlJzogMSB9XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIF8ubWFwVmFsdWVzKHVzZXJzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLmFnZTsgfSk7XG4gICAgICogLy8gPT4geyAnZnJlZCc6IDQwLCAncGViYmxlcyc6IDEgfSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5tYXBWYWx1ZXModXNlcnMsICdhZ2UnKTtcbiAgICAgKiAvLyA9PiB7ICdmcmVkJzogNDAsICdwZWJibGVzJzogMSB9IChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWFwVmFsdWVzKG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICAgIGl0ZXJhdGVlID0gZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDMpO1xuXG4gICAgICBiYXNlRm9yT3duKG9iamVjdCwgZnVuY3Rpb24odmFsdWUsIGtleSwgb2JqZWN0KSB7XG4gICAgICAgIGJhc2VBc3NpZ25WYWx1ZShyZXN1bHQsIGtleSwgaXRlcmF0ZWUodmFsdWUsIGtleSwgb2JqZWN0KSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5hc3NpZ25gIGV4Y2VwdCB0aGF0IGl0IHJlY3Vyc2l2ZWx5IG1lcmdlcyBvd24gYW5kXG4gICAgICogaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgb2Ygc291cmNlIG9iamVjdHMgaW50byB0aGVcbiAgICAgKiBkZXN0aW5hdGlvbiBvYmplY3QuIFNvdXJjZSBwcm9wZXJ0aWVzIHRoYXQgcmVzb2x2ZSB0byBgdW5kZWZpbmVkYCBhcmVcbiAgICAgKiBza2lwcGVkIGlmIGEgZGVzdGluYXRpb24gdmFsdWUgZXhpc3RzLiBBcnJheSBhbmQgcGxhaW4gb2JqZWN0IHByb3BlcnRpZXNcbiAgICAgKiBhcmUgbWVyZ2VkIHJlY3Vyc2l2ZWx5LiBPdGhlciBvYmplY3RzIGFuZCB2YWx1ZSB0eXBlcyBhcmUgb3ZlcnJpZGRlbiBieVxuICAgICAqIGFzc2lnbm1lbnQuIFNvdXJjZSBvYmplY3RzIGFyZSBhcHBsaWVkIGZyb20gbGVmdCB0byByaWdodC4gU3Vic2VxdWVudFxuICAgICAqIHNvdXJjZXMgb3ZlcndyaXRlIHByb3BlcnR5IGFzc2lnbm1lbnRzIG9mIHByZXZpb3VzIHNvdXJjZXMuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAwLjUuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIHsuLi5PYmplY3R9IFtzb3VyY2VzXSBUaGUgc291cmNlIG9iamVjdHMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHtcbiAgICAgKiAgICdhJzogW3sgJ2InOiAyIH0sIHsgJ2QnOiA0IH1dXG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHZhciBvdGhlciA9IHtcbiAgICAgKiAgICdhJzogW3sgJ2MnOiAzIH0sIHsgJ2UnOiA1IH1dXG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIF8ubWVyZ2Uob2JqZWN0LCBvdGhlcik7XG4gICAgICogLy8gPT4geyAnYSc6IFt7ICdiJzogMiwgJ2MnOiAzIH0sIHsgJ2QnOiA0LCAnZSc6IDUgfV0gfVxuICAgICAqL1xuICAgIHZhciBtZXJnZSA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCkge1xuICAgICAgYmFzZU1lcmdlKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLm1lcmdlYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjdXN0b21pemVyYCB3aGljaFxuICAgICAqIGlzIGludm9rZWQgdG8gcHJvZHVjZSB0aGUgbWVyZ2VkIHZhbHVlcyBvZiB0aGUgZGVzdGluYXRpb24gYW5kIHNvdXJjZVxuICAgICAqIHByb3BlcnRpZXMuIElmIGBjdXN0b21pemVyYCByZXR1cm5zIGB1bmRlZmluZWRgLCBtZXJnaW5nIGlzIGhhbmRsZWQgYnkgdGhlXG4gICAgICogbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmAgaXMgaW52b2tlZCB3aXRoIHNpeCBhcmd1bWVudHM6XG4gICAgICogKG9ialZhbHVlLCBzcmNWYWx1ZSwga2V5LCBvYmplY3QsIHNvdXJjZSwgc3RhY2spLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uT2JqZWN0fSBzb3VyY2VzIFRoZSBzb3VyY2Ugb2JqZWN0cy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjdXN0b21pemVyIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlKSB7XG4gICAgICogICBpZiAoXy5pc0FycmF5KG9ialZhbHVlKSkge1xuICAgICAqICAgICByZXR1cm4gb2JqVmFsdWUuY29uY2F0KHNyY1ZhbHVlKTtcbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFsxXSwgJ2InOiBbMl0gfTtcbiAgICAgKiB2YXIgb3RoZXIgPSB7ICdhJzogWzNdLCAnYic6IFs0XSB9O1xuICAgICAqXG4gICAgICogXy5tZXJnZVdpdGgob2JqZWN0LCBvdGhlciwgY3VzdG9taXplcik7XG4gICAgICogLy8gPT4geyAnYSc6IFsxLCAzXSwgJ2InOiBbMiwgNF0gfVxuICAgICAqL1xuICAgIHZhciBtZXJnZVdpdGggPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIGJhc2VNZXJnZShvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG9wcG9zaXRlIG9mIGBfLnBpY2tgOyB0aGlzIG1ldGhvZCBjcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiB0aGVcbiAgICAgKiBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnR5IHBhdGhzIG9mIGBvYmplY3RgIHRoYXQgYXJlIG5vdCBvbWl0dGVkLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGNvbnNpZGVyYWJseSBzbG93ZXIgdGhhbiBgXy5waWNrYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uKHN0cmluZ3xzdHJpbmdbXSl9IFtwYXRoc10gVGhlIHByb3BlcnR5IHBhdGhzIHRvIG9taXQuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6ICcyJywgJ2MnOiAzIH07XG4gICAgICpcbiAgICAgKiBfLm9taXQob2JqZWN0LCBbJ2EnLCAnYyddKTtcbiAgICAgKiAvLyA9PiB7ICdiJzogJzInIH1cbiAgICAgKi9cbiAgICB2YXIgb21pdCA9IGZsYXRSZXN0KGZ1bmN0aW9uKG9iamVjdCwgcGF0aHMpIHtcbiAgICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgdmFyIGlzRGVlcCA9IGZhbHNlO1xuICAgICAgcGF0aHMgPSBhcnJheU1hcChwYXRocywgZnVuY3Rpb24ocGF0aCkge1xuICAgICAgICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcbiAgICAgICAgaXNEZWVwIHx8IChpc0RlZXAgPSBwYXRoLmxlbmd0aCA+IDEpO1xuICAgICAgICByZXR1cm4gcGF0aDtcbiAgICAgIH0pO1xuICAgICAgY29weU9iamVjdChvYmplY3QsIGdldEFsbEtleXNJbihvYmplY3QpLCByZXN1bHQpO1xuICAgICAgaWYgKGlzRGVlcCkge1xuICAgICAgICByZXN1bHQgPSBiYXNlQ2xvbmUocmVzdWx0LCBDTE9ORV9ERUVQX0ZMQUcgfCBDTE9ORV9GTEFUX0ZMQUcgfCBDTE9ORV9TWU1CT0xTX0ZMQUcsIGN1c3RvbU9taXRDbG9uZSk7XG4gICAgICB9XG4gICAgICB2YXIgbGVuZ3RoID0gcGF0aHMubGVuZ3RoO1xuICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIGJhc2VVbnNldChyZXN1bHQsIHBhdGhzW2xlbmd0aF0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHBvc2l0ZSBvZiBgXy5waWNrQnlgOyB0aGlzIG1ldGhvZCBjcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZlxuICAgICAqIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzIG9mIGBvYmplY3RgIHRoYXRcbiAgICAgKiBgcHJlZGljYXRlYCBkb2Vzbid0IHJldHVybiB0cnV0aHkgZm9yLiBUaGUgcHJlZGljYXRlIGlzIGludm9rZWQgd2l0aCB0d29cbiAgICAgKiBhcmd1bWVudHM6ICh2YWx1ZSwga2V5KS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtwcmVkaWNhdGU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIHByb3BlcnR5LlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSwgJ2InOiAnMicsICdjJzogMyB9O1xuICAgICAqXG4gICAgICogXy5vbWl0Qnkob2JqZWN0LCBfLmlzTnVtYmVyKTtcbiAgICAgKiAvLyA9PiB7ICdiJzogJzInIH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBvbWl0Qnkob2JqZWN0LCBwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiBwaWNrQnkob2JqZWN0LCBuZWdhdGUoZ2V0SXRlcmF0ZWUocHJlZGljYXRlKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gb2JqZWN0IGNvbXBvc2VkIG9mIHRoZSBwaWNrZWQgYG9iamVjdGAgcHJvcGVydGllcy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBzb3VyY2Ugb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Li4uKHN0cmluZ3xzdHJpbmdbXSl9IFtwYXRoc10gVGhlIHByb3BlcnR5IHBhdGhzIHRvIHBpY2suXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6ICcyJywgJ2MnOiAzIH07XG4gICAgICpcbiAgICAgKiBfLnBpY2sob2JqZWN0LCBbJ2EnLCAnYyddKTtcbiAgICAgKiAvLyA9PiB7ICdhJzogMSwgJ2MnOiAzIH1cbiAgICAgKi9cbiAgICB2YXIgcGljayA9IGZsYXRSZXN0KGZ1bmN0aW9uKG9iamVjdCwgcGF0aHMpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHt9IDogYmFzZVBpY2sob2JqZWN0LCBwYXRocyk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiB0aGUgYG9iamVjdGAgcHJvcGVydGllcyBgcHJlZGljYXRlYCByZXR1cm5zXG4gICAgICogdHJ1dGh5IGZvci4gVGhlIHByZWRpY2F0ZSBpcyBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50czogKHZhbHVlLCBrZXkpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW3ByZWRpY2F0ZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgcHJvcGVydHkuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6ICcyJywgJ2MnOiAzIH07XG4gICAgICpcbiAgICAgKiBfLnBpY2tCeShvYmplY3QsIF8uaXNOdW1iZXIpO1xuICAgICAqIC8vID0+IHsgJ2EnOiAxLCAnYyc6IDMgfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHBpY2tCeShvYmplY3QsIHByZWRpY2F0ZSkge1xuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIHZhciBwcm9wcyA9IGFycmF5TWFwKGdldEFsbEtleXNJbihvYmplY3QpLCBmdW5jdGlvbihwcm9wKSB7XG4gICAgICAgIHJldHVybiBbcHJvcF07XG4gICAgICB9KTtcbiAgICAgIHByZWRpY2F0ZSA9IGdldEl0ZXJhdGVlKHByZWRpY2F0ZSk7XG4gICAgICByZXR1cm4gYmFzZVBpY2tCeShvYmplY3QsIHByb3BzLCBmdW5jdGlvbih2YWx1ZSwgcGF0aCkge1xuICAgICAgICByZXR1cm4gcHJlZGljYXRlKHZhbHVlLCBwYXRoWzBdKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZ2V0YCBleGNlcHQgdGhhdCBpZiB0aGUgcmVzb2x2ZWQgdmFsdWUgaXMgYVxuICAgICAqIGZ1bmN0aW9uIGl0J3MgaW52b2tlZCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiBpdHMgcGFyZW50IG9iamVjdCBhbmRcbiAgICAgKiBpdHMgcmVzdWx0IGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gcmVzb2x2ZS5cbiAgICAgKiBAcGFyYW0geyp9IFtkZWZhdWx0VmFsdWVdIFRoZSB2YWx1ZSByZXR1cm5lZCBmb3IgYHVuZGVmaW5lZGAgcmVzb2x2ZWQgdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXNvbHZlZCB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MxJzogMywgJ2MyJzogXy5jb25zdGFudCg0KSB9IH1dIH07XG4gICAgICpcbiAgICAgKiBfLnJlc3VsdChvYmplY3QsICdhWzBdLmIuYzEnKTtcbiAgICAgKiAvLyA9PiAzXG4gICAgICpcbiAgICAgKiBfLnJlc3VsdChvYmplY3QsICdhWzBdLmIuYzInKTtcbiAgICAgKiAvLyA9PiA0XG4gICAgICpcbiAgICAgKiBfLnJlc3VsdChvYmplY3QsICdhWzBdLmIuYzMnLCAnZGVmYXVsdCcpO1xuICAgICAqIC8vID0+ICdkZWZhdWx0J1xuICAgICAqXG4gICAgICogXy5yZXN1bHQob2JqZWN0LCAnYVswXS5iLmMzJywgXy5jb25zdGFudCgnZGVmYXVsdCcpKTtcbiAgICAgKiAvLyA9PiAnZGVmYXVsdCdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZXN1bHQob2JqZWN0LCBwYXRoLCBkZWZhdWx0VmFsdWUpIHtcbiAgICAgIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuXG4gICAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aDtcblxuICAgICAgLy8gRW5zdXJlIHRoZSBsb29wIGlzIGVudGVyZWQgd2hlbiBwYXRoIGlzIGVtcHR5LlxuICAgICAgaWYgKCFsZW5ndGgpIHtcbiAgICAgICAgbGVuZ3RoID0gMTtcbiAgICAgICAgb2JqZWN0ID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBvYmplY3RbdG9LZXkocGF0aFtpbmRleF0pXTtcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpbmRleCA9IGxlbmd0aDtcbiAgICAgICAgICB2YWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBvYmplY3QgPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHZhbHVlLmNhbGwob2JqZWN0KSA6IHZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSB2YWx1ZSBhdCBgcGF0aGAgb2YgYG9iamVjdGAuIElmIGEgcG9ydGlvbiBvZiBgcGF0aGAgZG9lc24ndCBleGlzdCxcbiAgICAgKiBpdCdzIGNyZWF0ZWQuIEFycmF5cyBhcmUgY3JlYXRlZCBmb3IgbWlzc2luZyBpbmRleCBwcm9wZXJ0aWVzIHdoaWxlIG9iamVjdHNcbiAgICAgKiBhcmUgY3JlYXRlZCBmb3IgYWxsIG90aGVyIG1pc3NpbmcgcHJvcGVydGllcy4gVXNlIGBfLnNldFdpdGhgIHRvIGN1c3RvbWl6ZVxuICAgICAqIGBwYXRoYCBjcmVhdGlvbi5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuNy4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHNldC5cbiAgICAgKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHsgJ2EnOiBbeyAnYic6IHsgJ2MnOiAzIH0gfV0gfTtcbiAgICAgKlxuICAgICAqIF8uc2V0KG9iamVjdCwgJ2FbMF0uYi5jJywgNCk7XG4gICAgICogY29uc29sZS5sb2cob2JqZWN0LmFbMF0uYi5jKTtcbiAgICAgKiAvLyA9PiA0XG4gICAgICpcbiAgICAgKiBfLnNldChvYmplY3QsIFsneCcsICcwJywgJ3knLCAneiddLCA1KTtcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3QueFswXS55LnopO1xuICAgICAqIC8vID0+IDVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzZXQob2JqZWN0LCBwYXRoLCB2YWx1ZSkge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogYmFzZVNldChvYmplY3QsIHBhdGgsIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnNldGAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY3VzdG9taXplcmAgd2hpY2ggaXNcbiAgICAgKiBpbnZva2VkIHRvIHByb2R1Y2UgdGhlIG9iamVjdHMgb2YgYHBhdGhgLiAgSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGBcbiAgICAgKiBwYXRoIGNyZWF0aW9uIGlzIGhhbmRsZWQgYnkgdGhlIG1ldGhvZCBpbnN0ZWFkLiBUaGUgYGN1c3RvbWl6ZXJgIGlzIGludm9rZWRcbiAgICAgKiB3aXRoIHRocmVlIGFyZ3VtZW50czogKG5zVmFsdWUsIGtleSwgbnNPYmplY3QpLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gc2V0LlxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBhc3NpZ25lZCB2YWx1ZXMuXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdCA9IHt9O1xuICAgICAqXG4gICAgICogXy5zZXRXaXRoKG9iamVjdCwgJ1swXVsxXScsICdhJywgT2JqZWN0KTtcbiAgICAgKiAvLyA9PiB7ICcwJzogeyAnMSc6ICdhJyB9IH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzZXRXaXRoKG9iamVjdCwgcGF0aCwgdmFsdWUsIGN1c3RvbWl6ZXIpIHtcbiAgICAgIGN1c3RvbWl6ZXIgPSB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nID8gY3VzdG9taXplciA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IG9iamVjdCA6IGJhc2VTZXQob2JqZWN0LCBwYXRoLCB2YWx1ZSwgY3VzdG9taXplcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBvd24gZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQtdmFsdWUgcGFpcnMgZm9yIGBvYmplY3RgXG4gICAgICogd2hpY2ggY2FuIGJlIGNvbnN1bWVkIGJ5IGBfLmZyb21QYWlyc2AuIElmIGBvYmplY3RgIGlzIGEgbWFwIG9yIHNldCwgaXRzXG4gICAgICogZW50cmllcyBhcmUgcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAYWxpYXMgZW50cmllc1xuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBrZXktdmFsdWUgcGFpcnMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLnRvUGFpcnMobmV3IEZvbyk7XG4gICAgICogLy8gPT4gW1snYScsIDFdLCBbJ2InLCAyXV0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKi9cbiAgICB2YXIgdG9QYWlycyA9IGNyZWF0ZVRvUGFpcnMoa2V5cyk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkLXZhbHVlIHBhaXJzXG4gICAgICogZm9yIGBvYmplY3RgIHdoaWNoIGNhbiBiZSBjb25zdW1lZCBieSBgXy5mcm9tUGFpcnNgLiBJZiBgb2JqZWN0YCBpcyBhIG1hcFxuICAgICAqIG9yIHNldCwgaXRzIGVudHJpZXMgYXJlIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGFsaWFzIGVudHJpZXNJblxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBrZXktdmFsdWUgcGFpcnMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIEZvbygpIHtcbiAgICAgKiAgIHRoaXMuYSA9IDE7XG4gICAgICogICB0aGlzLmIgPSAyO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gICAgICpcbiAgICAgKiBfLnRvUGFpcnNJbihuZXcgRm9vKTtcbiAgICAgKiAvLyA9PiBbWydhJywgMV0sIFsnYicsIDJdLCBbJ2MnLCAzXV0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAgICAgKi9cbiAgICB2YXIgdG9QYWlyc0luID0gY3JlYXRlVG9QYWlycyhrZXlzSW4pO1xuXG4gICAgLyoqXG4gICAgICogQW4gYWx0ZXJuYXRpdmUgdG8gYF8ucmVkdWNlYDsgdGhpcyBtZXRob2QgdHJhbnNmb3JtcyBgb2JqZWN0YCB0byBhIG5ld1xuICAgICAqIGBhY2N1bXVsYXRvcmAgb2JqZWN0IHdoaWNoIGlzIHRoZSByZXN1bHQgb2YgcnVubmluZyBlYWNoIG9mIGl0cyBvd25cbiAgICAgKiBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzIHRocnUgYGl0ZXJhdGVlYCwgd2l0aCBlYWNoIGludm9jYXRpb25cbiAgICAgKiBwb3RlbnRpYWxseSBtdXRhdGluZyB0aGUgYGFjY3VtdWxhdG9yYCBvYmplY3QuIElmIGBhY2N1bXVsYXRvcmAgaXMgbm90XG4gICAgICogcHJvdmlkZWQsIGEgbmV3IG9iamVjdCB3aXRoIHRoZSBzYW1lIGBbW1Byb3RvdHlwZV1dYCB3aWxsIGJlIHVzZWQuIFRoZVxuICAgICAqIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBmb3VyIGFyZ3VtZW50czogKGFjY3VtdWxhdG9yLCB2YWx1ZSwga2V5LCBvYmplY3QpLlxuICAgICAqIEl0ZXJhdGVlIGZ1bmN0aW9ucyBtYXkgZXhpdCBpdGVyYXRpb24gZWFybHkgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAxLjMuMFxuICAgICAqIEBjYXRlZ29yeSBPYmplY3RcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEBwYXJhbSB7Kn0gW2FjY3VtdWxhdG9yXSBUaGUgY3VzdG9tIGFjY3VtdWxhdG9yIHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50cmFuc2Zvcm0oWzIsIDMsIDRdLCBmdW5jdGlvbihyZXN1bHQsIG4pIHtcbiAgICAgKiAgIHJlc3VsdC5wdXNoKG4gKj0gbik7XG4gICAgICogICByZXR1cm4gbiAlIDIgPT0gMDtcbiAgICAgKiB9LCBbXSk7XG4gICAgICogLy8gPT4gWzQsIDldXG4gICAgICpcbiAgICAgKiBfLnRyYW5zZm9ybSh7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDEgfSwgZnVuY3Rpb24ocmVzdWx0LCB2YWx1ZSwga2V5KSB7XG4gICAgICogICAocmVzdWx0W3ZhbHVlXSB8fCAocmVzdWx0W3ZhbHVlXSA9IFtdKSkucHVzaChrZXkpO1xuICAgICAqIH0sIHt9KTtcbiAgICAgKiAvLyA9PiB7ICcxJzogWydhJywgJ2MnXSwgJzInOiBbJ2InXSB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtKG9iamVjdCwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yKSB7XG4gICAgICB2YXIgaXNBcnIgPSBpc0FycmF5KG9iamVjdCksXG4gICAgICAgICAgaXNBcnJMaWtlID0gaXNBcnIgfHwgaXNCdWZmZXIob2JqZWN0KSB8fCBpc1R5cGVkQXJyYXkob2JqZWN0KTtcblxuICAgICAgaXRlcmF0ZWUgPSBnZXRJdGVyYXRlZShpdGVyYXRlZSwgNCk7XG4gICAgICBpZiAoYWNjdW11bGF0b3IgPT0gbnVsbCkge1xuICAgICAgICB2YXIgQ3RvciA9IG9iamVjdCAmJiBvYmplY3QuY29uc3RydWN0b3I7XG4gICAgICAgIGlmIChpc0Fyckxpa2UpIHtcbiAgICAgICAgICBhY2N1bXVsYXRvciA9IGlzQXJyID8gbmV3IEN0b3IgOiBbXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc09iamVjdChvYmplY3QpKSB7XG4gICAgICAgICAgYWNjdW11bGF0b3IgPSBpc0Z1bmN0aW9uKEN0b3IpID8gYmFzZUNyZWF0ZShnZXRQcm90b3R5cGUob2JqZWN0KSkgOiB7fTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBhY2N1bXVsYXRvciA9IHt9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAoaXNBcnJMaWtlID8gYXJyYXlFYWNoIDogYmFzZUZvck93bikob2JqZWN0LCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgsIG9iamVjdCkge1xuICAgICAgICByZXR1cm4gaXRlcmF0ZWUoYWNjdW11bGF0b3IsIHZhbHVlLCBpbmRleCwgb2JqZWN0KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdGhlIHByb3BlcnR5IGF0IGBwYXRoYCBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHVuc2V0LlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgcHJvcGVydHkgaXMgZGVsZXRlZCwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYyc6IDcgfSB9XSB9O1xuICAgICAqIF8udW5zZXQob2JqZWN0LCAnYVswXS5iLmMnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3QpO1xuICAgICAqIC8vID0+IHsgJ2EnOiBbeyAnYic6IHt9IH1dIH07XG4gICAgICpcbiAgICAgKiBfLnVuc2V0KG9iamVjdCwgWydhJywgJzAnLCAnYicsICdjJ10pO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdCk7XG4gICAgICogLy8gPT4geyAnYSc6IFt7ICdiJzoge30gfV0gfTtcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bnNldChvYmplY3QsIHBhdGgpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHRydWUgOiBiYXNlVW5zZXQob2JqZWN0LCBwYXRoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnNldGAgZXhjZXB0IHRoYXQgYWNjZXB0cyBgdXBkYXRlcmAgdG8gcHJvZHVjZSB0aGVcbiAgICAgKiB2YWx1ZSB0byBzZXQuIFVzZSBgXy51cGRhdGVXaXRoYCB0byBjdXN0b21pemUgYHBhdGhgIGNyZWF0aW9uLiBUaGUgYHVwZGF0ZXJgXG4gICAgICogaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuNi4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHNldC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB1cGRhdGVyIFRoZSBmdW5jdGlvbiB0byBwcm9kdWNlIHRoZSB1cGRhdGVkIHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogW3sgJ2InOiB7ICdjJzogMyB9IH1dIH07XG4gICAgICpcbiAgICAgKiBfLnVwZGF0ZShvYmplY3QsICdhWzBdLmIuYycsIGZ1bmN0aW9uKG4pIHsgcmV0dXJuIG4gKiBuOyB9KTtcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3QuYVswXS5iLmMpO1xuICAgICAqIC8vID0+IDlcbiAgICAgKlxuICAgICAqIF8udXBkYXRlKG9iamVjdCwgJ3hbMF0ueS56JywgZnVuY3Rpb24obikgeyByZXR1cm4gbiA/IG4gKyAxIDogMDsgfSk7XG4gICAgICogY29uc29sZS5sb2cob2JqZWN0LnhbMF0ueS56KTtcbiAgICAgKiAvLyA9PiAwXG4gICAgICovXG4gICAgZnVuY3Rpb24gdXBkYXRlKG9iamVjdCwgcGF0aCwgdXBkYXRlcikge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gb2JqZWN0IDogYmFzZVVwZGF0ZShvYmplY3QsIHBhdGgsIGNhc3RGdW5jdGlvbih1cGRhdGVyKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy51cGRhdGVgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGN1c3RvbWl6ZXJgIHdoaWNoIGlzXG4gICAgICogaW52b2tlZCB0byBwcm9kdWNlIHRoZSBvYmplY3RzIG9mIGBwYXRoYC4gIElmIGBjdXN0b21pemVyYCByZXR1cm5zIGB1bmRlZmluZWRgXG4gICAgICogcGF0aCBjcmVhdGlvbiBpcyBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBpbnZva2VkXG4gICAgICogd2l0aCB0aHJlZSBhcmd1bWVudHM6IChuc1ZhbHVlLCBrZXksIG5zT2JqZWN0KS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuNi4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHNldC5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB1cGRhdGVyIFRoZSBmdW5jdGlvbiB0byBwcm9kdWNlIHRoZSB1cGRhdGVkIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGFzc2lnbmVkIHZhbHVlcy5cbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0ID0ge307XG4gICAgICpcbiAgICAgKiBfLnVwZGF0ZVdpdGgob2JqZWN0LCAnWzBdWzFdJywgXy5jb25zdGFudCgnYScpLCBPYmplY3QpO1xuICAgICAqIC8vID0+IHsgJzAnOiB7ICcxJzogJ2EnIH0gfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVwZGF0ZVdpdGgob2JqZWN0LCBwYXRoLCB1cGRhdGVyLCBjdXN0b21pemVyKSB7XG4gICAgICBjdXN0b21pemVyID0gdHlwZW9mIGN1c3RvbWl6ZXIgPT0gJ2Z1bmN0aW9uJyA/IGN1c3RvbWl6ZXIgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBiYXNlVXBkYXRlKG9iamVjdCwgcGF0aCwgY2FzdEZ1bmN0aW9uKHVwZGF0ZXIpLCBjdXN0b21pemVyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydHkgdmFsdWVzIG9mIGBvYmplY3RgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIE5vbi1vYmplY3QgdmFsdWVzIGFyZSBjb2VyY2VkIHRvIG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgT2JqZWN0XG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgdmFsdWVzLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBGb28oKSB7XG4gICAgICogICB0aGlzLmEgPSAxO1xuICAgICAqICAgdGhpcy5iID0gMjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICAgICAqXG4gICAgICogXy52YWx1ZXMobmV3IEZvbyk7XG4gICAgICogLy8gPT4gWzEsIDJdIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICpcbiAgICAgKiBfLnZhbHVlcygnaGknKTtcbiAgICAgKiAvLyA9PiBbJ2gnLCAnaSddXG4gICAgICovXG4gICAgZnVuY3Rpb24gdmFsdWVzKG9iamVjdCkge1xuICAgICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gW10gOiBiYXNlVmFsdWVzKG9iamVjdCwga2V5cyhvYmplY3QpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0eVxuICAgICAqIHZhbHVlcyBvZiBgb2JqZWN0YC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IE9iamVjdFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IHZhbHVlcy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gRm9vKCkge1xuICAgICAqICAgdGhpcy5hID0gMTtcbiAgICAgKiAgIHRoaXMuYiA9IDI7XG4gICAgICogfVxuICAgICAqXG4gICAgICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAgICAgKlxuICAgICAqIF8udmFsdWVzSW4obmV3IEZvbyk7XG4gICAgICogLy8gPT4gWzEsIDIsIDNdIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gICAgICovXG4gICAgZnVuY3Rpb24gdmFsdWVzSW4ob2JqZWN0KSB7XG4gICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBbXSA6IGJhc2VWYWx1ZXMob2JqZWN0LCBrZXlzSW4ob2JqZWN0KSk7XG4gICAgfVxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ2xhbXBzIGBudW1iZXJgIHdpdGhpbiB0aGUgaW5jbHVzaXZlIGBsb3dlcmAgYW5kIGB1cHBlcmAgYm91bmRzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IE51bWJlclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXIgVGhlIG51bWJlciB0byBjbGFtcC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xvd2VyXSBUaGUgbG93ZXIgYm91bmQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHVwcGVyIFRoZSB1cHBlciBib3VuZC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBjbGFtcGVkIG51bWJlci5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5jbGFtcCgtMTAsIC01LCA1KTtcbiAgICAgKiAvLyA9PiAtNVxuICAgICAqXG4gICAgICogXy5jbGFtcCgxMCwgLTUsIDUpO1xuICAgICAqIC8vID0+IDVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjbGFtcChudW1iZXIsIGxvd2VyLCB1cHBlcikge1xuICAgICAgaWYgKHVwcGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdXBwZXIgPSBsb3dlcjtcbiAgICAgICAgbG93ZXIgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpZiAodXBwZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB1cHBlciA9IHRvTnVtYmVyKHVwcGVyKTtcbiAgICAgICAgdXBwZXIgPSB1cHBlciA9PT0gdXBwZXIgPyB1cHBlciA6IDA7XG4gICAgICB9XG4gICAgICBpZiAobG93ZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsb3dlciA9IHRvTnVtYmVyKGxvd2VyKTtcbiAgICAgICAgbG93ZXIgPSBsb3dlciA9PT0gbG93ZXIgPyBsb3dlciA6IDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmFzZUNsYW1wKHRvTnVtYmVyKG51bWJlciksIGxvd2VyLCB1cHBlcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGBuYCBpcyBiZXR3ZWVuIGBzdGFydGAgYW5kIHVwIHRvLCBidXQgbm90IGluY2x1ZGluZywgYGVuZGAuIElmXG4gICAgICogYGVuZGAgaXMgbm90IHNwZWNpZmllZCwgaXQncyBzZXQgdG8gYHN0YXJ0YCB3aXRoIGBzdGFydGAgdGhlbiBzZXQgdG8gYDBgLlxuICAgICAqIElmIGBzdGFydGAgaXMgZ3JlYXRlciB0aGFuIGBlbmRgIHRoZSBwYXJhbXMgYXJlIHN3YXBwZWQgdG8gc3VwcG9ydFxuICAgICAqIG5lZ2F0aXZlIHJhbmdlcy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjMuMFxuICAgICAqIEBjYXRlZ29yeSBOdW1iZXJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyIFRoZSBudW1iZXIgdG8gY2hlY2suXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgb2YgdGhlIHJhbmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmQgVGhlIGVuZCBvZiB0aGUgcmFuZ2UuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBudW1iZXJgIGlzIGluIHRoZSByYW5nZSwgZWxzZSBgZmFsc2VgLlxuICAgICAqIEBzZWUgXy5yYW5nZSwgXy5yYW5nZVJpZ2h0XG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uaW5SYW5nZSgzLCAyLCA0KTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLmluUmFuZ2UoNCwgOCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5pblJhbmdlKDQsIDIpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmluUmFuZ2UoMiwgMik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uaW5SYW5nZSgxLjIsIDIpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIF8uaW5SYW5nZSg1LjIsIDQpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBfLmluUmFuZ2UoLTMsIC0yLCAtNik7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluUmFuZ2UobnVtYmVyLCBzdGFydCwgZW5kKSB7XG4gICAgICBzdGFydCA9IHRvRmluaXRlKHN0YXJ0KTtcbiAgICAgIGlmIChlbmQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBlbmQgPSBzdGFydDtcbiAgICAgICAgc3RhcnQgPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW5kID0gdG9GaW5pdGUoZW5kKTtcbiAgICAgIH1cbiAgICAgIG51bWJlciA9IHRvTnVtYmVyKG51bWJlcik7XG4gICAgICByZXR1cm4gYmFzZUluUmFuZ2UobnVtYmVyLCBzdGFydCwgZW5kKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9kdWNlcyBhIHJhbmRvbSBudW1iZXIgYmV0d2VlbiB0aGUgaW5jbHVzaXZlIGBsb3dlcmAgYW5kIGB1cHBlcmAgYm91bmRzLlxuICAgICAqIElmIG9ubHkgb25lIGFyZ3VtZW50IGlzIHByb3ZpZGVkIGEgbnVtYmVyIGJldHdlZW4gYDBgIGFuZCB0aGUgZ2l2ZW4gbnVtYmVyXG4gICAgICogaXMgcmV0dXJuZWQuIElmIGBmbG9hdGluZ2AgaXMgYHRydWVgLCBvciBlaXRoZXIgYGxvd2VyYCBvciBgdXBwZXJgIGFyZVxuICAgICAqIGZsb2F0cywgYSBmbG9hdGluZy1wb2ludCBudW1iZXIgaXMgcmV0dXJuZWQgaW5zdGVhZCBvZiBhbiBpbnRlZ2VyLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIEphdmFTY3JpcHQgZm9sbG93cyB0aGUgSUVFRS03NTQgc3RhbmRhcmQgZm9yIHJlc29sdmluZ1xuICAgICAqIGZsb2F0aW5nLXBvaW50IHZhbHVlcyB3aGljaCBjYW4gcHJvZHVjZSB1bmV4cGVjdGVkIHJlc3VsdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMC43LjBcbiAgICAgKiBAY2F0ZWdvcnkgTnVtYmVyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtsb3dlcj0wXSBUaGUgbG93ZXIgYm91bmQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt1cHBlcj0xXSBUaGUgdXBwZXIgYm91bmQuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZmxvYXRpbmddIFNwZWNpZnkgcmV0dXJuaW5nIGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHJhbmRvbSBudW1iZXIuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucmFuZG9tKDAsIDUpO1xuICAgICAqIC8vID0+IGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCA1XG4gICAgICpcbiAgICAgKiBfLnJhbmRvbSg1KTtcbiAgICAgKiAvLyA9PiBhbHNvIGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCA1XG4gICAgICpcbiAgICAgKiBfLnJhbmRvbSg1LCB0cnVlKTtcbiAgICAgKiAvLyA9PiBhIGZsb2F0aW5nLXBvaW50IG51bWJlciBiZXR3ZWVuIDAgYW5kIDVcbiAgICAgKlxuICAgICAqIF8ucmFuZG9tKDEuMiwgNS4yKTtcbiAgICAgKiAvLyA9PiBhIGZsb2F0aW5nLXBvaW50IG51bWJlciBiZXR3ZWVuIDEuMiBhbmQgNS4yXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmFuZG9tKGxvd2VyLCB1cHBlciwgZmxvYXRpbmcpIHtcbiAgICAgIGlmIChmbG9hdGluZyAmJiB0eXBlb2YgZmxvYXRpbmcgIT0gJ2Jvb2xlYW4nICYmIGlzSXRlcmF0ZWVDYWxsKGxvd2VyLCB1cHBlciwgZmxvYXRpbmcpKSB7XG4gICAgICAgIHVwcGVyID0gZmxvYXRpbmcgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpZiAoZmxvYXRpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodHlwZW9mIHVwcGVyID09ICdib29sZWFuJykge1xuICAgICAgICAgIGZsb2F0aW5nID0gdXBwZXI7XG4gICAgICAgICAgdXBwZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGxvd2VyID09ICdib29sZWFuJykge1xuICAgICAgICAgIGZsb2F0aW5nID0gbG93ZXI7XG4gICAgICAgICAgbG93ZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChsb3dlciA9PT0gdW5kZWZpbmVkICYmIHVwcGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbG93ZXIgPSAwO1xuICAgICAgICB1cHBlciA9IDE7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgbG93ZXIgPSB0b0Zpbml0ZShsb3dlcik7XG4gICAgICAgIGlmICh1cHBlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdXBwZXIgPSBsb3dlcjtcbiAgICAgICAgICBsb3dlciA9IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdXBwZXIgPSB0b0Zpbml0ZSh1cHBlcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChsb3dlciA+IHVwcGVyKSB7XG4gICAgICAgIHZhciB0ZW1wID0gbG93ZXI7XG4gICAgICAgIGxvd2VyID0gdXBwZXI7XG4gICAgICAgIHVwcGVyID0gdGVtcDtcbiAgICAgIH1cbiAgICAgIGlmIChmbG9hdGluZyB8fCBsb3dlciAlIDEgfHwgdXBwZXIgJSAxKSB7XG4gICAgICAgIHZhciByYW5kID0gbmF0aXZlUmFuZG9tKCk7XG4gICAgICAgIHJldHVybiBuYXRpdmVNaW4obG93ZXIgKyAocmFuZCAqICh1cHBlciAtIGxvd2VyICsgZnJlZVBhcnNlRmxvYXQoJzFlLScgKyAoKHJhbmQgKyAnJykubGVuZ3RoIC0gMSkpKSksIHVwcGVyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlUmFuZG9tKGxvd2VyLCB1cHBlcik7XG4gICAgfVxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG8gW2NhbWVsIGNhc2VdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0NhbWVsQ2FzZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjYW1lbCBjYXNlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uY2FtZWxDYXNlKCdGb28gQmFyJyk7XG4gICAgICogLy8gPT4gJ2Zvb0JhcidcbiAgICAgKlxuICAgICAqIF8uY2FtZWxDYXNlKCctLWZvby1iYXItLScpO1xuICAgICAqIC8vID0+ICdmb29CYXInXG4gICAgICpcbiAgICAgKiBfLmNhbWVsQ2FzZSgnX19GT09fQkFSX18nKTtcbiAgICAgKiAvLyA9PiAnZm9vQmFyJ1xuICAgICAqL1xuICAgIHZhciBjYW1lbENhc2UgPSBjcmVhdGVDb21wb3VuZGVyKGZ1bmN0aW9uKHJlc3VsdCwgd29yZCwgaW5kZXgpIHtcbiAgICAgIHdvcmQgPSB3b3JkLnRvTG93ZXJDYXNlKCk7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gY2FwaXRhbGl6ZSh3b3JkKSA6IHdvcmQpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBgc3RyaW5nYCB0byB1cHBlciBjYXNlIGFuZCB0aGUgcmVtYWluaW5nXG4gICAgICogdG8gbG93ZXIgY2FzZS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjYXBpdGFsaXplLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNhcGl0YWxpemVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5jYXBpdGFsaXplKCdGUkVEJyk7XG4gICAgICogLy8gPT4gJ0ZyZWQnXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2FwaXRhbGl6ZShzdHJpbmcpIHtcbiAgICAgIHJldHVybiB1cHBlckZpcnN0KHRvU3RyaW5nKHN0cmluZykudG9Mb3dlckNhc2UoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVidXJycyBgc3RyaW5nYCBieSBjb252ZXJ0aW5nXG4gICAgICogW0xhdGluLTEgU3VwcGxlbWVudF0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGF0aW4tMV9TdXBwbGVtZW50XyhVbmljb2RlX2Jsb2NrKSNDaGFyYWN0ZXJfdGFibGUpXG4gICAgICogYW5kIFtMYXRpbiBFeHRlbmRlZC1BXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MYXRpbl9FeHRlbmRlZC1BKVxuICAgICAqIGxldHRlcnMgdG8gYmFzaWMgTGF0aW4gbGV0dGVycyBhbmQgcmVtb3ZpbmdcbiAgICAgKiBbY29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db21iaW5pbmdfRGlhY3JpdGljYWxfTWFya3MpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGRlYnVyci5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBkZWJ1cnJlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGVidXJyKCdkXHUwMEU5alx1MDBFMCB2dScpO1xuICAgICAqIC8vID0+ICdkZWphIHZ1J1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRlYnVycihzdHJpbmcpIHtcbiAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICByZXR1cm4gc3RyaW5nICYmIHN0cmluZy5yZXBsYWNlKHJlTGF0aW4sIGRlYnVyckxldHRlcikucmVwbGFjZShyZUNvbWJvTWFyaywgJycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgc3RyaW5nYCBlbmRzIHdpdGggdGhlIGdpdmVuIHRhcmdldCBzdHJpbmcuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gaW5zcGVjdC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3RhcmdldF0gVGhlIHN0cmluZyB0byBzZWFyY2ggZm9yLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcG9zaXRpb249c3RyaW5nLmxlbmd0aF0gVGhlIHBvc2l0aW9uIHRvIHNlYXJjaCB1cCB0by5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHN0cmluZ2AgZW5kcyB3aXRoIGB0YXJnZXRgLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZW5kc1dpdGgoJ2FiYycsICdjJyk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogXy5lbmRzV2l0aCgnYWJjJywgJ2InKTtcbiAgICAgKiAvLyA9PiBmYWxzZVxuICAgICAqXG4gICAgICogXy5lbmRzV2l0aCgnYWJjJywgJ2InLCAyKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gZW5kc1dpdGgoc3RyaW5nLCB0YXJnZXQsIHBvc2l0aW9uKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgdGFyZ2V0ID0gYmFzZVRvU3RyaW5nKHRhcmdldCk7XG5cbiAgICAgIHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbiA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gbGVuZ3RoXG4gICAgICAgIDogYmFzZUNsYW1wKHRvSW50ZWdlcihwb3NpdGlvbiksIDAsIGxlbmd0aCk7XG5cbiAgICAgIHZhciBlbmQgPSBwb3NpdGlvbjtcbiAgICAgIHBvc2l0aW9uIC09IHRhcmdldC5sZW5ndGg7XG4gICAgICByZXR1cm4gcG9zaXRpb24gPj0gMCAmJiBzdHJpbmcuc2xpY2UocG9zaXRpb24sIGVuZCkgPT0gdGFyZ2V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIHRoZSBjaGFyYWN0ZXJzIFwiJlwiLCBcIjxcIiwgXCI+XCIsICdcIicsIGFuZCBcIidcIiBpbiBgc3RyaW5nYCB0byB0aGVpclxuICAgICAqIGNvcnJlc3BvbmRpbmcgSFRNTCBlbnRpdGllcy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBObyBvdGhlciBjaGFyYWN0ZXJzIGFyZSBlc2NhcGVkLiBUbyBlc2NhcGUgYWRkaXRpb25hbFxuICAgICAqIGNoYXJhY3RlcnMgdXNlIGEgdGhpcmQtcGFydHkgbGlicmFyeSBsaWtlIFtfaGVfXShodHRwczovL210aHMuYmUvaGUpLlxuICAgICAqXG4gICAgICogVGhvdWdoIHRoZSBcIj5cIiBjaGFyYWN0ZXIgaXMgZXNjYXBlZCBmb3Igc3ltbWV0cnksIGNoYXJhY3RlcnMgbGlrZVxuICAgICAqIFwiPlwiIGFuZCBcIi9cIiBkb24ndCBuZWVkIGVzY2FwaW5nIGluIEhUTUwgYW5kIGhhdmUgbm8gc3BlY2lhbCBtZWFuaW5nXG4gICAgICogdW5sZXNzIHRoZXkncmUgcGFydCBvZiBhIHRhZyBvciB1bnF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUuIFNlZVxuICAgICAqIFtNYXRoaWFzIEJ5bmVucydzIGFydGljbGVdKGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9hbWJpZ3VvdXMtYW1wZXJzYW5kcylcbiAgICAgKiAodW5kZXIgXCJzZW1pLXJlbGF0ZWQgZnVuIGZhY3RcIikgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKlxuICAgICAqIFdoZW4gd29ya2luZyB3aXRoIEhUTUwgeW91IHNob3VsZCBhbHdheXNcbiAgICAgKiBbcXVvdGUgYXR0cmlidXRlIHZhbHVlc10oaHR0cDovL3dvbmtvLmNvbS9wb3N0L2h0bWwtZXNjYXBpbmcpIHRvIHJlZHVjZVxuICAgICAqIFhTUyB2ZWN0b3JzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGVzY2FwZS5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5lc2NhcGUoJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJyk7XG4gICAgICogLy8gPT4gJ2ZyZWQsIGJhcm5leSwgJmFtcDsgcGViYmxlcydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlc2NhcGUoc3RyaW5nKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgcmV0dXJuIChzdHJpbmcgJiYgcmVIYXNVbmVzY2FwZWRIdG1sLnRlc3Qoc3RyaW5nKSlcbiAgICAgICAgPyBzdHJpbmcucmVwbGFjZShyZVVuZXNjYXBlZEh0bWwsIGVzY2FwZUh0bWxDaGFyKVxuICAgICAgICA6IHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFc2NhcGVzIHRoZSBgUmVnRXhwYCBzcGVjaWFsIGNoYXJhY3RlcnMgXCJeXCIsIFwiJFwiLCBcIlxcXCIsIFwiLlwiLCBcIipcIiwgXCIrXCIsXG4gICAgICogXCI/XCIsIFwiKFwiLCBcIilcIiwgXCJbXCIsIFwiXVwiLCBcIntcIiwgXCJ9XCIsIGFuZCBcInxcIiBpbiBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBlc2NhcGUuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZXNjYXBlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZXNjYXBlUmVnRXhwKCdbbG9kYXNoXShodHRwczovL2xvZGFzaC5jb20vKScpO1xuICAgICAqIC8vID0+ICdcXFtsb2Rhc2hcXF1cXChodHRwczovL2xvZGFzaFxcLmNvbS9cXCknXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXNjYXBlUmVnRXhwKHN0cmluZykge1xuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIHJldHVybiAoc3RyaW5nICYmIHJlSGFzUmVnRXhwQ2hhci50ZXN0KHN0cmluZykpXG4gICAgICAgID8gc3RyaW5nLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgICAgICAgOiBzdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG9cbiAgICAgKiBba2ViYWIgY2FzZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGV0dGVyX2Nhc2UjU3BlY2lhbF9jYXNlX3N0eWxlcykuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBrZWJhYiBjYXNlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ua2ViYWJDYXNlKCdGb28gQmFyJyk7XG4gICAgICogLy8gPT4gJ2Zvby1iYXInXG4gICAgICpcbiAgICAgKiBfLmtlYmFiQ2FzZSgnZm9vQmFyJyk7XG4gICAgICogLy8gPT4gJ2Zvby1iYXInXG4gICAgICpcbiAgICAgKiBfLmtlYmFiQ2FzZSgnX19GT09fQkFSX18nKTtcbiAgICAgKiAvLyA9PiAnZm9vLWJhcidcbiAgICAgKi9cbiAgICB2YXIga2ViYWJDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJy0nIDogJycpICsgd29yZC50b0xvd2VyQ2FzZSgpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AsIGFzIHNwYWNlIHNlcGFyYXRlZCB3b3JkcywgdG8gbG93ZXIgY2FzZS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGxvd2VyIGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5sb3dlckNhc2UoJy0tRm9vLUJhci0tJyk7XG4gICAgICogLy8gPT4gJ2ZvbyBiYXInXG4gICAgICpcbiAgICAgKiBfLmxvd2VyQ2FzZSgnZm9vQmFyJyk7XG4gICAgICogLy8gPT4gJ2ZvbyBiYXInXG4gICAgICpcbiAgICAgKiBfLmxvd2VyQ2FzZSgnX19GT09fQkFSX18nKTtcbiAgICAgKiAvLyA9PiAnZm9vIGJhcidcbiAgICAgKi9cbiAgICB2YXIgbG93ZXJDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJyAnIDogJycpICsgd29yZC50b0xvd2VyQ2FzZSgpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBgc3RyaW5nYCB0byBsb3dlciBjYXNlLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5sb3dlckZpcnN0KCdGcmVkJyk7XG4gICAgICogLy8gPT4gJ2ZyZWQnXG4gICAgICpcbiAgICAgKiBfLmxvd2VyRmlyc3QoJ0ZSRUQnKTtcbiAgICAgKiAvLyA9PiAnZlJFRCdcbiAgICAgKi9cbiAgICB2YXIgbG93ZXJGaXJzdCA9IGNyZWF0ZUNhc2VGaXJzdCgndG9Mb3dlckNhc2UnKTtcblxuICAgIC8qKlxuICAgICAqIFBhZHMgYHN0cmluZ2Agb24gdGhlIGxlZnQgYW5kIHJpZ2h0IHNpZGVzIGlmIGl0J3Mgc2hvcnRlciB0aGFuIGBsZW5ndGhgLlxuICAgICAqIFBhZGRpbmcgY2hhcmFjdGVycyBhcmUgdHJ1bmNhdGVkIGlmIHRoZXkgY2FuJ3QgYmUgZXZlbmx5IGRpdmlkZWQgYnkgYGxlbmd0aGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcGFkLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPTBdIFRoZSBwYWRkaW5nIGxlbmd0aC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYXJzPScgJ10gVGhlIHN0cmluZyB1c2VkIGFzIHBhZGRpbmcuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcGFkZGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5wYWQoJ2FiYycsIDgpO1xuICAgICAqIC8vID0+ICcgIGFiYyAgICdcbiAgICAgKlxuICAgICAqIF8ucGFkKCdhYmMnLCA4LCAnXy0nKTtcbiAgICAgKiAvLyA9PiAnXy1hYmNfLV8nXG4gICAgICpcbiAgICAgKiBfLnBhZCgnYWJjJywgMyk7XG4gICAgICogLy8gPT4gJ2FiYydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwYWQoc3RyaW5nLCBsZW5ndGgsIGNoYXJzKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgbGVuZ3RoID0gdG9JbnRlZ2VyKGxlbmd0aCk7XG5cbiAgICAgIHZhciBzdHJMZW5ndGggPSBsZW5ndGggPyBzdHJpbmdTaXplKHN0cmluZykgOiAwO1xuICAgICAgaWYgKCFsZW5ndGggfHwgc3RyTGVuZ3RoID49IGxlbmd0aCkge1xuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgfVxuICAgICAgdmFyIG1pZCA9IChsZW5ndGggLSBzdHJMZW5ndGgpIC8gMjtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGNyZWF0ZVBhZGRpbmcobmF0aXZlRmxvb3IobWlkKSwgY2hhcnMpICtcbiAgICAgICAgc3RyaW5nICtcbiAgICAgICAgY3JlYXRlUGFkZGluZyhuYXRpdmVDZWlsKG1pZCksIGNoYXJzKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYWRzIGBzdHJpbmdgIG9uIHRoZSByaWdodCBzaWRlIGlmIGl0J3Mgc2hvcnRlciB0aGFuIGBsZW5ndGhgLiBQYWRkaW5nXG4gICAgICogY2hhcmFjdGVycyBhcmUgdHJ1bmNhdGVkIGlmIHRoZXkgZXhjZWVkIGBsZW5ndGhgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHBhZC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD0wXSBUaGUgcGFkZGluZyBsZW5ndGguXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtjaGFycz0nICddIFRoZSBzdHJpbmcgdXNlZCBhcyBwYWRkaW5nLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHBhZGRlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucGFkRW5kKCdhYmMnLCA2KTtcbiAgICAgKiAvLyA9PiAnYWJjICAgJ1xuICAgICAqXG4gICAgICogXy5wYWRFbmQoJ2FiYycsIDYsICdfLScpO1xuICAgICAqIC8vID0+ICdhYmNfLV8nXG4gICAgICpcbiAgICAgKiBfLnBhZEVuZCgnYWJjJywgMyk7XG4gICAgICogLy8gPT4gJ2FiYydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwYWRFbmQoc3RyaW5nLCBsZW5ndGgsIGNoYXJzKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgbGVuZ3RoID0gdG9JbnRlZ2VyKGxlbmd0aCk7XG5cbiAgICAgIHZhciBzdHJMZW5ndGggPSBsZW5ndGggPyBzdHJpbmdTaXplKHN0cmluZykgOiAwO1xuICAgICAgcmV0dXJuIChsZW5ndGggJiYgc3RyTGVuZ3RoIDwgbGVuZ3RoKVxuICAgICAgICA/IChzdHJpbmcgKyBjcmVhdGVQYWRkaW5nKGxlbmd0aCAtIHN0ckxlbmd0aCwgY2hhcnMpKVxuICAgICAgICA6IHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYWRzIGBzdHJpbmdgIG9uIHRoZSBsZWZ0IHNpZGUgaWYgaXQncyBzaG9ydGVyIHRoYW4gYGxlbmd0aGAuIFBhZGRpbmdcbiAgICAgKiBjaGFyYWN0ZXJzIGFyZSB0cnVuY2F0ZWQgaWYgdGhleSBleGNlZWQgYGxlbmd0aGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcGFkLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPTBdIFRoZSBwYWRkaW5nIGxlbmd0aC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NoYXJzPScgJ10gVGhlIHN0cmluZyB1c2VkIGFzIHBhZGRpbmcuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcGFkZGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5wYWRTdGFydCgnYWJjJywgNik7XG4gICAgICogLy8gPT4gJyAgIGFiYydcbiAgICAgKlxuICAgICAqIF8ucGFkU3RhcnQoJ2FiYycsIDYsICdfLScpO1xuICAgICAqIC8vID0+ICdfLV9hYmMnXG4gICAgICpcbiAgICAgKiBfLnBhZFN0YXJ0KCdhYmMnLCAzKTtcbiAgICAgKiAvLyA9PiAnYWJjJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHBhZFN0YXJ0KHN0cmluZywgbGVuZ3RoLCBjaGFycykge1xuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIGxlbmd0aCA9IHRvSW50ZWdlcihsZW5ndGgpO1xuXG4gICAgICB2YXIgc3RyTGVuZ3RoID0gbGVuZ3RoID8gc3RyaW5nU2l6ZShzdHJpbmcpIDogMDtcbiAgICAgIHJldHVybiAobGVuZ3RoICYmIHN0ckxlbmd0aCA8IGxlbmd0aClcbiAgICAgICAgPyAoY3JlYXRlUGFkZGluZyhsZW5ndGggLSBzdHJMZW5ndGgsIGNoYXJzKSArIHN0cmluZylcbiAgICAgICAgOiBzdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG8gYW4gaW50ZWdlciBvZiB0aGUgc3BlY2lmaWVkIHJhZGl4LiBJZiBgcmFkaXhgIGlzXG4gICAgICogYHVuZGVmaW5lZGAgb3IgYDBgLCBhIGByYWRpeGAgb2YgYDEwYCBpcyB1c2VkIHVubGVzcyBgdmFsdWVgIGlzIGFcbiAgICAgKiBoZXhhZGVjaW1hbCwgaW4gd2hpY2ggY2FzZSBhIGByYWRpeGAgb2YgYDE2YCBpcyB1c2VkLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGFsaWducyB3aXRoIHRoZVxuICAgICAqIFtFUzUgaW1wbGVtZW50YXRpb25dKGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jeDE1LjEuMi4yKSBvZiBgcGFyc2VJbnRgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDEuMS4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcmFkaXg9MTBdIFRoZSByYWRpeCB0byBpbnRlcnByZXQgYHZhbHVlYCBieS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBpbnRlZ2VyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnBhcnNlSW50KCcwOCcpO1xuICAgICAqIC8vID0+IDhcbiAgICAgKlxuICAgICAqIF8ubWFwKFsnNicsICcwOCcsICcxMCddLCBfLnBhcnNlSW50KTtcbiAgICAgKiAvLyA9PiBbNiwgOCwgMTBdXG4gICAgICovXG4gICAgZnVuY3Rpb24gcGFyc2VJbnQoc3RyaW5nLCByYWRpeCwgZ3VhcmQpIHtcbiAgICAgIGlmIChndWFyZCB8fCByYWRpeCA9PSBudWxsKSB7XG4gICAgICAgIHJhZGl4ID0gMDtcbiAgICAgIH0gZWxzZSBpZiAocmFkaXgpIHtcbiAgICAgICAgcmFkaXggPSArcmFkaXg7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmF0aXZlUGFyc2VJbnQodG9TdHJpbmcoc3RyaW5nKS5yZXBsYWNlKHJlVHJpbVN0YXJ0LCAnJyksIHJhZGl4IHx8IDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlcGVhdHMgdGhlIGdpdmVuIHN0cmluZyBgbmAgdGltZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gcmVwZWF0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0xXSBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIHJlcGVhdCB0aGUgc3RyaW5nLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcmVwZWF0ZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnJlcGVhdCgnKicsIDMpO1xuICAgICAqIC8vID0+ICcqKionXG4gICAgICpcbiAgICAgKiBfLnJlcGVhdCgnYWJjJywgMik7XG4gICAgICogLy8gPT4gJ2FiY2FiYydcbiAgICAgKlxuICAgICAqIF8ucmVwZWF0KCdhYmMnLCAwKTtcbiAgICAgKiAvLyA9PiAnJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlcGVhdChzdHJpbmcsIG4sIGd1YXJkKSB7XG4gICAgICBpZiAoKGd1YXJkID8gaXNJdGVyYXRlZUNhbGwoc3RyaW5nLCBuLCBndWFyZCkgOiBuID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgIG4gPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbiA9IHRvSW50ZWdlcihuKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiYXNlUmVwZWF0KHRvU3RyaW5nKHN0cmluZyksIG4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlcGxhY2VzIG1hdGNoZXMgZm9yIGBwYXR0ZXJuYCBpbiBgc3RyaW5nYCB3aXRoIGByZXBsYWNlbWVudGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb25cbiAgICAgKiBbYFN0cmluZyNyZXBsYWNlYF0oaHR0cHM6Ly9tZG4uaW8vU3RyaW5nL3JlcGxhY2UpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIG1vZGlmeS5cbiAgICAgKiBAcGFyYW0ge1JlZ0V4cHxzdHJpbmd9IHBhdHRlcm4gVGhlIHBhdHRlcm4gdG8gcmVwbGFjZS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufHN0cmluZ30gcmVwbGFjZW1lbnQgVGhlIG1hdGNoIHJlcGxhY2VtZW50LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIG1vZGlmaWVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5yZXBsYWNlKCdIaSBGcmVkJywgJ0ZyZWQnLCAnQmFybmV5Jyk7XG4gICAgICogLy8gPT4gJ0hpIEJhcm5leSdcbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZXBsYWNlKCkge1xuICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgICAgc3RyaW5nID0gdG9TdHJpbmcoYXJnc1swXSk7XG5cbiAgICAgIHJldHVybiBhcmdzLmxlbmd0aCA8IDMgPyBzdHJpbmcgOiBzdHJpbmcucmVwbGFjZShhcmdzWzFdLCBhcmdzWzJdKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCB0b1xuICAgICAqIFtzbmFrZSBjYXNlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TbmFrZV9jYXNlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHNuYWtlIGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zbmFrZUNhc2UoJ0ZvbyBCYXInKTtcbiAgICAgKiAvLyA9PiAnZm9vX2JhcidcbiAgICAgKlxuICAgICAqIF8uc25ha2VDYXNlKCdmb29CYXInKTtcbiAgICAgKiAvLyA9PiAnZm9vX2JhcidcbiAgICAgKlxuICAgICAqIF8uc25ha2VDYXNlKCctLUZPTy1CQVItLScpO1xuICAgICAqIC8vID0+ICdmb29fYmFyJ1xuICAgICAqL1xuICAgIHZhciBzbmFrZUNhc2UgPSBjcmVhdGVDb21wb3VuZGVyKGZ1bmN0aW9uKHJlc3VsdCwgd29yZCwgaW5kZXgpIHtcbiAgICAgIHJldHVybiByZXN1bHQgKyAoaW5kZXggPyAnXycgOiAnJykgKyB3b3JkLnRvTG93ZXJDYXNlKCk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBTcGxpdHMgYHN0cmluZ2AgYnkgYHNlcGFyYXRvcmAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb25cbiAgICAgKiBbYFN0cmluZyNzcGxpdGBdKGh0dHBzOi8vbWRuLmlvL1N0cmluZy9zcGxpdCkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gc3BsaXQuXG4gICAgICogQHBhcmFtIHtSZWdFeHB8c3RyaW5nfSBzZXBhcmF0b3IgVGhlIHNlcGFyYXRvciBwYXR0ZXJuIHRvIHNwbGl0IGJ5LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGltaXRdIFRoZSBsZW5ndGggdG8gdHJ1bmNhdGUgcmVzdWx0cyB0by5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHN0cmluZyBzZWdtZW50cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zcGxpdCgnYS1iLWMnLCAnLScsIDIpO1xuICAgICAqIC8vID0+IFsnYScsICdiJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzcGxpdChzdHJpbmcsIHNlcGFyYXRvciwgbGltaXQpIHtcbiAgICAgIGlmIChsaW1pdCAmJiB0eXBlb2YgbGltaXQgIT0gJ251bWJlcicgJiYgaXNJdGVyYXRlZUNhbGwoc3RyaW5nLCBzZXBhcmF0b3IsIGxpbWl0KSkge1xuICAgICAgICBzZXBhcmF0b3IgPSBsaW1pdCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGxpbWl0ID0gbGltaXQgPT09IHVuZGVmaW5lZCA/IE1BWF9BUlJBWV9MRU5HVEggOiBsaW1pdCA+Pj4gMDtcbiAgICAgIGlmICghbGltaXQpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIGlmIChzdHJpbmcgJiYgKFxuICAgICAgICAgICAgdHlwZW9mIHNlcGFyYXRvciA9PSAnc3RyaW5nJyB8fFxuICAgICAgICAgICAgKHNlcGFyYXRvciAhPSBudWxsICYmICFpc1JlZ0V4cChzZXBhcmF0b3IpKVxuICAgICAgICAgICkpIHtcbiAgICAgICAgc2VwYXJhdG9yID0gYmFzZVRvU3RyaW5nKHNlcGFyYXRvcik7XG4gICAgICAgIGlmICghc2VwYXJhdG9yICYmIGhhc1VuaWNvZGUoc3RyaW5nKSkge1xuICAgICAgICAgIHJldHVybiBjYXN0U2xpY2Uoc3RyaW5nVG9BcnJheShzdHJpbmcpLCAwLCBsaW1pdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBzdHJpbmcuc3BsaXQoc2VwYXJhdG9yLCBsaW1pdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHN0cmluZ2AgdG9cbiAgICAgKiBbc3RhcnQgY2FzZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGV0dGVyX2Nhc2UjU3R5bGlzdGljX29yX3NwZWNpYWxpc2VkX3VzYWdlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjEuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHN0YXJ0IGNhc2VkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zdGFydENhc2UoJy0tZm9vLWJhci0tJyk7XG4gICAgICogLy8gPT4gJ0ZvbyBCYXInXG4gICAgICpcbiAgICAgKiBfLnN0YXJ0Q2FzZSgnZm9vQmFyJyk7XG4gICAgICogLy8gPT4gJ0ZvbyBCYXInXG4gICAgICpcbiAgICAgKiBfLnN0YXJ0Q2FzZSgnX19GT09fQkFSX18nKTtcbiAgICAgKiAvLyA9PiAnRk9PIEJBUidcbiAgICAgKi9cbiAgICB2YXIgc3RhcnRDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJyAnIDogJycpICsgdXBwZXJGaXJzdCh3b3JkKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBgc3RyaW5nYCBzdGFydHMgd2l0aCB0aGUgZ2l2ZW4gdGFyZ2V0IHN0cmluZy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbdGFyZ2V0XSBUaGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtwb3NpdGlvbj0wXSBUaGUgcG9zaXRpb24gdG8gc2VhcmNoIGZyb20uXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBzdHJpbmdgIHN0YXJ0cyB3aXRoIGB0YXJnZXRgLFxuICAgICAqICBlbHNlIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc3RhcnRzV2l0aCgnYWJjJywgJ2EnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBfLnN0YXJ0c1dpdGgoJ2FiYycsICdiJyk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKlxuICAgICAqIF8uc3RhcnRzV2l0aCgnYWJjJywgJ2InLCAxKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3RhcnRzV2l0aChzdHJpbmcsIHRhcmdldCwgcG9zaXRpb24pIHtcbiAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uID09IG51bGxcbiAgICAgICAgPyAwXG4gICAgICAgIDogYmFzZUNsYW1wKHRvSW50ZWdlcihwb3NpdGlvbiksIDAsIHN0cmluZy5sZW5ndGgpO1xuXG4gICAgICB0YXJnZXQgPSBiYXNlVG9TdHJpbmcodGFyZ2V0KTtcbiAgICAgIHJldHVybiBzdHJpbmcuc2xpY2UocG9zaXRpb24sIHBvc2l0aW9uICsgdGFyZ2V0Lmxlbmd0aCkgPT0gdGFyZ2V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjb21waWxlZCB0ZW1wbGF0ZSBmdW5jdGlvbiB0aGF0IGNhbiBpbnRlcnBvbGF0ZSBkYXRhIHByb3BlcnRpZXNcbiAgICAgKiBpbiBcImludGVycG9sYXRlXCIgZGVsaW1pdGVycywgSFRNTC1lc2NhcGUgaW50ZXJwb2xhdGVkIGRhdGEgcHJvcGVydGllcyBpblxuICAgICAqIFwiZXNjYXBlXCIgZGVsaW1pdGVycywgYW5kIGV4ZWN1dGUgSmF2YVNjcmlwdCBpbiBcImV2YWx1YXRlXCIgZGVsaW1pdGVycy4gRGF0YVxuICAgICAqIHByb3BlcnRpZXMgbWF5IGJlIGFjY2Vzc2VkIGFzIGZyZWUgdmFyaWFibGVzIGluIHRoZSB0ZW1wbGF0ZS4gSWYgYSBzZXR0aW5nXG4gICAgICogb2JqZWN0IGlzIGdpdmVuLCBpdCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgYF8udGVtcGxhdGVTZXR0aW5nc2AgdmFsdWVzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIEluIHRoZSBkZXZlbG9wbWVudCBidWlsZCBgXy50ZW1wbGF0ZWAgdXRpbGl6ZXNcbiAgICAgKiBbc291cmNlVVJMc10oaHR0cDovL3d3dy5odG1sNXJvY2tzLmNvbS9lbi90dXRvcmlhbHMvZGV2ZWxvcGVydG9vbHMvc291cmNlbWFwcy8jdG9jLXNvdXJjZXVybClcbiAgICAgKiBmb3IgZWFzaWVyIGRlYnVnZ2luZy5cbiAgICAgKlxuICAgICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHByZWNvbXBpbGluZyB0ZW1wbGF0ZXMgc2VlXG4gICAgICogW2xvZGFzaCdzIGN1c3RvbSBidWlsZHMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9sb2Rhc2guY29tL2N1c3RvbS1idWlsZHMpLlxuICAgICAqXG4gICAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gQ2hyb21lIGV4dGVuc2lvbiBzYW5kYm94ZXMgc2VlXG4gICAgICogW0Nocm9tZSdzIGV4dGVuc2lvbnMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXIuY2hyb21lLmNvbS9leHRlbnNpb25zL3NhbmRib3hpbmdFdmFsKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHRlbXBsYXRlIHN0cmluZy5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cbiAgICAgKiBAcGFyYW0ge1JlZ0V4cH0gW29wdGlvbnMuZXNjYXBlPV8udGVtcGxhdGVTZXR0aW5ncy5lc2NhcGVdXG4gICAgICogIFRoZSBIVE1MIFwiZXNjYXBlXCIgZGVsaW1pdGVyLlxuICAgICAqIEBwYXJhbSB7UmVnRXhwfSBbb3B0aW9ucy5ldmFsdWF0ZT1fLnRlbXBsYXRlU2V0dGluZ3MuZXZhbHVhdGVdXG4gICAgICogIFRoZSBcImV2YWx1YXRlXCIgZGVsaW1pdGVyLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucy5pbXBvcnRzPV8udGVtcGxhdGVTZXR0aW5ncy5pbXBvcnRzXVxuICAgICAqICBBbiBvYmplY3QgdG8gaW1wb3J0IGludG8gdGhlIHRlbXBsYXRlIGFzIGZyZWUgdmFyaWFibGVzLlxuICAgICAqIEBwYXJhbSB7UmVnRXhwfSBbb3B0aW9ucy5pbnRlcnBvbGF0ZT1fLnRlbXBsYXRlU2V0dGluZ3MuaW50ZXJwb2xhdGVdXG4gICAgICogIFRoZSBcImludGVycG9sYXRlXCIgZGVsaW1pdGVyLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5zb3VyY2VVUkw9J2xvZGFzaC50ZW1wbGF0ZVNvdXJjZXNbbl0nXVxuICAgICAqICBUaGUgc291cmNlVVJMIG9mIHRoZSBjb21waWxlZCB0ZW1wbGF0ZS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMudmFyaWFibGU9J29iaiddXG4gICAgICogIFRoZSBkYXRhIG9iamVjdCB2YXJpYWJsZSBuYW1lLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBjb21waWxlZCB0ZW1wbGF0ZSBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gVXNlIHRoZSBcImludGVycG9sYXRlXCIgZGVsaW1pdGVyIHRvIGNyZWF0ZSBhIGNvbXBpbGVkIHRlbXBsYXRlLlxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hlbGxvIDwlPSB1c2VyICU+IScpO1xuICAgICAqIGNvbXBpbGVkKHsgJ3VzZXInOiAnZnJlZCcgfSk7XG4gICAgICogLy8gPT4gJ2hlbGxvIGZyZWQhJ1xuICAgICAqXG4gICAgICogLy8gVXNlIHRoZSBIVE1MIFwiZXNjYXBlXCIgZGVsaW1pdGVyIHRvIGVzY2FwZSBkYXRhIHByb3BlcnR5IHZhbHVlcy5cbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCc8Yj48JS0gdmFsdWUgJT48L2I+Jyk7XG4gICAgICogY29tcGlsZWQoeyAndmFsdWUnOiAnPHNjcmlwdD4nIH0pO1xuICAgICAqIC8vID0+ICc8Yj4mbHQ7c2NyaXB0Jmd0OzwvYj4nXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIFwiZXZhbHVhdGVcIiBkZWxpbWl0ZXIgdG8gZXhlY3V0ZSBKYXZhU2NyaXB0IGFuZCBnZW5lcmF0ZSBIVE1MLlxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzwlIF8uZm9yRWFjaCh1c2VycywgZnVuY3Rpb24odXNlcikgeyAlPjxsaT48JS0gdXNlciAlPjwvbGk+PCUgfSk7ICU+Jyk7XG4gICAgICogY29tcGlsZWQoeyAndXNlcnMnOiBbJ2ZyZWQnLCAnYmFybmV5J10gfSk7XG4gICAgICogLy8gPT4gJzxsaT5mcmVkPC9saT48bGk+YmFybmV5PC9saT4nXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIGludGVybmFsIGBwcmludGAgZnVuY3Rpb24gaW4gXCJldmFsdWF0ZVwiIGRlbGltaXRlcnMuXG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnPCUgcHJpbnQoXCJoZWxsbyBcIiArIHVzZXIpOyAlPiEnKTtcbiAgICAgKiBjb21waWxlZCh7ICd1c2VyJzogJ2Jhcm5leScgfSk7XG4gICAgICogLy8gPT4gJ2hlbGxvIGJhcm5leSEnXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIEVTIHRlbXBsYXRlIGxpdGVyYWwgZGVsaW1pdGVyIGFzIGFuIFwiaW50ZXJwb2xhdGVcIiBkZWxpbWl0ZXIuXG4gICAgICogLy8gRGlzYWJsZSBzdXBwb3J0IGJ5IHJlcGxhY2luZyB0aGUgXCJpbnRlcnBvbGF0ZVwiIGRlbGltaXRlci5cbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyAkeyB1c2VyIH0hJyk7XG4gICAgICogY29tcGlsZWQoeyAndXNlcic6ICdwZWJibGVzJyB9KTtcbiAgICAgKiAvLyA9PiAnaGVsbG8gcGViYmxlcyEnXG4gICAgICpcbiAgICAgKiAvLyBVc2UgYmFja3NsYXNoZXMgdG8gdHJlYXQgZGVsaW1pdGVycyBhcyBwbGFpbiB0ZXh0LlxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzwlPSBcIlxcXFw8JS0gdmFsdWUgJVxcXFw+XCIgJT4nKTtcbiAgICAgKiBjb21waWxlZCh7ICd2YWx1ZSc6ICdpZ25vcmVkJyB9KTtcbiAgICAgKiAvLyA9PiAnPCUtIHZhbHVlICU+J1xuICAgICAqXG4gICAgICogLy8gVXNlIHRoZSBgaW1wb3J0c2Agb3B0aW9uIHRvIGltcG9ydCBgalF1ZXJ5YCBhcyBganFgLlxuICAgICAqIHZhciB0ZXh0ID0gJzwlIGpxLmVhY2godXNlcnMsIGZ1bmN0aW9uKHVzZXIpIHsgJT48bGk+PCUtIHVzZXIgJT48L2xpPjwlIH0pOyAlPic7XG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSh0ZXh0LCB7ICdpbXBvcnRzJzogeyAnanEnOiBqUXVlcnkgfSB9KTtcbiAgICAgKiBjb21waWxlZCh7ICd1c2Vycyc6IFsnZnJlZCcsICdiYXJuZXknXSB9KTtcbiAgICAgKiAvLyA9PiAnPGxpPmZyZWQ8L2xpPjxsaT5iYXJuZXk8L2xpPidcbiAgICAgKlxuICAgICAqIC8vIFVzZSB0aGUgYHNvdXJjZVVSTGAgb3B0aW9uIHRvIHNwZWNpZnkgYSBjdXN0b20gc291cmNlVVJMIGZvciB0aGUgdGVtcGxhdGUuXG4gICAgICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnaGVsbG8gPCU9IHVzZXIgJT4hJywgeyAnc291cmNlVVJMJzogJy9iYXNpYy9ncmVldGluZy5qc3QnIH0pO1xuICAgICAqIGNvbXBpbGVkKGRhdGEpO1xuICAgICAqIC8vID0+IEZpbmQgdGhlIHNvdXJjZSBvZiBcImdyZWV0aW5nLmpzdFwiIHVuZGVyIHRoZSBTb3VyY2VzIHRhYiBvciBSZXNvdXJjZXMgcGFuZWwgb2YgdGhlIHdlYiBpbnNwZWN0b3IuXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIGB2YXJpYWJsZWAgb3B0aW9uIHRvIGVuc3VyZSBhIHdpdGgtc3RhdGVtZW50IGlzbid0IHVzZWQgaW4gdGhlIGNvbXBpbGVkIHRlbXBsYXRlLlxuICAgICAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hpIDwlPSBkYXRhLnVzZXIgJT4hJywgeyAndmFyaWFibGUnOiAnZGF0YScgfSk7XG4gICAgICogY29tcGlsZWQuc291cmNlO1xuICAgICAqIC8vID0+IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgKiAvLyAgIHZhciBfX3QsIF9fcCA9ICcnO1xuICAgICAqIC8vICAgX19wICs9ICdoaSAnICsgKChfX3QgPSAoIGRhdGEudXNlciApKSA9PSBudWxsID8gJycgOiBfX3QpICsgJyEnO1xuICAgICAqIC8vICAgcmV0dXJuIF9fcDtcbiAgICAgKiAvLyB9XG4gICAgICpcbiAgICAgKiAvLyBVc2UgY3VzdG9tIHRlbXBsYXRlIGRlbGltaXRlcnMuXG4gICAgICogXy50ZW1wbGF0ZVNldHRpbmdzLmludGVycG9sYXRlID0gL3t7KFtcXHNcXFNdKz8pfX0vZztcbiAgICAgKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyB7eyB1c2VyIH19IScpO1xuICAgICAqIGNvbXBpbGVkKHsgJ3VzZXInOiAnbXVzdGFjaGUnIH0pO1xuICAgICAqIC8vID0+ICdoZWxsbyBtdXN0YWNoZSEnXG4gICAgICpcbiAgICAgKiAvLyBVc2UgdGhlIGBzb3VyY2VgIHByb3BlcnR5IHRvIGlubGluZSBjb21waWxlZCB0ZW1wbGF0ZXMgZm9yIG1lYW5pbmdmdWxcbiAgICAgKiAvLyBsaW5lIG51bWJlcnMgaW4gZXJyb3IgbWVzc2FnZXMgYW5kIHN0YWNrIHRyYWNlcy5cbiAgICAgKiBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnanN0LmpzJyksICdcXFxuICAgICAqICAgdmFyIEpTVCA9IHtcXFxuICAgICAqICAgICBcIm1haW5cIjogJyArIF8udGVtcGxhdGUobWFpblRleHQpLnNvdXJjZSArICdcXFxuICAgICAqICAgfTtcXFxuICAgICAqICcpO1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRlbXBsYXRlKHN0cmluZywgb3B0aW9ucywgZ3VhcmQpIHtcbiAgICAgIC8vIEJhc2VkIG9uIEpvaG4gUmVzaWcncyBgdG1wbGAgaW1wbGVtZW50YXRpb25cbiAgICAgIC8vIChodHRwOi8vZWpvaG4ub3JnL2Jsb2cvamF2YXNjcmlwdC1taWNyby10ZW1wbGF0aW5nLylcbiAgICAgIC8vIGFuZCBMYXVyYSBEb2t0b3JvdmEncyBkb1QuanMgKGh0dHBzOi8vZ2l0aHViLmNvbS9vbGFkby9kb1QpLlxuICAgICAgdmFyIHNldHRpbmdzID0gbG9kYXNoLnRlbXBsYXRlU2V0dGluZ3M7XG5cbiAgICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzdHJpbmcsIG9wdGlvbnMsIGd1YXJkKSkge1xuICAgICAgICBvcHRpb25zID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIG9wdGlvbnMgPSBhc3NpZ25JbldpdGgoe30sIG9wdGlvbnMsIHNldHRpbmdzLCBjdXN0b21EZWZhdWx0c0Fzc2lnbkluKTtcblxuICAgICAgdmFyIGltcG9ydHMgPSBhc3NpZ25JbldpdGgoe30sIG9wdGlvbnMuaW1wb3J0cywgc2V0dGluZ3MuaW1wb3J0cywgY3VzdG9tRGVmYXVsdHNBc3NpZ25JbiksXG4gICAgICAgICAgaW1wb3J0c0tleXMgPSBrZXlzKGltcG9ydHMpLFxuICAgICAgICAgIGltcG9ydHNWYWx1ZXMgPSBiYXNlVmFsdWVzKGltcG9ydHMsIGltcG9ydHNLZXlzKTtcblxuICAgICAgdmFyIGlzRXNjYXBpbmcsXG4gICAgICAgICAgaXNFdmFsdWF0aW5nLFxuICAgICAgICAgIGluZGV4ID0gMCxcbiAgICAgICAgICBpbnRlcnBvbGF0ZSA9IG9wdGlvbnMuaW50ZXJwb2xhdGUgfHwgcmVOb01hdGNoLFxuICAgICAgICAgIHNvdXJjZSA9IFwiX19wICs9ICdcIjtcblxuICAgICAgLy8gQ29tcGlsZSB0aGUgcmVnZXhwIHRvIG1hdGNoIGVhY2ggZGVsaW1pdGVyLlxuICAgICAgdmFyIHJlRGVsaW1pdGVycyA9IFJlZ0V4cChcbiAgICAgICAgKG9wdGlvbnMuZXNjYXBlIHx8IHJlTm9NYXRjaCkuc291cmNlICsgJ3wnICtcbiAgICAgICAgaW50ZXJwb2xhdGUuc291cmNlICsgJ3wnICtcbiAgICAgICAgKGludGVycG9sYXRlID09PSByZUludGVycG9sYXRlID8gcmVFc1RlbXBsYXRlIDogcmVOb01hdGNoKS5zb3VyY2UgKyAnfCcgK1xuICAgICAgICAob3B0aW9ucy5ldmFsdWF0ZSB8fCByZU5vTWF0Y2gpLnNvdXJjZSArICd8JCdcbiAgICAgICwgJ2cnKTtcblxuICAgICAgLy8gVXNlIGEgc291cmNlVVJMIGZvciBlYXNpZXIgZGVidWdnaW5nLlxuICAgICAgLy8gVGhlIHNvdXJjZVVSTCBnZXRzIGluamVjdGVkIGludG8gdGhlIHNvdXJjZSB0aGF0J3MgZXZhbC1lZCwgc28gYmUgY2FyZWZ1bFxuICAgICAgLy8gdG8gbm9ybWFsaXplIGFsbCBraW5kcyBvZiB3aGl0ZXNwYWNlLCBzbyBlLmcuIG5ld2xpbmVzIChhbmQgdW5pY29kZSB2ZXJzaW9ucyBvZiBpdCkgY2FuJ3Qgc25lYWsgaW5cbiAgICAgIC8vIGFuZCBlc2NhcGUgdGhlIGNvbW1lbnQsIHRodXMgaW5qZWN0aW5nIGNvZGUgdGhhdCBnZXRzIGV2YWxlZC5cbiAgICAgIHZhciBzb3VyY2VVUkwgPSAnLy8jIHNvdXJjZVVSTD0nICtcbiAgICAgICAgKGhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucywgJ3NvdXJjZVVSTCcpXG4gICAgICAgICAgPyAob3B0aW9ucy5zb3VyY2VVUkwgKyAnJykucmVwbGFjZSgvXFxzL2csICcgJylcbiAgICAgICAgICA6ICgnbG9kYXNoLnRlbXBsYXRlU291cmNlc1snICsgKCsrdGVtcGxhdGVDb3VudGVyKSArICddJylcbiAgICAgICAgKSArICdcXG4nO1xuXG4gICAgICBzdHJpbmcucmVwbGFjZShyZURlbGltaXRlcnMsIGZ1bmN0aW9uKG1hdGNoLCBlc2NhcGVWYWx1ZSwgaW50ZXJwb2xhdGVWYWx1ZSwgZXNUZW1wbGF0ZVZhbHVlLCBldmFsdWF0ZVZhbHVlLCBvZmZzZXQpIHtcbiAgICAgICAgaW50ZXJwb2xhdGVWYWx1ZSB8fCAoaW50ZXJwb2xhdGVWYWx1ZSA9IGVzVGVtcGxhdGVWYWx1ZSk7XG5cbiAgICAgICAgLy8gRXNjYXBlIGNoYXJhY3RlcnMgdGhhdCBjYW4ndCBiZSBpbmNsdWRlZCBpbiBzdHJpbmcgbGl0ZXJhbHMuXG4gICAgICAgIHNvdXJjZSArPSBzdHJpbmcuc2xpY2UoaW5kZXgsIG9mZnNldCkucmVwbGFjZShyZVVuZXNjYXBlZFN0cmluZywgZXNjYXBlU3RyaW5nQ2hhcik7XG5cbiAgICAgICAgLy8gUmVwbGFjZSBkZWxpbWl0ZXJzIHdpdGggc25pcHBldHMuXG4gICAgICAgIGlmIChlc2NhcGVWYWx1ZSkge1xuICAgICAgICAgIGlzRXNjYXBpbmcgPSB0cnVlO1xuICAgICAgICAgIHNvdXJjZSArPSBcIicgK1xcbl9fZShcIiArIGVzY2FwZVZhbHVlICsgXCIpICtcXG4nXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2YWx1YXRlVmFsdWUpIHtcbiAgICAgICAgICBpc0V2YWx1YXRpbmcgPSB0cnVlO1xuICAgICAgICAgIHNvdXJjZSArPSBcIic7XFxuXCIgKyBldmFsdWF0ZVZhbHVlICsgXCI7XFxuX19wICs9ICdcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW50ZXJwb2xhdGVWYWx1ZSkge1xuICAgICAgICAgIHNvdXJjZSArPSBcIicgK1xcbigoX190ID0gKFwiICsgaW50ZXJwb2xhdGVWYWx1ZSArIFwiKSkgPT0gbnVsbCA/ICcnIDogX190KSArXFxuJ1wiO1xuICAgICAgICB9XG4gICAgICAgIGluZGV4ID0gb2Zmc2V0ICsgbWF0Y2gubGVuZ3RoO1xuXG4gICAgICAgIC8vIFRoZSBKUyBlbmdpbmUgZW1iZWRkZWQgaW4gQWRvYmUgcHJvZHVjdHMgbmVlZHMgYG1hdGNoYCByZXR1cm5lZCBpblxuICAgICAgICAvLyBvcmRlciB0byBwcm9kdWNlIHRoZSBjb3JyZWN0IGBvZmZzZXRgIHZhbHVlLlxuICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICB9KTtcblxuICAgICAgc291cmNlICs9IFwiJztcXG5cIjtcblxuICAgICAgLy8gSWYgYHZhcmlhYmxlYCBpcyBub3Qgc3BlY2lmaWVkIHdyYXAgYSB3aXRoLXN0YXRlbWVudCBhcm91bmQgdGhlIGdlbmVyYXRlZFxuICAgICAgLy8gY29kZSB0byBhZGQgdGhlIGRhdGEgb2JqZWN0IHRvIHRoZSB0b3Agb2YgdGhlIHNjb3BlIGNoYWluLlxuICAgICAgdmFyIHZhcmlhYmxlID0gaGFzT3duUHJvcGVydHkuY2FsbChvcHRpb25zLCAndmFyaWFibGUnKSAmJiBvcHRpb25zLnZhcmlhYmxlO1xuICAgICAgaWYgKCF2YXJpYWJsZSkge1xuICAgICAgICBzb3VyY2UgPSAnd2l0aCAob2JqKSB7XFxuJyArIHNvdXJjZSArICdcXG59XFxuJztcbiAgICAgIH1cbiAgICAgIC8vIFRocm93IGFuIGVycm9yIGlmIGEgZm9yYmlkZGVuIGNoYXJhY3RlciB3YXMgZm91bmQgaW4gYHZhcmlhYmxlYCwgdG8gcHJldmVudFxuICAgICAgLy8gcG90ZW50aWFsIGNvbW1hbmQgaW5qZWN0aW9uIGF0dGFja3MuXG4gICAgICBlbHNlIGlmIChyZUZvcmJpZGRlbklkZW50aWZpZXJDaGFycy50ZXN0KHZhcmlhYmxlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoSU5WQUxJRF9URU1QTF9WQVJfRVJST1JfVEVYVCk7XG4gICAgICB9XG5cbiAgICAgIC8vIENsZWFudXAgY29kZSBieSBzdHJpcHBpbmcgZW1wdHkgc3RyaW5ncy5cbiAgICAgIHNvdXJjZSA9IChpc0V2YWx1YXRpbmcgPyBzb3VyY2UucmVwbGFjZShyZUVtcHR5U3RyaW5nTGVhZGluZywgJycpIDogc291cmNlKVxuICAgICAgICAucmVwbGFjZShyZUVtcHR5U3RyaW5nTWlkZGxlLCAnJDEnKVxuICAgICAgICAucmVwbGFjZShyZUVtcHR5U3RyaW5nVHJhaWxpbmcsICckMTsnKTtcblxuICAgICAgLy8gRnJhbWUgY29kZSBhcyB0aGUgZnVuY3Rpb24gYm9keS5cbiAgICAgIHNvdXJjZSA9ICdmdW5jdGlvbignICsgKHZhcmlhYmxlIHx8ICdvYmonKSArICcpIHtcXG4nICtcbiAgICAgICAgKHZhcmlhYmxlXG4gICAgICAgICAgPyAnJ1xuICAgICAgICAgIDogJ29iaiB8fCAob2JqID0ge30pO1xcbidcbiAgICAgICAgKSArXG4gICAgICAgIFwidmFyIF9fdCwgX19wID0gJydcIiArXG4gICAgICAgIChpc0VzY2FwaW5nXG4gICAgICAgICAgID8gJywgX19lID0gXy5lc2NhcGUnXG4gICAgICAgICAgIDogJydcbiAgICAgICAgKSArXG4gICAgICAgIChpc0V2YWx1YXRpbmdcbiAgICAgICAgICA/ICcsIF9faiA9IEFycmF5LnByb3RvdHlwZS5qb2luO1xcbicgK1xuICAgICAgICAgICAgXCJmdW5jdGlvbiBwcmludCgpIHsgX19wICs9IF9fai5jYWxsKGFyZ3VtZW50cywgJycpIH1cXG5cIlxuICAgICAgICAgIDogJztcXG4nXG4gICAgICAgICkgK1xuICAgICAgICBzb3VyY2UgK1xuICAgICAgICAncmV0dXJuIF9fcFxcbn0nO1xuXG4gICAgICB2YXIgcmVzdWx0ID0gYXR0ZW1wdChmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEZ1bmN0aW9uKGltcG9ydHNLZXlzLCBzb3VyY2VVUkwgKyAncmV0dXJuICcgKyBzb3VyY2UpXG4gICAgICAgICAgLmFwcGx5KHVuZGVmaW5lZCwgaW1wb3J0c1ZhbHVlcyk7XG4gICAgICB9KTtcblxuICAgICAgLy8gUHJvdmlkZSB0aGUgY29tcGlsZWQgZnVuY3Rpb24ncyBzb3VyY2UgYnkgaXRzIGB0b1N0cmluZ2AgbWV0aG9kIG9yXG4gICAgICAvLyB0aGUgYHNvdXJjZWAgcHJvcGVydHkgYXMgYSBjb252ZW5pZW5jZSBmb3IgaW5saW5pbmcgY29tcGlsZWQgdGVtcGxhdGVzLlxuICAgICAgcmVzdWx0LnNvdXJjZSA9IHNvdXJjZTtcbiAgICAgIGlmIChpc0Vycm9yKHJlc3VsdCkpIHtcbiAgICAgICAgdGhyb3cgcmVzdWx0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCwgYXMgYSB3aG9sZSwgdG8gbG93ZXIgY2FzZSBqdXN0IGxpa2VcbiAgICAgKiBbU3RyaW5nI3RvTG93ZXJDYXNlXShodHRwczovL21kbi5pby90b0xvd2VyQ2FzZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBsb3dlciBjYXNlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9Mb3dlcignLS1Gb28tQmFyLS0nKTtcbiAgICAgKiAvLyA9PiAnLS1mb28tYmFyLS0nXG4gICAgICpcbiAgICAgKiBfLnRvTG93ZXIoJ2Zvb0JhcicpO1xuICAgICAqIC8vID0+ICdmb29iYXInXG4gICAgICpcbiAgICAgKiBfLnRvTG93ZXIoJ19fRk9PX0JBUl9fJyk7XG4gICAgICogLy8gPT4gJ19fZm9vX2Jhcl9fJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvTG93ZXIodmFsdWUpIHtcbiAgICAgIHJldHVybiB0b1N0cmluZyh2YWx1ZSkudG9Mb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCwgYXMgYSB3aG9sZSwgdG8gdXBwZXIgY2FzZSBqdXN0IGxpa2VcbiAgICAgKiBbU3RyaW5nI3RvVXBwZXJDYXNlXShodHRwczovL21kbi5pby90b1VwcGVyQ2FzZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgU3RyaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gY29udmVydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSB1cHBlciBjYXNlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udG9VcHBlcignLS1mb28tYmFyLS0nKTtcbiAgICAgKiAvLyA9PiAnLS1GT08tQkFSLS0nXG4gICAgICpcbiAgICAgKiBfLnRvVXBwZXIoJ2Zvb0JhcicpO1xuICAgICAqIC8vID0+ICdGT09CQVInXG4gICAgICpcbiAgICAgKiBfLnRvVXBwZXIoJ19fZm9vX2Jhcl9fJyk7XG4gICAgICogLy8gPT4gJ19fRk9PX0JBUl9fJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvVXBwZXIodmFsdWUpIHtcbiAgICAgIHJldHVybiB0b1N0cmluZyh2YWx1ZSkudG9VcHBlckNhc2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2Ugb3Igc3BlY2lmaWVkIGNoYXJhY3RlcnMgZnJvbSBgc3RyaW5nYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byB0cmltLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY2hhcnM9d2hpdGVzcGFjZV0gVGhlIGNoYXJhY3RlcnMgdG8gdHJpbS5cbiAgICAgKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHRyaW1tZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRyaW0oJyAgYWJjICAnKTtcbiAgICAgKiAvLyA9PiAnYWJjJ1xuICAgICAqXG4gICAgICogXy50cmltKCctXy1hYmMtXy0nLCAnXy0nKTtcbiAgICAgKiAvLyA9PiAnYWJjJ1xuICAgICAqXG4gICAgICogXy5tYXAoWycgIGZvbyAgJywgJyAgYmFyICAnXSwgXy50cmltKTtcbiAgICAgKiAvLyA9PiBbJ2ZvbycsICdiYXInXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRyaW0oc3RyaW5nLCBjaGFycywgZ3VhcmQpIHtcbiAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICBpZiAoc3RyaW5nICYmIChndWFyZCB8fCBjaGFycyA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICByZXR1cm4gYmFzZVRyaW0oc3RyaW5nKTtcbiAgICAgIH1cbiAgICAgIGlmICghc3RyaW5nIHx8ICEoY2hhcnMgPSBiYXNlVG9TdHJpbmcoY2hhcnMpKSkge1xuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgfVxuICAgICAgdmFyIHN0clN5bWJvbHMgPSBzdHJpbmdUb0FycmF5KHN0cmluZyksXG4gICAgICAgICAgY2hyU3ltYm9scyA9IHN0cmluZ1RvQXJyYXkoY2hhcnMpLFxuICAgICAgICAgIHN0YXJ0ID0gY2hhcnNTdGFydEluZGV4KHN0clN5bWJvbHMsIGNoclN5bWJvbHMpLFxuICAgICAgICAgIGVuZCA9IGNoYXJzRW5kSW5kZXgoc3RyU3ltYm9scywgY2hyU3ltYm9scykgKyAxO1xuXG4gICAgICByZXR1cm4gY2FzdFNsaWNlKHN0clN5bWJvbHMsIHN0YXJ0LCBlbmQpLmpvaW4oJycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdHJhaWxpbmcgd2hpdGVzcGFjZSBvciBzcGVjaWZpZWQgY2hhcmFjdGVycyBmcm9tIGBzdHJpbmdgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHRyaW0uXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtjaGFycz13aGl0ZXNwYWNlXSBUaGUgY2hhcmFjdGVycyB0byB0cmltLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdHJpbW1lZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udHJpbUVuZCgnICBhYmMgICcpO1xuICAgICAqIC8vID0+ICcgIGFiYydcbiAgICAgKlxuICAgICAqIF8udHJpbUVuZCgnLV8tYWJjLV8tJywgJ18tJyk7XG4gICAgICogLy8gPT4gJy1fLWFiYydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0cmltRW5kKHN0cmluZywgY2hhcnMsIGd1YXJkKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgaWYgKHN0cmluZyAmJiAoZ3VhcmQgfHwgY2hhcnMgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZy5zbGljZSgwLCB0cmltbWVkRW5kSW5kZXgoc3RyaW5nKSArIDEpO1xuICAgICAgfVxuICAgICAgaWYgKCFzdHJpbmcgfHwgIShjaGFycyA9IGJhc2VUb1N0cmluZyhjaGFycykpKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICB9XG4gICAgICB2YXIgc3RyU3ltYm9scyA9IHN0cmluZ1RvQXJyYXkoc3RyaW5nKSxcbiAgICAgICAgICBlbmQgPSBjaGFyc0VuZEluZGV4KHN0clN5bWJvbHMsIHN0cmluZ1RvQXJyYXkoY2hhcnMpKSArIDE7XG5cbiAgICAgIHJldHVybiBjYXN0U2xpY2Uoc3RyU3ltYm9scywgMCwgZW5kKS5qb2luKCcnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGxlYWRpbmcgd2hpdGVzcGFjZSBvciBzcGVjaWZpZWQgY2hhcmFjdGVycyBmcm9tIGBzdHJpbmdgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHRyaW0uXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtjaGFycz13aGl0ZXNwYWNlXSBUaGUgY2hhcmFjdGVycyB0byB0cmltLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdHJpbW1lZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udHJpbVN0YXJ0KCcgIGFiYyAgJyk7XG4gICAgICogLy8gPT4gJ2FiYyAgJ1xuICAgICAqXG4gICAgICogXy50cmltU3RhcnQoJy1fLWFiYy1fLScsICdfLScpO1xuICAgICAqIC8vID0+ICdhYmMtXy0nXG4gICAgICovXG4gICAgZnVuY3Rpb24gdHJpbVN0YXJ0KHN0cmluZywgY2hhcnMsIGd1YXJkKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgaWYgKHN0cmluZyAmJiAoZ3VhcmQgfHwgY2hhcnMgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKHJlVHJpbVN0YXJ0LCAnJyk7XG4gICAgICB9XG4gICAgICBpZiAoIXN0cmluZyB8fCAhKGNoYXJzID0gYmFzZVRvU3RyaW5nKGNoYXJzKSkpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgIH1cbiAgICAgIHZhciBzdHJTeW1ib2xzID0gc3RyaW5nVG9BcnJheShzdHJpbmcpLFxuICAgICAgICAgIHN0YXJ0ID0gY2hhcnNTdGFydEluZGV4KHN0clN5bWJvbHMsIHN0cmluZ1RvQXJyYXkoY2hhcnMpKTtcblxuICAgICAgcmV0dXJuIGNhc3RTbGljZShzdHJTeW1ib2xzLCBzdGFydCkuam9pbignJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJ1bmNhdGVzIGBzdHJpbmdgIGlmIGl0J3MgbG9uZ2VyIHRoYW4gdGhlIGdpdmVuIG1heGltdW0gc3RyaW5nIGxlbmd0aC5cbiAgICAgKiBUaGUgbGFzdCBjaGFyYWN0ZXJzIG9mIHRoZSB0cnVuY2F0ZWQgc3RyaW5nIGFyZSByZXBsYWNlZCB3aXRoIHRoZSBvbWlzc2lvblxuICAgICAqIHN0cmluZyB3aGljaCBkZWZhdWx0cyB0byBcIi4uLlwiLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHRydW5jYXRlLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5sZW5ndGg9MzBdIFRoZSBtYXhpbXVtIHN0cmluZyBsZW5ndGguXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLm9taXNzaW9uPScuLi4nXSBUaGUgc3RyaW5nIHRvIGluZGljYXRlIHRleHQgaXMgb21pdHRlZC5cbiAgICAgKiBAcGFyYW0ge1JlZ0V4cHxzdHJpbmd9IFtvcHRpb25zLnNlcGFyYXRvcl0gVGhlIHNlcGFyYXRvciBwYXR0ZXJuIHRvIHRydW5jYXRlIHRvLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHRydW5jYXRlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udHJ1bmNhdGUoJ2hpLWRpZGRseS1obyB0aGVyZSwgbmVpZ2hib3Jpbm8nKTtcbiAgICAgKiAvLyA9PiAnaGktZGlkZGx5LWhvIHRoZXJlLCBuZWlnaGJvLi4uJ1xuICAgICAqXG4gICAgICogXy50cnVuY2F0ZSgnaGktZGlkZGx5LWhvIHRoZXJlLCBuZWlnaGJvcmlubycsIHtcbiAgICAgKiAgICdsZW5ndGgnOiAyNCxcbiAgICAgKiAgICdzZXBhcmF0b3InOiAnICdcbiAgICAgKiB9KTtcbiAgICAgKiAvLyA9PiAnaGktZGlkZGx5LWhvIHRoZXJlLC4uLidcbiAgICAgKlxuICAgICAqIF8udHJ1bmNhdGUoJ2hpLWRpZGRseS1obyB0aGVyZSwgbmVpZ2hib3Jpbm8nLCB7XG4gICAgICogICAnbGVuZ3RoJzogMjQsXG4gICAgICogICAnc2VwYXJhdG9yJzogLyw/ICsvXG4gICAgICogfSk7XG4gICAgICogLy8gPT4gJ2hpLWRpZGRseS1obyB0aGVyZS4uLidcbiAgICAgKlxuICAgICAqIF8udHJ1bmNhdGUoJ2hpLWRpZGRseS1obyB0aGVyZSwgbmVpZ2hib3Jpbm8nLCB7XG4gICAgICogICAnb21pc3Npb24nOiAnIFsuLi5dJ1xuICAgICAqIH0pO1xuICAgICAqIC8vID0+ICdoaS1kaWRkbHktaG8gdGhlcmUsIG5laWcgWy4uLl0nXG4gICAgICovXG4gICAgZnVuY3Rpb24gdHJ1bmNhdGUoc3RyaW5nLCBvcHRpb25zKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gREVGQVVMVF9UUlVOQ19MRU5HVEgsXG4gICAgICAgICAgb21pc3Npb24gPSBERUZBVUxUX1RSVU5DX09NSVNTSU9OO1xuXG4gICAgICBpZiAoaXNPYmplY3Qob3B0aW9ucykpIHtcbiAgICAgICAgdmFyIHNlcGFyYXRvciA9ICdzZXBhcmF0b3InIGluIG9wdGlvbnMgPyBvcHRpb25zLnNlcGFyYXRvciA6IHNlcGFyYXRvcjtcbiAgICAgICAgbGVuZ3RoID0gJ2xlbmd0aCcgaW4gb3B0aW9ucyA/IHRvSW50ZWdlcihvcHRpb25zLmxlbmd0aCkgOiBsZW5ndGg7XG4gICAgICAgIG9taXNzaW9uID0gJ29taXNzaW9uJyBpbiBvcHRpb25zID8gYmFzZVRvU3RyaW5nKG9wdGlvbnMub21pc3Npb24pIDogb21pc3Npb247XG4gICAgICB9XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuXG4gICAgICB2YXIgc3RyTGVuZ3RoID0gc3RyaW5nLmxlbmd0aDtcbiAgICAgIGlmIChoYXNVbmljb2RlKHN0cmluZykpIHtcbiAgICAgICAgdmFyIHN0clN5bWJvbHMgPSBzdHJpbmdUb0FycmF5KHN0cmluZyk7XG4gICAgICAgIHN0ckxlbmd0aCA9IHN0clN5bWJvbHMubGVuZ3RoO1xuICAgICAgfVxuICAgICAgaWYgKGxlbmd0aCA+PSBzdHJMZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgIH1cbiAgICAgIHZhciBlbmQgPSBsZW5ndGggLSBzdHJpbmdTaXplKG9taXNzaW9uKTtcbiAgICAgIGlmIChlbmQgPCAxKSB7XG4gICAgICAgIHJldHVybiBvbWlzc2lvbjtcbiAgICAgIH1cbiAgICAgIHZhciByZXN1bHQgPSBzdHJTeW1ib2xzXG4gICAgICAgID8gY2FzdFNsaWNlKHN0clN5bWJvbHMsIDAsIGVuZCkuam9pbignJylcbiAgICAgICAgOiBzdHJpbmcuc2xpY2UoMCwgZW5kKTtcblxuICAgICAgaWYgKHNlcGFyYXRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQgKyBvbWlzc2lvbjtcbiAgICAgIH1cbiAgICAgIGlmIChzdHJTeW1ib2xzKSB7XG4gICAgICAgIGVuZCArPSAocmVzdWx0Lmxlbmd0aCAtIGVuZCk7XG4gICAgICB9XG4gICAgICBpZiAoaXNSZWdFeHAoc2VwYXJhdG9yKSkge1xuICAgICAgICBpZiAoc3RyaW5nLnNsaWNlKGVuZCkuc2VhcmNoKHNlcGFyYXRvcikpIHtcbiAgICAgICAgICB2YXIgbWF0Y2gsXG4gICAgICAgICAgICAgIHN1YnN0cmluZyA9IHJlc3VsdDtcblxuICAgICAgICAgIGlmICghc2VwYXJhdG9yLmdsb2JhbCkge1xuICAgICAgICAgICAgc2VwYXJhdG9yID0gUmVnRXhwKHNlcGFyYXRvci5zb3VyY2UsIHRvU3RyaW5nKHJlRmxhZ3MuZXhlYyhzZXBhcmF0b3IpKSArICdnJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNlcGFyYXRvci5sYXN0SW5kZXggPSAwO1xuICAgICAgICAgIHdoaWxlICgobWF0Y2ggPSBzZXBhcmF0b3IuZXhlYyhzdWJzdHJpbmcpKSkge1xuICAgICAgICAgICAgdmFyIG5ld0VuZCA9IG1hdGNoLmluZGV4O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQuc2xpY2UoMCwgbmV3RW5kID09PSB1bmRlZmluZWQgPyBlbmQgOiBuZXdFbmQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHN0cmluZy5pbmRleE9mKGJhc2VUb1N0cmluZyhzZXBhcmF0b3IpLCBlbmQpICE9IGVuZCkge1xuICAgICAgICB2YXIgaW5kZXggPSByZXN1bHQubGFzdEluZGV4T2Yoc2VwYXJhdG9yKTtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQuc2xpY2UoMCwgaW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0ICsgb21pc3Npb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGludmVyc2Ugb2YgYF8uZXNjYXBlYDsgdGhpcyBtZXRob2QgY29udmVydHMgdGhlIEhUTUwgZW50aXRpZXNcbiAgICAgKiBgJmFtcDtgLCBgJmx0O2AsIGAmZ3Q7YCwgYCZxdW90O2AsIGFuZCBgJiMzOTtgIGluIGBzdHJpbmdgIHRvXG4gICAgICogdGhlaXIgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIE5vIG90aGVyIEhUTUwgZW50aXRpZXMgYXJlIHVuZXNjYXBlZC4gVG8gdW5lc2NhcGUgYWRkaXRpb25hbFxuICAgICAqIEhUTUwgZW50aXRpZXMgdXNlIGEgdGhpcmQtcGFydHkgbGlicmFyeSBsaWtlIFtfaGVfXShodHRwczovL210aHMuYmUvaGUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDAuNi4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIHVuZXNjYXBlLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHVuZXNjYXBlZCBzdHJpbmcuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udW5lc2NhcGUoJ2ZyZWQsIGJhcm5leSwgJmFtcDsgcGViYmxlcycpO1xuICAgICAqIC8vID0+ICdmcmVkLCBiYXJuZXksICYgcGViYmxlcydcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bmVzY2FwZShzdHJpbmcpIHtcbiAgICAgIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICByZXR1cm4gKHN0cmluZyAmJiByZUhhc0VzY2FwZWRIdG1sLnRlc3Qoc3RyaW5nKSlcbiAgICAgICAgPyBzdHJpbmcucmVwbGFjZShyZUVzY2FwZWRIdG1sLCB1bmVzY2FwZUh0bWxDaGFyKVxuICAgICAgICA6IHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBgc3RyaW5nYCwgYXMgc3BhY2Ugc2VwYXJhdGVkIHdvcmRzLCB0byB1cHBlciBjYXNlLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdXBwZXIgY2FzZWQgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnVwcGVyQ2FzZSgnLS1mb28tYmFyJyk7XG4gICAgICogLy8gPT4gJ0ZPTyBCQVInXG4gICAgICpcbiAgICAgKiBfLnVwcGVyQ2FzZSgnZm9vQmFyJyk7XG4gICAgICogLy8gPT4gJ0ZPTyBCQVInXG4gICAgICpcbiAgICAgKiBfLnVwcGVyQ2FzZSgnX19mb29fYmFyX18nKTtcbiAgICAgKiAvLyA9PiAnRk9PIEJBUidcbiAgICAgKi9cbiAgICB2YXIgdXBwZXJDYXNlID0gY3JlYXRlQ29tcG91bmRlcihmdW5jdGlvbihyZXN1bHQsIHdvcmQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gcmVzdWx0ICsgKGluZGV4ID8gJyAnIDogJycpICsgd29yZC50b1VwcGVyQ2FzZSgpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBgc3RyaW5nYCB0byB1cHBlciBjYXNlLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFN0cmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy51cHBlckZpcnN0KCdmcmVkJyk7XG4gICAgICogLy8gPT4gJ0ZyZWQnXG4gICAgICpcbiAgICAgKiBfLnVwcGVyRmlyc3QoJ0ZSRUQnKTtcbiAgICAgKiAvLyA9PiAnRlJFRCdcbiAgICAgKi9cbiAgICB2YXIgdXBwZXJGaXJzdCA9IGNyZWF0ZUNhc2VGaXJzdCgndG9VcHBlckNhc2UnKTtcblxuICAgIC8qKlxuICAgICAqIFNwbGl0cyBgc3RyaW5nYCBpbnRvIGFuIGFycmF5IG9mIGl0cyB3b3Jkcy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBTdHJpbmdcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBpbnNwZWN0LlxuICAgICAqIEBwYXJhbSB7UmVnRXhwfHN0cmluZ30gW3BhdHRlcm5dIFRoZSBwYXR0ZXJuIHRvIG1hdGNoIHdvcmRzLlxuICAgICAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSB3b3JkcyBvZiBgc3RyaW5nYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy53b3JkcygnZnJlZCwgYmFybmV5LCAmIHBlYmJsZXMnKTtcbiAgICAgKiAvLyA9PiBbJ2ZyZWQnLCAnYmFybmV5JywgJ3BlYmJsZXMnXVxuICAgICAqXG4gICAgICogXy53b3JkcygnZnJlZCwgYmFybmV5LCAmIHBlYmJsZXMnLCAvW14sIF0rL2cpO1xuICAgICAqIC8vID0+IFsnZnJlZCcsICdiYXJuZXknLCAnJicsICdwZWJibGVzJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3b3JkcyhzdHJpbmcsIHBhdHRlcm4sIGd1YXJkKSB7XG4gICAgICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgICAgcGF0dGVybiA9IGd1YXJkID8gdW5kZWZpbmVkIDogcGF0dGVybjtcblxuICAgICAgaWYgKHBhdHRlcm4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gaGFzVW5pY29kZVdvcmQoc3RyaW5nKSA/IHVuaWNvZGVXb3JkcyhzdHJpbmcpIDogYXNjaWlXb3JkcyhzdHJpbmcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0cmluZy5tYXRjaChwYXR0ZXJuKSB8fCBbXTtcbiAgICB9XG5cbiAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgICAvKipcbiAgICAgKiBBdHRlbXB0cyB0byBpbnZva2UgYGZ1bmNgLCByZXR1cm5pbmcgZWl0aGVyIHRoZSByZXN1bHQgb3IgdGhlIGNhdWdodCBlcnJvclxuICAgICAqIG9iamVjdC4gQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIGFyZSBwcm92aWRlZCB0byBgZnVuY2Agd2hlbiBpdCdzIGludm9rZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGF0dGVtcHQuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgYGZ1bmNgIHdpdGguXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGBmdW5jYCByZXN1bHQgb3IgZXJyb3Igb2JqZWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiAvLyBBdm9pZCB0aHJvd2luZyBlcnJvcnMgZm9yIGludmFsaWQgc2VsZWN0b3JzLlxuICAgICAqIHZhciBlbGVtZW50cyA9IF8uYXR0ZW1wdChmdW5jdGlvbihzZWxlY3Rvcikge1xuICAgICAqICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xuICAgICAqIH0sICc+Xz4nKTtcbiAgICAgKlxuICAgICAqIGlmIChfLmlzRXJyb3IoZWxlbWVudHMpKSB7XG4gICAgICogICBlbGVtZW50cyA9IFtdO1xuICAgICAqIH1cbiAgICAgKi9cbiAgICB2YXIgYXR0ZW1wdCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIGFyZ3MpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhcHBseShmdW5jLCB1bmRlZmluZWQsIGFyZ3MpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gaXNFcnJvcihlKSA/IGUgOiBuZXcgRXJyb3IoZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBCaW5kcyBtZXRob2RzIG9mIGFuIG9iamVjdCB0byB0aGUgb2JqZWN0IGl0c2VsZiwgb3ZlcndyaXRpbmcgdGhlIGV4aXN0aW5nXG4gICAgICogbWV0aG9kLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGRvZXNuJ3Qgc2V0IHRoZSBcImxlbmd0aFwiIHByb3BlcnR5IG9mIGJvdW5kIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGJpbmQgYW5kIGFzc2lnbiB0aGUgYm91bmQgbWV0aG9kcyB0by5cbiAgICAgKiBAcGFyYW0gey4uLihzdHJpbmd8c3RyaW5nW10pfSBtZXRob2ROYW1lcyBUaGUgb2JqZWN0IG1ldGhvZCBuYW1lcyB0byBiaW5kLlxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciB2aWV3ID0ge1xuICAgICAqICAgJ2xhYmVsJzogJ2RvY3MnLFxuICAgICAqICAgJ2NsaWNrJzogZnVuY3Rpb24oKSB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKCdjbGlja2VkICcgKyB0aGlzLmxhYmVsKTtcbiAgICAgKiAgIH1cbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogXy5iaW5kQWxsKHZpZXcsIFsnY2xpY2snXSk7XG4gICAgICogalF1ZXJ5KGVsZW1lbnQpLm9uKCdjbGljaycsIHZpZXcuY2xpY2spO1xuICAgICAqIC8vID0+IExvZ3MgJ2NsaWNrZWQgZG9jcycgd2hlbiBjbGlja2VkLlxuICAgICAqL1xuICAgIHZhciBiaW5kQWxsID0gZmxhdFJlc3QoZnVuY3Rpb24ob2JqZWN0LCBtZXRob2ROYW1lcykge1xuICAgICAgYXJyYXlFYWNoKG1ldGhvZE5hbWVzLCBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAga2V5ID0gdG9LZXkoa2V5KTtcbiAgICAgICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBiaW5kKG9iamVjdFtrZXldLCBvYmplY3QpKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGl0ZXJhdGVzIG92ZXIgYHBhaXJzYCBhbmQgaW52b2tlcyB0aGUgY29ycmVzcG9uZGluZ1xuICAgICAqIGZ1bmN0aW9uIG9mIHRoZSBmaXJzdCBwcmVkaWNhdGUgdG8gcmV0dXJuIHRydXRoeS4gVGhlIHByZWRpY2F0ZS1mdW5jdGlvblxuICAgICAqIHBhaXJzIGFyZSBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIGFuZCBhcmd1bWVudHMgb2YgdGhlIGNyZWF0ZWRcbiAgICAgKiBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtBcnJheX0gcGFpcnMgVGhlIHByZWRpY2F0ZS1mdW5jdGlvbiBwYWlycy5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjb21wb3NpdGUgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBmdW5jID0gXy5jb25kKFtcbiAgICAgKiAgIFtfLm1hdGNoZXMoeyAnYSc6IDEgfSksICAgICAgICAgICBfLmNvbnN0YW50KCdtYXRjaGVzIEEnKV0sXG4gICAgICogICBbXy5jb25mb3Jtcyh7ICdiJzogXy5pc051bWJlciB9KSwgXy5jb25zdGFudCgnbWF0Y2hlcyBCJyldLFxuICAgICAqICAgW18uc3R1YlRydWUsICAgICAgICAgICAgICAgICAgICAgIF8uY29uc3RhbnQoJ25vIG1hdGNoJyldXG4gICAgICogXSk7XG4gICAgICpcbiAgICAgKiBmdW5jKHsgJ2EnOiAxLCAnYic6IDIgfSk7XG4gICAgICogLy8gPT4gJ21hdGNoZXMgQSdcbiAgICAgKlxuICAgICAqIGZ1bmMoeyAnYSc6IDAsICdiJzogMSB9KTtcbiAgICAgKiAvLyA9PiAnbWF0Y2hlcyBCJ1xuICAgICAqXG4gICAgICogZnVuYyh7ICdhJzogJzEnLCAnYic6ICcyJyB9KTtcbiAgICAgKiAvLyA9PiAnbm8gbWF0Y2gnXG4gICAgICovXG4gICAgZnVuY3Rpb24gY29uZChwYWlycykge1xuICAgICAgdmFyIGxlbmd0aCA9IHBhaXJzID09IG51bGwgPyAwIDogcGFpcnMubGVuZ3RoLFxuICAgICAgICAgIHRvSXRlcmF0ZWUgPSBnZXRJdGVyYXRlZSgpO1xuXG4gICAgICBwYWlycyA9ICFsZW5ndGggPyBbXSA6IGFycmF5TWFwKHBhaXJzLCBmdW5jdGlvbihwYWlyKSB7XG4gICAgICAgIGlmICh0eXBlb2YgcGFpclsxXSAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbdG9JdGVyYXRlZShwYWlyWzBdKSwgcGFpclsxXV07XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTE7XG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgdmFyIHBhaXIgPSBwYWlyc1tpbmRleF07XG4gICAgICAgICAgaWYgKGFwcGx5KHBhaXJbMF0sIHRoaXMsIGFyZ3MpKSB7XG4gICAgICAgICAgICByZXR1cm4gYXBwbHkocGFpclsxXSwgdGhpcywgYXJncyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIHRoZSBwcmVkaWNhdGUgcHJvcGVydGllcyBvZiBgc291cmNlYCB3aXRoXG4gICAgICogdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgdmFsdWVzIG9mIGEgZ2l2ZW4gb2JqZWN0LCByZXR1cm5pbmcgYHRydWVgIGlmXG4gICAgICogYWxsIHByZWRpY2F0ZXMgcmV0dXJuIHRydXRoeSwgZWxzZSBgZmFsc2VgLlxuICAgICAqXG4gICAgICogKipOb3RlOioqIFRoZSBjcmVhdGVkIGZ1bmN0aW9uIGlzIGVxdWl2YWxlbnQgdG8gYF8uY29uZm9ybXNUb2Agd2l0aFxuICAgICAqIGBzb3VyY2VgIHBhcnRpYWxseSBhcHBsaWVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3Qgb2YgcHJvcGVydHkgcHJlZGljYXRlcyB0byBjb25mb3JtIHRvLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHNwZWMgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gW1xuICAgICAqICAgeyAnYSc6IDIsICdiJzogMSB9LFxuICAgICAqICAgeyAnYSc6IDEsICdiJzogMiB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8uZmlsdGVyKG9iamVjdHMsIF8uY29uZm9ybXMoeyAnYic6IGZ1bmN0aW9uKG4pIHsgcmV0dXJuIG4gPiAxOyB9IH0pKTtcbiAgICAgKiAvLyA9PiBbeyAnYSc6IDEsICdiJzogMiB9XVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbmZvcm1zKHNvdXJjZSkge1xuICAgICAgcmV0dXJuIGJhc2VDb25mb3JtcyhiYXNlQ2xvbmUoc291cmNlLCBDTE9ORV9ERUVQX0ZMQUcpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMi40LjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHJldHVybiBmcm9tIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY29uc3RhbnQgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gXy50aW1lcygyLCBfLmNvbnN0YW50KHsgJ2EnOiAxIH0pKTtcbiAgICAgKlxuICAgICAqIGNvbnNvbGUubG9nKG9iamVjdHMpO1xuICAgICAqIC8vID0+IFt7ICdhJzogMSB9LCB7ICdhJzogMSB9XVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2cob2JqZWN0c1swXSA9PT0gb2JqZWN0c1sxXSk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbnN0YW50KHZhbHVlKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGB2YWx1ZWAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSByZXR1cm5lZCBpblxuICAgICAqIGl0cyBwbGFjZS4gVGhlIGBkZWZhdWx0VmFsdWVgIGlzIHJldHVybmVkIGlmIGB2YWx1ZWAgaXMgYE5hTmAsIGBudWxsYCxcbiAgICAgKiBvciBgdW5kZWZpbmVkYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjE0LjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEBwYXJhbSB7Kn0gZGVmYXVsdFZhbHVlIFRoZSBkZWZhdWx0IHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXNvbHZlZCB2YWx1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5kZWZhdWx0VG8oMSwgMTApO1xuICAgICAqIC8vID0+IDFcbiAgICAgKlxuICAgICAqIF8uZGVmYXVsdFRvKHVuZGVmaW5lZCwgMTApO1xuICAgICAqIC8vID0+IDEwXG4gICAgICovXG4gICAgZnVuY3Rpb24gZGVmYXVsdFRvKHZhbHVlLCBkZWZhdWx0VmFsdWUpIHtcbiAgICAgIHJldHVybiAodmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSAhPT0gdmFsdWUpID8gZGVmYXVsdFZhbHVlIDogdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgcmVzdWx0IG9mIGludm9raW5nIHRoZSBnaXZlbiBmdW5jdGlvbnNcbiAgICAgKiB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiB0aGUgY3JlYXRlZCBmdW5jdGlvbiwgd2hlcmUgZWFjaCBzdWNjZXNzaXZlXG4gICAgICogaW52b2NhdGlvbiBpcyBzdXBwbGllZCB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBwcmV2aW91cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHsuLi4oRnVuY3Rpb258RnVuY3Rpb25bXSl9IFtmdW5jc10gVGhlIGZ1bmN0aW9ucyB0byBpbnZva2UuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY29tcG9zaXRlIGZ1bmN0aW9uLlxuICAgICAqIEBzZWUgXy5mbG93UmlnaHRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gc3F1YXJlKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICogbjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgYWRkU3F1YXJlID0gXy5mbG93KFtfLmFkZCwgc3F1YXJlXSk7XG4gICAgICogYWRkU3F1YXJlKDEsIDIpO1xuICAgICAqIC8vID0+IDlcbiAgICAgKi9cbiAgICB2YXIgZmxvdyA9IGNyZWF0ZUZsb3coKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uZmxvd2AgZXhjZXB0IHRoYXQgaXQgY3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXRcbiAgICAgKiBpbnZva2VzIHRoZSBnaXZlbiBmdW5jdGlvbnMgZnJvbSByaWdodCB0byBsZWZ0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdKX0gW2Z1bmNzXSBUaGUgZnVuY3Rpb25zIHRvIGludm9rZS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjb21wb3NpdGUgZnVuY3Rpb24uXG4gICAgICogQHNlZSBfLmZsb3dcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gc3F1YXJlKG4pIHtcbiAgICAgKiAgIHJldHVybiBuICogbjtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgYWRkU3F1YXJlID0gXy5mbG93UmlnaHQoW3NxdWFyZSwgXy5hZGRdKTtcbiAgICAgKiBhZGRTcXVhcmUoMSwgMik7XG4gICAgICogLy8gPT4gOVxuICAgICAqL1xuICAgIHZhciBmbG93UmlnaHQgPSBjcmVhdGVGbG93KHRydWUpO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgZmlyc3QgYXJndW1lbnQgaXQgcmVjZWl2ZXMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgQW55IHZhbHVlLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIGB2YWx1ZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3QgPSB7ICdhJzogMSB9O1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2coXy5pZGVudGl0eShvYmplY3QpID09PSBvYmplY3QpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpZGVudGl0eSh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggdGhlIGFyZ3VtZW50cyBvZiB0aGUgY3JlYXRlZFxuICAgICAqIGZ1bmN0aW9uLiBJZiBgZnVuY2AgaXMgYSBwcm9wZXJ0eSBuYW1lLCB0aGUgY3JlYXRlZCBmdW5jdGlvbiByZXR1cm5zIHRoZVxuICAgICAqIHByb3BlcnR5IHZhbHVlIGZvciBhIGdpdmVuIGVsZW1lbnQuIElmIGBmdW5jYCBpcyBhbiBhcnJheSBvciBvYmplY3QsIHRoZVxuICAgICAqIGNyZWF0ZWQgZnVuY3Rpb24gcmV0dXJucyBgdHJ1ZWAgZm9yIGVsZW1lbnRzIHRoYXQgY29udGFpbiB0aGUgZXF1aXZhbGVudFxuICAgICAqIHNvdXJjZSBwcm9wZXJ0aWVzLCBvdGhlcndpc2UgaXQgcmV0dXJucyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0geyp9IFtmdW5jPV8uaWRlbnRpdHldIFRoZSB2YWx1ZSB0byBjb252ZXJ0IHRvIGEgY2FsbGJhY2suXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBjYWxsYmFjay5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIHVzZXJzID0gW1xuICAgICAqICAgeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH0sXG4gICAgICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0MCwgJ2FjdGl2ZSc6IGZhbHNlIH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogLy8gVGhlIGBfLm1hdGNoZXNgIGl0ZXJhdGVlIHNob3J0aGFuZC5cbiAgICAgKiBfLmZpbHRlcih1c2VycywgXy5pdGVyYXRlZSh7ICd1c2VyJzogJ2Jhcm5leScsICdhY3RpdmUnOiB0cnVlIH0pKTtcbiAgICAgKiAvLyA9PiBbeyAndXNlcic6ICdiYXJuZXknLCAnYWdlJzogMzYsICdhY3RpdmUnOiB0cnVlIH1dXG4gICAgICpcbiAgICAgKiAvLyBUaGUgYF8ubWF0Y2hlc1Byb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5maWx0ZXIodXNlcnMsIF8uaXRlcmF0ZWUoWyd1c2VyJywgJ2ZyZWQnXSkpO1xuICAgICAqIC8vID0+IFt7ICd1c2VyJzogJ2ZyZWQnLCAnYWdlJzogNDAgfV1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ubWFwKHVzZXJzLCBfLml0ZXJhdGVlKCd1c2VyJykpO1xuICAgICAqIC8vID0+IFsnYmFybmV5JywgJ2ZyZWQnXVxuICAgICAqXG4gICAgICogLy8gQ3JlYXRlIGN1c3RvbSBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICAgICAqIF8uaXRlcmF0ZWUgPSBfLndyYXAoXy5pdGVyYXRlZSwgZnVuY3Rpb24oaXRlcmF0ZWUsIGZ1bmMpIHtcbiAgICAgKiAgIHJldHVybiAhXy5pc1JlZ0V4cChmdW5jKSA/IGl0ZXJhdGVlKGZ1bmMpIDogZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgICogICAgIHJldHVybiBmdW5jLnRlc3Qoc3RyaW5nKTtcbiAgICAgKiAgIH07XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBfLmZpbHRlcihbJ2FiYycsICdkZWYnXSwgL2VmLyk7XG4gICAgICogLy8gPT4gWydkZWYnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGl0ZXJhdGVlKGZ1bmMpIHtcbiAgICAgIHJldHVybiBiYXNlSXRlcmF0ZWUodHlwZW9mIGZ1bmMgPT0gJ2Z1bmN0aW9uJyA/IGZ1bmMgOiBiYXNlQ2xvbmUoZnVuYywgQ0xPTkVfREVFUF9GTEFHKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcGVyZm9ybXMgYSBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbiBiZXR3ZWVuIGEgZ2l2ZW5cbiAgICAgKiBvYmplY3QgYW5kIGBzb3VyY2VgLCByZXR1cm5pbmcgYHRydWVgIGlmIHRoZSBnaXZlbiBvYmplY3QgaGFzIGVxdWl2YWxlbnRcbiAgICAgKiBwcm9wZXJ0eSB2YWx1ZXMsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBUaGUgY3JlYXRlZCBmdW5jdGlvbiBpcyBlcXVpdmFsZW50IHRvIGBfLmlzTWF0Y2hgIHdpdGggYHNvdXJjZWBcbiAgICAgKiBwYXJ0aWFsbHkgYXBwbGllZC5cbiAgICAgKlxuICAgICAqIFBhcnRpYWwgY29tcGFyaXNvbnMgd2lsbCBtYXRjaCBlbXB0eSBhcnJheSBhbmQgZW1wdHkgb2JqZWN0IGBzb3VyY2VgXG4gICAgICogdmFsdWVzIGFnYWluc3QgYW55IGFycmF5IG9yIG9iamVjdCB2YWx1ZSwgcmVzcGVjdGl2ZWx5LiBTZWUgYF8uaXNFcXVhbGBcbiAgICAgKiBmb3IgYSBsaXN0IG9mIHN1cHBvcnRlZCB2YWx1ZSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBNdWx0aXBsZSB2YWx1ZXMgY2FuIGJlIGNoZWNrZWQgYnkgY29tYmluaW5nIHNldmVyYWwgbWF0Y2hlcnNcbiAgICAgKiB1c2luZyBgXy5vdmVyU29tZWBcbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjAuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFtcbiAgICAgKiAgIHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMyB9LFxuICAgICAqICAgeyAnYSc6IDQsICdiJzogNSwgJ2MnOiA2IH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5maWx0ZXIob2JqZWN0cywgXy5tYXRjaGVzKHsgJ2EnOiA0LCAnYyc6IDYgfSkpO1xuICAgICAqIC8vID0+IFt7ICdhJzogNCwgJ2InOiA1LCAnYyc6IDYgfV1cbiAgICAgKlxuICAgICAqIC8vIENoZWNraW5nIGZvciBzZXZlcmFsIHBvc3NpYmxlIHZhbHVlc1xuICAgICAqIF8uZmlsdGVyKG9iamVjdHMsIF8ub3ZlclNvbWUoW18ubWF0Y2hlcyh7ICdhJzogMSB9KSwgXy5tYXRjaGVzKHsgJ2EnOiA0IH0pXSkpO1xuICAgICAqIC8vID0+IFt7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDMgfSwgeyAnYSc6IDQsICdiJzogNSwgJ2MnOiA2IH1dXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWF0Y2hlcyhzb3VyY2UpIHtcbiAgICAgIHJldHVybiBiYXNlTWF0Y2hlcyhiYXNlQ2xvbmUoc291cmNlLCBDTE9ORV9ERUVQX0ZMQUcpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBwZXJmb3JtcyBhIHBhcnRpYWwgZGVlcCBjb21wYXJpc29uIGJldHdlZW4gdGhlXG4gICAgICogdmFsdWUgYXQgYHBhdGhgIG9mIGEgZ2l2ZW4gb2JqZWN0IHRvIGBzcmNWYWx1ZWAsIHJldHVybmluZyBgdHJ1ZWAgaWYgdGhlXG4gICAgICogb2JqZWN0IHZhbHVlIGlzIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBQYXJ0aWFsIGNvbXBhcmlzb25zIHdpbGwgbWF0Y2ggZW1wdHkgYXJyYXkgYW5kIGVtcHR5IG9iamVjdFxuICAgICAqIGBzcmNWYWx1ZWAgdmFsdWVzIGFnYWluc3QgYW55IGFycmF5IG9yIG9iamVjdCB2YWx1ZSwgcmVzcGVjdGl2ZWx5LiBTZWVcbiAgICAgKiBgXy5pc0VxdWFsYCBmb3IgYSBsaXN0IG9mIHN1cHBvcnRlZCB2YWx1ZSBjb21wYXJpc29ucy5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBNdWx0aXBsZSB2YWx1ZXMgY2FuIGJlIGNoZWNrZWQgYnkgY29tYmluaW5nIHNldmVyYWwgbWF0Y2hlcnNcbiAgICAgKiB1c2luZyBgXy5vdmVyU29tZWBcbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjIuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAgICAgKiBAcGFyYW0geyp9IHNyY1ZhbHVlIFRoZSB2YWx1ZSB0byBtYXRjaC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFtcbiAgICAgKiAgIHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMyB9LFxuICAgICAqICAgeyAnYSc6IDQsICdiJzogNSwgJ2MnOiA2IH1cbiAgICAgKiBdO1xuICAgICAqXG4gICAgICogXy5maW5kKG9iamVjdHMsIF8ubWF0Y2hlc1Byb3BlcnR5KCdhJywgNCkpO1xuICAgICAqIC8vID0+IHsgJ2EnOiA0LCAnYic6IDUsICdjJzogNiB9XG4gICAgICpcbiAgICAgKiAvLyBDaGVja2luZyBmb3Igc2V2ZXJhbCBwb3NzaWJsZSB2YWx1ZXNcbiAgICAgKiBfLmZpbHRlcihvYmplY3RzLCBfLm92ZXJTb21lKFtfLm1hdGNoZXNQcm9wZXJ0eSgnYScsIDEpLCBfLm1hdGNoZXNQcm9wZXJ0eSgnYScsIDQpXSkpO1xuICAgICAqIC8vID0+IFt7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDMgfSwgeyAnYSc6IDQsICdiJzogNSwgJ2MnOiA2IH1dXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWF0Y2hlc1Byb3BlcnR5KHBhdGgsIHNyY1ZhbHVlKSB7XG4gICAgICByZXR1cm4gYmFzZU1hdGNoZXNQcm9wZXJ0eShwYXRoLCBiYXNlQ2xvbmUoc3JjVmFsdWUsIENMT05FX0RFRVBfRkxBRykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgdGhlIG1ldGhvZCBhdCBgcGF0aGAgb2YgYSBnaXZlbiBvYmplY3QuXG4gICAgICogQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIGFyZSBwcm92aWRlZCB0byB0aGUgaW52b2tlZCBtZXRob2QuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy43LjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBtZXRob2QgdG8gaW52b2tlLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIHRoZSBtZXRob2Qgd2l0aC5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBpbnZva2VyIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFtcbiAgICAgKiAgIHsgJ2EnOiB7ICdiJzogXy5jb25zdGFudCgyKSB9IH0sXG4gICAgICogICB7ICdhJzogeyAnYic6IF8uY29uc3RhbnQoMSkgfSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8ubWFwKG9iamVjdHMsIF8ubWV0aG9kKCdhLmInKSk7XG4gICAgICogLy8gPT4gWzIsIDFdXG4gICAgICpcbiAgICAgKiBfLm1hcChvYmplY3RzLCBfLm1ldGhvZChbJ2EnLCAnYiddKSk7XG4gICAgICogLy8gPT4gWzIsIDFdXG4gICAgICovXG4gICAgdmFyIG1ldGhvZCA9IGJhc2VSZXN0KGZ1bmN0aW9uKHBhdGgsIGFyZ3MpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIGJhc2VJbnZva2Uob2JqZWN0LCBwYXRoLCBhcmdzKTtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgb3Bwb3NpdGUgb2YgYF8ubWV0aG9kYDsgdGhpcyBtZXRob2QgY3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlc1xuICAgICAqIHRoZSBtZXRob2QgYXQgYSBnaXZlbiBwYXRoIG9mIGBvYmplY3RgLiBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgYXJlXG4gICAgICogcHJvdmlkZWQgdG8gdGhlIGludm9rZWQgbWV0aG9kLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuNy4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgdGhlIG1ldGhvZCB3aXRoLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGludm9rZXIgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBhcnJheSA9IF8udGltZXMoMywgXy5jb25zdGFudCksXG4gICAgICogICAgIG9iamVjdCA9IHsgJ2EnOiBhcnJheSwgJ2InOiBhcnJheSwgJ2MnOiBhcnJheSB9O1xuICAgICAqXG4gICAgICogXy5tYXAoWydhWzJdJywgJ2NbMF0nXSwgXy5tZXRob2RPZihvYmplY3QpKTtcbiAgICAgKiAvLyA9PiBbMiwgMF1cbiAgICAgKlxuICAgICAqIF8ubWFwKFtbJ2EnLCAnMiddLCBbJ2MnLCAnMCddXSwgXy5tZXRob2RPZihvYmplY3QpKTtcbiAgICAgKiAvLyA9PiBbMiwgMF1cbiAgICAgKi9cbiAgICB2YXIgbWV0aG9kT2YgPSBiYXNlUmVzdChmdW5jdGlvbihvYmplY3QsIGFyZ3MpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihwYXRoKSB7XG4gICAgICAgIHJldHVybiBiYXNlSW52b2tlKG9iamVjdCwgcGF0aCwgYXJncyk7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQWRkcyBhbGwgb3duIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIGZ1bmN0aW9uIHByb3BlcnRpZXMgb2YgYSBzb3VyY2VcbiAgICAgKiBvYmplY3QgdG8gdGhlIGRlc3RpbmF0aW9uIG9iamVjdC4gSWYgYG9iamVjdGAgaXMgYSBmdW5jdGlvbiwgdGhlbiBtZXRob2RzXG4gICAgICogYXJlIGFkZGVkIHRvIGl0cyBwcm90b3R5cGUgYXMgd2VsbC5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBVc2UgYF8ucnVuSW5Db250ZXh0YCB0byBjcmVhdGUgYSBwcmlzdGluZSBgbG9kYXNoYCBmdW5jdGlvbiB0b1xuICAgICAqIGF2b2lkIGNvbmZsaWN0cyBjYXVzZWQgYnkgbW9kaWZ5aW5nIHRoZSBvcmlnaW5hbC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R9IFtvYmplY3Q9bG9kYXNoXSBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCBvZiBmdW5jdGlvbnMgdG8gYWRkLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuY2hhaW49dHJ1ZV0gU3BlY2lmeSB3aGV0aGVyIG1peGlucyBhcmUgY2hhaW5hYmxlLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbnxPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIHZvd2VscyhzdHJpbmcpIHtcbiAgICAgKiAgIHJldHVybiBfLmZpbHRlcihzdHJpbmcsIGZ1bmN0aW9uKHYpIHtcbiAgICAgKiAgICAgcmV0dXJuIC9bYWVpb3VdL2kudGVzdCh2KTtcbiAgICAgKiAgIH0pO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIF8ubWl4aW4oeyAndm93ZWxzJzogdm93ZWxzIH0pO1xuICAgICAqIF8udm93ZWxzKCdmcmVkJyk7XG4gICAgICogLy8gPT4gWydlJ11cbiAgICAgKlxuICAgICAqIF8oJ2ZyZWQnKS52b3dlbHMoKS52YWx1ZSgpO1xuICAgICAqIC8vID0+IFsnZSddXG4gICAgICpcbiAgICAgKiBfLm1peGluKHsgJ3Zvd2Vscyc6IHZvd2VscyB9LCB7ICdjaGFpbic6IGZhbHNlIH0pO1xuICAgICAqIF8oJ2ZyZWQnKS52b3dlbHMoKTtcbiAgICAgKiAvLyA9PiBbJ2UnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1peGluKG9iamVjdCwgc291cmNlLCBvcHRpb25zKSB7XG4gICAgICB2YXIgcHJvcHMgPSBrZXlzKHNvdXJjZSksXG4gICAgICAgICAgbWV0aG9kTmFtZXMgPSBiYXNlRnVuY3Rpb25zKHNvdXJjZSwgcHJvcHMpO1xuXG4gICAgICBpZiAob3B0aW9ucyA9PSBudWxsICYmXG4gICAgICAgICAgIShpc09iamVjdChzb3VyY2UpICYmIChtZXRob2ROYW1lcy5sZW5ndGggfHwgIXByb3BzLmxlbmd0aCkpKSB7XG4gICAgICAgIG9wdGlvbnMgPSBzb3VyY2U7XG4gICAgICAgIHNvdXJjZSA9IG9iamVjdDtcbiAgICAgICAgb2JqZWN0ID0gdGhpcztcbiAgICAgICAgbWV0aG9kTmFtZXMgPSBiYXNlRnVuY3Rpb25zKHNvdXJjZSwga2V5cyhzb3VyY2UpKTtcbiAgICAgIH1cbiAgICAgIHZhciBjaGFpbiA9ICEoaXNPYmplY3Qob3B0aW9ucykgJiYgJ2NoYWluJyBpbiBvcHRpb25zKSB8fCAhIW9wdGlvbnMuY2hhaW4sXG4gICAgICAgICAgaXNGdW5jID0gaXNGdW5jdGlvbihvYmplY3QpO1xuXG4gICAgICBhcnJheUVhY2gobWV0aG9kTmFtZXMsIGZ1bmN0aW9uKG1ldGhvZE5hbWUpIHtcbiAgICAgICAgdmFyIGZ1bmMgPSBzb3VyY2VbbWV0aG9kTmFtZV07XG4gICAgICAgIG9iamVjdFttZXRob2ROYW1lXSA9IGZ1bmM7XG4gICAgICAgIGlmIChpc0Z1bmMpIHtcbiAgICAgICAgICBvYmplY3QucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgY2hhaW5BbGwgPSB0aGlzLl9fY2hhaW5fXztcbiAgICAgICAgICAgIGlmIChjaGFpbiB8fCBjaGFpbkFsbCkge1xuICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gb2JqZWN0KHRoaXMuX193cmFwcGVkX18pLFxuICAgICAgICAgICAgICAgICAgYWN0aW9ucyA9IHJlc3VsdC5fX2FjdGlvbnNfXyA9IGNvcHlBcnJheSh0aGlzLl9fYWN0aW9uc19fKTtcblxuICAgICAgICAgICAgICBhY3Rpb25zLnB1c2goeyAnZnVuYyc6IGZ1bmMsICdhcmdzJzogYXJndW1lbnRzLCAndGhpc0FyZyc6IG9iamVjdCB9KTtcbiAgICAgICAgICAgICAgcmVzdWx0Ll9fY2hhaW5fXyA9IGNoYWluQWxsO1xuICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkob2JqZWN0LCBhcnJheVB1c2goW3RoaXMudmFsdWUoKV0sIGFyZ3VtZW50cykpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldmVydHMgdGhlIGBfYCB2YXJpYWJsZSB0byBpdHMgcHJldmlvdXMgdmFsdWUgYW5kIHJldHVybnMgYSByZWZlcmVuY2UgdG9cbiAgICAgKiB0aGUgYGxvZGFzaGAgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQHNpbmNlIDAuMS4wXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgYGxvZGFzaGAgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBsb2Rhc2ggPSBfLm5vQ29uZmxpY3QoKTtcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBub0NvbmZsaWN0KCkge1xuICAgICAgaWYgKHJvb3QuXyA9PT0gdGhpcykge1xuICAgICAgICByb290Ll8gPSBvbGREYXNoO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgcmV0dXJucyBgdW5kZWZpbmVkYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAyLjMuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udGltZXMoMiwgXy5ub29wKTtcbiAgICAgKiAvLyA9PiBbdW5kZWZpbmVkLCB1bmRlZmluZWRdXG4gICAgICovXG4gICAgZnVuY3Rpb24gbm9vcCgpIHtcbiAgICAgIC8vIE5vIG9wZXJhdGlvbiBwZXJmb3JtZWQuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgZ2V0cyB0aGUgYXJndW1lbnQgYXQgaW5kZXggYG5gLiBJZiBgbmAgaXMgbmVnYXRpdmUsXG4gICAgICogdGhlIG50aCBhcmd1bWVudCBmcm9tIHRoZSBlbmQgaXMgcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbj0wXSBUaGUgaW5kZXggb2YgdGhlIGFyZ3VtZW50IHRvIHJldHVybi5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBwYXNzLXRocnUgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBmdW5jID0gXy5udGhBcmcoMSk7XG4gICAgICogZnVuYygnYScsICdiJywgJ2MnLCAnZCcpO1xuICAgICAqIC8vID0+ICdiJ1xuICAgICAqXG4gICAgICogdmFyIGZ1bmMgPSBfLm50aEFyZygtMik7XG4gICAgICogZnVuYygnYScsICdiJywgJ2MnLCAnZCcpO1xuICAgICAqIC8vID0+ICdjJ1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIG50aEFyZyhuKSB7XG4gICAgICBuID0gdG9JbnRlZ2VyKG4pO1xuICAgICAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIGJhc2VOdGgoYXJncywgbik7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBpdGVyYXRlZXNgIHdpdGggdGhlIGFyZ3VtZW50cyBpdCByZWNlaXZlc1xuICAgICAqIGFuZCByZXR1cm5zIHRoZWlyIHJlc3VsdHMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7Li4uKEZ1bmN0aW9ufEZ1bmN0aW9uW10pfSBbaXRlcmF0ZWVzPVtfLmlkZW50aXR5XV1cbiAgICAgKiAgVGhlIGl0ZXJhdGVlcyB0byBpbnZva2UuXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBmdW5jID0gXy5vdmVyKFtNYXRoLm1heCwgTWF0aC5taW5dKTtcbiAgICAgKlxuICAgICAqIGZ1bmMoMSwgMiwgMywgNCk7XG4gICAgICogLy8gPT4gWzQsIDFdXG4gICAgICovXG4gICAgdmFyIG92ZXIgPSBjcmVhdGVPdmVyKGFycmF5TWFwKTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGNoZWNrcyBpZiAqKmFsbCoqIG9mIHRoZSBgcHJlZGljYXRlc2AgcmV0dXJuXG4gICAgICogdHJ1dGh5IHdoZW4gaW52b2tlZCB3aXRoIHRoZSBhcmd1bWVudHMgaXQgcmVjZWl2ZXMuXG4gICAgICpcbiAgICAgKiBGb2xsb3dpbmcgc2hvcnRoYW5kcyBhcmUgcG9zc2libGUgZm9yIHByb3ZpZGluZyBwcmVkaWNhdGVzLlxuICAgICAqIFBhc3MgYW4gYE9iamVjdGAgYW5kIGl0IHdpbGwgYmUgdXNlZCBhcyBhbiBwYXJhbWV0ZXIgZm9yIGBfLm1hdGNoZXNgIHRvIGNyZWF0ZSB0aGUgcHJlZGljYXRlLlxuICAgICAqIFBhc3MgYW4gYEFycmF5YCBvZiBwYXJhbWV0ZXJzIGZvciBgXy5tYXRjaGVzUHJvcGVydHlgIGFuZCB0aGUgcHJlZGljYXRlIHdpbGwgYmUgY3JlYXRlZCB1c2luZyB0aGVtLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdKX0gW3ByZWRpY2F0ZXM9W18uaWRlbnRpdHldXVxuICAgICAqICBUaGUgcHJlZGljYXRlcyB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGZ1bmMgPSBfLm92ZXJFdmVyeShbQm9vbGVhbiwgaXNGaW5pdGVdKTtcbiAgICAgKlxuICAgICAqIGZ1bmMoJzEnKTtcbiAgICAgKiAvLyA9PiB0cnVlXG4gICAgICpcbiAgICAgKiBmdW5jKG51bGwpO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiBmdW5jKE5hTik7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICB2YXIgb3ZlckV2ZXJ5ID0gY3JlYXRlT3ZlcihhcnJheUV2ZXJ5KTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGNoZWNrcyBpZiAqKmFueSoqIG9mIHRoZSBgcHJlZGljYXRlc2AgcmV0dXJuXG4gICAgICogdHJ1dGh5IHdoZW4gaW52b2tlZCB3aXRoIHRoZSBhcmd1bWVudHMgaXQgcmVjZWl2ZXMuXG4gICAgICpcbiAgICAgKiBGb2xsb3dpbmcgc2hvcnRoYW5kcyBhcmUgcG9zc2libGUgZm9yIHByb3ZpZGluZyBwcmVkaWNhdGVzLlxuICAgICAqIFBhc3MgYW4gYE9iamVjdGAgYW5kIGl0IHdpbGwgYmUgdXNlZCBhcyBhbiBwYXJhbWV0ZXIgZm9yIGBfLm1hdGNoZXNgIHRvIGNyZWF0ZSB0aGUgcHJlZGljYXRlLlxuICAgICAqIFBhc3MgYW4gYEFycmF5YCBvZiBwYXJhbWV0ZXJzIGZvciBgXy5tYXRjaGVzUHJvcGVydHlgIGFuZCB0aGUgcHJlZGljYXRlIHdpbGwgYmUgY3JlYXRlZCB1c2luZyB0aGVtLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0gey4uLihGdW5jdGlvbnxGdW5jdGlvbltdKX0gW3ByZWRpY2F0ZXM9W18uaWRlbnRpdHldXVxuICAgICAqICBUaGUgcHJlZGljYXRlcyB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGZ1bmMgPSBfLm92ZXJTb21lKFtCb29sZWFuLCBpc0Zpbml0ZV0pO1xuICAgICAqXG4gICAgICogZnVuYygnMScpO1xuICAgICAqIC8vID0+IHRydWVcbiAgICAgKlxuICAgICAqIGZ1bmMobnVsbCk7XG4gICAgICogLy8gPT4gdHJ1ZVxuICAgICAqXG4gICAgICogZnVuYyhOYU4pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICpcbiAgICAgKiB2YXIgbWF0Y2hlc0Z1bmMgPSBfLm92ZXJTb21lKFt7ICdhJzogMSB9LCB7ICdhJzogMiB9XSlcbiAgICAgKiB2YXIgbWF0Y2hlc1Byb3BlcnR5RnVuYyA9IF8ub3ZlclNvbWUoW1snYScsIDFdLCBbJ2EnLCAyXV0pXG4gICAgICovXG4gICAgdmFyIG92ZXJTb21lID0gY3JlYXRlT3ZlcihhcnJheVNvbWUpO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgdmFsdWUgYXQgYHBhdGhgIG9mIGEgZ2l2ZW4gb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDIuNC4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFjY2Vzc29yIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFtcbiAgICAgKiAgIHsgJ2EnOiB7ICdiJzogMiB9IH0sXG4gICAgICogICB7ICdhJzogeyAnYic6IDEgfSB9XG4gICAgICogXTtcbiAgICAgKlxuICAgICAqIF8ubWFwKG9iamVjdHMsIF8ucHJvcGVydHkoJ2EuYicpKTtcbiAgICAgKiAvLyA9PiBbMiwgMV1cbiAgICAgKlxuICAgICAqIF8ubWFwKF8uc29ydEJ5KG9iamVjdHMsIF8ucHJvcGVydHkoWydhJywgJ2InXSkpLCAnYS5iJyk7XG4gICAgICogLy8gPT4gWzEsIDJdXG4gICAgICovXG4gICAgZnVuY3Rpb24gcHJvcGVydHkocGF0aCkge1xuICAgICAgcmV0dXJuIGlzS2V5KHBhdGgpID8gYmFzZVByb3BlcnR5KHRvS2V5KHBhdGgpKSA6IGJhc2VQcm9wZXJ0eURlZXAocGF0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIG9wcG9zaXRlIG9mIGBfLnByb3BlcnR5YDsgdGhpcyBtZXRob2QgY3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJuc1xuICAgICAqIHRoZSB2YWx1ZSBhdCBhIGdpdmVuIHBhdGggb2YgYG9iamVjdGAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhY2Nlc3NvciBmdW5jdGlvbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5ID0gWzAsIDEsIDJdLFxuICAgICAqICAgICBvYmplY3QgPSB7ICdhJzogYXJyYXksICdiJzogYXJyYXksICdjJzogYXJyYXkgfTtcbiAgICAgKlxuICAgICAqIF8ubWFwKFsnYVsyXScsICdjWzBdJ10sIF8ucHJvcGVydHlPZihvYmplY3QpKTtcbiAgICAgKiAvLyA9PiBbMiwgMF1cbiAgICAgKlxuICAgICAqIF8ubWFwKFtbJ2EnLCAnMiddLCBbJ2MnLCAnMCddXSwgXy5wcm9wZXJ0eU9mKG9iamVjdCkpO1xuICAgICAqIC8vID0+IFsyLCAwXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHByb3BlcnR5T2Yob2JqZWN0KSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ocGF0aCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBiYXNlR2V0KG9iamVjdCwgcGF0aCk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgbnVtYmVycyAocG9zaXRpdmUgYW5kL29yIG5lZ2F0aXZlKSBwcm9ncmVzc2luZyBmcm9tXG4gICAgICogYHN0YXJ0YCB1cCB0bywgYnV0IG5vdCBpbmNsdWRpbmcsIGBlbmRgLiBBIHN0ZXAgb2YgYC0xYCBpcyB1c2VkIGlmIGEgbmVnYXRpdmVcbiAgICAgKiBgc3RhcnRgIGlzIHNwZWNpZmllZCB3aXRob3V0IGFuIGBlbmRgIG9yIGBzdGVwYC4gSWYgYGVuZGAgaXMgbm90IHNwZWNpZmllZCxcbiAgICAgKiBpdCdzIHNldCB0byBgc3RhcnRgIHdpdGggYHN0YXJ0YCB0aGVuIHNldCB0byBgMGAuXG4gICAgICpcbiAgICAgKiAqKk5vdGU6KiogSmF2YVNjcmlwdCBmb2xsb3dzIHRoZSBJRUVFLTc1NCBzdGFuZGFyZCBmb3IgcmVzb2x2aW5nXG4gICAgICogZmxvYXRpbmctcG9pbnQgdmFsdWVzIHdoaWNoIGNhbiBwcm9kdWNlIHVuZXhwZWN0ZWQgcmVzdWx0cy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgb2YgdGhlIHJhbmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmQgVGhlIGVuZCBvZiB0aGUgcmFuZ2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGVwPTFdIFRoZSB2YWx1ZSB0byBpbmNyZW1lbnQgb3IgZGVjcmVtZW50IGJ5LlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgcmFuZ2Ugb2YgbnVtYmVycy5cbiAgICAgKiBAc2VlIF8uaW5SYW5nZSwgXy5yYW5nZVJpZ2h0XG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8ucmFuZ2UoNCk7XG4gICAgICogLy8gPT4gWzAsIDEsIDIsIDNdXG4gICAgICpcbiAgICAgKiBfLnJhbmdlKC00KTtcbiAgICAgKiAvLyA9PiBbMCwgLTEsIC0yLCAtM11cbiAgICAgKlxuICAgICAqIF8ucmFuZ2UoMSwgNSk7XG4gICAgICogLy8gPT4gWzEsIDIsIDMsIDRdXG4gICAgICpcbiAgICAgKiBfLnJhbmdlKDAsIDIwLCA1KTtcbiAgICAgKiAvLyA9PiBbMCwgNSwgMTAsIDE1XVxuICAgICAqXG4gICAgICogXy5yYW5nZSgwLCAtNCwgLTEpO1xuICAgICAqIC8vID0+IFswLCAtMSwgLTIsIC0zXVxuICAgICAqXG4gICAgICogXy5yYW5nZSgxLCA0LCAwKTtcbiAgICAgKiAvLyA9PiBbMSwgMSwgMV1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2UoMCk7XG4gICAgICogLy8gPT4gW11cbiAgICAgKi9cbiAgICB2YXIgcmFuZ2UgPSBjcmVhdGVSYW5nZSgpO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5yYW5nZWAgZXhjZXB0IHRoYXQgaXQgcG9wdWxhdGVzIHZhbHVlcyBpblxuICAgICAqIGRlc2NlbmRpbmcgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9MF0gVGhlIHN0YXJ0IG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kIFRoZSBlbmQgb2YgdGhlIHJhbmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcD0xXSBUaGUgdmFsdWUgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCBieS5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHJhbmdlIG9mIG51bWJlcnMuXG4gICAgICogQHNlZSBfLmluUmFuZ2UsIF8ucmFuZ2VcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5yYW5nZVJpZ2h0KDQpO1xuICAgICAqIC8vID0+IFszLCAyLCAxLCAwXVxuICAgICAqXG4gICAgICogXy5yYW5nZVJpZ2h0KC00KTtcbiAgICAgKiAvLyA9PiBbLTMsIC0yLCAtMSwgMF1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2VSaWdodCgxLCA1KTtcbiAgICAgKiAvLyA9PiBbNCwgMywgMiwgMV1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2VSaWdodCgwLCAyMCwgNSk7XG4gICAgICogLy8gPT4gWzE1LCAxMCwgNSwgMF1cbiAgICAgKlxuICAgICAqIF8ucmFuZ2VSaWdodCgwLCAtNCwgLTEpO1xuICAgICAqIC8vID0+IFstMywgLTIsIC0xLCAwXVxuICAgICAqXG4gICAgICogXy5yYW5nZVJpZ2h0KDEsIDQsIDApO1xuICAgICAqIC8vID0+IFsxLCAxLCAxXVxuICAgICAqXG4gICAgICogXy5yYW5nZVJpZ2h0KDApO1xuICAgICAqIC8vID0+IFtdXG4gICAgICovXG4gICAgdmFyIHJhbmdlUmlnaHQgPSBjcmVhdGVSYW5nZSh0cnVlKTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgZW1wdHkgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4xMy4wXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBlbXB0eSBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIGFycmF5cyA9IF8udGltZXMoMiwgXy5zdHViQXJyYXkpO1xuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXlzKTtcbiAgICAgKiAvLyA9PiBbW10sIFtdXVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2coYXJyYXlzWzBdID09PSBhcnJheXNbMV0pO1xuICAgICAqIC8vID0+IGZhbHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3R1YkFycmF5KCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjEzLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGBmYWxzZWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8udGltZXMoMiwgXy5zdHViRmFsc2UpO1xuICAgICAqIC8vID0+IFtmYWxzZSwgZmFsc2VdXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3R1YkZhbHNlKCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgZW1wdHkgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMTMuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IGVtcHR5IG9iamVjdC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBfLnRpbWVzKDIsIF8uc3R1Yk9iamVjdCk7XG4gICAgICpcbiAgICAgKiBjb25zb2xlLmxvZyhvYmplY3RzKTtcbiAgICAgKiAvLyA9PiBbe30sIHt9XVxuICAgICAqXG4gICAgICogY29uc29sZS5sb2cob2JqZWN0c1swXSA9PT0gb2JqZWN0c1sxXSk7XG4gICAgICogLy8gPT4gZmFsc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdHViT2JqZWN0KCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMTMuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZW1wdHkgc3RyaW5nLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRpbWVzKDIsIF8uc3R1YlN0cmluZyk7XG4gICAgICogLy8gPT4gWycnLCAnJ11cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdHViU3RyaW5nKCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgYHRydWVgLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuMTMuMFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnRpbWVzKDIsIF8uc3R1YlRydWUpO1xuICAgICAqIC8vID0+IFt0cnVlLCB0cnVlXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0dWJUcnVlKCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW52b2tlcyB0aGUgaXRlcmF0ZWUgYG5gIHRpbWVzLCByZXR1cm5pbmcgYW4gYXJyYXkgb2YgdGhlIHJlc3VsdHMgb2ZcbiAgICAgKiBlYWNoIGludm9jYXRpb24uIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OyAoaW5kZXgpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIGludm9rZSBgaXRlcmF0ZWVgLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcmVzdWx0cy5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50aW1lcygzLCBTdHJpbmcpO1xuICAgICAqIC8vID0+IFsnMCcsICcxJywgJzInXVxuICAgICAqXG4gICAgICogIF8udGltZXMoNCwgXy5jb25zdGFudCgwKSk7XG4gICAgICogLy8gPT4gWzAsIDAsIDAsIDBdXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGltZXMobiwgaXRlcmF0ZWUpIHtcbiAgICAgIG4gPSB0b0ludGVnZXIobik7XG4gICAgICBpZiAobiA8IDEgfHwgbiA+IE1BWF9TQUZFX0lOVEVHRVIpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gTUFYX0FSUkFZX0xFTkdUSCxcbiAgICAgICAgICBsZW5ndGggPSBuYXRpdmVNaW4obiwgTUFYX0FSUkFZX0xFTkdUSCk7XG5cbiAgICAgIGl0ZXJhdGVlID0gZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUpO1xuICAgICAgbiAtPSBNQVhfQVJSQVlfTEVOR1RIO1xuXG4gICAgICB2YXIgcmVzdWx0ID0gYmFzZVRpbWVzKGxlbmd0aCwgaXRlcmF0ZWUpO1xuICAgICAgd2hpbGUgKCsraW5kZXggPCBuKSB7XG4gICAgICAgIGl0ZXJhdGVlKGluZGV4KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYHZhbHVlYCB0byBhIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgcHJvcGVydHkgcGF0aCBhcnJheS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy50b1BhdGgoJ2EuYi5jJyk7XG4gICAgICogLy8gPT4gWydhJywgJ2InLCAnYyddXG4gICAgICpcbiAgICAgKiBfLnRvUGF0aCgnYVswXS5iLmMnKTtcbiAgICAgKiAvLyA9PiBbJ2EnLCAnMCcsICdiJywgJ2MnXVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHRvUGF0aCh2YWx1ZSkge1xuICAgICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBhcnJheU1hcCh2YWx1ZSwgdG9LZXkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGlzU3ltYm9sKHZhbHVlKSA/IFt2YWx1ZV0gOiBjb3B5QXJyYXkoc3RyaW5nVG9QYXRoKHRvU3RyaW5nKHZhbHVlKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlcyBhIHVuaXF1ZSBJRC4gSWYgYHByZWZpeGAgaXMgZ2l2ZW4sIHRoZSBJRCBpcyBhcHBlbmRlZCB0byBpdC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAc2luY2UgMC4xLjBcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtwcmVmaXg9JyddIFRoZSB2YWx1ZSB0byBwcmVmaXggdGhlIElEIHdpdGguXG4gICAgICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgdW5pcXVlIElELlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnVuaXF1ZUlkKCdjb250YWN0XycpO1xuICAgICAqIC8vID0+ICdjb250YWN0XzEwNCdcbiAgICAgKlxuICAgICAqIF8udW5pcXVlSWQoKTtcbiAgICAgKiAvLyA9PiAnMTA1J1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHVuaXF1ZUlkKHByZWZpeCkge1xuICAgICAgdmFyIGlkID0gKytpZENvdW50ZXI7XG4gICAgICByZXR1cm4gdG9TdHJpbmcocHJlZml4KSArIGlkO1xuICAgIH1cblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8qKlxuICAgICAqIEFkZHMgdHdvIG51bWJlcnMuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgMy40LjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBhdWdlbmQgVGhlIGZpcnN0IG51bWJlciBpbiBhbiBhZGRpdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYWRkZW5kIFRoZSBzZWNvbmQgbnVtYmVyIGluIGFuIGFkZGl0aW9uLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRvdGFsLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmFkZCg2LCA0KTtcbiAgICAgKiAvLyA9PiAxMFxuICAgICAqL1xuICAgIHZhciBhZGQgPSBjcmVhdGVNYXRoT3BlcmF0aW9uKGZ1bmN0aW9uKGF1Z2VuZCwgYWRkZW5kKSB7XG4gICAgICByZXR1cm4gYXVnZW5kICsgYWRkZW5kO1xuICAgIH0sIDApO1xuXG4gICAgLyoqXG4gICAgICogQ29tcHV0ZXMgYG51bWJlcmAgcm91bmRlZCB1cCB0byBgcHJlY2lzaW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjEwLjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXIgVGhlIG51bWJlciB0byByb3VuZCB1cC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3ByZWNpc2lvbj0wXSBUaGUgcHJlY2lzaW9uIHRvIHJvdW5kIHVwIHRvLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHJvdW5kZWQgdXAgbnVtYmVyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLmNlaWwoNC4wMDYpO1xuICAgICAqIC8vID0+IDVcbiAgICAgKlxuICAgICAqIF8uY2VpbCg2LjAwNCwgMik7XG4gICAgICogLy8gPT4gNi4wMVxuICAgICAqXG4gICAgICogXy5jZWlsKDYwNDAsIC0yKTtcbiAgICAgKiAvLyA9PiA2MTAwXG4gICAgICovXG4gICAgdmFyIGNlaWwgPSBjcmVhdGVSb3VuZCgnY2VpbCcpO1xuXG4gICAgLyoqXG4gICAgICogRGl2aWRlIHR3byBudW1iZXJzLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuNy4wXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGl2aWRlbmQgVGhlIGZpcnN0IG51bWJlciBpbiBhIGRpdmlzaW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkaXZpc29yIFRoZSBzZWNvbmQgbnVtYmVyIGluIGEgZGl2aXNpb24uXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgcXVvdGllbnQuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZGl2aWRlKDYsIDQpO1xuICAgICAqIC8vID0+IDEuNVxuICAgICAqL1xuICAgIHZhciBkaXZpZGUgPSBjcmVhdGVNYXRoT3BlcmF0aW9uKGZ1bmN0aW9uKGRpdmlkZW5kLCBkaXZpc29yKSB7XG4gICAgICByZXR1cm4gZGl2aWRlbmQgLyBkaXZpc29yO1xuICAgIH0sIDEpO1xuXG4gICAgLyoqXG4gICAgICogQ29tcHV0ZXMgYG51bWJlcmAgcm91bmRlZCBkb3duIHRvIGBwcmVjaXNpb25gLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDMuMTAuMFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG51bWJlciBUaGUgbnVtYmVyIHRvIHJvdW5kIGRvd24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtwcmVjaXNpb249MF0gVGhlIHByZWNpc2lvbiB0byByb3VuZCBkb3duIHRvLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHJvdW5kZWQgZG93biBudW1iZXIuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uZmxvb3IoNC4wMDYpO1xuICAgICAqIC8vID0+IDRcbiAgICAgKlxuICAgICAqIF8uZmxvb3IoMC4wNDYsIDIpO1xuICAgICAqIC8vID0+IDAuMDRcbiAgICAgKlxuICAgICAqIF8uZmxvb3IoNDA2MCwgLTIpO1xuICAgICAqIC8vID0+IDQwMDBcbiAgICAgKi9cbiAgICB2YXIgZmxvb3IgPSBjcmVhdGVSb3VuZCgnZmxvb3InKTtcblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIHRoZSBtYXhpbXVtIHZhbHVlIG9mIGBhcnJheWAuIElmIGBhcnJheWAgaXMgZW1wdHkgb3IgZmFsc2V5LFxuICAgICAqIGB1bmRlZmluZWRgIGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtYXhpbXVtIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLm1heChbNCwgMiwgOCwgNl0pO1xuICAgICAqIC8vID0+IDhcbiAgICAgKlxuICAgICAqIF8ubWF4KFtdKTtcbiAgICAgKiAvLyA9PiB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXgoYXJyYXkpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VFeHRyZW11bShhcnJheSwgaWRlbnRpdHksIGJhc2VHdClcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5tYXhgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBpbiBgYXJyYXlgIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb24gYnkgd2hpY2hcbiAgICAgKiB0aGUgdmFsdWUgaXMgcmFua2VkLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1heGltdW0gdmFsdWUuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ24nOiAxIH0sIHsgJ24nOiAyIH1dO1xuICAgICAqXG4gICAgICogXy5tYXhCeShvYmplY3RzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLm47IH0pO1xuICAgICAqIC8vID0+IHsgJ24nOiAyIH1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ubWF4Qnkob2JqZWN0cywgJ24nKTtcbiAgICAgKiAvLyA9PiB7ICduJzogMiB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gbWF4QnkoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlRXh0cmVtdW0oYXJyYXksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSwgYmFzZUd0KVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyB0aGUgbWVhbiBvZiB0aGUgdmFsdWVzIGluIGBhcnJheWAuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgbWVhbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5tZWFuKFs0LCAyLCA4LCA2XSk7XG4gICAgICogLy8gPT4gNVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1lYW4oYXJyYXkpIHtcbiAgICAgIHJldHVybiBiYXNlTWVhbihhcnJheSwgaWRlbnRpdHkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8ubWVhbmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgaXRlcmF0ZWVgIHdoaWNoIGlzXG4gICAgICogaW52b2tlZCBmb3IgZWFjaCBlbGVtZW50IGluIGBhcnJheWAgdG8gZ2VuZXJhdGUgdGhlIHZhbHVlIHRvIGJlIGF2ZXJhZ2VkLlxuICAgICAqIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OiAodmFsdWUpLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHNpbmNlIDQuNy4wXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBtZWFuLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgb2JqZWN0cyA9IFt7ICduJzogNCB9LCB7ICduJzogMiB9LCB7ICduJzogOCB9LCB7ICduJzogNiB9XTtcbiAgICAgKlxuICAgICAqIF8ubWVhbkJ5KG9iamVjdHMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8ubjsgfSk7XG4gICAgICogLy8gPT4gNVxuICAgICAqXG4gICAgICogLy8gVGhlIGBfLnByb3BlcnR5YCBpdGVyYXRlZSBzaG9ydGhhbmQuXG4gICAgICogXy5tZWFuQnkob2JqZWN0cywgJ24nKTtcbiAgICAgKiAvLyA9PiA1XG4gICAgICovXG4gICAgZnVuY3Rpb24gbWVhbkJ5KGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIGJhc2VNZWFuKGFycmF5LCBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMikpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIHRoZSBtaW5pbXVtIHZhbHVlIG9mIGBhcnJheWAuIElmIGBhcnJheWAgaXMgZW1wdHkgb3IgZmFsc2V5LFxuICAgICAqIGB1bmRlZmluZWRgIGlzIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBzaW5jZSAwLjEuMFxuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQGNhdGVnb3J5IE1hdGhcbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtaW5pbXVtIHZhbHVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLm1pbihbNCwgMiwgOCwgNl0pO1xuICAgICAqIC8vID0+IDJcbiAgICAgKlxuICAgICAqIF8ubWluKFtdKTtcbiAgICAgKiAvLyA9PiB1bmRlZmluZWRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtaW4oYXJyYXkpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VFeHRyZW11bShhcnJheSwgaWRlbnRpdHksIGJhc2VMdClcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5taW5gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBpbiBgYXJyYXlgIHRvIGdlbmVyYXRlIHRoZSBjcml0ZXJpb24gYnkgd2hpY2hcbiAgICAgKiB0aGUgdmFsdWUgaXMgcmFua2VkLiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gICAgICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1pbmltdW0gdmFsdWUuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBvYmplY3RzID0gW3sgJ24nOiAxIH0sIHsgJ24nOiAyIH1dO1xuICAgICAqXG4gICAgICogXy5taW5CeShvYmplY3RzLCBmdW5jdGlvbihvKSB7IHJldHVybiBvLm47IH0pO1xuICAgICAqIC8vID0+IHsgJ24nOiAxIH1cbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8ubWluQnkob2JqZWN0cywgJ24nKTtcbiAgICAgKiAvLyA9PiB7ICduJzogMSB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gbWluQnkoYXJyYXksIGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aClcbiAgICAgICAgPyBiYXNlRXh0cmVtdW0oYXJyYXksIGdldEl0ZXJhdGVlKGl0ZXJhdGVlLCAyKSwgYmFzZUx0KVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNdWx0aXBseSB0d28gbnVtYmVycy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjcuMFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG11bHRpcGxpZXIgVGhlIGZpcnN0IG51bWJlciBpbiBhIG11bHRpcGxpY2F0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtdWx0aXBsaWNhbmQgVGhlIHNlY29uZCBudW1iZXIgaW4gYSBtdWx0aXBsaWNhdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBwcm9kdWN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLm11bHRpcGx5KDYsIDQpO1xuICAgICAqIC8vID0+IDI0XG4gICAgICovXG4gICAgdmFyIG11bHRpcGx5ID0gY3JlYXRlTWF0aE9wZXJhdGlvbihmdW5jdGlvbihtdWx0aXBsaWVyLCBtdWx0aXBsaWNhbmQpIHtcbiAgICAgIHJldHVybiBtdWx0aXBsaWVyICogbXVsdGlwbGljYW5kO1xuICAgIH0sIDEpO1xuXG4gICAgLyoqXG4gICAgICogQ29tcHV0ZXMgYG51bWJlcmAgcm91bmRlZCB0byBgcHJlY2lzaW9uYC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjEwLjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXIgVGhlIG51bWJlciB0byByb3VuZC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3ByZWNpc2lvbj0wXSBUaGUgcHJlY2lzaW9uIHRvIHJvdW5kIHRvLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHJvdW5kZWQgbnVtYmVyLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBfLnJvdW5kKDQuMDA2KTtcbiAgICAgKiAvLyA9PiA0XG4gICAgICpcbiAgICAgKiBfLnJvdW5kKDQuMDA2LCAyKTtcbiAgICAgKiAvLyA9PiA0LjAxXG4gICAgICpcbiAgICAgKiBfLnJvdW5kKDQwNjAsIC0yKTtcbiAgICAgKiAvLyA9PiA0MTAwXG4gICAgICovXG4gICAgdmFyIHJvdW5kID0gY3JlYXRlUm91bmQoJ3JvdW5kJyk7XG5cbiAgICAvKipcbiAgICAgKiBTdWJ0cmFjdCB0d28gbnVtYmVycy5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSA0LjAuMFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG1pbnVlbmQgVGhlIGZpcnN0IG51bWJlciBpbiBhIHN1YnRyYWN0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdWJ0cmFoZW5kIFRoZSBzZWNvbmQgbnVtYmVyIGluIGEgc3VidHJhY3Rpb24uXG4gICAgICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgZGlmZmVyZW5jZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogXy5zdWJ0cmFjdCg2LCA0KTtcbiAgICAgKiAvLyA9PiAyXG4gICAgICovXG4gICAgdmFyIHN1YnRyYWN0ID0gY3JlYXRlTWF0aE9wZXJhdGlvbihmdW5jdGlvbihtaW51ZW5kLCBzdWJ0cmFoZW5kKSB7XG4gICAgICByZXR1cm4gbWludWVuZCAtIHN1YnRyYWhlbmQ7XG4gICAgfSwgMCk7XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyB0aGUgc3VtIG9mIHRoZSB2YWx1ZXMgaW4gYGFycmF5YC5cbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgX1xuICAgICAqIEBzaW5jZSAzLjQuMFxuICAgICAqIEBjYXRlZ29yeSBNYXRoXG4gICAgICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBzdW0uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIF8uc3VtKFs0LCAyLCA4LCA2XSk7XG4gICAgICogLy8gPT4gMjBcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdW0oYXJyYXkpIHtcbiAgICAgIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKVxuICAgICAgICA/IGJhc2VTdW0oYXJyYXksIGlkZW50aXR5KVxuICAgICAgICA6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5zdW1gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGl0ZXJhdGVlYCB3aGljaCBpc1xuICAgICAqIGludm9rZWQgZm9yIGVhY2ggZWxlbWVudCBpbiBgYXJyYXlgIHRvIGdlbmVyYXRlIHRoZSB2YWx1ZSB0byBiZSBzdW1tZWQuXG4gICAgICogVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ6ICh2YWx1ZSkuXG4gICAgICpcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIF9cbiAgICAgKiBAc2luY2UgNC4wLjBcbiAgICAgKiBAY2F0ZWdvcnkgTWF0aFxuICAgICAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHN1bS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogdmFyIG9iamVjdHMgPSBbeyAnbic6IDQgfSwgeyAnbic6IDIgfSwgeyAnbic6IDggfSwgeyAnbic6IDYgfV07XG4gICAgICpcbiAgICAgKiBfLnN1bUJ5KG9iamVjdHMsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8ubjsgfSk7XG4gICAgICogLy8gPT4gMjBcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgXy5wcm9wZXJ0eWAgaXRlcmF0ZWUgc2hvcnRoYW5kLlxuICAgICAqIF8uc3VtQnkob2JqZWN0cywgJ24nKTtcbiAgICAgKiAvLyA9PiAyMFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN1bUJ5KGFycmF5LCBpdGVyYXRlZSkge1xuICAgICAgcmV0dXJuIChhcnJheSAmJiBhcnJheS5sZW5ndGgpXG4gICAgICAgID8gYmFzZVN1bShhcnJheSwgZ2V0SXRlcmF0ZWUoaXRlcmF0ZWUsIDIpKVxuICAgICAgICA6IDA7XG4gICAgfVxuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLy8gQWRkIG1ldGhvZHMgdGhhdCByZXR1cm4gd3JhcHBlZCB2YWx1ZXMgaW4gY2hhaW4gc2VxdWVuY2VzLlxuICAgIGxvZGFzaC5hZnRlciA9IGFmdGVyO1xuICAgIGxvZGFzaC5hcnkgPSBhcnk7XG4gICAgbG9kYXNoLmFzc2lnbiA9IGFzc2lnbjtcbiAgICBsb2Rhc2guYXNzaWduSW4gPSBhc3NpZ25JbjtcbiAgICBsb2Rhc2guYXNzaWduSW5XaXRoID0gYXNzaWduSW5XaXRoO1xuICAgIGxvZGFzaC5hc3NpZ25XaXRoID0gYXNzaWduV2l0aDtcbiAgICBsb2Rhc2guYXQgPSBhdDtcbiAgICBsb2Rhc2guYmVmb3JlID0gYmVmb3JlO1xuICAgIGxvZGFzaC5iaW5kID0gYmluZDtcbiAgICBsb2Rhc2guYmluZEFsbCA9IGJpbmRBbGw7XG4gICAgbG9kYXNoLmJpbmRLZXkgPSBiaW5kS2V5O1xuICAgIGxvZGFzaC5jYXN0QXJyYXkgPSBjYXN0QXJyYXk7XG4gICAgbG9kYXNoLmNoYWluID0gY2hhaW47XG4gICAgbG9kYXNoLmNodW5rID0gY2h1bms7XG4gICAgbG9kYXNoLmNvbXBhY3QgPSBjb21wYWN0O1xuICAgIGxvZGFzaC5jb25jYXQgPSBjb25jYXQ7XG4gICAgbG9kYXNoLmNvbmQgPSBjb25kO1xuICAgIGxvZGFzaC5jb25mb3JtcyA9IGNvbmZvcm1zO1xuICAgIGxvZGFzaC5jb25zdGFudCA9IGNvbnN0YW50O1xuICAgIGxvZGFzaC5jb3VudEJ5ID0gY291bnRCeTtcbiAgICBsb2Rhc2guY3JlYXRlID0gY3JlYXRlO1xuICAgIGxvZGFzaC5jdXJyeSA9IGN1cnJ5O1xuICAgIGxvZGFzaC5jdXJyeVJpZ2h0ID0gY3VycnlSaWdodDtcbiAgICBsb2Rhc2guZGVib3VuY2UgPSBkZWJvdW5jZTtcbiAgICBsb2Rhc2guZGVmYXVsdHMgPSBkZWZhdWx0cztcbiAgICBsb2Rhc2guZGVmYXVsdHNEZWVwID0gZGVmYXVsdHNEZWVwO1xuICAgIGxvZGFzaC5kZWZlciA9IGRlZmVyO1xuICAgIGxvZGFzaC5kZWxheSA9IGRlbGF5O1xuICAgIGxvZGFzaC5kaWZmZXJlbmNlID0gZGlmZmVyZW5jZTtcbiAgICBsb2Rhc2guZGlmZmVyZW5jZUJ5ID0gZGlmZmVyZW5jZUJ5O1xuICAgIGxvZGFzaC5kaWZmZXJlbmNlV2l0aCA9IGRpZmZlcmVuY2VXaXRoO1xuICAgIGxvZGFzaC5kcm9wID0gZHJvcDtcbiAgICBsb2Rhc2guZHJvcFJpZ2h0ID0gZHJvcFJpZ2h0O1xuICAgIGxvZGFzaC5kcm9wUmlnaHRXaGlsZSA9IGRyb3BSaWdodFdoaWxlO1xuICAgIGxvZGFzaC5kcm9wV2hpbGUgPSBkcm9wV2hpbGU7XG4gICAgbG9kYXNoLmZpbGwgPSBmaWxsO1xuICAgIGxvZGFzaC5maWx0ZXIgPSBmaWx0ZXI7XG4gICAgbG9kYXNoLmZsYXRNYXAgPSBmbGF0TWFwO1xuICAgIGxvZGFzaC5mbGF0TWFwRGVlcCA9IGZsYXRNYXBEZWVwO1xuICAgIGxvZGFzaC5mbGF0TWFwRGVwdGggPSBmbGF0TWFwRGVwdGg7XG4gICAgbG9kYXNoLmZsYXR0ZW4gPSBmbGF0dGVuO1xuICAgIGxvZGFzaC5mbGF0dGVuRGVlcCA9IGZsYXR0ZW5EZWVwO1xuICAgIGxvZGFzaC5mbGF0dGVuRGVwdGggPSBmbGF0dGVuRGVwdGg7XG4gICAgbG9kYXNoLmZsaXAgPSBmbGlwO1xuICAgIGxvZGFzaC5mbG93ID0gZmxvdztcbiAgICBsb2Rhc2guZmxvd1JpZ2h0ID0gZmxvd1JpZ2h0O1xuICAgIGxvZGFzaC5mcm9tUGFpcnMgPSBmcm9tUGFpcnM7XG4gICAgbG9kYXNoLmZ1bmN0aW9ucyA9IGZ1bmN0aW9ucztcbiAgICBsb2Rhc2guZnVuY3Rpb25zSW4gPSBmdW5jdGlvbnNJbjtcbiAgICBsb2Rhc2guZ3JvdXBCeSA9IGdyb3VwQnk7XG4gICAgbG9kYXNoLmluaXRpYWwgPSBpbml0aWFsO1xuICAgIGxvZGFzaC5pbnRlcnNlY3Rpb24gPSBpbnRlcnNlY3Rpb247XG4gICAgbG9kYXNoLmludGVyc2VjdGlvbkJ5ID0gaW50ZXJzZWN0aW9uQnk7XG4gICAgbG9kYXNoLmludGVyc2VjdGlvbldpdGggPSBpbnRlcnNlY3Rpb25XaXRoO1xuICAgIGxvZGFzaC5pbnZlcnQgPSBpbnZlcnQ7XG4gICAgbG9kYXNoLmludmVydEJ5ID0gaW52ZXJ0Qnk7XG4gICAgbG9kYXNoLmludm9rZU1hcCA9IGludm9rZU1hcDtcbiAgICBsb2Rhc2guaXRlcmF0ZWUgPSBpdGVyYXRlZTtcbiAgICBsb2Rhc2gua2V5QnkgPSBrZXlCeTtcbiAgICBsb2Rhc2gua2V5cyA9IGtleXM7XG4gICAgbG9kYXNoLmtleXNJbiA9IGtleXNJbjtcbiAgICBsb2Rhc2gubWFwID0gbWFwO1xuICAgIGxvZGFzaC5tYXBLZXlzID0gbWFwS2V5cztcbiAgICBsb2Rhc2gubWFwVmFsdWVzID0gbWFwVmFsdWVzO1xuICAgIGxvZGFzaC5tYXRjaGVzID0gbWF0Y2hlcztcbiAgICBsb2Rhc2gubWF0Y2hlc1Byb3BlcnR5ID0gbWF0Y2hlc1Byb3BlcnR5O1xuICAgIGxvZGFzaC5tZW1vaXplID0gbWVtb2l6ZTtcbiAgICBsb2Rhc2gubWVyZ2UgPSBtZXJnZTtcbiAgICBsb2Rhc2gubWVyZ2VXaXRoID0gbWVyZ2VXaXRoO1xuICAgIGxvZGFzaC5tZXRob2QgPSBtZXRob2Q7XG4gICAgbG9kYXNoLm1ldGhvZE9mID0gbWV0aG9kT2Y7XG4gICAgbG9kYXNoLm1peGluID0gbWl4aW47XG4gICAgbG9kYXNoLm5lZ2F0ZSA9IG5lZ2F0ZTtcbiAgICBsb2Rhc2gubnRoQXJnID0gbnRoQXJnO1xuICAgIGxvZGFzaC5vbWl0ID0gb21pdDtcbiAgICBsb2Rhc2gub21pdEJ5ID0gb21pdEJ5O1xuICAgIGxvZGFzaC5vbmNlID0gb25jZTtcbiAgICBsb2Rhc2gub3JkZXJCeSA9IG9yZGVyQnk7XG4gICAgbG9kYXNoLm92ZXIgPSBvdmVyO1xuICAgIGxvZGFzaC5vdmVyQXJncyA9IG92ZXJBcmdzO1xuICAgIGxvZGFzaC5vdmVyRXZlcnkgPSBvdmVyRXZlcnk7XG4gICAgbG9kYXNoLm92ZXJTb21lID0gb3ZlclNvbWU7XG4gICAgbG9kYXNoLnBhcnRpYWwgPSBwYXJ0aWFsO1xuICAgIGxvZGFzaC5wYXJ0aWFsUmlnaHQgPSBwYXJ0aWFsUmlnaHQ7XG4gICAgbG9kYXNoLnBhcnRpdGlvbiA9IHBhcnRpdGlvbjtcbiAgICBsb2Rhc2gucGljayA9IHBpY2s7XG4gICAgbG9kYXNoLnBpY2tCeSA9IHBpY2tCeTtcbiAgICBsb2Rhc2gucHJvcGVydHkgPSBwcm9wZXJ0eTtcbiAgICBsb2Rhc2gucHJvcGVydHlPZiA9IHByb3BlcnR5T2Y7XG4gICAgbG9kYXNoLnB1bGwgPSBwdWxsO1xuICAgIGxvZGFzaC5wdWxsQWxsID0gcHVsbEFsbDtcbiAgICBsb2Rhc2gucHVsbEFsbEJ5ID0gcHVsbEFsbEJ5O1xuICAgIGxvZGFzaC5wdWxsQWxsV2l0aCA9IHB1bGxBbGxXaXRoO1xuICAgIGxvZGFzaC5wdWxsQXQgPSBwdWxsQXQ7XG4gICAgbG9kYXNoLnJhbmdlID0gcmFuZ2U7XG4gICAgbG9kYXNoLnJhbmdlUmlnaHQgPSByYW5nZVJpZ2h0O1xuICAgIGxvZGFzaC5yZWFyZyA9IHJlYXJnO1xuICAgIGxvZGFzaC5yZWplY3QgPSByZWplY3Q7XG4gICAgbG9kYXNoLnJlbW92ZSA9IHJlbW92ZTtcbiAgICBsb2Rhc2gucmVzdCA9IHJlc3Q7XG4gICAgbG9kYXNoLnJldmVyc2UgPSByZXZlcnNlO1xuICAgIGxvZGFzaC5zYW1wbGVTaXplID0gc2FtcGxlU2l6ZTtcbiAgICBsb2Rhc2guc2V0ID0gc2V0O1xuICAgIGxvZGFzaC5zZXRXaXRoID0gc2V0V2l0aDtcbiAgICBsb2Rhc2guc2h1ZmZsZSA9IHNodWZmbGU7XG4gICAgbG9kYXNoLnNsaWNlID0gc2xpY2U7XG4gICAgbG9kYXNoLnNvcnRCeSA9IHNvcnRCeTtcbiAgICBsb2Rhc2guc29ydGVkVW5pcSA9IHNvcnRlZFVuaXE7XG4gICAgbG9kYXNoLnNvcnRlZFVuaXFCeSA9IHNvcnRlZFVuaXFCeTtcbiAgICBsb2Rhc2guc3BsaXQgPSBzcGxpdDtcbiAgICBsb2Rhc2guc3ByZWFkID0gc3ByZWFkO1xuICAgIGxvZGFzaC50YWlsID0gdGFpbDtcbiAgICBsb2Rhc2gudGFrZSA9IHRha2U7XG4gICAgbG9kYXNoLnRha2VSaWdodCA9IHRha2VSaWdodDtcbiAgICBsb2Rhc2gudGFrZVJpZ2h0V2hpbGUgPSB0YWtlUmlnaHRXaGlsZTtcbiAgICBsb2Rhc2gudGFrZVdoaWxlID0gdGFrZVdoaWxlO1xuICAgIGxvZGFzaC50YXAgPSB0YXA7XG4gICAgbG9kYXNoLnRocm90dGxlID0gdGhyb3R0bGU7XG4gICAgbG9kYXNoLnRocnUgPSB0aHJ1O1xuICAgIGxvZGFzaC50b0FycmF5ID0gdG9BcnJheTtcbiAgICBsb2Rhc2gudG9QYWlycyA9IHRvUGFpcnM7XG4gICAgbG9kYXNoLnRvUGFpcnNJbiA9IHRvUGFpcnNJbjtcbiAgICBsb2Rhc2gudG9QYXRoID0gdG9QYXRoO1xuICAgIGxvZGFzaC50b1BsYWluT2JqZWN0ID0gdG9QbGFpbk9iamVjdDtcbiAgICBsb2Rhc2gudHJhbnNmb3JtID0gdHJhbnNmb3JtO1xuICAgIGxvZGFzaC51bmFyeSA9IHVuYXJ5O1xuICAgIGxvZGFzaC51bmlvbiA9IHVuaW9uO1xuICAgIGxvZGFzaC51bmlvbkJ5ID0gdW5pb25CeTtcbiAgICBsb2Rhc2gudW5pb25XaXRoID0gdW5pb25XaXRoO1xuICAgIGxvZGFzaC51bmlxID0gdW5pcTtcbiAgICBsb2Rhc2gudW5pcUJ5ID0gdW5pcUJ5O1xuICAgIGxvZGFzaC51bmlxV2l0aCA9IHVuaXFXaXRoO1xuICAgIGxvZGFzaC51bnNldCA9IHVuc2V0O1xuICAgIGxvZGFzaC51bnppcCA9IHVuemlwO1xuICAgIGxvZGFzaC51bnppcFdpdGggPSB1bnppcFdpdGg7XG4gICAgbG9kYXNoLnVwZGF0ZSA9IHVwZGF0ZTtcbiAgICBsb2Rhc2gudXBkYXRlV2l0aCA9IHVwZGF0ZVdpdGg7XG4gICAgbG9kYXNoLnZhbHVlcyA9IHZhbHVlcztcbiAgICBsb2Rhc2gudmFsdWVzSW4gPSB2YWx1ZXNJbjtcbiAgICBsb2Rhc2gud2l0aG91dCA9IHdpdGhvdXQ7XG4gICAgbG9kYXNoLndvcmRzID0gd29yZHM7XG4gICAgbG9kYXNoLndyYXAgPSB3cmFwO1xuICAgIGxvZGFzaC54b3IgPSB4b3I7XG4gICAgbG9kYXNoLnhvckJ5ID0geG9yQnk7XG4gICAgbG9kYXNoLnhvcldpdGggPSB4b3JXaXRoO1xuICAgIGxvZGFzaC56aXAgPSB6aXA7XG4gICAgbG9kYXNoLnppcE9iamVjdCA9IHppcE9iamVjdDtcbiAgICBsb2Rhc2guemlwT2JqZWN0RGVlcCA9IHppcE9iamVjdERlZXA7XG4gICAgbG9kYXNoLnppcFdpdGggPSB6aXBXaXRoO1xuXG4gICAgLy8gQWRkIGFsaWFzZXMuXG4gICAgbG9kYXNoLmVudHJpZXMgPSB0b1BhaXJzO1xuICAgIGxvZGFzaC5lbnRyaWVzSW4gPSB0b1BhaXJzSW47XG4gICAgbG9kYXNoLmV4dGVuZCA9IGFzc2lnbkluO1xuICAgIGxvZGFzaC5leHRlbmRXaXRoID0gYXNzaWduSW5XaXRoO1xuXG4gICAgLy8gQWRkIG1ldGhvZHMgdG8gYGxvZGFzaC5wcm90b3R5cGVgLlxuICAgIG1peGluKGxvZGFzaCwgbG9kYXNoKTtcblxuICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICAgIC8vIEFkZCBtZXRob2RzIHRoYXQgcmV0dXJuIHVud3JhcHBlZCB2YWx1ZXMgaW4gY2hhaW4gc2VxdWVuY2VzLlxuICAgIGxvZGFzaC5hZGQgPSBhZGQ7XG4gICAgbG9kYXNoLmF0dGVtcHQgPSBhdHRlbXB0O1xuICAgIGxvZGFzaC5jYW1lbENhc2UgPSBjYW1lbENhc2U7XG4gICAgbG9kYXNoLmNhcGl0YWxpemUgPSBjYXBpdGFsaXplO1xuICAgIGxvZGFzaC5jZWlsID0gY2VpbDtcbiAgICBsb2Rhc2guY2xhbXAgPSBjbGFtcDtcbiAgICBsb2Rhc2guY2xvbmUgPSBjbG9uZTtcbiAgICBsb2Rhc2guY2xvbmVEZWVwID0gY2xvbmVEZWVwO1xuICAgIGxvZGFzaC5jbG9uZURlZXBXaXRoID0gY2xvbmVEZWVwV2l0aDtcbiAgICBsb2Rhc2guY2xvbmVXaXRoID0gY2xvbmVXaXRoO1xuICAgIGxvZGFzaC5jb25mb3Jtc1RvID0gY29uZm9ybXNUbztcbiAgICBsb2Rhc2guZGVidXJyID0gZGVidXJyO1xuICAgIGxvZGFzaC5kZWZhdWx0VG8gPSBkZWZhdWx0VG87XG4gICAgbG9kYXNoLmRpdmlkZSA9IGRpdmlkZTtcbiAgICBsb2Rhc2guZW5kc1dpdGggPSBlbmRzV2l0aDtcbiAgICBsb2Rhc2guZXEgPSBlcTtcbiAgICBsb2Rhc2guZXNjYXBlID0gZXNjYXBlO1xuICAgIGxvZGFzaC5lc2NhcGVSZWdFeHAgPSBlc2NhcGVSZWdFeHA7XG4gICAgbG9kYXNoLmV2ZXJ5ID0gZXZlcnk7XG4gICAgbG9kYXNoLmZpbmQgPSBmaW5kO1xuICAgIGxvZGFzaC5maW5kSW5kZXggPSBmaW5kSW5kZXg7XG4gICAgbG9kYXNoLmZpbmRLZXkgPSBmaW5kS2V5O1xuICAgIGxvZGFzaC5maW5kTGFzdCA9IGZpbmRMYXN0O1xuICAgIGxvZGFzaC5maW5kTGFzdEluZGV4ID0gZmluZExhc3RJbmRleDtcbiAgICBsb2Rhc2guZmluZExhc3RLZXkgPSBmaW5kTGFzdEtleTtcbiAgICBsb2Rhc2guZmxvb3IgPSBmbG9vcjtcbiAgICBsb2Rhc2guZm9yRWFjaCA9IGZvckVhY2g7XG4gICAgbG9kYXNoLmZvckVhY2hSaWdodCA9IGZvckVhY2hSaWdodDtcbiAgICBsb2Rhc2guZm9ySW4gPSBmb3JJbjtcbiAgICBsb2Rhc2guZm9ySW5SaWdodCA9IGZvckluUmlnaHQ7XG4gICAgbG9kYXNoLmZvck93biA9IGZvck93bjtcbiAgICBsb2Rhc2guZm9yT3duUmlnaHQgPSBmb3JPd25SaWdodDtcbiAgICBsb2Rhc2guZ2V0ID0gZ2V0O1xuICAgIGxvZGFzaC5ndCA9IGd0O1xuICAgIGxvZGFzaC5ndGUgPSBndGU7XG4gICAgbG9kYXNoLmhhcyA9IGhhcztcbiAgICBsb2Rhc2guaGFzSW4gPSBoYXNJbjtcbiAgICBsb2Rhc2guaGVhZCA9IGhlYWQ7XG4gICAgbG9kYXNoLmlkZW50aXR5ID0gaWRlbnRpdHk7XG4gICAgbG9kYXNoLmluY2x1ZGVzID0gaW5jbHVkZXM7XG4gICAgbG9kYXNoLmluZGV4T2YgPSBpbmRleE9mO1xuICAgIGxvZGFzaC5pblJhbmdlID0gaW5SYW5nZTtcbiAgICBsb2Rhc2guaW52b2tlID0gaW52b2tlO1xuICAgIGxvZGFzaC5pc0FyZ3VtZW50cyA9IGlzQXJndW1lbnRzO1xuICAgIGxvZGFzaC5pc0FycmF5ID0gaXNBcnJheTtcbiAgICBsb2Rhc2guaXNBcnJheUJ1ZmZlciA9IGlzQXJyYXlCdWZmZXI7XG4gICAgbG9kYXNoLmlzQXJyYXlMaWtlID0gaXNBcnJheUxpa2U7XG4gICAgbG9kYXNoLmlzQXJyYXlMaWtlT2JqZWN0ID0gaXNBcnJheUxpa2VPYmplY3Q7XG4gICAgbG9kYXNoLmlzQm9vbGVhbiA9IGlzQm9vbGVhbjtcbiAgICBsb2Rhc2guaXNCdWZmZXIgPSBpc0J1ZmZlcjtcbiAgICBsb2Rhc2guaXNEYXRlID0gaXNEYXRlO1xuICAgIGxvZGFzaC5pc0VsZW1lbnQgPSBpc0VsZW1lbnQ7XG4gICAgbG9kYXNoLmlzRW1wdHkgPSBpc0VtcHR5O1xuICAgIGxvZGFzaC5pc0VxdWFsID0gaXNFcXVhbDtcbiAgICBsb2Rhc2guaXNFcXVhbFdpdGggPSBpc0VxdWFsV2l0aDtcbiAgICBsb2Rhc2guaXNFcnJvciA9IGlzRXJyb3I7XG4gICAgbG9kYXNoLmlzRmluaXRlID0gaXNGaW5pdGU7XG4gICAgbG9kYXNoLmlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uO1xuICAgIGxvZGFzaC5pc0ludGVnZXIgPSBpc0ludGVnZXI7XG4gICAgbG9kYXNoLmlzTGVuZ3RoID0gaXNMZW5ndGg7XG4gICAgbG9kYXNoLmlzTWFwID0gaXNNYXA7XG4gICAgbG9kYXNoLmlzTWF0Y2ggPSBpc01hdGNoO1xuICAgIGxvZGFzaC5pc01hdGNoV2l0aCA9IGlzTWF0Y2hXaXRoO1xuICAgIGxvZGFzaC5pc05hTiA9IGlzTmFOO1xuICAgIGxvZGFzaC5pc05hdGl2ZSA9IGlzTmF0aXZlO1xuICAgIGxvZGFzaC5pc05pbCA9IGlzTmlsO1xuICAgIGxvZGFzaC5pc051bGwgPSBpc051bGw7XG4gICAgbG9kYXNoLmlzTnVtYmVyID0gaXNOdW1iZXI7XG4gICAgbG9kYXNoLmlzT2JqZWN0ID0gaXNPYmplY3Q7XG4gICAgbG9kYXNoLmlzT2JqZWN0TGlrZSA9IGlzT2JqZWN0TGlrZTtcbiAgICBsb2Rhc2guaXNQbGFpbk9iamVjdCA9IGlzUGxhaW5PYmplY3Q7XG4gICAgbG9kYXNoLmlzUmVnRXhwID0gaXNSZWdFeHA7XG4gICAgbG9kYXNoLmlzU2FmZUludGVnZXIgPSBpc1NhZmVJbnRlZ2VyO1xuICAgIGxvZGFzaC5pc1NldCA9IGlzU2V0O1xuICAgIGxvZGFzaC5pc1N0cmluZyA9IGlzU3RyaW5nO1xuICAgIGxvZGFzaC5pc1N5bWJvbCA9IGlzU3ltYm9sO1xuICAgIGxvZGFzaC5pc1R5cGVkQXJyYXkgPSBpc1R5cGVkQXJyYXk7XG4gICAgbG9kYXNoLmlzVW5kZWZpbmVkID0gaXNVbmRlZmluZWQ7XG4gICAgbG9kYXNoLmlzV2Vha01hcCA9IGlzV2Vha01hcDtcbiAgICBsb2Rhc2guaXNXZWFrU2V0ID0gaXNXZWFrU2V0O1xuICAgIGxvZGFzaC5qb2luID0gam9pbjtcbiAgICBsb2Rhc2gua2ViYWJDYXNlID0ga2ViYWJDYXNlO1xuICAgIGxvZGFzaC5sYXN0ID0gbGFzdDtcbiAgICBsb2Rhc2gubGFzdEluZGV4T2YgPSBsYXN0SW5kZXhPZjtcbiAgICBsb2Rhc2gubG93ZXJDYXNlID0gbG93ZXJDYXNlO1xuICAgIGxvZGFzaC5sb3dlckZpcnN0ID0gbG93ZXJGaXJzdDtcbiAgICBsb2Rhc2gubHQgPSBsdDtcbiAgICBsb2Rhc2gubHRlID0gbHRlO1xuICAgIGxvZGFzaC5tYXggPSBtYXg7XG4gICAgbG9kYXNoLm1heEJ5ID0gbWF4Qnk7XG4gICAgbG9kYXNoLm1lYW4gPSBtZWFuO1xuICAgIGxvZGFzaC5tZWFuQnkgPSBtZWFuQnk7XG4gICAgbG9kYXNoLm1pbiA9IG1pbjtcbiAgICBsb2Rhc2gubWluQnkgPSBtaW5CeTtcbiAgICBsb2Rhc2guc3R1YkFycmF5ID0gc3R1YkFycmF5O1xuICAgIGxvZGFzaC5zdHViRmFsc2UgPSBzdHViRmFsc2U7XG4gICAgbG9kYXNoLnN0dWJPYmplY3QgPSBzdHViT2JqZWN0O1xuICAgIGxvZGFzaC5zdHViU3RyaW5nID0gc3R1YlN0cmluZztcbiAgICBsb2Rhc2guc3R1YlRydWUgPSBzdHViVHJ1ZTtcbiAgICBsb2Rhc2gubXVsdGlwbHkgPSBtdWx0aXBseTtcbiAgICBsb2Rhc2gubnRoID0gbnRoO1xuICAgIGxvZGFzaC5ub0NvbmZsaWN0ID0gbm9Db25mbGljdDtcbiAgICBsb2Rhc2gubm9vcCA9IG5vb3A7XG4gICAgbG9kYXNoLm5vdyA9IG5vdztcbiAgICBsb2Rhc2gucGFkID0gcGFkO1xuICAgIGxvZGFzaC5wYWRFbmQgPSBwYWRFbmQ7XG4gICAgbG9kYXNoLnBhZFN0YXJ0ID0gcGFkU3RhcnQ7XG4gICAgbG9kYXNoLnBhcnNlSW50ID0gcGFyc2VJbnQ7XG4gICAgbG9kYXNoLnJhbmRvbSA9IHJhbmRvbTtcbiAgICBsb2Rhc2gucmVkdWNlID0gcmVkdWNlO1xuICAgIGxvZGFzaC5yZWR1Y2VSaWdodCA9IHJlZHVjZVJpZ2h0O1xuICAgIGxvZGFzaC5yZXBlYXQgPSByZXBlYXQ7XG4gICAgbG9kYXNoLnJlcGxhY2UgPSByZXBsYWNlO1xuICAgIGxvZGFzaC5yZXN1bHQgPSByZXN1bHQ7XG4gICAgbG9kYXNoLnJvdW5kID0gcm91bmQ7XG4gICAgbG9kYXNoLnJ1bkluQ29udGV4dCA9IHJ1bkluQ29udGV4dDtcbiAgICBsb2Rhc2guc2FtcGxlID0gc2FtcGxlO1xuICAgIGxvZGFzaC5zaXplID0gc2l6ZTtcbiAgICBsb2Rhc2guc25ha2VDYXNlID0gc25ha2VDYXNlO1xuICAgIGxvZGFzaC5zb21lID0gc29tZTtcbiAgICBsb2Rhc2guc29ydGVkSW5kZXggPSBzb3J0ZWRJbmRleDtcbiAgICBsb2Rhc2guc29ydGVkSW5kZXhCeSA9IHNvcnRlZEluZGV4Qnk7XG4gICAgbG9kYXNoLnNvcnRlZEluZGV4T2YgPSBzb3J0ZWRJbmRleE9mO1xuICAgIGxvZGFzaC5zb3J0ZWRMYXN0SW5kZXggPSBzb3J0ZWRMYXN0SW5kZXg7XG4gICAgbG9kYXNoLnNvcnRlZExhc3RJbmRleEJ5ID0gc29ydGVkTGFzdEluZGV4Qnk7XG4gICAgbG9kYXNoLnNvcnRlZExhc3RJbmRleE9mID0gc29ydGVkTGFzdEluZGV4T2Y7XG4gICAgbG9kYXNoLnN0YXJ0Q2FzZSA9IHN0YXJ0Q2FzZTtcbiAgICBsb2Rhc2guc3RhcnRzV2l0aCA9IHN0YXJ0c1dpdGg7XG4gICAgbG9kYXNoLnN1YnRyYWN0ID0gc3VidHJhY3Q7XG4gICAgbG9kYXNoLnN1bSA9IHN1bTtcbiAgICBsb2Rhc2guc3VtQnkgPSBzdW1CeTtcbiAgICBsb2Rhc2gudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICBsb2Rhc2gudGltZXMgPSB0aW1lcztcbiAgICBsb2Rhc2gudG9GaW5pdGUgPSB0b0Zpbml0ZTtcbiAgICBsb2Rhc2gudG9JbnRlZ2VyID0gdG9JbnRlZ2VyO1xuICAgIGxvZGFzaC50b0xlbmd0aCA9IHRvTGVuZ3RoO1xuICAgIGxvZGFzaC50b0xvd2VyID0gdG9Mb3dlcjtcbiAgICBsb2Rhc2gudG9OdW1iZXIgPSB0b051bWJlcjtcbiAgICBsb2Rhc2gudG9TYWZlSW50ZWdlciA9IHRvU2FmZUludGVnZXI7XG4gICAgbG9kYXNoLnRvU3RyaW5nID0gdG9TdHJpbmc7XG4gICAgbG9kYXNoLnRvVXBwZXIgPSB0b1VwcGVyO1xuICAgIGxvZGFzaC50cmltID0gdHJpbTtcbiAgICBsb2Rhc2gudHJpbUVuZCA9IHRyaW1FbmQ7XG4gICAgbG9kYXNoLnRyaW1TdGFydCA9IHRyaW1TdGFydDtcbiAgICBsb2Rhc2gudHJ1bmNhdGUgPSB0cnVuY2F0ZTtcbiAgICBsb2Rhc2gudW5lc2NhcGUgPSB1bmVzY2FwZTtcbiAgICBsb2Rhc2gudW5pcXVlSWQgPSB1bmlxdWVJZDtcbiAgICBsb2Rhc2gudXBwZXJDYXNlID0gdXBwZXJDYXNlO1xuICAgIGxvZGFzaC51cHBlckZpcnN0ID0gdXBwZXJGaXJzdDtcblxuICAgIC8vIEFkZCBhbGlhc2VzLlxuICAgIGxvZGFzaC5lYWNoID0gZm9yRWFjaDtcbiAgICBsb2Rhc2guZWFjaFJpZ2h0ID0gZm9yRWFjaFJpZ2h0O1xuICAgIGxvZGFzaC5maXJzdCA9IGhlYWQ7XG5cbiAgICBtaXhpbihsb2Rhc2gsIChmdW5jdGlvbigpIHtcbiAgICAgIHZhciBzb3VyY2UgPSB7fTtcbiAgICAgIGJhc2VGb3JPd24obG9kYXNoLCBmdW5jdGlvbihmdW5jLCBtZXRob2ROYW1lKSB7XG4gICAgICAgIGlmICghaGFzT3duUHJvcGVydHkuY2FsbChsb2Rhc2gucHJvdG90eXBlLCBtZXRob2ROYW1lKSkge1xuICAgICAgICAgIHNvdXJjZVttZXRob2ROYW1lXSA9IGZ1bmM7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICB9KCkpLCB7ICdjaGFpbic6IGZhbHNlIH0pO1xuXG4gICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gICAgLyoqXG4gICAgICogVGhlIHNlbWFudGljIHZlcnNpb24gbnVtYmVyLlxuICAgICAqXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBfXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICBsb2Rhc2guVkVSU0lPTiA9IFZFUlNJT047XG5cbiAgICAvLyBBc3NpZ24gZGVmYXVsdCBwbGFjZWhvbGRlcnMuXG4gICAgYXJyYXlFYWNoKFsnYmluZCcsICdiaW5kS2V5JywgJ2N1cnJ5JywgJ2N1cnJ5UmlnaHQnLCAncGFydGlhbCcsICdwYXJ0aWFsUmlnaHQnXSwgZnVuY3Rpb24obWV0aG9kTmFtZSkge1xuICAgICAgbG9kYXNoW21ldGhvZE5hbWVdLnBsYWNlaG9sZGVyID0gbG9kYXNoO1xuICAgIH0pO1xuXG4gICAgLy8gQWRkIGBMYXp5V3JhcHBlcmAgbWV0aG9kcyBmb3IgYF8uZHJvcGAgYW5kIGBfLnRha2VgIHZhcmlhbnRzLlxuICAgIGFycmF5RWFjaChbJ2Ryb3AnLCAndGFrZSddLCBmdW5jdGlvbihtZXRob2ROYW1lLCBpbmRleCkge1xuICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24obikge1xuICAgICAgICBuID0gbiA9PT0gdW5kZWZpbmVkID8gMSA6IG5hdGl2ZU1heCh0b0ludGVnZXIobiksIDApO1xuXG4gICAgICAgIHZhciByZXN1bHQgPSAodGhpcy5fX2ZpbHRlcmVkX18gJiYgIWluZGV4KVxuICAgICAgICAgID8gbmV3IExhenlXcmFwcGVyKHRoaXMpXG4gICAgICAgICAgOiB0aGlzLmNsb25lKCk7XG5cbiAgICAgICAgaWYgKHJlc3VsdC5fX2ZpbHRlcmVkX18pIHtcbiAgICAgICAgICByZXN1bHQuX190YWtlQ291bnRfXyA9IG5hdGl2ZU1pbihuLCByZXN1bHQuX190YWtlQ291bnRfXyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0Ll9fdmlld3NfXy5wdXNoKHtcbiAgICAgICAgICAgICdzaXplJzogbmF0aXZlTWluKG4sIE1BWF9BUlJBWV9MRU5HVEgpLFxuICAgICAgICAgICAgJ3R5cGUnOiBtZXRob2ROYW1lICsgKHJlc3VsdC5fX2Rpcl9fIDwgMCA/ICdSaWdodCcgOiAnJylcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcblxuICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWUgKyAnUmlnaHQnXSA9IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmV2ZXJzZSgpW21ldGhvZE5hbWVdKG4pLnJldmVyc2UoKTtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvLyBBZGQgYExhenlXcmFwcGVyYCBtZXRob2RzIHRoYXQgYWNjZXB0IGFuIGBpdGVyYXRlZWAgdmFsdWUuXG4gICAgYXJyYXlFYWNoKFsnZmlsdGVyJywgJ21hcCcsICd0YWtlV2hpbGUnXSwgZnVuY3Rpb24obWV0aG9kTmFtZSwgaW5kZXgpIHtcbiAgICAgIHZhciB0eXBlID0gaW5kZXggKyAxLFxuICAgICAgICAgIGlzRmlsdGVyID0gdHlwZSA9PSBMQVpZX0ZJTFRFUl9GTEFHIHx8IHR5cGUgPT0gTEFaWV9XSElMRV9GTEFHO1xuXG4gICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbihpdGVyYXRlZSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcy5jbG9uZSgpO1xuICAgICAgICByZXN1bHQuX19pdGVyYXRlZXNfXy5wdXNoKHtcbiAgICAgICAgICAnaXRlcmF0ZWUnOiBnZXRJdGVyYXRlZShpdGVyYXRlZSwgMyksXG4gICAgICAgICAgJ3R5cGUnOiB0eXBlXG4gICAgICAgIH0pO1xuICAgICAgICByZXN1bHQuX19maWx0ZXJlZF9fID0gcmVzdWx0Ll9fZmlsdGVyZWRfXyB8fCBpc0ZpbHRlcjtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvLyBBZGQgYExhenlXcmFwcGVyYCBtZXRob2RzIGZvciBgXy5oZWFkYCBhbmQgYF8ubGFzdGAuXG4gICAgYXJyYXlFYWNoKFsnaGVhZCcsICdsYXN0J10sIGZ1bmN0aW9uKG1ldGhvZE5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgdGFrZU5hbWUgPSAndGFrZScgKyAoaW5kZXggPyAnUmlnaHQnIDogJycpO1xuXG4gICAgICBMYXp5V3JhcHBlci5wcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbdGFrZU5hbWVdKDEpLnZhbHVlKClbMF07XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gQWRkIGBMYXp5V3JhcHBlcmAgbWV0aG9kcyBmb3IgYF8uaW5pdGlhbGAgYW5kIGBfLnRhaWxgLlxuICAgIGFycmF5RWFjaChbJ2luaXRpYWwnLCAndGFpbCddLCBmdW5jdGlvbihtZXRob2ROYW1lLCBpbmRleCkge1xuICAgICAgdmFyIGRyb3BOYW1lID0gJ2Ryb3AnICsgKGluZGV4ID8gJycgOiAnUmlnaHQnKTtcblxuICAgICAgTGF6eVdyYXBwZXIucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9fZmlsdGVyZWRfXyA/IG5ldyBMYXp5V3JhcHBlcih0aGlzKSA6IHRoaXNbZHJvcE5hbWVdKDEpO1xuICAgICAgfTtcbiAgICB9KTtcblxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5jb21wYWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXIoaWRlbnRpdHkpO1xuICAgIH07XG5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuZmluZCA9IGZ1bmN0aW9uKHByZWRpY2F0ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyKHByZWRpY2F0ZSkuaGVhZCgpO1xuICAgIH07XG5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUuZmluZExhc3QgPSBmdW5jdGlvbihwcmVkaWNhdGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnJldmVyc2UoKS5maW5kKHByZWRpY2F0ZSk7XG4gICAgfTtcblxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5pbnZva2VNYXAgPSBiYXNlUmVzdChmdW5jdGlvbihwYXRoLCBhcmdzKSB7XG4gICAgICBpZiAodHlwZW9mIHBhdGggPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbmV3IExhenlXcmFwcGVyKHRoaXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBiYXNlSW52b2tlKHZhbHVlLCBwYXRoLCBhcmdzKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLnJlamVjdCA9IGZ1bmN0aW9uKHByZWRpY2F0ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyKG5lZ2F0ZShnZXRJdGVyYXRlZShwcmVkaWNhdGUpKSk7XG4gICAgfTtcblxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5zbGljZSA9IGZ1bmN0aW9uKHN0YXJ0LCBlbmQpIHtcbiAgICAgIHN0YXJ0ID0gdG9JbnRlZ2VyKHN0YXJ0KTtcblxuICAgICAgdmFyIHJlc3VsdCA9IHRoaXM7XG4gICAgICBpZiAocmVzdWx0Ll9fZmlsdGVyZWRfXyAmJiAoc3RhcnQgPiAwIHx8IGVuZCA8IDApKSB7XG4gICAgICAgIHJldHVybiBuZXcgTGF6eVdyYXBwZXIocmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGlmIChzdGFydCA8IDApIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnRha2VSaWdodCgtc3RhcnQpO1xuICAgICAgfSBlbHNlIGlmIChzdGFydCkge1xuICAgICAgICByZXN1bHQgPSByZXN1bHQuZHJvcChzdGFydCk7XG4gICAgICB9XG4gICAgICBpZiAoZW5kICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZW5kID0gdG9JbnRlZ2VyKGVuZCk7XG4gICAgICAgIHJlc3VsdCA9IGVuZCA8IDAgPyByZXN1bHQuZHJvcFJpZ2h0KC1lbmQpIDogcmVzdWx0LnRha2UoZW5kIC0gc3RhcnQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuXG4gICAgTGF6eVdyYXBwZXIucHJvdG90eXBlLnRha2VSaWdodFdoaWxlID0gZnVuY3Rpb24ocHJlZGljYXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXZlcnNlKCkudGFrZVdoaWxlKHByZWRpY2F0ZSkucmV2ZXJzZSgpO1xuICAgIH07XG5cbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUudG9BcnJheSA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMudGFrZShNQVhfQVJSQVlfTEVOR1RIKTtcbiAgICB9O1xuXG4gICAgLy8gQWRkIGBMYXp5V3JhcHBlcmAgbWV0aG9kcyB0byBgbG9kYXNoLnByb3RvdHlwZWAuXG4gICAgYmFzZUZvck93bihMYXp5V3JhcHBlci5wcm90b3R5cGUsIGZ1bmN0aW9uKGZ1bmMsIG1ldGhvZE5hbWUpIHtcbiAgICAgIHZhciBjaGVja0l0ZXJhdGVlID0gL14oPzpmaWx0ZXJ8ZmluZHxtYXB8cmVqZWN0KXxXaGlsZSQvLnRlc3QobWV0aG9kTmFtZSksXG4gICAgICAgICAgaXNUYWtlciA9IC9eKD86aGVhZHxsYXN0KSQvLnRlc3QobWV0aG9kTmFtZSksXG4gICAgICAgICAgbG9kYXNoRnVuYyA9IGxvZGFzaFtpc1Rha2VyID8gKCd0YWtlJyArIChtZXRob2ROYW1lID09ICdsYXN0JyA/ICdSaWdodCcgOiAnJykpIDogbWV0aG9kTmFtZV0sXG4gICAgICAgICAgcmV0VW53cmFwcGVkID0gaXNUYWtlciB8fCAvXmZpbmQvLnRlc3QobWV0aG9kTmFtZSk7XG5cbiAgICAgIGlmICghbG9kYXNoRnVuYykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsb2Rhc2gucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuX193cmFwcGVkX18sXG4gICAgICAgICAgICBhcmdzID0gaXNUYWtlciA/IFsxXSA6IGFyZ3VtZW50cyxcbiAgICAgICAgICAgIGlzTGF6eSA9IHZhbHVlIGluc3RhbmNlb2YgTGF6eVdyYXBwZXIsXG4gICAgICAgICAgICBpdGVyYXRlZSA9IGFyZ3NbMF0sXG4gICAgICAgICAgICB1c2VMYXp5ID0gaXNMYXp5IHx8IGlzQXJyYXkodmFsdWUpO1xuXG4gICAgICAgIHZhciBpbnRlcmNlcHRvciA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IGxvZGFzaEZ1bmMuYXBwbHkobG9kYXNoLCBhcnJheVB1c2goW3ZhbHVlXSwgYXJncykpO1xuICAgICAgICAgIHJldHVybiAoaXNUYWtlciAmJiBjaGFpbkFsbCkgPyByZXN1bHRbMF0gOiByZXN1bHQ7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHVzZUxhenkgJiYgY2hlY2tJdGVyYXRlZSAmJiB0eXBlb2YgaXRlcmF0ZWUgPT0gJ2Z1bmN0aW9uJyAmJiBpdGVyYXRlZS5sZW5ndGggIT0gMSkge1xuICAgICAgICAgIC8vIEF2b2lkIGxhenkgdXNlIGlmIHRoZSBpdGVyYXRlZSBoYXMgYSBcImxlbmd0aFwiIHZhbHVlIG90aGVyIHRoYW4gYDFgLlxuICAgICAgICAgIGlzTGF6eSA9IHVzZUxhenkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY2hhaW5BbGwgPSB0aGlzLl9fY2hhaW5fXyxcbiAgICAgICAgICAgIGlzSHlicmlkID0gISF0aGlzLl9fYWN0aW9uc19fLmxlbmd0aCxcbiAgICAgICAgICAgIGlzVW53cmFwcGVkID0gcmV0VW53cmFwcGVkICYmICFjaGFpbkFsbCxcbiAgICAgICAgICAgIG9ubHlMYXp5ID0gaXNMYXp5ICYmICFpc0h5YnJpZDtcblxuICAgICAgICBpZiAoIXJldFVud3JhcHBlZCAmJiB1c2VMYXp5KSB7XG4gICAgICAgICAgdmFsdWUgPSBvbmx5TGF6eSA/IHZhbHVlIDogbmV3IExhenlXcmFwcGVyKHRoaXMpO1xuICAgICAgICAgIHZhciByZXN1bHQgPSBmdW5jLmFwcGx5KHZhbHVlLCBhcmdzKTtcbiAgICAgICAgICByZXN1bHQuX19hY3Rpb25zX18ucHVzaCh7ICdmdW5jJzogdGhydSwgJ2FyZ3MnOiBbaW50ZXJjZXB0b3JdLCAndGhpc0FyZyc6IHVuZGVmaW5lZCB9KTtcbiAgICAgICAgICByZXR1cm4gbmV3IExvZGFzaFdyYXBwZXIocmVzdWx0LCBjaGFpbkFsbCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzVW53cmFwcGVkICYmIG9ubHlMYXp5KSB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gdGhpcy50aHJ1KGludGVyY2VwdG9yKTtcbiAgICAgICAgcmV0dXJuIGlzVW53cmFwcGVkID8gKGlzVGFrZXIgPyByZXN1bHQudmFsdWUoKVswXSA6IHJlc3VsdC52YWx1ZSgpKSA6IHJlc3VsdDtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvLyBBZGQgYEFycmF5YCBtZXRob2RzIHRvIGBsb2Rhc2gucHJvdG90eXBlYC5cbiAgICBhcnJheUVhY2goWydwb3AnLCAncHVzaCcsICdzaGlmdCcsICdzb3J0JywgJ3NwbGljZScsICd1bnNoaWZ0J10sIGZ1bmN0aW9uKG1ldGhvZE5hbWUpIHtcbiAgICAgIHZhciBmdW5jID0gYXJyYXlQcm90b1ttZXRob2ROYW1lXSxcbiAgICAgICAgICBjaGFpbk5hbWUgPSAvXig/OnB1c2h8c29ydHx1bnNoaWZ0KSQvLnRlc3QobWV0aG9kTmFtZSkgPyAndGFwJyA6ICd0aHJ1JyxcbiAgICAgICAgICByZXRVbndyYXBwZWQgPSAvXig/OnBvcHxzaGlmdCkkLy50ZXN0KG1ldGhvZE5hbWUpO1xuXG4gICAgICBsb2Rhc2gucHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgICBpZiAocmV0VW53cmFwcGVkICYmICF0aGlzLl9fY2hhaW5fXykge1xuICAgICAgICAgIHZhciB2YWx1ZSA9IHRoaXMudmFsdWUoKTtcbiAgICAgICAgICByZXR1cm4gZnVuYy5hcHBseShpc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW10sIGFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzW2NoYWluTmFtZV0oZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gZnVuYy5hcHBseShpc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW10sIGFyZ3MpO1xuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvLyBNYXAgbWluaWZpZWQgbWV0aG9kIG5hbWVzIHRvIHRoZWlyIHJlYWwgbmFtZXMuXG4gICAgYmFzZUZvck93bihMYXp5V3JhcHBlci5wcm90b3R5cGUsIGZ1bmN0aW9uKGZ1bmMsIG1ldGhvZE5hbWUpIHtcbiAgICAgIHZhciBsb2Rhc2hGdW5jID0gbG9kYXNoW21ldGhvZE5hbWVdO1xuICAgICAgaWYgKGxvZGFzaEZ1bmMpIHtcbiAgICAgICAgdmFyIGtleSA9IGxvZGFzaEZ1bmMubmFtZSArICcnO1xuICAgICAgICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwocmVhbE5hbWVzLCBrZXkpKSB7XG4gICAgICAgICAgcmVhbE5hbWVzW2tleV0gPSBbXTtcbiAgICAgICAgfVxuICAgICAgICByZWFsTmFtZXNba2V5XS5wdXNoKHsgJ25hbWUnOiBtZXRob2ROYW1lLCAnZnVuYyc6IGxvZGFzaEZ1bmMgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZWFsTmFtZXNbY3JlYXRlSHlicmlkKHVuZGVmaW5lZCwgV1JBUF9CSU5EX0tFWV9GTEFHKS5uYW1lXSA9IFt7XG4gICAgICAnbmFtZSc6ICd3cmFwcGVyJyxcbiAgICAgICdmdW5jJzogdW5kZWZpbmVkXG4gICAgfV07XG5cbiAgICAvLyBBZGQgbWV0aG9kcyB0byBgTGF6eVdyYXBwZXJgLlxuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS5jbG9uZSA9IGxhenlDbG9uZTtcbiAgICBMYXp5V3JhcHBlci5wcm90b3R5cGUucmV2ZXJzZSA9IGxhenlSZXZlcnNlO1xuICAgIExhenlXcmFwcGVyLnByb3RvdHlwZS52YWx1ZSA9IGxhenlWYWx1ZTtcblxuICAgIC8vIEFkZCBjaGFpbiBzZXF1ZW5jZSBtZXRob2RzIHRvIHRoZSBgbG9kYXNoYCB3cmFwcGVyLlxuICAgIGxvZGFzaC5wcm90b3R5cGUuYXQgPSB3cmFwcGVyQXQ7XG4gICAgbG9kYXNoLnByb3RvdHlwZS5jaGFpbiA9IHdyYXBwZXJDaGFpbjtcbiAgICBsb2Rhc2gucHJvdG90eXBlLmNvbW1pdCA9IHdyYXBwZXJDb21taXQ7XG4gICAgbG9kYXNoLnByb3RvdHlwZS5uZXh0ID0gd3JhcHBlck5leHQ7XG4gICAgbG9kYXNoLnByb3RvdHlwZS5wbGFudCA9IHdyYXBwZXJQbGFudDtcbiAgICBsb2Rhc2gucHJvdG90eXBlLnJldmVyc2UgPSB3cmFwcGVyUmV2ZXJzZTtcbiAgICBsb2Rhc2gucHJvdG90eXBlLnRvSlNPTiA9IGxvZGFzaC5wcm90b3R5cGUudmFsdWVPZiA9IGxvZGFzaC5wcm90b3R5cGUudmFsdWUgPSB3cmFwcGVyVmFsdWU7XG5cbiAgICAvLyBBZGQgbGF6eSBhbGlhc2VzLlxuICAgIGxvZGFzaC5wcm90b3R5cGUuZmlyc3QgPSBsb2Rhc2gucHJvdG90eXBlLmhlYWQ7XG5cbiAgICBpZiAoc3ltSXRlcmF0b3IpIHtcbiAgICAgIGxvZGFzaC5wcm90b3R5cGVbc3ltSXRlcmF0b3JdID0gd3JhcHBlclRvSXRlcmF0b3I7XG4gICAgfVxuICAgIHJldHVybiBsb2Rhc2g7XG4gIH0pO1xuXG4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gIC8vIEV4cG9ydCBsb2Rhc2guXG4gIHZhciBfID0gcnVuSW5Db250ZXh0KCk7XG5cbiAgLy8gU29tZSBBTUQgYnVpbGQgb3B0aW1pemVycywgbGlrZSByLmpzLCBjaGVjayBmb3IgY29uZGl0aW9uIHBhdHRlcm5zIGxpa2U6XG4gIGlmICh0eXBlb2YgZGVmaW5lID09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGRlZmluZS5hbWQgPT0gJ29iamVjdCcgJiYgZGVmaW5lLmFtZCkge1xuICAgIC8vIEV4cG9zZSBMb2Rhc2ggb24gdGhlIGdsb2JhbCBvYmplY3QgdG8gcHJldmVudCBlcnJvcnMgd2hlbiBMb2Rhc2ggaXNcbiAgICAvLyBsb2FkZWQgYnkgYSBzY3JpcHQgdGFnIGluIHRoZSBwcmVzZW5jZSBvZiBhbiBBTUQgbG9hZGVyLlxuICAgIC8vIFNlZSBodHRwOi8vcmVxdWlyZWpzLm9yZy9kb2NzL2Vycm9ycy5odG1sI21pc21hdGNoIGZvciBtb3JlIGRldGFpbHMuXG4gICAgLy8gVXNlIGBfLm5vQ29uZmxpY3RgIHRvIHJlbW92ZSBMb2Rhc2ggZnJvbSB0aGUgZ2xvYmFsIG9iamVjdC5cbiAgICByb290Ll8gPSBfO1xuXG4gICAgLy8gRGVmaW5lIGFzIGFuIGFub255bW91cyBtb2R1bGUgc28sIHRocm91Z2ggcGF0aCBtYXBwaW5nLCBpdCBjYW4gYmVcbiAgICAvLyByZWZlcmVuY2VkIGFzIHRoZSBcInVuZGVyc2NvcmVcIiBtb2R1bGUuXG4gICAgZGVmaW5lKGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIF87XG4gICAgfSk7XG4gIH1cbiAgLy8gQ2hlY2sgZm9yIGBleHBvcnRzYCBhZnRlciBgZGVmaW5lYCBpbiBjYXNlIGEgYnVpbGQgb3B0aW1pemVyIGFkZHMgaXQuXG4gIGVsc2UgaWYgKGZyZWVNb2R1bGUpIHtcbiAgICAvLyBFeHBvcnQgZm9yIE5vZGUuanMuXG4gICAgKGZyZWVNb2R1bGUuZXhwb3J0cyA9IF8pLl8gPSBfO1xuICAgIC8vIEV4cG9ydCBmb3IgQ29tbW9uSlMgc3VwcG9ydC5cbiAgICBmcmVlRXhwb3J0cy5fID0gXztcbiAgfVxuICBlbHNlIHtcbiAgICAvLyBFeHBvcnQgdG8gdGhlIGdsb2JhbCBvYmplY3QuXG4gICAgcm9vdC5fID0gXztcbiAgfVxufS5jYWxsKHRoaXMpKTtcbiIsICJpbXBvcnQgdHlwZSB7IE11bHRpR3JhcGggfSBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwianVnZ2wtYXBpXCI7XHJcbmltcG9ydCB7IGFkZEljb24sIEV2ZW50UmVmLCBNYXJrZG93blZpZXcsIFBsdWdpbiB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQge1xyXG4gIGFkZEZlYXRoZXJJY29uLFxyXG4gIG9wZW5WaWV3LFxyXG4gIHdhaXQsXHJcbn0gZnJvbSBcIm9ic2lkaWFuLWNvbW11bml0eS1saWIvZGlzdC91dGlsc1wiO1xyXG5pbXBvcnQgeyBCQ0FQSSB9IGZyb20gXCIuL0FQSVwiO1xyXG5pbXBvcnQgeyBEZWJ1Z2dlciB9IGZyb20gXCJzcmMvRGVidWdnZXJcIjtcclxuaW1wb3J0IHsgSGllcmFyY2h5Tm90ZVNlbGVjdG9yTW9kYWwgfSBmcm9tIFwiLi9BbHRlcm5hdGl2ZUhpZXJhcmNoaWVzL0hpZXJhcmNoeU5vdGVzL0hpZXJOb3RlTW9kYWxcIjtcclxuaW1wb3J0IHsgZ2V0Q29kZWJsb2NrQ0IgfSBmcm9tIFwiLi9Db2RlYmxvY2tzXCI7XHJcbmltcG9ydCB7IGNvcHlHbG9iYWxJbmRleCwgY29weUxvY2FsSW5kZXggfSBmcm9tIFwiLi9Db21tYW5kcy9DcmVhdGVJbmRleFwiO1xyXG5pbXBvcnQgeyBqdW1wVG9GaXJzdERpciB9IGZyb20gXCIuL0NvbW1hbmRzL2p1bXBUb0ZpcnN0RGlyXCI7XHJcbmltcG9ydCB7IHRocmVhZCB9IGZyb20gXCIuL0NvbW1hbmRzL3RocmVhZGluZ1wiO1xyXG5pbXBvcnQgeyB3cml0ZUJDc1RvQWxsRmlsZXMsIHdyaXRlQkNUb0ZpbGUgfSBmcm9tIFwiLi9Db21tYW5kcy9Xcml0ZUJDc1wiO1xyXG5pbXBvcnQge1xyXG4gIERFRkFVTFRfU0VUVElOR1MsXHJcbiAgRFVDS19JQ09OLFxyXG4gIERVQ0tfSUNPTl9TVkcsXHJcbiAgRFVDS19WSUVXLFxyXG4gIE1BVFJJWF9WSUVXLFxyXG4gIFRSQUlMX0lDT04sXHJcbiAgVFJBSUxfSUNPTl9TVkcsXHJcbiAgVFJFRV9WSUVXLFxyXG4gIEFQSV9OQU1FLFxyXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBGaWVsZFN1Z2dlc3RvciB9IGZyb20gXCIuL0ZpZWxkU3VnZ2VzdG9yXCI7XHJcbmltcG9ydCB0eXBlIHtcclxuICBCQ0FQSUksXHJcbiAgQkNTZXR0aW5ncyxcclxuICBEaXJlY3Rpb25zLFxyXG4gIE15VmlldyxcclxuICBWaWV3SW5mbyxcclxufSBmcm9tIFwiLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IGJ1aWxkQ2xvc2VkRywgYnVpbGRNYWluRywgcmVmcmVzaEluZGV4IH0gZnJvbSBcIi4vcmVmcmVzaEluZGV4XCI7XHJcbmltcG9ydCB7IFJlbGF0aW9uU3VnZ2VzdG9yIH0gZnJvbSBcIi4vUmVsYXRpb25TdWdnZXN0b3JcIjtcclxuaW1wb3J0IHsgQkNTZXR0aW5nVGFiIH0gZnJvbSBcIi4vU2V0dGluZ3MvQnJlYWRjcnVtYnNTZXR0aW5nVGFiXCI7XHJcbmltcG9ydCB7IGdldEZpZWxkcyB9IGZyb20gXCIuL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyB3YWl0Rm9yQ2FjaGUgfSBmcm9tIFwiLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcbmltcG9ydCBEdWNrc1ZpZXcgZnJvbSBcIi4vVmlld3MvRHVja3NWaWV3XCI7XHJcbmltcG9ydCBNYXRyaXhWaWV3IGZyb20gXCIuL1ZpZXdzL01hdHJpeFZpZXdcIjtcclxuaW1wb3J0IHsgZHJhd1RyYWlsIH0gZnJvbSBcIi4vVmlld3MvVHJhaWxWaWV3XCI7XHJcbmltcG9ydCBUcmVlVmlldyBmcm9tIFwiLi9WaWV3cy9UcmVlVmlld1wiO1xyXG5pbXBvcnQgeyBCQ1N0b3JlIH0gZnJvbSBcIi4vVmlzdWFsaXNhdGlvbnMvSnVnZ2xcIjtcclxuaW1wb3J0IHsgVmlzTW9kYWwgfSBmcm9tIFwiLi9WaXN1YWxpc2F0aW9ucy9WaXNNb2RhbFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQkNQbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xyXG4gIHNldHRpbmdzOiBCQ1NldHRpbmdzO1xyXG5cclxuICB2aXNpdGVkOiBbc3RyaW5nLCBIVE1MRGl2RWxlbWVudF1bXSA9IFtdO1xyXG5cclxuICBtYWluRzogTXVsdGlHcmFwaDtcclxuICBjbG9zZWRHOiBNdWx0aUdyYXBoO1xyXG5cclxuICBhY3RpdmVMZWFmQ2hhbmdlOiBFdmVudFJlZiA9IHVuZGVmaW5lZDtcclxuICBsYXlvdXRDaGFuZ2U6IEV2ZW50UmVmID0gdW5kZWZpbmVkO1xyXG5cclxuICBkYjogRGVidWdnZXI7XHJcblxyXG4gIFZJRVdTOiBWaWV3SW5mb1tdO1xyXG5cclxuICBhcGk6IEJDQVBJSTtcclxuICBwcml2YXRlIGJjU3RvcmU6IEJDU3RvcmU7XHJcblxyXG4gIHJlZ2lzdGVyQWN0aXZlTGVhZkNoYW5nZUV2ZW50KCkge1xyXG4gICAgdGhpcy5hY3RpdmVMZWFmQ2hhbmdlID0gYXBwLndvcmtzcGFjZS5vbihcclxuICAgICAgXCJmaWxlLW9wZW5cIixcclxuICAgICAgYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzLnJlZnJlc2hPbk5vdGVDaGFuZ2UpIGF3YWl0IHJlZnJlc2hJbmRleCh0aGlzKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IGFjdGl2ZVZpZXcgPSB0aGlzLmdldEFjdGl2ZVRZUEVWaWV3KE1BVFJJWF9WSUVXKTtcclxuICAgICAgICAgIGlmIChhY3RpdmVWaWV3KSBhd2FpdCBhY3RpdmVWaWV3LmRyYXcoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnQodGhpcy5hY3RpdmVMZWFmQ2hhbmdlKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyTGF5b3V0Q2hhbmdlRXZlbnQoKSB7XHJcbiAgICB0aGlzLmxheW91dENoYW5nZSA9IGFwcC53b3Jrc3BhY2Uub24oXCJsYXlvdXQtY2hhbmdlXCIsIGFzeW5jICgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuc2V0dGluZ3Muc2hvd0JDcykgYXdhaXQgZHJhd1RyYWlsKHRoaXMpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnQodGhpcy5sYXlvdXRDaGFuZ2UpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc29sZS5sb2coXCJsb2FkaW5nIGJyZWFkY3J1bWJzIHBsdWdpblwiKTtcclxuXHJcbiAgICBhd2FpdCB0aGlzLmxvYWRTZXR0aW5ncygpO1xyXG4gICAgdGhpcy5hZGRTZXR0aW5nVGFiKG5ldyBCQ1NldHRpbmdUYWIodGhpcykpO1xyXG5cclxuICAgIHRoaXMuZGIgPSBuZXcgRGVidWdnZXIodGhpcyk7XHJcblxyXG4gICAgY29uc3QgeyBzZXR0aW5ncyB9ID0gdGhpcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgZmllbGRTdWdnZXN0b3IsXHJcbiAgICAgIGVuYWJsZVJlbGF0aW9uU3VnZ2VzdG9yLFxyXG4gICAgICBvcGVuTWF0cml4T25Mb2FkLFxyXG4gICAgICBvcGVuRHVja09uTG9hZCxcclxuICAgICAgb3BlbkRvd25PbkxvYWQsXHJcbiAgICAgIHNob3dCQ3MsXHJcbiAgICAgIHVzZXJIaWVycyxcclxuICAgIH0gPSBzZXR0aW5ncztcclxuXHJcbiAgICBpZiAoZmllbGRTdWdnZXN0b3IpIHRoaXMucmVnaXN0ZXJFZGl0b3JTdWdnZXN0KG5ldyBGaWVsZFN1Z2dlc3Rvcih0aGlzKSk7XHJcbiAgICBpZiAoZW5hYmxlUmVsYXRpb25TdWdnZXN0b3IpXHJcbiAgICAgIHRoaXMucmVnaXN0ZXJFZGl0b3JTdWdnZXN0KG5ldyBSZWxhdGlvblN1Z2dlc3Rvcih0aGlzKSk7XHJcblxyXG5cclxuICAgIC8vIE92ZXJyaWRlIG9sZGVyIHZlcnNpb25zIG9mIHRoZXNlIHNldHRpbmdzXHJcbiAgICBpZiAoc2V0dGluZ3MubGltaXRUcmFpbENoZWNrYm94ZXMubGVuZ3RoID09PSAwKSBzZXR0aW5ncy5saW1pdFRyYWlsQ2hlY2tib3hlcyA9IGdldEZpZWxkcyhzZXR0aW5ncy51c2VySGllcnMpXHJcbiAgICBpZiAodHlwZW9mIHNldHRpbmdzLnNob3dBbGwgPT09ICdib29sZWFuJykgc2V0dGluZ3Muc2hvd0FsbCA9IHNldHRpbmdzLnNob3dBbGwgPyAnQWxsJyA6ICdTaG9ydGVzdCdcclxuXHJcbiAgICB0aGlzLlZJRVdTID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGxhaW46IFwiTWF0cml4XCIsXHJcbiAgICAgICAgdHlwZTogTUFUUklYX1ZJRVcsXHJcbiAgICAgICAgY29uc3RydWN0b3I6IE1hdHJpeFZpZXcsXHJcbiAgICAgICAgb3Blbk9uTG9hZDogb3Blbk1hdHJpeE9uTG9hZCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBsYWluOiBcIkR1Y2tcIixcclxuICAgICAgICB0eXBlOiBEVUNLX1ZJRVcsXHJcbiAgICAgICAgY29uc3RydWN0b3I6IER1Y2tzVmlldyxcclxuICAgICAgICBvcGVuT25Mb2FkOiBvcGVuRHVja09uTG9hZCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBsYWluOiBcIkRvd25cIixcclxuICAgICAgICB0eXBlOiBUUkVFX1ZJRVcsXHJcbiAgICAgICAgY29uc3RydWN0b3I6IFRyZWVWaWV3LFxyXG4gICAgICAgIG9wZW5PbkxvYWQ6IG9wZW5Eb3duT25Mb2FkLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IHsgY29uc3RydWN0b3IsIHR5cGUgfSBvZiB0aGlzLlZJRVdTKSB7XHJcbiAgICAgIHRoaXMucmVnaXN0ZXJWaWV3KHR5cGUsIChsZWFmKSA9PiBuZXcgY29uc3RydWN0b3IobGVhZiwgdGhpcykpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZEljb24oRFVDS19JQ09OLCBEVUNLX0lDT05fU1ZHKTtcclxuICAgIGFkZEljb24oVFJBSUxfSUNPTiwgVFJBSUxfSUNPTl9TVkcpO1xyXG5cclxuICAgIGF3YWl0IHdhaXRGb3JDYWNoZSh0aGlzKTtcclxuICAgIHRoaXMubWFpbkcgPSBhd2FpdCBidWlsZE1haW5HKHRoaXMpO1xyXG4gICAgdGhpcy5jbG9zZWRHID0gYnVpbGRDbG9zZWRHKHRoaXMpO1xyXG5cclxuICAgIGFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeShhc3luYyAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IG5vRmlsZXMgPSBhcHAudmF1bHQuZ2V0TWFya2Rvd25GaWxlcygpLmxlbmd0aDtcclxuICAgICAgaWYgKHRoaXMubWFpbkc/Lm5vZGVzKCkubGVuZ3RoIDwgbm9GaWxlcykge1xyXG4gICAgICAgIGF3YWl0IHdhaXQoMzAwMCk7XHJcbiAgICAgICAgdGhpcy5tYWluRyA9IGF3YWl0IGJ1aWxkTWFpbkcodGhpcyk7XHJcbiAgICAgICAgdGhpcy5jbG9zZWRHID0gYnVpbGRDbG9zZWRHKHRoaXMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IHsgb3Blbk9uTG9hZCwgdHlwZSwgY29uc3RydWN0b3IgfSBvZiB0aGlzLlZJRVdTKVxyXG4gICAgICAgIGlmIChvcGVuT25Mb2FkKSBhd2FpdCBvcGVuVmlldyh0eXBlLCBjb25zdHJ1Y3Rvcik7XHJcblxyXG4gICAgICBpZiAoc2hvd0JDcykgYXdhaXQgZHJhd1RyYWlsKHRoaXMpO1xyXG4gICAgICB0aGlzLnJlZ2lzdGVyQWN0aXZlTGVhZkNoYW5nZUV2ZW50KCk7XHJcbiAgICAgIHRoaXMucmVnaXN0ZXJMYXlvdXRDaGFuZ2VFdmVudCgpO1xyXG5cclxuICAgICAgLy8gU291cmNlIGZvciBzYXZlIHNldHRpbmdcclxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hpcHN0ZXJzbW9vdGhpZS9vYnNpZGlhbi1wbHVnaW4tcHJldHRpZXIvYmxvYi9tYWluL3NyYy9tYWluLnRzXHJcbiAgICAgIGNvbnN0IHNhdmVDb21tYW5kRGVmaW5pdGlvbiA9XHJcbiAgICAgICAgYXBwLmNvbW1hbmRzLmNvbW1hbmRzW1wiZWRpdG9yOnNhdmUtZmlsZVwiXTtcclxuICAgICAgY29uc3Qgc2F2ZSA9IHNhdmVDb21tYW5kRGVmaW5pdGlvbj8uY2FsbGJhY2s7XHJcblxyXG4gICAgICBpZiAodHlwZW9mIHNhdmUgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgIHNhdmVDb21tYW5kRGVmaW5pdGlvbi5jYWxsYmFjayA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICAgIGF3YWl0IHNhdmUoKTtcclxuICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLnJlZnJlc2hPbk5vdGVTYXZlKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHJlZnJlc2hJbmRleCh0aGlzKTtcclxuICAgICAgICAgICAgY29uc3QgYWN0aXZlVmlldyA9IHRoaXMuZ2V0QWN0aXZlVFlQRVZpZXcoTUFUUklYX1ZJRVcpO1xyXG4gICAgICAgICAgICBpZiAoYWN0aXZlVmlldykgYXdhaXQgYWN0aXZlVmlldy5kcmF3KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgYXBwLndvcmtzcGFjZS5pdGVyYXRlQWxsTGVhdmVzKChsZWFmKSA9PiB7XHJcbiAgICAgICAgaWYgKGxlYWYgaW5zdGFuY2VvZiBNYXJrZG93blZpZXcpXHJcbiAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgIGxlYWYudmlldy5wcmV2aWV3TW9kZS5yZXJlbmRlcih0cnVlKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IHsgdHlwZSwgcGxhaW4sIGNvbnN0cnVjdG9yIH0gb2YgdGhpcy5WSUVXUykge1xyXG4gICAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICAgIGlkOiBgc2hvdy0ke3R5cGV9LXZpZXdgLFxyXG4gICAgICAgIG5hbWU6IGBPcGVuICR7cGxhaW59IFZpZXdgLFxyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIGNoZWNrQ2FsbGJhY2s6IGFzeW5jIChjaGVja2luZzogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoZWNraW5nKSByZXR1cm4gYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUodHlwZSkubGVuZ3RoID09PSAwO1xyXG4gICAgICAgICAgYXdhaXQgb3BlblZpZXcodHlwZSwgY29uc3RydWN0b3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiBcIm9wZW4tdmlzLW1vZGFsXCIsXHJcbiAgICAgIG5hbWU6IFwiT3BlbiBWaXN1YWxpc2F0aW9uIE1vZGFsXCIsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiBuZXcgVmlzTW9kYWwodGhpcykub3BlbigpLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6IFwibWFuaXB1bGF0ZS1oaWVyYXJjaHktbm90ZXNcIixcclxuICAgICAgbmFtZTogXCJBZGp1c3QgSGllcmFyY2h5IE5vdGVzXCIsXHJcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiBuZXcgSGllcmFyY2h5Tm90ZVNlbGVjdG9yTW9kYWwodGhpcykub3BlbigpLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgaWQ6IFwiUmVmcmVzaC1CcmVhZGNydW1icy1JbmRleFwiLFxyXG4gICAgICBuYW1lOiBcIlJlZnJlc2ggQnJlYWRjcnVtYnMgSW5kZXhcIixcclxuICAgICAgY2FsbGJhY2s6IGFzeW5jICgpID0+IGF3YWl0IHJlZnJlc2hJbmRleCh0aGlzKSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiBcIlRvZ2dsZS10cmFpbC1pbi1FZGl0JkxQXCIsXHJcbiAgICAgIG5hbWU6IFwiVG9nZ2xlOiBTaG93IFRyYWlsL0dyaWQgaW4gRWRpdCAmIExQIG1vZGVcIixcclxuICAgICAgY2FsbGJhY2s6IGFzeW5jICgpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5zaG93QkNzSW5FZGl0TFBNb2RlID0gIXNldHRpbmdzLnNob3dCQ3NJbkVkaXRMUE1vZGU7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBhd2FpdCBkcmF3VHJhaWwodGhpcyk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogXCJXcml0ZS1CcmVhZGNydW1icy10by1DdXJyZW50LUZpbGVcIixcclxuICAgICAgbmFtZTogXCJXcml0ZSBCcmVhZGNydW1icyB0byBDdXJyZW50IEZpbGVcIixcclxuICAgICAgY2FsbGJhY2s6IGFzeW5jICgpID0+IGF3YWl0IHdyaXRlQkNUb0ZpbGUodGhpcyksXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogXCJXcml0ZS1CcmVhZGNydW1icy10by1BbGwtRmlsZXNcIixcclxuICAgICAgbmFtZTogXCJXcml0ZSBCcmVhZGNydW1icyB0byAqKkFMTCoqIEZpbGVzXCIsXHJcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoKSA9PiBhd2FpdCB3cml0ZUJDc1RvQWxsRmlsZXModGhpcyksXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogXCJsb2NhbC1pbmRleFwiLFxyXG4gICAgICBuYW1lOiBcIkNvcHkgYSBMb2NhbCBJbmRleCB0byB0aGUgY2xpcGJvYXJkXCIsXHJcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoKSA9PiBhd2FpdCBjb3B5TG9jYWxJbmRleCh0aGlzKSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiBcImdsb2JhbC1pbmRleFwiLFxyXG4gICAgICBuYW1lOiBcIkNvcHkgYSBHbG9iYWwgSW5kZXggdG8gdGhlIGNsaXBib2FyZFwiLFxyXG4gICAgICBjYWxsYmFjazogYXN5bmMgKCkgPT4gYXdhaXQgY29weUdsb2JhbEluZGV4KHRoaXMpLFxyXG4gICAgfSk7XHJcblxyXG4gICAgW1widXBcIiwgXCJkb3duXCIsIFwibmV4dFwiLCBcInByZXZcIl0uZm9yRWFjaCgoZGlyOiBEaXJlY3Rpb25zKSA9PiB7XHJcbiAgICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgICAgaWQ6IGBqdW1wLXRvLWZpcnN0LSR7ZGlyfWAsXHJcbiAgICAgICAgbmFtZTogYEp1bXAgdG8gZmlyc3QgJyR7ZGlyfSdgLFxyXG4gICAgICAgIGNhbGxiYWNrOiBhc3luYyAoKSA9PiBhd2FpdCBqdW1wVG9GaXJzdERpcih0aGlzLCBkaXIpLFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIGdldEZpZWxkcyh1c2VySGllcnMpLmZvckVhY2goKGZpZWxkOiBzdHJpbmcpID0+IHtcclxuICAgICAgdGhpcy5hZGRDb21tYW5kKHtcclxuICAgICAgICBpZDogYG5ldy1maWxlLXdpdGgtY3Vyci1hcy0ke2ZpZWxkfWAsXHJcbiAgICAgICAgbmFtZTogYENyZWF0ZSBhIG5ldyAnJHtmaWVsZH0nIGZyb20gdGhlIGN1cnJlbnQgbm90ZWAsXHJcbiAgICAgICAgY2FsbGJhY2s6IGFzeW5jICgpID0+IGF3YWl0IHRocmVhZCh0aGlzLCBmaWVsZCksXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hZGRSaWJib25JY29uKFxyXG4gICAgICBhZGRGZWF0aGVySWNvbihcInR2XCIpIGFzIHN0cmluZyxcclxuICAgICAgXCJCcmVhZGNydW1icyBWaXN1YWxpc2F0aW9uXCIsXHJcbiAgICAgICgpID0+IG5ldyBWaXNNb2RhbCh0aGlzKS5vcGVuKClcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5yZWdpc3Rlck1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yKFxyXG4gICAgICBcImJyZWFkY3J1bWJzXCIsXHJcbiAgICAgIGdldENvZGVibG9ja0NCKHRoaXMpXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IGp1Z2dsUGx1Z2luID0gZ2V0UGx1Z2luKGFwcCk7XHJcbiAgICBpZiAoanVnZ2xQbHVnaW4pIHtcclxuICAgICAgdGhpcy5iY1N0b3JlID0gbmV3IEJDU3RvcmUodGhpcy5tYWluRywgYXBwLm1ldGFkYXRhQ2FjaGUpO1xyXG4gICAgICBqdWdnbFBsdWdpbi5yZWdpc3RlclN0b3JlKHRoaXMuYmNTdG9yZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcGkgPSBuZXcgQkNBUEkodGhpcyk7XHJcbiAgICAvLyBSZWdpc3RlciBBUEkgdG8gZ2xvYmFsIHdpbmRvdyBvYmplY3QuXHJcbiAgICAod2luZG93W0FQSV9OQU1FXSA9IHRoaXMuYXBpKSAmJlxyXG4gICAgICB0aGlzLnJlZ2lzdGVyKCgpID0+IGRlbGV0ZSB3aW5kb3dbQVBJX05BTUVdKTtcclxuICB9XHJcblxyXG4gIGdldEFjdGl2ZVRZUEVWaWV3KHR5cGU6IHN0cmluZyk6IE15VmlldyB8IG51bGwge1xyXG4gICAgY29uc3QgeyBjb25zdHJ1Y3RvciB9ID0gdGhpcy5WSUVXUy5maW5kKCh2aWV3KSA9PiB2aWV3LnR5cGUgPT09IHR5cGUpO1xyXG4gICAgY29uc3QgbGVhdmVzID0gYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUodHlwZSk7XHJcbiAgICBpZiAobGVhdmVzICYmIGxlYXZlcy5sZW5ndGggPj0gMSkge1xyXG4gICAgICBjb25zdCB7IHZpZXcgfSA9IGxlYXZlc1swXTtcclxuICAgICAgaWYgKHZpZXcgaW5zdGFuY2VvZiBjb25zdHJ1Y3RvcikgcmV0dXJuIHZpZXc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGxvYWRTZXR0aW5ncyA9IGFzeW5jICgpID0+XHJcbiAgKHRoaXMuc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKFxyXG4gICAge30sXHJcbiAgICBERUZBVUxUX1NFVFRJTkdTLFxyXG4gICAgYXdhaXQgdGhpcy5sb2FkRGF0YSgpXHJcbiAgKSk7XHJcblxyXG4gIHNhdmVTZXR0aW5ncyA9IGFzeW5jICgpID0+IGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcblxyXG4gIG9udW5sb2FkKCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXCJ1bmxvYWRpbmdcIik7XHJcbiAgICB0aGlzLlZJRVdTLmZvckVhY2goYXN5bmMgKHZpZXcpID0+IHtcclxuICAgICAgYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUodmlldy50eXBlKS5mb3JFYWNoKChsZWFmKSA9PiB7XHJcbiAgICAgICAgbGVhZi5kZXRhY2goKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnZpc2l0ZWQuZm9yRWFjaCgodmlzaXQpID0+IHZpc2l0WzFdLnJlbW92ZSgpKTtcclxuICAgIGlmICh0aGlzLmJjU3RvcmUpIHtcclxuICAgICAgY29uc3QganVnZ2xQbHVnaW4gPSBnZXRQbHVnaW4oYXBwKTtcclxuICAgICAgaWYgKGp1Z2dsUGx1Z2luKSB7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIGp1Z2dsUGx1Z2luLnJlbW92ZVN0b3JlKHRoaXMuYmNTdG9yZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwgImltcG9ydCB7IHBhcnNlRnJvbnRNYXR0ZXJUYWdzLCBwYXJzZUZyb250TWF0dGVyU3RyaW5nQXJyYXkgfSBmcm9tICdvYnNpZGlhbic7XG5cbmNvbnN0IENBVF9EQU5HTElORyA9ICdkYW5nbGluZyc7XG5jb25zdCBDT1JFX1NUT1JFX0lEID0gJ2NvcmUnO1xuY2xhc3MgVml6SWQge1xuICAgIGNvbnN0cnVjdG9yKGlkLCBzdG9yZUlkKSB7XG4gICAgICAgIHRoaXMuaWQgPSBpZDtcbiAgICAgICAgdGhpcy5zdG9yZUlkID0gc3RvcmVJZDtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLnN0b3JlSWR9OiR7dGhpcy5pZH1gO1xuICAgIH1cbiAgICB0b0lkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50b1N0cmluZygpO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbUlkKGlkKSB7XG4gICAgICAgIGNvbnN0IHNwbGl0ID0gaWQuc3BsaXQoJzonKTtcbiAgICAgICAgY29uc3Qgc3RvcmVJZCA9IHNwbGl0WzBdO1xuICAgICAgICBjb25zdCBfaWQgPSBzcGxpdC5zbGljZSgxKS5qb2luKCc6Jyk7XG4gICAgICAgIHJldHVybiBuZXcgVml6SWQoX2lkLCBzdG9yZUlkKTtcbiAgICB9XG4gICAgc3RhdGljIGZyb21Ob2RlKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIFZpeklkLmZyb21JZChub2RlLmlkKCkpO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbU5vZGVzKG5vZGVzKSB7XG4gICAgICAgIHJldHVybiBub2Rlcy5tYXAoKG4pID0+IFZpeklkLmZyb21Ob2RlKG4pKTtcbiAgICB9XG4gICAgc3RhdGljIGZyb21GaWxlKGZpbGUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBWaXpJZChmaWxlLm5hbWUsICdjb3JlJyk7XG4gICAgfVxuICAgIHN0YXRpYyB0b0lkKGlkLCBzdG9yZUlkKSB7XG4gICAgICAgIHJldHVybiBuZXcgVml6SWQoaWQsIHN0b3JlSWQpLnRvSWQoKTtcbiAgICB9XG59XG5jb25zdCBfcGFyc2VUYWdzID0gZnVuY3Rpb24gKHRhZ3MpIHtcbiAgICByZXR1cm4gW10uY29uY2F0KC4uLnRhZ3NcbiAgICAgICAgLm1hcCgodGFnKSA9PiB7XG4gICAgICAgIHRhZyA9IHRhZy5zbGljZSgxKTtcbiAgICAgICAgY29uc3QgaFNwbGl0ID0gdGFnLnNwbGl0KCcvJyk7XG4gICAgICAgIGNvbnN0IHRhZ3MgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBpIGluIGhTcGxpdCkge1xuICAgICAgICAgICAgY29uc3QgaFRhZyA9IGhTcGxpdC5zbGljZSgwLCBwYXJzZUludChpKSArIDEpLmpvaW4oJy0nKTtcbiAgICAgICAgICAgIHRhZ3MucHVzaChgdGFnLSR7aFRhZ31gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFncztcbiAgICB9KSk7XG59O1xuY29uc3QgZ2V0Q2xhc3NlcyA9IGZ1bmN0aW9uIChmaWxlLCBtZXRhZGF0YUNhY2hlKSB7XG4gICAgaWYgKGZpbGUpIHtcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IFtdO1xuICAgICAgICBpZiAoWydwbmcnLCAnanBnJywgJ2pwZWcnLCAnZ2lmJywgJ2JtcCcsICdzdmcnLCAndGlmZiddLmNvbnRhaW5zKGZpbGUuZXh0ZW5zaW9uKSkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdpbWFnZScpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKFsnbXAzJywgJ3dlYm0nLCAnd2F2JywgJ200YScsICdvZ2cnLCAnM2dwJywgJ2ZsYWMnXS5jb250YWlucyhmaWxlLmV4dGVuc2lvbikpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnYXVkaW8nKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChbJ21wNCcsICd3ZWJtJywgJ29ndiddLmNvbnRhaW5zKGZpbGUuZXh0ZW5zaW9uKSkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCd2aWRlbycpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGZpbGUuZXh0ZW5zaW9uID09PSAncGRmJykge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdwZGYnKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUaGlzIGlzIHJlcGxhY2VkIGJ5IHRoZSAncGF0aCcgZGF0YSBhdHRyaWJ1dGUuXG4gICAgICAgIC8vIGlmICghKGZpbGUucGFyZW50Lm5hbWUgPT09ICcvJyB8fCBmaWxlLnBhcmVudC5uYW1lID09PSAnJykpIHtcbiAgICAgICAgLy8gICBjbGFzc2VzLnB1c2goYGZvbGRlci0ke2ZpbGUucGFyZW50Lm5hbWVcbiAgICAgICAgLy8gICAgICAgLnJlcGxhY2UoJyAnLCAnXycpfWApO1xuICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAvLyAgIGNsYXNzZXMucHVzaCgncm9vdCcpO1xuICAgICAgICAvLyB9XG4gICAgICAgIGlmIChmaWxlLmV4dGVuc2lvbiA9PT0gJ21kJykge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdub3RlJyk7XG4gICAgICAgICAgICBjb25zdCBjYWNoZSA9IG1ldGFkYXRhQ2FjaGUuZ2V0RmlsZUNhY2hlKGZpbGUpO1xuICAgICAgICAgICAgaWYgKGNhY2hlPy5mcm9udG1hdHRlcikge1xuICAgICAgICAgICAgICAgIGlmICgnaW1hZ2UnIGluIGNhY2hlLmZyb250bWF0dGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnaW1hZ2UnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCd0YWdzJyBpbiBjYWNoZS5mcm9udG1hdHRlcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YWdzID0gcGFyc2VGcm9udE1hdHRlclRhZ3MoY2FjaGUuZnJvbnRtYXR0ZXIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGFncykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKC4uLl9wYXJzZVRhZ3ModGFncykpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgnY3NzY2xhc3MnIGluIGNhY2hlLmZyb250bWF0dGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsYXp6ZXMgPSBwYXJzZUZyb250TWF0dGVyU3RyaW5nQXJyYXkoY2FjaGUuZnJvbnRtYXR0ZXIsICdjc3NjbGFzcycpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2xhenplcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKC4uLmNsYXp6ZXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNhY2hlPy50YWdzKSB7XG4gICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKC4uLl9wYXJzZVRhZ3MoY2FjaGUudGFncy5tYXAoKHQpID0+IHQudGFnKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdmaWxlJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNsYXNzZXM7XG4gICAgfVxuICAgIHJldHVybiBbQ0FUX0RBTkdMSU5HXTtcbn07XG5jb25zdCBub2RlRnJvbUZpbGUgPSBhc3luYyBmdW5jdGlvbiAoZmlsZSwgcGx1Z2luLCBzZXR0aW5ncywgaWQpIHtcbiAgICBpZiAoIWlkKSB7XG4gICAgICAgIGlkID0gVml6SWQudG9JZChmaWxlLm5hbWUsIENPUkVfU1RPUkVfSUQpO1xuICAgIH1cbiAgICBjb25zdCBjYWNoZSA9IHBsdWdpbi5hcHAubWV0YWRhdGFDYWNoZS5nZXRGaWxlQ2FjaGUoZmlsZSk7XG4gICAgY29uc3QgbmFtZSA9IGZpbGUuZXh0ZW5zaW9uID09PSAnbWQnID8gZmlsZS5iYXNlbmFtZSA6IGZpbGUubmFtZTtcbiAgICBjb25zdCBjbGFzc2VzID0gZ2V0Q2xhc3NlcyhmaWxlLCBwbHVnaW4uYXBwLm1ldGFkYXRhQ2FjaGUpLmpvaW4oJyAnKTtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICBpZCxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcGF0aDogZmlsZS5wYXRoLFxuICAgIH07XG4gICAgaWYgKFsncG5nJywgJ2pwZycsICdqcGVnJywgJ2dpZicsICdibXAnLCAnc3ZnJywgJ3RpZmYnXS5jb250YWlucyhmaWxlLmV4dGVuc2lvbikpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGRhdGFbJ3Jlc291cmNlX3VybCddID0gYGh0dHA6Ly9sb2NhbGhvc3Q6JHtwbHVnaW4uc2V0dGluZ3MuaW1nU2VydmVyUG9ydH0vJHtlbmNvZGVVUkkoZmlsZS5wYXRoKX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIHsgfVxuICAgIH1cbiAgICBpZiAoc2V0dGluZ3MucmVhZENvbnRlbnQgJiYgZmlsZS5leHRlbnNpb24gPT0gJ21kJykge1xuICAgICAgICBkYXRhWydjb250ZW50J10gPSBhd2FpdCBwbHVnaW4uYXBwLnZhdWx0LmNhY2hlZFJlYWQoZmlsZSk7XG4gICAgfVxuICAgIGNvbnN0IGZyb250bWF0dGVyID0gY2FjaGU/LmZyb250bWF0dGVyO1xuICAgIGlmIChmcm9udG1hdHRlcikge1xuICAgICAgICBPYmplY3Qua2V5cyhmcm9udG1hdHRlcikuZm9yRWFjaCgoaykgPT4ge1xuICAgICAgICAgICAgaWYgKCEoayA9PT0gJ3Bvc2l0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBpZiAoayA9PT0gJ2ltYWdlJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWFnZUZpZWxkID0gZnJvbnRtYXR0ZXJba107XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB1cmwuIHRocm93cyBlcnJvciBvdGhlcndpc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVUkwoaW1hZ2VGaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2tdID0gaW1hZ2VGaWVsZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2tdID0gYGh0dHA6Ly9sb2NhbGhvc3Q6JHtwbHVnaW4uc2V0dGluZ3MuaW1nU2VydmVyUG9ydH0vJHtlbmNvZGVVUkkoaW1hZ2VGaWVsZCl9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIHsgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkYXRhW2tdID0gZnJvbnRtYXR0ZXJba107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZ3JvdXA6ICdub2RlcycsXG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGNsYXNzZXM6IGNsYXNzZXMsXG4gICAgfTtcbn07XG5jb25zdCBub2RlRGFuZ2xpbmcgPSBmdW5jdGlvbiAocGF0aCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIGdyb3VwOiAnbm9kZXMnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBpZDogVml6SWQudG9JZChwYXRoLCBDT1JFX1NUT1JFX0lEKSxcbiAgICAgICAgICAgIG5hbWU6IHBhdGgsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzZXM6ICdkYW5nbGluZycsXG4gICAgfTtcbn07XG5jb25zdCB3aWtpbGlua1JlZ2V4ID0gJ1xcXFxbXFxcXFsoW15cXFxcXVxcXFxyXFxcXG5dKz8pXFxcXF1cXFxcXSc7XG5jb25zdCBuYW1lUmVnZXggPSAnW15cXFxcV1xcXFxkXVxcXFx3Kic7XG5jb25zdCByZWdleEVzY2FwZSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1stXFwvXFxcXF4kKis/LigpfFtcXF17fV0vZywgJ1xcXFwkJicpO1xufTtcbmNvbnN0IHBhcnNlVHlwZWRMaW5rID0gZnVuY3Rpb24gKGxpbmssIGxpbmUsIHR5cGVkTGlua1ByZWZpeCkge1xuICAgIC8vIFRPRE86IFRoaXMgaXMgc29tZXRoaW5nIHNwZWNpZmljIEkgdXNlLCBidXQgc2hvdWxkbid0IGtlZXAgYmVpbmcgaW4gdGhpcyByZXBvLlxuICAgIGNvbnN0IHJlZ2V4UHVibGlzaGVkSW4gPSBuZXcgUmVnRXhwKGBeJHtyZWdleEVzY2FwZSh0eXBlZExpbmtQcmVmaXgpfSAocHVibGlzaGVkSW4pIChcXFxcZFxcXFxkXFxcXGRcXFxcZCkgKCR7d2lraWxpbmtSZWdleH0sPyAqKSskYCk7XG4gICAgY29uc3QgbWF0Y2hQSSA9IHJlZ2V4UHVibGlzaGVkSW4uZXhlYyhsaW5lKTtcbiAgICBpZiAoIShtYXRjaFBJID09PSBudWxsKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2xhc3M6ICd0eXBlLXB1Ymxpc2hlZEluJyxcbiAgICAgICAgICAgIGlzSW5saW5lOiBmYWxzZSxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICB5ZWFyOiBtYXRjaFBJWzJdLFxuICAgICAgICAgICAgICAgIGNvbnRleHQ6ICcnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdwdWJsaXNoZWRJbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvLyBJbnR1aXRpb246IFN0YXJ0IHdpdGggdGhlIHR5cGVkIGxpbmsgcHJlZml4LiBUaGVuIGEgbmVvNGogbmFtZSAobmFtZVJlZ2V4KS5cbiAgICAvLyBUaGVuIG9uZSBvciBtb3JlIG9mIHRoZSB3aWtpbGluayBncm91cDogd2lraWxpbmsgcmVnZXggc2VwYXJhdGVkIGJ5IG9wdGlvbmFsIGNvbW1hIGFuZCBtdWx0aXBsZSBzcGFjZXNcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYF4ke3JlZ2V4RXNjYXBlKHR5cGVkTGlua1ByZWZpeCl9ICgke25hbWVSZWdleH0pICgke3dpa2lsaW5rUmVnZXh9LD8gKikrJGApO1xuICAgIGNvbnN0IG1hdGNoID0gcmVnZXguZXhlYyhsaW5lKTtcbiAgICBjb25zdCBzcGxpdExpbmsgPSBsaW5rLm9yaWdpbmFsLnNwbGl0KCd8Jyk7XG4gICAgbGV0IGFsaWFzID0gbnVsbDtcbiAgICBpZiAoc3BsaXRMaW5rLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgYWxpYXMgPSBzcGxpdExpbmsuc2xpY2UoMSkuam9pbigpLnNsaWNlKDAsIC0yKTtcbiAgICB9XG4gICAgaWYgKCEobWF0Y2ggPT09IG51bGwpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjbGFzczogYHR5cGUtJHttYXRjaFsxXX1gLFxuICAgICAgICAgICAgaXNJbmxpbmU6IGZhbHNlLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIGFsaWFzOiBhbGlhcyxcbiAgICAgICAgICAgICAgICBjb250ZXh0OiAnJyxcbiAgICAgICAgICAgICAgICB0eXBlOiBtYXRjaFsxXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcbmNvbnN0IHBhcnNlUmVmQ2FjaGUgPSBmdW5jdGlvbiAocmVmLCBjb250ZW50LCBpZCwgc291cmNlLCB0YXJnZXQsIHR5cGVkTGlua1ByZWZpeCkge1xuICAgIGNvbnN0IGxpbmUgPSBjb250ZW50W3JlZi5wb3NpdGlvbi5zdGFydC5saW5lXTtcbiAgICBsZXQgZGF0YSA9IHtcbiAgICAgICAgaWQ6IGlkLFxuICAgICAgICBzb3VyY2U6IHNvdXJjZSxcbiAgICAgICAgdGFyZ2V0OiB0YXJnZXQsXG4gICAgICAgIGNvbnRleHQ6IGxpbmUsXG4gICAgICAgIGVkZ2VDb3VudDogMSxcbiAgICB9O1xuICAgIGNvbnN0IHNwbGl0TGluayA9IHJlZi5vcmlnaW5hbC5zcGxpdCgnfCcpO1xuICAgIGlmIChzcGxpdExpbmsubGVuZ3RoID4gMSkge1xuICAgICAgICBkYXRhWydhbGlhcyddID0gc3BsaXRMaW5rLnNsaWNlKDEpLmpvaW4oKS5zbGljZSgwLCAtMik7XG4gICAgfVxuICAgIGxldCBjbGFzc2VzID0gJyc7XG4gICAgY29uc3QgdHlwZWRMaW5rID0gcGFyc2VUeXBlZExpbmsocmVmLCBsaW5lLCB0eXBlZExpbmtQcmVmaXgpO1xuICAgIGlmICh0eXBlZExpbmsgPT09IG51bGwpIHtcbiAgICAgICAgY2xhc3NlcyA9IGAke2NsYXNzZXN9IGlubGluZWA7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBkYXRhID0geyAuLi50eXBlZExpbmsucHJvcGVydGllcywgLi4uZGF0YSB9O1xuICAgICAgICBjbGFzc2VzID0gYCR7Y2xhc3Nlc30gJHt0eXBlZExpbmsuY2xhc3N9YDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZ3JvdXA6ICdlZGdlcycsXG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGNsYXNzZXM6IGNsYXNzZXMsXG4gICAgfTtcbn07XG5cbmNvbnN0IGdldFBsdWdpbiA9IGZ1bmN0aW9uIChhcHApIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaWYgKCdqdWdnbCcgaW4gYXBwLnBsdWdpbnMucGx1Z2lucykge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJldHVybiBhcHAucGx1Z2lucy5wbHVnaW5zWydqdWdnbCddO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCB7IFZpeklkLCBnZXRDbGFzc2VzLCBnZXRQbHVnaW4sIG5vZGVEYW5nbGluZywgbm9kZUZyb21GaWxlLCBwYXJzZVJlZkNhY2hlLCBwYXJzZVR5cGVkTGluayB9O1xuIiwgIi8qKlxyXG4gKiBUaGlzIG1vZHVsZSBjb250YWlucyB2YXJpb3VzIHV0aWxpdHkgZnVuY3Rpb25zIGNvbW1vbmx5IHVzZWQgaW4gT2JzaWRpYW4gcGx1Z2lucy5cclxuICogQG1vZHVsZSBvYnNpZGlhbi1jb21tdW5pdHktbGliXHJcbiAqL1xyXG5pbXBvcnQgKiBhcyBmZWF0aGVyIGZyb20gXCJmZWF0aGVyLWljb25zXCI7XHJcbmltcG9ydCB7IGFkZEljb24sIE1hcmtkb3duUmVuZGVyZXIsIE1hcmtkb3duVmlldywgTW9kYWwsIG5vcm1hbGl6ZVBhdGgsIE5vdGljZSwgcmVxdWVzdCwgVEZpbGUsIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbi8qKlxyXG4gKiBZb3UgY2FuIGF3YWl0IHRoaXMgRnVuY3Rpb24gdG8gZGVsYXkgZXhlY3V0aW9uXHJcbiAqXHJcbiAqIEBwYXJhbSBkZWxheSBUaGUgZGVsYXkgaW4gbXNcclxuICovXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3YWl0KGRlbGF5KSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXkpKTtcclxufVxyXG4vKipcclxuICogQWRkcyBhbGwgb2ZmaWNpYWwgRmVhdGhlciBJY29ucyB0byBPYnNpZGlhbi5cclxuICogaHR0cHM6Ly9mZWF0aGVyaWNvbnMuY29tL1xyXG4gKlxyXG4gKiBAcGFyYW0gYXR0ciBTVkcgQXR0cmlidXRlcyBmb3IgdGhlIEljb24uIFRoZSBkZWZhdWx0IHNob3VsZCB3b3JrIGZvciBtb3N0IHVzZWNhc2VzLlxyXG4gKlxyXG4gKiBAZGVwcmVjYXRlZCBBcyBvZiBPYnNpZGlhbiAwLjEzLjI3IHRoaXMgaXMgbm8gbG9uZ2VyIG5lZWRlZCwgYmVjYXVzZSBPYnNpZGlhbiBzaGlwcyB3aXRoIGBsdWNpZGVgLCBhIG1haW50YWluZWQgZm9yayBvZiBmZWF0aGVyLiAoaHR0cHM6Ly9sdWNpZGUuZGV2LylcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRBbGxGZWF0aGVySWNvbnMoYXR0ciA9IHsgdmlld0JveDogXCIwIDAgMjQgMjRcIiwgd2lkdGg6IFwiMTAwXCIsIGhlaWdodDogXCIxMDBcIiB9KSB7XHJcbiAgICBPYmplY3QudmFsdWVzKGZlYXRoZXIuaWNvbnMpLmZvckVhY2goKGkpID0+IHtcclxuICAgICAgICBjb25zdCBzdmcgPSBpLnRvU3ZnKGF0dHIpO1xyXG4gICAgICAgIGFkZEljb24oYGZlYXRoZXItJHtpLm5hbWV9YCwgc3ZnKTtcclxuICAgIH0pO1xyXG59XHJcbi8qKlxyXG4gKiBBZGRzIGEgc3BlY2lmaWMgRmVhdGhlciBJY29uIHRvIE9ic2lkaWFuLlxyXG4gKlxyXG4gKiBAcGFyYW0gbmFtZSBvZmZpY2lhbCBOYW1lIG9mIHRoZSBJY29uIChodHRwczovL2ZlYXRoZXJpY29ucy5jb20vKVxyXG4gKiBAcGFyYW0gYXR0ciBTVkcgQXR0cmlidXRlcyBmb3IgdGhlIEljb24uIFRoZSBkZWZhdWx0IHNob3VsZCB3b3JrIGZvciBtb3N0IHVzZWNhc2VzLlxyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBJY29uIG5hbWVcclxuICpcclxuICogQGRlcHJlY2F0ZWQgQXMgb2YgT2JzaWRpYW4gMC4xMy4yNyB0aGlzIGlzIG5vIGxvbmdlciBuZWVkZWQsIGJlY2F1c2UgT2JzaWRpYW4gc2hpcHMgd2l0aCBgbHVjaWRlYCwgYSBtYWludGFpbmVkIGZvcmsgb2YgZmVhdGhlci4gKGh0dHBzOi8vbHVjaWRlLmRldi8pXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYWRkRmVhdGhlckljb24obmFtZSwgYXR0ciA9IHsgdmlld0JveDogXCIwIDAgMjQgMjRcIiwgd2lkdGg6IFwiMTAwXCIsIGhlaWdodDogXCIxMDBcIiB9KSB7XHJcbiAgICBpZiAoZmVhdGhlci5pY29uc1tuYW1lXSkge1xyXG4gICAgICAgIGNvbnN0IGljb25OYW1lID0gYGZlYXRoZXItJHtuYW1lfWA7XHJcbiAgICAgICAgYWRkSWNvbihpY29uTmFtZSwgZmVhdGhlci5pY29uc1tuYW1lXS50b1N2ZyhhdHRyKSk7XHJcbiAgICAgICAgcmV0dXJuIGljb25OYW1lO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgdGhyb3cgRXJyb3IoYFRoaXMgSWNvbiAoJHtuYW1lfSkgZG9lc24ndCBleGlzdCBpbiB0aGUgRmVhdGhlciBMaWJyYXJ5LmApO1xyXG4gICAgfVxyXG59XHJcbi8qKlxyXG4gKiBDb252ZXJ0IGEgYmFzZTY0IFN0cmluZyB0byBhbiBBcnJheUJ1ZmZlci5cclxuICogWW91IGNhbiB0aGVuIHVzZSB0aGUgQXJyYXlCdWZmZXIgdG8gc2F2ZSB0aGUgYXNzZXQgdG8gZGlzay5cclxuICpcclxuICogQHBhcmFtIGJhc2U2NCBiYXNlNjQgc3RyaW5nIHRvIGJlIGNvbnZlcnRlZC5cclxuICogQHJldHVybnMgQXJyYXlCdWZmZXJcclxuICogQGRlcHJlY2F0ZWQgT2JzaWRpYW4gb2ZmZXJzIGl0J3Mgb3duIG1ldGhvZCBhcyBvZiAwLjE0LjVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBiYXNlNjRUb0FycmF5QnVmZmVyKGJhc2U2NCkge1xyXG4gICAgY29uc3QgYmluYXJ5X3N0cmluZyA9IHdpbmRvdy5hdG9iKGJhc2U2NCk7XHJcbiAgICBjb25zdCBsZW4gPSBiaW5hcnlfc3RyaW5nLmxlbmd0aDtcclxuICAgIGxldCBieXRlcyA9IG5ldyBVaW50OEFycmF5KGxlbik7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgYnl0ZXNbaV0gPSBiaW5hcnlfc3RyaW5nLmNoYXJDb2RlQXQoaSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYnl0ZXMuYnVmZmVyO1xyXG59XHJcbi8qKlxyXG4gKiBUaGlzIGlzIGEgaGVscGVyIG1ldGhvZCBmb3IgYW4gdW5kb2N1bWVudGVkIEFQSSBvZiBPYnNpZGlhbi5cclxuICpcclxuICogQHBhcmFtIGZpbGVOYW1lIFRoZSBGaWxlbmFtZSBmb3IgeW91ciBBdHRhY2htZW50XHJcbiAqIEBwYXJhbSBmb3JtYXQgVGhlIEZpbGVmb3JtYXQgb2YgeW91ciBBdHRhY2htZW50XHJcbiAqIEBwYXJhbSBzb3VyY2VGaWxlIFRoZSBTb3VyY2VmaWxlIGZyb20gd2hlcmUgdGhlIEF0dGFjaG1lbnQgZ2V0cyBhZGRlZCwgdGhpcyBpcyBuZWVkZWQgYmVjYXVzZSB0aGUgQXR0YWNobWVudCBGb2xkZXIgbWlnaHQgYmUgZGlmZmVyZW50IGJhc2VkIG9uIHdoZXJlIGl0IGdldHMgaW5zZXJ0ZWQuXHJcbiAqIEByZXR1cm5zIFRoZSBBdHRhY2htZW50IFBhdGhcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHMoZmlsZU5hbWUsIGZvcm1hdCwgc291cmNlRmlsZSkge1xyXG4gICAgLy9AdHMtZXhwZWN0LWVycm9yXHJcbiAgICByZXR1cm4gYXBwLnZhdWx0LmdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50cyhmaWxlTmFtZSwgZm9ybWF0LCBzb3VyY2VGaWxlKTtcclxufVxyXG4vKipcclxuICogQ29weSBgY29udGVudGAgdG8gdGhlIHVzZXJzIGNsaXBib2FyZC5cclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRlbnQgVGhlIGNvbnRlbnQgdG8gYmUgY29waWVkIHRvIGNsaXBib2FyZC5cclxuICogQHBhcmFtIHsoKSA9PiBhbnl9IHN1Y2Nlc3MgVGhlIGNhbGxiYWNrIHRvIHJ1biB3aGVuIHRleHQgaXMgc3VjY2Vzc2Z1bGx5IGNvcGllZC4gRGVmYXVsdCB0aHJvd3MgYSBuZXcgYE5vdGljZWBcclxuICogQHBhcmFtIHsocmVhc29uPykgPT4gYW55fSBmYWlsdXJlIFRoZSBjYWxsYmFjayB0byBydW4gd2hlbiB0ZXh0IHdhcyBub3QgYWJsZSB0byBiZSBjb3BpZWQuIERlZmF1bHQgdGhyb3dzIGEgbmV3IGBOb3RpY2VgLCBhbmQgY29uc29sZSBsb2dzIHRoZSBlcnJvci5gXHJcbiAqL1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29weShjb250ZW50LCBzdWNjZXNzID0gKCkgPT4gbmV3IE5vdGljZShcIkNvcGllZCB0byBjbGlwYm9hcmRcIiksIGZhaWx1cmUgPSAocmVhc29uKSA9PiB7XHJcbiAgICBuZXcgTm90aWNlKFwiQ291bGQgbm90IGNvcHkgdG8gY2xpcGJvYXJkXCIpO1xyXG4gICAgY29uc29sZS5sb2coeyByZWFzb24gfSk7XHJcbn0pIHtcclxuICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGNvbnRlbnQpLnRoZW4oc3VjY2VzcywgZmFpbHVyZSk7XHJcbn1cclxuLyoqXHJcbiAqIEdpdmVuIGFuIGVkaXRvciwgY2hlY2sgaWYgc29tZXRoaW5nIGlzIHNlbGVjdGVkIGFuZCByZXR1cm4gdGhhdCBzZWxlY3Rpb24sIG90aGVyd2lzZSByZXR1cm4gdGhlIGVudGlyZSBjb250ZW50IG9mIHRoZSBlZGl0b3JcclxuICogQHBhcmFtICB7RWRpdG9yfSBlZGl0b3JcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3Rpb25Gcm9tRWRpdG9yKGVkaXRvcikge1xyXG4gICAgaWYgKGVkaXRvci5zb21ldGhpbmdTZWxlY3RlZCgpKVxyXG4gICAgICAgIHJldHVybiBlZGl0b3IuZ2V0U2VsZWN0aW9uKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgICAgcmV0dXJuIGVkaXRvci5nZXRWYWx1ZSgpO1xyXG59XHJcbi8qKlxyXG4gKiBDaGVjayBpZiBzb21ldGhpbmcgaXMgc2VsZWN0ZWQgaW4gdGhlIGN1cnJlbnQgZmlsZSBhbmQgcmV0dXJuIHRoYXQgc2VsZWN0aW9uLCBvdGhlcndpc2UgcmV0dXJuIHRoZSBlbnRpcmUgY29udGVudCBvZiB0aGUgY3VycmVudCBmaWxlLlxyXG4gKiBAcGFyYW0gIHtib29sZWFufSBbY2FjaGVkPXRydWVdIFVzZSBgY2FjaGVkUmVhZGAgb3IgYHJlYWRgLiBgY2FjaGVkUmVhZGAgYnkgZGVmYXVsdC5cclxuICogQHJldHVybnMge3N0cmluZyB8IG51bGx9IGBudWxsYCBpZiBub3QgZm9jdXNzZWQgb24gYSBtYXJrZG93biBmaWxlXHJcbiAqL1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0U2VsZWN0aW9uRnJvbUN1cnJGaWxlKGNhY2hlZCA9IHRydWUpIHtcclxuICAgIHZhciBfYTtcclxuICAgIGNvbnN0IHRleHQgPSAoX2EgPSB3aW5kb3cgPT09IG51bGwgfHwgd2luZG93ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1N0cmluZygpO1xyXG4gICAgaWYgKHRleHQpXHJcbiAgICAgICAgcmV0dXJuIHRleHQ7XHJcbiAgICBlbHNlXHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IGdldEFjdGl2ZUZpbGVDb250ZW50KGNhY2hlZCk7XHJcbn1cclxuLyoqXHJcbiAqIENoZWNrIGlmIGBub3RlTmFtZWAgaXMgdGhlIG5hbWUgb2YgYSBub3RlIHRoYXQgZXhpc3RzIGluIHRoZSB2YXVsdC5cclxuICogQHBhcmFtICB7c3RyaW5nfSBub3RlTmFtZSBCYXNlbmFtZSBvZiB0aGUgbm90ZSB0byBzZWFyY2ggZm9yLlxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IFtzb3VyY2VQYXRoPVwiXCJdIE9wdGlvbmFsIGZpbGUgcGF0aCB0byBzdGFydCBzZWFyY2hpbmcgZnJvbS4gRGVmYXVsdCBpcyB0aGUgY3VycmVudCBmaWxlLlxyXG4gKiBAcmV0dXJucyBib29sZWFuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgaXNJblZhdWx0ID0gKG5vdGVOYW1lLCBzb3VyY2VQYXRoID0gXCJcIikgPT4gISFhcHAubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChub3RlTmFtZSwgc291cmNlUGF0aCk7XHJcbi8qKlxyXG4gKiBXaGVuIGhvdmVyaW5nIGEgbGluayBnb2luZyB0byBgdG9gLCBzaG93IHRoZSBPYnNpZGlhbiBob3Zlci1wcmV2aWV3IG9mIHRoYXQgbm90ZS5cclxuICpcclxuICogWW91IHByb2JhYmx5IGhhdmUgdG8gaG9sZCBkb3duIGBDdHJsYCB3aGVuIGhvdmVyaW5nIHRoZSBsaW5rIGZvciB0aGUgcHJldmlldyB0byBhcHBlYXIhXHJcbiAqIEBwYXJhbSAge01vdXNlRXZlbnR9IGV2ZW50XHJcbiAqIEBwYXJhbSAge1lvdXJWaWV3fSB2aWV3IFRoZSB2aWV3IHdpdGggdGhlIGxpbmsgYmVpbmcgaG92ZXJlZFxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IHRvIFRoZSBiYXNlbmFtZSBvZiB0aGUgbm90ZSB0byBwcmV2aWV3LlxyXG4gKiBAdGVtcGxhdGUgWW91clZpZXcgVGhlIFZpZXdUeXBlIG9mIHlvdXIgdmlld1xyXG4gKiBAcmV0dXJucyB2b2lkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaG92ZXJQcmV2aWV3KGV2ZW50LCB2aWV3LCB0bykge1xyXG4gICAgY29uc3QgdGFyZ2V0RWwgPSBldmVudC50YXJnZXQ7XHJcbiAgICBhcHAud29ya3NwYWNlLnRyaWdnZXIoXCJob3Zlci1saW5rXCIsIHtcclxuICAgICAgICBldmVudCxcclxuICAgICAgICBzb3VyY2U6IHZpZXcuZ2V0Vmlld1R5cGUoKSxcclxuICAgICAgICBob3ZlclBhcmVudDogdmlldyxcclxuICAgICAgICB0YXJnZXRFbCxcclxuICAgICAgICBsaW5rdGV4dDogdG8sXHJcbiAgICB9KTtcclxufVxyXG4vKipcclxuICogQ3JlYXRlIGEgbmV3IG1hcmtkb3duIG5vdGUgbmFtZWQgYG5ld05hbWVgIGluIHRoZSB1c2VyJ3MgcHJlZmZlcmVkIG5ldy1ub3RlLWZvbGRlci5cclxuICogQHBhcmFtICB7c3RyaW5nfSBuZXdOYW1lIE5hbWUgb2YgbmV3IG5vdGUgKHdpdGggb3Igd2l0aG91dCAnLm1kJylcclxuICogQHBhcmFtICB7c3RyaW5nfSBbY3VyckZpbGVQYXRoPVwiXCJdIEZpbGUgcGF0aCBvZiB0aGUgY3VycmVudCBub3RlLiBVc2UgYW4gZW1wdHkgc3RyaW5nIGlmIHRoZXJlIGlzIG5vIGFjdGl2ZSBmaWxlLlxyXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxURmlsZT59IG5ldyBURmlsZVxyXG4gKi9cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU5ld01ETm90ZShuZXdOYW1lLCBjdXJyRmlsZVBhdGggPSBcIlwiKSB7XHJcbiAgICBjb25zdCBuZXdGaWxlRm9sZGVyID0gYXBwLmZpbGVNYW5hZ2VyLmdldE5ld0ZpbGVQYXJlbnQoY3VyckZpbGVQYXRoKS5wYXRoO1xyXG4gICAgY29uc3QgbmV3RmlsZVBhdGggPSBub3JtYWxpemVQYXRoKGAke25ld0ZpbGVGb2xkZXJ9JHtuZXdGaWxlRm9sZGVyID09PSBcIi9cIiA/IFwiXCIgOiBcIi9cIn0ke2FkZE1EKG5ld05hbWUpfWApO1xyXG4gICAgcmV0dXJuIGF3YWl0IGFwcC52YXVsdC5jcmVhdGUobmV3RmlsZVBhdGgsIFwiXCIpO1xyXG59XHJcbi8qKlxyXG4gKiBBZGQgJy5tZCcgdG8gYG5vdGVOYW1lYCBpZiBpdCBpc24ndCBhbHJlYWR5IHRoZXJlLlxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IG5vdGVOYW1lIHdpdGggb3Igd2l0aG91dCAnLm1kJyBvbiB0aGUgZW5kLlxyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBub3RlTmFtZSB3aXRoICcubWQnIG9uIHRoZSBlbmQuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgYWRkTUQgPSAobm90ZU5hbWUpID0+IHtcclxuICAgIHJldHVybiBub3RlTmFtZS5tYXRjaCgvXFwuTUQkfFxcLm1kJC9tKSA/IG5vdGVOYW1lIDogbm90ZU5hbWUgKyBcIi5tZFwiO1xyXG59O1xyXG4vKipcclxuICogU3RyaXAgJy5tZCcgb2ZmIHRoZSBlbmQgb2YgYSBub3RlIG5hbWUgdG8gZ2V0IGl0cyBiYXNlbmFtZS5cclxuICpcclxuICogV29ya3Mgd2l0aCB0aGUgZWRnZWNhc2Ugd2hlcmUgYSBub3RlIGhhcyAnLm1kJyBpbiBpdHMgYmFzZW5hbWU6IGBPYnNpZGlhbi5tZC5tZGAsIGZvciBleGFtcGxlLlxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IG5vdGVOYW1lIHdpdGggb3Igd2l0aG91dCAnLm1kJyBvbiB0aGUgZW5kLlxyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBub3RlTmFtZSB3aXRob3V0ICcubWQnXHJcbiAqL1xyXG5leHBvcnQgY29uc3Qgc3RyaXBNRCA9IChub3RlTmFtZSkgPT4ge1xyXG4gICAgaWYgKG5vdGVOYW1lLm1hdGNoKC9cXC5NRCR8XFwubWQkL20pKSB7XHJcbiAgICAgICAgcmV0dXJuIG5vdGVOYW1lLnNwbGl0KC9cXC5NRCR8XFwubWQkL20pLnNsaWNlKDAsIC0xKS5qb2luKFwiLm1kXCIpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICAgIHJldHVybiBub3RlTmFtZTtcclxufTtcclxuLyoqXHJcbiAqIFdoZW4gY2xpY2tpbmcgYSBsaW5rLCBjaGVjayBpZiB0aGF0IG5vdGUgaXMgYWxyZWFkeSBvcGVuIGluIGFub3RoZXIgbGVhZiwgYW5kIHN3aXRjaCB0byB0aGF0IGxlYWYsIGlmIHNvLiBPdGhlcndpc2UsIG9wZW4gdGhlIG5vdGUgaW4gYSBuZXcgcGFuZS5cclxuICogQHBhcmFtICB7c3RyaW5nfSBkZXN0IE5hbWUgb2Ygbm90ZSB0byBvcGVuLiBJZiB5b3Ugd2FudCB0byBvcGVuIGEgbm9uLW1kIG5vdGUsIGJlIHN1cmUgdG8gYWRkIHRoZSBmaWxlIGV4dGVuc2lvbi5cclxuICogQHBhcmFtICB7TW91c2VFdmVudH0gZXZlbnRcclxuICogQHBhcmFtICB7e2NyZWF0ZU5ld0ZpbGU6Ym9vbGVhbn19IFtvcHRpb25zPXtjcmVhdGVOZXdGaWxlOnRydWV9XSBXaGV0aGVyIG9yIG5vdCB0byBjcmVhdGUgYGRlc3RgIGZpbGUgaWYgaXQgZG9lc24ndCBleGlzdC4gSWYgYGZhbHNlYCwgc2ltcGx5IHJldHVybiBmcm9tIHRoZSBmdW5jdGlvbi5cclxuICogQHJldHVybnMgUHJvbWlzZVxyXG4gKi9cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9wZW5PclN3aXRjaChkZXN0LCBldmVudCwgb3B0aW9ucyA9IHsgY3JlYXRlTmV3RmlsZTogdHJ1ZSB9KSB7XHJcbiAgICBjb25zdCB7IHdvcmtzcGFjZSB9ID0gYXBwO1xyXG4gICAgbGV0IGRlc3RGaWxlID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoZGVzdCwgXCJcIik7XHJcbiAgICAvLyBJZiBkZXN0IGRvZXNuJ3QgZXhpc3QsIG1ha2UgaXRcclxuICAgIGlmICghZGVzdEZpbGUgJiYgb3B0aW9ucy5jcmVhdGVOZXdGaWxlKSB7XHJcbiAgICAgICAgZGVzdEZpbGUgPSBhd2FpdCBjcmVhdGVOZXdNRE5vdGUoZGVzdCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICghZGVzdEZpbGUgJiYgIW9wdGlvbnMuY3JlYXRlTmV3RmlsZSlcclxuICAgICAgICByZXR1cm47XHJcbiAgICAvLyBDaGVjayBpZiBpdCdzIGFscmVhZHkgb3BlblxyXG4gICAgY29uc3QgbGVhdmVzV2l0aERlc3RBbHJlYWR5T3BlbiA9IFtdO1xyXG4gICAgLy8gRm9yIGFsbCBvcGVuIGxlYXZlcywgaWYgdGhlIGxlYXZlJ3MgYmFzZW5hbWUgaXMgZXF1YWwgdG8gdGhlIGxpbmsgZGVzdGluYXRpb24sIHJhdGhlciBhY3RpdmF0ZSB0aGF0IGxlYWYgaW5zdGVhZCBvZiBvcGVuaW5nIGl0IGluIHR3byBwYW5lc1xyXG4gICAgd29ya3NwYWNlLml0ZXJhdGVBbGxMZWF2ZXMoKGxlYWYpID0+IHtcclxuICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgaWYgKGxlYWYudmlldyBpbnN0YW5jZW9mIE1hcmtkb3duVmlldykge1xyXG4gICAgICAgICAgICBjb25zdCBmaWxlID0gKF9hID0gbGVhZi52aWV3KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZmlsZTtcclxuICAgICAgICAgICAgaWYgKGZpbGUgJiYgZmlsZS5iYXNlbmFtZSArIFwiLlwiICsgZmlsZS5leHRlbnNpb24gPT09IGRlc3QpIHtcclxuICAgICAgICAgICAgICAgIGxlYXZlc1dpdGhEZXN0QWxyZWFkeU9wZW4ucHVzaChsZWFmKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLy8gUmF0aGVyIHN3aXRjaCB0byBpdCBpZiBpdCBpcyBvcGVuXHJcbiAgICBpZiAobGVhdmVzV2l0aERlc3RBbHJlYWR5T3Blbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgd29ya3NwYWNlLnNldEFjdGl2ZUxlYWYobGVhdmVzV2l0aERlc3RBbHJlYWR5T3BlblswXSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgY29uc3QgbW9kZSA9IGFwcC52YXVsdC5nZXRDb25maWcoXCJkZWZhdWx0Vmlld01vZGVcIik7XHJcbiAgICAgICAgY29uc3QgbGVhZiA9IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZShcIk1ldGFcIilcclxuICAgICAgICAgICAgPyB3b3Jrc3BhY2Uuc3BsaXRBY3RpdmVMZWFmKClcclxuICAgICAgICAgICAgOiB3b3Jrc3BhY2UuZ2V0VW5waW5uZWRMZWFmKCk7XHJcbiAgICAgICAgLy9AdHMtZXhwZWN0LWVycm9yXHJcbiAgICAgICAgYXdhaXQgbGVhZi5vcGVuRmlsZShkZXN0RmlsZSwgeyBhY3RpdmU6IHRydWUsIG1vZGUgfSk7XHJcbiAgICB9XHJcbn1cclxuLyoqXHJcbiAqIEdpdmVuIGEgbGlzdCBvZiByZXNvbHZlZCBsaW5rcyBmcm9tIGFwcC5tZXRhZGF0YUNhY2hlLCBjaGVjayBpZiBgZnJvbWAgaGFzIGEgbGluayB0byBgdG9gXHJcbiAqIEBwYXJhbSAge1Jlc29sdmVkTGlua3N9IHJlc29sdmVkTGlua3NcclxuICogQHBhcmFtICB7c3RyaW5nfSBmcm9tIE5vdGUgbmFtZSB3aXRoIGxpbmsgbGVhdmluZyAoV2l0aCBvciB3aXRob3V0ICcubWQnKVxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IHRvIE5vdGUgbmFtZSB3aXRoIGxpbmsgYXJyaXZpbmcgKFdpdGggb3Igd2l0aG91dCAnLm1kJylcclxuICogQHBhcmFtIHtib29sZWFufSBbZGlyZWN0ZWQ9dHJ1ZV0gT25seSBjaGVjayBpZiBgZnJvbWAgaGFzIGEgbGluayB0byBgdG9gLiBJZiBub3QgZGlyZWN0ZWQsIGNoZWNrIGluIGJvdGggZGlyZWN0aW9uc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTGlua2VkKHJlc29sdmVkTGlua3MsIGZyb20sIHRvLCBkaXJlY3RlZCA9IHRydWUpIHtcclxuICAgIHZhciBfYSwgX2I7XHJcbiAgICBmcm9tID0gYWRkTUQoZnJvbSk7XHJcbiAgICB0byA9IGFkZE1EKHRvKTtcclxuICAgIGNvbnN0IGZyb21UbyA9IChfYSA9IHJlc29sdmVkTGlua3NbZnJvbV0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5oYXNPd25Qcm9wZXJ0eSh0byk7XHJcbiAgICBpZiAoIWZyb21UbyAmJiAhZGlyZWN0ZWQpIHtcclxuICAgICAgICBjb25zdCB0b0Zyb20gPSAoX2IgPSByZXNvbHZlZExpbmtzW3RvXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmhhc093blByb3BlcnR5KGZyb20pO1xyXG4gICAgICAgIHJldHVybiB0b0Zyb207XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgICAgcmV0dXJuIGZyb21UbztcclxufVxyXG4vKipcclxuICogQ2hlY2sgaWYgdGhlIGxpbmsgYGZyb21gIFx1MjE5MiBgdG9gIGlzIHJlc29sdmVkIG9yIG5vdC5cclxuICogQHBhcmFtICB7c3RyaW5nfSB0b1xyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IGZyb21cclxuICogQHJldHVybnMgYm9vbGVhblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzb2x2ZWQodG8sIGZyb20pIHtcclxuICAgIHZhciBfYTtcclxuICAgIGNvbnN0IHsgcmVzb2x2ZWRMaW5rcyB9ID0gYXBwLm1ldGFkYXRhQ2FjaGU7XHJcbiAgICByZXR1cm4gKChfYSA9IHJlc29sdmVkTGlua3MgPT09IG51bGwgfHwgcmVzb2x2ZWRMaW5rcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVzb2x2ZWRMaW5rc1thZGRNRChmcm9tKV0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVthZGRNRCh0byldKSA+IDA7XHJcbn1cclxuLyoqXHJcbiAqIE9wZW4geW91ciB2aWV3IG9uIHRoZSBjaG9zZW4gYHNpZGVgIGlmIGl0IGlzbid0IGFscmVhZHkgb3BlblxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IHZpZXdUeXBlXHJcbiAqIEBwYXJhbSAge0NvbnN0cnVjdG9yPFlvdXJWaWV3Pn0gdmlld0NsYXNzIFRoZSBjbGFzcyBjb25zdHJ1Y3RvciBvZiB5b3VyIHZpZXdcclxuICogQHBhcmFtICB7XCJsZWZ0XCJ8XCJyaWdodFwifSBbc2lkZT1cInJpZ2h0XCJdXHJcbiAqIEByZXR1cm5zIHtQcm9taXNlPFlvdXJWaWV3Pn0gVGhlIG9wZW5lZCB2aWV3XHJcbiAqL1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gb3BlblZpZXcodmlld1R5cGUsIHZpZXdDbGFzcywgc2lkZSA9IFwicmlnaHRcIikge1xyXG4gICAgbGV0IGxlYWYgPSBudWxsO1xyXG4gICAgZm9yIChsZWFmIG9mIGFwcC53b3Jrc3BhY2UuZ2V0TGVhdmVzT2ZUeXBlKHZpZXdUeXBlKSkge1xyXG4gICAgICAgIGlmIChsZWFmLnZpZXcgaW5zdGFuY2VvZiB2aWV3Q2xhc3MpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGxlYWYudmlldztcclxuICAgICAgICB9XHJcbiAgICAgICAgYXdhaXQgbGVhZi5zZXRWaWV3U3RhdGUoeyB0eXBlOiBcImVtcHR5XCIgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBsZWFmID1cclxuICAgICAgICAobGVhZiAhPT0gbnVsbCAmJiBsZWFmICE9PSB2b2lkIDAgPyBsZWFmIDogc2lkZSA9PT0gXCJyaWdodFwiKVxyXG4gICAgICAgICAgICA/IGFwcC53b3Jrc3BhY2UuZ2V0UmlnaHRMZWFmKGZhbHNlKVxyXG4gICAgICAgICAgICA6IGFwcC53b3Jrc3BhY2UuZ2V0TGVmdExlYWYoZmFsc2UpO1xyXG4gICAgYXdhaXQgbGVhZi5zZXRWaWV3U3RhdGUoe1xyXG4gICAgICAgIHR5cGU6IHZpZXdUeXBlLFxyXG4gICAgICAgIGFjdGl2ZTogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGxlYWYudmlldztcclxufVxyXG4vKipcclxuICogQ2hlY2sgd2hpY2ggc2lkZSBvZiB0aGUgd29ya3NwYWNlIHlvdXIgYHZpZXdUeXBlYCBpcyBvbiwgYW5kIHNhdmUgaXQgaW50byBgcGx1Z2luLnNldHRpbmdzW3NldHRpbmdOYW1lXWAuXHJcbiAqXHJcbiAqICoqVGlwKio6IFJ1biB0aGlzIGZ1bmN0aW9uIG9uIGBwbHVnaW4udW5sb2FkYCB0byBzYXZlIHRoZSBsYXN0IHNpZGUgeW91ciB2aWV3IHdhcyBvbiB3aGVuIGNsb3NpbmcsIHRoZW4ge0BsaW5rIG9wZW5WaWV3fSBvbiB0aGUgc2FtZSBzaWRlIGl0IHdhcyBsYXN0LlxyXG4gKiBAcGFyYW0gIHtZb3VyUGx1Z2lufSBwbHVnaW5cclxuICogQHBhcmFtICB7c3RyaW5nfSB2aWV3VHlwZVxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IHNldHRpbmdOYW1lXHJcbiAqIEByZXR1cm5zIHtcImxlZnRcIiB8IFwicmlnaHRcIn0gYHNpZGVgXHJcbiAqL1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2F2ZVZpZXdTaWRlKHBsdWdpbiwgdmlld1R5cGUsIHNldHRpbmdOYW1lKSB7XHJcbiAgICBjb25zdCBsZWFmID0gYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUodmlld1R5cGUpWzBdO1xyXG4gICAgaWYgKCFsZWFmKSB7XHJcbiAgICAgICAgY29uc29sZS5pbmZvKGBPYnNpZGlhbi1Db21tdW5pdHktTGliOiBObyBpbnN0YW5jZSBvZiAnJHt2aWV3VHlwZX0nIG9wZW4sIGNhbm5vdCBzYXZlIHNpZGVgKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvL0B0cy1pZ25vcmVcclxuICAgIGNvbnN0IHNpZGUgPSBsZWFmLmdldFJvb3QoKS5zaWRlO1xyXG4gICAgLy9AdHMtaWdub3JlXHJcbiAgICBwbHVnaW4uc2V0dGluZ3Nbc2V0dGluZ05hbWVdID0gc2lkZTtcclxuICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgcmV0dXJuIHNpZGU7XHJcbn1cclxuLyoqXHJcbiAqIEEgTW9kYWwgdXNlZCBpbiB7QGxpbmsgYWRkUmVuZGVyZWRNYXJrZG93bkJ1dHRvbn0gdG8gZGlzcGxheSByZW5kZXJlZCBtYXJrZG93biBmcm9tIGEgcmF3IHN0cmluZywgb3IgZmV0Y2hlZCBmcm9tIGEgcHJvdmlkZWQgdXJsLlxyXG4gKlxyXG4gKiAhW10oaHR0cHM6Ly9pLmltZ3VyLmNvbS9OTXdNNTBFLnBuZylcclxuICogQHBhcmFtICB7WW91clBsdWdpbn0gcGx1Z2luXHJcbiAqIEBwYXJhbSAge3N0cmluZ30gc291cmNlIFJhdyBtYXJrZG93biBjb250ZW50IG9yIHVybCB0byBmaW5kIHJhdyBtYXJrZG93bi5cclxuICogQHBhcmFtICB7Ym9vbGVhbn0gZmV0Y2ggVHJ1ZSBcdTIxOTIgZmV0Y2ggbWFya2Rvd24gZnJvbSBgc291cmNlYCBhcyB1cmwuIEZhbHNlIFx1MjE5MiBgc291cmNlYCBpcyBhbHJlYWR5IGEgbWFya2Rvd24gc3RyaW5nLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJlbmRlcmVkTWFya2Rvd25Nb2RhbCBleHRlbmRzIE1vZGFsIHtcclxuICAgIGNvbnN0cnVjdG9yKHBsdWdpbiwgc291cmNlLCBmZXRjaCkge1xyXG4gICAgICAgIHN1cGVyKGFwcCk7XHJcbiAgICAgICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XHJcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XHJcbiAgICAgICAgdGhpcy5mZXRjaCA9IGZldGNoO1xyXG4gICAgfVxyXG4gICAgYXN5bmMgb25PcGVuKCkge1xyXG4gICAgICAgIGxldCB7IGNvbnRlbnRFbCwgc291cmNlLCBwbHVnaW4sIGZldGNoIH0gPSB0aGlzO1xyXG4gICAgICAgIGxldCBjb250ZW50ID0gc291cmNlO1xyXG4gICAgICAgIGlmIChmZXRjaCkge1xyXG4gICAgICAgICAgICBjb250ZW50RWwuY3JlYXRlRGl2KHsgdGV4dDogYFdhaXRpbmcgZm9yIGNvbnRlbnQgZnJvbTogJyR7c291cmNlfSdgIH0pO1xyXG4gICAgICAgICAgICBjb250ZW50ID0gYXdhaXQgcmVxdWVzdCh7IHVybDogc291cmNlIH0pO1xyXG4gICAgICAgICAgICBjb250ZW50RWwuZW1wdHkoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbG9nRGl2ID0gY29udGVudEVsLmNyZWF0ZURpdih7IGNsczogXCJPQ0wtUmVuZGVyZWRNYXJrZG93bk1vZGFsXCIgfSk7XHJcbiAgICAgICAgTWFya2Rvd25SZW5kZXJlci5yZW5kZXJNYXJrZG93bihjb250ZW50LCBsb2dEaXYsIFwiXCIsIHBsdWdpbik7XHJcbiAgICB9XHJcbiAgICBvbkNsb3NlKCkge1xyXG4gICAgICAgIHRoaXMuY29udGVudEVsLmVtcHR5KCk7XHJcbiAgICB9XHJcbn1cclxuLyoqXHJcbiAqIEFkZCBhIGJ1dHRvbiB0byBhbiBIVE1MRUxlbWVudCwgd2hpY2gsIHdoZW4gY2xpY2tlZCwgcG9wcyB1cCBhIHtAbGluayBSZW5kZXJlZE1hcmtkb3duTW9kYWx9IHNob3dpbmcgcmVuZGVyZWQgbWFya2Rvd24uXHJcbiAqXHJcbiAqIFVzZSBgZmV0Y2hgIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIG1hcmtkb3duIHN0cmluZyBuZWVkcyB0byBiZSBmZXRjaGVkLCBvciBpZiBpdCBoYXMgYmVlbiBwcm92aWRlZCBhcyBhIHN0cmluZyBhbHJlYWR5LlxyXG4gKlxyXG4gKiAhW10oaHR0cHM6Ly9pLmltZ3VyLmNvbS9IaTRneXl2LnBuZylcclxuICogQHBhcmFtICB7WW91clBsdWdpbn0gcGx1Z2luXHJcbiAqIEBwYXJhbSAge0hUTUxFbGVtZW50fSBjb250YWluZXJFbCBIVE1MRWxlbWVudCB0byBhZGQgdGhlIGJ1dHRvbiB0b1xyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IHNvdXJjZSBSYXcgbWFya2Rvd24gY29udGVudCBvciB1cmwgdG8gZmluZCByYXcgbWFya2Rvd24uXHJcbiAqIEBwYXJhbSAge2Jvb2xlYW59IGZldGNoIFRydWUgXHUyMTkyIGZldGNoIG1hcmtkb3duIGZyb20gYHNvdXJjZWAgYXMgdXJsLiBGYWxzZSBcdTIxOTIgYHNvdXJjZWAgaXMgYWxyZWFkeSBhIG1hcmtkb3duIHN0cmluZy5cclxuICogQHBhcmFtICB7c3RyaW5nfSBkaXNwbGF5VGV4dCBUZXh0IHRvIGRpc3BsYXkgaW4gdGhlIGJ1dHRvbi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRSZW5kZXJlZE1hcmtkb3duQnV0dG9uKHBsdWdpbiwgY29udGFpbmVyRWwsIHNvdXJjZSwgZmV0Y2gsIGRpc3BsYXlUZXh0KSB7XHJcbiAgICBjb250YWluZXJFbC5jcmVhdGVFbChcImJ1dHRvblwiLCB7IHRleHQ6IGRpc3BsYXlUZXh0IH0sIChidXQpID0+IGJ1dC5vbkNsaWNrRXZlbnQoKCkgPT4ge1xyXG4gICAgICAgIG5ldyBSZW5kZXJlZE1hcmtkb3duTW9kYWwocGx1Z2luLCBzb3VyY2UsIGZldGNoKS5vcGVuKCk7XHJcbiAgICB9KSk7XHJcbn1cclxuLyoqXHJcbiAqIENoZWNrIGlmIGBhcHAubWV0YWRhdGFDYWNoZS5SZXNvbHZlZExpbmtzYCBoYXZlIGZ1bGx5IGluaXRhbGlzZWQuXHJcbiAqXHJcbiAqIFVzZWQgd2l0aCB7QGxpbmsgd2FpdEZvclJlc29sdmVkTGlua3N9LlxyXG4gKiBAcGFyYW0gIHtudW1iZXJ9IG5vRmlsZXMgTnVtYmVyIG9mIGZpbGVzIGluIHlvdXIgdmF1bHQuXHJcbiAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVkTGlua3NDb21wbGV0ZShub0ZpbGVzKSB7XHJcbiAgICBjb25zdCB7IHJlc29sdmVkTGlua3MgfSA9IGFwcC5tZXRhZGF0YUNhY2hlO1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHJlc29sdmVkTGlua3MpLmxlbmd0aCA9PT0gbm9GaWxlcztcclxufVxyXG4vKipcclxuICogV2FpdCBmb3IgYGFwcC5tZXRhZGF0YUNhY2hlLlJlc29sdmVkTGlua3NgIHRvIGhhdmUgZnVsbHkgaW5pdGlhbGlzZWQuXHJcbiAqIEBwYXJhbSAge251bWJlcn0gW2RlbGF5PTEwMDBdIE51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZXR3ZWVuIGVhY2ggY2hlY2suXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbbWF4PTUwXSBNYXhpbXVtIG51bWJlciBvZiBpdGVyYXRpb25zIHRvIGNoZWNrIGJlZm9yZSB0aHJvd2luZyBhbiBlcnJvciBhbmQgYnJlYWtpbmcgb3V0IG9mIHRoZSBsb29wLlxyXG4gKi9cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JSZXNvbHZlZExpbmtzKGRlbGF5ID0gMTAwMCwgbWF4ID0gNTApIHtcclxuICAgIGNvbnN0IG5vRmlsZXMgPSBhcHAudmF1bHQuZ2V0TWFya2Rvd25GaWxlcygpLmxlbmd0aDtcclxuICAgIGxldCBpID0gMDtcclxuICAgIHdoaWxlICghcmVzb2x2ZWRMaW5rc0NvbXBsZXRlKG5vRmlsZXMpICYmIGkgPCBtYXgpIHtcclxuICAgICAgICBhd2FpdCB3YWl0KGRlbGF5KTtcclxuICAgICAgICBpKys7XHJcbiAgICB9XHJcbiAgICBpZiAoaSA9PT0gbWF4KSB7XHJcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJPYnNpZGlhbi1Db21tdW5pdHktTGliOiBSZXNvbHZlZExpbmtzIGRpZCBub3QgZmluaXNoIGluaXRpYWxpc2luZy4gYG1heGAgaXRlcmF0aW9ucyB3YXMgcmVhY2hlZCBmaXJzdC5cIik7XHJcbiAgICB9XHJcbn1cclxuLyoqXHJcbiAqIENoZWNrIGlmIHRoZSBjb250ZW50IG9mIGEgbm90ZSBoYXMgWUFNTC4gSWYgc28sIHJldHVybiBhbiBhcnJheSBvZiB0aGUgWUFNTCBhbmQgdGhlIHJlc3Qgb2YgdGhlIG5vdGUuIElmIG5vdCwgcmV0dXJuIGBbJycsIGNvbnRlbnRdYFxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IGNvbnRlbnRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzcGxpdEF0WWFtbChjb250ZW50KSB7XHJcbiAgICBpZiAoIS9eLS0tXFxuLy50ZXN0KGNvbnRlbnQpKVxyXG4gICAgICAgIHJldHVybiBbXCJcIiwgY29udGVudF07XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCBzcGxpdHMgPSBjb250ZW50LnNwbGl0KFwiLS0tXCIpO1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIHNwbGl0cy5zbGljZSgwLCAyKS5qb2luKFwiLS0tXCIpICsgXCItLS1cIixcclxuICAgICAgICAgICAgc3BsaXRzLnNsaWNlKDIpLmpvaW4oXCItLS1cIiksXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxufVxyXG4vKipcclxuICpcclxuICogQHBhcmFtIHtib29sZWFufSBjYWNoZWQgUmV0dXJuIGNhY2hlZCBmaWxlIGNvbnRlbnQgKipvcioqIHJldHVybiB3aGF0J3Mgb24gZGlzay5cclxuICogQHJldHVybnNcclxuICovXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBY3RpdmVGaWxlQ29udGVudChjYWNoZWQgPSB0cnVlKSB7XHJcbiAgICBjb25zdCBjdXJyRmlsZSA9IGFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlRmlsZSgpO1xyXG4gICAgaWYgKCEoY3VyckZpbGUgaW5zdGFuY2VvZiBURmlsZSkpXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICBpZiAoY2FjaGVkKVxyXG4gICAgICAgIHJldHVybiBhd2FpdCBhcHAudmF1bHQuY2FjaGVkUmVhZChjdXJyRmlsZSk7XHJcbiAgICBlbHNlXHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IGFwcC52YXVsdC5yZWFkKGN1cnJGaWxlKTtcclxufVxyXG4iLCAiaW1wb3J0IHR5cGUge1xyXG4gIEJDU2V0dGluZ3MsXHJcbiAgRGlyZWN0aW9ucyxcclxuICBSZWFsTkltcGxpZWQsXHJcbiAgVXNlckhpZXIsXHJcbn0gZnJvbSBcIi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgdHlwZSB7IElKdWdnbFNldHRpbmdzIH0gZnJvbSBcImp1Z2dsLWFwaVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1BVFJJWF9WSUVXID0gXCJCQy1tYXRyaXhcIjtcclxuLy8gZXhwb3J0IGNvbnN0IFNUQVRTX1ZJRVcgPSBcIkJDLXN0YXRzXCI7XHJcbmV4cG9ydCBjb25zdCBEVUNLX1ZJRVcgPSBcIkJDLWR1Y2tzXCI7XHJcbmV4cG9ydCBjb25zdCBUUkVFX1ZJRVcgPSBcIkJDLXRyZWVcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBUUkFJTF9JQ09OID0gXCJCQy10cmFpbC1pY29uXCI7XHJcbmV4cG9ydCBjb25zdCBUUkFJTF9JQ09OX1NWRyA9XHJcbiAgJzxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTQ4LjgsNGMtNiwwLTEzLjUsMC41LTE5LjcsMy4zUzE3LjksMTUuOSwxNy45LDI1YzAsNSwyLjYsOS43LDYuMSwxMy45czguMSw4LjMsMTIuNiwxMi4zczksNy44LDEyLjIsMTEuNSBjMy4yLDMuNyw1LjEsNy4xLDUuMSwxMC4yYzAsMTQuNC0xMy40LDE5LjMtMTMuNCwxOS4zYy0wLjcsMC4yLTEuMiwwLjgtMS4zLDEuNXMwLjEsMS40LDAuNywxLjljMC42LDAuNSwxLjMsMC42LDIsMC4zIGMwLDAsMTYuMS02LjEsMTYuMS0yM2MwLTQuNi0yLjYtOC44LTYuMS0xMi44Yy0zLjUtNC04LjEtNy45LTEyLjYtMTEuOGMtNC41LTMuOS04LjktNy45LTEyLjItMTEuOGMtMy4yLTMuOS01LjItNy43LTUuMi0xMS40IGMwLTcuOCwzLjYtMTEuNiw4LjgtMTRTNDMsOCw0OC44LDhjNC42LDAsOS4zLDAsMTEsMGMwLjcsMCwxLjQtMC40LDEuNy0xYzAuMy0wLjYsMC4zLTEuNCwwLTJzLTEtMS0xLjctMUM1OC4zLDQsNTMuNCw0LDQ4LjgsNCBMNDguOCw0eiBNNzguMSw0Yy0wLjYsMC0xLjIsMC4yLTEuNiwwLjdsLTguOSw5LjljLTAuNSwwLjYtMC43LDEuNC0wLjMsMi4yYzAuMywwLjcsMSwxLjIsMS44LDEuMmgwLjFsLTIuOCwyLjYgYy0wLjYsMC42LTAuOCwxLjQtMC41LDIuMmMwLjMsMC44LDEsMS4zLDEuOSwxLjNoMS4zbC00LjUsNC42Yy0wLjYsMC42LTAuNywxLjQtMC40LDIuMmMwLjMsMC43LDEsMS4yLDEuOCwxLjJoMTB2NCBjMCwwLjcsMC40LDEuNCwxLDEuOGMwLjYsMC40LDEuNCwwLjQsMiwwYzAuNi0wLjQsMS0xLDEtMS44di00aDEwYzAuOCwwLDEuNS0wLjUsMS44LTEuMmMwLjMtMC43LDAuMS0xLjYtMC40LTIuMkw4Ni45LDI0aDEuMyBjMC44LDAsMS42LTAuNSwxLjktMS4zYzAuMy0wLjgsMC4xLTEuNi0wLjUtMi4ybC0yLjgtMi42aDAuMWMwLjgsMCwxLjUtMC41LDEuOC0xLjJjMC4zLTAuNywwLjItMS42LTAuMy0yLjJsLTguOS05LjkgQzc5LjEsNC4zLDc4LjYsNCw3OC4xLDRMNzguMSw0eiBNNzgsOWw0LjQsNC45aC0wLjdjLTAuOCwwLTEuNiwwLjUtMS45LDEuM2MtMC4zLDAuOC0wLjEsMS42LDAuNSwyLjJsMi44LDIuNmgtMS4xIGMtMC44LDAtMS41LDAuNS0xLjgsMS4yYy0wLjMsMC43LTAuMSwxLjYsMC40LDIuMmw0LjUsNC42SDcwLjhsNC41LTQuNmMwLjYtMC42LDAuNy0xLjQsMC40LTIuMmMtMC4zLTAuNy0xLTEuMi0xLjgtMS4yaC0xLjEgbDIuOC0yLjZjMC42LTAuNiwwLjgtMS40LDAuNS0yLjJjLTAuMy0wLjgtMS0xLjMtMS45LTEuM2gtMC43TDc4LDl6IE01Mi40LDEyYy00LjEsMC03LjEsMC41LTkuNCwxLjVjLTIuMywxLTMuOCwyLjUtNC41LDQuMyBjLTAuNywxLjgtMC41LDMuNiwwLjEsNS4yYzAuNiwxLjUsMS41LDIuOSwyLjUsMy45YzUuNCw1LjQsMTguMSwxMi42LDI5LjYsMjFjNS44LDQuMiwxMS4yLDguNiwxNS4xLDEzYzMuOSw0LjQsNi4yLDguNyw2LjIsMTIuNCBjMCwxNC41LTEyLjksMTguNy0xMi45LDE4LjdjLTAuNywwLjItMS4yLDAuOC0xLjQsMS41czAuMSwxLjUsMC43LDEuOWMwLjYsMC41LDEuMywwLjYsMiwwLjNjMCwwLDE1LjYtNS42LDE1LjYtMjIuNSBjMC01LjMtMi45LTEwLjMtNy4yLTE1LjFDODQuNiw1My42LDc5LDQ5LDczLjEsNDQuN2MtMTEuOC04LjYtMjQuOC0xNi4zLTI5LjItMjAuNmMtMC42LTAuNi0xLjItMS41LTEuNi0yLjQgYy0wLjMtMC45LTAuNC0xLjctMC4xLTIuNGMwLjMtMC43LDAuOC0xLjQsMi4zLTJjMS41LTAuNyw0LjEtMS4yLDcuOC0xLjJjNC45LDAsOS40LDAuMSw5LjQsMC4xYzAuNywwLDEuNC0wLjMsMS44LTEgYzAuNC0wLjYsMC40LTEuNCwwLTIuMWMtMC40LTAuNi0xLjEtMS0xLjgtMUM2MS45LDEyLjEsNTcuMywxMiw1Mi40LDEyTDUyLjQsMTJ6IE0yNCw0NmMtMC41LDAtMS4xLDAuMi0xLjQsMC42TDkuMiw2MC41IGMtMC42LDAuNi0wLjcsMS40LTAuNCwyLjJjMC4zLDAuNywxLDEuMiwxLjgsMS4yaDNsLTYuNSw2LjhjLTAuNiwwLjYtMC43LDEuNC0wLjQsMi4yczEsMS4yLDEuOCwxLjJIMTNsLTguNSw4LjYgQzQsODMuMiwzLjgsODQsNC4yLDg0LjhDNC41LDg1LjUsNS4yLDg2LDYsODZoMTZ2NS40YzAsMC43LDAuNCwxLjQsMSwxLjhjMC42LDAuNCwxLjQsMC40LDIsMGMwLjYtMC40LDEtMSwxLTEuOFY4NmgxNiBjMC44LDAsMS41LTAuNSwxLjgtMS4yYzAuMy0wLjcsMC4xLTEuNi0wLjQtMi4yTDM1LDc0aDQuNGMwLjgsMCwxLjUtMC41LDEuOC0xLjJzMC4yLTEuNi0wLjQtMi4ybC02LjUtNi44aDMgYzAuOCwwLDEuNS0wLjUsMS44LTEuMmMwLjMtMC43LDAuMi0xLjYtMC40LTIuMkwyNS40LDQ2LjZDMjUuMSw0Ni4yLDI0LjUsNDYsMjQsNDZMMjQsNDZ6IE0yNCw1MC45bDguNyw5aC0zIGMtMC44LDAtMS41LDAuNS0xLjgsMS4ycy0wLjIsMS42LDAuNCwyLjJsNi41LDYuOGgtNC41Yy0wLjgsMC0xLjUsMC41LTEuOCwxLjJjLTAuMywwLjctMC4xLDEuNiwwLjQsMi4ybDguNSw4LjZIMTAuOGw4LjUtOC42IGMwLjYtMC42LDAuNy0xLjQsMC40LTIuMmMtMC4zLTAuNy0xLTEuMi0xLjgtMS4yaC00LjVsNi41LTYuOGMwLjYtMC42LDAuNy0xLjQsMC40LTIuMmMtMC4zLTAuNy0xLTEuMi0xLjgtMS4yaC0zTDI0LDUwLjl6XCIvPic7XHJcblxyXG5leHBvcnQgY29uc3QgRFVDS19JQ09OID0gXCJCQy1kdWNrLWljb25cIjtcclxuZXhwb3J0IGNvbnN0IERVQ0tfSUNPTl9TVkcgPVxyXG4gICc8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZD1cIk03MiwzMWMwLTEuNS0xLjItMi44LTIuOC0yLjhjLTEuNSwwLTIuOCwxLjItMi44LDIuOHMxLjIsMi44LDIuOCwyLjhDNzAuOCwzMy44LDcyLDMyLjYsNzIsMzF6IE04MC40LDQ3LjdjMTAuNywwLDE5LjQtOC43LDE5LjQtMTkuNEg4OC40Yy0wLjEtMC42LTAuMS0xLjEtMC4yLTEuN2MtMS42LTcuMS03LjMtMTIuOC0xNC4zLTE0NGMtMS42LTAuNC0zLjEtMC41LTQuNi0wLjVjLTEwLjcsMC0xOS40LDguNy0xOS40LDE5LjR2MTMuOWgtOS40Yy02LjgsMC0xMy42LTIuNC0xOC4yLTcuM2MtMC43LTAuNy0xLjYtMS4xLTIuNC0xMWMtMS43LDAtMy4zLDEuMy0zLjMsMy4zYzAsMTYuNCwxMi41LDMxLDI4LjYsMzIuNmMxLjYsMC4yLDMuMS0xLjEsMy4xLTIuOHYtMi44YzAtMS40LTEtMi42LTIuNC0yLjdjLTcuOS0wOS0xNC44LTYuMi0xOC40LTEzLjVjNC4xLDEuNiw4LjUsMi41LDEzLjEsMi41bDE3LjcsMC4xVjMxYzAtNi4xLDUtMTEuMSwxMS4xLTExLjFjMC45LDAsMS44LDAuMSwyLjcsMC4zYzMuOSwwLjksNy4yLDQuMiw4LjEsOC4xQzgxNCwzNC40LDc4LDM5LjEsNzQsNDFsLTQuNywyLjN2MTIuNGwyLjEsMi40YzEuNSwxLjgsMy40LDQuNywzLjUsOC44YzAuMSwzLjQtMS4zLDYuNy0zLjksOS40Yy0zLDMtNyw0LjgtMTEuMiw0LjhINDMuOWMtMSwwLTIuMS0wMS0zLjItMC4yQzI1LjIsNzkuNSwxMi4zLDY4LjEsOC43LDUzLjJoNS4xYy0xLjItMi43LTItNS41LTIuNS04LjNINS40Yy0zLjMsMC02LDMtNS41LDYuM2MyLjksMjAuMywxOS40LDM2LjEsNDAsMzhjMS4zLDAuMSwyLjYsMDIsNCwwLjJoMTUuOGMxMi41LDAsMjMuNy0xMC4yLDIzLjQtMjIuN2MtMC4xLTUuNC0yLjItMTAuMy01LjYtMTQuMXYtNC45SDgwLjRMODAuNCw0Ny43elwiLz4nO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNwbGl0TGlua3NSZWdleCA9IG5ldyBSZWdFeHAoL1xcW1xcWyguKz8pXFxdXFxdL2cpO1xyXG5leHBvcnQgY29uc3QgZHJvcEhlYWRlck9yQWxpYXMgPSBuZXcgUmVnRXhwKC9cXFtcXFsoW14jfF0rKVxcXVxcXS8pO1xyXG5cclxuLyoqIEEgbWV0YS1yZWdleCB0aGF0IHRha2VzIGluIGEgc3RyaW5nIG9mIHRoZSBmb3JtIGAvcmVnZXgvZmxhZ3NgLCBhbmQgcmV0dXJucyAyIGdyb3VwcywgdGhlIGlubmVyIGByZWdleGAsIGFuZCB0aGUgYGZsYWdzYC4gKi9cclxuZXhwb3J0IGNvbnN0IHJlZ05GbGFncyA9IG5ldyBSZWdFeHAoL14uKC4qPylcXFcoXFx3KikkLyk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IFRSQUlMX0xFTkdUSFMgPSBbXHJcbiAgJ1Nob3J0ZXN0JyxcclxuICAnTG9uZ2VzdCcsXHJcbiAgJ0FsbCdcclxuXVxyXG5cclxuZXhwb3J0IGNvbnN0IFZJU1RZUEVTID0gW1xyXG4gIFwiRm9yY2UgRGlyZWN0ZWQgR3JhcGhcIixcclxuICBcIlRpZHkgVHJlZVwiLFxyXG4gIFwiQ2lyY2xlIFBhY2tpbmdcIixcclxuICBcIkVkZ2UgQnVuZGxpbmdcIixcclxuICBcIkFyYyBEaWFncmFtXCIsXHJcbiAgXCJTdW5idXJzdFwiLFxyXG4gIFwiVHJlZSBNYXBcIixcclxuICBcIkljaWNsZVwiLFxyXG4gIFwiUmFkaWFsIFRyZWVcIixcclxuXSBhcyBjb25zdDtcclxuXHJcbi8qIEFsbCA1IHBvc3NpYmxlIGRpcmVjdGlvbnMuICovXHJcbmV4cG9ydCBjb25zdCBESVJFQ1RJT05TID0gW1widXBcIiwgXCJzYW1lXCIsIFwiZG93blwiLCBcIm5leHRcIiwgXCJwcmV2XCJdIGFzIGNvbnN0O1xyXG5cclxuLyoqXHJcbiAqIEFuIGFycm93IGZvciBlYWNoIHtAbGluayBESVJFQ1RJT05TfSB2YWx1ZS5cclxuICovXHJcbmV4cG9ydCBjb25zdCBBUlJPV19ESVJFQ1RJT05TOiB7IFtkaXIgaW4gRGlyZWN0aW9uc106IHN0cmluZyB9ID0ge1xyXG4gIHVwOiBcIlx1MjE5MVwiLFxyXG4gIHNhbWU6IFwiXHUyMTk0XCIsXHJcbiAgZG93bjogXCJcdTIxOTNcIixcclxuICBuZXh0OiBcIlx1MjE5MlwiLFxyXG4gIHByZXY6IFwiXHUyMTkwXCIsXHJcbn07XHJcbmV4cG9ydCBjb25zdCBSRUxBVElPTlMgPSBbXCJQYXJlbnRcIiwgXCJTaWJsaW5nXCIsIFwiQ2hpbGRcIl0gYXMgY29uc3Q7XHJcbmV4cG9ydCBjb25zdCBSRUFsQ0xPU0VEID0gW1wiUmVhbFwiLCBcIkNsb3NlZFwiXTtcclxuZXhwb3J0IGNvbnN0IEFMTFVOTElOS0VEID0gW1wiQWxsXCIsIFwiTm8gVW5saW5rZWRcIl07XHJcbmV4cG9ydCBjb25zdCBDT0RFQkxPQ0tfVFlQRVMgPSBbXCJ0cmVlXCIsIFwianVnZ2xcIl07XHJcbmV4cG9ydCBjb25zdCBDT0RFQkxPQ0tfRklFTERTID0gW1xyXG4gIFwidHlwZVwiLFxyXG4gIFwiZGlyXCIsXHJcbiAgXCJmaWVsZHNcIixcclxuICBcImRlcHRoXCIsXHJcbiAgXCJ0aXRsZVwiLFxyXG4gIFwiZmxhdFwiLFxyXG4gIFwiY29udGVudFwiLFxyXG4gIFwiZnJvbVwiLFxyXG4gIFwiaW1wbGllZFwiLFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IEpVR0dMX0NCX0RFRkFVTFRTOiBJSnVnZ2xTZXR0aW5ncyA9IHtcclxuICAvLyBAdHMtaWdub3JlXHJcbiAgYW5pbWF0ZUxheW91dDogdHJ1ZSxcclxuICBhdXRvQWRkTm9kZXM6IGZhbHNlLFxyXG4gIGF1dG9FeHBhbmQ6IGZhbHNlLFxyXG4gIGF1dG9ab29tOiBmYWxzZSxcclxuICBjb3JlU3RvcmU6IFwiY29yZVwiLFxyXG4gIGV4cGFuZEluaXRpYWw6IGZhbHNlLFxyXG4gIGZkZ2RMYXlvdXQ6IFwiZDMtZm9yY2VcIixcclxuICBmaWx0ZXI6IFwiXCIsXHJcbiAgaGVpZ2h0OiBcIjc1MHB4XCIsXHJcbiAgaG92ZXJFZGdlczogZmFsc2UsXHJcbiAgbGF5b3V0OiBcImZvcmNlLWRpcmVjdGVkXCIsXHJcbiAgbGltaXQ6IDI1MCxcclxuICBtZXJnZUVkZ2VzOiB0cnVlLFxyXG4gIG1ldGFLZXlIb3ZlcjogdHJ1ZSxcclxuICBtb2RlOiBcIndvcmtzcGFjZVwiLFxyXG4gIG5hdmlnYXRvcjogdHJ1ZSxcclxuICBvcGVuV2l0aFNoaWZ0OiBmYWxzZSxcclxuICByZWFkQ29udGVudDogdHJ1ZSxcclxuICBzdHlsZUdyb3VwczogW10sXHJcbiAgdG9vbGJhcjogdHJ1ZSxcclxuICB3aWR0aDogXCIxMDAlXCIsXHJcbiAgem9vbVNwZWVkOiAxLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEpVR0dMX1RSQUlMX0RFRkFVTFRTOiBJSnVnZ2xTZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oXHJcbiAgSlVHR0xfQ0JfREVGQVVMVFMsXHJcbiAge1xyXG4gICAgYW5pbWF0ZUxheW91dDogdHJ1ZSxcclxuICAgIGF1dG9ab29tOiBmYWxzZSxcclxuICAgIGZkZ2RMYXlvdXQ6IFwiZDMtZm9yY2VcIixcclxuICAgIGhlaWdodDogXCIzMDBweFwiLFxyXG4gICAgcmVhZENvbnRlbnQ6IGZhbHNlLFxyXG4gICAgdG9vbGJhcjogZmFsc2UsXHJcbiAgICBuYXZpZ2F0b3I6IGZhbHNlLFxyXG4gIH1cclxuKTtcclxuQ09ERUJMT0NLX0ZJRUxEUy5wdXNoKC4uLk9iamVjdC5rZXlzKEpVR0dMX0NCX0RFRkFVTFRTKSk7XHJcblxyXG5leHBvcnQgY29uc3QgYmxhbmtVc2VySGllciA9ICgpOiBVc2VySGllciA9PiB7XHJcbiAgcmV0dXJuIHsgdXA6IFtdLCBzYW1lOiBbXSwgZG93bjogW10sIG5leHQ6IFtdLCBwcmV2OiBbXSB9O1xyXG59O1xyXG5leHBvcnQgY29uc3QgYmxhbmtEaXJPYmpzID0gKCk6IHsgW2RpciBpbiBEaXJlY3Rpb25zXToge30gfSA9PiB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHVwOiB7fSxcclxuICAgIHNhbWU6IHt9LFxyXG4gICAgZG93bjoge30sXHJcbiAgICBuZXh0OiB7fSxcclxuICAgIHByZXY6IHt9LFxyXG4gIH07XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgYmxhbmtSZWFsTkltcGxpZWQgPSAoKTogUmVhbE5JbXBsaWVkID0+IHtcclxuICByZXR1cm4ge1xyXG4gICAgdXA6IHsgcmVhbHM6IFtdLCBpbXBsaWVkczogW10gfSxcclxuICAgIGRvd246IHsgcmVhbHM6IFtdLCBpbXBsaWVkczogW10gfSxcclxuICAgIHNhbWU6IHsgcmVhbHM6IFtdLCBpbXBsaWVkczogW10gfSxcclxuICAgIG5leHQ6IHsgcmVhbHM6IFtdLCBpbXBsaWVkczogW10gfSxcclxuICAgIHByZXY6IHsgcmVhbHM6IFtdLCBpbXBsaWVkczogW10gfSxcclxuICB9O1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IFtcclxuICBCQ19JX0FVTlQsXHJcbiAgQkNfSV9DT1VTSU4sXHJcbiAgQkNfSV9TSUJMSU5HXzEsXHJcbiAgQkNfSV9TSUJMSU5HXzIsXHJcbiAgQkNfSV9SRUZMRVhJVkUsXHJcbiAgQkNfSV9QQVJFTlQsXHJcbl0gPSBbXHJcbiAgICBcIkJDLUF1bnRcIixcclxuICAgIFwiQkMtQ291c2luXCIsXHJcbiAgICBcIkJDLVNpYmxpbmctMVwiLFxyXG4gICAgXCJCQy1TaWJsaW5nLTJcIixcclxuICAgIFwiQkMtUmVmbGV4aXZlXCIsXHJcbiAgICBcIkJDLVBhcmVudFwiLFxyXG4gIF07XHJcblxyXG5leHBvcnQgY29uc3QgW1xyXG4gIEJDX0ZPTERFUl9OT1RFLFxyXG4gIEJDX0ZPTERFUl9OT1RFX1NVQkZPTERFUlMsXHJcbiAgQkNfRk9MREVSX05PVEVfUkVDVVJTSVZFLFxyXG4gIEJDX1RBR19OT1RFLFxyXG4gIEJDX1RBR19OT1RFX0ZJRUxELFxyXG4gIEJDX1RBR19OT1RFX0VYQUNULFxyXG4gIEJDX0xJTktfTk9URSxcclxuICBCQ19UUkFWRVJTRV9OT1RFLFxyXG4gIEJDX1JFR0VYX05PVEUsXHJcbiAgQkNfUkVHRVhfTk9URV9GSUVMRCxcclxuICBCQ19EVl9OT1RFLFxyXG4gIEJDX0RWX05PVEVfRklFTEQsXHJcbiAgQkNfSUdOT1JFLFxyXG4gIEJDX0lHTk9SRV9ERU5EUk9OLFxyXG4gIEJDX0hJREVfVFJBSUwsXHJcbiAgQkNfT1JERVIsXHJcbl0gPSBbXHJcbiAgICBcIkJDLWZvbGRlci1ub3RlXCIsXHJcbiAgICBcIkJDLWZvbGRlci1ub3RlLXN1YmZvbGRlcnNcIixcclxuICAgIFwiQkMtZm9sZGVyLW5vdGUtcmVjdXJzaXZlXCIsXHJcbiAgICBcIkJDLXRhZy1ub3RlXCIsXHJcbiAgICBcIkJDLXRhZy1ub3RlLWZpZWxkXCIsXHJcbiAgICBcIkJDLXRhZy1ub3RlLWV4YWN0XCIsXHJcbiAgICBcIkJDLWxpbmstbm90ZVwiLFxyXG4gICAgXCJCQy10cmF2ZXJzZS1ub3RlXCIsXHJcbiAgICBcIkJDLXJlZ2V4LW5vdGVcIixcclxuICAgIFwiQkMtcmVnZXgtbm90ZS1maWVsZFwiLFxyXG4gICAgXCJCQy1kYXRhdmlldy1ub3RlXCIsXHJcbiAgICBcIkJDLWRhdGF2aWV3LW5vdGUtZmllbGRcIixcclxuICAgIFwiQkMtaWdub3JlXCIsXHJcbiAgICBcIkJDLWlnbm9yZS1kZW5kcm9uXCIsXHJcbiAgICBcIkJDLWhpZGUtdHJhaWxcIixcclxuICAgIFwiQkMtb3JkZXJcIixcclxuICBdO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJDX0ZJRUxEU19JTkZPID0gW1xyXG4gIHtcclxuICAgIGZpZWxkOiBCQ19GT0xERVJfTk9URSxcclxuICAgIGRlc2M6IFwiU2V0IHRoaXMgbm90ZSBhcyBhIEJyZWFkY3J1bWJzIGZvbGRlci1ub3RlLiBBbGwgb3RoZXIgbm90ZXMgaW4gdGhpcyBmb2xkZXIgd2lsbCBiZSBhZGRlZCB0byB0aGUgZ3JhcGggd2l0aCB0aGUgZmllbGQgbmFtZSBzcGVjaWZpZWQgaW4gdGhpcyBrZXkncyB2YWx1ZVwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogXCIsXHJcbiAgICBhZnRlcklubGluZTogXCI6OiBcIixcclxuICAgIGFsdDogdHJ1ZSxcclxuICB9LFxyXG4gIHtcclxuICAgIGZpZWxkOiBCQ19GT0xERVJfTk9URV9TVUJGT0xERVJTLFxyXG4gICAgZGVzYzogXCJMaW5rIHRvIG5vdGVzIGluIHN1YmZvbGRlcnMgd2l0aCB0aGUgZ2l2ZW4gZmllbGQuXCIsXHJcbiAgICBhZnRlcllhbWw6IFwiOiBcIixcclxuICAgIGFmdGVySW5saW5lOiBcIjo6IFwiLFxyXG4gICAgYWx0OiBmYWxzZSxcclxuICB9LFxyXG4gIHtcclxuICAgIGZpZWxkOiBCQ19GT0xERVJfTk9URV9SRUNVUlNJVkUsXHJcbiAgICBkZXNjOiBcIlJlY3Vyc2l2ZWx5IGFkZCBub3RlcyBpbiBzdWJmb2xkZXJzIHRvIHRoZSBmb2xkZXJub3RlIG9mIF90aGF0XyBzdWJmb2xkZXIuXCIsXHJcbiAgICBhZnRlcllhbWw6IFwiOiB0cnVlXCIsXHJcbiAgICBhZnRlcklubGluZTogXCI6OiB0cnVlXCIsXHJcbiAgICBhbHQ6IGZhbHNlLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgZmllbGQ6IEJDX1RBR19OT1RFLFxyXG4gICAgZGVzYzogXCJTZXQgdGhpcyBub3RlIGFzIGEgQnJlYWRjcnVtYnMgdGFnLW5vdGUuIEFsbCBvdGhlciBub3RlcyB3aXRoIHRoaXMgdGFnIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGdyYXBoIHVzaW5nIHRoZSBkZWZhdWx0IGZpZWxkTmFtZSBzcGVjaWZpZWQgaW4gYFNldHRpbmdzID4gQWx0ZXJuYXRpdmUgSGllcmFyY2hpZXMgPiBUYWcgTm90ZXMgPiBEZWZhdWx0IEZpZWxkYCwgb3IgdXNpbmcgdGhlIGZpZWxkTmFtZSB5b3Ugc3BlY2lmeSB3aXRoIGBCQy10YWctbm90ZS1maWVsZDogZmllbGROYW1lYFwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogJyNcIixcclxuICAgIGFmdGVySW5saW5lOiBcIjo6ICNcIixcclxuICAgIGFsdDogdHJ1ZSxcclxuICB9LFxyXG4gIHtcclxuICAgIGZpZWxkOiBCQ19UQUdfTk9URV9GSUVMRCxcclxuICAgIGRlc2M6IFwiTWFudWFsbHkgY2hvb3NlIHRoZSBmaWVsZCBmb3IgdGhpcyB0YWctbm90ZSB0byB1c2VcIixcclxuICAgIGFmdGVyWWFtbDogXCI6IFwiLFxyXG4gICAgYWZ0ZXJJbmxpbmU6IFwiOjogXCIsXHJcbiAgICBhbHQ6IGZhbHNlLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgZmllbGQ6IEJDX1RBR19OT1RFX0VYQUNULFxyXG4gICAgZGVzYzogXCJPbmx5IGxvb2sgZm9yIG5vdGVzIHdpdGggdGhlIGV4YWN0IHRhZy4gaS5lLiBgI0FgIHdvbid0IG1hdGNoIGAjQS9CYFwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogdHJ1ZVwiLFxyXG4gICAgYWZ0ZXJJbmxpbmU6IFwiOjogdHJ1ZVwiLFxyXG4gICAgYWx0OiBmYWxzZSxcclxuICB9LFxyXG4gIHtcclxuICAgIGZpZWxkOiBCQ19MSU5LX05PVEUsXHJcbiAgICBkZXNjOiBcIlNldCB0aGlzIG5vdGUgYXMgYSBCcmVhZGNydW1icyBsaW5rLW5vdGUuIEFsbCBsaW5rcyBsZWF2aW5nIHRoaXMgbm90ZSB3aWxsIGJlIGFkZGVkIHRvIHRoZSBncmFwaCB3aXRoIHRoZSBmaWVsZCBuYW1lIHNwZWNpZmllZCBpbiB0aGlzIGtleSdzIHZhbHVlLlwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogXCIsXHJcbiAgICBhZnRlcklubGluZTogXCI6OiBcIixcclxuICAgIGFsdDogdHJ1ZSxcclxuICB9LFxyXG4gIHtcclxuICAgIGZpZWxkOiBCQ19UUkFWRVJTRV9OT1RFLFxyXG4gICAgZGVzYzogXCJTZXQgdGhpcyBub3RlIGFzIGEgQnJlYWRjcnVtYnMgdHJhdmVyc2Utbm90ZS4gU3RhcnRpbmcgZnJvbSB0aGlzIG5vdGUsIHRoZSBPYnNpZGlhbiBncmFwaCB3aWxsIGJlIHRyYXZlcnNlZCBpbiBkZXB0aC1maXJzdCBvcmRlciwgYW5kIGFsbCBub3RlcyBhbG9uZyB0aGUgd2F5IHdpbGwgYmUgYWRkZWQgdG8gdGhlIEJDIGdyYXBoIHVzaW5nIHRoZSBmaWVsZE5hbWUgeW91IHNwZWNpZnlcIixcclxuICAgIGFmdGVyWWFtbDogXCI6IFwiLFxyXG4gICAgYWZ0ZXJJbmxpbmU6IFwiOjogXCIsXHJcbiAgICBhbHQ6IHRydWUsXHJcbiAgfSxcclxuICB7XHJcbiAgICBmaWVsZDogQkNfUkVHRVhfTk9URSxcclxuICAgIGRlc2M6IFwiU2V0IHRoaXMgbm90ZSBhcyBhIEJyZWFkY3J1bWJzIHJlZ2V4LW5vdGUuIFRoZSB2YWx1ZSBvZiB0aGlzIGZpZWxkIGlzIGEgcmVndWxhciBleHByZXNzaW9uIChvZiB0aGUgZm9ybSAnL3JlZ2V4L2ZsYWdzJykuIEFsbCBub3RlIG5hbWVzIHRoYXQgbWF0Y2ggdGhlIHJlZ2V4IHdpbGwgYmUgYWRkZWQgdG8gdGhlIEJDIGdyYXBoIHVzaW5nIHRoZSBkZWZhdWx0IGZpZWxkTmFtZSBzcGVjaWZpZWQgaW4gYFNldHRpbmdzID4gQWx0ZXJuYXRpdmUgSGllcmFyY2hpZXMgPiBSZWdleCBOb3RlcyA+IERlZmF1bHQgRmllbGRgLCBvciB1c2luZyB0aGUgZmllbGROYW1lIHlvdSBzcGVjaWZ5IGluICdCQy1yZWdleC1ub3RlLWZpZWxkJy5cIixcclxuICAgIGFmdGVyWWFtbDogXCI6ICcvXCIsXHJcbiAgICBhZnRlcklubGluZTogXCI6OiAvXCIsXHJcbiAgICBhbHQ6IHRydWUsXHJcbiAgfSxcclxuICB7XHJcbiAgICBmaWVsZDogQkNfUkVHRVhfTk9URV9GSUVMRCxcclxuICAgIGRlc2M6IFwiTWFudWFsbHkgY2hvb3NlIHRoZSBmaWVsZCBmb3IgdGhpcyByZWdleC1ub3RlIHRvIHVzZVwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogXCIsXHJcbiAgICBhZnRlcklubGluZTogXCI6OiBcIixcclxuICAgIGFsdDogZmFsc2UsXHJcbiAgfSxcclxuICB7XHJcbiAgICBmaWVsZDogQkNfRFZfTk9URSxcclxuICAgIGRlc2M6IFwiU2V0IHRoaXMgbm90ZSBhcyBhIEJyZWFkY3J1bWJzIERhdGF2aWV3LW5vdGUuIFRoZSB2YWx1ZSBvZiB0aGlzIGZpZWxkIGlzIGEgRGF0YXZpZXcgYGZyb21gIHF1ZXJ5LiBBbGwgbm90ZXMgdGhhdCBtYXRjaCB0aGUgcXVlcnkgd2lsbCBiZSBhZGRlZCB0byB0aGUgQkMgZ3JhcGggdXNpbmcgdGhlIGRlZmF1bHQgZmllbGROYW1lIHNwZWNpZmllZCBpbiBgU2V0dGluZ3MgPiBBbHRlcm5hdGl2ZSBIaWVyYXJjaGllcyA+IERhdGF2aWV3IE5vdGVzID4gRGVmYXVsdCBGaWVsZGAsIG9yIHVzaW5nIHRoZSBmaWVsZE5hbWUgeW91IHNwZWNpZnkgaW4gJ0JDLWRhdGF2aWV3LW5vdGUtZmllbGQnLlwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogJ1wiLFxyXG4gICAgYWZ0ZXJJbmxpbmU6IFwiOjogXCIsXHJcbiAgICBhbHQ6IHRydWUsXHJcbiAgfSxcclxuICB7XHJcbiAgICBmaWVsZDogQkNfRFZfTk9URV9GSUVMRCxcclxuICAgIGRlc2M6IFwiTWFudWFsbHkgY2hvb3NlIHRoZSBmaWVsZCBmb3IgdGhpcyBEYXRhdmlldy1ub3RlIHRvIHVzZVwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogXCIsXHJcbiAgICBhZnRlcklubGluZTogXCI6OiBcIixcclxuICAgIGFsdDogZmFsc2UsXHJcbiAgfSxcclxuICB7XHJcbiAgICBmaWVsZDogQkNfSUdOT1JFLFxyXG4gICAgZGVzYzogXCJUZWxscyBCcmVhZGNydW1icyB0byBpZ25vcmUgYSBub3RlIGZyb20gaXRzIGluZGV4IGVudGlyZWx5LiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byB1c2UgQnJlYWRjcnVtYnMgdG8gaW5kZXggbm90ZXMsIGJ1dCB5b3UgZG9uJ3Qgd2FudCB0byBzaG93IHRoZW0gaW4gdGhlIGdyYXBoLlwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogdHJ1ZVwiLFxyXG4gICAgYWZ0ZXJJbmxpbmU6IFwiOjogdHJ1ZVwiLFxyXG4gICAgYWx0OiBmYWxzZSxcclxuICB9LFxyXG4gIHtcclxuICAgIGZpZWxkOiBCQ19JR05PUkVfREVORFJPTixcclxuICAgIGRlc2M6IFwiVGVsbHMgQnJlYWRjcnVtYnMgdG8gbm90IHRyZWF0IHRoaXMgbm90ZSBhcyBhIGRlbmRyb24gbm90ZSAob25seSB1c2VmdWwgaWYgdGhlIG5vdGUgbmFtZSBoYXMgeW91IGRlbmRyb24gc3BsaXR0ZXIgaW4gaXQsIHVzdWFsbHkgYSBwZXJpb2QgYC5gKS5cIixcclxuICAgIGFmdGVyWWFtbDogXCI6IHRydWVcIixcclxuICAgIGFmdGVySW5saW5lOiBcIjo6IHRydWVcIixcclxuICAgIGFsdDogZmFsc2UsXHJcbiAgfSxcclxuICB7XHJcbiAgICBmaWVsZDogQkNfSElERV9UUkFJTCxcclxuICAgIGRlc2M6IFwiRG9uJ3Qgc2hvdyB0aGUgdHJhaWwgaW4gdGhpcyBub3RlXCIsXHJcbiAgICBhZnRlcllhbWw6IFwiOiB0cnVlXCIsXHJcbiAgICBhZnRlcklubGluZTogXCI6OiB0cnVlXCIsXHJcbiAgICBhbHQ6IGZhbHNlLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgZmllbGQ6IEJDX09SREVSLFxyXG4gICAgZGVzYzogXCJTZXQgdGhlIG9yZGVyIG9mIHRoaXMgbm90ZSBpbiB0aGUgTWF0cml4IHZpZXcuIEEgbG93ZXIgdmFsdWUgcGxhY2VzIHRoaXMgbm90ZSBoaWdoZXIgaW4gdGhlIG9yZGVyLlwiLFxyXG4gICAgYWZ0ZXJZYW1sOiBcIjogXCIsXHJcbiAgICBhZnRlcklubGluZTogXCI6OiBcIixcclxuICAgIGFsdDogZmFsc2UsXHJcbiAgfSxcclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBCQ19BTFRTID0gQkNfRklFTERTX0lORk8uZmlsdGVyKChmKSA9PiBmLmFsdCkubWFwKChmKSA9PiBmLmZpZWxkKTtcclxuXHJcbmV4cG9ydCBjb25zdCBJTExFR0FMX0ZJTEVOQU1FX0NIQVJTID0gW1xyXG4gIFwiXFxcXFwiLFxyXG4gIFwiL1wiLFxyXG4gIFwiOlwiLFxyXG4gIFwiKlwiLFxyXG4gIFwiP1wiLFxyXG4gICdcIicsXHJcbiAgXCI8XCIsXHJcbiAgXCI+XCIsXHJcbiAgXCJ8XCIsXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgREFUQVZJRVdfTUlTU0lORyA9XHJcbiAgXCJUaGUgRGF0YXZpZXcgcGx1Z2luIG11c3QgYmUgaW5zdGFsbGVkIGZvciB0aGlzIHRvIHdvcmtcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBBUElfTkFNRSA9IFwiQkNBUElcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFVFRJTkdTOiBCQ1NldHRpbmdzID0ge1xyXG4gIGFkZERlbmRyb25Ob3RlczogZmFsc2UsXHJcbiAgYWRkRGF0ZU5vdGVzOiBmYWxzZSxcclxuICBhbGlhc2VzSW5JbmRleDogZmFsc2UsXHJcbiAgYWxwaGFTb3J0QXNjOiB0cnVlLFxyXG4gIGFsdExpbmtGaWVsZHM6IFtdLFxyXG4gIENTVlBhdGhzOiBcIlwiLFxyXG4gIGNyZWF0ZUluZGV4SW5kZW50OiAnICAnLFxyXG4gIGRhdGVGb3JtYXQ6IFwiWVlZWS1NTS1ERFwiLFxyXG4gIGRhdGVOb3RlRm9ybWF0OiBcInl5eXktTU0tZGRcIixcclxuICBkYXRlTm90ZUZpZWxkOiBcIm5leHRcIixcclxuICBkYXRhdmlld05vdGVGaWVsZDogXCJ1cFwiLFxyXG4gIGRhdGVOb3RlQWRkTW9udGg6IFwiXCIsXHJcbiAgZGF0ZU5vdGVBZGRZZWFyOiBcIlwiLFxyXG4gIGRlYnVnTW9kZTogXCJXQVJOXCIsXHJcbiAgZGVuZHJvbk5vdGVEZWxpbWl0ZXI6IFwiLlwiLFxyXG4gIGRlbmRyb25Ob3RlRmllbGQ6IFwidXBcIixcclxuICBkdldhaXRUaW1lOiA1MDAwLFxyXG4gIGVuYWJsZUFscGhhU29ydDogdHJ1ZSxcclxuICBlbmFibGVSZWxhdGlvblN1Z2dlc3RvcjogZmFsc2UsXHJcbiAgZmllbGRTdWdnZXN0b3I6IHRydWUsXHJcbiAgZmlsdGVySW1wbGllZFNpYmxpbmdzT2ZEaWZmZXJlbnRUeXBlczogZmFsc2UsXHJcbiAganVnZ2xMYXlvdXQ6IFwiaGllcmFyY2h5XCIsXHJcbiAgbGltaXRXcml0ZUJDQ2hlY2tib3hlczogW10sXHJcbiAgQ0hFQ0tCT1hfU1RBVEVTX09WRVJXUklUVEVOOiBmYWxzZSxcclxuICBncmlkRGVmYXVsdERlcHRoOiAyNSxcclxuICBoaWVyYXJjaHlOb3RlczogW1wiXCJdLFxyXG4gIGhpZXJhcmNoeU5vdGVJc1BhcmVudDogZmFsc2UsXHJcbiAgSE5VcEZpZWxkOiBcIlwiLFxyXG4gIGluZGV4Tm90ZXM6IFtcIlwiXSxcclxuICBuYW1pbmdTeXN0ZW1GaWVsZDogXCJcIixcclxuICBuYW1pbmdTeXN0ZW1SZWdleDogXCJcIixcclxuICBuYW1pbmdTeXN0ZW1TcGxpdDogXCIuXCIsXHJcbiAgbmFtaW5nU3lzdGVtRW5kc1dpdGhEZWxpbWl0ZXI6IGZhbHNlLFxyXG4gIHJlZnJlc2hPbk5vdGVDaGFuZ2U6IGZhbHNlLFxyXG4gIHVzZUFsbE1ldGFkYXRhOiB0cnVlLFxyXG4gIG9wZW5NYXRyaXhPbkxvYWQ6IHRydWUsXHJcbiAgb3BlbkR1Y2tPbkxvYWQ6IGZhbHNlLFxyXG4gIG9wZW5Eb3duT25Mb2FkOiB0cnVlLFxyXG4gIHBhcnNlSnVnZ2xMaW5rc1dpdGhvdXRKdWdnbDogZmFsc2UsXHJcbiAgc2hvd05hbWVPclR5cGU6IHRydWUsXHJcbiAgc2hvd1JlbGF0aW9uVHlwZTogdHJ1ZSxcclxuICByZWdleE5vdGVGaWVsZDogXCJcIixcclxuICByZWxTdWdnZXN0b3JUcmlnZ2VyOiBcIlxcXFxcIixcclxuICBybExlYWY6IHRydWUsXHJcbiAgc2hvd0FsbFBhdGhzSWZOb25lVG9JbmRleE5vdGU6IGZhbHNlLFxyXG4gIHNob3dBbGxBbGlhc2VzOiB0cnVlLFxyXG4gIHNob3dCQ3M6IHRydWUsXHJcbiAgc2hvd0JDc0luRWRpdExQTW9kZTogZmFsc2UsXHJcbiAgc2hvd1JlZnJlc2hOb3RpY2U6IHRydWUsXHJcbiAgc2hvd0ltcGxpZWRSZWxhdGlvbnM6IHRydWUsXHJcbiAgc2hvd1RyYWlsOiB0cnVlLFxyXG4gIHNob3dHcmlkOiB0cnVlLFxyXG4gIHNob3dKdWdnbDogZmFsc2UsXHJcbiAgc2hvd1ByZXZOZXh0OiB0cnVlLFxyXG4gIHNvcnRCeU5hbWVTaG93QWxpYXM6IGZhbHNlLFxyXG4gIHNxdWFyZURpcmVjdGlvbnNPcmRlcjogWzAsIDEsIDIsIDMsIDRdLFxyXG4gIGxpbWl0VHJhaWxDaGVja2JveGVzOiBbXSxcclxuICBsaW1pdEp1bXBUb0ZpcnN0RmllbGRzOiBbXSxcclxuICBzaG93QWxsOiAnQWxsJyxcclxuICBub1BhdGhNZXNzYWdlOiBgVGhpcyBub3RlIGhhcyBubyByZWFsIG9yIGltcGxpZWQgcGFyZW50c2AsXHJcbiAgdGFnTm90ZUZpZWxkOiBcIlwiLFxyXG4gIHRocmVhZEludG9OZXdQYW5lOiBmYWxzZSxcclxuICB0aHJlYWRpbmdUZW1wbGF0ZTogXCJ7e2ZpZWxkfX0gb2Yge3tjdXJyZW50fX1cIixcclxuICB0aHJlYWRpbmdEaXJUZW1wbGF0ZXM6IHsgdXA6IFwiXCIsIHNhbWU6IFwiXCIsIGRvd246IFwiXCIsIG5leHQ6IFwiXCIsIHByZXY6IFwiXCIgfSxcclxuICB0aHJlYWRVbmRlckN1cnNvcjogZmFsc2UsXHJcbiAgdHJhaWxTZXBlcmF0b3I6IFwiXHUyMTkyXCIsXHJcbiAgdHJlYXRDdXJyTm9kZUFzSW1wbGllZFNpYmxpbmc6IGZhbHNlLFxyXG4gIHRyaW1EZW5kcm9uTm90ZXM6IGZhbHNlLFxyXG4gIHJlc3BlY3RSZWFkYWJsZUxpbmVMZW5ndGg6IHRydWUsXHJcbiAgdXNlckhpZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHVwOiBbXCJ1cFwiXSxcclxuICAgICAgc2FtZTogW1wic2FtZVwiXSxcclxuICAgICAgZG93bjogW1wiZG93blwiXSxcclxuICAgICAgbmV4dDogW1wibmV4dFwiXSxcclxuICAgICAgcHJldjogW1wicHJldlwiXSxcclxuICAgIH0sXHJcbiAgXSxcclxuICB3cml0ZUJDc0lubGluZTogZmFsc2UsXHJcbiAgc2hvd1dyaXRlQWxsQkNzQ21kOiBmYWxzZSxcclxuICB2aXNHcmFwaDogXCJGb3JjZSBEaXJlY3RlZCBHcmFwaFwiLFxyXG4gIHZpc1JlbGF0aW9uOiBcIlBhcmVudFwiLFxyXG4gIHZpc0Nsb3NlZDogXCJSZWFsXCIsXHJcbiAgdmlzQWxsOiBcIkFsbFwiLFxyXG4gIHdpa2lsaW5rSW5kZXg6IHRydWUsXHJcbiAgaW1wbGllZFJlbGF0aW9uczoge1xyXG4gICAgc2libGluZ0lkZW50aXR5OiBmYWxzZSxcclxuICAgIHNhbWVQYXJlbnRJc1NpYmxpbmc6IHRydWUsXHJcbiAgICBzaWJsaW5nc1NpYmxpbmdJc1NpYmxpbmc6IGZhbHNlLFxyXG4gICAgc2libGluZ3NQYXJlbnRJc1BhcmVudDogZmFsc2UsXHJcbiAgICBwYXJlbnRzU2libGluZ3NJc1BhcmVudHM6IGZhbHNlLFxyXG4gICAgcGFyZW50c1BhcmVudHNJc1BhcmVudDogZmFsc2UsXHJcbiAgICBjb3VzaW5zSXNTaWJsaW5nOiBmYWxzZSxcclxuICB9LFxyXG4gIHJlZnJlc2hPbk5vdGVTYXZlOiBmYWxzZSxcclxuICBzaG93VXBJbkp1Z2dsOiBmYWxzZVxyXG59O1xyXG4iLCAiaW1wb3J0IHsgZXJyb3IsIGluZm8gfSBmcm9tIFwibG9nbGV2ZWxcIjtcclxuaW1wb3J0IHsgSXRlbVZpZXcsIFRGaWxlLCBXb3Jrc3BhY2VMZWFmIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IERlYnVnZ2VyIH0gZnJvbSBcInNyYy9EZWJ1Z2dlclwiO1xyXG5pbXBvcnQgTWF0cml4IGZyb20gXCIuLi9Db21wb25lbnRzL01hdHJpeC5zdmVsdGVcIjtcclxuaW1wb3J0IHtcclxuICBBUlJPV19ESVJFQ1RJT05TLFxyXG4gIGJsYW5rUmVhbE5JbXBsaWVkLFxyXG4gIE1BVFJJWF9WSUVXLFxyXG4gIFRSQUlMX0lDT04sXHJcbn0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSB7XHJcbiAgRGlyZWN0aW9ucyxcclxuICBFZGdlQXR0cixcclxuICBpbnRlcm5hbExpbmtPYmosXHJcbiAgU3F1YXJlSXRlbSxcclxuICBTcXVhcmVQcm9wcyxcclxuICBVc2VySGllcixcclxufSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQgeyBzcGxpdEFuZFRyaW0gfSBmcm9tIFwiLi4vVXRpbHMvZ2VuZXJhbFV0aWxzXCI7XHJcbmltcG9ydCB7IGdldE9wcERpciwgZ2V0T3BwRmllbGRzIH0gZnJvbSBcIi4uL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXREVkFwaSwgZ2V0Q3VyckZpbGUsIGxpbmtDbGFzcyB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWF0cml4TmVpZ2hib3VycyhwbHVnaW46IEJDUGx1Z2luLCBjdXJyTm9kZTogc3RyaW5nKSB7XHJcbiAgY29uc3QgeyBjbG9zZWRHLCBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgdXNlckhpZXJzIH0gPSBzZXR0aW5ncztcclxuICBjb25zdCBuZWlnaGJvdXJzID0gYmxhbmtSZWFsTkltcGxpZWQoKTtcclxuICBpZiAoIWNsb3NlZEcpIHJldHVybiBuZWlnaGJvdXJzO1xyXG5cclxuICBjbG9zZWRHLmZvckVhY2hFZGdlKGN1cnJOb2RlLCAoaywgYSwgcywgdCkgPT4ge1xyXG4gICAgY29uc3QgeyBmaWVsZCwgZGlyLCBpbXBsaWVkIH0gPSBhIGFzIEVkZ2VBdHRyO1xyXG5cclxuICAgIGlmIChzID09PSBjdXJyTm9kZSkge1xyXG4gICAgICBuZWlnaGJvdXJzW2Rpcl0ucmVhbHMucHVzaCh7IHRvOiB0LCBmaWVsZCwgaW1wbGllZCB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5laWdoYm91cnNbZ2V0T3BwRGlyKGRpcildLmltcGxpZWRzLnB1c2goe1xyXG4gICAgICAgIHRvOiBzLFxyXG4gICAgICAgIGZpZWxkOiBnZXRPcHBGaWVsZHModXNlckhpZXJzLCBmaWVsZCwgZGlyKVswXSxcclxuICAgICAgICBpbXBsaWVkLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIG5laWdoYm91cnM7XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWF0cml4VmlldyBleHRlbmRzIEl0ZW1WaWV3IHtcclxuICBwbHVnaW46IEJDUGx1Z2luO1xyXG4gIHByaXZhdGUgdmlldzogTWF0cml4O1xyXG4gIGRiOiBEZWJ1Z2dlcjtcclxuXHJcbiAgY29uc3RydWN0b3IobGVhZjogV29ya3NwYWNlTGVhZiwgcGx1Z2luOiBCQ1BsdWdpbikge1xyXG4gICAgc3VwZXIobGVhZik7XHJcbiAgICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcclxuICAgIHRoaXMuZGIgPSBuZXcgRGVidWdnZXIocGx1Z2luKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHN1cGVyLm9ubG9hZCgpO1xyXG4gICAgY29uc3QgeyBwbHVnaW4gfSA9IHRoaXM7XHJcblxyXG4gICAgYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KCgpID0+IHtcclxuICAgICAgc2V0VGltZW91dChcclxuICAgICAgICBhc3luYyAoKSA9PiBhd2FpdCB0aGlzLmRyYXcoKSxcclxuICAgICAgICBhcHAucGx1Z2lucy5wbHVnaW5zLmRhdGF2aWV3XHJcbiAgICAgICAgICA/IGFwcC5wbHVnaW5zLnBsdWdpbnMuZGF0YXZpZXcuYXBpXHJcbiAgICAgICAgICAgID8gMVxyXG4gICAgICAgICAgICA6IHBsdWdpbi5zZXR0aW5ncy5kdldhaXRUaW1lXHJcbiAgICAgICAgICA6IDMwMDBcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Vmlld1R5cGUoKSB7XHJcbiAgICByZXR1cm4gTUFUUklYX1ZJRVc7XHJcbiAgfVxyXG4gIGdldERpc3BsYXlUZXh0KCkge1xyXG4gICAgcmV0dXJuIFwiQnJlYWRjcnVtYnMgTWF0cml4XCI7XHJcbiAgfVxyXG4gIGljb24gPSBUUkFJTF9JQ09OO1xyXG5cclxuICBhc3luYyBvbk9wZW4oKTogUHJvbWlzZTx2b2lkPiB7IH1cclxuXHJcbiAgb25DbG9zZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudmlldz8uJGRlc3Ryb3koKTtcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuICB9XHJcblxyXG4gIGdldEFsdChub2RlOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGNvbnN0IHsgcGx1Z2luIH0gPSB0aGlzO1xyXG4gICAgY29uc3QgeyBhbHRMaW5rRmllbGRzLCBzaG93QWxsQWxpYXNlcyB9ID0gcGx1Z2luLnNldHRpbmdzO1xyXG4gICAgaWYgKCFhbHRMaW5rRmllbGRzLmxlbmd0aCkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgLy8gZHYgRmlyc3RcclxuICAgIGNvbnN0IGR2ID0gZ2V0RFZBcGkocGx1Z2luKTtcclxuICAgIGlmIChkdikge1xyXG4gICAgICBjb25zdCBwYWdlID0gZHYucGFnZShub2RlKTtcclxuICAgICAgaWYgKCFwYWdlKSByZXR1cm4gbnVsbDtcclxuICAgICAgZm9yIChjb25zdCBhbHQgb2YgYWx0TGlua0ZpZWxkcykge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gcGFnZVthbHRdIGFzIHN0cmluZztcclxuXHJcbiAgICAgICAgY29uc3QgYXJyOiBzdHJpbmdbXSA9XHJcbiAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyBzcGxpdEFuZFRyaW0odmFsdWUpIDogdmFsdWU7XHJcbiAgICAgICAgaWYgKHZhbHVlKSByZXR1cm4gc2hvd0FsbEFsaWFzZXMgPyBhcnIuam9pbihcIiwgXCIpIDogYXJyWzBdO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBmaWxlID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3Qobm9kZSwgXCJcIik7XHJcbiAgICAgIGlmIChmaWxlKSB7XHJcbiAgICAgICAgY29uc3QgeyBmcm9udG1hdHRlciB9ID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0RmlsZUNhY2hlKGZpbGUpO1xyXG4gICAgICAgIGZvciAoY29uc3QgYWx0RmllbGQgb2YgYWx0TGlua0ZpZWxkcykge1xyXG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBmcm9udG1hdHRlcj8uW2FsdEZpZWxkXTtcclxuXHJcbiAgICAgICAgICBjb25zdCBhcnI6IHN0cmluZ1tdID1cclxuICAgICAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gc3BsaXRBbmRUcmltKHZhbHVlKSA6IHZhbHVlO1xyXG4gICAgICAgICAgaWYgKHZhbHVlKSByZXR1cm4gc2hvd0FsbEFsaWFzZXMgPyBhcnIuam9pbihcIiwgXCIpIDogYXJyWzBdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9JbnRlcm5hbExpbmtPYmogPSAoXHJcbiAgICB0bzogc3RyaW5nLFxyXG4gICAgcmVhbFEgPSB0cnVlLFxyXG4gICAgcGFyZW50OiBzdHJpbmcgfCBudWxsLFxyXG4gICAgaW1wbGllZD86IHN0cmluZ1xyXG4gICk6IGludGVybmFsTGlua09iaiA9PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0byxcclxuICAgICAgY2xzOiBsaW5rQ2xhc3ModG8sIHJlYWxRKSxcclxuICAgICAgYWx0OiB0aGlzLmdldEFsdCh0byksXHJcbiAgICAgIG9yZGVyOiB0aGlzLmdldE9yZGVyKHRvKSxcclxuICAgICAgcGFyZW50LFxyXG4gICAgICBpbXBsaWVkLFxyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICAvLyBBTkNIT1IgUmVtb3ZlIGR1cGxpY2F0ZSBpbXBsaWVkIGxpbmtzXHJcblxyXG4gIHJlbW92ZUR1cGxpY2F0ZUltcGxpZWQoXHJcbiAgICByZWFsczogaW50ZXJuYWxMaW5rT2JqW10sXHJcbiAgICBpbXBsaWVkczogaW50ZXJuYWxMaW5rT2JqW11cclxuICApOiBpbnRlcm5hbExpbmtPYmpbXSB7XHJcbiAgICBjb25zdCByZWFsVG9zID0gcmVhbHMubWFwKChyZWFsKSA9PiByZWFsLnRvKTtcclxuICAgIHJldHVybiBpbXBsaWVkcy5maWx0ZXIoKGltcGxpZWQpID0+ICFyZWFsVG9zLmluY2x1ZGVzKGltcGxpZWQudG8pKTtcclxuICB9XHJcblxyXG4gIGdldE9yZGVyID0gKG5vZGU6IHN0cmluZykgPT5cclxuICAgIE51bWJlci5wYXJzZUludCh0aGlzLnBsdWdpbi5tYWluRy5nZXROb2RlQXR0cmlidXRlKG5vZGUsIFwib3JkZXJcIikpO1xyXG5cclxuICBzb3J0SXRlbXNBbHBoYSA9IChhOiBpbnRlcm5hbExpbmtPYmosIGI6IGludGVybmFsTGlua09iaikgPT4ge1xyXG4gICAgY29uc3QgeyBzb3J0QnlOYW1lU2hvd0FsaWFzLCBhbHBoYVNvcnRBc2MgfSA9IHRoaXMucGx1Z2luLnNldHRpbmdzO1xyXG4gICAgY29uc3QgYVRvU29ydCA9IChzb3J0QnlOYW1lU2hvd0FsaWFzID8gYS50byA6IGEuYWx0ID8/IGEudG8pLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBjb25zdCBiVG9Tb3J0ID0gKHNvcnRCeU5hbWVTaG93QWxpYXMgPyBiLnRvIDogYi5hbHQgPz8gYi50bykudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICBjb25zdCBsZXNzID0gYWxwaGFTb3J0QXNjID8gLTEgOiAxO1xyXG4gICAgY29uc3QgbW9yZSA9IGFscGhhU29ydEFzYyA/IDEgOiAtMTtcclxuXHJcbiAgICByZXR1cm4gYVRvU29ydCA8IGJUb1NvcnQgPyBsZXNzIDogbW9yZTtcclxuICB9O1xyXG5cclxuICBnZXRIaWVyU3F1YXJlcyh1c2VySGllcnM6IFVzZXJIaWVyW10sIGN1cnJGaWxlOiBURmlsZSk6IFNxdWFyZVByb3BzW11bXSB7XHJcbiAgICBjb25zdCB7IHBsdWdpbiB9ID0gdGhpcztcclxuICAgIGNvbnN0IHsgbWFpbkcsIHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgICBjb25zdCB7IGVuYWJsZUFscGhhU29ydCwgc3F1YXJlRGlyZWN0aW9uc09yZGVyIH0gPSBzZXR0aW5ncztcclxuICAgIGlmICghbWFpbkcpIHJldHVybiBbXTtcclxuXHJcbiAgICBjb25zdCB7IGJhc2VuYW1lIH0gPSBjdXJyRmlsZTtcclxuICAgIGlmICghbWFpbkcuaGFzTm9kZShiYXNlbmFtZSkpIHJldHVybiBbXTtcclxuICAgIGNvbnN0IHJlYWxzbkltcGxpZWRzID0gZ2V0TWF0cml4TmVpZ2hib3VycyhwbHVnaW4sIGJhc2VuYW1lKTtcclxuXHJcbiAgICByZXR1cm4gdXNlckhpZXJzLm1hcCgoaGllcikgPT4ge1xyXG4gICAgICBjb25zdCBmaWx0ZXJlZFJlYWxOSW1wbGllZCA9IGJsYW5rUmVhbE5JbXBsaWVkKCkgYXMgdW5rbm93biBhcyB7XHJcbiAgICAgICAgW2RpciBpbiBEaXJlY3Rpb25zXToge1xyXG4gICAgICAgICAgcmVhbHM6IGludGVybmFsTGlua09ialtdO1xyXG4gICAgICAgICAgaW1wbGllZHM6IGludGVybmFsTGlua09ialtdO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBjb25zdCByZXN1bHRzRmlsdGVyID0gKFxyXG4gICAgICAgIGl0ZW06IFNxdWFyZUl0ZW0sXHJcbiAgICAgICAgZGlyOiBEaXJlY3Rpb25zLFxyXG4gICAgICAgIG9wcERpcjogRGlyZWN0aW9ucyxcclxuICAgICAgICBhcnJvdzogc3RyaW5nXHJcbiAgICAgICkgPT5cclxuICAgICAgICBoaWVyW2Rpcl0uaW5jbHVkZXMoaXRlbS5maWVsZCkgfHxcclxuICAgICAgICAoaXRlbS5maWVsZC5pbmNsdWRlcyhgPCR7YXJyb3d9PmApICYmXHJcbiAgICAgICAgICBoaWVyW29wcERpcl0uaW5jbHVkZXMoaXRlbS5maWVsZC5zcGxpdChcIiA8XCIpWzBdKSk7XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IGRpciBpbiByZWFsc25JbXBsaWVkcykge1xyXG4gICAgICAgIGNvbnN0IG9wcERpciA9IGdldE9wcERpcihkaXIgYXMgRGlyZWN0aW9ucyk7XHJcbiAgICAgICAgY29uc3QgYXJyb3cgPSBBUlJPV19ESVJFQ1RJT05TW2Rpcl07XHJcbiAgICAgICAgY29uc3QgeyByZWFscywgaW1wbGllZHMgfSA9IHJlYWxzbkltcGxpZWRzW2Rpcl07XHJcblxyXG4gICAgICAgIGZpbHRlcmVkUmVhbE5JbXBsaWVkW2Rpcl0ucmVhbHMgPSByZWFsc1xyXG4gICAgICAgICAgLmZpbHRlcigocmVhbCkgPT5cclxuICAgICAgICAgICAgcmVzdWx0c0ZpbHRlcihyZWFsLCBkaXIgYXMgRGlyZWN0aW9ucywgb3BwRGlyLCBhcnJvdylcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5tYXAoKGl0ZW0pID0+XHJcbiAgICAgICAgICAgIHRoaXMudG9JbnRlcm5hbExpbmtPYmooaXRlbS50bywgdHJ1ZSwgbnVsbCwgaXRlbS5pbXBsaWVkKVxyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgZmlsdGVyZWRSZWFsTkltcGxpZWRbZGlyXS5pbXBsaWVkcyA9IGltcGxpZWRzXHJcbiAgICAgICAgICAuZmlsdGVyKChpbXBsaWVkKSA9PlxyXG4gICAgICAgICAgICByZXN1bHRzRmlsdGVyKGltcGxpZWQsIGRpciBhcyBEaXJlY3Rpb25zLCBvcHBEaXIsIGFycm93KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLm1hcCgoaXRlbSkgPT5cclxuICAgICAgICAgICAgdGhpcy50b0ludGVybmFsTGlua09iaihpdGVtLnRvLCBmYWxzZSwgbnVsbCwgaXRlbS5pbXBsaWVkKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IHtcclxuICAgICAgICB1cDogeyByZWFsczogcnUsIGltcGxpZWRzOiBpdSB9LFxyXG4gICAgICAgIHNhbWU6IHsgcmVhbHM6IHJzLCBpbXBsaWVkczogaXMgfSxcclxuICAgICAgICBkb3duOiB7IHJlYWxzOiByZCwgaW1wbGllZHM6IGlkIH0sXHJcbiAgICAgICAgbmV4dDogeyByZWFsczogcm4sIGltcGxpZWRzOiBpTiB9LFxyXG4gICAgICAgIHByZXY6IHsgcmVhbHM6IHJwLCBpbXBsaWVkczogaXAgfSxcclxuICAgICAgfSA9IGZpbHRlcmVkUmVhbE5JbXBsaWVkO1xyXG5cclxuICAgICAgLy8gIVNFQ1RJT05cclxuXHJcbiAgICAgIFtpdSwgaXMsIGlkLCBpTiwgaXBdID0gW1xyXG4gICAgICAgIHRoaXMucmVtb3ZlRHVwbGljYXRlSW1wbGllZChydSwgaXUpLFxyXG4gICAgICAgIHRoaXMucmVtb3ZlRHVwbGljYXRlSW1wbGllZChycywgaXMpLFxyXG4gICAgICAgIHRoaXMucmVtb3ZlRHVwbGljYXRlSW1wbGllZChyZCwgaWQpLFxyXG4gICAgICAgIHRoaXMucmVtb3ZlRHVwbGljYXRlSW1wbGllZChybiwgaU4pLFxyXG4gICAgICAgIHRoaXMucmVtb3ZlRHVwbGljYXRlSW1wbGllZChycCwgaXApLFxyXG4gICAgICBdO1xyXG5cclxuICAgICAgY29uc3QgaVNhbWVOb0R1cDogaW50ZXJuYWxMaW5rT2JqW10gPSBbXTtcclxuICAgICAgaXMuZm9yRWFjaCgoaW1wU2liKSA9PiB7XHJcbiAgICAgICAgaWYgKGlTYW1lTm9EdXAuZXZlcnkoKG5vRHVwKSA9PiBub0R1cC50byAhPT0gaW1wU2liLnRvKSkge1xyXG4gICAgICAgICAgaVNhbWVOb0R1cC5wdXNoKGltcFNpYik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaXMgPSBpU2FtZU5vRHVwO1xyXG5cclxuICAgICAgY29uc3QgZ2V0RmllbGRJbkhpZXIgPSAoZGlyOiBEaXJlY3Rpb25zKSA9PlxyXG4gICAgICAgIGhpZXJbZGlyXVswXVxyXG4gICAgICAgICAgPyBoaWVyW2Rpcl0uam9pbihcIiwgXCIpXHJcbiAgICAgICAgICA6IGAke2hpZXJbZ2V0T3BwRGlyKGRpcildLmpvaW4oXCIsXCIpfSR7QVJST1dfRElSRUNUSU9OU1tkaXJdfWA7XHJcblxyXG4gICAgICBjb25zdCBzcXVhcmVzID0gW3J1LCBycywgcmQsIHJuLCBycCwgaXUsIGlzLCBpZCwgaU4sIGlwXTtcclxuXHJcbiAgICAgIGlmIChlbmFibGVBbHBoYVNvcnQpXHJcbiAgICAgICAgc3F1YXJlcy5mb3JFYWNoKChzcSkgPT4gc3Euc29ydCh0aGlzLnNvcnRJdGVtc0FscGhhKSk7XHJcblxyXG4gICAgICBzcXVhcmVzLmZvckVhY2goKHNxKSA9PiBzcS5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcikpO1xyXG5cclxuICAgICAgaW5mbyhbXHJcbiAgICAgICAgeyBydSB9LFxyXG4gICAgICAgIHsgcnMgfSxcclxuICAgICAgICB7IHJkIH0sXHJcbiAgICAgICAgeyBybiB9LFxyXG4gICAgICAgIHsgcnAgfSxcclxuICAgICAgICB7IGl1IH0sXHJcbiAgICAgICAgeyBpcyB9LFxyXG4gICAgICAgIHsgaWQgfSxcclxuICAgICAgICB7IGlOIH0sXHJcbiAgICAgICAgeyBpcCB9LFxyXG4gICAgICBdKTtcclxuXHJcbiAgICAgIGNvbnN0IHNxdWFyZSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICByZWFsSXRlbXM6IHJ1LFxyXG4gICAgICAgICAgaW1wbGllZEl0ZW1zOiBpdSxcclxuICAgICAgICAgIGZpZWxkOiBnZXRGaWVsZEluSGllcihcInVwXCIpLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHJlYWxJdGVtczogcnMsXHJcbiAgICAgICAgICBpbXBsaWVkSXRlbXM6IGlzLFxyXG4gICAgICAgICAgZmllbGQ6IGdldEZpZWxkSW5IaWVyKFwic2FtZVwiKSxcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICB7XHJcbiAgICAgICAgICByZWFsSXRlbXM6IHJkLFxyXG4gICAgICAgICAgaW1wbGllZEl0ZW1zOiBpZCxcclxuICAgICAgICAgIGZpZWxkOiBnZXRGaWVsZEluSGllcihcImRvd25cIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICByZWFsSXRlbXM6IHJuLFxyXG4gICAgICAgICAgaW1wbGllZEl0ZW1zOiBpTixcclxuICAgICAgICAgIGZpZWxkOiBnZXRGaWVsZEluSGllcihcIm5leHRcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICByZWFsSXRlbXM6IHJwLFxyXG4gICAgICAgICAgaW1wbGllZEl0ZW1zOiBpcCxcclxuICAgICAgICAgIGZpZWxkOiBnZXRGaWVsZEluSGllcihcInByZXZcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgXTtcclxuXHJcbiAgICAgIHJldHVybiBzcXVhcmVEaXJlY3Rpb25zT3JkZXIubWFwKChvcmRlcikgPT4gc3F1YXJlW29yZGVyXSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGRyYXcoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCB7IGNvbnRlbnRFbCwgZGIsIHBsdWdpbiB9ID0gdGhpcztcclxuICAgICAgZGIuc3RhcnQyRyhcIkRyYXcgTWF0cml4IFZpZXdcIik7XHJcbiAgICAgIGNvbnRlbnRFbC5lbXB0eSgpO1xyXG5cclxuICAgICAgY29uc3QgeyB1c2VySGllcnMgfSA9IHBsdWdpbi5zZXR0aW5ncztcclxuXHJcbiAgICAgIGNvbnN0IGN1cnJGaWxlID0gZ2V0Q3VyckZpbGUoKTtcclxuICAgICAgaWYgKCFjdXJyRmlsZSkgcmV0dXJuO1xyXG5cclxuICAgICAgY29uc3QgaGllclNxdWFyZXMgPSB0aGlzLmdldEhpZXJTcXVhcmVzKHVzZXJIaWVycywgY3VyckZpbGUpLmZpbHRlcihcclxuICAgICAgICAoc3F1YXJlQXJyKSA9PlxyXG4gICAgICAgICAgc3F1YXJlQXJyLnNvbWUoXHJcbiAgICAgICAgICAgIChzcSkgPT4gc3EucmVhbEl0ZW1zLmxlbmd0aCArIHNxLmltcGxpZWRJdGVtcy5sZW5ndGggPiAwXHJcbiAgICAgICAgICApXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBuZXcgTWF0cml4KHtcclxuICAgICAgICB0YXJnZXQ6IGNvbnRlbnRFbCxcclxuICAgICAgICBwcm9wczogeyBoaWVyU3F1YXJlcywgbWF0cml4VmlldzogdGhpcywgY3VyckZpbGUgfSxcclxuICAgICAgfSlcclxuXHJcblxyXG4gICAgICBkYi5lbmQyRygpO1xyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgIGVycm9yKGVycik7XHJcbiAgICAgIHRoaXMuZGIuZW5kMkcoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwgImltcG9ydCB7IGRlYnVnLCBpbmZvLCBsZXZlbHMgfSBmcm9tIFwibG9nbGV2ZWxcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcInNyYy9tYWluXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRGVidWdnZXIge1xyXG4gIHBsdWdpbjogQkNQbHVnaW47XHJcbiAgY29uc3RydWN0b3IocGx1Z2luOiBCQ1BsdWdpbikge1xyXG4gICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XHJcbiAgfVxyXG5cclxuICBkZWJ1Z0xlc3NUaGFuID0gKGxldmVsOiBudW1iZXIpID0+XHJcbiAgICBsZXZlbHNbdGhpcy5wbHVnaW4uc2V0dGluZ3MuZGVidWdNb2RlXSA8IGxldmVsO1xyXG5cclxuICBzdGFydDJHKGdyb3VwOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmRlYnVnTGVzc1RoYW4oMykpIGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQoZ3JvdXApO1xyXG4gIH1cclxuICBlbmQyRyguLi5tc2dzOiBhbnlbXSkge1xyXG4gICAgaWYgKHRoaXMuZGVidWdMZXNzVGhhbigzKSkge1xyXG4gICAgICBpZiAobXNncy5sZW5ndGgpIGluZm8oLi4ubXNncyk7XHJcbiAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgc3RhcnQxRyhncm91cDogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5kZWJ1Z0xlc3NUaGFuKDIpKSBjb25zb2xlLmdyb3VwQ29sbGFwc2VkKGdyb3VwKTtcclxuICB9XHJcbiAgZW5kMUcoLi4ubXNnczogYW55W10pIHtcclxuICAgIGlmICh0aGlzLmRlYnVnTGVzc1RoYW4oMikpIHtcclxuICAgICAgaWYgKG1zZ3MubGVuZ3RoKSBkZWJ1ZyguLi5tc2dzKTtcclxuICAgICAgY29uc29sZS5ncm91cEVuZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhcnRHcyguLi5ncm91cHM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLnN0YXJ0MkcoZ3JvdXBzWzBdKTtcclxuICAgIGlmIChncm91cHNbMV0pIHRoaXMuc3RhcnQxRyhncm91cHNbMV0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW5kIGEgZGVidWcgYW5kIGluZm8gZ3JvdXAsIGxvZ2dpbmcgYG1zZ3NgIGluIGBlbmREZWJ1Z0dyb3VwYFxyXG4gICAqIEBwYXJhbSAgezF8Mn0gY291bnQgVGhlIG51bWJlciBvZiBncm91cHMgdG8gZW5kLiBgMWAgZW5kcyBUcmFjZSwgMiBlbmRzIGJvdGhcclxuICAgKiBAcGFyYW0gIHthbnlbXX0gLi4ubXNnc1xyXG4gICAqL1xyXG4gIGVuZEdzKGNvdW50OiAxIHwgMiwgLi4ubXNnczogYW55W10pIHtcclxuICAgIGlmIChjb3VudCA9PT0gMSkgdGhpcy5lbmQyRyguLi5tc2dzKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmVuZDFHKCk7XHJcbiAgICAgIHRoaXMuZW5kMkcoLi4ubXNncyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsICJmdW5jdGlvbiBub29wKCkgeyB9XG5jb25zdCBpZGVudGl0eSA9IHggPT4geDtcbmZ1bmN0aW9uIGFzc2lnbih0YXIsIHNyYykge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBmb3IgKGNvbnN0IGsgaW4gc3JjKVxuICAgICAgICB0YXJba10gPSBzcmNba107XG4gICAgcmV0dXJuIHRhcjtcbn1cbmZ1bmN0aW9uIGlzX3Byb21pc2UodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJztcbn1cbmZ1bmN0aW9uIGFkZF9sb2NhdGlvbihlbGVtZW50LCBmaWxlLCBsaW5lLCBjb2x1bW4sIGNoYXIpIHtcbiAgICBlbGVtZW50Ll9fc3ZlbHRlX21ldGEgPSB7XG4gICAgICAgIGxvYzogeyBmaWxlLCBsaW5lLCBjb2x1bW4sIGNoYXIgfVxuICAgIH07XG59XG5mdW5jdGlvbiBydW4oZm4pIHtcbiAgICByZXR1cm4gZm4oKTtcbn1cbmZ1bmN0aW9uIGJsYW5rX29iamVjdCgpIHtcbiAgICByZXR1cm4gT2JqZWN0LmNyZWF0ZShudWxsKTtcbn1cbmZ1bmN0aW9uIHJ1bl9hbGwoZm5zKSB7XG4gICAgZm5zLmZvckVhY2gocnVuKTtcbn1cbmZ1bmN0aW9uIGlzX2Z1bmN0aW9uKHRoaW5nKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGluZyA9PT0gJ2Z1bmN0aW9uJztcbn1cbmZ1bmN0aW9uIHNhZmVfbm90X2VxdWFsKGEsIGIpIHtcbiAgICByZXR1cm4gYSAhPSBhID8gYiA9PSBiIDogYSAhPT0gYiB8fCAoKGEgJiYgdHlwZW9mIGEgPT09ICdvYmplY3QnKSB8fCB0eXBlb2YgYSA9PT0gJ2Z1bmN0aW9uJyk7XG59XG5sZXQgc3JjX3VybF9lcXVhbF9hbmNob3I7XG5mdW5jdGlvbiBzcmNfdXJsX2VxdWFsKGVsZW1lbnRfc3JjLCB1cmwpIHtcbiAgICBpZiAoIXNyY191cmxfZXF1YWxfYW5jaG9yKSB7XG4gICAgICAgIHNyY191cmxfZXF1YWxfYW5jaG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIH1cbiAgICBzcmNfdXJsX2VxdWFsX2FuY2hvci5ocmVmID0gdXJsO1xuICAgIHJldHVybiBlbGVtZW50X3NyYyA9PT0gc3JjX3VybF9lcXVhbF9hbmNob3IuaHJlZjtcbn1cbmZ1bmN0aW9uIG5vdF9lcXVhbChhLCBiKSB7XG4gICAgcmV0dXJuIGEgIT0gYSA/IGIgPT0gYiA6IGEgIT09IGI7XG59XG5mdW5jdGlvbiBpc19lbXB0eShvYmopIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5sZW5ndGggPT09IDA7XG59XG5mdW5jdGlvbiB2YWxpZGF0ZV9zdG9yZShzdG9yZSwgbmFtZSkge1xuICAgIGlmIChzdG9yZSAhPSBudWxsICYmIHR5cGVvZiBzdG9yZS5zdWJzY3JpYmUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHtuYW1lfScgaXMgbm90IGEgc3RvcmUgd2l0aCBhICdzdWJzY3JpYmUnIG1ldGhvZGApO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHN1YnNjcmliZShzdG9yZSwgLi4uY2FsbGJhY2tzKSB7XG4gICAgaWYgKHN0b3JlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG5vb3A7XG4gICAgfVxuICAgIGNvbnN0IHVuc3ViID0gc3RvcmUuc3Vic2NyaWJlKC4uLmNhbGxiYWNrcyk7XG4gICAgcmV0dXJuIHVuc3ViLnVuc3Vic2NyaWJlID8gKCkgPT4gdW5zdWIudW5zdWJzY3JpYmUoKSA6IHVuc3ViO1xufVxuZnVuY3Rpb24gZ2V0X3N0b3JlX3ZhbHVlKHN0b3JlKSB7XG4gICAgbGV0IHZhbHVlO1xuICAgIHN1YnNjcmliZShzdG9yZSwgXyA9PiB2YWx1ZSA9IF8pKCk7XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuZnVuY3Rpb24gY29tcG9uZW50X3N1YnNjcmliZShjb21wb25lbnQsIHN0b3JlLCBjYWxsYmFjaykge1xuICAgIGNvbXBvbmVudC4kJC5vbl9kZXN0cm95LnB1c2goc3Vic2NyaWJlKHN0b3JlLCBjYWxsYmFjaykpO1xufVxuZnVuY3Rpb24gY3JlYXRlX3Nsb3QoZGVmaW5pdGlvbiwgY3R4LCAkJHNjb3BlLCBmbikge1xuICAgIGlmIChkZWZpbml0aW9uKSB7XG4gICAgICAgIGNvbnN0IHNsb3RfY3R4ID0gZ2V0X3Nsb3RfY29udGV4dChkZWZpbml0aW9uLCBjdHgsICQkc2NvcGUsIGZuKTtcbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb25bMF0oc2xvdF9jdHgpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGdldF9zbG90X2NvbnRleHQoZGVmaW5pdGlvbiwgY3R4LCAkJHNjb3BlLCBmbikge1xuICAgIHJldHVybiBkZWZpbml0aW9uWzFdICYmIGZuXG4gICAgICAgID8gYXNzaWduKCQkc2NvcGUuY3R4LnNsaWNlKCksIGRlZmluaXRpb25bMV0oZm4oY3R4KSkpXG4gICAgICAgIDogJCRzY29wZS5jdHg7XG59XG5mdW5jdGlvbiBnZXRfc2xvdF9jaGFuZ2VzKGRlZmluaXRpb24sICQkc2NvcGUsIGRpcnR5LCBmbikge1xuICAgIGlmIChkZWZpbml0aW9uWzJdICYmIGZuKSB7XG4gICAgICAgIGNvbnN0IGxldHMgPSBkZWZpbml0aW9uWzJdKGZuKGRpcnR5KSk7XG4gICAgICAgIGlmICgkJHNjb3BlLmRpcnR5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBsZXRzO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbGV0cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGNvbnN0IG1lcmdlZCA9IFtdO1xuICAgICAgICAgICAgY29uc3QgbGVuID0gTWF0aC5tYXgoJCRzY29wZS5kaXJ0eS5sZW5ndGgsIGxldHMubGVuZ3RoKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpICs9IDEpIHtcbiAgICAgICAgICAgICAgICBtZXJnZWRbaV0gPSAkJHNjb3BlLmRpcnR5W2ldIHwgbGV0c1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBtZXJnZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICQkc2NvcGUuZGlydHkgfCBsZXRzO1xuICAgIH1cbiAgICByZXR1cm4gJCRzY29wZS5kaXJ0eTtcbn1cbmZ1bmN0aW9uIHVwZGF0ZV9zbG90X2Jhc2Uoc2xvdCwgc2xvdF9kZWZpbml0aW9uLCBjdHgsICQkc2NvcGUsIHNsb3RfY2hhbmdlcywgZ2V0X3Nsb3RfY29udGV4dF9mbikge1xuICAgIGlmIChzbG90X2NoYW5nZXMpIHtcbiAgICAgICAgY29uc3Qgc2xvdF9jb250ZXh0ID0gZ2V0X3Nsb3RfY29udGV4dChzbG90X2RlZmluaXRpb24sIGN0eCwgJCRzY29wZSwgZ2V0X3Nsb3RfY29udGV4dF9mbik7XG4gICAgICAgIHNsb3QucChzbG90X2NvbnRleHQsIHNsb3RfY2hhbmdlcyk7XG4gICAgfVxufVxuZnVuY3Rpb24gdXBkYXRlX3Nsb3Qoc2xvdCwgc2xvdF9kZWZpbml0aW9uLCBjdHgsICQkc2NvcGUsIGRpcnR5LCBnZXRfc2xvdF9jaGFuZ2VzX2ZuLCBnZXRfc2xvdF9jb250ZXh0X2ZuKSB7XG4gICAgY29uc3Qgc2xvdF9jaGFuZ2VzID0gZ2V0X3Nsb3RfY2hhbmdlcyhzbG90X2RlZmluaXRpb24sICQkc2NvcGUsIGRpcnR5LCBnZXRfc2xvdF9jaGFuZ2VzX2ZuKTtcbiAgICB1cGRhdGVfc2xvdF9iYXNlKHNsb3QsIHNsb3RfZGVmaW5pdGlvbiwgY3R4LCAkJHNjb3BlLCBzbG90X2NoYW5nZXMsIGdldF9zbG90X2NvbnRleHRfZm4pO1xufVxuZnVuY3Rpb24gZ2V0X2FsbF9kaXJ0eV9mcm9tX3Njb3BlKCQkc2NvcGUpIHtcbiAgICBpZiAoJCRzY29wZS5jdHgubGVuZ3RoID4gMzIpIHtcbiAgICAgICAgY29uc3QgZGlydHkgPSBbXTtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gJCRzY29wZS5jdHgubGVuZ3RoIC8gMzI7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGRpcnR5W2ldID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRpcnR5O1xuICAgIH1cbiAgICByZXR1cm4gLTE7XG59XG5mdW5jdGlvbiBleGNsdWRlX2ludGVybmFsX3Byb3BzKHByb3BzKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBrIGluIHByb3BzKVxuICAgICAgICBpZiAoa1swXSAhPT0gJyQnKVxuICAgICAgICAgICAgcmVzdWx0W2tdID0gcHJvcHNba107XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIGNvbXB1dGVfcmVzdF9wcm9wcyhwcm9wcywga2V5cykge1xuICAgIGNvbnN0IHJlc3QgPSB7fTtcbiAgICBrZXlzID0gbmV3IFNldChrZXlzKTtcbiAgICBmb3IgKGNvbnN0IGsgaW4gcHJvcHMpXG4gICAgICAgIGlmICgha2V5cy5oYXMoaykgJiYga1swXSAhPT0gJyQnKVxuICAgICAgICAgICAgcmVzdFtrXSA9IHByb3BzW2tdO1xuICAgIHJldHVybiByZXN0O1xufVxuZnVuY3Rpb24gY29tcHV0ZV9zbG90cyhzbG90cykge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IGluIHNsb3RzKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIG9uY2UoZm4pIHtcbiAgICBsZXQgcmFuID0gZmFsc2U7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgIGlmIChyYW4pXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHJhbiA9IHRydWU7XG4gICAgICAgIGZuLmNhbGwodGhpcywgLi4uYXJncyk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIG51bGxfdG9fZW1wdHkodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPT0gbnVsbCA/ICcnIDogdmFsdWU7XG59XG5mdW5jdGlvbiBzZXRfc3RvcmVfdmFsdWUoc3RvcmUsIHJldCwgdmFsdWUpIHtcbiAgICBzdG9yZS5zZXQodmFsdWUpO1xuICAgIHJldHVybiByZXQ7XG59XG5jb25zdCBoYXNfcHJvcCA9IChvYmosIHByb3ApID0+IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApO1xuZnVuY3Rpb24gYWN0aW9uX2Rlc3Ryb3llcihhY3Rpb25fcmVzdWx0KSB7XG4gICAgcmV0dXJuIGFjdGlvbl9yZXN1bHQgJiYgaXNfZnVuY3Rpb24oYWN0aW9uX3Jlc3VsdC5kZXN0cm95KSA/IGFjdGlvbl9yZXN1bHQuZGVzdHJveSA6IG5vb3A7XG59XG5cbmNvbnN0IGlzX2NsaWVudCA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnO1xubGV0IG5vdyA9IGlzX2NsaWVudFxuICAgID8gKCkgPT4gd2luZG93LnBlcmZvcm1hbmNlLm5vdygpXG4gICAgOiAoKSA9PiBEYXRlLm5vdygpO1xubGV0IHJhZiA9IGlzX2NsaWVudCA/IGNiID0+IHJlcXVlc3RBbmltYXRpb25GcmFtZShjYikgOiBub29wO1xuLy8gdXNlZCBpbnRlcm5hbGx5IGZvciB0ZXN0aW5nXG5mdW5jdGlvbiBzZXRfbm93KGZuKSB7XG4gICAgbm93ID0gZm47XG59XG5mdW5jdGlvbiBzZXRfcmFmKGZuKSB7XG4gICAgcmFmID0gZm47XG59XG5cbmNvbnN0IHRhc2tzID0gbmV3IFNldCgpO1xuZnVuY3Rpb24gcnVuX3Rhc2tzKG5vdykge1xuICAgIHRhc2tzLmZvckVhY2godGFzayA9PiB7XG4gICAgICAgIGlmICghdGFzay5jKG5vdykpIHtcbiAgICAgICAgICAgIHRhc2tzLmRlbGV0ZSh0YXNrKTtcbiAgICAgICAgICAgIHRhc2suZigpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHRhc2tzLnNpemUgIT09IDApXG4gICAgICAgIHJhZihydW5fdGFza3MpO1xufVxuLyoqXG4gKiBGb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5IVxuICovXG5mdW5jdGlvbiBjbGVhcl9sb29wcygpIHtcbiAgICB0YXNrcy5jbGVhcigpO1xufVxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IHRhc2sgdGhhdCBydW5zIG9uIGVhY2ggcmFmIGZyYW1lXG4gKiB1bnRpbCBpdCByZXR1cm5zIGEgZmFsc3kgdmFsdWUgb3IgaXMgYWJvcnRlZFxuICovXG5mdW5jdGlvbiBsb29wKGNhbGxiYWNrKSB7XG4gICAgbGV0IHRhc2s7XG4gICAgaWYgKHRhc2tzLnNpemUgPT09IDApXG4gICAgICAgIHJhZihydW5fdGFza3MpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHByb21pc2U6IG5ldyBQcm9taXNlKGZ1bGZpbGwgPT4ge1xuICAgICAgICAgICAgdGFza3MuYWRkKHRhc2sgPSB7IGM6IGNhbGxiYWNrLCBmOiBmdWxmaWxsIH0pO1xuICAgICAgICB9KSxcbiAgICAgICAgYWJvcnQoKSB7XG4gICAgICAgICAgICB0YXNrcy5kZWxldGUodGFzayk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG4vLyBUcmFjayB3aGljaCBub2RlcyBhcmUgY2xhaW1lZCBkdXJpbmcgaHlkcmF0aW9uLiBVbmNsYWltZWQgbm9kZXMgY2FuIHRoZW4gYmUgcmVtb3ZlZCBmcm9tIHRoZSBET01cbi8vIGF0IHRoZSBlbmQgb2YgaHlkcmF0aW9uIHdpdGhvdXQgdG91Y2hpbmcgdGhlIHJlbWFpbmluZyBub2Rlcy5cbmxldCBpc19oeWRyYXRpbmcgPSBmYWxzZTtcbmZ1bmN0aW9uIHN0YXJ0X2h5ZHJhdGluZygpIHtcbiAgICBpc19oeWRyYXRpbmcgPSB0cnVlO1xufVxuZnVuY3Rpb24gZW5kX2h5ZHJhdGluZygpIHtcbiAgICBpc19oeWRyYXRpbmcgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIHVwcGVyX2JvdW5kKGxvdywgaGlnaCwga2V5LCB2YWx1ZSkge1xuICAgIC8vIFJldHVybiBmaXJzdCBpbmRleCBvZiB2YWx1ZSBsYXJnZXIgdGhhbiBpbnB1dCB2YWx1ZSBpbiB0aGUgcmFuZ2UgW2xvdywgaGlnaClcbiAgICB3aGlsZSAobG93IDwgaGlnaCkge1xuICAgICAgICBjb25zdCBtaWQgPSBsb3cgKyAoKGhpZ2ggLSBsb3cpID4+IDEpO1xuICAgICAgICBpZiAoa2V5KG1pZCkgPD0gdmFsdWUpIHtcbiAgICAgICAgICAgIGxvdyA9IG1pZCArIDE7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBoaWdoID0gbWlkO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsb3c7XG59XG5mdW5jdGlvbiBpbml0X2h5ZHJhdGUodGFyZ2V0KSB7XG4gICAgaWYgKHRhcmdldC5oeWRyYXRlX2luaXQpXG4gICAgICAgIHJldHVybjtcbiAgICB0YXJnZXQuaHlkcmF0ZV9pbml0ID0gdHJ1ZTtcbiAgICAvLyBXZSBrbm93IHRoYXQgYWxsIGNoaWxkcmVuIGhhdmUgY2xhaW1fb3JkZXIgdmFsdWVzIHNpbmNlIHRoZSB1bmNsYWltZWQgaGF2ZSBiZWVuIGRldGFjaGVkIGlmIHRhcmdldCBpcyBub3QgPGhlYWQ+XG4gICAgbGV0IGNoaWxkcmVuID0gdGFyZ2V0LmNoaWxkTm9kZXM7XG4gICAgLy8gSWYgdGFyZ2V0IGlzIDxoZWFkPiwgdGhlcmUgbWF5IGJlIGNoaWxkcmVuIHdpdGhvdXQgY2xhaW1fb3JkZXJcbiAgICBpZiAodGFyZ2V0Lm5vZGVOYW1lID09PSAnSEVBRCcpIHtcbiAgICAgICAgY29uc3QgbXlDaGlsZHJlbiA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gY2hpbGRyZW5baV07XG4gICAgICAgICAgICBpZiAobm9kZS5jbGFpbV9vcmRlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgbXlDaGlsZHJlbi5wdXNoKG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNoaWxkcmVuID0gbXlDaGlsZHJlbjtcbiAgICB9XG4gICAgLypcbiAgICAqIFJlb3JkZXIgY2xhaW1lZCBjaGlsZHJlbiBvcHRpbWFsbHkuXG4gICAgKiBXZSBjYW4gcmVvcmRlciBjbGFpbWVkIGNoaWxkcmVuIG9wdGltYWxseSBieSBmaW5kaW5nIHRoZSBsb25nZXN0IHN1YnNlcXVlbmNlIG9mXG4gICAgKiBub2RlcyB0aGF0IGFyZSBhbHJlYWR5IGNsYWltZWQgaW4gb3JkZXIgYW5kIG9ubHkgbW92aW5nIHRoZSByZXN0LiBUaGUgbG9uZ2VzdFxuICAgICogc3Vic2VxdWVuY2Ugc3Vic2VxdWVuY2Ugb2Ygbm9kZXMgdGhhdCBhcmUgY2xhaW1lZCBpbiBvcmRlciBjYW4gYmUgZm91bmQgYnlcbiAgICAqIGNvbXB1dGluZyB0aGUgbG9uZ2VzdCBpbmNyZWFzaW5nIHN1YnNlcXVlbmNlIG9mIC5jbGFpbV9vcmRlciB2YWx1ZXMuXG4gICAgKlxuICAgICogVGhpcyBhbGdvcml0aG0gaXMgb3B0aW1hbCBpbiBnZW5lcmF0aW5nIHRoZSBsZWFzdCBhbW91bnQgb2YgcmVvcmRlciBvcGVyYXRpb25zXG4gICAgKiBwb3NzaWJsZS5cbiAgICAqXG4gICAgKiBQcm9vZjpcbiAgICAqIFdlIGtub3cgdGhhdCwgZ2l2ZW4gYSBzZXQgb2YgcmVvcmRlcmluZyBvcGVyYXRpb25zLCB0aGUgbm9kZXMgdGhhdCBkbyBub3QgbW92ZVxuICAgICogYWx3YXlzIGZvcm0gYW4gaW5jcmVhc2luZyBzdWJzZXF1ZW5jZSwgc2luY2UgdGhleSBkbyBub3QgbW92ZSBhbW9uZyBlYWNoIG90aGVyXG4gICAgKiBtZWFuaW5nIHRoYXQgdGhleSBtdXN0IGJlIGFscmVhZHkgb3JkZXJlZCBhbW9uZyBlYWNoIG90aGVyLiBUaHVzLCB0aGUgbWF4aW1hbFxuICAgICogc2V0IG9mIG5vZGVzIHRoYXQgZG8gbm90IG1vdmUgZm9ybSBhIGxvbmdlc3QgaW5jcmVhc2luZyBzdWJzZXF1ZW5jZS5cbiAgICAqL1xuICAgIC8vIENvbXB1dGUgbG9uZ2VzdCBpbmNyZWFzaW5nIHN1YnNlcXVlbmNlXG4gICAgLy8gbTogc3Vic2VxdWVuY2UgbGVuZ3RoIGogPT4gaW5kZXggayBvZiBzbWFsbGVzdCB2YWx1ZSB0aGF0IGVuZHMgYW4gaW5jcmVhc2luZyBzdWJzZXF1ZW5jZSBvZiBsZW5ndGggalxuICAgIGNvbnN0IG0gPSBuZXcgSW50MzJBcnJheShjaGlsZHJlbi5sZW5ndGggKyAxKTtcbiAgICAvLyBQcmVkZWNlc3NvciBpbmRpY2VzICsgMVxuICAgIGNvbnN0IHAgPSBuZXcgSW50MzJBcnJheShjaGlsZHJlbi5sZW5ndGgpO1xuICAgIG1bMF0gPSAtMTtcbiAgICBsZXQgbG9uZ2VzdCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gY2hpbGRyZW5baV0uY2xhaW1fb3JkZXI7XG4gICAgICAgIC8vIEZpbmQgdGhlIGxhcmdlc3Qgc3Vic2VxdWVuY2UgbGVuZ3RoIHN1Y2ggdGhhdCBpdCBlbmRzIGluIGEgdmFsdWUgbGVzcyB0aGFuIG91ciBjdXJyZW50IHZhbHVlXG4gICAgICAgIC8vIHVwcGVyX2JvdW5kIHJldHVybnMgZmlyc3QgZ3JlYXRlciB2YWx1ZSwgc28gd2Ugc3VidHJhY3Qgb25lXG4gICAgICAgIC8vIHdpdGggZmFzdCBwYXRoIGZvciB3aGVuIHdlIGFyZSBvbiB0aGUgY3VycmVudCBsb25nZXN0IHN1YnNlcXVlbmNlXG4gICAgICAgIGNvbnN0IHNlcUxlbiA9ICgobG9uZ2VzdCA+IDAgJiYgY2hpbGRyZW5bbVtsb25nZXN0XV0uY2xhaW1fb3JkZXIgPD0gY3VycmVudCkgPyBsb25nZXN0ICsgMSA6IHVwcGVyX2JvdW5kKDEsIGxvbmdlc3QsIGlkeCA9PiBjaGlsZHJlblttW2lkeF1dLmNsYWltX29yZGVyLCBjdXJyZW50KSkgLSAxO1xuICAgICAgICBwW2ldID0gbVtzZXFMZW5dICsgMTtcbiAgICAgICAgY29uc3QgbmV3TGVuID0gc2VxTGVuICsgMTtcbiAgICAgICAgLy8gV2UgY2FuIGd1YXJhbnRlZSB0aGF0IGN1cnJlbnQgaXMgdGhlIHNtYWxsZXN0IHZhbHVlLiBPdGhlcndpc2UsIHdlIHdvdWxkIGhhdmUgZ2VuZXJhdGVkIGEgbG9uZ2VyIHNlcXVlbmNlLlxuICAgICAgICBtW25ld0xlbl0gPSBpO1xuICAgICAgICBsb25nZXN0ID0gTWF0aC5tYXgobmV3TGVuLCBsb25nZXN0KTtcbiAgICB9XG4gICAgLy8gVGhlIGxvbmdlc3QgaW5jcmVhc2luZyBzdWJzZXF1ZW5jZSBvZiBub2RlcyAoaW5pdGlhbGx5IHJldmVyc2VkKVxuICAgIGNvbnN0IGxpcyA9IFtdO1xuICAgIC8vIFRoZSByZXN0IG9mIHRoZSBub2Rlcywgbm9kZXMgdGhhdCB3aWxsIGJlIG1vdmVkXG4gICAgY29uc3QgdG9Nb3ZlID0gW107XG4gICAgbGV0IGxhc3QgPSBjaGlsZHJlbi5sZW5ndGggLSAxO1xuICAgIGZvciAobGV0IGN1ciA9IG1bbG9uZ2VzdF0gKyAxOyBjdXIgIT0gMDsgY3VyID0gcFtjdXIgLSAxXSkge1xuICAgICAgICBsaXMucHVzaChjaGlsZHJlbltjdXIgLSAxXSk7XG4gICAgICAgIGZvciAoOyBsYXN0ID49IGN1cjsgbGFzdC0tKSB7XG4gICAgICAgICAgICB0b01vdmUucHVzaChjaGlsZHJlbltsYXN0XSk7XG4gICAgICAgIH1cbiAgICAgICAgbGFzdC0tO1xuICAgIH1cbiAgICBmb3IgKDsgbGFzdCA+PSAwOyBsYXN0LS0pIHtcbiAgICAgICAgdG9Nb3ZlLnB1c2goY2hpbGRyZW5bbGFzdF0pO1xuICAgIH1cbiAgICBsaXMucmV2ZXJzZSgpO1xuICAgIC8vIFdlIHNvcnQgdGhlIG5vZGVzIGJlaW5nIG1vdmVkIHRvIGd1YXJhbnRlZSB0aGF0IHRoZWlyIGluc2VydGlvbiBvcmRlciBtYXRjaGVzIHRoZSBjbGFpbSBvcmRlclxuICAgIHRvTW92ZS5zb3J0KChhLCBiKSA9PiBhLmNsYWltX29yZGVyIC0gYi5jbGFpbV9vcmRlcik7XG4gICAgLy8gRmluYWxseSwgd2UgbW92ZSB0aGUgbm9kZXNcbiAgICBmb3IgKGxldCBpID0gMCwgaiA9IDA7IGkgPCB0b01vdmUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgd2hpbGUgKGogPCBsaXMubGVuZ3RoICYmIHRvTW92ZVtpXS5jbGFpbV9vcmRlciA+PSBsaXNbal0uY2xhaW1fb3JkZXIpIHtcbiAgICAgICAgICAgIGorKztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbmNob3IgPSBqIDwgbGlzLmxlbmd0aCA/IGxpc1tqXSA6IG51bGw7XG4gICAgICAgIHRhcmdldC5pbnNlcnRCZWZvcmUodG9Nb3ZlW2ldLCBhbmNob3IpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFwcGVuZCh0YXJnZXQsIG5vZGUpIHtcbiAgICB0YXJnZXQuYXBwZW5kQ2hpbGQobm9kZSk7XG59XG5mdW5jdGlvbiBhcHBlbmRfc3R5bGVzKHRhcmdldCwgc3R5bGVfc2hlZXRfaWQsIHN0eWxlcykge1xuICAgIGNvbnN0IGFwcGVuZF9zdHlsZXNfdG8gPSBnZXRfcm9vdF9mb3Jfc3R5bGUodGFyZ2V0KTtcbiAgICBpZiAoIWFwcGVuZF9zdHlsZXNfdG8uZ2V0RWxlbWVudEJ5SWQoc3R5bGVfc2hlZXRfaWQpKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlID0gZWxlbWVudCgnc3R5bGUnKTtcbiAgICAgICAgc3R5bGUuaWQgPSBzdHlsZV9zaGVldF9pZDtcbiAgICAgICAgc3R5bGUudGV4dENvbnRlbnQgPSBzdHlsZXM7XG4gICAgICAgIGFwcGVuZF9zdHlsZXNoZWV0KGFwcGVuZF9zdHlsZXNfdG8sIHN0eWxlKTtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRfcm9vdF9mb3Jfc3R5bGUobm9kZSkge1xuICAgIGlmICghbm9kZSlcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50O1xuICAgIGNvbnN0IHJvb3QgPSBub2RlLmdldFJvb3ROb2RlID8gbm9kZS5nZXRSb290Tm9kZSgpIDogbm9kZS5vd25lckRvY3VtZW50O1xuICAgIGlmIChyb290ICYmIHJvb3QuaG9zdCkge1xuICAgICAgICByZXR1cm4gcm9vdDtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGUub3duZXJEb2N1bWVudDtcbn1cbmZ1bmN0aW9uIGFwcGVuZF9lbXB0eV9zdHlsZXNoZWV0KG5vZGUpIHtcbiAgICBjb25zdCBzdHlsZV9lbGVtZW50ID0gZWxlbWVudCgnc3R5bGUnKTtcbiAgICBhcHBlbmRfc3R5bGVzaGVldChnZXRfcm9vdF9mb3Jfc3R5bGUobm9kZSksIHN0eWxlX2VsZW1lbnQpO1xuICAgIHJldHVybiBzdHlsZV9lbGVtZW50O1xufVxuZnVuY3Rpb24gYXBwZW5kX3N0eWxlc2hlZXQobm9kZSwgc3R5bGUpIHtcbiAgICBhcHBlbmQobm9kZS5oZWFkIHx8IG5vZGUsIHN0eWxlKTtcbn1cbmZ1bmN0aW9uIGFwcGVuZF9oeWRyYXRpb24odGFyZ2V0LCBub2RlKSB7XG4gICAgaWYgKGlzX2h5ZHJhdGluZykge1xuICAgICAgICBpbml0X2h5ZHJhdGUodGFyZ2V0KTtcbiAgICAgICAgaWYgKCh0YXJnZXQuYWN0dWFsX2VuZF9jaGlsZCA9PT0gdW5kZWZpbmVkKSB8fCAoKHRhcmdldC5hY3R1YWxfZW5kX2NoaWxkICE9PSBudWxsKSAmJiAodGFyZ2V0LmFjdHVhbF9lbmRfY2hpbGQucGFyZW50RWxlbWVudCAhPT0gdGFyZ2V0KSkpIHtcbiAgICAgICAgICAgIHRhcmdldC5hY3R1YWxfZW5kX2NoaWxkID0gdGFyZ2V0LmZpcnN0Q2hpbGQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2tpcCBub2RlcyBvZiB1bmRlZmluZWQgb3JkZXJpbmdcbiAgICAgICAgd2hpbGUgKCh0YXJnZXQuYWN0dWFsX2VuZF9jaGlsZCAhPT0gbnVsbCkgJiYgKHRhcmdldC5hY3R1YWxfZW5kX2NoaWxkLmNsYWltX29yZGVyID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICB0YXJnZXQuYWN0dWFsX2VuZF9jaGlsZCA9IHRhcmdldC5hY3R1YWxfZW5kX2NoaWxkLm5leHRTaWJsaW5nO1xuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlICE9PSB0YXJnZXQuYWN0dWFsX2VuZF9jaGlsZCkge1xuICAgICAgICAgICAgLy8gV2Ugb25seSBpbnNlcnQgaWYgdGhlIG9yZGVyaW5nIG9mIHRoaXMgbm9kZSBzaG91bGQgYmUgbW9kaWZpZWQgb3IgdGhlIHBhcmVudCBub2RlIGlzIG5vdCB0YXJnZXRcbiAgICAgICAgICAgIGlmIChub2RlLmNsYWltX29yZGVyICE9PSB1bmRlZmluZWQgfHwgbm9kZS5wYXJlbnROb2RlICE9PSB0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQuaW5zZXJ0QmVmb3JlKG5vZGUsIHRhcmdldC5hY3R1YWxfZW5kX2NoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRhcmdldC5hY3R1YWxfZW5kX2NoaWxkID0gbm9kZS5uZXh0U2libGluZztcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmIChub2RlLnBhcmVudE5vZGUgIT09IHRhcmdldCB8fCBub2RlLm5leHRTaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICAgIHRhcmdldC5hcHBlbmRDaGlsZChub2RlKTtcbiAgICB9XG59XG5mdW5jdGlvbiBpbnNlcnQodGFyZ2V0LCBub2RlLCBhbmNob3IpIHtcbiAgICB0YXJnZXQuaW5zZXJ0QmVmb3JlKG5vZGUsIGFuY2hvciB8fCBudWxsKTtcbn1cbmZ1bmN0aW9uIGluc2VydF9oeWRyYXRpb24odGFyZ2V0LCBub2RlLCBhbmNob3IpIHtcbiAgICBpZiAoaXNfaHlkcmF0aW5nICYmICFhbmNob3IpIHtcbiAgICAgICAgYXBwZW5kX2h5ZHJhdGlvbih0YXJnZXQsIG5vZGUpO1xuICAgIH1cbiAgICBlbHNlIGlmIChub2RlLnBhcmVudE5vZGUgIT09IHRhcmdldCB8fCBub2RlLm5leHRTaWJsaW5nICE9IGFuY2hvcikge1xuICAgICAgICB0YXJnZXQuaW5zZXJ0QmVmb3JlKG5vZGUsIGFuY2hvciB8fCBudWxsKTtcbiAgICB9XG59XG5mdW5jdGlvbiBkZXRhY2gobm9kZSkge1xuICAgIG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2RlKTtcbn1cbmZ1bmN0aW9uIGRlc3Ryb3lfZWFjaChpdGVyYXRpb25zLCBkZXRhY2hpbmcpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZXJhdGlvbnMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgaWYgKGl0ZXJhdGlvbnNbaV0pXG4gICAgICAgICAgICBpdGVyYXRpb25zW2ldLmQoZGV0YWNoaW5nKTtcbiAgICB9XG59XG5mdW5jdGlvbiBlbGVtZW50KG5hbWUpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChuYW1lKTtcbn1cbmZ1bmN0aW9uIGVsZW1lbnRfaXMobmFtZSwgaXMpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChuYW1lLCB7IGlzIH0pO1xufVxuZnVuY3Rpb24gb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllcyhvYmosIGV4Y2x1ZGUpIHtcbiAgICBjb25zdCB0YXJnZXQgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGsgaW4gb2JqKSB7XG4gICAgICAgIGlmIChoYXNfcHJvcChvYmosIGspXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAmJiBleGNsdWRlLmluZGV4T2YoaykgPT09IC0xKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0YXJnZXRba10gPSBvYmpba107XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbn1cbmZ1bmN0aW9uIHN2Z19lbGVtZW50KG5hbWUpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsIG5hbWUpO1xufVxuZnVuY3Rpb24gdGV4dChkYXRhKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGRhdGEpO1xufVxuZnVuY3Rpb24gc3BhY2UoKSB7XG4gICAgcmV0dXJuIHRleHQoJyAnKTtcbn1cbmZ1bmN0aW9uIGVtcHR5KCkge1xuICAgIHJldHVybiB0ZXh0KCcnKTtcbn1cbmZ1bmN0aW9uIGxpc3Rlbihub2RlLCBldmVudCwgaGFuZGxlciwgb3B0aW9ucykge1xuICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgaGFuZGxlciwgb3B0aW9ucyk7XG4gICAgcmV0dXJuICgpID0+IG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgaGFuZGxlciwgb3B0aW9ucyk7XG59XG5mdW5jdGlvbiBwcmV2ZW50X2RlZmF1bHQoZm4pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIGZuLmNhbGwodGhpcywgZXZlbnQpO1xuICAgIH07XG59XG5mdW5jdGlvbiBzdG9wX3Byb3BhZ2F0aW9uKGZuKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByZXR1cm4gZm4uY2FsbCh0aGlzLCBldmVudCk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIHNlbGYoZm4pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcylcbiAgICAgICAgICAgIGZuLmNhbGwodGhpcywgZXZlbnQpO1xuICAgIH07XG59XG5mdW5jdGlvbiB0cnVzdGVkKGZuKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmIChldmVudC5pc1RydXN0ZWQpXG4gICAgICAgICAgICBmbi5jYWxsKHRoaXMsIGV2ZW50KTtcbiAgICB9O1xufVxuZnVuY3Rpb24gYXR0cihub2RlLCBhdHRyaWJ1dGUsIHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpXG4gICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKGF0dHJpYnV0ZSk7XG4gICAgZWxzZSBpZiAobm9kZS5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKSAhPT0gdmFsdWUpXG4gICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpO1xufVxuZnVuY3Rpb24gc2V0X2F0dHJpYnV0ZXMobm9kZSwgYXR0cmlidXRlcykge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBkZXNjcmlwdG9ycyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG5vZGUuX19wcm90b19fKTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBhdHRyaWJ1dGVzKSB7XG4gICAgICAgIGlmIChhdHRyaWJ1dGVzW2tleV0gPT0gbnVsbCkge1xuICAgICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChrZXkgPT09ICdzdHlsZScpIHtcbiAgICAgICAgICAgIG5vZGUuc3R5bGUuY3NzVGV4dCA9IGF0dHJpYnV0ZXNba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChrZXkgPT09ICdfX3ZhbHVlJykge1xuICAgICAgICAgICAgbm9kZS52YWx1ZSA9IG5vZGVba2V5XSA9IGF0dHJpYnV0ZXNba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChkZXNjcmlwdG9yc1trZXldICYmIGRlc2NyaXB0b3JzW2tleV0uc2V0KSB7XG4gICAgICAgICAgICBub2RlW2tleV0gPSBhdHRyaWJ1dGVzW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhdHRyKG5vZGUsIGtleSwgYXR0cmlidXRlc1trZXldKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIHNldF9zdmdfYXR0cmlidXRlcyhub2RlLCBhdHRyaWJ1dGVzKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gYXR0cmlidXRlcykge1xuICAgICAgICBhdHRyKG5vZGUsIGtleSwgYXR0cmlidXRlc1trZXldKTtcbiAgICB9XG59XG5mdW5jdGlvbiBzZXRfY3VzdG9tX2VsZW1lbnRfZGF0YShub2RlLCBwcm9wLCB2YWx1ZSkge1xuICAgIGlmIChwcm9wIGluIG5vZGUpIHtcbiAgICAgICAgbm9kZVtwcm9wXSA9IHR5cGVvZiBub2RlW3Byb3BdID09PSAnYm9vbGVhbicgJiYgdmFsdWUgPT09ICcnID8gdHJ1ZSA6IHZhbHVlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgYXR0cihub2RlLCBwcm9wLCB2YWx1ZSk7XG4gICAgfVxufVxuZnVuY3Rpb24geGxpbmtfYXR0cihub2RlLCBhdHRyaWJ1dGUsIHZhbHVlKSB7XG4gICAgbm9kZS5zZXRBdHRyaWJ1dGVOUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycsIGF0dHJpYnV0ZSwgdmFsdWUpO1xufVxuZnVuY3Rpb24gZ2V0X2JpbmRpbmdfZ3JvdXBfdmFsdWUoZ3JvdXAsIF9fdmFsdWUsIGNoZWNrZWQpIHtcbiAgICBjb25zdCB2YWx1ZSA9IG5ldyBTZXQoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyb3VwLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIGlmIChncm91cFtpXS5jaGVja2VkKVxuICAgICAgICAgICAgdmFsdWUuYWRkKGdyb3VwW2ldLl9fdmFsdWUpO1xuICAgIH1cbiAgICBpZiAoIWNoZWNrZWQpIHtcbiAgICAgICAgdmFsdWUuZGVsZXRlKF9fdmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gQXJyYXkuZnJvbSh2YWx1ZSk7XG59XG5mdW5jdGlvbiB0b19udW1iZXIodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09ICcnID8gbnVsbCA6ICt2YWx1ZTtcbn1cbmZ1bmN0aW9uIHRpbWVfcmFuZ2VzX3RvX2FycmF5KHJhbmdlcykge1xuICAgIGNvbnN0IGFycmF5ID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByYW5nZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgYXJyYXkucHVzaCh7IHN0YXJ0OiByYW5nZXMuc3RhcnQoaSksIGVuZDogcmFuZ2VzLmVuZChpKSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xufVxuZnVuY3Rpb24gY2hpbGRyZW4oZWxlbWVudCkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKGVsZW1lbnQuY2hpbGROb2Rlcyk7XG59XG5mdW5jdGlvbiBpbml0X2NsYWltX2luZm8obm9kZXMpIHtcbiAgICBpZiAobm9kZXMuY2xhaW1faW5mbyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG5vZGVzLmNsYWltX2luZm8gPSB7IGxhc3RfaW5kZXg6IDAsIHRvdGFsX2NsYWltZWQ6IDAgfTtcbiAgICB9XG59XG5mdW5jdGlvbiBjbGFpbV9ub2RlKG5vZGVzLCBwcmVkaWNhdGUsIHByb2Nlc3NOb2RlLCBjcmVhdGVOb2RlLCBkb250VXBkYXRlTGFzdEluZGV4ID0gZmFsc2UpIHtcbiAgICAvLyBUcnkgdG8gZmluZCBub2RlcyBpbiBhbiBvcmRlciBzdWNoIHRoYXQgd2UgbGVuZ3RoZW4gdGhlIGxvbmdlc3QgaW5jcmVhc2luZyBzdWJzZXF1ZW5jZVxuICAgIGluaXRfY2xhaW1faW5mbyhub2Rlcyk7XG4gICAgY29uc3QgcmVzdWx0Tm9kZSA9ICgoKSA9PiB7XG4gICAgICAgIC8vIFdlIGZpcnN0IHRyeSB0byBmaW5kIGFuIGVsZW1lbnQgYWZ0ZXIgdGhlIHByZXZpb3VzIG9uZVxuICAgICAgICBmb3IgKGxldCBpID0gbm9kZXMuY2xhaW1faW5mby5sYXN0X2luZGV4OyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBub2Rlc1tpXTtcbiAgICAgICAgICAgIGlmIChwcmVkaWNhdGUobm9kZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXBsYWNlbWVudCA9IHByb2Nlc3NOb2RlKG5vZGUpO1xuICAgICAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGVzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGVzW2ldID0gcmVwbGFjZW1lbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZG9udFVwZGF0ZUxhc3RJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBub2Rlcy5jbGFpbV9pbmZvLmxhc3RfaW5kZXggPSBpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBPdGhlcndpc2UsIHdlIHRyeSB0byBmaW5kIG9uZSBiZWZvcmVcbiAgICAgICAgLy8gV2UgaXRlcmF0ZSBpbiByZXZlcnNlIHNvIHRoYXQgd2UgZG9uJ3QgZ28gdG9vIGZhciBiYWNrXG4gICAgICAgIGZvciAobGV0IGkgPSBub2Rlcy5jbGFpbV9pbmZvLmxhc3RfaW5kZXggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzW2ldO1xuICAgICAgICAgICAgaWYgKHByZWRpY2F0ZShub2RlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gcHJvY2Vzc05vZGUobm9kZSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZXNbaV0gPSByZXBsYWNlbWVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFkb250VXBkYXRlTGFzdEluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGVzLmNsYWltX2luZm8ubGFzdF9pbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlcGxhY2VtZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2luY2Ugd2Ugc3BsaWNlZCBiZWZvcmUgdGhlIGxhc3RfaW5kZXgsIHdlIGRlY3JlYXNlIGl0XG4gICAgICAgICAgICAgICAgICAgIG5vZGVzLmNsYWltX2luZm8ubGFzdF9pbmRleC0tO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB3ZSBjYW4ndCBmaW5kIGFueSBtYXRjaGluZyBub2RlLCB3ZSBjcmVhdGUgYSBuZXcgb25lXG4gICAgICAgIHJldHVybiBjcmVhdGVOb2RlKCk7XG4gICAgfSkoKTtcbiAgICByZXN1bHROb2RlLmNsYWltX29yZGVyID0gbm9kZXMuY2xhaW1faW5mby50b3RhbF9jbGFpbWVkO1xuICAgIG5vZGVzLmNsYWltX2luZm8udG90YWxfY2xhaW1lZCArPSAxO1xuICAgIHJldHVybiByZXN1bHROb2RlO1xufVxuZnVuY3Rpb24gY2xhaW1fZWxlbWVudF9iYXNlKG5vZGVzLCBuYW1lLCBhdHRyaWJ1dGVzLCBjcmVhdGVfZWxlbWVudCkge1xuICAgIHJldHVybiBjbGFpbV9ub2RlKG5vZGVzLCAobm9kZSkgPT4gbm9kZS5ub2RlTmFtZSA9PT0gbmFtZSwgKG5vZGUpID0+IHtcbiAgICAgICAgY29uc3QgcmVtb3ZlID0gW107XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbm9kZS5hdHRyaWJ1dGVzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGUgPSBub2RlLmF0dHJpYnV0ZXNbal07XG4gICAgICAgICAgICBpZiAoIWF0dHJpYnV0ZXNbYXR0cmlidXRlLm5hbWVdKSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlLnB1c2goYXR0cmlidXRlLm5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlbW92ZS5mb3JFYWNoKHYgPT4gbm9kZS5yZW1vdmVBdHRyaWJ1dGUodikpO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0sICgpID0+IGNyZWF0ZV9lbGVtZW50KG5hbWUpKTtcbn1cbmZ1bmN0aW9uIGNsYWltX2VsZW1lbnQobm9kZXMsIG5hbWUsIGF0dHJpYnV0ZXMpIHtcbiAgICByZXR1cm4gY2xhaW1fZWxlbWVudF9iYXNlKG5vZGVzLCBuYW1lLCBhdHRyaWJ1dGVzLCBlbGVtZW50KTtcbn1cbmZ1bmN0aW9uIGNsYWltX3N2Z19lbGVtZW50KG5vZGVzLCBuYW1lLCBhdHRyaWJ1dGVzKSB7XG4gICAgcmV0dXJuIGNsYWltX2VsZW1lbnRfYmFzZShub2RlcywgbmFtZSwgYXR0cmlidXRlcywgc3ZnX2VsZW1lbnQpO1xufVxuZnVuY3Rpb24gY2xhaW1fdGV4dChub2RlcywgZGF0YSkge1xuICAgIHJldHVybiBjbGFpbV9ub2RlKG5vZGVzLCAobm9kZSkgPT4gbm9kZS5ub2RlVHlwZSA9PT0gMywgKG5vZGUpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YVN0ciA9ICcnICsgZGF0YTtcbiAgICAgICAgaWYgKG5vZGUuZGF0YS5zdGFydHNXaXRoKGRhdGFTdHIpKSB7XG4gICAgICAgICAgICBpZiAobm9kZS5kYXRhLmxlbmd0aCAhPT0gZGF0YVN0ci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5zcGxpdFRleHQoZGF0YVN0ci5sZW5ndGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbm9kZS5kYXRhID0gZGF0YVN0cjtcbiAgICAgICAgfVxuICAgIH0sICgpID0+IHRleHQoZGF0YSksIHRydWUgLy8gVGV4dCBub2RlcyBzaG91bGQgbm90IHVwZGF0ZSBsYXN0IGluZGV4IHNpbmNlIGl0IGlzIGxpa2VseSBub3Qgd29ydGggaXQgdG8gZWxpbWluYXRlIGFuIGluY3JlYXNpbmcgc3Vic2VxdWVuY2Ugb2YgYWN0dWFsIGVsZW1lbnRzXG4gICAgKTtcbn1cbmZ1bmN0aW9uIGNsYWltX3NwYWNlKG5vZGVzKSB7XG4gICAgcmV0dXJuIGNsYWltX3RleHQobm9kZXMsICcgJyk7XG59XG5mdW5jdGlvbiBmaW5kX2NvbW1lbnQobm9kZXMsIHRleHQsIHN0YXJ0KSB7XG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgbm9kZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzW2ldO1xuICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gOCAvKiBjb21tZW50IG5vZGUgKi8gJiYgbm9kZS50ZXh0Q29udGVudC50cmltKCkgPT09IHRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBub2Rlcy5sZW5ndGg7XG59XG5mdW5jdGlvbiBjbGFpbV9odG1sX3RhZyhub2Rlcykge1xuICAgIC8vIGZpbmQgaHRtbCBvcGVuaW5nIHRhZ1xuICAgIGNvbnN0IHN0YXJ0X2luZGV4ID0gZmluZF9jb21tZW50KG5vZGVzLCAnSFRNTF9UQUdfU1RBUlQnLCAwKTtcbiAgICBjb25zdCBlbmRfaW5kZXggPSBmaW5kX2NvbW1lbnQobm9kZXMsICdIVE1MX1RBR19FTkQnLCBzdGFydF9pbmRleCk7XG4gICAgaWYgKHN0YXJ0X2luZGV4ID09PSBlbmRfaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBIdG1sVGFnSHlkcmF0aW9uKCk7XG4gICAgfVxuICAgIGluaXRfY2xhaW1faW5mbyhub2Rlcyk7XG4gICAgY29uc3QgaHRtbF90YWdfbm9kZXMgPSBub2Rlcy5zcGxpY2Uoc3RhcnRfaW5kZXgsIGVuZF9pbmRleCArIDEpO1xuICAgIGRldGFjaChodG1sX3RhZ19ub2Rlc1swXSk7XG4gICAgZGV0YWNoKGh0bWxfdGFnX25vZGVzW2h0bWxfdGFnX25vZGVzLmxlbmd0aCAtIDFdKTtcbiAgICBjb25zdCBjbGFpbWVkX25vZGVzID0gaHRtbF90YWdfbm9kZXMuc2xpY2UoMSwgaHRtbF90YWdfbm9kZXMubGVuZ3RoIC0gMSk7XG4gICAgZm9yIChjb25zdCBuIG9mIGNsYWltZWRfbm9kZXMpIHtcbiAgICAgICAgbi5jbGFpbV9vcmRlciA9IG5vZGVzLmNsYWltX2luZm8udG90YWxfY2xhaW1lZDtcbiAgICAgICAgbm9kZXMuY2xhaW1faW5mby50b3RhbF9jbGFpbWVkICs9IDE7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSHRtbFRhZ0h5ZHJhdGlvbihjbGFpbWVkX25vZGVzKTtcbn1cbmZ1bmN0aW9uIHNldF9kYXRhKHRleHQsIGRhdGEpIHtcbiAgICBkYXRhID0gJycgKyBkYXRhO1xuICAgIGlmICh0ZXh0Lndob2xlVGV4dCAhPT0gZGF0YSlcbiAgICAgICAgdGV4dC5kYXRhID0gZGF0YTtcbn1cbmZ1bmN0aW9uIHNldF9pbnB1dF92YWx1ZShpbnB1dCwgdmFsdWUpIHtcbiAgICBpbnB1dC52YWx1ZSA9IHZhbHVlID09IG51bGwgPyAnJyA6IHZhbHVlO1xufVxuZnVuY3Rpb24gc2V0X2lucHV0X3R5cGUoaW5wdXQsIHR5cGUpIHtcbiAgICB0cnkge1xuICAgICAgICBpbnB1dC50eXBlID0gdHlwZTtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gZG8gbm90aGluZ1xuICAgIH1cbn1cbmZ1bmN0aW9uIHNldF9zdHlsZShub2RlLCBrZXksIHZhbHVlLCBpbXBvcnRhbnQpIHtcbiAgICBub2RlLnN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFsdWUsIGltcG9ydGFudCA/ICdpbXBvcnRhbnQnIDogJycpO1xufVxuZnVuY3Rpb24gc2VsZWN0X29wdGlvbihzZWxlY3QsIHZhbHVlKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3Qub3B0aW9ucy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICBjb25zdCBvcHRpb24gPSBzZWxlY3Qub3B0aW9uc1tpXTtcbiAgICAgICAgaWYgKG9wdGlvbi5fX3ZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgb3B0aW9uLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzZWxlY3Quc2VsZWN0ZWRJbmRleCA9IC0xOyAvLyBubyBvcHRpb24gc2hvdWxkIGJlIHNlbGVjdGVkXG59XG5mdW5jdGlvbiBzZWxlY3Rfb3B0aW9ucyhzZWxlY3QsIHZhbHVlKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3Qub3B0aW9ucy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICBjb25zdCBvcHRpb24gPSBzZWxlY3Qub3B0aW9uc1tpXTtcbiAgICAgICAgb3B0aW9uLnNlbGVjdGVkID0gfnZhbHVlLmluZGV4T2Yob3B0aW9uLl9fdmFsdWUpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHNlbGVjdF92YWx1ZShzZWxlY3QpIHtcbiAgICBjb25zdCBzZWxlY3RlZF9vcHRpb24gPSBzZWxlY3QucXVlcnlTZWxlY3RvcignOmNoZWNrZWQnKSB8fCBzZWxlY3Qub3B0aW9uc1swXTtcbiAgICByZXR1cm4gc2VsZWN0ZWRfb3B0aW9uICYmIHNlbGVjdGVkX29wdGlvbi5fX3ZhbHVlO1xufVxuZnVuY3Rpb24gc2VsZWN0X211bHRpcGxlX3ZhbHVlKHNlbGVjdCkge1xuICAgIHJldHVybiBbXS5tYXAuY2FsbChzZWxlY3QucXVlcnlTZWxlY3RvckFsbCgnOmNoZWNrZWQnKSwgb3B0aW9uID0+IG9wdGlvbi5fX3ZhbHVlKTtcbn1cbi8vIHVuZm9ydHVuYXRlbHkgdGhpcyBjYW4ndCBiZSBhIGNvbnN0YW50IGFzIHRoYXQgd291bGRuJ3QgYmUgdHJlZS1zaGFrZWFibGVcbi8vIHNvIHdlIGNhY2hlIHRoZSByZXN1bHQgaW5zdGVhZFxubGV0IGNyb3Nzb3JpZ2luO1xuZnVuY3Rpb24gaXNfY3Jvc3NvcmlnaW4oKSB7XG4gICAgaWYgKGNyb3Nzb3JpZ2luID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY3Jvc3NvcmlnaW4gPSBmYWxzZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cucGFyZW50KSB7XG4gICAgICAgICAgICAgICAgdm9pZCB3aW5kb3cucGFyZW50LmRvY3VtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY3Jvc3NvcmlnaW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjcm9zc29yaWdpbjtcbn1cbmZ1bmN0aW9uIGFkZF9yZXNpemVfbGlzdGVuZXIobm9kZSwgZm4pIHtcbiAgICBjb25zdCBjb21wdXRlZF9zdHlsZSA9IGdldENvbXB1dGVkU3R5bGUobm9kZSk7XG4gICAgaWYgKGNvbXB1dGVkX3N0eWxlLnBvc2l0aW9uID09PSAnc3RhdGljJykge1xuICAgICAgICBub2RlLnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICB9XG4gICAgY29uc3QgaWZyYW1lID0gZWxlbWVudCgnaWZyYW1lJyk7XG4gICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyAnICtcbiAgICAgICAgJ292ZXJmbG93OiBoaWRkZW47IGJvcmRlcjogMDsgb3BhY2l0eTogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHotaW5kZXg6IC0xOycpO1xuICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcbiAgICBpZnJhbWUudGFiSW5kZXggPSAtMTtcbiAgICBjb25zdCBjcm9zc29yaWdpbiA9IGlzX2Nyb3Nzb3JpZ2luKCk7XG4gICAgbGV0IHVuc3Vic2NyaWJlO1xuICAgIGlmIChjcm9zc29yaWdpbikge1xuICAgICAgICBpZnJhbWUuc3JjID0gXCJkYXRhOnRleHQvaHRtbCw8c2NyaXB0Pm9ucmVzaXplPWZ1bmN0aW9uKCl7cGFyZW50LnBvc3RNZXNzYWdlKDAsJyonKX08L3NjcmlwdD5cIjtcbiAgICAgICAgdW5zdWJzY3JpYmUgPSBsaXN0ZW4od2luZG93LCAnbWVzc2FnZScsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LnNvdXJjZSA9PT0gaWZyYW1lLmNvbnRlbnRXaW5kb3cpXG4gICAgICAgICAgICAgICAgZm4oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZnJhbWUuc3JjID0gJ2Fib3V0OmJsYW5rJztcbiAgICAgICAgaWZyYW1lLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgIHVuc3Vic2NyaWJlID0gbGlzdGVuKGlmcmFtZS5jb250ZW50V2luZG93LCAncmVzaXplJywgZm4pO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBhcHBlbmQobm9kZSwgaWZyYW1lKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY3Jvc3NvcmlnaW4pIHtcbiAgICAgICAgICAgIHVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodW5zdWJzY3JpYmUgJiYgaWZyYW1lLmNvbnRlbnRXaW5kb3cpIHtcbiAgICAgICAgICAgIHVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZGV0YWNoKGlmcmFtZSk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIHRvZ2dsZV9jbGFzcyhlbGVtZW50LCBuYW1lLCB0b2dnbGUpIHtcbiAgICBlbGVtZW50LmNsYXNzTGlzdFt0b2dnbGUgPyAnYWRkJyA6ICdyZW1vdmUnXShuYW1lKTtcbn1cbmZ1bmN0aW9uIGN1c3RvbV9ldmVudCh0eXBlLCBkZXRhaWwsIGJ1YmJsZXMgPSBmYWxzZSkge1xuICAgIGNvbnN0IGUgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnQ3VzdG9tRXZlbnQnKTtcbiAgICBlLmluaXRDdXN0b21FdmVudCh0eXBlLCBidWJibGVzLCBmYWxzZSwgZGV0YWlsKTtcbiAgICByZXR1cm4gZTtcbn1cbmZ1bmN0aW9uIHF1ZXJ5X3NlbGVjdG9yX2FsbChzZWxlY3RvciwgcGFyZW50ID0gZG9jdW1lbnQuYm9keSkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHBhcmVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKSk7XG59XG5jbGFzcyBIdG1sVGFnIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lID0gdGhpcy5uID0gbnVsbDtcbiAgICB9XG4gICAgYyhodG1sKSB7XG4gICAgICAgIHRoaXMuaChodG1sKTtcbiAgICB9XG4gICAgbShodG1sLCB0YXJnZXQsIGFuY2hvciA9IG51bGwpIHtcbiAgICAgICAgaWYgKCF0aGlzLmUpIHtcbiAgICAgICAgICAgIHRoaXMuZSA9IGVsZW1lbnQodGFyZ2V0Lm5vZGVOYW1lKTtcbiAgICAgICAgICAgIHRoaXMudCA9IHRhcmdldDtcbiAgICAgICAgICAgIHRoaXMuYyhodG1sKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmkoYW5jaG9yKTtcbiAgICB9XG4gICAgaChodG1sKSB7XG4gICAgICAgIHRoaXMuZS5pbm5lckhUTUwgPSBodG1sO1xuICAgICAgICB0aGlzLm4gPSBBcnJheS5mcm9tKHRoaXMuZS5jaGlsZE5vZGVzKTtcbiAgICB9XG4gICAgaShhbmNob3IpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm4ubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgIGluc2VydCh0aGlzLnQsIHRoaXMubltpXSwgYW5jaG9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwKGh0bWwpIHtcbiAgICAgICAgdGhpcy5kKCk7XG4gICAgICAgIHRoaXMuaChodG1sKTtcbiAgICAgICAgdGhpcy5pKHRoaXMuYSk7XG4gICAgfVxuICAgIGQoKSB7XG4gICAgICAgIHRoaXMubi5mb3JFYWNoKGRldGFjaCk7XG4gICAgfVxufVxuY2xhc3MgSHRtbFRhZ0h5ZHJhdGlvbiBleHRlbmRzIEh0bWxUYWcge1xuICAgIGNvbnN0cnVjdG9yKGNsYWltZWRfbm9kZXMpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5lID0gdGhpcy5uID0gbnVsbDtcbiAgICAgICAgdGhpcy5sID0gY2xhaW1lZF9ub2RlcztcbiAgICB9XG4gICAgYyhodG1sKSB7XG4gICAgICAgIGlmICh0aGlzLmwpIHtcbiAgICAgICAgICAgIHRoaXMubiA9IHRoaXMubDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLmMoaHRtbCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaShhbmNob3IpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm4ubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgIGluc2VydF9oeWRyYXRpb24odGhpcy50LCB0aGlzLm5baV0sIGFuY2hvcik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBhdHRyaWJ1dGVfdG9fb2JqZWN0KGF0dHJpYnV0ZXMpIHtcbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZSBvZiBhdHRyaWJ1dGVzKSB7XG4gICAgICAgIHJlc3VsdFthdHRyaWJ1dGUubmFtZV0gPSBhdHRyaWJ1dGUudmFsdWU7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBnZXRfY3VzdG9tX2VsZW1lbnRzX3Nsb3RzKGVsZW1lbnQpIHtcbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICBlbGVtZW50LmNoaWxkTm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICByZXN1bHRbbm9kZS5zbG90IHx8ICdkZWZhdWx0J10gPSB0cnVlO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmNvbnN0IGFjdGl2ZV9kb2NzID0gbmV3IFNldCgpO1xubGV0IGFjdGl2ZSA9IDA7XG4vLyBodHRwczovL2dpdGh1Yi5jb20vZGFya3NreWFwcC9zdHJpbmctaGFzaC9ibG9iL21hc3Rlci9pbmRleC5qc1xuZnVuY3Rpb24gaGFzaChzdHIpIHtcbiAgICBsZXQgaGFzaCA9IDUzODE7XG4gICAgbGV0IGkgPSBzdHIubGVuZ3RoO1xuICAgIHdoaWxlIChpLS0pXG4gICAgICAgIGhhc2ggPSAoKGhhc2ggPDwgNSkgLSBoYXNoKSBeIHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgIHJldHVybiBoYXNoID4+PiAwO1xufVxuZnVuY3Rpb24gY3JlYXRlX3J1bGUobm9kZSwgYSwgYiwgZHVyYXRpb24sIGRlbGF5LCBlYXNlLCBmbiwgdWlkID0gMCkge1xuICAgIGNvbnN0IHN0ZXAgPSAxNi42NjYgLyBkdXJhdGlvbjtcbiAgICBsZXQga2V5ZnJhbWVzID0gJ3tcXG4nO1xuICAgIGZvciAobGV0IHAgPSAwOyBwIDw9IDE7IHAgKz0gc3RlcCkge1xuICAgICAgICBjb25zdCB0ID0gYSArIChiIC0gYSkgKiBlYXNlKHApO1xuICAgICAgICBrZXlmcmFtZXMgKz0gcCAqIDEwMCArIGAleyR7Zm4odCwgMSAtIHQpfX1cXG5gO1xuICAgIH1cbiAgICBjb25zdCBydWxlID0ga2V5ZnJhbWVzICsgYDEwMCUgeyR7Zm4oYiwgMSAtIGIpfX1cXG59YDtcbiAgICBjb25zdCBuYW1lID0gYF9fc3ZlbHRlXyR7aGFzaChydWxlKX1fJHt1aWR9YDtcbiAgICBjb25zdCBkb2MgPSBnZXRfcm9vdF9mb3Jfc3R5bGUobm9kZSk7XG4gICAgYWN0aXZlX2RvY3MuYWRkKGRvYyk7XG4gICAgY29uc3Qgc3R5bGVzaGVldCA9IGRvYy5fX3N2ZWx0ZV9zdHlsZXNoZWV0IHx8IChkb2MuX19zdmVsdGVfc3R5bGVzaGVldCA9IGFwcGVuZF9lbXB0eV9zdHlsZXNoZWV0KG5vZGUpLnNoZWV0KTtcbiAgICBjb25zdCBjdXJyZW50X3J1bGVzID0gZG9jLl9fc3ZlbHRlX3J1bGVzIHx8IChkb2MuX19zdmVsdGVfcnVsZXMgPSB7fSk7XG4gICAgaWYgKCFjdXJyZW50X3J1bGVzW25hbWVdKSB7XG4gICAgICAgIGN1cnJlbnRfcnVsZXNbbmFtZV0gPSB0cnVlO1xuICAgICAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUoYEBrZXlmcmFtZXMgJHtuYW1lfSAke3J1bGV9YCwgc3R5bGVzaGVldC5jc3NSdWxlcy5sZW5ndGgpO1xuICAgIH1cbiAgICBjb25zdCBhbmltYXRpb24gPSBub2RlLnN0eWxlLmFuaW1hdGlvbiB8fCAnJztcbiAgICBub2RlLnN0eWxlLmFuaW1hdGlvbiA9IGAke2FuaW1hdGlvbiA/IGAke2FuaW1hdGlvbn0sIGAgOiAnJ30ke25hbWV9ICR7ZHVyYXRpb259bXMgbGluZWFyICR7ZGVsYXl9bXMgMSBib3RoYDtcbiAgICBhY3RpdmUgKz0gMTtcbiAgICByZXR1cm4gbmFtZTtcbn1cbmZ1bmN0aW9uIGRlbGV0ZV9ydWxlKG5vZGUsIG5hbWUpIHtcbiAgICBjb25zdCBwcmV2aW91cyA9IChub2RlLnN0eWxlLmFuaW1hdGlvbiB8fCAnJykuc3BsaXQoJywgJyk7XG4gICAgY29uc3QgbmV4dCA9IHByZXZpb3VzLmZpbHRlcihuYW1lXG4gICAgICAgID8gYW5pbSA9PiBhbmltLmluZGV4T2YobmFtZSkgPCAwIC8vIHJlbW92ZSBzcGVjaWZpYyBhbmltYXRpb25cbiAgICAgICAgOiBhbmltID0+IGFuaW0uaW5kZXhPZignX19zdmVsdGUnKSA9PT0gLTEgLy8gcmVtb3ZlIGFsbCBTdmVsdGUgYW5pbWF0aW9uc1xuICAgICk7XG4gICAgY29uc3QgZGVsZXRlZCA9IHByZXZpb3VzLmxlbmd0aCAtIG5leHQubGVuZ3RoO1xuICAgIGlmIChkZWxldGVkKSB7XG4gICAgICAgIG5vZGUuc3R5bGUuYW5pbWF0aW9uID0gbmV4dC5qb2luKCcsICcpO1xuICAgICAgICBhY3RpdmUgLT0gZGVsZXRlZDtcbiAgICAgICAgaWYgKCFhY3RpdmUpXG4gICAgICAgICAgICBjbGVhcl9ydWxlcygpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNsZWFyX3J1bGVzKCkge1xuICAgIHJhZigoKSA9PiB7XG4gICAgICAgIGlmIChhY3RpdmUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGFjdGl2ZV9kb2NzLmZvckVhY2goZG9jID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlc2hlZXQgPSBkb2MuX19zdmVsdGVfc3R5bGVzaGVldDtcbiAgICAgICAgICAgIGxldCBpID0gc3R5bGVzaGVldC5jc3NSdWxlcy5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoaS0tKVxuICAgICAgICAgICAgICAgIHN0eWxlc2hlZXQuZGVsZXRlUnVsZShpKTtcbiAgICAgICAgICAgIGRvYy5fX3N2ZWx0ZV9ydWxlcyA9IHt9O1xuICAgICAgICB9KTtcbiAgICAgICAgYWN0aXZlX2RvY3MuY2xlYXIoKTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlX2FuaW1hdGlvbihub2RlLCBmcm9tLCBmbiwgcGFyYW1zKSB7XG4gICAgaWYgKCFmcm9tKVxuICAgICAgICByZXR1cm4gbm9vcDtcbiAgICBjb25zdCB0byA9IG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgaWYgKGZyb20ubGVmdCA9PT0gdG8ubGVmdCAmJiBmcm9tLnJpZ2h0ID09PSB0by5yaWdodCAmJiBmcm9tLnRvcCA9PT0gdG8udG9wICYmIGZyb20uYm90dG9tID09PSB0by5ib3R0b20pXG4gICAgICAgIHJldHVybiBub29wO1xuICAgIGNvbnN0IHsgZGVsYXkgPSAwLCBkdXJhdGlvbiA9IDMwMCwgZWFzaW5nID0gaWRlbnRpdHksIFxuICAgIC8vIEB0cy1pZ25vcmUgdG9kbzogc2hvdWxkIHRoaXMgYmUgc2VwYXJhdGVkIGZyb20gZGVzdHJ1Y3R1cmluZz8gT3Igc3RhcnQvZW5kIGFkZGVkIHRvIHB1YmxpYyBhcGkgYW5kIGRvY3VtZW50YXRpb24/XG4gICAgc3RhcnQ6IHN0YXJ0X3RpbWUgPSBub3coKSArIGRlbGF5LCBcbiAgICAvLyBAdHMtaWdub3JlIHRvZG86XG4gICAgZW5kID0gc3RhcnRfdGltZSArIGR1cmF0aW9uLCB0aWNrID0gbm9vcCwgY3NzIH0gPSBmbihub2RlLCB7IGZyb20sIHRvIH0sIHBhcmFtcyk7XG4gICAgbGV0IHJ1bm5pbmcgPSB0cnVlO1xuICAgIGxldCBzdGFydGVkID0gZmFsc2U7XG4gICAgbGV0IG5hbWU7XG4gICAgZnVuY3Rpb24gc3RhcnQoKSB7XG4gICAgICAgIGlmIChjc3MpIHtcbiAgICAgICAgICAgIG5hbWUgPSBjcmVhdGVfcnVsZShub2RlLCAwLCAxLCBkdXJhdGlvbiwgZGVsYXksIGVhc2luZywgY3NzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWRlbGF5KSB7XG4gICAgICAgICAgICBzdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBzdG9wKCkge1xuICAgICAgICBpZiAoY3NzKVxuICAgICAgICAgICAgZGVsZXRlX3J1bGUobm9kZSwgbmFtZSk7XG4gICAgICAgIHJ1bm5pbmcgPSBmYWxzZTtcbiAgICB9XG4gICAgbG9vcChub3cgPT4ge1xuICAgICAgICBpZiAoIXN0YXJ0ZWQgJiYgbm93ID49IHN0YXJ0X3RpbWUpIHtcbiAgICAgICAgICAgIHN0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGFydGVkICYmIG5vdyA+PSBlbmQpIHtcbiAgICAgICAgICAgIHRpY2soMSwgMCk7XG4gICAgICAgICAgICBzdG9wKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFydW5uaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXJ0ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHAgPSBub3cgLSBzdGFydF90aW1lO1xuICAgICAgICAgICAgY29uc3QgdCA9IDAgKyAxICogZWFzaW5nKHAgLyBkdXJhdGlvbik7XG4gICAgICAgICAgICB0aWNrKHQsIDEgLSB0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgICBzdGFydCgpO1xuICAgIHRpY2soMCwgMSk7XG4gICAgcmV0dXJuIHN0b3A7XG59XG5mdW5jdGlvbiBmaXhfcG9zaXRpb24obm9kZSkge1xuICAgIGNvbnN0IHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcbiAgICBpZiAoc3R5bGUucG9zaXRpb24gIT09ICdhYnNvbHV0ZScgJiYgc3R5bGUucG9zaXRpb24gIT09ICdmaXhlZCcpIHtcbiAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBzdHlsZTtcbiAgICAgICAgY29uc3QgYSA9IG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIG5vZGUuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgICBub2RlLnN0eWxlLndpZHRoID0gd2lkdGg7XG4gICAgICAgIG5vZGUuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgICBhZGRfdHJhbnNmb3JtKG5vZGUsIGEpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGFkZF90cmFuc2Zvcm0obm9kZSwgYSkge1xuICAgIGNvbnN0IGIgPSBub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGlmIChhLmxlZnQgIT09IGIubGVmdCB8fCBhLnRvcCAhPT0gYi50b3ApIHtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpO1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm0gPSBzdHlsZS50cmFuc2Zvcm0gPT09ICdub25lJyA/ICcnIDogc3R5bGUudHJhbnNmb3JtO1xuICAgICAgICBub2RlLnN0eWxlLnRyYW5zZm9ybSA9IGAke3RyYW5zZm9ybX0gdHJhbnNsYXRlKCR7YS5sZWZ0IC0gYi5sZWZ0fXB4LCAke2EudG9wIC0gYi50b3B9cHgpYDtcbiAgICB9XG59XG5cbmxldCBjdXJyZW50X2NvbXBvbmVudDtcbmZ1bmN0aW9uIHNldF9jdXJyZW50X2NvbXBvbmVudChjb21wb25lbnQpIHtcbiAgICBjdXJyZW50X2NvbXBvbmVudCA9IGNvbXBvbmVudDtcbn1cbmZ1bmN0aW9uIGdldF9jdXJyZW50X2NvbXBvbmVudCgpIHtcbiAgICBpZiAoIWN1cnJlbnRfY29tcG9uZW50KVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Z1bmN0aW9uIGNhbGxlZCBvdXRzaWRlIGNvbXBvbmVudCBpbml0aWFsaXphdGlvbicpO1xuICAgIHJldHVybiBjdXJyZW50X2NvbXBvbmVudDtcbn1cbmZ1bmN0aW9uIGJlZm9yZVVwZGF0ZShmbikge1xuICAgIGdldF9jdXJyZW50X2NvbXBvbmVudCgpLiQkLmJlZm9yZV91cGRhdGUucHVzaChmbik7XG59XG5mdW5jdGlvbiBvbk1vdW50KGZuKSB7XG4gICAgZ2V0X2N1cnJlbnRfY29tcG9uZW50KCkuJCQub25fbW91bnQucHVzaChmbik7XG59XG5mdW5jdGlvbiBhZnRlclVwZGF0ZShmbikge1xuICAgIGdldF9jdXJyZW50X2NvbXBvbmVudCgpLiQkLmFmdGVyX3VwZGF0ZS5wdXNoKGZuKTtcbn1cbmZ1bmN0aW9uIG9uRGVzdHJveShmbikge1xuICAgIGdldF9jdXJyZW50X2NvbXBvbmVudCgpLiQkLm9uX2Rlc3Ryb3kucHVzaChmbik7XG59XG5mdW5jdGlvbiBjcmVhdGVFdmVudERpc3BhdGNoZXIoKSB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gZ2V0X2N1cnJlbnRfY29tcG9uZW50KCk7XG4gICAgcmV0dXJuICh0eXBlLCBkZXRhaWwpID0+IHtcbiAgICAgICAgY29uc3QgY2FsbGJhY2tzID0gY29tcG9uZW50LiQkLmNhbGxiYWNrc1t0eXBlXTtcbiAgICAgICAgaWYgKGNhbGxiYWNrcykge1xuICAgICAgICAgICAgLy8gVE9ETyBhcmUgdGhlcmUgc2l0dWF0aW9ucyB3aGVyZSBldmVudHMgY291bGQgYmUgZGlzcGF0Y2hlZFxuICAgICAgICAgICAgLy8gaW4gYSBzZXJ2ZXIgKG5vbi1ET00pIGVudmlyb25tZW50P1xuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBjdXN0b21fZXZlbnQodHlwZSwgZGV0YWlsKTtcbiAgICAgICAgICAgIGNhbGxiYWNrcy5zbGljZSgpLmZvckVhY2goZm4gPT4ge1xuICAgICAgICAgICAgICAgIGZuLmNhbGwoY29tcG9uZW50LCBldmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG59XG5mdW5jdGlvbiBzZXRDb250ZXh0KGtleSwgY29udGV4dCkge1xuICAgIGdldF9jdXJyZW50X2NvbXBvbmVudCgpLiQkLmNvbnRleHQuc2V0KGtleSwgY29udGV4dCk7XG59XG5mdW5jdGlvbiBnZXRDb250ZXh0KGtleSkge1xuICAgIHJldHVybiBnZXRfY3VycmVudF9jb21wb25lbnQoKS4kJC5jb250ZXh0LmdldChrZXkpO1xufVxuZnVuY3Rpb24gZ2V0QWxsQ29udGV4dHMoKSB7XG4gICAgcmV0dXJuIGdldF9jdXJyZW50X2NvbXBvbmVudCgpLiQkLmNvbnRleHQ7XG59XG5mdW5jdGlvbiBoYXNDb250ZXh0KGtleSkge1xuICAgIHJldHVybiBnZXRfY3VycmVudF9jb21wb25lbnQoKS4kJC5jb250ZXh0LmhhcyhrZXkpO1xufVxuLy8gVE9ETyBmaWd1cmUgb3V0IGlmIHdlIHN0aWxsIHdhbnQgdG8gc3VwcG9ydFxuLy8gc2hvcnRoYW5kIGV2ZW50cywgb3IgaWYgd2Ugd2FudCB0byBpbXBsZW1lbnRcbi8vIGEgcmVhbCBidWJibGluZyBtZWNoYW5pc21cbmZ1bmN0aW9uIGJ1YmJsZShjb21wb25lbnQsIGV2ZW50KSB7XG4gICAgY29uc3QgY2FsbGJhY2tzID0gY29tcG9uZW50LiQkLmNhbGxiYWNrc1tldmVudC50eXBlXTtcbiAgICBpZiAoY2FsbGJhY2tzKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgY2FsbGJhY2tzLnNsaWNlKCkuZm9yRWFjaChmbiA9PiBmbi5jYWxsKHRoaXMsIGV2ZW50KSk7XG4gICAgfVxufVxuXG5jb25zdCBkaXJ0eV9jb21wb25lbnRzID0gW107XG5jb25zdCBpbnRyb3MgPSB7IGVuYWJsZWQ6IGZhbHNlIH07XG5jb25zdCBiaW5kaW5nX2NhbGxiYWNrcyA9IFtdO1xuY29uc3QgcmVuZGVyX2NhbGxiYWNrcyA9IFtdO1xuY29uc3QgZmx1c2hfY2FsbGJhY2tzID0gW107XG5jb25zdCByZXNvbHZlZF9wcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7XG5sZXQgdXBkYXRlX3NjaGVkdWxlZCA9IGZhbHNlO1xuZnVuY3Rpb24gc2NoZWR1bGVfdXBkYXRlKCkge1xuICAgIGlmICghdXBkYXRlX3NjaGVkdWxlZCkge1xuICAgICAgICB1cGRhdGVfc2NoZWR1bGVkID0gdHJ1ZTtcbiAgICAgICAgcmVzb2x2ZWRfcHJvbWlzZS50aGVuKGZsdXNoKTtcbiAgICB9XG59XG5mdW5jdGlvbiB0aWNrKCkge1xuICAgIHNjaGVkdWxlX3VwZGF0ZSgpO1xuICAgIHJldHVybiByZXNvbHZlZF9wcm9taXNlO1xufVxuZnVuY3Rpb24gYWRkX3JlbmRlcl9jYWxsYmFjayhmbikge1xuICAgIHJlbmRlcl9jYWxsYmFja3MucHVzaChmbik7XG59XG5mdW5jdGlvbiBhZGRfZmx1c2hfY2FsbGJhY2soZm4pIHtcbiAgICBmbHVzaF9jYWxsYmFja3MucHVzaChmbik7XG59XG5sZXQgZmx1c2hpbmcgPSBmYWxzZTtcbmNvbnN0IHNlZW5fY2FsbGJhY2tzID0gbmV3IFNldCgpO1xuZnVuY3Rpb24gZmx1c2goKSB7XG4gICAgaWYgKGZsdXNoaW5nKVxuICAgICAgICByZXR1cm47XG4gICAgZmx1c2hpbmcgPSB0cnVlO1xuICAgIGRvIHtcbiAgICAgICAgLy8gZmlyc3QsIGNhbGwgYmVmb3JlVXBkYXRlIGZ1bmN0aW9uc1xuICAgICAgICAvLyBhbmQgdXBkYXRlIGNvbXBvbmVudHNcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaXJ0eV9jb21wb25lbnRzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBkaXJ0eV9jb21wb25lbnRzW2ldO1xuICAgICAgICAgICAgc2V0X2N1cnJlbnRfY29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgICAgICAgICB1cGRhdGUoY29tcG9uZW50LiQkKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRfY3VycmVudF9jb21wb25lbnQobnVsbCk7XG4gICAgICAgIGRpcnR5X2NvbXBvbmVudHMubGVuZ3RoID0gMDtcbiAgICAgICAgd2hpbGUgKGJpbmRpbmdfY2FsbGJhY2tzLmxlbmd0aClcbiAgICAgICAgICAgIGJpbmRpbmdfY2FsbGJhY2tzLnBvcCgpKCk7XG4gICAgICAgIC8vIHRoZW4sIG9uY2UgY29tcG9uZW50cyBhcmUgdXBkYXRlZCwgY2FsbFxuICAgICAgICAvLyBhZnRlclVwZGF0ZSBmdW5jdGlvbnMuIFRoaXMgbWF5IGNhdXNlXG4gICAgICAgIC8vIHN1YnNlcXVlbnQgdXBkYXRlcy4uLlxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlbmRlcl9jYWxsYmFja3MubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gcmVuZGVyX2NhbGxiYWNrc1tpXTtcbiAgICAgICAgICAgIGlmICghc2Vlbl9jYWxsYmFja3MuaGFzKGNhbGxiYWNrKSkge1xuICAgICAgICAgICAgICAgIC8vIC4uLnNvIGd1YXJkIGFnYWluc3QgaW5maW5pdGUgbG9vcHNcbiAgICAgICAgICAgICAgICBzZWVuX2NhbGxiYWNrcy5hZGQoY2FsbGJhY2spO1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVuZGVyX2NhbGxiYWNrcy5sZW5ndGggPSAwO1xuICAgIH0gd2hpbGUgKGRpcnR5X2NvbXBvbmVudHMubGVuZ3RoKTtcbiAgICB3aGlsZSAoZmx1c2hfY2FsbGJhY2tzLmxlbmd0aCkge1xuICAgICAgICBmbHVzaF9jYWxsYmFja3MucG9wKCkoKTtcbiAgICB9XG4gICAgdXBkYXRlX3NjaGVkdWxlZCA9IGZhbHNlO1xuICAgIGZsdXNoaW5nID0gZmFsc2U7XG4gICAgc2Vlbl9jYWxsYmFja3MuY2xlYXIoKTtcbn1cbmZ1bmN0aW9uIHVwZGF0ZSgkJCkge1xuICAgIGlmICgkJC5mcmFnbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAkJC51cGRhdGUoKTtcbiAgICAgICAgcnVuX2FsbCgkJC5iZWZvcmVfdXBkYXRlKTtcbiAgICAgICAgY29uc3QgZGlydHkgPSAkJC5kaXJ0eTtcbiAgICAgICAgJCQuZGlydHkgPSBbLTFdO1xuICAgICAgICAkJC5mcmFnbWVudCAmJiAkJC5mcmFnbWVudC5wKCQkLmN0eCwgZGlydHkpO1xuICAgICAgICAkJC5hZnRlcl91cGRhdGUuZm9yRWFjaChhZGRfcmVuZGVyX2NhbGxiYWNrKTtcbiAgICB9XG59XG5cbmxldCBwcm9taXNlO1xuZnVuY3Rpb24gd2FpdCgpIHtcbiAgICBpZiAoIXByb21pc2UpIHtcbiAgICAgICAgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICBwcm9taXNlLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcHJvbWlzZSA9IG51bGw7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cbmZ1bmN0aW9uIGRpc3BhdGNoKG5vZGUsIGRpcmVjdGlvbiwga2luZCkge1xuICAgIG5vZGUuZGlzcGF0Y2hFdmVudChjdXN0b21fZXZlbnQoYCR7ZGlyZWN0aW9uID8gJ2ludHJvJyA6ICdvdXRybyd9JHtraW5kfWApKTtcbn1cbmNvbnN0IG91dHJvaW5nID0gbmV3IFNldCgpO1xubGV0IG91dHJvcztcbmZ1bmN0aW9uIGdyb3VwX291dHJvcygpIHtcbiAgICBvdXRyb3MgPSB7XG4gICAgICAgIHI6IDAsXG4gICAgICAgIGM6IFtdLFxuICAgICAgICBwOiBvdXRyb3MgLy8gcGFyZW50IGdyb3VwXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNoZWNrX291dHJvcygpIHtcbiAgICBpZiAoIW91dHJvcy5yKSB7XG4gICAgICAgIHJ1bl9hbGwob3V0cm9zLmMpO1xuICAgIH1cbiAgICBvdXRyb3MgPSBvdXRyb3MucDtcbn1cbmZ1bmN0aW9uIHRyYW5zaXRpb25faW4oYmxvY2ssIGxvY2FsKSB7XG4gICAgaWYgKGJsb2NrICYmIGJsb2NrLmkpIHtcbiAgICAgICAgb3V0cm9pbmcuZGVsZXRlKGJsb2NrKTtcbiAgICAgICAgYmxvY2suaShsb2NhbCk7XG4gICAgfVxufVxuZnVuY3Rpb24gdHJhbnNpdGlvbl9vdXQoYmxvY2ssIGxvY2FsLCBkZXRhY2gsIGNhbGxiYWNrKSB7XG4gICAgaWYgKGJsb2NrICYmIGJsb2NrLm8pIHtcbiAgICAgICAgaWYgKG91dHJvaW5nLmhhcyhibG9jaykpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIG91dHJvaW5nLmFkZChibG9jayk7XG4gICAgICAgIG91dHJvcy5jLnB1c2goKCkgPT4ge1xuICAgICAgICAgICAgb3V0cm9pbmcuZGVsZXRlKGJsb2NrKTtcbiAgICAgICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGlmIChkZXRhY2gpXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrLmQoMSk7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGJsb2NrLm8obG9jYWwpO1xuICAgIH1cbn1cbmNvbnN0IG51bGxfdHJhbnNpdGlvbiA9IHsgZHVyYXRpb246IDAgfTtcbmZ1bmN0aW9uIGNyZWF0ZV9pbl90cmFuc2l0aW9uKG5vZGUsIGZuLCBwYXJhbXMpIHtcbiAgICBsZXQgY29uZmlnID0gZm4obm9kZSwgcGFyYW1zKTtcbiAgICBsZXQgcnVubmluZyA9IGZhbHNlO1xuICAgIGxldCBhbmltYXRpb25fbmFtZTtcbiAgICBsZXQgdGFzaztcbiAgICBsZXQgdWlkID0gMDtcbiAgICBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgICBpZiAoYW5pbWF0aW9uX25hbWUpXG4gICAgICAgICAgICBkZWxldGVfcnVsZShub2RlLCBhbmltYXRpb25fbmFtZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdvKCkge1xuICAgICAgICBjb25zdCB7IGRlbGF5ID0gMCwgZHVyYXRpb24gPSAzMDAsIGVhc2luZyA9IGlkZW50aXR5LCB0aWNrID0gbm9vcCwgY3NzIH0gPSBjb25maWcgfHwgbnVsbF90cmFuc2l0aW9uO1xuICAgICAgICBpZiAoY3NzKVxuICAgICAgICAgICAgYW5pbWF0aW9uX25hbWUgPSBjcmVhdGVfcnVsZShub2RlLCAwLCAxLCBkdXJhdGlvbiwgZGVsYXksIGVhc2luZywgY3NzLCB1aWQrKyk7XG4gICAgICAgIHRpY2soMCwgMSk7XG4gICAgICAgIGNvbnN0IHN0YXJ0X3RpbWUgPSBub3coKSArIGRlbGF5O1xuICAgICAgICBjb25zdCBlbmRfdGltZSA9IHN0YXJ0X3RpbWUgKyBkdXJhdGlvbjtcbiAgICAgICAgaWYgKHRhc2spXG4gICAgICAgICAgICB0YXNrLmFib3J0KCk7XG4gICAgICAgIHJ1bm5pbmcgPSB0cnVlO1xuICAgICAgICBhZGRfcmVuZGVyX2NhbGxiYWNrKCgpID0+IGRpc3BhdGNoKG5vZGUsIHRydWUsICdzdGFydCcpKTtcbiAgICAgICAgdGFzayA9IGxvb3Aobm93ID0+IHtcbiAgICAgICAgICAgIGlmIChydW5uaW5nKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5vdyA+PSBlbmRfdGltZSkge1xuICAgICAgICAgICAgICAgICAgICB0aWNrKDEsIDApO1xuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaChub2RlLCB0cnVlLCAnZW5kJyk7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJ1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5vdyA+PSBzdGFydF90aW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBlYXNpbmcoKG5vdyAtIHN0YXJ0X3RpbWUpIC8gZHVyYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICB0aWNrKHQsIDEgLSB0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcnVubmluZztcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGxldCBzdGFydGVkID0gZmFsc2U7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnQoKSB7XG4gICAgICAgICAgICBpZiAoc3RhcnRlZClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBzdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGRlbGV0ZV9ydWxlKG5vZGUpO1xuICAgICAgICAgICAgaWYgKGlzX2Z1bmN0aW9uKGNvbmZpZykpIHtcbiAgICAgICAgICAgICAgICBjb25maWcgPSBjb25maWcoKTtcbiAgICAgICAgICAgICAgICB3YWl0KCkudGhlbihnbyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBnbygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBpbnZhbGlkYXRlKCkge1xuICAgICAgICAgICAgc3RhcnRlZCA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICBlbmQoKSB7XG4gICAgICAgICAgICBpZiAocnVubmluZykge1xuICAgICAgICAgICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgICAgICAgICBydW5uaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlX291dF90cmFuc2l0aW9uKG5vZGUsIGZuLCBwYXJhbXMpIHtcbiAgICBsZXQgY29uZmlnID0gZm4obm9kZSwgcGFyYW1zKTtcbiAgICBsZXQgcnVubmluZyA9IHRydWU7XG4gICAgbGV0IGFuaW1hdGlvbl9uYW1lO1xuICAgIGNvbnN0IGdyb3VwID0gb3V0cm9zO1xuICAgIGdyb3VwLnIgKz0gMTtcbiAgICBmdW5jdGlvbiBnbygpIHtcbiAgICAgICAgY29uc3QgeyBkZWxheSA9IDAsIGR1cmF0aW9uID0gMzAwLCBlYXNpbmcgPSBpZGVudGl0eSwgdGljayA9IG5vb3AsIGNzcyB9ID0gY29uZmlnIHx8IG51bGxfdHJhbnNpdGlvbjtcbiAgICAgICAgaWYgKGNzcylcbiAgICAgICAgICAgIGFuaW1hdGlvbl9uYW1lID0gY3JlYXRlX3J1bGUobm9kZSwgMSwgMCwgZHVyYXRpb24sIGRlbGF5LCBlYXNpbmcsIGNzcyk7XG4gICAgICAgIGNvbnN0IHN0YXJ0X3RpbWUgPSBub3coKSArIGRlbGF5O1xuICAgICAgICBjb25zdCBlbmRfdGltZSA9IHN0YXJ0X3RpbWUgKyBkdXJhdGlvbjtcbiAgICAgICAgYWRkX3JlbmRlcl9jYWxsYmFjaygoKSA9PiBkaXNwYXRjaChub2RlLCBmYWxzZSwgJ3N0YXJ0JykpO1xuICAgICAgICBsb29wKG5vdyA9PiB7XG4gICAgICAgICAgICBpZiAocnVubmluZykge1xuICAgICAgICAgICAgICAgIGlmIChub3cgPj0gZW5kX3RpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGljaygwLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gobm9kZSwgZmFsc2UsICdlbmQnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEtLWdyb3VwLnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgd2lsbCByZXN1bHQgaW4gYGVuZCgpYCBiZWluZyBjYWxsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzbyB3ZSBkb24ndCBuZWVkIHRvIGNsZWFuIHVwIGhlcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9hbGwoZ3JvdXAuYyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobm93ID49IHN0YXJ0X3RpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdCA9IGVhc2luZygobm93IC0gc3RhcnRfdGltZSkgLyBkdXJhdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIHRpY2soMSAtIHQsIHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBydW5uaW5nO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGlzX2Z1bmN0aW9uKGNvbmZpZykpIHtcbiAgICAgICAgd2FpdCgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgY29uZmlnID0gY29uZmlnKCk7XG4gICAgICAgICAgICBnbygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGdvKCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGVuZChyZXNldCkge1xuICAgICAgICAgICAgaWYgKHJlc2V0ICYmIGNvbmZpZy50aWNrKSB7XG4gICAgICAgICAgICAgICAgY29uZmlnLnRpY2soMSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocnVubmluZykge1xuICAgICAgICAgICAgICAgIGlmIChhbmltYXRpb25fbmFtZSlcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlX3J1bGUobm9kZSwgYW5pbWF0aW9uX25hbWUpO1xuICAgICAgICAgICAgICAgIHJ1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG59XG5mdW5jdGlvbiBjcmVhdGVfYmlkaXJlY3Rpb25hbF90cmFuc2l0aW9uKG5vZGUsIGZuLCBwYXJhbXMsIGludHJvKSB7XG4gICAgbGV0IGNvbmZpZyA9IGZuKG5vZGUsIHBhcmFtcyk7XG4gICAgbGV0IHQgPSBpbnRybyA/IDAgOiAxO1xuICAgIGxldCBydW5uaW5nX3Byb2dyYW0gPSBudWxsO1xuICAgIGxldCBwZW5kaW5nX3Byb2dyYW0gPSBudWxsO1xuICAgIGxldCBhbmltYXRpb25fbmFtZSA9IG51bGw7XG4gICAgZnVuY3Rpb24gY2xlYXJfYW5pbWF0aW9uKCkge1xuICAgICAgICBpZiAoYW5pbWF0aW9uX25hbWUpXG4gICAgICAgICAgICBkZWxldGVfcnVsZShub2RlLCBhbmltYXRpb25fbmFtZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluaXQocHJvZ3JhbSwgZHVyYXRpb24pIHtcbiAgICAgICAgY29uc3QgZCA9IChwcm9ncmFtLmIgLSB0KTtcbiAgICAgICAgZHVyYXRpb24gKj0gTWF0aC5hYnMoZCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhOiB0LFxuICAgICAgICAgICAgYjogcHJvZ3JhbS5iLFxuICAgICAgICAgICAgZCxcbiAgICAgICAgICAgIGR1cmF0aW9uLFxuICAgICAgICAgICAgc3RhcnQ6IHByb2dyYW0uc3RhcnQsXG4gICAgICAgICAgICBlbmQ6IHByb2dyYW0uc3RhcnQgKyBkdXJhdGlvbixcbiAgICAgICAgICAgIGdyb3VwOiBwcm9ncmFtLmdyb3VwXG4gICAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdvKGIpIHtcbiAgICAgICAgY29uc3QgeyBkZWxheSA9IDAsIGR1cmF0aW9uID0gMzAwLCBlYXNpbmcgPSBpZGVudGl0eSwgdGljayA9IG5vb3AsIGNzcyB9ID0gY29uZmlnIHx8IG51bGxfdHJhbnNpdGlvbjtcbiAgICAgICAgY29uc3QgcHJvZ3JhbSA9IHtcbiAgICAgICAgICAgIHN0YXJ0OiBub3coKSArIGRlbGF5LFxuICAgICAgICAgICAgYlxuICAgICAgICB9O1xuICAgICAgICBpZiAoIWIpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgdG9kbzogaW1wcm92ZSB0eXBpbmdzXG4gICAgICAgICAgICBwcm9ncmFtLmdyb3VwID0gb3V0cm9zO1xuICAgICAgICAgICAgb3V0cm9zLnIgKz0gMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocnVubmluZ19wcm9ncmFtIHx8IHBlbmRpbmdfcHJvZ3JhbSkge1xuICAgICAgICAgICAgcGVuZGluZ19wcm9ncmFtID0gcHJvZ3JhbTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIGlmIHRoaXMgaXMgYW4gaW50cm8sIGFuZCB0aGVyZSdzIGEgZGVsYXksIHdlIG5lZWQgdG8gZG9cbiAgICAgICAgICAgIC8vIGFuIGluaXRpYWwgdGljayBhbmQvb3IgYXBwbHkgQ1NTIGFuaW1hdGlvbiBpbW1lZGlhdGVseVxuICAgICAgICAgICAgaWYgKGNzcykge1xuICAgICAgICAgICAgICAgIGNsZWFyX2FuaW1hdGlvbigpO1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbl9uYW1lID0gY3JlYXRlX3J1bGUobm9kZSwgdCwgYiwgZHVyYXRpb24sIGRlbGF5LCBlYXNpbmcsIGNzcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYilcbiAgICAgICAgICAgICAgICB0aWNrKDAsIDEpO1xuICAgICAgICAgICAgcnVubmluZ19wcm9ncmFtID0gaW5pdChwcm9ncmFtLCBkdXJhdGlvbik7XG4gICAgICAgICAgICBhZGRfcmVuZGVyX2NhbGxiYWNrKCgpID0+IGRpc3BhdGNoKG5vZGUsIGIsICdzdGFydCcpKTtcbiAgICAgICAgICAgIGxvb3Aobm93ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGVuZGluZ19wcm9ncmFtICYmIG5vdyA+IHBlbmRpbmdfcHJvZ3JhbS5zdGFydCkge1xuICAgICAgICAgICAgICAgICAgICBydW5uaW5nX3Byb2dyYW0gPSBpbml0KHBlbmRpbmdfcHJvZ3JhbSwgZHVyYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICBwZW5kaW5nX3Byb2dyYW0gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaChub2RlLCBydW5uaW5nX3Byb2dyYW0uYiwgJ3N0YXJ0Jyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyX2FuaW1hdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uX25hbWUgPSBjcmVhdGVfcnVsZShub2RlLCB0LCBydW5uaW5nX3Byb2dyYW0uYiwgcnVubmluZ19wcm9ncmFtLmR1cmF0aW9uLCAwLCBlYXNpbmcsIGNvbmZpZy5jc3MpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChydW5uaW5nX3Byb2dyYW0pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vdyA+PSBydW5uaW5nX3Byb2dyYW0uZW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aWNrKHQgPSBydW5uaW5nX3Byb2dyYW0uYiwgMSAtIHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gobm9kZSwgcnVubmluZ19wcm9ncmFtLmIsICdlbmQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGVuZGluZ19wcm9ncmFtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UncmUgZG9uZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChydW5uaW5nX3Byb2dyYW0uYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnRybyBcdTIwMTQgd2UgY2FuIHRpZHkgdXAgaW1tZWRpYXRlbHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJfYW5pbWF0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvdXRybyBcdTIwMTQgbmVlZHMgdG8gYmUgY29vcmRpbmF0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEtLXJ1bm5pbmdfcHJvZ3JhbS5ncm91cC5yKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2FsbChydW5uaW5nX3Byb2dyYW0uZ3JvdXAuYyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcnVubmluZ19wcm9ncmFtID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChub3cgPj0gcnVubmluZ19wcm9ncmFtLnN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwID0gbm93IC0gcnVubmluZ19wcm9ncmFtLnN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgdCA9IHJ1bm5pbmdfcHJvZ3JhbS5hICsgcnVubmluZ19wcm9ncmFtLmQgKiBlYXNpbmcocCAvIHJ1bm5pbmdfcHJvZ3JhbS5kdXJhdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aWNrKHQsIDEgLSB0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gISEocnVubmluZ19wcm9ncmFtIHx8IHBlbmRpbmdfcHJvZ3JhbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBydW4oYikge1xuICAgICAgICAgICAgaWYgKGlzX2Z1bmN0aW9uKGNvbmZpZykpIHtcbiAgICAgICAgICAgICAgICB3YWl0KCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnID0gY29uZmlnKCk7XG4gICAgICAgICAgICAgICAgICAgIGdvKGIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZ28oYik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVuZCgpIHtcbiAgICAgICAgICAgIGNsZWFyX2FuaW1hdGlvbigpO1xuICAgICAgICAgICAgcnVubmluZ19wcm9ncmFtID0gcGVuZGluZ19wcm9ncmFtID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbmZ1bmN0aW9uIGhhbmRsZV9wcm9taXNlKHByb21pc2UsIGluZm8pIHtcbiAgICBjb25zdCB0b2tlbiA9IGluZm8udG9rZW4gPSB7fTtcbiAgICBmdW5jdGlvbiB1cGRhdGUodHlwZSwgaW5kZXgsIGtleSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKGluZm8udG9rZW4gIT09IHRva2VuKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpbmZvLnJlc29sdmVkID0gdmFsdWU7XG4gICAgICAgIGxldCBjaGlsZF9jdHggPSBpbmZvLmN0eDtcbiAgICAgICAgaWYgKGtleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjaGlsZF9jdHggPSBjaGlsZF9jdHguc2xpY2UoKTtcbiAgICAgICAgICAgIGNoaWxkX2N0eFtrZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYmxvY2sgPSB0eXBlICYmIChpbmZvLmN1cnJlbnQgPSB0eXBlKShjaGlsZF9jdHgpO1xuICAgICAgICBsZXQgbmVlZHNfZmx1c2ggPSBmYWxzZTtcbiAgICAgICAgaWYgKGluZm8uYmxvY2spIHtcbiAgICAgICAgICAgIGlmIChpbmZvLmJsb2Nrcykge1xuICAgICAgICAgICAgICAgIGluZm8uYmxvY2tzLmZvckVhY2goKGJsb2NrLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpICE9PSBpbmRleCAmJiBibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBfb3V0cm9zKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uX291dChibG9jaywgMSwgMSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmZvLmJsb2Nrc1tpXSA9PT0gYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5ibG9ja3NbaV0gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfb3V0cm9zKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGluZm8uYmxvY2suZCgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJsb2NrLmMoKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb25faW4oYmxvY2ssIDEpO1xuICAgICAgICAgICAgYmxvY2subShpbmZvLm1vdW50KCksIGluZm8uYW5jaG9yKTtcbiAgICAgICAgICAgIG5lZWRzX2ZsdXNoID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpbmZvLmJsb2NrID0gYmxvY2s7XG4gICAgICAgIGlmIChpbmZvLmJsb2NrcylcbiAgICAgICAgICAgIGluZm8uYmxvY2tzW2luZGV4XSA9IGJsb2NrO1xuICAgICAgICBpZiAobmVlZHNfZmx1c2gpIHtcbiAgICAgICAgICAgIGZsdXNoKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGlzX3Byb21pc2UocHJvbWlzZSkpIHtcbiAgICAgICAgY29uc3QgY3VycmVudF9jb21wb25lbnQgPSBnZXRfY3VycmVudF9jb21wb25lbnQoKTtcbiAgICAgICAgcHJvbWlzZS50aGVuKHZhbHVlID0+IHtcbiAgICAgICAgICAgIHNldF9jdXJyZW50X2NvbXBvbmVudChjdXJyZW50X2NvbXBvbmVudCk7XG4gICAgICAgICAgICB1cGRhdGUoaW5mby50aGVuLCAxLCBpbmZvLnZhbHVlLCB2YWx1ZSk7XG4gICAgICAgICAgICBzZXRfY3VycmVudF9jb21wb25lbnQobnVsbCk7XG4gICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgIHNldF9jdXJyZW50X2NvbXBvbmVudChjdXJyZW50X2NvbXBvbmVudCk7XG4gICAgICAgICAgICB1cGRhdGUoaW5mby5jYXRjaCwgMiwgaW5mby5lcnJvciwgZXJyb3IpO1xuICAgICAgICAgICAgc2V0X2N1cnJlbnRfY29tcG9uZW50KG51bGwpO1xuICAgICAgICAgICAgaWYgKCFpbmZvLmhhc0NhdGNoKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBpZiB3ZSBwcmV2aW91c2x5IGhhZCBhIHRoZW4vY2F0Y2ggYmxvY2ssIGRlc3Ryb3kgaXRcbiAgICAgICAgaWYgKGluZm8uY3VycmVudCAhPT0gaW5mby5wZW5kaW5nKSB7XG4gICAgICAgICAgICB1cGRhdGUoaW5mby5wZW5kaW5nLCAwKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoaW5mby5jdXJyZW50ICE9PSBpbmZvLnRoZW4pIHtcbiAgICAgICAgICAgIHVwZGF0ZShpbmZvLnRoZW4sIDEsIGluZm8udmFsdWUsIHByb21pc2UpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaW5mby5yZXNvbHZlZCA9IHByb21pc2U7XG4gICAgfVxufVxuZnVuY3Rpb24gdXBkYXRlX2F3YWl0X2Jsb2NrX2JyYW5jaChpbmZvLCBjdHgsIGRpcnR5KSB7XG4gICAgY29uc3QgY2hpbGRfY3R4ID0gY3R4LnNsaWNlKCk7XG4gICAgY29uc3QgeyByZXNvbHZlZCB9ID0gaW5mbztcbiAgICBpZiAoaW5mby5jdXJyZW50ID09PSBpbmZvLnRoZW4pIHtcbiAgICAgICAgY2hpbGRfY3R4W2luZm8udmFsdWVdID0gcmVzb2x2ZWQ7XG4gICAgfVxuICAgIGlmIChpbmZvLmN1cnJlbnQgPT09IGluZm8uY2F0Y2gpIHtcbiAgICAgICAgY2hpbGRfY3R4W2luZm8uZXJyb3JdID0gcmVzb2x2ZWQ7XG4gICAgfVxuICAgIGluZm8uYmxvY2sucChjaGlsZF9jdHgsIGRpcnR5KTtcbn1cblxuY29uc3QgZ2xvYmFscyA9ICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJ1xuICAgID8gd2luZG93XG4gICAgOiB0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgPyBnbG9iYWxUaGlzXG4gICAgICAgIDogZ2xvYmFsKTtcblxuZnVuY3Rpb24gZGVzdHJveV9ibG9jayhibG9jaywgbG9va3VwKSB7XG4gICAgYmxvY2suZCgxKTtcbiAgICBsb29rdXAuZGVsZXRlKGJsb2NrLmtleSk7XG59XG5mdW5jdGlvbiBvdXRyb19hbmRfZGVzdHJveV9ibG9jayhibG9jaywgbG9va3VwKSB7XG4gICAgdHJhbnNpdGlvbl9vdXQoYmxvY2ssIDEsIDEsICgpID0+IHtcbiAgICAgICAgbG9va3VwLmRlbGV0ZShibG9jay5rZXkpO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZml4X2FuZF9kZXN0cm95X2Jsb2NrKGJsb2NrLCBsb29rdXApIHtcbiAgICBibG9jay5mKCk7XG4gICAgZGVzdHJveV9ibG9jayhibG9jaywgbG9va3VwKTtcbn1cbmZ1bmN0aW9uIGZpeF9hbmRfb3V0cm9fYW5kX2Rlc3Ryb3lfYmxvY2soYmxvY2ssIGxvb2t1cCkge1xuICAgIGJsb2NrLmYoKTtcbiAgICBvdXRyb19hbmRfZGVzdHJveV9ibG9jayhibG9jaywgbG9va3VwKTtcbn1cbmZ1bmN0aW9uIHVwZGF0ZV9rZXllZF9lYWNoKG9sZF9ibG9ja3MsIGRpcnR5LCBnZXRfa2V5LCBkeW5hbWljLCBjdHgsIGxpc3QsIGxvb2t1cCwgbm9kZSwgZGVzdHJveSwgY3JlYXRlX2VhY2hfYmxvY2ssIG5leHQsIGdldF9jb250ZXh0KSB7XG4gICAgbGV0IG8gPSBvbGRfYmxvY2tzLmxlbmd0aDtcbiAgICBsZXQgbiA9IGxpc3QubGVuZ3RoO1xuICAgIGxldCBpID0gbztcbiAgICBjb25zdCBvbGRfaW5kZXhlcyA9IHt9O1xuICAgIHdoaWxlIChpLS0pXG4gICAgICAgIG9sZF9pbmRleGVzW29sZF9ibG9ja3NbaV0ua2V5XSA9IGk7XG4gICAgY29uc3QgbmV3X2Jsb2NrcyA9IFtdO1xuICAgIGNvbnN0IG5ld19sb29rdXAgPSBuZXcgTWFwKCk7XG4gICAgY29uc3QgZGVsdGFzID0gbmV3IE1hcCgpO1xuICAgIGkgPSBuO1xuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgY29uc3QgY2hpbGRfY3R4ID0gZ2V0X2NvbnRleHQoY3R4LCBsaXN0LCBpKTtcbiAgICAgICAgY29uc3Qga2V5ID0gZ2V0X2tleShjaGlsZF9jdHgpO1xuICAgICAgICBsZXQgYmxvY2sgPSBsb29rdXAuZ2V0KGtleSk7XG4gICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgIGJsb2NrID0gY3JlYXRlX2VhY2hfYmxvY2soa2V5LCBjaGlsZF9jdHgpO1xuICAgICAgICAgICAgYmxvY2suYygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGR5bmFtaWMpIHtcbiAgICAgICAgICAgIGJsb2NrLnAoY2hpbGRfY3R4LCBkaXJ0eSk7XG4gICAgICAgIH1cbiAgICAgICAgbmV3X2xvb2t1cC5zZXQoa2V5LCBuZXdfYmxvY2tzW2ldID0gYmxvY2spO1xuICAgICAgICBpZiAoa2V5IGluIG9sZF9pbmRleGVzKVxuICAgICAgICAgICAgZGVsdGFzLnNldChrZXksIE1hdGguYWJzKGkgLSBvbGRfaW5kZXhlc1trZXldKSk7XG4gICAgfVxuICAgIGNvbnN0IHdpbGxfbW92ZSA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCBkaWRfbW92ZSA9IG5ldyBTZXQoKTtcbiAgICBmdW5jdGlvbiBpbnNlcnQoYmxvY2spIHtcbiAgICAgICAgdHJhbnNpdGlvbl9pbihibG9jaywgMSk7XG4gICAgICAgIGJsb2NrLm0obm9kZSwgbmV4dCk7XG4gICAgICAgIGxvb2t1cC5zZXQoYmxvY2sua2V5LCBibG9jayk7XG4gICAgICAgIG5leHQgPSBibG9jay5maXJzdDtcbiAgICAgICAgbi0tO1xuICAgIH1cbiAgICB3aGlsZSAobyAmJiBuKSB7XG4gICAgICAgIGNvbnN0IG5ld19ibG9jayA9IG5ld19ibG9ja3NbbiAtIDFdO1xuICAgICAgICBjb25zdCBvbGRfYmxvY2sgPSBvbGRfYmxvY2tzW28gLSAxXTtcbiAgICAgICAgY29uc3QgbmV3X2tleSA9IG5ld19ibG9jay5rZXk7XG4gICAgICAgIGNvbnN0IG9sZF9rZXkgPSBvbGRfYmxvY2sua2V5O1xuICAgICAgICBpZiAobmV3X2Jsb2NrID09PSBvbGRfYmxvY2spIHtcbiAgICAgICAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICAgICAgICAgIG5leHQgPSBuZXdfYmxvY2suZmlyc3Q7XG4gICAgICAgICAgICBvLS07XG4gICAgICAgICAgICBuLS07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIW5ld19sb29rdXAuaGFzKG9sZF9rZXkpKSB7XG4gICAgICAgICAgICAvLyByZW1vdmUgb2xkIGJsb2NrXG4gICAgICAgICAgICBkZXN0cm95KG9sZF9ibG9jaywgbG9va3VwKTtcbiAgICAgICAgICAgIG8tLTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghbG9va3VwLmhhcyhuZXdfa2V5KSB8fCB3aWxsX21vdmUuaGFzKG5ld19rZXkpKSB7XG4gICAgICAgICAgICBpbnNlcnQobmV3X2Jsb2NrKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChkaWRfbW92ZS5oYXMob2xkX2tleSkpIHtcbiAgICAgICAgICAgIG8tLTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChkZWx0YXMuZ2V0KG5ld19rZXkpID4gZGVsdGFzLmdldChvbGRfa2V5KSkge1xuICAgICAgICAgICAgZGlkX21vdmUuYWRkKG5ld19rZXkpO1xuICAgICAgICAgICAgaW5zZXJ0KG5ld19ibG9jayk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB3aWxsX21vdmUuYWRkKG9sZF9rZXkpO1xuICAgICAgICAgICAgby0tO1xuICAgICAgICB9XG4gICAgfVxuICAgIHdoaWxlIChvLS0pIHtcbiAgICAgICAgY29uc3Qgb2xkX2Jsb2NrID0gb2xkX2Jsb2Nrc1tvXTtcbiAgICAgICAgaWYgKCFuZXdfbG9va3VwLmhhcyhvbGRfYmxvY2sua2V5KSlcbiAgICAgICAgICAgIGRlc3Ryb3kob2xkX2Jsb2NrLCBsb29rdXApO1xuICAgIH1cbiAgICB3aGlsZSAobilcbiAgICAgICAgaW5zZXJ0KG5ld19ibG9ja3NbbiAtIDFdKTtcbiAgICByZXR1cm4gbmV3X2Jsb2Nrcztcbn1cbmZ1bmN0aW9uIHZhbGlkYXRlX2VhY2hfa2V5cyhjdHgsIGxpc3QsIGdldF9jb250ZXh0LCBnZXRfa2V5KSB7XG4gICAgY29uc3Qga2V5cyA9IG5ldyBTZXQoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qga2V5ID0gZ2V0X2tleShnZXRfY29udGV4dChjdHgsIGxpc3QsIGkpKTtcbiAgICAgICAgaWYgKGtleXMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGhhdmUgZHVwbGljYXRlIGtleXMgaW4gYSBrZXllZCBlYWNoJyk7XG4gICAgICAgIH1cbiAgICAgICAga2V5cy5hZGQoa2V5KTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGdldF9zcHJlYWRfdXBkYXRlKGxldmVscywgdXBkYXRlcykge1xuICAgIGNvbnN0IHVwZGF0ZSA9IHt9O1xuICAgIGNvbnN0IHRvX251bGxfb3V0ID0ge307XG4gICAgY29uc3QgYWNjb3VudGVkX2ZvciA9IHsgJCRzY29wZTogMSB9O1xuICAgIGxldCBpID0gbGV2ZWxzLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICAgIGNvbnN0IG8gPSBsZXZlbHNbaV07XG4gICAgICAgIGNvbnN0IG4gPSB1cGRhdGVzW2ldO1xuICAgICAgICBpZiAobikge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gbykge1xuICAgICAgICAgICAgICAgIGlmICghKGtleSBpbiBuKSlcbiAgICAgICAgICAgICAgICAgICAgdG9fbnVsbF9vdXRba2V5XSA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBuKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFhY2NvdW50ZWRfZm9yW2tleV0pIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlW2tleV0gPSBuW2tleV07XG4gICAgICAgICAgICAgICAgICAgIGFjY291bnRlZF9mb3Jba2V5XSA9IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV2ZWxzW2ldID0gbjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIG8pIHtcbiAgICAgICAgICAgICAgICBhY2NvdW50ZWRfZm9yW2tleV0gPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IGluIHRvX251bGxfb3V0KSB7XG4gICAgICAgIGlmICghKGtleSBpbiB1cGRhdGUpKVxuICAgICAgICAgICAgdXBkYXRlW2tleV0gPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB1cGRhdGU7XG59XG5mdW5jdGlvbiBnZXRfc3ByZWFkX29iamVjdChzcHJlYWRfcHJvcHMpIHtcbiAgICByZXR1cm4gdHlwZW9mIHNwcmVhZF9wcm9wcyA9PT0gJ29iamVjdCcgJiYgc3ByZWFkX3Byb3BzICE9PSBudWxsID8gc3ByZWFkX3Byb3BzIDoge307XG59XG5cbi8vIHNvdXJjZTogaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvaW5kaWNlcy5odG1sXG5jb25zdCBib29sZWFuX2F0dHJpYnV0ZXMgPSBuZXcgU2V0KFtcbiAgICAnYWxsb3dmdWxsc2NyZWVuJyxcbiAgICAnYWxsb3dwYXltZW50cmVxdWVzdCcsXG4gICAgJ2FzeW5jJyxcbiAgICAnYXV0b2ZvY3VzJyxcbiAgICAnYXV0b3BsYXknLFxuICAgICdjaGVja2VkJyxcbiAgICAnY29udHJvbHMnLFxuICAgICdkZWZhdWx0JyxcbiAgICAnZGVmZXInLFxuICAgICdkaXNhYmxlZCcsXG4gICAgJ2Zvcm1ub3ZhbGlkYXRlJyxcbiAgICAnaGlkZGVuJyxcbiAgICAnaXNtYXAnLFxuICAgICdsb29wJyxcbiAgICAnbXVsdGlwbGUnLFxuICAgICdtdXRlZCcsXG4gICAgJ25vbW9kdWxlJyxcbiAgICAnbm92YWxpZGF0ZScsXG4gICAgJ29wZW4nLFxuICAgICdwbGF5c2lubGluZScsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAncmVxdWlyZWQnLFxuICAgICdyZXZlcnNlZCcsXG4gICAgJ3NlbGVjdGVkJ1xuXSk7XG5cbmNvbnN0IGludmFsaWRfYXR0cmlidXRlX25hbWVfY2hhcmFjdGVyID0gL1tcXHMnXCI+Lz1cXHV7RkREMH0tXFx1e0ZERUZ9XFx1e0ZGRkV9XFx1e0ZGRkZ9XFx1ezFGRkZFfVxcdXsxRkZGRn1cXHV7MkZGRkV9XFx1ezJGRkZGfVxcdXszRkZGRX1cXHV7M0ZGRkZ9XFx1ezRGRkZFfVxcdXs0RkZGRn1cXHV7NUZGRkV9XFx1ezVGRkZGfVxcdXs2RkZGRX1cXHV7NkZGRkZ9XFx1ezdGRkZFfVxcdXs3RkZGRn1cXHV7OEZGRkV9XFx1ezhGRkZGfVxcdXs5RkZGRX1cXHV7OUZGRkZ9XFx1e0FGRkZFfVxcdXtBRkZGRn1cXHV7QkZGRkV9XFx1e0JGRkZGfVxcdXtDRkZGRX1cXHV7Q0ZGRkZ9XFx1e0RGRkZFfVxcdXtERkZGRn1cXHV7RUZGRkV9XFx1e0VGRkZGfVxcdXtGRkZGRX1cXHV7RkZGRkZ9XFx1ezEwRkZGRX1cXHV7MTBGRkZGfV0vdTtcbi8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2F0dHJpYnV0ZXMtMlxuLy8gaHR0cHM6Ly9pbmZyYS5zcGVjLndoYXR3Zy5vcmcvI25vbmNoYXJhY3RlclxuZnVuY3Rpb24gc3ByZWFkKGFyZ3MsIGNsYXNzZXNfdG9fYWRkKSB7XG4gICAgY29uc3QgYXR0cmlidXRlcyA9IE9iamVjdC5hc3NpZ24oe30sIC4uLmFyZ3MpO1xuICAgIGlmIChjbGFzc2VzX3RvX2FkZCkge1xuICAgICAgICBpZiAoYXR0cmlidXRlcy5jbGFzcyA9PSBudWxsKSB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVzLmNsYXNzID0gY2xhc3Nlc190b19hZGQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVzLmNsYXNzICs9ICcgJyArIGNsYXNzZXNfdG9fYWRkO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxldCBzdHIgPSAnJztcbiAgICBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKS5mb3JFYWNoKG5hbWUgPT4ge1xuICAgICAgICBpZiAoaW52YWxpZF9hdHRyaWJ1dGVfbmFtZV9jaGFyYWN0ZXIudGVzdChuYW1lKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBhdHRyaWJ1dGVzW25hbWVdO1xuICAgICAgICBpZiAodmFsdWUgPT09IHRydWUpXG4gICAgICAgICAgICBzdHIgKz0gJyAnICsgbmFtZTtcbiAgICAgICAgZWxzZSBpZiAoYm9vbGVhbl9hdHRyaWJ1dGVzLmhhcyhuYW1lLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUpXG4gICAgICAgICAgICAgICAgc3RyICs9ICcgJyArIG5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgc3RyICs9IGAgJHtuYW1lfT1cIiR7dmFsdWV9XCJgO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHN0cjtcbn1cbmNvbnN0IGVzY2FwZWQgPSB7XG4gICAgJ1wiJzogJyZxdW90OycsXG4gICAgXCInXCI6ICcmIzM5OycsXG4gICAgJyYnOiAnJmFtcDsnLFxuICAgICc8JzogJyZsdDsnLFxuICAgICc+JzogJyZndDsnXG59O1xuZnVuY3Rpb24gZXNjYXBlKGh0bWwpIHtcbiAgICByZXR1cm4gU3RyaW5nKGh0bWwpLnJlcGxhY2UoL1tcIicmPD5dL2csIG1hdGNoID0+IGVzY2FwZWRbbWF0Y2hdKTtcbn1cbmZ1bmN0aW9uIGVzY2FwZV9hdHRyaWJ1dGVfdmFsdWUodmFsdWUpIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IGVzY2FwZSh2YWx1ZSkgOiB2YWx1ZTtcbn1cbmZ1bmN0aW9uIGVzY2FwZV9vYmplY3Qob2JqKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gZXNjYXBlX2F0dHJpYnV0ZV92YWx1ZShvYmpba2V5XSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBlYWNoKGl0ZW1zLCBmbikge1xuICAgIGxldCBzdHIgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgIHN0ciArPSBmbihpdGVtc1tpXSwgaSk7XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG59XG5jb25zdCBtaXNzaW5nX2NvbXBvbmVudCA9IHtcbiAgICAkJHJlbmRlcjogKCkgPT4gJydcbn07XG5mdW5jdGlvbiB2YWxpZGF0ZV9jb21wb25lbnQoY29tcG9uZW50LCBuYW1lKSB7XG4gICAgaWYgKCFjb21wb25lbnQgfHwgIWNvbXBvbmVudC4kJHJlbmRlcikge1xuICAgICAgICBpZiAobmFtZSA9PT0gJ3N2ZWx0ZTpjb21wb25lbnQnKVxuICAgICAgICAgICAgbmFtZSArPSAnIHRoaXM9ey4uLn0nO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYDwke25hbWV9PiBpcyBub3QgYSB2YWxpZCBTU1IgY29tcG9uZW50LiBZb3UgbWF5IG5lZWQgdG8gcmV2aWV3IHlvdXIgYnVpbGQgY29uZmlnIHRvIGVuc3VyZSB0aGF0IGRlcGVuZGVuY2llcyBhcmUgY29tcGlsZWQsIHJhdGhlciB0aGFuIGltcG9ydGVkIGFzIHByZS1jb21waWxlZCBtb2R1bGVzYCk7XG4gICAgfVxuICAgIHJldHVybiBjb21wb25lbnQ7XG59XG5mdW5jdGlvbiBkZWJ1ZyhmaWxlLCBsaW5lLCBjb2x1bW4sIHZhbHVlcykge1xuICAgIGNvbnNvbGUubG9nKGB7QGRlYnVnfSAke2ZpbGUgPyBmaWxlICsgJyAnIDogJyd9KCR7bGluZX06JHtjb2x1bW59KWApOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmxvZyh2YWx1ZXMpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcbiAgICByZXR1cm4gJyc7XG59XG5sZXQgb25fZGVzdHJveTtcbmZ1bmN0aW9uIGNyZWF0ZV9zc3JfY29tcG9uZW50KGZuKSB7XG4gICAgZnVuY3Rpb24gJCRyZW5kZXIocmVzdWx0LCBwcm9wcywgYmluZGluZ3MsIHNsb3RzLCBjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHBhcmVudF9jb21wb25lbnQgPSBjdXJyZW50X2NvbXBvbmVudDtcbiAgICAgICAgY29uc3QgJCQgPSB7XG4gICAgICAgICAgICBvbl9kZXN0cm95LFxuICAgICAgICAgICAgY29udGV4dDogbmV3IE1hcChjb250ZXh0IHx8IChwYXJlbnRfY29tcG9uZW50ID8gcGFyZW50X2NvbXBvbmVudC4kJC5jb250ZXh0IDogW10pKSxcbiAgICAgICAgICAgIC8vIHRoZXNlIHdpbGwgYmUgaW1tZWRpYXRlbHkgZGlzY2FyZGVkXG4gICAgICAgICAgICBvbl9tb3VudDogW10sXG4gICAgICAgICAgICBiZWZvcmVfdXBkYXRlOiBbXSxcbiAgICAgICAgICAgIGFmdGVyX3VwZGF0ZTogW10sXG4gICAgICAgICAgICBjYWxsYmFja3M6IGJsYW5rX29iamVjdCgpXG4gICAgICAgIH07XG4gICAgICAgIHNldF9jdXJyZW50X2NvbXBvbmVudCh7ICQkIH0pO1xuICAgICAgICBjb25zdCBodG1sID0gZm4ocmVzdWx0LCBwcm9wcywgYmluZGluZ3MsIHNsb3RzKTtcbiAgICAgICAgc2V0X2N1cnJlbnRfY29tcG9uZW50KHBhcmVudF9jb21wb25lbnQpO1xuICAgICAgICByZXR1cm4gaHRtbDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVuZGVyOiAocHJvcHMgPSB7fSwgeyAkJHNsb3RzID0ge30sIGNvbnRleHQgPSBuZXcgTWFwKCkgfSA9IHt9KSA9PiB7XG4gICAgICAgICAgICBvbl9kZXN0cm95ID0gW107XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7IHRpdGxlOiAnJywgaGVhZDogJycsIGNzczogbmV3IFNldCgpIH07XG4gICAgICAgICAgICBjb25zdCBodG1sID0gJCRyZW5kZXIocmVzdWx0LCBwcm9wcywge30sICQkc2xvdHMsIGNvbnRleHQpO1xuICAgICAgICAgICAgcnVuX2FsbChvbl9kZXN0cm95KTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaHRtbCxcbiAgICAgICAgICAgICAgICBjc3M6IHtcbiAgICAgICAgICAgICAgICAgICAgY29kZTogQXJyYXkuZnJvbShyZXN1bHQuY3NzKS5tYXAoY3NzID0+IGNzcy5jb2RlKS5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwOiBudWxsIC8vIFRPRE9cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGhlYWQ6IHJlc3VsdC50aXRsZSArIHJlc3VsdC5oZWFkXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICAkJHJlbmRlclxuICAgIH07XG59XG5mdW5jdGlvbiBhZGRfYXR0cmlidXRlKG5hbWUsIHZhbHVlLCBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlID09IG51bGwgfHwgKGJvb2xlYW4gJiYgIXZhbHVlKSlcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIHJldHVybiBgICR7bmFtZX0ke3ZhbHVlID09PSB0cnVlID8gJycgOiBgPSR7dHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IEpTT04uc3RyaW5naWZ5KGVzY2FwZSh2YWx1ZSkpIDogYFwiJHt2YWx1ZX1cImB9YH1gO1xufVxuZnVuY3Rpb24gYWRkX2NsYXNzZXMoY2xhc3Nlcykge1xuICAgIHJldHVybiBjbGFzc2VzID8gYCBjbGFzcz1cIiR7Y2xhc3Nlc31cImAgOiAnJztcbn1cblxuZnVuY3Rpb24gYmluZChjb21wb25lbnQsIG5hbWUsIGNhbGxiYWNrKSB7XG4gICAgY29uc3QgaW5kZXggPSBjb21wb25lbnQuJCQucHJvcHNbbmFtZV07XG4gICAgaWYgKGluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29tcG9uZW50LiQkLmJvdW5kW2luZGV4XSA9IGNhbGxiYWNrO1xuICAgICAgICBjYWxsYmFjayhjb21wb25lbnQuJCQuY3R4W2luZGV4XSk7XG4gICAgfVxufVxuZnVuY3Rpb24gY3JlYXRlX2NvbXBvbmVudChibG9jaykge1xuICAgIGJsb2NrICYmIGJsb2NrLmMoKTtcbn1cbmZ1bmN0aW9uIGNsYWltX2NvbXBvbmVudChibG9jaywgcGFyZW50X25vZGVzKSB7XG4gICAgYmxvY2sgJiYgYmxvY2subChwYXJlbnRfbm9kZXMpO1xufVxuZnVuY3Rpb24gbW91bnRfY29tcG9uZW50KGNvbXBvbmVudCwgdGFyZ2V0LCBhbmNob3IsIGN1c3RvbUVsZW1lbnQpIHtcbiAgICBjb25zdCB7IGZyYWdtZW50LCBvbl9tb3VudCwgb25fZGVzdHJveSwgYWZ0ZXJfdXBkYXRlIH0gPSBjb21wb25lbnQuJCQ7XG4gICAgZnJhZ21lbnQgJiYgZnJhZ21lbnQubSh0YXJnZXQsIGFuY2hvcik7XG4gICAgaWYgKCFjdXN0b21FbGVtZW50KSB7XG4gICAgICAgIC8vIG9uTW91bnQgaGFwcGVucyBiZWZvcmUgdGhlIGluaXRpYWwgYWZ0ZXJVcGRhdGVcbiAgICAgICAgYWRkX3JlbmRlcl9jYWxsYmFjaygoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdfb25fZGVzdHJveSA9IG9uX21vdW50Lm1hcChydW4pLmZpbHRlcihpc19mdW5jdGlvbik7XG4gICAgICAgICAgICBpZiAob25fZGVzdHJveSkge1xuICAgICAgICAgICAgICAgIG9uX2Rlc3Ryb3kucHVzaCguLi5uZXdfb25fZGVzdHJveSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBFZGdlIGNhc2UgLSBjb21wb25lbnQgd2FzIGRlc3Ryb3llZCBpbW1lZGlhdGVseSxcbiAgICAgICAgICAgICAgICAvLyBtb3N0IGxpa2VseSBhcyBhIHJlc3VsdCBvZiBhIGJpbmRpbmcgaW5pdGlhbGlzaW5nXG4gICAgICAgICAgICAgICAgcnVuX2FsbChuZXdfb25fZGVzdHJveSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb21wb25lbnQuJCQub25fbW91bnQgPSBbXTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFmdGVyX3VwZGF0ZS5mb3JFYWNoKGFkZF9yZW5kZXJfY2FsbGJhY2spO1xufVxuZnVuY3Rpb24gZGVzdHJveV9jb21wb25lbnQoY29tcG9uZW50LCBkZXRhY2hpbmcpIHtcbiAgICBjb25zdCAkJCA9IGNvbXBvbmVudC4kJDtcbiAgICBpZiAoJCQuZnJhZ21lbnQgIT09IG51bGwpIHtcbiAgICAgICAgcnVuX2FsbCgkJC5vbl9kZXN0cm95KTtcbiAgICAgICAgJCQuZnJhZ21lbnQgJiYgJCQuZnJhZ21lbnQuZChkZXRhY2hpbmcpO1xuICAgICAgICAvLyBUT0RPIG51bGwgb3V0IG90aGVyIHJlZnMsIGluY2x1ZGluZyBjb21wb25lbnQuJCQgKGJ1dCBuZWVkIHRvXG4gICAgICAgIC8vIHByZXNlcnZlIGZpbmFsIHN0YXRlPylcbiAgICAgICAgJCQub25fZGVzdHJveSA9ICQkLmZyYWdtZW50ID0gbnVsbDtcbiAgICAgICAgJCQuY3R4ID0gW107XG4gICAgfVxufVxuZnVuY3Rpb24gbWFrZV9kaXJ0eShjb21wb25lbnQsIGkpIHtcbiAgICBpZiAoY29tcG9uZW50LiQkLmRpcnR5WzBdID09PSAtMSkge1xuICAgICAgICBkaXJ0eV9jb21wb25lbnRzLnB1c2goY29tcG9uZW50KTtcbiAgICAgICAgc2NoZWR1bGVfdXBkYXRlKCk7XG4gICAgICAgIGNvbXBvbmVudC4kJC5kaXJ0eS5maWxsKDApO1xuICAgIH1cbiAgICBjb21wb25lbnQuJCQuZGlydHlbKGkgLyAzMSkgfCAwXSB8PSAoMSA8PCAoaSAlIDMxKSk7XG59XG5mdW5jdGlvbiBpbml0KGNvbXBvbmVudCwgb3B0aW9ucywgaW5zdGFuY2UsIGNyZWF0ZV9mcmFnbWVudCwgbm90X2VxdWFsLCBwcm9wcywgYXBwZW5kX3N0eWxlcywgZGlydHkgPSBbLTFdKSB7XG4gICAgY29uc3QgcGFyZW50X2NvbXBvbmVudCA9IGN1cnJlbnRfY29tcG9uZW50O1xuICAgIHNldF9jdXJyZW50X2NvbXBvbmVudChjb21wb25lbnQpO1xuICAgIGNvbnN0ICQkID0gY29tcG9uZW50LiQkID0ge1xuICAgICAgICBmcmFnbWVudDogbnVsbCxcbiAgICAgICAgY3R4OiBudWxsLFxuICAgICAgICAvLyBzdGF0ZVxuICAgICAgICBwcm9wcyxcbiAgICAgICAgdXBkYXRlOiBub29wLFxuICAgICAgICBub3RfZXF1YWwsXG4gICAgICAgIGJvdW5kOiBibGFua19vYmplY3QoKSxcbiAgICAgICAgLy8gbGlmZWN5Y2xlXG4gICAgICAgIG9uX21vdW50OiBbXSxcbiAgICAgICAgb25fZGVzdHJveTogW10sXG4gICAgICAgIG9uX2Rpc2Nvbm5lY3Q6IFtdLFxuICAgICAgICBiZWZvcmVfdXBkYXRlOiBbXSxcbiAgICAgICAgYWZ0ZXJfdXBkYXRlOiBbXSxcbiAgICAgICAgY29udGV4dDogbmV3IE1hcChvcHRpb25zLmNvbnRleHQgfHwgKHBhcmVudF9jb21wb25lbnQgPyBwYXJlbnRfY29tcG9uZW50LiQkLmNvbnRleHQgOiBbXSkpLFxuICAgICAgICAvLyBldmVyeXRoaW5nIGVsc2VcbiAgICAgICAgY2FsbGJhY2tzOiBibGFua19vYmplY3QoKSxcbiAgICAgICAgZGlydHksXG4gICAgICAgIHNraXBfYm91bmQ6IGZhbHNlLFxuICAgICAgICByb290OiBvcHRpb25zLnRhcmdldCB8fCBwYXJlbnRfY29tcG9uZW50LiQkLnJvb3RcbiAgICB9O1xuICAgIGFwcGVuZF9zdHlsZXMgJiYgYXBwZW5kX3N0eWxlcygkJC5yb290KTtcbiAgICBsZXQgcmVhZHkgPSBmYWxzZTtcbiAgICAkJC5jdHggPSBpbnN0YW5jZVxuICAgICAgICA/IGluc3RhbmNlKGNvbXBvbmVudCwgb3B0aW9ucy5wcm9wcyB8fCB7fSwgKGksIHJldCwgLi4ucmVzdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSByZXN0Lmxlbmd0aCA/IHJlc3RbMF0gOiByZXQ7XG4gICAgICAgICAgICBpZiAoJCQuY3R4ICYmIG5vdF9lcXVhbCgkJC5jdHhbaV0sICQkLmN0eFtpXSA9IHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGlmICghJCQuc2tpcF9ib3VuZCAmJiAkJC5ib3VuZFtpXSlcbiAgICAgICAgICAgICAgICAgICAgJCQuYm91bmRbaV0odmFsdWUpO1xuICAgICAgICAgICAgICAgIGlmIChyZWFkeSlcbiAgICAgICAgICAgICAgICAgICAgbWFrZV9kaXJ0eShjb21wb25lbnQsIGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgICAgfSlcbiAgICAgICAgOiBbXTtcbiAgICAkJC51cGRhdGUoKTtcbiAgICByZWFkeSA9IHRydWU7XG4gICAgcnVuX2FsbCgkJC5iZWZvcmVfdXBkYXRlKTtcbiAgICAvLyBgZmFsc2VgIGFzIGEgc3BlY2lhbCBjYXNlIG9mIG5vIERPTSBjb21wb25lbnRcbiAgICAkJC5mcmFnbWVudCA9IGNyZWF0ZV9mcmFnbWVudCA/IGNyZWF0ZV9mcmFnbWVudCgkJC5jdHgpIDogZmFsc2U7XG4gICAgaWYgKG9wdGlvbnMudGFyZ2V0KSB7XG4gICAgICAgIGlmIChvcHRpb25zLmh5ZHJhdGUpIHtcbiAgICAgICAgICAgIHN0YXJ0X2h5ZHJhdGluZygpO1xuICAgICAgICAgICAgY29uc3Qgbm9kZXMgPSBjaGlsZHJlbihvcHRpb25zLnRhcmdldCk7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgICAgICAgJCQuZnJhZ21lbnQgJiYgJCQuZnJhZ21lbnQubChub2Rlcyk7XG4gICAgICAgICAgICBub2Rlcy5mb3JFYWNoKGRldGFjaCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgICAgICAgJCQuZnJhZ21lbnQgJiYgJCQuZnJhZ21lbnQuYygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmludHJvKVxuICAgICAgICAgICAgdHJhbnNpdGlvbl9pbihjb21wb25lbnQuJCQuZnJhZ21lbnQpO1xuICAgICAgICBtb3VudF9jb21wb25lbnQoY29tcG9uZW50LCBvcHRpb25zLnRhcmdldCwgb3B0aW9ucy5hbmNob3IsIG9wdGlvbnMuY3VzdG9tRWxlbWVudCk7XG4gICAgICAgIGVuZF9oeWRyYXRpbmcoKTtcbiAgICAgICAgZmx1c2goKTtcbiAgICB9XG4gICAgc2V0X2N1cnJlbnRfY29tcG9uZW50KHBhcmVudF9jb21wb25lbnQpO1xufVxubGV0IFN2ZWx0ZUVsZW1lbnQ7XG5pZiAodHlwZW9mIEhUTUxFbGVtZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgU3ZlbHRlRWxlbWVudCA9IGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgICAgIHN1cGVyKCk7XG4gICAgICAgICAgICB0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdvcGVuJyB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgb25fbW91bnQgfSA9IHRoaXMuJCQ7XG4gICAgICAgICAgICB0aGlzLiQkLm9uX2Rpc2Nvbm5lY3QgPSBvbl9tb3VudC5tYXAocnVuKS5maWx0ZXIoaXNfZnVuY3Rpb24pO1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSB0b2RvOiBpbXByb3ZlIHR5cGluZ3NcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuJCQuc2xvdHRlZCkge1xuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgdG9kbzogaW1wcm92ZSB0eXBpbmdzXG4gICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRDaGlsZCh0aGlzLiQkLnNsb3R0ZWRba2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKGF0dHIsIF9vbGRWYWx1ZSwgbmV3VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXNbYXR0cl0gPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICAgICAgICAgIHJ1bl9hbGwodGhpcy4kJC5vbl9kaXNjb25uZWN0KTtcbiAgICAgICAgfVxuICAgICAgICAkZGVzdHJveSgpIHtcbiAgICAgICAgICAgIGRlc3Ryb3lfY29tcG9uZW50KHRoaXMsIDEpO1xuICAgICAgICAgICAgdGhpcy4kZGVzdHJveSA9IG5vb3A7XG4gICAgICAgIH1cbiAgICAgICAgJG9uKHR5cGUsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAvLyBUT0RPIHNob3VsZCB0aGlzIGRlbGVnYXRlIHRvIGFkZEV2ZW50TGlzdGVuZXI/XG4gICAgICAgICAgICBjb25zdCBjYWxsYmFja3MgPSAodGhpcy4kJC5jYWxsYmFja3NbdHlwZV0gfHwgKHRoaXMuJCQuY2FsbGJhY2tzW3R5cGVdID0gW10pKTtcbiAgICAgICAgICAgIGNhbGxiYWNrcy5wdXNoKGNhbGxiYWNrKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBjYWxsYmFja3MuaW5kZXhPZihjYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSlcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgICRzZXQoJCRwcm9wcykge1xuICAgICAgICAgICAgaWYgKHRoaXMuJCRzZXQgJiYgIWlzX2VtcHR5KCQkcHJvcHMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kJC5za2lwX2JvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLiQkc2V0KCQkcHJvcHMpO1xuICAgICAgICAgICAgICAgIHRoaXMuJCQuc2tpcF9ib3VuZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbn1cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgU3ZlbHRlIGNvbXBvbmVudHMuIFVzZWQgd2hlbiBkZXY9ZmFsc2UuXG4gKi9cbmNsYXNzIFN2ZWx0ZUNvbXBvbmVudCB7XG4gICAgJGRlc3Ryb3koKSB7XG4gICAgICAgIGRlc3Ryb3lfY29tcG9uZW50KHRoaXMsIDEpO1xuICAgICAgICB0aGlzLiRkZXN0cm95ID0gbm9vcDtcbiAgICB9XG4gICAgJG9uKHR5cGUsIGNhbGxiYWNrKSB7XG4gICAgICAgIGNvbnN0IGNhbGxiYWNrcyA9ICh0aGlzLiQkLmNhbGxiYWNrc1t0eXBlXSB8fCAodGhpcy4kJC5jYWxsYmFja3NbdHlwZV0gPSBbXSkpO1xuICAgICAgICBjYWxsYmFja3MucHVzaChjYWxsYmFjayk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGNhbGxiYWNrcy5pbmRleE9mKGNhbGxiYWNrKTtcbiAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpXG4gICAgICAgICAgICAgICAgY2FsbGJhY2tzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgICRzZXQoJCRwcm9wcykge1xuICAgICAgICBpZiAodGhpcy4kJHNldCAmJiAhaXNfZW1wdHkoJCRwcm9wcykpIHtcbiAgICAgICAgICAgIHRoaXMuJCQuc2tpcF9ib3VuZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLiQkc2V0KCQkcHJvcHMpO1xuICAgICAgICAgICAgdGhpcy4kJC5za2lwX2JvdW5kID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIGRpc3BhdGNoX2Rldih0eXBlLCBkZXRhaWwpIHtcbiAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGN1c3RvbV9ldmVudCh0eXBlLCBPYmplY3QuYXNzaWduKHsgdmVyc2lvbjogJzMuNDMuMCcgfSwgZGV0YWlsKSwgdHJ1ZSkpO1xufVxuZnVuY3Rpb24gYXBwZW5kX2Rldih0YXJnZXQsIG5vZGUpIHtcbiAgICBkaXNwYXRjaF9kZXYoJ1N2ZWx0ZURPTUluc2VydCcsIHsgdGFyZ2V0LCBub2RlIH0pO1xuICAgIGFwcGVuZCh0YXJnZXQsIG5vZGUpO1xufVxuZnVuY3Rpb24gYXBwZW5kX2h5ZHJhdGlvbl9kZXYodGFyZ2V0LCBub2RlKSB7XG4gICAgZGlzcGF0Y2hfZGV2KCdTdmVsdGVET01JbnNlcnQnLCB7IHRhcmdldCwgbm9kZSB9KTtcbiAgICBhcHBlbmRfaHlkcmF0aW9uKHRhcmdldCwgbm9kZSk7XG59XG5mdW5jdGlvbiBpbnNlcnRfZGV2KHRhcmdldCwgbm9kZSwgYW5jaG9yKSB7XG4gICAgZGlzcGF0Y2hfZGV2KCdTdmVsdGVET01JbnNlcnQnLCB7IHRhcmdldCwgbm9kZSwgYW5jaG9yIH0pO1xuICAgIGluc2VydCh0YXJnZXQsIG5vZGUsIGFuY2hvcik7XG59XG5mdW5jdGlvbiBpbnNlcnRfaHlkcmF0aW9uX2Rldih0YXJnZXQsIG5vZGUsIGFuY2hvcikge1xuICAgIGRpc3BhdGNoX2RldignU3ZlbHRlRE9NSW5zZXJ0JywgeyB0YXJnZXQsIG5vZGUsIGFuY2hvciB9KTtcbiAgICBpbnNlcnRfaHlkcmF0aW9uKHRhcmdldCwgbm9kZSwgYW5jaG9yKTtcbn1cbmZ1bmN0aW9uIGRldGFjaF9kZXYobm9kZSkge1xuICAgIGRpc3BhdGNoX2RldignU3ZlbHRlRE9NUmVtb3ZlJywgeyBub2RlIH0pO1xuICAgIGRldGFjaChub2RlKTtcbn1cbmZ1bmN0aW9uIGRldGFjaF9iZXR3ZWVuX2RldihiZWZvcmUsIGFmdGVyKSB7XG4gICAgd2hpbGUgKGJlZm9yZS5uZXh0U2libGluZyAmJiBiZWZvcmUubmV4dFNpYmxpbmcgIT09IGFmdGVyKSB7XG4gICAgICAgIGRldGFjaF9kZXYoYmVmb3JlLm5leHRTaWJsaW5nKTtcbiAgICB9XG59XG5mdW5jdGlvbiBkZXRhY2hfYmVmb3JlX2RldihhZnRlcikge1xuICAgIHdoaWxlIChhZnRlci5wcmV2aW91c1NpYmxpbmcpIHtcbiAgICAgICAgZGV0YWNoX2RldihhZnRlci5wcmV2aW91c1NpYmxpbmcpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGRldGFjaF9hZnRlcl9kZXYoYmVmb3JlKSB7XG4gICAgd2hpbGUgKGJlZm9yZS5uZXh0U2libGluZykge1xuICAgICAgICBkZXRhY2hfZGV2KGJlZm9yZS5uZXh0U2libGluZyk7XG4gICAgfVxufVxuZnVuY3Rpb24gbGlzdGVuX2Rldihub2RlLCBldmVudCwgaGFuZGxlciwgb3B0aW9ucywgaGFzX3ByZXZlbnRfZGVmYXVsdCwgaGFzX3N0b3BfcHJvcGFnYXRpb24pIHtcbiAgICBjb25zdCBtb2RpZmllcnMgPSBvcHRpb25zID09PSB0cnVlID8gWydjYXB0dXJlJ10gOiBvcHRpb25zID8gQXJyYXkuZnJvbShPYmplY3Qua2V5cyhvcHRpb25zKSkgOiBbXTtcbiAgICBpZiAoaGFzX3ByZXZlbnRfZGVmYXVsdClcbiAgICAgICAgbW9kaWZpZXJzLnB1c2goJ3ByZXZlbnREZWZhdWx0Jyk7XG4gICAgaWYgKGhhc19zdG9wX3Byb3BhZ2F0aW9uKVxuICAgICAgICBtb2RpZmllcnMucHVzaCgnc3RvcFByb3BhZ2F0aW9uJyk7XG4gICAgZGlzcGF0Y2hfZGV2KCdTdmVsdGVET01BZGRFdmVudExpc3RlbmVyJywgeyBub2RlLCBldmVudCwgaGFuZGxlciwgbW9kaWZpZXJzIH0pO1xuICAgIGNvbnN0IGRpc3Bvc2UgPSBsaXN0ZW4obm9kZSwgZXZlbnQsIGhhbmRsZXIsIG9wdGlvbnMpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRpc3BhdGNoX2RldignU3ZlbHRlRE9NUmVtb3ZlRXZlbnRMaXN0ZW5lcicsIHsgbm9kZSwgZXZlbnQsIGhhbmRsZXIsIG1vZGlmaWVycyB9KTtcbiAgICAgICAgZGlzcG9zZSgpO1xuICAgIH07XG59XG5mdW5jdGlvbiBhdHRyX2Rldihub2RlLCBhdHRyaWJ1dGUsIHZhbHVlKSB7XG4gICAgYXR0cihub2RlLCBhdHRyaWJ1dGUsIHZhbHVlKTtcbiAgICBpZiAodmFsdWUgPT0gbnVsbClcbiAgICAgICAgZGlzcGF0Y2hfZGV2KCdTdmVsdGVET01SZW1vdmVBdHRyaWJ1dGUnLCB7IG5vZGUsIGF0dHJpYnV0ZSB9KTtcbiAgICBlbHNlXG4gICAgICAgIGRpc3BhdGNoX2RldignU3ZlbHRlRE9NU2V0QXR0cmlidXRlJywgeyBub2RlLCBhdHRyaWJ1dGUsIHZhbHVlIH0pO1xufVxuZnVuY3Rpb24gcHJvcF9kZXYobm9kZSwgcHJvcGVydHksIHZhbHVlKSB7XG4gICAgbm9kZVtwcm9wZXJ0eV0gPSB2YWx1ZTtcbiAgICBkaXNwYXRjaF9kZXYoJ1N2ZWx0ZURPTVNldFByb3BlcnR5JywgeyBub2RlLCBwcm9wZXJ0eSwgdmFsdWUgfSk7XG59XG5mdW5jdGlvbiBkYXRhc2V0X2Rldihub2RlLCBwcm9wZXJ0eSwgdmFsdWUpIHtcbiAgICBub2RlLmRhdGFzZXRbcHJvcGVydHldID0gdmFsdWU7XG4gICAgZGlzcGF0Y2hfZGV2KCdTdmVsdGVET01TZXREYXRhc2V0JywgeyBub2RlLCBwcm9wZXJ0eSwgdmFsdWUgfSk7XG59XG5mdW5jdGlvbiBzZXRfZGF0YV9kZXYodGV4dCwgZGF0YSkge1xuICAgIGRhdGEgPSAnJyArIGRhdGE7XG4gICAgaWYgKHRleHQud2hvbGVUZXh0ID09PSBkYXRhKVxuICAgICAgICByZXR1cm47XG4gICAgZGlzcGF0Y2hfZGV2KCdTdmVsdGVET01TZXREYXRhJywgeyBub2RlOiB0ZXh0LCBkYXRhIH0pO1xuICAgIHRleHQuZGF0YSA9IGRhdGE7XG59XG5mdW5jdGlvbiB2YWxpZGF0ZV9lYWNoX2FyZ3VtZW50KGFyZykge1xuICAgIGlmICh0eXBlb2YgYXJnICE9PSAnc3RyaW5nJyAmJiAhKGFyZyAmJiB0eXBlb2YgYXJnID09PSAnb2JqZWN0JyAmJiAnbGVuZ3RoJyBpbiBhcmcpKSB7XG4gICAgICAgIGxldCBtc2cgPSAneyNlYWNofSBvbmx5IGl0ZXJhdGVzIG92ZXIgYXJyYXktbGlrZSBvYmplY3RzLic7XG4gICAgICAgIGlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIGFyZyAmJiBTeW1ib2wuaXRlcmF0b3IgaW4gYXJnKSB7XG4gICAgICAgICAgICBtc2cgKz0gJyBZb3UgY2FuIHVzZSBhIHNwcmVhZCB0byBjb252ZXJ0IHRoaXMgaXRlcmFibGUgaW50byBhbiBhcnJheS4nO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtc2cpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHZhbGlkYXRlX3Nsb3RzKG5hbWUsIHNsb3QsIGtleXMpIHtcbiAgICBmb3IgKGNvbnN0IHNsb3Rfa2V5IG9mIE9iamVjdC5rZXlzKHNsb3QpKSB7XG4gICAgICAgIGlmICghfmtleXMuaW5kZXhPZihzbG90X2tleSkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgPCR7bmFtZX0+IHJlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgc2xvdCBcIiR7c2xvdF9rZXl9XCIuYCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIFN2ZWx0ZSBjb21wb25lbnRzIHdpdGggc29tZSBtaW5vciBkZXYtZW5oYW5jZW1lbnRzLiBVc2VkIHdoZW4gZGV2PXRydWUuXG4gKi9cbmNsYXNzIFN2ZWx0ZUNvbXBvbmVudERldiBleHRlbmRzIFN2ZWx0ZUNvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBpZiAoIW9wdGlvbnMgfHwgKCFvcHRpb25zLnRhcmdldCAmJiAhb3B0aW9ucy4kJGlubGluZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIid0YXJnZXQnIGlzIGEgcmVxdWlyZWQgb3B0aW9uXCIpO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuICAgICRkZXN0cm95KCkge1xuICAgICAgICBzdXBlci4kZGVzdHJveSgpO1xuICAgICAgICB0aGlzLiRkZXN0cm95ID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdDb21wb25lbnQgd2FzIGFscmVhZHkgZGVzdHJveWVkJyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc29sZVxuICAgICAgICB9O1xuICAgIH1cbiAgICAkY2FwdHVyZV9zdGF0ZSgpIHsgfVxuICAgICRpbmplY3Rfc3RhdGUoKSB7IH1cbn1cbi8qKlxuICogQmFzZSBjbGFzcyB0byBjcmVhdGUgc3Ryb25nbHkgdHlwZWQgU3ZlbHRlIGNvbXBvbmVudHMuXG4gKiBUaGlzIG9ubHkgZXhpc3RzIGZvciB0eXBpbmcgcHVycG9zZXMgYW5kIHNob3VsZCBiZSB1c2VkIGluIGAuZC50c2AgZmlsZXMuXG4gKlxuICogIyMjIEV4YW1wbGU6XG4gKlxuICogWW91IGhhdmUgY29tcG9uZW50IGxpYnJhcnkgb24gbnBtIGNhbGxlZCBgY29tcG9uZW50LWxpYnJhcnlgLCBmcm9tIHdoaWNoXG4gKiB5b3UgZXhwb3J0IGEgY29tcG9uZW50IGNhbGxlZCBgTXlDb21wb25lbnRgLiBGb3IgU3ZlbHRlK1R5cGVTY3JpcHQgdXNlcnMsXG4gKiB5b3Ugd2FudCB0byBwcm92aWRlIHR5cGluZ3MuIFRoZXJlZm9yZSB5b3UgY3JlYXRlIGEgYGluZGV4LmQudHNgOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IFN2ZWx0ZUNvbXBvbmVudFR5cGVkIH0gZnJvbSBcInN2ZWx0ZVwiO1xuICogZXhwb3J0IGNsYXNzIE15Q29tcG9uZW50IGV4dGVuZHMgU3ZlbHRlQ29tcG9uZW50VHlwZWQ8e2Zvbzogc3RyaW5nfT4ge31cbiAqIGBgYFxuICogVHlwaW5nIHRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIElERXMgbGlrZSBWUyBDb2RlIHdpdGggdGhlIFN2ZWx0ZSBleHRlbnNpb25cbiAqIHRvIHByb3ZpZGUgaW50ZWxsaXNlbnNlIGFuZCB0byB1c2UgdGhlIGNvbXBvbmVudCBsaWtlIHRoaXMgaW4gYSBTdmVsdGUgZmlsZVxuICogd2l0aCBUeXBlU2NyaXB0OlxuICogYGBgc3ZlbHRlXG4gKiA8c2NyaXB0IGxhbmc9XCJ0c1wiPlxuICogXHRpbXBvcnQgeyBNeUNvbXBvbmVudCB9IGZyb20gXCJjb21wb25lbnQtbGlicmFyeVwiO1xuICogPC9zY3JpcHQ+XG4gKiA8TXlDb21wb25lbnQgZm9vPXsnYmFyJ30gLz5cbiAqIGBgYFxuICpcbiAqICMjIyMgV2h5IG5vdCBtYWtlIHRoaXMgcGFydCBvZiBgU3ZlbHRlQ29tcG9uZW50KERldilgP1xuICogQmVjYXVzZVxuICogYGBgdHNcbiAqIGNsYXNzIEFTdWJjbGFzc09mU3ZlbHRlQ29tcG9uZW50IGV4dGVuZHMgU3ZlbHRlQ29tcG9uZW50PHtmb286IHN0cmluZ30+IHt9XG4gKiBjb25zdCBjb21wb25lbnQ6IHR5cGVvZiBTdmVsdGVDb21wb25lbnQgPSBBU3ViY2xhc3NPZlN2ZWx0ZUNvbXBvbmVudDtcbiAqIGBgYFxuICogd2lsbCB0aHJvdyBhIHR5cGUgZXJyb3IsIHNvIHdlIG5lZWQgdG8gc2VwYXJhdGUgdGhlIG1vcmUgc3RyaWN0bHkgdHlwZWQgY2xhc3MuXG4gKi9cbmNsYXNzIFN2ZWx0ZUNvbXBvbmVudFR5cGVkIGV4dGVuZHMgU3ZlbHRlQ29tcG9uZW50RGV2IHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGxvb3BfZ3VhcmQodGltZW91dCkge1xuICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoRGF0ZS5ub3coKSAtIHN0YXJ0ID4gdGltZW91dCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbmZpbml0ZSBsb29wIGRldGVjdGVkJyk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5leHBvcnQgeyBIdG1sVGFnLCBIdG1sVGFnSHlkcmF0aW9uLCBTdmVsdGVDb21wb25lbnQsIFN2ZWx0ZUNvbXBvbmVudERldiwgU3ZlbHRlQ29tcG9uZW50VHlwZWQsIFN2ZWx0ZUVsZW1lbnQsIGFjdGlvbl9kZXN0cm95ZXIsIGFkZF9hdHRyaWJ1dGUsIGFkZF9jbGFzc2VzLCBhZGRfZmx1c2hfY2FsbGJhY2ssIGFkZF9sb2NhdGlvbiwgYWRkX3JlbmRlcl9jYWxsYmFjaywgYWRkX3Jlc2l6ZV9saXN0ZW5lciwgYWRkX3RyYW5zZm9ybSwgYWZ0ZXJVcGRhdGUsIGFwcGVuZCwgYXBwZW5kX2RldiwgYXBwZW5kX2VtcHR5X3N0eWxlc2hlZXQsIGFwcGVuZF9oeWRyYXRpb24sIGFwcGVuZF9oeWRyYXRpb25fZGV2LCBhcHBlbmRfc3R5bGVzLCBhc3NpZ24sIGF0dHIsIGF0dHJfZGV2LCBhdHRyaWJ1dGVfdG9fb2JqZWN0LCBiZWZvcmVVcGRhdGUsIGJpbmQsIGJpbmRpbmdfY2FsbGJhY2tzLCBibGFua19vYmplY3QsIGJ1YmJsZSwgY2hlY2tfb3V0cm9zLCBjaGlsZHJlbiwgY2xhaW1fY29tcG9uZW50LCBjbGFpbV9lbGVtZW50LCBjbGFpbV9odG1sX3RhZywgY2xhaW1fc3BhY2UsIGNsYWltX3N2Z19lbGVtZW50LCBjbGFpbV90ZXh0LCBjbGVhcl9sb29wcywgY29tcG9uZW50X3N1YnNjcmliZSwgY29tcHV0ZV9yZXN0X3Byb3BzLCBjb21wdXRlX3Nsb3RzLCBjcmVhdGVFdmVudERpc3BhdGNoZXIsIGNyZWF0ZV9hbmltYXRpb24sIGNyZWF0ZV9iaWRpcmVjdGlvbmFsX3RyYW5zaXRpb24sIGNyZWF0ZV9jb21wb25lbnQsIGNyZWF0ZV9pbl90cmFuc2l0aW9uLCBjcmVhdGVfb3V0X3RyYW5zaXRpb24sIGNyZWF0ZV9zbG90LCBjcmVhdGVfc3NyX2NvbXBvbmVudCwgY3VycmVudF9jb21wb25lbnQsIGN1c3RvbV9ldmVudCwgZGF0YXNldF9kZXYsIGRlYnVnLCBkZXN0cm95X2Jsb2NrLCBkZXN0cm95X2NvbXBvbmVudCwgZGVzdHJveV9lYWNoLCBkZXRhY2gsIGRldGFjaF9hZnRlcl9kZXYsIGRldGFjaF9iZWZvcmVfZGV2LCBkZXRhY2hfYmV0d2Vlbl9kZXYsIGRldGFjaF9kZXYsIGRpcnR5X2NvbXBvbmVudHMsIGRpc3BhdGNoX2RldiwgZWFjaCwgZWxlbWVudCwgZWxlbWVudF9pcywgZW1wdHksIGVuZF9oeWRyYXRpbmcsIGVzY2FwZSwgZXNjYXBlX2F0dHJpYnV0ZV92YWx1ZSwgZXNjYXBlX29iamVjdCwgZXNjYXBlZCwgZXhjbHVkZV9pbnRlcm5hbF9wcm9wcywgZml4X2FuZF9kZXN0cm95X2Jsb2NrLCBmaXhfYW5kX291dHJvX2FuZF9kZXN0cm95X2Jsb2NrLCBmaXhfcG9zaXRpb24sIGZsdXNoLCBnZXRBbGxDb250ZXh0cywgZ2V0Q29udGV4dCwgZ2V0X2FsbF9kaXJ0eV9mcm9tX3Njb3BlLCBnZXRfYmluZGluZ19ncm91cF92YWx1ZSwgZ2V0X2N1cnJlbnRfY29tcG9uZW50LCBnZXRfY3VzdG9tX2VsZW1lbnRzX3Nsb3RzLCBnZXRfcm9vdF9mb3Jfc3R5bGUsIGdldF9zbG90X2NoYW5nZXMsIGdldF9zcHJlYWRfb2JqZWN0LCBnZXRfc3ByZWFkX3VwZGF0ZSwgZ2V0X3N0b3JlX3ZhbHVlLCBnbG9iYWxzLCBncm91cF9vdXRyb3MsIGhhbmRsZV9wcm9taXNlLCBoYXNDb250ZXh0LCBoYXNfcHJvcCwgaWRlbnRpdHksIGluaXQsIGluc2VydCwgaW5zZXJ0X2RldiwgaW5zZXJ0X2h5ZHJhdGlvbiwgaW5zZXJ0X2h5ZHJhdGlvbl9kZXYsIGludHJvcywgaW52YWxpZF9hdHRyaWJ1dGVfbmFtZV9jaGFyYWN0ZXIsIGlzX2NsaWVudCwgaXNfY3Jvc3NvcmlnaW4sIGlzX2VtcHR5LCBpc19mdW5jdGlvbiwgaXNfcHJvbWlzZSwgbGlzdGVuLCBsaXN0ZW5fZGV2LCBsb29wLCBsb29wX2d1YXJkLCBtaXNzaW5nX2NvbXBvbmVudCwgbW91bnRfY29tcG9uZW50LCBub29wLCBub3RfZXF1YWwsIG5vdywgbnVsbF90b19lbXB0eSwgb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllcywgb25EZXN0cm95LCBvbk1vdW50LCBvbmNlLCBvdXRyb19hbmRfZGVzdHJveV9ibG9jaywgcHJldmVudF9kZWZhdWx0LCBwcm9wX2RldiwgcXVlcnlfc2VsZWN0b3JfYWxsLCByYWYsIHJ1biwgcnVuX2FsbCwgc2FmZV9ub3RfZXF1YWwsIHNjaGVkdWxlX3VwZGF0ZSwgc2VsZWN0X211bHRpcGxlX3ZhbHVlLCBzZWxlY3Rfb3B0aW9uLCBzZWxlY3Rfb3B0aW9ucywgc2VsZWN0X3ZhbHVlLCBzZWxmLCBzZXRDb250ZXh0LCBzZXRfYXR0cmlidXRlcywgc2V0X2N1cnJlbnRfY29tcG9uZW50LCBzZXRfY3VzdG9tX2VsZW1lbnRfZGF0YSwgc2V0X2RhdGEsIHNldF9kYXRhX2Rldiwgc2V0X2lucHV0X3R5cGUsIHNldF9pbnB1dF92YWx1ZSwgc2V0X25vdywgc2V0X3JhZiwgc2V0X3N0b3JlX3ZhbHVlLCBzZXRfc3R5bGUsIHNldF9zdmdfYXR0cmlidXRlcywgc3BhY2UsIHNwcmVhZCwgc3JjX3VybF9lcXVhbCwgc3RhcnRfaHlkcmF0aW5nLCBzdG9wX3Byb3BhZ2F0aW9uLCBzdWJzY3JpYmUsIHN2Z19lbGVtZW50LCB0ZXh0LCB0aWNrLCB0aW1lX3Jhbmdlc190b19hcnJheSwgdG9fbnVtYmVyLCB0b2dnbGVfY2xhc3MsIHRyYW5zaXRpb25faW4sIHRyYW5zaXRpb25fb3V0LCB0cnVzdGVkLCB1cGRhdGVfYXdhaXRfYmxvY2tfYnJhbmNoLCB1cGRhdGVfa2V5ZWRfZWFjaCwgdXBkYXRlX3Nsb3QsIHVwZGF0ZV9zbG90X2Jhc2UsIHZhbGlkYXRlX2NvbXBvbmVudCwgdmFsaWRhdGVfZWFjaF9hcmd1bWVudCwgdmFsaWRhdGVfZWFjaF9rZXlzLCB2YWxpZGF0ZV9zbG90cywgdmFsaWRhdGVfc3RvcmUsIHhsaW5rX2F0dHIgfTtcbiIsICJpbXBvcnQgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHsgZGVidWcsIGVycm9yIH0gZnJvbSBcImxvZ2xldmVsXCI7XHJcbmltcG9ydCB7IG5vcm1hbGl6ZVBhdGgsIE5vdGljZSwgUG9zLCBURmlsZSwgVEZvbGRlciB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgeyBhZGRDU1ZDcnVtYnMsIGdldENTVlJvd3MgfSBmcm9tIFwiLi9BbHRlcm5hdGl2ZUhpZXJhcmNoaWVzL0NTVkNydW1ic1wiO1xyXG5pbXBvcnQgeyBhZGREYXRhdmlld05vdGVzVG9HcmFwaCB9IGZyb20gXCIuL0FsdGVybmF0aXZlSGllcmFyY2hpZXMvRGF0YXZpZXdOb3Rlc1wiO1xyXG5pbXBvcnQgeyBhZGREYXRlTm90ZXNUb0dyYXBoIH0gZnJvbSBcIi4vQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9EYXRlTm90ZXNcIjtcclxuaW1wb3J0IHsgYWRkRGVuZHJvbk5vdGVzVG9HcmFwaCB9IGZyb20gXCIuL0FsdGVybmF0aXZlSGllcmFyY2hpZXMvRGVuZHJvbk5vdGVzXCI7XHJcbmltcG9ydCB7IGFkZEZvbGRlck5vdGVzVG9HcmFwaCB9IGZyb20gXCIuL0FsdGVybmF0aXZlSGllcmFyY2hpZXMvRm9sZGVyTm90ZXNcIjtcclxuaW1wb3J0IHtcclxuICBhZGRITnNUb0dyYXBoLFxyXG4gIGdldEhpZXJhcmNoeU5vdGVJdGVtc1xyXG59IGZyb20gXCIuL0FsdGVybmF0aXZlSGllcmFyY2hpZXMvSGllcmFyY2h5Tm90ZXMvSGllcmFyY2h5Tm90ZXNcIjtcclxuaW1wb3J0IHtcclxuICBhZGRKdWdnbExpbmtzVG9HcmFwaCxcclxuICBnZXRKdWdnbExpbmtzXHJcbn0gZnJvbSBcIi4vQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9KdWdnbExpbmtzXCI7XHJcbmltcG9ydCB7IGFkZExpbmtOb3Rlc1RvR3JhcGggfSBmcm9tIFwiLi9BbHRlcm5hdGl2ZUhpZXJhcmNoaWVzL0xpbmtOb3Rlc1wiO1xyXG5pbXBvcnQgeyBhZGRSZWdleE5vdGVzVG9HcmFwaCB9IGZyb20gXCIuL0FsdGVybmF0aXZlSGllcmFyY2hpZXMvUmVnZXhOb3Rlc1wiO1xyXG5pbXBvcnQgeyBhZGRUYWdOb3Rlc1RvR3JhcGggfSBmcm9tIFwiLi9BbHRlcm5hdGl2ZUhpZXJhcmNoaWVzL1RhZ05vdGVzXCI7XHJcbmltcG9ydCB7IGFkZFRyYXZlcnNlTm90ZXNUb0dyYXBoIH0gZnJvbSBcIi4vQWx0ZXJuYXRpdmVIaWVyYXJjaGllcy9UcmF2ZXJzZU5vdGVzXCI7XHJcbmltcG9ydCB7XHJcbiAgQkNfQUxUUyxcclxuICBCQ19EVl9OT1RFLFxyXG4gIEJDX0ZPTERFUl9OT1RFLCBCQ19MSU5LX05PVEUsXHJcbiAgQkNfUkVHRVhfTk9URSxcclxuICBCQ19UQUdfTk9URSxcclxuICBCQ19UUkFWRVJTRV9OT1RFLFxyXG4gIGRyb3BIZWFkZXJPckFsaWFzLFxyXG4gIHNwbGl0TGlua3NSZWdleFxyXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSB7XHJcbiAgZHZGcm9udG1hdHRlckNhY2hlLFxyXG4gIGR2TGluayxcclxuICBSYXdWYWx1ZVxyXG59IGZyb20gXCIuL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4vbWFpblwiO1xyXG5pbXBvcnQgeyBhZGRBdW50c1VuY2xlcywgYWRkQ291c2lucywgYWRkU2libGluZ3NGcm9tU2FtZVBhcmVudCwgYWRkU2libGluZ3NQYXJlbnRJc1BhcmVudCwgYWRkU3RydWN0dXJhbEVxdWl2YWxlbmNlU2libGluZ3MgfSBmcm9tIFwiLi9SZWxhdGlvbnNcIjtcclxuaW1wb3J0IHtcclxuICBhZGROb2Rlc0lmTm90LFxyXG4gIGJ1aWxkT2JzR3JhcGgsXHJcbiAgZ2V0UmVmbGV4aXZlQ2xvc3VyZSxcclxuICBnZXRTb3VyY2VPcmRlcixcclxuICBnZXRUYXJnZXRPcmRlcixcclxuICBwb3B1bGF0ZU1haW5cclxufSBmcm9tIFwiLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcbmltcG9ydCB7IGl0ZXJhdGVIaWVycyB9IGZyb20gXCIuL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQge1xyXG4gIGdldEJhc2VGcm9tTURQYXRoLFxyXG4gIGdldERWQXBpLFxyXG4gIGdldERWQmFzZW5hbWVcclxufSBmcm9tIFwiLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcbmltcG9ydCB7IGRyYXdUcmFpbCB9IGZyb20gXCIuL1ZpZXdzL1RyYWlsVmlld1wiO1xyXG5cclxuZnVuY3Rpb24gZ2V0RFZNZXRhZGF0YUNhY2hlKHBsdWdpbjogQkNQbHVnaW4pIHtcclxuICBjb25zdCB7IGRiIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgYXBpID0gZ2V0RFZBcGkocGx1Z2luKTtcclxuXHJcbiAgZGIuc3RhcnQxRyhcImdldERWTWV0YWRhdGFDYWNoZVwiKTtcclxuICBjb25zdCBmcm9udG1zID0gYXBpLnBhZ2VzKCkudmFsdWVzXHJcbiAgZGIuZW5kMUcoeyBmcm9udG1zIH0pO1xyXG5cclxuICByZXR1cm4gZnJvbnRtcztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0T2JzTWV0YWRhdGFDYWNoZShwbHVnaW46IEJDUGx1Z2luLCBmaWxlczogVEZpbGVbXSkge1xyXG4gIGNvbnN0IHsgZGIgfSA9IHBsdWdpbjtcclxuICBkYi5zdGFydDFHKFwiZ2V0T2JzTWV0YWRhdGFDYWNoZVwiKTtcclxuXHJcbiAgY29uc3QgZnJvbnRtczogZHZGcm9udG1hdHRlckNhY2hlW10gPSBmaWxlcy5tYXAoKGZpbGUpID0+IHtcclxuICAgIGNvbnN0IHsgZnJvbnRtYXR0ZXIgfSA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpbGVDYWNoZShmaWxlKTtcclxuICAgIHJldHVybiBmcm9udG1hdHRlciA/IHsgZmlsZSwgLi4uZnJvbnRtYXR0ZXIgfSA6IHsgZmlsZSB9O1xyXG4gIH0pO1xyXG5cclxuICBkYi5lbmQxRyh7IGZyb250bXMgfSk7XHJcbiAgcmV0dXJuIGZyb250bXM7XHJcbn1cclxuXHJcbmNvbnN0IGlzRFZQcm94eSA9IChpdGVtOiBSYXdWYWx1ZSkgPT4gdHlwZW9mIGl0ZW0uZGVmYXVsdENvbXBhcmF0b3IgPT09IFwiZnVuY3Rpb25cIlxyXG5cclxuLyoqXHJcbiAqIEtlZXAgdW53cmFwcGluZyBhIHByb3hpZWQgaXRlbSB1bnRpbCBpdCBpc24ndCBvbmUgYW55bW9yZVxyXG4gKiBAcGFyYW0gIHtSYXdWYWx1ZX0gaXRlbVxyXG4gKi9cclxuZnVuY3Rpb24gdW5wcm94eShpdGVtOiBSYXdWYWx1ZSkge1xyXG4gIGNvbnN0IHVucHJveGllZCA9IFtdO1xyXG4gIGNvbnN0IHF1ZXVlID0gW2l0ZW1dO1xyXG5cclxuICB3aGlsZSAocXVldWUubGVuZ3RoKSB7XHJcbiAgICBjb25zdCBjdXJySXRlbSA9IHF1ZXVlLnNoaWZ0KCk7XHJcblxyXG4gICAgaWYgKGlzRFZQcm94eShjdXJySXRlbSkpIHF1ZXVlLnB1c2goLi4uY3Vyckl0ZW0udmFsdWVzKTtcclxuICAgIGVsc2UgdW5wcm94aWVkLnB1c2goY3Vyckl0ZW0pO1xyXG4gIH1cclxuICByZXR1cm4gdW5wcm94aWVkO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEdpdmVuIGEgYGR2Q2FjaGVbZmllbGRdYCB2YWx1ZSwgcGFyc2UgdGhlIGxpbmsocykgb3V0IG9mIGl0XHJcbiAqIEBwYXJhbSB7c3RyaW5nIHwgc3RyaW5nW10gfCBzdHJpbmdbXVtdIHwgZHZMaW5rIHwgZHZMaW5rW10gfCBQb3MgfCBURmlsZX0gdmFsdWVcclxuICovXHJcbmZ1bmN0aW9uIHBhcnNlRmllbGRWYWx1ZShcclxuICB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10gfCBzdHJpbmdbXVtdIHwgZHZMaW5rIHwgZHZMaW5rW10gfCBQb3MgfCBURmlsZVxyXG4pIHtcclxuICBpZiAoIXZhbHVlKSByZXR1cm4gW107XHJcblxyXG5cclxuICBjb25zdCBwYXJzZWQ6IHN0cmluZ1tdID0gW107XHJcbiAgdHJ5IHtcclxuXHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgIGNvbnN0IHNwbGl0cyA9IHZhbHVlLm1hdGNoKHNwbGl0TGlua3NSZWdleCk7XHJcblxyXG4gICAgICBpZiAoc3BsaXRzICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgbGlua05hbWVzID0gc3BsaXRzLm1hcCgobGluaykgPT4gZ2V0QmFzZUZyb21NRFBhdGgobGluay5tYXRjaChkcm9wSGVhZGVyT3JBbGlhcylbMV0pKTtcclxuICAgICAgICBwYXJzZWQucHVzaCguLi5saW5rTmFtZXMpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCByYXdWYWx1ZXM6IFJhd1ZhbHVlW10gPSBbdmFsdWVdLmZsYXQoNCk7XHJcbiAgICAgIGRlYnVnKC4uLnJhd1ZhbHVlcyk7XHJcblxyXG4gICAgICByYXdWYWx1ZXMuZm9yRWFjaCgocmF3SXRlbSkgPT4ge1xyXG4gICAgICAgIGlmICghcmF3SXRlbSkgcmV0dXJuO1xyXG5cclxuICAgICAgICBjb25zdCB1blByb3hpZWQgPSB1bnByb3h5KHJhd0l0ZW0pO1xyXG4gICAgICAgIHVuUHJveGllZC5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICAgICAgY29uc3QgcmF3QXNTdHJpbmcgPSB2YWx1ZS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBjb25zdCBzcGxpdHMgPSByYXdBc1N0cmluZy5tYXRjaChzcGxpdExpbmtzUmVnZXgpO1xyXG4gICAgICAgICAgICBpZiAoc3BsaXRzICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgc3RycyA9IHNwbGl0cy5tYXAoKGxpbmspID0+XHJcbiAgICAgICAgICAgICAgICBnZXRCYXNlRnJvbU1EUGF0aChsaW5rLm1hdGNoKGRyb3BIZWFkZXJPckFsaWFzKVsxXSlcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHBhcnNlZC5wdXNoKC4uLnN0cnMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGJhc2VuYW1lID0gZ2V0QmFzZUZyb21NRFBhdGgocmF3QXNTdHJpbmcpO1xyXG4gICAgICAgICAgICAgIHBhcnNlZC5wdXNoKGJhc2VuYW1lLnNwbGl0KFwiI1wiKVswXS5zcGxpdChcInxcIilbMF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLnBhdGggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBjb25zdCBiYXNlbmFtZSA9IGdldEJhc2VGcm9tTURQYXRoKHZhbHVlLnBhdGgpO1xyXG4gICAgICAgICAgICBpZiAoYmFzZW5hbWUgIT09IHVuZGVmaW5lZCkgcGFyc2VkLnB1c2goYmFzZW5hbWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYXJzZWQ7XHJcbiAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICBlcnJvcihlcnIpO1xyXG4gICAgcmV0dXJuIHBhcnNlZDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZE1haW5HKHBsdWdpbjogQkNQbHVnaW4pOiBQcm9taXNlPE11bHRpR3JhcGg+IHtcclxuICBjb25zdCBtYWluRyA9IG5ldyBNdWx0aUdyYXBoKCk7XHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHsgc2V0dGluZ3MsIGRiIH0gPSBwbHVnaW47XHJcbiAgICBjb25zdCB7IHVzZXJIaWVycywgQ1NWUGF0aHMsIHBhcnNlSnVnZ2xMaW5rc1dpdGhvdXRKdWdnbCwgaGllcmFyY2h5Tm90ZXMgfSA9XHJcbiAgICAgIHNldHRpbmdzO1xyXG4gICAgZGIuc3RhcnQyRyhcImluaXRHcmFwaHNcIik7XHJcblxyXG4gICAgaWYgKHVzZXJIaWVycy5sZW5ndGggPT09IDApIHtcclxuICAgICAgZGIuZW5kMkcoKTtcclxuICAgICAgbmV3IE5vdGljZShcIllvdSBkbyBub3QgaGF2ZSBhbnkgQnJlYWRjcnVtYnMgaGllcmFyY2hpZXMgc2V0IHVwLlwiKTtcclxuICAgICAgcmV0dXJuIG1haW5HO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZpbGVzID0gYXBwLnZhdWx0LmdldE1hcmtkb3duRmlsZXMoKTtcclxuICAgIGNvbnN0IGR2USA9IGFwcC5wbHVnaW5zLmVuYWJsZWRQbHVnaW5zLmhhcyhcImRhdGF2aWV3XCIpO1xyXG5cclxuICAgIGxldCBmcm9udG1zOiBkdkZyb250bWF0dGVyQ2FjaGVbXSA9IGR2UVxyXG4gICAgICA/IGdldERWTWV0YWRhdGFDYWNoZShwbHVnaW4pXHJcbiAgICAgIDogZ2V0T2JzTWV0YWRhdGFDYWNoZShwbHVnaW4sIGZpbGVzKTtcclxuXHJcbiAgICAvLyBpZiAoZnJvbnRtcy5zb21lKChmcm9udG0pID0+IGZyb250bSA9PT0gdW5kZWZpbmVkKSkge1xyXG4gICAgLy8gICBhd2FpdCB3YWl0KDIwMDApO1xyXG4gICAgLy8gICBmcm9udG1zID0gZHZRXHJcbiAgICAvLyAgICAgPyBnZXREVk1ldGFkYXRhQ2FjaGUocGx1Z2luKVxyXG4gICAgLy8gICAgIDogZ2V0T2JzTWV0YWRhdGFDYWNoZShwbHVnaW4sIGZpbGVzKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBjb25zdCBDU1ZSb3dzID0gQ1NWUGF0aHMgIT09IFwiXCIgPyBhd2FpdCBnZXRDU1ZSb3dzKHBsdWdpbikgOiBbXTtcclxuXHJcbiAgICBjb25zdCBlbGlnYWJsZUFsdHM6IHsgW2FsdEZpZWxkOiBzdHJpbmddOiBkdkZyb250bWF0dGVyQ2FjaGVbXSB9ID0ge307XHJcbiAgICBCQ19BTFRTLmZvckVhY2goKGFsdCkgPT4gKGVsaWdhYmxlQWx0c1thbHRdID0gW10pKTtcclxuXHJcbiAgICBkYi5zdGFydDJHKFwiYWRkRnJvbnRtYXR0ZXJUb0dyYXBoXCIpO1xyXG4gICAgZnJvbnRtcy5mb3JFYWNoKChwYWdlKSA9PiB7XHJcbiAgICAgIEJDX0FMVFMuZm9yRWFjaCgoYWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHBhZ2VbYWx0XSAhPT0gdW5kZWZpbmVkICYmIHBhZ2VbYWx0XSAhPT0gbnVsbClcclxuICAgICAgICAgIGVsaWdhYmxlQWx0c1thbHRdLnB1c2gocGFnZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgY29uc3QgYmFzZW5hbWUgPSBnZXREVkJhc2VuYW1lKHBhZ2UuZmlsZSk7XHJcbiAgICAgIGNvbnN0IHNvdXJjZU9yZGVyID0gZ2V0U291cmNlT3JkZXIocGFnZSk7XHJcblxyXG4gICAgICBpdGVyYXRlSGllcnModXNlckhpZXJzLCAoaGllciwgZGlyLCBmaWVsZCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHBhcnNlRmllbGRWYWx1ZShwYWdlW2ZpZWxkXSk7XHJcblxyXG4gICAgICAgIHZhbHVlcy5mb3JFYWNoKCh0YXJnZXQpID0+IHtcclxuICAgICAgICAgIGlmICh0YXJnZXQuc3RhcnRzV2l0aChcIjwlXCIpIHx8IHRhcmdldC5zdGFydHNXaXRoKFwie3tcIikpIHJldHVybjtcclxuICAgICAgICAgIGNvbnN0IHRhcmdldE9yZGVyID0gZ2V0VGFyZ2V0T3JkZXIoZnJvbnRtcywgdGFyZ2V0KTtcclxuXHJcbiAgICAgICAgICBwb3B1bGF0ZU1haW4oXHJcbiAgICAgICAgICAgIHNldHRpbmdzLFxyXG4gICAgICAgICAgICBtYWluRyxcclxuICAgICAgICAgICAgYmFzZW5hbWUsXHJcbiAgICAgICAgICAgIGZpZWxkLFxyXG4gICAgICAgICAgICB0YXJnZXQsXHJcbiAgICAgICAgICAgIHNvdXJjZU9yZGVyLFxyXG4gICAgICAgICAgICB0YXJnZXRPcmRlclxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoQ1NWUm93cy5sZW5ndGgpIGFkZENTVkNydW1icyhtYWluRywgQ1NWUm93cywgZGlyLCBmaWVsZCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZGIuZW5kMkcoKTtcclxuXHJcbiAgICAvLyBTRUNUSU9OICBKdWdnbCBMaW5rc1xyXG4gICAgY29uc3QganVnZ2xMaW5rcyA9XHJcbiAgICAgIGFwcC5wbHVnaW5zLnBsdWdpbnMuanVnZ2wgfHwgcGFyc2VKdWdnbExpbmtzV2l0aG91dEp1Z2dsXHJcbiAgICAgICAgPyBhd2FpdCBnZXRKdWdnbExpbmtzKHBsdWdpbiwgZmlsZXMpXHJcbiAgICAgICAgOiBbXTtcclxuXHJcbiAgICBpZiAoanVnZ2xMaW5rcy5sZW5ndGgpXHJcbiAgICAgIGFkZEp1Z2dsTGlua3NUb0dyYXBoKHNldHRpbmdzLCBqdWdnbExpbmtzLCBmcm9udG1zLCBtYWluRyk7XHJcblxyXG4gICAgLy8gIVNFQ1RJT04gIEp1Z2dsIExpbmtzXHJcblxyXG4gICAgZGIuc3RhcnQyRyhcIkFsdGVybmF0aXZlIEhpZXJhcmNoaWVzXCIpO1xyXG4gICAgLy8gU0VDVElPTiAgSGllcmFyY2h5IE5vdGVzXHJcbiAgICBkYi5zdGFydDJHKFwiSGllcmFyY2h5IE5vdGVzXCIpO1xyXG5cclxuICAgIGlmIChoaWVyYXJjaHlOb3Rlcy5sZW5ndGgpIHtcclxuICAgICAgZm9yIChjb25zdCBub3RlT3JGb2xkZXIgb2YgaGllcmFyY2h5Tm90ZXMpIHtcclxuICAgICAgICBpZiAobm90ZU9yRm9sZGVyLmVuZHNXaXRoKFwiL1wiKSkge1xyXG4gICAgICAgICAgY29uc3QgZm9sZGVyID0gYXBwLnZhdWx0LmdldEFic3RyYWN0RmlsZUJ5UGF0aChcclxuICAgICAgICAgICAgbm9ybWFsaXplUGF0aChub3RlT3JGb2xkZXIpXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIGlmICghKGZvbGRlciBpbnN0YW5jZW9mIFRGb2xkZXIpKSBjb250aW51ZTtcclxuICAgICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgZm9sZGVyLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIFRGaWxlKSB7XHJcbiAgICAgICAgICAgICAgYWRkSE5zVG9HcmFwaChcclxuICAgICAgICAgICAgICAgIHNldHRpbmdzLFxyXG4gICAgICAgICAgICAgICAgYXdhaXQgZ2V0SGllcmFyY2h5Tm90ZUl0ZW1zKGNoaWxkKSxcclxuICAgICAgICAgICAgICAgIG1haW5HXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBmaWxlID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3Qobm90ZU9yRm9sZGVyLCBcIlwiKTtcclxuICAgICAgICAgIGlmIChmaWxlKVxyXG4gICAgICAgICAgICBhZGRITnNUb0dyYXBoKFxyXG4gICAgICAgICAgICAgIHNldHRpbmdzLFxyXG4gICAgICAgICAgICAgIGF3YWl0IGdldEhpZXJhcmNoeU5vdGVJdGVtcyhmaWxlKSxcclxuICAgICAgICAgICAgICBtYWluR1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRiLmVuZDJHKCk7XHJcbiAgICAvLyAhU0VDVElPTiAgSGllcmFyY2h5IE5vdGVzXHJcblxyXG4gICAgZGIuc3RhcnQyRyhcIkZvbGRlciBOb3Rlc1wiKTtcclxuICAgIGFkZEZvbGRlck5vdGVzVG9HcmFwaChwbHVnaW4sIGVsaWdhYmxlQWx0c1tCQ19GT0xERVJfTk9URV0sIGZyb250bXMsIG1haW5HKTtcclxuICAgIGRiLmVuZDJHKCk7XHJcbiAgICBkYi5zdGFydDJHKFwiVGFnIE5vdGVzXCIpO1xyXG4gICAgYWRkVGFnTm90ZXNUb0dyYXBoKHBsdWdpbiwgZWxpZ2FibGVBbHRzW0JDX1RBR19OT1RFXSwgZnJvbnRtcywgbWFpbkcpO1xyXG4gICAgZGIuZW5kMkcoKTtcclxuICAgIGRiLnN0YXJ0MkcoXCJMaW5rIE5vdGVzXCIpO1xyXG4gICAgYWRkTGlua05vdGVzVG9HcmFwaChwbHVnaW4sIGVsaWdhYmxlQWx0c1tCQ19MSU5LX05PVEVdLCBmcm9udG1zLCBtYWluRyk7XHJcbiAgICBkYi5lbmQyRygpO1xyXG4gICAgZGIuc3RhcnQyRyhcIlJlZ2V4IE5vdGVzXCIpO1xyXG4gICAgYWRkUmVnZXhOb3Rlc1RvR3JhcGgocGx1Z2luLCBlbGlnYWJsZUFsdHNbQkNfUkVHRVhfTk9URV0sIGZyb250bXMsIG1haW5HKTtcclxuICAgIGRiLmVuZDJHKCk7XHJcbiAgICAvLyBwbHVnaW4uYWRkTmFtaW5nU3lzdGVtTm90ZXNUb0dyYXBoKGZyb250bXMsIG1haW5HKTtcclxuICAgIGRiLnN0YXJ0MkcoXCJUcmF2ZXJzZSBOb3Rlc1wiKTtcclxuICAgIGFkZFRyYXZlcnNlTm90ZXNUb0dyYXBoKFxyXG4gICAgICBwbHVnaW4sXHJcbiAgICAgIGVsaWdhYmxlQWx0c1tCQ19UUkFWRVJTRV9OT1RFXSxcclxuICAgICAgbWFpbkcsXHJcbiAgICAgIGJ1aWxkT2JzR3JhcGgoKVxyXG4gICAgKTtcclxuICAgIGRiLmVuZDJHKCk7XHJcbiAgICBkYi5zdGFydDJHKFwiRGVuZHJvbiBOb3Rlc1wiKTtcclxuICAgIGFkZERlbmRyb25Ob3Rlc1RvR3JhcGgocGx1Z2luLCBmcm9udG1zLCBtYWluRyk7XHJcbiAgICBkYi5lbmQyRygpO1xyXG4gICAgZGIuc3RhcnQyRyhcIkRhdGF2aWV3IE5vdGVzXCIpO1xyXG4gICAgYWRkRGF0YXZpZXdOb3Rlc1RvR3JhcGgocGx1Z2luLCBlbGlnYWJsZUFsdHNbQkNfRFZfTk9URV0sIGZyb250bXMsIG1haW5HKTtcclxuICAgIGRiLmVuZDJHKCk7XHJcbiAgICBkYi5zdGFydDJHKFwiRGF0ZSBOb3Rlc1wiKTtcclxuICAgIGFkZERhdGVOb3Rlc1RvR3JhcGgocGx1Z2luLCBmcm9udG1zLCBtYWluRyk7XHJcbiAgICBkYi5lbmQyRygpO1xyXG5cclxuICAgIGRiLmVuZDJHKCk7XHJcblxyXG4gICAgZmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4gYWRkTm9kZXNJZk5vdChtYWluRywgW2ZpbGUuYmFzZW5hbWVdKSk7XHJcbiAgICBkYi5lbmQyRyhcImdyYXBocyBpbml0ZWRcIiwgeyBtYWluRyB9KTtcclxuICAgIHJldHVybiBtYWluRztcclxuICB9IGNhdGNoIChlcnIpIHtcclxuICAgIGVycm9yKGVycik7XHJcbiAgICBwbHVnaW4uZGIuZW5kMkcoKTtcclxuICAgIHJldHVybiBtYWluRztcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBidWlsZENsb3NlZEcocGx1Z2luOiBCQ1BsdWdpbikge1xyXG4gIGNvbnN0IHsgbWFpbkcsIHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3Qge1xyXG4gICAgdXNlckhpZXJzLFxyXG4gICAgaW1wbGllZFJlbGF0aW9uczoge1xyXG4gICAgICBzYW1lUGFyZW50SXNTaWJsaW5nLFxyXG4gICAgICBwYXJlbnRzU2libGluZ3NJc1BhcmVudHMsXHJcbiAgICAgIGNvdXNpbnNJc1NpYmxpbmcsXHJcbiAgICAgIHNpYmxpbmdzU2libGluZ0lzU2libGluZyxcclxuICAgICAgc2libGluZ3NQYXJlbnRJc1BhcmVudCxcclxuICAgIH0sXHJcbiAgfSA9IHNldHRpbmdzO1xyXG4gIGxldCBjbG9zZWRHID0gZ2V0UmVmbGV4aXZlQ2xvc3VyZShtYWluRywgdXNlckhpZXJzKTtcclxuXHJcbiAgaWYgKHNhbWVQYXJlbnRJc1NpYmxpbmcpIGFkZFNpYmxpbmdzRnJvbVNhbWVQYXJlbnQoY2xvc2VkRywgc2V0dGluZ3MpO1xyXG4gIGlmIChzaWJsaW5nc1BhcmVudElzUGFyZW50KSBhZGRTaWJsaW5nc1BhcmVudElzUGFyZW50KGNsb3NlZEcpO1xyXG4gIGlmIChwYXJlbnRzU2libGluZ3NJc1BhcmVudHMpIGFkZEF1bnRzVW5jbGVzKGNsb3NlZEcpO1xyXG4gIGlmIChjb3VzaW5zSXNTaWJsaW5nKSBhZGRDb3VzaW5zKGNsb3NlZEcpO1xyXG4gIGlmIChzaWJsaW5nc1NpYmxpbmdJc1NpYmxpbmcpIGFkZFN0cnVjdHVyYWxFcXVpdmFsZW5jZVNpYmxpbmdzKGNsb3NlZEcpO1xyXG5cclxuICByZXR1cm4gY2xvc2VkRztcclxufVxyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZnJlc2hJbmRleChwbHVnaW46IEJDUGx1Z2luKSB7XHJcbiAgaWYgKCFwbHVnaW4uYWN0aXZlTGVhZkNoYW5nZSkgcGx1Z2luLnJlZ2lzdGVyQWN0aXZlTGVhZkNoYW5nZUV2ZW50KCk7XHJcbiAgaWYgKCFwbHVnaW4ubGF5b3V0Q2hhbmdlKSBwbHVnaW4ucmVnaXN0ZXJMYXlvdXRDaGFuZ2VFdmVudCgpO1xyXG5cclxuICBwbHVnaW4ubWFpbkcgPSBhd2FpdCBidWlsZE1haW5HKHBsdWdpbik7XHJcbiAgcGx1Z2luLmNsb3NlZEcgPSBidWlsZENsb3NlZEcocGx1Z2luKTtcclxuXHJcbiAgZm9yIChjb25zdCB7IHR5cGUgfSBvZiBwbHVnaW4uVklFV1MpXHJcbiAgICBhd2FpdCBwbHVnaW4uZ2V0QWN0aXZlVFlQRVZpZXcodHlwZSk/LmRyYXcoKTtcclxuXHJcbiAgaWYgKHBsdWdpbi5zZXR0aW5ncy5zaG93QkNzKSBhd2FpdCBkcmF3VHJhaWwocGx1Z2luKTtcclxuICBpZiAocGx1Z2luLnNldHRpbmdzLnNob3dSZWZyZXNoTm90aWNlKSBuZXcgTm90aWNlKFwiQkMgSW5kZXggcmVmcmVzaGVkXCIpO1xyXG59XHJcbiIsICJpbXBvcnQgdHlwZSB7IE11bHRpR3JhcGggfSBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgeyBkZWJ1ZyB9IGZyb20gXCJsb2dsZXZlbFwiO1xyXG5pbXBvcnQgeyBub3JtYWxpemVQYXRoIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IGRyb3BXaWtpbGlua3MgfSBmcm9tIFwiLi4vVXRpbHMvT2JzaWRpYW5VdGlsc1wiO1xyXG5pbXBvcnQgdHlwZSB7IERpcmVjdGlvbnMgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQgeyBhZGRFZGdlSWZOb3QsIGFkZE5vZGVzSWZOb3QgfSBmcm9tIFwiLi4vVXRpbHMvZ3JhcGhVdGlsc1wiO1xyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENTVlJvd3MocGx1Z2luOiBCQ1BsdWdpbikge1xyXG4gIGNvbnN0IHsgQ1NWUGF0aHMgfSA9IHBsdWdpbi5zZXR0aW5ncztcclxuICBjb25zdCBDU1ZSb3dzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9W10gPSBbXTtcclxuICBpZiAoQ1NWUGF0aHMgPT09IFwiXCIpIHJldHVybiBDU1ZSb3dzO1xyXG5cclxuICBjb25zdCBmdWxsUGF0aCA9IG5vcm1hbGl6ZVBhdGgoQ1NWUGF0aHMpO1xyXG5cclxuICBjb25zdCBjb250ZW50ID0gYXdhaXQgYXBwLnZhdWx0LmFkYXB0ZXIucmVhZChmdWxsUGF0aCk7XHJcbiAgY29uc3QgbGluZXMgPSBjb250ZW50LnNwbGl0KFwiXFxuXCIpO1xyXG5cclxuICBjb25zdCBoZWFkZXJzID0gbGluZXNbMF0uc3BsaXQoXCIsXCIpLm1hcCgoaGVhZCkgPT4gaGVhZC50cmltKCkpO1xyXG4gIGxpbmVzLnNsaWNlKDEpLmZvckVhY2goKHJvdykgPT4ge1xyXG4gICAgY29uc3Qgcm93T2JqID0ge307XHJcbiAgICByb3dcclxuICAgICAgLnNwbGl0KFwiLFwiKVxyXG4gICAgICAubWFwKChoZWFkKSA9PiBkcm9wV2lraWxpbmtzKGhlYWQudHJpbSgpKSlcclxuICAgICAgLmZvckVhY2goKGl0ZW0sIGkpID0+IHtcclxuICAgICAgICByb3dPYmpbaGVhZGVyc1tpXV0gPSBpdGVtO1xyXG4gICAgICB9KTtcclxuICAgIGRlYnVnKHsgcm93T2JqIH0pO1xyXG4gICAgQ1NWUm93cy5wdXNoKHJvd09iaik7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIENTVlJvd3M7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRDU1ZDcnVtYnMoXHJcbiAgZzogTXVsdGlHcmFwaCxcclxuICBDU1ZSb3dzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9W10sXHJcbiAgZGlyOiBEaXJlY3Rpb25zLFxyXG4gIGZpZWxkOiBzdHJpbmdcclxuKSB7XHJcbiAgQ1NWUm93cy5mb3JFYWNoKChyb3cpID0+IHtcclxuICAgIGFkZE5vZGVzSWZOb3QoZywgW3Jvdy5maWxlXSk7XHJcbiAgICBpZiAoZmllbGQgPT09IFwiXCIgfHwgIXJvd1tmaWVsZF0pIHJldHVybjtcclxuXHJcbiAgICBhZGROb2Rlc0lmTm90KGcsIFtyb3dbZmllbGRdXSk7XHJcbiAgICBhZGRFZGdlSWZOb3QoZywgcm93LmZpbGUsIHJvd1tmaWVsZF0sIHsgZGlyLCBmaWVsZCB9KTtcclxuICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHsgaW5mbyB9IGZyb20gXCJsb2dsZXZlbFwiO1xyXG5pbXBvcnQge1xyXG4gIEZyb250TWF0dGVyQ2FjaGUsXHJcbiAgcGFyc2VZYW1sLFxyXG4gIHN0cmluZ2lmeVlhbWwsXHJcbiAgVEZpbGUsXHJcbn0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7XHJcbiAgaXNJblZhdWx0LFxyXG4gIHdhaXQsXHJcbiAgd2FpdEZvclJlc29sdmVkTGlua3MsXHJcbn0gZnJvbSBcIm9ic2lkaWFuLWNvbW11bml0eS1saWIvZGlzdC91dGlsc1wiO1xyXG5pbXBvcnQgdHlwZSB7IE1ldGFlZGl0QXBpIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgc3BsaXRBbmRUcmltIH0gZnJvbSBcIi4vZ2VuZXJhbFV0aWxzXCI7XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0U2V0dGluZ3MgPSAoKSA9PiBhcHAucGx1Z2lucy5wbHVnaW5zLmJyZWFkY3J1bWJzLnNldHRpbmdzXHJcblxyXG5leHBvcnQgY29uc3QgZ2V0Q3VyckZpbGUgPSAoKTogVEZpbGUgfCBudWxsID0+IGFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlRmlsZSgpXHJcblxyXG4vKipcclxuICogR2V0IGJhc2VuYW1lIGZyb20gYSAqKk1hcmtkb3duKiogYHBhdGhgXHJcbiAqIEBwYXJhbSAge3N0cmluZ30gcGF0aFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGdldEJhc2VGcm9tTURQYXRoID0gKHBhdGg6IHN0cmluZykgPT4ge1xyXG4gIGNvbnN0IHNwbGl0U2xhc2ggPSBwYXRoLnNwbGl0KFwiL1wiKS5sYXN0KCk7XHJcbiAgaWYgKHNwbGl0U2xhc2guZW5kc1dpdGgoXCIubWRcIikpIHtcclxuICAgIHJldHVybiBzcGxpdFNsYXNoLnNwbGl0KFwiLm1kXCIpLnNsaWNlKDAsIC0xKS5qb2luKFwiLlwiKTtcclxuICB9IGVsc2UgcmV0dXJuIHNwbGl0U2xhc2g7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0RFZCYXNlbmFtZSA9IChmaWxlOiBURmlsZSkgPT4gZmlsZS5iYXNlbmFtZSB8fCBmaWxlLm5hbWU7XHJcbmV4cG9ydCBjb25zdCBnZXRGb2xkZXJOYW1lID0gKGZpbGU6IFRGaWxlKTogc3RyaW5nID0+XHJcbiAgLy9AdHMtaWdub3JlXHJcbiAgZmlsZT8ucGFyZW50Py5uYW1lIHx8IGZpbGUuZm9sZGVyO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VXaWtpKHN0cjogc3RyaW5nLCB3aWtpUSA9IHRydWUpIHtcclxuICBsZXQgY29weSA9IHN0ci5zbGljZSgpO1xyXG4gIGlmICh3aWtpUSkge1xyXG4gICAgY29weSA9IFwiW1tcIiArIGNvcHk7XHJcbiAgICBjb3B5ICs9IFwiXV1cIjtcclxuICB9XHJcbiAgcmV0dXJuIGNvcHk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkcm9wV2lraWxpbmtzKHN0cjogc3RyaW5nKSB7XHJcbiAgbGV0IGNvcHkgPSBzdHIuc2xpY2UoKTtcclxuICBpZiAoY29weS5zdGFydHNXaXRoKFwiW1tcIikgJiYgY29weS5lbmRzV2l0aChcIl1dXCIpKSBjb3B5ID0gY29weS5zbGljZSgyLCAtMik7XHJcbiAgcmV0dXJuIGNvcHk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRzIG9yIHVwZGF0ZXMgdGhlIGdpdmVuIHlhbWwgYGtleWAgdG8gYHZhbHVlYCBpbiB0aGUgZ2l2ZW4gVEZpbGVcclxuICogQHBhcmFtICB7c3RyaW5nfSBrZXlcclxuICogQHBhcmFtICB7c3RyaW5nfSB2YWx1ZVxyXG4gKiBAcGFyYW0gIHtURmlsZX0gZmlsZVxyXG4gKiBAcGFyYW0gIHtGcm9udE1hdHRlckNhY2hlfHVuZGVmaW5lZH0gZnJvbnRtYXR0ZXJcclxuICogQHBhcmFtICB7TWV0YWVkaXRBcGl9IGFwaVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZU9yVXBkYXRlWWFtbCA9IGFzeW5jIChcclxuICBrZXk6IHN0cmluZyxcclxuICB2YWx1ZTogc3RyaW5nLFxyXG4gIGZpbGU6IFRGaWxlLFxyXG4gIGZyb250bWF0dGVyOiBGcm9udE1hdHRlckNhY2hlIHwgdW5kZWZpbmVkLFxyXG4gIGFwaTogTWV0YWVkaXRBcGlcclxuKSA9PiB7XHJcbiAgY29uc3QgdmFsdWVTdHIgPSB2YWx1ZS50b1N0cmluZygpO1xyXG5cclxuICBpZiAoIWZyb250bWF0dGVyIHx8IGZyb250bWF0dGVyW2tleV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgaW5mbyhgQ3JlYXRpbmc6ICR7a2V5fTogJHt2YWx1ZVN0cn1gKTtcclxuICAgIGF3YWl0IGFwaS5jcmVhdGVZYW1sUHJvcGVydHkoa2V5LCBgWycke3ZhbHVlU3RyfSddYCwgZmlsZSk7XHJcbiAgfSBlbHNlIGlmIChbLi4uW2Zyb250bWF0dGVyW2tleV1dXS5mbGF0KDMpLnNvbWUoKHZhbCkgPT4gdmFsID09IHZhbHVlU3RyKSkge1xyXG4gICAgaW5mbyhcIkFscmVhZHkgRXhpc3RzIVwiKTtcclxuICAgIHJldHVybjtcclxuICB9IGVsc2Uge1xyXG4gICAgY29uc3Qgb2xkVmFsdWVGbGF0OiBzdHJpbmdbXSA9IFsuLi5bZnJvbnRtYXR0ZXJba2V5XV1dLmZsYXQoNCk7XHJcbiAgICBjb25zdCBuZXdWYWx1ZSA9IFsuLi5vbGRWYWx1ZUZsYXQsIGAnJHt2YWx1ZVN0cn0nYF07XHJcbiAgICBpbmZvKGBVcGRhdGluZzogJHtrZXl9OiAke25ld1ZhbHVlfWApO1xyXG4gICAgYXdhaXQgYXBpLnVwZGF0ZShrZXksIGBbJHtuZXdWYWx1ZS5qb2luKFwiLCBcIil9XWAsIGZpbGUpO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjaGFuZ2VZYW1sKHlhbWw6IHN0cmluZywga2V5OiBzdHJpbmcsIG5ld1ZhbDogc3RyaW5nKTogc3RyaW5nIHtcclxuICBpZiAoeWFtbCA9PT0gXCJcIikge1xyXG4gICAgcmV0dXJuIGAke2tleX06IFsnJHtuZXdWYWx9J11gO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zdCBwYXJzZWQ6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSBwYXJzZVlhbWwoeWFtbCk7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHBhcnNlZFtrZXldO1xyXG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcGFyc2VkW2tleV0gPSBuZXdWYWw7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWx1ZSAhPT0gbmV3VmFsKSB7XHJcbiAgICAgIHBhcnNlZFtrZXldID0gW3ZhbHVlLCBuZXdWYWxdO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgdHlwZW9mIHZhbHVlPy5bMF0gPT09IFwic3RyaW5nXCIgJiZcclxuICAgICAgdmFsdWUuaW5jbHVkZXMgJiZcclxuICAgICAgIXZhbHVlLmluY2x1ZGVzKG5ld1ZhbClcclxuICAgICkge1xyXG4gICAgICBwYXJzZWRba2V5XSA9IFsuLi52YWx1ZSwgbmV3VmFsXTtcclxuICAgIH1cclxuICAgIC8vIGVsc2UgaWYgKG90aGVyIHR5cGVzIG9mIHZhbHVlcy4uLilcclxuICAgIHJldHVybiBzdHJpbmdpZnlZYW1sKHBhcnNlZCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3BsaXRBdFlhbWwoY29udGVudDogc3RyaW5nKTogW3N0cmluZywgc3RyaW5nXSB7XHJcbiAgaWYgKCFjb250ZW50LnN0YXJ0c1dpdGgoXCItLS1cXG5cIikpIHJldHVybiBbXCJcIiwgY29udGVudF07XHJcbiAgZWxzZSB7XHJcbiAgICBjb25zdCBzcGxpdHMgPSBjb250ZW50LnNwbGl0KFwiLS0tXCIpO1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgc3BsaXRzLnNsaWNlKDAsIDIpLmpvaW4oXCItLS1cIikgKyBcIi0tLVwiLFxyXG4gICAgICBzcGxpdHMuc2xpY2UoMikuam9pbihcIi0tLVwiKSxcclxuICAgIF07XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgZHJvcEhhc2ggPSAodGFnOiBzdHJpbmcpID0+XHJcbiAgdGFnLnN0YXJ0c1dpdGgoXCIjXCIpID8gdGFnLnNsaWNlKDEpIDogdGFnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGFkZEhhc2ggPSAodGFnOiBzdHJpbmcpID0+ICh0YWcuc3RhcnRzV2l0aChcIiNcIikgPyB0YWcgOiBgIyR7dGFnfWApO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFsdChub2RlOiBzdHJpbmcsIHBsdWdpbjogQkNQbHVnaW4pOiBzdHJpbmcgfCBudWxsIHtcclxuICBjb25zdCB7IGFsdExpbmtGaWVsZHMsIHNob3dBbGxBbGlhc2VzIH0gPSBwbHVnaW4uc2V0dGluZ3M7XHJcbiAgaWYgKGFsdExpbmtGaWVsZHMubGVuZ3RoKSB7XHJcbiAgICBjb25zdCBmaWxlID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3Qobm9kZSwgXCJcIik7XHJcbiAgICBpZiAoZmlsZSkge1xyXG4gICAgICBjb25zdCBtZXRhZGF0YSA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpbGVDYWNoZShmaWxlKTtcclxuICAgICAgZm9yIChjb25zdCBhbHRGaWVsZCBvZiBhbHRMaW5rRmllbGRzKSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBtZXRhZGF0YT8uZnJvbnRtYXR0ZXI/LlthbHRGaWVsZF07XHJcblxyXG4gICAgICAgIGNvbnN0IGFycjogc3RyaW5nW10gPVxyXG4gICAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gc3BsaXRBbmRUcmltKHZhbHVlKSA6IHZhbHVlO1xyXG4gICAgICAgIGlmICh2YWx1ZSkgcmV0dXJuIHNob3dBbGxBbGlhc2VzID8gYXJyLmpvaW4oXCIsIFwiKSA6IGFyclswXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0gZWxzZSByZXR1cm4gbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JDYWNoZShwbHVnaW46IEJDUGx1Z2luKSB7XHJcbiAgaWYgKGFwcC5wbHVnaW5zLmVuYWJsZWRQbHVnaW5zLmhhcyhcImRhdGF2aWV3XCIpKSB7XHJcbiAgICBsZXQgYmFzZW5hbWU6IHN0cmluZztcclxuICAgIHdoaWxlICghYmFzZW5hbWUgfHwgIWFwcC5wbHVnaW5zLnBsdWdpbnMuZGF0YXZpZXcuYXBpLnBhZ2UoYmFzZW5hbWUpKSB7XHJcbiAgICAgIGF3YWl0IHdhaXQoMTAwKTtcclxuICAgICAgYmFzZW5hbWUgPSBnZXRDdXJyRmlsZSgpPy5iYXNlbmFtZTtcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgYXdhaXQgd2FpdEZvclJlc29sdmVkTGlua3MoYXBwKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBsaW5rQ2xhc3MgPSAodG86IHN0cmluZywgcmVhbFEgPSB0cnVlKSA9PlxyXG4gIGBpbnRlcm5hbC1saW5rIEJDLUxpbmsgJHtpc0luVmF1bHQodG8pID8gXCJcIiA6IFwiaXMtdW5yZXNvbHZlZFwifSAke3JlYWxRID8gXCJcIiA6IFwiQkMtSW1wbGllZFwiXHJcbiAgfWA7XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0RFZBcGkgPSAocGx1Z2luOiBCQ1BsdWdpbikgPT5cclxuICBhcHAucGx1Z2lucy5wbHVnaW5zLmRhdGF2aWV3Py5hcGk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNJbnNpZGVZYW1sKCk6IGJvb2xlYW4gfCBudWxsIHtcclxuICBjb25zdCB7IHdvcmtzcGFjZSwgbWV0YWRhdGFDYWNoZSB9ID0gYXBwO1xyXG4gIGNvbnN0IHsgYWN0aXZlTGVhZiB9ID0gd29ya3NwYWNlO1xyXG4gIGNvbnN0IHtcclxuICAgIHN0YXRlOiB7IG1vZGUgfSxcclxuICB9ID0gYWN0aXZlTGVhZi5nZXRWaWV3U3RhdGUoKTtcclxuXHJcbiAgaWYgKG1vZGUgIT09IFwic291cmNlXCIpIHJldHVybiBudWxsO1xyXG5cclxuICBjb25zdCB7IGVkaXRvciB9ID0gYWN0aXZlTGVhZi52aWV3O1xyXG5cclxuICBjb25zdCBmaWxlID0gZ2V0Q3VyckZpbGUoKTtcclxuICBpZiAoIWZpbGUpIHJldHVybiBudWxsO1xyXG5cclxuICBjb25zdCB7IGZyb250bWF0dGVyIH0gPSBtZXRhZGF0YUNhY2hlLmdldEZpbGVDYWNoZShmaWxlKTtcclxuICBpZiAoIWZyb250bWF0dGVyKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gZnJvbnRtYXR0ZXIucG9zaXRpb247XHJcbiAgY29uc3QgY3Vyck9mZiA9IGVkaXRvci5wb3NUb09mZnNldChlZGl0b3IuZ2V0Q3Vyc29yKCkpO1xyXG4gIGlmIChjdXJyT2ZmID49IHN0YXJ0Lm9mZnNldCAmJiBjdXJyT2ZmIDw9IGVuZC5vZmZzZXQpIHJldHVybiB0cnVlO1xyXG4gIGVsc2UgcmV0dXJuIGZhbHNlO1xyXG59XHJcbiIsICJpbXBvcnQgeyB3YXJuIH0gZnJvbSBcImxvZ2xldmVsXCI7XHJcbmltcG9ydCB7IGRyb3BIZWFkZXJPckFsaWFzLCByZWdORmxhZ3MsIHNwbGl0TGlua3NSZWdleCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHR5cGUgeyBCQ1NldHRpbmdzIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzdW0oYXJyOiBudW1iZXJbXSk6IG51bWJlciB7XHJcbiAgcmV0dXJuIGFyci5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGlzZShhcnI6IG51bWJlcltdKTogbnVtYmVyW10ge1xyXG4gIGNvbnN0IG1heCA9IE1hdGgubWF4KC4uLmFycik7XHJcbiAgcmV0dXJuIGFyci5tYXAoKGl0ZW0pID0+IGl0ZW0gLyBtYXgpO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgaXNTdWJzZXQgPSA8VD4oYXJyMTogVFtdLCBhcnIyOiBUW10pOiBib29sZWFuID0+XHJcbiAgYXJyMS5ldmVyeSgodmFsdWUpID0+IGFycjIuaW5jbHVkZXModmFsdWUpKTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzcGxpdEFuZERyb3Aoc3RyOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgcmV0dXJuIChcclxuICAgIHN0clxyXG4gICAgICA/Lm1hdGNoKHNwbGl0TGlua3NSZWdleClcclxuICAgICAgPy5tYXAoKGxpbmspID0+IGxpbmsubWF0Y2goZHJvcEhlYWRlck9yQWxpYXMpPy5bMV0pID8/IFtdXHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGRyb3BQYXRoID0gKHBhdGg6IHN0cmluZykgPT4gcGF0aC5yZXBsYWNlKC9eLipcXC8vLCBcIlwiKTtcclxuZXhwb3J0IGNvbnN0IGRyb3BEZW5kcm9uID0gKHBhdGg6IHN0cmluZywgc2V0dGluZ3M6IEJDU2V0dGluZ3MpID0+XHJcbiAgc2V0dGluZ3MudHJpbURlbmRyb25Ob3Rlc1xyXG4gICAgPyBwYXRoLnNwbGl0KHNldHRpbmdzLmRlbmRyb25Ob3RlRGVsaW1pdGVyKS5sYXN0KClcclxuICAgIDogcGF0aDtcclxuXHJcbmV4cG9ydCBjb25zdCBkcm9wUGF0aE5EZW5kcm9uID0gKHBhdGg6IHN0cmluZywgc2V0dGluZ3M6IEJDU2V0dGluZ3MpID0+XHJcbiAgZHJvcERlbmRyb24oZHJvcFBhdGgocGF0aCksIHNldHRpbmdzKTtcclxuXHJcbmV4cG9ydCBjb25zdCBkcm9wRm9sZGVyID0gKHBhdGg6IHN0cmluZykgPT5cclxuICBwYXRoLnNwbGl0KFwiL1wiKS5sYXN0KCkuc3BsaXQoXCIuXCIpLnNsaWNlKDAsIC0xKS5qb2luKFwiLlwiKTtcclxuXHJcbmV4cG9ydCBjb25zdCBzcGxpdEFuZFRyaW0gPSAoZmllbGRzOiBzdHJpbmcpOiBzdHJpbmdbXSA9PiB7XHJcbiAgaWYgKCFmaWVsZHMgfHwgZmllbGRzID09PSBcIlwiKSByZXR1cm4gW107XHJcbiAgZWxzZSByZXR1cm4gZmllbGRzLnNwbGl0KFwiLFwiKS5tYXAoKHN0cikgPT4gc3RyLnRyaW0oKSk7XHJcbn07XHJcblxyXG4vKipcclxuICogUGFkIGFuIGFycmF5IHdpdGggYSBmaWxsZXIgdmFsdWUgdG8gYSBzcGVjaWZpZWQgbGVuZ3RoLlxyXG4gKiBAcGFyYW0ge1RbXX0gYXJyIC0gVGhlIGFycmF5IHRvIHBhZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGZpbmFsTGVuZ3RoIC0gVGhlIGZpbmFsIGxlbmd0aCBvZiB0aGUgYXJyYXlcclxuICogQHBhcmFtIHtzdHJpbmd9IFtmaWxsZXI9XCJcIl0gLSBUaGUgZmlsbGVyIHRvIHVzZSBpZiB0aGUgYXJyYXkgaXMgdG9vIHNob3J0LlxyXG4gKiBAcmV0dXJucyB7KFQgfCBzdHJpbmcpW119IFRoZSBhcnJheSB3aXRoIHRoZSBuZXcgdmFsdWVzLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHBhZEFycmF5PFQ+KFxyXG4gIGFycjogVFtdLFxyXG4gIGZpbmFsTGVuZ3RoOiBudW1iZXIsXHJcbiAgZmlsbGVyOiBzdHJpbmcgPSBcIlwiXHJcbik6IChUIHwgc3RyaW5nKVtdIHtcclxuICBjb25zdCBjb3B5OiAoVCB8IHN0cmluZylbXSA9IFsuLi5hcnJdO1xyXG4gIGNvbnN0IGN1cnJMZW5ndGggPSBjb3B5Lmxlbmd0aDtcclxuICBpZiAoY3Vyckxlbmd0aCA+IGZpbmFsTGVuZ3RoKVxyXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQ3VycmVudCBsZW5ndGggaXMgZ3JlYXRlciB0aGFuIGZpbmFsIGxlbmd0aFwiKTtcclxuICBlbHNlIGlmIChjdXJyTGVuZ3RoID09PSBmaW5hbExlbmd0aCkgcmV0dXJuIGNvcHk7XHJcbiAgZWxzZSB7XHJcbiAgICBmb3IgKGxldCBpID0gY3Vyckxlbmd0aDsgaSA8IGZpbmFsTGVuZ3RoOyBpKyspIGNvcHkucHVzaChmaWxsZXIpO1xyXG4gICAgcmV0dXJuIGNvcHk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogdHJhbnNwb3NlKEEpIHJldHVybnMgdGhlIHRyYW5zcG9zZSBvZiBBLlxyXG4gKiBAcGFyYW0ge1RbXVtdfSBBIC0gVGhlIG1hdHJpeCB0byB0cmFuc3Bvc2UuXHJcbiAqIEByZXR1cm5zIHtUW11bXX0gQSAyRCBhcnJheSBvZiB0aGUgdHJhbnNwb3NlZCBtYXRyaXguXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNwb3NlPFQ+KEE6IFRbXVtdKTogVFtdW10ge1xyXG4gIGNvbnN0IGNvbHMgPSBBWzBdLmxlbmd0aDtcclxuICBjb25zdCBBVDogVFtdW10gPSBbXTtcclxuXHJcbiAgZm9yIChsZXQgaiA9IDA7IGogPCBjb2xzOyBqKyspIEFULnB1c2goQS5tYXAoKHJvdykgPT4gcm93W2pdKSk7XHJcblxyXG4gIHJldHVybiBBVDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdpdmVuIGFuIGFycmF5IG9mIHN0cmluZ3MsIHJldHVybiBhbiBhcnJheSBvZiBvYmplY3RzIHRoYXQgcmVwcmVzZW50IHRoZSBydW5zIG9mIGNvbnNlY3V0aXZlIHN0cmluZ3NcclxuICogaW4gdGhlIGFycmF5LlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gYXJyXHJcbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIG9iamVjdHMgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XHJcbiAqXHJcbiAqICAgYHZhbHVlYDogdGhlIHZhbHVlIG9mIHRoZSBydW5cclxuICpcclxuICogICBgZmlyc3RgOiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIHJ1blxyXG4gKlxyXG4gKiAgIGBsYXN0YDogdGhlIGluZGV4IG9mIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIHJ1blxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJ1bnMoXHJcbiAgYXJyOiBzdHJpbmdbXVxyXG4pOiB7IHZhbHVlOiBzdHJpbmc7IGZpcnN0OiBudW1iZXI7IGxhc3Q6IG51bWJlciB9W10ge1xyXG4gIGNvbnN0IHJ1bnM6IHsgdmFsdWU6IHN0cmluZzsgZmlyc3Q6IG51bWJlcjsgbGFzdDogbnVtYmVyIH1bXSA9IFtdO1xyXG4gIGxldCBpID0gMDtcclxuICB3aGlsZSAoaSA8IGFyci5sZW5ndGgpIHtcclxuICAgIGNvbnN0IGN1cnJWYWx1ZSA9IGFycltpXTtcclxuICAgIHJ1bnMucHVzaCh7IHZhbHVlOiBjdXJyVmFsdWUsIGZpcnN0OiBpLCBsYXN0OiB1bmRlZmluZWQgfSk7XHJcbiAgICB3aGlsZSAoY3VyclZhbHVlID09PSBhcnJbaV0pIHtcclxuICAgICAgaSsrO1xyXG4gICAgfVxyXG4gICAgcnVucy5sYXN0KCkubGFzdCA9IGkgLSAxO1xyXG4gIH1cclxuICByZXR1cm4gcnVucztcclxufVxyXG5cclxuLy8gU09VUkNFIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzk5NjA5MDgvcGVybXV0YXRpb25zLWluLWphdmFzY3JpcHRcclxuLyoqXHJcbiAqIEdpdmVuIGEgcGVybXV0YXRpb24sIHJldHVybiBhbGwgcG9zc2libGUgcGVybXV0YXRpb25zIG9mIHRoYXQgcGVybXV0YXRpb24uXHJcbiAqIEBwYXJhbSBwZXJtdXRhdGlvbiAtIHRoZSBhcnJheSB0byBiZSBwZXJtdXRlZFxyXG4gKiBAcmV0dXJucyBgWyBbIDEsIDIsIDMgXSwgWyAxLCAzLCAyIF0sIFsgMiwgMSwgMyBdLCBbIDIsIDMsIDEgXSwgWyAzLCAxLCAyIF0sIFsgMywgMiwgMSBdIF1gXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcGVybXV0ZShwZXJtdXRhdGlvbjogYW55W10pOiBhbnlbXVtdIHtcclxuICBjb25zdCBsZW5ndGggPSBwZXJtdXRhdGlvbi5sZW5ndGgsXHJcbiAgICByZXN1bHQgPSBbcGVybXV0YXRpb24uc2xpY2UoKV0sXHJcbiAgICBjID0gbmV3IEFycmF5KGxlbmd0aCkuZmlsbCgwKTtcclxuXHJcbiAgbGV0IGkgPSAxLFxyXG4gICAgazogbnVtYmVyLFxyXG4gICAgcDogbnVtYmVyO1xyXG5cclxuICB3aGlsZSAoaSA8IGxlbmd0aCkge1xyXG4gICAgaWYgKGNbaV0gPCBpKSB7XHJcbiAgICAgIGsgPSBpICUgMiAmJiBjW2ldO1xyXG4gICAgICBwID0gcGVybXV0YXRpb25baV07XHJcbiAgICAgIHBlcm11dGF0aW9uW2ldID0gcGVybXV0YXRpb25ba107XHJcbiAgICAgIHBlcm11dGF0aW9uW2tdID0gcDtcclxuICAgICAgKytjW2ldO1xyXG4gICAgICBpID0gMTtcclxuICAgICAgcmVzdWx0LnB1c2gocGVybXV0YXRpb24uc2xpY2UoKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjW2ldID0gMDtcclxuICAgICAgKytpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgcmFuZ2UgPSAobjogbnVtYmVyKSA9PiBbLi4uQXJyYXkobikua2V5cygpXTtcclxuXHJcbi8qKlxyXG4gKiBcIkdpdmVuIHR3byBhcnJheXMsIHJldHVybiB0aGUgZWxlbWVudHMgaW4gdGhlIGZpcnN0IGFycmF5IHRoYXQgYXJlIG5vdCBpbiB0aGUgc2Vjb25kIGFycmF5LlwiXHJcbiAqIEBwYXJhbSB7VFtdfSBBIC0gdGhlIGFycmF5IG9mIGl0ZW1zIHRvIGJlIGZpbHRlcmVkXHJcbiAqIEBwYXJhbSB7VFtdfSBCIC0gdGhlIGFycmF5IG9mIGl0ZW1zIHRoYXQgYXJlIG5vdCBpbiBBXHJcbiAqIEByZXR1cm5zIHtUW119IE5vbmVcclxuICovXHJcbmV4cG9ydCBjb25zdCBjb21wbGVtZW50ID0gPFQ+KEE6IFRbXSwgQjogVFtdKSA9PlxyXG4gIEEuZmlsdGVyKChhKSA9PiAhQi5pbmNsdWRlcyhhKSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3dhcEl0ZW1zPFQ+KGk6IG51bWJlciwgajogbnVtYmVyLCBhcnI6IFRbXSkge1xyXG4gIGNvbnN0IG1heCA9IGFyci5sZW5ndGggLSAxO1xyXG4gIGlmIChpIDwgMCB8fCBpID4gbWF4IHx8IGogPCAwIHx8IGogPiBtYXgpIHJldHVybiBhcnI7XHJcbiAgY29uc3QgdG1wID0gYXJyW2ldO1xyXG4gIGFycltpXSA9IGFycltqXTtcclxuICBhcnJbal0gPSB0bXA7XHJcbiAgcmV0dXJuIGFycjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBkdXBsaWNhdGVzIGZyb20gYW4gYXJyYXkuXHJcbiAqIEBwYXJhbSB7VFtdfSBhcnIgLSBUaGUgYXJyYXkgdG8gYmUgZmlsdGVyZWQuXHJcbiAqIEByZXR1cm5zIHtUW119IFRoZSBhcnJheSB3aXRoIGR1cGxpY2F0ZXMgcmVtb3ZlZC5cclxuICovXHJcbmV4cG9ydCBjb25zdCByZW1vdmVEdXBsaWNhdGVzID0gPFQ+KGFycjogVFtdKSA9PiBbLi4ubmV3IFNldChhcnIpXTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzdHJUb1JlZ2V4KGlucHV0OiBzdHJpbmcpIHtcclxuICBjb25zdCBtYXRjaCA9IGlucHV0Lm1hdGNoKHJlZ05GbGFncyk7XHJcbiAgaWYgKCFtYXRjaCkgcmV0dXJuIG51bGw7XHJcbiAgY29uc3QgWywgaW5uZXJSZWdleCwgZmxhZ3NdID0gbWF0Y2g7XHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChpbm5lclJlZ2V4LCBmbGFncyk7XHJcbiAgICByZXR1cm4gcmVnZXg7XHJcbiAgfSBjYXRjaCAoZSkge1xyXG4gICAgd2FybihlKTtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG5cclxuLy8gU291cmNlOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNTYxNDkzL2lzLXRoZXJlLWEtcmVnZXhwLWVzY2FwZS1mdW5jdGlvbi1pbi1qYXZhc2NyaXB0XHJcbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVSZWdleChzdHJpbmcpIHtcclxuICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1stXFwvXFxcXF4kKis/LigpfFtcXF17fV0vZywgXCJcXFxcJCZcIik7XHJcbn1cclxuIiwgImltcG9ydCBHcmFwaCwgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHsgZGZzRnJvbU5vZGUgfSBmcm9tIFwiZ3JhcGhvbG9neS10cmF2ZXJzYWxcIjtcclxuaW1wb3J0IHR5cGUgeyBBdHRyaWJ1dGVzIH0gZnJvbSBcImdyYXBob2xvZ3ktdHlwZXNcIjtcclxuaW1wb3J0IHsgaW5mbyB9IGZyb20gXCJsb2dsZXZlbFwiO1xyXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vLi4vbWFpblwiO1xyXG5pbXBvcnQge1xyXG4gIEJDX0lfUkVGTEVYSVZFLFxyXG4gIEJDX09SREVSLFxyXG4gIGJsYW5rUmVhbE5JbXBsaWVkLFxyXG4gIERJUkVDVElPTlMsXHJcbn0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSB7XHJcbiAgQkNTZXR0aW5ncyxcclxuICBEaXJlY3Rpb25zLFxyXG4gIGR2RnJvbnRtYXR0ZXJDYWNoZSxcclxuICBFZGdlQXR0cixcclxuICBOb2RlUGF0aCxcclxuICBSZWFsTkltcGxpZWQsXHJcbiAgVXNlckhpZXIsXHJcbn0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHsgZ2V0RmllbGRJbmZvLCBnZXRPcHBEaXIsIGdldE9wcEZpZWxkcyB9IGZyb20gXCIuL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXRCYXNlRnJvbU1EUGF0aCB9IGZyb20gXCIuL09ic2lkaWFuVXRpbHNcIjtcclxuXHJcbi8vIFRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIHJlYWwgJiBpbXBsaWVkIGdyYXBocyBmb3IgYSBnaXZlbiByZWxhdGlvbiwgYW5kIHJldHVybnMgYSBuZXcgZ3JhcGhzIHdpdGggYm90aC5cclxuLy8gSXQgbWFrZXMgaW1wbGllZCByZWxhdGlvbnMgcmVhbFxyXG4vLyBUT0RPIHVzZSByZWZsZXhpdmVDbG9zdXJlIGluc3RlYWRcclxuZXhwb3J0IGZ1bmN0aW9uIGNsb3NlSW1wbGllZExpbmtzKFxyXG4gIHJlYWw6IE11bHRpR3JhcGgsXHJcbiAgaW1wbGllZDogTXVsdGlHcmFwaFxyXG4pOiBNdWx0aUdyYXBoIHtcclxuICBjb25zdCBjbG9zZWRHID0gcmVhbC5jb3B5KCk7XHJcbiAgaW1wbGllZC5mb3JFYWNoRWRnZSgoa2V5LCBhLCBzLCB0KSA9PiB7XHJcbiAgICBjbG9zZWRHLm1lcmdlRWRnZSh0LCBzLCBhKTtcclxuICB9KTtcclxuICByZXR1cm4gY2xvc2VkRztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVW5saW5rZWROb2RlcyhnOiBNdWx0aUdyYXBoKSB7XHJcbiAgY29uc3QgY29weSA9IGcuY29weSgpO1xyXG4gIGNvcHkuZm9yRWFjaE5vZGUoKG5vZGUpID0+IHtcclxuICAgIGlmICghY29weS5kZWdyZWUobm9kZSkpIGNvcHkuZHJvcE5vZGUobm9kZSk7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIGNvcHk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gYSBzdWJncmFwaCBvZiBhbGwgbm9kZXMgJiBlZGdlcyB3aXRoIGBkaXJzLmluY2x1ZGVzKGEuZGlyKWBcclxuICpcclxuICogRmlsdGVyIHRoZSBnaXZlbiBncmFwaCB0byBvbmx5IGluY2x1ZGUgZWRnZXMgaW4gdGhlIGdpdmVuIGRpcmVjdGlvbnMuXHJcbiAqIEBwYXJhbSAge011bHRpR3JhcGh9IGdcclxuICogQHBhcmFtICB7RGlyZWN0aW9uc30gZGlyXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3ViSW5EaXJzKGc6IE11bHRpR3JhcGgsIC4uLmRpcnM6IERpcmVjdGlvbnNbXSkge1xyXG4gIGNvbnN0IHN1YiA9IG5ldyBNdWx0aUdyYXBoKCk7XHJcbiAgZz8uZm9yRWFjaEVkZ2UoKGssIGEsIHMsIHQpID0+IHtcclxuICAgIGlmIChkaXJzLmluY2x1ZGVzKGEuZGlyKSkge1xyXG4gICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgYWRkTm9kZXNJZk5vdChzdWIsIFtzLCB0XSwgeyBvcmRlcjogYS5vcmRlciB9KTtcclxuICAgICAgc3ViLmFkZEVkZ2UocywgdCwgYSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHN1YjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBhIHN1YmdyYXBoIG9mIGFsbCBub2RlcyAmIGVkZ2VzIHdpdGggYGZpZWxkcy5pbmNsdWRlcyhhLmZpZWxkKWAuXHJcbiAqXHJcbiAqIEZpbHRlciB0aGUgZ2l2ZW4gZ3JhcGggdG8gb25seSBpbmNsdWRlIGVkZ2VzIHdpdGggdGhlIGdpdmVuIGZpZWxkcy5cclxuICogQHBhcmFtICB7TXVsdGlHcmFwaH0gZ1xyXG4gKiBAcGFyYW0gIHtzdHJpbmdbXX0gZmllbGRzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3ViRm9yRmllbGRzKGc6IE11bHRpR3JhcGgsIGZpZWxkczogc3RyaW5nW10pIHtcclxuICBjb25zdCBzdWIgPSBuZXcgTXVsdGlHcmFwaCgpO1xyXG4gIGcuZm9yRWFjaEVkZ2UoKGssIGEsIHMsIHQpID0+IHtcclxuICAgIGlmIChmaWVsZHMuaW5jbHVkZXMoYS5maWVsZCkpIHtcclxuICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgIGFkZE5vZGVzSWZOb3Qoc3ViLCBbcywgdF0sIHsgb3JkZXI6IGEub3JkZXIgfSk7XHJcbiAgICAgIHN1Yi5hZGRFZGdlKHMsIHQsIGEpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBzdWI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGb3IgZXZlcnkgZWRnZSBpbiBgZ2AsIGFkZCB0aGUgcmV2ZXJzZSBvZiB0aGUgZWRnZSB0byBhIGNvcHkgb2YgYGdgLlxyXG4gKlxyXG4gKiBJdCBhbHNvIHNldHMgdGhlIGF0dHJzIG9mIHRoZSByZXZlcnNlIGVkZ2VzIHRvIGBvcHBEaXJgIGFuZCBgb3BwRmllbGRzWzBdYFxyXG4gKiBAcGFyYW0gIHtNdWx0aUdyYXBofSBnXHJcbiAqIEBwYXJhbSAge1VzZXJIaWVyW119IHVzZXJIaWVyc1xyXG4gKiBAcGFyYW0gIHtib29sZWFufSBjbG9zZUFzT3Bwb3NpdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWZsZXhpdmVDbG9zdXJlKFxyXG4gIGc6IE11bHRpR3JhcGgsXHJcbiAgdXNlckhpZXJzOiBVc2VySGllcltdXHJcbik6IE11bHRpR3JhcGgge1xyXG4gIGNvbnN0IGNvcHkgPSBnLmNvcHkoKTtcclxuICBjb3B5LmZvckVhY2hFZGdlKChrLCBhLCBzLCB0KSA9PiB7XHJcbiAgICBjb25zdCB7IGRpciwgZmllbGQgfSA9IGE7XHJcbiAgICBpZiAoZmllbGQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG4gICAgY29uc3Qgb3BwRGlyID0gZ2V0T3BwRGlyKGRpcik7XHJcbiAgICBjb25zdCBvcHBGaWVsZCA9XHJcbiAgICAgIGRpciA9PT0gXCJzYW1lXCIgPyBmaWVsZCA6IGdldE9wcEZpZWxkcyh1c2VySGllcnMsIGZpZWxkLCBkaXIpWzBdO1xyXG5cclxuICAgIGFkZE5vZGVzSWZOb3QoY29weSwgW3MsIHRdLCB7IG9yZGVyOiA5OTk5IH0pO1xyXG4gICAgYWRkRWRnZUlmTm90KGNvcHksIHQsIHMsIHtcclxuICAgICAgZGlyOiBvcHBEaXIsXHJcbiAgICAgIGZpZWxkOiBvcHBGaWVsZCxcclxuICAgICAgaW1wbGllZDogQkNfSV9SRUZMRVhJVkUsXHJcbiAgICB9KTtcclxuICB9KTtcclxuICByZXR1cm4gY29weTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZE5vZGVzSWZOb3QoXHJcbiAgZzogTXVsdGlHcmFwaCxcclxuICBub2Rlczogc3RyaW5nW10sXHJcbiAgYXR0ciA9IHsgb3JkZXI6IDk5OTkgfVxyXG4pIHtcclxuICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcclxuICAgIGcudXBkYXRlTm9kZShub2RlLCAoZXhzdGFudEF0dHJzOiBBdHRyaWJ1dGVzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGV4dGFudE9yZGVyOiBudW1iZXIgfCB1bmRlZmluZWQgPSBleHN0YW50QXR0cnMub3JkZXI7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4uZXhzdGFudEF0dHJzLFxyXG4gICAgICAgIG9yZGVyOiBleHRhbnRPcmRlciAmJiBleHRhbnRPcmRlciA8IDk5OTkgPyBleHRhbnRPcmRlciA6IGF0dHIub3JkZXIsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRFZGdlSWZOb3QoXHJcbiAgZzogTXVsdGlHcmFwaCxcclxuICBzb3VyY2U6IHN0cmluZyxcclxuICB0YXJnZXQ6IHN0cmluZyxcclxuICBhdHRyPzogQXR0cmlidXRlc1xyXG4pIHtcclxuICBpZiAoIWcuaGFzRWRnZShzb3VyY2UsIHRhcmdldCkpIGcuYWRkRWRnZShzb3VyY2UsIHRhcmdldCwgYXR0cik7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBnZXRTaW5rcyA9IChnOiBNdWx0aUdyYXBoKSA9PlxyXG4gIGcuZmlsdGVyTm9kZXMoKG5vZGUpID0+IGcuaGFzTm9kZShub2RlKSAmJiAhZy5vdXREZWdyZWUobm9kZSkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldFNvdXJjZXMgPSAoZzogTXVsdGlHcmFwaCkgPT5cclxuICBnLmZpbHRlck5vZGVzKChub2RlKSA9PiBnLmhhc05vZGUobm9kZSkgJiYgIWcuaW5EZWdyZWUobm9kZSkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldE91dE5laWdoYm91cnMgPSAoZzogTXVsdGlHcmFwaCwgbm9kZTogc3RyaW5nKSA9PlxyXG4gIGcuaGFzTm9kZShub2RlKSA/IGcub3V0TmVpZ2hib3JzKG5vZGUpIDogW107XHJcbmV4cG9ydCBjb25zdCBnZXRJbk5laWdoYm91cnMgPSAoZzogTXVsdGlHcmFwaCwgbm9kZTogc3RyaW5nKSA9PlxyXG4gIGcuaGFzTm9kZShub2RlKSA/IGcuaW5OZWlnaGJvcnMobm9kZSkgOiBbXTtcclxuXHJcbi8qKlxyXG4gKiBGaW5kcyBhbGwgcGF0aHMgZnJvbSBhIHN0YXJ0aW5nIG5vZGUgdG8gYWxsIG90aGVyIHNpbmtzIGluIGEgZ3JhcGguXHJcbiAqXHJcbiAqXHJcbiAqIEBwYXJhbSB7TXVsdGlHcmFwaH0gZyAtIFRoZSBncmFwaCB0byBzZWFyY2hcclxuICogQHBhcmFtIHtzdHJpbmd9IHN0YXJ0IC0gVGhlIHN0YXJ0aW5nIG5vZGVcclxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgYXJyYXlzLiBFYWNoIGFycmF5IGlzIGEgcGF0aC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBkZnNBbGxQYXRocyhnOiBNdWx0aUdyYXBoLCBzdGFydDogc3RyaW5nKTogc3RyaW5nW11bXSB7XHJcbiAgY29uc3QgcXVldWU6IE5vZGVQYXRoW10gPSBbeyBub2RlOiBzdGFydCwgcGF0aDogW10gfV07XHJcbiAgY29uc3QgdmlzaXRlZDogeyBbbm90ZTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcclxuICBjb25zdCBhbGxQYXRoczogc3RyaW5nW11bXSA9IFtdO1xyXG5cclxuICBsZXQgaSA9IDA7XHJcbiAgd2hpbGUgKHF1ZXVlLmxlbmd0aCA+IDAgJiYgaSA8IDEwMDApIHtcclxuICAgIGkrKztcclxuICAgIGNvbnN0IHsgbm9kZSwgcGF0aCB9ID0gcXVldWUuc2hpZnQoKTtcclxuXHJcbiAgICBjb25zdCBleHRQYXRoID0gW25vZGUsIC4uLnBhdGhdO1xyXG4gICAgY29uc3Qgc3VjY3NOb3RWaXNpdGVkID0gZy5oYXNOb2RlKG5vZGUpXHJcbiAgICAgID8gZy5maWx0ZXJPdXROZWlnaGJvcnMoXHJcbiAgICAgICAgbm9kZSxcclxuICAgICAgICAoc3VjYykgPT4gIXZpc2l0ZWRbc3VjY10gfHwgdmlzaXRlZFtzdWNjXSA8IDVcclxuICAgICAgKVxyXG4gICAgICA6IFtdO1xyXG4gICAgY29uc3QgbmV3SXRlbXMgPSBzdWNjc05vdFZpc2l0ZWQubWFwKChzdWNjKSA9PiB7XHJcbiAgICAgIHZpc2l0ZWRbc3VjY10gPSB2aXNpdGVkW3N1Y2NdID8gdmlzaXRlZFtzdWNjXSArIDEgOiAxO1xyXG4gICAgICByZXR1cm4geyBub2RlOiBzdWNjLCBwYXRoOiBleHRQYXRoIH07XHJcbiAgICB9KTtcclxuXHJcbiAgICBxdWV1ZS51bnNoaWZ0KC4uLm5ld0l0ZW1zKTtcclxuXHJcbiAgICBpZiAoIWcuaGFzTm9kZShub2RlKSB8fCAhZy5vdXREZWdyZWUobm9kZSkpIGFsbFBhdGhzLnB1c2goZXh0UGF0aCk7XHJcbiAgfVxyXG4gIHJldHVybiBhbGxQYXRocztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGJmc0FsbFBhdGhzKGc6IE11bHRpR3JhcGgsIHN0YXJ0OiBzdHJpbmcpOiBzdHJpbmdbXVtdIHtcclxuICBjb25zdCBwYXRoc0Fycjogc3RyaW5nW11bXSA9IFtdO1xyXG4gIGNvbnN0IHF1ZXVlOiBOb2RlUGF0aFtdID0gW3sgbm9kZTogc3RhcnQsIHBhdGg6IFtdIH1dO1xyXG5cclxuICBsZXQgaSA9IDA7XHJcbiAgd2hpbGUgKHF1ZXVlLmxlbmd0aCAhPT0gMCAmJiBpIDwgMTAwMCkge1xyXG4gICAgaSsrO1xyXG4gICAgY29uc3QgeyBub2RlLCBwYXRoIH0gPSBxdWV1ZS5zaGlmdCgpO1xyXG4gICAgY29uc3QgZXh0UGF0aCA9IFtub2RlLCAuLi5wYXRoXTtcclxuXHJcbiAgICBjb25zdCBzdWNjcyA9IGcuaGFzTm9kZShub2RlKVxyXG4gICAgICA/IGcuZmlsdGVyT3V0TmVpZ2hib3JzKG5vZGUsIChuKSA9PiAhcGF0aC5pbmNsdWRlcyhuKSlcclxuICAgICAgOiBbXTtcclxuICAgIGZvciAoY29uc3Qgbm9kZSBvZiBzdWNjcykge1xyXG4gICAgICBxdWV1ZS5wdXNoKHsgbm9kZSwgcGF0aDogZXh0UGF0aCB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0ZXJtaW5hbCBub2RlXHJcbiAgICBpZiAoIWcuaGFzTm9kZShub2RlKSB8fCBzdWNjcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcGF0aHNBcnIucHVzaChleHRQYXRoKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gU3BsaWNlIG9mZiB0aGUgY3VycmVudCBub3RlIGZyb20gdGhlIHBhdGhcclxuICBwYXRoc0Fyci5mb3JFYWNoKChwYXRoKSA9PiB7XHJcbiAgICBpZiAocGF0aC5sZW5ndGgpIHBhdGguc3BsaWNlKHBhdGgubGVuZ3RoIC0gMSwgMSk7XHJcbiAgfSk7XHJcbiAgaW5mbyh7IHBhdGhzQXJyIH0pO1xyXG4gIHJldHVybiBwYXRoc0FycjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUN5Y2xlcyhnOiBHcmFwaCwgc3RhcnROb2RlOiBzdHJpbmcpIHtcclxuICBjb25zdCBjb3B5ID0gZy5jb3B5KCk7XHJcbiAgbGV0IHByZXZOb2RlID0gbnVsbDtcclxuICBkZnNGcm9tTm9kZShjb3B5LCBzdGFydE5vZGUsIChuKSA9PiB7XHJcbiAgICBjb3B5LmZvckVhY2hPdXROZWlnaGJvcihuLCAodCkgPT4ge1xyXG4gICAgICBpZiAodCA9PT0gcHJldk5vZGUgJiYgY29weS5oYXNFZGdlKHQsIHByZXZOb2RlKSkge1xyXG4gICAgICAgIHRyeSB7IGNvcHkuZHJvcEVkZ2UodCwgcHJldk5vZGUpIH1cclxuICAgICAgICBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcih0LCBwcmV2Tm9kZSwgZXJyb3IpIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcHJldk5vZGUgPSBuO1xyXG4gIH0pO1xyXG4gIHJldHVybiBjb3B5O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3ViQ2xvc2VTdWIoXHJcbiAgZzogTXVsdGlHcmFwaCxcclxuICB1c2VySGllcnM6IFVzZXJIaWVyW10sXHJcbiAgLi4uZGlyczogRGlyZWN0aW9uc1tdXHJcbikge1xyXG4gIGNvbnN0IHN1YiA9IGdldFN1YkluRGlycyhnLCAuLi5kaXJzKTtcclxuICBjb25zdCBjbG9zZWQgPSBnZXRSZWZsZXhpdmVDbG9zdXJlKHN1YiwgdXNlckhpZXJzKTtcclxuICBjb25zdCBjbG9zZWRTdWIgPSBnZXRTdWJJbkRpcnMoY2xvc2VkLCBkaXJzWzBdKTtcclxuICByZXR1cm4gY2xvc2VkU3ViO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRPYnNHcmFwaCgpOiBNdWx0aUdyYXBoIHtcclxuICBjb25zdCBPYnNHID0gbmV3IE11bHRpR3JhcGgoKTtcclxuICBjb25zdCB7IHJlc29sdmVkTGlua3MsIHVucmVzb2x2ZWRMaW5rcyB9ID0gYXBwLm1ldGFkYXRhQ2FjaGU7XHJcblxyXG4gIGZvciAoY29uc3Qgc291cmNlIGluIHJlc29sdmVkTGlua3MpIHtcclxuICAgIGlmICghc291cmNlLmVuZHNXaXRoKFwiLm1kXCIpKSBjb250aW51ZTtcclxuICAgIGNvbnN0IHNvdXJjZUJhc2UgPSBnZXRCYXNlRnJvbU1EUGF0aChzb3VyY2UpO1xyXG4gICAgYWRkTm9kZXNJZk5vdChPYnNHLCBbc291cmNlQmFzZV0pO1xyXG5cclxuICAgIGZvciAoY29uc3QgZGVzdCBpbiByZXNvbHZlZExpbmtzW3NvdXJjZV0pIHtcclxuICAgICAgaWYgKCFkZXN0LmVuZHNXaXRoKFwiLm1kXCIpKSBjb250aW51ZTtcclxuICAgICAgY29uc3QgZGVzdEJhc2UgPSBnZXRCYXNlRnJvbU1EUGF0aChkZXN0KTtcclxuICAgICAgYWRkTm9kZXNJZk5vdChPYnNHLCBbZGVzdEJhc2VdKTtcclxuICAgICAgT2JzRy5hZGRFZGdlKHNvdXJjZUJhc2UsIGRlc3RCYXNlLCB7IHJlc29sdmVkOiB0cnVlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZm9yIChjb25zdCBzb3VyY2UgaW4gdW5yZXNvbHZlZExpbmtzKSB7XHJcbiAgICBjb25zdCBzb3VyY2VCYXNlID0gZ2V0QmFzZUZyb21NRFBhdGgoc291cmNlKTtcclxuICAgIGFkZE5vZGVzSWZOb3QoT2JzRywgW3NvdXJjZUJhc2VdKTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGRlc3QgaW4gdW5yZXNvbHZlZExpbmtzW3NvdXJjZV0pIHtcclxuICAgICAgY29uc3QgZGVzdEJhc2UgPSBnZXRCYXNlRnJvbU1EUGF0aChkZXN0KTtcclxuICAgICAgYWRkTm9kZXNJZk5vdChPYnNHLCBbZGVzdEJhc2VdKTtcclxuICAgICAgaWYgKHNvdXJjZUJhc2UgPT09IGRlc3RCYXNlKSBjb250aW51ZTtcclxuICAgICAgT2JzRy5hZGRFZGdlKHNvdXJjZUJhc2UsIGRlc3RCYXNlLCB7IHJlc29sdmVkOiBmYWxzZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluZm8oeyBPYnNHIH0pO1xyXG4gIHJldHVybiBPYnNHO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcG9wdWxhdGVNYWluKFxyXG4gIHNldHRpbmdzOiBCQ1NldHRpbmdzLFxyXG4gIG1haW5HOiBNdWx0aUdyYXBoLFxyXG4gIHNvdXJjZTogc3RyaW5nLFxyXG4gIGZpZWxkOiBzdHJpbmcsXHJcbiAgdGFyZ2V0OiBzdHJpbmcsXHJcbiAgc291cmNlT3JkZXI6IG51bWJlcixcclxuICB0YXJnZXRPcmRlcjogbnVtYmVyLFxyXG4gIGZpbGxPcHAgPSBmYWxzZVxyXG4pOiB2b2lkIHtcclxuICBjb25zdCB7IHVzZXJIaWVycyB9ID0gc2V0dGluZ3M7XHJcbiAgY29uc3QgZGlyID0gZ2V0RmllbGRJbmZvKHVzZXJIaWVycywgZmllbGQpLmZpZWxkRGlyO1xyXG5cclxuICBhZGROb2Rlc0lmTm90KG1haW5HLCBbc291cmNlXSwge1xyXG4gICAgb3JkZXI6IHNvdXJjZU9yZGVyLFxyXG4gIH0pO1xyXG5cclxuICBhZGROb2Rlc0lmTm90KG1haW5HLCBbdGFyZ2V0XSwge1xyXG4gICAgb3JkZXI6IHRhcmdldE9yZGVyLFxyXG4gIH0pO1xyXG5cclxuICBhZGRFZGdlSWZOb3QobWFpbkcsIHNvdXJjZSwgdGFyZ2V0LCB7XHJcbiAgICBkaXIsXHJcbiAgICBmaWVsZCxcclxuICB9KTtcclxuICBpZiAoZmlsbE9wcCkge1xyXG4gICAgYWRkRWRnZUlmTm90KG1haW5HLCB0YXJnZXQsIHNvdXJjZSwge1xyXG4gICAgICBkaXI6IGdldE9wcERpcihkaXIpLFxyXG4gICAgICBmaWVsZDogZ2V0T3BwRmllbGRzKHVzZXJIaWVycywgZmllbGQsIGRpcilbMF0sXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBnZXRUYXJnZXRPcmRlciA9IChmcm9udG1zOiBkdkZyb250bWF0dGVyQ2FjaGVbXSwgdGFyZ2V0OiBzdHJpbmcpID0+XHJcbiAgcGFyc2VJbnQoXHJcbiAgICAoZnJvbnRtcy5maW5kKChmZikgPT4gZmY/LmZpbGU/LmJhc2VuYW1lID09PSB0YXJnZXQpPy5bXHJcbiAgICAgIEJDX09SREVSXHJcbiAgICBdIGFzIHN0cmluZykgPz8gXCI5OTk5XCJcclxuICApO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldFNvdXJjZU9yZGVyID0gKGZyb250bTogZHZGcm9udG1hdHRlckNhY2hlKSA9PlxyXG4gIHBhcnNlSW50KChmcm9udG1bQkNfT1JERVJdIGFzIHN0cmluZykgPz8gXCI5OTk5XCIpO1xyXG5cclxuLyoqIFJlbWVtYmVyIHRvIGZpbHRlciBieSBoaWVyYXJjaHkgaW4gTWF0cml4VmlldyEgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlYWxuSW1wbGllZChcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIGN1cnJOb2RlOiBzdHJpbmcsXHJcbiAgZGlyOiBEaXJlY3Rpb25zID0gbnVsbFxyXG4pOiBSZWFsTkltcGxpZWQge1xyXG4gIGNvbnN0IHJlYWxzbkltcGxpZWRzOiBSZWFsTkltcGxpZWQgPSBibGFua1JlYWxOSW1wbGllZCgpO1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MsIGNsb3NlZEcgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7IHVzZXJIaWVycyB9ID0gc2V0dGluZ3M7XHJcblxyXG4gIGlmICghY2xvc2VkRy5oYXNOb2RlKGN1cnJOb2RlKSkgcmV0dXJuIHJlYWxzbkltcGxpZWRzO1xyXG4gIGNsb3NlZEcuZm9yRWFjaEVkZ2UoY3Vyck5vZGUsIChrLCBhLCBzLCB0KSA9PiB7XHJcbiAgICBjb25zdCB7IGZpZWxkLCBkaXI6IGVkZ2VEaXIsIGltcGxpZWQgfSA9IGEgYXMgRWRnZUF0dHI7XHJcbiAgICBjb25zdCBvcHBGaWVsZCA9IGdldE9wcEZpZWxkcyh1c2VySGllcnMsIGZpZWxkLCBlZGdlRGlyKVswXTtcclxuXHJcbiAgICAoZGlyID8gW2RpciwgZ2V0T3BwRGlyKGRpcildIDogRElSRUNUSU9OUykuZm9yRWFjaChcclxuICAgICAgKGN1cnJEaXI6IERpcmVjdGlvbnMpID0+IHtcclxuICAgICAgICBjb25zdCBvcHBEaXIgPSBnZXRPcHBEaXIoY3VyckRpcik7XHJcbiAgICAgICAgLy8gUmVhbHNcclxuICAgICAgICBpZiAocyA9PT0gY3Vyck5vZGUgJiYgKGVkZ2VEaXIgPT09IGN1cnJEaXIgfHwgZWRnZURpciA9PT0gb3BwRGlyKSkge1xyXG4gICAgICAgICAgY29uc3QgYXJyID0gcmVhbHNuSW1wbGllZHNbZWRnZURpcl0ucmVhbHM7XHJcbiAgICAgICAgICBpZiAoYXJyLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS50byA9PT0gdCkgPT09IC0xKSB7XHJcbiAgICAgICAgICAgIGFyci5wdXNoKHsgdG86IHQsIGZpZWxkLCBpbXBsaWVkIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJbXBsaWVkc1xyXG4gICAgICAgIC8vIElmIGBzICE9PSBjdXJyTm9kZWAgdGhlbiBgdGAgbXVzdCBiZVxyXG4gICAgICAgIGVsc2UgaWYgKGVkZ2VEaXIgPT09IGN1cnJEaXIgfHwgZWRnZURpciA9PT0gb3BwRGlyKSB7XHJcbiAgICAgICAgICBjb25zdCBhcnIgPSByZWFsc25JbXBsaWVkc1tnZXRPcHBEaXIoZWRnZURpcildLmltcGxpZWRzO1xyXG4gICAgICAgICAgaWYgKGFyci5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0udG8gPT09IHMpID09PSAtMSkge1xyXG4gICAgICAgICAgICBhcnIucHVzaCh7XHJcbiAgICAgICAgICAgICAgdG86IHMsXHJcbiAgICAgICAgICAgICAgZmllbGQ6IG9wcEZpZWxkLFxyXG4gICAgICAgICAgICAgIGltcGxpZWQsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9KTtcclxuICByZXR1cm4gcmVhbHNuSW1wbGllZHM7XHJcbn1cclxuIiwgImltcG9ydCB7IEFSUk9XX0RJUkVDVElPTlMsIERJUkVDVElPTlMgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB0eXBlIHsgRGlyZWN0aW9ucywgVXNlckhpZXIgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG5cclxuLyoqXHJcbiAqIEdldCBhbGwgdGhlIGZpZWxkcyBpbiBgZGlyYC5cclxuICogUmV0dXJucyBhbGwgZmllbGRzIGlmIGBkaXIgPT09ICdhbGwnYFxyXG4gKiBAcGFyYW0gIHtVc2VySGllcltdfSB1c2VySGllcnNcclxuICogQHBhcmFtICB7RGlyZWN0aW9uc3xcImFsbFwifSBkaXJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWVsZHMoXHJcbiAgdXNlckhpZXJzOiBVc2VySGllcltdLFxyXG4gIGRpcjogRGlyZWN0aW9ucyB8IFwiYWxsXCIgPSBcImFsbFwiXHJcbikge1xyXG4gIGNvbnN0IGZpZWxkczogc3RyaW5nW10gPSBbXTtcclxuICB1c2VySGllcnMuZm9yRWFjaCgoaGllcikgPT4ge1xyXG4gICAgaWYgKGRpciA9PT0gXCJhbGxcIikge1xyXG4gICAgICBESVJFQ1RJT05TLmZvckVhY2goKGVhY2hEaXIpID0+IHtcclxuICAgICAgICBmaWVsZHMucHVzaCguLi5oaWVyW2VhY2hEaXJdKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmaWVsZHMucHVzaCguLi5oaWVyW2Rpcl0pO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBmaWVsZHM7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBnZXRPcHBEaXIgPSAoZGlyOiBEaXJlY3Rpb25zKTogRGlyZWN0aW9ucyA9PiB7XHJcbiAgc3dpdGNoIChkaXIpIHtcclxuICAgIGNhc2UgXCJ1cFwiOlxyXG4gICAgICByZXR1cm4gXCJkb3duXCI7XHJcbiAgICBjYXNlIFwiZG93blwiOlxyXG4gICAgICByZXR1cm4gXCJ1cFwiO1xyXG4gICAgY2FzZSBcInNhbWVcIjpcclxuICAgICAgcmV0dXJuIFwic2FtZVwiO1xyXG4gICAgY2FzZSBcIm5leHRcIjpcclxuICAgICAgcmV0dXJuIFwicHJldlwiO1xyXG4gICAgY2FzZSBcInByZXZcIjpcclxuICAgICAgcmV0dXJuIFwibmV4dFwiO1xyXG4gIH1cclxufTtcclxuXHJcbi8qKlxyXG4gKiAgR2V0IHRoZSBoaWVyYXJjaHkgYW5kIGRpcmVjdGlvbiB0aGF0IGBmaWVsZGAgaXMgaW5cclxuICogKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpZWxkSW5mbyh1c2VySGllcnM6IFVzZXJIaWVyW10sIGZpZWxkOiBzdHJpbmcpIHtcclxuICBsZXQgZmllbGREaXI6IERpcmVjdGlvbnM7XHJcbiAgbGV0IGZpZWxkSGllcjogVXNlckhpZXI7XHJcblxyXG4gIERJUkVDVElPTlMuZm9yRWFjaCgoZGlyOiBEaXJlY3Rpb25zKSA9PiB7XHJcbiAgICB1c2VySGllcnMuZm9yRWFjaCgoaGllcikgPT4ge1xyXG4gICAgICBpZiAoaGllcltkaXJdLmluY2x1ZGVzKGZpZWxkKSkge1xyXG4gICAgICAgIGZpZWxkRGlyID0gZGlyO1xyXG4gICAgICAgIGZpZWxkSGllciA9IGhpZXI7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9KTtcclxuICByZXR1cm4geyBmaWVsZEhpZXIsIGZpZWxkRGlyIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHBGaWVsZHMoXHJcbiAgdXNlckhpZXJzOiBVc2VySGllcltdLFxyXG4gIGZpZWxkOiBzdHJpbmcsXHJcbiAgZGlyOiBEaXJlY3Rpb25zXHJcbikge1xyXG4gIC8vIElmIHRoZSBmaWVsZCBlbmRzIHdpdGggYD5gLCBpdCBpcyBhbHJlYWR5IHRoZSBvcHBvc2l0ZSBmaWVsZCB3ZSBuZWVkIChjb21pbmcgZnJvbSBgZ2V0T3BwRmFsbGJhY2tgKVxyXG4gIGlmIChmaWVsZC5lbmRzV2l0aChcIj5cIikpIHJldHVybiBbZmllbGQuc2xpY2UoMCwgLTQpXTtcclxuXHJcbiAgY29uc3Qgb3BwRmllbGRzID0gW2ZhbGxiYWNrT3BwRmllbGQoZmllbGQsIGRpcildO1xyXG4gIGNvbnN0IHsgZmllbGRIaWVyLCBmaWVsZERpciB9ID0gZ2V0RmllbGRJbmZvKHVzZXJIaWVycywgZmllbGQpO1xyXG4gIGlmICghZmllbGRIaWVyIHx8ICFmaWVsZERpcikgcmV0dXJuIG9wcEZpZWxkcztcclxuXHJcbiAgY29uc3Qgb3BwRGlyID0gZ2V0T3BwRGlyKGZpZWxkRGlyKTtcclxuICBvcHBGaWVsZHMudW5zaGlmdCguLi5maWVsZEhpZXJbb3BwRGlyXSk7XHJcbiAgcmV0dXJuIG9wcEZpZWxkcztcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGhpZXJUb1N0ciA9IChoaWVyOiBVc2VySGllcikgPT5cclxuICBESVJFQ1RJT05TLm1hcChcclxuICAgIChkaXIpID0+IGAke0FSUk9XX0RJUkVDVElPTlNbZGlyXX06ICR7aGllcltkaXJdLmpvaW4oXCIsIFwiKX1gXHJcbiAgKS5qb2luKFwiXFxuXCIpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGZhbGxiYWNrRmllbGQgPSAoZmllbGQ6IHN0cmluZywgZGlyOiBEaXJlY3Rpb25zKSA9PlxyXG4gIGAke2ZpZWxkfSA8JHtBUlJPV19ESVJFQ1RJT05TW2Rpcl19PmA7XHJcbmV4cG9ydCBjb25zdCBmYWxsYmFja09wcEZpZWxkID0gKGZpZWxkOiBzdHJpbmcsIGRpcjogRGlyZWN0aW9ucykgPT5cclxuICBgJHtmaWVsZH0gPCR7QVJST1dfRElSRUNUSU9OU1tnZXRPcHBEaXIoZGlyKV19PmA7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXRlcmF0ZUhpZXJzKFxyXG4gIHVzZXJIaWVyczogVXNlckhpZXJbXSxcclxuICBmbjogKGhpZXI6IFVzZXJIaWVyLCBkaXI6IERpcmVjdGlvbnMsIGZpZWxkOiBzdHJpbmcpID0+IHZvaWRcclxuKSB7XHJcbiAgdXNlckhpZXJzLmZvckVhY2goKGhpZXIpID0+IHtcclxuICAgIERJUkVDVElPTlMuZm9yRWFjaCgoZGlyKSA9PiB7XHJcbiAgICAgIGhpZXJbZGlyXS5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIGZuKGhpZXIsIGRpciwgZmllbGQpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH0pO1xyXG59XHJcbiIsICJpbXBvcnQgdHlwZSB7IE11bHRpR3JhcGggfSBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgeyB3YXJuIH0gZnJvbSBcImxvZ2xldmVsXCI7XHJcbmltcG9ydCB7IE5vdGljZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgeyBCQ19EVl9OT1RFLCBCQ19EVl9OT1RFX0ZJRUxELCBCQ19JR05PUkUsIERBVEFWSUVXX01JU1NJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB0eXBlIHsgZHZGcm9udG1hdHRlckNhY2hlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHtcclxuICBnZXRTb3VyY2VPcmRlcixcclxuICBnZXRUYXJnZXRPcmRlcixcclxuICBwb3B1bGF0ZU1haW4sXHJcbn0gZnJvbSBcIi4uL1V0aWxzL2dyYXBoVXRpbHNcIjtcclxuaW1wb3J0IHsgZ2V0RmllbGRzIH0gZnJvbSBcIi4uL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXREVkFwaSwgZ2V0RFZCYXNlbmFtZSB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkRGF0YXZpZXdOb3Rlc1RvR3JhcGgoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICBlbGlnYWJsZUFsdHM6IGR2RnJvbnRtYXR0ZXJDYWNoZVtdLFxyXG4gIGZyb250bXM6IGR2RnJvbnRtYXR0ZXJDYWNoZVtdLFxyXG4gIG1haW5HOiBNdWx0aUdyYXBoXHJcbikge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7IHVzZXJIaWVycywgZGF0YXZpZXdOb3RlRmllbGQgfSA9IHNldHRpbmdzO1xyXG4gIGNvbnN0IGR2ID0gZ2V0RFZBcGkocGx1Z2luKTtcclxuICBpZiAoIWR2ICYmIGVsaWdhYmxlQWx0cy5sZW5ndGgpIHtcclxuICAgIG5ldyBOb3RpY2UoREFUQVZJRVdfTUlTU0lORyk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBjb25zdCBmaWVsZHMgPSBnZXRGaWVsZHModXNlckhpZXJzKTtcclxuXHJcbiAgZWxpZ2FibGVBbHRzLmZvckVhY2goKGFsdEZpbGUpID0+IHtcclxuICAgIGNvbnN0IGJhc2VuYW1lID0gZ2V0RFZCYXNlbmFtZShhbHRGaWxlLmZpbGUpO1xyXG5cclxuICAgIGxldCBxdWVyeSA9IGFsdEZpbGVbQkNfRFZfTk9URV0gYXMgKHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pO1xyXG4gICAgaWYgKHF1ZXJ5Lmhhc093blByb3BlcnR5KCdwYXRoJykpIHtcclxuICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgIHF1ZXJ5ID0gYFtbJHtxdWVyeS5wYXRofV1dYDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgbGV0IGZpZWxkID1cclxuICAgICAgKGFsdEZpbGVbQkNfRFZfTk9URV9GSUVMRF0gYXMgc3RyaW5nKSA/PyAoZGF0YXZpZXdOb3RlRmllbGQgfHwgZmllbGRzWzBdKTtcclxuXHJcbiAgICBsZXQgdGFyZ2V0czogZHZGcm9udG1hdHRlckNhY2hlW10gPSBbXTtcclxuICAgIHRyeSB7XHJcbiAgICAgIHRhcmdldHMgPSBkdi5wYWdlcyg8c3RyaW5nPnF1ZXJ5KS52YWx1ZXM7XHJcbiAgICB9IGNhdGNoIChlcikge1xyXG4gICAgICBuZXcgTm90aWNlKGAke3F1ZXJ5fSBpcyBub3QgYSB2YWxpZCBEYXRhdmlldyBmcm9tLXF1ZXJ5YCk7XHJcbiAgICAgIHdhcm4oZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3QgdGFyZ2V0IG9mIHRhcmdldHMpIHtcclxuICAgICAgaWYgKHRhcmdldFtCQ19JR05PUkVdKSBjb250aW51ZTtcclxuICAgICAgY29uc3QgdGFyZ2V0Qk4gPSBnZXREVkJhc2VuYW1lKHRhcmdldC5maWxlKTtcclxuICAgICAgY29uc3Qgc291cmNlT3JkZXIgPSBnZXRTb3VyY2VPcmRlcihhbHRGaWxlKTtcclxuICAgICAgY29uc3QgdGFyZ2V0T3JkZXIgPSBnZXRUYXJnZXRPcmRlcihmcm9udG1zLCB0YXJnZXRCTik7XHJcblxyXG4gICAgICBwb3B1bGF0ZU1haW4oXHJcbiAgICAgICAgc2V0dGluZ3MsXHJcbiAgICAgICAgbWFpbkcsXHJcbiAgICAgICAgYmFzZW5hbWUsXHJcbiAgICAgICAgZmllbGQsXHJcbiAgICAgICAgdGFyZ2V0Qk4sXHJcbiAgICAgICAgc291cmNlT3JkZXIsXHJcbiAgICAgICAgdGFyZ2V0T3JkZXIsXHJcbiAgICAgICAgdHJ1ZVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcbiIsICJpbXBvcnQgdHlwZSB7IE11bHRpR3JhcGggfSBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgdHlwZSB7IGR2RnJvbnRtYXR0ZXJDYWNoZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IHBvcHVsYXRlTWFpbiB9IGZyb20gXCIuLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcbmltcG9ydCB7IGdldERWQmFzZW5hbWUgfSBmcm9tIFwiLi4vVXRpbHMvT2JzaWRpYW5VdGlsc1wiO1xyXG5pbXBvcnQgKiBhcyBsdXhvbiBmcm9tIFwibHV4b25cIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGREYXRlTm90ZXNUb0dyYXBoKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgZnJvbnRtczogZHZGcm9udG1hdHRlckNhY2hlW10sXHJcbiAgbWFpbkc6IE11bHRpR3JhcGhcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHtcclxuICAgIGFkZERhdGVOb3RlcyxcclxuICAgIGRhdGVOb3RlQWRkTW9udGgsXHJcbiAgICBkYXRlTm90ZUFkZFllYXIsXHJcbiAgICBkYXRlTm90ZUZvcm1hdCxcclxuICAgIGRhdGVOb3RlRmllbGQsXHJcbiAgfSA9IHNldHRpbmdzO1xyXG4gIGlmICghYWRkRGF0ZU5vdGVzKSByZXR1cm47XHJcblxyXG4gIGNvbnN0IHsgcmVnZXggfSA9IGx1eG9uLkRhdGVUaW1lLmZyb21Gb3JtYXRFeHBsYWluKFwiXCIsIGRhdGVOb3RlRm9ybWF0KTtcclxuICBmcm9udG1zLmZvckVhY2goKHBhZ2UpID0+IHtcclxuICAgIGNvbnN0IHsgZmlsZSB9ID0gcGFnZTtcclxuICAgIGNvbnN0IHsgZGF5IH0gPSBmaWxlO1xyXG4gICAgaWYgKCFkYXkgfHwgIXJlZ2V4LnRlc3QoZ2V0RFZCYXNlbmFtZShmaWxlKSkpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCB0b2RheSA9IGdldERWQmFzZW5hbWUoZmlsZSk7XHJcbiAgICBjb25zdCB0b21vcnJvdyA9IGRheS5wbHVzKHsgZGF5czogMSB9KTtcclxuICAgIGNvbnN0IHRvbVN0ciA9IHRvbW9ycm93LnRvRm9ybWF0KGRhdGVOb3RlRm9ybWF0KTtcclxuXHJcbiAgICBwb3B1bGF0ZU1haW4oXHJcbiAgICAgIHNldHRpbmdzLFxyXG4gICAgICBtYWluRyxcclxuICAgICAgdG9kYXksXHJcbiAgICAgIGRhdGVOb3RlRmllbGQsXHJcbiAgICAgIHRvbVN0cixcclxuICAgICAgOTk5OSxcclxuICAgICAgOTk5OSxcclxuICAgICAgdHJ1ZVxyXG4gICAgKTtcclxuICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHR5cGUgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHsgQkNfSUdOT1JFLCBCQ19JR05PUkVfREVORFJPTiB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHR5cGUgeyBkdkZyb250bWF0dGVyQ2FjaGUgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQge1xyXG4gIGdldFNvdXJjZU9yZGVyLFxyXG4gIGdldFRhcmdldE9yZGVyLFxyXG4gIHBvcHVsYXRlTWFpbixcclxufSBmcm9tIFwiLi4vVXRpbHMvZ3JhcGhVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXREVkJhc2VuYW1lIH0gZnJvbSBcIi4uL1V0aWxzL09ic2lkaWFuVXRpbHNcIjtcclxuXHJcbmNvbnN0IGdldERlbmRyb25QYXJlbnQgPSAoZGVuZHJvbjogc3RyaW5nLCBzcGxpdHRlcjogc3RyaW5nKSA9PlxyXG4gIGRlbmRyb24uc3BsaXQoc3BsaXR0ZXIpLnNsaWNlKDAsIC0xKS5qb2luKHNwbGl0dGVyKTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGREZW5kcm9uTm90ZXNUb0dyYXBoKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgZnJvbnRtczogZHZGcm9udG1hdHRlckNhY2hlW10sXHJcbiAgbWFpbkc6IE11bHRpR3JhcGhcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgYWRkRGVuZHJvbk5vdGVzLCBkZW5kcm9uTm90ZURlbGltaXRlciwgZGVuZHJvbk5vdGVGaWVsZCB9ID0gc2V0dGluZ3M7XHJcbiAgaWYgKCFhZGREZW5kcm9uTm90ZXMpIHJldHVybjtcclxuXHJcbiAgZm9yIChjb25zdCBmcm9udG0gb2YgZnJvbnRtcykge1xyXG4gICAgaWYgKGZyb250bVtCQ19JR05PUkVfREVORFJPTl0gfHwgZnJvbnRtW0JDX0lHTk9SRV0pIGNvbnRpbnVlO1xyXG5cclxuICAgIGxldCBjdXJyID0gZ2V0RFZCYXNlbmFtZShmcm9udG0uZmlsZSk7XHJcbiAgICBsZXQgcGFyZW50ID0gZ2V0RGVuZHJvblBhcmVudChjdXJyLCBkZW5kcm9uTm90ZURlbGltaXRlcik7XHJcblxyXG4gICAgd2hpbGUgKHBhcmVudCAhPT0gXCJcIikge1xyXG4gICAgICBjb25zdCBwYXJlbnRGaWxlID0gZnJvbnRtcy5maW5kKFxyXG4gICAgICAgIChmbSkgPT4gZ2V0RFZCYXNlbmFtZShmbS5maWxlKSA9PT0gcGFyZW50XHJcbiAgICAgICk7XHJcblxyXG4gICAgICAvLyAhcGFyZW50RmlsZSBpbXBsaWVzIGEgXCJzdHViXCJcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICBpZiAoIXBhcmVudEZpbGUgfHwgcGFyZW50RmlsZVtCQ19JR05PUkVfREVORFJPTl0gIT09IHRydWUpIHtcclxuICAgICAgICBwb3B1bGF0ZU1haW4oXHJcbiAgICAgICAgICBzZXR0aW5ncyxcclxuICAgICAgICAgIG1haW5HLFxyXG4gICAgICAgICAgY3VycixcclxuICAgICAgICAgIGRlbmRyb25Ob3RlRmllbGQsXHJcbiAgICAgICAgICBwYXJlbnQsXHJcbiAgICAgICAgICA5OTk5LFxyXG4gICAgICAgICAgOTk5OSxcclxuICAgICAgICAgIHRydWVcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGN1cnIgPSBwYXJlbnQ7XHJcbiAgICAgIHBhcmVudCA9IGdldERlbmRyb25QYXJlbnQocGFyZW50LCBkZW5kcm9uTm90ZURlbGltaXRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBleHBvcnQgZnVuY3Rpb24gYWRkRGVuZHJvbk5vdGVzVG9HcmFwaChcclxuLy8gICBwbHVnaW46IEJDUGx1Z2luLFxyXG4vLyAgIGZyb250bXM6IGR2RnJvbnRtYXR0ZXJDYWNoZVtdLFxyXG4vLyAgIG1haW5HOiBNdWx0aUdyYXBoXHJcbi8vICkge1xyXG4vLyAgIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuLy8gICBjb25zdCB7IGFkZERlbmRyb25Ob3RlcywgZGVuZHJvbk5vdGVEZWxpbWl0ZXIsIGRlbmRyb25Ob3RlRmllbGQgfSA9IHNldHRpbmdzO1xyXG4vLyAgIGlmICghYWRkRGVuZHJvbk5vdGVzKSByZXR1cm47XHJcblxyXG4vLyAgIGZvciAoY29uc3QgZnJvbnRtIG9mIGZyb250bXMpIHtcclxuLy8gICAgIGlmIChmcm9udG1bQkNfSUdOT1JFX0RFTkRST05dKSBjb250aW51ZTtcclxuXHJcbi8vICAgICBjb25zdCBiYXNlbmFtZSA9IGdldERWQmFzZW5hbWUoZnJvbnRtLmZpbGUpO1xyXG5cclxuLy8gICAgIGNvbnN0IHNwbGl0cyA9IGJhc2VuYW1lLnNwbGl0KGRlbmRyb25Ob3RlRGVsaW1pdGVyKTtcclxuLy8gICAgIGlmIChzcGxpdHMubGVuZ3RoIDw9IDEpIGNvbnRpbnVlO1xyXG5cclxuLy8gICAgIGNvbnN0IG5leHRTbGljZSA9IHNwbGl0cy5zbGljZSgwLCAtMSkuam9pbihkZW5kcm9uTm90ZURlbGltaXRlcik7XHJcbi8vICAgICBpZiAoIW5leHRTbGljZSkgY29udGludWU7XHJcbi8vICAgICBjb25zdCBuZXh0U2xpY2VGaWxlID0gZnJvbnRtcy5maW5kKFxyXG4vLyAgICAgICAoZm0pID0+IGdldERWQmFzZW5hbWUoZm0uZmlsZSkgPT09IG5leHRTbGljZVxyXG4vLyAgICAgKTtcclxuXHJcbi8vICAgICBpZiAoIW5leHRTbGljZUZpbGUgfHwgbmV4dFNsaWNlRmlsZVtCQ19JR05PUkVfREVORFJPTl0pIGNvbnRpbnVlO1xyXG5cclxuLy8gICAgIGNvbnN0IHNvdXJjZU9yZGVyID0gZ2V0U291cmNlT3JkZXIoZnJvbnRtKTtcclxuLy8gICAgIGNvbnN0IHRhcmdldE9yZGVyID0gZ2V0VGFyZ2V0T3JkZXIoZnJvbnRtcywgbmV4dFNsaWNlKTtcclxuXHJcbi8vICAgICBwb3B1bGF0ZU1haW4oXHJcbi8vICAgICAgIHNldHRpbmdzLFxyXG4vLyAgICAgICBtYWluRyxcclxuLy8gICAgICAgYmFzZW5hbWUsXHJcbi8vICAgICAgIGRlbmRyb25Ob3RlRmllbGQsXHJcbi8vICAgICAgIG5leHRTbGljZSxcclxuLy8gICAgICAgc291cmNlT3JkZXIsXHJcbi8vICAgICAgIHRhcmdldE9yZGVyLFxyXG4vLyAgICAgICB0cnVlXHJcbi8vICAgICApO1xyXG4vLyAgIH1cclxuLy8gfVxyXG4iLCAiaW1wb3J0IHR5cGUgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHsgVEZpbGUsIFRGb2xkZXIgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHtcclxuICBCQ19GT0xERVJfTk9URSxcclxuICBCQ19GT0xERVJfTk9URV9SRUNVUlNJVkUsXHJcbiAgQkNfRk9MREVSX05PVEVfU1VCRk9MREVSUyxcclxuICBCQ19JR05PUkUsXHJcbn0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSB7IGR2RnJvbnRtYXR0ZXJDYWNoZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7XHJcbiAgZ2V0U291cmNlT3JkZXIsXHJcbiAgZ2V0VGFyZ2V0T3JkZXIsXHJcbiAgcG9wdWxhdGVNYWluLFxyXG59IGZyb20gXCIuLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcbmltcG9ydCB7IGdldEZpZWxkcyB9IGZyb20gXCIuLi9VdGlscy9IaWVyVXRpbHNcIjtcclxuaW1wb3J0IHsgZ2V0RFZCYXNlbmFtZSwgZ2V0Rm9sZGVyTmFtZSB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG5jb25zdCBnZXRTdWJzRnJvbUZvbGRlciA9IChmb2xkZXI6IFRGb2xkZXIpID0+IHtcclxuICBjb25zdCBvdGhlck5vdGVzOiBURmlsZVtdID0gW10sXHJcbiAgICBzdWJGb2xkZXJzOiBURm9sZGVyW10gPSBbXTtcclxuICBmb2xkZXIuY2hpbGRyZW4uZm9yRWFjaCgodEFic3RyYWN0KSA9PiB7XHJcbiAgICBpZiAodEFic3RyYWN0IGluc3RhbmNlb2YgVEZpbGUpIG90aGVyTm90ZXMucHVzaCh0QWJzdHJhY3QpO1xyXG4gICAgZWxzZSBzdWJGb2xkZXJzLnB1c2godEFic3RyYWN0IGFzIFRGb2xkZXIpO1xyXG4gIH0pO1xyXG4gIHJldHVybiB7IG90aGVyTm90ZXMsIHN1YkZvbGRlcnMgfTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRGb2xkZXJOb3Rlc1RvR3JhcGgoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICBmb2xkZXJOb3RlczogZHZGcm9udG1hdHRlckNhY2hlW10sXHJcbiAgZnJvbnRtczogZHZGcm9udG1hdHRlckNhY2hlW10sXHJcbiAgbWFpbkc6IE11bHRpR3JhcGhcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgdXNlckhpZXJzIH0gPSBzZXR0aW5ncztcclxuICBjb25zdCBmaWVsZHMgPSBnZXRGaWVsZHModXNlckhpZXJzKTtcclxuXHJcbiAgZm9sZGVyTm90ZXMuZm9yRWFjaCgoYWx0RmlsZSkgPT4ge1xyXG4gICAgY29uc3QgeyBmaWxlIH0gPSBhbHRGaWxlO1xyXG4gICAgY29uc3QgYmFzZW5hbWUgPSBnZXREVkJhc2VuYW1lKGZpbGUpO1xyXG4gICAgY29uc3QgdG9wRm9sZGVyTmFtZSA9IGdldEZvbGRlck5hbWUoZmlsZSk7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBhcHAudmF1bHQuZ2V0QWJzdHJhY3RGaWxlQnlQYXRoKHRvcEZvbGRlck5hbWUpIGFzIFRGb2xkZXI7XHJcblxyXG4gICAgY29uc3QgdGFyZ2V0cyA9IGZyb250bXNcclxuICAgICAgLm1hcCgoZmYpID0+IGZmLmZpbGUpXHJcbiAgICAgIC5maWx0ZXIoXHJcbiAgICAgICAgKG90aGVyKSA9PlxyXG4gICAgICAgICAgZ2V0Rm9sZGVyTmFtZShvdGhlcikgPT09IHRvcEZvbGRlck5hbWUgJiYgb3RoZXIucGF0aCAhPT0gZmlsZS5wYXRoICYmICFvdGhlcltCQ19JR05PUkVdXHJcbiAgICAgIClcclxuICAgICAgLm1hcChnZXREVkJhc2VuYW1lKTtcclxuXHJcbiAgICBjb25zdCBmaWVsZCA9IGFsdEZpbGVbQkNfRk9MREVSX05PVEVdIGFzIHN0cmluZztcclxuICAgIGlmICh0eXBlb2YgZmllbGQgIT09IFwic3RyaW5nXCIgfHwgIWZpZWxkcy5pbmNsdWRlcyhmaWVsZCkpIHJldHVybjtcclxuXHJcbiAgICB0YXJnZXRzLmZvckVhY2goKHRhcmdldCkgPT4ge1xyXG4gICAgICAvLyBUaGlzIGlzIGdldHRpbmcgdGhlIG9yZGVyIG9mIHRoZSBmb2xkZXIgbm90ZSwgbm90IHRoZSBzb3VyY2UgcG9pbnRpbmcgdXAgdG8gaXRcclxuICAgICAgY29uc3Qgc291cmNlT3JkZXIgPSBnZXRTb3VyY2VPcmRlcihhbHRGaWxlKTtcclxuICAgICAgY29uc3QgdGFyZ2V0T3JkZXIgPSBnZXRUYXJnZXRPcmRlcihmcm9udG1zLCBiYXNlbmFtZSk7XHJcbiAgICAgIHBvcHVsYXRlTWFpbihcclxuICAgICAgICBzZXR0aW5ncyxcclxuICAgICAgICBtYWluRyxcclxuICAgICAgICBiYXNlbmFtZSxcclxuICAgICAgICBmaWVsZCxcclxuICAgICAgICB0YXJnZXQsXHJcbiAgICAgICAgc291cmNlT3JkZXIsXHJcbiAgICAgICAgdGFyZ2V0T3JkZXIsXHJcbiAgICAgICAgdHJ1ZVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGFsdEZpbGVbQkNfRk9MREVSX05PVEVfU1VCRk9MREVSU10pIHtcclxuICAgICAgY29uc3Qgc3ViZm9sZGVyRmllbGQgPSBhbHRGaWxlW0JDX0ZPTERFUl9OT1RFX1NVQkZPTERFUlNdIGFzIHN0cmluZztcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHR5cGVvZiBzdWJmb2xkZXJGaWVsZCAhPT0gXCJzdHJpbmdcIiB8fFxyXG4gICAgICAgICFmaWVsZHMuaW5jbHVkZXMoc3ViZm9sZGVyRmllbGQpXHJcbiAgICAgIClcclxuICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICBjb25zdCB7IHN1YkZvbGRlcnMgfSA9IGdldFN1YnNGcm9tRm9sZGVyKHRvcEZvbGRlcik7XHJcblxyXG4gICAgICBzdWJGb2xkZXJzLmZvckVhY2goKHN1YkZvbGRlcikgPT4ge1xyXG4gICAgICAgIHN1YkZvbGRlci5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgVEZpbGUpIHtcclxuICAgICAgICAgICAgY29uc3QgY2hpbGRCYXNlbmFtZSA9IGdldERWQmFzZW5hbWUoY2hpbGQpO1xyXG5cclxuICAgICAgICAgICAgcG9wdWxhdGVNYWluKFxyXG4gICAgICAgICAgICAgIHNldHRpbmdzLFxyXG4gICAgICAgICAgICAgIG1haW5HLFxyXG4gICAgICAgICAgICAgIGJhc2VuYW1lLFxyXG4gICAgICAgICAgICAgIHN1YmZvbGRlckZpZWxkLFxyXG4gICAgICAgICAgICAgIGNoaWxkQmFzZW5hbWUsXHJcbiAgICAgICAgICAgICAgOTk5OSxcclxuICAgICAgICAgICAgICA5OTk5LFxyXG4gICAgICAgICAgICAgIHRydWVcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFsdEZpbGVbQkNfRk9MREVSX05PVEVfUkVDVVJTSVZFXSkge1xyXG4gICAgICBjb25zdCB7IHN1YkZvbGRlcnMgfSA9IGdldFN1YnNGcm9tRm9sZGVyKHRvcEZvbGRlcik7XHJcbiAgICAgIGNvbnN0IGZvbGRlclF1ZXVlOiBURm9sZGVyW10gPSBbLi4uc3ViRm9sZGVyc107XHJcblxyXG4gICAgICBsZXQgY3VyckZvbGRlciA9IGZvbGRlclF1ZXVlLnNoaWZ0KCk7XHJcbiAgICAgIHdoaWxlIChjdXJyRm9sZGVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjb25zdCB7IG90aGVyTm90ZXMsIHN1YkZvbGRlcnMgfSA9IGdldFN1YnNGcm9tRm9sZGVyKGN1cnJGb2xkZXIpO1xyXG5cclxuICAgICAgICBjb25zdCBmb2xkZXJOb3RlID0gY3VyckZvbGRlci5uYW1lO1xyXG4gICAgICAgIGNvbnN0IHRhcmdldHMgPSBvdGhlck5vdGVzLm1hcChnZXREVkJhc2VuYW1lKTtcclxuXHJcbiAgICAgICAgLy8gaWYgKCFpc0luVmF1bHQoIGZvbGRlck5vdGUsIGZvbGRlck5vdGUpKSBjb250aW51ZTtcclxuXHJcbiAgICAgICAgY29uc3Qgc291cmNlT3JkZXIgPSA5OTk5OyAvLyBnZXRTb3VyY2VPcmRlcihhbHRGaWxlKTtcclxuICAgICAgICBjb25zdCB0YXJnZXRPcmRlciA9IDk5OTk7IC8vICBnZXRUYXJnZXRPcmRlcihmcm9udG1zLCBiYXNlbmFtZSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcmVudEZvbGRlck5vdGUgPSBjdXJyRm9sZGVyLnBhcmVudC5uYW1lO1xyXG5cclxuICAgICAgICBwb3B1bGF0ZU1haW4oXHJcbiAgICAgICAgICBzZXR0aW5ncyxcclxuICAgICAgICAgIG1haW5HLFxyXG4gICAgICAgICAgcGFyZW50Rm9sZGVyTm90ZSxcclxuICAgICAgICAgIGZpZWxkLFxyXG4gICAgICAgICAgZm9sZGVyTm90ZSxcclxuICAgICAgICAgIHNvdXJjZU9yZGVyLFxyXG4gICAgICAgICAgdGFyZ2V0T3JkZXIsXHJcbiAgICAgICAgICB0cnVlXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGFyZ2V0cy5mb3JFYWNoKCh0YXJnZXQpID0+IHtcclxuICAgICAgICAgIGlmICh0YXJnZXQgPT09IGZvbGRlck5vdGUpIHJldHVybjtcclxuICAgICAgICAgIGNvbnN0IHNvdXJjZU9yZGVyID0gOTk5OTsgLy8gZ2V0U291cmNlT3JkZXIoYWx0RmlsZSk7XHJcbiAgICAgICAgICBjb25zdCB0YXJnZXRPcmRlciA9IDk5OTk7IC8vICBnZXRUYXJnZXRPcmRlcihmcm9udG1zLCBiYXNlbmFtZSk7XHJcblxyXG4gICAgICAgICAgcG9wdWxhdGVNYWluKFxyXG4gICAgICAgICAgICBzZXR0aW5ncyxcclxuICAgICAgICAgICAgbWFpbkcsXHJcbiAgICAgICAgICAgIGZvbGRlck5vdGUsXHJcbiAgICAgICAgICAgIGZpZWxkLFxyXG4gICAgICAgICAgICB0YXJnZXQsXHJcbiAgICAgICAgICAgIHNvdXJjZU9yZGVyLFxyXG4gICAgICAgICAgICB0YXJnZXRPcmRlcixcclxuICAgICAgICAgICAgdHJ1ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgZm9sZGVyUXVldWUucHVzaCguLi5zdWJGb2xkZXJzKTtcclxuICAgICAgICBjdXJyRm9sZGVyID0gZm9sZGVyUXVldWUuc2hpZnQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIEZpcnN0IGFkZCBvdGhlck5vdGVzIHRvIGdyYXBoXHJcblxyXG4gICAgLy8gVGhlbiBpdGVyYXRlIHN1YkZvbGRlcnMgZG9pbmcgdGhlIHNhbWVcclxuICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHR5cGUgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHR5cGUgeyBURmlsZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgeyBnZXREVkJhc2VuYW1lLCBnZXRTZXR0aW5ncyB9IGZyb20gXCIuLi8uLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcbmltcG9ydCB0eXBlIHsgQkNTZXR0aW5ncywgSGllcmFyY2h5Tm90ZUl0ZW0gfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgeyBhZGRFZGdlSWZOb3QsIGFkZE5vZGVzSWZOb3QgfSBmcm9tIFwiLi4vLi4vVXRpbHMvZ3JhcGhVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXRGaWVsZEluZm8sIGdldEZpZWxkcywgZ2V0T3BwRGlyLCBnZXRPcHBGaWVsZHMgfSBmcm9tIFwiLi4vLi4vVXRpbHMvSGllclV0aWxzXCI7XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0SGllcmFyY2h5Tm90ZUl0ZW1zKGZpbGU6IFRGaWxlKSB7XHJcbiAgY29uc3QgeyBsaXN0SXRlbXMgfSA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpbGVDYWNoZShmaWxlKTtcclxuICBpZiAoIWxpc3RJdGVtcykgcmV0dXJuIFtdO1xyXG5cclxuICBjb25zdCBiYXNlbmFtZSA9IGdldERWQmFzZW5hbWUoZmlsZSlcclxuICBjb25zdCB7IGhpZXJhcmNoeU5vdGVJc1BhcmVudCB9ID0gZ2V0U2V0dGluZ3MoKTtcclxuXHJcbiAgY29uc3QgbGluZXMgPSAoYXdhaXQgYXBwLnZhdWx0LmNhY2hlZFJlYWQoZmlsZSkpLnNwbGl0KFwiXFxuXCIpO1xyXG5cclxuICBjb25zdCBoaWVyYXJjaHlOb3RlSXRlbXM6IEhpZXJhcmNoeU5vdGVJdGVtW10gPSBbXTtcclxuXHJcbiAgY29uc3QgYWZ0ZXJCdWxsZXRSZWcgPSBuZXcgUmVnRXhwKC9cXHMqWysqLV1cXHMoLiokKS8pO1xyXG4gIGNvbnN0IGRyb3BXaWtpTGlua3NSZWcgPSBuZXcgUmVnRXhwKC9cXFtcXFsoLio/KVxcXVxcXS8pO1xyXG4gIGNvbnN0IGZpZWxkUmVnID0gbmV3IFJlZ0V4cCgvKC4qPylcXFtcXFsuKj9cXF1cXF0vKTtcclxuXHJcbiAgZm9yIChjb25zdCBpdGVtIG9mIGxpc3RJdGVtcykge1xyXG4gICAgY29uc3QgbGluZSA9IGxpbmVzW2l0ZW0ucG9zaXRpb24uc3RhcnQubGluZV07XHJcblxyXG4gICAgY29uc3QgYWZ0ZXJCdWxsZXRDdXJyID0gYWZ0ZXJCdWxsZXRSZWcuZXhlYyhsaW5lKVsxXTtcclxuICAgIGNvbnN0IG5vdGUgPSBkcm9wV2lraUxpbmtzUmVnLmV4ZWMoYWZ0ZXJCdWxsZXRDdXJyKVsxXTtcclxuICAgIGxldCBmaWVsZCA9IGZpZWxkUmVnLmV4ZWMoYWZ0ZXJCdWxsZXRDdXJyKVsxXS50cmltKCkgfHwgbnVsbDtcclxuXHJcbiAgICBjb25zdCB7IHBhcmVudCB9ID0gaXRlbTtcclxuICAgIGlmIChwYXJlbnQgPj0gMCkge1xyXG4gICAgICBjb25zdCBwYXJlbnROb3RlID0gbGluZXNbcGFyZW50XTtcclxuICAgICAgY29uc3QgYWZ0ZXJCdWxsZXRQYXJlbnQgPSBhZnRlckJ1bGxldFJlZy5leGVjKHBhcmVudE5vdGUpWzFdO1xyXG4gICAgICBjb25zdCBkcm9wV2lraVBhcmVudCA9IGRyb3BXaWtpTGlua3NSZWcuZXhlYyhhZnRlckJ1bGxldFBhcmVudClbMV07XHJcblxyXG4gICAgICBoaWVyYXJjaHlOb3RlSXRlbXMucHVzaCh7XHJcbiAgICAgICAgbm90ZSxcclxuICAgICAgICBwYXJlbnQ6IGRyb3BXaWtpUGFyZW50LFxyXG4gICAgICAgIGZpZWxkLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGhpZXJhcmNoeU5vdGVJdGVtcy5wdXNoKHtcclxuICAgICAgICBub3RlLFxyXG4gICAgICAgIHBhcmVudDogaGllcmFyY2h5Tm90ZUlzUGFyZW50ID8gYmFzZW5hbWUgOiBudWxsLFxyXG4gICAgICAgIGZpZWxkLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGhpZXJhcmNoeU5vdGVJdGVtcztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZEhOc1RvR3JhcGgoXHJcbiAgc2V0dGluZ3M6IEJDU2V0dGluZ3MsXHJcbiAgaG5BcnI6IEhpZXJhcmNoeU5vdGVJdGVtW10sXHJcbiAgbWFpbkc6IE11bHRpR3JhcGhcclxuKSB7XHJcbiAgY29uc3QgeyBITlVwRmllbGQsIHVzZXJIaWVycyB9ID0gc2V0dGluZ3M7XHJcbiAgY29uc3QgdXBGaWVsZHMgPSBnZXRGaWVsZHModXNlckhpZXJzLCBcInVwXCIpO1xyXG5cclxuICBobkFyci5mb3JFYWNoKChobkl0ZW0sIGkpID0+IHtcclxuICAgIGNvbnN0IHsgbm90ZSwgZmllbGQsIHBhcmVudCB9ID0gaG5JdGVtO1xyXG5cclxuICAgIGNvbnN0IHRhcmdldEZpZWxkID0gZmllbGQgPz8gKEhOVXBGaWVsZCB8fCB1cEZpZWxkc1swXSk7XHJcbiAgICBjb25zdCBkaXIgPSBnZXRGaWVsZEluZm8odXNlckhpZXJzLCB0YXJnZXRGaWVsZCk/LmZpZWxkRGlyO1xyXG4gICAgY29uc3Qgb3BwRGlyID0gZ2V0T3BwRGlyKGRpcik7XHJcbiAgICBjb25zdCBvcHBGaWVsZCA9IGdldE9wcEZpZWxkcyh1c2VySGllcnMsIHRhcmdldEZpZWxkLCBkaXIpWzBdO1xyXG5cclxuICAgIGlmIChwYXJlbnQgPT09IG51bGwpIHtcclxuICAgICAgY29uc3QgcyA9IG5vdGU7XHJcbiAgICAgIGNvbnN0IHQgPSBobkFycltpICsgMV0/Lm5vdGU7XHJcblxyXG4gICAgICBhZGROb2Rlc0lmTm90KG1haW5HLCBbcywgdF0pO1xyXG4gICAgICBhZGRFZGdlSWZOb3QobWFpbkcsIHMsIHQsIHsgZGlyOiBvcHBEaXIsIGZpZWxkOiBvcHBGaWVsZCB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGFkZE5vZGVzSWZOb3QobWFpbkcsIFtub3RlLCBwYXJlbnRdKTtcclxuICAgICAgaWYgKHNldHRpbmdzLnNob3dVcEluSnVnZ2wpIHtcclxuICAgICAgICBhZGRFZGdlSWZOb3QobWFpbkcsIG5vdGUsIHBhcmVudCwge1xyXG4gICAgICAgICAgZGlyLFxyXG4gICAgICAgICAgZmllbGQ6IHRhcmdldEZpZWxkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhZGRFZGdlSWZOb3QobWFpbkcsIHBhcmVudCwgbm90ZSwge1xyXG4gICAgICAgIGRpcjogb3BwRGlyLFxyXG4gICAgICAgIGZpZWxkOiBvcHBGaWVsZCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuIiwgImltcG9ydCB0eXBlIHsgTXVsdGlHcmFwaCB9IGZyb20gXCJncmFwaG9sb2d5XCI7XHJcbmltcG9ydCB7IHBhcnNlVHlwZWRMaW5rIH0gZnJvbSBcImp1Z2dsLWFwaVwiO1xyXG5pbXBvcnQgdHlwZSB7IFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IHNwbGl0TGlua3NSZWdleCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHR5cGUgeyBCQ1NldHRpbmdzLCBkdkZyb250bWF0dGVyQ2FjaGUsIEp1Z2dsTGluayB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IGdldFRhcmdldE9yZGVyLCBwb3B1bGF0ZU1haW4gfSBmcm9tIFwiLi4vVXRpbHMvZ3JhcGhVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXRGaWVsZEluZm8sIGdldEZpZWxkcyB9IGZyb20gXCIuLi9VdGlscy9IaWVyVXRpbHNcIjtcclxuXHJcbi8vIFRPRE8gSSB0aGluayBpdCdkIGJlIGJldHRlciB0byBkbyB0aGlzIHdob2xlIHRoaW5nIGFzIGFuIG9iaiBpbnN0ZWFkIG9mIEp1Z2dsTGlua1tdXHJcbi8vID0+IHtbbm90ZTogc3RyaW5nXToge3R5cGU6IHN0cmluZywgbGlua3NJbkxpbmU6IHN0cmluZ1tdfVtdfVxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0SnVnZ2xMaW5rcyhcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIGZpbGVzOiBURmlsZVtdXHJcbik6IFByb21pc2U8SnVnZ2xMaW5rW10+IHtcclxuICBjb25zdCB7IHNldHRpbmdzLCBkYiB9ID0gcGx1Z2luO1xyXG4gIGRiLnN0YXJ0MkcoXCJnZXRKdWdnbExpbmtzXCIpO1xyXG5cclxuICBjb25zdCB7IHVzZXJIaWVycyB9ID0gc2V0dGluZ3M7XHJcblxyXG4gIC8vIEFkZCBKdWdnbCBsaW5rc1xyXG4gIGNvbnN0IHR5cGVkTGlua3NBcnI6IEp1Z2dsTGlua1tdID0gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICBmaWxlcy5tYXAoYXN5bmMgKGZpbGUpID0+IHtcclxuICAgICAgY29uc3QganVnZ2xMaW5rOiBKdWdnbExpbmsgPSB7IGZpbGUsIGxpbmtzOiBbXSB9O1xyXG5cclxuICAgICAgLy8gVXNlIE9icyBtZXRhZGF0YWNhY2hlIHRvIGdldCB0aGUgbGlua3MgaW4gdGhlIGN1cnJlbnQgZmlsZVxyXG4gICAgICBjb25zdCBsaW5rcyA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpbGVDYWNoZShmaWxlKT8ubGlua3MgPz8gW107XHJcblxyXG4gICAgICBjb25zdCBjb250ZW50ID0gbGlua3MubGVuZ3RoID8gYXdhaXQgYXBwLnZhdWx0LmNhY2hlZFJlYWQoZmlsZSkgOiBcIlwiO1xyXG4gICAgICBjb25zdCBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoXCJcXG5cIik7XHJcblxyXG4gICAgICBsaW5rcy5mb3JFYWNoKChsaW5rKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbGluZU5vID0gbGluay5wb3NpdGlvbi5zdGFydC5saW5lO1xyXG4gICAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1tsaW5lTm9dO1xyXG5cclxuICAgICAgICAvLyBDaGVjayB0aGUgbGluZSBmb3Igd2lraWxpbmtzLCBhbmQgcmV0dXJuIGFuIGFycmF5IG9mIGxpbmsuaW5uZXJUZXh0XHJcbiAgICAgICAgY29uc3QgbGlua3NJbkxpbmUgPVxyXG4gICAgICAgICAgbGluZVxyXG4gICAgICAgICAgICAubWF0Y2goc3BsaXRMaW5rc1JlZ2V4KVxyXG4gICAgICAgICAgICA/Lm1hcCgobGluaykgPT4gbGluay5zbGljZSgyLCBsaW5rLmxlbmd0aCAtIDIpKVxyXG4gICAgICAgICAgICA/Lm1hcCgoaW5uZXJUZXh0KSA9PiBpbm5lclRleHQuc3BsaXQoXCJ8XCIpWzBdKSA/PyBbXTtcclxuXHJcbiAgICAgICAgY29uc3QgdHlwZWRMaW5rUHJlZml4ID1cclxuICAgICAgICAgIGFwcC5wbHVnaW5zLnBsdWdpbnMuanVnZ2w/LnNldHRpbmdzLnR5cGVkTGlua1ByZWZpeCA/PyBcIi1cIjtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyc2VkTGlua3MgPSBwYXJzZVR5cGVkTGluayhsaW5rLCBsaW5lLCB0eXBlZExpbmtQcmVmaXgpO1xyXG5cclxuICAgICAgICBjb25zdCBmaWVsZCA9IHBhcnNlZExpbmtzPy5wcm9wZXJ0aWVzPy50eXBlID8/IFwiXCI7XHJcbiAgICAgICAgaWYgKGZpZWxkID09PSBcIlwiKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgeyBmaWVsZERpciB9ID0gZ2V0RmllbGRJbmZvKHVzZXJIaWVycywgZmllbGQpIHx8IHt9O1xyXG4gICAgICAgIGlmICghZmllbGREaXIpIHJldHVybjtcclxuXHJcbiAgICAgICAganVnZ2xMaW5rLmxpbmtzLnB1c2goe1xyXG4gICAgICAgICAgZGlyOiBmaWVsZERpcixcclxuICAgICAgICAgIGZpZWxkLFxyXG4gICAgICAgICAgbGlua3NJbkxpbmUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4ganVnZ2xMaW5rO1xyXG4gICAgfSlcclxuICApO1xyXG5cclxuICBjb25zdCBhbGxGaWVsZHMgPSBnZXRGaWVsZHModXNlckhpZXJzKTtcclxuXHJcbiAgY29uc3QgZmlsdGVyZWRMaW5rcyA9IHR5cGVkTGlua3NBcnIubWFwKChqdWdnbExpbmspID0+IHtcclxuICAgIC8vIEZpbHRlciBvdXQgbGlua3Mgd2hvc2UgdHlwZSBpcyBub3QgaW4gYWxsRmllbGRzXHJcbiAgICBqdWdnbExpbmsubGlua3MgPSBqdWdnbExpbmsubGlua3MuZmlsdGVyKChsaW5rKSA9PlxyXG4gICAgICBhbGxGaWVsZHMuaW5jbHVkZXMobGluay5maWVsZClcclxuICAgICk7XHJcbiAgICByZXR1cm4ganVnZ2xMaW5rO1xyXG4gIH0pO1xyXG4gIGRiLmVuZDJHKHsgZmlsdGVyZWRMaW5rcyB9KTtcclxuICByZXR1cm4gZmlsdGVyZWRMaW5rcztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZEp1Z2dsTGlua3NUb0dyYXBoKFxyXG4gIHNldHRpbmdzOiBCQ1NldHRpbmdzLFxyXG4gIGp1Z2dsTGlua3M6IEp1Z2dsTGlua1tdLFxyXG4gIGZyb250bXM6IGR2RnJvbnRtYXR0ZXJDYWNoZVtdLFxyXG4gIG1haW5HOiBNdWx0aUdyYXBoXHJcbikge1xyXG4gIGp1Z2dsTGlua3MuZm9yRWFjaCgoanVnZ2xMaW5rKSA9PiB7XHJcbiAgICBjb25zdCB7IGJhc2VuYW1lIH0gPSBqdWdnbExpbmsuZmlsZTtcclxuICAgIGp1Z2dsTGluay5saW5rcy5mb3JFYWNoKChsaW5rKSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgZGlyLCBmaWVsZCwgbGlua3NJbkxpbmUgfSA9IGxpbms7XHJcbiAgICAgIGlmIChkaXIgPT09IFwiXCIpIHJldHVybjtcclxuICAgICAgY29uc3Qgc291cmNlT3JkZXIgPSBnZXRUYXJnZXRPcmRlcihmcm9udG1zLCBiYXNlbmFtZSk7XHJcbiAgICAgIGxpbmtzSW5MaW5lLmZvckVhY2goKGxpbmtJbkxpbmUpID0+IHtcclxuICAgICAgICAvLyBJcyB0aGlzIGEgYnVnPyBXaHkgbm90IGBnZXRTb3VyY2VPcmRlcmA/XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0c09yZGVyID0gZ2V0VGFyZ2V0T3JkZXIoZnJvbnRtcywgbGlua0luTGluZSk7XHJcblxyXG4gICAgICAgIHBvcHVsYXRlTWFpbihcclxuICAgICAgICAgIHNldHRpbmdzLFxyXG4gICAgICAgICAgbWFpbkcsXHJcbiAgICAgICAgICBiYXNlbmFtZSxcclxuICAgICAgICAgIGZpZWxkLFxyXG4gICAgICAgICAgbGlua0luTGluZSxcclxuICAgICAgICAgIHNvdXJjZU9yZGVyLFxyXG4gICAgICAgICAgdGFyZ2V0c09yZGVyXHJcbiAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHR5cGUgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHsgQkNfTElOS19OT1RFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSB7IGR2RnJvbnRtYXR0ZXJDYWNoZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7XHJcbiAgZ2V0U291cmNlT3JkZXIsXHJcbiAgZ2V0VGFyZ2V0T3JkZXIsXHJcbiAgcG9wdWxhdGVNYWluLFxyXG59IGZyb20gXCIuLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcbmltcG9ydCB7IGdldEZpZWxkcyB9IGZyb20gXCIuLi9VdGlscy9IaWVyVXRpbHNcIjtcclxuaW1wb3J0IHsgZ2V0RFZCYXNlbmFtZSB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkTGlua05vdGVzVG9HcmFwaChcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIGVsaWdhYmxlQWx0czogZHZGcm9udG1hdHRlckNhY2hlW10sXHJcbiAgZnJvbnRtczogZHZGcm9udG1hdHRlckNhY2hlW10sXHJcbiAgbWFpbkc6IE11bHRpR3JhcGhcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgdXNlckhpZXJzIH0gPSBzZXR0aW5ncztcclxuICBjb25zdCBmaWVsZHMgPSBnZXRGaWVsZHModXNlckhpZXJzKTtcclxuICBlbGlnYWJsZUFsdHMuZm9yRWFjaCgoYWx0RmlsZSkgPT4ge1xyXG4gICAgY29uc3QgbGlua05vdGVGaWxlID0gYWx0RmlsZS5maWxlO1xyXG4gICAgY29uc3QgbGlua05vdGVCYXNlbmFtZSA9IGdldERWQmFzZW5hbWUobGlua05vdGVGaWxlKTtcclxuXHJcbiAgICBsZXQgZmllbGQgPSBhbHRGaWxlW0JDX0xJTktfTk9URV0gYXMgc3RyaW5nO1xyXG4gICAgaWYgKHR5cGVvZiBmaWVsZCAhPT0gXCJzdHJpbmdcIiB8fCAhZmllbGRzLmluY2x1ZGVzKGZpZWxkKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGxpbmtzID0gYXBwLm1ldGFkYXRhQ2FjaGVcclxuICAgICAgLmdldEZpbGVDYWNoZShsaW5rTm90ZUZpbGUpXHJcbiAgICAgID8ubGlua3M/Lm1hcCgobCkgPT4gbC5saW5rLm1hdGNoKC9bXiN8XSsvKVswXSk7XHJcblxyXG4gICAgY29uc3QgZW1iZWRzID0gYXBwLm1ldGFkYXRhQ2FjaGVcclxuICAgICAgLmdldEZpbGVDYWNoZShsaW5rTm90ZUZpbGUpXHJcbiAgICAgID8uZW1iZWRzPy5tYXAoKGwpID0+IGwubGluay5tYXRjaCgvW14jfF0rLylbMF0pO1xyXG5cclxuICAgIGNvbnN0IHRhcmdldHMgPSBbLi4uKGxpbmtzID8/IFtdKSwgLi4uKGVtYmVkcyA/PyBbXSldO1xyXG5cclxuICAgIGZvciAoY29uc3QgdGFyZ2V0IG9mIHRhcmdldHMpIHtcclxuICAgICAgY29uc3Qgc291cmNlT3JkZXIgPSBnZXRTb3VyY2VPcmRlcihhbHRGaWxlKTtcclxuICAgICAgY29uc3QgdGFyZ2V0T3JkZXIgPSBnZXRUYXJnZXRPcmRlcihmcm9udG1zLCBsaW5rTm90ZUJhc2VuYW1lKTtcclxuICAgICAgcG9wdWxhdGVNYWluKFxyXG4gICAgICAgIHNldHRpbmdzLFxyXG4gICAgICAgIG1haW5HLFxyXG4gICAgICAgIGxpbmtOb3RlQmFzZW5hbWUsXHJcbiAgICAgICAgZmllbGQsXHJcbiAgICAgICAgdGFyZ2V0LFxyXG4gICAgICAgIHNvdXJjZU9yZGVyLFxyXG4gICAgICAgIHRhcmdldE9yZGVyLFxyXG4gICAgICAgIHRydWVcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHR5cGUgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHsgaW5mbyB9IGZyb20gXCJsb2dsZXZlbFwiO1xyXG5pbXBvcnQgeyBCQ19JR05PUkUsIEJDX1JFR0VYX05PVEUsIEJDX1JFR0VYX05PVEVfRklFTEQgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB0eXBlIHsgZHZGcm9udG1hdHRlckNhY2hlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgc3RyVG9SZWdleCB9IGZyb20gXCIuLi9VdGlscy9nZW5lcmFsVXRpbHNcIjtcclxuaW1wb3J0IHtcclxuICBnZXRTb3VyY2VPcmRlcixcclxuICBnZXRUYXJnZXRPcmRlcixcclxuICBwb3B1bGF0ZU1haW4sXHJcbn0gZnJvbSBcIi4uL1V0aWxzL2dyYXBoVXRpbHNcIjtcclxuaW1wb3J0IHsgZ2V0RmllbGRzIH0gZnJvbSBcIi4uL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXREVkJhc2VuYW1lIH0gZnJvbSBcIi4uL1V0aWxzL09ic2lkaWFuVXRpbHNcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRSZWdleE5vdGVzVG9HcmFwaChcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIGVsaWdhYmxlQWx0czogZHZGcm9udG1hdHRlckNhY2hlW10sXHJcbiAgZnJvbnRtczogZHZGcm9udG1hdHRlckNhY2hlW10sXHJcbiAgbWFpbkc6IE11bHRpR3JhcGhcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgdXNlckhpZXJzLCByZWdleE5vdGVGaWVsZCB9ID0gc2V0dGluZ3M7XHJcbiAgY29uc3QgZmllbGRzID0gZ2V0RmllbGRzKHVzZXJIaWVycyk7XHJcblxyXG4gIGVsaWdhYmxlQWx0cy5mb3JFYWNoKChhbHRGaWxlKSA9PiB7XHJcbiAgICBjb25zdCByZWdleE5vdGVGaWxlID0gYWx0RmlsZS5maWxlO1xyXG4gICAgY29uc3QgcmVnZXhOb3RlQmFzZW5hbWUgPSBnZXREVkJhc2VuYW1lKHJlZ2V4Tm90ZUZpbGUpO1xyXG5cclxuICAgIGNvbnN0IHJlZ2V4ID0gc3RyVG9SZWdleChhbHRGaWxlW0JDX1JFR0VYX05PVEVdIGFzIHN0cmluZyk7XHJcbiAgICBpbmZvKHsgcmVnZXggfSk7XHJcblxyXG4gICAgbGV0IGZpZWxkID0gYWx0RmlsZVtCQ19SRUdFWF9OT1RFX0ZJRUxEXSBhcyBzdHJpbmc7XHJcbiAgICBpZiAodHlwZW9mIGZpZWxkICE9PSBcInN0cmluZ1wiIHx8ICFmaWVsZHMuaW5jbHVkZXMoZmllbGQpKVxyXG4gICAgICBmaWVsZCA9IHJlZ2V4Tm90ZUZpZWxkIHx8IGZpZWxkc1swXTtcclxuXHJcbiAgICBjb25zdCB0YXJnZXRzID0gW107XHJcbiAgICBmcm9udG1zLmZvckVhY2goKHBhZ2UpID0+IHtcclxuICAgICAgaWYgKHBhZ2VbQkNfSUdOT1JFXSkgcmV0dXJuO1xyXG4gICAgICBjb25zdCBiYXNlbmFtZSA9IGdldERWQmFzZW5hbWUocGFnZS5maWxlKTtcclxuICAgICAgaWYgKGJhc2VuYW1lICE9PSByZWdleE5vdGVCYXNlbmFtZSAmJiByZWdleC50ZXN0KGJhc2VuYW1lKSlcclxuICAgICAgICB0YXJnZXRzLnB1c2goYmFzZW5hbWUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZm9yIChjb25zdCB0YXJnZXQgb2YgdGFyZ2V0cykge1xyXG4gICAgICBjb25zdCBzb3VyY2VPcmRlciA9IGdldFNvdXJjZU9yZGVyKGFsdEZpbGUpO1xyXG4gICAgICBjb25zdCB0YXJnZXRPcmRlciA9IGdldFRhcmdldE9yZGVyKGZyb250bXMsIHJlZ2V4Tm90ZUJhc2VuYW1lKTtcclxuICAgICAgcG9wdWxhdGVNYWluKFxyXG4gICAgICAgIHNldHRpbmdzLFxyXG4gICAgICAgIG1haW5HLFxyXG4gICAgICAgIHJlZ2V4Tm90ZUJhc2VuYW1lLFxyXG4gICAgICAgIGZpZWxkLFxyXG4gICAgICAgIHRhcmdldCxcclxuICAgICAgICBzb3VyY2VPcmRlcixcclxuICAgICAgICB0YXJnZXRPcmRlcixcclxuICAgICAgICB0cnVlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuIiwgImltcG9ydCB0eXBlIHsgTXVsdGlHcmFwaCB9IGZyb20gXCJncmFwaG9sb2d5XCI7XHJcbmltcG9ydCB7IGluZm8gfSBmcm9tIFwibG9nbGV2ZWxcIjtcclxuaW1wb3J0IHR5cGUgeyBURmlsZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQge1xyXG4gIEJDX0lHTk9SRSxcclxuICBCQ19UQUdfTk9URSxcclxuICBCQ19UQUdfTk9URV9FWEFDVCxcclxuICBCQ19UQUdfTk9URV9GSUVMRCxcclxufSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB0eXBlIHsgZHZGcm9udG1hdHRlckNhY2hlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgc3BsaXRBbmRUcmltIH0gZnJvbSBcIi4uL1V0aWxzL2dlbmVyYWxVdGlsc1wiO1xyXG5pbXBvcnQge1xyXG4gIGdldFNvdXJjZU9yZGVyLFxyXG4gIGdldFRhcmdldE9yZGVyLFxyXG4gIHBvcHVsYXRlTWFpbixcclxufSBmcm9tIFwiLi4vVXRpbHMvZ3JhcGhVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXRGaWVsZHMgfSBmcm9tIFwiLi4vVXRpbHMvSGllclV0aWxzXCI7XHJcbmltcG9ydCB7IGFkZEhhc2gsIGRyb3BIYXNoLCBnZXREVkJhc2VuYW1lIH0gZnJvbSBcIi4uL1V0aWxzL09ic2lkaWFuVXRpbHNcIjtcclxuXHJcbmNvbnN0IGdldEFsbFRhZ3MgPSAoZmlsZTogVEZpbGUsIHdpdGhIYXNoID0gdHJ1ZSk6IHN0cmluZ1tdID0+IHtcclxuICBjb25zdCB7IHRhZ3MsIGZyb250bWF0dGVyIH0gPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaWxlQ2FjaGUoZmlsZSk7XHJcbiAgY29uc3QgYWxsVGFnczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgdGFncz8uZm9yRWFjaCgodCkgPT4gYWxsVGFncy5wdXNoKGRyb3BIYXNoKHQudGFnKSkpO1xyXG5cclxuICBbZnJvbnRtYXR0ZXI/LnRhZ3MgPz8gW11dLmZsYXQoKS5mb3JFYWNoKCh0OiBzdHJpbmcpID0+IHtcclxuICAgIHNwbGl0QW5kVHJpbSh0KS5mb3JFYWNoKChpbm5lclQpID0+IGFsbFRhZ3MucHVzaChkcm9wSGFzaChpbm5lclQpKSk7XHJcbiAgfSk7XHJcbiAgW2Zyb250bWF0dGVyPy50YWcgPz8gW11dLmZsYXQoKS5mb3JFYWNoKCh0OiBzdHJpbmcpID0+IHtcclxuICAgIHNwbGl0QW5kVHJpbSh0KS5mb3JFYWNoKChpbm5lclQpID0+IGFsbFRhZ3MucHVzaChkcm9wSGFzaChpbm5lclQpKSk7XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiBhbGxUYWdzLm1hcCgodCkgPT4gKHdpdGhIYXNoID8gXCIjXCIgOiBcIlwiKSArIHQudG9Mb3dlckNhc2UoKSk7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkVGFnTm90ZXNUb0dyYXBoKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgZWxpZ2FibGVBbHRzOiBkdkZyb250bWF0dGVyQ2FjaGVbXSxcclxuICBmcm9udG1zOiBkdkZyb250bWF0dGVyQ2FjaGVbXSxcclxuICBtYWluRzogTXVsdGlHcmFwaFxyXG4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgeyB1c2VySGllcnMsIHRhZ05vdGVGaWVsZCB9ID0gc2V0dGluZ3M7XHJcbiAgY29uc3QgZmllbGRzID0gZ2V0RmllbGRzKHVzZXJIaWVycyk7XHJcbiAgZWxpZ2FibGVBbHRzLmZvckVhY2goKGFsdEZpbGUpID0+IHtcclxuICAgIGNvbnN0IHRhZ05vdGVGaWxlID0gYWx0RmlsZS5maWxlO1xyXG5cclxuICAgIGNvbnN0IHRhZ05vdGVCYXNlbmFtZSA9IGdldERWQmFzZW5hbWUodGFnTm90ZUZpbGUpO1xyXG4gICAgY29uc3QgdGFnID0gYWRkSGFzaCgoYWx0RmlsZVtCQ19UQUdfTk9URV0gYXMgc3RyaW5nKS50cmltKCkudG9Mb3dlckNhc2UoKSk7XHJcbiAgICBpbmZvKHsgdGFnIH0pO1xyXG5cclxuICAgIGNvbnN0IGhhc1RoaXNUYWcgPSAoZmlsZTogVEZpbGUpID0+IHtcclxuICAgICAgY29uc3QgYWxsVGFncyA9IGdldEFsbFRhZ3MoZmlsZSk7XHJcbiAgICAgIHJldHVybiBhbHRGaWxlW0JDX1RBR19OT1RFX0VYQUNUXSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgPyBhbGxUYWdzLmluY2x1ZGVzKHRhZylcclxuICAgICAgICA6IGFsbFRhZ3Muc29tZSgodCkgPT4gdC5pbmNsdWRlcyh0YWcpKTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgdGFyZ2V0cyA9IGZyb250bXNcclxuICAgICAgLm1hcCgoZmYpID0+IGZmLmZpbGUpXHJcbiAgICAgIC5maWx0ZXIoKGZpbGUpID0+IGZpbGUucGF0aCAhPT0gdGFnTm90ZUZpbGUucGF0aCAmJiBoYXNUaGlzVGFnKGZpbGUpICYmICFmaWxlW0JDX0lHTk9SRV0pXHJcbiAgICAgIC5tYXAoZ2V0RFZCYXNlbmFtZSk7XHJcbiAgICBpbmZvKHsgdGFyZ2V0cyB9KTtcclxuXHJcbiAgICBsZXQgZmllbGQgPVxyXG4gICAgICAoYWx0RmlsZVtCQ19UQUdfTk9URV9GSUVMRF0gYXMgc3RyaW5nKSA/PyAodGFnTm90ZUZpZWxkIHx8IGZpZWxkc1swXSk7XHJcblxyXG4gICAgdGFyZ2V0cy5mb3JFYWNoKCh0YXJnZXQpID0+IHtcclxuICAgICAgY29uc3Qgc291cmNlT3JkZXIgPSBnZXRTb3VyY2VPcmRlcihhbHRGaWxlKTtcclxuICAgICAgY29uc3QgdGFyZ2V0T3JkZXIgPSBnZXRUYXJnZXRPcmRlcihmcm9udG1zLCB0YWdOb3RlQmFzZW5hbWUpO1xyXG4gICAgICBwb3B1bGF0ZU1haW4oXHJcbiAgICAgICAgc2V0dGluZ3MsXHJcbiAgICAgICAgbWFpbkcsXHJcbiAgICAgICAgdGFnTm90ZUJhc2VuYW1lLFxyXG4gICAgICAgIGZpZWxkLFxyXG4gICAgICAgIHRhcmdldCxcclxuICAgICAgICBzb3VyY2VPcmRlcixcclxuICAgICAgICB0YXJnZXRPcmRlcixcclxuICAgICAgICB0cnVlXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IHR5cGUgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHsgaW5mbyB9IGZyb20gXCJsb2dsZXZlbFwiO1xyXG5pbXBvcnQgeyBCQ19UUkFWRVJTRV9OT1RFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSB7IGR2RnJvbnRtYXR0ZXJDYWNoZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IGRmc0FsbFBhdGhzLCBwb3B1bGF0ZU1haW4sIHJlbW92ZUN5Y2xlcyB9IGZyb20gXCIuLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcbmltcG9ydCB7IGdldEZpZWxkcyB9IGZyb20gXCIuLi9VdGlscy9IaWVyVXRpbHNcIjtcclxuaW1wb3J0IHsgZ2V0RFZCYXNlbmFtZSB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkVHJhdmVyc2VOb3Rlc1RvR3JhcGgoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICB0cmF2ZXJzZU5vdGVzOiBkdkZyb250bWF0dGVyQ2FjaGVbXSxcclxuICBtYWluRzogTXVsdGlHcmFwaCxcclxuICBvYnNHOiBNdWx0aUdyYXBoXHJcbikge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7IHVzZXJIaWVycyB9ID0gc2V0dGluZ3M7XHJcbiAgY29uc3QgZmllbGRzID0gZ2V0RmllbGRzKHVzZXJIaWVycyk7XHJcblxyXG4gIHRyYXZlcnNlTm90ZXMuZm9yRWFjaCgoYWx0RmlsZSkgPT4ge1xyXG4gICAgY29uc3QgeyBmaWxlIH0gPSBhbHRGaWxlO1xyXG4gICAgY29uc3QgYmFzZW5hbWUgPSBnZXREVkJhc2VuYW1lKGZpbGUpO1xyXG4gICAgY29uc3Qgbm9DeWNsZXMgPSByZW1vdmVDeWNsZXMob2JzRywgYmFzZW5hbWUpO1xyXG5cclxuICAgIGxldCBmaWVsZCA9IGFsdEZpbGVbQkNfVFJBVkVSU0VfTk9URV0gYXMgc3RyaW5nO1xyXG4gICAgaWYgKHR5cGVvZiBmaWVsZCAhPT0gXCJzdHJpbmdcIiB8fCAhZmllbGRzLmluY2x1ZGVzKGZpZWxkKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGFsbFBhdGhzID0gZGZzQWxsUGF0aHMobm9DeWNsZXMsIGJhc2VuYW1lKTtcclxuICAgIGluZm8oYWxsUGF0aHMpO1xyXG4gICAgY29uc3QgcmV2ZXJzZWQgPSBbLi4uYWxsUGF0aHNdLm1hcCgocGF0aCkgPT4gcGF0aC5yZXZlcnNlKCkpO1xyXG4gICAgcmV2ZXJzZWQuZm9yRWFjaCgocGF0aCkgPT4ge1xyXG4gICAgICBwYXRoLmZvckVhY2goKG5vZGUsIGkpID0+IHtcclxuICAgICAgICBjb25zdCBuZXh0ID0gcGF0aFtpICsgMV07XHJcbiAgICAgICAgaWYgKG5leHQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG4gICAgICAgIHBvcHVsYXRlTWFpbihcclxuICAgICAgICAgIHNldHRpbmdzLFxyXG4gICAgICAgICAgbWFpbkcsXHJcbiAgICAgICAgICBub2RlLFxyXG4gICAgICAgICAgZmllbGQgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgbmV4dCxcclxuICAgICAgICAgIDk5OTksXHJcbiAgICAgICAgICA5OTk5LFxyXG4gICAgICAgICAgdHJ1ZVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfSk7XHJcbn1cclxuIiwgImltcG9ydCB0eXBlIHsgTXVsdGlHcmFwaCB9IGZyb20gXCJncmFwaG9sb2d5XCI7XHJcbmltcG9ydCB7IGFkZEVkZ2VJZk5vdCB9IGZyb20gXCIuL1V0aWxzL2dyYXBoVXRpbHNcIjtcclxuaW1wb3J0IHsgQkNfSV9BVU5ULCBCQ19JX0NPVVNJTiwgQkNfSV9QQVJFTlQsIEJDX0lfU0lCTElOR18xLCBCQ19JX1NJQkxJTkdfMiB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSB7IEJDU2V0dGluZ3MgfSBmcm9tIFwiLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IGZhbGxiYWNrRmllbGQsIGdldEZpZWxkSW5mbyB9IGZyb20gXCIuL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFNpYmxpbmdzRnJvbVNhbWVQYXJlbnQoZzogTXVsdGlHcmFwaCwgc2V0dGluZ3M6IEJDU2V0dGluZ3MpIHtcclxuICAgIGNvbnN0IHsgdXNlckhpZXJzLCB0cmVhdEN1cnJOb2RlQXNJbXBsaWVkU2libGluZyB9ID0gc2V0dGluZ3M7XHJcbiAgICBnLmZvckVhY2hOb2RlKChjdXJyTiwgYSkgPT4ge1xyXG4gICAgICAgIC8vIEZpbmQgcGFyZW50cyBvZiBjdXJyZW50IG5vZGVcclxuICAgICAgICBnLmZvckVhY2hPdXRFZGdlKGN1cnJOLCAoaywgY3Vyck5BdHRyLCBzLCBwYXJlbnROb2RlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjdXJyTkF0dHIuZGlyICE9PSBcInVwXCIpIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHsgZmllbGREaXIsIGZpZWxkSGllciB9ID0gZ2V0RmllbGRJbmZvKHVzZXJIaWVycywgY3Vyck5BdHRyLmZpZWxkKTtcclxuICAgICAgICAgICAgY29uc3QgZmllbGQgPVxyXG4gICAgICAgICAgICAgICAgZmllbGRIaWVyLnNhbWVbMF0gPz8gZmFsbGJhY2tGaWVsZChjdXJyTkF0dHIuZmllbGQsIGZpZWxkRGlyKTtcclxuXHJcbiAgICAgICAgICAgIC8vIEZpbmQgdGhlIGNoaWxkcmVuIG9mIHRob3NlIHBhcmVudHNcclxuICAgICAgICAgICAgZy5mb3JFYWNoT3V0RWRnZShwYXJlbnROb2RlLCAoaywgYSwgcywgaW1wbGllZFNpYmxpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIFNraXAgdGhlIGN1cnJlbnQgbm9kZSBpZiB0aGUgc2V0dGluZ3Mgc2F5IHRvXHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgYS5kaXIgIT09IFwiZG93blwiIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgKCF0cmVhdEN1cnJOb2RlQXNJbXBsaWVkU2libGluZyAmJiBpbXBsaWVkU2libGluZyA9PT0gY3Vyck4pXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgICAgIGFkZEVkZ2VJZk5vdChnLCBjdXJyTiwgaW1wbGllZFNpYmxpbmcsIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXI6IFwic2FtZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgIGltcGxpZWQ6IEJDX0lfU0lCTElOR18xLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRTaWJsaW5nc1BhcmVudElzUGFyZW50KGc6IE11bHRpR3JhcGgpIHtcclxuICAgIGcuZm9yRWFjaE5vZGUoKGN1cnJOLCBhKSA9PiB7XHJcbiAgICAgICAgLy8gRmluZCBzaWJsaW5ncyBvZiBjdXJyZW50IG5vZGVcclxuICAgICAgICBnLmZvckVhY2hPdXRFZGdlKGN1cnJOLCAoaywgY3Vyck5BdHRyLCBzLCBzaWJsaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjdXJyTkF0dHIuZGlyICE9PSBcInNhbWVcIikgcmV0dXJuO1xyXG4gICAgICAgICAgICAvLyBGaW5kIHRoZSBwYXJlbnRzIG9mIHRob3NlIHNpYmxpbmdzXHJcbiAgICAgICAgICAgIGcuZm9yRWFjaE91dEVkZ2Uoc2libGluZywgKGssIGEsIHMsIHBhcmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBkaXIsIGZpZWxkIH0gPSBhO1xyXG4gICAgICAgICAgICAgICAgaWYgKGRpciAhPT0gXCJ1cFwiKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgICAgICAgYWRkRWRnZUlmTm90KGcsIGN1cnJOLCBwYXJlbnQsIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXI6IFwidXBcIixcclxuICAgICAgICAgICAgICAgICAgICBmaWVsZCxcclxuICAgICAgICAgICAgICAgICAgICBpbXBsaWVkOiBCQ19JX1BBUkVOVCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG59XHJcblxyXG4vLyBUcmFuc2l0aXZlIGNsb3N1cmUgb2Ygc2libGluZ3NcclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFNpYmxpbmdzRnJvbVNpYmxpbmdzKGc6IE11bHRpR3JhcGgpIHsgfVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZEF1bnRzVW5jbGVzKGc6IE11bHRpR3JhcGgpIHtcclxuICAgIGcuZm9yRWFjaE5vZGUoKGN1cnJOLCBhKSA9PiB7XHJcbiAgICAgICAgLy8gRmluZCBwYXJlbnRzIG9mIGN1cnJlbnQgbm9kZVxyXG4gICAgICAgIGcuZm9yRWFjaE91dEVkZ2UoY3Vyck4sIChrLCBjdXJyRUF0dHIsIHMsIHBhcmVudE5vZGUpID0+IHtcclxuICAgICAgICAgICAgaWYgKGN1cnJFQXR0ci5kaXIgIT09IFwidXBcIikgcmV0dXJuO1xyXG4gICAgICAgICAgICAvLyBGaW5kIHRoZSBzaWJsaW5ncyBvZiB0aG9zZSBwYXJlbnRzXHJcbiAgICAgICAgICAgIGcuZm9yRWFjaE91dEVkZ2UocGFyZW50Tm9kZSwgKGssIGEsIHMsIHVuY2xlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYS5kaXIgIT09IFwic2FtZVwiKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgICAgICAgYWRkRWRnZUlmTm90KGcsIGN1cnJOLCB1bmNsZSwge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpcjogXCJ1cFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFVzZSB0aGUgc3RhcnRpbmcgbm9kZSdzIHBhcmVudCBmaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBjdXJyRUF0dHIuZmllbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgaW1wbGllZDogQkNfSV9BVU5ULFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZENvdXNpbnMoZzogTXVsdGlHcmFwaCkge1xyXG4gICAgZy5mb3JFYWNoTm9kZSgoY3Vyck4sIGEpID0+IHtcclxuICAgICAgICAvLyBGaW5kIHBhcmVudHMgb2YgY3VycmVudCBub2RlXHJcbiAgICAgICAgZy5mb3JFYWNoT3V0RWRnZShjdXJyTiwgKGssIGN1cnJFQXR0ciwgcywgcGFyZW50Tm9kZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY3VyckVBdHRyLmRpciAhPT0gXCJ1cFwiKSByZXR1cm47XHJcbiAgICAgICAgICAgIC8vIEZpbmQgdGhlIHNpYmxpbmdzIG9mIHRob3NlIHBhcmVudHNcclxuICAgICAgICAgICAgZy5mb3JFYWNoT3V0RWRnZShwYXJlbnROb2RlLCAoaywgcGFyZW50U2libGluZ0F0dHIsIHMsIHVuY2xlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50U2libGluZ0F0dHIuZGlyICE9PSBcInNhbWVcIikgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgICAgIGcuZm9yRWFjaE91dEVkZ2UodW5jbGUsIChrLCBhLCBzLCBjb3VzaW4pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYS5kaXIgIT09IFwiZG93blwiIHx8IGN1cnJOID09PSBjb3VzaW4pIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgYWRkRWRnZUlmTm90KGcsIGN1cnJOLCBjb3VzaW4sIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlyOiBcInNhbWVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQ6IHBhcmVudFNpYmxpbmdBdHRyLmZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbXBsaWVkOiBCQ19JX0NPVVNJTixcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG59XHJcblxyXG4vLyBTaXMgLS0+IE1lIDwtLSBCcm9cclxuLy8gSW1wbGllczogU2lzIDwtLT4gQnJvXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRTdHJ1Y3R1cmFsRXF1aXZhbGVuY2VTaWJsaW5ncyhnOiBNdWx0aUdyYXBoKSB7XHJcbiAgICBnLmZvckVhY2hOb2RlKChjdXJyTiwgYSkgPT4ge1xyXG4gICAgICAgIGcuZm9yRWFjaEluRWRnZShjdXJyTiwgKGssIGFTaXMsIHNpcywgXykgPT4ge1xyXG4gICAgICAgICAgICBpZiAoYVNpcy5kaXIgIT09IFwic2FtZVwiKSByZXR1cm47XHJcbiAgICAgICAgICAgIGcuZm9yRWFjaEluRWRnZShjdXJyTiwgKGssIGFCcm8sIGJybywgXykgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGFCcm8uZGlyICE9PSBcInNhbWVcIiB8fCBzaXMgPT09IGJybykgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgaWYgKGFCcm8uZmllbGQgPT09IGFTaXMuZmllbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICBhZGRFZGdlSWZOb3QoZywgc2lzLCBicm8sIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlyOiBcInNhbWVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQ6IGFCcm8uZmllbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltcGxpZWQ6IEJDX0lfU0lCTElOR18yLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG59XHJcbiIsICJpbXBvcnQgdHlwZSB7IE11bHRpR3JhcGggfSBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgeyBlcnJvciwgaW5mbyB9IGZyb20gXCJsb2dsZXZlbFwiO1xyXG5pbXBvcnQgeyBNYXJrZG93blZpZXcsIFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCBOZXh0UHJldiBmcm9tIFwiLi4vQ29tcG9uZW50cy9OZXh0UHJldi5zdmVsdGVcIjtcclxuaW1wb3J0IFRyYWlsR3JpZCBmcm9tIFwiLi4vQ29tcG9uZW50cy9UcmFpbEdyaWQuc3ZlbHRlXCI7XHJcbmltcG9ydCBUcmFpbFBhdGggZnJvbSBcIi4uL0NvbXBvbmVudHMvVHJhaWxQYXRoLnN2ZWx0ZVwiO1xyXG5pbXBvcnQge1xyXG4gIEJDX0hJREVfVFJBSUwsXHJcbiAgYmxhbmtSZWFsTkltcGxpZWQsXHJcbiAgSlVHR0xfVFJBSUxfREVGQVVMVFMsXHJcbiAgVFJBSUxfTEVOR1RIUyxcclxufSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB0eXBlIHsgQkNTZXR0aW5ncywgRWRnZUF0dHIsIFJlYWxOSW1wbGllZCB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7XHJcbiAgYmZzQWxsUGF0aHMsXHJcbiAgZ2V0UmVmbGV4aXZlQ2xvc3VyZSxcclxuICBnZXRTdWJGb3JGaWVsZHMsXHJcbiAgZ2V0U3ViSW5EaXJzLFxyXG59IGZyb20gXCIuLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcbmltcG9ydCB7IGdldEZpZWxkcywgZ2V0T3BwRGlyLCBnZXRPcHBGaWVsZHMgfSBmcm9tIFwiLi4vVXRpbHMvSGllclV0aWxzXCI7XHJcbmltcG9ydCB7IGNyZWF0ZUp1Z2dsVHJhaWwgfSBmcm9tIFwiLi4vVmlzdWFsaXNhdGlvbnMvSnVnZ2xcIjtcclxuXHJcbmZ1bmN0aW9uIGdldExpbWl0ZWRUcmFpbFN1YihwbHVnaW46IEJDUGx1Z2luKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncywgbWFpbkcsIGNsb3NlZEcgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7IGxpbWl0VHJhaWxDaGVja2JveGVzLCB1c2VySGllcnMgfSA9IHNldHRpbmdzO1xyXG5cclxuICBpZiAoXHJcbiAgICBnZXRGaWVsZHModXNlckhpZXJzKS5ldmVyeSgoZmllbGQpID0+IGxpbWl0VHJhaWxDaGVja2JveGVzLmluY2x1ZGVzKGZpZWxkKSlcclxuICApIHtcclxuICAgIHJldHVybiBnZXRTdWJJbkRpcnMoY2xvc2VkRywgXCJ1cFwiKTtcclxuICB9IGVsc2Uge1xyXG4gICAgY29uc3Qgb3BwRmllbGRzID0gbGltaXRUcmFpbENoZWNrYm94ZXNcclxuICAgICAgLm1hcCgoZmllbGQpID0+IGdldE9wcEZpZWxkcyh1c2VySGllcnMsIGZpZWxkLCBcInVwXCIpPy5bMF0pXHJcbiAgICAgIC5maWx0ZXIoKGZpZWxkKSA9PiBmaWVsZCAhPT0gdW5kZWZpbmVkKTtcclxuICAgIGNvbnN0IHN1YkdyYXBoID0gZ2V0U3ViRm9yRmllbGRzKG1haW5HLCBbXHJcbiAgICAgIC4uLmxpbWl0VHJhaWxDaGVja2JveGVzLFxyXG4gICAgICAuLi5vcHBGaWVsZHMsXHJcbiAgICBdKTtcclxuICAgIGNvbnN0IGNsb3NlZCA9IGdldFJlZmxleGl2ZUNsb3N1cmUoc3ViR3JhcGgsIHVzZXJIaWVycyk7XHJcbiAgICByZXR1cm4gZ2V0U3ViSW5EaXJzKGNsb3NlZCwgXCJ1cFwiKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEJyZWFkY3J1bWJzKFxyXG4gIHNldHRpbmdzOiBCQ1NldHRpbmdzLFxyXG4gIGc6IE11bHRpR3JhcGgsXHJcbiAgY3VyckZpbGU6IFRGaWxlXHJcbik6IHN0cmluZ1tdW10gfCBudWxsIHtcclxuICBjb25zdCB7IGJhc2VuYW1lLCBleHRlbnNpb24gfSA9IGN1cnJGaWxlO1xyXG4gIGlmIChleHRlbnNpb24gIT09IFwibWRcIikgcmV0dXJuIG51bGw7XHJcblxyXG4gIGNvbnN0IGFsbFRyYWlscyA9IGJmc0FsbFBhdGhzKGcsIGJhc2VuYW1lKTtcclxuICBsZXQgZmlsdGVyZWRUcmFpbHMgPSBbLi4uYWxsVHJhaWxzXTtcclxuXHJcbiAgY29uc3QgeyBpbmRleE5vdGVzLCBzaG93QWxsUGF0aHNJZk5vbmVUb0luZGV4Tm90ZSB9ID0gc2V0dGluZ3M7XHJcbiAgLy8gRmlsdGVyIGZvciBpbmRleCBub3Rlc1xyXG4gIGlmIChcclxuICAgIC8vIFdvcmtzIGZvciBgdW5kZWZpbmVkYCBhbmQgYFwiXCJgXHJcbiAgICBpbmRleE5vdGVzWzBdICYmXHJcbiAgICBmaWx0ZXJlZFRyYWlscy5sZW5ndGhcclxuICApIHtcclxuICAgIGZpbHRlcmVkVHJhaWxzID0gZmlsdGVyZWRUcmFpbHMuZmlsdGVyKCh0cmFpbCkgPT5cclxuICAgICAgaW5kZXhOb3Rlcy5pbmNsdWRlcyh0cmFpbFswXSlcclxuICAgICk7XHJcbiAgICBpZiAoZmlsdGVyZWRUcmFpbHMubGVuZ3RoID09PSAwICYmIHNob3dBbGxQYXRoc0lmTm9uZVRvSW5kZXhOb3RlKVxyXG4gICAgICBmaWx0ZXJlZFRyYWlscyA9IFsuLi5hbGxUcmFpbHNdO1xyXG4gIH1cclxuXHJcbiAgY29uc3Qgc29ydGVkVHJhaWxzID0gZmlsdGVyZWRUcmFpbHNcclxuICAgIC5maWx0ZXIoKHRyYWlsKSA9PiB0cmFpbC5sZW5ndGggPiAwKVxyXG4gICAgLnNvcnQoKGEsIGIpID0+IGEubGVuZ3RoIC0gYi5sZW5ndGgpO1xyXG5cclxuICByZXR1cm4gc29ydGVkVHJhaWxzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXROZXh0TlByZXYocGx1Z2luOiBCQ1BsdWdpbiwgY3Vyck5vZGU6IHN0cmluZykge1xyXG4gIGNvbnN0IHsgbWFpbkcgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7IHVzZXJIaWVycyB9ID0gcGx1Z2luLnNldHRpbmdzO1xyXG4gIGlmICghbWFpbkcpIHJldHVybiBudWxsO1xyXG4gIGNvbnN0IG5leHROUHJldjogUmVhbE5JbXBsaWVkID0gYmxhbmtSZWFsTkltcGxpZWQoKTtcclxuXHJcbiAgbWFpbkcuZm9yRWFjaEVkZ2UoY3Vyck5vZGUsIChrLCBhLCBzLCB0KSA9PiB7XHJcbiAgICBjb25zdCB7IGRpciwgZmllbGQsIGltcGxpZWQgfSA9IGEgYXMgRWRnZUF0dHI7XHJcbiAgICBpZiAoZGlyICE9PSBcIm5leHRcIiAmJiBkaXIgIT09IFwicHJldlwiKSByZXR1cm47XHJcbiAgICBpZiAocyA9PT0gY3Vyck5vZGUpIHtcclxuICAgICAgbmV4dE5QcmV2W2Rpcl0ucmVhbHMucHVzaCh7IGZpZWxkLCB0bzogdCwgaW1wbGllZCB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IG9wcEZpZWxkID0gZ2V0T3BwRmllbGRzKHVzZXJIaWVycywgZmllbGQsIGRpcilbMF07XHJcbiAgICAgIG5leHROUHJldltnZXRPcHBEaXIoZGlyKV0uaW1wbGllZHMucHVzaCh7XHJcbiAgICAgICAgZmllbGQ6IG9wcEZpZWxkLFxyXG4gICAgICAgIHRvOiBzLFxyXG4gICAgICAgIGltcGxpZWQsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBuZXh0TlByZXY7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFpbExlbmd0aChjdXJyOiBzdHJpbmcsIG9mZnNldDogbnVtYmVyID0gMSkge1xyXG4gIGNvbnN0IGluZGV4ID1cclxuICAgIChUUkFJTF9MRU5HVEhTLmluZGV4T2YoY3VycikgKyBvZmZzZXQpICUgVFJBSUxfTEVOR1RIUy5sZW5ndGg7XHJcbiAgcmV0dXJuIFRSQUlMX0xFTkdUSFNbaW5kZXggPCAwID8gVFJBSUxfTEVOR1RIUy5sZW5ndGggKyBpbmRleCA6IGluZGV4XTtcclxufVxyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRyYXdUcmFpbChwbHVnaW46IEJDUGx1Z2luKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHsgc2V0dGluZ3MsIGRiLCBtYWluRyB9ID0gcGx1Z2luO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzaG93QkNzLFxyXG4gICAgICBub1BhdGhNZXNzYWdlLFxyXG4gICAgICByZXNwZWN0UmVhZGFibGVMaW5lTGVuZ3RoLFxyXG4gICAgICBzaG93VHJhaWwsXHJcbiAgICAgIHNob3dHcmlkLFxyXG4gICAgICBzaG93SnVnZ2wsXHJcbiAgICAgIHNob3dQcmV2TmV4dCxcclxuICAgICAgc2hvd0JDc0luRWRpdExQTW9kZSxcclxuICAgIH0gPSBzZXR0aW5ncztcclxuXHJcbiAgICBkYi5zdGFydDJHKFwiZHJhd1RyYWlsXCIpO1xyXG5cclxuICAgIGNvbnN0IGFjdGl2ZU1EVmlldyA9IGFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpO1xyXG4gICAgY29uc3QgbW9kZSA9IGFjdGl2ZU1EVmlldz8uZ2V0TW9kZSgpO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgIXNob3dCQ3MgfHxcclxuICAgICAgIWFjdGl2ZU1EVmlldyB8fFxyXG4gICAgICAobW9kZSAhPT0gXCJwcmV2aWV3XCIgJiYgIXNob3dCQ3NJbkVkaXRMUE1vZGUpXHJcbiAgICApIHtcclxuICAgICAgYWN0aXZlTURWaWV3Py5jb250YWluZXJFbC5xdWVyeVNlbGVjdG9yKFwiLkJDLXRyYWlsXCIpPy5yZW1vdmUoKTtcclxuICAgICAgcmV0dXJuIGRiLmVuZDJHKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgeyBmaWxlIH0gPSBhY3RpdmVNRFZpZXc7XHJcbiAgICBjb25zdCB7IGZyb250bWF0dGVyIH0gPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaWxlQ2FjaGUoZmlsZSkgPz8ge307XHJcblxyXG5cclxuICAgIGlmIChmcm9udG1hdHRlcj8uW0JDX0hJREVfVFJBSUxdIHx8IGZyb250bWF0dGVyPy5bXCJrYW5iYW4tcGx1Z2luXCJdKSByZXR1cm4gZGIuZW5kMkcoKTtcclxuXHJcbiAgICBjb25zdCB7IGJhc2VuYW1lIH0gPSBmaWxlO1xyXG4gICAgaWYgKCFtYWluRy5oYXNOb2RlKGJhc2VuYW1lKSkgcmV0dXJuIGRiLmVuZDJHKCk7XHJcblxyXG4gICAgY29uc3QgdmlldyA9XHJcbiAgICAgIG1vZGUgPT09IFwicHJldmlld1wiXHJcbiAgICAgICAgPyBhY3RpdmVNRFZpZXcucHJldmlld01vZGUuY29udGFpbmVyRWwucXVlcnlTZWxlY3RvcihcclxuICAgICAgICAgIFwiZGl2Lm1hcmtkb3duLXByZXZpZXctdmlld1wiXHJcbiAgICAgICAgKVxyXG4gICAgICAgIDogYWN0aXZlTURWaWV3LmNvbnRlbnRFbC5xdWVyeVNlbGVjdG9yKFwiZGl2Lm1hcmtkb3duLXNvdXJjZS12aWV3XCIpO1xyXG5cclxuICAgIGFjdGl2ZU1EVmlldy5jb250YWluZXJFbFxyXG4gICAgICAucXVlcnlTZWxlY3RvckFsbChcIi5CQy10cmFpbFwiKVxyXG4gICAgICA/LmZvckVhY2goKHRyYWlsKSA9PiB0cmFpbC5yZW1vdmUoKSk7XHJcblxyXG4gICAgY29uc3QgY2xvc2VkVXAgPSBnZXRMaW1pdGVkVHJhaWxTdWIocGx1Z2luKTtcclxuICAgIGNvbnN0IHNvcnRlZFRyYWlscyA9IGdldEJyZWFkY3J1bWJzKHNldHRpbmdzLCBjbG9zZWRVcCwgZmlsZSk7XHJcbiAgICBpbmZvKHsgc29ydGVkVHJhaWxzIH0pO1xyXG5cclxuICAgIGNvbnN0IHtcclxuICAgICAgbmV4dDogeyByZWFsczogck5leHQsIGltcGxpZWRzOiBpTmV4dCB9LFxyXG4gICAgICBwcmV2OiB7IHJlYWxzOiByUHJldiwgaW1wbGllZHM6IGlQcmV2IH0sXHJcbiAgICB9ID0gZ2V0TmV4dE5QcmV2KHBsdWdpbiwgYmFzZW5hbWUpO1xyXG5cclxuICAgIC8vIFJlbW92ZSBkdXBsaWNhdGUgaW1wbGllZFxyXG4gICAgY29uc3QgbmV4dCA9IFsuLi5yTmV4dF07XHJcbiAgICBpTmV4dC5mb3JFYWNoKChpKSA9PiB7XHJcbiAgICAgIGlmIChuZXh0LmZpbmRJbmRleCgobikgPT4gbi50byA9PT0gaS50bykgPT09IC0xKVxyXG4gICAgICAgIG5leHQucHVzaChpKVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBwcmV2ID0gWy4uLnJQcmV2XTtcclxuICAgIGlQcmV2LmZvckVhY2goKGkpID0+IHtcclxuICAgICAgaWYgKHByZXYuZmluZEluZGV4KChuKSA9PiBuLnRvID09PSBpLnRvKSA9PT0gLTEpXHJcbiAgICAgICAgcHJldi5wdXNoKGkpXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBub0l0ZW1zID0gIXNvcnRlZFRyYWlscy5sZW5ndGggJiYgIW5leHQubGVuZ3RoICYmICFwcmV2Lmxlbmd0aDtcclxuXHJcbiAgICBpZiAobm9JdGVtcyAmJiBub1BhdGhNZXNzYWdlID09PSBcIlwiKSByZXR1cm4gZGIuZW5kMkcoKTtcclxuXHJcbiAgICBjb25zdCBzZWxlY3RvckZvck1heFdpZHRoID1cclxuICAgICAgbW9kZSA9PT0gXCJwcmV2aWV3XCJcclxuICAgICAgICA/IFwiLm1hcmtkb3duLXByZXZpZXctdmlldy5pcy1yZWFkYWJsZS1saW5lLXdpZHRoIC5tYXJrZG93bi1wcmV2aWV3LXNpemVyXCJcclxuICAgICAgICA6IFwiXCI7XHJcblxyXG4gICAgY29uc3QgZWxGb3JNYXhXaWR0aCA9XHJcbiAgICAgIHNlbGVjdG9yRm9yTWF4V2lkdGggIT09IFwiXCJcclxuICAgICAgICA/IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3JGb3JNYXhXaWR0aClcclxuICAgICAgICA6IG51bGw7XHJcbiAgICBjb25zdCBtYXhfd2lkdGggPSBlbEZvck1heFdpZHRoXHJcbiAgICAgID8gZ2V0Q29tcHV0ZWRTdHlsZShlbEZvck1heFdpZHRoKS5nZXRQcm9wZXJ0eVZhbHVlKFwibWF4LXdpZHRoXCIpXHJcbiAgICAgIDogXCIxMDAlXCI7XHJcblxyXG4gICAgY29uc3QgdHJhaWxEaXYgPSBjcmVhdGVEaXYoe1xyXG4gICAgICBjbHM6IGBCQy10cmFpbCAke3Jlc3BlY3RSZWFkYWJsZUxpbmVMZW5ndGhcclxuICAgICAgICA/IFwiaXMtcmVhZGFibGUtbGluZS13aWR0aCBtYXJrZG93bi1wcmV2aWV3LXNpemVyIG1hcmtkb3duLXByZXZpZXctc2VjdGlvblwiXHJcbiAgICAgICAgOiBcIlwiXHJcbiAgICAgICAgfWAsXHJcbiAgICAgIGF0dHI6IHtcclxuICAgICAgICBzdHlsZTpcclxuICAgICAgICAgIChtb2RlICE9PSBcInByZXZpZXdcIiA/IGBtYXgtd2lkdGg6ICR7bWF4X3dpZHRofTtgIDogXCJcIikgK1xyXG4gICAgICAgICAgXCJtYXJnaW46IDAgYXV0bztcIiArXHJcbiAgICAgICAgICBgJHtyZXNwZWN0UmVhZGFibGVMaW5lTGVuZ3RoXHJcbiAgICAgICAgICAgID8gJ3dpZHRoOiB2YXIoLS1maWxlLWxpbmUtd2lkdGgpOydcclxuICAgICAgICAgICAgOiAnd2lkdGg6IDEwMCUnfWAsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICBwbHVnaW4udmlzaXRlZC5wdXNoKFtmaWxlLnBhdGgsIHRyYWlsRGl2XSk7XHJcblxyXG4gICAgaWYgKG1vZGUgPT09IFwicHJldmlld1wiKSB7XHJcbiAgICAgIHZpZXcucXVlcnlTZWxlY3RvcihcImRpdi5tYXJrZG93bi1wcmV2aWV3LXNpemVyXCIpLmJlZm9yZSh0cmFpbERpdik7XHJcblxyXG4gICAgICAvLyBjb25zdCBiYW5uZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcub2JzaWRpYW4tYmFubmVyLXdyYXBwZXInKVxyXG4gICAgICAvLyBpZiAoYmFubmVyKSB7XHJcbiAgICAgIC8vICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcclxuICAgICAgLy8gICAgIGNvbnN0IGJhbm5lck1hcmdpbiA9IGdldENvbXB1dGVkU3R5bGUoYmFubmVyKS5tYXJnaW5Ub3BcclxuICAgICAgLy8gICAgIGNvbnNvbGUubG9nKGJhbm5lck1hcmdpbilcclxuICAgICAgLy8gICAgIHRyYWlsRGl2LnN0eWxlLm1hcmdpblRvcCA9IGJhbm5lck1hcmdpbjtcclxuICAgICAgLy8gICAgIGJhbm5lci5zdHlsZS5tYXJnaW5Ub3AgPSAnMHB4J1xyXG4gICAgICAvLyAgIH0pXHJcbiAgICAgIC8vIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGNtR3V0dGVyID0gdmlldy5xdWVyeVNlbGVjdG9yKFwiZGl2LmNtLWd1dHRlcnNcIik7XHJcbiAgICAgIGlmIChjbUd1dHRlcikge1xyXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBndXR0ZXJIZWlnaHQgPSB0cmFpbERpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XHJcbiAgICAgICAgICAvLyBzZXQgcGFkZGluZyB0b3Agb2YgZ3V0dGVyIHRvIG1hdGNoIGhlaWdodCBvZiB0cmFpbERpdlxyXG4gICAgICAgICAgY21HdXR0ZXIuc3R5bGUucGFkZGluZ1RvcCA9IGAke2d1dHRlckhlaWdodCArIDR9cHhgO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBjb25zdCBiYW5uZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcub2JzaWRpYW4tYmFubmVyLXNwYWNlcicpXHJcbiAgICAgIC8vIGlmIChiYW5uZXIpIHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZyh7IGJhbm5lciB9KVxyXG4gICAgICAvLyAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XHJcbiAgICAgIC8vICAgICBjb25zdCBiYW5uZXJNYXJnaW4gPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGJhbm5lcikuaGVpZ2h0KVxyXG4gICAgICAvLyAgICAgY29uc29sZS5sb2coYmFubmVyTWFyZ2luKVxyXG4gICAgICAvLyAgICAgdHJhaWxEaXYuc3R5bGUubWFyZ2luVG9wID0gYCR7YmFubmVyTWFyZ2luICsgMTB9cHhgO1xyXG4gICAgICAvLyAgICAgYmFubmVyLnN0eWxlLmhlaWdodCA9ICcwcHgnXHJcbiAgICAgIC8vICAgfSlcclxuICAgICAgLy8gfVxyXG5cclxuICAgICAgdmlldy5xdWVyeVNlbGVjdG9yKFwiZGl2LmNtLWNvbnRlbnRDb250YWluZXJcIik/LmJlZm9yZSh0cmFpbERpdilcclxuXHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRyYWlsRGl2LmVtcHR5KCk7XHJcbiAgICBpZiAoc2V0dGluZ3MuaW5kZXhOb3Rlcy5pbmNsdWRlcyhiYXNlbmFtZSkpIHtcclxuICAgICAgdHJhaWxEaXYuaW5uZXJUZXh0ID0gXCJJbmRleCBOb3RlXCI7XHJcbiAgICAgIHJldHVybiBkYi5lbmQyRygpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChub0l0ZW1zKSB7XHJcbiAgICAgIHRyYWlsRGl2LmlubmVyVGV4dCA9IG5vUGF0aE1lc3NhZ2U7XHJcbiAgICAgIHJldHVybiBkYi5lbmQyRygpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHRhcmdldFByb3BzID0ge1xyXG4gICAgICB0YXJnZXQ6IHRyYWlsRGl2LFxyXG4gICAgICBwcm9wczogeyBzb3J0ZWRUcmFpbHMsIHBsdWdpbiB9LFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAoc2hvd1RyYWlsICYmIHNvcnRlZFRyYWlscy5sZW5ndGgpIG5ldyBUcmFpbFBhdGgodGFyZ2V0UHJvcHMpO1xyXG4gICAgaWYgKHNob3dHcmlkICYmIHNvcnRlZFRyYWlscy5sZW5ndGgpIG5ldyBUcmFpbEdyaWQodGFyZ2V0UHJvcHMpO1xyXG4gICAgaWYgKHNob3dQcmV2TmV4dCAmJiAobmV4dC5sZW5ndGggfHwgcHJldi5sZW5ndGgpKSB7XHJcbiAgICAgIG5ldyBOZXh0UHJldih7XHJcbiAgICAgICAgdGFyZ2V0OiB0cmFpbERpdixcclxuICAgICAgICBwcm9wczogeyBwbHVnaW4sIG5leHQsIHByZXYgfSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoc2hvd0p1Z2dsICYmIHNvcnRlZFRyYWlscy5sZW5ndGgpIHtcclxuICAgICAgY3JlYXRlSnVnZ2xUcmFpbChcclxuICAgICAgICBwbHVnaW4sXHJcbiAgICAgICAgdHJhaWxEaXYsXHJcbiAgICAgICAgc29ydGVkVHJhaWxzLFxyXG4gICAgICAgIGJhc2VuYW1lLFxyXG4gICAgICAgIEpVR0dMX1RSQUlMX0RFRkFVTFRTXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBkYi5lbmQyRygpO1xyXG4gIH0gY2F0Y2ggKGVycikge1xyXG4gICAgZXJyb3IoZXJyKTtcclxuICAgIHBsdWdpbi5kYi5lbmQyRygpO1xyXG4gIH1cclxufVxyXG4iLCBudWxsLCAiPHNjcmlwdCBsYW5nPVwidHNcIj5cclxuICBpbXBvcnQgeyBvcGVuT3JTd2l0Y2gsIGhvdmVyUHJldmlldyB9IGZyb20gXCJvYnNpZGlhbi1jb21tdW5pdHktbGliXCI7XHJcbiAgaW1wb3J0IHR5cGUgeyBTcXVhcmVJdGVtIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuICBpbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG4gIGltcG9ydCB7IGxpbmtDbGFzcyB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG4gIGV4cG9ydCBsZXQgcGx1Z2luOiBCQ1BsdWdpbjtcclxuICBleHBvcnQgbGV0IG5leHQ6IFNxdWFyZUl0ZW1bXTtcclxuICBleHBvcnQgbGV0IHByZXY6IFNxdWFyZUl0ZW1bXTtcclxuXHJcbiAgY29uc3QgYWN0aXZlTGVhZlZpZXcgPSBhcHAud29ya3NwYWNlLmFjdGl2ZUxlYWYudmlldztcclxuPC9zY3JpcHQ+XHJcblxyXG48ZGl2IGNsYXNzPVwiQkMtTmV4dFByZXYtQ29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cIkJDLXByZXZzXCI+XHJcbiAgICA8c3Bhbj5cclxuICAgICAgeyNlYWNoIHByZXYgYXMgeyBmaWVsZCwgcmVhbCwgdG8gfX1cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cIntsaW5rQ2xhc3ModG8sIHJlYWwpfSBCQy1wcmV2XCJcclxuICAgICAgICAgIG9uOmNsaWNrPXthc3luYyAoZSkgPT4gYXdhaXQgb3Blbk9yU3dpdGNoKHRvLCBlKX1cclxuICAgICAgICAgIG9uOm1vdXNlb3Zlcj17KGUpID0+IGhvdmVyUHJldmlldyhlLCBhY3RpdmVMZWFmVmlldywgdG8pfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzdHJvbmc+e2ZpZWxkfTwvc3Ryb25nPlxyXG4gICAgICAgICAge3RvfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB7L2VhY2h9XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIkJDLW5leHRzXCI+XHJcbiAgICA8c3Bhbj5cclxuICAgICAgeyNlYWNoIG5leHQgYXMgeyBmaWVsZCwgcmVhbCwgdG8gfX1cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cIntsaW5rQ2xhc3ModG8sIHJlYWwpfSBCQy1uZXh0XCJcclxuICAgICAgICAgIG9uOmNsaWNrPXthc3luYyAoZSkgPT4gYXdhaXQgb3Blbk9yU3dpdGNoKHRvLCBlKX1cclxuICAgICAgICAgIG9uOm1vdXNlb3Zlcj17KGUpID0+IGhvdmVyUHJldmlldyhlLCBhY3RpdmVMZWFmVmlldywgdG8pfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt0b30gPHN0cm9uZz57ZmllbGR9PC9zdHJvbmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIHsvZWFjaH1cclxuICAgIDwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48c3R5bGU+XHJcbiAgLkJDLW5leHRzIGRpdiB7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICB9XHJcblxyXG4gIC5CQy1uZXh0cyB7XHJcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWJhY2tncm91bmQtbW9kaWZpZXItYm9yZGVyKTtcclxuICB9XHJcbiAgLkJDLXByZXZzIHtcclxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWJhY2tncm91bmQtbW9kaWZpZXItYm9yZGVyKTtcclxuICB9XHJcblxyXG4gIC5CQy1OZXh0UHJldi1Db250YWluZXIge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcclxuICB9XHJcbjwvc3R5bGU+XHJcbiIsIG51bGwsICI8c2NyaXB0IGxhbmc9XCJ0c1wiPlxyXG4gIGltcG9ydCB7XHJcbiAgICBob3ZlclByZXZpZXcsXHJcbiAgICBvcGVuT3JTd2l0Y2gsXHJcbiAgfSBmcm9tIFwib2JzaWRpYW4tY29tbXVuaXR5LWxpYi9kaXN0L3V0aWxzXCI7XHJcbiAgaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuICBpbXBvcnQge1xyXG4gICAgZHJvcERlbmRyb24sXHJcbiAgICBwYWRBcnJheSxcclxuICAgIHJ1bnMsXHJcbiAgICB0cmFuc3Bvc2UsXHJcbiAgfSBmcm9tIFwiLi4vVXRpbHMvZ2VuZXJhbFV0aWxzXCI7XHJcbiAgaW1wb3J0IHsgZ2V0QWx0LCBsaW5rQ2xhc3MgfSBmcm9tIFwiLi4vVXRpbHMvT2JzaWRpYW5VdGlsc1wiO1xyXG5cclxuICBleHBvcnQgbGV0IHNvcnRlZFRyYWlsczogc3RyaW5nW11bXTtcclxuICBleHBvcnQgbGV0IHBsdWdpbjogQkNQbHVnaW47XHJcblxyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7IGdyaWREZWZhdWx0RGVwdGggfSA9IHNldHRpbmdzO1xyXG5cclxuICBjb25zdCBhY3RpdmVMZWFmVmlldyA9IGFwcC53b3Jrc3BhY2UuYWN0aXZlTGVhZi52aWV3O1xyXG4gIGNvbnN0IG1heExlbmd0aCA9IHNvcnRlZFRyYWlscy5sYXN0KCkubGVuZ3RoO1xyXG5cclxuICAvLyBVc2UgdGhlIHVzZXIgc2V0dGluZyB0byBsaW1pdCB0aGUgaW5pdGlhbCBkZXB0aFxyXG4gIGxldCBkZXB0aCA9IE1hdGgubWluKG1heExlbmd0aCwgZ3JpZERlZmF1bHREZXB0aCk7XHJcblxyXG4gIGxldCBzbGljZWRUcmFpbHMgPSBzb3J0ZWRUcmFpbHM7XHJcbiAgJDoge1xyXG4gICAgc2xpY2VkVHJhaWxzID0gW107XHJcbiAgICBzb3J0ZWRUcmFpbHMuZm9yRWFjaCgodHJhaWwpID0+IHtcclxuICAgICAgY29uc3Qgc2xpY2UgPSB0cmFpbC5zbGljZShtYXhMZW5ndGggLSBkZXB0aCk7XHJcbiAgICAgIGlmIChzbGljZS5sZW5ndGgpIHNsaWNlZFRyYWlscy5wdXNoKHNsaWNlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgJDogcGFkZGVkVHJhaWxzID0gc2xpY2VkVHJhaWxzLm1hcCgodHJhaWwpID0+IHBhZEFycmF5KHRyYWlsLCBkZXB0aCkpO1xyXG5cclxuICAkOiB0cmFuc3Bvc2VkVHJhaWxzID0gdHJhbnNwb3NlKHBhZGRlZFRyYWlscyk7XHJcbiAgJDogYWxsUnVucyA9IHRyYW5zcG9zZWRUcmFpbHMubWFwKHJ1bnMpO1xyXG48L3NjcmlwdD5cclxuXHJcbjxkaXYgY2xhc3M9XCJCQy1ncmlkLXdyYXBwZXJcIj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cIkJDLXRyYWlsLWdyaWRcIlxyXG4gICAgc3R5bGU9XCJcclxuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB7JzFmciAnLnJlcGVhdCh0cmFuc3Bvc2VkVHJhaWxzLmxlbmd0aCl9O1xyXG4gICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHsnMWZyICcucmVwZWF0KHNsaWNlZFRyYWlscy5sZW5ndGgpfTtcIlxyXG4gID5cclxuICAgIHsjZWFjaCB0cmFuc3Bvc2VkVHJhaWxzIGFzIGNvbCwgaX1cclxuICAgICAgeyNlYWNoIGFsbFJ1bnNbaV0gYXMgeyB2YWx1ZSwgZmlyc3QsIGxhc3QgfX1cclxuICAgICAgICA8IS0tIHN2ZWx0ZS1pZ25vcmUgYTExeS1tb3VzZS1ldmVudHMtaGF2ZS1rZXktZXZlbnRzIC0tPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiQkMtdHJhaWwtZ3JpZC1pdGVtIHt2YWx1ZSA9PT0gJycgPyAnQkMtZmlsbGVyJyA6ICcnfVwiXHJcbiAgICAgICAgICBzdHlsZT1cIlxyXG4gICAgICAgICAgICAgIGdyaWQtYXJlYToge2ZpcnN0ICsgMX0gLyB7aSArIDF9IC9cclxuICAgICAgICAgICAgICAgICAge2xhc3QgKyAyfSAvIHtpICsgMn07XCJcclxuICAgICAgICAgIG9uOmNsaWNrPXthc3luYyAoZSkgPT4gYXdhaXQgb3Blbk9yU3dpdGNoKHZhbHVlLCBlKX1cclxuICAgICAgICAgIG9uOm1vdXNlb3Zlcj17KGUpID0+IGhvdmVyUHJldmlldyhlLCBhY3RpdmVMZWFmVmlldywgdmFsdWUpfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9e2xpbmtDbGFzcyh2YWx1ZSl9PlxyXG4gICAgICAgICAgICB7Z2V0QWx0KHZhbHVlLCBwbHVnaW4pID8/IGRyb3BEZW5kcm9uKHZhbHVlLCBzZXR0aW5ncyl9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgey9lYWNofVxyXG4gICAgey9lYWNofVxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiQkMtZ3JpZC1vcHRpb25zXCI+XHJcbiAgICA8c3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJCQy1ncmlkLW9wdGlvbnMtaWNvblwiPlx1MjY5OVx1RkUwRjwvc3Bhbj5cclxuXHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiQkMtZ3JpZC1vcHRpb25zLW9wdGlvbnNcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzcz1cIkJDLWRlcHRoLWJ1dHRvblwiXHJcbiAgICAgICAgICBkaXNhYmxlZD17ZGVwdGggPT09IDF9XHJcbiAgICAgICAgICBvbjpjbGljaz17KCkgPT4gKGRlcHRoIC09IDEpfT4tPC9idXR0b25cclxuICAgICAgICA+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cmVlLWl0ZW0tZmxhaXJcIj57ZGVwdGh9PC9zcGFuPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIGNsYXNzPVwiQkMtZGVwdGgtYnV0dG9uXCJcclxuICAgICAgICAgIGRpc2FibGVkPXtkZXB0aCA9PT0gbWF4TGVuZ3RofVxyXG4gICAgICAgICAgb246Y2xpY2s9eygpID0+IChkZXB0aCArPSAxKX0+KzwvYnV0dG9uXHJcbiAgICAgICAgPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPHN0eWxlPlxyXG4gIGRpdi5CQy1ncmlkLXdyYXBwZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuXHJcbiAgZGl2LkJDLXRyYWlsLWdyaWQge1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYmFja2dyb3VuZC1tb2RpZmllci1ib3JkZXIpO1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgfVxyXG5cclxuICAuQkMtZ3JpZC1vcHRpb25zIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMHB4O1xyXG4gICAgcmlnaHQ6IDBweDtcclxuICAgIGhlaWdodDogMzVweDtcclxuICAgIHdpZHRoOiAzMnB4O1xyXG5cclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJhY2tncm91bmQtbW9kaWZpZXItYm9yZGVyKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcblxyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgIHRyYW5zaXRpb246IHdpZHRoIDAuM3M7XHJcbiAgICBvdmVyZmxvdy13cmFwOiBub3JtYWw7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIH1cclxuICBkaXYuQkMtZ3JpZC1vcHRpb25zOmhvdmVyIHtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICAgIHdpZHRoOiBmaXQtY29udGVudDtcclxuICB9XHJcbiAgZGl2LkJDLWdyaWQtb3B0aW9uczpob3ZlciAuQkMtZ3JpZC1vcHRpb25zLWljb24ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIC5CQy1ncmlkLW9wdGlvbnMtb3B0aW9ucyB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICBkaXYuQkMtZ3JpZC1vcHRpb25zOmhvdmVyIC5CQy1ncmlkLW9wdGlvbnMtb3B0aW9ucyB7XHJcbiAgICBkaXNwbGF5OiB1bnNldDtcclxuICB9XHJcblxyXG4gIC5CQy1kZXB0aC1idXR0b24ge1xyXG4gICAgcGFkZGluZzogM3B4IDVweDtcclxuICB9XHJcblxyXG4gIGRpdi5CQy10cmFpbC1ncmlkLWl0ZW0ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1iYWNrZ3JvdW5kLW1vZGlmaWVyLWJvcmRlcik7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiAycHg7XHJcbiAgICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgfVxyXG5cclxuICBkaXYuQkMtdHJhaWwtZ3JpZC1pdGVtLkJDLWZpbGxlciB7XHJcbiAgICBvcGFjaXR5OiAwLjc7XHJcbiAgfVxyXG48L3N0eWxlPlxyXG4iLCBudWxsLCAiPHNjcmlwdCBsYW5nPVwidHNcIj5cclxuICBpbXBvcnQge1xyXG4gICAgaG92ZXJQcmV2aWV3LFxyXG4gICAgb3Blbk9yU3dpdGNoLFxyXG4gIH0gZnJvbSBcIm9ic2lkaWFuLWNvbW11bml0eS1saWIvZGlzdC91dGlsc1wiO1xyXG4gIGltcG9ydCB7IGdldFRyYWlsTGVuZ3RoIH0gZnJvbSBcIi4uL1ZpZXdzL1RyYWlsVmlld1wiO1xyXG4gIGltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbiAgaW1wb3J0IHsgZHJvcERlbmRyb24gfSBmcm9tIFwiLi4vVXRpbHMvZ2VuZXJhbFV0aWxzXCI7XHJcbiAgaW1wb3J0IHsgZ2V0QWx0IH0gZnJvbSBcIi4uL1V0aWxzL09ic2lkaWFuVXRpbHNcIjtcclxuXHJcbiAgZXhwb3J0IGxldCBzb3J0ZWRUcmFpbHM6IHN0cmluZ1tdW107XHJcbiAgZXhwb3J0IGxldCBwbHVnaW46IEJDUGx1Z2luO1xyXG5cclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgeyB2aWV3IH0gPSBhcHAud29ya3NwYWNlLmFjdGl2ZUxlYWY7XHJcbiAgbGV0IHsgc2hvd0FsbCwgbm9QYXRoTWVzc2FnZSwgdHJhaWxTZXBlcmF0b3IgfSA9IHNldHRpbmdzO1xyXG5cclxuICBsZXQgdHJhaWxfbGVuZ3RoID0gc2hvd0FsbDtcclxuXHJcbiAgJDogdHJhaWxzVG9TaG93ID1cclxuICAgIHRyYWlsX2xlbmd0aCA9PSBcIkFsbFwiXHJcbiAgICAgID8gc29ydGVkVHJhaWxzXHJcbiAgICAgIDogdHJhaWxfbGVuZ3RoID09IFwiU2hvcnRlc3RcIlxyXG4gICAgICA/IFtzb3J0ZWRUcmFpbHNbMF1dXHJcbiAgICAgIDogW3NvcnRlZFRyYWlscy5sYXN0KCldO1xyXG48L3NjcmlwdD5cclxuXHJcbjxzcGFuIGNsYXNzPVwiQkMtdHJhaWwtcGF0aC1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwidHJhaWxzLWRpdlwiPlxyXG4gICAgeyNlYWNoIHRyYWlsc1RvU2hvdyBhcyB0cmFpbH1cclxuICAgICAgPGRpdj5cclxuICAgICAgICB7I2lmICF0cmFpbC5sZW5ndGh9XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIkJDLWVtcHR5LXRyYWlsXCI+e25vUGF0aE1lc3NhZ2V9PC9zcGFuPlxyXG4gICAgICAgIHs6ZWxzZX1cclxuICAgICAgICAgIHsjZWFjaCB0cmFpbCBhcyBjcnVtYiwgaX1cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICBjbGFzcz1cImludGVybmFsLWxpbmsgQkMtTGlua1wiXHJcbiAgICAgICAgICAgICAgb246Y2xpY2s9e2FzeW5jIChlKSA9PiBhd2FpdCBvcGVuT3JTd2l0Y2goY3J1bWIsIGUpfVxyXG4gICAgICAgICAgICAgIG9uOm1vdXNlb3Zlcj17KGUpID0+IGhvdmVyUHJldmlldyhlLCB2aWV3LCBjcnVtYil9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7Z2V0QWx0KGNydW1iLCBwbHVnaW4pID8/IGRyb3BEZW5kcm9uKGNydW1iLCBzZXR0aW5ncyl9XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgeyNpZiBpIDwgdHJhaWwubGVuZ3RoIC0gMX1cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIkJDLXRyYWlsLXNlcFwiPntcIiBcIiArIHRyYWlsU2VwZXJhdG9yICsgXCIgXCJ9PC9zcGFuPlxyXG4gICAgICAgICAgICB7L2lmfVxyXG4gICAgICAgICAgey9lYWNofVxyXG4gICAgICAgIHsvaWZ9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgey9lYWNofVxyXG4gIDwvZGl2PlxyXG5cclxuICB7I2lmIHNvcnRlZFRyYWlscy5sZW5ndGggPiAxfVxyXG4gICAgPGRpdj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwiYnV0dG9uLWRpdlwiXHJcbiAgICAgICAgb246Y2xpY2s9eygpID0+ICh0cmFpbF9sZW5ndGggPSBnZXRUcmFpbExlbmd0aCh0cmFpbF9sZW5ndGgpKX1cclxuICAgICAgICBvbjpjb250ZXh0bWVudT17KGUpID0+IHtcclxuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgIHRyYWlsX2xlbmd0aCA9IGdldFRyYWlsTGVuZ3RoKHRyYWlsX2xlbmd0aCwgLTEpO1xyXG4gICAgICAgIH19XHJcbiAgICAgID5cclxuICAgICAgICB7dHJhaWxfbGVuZ3RofVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIHsvaWZ9XHJcbjwvc3Bhbj5cclxuXHJcbjxzdHlsZT5cclxuICBzcGFuLkJDLXRyYWlsLXBhdGgtY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgfVxyXG48L3N0eWxlPlxyXG4iLCAiaW1wb3J0IHR5cGUgeyBFZGdlRGVmaW5pdGlvbiwgTm9kZVNpbmd1bGFyIH0gZnJvbSBcImN5dG9zY2FwZVwiO1xyXG5pbXBvcnQgdHlwZSB7IE11bHRpR3JhcGggfSBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQge1xyXG4gIERhdGFTdG9yZUV2ZW50cyxcclxuICBnZXRQbHVnaW4sXHJcbiAgSUNvcmVEYXRhU3RvcmUsXHJcbiAgSUp1Z2dsLFxyXG4gIElKdWdnbFNldHRpbmdzLFxyXG4gIElKdWdnbFN0b3JlcyxcclxuICBub2RlRGFuZ2xpbmcsXHJcbiAgbm9kZUZyb21GaWxlLFxyXG4gIFZpeklkLFxyXG59IGZyb20gXCJqdWdnbC1hcGlcIjtcclxuaW1wb3J0IHsgaW5mbywgd2FybiB9IGZyb20gXCJsb2dsZXZlbFwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50cywgTWV0YWRhdGFDYWNoZSwgVEZpbGUgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHsgY3JlYXRlSW5kZXggfSBmcm9tIFwiLi4vQ29tbWFuZHMvQ3JlYXRlSW5kZXhcIjtcclxuaW1wb3J0IEp1Z2dsQnV0dG9uIGZyb20gXCIuLi9Db21wb25lbnRzL0p1Z2dsQnV0dG9uLnN2ZWx0ZVwiO1xyXG5pbXBvcnQgSnVnZ2xEZXB0aCBmcm9tIFwiLi4vQ29tcG9uZW50cy9KdWdnbERlcHRoLnN2ZWx0ZVwiO1xyXG5pbXBvcnQgeyBKVUdHTF9DQl9ERUZBVUxUUyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHtcclxuICBkZnNBbGxQYXRocyxcclxuICBnZXRSZWZsZXhpdmVDbG9zdXJlLFxyXG4gIGdldFN1YkluRGlycyxcclxufSBmcm9tIFwiLi4vVXRpbHMvZ3JhcGhVdGlsc1wiO1xyXG5jb25zdCBTVE9SRV9JRCA9IFwiY29yZVwiO1xyXG5cclxuY2xhc3MgQkNTdG9yZUV2ZW50cyBleHRlbmRzIEV2ZW50cyBpbXBsZW1lbnRzIERhdGFTdG9yZUV2ZW50cyB7IH1cclxuXHJcbmV4cG9ydCBjbGFzcyBCQ1N0b3JlIGV4dGVuZHMgQ29tcG9uZW50IGltcGxlbWVudHMgSUNvcmVEYXRhU3RvcmUge1xyXG4gIGdyYXBoOiBNdWx0aUdyYXBoO1xyXG4gIGNhY2hlOiBNZXRhZGF0YUNhY2hlO1xyXG4gIGRlcHRoTWFwOiB7IFt2YWx1ZTogc3RyaW5nXTogbnVtYmVyIH07XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBncmFwaDogTXVsdGlHcmFwaCxcclxuICAgIG1ldGFkYXRhOiBNZXRhZGF0YUNhY2hlLFxyXG4gICAgZGVwdGhNYXA/OiB7IFt2YWx1ZTogc3RyaW5nXTogbnVtYmVyIH1cclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmdyYXBoID0gZ3JhcGg7XHJcbiAgICB0aGlzLmNhY2hlID0gbWV0YWRhdGE7XHJcbiAgICB0aGlzLmRlcHRoTWFwID0gZGVwdGhNYXA7XHJcbiAgfVxyXG5cclxuICBhc1N0cmluZyhub2RlOiBOb2RlU2luZ3VsYXIpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgaWQgPSBWaXpJZC5mcm9tTm9kZShub2RlKTtcclxuICAgIHJldHVybiBpZC5pZC5zbGljZSgwLCAtMyk7XHJcbiAgfVxyXG5cclxuICBnZXRGaWxlKG5vZGVJZDogVml6SWQpOiBURmlsZSB7XHJcbiAgICByZXR1cm4gdGhpcy5jYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChub2RlSWQuaWQsIFwiXCIpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgY29ubmVjdE5vZGVzKFxyXG4gICAgYWxsTm9kZXM6IGN5dG9zY2FwZS5Ob2RlQ29sbGVjdGlvbixcclxuICAgIG5ld05vZGVzOiBjeXRvc2NhcGUuTm9kZUNvbGxlY3Rpb24sXHJcbiAgICBncmFwaDogSUp1Z2dsXHJcbiAgKTogUHJvbWlzZTxjeXRvc2NhcGUuRWRnZURlZmluaXRpb25bXT4ge1xyXG4gICAgY29uc3QgZWRnZXM6IEVkZ2VEZWZpbml0aW9uW10gPSBbXTtcclxuICAgIGNvbnN0IG5vZGVzTGlzdFMgPSBuZXcgU2V0KFxyXG4gICAgICBhbGxOb2Rlcy5tYXAoKG5vZGUpID0+IHRoaXMuYXNTdHJpbmcobm9kZSkpLmZpbHRlcigocykgPT4gcylcclxuICAgICk7XHJcbiAgICBuZXdOb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XHJcbiAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmFzU3RyaW5nKG5vZGUpO1xyXG4gICAgICBpZiAoIXRoaXMuZ3JhcGguaGFzTm9kZShuYW1lKSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmdyYXBoLmZvckVhY2hPdXRFZGdlKFxyXG4gICAgICAgIHRoaXMuYXNTdHJpbmcobm9kZSksXHJcbiAgICAgICAgKGtleSwgYXR0ciwgc291cmNlLCB0YXJnZXQpID0+IHtcclxuICAgICAgICAgIGlmIChub2Rlc0xpc3RTLmhhcyh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIGVkZ2VzLnB1c2goe1xyXG4gICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGlkOiBgQkM6JHtzb3VyY2V9LT4ke3RhcmdldH1gLFxyXG4gICAgICAgICAgICAgICAgc291cmNlOiBWaXpJZC50b0lkKHNvdXJjZSwgU1RPUkVfSUQpICsgXCIubWRcIixcclxuICAgICAgICAgICAgICAgIHRhcmdldDogVml6SWQudG9JZCh0YXJnZXQsIFNUT1JFX0lEKSArIFwiLm1kXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBhdHRyLmZpZWxkLFxyXG4gICAgICAgICAgICAgICAgZGlyOiBhdHRyLmRpcixcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGNsYXNzZXM6IGB0eXBlLSR7YXR0ci5maWVsZH0gZGlyLSR7YXR0ci5kaXJ9IGJyZWFkY3J1bWJzJGAsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShlZGdlcyk7XHJcbiAgfVxyXG5cclxuICBnZXRFdmVudHModmlldzogSUp1Z2dsKTogRGF0YVN0b3JlRXZlbnRzIHtcclxuICAgIHJldHVybiBuZXcgQkNTdG9yZUV2ZW50cygpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0TmVpZ2hib3VyaG9vZChcclxuICAgIG5vZGVJZHM6IFZpeklkW10sXHJcbiAgICB2aWV3OiBJSnVnZ2xcclxuICApOiBQcm9taXNlPGN5dG9zY2FwZS5Ob2RlRGVmaW5pdGlvbltdPiB7XHJcbiAgICBjb25zdCBuZXdfbm9kZXMgPSBbXTtcclxuICAgIGZvciAoY29uc3Qgbm9kZUlkIG9mIG5vZGVJZHMpIHtcclxuICAgICAgY29uc3QgbmFtZSA9IG5vZGVJZC5pZC5zbGljZSgwLCAtMyk7XHJcbiAgICAgIGlmICghdGhpcy5ncmFwaC5oYXNOb2RlKG5hbWUpKSB7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuICAgICAgZm9yIChjb25zdCBuZXdfbm9kZSBvZiB0aGlzLmdyYXBoLm5laWdoYm9ycyhuYW1lKSkge1xyXG4gICAgICAgIG5ld19ub2Rlcy5wdXNoKFxyXG4gICAgICAgICAgYXdhaXQgdGhpcy5nZXQobmV3IFZpeklkKG5ld19ub2RlICsgXCIubWRcIiwgU1RPUkVfSUQpLCB2aWV3KVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBuZXdfbm9kZXM7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoTm9kZShpZDogVml6SWQsIHZpZXc6IElKdWdnbCk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHN0b3JlSWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTVE9SRV9JRDtcclxuICB9XHJcblxyXG4gIGdldChub2RlSWQ6IFZpeklkLCB2aWV3OiBJSnVnZ2wpOiBQcm9taXNlPGN5dG9zY2FwZS5Ob2RlRGVmaW5pdGlvbj4ge1xyXG4gICAgY29uc3QgZmlsZSA9IHRoaXMuZ2V0RmlsZShub2RlSWQpO1xyXG4gICAgbGV0IGRlcHRoID0gMDtcclxuICAgIGlmICh0aGlzLmRlcHRoTWFwICYmIG5vZGVJZC5pZCBpbiB0aGlzLmRlcHRoTWFwKSB7XHJcbiAgICAgIGRlcHRoID0gdGhpcy5kZXB0aE1hcFtub2RlSWQuaWRdO1xyXG4gICAgfVxyXG4gICAgaWYgKGZpbGUgPT09IG51bGwpIHtcclxuICAgICAgY29uc3QgZGFuZ2xpbmcgPSBub2RlRGFuZ2xpbmcobm9kZUlkLmlkKTtcclxuICAgICAgZGFuZ2xpbmcuZGF0YS5kZXB0aCA9IGRlcHRoO1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGRhbmdsaW5nKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGNhY2hlID0gdGhpcy5jYWNoZS5nZXRGaWxlQ2FjaGUoZmlsZSk7XHJcbiAgICBpZiAoY2FjaGUgPT09IG51bGwpIHtcclxuICAgICAgaW5mbyhcInJldHVybmluZyBlbXB0eSBjYWNoZVwiLCBub2RlSWQpO1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5vZGVEYW5nbGluZyhub2RlSWQuaWQpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbm9kZUZyb21GaWxlKGZpbGUsIHZpZXcucGx1Z2luLCB2aWV3LnNldHRpbmdzLCBub2RlSWQudG9JZCgpKS50aGVuKFxyXG4gICAgICAobm9kZSkgPT4ge1xyXG4gICAgICAgIG5vZGUuZGF0YS5kZXB0aCA9IGRlcHRoO1xyXG4gICAgICAgIHJldHVybiBub2RlO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUp1Z2dsKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgdGFyZ2V0OiBIVE1MRWxlbWVudCxcclxuICBpbml0aWFsTm9kZXM6IHN0cmluZ1tdLFxyXG4gIGFyZ3M6IElKdWdnbFNldHRpbmdzLFxyXG4gIGRlcHRoTWFwOiB7IFt2YWx1ZTogc3RyaW5nXTogbnVtYmVyIH0gPSBudWxsXHJcbik6IElKdWdnbCB7XHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGp1Z2dsUGx1Z2luID0gZ2V0UGx1Z2luKGFwcCk7XHJcbiAgICBpZiAoIWp1Z2dsUGx1Z2luKSB7XHJcbiAgICAgIC8vIFRPRE86IEVycm9yIGhhbmRsaW5nXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGZvciAobGV0IGtleSBpbiBKVUdHTF9DQl9ERUZBVUxUUykge1xyXG4gICAgICBpZiAoa2V5IGluIGFyZ3MgJiYgYXJnc1trZXldID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAgYXJnc1trZXldID0gSlVHR0xfQ0JfREVGQVVMVFNba2V5XTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBiY1N0b3JlID0gbmV3IEJDU3RvcmUoXHJcbiAgICAgIHBsdWdpbi5tYWluRyxcclxuICAgICAgYXBwLm1ldGFkYXRhQ2FjaGUsXHJcbiAgICAgIGRlcHRoTWFwXHJcbiAgICApO1xyXG4gICAgY29uc3Qgc3RvcmVzOiBJSnVnZ2xTdG9yZXMgPSB7XHJcbiAgICAgIGNvcmVTdG9yZTogYmNTdG9yZSxcclxuICAgICAgZGF0YVN0b3JlczogW2JjU3RvcmVdLFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBqdWdnbCA9IGp1Z2dsUGx1Z2luLmNyZWF0ZUp1Z2dsKHRhcmdldCwgYXJncywgc3RvcmVzLCBpbml0aWFsTm9kZXMpO1xyXG4gICAgcGx1Z2luLmFkZENoaWxkKGp1Z2dsKTtcclxuICAgIGluZm8oeyBqdWdnbCB9KTtcclxuICAgIHJldHVybiBqdWdnbDtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgd2Fybih7IGVycm9yIH0pO1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiB6b29tVG9Tb3VyY2UoanVnZ2w6IElKdWdnbCwgc291cmNlOiBzdHJpbmcpIHtcclxuICBpZiAoIWp1Z2dsKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGp1Z2dsLm9uKFwidml6UmVhZHlcIiwgKHZpeikgPT4ge1xyXG4gICAgLy8gQWZ0ZXIgbGF5b3V0IGlzIGRvbmUsIGNlbnRlciBvbiBzb3VyY2Ugbm9kZVxyXG4gICAgdml6Lm9uZShcImxheW91dHN0b3BcIiwgKGUpID0+IHtcclxuICAgICAgY29uc3Qgdml6ID0gZS5jeTtcclxuICAgICAgY29uc3Qgbm9kZSA9IHZpei4kaWQoVml6SWQudG9JZChzb3VyY2UgKyBcIi5tZFwiLCBTVE9SRV9JRCkpO1xyXG4gICAgICB2aXouYW5pbWF0ZSh7XHJcbiAgICAgICAgY2VudGVyOiB7XHJcbiAgICAgICAgICBlbGVzOiBub2RlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZHVyYXRpb246IDI1MCxcclxuICAgICAgICBxdWV1ZTogZmFsc2UsXHJcbiAgICAgICAgem9vbTogMS43LFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiB6b29tVG9HcmFwaChqdWdnbDogSUp1Z2dsKSB7XHJcbiAganVnZ2wub24oXCJ2aXpSZWFkeVwiLCAodml6KSA9PiB7XHJcbiAgICB2aXouZml0KHZpei5ub2RlcygpKTtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlRGVwdGhNYXAoXHJcbiAgcGF0aHM6IHN0cmluZ1tdW10sXHJcbiAgc291cmNlOiBzdHJpbmcsXHJcbiAgb2Zmc2V0ID0gMFxyXG4pOiB7IFtuYW1lOiBzdHJpbmddOiBudW1iZXIgfSB7XHJcbiAgLy8gVE9ETzogSXMgdGhlcmUgYSBCQyBmdW5jdGlvbiBmb3IgdGhpcyBhbHJlYWR5P1xyXG4gIGxldCBkZXB0aE1hcDogeyBbdmFsdWU6IHN0cmluZ106IG51bWJlciB9ID0ge307XHJcbiAgZGVwdGhNYXBbc291cmNlICsgXCIubWRcIl0gPSAwO1xyXG4gIHBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBuYW1lID0gcGF0aFtpXSArIFwiLm1kXCI7XHJcbiAgICAgIGNvbnN0IGRlcHRoID0gcGF0aC5sZW5ndGggLSBpIC0gMSArIG9mZnNldDtcclxuICAgICAgaWYgKG5hbWUgaW4gZGVwdGhNYXApIHtcclxuICAgICAgICBkZXB0aE1hcFtuYW1lXSA9IE1hdGgubWluKGRlcHRoTWFwW25hbWVdLCBkZXB0aCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZGVwdGhNYXBbbmFtZV0gPSBkZXB0aDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBkZXB0aE1hcDtcclxufVxyXG5cclxuZnVuY3Rpb24gdXBkYXRlRGVwdGgoanVnZ2w6IElKdWdnbCwgZGVwdGg6IG51bWJlcikge1xyXG4gIGp1Z2dsLnZpei4kKGBbZGVwdGg+JHtkZXB0aH1dYCkuYWRkQ2xhc3MoXCJmaWx0ZXJlZFwiKTtcclxuICBqdWdnbC52aXouJChgW2RlcHRoPD0ke2RlcHRofV1gKS5yZW1vdmVDbGFzcyhcImZpbHRlcmVkXCIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSnVnZ2xUcmFpbChcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIHRhcmdldDogSFRNTEVsZW1lbnQsXHJcbiAgcGF0aHM6IHN0cmluZ1tdW10sXHJcbiAgc291cmNlOiBzdHJpbmcsXHJcbiAgYXJnczogSUp1Z2dsU2V0dGluZ3NcclxuKSB7XHJcbiAgY29uc3QgdG9vbGJhckRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcbiAgdG9vbGJhckRpdi5hZGRDbGFzcyhcImN5LXRvb2xiYXJcIik7XHJcbiAgdGFyZ2V0LmFwcGVuZENoaWxkKHRvb2xiYXJEaXYpO1xyXG5cclxuICBjb25zdCBzZWN0RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICBzZWN0RGl2LmFkZENsYXNzKFwiY3ktdG9vbGJhci1zZWN0aW9uXCIpO1xyXG4gIHRvb2xiYXJEaXYuYXBwZW5kQ2hpbGQoc2VjdERpdik7XHJcblxyXG4gIGNvbnN0IGFtdENoaWxkcmVuID0gdGFyZ2V0LmNoaWxkcmVuLmxlbmd0aDtcclxuXHJcbiAgbGV0IGp1Z2dsVXA6IElKdWdnbCA9IG51bGw7XHJcbiAgbGV0IGp1Z2dsRG93bjogSUp1Z2dsID0gbnVsbDtcclxuXHJcbiAgbmV3IEp1Z2dsQnV0dG9uKHtcclxuICAgIHRhcmdldDogc2VjdERpdixcclxuICAgIHByb3BzOiB7XHJcbiAgICAgIGljb246IFwiXHUyMTkxXCIsXHJcbiAgICAgIG9uQ2xpY2s6ICgpID0+IHtcclxuICAgICAgICBpZiAoanVnZ2xVcCkge1xyXG4gICAgICAgICAgdGFyZ2V0LmNoaWxkcmVuW2FtdENoaWxkcmVuXS5jbGFzc0xpc3QucmVtb3ZlKFwianVnZ2wtaGlkZVwiKTtcclxuICAgICAgICAgIGRlcHRoVXAuJHNldCh7IHZpc2libGU6IHRydWUgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChqdWdnbERvd24pIHtcclxuICAgICAgICAgIHRhcmdldC5jaGlsZHJlblthbXRDaGlsZHJlbiArIDFdLmNsYXNzTGlzdC5hZGQoXCJqdWdnbC1oaWRlXCIpO1xyXG4gICAgICAgICAgZGVwdGhEb3duLiRzZXQoeyB2aXNpYmxlOiBmYWxzZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgICAgdGl0bGU6IFwiU2hvdyB1cCBncmFwaFwiLFxyXG4gICAgfSxcclxuICB9KTtcclxuXHJcbiAgbmV3IEp1Z2dsQnV0dG9uKHtcclxuICAgIHRhcmdldDogc2VjdERpdixcclxuICAgIHByb3BzOiB7XHJcbiAgICAgIGljb246IFwiXHUyMTkzXCIsXHJcbiAgICAgIG9uQ2xpY2s6ICgpID0+IHtcclxuICAgICAgICBpZiAoanVnZ2xEb3duKSB7XHJcbiAgICAgICAgICB0YXJnZXQuY2hpbGRyZW5bYW10Q2hpbGRyZW4gKyAxXS5jbGFzc0xpc3QucmVtb3ZlKFwianVnZ2wtaGlkZVwiKTtcclxuICAgICAgICAgIGRlcHRoVXAuJHNldCh7IHZpc2libGU6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgaWYgKGp1Z2dsVXApIHtcclxuICAgICAgICAgICAgdGFyZ2V0LmNoaWxkcmVuW2FtdENoaWxkcmVuXS5jbGFzc0xpc3QuYWRkKFwianVnZ2wtaGlkZVwiKTtcclxuICAgICAgICAgICAgZGVwdGhEb3duLiRzZXQoeyB2aXNpYmxlOiB0cnVlIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzdWIgPSBnZXRTdWJJbkRpcnMocGx1Z2luLm1haW5HLCBcImRvd25cIiwgXCJ1cFwiKTtcclxuICAgICAgICBjb25zdCBjbG9zZWQgPSBnZXRSZWZsZXhpdmVDbG9zdXJlKHN1YiwgcGx1Z2luLnNldHRpbmdzLnVzZXJIaWVycyk7XHJcbiAgICAgICAgY29uc3Qgc3ViQ2xvc2VkID0gZ2V0U3ViSW5EaXJzKGNsb3NlZCwgXCJkb3duXCIpO1xyXG5cclxuXHJcbiAgICAgICAgY29uc3QgeyBjcmVhdGVJbmRleEluZGVudCB9ID0gcGx1Z2luLnNldHRpbmdzXHJcbiAgICAgICAgY29uc3QgYWxsUGF0aHMgPSBkZnNBbGxQYXRocyhzdWJDbG9zZWQsIHNvdXJjZSk7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSBjcmVhdGVJbmRleChhbGxQYXRocywgZmFsc2UsIGNyZWF0ZUluZGV4SW5kZW50KTtcclxuICAgICAgICBjb25zdCBsaW5lcyA9IGluZGV4XHJcbiAgICAgICAgICAuc3BsaXQoXCJcXG5cIilcclxuICAgICAgICAgIC5tYXAoKGxpbmUpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgW2luZGVudCwgLi4uY29udGVudF0gPSBsaW5lLnNwbGl0KFwiLSBcIik7XHJcbiAgICAgICAgICAgIHJldHVybiBjb250ZW50LmpvaW4oXCItIFwiKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuZmlsdGVyKChwYWlyKSA9PiBwYWlyKTtcclxuICAgICAgICBsZXQgZGVwdGhNYXBEb3duID0gY3JlYXRlRGVwdGhNYXAoYWxsUGF0aHMsIHNvdXJjZSk7XHJcbiAgICAgICAgY29uc3QgbWF4RGVwdGhEb3duID0gTWF0aC5tYXgoLi4uT2JqZWN0LnZhbHVlcyhkZXB0aE1hcERvd24pKTtcclxuXHJcbiAgICAgICAgZGVwdGhEb3duID0gbmV3IEp1Z2dsRGVwdGgoe1xyXG4gICAgICAgICAgdGFyZ2V0OiB0b29sYmFyRGl2LFxyXG4gICAgICAgICAgcHJvcHM6IHtcclxuICAgICAgICAgICAgbWF4RGVwdGg6IG1heERlcHRoRG93bixcclxuICAgICAgICAgICAgb25VcGRhdGVEZXB0aDogKGQpID0+IHtcclxuICAgICAgICAgICAgICB1cGRhdGVEZXB0aChqdWdnbERvd24sIGQpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBsZXQgbm9kZXNTID0gbmV3IFNldChsaW5lcyk7XHJcbiAgICAgICAgbm9kZXNTLmFkZChzb3VyY2UpO1xyXG4gICAgICAgIGNvbnN0IG5vZGVzID0gQXJyYXkuZnJvbShub2Rlc1MpLm1hcCgocykgPT4gcyArIFwiLm1kXCIpO1xyXG5cclxuICAgICAgICBjb25zdCBhcmdzRG93biA9IE9iamVjdC5hc3NpZ24oe30sIGFyZ3MpO1xyXG4gICAgICAgIGNvbnN0IGxheW91dCA9IHBsdWdpbi5zZXR0aW5ncy5qdWdnbExheW91dDtcclxuICAgICAgICBpZiAobGF5b3V0ID09PSBcImhpZXJhcmNoeVwiKSB7XHJcbiAgICAgICAgICBhcmdzRG93bi5sYXlvdXQgPSB7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgbmFtZTogXCJkYWdyZVwiLFxyXG4gICAgICAgICAgICBhbmltYXRlOiBmYWxzZSxcclxuICAgICAgICAgICAgcmFua2VyOiAoZ3JhcGgpID0+IHtcclxuICAgICAgICAgICAgICBPYmplY3Qua2V5cyhncmFwaC5fbm9kZXMpLmZvckVhY2goKGlkKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuYW1lID0gVml6SWQuZnJvbUlkKGlkKS5pZDtcclxuICAgICAgICAgICAgICAgIGlmIChuYW1lIGluIGRlcHRoTWFwRG93bikge1xyXG4gICAgICAgICAgICAgICAgICBncmFwaC5fbm9kZXNbaWRdLnJhbmsgPSBkZXB0aE1hcERvd25bbmFtZV0gKyAxO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZ3JhcGguX25vZGVzW2lkXS5yYW5rID0gMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGFyZ3NEb3duLmxheW91dCA9IGxheW91dDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgaXNGZGdkID0gbGF5b3V0ID09PSBcImNvbGFcIiB8fCBsYXlvdXQgPT09IFwiZDMtZm9yY2VcIjtcclxuICAgICAgICBpZiAoaXNGZGdkKSB7XHJcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICBhcmdzRG93bi5mZGdkTGF5b3V0ID0gbGF5b3V0O1xyXG4gICAgICAgICAgYXJnc0Rvd24ubGF5b3V0ID0gXCJmb3JjZS1kaXJlY3RlZFwiO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhcmdzRG93bi5hdXRvWm9vbSA9IHRydWU7XHJcbiAgICAgICAgICBhcmdzRG93bi5hbmltYXRlTGF5b3V0ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBqdWdnbERvd24gPSBjcmVhdGVKdWdnbChwbHVnaW4sIHRhcmdldCwgbm9kZXMsIGFyZ3NEb3duLCBkZXB0aE1hcERvd24pO1xyXG5cclxuICAgICAgICBpZiAoaXNGZGdkKSB7XHJcbiAgICAgICAgICB6b29tVG9Tb3VyY2UoanVnZ2xEb3duLCBzb3VyY2UpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB6b29tVG9HcmFwaChqdWdnbERvd24pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGp1Z2dsVXApIHtcclxuICAgICAgICAgIHRhcmdldC5jaGlsZHJlblthbXRDaGlsZHJlbl0uYWRkQ2xhc3MoXCJqdWdnbC1oaWRlXCIpO1xyXG4gICAgICAgICAgZGVwdGhVcC4kc2V0KHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgIHRpdGxlOiBcIlNob3cgZG93biBncmFwaFwiLFxyXG4gICAgfSxcclxuICB9KTtcclxuICBjb25zdCBkZXB0aE1hcFVwID0gY3JlYXRlRGVwdGhNYXAocGF0aHMsIHNvdXJjZSwgMSk7XHJcbiAgY29uc3QgbWF4RGVwdGhVcCA9IE1hdGgubWF4KC4uLk9iamVjdC52YWx1ZXMoZGVwdGhNYXBVcCkpO1xyXG5cclxuICBsZXQgZGVwdGhEb3duOiBKdWdnbERlcHRoO1xyXG4gIGNvbnN0IGRlcHRoVXAgPSBuZXcgSnVnZ2xEZXB0aCh7XHJcbiAgICB0YXJnZXQ6IHRvb2xiYXJEaXYsXHJcbiAgICBwcm9wczoge1xyXG4gICAgICBtYXhEZXB0aDogbWF4RGVwdGhVcCxcclxuICAgICAgb25VcGRhdGVEZXB0aDogKGQpID0+IHtcclxuICAgICAgICB1cGRhdGVEZXB0aChqdWdnbFVwLCBkKTtcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSk7XHJcblxyXG4gIC8vIG5ldyBKdWdnbEJ1dHRvbih7XHJcbiAgLy8gICAgIHRhcmdldDogc2VjdERpdixcclxuICAvLyAgICAgcHJvcHM6IHtcclxuICAvLyAgICAgICAgIGljb246IFwiXHUyNkY2XCIsXHJcbiAgLy8gICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgLy8gICAgICAgICAgICAgY29uc29sZS5sb2coXCJoZXJlXCIpXHJcbiAgLy8gICAgICAgICAgICAgdGFyZ2V0LmNoaWxkcmVuWzFdLmFkZENsYXNzKFwianVnZ2wtZnVsbC1zY3JlZW5cIilcclxuICAvLyAgICAgICAgICAgICB0YXJnZXQuY2hpbGRyZW5bMV0uc2V0QXR0cihcInN0eWxlXCIsIFwiXCIpO1xyXG4gIC8vICAgICAgICAgfSxcclxuICAvLyAgICAgICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAvLyAgICAgICAgIHRpdGxlOiBcIkZ1bGwgaGVpZ2h0XCJcclxuICAvLyAgICAgfVxyXG4gIC8vIH0pO1xyXG4gIGxldCBub2RlcyA9IEFycmF5LmZyb20oXHJcbiAgICBuZXcgU2V0KHBhdGhzLnJlZHVjZSgocHJldiwgY3VycikgPT4gcHJldi5jb25jYXQoY3VyciksIFtdKSlcclxuICApO1xyXG5cclxuICBub2Rlcy5wdXNoKHNvdXJjZSk7XHJcbiAgbm9kZXMgPSBub2Rlcy5tYXAoKHMpID0+IHMgKyBcIi5tZFwiKTtcclxuXHJcbiAgY29uc3QgYXJnc1VwOiBJSnVnZ2xTZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIGFyZ3MpO1xyXG5cclxuICBjb25zdCBsYXlvdXQgPSBwbHVnaW4uc2V0dGluZ3MuanVnZ2xMYXlvdXQ7XHJcbiAgaWYgKGxheW91dCA9PT0gXCJoaWVyYXJjaHlcIikge1xyXG4gICAgYXJnc1VwLmxheW91dCA9IHtcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICBuYW1lOiBcImRhZ3JlXCIsXHJcbiAgICAgIGFuaW1hdGU6IGZhbHNlLFxyXG4gICAgICByYW5rZXI6IChncmFwaCkgPT4ge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGdyYXBoLl9ub2RlcykuZm9yRWFjaCgoaWQpID0+IHtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBWaXpJZC5mcm9tSWQoaWQpLmlkO1xyXG4gICAgICAgICAgaWYgKG5hbWUgaW4gZGVwdGhNYXBVcCkge1xyXG4gICAgICAgICAgICBncmFwaC5fbm9kZXNbaWRdLnJhbmsgPSBtYXhEZXB0aFVwIC0gZGVwdGhNYXBVcFtuYW1lXSArIDE7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBncmFwaC5fbm9kZXNbaWRdLnJhbmsgPSBtYXhEZXB0aFVwICsgMjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgfSBlbHNlIHtcclxuICAgIGFyZ3NVcC5sYXlvdXQgPSBsYXlvdXQ7XHJcbiAgfVxyXG4gIGNvbnN0IGlzRmRnZCA9IGxheW91dCA9PT0gXCJjb2xhXCIgfHwgbGF5b3V0ID09PSBcImQzLWZvcmNlXCI7XHJcbiAgaWYgKGlzRmRnZCkge1xyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgYXJnc1VwLmZkZ2RMYXlvdXQgPSBsYXlvdXQ7XHJcbiAgICBhcmdzVXAubGF5b3V0ID0gXCJmb3JjZS1kaXJlY3RlZFwiO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBhcmdzVXAuYXV0b1pvb20gPSB0cnVlO1xyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgYXJnc1VwLmFuaW1hdGVMYXlvdXQgPSBmYWxzZTtcclxuICB9XHJcbiAganVnZ2xVcCA9IGNyZWF0ZUp1Z2dsKHBsdWdpbiwgdGFyZ2V0LCBub2RlcywgYXJnc1VwLCBkZXB0aE1hcFVwKTtcclxuICBpZiAoaXNGZGdkKSB7XHJcbiAgICB6b29tVG9Tb3VyY2UoanVnZ2xVcCwgc291cmNlKTtcclxuICB9IGVsc2Uge1xyXG4gICAgem9vbVRvR3JhcGgoanVnZ2xVcCk7XHJcbiAgfVxyXG59XHJcbiIsICJpbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCB7IGluZm8gfSBmcm9tIFwibG9nbGV2ZWxcIjtcclxuaW1wb3J0IHsgY29weSB9IGZyb20gXCJvYnNpZGlhbi1jb21tdW5pdHktbGliL2Rpc3QvdXRpbHNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgZGZzQWxsUGF0aHMsIGdldFNpbmtzLCBnZXRTdWJJbkRpcnMgfSBmcm9tIFwiLi4vVXRpbHMvZ3JhcGhVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXRDdXJyRmlsZSwgbWFrZVdpa2kgfSBmcm9tIFwiLi4vVXRpbHMvT2JzaWRpYW5VdGlsc1wiO1xyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgYSBjb3B5IG9mIGBpbmRleGAsIGRvZXNuJ3QgbXV0YXRlLlxyXG4gKiBAcGFyYW0gIHtzdHJpbmd9IGluZGV4XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYWRkQWxpYXNlc1RvSW5kZXgocGx1Z2luOiBCQ1BsdWdpbiwgaW5kZXg6IHN0cmluZykge1xyXG4gIGNvbnN0IHsgYWxpYXNlc0luSW5kZXggfSA9IHBsdWdpbi5zZXR0aW5ncztcclxuXHJcbiAgY29uc3QgbGluZXMgPSBpbmRleC5zbGljZSgpLnNwbGl0KFwiXFxuXCIpO1xyXG5cclxuICBpZiAoYWxpYXNlc0luSW5kZXgpIHtcclxuICAgIGZvciAobGV0IGxpbmUgb2YgbGluZXMpIHtcclxuICAgICAgY29uc3QgW2luZGVudCwgLi4uY29udGVudF0gPSBsaW5lLnNwbGl0KFwiLSBcIik7XHJcbiAgICAgIGNvbnN0IG5vdGUgPSBjb250ZW50LmpvaW4oXCItIFwiKTtcclxuICAgICAgaWYgKCFub3RlKSBjb250aW51ZTtcclxuXHJcbiAgICAgIGNvbnN0IGN1cnJGaWxlID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3Qobm90ZSwgXCJcIik7XHJcblxyXG4gICAgICBpZiAoY3VyckZpbGUgIT09IG51bGwpIHtcclxuICAgICAgICBjb25zdCBjYWNoZSA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpbGVDYWNoZShjdXJyRmlsZSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGFsaWFzOiBzdHJpbmdbXSA9IGNhY2hlPy5mcm9udG1hdHRlcj8uYWxpYXMgPz8gW107XHJcbiAgICAgICAgY29uc3QgYWxpYXNlczogc3RyaW5nW10gPSBjYWNoZT8uZnJvbnRtYXR0ZXI/LmFsaWFzZXMgPz8gW107XHJcblxyXG4gICAgICAgIGNvbnN0IGFsbEFsaWFzZXM6IHN0cmluZ1tdID0gWy4uLlthbGlhc10uZmxhdCgzKSwgLi4uW2FsaWFzZXNdLmZsYXQoMyldO1xyXG4gICAgICAgIGlmIChhbGxBbGlhc2VzLmxlbmd0aCkge1xyXG4gICAgICAgICAgbGluZSArPSBgICgke2FsbEFsaWFzZXMuam9pbihcIiwgXCIpfSlgO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gbGluZXMuam9pbihcIlxcblwiKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZSBhbiBpbmRleCBvZiBhbGwgdGhlIHBhdGhzIGluIHRoZSBncmFwaC5cclxuICogQHBhcmFtIGFsbFBhdGhzIC0gQSBsaXN0IG9mIGFsbCBwYXRocyBmcm9tIHRoZSByb290IHRvIHRoZSBsZWF2ZXMuXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYXNXaWtpbGlua3MgLSBXaGV0aGVyIHRvIHVzZSB3aWtpbGlua3MgaW5zdGVhZCBvZiBwbGFpbiB0ZXh0LlxyXG4gKiBAcmV0dXJucyBBIHN0cmluZy5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbmRleChcclxuICBhbGxQYXRoczogc3RyaW5nW11bXSxcclxuICBhc1dpa2lsaW5rczogYm9vbGVhbixcclxuICBpbmRlbnQgPSBcIiAgXCJcclxuKTogc3RyaW5nIHtcclxuICBsZXQgaW5kZXggPSBcIlwiO1xyXG4gIGNvbnN0IGNvcHkgPSBjbG9uZURlZXAoYWxsUGF0aHMpO1xyXG4gIGNvbnN0IHJldmVyc2VkID0gY29weS5tYXAoKHBhdGgpID0+IHBhdGgucmV2ZXJzZSgpKTtcclxuICByZXZlcnNlZC5mb3JFYWNoKChwYXRoKSA9PiBwYXRoLnNoaWZ0KCkpO1xyXG5cclxuICBjb25zdCByZWFsSW5kZW50ID0gaW5kZW50ID09PSAnXFxcXHQnID8gJ1xcdCcgOiBpbmRlbnQ7XHJcblxyXG4gIGNvbnN0IHZpc2l0ZWQ6IHtcclxuICAgIFtub2RlOiBzdHJpbmddOiAvKiogVGhlIGRlcHRocyBhdCB3aGljaCBgbm9kZWAgd2FzIHZpc2l0ZWQgKi8gbnVtYmVyW107XHJcbiAgfSA9IHt9O1xyXG5cclxuICByZXZlcnNlZC5mb3JFYWNoKChwYXRoKSA9PiB7XHJcbiAgICBmb3IgKGxldCBkZXB0aCA9IDA7IGRlcHRoIDwgcGF0aC5sZW5ndGg7IGRlcHRoKyspIHtcclxuICAgICAgY29uc3QgY3Vyck5vZGUgPSBwYXRoW2RlcHRoXTtcclxuXHJcbiAgICAgIC8vIElmIHRoYXQgbm9kZSBoYXMgYmVlbiB2aXNpdGVkIGJlZm9yZSBhdCB0aGUgY3VycmVudCBkZXB0aFxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdmlzaXRlZC5oYXNPd25Qcm9wZXJ0eShjdXJyTm9kZSkgJiZcclxuICAgICAgICB2aXNpdGVkW2N1cnJOb2RlXS5pbmNsdWRlcyhkZXB0aClcclxuICAgICAgKSBjb250aW51ZVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBpbmRleCArPSBgJHtyZWFsSW5kZW50LnJlcGVhdChkZXB0aCl9LSAke2FzV2lraWxpbmtzID8gbWFrZVdpa2koY3Vyck5vZGUpIDogY3Vyck5vZGVcclxuICAgICAgICAgIH1cXG5gO1xyXG5cclxuICAgICAgICBpZiAoIXZpc2l0ZWQuaGFzT3duUHJvcGVydHkoY3Vyck5vZGUpKSB2aXNpdGVkW2N1cnJOb2RlXSA9IFtdO1xyXG4gICAgICAgIHZpc2l0ZWRbY3Vyck5vZGVdLnB1c2goZGVwdGgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIGluZGV4O1xyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29weUxvY2FsSW5kZXgocGx1Z2luOiBCQ1BsdWdpbikge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MsIGNsb3NlZEcgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7IHdpa2lsaW5rSW5kZXgsIGNyZWF0ZUluZGV4SW5kZW50IH0gPSBzZXR0aW5ncztcclxuICBjb25zdCB7IGJhc2VuYW1lIH0gPSBnZXRDdXJyRmlsZSgpXHJcblxyXG4gIGNvbnN0IG9ubHlEb3ducyA9IGdldFN1YkluRGlycyhjbG9zZWRHLCBcImRvd25cIik7XHJcbiAgY29uc3QgYWxsUGF0aHMgPSBkZnNBbGxQYXRocyhvbmx5RG93bnMsIGJhc2VuYW1lKTtcclxuICBjb25zdCBpbmRleCA9IGFkZEFsaWFzZXNUb0luZGV4KHBsdWdpbiwgY3JlYXRlSW5kZXgoYWxsUGF0aHMsIHdpa2lsaW5rSW5kZXgsIGNyZWF0ZUluZGV4SW5kZW50KSk7XHJcblxyXG4gIGluZm8oeyBpbmRleCB9KTtcclxuICBhd2FpdCBjb3B5KGluZGV4KTtcclxufVxyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvcHlHbG9iYWxJbmRleChwbHVnaW46IEJDUGx1Z2luKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncywgY2xvc2VkRyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgd2lraWxpbmtJbmRleCwgY3JlYXRlSW5kZXhJbmRlbnQgfSA9IHNldHRpbmdzO1xyXG5cclxuICBjb25zdCBvbmx5RG93bnMgPSBnZXRTdWJJbkRpcnMoY2xvc2VkRywgXCJkb3duXCIpO1xyXG4gIGNvbnN0IG9ubHlVcHMgPSBnZXRTdWJJbkRpcnMoY2xvc2VkRywgXCJ1cFwiKTtcclxuXHJcbiAgY29uc3Qgc2lua3MgPSBnZXRTaW5rcyhvbmx5VXBzKTtcclxuXHJcbiAgbGV0IGdsb2JhbEluZGV4ID0gXCJcIjtcclxuICBzaW5rcy5mb3JFYWNoKCh0ZXJtaW5hbCkgPT4ge1xyXG4gICAgZ2xvYmFsSW5kZXggKz0gdGVybWluYWwgKyBcIlxcblwiO1xyXG4gICAgY29uc3QgYWxsUGF0aHMgPSBkZnNBbGxQYXRocyhvbmx5RG93bnMsIHRlcm1pbmFsKTtcclxuICAgIGdsb2JhbEluZGV4ICs9XHJcbiAgICAgIGFkZEFsaWFzZXNUb0luZGV4KHBsdWdpbiwgY3JlYXRlSW5kZXgoYWxsUGF0aHMsIHdpa2lsaW5rSW5kZXgsIGNyZWF0ZUluZGV4SW5kZW50KSkgKyBcIlxcblwiO1xyXG4gIH0pO1xyXG5cclxuICBpbmZvKHsgZ2xvYmFsSW5kZXggfSk7XHJcbiAgYXdhaXQgY29weShnbG9iYWxJbmRleCk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBpbmRleFRvTGluZVBhaXJzID0gKFxyXG4gIGluZGV4OiBzdHJpbmcsXHJcbiAgZmxhdCA9IGZhbHNlXHJcbik6IFtzdHJpbmcsIHN0cmluZ11bXSA9PlxyXG4gIGluZGV4XHJcbiAgICAuc3BsaXQoXCJcXG5cIilcclxuICAgIC5tYXAoKGxpbmUpID0+IHtcclxuICAgICAgY29uc3QgW2luZGVudCwgLi4uY29udGVudF0gPSBsaW5lLnNwbGl0KFwiLSBcIik7XHJcbiAgICAgIHJldHVybiBbZmxhdCA/IFwiXCIgOiBpbmRlbnQsIGNvbnRlbnQuam9pbihcIi0gXCIpXSBhcyBbXHJcbiAgICAgICAgc3RyaW5nLFxyXG4gICAgICAgIHN0cmluZ1xyXG4gICAgICBdO1xyXG4gICAgfSlcclxuICAgIC5maWx0ZXIoKHBhaXIpID0+IHBhaXJbMV0gIT09IFwiXCIpO1xyXG4iLCAiPHNjcmlwdCBsYW5nPVwidHNcIj5cclxuICBleHBvcnQgbGV0IGljb247XHJcbiAgZXhwb3J0IGxldCBvbkNsaWNrOiAoKSA9PiB2b2lkO1xyXG4gIGV4cG9ydCBsZXQgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBleHBvcnQgbGV0IHRpdGxlID0gXCJcIjtcclxuXHJcbiAgJDogcmVuZGVyZWRJY29uID0gaWNvbjtcclxuPC9zY3JpcHQ+XHJcblxyXG48YnV0dG9uXHJcbiAgdHlwZT1cImJ1dHRvblwiXHJcbiAgY2xhc3M9XCJqdWdnbC1idXR0b25cIlxyXG4gIG9uOmNsaWNrPXtvbkNsaWNrfVxyXG4gIGFyaWEtbGFiZWw9e3RpdGxlfVxyXG4gIHtkaXNhYmxlZH1cclxuPlxyXG4gIHtyZW5kZXJlZEljb259XHJcbjwvYnV0dG9uPlxyXG4iLCBudWxsLCBudWxsLCAiPHNjcmlwdCBsYW5nPVwidHNcIj5cclxuICBpbXBvcnQgSnVnZ2xCdXR0b24gZnJvbSBcIi4vSnVnZ2xCdXR0b24uc3ZlbHRlXCI7XHJcblxyXG4gIGV4cG9ydCBsZXQgdmlzaWJsZSA9IHRydWU7XHJcbiAgZXhwb3J0IGxldCBtYXhEZXB0aDogbnVtYmVyO1xyXG4gIGV4cG9ydCBsZXQgb25VcGRhdGVEZXB0aDogKGRlcHRoOiBudW1iZXIpID0+IHZvaWQ7XHJcblxyXG4gIGxldCBkZXB0aCA9IG1heERlcHRoO1xyXG48L3NjcmlwdD5cclxuXHJcbnsjaWYgdmlzaWJsZX1cclxuICA8ZGl2IGNsYXNzPVwiY3ktdG9vbGJhci1zZWN0aW9uXCI+XHJcbiAgICA8SnVnZ2xCdXR0b25cclxuICAgICAgaWNvbj1cIi1cIlxyXG4gICAgICBkaXNhYmxlZD17ZGVwdGggPD0gMH1cclxuICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgIGRlcHRoIC09IDE7XHJcbiAgICAgICAgb25VcGRhdGVEZXB0aChkZXB0aCk7XHJcbiAgICAgIH19XHJcbiAgICAvPlxyXG5cclxuICAgIDxKdWdnbEJ1dHRvbiBpY29uPXtkZXB0aH0gZGlzYWJsZWQ9e3RydWV9IG9uQ2xpY2s9e251bGx9IC8+XHJcblxyXG4gICAgPEp1Z2dsQnV0dG9uXHJcbiAgICAgIGljb249XCIrXCJcclxuICAgICAgZGlzYWJsZWQ9e2RlcHRoID49IG1heERlcHRofVxyXG4gICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgZGVwdGggKz0gMTtcclxuICAgICAgICBvblVwZGF0ZURlcHRoKGRlcHRoKTtcclxuICAgICAgfX1cclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbnsvaWZ9XHJcbiIsIG51bGwsICI8c2NyaXB0IGxhbmc9XCJ0c1wiPlxyXG4gIGltcG9ydCB7IHJlZnJlc2hJbmRleCB9IGZyb20gXCIuLi9yZWZyZXNoSW5kZXhcIjtcclxuICBpbXBvcnQgdHlwZSBNYXRyaXhWaWV3IGZyb20gXCIuLi9WaWV3cy9NYXRyaXhWaWV3XCI7XHJcblxyXG4gIGV4cG9ydCBsZXQgbWF0cml4VmlldzogTWF0cml4VmlldztcclxuXHJcbiAgY29uc3QgeyBwbHVnaW4gfSA9IG1hdHJpeFZpZXc7XHJcbiAgY29uc3QgeyBhbHBoYVNvcnRBc2MsIGVuYWJsZUFscGhhU29ydCB9ID0gcGx1Z2luLnNldHRpbmdzO1xyXG48L3NjcmlwdD5cclxuXHJcbjxidXR0b25cclxuICBjbGFzcz1cIkJDLXJlZnJlc2gtYnV0dG9uXCJcclxuICBhcmlhLWxhYmVsPVwiUmVmcmVzaCBJbmRleFwiXHJcbiAgb246Y2xpY2s9e2FzeW5jICgpID0+IGF3YWl0IHJlZnJlc2hJbmRleChwbHVnaW4pfVxyXG4+XHJcbiAgXHUyMUJCXHJcbjwvYnV0dG9uPlxyXG5cclxueyNpZiBlbmFibGVBbHBoYVNvcnR9XHJcbiAgPGJ1dHRvblxyXG4gICAgY2xhc3M9XCJCQy1zb3J0LWJ1dHRvblwiXHJcbiAgICBhcmlhLWxhYmVsPVwiQWxwaGFiZXRpY2FsIFNvcnRpbmcgT3JkZXJcIlxyXG4gICAgb246Y2xpY2s9e2FzeW5jICgpID0+IHtcclxuICAgICAgcGx1Z2luLnNldHRpbmdzLmFscGhhU29ydEFzYyA9ICFhbHBoYVNvcnRBc2M7XHJcbiAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgYXdhaXQgbWF0cml4Vmlldy5kcmF3KCk7XHJcbiAgICB9fVxyXG4gID5cclxuICAgIHthbHBoYVNvcnRBc2MgPyBcIlx1MjE5N1wiIDogXCJcdTIxOThcIn1cclxuICA8L2J1dHRvbj5cclxuey9pZn1cclxuXHJcbjxzdHlsZT5cclxuICBidXR0b24ge1xyXG4gICAgcGFkZGluZzogMXB4IDZweCAycHggNnB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XHJcbiAgfVxyXG48L3N0eWxlPlxyXG4iLCBudWxsLCAiPHNjcmlwdCBsYW5nPVwidHNcIj5cclxuICBpbXBvcnQgdHlwZSB7IFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbiAgaW1wb3J0IHsgaG92ZXJQcmV2aWV3LCBvcGVuT3JTd2l0Y2ggfSBmcm9tIFwib2JzaWRpYW4tY29tbXVuaXR5LWxpYlwiO1xyXG4gIGltcG9ydCBNYXRyaXhCdXR0b25zIGZyb20gXCIuL01hdHJpeEJ1dHRvbnMuc3ZlbHRlXCI7XHJcbiAgaW1wb3J0IHR5cGUgeyBTcXVhcmVQcm9wcyB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbiAgaW1wb3J0IHsgZHJvcFBhdGhORGVuZHJvbiB9IGZyb20gXCIuLi9VdGlscy9nZW5lcmFsVXRpbHNcIjtcclxuICBpbXBvcnQgdHlwZSBNYXRyaXhWaWV3IGZyb20gXCIuLi9WaWV3cy9NYXRyaXhWaWV3XCI7XHJcblxyXG4gIGV4cG9ydCBsZXQgaGllclNxdWFyZXM6IFNxdWFyZVByb3BzW11bXTtcclxuICBleHBvcnQgbGV0IGN1cnJGaWxlOiBURmlsZTtcclxuICBleHBvcnQgbGV0IG1hdHJpeFZpZXc6IE1hdHJpeFZpZXc7XHJcblxyXG4gIGNvbnN0IHsgcGx1Z2luIH0gPSBtYXRyaXhWaWV3O1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuXHJcbiAgY29uc3Qge1xyXG4gICAgc2hvd0ltcGxpZWRSZWxhdGlvbnMsXHJcbiAgICBybExlYWYsXHJcbiAgICB0cmVhdEN1cnJOb2RlQXNJbXBsaWVkU2libGluZyxcclxuICAgIHNob3dSZWxhdGlvblR5cGUsXHJcbiAgfSA9IHNldHRpbmdzO1xyXG48L3NjcmlwdD5cclxuXHJcbjxkaXYgY2xhc3M9XCJCQy1tYXRyaXgtYnV0dG9uc1wiPlxyXG4gIDxNYXRyaXhCdXR0b25zIHttYXRyaXhWaWV3fSAvPlxyXG48L2Rpdj5cclxuXHJcbjxkaXZcclxuICBjbGFzcz1cIkJDLU1hdHJpeCAgbWFya2Rvd24tcHJldmlldy12aWV3IHtoaWVyU3F1YXJlcy5sZW5ndGhcclxuICAgID8gJydcclxuICAgIDogJ0JDLWVtcHR5LXZpZXcnfVwiXHJcbj5cclxuICB7I2VhY2ggaGllclNxdWFyZXMgYXMgc3F1YXJlc31cclxuICAgIDxkaXYgY2xhc3M9XCJCQy1tYXRyaXgtaGllclwiPlxyXG4gICAgICB7I2VhY2ggc3F1YXJlcyBhcyB7IGZpZWxkLCBpbXBsaWVkSXRlbXMsIHJlYWxJdGVtcyB9fVxyXG4gICAgICAgIHsjaWYgcmVhbEl0ZW1zLmxlbmd0aCB8fCAoc2hvd0ltcGxpZWRSZWxhdGlvbnMgJiYgaW1wbGllZEl0ZW1zLmxlbmd0aCl9XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiQkMtTWF0cml4LXNxdWFyZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiQkMtTWF0cml4LWhlYWRlcnNcIj5cclxuICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJCQy1NYXRyaXgtaGVhZGVyXCI+e2ZpZWxkfTwvaDQ+XHJcblxyXG4gICAgICAgICAgICAgIHsjaWYgc2hvd1JlbGF0aW9uVHlwZX1cclxuICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cIkJDLU1hdHJpeC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAge3JlYWxJdGVtcy5sZW5ndGggPyBcIlJlYWxcIiA6IFwiSW1wbGllZFwifVxyXG4gICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICB7L2lmfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgeyNpZiByZWFsSXRlbXMubGVuZ3RofVxyXG4gICAgICAgICAgICAgIDxvbD5cclxuICAgICAgICAgICAgICAgIHsjZWFjaCByZWFsSXRlbXMgYXMgeyBhbHQsIGNscywgaW1wbGllZCwgdG8gfX1cclxuICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gc3ZlbHRlLWlnbm9yZSBhMTF5LXVua25vd24tYXJpYS1hdHRyaWJ1dGUgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBzdmVsdGUtaWdub3JlIGExMXktbW91c2UtZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIntjbHN9IHtpbXBsaWVkID8/ICcnfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBvbjpjbGljaz17YXN5bmMgKGUpID0+IGF3YWl0IG9wZW5PclN3aXRjaCh0bywgZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbjptb3VzZW92ZXI9eyhldmVudCkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJQcmV2aWV3KGV2ZW50LCBtYXRyaXhWaWV3LCB0byl9XHJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXthbHQgPyB0byA6IFwiXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsLXBvc2l0aW9uPXtybExlYWYgPyBcImxlZnRcIiA6IFwicmlnaHRcIn1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7YWx0ID8/IGRyb3BQYXRoTkRlbmRyb24odG8sIHNldHRpbmdzKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIHsvZWFjaH1cclxuICAgICAgICAgICAgICA8L29sPlxyXG4gICAgICAgICAgICB7L2lmfVxyXG5cclxuICAgICAgICAgICAgeyNpZiBzaG93SW1wbGllZFJlbGF0aW9ucyAmJiBpbXBsaWVkSXRlbXMubGVuZ3RofVxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJCQy1NYXRyaXgtaGVhZGVyc1wiPlxyXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwiQkMtTWF0cml4LWhlYWRlclwiPntcIiBcIn08L2g0PlxyXG4gICAgICAgICAgICAgICAgeyNpZiBpbXBsaWVkSXRlbXMubGVuZ3RofVxyXG4gICAgICAgICAgICAgICAgICB7I2lmIHNob3dSZWxhdGlvblR5cGUgJiYgcmVhbEl0ZW1zLmxlbmd0aH1cclxuICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJCQy1NYXRyaXgtaGVhZGVyXCI+SW1wbGllZDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgIHsvaWZ9XHJcbiAgICAgICAgICAgICAgICB7L2lmfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxvbCBzdGFydD17cmVhbEl0ZW1zLmxlbmd0aCArIDF9PlxyXG4gICAgICAgICAgICAgICAgeyNlYWNoIGltcGxpZWRJdGVtcyBhcyB7IGFsdCwgY2xzLCBpbXBsaWVkLCB0bywgcGFyZW50IH19XHJcbiAgICAgICAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiQkMtSW1wbGllZCB7dHJlYXRDdXJyTm9kZUFzSW1wbGllZFNpYmxpbmcgJiZcclxuICAgICAgICAgICAgICAgICAgICB0byA9PT0gY3VyckZpbGUuYmFzZW5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgID8gJ0JDLWFjdGl2ZS1ub3RlJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgOiAnJ31cIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBzdmVsdGUtaWdub3JlIGExMXktdW5rbm93bi1hcmlhLWF0dHJpYnV0ZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIHN2ZWx0ZS1pZ25vcmUgYTExeS1tb3VzZS1ldmVudHMtaGF2ZS1rZXktZXZlbnRzIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie2Nsc30ge2ltcGxpZWQgPz8gJyd9XCJcclxuICAgICAgICAgICAgICAgICAgICAgIG9uOmNsaWNrPXthc3luYyAoZSkgPT4gYXdhaXQgb3Blbk9yU3dpdGNoKHRvLCBlKX1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uOm1vdXNlb3Zlcj17KGUpID0+IGhvdmVyUHJldmlldyhlLCBtYXRyaXhWaWV3LCB0byl9XHJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXsoYWx0ID8gYCR7dG99XFxuYCA6IFwiXCIpICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmVudCA/IFwiXHUyMTkxIFwiICsgcGFyZW50IDogXCJcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsLXBvc2l0aW9uPXtybExlYWYgPyBcImxlZnRcIiA6IFwicmlnaHRcIn1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7YWx0ID8/IGRyb3BQYXRoTkRlbmRyb24odG8sIHNldHRpbmdzKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIHsvZWFjaH1cclxuICAgICAgICAgICAgICA8L29sPlxyXG4gICAgICAgICAgICB7L2lmfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgey9pZn1cclxuICAgICAgey9lYWNofVxyXG4gICAgPC9kaXY+XHJcbiAgey9lYWNofVxyXG48L2Rpdj5cclxuXHJcbjxzdHlsZT5cclxuICAuQkMtTWF0cml4IHtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XHJcbiAgICBsaW5lLWhlaWdodDogMS41O1xyXG4gIH1cclxuICAuQkMtTWF0cml4ID4gZGl2IHtcclxuICAgIGJvcmRlcjogM3B4IHNvbGlkIHZhcigtLWJhY2tncm91bmQtbW9kaWZpZXItYm9yZGVyKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICAgIC8qIHRleHQtYWxpZ246IGNlbnRlcjsgKi9cclxuICAgIG1hcmdpbjogM3B4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgaGVpZ2h0OiBmaXQtY29udGVudDtcclxuICB9XHJcblxyXG4gIC8qIC5CQy1tYXRyaXggZGl2IHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgfSAqL1xyXG5cclxuICAuQkMtTWF0cml4LXNxdWFyZSB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1iYWNrZ3JvdW5kLW1vZGlmaWVyLWJvcmRlcik7XHJcbiAgfVxyXG5cclxuICAuQkMtTWF0cml4LWhlYWRlcnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgfVxyXG4gIC5CQy1NYXRyaXgtaGVhZGVyIHtcclxuICAgIG1hcmdpbjogMnB4O1xyXG4gICAgcGFkZGluZzogMHB4IDEwcHg7XHJcbiAgfVxyXG4gIGg0LkJDLU1hdHJpeC1oZWFkZXI6Zmlyc3QtbGV0dGVyIHtcclxuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gIH1cclxuXHJcbiAgb2wge1xyXG4gICAgbWFyZ2luOiAzcHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XHJcbiAgfVxyXG5cclxuICAuQkMtTWF0cml4IGxpIHtcclxuICAgIG1hcmdpbjogMC4xZW07XHJcbiAgfVxyXG48L3N0eWxlPlxyXG4iLCAiaW1wb3J0IHR5cGUgeyBNdWx0aUdyYXBoIH0gZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHsgQVJST1dfRElSRUNUSU9OUywgRElSRUNUSU9OUyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSB7IEJDQVBJSSwgRGlyZWN0aW9ucywgVXNlckhpZXIgfSBmcm9tIFwiLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuL21haW5cIjtcclxuaW1wb3J0IHsgZ2V0TWF0cml4TmVpZ2hib3VycyB9IGZyb20gXCIuL1ZpZXdzL01hdHJpeFZpZXdcIjtcclxuaW1wb3J0IHtcclxuICBidWlsZE9ic0dyYXBoLFxyXG4gIGRmc0FsbFBhdGhzLFxyXG4gIGdldFN1YkZvckZpZWxkcyxcclxuICBnZXRTdWJJbkRpcnMsXHJcbn0gZnJvbSBcIi4vVXRpbHMvZ3JhcGhVdGlsc1wiO1xyXG5pbXBvcnQge1xyXG4gIGdldEZpZWxkSW5mbyxcclxuICBnZXRGaWVsZHMsXHJcbiAgZ2V0T3BwRGlyLFxyXG4gIGdldE9wcEZpZWxkcyxcclxuICBpdGVyYXRlSGllcnMsXHJcbn0gZnJvbSBcIi4vVXRpbHMvSGllclV0aWxzXCI7XHJcbmltcG9ydCB7IGNyZWF0ZUluZGV4IH0gZnJvbSBcIi4vQ29tbWFuZHMvQ3JlYXRlSW5kZXhcIjtcclxuaW1wb3J0IHsgcmVmcmVzaEluZGV4IH0gZnJvbSBcIi4vcmVmcmVzaEluZGV4XCI7XHJcbmltcG9ydCB7IGdldEN1cnJGaWxlIH0gZnJvbSBcIi4vVXRpbHMvT2JzaWRpYW5VdGlsc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEJDQVBJIGltcGxlbWVudHMgQkNBUElJIHtcclxuXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbjtcclxuICBtYWluRzogTXVsdGlHcmFwaDtcclxuICBjbG9zZWRHOiBNdWx0aUdyYXBoO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IocGx1Z2luOiBCQ1BsdWdpbikge1xyXG5cclxuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xyXG4gICAgdGhpcy5tYWluRyA9IHRoaXMucGx1Z2luLm1haW5HO1xyXG4gICAgdGhpcy5jbG9zZWRHID0gdGhpcy5wbHVnaW4uY2xvc2VkRztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBESVJFQ1RJT05TID0gRElSRUNUSU9OUztcclxuICBwdWJsaWMgQVJST1dfRElSRUNUSU9OUyA9IEFSUk9XX0RJUkVDVElPTlM7XHJcblxyXG4gIHB1YmxpYyBidWlsZE9ic0dyYXBoID0gYnVpbGRPYnNHcmFwaDtcclxuXHJcbiAgcHVibGljIHJlZnJlc2hJbmRleCA9IGFzeW5jICgpID0+IGF3YWl0IHJlZnJlc2hJbmRleCh0aGlzLnBsdWdpbilcclxuXHJcbiAgcHVibGljIGdldFN1YkluRGlycyA9IChkaXJzOiBEaXJlY3Rpb25zW10sIGcgPSB0aGlzLm1haW5HKSA9PlxyXG4gICAgZ2V0U3ViSW5EaXJzKGcsIC4uLmRpcnMpO1xyXG5cclxuICBwdWJsaWMgZ2V0U3ViRm9yRmllbGRzID0gKGZpZWxkczogc3RyaW5nW10sIGcgPSB0aGlzLm1haW5HKSA9PlxyXG4gICAgZ2V0U3ViRm9yRmllbGRzKGcsIGZpZWxkcyk7XHJcblxyXG4gIHB1YmxpYyBkZnNBbGxQYXRocyA9IChcclxuICAgIGZyb21Ob2RlID0gZ2V0Q3VyckZpbGUoKT8uYmFzZW5hbWUsXHJcbiAgICBnID0gdGhpcy5tYWluR1xyXG4gICkgPT4gZGZzQWxsUGF0aHMoZywgZnJvbU5vZGUpO1xyXG5cclxuICBwdWJsaWMgY3JlYXRlSW5kZXggPSAoYWxsUGF0aHM6IHN0cmluZ1tdW10sIHdpa2lsaW5rcyA9IGZhbHNlLCBpbmRlbnQgPSAnICAnKSA9PlxyXG4gICAgY3JlYXRlSW5kZXgoYWxsUGF0aHMsIHdpa2lsaW5rcywgaW5kZW50KTtcclxuXHJcbiAgcHVibGljIGdldE1hdHJpeE5laWdoYm91cnMgPSAoXHJcbiAgICBmcm9tTm9kZSA9IGdldEN1cnJGaWxlKCk/LmJhc2VuYW1lXHJcbiAgKSA9PiBnZXRNYXRyaXhOZWlnaGJvdXJzKHRoaXMucGx1Z2luLCBmcm9tTm9kZSk7XHJcblxyXG4gIHB1YmxpYyBnZXRPcHBEaXIgPSAoZGlyOiBEaXJlY3Rpb25zKSA9PiBnZXRPcHBEaXIoZGlyKTtcclxuXHJcbiAgcHVibGljIGdldE9wcEZpZWxkcyA9IChmaWVsZDogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCB7IGZpZWxkRGlyIH0gPSBnZXRGaWVsZEluZm8odGhpcy5wbHVnaW4uc2V0dGluZ3MudXNlckhpZXJzLCBmaWVsZCk7XHJcbiAgICByZXR1cm4gZ2V0T3BwRmllbGRzKHRoaXMucGx1Z2luLnNldHRpbmdzLnVzZXJIaWVycywgZmllbGQsIGZpZWxkRGlyKTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgZ2V0RmllbGRJbmZvID0gKGZpZWxkOiBzdHJpbmcpID0+XHJcbiAgICBnZXRGaWVsZEluZm8odGhpcy5wbHVnaW4uc2V0dGluZ3MudXNlckhpZXJzLCBmaWVsZCk7XHJcbiAgcHVibGljIGdldEZpZWxkcyA9IChkaXI/OiBEaXJlY3Rpb25zKSA9PlxyXG4gICAgZ2V0RmllbGRzKHRoaXMucGx1Z2luLnNldHRpbmdzLnVzZXJIaWVycywgZGlyID8/IFwiYWxsXCIpO1xyXG5cclxuICBwdWJsaWMgaXRlcmF0ZUhpZXJzKFxyXG4gICAgY2I6IChoaWVyOiBVc2VySGllciwgZGlyOiBEaXJlY3Rpb25zLCBmaWVsZDogc3RyaW5nKSA9PiB2b2lkXHJcbiAgKSB7XHJcbiAgICBpdGVyYXRlSGllcnModGhpcy5wbHVnaW4uc2V0dGluZ3MudXNlckhpZXJzLCBjYik7XHJcbiAgfVxyXG59XHJcbiIsICJpbXBvcnQgeyBGdXp6eU1hdGNoLCBGdXp6eVN1Z2dlc3RNb2RhbCwgTm90aWNlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IEhpZXJhcmNoeU5vdGVNYW5pcHVsYXRvciB9IGZyb20gXCIuL0hpZXJhcmNoeU5vdGVNYW5pcHVsYXRvclwiO1xyXG5pbXBvcnQgdHlwZSB7IEJDU2V0dGluZ3MgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vLi4vbWFpblwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEhpZXJhcmNoeU5vdGVTZWxlY3Rvck1vZGFsIGV4dGVuZHMgRnV6enlTdWdnZXN0TW9kYWw8c3RyaW5nPiB7XHJcbiAgcGx1Z2luOiBCQ1BsdWdpbjtcclxuICBzZXR0aW5nczogQkNTZXR0aW5ncztcclxuXHJcbiAgY29uc3RydWN0b3IocGx1Z2luOiBCQ1BsdWdpbikge1xyXG4gICAgc3VwZXIoYXBwKTtcclxuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xyXG4gICAgdGhpcy5zZXR0aW5ncyA9IHRoaXMucGx1Z2luLnNldHRpbmdzO1xyXG4gIH1cclxuXHJcbiAgb25PcGVuKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRQbGFjZWhvbGRlcihcIkhOIENob29zZXJcIik7XHJcbiAgICBjb25zdCB7IGhpZXJhcmNoeU5vdGVzIH0gPSB0aGlzLnNldHRpbmdzO1xyXG4gICAgaWYgKGhpZXJhcmNoeU5vdGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgIG5ldyBOb3RpY2UoXCJObyBoaWVyYXJjaHkgbm90ZXMgZm91bmRcIik7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICBoaWVyYXJjaHlOb3Rlcy5sZW5ndGggPT09IDEgJiZcclxuICAgICAgIWhpZXJhcmNoeU5vdGVzWzBdLmVuZHNXaXRoKFwiL1wiKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgbmV3IEhpZXJhcmNoeU5vdGVNYW5pcHVsYXRvcihcclxuICAgICAgICB0aGlzLnBsdWdpbixcclxuICAgICAgICBoaWVyYXJjaHlOb3Rlc1swXVxyXG4gICAgICApLm9wZW4oKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHN1cGVyLm9uT3BlbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbXMoKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3QgeyBoaWVyYXJjaHlOb3RlcyB9ID0gdGhpcy5zZXR0aW5ncztcclxuICAgIGlmIChoaWVyYXJjaHlOb3Rlcy5sZW5ndGggPT0gMSAmJiBoaWVyYXJjaHlOb3Rlc1swXS5lbmRzV2l0aChcIi9cIikpIHtcclxuICAgICAgLy8gdGhpcyBpcyBhIGZvbGRlclxyXG4gICAgICBsZXQgZm9sZGVyID0gaGllcmFyY2h5Tm90ZXNbMF0uc2xpY2UoMCwgLTEpO1xyXG4gICAgICBpZiAoYXBwLnBsdWdpbnMucGx1Z2lucy5kYXRhdmlldyAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICBsZXQgcGFnZXMgPSBhcHAucGx1Z2lucy5wbHVnaW5zLmRhdGF2aWV3LmFwaS5wYWdlcyhcclxuICAgICAgICAgIGBcIiR7Zm9sZGVyfVwiYFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIHBhZ2VzLnZhbHVlcy5tYXAoKHBhZ2UpID0+IHBhZ2UuZmlsZS5wYXRoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXcgTm90aWNlKFwibWFrZSBzdXJlIHlvdSBoYXZlIGRhdGF2aWV3IGVuYWJsZWRcIik7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSByZXR1cm4gaGllcmFyY2h5Tm90ZXM7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtVGV4dChpdGVtOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke2l0ZW19YDtcclxuICB9XHJcblxyXG4gIHJlbmRlclN1Z2dlc3Rpb24oaXRlbTogRnV6enlNYXRjaDxzdHJpbmc+LCBlbDogSFRNTEVsZW1lbnQpIHtcclxuICAgIHN1cGVyLnJlbmRlclN1Z2dlc3Rpb24oaXRlbSwgZWwpO1xyXG4gIH1cclxuXHJcbiAgb25DaG9vc2VJdGVtKGl0ZW06IHN0cmluZywgZXZ0OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgbmV3IEhpZXJhcmNoeU5vdGVNYW5pcHVsYXRvcih0aGlzLnBsdWdpbiwgaXRlbSkub3BlbigpO1xyXG4gICAgdGhpcy5jbG9zZSgpO1xyXG4gIH1cclxufVxyXG4iLCAiaW1wb3J0IHsgZXJyb3IsIGluZm8gfSBmcm9tIFwibG9nbGV2ZWxcIjtcclxuaW1wb3J0IHtcclxuICBGdXp6eU1hdGNoLFxyXG4gIEZ1enp5U3VnZ2VzdE1vZGFsLFxyXG4gIExpc3RJdGVtQ2FjaGUsXHJcbiAgTWFya2Rvd25WaWV3LFxyXG4gIE5vdGljZSxcclxuICBURmlsZSxcclxufSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHR5cGUgeyBCQ1NldHRpbmdzIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uLy4uL21haW5cIjtcclxuaW1wb3J0IHsgZHJvcFdpa2lsaW5rcyB9IGZyb20gXCIuLi8uLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcbmltcG9ydCB7IE1vZGlmeUhpZXJJdGVtTW9kYWwgfSBmcm9tIFwiLi9Nb2RpZnlIaWVySXRlbU1vZGFsXCI7XHJcblxyXG5pbnRlcmZhY2UgSE5JdGVtIHtcclxuICBkZXB0aDogbnVtYmVyO1xyXG4gIGxpbmU6IHN0cmluZztcclxuICBsaW5lTm86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEhpZXJhcmNoeU5vdGVNYW5pcHVsYXRvciBleHRlbmRzIEZ1enp5U3VnZ2VzdE1vZGFsPEhOSXRlbT4ge1xyXG4gIHBsdWdpbjogQkNQbHVnaW47XHJcbiAgc2V0dGluZ3M6IEJDU2V0dGluZ3M7XHJcbiAgaGllck5vdGVOYW1lOiBzdHJpbmc7XHJcbiAgbGluZXM6IHN0cmluZ1tdO1xyXG4gIGxpc3RJdGVtczogTGlzdEl0ZW1DYWNoZVtdO1xyXG4gIGZpbGU6IFRGaWxlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwbHVnaW46IEJDUGx1Z2luLCBoaWVyTm90ZU5hbWU6IHN0cmluZykge1xyXG4gICAgc3VwZXIoYXBwKTtcclxuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xyXG4gICAgdGhpcy5zZXR0aW5ncyA9IHRoaXMucGx1Z2luLnNldHRpbmdzO1xyXG4gICAgdGhpcy5oaWVyTm90ZU5hbWUgPSBoaWVyTm90ZU5hbWU7XHJcblxyXG4gICAgY29uc3QgY2hvb3NlT3ZlcnJpZGUgPSAoZXZ0OiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgdGhpcy5jaG9vc2VyLnVzZVNlbGVjdGVkSXRlbShldnQpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5zY29wZS5yZWdpc3RlcihbXSwgXCJEZWxldGVcIiwgY2hvb3NlT3ZlcnJpZGUpO1xyXG4gICAgdGhpcy5zY29wZS5yZWdpc3RlcihbXCJTaGlmdFwiXSwgXCJBcnJvd1VwXCIsIGNob29zZU92ZXJyaWRlKTtcclxuICAgIHRoaXMuc2NvcGUucmVnaXN0ZXIoW1wiU2hpZnRcIl0sIFwiQXJyb3dSaWdodFwiLCBjaG9vc2VPdmVycmlkZSk7XHJcbiAgICB0aGlzLnNjb3BlLnJlZ2lzdGVyKFtcIlNoaWZ0XCJdLCBcIkFycm93RG93blwiLCBjaG9vc2VPdmVycmlkZSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBvbk9wZW4oKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnNldFBsYWNlaG9sZGVyKFwiSE4gTWFuaXB1bGF0b3JcIik7XHJcbiAgICB0aGlzLnNldEluc3RydWN0aW9ucyhbXHJcbiAgICAgIHsgY29tbWFuZDogXCJTaGlmdCArIEVudGVyXCIsIHB1cnBvc2U6IFwiSnVtcCB0byBpdGVtXCIgfSxcclxuICAgICAgeyBjb21tYW5kOiBcIlNoaWZ0ICsgXHUyMTkxXCIsIHB1cnBvc2U6IFwiQWRkIHBhcmVudFwiIH0sXHJcbiAgICAgIHsgY29tbWFuZDogXCJTaGlmdCArIFx1MjE5MlwiLCBwdXJwb3NlOiBcIkFkZCBzaWJsaW5nXCIgfSxcclxuICAgICAgeyBjb21tYW5kOiBcIlNoaWZ0ICsgXHUyMTkzIC8gRW50ZXIgLyBDbGlja1wiLCBwdXJwb3NlOiBcIkFkZCBjaGlsZFwiIH0sXHJcbiAgICAgIHsgY29tbWFuZDogXCJEZWxldGVcIiwgcHVycG9zZTogXCJEZWxldGUgaXRlbVwiIH0sXHJcbiAgICBdKTtcclxuXHJcbiAgICB0aGlzLmZpbGUgPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdCh0aGlzLmhpZXJOb3RlTmFtZSwgXCJcIik7XHJcbiAgICBpZiAoIXRoaXMuZmlsZSkgdGhpcy5saW5lcyA9IFtdO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKHRoaXMpO1xyXG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IGFwcC52YXVsdC5jYWNoZWRSZWFkKHRoaXMuZmlsZSk7XHJcbiAgICB0aGlzLmxpbmVzID0gY29udGVudC5zcGxpdChcIlxcblwiKTtcclxuXHJcbiAgICB0aGlzLmxpc3RJdGVtcyA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpbGVDYWNoZSh0aGlzLmZpbGUpLmxpc3RJdGVtcztcclxuXHJcbiAgICBjb25zb2xlLmxvZyh0aGlzKTtcclxuICAgIHN1cGVyLm9uT3BlbigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbXMoKTogSE5JdGVtW10ge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmxpc3RJdGVtc1xyXG4gICAgICAubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaSA9IGl0ZW0ucG9zaXRpb24uc3RhcnQubGluZTtcclxuICAgICAgICByZXR1cm4geyBpLCBsaW5lOiB0aGlzLmxpbmVzW2ldIH07XHJcbiAgICAgIH0pXHJcbiAgICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBjb25zdCBzcGxpdHMgPSBpdGVtLmxpbmUuc3BsaXQoXCItIFwiKTtcclxuICAgICAgICBjb25zdCBkZXB0aCA9IHNwbGl0c1swXS5sZW5ndGg7XHJcbiAgICAgICAgY29uc3QgbGluZSA9IHNwbGl0cy5zbGljZSgxKS5qb2luKFwiLSBcIik7XHJcblxyXG4gICAgICAgIHJldHVybiB7IGRlcHRoLCBsaW5lLCBsaW5lTm86IGl0ZW0uaSB9O1xyXG4gICAgICB9KTtcclxuXHJcbiAgICBpbmZvKGl0ZW1zKTtcclxuICAgIHJldHVybiBpdGVtcztcclxuICB9XHJcblxyXG4gIGdldEl0ZW1UZXh0KGl0ZW06IEhOSXRlbSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7XCIgXCIucmVwZWF0KGl0ZW0uZGVwdGgpfS0gJHtkcm9wV2lraWxpbmtzKGl0ZW0ubGluZSl9YDtcclxuICB9XHJcblxyXG4gIHJlbmRlclN1Z2dlc3Rpb24oaXRlbTogRnV6enlNYXRjaDxITkl0ZW0+LCBlbDogSFRNTEVsZW1lbnQpIHtcclxuICAgIHN1cGVyLnJlbmRlclN1Z2dlc3Rpb24oaXRlbSwgZWwpO1xyXG4gICAgZWwuaW5uZXJUZXh0ID0gYCR7XCIgXCIucmVwZWF0KGl0ZW0uaXRlbS5kZXB0aCl9LSAke2Ryb3BXaWtpbGlua3MoXHJcbiAgICAgIGl0ZW0uaXRlbS5saW5lXHJcbiAgICApfWA7XHJcbiAgfVxyXG5cclxuICBhc3luYyBkZWxldGVJdGVtKGl0ZW06IEhOSXRlbSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgdGhpcy5saW5lcy5zcGxpY2UoaXRlbS5saW5lTm8sIDEpO1xyXG4gICAgICB0aGlzLmxpc3RJdGVtcy5zcGxpY2UoaXRlbS5saW5lTm8sIDEpO1xyXG4gICAgICBhd2FpdCBhcHAudmF1bHQubW9kaWZ5KHRoaXMuZmlsZSwgdGhpcy5saW5lcy5qb2luKFwiXFxuXCIpKTtcclxuICAgICAgbmV3IE5vdGljZShcIkl0ZW0gZGVsZXRlZCBTdWNjZXNmdWxseVwiKTtcclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICBlcnJvcihlcnIpO1xyXG4gICAgICBuZXcgTm90aWNlKFwiQW4gZXJyb3Igb2NjdXJlZC4gUGxlYXNlIGNoZWNrIHRoZSBjb25zb2xlXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaG9vc2VJdGVtKGl0ZW06IEhOSXRlbSwgZXZ0OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKGV2dCBpbnN0YW5jZW9mIEtleWJvYXJkRXZlbnQgJiYgZXZ0LmtleSA9PT0gXCJEZWxldGVcIikge1xyXG4gICAgICB0aGlzLmRlbGV0ZUl0ZW0oaXRlbSk7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICBldnQgaW5zdGFuY2VvZiBLZXlib2FyZEV2ZW50ICYmXHJcbiAgICAgIGV2dC5rZXkgPT0gXCJFbnRlclwiICYmXHJcbiAgICAgIGV2dC5zaGlmdEtleVxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnN0IHZpZXcgPSBhcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KTtcclxuICAgICAgY29uc3QgeyBlZGl0b3IgfSA9IHZpZXcgPz8ge307XHJcbiAgICAgIGlmICghZWRpdG9yKSByZXR1cm47XHJcbiAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICB2aWV3LmxlYWYub3BlbkZpbGUodGhpcy5maWxlLCB7IGFjdGl2ZTogdHJ1ZSwgbW9kZTogXCJzb3VyY2VcIiB9KTtcclxuICAgICAgZWRpdG9yLnNldEN1cnNvcih7IGxpbmU6IGl0ZW0ubGluZU5vLCBjaDogaXRlbS5kZXB0aCArIDIgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGV2dCBpbnN0YW5jZW9mIEtleWJvYXJkRXZlbnQgfHwgZXZ0IGluc3RhbmNlb2YgTW91c2VFdmVudCkge1xyXG4gICAgICBsZXQgcmVsOiBcInVwXCIgfCBcImRvd25cIiB8IFwic2FtZVwiO1xyXG4gICAgICBpZiAoZXZ0IGluc3RhbmNlb2YgTW91c2VFdmVudCAmJiBldnQudHlwZSA9PSBcImNsaWNrXCIpIHJlbCA9IFwiZG93blwiO1xyXG4gICAgICBpZiAoZXZ0IGluc3RhbmNlb2YgS2V5Ym9hcmRFdmVudCkgaWYgKGV2dC5rZXkgPT09IFwiRW50ZXJcIikgcmVsID0gXCJkb3duXCI7XHJcbiAgICAgIGlmIChldnQgaW5zdGFuY2VvZiBLZXlib2FyZEV2ZW50ICYmIGV2dC5zaGlmdEtleSkge1xyXG4gICAgICAgIGlmIChldnQua2V5ID09PSBcIkFycm93VXBcIikgcmVsID0gXCJ1cFwiO1xyXG4gICAgICAgIGlmIChldnQua2V5ID09PSBcIkFycm93RG93blwiKSByZWwgPSBcImRvd25cIjtcclxuICAgICAgICBpZiAoZXZ0LmtleSA9PT0gXCJBcnJvd1JpZ2h0XCIpIHJlbCA9IFwic2FtZVwiO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBuZXcgTW9kaWZ5SGllckl0ZW1Nb2RhbChcclxuICAgICAgICB0aGlzLnBsdWdpbixcclxuICAgICAgICBpdGVtLFxyXG4gICAgICAgIHRoaXMuZmlsZSxcclxuICAgICAgICByZWxcclxuICAgICAgKS5vcGVuKCk7XHJcbiAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwgImltcG9ydCB7IE1vZGFsLCBURmlsZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgTW9kaWZ5SE5JdGVtQ29tcCBmcm9tIFwiLi4vLi4vQ29tcG9uZW50cy9Nb2RpZnlITkl0ZW1Db21wLnN2ZWx0ZVwiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vLi4vbWFpblwiO1xyXG5cclxuaW50ZXJmYWNlIEhOSXRlbSB7XHJcbiAgZGVwdGg6IG51bWJlcjtcclxuICBsaW5lOiBzdHJpbmc7XHJcbiAgbGluZU5vOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNb2RpZnlIaWVySXRlbU1vZGFsIGV4dGVuZHMgTW9kYWwge1xyXG4gIG1vdW50OiBNb2RpZnlITkl0ZW1Db21wO1xyXG4gIHBsdWdpbjogQkNQbHVnaW47XHJcbiAgbW9kYWw6IE1vZGlmeUhpZXJJdGVtTW9kYWw7XHJcbiAgaG5JdGVtOiBITkl0ZW07XHJcbiAgZmlsZTogVEZpbGU7XHJcbiAgcmVsOiBcInVwXCIgfCBcInNhbWVcIiB8IFwiZG93blwiO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgICBobkl0ZW06IEhOSXRlbSxcclxuICAgIGZpbGU6IFRGaWxlLFxyXG4gICAgcmVsOiBcInVwXCIgfCBcInNhbWVcIiB8IFwiZG93blwiXHJcbiAgKSB7XHJcbiAgICBzdXBlcihhcHApO1xyXG4gICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XHJcbiAgICB0aGlzLm1vZGFsID0gdGhpcztcclxuICAgIHRoaXMuaG5JdGVtID0gaG5JdGVtO1xyXG4gICAgdGhpcy5maWxlID0gZmlsZTtcclxuICAgIHRoaXMucmVsID0gcmVsO1xyXG4gIH1cclxuXHJcbiAgb25PcGVuKCkge1xyXG4gICAgY29uc3QgeyBjb250ZW50RWwgfSA9IHRoaXM7XHJcbiAgICBjb250ZW50RWwuZW1wdHkoKTtcclxuXHJcbiAgICB0aGlzLm1vdW50ID0gbmV3IE1vZGlmeUhOSXRlbUNvbXAoe1xyXG4gICAgICB0YXJnZXQ6IGNvbnRlbnRFbCxcclxuICAgICAgcHJvcHM6IHtcclxuICAgICAgICBtb2RhbDogdGhpcyxcclxuICAgICAgICBzZXR0aW5nczogdGhpcy5wbHVnaW4uc2V0dGluZ3MsXHJcbiAgICAgICAgaG5JdGVtOiB0aGlzLmhuSXRlbSxcclxuICAgICAgICBmaWxlOiB0aGlzLmZpbGUsXHJcbiAgICAgICAgcmVsOiB0aGlzLnJlbCxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DbG9zZSgpIHtcclxuICAgIHRoaXMubW91bnQuJGRlc3Ryb3koKTtcclxuICAgIHRoaXMuY29udGVudEVsLmVtcHR5KCk7XHJcbiAgfVxyXG59XHJcbiIsIG51bGwsICI8c2NyaXB0IGxhbmc9XCJ0c1wiPlxyXG4gIGltcG9ydCB7IGVycm9yIH0gZnJvbSBcImNvbnNvbGVcIjtcclxuICBpbXBvcnQgeyBOb3RpY2UsIFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbiAgaW1wb3J0IHR5cGUgeyBNb2RpZnlIaWVySXRlbU1vZGFsIH0gZnJvbSBcIi4uL0FsdGVybmF0aXZlSGllcmFyY2hpZXMvSGllcmFyY2h5Tm90ZXMvTW9kaWZ5SGllckl0ZW1Nb2RhbFwiO1xyXG4gIGltcG9ydCB7IEFSUk9XX0RJUkVDVElPTlMgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbiAgaW1wb3J0IHR5cGUgeyBCQ1NldHRpbmdzIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuICBpbXBvcnQgeyBkcm9wV2lraWxpbmtzLCBtYWtlV2lraSB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG4gIGV4cG9ydCBsZXQgbW9kYWw6IE1vZGlmeUhpZXJJdGVtTW9kYWw7XHJcbiAgZXhwb3J0IGxldCBzZXR0aW5nczogQkNTZXR0aW5ncztcclxuICBleHBvcnQgbGV0IGhuSXRlbTogSE5JdGVtO1xyXG4gIGV4cG9ydCBsZXQgZmlsZTogVEZpbGU7XHJcbiAgZXhwb3J0IGxldCByZWw6IFwidXBcIiB8IFwic2FtZVwiIHwgXCJkb3duXCI7XHJcblxyXG4gIGludGVyZmFjZSBITkl0ZW0ge1xyXG4gICAgZGVwdGg6IG51bWJlcjtcclxuICAgIGxpbmU6IHN0cmluZztcclxuICAgIGxpbmVObzogbnVtYmVyO1xyXG4gIH1cclxuICBsZXQgaW5wdXRFbDogSFRNTElucHV0RWxlbWVudDtcclxuXHJcbiAgLy9AdHMtaWdub3JlXHJcbiAgbGV0IG5ld0l0ZW0gPSBhcHAud29ya3NwYWNlLmFjdGl2ZUxlYWYudmlldy5maWxlLmJhc2VuYW1lO1xyXG5cclxuICBjb25zdCBidWlsZE5ld0l0ZW0gPSAoXHJcbiAgICBuZXdJdGVtOiBzdHJpbmcsXHJcbiAgICBkZXB0aCA9IGhuSXRlbS5kZXB0aCxcclxuICAgIHByZXZpZXcgPSBmYWxzZVxyXG4gICkgPT5cclxuICAgIGAke1wiIFwiLnJlcGVhdChNYXRoLnJvdW5kKGRlcHRoIC8gKHByZXZpZXcgPyAyIDogMSkpKX0tICR7XHJcbiAgICAgIHByZXZpZXcgPyBuZXdJdGVtIHx8IFwiPEVtcHR5PlwiIDogbWFrZVdpa2kobmV3SXRlbSlcclxuICAgIH1gO1xyXG5cclxuICAvLyBvbk1vdW50KGlucHV0RWwuZm9jdXMpO1xyXG48L3NjcmlwdD5cclxuXHJcbjxoNT5BZGQgYW4ge0FSUk9XX0RJUkVDVElPTlNbcmVsXX0gdG8ge2Ryb3BXaWtpbGlua3MoaG5JdGVtLmxpbmUpfTwvaDU+XHJcbjxkaXY+XHJcbiAgeyNpZiByZWwgPT09IFwidXBcIn1cclxuICAgIHsjaWYgaG5JdGVtLmRlcHRoID09PSAwfVxyXG4gICAgICA8ZGl2PkNhbid0IGFkZCBwYXJlbnQgdG8gdG9wIGxldmVsIGl0ZW0sIGNob29zZSBhbm90aGVyIGRpcmVjdGlvbjwvZGl2PlxyXG4gICAgezplbHNlfVxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxwcmU+XHJcbiAgICAgICAgICB7YnVpbGROZXdJdGVtKG5ld0l0ZW0sIGhuSXRlbS5kZXB0aCAtIDQsIHRydWUpfVxyXG4gICAgICAgIDwvcHJlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIHsvaWZ9XHJcbiAgey9pZn1cclxuICA8ZGl2PlxyXG4gICAgPHByZT5cclxuICAgICAgICA8c3Ryb25nXHJcbiAgICAgICAgPntidWlsZE5ld0l0ZW0oZHJvcFdpa2lsaW5rcyhobkl0ZW0ubGluZSksIGhuSXRlbS5kZXB0aCwgdHJ1ZSl9PC9zdHJvbmdcclxuICAgICAgPlxyXG4gICAgPC9wcmU+XHJcbiAgPC9kaXY+XHJcbiAgeyNpZiByZWwgPT09IFwic2FtZVwifVxyXG4gICAgPGRpdj5cclxuICAgICAgPHByZT5cclxuICAgICAgICB7YnVpbGROZXdJdGVtKG5ld0l0ZW0sIGhuSXRlbS5kZXB0aCwgdHJ1ZSl9XHJcbiAgICA8L3ByZT5cclxuICAgIDwvZGl2PlxyXG4gIHs6ZWxzZSBpZiByZWwgPT09IFwiZG93blwifVxyXG4gICAgPGRpdj5cclxuICAgICAgPHByZT5cclxuICAgICAgICB7YnVpbGROZXdJdGVtKG5ld0l0ZW0sIGhuSXRlbS5kZXB0aCArIDQsIHRydWUpfVxyXG4gICAgPC9wcmU+XHJcbiAgICA8L2Rpdj5cclxuICB7L2lmfVxyXG5cclxuICA8IS0tIHN2ZWx0ZS1pZ25vcmUgYTExeS1uby1vbmNoYW5nZSAtLT5cclxuICA8c2VsZWN0IGNsYXNzPVwiZHJvcGRvd25cIiB3aWR0aD1cIjFcIiBiaW5kOnZhbHVlPXtyZWx9PlxyXG4gICAgPG9wdGlvbiB2YWx1ZT1cInVwXCI+dXA8L29wdGlvbj5cclxuICAgIDxvcHRpb24gdmFsdWU9XCJzYW1lXCI+c2FtZTwvb3B0aW9uPlxyXG4gICAgPG9wdGlvbiB2YWx1ZT1cImRvd25cIj5kb3duPC9vcHRpb24+XHJcbiAgPC9zZWxlY3Q+XHJcblxyXG4gIDxpbnB1dFxyXG4gICAgdHlwZT1cInRleHRcIlxyXG4gICAgcGxhY2Vob2xkZXI9XCJOZXcgaXRlbVwiXHJcbiAgICBiaW5kOnRoaXM9e2lucHV0RWx9XHJcbiAgICBiaW5kOnZhbHVlPXtuZXdJdGVtfVxyXG4gIC8+XHJcblxyXG4gIDxidXR0b25cclxuICAgIG9uOmNsaWNrPXthc3luYyAoZSkgPT4ge1xyXG4gICAgICBpZiAocmVsID09PSBcInVwXCIgJiYgaG5JdGVtLmRlcHRoID09PSAwKSB7XHJcbiAgICAgICAgbmV3IE5vdGljZShcclxuICAgICAgICAgIFwiQ2FuJ3QgYWRkIHBhcmVudCB0byB0b3AgbGV2ZWwgaXRlbSwgY2hvb3NlIGFub3RoZXIgZGlyZWN0aW9uXCJcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IGFwcC52YXVsdC5yZWFkKGZpbGUpO1xyXG4gICAgICAgICAgY29uc3QgbGluZXMgPSBjb250ZW50LnNwbGl0KFwiXFxuXCIpO1xyXG4gICAgICAgICAgY29uc3QgbGluZU5vID0gcmVsID09PSBcInVwXCIgPyBobkl0ZW0ubGluZU5vIDogaG5JdGVtLmxpbmVObyArIDE7XHJcblxyXG4gICAgICAgICAgY29uc3QgZGVwdGggPVxyXG4gICAgICAgICAgICByZWwgPT09IFwidXBcIlxyXG4gICAgICAgICAgICAgID8gaG5JdGVtLmRlcHRoIC0gNFxyXG4gICAgICAgICAgICAgIDogcmVsID09PSBcImRvd25cIlxyXG4gICAgICAgICAgICAgID8gaG5JdGVtLmRlcHRoICsgNFxyXG4gICAgICAgICAgICAgIDogaG5JdGVtLmRlcHRoO1xyXG5cclxuICAgICAgICAgIGxpbmVzLnNwbGljZShsaW5lTm8sIDAsIGJ1aWxkTmV3SXRlbShuZXdJdGVtLCBkZXB0aCkpO1xyXG4gICAgICAgICAgYXdhaXQgYXBwLnZhdWx0Lm1vZGlmeShmaWxlLCBsaW5lcy5qb2luKFwiXFxuXCIpKTtcclxuICAgICAgICAgIG1vZGFsLmNsb3NlKCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICBlcnJvcihlcnIpO1xyXG4gICAgICAgICAgbmV3IE5vdGljZShcIkFuIGVycm9yIG9jY3VyZWQsIHBsZWFzZSBjaGVjayB0aGUgY29uc29sZVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH19PkFkZDwvYnV0dG9uXHJcbiAgPlxyXG48L2Rpdj5cclxuXHJcbjxzdHlsZT5cclxuICBwcmUge1xyXG4gICAgZGlzcGxheTogaW5saW5lO1xyXG4gIH1cclxuPC9zdHlsZT5cclxuIiwgImltcG9ydCB7IGluZm8gfSBmcm9tIFwibG9nbGV2ZWxcIjtcclxuaW1wb3J0IHsgTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dCwgTm90aWNlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IGdldERWQXBpIH0gZnJvbSBcIi4vVXRpbHMvT2JzaWRpYW5VdGlsc1wiO1xyXG5pbXBvcnQgeyBjcmVhdGVJbmRleCwgaW5kZXhUb0xpbmVQYWlycyB9IGZyb20gXCIuL0NvbW1hbmRzL0NyZWF0ZUluZGV4XCI7XHJcbmltcG9ydCBDQlRyZWUgZnJvbSBcIi4vQ29tcG9uZW50cy9DQlRyZWUuc3ZlbHRlXCI7XHJcbmltcG9ydCB7IENPREVCTE9DS19GSUVMRFMsIENPREVCTE9DS19UWVBFUywgRElSRUNUSU9OUyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSB7IENvZGVibG9ja0ZpZWxkcywgUGFyc2VkQ29kZWJsb2NrIH0gZnJvbSBcIi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi9tYWluXCI7XHJcbmltcG9ydCB7IGRyb3BGb2xkZXIsIHNwbGl0QW5kVHJpbSB9IGZyb20gXCIuL1V0aWxzL2dlbmVyYWxVdGlsc1wiO1xyXG5pbXBvcnQge1xyXG4gIGRmc0FsbFBhdGhzLFxyXG4gIGdldFJlZmxleGl2ZUNsb3N1cmUsXHJcbiAgZ2V0U3ViRm9yRmllbGRzLFxyXG4gIGdldFN1YkluRGlycyxcclxufSBmcm9tIFwiLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcbmltcG9ydCB7IGdldEZpZWxkSW5mbywgZ2V0RmllbGRzLCBnZXRPcHBEaXIgfSBmcm9tIFwiLi9VdGlscy9IaWVyVXRpbHNcIjtcclxuaW1wb3J0IHsgY3JlYXRlSnVnZ2wgfSBmcm9tIFwiLi9WaXN1YWxpc2F0aW9ucy9KdWdnbFwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldENvZGVibG9ja0NCKHBsdWdpbjogQkNQbHVnaW4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzLCBkYiB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgdXNlckhpZXJzLCBjcmVhdGVJbmRleEluZGVudCB9ID0gc2V0dGluZ3M7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICBzb3VyY2U6IHN0cmluZyxcclxuICAgIGVsOiBIVE1MRWxlbWVudCxcclxuICAgIGN0eDogTWFya2Rvd25Qb3N0UHJvY2Vzc29yQ29udGV4dFxyXG4gICkgPT4ge1xyXG4gICAgZGIuc3RhcnQyRyhcIkNvZGVibG9ja1wiKTtcclxuICAgIGNvbnN0IHBhcnNlZFNvdXJjZSA9IHBhcnNlQ29kZUJsb2NrU291cmNlKHNvdXJjZSk7XHJcbiAgICBjb25zdCBlcnIgPSBjb2RlYmxvY2tFcnJvcihwbHVnaW4sIHBhcnNlZFNvdXJjZSk7XHJcblxyXG4gICAgaWYgKGVyciAhPT0gXCJcIikge1xyXG4gICAgICBlbC5pbm5lckhUTUwgPSBlcnI7XHJcbiAgICAgIGRiLmVuZDJHKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgbWluID0gMCxcclxuICAgICAgbWF4ID0gSW5maW5pdHk7XHJcbiAgICBsZXQgeyBkZXB0aCwgZGlyLCBmaWVsZHMsIGZyb20sIGltcGxpZWQsIGZsYXQgfSA9IHBhcnNlZFNvdXJjZTtcclxuICAgIGlmIChkZXB0aCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IG1pbk51bSA9IHBhcnNlSW50KGRlcHRoWzBdKTtcclxuICAgICAgaWYgKCFpc05hTihtaW5OdW0pKSBtaW4gPSBtaW5OdW07XHJcbiAgICAgIGNvbnN0IG1heE51bSA9IHBhcnNlSW50KGRlcHRoWzFdKTtcclxuICAgICAgaWYgKCFpc05hTihtYXhOdW0pKSBtYXggPSBtYXhOdW07XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNvbnN0IGN1cnJGaWxlID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoXHJcbiAgICAgIGN0eC5zb3VyY2VQYXRoLFxyXG4gICAgICBcIlwiXHJcbiAgICApO1xyXG4gICAgY29uc3QgeyBiYXNlbmFtZSB9ID0gY3VyckZpbGU7XHJcblxyXG4gICAgbGV0IGZyb21zID0gdW5kZWZpbmVkO1xyXG4gICAgaWYgKGZyb20gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IGFwaSA9IGdldERWQXBpKHBsdWdpbik7XHJcbiAgICAgICAgaWYgKGFwaSkge1xyXG4gICAgICAgICAgY29uc3QgcGFnZXMgPSBhcGkucGFnZVBhdGhzKGZyb20pPy52YWx1ZXM7XHJcbiAgICAgICAgICBmcm9tcyA9IHBhZ2VzLm1hcChkcm9wRm9sZGVyKTtcclxuICAgICAgICB9IGVsc2UgbmV3IE5vdGljZShcIkRhdGF2aWV3IG11c3QgYmUgZW5hYmxlZCBmb3IgYGZyb21gIHRvIHdvcmsuXCIpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgbmV3IE5vdGljZShgVGhlIHF1ZXJ5IFwiJHtmcm9tfVwiIGZhaWxlZC5gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9wcERpciA9IGdldE9wcERpcihkaXIpO1xyXG4gICAgY29uc3Qgc3ViID1cclxuICAgICAgaW1wbGllZCA9PT0gZmFsc2VcclxuICAgICAgICA/IGdldFN1YkluRGlycyhwbHVnaW4ubWFpbkcsIGRpcilcclxuICAgICAgICA6IGdldFN1YkluRGlycyhwbHVnaW4ubWFpbkcsIGRpciwgb3BwRGlyKTtcclxuICAgIGNvbnN0IGNsb3NlZCA9IGdldFJlZmxleGl2ZUNsb3N1cmUoc3ViLCB1c2VySGllcnMpO1xyXG5cclxuICAgIGNvbnN0IHN1YkZpZWxkcyA9IGZpZWxkcyA/PyBnZXRGaWVsZHModXNlckhpZXJzKTtcclxuICAgIGNvbnN0IHN1YkNsb3NlZCA9IGdldFN1YkZvckZpZWxkcyhnZXRTdWJJbkRpcnMoY2xvc2VkLCBkaXIpLCBzdWJGaWVsZHMpO1xyXG5cclxuXHJcbiAgICBjb25zdCBhbGxQYXRocyA9IGRmc0FsbFBhdGhzKHN1YkNsb3NlZCwgYmFzZW5hbWUpO1xyXG4gICAgY29uc3QgaW5kZXggPSBjcmVhdGVJbmRleChhbGxQYXRocywgZmFsc2UsIGNyZWF0ZUluZGV4SW5kZW50KTtcclxuICAgIGluZm8oeyBhbGxQYXRocywgaW5kZXggfSk7XHJcblxyXG4gICAgY29uc3QgbGluZXMgPSBpbmRleFRvTGluZVBhaXJzKGluZGV4LCBmbGF0KTtcclxuXHJcbiAgICBzd2l0Y2ggKHBhcnNlZFNvdXJjZS50eXBlKSB7XHJcbiAgICAgIGNhc2UgXCJ0cmVlXCI6XHJcbiAgICAgICAgbmV3IENCVHJlZSh7XHJcbiAgICAgICAgICB0YXJnZXQ6IGVsLFxyXG4gICAgICAgICAgcHJvcHM6IHtcclxuICAgICAgICAgICAgcGx1Z2luLFxyXG4gICAgICAgICAgICBlbCxcclxuICAgICAgICAgICAgbWluLFxyXG4gICAgICAgICAgICBtYXgsXHJcbiAgICAgICAgICAgIGxpbmVzLFxyXG4gICAgICAgICAgICBmcm9tcyxcclxuICAgICAgICAgICAgYmFzZW5hbWUsXHJcbiAgICAgICAgICAgIHBhcnNlZFNvdXJjZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJqdWdnbFwiOlxyXG4gICAgICAgIGNyZWF0ZWRKdWdnbENCKFxyXG4gICAgICAgICAgcGx1Z2luLFxyXG4gICAgICAgICAgZWwsXHJcbiAgICAgICAgICBwYXJzZWRTb3VyY2UsXHJcbiAgICAgICAgICBsaW5lcyxcclxuICAgICAgICAgIGZyb21zLFxyXG4gICAgICAgICAgYmFzZW5hbWUsXHJcbiAgICAgICAgICBtaW4sXHJcbiAgICAgICAgICBtYXhcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIGRiLmVuZDJHKCk7XHJcbiAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFBhcnNlIGEgc3RyaW5nIGFzIGEgYm9vbGVhbiB2YWx1ZS4gSWYgbm90IFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiwgcmV0dXJuIGB2YWx1ZWAuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIHN0cmluZ1xyXG4gKiBAcmV0dXJucyB7c3RyaW5nIHwgYm9vbGVhbn1cclxuICovXHJcbmNvbnN0IHBhcnNlQXNCb29sID0gKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgfCBib29sZWFuID0+XHJcbiAgdmFsdWUgPT09IFwidHJ1ZVwiID8gdHJ1ZSA6IHZhbHVlID09PSBcImZhbHNlXCIgPyBmYWxzZSA6IHZhbHVlO1xyXG5cclxuZnVuY3Rpb24gcGFyc2VDb2RlQmxvY2tTb3VyY2Uoc291cmNlOiBzdHJpbmcpOiBQYXJzZWRDb2RlYmxvY2sge1xyXG4gIGNvbnN0IGxpbmVzID0gc291cmNlLnNwbGl0KFwiXFxuXCIpO1xyXG4gIGNvbnN0IGdldFZhbHVlID0gKHR5cGU6IHN0cmluZykgPT5cclxuICAgIGxpbmVzXHJcbiAgICAgIC5maW5kKChsKSA9PiBsLnN0YXJ0c1dpdGgoYCR7dHlwZX06YCkpXHJcbiAgICAgID8uc3BsaXQoXCI6XCIpPy5bMV1cclxuICAgICAgPy50cmltKCk7XHJcblxyXG4gIGNvbnN0IHJlc3VsdHM6IHsgW2ZpZWxkIGluIENvZGVibG9ja0ZpZWxkc106IHN0cmluZyB8IGJvb2xlYW4gfCBzdHJpbmdbXSB9ID1cclxuICAgIHt9O1xyXG5cclxuICBDT0RFQkxPQ0tfRklFTERTLmZvckVhY2goKGZpZWxkKSA9PiB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGdldFZhbHVlKGZpZWxkKTtcclxuICAgIHJlc3VsdHNbZmllbGRdID0gcGFyc2VBc0Jvb2wodmFsdWUpO1xyXG4gIH0pO1xyXG5cclxuICByZXN1bHRzLmZpZWxkcyA9IHJlc3VsdHMuZmllbGRzXHJcbiAgICA/IHNwbGl0QW5kVHJpbShyZXN1bHRzLmZpZWxkcyBhcyBzdHJpbmcpXHJcbiAgICA6IHVuZGVmaW5lZDtcclxuXHJcbiAgaWYgKHJlc3VsdHMuZGVwdGgpIHtcclxuICAgIGNvbnN0IG1hdGNoID0gKHJlc3VsdHMuZGVwdGggYXMgc3RyaW5nKS5tYXRjaCgvKFxcZCopLT8oXFxkKikvKTtcclxuICAgIHJlc3VsdHMuZGVwdGggPSBbbWF0Y2hbMV0sIG1hdGNoWzJdXTtcclxuICB9XHJcblxyXG4gIHJldHVybiByZXN1bHRzIGFzIHVua25vd24gYXMgUGFyc2VkQ29kZWJsb2NrO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjb2RlYmxvY2tFcnJvcihwbHVnaW46IEJDUGx1Z2luLCBwYXJzZWRTb3VyY2U6IFBhcnNlZENvZGVibG9jaykge1xyXG4gIGNvbnN0IHsgZGlyLCBmaWVsZHMsIHR5cGUsIHRpdGxlLCBkZXB0aCwgZmxhdCwgY29udGVudCwgZnJvbSwgaW1wbGllZCB9ID1cclxuICAgIHBhcnNlZFNvdXJjZTtcclxuICBjb25zdCB7IHVzZXJIaWVycyB9ID0gcGx1Z2luLnNldHRpbmdzO1xyXG4gIGxldCBlcnIgPSBcIlwiO1xyXG5cclxuICBpZiAoIUNPREVCTE9DS19UWVBFUy5pbmNsdWRlcyh0eXBlKSlcclxuICAgIGVyciArPSBgPGNvZGU+dHlwZTogJHt0eXBlfTwvY29kZT4gaXMgbm90IGEgdmFsaWQgdHlwZS4gSXQgbXVzdCBiZSBvbmUgb2Y6ICR7Q09ERUJMT0NLX1RZUEVTLm1hcChcclxuICAgICAgKHR5cGUpID0+IGA8Y29kZT4ke3R5cGV9PC9jb2RlPmBcclxuICAgICkuam9pbihcIiwgXCIpfS48L2JyPmA7XHJcblxyXG4gIGNvbnN0IHZhbGlkRGlyID0gRElSRUNUSU9OUy5pbmNsdWRlcyhkaXIpO1xyXG4gIGlmICghdmFsaWREaXIpXHJcbiAgICBlcnIgKz0gYDxjb2RlPmRpcjogJHtkaXJ9PC9jb2RlPiBpcyBub3QgYSB2YWxpZCBkaXJlY3Rpb24uPC9icj5gO1xyXG5cclxuICBjb25zdCBhbGxGaWVsZHMgPSBnZXRGaWVsZHModXNlckhpZXJzKTtcclxuICBbZmllbGRzXS5mbGF0KCk/LmZvckVhY2goKGYpID0+IHtcclxuICAgIGlmIChmICE9PSB1bmRlZmluZWQgJiYgIWFsbEZpZWxkcy5pbmNsdWRlcyhmKSlcclxuICAgICAgZXJyICs9IGA8Y29kZT5maWVsZHM6ICR7Zn08L2NvZGU+IGlzIG5vdCBhIGZpZWxkIGluIHlvdXIgaGllcmFyY2hpZXMuPC9icj5gO1xyXG4gIH0pO1xyXG5cclxuICBpZiAodGl0bGUgIT09IHVuZGVmaW5lZCAmJiB0aXRsZSAhPT0gZmFsc2UpXHJcbiAgICBlcnIgKz0gYDxjb2RlPnRpdGxlOiAke3RpdGxlfTwvY29kZT4gaXMgbm90IGEgdmFsaWQgdmFsdWUuIEl0IGhhcyB0byBiZSA8Y29kZT5mYWxzZTwvY29kZT4sIG9yIGxlYXZlIHRoZSBlbnRpcmUgbGluZSBvdXQuPC9icj5gO1xyXG5cclxuICBpZiAoZGVwdGggIT09IHVuZGVmaW5lZCAmJiBkZXB0aC5ldmVyeSgobnVtKSA9PiBpc05hTihwYXJzZUludChudW0pKSkpXHJcbiAgICBlcnIgKz0gYDxjb2RlPmRlcHRoOiAke2RlcHRofTwvY29kZT4gaXMgbm90IGEgdmFsaWQgdmFsdWUuIEl0IGhhcyB0byBiZSBhIG51bWJlci48L2JyPmA7XHJcblxyXG4gIGlmIChmbGF0ICE9PSB1bmRlZmluZWQgJiYgZmxhdCAhPT0gdHJ1ZSlcclxuICAgIGVyciArPSBgPGNvZGU+ZmxhdDogJHtmbGF0fTwvY29kZT4gaXMgbm90IGEgdmFsaWQgdmFsdWUuIEl0IGhhcyB0byBiZSA8Y29kZT50cnVlPC9jb2RlPiwgb3IgbGVhdmUgdGhlIGVudGlyZSBsaW5lIG91dC48L2JyPmA7XHJcblxyXG4gIGlmIChjb250ZW50ICE9PSB1bmRlZmluZWQgJiYgY29udGVudCAhPT0gXCJvcGVuXCIgJiYgY29udGVudCAhPT0gXCJjbG9zZWRcIilcclxuICAgIGVyciArPSBgPGNvZGU+Y29udGVudDogJHtjb250ZW50fTwvY29kZT4gaXMgbm90IGEgdmFsaWQgdmFsdWUuIEl0IGhhcyB0byBiZSA8Y29kZT5vcGVuPC9jb2RlPiBvciA8Y29kZT5jbG9zZWQ8L2NvZGU+LCBvciBsZWF2ZSB0aGUgZW50aXJlIGxpbmUgb3V0LjwvYnI+YDtcclxuXHJcbiAgaWYgKFxyXG4gICAgZnJvbSAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAhYXBwLnBsdWdpbnMuZW5hYmxlZFBsdWdpbnMuaGFzKFwiZGF0YXZpZXdcIilcclxuICApIHtcclxuICAgIGVyciArPSBgRGF0YXZpZXcgbXVzdCBiZSBlbmFibGVkIHRvIHVzZSA8Y29kZT5mcm9tPC9jb2RlPi48L2JyPmA7XHJcbiAgfVxyXG5cclxuICBpZiAoaW1wbGllZCAhPT0gdW5kZWZpbmVkICYmIGltcGxpZWQgIT09IGZhbHNlKVxyXG4gICAgZXJyICs9IGA8Y29kZT5pbXBsaWVkOiAke2ltcGxpZWR9PC9jb2RlPiBpcyBub3QgYSB2YWxpZCB2YWx1ZS4gSXQgaGFzIHRvIGJlIDxjb2RlPmZhbHNlPC9jb2RlPiwgb3IgbGVhdmUgdGhlIGVudGlyZSBsaW5lIG91dC48L2JyPmA7XHJcblxyXG4gIHJldHVybiBlcnIgPT09IFwiXCJcclxuICAgID8gXCJcIlxyXG4gICAgOiBgJHtlcnJ9PC9icj5cclxuICAgIEEgdmFsaWQgZXhhbXBsZSB3b3VsZCBiZTpcclxuICAgIDxwcmU+PGNvZGU+XHJcbiAgICAgIHR5cGU6IHRyZWVcclxuICAgICAgZGlyOiAke3ZhbGlkRGlyID8gZGlyIDogXCJkb3duXCJ9XHJcbiAgICAgIGZpZWxkczogJHthbGxGaWVsZHNcclxuICAgICAgLm1hcCgoZikgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGYsIGRpcjogZ2V0RmllbGRJbmZvKHVzZXJIaWVycywgZikuZmllbGREaXIgfTtcclxuICAgICAgfSlcclxuICAgICAgLmZpbHRlcigoaW5mbykgPT4gaW5mby5kaXIgPT09IGRpcilcclxuICAgICAgLm1hcCgoaW5mbykgPT4gaW5mby5mKVxyXG4gICAgICAuam9pbihcIiwgXCIpIHx8IFwiY2hpbGRcIlxyXG4gICAgfVxyXG4gICAgICBkZXB0aDogM1xyXG4gICAgICA8L2NvZGU+PC9wcmU+YDtcclxufVxyXG5cclxuY29uc3QgaW5kZW50VG9EZXB0aCA9IChpbmRlbnQ6IHN0cmluZykgPT4gaW5kZW50Lmxlbmd0aCAvIDIgKyAxO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1lZXRzQ29uZGl0aW9ucyhcclxuICBpbmRlbnQ6IHN0cmluZyxcclxuICBub2RlOiBzdHJpbmcsXHJcbiAgZnJvbXM6IHN0cmluZ1tdLFxyXG4gIG1pbjogbnVtYmVyLFxyXG4gIG1heDogbnVtYmVyXHJcbikge1xyXG4gIGNvbnN0IGRlcHRoID0gaW5kZW50VG9EZXB0aChpbmRlbnQpO1xyXG4gIHJldHVybiAoXHJcbiAgICBkZXB0aCA+PSBtaW4gJiZcclxuICAgIGRlcHRoIDw9IG1heCAmJlxyXG4gICAgKGZyb21zID09PSB1bmRlZmluZWQgfHwgZnJvbXMuaW5jbHVkZXMobm9kZSkpXHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZWRKdWdnbENCKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgdGFyZ2V0OiBIVE1MRWxlbWVudCxcclxuICBhcmdzOiBQYXJzZWRDb2RlYmxvY2ssXHJcbiAgbGluZXM6IFtzdHJpbmcsIHN0cmluZ11bXSxcclxuICBmcm9tczogc3RyaW5nW10sXHJcbiAgc291cmNlOiBzdHJpbmcsXHJcbiAgbWluOiBudW1iZXIsXHJcbiAgbWF4OiBudW1iZXJcclxuKSB7XHJcbiAgY29uc3Qgbm9kZXMgPSBsaW5lc1xyXG4gICAgLmZpbHRlcigoW2luZGVudCwgbm9kZV0pID0+IG1lZXRzQ29uZGl0aW9ucyhpbmRlbnQsIG5vZGUsIGZyb21zLCBtaW4sIG1heCkpXHJcbiAgICAubWFwKChbXywgbm9kZV0pID0+IG5vZGUgKyBcIi5tZFwiKTtcclxuICBpZiAobWluIDw9IDApIG5vZGVzLnB1c2goc291cmNlICsgXCIubWRcIik7XHJcblxyXG4gIGNyZWF0ZUp1Z2dsKHBsdWdpbiwgdGFyZ2V0LCBub2RlcywgYXJncyk7XHJcbn1cclxuIiwgbnVsbCwgIjxzY3JpcHQgbGFuZz1cInRzXCI+XHJcbiAgaW1wb3J0IHsgTWFya2Rvd25SZW5kZXJlciB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG4gIGltcG9ydCB7IG9uTW91bnQgfSBmcm9tIFwic3ZlbHRlXCI7XHJcblxyXG4gIGV4cG9ydCBsZXQgcGF0aDogc3RyaW5nO1xyXG5cclxuICBhc3luYyBmdW5jdGlvbiBnZXRDb250ZW50KG5vdGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgZmlsZSA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KG5vdGUsIFwiXCIpO1xyXG4gICAgcmV0dXJuIGF3YWl0IGFwcC52YXVsdC5jYWNoZWRSZWFkKGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgbGV0IGVsOiBIVE1MRWxlbWVudDtcclxuICBvbk1vdW50KGFzeW5jICgpID0+IHtcclxuICAgIE1hcmtkb3duUmVuZGVyZXIucmVuZGVyTWFya2Rvd24oYXdhaXQgZ2V0Q29udGVudChwYXRoKSwgZWwsIHBhdGgsIG51bGwpO1xyXG4gIH0pO1xyXG48L3NjcmlwdD5cclxuXHJcbjxkaXYgY2xhc3M9XCJCQy1ub3RlLWNvbnRlbnRcIiBiaW5kOnRoaXM9e2VsfSAvPlxyXG5cclxuPHN0eWxlPlxyXG4gIGRpdi5CQy1ub3RlLWNvbnRlbnQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gIH1cclxuPC9zdHlsZT5cclxuIiwgbnVsbCwgIjxzY3JpcHQgbGFuZz1cInRzXCI+XHJcbiAgaW1wb3J0IHtcclxuICAgIGlzSW5WYXVsdCxcclxuICAgIG9wZW5PclN3aXRjaCxcclxuICAgIGhvdmVyUHJldmlldyxcclxuICB9IGZyb20gXCJvYnNpZGlhbi1jb21tdW5pdHktbGliL2Rpc3QvdXRpbHNcIjtcclxuICBpbXBvcnQgeyBtZWV0c0NvbmRpdGlvbnMgfSBmcm9tIFwiLi4vQ29kZWJsb2Nrc1wiO1xyXG4gIGltcG9ydCB0eXBlIHsgUGFyc2VkQ29kZWJsb2NrIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuICBpbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG4gIGltcG9ydCB7IGRyb3BEZW5kcm9uIH0gZnJvbSBcIi4uL1V0aWxzL2dlbmVyYWxVdGlsc1wiO1xyXG4gIGltcG9ydCBSZW5kZXJNYXJrZG93biBmcm9tIFwiLi9SZW5kZXJNYXJrZG93bi5zdmVsdGVcIjtcclxuXHJcbiAgZXhwb3J0IGxldCBwbHVnaW46IEJDUGx1Z2luO1xyXG4gIGV4cG9ydCBsZXQgZWw6IEhUTUxFbGVtZW50O1xyXG4gIGV4cG9ydCBsZXQgbGluZXM6IFtzdHJpbmcsIHN0cmluZ11bXTtcclxuICBleHBvcnQgbGV0IGZyb21zOiBzdHJpbmdbXTtcclxuICBleHBvcnQgbGV0IG1pbjogbnVtYmVyO1xyXG4gIGV4cG9ydCBsZXQgbWF4OiBudW1iZXI7XHJcbiAgZXhwb3J0IGxldCBiYXNlbmFtZTogc3RyaW5nO1xyXG4gIGV4cG9ydCBsZXQgcGFyc2VkU291cmNlOiBQYXJzZWRDb2RlYmxvY2s7XHJcblxyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7IHRpdGxlLCBjb250ZW50LCBkaXIgfSA9IHBhcnNlZFNvdXJjZTtcclxuXHJcbiAgY29uc3QgYWN0aXZlTGVhZlZpZXcgPSBhcHAud29ya3NwYWNlLmFjdGl2ZUxlYWYudmlldztcclxuPC9zY3JpcHQ+XHJcblxyXG57I2lmIHRpdGxlICE9PSBmYWxzZX1cclxuICA8aDM+e2Rpcn0gb2Yge2Jhc2VuYW1lfTwvaDM+XHJcbnsvaWZ9XHJcbjxkaXYgY2xhc3M9XCJCQy10cmVlXCI+XHJcbiAgeyNlYWNoIGxpbmVzIGFzIFtpbmRlbnQsIGxpbmtdfVxyXG4gICAgeyNpZiBtZWV0c0NvbmRpdGlvbnMoaW5kZW50LCBsaW5rLCBmcm9tcywgbWluLCBtYXgpfVxyXG4gICAgICB7I2lmIGNvbnRlbnQgPT09IFwib3BlblwiIHx8IGNvbnRlbnQgPT09IFwiY2xvc2VkXCJ9XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxwcmUgY2xhc3M9XCJpbmRlbnRcIj57aW5kZW50fTwvcHJlPlxyXG4gICAgICAgICAgPGRldGFpbHMgb3Blbj17Y29udGVudCA9PT0gXCJvcGVuXCJ9PlxyXG4gICAgICAgICAgICA8c3VtbWFyeT5cclxuICAgICAgICAgICAgICA8IS0tIHN2ZWx0ZS1pZ25vcmUgYTExeS1tb3VzZS1ldmVudHMtaGF2ZS1rZXktZXZlbnRzIC0tPlxyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImludGVybmFsLWxpbmtcIlxyXG4gICAgICAgICAgICAgICAgb246Y2xpY2s9e2FzeW5jIChlKSA9PiBhd2FpdCBvcGVuT3JTd2l0Y2gobGluaywgZSl9XHJcbiAgICAgICAgICAgICAgICBvbjptb3VzZW92ZXI9eyhlKSA9PiBob3ZlclByZXZpZXcoZSwgYWN0aXZlTGVhZlZpZXcsIGxpbmspfVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwhLS0gc3ZlbHRlLWlnbm9yZSBhMTF5LW1pc3NpbmctYXR0cmlidXRlIC0tPlxyXG4gICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnRlcm5hbC1saW5rIHtpc0luVmF1bHQobGluaykgPyAnJyA6ICdpcy11bnJlc29sdmVkJ31cIlxyXG4gICAgICAgICAgICAgICAgICA+e2Ryb3BEZW5kcm9uKGxpbmssIHNldHRpbmdzKX08L2FcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3VtbWFyeT5cclxuICAgICAgICAgICAgPFJlbmRlck1hcmtkb3duIHBhdGg9e2xpbmt9IC8+XHJcbiAgICAgICAgICA8L2RldGFpbHM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIHs6ZWxzZX1cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPHByZSBjbGFzcz1cImluZGVudFwiPntpbmRlbnQgKyBcIi1cIn08L3ByZT5cclxuICAgICAgICAgIDwhLS0gc3ZlbHRlLWlnbm9yZSBhMTF5LW1vdXNlLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgLS0+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICBjbGFzcz1cImludGVybmFsLWxpbmtcIlxyXG4gICAgICAgICAgICBvbjpjbGljaz17YXN5bmMgKGUpID0+IGF3YWl0IG9wZW5PclN3aXRjaChsaW5rLCBlKX1cclxuICAgICAgICAgICAgb246bW91c2VvdmVyPXsoZSkgPT4gaG92ZXJQcmV2aWV3KGUsIGFjdGl2ZUxlYWZWaWV3LCBsaW5rKX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPCEtLSBzdmVsdGUtaWdub3JlIGExMXktbWlzc2luZy1hdHRyaWJ1dGUgLS0+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwiaW50ZXJuYWwtbGluayB7aXNJblZhdWx0KGxpbmspID8gJycgOiAnaXMtdW5yZXNvbHZlZCd9XCI+XHJcbiAgICAgICAgICAgICAge2Ryb3BEZW5kcm9uKGxpbmssIHNldHRpbmdzKX1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB7L2lmfVxyXG4gICAgey9pZn1cclxuICB7L2VhY2h9XHJcbjwvZGl2PlxyXG5cclxuPHN0eWxlPlxyXG4gIC5CQy10cmVlIHtcclxuICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG4gIH1cclxuICAvKiAuQkMtdHJlZSA+IGRpdiB7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIH0gKi9cclxuICBwcmUuaW5kZW50IHtcclxuICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgcG9zaXRpb246IHRvcDtcclxuICB9XHJcbiAgZGV0YWlscyB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgfVxyXG5cclxuICAuaXMtdW5yZXNvbHZlZCB7XHJcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XHJcbiAgfVxyXG48L3N0eWxlPlxyXG4iLCAiaW1wb3J0IHsgTm90aWNlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB0eXBlIHsgRGlyZWN0aW9ucyB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IGdldFJlYWxuSW1wbGllZCB9IGZyb20gXCIuLi9VdGlscy9ncmFwaFV0aWxzXCI7XHJcbmltcG9ydCB7Z2V0Q3VyckZpbGV9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24ganVtcFRvRmlyc3REaXIocGx1Z2luOiBCQ1BsdWdpbiwgZGlyOiBEaXJlY3Rpb25zKSB7XHJcbiAgY29uc3QgeyBsaW1pdEp1bXBUb0ZpcnN0RmllbGRzIH0gPSBwbHVnaW4uc2V0dGluZ3M7XHJcbiAgY29uc3QgZmlsZSA9IGdldEN1cnJGaWxlKCk7XHJcbiAgaWYgKCFmaWxlKSB7XHJcbiAgICBuZXcgTm90aWNlKFwiWW91IG5lZWQgdG8gYmUgZm9jdXNzZWQgb24gYSBNYXJrZG93biBmaWxlXCIpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBjb25zdCB7IGJhc2VuYW1lIH0gPSBmaWxlO1xyXG5cclxuICBjb25zdCByZWFsc05JbXBsaWVkcyA9IGdldFJlYWxuSW1wbGllZChwbHVnaW4sIGJhc2VuYW1lLCBkaXIpW2Rpcl07XHJcbiAgY29uc3QgYWxsQkNzID0gWy4uLnJlYWxzTkltcGxpZWRzLnJlYWxzLCAuLi5yZWFsc05JbXBsaWVkcy5pbXBsaWVkc107XHJcbiAgaWYgKGFsbEJDcy5sZW5ndGggPT09IDApIHtcclxuICAgIG5ldyBOb3RpY2UoYE5vICR7ZGlyfSBmb3VuZGApO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgdG9Ob2RlID0gYWxsQkNzLmZpbmQoKGJjKSA9PlxyXG4gICAgbGltaXRKdW1wVG9GaXJzdEZpZWxkcy5pbmNsdWRlcyhiYy5maWVsZClcclxuICApPy50bztcclxuXHJcbiAgaWYgKCF0b05vZGUpIHtcclxuICAgIG5ldyBOb3RpY2UoXHJcbiAgICAgIGBObyBub3RlIHdhcyBmb3VuZCBpbiAke2Rpcn0gZ2l2ZW4gdGhlIGxpbWl0ZWQgZmllbGRzIGFsbG93ZWQ6ICR7bGltaXRKdW1wVG9GaXJzdEZpZWxkcy5qb2luKFxyXG4gICAgICAgIFwiLCBcIlxyXG4gICAgICApfWBcclxuICAgICk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBjb25zdCB0b0ZpbGUgPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdCh0b05vZGUsIFwiXCIpO1xyXG4gIGF3YWl0IGFwcC53b3Jrc3BhY2UuYWN0aXZlTGVhZi5vcGVuRmlsZSh0b0ZpbGUpO1xyXG59XHJcbiIsICJpbXBvcnQgeyBub3JtYWxpemVQYXRoLCBOb3RpY2UsIFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB0eXBlIHsgRGlyZWN0aW9ucyB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IGdldEZpZWxkSW5mbywgZ2V0T3BwRmllbGRzIH0gZnJvbSBcIi4uL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBjcmVhdGVPclVwZGF0ZVlhbWwsIGdldEN1cnJGaWxlLCBzcGxpdEF0WWFtbCB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG5jb25zdCByZXNvbHZlVGhyZWFkaW5nTmFtZVRlbXBsYXRlID0gKFxyXG4gIHRlbXBsYXRlOiBzdHJpbmcsXHJcbiAgY3VyckZpbGU6IFRGaWxlLFxyXG4gIGZpZWxkOiBzdHJpbmcsXHJcbiAgZGlyOiBEaXJlY3Rpb25zLFxyXG4gIGRhdGVGb3JtYXQ6IHN0cmluZ1xyXG4pID0+XHJcbiAgdGVtcGxhdGVcclxuICAgID8gdGVtcGxhdGVcclxuICAgICAgLnJlcGxhY2UoXCJ7e2N1cnJlbnR9fVwiLCBjdXJyRmlsZS5iYXNlbmFtZSlcclxuICAgICAgLnJlcGxhY2UoXCJ7e2ZpZWxkfX1cIiwgZmllbGQpXHJcbiAgICAgIC5yZXBsYWNlKFwie3tkaXJ9fVwiLCBkaXIpXHJcbiAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAucmVwbGFjZShcInt7ZGF0ZX19XCIsIG1vbWVudCgpLmZvcm1hdChkYXRlRm9ybWF0KSlcclxuICAgIDogXCJVbnRpdGxlZFwiO1xyXG5cclxuZnVuY3Rpb24gbWFrZUZpbGVuYW1lVW5pcXVlKGZpbGVuYW1lOiBzdHJpbmcpIHtcclxuICBsZXQgaSA9IDEsXHJcbiAgICBuZXdOYW1lID0gZmlsZW5hbWU7XHJcbiAgd2hpbGUgKGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KG5ld05hbWUsIFwiXCIpKSB7XHJcbiAgICBpZiAoaSA9PT0gMSkgbmV3TmFtZSArPSBgICR7aX1gO1xyXG4gICAgZWxzZSBuZXdOYW1lID0gbmV3TmFtZS5zbGljZSgwLCAtMikgKyBgICR7aX1gO1xyXG4gICAgaSsrO1xyXG4gIH1cclxuICByZXR1cm4gbmV3TmFtZTtcclxufVxyXG5cclxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZVRocmVhZGluZ0NvbnRlbnRUZW1wbGF0ZShcclxuICB3cml0ZUJDc0lubGluZTogYm9vbGVhbixcclxuICB0ZW1wbGF0ZVBhdGg6IHN0cmluZyxcclxuICBvcHBGaWVsZDogc3RyaW5nLFxyXG4gIGN1cnJGaWxlOiBURmlsZSxcclxuICBjcnVtYjogc3RyaW5nXHJcbikge1xyXG4gIGxldCBuZXdDb250ZW50ID0gY3J1bWI7XHJcblxyXG4gIGlmICh0ZW1wbGF0ZVBhdGgpIHtcclxuICAgIGNvbnN0IHRlbXBsYXRlRmlsZSA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KFxyXG4gICAgICB0ZW1wbGF0ZVBhdGgsXHJcbiAgICAgIFwiXCJcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgdGVtcGxhdGUgPSBhd2FpdCBhcHAudmF1bHQuY2FjaGVkUmVhZCh0ZW1wbGF0ZUZpbGUpO1xyXG4gICAgbmV3Q29udGVudCA9IHRlbXBsYXRlLnJlcGxhY2UoXHJcbiAgICAgIC9cXHtcXHtCQy10aHJlYWQtY3J1bWJcXH1cXH0vaSxcclxuICAgICAgd3JpdGVCQ3NJbmxpbmVcclxuICAgICAgICA/IGAke29wcEZpZWxkfTo6IFtbJHtjdXJyRmlsZS5iYXNlbmFtZX1dXWBcclxuICAgICAgICA6IGAke29wcEZpZWxkfTogWycke2N1cnJGaWxlLmJhc2VuYW1lfSddYFxyXG4gICAgKTtcclxuICB9XHJcbiAgcmV0dXJuIG5ld0NvbnRlbnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0aHJlYWQocGx1Z2luOiBCQ1BsdWdpbiwgZmllbGQ6IHN0cmluZykge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7XHJcbiAgICB1c2VySGllcnMsXHJcbiAgICB0aHJlYWRpbmdUZW1wbGF0ZSxcclxuICAgIGRhdGVGb3JtYXQsXHJcbiAgICB0aHJlYWRJbnRvTmV3UGFuZSxcclxuICAgIHRocmVhZGluZ0RpclRlbXBsYXRlcyxcclxuICAgIHRocmVhZFVuZGVyQ3Vyc29yLFxyXG4gICAgd3JpdGVCQ3NJbmxpbmUsXHJcbiAgfSA9IHNldHRpbmdzO1xyXG5cclxuICBjb25zdCBjdXJyRmlsZSA9IGdldEN1cnJGaWxlKCk7XHJcbiAgaWYgKCFjdXJyRmlsZSkgcmV0dXJuO1xyXG5cclxuICBjb25zdCBuZXdGaWxlUGFyZW50ID0gYXBwLmZpbGVNYW5hZ2VyLmdldE5ld0ZpbGVQYXJlbnQoY3VyckZpbGUucGF0aCk7XHJcblxyXG4gIGNvbnN0IGRpciA9IGdldEZpZWxkSW5mbyh1c2VySGllcnMsIGZpZWxkKS5maWVsZERpcjtcclxuICBjb25zdCBvcHBGaWVsZCA9IGdldE9wcEZpZWxkcyh1c2VySGllcnMsIGZpZWxkLCBkaXIpWzBdO1xyXG5cclxuICBsZXQgbmV3QmFzZW5hbWUgPSByZXNvbHZlVGhyZWFkaW5nTmFtZVRlbXBsYXRlKFxyXG4gICAgdGhyZWFkaW5nVGVtcGxhdGUsXHJcbiAgICBjdXJyRmlsZSxcclxuICAgIGZpZWxkLFxyXG4gICAgZGlyLFxyXG4gICAgZGF0ZUZvcm1hdFxyXG4gICk7XHJcbiAgbmV3QmFzZW5hbWUgPSBtYWtlRmlsZW5hbWVVbmlxdWUobmV3QmFzZW5hbWUpO1xyXG5cclxuICBjb25zdCBvcHBDcnVtYiA9IHdyaXRlQkNzSW5saW5lXHJcbiAgICA/IGAke29wcEZpZWxkfTo6IFtbJHtjdXJyRmlsZS5iYXNlbmFtZX1dXWBcclxuICAgIDogYC0tLVxcbiR7b3BwRmllbGR9OiBbJyR7Y3VyckZpbGUuYmFzZW5hbWV9J11cXG4tLS1gO1xyXG5cclxuICBjb25zdCB0ZW1wbGF0ZVBhdGggPSB0aHJlYWRpbmdEaXJUZW1wbGF0ZXNbZGlyXTtcclxuICBjb25zdCBuZXdDb250ZW50ID0gYXdhaXQgcmVzb2x2ZVRocmVhZGluZ0NvbnRlbnRUZW1wbGF0ZShcclxuICAgIHdyaXRlQkNzSW5saW5lLFxyXG4gICAgdGVtcGxhdGVQYXRoLFxyXG4gICAgb3BwRmllbGQsXHJcbiAgICBjdXJyRmlsZSxcclxuICAgIG9wcENydW1iXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgbmV3RmlsZSA9IGF3YWl0IGFwcC52YXVsdC5jcmVhdGUoXHJcbiAgICBub3JtYWxpemVQYXRoKGAke25ld0ZpbGVQYXJlbnQucGF0aH0vJHtuZXdCYXNlbmFtZX0ubWRgKSxcclxuICAgIG5ld0NvbnRlbnRcclxuICApO1xyXG5cclxuICBpZiAoIXdyaXRlQkNzSW5saW5lKSB7XHJcbiAgICBjb25zdCB7IGFwaSB9ID0gYXBwLnBsdWdpbnMucGx1Z2lucy5tZXRhZWRpdCA/PyB7fTtcclxuICAgIGlmICghYXBpKSB7XHJcbiAgICAgIG5ldyBOb3RpY2UoXHJcbiAgICAgICAgXCJNZXRhZWRpdCBtdXN0IGJlIGVuYWJsZWQgdG8gd3JpdGUgdG8geWFtbC4gQWx0ZXJuYXRpdmVseSwgdG9nZ2xlIHRoZSBzZXR0aW5nIGBXcml0ZSBCcmVhZGNydW1icyBJbmxpbmVgIHRvIHVzZSBEYXRhdmlldyBpbmxpbmUgZmllbGRzIGluc3RlYWQuXCJcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgY3JlYXRlT3JVcGRhdGVZYW1sKFxyXG4gICAgICBmaWVsZCxcclxuICAgICAgbmV3RmlsZS5iYXNlbmFtZSxcclxuICAgICAgY3VyckZpbGUsXHJcbiAgICAgIGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpbGVDYWNoZShjdXJyRmlsZSkuZnJvbnRtYXR0ZXIsXHJcbiAgICAgIGFwaVxyXG4gICAgKTtcclxuICB9IGVsc2Uge1xyXG4gICAgY29uc3QgY3J1bWIgPSBgJHtmaWVsZH06OiBbWyR7bmV3RmlsZS5iYXNlbmFtZX1dXWA7XHJcbiAgICBjb25zdCB7IGVkaXRvciB9ID0gYXBwLndvcmtzcGFjZS5hY3RpdmVMZWFmLnZpZXc7XHJcbiAgICBpZiAodGhyZWFkVW5kZXJDdXJzb3IgfHwgIWVkaXRvcikge1xyXG4gICAgICBlZGl0b3IucmVwbGFjZVJhbmdlKGNydW1iLCBlZGl0b3IuZ2V0Q3Vyc29yKCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gVE9ETyBDaGVjayBpZiB0aGlzIG5vdGUgYWxyZWFkeSBoYXMgdGhpcyBmaWVsZFxyXG4gICAgICBsZXQgY29udGVudCA9IGF3YWl0IGFwcC52YXVsdC5yZWFkKGN1cnJGaWxlKTtcclxuICAgICAgY29uc3Qgc3BsaXRzID0gc3BsaXRBdFlhbWwoY29udGVudCk7XHJcbiAgICAgIGNvbnRlbnQgPVxyXG4gICAgICAgIHNwbGl0c1swXSArXHJcbiAgICAgICAgKHNwbGl0c1swXS5sZW5ndGggPyBcIlxcblwiIDogXCJcIikgK1xyXG4gICAgICAgIGNydW1iICtcclxuICAgICAgICAoc3BsaXRzWzFdLmxlbmd0aCA/IFwiXFxuXCIgOiBcIlwiKSArXHJcbiAgICAgICAgc3BsaXRzWzFdO1xyXG5cclxuICAgICAgYXdhaXQgYXBwLnZhdWx0Lm1vZGlmeShjdXJyRmlsZSwgY29udGVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBsZWFmID0gdGhyZWFkSW50b05ld1BhbmVcclxuICAgID8gYXBwLndvcmtzcGFjZS5nZXRMZWFmKHRydWUpXHJcbiAgICA6IGFwcC53b3Jrc3BhY2UuYWN0aXZlTGVhZjtcclxuXHJcbiAgYXdhaXQgbGVhZi5vcGVuRmlsZShuZXdGaWxlLCB7IGFjdGl2ZTogdHJ1ZSwgbW9kZTogXCJzb3VyY2VcIiB9KTtcclxuXHJcbiAgaWYgKHRlbXBsYXRlUGF0aCkge1xyXG4gICAgaWYgKGFwcC5wbHVnaW5zLnBsdWdpbnNbXCJ0ZW1wbGF0ZXItb2JzaWRpYW5cIl0pIHtcclxuICAgICAgYXBwLmNvbW1hbmRzLmV4ZWN1dGVDb21tYW5kQnlJZChcclxuICAgICAgICBcInRlbXBsYXRlci1vYnNpZGlhbjpyZXBsYWNlLWluLWZpbGUtdGVtcGxhdGVyXCJcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ldyBOb3RpY2UoXHJcbiAgICAgICAgXCJUaGUgVGVtcGxhdGVyIHBsdWdpbiBtdXN0IGJlIGVuYWJsZWQgdG8gcmVzb2x2ZSB0aGUgdGVtcGxhdGVzIGluIHRoZSBuZXcgbm90ZVwiXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpZiAodGhyZWFkaW5nVGVtcGxhdGUpIHtcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIGNvbnN0IGVkaXRvciA9IGxlYWYudmlldy5lZGl0b3IgYXMgRWRpdG9yO1xyXG4gICAgZWRpdG9yLnNldEN1cnNvcihlZGl0b3IuZ2V0VmFsdWUoKS5sZW5ndGgpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zdCBub3RlTmFtZUlucHV0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJ2aWV3LWhlYWRlci10aXRsZVwiKTtcclxuXHJcbiAgICBjb25zdCBuZXdOb3RlSW5wdXRFbCA9IEFycmF5LmZyb20obm90ZU5hbWVJbnB1dHMpLmZpbmQoXHJcbiAgICAgIChpbnB1dDogSFRNTElucHV0RWxlbWVudCkgPT4gaW5wdXQuaW5uZXJUZXh0ID09PSBuZXdCYXNlbmFtZVxyXG4gICAgKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgbmV3Tm90ZUlucHV0RWwuaW5uZXJUZXh0ID0gXCJcIjtcclxuICAgIG5ld05vdGVJbnB1dEVsLmZvY3VzKCk7XHJcbiAgfVxyXG59XHJcbiIsICJpbXBvcnQgeyB3YXJuIH0gZnJvbSBcImxvZ2xldmVsXCI7XHJcbmltcG9ydCB7IE5vdGljZSwgVEZpbGUgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgZ2V0T3BwRmllbGRzIH0gZnJvbSBcIi4uL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBjaGFuZ2VZYW1sLCBnZXRDdXJyRmlsZSwgc3BsaXRBdFlhbWwgfSBmcm9tIFwiLi4vVXRpbHMvT2JzaWRpYW5VdGlsc1wiO1xyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlQkNUb0ZpbGUocGx1Z2luOiBCQ1BsdWdpbiwgY3VyckZpbGU/OiBURmlsZSkge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MsIG1haW5HIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgZmlsZSA9IGN1cnJGaWxlID8/IGdldEN1cnJGaWxlKCk7XHJcblxyXG4gIGNvbnN0IHsgbGltaXRXcml0ZUJDQ2hlY2tib3hlcywgd3JpdGVCQ3NJbmxpbmUsIHVzZXJIaWVycyB9ID0gc2V0dGluZ3M7XHJcblxyXG4gIGNvbnN0IHN1Y2NJbmZvID0gbWFpbkcubWFwSW5FZGdlcyhmaWxlLmJhc2VuYW1lLCAoaywgYSwgcywgdCkgPT4ge1xyXG4gICAgY29uc3QgeyBmaWVsZCwgZGlyIH0gPSBhO1xyXG4gICAgY29uc3Qgb3BwRmllbGQgPSBnZXRPcHBGaWVsZHModXNlckhpZXJzLCBmaWVsZCwgZGlyKVswXTtcclxuICAgIHJldHVybiB7IHN1Y2M6IHMsIGZpZWxkOiBvcHBGaWVsZCB9O1xyXG4gIH0pO1xyXG5cclxuICBmb3IgKGNvbnN0IHsgc3VjYywgZmllbGQgfSBvZiBzdWNjSW5mbykge1xyXG4gICAgaWYgKCFsaW1pdFdyaXRlQkNDaGVja2JveGVzLmluY2x1ZGVzKGZpZWxkKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBhcHAudmF1bHQucmVhZChmaWxlKTtcclxuICAgIGNvbnN0IFt5YW1sLCBhZnRlcllhbWxdID0gc3BsaXRBdFlhbWwoY29udGVudCk7XHJcblxyXG4gICAgaWYgKCF3cml0ZUJDc0lubGluZSkge1xyXG4gICAgICBjb25zdCBpbm5lciA9IHlhbWwgPT09IFwiXCIgPyB5YW1sIDogeWFtbC5zbGljZSg0LCAtNCk7XHJcbiAgICAgIGNvbnN0IG5ld1lhbWwgPSBjaGFuZ2VZYW1sKGlubmVyLCBmaWVsZCwgc3VjYyk7XHJcbiAgICAgIGNvbnN0IG5ld0NvbnRlbnQgPSBgLS0tXFxuJHtuZXdZYW1sfVxcbi0tLSR7YWZ0ZXJZYW1sfWA7XHJcbiAgICAgIGF3YWl0IGFwcC52YXVsdC5tb2RpZnkoZmlsZSwgbmV3Q29udGVudCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBUT0RPIENoZWNrIGlmIHRoaXMgbm90ZSBhbHJlYWR5IGhhcyB0aGlzIGZpZWxkXHJcbiAgICAgIGNvbnN0IG5ld0NvbnRlbnQgPVxyXG4gICAgICAgIHlhbWwgK1xyXG4gICAgICAgICh5YW1sLmxlbmd0aCA/IFwiXFxuXCIgOiBcIlwiKSArXHJcbiAgICAgICAgYCR7ZmllbGR9OjogW1ske3N1Y2N9XV1gICtcclxuICAgICAgICAoYWZ0ZXJZYW1sLmxlbmd0aCA/IFwiXFxuXCIgOiBcIlwiKSArXHJcbiAgICAgICAgYWZ0ZXJZYW1sO1xyXG5cclxuICAgICAgYXdhaXQgYXBwLnZhdWx0Lm1vZGlmeShmaWxlLCBuZXdDb250ZW50KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZUJDc1RvQWxsRmlsZXMocGx1Z2luOiBCQ1BsdWdpbikge1xyXG4gIGlmICghcGx1Z2luLnNldHRpbmdzLnNob3dXcml0ZUFsbEJDc0NtZCkge1xyXG4gICAgbmV3IE5vdGljZShcclxuICAgICAgXCJZb3UgZmlyc3QgbmVlZCB0byBlbmFibGUgdGhpcyBjb21tYW5kIGluIEJyZWFkY3J1bWJzJyBzZXR0aW5ncy5cIlxyXG4gICAgKTtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgaWYgKFxyXG4gICAgd2luZG93LmNvbmZpcm0oXHJcbiAgICAgIFwiVGhpcyBhY3Rpb24gd2lsbCB3cml0ZSB0aGUgaW1wbGllZCBCcmVhZGNydW1icyBvZiBlYWNoIGZpbGUgdG8gdGhhdCBmaWxlLlxcbkl0IHVzZXMgdGhlIE1ldGFFZGl0IHBsdWdpbnMgQVBJIHRvIHVwZGF0ZSB0aGUgWUFNTCwgc28gaXQgc2hvdWxkIG9ubHkgYWZmZWN0IHRoYXQgZnJvbnRtYXR0ZXIgb2YgeW91ciBub3RlLlxcbkkgY2FuJ3QgcHJvbWlzZSB0aGF0IG5vdGhpbmcgYmFkIHdpbGwgaGFwcGVuLiAqKlRoaXMgb3BlcmF0aW9uIGNhbm5vdCBiZSB1bmRvbmUqKi5cIlxyXG4gICAgKVxyXG4gICkge1xyXG4gICAgaWYgKFxyXG4gICAgICB3aW5kb3cuY29uZmlybShcclxuICAgICAgICBcIkFyZSB5b3Ugc3VyZT8gWW91IGhhdmUgYmVlbiB3YXJuZWQgdGhhdCB0aGlzIG9wZXJhdGlvbiB3aWxsIGF0dGVtcHQgdG8gdXBkYXRlIGFsbCBmaWxlcyB3aXRoIGltcGxpZWQgYnJlYWRjcnVtYnMuXCJcclxuICAgICAgKVxyXG4gICAgKSB7XHJcbiAgICAgIGlmICh3aW5kb3cuY29uZmlybShcIkZvciByZWFsLCBwbGVhc2UgbWFrZSBhIGJhY2sgdXAgYmVmb3JlLlwiKSkge1xyXG4gICAgICAgIGNvbnN0IG5vdGljZSA9IG5ldyBOb3RpY2UoXCJPcGVyYXRpb24gU3RhcnRlZFwiKTtcclxuICAgICAgICBjb25zdCBwcm9ibGVtRmlsZXMgPSBbXTtcclxuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgYXBwLnZhdWx0LmdldE1hcmtkb3duRmlsZXMoKSkge1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgYXdhaXQgd3JpdGVCQ1RvRmlsZShwbHVnaW4sIGZpbGUpO1xyXG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBwcm9ibGVtRmlsZXMucHVzaChmaWxlLnBhdGgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBub3RpY2Uuc2V0TWVzc2FnZShcIk9wZXJhdGlvbiBDb21wbGV0ZVwiKTtcclxuICAgICAgICBpZiAocHJvYmxlbUZpbGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgbmV3IE5vdGljZShcclxuICAgICAgICAgICAgXCJTb21lIGZpbGVzIHdlcmUgbm90IHVwZGF0ZWQgZHVlIHRvIGVycm9ycy4gQ2hlY2sgdGhlIGNvbnNvbGUgdG8gc2VlIHdoaWNoIG9uZXMuXCJcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB3YXJuKHsgcHJvYmxlbUZpbGVzIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCAiaW1wb3J0IHtcclxuICBFZGl0b3IsXHJcbiAgRWRpdG9yUG9zaXRpb24sXHJcbiAgRWRpdG9yU3VnZ2VzdCxcclxuICBFZGl0b3JTdWdnZXN0Q29udGV4dCxcclxuICBFZGl0b3JTdWdnZXN0VHJpZ2dlckluZm8sXHJcbiAgVEZpbGUsXHJcbn0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IGlzSW5zaWRlWWFtbCB9IGZyb20gXCIuL1V0aWxzL09ic2lkaWFuVXRpbHNcIjtcclxuaW1wb3J0IHsgQkNfRklFTERTX0lORk8gfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4vbWFpblwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpZWxkU3VnZ2VzdG9yIGV4dGVuZHMgRWRpdG9yU3VnZ2VzdDxzdHJpbmc+IHtcclxuICBwbHVnaW46IEJDUGx1Z2luO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwbHVnaW46IEJDUGx1Z2luKSB7XHJcbiAgICBzdXBlcihhcHApO1xyXG4gICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XHJcbiAgfVxyXG5cclxuICBvblRyaWdnZXIoXHJcbiAgICBjdXJzb3I6IEVkaXRvclBvc2l0aW9uLFxyXG4gICAgZWRpdG9yOiBFZGl0b3IsXHJcbiAgICBfOiBURmlsZVxyXG4gICk6IEVkaXRvclN1Z2dlc3RUcmlnZ2VySW5mbyB8IG51bGwge1xyXG4gICAgY29uc3Qgc3ViID0gZWRpdG9yLmdldExpbmUoY3Vyc29yLmxpbmUpLnN1YnN0cmluZygwLCBjdXJzb3IuY2gpO1xyXG4gICAgY29uc3QgbWF0Y2ggPSBzdWIubWF0Y2goL15CQy0oLiopJC8pPy5bMV07XHJcbiAgICBpZiAobWF0Y2ggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGVuZDogY3Vyc29yLFxyXG4gICAgICAgIHN0YXJ0OiB7XHJcbiAgICAgICAgICBjaDogc3ViLmxhc3RJbmRleE9mKG1hdGNoKSxcclxuICAgICAgICAgIGxpbmU6IGN1cnNvci5saW5lLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcXVlcnk6IG1hdGNoLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3VnZ2VzdGlvbnMgPSAoY29udGV4dDogRWRpdG9yU3VnZ2VzdENvbnRleHQpID0+IHtcclxuICAgIGNvbnN0IHsgcXVlcnkgfSA9IGNvbnRleHQ7XHJcbiAgICByZXR1cm4gQkNfRklFTERTX0lORk8ubWFwKChzdWcpID0+IHN1Zy5maWVsZCkuZmlsdGVyKChzdWcpID0+XHJcbiAgICAgIHN1Zy5pbmNsdWRlcyhxdWVyeSlcclxuICAgICk7XHJcbiAgfTtcclxuXHJcbiAgcmVuZGVyU3VnZ2VzdGlvbihzdWdnZXN0aW9uOiBzdHJpbmcsIGVsOiBIVE1MRWxlbWVudCk6IHZvaWQge1xyXG4gICAgZWwuY3JlYXRlRGl2KHtcclxuICAgICAgdGV4dDogc3VnZ2VzdGlvbi5yZXBsYWNlKFwiQkMtXCIsIFwiXCIpLFxyXG4gICAgICBjbHM6IFwiQkMtc3VnZ2VzdGVyLWNvbnRhaW5lclwiLFxyXG4gICAgICBhdHRyOiB7XHJcbiAgICAgICAgXCJhcmlhLWxhYmVsXCI6IEJDX0ZJRUxEU19JTkZPLmZpbmQoKGYpID0+IGYuZmllbGQgPT09IHN1Z2dlc3Rpb24pPy5kZXNjLFxyXG4gICAgICAgIFwiYXJpYS1sYWJlbC1wb3NpdGlvblwiOiBcInJpZ2h0XCIsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFN1Z2dlc3Rpb24oc3VnZ2VzdGlvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGNvbnRleHQsIHBsdWdpbiB9ID0gdGhpcztcclxuICAgIGlmICghY29udGV4dCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGZpZWxkID0gQkNfRklFTERTX0lORk8uZmluZCgoZikgPT4gZi5maWVsZCA9PT0gc3VnZ2VzdGlvbik7XHJcbiAgICBjb25zdCByZXBsYWNlbWVudCA9IGAke3N1Z2dlc3Rpb259JHtmaWVsZD8uW2lzSW5zaWRlWWFtbChhcHApID8gXCJhZnRlcllhbWxcIiA6IFwiYWZ0ZXJJbmxpbmVcIl1cclxuICAgICAgfWA7XHJcblxyXG4gICAgY29udGV4dC5lZGl0b3IucmVwbGFjZVJhbmdlKFxyXG4gICAgICByZXBsYWNlbWVudCxcclxuICAgICAgeyBjaDogMCwgbGluZTogY29udGV4dC5zdGFydC5saW5lIH0sXHJcbiAgICAgIGNvbnRleHQuZW5kXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCAiaW1wb3J0IHtcclxuICBFZGl0b3IsXHJcbiAgRWRpdG9yUG9zaXRpb24sXHJcbiAgRWRpdG9yU3VnZ2VzdCxcclxuICBFZGl0b3JTdWdnZXN0Q29udGV4dCxcclxuICBFZGl0b3JTdWdnZXN0VHJpZ2dlckluZm8sXHJcbiAgVEZpbGUsXHJcbn0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IGlzSW5zaWRlWWFtbCB9IGZyb20gXCIuL1V0aWxzL09ic2lkaWFuVXRpbHNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4vbWFpblwiO1xyXG5pbXBvcnQgeyBlc2NhcGVSZWdleCB9IGZyb20gXCIuL1V0aWxzL2dlbmVyYWxVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXRGaWVsZHMgfSBmcm9tIFwiLi9VdGlscy9IaWVyVXRpbHNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBSZWxhdGlvblN1Z2dlc3RvciBleHRlbmRzIEVkaXRvclN1Z2dlc3Q8c3RyaW5nPiB7XHJcbiAgcGx1Z2luOiBCQ1BsdWdpbjtcclxuXHJcbiAgY29uc3RydWN0b3IocGx1Z2luOiBCQ1BsdWdpbikge1xyXG4gICAgc3VwZXIoYXBwKTtcclxuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xyXG4gIH1cclxuXHJcbiAgb25UcmlnZ2VyKFxyXG4gICAgY3Vyc29yOiBFZGl0b3JQb3NpdGlvbixcclxuICAgIGVkaXRvcjogRWRpdG9yLFxyXG4gICAgXzogVEZpbGVcclxuICApOiBFZGl0b3JTdWdnZXN0VHJpZ2dlckluZm8gfCBudWxsIHtcclxuICAgIGNvbnN0IHRyaWcgPSB0aGlzLnBsdWdpbi5zZXR0aW5ncy5yZWxTdWdnZXN0b3JUcmlnZ2VyO1xyXG4gICAgY29uc3Qgc3ViID0gZWRpdG9yLmdldExpbmUoY3Vyc29yLmxpbmUpLnN1YnN0cmluZygwLCBjdXJzb3IuY2gpO1xyXG5cclxuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgLio/JHtlc2NhcGVSZWdleCh0cmlnKX0oLiopJGApO1xyXG4gICAgY29uc3QgbWF0Y2ggPSByZWdleC5leGVjKHN1Yik/LlsxXTtcclxuXHJcbiAgICBpZiAobWF0Y2ggPT09IHVuZGVmaW5lZCkgcmV0dXJuIG51bGw7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzdGFydDoge1xyXG4gICAgICAgIGNoOiBzdWIubGFzdEluZGV4T2YodHJpZyksXHJcbiAgICAgICAgbGluZTogY3Vyc29yLmxpbmUsXHJcbiAgICAgIH0sXHJcbiAgICAgIGVuZDogY3Vyc29yLFxyXG4gICAgICBxdWVyeTogbWF0Y2gsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0U3VnZ2VzdGlvbnMgPSAoY29udGV4dDogRWRpdG9yU3VnZ2VzdENvbnRleHQpID0+IHtcclxuICAgIGNvbnN0IHsgcXVlcnkgfSA9IGNvbnRleHQ7XHJcbiAgICBjb25zdCB7IHVzZXJIaWVycyB9ID0gdGhpcy5wbHVnaW4uc2V0dGluZ3M7XHJcbiAgICByZXR1cm4gZ2V0RmllbGRzKHVzZXJIaWVycykuZmlsdGVyKChzdWcpID0+IHN1Zy5pbmNsdWRlcyhxdWVyeSkpO1xyXG4gIH07XHJcblxyXG4gIHJlbmRlclN1Z2dlc3Rpb24oc3VnZ2VzdGlvbjogc3RyaW5nLCBlbDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcclxuICAgIGVsLmNyZWF0ZURpdih7XHJcbiAgICAgIHRleHQ6IHN1Z2dlc3Rpb24sXHJcbiAgICAgIGNsczogXCJjb2RlYmxvY2stc3VnZ2VzdGlvblwiLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RTdWdnZXN0aW9uKHN1Z2dlc3Rpb246IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBjb250ZXh0LCBwbHVnaW4gfSA9IHRoaXM7XHJcbiAgICBpZiAoIWNvbnRleHQpIHJldHVyblxyXG5cclxuICAgIGNvbnN0IHRyaWcgPSBwbHVnaW4uc2V0dGluZ3MucmVsU3VnZ2VzdG9yVHJpZ2dlcjtcclxuICAgIGNvbnN0IHsgc3RhcnQsIGVuZCwgZWRpdG9yIH0gPSBjb250ZXh0O1xyXG5cclxuICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gc3VnZ2VzdGlvbiArIChpc0luc2lkZVlhbWwoYXBwKSA/IFwiOiBcIiA6IFwiOjogXCIpICsgJ1tbJztcclxuICAgIGVkaXRvci5yZXBsYWNlUmFuZ2UoXHJcbiAgICAgIHJlcGxhY2VtZW50LFxyXG4gICAgICB7IGNoOiBzdGFydC5jaCArIDEgLSB0cmlnLmxlbmd0aCwgbGluZTogc3RhcnQubGluZSB9LFxyXG4gICAgICBlbmRcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsICJpbXBvcnQgeyBQbHVnaW5TZXR0aW5nVGFiLCBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IGRyYXdUcmFpbCB9IGZyb20gXCJzcmMvVmlld3MvVHJhaWxWaWV3XCI7XHJcbmltcG9ydCBLb0ZpIGZyb20gXCIuLi9Db21wb25lbnRzL0tvRmkuc3ZlbHRlXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IGFkZENyZWF0ZUluZGV4U2V0dGluZ3MgfSBmcm9tIFwiLi9DcmVhdGVJbmRleFNldHRpbmdzXCI7XHJcbmltcG9ydCB7IGFkZENTVlNldHRpbmdzIH0gZnJvbSBcIi4vQ1NWU2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgYWRkRGF0YXZpZXdTZXR0aW5ncyB9IGZyb20gXCIuL0RhdGF2aWV3Tm90ZVNldHRpbmdzXCI7XHJcbmltcG9ydCB7IGFkZERhdGVOb3RlU2V0dGluZ3MgfSBmcm9tIFwiLi9EYXRlTm90ZVNldHRpbmdzXCI7XHJcbmltcG9ydCB7IGFkZERlYnVnZ2luZ3NTZXR0aW5ncyB9IGZyb20gXCIuL0RlYnVnZ2luZ1NldHRpbmdzXCI7XHJcbmltcG9ydCB7IGFkZERlbmRyb25TZXR0aW5ncyB9IGZyb20gXCIuL0RlbmRyb25TZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBhZGRHZW5lcmFsU2V0dGluZ3MgfSBmcm9tIFwiLi9HZW5lcmFsU2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgYWRkSGllcmFyY2h5Tm90ZVNldHRpbmdzIH0gZnJvbSBcIi4vSGllcmFyY2h5Tm90ZVNldHRpbmdzXCI7XHJcbmltcG9ydCB7IGFkZEhpZXJhcmNoeVNldHRpbmdzIH0gZnJvbSBcIi4vSGllcmFyY2h5U2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgYWRkSnVtcFRvTmV4dFNldHRpbmdzIH0gZnJvbSBcIi4vSnVtcFRvTmV4dFNldHRpbmdzXCI7XHJcbmltcG9ydCB7IGFkZE1hdHJpeFZpZXdTZXR0aW5ncyB9IGZyb20gXCIuL01hdHJpeFZpZXdTZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBhZGROb1N5c3RlbVNldHRpbmdzIH0gZnJvbSBcIi4vTm9TeXN0ZW1TZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBhZGRSZWdleE5vdGVTZXR0aW5ncyB9IGZyb20gXCIuL1JlZ2V4Tm90ZVNldHRpbmdzXCI7XHJcbmltcG9ydCB7IGFkZFJlbGF0aW9uU2V0dGluZ3MgfSBmcm9tIFwiLi9SZWxhdGlvblNldHRpbmdzXCI7XHJcbmltcG9ydCB7IGFkZFRhZ05vdGVTZXR0aW5ncyB9IGZyb20gXCIuL1RhZ05vdGVTZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBhZGRUaHJlYWRpbmdTZXR0aW5ncyB9IGZyb20gXCIuL1RocmVhZGluZ1NldHRpbmdzXCI7XHJcbmltcG9ydCB7IGFkZFRyYWlsVmlld1NldHRpbmdzIH0gZnJvbSBcIi4vVHJhaWxTZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBhZGRWaXNNb2RhbFNldHRpbmdzIH0gZnJvbSBcIi4vVmlzTW9kYWxTZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBhZGRXcml0ZUJDc1NldHRpbmdzIH0gZnJvbSBcIi4vV3JpdGVCQ3NTZXR0aW5nc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IGZyYWdXaXRoSFRNTCA9IChodG1sOiBzdHJpbmcpID0+XHJcbiAgY3JlYXRlRnJhZ21lbnQoKGZyYWcpID0+IChmcmFnLmNyZWF0ZURpdigpLmlubmVySFRNTCA9IGh0bWwpKTtcclxuXHJcbmV4cG9ydCBjb25zdCBkZXRhaWxzID0gKHRleHQ6IHN0cmluZywgcGFyZW50OiBIVE1MRWxlbWVudCkgPT5cclxuICBwYXJlbnQuY3JlYXRlRWwoXCJkZXRhaWxzXCIsIHt9LCAoZCkgPT4gZC5jcmVhdGVFbChcInN1bW1hcnlcIiwgeyB0ZXh0IH0pKTtcclxuXHJcbmV4cG9ydCBjb25zdCBzdWJEZXRhaWxzID0gKHRleHQ6IHN0cmluZywgcGFyZW50OiBIVE1MRGV0YWlsc0VsZW1lbnQpID0+XHJcbiAgcGFyZW50LmNyZWF0ZURpdih7XHJcbiAgICBhdHRyOiB7IHN0eWxlOiBcInBhZGRpbmctbGVmdDogMTBweDtcIiB9LFxyXG4gIH0pXHJcbiAgICAuY3JlYXRlRWwoXCJkZXRhaWxzXCIsIHt9LCAoZCkgPT4gZC5jcmVhdGVFbChcInN1bW1hcnlcIiwgeyB0ZXh0IH0pKTtcclxuXHJcbmV4cG9ydCBjbGFzcyBCQ1NldHRpbmdUYWIgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcclxuICBwbHVnaW46IEJDUGx1Z2luO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwbHVnaW46IEJDUGx1Z2luKSB7XHJcbiAgICBzdXBlcihhcHAsIHBsdWdpbik7XHJcbiAgICB0aGlzLnBsdWdpbiA9IHBsdWdpbjtcclxuICB9XHJcblxyXG4gIGFzeW5jIGRpc3BsYXkoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCB7IHBsdWdpbiwgY29udGFpbmVyRWwgfSA9IHRoaXM7XHJcbiAgICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW5cclxuXHJcbiAgICBjb250YWluZXJFbC5lbXB0eSgpO1xyXG4gICAgY29udGFpbmVyRWwuY3JlYXRlRWwoXCJoMlwiLCB7IHRleHQ6IFwiQnJlYWRjcnVtYnMgU2V0dGluZ3NcIiB9KTtcclxuICAgIGNvbnRhaW5lckVsLmFkZENsYXNzKFwiQkMtc2V0dGluZ3MtdGFiXCIpO1xyXG5cclxuICAgIGFkZEhpZXJhcmNoeVNldHRpbmdzKHBsdWdpbiwgY29udGFpbmVyRWwpO1xyXG4gICAgYWRkUmVsYXRpb25TZXR0aW5ncyhwbHVnaW4sIGNvbnRhaW5lckVsKTtcclxuICAgIGFkZEdlbmVyYWxTZXR0aW5ncyhwbHVnaW4sIGNvbnRhaW5lckVsKTtcclxuXHJcbiAgICBjb25zdCB2aWV3RGV0YWlscyA9IGRldGFpbHMoXCJWaWV3c1wiLCBjb250YWluZXJFbCk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcodmlld0RldGFpbHMpXHJcbiAgICAgIC5zZXROYW1lKFwiT3BlbiBWaWV3cyBieSBEZWZhdWx0XCIpXHJcbiAgICAgIC5zZXREZXNjKGZyYWdXaXRoSFRNTChcIkNob29zZSB3aGljaCBvZiB0aGUgdmlld3MgdG8gb3BlbiBvbmxvYWQ8YnIvPk9yZGVyIGlzOiBUcmFpbC9HcmlkL0p1Z2dsLCBNYXRyaXgsIER1Y2tzLCBUcmVlXCIpKVxyXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgICAgdG9nZ2xlXHJcbiAgICAgICAgICAuc2V0VG9vbHRpcChcIlRyYWlsL0dyaWQvSnVnZ2xcIilcclxuICAgICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5zaG93QkNzKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICBzZXR0aW5ncy5zaG93QkNzID0gdmFsdWU7XHJcbiAgICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgICAgYXdhaXQgZHJhd1RyYWlsKHBsdWdpbik7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xyXG4gICAgICAgIHRvZ2dsZVxyXG4gICAgICAgICAgLnNldFRvb2x0aXAoXCJNYXRyaXggVmlld1wiKVxyXG4gICAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLm9wZW5NYXRyaXhPbkxvYWQpXHJcbiAgICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHNldHRpbmdzLm9wZW5NYXRyaXhPbkxvYWQgPSB2YWx1ZTtcclxuICAgICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xyXG4gICAgICAgIHRvZ2dsZVxyXG4gICAgICAgICAgLnNldFRvb2x0aXAoXCJEdWNrcyBWaWV3XCIpXHJcbiAgICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3Mub3BlbkR1Y2tPbkxvYWQpXHJcbiAgICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHNldHRpbmdzLm9wZW5EdWNrT25Mb2FkID0gdmFsdWU7XHJcbiAgICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KVxyXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHtcclxuICAgICAgICB0b2dnbGVcclxuICAgICAgICAgIC5zZXRUb29sdGlwKFwiVHJlZSBWaWV3XCIpXHJcbiAgICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3Mub3BlbkRvd25PbkxvYWQpXHJcbiAgICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHNldHRpbmdzLm9wZW5Eb3duT25Mb2FkID0gdmFsdWU7XHJcbiAgICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB2aWV3RGV0YWlscy5jcmVhdGVFbCgnaHInKVxyXG5cclxuICAgIGFkZE1hdHJpeFZpZXdTZXR0aW5ncyhwbHVnaW4sIHZpZXdEZXRhaWxzKTtcclxuICAgIGFkZFRyYWlsVmlld1NldHRpbmdzKHBsdWdpbiwgdmlld0RldGFpbHMpO1xyXG4gICAgYWRkVmlzTW9kYWxTZXR0aW5ncyhwbHVnaW4sIHZpZXdEZXRhaWxzKTtcclxuICAgIC8vIGFkZFRyZWVWaWV3U2V0dGluZ3MocGx1Z2luLCB2aWV3RGV0YWlscyk7XHJcblxyXG4gICAgY29uc3QgYWx0ZXJuYXRpdmVIaWVyYXJjaHlEZXRhaWxzID0gZGV0YWlscyhcclxuICAgICAgXCJBbHRlcm5hdGl2ZSBIaWVyYXJjaGllc1wiLFxyXG4gICAgICBjb250YWluZXJFbFxyXG4gICAgKTtcclxuXHJcbiAgICBhZGRUYWdOb3RlU2V0dGluZ3MocGx1Z2luLCBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHMpO1xyXG4gICAgYWRkUmVnZXhOb3RlU2V0dGluZ3MocGx1Z2luLCBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHMpO1xyXG4gICAgYWRkTm9TeXN0ZW1TZXR0aW5ncyhwbHVnaW4sIGFsdGVybmF0aXZlSGllcmFyY2h5RGV0YWlscyk7XHJcbiAgICBhZGRIaWVyYXJjaHlOb3RlU2V0dGluZ3MocGx1Z2luLCBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHMpO1xyXG4gICAgYWRkQ1NWU2V0dGluZ3MocGx1Z2luLCBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHMpO1xyXG4gICAgYWRkRGVuZHJvblNldHRpbmdzKHBsdWdpbiwgYWx0ZXJuYXRpdmVIaWVyYXJjaHlEZXRhaWxzKTtcclxuICAgIGFkZERhdGF2aWV3U2V0dGluZ3MocGx1Z2luLCBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHMpO1xyXG4gICAgYWRkRGF0ZU5vdGVTZXR0aW5ncyhwbHVnaW4sIGFsdGVybmF0aXZlSGllcmFyY2h5RGV0YWlscyk7XHJcblxyXG4gICAgY29uc3QgY21kc0RldGFpbHMgPSBkZXRhaWxzKFwiQ29tbWFuZHNcIiwgY29udGFpbmVyRWwpO1xyXG4gICAgYWRkV3JpdGVCQ3NTZXR0aW5ncyhwbHVnaW4sIGNtZHNEZXRhaWxzKTtcclxuICAgIGFkZENyZWF0ZUluZGV4U2V0dGluZ3MocGx1Z2luLCBjbWRzRGV0YWlscyk7XHJcbiAgICBhZGRUaHJlYWRpbmdTZXR0aW5ncyhwbHVnaW4sIGNtZHNEZXRhaWxzKTtcclxuICAgIGFkZEp1bXBUb05leHRTZXR0aW5ncyhwbHVnaW4sIGNtZHNEZXRhaWxzKTtcclxuXHJcbiAgICBhZGREZWJ1Z2dpbmdzU2V0dGluZ3MocGx1Z2luLCBjb250YWluZXJFbCk7XHJcblxyXG4gICAgbmV3IEtvRmkoeyB0YXJnZXQ6IGNvbnRhaW5lckVsIH0pO1xyXG4gIH1cclxufVxyXG4iLCAiPCEtLSBTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9IRW1pbGUvanVnZ2wvYmxvYi9tYWluL2p1Z2dsL3VpL0tvRmkuc3ZlbHRlIC0tPlxyXG48c2NyaXB0PlxyXG4gIGxldCBidXR0b247XHJcbiAgY29uc3QgaW5pdGlhbGl6ZUtvZmkgPSAoKSA9PiB7XHJcbiAgICBrb2Zpd2lkZ2V0Mi5pbml0KFxyXG4gICAgICBcIlN1cHBvcnQgQnJlYWRjcnVtYnMgZGV2ZWxvcG1lbnQhXCIsXHJcbiAgICAgIFwiIzI5YWJlMFwiLFxyXG4gICAgICBcIkcyRzQ1NFRaRlwiXHJcbiAgICApO1xyXG4gICAgYnV0dG9uLmlubmVySFRNTCA9IGtvZml3aWRnZXQyLmdldEhUTUwoKTtcclxuICB9O1xyXG48L3NjcmlwdD5cclxuXHJcbjxzdmVsdGU6aGVhZD5cclxuICA8c2NyaXB0XHJcbiAgICB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCJcclxuICAgIHNyYz1cImh0dHBzOi8va28tZmkuY29tL3dpZGdldHMvd2lkZ2V0XzIuanNcIlxyXG4gICAgb246bG9hZD17aW5pdGlhbGl6ZUtvZml9PlxyXG4gIDwvc2NyaXB0PlxyXG48L3N2ZWx0ZTpoZWFkPlxyXG48ZGl2IGNsYXNzPVwiQkMtS29maS1idXR0b25cIiBiaW5kOnRoaXM9e2J1dHRvbn0gLz5cclxuXHJcbjxzdHlsZT5cclxuICAuQkMtS29maS1idXR0b24ge1xyXG4gICAgbWFyZ2luLXRvcDogMTBweDtcclxuICB9XHJcbjwvc3R5bGU+XHJcbiIsICJpbXBvcnQgeyBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IGZyYWdXaXRoSFRNTCwgc3ViRGV0YWlscyB9IGZyb20gXCIuL0JyZWFkY3J1bWJzU2V0dGluZ1RhYlwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZENyZWF0ZUluZGV4U2V0dGluZ3MoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICBjbWRzRGV0YWlsczogSFRNTERldGFpbHNFbGVtZW50XHJcbikge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCBjcmVhdGVJbmRleERldGFpbHMgPSBzdWJEZXRhaWxzKFwiQ3JlYXRlIEluZGV4XCIsIGNtZHNEZXRhaWxzKTtcclxuXHJcbiAgbmV3IFNldHRpbmcoY3JlYXRlSW5kZXhEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJBZGQgd2lrbGluayBicmFja2V0c1wiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIldoZW4gY3JlYXRpbmcgYW4gaW5kZXgsIHNob3VsZCBpdCB3cmFwIHRoZSBub3RlIG5hbWUgaW4gd2lraWxpbmtzIDxjb2RlPltbXV08L2NvZGU+IG9yIG5vdC5cXG5cdTI3MDUgPSB5ZXMsIFx1Mjc0QyA9IG5vLlwiXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cclxuICAgICAgdG9nZ2xlXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLndpa2lsaW5rSW5kZXgpXHJcbiAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3Mud2lraWxpbmtJbmRleCA9IHZhbHVlO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICBuZXcgU2V0dGluZyhjcmVhdGVJbmRleERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkluZGVudCBDaGFyYWN0ZXJcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgJ1RoZSBjaGFyYWN0ZXIocykgdXNlZCB0byBpbmRlbnQgdGhlIGluZGV4LiBUaGVzZSBjYW4gYmUgYW55dGhpbmcgeW91IHdhbnQsIGJ1dCB3aWxsIHVzdWFsbHkgYmUgZWl0aGVyIHNwYWNlcyBvciB0YWJzLiBFbnRlciA8Y29kZT5cXFxcdDwvY29kZT4gdG8gdXNlIHRhYnMuJ1xyXG4gICAgICApKVxyXG4gICAgLmFkZFRleHQoKHRleHQpID0+IHtcclxuICAgICAgdGV4dFxyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5jcmVhdGVJbmRleEluZGVudClcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICBzZXR0aW5ncy5jcmVhdGVJbmRleEluZGVudCA9IHZhbHVlO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9KVxyXG5cclxuICBuZXcgU2V0dGluZyhjcmVhdGVJbmRleERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIlNob3cgYWxpYXNlcyBvZiBub3RlcyBpbiBpbmRleFwiKVxyXG4gICAgLnNldERlc2MoXCJTaG93IHRoZSBhbGlhc2VzIG9mIGVhY2ggbm90ZSBpbiBicmFja2V0cy5cXG5cdTI3MDUgPSB5ZXMsIFx1Mjc0QyA9IG5vLlwiKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGVcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3MuYWxpYXNlc0luSW5kZXgpXHJcbiAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3MuYWxpYXNlc0luSW5kZXggPSB2YWx1ZTtcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICB9KVxyXG4gICAgKTtcclxufVxyXG4iLCAiaW1wb3J0IHsgU2V0dGluZyB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQgeyBzdWJEZXRhaWxzIH0gZnJvbSBcIi4vQnJlYWRjcnVtYnNTZXR0aW5nVGFiXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkQ1NWU2V0dGluZ3MoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHM6IEhUTUxEZXRhaWxzRWxlbWVudFxyXG4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgY3N2RGV0YWlscyA9IHN1YkRldGFpbHMoXCJDU1YgTm90ZXNcIiwgYWx0ZXJuYXRpdmVIaWVyYXJjaHlEZXRhaWxzKTtcclxuXHJcbiAgbmV3IFNldHRpbmcoY3N2RGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiQ1NWIEJyZWFkY3J1bWIgUGF0aHNcIilcclxuICAgIC5zZXREZXNjKFwiVGhlIGZpbGUgcGF0aCBvZiBhIGNzdiBmaWxlcyB3aXRoIGJyZWFkY3J1bWJzIGluZm9ybWF0aW9uLlwiKVxyXG4gICAgLmFkZFRleHQoKHRleHQpID0+IHtcclxuICAgICAgdGV4dC5zZXRWYWx1ZShzZXR0aW5ncy5DU1ZQYXRocyk7XHJcbiAgICAgIHRleHQuaW5wdXRFbC5vbmJsdXIgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MuQ1NWUGF0aHMgPSB0ZXh0LmlucHV0RWwudmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbn1cclxuIiwgImltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50LCBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IHJlZnJlc2hJbmRleCB9IGZyb20gXCIuLi9yZWZyZXNoSW5kZXhcIjtcclxuaW1wb3J0IHsgZ2V0RmllbGRzIH0gZnJvbSBcIi4uL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBmcmFnV2l0aEhUTUwsIHN1YkRldGFpbHMgfSBmcm9tIFwiLi9CcmVhZGNydW1ic1NldHRpbmdUYWJcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGREYXRhdmlld1NldHRpbmdzKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgYWx0ZXJuYXRpdmVIaWVyYXJjaHlEZXRhaWxzOiBIVE1MRGV0YWlsc0VsZW1lbnRcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgdXNlckhpZXJzIH0gPSBzZXR0aW5ncztcclxuICBjb25zdCBmaWVsZHMgPSBnZXRGaWVsZHModXNlckhpZXJzKTtcclxuICBjb25zdCBkdkRldGFpbHMgPSBzdWJEZXRhaWxzKFwiRGF0YXZpZXcgTm90ZXNcIiwgYWx0ZXJuYXRpdmVIaWVyYXJjaHlEZXRhaWxzKTtcclxuXHJcbiAgbmV3IFNldHRpbmcoZHZEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJEZWZhdWx0IERhdGF2aWV3IE5vdGUgRmllbGRcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgXCJCeSBkZWZhdWx0LCBEYXRhdmlldyBub3RlcyB1c2UgdGhlIGZpcnN0IGZpZWxkIGluIHlvdXIgaGllcmFyY2hpZXMgKHVzdWFsbHkgYW4gPGNvZGU+XHUyMTkxPC9jb2RlPiBmaWVsZCkuIENob29zZSBhIGRpZmZlcmVudCBvbmUgdG8gdXNlIGJ5IGRlZmF1bHQsIHdpdGhvdXQgaGF2aW5nIHRvIHNwZWNpZnkgPGNvZGU+QkMtZGF0YXZpZXctbm90ZS1maWVsZDoge2ZpZWxkfTwvY29kZT4uPC9icj5JZiB5b3UgZG9uJ3Qgd2FudCB0byBjaG9vc2UgYSBkZWZhdWx0LCBzZWxlY3QgdGhlIGJsYW5rIG9wdGlvbiBhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0LlwiXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIC5hZGREcm9wZG93bigoZGQ6IERyb3Bkb3duQ29tcG9uZW50KSA9PiB7XHJcbiAgICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4gZGQuYWRkT3B0aW9uKGZpZWxkLCBmaWVsZCkpO1xyXG4gICAgICBkZC5hZGRPcHRpb24oXCJcIiwgXCJcIilcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3MuZGF0YXZpZXdOb3RlRmllbGQpXHJcbiAgICAgICAgLm9uQ2hhbmdlKGFzeW5jIChmaWVsZCkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3MuZGF0YXZpZXdOb3RlRmllbGQgPSBmaWVsZDtcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgIGF3YWl0IHJlZnJlc2hJbmRleChwbHVnaW4pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuIiwgImltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50LCBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IHJlZnJlc2hJbmRleCB9IGZyb20gXCIuLi9yZWZyZXNoSW5kZXhcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgZ2V0RmllbGRzIH0gZnJvbSBcIi4uL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBmcmFnV2l0aEhUTUwsIHN1YkRldGFpbHMgfSBmcm9tIFwiLi9CcmVhZGNydW1ic1NldHRpbmdUYWJcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGREYXRlTm90ZVNldHRpbmdzKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgYWx0ZXJuYXRpdmVIaWVyYXJjaHlEZXRhaWxzOiBIVE1MRGV0YWlsc0VsZW1lbnRcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHsgdXNlckhpZXJzIH0gPSBzZXR0aW5ncztcclxuICBjb25zdCBmaWVsZHMgPSBnZXRGaWVsZHModXNlckhpZXJzKTtcclxuICBjb25zdCBmaWVsZE9wdGlvbnMgPSB7IFwiXCI6IFwiXCIgfTtcclxuICBmaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IChmaWVsZE9wdGlvbnNbZmllbGRdID0gZmllbGQpKTtcclxuXHJcbiAgY29uc3QgZGF0ZU5vdGVEZXRhaWxzID0gc3ViRGV0YWlscyhcIkRhdGUgTm90ZXNcIiwgYWx0ZXJuYXRpdmVIaWVyYXJjaHlEZXRhaWxzKTtcclxuXHJcbiAgbmV3IFNldHRpbmcoZGF0ZU5vdGVEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJBZGQgRGF0ZSBOb3RlcyB0byBHcmFwaFwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIFwiQnJlYWRjcnVtYnMgd2lsbCB0cnkgdG8gbGluayBlYWNoIGRhaWx5IG5vdGUgdG8gdGhlIG5leHQgb25lIHVzaW5nIHRoZSBkYXRlIGZvcm1hdCB5b3UgcHJvdmlkZSBpbiB0aGUgc2V0dGluZ3MgYmVsb3cuXCJcclxuICAgIClcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xyXG4gICAgICB0b2dnbGUuc2V0VmFsdWUoc2V0dGluZ3MuYWRkRGF0ZU5vdGVzKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5hZGREYXRlTm90ZXMgPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgYXdhaXQgcmVmcmVzaEluZGV4KHBsdWdpbik7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKGRhdGVOb3RlRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiRGFpbHkgTm90ZSBGb3JtYXRcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgYFRoZSBMdXhvbiBkYXRlIGZvcm1hdCBvZiB5b3VyIGRhaWx5IG5vdGVzLjwvYnI+PHN0cm9uZz5Ob3RlPC9zdHJvbmc+OiBMdXhvbiB1c2VzIGRpZmZlcmVudCBmb3JtYXRzIHRvIE1vbWVudCwgc28geW91ciBmb3JtYXQgZm9yIHRoZSBEYWlseSBOb3RlcyBwbHVnaW4gbWF5IG5vdCB3b3JrIGhlcmUuIEJlIHN1cmUgdG8gY2hlY2sgb3V0IDxhIGhyZWY9XCJodHRwczovL21vbWVudC5naXRodWIuaW8vbHV4b24vIy9mb3JtYXR0aW5nP2lkPXRhYmxlLW9mLXRva2Vuc1wiPnRoZSBkb2NzPC9hPiB0byBmaW5kIHRoZSByaWdodCBmb3JtYXQuPGJyPllvdSBjYW4gZXNjYXBlIGNoYXJhY3RlcnMgYnkgd3JhcHBpbmcgdGhlbSBpbiBzaW5nbGUgcXVvdGVzIChlLmcuIDxjb2RlPnl5eXktTU0tZGQgJ0RhaWx5IE5vdGUnPC9jb2RlPilgXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIC5hZGRUZXh0KCh0ZXh0KSA9PiB7XHJcbiAgICAgIHRleHQuc2V0VmFsdWUoc2V0dGluZ3MuZGF0ZU5vdGVGb3JtYXQpO1xyXG4gICAgICB0ZXh0LmlucHV0RWwub25ibHVyID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLmRhdGVOb3RlRm9ybWF0ID0gdGV4dC5nZXRWYWx1ZSgpO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG5cclxuICBuZXcgU2V0dGluZyhkYXRlTm90ZURldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkRhdGUgTm90ZSBGaWVsZFwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIlNlbGVjdCBhIGZpZWxkIHRvIHBvaW50IHRvIHRvbW9ycm93J3Mgbm90ZSBmcm9tIHRoZSBjdXJyZW50IG5vdGUuIFRoZSBvcHBvc2l0ZSBmaWVsZCB3aWxsIGJlIHVzZWQgdG8gcG9pbnQgdG8geWVzdGVyZGF5J3Mgbm90ZS5cIlxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkRHJvcGRvd24oKGRkOiBEcm9wZG93bkNvbXBvbmVudCkgPT4ge1xyXG4gICAgICBkZC5hZGRPcHRpb25zKGZpZWxkT3B0aW9ucylcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3MuZGF0ZU5vdGVGaWVsZClcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKGZpZWxkKSA9PiB7XHJcbiAgICAgICAgICBzZXR0aW5ncy5kYXRlTm90ZUZpZWxkID0gZmllbGQ7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAvLyBuZXcgU2V0dGluZyhkYXRlTm90ZURldGFpbHMpXHJcbiAgLy8gICAuc2V0TmFtZShcIlBvaW50IHVwIHRvIE1vbnRoXCIpXHJcbiAgLy8gICAuc2V0RGVzYyhcclxuICAvLyAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gIC8vICAgICAgIFwiU2VsZWN0IGEgZmllbGQgdG8gcG9pbnQgdXB3YXJkcyB0byB0aGUgY29ycmVzcG9uZGluZyBtb250aCAoVGhpcyB3aWxsIHN0aWxsIHdvcmsgaWYgYSBub3RlIGRvZXNuJ3QgZXhpc3QgZm9yIHRoYXQgbW9udGgpLjxicj5MZWF2ZSB0aGUgZHJvcGRvd24gYmxhbmsgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUuXCJcclxuICAvLyAgICAgKVxyXG4gIC8vICAgKVxyXG4gIC8vICAgLmFkZERyb3Bkb3duKChkZDogRHJvcGRvd25Db21wb25lbnQpID0+IHtcclxuICAvLyAgICAgZGQuYWRkT3B0aW9ucyhmaWVsZE9wdGlvbnMpO1xyXG4gIC8vICAgICBkZC5vbkNoYW5nZShhc3luYyAoZmllbGQpID0+IHtcclxuICAvLyAgICAgICBzZXR0aW5ncy5kYXRlTm90ZUFkZE1vbnRoID0gZmllbGQ7XHJcbiAgLy8gICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gIC8vICAgICAgIGF3YWl0IHJlZnJlc2hJbmRleChwbHVnaW4pO1xyXG4gIC8vICAgICB9KTtcclxuICAvLyAgIH0pO1xyXG4gIC8vIG5ldyBTZXR0aW5nKGRhdGVOb3RlRGV0YWlscylcclxuICAvLyAgIC5zZXROYW1lKFwiUG9pbnQgdXAgdG8gWWVhclwiKVxyXG4gIC8vICAgLnNldERlc2MoXHJcbiAgLy8gICAgIGZyYWdXaXRoSFRNTChcclxuICAvLyAgICAgICBcIlNlbGVjdCBhIGZpZWxkIHRvIHBvaW50IHVwd2FyZHMgdG8gdGhlIGNvcnJlc3BvbmRpbmcgeWVhciAoVGhpcyB3aWxsIHN0aWxsIHdvcmsgaWYgYSBub3RlIGRvZXNuJ3QgZXhpc3QgZm9yIHRoYXQgeWVhcikuPGJyPkxlYXZlIHRoZSBkcm9wZG93biBibGFuayB0byBkaXNhYmxlIHRoaXMgZmVhdHVyZS5cIlxyXG4gIC8vICAgICApXHJcbiAgLy8gICApXHJcbiAgLy8gICAuYWRkRHJvcGRvd24oKGRkOiBEcm9wZG93bkNvbXBvbmVudCkgPT4ge1xyXG4gIC8vICAgICBkZC5hZGRPcHRpb25zKGZpZWxkT3B0aW9ucyk7XHJcbiAgLy8gICAgIGRkLm9uQ2hhbmdlKGFzeW5jIChmaWVsZCkgPT4ge1xyXG4gIC8vICAgICAgIHNldHRpbmdzLmRhdGVOb3RlQWRkWWVhciA9IGZpZWxkO1xyXG4gIC8vICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAvLyAgICAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAvLyAgICAgfSk7XHJcbiAgLy8gICB9KTtcclxufVxyXG4iLCAiaW1wb3J0IGxvZyBmcm9tIFwibG9nbGV2ZWxcIjtcclxuaW1wb3J0IHsgU2V0dGluZyB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgdHlwZSB7IERlYnVnTGV2ZWwgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQgeyBkZXRhaWxzLCBmcmFnV2l0aEhUTUwgfSBmcm9tIFwiLi9CcmVhZGNydW1ic1NldHRpbmdUYWJcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGREZWJ1Z2dpbmdzU2V0dGluZ3MoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICBjb250YWluZXJFbDogSFRNTEVsZW1lbnRcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IGRlYnVnRGV0YWlscyA9IGRldGFpbHMoXCJEZWJ1Z2dpbmdcIiwgY29udGFpbmVyRWwpO1xyXG5cclxuICBuZXcgU2V0dGluZyhkZWJ1Z0RldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkRlYnVnIE1vZGVcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgXCJTZXQgdGhlIG1pbmltdW0gbGV2ZWwgb2YgZGVidWcgbWVzc2FnZXMgdG8gY29uc29sZSBsb2cuIElmIHlvdSBjaG9vc2UgPGNvZGU+VFJBQ0U8L2NvZGU+LCB0aGVuIGV2ZXJ5dGhpbmcgd2lsbCBiZSBsb2dnZWQuIElmIHlvdSBjaG9vc2UgPGNvZGU+RVJST1I8L2NvZGU+LCB0aGVuIG9ubHkgdGhlIG1vc3QgbmVjZXNzYXJ5IGlzc3VlcyB3aWxsIGJlIGxvZ2dlZC4gPGNvZGU+U0lMRU5UPC9jb2RlPiB3aWxsIHR1cm4gb2ZmIGFsbCBsb2dzLlwiXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIC5hZGREcm9wZG93bigoZGQpID0+IHtcclxuICAgICAgT2JqZWN0LmtleXMobG9nLmxldmVscykuZm9yRWFjaCgoa2V5KSA9PiBkZC5hZGRPcHRpb24oa2V5LCBrZXkpKTtcclxuICAgICAgZGQuc2V0VmFsdWUoc2V0dGluZ3MuZGVidWdNb2RlKS5vbkNoYW5nZShhc3luYyAodmFsdWU6IERlYnVnTGV2ZWwpID0+IHtcclxuICAgICAgICBsb2cuc2V0TGV2ZWwodmFsdWUpO1xyXG4gICAgICAgIHNldHRpbmdzLmRlYnVnTW9kZSA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgZGVidWdEZXRhaWxzLmNyZWF0ZUVsKFwiYnV0dG9uXCIsIHsgdGV4dDogXCJDb25zb2xlIGxvZyBzZXR0aW5nc1wiIH0sIChlbCkgPT4ge1xyXG4gICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IGNvbnNvbGUubG9nKHNldHRpbmdzKSk7XHJcbiAgfSk7XHJcbn1cclxuIiwgImltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50LCBOb3RpY2UsIFNldHRpbmcgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHsgcmVmcmVzaEluZGV4IH0gZnJvbSBcIi4uL3JlZnJlc2hJbmRleFwiO1xyXG5pbXBvcnQgeyBERUZBVUxUX1NFVFRJTkdTLCBNQVRSSVhfVklFVyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgZ2V0RmllbGRzIH0gZnJvbSBcIi4uL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBmcmFnV2l0aEhUTUwsIHN1YkRldGFpbHMgfSBmcm9tIFwiLi9CcmVhZGNydW1ic1NldHRpbmdUYWJcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGREZW5kcm9uU2V0dGluZ3MoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHM6IEhUTUxEZXRhaWxzRWxlbWVudFxyXG4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgeyB1c2VySGllcnMgfSA9IHNldHRpbmdzO1xyXG4gIGNvbnN0IGZpZWxkcyA9IGdldEZpZWxkcyh1c2VySGllcnMpO1xyXG4gIGNvbnN0IGRlbmRyb25EZXRhaWxzID0gc3ViRGV0YWlscyhcclxuICAgIFwiRGVuZHJvbiBOb3Rlc1wiLFxyXG4gICAgYWx0ZXJuYXRpdmVIaWVyYXJjaHlEZXRhaWxzXHJcbiAgKTtcclxuXHJcbiAgbmV3IFNldHRpbmcoZGVuZHJvbkRldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkFkZCBEZW5kcm9uIG5vdGVzIHRvIGdyYXBoXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgIFwiRGVuZHJvbiBub3RlcyBjcmVhdGUgYSBoaWVyYXJjaHkgdXNpbmcgbm90ZSBuYW1lcy48L2JyPjxjb2RlPm5tYXRoLmFsZ2VicmE8L2NvZGU+IGlzIGEgbm90ZSBhYm91dCBhbGdlYnJhLCB3aG9zZSBwYXJlbnQgaXMgPGNvZGU+bWF0aDwvY29kZT4uPC9icj48Y29kZT5ubWF0aC5jYWxjdWx1cy5saW1pdHM8L2NvZGU+IGlzIGEgbm90ZSBhYm91dCBsaW1pdHMgd2hvc2UgcGFyZW50IGlzIHRoZSBub3RlIDxjb2RlPm1hdGguY2FsY3VsdXM8L2NvZGU+LCB0aGUgcGFyZW50IG9mIHdoaWNoIGlzIDxjb2RlPm1hdGg8L2NvZGU+LlwiXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cclxuICAgICAgdG9nZ2xlLnNldFZhbHVlKHNldHRpbmdzLmFkZERlbmRyb25Ob3Rlcykub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MuYWRkRGVuZHJvbk5vdGVzID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICBuZXcgU2V0dGluZyhkZW5kcm9uRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiRGVsaW1pdGVyXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgIFwiV2hpY2ggZGVsaW1pdGVyIHNob3VsZCBCcmVhZGNydW1icyBsb29rIGZvcj8gVGhlIGRlZmF1bHQgaXMgPGNvZGU+LjwvY29kZT4uXCJcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLmFkZFRleHQoKHRleHQpID0+IHtcclxuICAgICAgdGV4dFxyXG4gICAgICAgIC5zZXRQbGFjZWhvbGRlcihcIkRlbGltaXRlclwiKVxyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5kZW5kcm9uTm90ZURlbGltaXRlcik7XHJcblxyXG4gICAgICB0ZXh0LmlucHV0RWwub25ibHVyID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGV4dC5nZXRWYWx1ZSgpO1xyXG4gICAgICAgIGlmICh2YWx1ZSkgc2V0dGluZ3MuZGVuZHJvbk5vdGVEZWxpbWl0ZXIgPSB2YWx1ZTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG5ldyBOb3RpY2UoYFRoZSBkZWxpbWl0ZXIgY2FuJ3QgYmUgYmxhbmtgKTtcclxuICAgICAgICAgIHNldHRpbmdzLmRlbmRyb25Ob3RlRGVsaW1pdGVyID0gREVGQVVMVF9TRVRUSU5HUy5kZW5kcm9uTm90ZURlbGltaXRlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKGRlbmRyb25EZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJUcmltIERlbmRyb24gTm90ZSBOYW1lc1wiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIldoZW4gZGlzcGxheWluZyBhIGRlbmRyb24gbm90ZSBuYW1lLCBzaG91bGQgaXQgYmUgdHJpbW1lZCB0byBvbmx5IHNob3cgdGhlIGxhc3QgaXRlbSBpbiB0aGUgY2hhaW4/PC9icj5lLmcuIDxjb2RlPkEuQi5DPC9jb2RlPiBcdTIxOTIgPGNvZGU+QzwvY29kZT4uXCJcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGUuc2V0VmFsdWUoc2V0dGluZ3MudHJpbURlbmRyb25Ob3Rlcykub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MudHJpbURlbmRyb25Ob3RlcyA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uZ2V0QWN0aXZlVFlQRVZpZXcoTUFUUklYX1ZJRVcpLmRyYXcoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKGRlbmRyb25EZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJEZW5kcm9uIE5vdGUgRmllbGRcIilcclxuICAgIC5zZXREZXNjKFwiV2hpY2ggZmllbGQgc2hvdWxkIEJyZWFkY3J1bWJzIHVzZSBmb3IgRGVuZHJvbiBub3Rlcz9cIilcclxuICAgIC5hZGREcm9wZG93bigoZGQ6IERyb3Bkb3duQ29tcG9uZW50KSA9PiB7XHJcbiAgICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4gZGQuYWRkT3B0aW9uKGZpZWxkLCBmaWVsZCkpO1xyXG4gICAgICBkZC5zZXRWYWx1ZShzZXR0aW5ncy5kZW5kcm9uTm90ZUZpZWxkKTtcclxuXHJcbiAgICAgIGRkLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLmRlbmRyb25Ob3RlRmllbGQgPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgYXdhaXQgcmVmcmVzaEluZGV4KHBsdWdpbik7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuIiwgImltcG9ydCB7IE5vdGljZSwgU2V0dGluZyB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQgeyByZWZyZXNoSW5kZXggfSBmcm9tIFwiLi4vcmVmcmVzaEluZGV4XCI7XHJcbmltcG9ydCB7IHNwbGl0QW5kVHJpbSB9IGZyb20gXCIuLi9VdGlscy9nZW5lcmFsVXRpbHNcIjtcclxuaW1wb3J0IHsgZGV0YWlscywgZnJhZ1dpdGhIVE1MIH0gZnJvbSBcIi4vQnJlYWRjcnVtYnNTZXR0aW5nVGFiXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkR2VuZXJhbFNldHRpbmdzKHBsdWdpbjogQkNQbHVnaW4sIGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCBnZW5lcmFsRGV0YWlscyA9IGRldGFpbHMoXCJHZW5lcmFsIE9wdGlvbnNcIiwgY29udGFpbmVyRWwpO1xyXG5cclxuICBuZXcgU2V0dGluZyhnZW5lcmFsRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiUmVmcmVzaCBJbmRleCBvbiBOb3RlIENoYW5nZVwiKVxyXG4gICAgLnNldERlc2MoZnJhZ1dpdGhIVE1MKFxyXG4gICAgICBcIlJlZnJlc2ggdGhlIEJyZWFkY3J1bWJzIGluZGV4IGRhdGEgZXZlcnl0aW1lIHlvdSBjaGFuZ2Ugbm90ZXMuPC9icj48c3Ryb25nPk5vdGU8L3N0cm9uZz46IFRoaXMgY2FuIGJlIHZlcnkgc2xvdyBvbiBsYXJnZSB2YXVsdHMuXCIpXHJcbiAgICApXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgIHRvZ2dsZS5zZXRWYWx1ZShzZXR0aW5ncy5yZWZyZXNoT25Ob3RlQ2hhbmdlKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5yZWZyZXNoT25Ob3RlQ2hhbmdlID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgbmV3IFNldHRpbmcoZ2VuZXJhbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIlJlZnJlc2ggSW5kZXggT24gTm90ZSBTYXZlXCIpXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgIHRvZ2dsZS5zZXRWYWx1ZShzZXR0aW5ncy5yZWZyZXNoT25Ob3RlU2F2ZSkub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MucmVmcmVzaE9uTm90ZVNhdmUgPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICBuZXcgU2V0dGluZyhnZW5lcmFsRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiU2hvdyBSZWZyZXNoIEluZGV4IE5vdGljZVwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIFwiV2hlbiBSZWZyZXNoaW5nIEluZGV4LCBzaG91bGQgaXQgc2hvdyBhIG5vdGljZSBvbmNlIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGU/XCJcclxuICAgIClcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cclxuICAgICAgdG9nZ2xlLnNldFZhbHVlKHNldHRpbmdzLnNob3dSZWZyZXNoTm90aWNlKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5zaG93UmVmcmVzaE5vdGljZSA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKGdlbmVyYWxEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJBbGlhcyBGaWVsZHNcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgXCJBIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGZpZWxkcyB1c2VkIHRvIHNwZWNpZnkgYWxpYXNlcy4gVGhlc2UgZmllbGRzIHdpbGwgYmUgY2hlY2tlZCwgaW4gb3JkZXIsIHRvIGRpc3BsYXkgYW4gYWx0ZXJuYXRlIG5vdGUgdGl0bGUgaW4gZGlmZmVyZW50IHZpZXdzLjwvYnI+VGhpcyBmaWVsZCB3aWxsIHByb2JhYmx5IGJlIDxjb2RlPmFsaWFzPC9jb2RlPiBvciA8Y29kZT5hbGlhc2VzPC9jb2RlPiwgYnV0IGl0IGNhbiBiZSBhbnl0aGluZywgbGlrZSA8Y29kZT50aXRsZTwvY29kZT4uXCJcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLmFkZFRleHQoKHRleHQpID0+IHtcclxuICAgICAgdGV4dC5zZXRWYWx1ZShzZXR0aW5ncy5hbHRMaW5rRmllbGRzLmpvaW4oXCIsIFwiKSk7XHJcbiAgICAgIHRleHQuaW5wdXRFbC5vbmJsdXIgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MuYWx0TGlua0ZpZWxkcyA9IHNwbGl0QW5kVHJpbSh0ZXh0LmdldFZhbHVlKCkpO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG5cclxuICBuZXcgU2V0dGluZyhnZW5lcmFsRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiT25seSBzaG93IGZpcnN0IGFsaWFzXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgXCJJZiBhIG5vdGUgaGFzIGFuIGFsaWFzICh1c2luZyB0aGUgZmllbGRzIGluIHRoZSBzZXR0aW5nIGFib3ZlKSwgc2hvdWxkIG9ubHkgdGhlIGZpcnN0IG9uZSBiZSBzaG93bj9cIlxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGUuc2V0VmFsdWUoIXNldHRpbmdzLnNob3dBbGxBbGlhc2VzKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5zaG93QWxsQWxpYXNlcyA9ICF2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgYXdhaXQgcmVmcmVzaEluZGV4KHBsdWdpbik7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICBuZXcgU2V0dGluZyhnZW5lcmFsRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiVXNlIHlhbWwgb3IgaW5saW5lIGZpZWxkcyBmb3IgaGllcmFyY2h5IGRhdGFcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBcIklmIGVuYWJsZWQsIEJyZWFkY3J1bWJzIHdpbGwgbWFrZSBpdCdzIGhpZXJhcmNoeSB1c2luZyB5YW1sIGZpZWxkcywgYW5kIGlubGluZSBEYXRhdmlldyBmaWVsZHMuXFxuSWYgdGhpcyBpcyBkaXNhYmxlZCwgaXQgd2lsbCBvbmx5IHVzZSBKdWdnbCBsaW5rcyAoU2VlIGJlbG93KS5cIlxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGUuc2V0VmFsdWUoc2V0dGluZ3MudXNlQWxsTWV0YWRhdGEpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLnVzZUFsbE1ldGFkYXRhID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIGF3YWl0IHJlZnJlc2hJbmRleChwbHVnaW4pO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgbmV3IFNldHRpbmcoZ2VuZXJhbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIlVzZSBKdWdnbCBsaW5rIHN5bnRheCB3aXRob3V0IGhhdmluZyBKdWdnbCBpbnN0YWxsZWQuXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgICdTaG91bGQgQnJlYWRjcnVtYnMgbG9vayBmb3IgPGEgaHJlZj1cImh0dHBzOi8vanVnZ2wuaW8vTGluaytUeXBlc1wiIGFyaWEtbGFiZWw9XCJodHRwczovL2p1Z2dsLmlvL0xpbmsrVHlwZXNcIj5KdWdnbCBsaW5rczwvYT4gZXZlbiBpZiB5b3UgZG9uXFwndCBoYXZlIEp1Z2dsIGluc3RhbGxlZD8gSWYgeW91IGRvIGhhdmUgSnVnZ2wgaW5zdGFsbGVkLCBpdCB3aWxsIGFsd2F5cyBsb29rIGZvciBKdWdnbCBsaW5rcy4nXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cclxuICAgICAgdG9nZ2xlXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLnBhcnNlSnVnZ2xMaW5rc1dpdGhvdXRKdWdnbClcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICBzZXR0aW5ncy5wYXJzZUp1Z2dsTGlua3NXaXRob3V0SnVnZ2wgPSB2YWx1ZTtcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuXHJcblxyXG4gIG5ldyBTZXR0aW5nKGdlbmVyYWxEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJFbmFibGUgRmllbGQgU3VnZ2VzdG9yXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgICdBbG90IG9mIEJyZWFkY3J1bWJzIGZlYXR1cmVzIHJlcXVpcmUgYSBtZXRhZGF0YSAob3IgaW5saW5lIERhdGF2aWV3KSBmaWVsZCB0byB3b3JrLiBGb3IgZXhhbXBsZSwgYEJDLWZvbGRlci1ub3RlYC48L2JyPlRoZSBGaWVsZCBTdWdnZXN0b3Igd2lsbCBzaG93IGFuIGF1dG9jb21wbGV0ZSBtZW51IHdpdGggYWxsIGF2YWlsYWJsZSBCcmVhZGNydW1icyBmaWVsZCBvcHRpb25zIHdoZW4geW91IHR5cGUgPGNvZGU+QkMtPC9jb2RlPiBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lLidcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGUuc2V0VmFsdWUoc2V0dGluZ3MuZmllbGRTdWdnZXN0b3IpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLmZpZWxkU3VnZ2VzdG9yID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICBuZXcgU2V0dGluZyhnZW5lcmFsRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiRW5hYmxlIFJlbGF0aW9uIFN1Z2dlc3RvclwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIkVuYWJsZSBhbiBlZGl0b3Igc3VnZ2VzdG9yIHdoaWNoIGdldHMgdHJpZ2dlcmVkIGJ5IGEgY3VzdG9tIHN0cmluZyB0byBzaG93IGEgbGlzdCBvZiByZWxhdGlvbnMgZnJvbSB5b3VyIGhpZXJhcmNoaWVzIHRvIGluc2VydC5cIlxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgIHRvZ2dsZVxyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5lbmFibGVSZWxhdGlvblN1Z2dlc3RvcilcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICBzZXR0aW5ncy5lbmFibGVSZWxhdGlvblN1Z2dlc3RvciA9IHZhbHVlO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIH0pXHJcbiAgICApO1xyXG4gIG5ldyBTZXR0aW5nKGdlbmVyYWxEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJSZWxhdGlvbiBTdWdnZXN0b3IgVHJpZ2dlclwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIlRoZSBzdHJpbmcgdXNlZCB0byB0cmlnZ2VyIHRoZSByZWxhdGlvbiBzdWdnZXN0b3IuIERlZmF1bHQgaXMgPGNvZGU+XFxcXDwvY29kZT4uXCJcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLmFkZFRleHQoKHRleHQpID0+XHJcbiAgICAgIHRleHQuc2V0VmFsdWUoc2V0dGluZ3MucmVsU3VnZ2VzdG9yVHJpZ2dlcikub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MucmVsU3VnZ2VzdG9yVHJpZ2dlciA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gIGlmIChhcHAucGx1Z2lucy5wbHVnaW5zLmRhdGF2aWV3ICE9PSB1bmRlZmluZWQpIHtcclxuICAgIG5ldyBTZXR0aW5nKGdlbmVyYWxEZXRhaWxzKVxyXG4gICAgICAuc2V0TmFtZShcIkRhdGF2aWV3IFdhaXQgVGltZVwiKVxyXG4gICAgICAuc2V0RGVzYyhcclxuICAgICAgICAnRW50ZXIgYW4gaW50ZWdlciBudW1iZXIgb2Ygc2Vjb25kcyB0byB3YWl0IGZvciB0aGUgRGF0YXZpZXcgSW5kZXggdG8gbG9hZC4gVGhlIGxhcmdlciB5b3VyIHZhdWx0LCB0aGUgbG9uZ2VyIGl0IHdpbGwgdGFrZS4gVGhlIGRlZmF1bHQgaXMgNSBzZWNvbmRzLidcclxuICAgICAgKVxyXG4gICAgICAuYWRkVGV4dCgodGV4dCkgPT5cclxuICAgICAgICB0ZXh0XHJcbiAgICAgICAgICAuc2V0UGxhY2Vob2xkZXIoXCJTZWNvbmRzXCIpXHJcbiAgICAgICAgICAuc2V0VmFsdWUoKHNldHRpbmdzLmR2V2FpdFRpbWUgLyAxMDAwKS50b1N0cmluZygpKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgaWYgKG51bSA+IDApIHtcclxuICAgICAgICAgICAgICBzZXR0aW5ncy5kdldhaXRUaW1lID0gbnVtICogMTAwMDtcclxuICAgICAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgbmV3IE5vdGljZShcIlRoZSBpbnRlcnZhbCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlclwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcbn1cclxuIiwgImltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50LCBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IHJlZnJlc2hJbmRleCB9IGZyb20gXCIuLi9yZWZyZXNoSW5kZXhcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgc3BsaXRBbmRUcmltIH0gZnJvbSBcIi4uL1V0aWxzL2dlbmVyYWxVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXRGaWVsZHMgfSBmcm9tIFwiLi4vVXRpbHMvSGllclV0aWxzXCI7XHJcbmltcG9ydCB7IGZyYWdXaXRoSFRNTCwgc3ViRGV0YWlscyB9IGZyb20gXCIuL0JyZWFkY3J1bWJzU2V0dGluZ1RhYlwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZEhpZXJhcmNoeU5vdGVTZXR0aW5ncyhcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIGFsdGVybmF0aXZlSGllcmFyY2h5RGV0YWlsczogSFRNTERldGFpbHNFbGVtZW50XHJcbikge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCBoaWVyYXJjaHlOb3RlRGV0YWlscyA9IHN1YkRldGFpbHMoXHJcbiAgICBcIkhpZXJhcmNoeSBOb3Rlc1wiLFxyXG4gICAgYWx0ZXJuYXRpdmVIaWVyYXJjaHlEZXRhaWxzXHJcbiAgKTtcclxuXHJcbiAgbmV3IFNldHRpbmcoaGllcmFyY2h5Tm90ZURldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkhpZXJhcmNoeSBOb3RlKHMpXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgIFwiQSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBub3RlcyB1c2VkIHRvIGNyZWF0ZSBleHRlcm5hbCBCcmVhZGNydW1iIHN0cnVjdHVyZXMuPGJyPllvdSBjYW4gYWxzbyBwb2ludCB0byBhIDxlbT5mb2xkZXI8L2VtPiBvZiBoaWVyYXJjaHkgbm90ZXMgYnkgZW50ZXJpbmcgPGNvZGU+Zm9sZGVyTmFtZS88L2NvZGU+IChlbmRpbmcgd2l0aCBhIDxjb2RlPi88L2NvZGU+KS48YnI+SGllcmFyY2h5IG5vdGUgbmFtZXMgYW5kIGZvbGRlcnMgb2YgaGllcmFyY2h5IG5vdGVzIGNhbiBib3RoIGJlIGVudGVyZWQgaW4gdGhlIHNhbWUgY29tbWEtc2VwYXJhdGVkIGxpc3QuXCJcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLmFkZFRleHQoKHRleHQpID0+IHtcclxuICAgICAgdGV4dFxyXG4gICAgICAgIC5zZXRQbGFjZWhvbGRlcihcIkhpZXJhcmNoeSBOb3RlKHMpXCIpXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLmhpZXJhcmNoeU5vdGVzLmpvaW4oXCIsIFwiKSk7XHJcblxyXG4gICAgICB0ZXh0LmlucHV0RWwub25ibHVyID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHNwbGl0cyA9IHNwbGl0QW5kVHJpbSh0ZXh0LmdldFZhbHVlKCkpO1xyXG5cclxuICAgICAgICBzZXR0aW5ncy5oaWVyYXJjaHlOb3RlcyA9IHNwbGl0cztcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuXHJcbiAgbmV3IFNldHRpbmcoaGllcmFyY2h5Tm90ZURldGFpbHMpXHJcbiAgICAuc2V0TmFtZSgnSGllcmFyY2h5IG5vdGUgaXMgcGFyZW50IG9mIHRvcC1sZXZlbCBpdGVtcycpXHJcbiAgICAuc2V0RGVzYygnU2hvdWxkIHRoZSBhY3R1YWwgaGllcmFyY2h5IG5vdGUgYmUgdHJlYXRlZCBhcyB0aGUgcGFyZW50IG9mIGFsbCB0aGUgdG9wLWxldmVsIGl0ZW1zIGluIHRoZSBsaXN0PyBcdTI3MDUgPSBZZXMsIFx1Mjc0QyA9IE5vJylcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xyXG4gICAgICB0b2dnbGVcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3MuaGllcmFyY2h5Tm90ZUlzUGFyZW50KVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLmhpZXJhcmNoeU5vdGVJc1BhcmVudCA9IHZhbHVlXHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAgICAgICB9KVxyXG4gICAgfSlcclxuXHJcbiAgbmV3IFNldHRpbmcoaGllcmFyY2h5Tm90ZURldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkRlZmF1bHQgSGllcmFyY2h5IE5vdGUgRmllbGRcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgXCJCeSBkZWZhdWx0LCBoaWVyYXJjaHkgbm90ZXMgdXNlIHRoZSBmaXJzdCA8Y29kZT51cDwvY29kZT4gZmllbGQgaW4geW91ciBoaWVyYXJjaGllcy4gQ2hvb3NlIGEgZGlmZmVyZW50IG9uZSB0byB1c2UgYnkgZGVmYXVsdC4gSWYgeW91IGRvbid0IHdhbnQgdG8gY2hvb3NlIGEgZGVmYXVsdCwgc2VsZWN0IHRoZSBibGFuayBvcHRpb24gYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdC5cIlxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkRHJvcGRvd24oKGRkOiBEcm9wZG93bkNvbXBvbmVudCkgPT4ge1xyXG4gICAgICBjb25zdCB1cEZpZWxkcyA9IGdldEZpZWxkcyhzZXR0aW5ncy51c2VySGllcnMsIFwidXBcIik7XHJcblxyXG4gICAgICBjb25zdCBvcHRpb25zID0ge307XHJcbiAgICAgIHVwRmllbGRzLmZvckVhY2goXHJcbiAgICAgICAgKGZpZWxkKSA9PiAob3B0aW9uc1tmaWVsZF0gPSBmaWVsZClcclxuICAgICAgKTtcclxuICAgICAgZGQuYWRkT3B0aW9ucyhvcHRpb25zKVxyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5ITlVwRmllbGQgfHwgdXBGaWVsZHNbMF0pXHJcbiAgICAgICAgLm9uQ2hhbmdlKGFzeW5jIChmaWVsZCkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3MuSE5VcEZpZWxkID0gZmllbGQ7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG59XHJcbiIsIG51bGwsICI8c2NyaXB0IGxhbmc9XCJ0c1wiPlxyXG4gIGltcG9ydCB7IE5vdGljZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG4gIGltcG9ydCBGYUxpc3RVbCBmcm9tIFwic3ZlbHRlLWljb25zL2ZhL0ZhTGlzdFVsLnN2ZWx0ZVwiO1xyXG4gIGltcG9ydCBGYVBsdXMgZnJvbSBcInN2ZWx0ZS1pY29ucy9mYS9GYVBsdXMuc3ZlbHRlXCI7XHJcbiAgaW1wb3J0IEZhUmVnVHJhc2hBbHQgZnJvbSBcInN2ZWx0ZS1pY29ucy9mYS9GYVJlZ1RyYXNoQWx0LnN2ZWx0ZVwiO1xyXG4gIGltcG9ydCB7IEFSUk9XX0RJUkVDVElPTlMsIGJsYW5rVXNlckhpZXIsIERJUkVDVElPTlMgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbiAgaW1wb3J0IHR5cGUgeyBVc2VySGllciB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbiAgaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuICBpbXBvcnQgeyBzcGxpdEFuZFRyaW0sIHN3YXBJdGVtcyB9IGZyb20gXCIuLi9VdGlscy9nZW5lcmFsVXRpbHNcIjtcclxuICBpbXBvcnQgeyBoaWVyVG9TdHIgfSBmcm9tIFwiLi4vVXRpbHMvSGllclV0aWxzXCI7XHJcblxyXG4gIGV4cG9ydCBsZXQgcGx1Z2luOiBCQ1BsdWdpbjtcclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcblxyXG4gIGxldCBjdXJySGllcnMgPSBbLi4ucGx1Z2luLnNldHRpbmdzLnVzZXJIaWVyc107XHJcbiAgYXN5bmMgZnVuY3Rpb24gdXBkYXRlKGN1cnJIaWVyczogVXNlckhpZXJbXSkge1xyXG4gICAgcGx1Z2luLnNldHRpbmdzLnVzZXJIaWVycyA9IGN1cnJIaWVycztcclxuICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICB9XHJcbjwvc2NyaXB0PlxyXG5cclxuPGRpdj5cclxuICA8ZGl2IGNsYXNzPVwiQkMtQnV0dG9uc1wiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBhcmlhLWxhYmVsPVwiQWRkIE5ldyBIaWVyYXJjaHlcIlxyXG4gICAgICBvbjpjbGljaz17YXN5bmMgKCkgPT4gKGN1cnJIaWVycyA9IFsuLi5jdXJySGllcnMsIGJsYW5rVXNlckhpZXIoKV0pfVxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxyXG4gICAgICAgIDxGYVBsdXMgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgYXJpYS1sYWJlbD1cIlJlc2V0IEFsbCBIaWVyYXJjaGllc1wiXHJcbiAgICAgIG9uOmNsaWNrPXthc3luYyAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHdpbmRvdy5jb25maXJtKFwiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlc2V0IGFsbCBoaWVyYXJjaGllcz9cIikpIHtcclxuICAgICAgICAgIGN1cnJIaWVycyA9IFtdO1xyXG4gICAgICAgICAgYXdhaXQgdXBkYXRlKGN1cnJIaWVycyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9fVxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxyXG4gICAgICAgIDxGYVJlZ1RyYXNoQWx0IC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIGFyaWEtbGFiZWw9XCJTaG93IEhpZXJhcmNoaWVzXCJcclxuICAgICAgb246Y2xpY2s9eygpID0+IG5ldyBOb3RpY2UoY3VyckhpZXJzLm1hcChoaWVyVG9TdHIpLmpvaW4oXCJcXG5cXG5cIikpfVxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxyXG4gICAgICAgIDxGYUxpc3RVbCAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuICB7I2VhY2ggY3VyckhpZXJzIGFzIGhpZXIsIGl9XHJcbiAgICA8ZGV0YWlscyBjbGFzcz1cIkJDLUhpZXItRGV0YWlsc1wiPlxyXG4gICAgICA8c3VtbWFyeT5cclxuICAgICAgICB7RElSRUNUSU9OUy5tYXAoKGRpcikgPT4gaGllcltkaXJdPy5qb2luKFwiLCBcIikgPz8gXCJcIilcclxuICAgICAgICAgIC5tYXAoKGRpckZpZWxkcykgPT4gYCgke2RpckZpZWxkc30pYClcclxuICAgICAgICAgIC5qb2luKFwiIFwiKX1cclxuXHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJCQy1CdXR0b25zXCI+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTd2FwIHdpdGggSGllcmFyY2h5IEFib3ZlXCJcclxuICAgICAgICAgICAgb246Y2xpY2s9e2FzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICBjdXJySGllcnMgPSBzd2FwSXRlbXMoaSwgaSAtIDEsIGN1cnJIaWVycyk7XHJcbiAgICAgICAgICAgICAgYXdhaXQgdXBkYXRlKGN1cnJIaWVycyk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIFx1MjE5MVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTd2FwIHdpdGggSGllcmFyY2h5IEJlbG93XCJcclxuICAgICAgICAgICAgb246Y2xpY2s9e2FzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICBjdXJySGllcnMgPSBzd2FwSXRlbXMoaSwgaSArIDEsIGN1cnJIaWVycyk7XHJcbiAgICAgICAgICAgICAgYXdhaXQgdXBkYXRlKGN1cnJIaWVycyk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIFx1MjE5M1xyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJSZW1vdmUgSGllcmFyY2h5XCJcclxuICAgICAgICAgICAgb246Y2xpY2s9e2FzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBvbGRIaWVyID0gY3VyckhpZXJzLnNwbGljZShpLCAxKVswXTtcclxuICAgICAgICAgICAgICBvbGRIaWVyLnVwLmZvckVhY2goKHVwRmllbGQpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gc2V0dGluZ3MubGltaXRUcmFpbENoZWNrYm94ZXMuaW5kZXhPZih1cEZpZWxkKTtcclxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSBzZXR0aW5ncy5saW1pdFRyYWlsQ2hlY2tib3hlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICBESVJFQ1RJT05TLmZvckVhY2goKGRpcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgb2xkSGllcltkaXJdLmZvckVhY2goKGZpZWxkKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4SSA9IHNldHRpbmdzLmxpbWl0SnVtcFRvRmlyc3RGaWVsZHMuaW5kZXhPZihmaWVsZCk7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChpbmRleEkgPiAtMSlcclxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncy5saW1pdEp1bXBUb0ZpcnN0RmllbGRzLnNwbGljZShpbmRleEksIDEpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXhKID0gc2V0dGluZ3MubGltaXRXcml0ZUJDQ2hlY2tib3hlcy5pbmRleE9mKGZpZWxkKTtcclxuICAgICAgICAgICAgICAgICAgaWYgKGluZGV4SiA+IC0xKVxyXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLmxpbWl0SnVtcFRvRmlyc3RGaWVsZHMuc3BsaWNlKGluZGV4SiwgMSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgY3VyckhpZXJzID0gY3VyckhpZXJzO1xyXG4gICAgICAgICAgICAgIGF3YWl0IHVwZGF0ZShjdXJySGllcnMpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICBYXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvc3VtbWFyeT5cclxuICAgICAgeyNlYWNoIERJUkVDVElPTlMgYXMgZGlyfVxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJCQy1BcnJvdy1MYWJlbFwiIGZvcj17ZGlyfT5cclxuICAgICAgICAgICAge0FSUk9XX0RJUkVDVElPTlNbZGlyXX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBzaXplPVwiMjBcIlxyXG4gICAgICAgICAgICBuYW1lPXtkaXJ9XHJcbiAgICAgICAgICAgIHZhbHVlPXtoaWVyW2Rpcl0/LmpvaW4oXCIsIFwiKSA/PyBcIlwifVxyXG4gICAgICAgICAgICBvbjpjaGFuZ2U9e2FzeW5jIChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gZS50YXJnZXQ7XHJcbiAgICAgICAgICAgICAgY29uc3Qgc3BsaXRzID0gc3BsaXRBbmRUcmltKHZhbHVlKTtcclxuICAgICAgICAgICAgICBjdXJySGllcnNbaV1bZGlyXSA9IHNwbGl0cztcclxuICAgICAgICAgICAgICBhd2FpdCB1cGRhdGUoY3VyckhpZXJzKTtcclxuXHJcbiAgICAgICAgICAgICAgc3BsaXRzLmZvckVhY2goKHNwbGl0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgIGRpciA9PT0gXCJ1cFwiICYmXHJcbiAgICAgICAgICAgICAgICAgICFzZXR0aW5ncy5saW1pdFRyYWlsQ2hlY2tib3hlcy5pbmNsdWRlcyhzcGxpdClcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgc2V0dGluZ3MubGltaXRUcmFpbENoZWNrYm94ZXMucHVzaChzcGxpdCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXNldHRpbmdzLmxpbWl0SnVtcFRvRmlyc3RGaWVsZHMuaW5jbHVkZXMoc3BsaXQpKVxyXG4gICAgICAgICAgICAgICAgICBzZXR0aW5ncy5saW1pdEp1bXBUb0ZpcnN0RmllbGRzLnB1c2goc3BsaXQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFzZXR0aW5ncy5saW1pdFdyaXRlQkNDaGVja2JveGVzLmluY2x1ZGVzKHNwbGl0KSlcclxuICAgICAgICAgICAgICAgICAgc2V0dGluZ3MubGltaXRXcml0ZUJDQ2hlY2tib3hlcy5wdXNoKHNwbGl0KTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB7L2VhY2h9XHJcbiAgICA8L2RldGFpbHM+XHJcbiAgey9lYWNofVxyXG48L2Rpdj5cclxuXHJcbjxzdHlsZT5cclxuICBsYWJlbC5CQy1BcnJvdy1MYWJlbCB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogMjBweCAhaW1wb3J0YW50O1xyXG4gIH1cclxuICBkaXYuQkMtQnV0dG9ucyB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gIH1cclxuXHJcbiAgZGV0YWlscy5CQy1IaWVyLURldGFpbHMge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYmFja2dyb3VuZC1tb2RpZmllci1ib3JkZXIpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIHBhZGRpbmc6IDEwcHggNXB4IDEwcHggMTBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgfVxyXG4gIC5CQy1IaWVyLURldGFpbHMgc3VtbWFyeTo6bWFya2VyIHtcclxuICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICB9XHJcblxyXG4gIC5CQy1IaWVyLURldGFpbHMgc3VtbWFyeSBidXR0b24ge1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gIH1cclxuICAuaWNvbiB7XHJcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1ub3JtYWwpO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy10b3A6IDNweDtcclxuICAgIHdpZHRoOiAxN3B4O1xyXG4gICAgaGVpZ2h0OiAxN3B4O1xyXG4gIH1cclxuPC9zdHlsZT5cclxuIiwgIjxzY3JpcHQ+XG4gIGV4cG9ydCBsZXQgdGl0bGUgPSBudWxsO1xuICBleHBvcnQgbGV0IHZpZXdCb3g7XG48L3NjcmlwdD5cblxuPHN0eWxlPlxuICBzdmcge1xuICAgIHN0cm9rZTogY3VycmVudENvbG9yO1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICBzdHJva2Utd2lkdGg6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH0gIFxuPC9zdHlsZT5cblxuPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIge3ZpZXdCb3h9PlxuICB7I2lmIHRpdGxlfVxuICAgIDx0aXRsZT57dGl0bGV9PC90aXRsZT5cbiAgey9pZn1cbiAgPHNsb3QgLz5cbjwvc3ZnPlxuIiwgIjxzY3JpcHQ+XG4gICAgICAgIGltcG9ydCBJY29uQmFzZSBmcm9tICcuLi9jb21wb25lbnRzL0ljb25CYXNlLnN2ZWx0ZSc7XG4gICAgICAgIDwvc2NyaXB0PlxuICAgICAgICA8SWNvbkJhc2Ugdmlld0JveD1cIjAgMCA1MTIgNTEyXCIgey4uLiQkcHJvcHN9PlxuICAgICAgICAgIDxwYXRoIGQ9XCJNNDggNDhhNDggNDggMCAxIDAgNDggNDggNDggNDggMCAwIDAtNDgtNDh6bTAgMTYwYTQ4IDQ4IDAgMSAwIDQ4IDQ4IDQ4IDQ4IDAgMCAwLTQ4LTQ4em0wIDE2MGE0OCA0OCAwIDEgMCA0OCA0OCA0OCA0OCAwIDAgMC00OC00OHptNDQ4IDE2SDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTMyMEgxNzZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzIwYTE2IDE2IDAgMCAwIDE2LTE2VjgwYTE2IDE2IDAgMCAwLTE2LTE2em0wIDE2MEgxNzZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzIwYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpcIiAvPlxuICAgICAgICA8L0ljb25CYXNlPlxuICAgICAgIiwgIjxzY3JpcHQ+XG4gICAgICAgIGltcG9ydCBJY29uQmFzZSBmcm9tICcuLi9jb21wb25lbnRzL0ljb25CYXNlLnN2ZWx0ZSc7XG4gICAgICAgIDwvc2NyaXB0PlxuICAgICAgICA8SWNvbkJhc2Ugdmlld0JveD1cIjAgMCA0NDggNTEyXCIgey4uLiQkcHJvcHN9PlxuICAgICAgICAgIDxwYXRoIGQ9XCJNNDE2IDIwOEgyNzJWNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTQ0SDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMTQ0djE0NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMzA0aDE0NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwiIC8+XG4gICAgICAgIDwvSWNvbkJhc2U+XG4gICAgICAiLCAiPHNjcmlwdD5cbiAgICAgICAgaW1wb3J0IEljb25CYXNlIGZyb20gJy4uL2NvbXBvbmVudHMvSWNvbkJhc2Uuc3ZlbHRlJztcbiAgICAgICAgPC9zY3JpcHQ+XG4gICAgICAgIDxJY29uQmFzZSB2aWV3Qm94PVwiMCAwIDQ0OCA1MTJcIiB7Li4uJCRwcm9wc30+XG4gICAgICAgICAgPHBhdGggZD1cIk0yNjggNDE2aDI0YTEyIDEyIDAgMCAwIDEyLTEyVjE4OGExMiAxMiAwIDAgMC0xMi0xMmgtMjRhMTIgMTIgMCAwIDAtMTIgMTJ2MjE2YTEyIDEyIDAgMCAwIDEyIDEyek00MzIgODBoLTgyLjQxbC0zNC01Ni43QTQ4IDQ4IDAgMCAwIDI3NC40MSAwSDE3My41OWE0OCA0OCAwIDAgMC00MS4xNiAyMy4zTDk4LjQxIDgwSDE2QTE2IDE2IDAgMCAwIDAgOTZ2MTZhMTYgMTYgMCAwIDAgMTYgMTZoMTZ2MzM2YTQ4IDQ4IDAgMCAwIDQ4IDQ4aDI4OGE0OCA0OCAwIDAgMCA0OC00OFYxMjhoMTZhMTYgMTYgMCAwIDAgMTYtMTZWOTZhMTYgMTYgMCAwIDAtMTYtMTZ6TTE3MS44NCA1MC45MUE2IDYgMCAwIDEgMTc3IDQ4aDk0YTYgNiAwIDAgMSA1LjE1IDIuOTFMMjkzLjYxIDgwSDE1NC4zOXpNMzY4IDQ2NEg4MFYxMjhoMjg4em0tMjEyLTQ4aDI0YTEyIDEyIDAgMCAwIDEyLTEyVjE4OGExMiAxMiAwIDAgMC0xMi0xMmgtMjRhMTIgMTIgMCAwIDAtMTIgMTJ2MjE2YTEyIDEyIDAgMCAwIDEyIDEyelwiIC8+XG4gICAgICAgIDwvSWNvbkJhc2U+XG4gICAgICAiLCAiaW1wb3J0IFVzZXJIaWVyYXJjaGllcyBmcm9tIFwiLi4vQ29tcG9uZW50cy9Vc2VySGllcmFyY2hpZXMuc3ZlbHRlXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IGRldGFpbHMgfSBmcm9tIFwiLi9CcmVhZGNydW1ic1NldHRpbmdUYWJcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRIaWVyYXJjaHlTZXR0aW5ncyhcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudFxyXG4pIHtcclxuICBjb25zdCBmaWVsZERldGFpbHMgPSBkZXRhaWxzKFwiSGllcmFyY2hpZXNcIiwgY29udGFpbmVyRWwpO1xyXG5cclxuICBmaWVsZERldGFpbHMuY3JlYXRlRWwoXCJwXCIsIHtcclxuICAgIHRleHQ6IFwiSGVyZSB5b3UgY2FuIHNldCB1cCBkaWZmZXJlbnQgaGllcmFyY2hpZXMgeW91IHVzZSBpbiB5b3VyIHZhdWx0LiBUbyBhZGQgYSBuZXcgaGllcmFyY2h5LCBjbGljayB0aGUgcGx1cyBidXR0b24uIFRoZW4sIGZpbGwgaW4gdGhlIGZpZWxkIG5hbWVzIG9mIHlvdXIgaGllcmFjaHkgaW50byB0aGUgNSBib3hlcyB0aGF0IGFwcGVhci5cIixcclxuICB9KTtcclxuICBmaWVsZERldGFpbHMuY3JlYXRlRWwoXCJwXCIsIHtcclxuICAgIHRleHQ6IFwiRm9yIGVhY2ggZGlyZWN0aW9uLCB5b3UgY2FuIGVudGVyIG11bHRpcGxlIGZpZWxkIG5hbWVzIGluIGEgY29tbWEtc2VwZXJhdGVkIGxpc3QuIEZvciBleGFtcGxlOiBgcGFyZW50LCBicm9hZGVyLCB1cHBlcmBcIixcclxuICB9KTtcclxuXHJcbiAgbmV3IFVzZXJIaWVyYXJjaGllcyh7XHJcbiAgICB0YXJnZXQ6IGZpZWxkRGV0YWlscyxcclxuICAgIHByb3BzOiB7IHBsdWdpbiB9LFxyXG4gIH0pO1xyXG59XHJcbiIsIG51bGwsICI8c2NyaXB0IGxhbmc9XCJ0c1wiPlxyXG4gIGltcG9ydCB7IHdhcm4gfSBmcm9tIFwibG9nbGV2ZWxcIjtcclxuICBpbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG4gIGltcG9ydCB7IHJlZnJlc2hJbmRleCB9IGZyb20gXCIuLi9yZWZyZXNoSW5kZXhcIjtcclxuXHJcbiAgZXhwb3J0IGxldCBwbHVnaW46IEJDUGx1Z2luO1xyXG4gIGV4cG9ydCBsZXQgc2V0dGluZ05hbWU6IHN0cmluZztcclxuICBleHBvcnQgbGV0IG9wdGlvbnM6IHN0cmluZ1tdO1xyXG5cclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcblxyXG4gIGxldCBzZWxlY3RlZCA9IHNldHRpbmdzW3NldHRpbmdOYW1lXTtcclxuXHJcbiAgJDogdG9Ob25lID0gc2VsZWN0ZWQubGVuZ3RoID09PSAwID8gZmFsc2UgOiB0cnVlO1xyXG5cclxuICBhc3luYyBmdW5jdGlvbiBzYXZlKCkge1xyXG4gICAgaWYgKHNldHRpbmdzW3NldHRpbmdOYW1lXSA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICByZXR1cm4gd2FybihzZXR0aW5nTmFtZSArIFwiIG5vdCBmb3VuZCBpbiBCQyBzZXR0aW5nc1wiKTtcclxuXHJcbiAgICBzZXR0aW5nc1tzZXR0aW5nTmFtZV0gPSBzZWxlY3RlZDtcclxuICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgIGF3YWl0IHJlZnJlc2hJbmRleChwbHVnaW4pO1xyXG4gIH1cclxuPC9zY3JpcHQ+XHJcblxyXG48ZGl2PlxyXG4gIDxidXR0b25cclxuICAgIG9uOmNsaWNrPXthc3luYyAoKSA9PiB7XHJcbiAgICAgIGlmICh0b05vbmUpIHNlbGVjdGVkID0gW107XHJcbiAgICAgIGVsc2Ugc2VsZWN0ZWQgPSBvcHRpb25zO1xyXG4gICAgICBhd2FpdCBzYXZlKCk7XHJcbiAgICB9fVxyXG4gID5cclxuICAgIFNlbGVjdCB7dG9Ob25lID8gXCJOb25lXCIgOiBcIkFsbFwifVxyXG4gIDwvYnV0dG9uPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJncmlkXCI+XHJcbiAgeyNlYWNoIG9wdGlvbnMgYXMgb3B0aW9ufVxyXG4gICAgPGRpdj5cclxuICAgICAgPGxhYmVsPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgIHZhbHVlPXtvcHRpb259XHJcbiAgICAgICAgICBiaW5kOmdyb3VwPXtzZWxlY3RlZH1cclxuICAgICAgICAgIG9uOmNoYW5nZT17YXN5bmMgKCkgPT4gYXdhaXQgc2F2ZSgpfVxyXG4gICAgICAgIC8+XHJcbiAgICAgICAge29wdGlvbn1cclxuICAgICAgPC9sYWJlbD5cclxuICAgIDwvZGl2PlxyXG4gIHsvZWFjaH1cclxuPC9kaXY+XHJcblxyXG48c3R5bGU+XHJcbiAgLmdyaWQge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTAwcHgsIDFmcikpO1xyXG4gIH1cclxuPC9zdHlsZT5cclxuIiwgImltcG9ydCBDaGVja2JveGVzIGZyb20gXCIuLi9Db21wb25lbnRzL0NoZWNrYm94ZXMuc3ZlbHRlXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IGdldEZpZWxkcyB9IGZyb20gXCIuLi9VdGlscy9IaWVyVXRpbHNcIjtcclxuaW1wb3J0IHsgc3ViRGV0YWlscyB9IGZyb20gXCIuL0JyZWFkY3J1bWJzU2V0dGluZ1RhYlwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZEp1bXBUb05leHRTZXR0aW5ncyhcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIHZpZXdEZXRhaWxzOiBIVE1MRGV0YWlsc0VsZW1lbnRcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IGp1bXBUb0RpckRldGFpbHMgPSBzdWJEZXRhaWxzKFwiSnVtcCB0byBOZXh0IERpcmVjdGlvblwiLCB2aWV3RGV0YWlscyk7XHJcblxyXG4gIGp1bXBUb0RpckRldGFpbHMuY3JlYXRlRGl2KHsgY2xzOiAnc2V0dGluZy1pdGVtLW5hbWUnLCB0ZXh0OiAnTGltaXQgd2hpY2ggZmllbGRzIHRvIGp1bXAgdG8nIH0pXHJcblxyXG4gIG5ldyBDaGVja2JveGVzKHtcclxuICAgIHRhcmdldDoganVtcFRvRGlyRGV0YWlscyxcclxuICAgIHByb3BzOiB7XHJcbiAgICAgIHBsdWdpbixcclxuICAgICAgc2V0dGluZ05hbWU6IFwibGltaXRKdW1wVG9GaXJzdEZpZWxkc1wiLFxyXG4gICAgICBvcHRpb25zOiBnZXRGaWVsZHMoc2V0dGluZ3MudXNlckhpZXJzKSxcclxuICAgIH0sXHJcbiAgfSk7XHJcbn1cclxuIiwgImltcG9ydCB7IE5vdGljZSwgU2V0dGluZyB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgeyBvcGVuVmlldyB9IGZyb20gXCJvYnNpZGlhbi1jb21tdW5pdHktbGliL2Rpc3QvdXRpbHNcIjtcclxuaW1wb3J0IHsgTUFUUklYX1ZJRVcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCBNYXRyaXhWaWV3IGZyb20gXCIuLi9WaWV3cy9NYXRyaXhWaWV3XCI7XHJcbmltcG9ydCB7IGZyYWdXaXRoSFRNTCwgc3ViRGV0YWlscyB9IGZyb20gXCIuL0JyZWFkY3J1bWJzU2V0dGluZ1RhYlwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZE1hdHJpeFZpZXdTZXR0aW5ncyhcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIHZpZXdEZXRhaWxzOiBIVE1MRGV0YWlsc0VsZW1lbnRcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IE1MVmlld0RldGFpbHMgPSBzdWJEZXRhaWxzKFwiTWF0cml4IFZpZXdcIiwgdmlld0RldGFpbHMpO1xyXG5cclxuICBuZXcgU2V0dGluZyhNTFZpZXdEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJTaG93IGFsbCBmaWVsZCBuYW1lcyBvciBqdXN0IHJlbGF0aW9uIHR5cGVzXCIpXHJcbiAgICAuc2V0RGVzYyhmcmFnV2l0aEhUTUwoXHJcbiAgICAgIFwiU2hvdyB0aGUgbGlzdCBvZiBtZXRhZGF0YSBmaWVsZHMgZm9yIGVhY2ggcmVsYXRpb24gdHlwZSAoZS5nLiA8Y29kZT5wYXJlbnQsIGJyb2FkZXIsIHVwcGVyPC9jb2RlPiksIG9yIGp1c3QgdGhlIG5hbWUgb2YgdGhlIHJlbGF0aW9uIHR5cGUsIGkuZS4gJzxjb2RlPlBhcmVudDwvY29kZT4nLCAnPGNvZGU+U2libGluZzwvY29kZT4nLCAnPGNvZGU+Q2hpbGQ8L2NvZGU+Jy48L2JyPlx1MjcwNSA9IHNob3cgdGhlIGZ1bGwgbGlzdC5cIilcclxuICAgIClcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cclxuICAgICAgdG9nZ2xlLnNldFZhbHVlKHNldHRpbmdzLnNob3dOYW1lT3JUeXBlKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5zaG93TmFtZU9yVHlwZSA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uZ2V0QWN0aXZlVFlQRVZpZXcoTUFUUklYX1ZJRVcpLmRyYXcoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKE1MVmlld0RldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIlNob3cgUmVsYXRpb25zaGlwIFR5cGVcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgXCJTaG93IHdoZXRoZXIgYSBsaW5rIGlzIHJlYWwgb3IgaW1wbGllZC5cIlxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgIHRvZ2dsZS5zZXRWYWx1ZShzZXR0aW5ncy5zaG93UmVsYXRpb25UeXBlKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5zaG93UmVsYXRpb25UeXBlID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5nZXRBY3RpdmVUWVBFVmlldyhNQVRSSVhfVklFVykuZHJhdygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgbmV3IFNldHRpbmcoTUxWaWV3RGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiRGlyZWN0aW9ucyBPcmRlclwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBgQ2hhbmdlIHRoZSBvcmRlciBpbiB3aGljaCB0aGUgZGlyZWN0aW9ucyBhcHBlYXIgaW4gdGhlIE1hdHJpeCB2aWV3LjwvYnI+VGhlIGRlZmF1bHQgaXMgXCJ1cCwgc2FtZSwgZG93biwgbmV4dCwgcHJldlwiICg8Y29kZT4wMTIzNDwvY29kZT4pLlxyXG4gICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICA8bGk+MCBcdTIxOTIgdXA8L2xpPlxyXG4gICAgICAgICAgICA8bGk+MSBcdTIxOTIgc2FtZTwvbGk+XHJcbiAgICAgICAgICAgIDxsaT4yIFx1MjE5MiBkb3duPC9saT5cclxuICAgICAgICAgICAgPGxpPjMgXHUyMTkyIG5leHQ8L2xpPlxyXG4gICAgICAgICAgICA8bGk+NCBcdTIxOTIgcHJldjwvbGk+XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgPHN0cm9uZz5Ob3RlPC9zdHJvbmc+OiBZb3UgY2FuIHJlbW92ZSBudW1iZXJzIHRvIGhpZGUgdGhvc2UgZGlyZWN0aW9ucyBpbiB0aGUgTWF0cml4IFZpZXcuIEZvciBleGFtcGxlLCA8Y29kZT4wMjwvY29kZT4gd2lsbCBvbmx5IHNob3cgdXAgYW5kIGRvd24sIGluIHRoYXQgb3JkZXIuYFxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkVGV4dCgodGV4dCkgPT4ge1xyXG4gICAgICB0ZXh0LnNldFZhbHVlKHNldHRpbmdzLnNxdWFyZURpcmVjdGlvbnNPcmRlci5qb2luKFwiXCIpKTtcclxuICAgICAgdGV4dC5pbnB1dEVsLm9uYmx1ciA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRleHQuZ2V0VmFsdWUoKTtcclxuICAgICAgICBjb25zdCB2YWx1ZXMgPSB2YWx1ZS5zcGxpdChcIlwiKTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB2YWx1ZS5sZW5ndGggPD0gNSAmJlxyXG4gICAgICAgICAgdmFsdWVzLmV2ZXJ5KCh2YWx1ZSkgPT4gW1wiMFwiLCBcIjFcIiwgXCIyXCIsIFwiM1wiLCBcIjRcIl0uaW5jbHVkZXModmFsdWUpKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgc2V0dGluZ3Muc3F1YXJlRGlyZWN0aW9uc09yZGVyID0gdmFsdWVzLm1hcCgob3JkZXIpID0+XHJcbiAgICAgICAgICAgIE51bWJlci5wYXJzZUludChvcmRlcilcclxuICAgICAgICAgICkgYXMgKDAgfCAxIHwgMiB8IDMgfCA0KVtdO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLmdldEFjdGl2ZVRZUEVWaWV3KE1BVFJJWF9WSUVXKS5kcmF3KCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG5ldyBOb3RpY2UoXHJcbiAgICAgICAgICAgICdUaGUgdmFsdWUgbXVzdCBiZSBhIDUgZGlnaXQgbnVtYmVyIHVzaW5nIG9ubHkgdGhlIGRpZ2l0cyBcIjBcIiwgXCIxXCIsIFwiMlwiLCBcIjNcIiwgXCI0XCInXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH0pO1xyXG5cclxuICBuZXcgU2V0dGluZyhNTFZpZXdEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJFbmFibGUgQWxwaGFiZXRpY2FsIFNvcnRpbmdcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBcIkJ5IGRlZmF1bHQsIGl0ZW1zIGluIHRoZSBNYXRyaXggdmlldyBhcmUgc29ydGVkIGJ5IHRoZSBvcmRlciB0aGV5IGFwcGVhciBpbiB5b3VyIG5vdGVzLiBUb2dnbGUgdGhpcyBvbiB0byBlbmFibGUgYWxwaGFiZXRpY2FsIHNvcnRpbmcuXCJcclxuICAgIClcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cclxuICAgICAgdG9nZ2xlLnNldFZhbHVlKHNldHRpbmdzLmVuYWJsZUFscGhhU29ydCkub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MuZW5hYmxlQWxwaGFTb3J0ID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5nZXRBY3RpdmVUWVBFVmlldyhNQVRSSVhfVklFVykuZHJhdygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgLy8gVE9ETyBoaWRlIHRoaXMgc2V0dGluZyBpZiAhZW5hYmxlQWxwaGFTb3J0XHJcbiAgbmV3IFNldHRpbmcoTUxWaWV3RGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiU29ydCBBbHBoYWJldGljYWxseSBBc2NlbmRpbmcvRGVzY2VuZGluZ1wiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIFwiU29ydCBzcXVhcmUgaXRlbXMgYWxwaGFiZXRpY2FsbHkgaW4gQXNjZW5kaW5nIChcdTI3MDUpIG9yIERlc2NlbmRpbmcgKFx1Mjc0Qykgb3JkZXIuXCJcclxuICAgIClcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cclxuICAgICAgdG9nZ2xlLnNldFZhbHVlKHNldHRpbmdzLmFscGhhU29ydEFzYykub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MuYWxwaGFTb3J0QXNjID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5nZXRBY3RpdmVUWVBFVmlldyhNQVRSSVhfVklFVykuZHJhdygpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgbmV3IFNldHRpbmcoTUxWaWV3RGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiU29ydCBieSBub3RlIG5hbWUsIGJ1dCBzaG93IGFsaWFzXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgXCJXaGVuIHRoaXMgaXMgdHVybmVkIG9mZiwgbm90ZXMgd2lsbCBmaXJzdCBiZSBzb3J0ZWQgYnkgdGhlaXIgYWxpYXMsIGFuZCB0aGVuIGJ5IHRoZWlyIG5hbWUgaWYgbm8gYWxpYXMgaXMgZm91bmQuIFR1cm4gdGhpcyBvbiB0byBzb3J0IGJ5IG5vdGUgbmFtZSBhbHdheXMsIGJ1dCBzdGlsbCBzaG93IHRoZSBhbGlhcyBpbiB0aGUgcmVzdWx0cy5cIlxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGUuc2V0VmFsdWUoc2V0dGluZ3Muc29ydEJ5TmFtZVNob3dBbGlhcykub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3Muc29ydEJ5TmFtZVNob3dBbGlhcyA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uZ2V0QWN0aXZlVFlQRVZpZXcoTUFUUklYX1ZJRVcpLmRyYXcoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKE1MVmlld0RldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIlNob3cgSW1wbGllZCBSZWxhdGlvbnNcIilcclxuICAgIC5zZXREZXNjKFwiV2hldGhlciBvciBub3QgdG8gc2hvdyBpbXBsaWVkIHJlbGF0aW9ucyBhdCBhbGwuXCIpXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgIHRvZ2dsZS5zZXRWYWx1ZShzZXR0aW5ncy5zaG93SW1wbGllZFJlbGF0aW9ucykub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3Muc2hvd0ltcGxpZWRSZWxhdGlvbnMgPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLmdldEFjdGl2ZVRZUEVWaWV3KE1BVFJJWF9WSUVXKS5kcmF3KCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICAvLyBUT0RPIEkgZG9uJ3QgdGhpbmsgdGhpcyBzZXR0aW5nIHdvcmtzIGFueW1vcmUuIEkgcmVtb3ZlZCBpdCdzIGZ1bmN0aW9uYWxpdHkgd2hlbiBhZGRpbmcgbXVsdGlwbGUgaGllcmFyY2hpZXNcclxuICAvLyBuZXcgU2V0dGluZyhNTFZpZXdEZXRhaWxzKVxyXG4gIC8vICAgLnNldE5hbWUoXCJGaWx0ZXIgSW1wbGllZCBTaWJsaW5nc1wiKVxyXG4gIC8vICAgLnNldERlc2MoXHJcbiAgLy8gICAgIGZyYWdXaXRoSFRNTChcclxuICAvLyAgICAgICBgSW1wbGllZCBzaWJsaW5ncyBhcmU6XHJcbiAgLy8gICAgICAgICA8b2w+XHJcbiAgLy8gICAgICAgICAgIDxsaT5ub3RlcyB3aXRoIHRoZSBzYW1lIHBhcmVudCwgb3I8L2xpPlxyXG4gIC8vICAgICAgICAgICA8bGk+bm90ZXMgdGhhdCBhcmUgcmVhbCBzaWJsaW5ncy48L2xpPlxyXG4gIC8vICAgICAgICAgPC9vbD5cclxuICAvLyAgICAgICAgIFRoaXMgc2V0dGluZyBvbmx5IGFwcGxpZXMgdG8gdHlwZSAxIGltcGxpZWQgc2libGluZ3MuIElmIGVuYWJsZWQsIEJyZWFkY3J1bWJzIHdpbGwgZmlsdGVyIHR5cGUgMSBpbXBsaWVkIHNpYmxpbmdzIHNvIHRoYXQgdGhleSBub3Qgb25seSBzaGFyZSB0aGUgc2FtZSBwYXJlbnQsIGJ1dCB0aGUgcGFyZW50IHJlbGF0aW9uIGhhcyB0aGUgZXhhY3Qgc2FtZSB0eXBlLiBGb3IgZXhhbXBsZSwgdGhlIHR3byByZWFsIHJlbGF0aW9ucyA8Y29kZT5CIC1wYXJlbnQtPiBBPC9jb2RlPiwgYW5kIDxjb2RlPkMgLXBhcmVudC0+IEE8L2NvZGU+IGNyZWF0ZSBhbiBpbXBsaWVkIHNpYmxpbmcgYmV0d2VlbiBCIGFuZCBDICh0aGV5IGhhdmUgdGhlIHNhbWUgcGFyZW50LCBBKS4gVGhlIHR3byByZWFsIHJlbGF0aW9ucyA8Y29kZT5CIC1wYXJlbnQtPiBBPC9jb2RlPiwgYW5kIDxjb2RlPkMgLXVwLT4gQTwvY29kZT4gY3JlYXRlIGFuIGltcGxpZWQgc2libGluZyBiZXR3ZWVuIEIgYW5kIEMgKHRoZXkgYWxzbyBoYXZlIHRoZSBzYW1lIHBhcmVudCwgQSkuIEJ1dCBpZiB0aGlzIHNldHRpbmcgaXMgdHVybmVkIG9uLCB0aGUgc2Vjb25kIGltcGxpZWQgc2libGluZyB3b3VsZCBub3Qgc2hvdywgYmVjYXVzZSB0aGUgcGFyZW50IHR5cGVzIGFyZSBkaWZmZXJuZXQgKHBhcmVudCB2ZXJzdXMgdXApLmBcclxuICAvLyAgICAgKVxyXG4gIC8vICAgKVxyXG4gIC8vICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gIC8vICAgICB0b2dnbGVcclxuICAvLyAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3MuZmlsdGVySW1wbGllZFNpYmxpbmdzT2ZEaWZmZXJlbnRUeXBlcylcclxuICAvLyAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgLy8gICAgICAgICBzZXR0aW5ncy5maWx0ZXJJbXBsaWVkU2libGluZ3NPZkRpZmZlcmVudFR5cGVzID0gdmFsdWU7XHJcbiAgLy8gICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgLy8gICAgICAgICBhd2FpdCBwbHVnaW4uZ2V0QWN0aXZlVFlQRVZpZXcoTUFUUklYX1ZJRVcpLmRyYXcoKTtcclxuICAvLyAgICAgICB9KVxyXG4gIC8vICAgKTtcclxuXHJcbiAgbmV3IFNldHRpbmcoTUxWaWV3RGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiT3BlbiBWaWV3IGluIFJpZ2h0IG9yIExlZnQgc2lkZVwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIFwiV2hlbiBsb2FkaW5nIHRoZSBtYXRyaXggdmlldywgc2hvdWxkIGl0IG9wZW4gb24gdGhlIGxlZnQgb3IgcmlnaHQgc2lkZSBsZWFmPyBcdTI3MDUgPSBSaWdodCwgXHUyNzRDID0gTGVmdC5cIlxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGUuc2V0VmFsdWUoc2V0dGluZ3MucmxMZWFmKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5ybExlYWYgPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgYXBwLndvcmtzcGFjZS5kZXRhY2hMZWF2ZXNPZlR5cGUoTUFUUklYX1ZJRVcpO1xyXG4gICAgICAgIGF3YWl0IG9wZW5WaWV3KFxyXG4gICAgICAgICAgYXBwLFxyXG4gICAgICAgICAgTUFUUklYX1ZJRVcsXHJcbiAgICAgICAgICBNYXRyaXhWaWV3LFxyXG4gICAgICAgICAgdmFsdWUgPyBcInJpZ2h0XCIgOiBcImxlZnRcIlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG59XHJcbiIsICJpbXBvcnQgeyBOb3RpY2UsIFNldHRpbmcgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgcmVmcmVzaEluZGV4IH0gZnJvbSBcIi4uL3JlZnJlc2hJbmRleFwiO1xyXG5pbXBvcnQgeyBzdHJUb1JlZ2V4IH0gZnJvbSBcIi4uL1V0aWxzL2dlbmVyYWxVdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXRGaWVsZHMgfSBmcm9tIFwiLi4vVXRpbHMvSGllclV0aWxzXCI7XHJcbmltcG9ydCB7IGZyYWdXaXRoSFRNTCwgc3ViRGV0YWlscyB9IGZyb20gXCIuL0JyZWFkY3J1bWJzU2V0dGluZ1RhYlwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZE5vU3lzdGVtU2V0dGluZ3MoXHJcbiAgcGx1Z2luOiBCQ1BsdWdpbixcclxuICBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHM6IEhUTUxEZXRhaWxzRWxlbWVudFxyXG4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgeyB1c2VySGllcnMgfSA9IHNldHRpbmdzO1xyXG4gIGNvbnN0IGZpZWxkcyA9IGdldEZpZWxkcyh1c2VySGllcnMpO1xyXG5cclxuICBjb25zdCBub1N5c3RlbURldGFpbHMgPSBzdWJEZXRhaWxzKFxyXG4gICAgXCJOYW1pbmcgU3lzdGVtXCIsXHJcbiAgICBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHNcclxuICApO1xyXG5cclxuICBuZXcgU2V0dGluZyhub1N5c3RlbURldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIk5hbWluZyBTeXN0ZW0gUmVnZXhcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgXCJJZiB5b3UgbmFtZSB5b3VyIG5vdGVzIHVzaW5nIHRoZSBKb2hubnkgRGVjaW1hbCBTeXN0ZW0gb3IgYSByZWxhdGVkIHN5c3RlbSwgZW50ZXIgYSByZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2hpbmcgdGhlIGxvbmdlc3QgcG9zc2libGUgbmFtaW5nIHN5c3RlbSB5b3UgdXNlLiBUaGUgcmVnZXggc2hvdWxkIG9ubHkgbWF0Y2ggdGhlIG5hbWluZyBzeXN0ZW0gcGFydCBvZiB0aGUgbmFtZSwgbm90IHRoZSBhY3R1YWwgbm90ZSB0aXRsZS48L2JyPiBGb3IgZXhhbXBsZSwgaWYgeW91IHVzZSB0aGUgSm9obm55IERlY2ltYWwgU3lzdGVtLCB5b3UgbWlnaHQgdXNlIDxjb2RlPi9eXFxcXGRcXFxcLlxcXFxkXFxcXC5cXFxcdy9nPC9jb2RlPiB0byBtYXRjaCB0aGUgbm90ZSBuYW1lZCA8Y29kZT4xLjIuYSBDYXJzPC9jb2RlPi48L2JyPklmIHlvdSBkb24ndCB3YW50IHRvIGNob29zZSBhIGRlZmF1bHQsIHNlbGVjdCB0aGUgYmxhbmsgb3B0aW9uIGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3QuXCJcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLmFkZFRleHQoKHRleHQpID0+IHtcclxuICAgICAgdGV4dC5zZXRWYWx1ZShzZXR0aW5ncy5uYW1pbmdTeXN0ZW1SZWdleCk7XHJcbiAgICAgIHRleHQuaW5wdXRFbC5vbmJsdXIgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0ZXh0LmdldFZhbHVlKCk7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSBcIlwiIHx8IHN0clRvUmVnZXgodmFsdWUpKSB7XHJcbiAgICAgICAgICBzZXR0aW5ncy5uYW1pbmdTeXN0ZW1SZWdleCA9IHZhbHVlO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgYXdhaXQgcmVmcmVzaEluZGV4KHBsdWdpbik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG5ldyBOb3RpY2UoXCJJbnZhbGlkIFJlZ2V4XCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIG5ldyBTZXR0aW5nKG5vU3lzdGVtRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiTmFtaW5nIFN5c3RlbSBEZWxpbWl0ZXJcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgXCJXaGF0IGNoYXJhY3RlciBkbyB5b3UgdXNlIHRvIHNwbGl0IHVwIHlvdXIgbmFtaW5nIGNvbnZlbnRpb24/IEZvciBleGFtcGxlLCBpZiB5b3UgdXNlIDxjb2RlPjEuMi5hLmI8L2NvZGU+LCB0aGVuIHlvdXIgZGVsaW1pdGVyIGlzIGEgcGVyaW9kICg8Y29kZT4uPC9jb2RlPikuXCJcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLmFkZFRleHQoKHRleHQpID0+IHtcclxuICAgICAgdGV4dC5zZXRWYWx1ZShzZXR0aW5ncy5uYW1pbmdTeXN0ZW1TcGxpdCk7XHJcbiAgICAgIHRleHQuaW5wdXRFbC5vbmJsdXIgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0ZXh0LmdldFZhbHVlKCk7XHJcbiAgICAgICAgc2V0dGluZ3MubmFtaW5nU3lzdGVtU3BsaXQgPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgYXdhaXQgcmVmcmVzaEluZGV4KHBsdWdpbik7XHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuXHJcbiAgbmV3IFNldHRpbmcobm9TeXN0ZW1EZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJOYW1pbmcgU3lzdGVtIEZpZWxkXCIpXHJcbiAgICAuc2V0RGVzYyhcIldoaWNoIGZpZWxkIHNob3VsZCBCcmVhZGNydW1icyB1c2UgZm9yIE5hbWluZyBTeXN0ZW0gbm90ZXM/XCIpXHJcbiAgICAuYWRkRHJvcGRvd24oKGRkKSA9PiB7XHJcbiAgICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIGRkLmFkZE9wdGlvbihmaWVsZCwgZmllbGQpO1xyXG4gICAgICB9KTtcclxuICAgICAgZGQuc2V0VmFsdWUoc2V0dGluZ3MubmFtaW5nU3lzdGVtRmllbGQpO1xyXG4gICAgICBkZC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy5uYW1pbmdTeXN0ZW1GaWVsZCA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICBuZXcgU2V0dGluZyhub1N5c3RlbURldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIk5hbWluZyBTeXN0ZW0gRW5kcyB3aXRoIERlbGltaXRlclwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIkRvZXMgeW91ciBuYW1pbmcgY29udmVudGlvbiBlbmQgd2l0aCB0aGUgZGVsaW1pdGVyPyBGb3IgZXhhbXBsZSwgPGNvZGU+MS4yLiBOb3RlPC9jb2RlPiBkb2VzIGVuZCB3aXRoIHRoZSBkZWxpbWl0ZXIsIGJ1dCA8Y29kZT4xLjIgTm90ZTwvY29kZT4gZG9lcyBub3QuPC9icj5Gb3IgbWF0Y2hpbmcgcHVycG9zZXMsIGl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0byBuYW1lIHlvdXIgbm90ZXMgd2l0aCB0aGUgZGVsaW1pdGVyIG9uIHRoZSBlbmQuIE9ubHkgdHVybiB0aGlzIHNldHRpbmcgb24gaWYgeW91IGRvIG5hbWUgeW91ciBub3RlcyB0aGlzIHdheSwgYnV0IGtub3cgdGhhdCB0aGUgcmVzdWx0cyBtYXkgbm90IGJlIGFzIGFjY3VyYXRlIGlmIHlvdSBkb24ndC5cIlxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2cpID0+XHJcbiAgICAgIHRvZ1xyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5uYW1pbmdTeXN0ZW1FbmRzV2l0aERlbGltaXRlcilcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICBzZXR0aW5ncy5uYW1pbmdTeXN0ZW1FbmRzV2l0aERlbGltaXRlciA9IHZhbHVlO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgYXdhaXQgcmVmcmVzaEluZGV4KHBsdWdpbik7XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcbn1cclxuIiwgImltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50LCBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IHJlZnJlc2hJbmRleCB9IGZyb20gXCIuLi9yZWZyZXNoSW5kZXhcIjtcclxuaW1wb3J0IHsgZ2V0RmllbGRzIH0gZnJvbSBcIi4uL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBmcmFnV2l0aEhUTUwsIHN1YkRldGFpbHMgfSBmcm9tIFwiLi9CcmVhZGNydW1ic1NldHRpbmdUYWJcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRSZWdleE5vdGVTZXR0aW5ncyhcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIGFsdGVybmF0aXZlSGllcmFyY2h5RGV0YWlsczogSFRNTERldGFpbHNFbGVtZW50XHJcbikge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCByZWdleE5vdGVEZXRhaWxzID0gc3ViRGV0YWlscyhcclxuICAgIFwiUmVnZXggTm90ZXNcIixcclxuICAgIGFsdGVybmF0aXZlSGllcmFyY2h5RGV0YWlsc1xyXG4gICk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKHJlZ2V4Tm90ZURldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkRlZmF1bHQgUmVnZXggTm90ZSBGaWVsZFwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIkJ5IGRlZmF1bHQsIHJlZ2V4IG5vdGVzIHVzZSB0aGUgZmlyc3QgZmllbGQgaW4geW91ciBoaWVyYXJjaGllcyAodXN1YWxseSBhbiA8Y29kZT5cdTIxOTE8L2NvZGU+IGZpZWxkKS4gQ2hvb3NlIGEgZGlmZmVyZW50IG9uZSB0byB1c2UgYnkgZGVmYXVsdCwgd2l0aG91dCBoYXZpbmcgdG8gc3BlY2lmeSA8Y29kZT5CQy1yZWdleC1ub3RlLWZpZWxkOiB7ZmllbGR9PC9jb2RlPi48L2JyPklmIHlvdSBkb24ndCB3YW50IHRvIGNob29zZSBhIGRlZmF1bHQsIHNlbGVjdCB0aGUgYmxhbmsgb3B0aW9uIGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3QuXCJcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLmFkZERyb3Bkb3duKChkZDogRHJvcGRvd25Db21wb25lbnQpID0+IHtcclxuICAgICAgY29uc3Qgb3B0aW9ucyA9IHt9O1xyXG4gICAgICBnZXRGaWVsZHMoc2V0dGluZ3MudXNlckhpZXJzKS5mb3JFYWNoKFxyXG4gICAgICAgIChmaWVsZCkgPT4gKG9wdGlvbnNbZmllbGRdID0gZmllbGQpXHJcbiAgICAgICk7XHJcbiAgICAgIGRkLmFkZE9wdGlvbnMoT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7IFwiXCI6IFwiXCIgfSkpXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLnJlZ2V4Tm90ZUZpZWxkKVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAoZmllbGQpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLnJlZ2V4Tm90ZUZpZWxkID0gZmllbGQ7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG59XHJcbiIsICJpbXBvcnQgeyBkZXRhaWxzIH0gZnJvbSBcIi4vQnJlYWRjcnVtYnNTZXR0aW5nVGFiXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IE1hcmtkb3duUmVuZGVyZXIsIFNldHRpbmcgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHsgcmVmcmVzaEluZGV4IH0gZnJvbSBcIi4uL3JlZnJlc2hJbmRleFwiO1xyXG5cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRSZWxhdGlvblNldHRpbmdzKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgY29udGFpbmVyRWw6IEhUTUxFbGVtZW50XHJcbikge1xyXG4gIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCByZWxhdGlvbkRldGFpbHMgPSBkZXRhaWxzKFwiUmVsYXRpb25zaGlwc1wiLCBjb250YWluZXJFbCk7XHJcblxyXG4gIGZ1bmN0aW9uIG1lcm1haWREaWFncmFtKGRpYWdyYW1TdHI6IHN0cmluZykge1xyXG4gICAgTWFya2Rvd25SZW5kZXJlci5yZW5kZXJNYXJrZG93bihcclxuICAgICAgZGlhZ3JhbVN0cixcclxuICAgICAgcmVsYXRpb25EZXRhaWxzLmNyZWF0ZURpdigpLFxyXG4gICAgICBcIlwiLFxyXG4gICAgICBudWxsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIHJlbGF0aW9uRGV0YWlscy5jcmVhdGVFbChcInBcIiwge1xyXG4gICAgdGV4dDogXCJIZXJlIHlvdSBjYW4gdG9nZ2xlIG9uL29mZiBkaWZmZXJlbnQgdHlwZXMgb2YgaW1wbGllZCByZWxhdGlvbnNoaXBzLiBBbGwgb2YgeW91ciBleHBsaWNpdCAocmVhbCkgcmVsYXRpb25zaGlwcyB3aWxsIHN0aWxsIHNob3csIGJ1dCB5b3UgY2FuIGNob29zZSB3aGljaCBpbXBsaWVkIG9uZXMgZ2V0IGZpbGxlZCBpbi5cXG5BbGwgaW1wbGllZCByZWxhdGlvbnNoaXBzIGFyZSBnaXZlbiBhIENTUyBjbGFzcyBvZiB0aGUgdHlwZSBvZiBpbXBsaWVkIHJlbGF0aW9uLCBzbyB5b3UgY2FuIHN0eWxlIHRoZW0gZGlmZmVyZW50bHkuIEZvciBleGFtcGxlIGAuQkMtQXVudGAuXCIsXHJcbiAgfSk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKHJlbGF0aW9uRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiU2FtZSBQYXJlbnQgaXMgU2libGluZ3NcIilcclxuICAgIC5zZXREZXNjKFwiSWYgb25lIG5vdGUgc2hhcmVzIGEgcGFyZW50IHdpdGggYW5vdGhlciwgdHJlYXQgdGhlbSBhcyBzaWJsaW5nc1wiKVxyXG4gICAgLmFkZFRvZ2dsZSgodGcpID0+XHJcbiAgICAgIHRnXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLmltcGxpZWRSZWxhdGlvbnMuc2FtZVBhcmVudElzU2libGluZylcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbCkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3MuaW1wbGllZFJlbGF0aW9ucy5zYW1lUGFyZW50SXNTaWJsaW5nID0gdmFsO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgYXdhaXQgcmVmcmVzaEluZGV4KHBsdWdpbik7XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gIG1lcm1haWREaWFncmFtKFwiYGBgbWVybWFpZFxcbmZsb3djaGFydCBMUlxcbk1lIC0tPnx1cHwgRGFkXFxuU2lzdGVyIC0tPnx1cHwgRGFkXFxuTWUgPC0uLT58c2FtZXwgU2lzdGVyXFxuYGBgXCIpXHJcblxyXG4gIG5ldyBTZXR0aW5nKHJlbGF0aW9uRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiU2libGluZ3MnIFNpYmxpbmdzXCIpXHJcbiAgICAuc2V0RGVzYyhcIlRyZWF0IHlvdXIgc2libGluZ3MnIHNpYmxpbmdzIGFzIHlvdXIgc2libGluZ3NcIilcclxuICAgIC5hZGRUb2dnbGUoKHRnKSA9PlxyXG4gICAgICB0Z1xyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5pbXBsaWVkUmVsYXRpb25zLnNpYmxpbmdzU2libGluZ0lzU2libGluZylcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbCkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3MuaW1wbGllZFJlbGF0aW9ucy5zaWJsaW5nc1NpYmxpbmdJc1NpYmxpbmcgPSB2YWw7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgbWVybWFpZERpYWdyYW0oXCJgYGBtZXJtYWlkXFxuZmxvd2NoYXJ0IExSXFxuTWUgLS0+fHNhbWV8IFNpc3Rlclxcbk1lIC0tPnxzYW1lfCBCcm90aGVyXFxuU2lzdGVyIDwtLi0+fHNhbWV8IEJyb3RoZXJcXG5gYGBcIilcclxuXHJcbiAgbmV3IFNldHRpbmcocmVsYXRpb25EZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJTaWJsaW5ncycgUGFyZW50IGlzIFBhcmVudFwiKVxyXG4gICAgLnNldERlc2MoXCJZb3VyIHNpYmxpbmdzJyBwYXJlbnRzIGFyZSB5b3VyIHBhcmVudHNcIilcclxuICAgIC5hZGRUb2dnbGUoKHRnKSA9PlxyXG4gICAgICB0Z1xyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5pbXBsaWVkUmVsYXRpb25zLnNpYmxpbmdzUGFyZW50SXNQYXJlbnQpXHJcbiAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWwpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLmltcGxpZWRSZWxhdGlvbnMuc2libGluZ3NQYXJlbnRJc1BhcmVudCA9IHZhbDtcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgIGF3YWl0IHJlZnJlc2hJbmRleChwbHVnaW4pO1xyXG4gICAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICBtZXJtYWlkRGlhZ3JhbShcImBgYG1lcm1haWRcXG5mbG93Y2hhcnQgTFJcXG5TaXN0ZXIgLS0+fHVwfCBEYWRcXG5TaXN0ZXIgPC0tPnxzYW1lfCBNZVxcbk1lIC0uLT58dXB8IERhZFxcbmBgYFwiKVxyXG5cclxuICBuZXcgU2V0dGluZyhyZWxhdGlvbkRldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkF1bnQvVW5jbGVcIilcclxuICAgIC5zZXREZXNjKFwiVHJlYXQgeW91ciBwYXJlbnQncyBzaWJsaW5ncyBhcyB5b3VyIHBhcmVudHMgKGF1bnRzL3VuY2xlcylcIilcclxuICAgIC5hZGRUb2dnbGUoKHRnKSA9PlxyXG4gICAgICB0Z1xyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5pbXBsaWVkUmVsYXRpb25zLnBhcmVudHNTaWJsaW5nc0lzUGFyZW50cylcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbCkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3MuaW1wbGllZFJlbGF0aW9ucy5wYXJlbnRzU2libGluZ3NJc1BhcmVudHMgPSB2YWw7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgbWVybWFpZERpYWdyYW0oXCJgYGBtZXJtYWlkXFxuZmxvd2NoYXJ0IExSXFxuTWUgLS0+fHVwfCBEYWRcXG5EYWQgLS0+fHNhbWV8IFVuY2xlXFxuTWUgLS4tPnx1cHwgVW5jbGVcXG5gYGBcIilcclxuXHJcbiAgbmV3IFNldHRpbmcocmVsYXRpb25EZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJDb3VzaW5zXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgXCJUcmVhdCB0aGUgY291c2lucyBvZiBhIG5vdGUgYXMgc2libGluZ3MgKHBhcmVudHMnIHNpYmxpbmdzJyBjaGlsZHJlbiBhcmUgY291c2lucylcIlxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodGcpID0+XHJcbiAgICAgIHRnXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLmltcGxpZWRSZWxhdGlvbnMuY291c2luc0lzU2libGluZylcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbCkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3MuaW1wbGllZFJlbGF0aW9ucy5jb3VzaW5zSXNTaWJsaW5nID0gdmFsO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgYXdhaXQgcmVmcmVzaEluZGV4KHBsdWdpbik7XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gIG1lcm1haWREaWFncmFtKFwiYGBgbWVybWFpZFxcbmZsb3djaGFydCBMUlxcbk1lIC0tPnx1cHwgRGFkXFxuRGFkIC0tPnxzYW1lfCBVbmNsZVxcblVuY2xlIC0tPnxkb3dufCBDb3VzaW5cXG5NZSA8LS4tPnxzYW1lfCBDb3VzaW5cXG5gYGBcIilcclxuXHJcbiAgbmV3IFNldHRpbmcocmVsYXRpb25EZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJNYWtlIEN1cnJlbnQgTm90ZSBhbiBJbXBsaWVkIFNpYmxpbmdcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBcIlRlY2hpbmNhbGx5LCB0aGUgY3VycmVudCBub3RlIGlzIGFsd2F5cyBpdCdzIG93biBpbXBsaWVkIHNpYmxpbmcuIEJ5IGRlZmF1bHQsIGl0IGlzIG5vdCBzaG93IGFzIHN1Y2guIFRvZ2dsZSB0aGlzIG9uIHRvIG1ha2UgaXQgc2hvdy5cIlxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGVcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3MudHJlYXRDdXJyTm9kZUFzSW1wbGllZFNpYmxpbmcpXHJcbiAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3MudHJlYXRDdXJyTm9kZUFzSW1wbGllZFNpYmxpbmcgPSB2YWx1ZTtcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgIGF3YWl0IHJlZnJlc2hJbmRleChwbHVnaW4pO1xyXG4gICAgICAgIH0pXHJcbiAgICApO1xyXG59XHJcbiIsICJpbXBvcnQgeyBEcm9wZG93bkNvbXBvbmVudCwgU2V0dGluZyB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQgeyByZWZyZXNoSW5kZXggfSBmcm9tIFwiLi4vcmVmcmVzaEluZGV4XCI7XHJcbmltcG9ydCB7IGdldEZpZWxkcyB9IGZyb20gXCIuLi9VdGlscy9IaWVyVXRpbHNcIjtcclxuaW1wb3J0IHsgZnJhZ1dpdGhIVE1MLCBzdWJEZXRhaWxzIH0gZnJvbSBcIi4vQnJlYWRjcnVtYnNTZXR0aW5nVGFiXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkVGFnTm90ZVNldHRpbmdzKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgYWx0ZXJuYXRpdmVIaWVyYXJjaHlEZXRhaWxzOiBIVE1MRGV0YWlsc0VsZW1lbnRcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHRhZ05vdGVEZXRhaWxzID0gc3ViRGV0YWlscyhcIlRhZyBOb3Rlc1wiLCBhbHRlcm5hdGl2ZUhpZXJhcmNoeURldGFpbHMpO1xyXG5cclxuICBuZXcgU2V0dGluZyh0YWdOb3RlRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiRGVmYXVsdCBUYWcgTm90ZSBGaWVsZFwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIkJ5IGRlZmF1bHQsIHRhZyBub3RlcyB1c2UgdGhlIGZpcnN0IGZpZWxkIGluIHlvdXIgaGllcmFyY2hpZXMgKHVzdWFsbHkgYW4gPGNvZGU+XHUyMTkxPC9jb2RlPiBmaWVsZCkuIENob29zZSBhIGRpZmZlcmVudCBvbmUgdG8gdXNlIGJ5IGRlZmF1bHQsIHdpdGhvdXQgaGF2aW5nIHRvIHNwZWNpZnkgPGNvZGU+QkMtdGFnLW5vdGUtZmllbGQ6IHtmaWVsZH08L2NvZGU+LjwvYnI+SWYgeW91IGRvbid0IHdhbnQgdG8gY2hvb3NlIGEgZGVmYXVsdCwgc2VsZWN0IHRoZSBibGFuayBvcHRpb24gYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdC5cIlxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkRHJvcGRvd24oKGRkOiBEcm9wZG93bkNvbXBvbmVudCkgPT4ge1xyXG5cclxuICAgICAgY29uc3Qgb3B0aW9ucyA9IHt9O1xyXG4gICAgICBnZXRGaWVsZHMoc2V0dGluZ3MudXNlckhpZXJzKS5mb3JFYWNoKFxyXG4gICAgICAgIChmaWVsZCkgPT4gKG9wdGlvbnNbZmllbGRdID0gZmllbGQpXHJcbiAgICAgICk7XHJcbiAgICAgIGRkLmFkZE9wdGlvbnMoT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7IFwiXCI6IFwiXCIgfSkpXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLnRhZ05vdGVGaWVsZClcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKGZpZWxkKSA9PiB7XHJcbiAgICAgICAgICBzZXR0aW5ncy50YWdOb3RlRmllbGQgPSBmaWVsZDtcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgIGF3YWl0IHJlZnJlc2hJbmRleChwbHVnaW4pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuIiwgImltcG9ydCB7IE5vdGljZSwgU2V0dGluZyB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQge1xyXG4gIEFSUk9XX0RJUkVDVElPTlMsXHJcbiAgREVGQVVMVF9TRVRUSU5HUyxcclxuICBESVJFQ1RJT05TLFxyXG4gIElMTEVHQUxfRklMRU5BTUVfQ0hBUlMsXHJcbn0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQgeyBmcmFnV2l0aEhUTUwsIHN1YkRldGFpbHMgfSBmcm9tIFwiLi9CcmVhZGNydW1ic1NldHRpbmdUYWJcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRUaHJlYWRpbmdTZXR0aW5ncyhcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIGNtZHNEZXRhaWxzOiBIVE1MRGV0YWlsc0VsZW1lbnRcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHRocmVhZGluZ0RldGFpbHMgPSBzdWJEZXRhaWxzKFwiVGhyZWFkaW5nXCIsIGNtZHNEZXRhaWxzKTtcclxuXHJcbiAgdGhyZWFkaW5nRGV0YWlscy5jcmVhdGVEaXYoe1xyXG4gICAgdGV4dDogXCJTZXR0aW5ncyBmb3IgdGhlIGNvbW1hbmRzIGBDcmVhdGUgbmV3IDxmaWVsZD4gZnJvbSBjdXJyZW50IG5vdGVgXCIsXHJcbiAgfSk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKHRocmVhZGluZ0RldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIk9wZW4gbmV3IHRocmVhZHMgaW4gbmV3IHBhbmUgb3IgY3VycmVudCBwYW5lXCIpXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2cpID0+IHtcclxuICAgICAgdG9nLnNldFZhbHVlKHNldHRpbmdzLnRocmVhZEludG9OZXdQYW5lKTtcclxuICAgICAgdG9nLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLnRocmVhZEludG9OZXdQYW5lID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIG5ldyBTZXR0aW5nKHRocmVhZGluZ0RldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIlRocmVhZCB1bmRlciBDdXJzb3JcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgXCJJZiB0aGUgc2V0dGluZyA8Y29kZT5Xcml0ZSBCcmVhZGNydW1icyBJbmxpbmU8L2NvZGU+IGlzIGVuYWJsZWQsIHdoZXJlIHNob3VsZCB0aGUgbmV3IEJyZWFkY3J1bWIgYmUgYWRkZWQgdG8gdGhlIGN1cnJlbnQgbm90ZT8gXHUyNzA1ID0gVW5kZXIgdGhlIGN1cnNvciwgXHUyNzRDID0gQXQgdGhlIHRvcCBvZiB0aGUgbm90ZSAodW5kZXIgdGhlIHlhbWwsIGlmIGFwcGxpY2FibGUpXCJcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nKSA9PiB7XHJcbiAgICAgIHRvZy5zZXRWYWx1ZShzZXR0aW5ncy50aHJlYWRVbmRlckN1cnNvcik7XHJcbiAgICAgIHRvZy5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy50aHJlYWRVbmRlckN1cnNvciA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgbmV3IFNldHRpbmcodGhyZWFkaW5nRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiTmV3IE5vdGUgTmFtZSBUZW1wbGF0ZVwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBgV2hlbiB0aHJlYWRpbmcgaW50byBhIG5ldyBub3RlLCBjaG9vc2UgdGhlIHRlbXBsYXRlIGZvciB0aGUgbmV3IG5vdGUgbmFtZS48L2JyPlxyXG4gICAgICAgIE9wdGlvbnMgaW5jbHVkZTo8L2JyPlxyXG4gICAgICAgIDx1bD5cclxuICAgICAgICAgIDxsaT48Y29kZT57e2ZpZWxkfX08L2NvZGU+OiB0aGUgZmllbGQgYmVpbmcgdGhyZWFkIGludG88L2xpPlxyXG4gICAgICAgICAgPGxpPjxjb2RlPnt7ZGlyfX08L2NvZGU+OiB0aGUgZGlyZWN0aW9uIGJlaW5nIHRocmVhZCBpbnRvPC9saT5cclxuICAgICAgICAgIDxsaT48Y29kZT57e2N1cnJlbnR9fTwvY29kZT46IHRoZSBjdXJyZW50IG5vdGUgbmFtZTwvbGk+XHJcbiAgICAgICAgICA8bGk+PGNvZGU+e3tkYXRlfX08L2NvZGU+OiB0aGUgY3VycmVudCBkYXRlIChTZXQgdGhlIGZvcm1hdCBpbiB0aGUgc2V0dGluZyBiZWxvdyk8L2xpPlxyXG4gICAgICAgIDwvdWw+YFxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkVGV4dCgodGV4dCkgPT4ge1xyXG4gICAgICB0ZXh0LnNldFZhbHVlKHNldHRpbmdzLnRocmVhZGluZ1RlbXBsYXRlKTtcclxuICAgICAgdGV4dC5pbnB1dEVsLm9uYmx1ciA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRleHQuZ2V0VmFsdWUoKTtcclxuICAgICAgICBpZiAoSUxMRUdBTF9GSUxFTkFNRV9DSEFSUy5zb21lKChjaGFyKSA9PiB2YWx1ZS5pbmNsdWRlcyhjaGFyKSkpIHtcclxuICAgICAgICAgIG5ldyBOb3RpY2UoXHJcbiAgICAgICAgICAgIGBGaWxlIG5hbWUgY2Fubm90IGNvbnRhaW4gYW55IG9mIHRoZXNlIGNoYXJhY3RlcnM6ICR7SUxMRUdBTF9GSUxFTkFNRV9DSEFSUy5qb2luKFxyXG4gICAgICAgICAgICAgIFwiIFwiXHJcbiAgICAgICAgICAgICl9YFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRleHQuc2V0VmFsdWUoc2V0dGluZ3MudGhyZWFkaW5nVGVtcGxhdGUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzZXR0aW5ncy50aHJlYWRpbmdUZW1wbGF0ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIG5ldyBTZXR0aW5nKHRocmVhZGluZ0RldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkRhdGUgRm9ybWF0XCIpXHJcbiAgICAuc2V0RGVzYyhcIlRoZSBkYXRlIGZvcm1hdCB1c2VkIGluIHRoZSBUaHJlYWRpbmcgVGVtcGxhdGUgKHNldHRpbmcgYWJvdmUpXCIpXHJcbiAgICAuYWRkTW9tZW50Rm9ybWF0KChmb3JtYXQpID0+IHtcclxuICAgICAgZm9ybWF0XHJcbiAgICAgICAgLnNldERlZmF1bHRGb3JtYXQoREVGQVVMVF9TRVRUSU5HUy5kYXRlRm9ybWF0KVxyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5kYXRlRm9ybWF0KVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLmRhdGVGb3JtYXQgPSB2YWx1ZTtcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICBjb25zdCB0aHJlYWREaXJUZW1wbGF0ZXNTZXR0aW5nID0gbmV3IFNldHRpbmcodGhyZWFkaW5nRGV0YWlscylcclxuICAgIC5zZXRDbGFzcyhcInRocmVhZC1kaXItdGVtcGxhdGVzXCIpXHJcbiAgICAuc2V0TmFtZShcIlRlbXBsYXRlciBUZW1wbGF0ZSBwZXIgRGlyZWN0aW9uXCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgIGBGb3IgZWFjaCBkaXJlY3Rpb24gdG8gYmUgdGhyZWFkIGludG8sIGNob29zZSBhIFRlbXBsYXRlciB0ZW1wbGF0ZSB0byBpbnNlcnQgaW50byB0aGUgbmV3IG5vdGUuPC9icj5cclxuICAgICAgICAgIEdpdmUgdGhlIGJhc2VuYW1lLCBvciB0aGUgZnVsbCBmaWxlIHBhdGggKGUuZy4gPGNvZGU+VGVtcGxhdGVzL1BhcmVudCBUZW1wbGF0ZTwvY29kZT4pLmBcclxuICAgICAgKVxyXG4gICAgKTtcclxuXHJcbiAgRElSRUNUSU9OUy5mb3JFYWNoKChkaXIpID0+XHJcbiAgICB0aHJlYWREaXJUZW1wbGF0ZXNTZXR0aW5nLmFkZFRleHQoKHRleHQpID0+IHtcclxuICAgICAgdGV4dFxyXG4gICAgICAgIC5zZXRQbGFjZWhvbGRlcihBUlJPV19ESVJFQ1RJT05TW2Rpcl0pXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLnRocmVhZGluZ0RpclRlbXBsYXRlc1tkaXJdKTtcclxuICAgICAgdGV4dC5pbnB1dEVsLm9uYmx1ciA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy50aHJlYWRpbmdEaXJUZW1wbGF0ZXNbZGlyXSA9IHRleHQuZ2V0VmFsdWUoKTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgIH07XHJcbiAgICB9KVxyXG4gICk7XHJcblxyXG59XHJcbiIsICJpbXBvcnQgdHlwZSB7IEp1Z2dsTGF5b3V0cyB9IGZyb20gXCJqdWdnbC1hcGlcIjtcclxuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQsIE5vdGljZSwgU2V0dGluZyB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgeyBpc0luVmF1bHQgfSBmcm9tIFwib2JzaWRpYW4tY29tbXVuaXR5LWxpYi9kaXN0L3V0aWxzXCI7XHJcbmltcG9ydCB7IFRSQUlMX0xFTkdUSFMgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCBDaGVja2JveGVzIGZyb20gXCIuLi9Db21wb25lbnRzL0NoZWNrYm94ZXMuc3ZlbHRlXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7IHNwbGl0QW5kVHJpbSB9IGZyb20gXCIuLi9VdGlscy9nZW5lcmFsVXRpbHNcIjtcclxuaW1wb3J0IHsgZ2V0RmllbGRzIH0gZnJvbSBcIi4uL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBkcmF3VHJhaWwgfSBmcm9tIFwiLi4vVmlld3MvVHJhaWxWaWV3XCI7XHJcbmltcG9ydCB7IGZyYWdXaXRoSFRNTCwgc3ViRGV0YWlscyB9IGZyb20gXCIuL0JyZWFkY3J1bWJzU2V0dGluZ1RhYlwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFRyYWlsVmlld1NldHRpbmdzKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgdmlld0RldGFpbHM6IEhUTUxEZXRhaWxzRWxlbWVudFxyXG4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3QgdHJhaWxEZXRhaWxzID0gc3ViRGV0YWlscyhcIlRyYWlsL0dyaWQvSnVnZ2xcIiwgdmlld0RldGFpbHMpO1xyXG5cclxuICBuZXcgU2V0dGluZyh0cmFpbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIlNob3cgQnJlYWRjcnVtYnMgaW4gRWRpdC9MaXZlLVByZXZpZXcgTW9kZVwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIFwiSXQgYWx3YXlzIHNob3dzIGluIHByZXZpZXcgbW9kZSwgYnV0IHNob3VsZCBpdCBhbHNvIHNob3cgaW4gdGhlIG90aGVyIHR3bz9cIlxyXG4gICAgKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxyXG4gICAgICB0b2dnbGUuc2V0VmFsdWUoc2V0dGluZ3Muc2hvd0JDc0luRWRpdExQTW9kZSkub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3Muc2hvd0JDc0luRWRpdExQTW9kZSA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBhd2FpdCBkcmF3VHJhaWwocGx1Z2luKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gIHRyYWlsRGV0YWlscy5jcmVhdGVFbCgnaHInKVxyXG4gIHRyYWlsRGV0YWlscy5jcmVhdGVEaXYoe1xyXG4gICAgY2xzOiBcInNldHRpbmctaXRlbS1uYW1lXCIsXHJcbiAgICB0ZXh0OiBcIkxpbWl0IFRyYWlsIFZpZXcgdG8gb25seSBzaG93IGNlcnRhaW4gZmllbGRzXCIsXHJcbiAgfSk7XHJcblxyXG4gIG5ldyBDaGVja2JveGVzKHtcclxuICAgIHRhcmdldDogdHJhaWxEZXRhaWxzLFxyXG4gICAgcHJvcHM6IHtcclxuICAgICAgcGx1Z2luLFxyXG4gICAgICBzZXR0aW5nTmFtZTogXCJsaW1pdFRyYWlsQ2hlY2tib3hlc1wiLFxyXG4gICAgICBvcHRpb25zOiBnZXRGaWVsZHMoc2V0dGluZ3MudXNlckhpZXJzLCBcInVwXCIpLFxyXG4gICAgfSxcclxuICB9KTtcclxuXHJcbiAgY29uc3Qgdmlld3NUb1Nob3cgPSBuZXcgU2V0dGluZyh0cmFpbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIlZpZXdzIHRvIHNob3dcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBcIkNob29zZSB3aGljaCBvZiB0aGUgdmlld3MgdG8gc2hvdyBhdCB0aGUgdG9wIG9mIHRoZSBub3RlLiBKdWdnbCBWaWV3IHJlcXVpcmVzIHRoZSBKdWdnbCBwbHVnaW4uXCJcclxuICAgIClcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xyXG4gICAgICB0b2dnbGVcclxuICAgICAgICAuc2V0VG9vbHRpcChcIlRyYWlsIHZpZXdcIilcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3Muc2hvd1RyYWlsKVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLnNob3dUcmFpbCA9IHZhbHVlO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgYXdhaXQgZHJhd1RyYWlsKHBsdWdpbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB7XHJcbiAgICAgIHRvZ2dsZVxyXG4gICAgICAgIC5zZXRUb29sdGlwKFwiR3JpZCB2aWV3XCIpXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLnNob3dHcmlkKVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLnNob3dHcmlkID0gdmFsdWU7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICBhd2FpdCBkcmF3VHJhaWwocGx1Z2luKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHtcclxuICAgICAgdG9nZ2xlXHJcbiAgICAgICAgLnNldFRvb2x0aXAoXCJOZXh0L1ByZXZpb3VzIHZpZXdcIilcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3Muc2hvd1ByZXZOZXh0KVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLnNob3dQcmV2TmV4dCA9IHZhbHVlO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgYXdhaXQgZHJhd1RyYWlsKHBsdWdpbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KVxyXG5cclxuICBpZiAoYXBwLnBsdWdpbnMucGx1Z2lucy5qdWdnbCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICB2aWV3c1RvU2hvdy5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xyXG4gICAgICB0b2dnbGVcclxuICAgICAgICAuc2V0VG9vbHRpcChcIkp1Z2dsIHZpZXdcIilcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3Muc2hvd0p1Z2dsKVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLnNob3dKdWdnbCA9IHZhbHVlO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgYXdhaXQgZHJhd1RyYWlsKHBsdWdpbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmV3IFNldHRpbmcodHJhaWxEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoJ0dyaWQgdmlldyBkZXB0aCcpXHJcbiAgICAuc2V0RGVzYygnTGltaXQgdGhlIGluaXRpYWwgZGVwdGggb2YgdGhlIGdyaWQgdmlldycpXHJcbiAgICAuYWRkU2xpZGVyKChzbGlkZXIpID0+IHtcclxuICAgICAgc2xpZGVyXHJcbiAgICAgICAgLnNldExpbWl0cygwLCAyNSwgMSlcclxuICAgICAgICAuc2V0VmFsdWUoc2V0dGluZ3MuZ3JpZERlZmF1bHREZXB0aClcclxuICAgICAgICAuc2V0RHluYW1pY1Rvb2x0aXAoKTtcclxuXHJcbiAgICAgIHNsaWRlci5zbGlkZXJFbC5vbmJsdXIgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MuZ3JpZERlZmF1bHREZXB0aCA9IHNsaWRlci5nZXRWYWx1ZSgpO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICBhd2FpdCBkcmF3VHJhaWwocGx1Z2luKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcblxyXG4gIG5ldyBTZXR0aW5nKHRyYWlsRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiSW5kZXggTm90ZShzKVwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIGZyYWdXaXRoSFRNTChcclxuICAgICAgICBcIlRoZSBub3RlIHRoYXQgYWxsIG9mIHlvdXIgb3RoZXIgbm90ZXMgbGVhZCBiYWNrIHRvLiBUaGUgcGFyZW50IG9mIGFsbCB5b3VyIHBhcmVudCBub3Rlcy4gSnVzdCBlbnRlciB0aGUgYmFzZW5hbWUuPC9icj5Zb3UgY2FuIGFsc28gaGF2ZSBtdWx0aXBsZSBpbmRleCBub3RlcyAoY29tbWEtc2VwYXJhdGVkIGxpc3QpLjwvYnI+TGVhdmluZyB0aGlzIGZpZWxkIGVtcHR5IHdpbGwgbWFrZSB0aGUgdHJhaWwgc2hvdyBhbGwgcGF0aHMgZ29pbmcgYXMgZmFyIHVwIHRoZSBwYXJlbnQtdHJlZSBhcyBwb3NzaWJsZS5cIlxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuYWRkVGV4dCgodGV4dCkgPT4ge1xyXG4gICAgICB0ZXh0XHJcbiAgICAgICAgLnNldFBsYWNlaG9sZGVyKFwiSW5kZXggTm90ZVwiKVxyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5pbmRleE5vdGVzLmpvaW4oXCIsIFwiKSk7XHJcblxyXG4gICAgICB0ZXh0LmlucHV0RWwub25ibHVyID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHNwbGl0cyA9IHNwbGl0QW5kVHJpbSh0ZXh0LmdldFZhbHVlKCkpO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHNwbGl0c1swXSA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgICBzcGxpdHMuZXZlcnkoKGluZGV4KSA9PiBpc0luVmF1bHQoaW5kZXgpKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgc2V0dGluZ3MuaW5kZXhOb3RlcyA9IHNwbGl0cztcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICB9IGVsc2UgbmV3IE5vdGljZShcIkF0bGVhc3Qgb25lIG9mIHRoZSBub3RlcyBpcyBub3QgaW4geW91ciB2YXVsdFwiKTtcclxuXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuXHJcbiAgbmV3IFNldHRpbmcodHJhaWxEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJTaG93cyBhbGwgcGF0aHMgaWYgbm9uZSB0byBpbmRleCBub3RlIGFyZSBmb3VuZFwiKVxyXG4gICAgLnNldERlc2MoXHJcbiAgICAgIFwiSWYgeW91IGhhdmUgYW4gaW5kZXggbm90ZSBjaG9zZW4sIGJ1dCB0aGUgdHJhaWwgdmlldyBoYXMgbm8gcGF0aHMgZ29pbmcgdXAgdG8gdGhvc2UgaW5kZXggbm90ZXMsIHNob3VsZCBpdCBzaG93IGFsbCBwYXRocyBpbnN0ZWFkP1wiXHJcbiAgICApXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgIHRvZ2dsZVxyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5zaG93QWxsUGF0aHNJZk5vbmVUb0luZGV4Tm90ZSlcclxuICAgICAgICAub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICBzZXR0aW5ncy5zaG93QWxsUGF0aHNJZk5vbmVUb0luZGV4Tm90ZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgIGF3YWl0IGRyYXdUcmFpbChwbHVnaW4pO1xyXG4gICAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICBuZXcgU2V0dGluZyh0cmFpbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkRlZmF1bHQ6IEFsbCwgTG9uZ2VzdCwgb3IgU2hvcnRlc3RcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBcIklmIG11bHRpcGxlIHBhdGhzIGFyZSBmb3VuZCBnb2luZyB1cCB0aGUgcGFyZW50IHRyZWUsIHdoaWNoIG9mIHRoZW0gc2hvdWxkIHNob3c/XCJcclxuICAgIClcclxuICAgIC5hZGREcm9wZG93bihkZCA9PiB7XHJcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB7fVxyXG4gICAgICBUUkFJTF9MRU5HVEhTLmZvckVhY2gobGVuZ3RoID0+IHtcclxuICAgICAgICBvcHRpb25zW2xlbmd0aF0gPSBsZW5ndGg7XHJcbiAgICAgIH0pXHJcblxyXG4gICAgICBkZC5hZGRPcHRpb25zKG9wdGlvbnMpO1xyXG4gICAgICBkZC5zZXRWYWx1ZShzZXR0aW5ncy5zaG93QWxsKTtcclxuICAgICAgZGQub25DaGFuZ2UoYXN5bmMgKHZhbCkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLnNob3dBbGwgPSB2YWw7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIGF3YWl0IGRyYXdUcmFpbChwbHVnaW4pO1xyXG4gICAgICB9KVxyXG4gICAgfSlcclxuXHJcbiAgbmV3IFNldHRpbmcodHJhaWxEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJTZXBlcmF0b3JcIilcclxuICAgIC5zZXREZXNjKGZyYWdXaXRoSFRNTChcclxuICAgICAgXCJUaGUgY2hhcmFjdGVyIHRvIHNob3cgYmV0d2VlbiBjcnVtYnMgaW4gdGhlIGJyZWFkY3J1bWIgdHJhaWwuIFRoZSBkZWZhdWx0IGlzIDxjb2RlPlx1MjE5MjwvY29kZT5cIilcclxuICAgIClcclxuICAgIC5hZGRUZXh0KCh0ZXh0KSA9PlxyXG4gICAgICB0ZXh0XHJcbiAgICAgICAgLnNldFBsYWNlaG9sZGVyKFwiXHUyMTkyXCIpXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLnRyYWlsU2VwZXJhdG9yKVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLnRyYWlsU2VwZXJhdG9yID0gdmFsdWU7XHJcbiAgICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgICAgICBhd2FpdCBkcmF3VHJhaWwocGx1Z2luKTtcclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgbmV3IFNldHRpbmcodHJhaWxEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJObyBwYXRoIGZvdW5kIG1lc3NhZ2VcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBcIlRoZSB0ZXh0IHRvIGRpc3BsYXkgd2hlbiBubyBwYXRoIHRvIHRoZSBpbmRleCBub3RlIGlzIGZvdW5kLCBvciB0aGUgY3VycmVudCBub3RlIGhhcyBubyBwYXJlbnQuXCJcclxuICAgIClcclxuICAgIC5hZGRUZXh0KCh0ZXh0KSA9PlxyXG4gICAgICB0ZXh0XHJcbiAgICAgICAgLnNldFBsYWNlaG9sZGVyKFwiTm8gcGF0aCB0byBpbmRleCBub3RlIHdhcyBmb3VuZFwiKVxyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5ub1BhdGhNZXNzYWdlKVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLm5vUGF0aE1lc3NhZ2UgPSB2YWx1ZTtcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICAgIGF3YWl0IGRyYXdUcmFpbChwbHVnaW4pO1xyXG4gICAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICBuZXcgU2V0dGluZyh0cmFpbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIlJlc3BlY3QgUmVhZGFibGUgTGluZSBMZW5ndGhcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBcIlNob3VsZCB0aGUgYnJlYWRjcnVtYnMgdHJhaWwgYWRqdXN0IGl0cyB3aWR0aCB0byB0aGUgcmVhZGFibGUgbGluZSBsZW5ndGgsIG9yIHVzZSBhcyBtdWNoIHNwYWNlIGFzIHBvc3NpYmxlPyBcdTI3MDUgPSB1c2UgcmVhZGFibGUgbGluZSBsZW5ndGguXCJcclxuICAgIClcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cclxuICAgICAgdG9nZ2xlXHJcbiAgICAgICAgLnNldFZhbHVlKHNldHRpbmdzLnJlc3BlY3RSZWFkYWJsZUxpbmVMZW5ndGgpXHJcbiAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgc2V0dGluZ3MucmVzcGVjdFJlYWRhYmxlTGluZUxlbmd0aCA9IHZhbHVlO1xyXG4gICAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgICAgYXdhaXQgZHJhd1RyYWlsKHBsdWdpbik7XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcblxyXG5cclxuICBuZXcgU2V0dGluZyh0cmFpbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIlNob3cgdXAgZmllbGRzIGluIEp1Z2dsXCIpXHJcbiAgICAuc2V0RGVzYyhcIkp1Z2dsIHdpbGwgc2hvdyBib3RoIHVwIGFuZCBkb3duIGZpZWxkc1wiKVxyXG4gICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB7XHJcbiAgICAgIHRvZ2dsZVxyXG4gICAgICAgIC5zZXRWYWx1ZShzZXR0aW5ncy5zaG93VXBJbkp1Z2dsKVxyXG4gICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICAgIHNldHRpbmdzLnNob3dVcEluSnVnZ2wgPSB2YWx1ZTtcclxuICAgICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICBuZXcgU2V0dGluZyh0cmFpbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkp1Z2dsIHZpZXcgbGF5b3V0XCIpXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgZnJhZ1dpdGhIVE1MKFxyXG4gICAgICAgIFwiVGhlIGxheW91dCB0eXBlIHRvIHVzZSBmb3IgdGhlIEp1Z2dsIHZpZXcuPGJyPlRoZSBoaWVyYXJjaHkgbGF5b3V0IGlzIG1vc3QgbmF0dXJhbCBmb3IgQnJlYWRjcnVtYnMsIGJ1dCBmb3IgbGFyZ2UgZ3JhcGhzIEQzIEZvcmNlIGlzIHJlY29tbWVuZGVkLlwiXHJcbiAgICAgIClcclxuICAgIClcclxuICAgIC5hZGREcm9wZG93bigoZGM6IERyb3Bkb3duQ29tcG9uZW50KSA9PiB7XHJcbiAgICAgIGRjLmFkZE9wdGlvbihcImhpZXJhcmNoeVwiLCBcIkhpZXJhcmNoeVwiKTtcclxuICAgICAgZGMuYWRkT3B0aW9uKFwiZDMtZm9yY2VcIiwgXCJEMyBGb3JjZVwiKTtcclxuICAgICAgZGMuYWRkT3B0aW9uKFwiY29sYVwiLCBcIkNvbGEgRm9yY2VcIik7XHJcbiAgICAgIGRjLmFkZE9wdGlvbihcImdyaWRcIiwgXCJHcmlkXCIpO1xyXG4gICAgICBkYy5hZGRPcHRpb24oXCJjb25jZW50cmljXCIsIFwiQ29uY2VudHJpY1wiKTtcclxuXHJcbiAgICAgIGRjLnNldFZhbHVlKHNldHRpbmdzLmp1Z2dsTGF5b3V0KTtcclxuICAgICAgZGMub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MuanVnZ2xMYXlvdXQgPSB2YWx1ZSBhcyBKdWdnbExheW91dHM7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIGF3YWl0IGRyYXdUcmFpbChwbHVnaW4pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG59XHJcbiIsICJpbXBvcnQgeyBEcm9wZG93bkNvbXBvbmVudCwgU2V0dGluZyB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5pbXBvcnQgeyBBTExVTkxJTktFRCwgUkVBbENMT1NFRCwgUkVMQVRJT05TLCBWSVNUWVBFUyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHR5cGUgeyBSZWxhdGlvbnMsIFZpc1R5cGUgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG5pbXBvcnQgeyBzdWJEZXRhaWxzIH0gZnJvbSBcIi4vQnJlYWRjcnVtYnNTZXR0aW5nVGFiXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkVmlzTW9kYWxTZXR0aW5ncyhcclxuICBwbHVnaW46IEJDUGx1Z2luLFxyXG4gIHZpZXdEZXRhaWxzOiBIVE1MRGV0YWlsc0VsZW1lbnRcclxuKSB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IHZpc01vZGFsRGV0YWlscyA9IHN1YkRldGFpbHMoXCJWaXN1YWxpc2F0aW9uIE1vZGFsXCIsIHZpZXdEZXRhaWxzKTtcclxuXHJcbiAgbmV3IFNldHRpbmcodmlzTW9kYWxEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJEZWZhdWx0IFZpc3VhbGlzYXRpb24gVHlwZVwiKVxyXG4gICAgLnNldERlc2MoXCJXaGljaCB2aXN1YWxpc2F0aW9uIHRvIHNob3cgYnkgZGVmYXVsdFwiKVxyXG4gICAgLmFkZERyb3Bkb3duKChjYjogRHJvcGRvd25Db21wb25lbnQpID0+IHtcclxuICAgICAgVklTVFlQRVMuZm9yRWFjaCgob3B0aW9uOiBWaXNUeXBlKSA9PiB7XHJcbiAgICAgICAgY2IuYWRkT3B0aW9uKG9wdGlvbiwgb3B0aW9uKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNiLnNldFZhbHVlKHNldHRpbmdzLnZpc0dyYXBoKTtcclxuXHJcbiAgICAgIGNiLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZTogVmlzVHlwZSkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLnZpc0dyYXBoID0gdmFsdWU7XHJcbiAgICAgICAgYXdhaXQgcGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIG5ldyBTZXR0aW5nKHZpc01vZGFsRGV0YWlscylcclxuICAgIC5zZXROYW1lKFwiRGVmYXVsdCBSZWxhdGlvblwiKVxyXG4gICAgLnNldERlc2MoXCJXaGljaCByZWxhdGlvbiB0eXBlIHRvIHNob3cgZmlyc3Qgd2hlbiBvcGVuaW5nIHRoZSBtb2RhbFwiKVxyXG4gICAgLmFkZERyb3Bkb3duKChkZCkgPT4ge1xyXG4gICAgICBSRUxBVElPTlMuZm9yRWFjaCgob3B0aW9uOiBSZWxhdGlvbnMpID0+IHtcclxuICAgICAgICBkZC5hZGRPcHRpb24ob3B0aW9uLCBvcHRpb24pO1xyXG4gICAgICB9KTtcclxuICAgICAgZGQuc2V0VmFsdWUoc2V0dGluZ3MudmlzUmVsYXRpb24pO1xyXG5cclxuICAgICAgZGQub25DaGFuZ2UoYXN5bmMgKHZhbHVlOiBSZWxhdGlvbnMpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy52aXNSZWxhdGlvbiA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICBuZXcgU2V0dGluZyh2aXNNb2RhbERldGFpbHMpXHJcbiAgICAuc2V0TmFtZShcIkRlZmF1bHQgUmVhbC9DbG9zZWRcIilcclxuICAgIC5zZXREZXNjKFwiU2hvdyB0aGUgcmVhbCBvciBjbG9zZWQgZ3JhcGggYnkgZGVmYXVsdFwiKVxyXG4gICAgLmFkZERyb3Bkb3duKChjYjogRHJvcGRvd25Db21wb25lbnQpID0+IHtcclxuICAgICAgUkVBbENMT1NFRC5mb3JFYWNoKChvcHRpb246IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGNiLmFkZE9wdGlvbihvcHRpb24sIG9wdGlvbik7XHJcbiAgICAgIH0pO1xyXG4gICAgICBjYi5zZXRWYWx1ZShzZXR0aW5ncy52aXNDbG9zZWQpO1xyXG5cclxuICAgICAgY2Iub25DaGFuZ2UoYXN5bmMgKHZhbHVlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy52aXNDbG9zZWQgPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgbmV3IFNldHRpbmcodmlzTW9kYWxEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJEZWZhdWx0IFVubGlua2VkXCIpXHJcbiAgICAuc2V0RGVzYyhcIlNob3cgYWxsIG5vZGVzIG9yIG9ubHkgdGhvc2Ugd2hpY2ggaGF2ZSBsaW5rcyBieSBkZWZhdWx0XCIpXHJcbiAgICAuYWRkRHJvcGRvd24oKGNiOiBEcm9wZG93bkNvbXBvbmVudCkgPT4ge1xyXG4gICAgICBBTExVTkxJTktFRC5mb3JFYWNoKChvcHRpb246IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGNiLmFkZE9wdGlvbihvcHRpb24sIG9wdGlvbik7XHJcbiAgICAgIH0pO1xyXG4gICAgICBjYi5zZXRWYWx1ZShzZXR0aW5ncy52aXNBbGwpO1xyXG5cclxuICAgICAgY2Iub25DaGFuZ2UoYXN5bmMgKHZhbHVlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy52aXNBbGwgPSB2YWx1ZTtcclxuICAgICAgICBhd2FpdCBwbHVnaW4uc2F2ZVNldHRpbmdzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuIiwgImltcG9ydCB7IFNldHRpbmcgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IENoZWNrYm94ZXMgZnJvbSBcIi4uL0NvbXBvbmVudHMvQ2hlY2tib3hlcy5zdmVsdGVcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuaW1wb3J0IHsgZ2V0RmllbGRzIH0gZnJvbSBcIi4uL1V0aWxzL0hpZXJVdGlsc1wiO1xyXG5pbXBvcnQgeyBmcmFnV2l0aEhUTUwsIHN1YkRldGFpbHMgfSBmcm9tIFwiLi9CcmVhZGNydW1ic1NldHRpbmdUYWJcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRXcml0ZUJDc1NldHRpbmdzKFxyXG4gIHBsdWdpbjogQkNQbHVnaW4sXHJcbiAgY21kc0RldGFpbHM6IEhUTUxEZXRhaWxzRWxlbWVudFxyXG4pIHtcclxuICBjb25zdCB7IHNldHRpbmdzIH0gPSBwbHVnaW47XHJcbiAgY29uc3Qgd3JpdGVCQ3NUb0ZpbGVEZXRhaWxzID0gc3ViRGV0YWlscyhcclxuICAgIFwiV3JpdGUgQnJlYWRjcnVtYnMgdG8gRmlsZVwiLFxyXG4gICAgY21kc0RldGFpbHNcclxuICApO1xyXG5cclxuICB3cml0ZUJDc1RvRmlsZURldGFpbHMuY3JlYXRlRGl2KHtcclxuICAgIGNsczogXCJzZXR0aW5nLWl0ZW0tbmFtZVwiLFxyXG4gICAgdGV4dDogXCJMaW1pdCB0byBvbmx5IHdyaXRlIGNlcnRhaW4gZmllbGRzXCIsXHJcbiAgfSk7XHJcblxyXG4gIG5ldyBDaGVja2JveGVzKHtcclxuICAgIHRhcmdldDogd3JpdGVCQ3NUb0ZpbGVEZXRhaWxzLFxyXG4gICAgcHJvcHM6IHtcclxuICAgICAgcGx1Z2luLFxyXG4gICAgICBvcHRpb25zOiBnZXRGaWVsZHMoc2V0dGluZ3MudXNlckhpZXJzKSxcclxuICAgICAgc2V0dGluZ05hbWU6IFwibGltaXRXcml0ZUJDQ2hlY2tib3hlc1wiLFxyXG4gICAgfSxcclxuICB9KTtcclxuXHJcbiAgbmV3IFNldHRpbmcod3JpdGVCQ3NUb0ZpbGVEZXRhaWxzKVxyXG4gICAgLnNldE5hbWUoXCJXcml0ZSBJbmxpbmVcIilcclxuICAgIC5zZXREZXNjKFxyXG4gICAgICBcIldoZW4gd3JpdGluZyBCQ3MgdG8gZmlsZSwgc2hvdWxkIHRoZXkgYmUgd3JpdHRlbiBpbmxpbmUgKHVzaW5nIERhdGF2aWV3IHN5bnRheCksIG9yIGludG8gdGhlIFlBTUwgb2YgdGhlIG5vdGU/XCJcclxuICAgIClcclxuICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cclxuICAgICAgdG9nZ2xlLnNldFZhbHVlKHNldHRpbmdzLndyaXRlQkNzSW5saW5lKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuICAgICAgICBzZXR0aW5ncy53cml0ZUJDc0lubGluZSA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gIG5ldyBTZXR0aW5nKHdyaXRlQkNzVG9GaWxlRGV0YWlscylcclxuICAgIC5zZXROYW1lKFxyXG4gICAgICBmcmFnV2l0aEhUTUwoXHJcbiAgICAgICAgXCJTaG93IHRoZSA8Y29kZT5Xcml0ZSBCcmVhZGNydW1icyB0byBBTEwgRmlsZXM8L2NvZGU+IGNvbW1hbmRcIlxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuc2V0RGVzYyhcclxuICAgICAgXCJUaGlzIGNvbW1hbmQgYXR0ZW1wdHMgdG8gdXBkYXRlIEFMTCBmaWxlcyB3aXRoIGltcGxpZWQgYnJlYWRjcnVtYnMgcG9pbnRpbmcgdG8gdGhlbS4gU28sIGl0IGlzIG5vdCBzaG93biBieSBkZWZhdWx0IChldmVuIHRob3VnaCBpdCBoYXMgMyBjb25maXJtYXRpb24gYm94ZXMgdG8gZW5zdXJlIHlvdSB3YW50IHRvIHJ1biBpdFwiXHJcbiAgICApXHJcbiAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XHJcbiAgICAgIHRvZ2dsZS5zZXRWYWx1ZShzZXR0aW5ncy5zaG93V3JpdGVBbGxCQ3NDbWQpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzLnNob3dXcml0ZUFsbEJDc0NtZCA9IHZhbHVlO1xyXG4gICAgICAgIGF3YWl0IHBsdWdpbi5zYXZlU2V0dGluZ3MoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbn1cclxuIiwgImltcG9ydCB7IEl0ZW1WaWV3LCBXb3Jrc3BhY2VMZWFmIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCBEdWNrcyBmcm9tIFwiLi4vQ29tcG9uZW50cy9EdWNrcy5zdmVsdGVcIjtcclxuaW1wb3J0IHsgRFVDS19JQ09OLCBEVUNLX1ZJRVcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEdWNrc1ZpZXcgZXh0ZW5kcyBJdGVtVmlldyB7XHJcbiAgcHJpdmF0ZSBwbHVnaW46IEJDUGx1Z2luO1xyXG4gIHByaXZhdGUgdmlldzogRHVja3M7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGxlYWY6IFdvcmtzcGFjZUxlYWYsIHBsdWdpbjogQkNQbHVnaW4pIHtcclxuICAgIHN1cGVyKGxlYWYpO1xyXG4gICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XHJcbiAgfVxyXG5cclxuICBhc3luYyBvbmxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBzdXBlci5vbmxvYWQoKTtcclxuICAgIGF3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KGFzeW5jICgpID0+IHtcclxuICAgICAgYXdhaXQgdGhpcy5kcmF3KCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFZpZXdUeXBlKCkge1xyXG4gICAgcmV0dXJuIERVQ0tfVklFVztcclxuICB9XHJcbiAgZ2V0RGlzcGxheVRleHQoKSB7XHJcbiAgICByZXR1cm4gXCJCcmVhZGNydW1icyBEdWNrc1wiO1xyXG4gIH1cclxuXHJcbiAgLy8gVE9ETyBEdWNrIGljb25cclxuICBpY29uID0gRFVDS19JQ09OO1xyXG5cclxuICBhc3luYyBvbk9wZW4oKTogUHJvbWlzZTx2b2lkPiB7IH1cclxuXHJcbiAgb25DbG9zZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudmlldz8uJGRlc3Ryb3koKTtcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGRyYXcoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmNvbnRlbnRFbC5lbXB0eSgpO1xyXG5cclxuICAgIHRoaXMudmlldyA9IG5ldyBEdWNrcyh7XHJcbiAgICAgIHRhcmdldDogdGhpcy5jb250ZW50RWwsXHJcbiAgICAgIHByb3BzOiB7IHBsdWdpbjogdGhpcy5wbHVnaW4sIGR1Y2tzVmlldzogdGhpcyB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsICI8c2NyaXB0PlxuICAgICAgICBpbXBvcnQgSWNvbkJhc2UgZnJvbSAnLi4vY29tcG9uZW50cy9JY29uQmFzZS5zdmVsdGUnO1xuICAgICAgICA8L3NjcmlwdD5cbiAgICAgICAgPEljb25CYXNlIHZpZXdCb3g9XCIwIDAgMTkyIDUxMlwiIHsuLi4kJHByb3BzfT5cbiAgICAgICAgICA8cGF0aCBkPVwiTTIwIDQyNC4yMjloMjBWMjc5Ljc3MUgyMGMtMTEuMDQ2IDAtMjAtOC45NTQtMjAtMjBWMjEyYzAtMTEuMDQ2IDguOTU0LTIwIDIwLTIwaDExMmMxMS4wNDYgMCAyMCA4Ljk1NCAyMCAyMHYyMTIuMjI5aDIwYzExLjA0NiAwIDIwIDguOTU0IDIwIDIwVjQ5MmMwIDExLjA0Ni04Ljk1NCAyMC0yMCAyMEgyMGMtMTEuMDQ2IDAtMjAtOC45NTQtMjAtMjB2LTQ3Ljc3MWMwLTExLjA0NiA4Ljk1NC0yMCAyMC0yMHpNOTYgMEM1Ni4yMzUgMCAyNCAzMi4yMzUgMjQgNzJzMzIuMjM1IDcyIDcyIDcyIDcyLTMyLjIzNSA3Mi03MlMxMzUuNzY0IDAgOTYgMHpcIiAvPlxuICAgICAgICA8L0ljb25CYXNlPlxuICAgICAgIiwgbnVsbCwgIjxzY3JpcHQgbGFuZz1cInRzXCI+XHJcbiAgaW1wb3J0IHsgaG92ZXJQcmV2aWV3LCBvcGVuT3JTd2l0Y2ggfSBmcm9tIFwib2JzaWRpYW4tY29tbXVuaXR5LWxpYlwiO1xyXG4gIGltcG9ydCBGYUluZm8gZnJvbSBcInN2ZWx0ZS1pY29ucy9mYS9GYUluZm8uc3ZlbHRlXCI7XHJcbiAgaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uL21haW5cIjtcclxuICBpbXBvcnQgdHlwZSBEdWNrc1ZpZXcgZnJvbSBcIi4uL1ZpZXdzL0R1Y2tzVmlld1wiO1xyXG5cclxuICBleHBvcnQgbGV0IHBsdWdpbjogQkNQbHVnaW47XHJcbiAgZXhwb3J0IGxldCBkdWNrc1ZpZXc6IER1Y2tzVmlldztcclxuXHJcbiAgY29uc3QgeyBtYWluRyB9ID0gcGx1Z2luO1xyXG4gIGNvbnN0IGZpbGVzID0gYXBwLnZhdWx0LmdldE1hcmtkb3duRmlsZXMoKTtcclxuXHJcbiAgbGV0IHF1ZXJ5OiBzdHJpbmcgPSBcIlwiO1xyXG4gIGxldCByZWdleCA9IG5ldyBSZWdFeHAocXVlcnksIFwiZ1wiKTtcclxuICBsZXQgaW5jbHVkZSA9IHRydWU7XHJcblxyXG4gICQ6IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IG5ld1JlZyA9IG5ldyBSZWdFeHAocXVlcnksIFwiZ1wiKTtcclxuICAgICAgcmVnZXggPSBuZXdSZWc7XHJcbiAgICB9IGNhdGNoIChlKSB7fVxyXG4gIH1cclxuXHJcbiAgY29uc3QgZ2V0RHVja3MgPSAocmVnZXg6IFJlZ0V4cCkgPT4ge1xyXG4gICAgaWYgKCFyZWdleCkgcmV0dXJuO1xyXG4gICAgcmV0dXJuIGZpbGVzXHJcbiAgICAgIC5tYXAoKGZpbGUpID0+IGZpbGUuYmFzZW5hbWUpXHJcbiAgICAgIC5maWx0ZXIoXHJcbiAgICAgICAgKG5hbWUpID0+ICFtYWluRy5uZWlnaGJvcnMobmFtZSkubGVuZ3RoICYmIGluY2x1ZGUgPT09IHJlZ2V4LnRlc3QobmFtZSlcclxuICAgICAgKTtcclxuICB9O1xyXG5cclxuICAkOiBkdWNrcyA9IGdldER1Y2tzKHJlZ2V4KTtcclxuPC9zY3JpcHQ+XHJcblxyXG48ZGl2IGNsYXNzPVwiQkMtRHVja3MgbWFya2Rvd24tcHJldmlldy12aWV3XCI+XHJcbiAgPGg2Pk5vdGVzIHdpdGhvdXQgQnJlYWRjcnVtYnM8L2g2PlxyXG4gIDxzcGFuXHJcbiAgICBjbGFzcz1cImljb25cIlxyXG4gICAgYXJpYS1sYWJlbD17YEEgUmVnZXggdXNlZCB0byBmaWx0ZXIgdGhlIHJlc3VsdHMuXFxuSWYgJ0luY2x1ZGUnIGlzIGNoZWNrZWQsIGl0IHdpbGwgb25seSBzaG93IG5vdGVzIHRoYXQgbWF0Y2ggdGhlIHJlZ2V4LlxcbklmICdJbmNsdWRlJyBpcyBub3QgY2hlY2tlZCwgdGhpcyByZWdleCB3aWxsIGZpbHRlciBvdXQgbm90ZXMgdGhhdCBtYXRjaCBpdC5gfVxyXG4gID5cclxuICAgIDxGYUluZm8gLz5cclxuICA8L3NwYW4+XHJcbiAgPGxhYmVsPlxyXG4gICAgRmlsdGVyOlxyXG4gICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJSZWdleFwiIGJpbmQ6dmFsdWU9e3F1ZXJ5fSAvPlxyXG4gIDwvbGFiZWw+XHJcbiAgPGlucHV0IGFyaWEtbGFiZWw9XCJJbmNsdWRlXCIgdHlwZT1cImNoZWNrYm94XCIgYmluZDpjaGVja2VkPXtpbmNsdWRlfSAvPlxyXG5cclxuICB7I2VhY2ggZHVja3MgYXMgZHVja31cclxuICAgIDxkaXZcclxuICAgICAgb246Y2xpY2s9e2FzeW5jIChlKSA9PiBhd2FpdCBvcGVuT3JTd2l0Y2goZHVjaywgZSl9XHJcbiAgICAgIG9uOm1vdXNlb3Zlcj17KGUpID0+IGhvdmVyUHJldmlldyhlLCBkdWNrc1ZpZXcsIGR1Y2spfVxyXG4gICAgPlxyXG4gICAgICA8IS0tIHN2ZWx0ZS1pZ25vcmUgYTExeS1taXNzaW5nLWF0dHJpYnV0ZSAtLT5cclxuICAgICAgPGEgY2xhc3M9XCJpbnRlcm5hbC1saW5rXCI+e2R1Y2t9PC9hPlxyXG4gICAgPC9kaXY+XHJcbiAgey9lYWNofVxyXG48L2Rpdj5cclxuXHJcbjxzdHlsZT5cclxuICAuaWNvbiB7XHJcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1ub3JtYWwpO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy10b3A6IDVweCAhaW1wb3J0YW50O1xyXG4gICAgd2lkdGg6IDIwcHg7XHJcbiAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgfVxyXG48L3N0eWxlPlxyXG4iLCAiaW1wb3J0IHsgSXRlbVZpZXcsIFdvcmtzcGFjZUxlYWYgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHsgYWRkRmVhdGhlckljb24gfSBmcm9tIFwib2JzaWRpYW4tY29tbXVuaXR5LWxpYlwiO1xyXG5pbXBvcnQgU2lkZVRyZWUgZnJvbSBcIi4uL0NvbXBvbmVudHMvU2lkZVRyZWUuc3ZlbHRlXCI7XHJcbmltcG9ydCB7IFRSRUVfVklFVyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHR5cGUgQkNQbHVnaW4gZnJvbSBcIi4uLy4uL21haW5cIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRyZWVWaWV3IGV4dGVuZHMgSXRlbVZpZXcge1xyXG4gIHByaXZhdGUgcGx1Z2luOiBCQ1BsdWdpbjtcclxuICBwcml2YXRlIHZpZXc6IFNpZGVUcmVlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihsZWFmOiBXb3Jrc3BhY2VMZWFmLCBwbHVnaW46IEJDUGx1Z2luKSB7XHJcbiAgICBzdXBlcihsZWFmKTtcclxuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgc3VwZXIub25sb2FkKCk7XHJcbiAgICBhcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkoYXN5bmMgKCkgPT4ge1xyXG4gICAgICBhd2FpdCB0aGlzLmRyYXcoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Vmlld1R5cGUoKSB7XHJcbiAgICByZXR1cm4gVFJFRV9WSUVXO1xyXG4gIH1cclxuICBnZXREaXNwbGF5VGV4dCgpIHtcclxuICAgIHJldHVybiBcIkJyZWFkY3J1bWJzIERvd25cIjtcclxuICB9XHJcblxyXG4gIGljb24gPSBhZGRGZWF0aGVySWNvbihcImNvcm5lci1yaWdodC1kb3duXCIpIGFzIHN0cmluZztcclxuXHJcbiAgYXN5bmMgb25PcGVuKCk6IFByb21pc2U8dm9pZD4ge31cclxuXHJcbiAgb25DbG9zZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudmlldz8uJGRlc3Ryb3koKTtcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGRyYXcoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmNvbnRlbnRFbC5lbXB0eSgpO1xyXG5cclxuICAgIHRoaXMudmlldyA9IG5ldyBTaWRlVHJlZSh7XHJcbiAgICAgIHRhcmdldDogdGhpcy5jb250ZW50RWwsXHJcbiAgICAgIHByb3BzOiB7IHBsdWdpbjogdGhpcy5wbHVnaW4sIHZpZXc6IHRoaXMgfSxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCBudWxsLCAiPHNjcmlwdCBsYW5nPVwidHNcIj5cclxuICBpbXBvcnQgeyBpbmZvIH0gZnJvbSBcImxvZ2xldmVsXCI7XHJcbiAgaW1wb3J0IHtcclxuICAgIGhvdmVyUHJldmlldyxcclxuICAgIGlzSW5WYXVsdCxcclxuICAgIG9wZW5PclN3aXRjaCxcclxuICB9IGZyb20gXCJvYnNpZGlhbi1jb21tdW5pdHktbGliXCI7XHJcbiAgaW1wb3J0IEZhRmlyZSBmcm9tIFwic3ZlbHRlLWljb25zL2ZhL0ZhRmlyZS5zdmVsdGVcIjtcclxuICBpbXBvcnQgRmFSZWdTbm93Zmxha2UgZnJvbSBcInN2ZWx0ZS1pY29ucy9mYS9GYVJlZ1Nub3dmbGFrZS5zdmVsdGVcIjtcclxuICBpbXBvcnQgeyBjcmVhdGVJbmRleCwgaW5kZXhUb0xpbmVQYWlycyB9IGZyb20gXCIuLi9Db21tYW5kcy9DcmVhdGVJbmRleFwiO1xyXG4gIGltcG9ydCB7IERJUkVDVElPTlMgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XHJcbiAgaW1wb3J0IHR5cGUgeyBEaXJlY3Rpb25zIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuICBpbXBvcnQgdHlwZSBCQ1BsdWdpbiBmcm9tIFwiLi4vbWFpblwiO1xyXG4gIGltcG9ydCB7IHJlZnJlc2hJbmRleCB9IGZyb20gXCIuLi9yZWZyZXNoSW5kZXhcIjtcclxuICBpbXBvcnQgeyBkcm9wRGVuZHJvbiB9IGZyb20gXCIuLi9VdGlscy9nZW5lcmFsVXRpbHNcIjtcclxuICBpbXBvcnQgeyBkZnNBbGxQYXRocywgZ2V0U3ViSW5EaXJzIH0gZnJvbSBcIi4uL1V0aWxzL2dyYXBoVXRpbHNcIjtcclxuICBpbXBvcnQgdHlwZSBUcmVlVmlldyBmcm9tIFwiLi4vVmlld3MvVHJlZVZpZXdcIjtcclxuICBpbXBvcnQgeyBnZXRDdXJyRmlsZSB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG4gIGV4cG9ydCBsZXQgcGx1Z2luOiBCQ1BsdWdpbjtcclxuICBleHBvcnQgbGV0IHZpZXc6IFRyZWVWaWV3O1xyXG5cclxuICBjb25zdCB7IHNldHRpbmdzLCBhcHAsIGNsb3NlZEcgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7IGNyZWF0ZUluZGV4SW5kZW50IH0gPSBzZXR0aW5ncztcclxuXHJcbiAgbGV0IGRpcjogRGlyZWN0aW9ucyA9IFwiZG93blwiO1xyXG4gIGxldCBmcm96ZW4gPSBmYWxzZTtcclxuICBsZXQgeyBiYXNlbmFtZSB9ID0gZ2V0Q3VyckZpbGUoKSA/PyB7fTtcclxuXHJcbiAgcGx1Z2luLnJlZ2lzdGVyRXZlbnQoXHJcbiAgICBhcHAud29ya3NwYWNlLm9uKFwiYWN0aXZlLWxlYWYtY2hhbmdlXCIsICgpID0+IHtcclxuICAgICAgaWYgKGZyb3plbikgcmV0dXJuO1xyXG4gICAgICBiYXNlbmFtZSA9IGdldEN1cnJGaWxlKCk/LmJhc2VuYW1lO1xyXG4gICAgfSlcclxuICApO1xyXG5cclxuICBsZXQgbGluZXM6IFtzdHJpbmcsIHN0cmluZ11bXTtcclxuICAkOiB7XHJcbiAgICBjb25zdCBkaXJHID0gZ2V0U3ViSW5EaXJzKGNsb3NlZEcsIGRpcik7XHJcbiAgICBjb25zdCBhbGxQYXRocyA9IGRmc0FsbFBhdGhzKGRpckcsIGJhc2VuYW1lKTtcclxuICAgIGNvbnN0IGluZGV4ID0gY3JlYXRlSW5kZXgoYWxsUGF0aHMsIGZhbHNlLCBjcmVhdGVJbmRleEluZGVudCk7XHJcbiAgICBpbmZvKHsgYWxsUGF0aHMsIGluZGV4IH0pO1xyXG5cclxuICAgIGxpbmVzID0gaW5kZXhUb0xpbmVQYWlycyhpbmRleCk7XHJcbiAgfVxyXG48L3NjcmlwdD5cclxuXHJcbjwhLS0gc3ZlbHRlLWlnbm9yZSBhMTF5LXVua25vd24tYXJpYS1hdHRyaWJ1dGUgLS0+XHJcbjxzcGFuXHJcbiAgY2xhc3M9XCJpY29uXCJcclxuICBhcmlhLWxhYmVsPXtmcm96ZW4gPyBgRnJvemVuIG9uOiAke2Jhc2VuYW1lfWAgOiBcIlVuZnJvemVuXCJ9XHJcbiAgYXJpYS1sYWJlbC1wb3NpdGlvbj1cImxlZnRcIlxyXG4gIG9uOmNsaWNrPXsoKSA9PiB7XHJcbiAgICBmcm96ZW4gPSAhZnJvemVuO1xyXG4gICAgaWYgKCFmcm96ZW4pIGJhc2VuYW1lID0gZ2V0Q3VyckZpbGUoKT8uYmFzZW5hbWU7XHJcbiAgfX1cclxuPlxyXG4gIHsjaWYgZnJvemVufVxyXG4gICAgPEZhUmVnU25vd2ZsYWtlIC8+XHJcbiAgezplbHNlfVxyXG4gICAgPEZhRmlyZSAvPlxyXG4gIHsvaWZ9XHJcbjwvc3Bhbj5cclxuXHJcbjxidXR0b25cclxuICBhcmlhLWxhYmVsPVwiUmVmcmVzaCBTdGF0cyBWaWV3IChhbHNvIHJlZnJlc2hlcyBCcmVhZGNydW1icyBJbmRleClcIlxyXG4gIG9uOmNsaWNrPXthc3luYyAoKSA9PiB7XHJcbiAgICBhd2FpdCByZWZyZXNoSW5kZXgocGx1Z2luKTtcclxuICAgIGF3YWl0IHZpZXcuZHJhdygpO1xyXG4gIH19XHJcbj5cclxuICBcdTIxQkJcclxuPC9idXR0b24+XHJcblxyXG48c2VsZWN0IGNsYXNzPVwiZHJvcGRvd25cIiBiaW5kOnZhbHVlPXtkaXJ9PlxyXG4gIHsjZWFjaCBESVJFQ1RJT05TIGFzIGRpcmVjdGlvbn1cclxuICAgIDxvcHRpb24gdmFsdWU9e2RpcmVjdGlvbn0+e2RpcmVjdGlvbn08L29wdGlvbj5cclxuICB7L2VhY2h9XHJcbjwvc2VsZWN0PlxyXG5cclxuPGRpdiBjbGFzcz1cIkJDLWRvd25zXCI+XHJcbiAgeyNlYWNoIGxpbmVzIGFzIGxpbmV9XHJcbiAgICB7I2lmIGxpbmUubGVuZ3RoID4gMX1cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8cHJlPntsaW5lWzBdICsgXCItXCJ9PC9wcmU+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgIGNsYXNzPVwiaW50ZXJuYWwtbGlua1wiXHJcbiAgICAgICAgICBvbjpjbGljaz17YXN5bmMgKGUpID0+IGF3YWl0IG9wZW5PclN3aXRjaChsaW5lWzFdLCBlKX1cclxuICAgICAgICAgIG9uOm1vdXNlb3Zlcj17KGUpID0+IGhvdmVyUHJldmlldyhlLCB2aWV3LCBsaW5lWzFdKX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8IS0tIHN2ZWx0ZS1pZ25vcmUgYTExeS1taXNzaW5nLWF0dHJpYnV0ZSAtLT5cclxuICAgICAgICAgIDxhIGNsYXNzPVwiaW50ZXJuYWwtbGluayB7aXNJblZhdWx0KGxpbmVbMV0pID8gJycgOiAnaXMtdW5yZXNvbHZlZCd9XCJcclxuICAgICAgICAgICAgPntkcm9wRGVuZHJvbihsaW5lWzFdLCBzZXR0aW5ncyl9PC9hXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIHsvaWZ9XHJcbiAgey9lYWNofVxyXG48L2Rpdj5cclxuXHJcbjxzdHlsZT5cclxuICBidXR0b24ge1xyXG4gICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgcGFkZGluZzogMXB4IDZweCAycHggNnB4O1xyXG4gIH1cclxuXHJcbiAgLkJDLWRvd25zIHtcclxuICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG4gIH1cclxuICBwcmUge1xyXG4gICAgZGlzcGxheTogaW5saW5lO1xyXG4gIH1cclxuXHJcbiAgLmlzLXVucmVzb2x2ZWQge1xyXG4gICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xyXG4gIH1cclxuXHJcbiAgLmljb24ge1xyXG4gICAgY29sb3I6IHZhcigtLXRleHQtbm9ybWFsKTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmctdG9wOiA1cHggIWltcG9ydGFudDtcclxuICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgaGVpZ2h0OiAyMHB4O1xyXG4gIH1cclxuPC9zdHlsZT5cclxuIiwgIjxzY3JpcHQ+XG4gICAgICAgIGltcG9ydCBJY29uQmFzZSBmcm9tICcuLi9jb21wb25lbnRzL0ljb25CYXNlLnN2ZWx0ZSc7XG4gICAgICAgIDwvc2NyaXB0PlxuICAgICAgICA8SWNvbkJhc2Ugdmlld0JveD1cIjAgMCAzODQgNTEyXCIgey4uLiQkcHJvcHN9PlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMjE2IDIzLjg2YzAtMjMuOC0zMC42NS0zMi43Ny00NC4xNS0xMy4wNEM0OCAxOTEuODUgMjI0IDIwMCAyMjQgMjg4YzAgMzUuNjMtMjkuMTEgNjQuNDYtNjQuODUgNjMuOTktMzUuMTctLjQ1LTYzLjE1LTI5Ljc3LTYzLjE1LTY0Ljk0di04NS41MWMwLTIxLjctMjYuNDctMzIuMjMtNDEuNDMtMTYuNUMyNy44IDIxMy4xNiAwIDI2MS4zMyAwIDMyMGMwIDEwNS44NyA4Ni4xMyAxOTIgMTkyIDE5MnMxOTItODYuMTMgMTkyLTE5MmMwLTE3MC4yOS0xNjgtMTkzLTE2OC0yOTYuMTR6XCIgLz5cbiAgICAgICAgPC9JY29uQmFzZT5cbiAgICAgICIsICI8c2NyaXB0PlxuICAgICAgICBpbXBvcnQgSWNvbkJhc2UgZnJvbSAnLi4vY29tcG9uZW50cy9JY29uQmFzZS5zdmVsdGUnO1xuICAgICAgICA8L3NjcmlwdD5cbiAgICAgICAgPEljb25CYXNlIHZpZXdCb3g9XCIwIDAgNDQ4IDUxMlwiIHsuLi4kJHByb3BzfT5cbiAgICAgICAgICA8cGF0aCBkPVwiTTQ0MC4xIDM1NS4ybC0zOS4yLTIzIDM0LjEtOS4zYzguNC0yLjMgMTMuNC0xMS4xIDExLjEtMTkuNmwtNC4xLTE1LjVjLTIuMi04LjUtMTAuOS0xMy42LTE5LjMtMTEuM0wzNDMgMjk4LjIgMjcxLjIgMjU2bDcxLjktNDIuMiA3OS43IDIxLjdjOC40IDIuMyAxNy0yLjggMTkuMy0xMS4zbDQuMS0xNS41YzIuMi04LjUtMi43LTE3LjMtMTEuMS0xOS42bC0zNC4xLTkuMyAzOS4yLTIzYzcuNS00LjQgMTAuMS0xNC4yIDUuOC0yMS45bC03LjktMTMuOWMtNC4zLTcuNy0xNC0xMC4zLTIxLjUtNS45bC0zOS4yIDIzIDkuMS0zNC43YzIuMi04LjUtMi43LTE3LjMtMTEuMS0xOS42bC0xNS4yLTQuMWMtOC40LTIuMy0xNyAyLjgtMTkuMyAxMS4zbC0yMS4zIDgxLTcxLjkgNDIuMnYtODQuNUwzMDYgNzAuNGM2LjEtNi4yIDYuMS0xNi40IDAtMjIuNmwtMTEuMS0xMS4zYy02LjEtNi4yLTE2LjEtNi4yLTIyLjIgMGwtMjQuOSAyNS40VjE2YzAtOC44LTctMTYtMTUuNy0xNmgtMTUuN2MtOC43IDAtMTUuNyA3LjItMTUuNyAxNnY0Ni4xbC0yNC45LTI1LjRjLTYuMS02LjItMTYuMS02LjItMjIuMiAwTDE0Mi4xIDQ4Yy02LjEgNi4yLTYuMSAxNi40IDAgMjIuNmw1OC4zIDU5LjN2ODQuNWwtNzEuOS00Mi4yLTIxLjMtODFjLTIuMi04LjUtMTAuOS0xMy42LTE5LjMtMTEuM0w3Mi43IDg0Yy04LjQgMi4zLTEzLjQgMTEuMS0xMS4xIDE5LjZsOS4xIDM0LjctMzkuMi0yM2MtNy41LTQuNC0xNy4xLTEuOC0yMS41IDUuOWwtNy45IDEzLjljLTQuMyA3LjctMS44IDE3LjQgNS44IDIxLjlsMzkuMiAyMy0zNC4xIDkuMWMtOC40IDIuMy0xMy40IDExLjEtMTEuMSAxOS42TDYgMjI0LjJjMi4yIDguNSAxMC45IDEzLjYgMTkuMyAxMS4zbDc5LjctMjEuNyA3MS45IDQyLjItNzEuOSA0Mi4yLTc5LjctMjEuN2MtOC40LTIuMy0xNyAyLjgtMTkuMyAxMS4zbC00LjEgMTUuNWMtMi4yIDguNSAyLjcgMTcuMyAxMS4xIDE5LjZsMzQuMSA5LjMtMzkuMiAyM2MtNy41IDQuNC0xMC4xIDE0LjItNS44IDIxLjlMMTAgMzkxYzQuMyA3LjcgMTQgMTAuMyAyMS41IDUuOWwzOS4yLTIzLTkuMSAzNC43Yy0yLjIgOC41IDIuNyAxNy4zIDExLjEgMTkuNmwxNS4yIDQuMWM4LjQgMi4zIDE3LTIuOCAxOS4zLTExLjNsMjEuMy04MSA3MS45LTQyLjJ2ODQuNWwtNTguMyA1OS4zYy02LjEgNi4yLTYuMSAxNi40IDAgMjIuNmwxMS4xIDExLjNjNi4xIDYuMiAxNi4xIDYuMiAyMi4yIDBsMjQuOS0yNS40VjQ5NmMwIDguOCA3IDE2IDE1LjcgMTZoMTUuN2M4LjcgMCAxNS43LTcuMiAxNS43LTE2di00Ni4xbDI0LjkgMjUuNGM2LjEgNi4yIDE2LjEgNi4yIDIyLjIgMGwxMS4xLTExLjNjNi4xLTYuMiA2LjEtMTYuNCAwLTIyLjZsLTU4LjMtNTkuM3YtODQuNWw3MS45IDQyLjIgMjEuMyA4MWMyLjIgOC41IDEwLjkgMTMuNiAxOS4zIDExLjNMMzc1IDQyOGM4LjQtMi4zIDEzLjQtMTEuMSAxMS4xLTE5LjZsLTkuMS0zNC43IDM5LjIgMjNjNy41IDQuNCAxNy4xIDEuOCAyMS41LTUuOWw3LjktMTMuOWM0LjYtNy41IDIuMS0xNy4zLTUuNS0yMS43elwiIC8+XG4gICAgICAgIDwvSWNvbkJhc2U+XG4gICAgICAiLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oYSwgYikge1xuICByZXR1cm4gYSA8IGIgPyAtMSA6IGEgPiBiID8gMSA6IGEgPj0gYiA/IDAgOiBOYU47XG59XG4iLCAiaW1wb3J0IGFzY2VuZGluZyBmcm9tIFwiLi9hc2NlbmRpbmcuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oZikge1xuICBsZXQgZGVsdGEgPSBmO1xuICBsZXQgY29tcGFyZSA9IGY7XG5cbiAgaWYgKGYubGVuZ3RoID09PSAxKSB7XG4gICAgZGVsdGEgPSAoZCwgeCkgPT4gZihkKSAtIHg7XG4gICAgY29tcGFyZSA9IGFzY2VuZGluZ0NvbXBhcmF0b3IoZik7XG4gIH1cblxuICBmdW5jdGlvbiBsZWZ0KGEsIHgsIGxvLCBoaSkge1xuICAgIGlmIChsbyA9PSBudWxsKSBsbyA9IDA7XG4gICAgaWYgKGhpID09IG51bGwpIGhpID0gYS5sZW5ndGg7XG4gICAgd2hpbGUgKGxvIDwgaGkpIHtcbiAgICAgIGNvbnN0IG1pZCA9IChsbyArIGhpKSA+Pj4gMTtcbiAgICAgIGlmIChjb21wYXJlKGFbbWlkXSwgeCkgPCAwKSBsbyA9IG1pZCArIDE7XG4gICAgICBlbHNlIGhpID0gbWlkO1xuICAgIH1cbiAgICByZXR1cm4gbG87XG4gIH1cblxuICBmdW5jdGlvbiByaWdodChhLCB4LCBsbywgaGkpIHtcbiAgICBpZiAobG8gPT0gbnVsbCkgbG8gPSAwO1xuICAgIGlmIChoaSA9PSBudWxsKSBoaSA9IGEubGVuZ3RoO1xuICAgIHdoaWxlIChsbyA8IGhpKSB7XG4gICAgICBjb25zdCBtaWQgPSAobG8gKyBoaSkgPj4+IDE7XG4gICAgICBpZiAoY29tcGFyZShhW21pZF0sIHgpID4gMCkgaGkgPSBtaWQ7XG4gICAgICBlbHNlIGxvID0gbWlkICsgMTtcbiAgICB9XG4gICAgcmV0dXJuIGxvO1xuICB9XG5cbiAgZnVuY3Rpb24gY2VudGVyKGEsIHgsIGxvLCBoaSkge1xuICAgIGlmIChsbyA9PSBudWxsKSBsbyA9IDA7XG4gICAgaWYgKGhpID09IG51bGwpIGhpID0gYS5sZW5ndGg7XG4gICAgY29uc3QgaSA9IGxlZnQoYSwgeCwgbG8sIGhpIC0gMSk7XG4gICAgcmV0dXJuIGkgPiBsbyAmJiBkZWx0YShhW2kgLSAxXSwgeCkgPiAtZGVsdGEoYVtpXSwgeCkgPyBpIC0gMSA6IGk7XG4gIH1cblxuICByZXR1cm4ge2xlZnQsIGNlbnRlciwgcmlnaHR9O1xufVxuXG5mdW5jdGlvbiBhc2NlbmRpbmdDb21wYXJhdG9yKGYpIHtcbiAgcmV0dXJuIChkLCB4KSA9PiBhc2NlbmRpbmcoZihkKSwgeCk7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeCkge1xuICByZXR1cm4geCA9PT0gbnVsbCA/IE5hTiA6ICt4O1xufVxuXG5leHBvcnQgZnVuY3Rpb24qIG51bWJlcnModmFsdWVzLCB2YWx1ZW9mKSB7XG4gIGlmICh2YWx1ZW9mID09PSB1bmRlZmluZWQpIHtcbiAgICBmb3IgKGxldCB2YWx1ZSBvZiB2YWx1ZXMpIHtcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmICh2YWx1ZSA9ICt2YWx1ZSkgPj0gdmFsdWUpIHtcbiAgICAgICAgeWllbGQgdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxldCBpbmRleCA9IC0xO1xuICAgIGZvciAobGV0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgaWYgKCh2YWx1ZSA9IHZhbHVlb2YodmFsdWUsICsraW5kZXgsIHZhbHVlcykpICE9IG51bGwgJiYgKHZhbHVlID0gK3ZhbHVlKSA+PSB2YWx1ZSkge1xuICAgICAgICB5aWVsZCB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQgYXNjZW5kaW5nIGZyb20gXCIuL2FzY2VuZGluZy5qc1wiO1xuaW1wb3J0IGJpc2VjdG9yIGZyb20gXCIuL2Jpc2VjdG9yLmpzXCI7XG5pbXBvcnQgbnVtYmVyIGZyb20gXCIuL251bWJlci5qc1wiO1xuXG5jb25zdCBhc2NlbmRpbmdCaXNlY3QgPSBiaXNlY3Rvcihhc2NlbmRpbmcpO1xuZXhwb3J0IGNvbnN0IGJpc2VjdFJpZ2h0ID0gYXNjZW5kaW5nQmlzZWN0LnJpZ2h0O1xuZXhwb3J0IGNvbnN0IGJpc2VjdExlZnQgPSBhc2NlbmRpbmdCaXNlY3QubGVmdDtcbmV4cG9ydCBjb25zdCBiaXNlY3RDZW50ZXIgPSBiaXNlY3RvcihudW1iZXIpLmNlbnRlcjtcbmV4cG9ydCBkZWZhdWx0IGJpc2VjdFJpZ2h0O1xuIiwgInZhciBlMTAgPSBNYXRoLnNxcnQoNTApLFxuICAgIGU1ID0gTWF0aC5zcXJ0KDEwKSxcbiAgICBlMiA9IE1hdGguc3FydCgyKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oc3RhcnQsIHN0b3AsIGNvdW50KSB7XG4gIHZhciByZXZlcnNlLFxuICAgICAgaSA9IC0xLFxuICAgICAgbixcbiAgICAgIHRpY2tzLFxuICAgICAgc3RlcDtcblxuICBzdG9wID0gK3N0b3AsIHN0YXJ0ID0gK3N0YXJ0LCBjb3VudCA9ICtjb3VudDtcbiAgaWYgKHN0YXJ0ID09PSBzdG9wICYmIGNvdW50ID4gMCkgcmV0dXJuIFtzdGFydF07XG4gIGlmIChyZXZlcnNlID0gc3RvcCA8IHN0YXJ0KSBuID0gc3RhcnQsIHN0YXJ0ID0gc3RvcCwgc3RvcCA9IG47XG4gIGlmICgoc3RlcCA9IHRpY2tJbmNyZW1lbnQoc3RhcnQsIHN0b3AsIGNvdW50KSkgPT09IDAgfHwgIWlzRmluaXRlKHN0ZXApKSByZXR1cm4gW107XG5cbiAgaWYgKHN0ZXAgPiAwKSB7XG4gICAgbGV0IHIwID0gTWF0aC5yb3VuZChzdGFydCAvIHN0ZXApLCByMSA9IE1hdGgucm91bmQoc3RvcCAvIHN0ZXApO1xuICAgIGlmIChyMCAqIHN0ZXAgPCBzdGFydCkgKytyMDtcbiAgICBpZiAocjEgKiBzdGVwID4gc3RvcCkgLS1yMTtcbiAgICB0aWNrcyA9IG5ldyBBcnJheShuID0gcjEgLSByMCArIDEpO1xuICAgIHdoaWxlICgrK2kgPCBuKSB0aWNrc1tpXSA9IChyMCArIGkpICogc3RlcDtcbiAgfSBlbHNlIHtcbiAgICBzdGVwID0gLXN0ZXA7XG4gICAgbGV0IHIwID0gTWF0aC5yb3VuZChzdGFydCAqIHN0ZXApLCByMSA9IE1hdGgucm91bmQoc3RvcCAqIHN0ZXApO1xuICAgIGlmIChyMCAvIHN0ZXAgPCBzdGFydCkgKytyMDtcbiAgICBpZiAocjEgLyBzdGVwID4gc3RvcCkgLS1yMTtcbiAgICB0aWNrcyA9IG5ldyBBcnJheShuID0gcjEgLSByMCArIDEpO1xuICAgIHdoaWxlICgrK2kgPCBuKSB0aWNrc1tpXSA9IChyMCArIGkpIC8gc3RlcDtcbiAgfVxuXG4gIGlmIChyZXZlcnNlKSB0aWNrcy5yZXZlcnNlKCk7XG5cbiAgcmV0dXJuIHRpY2tzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGlja0luY3JlbWVudChzdGFydCwgc3RvcCwgY291bnQpIHtcbiAgdmFyIHN0ZXAgPSAoc3RvcCAtIHN0YXJ0KSAvIE1hdGgubWF4KDAsIGNvdW50KSxcbiAgICAgIHBvd2VyID0gTWF0aC5mbG9vcihNYXRoLmxvZyhzdGVwKSAvIE1hdGguTE4xMCksXG4gICAgICBlcnJvciA9IHN0ZXAgLyBNYXRoLnBvdygxMCwgcG93ZXIpO1xuICByZXR1cm4gcG93ZXIgPj0gMFxuICAgICAgPyAoZXJyb3IgPj0gZTEwID8gMTAgOiBlcnJvciA+PSBlNSA/IDUgOiBlcnJvciA+PSBlMiA/IDIgOiAxKSAqIE1hdGgucG93KDEwLCBwb3dlcilcbiAgICAgIDogLU1hdGgucG93KDEwLCAtcG93ZXIpIC8gKGVycm9yID49IGUxMCA/IDEwIDogZXJyb3IgPj0gZTUgPyA1IDogZXJyb3IgPj0gZTIgPyAyIDogMSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aWNrU3RlcChzdGFydCwgc3RvcCwgY291bnQpIHtcbiAgdmFyIHN0ZXAwID0gTWF0aC5hYnMoc3RvcCAtIHN0YXJ0KSAvIE1hdGgubWF4KDAsIGNvdW50KSxcbiAgICAgIHN0ZXAxID0gTWF0aC5wb3coMTAsIE1hdGguZmxvb3IoTWF0aC5sb2coc3RlcDApIC8gTWF0aC5MTjEwKSksXG4gICAgICBlcnJvciA9IHN0ZXAwIC8gc3RlcDE7XG4gIGlmIChlcnJvciA+PSBlMTApIHN0ZXAxICo9IDEwO1xuICBlbHNlIGlmIChlcnJvciA+PSBlNSkgc3RlcDEgKj0gNTtcbiAgZWxzZSBpZiAoZXJyb3IgPj0gZTIpIHN0ZXAxICo9IDI7XG4gIHJldHVybiBzdG9wIDwgc3RhcnQgPyAtc3RlcDEgOiBzdGVwMTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtYXgodmFsdWVzLCB2YWx1ZW9mKSB7XG4gIGxldCBtYXg7XG4gIGlmICh2YWx1ZW9mID09PSB1bmRlZmluZWQpIHtcbiAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgaWYgKHZhbHVlICE9IG51bGxcbiAgICAgICAgICAmJiAobWF4IDwgdmFsdWUgfHwgKG1heCA9PT0gdW5kZWZpbmVkICYmIHZhbHVlID49IHZhbHVlKSkpIHtcbiAgICAgICAgbWF4ID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxldCBpbmRleCA9IC0xO1xuICAgIGZvciAobGV0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgaWYgKCh2YWx1ZSA9IHZhbHVlb2YodmFsdWUsICsraW5kZXgsIHZhbHVlcykpICE9IG51bGxcbiAgICAgICAgICAmJiAobWF4IDwgdmFsdWUgfHwgKG1heCA9PT0gdW5kZWZpbmVkICYmIHZhbHVlID49IHZhbHVlKSkpIHtcbiAgICAgICAgbWF4ID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBtYXg7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oc3RhcnQsIHN0b3AsIHN0ZXApIHtcbiAgc3RhcnQgPSArc3RhcnQsIHN0b3AgPSArc3RvcCwgc3RlcCA9IChuID0gYXJndW1lbnRzLmxlbmd0aCkgPCAyID8gKHN0b3AgPSBzdGFydCwgc3RhcnQgPSAwLCAxKSA6IG4gPCAzID8gMSA6ICtzdGVwO1xuXG4gIHZhciBpID0gLTEsXG4gICAgICBuID0gTWF0aC5tYXgoMCwgTWF0aC5jZWlsKChzdG9wIC0gc3RhcnQpIC8gc3RlcCkpIHwgMCxcbiAgICAgIHJhbmdlID0gbmV3IEFycmF5KG4pO1xuXG4gIHdoaWxlICgrK2kgPCBuKSB7XG4gICAgcmFuZ2VbaV0gPSBzdGFydCArIGkgKiBzdGVwO1xuICB9XG5cbiAgcmV0dXJuIHJhbmdlO1xufVxuIiwgInZhciBub29wID0ge3ZhbHVlOiAoKSA9PiB7fX07XG5cbmZ1bmN0aW9uIGRpc3BhdGNoKCkge1xuICBmb3IgKHZhciBpID0gMCwgbiA9IGFyZ3VtZW50cy5sZW5ndGgsIF8gPSB7fSwgdDsgaSA8IG47ICsraSkge1xuICAgIGlmICghKHQgPSBhcmd1bWVudHNbaV0gKyBcIlwiKSB8fCAodCBpbiBfKSB8fCAvW1xccy5dLy50ZXN0KHQpKSB0aHJvdyBuZXcgRXJyb3IoXCJpbGxlZ2FsIHR5cGU6IFwiICsgdCk7XG4gICAgX1t0XSA9IFtdO1xuICB9XG4gIHJldHVybiBuZXcgRGlzcGF0Y2goXyk7XG59XG5cbmZ1bmN0aW9uIERpc3BhdGNoKF8pIHtcbiAgdGhpcy5fID0gXztcbn1cblxuZnVuY3Rpb24gcGFyc2VUeXBlbmFtZXModHlwZW5hbWVzLCB0eXBlcykge1xuICByZXR1cm4gdHlwZW5hbWVzLnRyaW0oKS5zcGxpdCgvXnxcXHMrLykubWFwKGZ1bmN0aW9uKHQpIHtcbiAgICB2YXIgbmFtZSA9IFwiXCIsIGkgPSB0LmluZGV4T2YoXCIuXCIpO1xuICAgIGlmIChpID49IDApIG5hbWUgPSB0LnNsaWNlKGkgKyAxKSwgdCA9IHQuc2xpY2UoMCwgaSk7XG4gICAgaWYgKHQgJiYgIXR5cGVzLmhhc093blByb3BlcnR5KHQpKSB0aHJvdyBuZXcgRXJyb3IoXCJ1bmtub3duIHR5cGU6IFwiICsgdCk7XG4gICAgcmV0dXJuIHt0eXBlOiB0LCBuYW1lOiBuYW1lfTtcbiAgfSk7XG59XG5cbkRpc3BhdGNoLnByb3RvdHlwZSA9IGRpc3BhdGNoLnByb3RvdHlwZSA9IHtcbiAgY29uc3RydWN0b3I6IERpc3BhdGNoLFxuICBvbjogZnVuY3Rpb24odHlwZW5hbWUsIGNhbGxiYWNrKSB7XG4gICAgdmFyIF8gPSB0aGlzLl8sXG4gICAgICAgIFQgPSBwYXJzZVR5cGVuYW1lcyh0eXBlbmFtZSArIFwiXCIsIF8pLFxuICAgICAgICB0LFxuICAgICAgICBpID0gLTEsXG4gICAgICAgIG4gPSBULmxlbmd0aDtcblxuICAgIC8vIElmIG5vIGNhbGxiYWNrIHdhcyBzcGVjaWZpZWQsIHJldHVybiB0aGUgY2FsbGJhY2sgb2YgdGhlIGdpdmVuIHR5cGUgYW5kIG5hbWUuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAyKSB7XG4gICAgICB3aGlsZSAoKytpIDwgbikgaWYgKCh0ID0gKHR5cGVuYW1lID0gVFtpXSkudHlwZSkgJiYgKHQgPSBnZXQoX1t0XSwgdHlwZW5hbWUubmFtZSkpKSByZXR1cm4gdDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJZiBhIHR5cGUgd2FzIHNwZWNpZmllZCwgc2V0IHRoZSBjYWxsYmFjayBmb3IgdGhlIGdpdmVuIHR5cGUgYW5kIG5hbWUuXG4gICAgLy8gT3RoZXJ3aXNlLCBpZiBhIG51bGwgY2FsbGJhY2sgd2FzIHNwZWNpZmllZCwgcmVtb3ZlIGNhbGxiYWNrcyBvZiB0aGUgZ2l2ZW4gbmFtZS5cbiAgICBpZiAoY2FsbGJhY2sgIT0gbnVsbCAmJiB0eXBlb2YgY2FsbGJhY2sgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBjYWxsYmFjazogXCIgKyBjYWxsYmFjayk7XG4gICAgd2hpbGUgKCsraSA8IG4pIHtcbiAgICAgIGlmICh0ID0gKHR5cGVuYW1lID0gVFtpXSkudHlwZSkgX1t0XSA9IHNldChfW3RdLCB0eXBlbmFtZS5uYW1lLCBjYWxsYmFjayk7XG4gICAgICBlbHNlIGlmIChjYWxsYmFjayA9PSBudWxsKSBmb3IgKHQgaW4gXykgX1t0XSA9IHNldChfW3RdLCB0eXBlbmFtZS5uYW1lLCBudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfSxcbiAgY29weTogZnVuY3Rpb24oKSB7XG4gICAgdmFyIGNvcHkgPSB7fSwgXyA9IHRoaXMuXztcbiAgICBmb3IgKHZhciB0IGluIF8pIGNvcHlbdF0gPSBfW3RdLnNsaWNlKCk7XG4gICAgcmV0dXJuIG5ldyBEaXNwYXRjaChjb3B5KTtcbiAgfSxcbiAgY2FsbDogZnVuY3Rpb24odHlwZSwgdGhhdCkge1xuICAgIGlmICgobiA9IGFyZ3VtZW50cy5sZW5ndGggLSAyKSA+IDApIGZvciAodmFyIGFyZ3MgPSBuZXcgQXJyYXkobiksIGkgPSAwLCBuLCB0OyBpIDwgbjsgKytpKSBhcmdzW2ldID0gYXJndW1lbnRzW2kgKyAyXTtcbiAgICBpZiAoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0eXBlKSkgdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biB0eXBlOiBcIiArIHR5cGUpO1xuICAgIGZvciAodCA9IHRoaXMuX1t0eXBlXSwgaSA9IDAsIG4gPSB0Lmxlbmd0aDsgaSA8IG47ICsraSkgdFtpXS52YWx1ZS5hcHBseSh0aGF0LCBhcmdzKTtcbiAgfSxcbiAgYXBwbHk6IGZ1bmN0aW9uKHR5cGUsIHRoYXQsIGFyZ3MpIHtcbiAgICBpZiAoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0eXBlKSkgdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biB0eXBlOiBcIiArIHR5cGUpO1xuICAgIGZvciAodmFyIHQgPSB0aGlzLl9bdHlwZV0sIGkgPSAwLCBuID0gdC5sZW5ndGg7IGkgPCBuOyArK2kpIHRbaV0udmFsdWUuYXBwbHkodGhhdCwgYXJncyk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIGdldCh0eXBlLCBuYW1lKSB7XG4gIGZvciAodmFyIGkgPSAwLCBuID0gdHlwZS5sZW5ndGgsIGM7IGkgPCBuOyArK2kpIHtcbiAgICBpZiAoKGMgPSB0eXBlW2ldKS5uYW1lID09PSBuYW1lKSB7XG4gICAgICByZXR1cm4gYy52YWx1ZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0KHR5cGUsIG5hbWUsIGNhbGxiYWNrKSB7XG4gIGZvciAodmFyIGkgPSAwLCBuID0gdHlwZS5sZW5ndGg7IGkgPCBuOyArK2kpIHtcbiAgICBpZiAodHlwZVtpXS5uYW1lID09PSBuYW1lKSB7XG4gICAgICB0eXBlW2ldID0gbm9vcCwgdHlwZSA9IHR5cGUuc2xpY2UoMCwgaSkuY29uY2F0KHR5cGUuc2xpY2UoaSArIDEpKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBpZiAoY2FsbGJhY2sgIT0gbnVsbCkgdHlwZS5wdXNoKHtuYW1lOiBuYW1lLCB2YWx1ZTogY2FsbGJhY2t9KTtcbiAgcmV0dXJuIHR5cGU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGRpc3BhdGNoO1xuIiwgImV4cG9ydCB2YXIgeGh0bWwgPSBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBzdmc6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcbiAgeGh0bWw6IHhodG1sLFxuICB4bGluazogXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXG4gIHhtbDogXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIixcbiAgeG1sbnM6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy9cIlxufTtcbiIsICJpbXBvcnQgbmFtZXNwYWNlcyBmcm9tIFwiLi9uYW1lc3BhY2VzLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5hbWUpIHtcbiAgdmFyIHByZWZpeCA9IG5hbWUgKz0gXCJcIiwgaSA9IHByZWZpeC5pbmRleE9mKFwiOlwiKTtcbiAgaWYgKGkgPj0gMCAmJiAocHJlZml4ID0gbmFtZS5zbGljZSgwLCBpKSkgIT09IFwieG1sbnNcIikgbmFtZSA9IG5hbWUuc2xpY2UoaSArIDEpO1xuICByZXR1cm4gbmFtZXNwYWNlcy5oYXNPd25Qcm9wZXJ0eShwcmVmaXgpID8ge3NwYWNlOiBuYW1lc3BhY2VzW3ByZWZpeF0sIGxvY2FsOiBuYW1lfSA6IG5hbWU7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG59XG4iLCAiaW1wb3J0IG5hbWVzcGFjZSBmcm9tIFwiLi9uYW1lc3BhY2UuanNcIjtcbmltcG9ydCB7eGh0bWx9IGZyb20gXCIuL25hbWVzcGFjZXMuanNcIjtcblxuZnVuY3Rpb24gY3JlYXRvckluaGVyaXQobmFtZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGRvY3VtZW50ID0gdGhpcy5vd25lckRvY3VtZW50LFxuICAgICAgICB1cmkgPSB0aGlzLm5hbWVzcGFjZVVSSTtcbiAgICByZXR1cm4gdXJpID09PSB4aHRtbCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJID09PSB4aHRtbFxuICAgICAgICA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmFtZSlcbiAgICAgICAgOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlModXJpLCBuYW1lKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRvckZpeGVkKGZ1bGxuYW1lKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhmdWxsbmFtZS5zcGFjZSwgZnVsbG5hbWUubG9jYWwpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihuYW1lKSB7XG4gIHZhciBmdWxsbmFtZSA9IG5hbWVzcGFjZShuYW1lKTtcbiAgcmV0dXJuIChmdWxsbmFtZS5sb2NhbFxuICAgICAgPyBjcmVhdG9yRml4ZWRcbiAgICAgIDogY3JlYXRvckluaGVyaXQpKGZ1bGxuYW1lKTtcbn1cbiIsICJmdW5jdGlvbiBub25lKCkge31cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oc2VsZWN0b3IpIHtcbiAgcmV0dXJuIHNlbGVjdG9yID09IG51bGwgPyBub25lIDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7XG4gIH07XG59XG4iLCAiaW1wb3J0IHtTZWxlY3Rpb259IGZyb20gXCIuL2luZGV4LmpzXCI7XG5pbXBvcnQgc2VsZWN0b3IgZnJvbSBcIi4uL3NlbGVjdG9yLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHNlbGVjdCkge1xuICBpZiAodHlwZW9mIHNlbGVjdCAhPT0gXCJmdW5jdGlvblwiKSBzZWxlY3QgPSBzZWxlY3RvcihzZWxlY3QpO1xuXG4gIGZvciAodmFyIGdyb3VwcyA9IHRoaXMuX2dyb3VwcywgbSA9IGdyb3Vwcy5sZW5ndGgsIHN1Ymdyb3VwcyA9IG5ldyBBcnJheShtKSwgaiA9IDA7IGogPCBtOyArK2opIHtcbiAgICBmb3IgKHZhciBncm91cCA9IGdyb3Vwc1tqXSwgbiA9IGdyb3VwLmxlbmd0aCwgc3ViZ3JvdXAgPSBzdWJncm91cHNbal0gPSBuZXcgQXJyYXkobiksIG5vZGUsIHN1Ym5vZGUsIGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAoKG5vZGUgPSBncm91cFtpXSkgJiYgKHN1Ym5vZGUgPSBzZWxlY3QuY2FsbChub2RlLCBub2RlLl9fZGF0YV9fLCBpLCBncm91cCkpKSB7XG4gICAgICAgIGlmIChcIl9fZGF0YV9fXCIgaW4gbm9kZSkgc3Vibm9kZS5fX2RhdGFfXyA9IG5vZGUuX19kYXRhX187XG4gICAgICAgIHN1Ymdyb3VwW2ldID0gc3Vibm9kZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IFNlbGVjdGlvbihzdWJncm91cHMsIHRoaXMuX3BhcmVudHMpO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHgpIHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSBcIm9iamVjdFwiICYmIFwibGVuZ3RoXCIgaW4geFxuICAgID8geCAvLyBBcnJheSwgVHlwZWRBcnJheSwgTm9kZUxpc3QsIGFycmF5LWxpa2VcbiAgICA6IEFycmF5LmZyb20oeCk7IC8vIE1hcCwgU2V0LCBpdGVyYWJsZSwgc3RyaW5nLCBvciBhbnl0aGluZyBlbHNlXG59XG4iLCAiZnVuY3Rpb24gZW1wdHkoKSB7XG4gIHJldHVybiBbXTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oc2VsZWN0b3IpIHtcbiAgcmV0dXJuIHNlbGVjdG9yID09IG51bGwgPyBlbXB0eSA6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xuICB9O1xufVxuIiwgImltcG9ydCB7U2VsZWN0aW9ufSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuaW1wb3J0IGFycmF5IGZyb20gXCIuLi9hcnJheS5qc1wiO1xuaW1wb3J0IHNlbGVjdG9yQWxsIGZyb20gXCIuLi9zZWxlY3RvckFsbC5qc1wiO1xuXG5mdW5jdGlvbiBhcnJheUFsbChzZWxlY3QpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBncm91cCA9IHNlbGVjdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIHJldHVybiBncm91cCA9PSBudWxsID8gW10gOiBhcnJheShncm91cCk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHNlbGVjdCkge1xuICBpZiAodHlwZW9mIHNlbGVjdCA9PT0gXCJmdW5jdGlvblwiKSBzZWxlY3QgPSBhcnJheUFsbChzZWxlY3QpO1xuICBlbHNlIHNlbGVjdCA9IHNlbGVjdG9yQWxsKHNlbGVjdCk7XG5cbiAgZm9yICh2YXIgZ3JvdXBzID0gdGhpcy5fZ3JvdXBzLCBtID0gZ3JvdXBzLmxlbmd0aCwgc3ViZ3JvdXBzID0gW10sIHBhcmVudHMgPSBbXSwgaiA9IDA7IGogPCBtOyArK2opIHtcbiAgICBmb3IgKHZhciBncm91cCA9IGdyb3Vwc1tqXSwgbiA9IGdyb3VwLmxlbmd0aCwgbm9kZSwgaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICAgIGlmIChub2RlID0gZ3JvdXBbaV0pIHtcbiAgICAgICAgc3ViZ3JvdXBzLnB1c2goc2VsZWN0LmNhbGwobm9kZSwgbm9kZS5fX2RhdGFfXywgaSwgZ3JvdXApKTtcbiAgICAgICAgcGFyZW50cy5wdXNoKG5vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXcgU2VsZWN0aW9uKHN1Ymdyb3VwcywgcGFyZW50cyk7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oc2VsZWN0b3IpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLm1hdGNoZXMoc2VsZWN0b3IpO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hpbGRNYXRjaGVyKHNlbGVjdG9yKSB7XG4gIHJldHVybiBmdW5jdGlvbihub2RlKSB7XG4gICAgcmV0dXJuIG5vZGUubWF0Y2hlcyhzZWxlY3Rvcik7XG4gIH07XG59XG5cbiIsICJpbXBvcnQge2NoaWxkTWF0Y2hlcn0gZnJvbSBcIi4uL21hdGNoZXIuanNcIjtcblxudmFyIGZpbmQgPSBBcnJheS5wcm90b3R5cGUuZmluZDtcblxuZnVuY3Rpb24gY2hpbGRGaW5kKG1hdGNoKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZmluZC5jYWxsKHRoaXMuY2hpbGRyZW4sIG1hdGNoKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gY2hpbGRGaXJzdCgpIHtcbiAgcmV0dXJuIHRoaXMuZmlyc3RFbGVtZW50Q2hpbGQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG1hdGNoKSB7XG4gIHJldHVybiB0aGlzLnNlbGVjdChtYXRjaCA9PSBudWxsID8gY2hpbGRGaXJzdFxuICAgICAgOiBjaGlsZEZpbmQodHlwZW9mIG1hdGNoID09PSBcImZ1bmN0aW9uXCIgPyBtYXRjaCA6IGNoaWxkTWF0Y2hlcihtYXRjaCkpKTtcbn1cbiIsICJpbXBvcnQge2NoaWxkTWF0Y2hlcn0gZnJvbSBcIi4uL21hdGNoZXIuanNcIjtcblxudmFyIGZpbHRlciA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXI7XG5cbmZ1bmN0aW9uIGNoaWxkcmVuKCkge1xuICByZXR1cm4gdGhpcy5jaGlsZHJlbjtcbn1cblxuZnVuY3Rpb24gY2hpbGRyZW5GaWx0ZXIobWF0Y2gpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBmaWx0ZXIuY2FsbCh0aGlzLmNoaWxkcmVuLCBtYXRjaCk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG1hdGNoKSB7XG4gIHJldHVybiB0aGlzLnNlbGVjdEFsbChtYXRjaCA9PSBudWxsID8gY2hpbGRyZW5cbiAgICAgIDogY2hpbGRyZW5GaWx0ZXIodHlwZW9mIG1hdGNoID09PSBcImZ1bmN0aW9uXCIgPyBtYXRjaCA6IGNoaWxkTWF0Y2hlcihtYXRjaCkpKTtcbn1cbiIsICJpbXBvcnQge1NlbGVjdGlvbn0gZnJvbSBcIi4vaW5kZXguanNcIjtcbmltcG9ydCBtYXRjaGVyIGZyb20gXCIuLi9tYXRjaGVyLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG1hdGNoKSB7XG4gIGlmICh0eXBlb2YgbWF0Y2ggIT09IFwiZnVuY3Rpb25cIikgbWF0Y2ggPSBtYXRjaGVyKG1hdGNoKTtcblxuICBmb3IgKHZhciBncm91cHMgPSB0aGlzLl9ncm91cHMsIG0gPSBncm91cHMubGVuZ3RoLCBzdWJncm91cHMgPSBuZXcgQXJyYXkobSksIGogPSAwOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAgPSBncm91cHNbal0sIG4gPSBncm91cC5sZW5ndGgsIHN1Ymdyb3VwID0gc3ViZ3JvdXBzW2pdID0gW10sIG5vZGUsIGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAoKG5vZGUgPSBncm91cFtpXSkgJiYgbWF0Y2guY2FsbChub2RlLCBub2RlLl9fZGF0YV9fLCBpLCBncm91cCkpIHtcbiAgICAgICAgc3ViZ3JvdXAucHVzaChub2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IFNlbGVjdGlvbihzdWJncm91cHMsIHRoaXMuX3BhcmVudHMpO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHVwZGF0ZSkge1xuICByZXR1cm4gbmV3IEFycmF5KHVwZGF0ZS5sZW5ndGgpO1xufVxuIiwgImltcG9ydCBzcGFyc2UgZnJvbSBcIi4vc3BhcnNlLmpzXCI7XG5pbXBvcnQge1NlbGVjdGlvbn0gZnJvbSBcIi4vaW5kZXguanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHJldHVybiBuZXcgU2VsZWN0aW9uKHRoaXMuX2VudGVyIHx8IHRoaXMuX2dyb3Vwcy5tYXAoc3BhcnNlKSwgdGhpcy5fcGFyZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBFbnRlck5vZGUocGFyZW50LCBkYXR1bSkge1xuICB0aGlzLm93bmVyRG9jdW1lbnQgPSBwYXJlbnQub3duZXJEb2N1bWVudDtcbiAgdGhpcy5uYW1lc3BhY2VVUkkgPSBwYXJlbnQubmFtZXNwYWNlVVJJO1xuICB0aGlzLl9uZXh0ID0gbnVsbDtcbiAgdGhpcy5fcGFyZW50ID0gcGFyZW50O1xuICB0aGlzLl9fZGF0YV9fID0gZGF0dW07XG59XG5cbkVudGVyTm9kZS5wcm90b3R5cGUgPSB7XG4gIGNvbnN0cnVjdG9yOiBFbnRlck5vZGUsXG4gIGFwcGVuZENoaWxkOiBmdW5jdGlvbihjaGlsZCkgeyByZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZShjaGlsZCwgdGhpcy5fbmV4dCk7IH0sXG4gIGluc2VydEJlZm9yZTogZnVuY3Rpb24oY2hpbGQsIG5leHQpIHsgcmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUoY2hpbGQsIG5leHQpOyB9LFxuICBxdWVyeVNlbGVjdG9yOiBmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpOyB9LFxuICBxdWVyeVNlbGVjdG9yQWxsOiBmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpOyB9XG59O1xuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB4O1xuICB9O1xufVxuIiwgImltcG9ydCB7U2VsZWN0aW9ufSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuaW1wb3J0IHtFbnRlck5vZGV9IGZyb20gXCIuL2VudGVyLmpzXCI7XG5pbXBvcnQgYXJyYXkgZnJvbSBcIi4uL2FycmF5LmpzXCI7XG5pbXBvcnQgY29uc3RhbnQgZnJvbSBcIi4uL2NvbnN0YW50LmpzXCI7XG5cbmZ1bmN0aW9uIGJpbmRJbmRleChwYXJlbnQsIGdyb3VwLCBlbnRlciwgdXBkYXRlLCBleGl0LCBkYXRhKSB7XG4gIHZhciBpID0gMCxcbiAgICAgIG5vZGUsXG4gICAgICBncm91cExlbmd0aCA9IGdyb3VwLmxlbmd0aCxcbiAgICAgIGRhdGFMZW5ndGggPSBkYXRhLmxlbmd0aDtcblxuICAvLyBQdXQgYW55IG5vbi1udWxsIG5vZGVzIHRoYXQgZml0IGludG8gdXBkYXRlLlxuICAvLyBQdXQgYW55IG51bGwgbm9kZXMgaW50byBlbnRlci5cbiAgLy8gUHV0IGFueSByZW1haW5pbmcgZGF0YSBpbnRvIGVudGVyLlxuICBmb3IgKDsgaSA8IGRhdGFMZW5ndGg7ICsraSkge1xuICAgIGlmIChub2RlID0gZ3JvdXBbaV0pIHtcbiAgICAgIG5vZGUuX19kYXRhX18gPSBkYXRhW2ldO1xuICAgICAgdXBkYXRlW2ldID0gbm9kZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW50ZXJbaV0gPSBuZXcgRW50ZXJOb2RlKHBhcmVudCwgZGF0YVtpXSk7XG4gICAgfVxuICB9XG5cbiAgLy8gUHV0IGFueSBub24tbnVsbCBub2RlcyB0aGF0IGRvblx1MjAxOXQgZml0IGludG8gZXhpdC5cbiAgZm9yICg7IGkgPCBncm91cExlbmd0aDsgKytpKSB7XG4gICAgaWYgKG5vZGUgPSBncm91cFtpXSkge1xuICAgICAgZXhpdFtpXSA9IG5vZGU7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGJpbmRLZXkocGFyZW50LCBncm91cCwgZW50ZXIsIHVwZGF0ZSwgZXhpdCwgZGF0YSwga2V5KSB7XG4gIHZhciBpLFxuICAgICAgbm9kZSxcbiAgICAgIG5vZGVCeUtleVZhbHVlID0gbmV3IE1hcCxcbiAgICAgIGdyb3VwTGVuZ3RoID0gZ3JvdXAubGVuZ3RoLFxuICAgICAgZGF0YUxlbmd0aCA9IGRhdGEubGVuZ3RoLFxuICAgICAga2V5VmFsdWVzID0gbmV3IEFycmF5KGdyb3VwTGVuZ3RoKSxcbiAgICAgIGtleVZhbHVlO1xuXG4gIC8vIENvbXB1dGUgdGhlIGtleSBmb3IgZWFjaCBub2RlLlxuICAvLyBJZiBtdWx0aXBsZSBub2RlcyBoYXZlIHRoZSBzYW1lIGtleSwgdGhlIGR1cGxpY2F0ZXMgYXJlIGFkZGVkIHRvIGV4aXQuXG4gIGZvciAoaSA9IDA7IGkgPCBncm91cExlbmd0aDsgKytpKSB7XG4gICAgaWYgKG5vZGUgPSBncm91cFtpXSkge1xuICAgICAga2V5VmFsdWVzW2ldID0ga2V5VmFsdWUgPSBrZXkuY2FsbChub2RlLCBub2RlLl9fZGF0YV9fLCBpLCBncm91cCkgKyBcIlwiO1xuICAgICAgaWYgKG5vZGVCeUtleVZhbHVlLmhhcyhrZXlWYWx1ZSkpIHtcbiAgICAgICAgZXhpdFtpXSA9IG5vZGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlQnlLZXlWYWx1ZS5zZXQoa2V5VmFsdWUsIG5vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbXB1dGUgdGhlIGtleSBmb3IgZWFjaCBkYXR1bS5cbiAgLy8gSWYgdGhlcmUgYSBub2RlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGtleSwgam9pbiBhbmQgYWRkIGl0IHRvIHVwZGF0ZS5cbiAgLy8gSWYgdGhlcmUgaXMgbm90IChvciB0aGUga2V5IGlzIGEgZHVwbGljYXRlKSwgYWRkIGl0IHRvIGVudGVyLlxuICBmb3IgKGkgPSAwOyBpIDwgZGF0YUxlbmd0aDsgKytpKSB7XG4gICAga2V5VmFsdWUgPSBrZXkuY2FsbChwYXJlbnQsIGRhdGFbaV0sIGksIGRhdGEpICsgXCJcIjtcbiAgICBpZiAobm9kZSA9IG5vZGVCeUtleVZhbHVlLmdldChrZXlWYWx1ZSkpIHtcbiAgICAgIHVwZGF0ZVtpXSA9IG5vZGU7XG4gICAgICBub2RlLl9fZGF0YV9fID0gZGF0YVtpXTtcbiAgICAgIG5vZGVCeUtleVZhbHVlLmRlbGV0ZShrZXlWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVudGVyW2ldID0gbmV3IEVudGVyTm9kZShwYXJlbnQsIGRhdGFbaV0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFkZCBhbnkgcmVtYWluaW5nIG5vZGVzIHRoYXQgd2VyZSBub3QgYm91bmQgdG8gZGF0YSB0byBleGl0LlxuICBmb3IgKGkgPSAwOyBpIDwgZ3JvdXBMZW5ndGg7ICsraSkge1xuICAgIGlmICgobm9kZSA9IGdyb3VwW2ldKSAmJiAobm9kZUJ5S2V5VmFsdWUuZ2V0KGtleVZhbHVlc1tpXSkgPT09IG5vZGUpKSB7XG4gICAgICBleGl0W2ldID0gbm9kZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZGF0dW0obm9kZSkge1xuICByZXR1cm4gbm9kZS5fX2RhdGFfXztcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHJldHVybiBBcnJheS5mcm9tKHRoaXMsIGRhdHVtKTtcblxuICB2YXIgYmluZCA9IGtleSA/IGJpbmRLZXkgOiBiaW5kSW5kZXgsXG4gICAgICBwYXJlbnRzID0gdGhpcy5fcGFyZW50cyxcbiAgICAgIGdyb3VwcyA9IHRoaXMuX2dyb3VwcztcblxuICBpZiAodHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHZhbHVlID0gY29uc3RhbnQodmFsdWUpO1xuXG4gIGZvciAodmFyIG0gPSBncm91cHMubGVuZ3RoLCB1cGRhdGUgPSBuZXcgQXJyYXkobSksIGVudGVyID0gbmV3IEFycmF5KG0pLCBleGl0ID0gbmV3IEFycmF5KG0pLCBqID0gMDsgaiA8IG07ICsraikge1xuICAgIHZhciBwYXJlbnQgPSBwYXJlbnRzW2pdLFxuICAgICAgICBncm91cCA9IGdyb3Vwc1tqXSxcbiAgICAgICAgZ3JvdXBMZW5ndGggPSBncm91cC5sZW5ndGgsXG4gICAgICAgIGRhdGEgPSBhcnJheSh2YWx1ZS5jYWxsKHBhcmVudCwgcGFyZW50ICYmIHBhcmVudC5fX2RhdGFfXywgaiwgcGFyZW50cykpLFxuICAgICAgICBkYXRhTGVuZ3RoID0gZGF0YS5sZW5ndGgsXG4gICAgICAgIGVudGVyR3JvdXAgPSBlbnRlcltqXSA9IG5ldyBBcnJheShkYXRhTGVuZ3RoKSxcbiAgICAgICAgdXBkYXRlR3JvdXAgPSB1cGRhdGVbal0gPSBuZXcgQXJyYXkoZGF0YUxlbmd0aCksXG4gICAgICAgIGV4aXRHcm91cCA9IGV4aXRbal0gPSBuZXcgQXJyYXkoZ3JvdXBMZW5ndGgpO1xuXG4gICAgYmluZChwYXJlbnQsIGdyb3VwLCBlbnRlckdyb3VwLCB1cGRhdGVHcm91cCwgZXhpdEdyb3VwLCBkYXRhLCBrZXkpO1xuXG4gICAgLy8gTm93IGNvbm5lY3QgdGhlIGVudGVyIG5vZGVzIHRvIHRoZWlyIGZvbGxvd2luZyB1cGRhdGUgbm9kZSwgc3VjaCB0aGF0XG4gICAgLy8gYXBwZW5kQ2hpbGQgY2FuIGluc2VydCB0aGUgbWF0ZXJpYWxpemVkIGVudGVyIG5vZGUgYmVmb3JlIHRoaXMgbm9kZSxcbiAgICAvLyByYXRoZXIgdGhhbiBhdCB0aGUgZW5kIG9mIHRoZSBwYXJlbnQgbm9kZS5cbiAgICBmb3IgKHZhciBpMCA9IDAsIGkxID0gMCwgcHJldmlvdXMsIG5leHQ7IGkwIDwgZGF0YUxlbmd0aDsgKytpMCkge1xuICAgICAgaWYgKHByZXZpb3VzID0gZW50ZXJHcm91cFtpMF0pIHtcbiAgICAgICAgaWYgKGkwID49IGkxKSBpMSA9IGkwICsgMTtcbiAgICAgICAgd2hpbGUgKCEobmV4dCA9IHVwZGF0ZUdyb3VwW2kxXSkgJiYgKytpMSA8IGRhdGFMZW5ndGgpO1xuICAgICAgICBwcmV2aW91cy5fbmV4dCA9IG5leHQgfHwgbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1cGRhdGUgPSBuZXcgU2VsZWN0aW9uKHVwZGF0ZSwgcGFyZW50cyk7XG4gIHVwZGF0ZS5fZW50ZXIgPSBlbnRlcjtcbiAgdXBkYXRlLl9leGl0ID0gZXhpdDtcbiAgcmV0dXJuIHVwZGF0ZTtcbn1cbiIsICJpbXBvcnQgc3BhcnNlIGZyb20gXCIuL3NwYXJzZS5qc1wiO1xuaW1wb3J0IHtTZWxlY3Rpb259IGZyb20gXCIuL2luZGV4LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gbmV3IFNlbGVjdGlvbih0aGlzLl9leGl0IHx8IHRoaXMuX2dyb3Vwcy5tYXAoc3BhcnNlKSwgdGhpcy5fcGFyZW50cyk7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24ob25lbnRlciwgb251cGRhdGUsIG9uZXhpdCkge1xuICB2YXIgZW50ZXIgPSB0aGlzLmVudGVyKCksIHVwZGF0ZSA9IHRoaXMsIGV4aXQgPSB0aGlzLmV4aXQoKTtcbiAgZW50ZXIgPSB0eXBlb2Ygb25lbnRlciA9PT0gXCJmdW5jdGlvblwiID8gb25lbnRlcihlbnRlcikgOiBlbnRlci5hcHBlbmQob25lbnRlciArIFwiXCIpO1xuICBpZiAob251cGRhdGUgIT0gbnVsbCkgdXBkYXRlID0gb251cGRhdGUodXBkYXRlKTtcbiAgaWYgKG9uZXhpdCA9PSBudWxsKSBleGl0LnJlbW92ZSgpOyBlbHNlIG9uZXhpdChleGl0KTtcbiAgcmV0dXJuIGVudGVyICYmIHVwZGF0ZSA/IGVudGVyLm1lcmdlKHVwZGF0ZSkub3JkZXIoKSA6IHVwZGF0ZTtcbn1cbiIsICJpbXBvcnQge1NlbGVjdGlvbn0gZnJvbSBcIi4vaW5kZXguanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oc2VsZWN0aW9uKSB7XG4gIGlmICghKHNlbGVjdGlvbiBpbnN0YW5jZW9mIFNlbGVjdGlvbikpIHRocm93IG5ldyBFcnJvcihcImludmFsaWQgbWVyZ2VcIik7XG5cbiAgZm9yICh2YXIgZ3JvdXBzMCA9IHRoaXMuX2dyb3VwcywgZ3JvdXBzMSA9IHNlbGVjdGlvbi5fZ3JvdXBzLCBtMCA9IGdyb3VwczAubGVuZ3RoLCBtMSA9IGdyb3VwczEubGVuZ3RoLCBtID0gTWF0aC5taW4obTAsIG0xKSwgbWVyZ2VzID0gbmV3IEFycmF5KG0wKSwgaiA9IDA7IGogPCBtOyArK2opIHtcbiAgICBmb3IgKHZhciBncm91cDAgPSBncm91cHMwW2pdLCBncm91cDEgPSBncm91cHMxW2pdLCBuID0gZ3JvdXAwLmxlbmd0aCwgbWVyZ2UgPSBtZXJnZXNbal0gPSBuZXcgQXJyYXkobiksIG5vZGUsIGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAobm9kZSA9IGdyb3VwMFtpXSB8fCBncm91cDFbaV0pIHtcbiAgICAgICAgbWVyZ2VbaV0gPSBub2RlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZvciAoOyBqIDwgbTA7ICsraikge1xuICAgIG1lcmdlc1tqXSA9IGdyb3VwczBbal07XG4gIH1cblxuICByZXR1cm4gbmV3IFNlbGVjdGlvbihtZXJnZXMsIHRoaXMuX3BhcmVudHMpO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuXG4gIGZvciAodmFyIGdyb3VwcyA9IHRoaXMuX2dyb3VwcywgaiA9IC0xLCBtID0gZ3JvdXBzLmxlbmd0aDsgKytqIDwgbTspIHtcbiAgICBmb3IgKHZhciBncm91cCA9IGdyb3Vwc1tqXSwgaSA9IGdyb3VwLmxlbmd0aCAtIDEsIG5leHQgPSBncm91cFtpXSwgbm9kZTsgLS1pID49IDA7KSB7XG4gICAgICBpZiAobm9kZSA9IGdyb3VwW2ldKSB7XG4gICAgICAgIGlmIChuZXh0ICYmIG5vZGUuY29tcGFyZURvY3VtZW50UG9zaXRpb24obmV4dCkgXiA0KSBuZXh0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG5vZGUsIG5leHQpO1xuICAgICAgICBuZXh0ID0gbm9kZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn1cbiIsICJpbXBvcnQge1NlbGVjdGlvbn0gZnJvbSBcIi4vaW5kZXguanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oY29tcGFyZSkge1xuICBpZiAoIWNvbXBhcmUpIGNvbXBhcmUgPSBhc2NlbmRpbmc7XG5cbiAgZnVuY3Rpb24gY29tcGFyZU5vZGUoYSwgYikge1xuICAgIHJldHVybiBhICYmIGIgPyBjb21wYXJlKGEuX19kYXRhX18sIGIuX19kYXRhX18pIDogIWEgLSAhYjtcbiAgfVxuXG4gIGZvciAodmFyIGdyb3VwcyA9IHRoaXMuX2dyb3VwcywgbSA9IGdyb3Vwcy5sZW5ndGgsIHNvcnRncm91cHMgPSBuZXcgQXJyYXkobSksIGogPSAwOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAgPSBncm91cHNbal0sIG4gPSBncm91cC5sZW5ndGgsIHNvcnRncm91cCA9IHNvcnRncm91cHNbal0gPSBuZXcgQXJyYXkobiksIG5vZGUsIGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAobm9kZSA9IGdyb3VwW2ldKSB7XG4gICAgICAgIHNvcnRncm91cFtpXSA9IG5vZGU7XG4gICAgICB9XG4gICAgfVxuICAgIHNvcnRncm91cC5zb3J0KGNvbXBhcmVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgU2VsZWN0aW9uKHNvcnRncm91cHMsIHRoaXMuX3BhcmVudHMpLm9yZGVyKCk7XG59XG5cbmZ1bmN0aW9uIGFzY2VuZGluZyhhLCBiKSB7XG4gIHJldHVybiBhIDwgYiA/IC0xIDogYSA+IGIgPyAxIDogYSA+PSBiID8gMCA6IE5hTjtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzWzBdO1xuICBhcmd1bWVudHNbMF0gPSB0aGlzO1xuICBjYWxsYmFjay5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICByZXR1cm4gdGhpcztcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIEFycmF5LmZyb20odGhpcyk7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG5cbiAgZm9yICh2YXIgZ3JvdXBzID0gdGhpcy5fZ3JvdXBzLCBqID0gMCwgbSA9IGdyb3Vwcy5sZW5ndGg7IGogPCBtOyArK2opIHtcbiAgICBmb3IgKHZhciBncm91cCA9IGdyb3Vwc1tqXSwgaSA9IDAsIG4gPSBncm91cC5sZW5ndGg7IGkgPCBuOyArK2kpIHtcbiAgICAgIHZhciBub2RlID0gZ3JvdXBbaV07XG4gICAgICBpZiAobm9kZSkgcmV0dXJuIG5vZGU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIGxldCBzaXplID0gMDtcbiAgZm9yIChjb25zdCBub2RlIG9mIHRoaXMpICsrc2l6ZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICByZXR1cm4gc2l6ZTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuICF0aGlzLm5vZGUoKTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihjYWxsYmFjaykge1xuXG4gIGZvciAodmFyIGdyb3VwcyA9IHRoaXMuX2dyb3VwcywgaiA9IDAsIG0gPSBncm91cHMubGVuZ3RoOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAgPSBncm91cHNbal0sIGkgPSAwLCBuID0gZ3JvdXAubGVuZ3RoLCBub2RlOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAobm9kZSA9IGdyb3VwW2ldKSBjYWxsYmFjay5jYWxsKG5vZGUsIG5vZGUuX19kYXRhX18sIGksIGdyb3VwKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn1cbiIsICJpbXBvcnQgbmFtZXNwYWNlIGZyb20gXCIuLi9uYW1lc3BhY2UuanNcIjtcblxuZnVuY3Rpb24gYXR0clJlbW92ZShuYW1lKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gYXR0clJlbW92ZU5TKGZ1bGxuYW1lKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKGZ1bGxuYW1lLnNwYWNlLCBmdWxsbmFtZS5sb2NhbCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGF0dHJDb25zdGFudChuYW1lLCB2YWx1ZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRyQ29uc3RhbnROUyhmdWxsbmFtZSwgdmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlTlMoZnVsbG5hbWUuc3BhY2UsIGZ1bGxuYW1lLmxvY2FsLCB2YWx1ZSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGF0dHJGdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHYgPSB2YWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIGlmICh2ID09IG51bGwpIHRoaXMucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgIGVsc2UgdGhpcy5zZXRBdHRyaWJ1dGUobmFtZSwgdik7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGF0dHJGdW5jdGlvbk5TKGZ1bGxuYW1lLCB2YWx1ZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHYgPSB2YWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIGlmICh2ID09IG51bGwpIHRoaXMucmVtb3ZlQXR0cmlidXRlTlMoZnVsbG5hbWUuc3BhY2UsIGZ1bGxuYW1lLmxvY2FsKTtcbiAgICBlbHNlIHRoaXMuc2V0QXR0cmlidXRlTlMoZnVsbG5hbWUuc3BhY2UsIGZ1bGxuYW1lLmxvY2FsLCB2KTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgdmFyIGZ1bGxuYW1lID0gbmFtZXNwYWNlKG5hbWUpO1xuXG4gIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMikge1xuICAgIHZhciBub2RlID0gdGhpcy5ub2RlKCk7XG4gICAgcmV0dXJuIGZ1bGxuYW1lLmxvY2FsXG4gICAgICAgID8gbm9kZS5nZXRBdHRyaWJ1dGVOUyhmdWxsbmFtZS5zcGFjZSwgZnVsbG5hbWUubG9jYWwpXG4gICAgICAgIDogbm9kZS5nZXRBdHRyaWJ1dGUoZnVsbG5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuZWFjaCgodmFsdWUgPT0gbnVsbFxuICAgICAgPyAoZnVsbG5hbWUubG9jYWwgPyBhdHRyUmVtb3ZlTlMgOiBhdHRyUmVtb3ZlKSA6ICh0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgPyAoZnVsbG5hbWUubG9jYWwgPyBhdHRyRnVuY3Rpb25OUyA6IGF0dHJGdW5jdGlvbilcbiAgICAgIDogKGZ1bGxuYW1lLmxvY2FsID8gYXR0ckNvbnN0YW50TlMgOiBhdHRyQ29uc3RhbnQpKSkoZnVsbG5hbWUsIHZhbHVlKSk7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obm9kZSkge1xuICByZXR1cm4gKG5vZGUub3duZXJEb2N1bWVudCAmJiBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpIC8vIG5vZGUgaXMgYSBOb2RlXG4gICAgICB8fCAobm9kZS5kb2N1bWVudCAmJiBub2RlKSAvLyBub2RlIGlzIGEgV2luZG93XG4gICAgICB8fCBub2RlLmRlZmF1bHRWaWV3OyAvLyBub2RlIGlzIGEgRG9jdW1lbnRcbn1cbiIsICJpbXBvcnQgZGVmYXVsdFZpZXcgZnJvbSBcIi4uL3dpbmRvdy5qc1wiO1xuXG5mdW5jdGlvbiBzdHlsZVJlbW92ZShuYW1lKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KG5hbWUpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBzdHlsZUNvbnN0YW50KG5hbWUsIHZhbHVlLCBwcmlvcml0eSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eShuYW1lLCB2YWx1ZSwgcHJpb3JpdHkpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBzdHlsZUZ1bmN0aW9uKG5hbWUsIHZhbHVlLCBwcmlvcml0eSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHYgPSB2YWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIGlmICh2ID09IG51bGwpIHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkobmFtZSk7XG4gICAgZWxzZSB0aGlzLnN0eWxlLnNldFByb3BlcnR5KG5hbWUsIHYsIHByaW9yaXR5KTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obmFtZSwgdmFsdWUsIHByaW9yaXR5KSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID4gMVxuICAgICAgPyB0aGlzLmVhY2goKHZhbHVlID09IG51bGxcbiAgICAgICAgICAgID8gc3R5bGVSZW1vdmUgOiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgPyBzdHlsZUZ1bmN0aW9uXG4gICAgICAgICAgICA6IHN0eWxlQ29uc3RhbnQpKG5hbWUsIHZhbHVlLCBwcmlvcml0eSA9PSBudWxsID8gXCJcIiA6IHByaW9yaXR5KSlcbiAgICAgIDogc3R5bGVWYWx1ZSh0aGlzLm5vZGUoKSwgbmFtZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHlsZVZhbHVlKG5vZGUsIG5hbWUpIHtcbiAgcmV0dXJuIG5vZGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKVxuICAgICAgfHwgZGVmYXVsdFZpZXcobm9kZSkuZ2V0Q29tcHV0ZWRTdHlsZShub2RlLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKG5hbWUpO1xufVxuIiwgImZ1bmN0aW9uIHByb3BlcnR5UmVtb3ZlKG5hbWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIGRlbGV0ZSB0aGlzW25hbWVdO1xuICB9O1xufVxuXG5mdW5jdGlvbiBwcm9wZXJ0eUNvbnN0YW50KG5hbWUsIHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB0aGlzW25hbWVdID0gdmFsdWU7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHByb3BlcnR5RnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciB2ID0gdmFsdWUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICBpZiAodiA9PSBudWxsKSBkZWxldGUgdGhpc1tuYW1lXTtcbiAgICBlbHNlIHRoaXNbbmFtZV0gPSB2O1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA+IDFcbiAgICAgID8gdGhpcy5lYWNoKCh2YWx1ZSA9PSBudWxsXG4gICAgICAgICAgPyBwcm9wZXJ0eVJlbW92ZSA6IHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgPyBwcm9wZXJ0eUZ1bmN0aW9uXG4gICAgICAgICAgOiBwcm9wZXJ0eUNvbnN0YW50KShuYW1lLCB2YWx1ZSkpXG4gICAgICA6IHRoaXMubm9kZSgpW25hbWVdO1xufVxuIiwgImZ1bmN0aW9uIGNsYXNzQXJyYXkoc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpbmcudHJpbSgpLnNwbGl0KC9efFxccysvKTtcbn1cblxuZnVuY3Rpb24gY2xhc3NMaXN0KG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUuY2xhc3NMaXN0IHx8IG5ldyBDbGFzc0xpc3Qobm9kZSk7XG59XG5cbmZ1bmN0aW9uIENsYXNzTGlzdChub2RlKSB7XG4gIHRoaXMuX25vZGUgPSBub2RlO1xuICB0aGlzLl9uYW1lcyA9IGNsYXNzQXJyYXkobm9kZS5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKSB8fCBcIlwiKTtcbn1cblxuQ2xhc3NMaXN0LnByb3RvdHlwZSA9IHtcbiAgYWRkOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgdmFyIGkgPSB0aGlzLl9uYW1lcy5pbmRleE9mKG5hbWUpO1xuICAgIGlmIChpIDwgMCkge1xuICAgICAgdGhpcy5fbmFtZXMucHVzaChuYW1lKTtcbiAgICAgIHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgdGhpcy5fbmFtZXMuam9pbihcIiBcIikpO1xuICAgIH1cbiAgfSxcbiAgcmVtb3ZlOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgdmFyIGkgPSB0aGlzLl9uYW1lcy5pbmRleE9mKG5hbWUpO1xuICAgIGlmIChpID49IDApIHtcbiAgICAgIHRoaXMuX25hbWVzLnNwbGljZShpLCAxKTtcbiAgICAgIHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgdGhpcy5fbmFtZXMuam9pbihcIiBcIikpO1xuICAgIH1cbiAgfSxcbiAgY29udGFpbnM6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICByZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZihuYW1lKSA+PSAwO1xuICB9XG59O1xuXG5mdW5jdGlvbiBjbGFzc2VkQWRkKG5vZGUsIG5hbWVzKSB7XG4gIHZhciBsaXN0ID0gY2xhc3NMaXN0KG5vZGUpLCBpID0gLTEsIG4gPSBuYW1lcy5sZW5ndGg7XG4gIHdoaWxlICgrK2kgPCBuKSBsaXN0LmFkZChuYW1lc1tpXSk7XG59XG5cbmZ1bmN0aW9uIGNsYXNzZWRSZW1vdmUobm9kZSwgbmFtZXMpIHtcbiAgdmFyIGxpc3QgPSBjbGFzc0xpc3Qobm9kZSksIGkgPSAtMSwgbiA9IG5hbWVzLmxlbmd0aDtcbiAgd2hpbGUgKCsraSA8IG4pIGxpc3QucmVtb3ZlKG5hbWVzW2ldKTtcbn1cblxuZnVuY3Rpb24gY2xhc3NlZFRydWUobmFtZXMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIGNsYXNzZWRBZGQodGhpcywgbmFtZXMpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBjbGFzc2VkRmFsc2UobmFtZXMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIGNsYXNzZWRSZW1vdmUodGhpcywgbmFtZXMpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBjbGFzc2VkRnVuY3Rpb24obmFtZXMsIHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAodmFsdWUuYXBwbHkodGhpcywgYXJndW1lbnRzKSA/IGNsYXNzZWRBZGQgOiBjbGFzc2VkUmVtb3ZlKSh0aGlzLCBuYW1lcyk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7XG4gIHZhciBuYW1lcyA9IGNsYXNzQXJyYXkobmFtZSArIFwiXCIpO1xuXG4gIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMikge1xuICAgIHZhciBsaXN0ID0gY2xhc3NMaXN0KHRoaXMubm9kZSgpKSwgaSA9IC0xLCBuID0gbmFtZXMubGVuZ3RoO1xuICAgIHdoaWxlICgrK2kgPCBuKSBpZiAoIWxpc3QuY29udGFpbnMobmFtZXNbaV0pKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gdGhpcy5lYWNoKCh0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgPyBjbGFzc2VkRnVuY3Rpb24gOiB2YWx1ZVxuICAgICAgPyBjbGFzc2VkVHJ1ZVxuICAgICAgOiBjbGFzc2VkRmFsc2UpKG5hbWVzLCB2YWx1ZSkpO1xufVxuIiwgImZ1bmN0aW9uIHRleHRSZW1vdmUoKSB7XG4gIHRoaXMudGV4dENvbnRlbnQgPSBcIlwiO1xufVxuXG5mdW5jdGlvbiB0ZXh0Q29uc3RhbnQodmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHRoaXMudGV4dENvbnRlbnQgPSB2YWx1ZTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gdGV4dEZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgdiA9IHZhbHVlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgdGhpcy50ZXh0Q29udGVudCA9IHYgPT0gbnVsbCA/IFwiXCIgOiB2O1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aFxuICAgICAgPyB0aGlzLmVhY2godmFsdWUgPT0gbnVsbFxuICAgICAgICAgID8gdGV4dFJlbW92ZSA6ICh0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgID8gdGV4dEZ1bmN0aW9uXG4gICAgICAgICAgOiB0ZXh0Q29uc3RhbnQpKHZhbHVlKSlcbiAgICAgIDogdGhpcy5ub2RlKCkudGV4dENvbnRlbnQ7XG59XG4iLCAiZnVuY3Rpb24gaHRtbFJlbW92ZSgpIHtcbiAgdGhpcy5pbm5lckhUTUwgPSBcIlwiO1xufVxuXG5mdW5jdGlvbiBodG1sQ29uc3RhbnQodmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuaW5uZXJIVE1MID0gdmFsdWU7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGh0bWxGdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHYgPSB2YWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIHRoaXMuaW5uZXJIVE1MID0gdiA9PSBudWxsID8gXCJcIiA6IHY7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoXG4gICAgICA/IHRoaXMuZWFjaCh2YWx1ZSA9PSBudWxsXG4gICAgICAgICAgPyBodG1sUmVtb3ZlIDogKHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgPyBodG1sRnVuY3Rpb25cbiAgICAgICAgICA6IGh0bWxDb25zdGFudCkodmFsdWUpKVxuICAgICAgOiB0aGlzLm5vZGUoKS5pbm5lckhUTUw7XG59XG4iLCAiZnVuY3Rpb24gcmFpc2UoKSB7XG4gIGlmICh0aGlzLm5leHRTaWJsaW5nKSB0aGlzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy5lYWNoKHJhaXNlKTtcbn1cbiIsICJmdW5jdGlvbiBsb3dlcigpIHtcbiAgaWYgKHRoaXMucHJldmlvdXNTaWJsaW5nKSB0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsIHRoaXMucGFyZW50Tm9kZS5maXJzdENoaWxkKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLmVhY2gobG93ZXIpO1xufVxuIiwgImltcG9ydCBjcmVhdG9yIGZyb20gXCIuLi9jcmVhdG9yLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5hbWUpIHtcbiAgdmFyIGNyZWF0ZSA9IHR5cGVvZiBuYW1lID09PSBcImZ1bmN0aW9uXCIgPyBuYW1lIDogY3JlYXRvcihuYW1lKTtcbiAgcmV0dXJuIHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZENoaWxkKGNyZWF0ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IGNyZWF0b3IgZnJvbSBcIi4uL2NyZWF0b3IuanNcIjtcbmltcG9ydCBzZWxlY3RvciBmcm9tIFwiLi4vc2VsZWN0b3IuanNcIjtcblxuZnVuY3Rpb24gY29uc3RhbnROdWxsKCkge1xuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obmFtZSwgYmVmb3JlKSB7XG4gIHZhciBjcmVhdGUgPSB0eXBlb2YgbmFtZSA9PT0gXCJmdW5jdGlvblwiID8gbmFtZSA6IGNyZWF0b3IobmFtZSksXG4gICAgICBzZWxlY3QgPSBiZWZvcmUgPT0gbnVsbCA/IGNvbnN0YW50TnVsbCA6IHR5cGVvZiBiZWZvcmUgPT09IFwiZnVuY3Rpb25cIiA/IGJlZm9yZSA6IHNlbGVjdG9yKGJlZm9yZSk7XG4gIHJldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUoY3JlYXRlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyksIHNlbGVjdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IG51bGwpO1xuICB9KTtcbn1cbiIsICJmdW5jdGlvbiByZW1vdmUoKSB7XG4gIHZhciBwYXJlbnQgPSB0aGlzLnBhcmVudE5vZGU7XG4gIGlmIChwYXJlbnQpIHBhcmVudC5yZW1vdmVDaGlsZCh0aGlzKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHJldHVybiB0aGlzLmVhY2gocmVtb3ZlKTtcbn1cbiIsICJmdW5jdGlvbiBzZWxlY3Rpb25fY2xvbmVTaGFsbG93KCkge1xuICB2YXIgY2xvbmUgPSB0aGlzLmNsb25lTm9kZShmYWxzZSksIHBhcmVudCA9IHRoaXMucGFyZW50Tm9kZTtcbiAgcmV0dXJuIHBhcmVudCA/IHBhcmVudC5pbnNlcnRCZWZvcmUoY2xvbmUsIHRoaXMubmV4dFNpYmxpbmcpIDogY2xvbmU7XG59XG5cbmZ1bmN0aW9uIHNlbGVjdGlvbl9jbG9uZURlZXAoKSB7XG4gIHZhciBjbG9uZSA9IHRoaXMuY2xvbmVOb2RlKHRydWUpLCBwYXJlbnQgPSB0aGlzLnBhcmVudE5vZGU7XG4gIHJldHVybiBwYXJlbnQgPyBwYXJlbnQuaW5zZXJ0QmVmb3JlKGNsb25lLCB0aGlzLm5leHRTaWJsaW5nKSA6IGNsb25lO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihkZWVwKSB7XG4gIHJldHVybiB0aGlzLnNlbGVjdChkZWVwID8gc2VsZWN0aW9uX2Nsb25lRGVlcCA6IHNlbGVjdGlvbl9jbG9uZVNoYWxsb3cpO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoXG4gICAgICA/IHRoaXMucHJvcGVydHkoXCJfX2RhdGFfX1wiLCB2YWx1ZSlcbiAgICAgIDogdGhpcy5ub2RlKCkuX19kYXRhX187XG59XG4iLCAiZnVuY3Rpb24gY29udGV4dExpc3RlbmVyKGxpc3RlbmVyKSB7XG4gIHJldHVybiBmdW5jdGlvbihldmVudCkge1xuICAgIGxpc3RlbmVyLmNhbGwodGhpcywgZXZlbnQsIHRoaXMuX19kYXRhX18pO1xuICB9O1xufVxuXG5mdW5jdGlvbiBwYXJzZVR5cGVuYW1lcyh0eXBlbmFtZXMpIHtcbiAgcmV0dXJuIHR5cGVuYW1lcy50cmltKCkuc3BsaXQoL158XFxzKy8pLm1hcChmdW5jdGlvbih0KSB7XG4gICAgdmFyIG5hbWUgPSBcIlwiLCBpID0gdC5pbmRleE9mKFwiLlwiKTtcbiAgICBpZiAoaSA+PSAwKSBuYW1lID0gdC5zbGljZShpICsgMSksIHQgPSB0LnNsaWNlKDAsIGkpO1xuICAgIHJldHVybiB7dHlwZTogdCwgbmFtZTogbmFtZX07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBvblJlbW92ZSh0eXBlbmFtZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIG9uID0gdGhpcy5fX29uO1xuICAgIGlmICghb24pIHJldHVybjtcbiAgICBmb3IgKHZhciBqID0gMCwgaSA9IC0xLCBtID0gb24ubGVuZ3RoLCBvOyBqIDwgbTsgKytqKSB7XG4gICAgICBpZiAobyA9IG9uW2pdLCAoIXR5cGVuYW1lLnR5cGUgfHwgby50eXBlID09PSB0eXBlbmFtZS50eXBlKSAmJiBvLm5hbWUgPT09IHR5cGVuYW1lLm5hbWUpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKG8udHlwZSwgby5saXN0ZW5lciwgby5vcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9uWysraV0gPSBvO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoKytpKSBvbi5sZW5ndGggPSBpO1xuICAgIGVsc2UgZGVsZXRlIHRoaXMuX19vbjtcbiAgfTtcbn1cblxuZnVuY3Rpb24gb25BZGQodHlwZW5hbWUsIHZhbHVlLCBvcHRpb25zKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgb24gPSB0aGlzLl9fb24sIG8sIGxpc3RlbmVyID0gY29udGV4dExpc3RlbmVyKHZhbHVlKTtcbiAgICBpZiAob24pIGZvciAodmFyIGogPSAwLCBtID0gb24ubGVuZ3RoOyBqIDwgbTsgKytqKSB7XG4gICAgICBpZiAoKG8gPSBvbltqXSkudHlwZSA9PT0gdHlwZW5hbWUudHlwZSAmJiBvLm5hbWUgPT09IHR5cGVuYW1lLm5hbWUpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKG8udHlwZSwgby5saXN0ZW5lciwgby5vcHRpb25zKTtcbiAgICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKG8udHlwZSwgby5saXN0ZW5lciA9IGxpc3RlbmVyLCBvLm9wdGlvbnMgPSBvcHRpb25zKTtcbiAgICAgICAgby52YWx1ZSA9IHZhbHVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcih0eXBlbmFtZS50eXBlLCBsaXN0ZW5lciwgb3B0aW9ucyk7XG4gICAgbyA9IHt0eXBlOiB0eXBlbmFtZS50eXBlLCBuYW1lOiB0eXBlbmFtZS5uYW1lLCB2YWx1ZTogdmFsdWUsIGxpc3RlbmVyOiBsaXN0ZW5lciwgb3B0aW9uczogb3B0aW9uc307XG4gICAgaWYgKCFvbikgdGhpcy5fX29uID0gW29dO1xuICAgIGVsc2Ugb24ucHVzaChvKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odHlwZW5hbWUsIHZhbHVlLCBvcHRpb25zKSB7XG4gIHZhciB0eXBlbmFtZXMgPSBwYXJzZVR5cGVuYW1lcyh0eXBlbmFtZSArIFwiXCIpLCBpLCBuID0gdHlwZW5hbWVzLmxlbmd0aCwgdDtcblxuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDIpIHtcbiAgICB2YXIgb24gPSB0aGlzLm5vZGUoKS5fX29uO1xuICAgIGlmIChvbikgZm9yICh2YXIgaiA9IDAsIG0gPSBvbi5sZW5ndGgsIG87IGogPCBtOyArK2opIHtcbiAgICAgIGZvciAoaSA9IDAsIG8gPSBvbltqXTsgaSA8IG47ICsraSkge1xuICAgICAgICBpZiAoKHQgPSB0eXBlbmFtZXNbaV0pLnR5cGUgPT09IG8udHlwZSAmJiB0Lm5hbWUgPT09IG8ubmFtZSkge1xuICAgICAgICAgIHJldHVybiBvLnZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIG9uID0gdmFsdWUgPyBvbkFkZCA6IG9uUmVtb3ZlO1xuICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB0aGlzLmVhY2gob24odHlwZW5hbWVzW2ldLCB2YWx1ZSwgb3B0aW9ucykpO1xuICByZXR1cm4gdGhpcztcbn1cbiIsICJpbXBvcnQgZGVmYXVsdFZpZXcgZnJvbSBcIi4uL3dpbmRvdy5qc1wiO1xuXG5mdW5jdGlvbiBkaXNwYXRjaEV2ZW50KG5vZGUsIHR5cGUsIHBhcmFtcykge1xuICB2YXIgd2luZG93ID0gZGVmYXVsdFZpZXcobm9kZSksXG4gICAgICBldmVudCA9IHdpbmRvdy5DdXN0b21FdmVudDtcblxuICBpZiAodHlwZW9mIGV2ZW50ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBldmVudCA9IG5ldyBldmVudCh0eXBlLCBwYXJhbXMpO1xuICB9IGVsc2Uge1xuICAgIGV2ZW50ID0gd2luZG93LmRvY3VtZW50LmNyZWF0ZUV2ZW50KFwiRXZlbnRcIik7XG4gICAgaWYgKHBhcmFtcykgZXZlbnQuaW5pdEV2ZW50KHR5cGUsIHBhcmFtcy5idWJibGVzLCBwYXJhbXMuY2FuY2VsYWJsZSksIGV2ZW50LmRldGFpbCA9IHBhcmFtcy5kZXRhaWw7XG4gICAgZWxzZSBldmVudC5pbml0RXZlbnQodHlwZSwgZmFsc2UsIGZhbHNlKTtcbiAgfVxuXG4gIG5vZGUuZGlzcGF0Y2hFdmVudChldmVudCk7XG59XG5cbmZ1bmN0aW9uIGRpc3BhdGNoQ29uc3RhbnQodHlwZSwgcGFyYW1zKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZGlzcGF0Y2hFdmVudCh0aGlzLCB0eXBlLCBwYXJhbXMpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBkaXNwYXRjaEZ1bmN0aW9uKHR5cGUsIHBhcmFtcykge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRpc3BhdGNoRXZlbnQodGhpcywgdHlwZSwgcGFyYW1zLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih0eXBlLCBwYXJhbXMpIHtcbiAgcmV0dXJuIHRoaXMuZWFjaCgodHlwZW9mIHBhcmFtcyA9PT0gXCJmdW5jdGlvblwiXG4gICAgICA/IGRpc3BhdGNoRnVuY3Rpb25cbiAgICAgIDogZGlzcGF0Y2hDb25zdGFudCkodHlwZSwgcGFyYW1zKSk7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24qKCkge1xuICBmb3IgKHZhciBncm91cHMgPSB0aGlzLl9ncm91cHMsIGogPSAwLCBtID0gZ3JvdXBzLmxlbmd0aDsgaiA8IG07ICsraikge1xuICAgIGZvciAodmFyIGdyb3VwID0gZ3JvdXBzW2pdLCBpID0gMCwgbiA9IGdyb3VwLmxlbmd0aCwgbm9kZTsgaSA8IG47ICsraSkge1xuICAgICAgaWYgKG5vZGUgPSBncm91cFtpXSkgeWllbGQgbm9kZTtcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQgc2VsZWN0aW9uX3NlbGVjdCBmcm9tIFwiLi9zZWxlY3QuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fc2VsZWN0QWxsIGZyb20gXCIuL3NlbGVjdEFsbC5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9zZWxlY3RDaGlsZCBmcm9tIFwiLi9zZWxlY3RDaGlsZC5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9zZWxlY3RDaGlsZHJlbiBmcm9tIFwiLi9zZWxlY3RDaGlsZHJlbi5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9maWx0ZXIgZnJvbSBcIi4vZmlsdGVyLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2RhdGEgZnJvbSBcIi4vZGF0YS5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9lbnRlciBmcm9tIFwiLi9lbnRlci5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9leGl0IGZyb20gXCIuL2V4aXQuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fam9pbiBmcm9tIFwiLi9qb2luLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX21lcmdlIGZyb20gXCIuL21lcmdlLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX29yZGVyIGZyb20gXCIuL29yZGVyLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX3NvcnQgZnJvbSBcIi4vc29ydC5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9jYWxsIGZyb20gXCIuL2NhbGwuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fbm9kZXMgZnJvbSBcIi4vbm9kZXMuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fbm9kZSBmcm9tIFwiLi9ub2RlLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX3NpemUgZnJvbSBcIi4vc2l6ZS5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9lbXB0eSBmcm9tIFwiLi9lbXB0eS5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9lYWNoIGZyb20gXCIuL2VhY2guanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fYXR0ciBmcm9tIFwiLi9hdHRyLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX3N0eWxlIGZyb20gXCIuL3N0eWxlLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX3Byb3BlcnR5IGZyb20gXCIuL3Byb3BlcnR5LmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2NsYXNzZWQgZnJvbSBcIi4vY2xhc3NlZC5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl90ZXh0IGZyb20gXCIuL3RleHQuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25faHRtbCBmcm9tIFwiLi9odG1sLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX3JhaXNlIGZyb20gXCIuL3JhaXNlLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2xvd2VyIGZyb20gXCIuL2xvd2VyLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2FwcGVuZCBmcm9tIFwiLi9hcHBlbmQuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25faW5zZXJ0IGZyb20gXCIuL2luc2VydC5qc1wiO1xuaW1wb3J0IHNlbGVjdGlvbl9yZW1vdmUgZnJvbSBcIi4vcmVtb3ZlLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2Nsb25lIGZyb20gXCIuL2Nsb25lLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2RhdHVtIGZyb20gXCIuL2RhdHVtLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX29uIGZyb20gXCIuL29uLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2Rpc3BhdGNoIGZyb20gXCIuL2Rpc3BhdGNoLmpzXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2l0ZXJhdG9yIGZyb20gXCIuL2l0ZXJhdG9yLmpzXCI7XG5cbmV4cG9ydCB2YXIgcm9vdCA9IFtudWxsXTtcblxuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdGlvbihncm91cHMsIHBhcmVudHMpIHtcbiAgdGhpcy5fZ3JvdXBzID0gZ3JvdXBzO1xuICB0aGlzLl9wYXJlbnRzID0gcGFyZW50cztcbn1cblxuZnVuY3Rpb24gc2VsZWN0aW9uKCkge1xuICByZXR1cm4gbmV3IFNlbGVjdGlvbihbW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF1dLCByb290KTtcbn1cblxuZnVuY3Rpb24gc2VsZWN0aW9uX3NlbGVjdGlvbigpIHtcbiAgcmV0dXJuIHRoaXM7XG59XG5cblNlbGVjdGlvbi5wcm90b3R5cGUgPSBzZWxlY3Rpb24ucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogU2VsZWN0aW9uLFxuICBzZWxlY3Q6IHNlbGVjdGlvbl9zZWxlY3QsXG4gIHNlbGVjdEFsbDogc2VsZWN0aW9uX3NlbGVjdEFsbCxcbiAgc2VsZWN0Q2hpbGQ6IHNlbGVjdGlvbl9zZWxlY3RDaGlsZCxcbiAgc2VsZWN0Q2hpbGRyZW46IHNlbGVjdGlvbl9zZWxlY3RDaGlsZHJlbixcbiAgZmlsdGVyOiBzZWxlY3Rpb25fZmlsdGVyLFxuICBkYXRhOiBzZWxlY3Rpb25fZGF0YSxcbiAgZW50ZXI6IHNlbGVjdGlvbl9lbnRlcixcbiAgZXhpdDogc2VsZWN0aW9uX2V4aXQsXG4gIGpvaW46IHNlbGVjdGlvbl9qb2luLFxuICBtZXJnZTogc2VsZWN0aW9uX21lcmdlLFxuICBzZWxlY3Rpb246IHNlbGVjdGlvbl9zZWxlY3Rpb24sXG4gIG9yZGVyOiBzZWxlY3Rpb25fb3JkZXIsXG4gIHNvcnQ6IHNlbGVjdGlvbl9zb3J0LFxuICBjYWxsOiBzZWxlY3Rpb25fY2FsbCxcbiAgbm9kZXM6IHNlbGVjdGlvbl9ub2RlcyxcbiAgbm9kZTogc2VsZWN0aW9uX25vZGUsXG4gIHNpemU6IHNlbGVjdGlvbl9zaXplLFxuICBlbXB0eTogc2VsZWN0aW9uX2VtcHR5LFxuICBlYWNoOiBzZWxlY3Rpb25fZWFjaCxcbiAgYXR0cjogc2VsZWN0aW9uX2F0dHIsXG4gIHN0eWxlOiBzZWxlY3Rpb25fc3R5bGUsXG4gIHByb3BlcnR5OiBzZWxlY3Rpb25fcHJvcGVydHksXG4gIGNsYXNzZWQ6IHNlbGVjdGlvbl9jbGFzc2VkLFxuICB0ZXh0OiBzZWxlY3Rpb25fdGV4dCxcbiAgaHRtbDogc2VsZWN0aW9uX2h0bWwsXG4gIHJhaXNlOiBzZWxlY3Rpb25fcmFpc2UsXG4gIGxvd2VyOiBzZWxlY3Rpb25fbG93ZXIsXG4gIGFwcGVuZDogc2VsZWN0aW9uX2FwcGVuZCxcbiAgaW5zZXJ0OiBzZWxlY3Rpb25faW5zZXJ0LFxuICByZW1vdmU6IHNlbGVjdGlvbl9yZW1vdmUsXG4gIGNsb25lOiBzZWxlY3Rpb25fY2xvbmUsXG4gIGRhdHVtOiBzZWxlY3Rpb25fZGF0dW0sXG4gIG9uOiBzZWxlY3Rpb25fb24sXG4gIGRpc3BhdGNoOiBzZWxlY3Rpb25fZGlzcGF0Y2gsXG4gIFtTeW1ib2wuaXRlcmF0b3JdOiBzZWxlY3Rpb25faXRlcmF0b3Jcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHNlbGVjdGlvbjtcbiIsICJpbXBvcnQge1NlbGVjdGlvbiwgcm9vdH0gZnJvbSBcIi4vc2VsZWN0aW9uL2luZGV4LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHNlbGVjdG9yKSB7XG4gIHJldHVybiB0eXBlb2Ygc2VsZWN0b3IgPT09IFwic3RyaW5nXCJcbiAgICAgID8gbmV3IFNlbGVjdGlvbihbW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpXV0sIFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKVxuICAgICAgOiBuZXcgU2VsZWN0aW9uKFtbc2VsZWN0b3JdXSwgcm9vdCk7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oZXZlbnQpIHtcbiAgbGV0IHNvdXJjZUV2ZW50O1xuICB3aGlsZSAoc291cmNlRXZlbnQgPSBldmVudC5zb3VyY2VFdmVudCkgZXZlbnQgPSBzb3VyY2VFdmVudDtcbiAgcmV0dXJuIGV2ZW50O1xufVxuIiwgImltcG9ydCBzb3VyY2VFdmVudCBmcm9tIFwiLi9zb3VyY2VFdmVudC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihldmVudCwgbm9kZSkge1xuICBldmVudCA9IHNvdXJjZUV2ZW50KGV2ZW50KTtcbiAgaWYgKG5vZGUgPT09IHVuZGVmaW5lZCkgbm9kZSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gIGlmIChub2RlKSB7XG4gICAgdmFyIHN2ZyA9IG5vZGUub3duZXJTVkdFbGVtZW50IHx8IG5vZGU7XG4gICAgaWYgKHN2Zy5jcmVhdGVTVkdQb2ludCkge1xuICAgICAgdmFyIHBvaW50ID0gc3ZnLmNyZWF0ZVNWR1BvaW50KCk7XG4gICAgICBwb2ludC54ID0gZXZlbnQuY2xpZW50WCwgcG9pbnQueSA9IGV2ZW50LmNsaWVudFk7XG4gICAgICBwb2ludCA9IHBvaW50Lm1hdHJpeFRyYW5zZm9ybShub2RlLmdldFNjcmVlbkNUTSgpLmludmVyc2UoKSk7XG4gICAgICByZXR1cm4gW3BvaW50LngsIHBvaW50LnldO1xuICAgIH1cbiAgICBpZiAobm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QpIHtcbiAgICAgIHZhciByZWN0ID0gbm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHJldHVybiBbZXZlbnQuY2xpZW50WCAtIHJlY3QubGVmdCAtIG5vZGUuY2xpZW50TGVmdCwgZXZlbnQuY2xpZW50WSAtIHJlY3QudG9wIC0gbm9kZS5jbGllbnRUb3BdO1xuICAgIH1cbiAgfVxuICByZXR1cm4gW2V2ZW50LnBhZ2VYLCBldmVudC5wYWdlWV07XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIG5vcHJvcGFnYXRpb24oZXZlbnQpIHtcbiAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGV2ZW50KSB7XG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xufVxuIiwgImltcG9ydCB7c2VsZWN0fSBmcm9tIFwiZDMtc2VsZWN0aW9uXCI7XG5pbXBvcnQgbm9ldmVudCBmcm9tIFwiLi9ub2V2ZW50LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHZpZXcpIHtcbiAgdmFyIHJvb3QgPSB2aWV3LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxcbiAgICAgIHNlbGVjdGlvbiA9IHNlbGVjdCh2aWV3KS5vbihcImRyYWdzdGFydC5kcmFnXCIsIG5vZXZlbnQsIHRydWUpO1xuICBpZiAoXCJvbnNlbGVjdHN0YXJ0XCIgaW4gcm9vdCkge1xuICAgIHNlbGVjdGlvbi5vbihcInNlbGVjdHN0YXJ0LmRyYWdcIiwgbm9ldmVudCwgdHJ1ZSk7XG4gIH0gZWxzZSB7XG4gICAgcm9vdC5fX25vc2VsZWN0ID0gcm9vdC5zdHlsZS5Nb3pVc2VyU2VsZWN0O1xuICAgIHJvb3Quc3R5bGUuTW96VXNlclNlbGVjdCA9IFwibm9uZVwiO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB5ZXNkcmFnKHZpZXcsIG5vY2xpY2spIHtcbiAgdmFyIHJvb3QgPSB2aWV3LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxcbiAgICAgIHNlbGVjdGlvbiA9IHNlbGVjdCh2aWV3KS5vbihcImRyYWdzdGFydC5kcmFnXCIsIG51bGwpO1xuICBpZiAobm9jbGljaykge1xuICAgIHNlbGVjdGlvbi5vbihcImNsaWNrLmRyYWdcIiwgbm9ldmVudCwgdHJ1ZSk7XG4gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgc2VsZWN0aW9uLm9uKFwiY2xpY2suZHJhZ1wiLCBudWxsKTsgfSwgMCk7XG4gIH1cbiAgaWYgKFwib25zZWxlY3RzdGFydFwiIGluIHJvb3QpIHtcbiAgICBzZWxlY3Rpb24ub24oXCJzZWxlY3RzdGFydC5kcmFnXCIsIG51bGwpO1xuICB9IGVsc2Uge1xuICAgIHJvb3Quc3R5bGUuTW96VXNlclNlbGVjdCA9IHJvb3QuX19ub3NlbGVjdDtcbiAgICBkZWxldGUgcm9vdC5fX25vc2VsZWN0O1xuICB9XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgeCA9PiAoKSA9PiB4O1xuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIERyYWdFdmVudCh0eXBlLCB7XG4gIHNvdXJjZUV2ZW50LFxuICBzdWJqZWN0LFxuICB0YXJnZXQsXG4gIGlkZW50aWZpZXIsXG4gIGFjdGl2ZSxcbiAgeCwgeSwgZHgsIGR5LFxuICBkaXNwYXRjaFxufSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0aGlzLCB7XG4gICAgdHlwZToge3ZhbHVlOiB0eXBlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9LFxuICAgIHNvdXJjZUV2ZW50OiB7dmFsdWU6IHNvdXJjZUV2ZW50LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9LFxuICAgIHN1YmplY3Q6IHt2YWx1ZTogc3ViamVjdCwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlfSxcbiAgICB0YXJnZXQ6IHt2YWx1ZTogdGFyZ2V0LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9LFxuICAgIGlkZW50aWZpZXI6IHt2YWx1ZTogaWRlbnRpZmllciwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlfSxcbiAgICBhY3RpdmU6IHt2YWx1ZTogYWN0aXZlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9LFxuICAgIHg6IHt2YWx1ZTogeCwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlfSxcbiAgICB5OiB7dmFsdWU6IHksIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0sXG4gICAgZHg6IHt2YWx1ZTogZHgsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0sXG4gICAgZHk6IHt2YWx1ZTogZHksIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0sXG4gICAgXzoge3ZhbHVlOiBkaXNwYXRjaH1cbiAgfSk7XG59XG5cbkRyYWdFdmVudC5wcm90b3R5cGUub24gPSBmdW5jdGlvbigpIHtcbiAgdmFyIHZhbHVlID0gdGhpcy5fLm9uLmFwcGx5KHRoaXMuXywgYXJndW1lbnRzKTtcbiAgcmV0dXJuIHZhbHVlID09PSB0aGlzLl8gPyB0aGlzIDogdmFsdWU7XG59O1xuIiwgImltcG9ydCB7ZGlzcGF0Y2h9IGZyb20gXCJkMy1kaXNwYXRjaFwiO1xuaW1wb3J0IHtzZWxlY3QsIHBvaW50ZXJ9IGZyb20gXCJkMy1zZWxlY3Rpb25cIjtcbmltcG9ydCBub2RyYWcsIHt5ZXNkcmFnfSBmcm9tIFwiLi9ub2RyYWcuanNcIjtcbmltcG9ydCBub2V2ZW50LCB7bm9wcm9wYWdhdGlvbn0gZnJvbSBcIi4vbm9ldmVudC5qc1wiO1xuaW1wb3J0IGNvbnN0YW50IGZyb20gXCIuL2NvbnN0YW50LmpzXCI7XG5pbXBvcnQgRHJhZ0V2ZW50IGZyb20gXCIuL2V2ZW50LmpzXCI7XG5cbi8vIElnbm9yZSByaWdodC1jbGljaywgc2luY2UgdGhhdCBzaG91bGQgb3BlbiB0aGUgY29udGV4dCBtZW51LlxuZnVuY3Rpb24gZGVmYXVsdEZpbHRlcihldmVudCkge1xuICByZXR1cm4gIWV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50LmJ1dHRvbjtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdENvbnRhaW5lcigpIHtcbiAgcmV0dXJuIHRoaXMucGFyZW50Tm9kZTtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdFN1YmplY3QoZXZlbnQsIGQpIHtcbiAgcmV0dXJuIGQgPT0gbnVsbCA/IHt4OiBldmVudC54LCB5OiBldmVudC55fSA6IGQ7XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRUb3VjaGFibGUoKSB7XG4gIHJldHVybiBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMgfHwgKFwib250b3VjaHN0YXJ0XCIgaW4gdGhpcyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICB2YXIgZmlsdGVyID0gZGVmYXVsdEZpbHRlcixcbiAgICAgIGNvbnRhaW5lciA9IGRlZmF1bHRDb250YWluZXIsXG4gICAgICBzdWJqZWN0ID0gZGVmYXVsdFN1YmplY3QsXG4gICAgICB0b3VjaGFibGUgPSBkZWZhdWx0VG91Y2hhYmxlLFxuICAgICAgZ2VzdHVyZXMgPSB7fSxcbiAgICAgIGxpc3RlbmVycyA9IGRpc3BhdGNoKFwic3RhcnRcIiwgXCJkcmFnXCIsIFwiZW5kXCIpLFxuICAgICAgYWN0aXZlID0gMCxcbiAgICAgIG1vdXNlZG93bngsXG4gICAgICBtb3VzZWRvd255LFxuICAgICAgbW91c2Vtb3ZpbmcsXG4gICAgICB0b3VjaGVuZGluZyxcbiAgICAgIGNsaWNrRGlzdGFuY2UyID0gMDtcblxuICBmdW5jdGlvbiBkcmFnKHNlbGVjdGlvbikge1xuICAgIHNlbGVjdGlvblxuICAgICAgICAub24oXCJtb3VzZWRvd24uZHJhZ1wiLCBtb3VzZWRvd25lZClcbiAgICAgIC5maWx0ZXIodG91Y2hhYmxlKVxuICAgICAgICAub24oXCJ0b3VjaHN0YXJ0LmRyYWdcIiwgdG91Y2hzdGFydGVkKVxuICAgICAgICAub24oXCJ0b3VjaG1vdmUuZHJhZ1wiLCB0b3VjaG1vdmVkKVxuICAgICAgICAub24oXCJ0b3VjaGVuZC5kcmFnIHRvdWNoY2FuY2VsLmRyYWdcIiwgdG91Y2hlbmRlZClcbiAgICAgICAgLnN0eWxlKFwidG91Y2gtYWN0aW9uXCIsIFwibm9uZVwiKVxuICAgICAgICAuc3R5bGUoXCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3JcIiwgXCJyZ2JhKDAsMCwwLDApXCIpO1xuICB9XG5cbiAgZnVuY3Rpb24gbW91c2Vkb3duZWQoZXZlbnQsIGQpIHtcbiAgICBpZiAodG91Y2hlbmRpbmcgfHwgIWZpbHRlci5jYWxsKHRoaXMsIGV2ZW50LCBkKSkgcmV0dXJuO1xuICAgIHZhciBnZXN0dXJlID0gYmVmb3Jlc3RhcnQodGhpcywgY29udGFpbmVyLmNhbGwodGhpcywgZXZlbnQsIGQpLCBldmVudCwgZCwgXCJtb3VzZVwiKTtcbiAgICBpZiAoIWdlc3R1cmUpIHJldHVybjtcbiAgICBzZWxlY3QoZXZlbnQudmlldykub24oXCJtb3VzZW1vdmUuZHJhZ1wiLCBtb3VzZW1vdmVkLCB0cnVlKS5vbihcIm1vdXNldXAuZHJhZ1wiLCBtb3VzZXVwcGVkLCB0cnVlKTtcbiAgICBub2RyYWcoZXZlbnQudmlldyk7XG4gICAgbm9wcm9wYWdhdGlvbihldmVudCk7XG4gICAgbW91c2Vtb3ZpbmcgPSBmYWxzZTtcbiAgICBtb3VzZWRvd254ID0gZXZlbnQuY2xpZW50WDtcbiAgICBtb3VzZWRvd255ID0gZXZlbnQuY2xpZW50WTtcbiAgICBnZXN0dXJlKFwic3RhcnRcIiwgZXZlbnQpO1xuICB9XG5cbiAgZnVuY3Rpb24gbW91c2Vtb3ZlZChldmVudCkge1xuICAgIG5vZXZlbnQoZXZlbnQpO1xuICAgIGlmICghbW91c2Vtb3ZpbmcpIHtcbiAgICAgIHZhciBkeCA9IGV2ZW50LmNsaWVudFggLSBtb3VzZWRvd254LCBkeSA9IGV2ZW50LmNsaWVudFkgLSBtb3VzZWRvd255O1xuICAgICAgbW91c2Vtb3ZpbmcgPSBkeCAqIGR4ICsgZHkgKiBkeSA+IGNsaWNrRGlzdGFuY2UyO1xuICAgIH1cbiAgICBnZXN0dXJlcy5tb3VzZShcImRyYWdcIiwgZXZlbnQpO1xuICB9XG5cbiAgZnVuY3Rpb24gbW91c2V1cHBlZChldmVudCkge1xuICAgIHNlbGVjdChldmVudC52aWV3KS5vbihcIm1vdXNlbW92ZS5kcmFnIG1vdXNldXAuZHJhZ1wiLCBudWxsKTtcbiAgICB5ZXNkcmFnKGV2ZW50LnZpZXcsIG1vdXNlbW92aW5nKTtcbiAgICBub2V2ZW50KGV2ZW50KTtcbiAgICBnZXN0dXJlcy5tb3VzZShcImVuZFwiLCBldmVudCk7XG4gIH1cblxuICBmdW5jdGlvbiB0b3VjaHN0YXJ0ZWQoZXZlbnQsIGQpIHtcbiAgICBpZiAoIWZpbHRlci5jYWxsKHRoaXMsIGV2ZW50LCBkKSkgcmV0dXJuO1xuICAgIHZhciB0b3VjaGVzID0gZXZlbnQuY2hhbmdlZFRvdWNoZXMsXG4gICAgICAgIGMgPSBjb250YWluZXIuY2FsbCh0aGlzLCBldmVudCwgZCksXG4gICAgICAgIG4gPSB0b3VjaGVzLmxlbmd0aCwgaSwgZ2VzdHVyZTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICAgIGlmIChnZXN0dXJlID0gYmVmb3Jlc3RhcnQodGhpcywgYywgZXZlbnQsIGQsIHRvdWNoZXNbaV0uaWRlbnRpZmllciwgdG91Y2hlc1tpXSkpIHtcbiAgICAgICAgbm9wcm9wYWdhdGlvbihldmVudCk7XG4gICAgICAgIGdlc3R1cmUoXCJzdGFydFwiLCBldmVudCwgdG91Y2hlc1tpXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gdG91Y2htb3ZlZChldmVudCkge1xuICAgIHZhciB0b3VjaGVzID0gZXZlbnQuY2hhbmdlZFRvdWNoZXMsXG4gICAgICAgIG4gPSB0b3VjaGVzLmxlbmd0aCwgaSwgZ2VzdHVyZTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICAgIGlmIChnZXN0dXJlID0gZ2VzdHVyZXNbdG91Y2hlc1tpXS5pZGVudGlmaWVyXSkge1xuICAgICAgICBub2V2ZW50KGV2ZW50KTtcbiAgICAgICAgZ2VzdHVyZShcImRyYWdcIiwgZXZlbnQsIHRvdWNoZXNbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHRvdWNoZW5kZWQoZXZlbnQpIHtcbiAgICB2YXIgdG91Y2hlcyA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzLFxuICAgICAgICBuID0gdG91Y2hlcy5sZW5ndGgsIGksIGdlc3R1cmU7XG5cbiAgICBpZiAodG91Y2hlbmRpbmcpIGNsZWFyVGltZW91dCh0b3VjaGVuZGluZyk7XG4gICAgdG91Y2hlbmRpbmcgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0b3VjaGVuZGluZyA9IG51bGw7IH0sIDUwMCk7IC8vIEdob3N0IGNsaWNrcyBhcmUgZGVsYXllZCFcbiAgICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAoZ2VzdHVyZSA9IGdlc3R1cmVzW3RvdWNoZXNbaV0uaWRlbnRpZmllcl0pIHtcbiAgICAgICAgbm9wcm9wYWdhdGlvbihldmVudCk7XG4gICAgICAgIGdlc3R1cmUoXCJlbmRcIiwgZXZlbnQsIHRvdWNoZXNbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGJlZm9yZXN0YXJ0KHRoYXQsIGNvbnRhaW5lciwgZXZlbnQsIGQsIGlkZW50aWZpZXIsIHRvdWNoKSB7XG4gICAgdmFyIGRpc3BhdGNoID0gbGlzdGVuZXJzLmNvcHkoKSxcbiAgICAgICAgcCA9IHBvaW50ZXIodG91Y2ggfHwgZXZlbnQsIGNvbnRhaW5lciksIGR4LCBkeSxcbiAgICAgICAgcztcblxuICAgIGlmICgocyA9IHN1YmplY3QuY2FsbCh0aGF0LCBuZXcgRHJhZ0V2ZW50KFwiYmVmb3Jlc3RhcnRcIiwge1xuICAgICAgICBzb3VyY2VFdmVudDogZXZlbnQsXG4gICAgICAgIHRhcmdldDogZHJhZyxcbiAgICAgICAgaWRlbnRpZmllcixcbiAgICAgICAgYWN0aXZlLFxuICAgICAgICB4OiBwWzBdLFxuICAgICAgICB5OiBwWzFdLFxuICAgICAgICBkeDogMCxcbiAgICAgICAgZHk6IDAsXG4gICAgICAgIGRpc3BhdGNoXG4gICAgICB9KSwgZCkpID09IG51bGwpIHJldHVybjtcblxuICAgIGR4ID0gcy54IC0gcFswXSB8fCAwO1xuICAgIGR5ID0gcy55IC0gcFsxXSB8fCAwO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGdlc3R1cmUodHlwZSwgZXZlbnQsIHRvdWNoKSB7XG4gICAgICB2YXIgcDAgPSBwLCBuO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgXCJzdGFydFwiOiBnZXN0dXJlc1tpZGVudGlmaWVyXSA9IGdlc3R1cmUsIG4gPSBhY3RpdmUrKzsgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJlbmRcIjogZGVsZXRlIGdlc3R1cmVzW2lkZW50aWZpZXJdLCAtLWFjdGl2ZTsgLy8gbm9icmVha1xuICAgICAgICBjYXNlIFwiZHJhZ1wiOiBwID0gcG9pbnRlcih0b3VjaCB8fCBldmVudCwgY29udGFpbmVyKSwgbiA9IGFjdGl2ZTsgYnJlYWs7XG4gICAgICB9XG4gICAgICBkaXNwYXRjaC5jYWxsKFxuICAgICAgICB0eXBlLFxuICAgICAgICB0aGF0LFxuICAgICAgICBuZXcgRHJhZ0V2ZW50KHR5cGUsIHtcbiAgICAgICAgICBzb3VyY2VFdmVudDogZXZlbnQsXG4gICAgICAgICAgc3ViamVjdDogcyxcbiAgICAgICAgICB0YXJnZXQ6IGRyYWcsXG4gICAgICAgICAgaWRlbnRpZmllcixcbiAgICAgICAgICBhY3RpdmU6IG4sXG4gICAgICAgICAgeDogcFswXSArIGR4LFxuICAgICAgICAgIHk6IHBbMV0gKyBkeSxcbiAgICAgICAgICBkeDogcFswXSAtIHAwWzBdLFxuICAgICAgICAgIGR5OiBwWzFdIC0gcDBbMV0sXG4gICAgICAgICAgZGlzcGF0Y2hcbiAgICAgICAgfSksXG4gICAgICAgIGRcbiAgICAgICk7XG4gICAgfTtcbiAgfVxuXG4gIGRyYWcuZmlsdGVyID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGZpbHRlciA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoISFfKSwgZHJhZykgOiBmaWx0ZXI7XG4gIH07XG5cbiAgZHJhZy5jb250YWluZXIgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoY29udGFpbmVyID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudChfKSwgZHJhZykgOiBjb250YWluZXI7XG4gIH07XG5cbiAgZHJhZy5zdWJqZWN0ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHN1YmplY3QgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KF8pLCBkcmFnKSA6IHN1YmplY3Q7XG4gIH07XG5cbiAgZHJhZy50b3VjaGFibGUgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAodG91Y2hhYmxlID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCghIV8pLCBkcmFnKSA6IHRvdWNoYWJsZTtcbiAgfTtcblxuICBkcmFnLm9uID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHZhbHVlID0gbGlzdGVuZXJzLm9uLmFwcGx5KGxpc3RlbmVycywgYXJndW1lbnRzKTtcbiAgICByZXR1cm4gdmFsdWUgPT09IGxpc3RlbmVycyA/IGRyYWcgOiB2YWx1ZTtcbiAgfTtcblxuICBkcmFnLmNsaWNrRGlzdGFuY2UgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoY2xpY2tEaXN0YW5jZTIgPSAoXyA9ICtfKSAqIF8sIGRyYWcpIDogTWF0aC5zcXJ0KGNsaWNrRGlzdGFuY2UyKTtcbiAgfTtcblxuICByZXR1cm4gZHJhZztcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihjb25zdHJ1Y3RvciwgZmFjdG9yeSwgcHJvdG90eXBlKSB7XG4gIGNvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGZhY3RvcnkucHJvdG90eXBlID0gcHJvdG90eXBlO1xuICBwcm90b3R5cGUuY29uc3RydWN0b3IgPSBjb25zdHJ1Y3Rvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dGVuZChwYXJlbnQsIGRlZmluaXRpb24pIHtcbiAgdmFyIHByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUocGFyZW50LnByb3RvdHlwZSk7XG4gIGZvciAodmFyIGtleSBpbiBkZWZpbml0aW9uKSBwcm90b3R5cGVba2V5XSA9IGRlZmluaXRpb25ba2V5XTtcbiAgcmV0dXJuIHByb3RvdHlwZTtcbn1cbiIsICJpbXBvcnQgZGVmaW5lLCB7ZXh0ZW5kfSBmcm9tIFwiLi9kZWZpbmUuanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIENvbG9yKCkge31cblxuZXhwb3J0IHZhciBkYXJrZXIgPSAwLjc7XG5leHBvcnQgdmFyIGJyaWdodGVyID0gMSAvIGRhcmtlcjtcblxudmFyIHJlSSA9IFwiXFxcXHMqKFsrLV0/XFxcXGQrKVxcXFxzKlwiLFxuICAgIHJlTiA9IFwiXFxcXHMqKFsrLV0/XFxcXGQqXFxcXC4/XFxcXGQrKD86W2VFXVsrLV0/XFxcXGQrKT8pXFxcXHMqXCIsXG4gICAgcmVQID0gXCJcXFxccyooWystXT9cXFxcZCpcXFxcLj9cXFxcZCsoPzpbZUVdWystXT9cXFxcZCspPyklXFxcXHMqXCIsXG4gICAgcmVIZXggPSAvXiMoWzAtOWEtZl17Myw4fSkkLyxcbiAgICByZVJnYkludGVnZXIgPSBuZXcgUmVnRXhwKFwiXnJnYlxcXFwoXCIgKyBbcmVJLCByZUksIHJlSV0gKyBcIlxcXFwpJFwiKSxcbiAgICByZVJnYlBlcmNlbnQgPSBuZXcgUmVnRXhwKFwiXnJnYlxcXFwoXCIgKyBbcmVQLCByZVAsIHJlUF0gKyBcIlxcXFwpJFwiKSxcbiAgICByZVJnYmFJbnRlZ2VyID0gbmV3IFJlZ0V4cChcIl5yZ2JhXFxcXChcIiArIFtyZUksIHJlSSwgcmVJLCByZU5dICsgXCJcXFxcKSRcIiksXG4gICAgcmVSZ2JhUGVyY2VudCA9IG5ldyBSZWdFeHAoXCJecmdiYVxcXFwoXCIgKyBbcmVQLCByZVAsIHJlUCwgcmVOXSArIFwiXFxcXCkkXCIpLFxuICAgIHJlSHNsUGVyY2VudCA9IG5ldyBSZWdFeHAoXCJeaHNsXFxcXChcIiArIFtyZU4sIHJlUCwgcmVQXSArIFwiXFxcXCkkXCIpLFxuICAgIHJlSHNsYVBlcmNlbnQgPSBuZXcgUmVnRXhwKFwiXmhzbGFcXFxcKFwiICsgW3JlTiwgcmVQLCByZVAsIHJlTl0gKyBcIlxcXFwpJFwiKTtcblxudmFyIG5hbWVkID0ge1xuICBhbGljZWJsdWU6IDB4ZjBmOGZmLFxuICBhbnRpcXVld2hpdGU6IDB4ZmFlYmQ3LFxuICBhcXVhOiAweDAwZmZmZixcbiAgYXF1YW1hcmluZTogMHg3ZmZmZDQsXG4gIGF6dXJlOiAweGYwZmZmZixcbiAgYmVpZ2U6IDB4ZjVmNWRjLFxuICBiaXNxdWU6IDB4ZmZlNGM0LFxuICBibGFjazogMHgwMDAwMDAsXG4gIGJsYW5jaGVkYWxtb25kOiAweGZmZWJjZCxcbiAgYmx1ZTogMHgwMDAwZmYsXG4gIGJsdWV2aW9sZXQ6IDB4OGEyYmUyLFxuICBicm93bjogMHhhNTJhMmEsXG4gIGJ1cmx5d29vZDogMHhkZWI4ODcsXG4gIGNhZGV0Ymx1ZTogMHg1ZjllYTAsXG4gIGNoYXJ0cmV1c2U6IDB4N2ZmZjAwLFxuICBjaG9jb2xhdGU6IDB4ZDI2OTFlLFxuICBjb3JhbDogMHhmZjdmNTAsXG4gIGNvcm5mbG93ZXJibHVlOiAweDY0OTVlZCxcbiAgY29ybnNpbGs6IDB4ZmZmOGRjLFxuICBjcmltc29uOiAweGRjMTQzYyxcbiAgY3lhbjogMHgwMGZmZmYsXG4gIGRhcmtibHVlOiAweDAwMDA4YixcbiAgZGFya2N5YW46IDB4MDA4YjhiLFxuICBkYXJrZ29sZGVucm9kOiAweGI4ODYwYixcbiAgZGFya2dyYXk6IDB4YTlhOWE5LFxuICBkYXJrZ3JlZW46IDB4MDA2NDAwLFxuICBkYXJrZ3JleTogMHhhOWE5YTksXG4gIGRhcmtraGFraTogMHhiZGI3NmIsXG4gIGRhcmttYWdlbnRhOiAweDhiMDA4YixcbiAgZGFya29saXZlZ3JlZW46IDB4NTU2YjJmLFxuICBkYXJrb3JhbmdlOiAweGZmOGMwMCxcbiAgZGFya29yY2hpZDogMHg5OTMyY2MsXG4gIGRhcmtyZWQ6IDB4OGIwMDAwLFxuICBkYXJrc2FsbW9uOiAweGU5OTY3YSxcbiAgZGFya3NlYWdyZWVuOiAweDhmYmM4ZixcbiAgZGFya3NsYXRlYmx1ZTogMHg0ODNkOGIsXG4gIGRhcmtzbGF0ZWdyYXk6IDB4MmY0ZjRmLFxuICBkYXJrc2xhdGVncmV5OiAweDJmNGY0ZixcbiAgZGFya3R1cnF1b2lzZTogMHgwMGNlZDEsXG4gIGRhcmt2aW9sZXQ6IDB4OTQwMGQzLFxuICBkZWVwcGluazogMHhmZjE0OTMsXG4gIGRlZXBza3libHVlOiAweDAwYmZmZixcbiAgZGltZ3JheTogMHg2OTY5NjksXG4gIGRpbWdyZXk6IDB4Njk2OTY5LFxuICBkb2RnZXJibHVlOiAweDFlOTBmZixcbiAgZmlyZWJyaWNrOiAweGIyMjIyMixcbiAgZmxvcmFsd2hpdGU6IDB4ZmZmYWYwLFxuICBmb3Jlc3RncmVlbjogMHgyMjhiMjIsXG4gIGZ1Y2hzaWE6IDB4ZmYwMGZmLFxuICBnYWluc2Jvcm86IDB4ZGNkY2RjLFxuICBnaG9zdHdoaXRlOiAweGY4ZjhmZixcbiAgZ29sZDogMHhmZmQ3MDAsXG4gIGdvbGRlbnJvZDogMHhkYWE1MjAsXG4gIGdyYXk6IDB4ODA4MDgwLFxuICBncmVlbjogMHgwMDgwMDAsXG4gIGdyZWVueWVsbG93OiAweGFkZmYyZixcbiAgZ3JleTogMHg4MDgwODAsXG4gIGhvbmV5ZGV3OiAweGYwZmZmMCxcbiAgaG90cGluazogMHhmZjY5YjQsXG4gIGluZGlhbnJlZDogMHhjZDVjNWMsXG4gIGluZGlnbzogMHg0YjAwODIsXG4gIGl2b3J5OiAweGZmZmZmMCxcbiAga2hha2k6IDB4ZjBlNjhjLFxuICBsYXZlbmRlcjogMHhlNmU2ZmEsXG4gIGxhdmVuZGVyYmx1c2g6IDB4ZmZmMGY1LFxuICBsYXduZ3JlZW46IDB4N2NmYzAwLFxuICBsZW1vbmNoaWZmb246IDB4ZmZmYWNkLFxuICBsaWdodGJsdWU6IDB4YWRkOGU2LFxuICBsaWdodGNvcmFsOiAweGYwODA4MCxcbiAgbGlnaHRjeWFuOiAweGUwZmZmZixcbiAgbGlnaHRnb2xkZW5yb2R5ZWxsb3c6IDB4ZmFmYWQyLFxuICBsaWdodGdyYXk6IDB4ZDNkM2QzLFxuICBsaWdodGdyZWVuOiAweDkwZWU5MCxcbiAgbGlnaHRncmV5OiAweGQzZDNkMyxcbiAgbGlnaHRwaW5rOiAweGZmYjZjMSxcbiAgbGlnaHRzYWxtb246IDB4ZmZhMDdhLFxuICBsaWdodHNlYWdyZWVuOiAweDIwYjJhYSxcbiAgbGlnaHRza3libHVlOiAweDg3Y2VmYSxcbiAgbGlnaHRzbGF0ZWdyYXk6IDB4Nzc4ODk5LFxuICBsaWdodHNsYXRlZ3JleTogMHg3Nzg4OTksXG4gIGxpZ2h0c3RlZWxibHVlOiAweGIwYzRkZSxcbiAgbGlnaHR5ZWxsb3c6IDB4ZmZmZmUwLFxuICBsaW1lOiAweDAwZmYwMCxcbiAgbGltZWdyZWVuOiAweDMyY2QzMixcbiAgbGluZW46IDB4ZmFmMGU2LFxuICBtYWdlbnRhOiAweGZmMDBmZixcbiAgbWFyb29uOiAweDgwMDAwMCxcbiAgbWVkaXVtYXF1YW1hcmluZTogMHg2NmNkYWEsXG4gIG1lZGl1bWJsdWU6IDB4MDAwMGNkLFxuICBtZWRpdW1vcmNoaWQ6IDB4YmE1NWQzLFxuICBtZWRpdW1wdXJwbGU6IDB4OTM3MGRiLFxuICBtZWRpdW1zZWFncmVlbjogMHgzY2IzNzEsXG4gIG1lZGl1bXNsYXRlYmx1ZTogMHg3YjY4ZWUsXG4gIG1lZGl1bXNwcmluZ2dyZWVuOiAweDAwZmE5YSxcbiAgbWVkaXVtdHVycXVvaXNlOiAweDQ4ZDFjYyxcbiAgbWVkaXVtdmlvbGV0cmVkOiAweGM3MTU4NSxcbiAgbWlkbmlnaHRibHVlOiAweDE5MTk3MCxcbiAgbWludGNyZWFtOiAweGY1ZmZmYSxcbiAgbWlzdHlyb3NlOiAweGZmZTRlMSxcbiAgbW9jY2FzaW46IDB4ZmZlNGI1LFxuICBuYXZham93aGl0ZTogMHhmZmRlYWQsXG4gIG5hdnk6IDB4MDAwMDgwLFxuICBvbGRsYWNlOiAweGZkZjVlNixcbiAgb2xpdmU6IDB4ODA4MDAwLFxuICBvbGl2ZWRyYWI6IDB4NmI4ZTIzLFxuICBvcmFuZ2U6IDB4ZmZhNTAwLFxuICBvcmFuZ2VyZWQ6IDB4ZmY0NTAwLFxuICBvcmNoaWQ6IDB4ZGE3MGQ2LFxuICBwYWxlZ29sZGVucm9kOiAweGVlZThhYSxcbiAgcGFsZWdyZWVuOiAweDk4ZmI5OCxcbiAgcGFsZXR1cnF1b2lzZTogMHhhZmVlZWUsXG4gIHBhbGV2aW9sZXRyZWQ6IDB4ZGI3MDkzLFxuICBwYXBheWF3aGlwOiAweGZmZWZkNSxcbiAgcGVhY2hwdWZmOiAweGZmZGFiOSxcbiAgcGVydTogMHhjZDg1M2YsXG4gIHBpbms6IDB4ZmZjMGNiLFxuICBwbHVtOiAweGRkYTBkZCxcbiAgcG93ZGVyYmx1ZTogMHhiMGUwZTYsXG4gIHB1cnBsZTogMHg4MDAwODAsXG4gIHJlYmVjY2FwdXJwbGU6IDB4NjYzMzk5LFxuICByZWQ6IDB4ZmYwMDAwLFxuICByb3N5YnJvd246IDB4YmM4ZjhmLFxuICByb3lhbGJsdWU6IDB4NDE2OWUxLFxuICBzYWRkbGVicm93bjogMHg4YjQ1MTMsXG4gIHNhbG1vbjogMHhmYTgwNzIsXG4gIHNhbmR5YnJvd246IDB4ZjRhNDYwLFxuICBzZWFncmVlbjogMHgyZThiNTcsXG4gIHNlYXNoZWxsOiAweGZmZjVlZSxcbiAgc2llbm5hOiAweGEwNTIyZCxcbiAgc2lsdmVyOiAweGMwYzBjMCxcbiAgc2t5Ymx1ZTogMHg4N2NlZWIsXG4gIHNsYXRlYmx1ZTogMHg2YTVhY2QsXG4gIHNsYXRlZ3JheTogMHg3MDgwOTAsXG4gIHNsYXRlZ3JleTogMHg3MDgwOTAsXG4gIHNub3c6IDB4ZmZmYWZhLFxuICBzcHJpbmdncmVlbjogMHgwMGZmN2YsXG4gIHN0ZWVsYmx1ZTogMHg0NjgyYjQsXG4gIHRhbjogMHhkMmI0OGMsXG4gIHRlYWw6IDB4MDA4MDgwLFxuICB0aGlzdGxlOiAweGQ4YmZkOCxcbiAgdG9tYXRvOiAweGZmNjM0NyxcbiAgdHVycXVvaXNlOiAweDQwZTBkMCxcbiAgdmlvbGV0OiAweGVlODJlZSxcbiAgd2hlYXQ6IDB4ZjVkZWIzLFxuICB3aGl0ZTogMHhmZmZmZmYsXG4gIHdoaXRlc21va2U6IDB4ZjVmNWY1LFxuICB5ZWxsb3c6IDB4ZmZmZjAwLFxuICB5ZWxsb3dncmVlbjogMHg5YWNkMzJcbn07XG5cbmRlZmluZShDb2xvciwgY29sb3IsIHtcbiAgY29weTogZnVuY3Rpb24oY2hhbm5lbHMpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3RvciwgdGhpcywgY2hhbm5lbHMpO1xuICB9LFxuICBkaXNwbGF5YWJsZTogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKTtcbiAgfSxcbiAgaGV4OiBjb2xvcl9mb3JtYXRIZXgsIC8vIERlcHJlY2F0ZWQhIFVzZSBjb2xvci5mb3JtYXRIZXguXG4gIGZvcm1hdEhleDogY29sb3JfZm9ybWF0SGV4LFxuICBmb3JtYXRIc2w6IGNvbG9yX2Zvcm1hdEhzbCxcbiAgZm9ybWF0UmdiOiBjb2xvcl9mb3JtYXRSZ2IsXG4gIHRvU3RyaW5nOiBjb2xvcl9mb3JtYXRSZ2Jcbn0pO1xuXG5mdW5jdGlvbiBjb2xvcl9mb3JtYXRIZXgoKSB7XG4gIHJldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpO1xufVxuXG5mdW5jdGlvbiBjb2xvcl9mb3JtYXRIc2woKSB7XG4gIHJldHVybiBoc2xDb252ZXJ0KHRoaXMpLmZvcm1hdEhzbCgpO1xufVxuXG5mdW5jdGlvbiBjb2xvcl9mb3JtYXRSZ2IoKSB7XG4gIHJldHVybiB0aGlzLnJnYigpLmZvcm1hdFJnYigpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb2xvcihmb3JtYXQpIHtcbiAgdmFyIG0sIGw7XG4gIGZvcm1hdCA9IChmb3JtYXQgKyBcIlwiKS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIChtID0gcmVIZXguZXhlYyhmb3JtYXQpKSA/IChsID0gbVsxXS5sZW5ndGgsIG0gPSBwYXJzZUludChtWzFdLCAxNiksIGwgPT09IDYgPyByZ2JuKG0pIC8vICNmZjAwMDBcbiAgICAgIDogbCA9PT0gMyA/IG5ldyBSZ2IoKG0gPj4gOCAmIDB4ZikgfCAobSA+PiA0ICYgMHhmMCksIChtID4+IDQgJiAweGYpIHwgKG0gJiAweGYwKSwgKChtICYgMHhmKSA8PCA0KSB8IChtICYgMHhmKSwgMSkgLy8gI2YwMFxuICAgICAgOiBsID09PSA4ID8gcmdiYShtID4+IDI0ICYgMHhmZiwgbSA+PiAxNiAmIDB4ZmYsIG0gPj4gOCAmIDB4ZmYsIChtICYgMHhmZikgLyAweGZmKSAvLyAjZmYwMDAwMDBcbiAgICAgIDogbCA9PT0gNCA/IHJnYmEoKG0gPj4gMTIgJiAweGYpIHwgKG0gPj4gOCAmIDB4ZjApLCAobSA+PiA4ICYgMHhmKSB8IChtID4+IDQgJiAweGYwKSwgKG0gPj4gNCAmIDB4ZikgfCAobSAmIDB4ZjApLCAoKChtICYgMHhmKSA8PCA0KSB8IChtICYgMHhmKSkgLyAweGZmKSAvLyAjZjAwMFxuICAgICAgOiBudWxsKSAvLyBpbnZhbGlkIGhleFxuICAgICAgOiAobSA9IHJlUmdiSW50ZWdlci5leGVjKGZvcm1hdCkpID8gbmV3IFJnYihtWzFdLCBtWzJdLCBtWzNdLCAxKSAvLyByZ2IoMjU1LCAwLCAwKVxuICAgICAgOiAobSA9IHJlUmdiUGVyY2VudC5leGVjKGZvcm1hdCkpID8gbmV3IFJnYihtWzFdICogMjU1IC8gMTAwLCBtWzJdICogMjU1IC8gMTAwLCBtWzNdICogMjU1IC8gMTAwLCAxKSAvLyByZ2IoMTAwJSwgMCUsIDAlKVxuICAgICAgOiAobSA9IHJlUmdiYUludGVnZXIuZXhlYyhmb3JtYXQpKSA/IHJnYmEobVsxXSwgbVsyXSwgbVszXSwgbVs0XSkgLy8gcmdiYSgyNTUsIDAsIDAsIDEpXG4gICAgICA6IChtID0gcmVSZ2JhUGVyY2VudC5leGVjKGZvcm1hdCkpID8gcmdiYShtWzFdICogMjU1IC8gMTAwLCBtWzJdICogMjU1IC8gMTAwLCBtWzNdICogMjU1IC8gMTAwLCBtWzRdKSAvLyByZ2IoMTAwJSwgMCUsIDAlLCAxKVxuICAgICAgOiAobSA9IHJlSHNsUGVyY2VudC5leGVjKGZvcm1hdCkpID8gaHNsYShtWzFdLCBtWzJdIC8gMTAwLCBtWzNdIC8gMTAwLCAxKSAvLyBoc2woMTIwLCA1MCUsIDUwJSlcbiAgICAgIDogKG0gPSByZUhzbGFQZXJjZW50LmV4ZWMoZm9ybWF0KSkgPyBoc2xhKG1bMV0sIG1bMl0gLyAxMDAsIG1bM10gLyAxMDAsIG1bNF0pIC8vIGhzbGEoMTIwLCA1MCUsIDUwJSwgMSlcbiAgICAgIDogbmFtZWQuaGFzT3duUHJvcGVydHkoZm9ybWF0KSA/IHJnYm4obmFtZWRbZm9ybWF0XSkgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgICAgIDogZm9ybWF0ID09PSBcInRyYW5zcGFyZW50XCIgPyBuZXcgUmdiKE5hTiwgTmFOLCBOYU4sIDApXG4gICAgICA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIHJnYm4obikge1xuICByZXR1cm4gbmV3IFJnYihuID4+IDE2ICYgMHhmZiwgbiA+PiA4ICYgMHhmZiwgbiAmIDB4ZmYsIDEpO1xufVxuXG5mdW5jdGlvbiByZ2JhKHIsIGcsIGIsIGEpIHtcbiAgaWYgKGEgPD0gMCkgciA9IGcgPSBiID0gTmFOO1xuICByZXR1cm4gbmV3IFJnYihyLCBnLCBiLCBhKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJnYkNvbnZlcnQobykge1xuICBpZiAoIShvIGluc3RhbmNlb2YgQ29sb3IpKSBvID0gY29sb3Iobyk7XG4gIGlmICghbykgcmV0dXJuIG5ldyBSZ2I7XG4gIG8gPSBvLnJnYigpO1xuICByZXR1cm4gbmV3IFJnYihvLnIsIG8uZywgby5iLCBvLm9wYWNpdHkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmdiKHIsIGcsIGIsIG9wYWNpdHkpIHtcbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPT09IDEgPyByZ2JDb252ZXJ0KHIpIDogbmV3IFJnYihyLCBnLCBiLCBvcGFjaXR5ID09IG51bGwgPyAxIDogb3BhY2l0eSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBSZ2IociwgZywgYiwgb3BhY2l0eSkge1xuICB0aGlzLnIgPSArcjtcbiAgdGhpcy5nID0gK2c7XG4gIHRoaXMuYiA9ICtiO1xuICB0aGlzLm9wYWNpdHkgPSArb3BhY2l0eTtcbn1cblxuZGVmaW5lKFJnYiwgcmdiLCBleHRlbmQoQ29sb3IsIHtcbiAgYnJpZ2h0ZXI6IGZ1bmN0aW9uKGspIHtcbiAgICBrID0gayA9PSBudWxsID8gYnJpZ2h0ZXIgOiBNYXRoLnBvdyhicmlnaHRlciwgayk7XG4gICAgcmV0dXJuIG5ldyBSZ2IodGhpcy5yICogaywgdGhpcy5nICogaywgdGhpcy5iICogaywgdGhpcy5vcGFjaXR5KTtcbiAgfSxcbiAgZGFya2VyOiBmdW5jdGlvbihrKSB7XG4gICAgayA9IGsgPT0gbnVsbCA/IGRhcmtlciA6IE1hdGgucG93KGRhcmtlciwgayk7XG4gICAgcmV0dXJuIG5ldyBSZ2IodGhpcy5yICogaywgdGhpcy5nICogaywgdGhpcy5iICogaywgdGhpcy5vcGFjaXR5KTtcbiAgfSxcbiAgcmdiOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfSxcbiAgZGlzcGxheWFibGU6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAoLTAuNSA8PSB0aGlzLnIgJiYgdGhpcy5yIDwgMjU1LjUpXG4gICAgICAgICYmICgtMC41IDw9IHRoaXMuZyAmJiB0aGlzLmcgPCAyNTUuNSlcbiAgICAgICAgJiYgKC0wLjUgPD0gdGhpcy5iICYmIHRoaXMuYiA8IDI1NS41KVxuICAgICAgICAmJiAoMCA8PSB0aGlzLm9wYWNpdHkgJiYgdGhpcy5vcGFjaXR5IDw9IDEpO1xuICB9LFxuICBoZXg6IHJnYl9mb3JtYXRIZXgsIC8vIERlcHJlY2F0ZWQhIFVzZSBjb2xvci5mb3JtYXRIZXguXG4gIGZvcm1hdEhleDogcmdiX2Zvcm1hdEhleCxcbiAgZm9ybWF0UmdiOiByZ2JfZm9ybWF0UmdiLFxuICB0b1N0cmluZzogcmdiX2Zvcm1hdFJnYlxufSkpO1xuXG5mdW5jdGlvbiByZ2JfZm9ybWF0SGV4KCkge1xuICByZXR1cm4gXCIjXCIgKyBoZXgodGhpcy5yKSArIGhleCh0aGlzLmcpICsgaGV4KHRoaXMuYik7XG59XG5cbmZ1bmN0aW9uIHJnYl9mb3JtYXRSZ2IoKSB7XG4gIHZhciBhID0gdGhpcy5vcGFjaXR5OyBhID0gaXNOYU4oYSkgPyAxIDogTWF0aC5tYXgoMCwgTWF0aC5taW4oMSwgYSkpO1xuICByZXR1cm4gKGEgPT09IDEgPyBcInJnYihcIiA6IFwicmdiYShcIilcbiAgICAgICsgTWF0aC5tYXgoMCwgTWF0aC5taW4oMjU1LCBNYXRoLnJvdW5kKHRoaXMucikgfHwgMCkpICsgXCIsIFwiXG4gICAgICArIE1hdGgubWF4KDAsIE1hdGgubWluKDI1NSwgTWF0aC5yb3VuZCh0aGlzLmcpIHx8IDApKSArIFwiLCBcIlxuICAgICAgKyBNYXRoLm1heCgwLCBNYXRoLm1pbigyNTUsIE1hdGgucm91bmQodGhpcy5iKSB8fCAwKSlcbiAgICAgICsgKGEgPT09IDEgPyBcIilcIiA6IFwiLCBcIiArIGEgKyBcIilcIik7XG59XG5cbmZ1bmN0aW9uIGhleCh2YWx1ZSkge1xuICB2YWx1ZSA9IE1hdGgubWF4KDAsIE1hdGgubWluKDI1NSwgTWF0aC5yb3VuZCh2YWx1ZSkgfHwgMCkpO1xuICByZXR1cm4gKHZhbHVlIDwgMTYgPyBcIjBcIiA6IFwiXCIpICsgdmFsdWUudG9TdHJpbmcoMTYpO1xufVxuXG5mdW5jdGlvbiBoc2xhKGgsIHMsIGwsIGEpIHtcbiAgaWYgKGEgPD0gMCkgaCA9IHMgPSBsID0gTmFOO1xuICBlbHNlIGlmIChsIDw9IDAgfHwgbCA+PSAxKSBoID0gcyA9IE5hTjtcbiAgZWxzZSBpZiAocyA8PSAwKSBoID0gTmFOO1xuICByZXR1cm4gbmV3IEhzbChoLCBzLCBsLCBhKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhzbENvbnZlcnQobykge1xuICBpZiAobyBpbnN0YW5jZW9mIEhzbCkgcmV0dXJuIG5ldyBIc2woby5oLCBvLnMsIG8ubCwgby5vcGFjaXR5KTtcbiAgaWYgKCEobyBpbnN0YW5jZW9mIENvbG9yKSkgbyA9IGNvbG9yKG8pO1xuICBpZiAoIW8pIHJldHVybiBuZXcgSHNsO1xuICBpZiAobyBpbnN0YW5jZW9mIEhzbCkgcmV0dXJuIG87XG4gIG8gPSBvLnJnYigpO1xuICB2YXIgciA9IG8uciAvIDI1NSxcbiAgICAgIGcgPSBvLmcgLyAyNTUsXG4gICAgICBiID0gby5iIC8gMjU1LFxuICAgICAgbWluID0gTWF0aC5taW4ociwgZywgYiksXG4gICAgICBtYXggPSBNYXRoLm1heChyLCBnLCBiKSxcbiAgICAgIGggPSBOYU4sXG4gICAgICBzID0gbWF4IC0gbWluLFxuICAgICAgbCA9IChtYXggKyBtaW4pIC8gMjtcbiAgaWYgKHMpIHtcbiAgICBpZiAociA9PT0gbWF4KSBoID0gKGcgLSBiKSAvIHMgKyAoZyA8IGIpICogNjtcbiAgICBlbHNlIGlmIChnID09PSBtYXgpIGggPSAoYiAtIHIpIC8gcyArIDI7XG4gICAgZWxzZSBoID0gKHIgLSBnKSAvIHMgKyA0O1xuICAgIHMgLz0gbCA8IDAuNSA/IG1heCArIG1pbiA6IDIgLSBtYXggLSBtaW47XG4gICAgaCAqPSA2MDtcbiAgfSBlbHNlIHtcbiAgICBzID0gbCA+IDAgJiYgbCA8IDEgPyAwIDogaDtcbiAgfVxuICByZXR1cm4gbmV3IEhzbChoLCBzLCBsLCBvLm9wYWNpdHkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaHNsKGgsIHMsIGwsIG9wYWNpdHkpIHtcbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPT09IDEgPyBoc2xDb252ZXJ0KGgpIDogbmV3IEhzbChoLCBzLCBsLCBvcGFjaXR5ID09IG51bGwgPyAxIDogb3BhY2l0eSk7XG59XG5cbmZ1bmN0aW9uIEhzbChoLCBzLCBsLCBvcGFjaXR5KSB7XG4gIHRoaXMuaCA9ICtoO1xuICB0aGlzLnMgPSArcztcbiAgdGhpcy5sID0gK2w7XG4gIHRoaXMub3BhY2l0eSA9ICtvcGFjaXR5O1xufVxuXG5kZWZpbmUoSHNsLCBoc2wsIGV4dGVuZChDb2xvciwge1xuICBicmlnaHRlcjogZnVuY3Rpb24oaykge1xuICAgIGsgPSBrID09IG51bGwgPyBicmlnaHRlciA6IE1hdGgucG93KGJyaWdodGVyLCBrKTtcbiAgICByZXR1cm4gbmV3IEhzbCh0aGlzLmgsIHRoaXMucywgdGhpcy5sICogaywgdGhpcy5vcGFjaXR5KTtcbiAgfSxcbiAgZGFya2VyOiBmdW5jdGlvbihrKSB7XG4gICAgayA9IGsgPT0gbnVsbCA/IGRhcmtlciA6IE1hdGgucG93KGRhcmtlciwgayk7XG4gICAgcmV0dXJuIG5ldyBIc2wodGhpcy5oLCB0aGlzLnMsIHRoaXMubCAqIGssIHRoaXMub3BhY2l0eSk7XG4gIH0sXG4gIHJnYjogZnVuY3Rpb24oKSB7XG4gICAgdmFyIGggPSB0aGlzLmggJSAzNjAgKyAodGhpcy5oIDwgMCkgKiAzNjAsXG4gICAgICAgIHMgPSBpc05hTihoKSB8fCBpc05hTih0aGlzLnMpID8gMCA6IHRoaXMucyxcbiAgICAgICAgbCA9IHRoaXMubCxcbiAgICAgICAgbTIgPSBsICsgKGwgPCAwLjUgPyBsIDogMSAtIGwpICogcyxcbiAgICAgICAgbTEgPSAyICogbCAtIG0yO1xuICAgIHJldHVybiBuZXcgUmdiKFxuICAgICAgaHNsMnJnYihoID49IDI0MCA/IGggLSAyNDAgOiBoICsgMTIwLCBtMSwgbTIpLFxuICAgICAgaHNsMnJnYihoLCBtMSwgbTIpLFxuICAgICAgaHNsMnJnYihoIDwgMTIwID8gaCArIDI0MCA6IGggLSAxMjAsIG0xLCBtMiksXG4gICAgICB0aGlzLm9wYWNpdHlcbiAgICApO1xuICB9LFxuICBkaXNwbGF5YWJsZTogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuICgwIDw9IHRoaXMucyAmJiB0aGlzLnMgPD0gMSB8fCBpc05hTih0aGlzLnMpKVxuICAgICAgICAmJiAoMCA8PSB0aGlzLmwgJiYgdGhpcy5sIDw9IDEpXG4gICAgICAgICYmICgwIDw9IHRoaXMub3BhY2l0eSAmJiB0aGlzLm9wYWNpdHkgPD0gMSk7XG4gIH0sXG4gIGZvcm1hdEhzbDogZnVuY3Rpb24oKSB7XG4gICAgdmFyIGEgPSB0aGlzLm9wYWNpdHk7IGEgPSBpc05hTihhKSA/IDEgOiBNYXRoLm1heCgwLCBNYXRoLm1pbigxLCBhKSk7XG4gICAgcmV0dXJuIChhID09PSAxID8gXCJoc2woXCIgOiBcImhzbGEoXCIpXG4gICAgICAgICsgKHRoaXMuaCB8fCAwKSArIFwiLCBcIlxuICAgICAgICArICh0aGlzLnMgfHwgMCkgKiAxMDAgKyBcIiUsIFwiXG4gICAgICAgICsgKHRoaXMubCB8fCAwKSAqIDEwMCArIFwiJVwiXG4gICAgICAgICsgKGEgPT09IDEgPyBcIilcIiA6IFwiLCBcIiArIGEgKyBcIilcIik7XG4gIH1cbn0pKTtcblxuLyogRnJvbSBGdkQgMTMuMzcsIENTUyBDb2xvciBNb2R1bGUgTGV2ZWwgMyAqL1xuZnVuY3Rpb24gaHNsMnJnYihoLCBtMSwgbTIpIHtcbiAgcmV0dXJuIChoIDwgNjAgPyBtMSArIChtMiAtIG0xKSAqIGggLyA2MFxuICAgICAgOiBoIDwgMTgwID8gbTJcbiAgICAgIDogaCA8IDI0MCA/IG0xICsgKG0yIC0gbTEpICogKDI0MCAtIGgpIC8gNjBcbiAgICAgIDogbTEpICogMjU1O1xufVxuIiwgImV4cG9ydCBjb25zdCByYWRpYW5zID0gTWF0aC5QSSAvIDE4MDtcbmV4cG9ydCBjb25zdCBkZWdyZWVzID0gMTgwIC8gTWF0aC5QSTtcbiIsICJpbXBvcnQgZGVmaW5lLCB7ZXh0ZW5kfSBmcm9tIFwiLi9kZWZpbmUuanNcIjtcbmltcG9ydCB7Q29sb3IsIHJnYkNvbnZlcnQsIFJnYiwgZGFya2VyLCBicmlnaHRlcn0gZnJvbSBcIi4vY29sb3IuanNcIjtcbmltcG9ydCB7ZGVncmVlcywgcmFkaWFuc30gZnJvbSBcIi4vbWF0aC5qc1wiO1xuXG52YXIgQSA9IC0wLjE0ODYxLFxuICAgIEIgPSArMS43ODI3NyxcbiAgICBDID0gLTAuMjkyMjcsXG4gICAgRCA9IC0wLjkwNjQ5LFxuICAgIEUgPSArMS45NzI5NCxcbiAgICBFRCA9IEUgKiBELFxuICAgIEVCID0gRSAqIEIsXG4gICAgQkNfREEgPSBCICogQyAtIEQgKiBBO1xuXG5mdW5jdGlvbiBjdWJlaGVsaXhDb252ZXJ0KG8pIHtcbiAgaWYgKG8gaW5zdGFuY2VvZiBDdWJlaGVsaXgpIHJldHVybiBuZXcgQ3ViZWhlbGl4KG8uaCwgby5zLCBvLmwsIG8ub3BhY2l0eSk7XG4gIGlmICghKG8gaW5zdGFuY2VvZiBSZ2IpKSBvID0gcmdiQ29udmVydChvKTtcbiAgdmFyIHIgPSBvLnIgLyAyNTUsXG4gICAgICBnID0gby5nIC8gMjU1LFxuICAgICAgYiA9IG8uYiAvIDI1NSxcbiAgICAgIGwgPSAoQkNfREEgKiBiICsgRUQgKiByIC0gRUIgKiBnKSAvIChCQ19EQSArIEVEIC0gRUIpLFxuICAgICAgYmwgPSBiIC0gbCxcbiAgICAgIGsgPSAoRSAqIChnIC0gbCkgLSBDICogYmwpIC8gRCxcbiAgICAgIHMgPSBNYXRoLnNxcnQoayAqIGsgKyBibCAqIGJsKSAvIChFICogbCAqICgxIC0gbCkpLCAvLyBOYU4gaWYgbD0wIG9yIGw9MVxuICAgICAgaCA9IHMgPyBNYXRoLmF0YW4yKGssIGJsKSAqIGRlZ3JlZXMgLSAxMjAgOiBOYU47XG4gIHJldHVybiBuZXcgQ3ViZWhlbGl4KGggPCAwID8gaCArIDM2MCA6IGgsIHMsIGwsIG8ub3BhY2l0eSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGN1YmVoZWxpeChoLCBzLCBsLCBvcGFjaXR5KSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID09PSAxID8gY3ViZWhlbGl4Q29udmVydChoKSA6IG5ldyBDdWJlaGVsaXgoaCwgcywgbCwgb3BhY2l0eSA9PSBudWxsID8gMSA6IG9wYWNpdHkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ3ViZWhlbGl4KGgsIHMsIGwsIG9wYWNpdHkpIHtcbiAgdGhpcy5oID0gK2g7XG4gIHRoaXMucyA9ICtzO1xuICB0aGlzLmwgPSArbDtcbiAgdGhpcy5vcGFjaXR5ID0gK29wYWNpdHk7XG59XG5cbmRlZmluZShDdWJlaGVsaXgsIGN1YmVoZWxpeCwgZXh0ZW5kKENvbG9yLCB7XG4gIGJyaWdodGVyOiBmdW5jdGlvbihrKSB7XG4gICAgayA9IGsgPT0gbnVsbCA/IGJyaWdodGVyIDogTWF0aC5wb3coYnJpZ2h0ZXIsIGspO1xuICAgIHJldHVybiBuZXcgQ3ViZWhlbGl4KHRoaXMuaCwgdGhpcy5zLCB0aGlzLmwgKiBrLCB0aGlzLm9wYWNpdHkpO1xuICB9LFxuICBkYXJrZXI6IGZ1bmN0aW9uKGspIHtcbiAgICBrID0gayA9PSBudWxsID8gZGFya2VyIDogTWF0aC5wb3coZGFya2VyLCBrKTtcbiAgICByZXR1cm4gbmV3IEN1YmVoZWxpeCh0aGlzLmgsIHRoaXMucywgdGhpcy5sICogaywgdGhpcy5vcGFjaXR5KTtcbiAgfSxcbiAgcmdiOiBmdW5jdGlvbigpIHtcbiAgICB2YXIgaCA9IGlzTmFOKHRoaXMuaCkgPyAwIDogKHRoaXMuaCArIDEyMCkgKiByYWRpYW5zLFxuICAgICAgICBsID0gK3RoaXMubCxcbiAgICAgICAgYSA9IGlzTmFOKHRoaXMucykgPyAwIDogdGhpcy5zICogbCAqICgxIC0gbCksXG4gICAgICAgIGNvc2ggPSBNYXRoLmNvcyhoKSxcbiAgICAgICAgc2luaCA9IE1hdGguc2luKGgpO1xuICAgIHJldHVybiBuZXcgUmdiKFxuICAgICAgMjU1ICogKGwgKyBhICogKEEgKiBjb3NoICsgQiAqIHNpbmgpKSxcbiAgICAgIDI1NSAqIChsICsgYSAqIChDICogY29zaCArIEQgKiBzaW5oKSksXG4gICAgICAyNTUgKiAobCArIGEgKiAoRSAqIGNvc2gpKSxcbiAgICAgIHRoaXMub3BhY2l0eVxuICAgICk7XG4gIH1cbn0pKTtcbiIsICJleHBvcnQgZnVuY3Rpb24gYmFzaXModDEsIHYwLCB2MSwgdjIsIHYzKSB7XG4gIHZhciB0MiA9IHQxICogdDEsIHQzID0gdDIgKiB0MTtcbiAgcmV0dXJuICgoMSAtIDMgKiB0MSArIDMgKiB0MiAtIHQzKSAqIHYwXG4gICAgICArICg0IC0gNiAqIHQyICsgMyAqIHQzKSAqIHYxXG4gICAgICArICgxICsgMyAqIHQxICsgMyAqIHQyIC0gMyAqIHQzKSAqIHYyXG4gICAgICArIHQzICogdjMpIC8gNjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odmFsdWVzKSB7XG4gIHZhciBuID0gdmFsdWVzLmxlbmd0aCAtIDE7XG4gIHJldHVybiBmdW5jdGlvbih0KSB7XG4gICAgdmFyIGkgPSB0IDw9IDAgPyAodCA9IDApIDogdCA+PSAxID8gKHQgPSAxLCBuIC0gMSkgOiBNYXRoLmZsb29yKHQgKiBuKSxcbiAgICAgICAgdjEgPSB2YWx1ZXNbaV0sXG4gICAgICAgIHYyID0gdmFsdWVzW2kgKyAxXSxcbiAgICAgICAgdjAgPSBpID4gMCA/IHZhbHVlc1tpIC0gMV0gOiAyICogdjEgLSB2MixcbiAgICAgICAgdjMgPSBpIDwgbiAtIDEgPyB2YWx1ZXNbaSArIDJdIDogMiAqIHYyIC0gdjE7XG4gICAgcmV0dXJuIGJhc2lzKCh0IC0gaSAvIG4pICogbiwgdjAsIHYxLCB2MiwgdjMpO1xuICB9O1xufVxuIiwgImltcG9ydCB7YmFzaXN9IGZyb20gXCIuL2Jhc2lzLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHZhbHVlcykge1xuICB2YXIgbiA9IHZhbHVlcy5sZW5ndGg7XG4gIHJldHVybiBmdW5jdGlvbih0KSB7XG4gICAgdmFyIGkgPSBNYXRoLmZsb29yKCgodCAlPSAxKSA8IDAgPyArK3QgOiB0KSAqIG4pLFxuICAgICAgICB2MCA9IHZhbHVlc1soaSArIG4gLSAxKSAlIG5dLFxuICAgICAgICB2MSA9IHZhbHVlc1tpICUgbl0sXG4gICAgICAgIHYyID0gdmFsdWVzWyhpICsgMSkgJSBuXSxcbiAgICAgICAgdjMgPSB2YWx1ZXNbKGkgKyAyKSAlIG5dO1xuICAgIHJldHVybiBiYXNpcygodCAtIGkgLyBuKSAqIG4sIHYwLCB2MSwgdjIsIHYzKTtcbiAgfTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCB4ID0+ICgpID0+IHg7XG4iLCAiaW1wb3J0IGNvbnN0YW50IGZyb20gXCIuL2NvbnN0YW50LmpzXCI7XG5cbmZ1bmN0aW9uIGxpbmVhcihhLCBkKSB7XG4gIHJldHVybiBmdW5jdGlvbih0KSB7XG4gICAgcmV0dXJuIGEgKyB0ICogZDtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZXhwb25lbnRpYWwoYSwgYiwgeSkge1xuICByZXR1cm4gYSA9IE1hdGgucG93KGEsIHkpLCBiID0gTWF0aC5wb3coYiwgeSkgLSBhLCB5ID0gMSAvIHksIGZ1bmN0aW9uKHQpIHtcbiAgICByZXR1cm4gTWF0aC5wb3coYSArIHQgKiBiLCB5KTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh1ZShhLCBiKSB7XG4gIHZhciBkID0gYiAtIGE7XG4gIHJldHVybiBkID8gbGluZWFyKGEsIGQgPiAxODAgfHwgZCA8IC0xODAgPyBkIC0gMzYwICogTWF0aC5yb3VuZChkIC8gMzYwKSA6IGQpIDogY29uc3RhbnQoaXNOYU4oYSkgPyBiIDogYSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnYW1tYSh5KSB7XG4gIHJldHVybiAoeSA9ICt5KSA9PT0gMSA/IG5vZ2FtbWEgOiBmdW5jdGlvbihhLCBiKSB7XG4gICAgcmV0dXJuIGIgLSBhID8gZXhwb25lbnRpYWwoYSwgYiwgeSkgOiBjb25zdGFudChpc05hTihhKSA/IGIgOiBhKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbm9nYW1tYShhLCBiKSB7XG4gIHZhciBkID0gYiAtIGE7XG4gIHJldHVybiBkID8gbGluZWFyKGEsIGQpIDogY29uc3RhbnQoaXNOYU4oYSkgPyBiIDogYSk7XG59XG4iLCAiaW1wb3J0IHtyZ2IgYXMgY29sb3JSZ2J9IGZyb20gXCJkMy1jb2xvclwiO1xuaW1wb3J0IGJhc2lzIGZyb20gXCIuL2Jhc2lzLmpzXCI7XG5pbXBvcnQgYmFzaXNDbG9zZWQgZnJvbSBcIi4vYmFzaXNDbG9zZWQuanNcIjtcbmltcG9ydCBub2dhbW1hLCB7Z2FtbWF9IGZyb20gXCIuL2NvbG9yLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IChmdW5jdGlvbiByZ2JHYW1tYSh5KSB7XG4gIHZhciBjb2xvciA9IGdhbW1hKHkpO1xuXG4gIGZ1bmN0aW9uIHJnYihzdGFydCwgZW5kKSB7XG4gICAgdmFyIHIgPSBjb2xvcigoc3RhcnQgPSBjb2xvclJnYihzdGFydCkpLnIsIChlbmQgPSBjb2xvclJnYihlbmQpKS5yKSxcbiAgICAgICAgZyA9IGNvbG9yKHN0YXJ0LmcsIGVuZC5nKSxcbiAgICAgICAgYiA9IGNvbG9yKHN0YXJ0LmIsIGVuZC5iKSxcbiAgICAgICAgb3BhY2l0eSA9IG5vZ2FtbWEoc3RhcnQub3BhY2l0eSwgZW5kLm9wYWNpdHkpO1xuICAgIHJldHVybiBmdW5jdGlvbih0KSB7XG4gICAgICBzdGFydC5yID0gcih0KTtcbiAgICAgIHN0YXJ0LmcgPSBnKHQpO1xuICAgICAgc3RhcnQuYiA9IGIodCk7XG4gICAgICBzdGFydC5vcGFjaXR5ID0gb3BhY2l0eSh0KTtcbiAgICAgIHJldHVybiBzdGFydCArIFwiXCI7XG4gICAgfTtcbiAgfVxuXG4gIHJnYi5nYW1tYSA9IHJnYkdhbW1hO1xuXG4gIHJldHVybiByZ2I7XG59KSgxKTtcblxuZnVuY3Rpb24gcmdiU3BsaW5lKHNwbGluZSkge1xuICByZXR1cm4gZnVuY3Rpb24oY29sb3JzKSB7XG4gICAgdmFyIG4gPSBjb2xvcnMubGVuZ3RoLFxuICAgICAgICByID0gbmV3IEFycmF5KG4pLFxuICAgICAgICBnID0gbmV3IEFycmF5KG4pLFxuICAgICAgICBiID0gbmV3IEFycmF5KG4pLFxuICAgICAgICBpLCBjb2xvcjtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBjb2xvciA9IGNvbG9yUmdiKGNvbG9yc1tpXSk7XG4gICAgICByW2ldID0gY29sb3IuciB8fCAwO1xuICAgICAgZ1tpXSA9IGNvbG9yLmcgfHwgMDtcbiAgICAgIGJbaV0gPSBjb2xvci5iIHx8IDA7XG4gICAgfVxuICAgIHIgPSBzcGxpbmUocik7XG4gICAgZyA9IHNwbGluZShnKTtcbiAgICBiID0gc3BsaW5lKGIpO1xuICAgIGNvbG9yLm9wYWNpdHkgPSAxO1xuICAgIHJldHVybiBmdW5jdGlvbih0KSB7XG4gICAgICBjb2xvci5yID0gcih0KTtcbiAgICAgIGNvbG9yLmcgPSBnKHQpO1xuICAgICAgY29sb3IuYiA9IGIodCk7XG4gICAgICByZXR1cm4gY29sb3IgKyBcIlwiO1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCB2YXIgcmdiQmFzaXMgPSByZ2JTcGxpbmUoYmFzaXMpO1xuZXhwb3J0IHZhciByZ2JCYXNpc0Nsb3NlZCA9IHJnYlNwbGluZShiYXNpc0Nsb3NlZCk7XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oYSwgYikge1xuICBpZiAoIWIpIGIgPSBbXTtcbiAgdmFyIG4gPSBhID8gTWF0aC5taW4oYi5sZW5ndGgsIGEubGVuZ3RoKSA6IDAsXG4gICAgICBjID0gYi5zbGljZSgpLFxuICAgICAgaTtcbiAgcmV0dXJuIGZ1bmN0aW9uKHQpIHtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSBjW2ldID0gYVtpXSAqICgxIC0gdCkgKyBiW2ldICogdDtcbiAgICByZXR1cm4gYztcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyQXJyYXkoeCkge1xuICByZXR1cm4gQXJyYXlCdWZmZXIuaXNWaWV3KHgpICYmICEoeCBpbnN0YW5jZW9mIERhdGFWaWV3KTtcbn1cbiIsICJpbXBvcnQgdmFsdWUgZnJvbSBcIi4vdmFsdWUuanNcIjtcbmltcG9ydCBudW1iZXJBcnJheSwge2lzTnVtYmVyQXJyYXl9IGZyb20gXCIuL251bWJlckFycmF5LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGEsIGIpIHtcbiAgcmV0dXJuIChpc051bWJlckFycmF5KGIpID8gbnVtYmVyQXJyYXkgOiBnZW5lcmljQXJyYXkpKGEsIGIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJpY0FycmF5KGEsIGIpIHtcbiAgdmFyIG5iID0gYiA/IGIubGVuZ3RoIDogMCxcbiAgICAgIG5hID0gYSA/IE1hdGgubWluKG5iLCBhLmxlbmd0aCkgOiAwLFxuICAgICAgeCA9IG5ldyBBcnJheShuYSksXG4gICAgICBjID0gbmV3IEFycmF5KG5iKSxcbiAgICAgIGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IG5hOyArK2kpIHhbaV0gPSB2YWx1ZShhW2ldLCBiW2ldKTtcbiAgZm9yICg7IGkgPCBuYjsgKytpKSBjW2ldID0gYltpXTtcblxuICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgIGZvciAoaSA9IDA7IGkgPCBuYTsgKytpKSBjW2ldID0geFtpXSh0KTtcbiAgICByZXR1cm4gYztcbiAgfTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihhLCBiKSB7XG4gIHZhciBkID0gbmV3IERhdGU7XG4gIHJldHVybiBhID0gK2EsIGIgPSArYiwgZnVuY3Rpb24odCkge1xuICAgIHJldHVybiBkLnNldFRpbWUoYSAqICgxIC0gdCkgKyBiICogdCksIGQ7XG4gIH07XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oYSwgYikge1xuICByZXR1cm4gYSA9ICthLCBiID0gK2IsIGZ1bmN0aW9uKHQpIHtcbiAgICByZXR1cm4gYSAqICgxIC0gdCkgKyBiICogdDtcbiAgfTtcbn1cbiIsICJpbXBvcnQgdmFsdWUgZnJvbSBcIi4vdmFsdWUuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oYSwgYikge1xuICB2YXIgaSA9IHt9LFxuICAgICAgYyA9IHt9LFxuICAgICAgaztcblxuICBpZiAoYSA9PT0gbnVsbCB8fCB0eXBlb2YgYSAhPT0gXCJvYmplY3RcIikgYSA9IHt9O1xuICBpZiAoYiA9PT0gbnVsbCB8fCB0eXBlb2YgYiAhPT0gXCJvYmplY3RcIikgYiA9IHt9O1xuXG4gIGZvciAoayBpbiBiKSB7XG4gICAgaWYgKGsgaW4gYSkge1xuICAgICAgaVtrXSA9IHZhbHVlKGFba10sIGJba10pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjW2tdID0gYltrXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgIGZvciAoayBpbiBpKSBjW2tdID0gaVtrXSh0KTtcbiAgICByZXR1cm4gYztcbiAgfTtcbn1cbiIsICJpbXBvcnQgbnVtYmVyIGZyb20gXCIuL251bWJlci5qc1wiO1xuXG52YXIgcmVBID0gL1stK10/KD86XFxkK1xcLj9cXGQqfFxcLj9cXGQrKSg/OltlRV1bLStdP1xcZCspPy9nLFxuICAgIHJlQiA9IG5ldyBSZWdFeHAocmVBLnNvdXJjZSwgXCJnXCIpO1xuXG5mdW5jdGlvbiB6ZXJvKGIpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBiO1xuICB9O1xufVxuXG5mdW5jdGlvbiBvbmUoYikge1xuICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgIHJldHVybiBiKHQpICsgXCJcIjtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oYSwgYikge1xuICB2YXIgYmkgPSByZUEubGFzdEluZGV4ID0gcmVCLmxhc3RJbmRleCA9IDAsIC8vIHNjYW4gaW5kZXggZm9yIG5leHQgbnVtYmVyIGluIGJcbiAgICAgIGFtLCAvLyBjdXJyZW50IG1hdGNoIGluIGFcbiAgICAgIGJtLCAvLyBjdXJyZW50IG1hdGNoIGluIGJcbiAgICAgIGJzLCAvLyBzdHJpbmcgcHJlY2VkaW5nIGN1cnJlbnQgbnVtYmVyIGluIGIsIGlmIGFueVxuICAgICAgaSA9IC0xLCAvLyBpbmRleCBpbiBzXG4gICAgICBzID0gW10sIC8vIHN0cmluZyBjb25zdGFudHMgYW5kIHBsYWNlaG9sZGVyc1xuICAgICAgcSA9IFtdOyAvLyBudW1iZXIgaW50ZXJwb2xhdG9yc1xuXG4gIC8vIENvZXJjZSBpbnB1dHMgdG8gc3RyaW5ncy5cbiAgYSA9IGEgKyBcIlwiLCBiID0gYiArIFwiXCI7XG5cbiAgLy8gSW50ZXJwb2xhdGUgcGFpcnMgb2YgbnVtYmVycyBpbiBhICYgYi5cbiAgd2hpbGUgKChhbSA9IHJlQS5leGVjKGEpKVxuICAgICAgJiYgKGJtID0gcmVCLmV4ZWMoYikpKSB7XG4gICAgaWYgKChicyA9IGJtLmluZGV4KSA+IGJpKSB7IC8vIGEgc3RyaW5nIHByZWNlZGVzIHRoZSBuZXh0IG51bWJlciBpbiBiXG4gICAgICBicyA9IGIuc2xpY2UoYmksIGJzKTtcbiAgICAgIGlmIChzW2ldKSBzW2ldICs9IGJzOyAvLyBjb2FsZXNjZSB3aXRoIHByZXZpb3VzIHN0cmluZ1xuICAgICAgZWxzZSBzWysraV0gPSBicztcbiAgICB9XG4gICAgaWYgKChhbSA9IGFtWzBdKSA9PT0gKGJtID0gYm1bMF0pKSB7IC8vIG51bWJlcnMgaW4gYSAmIGIgbWF0Y2hcbiAgICAgIGlmIChzW2ldKSBzW2ldICs9IGJtOyAvLyBjb2FsZXNjZSB3aXRoIHByZXZpb3VzIHN0cmluZ1xuICAgICAgZWxzZSBzWysraV0gPSBibTtcbiAgICB9IGVsc2UgeyAvLyBpbnRlcnBvbGF0ZSBub24tbWF0Y2hpbmcgbnVtYmVyc1xuICAgICAgc1srK2ldID0gbnVsbDtcbiAgICAgIHEucHVzaCh7aTogaSwgeDogbnVtYmVyKGFtLCBibSl9KTtcbiAgICB9XG4gICAgYmkgPSByZUIubGFzdEluZGV4O1xuICB9XG5cbiAgLy8gQWRkIHJlbWFpbnMgb2YgYi5cbiAgaWYgKGJpIDwgYi5sZW5ndGgpIHtcbiAgICBicyA9IGIuc2xpY2UoYmkpO1xuICAgIGlmIChzW2ldKSBzW2ldICs9IGJzOyAvLyBjb2FsZXNjZSB3aXRoIHByZXZpb3VzIHN0cmluZ1xuICAgIGVsc2Ugc1srK2ldID0gYnM7XG4gIH1cblxuICAvLyBTcGVjaWFsIG9wdGltaXphdGlvbiBmb3Igb25seSBhIHNpbmdsZSBtYXRjaC5cbiAgLy8gT3RoZXJ3aXNlLCBpbnRlcnBvbGF0ZSBlYWNoIG9mIHRoZSBudW1iZXJzIGFuZCByZWpvaW4gdGhlIHN0cmluZy5cbiAgcmV0dXJuIHMubGVuZ3RoIDwgMiA/IChxWzBdXG4gICAgICA/IG9uZShxWzBdLngpXG4gICAgICA6IHplcm8oYikpXG4gICAgICA6IChiID0gcS5sZW5ndGgsIGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMCwgbzsgaSA8IGI7ICsraSkgc1sobyA9IHFbaV0pLmldID0gby54KHQpO1xuICAgICAgICAgIHJldHVybiBzLmpvaW4oXCJcIik7XG4gICAgICAgIH0pO1xufVxuIiwgImltcG9ydCB7Y29sb3J9IGZyb20gXCJkMy1jb2xvclwiO1xuaW1wb3J0IHJnYiBmcm9tIFwiLi9yZ2IuanNcIjtcbmltcG9ydCB7Z2VuZXJpY0FycmF5fSBmcm9tIFwiLi9hcnJheS5qc1wiO1xuaW1wb3J0IGRhdGUgZnJvbSBcIi4vZGF0ZS5qc1wiO1xuaW1wb3J0IG51bWJlciBmcm9tIFwiLi9udW1iZXIuanNcIjtcbmltcG9ydCBvYmplY3QgZnJvbSBcIi4vb2JqZWN0LmpzXCI7XG5pbXBvcnQgc3RyaW5nIGZyb20gXCIuL3N0cmluZy5qc1wiO1xuaW1wb3J0IGNvbnN0YW50IGZyb20gXCIuL2NvbnN0YW50LmpzXCI7XG5pbXBvcnQgbnVtYmVyQXJyYXksIHtpc051bWJlckFycmF5fSBmcm9tIFwiLi9udW1iZXJBcnJheS5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihhLCBiKSB7XG4gIHZhciB0ID0gdHlwZW9mIGIsIGM7XG4gIHJldHVybiBiID09IG51bGwgfHwgdCA9PT0gXCJib29sZWFuXCIgPyBjb25zdGFudChiKVxuICAgICAgOiAodCA9PT0gXCJudW1iZXJcIiA/IG51bWJlclxuICAgICAgOiB0ID09PSBcInN0cmluZ1wiID8gKChjID0gY29sb3IoYikpID8gKGIgPSBjLCByZ2IpIDogc3RyaW5nKVxuICAgICAgOiBiIGluc3RhbmNlb2YgY29sb3IgPyByZ2JcbiAgICAgIDogYiBpbnN0YW5jZW9mIERhdGUgPyBkYXRlXG4gICAgICA6IGlzTnVtYmVyQXJyYXkoYikgPyBudW1iZXJBcnJheVxuICAgICAgOiBBcnJheS5pc0FycmF5KGIpID8gZ2VuZXJpY0FycmF5XG4gICAgICA6IHR5cGVvZiBiLnZhbHVlT2YgIT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgYi50b1N0cmluZyAhPT0gXCJmdW5jdGlvblwiIHx8IGlzTmFOKGIpID8gb2JqZWN0XG4gICAgICA6IG51bWJlcikoYSwgYik7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oYSwgYikge1xuICByZXR1cm4gYSA9ICthLCBiID0gK2IsIGZ1bmN0aW9uKHQpIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChhICogKDEgLSB0KSArIGIgKiB0KTtcbiAgfTtcbn1cbiIsICJ2YXIgZGVncmVlcyA9IDE4MCAvIE1hdGguUEk7XG5cbmV4cG9ydCB2YXIgaWRlbnRpdHkgPSB7XG4gIHRyYW5zbGF0ZVg6IDAsXG4gIHRyYW5zbGF0ZVk6IDAsXG4gIHJvdGF0ZTogMCxcbiAgc2tld1g6IDAsXG4gIHNjYWxlWDogMSxcbiAgc2NhbGVZOiAxXG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihhLCBiLCBjLCBkLCBlLCBmKSB7XG4gIHZhciBzY2FsZVgsIHNjYWxlWSwgc2tld1g7XG4gIGlmIChzY2FsZVggPSBNYXRoLnNxcnQoYSAqIGEgKyBiICogYikpIGEgLz0gc2NhbGVYLCBiIC89IHNjYWxlWDtcbiAgaWYgKHNrZXdYID0gYSAqIGMgKyBiICogZCkgYyAtPSBhICogc2tld1gsIGQgLT0gYiAqIHNrZXdYO1xuICBpZiAoc2NhbGVZID0gTWF0aC5zcXJ0KGMgKiBjICsgZCAqIGQpKSBjIC89IHNjYWxlWSwgZCAvPSBzY2FsZVksIHNrZXdYIC89IHNjYWxlWTtcbiAgaWYgKGEgKiBkIDwgYiAqIGMpIGEgPSAtYSwgYiA9IC1iLCBza2V3WCA9IC1za2V3WCwgc2NhbGVYID0gLXNjYWxlWDtcbiAgcmV0dXJuIHtcbiAgICB0cmFuc2xhdGVYOiBlLFxuICAgIHRyYW5zbGF0ZVk6IGYsXG4gICAgcm90YXRlOiBNYXRoLmF0YW4yKGIsIGEpICogZGVncmVlcyxcbiAgICBza2V3WDogTWF0aC5hdGFuKHNrZXdYKSAqIGRlZ3JlZXMsXG4gICAgc2NhbGVYOiBzY2FsZVgsXG4gICAgc2NhbGVZOiBzY2FsZVlcbiAgfTtcbn1cbiIsICJpbXBvcnQgZGVjb21wb3NlLCB7aWRlbnRpdHl9IGZyb20gXCIuL2RlY29tcG9zZS5qc1wiO1xuXG52YXIgc3ZnTm9kZTtcblxuLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZWYgKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNzcyh2YWx1ZSkge1xuICBjb25zdCBtID0gbmV3ICh0eXBlb2YgRE9NTWF0cml4ID09PSBcImZ1bmN0aW9uXCIgPyBET01NYXRyaXggOiBXZWJLaXRDU1NNYXRyaXgpKHZhbHVlICsgXCJcIik7XG4gIHJldHVybiBtLmlzSWRlbnRpdHkgPyBpZGVudGl0eSA6IGRlY29tcG9zZShtLmEsIG0uYiwgbS5jLCBtLmQsIG0uZSwgbS5mKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU3ZnKHZhbHVlKSB7XG4gIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gaWRlbnRpdHk7XG4gIGlmICghc3ZnTm9kZSkgc3ZnTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIFwiZ1wiKTtcbiAgc3ZnTm9kZS5zZXRBdHRyaWJ1dGUoXCJ0cmFuc2Zvcm1cIiwgdmFsdWUpO1xuICBpZiAoISh2YWx1ZSA9IHN2Z05vZGUudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSkpIHJldHVybiBpZGVudGl0eTtcbiAgdmFsdWUgPSB2YWx1ZS5tYXRyaXg7XG4gIHJldHVybiBkZWNvbXBvc2UodmFsdWUuYSwgdmFsdWUuYiwgdmFsdWUuYywgdmFsdWUuZCwgdmFsdWUuZSwgdmFsdWUuZik7XG59XG4iLCAiaW1wb3J0IG51bWJlciBmcm9tIFwiLi4vbnVtYmVyLmpzXCI7XG5pbXBvcnQge3BhcnNlQ3NzLCBwYXJzZVN2Z30gZnJvbSBcIi4vcGFyc2UuanNcIjtcblxuZnVuY3Rpb24gaW50ZXJwb2xhdGVUcmFuc2Zvcm0ocGFyc2UsIHB4Q29tbWEsIHB4UGFyZW4sIGRlZ1BhcmVuKSB7XG5cbiAgZnVuY3Rpb24gcG9wKHMpIHtcbiAgICByZXR1cm4gcy5sZW5ndGggPyBzLnBvcCgpICsgXCIgXCIgOiBcIlwiO1xuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNsYXRlKHhhLCB5YSwgeGIsIHliLCBzLCBxKSB7XG4gICAgaWYgKHhhICE9PSB4YiB8fCB5YSAhPT0geWIpIHtcbiAgICAgIHZhciBpID0gcy5wdXNoKFwidHJhbnNsYXRlKFwiLCBudWxsLCBweENvbW1hLCBudWxsLCBweFBhcmVuKTtcbiAgICAgIHEucHVzaCh7aTogaSAtIDQsIHg6IG51bWJlcih4YSwgeGIpfSwge2k6IGkgLSAyLCB4OiBudW1iZXIoeWEsIHliKX0pO1xuICAgIH0gZWxzZSBpZiAoeGIgfHwgeWIpIHtcbiAgICAgIHMucHVzaChcInRyYW5zbGF0ZShcIiArIHhiICsgcHhDb21tYSArIHliICsgcHhQYXJlbik7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcm90YXRlKGEsIGIsIHMsIHEpIHtcbiAgICBpZiAoYSAhPT0gYikge1xuICAgICAgaWYgKGEgLSBiID4gMTgwKSBiICs9IDM2MDsgZWxzZSBpZiAoYiAtIGEgPiAxODApIGEgKz0gMzYwOyAvLyBzaG9ydGVzdCBwYXRoXG4gICAgICBxLnB1c2goe2k6IHMucHVzaChwb3AocykgKyBcInJvdGF0ZShcIiwgbnVsbCwgZGVnUGFyZW4pIC0gMiwgeDogbnVtYmVyKGEsIGIpfSk7XG4gICAgfSBlbHNlIGlmIChiKSB7XG4gICAgICBzLnB1c2gocG9wKHMpICsgXCJyb3RhdGUoXCIgKyBiICsgZGVnUGFyZW4pO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHNrZXdYKGEsIGIsIHMsIHEpIHtcbiAgICBpZiAoYSAhPT0gYikge1xuICAgICAgcS5wdXNoKHtpOiBzLnB1c2gocG9wKHMpICsgXCJza2V3WChcIiwgbnVsbCwgZGVnUGFyZW4pIC0gMiwgeDogbnVtYmVyKGEsIGIpfSk7XG4gICAgfSBlbHNlIGlmIChiKSB7XG4gICAgICBzLnB1c2gocG9wKHMpICsgXCJza2V3WChcIiArIGIgKyBkZWdQYXJlbik7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc2NhbGUoeGEsIHlhLCB4YiwgeWIsIHMsIHEpIHtcbiAgICBpZiAoeGEgIT09IHhiIHx8IHlhICE9PSB5Yikge1xuICAgICAgdmFyIGkgPSBzLnB1c2gocG9wKHMpICsgXCJzY2FsZShcIiwgbnVsbCwgXCIsXCIsIG51bGwsIFwiKVwiKTtcbiAgICAgIHEucHVzaCh7aTogaSAtIDQsIHg6IG51bWJlcih4YSwgeGIpfSwge2k6IGkgLSAyLCB4OiBudW1iZXIoeWEsIHliKX0pO1xuICAgIH0gZWxzZSBpZiAoeGIgIT09IDEgfHwgeWIgIT09IDEpIHtcbiAgICAgIHMucHVzaChwb3AocykgKyBcInNjYWxlKFwiICsgeGIgKyBcIixcIiArIHliICsgXCIpXCIpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbihhLCBiKSB7XG4gICAgdmFyIHMgPSBbXSwgLy8gc3RyaW5nIGNvbnN0YW50cyBhbmQgcGxhY2Vob2xkZXJzXG4gICAgICAgIHEgPSBbXTsgLy8gbnVtYmVyIGludGVycG9sYXRvcnNcbiAgICBhID0gcGFyc2UoYSksIGIgPSBwYXJzZShiKTtcbiAgICB0cmFuc2xhdGUoYS50cmFuc2xhdGVYLCBhLnRyYW5zbGF0ZVksIGIudHJhbnNsYXRlWCwgYi50cmFuc2xhdGVZLCBzLCBxKTtcbiAgICByb3RhdGUoYS5yb3RhdGUsIGIucm90YXRlLCBzLCBxKTtcbiAgICBza2V3WChhLnNrZXdYLCBiLnNrZXdYLCBzLCBxKTtcbiAgICBzY2FsZShhLnNjYWxlWCwgYS5zY2FsZVksIGIuc2NhbGVYLCBiLnNjYWxlWSwgcywgcSk7XG4gICAgYSA9IGIgPSBudWxsOyAvLyBnY1xuICAgIHJldHVybiBmdW5jdGlvbih0KSB7XG4gICAgICB2YXIgaSA9IC0xLCBuID0gcS5sZW5ndGgsIG87XG4gICAgICB3aGlsZSAoKytpIDwgbikgc1sobyA9IHFbaV0pLmldID0gby54KHQpO1xuICAgICAgcmV0dXJuIHMuam9pbihcIlwiKTtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgdmFyIGludGVycG9sYXRlVHJhbnNmb3JtQ3NzID0gaW50ZXJwb2xhdGVUcmFuc2Zvcm0ocGFyc2VDc3MsIFwicHgsIFwiLCBcInB4KVwiLCBcImRlZylcIik7XG5leHBvcnQgdmFyIGludGVycG9sYXRlVHJhbnNmb3JtU3ZnID0gaW50ZXJwb2xhdGVUcmFuc2Zvcm0ocGFyc2VTdmcsIFwiLCBcIiwgXCIpXCIsIFwiKVwiKTtcbiIsICJ2YXIgZXBzaWxvbjIgPSAxZS0xMjtcblxuZnVuY3Rpb24gY29zaCh4KSB7XG4gIHJldHVybiAoKHggPSBNYXRoLmV4cCh4KSkgKyAxIC8geCkgLyAyO1xufVxuXG5mdW5jdGlvbiBzaW5oKHgpIHtcbiAgcmV0dXJuICgoeCA9IE1hdGguZXhwKHgpKSAtIDEgLyB4KSAvIDI7XG59XG5cbmZ1bmN0aW9uIHRhbmgoeCkge1xuICByZXR1cm4gKCh4ID0gTWF0aC5leHAoMiAqIHgpKSAtIDEpIC8gKHggKyAxKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgKGZ1bmN0aW9uIHpvb21SaG8ocmhvLCByaG8yLCByaG80KSB7XG5cbiAgLy8gcDAgPSBbdXgwLCB1eTAsIHcwXVxuICAvLyBwMSA9IFt1eDEsIHV5MSwgdzFdXG4gIGZ1bmN0aW9uIHpvb20ocDAsIHAxKSB7XG4gICAgdmFyIHV4MCA9IHAwWzBdLCB1eTAgPSBwMFsxXSwgdzAgPSBwMFsyXSxcbiAgICAgICAgdXgxID0gcDFbMF0sIHV5MSA9IHAxWzFdLCB3MSA9IHAxWzJdLFxuICAgICAgICBkeCA9IHV4MSAtIHV4MCxcbiAgICAgICAgZHkgPSB1eTEgLSB1eTAsXG4gICAgICAgIGQyID0gZHggKiBkeCArIGR5ICogZHksXG4gICAgICAgIGksXG4gICAgICAgIFM7XG5cbiAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIHUwIFx1MjI0NSB1MS5cbiAgICBpZiAoZDIgPCBlcHNpbG9uMikge1xuICAgICAgUyA9IE1hdGgubG9nKHcxIC8gdzApIC8gcmhvO1xuICAgICAgaSA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICB1eDAgKyB0ICogZHgsXG4gICAgICAgICAgdXkwICsgdCAqIGR5LFxuICAgICAgICAgIHcwICogTWF0aC5leHAocmhvICogdCAqIFMpXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhbCBjYXNlLlxuICAgIGVsc2Uge1xuICAgICAgdmFyIGQxID0gTWF0aC5zcXJ0KGQyKSxcbiAgICAgICAgICBiMCA9ICh3MSAqIHcxIC0gdzAgKiB3MCArIHJobzQgKiBkMikgLyAoMiAqIHcwICogcmhvMiAqIGQxKSxcbiAgICAgICAgICBiMSA9ICh3MSAqIHcxIC0gdzAgKiB3MCAtIHJobzQgKiBkMikgLyAoMiAqIHcxICogcmhvMiAqIGQxKSxcbiAgICAgICAgICByMCA9IE1hdGgubG9nKE1hdGguc3FydChiMCAqIGIwICsgMSkgLSBiMCksXG4gICAgICAgICAgcjEgPSBNYXRoLmxvZyhNYXRoLnNxcnQoYjEgKiBiMSArIDEpIC0gYjEpO1xuICAgICAgUyA9IChyMSAtIHIwKSAvIHJobztcbiAgICAgIGkgPSBmdW5jdGlvbih0KSB7XG4gICAgICAgIHZhciBzID0gdCAqIFMsXG4gICAgICAgICAgICBjb3NocjAgPSBjb3NoKHIwKSxcbiAgICAgICAgICAgIHUgPSB3MCAvIChyaG8yICogZDEpICogKGNvc2hyMCAqIHRhbmgocmhvICogcyArIHIwKSAtIHNpbmgocjApKTtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICB1eDAgKyB1ICogZHgsXG4gICAgICAgICAgdXkwICsgdSAqIGR5LFxuICAgICAgICAgIHcwICogY29zaHIwIC8gY29zaChyaG8gKiBzICsgcjApXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaS5kdXJhdGlvbiA9IFMgKiAxMDAwICogcmhvIC8gTWF0aC5TUVJUMjtcblxuICAgIHJldHVybiBpO1xuICB9XG5cbiAgem9vbS5yaG8gPSBmdW5jdGlvbihfKSB7XG4gICAgdmFyIF8xID0gTWF0aC5tYXgoMWUtMywgK18pLCBfMiA9IF8xICogXzEsIF80ID0gXzIgKiBfMjtcbiAgICByZXR1cm4gem9vbVJobyhfMSwgXzIsIF80KTtcbiAgfTtcblxuICByZXR1cm4gem9vbTtcbn0pKE1hdGguU1FSVDIsIDIsIDQpO1xuIiwgImltcG9ydCB7Y3ViZWhlbGl4IGFzIGNvbG9yQ3ViZWhlbGl4fSBmcm9tIFwiZDMtY29sb3JcIjtcbmltcG9ydCBjb2xvciwge2h1ZX0gZnJvbSBcIi4vY29sb3IuanNcIjtcblxuZnVuY3Rpb24gY3ViZWhlbGl4KGh1ZSkge1xuICByZXR1cm4gKGZ1bmN0aW9uIGN1YmVoZWxpeEdhbW1hKHkpIHtcbiAgICB5ID0gK3k7XG5cbiAgICBmdW5jdGlvbiBjdWJlaGVsaXgoc3RhcnQsIGVuZCkge1xuICAgICAgdmFyIGggPSBodWUoKHN0YXJ0ID0gY29sb3JDdWJlaGVsaXgoc3RhcnQpKS5oLCAoZW5kID0gY29sb3JDdWJlaGVsaXgoZW5kKSkuaCksXG4gICAgICAgICAgcyA9IGNvbG9yKHN0YXJ0LnMsIGVuZC5zKSxcbiAgICAgICAgICBsID0gY29sb3Ioc3RhcnQubCwgZW5kLmwpLFxuICAgICAgICAgIG9wYWNpdHkgPSBjb2xvcihzdGFydC5vcGFjaXR5LCBlbmQub3BhY2l0eSk7XG4gICAgICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgICAgICBzdGFydC5oID0gaCh0KTtcbiAgICAgICAgc3RhcnQucyA9IHModCk7XG4gICAgICAgIHN0YXJ0LmwgPSBsKE1hdGgucG93KHQsIHkpKTtcbiAgICAgICAgc3RhcnQub3BhY2l0eSA9IG9wYWNpdHkodCk7XG4gICAgICAgIHJldHVybiBzdGFydCArIFwiXCI7XG4gICAgICB9O1xuICAgIH1cblxuICAgIGN1YmVoZWxpeC5nYW1tYSA9IGN1YmVoZWxpeEdhbW1hO1xuXG4gICAgcmV0dXJuIGN1YmVoZWxpeDtcbiAgfSkoMSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGN1YmVoZWxpeChodWUpO1xuZXhwb3J0IHZhciBjdWJlaGVsaXhMb25nID0gY3ViZWhlbGl4KGNvbG9yKTtcbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnRlcnBvbGF0b3IsIG4pIHtcbiAgdmFyIHNhbXBsZXMgPSBuZXcgQXJyYXkobik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgKytpKSBzYW1wbGVzW2ldID0gaW50ZXJwb2xhdG9yKGkgLyAobiAtIDEpKTtcbiAgcmV0dXJuIHNhbXBsZXM7XG59XG4iLCAidmFyIGZyYW1lID0gMCwgLy8gaXMgYW4gYW5pbWF0aW9uIGZyYW1lIHBlbmRpbmc/XG4gICAgdGltZW91dCA9IDAsIC8vIGlzIGEgdGltZW91dCBwZW5kaW5nP1xuICAgIGludGVydmFsID0gMCwgLy8gYXJlIGFueSB0aW1lcnMgYWN0aXZlP1xuICAgIHBva2VEZWxheSA9IDEwMDAsIC8vIGhvdyBmcmVxdWVudGx5IHdlIGNoZWNrIGZvciBjbG9jayBza2V3XG4gICAgdGFza0hlYWQsXG4gICAgdGFza1RhaWwsXG4gICAgY2xvY2tMYXN0ID0gMCxcbiAgICBjbG9ja05vdyA9IDAsXG4gICAgY2xvY2tTa2V3ID0gMCxcbiAgICBjbG9jayA9IHR5cGVvZiBwZXJmb3JtYW5jZSA9PT0gXCJvYmplY3RcIiAmJiBwZXJmb3JtYW5jZS5ub3cgPyBwZXJmb3JtYW5jZSA6IERhdGUsXG4gICAgc2V0RnJhbWUgPSB0eXBlb2Ygd2luZG93ID09PSBcIm9iamVjdFwiICYmIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPyB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KSA6IGZ1bmN0aW9uKGYpIHsgc2V0VGltZW91dChmLCAxNyk7IH07XG5cbmV4cG9ydCBmdW5jdGlvbiBub3coKSB7XG4gIHJldHVybiBjbG9ja05vdyB8fCAoc2V0RnJhbWUoY2xlYXJOb3cpLCBjbG9ja05vdyA9IGNsb2NrLm5vdygpICsgY2xvY2tTa2V3KTtcbn1cblxuZnVuY3Rpb24gY2xlYXJOb3coKSB7XG4gIGNsb2NrTm93ID0gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFRpbWVyKCkge1xuICB0aGlzLl9jYWxsID1cbiAgdGhpcy5fdGltZSA9XG4gIHRoaXMuX25leHQgPSBudWxsO1xufVxuXG5UaW1lci5wcm90b3R5cGUgPSB0aW1lci5wcm90b3R5cGUgPSB7XG4gIGNvbnN0cnVjdG9yOiBUaW1lcixcbiAgcmVzdGFydDogZnVuY3Rpb24oY2FsbGJhY2ssIGRlbGF5LCB0aW1lKSB7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb25cIik7XG4gICAgdGltZSA9ICh0aW1lID09IG51bGwgPyBub3coKSA6ICt0aW1lKSArIChkZWxheSA9PSBudWxsID8gMCA6ICtkZWxheSk7XG4gICAgaWYgKCF0aGlzLl9uZXh0ICYmIHRhc2tUYWlsICE9PSB0aGlzKSB7XG4gICAgICBpZiAodGFza1RhaWwpIHRhc2tUYWlsLl9uZXh0ID0gdGhpcztcbiAgICAgIGVsc2UgdGFza0hlYWQgPSB0aGlzO1xuICAgICAgdGFza1RhaWwgPSB0aGlzO1xuICAgIH1cbiAgICB0aGlzLl9jYWxsID0gY2FsbGJhY2s7XG4gICAgdGhpcy5fdGltZSA9IHRpbWU7XG4gICAgc2xlZXAoKTtcbiAgfSxcbiAgc3RvcDogZnVuY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuX2NhbGwpIHtcbiAgICAgIHRoaXMuX2NhbGwgPSBudWxsO1xuICAgICAgdGhpcy5fdGltZSA9IEluZmluaXR5O1xuICAgICAgc2xlZXAoKTtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0aW1lcihjYWxsYmFjaywgZGVsYXksIHRpbWUpIHtcbiAgdmFyIHQgPSBuZXcgVGltZXI7XG4gIHQucmVzdGFydChjYWxsYmFjaywgZGVsYXksIHRpbWUpO1xuICByZXR1cm4gdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRpbWVyRmx1c2goKSB7XG4gIG5vdygpOyAvLyBHZXQgdGhlIGN1cnJlbnQgdGltZSwgaWYgbm90IGFscmVhZHkgc2V0LlxuICArK2ZyYW1lOyAvLyBQcmV0ZW5kIHdlXHUyMDE5dmUgc2V0IGFuIGFsYXJtLCBpZiB3ZSBoYXZlblx1MjAxOXQgYWxyZWFkeS5cbiAgdmFyIHQgPSB0YXNrSGVhZCwgZTtcbiAgd2hpbGUgKHQpIHtcbiAgICBpZiAoKGUgPSBjbG9ja05vdyAtIHQuX3RpbWUpID49IDApIHQuX2NhbGwuY2FsbChudWxsLCBlKTtcbiAgICB0ID0gdC5fbmV4dDtcbiAgfVxuICAtLWZyYW1lO1xufVxuXG5mdW5jdGlvbiB3YWtlKCkge1xuICBjbG9ja05vdyA9IChjbG9ja0xhc3QgPSBjbG9jay5ub3coKSkgKyBjbG9ja1NrZXc7XG4gIGZyYW1lID0gdGltZW91dCA9IDA7XG4gIHRyeSB7XG4gICAgdGltZXJGbHVzaCgpO1xuICB9IGZpbmFsbHkge1xuICAgIGZyYW1lID0gMDtcbiAgICBuYXAoKTtcbiAgICBjbG9ja05vdyA9IDA7XG4gIH1cbn1cblxuZnVuY3Rpb24gcG9rZSgpIHtcbiAgdmFyIG5vdyA9IGNsb2NrLm5vdygpLCBkZWxheSA9IG5vdyAtIGNsb2NrTGFzdDtcbiAgaWYgKGRlbGF5ID4gcG9rZURlbGF5KSBjbG9ja1NrZXcgLT0gZGVsYXksIGNsb2NrTGFzdCA9IG5vdztcbn1cblxuZnVuY3Rpb24gbmFwKCkge1xuICB2YXIgdDAsIHQxID0gdGFza0hlYWQsIHQyLCB0aW1lID0gSW5maW5pdHk7XG4gIHdoaWxlICh0MSkge1xuICAgIGlmICh0MS5fY2FsbCkge1xuICAgICAgaWYgKHRpbWUgPiB0MS5fdGltZSkgdGltZSA9IHQxLl90aW1lO1xuICAgICAgdDAgPSB0MSwgdDEgPSB0MS5fbmV4dDtcbiAgICB9IGVsc2Uge1xuICAgICAgdDIgPSB0MS5fbmV4dCwgdDEuX25leHQgPSBudWxsO1xuICAgICAgdDEgPSB0MCA/IHQwLl9uZXh0ID0gdDIgOiB0YXNrSGVhZCA9IHQyO1xuICAgIH1cbiAgfVxuICB0YXNrVGFpbCA9IHQwO1xuICBzbGVlcCh0aW1lKTtcbn1cblxuZnVuY3Rpb24gc2xlZXAodGltZSkge1xuICBpZiAoZnJhbWUpIHJldHVybjsgLy8gU29vbmVzdCBhbGFybSBhbHJlYWR5IHNldCwgb3Igd2lsbCBiZS5cbiAgaWYgKHRpbWVvdXQpIHRpbWVvdXQgPSBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gIHZhciBkZWxheSA9IHRpbWUgLSBjbG9ja05vdzsgLy8gU3RyaWN0bHkgbGVzcyB0aGFuIGlmIHdlIHJlY29tcHV0ZWQgY2xvY2tOb3cuXG4gIGlmIChkZWxheSA+IDI0KSB7XG4gICAgaWYgKHRpbWUgPCBJbmZpbml0eSkgdGltZW91dCA9IHNldFRpbWVvdXQod2FrZSwgdGltZSAtIGNsb2NrLm5vdygpIC0gY2xvY2tTa2V3KTtcbiAgICBpZiAoaW50ZXJ2YWwpIGludGVydmFsID0gY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKCFpbnRlcnZhbCkgY2xvY2tMYXN0ID0gY2xvY2subm93KCksIGludGVydmFsID0gc2V0SW50ZXJ2YWwocG9rZSwgcG9rZURlbGF5KTtcbiAgICBmcmFtZSA9IDEsIHNldEZyYW1lKHdha2UpO1xuICB9XG59XG4iLCAiaW1wb3J0IHtUaW1lcn0gZnJvbSBcIi4vdGltZXIuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oY2FsbGJhY2ssIGRlbGF5LCB0aW1lKSB7XG4gIHZhciB0ID0gbmV3IFRpbWVyO1xuICBkZWxheSA9IGRlbGF5ID09IG51bGwgPyAwIDogK2RlbGF5O1xuICB0LnJlc3RhcnQoZWxhcHNlZCA9PiB7XG4gICAgdC5zdG9wKCk7XG4gICAgY2FsbGJhY2soZWxhcHNlZCArIGRlbGF5KTtcbiAgfSwgZGVsYXksIHRpbWUpO1xuICByZXR1cm4gdDtcbn1cbiIsICJpbXBvcnQge2Rpc3BhdGNofSBmcm9tIFwiZDMtZGlzcGF0Y2hcIjtcbmltcG9ydCB7dGltZXIsIHRpbWVvdXR9IGZyb20gXCJkMy10aW1lclwiO1xuXG52YXIgZW1wdHlPbiA9IGRpc3BhdGNoKFwic3RhcnRcIiwgXCJlbmRcIiwgXCJjYW5jZWxcIiwgXCJpbnRlcnJ1cHRcIik7XG52YXIgZW1wdHlUd2VlbiA9IFtdO1xuXG5leHBvcnQgdmFyIENSRUFURUQgPSAwO1xuZXhwb3J0IHZhciBTQ0hFRFVMRUQgPSAxO1xuZXhwb3J0IHZhciBTVEFSVElORyA9IDI7XG5leHBvcnQgdmFyIFNUQVJURUQgPSAzO1xuZXhwb3J0IHZhciBSVU5OSU5HID0gNDtcbmV4cG9ydCB2YXIgRU5ESU5HID0gNTtcbmV4cG9ydCB2YXIgRU5ERUQgPSA2O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihub2RlLCBuYW1lLCBpZCwgaW5kZXgsIGdyb3VwLCB0aW1pbmcpIHtcbiAgdmFyIHNjaGVkdWxlcyA9IG5vZGUuX190cmFuc2l0aW9uO1xuICBpZiAoIXNjaGVkdWxlcykgbm9kZS5fX3RyYW5zaXRpb24gPSB7fTtcbiAgZWxzZSBpZiAoaWQgaW4gc2NoZWR1bGVzKSByZXR1cm47XG4gIGNyZWF0ZShub2RlLCBpZCwge1xuICAgIG5hbWU6IG5hbWUsXG4gICAgaW5kZXg6IGluZGV4LCAvLyBGb3IgY29udGV4dCBkdXJpbmcgY2FsbGJhY2suXG4gICAgZ3JvdXA6IGdyb3VwLCAvLyBGb3IgY29udGV4dCBkdXJpbmcgY2FsbGJhY2suXG4gICAgb246IGVtcHR5T24sXG4gICAgdHdlZW46IGVtcHR5VHdlZW4sXG4gICAgdGltZTogdGltaW5nLnRpbWUsXG4gICAgZGVsYXk6IHRpbWluZy5kZWxheSxcbiAgICBkdXJhdGlvbjogdGltaW5nLmR1cmF0aW9uLFxuICAgIGVhc2U6IHRpbWluZy5lYXNlLFxuICAgIHRpbWVyOiBudWxsLFxuICAgIHN0YXRlOiBDUkVBVEVEXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdChub2RlLCBpZCkge1xuICB2YXIgc2NoZWR1bGUgPSBnZXQobm9kZSwgaWQpO1xuICBpZiAoc2NoZWR1bGUuc3RhdGUgPiBDUkVBVEVEKSB0aHJvdyBuZXcgRXJyb3IoXCJ0b28gbGF0ZTsgYWxyZWFkeSBzY2hlZHVsZWRcIik7XG4gIHJldHVybiBzY2hlZHVsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldChub2RlLCBpZCkge1xuICB2YXIgc2NoZWR1bGUgPSBnZXQobm9kZSwgaWQpO1xuICBpZiAoc2NoZWR1bGUuc3RhdGUgPiBTVEFSVEVEKSB0aHJvdyBuZXcgRXJyb3IoXCJ0b28gbGF0ZTsgYWxyZWFkeSBydW5uaW5nXCIpO1xuICByZXR1cm4gc2NoZWR1bGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXQobm9kZSwgaWQpIHtcbiAgdmFyIHNjaGVkdWxlID0gbm9kZS5fX3RyYW5zaXRpb247XG4gIGlmICghc2NoZWR1bGUgfHwgIShzY2hlZHVsZSA9IHNjaGVkdWxlW2lkXSkpIHRocm93IG5ldyBFcnJvcihcInRyYW5zaXRpb24gbm90IGZvdW5kXCIpO1xuICByZXR1cm4gc2NoZWR1bGU7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZShub2RlLCBpZCwgc2VsZikge1xuICB2YXIgc2NoZWR1bGVzID0gbm9kZS5fX3RyYW5zaXRpb24sXG4gICAgICB0d2VlbjtcblxuICAvLyBJbml0aWFsaXplIHRoZSBzZWxmIHRpbWVyIHdoZW4gdGhlIHRyYW5zaXRpb24gaXMgY3JlYXRlZC5cbiAgLy8gTm90ZSB0aGUgYWN0dWFsIGRlbGF5IGlzIG5vdCBrbm93biB1bnRpbCB0aGUgZmlyc3QgY2FsbGJhY2shXG4gIHNjaGVkdWxlc1tpZF0gPSBzZWxmO1xuICBzZWxmLnRpbWVyID0gdGltZXIoc2NoZWR1bGUsIDAsIHNlbGYudGltZSk7XG5cbiAgZnVuY3Rpb24gc2NoZWR1bGUoZWxhcHNlZCkge1xuICAgIHNlbGYuc3RhdGUgPSBTQ0hFRFVMRUQ7XG4gICAgc2VsZi50aW1lci5yZXN0YXJ0KHN0YXJ0LCBzZWxmLmRlbGF5LCBzZWxmLnRpbWUpO1xuXG4gICAgLy8gSWYgdGhlIGVsYXBzZWQgZGVsYXkgaXMgbGVzcyB0aGFuIG91ciBmaXJzdCBzbGVlcCwgc3RhcnQgaW1tZWRpYXRlbHkuXG4gICAgaWYgKHNlbGYuZGVsYXkgPD0gZWxhcHNlZCkgc3RhcnQoZWxhcHNlZCAtIHNlbGYuZGVsYXkpO1xuICB9XG5cbiAgZnVuY3Rpb24gc3RhcnQoZWxhcHNlZCkge1xuICAgIHZhciBpLCBqLCBuLCBvO1xuXG4gICAgLy8gSWYgdGhlIHN0YXRlIGlzIG5vdCBTQ0hFRFVMRUQsIHRoZW4gd2UgcHJldmlvdXNseSBlcnJvcmVkIG9uIHN0YXJ0LlxuICAgIGlmIChzZWxmLnN0YXRlICE9PSBTQ0hFRFVMRUQpIHJldHVybiBzdG9wKCk7XG5cbiAgICBmb3IgKGkgaW4gc2NoZWR1bGVzKSB7XG4gICAgICBvID0gc2NoZWR1bGVzW2ldO1xuICAgICAgaWYgKG8ubmFtZSAhPT0gc2VsZi5uYW1lKSBjb250aW51ZTtcblxuICAgICAgLy8gV2hpbGUgdGhpcyBlbGVtZW50IGFscmVhZHkgaGFzIGEgc3RhcnRpbmcgdHJhbnNpdGlvbiBkdXJpbmcgdGhpcyBmcmFtZSxcbiAgICAgIC8vIGRlZmVyIHN0YXJ0aW5nIGFuIGludGVycnVwdGluZyB0cmFuc2l0aW9uIHVudGlsIHRoYXQgdHJhbnNpdGlvbiBoYXMgYVxuICAgICAgLy8gY2hhbmNlIHRvIHRpY2sgKGFuZCBwb3NzaWJseSBlbmQpOyBzZWUgZDMvZDMtdHJhbnNpdGlvbiM1NCFcbiAgICAgIGlmIChvLnN0YXRlID09PSBTVEFSVEVEKSByZXR1cm4gdGltZW91dChzdGFydCk7XG5cbiAgICAgIC8vIEludGVycnVwdCB0aGUgYWN0aXZlIHRyYW5zaXRpb24sIGlmIGFueS5cbiAgICAgIGlmIChvLnN0YXRlID09PSBSVU5OSU5HKSB7XG4gICAgICAgIG8uc3RhdGUgPSBFTkRFRDtcbiAgICAgICAgby50aW1lci5zdG9wKCk7XG4gICAgICAgIG8ub24uY2FsbChcImludGVycnVwdFwiLCBub2RlLCBub2RlLl9fZGF0YV9fLCBvLmluZGV4LCBvLmdyb3VwKTtcbiAgICAgICAgZGVsZXRlIHNjaGVkdWxlc1tpXTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2FuY2VsIGFueSBwcmUtZW1wdGVkIHRyYW5zaXRpb25zLlxuICAgICAgZWxzZSBpZiAoK2kgPCBpZCkge1xuICAgICAgICBvLnN0YXRlID0gRU5ERUQ7XG4gICAgICAgIG8udGltZXIuc3RvcCgpO1xuICAgICAgICBvLm9uLmNhbGwoXCJjYW5jZWxcIiwgbm9kZSwgbm9kZS5fX2RhdGFfXywgby5pbmRleCwgby5ncm91cCk7XG4gICAgICAgIGRlbGV0ZSBzY2hlZHVsZXNbaV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGVmZXIgdGhlIGZpcnN0IHRpY2sgdG8gZW5kIG9mIHRoZSBjdXJyZW50IGZyYW1lOyBzZWUgZDMvZDMjMTU3Ni5cbiAgICAvLyBOb3RlIHRoZSB0cmFuc2l0aW9uIG1heSBiZSBjYW5jZWxlZCBhZnRlciBzdGFydCBhbmQgYmVmb3JlIHRoZSBmaXJzdCB0aWNrIVxuICAgIC8vIE5vdGUgdGhpcyBtdXN0IGJlIHNjaGVkdWxlZCBiZWZvcmUgdGhlIHN0YXJ0IGV2ZW50OyBzZWUgZDMvZDMtdHJhbnNpdGlvbiMxNiFcbiAgICAvLyBBc3N1bWluZyB0aGlzIGlzIHN1Y2Nlc3NmdWwsIHN1YnNlcXVlbnQgY2FsbGJhY2tzIGdvIHN0cmFpZ2h0IHRvIHRpY2suXG4gICAgdGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgIGlmIChzZWxmLnN0YXRlID09PSBTVEFSVEVEKSB7XG4gICAgICAgIHNlbGYuc3RhdGUgPSBSVU5OSU5HO1xuICAgICAgICBzZWxmLnRpbWVyLnJlc3RhcnQodGljaywgc2VsZi5kZWxheSwgc2VsZi50aW1lKTtcbiAgICAgICAgdGljayhlbGFwc2VkKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIERpc3BhdGNoIHRoZSBzdGFydCBldmVudC5cbiAgICAvLyBOb3RlIHRoaXMgbXVzdCBiZSBkb25lIGJlZm9yZSB0aGUgdHdlZW4gYXJlIGluaXRpYWxpemVkLlxuICAgIHNlbGYuc3RhdGUgPSBTVEFSVElORztcbiAgICBzZWxmLm9uLmNhbGwoXCJzdGFydFwiLCBub2RlLCBub2RlLl9fZGF0YV9fLCBzZWxmLmluZGV4LCBzZWxmLmdyb3VwKTtcbiAgICBpZiAoc2VsZi5zdGF0ZSAhPT0gU1RBUlRJTkcpIHJldHVybjsgLy8gaW50ZXJydXB0ZWRcbiAgICBzZWxmLnN0YXRlID0gU1RBUlRFRDtcblxuICAgIC8vIEluaXRpYWxpemUgdGhlIHR3ZWVuLCBkZWxldGluZyBudWxsIHR3ZWVuLlxuICAgIHR3ZWVuID0gbmV3IEFycmF5KG4gPSBzZWxmLnR3ZWVuLmxlbmd0aCk7XG4gICAgZm9yIChpID0gMCwgaiA9IC0xOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAobyA9IHNlbGYudHdlZW5baV0udmFsdWUuY2FsbChub2RlLCBub2RlLl9fZGF0YV9fLCBzZWxmLmluZGV4LCBzZWxmLmdyb3VwKSkge1xuICAgICAgICB0d2VlblsrK2pdID0gbztcbiAgICAgIH1cbiAgICB9XG4gICAgdHdlZW4ubGVuZ3RoID0gaiArIDE7XG4gIH1cblxuICBmdW5jdGlvbiB0aWNrKGVsYXBzZWQpIHtcbiAgICB2YXIgdCA9IGVsYXBzZWQgPCBzZWxmLmR1cmF0aW9uID8gc2VsZi5lYXNlLmNhbGwobnVsbCwgZWxhcHNlZCAvIHNlbGYuZHVyYXRpb24pIDogKHNlbGYudGltZXIucmVzdGFydChzdG9wKSwgc2VsZi5zdGF0ZSA9IEVORElORywgMSksXG4gICAgICAgIGkgPSAtMSxcbiAgICAgICAgbiA9IHR3ZWVuLmxlbmd0aDtcblxuICAgIHdoaWxlICgrK2kgPCBuKSB7XG4gICAgICB0d2VlbltpXS5jYWxsKG5vZGUsIHQpO1xuICAgIH1cblxuICAgIC8vIERpc3BhdGNoIHRoZSBlbmQgZXZlbnQuXG4gICAgaWYgKHNlbGYuc3RhdGUgPT09IEVORElORykge1xuICAgICAgc2VsZi5vbi5jYWxsKFwiZW5kXCIsIG5vZGUsIG5vZGUuX19kYXRhX18sIHNlbGYuaW5kZXgsIHNlbGYuZ3JvdXApO1xuICAgICAgc3RvcCgpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHN0b3AoKSB7XG4gICAgc2VsZi5zdGF0ZSA9IEVOREVEO1xuICAgIHNlbGYudGltZXIuc3RvcCgpO1xuICAgIGRlbGV0ZSBzY2hlZHVsZXNbaWRdO1xuICAgIGZvciAodmFyIGkgaW4gc2NoZWR1bGVzKSByZXR1cm47IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICBkZWxldGUgbm9kZS5fX3RyYW5zaXRpb247XG4gIH1cbn1cbiIsICJpbXBvcnQge1NUQVJUSU5HLCBFTkRJTkcsIEVOREVEfSBmcm9tIFwiLi90cmFuc2l0aW9uL3NjaGVkdWxlLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5vZGUsIG5hbWUpIHtcbiAgdmFyIHNjaGVkdWxlcyA9IG5vZGUuX190cmFuc2l0aW9uLFxuICAgICAgc2NoZWR1bGUsXG4gICAgICBhY3RpdmUsXG4gICAgICBlbXB0eSA9IHRydWUsXG4gICAgICBpO1xuXG4gIGlmICghc2NoZWR1bGVzKSByZXR1cm47XG5cbiAgbmFtZSA9IG5hbWUgPT0gbnVsbCA/IG51bGwgOiBuYW1lICsgXCJcIjtcblxuICBmb3IgKGkgaW4gc2NoZWR1bGVzKSB7XG4gICAgaWYgKChzY2hlZHVsZSA9IHNjaGVkdWxlc1tpXSkubmFtZSAhPT0gbmFtZSkgeyBlbXB0eSA9IGZhbHNlOyBjb250aW51ZTsgfVxuICAgIGFjdGl2ZSA9IHNjaGVkdWxlLnN0YXRlID4gU1RBUlRJTkcgJiYgc2NoZWR1bGUuc3RhdGUgPCBFTkRJTkc7XG4gICAgc2NoZWR1bGUuc3RhdGUgPSBFTkRFRDtcbiAgICBzY2hlZHVsZS50aW1lci5zdG9wKCk7XG4gICAgc2NoZWR1bGUub24uY2FsbChhY3RpdmUgPyBcImludGVycnVwdFwiIDogXCJjYW5jZWxcIiwgbm9kZSwgbm9kZS5fX2RhdGFfXywgc2NoZWR1bGUuaW5kZXgsIHNjaGVkdWxlLmdyb3VwKTtcbiAgICBkZWxldGUgc2NoZWR1bGVzW2ldO1xuICB9XG5cbiAgaWYgKGVtcHR5KSBkZWxldGUgbm9kZS5fX3RyYW5zaXRpb247XG59XG4iLCAiaW1wb3J0IGludGVycnVwdCBmcm9tIFwiLi4vaW50ZXJydXB0LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5hbWUpIHtcbiAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcbiAgICBpbnRlcnJ1cHQodGhpcywgbmFtZSk7XG4gIH0pO1xufVxuIiwgImltcG9ydCB7Z2V0LCBzZXR9IGZyb20gXCIuL3NjaGVkdWxlLmpzXCI7XG5cbmZ1bmN0aW9uIHR3ZWVuUmVtb3ZlKGlkLCBuYW1lKSB7XG4gIHZhciB0d2VlbjAsIHR3ZWVuMTtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBzY2hlZHVsZSA9IHNldCh0aGlzLCBpZCksXG4gICAgICAgIHR3ZWVuID0gc2NoZWR1bGUudHdlZW47XG5cbiAgICAvLyBJZiB0aGlzIG5vZGUgc2hhcmVkIHR3ZWVuIHdpdGggdGhlIHByZXZpb3VzIG5vZGUsXG4gICAgLy8ganVzdCBhc3NpZ24gdGhlIHVwZGF0ZWQgc2hhcmVkIHR3ZWVuIGFuZCB3ZVx1MjAxOXJlIGRvbmUhXG4gICAgLy8gT3RoZXJ3aXNlLCBjb3B5LW9uLXdyaXRlLlxuICAgIGlmICh0d2VlbiAhPT0gdHdlZW4wKSB7XG4gICAgICB0d2VlbjEgPSB0d2VlbjAgPSB0d2VlbjtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBuID0gdHdlZW4xLmxlbmd0aDsgaSA8IG47ICsraSkge1xuICAgICAgICBpZiAodHdlZW4xW2ldLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgICB0d2VlbjEgPSB0d2VlbjEuc2xpY2UoKTtcbiAgICAgICAgICB0d2VlbjEuc3BsaWNlKGksIDEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2NoZWR1bGUudHdlZW4gPSB0d2VlbjE7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHR3ZWVuRnVuY3Rpb24oaWQsIG5hbWUsIHZhbHVlKSB7XG4gIHZhciB0d2VlbjAsIHR3ZWVuMTtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgRXJyb3I7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2NoZWR1bGUgPSBzZXQodGhpcywgaWQpLFxuICAgICAgICB0d2VlbiA9IHNjaGVkdWxlLnR3ZWVuO1xuXG4gICAgLy8gSWYgdGhpcyBub2RlIHNoYXJlZCB0d2VlbiB3aXRoIHRoZSBwcmV2aW91cyBub2RlLFxuICAgIC8vIGp1c3QgYXNzaWduIHRoZSB1cGRhdGVkIHNoYXJlZCB0d2VlbiBhbmQgd2VcdTIwMTlyZSBkb25lIVxuICAgIC8vIE90aGVyd2lzZSwgY29weS1vbi13cml0ZS5cbiAgICBpZiAodHdlZW4gIT09IHR3ZWVuMCkge1xuICAgICAgdHdlZW4xID0gKHR3ZWVuMCA9IHR3ZWVuKS5zbGljZSgpO1xuICAgICAgZm9yICh2YXIgdCA9IHtuYW1lOiBuYW1lLCB2YWx1ZTogdmFsdWV9LCBpID0gMCwgbiA9IHR3ZWVuMS5sZW5ndGg7IGkgPCBuOyArK2kpIHtcbiAgICAgICAgaWYgKHR3ZWVuMVtpXS5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgdHdlZW4xW2ldID0gdDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGkgPT09IG4pIHR3ZWVuMS5wdXNoKHQpO1xuICAgIH1cblxuICAgIHNjaGVkdWxlLnR3ZWVuID0gdHdlZW4xO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICB2YXIgaWQgPSB0aGlzLl9pZDtcblxuICBuYW1lICs9IFwiXCI7XG5cbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAyKSB7XG4gICAgdmFyIHR3ZWVuID0gZ2V0KHRoaXMubm9kZSgpLCBpZCkudHdlZW47XG4gICAgZm9yICh2YXIgaSA9IDAsIG4gPSB0d2Vlbi5sZW5ndGgsIHQ7IGkgPCBuOyArK2kpIHtcbiAgICAgIGlmICgodCA9IHR3ZWVuW2ldKS5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgIHJldHVybiB0LnZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB0aGlzLmVhY2goKHZhbHVlID09IG51bGwgPyB0d2VlblJlbW92ZSA6IHR3ZWVuRnVuY3Rpb24pKGlkLCBuYW1lLCB2YWx1ZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHdlZW5WYWx1ZSh0cmFuc2l0aW9uLCBuYW1lLCB2YWx1ZSkge1xuICB2YXIgaWQgPSB0cmFuc2l0aW9uLl9pZDtcblxuICB0cmFuc2l0aW9uLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgdmFyIHNjaGVkdWxlID0gc2V0KHRoaXMsIGlkKTtcbiAgICAoc2NoZWR1bGUudmFsdWUgfHwgKHNjaGVkdWxlLnZhbHVlID0ge30pKVtuYW1lXSA9IHZhbHVlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH0pO1xuXG4gIHJldHVybiBmdW5jdGlvbihub2RlKSB7XG4gICAgcmV0dXJuIGdldChub2RlLCBpZCkudmFsdWVbbmFtZV07XG4gIH07XG59XG4iLCAiaW1wb3J0IHtjb2xvcn0gZnJvbSBcImQzLWNvbG9yXCI7XG5pbXBvcnQge2ludGVycG9sYXRlTnVtYmVyLCBpbnRlcnBvbGF0ZVJnYiwgaW50ZXJwb2xhdGVTdHJpbmd9IGZyb20gXCJkMy1pbnRlcnBvbGF0ZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihhLCBiKSB7XG4gIHZhciBjO1xuICByZXR1cm4gKHR5cGVvZiBiID09PSBcIm51bWJlclwiID8gaW50ZXJwb2xhdGVOdW1iZXJcbiAgICAgIDogYiBpbnN0YW5jZW9mIGNvbG9yID8gaW50ZXJwb2xhdGVSZ2JcbiAgICAgIDogKGMgPSBjb2xvcihiKSkgPyAoYiA9IGMsIGludGVycG9sYXRlUmdiKVxuICAgICAgOiBpbnRlcnBvbGF0ZVN0cmluZykoYSwgYik7XG59XG4iLCAiaW1wb3J0IHtpbnRlcnBvbGF0ZVRyYW5zZm9ybVN2ZyBhcyBpbnRlcnBvbGF0ZVRyYW5zZm9ybX0gZnJvbSBcImQzLWludGVycG9sYXRlXCI7XG5pbXBvcnQge25hbWVzcGFjZX0gZnJvbSBcImQzLXNlbGVjdGlvblwiO1xuaW1wb3J0IHt0d2VlblZhbHVlfSBmcm9tIFwiLi90d2Vlbi5qc1wiO1xuaW1wb3J0IGludGVycG9sYXRlIGZyb20gXCIuL2ludGVycG9sYXRlLmpzXCI7XG5cbmZ1bmN0aW9uIGF0dHJSZW1vdmUobmFtZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGF0dHJSZW1vdmVOUyhmdWxsbmFtZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhmdWxsbmFtZS5zcGFjZSwgZnVsbG5hbWUubG9jYWwpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRyQ29uc3RhbnQobmFtZSwgaW50ZXJwb2xhdGUsIHZhbHVlMSkge1xuICB2YXIgc3RyaW5nMDAsXG4gICAgICBzdHJpbmcxID0gdmFsdWUxICsgXCJcIixcbiAgICAgIGludGVycG9sYXRlMDtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBzdHJpbmcwID0gdGhpcy5nZXRBdHRyaWJ1dGUobmFtZSk7XG4gICAgcmV0dXJuIHN0cmluZzAgPT09IHN0cmluZzEgPyBudWxsXG4gICAgICAgIDogc3RyaW5nMCA9PT0gc3RyaW5nMDAgPyBpbnRlcnBvbGF0ZTBcbiAgICAgICAgOiBpbnRlcnBvbGF0ZTAgPSBpbnRlcnBvbGF0ZShzdHJpbmcwMCA9IHN0cmluZzAsIHZhbHVlMSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGF0dHJDb25zdGFudE5TKGZ1bGxuYW1lLCBpbnRlcnBvbGF0ZSwgdmFsdWUxKSB7XG4gIHZhciBzdHJpbmcwMCxcbiAgICAgIHN0cmluZzEgPSB2YWx1ZTEgKyBcIlwiLFxuICAgICAgaW50ZXJwb2xhdGUwO1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHN0cmluZzAgPSB0aGlzLmdldEF0dHJpYnV0ZU5TKGZ1bGxuYW1lLnNwYWNlLCBmdWxsbmFtZS5sb2NhbCk7XG4gICAgcmV0dXJuIHN0cmluZzAgPT09IHN0cmluZzEgPyBudWxsXG4gICAgICAgIDogc3RyaW5nMCA9PT0gc3RyaW5nMDAgPyBpbnRlcnBvbGF0ZTBcbiAgICAgICAgOiBpbnRlcnBvbGF0ZTAgPSBpbnRlcnBvbGF0ZShzdHJpbmcwMCA9IHN0cmluZzAsIHZhbHVlMSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGF0dHJGdW5jdGlvbihuYW1lLCBpbnRlcnBvbGF0ZSwgdmFsdWUpIHtcbiAgdmFyIHN0cmluZzAwLFxuICAgICAgc3RyaW5nMTAsXG4gICAgICBpbnRlcnBvbGF0ZTA7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgc3RyaW5nMCwgdmFsdWUxID0gdmFsdWUodGhpcyksIHN0cmluZzE7XG4gICAgaWYgKHZhbHVlMSA9PSBudWxsKSByZXR1cm4gdm9pZCB0aGlzLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICBzdHJpbmcwID0gdGhpcy5nZXRBdHRyaWJ1dGUobmFtZSk7XG4gICAgc3RyaW5nMSA9IHZhbHVlMSArIFwiXCI7XG4gICAgcmV0dXJuIHN0cmluZzAgPT09IHN0cmluZzEgPyBudWxsXG4gICAgICAgIDogc3RyaW5nMCA9PT0gc3RyaW5nMDAgJiYgc3RyaW5nMSA9PT0gc3RyaW5nMTAgPyBpbnRlcnBvbGF0ZTBcbiAgICAgICAgOiAoc3RyaW5nMTAgPSBzdHJpbmcxLCBpbnRlcnBvbGF0ZTAgPSBpbnRlcnBvbGF0ZShzdHJpbmcwMCA9IHN0cmluZzAsIHZhbHVlMSkpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBhdHRyRnVuY3Rpb25OUyhmdWxsbmFtZSwgaW50ZXJwb2xhdGUsIHZhbHVlKSB7XG4gIHZhciBzdHJpbmcwMCxcbiAgICAgIHN0cmluZzEwLFxuICAgICAgaW50ZXJwb2xhdGUwO1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHN0cmluZzAsIHZhbHVlMSA9IHZhbHVlKHRoaXMpLCBzdHJpbmcxO1xuICAgIGlmICh2YWx1ZTEgPT0gbnVsbCkgcmV0dXJuIHZvaWQgdGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhmdWxsbmFtZS5zcGFjZSwgZnVsbG5hbWUubG9jYWwpO1xuICAgIHN0cmluZzAgPSB0aGlzLmdldEF0dHJpYnV0ZU5TKGZ1bGxuYW1lLnNwYWNlLCBmdWxsbmFtZS5sb2NhbCk7XG4gICAgc3RyaW5nMSA9IHZhbHVlMSArIFwiXCI7XG4gICAgcmV0dXJuIHN0cmluZzAgPT09IHN0cmluZzEgPyBudWxsXG4gICAgICAgIDogc3RyaW5nMCA9PT0gc3RyaW5nMDAgJiYgc3RyaW5nMSA9PT0gc3RyaW5nMTAgPyBpbnRlcnBvbGF0ZTBcbiAgICAgICAgOiAoc3RyaW5nMTAgPSBzdHJpbmcxLCBpbnRlcnBvbGF0ZTAgPSBpbnRlcnBvbGF0ZShzdHJpbmcwMCA9IHN0cmluZzAsIHZhbHVlMSkpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICB2YXIgZnVsbG5hbWUgPSBuYW1lc3BhY2UobmFtZSksIGkgPSBmdWxsbmFtZSA9PT0gXCJ0cmFuc2Zvcm1cIiA/IGludGVycG9sYXRlVHJhbnNmb3JtIDogaW50ZXJwb2xhdGU7XG4gIHJldHVybiB0aGlzLmF0dHJUd2VlbihuYW1lLCB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgPyAoZnVsbG5hbWUubG9jYWwgPyBhdHRyRnVuY3Rpb25OUyA6IGF0dHJGdW5jdGlvbikoZnVsbG5hbWUsIGksIHR3ZWVuVmFsdWUodGhpcywgXCJhdHRyLlwiICsgbmFtZSwgdmFsdWUpKVxuICAgICAgOiB2YWx1ZSA9PSBudWxsID8gKGZ1bGxuYW1lLmxvY2FsID8gYXR0clJlbW92ZU5TIDogYXR0clJlbW92ZSkoZnVsbG5hbWUpXG4gICAgICA6IChmdWxsbmFtZS5sb2NhbCA/IGF0dHJDb25zdGFudE5TIDogYXR0ckNvbnN0YW50KShmdWxsbmFtZSwgaSwgdmFsdWUpKTtcbn1cbiIsICJpbXBvcnQge25hbWVzcGFjZX0gZnJvbSBcImQzLXNlbGVjdGlvblwiO1xuXG5mdW5jdGlvbiBhdHRySW50ZXJwb2xhdGUobmFtZSwgaSkge1xuICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKG5hbWUsIGkuY2FsbCh0aGlzLCB0KSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGF0dHJJbnRlcnBvbGF0ZU5TKGZ1bGxuYW1lLCBpKSB7XG4gIHJldHVybiBmdW5jdGlvbih0KSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGVOUyhmdWxsbmFtZS5zcGFjZSwgZnVsbG5hbWUubG9jYWwsIGkuY2FsbCh0aGlzLCB0KSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGF0dHJUd2Vlbk5TKGZ1bGxuYW1lLCB2YWx1ZSkge1xuICB2YXIgdDAsIGkwO1xuICBmdW5jdGlvbiB0d2VlbigpIHtcbiAgICB2YXIgaSA9IHZhbHVlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgaWYgKGkgIT09IGkwKSB0MCA9IChpMCA9IGkpICYmIGF0dHJJbnRlcnBvbGF0ZU5TKGZ1bGxuYW1lLCBpKTtcbiAgICByZXR1cm4gdDA7XG4gIH1cbiAgdHdlZW4uX3ZhbHVlID0gdmFsdWU7XG4gIHJldHVybiB0d2Vlbjtcbn1cblxuZnVuY3Rpb24gYXR0clR3ZWVuKG5hbWUsIHZhbHVlKSB7XG4gIHZhciB0MCwgaTA7XG4gIGZ1bmN0aW9uIHR3ZWVuKCkge1xuICAgIHZhciBpID0gdmFsdWUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICBpZiAoaSAhPT0gaTApIHQwID0gKGkwID0gaSkgJiYgYXR0ckludGVycG9sYXRlKG5hbWUsIGkpO1xuICAgIHJldHVybiB0MDtcbiAgfVxuICB0d2Vlbi5fdmFsdWUgPSB2YWx1ZTtcbiAgcmV0dXJuIHR3ZWVuO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICB2YXIga2V5ID0gXCJhdHRyLlwiICsgbmFtZTtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAyKSByZXR1cm4gKGtleSA9IHRoaXMudHdlZW4oa2V5KSkgJiYga2V5Ll92YWx1ZTtcbiAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiB0aGlzLnR3ZWVuKGtleSwgbnVsbCk7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IEVycm9yO1xuICB2YXIgZnVsbG5hbWUgPSBuYW1lc3BhY2UobmFtZSk7XG4gIHJldHVybiB0aGlzLnR3ZWVuKGtleSwgKGZ1bGxuYW1lLmxvY2FsID8gYXR0clR3ZWVuTlMgOiBhdHRyVHdlZW4pKGZ1bGxuYW1lLCB2YWx1ZSkpO1xufVxuIiwgImltcG9ydCB7Z2V0LCBpbml0fSBmcm9tIFwiLi9zY2hlZHVsZS5qc1wiO1xuXG5mdW5jdGlvbiBkZWxheUZ1bmN0aW9uKGlkLCB2YWx1ZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgaW5pdCh0aGlzLCBpZCkuZGVsYXkgPSArdmFsdWUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZGVsYXlDb25zdGFudChpZCwgdmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID0gK3ZhbHVlLCBmdW5jdGlvbigpIHtcbiAgICBpbml0KHRoaXMsIGlkKS5kZWxheSA9IHZhbHVlO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih2YWx1ZSkge1xuICB2YXIgaWQgPSB0aGlzLl9pZDtcblxuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aFxuICAgICAgPyB0aGlzLmVhY2goKHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgPyBkZWxheUZ1bmN0aW9uXG4gICAgICAgICAgOiBkZWxheUNvbnN0YW50KShpZCwgdmFsdWUpKVxuICAgICAgOiBnZXQodGhpcy5ub2RlKCksIGlkKS5kZWxheTtcbn1cbiIsICJpbXBvcnQge2dldCwgc2V0fSBmcm9tIFwiLi9zY2hlZHVsZS5qc1wiO1xuXG5mdW5jdGlvbiBkdXJhdGlvbkZ1bmN0aW9uKGlkLCB2YWx1ZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgc2V0KHRoaXMsIGlkKS5kdXJhdGlvbiA9ICt2YWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBkdXJhdGlvbkNvbnN0YW50KGlkLCB2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPSArdmFsdWUsIGZ1bmN0aW9uKCkge1xuICAgIHNldCh0aGlzLCBpZCkuZHVyYXRpb24gPSB2YWx1ZTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odmFsdWUpIHtcbiAgdmFyIGlkID0gdGhpcy5faWQ7XG5cbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGhcbiAgICAgID8gdGhpcy5lYWNoKCh0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgID8gZHVyYXRpb25GdW5jdGlvblxuICAgICAgICAgIDogZHVyYXRpb25Db25zdGFudCkoaWQsIHZhbHVlKSlcbiAgICAgIDogZ2V0KHRoaXMubm9kZSgpLCBpZCkuZHVyYXRpb247XG59XG4iLCAiaW1wb3J0IHtnZXQsIHNldH0gZnJvbSBcIi4vc2NoZWR1bGUuanNcIjtcblxuZnVuY3Rpb24gZWFzZUNvbnN0YW50KGlkLCB2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBFcnJvcjtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHNldCh0aGlzLCBpZCkuZWFzZSA9IHZhbHVlO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih2YWx1ZSkge1xuICB2YXIgaWQgPSB0aGlzLl9pZDtcblxuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aFxuICAgICAgPyB0aGlzLmVhY2goZWFzZUNvbnN0YW50KGlkLCB2YWx1ZSkpXG4gICAgICA6IGdldCh0aGlzLm5vZGUoKSwgaWQpLmVhc2U7XG59XG4iLCAiaW1wb3J0IHtzZXR9IGZyb20gXCIuL3NjaGVkdWxlLmpzXCI7XG5cbmZ1bmN0aW9uIGVhc2VWYXJ5aW5nKGlkLCB2YWx1ZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHYgPSB2YWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIGlmICh0eXBlb2YgdiAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgRXJyb3I7XG4gICAgc2V0KHRoaXMsIGlkKS5lYXNlID0gdjtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgRXJyb3I7XG4gIHJldHVybiB0aGlzLmVhY2goZWFzZVZhcnlpbmcodGhpcy5faWQsIHZhbHVlKSk7XG59XG4iLCAiaW1wb3J0IHttYXRjaGVyfSBmcm9tIFwiZDMtc2VsZWN0aW9uXCI7XG5pbXBvcnQge1RyYW5zaXRpb259IGZyb20gXCIuL2luZGV4LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG1hdGNoKSB7XG4gIGlmICh0eXBlb2YgbWF0Y2ggIT09IFwiZnVuY3Rpb25cIikgbWF0Y2ggPSBtYXRjaGVyKG1hdGNoKTtcblxuICBmb3IgKHZhciBncm91cHMgPSB0aGlzLl9ncm91cHMsIG0gPSBncm91cHMubGVuZ3RoLCBzdWJncm91cHMgPSBuZXcgQXJyYXkobSksIGogPSAwOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAgPSBncm91cHNbal0sIG4gPSBncm91cC5sZW5ndGgsIHN1Ymdyb3VwID0gc3ViZ3JvdXBzW2pdID0gW10sIG5vZGUsIGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAoKG5vZGUgPSBncm91cFtpXSkgJiYgbWF0Y2guY2FsbChub2RlLCBub2RlLl9fZGF0YV9fLCBpLCBncm91cCkpIHtcbiAgICAgICAgc3ViZ3JvdXAucHVzaChub2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IFRyYW5zaXRpb24oc3ViZ3JvdXBzLCB0aGlzLl9wYXJlbnRzLCB0aGlzLl9uYW1lLCB0aGlzLl9pZCk7XG59XG4iLCAiaW1wb3J0IHtUcmFuc2l0aW9ufSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih0cmFuc2l0aW9uKSB7XG4gIGlmICh0cmFuc2l0aW9uLl9pZCAhPT0gdGhpcy5faWQpIHRocm93IG5ldyBFcnJvcjtcblxuICBmb3IgKHZhciBncm91cHMwID0gdGhpcy5fZ3JvdXBzLCBncm91cHMxID0gdHJhbnNpdGlvbi5fZ3JvdXBzLCBtMCA9IGdyb3VwczAubGVuZ3RoLCBtMSA9IGdyb3VwczEubGVuZ3RoLCBtID0gTWF0aC5taW4obTAsIG0xKSwgbWVyZ2VzID0gbmV3IEFycmF5KG0wKSwgaiA9IDA7IGogPCBtOyArK2opIHtcbiAgICBmb3IgKHZhciBncm91cDAgPSBncm91cHMwW2pdLCBncm91cDEgPSBncm91cHMxW2pdLCBuID0gZ3JvdXAwLmxlbmd0aCwgbWVyZ2UgPSBtZXJnZXNbal0gPSBuZXcgQXJyYXkobiksIG5vZGUsIGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAobm9kZSA9IGdyb3VwMFtpXSB8fCBncm91cDFbaV0pIHtcbiAgICAgICAgbWVyZ2VbaV0gPSBub2RlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZvciAoOyBqIDwgbTA7ICsraikge1xuICAgIG1lcmdlc1tqXSA9IGdyb3VwczBbal07XG4gIH1cblxuICByZXR1cm4gbmV3IFRyYW5zaXRpb24obWVyZ2VzLCB0aGlzLl9wYXJlbnRzLCB0aGlzLl9uYW1lLCB0aGlzLl9pZCk7XG59XG4iLCAiaW1wb3J0IHtnZXQsIHNldCwgaW5pdH0gZnJvbSBcIi4vc2NoZWR1bGUuanNcIjtcblxuZnVuY3Rpb24gc3RhcnQobmFtZSkge1xuICByZXR1cm4gKG5hbWUgKyBcIlwiKS50cmltKCkuc3BsaXQoL158XFxzKy8pLmV2ZXJ5KGZ1bmN0aW9uKHQpIHtcbiAgICB2YXIgaSA9IHQuaW5kZXhPZihcIi5cIik7XG4gICAgaWYgKGkgPj0gMCkgdCA9IHQuc2xpY2UoMCwgaSk7XG4gICAgcmV0dXJuICF0IHx8IHQgPT09IFwic3RhcnRcIjtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG9uRnVuY3Rpb24oaWQsIG5hbWUsIGxpc3RlbmVyKSB7XG4gIHZhciBvbjAsIG9uMSwgc2l0ID0gc3RhcnQobmFtZSkgPyBpbml0IDogc2V0O1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHNjaGVkdWxlID0gc2l0KHRoaXMsIGlkKSxcbiAgICAgICAgb24gPSBzY2hlZHVsZS5vbjtcblxuICAgIC8vIElmIHRoaXMgbm9kZSBzaGFyZWQgYSBkaXNwYXRjaCB3aXRoIHRoZSBwcmV2aW91cyBub2RlLFxuICAgIC8vIGp1c3QgYXNzaWduIHRoZSB1cGRhdGVkIHNoYXJlZCBkaXNwYXRjaCBhbmQgd2VcdTIwMTlyZSBkb25lIVxuICAgIC8vIE90aGVyd2lzZSwgY29weS1vbi13cml0ZS5cbiAgICBpZiAob24gIT09IG9uMCkgKG9uMSA9IChvbjAgPSBvbikuY29weSgpKS5vbihuYW1lLCBsaXN0ZW5lcik7XG5cbiAgICBzY2hlZHVsZS5vbiA9IG9uMTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obmFtZSwgbGlzdGVuZXIpIHtcbiAgdmFyIGlkID0gdGhpcy5faWQ7XG5cbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPCAyXG4gICAgICA/IGdldCh0aGlzLm5vZGUoKSwgaWQpLm9uLm9uKG5hbWUpXG4gICAgICA6IHRoaXMuZWFjaChvbkZ1bmN0aW9uKGlkLCBuYW1lLCBsaXN0ZW5lcikpO1xufVxuIiwgImZ1bmN0aW9uIHJlbW92ZUZ1bmN0aW9uKGlkKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgcGFyZW50ID0gdGhpcy5wYXJlbnROb2RlO1xuICAgIGZvciAodmFyIGkgaW4gdGhpcy5fX3RyYW5zaXRpb24pIGlmICgraSAhPT0gaWQpIHJldHVybjtcbiAgICBpZiAocGFyZW50KSBwYXJlbnQucmVtb3ZlQ2hpbGQodGhpcyk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy5vbihcImVuZC5yZW1vdmVcIiwgcmVtb3ZlRnVuY3Rpb24odGhpcy5faWQpKTtcbn1cbiIsICJpbXBvcnQge3NlbGVjdG9yfSBmcm9tIFwiZDMtc2VsZWN0aW9uXCI7XG5pbXBvcnQge1RyYW5zaXRpb259IGZyb20gXCIuL2luZGV4LmpzXCI7XG5pbXBvcnQgc2NoZWR1bGUsIHtnZXR9IGZyb20gXCIuL3NjaGVkdWxlLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHNlbGVjdCkge1xuICB2YXIgbmFtZSA9IHRoaXMuX25hbWUsXG4gICAgICBpZCA9IHRoaXMuX2lkO1xuXG4gIGlmICh0eXBlb2Ygc2VsZWN0ICE9PSBcImZ1bmN0aW9uXCIpIHNlbGVjdCA9IHNlbGVjdG9yKHNlbGVjdCk7XG5cbiAgZm9yICh2YXIgZ3JvdXBzID0gdGhpcy5fZ3JvdXBzLCBtID0gZ3JvdXBzLmxlbmd0aCwgc3ViZ3JvdXBzID0gbmV3IEFycmF5KG0pLCBqID0gMDsgaiA8IG07ICsraikge1xuICAgIGZvciAodmFyIGdyb3VwID0gZ3JvdXBzW2pdLCBuID0gZ3JvdXAubGVuZ3RoLCBzdWJncm91cCA9IHN1Ymdyb3Vwc1tqXSA9IG5ldyBBcnJheShuKSwgbm9kZSwgc3Vibm9kZSwgaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICAgIGlmICgobm9kZSA9IGdyb3VwW2ldKSAmJiAoc3Vibm9kZSA9IHNlbGVjdC5jYWxsKG5vZGUsIG5vZGUuX19kYXRhX18sIGksIGdyb3VwKSkpIHtcbiAgICAgICAgaWYgKFwiX19kYXRhX19cIiBpbiBub2RlKSBzdWJub2RlLl9fZGF0YV9fID0gbm9kZS5fX2RhdGFfXztcbiAgICAgICAgc3ViZ3JvdXBbaV0gPSBzdWJub2RlO1xuICAgICAgICBzY2hlZHVsZShzdWJncm91cFtpXSwgbmFtZSwgaWQsIGksIHN1Ymdyb3VwLCBnZXQobm9kZSwgaWQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IFRyYW5zaXRpb24oc3ViZ3JvdXBzLCB0aGlzLl9wYXJlbnRzLCBuYW1lLCBpZCk7XG59XG4iLCAiaW1wb3J0IHtzZWxlY3RvckFsbH0gZnJvbSBcImQzLXNlbGVjdGlvblwiO1xuaW1wb3J0IHtUcmFuc2l0aW9ufSBmcm9tIFwiLi9pbmRleC5qc1wiO1xuaW1wb3J0IHNjaGVkdWxlLCB7Z2V0fSBmcm9tIFwiLi9zY2hlZHVsZS5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzZWxlY3QpIHtcbiAgdmFyIG5hbWUgPSB0aGlzLl9uYW1lLFxuICAgICAgaWQgPSB0aGlzLl9pZDtcblxuICBpZiAodHlwZW9mIHNlbGVjdCAhPT0gXCJmdW5jdGlvblwiKSBzZWxlY3QgPSBzZWxlY3RvckFsbChzZWxlY3QpO1xuXG4gIGZvciAodmFyIGdyb3VwcyA9IHRoaXMuX2dyb3VwcywgbSA9IGdyb3Vwcy5sZW5ndGgsIHN1Ymdyb3VwcyA9IFtdLCBwYXJlbnRzID0gW10sIGogPSAwOyBqIDwgbTsgKytqKSB7XG4gICAgZm9yICh2YXIgZ3JvdXAgPSBncm91cHNbal0sIG4gPSBncm91cC5sZW5ndGgsIG5vZGUsIGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBpZiAobm9kZSA9IGdyb3VwW2ldKSB7XG4gICAgICAgIGZvciAodmFyIGNoaWxkcmVuID0gc2VsZWN0LmNhbGwobm9kZSwgbm9kZS5fX2RhdGFfXywgaSwgZ3JvdXApLCBjaGlsZCwgaW5oZXJpdCA9IGdldChub2RlLCBpZCksIGsgPSAwLCBsID0gY2hpbGRyZW4ubGVuZ3RoOyBrIDwgbDsgKytrKSB7XG4gICAgICAgICAgaWYgKGNoaWxkID0gY2hpbGRyZW5ba10pIHtcbiAgICAgICAgICAgIHNjaGVkdWxlKGNoaWxkLCBuYW1lLCBpZCwgaywgY2hpbGRyZW4sIGluaGVyaXQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdWJncm91cHMucHVzaChjaGlsZHJlbik7XG4gICAgICAgIHBhcmVudHMucHVzaChub2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IFRyYW5zaXRpb24oc3ViZ3JvdXBzLCBwYXJlbnRzLCBuYW1lLCBpZCk7XG59XG4iLCAiaW1wb3J0IHtzZWxlY3Rpb259IGZyb20gXCJkMy1zZWxlY3Rpb25cIjtcblxudmFyIFNlbGVjdGlvbiA9IHNlbGVjdGlvbi5wcm90b3R5cGUuY29uc3RydWN0b3I7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gbmV3IFNlbGVjdGlvbih0aGlzLl9ncm91cHMsIHRoaXMuX3BhcmVudHMpO1xufVxuIiwgImltcG9ydCB7aW50ZXJwb2xhdGVUcmFuc2Zvcm1Dc3MgYXMgaW50ZXJwb2xhdGVUcmFuc2Zvcm19IGZyb20gXCJkMy1pbnRlcnBvbGF0ZVwiO1xuaW1wb3J0IHtzdHlsZX0gZnJvbSBcImQzLXNlbGVjdGlvblwiO1xuaW1wb3J0IHtzZXR9IGZyb20gXCIuL3NjaGVkdWxlLmpzXCI7XG5pbXBvcnQge3R3ZWVuVmFsdWV9IGZyb20gXCIuL3R3ZWVuLmpzXCI7XG5pbXBvcnQgaW50ZXJwb2xhdGUgZnJvbSBcIi4vaW50ZXJwb2xhdGUuanNcIjtcblxuZnVuY3Rpb24gc3R5bGVOdWxsKG5hbWUsIGludGVycG9sYXRlKSB7XG4gIHZhciBzdHJpbmcwMCxcbiAgICAgIHN0cmluZzEwLFxuICAgICAgaW50ZXJwb2xhdGUwO1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHN0cmluZzAgPSBzdHlsZSh0aGlzLCBuYW1lKSxcbiAgICAgICAgc3RyaW5nMSA9ICh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KG5hbWUpLCBzdHlsZSh0aGlzLCBuYW1lKSk7XG4gICAgcmV0dXJuIHN0cmluZzAgPT09IHN0cmluZzEgPyBudWxsXG4gICAgICAgIDogc3RyaW5nMCA9PT0gc3RyaW5nMDAgJiYgc3RyaW5nMSA9PT0gc3RyaW5nMTAgPyBpbnRlcnBvbGF0ZTBcbiAgICAgICAgOiBpbnRlcnBvbGF0ZTAgPSBpbnRlcnBvbGF0ZShzdHJpbmcwMCA9IHN0cmluZzAsIHN0cmluZzEwID0gc3RyaW5nMSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHN0eWxlUmVtb3ZlKG5hbWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkobmFtZSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHN0eWxlQ29uc3RhbnQobmFtZSwgaW50ZXJwb2xhdGUsIHZhbHVlMSkge1xuICB2YXIgc3RyaW5nMDAsXG4gICAgICBzdHJpbmcxID0gdmFsdWUxICsgXCJcIixcbiAgICAgIGludGVycG9sYXRlMDtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBzdHJpbmcwID0gc3R5bGUodGhpcywgbmFtZSk7XG4gICAgcmV0dXJuIHN0cmluZzAgPT09IHN0cmluZzEgPyBudWxsXG4gICAgICAgIDogc3RyaW5nMCA9PT0gc3RyaW5nMDAgPyBpbnRlcnBvbGF0ZTBcbiAgICAgICAgOiBpbnRlcnBvbGF0ZTAgPSBpbnRlcnBvbGF0ZShzdHJpbmcwMCA9IHN0cmluZzAsIHZhbHVlMSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHN0eWxlRnVuY3Rpb24obmFtZSwgaW50ZXJwb2xhdGUsIHZhbHVlKSB7XG4gIHZhciBzdHJpbmcwMCxcbiAgICAgIHN0cmluZzEwLFxuICAgICAgaW50ZXJwb2xhdGUwO1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHN0cmluZzAgPSBzdHlsZSh0aGlzLCBuYW1lKSxcbiAgICAgICAgdmFsdWUxID0gdmFsdWUodGhpcyksXG4gICAgICAgIHN0cmluZzEgPSB2YWx1ZTEgKyBcIlwiO1xuICAgIGlmICh2YWx1ZTEgPT0gbnVsbCkgc3RyaW5nMSA9IHZhbHVlMSA9ICh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KG5hbWUpLCBzdHlsZSh0aGlzLCBuYW1lKSk7XG4gICAgcmV0dXJuIHN0cmluZzAgPT09IHN0cmluZzEgPyBudWxsXG4gICAgICAgIDogc3RyaW5nMCA9PT0gc3RyaW5nMDAgJiYgc3RyaW5nMSA9PT0gc3RyaW5nMTAgPyBpbnRlcnBvbGF0ZTBcbiAgICAgICAgOiAoc3RyaW5nMTAgPSBzdHJpbmcxLCBpbnRlcnBvbGF0ZTAgPSBpbnRlcnBvbGF0ZShzdHJpbmcwMCA9IHN0cmluZzAsIHZhbHVlMSkpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBzdHlsZU1heWJlUmVtb3ZlKGlkLCBuYW1lKSB7XG4gIHZhciBvbjAsIG9uMSwgbGlzdGVuZXIwLCBrZXkgPSBcInN0eWxlLlwiICsgbmFtZSwgZXZlbnQgPSBcImVuZC5cIiArIGtleSwgcmVtb3ZlO1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHNjaGVkdWxlID0gc2V0KHRoaXMsIGlkKSxcbiAgICAgICAgb24gPSBzY2hlZHVsZS5vbixcbiAgICAgICAgbGlzdGVuZXIgPSBzY2hlZHVsZS52YWx1ZVtrZXldID09IG51bGwgPyByZW1vdmUgfHwgKHJlbW92ZSA9IHN0eWxlUmVtb3ZlKG5hbWUpKSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIElmIHRoaXMgbm9kZSBzaGFyZWQgYSBkaXNwYXRjaCB3aXRoIHRoZSBwcmV2aW91cyBub2RlLFxuICAgIC8vIGp1c3QgYXNzaWduIHRoZSB1cGRhdGVkIHNoYXJlZCBkaXNwYXRjaCBhbmQgd2VcdTIwMTlyZSBkb25lIVxuICAgIC8vIE90aGVyd2lzZSwgY29weS1vbi13cml0ZS5cbiAgICBpZiAob24gIT09IG9uMCB8fCBsaXN0ZW5lcjAgIT09IGxpc3RlbmVyKSAob24xID0gKG9uMCA9IG9uKS5jb3B5KCkpLm9uKGV2ZW50LCBsaXN0ZW5lcjAgPSBsaXN0ZW5lcik7XG5cbiAgICBzY2hlZHVsZS5vbiA9IG9uMTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obmFtZSwgdmFsdWUsIHByaW9yaXR5KSB7XG4gIHZhciBpID0gKG5hbWUgKz0gXCJcIikgPT09IFwidHJhbnNmb3JtXCIgPyBpbnRlcnBvbGF0ZVRyYW5zZm9ybSA6IGludGVycG9sYXRlO1xuICByZXR1cm4gdmFsdWUgPT0gbnVsbCA/IHRoaXNcbiAgICAgIC5zdHlsZVR3ZWVuKG5hbWUsIHN0eWxlTnVsbChuYW1lLCBpKSlcbiAgICAgIC5vbihcImVuZC5zdHlsZS5cIiArIG5hbWUsIHN0eWxlUmVtb3ZlKG5hbWUpKVxuICAgIDogdHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCIgPyB0aGlzXG4gICAgICAuc3R5bGVUd2VlbihuYW1lLCBzdHlsZUZ1bmN0aW9uKG5hbWUsIGksIHR3ZWVuVmFsdWUodGhpcywgXCJzdHlsZS5cIiArIG5hbWUsIHZhbHVlKSkpXG4gICAgICAuZWFjaChzdHlsZU1heWJlUmVtb3ZlKHRoaXMuX2lkLCBuYW1lKSlcbiAgICA6IHRoaXNcbiAgICAgIC5zdHlsZVR3ZWVuKG5hbWUsIHN0eWxlQ29uc3RhbnQobmFtZSwgaSwgdmFsdWUpLCBwcmlvcml0eSlcbiAgICAgIC5vbihcImVuZC5zdHlsZS5cIiArIG5hbWUsIG51bGwpO1xufVxuIiwgImZ1bmN0aW9uIHN0eWxlSW50ZXJwb2xhdGUobmFtZSwgaSwgcHJpb3JpdHkpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHQpIHtcbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KG5hbWUsIGkuY2FsbCh0aGlzLCB0KSwgcHJpb3JpdHkpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBzdHlsZVR3ZWVuKG5hbWUsIHZhbHVlLCBwcmlvcml0eSkge1xuICB2YXIgdCwgaTA7XG4gIGZ1bmN0aW9uIHR3ZWVuKCkge1xuICAgIHZhciBpID0gdmFsdWUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICBpZiAoaSAhPT0gaTApIHQgPSAoaTAgPSBpKSAmJiBzdHlsZUludGVycG9sYXRlKG5hbWUsIGksIHByaW9yaXR5KTtcbiAgICByZXR1cm4gdDtcbiAgfVxuICB0d2Vlbi5fdmFsdWUgPSB2YWx1ZTtcbiAgcmV0dXJuIHR3ZWVuO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihuYW1lLCB2YWx1ZSwgcHJpb3JpdHkpIHtcbiAgdmFyIGtleSA9IFwic3R5bGUuXCIgKyAobmFtZSArPSBcIlwiKTtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAyKSByZXR1cm4gKGtleSA9IHRoaXMudHdlZW4oa2V5KSkgJiYga2V5Ll92YWx1ZTtcbiAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiB0aGlzLnR3ZWVuKGtleSwgbnVsbCk7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IEVycm9yO1xuICByZXR1cm4gdGhpcy50d2VlbihrZXksIHN0eWxlVHdlZW4obmFtZSwgdmFsdWUsIHByaW9yaXR5ID09IG51bGwgPyBcIlwiIDogcHJpb3JpdHkpKTtcbn1cbiIsICJpbXBvcnQge3R3ZWVuVmFsdWV9IGZyb20gXCIuL3R3ZWVuLmpzXCI7XG5cbmZ1bmN0aW9uIHRleHRDb25zdGFudCh2YWx1ZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy50ZXh0Q29udGVudCA9IHZhbHVlO1xuICB9O1xufVxuXG5mdW5jdGlvbiB0ZXh0RnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciB2YWx1ZTEgPSB2YWx1ZSh0aGlzKTtcbiAgICB0aGlzLnRleHRDb250ZW50ID0gdmFsdWUxID09IG51bGwgPyBcIlwiIDogdmFsdWUxO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdGhpcy50d2VlbihcInRleHRcIiwgdHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgID8gdGV4dEZ1bmN0aW9uKHR3ZWVuVmFsdWUodGhpcywgXCJ0ZXh0XCIsIHZhbHVlKSlcbiAgICAgIDogdGV4dENvbnN0YW50KHZhbHVlID09IG51bGwgPyBcIlwiIDogdmFsdWUgKyBcIlwiKSk7XG59XG4iLCAiZnVuY3Rpb24gdGV4dEludGVycG9sYXRlKGkpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHQpIHtcbiAgICB0aGlzLnRleHRDb250ZW50ID0gaS5jYWxsKHRoaXMsIHQpO1xuICB9O1xufVxuXG5mdW5jdGlvbiB0ZXh0VHdlZW4odmFsdWUpIHtcbiAgdmFyIHQwLCBpMDtcbiAgZnVuY3Rpb24gdHdlZW4oKSB7XG4gICAgdmFyIGkgPSB2YWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIGlmIChpICE9PSBpMCkgdDAgPSAoaTAgPSBpKSAmJiB0ZXh0SW50ZXJwb2xhdGUoaSk7XG4gICAgcmV0dXJuIHQwO1xuICB9XG4gIHR3ZWVuLl92YWx1ZSA9IHZhbHVlO1xuICByZXR1cm4gdHdlZW47XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHZhciBrZXkgPSBcInRleHRcIjtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAxKSByZXR1cm4gKGtleSA9IHRoaXMudHdlZW4oa2V5KSkgJiYga2V5Ll92YWx1ZTtcbiAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiB0aGlzLnR3ZWVuKGtleSwgbnVsbCk7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IEVycm9yO1xuICByZXR1cm4gdGhpcy50d2VlbihrZXksIHRleHRUd2Vlbih2YWx1ZSkpO1xufVxuIiwgImltcG9ydCB7VHJhbnNpdGlvbiwgbmV3SWR9IGZyb20gXCIuL2luZGV4LmpzXCI7XG5pbXBvcnQgc2NoZWR1bGUsIHtnZXR9IGZyb20gXCIuL3NjaGVkdWxlLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICB2YXIgbmFtZSA9IHRoaXMuX25hbWUsXG4gICAgICBpZDAgPSB0aGlzLl9pZCxcbiAgICAgIGlkMSA9IG5ld0lkKCk7XG5cbiAgZm9yICh2YXIgZ3JvdXBzID0gdGhpcy5fZ3JvdXBzLCBtID0gZ3JvdXBzLmxlbmd0aCwgaiA9IDA7IGogPCBtOyArK2opIHtcbiAgICBmb3IgKHZhciBncm91cCA9IGdyb3Vwc1tqXSwgbiA9IGdyb3VwLmxlbmd0aCwgbm9kZSwgaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICAgIGlmIChub2RlID0gZ3JvdXBbaV0pIHtcbiAgICAgICAgdmFyIGluaGVyaXQgPSBnZXQobm9kZSwgaWQwKTtcbiAgICAgICAgc2NoZWR1bGUobm9kZSwgbmFtZSwgaWQxLCBpLCBncm91cCwge1xuICAgICAgICAgIHRpbWU6IGluaGVyaXQudGltZSArIGluaGVyaXQuZGVsYXkgKyBpbmhlcml0LmR1cmF0aW9uLFxuICAgICAgICAgIGRlbGF5OiAwLFxuICAgICAgICAgIGR1cmF0aW9uOiBpbmhlcml0LmR1cmF0aW9uLFxuICAgICAgICAgIGVhc2U6IGluaGVyaXQuZWFzZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IFRyYW5zaXRpb24oZ3JvdXBzLCB0aGlzLl9wYXJlbnRzLCBuYW1lLCBpZDEpO1xufVxuIiwgImltcG9ydCB7c2V0fSBmcm9tIFwiLi9zY2hlZHVsZS5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgdmFyIG9uMCwgb24xLCB0aGF0ID0gdGhpcywgaWQgPSB0aGF0Ll9pZCwgc2l6ZSA9IHRoYXQuc2l6ZSgpO1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgdmFyIGNhbmNlbCA9IHt2YWx1ZTogcmVqZWN0fSxcbiAgICAgICAgZW5kID0ge3ZhbHVlOiBmdW5jdGlvbigpIHsgaWYgKC0tc2l6ZSA9PT0gMCkgcmVzb2x2ZSgpOyB9fTtcblxuICAgIHRoYXQuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgIHZhciBzY2hlZHVsZSA9IHNldCh0aGlzLCBpZCksXG4gICAgICAgICAgb24gPSBzY2hlZHVsZS5vbjtcblxuICAgICAgLy8gSWYgdGhpcyBub2RlIHNoYXJlZCBhIGRpc3BhdGNoIHdpdGggdGhlIHByZXZpb3VzIG5vZGUsXG4gICAgICAvLyBqdXN0IGFzc2lnbiB0aGUgdXBkYXRlZCBzaGFyZWQgZGlzcGF0Y2ggYW5kIHdlXHUyMDE5cmUgZG9uZSFcbiAgICAgIC8vIE90aGVyd2lzZSwgY29weS1vbi13cml0ZS5cbiAgICAgIGlmIChvbiAhPT0gb24wKSB7XG4gICAgICAgIG9uMSA9IChvbjAgPSBvbikuY29weSgpO1xuICAgICAgICBvbjEuXy5jYW5jZWwucHVzaChjYW5jZWwpO1xuICAgICAgICBvbjEuXy5pbnRlcnJ1cHQucHVzaChjYW5jZWwpO1xuICAgICAgICBvbjEuXy5lbmQucHVzaChlbmQpO1xuICAgICAgfVxuXG4gICAgICBzY2hlZHVsZS5vbiA9IG9uMTtcbiAgICB9KTtcblxuICAgIC8vIFRoZSBzZWxlY3Rpb24gd2FzIGVtcHR5LCByZXNvbHZlIGVuZCBpbW1lZGlhdGVseVxuICAgIGlmIChzaXplID09PSAwKSByZXNvbHZlKCk7XG4gIH0pO1xufVxuIiwgImltcG9ydCB7c2VsZWN0aW9ufSBmcm9tIFwiZDMtc2VsZWN0aW9uXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl9hdHRyIGZyb20gXCIuL2F0dHIuanNcIjtcbmltcG9ydCB0cmFuc2l0aW9uX2F0dHJUd2VlbiBmcm9tIFwiLi9hdHRyVHdlZW4uanNcIjtcbmltcG9ydCB0cmFuc2l0aW9uX2RlbGF5IGZyb20gXCIuL2RlbGF5LmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl9kdXJhdGlvbiBmcm9tIFwiLi9kdXJhdGlvbi5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fZWFzZSBmcm9tIFwiLi9lYXNlLmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl9lYXNlVmFyeWluZyBmcm9tIFwiLi9lYXNlVmFyeWluZy5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fZmlsdGVyIGZyb20gXCIuL2ZpbHRlci5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fbWVyZ2UgZnJvbSBcIi4vbWVyZ2UuanNcIjtcbmltcG9ydCB0cmFuc2l0aW9uX29uIGZyb20gXCIuL29uLmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl9yZW1vdmUgZnJvbSBcIi4vcmVtb3ZlLmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl9zZWxlY3QgZnJvbSBcIi4vc2VsZWN0LmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl9zZWxlY3RBbGwgZnJvbSBcIi4vc2VsZWN0QWxsLmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl9zZWxlY3Rpb24gZnJvbSBcIi4vc2VsZWN0aW9uLmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl9zdHlsZSBmcm9tIFwiLi9zdHlsZS5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fc3R5bGVUd2VlbiBmcm9tIFwiLi9zdHlsZVR3ZWVuLmpzXCI7XG5pbXBvcnQgdHJhbnNpdGlvbl90ZXh0IGZyb20gXCIuL3RleHQuanNcIjtcbmltcG9ydCB0cmFuc2l0aW9uX3RleHRUd2VlbiBmcm9tIFwiLi90ZXh0VHdlZW4uanNcIjtcbmltcG9ydCB0cmFuc2l0aW9uX3RyYW5zaXRpb24gZnJvbSBcIi4vdHJhbnNpdGlvbi5qc1wiO1xuaW1wb3J0IHRyYW5zaXRpb25fdHdlZW4gZnJvbSBcIi4vdHdlZW4uanNcIjtcbmltcG9ydCB0cmFuc2l0aW9uX2VuZCBmcm9tIFwiLi9lbmQuanNcIjtcblxudmFyIGlkID0gMDtcblxuZXhwb3J0IGZ1bmN0aW9uIFRyYW5zaXRpb24oZ3JvdXBzLCBwYXJlbnRzLCBuYW1lLCBpZCkge1xuICB0aGlzLl9ncm91cHMgPSBncm91cHM7XG4gIHRoaXMuX3BhcmVudHMgPSBwYXJlbnRzO1xuICB0aGlzLl9uYW1lID0gbmFtZTtcbiAgdGhpcy5faWQgPSBpZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdHJhbnNpdGlvbihuYW1lKSB7XG4gIHJldHVybiBzZWxlY3Rpb24oKS50cmFuc2l0aW9uKG5hbWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbmV3SWQoKSB7XG4gIHJldHVybiArK2lkO1xufVxuXG52YXIgc2VsZWN0aW9uX3Byb3RvdHlwZSA9IHNlbGVjdGlvbi5wcm90b3R5cGU7XG5cblRyYW5zaXRpb24ucHJvdG90eXBlID0gdHJhbnNpdGlvbi5wcm90b3R5cGUgPSB7XG4gIGNvbnN0cnVjdG9yOiBUcmFuc2l0aW9uLFxuICBzZWxlY3Q6IHRyYW5zaXRpb25fc2VsZWN0LFxuICBzZWxlY3RBbGw6IHRyYW5zaXRpb25fc2VsZWN0QWxsLFxuICBmaWx0ZXI6IHRyYW5zaXRpb25fZmlsdGVyLFxuICBtZXJnZTogdHJhbnNpdGlvbl9tZXJnZSxcbiAgc2VsZWN0aW9uOiB0cmFuc2l0aW9uX3NlbGVjdGlvbixcbiAgdHJhbnNpdGlvbjogdHJhbnNpdGlvbl90cmFuc2l0aW9uLFxuICBjYWxsOiBzZWxlY3Rpb25fcHJvdG90eXBlLmNhbGwsXG4gIG5vZGVzOiBzZWxlY3Rpb25fcHJvdG90eXBlLm5vZGVzLFxuICBub2RlOiBzZWxlY3Rpb25fcHJvdG90eXBlLm5vZGUsXG4gIHNpemU6IHNlbGVjdGlvbl9wcm90b3R5cGUuc2l6ZSxcbiAgZW1wdHk6IHNlbGVjdGlvbl9wcm90b3R5cGUuZW1wdHksXG4gIGVhY2g6IHNlbGVjdGlvbl9wcm90b3R5cGUuZWFjaCxcbiAgb246IHRyYW5zaXRpb25fb24sXG4gIGF0dHI6IHRyYW5zaXRpb25fYXR0cixcbiAgYXR0clR3ZWVuOiB0cmFuc2l0aW9uX2F0dHJUd2VlbixcbiAgc3R5bGU6IHRyYW5zaXRpb25fc3R5bGUsXG4gIHN0eWxlVHdlZW46IHRyYW5zaXRpb25fc3R5bGVUd2VlbixcbiAgdGV4dDogdHJhbnNpdGlvbl90ZXh0LFxuICB0ZXh0VHdlZW46IHRyYW5zaXRpb25fdGV4dFR3ZWVuLFxuICByZW1vdmU6IHRyYW5zaXRpb25fcmVtb3ZlLFxuICB0d2VlbjogdHJhbnNpdGlvbl90d2VlbixcbiAgZGVsYXk6IHRyYW5zaXRpb25fZGVsYXksXG4gIGR1cmF0aW9uOiB0cmFuc2l0aW9uX2R1cmF0aW9uLFxuICBlYXNlOiB0cmFuc2l0aW9uX2Vhc2UsXG4gIGVhc2VWYXJ5aW5nOiB0cmFuc2l0aW9uX2Vhc2VWYXJ5aW5nLFxuICBlbmQ6IHRyYW5zaXRpb25fZW5kLFxuICBbU3ltYm9sLml0ZXJhdG9yXTogc2VsZWN0aW9uX3Byb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdXG59O1xuIiwgImV4cG9ydCBmdW5jdGlvbiBjdWJpY0luKHQpIHtcbiAgcmV0dXJuIHQgKiB0ICogdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGN1YmljT3V0KHQpIHtcbiAgcmV0dXJuIC0tdCAqIHQgKiB0ICsgMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGN1YmljSW5PdXQodCkge1xuICByZXR1cm4gKCh0ICo9IDIpIDw9IDEgPyB0ICogdCAqIHQgOiAodCAtPSAyKSAqIHQgKiB0ICsgMikgLyAyO1xufVxuIiwgImltcG9ydCB7VHJhbnNpdGlvbiwgbmV3SWR9IGZyb20gXCIuLi90cmFuc2l0aW9uL2luZGV4LmpzXCI7XG5pbXBvcnQgc2NoZWR1bGUgZnJvbSBcIi4uL3RyYW5zaXRpb24vc2NoZWR1bGUuanNcIjtcbmltcG9ydCB7ZWFzZUN1YmljSW5PdXR9IGZyb20gXCJkMy1lYXNlXCI7XG5pbXBvcnQge25vd30gZnJvbSBcImQzLXRpbWVyXCI7XG5cbnZhciBkZWZhdWx0VGltaW5nID0ge1xuICB0aW1lOiBudWxsLCAvLyBTZXQgb24gdXNlLlxuICBkZWxheTogMCxcbiAgZHVyYXRpb246IDI1MCxcbiAgZWFzZTogZWFzZUN1YmljSW5PdXRcbn07XG5cbmZ1bmN0aW9uIGluaGVyaXQobm9kZSwgaWQpIHtcbiAgdmFyIHRpbWluZztcbiAgd2hpbGUgKCEodGltaW5nID0gbm9kZS5fX3RyYW5zaXRpb24pIHx8ICEodGltaW5nID0gdGltaW5nW2lkXSkpIHtcbiAgICBpZiAoIShub2RlID0gbm9kZS5wYXJlbnROb2RlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB0cmFuc2l0aW9uICR7aWR9IG5vdCBmb3VuZGApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdGltaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihuYW1lKSB7XG4gIHZhciBpZCxcbiAgICAgIHRpbWluZztcblxuICBpZiAobmFtZSBpbnN0YW5jZW9mIFRyYW5zaXRpb24pIHtcbiAgICBpZCA9IG5hbWUuX2lkLCBuYW1lID0gbmFtZS5fbmFtZTtcbiAgfSBlbHNlIHtcbiAgICBpZCA9IG5ld0lkKCksICh0aW1pbmcgPSBkZWZhdWx0VGltaW5nKS50aW1lID0gbm93KCksIG5hbWUgPSBuYW1lID09IG51bGwgPyBudWxsIDogbmFtZSArIFwiXCI7XG4gIH1cblxuICBmb3IgKHZhciBncm91cHMgPSB0aGlzLl9ncm91cHMsIG0gPSBncm91cHMubGVuZ3RoLCBqID0gMDsgaiA8IG07ICsraikge1xuICAgIGZvciAodmFyIGdyb3VwID0gZ3JvdXBzW2pdLCBuID0gZ3JvdXAubGVuZ3RoLCBub2RlLCBpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgaWYgKG5vZGUgPSBncm91cFtpXSkge1xuICAgICAgICBzY2hlZHVsZShub2RlLCBuYW1lLCBpZCwgaSwgZ3JvdXAsIHRpbWluZyB8fCBpbmhlcml0KG5vZGUsIGlkKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBUcmFuc2l0aW9uKGdyb3VwcywgdGhpcy5fcGFyZW50cywgbmFtZSwgaWQpO1xufVxuIiwgImltcG9ydCB7c2VsZWN0aW9ufSBmcm9tIFwiZDMtc2VsZWN0aW9uXCI7XG5pbXBvcnQgc2VsZWN0aW9uX2ludGVycnVwdCBmcm9tIFwiLi9pbnRlcnJ1cHQuanNcIjtcbmltcG9ydCBzZWxlY3Rpb25fdHJhbnNpdGlvbiBmcm9tIFwiLi90cmFuc2l0aW9uLmpzXCI7XG5cbnNlbGVjdGlvbi5wcm90b3R5cGUuaW50ZXJydXB0ID0gc2VsZWN0aW9uX2ludGVycnVwdDtcbnNlbGVjdGlvbi5wcm90b3R5cGUudHJhbnNpdGlvbiA9IHNlbGVjdGlvbl90cmFuc2l0aW9uO1xuIiwgImltcG9ydCB7ZGlzcGF0Y2h9IGZyb20gXCJkMy1kaXNwYXRjaFwiO1xuaW1wb3J0IHtkcmFnRGlzYWJsZSwgZHJhZ0VuYWJsZX0gZnJvbSBcImQzLWRyYWdcIjtcbmltcG9ydCB7aW50ZXJwb2xhdGV9IGZyb20gXCJkMy1pbnRlcnBvbGF0ZVwiO1xuaW1wb3J0IHtwb2ludGVyLCBzZWxlY3R9IGZyb20gXCJkMy1zZWxlY3Rpb25cIjtcbmltcG9ydCB7aW50ZXJydXB0fSBmcm9tIFwiZDMtdHJhbnNpdGlvblwiO1xuaW1wb3J0IGNvbnN0YW50IGZyb20gXCIuL2NvbnN0YW50LmpzXCI7XG5pbXBvcnQgQnJ1c2hFdmVudCBmcm9tIFwiLi9ldmVudC5qc1wiO1xuaW1wb3J0IG5vZXZlbnQsIHtub3Byb3BhZ2F0aW9ufSBmcm9tIFwiLi9ub2V2ZW50LmpzXCI7XG5cbnZhciBNT0RFX0RSQUcgPSB7bmFtZTogXCJkcmFnXCJ9LFxuICAgIE1PREVfU1BBQ0UgPSB7bmFtZTogXCJzcGFjZVwifSxcbiAgICBNT0RFX0hBTkRMRSA9IHtuYW1lOiBcImhhbmRsZVwifSxcbiAgICBNT0RFX0NFTlRFUiA9IHtuYW1lOiBcImNlbnRlclwifTtcblxuY29uc3Qge2FicywgbWF4LCBtaW59ID0gTWF0aDtcblxuZnVuY3Rpb24gbnVtYmVyMShlKSB7XG4gIHJldHVybiBbK2VbMF0sICtlWzFdXTtcbn1cblxuZnVuY3Rpb24gbnVtYmVyMihlKSB7XG4gIHJldHVybiBbbnVtYmVyMShlWzBdKSwgbnVtYmVyMShlWzFdKV07XG59XG5cbnZhciBYID0ge1xuICBuYW1lOiBcInhcIixcbiAgaGFuZGxlczogW1wid1wiLCBcImVcIl0ubWFwKHR5cGUpLFxuICBpbnB1dDogZnVuY3Rpb24oeCwgZSkgeyByZXR1cm4geCA9PSBudWxsID8gbnVsbCA6IFtbK3hbMF0sIGVbMF1bMV1dLCBbK3hbMV0sIGVbMV1bMV1dXTsgfSxcbiAgb3V0cHV0OiBmdW5jdGlvbih4eSkgeyByZXR1cm4geHkgJiYgW3h5WzBdWzBdLCB4eVsxXVswXV07IH1cbn07XG5cbnZhciBZID0ge1xuICBuYW1lOiBcInlcIixcbiAgaGFuZGxlczogW1wiblwiLCBcInNcIl0ubWFwKHR5cGUpLFxuICBpbnB1dDogZnVuY3Rpb24oeSwgZSkgeyByZXR1cm4geSA9PSBudWxsID8gbnVsbCA6IFtbZVswXVswXSwgK3lbMF1dLCBbZVsxXVswXSwgK3lbMV1dXTsgfSxcbiAgb3V0cHV0OiBmdW5jdGlvbih4eSkgeyByZXR1cm4geHkgJiYgW3h5WzBdWzFdLCB4eVsxXVsxXV07IH1cbn07XG5cbnZhciBYWSA9IHtcbiAgbmFtZTogXCJ4eVwiLFxuICBoYW5kbGVzOiBbXCJuXCIsIFwid1wiLCBcImVcIiwgXCJzXCIsIFwibndcIiwgXCJuZVwiLCBcInN3XCIsIFwic2VcIl0ubWFwKHR5cGUpLFxuICBpbnB1dDogZnVuY3Rpb24oeHkpIHsgcmV0dXJuIHh5ID09IG51bGwgPyBudWxsIDogbnVtYmVyMih4eSk7IH0sXG4gIG91dHB1dDogZnVuY3Rpb24oeHkpIHsgcmV0dXJuIHh5OyB9XG59O1xuXG52YXIgY3Vyc29ycyA9IHtcbiAgb3ZlcmxheTogXCJjcm9zc2hhaXJcIixcbiAgc2VsZWN0aW9uOiBcIm1vdmVcIixcbiAgbjogXCJucy1yZXNpemVcIixcbiAgZTogXCJldy1yZXNpemVcIixcbiAgczogXCJucy1yZXNpemVcIixcbiAgdzogXCJldy1yZXNpemVcIixcbiAgbnc6IFwibndzZS1yZXNpemVcIixcbiAgbmU6IFwibmVzdy1yZXNpemVcIixcbiAgc2U6IFwibndzZS1yZXNpemVcIixcbiAgc3c6IFwibmVzdy1yZXNpemVcIlxufTtcblxudmFyIGZsaXBYID0ge1xuICBlOiBcIndcIixcbiAgdzogXCJlXCIsXG4gIG53OiBcIm5lXCIsXG4gIG5lOiBcIm53XCIsXG4gIHNlOiBcInN3XCIsXG4gIHN3OiBcInNlXCJcbn07XG5cbnZhciBmbGlwWSA9IHtcbiAgbjogXCJzXCIsXG4gIHM6IFwiblwiLFxuICBudzogXCJzd1wiLFxuICBuZTogXCJzZVwiLFxuICBzZTogXCJuZVwiLFxuICBzdzogXCJud1wiXG59O1xuXG52YXIgc2lnbnNYID0ge1xuICBvdmVybGF5OiArMSxcbiAgc2VsZWN0aW9uOiArMSxcbiAgbjogbnVsbCxcbiAgZTogKzEsXG4gIHM6IG51bGwsXG4gIHc6IC0xLFxuICBudzogLTEsXG4gIG5lOiArMSxcbiAgc2U6ICsxLFxuICBzdzogLTFcbn07XG5cbnZhciBzaWduc1kgPSB7XG4gIG92ZXJsYXk6ICsxLFxuICBzZWxlY3Rpb246ICsxLFxuICBuOiAtMSxcbiAgZTogbnVsbCxcbiAgczogKzEsXG4gIHc6IG51bGwsXG4gIG53OiAtMSxcbiAgbmU6IC0xLFxuICBzZTogKzEsXG4gIHN3OiArMVxufTtcblxuZnVuY3Rpb24gdHlwZSh0KSB7XG4gIHJldHVybiB7dHlwZTogdH07XG59XG5cbi8vIElnbm9yZSByaWdodC1jbGljaywgc2luY2UgdGhhdCBzaG91bGQgb3BlbiB0aGUgY29udGV4dCBtZW51LlxuZnVuY3Rpb24gZGVmYXVsdEZpbHRlcihldmVudCkge1xuICByZXR1cm4gIWV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50LmJ1dHRvbjtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdEV4dGVudCgpIHtcbiAgdmFyIHN2ZyA9IHRoaXMub3duZXJTVkdFbGVtZW50IHx8IHRoaXM7XG4gIGlmIChzdmcuaGFzQXR0cmlidXRlKFwidmlld0JveFwiKSkge1xuICAgIHN2ZyA9IHN2Zy52aWV3Qm94LmJhc2VWYWw7XG4gICAgcmV0dXJuIFtbc3ZnLngsIHN2Zy55XSwgW3N2Zy54ICsgc3ZnLndpZHRoLCBzdmcueSArIHN2Zy5oZWlnaHRdXTtcbiAgfVxuICByZXR1cm4gW1swLCAwXSwgW3N2Zy53aWR0aC5iYXNlVmFsLnZhbHVlLCBzdmcuaGVpZ2h0LmJhc2VWYWwudmFsdWVdXTtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdFRvdWNoYWJsZSgpIHtcbiAgcmV0dXJuIG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyB8fCAoXCJvbnRvdWNoc3RhcnRcIiBpbiB0aGlzKTtcbn1cblxuLy8gTGlrZSBkMy5sb2NhbCwgYnV0IHdpdGggdGhlIG5hbWUgXHUyMDFDX19icnVzaFx1MjAxRCByYXRoZXIgdGhhbiBhdXRvLWdlbmVyYXRlZC5cbmZ1bmN0aW9uIGxvY2FsKG5vZGUpIHtcbiAgd2hpbGUgKCFub2RlLl9fYnJ1c2gpIGlmICghKG5vZGUgPSBub2RlLnBhcmVudE5vZGUpKSByZXR1cm47XG4gIHJldHVybiBub2RlLl9fYnJ1c2g7XG59XG5cbmZ1bmN0aW9uIGVtcHR5KGV4dGVudCkge1xuICByZXR1cm4gZXh0ZW50WzBdWzBdID09PSBleHRlbnRbMV1bMF1cbiAgICAgIHx8IGV4dGVudFswXVsxXSA9PT0gZXh0ZW50WzFdWzFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnJ1c2hTZWxlY3Rpb24obm9kZSkge1xuICB2YXIgc3RhdGUgPSBub2RlLl9fYnJ1c2g7XG4gIHJldHVybiBzdGF0ZSA/IHN0YXRlLmRpbS5vdXRwdXQoc3RhdGUuc2VsZWN0aW9uKSA6IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBicnVzaFgoKSB7XG4gIHJldHVybiBicnVzaChYKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJydXNoWSgpIHtcbiAgcmV0dXJuIGJydXNoKFkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGJydXNoKFhZKTtcbn1cblxuZnVuY3Rpb24gYnJ1c2goZGltKSB7XG4gIHZhciBleHRlbnQgPSBkZWZhdWx0RXh0ZW50LFxuICAgICAgZmlsdGVyID0gZGVmYXVsdEZpbHRlcixcbiAgICAgIHRvdWNoYWJsZSA9IGRlZmF1bHRUb3VjaGFibGUsXG4gICAgICBrZXlzID0gdHJ1ZSxcbiAgICAgIGxpc3RlbmVycyA9IGRpc3BhdGNoKFwic3RhcnRcIiwgXCJicnVzaFwiLCBcImVuZFwiKSxcbiAgICAgIGhhbmRsZVNpemUgPSA2LFxuICAgICAgdG91Y2hlbmRpbmc7XG5cbiAgZnVuY3Rpb24gYnJ1c2goZ3JvdXApIHtcbiAgICB2YXIgb3ZlcmxheSA9IGdyb3VwXG4gICAgICAgIC5wcm9wZXJ0eShcIl9fYnJ1c2hcIiwgaW5pdGlhbGl6ZSlcbiAgICAgIC5zZWxlY3RBbGwoXCIub3ZlcmxheVwiKVxuICAgICAgLmRhdGEoW3R5cGUoXCJvdmVybGF5XCIpXSk7XG5cbiAgICBvdmVybGF5LmVudGVyKCkuYXBwZW5kKFwicmVjdFwiKVxuICAgICAgICAuYXR0cihcImNsYXNzXCIsIFwib3ZlcmxheVwiKVxuICAgICAgICAuYXR0cihcInBvaW50ZXItZXZlbnRzXCIsIFwiYWxsXCIpXG4gICAgICAgIC5hdHRyKFwiY3Vyc29yXCIsIGN1cnNvcnMub3ZlcmxheSlcbiAgICAgIC5tZXJnZShvdmVybGF5KVxuICAgICAgICAuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICB2YXIgZXh0ZW50ID0gbG9jYWwodGhpcykuZXh0ZW50O1xuICAgICAgICAgIHNlbGVjdCh0aGlzKVxuICAgICAgICAgICAgICAuYXR0cihcInhcIiwgZXh0ZW50WzBdWzBdKVxuICAgICAgICAgICAgICAuYXR0cihcInlcIiwgZXh0ZW50WzBdWzFdKVxuICAgICAgICAgICAgICAuYXR0cihcIndpZHRoXCIsIGV4dGVudFsxXVswXSAtIGV4dGVudFswXVswXSlcbiAgICAgICAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgZXh0ZW50WzFdWzFdIC0gZXh0ZW50WzBdWzFdKTtcbiAgICAgICAgfSk7XG5cbiAgICBncm91cC5zZWxlY3RBbGwoXCIuc2VsZWN0aW9uXCIpXG4gICAgICAuZGF0YShbdHlwZShcInNlbGVjdGlvblwiKV0pXG4gICAgICAuZW50ZXIoKS5hcHBlbmQoXCJyZWN0XCIpXG4gICAgICAgIC5hdHRyKFwiY2xhc3NcIiwgXCJzZWxlY3Rpb25cIilcbiAgICAgICAgLmF0dHIoXCJjdXJzb3JcIiwgY3Vyc29ycy5zZWxlY3Rpb24pXG4gICAgICAgIC5hdHRyKFwiZmlsbFwiLCBcIiM3NzdcIilcbiAgICAgICAgLmF0dHIoXCJmaWxsLW9wYWNpdHlcIiwgMC4zKVxuICAgICAgICAuYXR0cihcInN0cm9rZVwiLCBcIiNmZmZcIilcbiAgICAgICAgLmF0dHIoXCJzaGFwZS1yZW5kZXJpbmdcIiwgXCJjcmlzcEVkZ2VzXCIpO1xuXG4gICAgdmFyIGhhbmRsZSA9IGdyb3VwLnNlbGVjdEFsbChcIi5oYW5kbGVcIilcbiAgICAgIC5kYXRhKGRpbS5oYW5kbGVzLCBmdW5jdGlvbihkKSB7IHJldHVybiBkLnR5cGU7IH0pO1xuXG4gICAgaGFuZGxlLmV4aXQoKS5yZW1vdmUoKTtcblxuICAgIGhhbmRsZS5lbnRlcigpLmFwcGVuZChcInJlY3RcIilcbiAgICAgICAgLmF0dHIoXCJjbGFzc1wiLCBmdW5jdGlvbihkKSB7IHJldHVybiBcImhhbmRsZSBoYW5kbGUtLVwiICsgZC50eXBlOyB9KVxuICAgICAgICAuYXR0cihcImN1cnNvclwiLCBmdW5jdGlvbihkKSB7IHJldHVybiBjdXJzb3JzW2QudHlwZV07IH0pO1xuXG4gICAgZ3JvdXBcbiAgICAgICAgLmVhY2gocmVkcmF3KVxuICAgICAgICAuYXR0cihcImZpbGxcIiwgXCJub25lXCIpXG4gICAgICAgIC5hdHRyKFwicG9pbnRlci1ldmVudHNcIiwgXCJhbGxcIilcbiAgICAgICAgLm9uKFwibW91c2Vkb3duLmJydXNoXCIsIHN0YXJ0ZWQpXG4gICAgICAuZmlsdGVyKHRvdWNoYWJsZSlcbiAgICAgICAgLm9uKFwidG91Y2hzdGFydC5icnVzaFwiLCBzdGFydGVkKVxuICAgICAgICAub24oXCJ0b3VjaG1vdmUuYnJ1c2hcIiwgdG91Y2htb3ZlZClcbiAgICAgICAgLm9uKFwidG91Y2hlbmQuYnJ1c2ggdG91Y2hjYW5jZWwuYnJ1c2hcIiwgdG91Y2hlbmRlZClcbiAgICAgICAgLnN0eWxlKFwidG91Y2gtYWN0aW9uXCIsIFwibm9uZVwiKVxuICAgICAgICAuc3R5bGUoXCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3JcIiwgXCJyZ2JhKDAsMCwwLDApXCIpO1xuICB9XG5cbiAgYnJ1c2gubW92ZSA9IGZ1bmN0aW9uKGdyb3VwLCBzZWxlY3Rpb24pIHtcbiAgICBpZiAoZ3JvdXAudHdlZW4pIHtcbiAgICAgIGdyb3VwXG4gICAgICAgICAgLm9uKFwic3RhcnQuYnJ1c2hcIiwgZnVuY3Rpb24oZXZlbnQpIHsgZW1pdHRlcih0aGlzLCBhcmd1bWVudHMpLmJlZm9yZXN0YXJ0KCkuc3RhcnQoZXZlbnQpOyB9KVxuICAgICAgICAgIC5vbihcImludGVycnVwdC5icnVzaCBlbmQuYnJ1c2hcIiwgZnVuY3Rpb24oZXZlbnQpIHsgZW1pdHRlcih0aGlzLCBhcmd1bWVudHMpLmVuZChldmVudCk7IH0pXG4gICAgICAgICAgLnR3ZWVuKFwiYnJ1c2hcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXMsXG4gICAgICAgICAgICAgICAgc3RhdGUgPSB0aGF0Ll9fYnJ1c2gsXG4gICAgICAgICAgICAgICAgZW1pdCA9IGVtaXR0ZXIodGhhdCwgYXJndW1lbnRzKSxcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb24wID0gc3RhdGUuc2VsZWN0aW9uLFxuICAgICAgICAgICAgICAgIHNlbGVjdGlvbjEgPSBkaW0uaW5wdXQodHlwZW9mIHNlbGVjdGlvbiA9PT0gXCJmdW5jdGlvblwiID8gc2VsZWN0aW9uLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgOiBzZWxlY3Rpb24sIHN0YXRlLmV4dGVudCksXG4gICAgICAgICAgICAgICAgaSA9IGludGVycG9sYXRlKHNlbGVjdGlvbjAsIHNlbGVjdGlvbjEpO1xuXG4gICAgICAgICAgICBmdW5jdGlvbiB0d2Vlbih0KSB7XG4gICAgICAgICAgICAgIHN0YXRlLnNlbGVjdGlvbiA9IHQgPT09IDEgJiYgc2VsZWN0aW9uMSA9PT0gbnVsbCA/IG51bGwgOiBpKHQpO1xuICAgICAgICAgICAgICByZWRyYXcuY2FsbCh0aGF0KTtcbiAgICAgICAgICAgICAgZW1pdC5icnVzaCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc2VsZWN0aW9uMCAhPT0gbnVsbCAmJiBzZWxlY3Rpb24xICE9PSBudWxsID8gdHdlZW4gOiB0d2VlbigxKTtcbiAgICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZ3JvdXBcbiAgICAgICAgICAuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcyxcbiAgICAgICAgICAgICAgICBhcmdzID0gYXJndW1lbnRzLFxuICAgICAgICAgICAgICAgIHN0YXRlID0gdGhhdC5fX2JydXNoLFxuICAgICAgICAgICAgICAgIHNlbGVjdGlvbjEgPSBkaW0uaW5wdXQodHlwZW9mIHNlbGVjdGlvbiA9PT0gXCJmdW5jdGlvblwiID8gc2VsZWN0aW9uLmFwcGx5KHRoYXQsIGFyZ3MpIDogc2VsZWN0aW9uLCBzdGF0ZS5leHRlbnQpLFxuICAgICAgICAgICAgICAgIGVtaXQgPSBlbWl0dGVyKHRoYXQsIGFyZ3MpLmJlZm9yZXN0YXJ0KCk7XG5cbiAgICAgICAgICAgIGludGVycnVwdCh0aGF0KTtcbiAgICAgICAgICAgIHN0YXRlLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjEgPT09IG51bGwgPyBudWxsIDogc2VsZWN0aW9uMTtcbiAgICAgICAgICAgIHJlZHJhdy5jYWxsKHRoYXQpO1xuICAgICAgICAgICAgZW1pdC5zdGFydCgpLmJydXNoKCkuZW5kKCk7XG4gICAgICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGJydXNoLmNsZWFyID0gZnVuY3Rpb24oZ3JvdXApIHtcbiAgICBicnVzaC5tb3ZlKGdyb3VwLCBudWxsKTtcbiAgfTtcblxuICBmdW5jdGlvbiByZWRyYXcoKSB7XG4gICAgdmFyIGdyb3VwID0gc2VsZWN0KHRoaXMpLFxuICAgICAgICBzZWxlY3Rpb24gPSBsb2NhbCh0aGlzKS5zZWxlY3Rpb247XG5cbiAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICBncm91cC5zZWxlY3RBbGwoXCIuc2VsZWN0aW9uXCIpXG4gICAgICAgICAgLnN0eWxlKFwiZGlzcGxheVwiLCBudWxsKVxuICAgICAgICAgIC5hdHRyKFwieFwiLCBzZWxlY3Rpb25bMF1bMF0pXG4gICAgICAgICAgLmF0dHIoXCJ5XCIsIHNlbGVjdGlvblswXVsxXSlcbiAgICAgICAgICAuYXR0cihcIndpZHRoXCIsIHNlbGVjdGlvblsxXVswXSAtIHNlbGVjdGlvblswXVswXSlcbiAgICAgICAgICAuYXR0cihcImhlaWdodFwiLCBzZWxlY3Rpb25bMV1bMV0gLSBzZWxlY3Rpb25bMF1bMV0pO1xuXG4gICAgICBncm91cC5zZWxlY3RBbGwoXCIuaGFuZGxlXCIpXG4gICAgICAgICAgLnN0eWxlKFwiZGlzcGxheVwiLCBudWxsKVxuICAgICAgICAgIC5hdHRyKFwieFwiLCBmdW5jdGlvbihkKSB7IHJldHVybiBkLnR5cGVbZC50eXBlLmxlbmd0aCAtIDFdID09PSBcImVcIiA/IHNlbGVjdGlvblsxXVswXSAtIGhhbmRsZVNpemUgLyAyIDogc2VsZWN0aW9uWzBdWzBdIC0gaGFuZGxlU2l6ZSAvIDI7IH0pXG4gICAgICAgICAgLmF0dHIoXCJ5XCIsIGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQudHlwZVswXSA9PT0gXCJzXCIgPyBzZWxlY3Rpb25bMV1bMV0gLSBoYW5kbGVTaXplIC8gMiA6IHNlbGVjdGlvblswXVsxXSAtIGhhbmRsZVNpemUgLyAyOyB9KVxuICAgICAgICAgIC5hdHRyKFwid2lkdGhcIiwgZnVuY3Rpb24oZCkgeyByZXR1cm4gZC50eXBlID09PSBcIm5cIiB8fCBkLnR5cGUgPT09IFwic1wiID8gc2VsZWN0aW9uWzFdWzBdIC0gc2VsZWN0aW9uWzBdWzBdICsgaGFuZGxlU2l6ZSA6IGhhbmRsZVNpemU7IH0pXG4gICAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgZnVuY3Rpb24oZCkgeyByZXR1cm4gZC50eXBlID09PSBcImVcIiB8fCBkLnR5cGUgPT09IFwid1wiID8gc2VsZWN0aW9uWzFdWzFdIC0gc2VsZWN0aW9uWzBdWzFdICsgaGFuZGxlU2l6ZSA6IGhhbmRsZVNpemU7IH0pO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgZ3JvdXAuc2VsZWN0QWxsKFwiLnNlbGVjdGlvbiwuaGFuZGxlXCIpXG4gICAgICAgICAgLnN0eWxlKFwiZGlzcGxheVwiLCBcIm5vbmVcIilcbiAgICAgICAgICAuYXR0cihcInhcIiwgbnVsbClcbiAgICAgICAgICAuYXR0cihcInlcIiwgbnVsbClcbiAgICAgICAgICAuYXR0cihcIndpZHRoXCIsIG51bGwpXG4gICAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgbnVsbCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZW1pdHRlcih0aGF0LCBhcmdzLCBjbGVhbikge1xuICAgIHZhciBlbWl0ID0gdGhhdC5fX2JydXNoLmVtaXR0ZXI7XG4gICAgcmV0dXJuIGVtaXQgJiYgKCFjbGVhbiB8fCAhZW1pdC5jbGVhbikgPyBlbWl0IDogbmV3IEVtaXR0ZXIodGhhdCwgYXJncywgY2xlYW4pO1xuICB9XG5cbiAgZnVuY3Rpb24gRW1pdHRlcih0aGF0LCBhcmdzLCBjbGVhbikge1xuICAgIHRoaXMudGhhdCA9IHRoYXQ7XG4gICAgdGhpcy5hcmdzID0gYXJncztcbiAgICB0aGlzLnN0YXRlID0gdGhhdC5fX2JydXNoO1xuICAgIHRoaXMuYWN0aXZlID0gMDtcbiAgICB0aGlzLmNsZWFuID0gY2xlYW47XG4gIH1cblxuICBFbWl0dGVyLnByb3RvdHlwZSA9IHtcbiAgICBiZWZvcmVzdGFydDogZnVuY3Rpb24oKSB7XG4gICAgICBpZiAoKyt0aGlzLmFjdGl2ZSA9PT0gMSkgdGhpcy5zdGF0ZS5lbWl0dGVyID0gdGhpcywgdGhpcy5zdGFydGluZyA9IHRydWU7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIHN0YXJ0OiBmdW5jdGlvbihldmVudCwgbW9kZSkge1xuICAgICAgaWYgKHRoaXMuc3RhcnRpbmcpIHRoaXMuc3RhcnRpbmcgPSBmYWxzZSwgdGhpcy5lbWl0KFwic3RhcnRcIiwgZXZlbnQsIG1vZGUpO1xuICAgICAgZWxzZSB0aGlzLmVtaXQoXCJicnVzaFwiLCBldmVudCk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIGJydXNoOiBmdW5jdGlvbihldmVudCwgbW9kZSkge1xuICAgICAgdGhpcy5lbWl0KFwiYnJ1c2hcIiwgZXZlbnQsIG1vZGUpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICBlbmQ6IGZ1bmN0aW9uKGV2ZW50LCBtb2RlKSB7XG4gICAgICBpZiAoLS10aGlzLmFjdGl2ZSA9PT0gMCkgZGVsZXRlIHRoaXMuc3RhdGUuZW1pdHRlciwgdGhpcy5lbWl0KFwiZW5kXCIsIGV2ZW50LCBtb2RlKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gICAgZW1pdDogZnVuY3Rpb24odHlwZSwgZXZlbnQsIG1vZGUpIHtcbiAgICAgIHZhciBkID0gc2VsZWN0KHRoaXMudGhhdCkuZGF0dW0oKTtcbiAgICAgIGxpc3RlbmVycy5jYWxsKFxuICAgICAgICB0eXBlLFxuICAgICAgICB0aGlzLnRoYXQsXG4gICAgICAgIG5ldyBCcnVzaEV2ZW50KHR5cGUsIHtcbiAgICAgICAgICBzb3VyY2VFdmVudDogZXZlbnQsXG4gICAgICAgICAgdGFyZ2V0OiBicnVzaCxcbiAgICAgICAgICBzZWxlY3Rpb246IGRpbS5vdXRwdXQodGhpcy5zdGF0ZS5zZWxlY3Rpb24pLFxuICAgICAgICAgIG1vZGUsXG4gICAgICAgICAgZGlzcGF0Y2g6IGxpc3RlbmVyc1xuICAgICAgICB9KSxcbiAgICAgICAgZFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgZnVuY3Rpb24gc3RhcnRlZChldmVudCkge1xuICAgIGlmICh0b3VjaGVuZGluZyAmJiAhZXZlbnQudG91Y2hlcykgcmV0dXJuO1xuICAgIGlmICghZmlsdGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpIHJldHVybjtcblxuICAgIHZhciB0aGF0ID0gdGhpcyxcbiAgICAgICAgdHlwZSA9IGV2ZW50LnRhcmdldC5fX2RhdGFfXy50eXBlLFxuICAgICAgICBtb2RlID0gKGtleXMgJiYgZXZlbnQubWV0YUtleSA/IHR5cGUgPSBcIm92ZXJsYXlcIiA6IHR5cGUpID09PSBcInNlbGVjdGlvblwiID8gTU9ERV9EUkFHIDogKGtleXMgJiYgZXZlbnQuYWx0S2V5ID8gTU9ERV9DRU5URVIgOiBNT0RFX0hBTkRMRSksXG4gICAgICAgIHNpZ25YID0gZGltID09PSBZID8gbnVsbCA6IHNpZ25zWFt0eXBlXSxcbiAgICAgICAgc2lnblkgPSBkaW0gPT09IFggPyBudWxsIDogc2lnbnNZW3R5cGVdLFxuICAgICAgICBzdGF0ZSA9IGxvY2FsKHRoYXQpLFxuICAgICAgICBleHRlbnQgPSBzdGF0ZS5leHRlbnQsXG4gICAgICAgIHNlbGVjdGlvbiA9IHN0YXRlLnNlbGVjdGlvbixcbiAgICAgICAgVyA9IGV4dGVudFswXVswXSwgdzAsIHcxLFxuICAgICAgICBOID0gZXh0ZW50WzBdWzFdLCBuMCwgbjEsXG4gICAgICAgIEUgPSBleHRlbnRbMV1bMF0sIGUwLCBlMSxcbiAgICAgICAgUyA9IGV4dGVudFsxXVsxXSwgczAsIHMxLFxuICAgICAgICBkeCA9IDAsXG4gICAgICAgIGR5ID0gMCxcbiAgICAgICAgbW92aW5nLFxuICAgICAgICBzaGlmdGluZyA9IHNpZ25YICYmIHNpZ25ZICYmIGtleXMgJiYgZXZlbnQuc2hpZnRLZXksXG4gICAgICAgIGxvY2tYLFxuICAgICAgICBsb2NrWSxcbiAgICAgICAgcG9pbnRzID0gQXJyYXkuZnJvbShldmVudC50b3VjaGVzIHx8IFtldmVudF0sIHQgPT4ge1xuICAgICAgICAgIGNvbnN0IGkgPSB0LmlkZW50aWZpZXI7XG4gICAgICAgICAgdCA9IHBvaW50ZXIodCwgdGhhdCk7XG4gICAgICAgICAgdC5wb2ludDAgPSB0LnNsaWNlKCk7XG4gICAgICAgICAgdC5pZGVudGlmaWVyID0gaTtcbiAgICAgICAgICByZXR1cm4gdDtcbiAgICAgICAgfSk7XG5cbiAgICBpZiAodHlwZSA9PT0gXCJvdmVybGF5XCIpIHtcbiAgICAgIGlmIChzZWxlY3Rpb24pIG1vdmluZyA9IHRydWU7XG4gICAgICBjb25zdCBwdHMgPSBbcG9pbnRzWzBdLCBwb2ludHNbMV0gfHwgcG9pbnRzWzBdXTtcbiAgICAgIHN0YXRlLnNlbGVjdGlvbiA9IHNlbGVjdGlvbiA9IFtbXG4gICAgICAgICAgdzAgPSBkaW0gPT09IFkgPyBXIDogbWluKHB0c1swXVswXSwgcHRzWzFdWzBdKSxcbiAgICAgICAgICBuMCA9IGRpbSA9PT0gWCA/IE4gOiBtaW4ocHRzWzBdWzFdLCBwdHNbMV1bMV0pXG4gICAgICAgIF0sIFtcbiAgICAgICAgICBlMCA9IGRpbSA9PT0gWSA/IEUgOiBtYXgocHRzWzBdWzBdLCBwdHNbMV1bMF0pLFxuICAgICAgICAgIHMwID0gZGltID09PSBYID8gUyA6IG1heChwdHNbMF1bMV0sIHB0c1sxXVsxXSlcbiAgICAgICAgXV07XG4gICAgICBpZiAocG9pbnRzLmxlbmd0aCA+IDEpIG1vdmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdzAgPSBzZWxlY3Rpb25bMF1bMF07XG4gICAgICBuMCA9IHNlbGVjdGlvblswXVsxXTtcbiAgICAgIGUwID0gc2VsZWN0aW9uWzFdWzBdO1xuICAgICAgczAgPSBzZWxlY3Rpb25bMV1bMV07XG4gICAgfVxuXG4gICAgdzEgPSB3MDtcbiAgICBuMSA9IG4wO1xuICAgIGUxID0gZTA7XG4gICAgczEgPSBzMDtcblxuICAgIHZhciBncm91cCA9IHNlbGVjdCh0aGF0KVxuICAgICAgICAuYXR0cihcInBvaW50ZXItZXZlbnRzXCIsIFwibm9uZVwiKTtcblxuICAgIHZhciBvdmVybGF5ID0gZ3JvdXAuc2VsZWN0QWxsKFwiLm92ZXJsYXlcIilcbiAgICAgICAgLmF0dHIoXCJjdXJzb3JcIiwgY3Vyc29yc1t0eXBlXSk7XG5cbiAgICBpbnRlcnJ1cHQodGhhdCk7XG4gICAgdmFyIGVtaXQgPSBlbWl0dGVyKHRoYXQsIGFyZ3VtZW50cywgdHJ1ZSkuYmVmb3Jlc3RhcnQoKTtcblxuICAgIGlmIChldmVudC50b3VjaGVzKSB7XG4gICAgICBlbWl0Lm1vdmVkID0gbW92ZWQ7XG4gICAgICBlbWl0LmVuZGVkID0gZW5kZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciB2aWV3ID0gc2VsZWN0KGV2ZW50LnZpZXcpXG4gICAgICAgICAgLm9uKFwibW91c2Vtb3ZlLmJydXNoXCIsIG1vdmVkLCB0cnVlKVxuICAgICAgICAgIC5vbihcIm1vdXNldXAuYnJ1c2hcIiwgZW5kZWQsIHRydWUpO1xuICAgICAgaWYgKGtleXMpIHZpZXdcbiAgICAgICAgICAub24oXCJrZXlkb3duLmJydXNoXCIsIGtleWRvd25lZCwgdHJ1ZSlcbiAgICAgICAgICAub24oXCJrZXl1cC5icnVzaFwiLCBrZXl1cHBlZCwgdHJ1ZSlcblxuICAgICAgZHJhZ0Rpc2FibGUoZXZlbnQudmlldyk7XG4gICAgfVxuXG4gICAgcmVkcmF3LmNhbGwodGhhdCk7XG4gICAgZW1pdC5zdGFydChldmVudCwgbW9kZS5uYW1lKTtcblxuICAgIGZ1bmN0aW9uIG1vdmVkKGV2ZW50KSB7XG4gICAgICBmb3IgKGNvbnN0IHAgb2YgZXZlbnQuY2hhbmdlZFRvdWNoZXMgfHwgW2V2ZW50XSkge1xuICAgICAgICBmb3IgKGNvbnN0IGQgb2YgcG9pbnRzKVxuICAgICAgICAgIGlmIChkLmlkZW50aWZpZXIgPT09IHAuaWRlbnRpZmllcikgZC5jdXIgPSBwb2ludGVyKHAsIHRoYXQpO1xuICAgICAgfVxuICAgICAgaWYgKHNoaWZ0aW5nICYmICFsb2NrWCAmJiAhbG9ja1kgJiYgcG9pbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBjb25zdCBwb2ludCA9IHBvaW50c1swXTtcbiAgICAgICAgaWYgKGFicyhwb2ludC5jdXJbMF0gLSBwb2ludFswXSkgPiBhYnMocG9pbnQuY3VyWzFdIC0gcG9pbnRbMV0pKVxuICAgICAgICAgIGxvY2tZID0gdHJ1ZTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGxvY2tYID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgcG9pbnQgb2YgcG9pbnRzKVxuICAgICAgICBpZiAocG9pbnQuY3VyKSBwb2ludFswXSA9IHBvaW50LmN1clswXSwgcG9pbnRbMV0gPSBwb2ludC5jdXJbMV07XG4gICAgICBtb3ZpbmcgPSB0cnVlO1xuICAgICAgbm9ldmVudChldmVudCk7XG4gICAgICBtb3ZlKGV2ZW50KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtb3ZlKGV2ZW50KSB7XG4gICAgICBjb25zdCBwb2ludCA9IHBvaW50c1swXSwgcG9pbnQwID0gcG9pbnQucG9pbnQwO1xuICAgICAgdmFyIHQ7XG5cbiAgICAgIGR4ID0gcG9pbnRbMF0gLSBwb2ludDBbMF07XG4gICAgICBkeSA9IHBvaW50WzFdIC0gcG9pbnQwWzFdO1xuXG4gICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgY2FzZSBNT0RFX1NQQUNFOlxuICAgICAgICBjYXNlIE1PREVfRFJBRzoge1xuICAgICAgICAgIGlmIChzaWduWCkgZHggPSBtYXgoVyAtIHcwLCBtaW4oRSAtIGUwLCBkeCkpLCB3MSA9IHcwICsgZHgsIGUxID0gZTAgKyBkeDtcbiAgICAgICAgICBpZiAoc2lnblkpIGR5ID0gbWF4KE4gLSBuMCwgbWluKFMgLSBzMCwgZHkpKSwgbjEgPSBuMCArIGR5LCBzMSA9IHMwICsgZHk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBNT0RFX0hBTkRMRToge1xuICAgICAgICAgIGlmIChwb2ludHNbMV0pIHtcbiAgICAgICAgICAgIGlmIChzaWduWCkgdzEgPSBtYXgoVywgbWluKEUsIHBvaW50c1swXVswXSkpLCBlMSA9IG1heChXLCBtaW4oRSwgcG9pbnRzWzFdWzBdKSksIHNpZ25YID0gMTtcbiAgICAgICAgICAgIGlmIChzaWduWSkgbjEgPSBtYXgoTiwgbWluKFMsIHBvaW50c1swXVsxXSkpLCBzMSA9IG1heChOLCBtaW4oUywgcG9pbnRzWzFdWzFdKSksIHNpZ25ZID0gMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHNpZ25YIDwgMCkgZHggPSBtYXgoVyAtIHcwLCBtaW4oRSAtIHcwLCBkeCkpLCB3MSA9IHcwICsgZHgsIGUxID0gZTA7XG4gICAgICAgICAgICBlbHNlIGlmIChzaWduWCA+IDApIGR4ID0gbWF4KFcgLSBlMCwgbWluKEUgLSBlMCwgZHgpKSwgdzEgPSB3MCwgZTEgPSBlMCArIGR4O1xuICAgICAgICAgICAgaWYgKHNpZ25ZIDwgMCkgZHkgPSBtYXgoTiAtIG4wLCBtaW4oUyAtIG4wLCBkeSkpLCBuMSA9IG4wICsgZHksIHMxID0gczA7XG4gICAgICAgICAgICBlbHNlIGlmIChzaWduWSA+IDApIGR5ID0gbWF4KE4gLSBzMCwgbWluKFMgLSBzMCwgZHkpKSwgbjEgPSBuMCwgczEgPSBzMCArIGR5O1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIE1PREVfQ0VOVEVSOiB7XG4gICAgICAgICAgaWYgKHNpZ25YKSB3MSA9IG1heChXLCBtaW4oRSwgdzAgLSBkeCAqIHNpZ25YKSksIGUxID0gbWF4KFcsIG1pbihFLCBlMCArIGR4ICogc2lnblgpKTtcbiAgICAgICAgICBpZiAoc2lnblkpIG4xID0gbWF4KE4sIG1pbihTLCBuMCAtIGR5ICogc2lnblkpKSwgczEgPSBtYXgoTiwgbWluKFMsIHMwICsgZHkgKiBzaWduWSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChlMSA8IHcxKSB7XG4gICAgICAgIHNpZ25YICo9IC0xO1xuICAgICAgICB0ID0gdzAsIHcwID0gZTAsIGUwID0gdDtcbiAgICAgICAgdCA9IHcxLCB3MSA9IGUxLCBlMSA9IHQ7XG4gICAgICAgIGlmICh0eXBlIGluIGZsaXBYKSBvdmVybGF5LmF0dHIoXCJjdXJzb3JcIiwgY3Vyc29yc1t0eXBlID0gZmxpcFhbdHlwZV1dKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHMxIDwgbjEpIHtcbiAgICAgICAgc2lnblkgKj0gLTE7XG4gICAgICAgIHQgPSBuMCwgbjAgPSBzMCwgczAgPSB0O1xuICAgICAgICB0ID0gbjEsIG4xID0gczEsIHMxID0gdDtcbiAgICAgICAgaWYgKHR5cGUgaW4gZmxpcFkpIG92ZXJsYXkuYXR0cihcImN1cnNvclwiLCBjdXJzb3JzW3R5cGUgPSBmbGlwWVt0eXBlXV0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGUuc2VsZWN0aW9uKSBzZWxlY3Rpb24gPSBzdGF0ZS5zZWxlY3Rpb247IC8vIE1heSBiZSBzZXQgYnkgYnJ1c2gubW92ZSFcbiAgICAgIGlmIChsb2NrWCkgdzEgPSBzZWxlY3Rpb25bMF1bMF0sIGUxID0gc2VsZWN0aW9uWzFdWzBdO1xuICAgICAgaWYgKGxvY2tZKSBuMSA9IHNlbGVjdGlvblswXVsxXSwgczEgPSBzZWxlY3Rpb25bMV1bMV07XG5cbiAgICAgIGlmIChzZWxlY3Rpb25bMF1bMF0gIT09IHcxXG4gICAgICAgICAgfHwgc2VsZWN0aW9uWzBdWzFdICE9PSBuMVxuICAgICAgICAgIHx8IHNlbGVjdGlvblsxXVswXSAhPT0gZTFcbiAgICAgICAgICB8fCBzZWxlY3Rpb25bMV1bMV0gIT09IHMxKSB7XG4gICAgICAgIHN0YXRlLnNlbGVjdGlvbiA9IFtbdzEsIG4xXSwgW2UxLCBzMV1dO1xuICAgICAgICByZWRyYXcuY2FsbCh0aGF0KTtcbiAgICAgICAgZW1pdC5icnVzaChldmVudCwgbW9kZS5uYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbmRlZChldmVudCkge1xuICAgICAgbm9wcm9wYWdhdGlvbihldmVudCk7XG4gICAgICBpZiAoZXZlbnQudG91Y2hlcykge1xuICAgICAgICBpZiAoZXZlbnQudG91Y2hlcy5sZW5ndGgpIHJldHVybjtcbiAgICAgICAgaWYgKHRvdWNoZW5kaW5nKSBjbGVhclRpbWVvdXQodG91Y2hlbmRpbmcpO1xuICAgICAgICB0b3VjaGVuZGluZyA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRvdWNoZW5kaW5nID0gbnVsbDsgfSwgNTAwKTsgLy8gR2hvc3QgY2xpY2tzIGFyZSBkZWxheWVkIVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZHJhZ0VuYWJsZShldmVudC52aWV3LCBtb3ZpbmcpO1xuICAgICAgICB2aWV3Lm9uKFwia2V5ZG93bi5icnVzaCBrZXl1cC5icnVzaCBtb3VzZW1vdmUuYnJ1c2ggbW91c2V1cC5icnVzaFwiLCBudWxsKTtcbiAgICAgIH1cbiAgICAgIGdyb3VwLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLCBcImFsbFwiKTtcbiAgICAgIG92ZXJsYXkuYXR0cihcImN1cnNvclwiLCBjdXJzb3JzLm92ZXJsYXkpO1xuICAgICAgaWYgKHN0YXRlLnNlbGVjdGlvbikgc2VsZWN0aW9uID0gc3RhdGUuc2VsZWN0aW9uOyAvLyBNYXkgYmUgc2V0IGJ5IGJydXNoLm1vdmUgKG9uIHN0YXJ0KSFcbiAgICAgIGlmIChlbXB0eShzZWxlY3Rpb24pKSBzdGF0ZS5zZWxlY3Rpb24gPSBudWxsLCByZWRyYXcuY2FsbCh0aGF0KTtcbiAgICAgIGVtaXQuZW5kKGV2ZW50LCBtb2RlLm5hbWUpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGtleWRvd25lZChldmVudCkge1xuICAgICAgc3dpdGNoIChldmVudC5rZXlDb2RlKSB7XG4gICAgICAgIGNhc2UgMTY6IHsgLy8gU0hJRlRcbiAgICAgICAgICBzaGlmdGluZyA9IHNpZ25YICYmIHNpZ25ZO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgMTg6IHsgLy8gQUxUXG4gICAgICAgICAgaWYgKG1vZGUgPT09IE1PREVfSEFORExFKSB7XG4gICAgICAgICAgICBpZiAoc2lnblgpIGUwID0gZTEgLSBkeCAqIHNpZ25YLCB3MCA9IHcxICsgZHggKiBzaWduWDtcbiAgICAgICAgICAgIGlmIChzaWduWSkgczAgPSBzMSAtIGR5ICogc2lnblksIG4wID0gbjEgKyBkeSAqIHNpZ25ZO1xuICAgICAgICAgICAgbW9kZSA9IE1PREVfQ0VOVEVSO1xuICAgICAgICAgICAgbW92ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIDMyOiB7IC8vIFNQQUNFOyB0YWtlcyBwcmlvcml0eSBvdmVyIEFMVFxuICAgICAgICAgIGlmIChtb2RlID09PSBNT0RFX0hBTkRMRSB8fCBtb2RlID09PSBNT0RFX0NFTlRFUikge1xuICAgICAgICAgICAgaWYgKHNpZ25YIDwgMCkgZTAgPSBlMSAtIGR4OyBlbHNlIGlmIChzaWduWCA+IDApIHcwID0gdzEgLSBkeDtcbiAgICAgICAgICAgIGlmIChzaWduWSA8IDApIHMwID0gczEgLSBkeTsgZWxzZSBpZiAoc2lnblkgPiAwKSBuMCA9IG4xIC0gZHk7XG4gICAgICAgICAgICBtb2RlID0gTU9ERV9TUEFDRTtcbiAgICAgICAgICAgIG92ZXJsYXkuYXR0cihcImN1cnNvclwiLCBjdXJzb3JzLnNlbGVjdGlvbik7XG4gICAgICAgICAgICBtb3ZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHJldHVybjtcbiAgICAgIH1cbiAgICAgIG5vZXZlbnQoZXZlbnQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGtleXVwcGVkKGV2ZW50KSB7XG4gICAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHtcbiAgICAgICAgY2FzZSAxNjogeyAvLyBTSElGVFxuICAgICAgICAgIGlmIChzaGlmdGluZykge1xuICAgICAgICAgICAgbG9ja1ggPSBsb2NrWSA9IHNoaWZ0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICBtb3ZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgMTg6IHsgLy8gQUxUXG4gICAgICAgICAgaWYgKG1vZGUgPT09IE1PREVfQ0VOVEVSKSB7XG4gICAgICAgICAgICBpZiAoc2lnblggPCAwKSBlMCA9IGUxOyBlbHNlIGlmIChzaWduWCA+IDApIHcwID0gdzE7XG4gICAgICAgICAgICBpZiAoc2lnblkgPCAwKSBzMCA9IHMxOyBlbHNlIGlmIChzaWduWSA+IDApIG4wID0gbjE7XG4gICAgICAgICAgICBtb2RlID0gTU9ERV9IQU5ETEU7XG4gICAgICAgICAgICBtb3ZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgMzI6IHsgLy8gU1BBQ0VcbiAgICAgICAgICBpZiAobW9kZSA9PT0gTU9ERV9TUEFDRSkge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmFsdEtleSkge1xuICAgICAgICAgICAgICBpZiAoc2lnblgpIGUwID0gZTEgLSBkeCAqIHNpZ25YLCB3MCA9IHcxICsgZHggKiBzaWduWDtcbiAgICAgICAgICAgICAgaWYgKHNpZ25ZKSBzMCA9IHMxIC0gZHkgKiBzaWduWSwgbjAgPSBuMSArIGR5ICogc2lnblk7XG4gICAgICAgICAgICAgIG1vZGUgPSBNT0RFX0NFTlRFUjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlmIChzaWduWCA8IDApIGUwID0gZTE7IGVsc2UgaWYgKHNpZ25YID4gMCkgdzAgPSB3MTtcbiAgICAgICAgICAgICAgaWYgKHNpZ25ZIDwgMCkgczAgPSBzMTsgZWxzZSBpZiAoc2lnblkgPiAwKSBuMCA9IG4xO1xuICAgICAgICAgICAgICBtb2RlID0gTU9ERV9IQU5ETEU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdmVybGF5LmF0dHIoXCJjdXJzb3JcIiwgY3Vyc29yc1t0eXBlXSk7XG4gICAgICAgICAgICBtb3ZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHJldHVybjtcbiAgICAgIH1cbiAgICAgIG5vZXZlbnQoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHRvdWNobW92ZWQoZXZlbnQpIHtcbiAgICBlbWl0dGVyKHRoaXMsIGFyZ3VtZW50cykubW92ZWQoZXZlbnQpO1xuICB9XG5cbiAgZnVuY3Rpb24gdG91Y2hlbmRlZChldmVudCkge1xuICAgIGVtaXR0ZXIodGhpcywgYXJndW1lbnRzKS5lbmRlZChldmVudCk7XG4gIH1cblxuICBmdW5jdGlvbiBpbml0aWFsaXplKCkge1xuICAgIHZhciBzdGF0ZSA9IHRoaXMuX19icnVzaCB8fCB7c2VsZWN0aW9uOiBudWxsfTtcbiAgICBzdGF0ZS5leHRlbnQgPSBudW1iZXIyKGV4dGVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICBzdGF0ZS5kaW0gPSBkaW07XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgYnJ1c2guZXh0ZW50ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGV4dGVudCA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQobnVtYmVyMihfKSksIGJydXNoKSA6IGV4dGVudDtcbiAgfTtcblxuICBicnVzaC5maWx0ZXIgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoZmlsdGVyID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCghIV8pLCBicnVzaCkgOiBmaWx0ZXI7XG4gIH07XG5cbiAgYnJ1c2gudG91Y2hhYmxlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHRvdWNoYWJsZSA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoISFfKSwgYnJ1c2gpIDogdG91Y2hhYmxlO1xuICB9O1xuXG4gIGJydXNoLmhhbmRsZVNpemUgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoaGFuZGxlU2l6ZSA9ICtfLCBicnVzaCkgOiBoYW5kbGVTaXplO1xuICB9O1xuXG4gIGJydXNoLmtleU1vZGlmaWVycyA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChrZXlzID0gISFfLCBicnVzaCkgOiBrZXlzO1xuICB9O1xuXG4gIGJydXNoLm9uID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHZhbHVlID0gbGlzdGVuZXJzLm9uLmFwcGx5KGxpc3RlbmVycywgYXJndW1lbnRzKTtcbiAgICByZXR1cm4gdmFsdWUgPT09IGxpc3RlbmVycyA/IGJydXNoIDogdmFsdWU7XG4gIH07XG5cbiAgcmV0dXJuIGJydXNoO1xufVxuIiwgImNvbnN0IHBpID0gTWF0aC5QSSxcbiAgICB0YXUgPSAyICogcGksXG4gICAgZXBzaWxvbiA9IDFlLTYsXG4gICAgdGF1RXBzaWxvbiA9IHRhdSAtIGVwc2lsb247XG5cbmZ1bmN0aW9uIFBhdGgoKSB7XG4gIHRoaXMuX3gwID0gdGhpcy5feTAgPSAvLyBzdGFydCBvZiBjdXJyZW50IHN1YnBhdGhcbiAgdGhpcy5feDEgPSB0aGlzLl95MSA9IG51bGw7IC8vIGVuZCBvZiBjdXJyZW50IHN1YnBhdGhcbiAgdGhpcy5fID0gXCJcIjtcbn1cblxuZnVuY3Rpb24gcGF0aCgpIHtcbiAgcmV0dXJuIG5ldyBQYXRoO1xufVxuXG5QYXRoLnByb3RvdHlwZSA9IHBhdGgucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogUGF0aCxcbiAgbW92ZVRvOiBmdW5jdGlvbih4LCB5KSB7XG4gICAgdGhpcy5fICs9IFwiTVwiICsgKHRoaXMuX3gwID0gdGhpcy5feDEgPSAreCkgKyBcIixcIiArICh0aGlzLl95MCA9IHRoaXMuX3kxID0gK3kpO1xuICB9LFxuICBjbG9zZVBhdGg6IGZ1bmN0aW9uKCkge1xuICAgIGlmICh0aGlzLl94MSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5feDEgPSB0aGlzLl94MCwgdGhpcy5feTEgPSB0aGlzLl95MDtcbiAgICAgIHRoaXMuXyArPSBcIlpcIjtcbiAgICB9XG4gIH0sXG4gIGxpbmVUbzogZnVuY3Rpb24oeCwgeSkge1xuICAgIHRoaXMuXyArPSBcIkxcIiArICh0aGlzLl94MSA9ICt4KSArIFwiLFwiICsgKHRoaXMuX3kxID0gK3kpO1xuICB9LFxuICBxdWFkcmF0aWNDdXJ2ZVRvOiBmdW5jdGlvbih4MSwgeTEsIHgsIHkpIHtcbiAgICB0aGlzLl8gKz0gXCJRXCIgKyAoK3gxKSArIFwiLFwiICsgKCt5MSkgKyBcIixcIiArICh0aGlzLl94MSA9ICt4KSArIFwiLFwiICsgKHRoaXMuX3kxID0gK3kpO1xuICB9LFxuICBiZXppZXJDdXJ2ZVRvOiBmdW5jdGlvbih4MSwgeTEsIHgyLCB5MiwgeCwgeSkge1xuICAgIHRoaXMuXyArPSBcIkNcIiArICgreDEpICsgXCIsXCIgKyAoK3kxKSArIFwiLFwiICsgKCt4MikgKyBcIixcIiArICgreTIpICsgXCIsXCIgKyAodGhpcy5feDEgPSAreCkgKyBcIixcIiArICh0aGlzLl95MSA9ICt5KTtcbiAgfSxcbiAgYXJjVG86IGZ1bmN0aW9uKHgxLCB5MSwgeDIsIHkyLCByKSB7XG4gICAgeDEgPSAreDEsIHkxID0gK3kxLCB4MiA9ICt4MiwgeTIgPSAreTIsIHIgPSArcjtcbiAgICB2YXIgeDAgPSB0aGlzLl94MSxcbiAgICAgICAgeTAgPSB0aGlzLl95MSxcbiAgICAgICAgeDIxID0geDIgLSB4MSxcbiAgICAgICAgeTIxID0geTIgLSB5MSxcbiAgICAgICAgeDAxID0geDAgLSB4MSxcbiAgICAgICAgeTAxID0geTAgLSB5MSxcbiAgICAgICAgbDAxXzIgPSB4MDEgKiB4MDEgKyB5MDEgKiB5MDE7XG5cbiAgICAvLyBJcyB0aGUgcmFkaXVzIG5lZ2F0aXZlPyBFcnJvci5cbiAgICBpZiAociA8IDApIHRocm93IG5ldyBFcnJvcihcIm5lZ2F0aXZlIHJhZGl1czogXCIgKyByKTtcblxuICAgIC8vIElzIHRoaXMgcGF0aCBlbXB0eT8gTW92ZSB0byAoeDEseTEpLlxuICAgIGlmICh0aGlzLl94MSA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5fICs9IFwiTVwiICsgKHRoaXMuX3gxID0geDEpICsgXCIsXCIgKyAodGhpcy5feTEgPSB5MSk7XG4gICAgfVxuXG4gICAgLy8gT3IsIGlzICh4MSx5MSkgY29pbmNpZGVudCB3aXRoICh4MCx5MCk/IERvIG5vdGhpbmcuXG4gICAgZWxzZSBpZiAoIShsMDFfMiA+IGVwc2lsb24pKTtcblxuICAgIC8vIE9yLCBhcmUgKHgwLHkwKSwgKHgxLHkxKSBhbmQgKHgyLHkyKSBjb2xsaW5lYXI/XG4gICAgLy8gRXF1aXZhbGVudGx5LCBpcyAoeDEseTEpIGNvaW5jaWRlbnQgd2l0aCAoeDIseTIpP1xuICAgIC8vIE9yLCBpcyB0aGUgcmFkaXVzIHplcm8/IExpbmUgdG8gKHgxLHkxKS5cbiAgICBlbHNlIGlmICghKE1hdGguYWJzKHkwMSAqIHgyMSAtIHkyMSAqIHgwMSkgPiBlcHNpbG9uKSB8fCAhcikge1xuICAgICAgdGhpcy5fICs9IFwiTFwiICsgKHRoaXMuX3gxID0geDEpICsgXCIsXCIgKyAodGhpcy5feTEgPSB5MSk7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlLCBkcmF3IGFuIGFyYyFcbiAgICBlbHNlIHtcbiAgICAgIHZhciB4MjAgPSB4MiAtIHgwLFxuICAgICAgICAgIHkyMCA9IHkyIC0geTAsXG4gICAgICAgICAgbDIxXzIgPSB4MjEgKiB4MjEgKyB5MjEgKiB5MjEsXG4gICAgICAgICAgbDIwXzIgPSB4MjAgKiB4MjAgKyB5MjAgKiB5MjAsXG4gICAgICAgICAgbDIxID0gTWF0aC5zcXJ0KGwyMV8yKSxcbiAgICAgICAgICBsMDEgPSBNYXRoLnNxcnQobDAxXzIpLFxuICAgICAgICAgIGwgPSByICogTWF0aC50YW4oKHBpIC0gTWF0aC5hY29zKChsMjFfMiArIGwwMV8yIC0gbDIwXzIpIC8gKDIgKiBsMjEgKiBsMDEpKSkgLyAyKSxcbiAgICAgICAgICB0MDEgPSBsIC8gbDAxLFxuICAgICAgICAgIHQyMSA9IGwgLyBsMjE7XG5cbiAgICAgIC8vIElmIHRoZSBzdGFydCB0YW5nZW50IGlzIG5vdCBjb2luY2lkZW50IHdpdGggKHgwLHkwKSwgbGluZSB0by5cbiAgICAgIGlmIChNYXRoLmFicyh0MDEgLSAxKSA+IGVwc2lsb24pIHtcbiAgICAgICAgdGhpcy5fICs9IFwiTFwiICsgKHgxICsgdDAxICogeDAxKSArIFwiLFwiICsgKHkxICsgdDAxICogeTAxKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fICs9IFwiQVwiICsgciArIFwiLFwiICsgciArIFwiLDAsMCxcIiArICgrKHkwMSAqIHgyMCA+IHgwMSAqIHkyMCkpICsgXCIsXCIgKyAodGhpcy5feDEgPSB4MSArIHQyMSAqIHgyMSkgKyBcIixcIiArICh0aGlzLl95MSA9IHkxICsgdDIxICogeTIxKTtcbiAgICB9XG4gIH0sXG4gIGFyYzogZnVuY3Rpb24oeCwgeSwgciwgYTAsIGExLCBjY3cpIHtcbiAgICB4ID0gK3gsIHkgPSAreSwgciA9ICtyLCBjY3cgPSAhIWNjdztcbiAgICB2YXIgZHggPSByICogTWF0aC5jb3MoYTApLFxuICAgICAgICBkeSA9IHIgKiBNYXRoLnNpbihhMCksXG4gICAgICAgIHgwID0geCArIGR4LFxuICAgICAgICB5MCA9IHkgKyBkeSxcbiAgICAgICAgY3cgPSAxIF4gY2N3LFxuICAgICAgICBkYSA9IGNjdyA/IGEwIC0gYTEgOiBhMSAtIGEwO1xuXG4gICAgLy8gSXMgdGhlIHJhZGl1cyBuZWdhdGl2ZT8gRXJyb3IuXG4gICAgaWYgKHIgPCAwKSB0aHJvdyBuZXcgRXJyb3IoXCJuZWdhdGl2ZSByYWRpdXM6IFwiICsgcik7XG5cbiAgICAvLyBJcyB0aGlzIHBhdGggZW1wdHk/IE1vdmUgdG8gKHgwLHkwKS5cbiAgICBpZiAodGhpcy5feDEgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuXyArPSBcIk1cIiArIHgwICsgXCIsXCIgKyB5MDtcbiAgICB9XG5cbiAgICAvLyBPciwgaXMgKHgwLHkwKSBub3QgY29pbmNpZGVudCB3aXRoIHRoZSBwcmV2aW91cyBwb2ludD8gTGluZSB0byAoeDAseTApLlxuICAgIGVsc2UgaWYgKE1hdGguYWJzKHRoaXMuX3gxIC0geDApID4gZXBzaWxvbiB8fCBNYXRoLmFicyh0aGlzLl95MSAtIHkwKSA+IGVwc2lsb24pIHtcbiAgICAgIHRoaXMuXyArPSBcIkxcIiArIHgwICsgXCIsXCIgKyB5MDtcbiAgICB9XG5cbiAgICAvLyBJcyB0aGlzIGFyYyBlbXB0eT8gV2VcdTIwMTlyZSBkb25lLlxuICAgIGlmICghcikgcmV0dXJuO1xuXG4gICAgLy8gRG9lcyB0aGUgYW5nbGUgZ28gdGhlIHdyb25nIHdheT8gRmxpcCB0aGUgZGlyZWN0aW9uLlxuICAgIGlmIChkYSA8IDApIGRhID0gZGEgJSB0YXUgKyB0YXU7XG5cbiAgICAvLyBJcyB0aGlzIGEgY29tcGxldGUgY2lyY2xlPyBEcmF3IHR3byBhcmNzIHRvIGNvbXBsZXRlIHRoZSBjaXJjbGUuXG4gICAgaWYgKGRhID4gdGF1RXBzaWxvbikge1xuICAgICAgdGhpcy5fICs9IFwiQVwiICsgciArIFwiLFwiICsgciArIFwiLDAsMSxcIiArIGN3ICsgXCIsXCIgKyAoeCAtIGR4KSArIFwiLFwiICsgKHkgLSBkeSkgKyBcIkFcIiArIHIgKyBcIixcIiArIHIgKyBcIiwwLDEsXCIgKyBjdyArIFwiLFwiICsgKHRoaXMuX3gxID0geDApICsgXCIsXCIgKyAodGhpcy5feTEgPSB5MCk7XG4gICAgfVxuXG4gICAgLy8gSXMgdGhpcyBhcmMgbm9uLWVtcHR5PyBEcmF3IGFuIGFyYyFcbiAgICBlbHNlIGlmIChkYSA+IGVwc2lsb24pIHtcbiAgICAgIHRoaXMuXyArPSBcIkFcIiArIHIgKyBcIixcIiArIHIgKyBcIiwwLFwiICsgKCsoZGEgPj0gcGkpKSArIFwiLFwiICsgY3cgKyBcIixcIiArICh0aGlzLl94MSA9IHggKyByICogTWF0aC5jb3MoYTEpKSArIFwiLFwiICsgKHRoaXMuX3kxID0geSArIHIgKiBNYXRoLnNpbihhMSkpO1xuICAgIH1cbiAgfSxcbiAgcmVjdDogZnVuY3Rpb24oeCwgeSwgdywgaCkge1xuICAgIHRoaXMuXyArPSBcIk1cIiArICh0aGlzLl94MCA9IHRoaXMuX3gxID0gK3gpICsgXCIsXCIgKyAodGhpcy5feTAgPSB0aGlzLl95MSA9ICt5KSArIFwiaFwiICsgKCt3KSArIFwidlwiICsgKCtoKSArIFwiaFwiICsgKC13KSArIFwiWlwiO1xuICB9LFxuICB0b1N0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuXztcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgcGF0aDtcbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbih4LCB5KSB7XG4gIHZhciBub2Rlcywgc3RyZW5ndGggPSAxO1xuXG4gIGlmICh4ID09IG51bGwpIHggPSAwO1xuICBpZiAoeSA9PSBudWxsKSB5ID0gMDtcblxuICBmdW5jdGlvbiBmb3JjZSgpIHtcbiAgICB2YXIgaSxcbiAgICAgICAgbiA9IG5vZGVzLmxlbmd0aCxcbiAgICAgICAgbm9kZSxcbiAgICAgICAgc3ggPSAwLFxuICAgICAgICBzeSA9IDA7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBub2RlID0gbm9kZXNbaV0sIHN4ICs9IG5vZGUueCwgc3kgKz0gbm9kZS55O1xuICAgIH1cblxuICAgIGZvciAoc3ggPSAoc3ggLyBuIC0geCkgKiBzdHJlbmd0aCwgc3kgPSAoc3kgLyBuIC0geSkgKiBzdHJlbmd0aCwgaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICAgIG5vZGUgPSBub2Rlc1tpXSwgbm9kZS54IC09IHN4LCBub2RlLnkgLT0gc3k7XG4gICAgfVxuICB9XG5cbiAgZm9yY2UuaW5pdGlhbGl6ZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICBub2RlcyA9IF87XG4gIH07XG5cbiAgZm9yY2UueCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh4ID0gK18sIGZvcmNlKSA6IHg7XG4gIH07XG5cbiAgZm9yY2UueSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh5ID0gK18sIGZvcmNlKSA6IHk7XG4gIH07XG5cbiAgZm9yY2Uuc3RyZW5ndGggPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoc3RyZW5ndGggPSArXywgZm9yY2UpIDogc3RyZW5ndGg7XG4gIH07XG5cbiAgcmV0dXJuIGZvcmNlO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGQpIHtcbiAgY29uc3QgeCA9ICt0aGlzLl94LmNhbGwobnVsbCwgZCksXG4gICAgICB5ID0gK3RoaXMuX3kuY2FsbChudWxsLCBkKTtcbiAgcmV0dXJuIGFkZCh0aGlzLmNvdmVyKHgsIHkpLCB4LCB5LCBkKTtcbn1cblxuZnVuY3Rpb24gYWRkKHRyZWUsIHgsIHksIGQpIHtcbiAgaWYgKGlzTmFOKHgpIHx8IGlzTmFOKHkpKSByZXR1cm4gdHJlZTsgLy8gaWdub3JlIGludmFsaWQgcG9pbnRzXG5cbiAgdmFyIHBhcmVudCxcbiAgICAgIG5vZGUgPSB0cmVlLl9yb290LFxuICAgICAgbGVhZiA9IHtkYXRhOiBkfSxcbiAgICAgIHgwID0gdHJlZS5feDAsXG4gICAgICB5MCA9IHRyZWUuX3kwLFxuICAgICAgeDEgPSB0cmVlLl94MSxcbiAgICAgIHkxID0gdHJlZS5feTEsXG4gICAgICB4bSxcbiAgICAgIHltLFxuICAgICAgeHAsXG4gICAgICB5cCxcbiAgICAgIHJpZ2h0LFxuICAgICAgYm90dG9tLFxuICAgICAgaSxcbiAgICAgIGo7XG5cbiAgLy8gSWYgdGhlIHRyZWUgaXMgZW1wdHksIGluaXRpYWxpemUgdGhlIHJvb3QgYXMgYSBsZWFmLlxuICBpZiAoIW5vZGUpIHJldHVybiB0cmVlLl9yb290ID0gbGVhZiwgdHJlZTtcblxuICAvLyBGaW5kIHRoZSBleGlzdGluZyBsZWFmIGZvciB0aGUgbmV3IHBvaW50LCBvciBhZGQgaXQuXG4gIHdoaWxlIChub2RlLmxlbmd0aCkge1xuICAgIGlmIChyaWdodCA9IHggPj0gKHhtID0gKHgwICsgeDEpIC8gMikpIHgwID0geG07IGVsc2UgeDEgPSB4bTtcbiAgICBpZiAoYm90dG9tID0geSA+PSAoeW0gPSAoeTAgKyB5MSkgLyAyKSkgeTAgPSB5bTsgZWxzZSB5MSA9IHltO1xuICAgIGlmIChwYXJlbnQgPSBub2RlLCAhKG5vZGUgPSBub2RlW2kgPSBib3R0b20gPDwgMSB8IHJpZ2h0XSkpIHJldHVybiBwYXJlbnRbaV0gPSBsZWFmLCB0cmVlO1xuICB9XG5cbiAgLy8gSXMgdGhlIG5ldyBwb2ludCBpcyBleGFjdGx5IGNvaW5jaWRlbnQgd2l0aCB0aGUgZXhpc3RpbmcgcG9pbnQ/XG4gIHhwID0gK3RyZWUuX3guY2FsbChudWxsLCBub2RlLmRhdGEpO1xuICB5cCA9ICt0cmVlLl95LmNhbGwobnVsbCwgbm9kZS5kYXRhKTtcbiAgaWYgKHggPT09IHhwICYmIHkgPT09IHlwKSByZXR1cm4gbGVhZi5uZXh0ID0gbm9kZSwgcGFyZW50ID8gcGFyZW50W2ldID0gbGVhZiA6IHRyZWUuX3Jvb3QgPSBsZWFmLCB0cmVlO1xuXG4gIC8vIE90aGVyd2lzZSwgc3BsaXQgdGhlIGxlYWYgbm9kZSB1bnRpbCB0aGUgb2xkIGFuZCBuZXcgcG9pbnQgYXJlIHNlcGFyYXRlZC5cbiAgZG8ge1xuICAgIHBhcmVudCA9IHBhcmVudCA/IHBhcmVudFtpXSA9IG5ldyBBcnJheSg0KSA6IHRyZWUuX3Jvb3QgPSBuZXcgQXJyYXkoNCk7XG4gICAgaWYgKHJpZ2h0ID0geCA+PSAoeG0gPSAoeDAgKyB4MSkgLyAyKSkgeDAgPSB4bTsgZWxzZSB4MSA9IHhtO1xuICAgIGlmIChib3R0b20gPSB5ID49ICh5bSA9ICh5MCArIHkxKSAvIDIpKSB5MCA9IHltOyBlbHNlIHkxID0geW07XG4gIH0gd2hpbGUgKChpID0gYm90dG9tIDw8IDEgfCByaWdodCkgPT09IChqID0gKHlwID49IHltKSA8PCAxIHwgKHhwID49IHhtKSkpO1xuICByZXR1cm4gcGFyZW50W2pdID0gbm9kZSwgcGFyZW50W2ldID0gbGVhZiwgdHJlZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZEFsbChkYXRhKSB7XG4gIHZhciBkLCBpLCBuID0gZGF0YS5sZW5ndGgsXG4gICAgICB4LFxuICAgICAgeSxcbiAgICAgIHh6ID0gbmV3IEFycmF5KG4pLFxuICAgICAgeXogPSBuZXcgQXJyYXkobiksXG4gICAgICB4MCA9IEluZmluaXR5LFxuICAgICAgeTAgPSBJbmZpbml0eSxcbiAgICAgIHgxID0gLUluZmluaXR5LFxuICAgICAgeTEgPSAtSW5maW5pdHk7XG5cbiAgLy8gQ29tcHV0ZSB0aGUgcG9pbnRzIGFuZCB0aGVpciBleHRlbnQuXG4gIGZvciAoaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICBpZiAoaXNOYU4oeCA9ICt0aGlzLl94LmNhbGwobnVsbCwgZCA9IGRhdGFbaV0pKSB8fCBpc05hTih5ID0gK3RoaXMuX3kuY2FsbChudWxsLCBkKSkpIGNvbnRpbnVlO1xuICAgIHh6W2ldID0geDtcbiAgICB5eltpXSA9IHk7XG4gICAgaWYgKHggPCB4MCkgeDAgPSB4O1xuICAgIGlmICh4ID4geDEpIHgxID0geDtcbiAgICBpZiAoeSA8IHkwKSB5MCA9IHk7XG4gICAgaWYgKHkgPiB5MSkgeTEgPSB5O1xuICB9XG5cbiAgLy8gSWYgdGhlcmUgd2VyZSBubyAodmFsaWQpIHBvaW50cywgYWJvcnQuXG4gIGlmICh4MCA+IHgxIHx8IHkwID4geTEpIHJldHVybiB0aGlzO1xuXG4gIC8vIEV4cGFuZCB0aGUgdHJlZSB0byBjb3ZlciB0aGUgbmV3IHBvaW50cy5cbiAgdGhpcy5jb3Zlcih4MCwgeTApLmNvdmVyKHgxLCB5MSk7XG5cbiAgLy8gQWRkIHRoZSBuZXcgcG9pbnRzLlxuICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgYWRkKHRoaXMsIHh6W2ldLCB5eltpXSwgZGF0YVtpXSk7XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbih4LCB5KSB7XG4gIGlmIChpc05hTih4ID0gK3gpIHx8IGlzTmFOKHkgPSAreSkpIHJldHVybiB0aGlzOyAvLyBpZ25vcmUgaW52YWxpZCBwb2ludHNcblxuICB2YXIgeDAgPSB0aGlzLl94MCxcbiAgICAgIHkwID0gdGhpcy5feTAsXG4gICAgICB4MSA9IHRoaXMuX3gxLFxuICAgICAgeTEgPSB0aGlzLl95MTtcblxuICAvLyBJZiB0aGUgcXVhZHRyZWUgaGFzIG5vIGV4dGVudCwgaW5pdGlhbGl6ZSB0aGVtLlxuICAvLyBJbnRlZ2VyIGV4dGVudCBhcmUgbmVjZXNzYXJ5IHNvIHRoYXQgaWYgd2UgbGF0ZXIgZG91YmxlIHRoZSBleHRlbnQsXG4gIC8vIHRoZSBleGlzdGluZyBxdWFkcmFudCBib3VuZGFyaWVzIGRvblx1MjAxOXQgY2hhbmdlIGR1ZSB0byBmbG9hdGluZyBwb2ludCBlcnJvciFcbiAgaWYgKGlzTmFOKHgwKSkge1xuICAgIHgxID0gKHgwID0gTWF0aC5mbG9vcih4KSkgKyAxO1xuICAgIHkxID0gKHkwID0gTWF0aC5mbG9vcih5KSkgKyAxO1xuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCBkb3VibGUgcmVwZWF0ZWRseSB0byBjb3Zlci5cbiAgZWxzZSB7XG4gICAgdmFyIHogPSB4MSAtIHgwIHx8IDEsXG4gICAgICAgIG5vZGUgPSB0aGlzLl9yb290LFxuICAgICAgICBwYXJlbnQsXG4gICAgICAgIGk7XG5cbiAgICB3aGlsZSAoeDAgPiB4IHx8IHggPj0geDEgfHwgeTAgPiB5IHx8IHkgPj0geTEpIHtcbiAgICAgIGkgPSAoeSA8IHkwKSA8PCAxIHwgKHggPCB4MCk7XG4gICAgICBwYXJlbnQgPSBuZXcgQXJyYXkoNCksIHBhcmVudFtpXSA9IG5vZGUsIG5vZGUgPSBwYXJlbnQsIHogKj0gMjtcbiAgICAgIHN3aXRjaCAoaSkge1xuICAgICAgICBjYXNlIDA6IHgxID0geDAgKyB6LCB5MSA9IHkwICsgejsgYnJlYWs7XG4gICAgICAgIGNhc2UgMTogeDAgPSB4MSAtIHosIHkxID0geTAgKyB6OyBicmVhaztcbiAgICAgICAgY2FzZSAyOiB4MSA9IHgwICsgeiwgeTAgPSB5MSAtIHo7IGJyZWFrO1xuICAgICAgICBjYXNlIDM6IHgwID0geDEgLSB6LCB5MCA9IHkxIC0gejsgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Jvb3QgJiYgdGhpcy5fcm9vdC5sZW5ndGgpIHRoaXMuX3Jvb3QgPSBub2RlO1xuICB9XG5cbiAgdGhpcy5feDAgPSB4MDtcbiAgdGhpcy5feTAgPSB5MDtcbiAgdGhpcy5feDEgPSB4MTtcbiAgdGhpcy5feTEgPSB5MTtcbiAgcmV0dXJuIHRoaXM7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHZhciBkYXRhID0gW107XG4gIHRoaXMudmlzaXQoZnVuY3Rpb24obm9kZSkge1xuICAgIGlmICghbm9kZS5sZW5ndGgpIGRvIGRhdGEucHVzaChub2RlLmRhdGEpOyB3aGlsZSAobm9kZSA9IG5vZGUubmV4dClcbiAgfSk7XG4gIHJldHVybiBkYXRhO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKF8pIHtcbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGhcbiAgICAgID8gdGhpcy5jb3ZlcigrX1swXVswXSwgK19bMF1bMV0pLmNvdmVyKCtfWzFdWzBdLCArX1sxXVsxXSlcbiAgICAgIDogaXNOYU4odGhpcy5feDApID8gdW5kZWZpbmVkIDogW1t0aGlzLl94MCwgdGhpcy5feTBdLCBbdGhpcy5feDEsIHRoaXMuX3kxXV07XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obm9kZSwgeDAsIHkwLCB4MSwgeTEpIHtcbiAgdGhpcy5ub2RlID0gbm9kZTtcbiAgdGhpcy54MCA9IHgwO1xuICB0aGlzLnkwID0geTA7XG4gIHRoaXMueDEgPSB4MTtcbiAgdGhpcy55MSA9IHkxO1xufVxuIiwgImltcG9ydCBRdWFkIGZyb20gXCIuL3F1YWQuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeCwgeSwgcmFkaXVzKSB7XG4gIHZhciBkYXRhLFxuICAgICAgeDAgPSB0aGlzLl94MCxcbiAgICAgIHkwID0gdGhpcy5feTAsXG4gICAgICB4MSxcbiAgICAgIHkxLFxuICAgICAgeDIsXG4gICAgICB5MixcbiAgICAgIHgzID0gdGhpcy5feDEsXG4gICAgICB5MyA9IHRoaXMuX3kxLFxuICAgICAgcXVhZHMgPSBbXSxcbiAgICAgIG5vZGUgPSB0aGlzLl9yb290LFxuICAgICAgcSxcbiAgICAgIGk7XG5cbiAgaWYgKG5vZGUpIHF1YWRzLnB1c2gobmV3IFF1YWQobm9kZSwgeDAsIHkwLCB4MywgeTMpKTtcbiAgaWYgKHJhZGl1cyA9PSBudWxsKSByYWRpdXMgPSBJbmZpbml0eTtcbiAgZWxzZSB7XG4gICAgeDAgPSB4IC0gcmFkaXVzLCB5MCA9IHkgLSByYWRpdXM7XG4gICAgeDMgPSB4ICsgcmFkaXVzLCB5MyA9IHkgKyByYWRpdXM7XG4gICAgcmFkaXVzICo9IHJhZGl1cztcbiAgfVxuXG4gIHdoaWxlIChxID0gcXVhZHMucG9wKCkpIHtcblxuICAgIC8vIFN0b3Agc2VhcmNoaW5nIGlmIHRoaXMgcXVhZHJhbnQgY2FuXHUyMDE5dCBjb250YWluIGEgY2xvc2VyIG5vZGUuXG4gICAgaWYgKCEobm9kZSA9IHEubm9kZSlcbiAgICAgICAgfHwgKHgxID0gcS54MCkgPiB4M1xuICAgICAgICB8fCAoeTEgPSBxLnkwKSA+IHkzXG4gICAgICAgIHx8ICh4MiA9IHEueDEpIDwgeDBcbiAgICAgICAgfHwgKHkyID0gcS55MSkgPCB5MCkgY29udGludWU7XG5cbiAgICAvLyBCaXNlY3QgdGhlIGN1cnJlbnQgcXVhZHJhbnQuXG4gICAgaWYgKG5vZGUubGVuZ3RoKSB7XG4gICAgICB2YXIgeG0gPSAoeDEgKyB4MikgLyAyLFxuICAgICAgICAgIHltID0gKHkxICsgeTIpIC8gMjtcblxuICAgICAgcXVhZHMucHVzaChcbiAgICAgICAgbmV3IFF1YWQobm9kZVszXSwgeG0sIHltLCB4MiwgeTIpLFxuICAgICAgICBuZXcgUXVhZChub2RlWzJdLCB4MSwgeW0sIHhtLCB5MiksXG4gICAgICAgIG5ldyBRdWFkKG5vZGVbMV0sIHhtLCB5MSwgeDIsIHltKSxcbiAgICAgICAgbmV3IFF1YWQobm9kZVswXSwgeDEsIHkxLCB4bSwgeW0pXG4gICAgICApO1xuXG4gICAgICAvLyBWaXNpdCB0aGUgY2xvc2VzdCBxdWFkcmFudCBmaXJzdC5cbiAgICAgIGlmIChpID0gKHkgPj0geW0pIDw8IDEgfCAoeCA+PSB4bSkpIHtcbiAgICAgICAgcSA9IHF1YWRzW3F1YWRzLmxlbmd0aCAtIDFdO1xuICAgICAgICBxdWFkc1txdWFkcy5sZW5ndGggLSAxXSA9IHF1YWRzW3F1YWRzLmxlbmd0aCAtIDEgLSBpXTtcbiAgICAgICAgcXVhZHNbcXVhZHMubGVuZ3RoIC0gMSAtIGldID0gcTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWaXNpdCB0aGlzIHBvaW50LiAoVmlzaXRpbmcgY29pbmNpZGVudCBwb2ludHMgaXNuXHUyMDE5dCBuZWNlc3NhcnkhKVxuICAgIGVsc2Uge1xuICAgICAgdmFyIGR4ID0geCAtICt0aGlzLl94LmNhbGwobnVsbCwgbm9kZS5kYXRhKSxcbiAgICAgICAgICBkeSA9IHkgLSArdGhpcy5feS5jYWxsKG51bGwsIG5vZGUuZGF0YSksXG4gICAgICAgICAgZDIgPSBkeCAqIGR4ICsgZHkgKiBkeTtcbiAgICAgIGlmIChkMiA8IHJhZGl1cykge1xuICAgICAgICB2YXIgZCA9IE1hdGguc3FydChyYWRpdXMgPSBkMik7XG4gICAgICAgIHgwID0geCAtIGQsIHkwID0geSAtIGQ7XG4gICAgICAgIHgzID0geCArIGQsIHkzID0geSArIGQ7XG4gICAgICAgIGRhdGEgPSBub2RlLmRhdGE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRhdGE7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oZCkge1xuICBpZiAoaXNOYU4oeCA9ICt0aGlzLl94LmNhbGwobnVsbCwgZCkpIHx8IGlzTmFOKHkgPSArdGhpcy5feS5jYWxsKG51bGwsIGQpKSkgcmV0dXJuIHRoaXM7IC8vIGlnbm9yZSBpbnZhbGlkIHBvaW50c1xuXG4gIHZhciBwYXJlbnQsXG4gICAgICBub2RlID0gdGhpcy5fcm9vdCxcbiAgICAgIHJldGFpbmVyLFxuICAgICAgcHJldmlvdXMsXG4gICAgICBuZXh0LFxuICAgICAgeDAgPSB0aGlzLl94MCxcbiAgICAgIHkwID0gdGhpcy5feTAsXG4gICAgICB4MSA9IHRoaXMuX3gxLFxuICAgICAgeTEgPSB0aGlzLl95MSxcbiAgICAgIHgsXG4gICAgICB5LFxuICAgICAgeG0sXG4gICAgICB5bSxcbiAgICAgIHJpZ2h0LFxuICAgICAgYm90dG9tLFxuICAgICAgaSxcbiAgICAgIGo7XG5cbiAgLy8gSWYgdGhlIHRyZWUgaXMgZW1wdHksIGluaXRpYWxpemUgdGhlIHJvb3QgYXMgYSBsZWFmLlxuICBpZiAoIW5vZGUpIHJldHVybiB0aGlzO1xuXG4gIC8vIEZpbmQgdGhlIGxlYWYgbm9kZSBmb3IgdGhlIHBvaW50LlxuICAvLyBXaGlsZSBkZXNjZW5kaW5nLCBhbHNvIHJldGFpbiB0aGUgZGVlcGVzdCBwYXJlbnQgd2l0aCBhIG5vbi1yZW1vdmVkIHNpYmxpbmcuXG4gIGlmIChub2RlLmxlbmd0aCkgd2hpbGUgKHRydWUpIHtcbiAgICBpZiAocmlnaHQgPSB4ID49ICh4bSA9ICh4MCArIHgxKSAvIDIpKSB4MCA9IHhtOyBlbHNlIHgxID0geG07XG4gICAgaWYgKGJvdHRvbSA9IHkgPj0gKHltID0gKHkwICsgeTEpIC8gMikpIHkwID0geW07IGVsc2UgeTEgPSB5bTtcbiAgICBpZiAoIShwYXJlbnQgPSBub2RlLCBub2RlID0gbm9kZVtpID0gYm90dG9tIDw8IDEgfCByaWdodF0pKSByZXR1cm4gdGhpcztcbiAgICBpZiAoIW5vZGUubGVuZ3RoKSBicmVhaztcbiAgICBpZiAocGFyZW50WyhpICsgMSkgJiAzXSB8fCBwYXJlbnRbKGkgKyAyKSAmIDNdIHx8IHBhcmVudFsoaSArIDMpICYgM10pIHJldGFpbmVyID0gcGFyZW50LCBqID0gaTtcbiAgfVxuXG4gIC8vIEZpbmQgdGhlIHBvaW50IHRvIHJlbW92ZS5cbiAgd2hpbGUgKG5vZGUuZGF0YSAhPT0gZCkgaWYgKCEocHJldmlvdXMgPSBub2RlLCBub2RlID0gbm9kZS5uZXh0KSkgcmV0dXJuIHRoaXM7XG4gIGlmIChuZXh0ID0gbm9kZS5uZXh0KSBkZWxldGUgbm9kZS5uZXh0O1xuXG4gIC8vIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBjb2luY2lkZW50IHBvaW50cywgcmVtb3ZlIGp1c3QgdGhlIHBvaW50LlxuICBpZiAocHJldmlvdXMpIHJldHVybiAobmV4dCA/IHByZXZpb3VzLm5leHQgPSBuZXh0IDogZGVsZXRlIHByZXZpb3VzLm5leHQpLCB0aGlzO1xuXG4gIC8vIElmIHRoaXMgaXMgdGhlIHJvb3QgcG9pbnQsIHJlbW92ZSBpdC5cbiAgaWYgKCFwYXJlbnQpIHJldHVybiB0aGlzLl9yb290ID0gbmV4dCwgdGhpcztcblxuICAvLyBSZW1vdmUgdGhpcyBsZWFmLlxuICBuZXh0ID8gcGFyZW50W2ldID0gbmV4dCA6IGRlbGV0ZSBwYXJlbnRbaV07XG5cbiAgLy8gSWYgdGhlIHBhcmVudCBub3cgY29udGFpbnMgZXhhY3RseSBvbmUgbGVhZiwgY29sbGFwc2Ugc3VwZXJmbHVvdXMgcGFyZW50cy5cbiAgaWYgKChub2RlID0gcGFyZW50WzBdIHx8IHBhcmVudFsxXSB8fCBwYXJlbnRbMl0gfHwgcGFyZW50WzNdKVxuICAgICAgJiYgbm9kZSA9PT0gKHBhcmVudFszXSB8fCBwYXJlbnRbMl0gfHwgcGFyZW50WzFdIHx8IHBhcmVudFswXSlcbiAgICAgICYmICFub2RlLmxlbmd0aCkge1xuICAgIGlmIChyZXRhaW5lcikgcmV0YWluZXJbal0gPSBub2RlO1xuICAgIGVsc2UgdGhpcy5fcm9vdCA9IG5vZGU7XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUFsbChkYXRhKSB7XG4gIGZvciAodmFyIGkgPSAwLCBuID0gZGF0YS5sZW5ndGg7IGkgPCBuOyArK2kpIHRoaXMucmVtb3ZlKGRhdGFbaV0pO1xuICByZXR1cm4gdGhpcztcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRoaXMuX3Jvb3Q7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHZhciBzaXplID0gMDtcbiAgdGhpcy52aXNpdChmdW5jdGlvbihub2RlKSB7XG4gICAgaWYgKCFub2RlLmxlbmd0aCkgZG8gKytzaXplOyB3aGlsZSAobm9kZSA9IG5vZGUubmV4dClcbiAgfSk7XG4gIHJldHVybiBzaXplO1xufVxuIiwgImltcG9ydCBRdWFkIGZyb20gXCIuL3F1YWQuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgdmFyIHF1YWRzID0gW10sIHEsIG5vZGUgPSB0aGlzLl9yb290LCBjaGlsZCwgeDAsIHkwLCB4MSwgeTE7XG4gIGlmIChub2RlKSBxdWFkcy5wdXNoKG5ldyBRdWFkKG5vZGUsIHRoaXMuX3gwLCB0aGlzLl95MCwgdGhpcy5feDEsIHRoaXMuX3kxKSk7XG4gIHdoaWxlIChxID0gcXVhZHMucG9wKCkpIHtcbiAgICBpZiAoIWNhbGxiYWNrKG5vZGUgPSBxLm5vZGUsIHgwID0gcS54MCwgeTAgPSBxLnkwLCB4MSA9IHEueDEsIHkxID0gcS55MSkgJiYgbm9kZS5sZW5ndGgpIHtcbiAgICAgIHZhciB4bSA9ICh4MCArIHgxKSAvIDIsIHltID0gKHkwICsgeTEpIC8gMjtcbiAgICAgIGlmIChjaGlsZCA9IG5vZGVbM10pIHF1YWRzLnB1c2gobmV3IFF1YWQoY2hpbGQsIHhtLCB5bSwgeDEsIHkxKSk7XG4gICAgICBpZiAoY2hpbGQgPSBub2RlWzJdKSBxdWFkcy5wdXNoKG5ldyBRdWFkKGNoaWxkLCB4MCwgeW0sIHhtLCB5MSkpO1xuICAgICAgaWYgKGNoaWxkID0gbm9kZVsxXSkgcXVhZHMucHVzaChuZXcgUXVhZChjaGlsZCwgeG0sIHkwLCB4MSwgeW0pKTtcbiAgICAgIGlmIChjaGlsZCA9IG5vZGVbMF0pIHF1YWRzLnB1c2gobmV3IFF1YWQoY2hpbGQsIHgwLCB5MCwgeG0sIHltKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiB0aGlzO1xufVxuIiwgImltcG9ydCBRdWFkIGZyb20gXCIuL3F1YWQuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgdmFyIHF1YWRzID0gW10sIG5leHQgPSBbXSwgcTtcbiAgaWYgKHRoaXMuX3Jvb3QpIHF1YWRzLnB1c2gobmV3IFF1YWQodGhpcy5fcm9vdCwgdGhpcy5feDAsIHRoaXMuX3kwLCB0aGlzLl94MSwgdGhpcy5feTEpKTtcbiAgd2hpbGUgKHEgPSBxdWFkcy5wb3AoKSkge1xuICAgIHZhciBub2RlID0gcS5ub2RlO1xuICAgIGlmIChub2RlLmxlbmd0aCkge1xuICAgICAgdmFyIGNoaWxkLCB4MCA9IHEueDAsIHkwID0gcS55MCwgeDEgPSBxLngxLCB5MSA9IHEueTEsIHhtID0gKHgwICsgeDEpIC8gMiwgeW0gPSAoeTAgKyB5MSkgLyAyO1xuICAgICAgaWYgKGNoaWxkID0gbm9kZVswXSkgcXVhZHMucHVzaChuZXcgUXVhZChjaGlsZCwgeDAsIHkwLCB4bSwgeW0pKTtcbiAgICAgIGlmIChjaGlsZCA9IG5vZGVbMV0pIHF1YWRzLnB1c2gobmV3IFF1YWQoY2hpbGQsIHhtLCB5MCwgeDEsIHltKSk7XG4gICAgICBpZiAoY2hpbGQgPSBub2RlWzJdKSBxdWFkcy5wdXNoKG5ldyBRdWFkKGNoaWxkLCB4MCwgeW0sIHhtLCB5MSkpO1xuICAgICAgaWYgKGNoaWxkID0gbm9kZVszXSkgcXVhZHMucHVzaChuZXcgUXVhZChjaGlsZCwgeG0sIHltLCB4MSwgeTEpKTtcbiAgICB9XG4gICAgbmV4dC5wdXNoKHEpO1xuICB9XG4gIHdoaWxlIChxID0gbmV4dC5wb3AoKSkge1xuICAgIGNhbGxiYWNrKHEubm9kZSwgcS54MCwgcS55MCwgcS54MSwgcS55MSk7XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRYKGQpIHtcbiAgcmV0dXJuIGRbMF07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKF8pIHtcbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAodGhpcy5feCA9IF8sIHRoaXMpIDogdGhpcy5feDtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gZGVmYXVsdFkoZCkge1xuICByZXR1cm4gZFsxXTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oXykge1xuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh0aGlzLl95ID0gXywgdGhpcykgOiB0aGlzLl95O1xufVxuIiwgImltcG9ydCB0cmVlX2FkZCwge2FkZEFsbCBhcyB0cmVlX2FkZEFsbH0gZnJvbSBcIi4vYWRkLmpzXCI7XG5pbXBvcnQgdHJlZV9jb3ZlciBmcm9tIFwiLi9jb3Zlci5qc1wiO1xuaW1wb3J0IHRyZWVfZGF0YSBmcm9tIFwiLi9kYXRhLmpzXCI7XG5pbXBvcnQgdHJlZV9leHRlbnQgZnJvbSBcIi4vZXh0ZW50LmpzXCI7XG5pbXBvcnQgdHJlZV9maW5kIGZyb20gXCIuL2ZpbmQuanNcIjtcbmltcG9ydCB0cmVlX3JlbW92ZSwge3JlbW92ZUFsbCBhcyB0cmVlX3JlbW92ZUFsbH0gZnJvbSBcIi4vcmVtb3ZlLmpzXCI7XG5pbXBvcnQgdHJlZV9yb290IGZyb20gXCIuL3Jvb3QuanNcIjtcbmltcG9ydCB0cmVlX3NpemUgZnJvbSBcIi4vc2l6ZS5qc1wiO1xuaW1wb3J0IHRyZWVfdmlzaXQgZnJvbSBcIi4vdmlzaXQuanNcIjtcbmltcG9ydCB0cmVlX3Zpc2l0QWZ0ZXIgZnJvbSBcIi4vdmlzaXRBZnRlci5qc1wiO1xuaW1wb3J0IHRyZWVfeCwge2RlZmF1bHRYfSBmcm9tIFwiLi94LmpzXCI7XG5pbXBvcnQgdHJlZV95LCB7ZGVmYXVsdFl9IGZyb20gXCIuL3kuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcXVhZHRyZWUobm9kZXMsIHgsIHkpIHtcbiAgdmFyIHRyZWUgPSBuZXcgUXVhZHRyZWUoeCA9PSBudWxsID8gZGVmYXVsdFggOiB4LCB5ID09IG51bGwgPyBkZWZhdWx0WSA6IHksIE5hTiwgTmFOLCBOYU4sIE5hTik7XG4gIHJldHVybiBub2RlcyA9PSBudWxsID8gdHJlZSA6IHRyZWUuYWRkQWxsKG5vZGVzKTtcbn1cblxuZnVuY3Rpb24gUXVhZHRyZWUoeCwgeSwgeDAsIHkwLCB4MSwgeTEpIHtcbiAgdGhpcy5feCA9IHg7XG4gIHRoaXMuX3kgPSB5O1xuICB0aGlzLl94MCA9IHgwO1xuICB0aGlzLl95MCA9IHkwO1xuICB0aGlzLl94MSA9IHgxO1xuICB0aGlzLl95MSA9IHkxO1xuICB0aGlzLl9yb290ID0gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBsZWFmX2NvcHkobGVhZikge1xuICB2YXIgY29weSA9IHtkYXRhOiBsZWFmLmRhdGF9LCBuZXh0ID0gY29weTtcbiAgd2hpbGUgKGxlYWYgPSBsZWFmLm5leHQpIG5leHQgPSBuZXh0Lm5leHQgPSB7ZGF0YTogbGVhZi5kYXRhfTtcbiAgcmV0dXJuIGNvcHk7XG59XG5cbnZhciB0cmVlUHJvdG8gPSBxdWFkdHJlZS5wcm90b3R5cGUgPSBRdWFkdHJlZS5wcm90b3R5cGU7XG5cbnRyZWVQcm90by5jb3B5ID0gZnVuY3Rpb24oKSB7XG4gIHZhciBjb3B5ID0gbmV3IFF1YWR0cmVlKHRoaXMuX3gsIHRoaXMuX3ksIHRoaXMuX3gwLCB0aGlzLl95MCwgdGhpcy5feDEsIHRoaXMuX3kxKSxcbiAgICAgIG5vZGUgPSB0aGlzLl9yb290LFxuICAgICAgbm9kZXMsXG4gICAgICBjaGlsZDtcblxuICBpZiAoIW5vZGUpIHJldHVybiBjb3B5O1xuXG4gIGlmICghbm9kZS5sZW5ndGgpIHJldHVybiBjb3B5Ll9yb290ID0gbGVhZl9jb3B5KG5vZGUpLCBjb3B5O1xuXG4gIG5vZGVzID0gW3tzb3VyY2U6IG5vZGUsIHRhcmdldDogY29weS5fcm9vdCA9IG5ldyBBcnJheSg0KX1dO1xuICB3aGlsZSAobm9kZSA9IG5vZGVzLnBvcCgpKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0OyArK2kpIHtcbiAgICAgIGlmIChjaGlsZCA9IG5vZGUuc291cmNlW2ldKSB7XG4gICAgICAgIGlmIChjaGlsZC5sZW5ndGgpIG5vZGVzLnB1c2goe3NvdXJjZTogY2hpbGQsIHRhcmdldDogbm9kZS50YXJnZXRbaV0gPSBuZXcgQXJyYXkoNCl9KTtcbiAgICAgICAgZWxzZSBub2RlLnRhcmdldFtpXSA9IGxlYWZfY29weShjaGlsZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvcHk7XG59O1xuXG50cmVlUHJvdG8uYWRkID0gdHJlZV9hZGQ7XG50cmVlUHJvdG8uYWRkQWxsID0gdHJlZV9hZGRBbGw7XG50cmVlUHJvdG8uY292ZXIgPSB0cmVlX2NvdmVyO1xudHJlZVByb3RvLmRhdGEgPSB0cmVlX2RhdGE7XG50cmVlUHJvdG8uZXh0ZW50ID0gdHJlZV9leHRlbnQ7XG50cmVlUHJvdG8uZmluZCA9IHRyZWVfZmluZDtcbnRyZWVQcm90by5yZW1vdmUgPSB0cmVlX3JlbW92ZTtcbnRyZWVQcm90by5yZW1vdmVBbGwgPSB0cmVlX3JlbW92ZUFsbDtcbnRyZWVQcm90by5yb290ID0gdHJlZV9yb290O1xudHJlZVByb3RvLnNpemUgPSB0cmVlX3NpemU7XG50cmVlUHJvdG8udmlzaXQgPSB0cmVlX3Zpc2l0O1xudHJlZVByb3RvLnZpc2l0QWZ0ZXIgPSB0cmVlX3Zpc2l0QWZ0ZXI7XG50cmVlUHJvdG8ueCA9IHRyZWVfeDtcbnRyZWVQcm90by55ID0gdHJlZV95O1xuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB4O1xuICB9O1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHJhbmRvbSkge1xuICByZXR1cm4gKHJhbmRvbSgpIC0gMC41KSAqIDFlLTY7XG59XG4iLCAiaW1wb3J0IHtxdWFkdHJlZX0gZnJvbSBcImQzLXF1YWR0cmVlXCI7XG5pbXBvcnQgY29uc3RhbnQgZnJvbSBcIi4vY29uc3RhbnQuanNcIjtcbmltcG9ydCBqaWdnbGUgZnJvbSBcIi4vamlnZ2xlLmpzXCI7XG5cbmZ1bmN0aW9uIHgoZCkge1xuICByZXR1cm4gZC54ICsgZC52eDtcbn1cblxuZnVuY3Rpb24geShkKSB7XG4gIHJldHVybiBkLnkgKyBkLnZ5O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihyYWRpdXMpIHtcbiAgdmFyIG5vZGVzLFxuICAgICAgcmFkaWksXG4gICAgICByYW5kb20sXG4gICAgICBzdHJlbmd0aCA9IDEsXG4gICAgICBpdGVyYXRpb25zID0gMTtcblxuICBpZiAodHlwZW9mIHJhZGl1cyAhPT0gXCJmdW5jdGlvblwiKSByYWRpdXMgPSBjb25zdGFudChyYWRpdXMgPT0gbnVsbCA/IDEgOiArcmFkaXVzKTtcblxuICBmdW5jdGlvbiBmb3JjZSgpIHtcbiAgICB2YXIgaSwgbiA9IG5vZGVzLmxlbmd0aCxcbiAgICAgICAgdHJlZSxcbiAgICAgICAgbm9kZSxcbiAgICAgICAgeGksXG4gICAgICAgIHlpLFxuICAgICAgICByaSxcbiAgICAgICAgcmkyO1xuXG4gICAgZm9yICh2YXIgayA9IDA7IGsgPCBpdGVyYXRpb25zOyArK2spIHtcbiAgICAgIHRyZWUgPSBxdWFkdHJlZShub2RlcywgeCwgeSkudmlzaXRBZnRlcihwcmVwYXJlKTtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICAgICAgbm9kZSA9IG5vZGVzW2ldO1xuICAgICAgICByaSA9IHJhZGlpW25vZGUuaW5kZXhdLCByaTIgPSByaSAqIHJpO1xuICAgICAgICB4aSA9IG5vZGUueCArIG5vZGUudng7XG4gICAgICAgIHlpID0gbm9kZS55ICsgbm9kZS52eTtcbiAgICAgICAgdHJlZS52aXNpdChhcHBseSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXBwbHkocXVhZCwgeDAsIHkwLCB4MSwgeTEpIHtcbiAgICAgIHZhciBkYXRhID0gcXVhZC5kYXRhLCByaiA9IHF1YWQuciwgciA9IHJpICsgcmo7XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YS5pbmRleCA+IG5vZGUuaW5kZXgpIHtcbiAgICAgICAgICB2YXIgeCA9IHhpIC0gZGF0YS54IC0gZGF0YS52eCxcbiAgICAgICAgICAgICAgeSA9IHlpIC0gZGF0YS55IC0gZGF0YS52eSxcbiAgICAgICAgICAgICAgbCA9IHggKiB4ICsgeSAqIHk7XG4gICAgICAgICAgaWYgKGwgPCByICogcikge1xuICAgICAgICAgICAgaWYgKHggPT09IDApIHggPSBqaWdnbGUocmFuZG9tKSwgbCArPSB4ICogeDtcbiAgICAgICAgICAgIGlmICh5ID09PSAwKSB5ID0gamlnZ2xlKHJhbmRvbSksIGwgKz0geSAqIHk7XG4gICAgICAgICAgICBsID0gKHIgLSAobCA9IE1hdGguc3FydChsKSkpIC8gbCAqIHN0cmVuZ3RoO1xuICAgICAgICAgICAgbm9kZS52eCArPSAoeCAqPSBsKSAqIChyID0gKHJqICo9IHJqKSAvIChyaTIgKyByaikpO1xuICAgICAgICAgICAgbm9kZS52eSArPSAoeSAqPSBsKSAqIHI7XG4gICAgICAgICAgICBkYXRhLnZ4IC09IHggKiAociA9IDEgLSByKTtcbiAgICAgICAgICAgIGRhdGEudnkgLT0geSAqIHI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB4MCA+IHhpICsgciB8fCB4MSA8IHhpIC0gciB8fCB5MCA+IHlpICsgciB8fCB5MSA8IHlpIC0gcjtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBwcmVwYXJlKHF1YWQpIHtcbiAgICBpZiAocXVhZC5kYXRhKSByZXR1cm4gcXVhZC5yID0gcmFkaWlbcXVhZC5kYXRhLmluZGV4XTtcbiAgICBmb3IgKHZhciBpID0gcXVhZC5yID0gMDsgaSA8IDQ7ICsraSkge1xuICAgICAgaWYgKHF1YWRbaV0gJiYgcXVhZFtpXS5yID4gcXVhZC5yKSB7XG4gICAgICAgIHF1YWQuciA9IHF1YWRbaV0ucjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBpbml0aWFsaXplKCkge1xuICAgIGlmICghbm9kZXMpIHJldHVybjtcbiAgICB2YXIgaSwgbiA9IG5vZGVzLmxlbmd0aCwgbm9kZTtcbiAgICByYWRpaSA9IG5ldyBBcnJheShuKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSBub2RlID0gbm9kZXNbaV0sIHJhZGlpW25vZGUuaW5kZXhdID0gK3JhZGl1cyhub2RlLCBpLCBub2Rlcyk7XG4gIH1cblxuICBmb3JjZS5pbml0aWFsaXplID0gZnVuY3Rpb24oX25vZGVzLCBfcmFuZG9tKSB7XG4gICAgbm9kZXMgPSBfbm9kZXM7XG4gICAgcmFuZG9tID0gX3JhbmRvbTtcbiAgICBpbml0aWFsaXplKCk7XG4gIH07XG5cbiAgZm9yY2UuaXRlcmF0aW9ucyA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChpdGVyYXRpb25zID0gK18sIGZvcmNlKSA6IGl0ZXJhdGlvbnM7XG4gIH07XG5cbiAgZm9yY2Uuc3RyZW5ndGggPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoc3RyZW5ndGggPSArXywgZm9yY2UpIDogc3RyZW5ndGg7XG4gIH07XG5cbiAgZm9yY2UucmFkaXVzID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHJhZGl1cyA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoK18pLCBpbml0aWFsaXplKCksIGZvcmNlKSA6IHJhZGl1cztcbiAgfTtcblxuICByZXR1cm4gZm9yY2U7XG59XG4iLCAiaW1wb3J0IGNvbnN0YW50IGZyb20gXCIuL2NvbnN0YW50LmpzXCI7XG5pbXBvcnQgamlnZ2xlIGZyb20gXCIuL2ppZ2dsZS5qc1wiO1xuXG5mdW5jdGlvbiBpbmRleChkKSB7XG4gIHJldHVybiBkLmluZGV4O1xufVxuXG5mdW5jdGlvbiBmaW5kKG5vZGVCeUlkLCBub2RlSWQpIHtcbiAgdmFyIG5vZGUgPSBub2RlQnlJZC5nZXQobm9kZUlkKTtcbiAgaWYgKCFub2RlKSB0aHJvdyBuZXcgRXJyb3IoXCJub2RlIG5vdCBmb3VuZDogXCIgKyBub2RlSWQpO1xuICByZXR1cm4gbm9kZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obGlua3MpIHtcbiAgdmFyIGlkID0gaW5kZXgsXG4gICAgICBzdHJlbmd0aCA9IGRlZmF1bHRTdHJlbmd0aCxcbiAgICAgIHN0cmVuZ3RocyxcbiAgICAgIGRpc3RhbmNlID0gY29uc3RhbnQoMzApLFxuICAgICAgZGlzdGFuY2VzLFxuICAgICAgbm9kZXMsXG4gICAgICBjb3VudCxcbiAgICAgIGJpYXMsXG4gICAgICByYW5kb20sXG4gICAgICBpdGVyYXRpb25zID0gMTtcblxuICBpZiAobGlua3MgPT0gbnVsbCkgbGlua3MgPSBbXTtcblxuICBmdW5jdGlvbiBkZWZhdWx0U3RyZW5ndGgobGluaykge1xuICAgIHJldHVybiAxIC8gTWF0aC5taW4oY291bnRbbGluay5zb3VyY2UuaW5kZXhdLCBjb3VudFtsaW5rLnRhcmdldC5pbmRleF0pO1xuICB9XG5cbiAgZnVuY3Rpb24gZm9yY2UoYWxwaGEpIHtcbiAgICBmb3IgKHZhciBrID0gMCwgbiA9IGxpbmtzLmxlbmd0aDsgayA8IGl0ZXJhdGlvbnM7ICsraykge1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGxpbmssIHNvdXJjZSwgdGFyZ2V0LCB4LCB5LCBsLCBiOyBpIDwgbjsgKytpKSB7XG4gICAgICAgIGxpbmsgPSBsaW5rc1tpXSwgc291cmNlID0gbGluay5zb3VyY2UsIHRhcmdldCA9IGxpbmsudGFyZ2V0O1xuICAgICAgICB4ID0gdGFyZ2V0LnggKyB0YXJnZXQudnggLSBzb3VyY2UueCAtIHNvdXJjZS52eCB8fCBqaWdnbGUocmFuZG9tKTtcbiAgICAgICAgeSA9IHRhcmdldC55ICsgdGFyZ2V0LnZ5IC0gc291cmNlLnkgLSBzb3VyY2UudnkgfHwgamlnZ2xlKHJhbmRvbSk7XG4gICAgICAgIGwgPSBNYXRoLnNxcnQoeCAqIHggKyB5ICogeSk7XG4gICAgICAgIGwgPSAobCAtIGRpc3RhbmNlc1tpXSkgLyBsICogYWxwaGEgKiBzdHJlbmd0aHNbaV07XG4gICAgICAgIHggKj0gbCwgeSAqPSBsO1xuICAgICAgICB0YXJnZXQudnggLT0geCAqIChiID0gYmlhc1tpXSk7XG4gICAgICAgIHRhcmdldC52eSAtPSB5ICogYjtcbiAgICAgICAgc291cmNlLnZ4ICs9IHggKiAoYiA9IDEgLSBiKTtcbiAgICAgICAgc291cmNlLnZ5ICs9IHkgKiBiO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRpYWxpemUoKSB7XG4gICAgaWYgKCFub2RlcykgcmV0dXJuO1xuXG4gICAgdmFyIGksXG4gICAgICAgIG4gPSBub2Rlcy5sZW5ndGgsXG4gICAgICAgIG0gPSBsaW5rcy5sZW5ndGgsXG4gICAgICAgIG5vZGVCeUlkID0gbmV3IE1hcChub2Rlcy5tYXAoKGQsIGkpID0+IFtpZChkLCBpLCBub2RlcyksIGRdKSksXG4gICAgICAgIGxpbms7XG5cbiAgICBmb3IgKGkgPSAwLCBjb3VudCA9IG5ldyBBcnJheShuKTsgaSA8IG07ICsraSkge1xuICAgICAgbGluayA9IGxpbmtzW2ldLCBsaW5rLmluZGV4ID0gaTtcbiAgICAgIGlmICh0eXBlb2YgbGluay5zb3VyY2UgIT09IFwib2JqZWN0XCIpIGxpbmsuc291cmNlID0gZmluZChub2RlQnlJZCwgbGluay5zb3VyY2UpO1xuICAgICAgaWYgKHR5cGVvZiBsaW5rLnRhcmdldCAhPT0gXCJvYmplY3RcIikgbGluay50YXJnZXQgPSBmaW5kKG5vZGVCeUlkLCBsaW5rLnRhcmdldCk7XG4gICAgICBjb3VudFtsaW5rLnNvdXJjZS5pbmRleF0gPSAoY291bnRbbGluay5zb3VyY2UuaW5kZXhdIHx8IDApICsgMTtcbiAgICAgIGNvdW50W2xpbmsudGFyZ2V0LmluZGV4XSA9IChjb3VudFtsaW5rLnRhcmdldC5pbmRleF0gfHwgMCkgKyAxO1xuICAgIH1cblxuICAgIGZvciAoaSA9IDAsIGJpYXMgPSBuZXcgQXJyYXkobSk7IGkgPCBtOyArK2kpIHtcbiAgICAgIGxpbmsgPSBsaW5rc1tpXSwgYmlhc1tpXSA9IGNvdW50W2xpbmsuc291cmNlLmluZGV4XSAvIChjb3VudFtsaW5rLnNvdXJjZS5pbmRleF0gKyBjb3VudFtsaW5rLnRhcmdldC5pbmRleF0pO1xuICAgIH1cblxuICAgIHN0cmVuZ3RocyA9IG5ldyBBcnJheShtKSwgaW5pdGlhbGl6ZVN0cmVuZ3RoKCk7XG4gICAgZGlzdGFuY2VzID0gbmV3IEFycmF5KG0pLCBpbml0aWFsaXplRGlzdGFuY2UoKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRpYWxpemVTdHJlbmd0aCgpIHtcbiAgICBpZiAoIW5vZGVzKSByZXR1cm47XG5cbiAgICBmb3IgKHZhciBpID0gMCwgbiA9IGxpbmtzLmxlbmd0aDsgaSA8IG47ICsraSkge1xuICAgICAgc3RyZW5ndGhzW2ldID0gK3N0cmVuZ3RoKGxpbmtzW2ldLCBpLCBsaW5rcyk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaW5pdGlhbGl6ZURpc3RhbmNlKCkge1xuICAgIGlmICghbm9kZXMpIHJldHVybjtcblxuICAgIGZvciAodmFyIGkgPSAwLCBuID0gbGlua3MubGVuZ3RoOyBpIDwgbjsgKytpKSB7XG4gICAgICBkaXN0YW5jZXNbaV0gPSArZGlzdGFuY2UobGlua3NbaV0sIGksIGxpbmtzKTtcbiAgICB9XG4gIH1cblxuICBmb3JjZS5pbml0aWFsaXplID0gZnVuY3Rpb24oX25vZGVzLCBfcmFuZG9tKSB7XG4gICAgbm9kZXMgPSBfbm9kZXM7XG4gICAgcmFuZG9tID0gX3JhbmRvbTtcbiAgICBpbml0aWFsaXplKCk7XG4gIH07XG5cbiAgZm9yY2UubGlua3MgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAobGlua3MgPSBfLCBpbml0aWFsaXplKCksIGZvcmNlKSA6IGxpbmtzO1xuICB9O1xuXG4gIGZvcmNlLmlkID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGlkID0gXywgZm9yY2UpIDogaWQ7XG4gIH07XG5cbiAgZm9yY2UuaXRlcmF0aW9ucyA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChpdGVyYXRpb25zID0gK18sIGZvcmNlKSA6IGl0ZXJhdGlvbnM7XG4gIH07XG5cbiAgZm9yY2Uuc3RyZW5ndGggPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoc3RyZW5ndGggPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCtfKSwgaW5pdGlhbGl6ZVN0cmVuZ3RoKCksIGZvcmNlKSA6IHN0cmVuZ3RoO1xuICB9O1xuXG4gIGZvcmNlLmRpc3RhbmNlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGRpc3RhbmNlID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCgrXyksIGluaXRpYWxpemVEaXN0YW5jZSgpLCBmb3JjZSkgOiBkaXN0YW5jZTtcbiAgfTtcblxuICByZXR1cm4gZm9yY2U7XG59XG4iLCAiLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGluZWFyX2NvbmdydWVudGlhbF9nZW5lcmF0b3IjUGFyYW1ldGVyc19pbl9jb21tb25fdXNlXG5jb25zdCBhID0gMTY2NDUyNTtcbmNvbnN0IGMgPSAxMDEzOTA0MjIzO1xuY29uc3QgbSA9IDQyOTQ5NjcyOTY7IC8vIDJeMzJcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIGxldCBzID0gMTtcbiAgcmV0dXJuICgpID0+IChzID0gKGEgKiBzICsgYykgJSBtKSAvIG07XG59XG4iLCAiaW1wb3J0IHtkaXNwYXRjaH0gZnJvbSBcImQzLWRpc3BhdGNoXCI7XG5pbXBvcnQge3RpbWVyfSBmcm9tIFwiZDMtdGltZXJcIjtcbmltcG9ydCBsY2cgZnJvbSBcIi4vbGNnLmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiB4KGQpIHtcbiAgcmV0dXJuIGQueDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHkoZCkge1xuICByZXR1cm4gZC55O1xufVxuXG52YXIgaW5pdGlhbFJhZGl1cyA9IDEwLFxuICAgIGluaXRpYWxBbmdsZSA9IE1hdGguUEkgKiAoMyAtIE1hdGguc3FydCg1KSk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKG5vZGVzKSB7XG4gIHZhciBzaW11bGF0aW9uLFxuICAgICAgYWxwaGEgPSAxLFxuICAgICAgYWxwaGFNaW4gPSAwLjAwMSxcbiAgICAgIGFscGhhRGVjYXkgPSAxIC0gTWF0aC5wb3coYWxwaGFNaW4sIDEgLyAzMDApLFxuICAgICAgYWxwaGFUYXJnZXQgPSAwLFxuICAgICAgdmVsb2NpdHlEZWNheSA9IDAuNixcbiAgICAgIGZvcmNlcyA9IG5ldyBNYXAoKSxcbiAgICAgIHN0ZXBwZXIgPSB0aW1lcihzdGVwKSxcbiAgICAgIGV2ZW50ID0gZGlzcGF0Y2goXCJ0aWNrXCIsIFwiZW5kXCIpLFxuICAgICAgcmFuZG9tID0gbGNnKCk7XG5cbiAgaWYgKG5vZGVzID09IG51bGwpIG5vZGVzID0gW107XG5cbiAgZnVuY3Rpb24gc3RlcCgpIHtcbiAgICB0aWNrKCk7XG4gICAgZXZlbnQuY2FsbChcInRpY2tcIiwgc2ltdWxhdGlvbik7XG4gICAgaWYgKGFscGhhIDwgYWxwaGFNaW4pIHtcbiAgICAgIHN0ZXBwZXIuc3RvcCgpO1xuICAgICAgZXZlbnQuY2FsbChcImVuZFwiLCBzaW11bGF0aW9uKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiB0aWNrKGl0ZXJhdGlvbnMpIHtcbiAgICB2YXIgaSwgbiA9IG5vZGVzLmxlbmd0aCwgbm9kZTtcblxuICAgIGlmIChpdGVyYXRpb25zID09PSB1bmRlZmluZWQpIGl0ZXJhdGlvbnMgPSAxO1xuXG4gICAgZm9yICh2YXIgayA9IDA7IGsgPCBpdGVyYXRpb25zOyArK2spIHtcbiAgICAgIGFscGhhICs9IChhbHBoYVRhcmdldCAtIGFscGhhKSAqIGFscGhhRGVjYXk7XG5cbiAgICAgIGZvcmNlcy5mb3JFYWNoKGZ1bmN0aW9uKGZvcmNlKSB7XG4gICAgICAgIGZvcmNlKGFscGhhKTtcbiAgICAgIH0pO1xuXG4gICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICAgIG5vZGUgPSBub2Rlc1tpXTtcbiAgICAgICAgaWYgKG5vZGUuZnggPT0gbnVsbCkgbm9kZS54ICs9IG5vZGUudnggKj0gdmVsb2NpdHlEZWNheTtcbiAgICAgICAgZWxzZSBub2RlLnggPSBub2RlLmZ4LCBub2RlLnZ4ID0gMDtcbiAgICAgICAgaWYgKG5vZGUuZnkgPT0gbnVsbCkgbm9kZS55ICs9IG5vZGUudnkgKj0gdmVsb2NpdHlEZWNheTtcbiAgICAgICAgZWxzZSBub2RlLnkgPSBub2RlLmZ5LCBub2RlLnZ5ID0gMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc2ltdWxhdGlvbjtcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRpYWxpemVOb2RlcygpIHtcbiAgICBmb3IgKHZhciBpID0gMCwgbiA9IG5vZGVzLmxlbmd0aCwgbm9kZTsgaSA8IG47ICsraSkge1xuICAgICAgbm9kZSA9IG5vZGVzW2ldLCBub2RlLmluZGV4ID0gaTtcbiAgICAgIGlmIChub2RlLmZ4ICE9IG51bGwpIG5vZGUueCA9IG5vZGUuZng7XG4gICAgICBpZiAobm9kZS5meSAhPSBudWxsKSBub2RlLnkgPSBub2RlLmZ5O1xuICAgICAgaWYgKGlzTmFOKG5vZGUueCkgfHwgaXNOYU4obm9kZS55KSkge1xuICAgICAgICB2YXIgcmFkaXVzID0gaW5pdGlhbFJhZGl1cyAqIE1hdGguc3FydCgwLjUgKyBpKSwgYW5nbGUgPSBpICogaW5pdGlhbEFuZ2xlO1xuICAgICAgICBub2RlLnggPSByYWRpdXMgKiBNYXRoLmNvcyhhbmdsZSk7XG4gICAgICAgIG5vZGUueSA9IHJhZGl1cyAqIE1hdGguc2luKGFuZ2xlKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc05hTihub2RlLnZ4KSB8fCBpc05hTihub2RlLnZ5KSkge1xuICAgICAgICBub2RlLnZ4ID0gbm9kZS52eSA9IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaW5pdGlhbGl6ZUZvcmNlKGZvcmNlKSB7XG4gICAgaWYgKGZvcmNlLmluaXRpYWxpemUpIGZvcmNlLmluaXRpYWxpemUobm9kZXMsIHJhbmRvbSk7XG4gICAgcmV0dXJuIGZvcmNlO1xuICB9XG5cbiAgaW5pdGlhbGl6ZU5vZGVzKCk7XG5cbiAgcmV0dXJuIHNpbXVsYXRpb24gPSB7XG4gICAgdGljazogdGljayxcblxuICAgIHJlc3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHN0ZXBwZXIucmVzdGFydChzdGVwKSwgc2ltdWxhdGlvbjtcbiAgICB9LFxuXG4gICAgc3RvcDogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gc3RlcHBlci5zdG9wKCksIHNpbXVsYXRpb247XG4gICAgfSxcblxuICAgIG5vZGVzOiBmdW5jdGlvbihfKSB7XG4gICAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChub2RlcyA9IF8sIGluaXRpYWxpemVOb2RlcygpLCBmb3JjZXMuZm9yRWFjaChpbml0aWFsaXplRm9yY2UpLCBzaW11bGF0aW9uKSA6IG5vZGVzO1xuICAgIH0sXG5cbiAgICBhbHBoYTogZnVuY3Rpb24oXykge1xuICAgICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoYWxwaGEgPSArXywgc2ltdWxhdGlvbikgOiBhbHBoYTtcbiAgICB9LFxuXG4gICAgYWxwaGFNaW46IGZ1bmN0aW9uKF8pIHtcbiAgICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGFscGhhTWluID0gK18sIHNpbXVsYXRpb24pIDogYWxwaGFNaW47XG4gICAgfSxcblxuICAgIGFscGhhRGVjYXk6IGZ1bmN0aW9uKF8pIHtcbiAgICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGFscGhhRGVjYXkgPSArXywgc2ltdWxhdGlvbikgOiArYWxwaGFEZWNheTtcbiAgICB9LFxuXG4gICAgYWxwaGFUYXJnZXQ6IGZ1bmN0aW9uKF8pIHtcbiAgICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGFscGhhVGFyZ2V0ID0gK18sIHNpbXVsYXRpb24pIDogYWxwaGFUYXJnZXQ7XG4gICAgfSxcblxuICAgIHZlbG9jaXR5RGVjYXk6IGZ1bmN0aW9uKF8pIHtcbiAgICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHZlbG9jaXR5RGVjYXkgPSAxIC0gXywgc2ltdWxhdGlvbikgOiAxIC0gdmVsb2NpdHlEZWNheTtcbiAgICB9LFxuXG4gICAgcmFuZG9tU291cmNlOiBmdW5jdGlvbihfKSB7XG4gICAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChyYW5kb20gPSBfLCBmb3JjZXMuZm9yRWFjaChpbml0aWFsaXplRm9yY2UpLCBzaW11bGF0aW9uKSA6IHJhbmRvbTtcbiAgICB9LFxuXG4gICAgZm9yY2U6IGZ1bmN0aW9uKG5hbWUsIF8pIHtcbiAgICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID4gMSA/ICgoXyA9PSBudWxsID8gZm9yY2VzLmRlbGV0ZShuYW1lKSA6IGZvcmNlcy5zZXQobmFtZSwgaW5pdGlhbGl6ZUZvcmNlKF8pKSksIHNpbXVsYXRpb24pIDogZm9yY2VzLmdldChuYW1lKTtcbiAgICB9LFxuXG4gICAgZmluZDogZnVuY3Rpb24oeCwgeSwgcmFkaXVzKSB7XG4gICAgICB2YXIgaSA9IDAsXG4gICAgICAgICAgbiA9IG5vZGVzLmxlbmd0aCxcbiAgICAgICAgICBkeCxcbiAgICAgICAgICBkeSxcbiAgICAgICAgICBkMixcbiAgICAgICAgICBub2RlLFxuICAgICAgICAgIGNsb3Nlc3Q7XG5cbiAgICAgIGlmIChyYWRpdXMgPT0gbnVsbCkgcmFkaXVzID0gSW5maW5pdHk7XG4gICAgICBlbHNlIHJhZGl1cyAqPSByYWRpdXM7XG5cbiAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICAgICAgbm9kZSA9IG5vZGVzW2ldO1xuICAgICAgICBkeCA9IHggLSBub2RlLng7XG4gICAgICAgIGR5ID0geSAtIG5vZGUueTtcbiAgICAgICAgZDIgPSBkeCAqIGR4ICsgZHkgKiBkeTtcbiAgICAgICAgaWYgKGQyIDwgcmFkaXVzKSBjbG9zZXN0ID0gbm9kZSwgcmFkaXVzID0gZDI7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjbG9zZXN0O1xuICAgIH0sXG5cbiAgICBvbjogZnVuY3Rpb24obmFtZSwgXykge1xuICAgICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gKGV2ZW50Lm9uKG5hbWUsIF8pLCBzaW11bGF0aW9uKSA6IGV2ZW50Lm9uKG5hbWUpO1xuICAgIH1cbiAgfTtcbn1cbiIsICJpbXBvcnQge3F1YWR0cmVlfSBmcm9tIFwiZDMtcXVhZHRyZWVcIjtcbmltcG9ydCBjb25zdGFudCBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuaW1wb3J0IGppZ2dsZSBmcm9tIFwiLi9qaWdnbGUuanNcIjtcbmltcG9ydCB7eCwgeX0gZnJvbSBcIi4vc2ltdWxhdGlvbi5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgdmFyIG5vZGVzLFxuICAgICAgbm9kZSxcbiAgICAgIHJhbmRvbSxcbiAgICAgIGFscGhhLFxuICAgICAgc3RyZW5ndGggPSBjb25zdGFudCgtMzApLFxuICAgICAgc3RyZW5ndGhzLFxuICAgICAgZGlzdGFuY2VNaW4yID0gMSxcbiAgICAgIGRpc3RhbmNlTWF4MiA9IEluZmluaXR5LFxuICAgICAgdGhldGEyID0gMC44MTtcblxuICBmdW5jdGlvbiBmb3JjZShfKSB7XG4gICAgdmFyIGksIG4gPSBub2Rlcy5sZW5ndGgsIHRyZWUgPSBxdWFkdHJlZShub2RlcywgeCwgeSkudmlzaXRBZnRlcihhY2N1bXVsYXRlKTtcbiAgICBmb3IgKGFscGhhID0gXywgaSA9IDA7IGkgPCBuOyArK2kpIG5vZGUgPSBub2Rlc1tpXSwgdHJlZS52aXNpdChhcHBseSk7XG4gIH1cblxuICBmdW5jdGlvbiBpbml0aWFsaXplKCkge1xuICAgIGlmICghbm9kZXMpIHJldHVybjtcbiAgICB2YXIgaSwgbiA9IG5vZGVzLmxlbmd0aCwgbm9kZTtcbiAgICBzdHJlbmd0aHMgPSBuZXcgQXJyYXkobik7XG4gICAgZm9yIChpID0gMDsgaSA8IG47ICsraSkgbm9kZSA9IG5vZGVzW2ldLCBzdHJlbmd0aHNbbm9kZS5pbmRleF0gPSArc3RyZW5ndGgobm9kZSwgaSwgbm9kZXMpO1xuICB9XG5cbiAgZnVuY3Rpb24gYWNjdW11bGF0ZShxdWFkKSB7XG4gICAgdmFyIHN0cmVuZ3RoID0gMCwgcSwgYywgd2VpZ2h0ID0gMCwgeCwgeSwgaTtcblxuICAgIC8vIEZvciBpbnRlcm5hbCBub2RlcywgYWNjdW11bGF0ZSBmb3JjZXMgZnJvbSBjaGlsZCBxdWFkcmFudHMuXG4gICAgaWYgKHF1YWQubGVuZ3RoKSB7XG4gICAgICBmb3IgKHggPSB5ID0gaSA9IDA7IGkgPCA0OyArK2kpIHtcbiAgICAgICAgaWYgKChxID0gcXVhZFtpXSkgJiYgKGMgPSBNYXRoLmFicyhxLnZhbHVlKSkpIHtcbiAgICAgICAgICBzdHJlbmd0aCArPSBxLnZhbHVlLCB3ZWlnaHQgKz0gYywgeCArPSBjICogcS54LCB5ICs9IGMgKiBxLnk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHF1YWQueCA9IHggLyB3ZWlnaHQ7XG4gICAgICBxdWFkLnkgPSB5IC8gd2VpZ2h0O1xuICAgIH1cblxuICAgIC8vIEZvciBsZWFmIG5vZGVzLCBhY2N1bXVsYXRlIGZvcmNlcyBmcm9tIGNvaW5jaWRlbnQgcXVhZHJhbnRzLlxuICAgIGVsc2Uge1xuICAgICAgcSA9IHF1YWQ7XG4gICAgICBxLnggPSBxLmRhdGEueDtcbiAgICAgIHEueSA9IHEuZGF0YS55O1xuICAgICAgZG8gc3RyZW5ndGggKz0gc3RyZW5ndGhzW3EuZGF0YS5pbmRleF07XG4gICAgICB3aGlsZSAocSA9IHEubmV4dCk7XG4gICAgfVxuXG4gICAgcXVhZC52YWx1ZSA9IHN0cmVuZ3RoO1xuICB9XG5cbiAgZnVuY3Rpb24gYXBwbHkocXVhZCwgeDEsIF8sIHgyKSB7XG4gICAgaWYgKCFxdWFkLnZhbHVlKSByZXR1cm4gdHJ1ZTtcblxuICAgIHZhciB4ID0gcXVhZC54IC0gbm9kZS54LFxuICAgICAgICB5ID0gcXVhZC55IC0gbm9kZS55LFxuICAgICAgICB3ID0geDIgLSB4MSxcbiAgICAgICAgbCA9IHggKiB4ICsgeSAqIHk7XG5cbiAgICAvLyBBcHBseSB0aGUgQmFybmVzLUh1dCBhcHByb3hpbWF0aW9uIGlmIHBvc3NpYmxlLlxuICAgIC8vIExpbWl0IGZvcmNlcyBmb3IgdmVyeSBjbG9zZSBub2RlczsgcmFuZG9taXplIGRpcmVjdGlvbiBpZiBjb2luY2lkZW50LlxuICAgIGlmICh3ICogdyAvIHRoZXRhMiA8IGwpIHtcbiAgICAgIGlmIChsIDwgZGlzdGFuY2VNYXgyKSB7XG4gICAgICAgIGlmICh4ID09PSAwKSB4ID0gamlnZ2xlKHJhbmRvbSksIGwgKz0geCAqIHg7XG4gICAgICAgIGlmICh5ID09PSAwKSB5ID0gamlnZ2xlKHJhbmRvbSksIGwgKz0geSAqIHk7XG4gICAgICAgIGlmIChsIDwgZGlzdGFuY2VNaW4yKSBsID0gTWF0aC5zcXJ0KGRpc3RhbmNlTWluMiAqIGwpO1xuICAgICAgICBub2RlLnZ4ICs9IHggKiBxdWFkLnZhbHVlICogYWxwaGEgLyBsO1xuICAgICAgICBub2RlLnZ5ICs9IHkgKiBxdWFkLnZhbHVlICogYWxwaGEgLyBsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlLCBwcm9jZXNzIHBvaW50cyBkaXJlY3RseS5cbiAgICBlbHNlIGlmIChxdWFkLmxlbmd0aCB8fCBsID49IGRpc3RhbmNlTWF4MikgcmV0dXJuO1xuXG4gICAgLy8gTGltaXQgZm9yY2VzIGZvciB2ZXJ5IGNsb3NlIG5vZGVzOyByYW5kb21pemUgZGlyZWN0aW9uIGlmIGNvaW5jaWRlbnQuXG4gICAgaWYgKHF1YWQuZGF0YSAhPT0gbm9kZSB8fCBxdWFkLm5leHQpIHtcbiAgICAgIGlmICh4ID09PSAwKSB4ID0gamlnZ2xlKHJhbmRvbSksIGwgKz0geCAqIHg7XG4gICAgICBpZiAoeSA9PT0gMCkgeSA9IGppZ2dsZShyYW5kb20pLCBsICs9IHkgKiB5O1xuICAgICAgaWYgKGwgPCBkaXN0YW5jZU1pbjIpIGwgPSBNYXRoLnNxcnQoZGlzdGFuY2VNaW4yICogbCk7XG4gICAgfVxuXG4gICAgZG8gaWYgKHF1YWQuZGF0YSAhPT0gbm9kZSkge1xuICAgICAgdyA9IHN0cmVuZ3Roc1txdWFkLmRhdGEuaW5kZXhdICogYWxwaGEgLyBsO1xuICAgICAgbm9kZS52eCArPSB4ICogdztcbiAgICAgIG5vZGUudnkgKz0geSAqIHc7XG4gICAgfSB3aGlsZSAocXVhZCA9IHF1YWQubmV4dCk7XG4gIH1cblxuICBmb3JjZS5pbml0aWFsaXplID0gZnVuY3Rpb24oX25vZGVzLCBfcmFuZG9tKSB7XG4gICAgbm9kZXMgPSBfbm9kZXM7XG4gICAgcmFuZG9tID0gX3JhbmRvbTtcbiAgICBpbml0aWFsaXplKCk7XG4gIH07XG5cbiAgZm9yY2Uuc3RyZW5ndGggPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoc3RyZW5ndGggPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCtfKSwgaW5pdGlhbGl6ZSgpLCBmb3JjZSkgOiBzdHJlbmd0aDtcbiAgfTtcblxuICBmb3JjZS5kaXN0YW5jZU1pbiA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChkaXN0YW5jZU1pbjIgPSBfICogXywgZm9yY2UpIDogTWF0aC5zcXJ0KGRpc3RhbmNlTWluMik7XG4gIH07XG5cbiAgZm9yY2UuZGlzdGFuY2VNYXggPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoZGlzdGFuY2VNYXgyID0gXyAqIF8sIGZvcmNlKSA6IE1hdGguc3FydChkaXN0YW5jZU1heDIpO1xuICB9O1xuXG4gIGZvcmNlLnRoZXRhID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHRoZXRhMiA9IF8gKiBfLCBmb3JjZSkgOiBNYXRoLnNxcnQodGhldGEyKTtcbiAgfTtcblxuICByZXR1cm4gZm9yY2U7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeCkge1xuICByZXR1cm4gTWF0aC5hYnMoeCA9IE1hdGgucm91bmQoeCkpID49IDFlMjFcbiAgICAgID8geC50b0xvY2FsZVN0cmluZyhcImVuXCIpLnJlcGxhY2UoLywvZywgXCJcIilcbiAgICAgIDogeC50b1N0cmluZygxMCk7XG59XG5cbi8vIENvbXB1dGVzIHRoZSBkZWNpbWFsIGNvZWZmaWNpZW50IGFuZCBleHBvbmVudCBvZiB0aGUgc3BlY2lmaWVkIG51bWJlciB4IHdpdGhcbi8vIHNpZ25pZmljYW50IGRpZ2l0cyBwLCB3aGVyZSB4IGlzIHBvc2l0aXZlIGFuZCBwIGlzIGluIFsxLCAyMV0gb3IgdW5kZWZpbmVkLlxuLy8gRm9yIGV4YW1wbGUsIGZvcm1hdERlY2ltYWxQYXJ0cygxLjIzKSByZXR1cm5zIFtcIjEyM1wiLCAwXS5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREZWNpbWFsUGFydHMoeCwgcCkge1xuICBpZiAoKGkgPSAoeCA9IHAgPyB4LnRvRXhwb25lbnRpYWwocCAtIDEpIDogeC50b0V4cG9uZW50aWFsKCkpLmluZGV4T2YoXCJlXCIpKSA8IDApIHJldHVybiBudWxsOyAvLyBOYU4sIFx1MDBCMUluZmluaXR5XG4gIHZhciBpLCBjb2VmZmljaWVudCA9IHguc2xpY2UoMCwgaSk7XG5cbiAgLy8gVGhlIHN0cmluZyByZXR1cm5lZCBieSB0b0V4cG9uZW50aWFsIGVpdGhlciBoYXMgdGhlIGZvcm0gXFxkXFwuXFxkK2VbLStdXFxkK1xuICAvLyAoZS5nLiwgMS4yZSszKSBvciB0aGUgZm9ybSBcXGRlWy0rXVxcZCsgKGUuZy4sIDFlKzMpLlxuICByZXR1cm4gW1xuICAgIGNvZWZmaWNpZW50Lmxlbmd0aCA+IDEgPyBjb2VmZmljaWVudFswXSArIGNvZWZmaWNpZW50LnNsaWNlKDIpIDogY29lZmZpY2llbnQsXG4gICAgK3guc2xpY2UoaSArIDEpXG4gIF07XG59XG4iLCAiaW1wb3J0IHtmb3JtYXREZWNpbWFsUGFydHN9IGZyb20gXCIuL2Zvcm1hdERlY2ltYWwuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeCkge1xuICByZXR1cm4geCA9IGZvcm1hdERlY2ltYWxQYXJ0cyhNYXRoLmFicyh4KSksIHggPyB4WzFdIDogTmFOO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGdyb3VwaW5nLCB0aG91c2FuZHMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlLCB3aWR0aCkge1xuICAgIHZhciBpID0gdmFsdWUubGVuZ3RoLFxuICAgICAgICB0ID0gW10sXG4gICAgICAgIGogPSAwLFxuICAgICAgICBnID0gZ3JvdXBpbmdbMF0sXG4gICAgICAgIGxlbmd0aCA9IDA7XG5cbiAgICB3aGlsZSAoaSA+IDAgJiYgZyA+IDApIHtcbiAgICAgIGlmIChsZW5ndGggKyBnICsgMSA+IHdpZHRoKSBnID0gTWF0aC5tYXgoMSwgd2lkdGggLSBsZW5ndGgpO1xuICAgICAgdC5wdXNoKHZhbHVlLnN1YnN0cmluZyhpIC09IGcsIGkgKyBnKSk7XG4gICAgICBpZiAoKGxlbmd0aCArPSBnICsgMSkgPiB3aWR0aCkgYnJlYWs7XG4gICAgICBnID0gZ3JvdXBpbmdbaiA9IChqICsgMSkgJSBncm91cGluZy5sZW5ndGhdO1xuICAgIH1cblxuICAgIHJldHVybiB0LnJldmVyc2UoKS5qb2luKHRob3VzYW5kcyk7XG4gIH07XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obnVtZXJhbHMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL1swLTldL2csIGZ1bmN0aW9uKGkpIHtcbiAgICAgIHJldHVybiBudW1lcmFsc1sraV07XG4gICAgfSk7XG4gIH07XG59XG4iLCAiLy8gW1tmaWxsXWFsaWduXVtzaWduXVtzeW1ib2xdWzBdW3dpZHRoXVssXVsucHJlY2lzaW9uXVt+XVt0eXBlXVxudmFyIHJlID0gL14oPzooLik/KFs8Pj1eXSkpPyhbK1xcLSggXSk/KFskI10pPygwKT8oXFxkKyk/KCwpPyhcXC5cXGQrKT8ofik/KFthLXolXSk/JC9pO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBmb3JtYXRTcGVjaWZpZXIoc3BlY2lmaWVyKSB7XG4gIGlmICghKG1hdGNoID0gcmUuZXhlYyhzcGVjaWZpZXIpKSkgdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBmb3JtYXQ6IFwiICsgc3BlY2lmaWVyKTtcbiAgdmFyIG1hdGNoO1xuICByZXR1cm4gbmV3IEZvcm1hdFNwZWNpZmllcih7XG4gICAgZmlsbDogbWF0Y2hbMV0sXG4gICAgYWxpZ246IG1hdGNoWzJdLFxuICAgIHNpZ246IG1hdGNoWzNdLFxuICAgIHN5bWJvbDogbWF0Y2hbNF0sXG4gICAgemVybzogbWF0Y2hbNV0sXG4gICAgd2lkdGg6IG1hdGNoWzZdLFxuICAgIGNvbW1hOiBtYXRjaFs3XSxcbiAgICBwcmVjaXNpb246IG1hdGNoWzhdICYmIG1hdGNoWzhdLnNsaWNlKDEpLFxuICAgIHRyaW06IG1hdGNoWzldLFxuICAgIHR5cGU6IG1hdGNoWzEwXVxuICB9KTtcbn1cblxuZm9ybWF0U3BlY2lmaWVyLnByb3RvdHlwZSA9IEZvcm1hdFNwZWNpZmllci5wcm90b3R5cGU7IC8vIGluc3RhbmNlb2ZcblxuZXhwb3J0IGZ1bmN0aW9uIEZvcm1hdFNwZWNpZmllcihzcGVjaWZpZXIpIHtcbiAgdGhpcy5maWxsID0gc3BlY2lmaWVyLmZpbGwgPT09IHVuZGVmaW5lZCA/IFwiIFwiIDogc3BlY2lmaWVyLmZpbGwgKyBcIlwiO1xuICB0aGlzLmFsaWduID0gc3BlY2lmaWVyLmFsaWduID09PSB1bmRlZmluZWQgPyBcIj5cIiA6IHNwZWNpZmllci5hbGlnbiArIFwiXCI7XG4gIHRoaXMuc2lnbiA9IHNwZWNpZmllci5zaWduID09PSB1bmRlZmluZWQgPyBcIi1cIiA6IHNwZWNpZmllci5zaWduICsgXCJcIjtcbiAgdGhpcy5zeW1ib2wgPSBzcGVjaWZpZXIuc3ltYm9sID09PSB1bmRlZmluZWQgPyBcIlwiIDogc3BlY2lmaWVyLnN5bWJvbCArIFwiXCI7XG4gIHRoaXMuemVybyA9ICEhc3BlY2lmaWVyLnplcm87XG4gIHRoaXMud2lkdGggPSBzcGVjaWZpZXIud2lkdGggPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6ICtzcGVjaWZpZXIud2lkdGg7XG4gIHRoaXMuY29tbWEgPSAhIXNwZWNpZmllci5jb21tYTtcbiAgdGhpcy5wcmVjaXNpb24gPSBzcGVjaWZpZXIucHJlY2lzaW9uID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiArc3BlY2lmaWVyLnByZWNpc2lvbjtcbiAgdGhpcy50cmltID0gISFzcGVjaWZpZXIudHJpbTtcbiAgdGhpcy50eXBlID0gc3BlY2lmaWVyLnR5cGUgPT09IHVuZGVmaW5lZCA/IFwiXCIgOiBzcGVjaWZpZXIudHlwZSArIFwiXCI7XG59XG5cbkZvcm1hdFNwZWNpZmllci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHRoaXMuZmlsbFxuICAgICAgKyB0aGlzLmFsaWduXG4gICAgICArIHRoaXMuc2lnblxuICAgICAgKyB0aGlzLnN5bWJvbFxuICAgICAgKyAodGhpcy56ZXJvID8gXCIwXCIgOiBcIlwiKVxuICAgICAgKyAodGhpcy53aWR0aCA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IE1hdGgubWF4KDEsIHRoaXMud2lkdGggfCAwKSlcbiAgICAgICsgKHRoaXMuY29tbWEgPyBcIixcIiA6IFwiXCIpXG4gICAgICArICh0aGlzLnByZWNpc2lvbiA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IFwiLlwiICsgTWF0aC5tYXgoMCwgdGhpcy5wcmVjaXNpb24gfCAwKSlcbiAgICAgICsgKHRoaXMudHJpbSA/IFwiflwiIDogXCJcIilcbiAgICAgICsgdGhpcy50eXBlO1xufTtcbiIsICIvLyBUcmltcyBpbnNpZ25pZmljYW50IHplcm9zLCBlLmcuLCByZXBsYWNlcyAxLjIwMDBrIHdpdGggMS4yay5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHMpIHtcbiAgb3V0OiBmb3IgKHZhciBuID0gcy5sZW5ndGgsIGkgPSAxLCBpMCA9IC0xLCBpMTsgaSA8IG47ICsraSkge1xuICAgIHN3aXRjaCAoc1tpXSkge1xuICAgICAgY2FzZSBcIi5cIjogaTAgPSBpMSA9IGk7IGJyZWFrO1xuICAgICAgY2FzZSBcIjBcIjogaWYgKGkwID09PSAwKSBpMCA9IGk7IGkxID0gaTsgYnJlYWs7XG4gICAgICBkZWZhdWx0OiBpZiAoIStzW2ldKSBicmVhayBvdXQ7IGlmIChpMCA+IDApIGkwID0gMDsgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBpMCA+IDAgPyBzLnNsaWNlKDAsIGkwKSArIHMuc2xpY2UoaTEgKyAxKSA6IHM7XG59XG4iLCAiaW1wb3J0IHtmb3JtYXREZWNpbWFsUGFydHN9IGZyb20gXCIuL2Zvcm1hdERlY2ltYWwuanNcIjtcblxuZXhwb3J0IHZhciBwcmVmaXhFeHBvbmVudDtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeCwgcCkge1xuICB2YXIgZCA9IGZvcm1hdERlY2ltYWxQYXJ0cyh4LCBwKTtcbiAgaWYgKCFkKSByZXR1cm4geCArIFwiXCI7XG4gIHZhciBjb2VmZmljaWVudCA9IGRbMF0sXG4gICAgICBleHBvbmVudCA9IGRbMV0sXG4gICAgICBpID0gZXhwb25lbnQgLSAocHJlZml4RXhwb25lbnQgPSBNYXRoLm1heCgtOCwgTWF0aC5taW4oOCwgTWF0aC5mbG9vcihleHBvbmVudCAvIDMpKSkgKiAzKSArIDEsXG4gICAgICBuID0gY29lZmZpY2llbnQubGVuZ3RoO1xuICByZXR1cm4gaSA9PT0gbiA/IGNvZWZmaWNpZW50XG4gICAgICA6IGkgPiBuID8gY29lZmZpY2llbnQgKyBuZXcgQXJyYXkoaSAtIG4gKyAxKS5qb2luKFwiMFwiKVxuICAgICAgOiBpID4gMCA/IGNvZWZmaWNpZW50LnNsaWNlKDAsIGkpICsgXCIuXCIgKyBjb2VmZmljaWVudC5zbGljZShpKVxuICAgICAgOiBcIjAuXCIgKyBuZXcgQXJyYXkoMSAtIGkpLmpvaW4oXCIwXCIpICsgZm9ybWF0RGVjaW1hbFBhcnRzKHgsIE1hdGgubWF4KDAsIHAgKyBpIC0gMSkpWzBdOyAvLyBsZXNzIHRoYW4gMXkhXG59XG4iLCAiaW1wb3J0IHtmb3JtYXREZWNpbWFsUGFydHN9IGZyb20gXCIuL2Zvcm1hdERlY2ltYWwuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeCwgcCkge1xuICB2YXIgZCA9IGZvcm1hdERlY2ltYWxQYXJ0cyh4LCBwKTtcbiAgaWYgKCFkKSByZXR1cm4geCArIFwiXCI7XG4gIHZhciBjb2VmZmljaWVudCA9IGRbMF0sXG4gICAgICBleHBvbmVudCA9IGRbMV07XG4gIHJldHVybiBleHBvbmVudCA8IDAgPyBcIjAuXCIgKyBuZXcgQXJyYXkoLWV4cG9uZW50KS5qb2luKFwiMFwiKSArIGNvZWZmaWNpZW50XG4gICAgICA6IGNvZWZmaWNpZW50Lmxlbmd0aCA+IGV4cG9uZW50ICsgMSA/IGNvZWZmaWNpZW50LnNsaWNlKDAsIGV4cG9uZW50ICsgMSkgKyBcIi5cIiArIGNvZWZmaWNpZW50LnNsaWNlKGV4cG9uZW50ICsgMSlcbiAgICAgIDogY29lZmZpY2llbnQgKyBuZXcgQXJyYXkoZXhwb25lbnQgLSBjb2VmZmljaWVudC5sZW5ndGggKyAyKS5qb2luKFwiMFwiKTtcbn1cbiIsICJpbXBvcnQgZm9ybWF0RGVjaW1hbCBmcm9tIFwiLi9mb3JtYXREZWNpbWFsLmpzXCI7XG5pbXBvcnQgZm9ybWF0UHJlZml4QXV0byBmcm9tIFwiLi9mb3JtYXRQcmVmaXhBdXRvLmpzXCI7XG5pbXBvcnQgZm9ybWF0Um91bmRlZCBmcm9tIFwiLi9mb3JtYXRSb3VuZGVkLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgXCIlXCI6ICh4LCBwKSA9PiAoeCAqIDEwMCkudG9GaXhlZChwKSxcbiAgXCJiXCI6ICh4KSA9PiBNYXRoLnJvdW5kKHgpLnRvU3RyaW5nKDIpLFxuICBcImNcIjogKHgpID0+IHggKyBcIlwiLFxuICBcImRcIjogZm9ybWF0RGVjaW1hbCxcbiAgXCJlXCI6ICh4LCBwKSA9PiB4LnRvRXhwb25lbnRpYWwocCksXG4gIFwiZlwiOiAoeCwgcCkgPT4geC50b0ZpeGVkKHApLFxuICBcImdcIjogKHgsIHApID0+IHgudG9QcmVjaXNpb24ocCksXG4gIFwib1wiOiAoeCkgPT4gTWF0aC5yb3VuZCh4KS50b1N0cmluZyg4KSxcbiAgXCJwXCI6ICh4LCBwKSA9PiBmb3JtYXRSb3VuZGVkKHggKiAxMDAsIHApLFxuICBcInJcIjogZm9ybWF0Um91bmRlZCxcbiAgXCJzXCI6IGZvcm1hdFByZWZpeEF1dG8sXG4gIFwiWFwiOiAoeCkgPT4gTWF0aC5yb3VuZCh4KS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSxcbiAgXCJ4XCI6ICh4KSA9PiBNYXRoLnJvdW5kKHgpLnRvU3RyaW5nKDE2KVxufTtcbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbih4KSB7XG4gIHJldHVybiB4O1xufVxuIiwgImltcG9ydCBleHBvbmVudCBmcm9tIFwiLi9leHBvbmVudC5qc1wiO1xuaW1wb3J0IGZvcm1hdEdyb3VwIGZyb20gXCIuL2Zvcm1hdEdyb3VwLmpzXCI7XG5pbXBvcnQgZm9ybWF0TnVtZXJhbHMgZnJvbSBcIi4vZm9ybWF0TnVtZXJhbHMuanNcIjtcbmltcG9ydCBmb3JtYXRTcGVjaWZpZXIgZnJvbSBcIi4vZm9ybWF0U3BlY2lmaWVyLmpzXCI7XG5pbXBvcnQgZm9ybWF0VHJpbSBmcm9tIFwiLi9mb3JtYXRUcmltLmpzXCI7XG5pbXBvcnQgZm9ybWF0VHlwZXMgZnJvbSBcIi4vZm9ybWF0VHlwZXMuanNcIjtcbmltcG9ydCB7cHJlZml4RXhwb25lbnR9IGZyb20gXCIuL2Zvcm1hdFByZWZpeEF1dG8uanNcIjtcbmltcG9ydCBpZGVudGl0eSBmcm9tIFwiLi9pZGVudGl0eS5qc1wiO1xuXG52YXIgbWFwID0gQXJyYXkucHJvdG90eXBlLm1hcCxcbiAgICBwcmVmaXhlcyA9IFtcInlcIixcInpcIixcImFcIixcImZcIixcInBcIixcIm5cIixcIlx1MDBCNVwiLFwibVwiLFwiXCIsXCJrXCIsXCJNXCIsXCJHXCIsXCJUXCIsXCJQXCIsXCJFXCIsXCJaXCIsXCJZXCJdO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihsb2NhbGUpIHtcbiAgdmFyIGdyb3VwID0gbG9jYWxlLmdyb3VwaW5nID09PSB1bmRlZmluZWQgfHwgbG9jYWxlLnRob3VzYW5kcyA9PT0gdW5kZWZpbmVkID8gaWRlbnRpdHkgOiBmb3JtYXRHcm91cChtYXAuY2FsbChsb2NhbGUuZ3JvdXBpbmcsIE51bWJlciksIGxvY2FsZS50aG91c2FuZHMgKyBcIlwiKSxcbiAgICAgIGN1cnJlbmN5UHJlZml4ID0gbG9jYWxlLmN1cnJlbmN5ID09PSB1bmRlZmluZWQgPyBcIlwiIDogbG9jYWxlLmN1cnJlbmN5WzBdICsgXCJcIixcbiAgICAgIGN1cnJlbmN5U3VmZml4ID0gbG9jYWxlLmN1cnJlbmN5ID09PSB1bmRlZmluZWQgPyBcIlwiIDogbG9jYWxlLmN1cnJlbmN5WzFdICsgXCJcIixcbiAgICAgIGRlY2ltYWwgPSBsb2NhbGUuZGVjaW1hbCA9PT0gdW5kZWZpbmVkID8gXCIuXCIgOiBsb2NhbGUuZGVjaW1hbCArIFwiXCIsXG4gICAgICBudW1lcmFscyA9IGxvY2FsZS5udW1lcmFscyA9PT0gdW5kZWZpbmVkID8gaWRlbnRpdHkgOiBmb3JtYXROdW1lcmFscyhtYXAuY2FsbChsb2NhbGUubnVtZXJhbHMsIFN0cmluZykpLFxuICAgICAgcGVyY2VudCA9IGxvY2FsZS5wZXJjZW50ID09PSB1bmRlZmluZWQgPyBcIiVcIiA6IGxvY2FsZS5wZXJjZW50ICsgXCJcIixcbiAgICAgIG1pbnVzID0gbG9jYWxlLm1pbnVzID09PSB1bmRlZmluZWQgPyBcIlx1MjIxMlwiIDogbG9jYWxlLm1pbnVzICsgXCJcIixcbiAgICAgIG5hbiA9IGxvY2FsZS5uYW4gPT09IHVuZGVmaW5lZCA/IFwiTmFOXCIgOiBsb2NhbGUubmFuICsgXCJcIjtcblxuICBmdW5jdGlvbiBuZXdGb3JtYXQoc3BlY2lmaWVyKSB7XG4gICAgc3BlY2lmaWVyID0gZm9ybWF0U3BlY2lmaWVyKHNwZWNpZmllcik7XG5cbiAgICB2YXIgZmlsbCA9IHNwZWNpZmllci5maWxsLFxuICAgICAgICBhbGlnbiA9IHNwZWNpZmllci5hbGlnbixcbiAgICAgICAgc2lnbiA9IHNwZWNpZmllci5zaWduLFxuICAgICAgICBzeW1ib2wgPSBzcGVjaWZpZXIuc3ltYm9sLFxuICAgICAgICB6ZXJvID0gc3BlY2lmaWVyLnplcm8sXG4gICAgICAgIHdpZHRoID0gc3BlY2lmaWVyLndpZHRoLFxuICAgICAgICBjb21tYSA9IHNwZWNpZmllci5jb21tYSxcbiAgICAgICAgcHJlY2lzaW9uID0gc3BlY2lmaWVyLnByZWNpc2lvbixcbiAgICAgICAgdHJpbSA9IHNwZWNpZmllci50cmltLFxuICAgICAgICB0eXBlID0gc3BlY2lmaWVyLnR5cGU7XG5cbiAgICAvLyBUaGUgXCJuXCIgdHlwZSBpcyBhbiBhbGlhcyBmb3IgXCIsZ1wiLlxuICAgIGlmICh0eXBlID09PSBcIm5cIikgY29tbWEgPSB0cnVlLCB0eXBlID0gXCJnXCI7XG5cbiAgICAvLyBUaGUgXCJcIiB0eXBlLCBhbmQgYW55IGludmFsaWQgdHlwZSwgaXMgYW4gYWxpYXMgZm9yIFwiLjEyfmdcIi5cbiAgICBlbHNlIGlmICghZm9ybWF0VHlwZXNbdHlwZV0pIHByZWNpc2lvbiA9PT0gdW5kZWZpbmVkICYmIChwcmVjaXNpb24gPSAxMiksIHRyaW0gPSB0cnVlLCB0eXBlID0gXCJnXCI7XG5cbiAgICAvLyBJZiB6ZXJvIGZpbGwgaXMgc3BlY2lmaWVkLCBwYWRkaW5nIGdvZXMgYWZ0ZXIgc2lnbiBhbmQgYmVmb3JlIGRpZ2l0cy5cbiAgICBpZiAoemVybyB8fCAoZmlsbCA9PT0gXCIwXCIgJiYgYWxpZ24gPT09IFwiPVwiKSkgemVybyA9IHRydWUsIGZpbGwgPSBcIjBcIiwgYWxpZ24gPSBcIj1cIjtcblxuICAgIC8vIENvbXB1dGUgdGhlIHByZWZpeCBhbmQgc3VmZml4LlxuICAgIC8vIEZvciBTSS1wcmVmaXgsIHRoZSBzdWZmaXggaXMgbGF6aWx5IGNvbXB1dGVkLlxuICAgIHZhciBwcmVmaXggPSBzeW1ib2wgPT09IFwiJFwiID8gY3VycmVuY3lQcmVmaXggOiBzeW1ib2wgPT09IFwiI1wiICYmIC9bYm94WF0vLnRlc3QodHlwZSkgPyBcIjBcIiArIHR5cGUudG9Mb3dlckNhc2UoKSA6IFwiXCIsXG4gICAgICAgIHN1ZmZpeCA9IHN5bWJvbCA9PT0gXCIkXCIgPyBjdXJyZW5jeVN1ZmZpeCA6IC9bJXBdLy50ZXN0KHR5cGUpID8gcGVyY2VudCA6IFwiXCI7XG5cbiAgICAvLyBXaGF0IGZvcm1hdCBmdW5jdGlvbiBzaG91bGQgd2UgdXNlP1xuICAgIC8vIElzIHRoaXMgYW4gaW50ZWdlciB0eXBlP1xuICAgIC8vIENhbiB0aGlzIHR5cGUgZ2VuZXJhdGUgZXhwb25lbnRpYWwgbm90YXRpb24/XG4gICAgdmFyIGZvcm1hdFR5cGUgPSBmb3JtYXRUeXBlc1t0eXBlXSxcbiAgICAgICAgbWF5YmVTdWZmaXggPSAvW2RlZmdwcnMlXS8udGVzdCh0eXBlKTtcblxuICAgIC8vIFNldCB0aGUgZGVmYXVsdCBwcmVjaXNpb24gaWYgbm90IHNwZWNpZmllZCxcbiAgICAvLyBvciBjbGFtcCB0aGUgc3BlY2lmaWVkIHByZWNpc2lvbiB0byB0aGUgc3VwcG9ydGVkIHJhbmdlLlxuICAgIC8vIEZvciBzaWduaWZpY2FudCBwcmVjaXNpb24sIGl0IG11c3QgYmUgaW4gWzEsIDIxXS5cbiAgICAvLyBGb3IgZml4ZWQgcHJlY2lzaW9uLCBpdCBtdXN0IGJlIGluIFswLCAyMF0uXG4gICAgcHJlY2lzaW9uID0gcHJlY2lzaW9uID09PSB1bmRlZmluZWQgPyA2XG4gICAgICAgIDogL1tncHJzXS8udGVzdCh0eXBlKSA/IE1hdGgubWF4KDEsIE1hdGgubWluKDIxLCBwcmVjaXNpb24pKVxuICAgICAgICA6IE1hdGgubWF4KDAsIE1hdGgubWluKDIwLCBwcmVjaXNpb24pKTtcblxuICAgIGZ1bmN0aW9uIGZvcm1hdCh2YWx1ZSkge1xuICAgICAgdmFyIHZhbHVlUHJlZml4ID0gcHJlZml4LFxuICAgICAgICAgIHZhbHVlU3VmZml4ID0gc3VmZml4LFxuICAgICAgICAgIGksIG4sIGM7XG5cbiAgICAgIGlmICh0eXBlID09PSBcImNcIikge1xuICAgICAgICB2YWx1ZVN1ZmZpeCA9IGZvcm1hdFR5cGUodmFsdWUpICsgdmFsdWVTdWZmaXg7XG4gICAgICAgIHZhbHVlID0gXCJcIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbHVlID0gK3ZhbHVlO1xuXG4gICAgICAgIC8vIERldGVybWluZSB0aGUgc2lnbi4gLTAgaXMgbm90IGxlc3MgdGhhbiAwLCBidXQgMSAvIC0wIGlzIVxuICAgICAgICB2YXIgdmFsdWVOZWdhdGl2ZSA9IHZhbHVlIDwgMCB8fCAxIC8gdmFsdWUgPCAwO1xuXG4gICAgICAgIC8vIFBlcmZvcm0gdGhlIGluaXRpYWwgZm9ybWF0dGluZy5cbiAgICAgICAgdmFsdWUgPSBpc05hTih2YWx1ZSkgPyBuYW4gOiBmb3JtYXRUeXBlKE1hdGguYWJzKHZhbHVlKSwgcHJlY2lzaW9uKTtcblxuICAgICAgICAvLyBUcmltIGluc2lnbmlmaWNhbnQgemVyb3MuXG4gICAgICAgIGlmICh0cmltKSB2YWx1ZSA9IGZvcm1hdFRyaW0odmFsdWUpO1xuXG4gICAgICAgIC8vIElmIGEgbmVnYXRpdmUgdmFsdWUgcm91bmRzIHRvIHplcm8gYWZ0ZXIgZm9ybWF0dGluZywgYW5kIG5vIGV4cGxpY2l0IHBvc2l0aXZlIHNpZ24gaXMgcmVxdWVzdGVkLCBoaWRlIHRoZSBzaWduLlxuICAgICAgICBpZiAodmFsdWVOZWdhdGl2ZSAmJiArdmFsdWUgPT09IDAgJiYgc2lnbiAhPT0gXCIrXCIpIHZhbHVlTmVnYXRpdmUgPSBmYWxzZTtcblxuICAgICAgICAvLyBDb21wdXRlIHRoZSBwcmVmaXggYW5kIHN1ZmZpeC5cbiAgICAgICAgdmFsdWVQcmVmaXggPSAodmFsdWVOZWdhdGl2ZSA/IChzaWduID09PSBcIihcIiA/IHNpZ24gOiBtaW51cykgOiBzaWduID09PSBcIi1cIiB8fCBzaWduID09PSBcIihcIiA/IFwiXCIgOiBzaWduKSArIHZhbHVlUHJlZml4O1xuICAgICAgICB2YWx1ZVN1ZmZpeCA9ICh0eXBlID09PSBcInNcIiA/IHByZWZpeGVzWzggKyBwcmVmaXhFeHBvbmVudCAvIDNdIDogXCJcIikgKyB2YWx1ZVN1ZmZpeCArICh2YWx1ZU5lZ2F0aXZlICYmIHNpZ24gPT09IFwiKFwiID8gXCIpXCIgOiBcIlwiKTtcblxuICAgICAgICAvLyBCcmVhayB0aGUgZm9ybWF0dGVkIHZhbHVlIGludG8gdGhlIGludGVnZXIgXHUyMDFDdmFsdWVcdTIwMUQgcGFydCB0aGF0IGNhbiBiZVxuICAgICAgICAvLyBncm91cGVkLCBhbmQgZnJhY3Rpb25hbCBvciBleHBvbmVudGlhbCBcdTIwMUNzdWZmaXhcdTIwMUQgcGFydCB0aGF0IGlzIG5vdC5cbiAgICAgICAgaWYgKG1heWJlU3VmZml4KSB7XG4gICAgICAgICAgaSA9IC0xLCBuID0gdmFsdWUubGVuZ3RoO1xuICAgICAgICAgIHdoaWxlICgrK2kgPCBuKSB7XG4gICAgICAgICAgICBpZiAoYyA9IHZhbHVlLmNoYXJDb2RlQXQoaSksIDQ4ID4gYyB8fCBjID4gNTcpIHtcbiAgICAgICAgICAgICAgdmFsdWVTdWZmaXggPSAoYyA9PT0gNDYgPyBkZWNpbWFsICsgdmFsdWUuc2xpY2UoaSArIDEpIDogdmFsdWUuc2xpY2UoaSkpICsgdmFsdWVTdWZmaXg7XG4gICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMCwgaSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGUgZmlsbCBjaGFyYWN0ZXIgaXMgbm90IFwiMFwiLCBncm91cGluZyBpcyBhcHBsaWVkIGJlZm9yZSBwYWRkaW5nLlxuICAgICAgaWYgKGNvbW1hICYmICF6ZXJvKSB2YWx1ZSA9IGdyb3VwKHZhbHVlLCBJbmZpbml0eSk7XG5cbiAgICAgIC8vIENvbXB1dGUgdGhlIHBhZGRpbmcuXG4gICAgICB2YXIgbGVuZ3RoID0gdmFsdWVQcmVmaXgubGVuZ3RoICsgdmFsdWUubGVuZ3RoICsgdmFsdWVTdWZmaXgubGVuZ3RoLFxuICAgICAgICAgIHBhZGRpbmcgPSBsZW5ndGggPCB3aWR0aCA/IG5ldyBBcnJheSh3aWR0aCAtIGxlbmd0aCArIDEpLmpvaW4oZmlsbCkgOiBcIlwiO1xuXG4gICAgICAvLyBJZiB0aGUgZmlsbCBjaGFyYWN0ZXIgaXMgXCIwXCIsIGdyb3VwaW5nIGlzIGFwcGxpZWQgYWZ0ZXIgcGFkZGluZy5cbiAgICAgIGlmIChjb21tYSAmJiB6ZXJvKSB2YWx1ZSA9IGdyb3VwKHBhZGRpbmcgKyB2YWx1ZSwgcGFkZGluZy5sZW5ndGggPyB3aWR0aCAtIHZhbHVlU3VmZml4Lmxlbmd0aCA6IEluZmluaXR5KSwgcGFkZGluZyA9IFwiXCI7XG5cbiAgICAgIC8vIFJlY29uc3RydWN0IHRoZSBmaW5hbCBvdXRwdXQgYmFzZWQgb24gdGhlIGRlc2lyZWQgYWxpZ25tZW50LlxuICAgICAgc3dpdGNoIChhbGlnbikge1xuICAgICAgICBjYXNlIFwiPFwiOiB2YWx1ZSA9IHZhbHVlUHJlZml4ICsgdmFsdWUgKyB2YWx1ZVN1ZmZpeCArIHBhZGRpbmc7IGJyZWFrO1xuICAgICAgICBjYXNlIFwiPVwiOiB2YWx1ZSA9IHZhbHVlUHJlZml4ICsgcGFkZGluZyArIHZhbHVlICsgdmFsdWVTdWZmaXg7IGJyZWFrO1xuICAgICAgICBjYXNlIFwiXlwiOiB2YWx1ZSA9IHBhZGRpbmcuc2xpY2UoMCwgbGVuZ3RoID0gcGFkZGluZy5sZW5ndGggPj4gMSkgKyB2YWx1ZVByZWZpeCArIHZhbHVlICsgdmFsdWVTdWZmaXggKyBwYWRkaW5nLnNsaWNlKGxlbmd0aCk7IGJyZWFrO1xuICAgICAgICBkZWZhdWx0OiB2YWx1ZSA9IHBhZGRpbmcgKyB2YWx1ZVByZWZpeCArIHZhbHVlICsgdmFsdWVTdWZmaXg7IGJyZWFrO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVtZXJhbHModmFsdWUpO1xuICAgIH1cblxuICAgIGZvcm1hdC50b1N0cmluZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHNwZWNpZmllciArIFwiXCI7XG4gICAgfTtcblxuICAgIHJldHVybiBmb3JtYXQ7XG4gIH1cblxuICBmdW5jdGlvbiBmb3JtYXRQcmVmaXgoc3BlY2lmaWVyLCB2YWx1ZSkge1xuICAgIHZhciBmID0gbmV3Rm9ybWF0KChzcGVjaWZpZXIgPSBmb3JtYXRTcGVjaWZpZXIoc3BlY2lmaWVyKSwgc3BlY2lmaWVyLnR5cGUgPSBcImZcIiwgc3BlY2lmaWVyKSksXG4gICAgICAgIGUgPSBNYXRoLm1heCgtOCwgTWF0aC5taW4oOCwgTWF0aC5mbG9vcihleHBvbmVudCh2YWx1ZSkgLyAzKSkpICogMyxcbiAgICAgICAgayA9IE1hdGgucG93KDEwLCAtZSksXG4gICAgICAgIHByZWZpeCA9IHByZWZpeGVzWzggKyBlIC8gM107XG4gICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICByZXR1cm4gZihrICogdmFsdWUpICsgcHJlZml4O1xuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZvcm1hdDogbmV3Rm9ybWF0LFxuICAgIGZvcm1hdFByZWZpeDogZm9ybWF0UHJlZml4XG4gIH07XG59XG4iLCAiaW1wb3J0IGZvcm1hdExvY2FsZSBmcm9tIFwiLi9sb2NhbGUuanNcIjtcblxudmFyIGxvY2FsZTtcbmV4cG9ydCB2YXIgZm9ybWF0O1xuZXhwb3J0IHZhciBmb3JtYXRQcmVmaXg7XG5cbmRlZmF1bHRMb2NhbGUoe1xuICB0aG91c2FuZHM6IFwiLFwiLFxuICBncm91cGluZzogWzNdLFxuICBjdXJyZW5jeTogW1wiJFwiLCBcIlwiXVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRlZmF1bHRMb2NhbGUoZGVmaW5pdGlvbikge1xuICBsb2NhbGUgPSBmb3JtYXRMb2NhbGUoZGVmaW5pdGlvbik7XG4gIGZvcm1hdCA9IGxvY2FsZS5mb3JtYXQ7XG4gIGZvcm1hdFByZWZpeCA9IGxvY2FsZS5mb3JtYXRQcmVmaXg7XG4gIHJldHVybiBsb2NhbGU7XG59XG4iLCAiaW1wb3J0IGV4cG9uZW50IGZyb20gXCIuL2V4cG9uZW50LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHN0ZXApIHtcbiAgcmV0dXJuIE1hdGgubWF4KDAsIC1leHBvbmVudChNYXRoLmFicyhzdGVwKSkpO1xufVxuIiwgImltcG9ydCBleHBvbmVudCBmcm9tIFwiLi9leHBvbmVudC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzdGVwLCB2YWx1ZSkge1xuICByZXR1cm4gTWF0aC5tYXgoMCwgTWF0aC5tYXgoLTgsIE1hdGgubWluKDgsIE1hdGguZmxvb3IoZXhwb25lbnQodmFsdWUpIC8gMykpKSAqIDMgLSBleHBvbmVudChNYXRoLmFicyhzdGVwKSkpO1xufVxuIiwgImltcG9ydCBleHBvbmVudCBmcm9tIFwiLi9leHBvbmVudC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihzdGVwLCBtYXgpIHtcbiAgc3RlcCA9IE1hdGguYWJzKHN0ZXApLCBtYXggPSBNYXRoLmFicyhtYXgpIC0gc3RlcDtcbiAgcmV0dXJuIE1hdGgubWF4KDAsIGV4cG9uZW50KG1heCkgLSBleHBvbmVudChzdGVwKSkgKyAxO1xufVxuIiwgImZ1bmN0aW9uIGRlZmF1bHRTZXBhcmF0aW9uKGEsIGIpIHtcbiAgcmV0dXJuIGEucGFyZW50ID09PSBiLnBhcmVudCA/IDEgOiAyO1xufVxuXG5mdW5jdGlvbiBtZWFuWChjaGlsZHJlbikge1xuICByZXR1cm4gY2hpbGRyZW4ucmVkdWNlKG1lYW5YUmVkdWNlLCAwKSAvIGNoaWxkcmVuLmxlbmd0aDtcbn1cblxuZnVuY3Rpb24gbWVhblhSZWR1Y2UoeCwgYykge1xuICByZXR1cm4geCArIGMueDtcbn1cblxuZnVuY3Rpb24gbWF4WShjaGlsZHJlbikge1xuICByZXR1cm4gMSArIGNoaWxkcmVuLnJlZHVjZShtYXhZUmVkdWNlLCAwKTtcbn1cblxuZnVuY3Rpb24gbWF4WVJlZHVjZSh5LCBjKSB7XG4gIHJldHVybiBNYXRoLm1heCh5LCBjLnkpO1xufVxuXG5mdW5jdGlvbiBsZWFmTGVmdChub2RlKSB7XG4gIHZhciBjaGlsZHJlbjtcbiAgd2hpbGUgKGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbikgbm9kZSA9IGNoaWxkcmVuWzBdO1xuICByZXR1cm4gbm9kZTtcbn1cblxuZnVuY3Rpb24gbGVhZlJpZ2h0KG5vZGUpIHtcbiAgdmFyIGNoaWxkcmVuO1xuICB3aGlsZSAoY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuKSBub2RlID0gY2hpbGRyZW5bY2hpbGRyZW4ubGVuZ3RoIC0gMV07XG4gIHJldHVybiBub2RlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgdmFyIHNlcGFyYXRpb24gPSBkZWZhdWx0U2VwYXJhdGlvbixcbiAgICAgIGR4ID0gMSxcbiAgICAgIGR5ID0gMSxcbiAgICAgIG5vZGVTaXplID0gZmFsc2U7XG5cbiAgZnVuY3Rpb24gY2x1c3Rlcihyb290KSB7XG4gICAgdmFyIHByZXZpb3VzTm9kZSxcbiAgICAgICAgeCA9IDA7XG5cbiAgICAvLyBGaXJzdCB3YWxrLCBjb21wdXRpbmcgdGhlIGluaXRpYWwgeCAmIHkgdmFsdWVzLlxuICAgIHJvb3QuZWFjaEFmdGVyKGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgIHZhciBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW47XG4gICAgICBpZiAoY2hpbGRyZW4pIHtcbiAgICAgICAgbm9kZS54ID0gbWVhblgoY2hpbGRyZW4pO1xuICAgICAgICBub2RlLnkgPSBtYXhZKGNoaWxkcmVuKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGUueCA9IHByZXZpb3VzTm9kZSA/IHggKz0gc2VwYXJhdGlvbihub2RlLCBwcmV2aW91c05vZGUpIDogMDtcbiAgICAgICAgbm9kZS55ID0gMDtcbiAgICAgICAgcHJldmlvdXNOb2RlID0gbm9kZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHZhciBsZWZ0ID0gbGVhZkxlZnQocm9vdCksXG4gICAgICAgIHJpZ2h0ID0gbGVhZlJpZ2h0KHJvb3QpLFxuICAgICAgICB4MCA9IGxlZnQueCAtIHNlcGFyYXRpb24obGVmdCwgcmlnaHQpIC8gMixcbiAgICAgICAgeDEgPSByaWdodC54ICsgc2VwYXJhdGlvbihyaWdodCwgbGVmdCkgLyAyO1xuXG4gICAgLy8gU2Vjb25kIHdhbGssIG5vcm1hbGl6aW5nIHggJiB5IHRvIHRoZSBkZXNpcmVkIHNpemUuXG4gICAgcmV0dXJuIHJvb3QuZWFjaEFmdGVyKG5vZGVTaXplID8gZnVuY3Rpb24obm9kZSkge1xuICAgICAgbm9kZS54ID0gKG5vZGUueCAtIHJvb3QueCkgKiBkeDtcbiAgICAgIG5vZGUueSA9IChyb290LnkgLSBub2RlLnkpICogZHk7XG4gICAgfSA6IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgIG5vZGUueCA9IChub2RlLnggLSB4MCkgLyAoeDEgLSB4MCkgKiBkeDtcbiAgICAgIG5vZGUueSA9ICgxIC0gKHJvb3QueSA/IG5vZGUueSAvIHJvb3QueSA6IDEpKSAqIGR5O1xuICAgIH0pO1xuICB9XG5cbiAgY2x1c3Rlci5zZXBhcmF0aW9uID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHNlcGFyYXRpb24gPSB4LCBjbHVzdGVyKSA6IHNlcGFyYXRpb247XG4gIH07XG5cbiAgY2x1c3Rlci5zaXplID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKG5vZGVTaXplID0gZmFsc2UsIGR4ID0gK3hbMF0sIGR5ID0gK3hbMV0sIGNsdXN0ZXIpIDogKG5vZGVTaXplID8gbnVsbCA6IFtkeCwgZHldKTtcbiAgfTtcblxuICBjbHVzdGVyLm5vZGVTaXplID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKG5vZGVTaXplID0gdHJ1ZSwgZHggPSAreFswXSwgZHkgPSAreFsxXSwgY2x1c3RlcikgOiAobm9kZVNpemUgPyBbZHgsIGR5XSA6IG51bGwpO1xuICB9O1xuXG4gIHJldHVybiBjbHVzdGVyO1xufVxuIiwgImZ1bmN0aW9uIGNvdW50KG5vZGUpIHtcbiAgdmFyIHN1bSA9IDAsXG4gICAgICBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4sXG4gICAgICBpID0gY2hpbGRyZW4gJiYgY2hpbGRyZW4ubGVuZ3RoO1xuICBpZiAoIWkpIHN1bSA9IDE7XG4gIGVsc2Ugd2hpbGUgKC0taSA+PSAwKSBzdW0gKz0gY2hpbGRyZW5baV0udmFsdWU7XG4gIG5vZGUudmFsdWUgPSBzdW07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcy5lYWNoQWZ0ZXIoY291bnQpO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGNhbGxiYWNrLCB0aGF0KSB7XG4gIGxldCBpbmRleCA9IC0xO1xuICBmb3IgKGNvbnN0IG5vZGUgb2YgdGhpcykge1xuICAgIGNhbGxiYWNrLmNhbGwodGhhdCwgbm9kZSwgKytpbmRleCwgdGhpcyk7XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oY2FsbGJhY2ssIHRoYXQpIHtcbiAgdmFyIG5vZGUgPSB0aGlzLCBub2RlcyA9IFtub2RlXSwgY2hpbGRyZW4sIGksIGluZGV4ID0gLTE7XG4gIHdoaWxlIChub2RlID0gbm9kZXMucG9wKCkpIHtcbiAgICBjYWxsYmFjay5jYWxsKHRoYXQsIG5vZGUsICsraW5kZXgsIHRoaXMpO1xuICAgIGlmIChjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIGZvciAoaSA9IGNoaWxkcmVuLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIG5vZGVzLnB1c2goY2hpbGRyZW5baV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gdGhpcztcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihjYWxsYmFjaywgdGhhdCkge1xuICB2YXIgbm9kZSA9IHRoaXMsIG5vZGVzID0gW25vZGVdLCBuZXh0ID0gW10sIGNoaWxkcmVuLCBpLCBuLCBpbmRleCA9IC0xO1xuICB3aGlsZSAobm9kZSA9IG5vZGVzLnBvcCgpKSB7XG4gICAgbmV4dC5wdXNoKG5vZGUpO1xuICAgIGlmIChjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIGZvciAoaSA9IDAsIG4gPSBjaGlsZHJlbi5sZW5ndGg7IGkgPCBuOyArK2kpIHtcbiAgICAgICAgbm9kZXMucHVzaChjaGlsZHJlbltpXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHdoaWxlIChub2RlID0gbmV4dC5wb3AoKSkge1xuICAgIGNhbGxiYWNrLmNhbGwodGhhdCwgbm9kZSwgKytpbmRleCwgdGhpcyk7XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oY2FsbGJhY2ssIHRoYXQpIHtcbiAgbGV0IGluZGV4ID0gLTE7XG4gIGZvciAoY29uc3Qgbm9kZSBvZiB0aGlzKSB7XG4gICAgaWYgKGNhbGxiYWNrLmNhbGwodGhhdCwgbm9kZSwgKytpbmRleCwgdGhpcykpIHtcbiAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbiAgfVxufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiB0aGlzLmVhY2hBZnRlcihmdW5jdGlvbihub2RlKSB7XG4gICAgdmFyIHN1bSA9ICt2YWx1ZShub2RlLmRhdGEpIHx8IDAsXG4gICAgICAgIGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbixcbiAgICAgICAgaSA9IGNoaWxkcmVuICYmIGNoaWxkcmVuLmxlbmd0aDtcbiAgICB3aGlsZSAoLS1pID49IDApIHN1bSArPSBjaGlsZHJlbltpXS52YWx1ZTtcbiAgICBub2RlLnZhbHVlID0gc3VtO1xuICB9KTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihjb21wYXJlKSB7XG4gIHJldHVybiB0aGlzLmVhY2hCZWZvcmUoZnVuY3Rpb24obm9kZSkge1xuICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICBub2RlLmNoaWxkcmVuLnNvcnQoY29tcGFyZSk7XG4gICAgfVxuICB9KTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihlbmQpIHtcbiAgdmFyIHN0YXJ0ID0gdGhpcyxcbiAgICAgIGFuY2VzdG9yID0gbGVhc3RDb21tb25BbmNlc3RvcihzdGFydCwgZW5kKSxcbiAgICAgIG5vZGVzID0gW3N0YXJ0XTtcbiAgd2hpbGUgKHN0YXJ0ICE9PSBhbmNlc3Rvcikge1xuICAgIHN0YXJ0ID0gc3RhcnQucGFyZW50O1xuICAgIG5vZGVzLnB1c2goc3RhcnQpO1xuICB9XG4gIHZhciBrID0gbm9kZXMubGVuZ3RoO1xuICB3aGlsZSAoZW5kICE9PSBhbmNlc3Rvcikge1xuICAgIG5vZGVzLnNwbGljZShrLCAwLCBlbmQpO1xuICAgIGVuZCA9IGVuZC5wYXJlbnQ7XG4gIH1cbiAgcmV0dXJuIG5vZGVzO1xufVxuXG5mdW5jdGlvbiBsZWFzdENvbW1vbkFuY2VzdG9yKGEsIGIpIHtcbiAgaWYgKGEgPT09IGIpIHJldHVybiBhO1xuICB2YXIgYU5vZGVzID0gYS5hbmNlc3RvcnMoKSxcbiAgICAgIGJOb2RlcyA9IGIuYW5jZXN0b3JzKCksXG4gICAgICBjID0gbnVsbDtcbiAgYSA9IGFOb2Rlcy5wb3AoKTtcbiAgYiA9IGJOb2Rlcy5wb3AoKTtcbiAgd2hpbGUgKGEgPT09IGIpIHtcbiAgICBjID0gYTtcbiAgICBhID0gYU5vZGVzLnBvcCgpO1xuICAgIGIgPSBiTm9kZXMucG9wKCk7XG4gIH1cbiAgcmV0dXJuIGM7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHZhciBub2RlID0gdGhpcywgbm9kZXMgPSBbbm9kZV07XG4gIHdoaWxlIChub2RlID0gbm9kZS5wYXJlbnQpIHtcbiAgICBub2Rlcy5wdXNoKG5vZGUpO1xuICB9XG4gIHJldHVybiBub2Rlcztcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIEFycmF5LmZyb20odGhpcyk7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHZhciBsZWF2ZXMgPSBbXTtcbiAgdGhpcy5lYWNoQmVmb3JlKGZ1bmN0aW9uKG5vZGUpIHtcbiAgICBpZiAoIW5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIGxlYXZlcy5wdXNoKG5vZGUpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBsZWF2ZXM7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHZhciByb290ID0gdGhpcywgbGlua3MgPSBbXTtcbiAgcm9vdC5lYWNoKGZ1bmN0aW9uKG5vZGUpIHtcbiAgICBpZiAobm9kZSAhPT0gcm9vdCkgeyAvLyBEb25cdTIwMTl0IGluY2x1ZGUgdGhlIHJvb3RcdTIwMTlzIHBhcmVudCwgaWYgYW55LlxuICAgICAgbGlua3MucHVzaCh7c291cmNlOiBub2RlLnBhcmVudCwgdGFyZ2V0OiBub2RlfSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGxpbmtzO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKigpIHtcbiAgdmFyIG5vZGUgPSB0aGlzLCBjdXJyZW50LCBuZXh0ID0gW25vZGVdLCBjaGlsZHJlbiwgaSwgbjtcbiAgZG8ge1xuICAgIGN1cnJlbnQgPSBuZXh0LnJldmVyc2UoKSwgbmV4dCA9IFtdO1xuICAgIHdoaWxlIChub2RlID0gY3VycmVudC5wb3AoKSkge1xuICAgICAgeWllbGQgbm9kZTtcbiAgICAgIGlmIChjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgZm9yIChpID0gMCwgbiA9IGNoaWxkcmVuLmxlbmd0aDsgaSA8IG47ICsraSkge1xuICAgICAgICAgIG5leHQucHVzaChjaGlsZHJlbltpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gd2hpbGUgKG5leHQubGVuZ3RoKTtcbn1cbiIsICJpbXBvcnQgbm9kZV9jb3VudCBmcm9tIFwiLi9jb3VudC5qc1wiO1xuaW1wb3J0IG5vZGVfZWFjaCBmcm9tIFwiLi9lYWNoLmpzXCI7XG5pbXBvcnQgbm9kZV9lYWNoQmVmb3JlIGZyb20gXCIuL2VhY2hCZWZvcmUuanNcIjtcbmltcG9ydCBub2RlX2VhY2hBZnRlciBmcm9tIFwiLi9lYWNoQWZ0ZXIuanNcIjtcbmltcG9ydCBub2RlX2ZpbmQgZnJvbSBcIi4vZmluZC5qc1wiO1xuaW1wb3J0IG5vZGVfc3VtIGZyb20gXCIuL3N1bS5qc1wiO1xuaW1wb3J0IG5vZGVfc29ydCBmcm9tIFwiLi9zb3J0LmpzXCI7XG5pbXBvcnQgbm9kZV9wYXRoIGZyb20gXCIuL3BhdGguanNcIjtcbmltcG9ydCBub2RlX2FuY2VzdG9ycyBmcm9tIFwiLi9hbmNlc3RvcnMuanNcIjtcbmltcG9ydCBub2RlX2Rlc2NlbmRhbnRzIGZyb20gXCIuL2Rlc2NlbmRhbnRzLmpzXCI7XG5pbXBvcnQgbm9kZV9sZWF2ZXMgZnJvbSBcIi4vbGVhdmVzLmpzXCI7XG5pbXBvcnQgbm9kZV9saW5rcyBmcm9tIFwiLi9saW5rcy5qc1wiO1xuaW1wb3J0IG5vZGVfaXRlcmF0b3IgZnJvbSBcIi4vaXRlcmF0b3IuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaGllcmFyY2h5KGRhdGEsIGNoaWxkcmVuKSB7XG4gIGlmIChkYXRhIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgZGF0YSA9IFt1bmRlZmluZWQsIGRhdGFdO1xuICAgIGlmIChjaGlsZHJlbiA9PT0gdW5kZWZpbmVkKSBjaGlsZHJlbiA9IG1hcENoaWxkcmVuO1xuICB9IGVsc2UgaWYgKGNoaWxkcmVuID09PSB1bmRlZmluZWQpIHtcbiAgICBjaGlsZHJlbiA9IG9iamVjdENoaWxkcmVuO1xuICB9XG5cbiAgdmFyIHJvb3QgPSBuZXcgTm9kZShkYXRhKSxcbiAgICAgIG5vZGUsXG4gICAgICBub2RlcyA9IFtyb290XSxcbiAgICAgIGNoaWxkLFxuICAgICAgY2hpbGRzLFxuICAgICAgaSxcbiAgICAgIG47XG5cbiAgd2hpbGUgKG5vZGUgPSBub2Rlcy5wb3AoKSkge1xuICAgIGlmICgoY2hpbGRzID0gY2hpbGRyZW4obm9kZS5kYXRhKSkgJiYgKG4gPSAoY2hpbGRzID0gQXJyYXkuZnJvbShjaGlsZHMpKS5sZW5ndGgpKSB7XG4gICAgICBub2RlLmNoaWxkcmVuID0gY2hpbGRzO1xuICAgICAgZm9yIChpID0gbiAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgIG5vZGVzLnB1c2goY2hpbGQgPSBjaGlsZHNbaV0gPSBuZXcgTm9kZShjaGlsZHNbaV0pKTtcbiAgICAgICAgY2hpbGQucGFyZW50ID0gbm9kZTtcbiAgICAgICAgY2hpbGQuZGVwdGggPSBub2RlLmRlcHRoICsgMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcm9vdC5lYWNoQmVmb3JlKGNvbXB1dGVIZWlnaHQpO1xufVxuXG5mdW5jdGlvbiBub2RlX2NvcHkoKSB7XG4gIHJldHVybiBoaWVyYXJjaHkodGhpcykuZWFjaEJlZm9yZShjb3B5RGF0YSk7XG59XG5cbmZ1bmN0aW9uIG9iamVjdENoaWxkcmVuKGQpIHtcbiAgcmV0dXJuIGQuY2hpbGRyZW47XG59XG5cbmZ1bmN0aW9uIG1hcENoaWxkcmVuKGQpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoZCkgPyBkWzFdIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gY29weURhdGEobm9kZSkge1xuICBpZiAobm9kZS5kYXRhLnZhbHVlICE9PSB1bmRlZmluZWQpIG5vZGUudmFsdWUgPSBub2RlLmRhdGEudmFsdWU7XG4gIG5vZGUuZGF0YSA9IG5vZGUuZGF0YS5kYXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZUhlaWdodChub2RlKSB7XG4gIHZhciBoZWlnaHQgPSAwO1xuICBkbyBub2RlLmhlaWdodCA9IGhlaWdodDtcbiAgd2hpbGUgKChub2RlID0gbm9kZS5wYXJlbnQpICYmIChub2RlLmhlaWdodCA8ICsraGVpZ2h0KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBOb2RlKGRhdGEpIHtcbiAgdGhpcy5kYXRhID0gZGF0YTtcbiAgdGhpcy5kZXB0aCA9XG4gIHRoaXMuaGVpZ2h0ID0gMDtcbiAgdGhpcy5wYXJlbnQgPSBudWxsO1xufVxuXG5Ob2RlLnByb3RvdHlwZSA9IGhpZXJhcmNoeS5wcm90b3R5cGUgPSB7XG4gIGNvbnN0cnVjdG9yOiBOb2RlLFxuICBjb3VudDogbm9kZV9jb3VudCxcbiAgZWFjaDogbm9kZV9lYWNoLFxuICBlYWNoQWZ0ZXI6IG5vZGVfZWFjaEFmdGVyLFxuICBlYWNoQmVmb3JlOiBub2RlX2VhY2hCZWZvcmUsXG4gIGZpbmQ6IG5vZGVfZmluZCxcbiAgc3VtOiBub2RlX3N1bSxcbiAgc29ydDogbm9kZV9zb3J0LFxuICBwYXRoOiBub2RlX3BhdGgsXG4gIGFuY2VzdG9yczogbm9kZV9hbmNlc3RvcnMsXG4gIGRlc2NlbmRhbnRzOiBub2RlX2Rlc2NlbmRhbnRzLFxuICBsZWF2ZXM6IG5vZGVfbGVhdmVzLFxuICBsaW5rczogbm9kZV9saW5rcyxcbiAgY29weTogbm9kZV9jb3B5LFxuICBbU3ltYm9sLml0ZXJhdG9yXTogbm9kZV9pdGVyYXRvclxufTtcbiIsICJleHBvcnQgZnVuY3Rpb24gb3B0aW9uYWwoZikge1xuICByZXR1cm4gZiA9PSBudWxsID8gbnVsbCA6IHJlcXVpcmVkKGYpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZWQoZikge1xuICBpZiAodHlwZW9mIGYgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IEVycm9yO1xuICByZXR1cm4gZjtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gY29uc3RhbnRaZXJvKCkge1xuICByZXR1cm4gMDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeCkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHg7XG4gIH07XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24obm9kZSkge1xuICBub2RlLngwID0gTWF0aC5yb3VuZChub2RlLngwKTtcbiAgbm9kZS55MCA9IE1hdGgucm91bmQobm9kZS55MCk7XG4gIG5vZGUueDEgPSBNYXRoLnJvdW5kKG5vZGUueDEpO1xuICBub2RlLnkxID0gTWF0aC5yb3VuZChub2RlLnkxKTtcbn1cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihwYXJlbnQsIHgwLCB5MCwgeDEsIHkxKSB7XG4gIHZhciBub2RlcyA9IHBhcmVudC5jaGlsZHJlbixcbiAgICAgIG5vZGUsXG4gICAgICBpID0gLTEsXG4gICAgICBuID0gbm9kZXMubGVuZ3RoLFxuICAgICAgayA9IHBhcmVudC52YWx1ZSAmJiAoeDEgLSB4MCkgLyBwYXJlbnQudmFsdWU7XG5cbiAgd2hpbGUgKCsraSA8IG4pIHtcbiAgICBub2RlID0gbm9kZXNbaV0sIG5vZGUueTAgPSB5MCwgbm9kZS55MSA9IHkxO1xuICAgIG5vZGUueDAgPSB4MCwgbm9kZS54MSA9IHgwICs9IG5vZGUudmFsdWUgKiBrO1xuICB9XG59XG4iLCAiaW1wb3J0IHJvdW5kTm9kZSBmcm9tIFwiLi90cmVlbWFwL3JvdW5kLmpzXCI7XG5pbXBvcnQgdHJlZW1hcERpY2UgZnJvbSBcIi4vdHJlZW1hcC9kaWNlLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICB2YXIgZHggPSAxLFxuICAgICAgZHkgPSAxLFxuICAgICAgcGFkZGluZyA9IDAsXG4gICAgICByb3VuZCA9IGZhbHNlO1xuXG4gIGZ1bmN0aW9uIHBhcnRpdGlvbihyb290KSB7XG4gICAgdmFyIG4gPSByb290LmhlaWdodCArIDE7XG4gICAgcm9vdC54MCA9XG4gICAgcm9vdC55MCA9IHBhZGRpbmc7XG4gICAgcm9vdC54MSA9IGR4O1xuICAgIHJvb3QueTEgPSBkeSAvIG47XG4gICAgcm9vdC5lYWNoQmVmb3JlKHBvc2l0aW9uTm9kZShkeSwgbikpO1xuICAgIGlmIChyb3VuZCkgcm9vdC5lYWNoQmVmb3JlKHJvdW5kTm9kZSk7XG4gICAgcmV0dXJuIHJvb3Q7XG4gIH1cblxuICBmdW5jdGlvbiBwb3NpdGlvbk5vZGUoZHksIG4pIHtcbiAgICByZXR1cm4gZnVuY3Rpb24obm9kZSkge1xuICAgICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgdHJlZW1hcERpY2Uobm9kZSwgbm9kZS54MCwgZHkgKiAobm9kZS5kZXB0aCArIDEpIC8gbiwgbm9kZS54MSwgZHkgKiAobm9kZS5kZXB0aCArIDIpIC8gbik7XG4gICAgICB9XG4gICAgICB2YXIgeDAgPSBub2RlLngwLFxuICAgICAgICAgIHkwID0gbm9kZS55MCxcbiAgICAgICAgICB4MSA9IG5vZGUueDEgLSBwYWRkaW5nLFxuICAgICAgICAgIHkxID0gbm9kZS55MSAtIHBhZGRpbmc7XG4gICAgICBpZiAoeDEgPCB4MCkgeDAgPSB4MSA9ICh4MCArIHgxKSAvIDI7XG4gICAgICBpZiAoeTEgPCB5MCkgeTAgPSB5MSA9ICh5MCArIHkxKSAvIDI7XG4gICAgICBub2RlLngwID0geDA7XG4gICAgICBub2RlLnkwID0geTA7XG4gICAgICBub2RlLngxID0geDE7XG4gICAgICBub2RlLnkxID0geTE7XG4gICAgfTtcbiAgfVxuXG4gIHBhcnRpdGlvbi5yb3VuZCA9IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChyb3VuZCA9ICEheCwgcGFydGl0aW9uKSA6IHJvdW5kO1xuICB9O1xuXG4gIHBhcnRpdGlvbi5zaXplID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGR4ID0gK3hbMF0sIGR5ID0gK3hbMV0sIHBhcnRpdGlvbikgOiBbZHgsIGR5XTtcbiAgfTtcblxuICBwYXJ0aXRpb24ucGFkZGluZyA9IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChwYWRkaW5nID0gK3gsIHBhcnRpdGlvbikgOiBwYWRkaW5nO1xuICB9O1xuXG4gIHJldHVybiBwYXJ0aXRpb247XG59XG4iLCAiaW1wb3J0IHtyZXF1aXJlZH0gZnJvbSBcIi4vYWNjZXNzb3JzLmpzXCI7XG5pbXBvcnQge05vZGUsIGNvbXB1dGVIZWlnaHR9IGZyb20gXCIuL2hpZXJhcmNoeS9pbmRleC5qc1wiO1xuXG52YXIgcHJlcm9vdCA9IHtkZXB0aDogLTF9LFxuICAgIGFtYmlndW91cyA9IHt9O1xuXG5mdW5jdGlvbiBkZWZhdWx0SWQoZCkge1xuICByZXR1cm4gZC5pZDtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdFBhcmVudElkKGQpIHtcbiAgcmV0dXJuIGQucGFyZW50SWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICB2YXIgaWQgPSBkZWZhdWx0SWQsXG4gICAgICBwYXJlbnRJZCA9IGRlZmF1bHRQYXJlbnRJZDtcblxuICBmdW5jdGlvbiBzdHJhdGlmeShkYXRhKSB7XG4gICAgdmFyIG5vZGVzID0gQXJyYXkuZnJvbShkYXRhKSxcbiAgICAgICAgbiA9IG5vZGVzLmxlbmd0aCxcbiAgICAgICAgZCxcbiAgICAgICAgaSxcbiAgICAgICAgcm9vdCxcbiAgICAgICAgcGFyZW50LFxuICAgICAgICBub2RlLFxuICAgICAgICBub2RlSWQsXG4gICAgICAgIG5vZGVLZXksXG4gICAgICAgIG5vZGVCeUtleSA9IG5ldyBNYXA7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBkID0gbm9kZXNbaV0sIG5vZGUgPSBub2Rlc1tpXSA9IG5ldyBOb2RlKGQpO1xuICAgICAgaWYgKChub2RlSWQgPSBpZChkLCBpLCBkYXRhKSkgIT0gbnVsbCAmJiAobm9kZUlkICs9IFwiXCIpKSB7XG4gICAgICAgIG5vZGVLZXkgPSBub2RlLmlkID0gbm9kZUlkO1xuICAgICAgICBub2RlQnlLZXkuc2V0KG5vZGVLZXksIG5vZGVCeUtleS5oYXMobm9kZUtleSkgPyBhbWJpZ3VvdXMgOiBub2RlKTtcbiAgICAgIH1cbiAgICAgIGlmICgobm9kZUlkID0gcGFyZW50SWQoZCwgaSwgZGF0YSkpICE9IG51bGwgJiYgKG5vZGVJZCArPSBcIlwiKSkge1xuICAgICAgICBub2RlLnBhcmVudCA9IG5vZGVJZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICBub2RlID0gbm9kZXNbaV07XG4gICAgICBpZiAobm9kZUlkID0gbm9kZS5wYXJlbnQpIHtcbiAgICAgICAgcGFyZW50ID0gbm9kZUJ5S2V5LmdldChub2RlSWQpO1xuICAgICAgICBpZiAoIXBhcmVudCkgdGhyb3cgbmV3IEVycm9yKFwibWlzc2luZzogXCIgKyBub2RlSWQpO1xuICAgICAgICBpZiAocGFyZW50ID09PSBhbWJpZ3VvdXMpIHRocm93IG5ldyBFcnJvcihcImFtYmlndW91czogXCIgKyBub2RlSWQpO1xuICAgICAgICBpZiAocGFyZW50LmNoaWxkcmVuKSBwYXJlbnQuY2hpbGRyZW4ucHVzaChub2RlKTtcbiAgICAgICAgZWxzZSBwYXJlbnQuY2hpbGRyZW4gPSBbbm9kZV07XG4gICAgICAgIG5vZGUucGFyZW50ID0gcGFyZW50O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHJvb3QpIHRocm93IG5ldyBFcnJvcihcIm11bHRpcGxlIHJvb3RzXCIpO1xuICAgICAgICByb290ID0gbm9kZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXJvb3QpIHRocm93IG5ldyBFcnJvcihcIm5vIHJvb3RcIik7XG4gICAgcm9vdC5wYXJlbnQgPSBwcmVyb290O1xuICAgIHJvb3QuZWFjaEJlZm9yZShmdW5jdGlvbihub2RlKSB7IG5vZGUuZGVwdGggPSBub2RlLnBhcmVudC5kZXB0aCArIDE7IC0tbjsgfSkuZWFjaEJlZm9yZShjb21wdXRlSGVpZ2h0KTtcbiAgICByb290LnBhcmVudCA9IG51bGw7XG4gICAgaWYgKG4gPiAwKSB0aHJvdyBuZXcgRXJyb3IoXCJjeWNsZVwiKTtcblxuICAgIHJldHVybiByb290O1xuICB9XG5cbiAgc3RyYXRpZnkuaWQgPSBmdW5jdGlvbih4KSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoaWQgPSByZXF1aXJlZCh4KSwgc3RyYXRpZnkpIDogaWQ7XG4gIH07XG5cbiAgc3RyYXRpZnkucGFyZW50SWQgPSBmdW5jdGlvbih4KSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocGFyZW50SWQgPSByZXF1aXJlZCh4KSwgc3RyYXRpZnkpIDogcGFyZW50SWQ7XG4gIH07XG5cbiAgcmV0dXJuIHN0cmF0aWZ5O1xufVxuIiwgImltcG9ydCB7Tm9kZX0gZnJvbSBcIi4vaGllcmFyY2h5L2luZGV4LmpzXCI7XG5cbmZ1bmN0aW9uIGRlZmF1bHRTZXBhcmF0aW9uKGEsIGIpIHtcbiAgcmV0dXJuIGEucGFyZW50ID09PSBiLnBhcmVudCA/IDEgOiAyO1xufVxuXG4vLyBmdW5jdGlvbiByYWRpYWxTZXBhcmF0aW9uKGEsIGIpIHtcbi8vICAgcmV0dXJuIChhLnBhcmVudCA9PT0gYi5wYXJlbnQgPyAxIDogMikgLyBhLmRlcHRoO1xuLy8gfVxuXG4vLyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gdHJhdmVyc2UgdGhlIGxlZnQgY29udG91ciBvZiBhIHN1YnRyZWUgKG9yXG4vLyBzdWJmb3Jlc3QpLiBJdCByZXR1cm5zIHRoZSBzdWNjZXNzb3Igb2YgdiBvbiB0aGlzIGNvbnRvdXIuIFRoaXMgc3VjY2Vzc29yIGlzXG4vLyBlaXRoZXIgZ2l2ZW4gYnkgdGhlIGxlZnRtb3N0IGNoaWxkIG9mIHYgb3IgYnkgdGhlIHRocmVhZCBvZiB2LiBUaGUgZnVuY3Rpb25cbi8vIHJldHVybnMgbnVsbCBpZiBhbmQgb25seSBpZiB2IGlzIG9uIHRoZSBoaWdoZXN0IGxldmVsIG9mIGl0cyBzdWJ0cmVlLlxuZnVuY3Rpb24gbmV4dExlZnQodikge1xuICB2YXIgY2hpbGRyZW4gPSB2LmNoaWxkcmVuO1xuICByZXR1cm4gY2hpbGRyZW4gPyBjaGlsZHJlblswXSA6IHYudDtcbn1cblxuLy8gVGhpcyBmdW5jdGlvbiB3b3JrcyBhbmFsb2dvdXNseSB0byBuZXh0TGVmdC5cbmZ1bmN0aW9uIG5leHRSaWdodCh2KSB7XG4gIHZhciBjaGlsZHJlbiA9IHYuY2hpbGRyZW47XG4gIHJldHVybiBjaGlsZHJlbiA/IGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdIDogdi50O1xufVxuXG4vLyBTaGlmdHMgdGhlIGN1cnJlbnQgc3VidHJlZSByb290ZWQgYXQgdysuIFRoaXMgaXMgZG9uZSBieSBpbmNyZWFzaW5nXG4vLyBwcmVsaW0odyspIGFuZCBtb2QodyspIGJ5IHNoaWZ0LlxuZnVuY3Rpb24gbW92ZVN1YnRyZWUod20sIHdwLCBzaGlmdCkge1xuICB2YXIgY2hhbmdlID0gc2hpZnQgLyAod3AuaSAtIHdtLmkpO1xuICB3cC5jIC09IGNoYW5nZTtcbiAgd3AucyArPSBzaGlmdDtcbiAgd20uYyArPSBjaGFuZ2U7XG4gIHdwLnogKz0gc2hpZnQ7XG4gIHdwLm0gKz0gc2hpZnQ7XG59XG5cbi8vIEFsbCBvdGhlciBzaGlmdHMsIGFwcGxpZWQgdG8gdGhlIHNtYWxsZXIgc3VidHJlZXMgYmV0d2VlbiB3LSBhbmQgdyssIGFyZVxuLy8gcGVyZm9ybWVkIGJ5IHRoaXMgZnVuY3Rpb24uIFRvIHByZXBhcmUgdGhlIHNoaWZ0cywgd2UgaGF2ZSB0byBhZGp1c3Rcbi8vIGNoYW5nZSh3KyksIHNoaWZ0KHcrKSwgYW5kIGNoYW5nZSh3LSkuXG5mdW5jdGlvbiBleGVjdXRlU2hpZnRzKHYpIHtcbiAgdmFyIHNoaWZ0ID0gMCxcbiAgICAgIGNoYW5nZSA9IDAsXG4gICAgICBjaGlsZHJlbiA9IHYuY2hpbGRyZW4sXG4gICAgICBpID0gY2hpbGRyZW4ubGVuZ3RoLFxuICAgICAgdztcbiAgd2hpbGUgKC0taSA+PSAwKSB7XG4gICAgdyA9IGNoaWxkcmVuW2ldO1xuICAgIHcueiArPSBzaGlmdDtcbiAgICB3Lm0gKz0gc2hpZnQ7XG4gICAgc2hpZnQgKz0gdy5zICsgKGNoYW5nZSArPSB3LmMpO1xuICB9XG59XG5cbi8vIElmIHZpLVx1MjAxOXMgYW5jZXN0b3IgaXMgYSBzaWJsaW5nIG9mIHYsIHJldHVybnMgdmktXHUyMDE5cyBhbmNlc3Rvci4gT3RoZXJ3aXNlLFxuLy8gcmV0dXJucyB0aGUgc3BlY2lmaWVkIChkZWZhdWx0KSBhbmNlc3Rvci5cbmZ1bmN0aW9uIG5leHRBbmNlc3Rvcih2aW0sIHYsIGFuY2VzdG9yKSB7XG4gIHJldHVybiB2aW0uYS5wYXJlbnQgPT09IHYucGFyZW50ID8gdmltLmEgOiBhbmNlc3Rvcjtcbn1cblxuZnVuY3Rpb24gVHJlZU5vZGUobm9kZSwgaSkge1xuICB0aGlzLl8gPSBub2RlO1xuICB0aGlzLnBhcmVudCA9IG51bGw7XG4gIHRoaXMuY2hpbGRyZW4gPSBudWxsO1xuICB0aGlzLkEgPSBudWxsOyAvLyBkZWZhdWx0IGFuY2VzdG9yXG4gIHRoaXMuYSA9IHRoaXM7IC8vIGFuY2VzdG9yXG4gIHRoaXMueiA9IDA7IC8vIHByZWxpbVxuICB0aGlzLm0gPSAwOyAvLyBtb2RcbiAgdGhpcy5jID0gMDsgLy8gY2hhbmdlXG4gIHRoaXMucyA9IDA7IC8vIHNoaWZ0XG4gIHRoaXMudCA9IG51bGw7IC8vIHRocmVhZFxuICB0aGlzLmkgPSBpOyAvLyBudW1iZXJcbn1cblxuVHJlZU5vZGUucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShOb2RlLnByb3RvdHlwZSk7XG5cbmZ1bmN0aW9uIHRyZWVSb290KHJvb3QpIHtcbiAgdmFyIHRyZWUgPSBuZXcgVHJlZU5vZGUocm9vdCwgMCksXG4gICAgICBub2RlLFxuICAgICAgbm9kZXMgPSBbdHJlZV0sXG4gICAgICBjaGlsZCxcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgaSxcbiAgICAgIG47XG5cbiAgd2hpbGUgKG5vZGUgPSBub2Rlcy5wb3AoKSkge1xuICAgIGlmIChjaGlsZHJlbiA9IG5vZGUuXy5jaGlsZHJlbikge1xuICAgICAgbm9kZS5jaGlsZHJlbiA9IG5ldyBBcnJheShuID0gY2hpbGRyZW4ubGVuZ3RoKTtcbiAgICAgIGZvciAoaSA9IG4gLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICBub2Rlcy5wdXNoKGNoaWxkID0gbm9kZS5jaGlsZHJlbltpXSA9IG5ldyBUcmVlTm9kZShjaGlsZHJlbltpXSwgaSkpO1xuICAgICAgICBjaGlsZC5wYXJlbnQgPSBub2RlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICh0cmVlLnBhcmVudCA9IG5ldyBUcmVlTm9kZShudWxsLCAwKSkuY2hpbGRyZW4gPSBbdHJlZV07XG4gIHJldHVybiB0cmVlO1xufVxuXG4vLyBOb2RlLWxpbmsgdHJlZSBkaWFncmFtIHVzaW5nIHRoZSBSZWluZ29sZC1UaWxmb3JkIFwidGlkeVwiIGFsZ29yaXRobVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKSB7XG4gIHZhciBzZXBhcmF0aW9uID0gZGVmYXVsdFNlcGFyYXRpb24sXG4gICAgICBkeCA9IDEsXG4gICAgICBkeSA9IDEsXG4gICAgICBub2RlU2l6ZSA9IG51bGw7XG5cbiAgZnVuY3Rpb24gdHJlZShyb290KSB7XG4gICAgdmFyIHQgPSB0cmVlUm9vdChyb290KTtcblxuICAgIC8vIENvbXB1dGUgdGhlIGxheW91dCB1c2luZyBCdWNoaGVpbSBldCBhbC5cdTIwMTlzIGFsZ29yaXRobS5cbiAgICB0LmVhY2hBZnRlcihmaXJzdFdhbGspLCB0LnBhcmVudC5tID0gLXQuejtcbiAgICB0LmVhY2hCZWZvcmUoc2Vjb25kV2Fsayk7XG5cbiAgICAvLyBJZiBhIGZpeGVkIG5vZGUgc2l6ZSBpcyBzcGVjaWZpZWQsIHNjYWxlIHggYW5kIHkuXG4gICAgaWYgKG5vZGVTaXplKSByb290LmVhY2hCZWZvcmUoc2l6ZU5vZGUpO1xuXG4gICAgLy8gSWYgYSBmaXhlZCB0cmVlIHNpemUgaXMgc3BlY2lmaWVkLCBzY2FsZSB4IGFuZCB5IGJhc2VkIG9uIHRoZSBleHRlbnQuXG4gICAgLy8gQ29tcHV0ZSB0aGUgbGVmdC1tb3N0LCByaWdodC1tb3N0LCBhbmQgZGVwdGgtbW9zdCBub2RlcyBmb3IgZXh0ZW50cy5cbiAgICBlbHNlIHtcbiAgICAgIHZhciBsZWZ0ID0gcm9vdCxcbiAgICAgICAgICByaWdodCA9IHJvb3QsXG4gICAgICAgICAgYm90dG9tID0gcm9vdDtcbiAgICAgIHJvb3QuZWFjaEJlZm9yZShmdW5jdGlvbihub2RlKSB7XG4gICAgICAgIGlmIChub2RlLnggPCBsZWZ0LngpIGxlZnQgPSBub2RlO1xuICAgICAgICBpZiAobm9kZS54ID4gcmlnaHQueCkgcmlnaHQgPSBub2RlO1xuICAgICAgICBpZiAobm9kZS5kZXB0aCA+IGJvdHRvbS5kZXB0aCkgYm90dG9tID0gbm9kZTtcbiAgICAgIH0pO1xuICAgICAgdmFyIHMgPSBsZWZ0ID09PSByaWdodCA/IDEgOiBzZXBhcmF0aW9uKGxlZnQsIHJpZ2h0KSAvIDIsXG4gICAgICAgICAgdHggPSBzIC0gbGVmdC54LFxuICAgICAgICAgIGt4ID0gZHggLyAocmlnaHQueCArIHMgKyB0eCksXG4gICAgICAgICAga3kgPSBkeSAvIChib3R0b20uZGVwdGggfHwgMSk7XG4gICAgICByb290LmVhY2hCZWZvcmUoZnVuY3Rpb24obm9kZSkge1xuICAgICAgICBub2RlLnggPSAobm9kZS54ICsgdHgpICoga3g7XG4gICAgICAgIG5vZGUueSA9IG5vZGUuZGVwdGggKiBreTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiByb290O1xuICB9XG5cbiAgLy8gQ29tcHV0ZXMgYSBwcmVsaW1pbmFyeSB4LWNvb3JkaW5hdGUgZm9yIHYuIEJlZm9yZSB0aGF0LCBGSVJTVCBXQUxLIGlzXG4gIC8vIGFwcGxpZWQgcmVjdXJzaXZlbHkgdG8gdGhlIGNoaWxkcmVuIG9mIHYsIGFzIHdlbGwgYXMgdGhlIGZ1bmN0aW9uXG4gIC8vIEFQUE9SVElPTi4gQWZ0ZXIgc3BhY2luZyBvdXQgdGhlIGNoaWxkcmVuIGJ5IGNhbGxpbmcgRVhFQ1VURSBTSElGVFMsIHRoZVxuICAvLyBub2RlIHYgaXMgcGxhY2VkIHRvIHRoZSBtaWRwb2ludCBvZiBpdHMgb3V0ZXJtb3N0IGNoaWxkcmVuLlxuICBmdW5jdGlvbiBmaXJzdFdhbGsodikge1xuICAgIHZhciBjaGlsZHJlbiA9IHYuY2hpbGRyZW4sXG4gICAgICAgIHNpYmxpbmdzID0gdi5wYXJlbnQuY2hpbGRyZW4sXG4gICAgICAgIHcgPSB2LmkgPyBzaWJsaW5nc1t2LmkgLSAxXSA6IG51bGw7XG4gICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICBleGVjdXRlU2hpZnRzKHYpO1xuICAgICAgdmFyIG1pZHBvaW50ID0gKGNoaWxkcmVuWzBdLnogKyBjaGlsZHJlbltjaGlsZHJlbi5sZW5ndGggLSAxXS56KSAvIDI7XG4gICAgICBpZiAodykge1xuICAgICAgICB2LnogPSB3LnogKyBzZXBhcmF0aW9uKHYuXywgdy5fKTtcbiAgICAgICAgdi5tID0gdi56IC0gbWlkcG9pbnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2LnogPSBtaWRwb2ludDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHcpIHtcbiAgICAgIHYueiA9IHcueiArIHNlcGFyYXRpb24odi5fLCB3Ll8pO1xuICAgIH1cbiAgICB2LnBhcmVudC5BID0gYXBwb3J0aW9uKHYsIHcsIHYucGFyZW50LkEgfHwgc2libGluZ3NbMF0pO1xuICB9XG5cbiAgLy8gQ29tcHV0ZXMgYWxsIHJlYWwgeC1jb29yZGluYXRlcyBieSBzdW1taW5nIHVwIHRoZSBtb2RpZmllcnMgcmVjdXJzaXZlbHkuXG4gIGZ1bmN0aW9uIHNlY29uZFdhbGsodikge1xuICAgIHYuXy54ID0gdi56ICsgdi5wYXJlbnQubTtcbiAgICB2Lm0gKz0gdi5wYXJlbnQubTtcbiAgfVxuXG4gIC8vIFRoZSBjb3JlIG9mIHRoZSBhbGdvcml0aG0uIEhlcmUsIGEgbmV3IHN1YnRyZWUgaXMgY29tYmluZWQgd2l0aCB0aGVcbiAgLy8gcHJldmlvdXMgc3VidHJlZXMuIFRocmVhZHMgYXJlIHVzZWQgdG8gdHJhdmVyc2UgdGhlIGluc2lkZSBhbmQgb3V0c2lkZVxuICAvLyBjb250b3VycyBvZiB0aGUgbGVmdCBhbmQgcmlnaHQgc3VidHJlZSB1cCB0byB0aGUgaGlnaGVzdCBjb21tb24gbGV2ZWwuIFRoZVxuICAvLyB2ZXJ0aWNlcyB1c2VkIGZvciB0aGUgdHJhdmVyc2FscyBhcmUgdmkrLCB2aS0sIHZvLSwgYW5kIHZvKywgd2hlcmUgdGhlXG4gIC8vIHN1cGVyc2NyaXB0IG8gbWVhbnMgb3V0c2lkZSBhbmQgaSBtZWFucyBpbnNpZGUsIHRoZSBzdWJzY3JpcHQgLSBtZWFucyBsZWZ0XG4gIC8vIHN1YnRyZWUgYW5kICsgbWVhbnMgcmlnaHQgc3VidHJlZS4gRm9yIHN1bW1pbmcgdXAgdGhlIG1vZGlmaWVycyBhbG9uZyB0aGVcbiAgLy8gY29udG91ciwgd2UgdXNlIHJlc3BlY3RpdmUgdmFyaWFibGVzIHNpKywgc2ktLCBzby0sIGFuZCBzbysuIFdoZW5ldmVyIHR3b1xuICAvLyBub2RlcyBvZiB0aGUgaW5zaWRlIGNvbnRvdXJzIGNvbmZsaWN0LCB3ZSBjb21wdXRlIHRoZSBsZWZ0IG9uZSBvZiB0aGVcbiAgLy8gZ3JlYXRlc3QgdW5jb21tb24gYW5jZXN0b3JzIHVzaW5nIHRoZSBmdW5jdGlvbiBBTkNFU1RPUiBhbmQgY2FsbCBNT1ZFXG4gIC8vIFNVQlRSRUUgdG8gc2hpZnQgdGhlIHN1YnRyZWUgYW5kIHByZXBhcmUgdGhlIHNoaWZ0cyBvZiBzbWFsbGVyIHN1YnRyZWVzLlxuICAvLyBGaW5hbGx5LCB3ZSBhZGQgYSBuZXcgdGhyZWFkIChpZiBuZWNlc3NhcnkpLlxuICBmdW5jdGlvbiBhcHBvcnRpb24odiwgdywgYW5jZXN0b3IpIHtcbiAgICBpZiAodykge1xuICAgICAgdmFyIHZpcCA9IHYsXG4gICAgICAgICAgdm9wID0gdixcbiAgICAgICAgICB2aW0gPSB3LFxuICAgICAgICAgIHZvbSA9IHZpcC5wYXJlbnQuY2hpbGRyZW5bMF0sXG4gICAgICAgICAgc2lwID0gdmlwLm0sXG4gICAgICAgICAgc29wID0gdm9wLm0sXG4gICAgICAgICAgc2ltID0gdmltLm0sXG4gICAgICAgICAgc29tID0gdm9tLm0sXG4gICAgICAgICAgc2hpZnQ7XG4gICAgICB3aGlsZSAodmltID0gbmV4dFJpZ2h0KHZpbSksIHZpcCA9IG5leHRMZWZ0KHZpcCksIHZpbSAmJiB2aXApIHtcbiAgICAgICAgdm9tID0gbmV4dExlZnQodm9tKTtcbiAgICAgICAgdm9wID0gbmV4dFJpZ2h0KHZvcCk7XG4gICAgICAgIHZvcC5hID0gdjtcbiAgICAgICAgc2hpZnQgPSB2aW0ueiArIHNpbSAtIHZpcC56IC0gc2lwICsgc2VwYXJhdGlvbih2aW0uXywgdmlwLl8pO1xuICAgICAgICBpZiAoc2hpZnQgPiAwKSB7XG4gICAgICAgICAgbW92ZVN1YnRyZWUobmV4dEFuY2VzdG9yKHZpbSwgdiwgYW5jZXN0b3IpLCB2LCBzaGlmdCk7XG4gICAgICAgICAgc2lwICs9IHNoaWZ0O1xuICAgICAgICAgIHNvcCArPSBzaGlmdDtcbiAgICAgICAgfVxuICAgICAgICBzaW0gKz0gdmltLm07XG4gICAgICAgIHNpcCArPSB2aXAubTtcbiAgICAgICAgc29tICs9IHZvbS5tO1xuICAgICAgICBzb3AgKz0gdm9wLm07XG4gICAgICB9XG4gICAgICBpZiAodmltICYmICFuZXh0UmlnaHQodm9wKSkge1xuICAgICAgICB2b3AudCA9IHZpbTtcbiAgICAgICAgdm9wLm0gKz0gc2ltIC0gc29wO1xuICAgICAgfVxuICAgICAgaWYgKHZpcCAmJiAhbmV4dExlZnQodm9tKSkge1xuICAgICAgICB2b20udCA9IHZpcDtcbiAgICAgICAgdm9tLm0gKz0gc2lwIC0gc29tO1xuICAgICAgICBhbmNlc3RvciA9IHY7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhbmNlc3RvcjtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNpemVOb2RlKG5vZGUpIHtcbiAgICBub2RlLnggKj0gZHg7XG4gICAgbm9kZS55ID0gbm9kZS5kZXB0aCAqIGR5O1xuICB9XG5cbiAgdHJlZS5zZXBhcmF0aW9uID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHNlcGFyYXRpb24gPSB4LCB0cmVlKSA6IHNlcGFyYXRpb247XG4gIH07XG5cbiAgdHJlZS5zaXplID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKG5vZGVTaXplID0gZmFsc2UsIGR4ID0gK3hbMF0sIGR5ID0gK3hbMV0sIHRyZWUpIDogKG5vZGVTaXplID8gbnVsbCA6IFtkeCwgZHldKTtcbiAgfTtcblxuICB0cmVlLm5vZGVTaXplID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKG5vZGVTaXplID0gdHJ1ZSwgZHggPSAreFswXSwgZHkgPSAreFsxXSwgdHJlZSkgOiAobm9kZVNpemUgPyBbZHgsIGR5XSA6IG51bGwpO1xuICB9O1xuXG4gIHJldHVybiB0cmVlO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHBhcmVudCwgeDAsIHkwLCB4MSwgeTEpIHtcbiAgdmFyIG5vZGVzID0gcGFyZW50LmNoaWxkcmVuLFxuICAgICAgbm9kZSxcbiAgICAgIGkgPSAtMSxcbiAgICAgIG4gPSBub2Rlcy5sZW5ndGgsXG4gICAgICBrID0gcGFyZW50LnZhbHVlICYmICh5MSAtIHkwKSAvIHBhcmVudC52YWx1ZTtcblxuICB3aGlsZSAoKytpIDwgbikge1xuICAgIG5vZGUgPSBub2Rlc1tpXSwgbm9kZS54MCA9IHgwLCBub2RlLngxID0geDE7XG4gICAgbm9kZS55MCA9IHkwLCBub2RlLnkxID0geTAgKz0gbm9kZS52YWx1ZSAqIGs7XG4gIH1cbn1cbiIsICJpbXBvcnQgdHJlZW1hcERpY2UgZnJvbSBcIi4vZGljZS5qc1wiO1xuaW1wb3J0IHRyZWVtYXBTbGljZSBmcm9tIFwiLi9zbGljZS5qc1wiO1xuXG5leHBvcnQgdmFyIHBoaSA9ICgxICsgTWF0aC5zcXJ0KDUpKSAvIDI7XG5cbmV4cG9ydCBmdW5jdGlvbiBzcXVhcmlmeVJhdGlvKHJhdGlvLCBwYXJlbnQsIHgwLCB5MCwgeDEsIHkxKSB7XG4gIHZhciByb3dzID0gW10sXG4gICAgICBub2RlcyA9IHBhcmVudC5jaGlsZHJlbixcbiAgICAgIHJvdyxcbiAgICAgIG5vZGVWYWx1ZSxcbiAgICAgIGkwID0gMCxcbiAgICAgIGkxID0gMCxcbiAgICAgIG4gPSBub2Rlcy5sZW5ndGgsXG4gICAgICBkeCwgZHksXG4gICAgICB2YWx1ZSA9IHBhcmVudC52YWx1ZSxcbiAgICAgIHN1bVZhbHVlLFxuICAgICAgbWluVmFsdWUsXG4gICAgICBtYXhWYWx1ZSxcbiAgICAgIG5ld1JhdGlvLFxuICAgICAgbWluUmF0aW8sXG4gICAgICBhbHBoYSxcbiAgICAgIGJldGE7XG5cbiAgd2hpbGUgKGkwIDwgbikge1xuICAgIGR4ID0geDEgLSB4MCwgZHkgPSB5MSAtIHkwO1xuXG4gICAgLy8gRmluZCB0aGUgbmV4dCBub24tZW1wdHkgbm9kZS5cbiAgICBkbyBzdW1WYWx1ZSA9IG5vZGVzW2kxKytdLnZhbHVlOyB3aGlsZSAoIXN1bVZhbHVlICYmIGkxIDwgbik7XG4gICAgbWluVmFsdWUgPSBtYXhWYWx1ZSA9IHN1bVZhbHVlO1xuICAgIGFscGhhID0gTWF0aC5tYXgoZHkgLyBkeCwgZHggLyBkeSkgLyAodmFsdWUgKiByYXRpbyk7XG4gICAgYmV0YSA9IHN1bVZhbHVlICogc3VtVmFsdWUgKiBhbHBoYTtcbiAgICBtaW5SYXRpbyA9IE1hdGgubWF4KG1heFZhbHVlIC8gYmV0YSwgYmV0YSAvIG1pblZhbHVlKTtcblxuICAgIC8vIEtlZXAgYWRkaW5nIG5vZGVzIHdoaWxlIHRoZSBhc3BlY3QgcmF0aW8gbWFpbnRhaW5zIG9yIGltcHJvdmVzLlxuICAgIGZvciAoOyBpMSA8IG47ICsraTEpIHtcbiAgICAgIHN1bVZhbHVlICs9IG5vZGVWYWx1ZSA9IG5vZGVzW2kxXS52YWx1ZTtcbiAgICAgIGlmIChub2RlVmFsdWUgPCBtaW5WYWx1ZSkgbWluVmFsdWUgPSBub2RlVmFsdWU7XG4gICAgICBpZiAobm9kZVZhbHVlID4gbWF4VmFsdWUpIG1heFZhbHVlID0gbm9kZVZhbHVlO1xuICAgICAgYmV0YSA9IHN1bVZhbHVlICogc3VtVmFsdWUgKiBhbHBoYTtcbiAgICAgIG5ld1JhdGlvID0gTWF0aC5tYXgobWF4VmFsdWUgLyBiZXRhLCBiZXRhIC8gbWluVmFsdWUpO1xuICAgICAgaWYgKG5ld1JhdGlvID4gbWluUmF0aW8pIHsgc3VtVmFsdWUgLT0gbm9kZVZhbHVlOyBicmVhazsgfVxuICAgICAgbWluUmF0aW8gPSBuZXdSYXRpbztcbiAgICB9XG5cbiAgICAvLyBQb3NpdGlvbiBhbmQgcmVjb3JkIHRoZSByb3cgb3JpZW50YXRpb24uXG4gICAgcm93cy5wdXNoKHJvdyA9IHt2YWx1ZTogc3VtVmFsdWUsIGRpY2U6IGR4IDwgZHksIGNoaWxkcmVuOiBub2Rlcy5zbGljZShpMCwgaTEpfSk7XG4gICAgaWYgKHJvdy5kaWNlKSB0cmVlbWFwRGljZShyb3csIHgwLCB5MCwgeDEsIHZhbHVlID8geTAgKz0gZHkgKiBzdW1WYWx1ZSAvIHZhbHVlIDogeTEpO1xuICAgIGVsc2UgdHJlZW1hcFNsaWNlKHJvdywgeDAsIHkwLCB2YWx1ZSA/IHgwICs9IGR4ICogc3VtVmFsdWUgLyB2YWx1ZSA6IHgxLCB5MSk7XG4gICAgdmFsdWUgLT0gc3VtVmFsdWUsIGkwID0gaTE7XG4gIH1cblxuICByZXR1cm4gcm93cztcbn1cblxuZXhwb3J0IGRlZmF1bHQgKGZ1bmN0aW9uIGN1c3RvbShyYXRpbykge1xuXG4gIGZ1bmN0aW9uIHNxdWFyaWZ5KHBhcmVudCwgeDAsIHkwLCB4MSwgeTEpIHtcbiAgICBzcXVhcmlmeVJhdGlvKHJhdGlvLCBwYXJlbnQsIHgwLCB5MCwgeDEsIHkxKTtcbiAgfVxuXG4gIHNxdWFyaWZ5LnJhdGlvID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBjdXN0b20oKHggPSAreCkgPiAxID8geCA6IDEpO1xuICB9O1xuXG4gIHJldHVybiBzcXVhcmlmeTtcbn0pKHBoaSk7XG4iLCAiaW1wb3J0IHJvdW5kTm9kZSBmcm9tIFwiLi9yb3VuZC5qc1wiO1xuaW1wb3J0IHNxdWFyaWZ5IGZyb20gXCIuL3NxdWFyaWZ5LmpzXCI7XG5pbXBvcnQge3JlcXVpcmVkfSBmcm9tIFwiLi4vYWNjZXNzb3JzLmpzXCI7XG5pbXBvcnQgY29uc3RhbnQsIHtjb25zdGFudFplcm99IGZyb20gXCIuLi9jb25zdGFudC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgdmFyIHRpbGUgPSBzcXVhcmlmeSxcbiAgICAgIHJvdW5kID0gZmFsc2UsXG4gICAgICBkeCA9IDEsXG4gICAgICBkeSA9IDEsXG4gICAgICBwYWRkaW5nU3RhY2sgPSBbMF0sXG4gICAgICBwYWRkaW5nSW5uZXIgPSBjb25zdGFudFplcm8sXG4gICAgICBwYWRkaW5nVG9wID0gY29uc3RhbnRaZXJvLFxuICAgICAgcGFkZGluZ1JpZ2h0ID0gY29uc3RhbnRaZXJvLFxuICAgICAgcGFkZGluZ0JvdHRvbSA9IGNvbnN0YW50WmVybyxcbiAgICAgIHBhZGRpbmdMZWZ0ID0gY29uc3RhbnRaZXJvO1xuXG4gIGZ1bmN0aW9uIHRyZWVtYXAocm9vdCkge1xuICAgIHJvb3QueDAgPVxuICAgIHJvb3QueTAgPSAwO1xuICAgIHJvb3QueDEgPSBkeDtcbiAgICByb290LnkxID0gZHk7XG4gICAgcm9vdC5lYWNoQmVmb3JlKHBvc2l0aW9uTm9kZSk7XG4gICAgcGFkZGluZ1N0YWNrID0gWzBdO1xuICAgIGlmIChyb3VuZCkgcm9vdC5lYWNoQmVmb3JlKHJvdW5kTm9kZSk7XG4gICAgcmV0dXJuIHJvb3Q7XG4gIH1cblxuICBmdW5jdGlvbiBwb3NpdGlvbk5vZGUobm9kZSkge1xuICAgIHZhciBwID0gcGFkZGluZ1N0YWNrW25vZGUuZGVwdGhdLFxuICAgICAgICB4MCA9IG5vZGUueDAgKyBwLFxuICAgICAgICB5MCA9IG5vZGUueTAgKyBwLFxuICAgICAgICB4MSA9IG5vZGUueDEgLSBwLFxuICAgICAgICB5MSA9IG5vZGUueTEgLSBwO1xuICAgIGlmICh4MSA8IHgwKSB4MCA9IHgxID0gKHgwICsgeDEpIC8gMjtcbiAgICBpZiAoeTEgPCB5MCkgeTAgPSB5MSA9ICh5MCArIHkxKSAvIDI7XG4gICAgbm9kZS54MCA9IHgwO1xuICAgIG5vZGUueTAgPSB5MDtcbiAgICBub2RlLngxID0geDE7XG4gICAgbm9kZS55MSA9IHkxO1xuICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICBwID0gcGFkZGluZ1N0YWNrW25vZGUuZGVwdGggKyAxXSA9IHBhZGRpbmdJbm5lcihub2RlKSAvIDI7XG4gICAgICB4MCArPSBwYWRkaW5nTGVmdChub2RlKSAtIHA7XG4gICAgICB5MCArPSBwYWRkaW5nVG9wKG5vZGUpIC0gcDtcbiAgICAgIHgxIC09IHBhZGRpbmdSaWdodChub2RlKSAtIHA7XG4gICAgICB5MSAtPSBwYWRkaW5nQm90dG9tKG5vZGUpIC0gcDtcbiAgICAgIGlmICh4MSA8IHgwKSB4MCA9IHgxID0gKHgwICsgeDEpIC8gMjtcbiAgICAgIGlmICh5MSA8IHkwKSB5MCA9IHkxID0gKHkwICsgeTEpIC8gMjtcbiAgICAgIHRpbGUobm9kZSwgeDAsIHkwLCB4MSwgeTEpO1xuICAgIH1cbiAgfVxuXG4gIHRyZWVtYXAucm91bmQgPSBmdW5jdGlvbih4KSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocm91bmQgPSAhIXgsIHRyZWVtYXApIDogcm91bmQ7XG4gIH07XG5cbiAgdHJlZW1hcC5zaXplID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGR4ID0gK3hbMF0sIGR5ID0gK3hbMV0sIHRyZWVtYXApIDogW2R4LCBkeV07XG4gIH07XG5cbiAgdHJlZW1hcC50aWxlID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHRpbGUgPSByZXF1aXJlZCh4KSwgdHJlZW1hcCkgOiB0aWxlO1xuICB9O1xuXG4gIHRyZWVtYXAucGFkZGluZyA9IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IHRyZWVtYXAucGFkZGluZ0lubmVyKHgpLnBhZGRpbmdPdXRlcih4KSA6IHRyZWVtYXAucGFkZGluZ0lubmVyKCk7XG4gIH07XG5cbiAgdHJlZW1hcC5wYWRkaW5nSW5uZXIgPSBmdW5jdGlvbih4KSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocGFkZGluZ0lubmVyID0gdHlwZW9mIHggPT09IFwiZnVuY3Rpb25cIiA/IHggOiBjb25zdGFudCgreCksIHRyZWVtYXApIDogcGFkZGluZ0lubmVyO1xuICB9O1xuXG4gIHRyZWVtYXAucGFkZGluZ091dGVyID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gdHJlZW1hcC5wYWRkaW5nVG9wKHgpLnBhZGRpbmdSaWdodCh4KS5wYWRkaW5nQm90dG9tKHgpLnBhZGRpbmdMZWZ0KHgpIDogdHJlZW1hcC5wYWRkaW5nVG9wKCk7XG4gIH07XG5cbiAgdHJlZW1hcC5wYWRkaW5nVG9wID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHBhZGRpbmdUb3AgPSB0eXBlb2YgeCA9PT0gXCJmdW5jdGlvblwiID8geCA6IGNvbnN0YW50KCt4KSwgdHJlZW1hcCkgOiBwYWRkaW5nVG9wO1xuICB9O1xuXG4gIHRyZWVtYXAucGFkZGluZ1JpZ2h0ID0gZnVuY3Rpb24oeCkge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHBhZGRpbmdSaWdodCA9IHR5cGVvZiB4ID09PSBcImZ1bmN0aW9uXCIgPyB4IDogY29uc3RhbnQoK3gpLCB0cmVlbWFwKSA6IHBhZGRpbmdSaWdodDtcbiAgfTtcblxuICB0cmVlbWFwLnBhZGRpbmdCb3R0b20gPSBmdW5jdGlvbih4KSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocGFkZGluZ0JvdHRvbSA9IHR5cGVvZiB4ID09PSBcImZ1bmN0aW9uXCIgPyB4IDogY29uc3RhbnQoK3gpLCB0cmVlbWFwKSA6IHBhZGRpbmdCb3R0b207XG4gIH07XG5cbiAgdHJlZW1hcC5wYWRkaW5nTGVmdCA9IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChwYWRkaW5nTGVmdCA9IHR5cGVvZiB4ID09PSBcImZ1bmN0aW9uXCIgPyB4IDogY29uc3RhbnQoK3gpLCB0cmVlbWFwKSA6IHBhZGRpbmdMZWZ0O1xuICB9O1xuXG4gIHJldHVybiB0cmVlbWFwO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHBhcmVudCwgeDAsIHkwLCB4MSwgeTEpIHtcbiAgdmFyIG5vZGVzID0gcGFyZW50LmNoaWxkcmVuLFxuICAgICAgaSwgbiA9IG5vZGVzLmxlbmd0aCxcbiAgICAgIHN1bSwgc3VtcyA9IG5ldyBBcnJheShuICsgMSk7XG5cbiAgZm9yIChzdW1zWzBdID0gc3VtID0gaSA9IDA7IGkgPCBuOyArK2kpIHtcbiAgICBzdW1zW2kgKyAxXSA9IHN1bSArPSBub2Rlc1tpXS52YWx1ZTtcbiAgfVxuXG4gIHBhcnRpdGlvbigwLCBuLCBwYXJlbnQudmFsdWUsIHgwLCB5MCwgeDEsIHkxKTtcblxuICBmdW5jdGlvbiBwYXJ0aXRpb24oaSwgaiwgdmFsdWUsIHgwLCB5MCwgeDEsIHkxKSB7XG4gICAgaWYgKGkgPj0gaiAtIDEpIHtcbiAgICAgIHZhciBub2RlID0gbm9kZXNbaV07XG4gICAgICBub2RlLngwID0geDAsIG5vZGUueTAgPSB5MDtcbiAgICAgIG5vZGUueDEgPSB4MSwgbm9kZS55MSA9IHkxO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciB2YWx1ZU9mZnNldCA9IHN1bXNbaV0sXG4gICAgICAgIHZhbHVlVGFyZ2V0ID0gKHZhbHVlIC8gMikgKyB2YWx1ZU9mZnNldCxcbiAgICAgICAgayA9IGkgKyAxLFxuICAgICAgICBoaSA9IGogLSAxO1xuXG4gICAgd2hpbGUgKGsgPCBoaSkge1xuICAgICAgdmFyIG1pZCA9IGsgKyBoaSA+Pj4gMTtcbiAgICAgIGlmIChzdW1zW21pZF0gPCB2YWx1ZVRhcmdldCkgayA9IG1pZCArIDE7XG4gICAgICBlbHNlIGhpID0gbWlkO1xuICAgIH1cblxuICAgIGlmICgodmFsdWVUYXJnZXQgLSBzdW1zW2sgLSAxXSkgPCAoc3Vtc1trXSAtIHZhbHVlVGFyZ2V0KSAmJiBpICsgMSA8IGspIC0taztcblxuICAgIHZhciB2YWx1ZUxlZnQgPSBzdW1zW2tdIC0gdmFsdWVPZmZzZXQsXG4gICAgICAgIHZhbHVlUmlnaHQgPSB2YWx1ZSAtIHZhbHVlTGVmdDtcblxuICAgIGlmICgoeDEgLSB4MCkgPiAoeTEgLSB5MCkpIHtcbiAgICAgIHZhciB4ayA9IHZhbHVlID8gKHgwICogdmFsdWVSaWdodCArIHgxICogdmFsdWVMZWZ0KSAvIHZhbHVlIDogeDE7XG4gICAgICBwYXJ0aXRpb24oaSwgaywgdmFsdWVMZWZ0LCB4MCwgeTAsIHhrLCB5MSk7XG4gICAgICBwYXJ0aXRpb24oaywgaiwgdmFsdWVSaWdodCwgeGssIHkwLCB4MSwgeTEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgeWsgPSB2YWx1ZSA/ICh5MCAqIHZhbHVlUmlnaHQgKyB5MSAqIHZhbHVlTGVmdCkgLyB2YWx1ZSA6IHkxO1xuICAgICAgcGFydGl0aW9uKGksIGssIHZhbHVlTGVmdCwgeDAsIHkwLCB4MSwgeWspO1xuICAgICAgcGFydGl0aW9uKGssIGosIHZhbHVlUmlnaHQsIHgwLCB5aywgeDEsIHkxKTtcbiAgICB9XG4gIH1cbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gaW5pdFJhbmdlKGRvbWFpbiwgcmFuZ2UpIHtcbiAgc3dpdGNoIChhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgY2FzZSAwOiBicmVhaztcbiAgICBjYXNlIDE6IHRoaXMucmFuZ2UoZG9tYWluKTsgYnJlYWs7XG4gICAgZGVmYXVsdDogdGhpcy5yYW5nZShyYW5nZSkuZG9tYWluKGRvbWFpbik7IGJyZWFrO1xuICB9XG4gIHJldHVybiB0aGlzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdEludGVycG9sYXRvcihkb21haW4sIGludGVycG9sYXRvcikge1xuICBzd2l0Y2ggKGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICBjYXNlIDA6IGJyZWFrO1xuICAgIGNhc2UgMToge1xuICAgICAgaWYgKHR5cGVvZiBkb21haW4gPT09IFwiZnVuY3Rpb25cIikgdGhpcy5pbnRlcnBvbGF0b3IoZG9tYWluKTtcbiAgICAgIGVsc2UgdGhpcy5yYW5nZShkb21haW4pO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHRoaXMuZG9tYWluKGRvbWFpbik7XG4gICAgICBpZiAodHlwZW9mIGludGVycG9sYXRvciA9PT0gXCJmdW5jdGlvblwiKSB0aGlzLmludGVycG9sYXRvcihpbnRlcnBvbGF0b3IpO1xuICAgICAgZWxzZSB0aGlzLnJhbmdlKGludGVycG9sYXRvcik7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59XG4iLCAiaW1wb3J0IHtpbml0UmFuZ2V9IGZyb20gXCIuL2luaXQuanNcIjtcblxuZXhwb3J0IGNvbnN0IGltcGxpY2l0ID0gU3ltYm9sKFwiaW1wbGljaXRcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG9yZGluYWwoKSB7XG4gIHZhciBpbmRleCA9IG5ldyBNYXAoKSxcbiAgICAgIGRvbWFpbiA9IFtdLFxuICAgICAgcmFuZ2UgPSBbXSxcbiAgICAgIHVua25vd24gPSBpbXBsaWNpdDtcblxuICBmdW5jdGlvbiBzY2FsZShkKSB7XG4gICAgdmFyIGtleSA9IGQgKyBcIlwiLCBpID0gaW5kZXguZ2V0KGtleSk7XG4gICAgaWYgKCFpKSB7XG4gICAgICBpZiAodW5rbm93biAhPT0gaW1wbGljaXQpIHJldHVybiB1bmtub3duO1xuICAgICAgaW5kZXguc2V0KGtleSwgaSA9IGRvbWFpbi5wdXNoKGQpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJhbmdlWyhpIC0gMSkgJSByYW5nZS5sZW5ndGhdO1xuICB9XG5cbiAgc2NhbGUuZG9tYWluID0gZnVuY3Rpb24oXykge1xuICAgIGlmICghYXJndW1lbnRzLmxlbmd0aCkgcmV0dXJuIGRvbWFpbi5zbGljZSgpO1xuICAgIGRvbWFpbiA9IFtdLCBpbmRleCA9IG5ldyBNYXAoKTtcbiAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIF8pIHtcbiAgICAgIGNvbnN0IGtleSA9IHZhbHVlICsgXCJcIjtcbiAgICAgIGlmIChpbmRleC5oYXMoa2V5KSkgY29udGludWU7XG4gICAgICBpbmRleC5zZXQoa2V5LCBkb21haW4ucHVzaCh2YWx1ZSkpO1xuICAgIH1cbiAgICByZXR1cm4gc2NhbGU7XG4gIH07XG5cbiAgc2NhbGUucmFuZ2UgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocmFuZ2UgPSBBcnJheS5mcm9tKF8pLCBzY2FsZSkgOiByYW5nZS5zbGljZSgpO1xuICB9O1xuXG4gIHNjYWxlLnVua25vd24gPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAodW5rbm93biA9IF8sIHNjYWxlKSA6IHVua25vd247XG4gIH07XG5cbiAgc2NhbGUuY29weSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBvcmRpbmFsKGRvbWFpbiwgcmFuZ2UpLnVua25vd24odW5rbm93bik7XG4gIH07XG5cbiAgaW5pdFJhbmdlLmFwcGx5KHNjYWxlLCBhcmd1bWVudHMpO1xuXG4gIHJldHVybiBzY2FsZTtcbn1cbiIsICJpbXBvcnQge3JhbmdlIGFzIHNlcXVlbmNlfSBmcm9tIFwiZDMtYXJyYXlcIjtcbmltcG9ydCB7aW5pdFJhbmdlfSBmcm9tIFwiLi9pbml0LmpzXCI7XG5pbXBvcnQgb3JkaW5hbCBmcm9tIFwiLi9vcmRpbmFsLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGJhbmQoKSB7XG4gIHZhciBzY2FsZSA9IG9yZGluYWwoKS51bmtub3duKHVuZGVmaW5lZCksXG4gICAgICBkb21haW4gPSBzY2FsZS5kb21haW4sXG4gICAgICBvcmRpbmFsUmFuZ2UgPSBzY2FsZS5yYW5nZSxcbiAgICAgIHIwID0gMCxcbiAgICAgIHIxID0gMSxcbiAgICAgIHN0ZXAsXG4gICAgICBiYW5kd2lkdGgsXG4gICAgICByb3VuZCA9IGZhbHNlLFxuICAgICAgcGFkZGluZ0lubmVyID0gMCxcbiAgICAgIHBhZGRpbmdPdXRlciA9IDAsXG4gICAgICBhbGlnbiA9IDAuNTtcblxuICBkZWxldGUgc2NhbGUudW5rbm93bjtcblxuICBmdW5jdGlvbiByZXNjYWxlKCkge1xuICAgIHZhciBuID0gZG9tYWluKCkubGVuZ3RoLFxuICAgICAgICByZXZlcnNlID0gcjEgPCByMCxcbiAgICAgICAgc3RhcnQgPSByZXZlcnNlID8gcjEgOiByMCxcbiAgICAgICAgc3RvcCA9IHJldmVyc2UgPyByMCA6IHIxO1xuICAgIHN0ZXAgPSAoc3RvcCAtIHN0YXJ0KSAvIE1hdGgubWF4KDEsIG4gLSBwYWRkaW5nSW5uZXIgKyBwYWRkaW5nT3V0ZXIgKiAyKTtcbiAgICBpZiAocm91bmQpIHN0ZXAgPSBNYXRoLmZsb29yKHN0ZXApO1xuICAgIHN0YXJ0ICs9IChzdG9wIC0gc3RhcnQgLSBzdGVwICogKG4gLSBwYWRkaW5nSW5uZXIpKSAqIGFsaWduO1xuICAgIGJhbmR3aWR0aCA9IHN0ZXAgKiAoMSAtIHBhZGRpbmdJbm5lcik7XG4gICAgaWYgKHJvdW5kKSBzdGFydCA9IE1hdGgucm91bmQoc3RhcnQpLCBiYW5kd2lkdGggPSBNYXRoLnJvdW5kKGJhbmR3aWR0aCk7XG4gICAgdmFyIHZhbHVlcyA9IHNlcXVlbmNlKG4pLm1hcChmdW5jdGlvbihpKSB7IHJldHVybiBzdGFydCArIHN0ZXAgKiBpOyB9KTtcbiAgICByZXR1cm4gb3JkaW5hbFJhbmdlKHJldmVyc2UgPyB2YWx1ZXMucmV2ZXJzZSgpIDogdmFsdWVzKTtcbiAgfVxuXG4gIHNjYWxlLmRvbWFpbiA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChkb21haW4oXyksIHJlc2NhbGUoKSkgOiBkb21haW4oKTtcbiAgfTtcblxuICBzY2FsZS5yYW5nZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChbcjAsIHIxXSA9IF8sIHIwID0gK3IwLCByMSA9ICtyMSwgcmVzY2FsZSgpKSA6IFtyMCwgcjFdO1xuICB9O1xuXG4gIHNjYWxlLnJhbmdlUm91bmQgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIFtyMCwgcjFdID0gXywgcjAgPSArcjAsIHIxID0gK3IxLCByb3VuZCA9IHRydWUsIHJlc2NhbGUoKTtcbiAgfTtcblxuICBzY2FsZS5iYW5kd2lkdGggPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gYmFuZHdpZHRoO1xuICB9O1xuXG4gIHNjYWxlLnN0ZXAgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gc3RlcDtcbiAgfTtcblxuICBzY2FsZS5yb3VuZCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChyb3VuZCA9ICEhXywgcmVzY2FsZSgpKSA6IHJvdW5kO1xuICB9O1xuXG4gIHNjYWxlLnBhZGRpbmcgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocGFkZGluZ0lubmVyID0gTWF0aC5taW4oMSwgcGFkZGluZ091dGVyID0gK18pLCByZXNjYWxlKCkpIDogcGFkZGluZ0lubmVyO1xuICB9O1xuXG4gIHNjYWxlLnBhZGRpbmdJbm5lciA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChwYWRkaW5nSW5uZXIgPSBNYXRoLm1pbigxLCBfKSwgcmVzY2FsZSgpKSA6IHBhZGRpbmdJbm5lcjtcbiAgfTtcblxuICBzY2FsZS5wYWRkaW5nT3V0ZXIgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAocGFkZGluZ091dGVyID0gK18sIHJlc2NhbGUoKSkgOiBwYWRkaW5nT3V0ZXI7XG4gIH07XG5cbiAgc2NhbGUuYWxpZ24gPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoYWxpZ24gPSBNYXRoLm1heCgwLCBNYXRoLm1pbigxLCBfKSksIHJlc2NhbGUoKSkgOiBhbGlnbjtcbiAgfTtcblxuICBzY2FsZS5jb3B5ID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGJhbmQoZG9tYWluKCksIFtyMCwgcjFdKVxuICAgICAgICAucm91bmQocm91bmQpXG4gICAgICAgIC5wYWRkaW5nSW5uZXIocGFkZGluZ0lubmVyKVxuICAgICAgICAucGFkZGluZ091dGVyKHBhZGRpbmdPdXRlcilcbiAgICAgICAgLmFsaWduKGFsaWduKTtcbiAgfTtcblxuICByZXR1cm4gaW5pdFJhbmdlLmFwcGx5KHJlc2NhbGUoKSwgYXJndW1lbnRzKTtcbn1cblxuZnVuY3Rpb24gcG9pbnRpc2goc2NhbGUpIHtcbiAgdmFyIGNvcHkgPSBzY2FsZS5jb3B5O1xuXG4gIHNjYWxlLnBhZGRpbmcgPSBzY2FsZS5wYWRkaW5nT3V0ZXI7XG4gIGRlbGV0ZSBzY2FsZS5wYWRkaW5nSW5uZXI7XG4gIGRlbGV0ZSBzY2FsZS5wYWRkaW5nT3V0ZXI7XG5cbiAgc2NhbGUuY29weSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBwb2ludGlzaChjb3B5KCkpO1xuICB9O1xuXG4gIHJldHVybiBzY2FsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvaW50KCkge1xuICByZXR1cm4gcG9pbnRpc2goYmFuZC5hcHBseShudWxsLCBhcmd1bWVudHMpLnBhZGRpbmdJbm5lcigxKSk7XG59XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29uc3RhbnRzKHgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB4O1xuICB9O1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG51bWJlcih4KSB7XG4gIHJldHVybiAreDtcbn1cbiIsICJpbXBvcnQge2Jpc2VjdH0gZnJvbSBcImQzLWFycmF5XCI7XG5pbXBvcnQge2ludGVycG9sYXRlIGFzIGludGVycG9sYXRlVmFsdWUsIGludGVycG9sYXRlTnVtYmVyLCBpbnRlcnBvbGF0ZVJvdW5kfSBmcm9tIFwiZDMtaW50ZXJwb2xhdGVcIjtcbmltcG9ydCBjb25zdGFudCBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuaW1wb3J0IG51bWJlciBmcm9tIFwiLi9udW1iZXIuanNcIjtcblxudmFyIHVuaXQgPSBbMCwgMV07XG5cbmV4cG9ydCBmdW5jdGlvbiBpZGVudGl0eSh4KSB7XG4gIHJldHVybiB4O1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemUoYSwgYikge1xuICByZXR1cm4gKGIgLT0gKGEgPSArYSkpXG4gICAgICA/IGZ1bmN0aW9uKHgpIHsgcmV0dXJuICh4IC0gYSkgLyBiOyB9XG4gICAgICA6IGNvbnN0YW50KGlzTmFOKGIpID8gTmFOIDogMC41KTtcbn1cblxuZnVuY3Rpb24gY2xhbXBlcihhLCBiKSB7XG4gIHZhciB0O1xuICBpZiAoYSA+IGIpIHQgPSBhLCBhID0gYiwgYiA9IHQ7XG4gIHJldHVybiBmdW5jdGlvbih4KSB7IHJldHVybiBNYXRoLm1heChhLCBNYXRoLm1pbihiLCB4KSk7IH07XG59XG5cbi8vIG5vcm1hbGl6ZShhLCBiKSh4KSB0YWtlcyBhIGRvbWFpbiB2YWx1ZSB4IGluIFthLGJdIGFuZCByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIHBhcmFtZXRlciB0IGluIFswLDFdLlxuLy8gaW50ZXJwb2xhdGUoYSwgYikodCkgdGFrZXMgYSBwYXJhbWV0ZXIgdCBpbiBbMCwxXSBhbmQgcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyByYW5nZSB2YWx1ZSB4IGluIFthLGJdLlxuZnVuY3Rpb24gYmltYXAoZG9tYWluLCByYW5nZSwgaW50ZXJwb2xhdGUpIHtcbiAgdmFyIGQwID0gZG9tYWluWzBdLCBkMSA9IGRvbWFpblsxXSwgcjAgPSByYW5nZVswXSwgcjEgPSByYW5nZVsxXTtcbiAgaWYgKGQxIDwgZDApIGQwID0gbm9ybWFsaXplKGQxLCBkMCksIHIwID0gaW50ZXJwb2xhdGUocjEsIHIwKTtcbiAgZWxzZSBkMCA9IG5vcm1hbGl6ZShkMCwgZDEpLCByMCA9IGludGVycG9sYXRlKHIwLCByMSk7XG4gIHJldHVybiBmdW5jdGlvbih4KSB7IHJldHVybiByMChkMCh4KSk7IH07XG59XG5cbmZ1bmN0aW9uIHBvbHltYXAoZG9tYWluLCByYW5nZSwgaW50ZXJwb2xhdGUpIHtcbiAgdmFyIGogPSBNYXRoLm1pbihkb21haW4ubGVuZ3RoLCByYW5nZS5sZW5ndGgpIC0gMSxcbiAgICAgIGQgPSBuZXcgQXJyYXkoaiksXG4gICAgICByID0gbmV3IEFycmF5KGopLFxuICAgICAgaSA9IC0xO1xuXG4gIC8vIFJldmVyc2UgZGVzY2VuZGluZyBkb21haW5zLlxuICBpZiAoZG9tYWluW2pdIDwgZG9tYWluWzBdKSB7XG4gICAgZG9tYWluID0gZG9tYWluLnNsaWNlKCkucmV2ZXJzZSgpO1xuICAgIHJhbmdlID0gcmFuZ2Uuc2xpY2UoKS5yZXZlcnNlKCk7XG4gIH1cblxuICB3aGlsZSAoKytpIDwgaikge1xuICAgIGRbaV0gPSBub3JtYWxpemUoZG9tYWluW2ldLCBkb21haW5baSArIDFdKTtcbiAgICByW2ldID0gaW50ZXJwb2xhdGUocmFuZ2VbaV0sIHJhbmdlW2kgKyAxXSk7XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24oeCkge1xuICAgIHZhciBpID0gYmlzZWN0KGRvbWFpbiwgeCwgMSwgaikgLSAxO1xuICAgIHJldHVybiByW2ldKGRbaV0oeCkpO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29weShzb3VyY2UsIHRhcmdldCkge1xuICByZXR1cm4gdGFyZ2V0XG4gICAgICAuZG9tYWluKHNvdXJjZS5kb21haW4oKSlcbiAgICAgIC5yYW5nZShzb3VyY2UucmFuZ2UoKSlcbiAgICAgIC5pbnRlcnBvbGF0ZShzb3VyY2UuaW50ZXJwb2xhdGUoKSlcbiAgICAgIC5jbGFtcChzb3VyY2UuY2xhbXAoKSlcbiAgICAgIC51bmtub3duKHNvdXJjZS51bmtub3duKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtZXIoKSB7XG4gIHZhciBkb21haW4gPSB1bml0LFxuICAgICAgcmFuZ2UgPSB1bml0LFxuICAgICAgaW50ZXJwb2xhdGUgPSBpbnRlcnBvbGF0ZVZhbHVlLFxuICAgICAgdHJhbnNmb3JtLFxuICAgICAgdW50cmFuc2Zvcm0sXG4gICAgICB1bmtub3duLFxuICAgICAgY2xhbXAgPSBpZGVudGl0eSxcbiAgICAgIHBpZWNld2lzZSxcbiAgICAgIG91dHB1dCxcbiAgICAgIGlucHV0O1xuXG4gIGZ1bmN0aW9uIHJlc2NhbGUoKSB7XG4gICAgdmFyIG4gPSBNYXRoLm1pbihkb21haW4ubGVuZ3RoLCByYW5nZS5sZW5ndGgpO1xuICAgIGlmIChjbGFtcCAhPT0gaWRlbnRpdHkpIGNsYW1wID0gY2xhbXBlcihkb21haW5bMF0sIGRvbWFpbltuIC0gMV0pO1xuICAgIHBpZWNld2lzZSA9IG4gPiAyID8gcG9seW1hcCA6IGJpbWFwO1xuICAgIG91dHB1dCA9IGlucHV0ID0gbnVsbDtcbiAgICByZXR1cm4gc2NhbGU7XG4gIH1cblxuICBmdW5jdGlvbiBzY2FsZSh4KSB7XG4gICAgcmV0dXJuIHggPT0gbnVsbCB8fCBpc05hTih4ID0gK3gpID8gdW5rbm93biA6IChvdXRwdXQgfHwgKG91dHB1dCA9IHBpZWNld2lzZShkb21haW4ubWFwKHRyYW5zZm9ybSksIHJhbmdlLCBpbnRlcnBvbGF0ZSkpKSh0cmFuc2Zvcm0oY2xhbXAoeCkpKTtcbiAgfVxuXG4gIHNjYWxlLmludmVydCA9IGZ1bmN0aW9uKHkpIHtcbiAgICByZXR1cm4gY2xhbXAodW50cmFuc2Zvcm0oKGlucHV0IHx8IChpbnB1dCA9IHBpZWNld2lzZShyYW5nZSwgZG9tYWluLm1hcCh0cmFuc2Zvcm0pLCBpbnRlcnBvbGF0ZU51bWJlcikpKSh5KSkpO1xuICB9O1xuXG4gIHNjYWxlLmRvbWFpbiA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChkb21haW4gPSBBcnJheS5mcm9tKF8sIG51bWJlciksIHJlc2NhbGUoKSkgOiBkb21haW4uc2xpY2UoKTtcbiAgfTtcblxuICBzY2FsZS5yYW5nZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChyYW5nZSA9IEFycmF5LmZyb20oXyksIHJlc2NhbGUoKSkgOiByYW5nZS5zbGljZSgpO1xuICB9O1xuXG4gIHNjYWxlLnJhbmdlUm91bmQgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIHJhbmdlID0gQXJyYXkuZnJvbShfKSwgaW50ZXJwb2xhdGUgPSBpbnRlcnBvbGF0ZVJvdW5kLCByZXNjYWxlKCk7XG4gIH07XG5cbiAgc2NhbGUuY2xhbXAgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoY2xhbXAgPSBfID8gdHJ1ZSA6IGlkZW50aXR5LCByZXNjYWxlKCkpIDogY2xhbXAgIT09IGlkZW50aXR5O1xuICB9O1xuXG4gIHNjYWxlLmludGVycG9sYXRlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGludGVycG9sYXRlID0gXywgcmVzY2FsZSgpKSA6IGludGVycG9sYXRlO1xuICB9O1xuXG4gIHNjYWxlLnVua25vd24gPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAodW5rbm93biA9IF8sIHNjYWxlKSA6IHVua25vd247XG4gIH07XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKHQsIHUpIHtcbiAgICB0cmFuc2Zvcm0gPSB0LCB1bnRyYW5zZm9ybSA9IHU7XG4gICAgcmV0dXJuIHJlc2NhbGUoKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29udGludW91cygpIHtcbiAgcmV0dXJuIHRyYW5zZm9ybWVyKCkoaWRlbnRpdHksIGlkZW50aXR5KTtcbn1cbiIsICJpbXBvcnQge3RpY2tTdGVwfSBmcm9tIFwiZDMtYXJyYXlcIjtcbmltcG9ydCB7Zm9ybWF0LCBmb3JtYXRQcmVmaXgsIGZvcm1hdFNwZWNpZmllciwgcHJlY2lzaW9uRml4ZWQsIHByZWNpc2lvblByZWZpeCwgcHJlY2lzaW9uUm91bmR9IGZyb20gXCJkMy1mb3JtYXRcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdGlja0Zvcm1hdChzdGFydCwgc3RvcCwgY291bnQsIHNwZWNpZmllcikge1xuICB2YXIgc3RlcCA9IHRpY2tTdGVwKHN0YXJ0LCBzdG9wLCBjb3VudCksXG4gICAgICBwcmVjaXNpb247XG4gIHNwZWNpZmllciA9IGZvcm1hdFNwZWNpZmllcihzcGVjaWZpZXIgPT0gbnVsbCA/IFwiLGZcIiA6IHNwZWNpZmllcik7XG4gIHN3aXRjaCAoc3BlY2lmaWVyLnR5cGUpIHtcbiAgICBjYXNlIFwic1wiOiB7XG4gICAgICB2YXIgdmFsdWUgPSBNYXRoLm1heChNYXRoLmFicyhzdGFydCksIE1hdGguYWJzKHN0b3ApKTtcbiAgICAgIGlmIChzcGVjaWZpZXIucHJlY2lzaW9uID09IG51bGwgJiYgIWlzTmFOKHByZWNpc2lvbiA9IHByZWNpc2lvblByZWZpeChzdGVwLCB2YWx1ZSkpKSBzcGVjaWZpZXIucHJlY2lzaW9uID0gcHJlY2lzaW9uO1xuICAgICAgcmV0dXJuIGZvcm1hdFByZWZpeChzcGVjaWZpZXIsIHZhbHVlKTtcbiAgICB9XG4gICAgY2FzZSBcIlwiOlxuICAgIGNhc2UgXCJlXCI6XG4gICAgY2FzZSBcImdcIjpcbiAgICBjYXNlIFwicFwiOlxuICAgIGNhc2UgXCJyXCI6IHtcbiAgICAgIGlmIChzcGVjaWZpZXIucHJlY2lzaW9uID09IG51bGwgJiYgIWlzTmFOKHByZWNpc2lvbiA9IHByZWNpc2lvblJvdW5kKHN0ZXAsIE1hdGgubWF4KE1hdGguYWJzKHN0YXJ0KSwgTWF0aC5hYnMoc3RvcCkpKSkpIHNwZWNpZmllci5wcmVjaXNpb24gPSBwcmVjaXNpb24gLSAoc3BlY2lmaWVyLnR5cGUgPT09IFwiZVwiKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIFwiZlwiOlxuICAgIGNhc2UgXCIlXCI6IHtcbiAgICAgIGlmIChzcGVjaWZpZXIucHJlY2lzaW9uID09IG51bGwgJiYgIWlzTmFOKHByZWNpc2lvbiA9IHByZWNpc2lvbkZpeGVkKHN0ZXApKSkgc3BlY2lmaWVyLnByZWNpc2lvbiA9IHByZWNpc2lvbiAtIChzcGVjaWZpZXIudHlwZSA9PT0gXCIlXCIpICogMjtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZm9ybWF0KHNwZWNpZmllcik7XG59XG4iLCAiaW1wb3J0IHt0aWNrcywgdGlja0luY3JlbWVudH0gZnJvbSBcImQzLWFycmF5XCI7XG5pbXBvcnQgY29udGludW91cywge2NvcHl9IGZyb20gXCIuL2NvbnRpbnVvdXMuanNcIjtcbmltcG9ydCB7aW5pdFJhbmdlfSBmcm9tIFwiLi9pbml0LmpzXCI7XG5pbXBvcnQgdGlja0Zvcm1hdCBmcm9tIFwiLi90aWNrRm9ybWF0LmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBsaW5lYXJpc2goc2NhbGUpIHtcbiAgdmFyIGRvbWFpbiA9IHNjYWxlLmRvbWFpbjtcblxuICBzY2FsZS50aWNrcyA9IGZ1bmN0aW9uKGNvdW50KSB7XG4gICAgdmFyIGQgPSBkb21haW4oKTtcbiAgICByZXR1cm4gdGlja3MoZFswXSwgZFtkLmxlbmd0aCAtIDFdLCBjb3VudCA9PSBudWxsID8gMTAgOiBjb3VudCk7XG4gIH07XG5cbiAgc2NhbGUudGlja0Zvcm1hdCA9IGZ1bmN0aW9uKGNvdW50LCBzcGVjaWZpZXIpIHtcbiAgICB2YXIgZCA9IGRvbWFpbigpO1xuICAgIHJldHVybiB0aWNrRm9ybWF0KGRbMF0sIGRbZC5sZW5ndGggLSAxXSwgY291bnQgPT0gbnVsbCA/IDEwIDogY291bnQsIHNwZWNpZmllcik7XG4gIH07XG5cbiAgc2NhbGUubmljZSA9IGZ1bmN0aW9uKGNvdW50KSB7XG4gICAgaWYgKGNvdW50ID09IG51bGwpIGNvdW50ID0gMTA7XG5cbiAgICB2YXIgZCA9IGRvbWFpbigpO1xuICAgIHZhciBpMCA9IDA7XG4gICAgdmFyIGkxID0gZC5sZW5ndGggLSAxO1xuICAgIHZhciBzdGFydCA9IGRbaTBdO1xuICAgIHZhciBzdG9wID0gZFtpMV07XG4gICAgdmFyIHByZXN0ZXA7XG4gICAgdmFyIHN0ZXA7XG4gICAgdmFyIG1heEl0ZXIgPSAxMDtcblxuICAgIGlmIChzdG9wIDwgc3RhcnQpIHtcbiAgICAgIHN0ZXAgPSBzdGFydCwgc3RhcnQgPSBzdG9wLCBzdG9wID0gc3RlcDtcbiAgICAgIHN0ZXAgPSBpMCwgaTAgPSBpMSwgaTEgPSBzdGVwO1xuICAgIH1cbiAgICBcbiAgICB3aGlsZSAobWF4SXRlci0tID4gMCkge1xuICAgICAgc3RlcCA9IHRpY2tJbmNyZW1lbnQoc3RhcnQsIHN0b3AsIGNvdW50KTtcbiAgICAgIGlmIChzdGVwID09PSBwcmVzdGVwKSB7XG4gICAgICAgIGRbaTBdID0gc3RhcnRcbiAgICAgICAgZFtpMV0gPSBzdG9wXG4gICAgICAgIHJldHVybiBkb21haW4oZCk7XG4gICAgICB9IGVsc2UgaWYgKHN0ZXAgPiAwKSB7XG4gICAgICAgIHN0YXJ0ID0gTWF0aC5mbG9vcihzdGFydCAvIHN0ZXApICogc3RlcDtcbiAgICAgICAgc3RvcCA9IE1hdGguY2VpbChzdG9wIC8gc3RlcCkgKiBzdGVwO1xuICAgICAgfSBlbHNlIGlmIChzdGVwIDwgMCkge1xuICAgICAgICBzdGFydCA9IE1hdGguY2VpbChzdGFydCAqIHN0ZXApIC8gc3RlcDtcbiAgICAgICAgc3RvcCA9IE1hdGguZmxvb3Ioc3RvcCAqIHN0ZXApIC8gc3RlcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcHJlc3RlcCA9IHN0ZXA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNjYWxlO1xuICB9O1xuXG4gIHJldHVybiBzY2FsZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbGluZWFyKCkge1xuICB2YXIgc2NhbGUgPSBjb250aW51b3VzKCk7XG5cbiAgc2NhbGUuY29weSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBjb3B5KHNjYWxlLCBsaW5lYXIoKSk7XG4gIH07XG5cbiAgaW5pdFJhbmdlLmFwcGx5KHNjYWxlLCBhcmd1bWVudHMpO1xuXG4gIHJldHVybiBsaW5lYXJpc2goc2NhbGUpO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHNwZWNpZmllcikge1xuICB2YXIgbiA9IHNwZWNpZmllci5sZW5ndGggLyA2IHwgMCwgY29sb3JzID0gbmV3IEFycmF5KG4pLCBpID0gMDtcbiAgd2hpbGUgKGkgPCBuKSBjb2xvcnNbaV0gPSBcIiNcIiArIHNwZWNpZmllci5zbGljZShpICogNiwgKytpICogNik7XG4gIHJldHVybiBjb2xvcnM7XG59XG4iLCAiaW1wb3J0IGNvbG9ycyBmcm9tIFwiLi4vY29sb3JzLmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbG9ycyhcIjFmNzdiNGZmN2YwZTJjYTAyY2Q2MjcyODk0NjdiZDhjNTY0YmUzNzdjMjdmN2Y3ZmJjYmQyMjE3YmVjZlwiKTtcbiIsICJpbXBvcnQge2N1YmVoZWxpeH0gZnJvbSBcImQzLWNvbG9yXCI7XG5pbXBvcnQge2ludGVycG9sYXRlQ3ViZWhlbGl4TG9uZ30gZnJvbSBcImQzLWludGVycG9sYXRlXCI7XG5cbmV4cG9ydCB2YXIgd2FybSA9IGludGVycG9sYXRlQ3ViZWhlbGl4TG9uZyhjdWJlaGVsaXgoLTEwMCwgMC43NSwgMC4zNSksIGN1YmVoZWxpeCg4MCwgMS41MCwgMC44KSk7XG5cbmV4cG9ydCB2YXIgY29vbCA9IGludGVycG9sYXRlQ3ViZWhlbGl4TG9uZyhjdWJlaGVsaXgoMjYwLCAwLjc1LCAwLjM1KSwgY3ViZWhlbGl4KDgwLCAxLjUwLCAwLjgpKTtcblxudmFyIGMgPSBjdWJlaGVsaXgoKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odCkge1xuICBpZiAodCA8IDAgfHwgdCA+IDEpIHQgLT0gTWF0aC5mbG9vcih0KTtcbiAgdmFyIHRzID0gTWF0aC5hYnModCAtIDAuNSk7XG4gIGMuaCA9IDM2MCAqIHQgLSAxMDA7XG4gIGMucyA9IDEuNSAtIDEuNSAqIHRzO1xuICBjLmwgPSAwLjggLSAwLjkgKiB0cztcbiAgcmV0dXJuIGMgKyBcIlwiO1xufVxuIiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNvbnN0YW50KCkge1xuICAgIHJldHVybiB4O1xuICB9O1xufVxuIiwgImV4cG9ydCB2YXIgYWJzID0gTWF0aC5hYnM7XG5leHBvcnQgdmFyIGF0YW4yID0gTWF0aC5hdGFuMjtcbmV4cG9ydCB2YXIgY29zID0gTWF0aC5jb3M7XG5leHBvcnQgdmFyIG1heCA9IE1hdGgubWF4O1xuZXhwb3J0IHZhciBtaW4gPSBNYXRoLm1pbjtcbmV4cG9ydCB2YXIgc2luID0gTWF0aC5zaW47XG5leHBvcnQgdmFyIHNxcnQgPSBNYXRoLnNxcnQ7XG5cbmV4cG9ydCB2YXIgZXBzaWxvbiA9IDFlLTEyO1xuZXhwb3J0IHZhciBwaSA9IE1hdGguUEk7XG5leHBvcnQgdmFyIGhhbGZQaSA9IHBpIC8gMjtcbmV4cG9ydCB2YXIgdGF1ID0gMiAqIHBpO1xuXG5leHBvcnQgZnVuY3Rpb24gYWNvcyh4KSB7XG4gIHJldHVybiB4ID4gMSA/IDAgOiB4IDwgLTEgPyBwaSA6IE1hdGguYWNvcyh4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzaW4oeCkge1xuICByZXR1cm4geCA+PSAxID8gaGFsZlBpIDogeCA8PSAtMSA/IC1oYWxmUGkgOiBNYXRoLmFzaW4oeCk7XG59XG4iLCAiaW1wb3J0IHtwYXRofSBmcm9tIFwiZDMtcGF0aFwiO1xuaW1wb3J0IGNvbnN0YW50IGZyb20gXCIuL2NvbnN0YW50LmpzXCI7XG5pbXBvcnQge2FicywgYWNvcywgYXNpbiwgYXRhbjIsIGNvcywgZXBzaWxvbiwgaGFsZlBpLCBtYXgsIG1pbiwgcGksIHNpbiwgc3FydCwgdGF1fSBmcm9tIFwiLi9tYXRoLmpzXCI7XG5cbmZ1bmN0aW9uIGFyY0lubmVyUmFkaXVzKGQpIHtcbiAgcmV0dXJuIGQuaW5uZXJSYWRpdXM7XG59XG5cbmZ1bmN0aW9uIGFyY091dGVyUmFkaXVzKGQpIHtcbiAgcmV0dXJuIGQub3V0ZXJSYWRpdXM7XG59XG5cbmZ1bmN0aW9uIGFyY1N0YXJ0QW5nbGUoZCkge1xuICByZXR1cm4gZC5zdGFydEFuZ2xlO1xufVxuXG5mdW5jdGlvbiBhcmNFbmRBbmdsZShkKSB7XG4gIHJldHVybiBkLmVuZEFuZ2xlO1xufVxuXG5mdW5jdGlvbiBhcmNQYWRBbmdsZShkKSB7XG4gIHJldHVybiBkICYmIGQucGFkQW5nbGU7IC8vIE5vdGU6IG9wdGlvbmFsIVxufVxuXG5mdW5jdGlvbiBpbnRlcnNlY3QoeDAsIHkwLCB4MSwgeTEsIHgyLCB5MiwgeDMsIHkzKSB7XG4gIHZhciB4MTAgPSB4MSAtIHgwLCB5MTAgPSB5MSAtIHkwLFxuICAgICAgeDMyID0geDMgLSB4MiwgeTMyID0geTMgLSB5MixcbiAgICAgIHQgPSB5MzIgKiB4MTAgLSB4MzIgKiB5MTA7XG4gIGlmICh0ICogdCA8IGVwc2lsb24pIHJldHVybjtcbiAgdCA9ICh4MzIgKiAoeTAgLSB5MikgLSB5MzIgKiAoeDAgLSB4MikpIC8gdDtcbiAgcmV0dXJuIFt4MCArIHQgKiB4MTAsIHkwICsgdCAqIHkxMF07XG59XG5cbi8vIENvbXB1dGUgcGVycGVuZGljdWxhciBvZmZzZXQgbGluZSBvZiBsZW5ndGggcmMuXG4vLyBodHRwOi8vbWF0aHdvcmxkLndvbGZyYW0uY29tL0NpcmNsZS1MaW5lSW50ZXJzZWN0aW9uLmh0bWxcbmZ1bmN0aW9uIGNvcm5lclRhbmdlbnRzKHgwLCB5MCwgeDEsIHkxLCByMSwgcmMsIGN3KSB7XG4gIHZhciB4MDEgPSB4MCAtIHgxLFxuICAgICAgeTAxID0geTAgLSB5MSxcbiAgICAgIGxvID0gKGN3ID8gcmMgOiAtcmMpIC8gc3FydCh4MDEgKiB4MDEgKyB5MDEgKiB5MDEpLFxuICAgICAgb3ggPSBsbyAqIHkwMSxcbiAgICAgIG95ID0gLWxvICogeDAxLFxuICAgICAgeDExID0geDAgKyBveCxcbiAgICAgIHkxMSA9IHkwICsgb3ksXG4gICAgICB4MTAgPSB4MSArIG94LFxuICAgICAgeTEwID0geTEgKyBveSxcbiAgICAgIHgwMCA9ICh4MTEgKyB4MTApIC8gMixcbiAgICAgIHkwMCA9ICh5MTEgKyB5MTApIC8gMixcbiAgICAgIGR4ID0geDEwIC0geDExLFxuICAgICAgZHkgPSB5MTAgLSB5MTEsXG4gICAgICBkMiA9IGR4ICogZHggKyBkeSAqIGR5LFxuICAgICAgciA9IHIxIC0gcmMsXG4gICAgICBEID0geDExICogeTEwIC0geDEwICogeTExLFxuICAgICAgZCA9IChkeSA8IDAgPyAtMSA6IDEpICogc3FydChtYXgoMCwgciAqIHIgKiBkMiAtIEQgKiBEKSksXG4gICAgICBjeDAgPSAoRCAqIGR5IC0gZHggKiBkKSAvIGQyLFxuICAgICAgY3kwID0gKC1EICogZHggLSBkeSAqIGQpIC8gZDIsXG4gICAgICBjeDEgPSAoRCAqIGR5ICsgZHggKiBkKSAvIGQyLFxuICAgICAgY3kxID0gKC1EICogZHggKyBkeSAqIGQpIC8gZDIsXG4gICAgICBkeDAgPSBjeDAgLSB4MDAsXG4gICAgICBkeTAgPSBjeTAgLSB5MDAsXG4gICAgICBkeDEgPSBjeDEgLSB4MDAsXG4gICAgICBkeTEgPSBjeTEgLSB5MDA7XG5cbiAgLy8gUGljayB0aGUgY2xvc2VyIG9mIHRoZSB0d28gaW50ZXJzZWN0aW9uIHBvaW50cy5cbiAgLy8gVE9ETyBJcyB0aGVyZSBhIGZhc3RlciB3YXkgdG8gZGV0ZXJtaW5lIHdoaWNoIGludGVyc2VjdGlvbiB0byB1c2U/XG4gIGlmIChkeDAgKiBkeDAgKyBkeTAgKiBkeTAgPiBkeDEgKiBkeDEgKyBkeTEgKiBkeTEpIGN4MCA9IGN4MSwgY3kwID0gY3kxO1xuXG4gIHJldHVybiB7XG4gICAgY3g6IGN4MCxcbiAgICBjeTogY3kwLFxuICAgIHgwMTogLW94LFxuICAgIHkwMTogLW95LFxuICAgIHgxMTogY3gwICogKHIxIC8gciAtIDEpLFxuICAgIHkxMTogY3kwICogKHIxIC8gciAtIDEpXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICB2YXIgaW5uZXJSYWRpdXMgPSBhcmNJbm5lclJhZGl1cyxcbiAgICAgIG91dGVyUmFkaXVzID0gYXJjT3V0ZXJSYWRpdXMsXG4gICAgICBjb3JuZXJSYWRpdXMgPSBjb25zdGFudCgwKSxcbiAgICAgIHBhZFJhZGl1cyA9IG51bGwsXG4gICAgICBzdGFydEFuZ2xlID0gYXJjU3RhcnRBbmdsZSxcbiAgICAgIGVuZEFuZ2xlID0gYXJjRW5kQW5nbGUsXG4gICAgICBwYWRBbmdsZSA9IGFyY1BhZEFuZ2xlLFxuICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgZnVuY3Rpb24gYXJjKCkge1xuICAgIHZhciBidWZmZXIsXG4gICAgICAgIHIsXG4gICAgICAgIHIwID0gK2lubmVyUmFkaXVzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyksXG4gICAgICAgIHIxID0gK291dGVyUmFkaXVzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyksXG4gICAgICAgIGEwID0gc3RhcnRBbmdsZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpIC0gaGFsZlBpLFxuICAgICAgICBhMSA9IGVuZEFuZ2xlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgLSBoYWxmUGksXG4gICAgICAgIGRhID0gYWJzKGExIC0gYTApLFxuICAgICAgICBjdyA9IGExID4gYTA7XG5cbiAgICBpZiAoIWNvbnRleHQpIGNvbnRleHQgPSBidWZmZXIgPSBwYXRoKCk7XG5cbiAgICAvLyBFbnN1cmUgdGhhdCB0aGUgb3V0ZXIgcmFkaXVzIGlzIGFsd2F5cyBsYXJnZXIgdGhhbiB0aGUgaW5uZXIgcmFkaXVzLlxuICAgIGlmIChyMSA8IHIwKSByID0gcjEsIHIxID0gcjAsIHIwID0gcjtcblxuICAgIC8vIElzIGl0IGEgcG9pbnQ/XG4gICAgaWYgKCEocjEgPiBlcHNpbG9uKSkgY29udGV4dC5tb3ZlVG8oMCwgMCk7XG5cbiAgICAvLyBPciBpcyBpdCBhIGNpcmNsZSBvciBhbm51bHVzP1xuICAgIGVsc2UgaWYgKGRhID4gdGF1IC0gZXBzaWxvbikge1xuICAgICAgY29udGV4dC5tb3ZlVG8ocjEgKiBjb3MoYTApLCByMSAqIHNpbihhMCkpO1xuICAgICAgY29udGV4dC5hcmMoMCwgMCwgcjEsIGEwLCBhMSwgIWN3KTtcbiAgICAgIGlmIChyMCA+IGVwc2lsb24pIHtcbiAgICAgICAgY29udGV4dC5tb3ZlVG8ocjAgKiBjb3MoYTEpLCByMCAqIHNpbihhMSkpO1xuICAgICAgICBjb250ZXh0LmFyYygwLCAwLCByMCwgYTEsIGEwLCBjdyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gT3IgaXMgaXQgYSBjaXJjdWxhciBvciBhbm51bGFyIHNlY3Rvcj9cbiAgICBlbHNlIHtcbiAgICAgIHZhciBhMDEgPSBhMCxcbiAgICAgICAgICBhMTEgPSBhMSxcbiAgICAgICAgICBhMDAgPSBhMCxcbiAgICAgICAgICBhMTAgPSBhMSxcbiAgICAgICAgICBkYTAgPSBkYSxcbiAgICAgICAgICBkYTEgPSBkYSxcbiAgICAgICAgICBhcCA9IHBhZEFuZ2xlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgLyAyLFxuICAgICAgICAgIHJwID0gKGFwID4gZXBzaWxvbikgJiYgKHBhZFJhZGl1cyA/ICtwYWRSYWRpdXMuYXBwbHkodGhpcywgYXJndW1lbnRzKSA6IHNxcnQocjAgKiByMCArIHIxICogcjEpKSxcbiAgICAgICAgICByYyA9IG1pbihhYnMocjEgLSByMCkgLyAyLCArY29ybmVyUmFkaXVzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpLFxuICAgICAgICAgIHJjMCA9IHJjLFxuICAgICAgICAgIHJjMSA9IHJjLFxuICAgICAgICAgIHQwLFxuICAgICAgICAgIHQxO1xuXG4gICAgICAvLyBBcHBseSBwYWRkaW5nPyBOb3RlIHRoYXQgc2luY2UgcjEgXHUyMjY1IHIwLCBkYTEgXHUyMjY1IGRhMC5cbiAgICAgIGlmIChycCA+IGVwc2lsb24pIHtcbiAgICAgICAgdmFyIHAwID0gYXNpbihycCAvIHIwICogc2luKGFwKSksXG4gICAgICAgICAgICBwMSA9IGFzaW4ocnAgLyByMSAqIHNpbihhcCkpO1xuICAgICAgICBpZiAoKGRhMCAtPSBwMCAqIDIpID4gZXBzaWxvbikgcDAgKj0gKGN3ID8gMSA6IC0xKSwgYTAwICs9IHAwLCBhMTAgLT0gcDA7XG4gICAgICAgIGVsc2UgZGEwID0gMCwgYTAwID0gYTEwID0gKGEwICsgYTEpIC8gMjtcbiAgICAgICAgaWYgKChkYTEgLT0gcDEgKiAyKSA+IGVwc2lsb24pIHAxICo9IChjdyA/IDEgOiAtMSksIGEwMSArPSBwMSwgYTExIC09IHAxO1xuICAgICAgICBlbHNlIGRhMSA9IDAsIGEwMSA9IGExMSA9IChhMCArIGExKSAvIDI7XG4gICAgICB9XG5cbiAgICAgIHZhciB4MDEgPSByMSAqIGNvcyhhMDEpLFxuICAgICAgICAgIHkwMSA9IHIxICogc2luKGEwMSksXG4gICAgICAgICAgeDEwID0gcjAgKiBjb3MoYTEwKSxcbiAgICAgICAgICB5MTAgPSByMCAqIHNpbihhMTApO1xuXG4gICAgICAvLyBBcHBseSByb3VuZGVkIGNvcm5lcnM/XG4gICAgICBpZiAocmMgPiBlcHNpbG9uKSB7XG4gICAgICAgIHZhciB4MTEgPSByMSAqIGNvcyhhMTEpLFxuICAgICAgICAgICAgeTExID0gcjEgKiBzaW4oYTExKSxcbiAgICAgICAgICAgIHgwMCA9IHIwICogY29zKGEwMCksXG4gICAgICAgICAgICB5MDAgPSByMCAqIHNpbihhMDApLFxuICAgICAgICAgICAgb2M7XG5cbiAgICAgICAgLy8gUmVzdHJpY3QgdGhlIGNvcm5lciByYWRpdXMgYWNjb3JkaW5nIHRvIHRoZSBzZWN0b3IgYW5nbGUuXG4gICAgICAgIGlmIChkYSA8IHBpICYmIChvYyA9IGludGVyc2VjdCh4MDEsIHkwMSwgeDAwLCB5MDAsIHgxMSwgeTExLCB4MTAsIHkxMCkpKSB7XG4gICAgICAgICAgdmFyIGF4ID0geDAxIC0gb2NbMF0sXG4gICAgICAgICAgICAgIGF5ID0geTAxIC0gb2NbMV0sXG4gICAgICAgICAgICAgIGJ4ID0geDExIC0gb2NbMF0sXG4gICAgICAgICAgICAgIGJ5ID0geTExIC0gb2NbMV0sXG4gICAgICAgICAgICAgIGtjID0gMSAvIHNpbihhY29zKChheCAqIGJ4ICsgYXkgKiBieSkgLyAoc3FydChheCAqIGF4ICsgYXkgKiBheSkgKiBzcXJ0KGJ4ICogYnggKyBieSAqIGJ5KSkpIC8gMiksXG4gICAgICAgICAgICAgIGxjID0gc3FydChvY1swXSAqIG9jWzBdICsgb2NbMV0gKiBvY1sxXSk7XG4gICAgICAgICAgcmMwID0gbWluKHJjLCAocjAgLSBsYykgLyAoa2MgLSAxKSk7XG4gICAgICAgICAgcmMxID0gbWluKHJjLCAocjEgLSBsYykgLyAoa2MgKyAxKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gSXMgdGhlIHNlY3RvciBjb2xsYXBzZWQgdG8gYSBsaW5lP1xuICAgICAgaWYgKCEoZGExID4gZXBzaWxvbikpIGNvbnRleHQubW92ZVRvKHgwMSwgeTAxKTtcblxuICAgICAgLy8gRG9lcyB0aGUgc2VjdG9yXHUyMDE5cyBvdXRlciByaW5nIGhhdmUgcm91bmRlZCBjb3JuZXJzP1xuICAgICAgZWxzZSBpZiAocmMxID4gZXBzaWxvbikge1xuICAgICAgICB0MCA9IGNvcm5lclRhbmdlbnRzKHgwMCwgeTAwLCB4MDEsIHkwMSwgcjEsIHJjMSwgY3cpO1xuICAgICAgICB0MSA9IGNvcm5lclRhbmdlbnRzKHgxMSwgeTExLCB4MTAsIHkxMCwgcjEsIHJjMSwgY3cpO1xuXG4gICAgICAgIGNvbnRleHQubW92ZVRvKHQwLmN4ICsgdDAueDAxLCB0MC5jeSArIHQwLnkwMSk7XG5cbiAgICAgICAgLy8gSGF2ZSB0aGUgY29ybmVycyBtZXJnZWQ/XG4gICAgICAgIGlmIChyYzEgPCByYykgY29udGV4dC5hcmModDAuY3gsIHQwLmN5LCByYzEsIGF0YW4yKHQwLnkwMSwgdDAueDAxKSwgYXRhbjIodDEueTAxLCB0MS54MDEpLCAhY3cpO1xuXG4gICAgICAgIC8vIE90aGVyd2lzZSwgZHJhdyB0aGUgdHdvIGNvcm5lcnMgYW5kIHRoZSByaW5nLlxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBjb250ZXh0LmFyYyh0MC5jeCwgdDAuY3ksIHJjMSwgYXRhbjIodDAueTAxLCB0MC54MDEpLCBhdGFuMih0MC55MTEsIHQwLngxMSksICFjdyk7XG4gICAgICAgICAgY29udGV4dC5hcmMoMCwgMCwgcjEsIGF0YW4yKHQwLmN5ICsgdDAueTExLCB0MC5jeCArIHQwLngxMSksIGF0YW4yKHQxLmN5ICsgdDEueTExLCB0MS5jeCArIHQxLngxMSksICFjdyk7XG4gICAgICAgICAgY29udGV4dC5hcmModDEuY3gsIHQxLmN5LCByYzEsIGF0YW4yKHQxLnkxMSwgdDEueDExKSwgYXRhbjIodDEueTAxLCB0MS54MDEpLCAhY3cpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE9yIGlzIHRoZSBvdXRlciByaW5nIGp1c3QgYSBjaXJjdWxhciBhcmM/XG4gICAgICBlbHNlIGNvbnRleHQubW92ZVRvKHgwMSwgeTAxKSwgY29udGV4dC5hcmMoMCwgMCwgcjEsIGEwMSwgYTExLCAhY3cpO1xuXG4gICAgICAvLyBJcyB0aGVyZSBubyBpbm5lciByaW5nLCBhbmQgaXRcdTIwMTlzIGEgY2lyY3VsYXIgc2VjdG9yP1xuICAgICAgLy8gT3IgcGVyaGFwcyBpdFx1MjAxOXMgYW4gYW5udWxhciBzZWN0b3IgY29sbGFwc2VkIGR1ZSB0byBwYWRkaW5nP1xuICAgICAgaWYgKCEocjAgPiBlcHNpbG9uKSB8fCAhKGRhMCA+IGVwc2lsb24pKSBjb250ZXh0LmxpbmVUbyh4MTAsIHkxMCk7XG5cbiAgICAgIC8vIERvZXMgdGhlIHNlY3Rvclx1MjAxOXMgaW5uZXIgcmluZyAob3IgcG9pbnQpIGhhdmUgcm91bmRlZCBjb3JuZXJzP1xuICAgICAgZWxzZSBpZiAocmMwID4gZXBzaWxvbikge1xuICAgICAgICB0MCA9IGNvcm5lclRhbmdlbnRzKHgxMCwgeTEwLCB4MTEsIHkxMSwgcjAsIC1yYzAsIGN3KTtcbiAgICAgICAgdDEgPSBjb3JuZXJUYW5nZW50cyh4MDEsIHkwMSwgeDAwLCB5MDAsIHIwLCAtcmMwLCBjdyk7XG5cbiAgICAgICAgY29udGV4dC5saW5lVG8odDAuY3ggKyB0MC54MDEsIHQwLmN5ICsgdDAueTAxKTtcblxuICAgICAgICAvLyBIYXZlIHRoZSBjb3JuZXJzIG1lcmdlZD9cbiAgICAgICAgaWYgKHJjMCA8IHJjKSBjb250ZXh0LmFyYyh0MC5jeCwgdDAuY3ksIHJjMCwgYXRhbjIodDAueTAxLCB0MC54MDEpLCBhdGFuMih0MS55MDEsIHQxLngwMSksICFjdyk7XG5cbiAgICAgICAgLy8gT3RoZXJ3aXNlLCBkcmF3IHRoZSB0d28gY29ybmVycyBhbmQgdGhlIHJpbmcuXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGNvbnRleHQuYXJjKHQwLmN4LCB0MC5jeSwgcmMwLCBhdGFuMih0MC55MDEsIHQwLngwMSksIGF0YW4yKHQwLnkxMSwgdDAueDExKSwgIWN3KTtcbiAgICAgICAgICBjb250ZXh0LmFyYygwLCAwLCByMCwgYXRhbjIodDAuY3kgKyB0MC55MTEsIHQwLmN4ICsgdDAueDExKSwgYXRhbjIodDEuY3kgKyB0MS55MTEsIHQxLmN4ICsgdDEueDExKSwgY3cpO1xuICAgICAgICAgIGNvbnRleHQuYXJjKHQxLmN4LCB0MS5jeSwgcmMwLCBhdGFuMih0MS55MTEsIHQxLngxMSksIGF0YW4yKHQxLnkwMSwgdDEueDAxKSwgIWN3KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBPciBpcyB0aGUgaW5uZXIgcmluZyBqdXN0IGEgY2lyY3VsYXIgYXJjP1xuICAgICAgZWxzZSBjb250ZXh0LmFyYygwLCAwLCByMCwgYTEwLCBhMDAsIGN3KTtcbiAgICB9XG5cbiAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xuXG4gICAgaWYgKGJ1ZmZlcikgcmV0dXJuIGNvbnRleHQgPSBudWxsLCBidWZmZXIgKyBcIlwiIHx8IG51bGw7XG4gIH1cblxuICBhcmMuY2VudHJvaWQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgciA9ICgraW5uZXJSYWRpdXMuYXBwbHkodGhpcywgYXJndW1lbnRzKSArICtvdXRlclJhZGl1cy5hcHBseSh0aGlzLCBhcmd1bWVudHMpKSAvIDIsXG4gICAgICAgIGEgPSAoK3N0YXJ0QW5nbGUuYXBwbHkodGhpcywgYXJndW1lbnRzKSArICtlbmRBbmdsZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKSAvIDIgLSBwaSAvIDI7XG4gICAgcmV0dXJuIFtjb3MoYSkgKiByLCBzaW4oYSkgKiByXTtcbiAgfTtcblxuICBhcmMuaW5uZXJSYWRpdXMgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoaW5uZXJSYWRpdXMgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCtfKSwgYXJjKSA6IGlubmVyUmFkaXVzO1xuICB9O1xuXG4gIGFyYy5vdXRlclJhZGl1cyA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChvdXRlclJhZGl1cyA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoK18pLCBhcmMpIDogb3V0ZXJSYWRpdXM7XG4gIH07XG5cbiAgYXJjLmNvcm5lclJhZGl1cyA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChjb3JuZXJSYWRpdXMgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCtfKSwgYXJjKSA6IGNvcm5lclJhZGl1cztcbiAgfTtcblxuICBhcmMucGFkUmFkaXVzID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHBhZFJhZGl1cyA9IF8gPT0gbnVsbCA/IG51bGwgOiB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCtfKSwgYXJjKSA6IHBhZFJhZGl1cztcbiAgfTtcblxuICBhcmMuc3RhcnRBbmdsZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChzdGFydEFuZ2xlID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCgrXyksIGFyYykgOiBzdGFydEFuZ2xlO1xuICB9O1xuXG4gIGFyYy5lbmRBbmdsZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChlbmRBbmdsZSA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoK18pLCBhcmMpIDogZW5kQW5nbGU7XG4gIH07XG5cbiAgYXJjLnBhZEFuZ2xlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHBhZEFuZ2xlID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCgrXyksIGFyYykgOiBwYWRBbmdsZTtcbiAgfTtcblxuICBhcmMuY29udGV4dCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICgoY29udGV4dCA9IF8gPT0gbnVsbCA/IG51bGwgOiBfKSwgYXJjKSA6IGNvbnRleHQ7XG4gIH07XG5cbiAgcmV0dXJuIGFyYztcbn1cbiIsICJleHBvcnQgdmFyIHNsaWNlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbih4KSB7XG4gIHJldHVybiB0eXBlb2YgeCA9PT0gXCJvYmplY3RcIiAmJiBcImxlbmd0aFwiIGluIHhcbiAgICA/IHggLy8gQXJyYXksIFR5cGVkQXJyYXksIE5vZGVMaXN0LCBhcnJheS1saWtlXG4gICAgOiBBcnJheS5mcm9tKHgpOyAvLyBNYXAsIFNldCwgaXRlcmFibGUsIHN0cmluZywgb3IgYW55dGhpbmcgZWxzZVxufVxuIiwgImZ1bmN0aW9uIExpbmVhcihjb250ZXh0KSB7XG4gIHRoaXMuX2NvbnRleHQgPSBjb250ZXh0O1xufVxuXG5MaW5lYXIucHJvdG90eXBlID0ge1xuICBhcmVhU3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuX2xpbmUgPSAwO1xuICB9LFxuICBhcmVhRW5kOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl9saW5lID0gTmFOO1xuICB9LFxuICBsaW5lU3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuX3BvaW50ID0gMDtcbiAgfSxcbiAgbGluZUVuZDogZnVuY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuX2xpbmUgfHwgKHRoaXMuX2xpbmUgIT09IDAgJiYgdGhpcy5fcG9pbnQgPT09IDEpKSB0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO1xuICAgIHRoaXMuX2xpbmUgPSAxIC0gdGhpcy5fbGluZTtcbiAgfSxcbiAgcG9pbnQ6IGZ1bmN0aW9uKHgsIHkpIHtcbiAgICB4ID0gK3gsIHkgPSAreTtcbiAgICBzd2l0Y2ggKHRoaXMuX3BvaW50KSB7XG4gICAgICBjYXNlIDA6IHRoaXMuX3BvaW50ID0gMTsgdGhpcy5fbGluZSA/IHRoaXMuX2NvbnRleHQubGluZVRvKHgsIHkpIDogdGhpcy5fY29udGV4dC5tb3ZlVG8oeCwgeSk7IGJyZWFrO1xuICAgICAgY2FzZSAxOiB0aGlzLl9wb2ludCA9IDI7IC8vIHByb2NlZWRcbiAgICAgIGRlZmF1bHQ6IHRoaXMuX2NvbnRleHQubGluZVRvKHgsIHkpOyBicmVhaztcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGNvbnRleHQpIHtcbiAgcmV0dXJuIG5ldyBMaW5lYXIoY29udGV4dCk7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHgocCkge1xuICByZXR1cm4gcFswXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHkocCkge1xuICByZXR1cm4gcFsxXTtcbn1cbiIsICJpbXBvcnQge3BhdGh9IGZyb20gXCJkMy1wYXRoXCI7XG5pbXBvcnQgYXJyYXkgZnJvbSBcIi4vYXJyYXkuanNcIjtcbmltcG9ydCBjb25zdGFudCBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuaW1wb3J0IGN1cnZlTGluZWFyIGZyb20gXCIuL2N1cnZlL2xpbmVhci5qc1wiO1xuaW1wb3J0IHt4IGFzIHBvaW50WCwgeSBhcyBwb2ludFl9IGZyb20gXCIuL3BvaW50LmpzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHgsIHkpIHtcbiAgdmFyIGRlZmluZWQgPSBjb25zdGFudCh0cnVlKSxcbiAgICAgIGNvbnRleHQgPSBudWxsLFxuICAgICAgY3VydmUgPSBjdXJ2ZUxpbmVhcixcbiAgICAgIG91dHB1dCA9IG51bGw7XG5cbiAgeCA9IHR5cGVvZiB4ID09PSBcImZ1bmN0aW9uXCIgPyB4IDogKHggPT09IHVuZGVmaW5lZCkgPyBwb2ludFggOiBjb25zdGFudCh4KTtcbiAgeSA9IHR5cGVvZiB5ID09PSBcImZ1bmN0aW9uXCIgPyB5IDogKHkgPT09IHVuZGVmaW5lZCkgPyBwb2ludFkgOiBjb25zdGFudCh5KTtcblxuICBmdW5jdGlvbiBsaW5lKGRhdGEpIHtcbiAgICB2YXIgaSxcbiAgICAgICAgbiA9IChkYXRhID0gYXJyYXkoZGF0YSkpLmxlbmd0aCxcbiAgICAgICAgZCxcbiAgICAgICAgZGVmaW5lZDAgPSBmYWxzZSxcbiAgICAgICAgYnVmZmVyO1xuXG4gICAgaWYgKGNvbnRleHQgPT0gbnVsbCkgb3V0cHV0ID0gY3VydmUoYnVmZmVyID0gcGF0aCgpKTtcblxuICAgIGZvciAoaSA9IDA7IGkgPD0gbjsgKytpKSB7XG4gICAgICBpZiAoIShpIDwgbiAmJiBkZWZpbmVkKGQgPSBkYXRhW2ldLCBpLCBkYXRhKSkgPT09IGRlZmluZWQwKSB7XG4gICAgICAgIGlmIChkZWZpbmVkMCA9ICFkZWZpbmVkMCkgb3V0cHV0LmxpbmVTdGFydCgpO1xuICAgICAgICBlbHNlIG91dHB1dC5saW5lRW5kKCk7XG4gICAgICB9XG4gICAgICBpZiAoZGVmaW5lZDApIG91dHB1dC5wb2ludCgreChkLCBpLCBkYXRhKSwgK3koZCwgaSwgZGF0YSkpO1xuICAgIH1cblxuICAgIGlmIChidWZmZXIpIHJldHVybiBvdXRwdXQgPSBudWxsLCBidWZmZXIgKyBcIlwiIHx8IG51bGw7XG4gIH1cblxuICBsaW5lLnggPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoeCA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoK18pLCBsaW5lKSA6IHg7XG4gIH07XG5cbiAgbGluZS55ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHkgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCtfKSwgbGluZSkgOiB5O1xuICB9O1xuXG4gIGxpbmUuZGVmaW5lZCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChkZWZpbmVkID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCghIV8pLCBsaW5lKSA6IGRlZmluZWQ7XG4gIH07XG5cbiAgbGluZS5jdXJ2ZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChjdXJ2ZSA9IF8sIGNvbnRleHQgIT0gbnVsbCAmJiAob3V0cHV0ID0gY3VydmUoY29udGV4dCkpLCBsaW5lKSA6IGN1cnZlO1xuICB9O1xuXG4gIGxpbmUuY29udGV4dCA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IChfID09IG51bGwgPyBjb250ZXh0ID0gb3V0cHV0ID0gbnVsbCA6IG91dHB1dCA9IGN1cnZlKGNvbnRleHQgPSBfKSwgbGluZSkgOiBjb250ZXh0O1xuICB9O1xuXG4gIHJldHVybiBsaW5lO1xufVxuIiwgImltcG9ydCBjdXJ2ZUxpbmVhciBmcm9tIFwiLi9saW5lYXIuanNcIjtcblxuZXhwb3J0IHZhciBjdXJ2ZVJhZGlhbExpbmVhciA9IGN1cnZlUmFkaWFsKGN1cnZlTGluZWFyKTtcblxuZnVuY3Rpb24gUmFkaWFsKGN1cnZlKSB7XG4gIHRoaXMuX2N1cnZlID0gY3VydmU7XG59XG5cblJhZGlhbC5wcm90b3R5cGUgPSB7XG4gIGFyZWFTdGFydDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5fY3VydmUuYXJlYVN0YXJ0KCk7XG4gIH0sXG4gIGFyZWFFbmQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuX2N1cnZlLmFyZWFFbmQoKTtcbiAgfSxcbiAgbGluZVN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl9jdXJ2ZS5saW5lU3RhcnQoKTtcbiAgfSxcbiAgbGluZUVuZDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5fY3VydmUubGluZUVuZCgpO1xuICB9LFxuICBwb2ludDogZnVuY3Rpb24oYSwgcikge1xuICAgIHRoaXMuX2N1cnZlLnBvaW50KHIgKiBNYXRoLnNpbihhKSwgciAqIC1NYXRoLmNvcyhhKSk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGN1cnZlUmFkaWFsKGN1cnZlKSB7XG5cbiAgZnVuY3Rpb24gcmFkaWFsKGNvbnRleHQpIHtcbiAgICByZXR1cm4gbmV3IFJhZGlhbChjdXJ2ZShjb250ZXh0KSk7XG4gIH1cblxuICByYWRpYWwuX2N1cnZlID0gY3VydmU7XG5cbiAgcmV0dXJuIHJhZGlhbDtcbn1cbiIsICJpbXBvcnQgY3VydmVSYWRpYWwsIHtjdXJ2ZVJhZGlhbExpbmVhcn0gZnJvbSBcIi4vY3VydmUvcmFkaWFsLmpzXCI7XG5pbXBvcnQgbGluZSBmcm9tIFwiLi9saW5lLmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBsaW5lUmFkaWFsKGwpIHtcbiAgdmFyIGMgPSBsLmN1cnZlO1xuXG4gIGwuYW5nbGUgPSBsLngsIGRlbGV0ZSBsLng7XG4gIGwucmFkaXVzID0gbC55LCBkZWxldGUgbC55O1xuXG4gIGwuY3VydmUgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyBjKGN1cnZlUmFkaWFsKF8pKSA6IGMoKS5fY3VydmU7XG4gIH07XG5cbiAgcmV0dXJuIGw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gbGluZVJhZGlhbChsaW5lKCkuY3VydmUoY3VydmVSYWRpYWxMaW5lYXIpKTtcbn1cbiIsICJpbXBvcnQge3BhdGh9IGZyb20gXCJkMy1wYXRoXCI7XG5pbXBvcnQge3NsaWNlfSBmcm9tIFwiLi4vYXJyYXkuanNcIjtcbmltcG9ydCBjb25zdGFudCBmcm9tIFwiLi4vY29uc3RhbnQuanNcIjtcbmltcG9ydCB7eCBhcyBwb2ludFgsIHkgYXMgcG9pbnRZfSBmcm9tIFwiLi4vcG9pbnQuanNcIjtcbmltcG9ydCBwb2ludFJhZGlhbCBmcm9tIFwiLi4vcG9pbnRSYWRpYWwuanNcIjtcblxuZnVuY3Rpb24gbGlua1NvdXJjZShkKSB7XG4gIHJldHVybiBkLnNvdXJjZTtcbn1cblxuZnVuY3Rpb24gbGlua1RhcmdldChkKSB7XG4gIHJldHVybiBkLnRhcmdldDtcbn1cblxuZnVuY3Rpb24gbGluayhjdXJ2ZSkge1xuICB2YXIgc291cmNlID0gbGlua1NvdXJjZSxcbiAgICAgIHRhcmdldCA9IGxpbmtUYXJnZXQsXG4gICAgICB4ID0gcG9pbnRYLFxuICAgICAgeSA9IHBvaW50WSxcbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gIGZ1bmN0aW9uIGxpbmsoKSB7XG4gICAgdmFyIGJ1ZmZlciwgYXJndiA9IHNsaWNlLmNhbGwoYXJndW1lbnRzKSwgcyA9IHNvdXJjZS5hcHBseSh0aGlzLCBhcmd2KSwgdCA9IHRhcmdldC5hcHBseSh0aGlzLCBhcmd2KTtcbiAgICBpZiAoIWNvbnRleHQpIGNvbnRleHQgPSBidWZmZXIgPSBwYXRoKCk7XG4gICAgY3VydmUoY29udGV4dCwgK3guYXBwbHkodGhpcywgKGFyZ3ZbMF0gPSBzLCBhcmd2KSksICt5LmFwcGx5KHRoaXMsIGFyZ3YpLCAreC5hcHBseSh0aGlzLCAoYXJndlswXSA9IHQsIGFyZ3YpKSwgK3kuYXBwbHkodGhpcywgYXJndikpO1xuICAgIGlmIChidWZmZXIpIHJldHVybiBjb250ZXh0ID0gbnVsbCwgYnVmZmVyICsgXCJcIiB8fCBudWxsO1xuICB9XG5cbiAgbGluay5zb3VyY2UgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoc291cmNlID0gXywgbGluaykgOiBzb3VyY2U7XG4gIH07XG5cbiAgbGluay50YXJnZXQgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAodGFyZ2V0ID0gXywgbGluaykgOiB0YXJnZXQ7XG4gIH07XG5cbiAgbGluay54ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHggPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCtfKSwgbGluaykgOiB4O1xuICB9O1xuXG4gIGxpbmsueSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh5ID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCgrXyksIGxpbmspIDogeTtcbiAgfTtcblxuICBsaW5rLmNvbnRleHQgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoKGNvbnRleHQgPSBfID09IG51bGwgPyBudWxsIDogXyksIGxpbmspIDogY29udGV4dDtcbiAgfTtcblxuICByZXR1cm4gbGluaztcbn1cblxuZnVuY3Rpb24gY3VydmVIb3Jpem9udGFsKGNvbnRleHQsIHgwLCB5MCwgeDEsIHkxKSB7XG4gIGNvbnRleHQubW92ZVRvKHgwLCB5MCk7XG4gIGNvbnRleHQuYmV6aWVyQ3VydmVUbyh4MCA9ICh4MCArIHgxKSAvIDIsIHkwLCB4MCwgeTEsIHgxLCB5MSk7XG59XG5cbmZ1bmN0aW9uIGN1cnZlVmVydGljYWwoY29udGV4dCwgeDAsIHkwLCB4MSwgeTEpIHtcbiAgY29udGV4dC5tb3ZlVG8oeDAsIHkwKTtcbiAgY29udGV4dC5iZXppZXJDdXJ2ZVRvKHgwLCB5MCA9ICh5MCArIHkxKSAvIDIsIHgxLCB5MCwgeDEsIHkxKTtcbn1cblxuZnVuY3Rpb24gY3VydmVSYWRpYWwoY29udGV4dCwgeDAsIHkwLCB4MSwgeTEpIHtcbiAgdmFyIHAwID0gcG9pbnRSYWRpYWwoeDAsIHkwKSxcbiAgICAgIHAxID0gcG9pbnRSYWRpYWwoeDAsIHkwID0gKHkwICsgeTEpIC8gMiksXG4gICAgICBwMiA9IHBvaW50UmFkaWFsKHgxLCB5MCksXG4gICAgICBwMyA9IHBvaW50UmFkaWFsKHgxLCB5MSk7XG4gIGNvbnRleHQubW92ZVRvKHAwWzBdLCBwMFsxXSk7XG4gIGNvbnRleHQuYmV6aWVyQ3VydmVUbyhwMVswXSwgcDFbMV0sIHAyWzBdLCBwMlsxXSwgcDNbMF0sIHAzWzFdKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmtIb3Jpem9udGFsKCkge1xuICByZXR1cm4gbGluayhjdXJ2ZUhvcml6b250YWwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGlua1ZlcnRpY2FsKCkge1xuICByZXR1cm4gbGluayhjdXJ2ZVZlcnRpY2FsKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmtSYWRpYWwoKSB7XG4gIHZhciBsID0gbGluayhjdXJ2ZVJhZGlhbCk7XG4gIGwuYW5nbGUgPSBsLngsIGRlbGV0ZSBsLng7XG4gIGwucmFkaXVzID0gbC55LCBkZWxldGUgbC55O1xuICByZXR1cm4gbDtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gcG9pbnQodGhhdCwgeCwgeSkge1xuICB0aGF0Ll9jb250ZXh0LmJlemllckN1cnZlVG8oXG4gICAgKDIgKiB0aGF0Ll94MCArIHRoYXQuX3gxKSAvIDMsXG4gICAgKDIgKiB0aGF0Ll95MCArIHRoYXQuX3kxKSAvIDMsXG4gICAgKHRoYXQuX3gwICsgMiAqIHRoYXQuX3gxKSAvIDMsXG4gICAgKHRoYXQuX3kwICsgMiAqIHRoYXQuX3kxKSAvIDMsXG4gICAgKHRoYXQuX3gwICsgNCAqIHRoYXQuX3gxICsgeCkgLyA2LFxuICAgICh0aGF0Ll95MCArIDQgKiB0aGF0Ll95MSArIHkpIC8gNlxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQmFzaXMoY29udGV4dCkge1xuICB0aGlzLl9jb250ZXh0ID0gY29udGV4dDtcbn1cblxuQmFzaXMucHJvdG90eXBlID0ge1xuICBhcmVhU3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuX2xpbmUgPSAwO1xuICB9LFxuICBhcmVhRW5kOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLl9saW5lID0gTmFOO1xuICB9LFxuICBsaW5lU3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuX3gwID0gdGhpcy5feDEgPVxuICAgIHRoaXMuX3kwID0gdGhpcy5feTEgPSBOYU47XG4gICAgdGhpcy5fcG9pbnQgPSAwO1xuICB9LFxuICBsaW5lRW5kOiBmdW5jdGlvbigpIHtcbiAgICBzd2l0Y2ggKHRoaXMuX3BvaW50KSB7XG4gICAgICBjYXNlIDM6IHBvaW50KHRoaXMsIHRoaXMuX3gxLCB0aGlzLl95MSk7IC8vIHByb2NlZWRcbiAgICAgIGNhc2UgMjogdGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDEsIHRoaXMuX3kxKTsgYnJlYWs7XG4gICAgfVxuICAgIGlmICh0aGlzLl9saW5lIHx8ICh0aGlzLl9saW5lICE9PSAwICYmIHRoaXMuX3BvaW50ID09PSAxKSkgdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTtcbiAgICB0aGlzLl9saW5lID0gMSAtIHRoaXMuX2xpbmU7XG4gIH0sXG4gIHBvaW50OiBmdW5jdGlvbih4LCB5KSB7XG4gICAgeCA9ICt4LCB5ID0gK3k7XG4gICAgc3dpdGNoICh0aGlzLl9wb2ludCkge1xuICAgICAgY2FzZSAwOiB0aGlzLl9wb2ludCA9IDE7IHRoaXMuX2xpbmUgPyB0aGlzLl9jb250ZXh0LmxpbmVUbyh4LCB5KSA6IHRoaXMuX2NvbnRleHQubW92ZVRvKHgsIHkpOyBicmVhaztcbiAgICAgIGNhc2UgMTogdGhpcy5fcG9pbnQgPSAyOyBicmVhaztcbiAgICAgIGNhc2UgMjogdGhpcy5fcG9pbnQgPSAzOyB0aGlzLl9jb250ZXh0LmxpbmVUbygoNSAqIHRoaXMuX3gwICsgdGhpcy5feDEpIC8gNiwgKDUgKiB0aGlzLl95MCArIHRoaXMuX3kxKSAvIDYpOyAvLyBwcm9jZWVkXG4gICAgICBkZWZhdWx0OiBwb2ludCh0aGlzLCB4LCB5KTsgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMuX3gwID0gdGhpcy5feDEsIHRoaXMuX3gxID0geDtcbiAgICB0aGlzLl95MCA9IHRoaXMuX3kxLCB0aGlzLl95MSA9IHk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGNvbnRleHQpIHtcbiAgcmV0dXJuIG5ldyBCYXNpcyhjb250ZXh0KTtcbn1cbiIsICJpbXBvcnQge0Jhc2lzfSBmcm9tIFwiLi9iYXNpcy5qc1wiO1xuXG5mdW5jdGlvbiBCdW5kbGUoY29udGV4dCwgYmV0YSkge1xuICB0aGlzLl9iYXNpcyA9IG5ldyBCYXNpcyhjb250ZXh0KTtcbiAgdGhpcy5fYmV0YSA9IGJldGE7XG59XG5cbkJ1bmRsZS5wcm90b3R5cGUgPSB7XG4gIGxpbmVTdGFydDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5feCA9IFtdO1xuICAgIHRoaXMuX3kgPSBbXTtcbiAgICB0aGlzLl9iYXNpcy5saW5lU3RhcnQoKTtcbiAgfSxcbiAgbGluZUVuZDogZnVuY3Rpb24oKSB7XG4gICAgdmFyIHggPSB0aGlzLl94LFxuICAgICAgICB5ID0gdGhpcy5feSxcbiAgICAgICAgaiA9IHgubGVuZ3RoIC0gMTtcblxuICAgIGlmIChqID4gMCkge1xuICAgICAgdmFyIHgwID0geFswXSxcbiAgICAgICAgICB5MCA9IHlbMF0sXG4gICAgICAgICAgZHggPSB4W2pdIC0geDAsXG4gICAgICAgICAgZHkgPSB5W2pdIC0geTAsXG4gICAgICAgICAgaSA9IC0xLFxuICAgICAgICAgIHQ7XG5cbiAgICAgIHdoaWxlICgrK2kgPD0gaikge1xuICAgICAgICB0ID0gaSAvIGo7XG4gICAgICAgIHRoaXMuX2Jhc2lzLnBvaW50KFxuICAgICAgICAgIHRoaXMuX2JldGEgKiB4W2ldICsgKDEgLSB0aGlzLl9iZXRhKSAqICh4MCArIHQgKiBkeCksXG4gICAgICAgICAgdGhpcy5fYmV0YSAqIHlbaV0gKyAoMSAtIHRoaXMuX2JldGEpICogKHkwICsgdCAqIGR5KVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX3ggPSB0aGlzLl95ID0gbnVsbDtcbiAgICB0aGlzLl9iYXNpcy5saW5lRW5kKCk7XG4gIH0sXG4gIHBvaW50OiBmdW5jdGlvbih4LCB5KSB7XG4gICAgdGhpcy5feC5wdXNoKCt4KTtcbiAgICB0aGlzLl95LnB1c2goK3kpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCAoZnVuY3Rpb24gY3VzdG9tKGJldGEpIHtcblxuICBmdW5jdGlvbiBidW5kbGUoY29udGV4dCkge1xuICAgIHJldHVybiBiZXRhID09PSAxID8gbmV3IEJhc2lzKGNvbnRleHQpIDogbmV3IEJ1bmRsZShjb250ZXh0LCBiZXRhKTtcbiAgfVxuXG4gIGJ1bmRsZS5iZXRhID0gZnVuY3Rpb24oYmV0YSkge1xuICAgIHJldHVybiBjdXN0b20oK2JldGEpO1xuICB9O1xuXG4gIHJldHVybiBidW5kbGU7XG59KSgwLjg1KTtcbiIsICJleHBvcnQgZGVmYXVsdCB4ID0+ICgpID0+IHg7XG4iLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gWm9vbUV2ZW50KHR5cGUsIHtcbiAgc291cmNlRXZlbnQsXG4gIHRhcmdldCxcbiAgdHJhbnNmb3JtLFxuICBkaXNwYXRjaFxufSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0aGlzLCB7XG4gICAgdHlwZToge3ZhbHVlOiB0eXBlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9LFxuICAgIHNvdXJjZUV2ZW50OiB7dmFsdWU6IHNvdXJjZUV2ZW50LCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWV9LFxuICAgIHRhcmdldDoge3ZhbHVlOiB0YXJnZXQsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0sXG4gICAgdHJhbnNmb3JtOiB7dmFsdWU6IHRyYW5zZm9ybSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlfSxcbiAgICBfOiB7dmFsdWU6IGRpc3BhdGNofVxuICB9KTtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gVHJhbnNmb3JtKGssIHgsIHkpIHtcbiAgdGhpcy5rID0gaztcbiAgdGhpcy54ID0geDtcbiAgdGhpcy55ID0geTtcbn1cblxuVHJhbnNmb3JtLnByb3RvdHlwZSA9IHtcbiAgY29uc3RydWN0b3I6IFRyYW5zZm9ybSxcbiAgc2NhbGU6IGZ1bmN0aW9uKGspIHtcbiAgICByZXR1cm4gayA9PT0gMSA/IHRoaXMgOiBuZXcgVHJhbnNmb3JtKHRoaXMuayAqIGssIHRoaXMueCwgdGhpcy55KTtcbiAgfSxcbiAgdHJhbnNsYXRlOiBmdW5jdGlvbih4LCB5KSB7XG4gICAgcmV0dXJuIHggPT09IDAgJiB5ID09PSAwID8gdGhpcyA6IG5ldyBUcmFuc2Zvcm0odGhpcy5rLCB0aGlzLnggKyB0aGlzLmsgKiB4LCB0aGlzLnkgKyB0aGlzLmsgKiB5KTtcbiAgfSxcbiAgYXBwbHk6IGZ1bmN0aW9uKHBvaW50KSB7XG4gICAgcmV0dXJuIFtwb2ludFswXSAqIHRoaXMuayArIHRoaXMueCwgcG9pbnRbMV0gKiB0aGlzLmsgKyB0aGlzLnldO1xuICB9LFxuICBhcHBseVg6IGZ1bmN0aW9uKHgpIHtcbiAgICByZXR1cm4geCAqIHRoaXMuayArIHRoaXMueDtcbiAgfSxcbiAgYXBwbHlZOiBmdW5jdGlvbih5KSB7XG4gICAgcmV0dXJuIHkgKiB0aGlzLmsgKyB0aGlzLnk7XG4gIH0sXG4gIGludmVydDogZnVuY3Rpb24obG9jYXRpb24pIHtcbiAgICByZXR1cm4gWyhsb2NhdGlvblswXSAtIHRoaXMueCkgLyB0aGlzLmssIChsb2NhdGlvblsxXSAtIHRoaXMueSkgLyB0aGlzLmtdO1xuICB9LFxuICBpbnZlcnRYOiBmdW5jdGlvbih4KSB7XG4gICAgcmV0dXJuICh4IC0gdGhpcy54KSAvIHRoaXMuaztcbiAgfSxcbiAgaW52ZXJ0WTogZnVuY3Rpb24oeSkge1xuICAgIHJldHVybiAoeSAtIHRoaXMueSkgLyB0aGlzLms7XG4gIH0sXG4gIHJlc2NhbGVYOiBmdW5jdGlvbih4KSB7XG4gICAgcmV0dXJuIHguY29weSgpLmRvbWFpbih4LnJhbmdlKCkubWFwKHRoaXMuaW52ZXJ0WCwgdGhpcykubWFwKHguaW52ZXJ0LCB4KSk7XG4gIH0sXG4gIHJlc2NhbGVZOiBmdW5jdGlvbih5KSB7XG4gICAgcmV0dXJuIHkuY29weSgpLmRvbWFpbih5LnJhbmdlKCkubWFwKHRoaXMuaW52ZXJ0WSwgdGhpcykubWFwKHkuaW52ZXJ0LCB5KSk7XG4gIH0sXG4gIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gXCJ0cmFuc2xhdGUoXCIgKyB0aGlzLnggKyBcIixcIiArIHRoaXMueSArIFwiKSBzY2FsZShcIiArIHRoaXMuayArIFwiKVwiO1xuICB9XG59O1xuXG5leHBvcnQgdmFyIGlkZW50aXR5ID0gbmV3IFRyYW5zZm9ybSgxLCAwLCAwKTtcblxudHJhbnNmb3JtLnByb3RvdHlwZSA9IFRyYW5zZm9ybS5wcm90b3R5cGU7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRyYW5zZm9ybShub2RlKSB7XG4gIHdoaWxlICghbm9kZS5fX3pvb20pIGlmICghKG5vZGUgPSBub2RlLnBhcmVudE5vZGUpKSByZXR1cm4gaWRlbnRpdHk7XG4gIHJldHVybiBub2RlLl9fem9vbTtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gbm9wcm9wYWdhdGlvbihldmVudCkge1xuICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oZXZlbnQpIHtcbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG59XG4iLCAiaW1wb3J0IHtkaXNwYXRjaH0gZnJvbSBcImQzLWRpc3BhdGNoXCI7XG5pbXBvcnQge2RyYWdEaXNhYmxlLCBkcmFnRW5hYmxlfSBmcm9tIFwiZDMtZHJhZ1wiO1xuaW1wb3J0IHtpbnRlcnBvbGF0ZVpvb219IGZyb20gXCJkMy1pbnRlcnBvbGF0ZVwiO1xuaW1wb3J0IHtzZWxlY3QsIHBvaW50ZXJ9IGZyb20gXCJkMy1zZWxlY3Rpb25cIjtcbmltcG9ydCB7aW50ZXJydXB0fSBmcm9tIFwiZDMtdHJhbnNpdGlvblwiO1xuaW1wb3J0IGNvbnN0YW50IGZyb20gXCIuL2NvbnN0YW50LmpzXCI7XG5pbXBvcnQgWm9vbUV2ZW50IGZyb20gXCIuL2V2ZW50LmpzXCI7XG5pbXBvcnQge1RyYW5zZm9ybSwgaWRlbnRpdHl9IGZyb20gXCIuL3RyYW5zZm9ybS5qc1wiO1xuaW1wb3J0IG5vZXZlbnQsIHtub3Byb3BhZ2F0aW9ufSBmcm9tIFwiLi9ub2V2ZW50LmpzXCI7XG5cbi8vIElnbm9yZSByaWdodC1jbGljaywgc2luY2UgdGhhdCBzaG91bGQgb3BlbiB0aGUgY29udGV4dCBtZW51LlxuLy8gZXhjZXB0IGZvciBwaW5jaC10by16b29tLCB3aGljaCBpcyBzZW50IGFzIGEgd2hlZWwrY3RybEtleSBldmVudFxuZnVuY3Rpb24gZGVmYXVsdEZpbHRlcihldmVudCkge1xuICByZXR1cm4gKCFldmVudC5jdHJsS2V5IHx8IGV2ZW50LnR5cGUgPT09ICd3aGVlbCcpICYmICFldmVudC5idXR0b247XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRFeHRlbnQoKSB7XG4gIHZhciBlID0gdGhpcztcbiAgaWYgKGUgaW5zdGFuY2VvZiBTVkdFbGVtZW50KSB7XG4gICAgZSA9IGUub3duZXJTVkdFbGVtZW50IHx8IGU7XG4gICAgaWYgKGUuaGFzQXR0cmlidXRlKFwidmlld0JveFwiKSkge1xuICAgICAgZSA9IGUudmlld0JveC5iYXNlVmFsO1xuICAgICAgcmV0dXJuIFtbZS54LCBlLnldLCBbZS54ICsgZS53aWR0aCwgZS55ICsgZS5oZWlnaHRdXTtcbiAgICB9XG4gICAgcmV0dXJuIFtbMCwgMF0sIFtlLndpZHRoLmJhc2VWYWwudmFsdWUsIGUuaGVpZ2h0LmJhc2VWYWwudmFsdWVdXTtcbiAgfVxuICByZXR1cm4gW1swLCAwXSwgW2UuY2xpZW50V2lkdGgsIGUuY2xpZW50SGVpZ2h0XV07XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRUcmFuc2Zvcm0oKSB7XG4gIHJldHVybiB0aGlzLl9fem9vbSB8fCBpZGVudGl0eTtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdFdoZWVsRGVsdGEoZXZlbnQpIHtcbiAgcmV0dXJuIC1ldmVudC5kZWx0YVkgKiAoZXZlbnQuZGVsdGFNb2RlID09PSAxID8gMC4wNSA6IGV2ZW50LmRlbHRhTW9kZSA/IDEgOiAwLjAwMikgKiAoZXZlbnQuY3RybEtleSA/IDEwIDogMSk7XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRUb3VjaGFibGUoKSB7XG4gIHJldHVybiBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMgfHwgKFwib250b3VjaHN0YXJ0XCIgaW4gdGhpcyk7XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRDb25zdHJhaW4odHJhbnNmb3JtLCBleHRlbnQsIHRyYW5zbGF0ZUV4dGVudCkge1xuICB2YXIgZHgwID0gdHJhbnNmb3JtLmludmVydFgoZXh0ZW50WzBdWzBdKSAtIHRyYW5zbGF0ZUV4dGVudFswXVswXSxcbiAgICAgIGR4MSA9IHRyYW5zZm9ybS5pbnZlcnRYKGV4dGVudFsxXVswXSkgLSB0cmFuc2xhdGVFeHRlbnRbMV1bMF0sXG4gICAgICBkeTAgPSB0cmFuc2Zvcm0uaW52ZXJ0WShleHRlbnRbMF1bMV0pIC0gdHJhbnNsYXRlRXh0ZW50WzBdWzFdLFxuICAgICAgZHkxID0gdHJhbnNmb3JtLmludmVydFkoZXh0ZW50WzFdWzFdKSAtIHRyYW5zbGF0ZUV4dGVudFsxXVsxXTtcbiAgcmV0dXJuIHRyYW5zZm9ybS50cmFuc2xhdGUoXG4gICAgZHgxID4gZHgwID8gKGR4MCArIGR4MSkgLyAyIDogTWF0aC5taW4oMCwgZHgwKSB8fCBNYXRoLm1heCgwLCBkeDEpLFxuICAgIGR5MSA+IGR5MCA/IChkeTAgKyBkeTEpIC8gMiA6IE1hdGgubWluKDAsIGR5MCkgfHwgTWF0aC5tYXgoMCwgZHkxKVxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpIHtcbiAgdmFyIGZpbHRlciA9IGRlZmF1bHRGaWx0ZXIsXG4gICAgICBleHRlbnQgPSBkZWZhdWx0RXh0ZW50LFxuICAgICAgY29uc3RyYWluID0gZGVmYXVsdENvbnN0cmFpbixcbiAgICAgIHdoZWVsRGVsdGEgPSBkZWZhdWx0V2hlZWxEZWx0YSxcbiAgICAgIHRvdWNoYWJsZSA9IGRlZmF1bHRUb3VjaGFibGUsXG4gICAgICBzY2FsZUV4dGVudCA9IFswLCBJbmZpbml0eV0sXG4gICAgICB0cmFuc2xhdGVFeHRlbnQgPSBbWy1JbmZpbml0eSwgLUluZmluaXR5XSwgW0luZmluaXR5LCBJbmZpbml0eV1dLFxuICAgICAgZHVyYXRpb24gPSAyNTAsXG4gICAgICBpbnRlcnBvbGF0ZSA9IGludGVycG9sYXRlWm9vbSxcbiAgICAgIGxpc3RlbmVycyA9IGRpc3BhdGNoKFwic3RhcnRcIiwgXCJ6b29tXCIsIFwiZW5kXCIpLFxuICAgICAgdG91Y2hzdGFydGluZyxcbiAgICAgIHRvdWNoZmlyc3QsXG4gICAgICB0b3VjaGVuZGluZyxcbiAgICAgIHRvdWNoRGVsYXkgPSA1MDAsXG4gICAgICB3aGVlbERlbGF5ID0gMTUwLFxuICAgICAgY2xpY2tEaXN0YW5jZTIgPSAwLFxuICAgICAgdGFwRGlzdGFuY2UgPSAxMDtcblxuICBmdW5jdGlvbiB6b29tKHNlbGVjdGlvbikge1xuICAgIHNlbGVjdGlvblxuICAgICAgICAucHJvcGVydHkoXCJfX3pvb21cIiwgZGVmYXVsdFRyYW5zZm9ybSlcbiAgICAgICAgLm9uKFwid2hlZWwuem9vbVwiLCB3aGVlbGVkKVxuICAgICAgICAub24oXCJtb3VzZWRvd24uem9vbVwiLCBtb3VzZWRvd25lZClcbiAgICAgICAgLm9uKFwiZGJsY2xpY2suem9vbVwiLCBkYmxjbGlja2VkKVxuICAgICAgLmZpbHRlcih0b3VjaGFibGUpXG4gICAgICAgIC5vbihcInRvdWNoc3RhcnQuem9vbVwiLCB0b3VjaHN0YXJ0ZWQpXG4gICAgICAgIC5vbihcInRvdWNobW92ZS56b29tXCIsIHRvdWNobW92ZWQpXG4gICAgICAgIC5vbihcInRvdWNoZW5kLnpvb20gdG91Y2hjYW5jZWwuem9vbVwiLCB0b3VjaGVuZGVkKVxuICAgICAgICAuc3R5bGUoXCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3JcIiwgXCJyZ2JhKDAsMCwwLDApXCIpO1xuICB9XG5cbiAgem9vbS50cmFuc2Zvcm0gPSBmdW5jdGlvbihjb2xsZWN0aW9uLCB0cmFuc2Zvcm0sIHBvaW50LCBldmVudCkge1xuICAgIHZhciBzZWxlY3Rpb24gPSBjb2xsZWN0aW9uLnNlbGVjdGlvbiA/IGNvbGxlY3Rpb24uc2VsZWN0aW9uKCkgOiBjb2xsZWN0aW9uO1xuICAgIHNlbGVjdGlvbi5wcm9wZXJ0eShcIl9fem9vbVwiLCBkZWZhdWx0VHJhbnNmb3JtKTtcbiAgICBpZiAoY29sbGVjdGlvbiAhPT0gc2VsZWN0aW9uKSB7XG4gICAgICBzY2hlZHVsZShjb2xsZWN0aW9uLCB0cmFuc2Zvcm0sIHBvaW50LCBldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlbGVjdGlvbi5pbnRlcnJ1cHQoKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICBnZXN0dXJlKHRoaXMsIGFyZ3VtZW50cylcbiAgICAgICAgICAuZXZlbnQoZXZlbnQpXG4gICAgICAgICAgLnN0YXJ0KClcbiAgICAgICAgICAuem9vbShudWxsLCB0eXBlb2YgdHJhbnNmb3JtID09PSBcImZ1bmN0aW9uXCIgPyB0cmFuc2Zvcm0uYXBwbHkodGhpcywgYXJndW1lbnRzKSA6IHRyYW5zZm9ybSlcbiAgICAgICAgICAuZW5kKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgem9vbS5zY2FsZUJ5ID0gZnVuY3Rpb24oc2VsZWN0aW9uLCBrLCBwLCBldmVudCkge1xuICAgIHpvb20uc2NhbGVUbyhzZWxlY3Rpb24sIGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGswID0gdGhpcy5fX3pvb20uayxcbiAgICAgICAgICBrMSA9IHR5cGVvZiBrID09PSBcImZ1bmN0aW9uXCIgPyBrLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgOiBrO1xuICAgICAgcmV0dXJuIGswICogazE7XG4gICAgfSwgcCwgZXZlbnQpO1xuICB9O1xuXG4gIHpvb20uc2NhbGVUbyA9IGZ1bmN0aW9uKHNlbGVjdGlvbiwgaywgcCwgZXZlbnQpIHtcbiAgICB6b29tLnRyYW5zZm9ybShzZWxlY3Rpb24sIGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGUgPSBleHRlbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKSxcbiAgICAgICAgICB0MCA9IHRoaXMuX196b29tLFxuICAgICAgICAgIHAwID0gcCA9PSBudWxsID8gY2VudHJvaWQoZSkgOiB0eXBlb2YgcCA9PT0gXCJmdW5jdGlvblwiID8gcC5hcHBseSh0aGlzLCBhcmd1bWVudHMpIDogcCxcbiAgICAgICAgICBwMSA9IHQwLmludmVydChwMCksXG4gICAgICAgICAgazEgPSB0eXBlb2YgayA9PT0gXCJmdW5jdGlvblwiID8gay5hcHBseSh0aGlzLCBhcmd1bWVudHMpIDogaztcbiAgICAgIHJldHVybiBjb25zdHJhaW4odHJhbnNsYXRlKHNjYWxlKHQwLCBrMSksIHAwLCBwMSksIGUsIHRyYW5zbGF0ZUV4dGVudCk7XG4gICAgfSwgcCwgZXZlbnQpO1xuICB9O1xuXG4gIHpvb20udHJhbnNsYXRlQnkgPSBmdW5jdGlvbihzZWxlY3Rpb24sIHgsIHksIGV2ZW50KSB7XG4gICAgem9vbS50cmFuc2Zvcm0oc2VsZWN0aW9uLCBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBjb25zdHJhaW4odGhpcy5fX3pvb20udHJhbnNsYXRlKFxuICAgICAgICB0eXBlb2YgeCA9PT0gXCJmdW5jdGlvblwiID8geC5hcHBseSh0aGlzLCBhcmd1bWVudHMpIDogeCxcbiAgICAgICAgdHlwZW9mIHkgPT09IFwiZnVuY3Rpb25cIiA/IHkuYXBwbHkodGhpcywgYXJndW1lbnRzKSA6IHlcbiAgICAgICksIGV4dGVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpLCB0cmFuc2xhdGVFeHRlbnQpO1xuICAgIH0sIG51bGwsIGV2ZW50KTtcbiAgfTtcblxuICB6b29tLnRyYW5zbGF0ZVRvID0gZnVuY3Rpb24oc2VsZWN0aW9uLCB4LCB5LCBwLCBldmVudCkge1xuICAgIHpvb20udHJhbnNmb3JtKHNlbGVjdGlvbiwgZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgZSA9IGV4dGVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpLFxuICAgICAgICAgIHQgPSB0aGlzLl9fem9vbSxcbiAgICAgICAgICBwMCA9IHAgPT0gbnVsbCA/IGNlbnRyb2lkKGUpIDogdHlwZW9mIHAgPT09IFwiZnVuY3Rpb25cIiA/IHAuYXBwbHkodGhpcywgYXJndW1lbnRzKSA6IHA7XG4gICAgICByZXR1cm4gY29uc3RyYWluKGlkZW50aXR5LnRyYW5zbGF0ZShwMFswXSwgcDBbMV0pLnNjYWxlKHQuaykudHJhbnNsYXRlKFxuICAgICAgICB0eXBlb2YgeCA9PT0gXCJmdW5jdGlvblwiID8gLXguYXBwbHkodGhpcywgYXJndW1lbnRzKSA6IC14LFxuICAgICAgICB0eXBlb2YgeSA9PT0gXCJmdW5jdGlvblwiID8gLXkuYXBwbHkodGhpcywgYXJndW1lbnRzKSA6IC15XG4gICAgICApLCBlLCB0cmFuc2xhdGVFeHRlbnQpO1xuICAgIH0sIHAsIGV2ZW50KTtcbiAgfTtcblxuICBmdW5jdGlvbiBzY2FsZSh0cmFuc2Zvcm0sIGspIHtcbiAgICBrID0gTWF0aC5tYXgoc2NhbGVFeHRlbnRbMF0sIE1hdGgubWluKHNjYWxlRXh0ZW50WzFdLCBrKSk7XG4gICAgcmV0dXJuIGsgPT09IHRyYW5zZm9ybS5rID8gdHJhbnNmb3JtIDogbmV3IFRyYW5zZm9ybShrLCB0cmFuc2Zvcm0ueCwgdHJhbnNmb3JtLnkpO1xuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNsYXRlKHRyYW5zZm9ybSwgcDAsIHAxKSB7XG4gICAgdmFyIHggPSBwMFswXSAtIHAxWzBdICogdHJhbnNmb3JtLmssIHkgPSBwMFsxXSAtIHAxWzFdICogdHJhbnNmb3JtLms7XG4gICAgcmV0dXJuIHggPT09IHRyYW5zZm9ybS54ICYmIHkgPT09IHRyYW5zZm9ybS55ID8gdHJhbnNmb3JtIDogbmV3IFRyYW5zZm9ybSh0cmFuc2Zvcm0uaywgeCwgeSk7XG4gIH1cblxuICBmdW5jdGlvbiBjZW50cm9pZChleHRlbnQpIHtcbiAgICByZXR1cm4gWygrZXh0ZW50WzBdWzBdICsgK2V4dGVudFsxXVswXSkgLyAyLCAoK2V4dGVudFswXVsxXSArICtleHRlbnRbMV1bMV0pIC8gMl07XG4gIH1cblxuICBmdW5jdGlvbiBzY2hlZHVsZSh0cmFuc2l0aW9uLCB0cmFuc2Zvcm0sIHBvaW50LCBldmVudCkge1xuICAgIHRyYW5zaXRpb25cbiAgICAgICAgLm9uKFwic3RhcnQuem9vbVwiLCBmdW5jdGlvbigpIHsgZ2VzdHVyZSh0aGlzLCBhcmd1bWVudHMpLmV2ZW50KGV2ZW50KS5zdGFydCgpOyB9KVxuICAgICAgICAub24oXCJpbnRlcnJ1cHQuem9vbSBlbmQuem9vbVwiLCBmdW5jdGlvbigpIHsgZ2VzdHVyZSh0aGlzLCBhcmd1bWVudHMpLmV2ZW50KGV2ZW50KS5lbmQoKTsgfSlcbiAgICAgICAgLnR3ZWVuKFwiem9vbVwiLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICB2YXIgdGhhdCA9IHRoaXMsXG4gICAgICAgICAgICAgIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgICAgICAgIGcgPSBnZXN0dXJlKHRoYXQsIGFyZ3MpLmV2ZW50KGV2ZW50KSxcbiAgICAgICAgICAgICAgZSA9IGV4dGVudC5hcHBseSh0aGF0LCBhcmdzKSxcbiAgICAgICAgICAgICAgcCA9IHBvaW50ID09IG51bGwgPyBjZW50cm9pZChlKSA6IHR5cGVvZiBwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gcG9pbnQuYXBwbHkodGhhdCwgYXJncykgOiBwb2ludCxcbiAgICAgICAgICAgICAgdyA9IE1hdGgubWF4KGVbMV1bMF0gLSBlWzBdWzBdLCBlWzFdWzFdIC0gZVswXVsxXSksXG4gICAgICAgICAgICAgIGEgPSB0aGF0Ll9fem9vbSxcbiAgICAgICAgICAgICAgYiA9IHR5cGVvZiB0cmFuc2Zvcm0gPT09IFwiZnVuY3Rpb25cIiA/IHRyYW5zZm9ybS5hcHBseSh0aGF0LCBhcmdzKSA6IHRyYW5zZm9ybSxcbiAgICAgICAgICAgICAgaSA9IGludGVycG9sYXRlKGEuaW52ZXJ0KHApLmNvbmNhdCh3IC8gYS5rKSwgYi5pbnZlcnQocCkuY29uY2F0KHcgLyBiLmspKTtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24odCkge1xuICAgICAgICAgICAgaWYgKHQgPT09IDEpIHQgPSBiOyAvLyBBdm9pZCByb3VuZGluZyBlcnJvciBvbiBlbmQuXG4gICAgICAgICAgICBlbHNlIHsgdmFyIGwgPSBpKHQpLCBrID0gdyAvIGxbMl07IHQgPSBuZXcgVHJhbnNmb3JtKGssIHBbMF0gLSBsWzBdICogaywgcFsxXSAtIGxbMV0gKiBrKTsgfVxuICAgICAgICAgICAgZy56b29tKG51bGwsIHQpO1xuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2VzdHVyZSh0aGF0LCBhcmdzLCBjbGVhbikge1xuICAgIHJldHVybiAoIWNsZWFuICYmIHRoYXQuX196b29taW5nKSB8fCBuZXcgR2VzdHVyZSh0aGF0LCBhcmdzKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIEdlc3R1cmUodGhhdCwgYXJncykge1xuICAgIHRoaXMudGhhdCA9IHRoYXQ7XG4gICAgdGhpcy5hcmdzID0gYXJncztcbiAgICB0aGlzLmFjdGl2ZSA9IDA7XG4gICAgdGhpcy5zb3VyY2VFdmVudCA9IG51bGw7XG4gICAgdGhpcy5leHRlbnQgPSBleHRlbnQuYXBwbHkodGhhdCwgYXJncyk7XG4gICAgdGhpcy50YXBzID0gMDtcbiAgfVxuXG4gIEdlc3R1cmUucHJvdG90eXBlID0ge1xuICAgIGV2ZW50OiBmdW5jdGlvbihldmVudCkge1xuICAgICAgaWYgKGV2ZW50KSB0aGlzLnNvdXJjZUV2ZW50ID0gZXZlbnQ7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIHN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICAgIGlmICgrK3RoaXMuYWN0aXZlID09PSAxKSB7XG4gICAgICAgIHRoaXMudGhhdC5fX3pvb21pbmcgPSB0aGlzO1xuICAgICAgICB0aGlzLmVtaXQoXCJzdGFydFwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gICAgem9vbTogZnVuY3Rpb24oa2V5LCB0cmFuc2Zvcm0pIHtcbiAgICAgIGlmICh0aGlzLm1vdXNlICYmIGtleSAhPT0gXCJtb3VzZVwiKSB0aGlzLm1vdXNlWzFdID0gdHJhbnNmb3JtLmludmVydCh0aGlzLm1vdXNlWzBdKTtcbiAgICAgIGlmICh0aGlzLnRvdWNoMCAmJiBrZXkgIT09IFwidG91Y2hcIikgdGhpcy50b3VjaDBbMV0gPSB0cmFuc2Zvcm0uaW52ZXJ0KHRoaXMudG91Y2gwWzBdKTtcbiAgICAgIGlmICh0aGlzLnRvdWNoMSAmJiBrZXkgIT09IFwidG91Y2hcIikgdGhpcy50b3VjaDFbMV0gPSB0cmFuc2Zvcm0uaW52ZXJ0KHRoaXMudG91Y2gxWzBdKTtcbiAgICAgIHRoaXMudGhhdC5fX3pvb20gPSB0cmFuc2Zvcm07XG4gICAgICB0aGlzLmVtaXQoXCJ6b29tXCIpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICBlbmQ6IGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKC0tdGhpcy5hY3RpdmUgPT09IDApIHtcbiAgICAgICAgZGVsZXRlIHRoaXMudGhhdC5fX3pvb21pbmc7XG4gICAgICAgIHRoaXMuZW1pdChcImVuZFwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gICAgZW1pdDogZnVuY3Rpb24odHlwZSkge1xuICAgICAgdmFyIGQgPSBzZWxlY3QodGhpcy50aGF0KS5kYXR1bSgpO1xuICAgICAgbGlzdGVuZXJzLmNhbGwoXG4gICAgICAgIHR5cGUsXG4gICAgICAgIHRoaXMudGhhdCxcbiAgICAgICAgbmV3IFpvb21FdmVudCh0eXBlLCB7XG4gICAgICAgICAgc291cmNlRXZlbnQ6IHRoaXMuc291cmNlRXZlbnQsXG4gICAgICAgICAgdGFyZ2V0OiB6b29tLFxuICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgdHJhbnNmb3JtOiB0aGlzLnRoYXQuX196b29tLFxuICAgICAgICAgIGRpc3BhdGNoOiBsaXN0ZW5lcnNcbiAgICAgICAgfSksXG4gICAgICAgIGRcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIGZ1bmN0aW9uIHdoZWVsZWQoZXZlbnQsIC4uLmFyZ3MpIHtcbiAgICBpZiAoIWZpbHRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpKSByZXR1cm47XG4gICAgdmFyIGcgPSBnZXN0dXJlKHRoaXMsIGFyZ3MpLmV2ZW50KGV2ZW50KSxcbiAgICAgICAgdCA9IHRoaXMuX196b29tLFxuICAgICAgICBrID0gTWF0aC5tYXgoc2NhbGVFeHRlbnRbMF0sIE1hdGgubWluKHNjYWxlRXh0ZW50WzFdLCB0LmsgKiBNYXRoLnBvdygyLCB3aGVlbERlbHRhLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpKSksXG4gICAgICAgIHAgPSBwb2ludGVyKGV2ZW50KTtcblxuICAgIC8vIElmIHRoZSBtb3VzZSBpcyBpbiB0aGUgc2FtZSBsb2NhdGlvbiBhcyBiZWZvcmUsIHJldXNlIGl0LlxuICAgIC8vIElmIHRoZXJlIHdlcmUgcmVjZW50IHdoZWVsIGV2ZW50cywgcmVzZXQgdGhlIHdoZWVsIGlkbGUgdGltZW91dC5cbiAgICBpZiAoZy53aGVlbCkge1xuICAgICAgaWYgKGcubW91c2VbMF1bMF0gIT09IHBbMF0gfHwgZy5tb3VzZVswXVsxXSAhPT0gcFsxXSkge1xuICAgICAgICBnLm1vdXNlWzFdID0gdC5pbnZlcnQoZy5tb3VzZVswXSA9IHApO1xuICAgICAgfVxuICAgICAgY2xlYXJUaW1lb3V0KGcud2hlZWwpO1xuICAgIH1cblxuICAgIC8vIElmIHRoaXMgd2hlZWwgZXZlbnQgd29uXHUyMDE5dCB0cmlnZ2VyIGEgdHJhbnNmb3JtIGNoYW5nZSwgaWdub3JlIGl0LlxuICAgIGVsc2UgaWYgKHQuayA9PT0gaykgcmV0dXJuO1xuXG4gICAgLy8gT3RoZXJ3aXNlLCBjYXB0dXJlIHRoZSBtb3VzZSBwb2ludCBhbmQgbG9jYXRpb24gYXQgdGhlIHN0YXJ0LlxuICAgIGVsc2Uge1xuICAgICAgZy5tb3VzZSA9IFtwLCB0LmludmVydChwKV07XG4gICAgICBpbnRlcnJ1cHQodGhpcyk7XG4gICAgICBnLnN0YXJ0KCk7XG4gICAgfVxuXG4gICAgbm9ldmVudChldmVudCk7XG4gICAgZy53aGVlbCA9IHNldFRpbWVvdXQod2hlZWxpZGxlZCwgd2hlZWxEZWxheSk7XG4gICAgZy56b29tKFwibW91c2VcIiwgY29uc3RyYWluKHRyYW5zbGF0ZShzY2FsZSh0LCBrKSwgZy5tb3VzZVswXSwgZy5tb3VzZVsxXSksIGcuZXh0ZW50LCB0cmFuc2xhdGVFeHRlbnQpKTtcblxuICAgIGZ1bmN0aW9uIHdoZWVsaWRsZWQoKSB7XG4gICAgICBnLndoZWVsID0gbnVsbDtcbiAgICAgIGcuZW5kKCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gbW91c2Vkb3duZWQoZXZlbnQsIC4uLmFyZ3MpIHtcbiAgICBpZiAodG91Y2hlbmRpbmcgfHwgIWZpbHRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpKSByZXR1cm47XG4gICAgdmFyIGcgPSBnZXN0dXJlKHRoaXMsIGFyZ3MsIHRydWUpLmV2ZW50KGV2ZW50KSxcbiAgICAgICAgdiA9IHNlbGVjdChldmVudC52aWV3KS5vbihcIm1vdXNlbW92ZS56b29tXCIsIG1vdXNlbW92ZWQsIHRydWUpLm9uKFwibW91c2V1cC56b29tXCIsIG1vdXNldXBwZWQsIHRydWUpLFxuICAgICAgICBwID0gcG9pbnRlcihldmVudCwgY3VycmVudFRhcmdldCksXG4gICAgICAgIGN1cnJlbnRUYXJnZXQgPSBldmVudC5jdXJyZW50VGFyZ2V0LFxuICAgICAgICB4MCA9IGV2ZW50LmNsaWVudFgsXG4gICAgICAgIHkwID0gZXZlbnQuY2xpZW50WTtcblxuICAgIGRyYWdEaXNhYmxlKGV2ZW50LnZpZXcpO1xuICAgIG5vcHJvcGFnYXRpb24oZXZlbnQpO1xuICAgIGcubW91c2UgPSBbcCwgdGhpcy5fX3pvb20uaW52ZXJ0KHApXTtcbiAgICBpbnRlcnJ1cHQodGhpcyk7XG4gICAgZy5zdGFydCgpO1xuXG4gICAgZnVuY3Rpb24gbW91c2Vtb3ZlZChldmVudCkge1xuICAgICAgbm9ldmVudChldmVudCk7XG4gICAgICBpZiAoIWcubW92ZWQpIHtcbiAgICAgICAgdmFyIGR4ID0gZXZlbnQuY2xpZW50WCAtIHgwLCBkeSA9IGV2ZW50LmNsaWVudFkgLSB5MDtcbiAgICAgICAgZy5tb3ZlZCA9IGR4ICogZHggKyBkeSAqIGR5ID4gY2xpY2tEaXN0YW5jZTI7XG4gICAgICB9XG4gICAgICBnLmV2ZW50KGV2ZW50KVxuICAgICAgIC56b29tKFwibW91c2VcIiwgY29uc3RyYWluKHRyYW5zbGF0ZShnLnRoYXQuX196b29tLCBnLm1vdXNlWzBdID0gcG9pbnRlcihldmVudCwgY3VycmVudFRhcmdldCksIGcubW91c2VbMV0pLCBnLmV4dGVudCwgdHJhbnNsYXRlRXh0ZW50KSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbW91c2V1cHBlZChldmVudCkge1xuICAgICAgdi5vbihcIm1vdXNlbW92ZS56b29tIG1vdXNldXAuem9vbVwiLCBudWxsKTtcbiAgICAgIGRyYWdFbmFibGUoZXZlbnQudmlldywgZy5tb3ZlZCk7XG4gICAgICBub2V2ZW50KGV2ZW50KTtcbiAgICAgIGcuZXZlbnQoZXZlbnQpLmVuZCgpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGRibGNsaWNrZWQoZXZlbnQsIC4uLmFyZ3MpIHtcbiAgICBpZiAoIWZpbHRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpKSByZXR1cm47XG4gICAgdmFyIHQwID0gdGhpcy5fX3pvb20sXG4gICAgICAgIHAwID0gcG9pbnRlcihldmVudC5jaGFuZ2VkVG91Y2hlcyA/IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdIDogZXZlbnQsIHRoaXMpLFxuICAgICAgICBwMSA9IHQwLmludmVydChwMCksXG4gICAgICAgIGsxID0gdDAuayAqIChldmVudC5zaGlmdEtleSA/IDAuNSA6IDIpLFxuICAgICAgICB0MSA9IGNvbnN0cmFpbih0cmFuc2xhdGUoc2NhbGUodDAsIGsxKSwgcDAsIHAxKSwgZXh0ZW50LmFwcGx5KHRoaXMsIGFyZ3MpLCB0cmFuc2xhdGVFeHRlbnQpO1xuXG4gICAgbm9ldmVudChldmVudCk7XG4gICAgaWYgKGR1cmF0aW9uID4gMCkgc2VsZWN0KHRoaXMpLnRyYW5zaXRpb24oKS5kdXJhdGlvbihkdXJhdGlvbikuY2FsbChzY2hlZHVsZSwgdDEsIHAwLCBldmVudCk7XG4gICAgZWxzZSBzZWxlY3QodGhpcykuY2FsbCh6b29tLnRyYW5zZm9ybSwgdDEsIHAwLCBldmVudCk7XG4gIH1cblxuICBmdW5jdGlvbiB0b3VjaHN0YXJ0ZWQoZXZlbnQsIC4uLmFyZ3MpIHtcbiAgICBpZiAoIWZpbHRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpKSByZXR1cm47XG4gICAgdmFyIHRvdWNoZXMgPSBldmVudC50b3VjaGVzLFxuICAgICAgICBuID0gdG91Y2hlcy5sZW5ndGgsXG4gICAgICAgIGcgPSBnZXN0dXJlKHRoaXMsIGFyZ3MsIGV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCA9PT0gbikuZXZlbnQoZXZlbnQpLFxuICAgICAgICBzdGFydGVkLCBpLCB0LCBwO1xuXG4gICAgbm9wcm9wYWdhdGlvbihldmVudCk7XG4gICAgZm9yIChpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgdCA9IHRvdWNoZXNbaV0sIHAgPSBwb2ludGVyKHQsIHRoaXMpO1xuICAgICAgcCA9IFtwLCB0aGlzLl9fem9vbS5pbnZlcnQocCksIHQuaWRlbnRpZmllcl07XG4gICAgICBpZiAoIWcudG91Y2gwKSBnLnRvdWNoMCA9IHAsIHN0YXJ0ZWQgPSB0cnVlLCBnLnRhcHMgPSAxICsgISF0b3VjaHN0YXJ0aW5nO1xuICAgICAgZWxzZSBpZiAoIWcudG91Y2gxICYmIGcudG91Y2gwWzJdICE9PSBwWzJdKSBnLnRvdWNoMSA9IHAsIGcudGFwcyA9IDA7XG4gICAgfVxuXG4gICAgaWYgKHRvdWNoc3RhcnRpbmcpIHRvdWNoc3RhcnRpbmcgPSBjbGVhclRpbWVvdXQodG91Y2hzdGFydGluZyk7XG5cbiAgICBpZiAoc3RhcnRlZCkge1xuICAgICAgaWYgKGcudGFwcyA8IDIpIHRvdWNoZmlyc3QgPSBwWzBdLCB0b3VjaHN0YXJ0aW5nID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsgdG91Y2hzdGFydGluZyA9IG51bGw7IH0sIHRvdWNoRGVsYXkpO1xuICAgICAgaW50ZXJydXB0KHRoaXMpO1xuICAgICAgZy5zdGFydCgpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHRvdWNobW92ZWQoZXZlbnQsIC4uLmFyZ3MpIHtcbiAgICBpZiAoIXRoaXMuX196b29taW5nKSByZXR1cm47XG4gICAgdmFyIGcgPSBnZXN0dXJlKHRoaXMsIGFyZ3MpLmV2ZW50KGV2ZW50KSxcbiAgICAgICAgdG91Y2hlcyA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzLFxuICAgICAgICBuID0gdG91Y2hlcy5sZW5ndGgsIGksIHQsIHAsIGw7XG5cbiAgICBub2V2ZW50KGV2ZW50KTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbjsgKytpKSB7XG4gICAgICB0ID0gdG91Y2hlc1tpXSwgcCA9IHBvaW50ZXIodCwgdGhpcyk7XG4gICAgICBpZiAoZy50b3VjaDAgJiYgZy50b3VjaDBbMl0gPT09IHQuaWRlbnRpZmllcikgZy50b3VjaDBbMF0gPSBwO1xuICAgICAgZWxzZSBpZiAoZy50b3VjaDEgJiYgZy50b3VjaDFbMl0gPT09IHQuaWRlbnRpZmllcikgZy50b3VjaDFbMF0gPSBwO1xuICAgIH1cbiAgICB0ID0gZy50aGF0Ll9fem9vbTtcbiAgICBpZiAoZy50b3VjaDEpIHtcbiAgICAgIHZhciBwMCA9IGcudG91Y2gwWzBdLCBsMCA9IGcudG91Y2gwWzFdLFxuICAgICAgICAgIHAxID0gZy50b3VjaDFbMF0sIGwxID0gZy50b3VjaDFbMV0sXG4gICAgICAgICAgZHAgPSAoZHAgPSBwMVswXSAtIHAwWzBdKSAqIGRwICsgKGRwID0gcDFbMV0gLSBwMFsxXSkgKiBkcCxcbiAgICAgICAgICBkbCA9IChkbCA9IGwxWzBdIC0gbDBbMF0pICogZGwgKyAoZGwgPSBsMVsxXSAtIGwwWzFdKSAqIGRsO1xuICAgICAgdCA9IHNjYWxlKHQsIE1hdGguc3FydChkcCAvIGRsKSk7XG4gICAgICBwID0gWyhwMFswXSArIHAxWzBdKSAvIDIsIChwMFsxXSArIHAxWzFdKSAvIDJdO1xuICAgICAgbCA9IFsobDBbMF0gKyBsMVswXSkgLyAyLCAobDBbMV0gKyBsMVsxXSkgLyAyXTtcbiAgICB9XG4gICAgZWxzZSBpZiAoZy50b3VjaDApIHAgPSBnLnRvdWNoMFswXSwgbCA9IGcudG91Y2gwWzFdO1xuICAgIGVsc2UgcmV0dXJuO1xuXG4gICAgZy56b29tKFwidG91Y2hcIiwgY29uc3RyYWluKHRyYW5zbGF0ZSh0LCBwLCBsKSwgZy5leHRlbnQsIHRyYW5zbGF0ZUV4dGVudCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gdG91Y2hlbmRlZChldmVudCwgLi4uYXJncykge1xuICAgIGlmICghdGhpcy5fX3pvb21pbmcpIHJldHVybjtcbiAgICB2YXIgZyA9IGdlc3R1cmUodGhpcywgYXJncykuZXZlbnQoZXZlbnQpLFxuICAgICAgICB0b3VjaGVzID0gZXZlbnQuY2hhbmdlZFRvdWNoZXMsXG4gICAgICAgIG4gPSB0b3VjaGVzLmxlbmd0aCwgaSwgdDtcblxuICAgIG5vcHJvcGFnYXRpb24oZXZlbnQpO1xuICAgIGlmICh0b3VjaGVuZGluZykgY2xlYXJUaW1lb3V0KHRvdWNoZW5kaW5nKTtcbiAgICB0b3VjaGVuZGluZyA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRvdWNoZW5kaW5nID0gbnVsbDsgfSwgdG91Y2hEZWxheSk7XG4gICAgZm9yIChpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgdCA9IHRvdWNoZXNbaV07XG4gICAgICBpZiAoZy50b3VjaDAgJiYgZy50b3VjaDBbMl0gPT09IHQuaWRlbnRpZmllcikgZGVsZXRlIGcudG91Y2gwO1xuICAgICAgZWxzZSBpZiAoZy50b3VjaDEgJiYgZy50b3VjaDFbMl0gPT09IHQuaWRlbnRpZmllcikgZGVsZXRlIGcudG91Y2gxO1xuICAgIH1cbiAgICBpZiAoZy50b3VjaDEgJiYgIWcudG91Y2gwKSBnLnRvdWNoMCA9IGcudG91Y2gxLCBkZWxldGUgZy50b3VjaDE7XG4gICAgaWYgKGcudG91Y2gwKSBnLnRvdWNoMFsxXSA9IHRoaXMuX196b29tLmludmVydChnLnRvdWNoMFswXSk7XG4gICAgZWxzZSB7XG4gICAgICBnLmVuZCgpO1xuICAgICAgLy8gSWYgdGhpcyB3YXMgYSBkYmx0YXAsIHJlcm91dGUgdG8gdGhlIChvcHRpb25hbCkgZGJsY2xpY2suem9vbSBoYW5kbGVyLlxuICAgICAgaWYgKGcudGFwcyA9PT0gMikge1xuICAgICAgICB0ID0gcG9pbnRlcih0LCB0aGlzKTtcbiAgICAgICAgaWYgKE1hdGguaHlwb3QodG91Y2hmaXJzdFswXSAtIHRbMF0sIHRvdWNoZmlyc3RbMV0gLSB0WzFdKSA8IHRhcERpc3RhbmNlKSB7XG4gICAgICAgICAgdmFyIHAgPSBzZWxlY3QodGhpcykub24oXCJkYmxjbGljay56b29tXCIpO1xuICAgICAgICAgIGlmIChwKSBwLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB6b29tLndoZWVsRGVsdGEgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAod2hlZWxEZWx0YSA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoK18pLCB6b29tKSA6IHdoZWVsRGVsdGE7XG4gIH07XG5cbiAgem9vbS5maWx0ZXIgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoZmlsdGVyID0gdHlwZW9mIF8gPT09IFwiZnVuY3Rpb25cIiA/IF8gOiBjb25zdGFudCghIV8pLCB6b29tKSA6IGZpbHRlcjtcbiAgfTtcblxuICB6b29tLnRvdWNoYWJsZSA9IGZ1bmN0aW9uKF8pIHtcbiAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/ICh0b3VjaGFibGUgPSB0eXBlb2YgXyA9PT0gXCJmdW5jdGlvblwiID8gXyA6IGNvbnN0YW50KCEhXyksIHpvb20pIDogdG91Y2hhYmxlO1xuICB9O1xuXG4gIHpvb20uZXh0ZW50ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGV4dGVudCA9IHR5cGVvZiBfID09PSBcImZ1bmN0aW9uXCIgPyBfIDogY29uc3RhbnQoW1srX1swXVswXSwgK19bMF1bMV1dLCBbK19bMV1bMF0sICtfWzFdWzFdXV0pLCB6b29tKSA6IGV4dGVudDtcbiAgfTtcblxuICB6b29tLnNjYWxlRXh0ZW50ID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHNjYWxlRXh0ZW50WzBdID0gK19bMF0sIHNjYWxlRXh0ZW50WzFdID0gK19bMV0sIHpvb20pIDogW3NjYWxlRXh0ZW50WzBdLCBzY2FsZUV4dGVudFsxXV07XG4gIH07XG5cbiAgem9vbS50cmFuc2xhdGVFeHRlbnQgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAodHJhbnNsYXRlRXh0ZW50WzBdWzBdID0gK19bMF1bMF0sIHRyYW5zbGF0ZUV4dGVudFsxXVswXSA9ICtfWzFdWzBdLCB0cmFuc2xhdGVFeHRlbnRbMF1bMV0gPSArX1swXVsxXSwgdHJhbnNsYXRlRXh0ZW50WzFdWzFdID0gK19bMV1bMV0sIHpvb20pIDogW1t0cmFuc2xhdGVFeHRlbnRbMF1bMF0sIHRyYW5zbGF0ZUV4dGVudFswXVsxXV0sIFt0cmFuc2xhdGVFeHRlbnRbMV1bMF0sIHRyYW5zbGF0ZUV4dGVudFsxXVsxXV1dO1xuICB9O1xuXG4gIHpvb20uY29uc3RyYWluID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGNvbnN0cmFpbiA9IF8sIHpvb20pIDogY29uc3RyYWluO1xuICB9O1xuXG4gIHpvb20uZHVyYXRpb24gPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoZHVyYXRpb24gPSArXywgem9vbSkgOiBkdXJhdGlvbjtcbiAgfTtcblxuICB6b29tLmludGVycG9sYXRlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKGludGVycG9sYXRlID0gXywgem9vbSkgOiBpbnRlcnBvbGF0ZTtcbiAgfTtcblxuICB6b29tLm9uID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHZhbHVlID0gbGlzdGVuZXJzLm9uLmFwcGx5KGxpc3RlbmVycywgYXJndW1lbnRzKTtcbiAgICByZXR1cm4gdmFsdWUgPT09IGxpc3RlbmVycyA/IHpvb20gOiB2YWx1ZTtcbiAgfTtcblxuICB6b29tLmNsaWNrRGlzdGFuY2UgPSBmdW5jdGlvbihfKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPyAoY2xpY2tEaXN0YW5jZTIgPSAoXyA9ICtfKSAqIF8sIHpvb20pIDogTWF0aC5zcXJ0KGNsaWNrRGlzdGFuY2UyKTtcbiAgfTtcblxuICB6b29tLnRhcERpc3RhbmNlID0gZnVuY3Rpb24oXykge1xuICAgIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID8gKHRhcERpc3RhbmNlID0gK18sIHpvb20pIDogdGFwRGlzdGFuY2U7XG4gIH07XG5cbiAgcmV0dXJuIHpvb207XG59XG4iLCAiaW1wb3J0ICogYXMgZDMgZnJvbSBcImQzXCI7XHJcbmltcG9ydCB0eXBlIEdyYXBoIGZyb20gXCJncmFwaG9sb2d5XCI7XHJcbmltcG9ydCB7IE1vZGFsLCBOb3RpY2UgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IFZpc0NvbXAgZnJvbSBcIi4uL0NvbXBvbmVudHMvVmlzQ29tcC5zdmVsdGVcIjtcclxuaW1wb3J0IHR5cGUgeyBBZGpMaXN0SXRlbSwgZDNHcmFwaCB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB0eXBlIEJDUGx1Z2luIGZyb20gXCIuLi9tYWluXCI7XHJcbmltcG9ydCB7XHJcbiAgZ2V0SW5OZWlnaGJvdXJzLFxyXG4gIGdldE91dE5laWdoYm91cnMsXHJcbiAgZ2V0U2lua3MsXHJcbn0gZnJvbSBcIi4uL1V0aWxzL2dyYXBoVXRpbHNcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBncmFwaGxpYlRvRDMoZzogR3JhcGgpOiBkM0dyYXBoIHtcclxuICBjb25zdCBkM0dyYXBoOiBkM0dyYXBoID0geyBub2RlczogW10sIGxpbmtzOiBbXSB9O1xyXG4gIGNvbnN0IG5vZGVJRHMgPSB7fTtcclxuXHJcbiAgZy5ub2RlcygpLmZvckVhY2goKG5vZGUsIGkpID0+IHtcclxuICAgIGQzR3JhcGgubm9kZXMucHVzaCh7IGlkOiBpLCBuYW1lOiBub2RlIH0pO1xyXG4gICAgbm9kZUlEc1tub2RlXSA9IGk7XHJcbiAgfSk7XHJcbiAgZy5mb3JFYWNoRWRnZSgoaywgYSwgcywgdCkgPT4ge1xyXG4gICAgZDNHcmFwaC5saW5rcy5wdXNoKHtcclxuICAgICAgc291cmNlOiBub2RlSURzW3NdLFxyXG4gICAgICB0YXJnZXQ6IG5vZGVJRHNbdF0sXHJcbiAgICB9KTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGQzR3JhcGg7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBiZnNGcm9tQWxsU2lua3MoZzogR3JhcGgpIHtcclxuICBjb25zdCBxdWV1ZTogc3RyaW5nW10gPSBnZXRTaW5rcyhnKTtcclxuICBjb25zdCBhZGpMaXN0OiBBZGpMaXN0SXRlbVtdID0gW107XHJcblxyXG4gIGxldCBpID0gMDtcclxuICB3aGlsZSAocXVldWUubGVuZ3RoICYmIGkgPCAxMDAwKSB7XHJcbiAgICBpKys7XHJcblxyXG4gICAgY29uc3QgY3Vyck5vZGUgPSBxdWV1ZS5zaGlmdCgpO1xyXG4gICAgY29uc3QgbmV3Tm9kZXMgPSBnZXRJbk5laWdoYm91cnMoZywgY3Vyck5vZGUpO1xyXG5cclxuICAgIGlmIChuZXdOb2Rlcy5sZW5ndGgpIHtcclxuICAgICAgbmV3Tm9kZXMuZm9yRWFjaCgocHJlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV4dDogQWRqTGlzdEl0ZW0gPSB7XHJcbiAgICAgICAgICBuYW1lOiBjdXJyTm9kZSxcclxuICAgICAgICAgIHBhcmVudElkOiBwcmUsXHJcbiAgICAgICAgICBkZXB0aDogaSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHF1ZXVlLnB1c2gocHJlKTtcclxuICAgICAgICBhZGpMaXN0LnB1c2gobmV4dCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYWRqTGlzdC5wdXNoKHtcclxuICAgICAgICBuYW1lOiBjdXJyTm9kZSxcclxuICAgICAgICBwYXJlbnRJZDogdW5kZWZpbmVkLFxyXG4gICAgICAgIGRlcHRoOiBpLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IG1heERlcHRoID0gYWRqTGlzdC5zb3J0KChhLCBiKSA9PiBhLmRlcHRoIC0gYi5kZXB0aCkubGFzdCgpLmRlcHRoO1xyXG4gIGFkakxpc3QuZm9yRWFjaCgoaXRlbSkgPT4gKGl0ZW0uaGVpZ2h0ID0gbWF4RGVwdGggLSBpdGVtLmRlcHRoKSk7XHJcbiAgcmV0dXJuIGFkakxpc3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZnNBZGpMaXN0KGc6IEdyYXBoLCBzdGFydE5vZGU6IHN0cmluZyk6IEFkakxpc3RJdGVtW10ge1xyXG4gIGNvbnN0IHF1ZXVlOiBzdHJpbmdbXSA9IFtzdGFydE5vZGVdO1xyXG4gIGNvbnN0IGFkakxpc3Q6IEFkakxpc3RJdGVtW10gPSBbXTtcclxuXHJcbiAgbGV0IGkgPSAwO1xyXG4gIHdoaWxlIChxdWV1ZS5sZW5ndGggJiYgaSA8IDEwMDApIHtcclxuICAgIGkrKztcclxuXHJcbiAgICBjb25zdCBjdXJyTm9kZSA9IHF1ZXVlLnNoaWZ0KCk7XHJcbiAgICBjb25zdCBuZXdOb2RlcyA9IGdldE91dE5laWdoYm91cnMoZywgY3Vyck5vZGUpO1xyXG5cclxuICAgIGlmIChuZXdOb2Rlcy5sZW5ndGgpIHtcclxuICAgICAgbmV3Tm9kZXMuZm9yRWFjaCgoc3VjYykgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5leHQ6IEFkakxpc3RJdGVtID0ge1xyXG4gICAgICAgICAgbmFtZTogY3Vyck5vZGUsXHJcbiAgICAgICAgICBwYXJlbnRJZDogc3VjYyxcclxuICAgICAgICAgIGRlcHRoOiBpLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcXVldWUucHVzaChzdWNjKTtcclxuICAgICAgICBhZGpMaXN0LnB1c2gobmV4dCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYWRqTGlzdC5wdXNoKHtcclxuICAgICAgICBuYW1lOiBjdXJyTm9kZSxcclxuICAgICAgICBwYXJlbnRJZDogdW5kZWZpbmVkLFxyXG4gICAgICAgIGRlcHRoOiBpLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgY29uc3QgbWF4RGVwdGggPSBhZGpMaXN0LnNvcnQoKGEsIGIpID0+IGEuZGVwdGggLSBiLmRlcHRoKS5sYXN0KCkuZGVwdGg7XHJcbiAgYWRqTGlzdC5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS5oZWlnaHQgPSBtYXhEZXB0aCAtIGl0ZW0uZGVwdGgpKTtcclxuXHJcbiAgcmV0dXJuIGFkakxpc3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBiZnNBZGpMaXN0KGc6IEdyYXBoLCBzdGFydE5vZGU6IHN0cmluZyk6IEFkakxpc3RJdGVtW10ge1xyXG4gIGNvbnN0IHF1ZXVlOiBzdHJpbmdbXSA9IFtzdGFydE5vZGVdO1xyXG4gIGNvbnN0IGFkakxpc3Q6IEFkakxpc3RJdGVtW10gPSBbXTtcclxuXHJcbiAgbGV0IGkgPSAwO1xyXG4gIHdoaWxlIChxdWV1ZS5sZW5ndGggJiYgaSA8IDEwMDApIHtcclxuICAgIGkrKztcclxuXHJcbiAgICBjb25zdCBjdXJyTm9kZSA9IHF1ZXVlLnNoaWZ0KCk7XHJcbiAgICBjb25zdCBuZWlnaGJvdXJzID0ge1xyXG4gICAgICBzdWNjczogZ2V0T3V0TmVpZ2hib3VycyhnLCBjdXJyTm9kZSksXHJcbiAgICAgIHByZXM6IGdldEluTmVpZ2hib3VycyhnLCBjdXJyTm9kZSksXHJcbiAgICB9O1xyXG4gICAgY29uc29sZS5sb2coeyBjdXJyTm9kZSwgbmVpZ2hib3VycyB9KTtcclxuXHJcbiAgICBjb25zdCBuZXh0OiBBZGpMaXN0SXRlbSA9IHtcclxuICAgICAgbmFtZTogY3Vyck5vZGUsXHJcbiAgICAgIHByZXM6IHVuZGVmaW5lZCxcclxuICAgICAgc3VjY3M6IHVuZGVmaW5lZCxcclxuICAgICAgcGFyZW50SWQ6IGksXHJcbiAgICAgIGRlcHRoOiBpLFxyXG4gICAgfTtcclxuICAgIGlmIChuZWlnaGJvdXJzLnN1Y2NzLmxlbmd0aCkge1xyXG4gICAgICBuZXh0LnN1Y2NzID0gbmVpZ2hib3Vycy5zdWNjcztcclxuICAgICAgcXVldWUucHVzaCguLi5uZWlnaGJvdXJzLnN1Y2NzKTtcclxuICAgIH1cclxuICAgIGlmIChuZWlnaGJvdXJzLnByZXMubGVuZ3RoKSB7XHJcbiAgICAgIG5leHQucHJlcyA9IG5laWdoYm91cnMucHJlcztcclxuICAgIH1cclxuICAgIGFkakxpc3QucHVzaChuZXh0KTtcclxuICB9XHJcbiAgY29uc3QgbWF4RGVwdGggPSBhZGpMaXN0LnNvcnQoKGEsIGIpID0+IGEuZGVwdGggLSBiLmRlcHRoKS5sYXN0KCkuZGVwdGg7XHJcbiAgYWRqTGlzdC5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS5oZWlnaHQgPSBtYXhEZXB0aCAtIGl0ZW0uZGVwdGgpKTtcclxuXHJcbiAgcmV0dXJuIGFkakxpc3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZnNGbGF0QWRqTGlzdChnOiBHcmFwaCwgc3RhcnROb2RlOiBzdHJpbmcpIHtcclxuICBjb25zdCBub2RlcyA9IGcubm9kZXMoKTtcclxuICBjb25zdCBub2RlQ291bnQgPSBub2Rlcy5sZW5ndGg7XHJcbiAgY29uc3QgdmlzaXRzID0ge307XHJcbiAgbm9kZXMuZm9yRWFjaCgobm9kZSwgaSkgPT4ge1xyXG4gICAgdmlzaXRzW25vZGVdID0gbm9kZUNvdW50ICogaTtcclxuICB9KTtcclxuXHJcbiAgY29uc3QgcXVldWU6IHN0cmluZ1tdID0gW3N0YXJ0Tm9kZV07XHJcbiAgY29uc3QgYWRqTGlzdDogQWRqTGlzdEl0ZW1bXSA9IFtdO1xyXG5cclxuICBsZXQgZGVwdGggPSAxO1xyXG4gIGxldCBpID0gMDtcclxuICB3aGlsZSAocXVldWUubGVuZ3RoICYmIGkgPCAxMDAwKSB7XHJcbiAgICBpKys7XHJcblxyXG4gICAgY29uc3QgY3Vyck5vZGUgPSBxdWV1ZS5zaGlmdCgpO1xyXG4gICAgY29uc3QgbmV4dCA9IGdldE91dE5laWdoYm91cnMoZywgY3Vyck5vZGUpO1xyXG5cclxuICAgIGlmIChuZXh0Lmxlbmd0aCkge1xyXG4gICAgICBxdWV1ZS51bnNoaWZ0KC4uLm5leHQpO1xyXG4gICAgICBuZXh0LmZvckVhY2goKHN1Y2MpID0+IHtcclxuICAgICAgICBjb25zdCBwYXJlbnRJZCA9IG5vZGVDb3VudCAqIG5vZGVzLmluZGV4T2Yoc3VjYyk7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgIWFkakxpc3Quc29tZShcclxuICAgICAgICAgICAgKGFkakl0ZW0pID0+XHJcbiAgICAgICAgICAgICAgYWRqSXRlbS5uYW1lID09PSBjdXJyTm9kZSAmJiBhZGpJdGVtLnBhcmVudElkID09PSBwYXJlbnRJZFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgYWRqTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgaWQ6IHZpc2l0c1tjdXJyTm9kZV0gYXMgbnVtYmVyLFxyXG4gICAgICAgICAgICBuYW1lOiBjdXJyTm9kZSxcclxuICAgICAgICAgICAgcGFyZW50SWQsXHJcbiAgICAgICAgICAgIGRlcHRoLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB2aXNpdHNbY3Vyck5vZGVdKys7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgZGVwdGgrKztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGFkakxpc3QucHVzaCh7XHJcbiAgICAgICAgaWQ6IHZpc2l0c1tjdXJyTm9kZV0gYXMgbnVtYmVyLFxyXG4gICAgICAgIG5hbWU6IGN1cnJOb2RlLFxyXG4gICAgICAgIHBhcmVudElkOiA5OTk5OTk5OTksXHJcbiAgICAgICAgZGVwdGgsXHJcbiAgICAgIH0pO1xyXG4gICAgICBkZXB0aCA9IDE7XHJcbiAgICAgIHZpc2l0c1tjdXJyTm9kZV0rKztcclxuICAgIH1cclxuICB9XHJcbiAgYWRqTGlzdC5wdXNoKHtcclxuICAgIGlkOiA5OTk5OTk5OTksXHJcbiAgICBuYW1lOiBcIkNPTlRBSU5FUlwiLFxyXG4gICAgcGFyZW50SWQ6IHVuZGVmaW5lZCxcclxuICAgIGRlcHRoOiAwLFxyXG4gIH0pO1xyXG5cclxuICBjb25zdCBtYXhEZXB0aCA9IGFkakxpc3Quc29ydCgoYSwgYikgPT4gYS5kZXB0aCAtIGIuZGVwdGgpLmxhc3QoKS5kZXB0aDtcclxuICBhZGpMaXN0LmZvckVhY2goKGl0ZW0pID0+IChpdGVtLmhlaWdodCA9IG1heERlcHRoIC0gaXRlbS5kZXB0aCkpO1xyXG5cclxuICBjb25zb2xlLmxvZyh7IHZpc2l0cyB9KTtcclxuICByZXR1cm4gYWRqTGlzdDtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHN0cmF0aWZ5ID0gZDNcclxuICAuc3RyYXRpZnkoKVxyXG4gIC5pZChmdW5jdGlvbiAoZDogQWRqTGlzdEl0ZW0pIHtcclxuICAgIGNvbnNvbGUubG9nKHsgZCB9KTtcclxuICAgIHJldHVybiBkLm5hbWU7XHJcbiAgfSlcclxuICAucGFyZW50SWQoZnVuY3Rpb24gKGQ6IEFkakxpc3RJdGVtKSB7XHJcbiAgICByZXR1cm4gZC5wYXJlbnRJZDtcclxuICB9KTtcclxuZXhwb3J0IGNsYXNzIFZpc01vZGFsIGV4dGVuZHMgTW9kYWwge1xyXG4gIHBsdWdpbjogQkNQbHVnaW47XHJcbiAgbW9kYWw6IFZpc01vZGFsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwbHVnaW46IEJDUGx1Z2luKSB7XHJcbiAgICBzdXBlcihhcHApO1xyXG4gICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XHJcbiAgICB0aGlzLm1vZGFsID0gdGhpcztcclxuICB9XHJcblxyXG4gIG9uT3BlbigpIHtcclxuICAgIG5ldyBOb3RpY2UoXHJcbiAgICAgIFwiQWxvdCBvZiB0aGVzZSBmZWF0dXJlcyBtYXkgbm90IHdvcmssIGl0IGlzIHN0aWxsIHZlcnkgZXhwZXJpbWVudGFsLlwiXHJcbiAgICApO1xyXG4gICAgY29uc3QgeyBjb250ZW50RWwgfSA9IHRoaXM7XHJcbiAgICBjb250ZW50RWwuZW1wdHkoKTtcclxuXHJcbiAgICBuZXcgVmlzQ29tcCh7XHJcbiAgICAgIHRhcmdldDogY29udGVudEVsLFxyXG4gICAgICBwcm9wczoge1xyXG4gICAgICAgIG1vZGFsOiB0aGlzLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlKCkge1xyXG4gICAgdGhpcy5jb250ZW50RWwuZW1wdHkoKTtcclxuICB9XHJcbn1cclxuIiwgbnVsbCwgIjxzY3JpcHQgbGFuZz1cInRzXCI+XHJcbiAgaW1wb3J0IHsgd2FybiB9IGZyb20gXCJsb2dsZXZlbFwiO1xyXG4gIGltcG9ydCB7IEFMTFVOTElOS0VELCBSRUFsQ0xPU0VELCBSRUxBVElPTlMsIFZJU1RZUEVTIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG4gIGltcG9ydCB0eXBlIHsgVmlzR3JhcGhzLCBWaXNUeXBlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuICBpbXBvcnQge1xyXG4gICAgY2xvc2VJbXBsaWVkTGlua3MsXHJcbiAgICBnZXRTdWJJbkRpcnMsXHJcbiAgICByZW1vdmVVbmxpbmtlZE5vZGVzLFxyXG4gIH0gZnJvbSBcIi4uL1V0aWxzL2dyYXBoVXRpbHNcIjtcclxuICBpbXBvcnQgeyBhcmNEaWFncmFtIH0gZnJvbSBcIi4uL1Zpc3VhbGlzYXRpb25zL0FyY0RpYWdyYW1cIjtcclxuICBpbXBvcnQgeyBjaXJjbGVQYWNraW5nIH0gZnJvbSBcIi4uL1Zpc3VhbGlzYXRpb25zL0NpcmNsZVBhY2tpbmdcIjtcclxuICBpbXBvcnQgeyBlZGdlQnVuZGxpbmcgfSBmcm9tIFwiLi4vVmlzdWFsaXNhdGlvbnMvRWRnZUJ1bmRsaW5nXCI7XHJcbiAgaW1wb3J0IHsgZm9yY2VEaXJlY3RlZEcgfSBmcm9tIFwiLi4vVmlzdWFsaXNhdGlvbnMvRm9yY2VEaXJlY3RlZEdcIjtcclxuICBpbXBvcnQgeyBpY2ljbGUgfSBmcm9tIFwiLi4vVmlzdWFsaXNhdGlvbnMvSWNpY2xlXCI7XHJcbiAgaW1wb3J0IHsgcmFkaWFsVHJlZSB9IGZyb20gXCIuLi9WaXN1YWxpc2F0aW9ucy9SYWRpYWxUcmVlXCI7XHJcbiAgaW1wb3J0IHsgc3VuYnVyc3QgfSBmcm9tIFwiLi4vVmlzdWFsaXNhdGlvbnMvU3VuYnVyc3RcIjtcclxuICBpbXBvcnQgeyB0aWR5VHJlZSB9IGZyb20gXCIuLi9WaXN1YWxpc2F0aW9ucy9UaWR5VHJlZVwiO1xyXG4gIGltcG9ydCB7IHRyZWVNYXAgfSBmcm9tIFwiLi4vVmlzdWFsaXNhdGlvbnMvVHJlZU1hcFwiO1xyXG4gIGltcG9ydCB0eXBlIHsgVmlzTW9kYWwgfSBmcm9tIFwiLi4vVmlzdWFsaXNhdGlvbnMvVmlzTW9kYWxcIjtcclxuICBpbXBvcnQgeyBnZXRDdXJyRmlsZSB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG4gIGV4cG9ydCBsZXQgbW9kYWw6IFZpc01vZGFsO1xyXG5cclxuICBjb25zdCB7IHBsdWdpbiB9ID0gbW9kYWw7XHJcbiAgY29uc3QgeyBtYWluRywgc2V0dGluZ3MgfSA9IHBsdWdpbjtcclxuICBjb25zdCB7IHZpc0dyYXBoLCB2aXNSZWxhdGlvbiwgdmlzQ2xvc2VkLCB2aXNBbGwgfSA9IHNldHRpbmdzO1xyXG5cclxuICBjb25zdCBjdXJyRmlsZSA9IGdldEN1cnJGaWxlKCk7XHJcblxyXG4gIGNvbnN0IHNlbGVjdG9ycyA9IFtcclxuICAgIHtcclxuICAgICAgdGV4dDogXCJUeXBlXCIsXHJcbiAgICAgIG9wdGlvbnM6IFZJU1RZUEVTLFxyXG4gICAgICB2YWw6IHZpc0dyYXBoLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDogXCJSZWxhdGlvblwiLFxyXG4gICAgICBvcHRpb25zOiBSRUxBVElPTlMsXHJcbiAgICAgIHZhbDogdmlzUmVsYXRpb24sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0ZXh0OiBcIkNsb3NlIEltcGxpZWRcIixcclxuICAgICAgb3B0aW9uczogUkVBbENMT1NFRCxcclxuICAgICAgdmFsOiB2aXNDbG9zZWQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0ZXh0OiBcIk5vIFVubGlua2VkXCIsXHJcbiAgICAgIG9wdGlvbnM6IEFMTFVOTElOS0VELFxyXG4gICAgICB2YWw6IHZpc0FsbCxcclxuICAgIH0sXHJcbiAgXTtcclxuXHJcbiAgY29uc3QgW3dpZHRoLCBoZWlnaHRdID0gW1xyXG4gICAgTWF0aC5yb3VuZCh3aW5kb3cuaW5uZXJXaWR0aCAvIDEuMyksXHJcbiAgICBNYXRoLnJvdW5kKHdpbmRvdy5pbm5lckhlaWdodCAvIDEuMyksXHJcbiAgXTtcclxuXHJcbiAgY29uc3QgW3VwLCBzYW1lLCBkb3duXSA9IFtcclxuICAgIGdldFN1YkluRGlycyhtYWluRywgXCJ1cFwiKSxcclxuICAgIGdldFN1YkluRGlycyhtYWluRywgXCJzYW1lXCIpLFxyXG4gICAgZ2V0U3ViSW5EaXJzKG1haW5HLCBcImRvd25cIiksXHJcbiAgXTtcclxuXHJcbiAgY29uc3QgW2Nsb3NlZFBhcmVudE5vU2luZ2xlLCBjbG9zZWRTaWJsaW5nTm9TaW5nbGUsIGNsb3NlZENoaWxkTm9TaW5nbGVdID0gW1xyXG4gICAgY2xvc2VJbXBsaWVkTGlua3ModXAsIGRvd24pLFxyXG4gICAgY2xvc2VJbXBsaWVkTGlua3Moc2FtZSwgc2FtZSksXHJcbiAgICBjbG9zZUltcGxpZWRMaW5rcyhkb3duLCB1cCksXHJcbiAgXTtcclxuXHJcbiAgY29uc3QgZ3JhcGhzOiBWaXNHcmFwaHMgPSB7XHJcbiAgICBQYXJlbnQ6IHtcclxuICAgICAgUmVhbDoge1xyXG4gICAgICAgIEFsbDogdXAsXHJcbiAgICAgICAgXCJObyBVbmxpbmtlZFwiOiByZW1vdmVVbmxpbmtlZE5vZGVzKHVwKSxcclxuICAgICAgfSxcclxuICAgICAgQ2xvc2VkOiB7XHJcbiAgICAgICAgQWxsOiBjbG9zZWRQYXJlbnROb1NpbmdsZSxcclxuICAgICAgICBcIk5vIFVubGlua2VkXCI6IHJlbW92ZVVubGlua2VkTm9kZXMoY2xvc2VkUGFyZW50Tm9TaW5nbGUpLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIFNpYmxpbmc6IHtcclxuICAgICAgUmVhbDoge1xyXG4gICAgICAgIEFsbDogc2FtZSxcclxuICAgICAgICBcIk5vIFVubGlua2VkXCI6IHJlbW92ZVVubGlua2VkTm9kZXMoc2FtZSksXHJcbiAgICAgIH0sXHJcbiAgICAgIENsb3NlZDoge1xyXG4gICAgICAgIEFsbDogY2xvc2VkU2libGluZ05vU2luZ2xlLFxyXG4gICAgICAgIFwiTm8gVW5saW5rZWRcIjogcmVtb3ZlVW5saW5rZWROb2RlcyhjbG9zZWRTaWJsaW5nTm9TaW5nbGUpLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIENoaWxkOiB7XHJcbiAgICAgIFJlYWw6IHtcclxuICAgICAgICBBbGw6IGRvd24sXHJcbiAgICAgICAgXCJObyBVbmxpbmtlZFwiOiByZW1vdmVVbmxpbmtlZE5vZGVzKGRvd24pLFxyXG4gICAgICB9LFxyXG4gICAgICBDbG9zZWQ6IHtcclxuICAgICAgICBBbGw6IGNsb3NlZENoaWxkTm9TaW5nbGUsXHJcbiAgICAgICAgXCJObyBVbmxpbmtlZFwiOiByZW1vdmVVbmxpbmtlZE5vZGVzKGNsb3NlZENoaWxkTm9TaW5nbGUpLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9O1xyXG5cclxuICAkOiBhcmdBcnIgPSBbXHJcbiAgICBncmFwaHNbc2VsZWN0b3JzWzFdLnZhbF1bc2VsZWN0b3JzWzJdLnZhbF1bc2VsZWN0b3JzWzNdLnZhbF0sXHJcbiAgICBhcHAsXHJcbiAgICBjdXJyRmlsZSxcclxuICAgIG1vZGFsLFxyXG4gICAgd2lkdGgsXHJcbiAgICBoZWlnaHQsXHJcbiAgXTtcclxuXHJcbiAgY29uc3QgdHlwZXM6IHtcclxuICAgIFt2aXMgaW4gVmlzVHlwZV06ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcclxuICB9ID0ge1xyXG4gICAgXCJGb3JjZSBEaXJlY3RlZCBHcmFwaFwiOiBmb3JjZURpcmVjdGVkRyxcclxuICAgIFwiVGlkeSBUcmVlXCI6IHRpZHlUcmVlLFxyXG4gICAgXCJDaXJjbGUgUGFja2luZ1wiOiBjaXJjbGVQYWNraW5nLFxyXG4gICAgXCJFZGdlIEJ1bmRsaW5nXCI6IGVkZ2VCdW5kbGluZyxcclxuICAgIFwiQXJjIERpYWdyYW1cIjogYXJjRGlhZ3JhbSxcclxuICAgIFN1bmJ1cnN0OiBzdW5idXJzdCxcclxuICAgIFwiVHJlZSBNYXBcIjogdHJlZU1hcCxcclxuICAgIEljaWNsZTogaWNpY2xlLFxyXG4gICAgXCJSYWRpYWwgVHJlZVwiOiByYWRpYWxUcmVlLFxyXG4gIH07XHJcblxyXG4gIGZ1bmN0aW9uIGRyYXcodHlwZTogVmlzVHlwZSkge1xyXG4gICAgaWYgKCFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmQzLWdyYXBoXCIpKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuZDMtZ3JhcGhcIik/LmVtcHR5KCk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIHR5cGVzW3R5cGVdKC4uLmFyZ0Fycik7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgIHdhcm4oZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgMTApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5kMy1ncmFwaFwiKS5lbXB0eSgpO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHR5cGVzW3R5cGVdKC4uLmFyZ0Fycik7XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgd2FybihlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICQ6IGRyYXcoc2VsZWN0b3JzWzBdLnZhbCBhcyBWaXNUeXBlKTtcclxuPC9zY3JpcHQ+XHJcblxyXG48ZGl2PlxyXG4gIHsjZWFjaCBzZWxlY3RvcnMgYXMgeyB0ZXh0LCBvcHRpb25zLCB2YWwgfX1cclxuICAgIDxzcGFuPlxyXG4gICAgICB7dGV4dH06XHJcbiAgICAgIDxzZWxlY3QgYmluZDp2YWx1ZT17dmFsfT5cclxuICAgICAgICB7I2VhY2ggb3B0aW9ucyBhcyBvcH1cclxuICAgICAgICAgIDxvcHRpb24gdmFsdWU9e29wfT57b3B9PC9vcHRpb24+XHJcbiAgICAgICAgey9lYWNofVxyXG4gICAgICA8L3NlbGVjdD5cclxuICAgIDwvc3Bhbj5cclxuICB7L2VhY2h9XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImQzLWdyYXBoXCIgLz5cclxuIiwgImltcG9ydCAqIGFzIGQzIGZyb20gXCJkM1wiO1xyXG5pbXBvcnQgdHlwZSBHcmFwaCBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgdHlwZSB7IFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB0eXBlIHsgZDNOb2RlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHsgZ3JhcGhsaWJUb0QzLCBWaXNNb2RhbCB9IGZyb20gXCIuL1Zpc01vZGFsXCI7XHJcbmltcG9ydCB7IG9wZW5PclN3aXRjaCB9IGZyb20gXCJvYnNpZGlhbi1jb21tdW5pdHktbGliXCI7XHJcblxyXG5leHBvcnQgY29uc3QgYXJjRGlhZ3JhbSA9IChcclxuICBncmFwaDogR3JhcGgsXHJcbiAgY3VyckZpbGU6IFRGaWxlLFxyXG4gIG1vZGFsOiBWaXNNb2RhbCxcclxuICB3aWR0aDogbnVtYmVyLFxyXG4gIGhlaWdodDogbnVtYmVyXHJcbikgPT4ge1xyXG4gIGNvbnN0IGRhdGEgPSBncmFwaGxpYlRvRDMoZ3JhcGgpO1xyXG5cclxuICBjb25zdCBtYXJnaW4gPSB7IHRvcDogMjAsIHJpZ2h0OiAyMCwgYm90dG9tOiAyMCwgbGVmdDogMTUwIH07XHJcbiAgY29uc3Qgc3ZnID0gZDNcclxuICAgIC5zZWxlY3QoXCIuZDMtZ3JhcGhcIilcclxuICAgIC5hcHBlbmQoXCJzdmdcIilcclxuICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodClcclxuICAgIC5hdHRyKFwid2lkdGhcIiwgd2lkdGgpO1xyXG5cclxuICBjb25zdCBub2RlcyA9IGRhdGEubm9kZXMubWFwKCh7IGlkLCBuYW1lIH0pID0+ICh7XHJcbiAgICBpZCxcclxuICAgIG5hbWUsXHJcbiAgICBzb3VyY2VMaW5rczogW10sXHJcbiAgICB0YXJnZXRMaW5rczogW10sXHJcbiAgfSkpO1xyXG5cclxuICBjb25zdCBub2RlQnlJZCA9IG5ldyBNYXAobm9kZXMubWFwKChkKSA9PiBbZC5pZCwgZF0pKTtcclxuXHJcbiAgY29uc3QgbGlua3MgPSBkYXRhLmxpbmtzLm1hcCgoeyBzb3VyY2UsIHRhcmdldCB9KSA9PiAoe1xyXG4gICAgc291cmNlOiBub2RlQnlJZC5nZXQoc291cmNlIGFzIG51bWJlciksXHJcbiAgICB0YXJnZXQ6IG5vZGVCeUlkLmdldCh0YXJnZXQgYXMgbnVtYmVyKSxcclxuICB9KSk7XHJcblxyXG4gIGZvciAoY29uc3QgbGluayBvZiBsaW5rcykge1xyXG4gICAgY29uc3QgeyBzb3VyY2UsIHRhcmdldCB9ID0gbGluaztcclxuICAgIHNvdXJjZS5zb3VyY2VMaW5rcy5wdXNoKGxpbmspO1xyXG4gICAgdGFyZ2V0LnRhcmdldExpbmtzLnB1c2gobGluayk7XHJcbiAgfVxyXG5cclxuICBzdmcuYXBwZW5kKFwic3R5bGVcIikudGV4dChgXHJcblxyXG5wYXRoIHtcclxuICBzdHJva2U6ICM4MDgwODA7XHJcbiAgb3BhY2l0eTogMC44O1xyXG59XHJcblxyXG50ZXh0IHtcclxuICBzdHJva2U6IHZhcigtLXRleHQtYSk7XHJcbiAgb3BhY2l0eTogMC44O1xyXG59XHJcblxyXG5cclxuLmhvdmVyIGcucHJpbWFyeSB0ZXh0IHtcclxuICBmaWxsOiBibGFjaztcclxufVxyXG5cclxuLmhvdmVyIGcuc2Vjb25kYXJ5IHRleHQge1xyXG4gIGZpbGw6ICMzMzM7XHJcbn1cclxuXHJcbi5ob3ZlciAuc2Vjb25kYXJ5IHtcclxuICAgIGNvbG9yOiByZWQ7XHJcbn1cclxuXHJcbi5ob3ZlciBwYXRoLnByaW1hcnkge1xyXG4gIHN0cm9rZTogIzMzMztcclxuICBzdHJva2Utb3BhY2l0eTogMTtcclxufVxyXG5cclxuLmhvdmVyIHJlY3Qge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuYCk7XHJcblxyXG4gIGNvbnN0IHkgPSBkMy5zY2FsZVBvaW50KG5vZGVzLm1hcCgoZCkgPT4gZC5uYW1lKS5zb3J0KGQzLmFzY2VuZGluZyksIFtcclxuICAgIG1hcmdpbi50b3AsXHJcbiAgICBoZWlnaHQgLSBtYXJnaW4uYm90dG9tLFxyXG4gIF0pO1xyXG5cclxuICBjb25zdCBsYWJlbCA9IHN2Z1xyXG4gICAgLmFwcGVuZChcImdcIilcclxuICAgIC5hdHRyKFwiZm9udC1mYW1pbHlcIiwgXCJzYW5zLXNlcmlmXCIpXHJcbiAgICAuYXR0cihcImZvbnQtc2l6ZVwiLCAxMClcclxuICAgIC5hdHRyKFwidGV4dC1hbmNob3JcIiwgXCJlbmRcIilcclxuICAgIC5zZWxlY3RBbGwoXCJnXCIpXHJcbiAgICAuZGF0YShub2RlcylcclxuICAgIC5qb2luKFwiZ1wiKVxyXG4gICAgLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgKGQpID0+IGB0cmFuc2xhdGUoJHttYXJnaW4ubGVmdH0sJHsoZC55ID0geShkLm5hbWUpKX0pYClcclxuICAgIC5jYWxsKChnKSA9PlxyXG4gICAgICBnXHJcbiAgICAgICAgLmFwcGVuZChcInRleHRcIilcclxuICAgICAgICAuYXR0cihcInhcIiwgLTYpXHJcbiAgICAgICAgLmF0dHIoXCJkeVwiLCBcIjAuMzVlbVwiKVxyXG4gICAgICAgIC8vIC5hdHRyKFwiZmlsbFwiLCAoZCkgPT4gZDMubGFiKGNvbG9yKGQuZ3JvdXApKS5kYXJrZXIoMikpXHJcbiAgICAgICAgLnRleHQoKGQpID0+IGQubmFtZSlcclxuICAgIClcclxuICAgIC5jYWxsKFxyXG4gICAgICAoZykgPT4gZy5hcHBlbmQoXCJjaXJjbGVcIikuYXR0cihcInJcIiwgMylcclxuICAgICAgLy8gLmF0dHIoXCJmaWxsXCIsIChkKSA9PiBjb2xvcihkLmdyb3VwKSlcclxuICAgICk7XHJcblxyXG4gIGNvbnN0IHBhdGggPSBzdmdcclxuICAgIC5pbnNlcnQoXCJnXCIsIFwiKlwiKVxyXG4gICAgLmF0dHIoXCJmaWxsXCIsIFwibm9uZVwiKVxyXG4gICAgLmF0dHIoXCJzdHJva2Utb3BhY2l0eVwiLCAwLjYpXHJcbiAgICAuYXR0cihcInN0cm9rZS13aWR0aFwiLCAxLjUpXHJcbiAgICAuc2VsZWN0QWxsKFwicGF0aFwiKVxyXG4gICAgLmRhdGEobGlua3MpXHJcbiAgICAuam9pbihcInBhdGhcIilcclxuICAgIC8vIC5hdHRyKFwic3Ryb2tlXCIsIChkKSA9PlxyXG4gICAgLy8gICBkLnNvdXJjZS5ncm91cCA9PT0gZC50YXJnZXQuZ3JvdXAgPyBjb2xvcihkLnNvdXJjZS5ncm91cCkgOiBcIiNhYWFcIlxyXG4gICAgLy8gKVxyXG4gICAgLmF0dHIoXCJkXCIsIGFyYyk7XHJcblxyXG4gIGNvbnN0IHN0ZXAgPSAxMDQ7XHJcblxyXG4gIGNvbnN0IG5vZGVDbGljayA9IChldmVudDogTW91c2VFdmVudCwgZGVzdDogc3RyaW5nKSA9PiB7XHJcbiAgICBvcGVuT3JTd2l0Y2goZGVzdCwgZXZlbnQpO1xyXG4gICAgbW9kYWwuY2xvc2UoKTtcclxuICB9O1xyXG5cclxuICBjb25zdCBvdmVybGF5ID0gc3ZnXHJcbiAgICAuYXBwZW5kKFwiZ1wiKVxyXG4gICAgLmF0dHIoXCJmaWxsXCIsIFwibm9uZVwiKVxyXG4gICAgLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLCBcImFsbFwiKVxyXG4gICAgLnNlbGVjdEFsbChcInJlY3RcIilcclxuICAgIC5kYXRhKG5vZGVzKVxyXG4gICAgLmpvaW4oXCJyZWN0XCIpXHJcbiAgICAuYXR0cihcIndpZHRoXCIsIG1hcmdpbi5sZWZ0ICsgNDApXHJcbiAgICAuYXR0cihcImhlaWdodFwiLCBzdGVwKVxyXG4gICAgLmF0dHIoXCJ5XCIsIChkKSA9PiB5KGQubmFtZSkgLSBzdGVwIC8gMilcclxuICAgIC5vbihcIm1vdXNlb3ZlclwiLCAoZCkgPT4ge1xyXG4gICAgICBzdmcuY2xhc3NlZChcImhvdmVyXCIsIHRydWUpO1xyXG4gICAgICBsYWJlbC5jbGFzc2VkKFwicHJpbWFyeVwiLCAobikgPT4gbiA9PT0gZCk7XHJcbiAgICAgIGxhYmVsLmNsYXNzZWQoXHJcbiAgICAgICAgXCJzZWNvbmRhcnlcIixcclxuICAgICAgICAobikgPT5cclxuICAgICAgICAgIG4uc291cmNlTGlua3Muc29tZSgobCkgPT4gbC50YXJnZXQgPT09IGQpIHx8XHJcbiAgICAgICAgICBuLnRhcmdldExpbmtzLnNvbWUoKGwpID0+IGwuc291cmNlID09PSBkKVxyXG4gICAgICApO1xyXG4gICAgICBwYXRoXHJcbiAgICAgICAgLmNsYXNzZWQoXCJwcmltYXJ5XCIsIChsKSA9PiBsLnNvdXJjZSA9PT0gZCB8fCBsLnRhcmdldCA9PT0gZClcclxuICAgICAgICAuZmlsdGVyKFwiLnByaW1hcnlcIilcclxuICAgICAgICAucmFpc2UoKTtcclxuICAgIH0pXHJcbiAgICAub24oXCJtb3VzZW91dFwiLCAoZCkgPT4ge1xyXG4gICAgICBzdmcuY2xhc3NlZChcImhvdmVyXCIsIGZhbHNlKTtcclxuICAgICAgbGFiZWwuY2xhc3NlZChcInByaW1hcnlcIiwgZmFsc2UpO1xyXG4gICAgICBsYWJlbC5jbGFzc2VkKFwic2Vjb25kYXJ5XCIsIGZhbHNlKTtcclxuICAgICAgcGF0aC5jbGFzc2VkKFwicHJpbWFyeVwiLCBmYWxzZSkub3JkZXIoKTtcclxuICAgIH0pXHJcbiAgICAub24oXCJjbGlja1wiLCAoZXZlbnQ6IE1vdXNlRXZlbnQsIGQ6IGQzTm9kZSkgPT4ge1xyXG4gICAgICBub2RlQ2xpY2soZXZlbnQsIGQubmFtZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgLy8gICBmdW5jdGlvbiB1cGRhdGUoKSB7XHJcbiAgLy8gICAgIHkuZG9tYWluKG5vZGVzLnNvcnQodmlld29mIG9yZGVyLnZhbHVlKS5tYXAoZCA9PiBkLmlkKSk7XHJcblxyXG4gIC8vICAgICBjb25zdCB0ID0gc3ZnLnRyYW5zaXRpb24oKVxyXG4gIC8vICAgICAgICAgLmR1cmF0aW9uKDc1MCk7XHJcblxyXG4gIC8vICAgICBsYWJlbC50cmFuc2l0aW9uKHQpXHJcbiAgLy8gICAgICAgICAuZGVsYXkoKGQsIGkpID0+IGkgKiAyMClcclxuICAvLyAgICAgICAgIC5hdHRyVHdlZW4oXCJ0cmFuc2Zvcm1cIiwgZCA9PiB7XHJcbiAgLy8gICAgICAgICAgIGNvbnN0IGkgPSBkMy5pbnRlcnBvbGF0ZU51bWJlcihkLnksIHkoZC5pZCkpO1xyXG4gIC8vICAgICAgICAgICByZXR1cm4gdCA9PiBgdHJhbnNsYXRlKCR7bWFyZ2luLmxlZnR9LCR7ZC55ID0gaSh0KX0pYDtcclxuICAvLyAgICAgICAgIH0pO1xyXG5cclxuICAvLyAgICAgcGF0aC50cmFuc2l0aW9uKHQpXHJcbiAgLy8gICAgICAgICAuZHVyYXRpb24oNzUwICsgbm9kZXMubGVuZ3RoICogMjApXHJcbiAgLy8gICAgICAgICAuYXR0clR3ZWVuKFwiZFwiLCBkID0+ICgpID0+IGFyYyhkKSk7XHJcblxyXG4gIC8vICAgICBvdmVybGF5LnRyYW5zaXRpb24odClcclxuICAvLyAgICAgICAgIC5kZWxheSgoZCwgaSkgPT4gaSAqIDIwKVxyXG4gIC8vICAgICAgICAgLmF0dHIoXCJ5XCIsIGQgPT4geShkLmlkKSAtIHN0ZXAgLyAyKTtcclxuICAvLyAgIH1cclxuXHJcbiAgLy8gICB2aWV3b2Ygb3JkZXIuYWRkRXZlbnRMaXN0ZW5lcihcImlucHV0XCIsIHVwZGF0ZSk7XHJcbiAgLy8gICBpbnZhbGlkYXRpb24udGhlbigoKSA9PiB2aWV3b2Ygb3JkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImlucHV0XCIsIHVwZGF0ZSkpO1xyXG5cclxuICBmdW5jdGlvbiBhcmMoZDogeyBzb3VyY2U6IHsgeTogbnVtYmVyIH07IHRhcmdldDogeyB5OiBudW1iZXIgfSB9KSB7XHJcbiAgICBjb25zdCB5MSA9IGQuc291cmNlLnk7XHJcbiAgICBjb25zdCB5MiA9IGQudGFyZ2V0Lnk7XHJcbiAgICBjb25zdCByID0gTWF0aC5hYnMoeTIgLSB5MSkgLyAyO1xyXG4gICAgcmV0dXJuIGBNJHttYXJnaW4ubGVmdH0sJHt5MX1BJHtyfSwke3J9IDAsMCwke3kxIDwgeTIgPyAxIDogMH0gJHttYXJnaW4ubGVmdFxyXG4gICAgICB9LCR7eTJ9YDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHpvb21lZCh7IHRyYW5zZm9ybSB9KSB7XHJcbiAgICBzdmcuYXR0cihcInRyYW5zZm9ybVwiLCB0cmFuc2Zvcm0pO1xyXG4gIH1cclxuICBzdmcuY2FsbChcclxuICAgIGQzXHJcbiAgICAgIC56b29tKClcclxuICAgICAgLmV4dGVudChbXHJcbiAgICAgICAgWzAsIDBdLFxyXG4gICAgICAgIFt3aWR0aCwgaGVpZ2h0XSxcclxuICAgICAgXSlcclxuICAgICAgLnNjYWxlRXh0ZW50KFswLjUsIDhdKVxyXG4gICAgICAub24oXCJ6b29tXCIsIHpvb21lZClcclxuICApO1xyXG59O1xyXG4iLCAiaW1wb3J0ICogYXMgZDMgZnJvbSBcImQzXCI7XHJcbmltcG9ydCB0eXBlIEdyYXBoIGZyb20gXCJncmFwaG9sb2d5XCI7XHJcbmltcG9ydCB0eXBlIHsgVEZpbGUgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHR5cGUgeyBBZGpMaXN0SXRlbSwgZDNMaW5rLCBkM05vZGUgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgeyBiZnNBZGpMaXN0LCBkZnNGbGF0QWRqTGlzdCwgVmlzTW9kYWwgfSBmcm9tIFwiLi9WaXNNb2RhbFwiO1xyXG5pbXBvcnQgeyBvcGVuT3JTd2l0Y2ggfSBmcm9tIFwib2JzaWRpYW4tY29tbXVuaXR5LWxpYlwiO1xyXG5pbXBvcnQgeyBnZXRDdXJyRmlsZSB9IGZyb20gXCIuLi9VdGlscy9PYnNpZGlhblV0aWxzXCI7XHJcblxyXG5leHBvcnQgY29uc3QgY2lyY2xlUGFja2luZyA9IChcclxuICBncmFwaDogR3JhcGgsXHJcbiAgY3VyckZpbGU6IFRGaWxlLFxyXG4gIG1vZGFsOiBWaXNNb2RhbCxcclxuICB3aWR0aDogbnVtYmVyLFxyXG4gIGhlaWdodDogbnVtYmVyXHJcbikgPT4ge1xyXG4gIGNvbnN0IGZsYXRBZGogPSBkZnNGbGF0QWRqTGlzdChncmFwaCwgY3VyckZpbGUuYmFzZW5hbWUpO1xyXG4gIGNvbnNvbGUubG9nKHsgZmxhdEFkaiB9KTtcclxuXHJcbiAgY29uc3QgaGllcmFyY2h5ID0gZDMuc3RyYXRpZnkoKShmbGF0QWRqKTtcclxuICBjb25zb2xlLmxvZyh7IGhpZXJhcmNoeSB9KTtcclxuXHJcbiAgY29uc3QgYWRqTGlzdDogQWRqTGlzdEl0ZW1bXSA9IGJmc0Fkakxpc3QoZ3JhcGgsIGN1cnJGaWxlLmJhc2VuYW1lKTtcclxuICBjb25zb2xlLmxvZyh7IGFkakxpc3QgfSk7XHJcblxyXG4gIGNvbnN0IG5vRG91YmxlcyA9IFsuLi5hZGpMaXN0XTtcclxuICBub0RvdWJsZXMuZm9yRWFjaCgoYSwgaSkgPT4ge1xyXG4gICAgaWYgKG5vRG91Ymxlcy5zb21lKChiLCBqKSA9PiBpICE9PSBqICYmIGEubmFtZSA9PT0gYi5uYW1lKSkge1xyXG4gICAgICBjb25zdCBpbmRleCA9IG5vRG91Ymxlcy5maW5kSW5kZXgoKGIsIGopID0+IGkgIT09IGogJiYgYS5uYW1lID09PSBiLm5hbWUpO1xyXG4gICAgICBub0RvdWJsZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgLy8gY29uc3Qgbm9Eb3VibGVzID0gYWRqTGlzdC5maWx0ZXIoKGEpID0+IHtcclxuICAvLyAgICFhZGpMaXN0LnNvbWUoKGIpID0+IHtcclxuICAvLyAgICAgY29uc29sZS5sb2coeyBhLCBiIH0pO1xyXG4gIC8vICAgICByZXR1cm4gYS5uYW1lICE9PSBiLm5hbWUgJiYgYS5wYXJlbnRJZCA9PT0gYi5wYXJlbnRJZDtcclxuICAvLyAgIH0pO1xyXG4gIC8vIH0pO1xyXG4gIGNvbnNvbGUubG9nKHsgbm9Eb3VibGVzIH0pO1xyXG5cclxuICAvLyBjb25zdCByb290ID0gc3RyYXRpZnkobm9Eb3VibGVzKTtcclxuICAvLyBjb25zb2xlLmxvZyhyb290KTtcclxuXHJcbiAgLy8gY29uc3QgaGllcmFyY2h5OiBkM1RyZWUgPSBjcmVhdGVUcmVlSGllcmFyY2h5KG5vRG91Ymxlcywge1xyXG4gIC8vICAgaWQ6IFwibmFtZVwiLFxyXG4gIC8vICAgZXhjbHVkZVBhcmVudDogdHJ1ZSxcclxuICAvLyB9KTtcclxuXHJcbiAgLy8gY29uc29sZS5sb2coeyBoaWVyYXJjaHkgfSk7XHJcblxyXG4gIGNvbnN0IGxpbmtBcnI6IGQzTGlua1tdID0gbm9Eb3VibGVzLm1hcCgoZCkgPT4ge1xyXG4gICAgcmV0dXJuIHsgc291cmNlOiBkLm5hbWUsIHRhcmdldDogZC5wYXJlbnRJZCB9O1xyXG4gIH0pO1xyXG4gIGNvbnN0IGxpbmtzID0gbGlua0Fyci5tYXAoKGQpID0+IE9iamVjdC5jcmVhdGUoZCkpO1xyXG5cclxuICBjb25zdCBzdmcgPSBkM1xyXG4gICAgLnNlbGVjdChcIi5kMy1ncmFwaFwiKVxyXG4gICAgLmFwcGVuZChcInN2Z1wiKVxyXG4gICAgLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0KVxyXG4gICAgLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aCk7XHJcblxyXG4gIGNvbnN0IG5vZGVDb2xvdXIgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5VmFsdWUoXHJcbiAgICBcIi0tdGV4dC1hY2NlbnRcIlxyXG4gICk7XHJcblxyXG4gIC8vIEluaXRpYWxpemUgdGhlIGNpcmNsZTogYWxsIGxvY2F0ZWQgYXQgdGhlIGNlbnRlciBvZiB0aGUgc3ZnIGFyZWFcclxuICBjb25zdCBub2RlID0gc3ZnXHJcbiAgICAuYXBwZW5kKFwiZ1wiKVxyXG4gICAgLnNlbGVjdEFsbChcImNpcmNsZVwiKVxyXG4gICAgLmRhdGEobm9Eb3VibGVzKVxyXG4gICAgLmpvaW4oXCJjaXJjbGVcIilcclxuICAgIC5hdHRyKFwiclwiLCAoZCkgPT4gTWF0aC5yb3VuZChkLmhlaWdodCAvIDEwKSArIDEwKVxyXG4gICAgLmF0dHIoXCJjeFwiLCB3aWR0aCAvIDIpXHJcbiAgICAuYXR0cihcImN5XCIsIGhlaWdodCAvIDIpXHJcbiAgICAuc3R5bGUoXCJmaWxsXCIsIG5vZGVDb2xvdXIpXHJcbiAgICAuc3R5bGUoXCJmaWxsLW9wYWNpdHlcIiwgMC42KVxyXG4gICAgLmF0dHIoXCJzdHJva2VcIiwgbm9kZUNvbG91cilcclxuICAgIC5zdHlsZShcInN0cm9rZS13aWR0aFwiLCA0KTtcclxuXHJcbiAgbm9kZS5hdHRyKFwiYXJpYS1sYWJlbFwiLCAoZDogQWRqTGlzdEl0ZW0pID0+IGQubmFtZSk7XHJcblxyXG4gIGNvbnN0IG5vZGVDbGljayA9IChldmVudDogTW91c2VFdmVudCwgZGVzdDogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBjdXJyRmlsZSA9IGdldEN1cnJGaWxlKCk7XHJcbiAgICBvcGVuT3JTd2l0Y2goZGVzdCwgZXZlbnQpO1xyXG4gICAgbW9kYWwuY2xvc2UoKTtcclxuICB9O1xyXG4gIG5vZGUub24oXCJjbGlja1wiLCAoZXZlbnQ6IE1vdXNlRXZlbnQsIGQ6IGQzTm9kZSkgPT4ge1xyXG4gICAgbm9kZUNsaWNrKGV2ZW50LCBkLm5hbWUpO1xyXG4gIH0pO1xyXG5cclxuICBjb25zdCBsaW5rID0gc3ZnXHJcbiAgICAuYXBwZW5kKFwiZ1wiKVxyXG4gICAgLmF0dHIoXCJzdHJva2VcIiwgXCIjODY4MjgyXCIpXHJcbiAgICAuYXR0cihcInN0cm9rZS1vcGFjaXR5XCIsIDAuNilcclxuICAgIC5zZWxlY3RBbGwoXCJsaW5lXCIpXHJcbiAgICAuZGF0YShsaW5rcylcclxuICAgIC5qb2luKFwibGluZVwiKVxyXG4gICAgLmF0dHIoXCJzdHJva2Utd2lkdGhcIiwgMC44KTtcclxuXHJcbiAgLy8gRmVhdHVyZXMgb2YgdGhlIGZvcmNlcyBhcHBsaWVkIHRvIHRoZSBub2RlczpcclxuICBjb25zdCBzaW11bGF0aW9uID0gZDNcclxuICAgIC5mb3JjZVNpbXVsYXRpb24oKVxyXG4gICAgLmZvcmNlKFxyXG4gICAgICBcImNlbnRlclwiLFxyXG4gICAgICBkM1xyXG4gICAgICAgIC5mb3JjZUNlbnRlcigpXHJcbiAgICAgICAgLngod2lkdGggLyAyKVxyXG4gICAgICAgIC55KGhlaWdodCAvIDIpXHJcbiAgICApIC8vIEF0dHJhY3Rpb24gdG8gdGhlIGNlbnRlciBvZiB0aGUgc3ZnIGFyZWFcclxuICAgIC5mb3JjZShcImNoYXJnZVwiLCBkMy5mb3JjZU1hbnlCb2R5KCkuc3RyZW5ndGgoMC41KSkgLy8gTm9kZXMgYXJlIGF0dHJhY3RlZCBvbmUgZWFjaCBvdGhlciBvZiB2YWx1ZSBpcyA+IDBcclxuICAgIC5mb3JjZShcclxuICAgICAgXCJjb2xsaWRlXCIsXHJcbiAgICAgIGQzLmZvcmNlQ29sbGlkZSgpLnN0cmVuZ3RoKDAuMDI1KS5yYWRpdXMoMzApLml0ZXJhdGlvbnMoMSlcclxuICAgICk7IC8vIEZvcmNlIHRoYXQgYXZvaWRzIGNpcmNsZSBvdmVybGFwcGluZ1xyXG5cclxuICAvLyBBcHBseSB0aGVzZSBmb3JjZXMgdG8gdGhlIG5vZGVzIGFuZCB1cGRhdGUgdGhlaXIgcG9zaXRpb25zLlxyXG4gIC8vIE9uY2UgdGhlIGZvcmNlIGFsZ29yaXRobSBpcyBoYXBweSB3aXRoIHBvc2l0aW9ucyAoJ2FscGhhJyB2YWx1ZSBpcyBsb3cgZW5vdWdoKSwgc2ltdWxhdGlvbnMgd2lsbCBzdG9wLlxyXG4gIHNpbXVsYXRpb24ubm9kZXMobm9Eb3VibGVzKS5vbihcInRpY2tcIiwgZnVuY3Rpb24gKGQpIHtcclxuICAgIG5vZGUuYXR0cihcImN4XCIsIChkKSA9PiBkLngpLmF0dHIoXCJjeVwiLCAoZCkgPT4gZC55KTtcclxuICB9KTtcclxuXHJcbiAgZnVuY3Rpb24gem9vbWVkKHsgdHJhbnNmb3JtIH0pIHtcclxuICAgIG5vZGUuYXR0cihcInRyYW5zZm9ybVwiLCB0cmFuc2Zvcm0pO1xyXG4gIH1cclxuICBzdmcuY2FsbChcclxuICAgIGQzXHJcbiAgICAgIC56b29tKClcclxuICAgICAgLmV4dGVudChbXHJcbiAgICAgICAgWzAsIDBdLFxyXG4gICAgICAgIFt3aWR0aCwgaGVpZ2h0XSxcclxuICAgICAgXSlcclxuICAgICAgLnNjYWxlRXh0ZW50KFswLjUsIDhdKVxyXG4gICAgICAub24oXCJ6b29tXCIsIHpvb21lZClcclxuICApO1xyXG5cclxuICBjb25zdCBkcmFnID0gKFxyXG4gICAgc2ltdWxhdGlvbjogZDMuU2ltdWxhdGlvbjxkMy5TaW11bGF0aW9uTm9kZURhdHVtLCB1bmRlZmluZWQ+XHJcbiAgKSA9PiB7XHJcbiAgICBmdW5jdGlvbiBkcmFnc3RhcnRlZChldmVudCwgZCkge1xyXG4gICAgICBpZiAoIWV2ZW50LmFjdGl2ZSkgc2ltdWxhdGlvbi5hbHBoYVRhcmdldCgwLjMpLnJlc3RhcnQoKTtcclxuICAgICAgZC5meCA9IGQueDtcclxuICAgICAgZC5meSA9IGQueTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBkcmFnZ2VkKGV2ZW50LCBkKSB7XHJcbiAgICAgIGQuZnggPSBldmVudC54O1xyXG4gICAgICBkLmZ5ID0gZXZlbnQueTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBkcmFnZW5kZWQoZXZlbnQsIGQpIHtcclxuICAgICAgaWYgKCFldmVudC5hY3RpdmUpIHNpbXVsYXRpb24uYWxwaGFUYXJnZXQoMCk7XHJcbiAgICAgIGQuZnggPSBudWxsO1xyXG4gICAgICBkLmZ5ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZDNcclxuICAgICAgLmRyYWcoKVxyXG4gICAgICAub24oXCJzdGFydFwiLCBkcmFnc3RhcnRlZClcclxuICAgICAgLm9uKFwiZHJhZ1wiLCBkcmFnZ2VkKVxyXG4gICAgICAub24oXCJlbmRcIiwgZHJhZ2VuZGVkKTtcclxuICB9O1xyXG5cclxuICBub2RlLmNhbGwoZHJhZyhzaW11bGF0aW9uKSk7XHJcblxyXG4gIC8vICAgY29uc3QgcGFjayA9IChkYXRhKSA9PlxyXG4gIC8vICAgICBkMy5wYWNrKCkuc2l6ZShbd2lkdGgsIGhlaWdodF0pLnBhZGRpbmcoMykoXHJcbiAgLy8gICAgICAgZDNcclxuICAvLyAgICAgICAgIC5oaWVyYXJjaHkoZGF0YSlcclxuICAvLyAgICAgICAgIC5zdW0oKGQpID0+IGQudmFsdWUpXHJcbiAgLy8gICAgICAgICAuc29ydCgoYSwgYikgPT4gYi52YWx1ZSAtIGEudmFsdWUpXHJcbiAgLy8gICAgICk7XHJcblxyXG4gIC8vICAgY29uc3Qgcm9vdCA9IHBhY2soaGllcmFyY2h5KTtcclxuXHJcbiAgLy8gICBjb25zdCBzdmcgPSBkM1xyXG4gIC8vICAgICAuc2VsZWN0KFwiLmQzLWdyYXBoXCIpXHJcbiAgLy8gICAgIC5hcHBlbmQoXCJzdmdcIilcclxuICAvLyAgICAgLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0KVxyXG4gIC8vICAgICAuYXR0cihcIndpZHRoXCIsIHdpZHRoKVxyXG4gIC8vICAgICAuc3R5bGUoXCJmb250XCIsIFwiMTBweCBzYW5zLXNlcmlmXCIpXHJcbiAgLy8gICAgIC5zdHlsZShcIm92ZXJmbG93XCIsIFwidmlzaWJsZVwiKVxyXG4gIC8vICAgICAuYXR0cihcInRleHQtYW5jaG9yXCIsIFwibWlkZGxlXCIpO1xyXG5cclxuICAvLyAgIGNvbnN0IG5vZGUgPSBzdmdcclxuICAvLyAgICAgLmFwcGVuZChcImdcIilcclxuICAvLyAgICAgLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLCBcImFsbFwiKVxyXG4gIC8vICAgICAuc2VsZWN0QWxsKFwiZ1wiKVxyXG4gIC8vICAgICAuZGF0YShyb290LmRlc2NlbmRhbnRzKCkpXHJcbiAgLy8gICAgIC5qb2luKFwiZ1wiKVxyXG4gIC8vICAgICAuYXR0cihcInRyYW5zZm9ybVwiLCAoZCkgPT4gYHRyYW5zbGF0ZSgke2QueH0sJHtkLnl9KWApO1xyXG5cclxuICAvLyAgIG5vZGVcclxuICAvLyAgICAgLmFwcGVuZChcImNpcmNsZVwiKVxyXG4gIC8vICAgICAuYXR0cihcInJcIiwgKGQpID0+IGQucilcclxuICAvLyAgICAgLmF0dHIoXCJzdHJva2VcIiwgKGQpID0+IChkLmNoaWxkcmVuID8gXCIjYmJiXCIgOiBcIm5vbmVcIikpXHJcbiAgLy8gICAgIC5hdHRyKFwiZmlsbFwiLCAoZCkgPT4gKGQuY2hpbGRyZW4gPyBcIm5vbmVcIiA6IFwiI2RkZFwiKSk7XHJcblxyXG4gIC8vICAgY29uc3QgbGVhZiA9IG5vZGUuZmlsdGVyKChkKSA9PiAhZC5jaGlsZHJlbik7XHJcblxyXG4gIC8vICAgbGVhZi5zZWxlY3QoXCJjaXJjbGVcIik7XHJcblxyXG4gIC8vICAgLy8gbGVhZlxyXG4gIC8vICAgLy8gICAuYXBwZW5kKFwiY2xpcFBhdGhcIilcclxuICAvLyAgIC8vICAgLmF0dHIoXCJpZFwiLCAoZCkgPT4gKGQuY2xpcFVpZCA9IERPTS51aWQoXCJjbGlwXCIpKS5pZClcclxuICAvLyAgIC8vICAgLmFwcGVuZChcInVzZVwiKVxyXG4gIC8vICAgLy8gICAuYXR0cihcInhsaW5rOmhyZWZcIiwgKGQpID0+IGQubGVhZlVpZC5ocmVmKTtcclxuXHJcbiAgLy8gICAvLyBsZWFmXHJcbiAgLy8gICAvLyAgIC5hcHBlbmQoXCJ0ZXh0XCIpXHJcbiAgLy8gICAvLyAgIC5hdHRyKFwiY2xpcC1wYXRoXCIsIChkKSA9PiBkLmNsaXBVaWQpXHJcbiAgLy8gICAvLyAgIC5zZWxlY3RBbGwoXCJ0c3BhblwiKVxyXG4gIC8vICAgLy8gICAuZGF0YSgoZCkgPT4gZC5kYXRhLm5hbWUuc3BsaXQoLyg/PVtBLVpdW15BLVpdKS9nKSlcclxuICAvLyAgIC8vICAgLmpvaW4oXCJ0c3BhblwiKVxyXG4gIC8vICAgLy8gICAuYXR0cihcInhcIiwgMClcclxuICAvLyAgIC8vICAgLmF0dHIoXCJ5XCIsIChkLCBpLCBub2RlcykgPT4gYCR7aSAtIG5vZGVzLmxlbmd0aCAvIDIgKyAwLjh9ZW1gKVxyXG4gIC8vICAgLy8gICAudGV4dCgoZCkgPT4gZCk7XHJcblxyXG4gIC8vICAgbm9kZS5hcHBlbmQoXCJ0aXRsZVwiKS50ZXh0KFxyXG4gIC8vICAgICAoZCkgPT4gYCR7ZFxyXG4gIC8vICAgICAgIC5hbmNlc3RvcnMoKVxyXG4gIC8vICAgICAgIC5tYXAoKGQpID0+IGQuZGF0YS5kYXRhLm5hbWUpXHJcbiAgLy8gICAgICAgLnJldmVyc2UoKVxyXG4gIC8vICAgICAgIC5qb2luKFwiL1wiKX1cclxuICAvLyAke2QudmFsdWUudG9Mb2NhbGVTdHJpbmcoKX1gXHJcbiAgLy8gICApO1xyXG59O1xyXG4iLCAiaW1wb3J0ICogYXMgZDMgZnJvbSBcImQzXCI7XHJcbmltcG9ydCB0eXBlIEdyYXBoIGZyb20gXCJncmFwaG9sb2d5XCI7XHJcbmltcG9ydCB0eXBlIHsgVEZpbGUgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHsgZGZzRmxhdEFkakxpc3QsIFZpc01vZGFsIH0gZnJvbSBcIi4vVmlzTW9kYWxcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBlZGdlQnVuZGxpbmcgPSAoXHJcbiAgZ3JhcGg6IEdyYXBoLFxyXG4gIGN1cnJGaWxlOiBURmlsZSxcclxuICBtb2RhbDogVmlzTW9kYWwsXHJcbiAgd2lkdGg6IG51bWJlcixcclxuICBoZWlnaHQ6IG51bWJlclxyXG4pID0+IHtcclxuICBjb25zdCBmbGF0QWRqID0gZGZzRmxhdEFkakxpc3QoZ3JhcGgsIGN1cnJGaWxlLmJhc2VuYW1lKTtcclxuICBjb25zb2xlLmxvZyh7IGZsYXRBZGogfSk7XHJcblxyXG4gIGNvbnN0IGhpZXIgPSBkMy5zdHJhdGlmeSgpKGZsYXRBZGopO1xyXG4gIGNvbnNvbGUubG9nKHsgaGllciB9KTtcclxuXHJcbiAgY29uc3QgUEFERElOR19CVUJCTEUgPSAxNTsgLy8gZGlzdGFuY2UgYmV0d2VlbiBlZGdlIGVuZCBhbmQgYnViYmxlXHJcbiAgY29uc3QgUEFERElOR19MQUJFTCA9IDMwOyAvLyBkaXN0YW5jZSBiZXR3ZWVuIGVkZ2UgZW5kIGFuZCBlbmdpbmVlciBuYW1lXHJcbiAgY29uc3QgQlVCQkxFX1NJWkVfTUlOID0gNDtcclxuICBjb25zdCBCVUJCTEVfU0laRV9NQVggPSAyMDtcclxuXHJcbiAgdmFyIGRpYW1ldGVyID0gNTYwLFxyXG4gICAgcmFkaXVzID0gZGlhbWV0ZXIgLyAyLFxyXG4gICAgaW5uZXJSYWRpdXMgPSByYWRpdXMgLSAxNzA7IC8vIGJldHdlZW4gY2VudGVyIGFuZCBlZGdlIGVuZFxyXG5cclxuICAvLyBUaGUgJ2NsdXN0ZXInIGZ1bmN0aW9uIHRha2VzIDEgYXJndW1lbnQgYXMgaW5wdXQuIEl0IGFsc28gaGFzIG1ldGhvZHMgKD8/KSBsaWtlIGNsdXN0ZXIuc2VwYXJhdGlvbigpLCBjbHVzdGVyLnNpemUoKSBhbmQgY2x1c3Rlci5ub2RlU2l6ZSgpXHJcbiAgdmFyIGNsdXN0ZXIgPSBkMy5jbHVzdGVyKCkuc2l6ZShbMzYwLCBpbm5lclJhZGl1c10pO1xyXG5cclxuICB2YXIgbGluZSA9IGQzXHJcbiAgICAubGluZVJhZGlhbCgpXHJcbiAgICAuY3VydmUoZDMuY3VydmVCdW5kbGUuYmV0YSgwLjg1KSlcclxuICAgIC5yYWRpdXMoZnVuY3Rpb24gKGQpIHtcclxuICAgICAgcmV0dXJuIGRbMV07XHJcbiAgICB9KVxyXG4gICAgLmFuZ2xlKGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgIHJldHVybiAoZFswXSAvIDE4MCkgKiBNYXRoLlBJO1xyXG4gICAgfSk7XHJcblxyXG4gIGNvbnN0IHN2ZyA9IGQzXHJcbiAgICAuc2VsZWN0KFwiLmQzLWdyYXBoXCIpXHJcbiAgICAuYXBwZW5kKFwic3ZnXCIpXHJcbiAgICAuYXR0cihcImhlaWdodFwiLCBoZWlnaHQpXHJcbiAgICAuYXR0cihcIndpZHRoXCIsIHdpZHRoKVxyXG4gICAgLmFwcGVuZChcImdcIilcclxuICAgIC5hdHRyKFwidHJhbnNmb3JtXCIsIFwidHJhbnNsYXRlKFwiICsgcmFkaXVzICsgXCIsXCIgKyByYWRpdXMgKyBcIilcIik7XHJcblxyXG4gIHZhciBsaW5rID0gc3ZnLmFwcGVuZChcImdcIikuc2VsZWN0QWxsKFwiLmxpbmtcIiksXHJcbiAgICBsYWJlbCA9IHN2Zy5hcHBlbmQoXCJnXCIpLnNlbGVjdEFsbChcIi5sYWJlbFwiKSxcclxuICAgIGJ1YmJsZSA9IHN2Zy5hcHBlbmQoXCJnXCIpLnNlbGVjdEFsbChcIi5idWJibGVcIik7XHJcblxyXG4gIC8vIEFkZCBhIHNjYWxlIGZvciBidWJibGUgc2l6ZVxyXG4gIHZhciBidWJibGVTaXplU2NhbGUgPSBkM1xyXG4gICAgLnNjYWxlTGluZWFyKClcclxuICAgIC5kb21haW4oWzAsIDEwMF0pXHJcbiAgICAucmFuZ2UoW0JVQkJMRV9TSVpFX01JTiwgQlVCQkxFX1NJWkVfTUFYXSk7XHJcblxyXG4gIC8vIFNjYWxlIGZvciB0aGUgYnViYmxlIHNpemVcclxuXHJcbiAgLy8gSWYgd2FubmEgc2VlIHlvdXIgZGF0YVxyXG4gIC8vIGNvbnNvbGUubG9nKGhpZXJhcmNoaWNhbERhdGEpXHJcblxyXG4gIC8vIFJlZm9ybWF0IHRoZSBkYXRhXHJcbiAgdmFyIHJvb3QgPSBwYWNrYWdlSGllcmFyY2h5KGhpZXIpXHJcbiAgICAvL2RlYnVnZ2VyO1xyXG4gICAgLnN1bShmdW5jdGlvbiAoZCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhkKTtcclxuICAgICAgcmV0dXJuIGQuaGVpZ2h0O1xyXG4gICAgfSk7XHJcblxyXG4gIC8vIGNvbnNvbGUubG9nKHJvb3QpXHJcblxyXG4gIC8vIEJ1aWxkIGFuIG9iamVjdCB0aGF0IGdpdmVzIGZlYXR1cmUgb2YgZWFjaCBsZWF2ZXNcclxuICBjbHVzdGVyKHJvb3QpO1xyXG4gIGNvbnN0IGxlYXZlcyA9IHJvb3QubGVhdmVzKCk7XHJcblxyXG4gIC8vIExlYXZlcyBpcyBhbiBhcnJheSBvZiBPYmplY3RzLiAxIGl0ZW0gPSBvbmUgbGVhZi4gUHJvdmlkZXMgeCBhbmQgeSBmb3IgbGVhZiBwb3NpdGlvbiBpbiB0aGUgc3ZnLiBBbHNvIGdpdmVzIGRldGFpbHMgYWJvdXQgaXRzIHBhcmVudC5cclxuICBjb25zdCBfbGluayA9IGxpbmtcclxuICAgIC5kYXRhKHBhY2thZ2VJbXBvcnRzKGxlYXZlcykpXHJcbiAgICAuZW50ZXIoKVxyXG4gICAgLmFwcGVuZChcInBhdGhcIilcclxuICAgIC5lYWNoKGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgIChkLnNvdXJjZSA9IGRbMF0pLCAoZC50YXJnZXQgPSBkW2QubGVuZ3RoIC0gMV0pO1xyXG4gICAgfSlcclxuICAgIC5hdHRyKFwiY2xhc3NcIiwgXCJsaW5rXCIpXHJcbiAgICAuYXR0cihcImRcIiwgbGluZSlcclxuICAgIC5hdHRyKFwiZmlsbFwiLCBcIm5vbmVcIilcclxuICAgIC5hdHRyKFwic3Ryb2tlXCIsIFwiYmxhY2tcIik7XHJcblxyXG4gIGNvbnN0IF9sYWJlbCA9IGxhYmVsXHJcbiAgICAuZGF0YShsZWF2ZXMpXHJcbiAgICAuZW50ZXIoKVxyXG4gICAgLmFwcGVuZChcInRleHRcIilcclxuICAgIC5hdHRyKFwiY2xhc3NcIiwgXCJsYWJlbFwiKVxyXG4gICAgLmF0dHIoXCJkeVwiLCBcIjAuMzFlbVwiKVxyXG4gICAgLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgZnVuY3Rpb24gKGQpIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBcInJvdGF0ZShcIiArXHJcbiAgICAgICAgKGQueCAtIDkwKSArXHJcbiAgICAgICAgXCIpdHJhbnNsYXRlKFwiICtcclxuICAgICAgICAoZC55ICsgUEFERElOR19MQUJFTCkgK1xyXG4gICAgICAgIFwiLDApXCIgK1xyXG4gICAgICAgIChkLnggPCAxODAgPyBcIlwiIDogXCJyb3RhdGUoMTgwKVwiKVxyXG4gICAgICApO1xyXG4gICAgfSlcclxuICAgIC5hdHRyKFwidGV4dC1hbmNob3JcIiwgZnVuY3Rpb24gKGQpIHtcclxuICAgICAgcmV0dXJuIGQueCA8IDE4MCA/IFwic3RhcnRcIiA6IFwiZW5kXCI7XHJcbiAgICB9KVxyXG4gICAgLnRleHQoZnVuY3Rpb24gKGQpIHtcclxuICAgICAgcmV0dXJuIGQuZGF0YS5rZXk7XHJcbiAgICB9KTtcclxuXHJcbiAgY29uc3QgX2J1YmJsZSA9IGJ1YmJsZVxyXG4gICAgLmRhdGEobGVhdmVzKVxyXG4gICAgLmVudGVyKClcclxuICAgIC5hcHBlbmQoXCJjaXJjbGVcIilcclxuICAgIC5hdHRyKFwiY2xhc3NcIiwgXCJidWJibGVcIilcclxuICAgIC5hdHRyKFwidHJhbnNmb3JtXCIsIGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgXCJyb3RhdGUoXCIgKyAoZC54IC0gOTApICsgXCIpdHJhbnNsYXRlKFwiICsgKGQueSArIFBBRERJTkdfQlVCQkxFKSArIFwiLDApXCJcclxuICAgICAgKTtcclxuICAgIH0pXHJcbiAgICAuYXR0cihcInJcIiwgKGQpID0+IGJ1YmJsZVNpemVTY2FsZShkLnZhbHVlKSlcclxuICAgIC5hdHRyKFwic3Ryb2tlXCIsIFwiYmxhY2tcIilcclxuICAgIC5hdHRyKFwiZmlsbFwiLCBcIiM2OWEzYjJcIilcclxuICAgIC5zdHlsZShcIm9wYWNpdHlcIiwgMC4yKTtcclxuXHJcbiAgLy8gTGF6aWx5IGNvbnN0cnVjdCB0aGUgcGFja2FnZSBoaWVyYXJjaHkgZnJvbSBjbGFzcyBuYW1lcy5cclxuICBmdW5jdGlvbiBwYWNrYWdlSGllcmFyY2h5KGNsYXNzZXMpIHtcclxuICAgIHZhciBtYXAgPSB7fTtcclxuXHJcbiAgICBmdW5jdGlvbiBmaW5kKG5hbWUsIGRhdGEpIHtcclxuICAgICAgdmFyIG5vZGUgPSBtYXBbbmFtZV0sXHJcbiAgICAgICAgaTtcclxuICAgICAgaWYgKCFub2RlKSB7XHJcbiAgICAgICAgbm9kZSA9IG1hcFtuYW1lXSA9IGRhdGEgfHwgeyBuYW1lOiBuYW1lLCBjaGlsZHJlbjogW10gfTtcclxuICAgICAgICBpZiAobmFtZS5sZW5ndGgpIHtcclxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgIG5vZGUucGFyZW50ID0gZmluZChuYW1lLnN1YnN0cmluZygwLCAoaSA9IG5hbWUubGFzdEluZGV4T2YoXCIuXCIpKSkpO1xyXG4gICAgICAgICAgbm9kZS5wYXJlbnQuY2hpbGRyZW4ucHVzaChub2RlKTtcclxuICAgICAgICAgIG5vZGUua2V5ID0gbmFtZS5zdWJzdHJpbmcoaSArIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbm9kZTtcclxuICAgIH1cclxuXHJcbiAgICBjbGFzc2VzLmZvckVhY2goZnVuY3Rpb24gKGQpIHtcclxuICAgICAgZmluZChkLm5hbWUsIGQpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGQzLmhpZXJhcmNoeShtYXBbXCJcIl0pO1xyXG4gIH1cclxuXHJcbiAgLy8gUmV0dXJuIGEgbGlzdCBvZiBpbXBvcnRzIGZvciB0aGUgZ2l2ZW4gYXJyYXkgb2Ygbm9kZXMuXHJcbiAgZnVuY3Rpb24gcGFja2FnZUltcG9ydHMobm9kZXMpIHtcclxuICAgIHZhciBtYXAgPSB7fSxcclxuICAgICAgaW1wb3J0cyA9IFtdO1xyXG5cclxuICAgIC8vIENvbXB1dGUgYSBtYXAgZnJvbSBuYW1lIHRvIG5vZGUuXHJcbiAgICBub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgIG1hcFtkLmRhdGEubmFtZV0gPSBkO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gRm9yIGVhY2ggaW1wb3J0LCBjb25zdHJ1Y3QgYSBsaW5rIGZyb20gdGhlIHNvdXJjZSB0byB0YXJnZXQgbm9kZS5cclxuICAgIG5vZGVzLmZvckVhY2goZnVuY3Rpb24gKGQpIHtcclxuICAgICAgaWYgKGQuZGF0YS5pbXBvcnRzKVxyXG4gICAgICAgIGQuZGF0YS5pbXBvcnRzLmZvckVhY2goZnVuY3Rpb24gKGkpIHtcclxuICAgICAgICAgIGltcG9ydHMucHVzaChtYXBbZC5kYXRhLm5hbWVdLnBhdGgobWFwW2ldKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gaW1wb3J0cztcclxuICB9XHJcbn07XHJcbiIsICJpbXBvcnQgKiBhcyBkMyBmcm9tIFwiZDNcIjtcclxuaW1wb3J0IHR5cGUgR3JhcGggZnJvbSBcImdyYXBob2xvZ3lcIjtcclxuaW1wb3J0IHsgb3Blbk9yU3dpdGNoIH0gZnJvbSBcIm9ic2lkaWFuLWNvbW11bml0eS1saWJcIjtcclxuaW1wb3J0IHR5cGUgeyBkM05vZGUgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgeyBncmFwaGxpYlRvRDMsIFZpc01vZGFsIH0gZnJvbSBcIi4vVmlzTW9kYWxcIjtcclxuaW1wb3J0IHR5cGUgeyBURmlsZSB9IGZyb20gXCJvYnNpZGlhblwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IGZvcmNlRGlyZWN0ZWRHID0gKFxyXG4gIGdyYXBoOiBHcmFwaCxcclxuICBjdXJyRmlsZTogVEZpbGUsXHJcbiAgbW9kYWw6IFZpc01vZGFsLFxyXG4gIHdpZHRoOiBudW1iZXIsXHJcbiAgaGVpZ2h0OiBudW1iZXJcclxuKSA9PiB7XHJcbiAgY29uc3QgeyBzZXR0aW5ncyB9ID0gbW9kYWwucGx1Z2luO1xyXG4gIGxldCBub2RlVG9HZXRUbyA9IGN1cnJGaWxlLmJhc2VuYW1lO1xyXG4gIGNvbnNvbGUubG9nKHsgbm9kZVRvR2V0VG8gfSk7XHJcblxyXG4gIGNvbnNvbGUudGltZShcIkZpbmQgYWxsIHBhdGhzXCIpO1xyXG4gIC8vIGxldCBwYXRoc0Zyb21Ob2RlVG9HZXRUbyA9IGdyYXBobGliLmFsZy5kaWprc3RyYShncmFwaCwgbm9kZVRvR2V0VG8pO1xyXG4gIGNvbnNvbGUudGltZUVuZChcIkZpbmQgYWxsIHBhdGhzXCIpO1xyXG5cclxuICBjb25zdCBkZWZhdWx0Tm9kZUNvbG91ciA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZ2V0UHJvcGVydHlWYWx1ZShcclxuICAgIFwiLS10ZXh0LWFjY2VudFwiXHJcbiAgKTtcclxuICBsZXQgY3Vyck5vZGVDb2xvdXIgPSBkZWZhdWx0Tm9kZUNvbG91cjtcclxuXHJcbiAgY29uc3QgY29sb3VyQ2hhbmdlSW5wdXQgPSBkM1xyXG4gICAgLnNlbGVjdChcIi5kMy1ncmFwaFwiKVxyXG4gICAgLmFwcGVuZChcImlucHV0XCIpXHJcbiAgICAuYXR0cihcInR5cGVcIiwgXCJjb2xvclwiKTtcclxuXHJcbiAgY29sb3VyQ2hhbmdlSW5wdXQub24oXCJjaGFuZ2VcIiwgZnVuY3Rpb24gY2hhbmdlQ29sb3IoZWwpIHtcclxuICAgIGN1cnJOb2RlQ29sb3VyID0gZWwudGFyZ2V0LnZhbHVlO1xyXG4gICAgbm9kZVxyXG4gICAgICAudHJhbnNpdGlvbigpXHJcbiAgICAgIC5kdXJhdGlvbigzMDApXHJcbiAgICAgIC5zdHlsZShcImZpbGxcIiwgKGQpID0+IHtcclxuICAgICAgICBpZiAoZC5pbmRleCA9PT0gY3Vyck5vZGVJbmRleCkgcmV0dXJuO1xyXG4gICAgICAgIHJldHVybiBjdXJyTm9kZUNvbG91cjtcclxuICAgICAgfSk7XHJcbiAgfSk7XHJcblxyXG4gIC8vIGNvbnN0IHNhdmVMYXlvdXRCdXR0b24gPSBtb2RhbC5jb250ZW50RWwuY3JlYXRlRWwoJ2J1dHRvbicsIHsgdGV4dDogJ1NhdmUgTGF5b3V0JyB9KVxyXG4gIC8vICAgLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgc2F2ZUdyYXBoKVxyXG5cclxuICBjb25zdCBkYXRhID0gZ3JhcGhsaWJUb0QzKGdyYXBoKTtcclxuXHJcbiAgY29uc3QgbGlua3M6IHtcclxuICAgIGluZGV4OiBudW1iZXI7XHJcbiAgICBzb3VyY2U6IHsgaW5kZXg6IG51bWJlcjsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcclxuICAgIHRhcmdldDogeyBpbmRleDogbnVtYmVyOyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xyXG4gIH1bXSA9IGRhdGEubGlua3MubWFwKChkKSA9PiBPYmplY3QuY3JlYXRlKGQpKTtcclxuXHJcbiAgY29uc3QgY3Vyck5vZGUgPSBkYXRhLm5vZGVzLmZpbmQoKG5vZGUpID0+IG5vZGUubmFtZSA9PT0gY3VyckZpbGUuYmFzZW5hbWUpO1xyXG4gIGxldCBjdXJyTm9kZUluZGV4OiBudW1iZXI7XHJcbiAgaWYgKCFjdXJyTm9kZSkge1xyXG4gICAgY29uc3QgaWQgPSBkYXRhLm5vZGVzLmxlbmd0aDtcclxuICAgIGRhdGEubm9kZXMucHVzaCh7IGlkLCBuYW1lOiBjdXJyRmlsZS5iYXNlbmFtZSB9KTtcclxuICAgIGN1cnJOb2RlSW5kZXggPSBpZDtcclxuICB9IGVsc2Uge1xyXG4gICAgY3Vyck5vZGVJbmRleCA9IGN1cnJOb2RlLmlkO1xyXG4gIH1cclxuXHJcbiAgY29uc3Qgbm9kZXMgPSBkYXRhLm5vZGVzLm1hcCgoZCkgPT4gT2JqZWN0LmNyZWF0ZShkKSk7XHJcblxyXG4gIGNvbnN0IHNpbXVsYXRpb24gPSBkM1xyXG4gICAgLmZvcmNlU2ltdWxhdGlvbihub2RlcylcclxuICAgIC5mb3JjZShcclxuICAgICAgXCJsaW5rXCIsXHJcbiAgICAgIGQzLmZvcmNlTGluayhsaW5rcykuaWQoKGQpID0+IGQuaWQpXHJcbiAgICApXHJcbiAgICAuZm9yY2UoXCJjaGFyZ2VcIiwgZDMuZm9yY2VNYW55Qm9keSgpLnN0cmVuZ3RoKC04KSlcclxuICAgIC5mb3JjZShcImNlbnRlclwiLCBkMy5mb3JjZUNlbnRlcih3aWR0aCAvIDIsIGhlaWdodCAvIDIpLnN0cmVuZ3RoKDAuNSkpO1xyXG5cclxuICBjb25zdCBkcmFnID0gKHNpbXVsYXRpb246IGQzLlNpbXVsYXRpb248YW55LCB1bmRlZmluZWQ+KSA9PiB7XHJcbiAgICBmdW5jdGlvbiBkcmFnc3RhcnRlZChldmVudCwgZCkge1xyXG4gICAgICBpZiAoIWV2ZW50LmFjdGl2ZSkgc2ltdWxhdGlvbi5hbHBoYVRhcmdldCgwLjMpLnJlc3RhcnQoKTtcclxuICAgICAgZC5meCA9IGQueDtcclxuICAgICAgZC5meSA9IGQueTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBkcmFnZ2VkKGV2ZW50LCBkKSB7XHJcbiAgICAgIGQuZnggPSBldmVudC54O1xyXG4gICAgICBkLmZ5ID0gZXZlbnQueTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBkcmFnZW5kZWQoZXZlbnQsIGQpIHtcclxuICAgICAgaWYgKCFldmVudC5hY3RpdmUpIHNpbXVsYXRpb24uYWxwaGFUYXJnZXQoMCk7XHJcbiAgICAgIGQuZnggPSBudWxsO1xyXG4gICAgICBkLmZ5ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZDNcclxuICAgICAgLmRyYWcoKVxyXG4gICAgICAub24oXCJzdGFydFwiLCBkcmFnc3RhcnRlZClcclxuICAgICAgLm9uKFwiZHJhZ1wiLCBkcmFnZ2VkKVxyXG4gICAgICAub24oXCJlbmRcIiwgZHJhZ2VuZGVkKTtcclxuICB9O1xyXG5cclxuICBjb25zdCBzdmcgPSBkM1xyXG4gICAgLnNlbGVjdChcIi5kMy1ncmFwaFwiKVxyXG4gICAgLmFwcGVuZChcInN2Z1wiKVxyXG4gICAgLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0KVxyXG4gICAgLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aClcclxuICAgIC5hdHRyKFwiY2xhc3NcIiwgXCJmb3JjZURpcmVjdGVkR1wiKTtcclxuXHJcbiAgY29uc3QgbGluayA9IHN2Z1xyXG4gICAgLmFwcGVuZChcImdcIilcclxuICAgIC5hdHRyKFwic3Ryb2tlXCIsIFwiIzg2ODI4MlwiKVxyXG4gICAgLmF0dHIoXCJzdHJva2Utb3BhY2l0eVwiLCAwLjYpXHJcbiAgICAuc2VsZWN0QWxsKFwibGluZVwiKVxyXG4gICAgLmRhdGEobGlua3MpXHJcbiAgICAuam9pbihcImxpbmVcIilcclxuICAgIC5hdHRyKFwic3Ryb2tlLXdpZHRoXCIsIDAuOClcclxuICAgIC5hdHRyKFwibWFya2VyLWVuZFwiLCBcInVybCgjZW5kKVwiKTtcclxuXHJcbiAgdmFyIHBhdGggPSBzdmdcclxuICAgIC5hcHBlbmQoXCJzdmc6Z1wiKVxyXG4gICAgLnNlbGVjdEFsbChcInBhdGhcIilcclxuICAgIC5kYXRhKGxpbmtzKVxyXG4gICAgLmVudGVyKClcclxuICAgIC5hcHBlbmQoXCJzdmc6cGF0aFwiKVxyXG4gICAgLy8gICAgLmF0dHIoXCJjbGFzc1wiLCBmdW5jdGlvbihkKSB7IHJldHVybiBcImxpbmsgXCIgKyBkLnR5cGU7IH0pXHJcbiAgICAuYXR0cihcImNsYXNzXCIsIFwibGlua1wiKVxyXG4gICAgLmF0dHIoXCJtYXJrZXItZW5kXCIsIFwidXJsKCNlbmQpXCIpO1xyXG5cclxuICBjb25zdCBhcnJvd0hlYWQgPSBzdmdcclxuICAgIC5hcHBlbmQoXCJzdmc6ZGVmc1wiKVxyXG4gICAgLnNlbGVjdEFsbChcIm1hcmtlclwiKVxyXG4gICAgLmRhdGEoW1wiZW5kXCJdKSAvLyBEaWZmZXJlbnQgbGluay9wYXRoIHR5cGVzIGNhbiBiZSBkZWZpbmVkIGhlcmVcclxuICAgIC5lbnRlcigpXHJcbiAgICAuYXBwZW5kKFwic3ZnOm1hcmtlclwiKSAvLyBUaGlzIHNlY3Rpb24gYWRkcyBpbiB0aGUgYXJyb3dzXHJcbiAgICAuYXR0cihcImlkXCIsIFN0cmluZylcclxuICAgIC5hdHRyKFwidmlld0JveFwiLCBcIjAgLTUgMTAgMTBcIilcclxuICAgIC5hdHRyKFwicmVmWFwiLCAyMClcclxuICAgIC5hdHRyKFwicmVmWVwiLCAwLjEpXHJcbiAgICAuYXR0cihcIm1hcmtlcldpZHRoXCIsIDYpXHJcbiAgICAuYXR0cihcIm1hcmtlckhlaWdodFwiLCA2KVxyXG4gICAgLmF0dHIoXCJvcmllbnRcIiwgXCJhdXRvXCIpXHJcbiAgICAvLyAuYXR0cihcInN0cm9rZVwiLCBcIiM4NjgyODJcIilcclxuICAgIC5hdHRyKFwic3Ryb2tlLXdpZHRoXCIsIDEwKVxyXG4gICAgLmFwcGVuZChcInN2ZzpwYXRoXCIpXHJcbiAgICAuYXR0cihcImRcIiwgXCJNMCwtNUwxMCwwTDAsNVwiKTtcclxuXHJcbiAgY29uc3QgbmFtZUZyb21JbmRleCA9IChkOiB7IGluZGV4OiBudW1iZXIgfSkgPT5cclxuICAgIGRhdGEubm9kZXMuZmluZCgobm9kZSkgPT4gbm9kZS5pZCA9PT0gZC5pbmRleCkubmFtZTtcclxuXHJcbiAgY29uc3QgaW5kZXhGcm9tTmFtZSA9IChuYW1lOiBzdHJpbmcpOiBudW1iZXIgPT5cclxuICAgIGRhdGEubm9kZXMuZmluZCgobm9kZSkgPT4gbm9kZS5uYW1lID09PSBuYW1lKS5pZDtcclxuXHJcbiAgY29uc3Qgbm9kZTogZDMuU2VsZWN0aW9uPFxyXG4gICAgZDMuQmFzZVR5cGUgfCBTVkdDaXJjbGVFbGVtZW50LFxyXG4gICAgYW55LFxyXG4gICAgU1ZHR0VsZW1lbnQsXHJcbiAgICB1bmtub3duXHJcbiAgPiA9IHN2Z1xyXG4gICAgLmFwcGVuZChcImdcIilcclxuICAgIC5zZWxlY3RBbGwoXCJjaXJjbGVcIilcclxuICAgIC5kYXRhKG5vZGVzKVxyXG4gICAgLmpvaW4oXCJjaXJjbGVcIilcclxuXHJcbiAgICAuYXR0cihcInJcIiwgNSlcclxuICAgIC5hdHRyKFwiZmlsbFwiLCAoZCkgPT4ge1xyXG4gICAgICBpZiAobmFtZUZyb21JbmRleChkKSA9PT0gY3VyckZpbGUuYmFzZW5hbWUpIHtcclxuICAgICAgICByZXR1cm4gXCIjZmZmZmZmXCI7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGN1cnJOb2RlQ29sb3VyO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgLmNhbGwoZHJhZyhzaW11bGF0aW9uKSk7XHJcblxyXG4gIG5vZGUuYXR0cihcImFyaWEtbGFiZWxcIiwgKGQ6IGQzTm9kZSkgPT4gZC5uYW1lKTtcclxuXHJcbiAgY29uc3Qgbm9kZUNsaWNrID0gKGV2ZW50OiBNb3VzZUV2ZW50LCBkZXN0OiBzdHJpbmcpID0+IHtcclxuICAgIG9wZW5PclN3aXRjaChkZXN0LCBldmVudCk7XHJcbiAgICBtb2RhbC5jbG9zZSgpO1xyXG4gIH07XHJcbiAgbm9kZS5vbihcImNsaWNrXCIsIChldmVudDogTW91c2VFdmVudCwgZDogZDNOb2RlKSA9PiB7XHJcbiAgICBub2RlQ2xpY2soZXZlbnQsIGQubmFtZSk7XHJcbiAgfSk7XHJcblxyXG4gIG5vZGUub24oXCJtb3VzZWRvd25cIiwgKGV2ZW50OiBNb3VzZUV2ZW50LCBkKSA9PiB7XHJcbiAgICBpZiAoZXZlbnQuYnV0dG9uID09PSAyKSB7XHJcbiAgICAgIG5vZGVUb0dldFRvID0gZC5uYW1lO1xyXG5cclxuICAgICAgbm9kZS5zdHlsZShcImZpbGxcIiwgKG4pID0+IHtcclxuICAgICAgICBpZiAobi5uYW1lID09PSBub2RlVG9HZXRUbykge1xyXG4gICAgICAgICAgcmV0dXJuIFwiI2ZmMDAwMFwiO1xyXG4gICAgICAgIH0gZWxzZSByZXR1cm4gY3Vyck5vZGVDb2xvdXI7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gcGF0aHNGcm9tTm9kZVRvR2V0VG8gPSBncmFwaGxpYi5hbGcuZGlqa3N0cmEoZ3JhcGgsIG5vZGVUb0dldFRvKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgZnVuY3Rpb24gbGlua2VkKGE6IG51bWJlciwgYjogbnVtYmVyKSB7XHJcbiAgICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XHJcbiAgICBjb25zdCBsaW5rZWRBcnIgPSBsaW5rcy5maW5kKFxyXG4gICAgICAobGluaykgPT5cclxuICAgICAgICAobGluay5zb3VyY2UuaW5kZXggPT09IGEgJiYgbGluay50YXJnZXQuaW5kZXggPT09IGIpIHx8XHJcbiAgICAgICAgKGxpbmsudGFyZ2V0LmluZGV4ID09PSBhICYmIGxpbmsuc291cmNlLmluZGV4ID09PSBiKVxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gISFsaW5rZWRBcnI7XHJcbiAgfVxyXG5cclxuICAvLyBmdW5jdGlvbiB3YWxrRGlqa3N0cmFQYXRocyhcclxuICAvLyAgIHBhdGhzOiB7IFtub2RlOiBzdHJpbmddOiBncmFwaGxpYi5QYXRoIH0sXHJcbiAgLy8gICBzdGFydE5vZGU6IHN0cmluZ1xyXG4gIC8vICkge1xyXG4gIC8vICAgaWYgKHN0YXJ0Tm9kZSA9PT0gbm9kZVRvR2V0VG8gfHwgcGF0aHNbc3RhcnROb2RlXS5kaXN0YW5jZSA9PT0gSW5maW5pdHkpXHJcbiAgLy8gICAgIHJldHVybiBbXTtcclxuICAvLyAgIGxldCBzdGVwID0gc3RhcnROb2RlO1xyXG5cclxuICAvLyAgIGNvbnN0IHBhdGg6IHN0cmluZ1tdID0gW3N0YXJ0Tm9kZV07XHJcbiAgLy8gICBsZXQgaSA9IDA7XHJcbiAgLy8gICBjb25zdCBNQVggPSAzMDA7XHJcbiAgLy8gICB3aGlsZSAocGF0aHNbc3RlcF0ucHJlZGVjZXNzb3IgIT09IG5vZGVUb0dldFRvICYmIGkgPCBNQVgpIHtcclxuICAvLyAgICAgaSsrO1xyXG4gIC8vICAgICBzdGVwID0gcGF0aHNbc3RlcF0ucHJlZGVjZXNzb3I7XHJcbiAgLy8gICAgIHBhdGgucHVzaChzdGVwKTtcclxuICAvLyAgIH1cclxuICAvLyAgIGlmIChpID49IE1BWCkgcmV0dXJuIFtdO1xyXG4gIC8vICAgcGF0aC5wdXNoKG5vZGVUb0dldFRvKTtcclxuICAvLyAgIHJldHVybiBwYXRoO1xyXG4gIC8vIH1cclxuXHJcbiAgbm9kZVxyXG4gICAgLm9uKFwibW91c2VvdmVyXCIsIChldmVudDogTW91c2VFdmVudCwgZDogeyBpbmRleDogbnVtYmVyIH0pID0+IHtcclxuICAgICAgbm9kZVxyXG4gICAgICAgIC50cmFuc2l0aW9uKClcclxuICAgICAgICAuZHVyYXRpb24oMTUwKVxyXG4gICAgICAgIC5zdHlsZShcIm9wYWNpdHlcIiwgKG8pID0+IHtcclxuICAgICAgICAgIHJldHVybiBsaW5rZWQoZC5pbmRleCwgby5pbmRleCkgPyAxIDogMC4yO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICBsaW5rXHJcbiAgICAgICAgLnRyYW5zaXRpb24oKVxyXG4gICAgICAgIC5kdXJhdGlvbigxNTApXHJcbiAgICAgICAgLnN0eWxlKFwib3BhY2l0eVwiLCBmdW5jdGlvbiAobykge1xyXG4gICAgICAgICAgcmV0dXJuIG8uc291cmNlLmluZGV4ID09PSBkLmluZGV4IHx8IG8udGFyZ2V0LmluZGV4ID09PSBkLmluZGV4XHJcbiAgICAgICAgICAgID8gMVxyXG4gICAgICAgICAgICA6IDAuMjtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIC8vIEhpZ2hsaWdodCBwYXRoIGZyb20gaG92ZXJlZCBub2RlIHRvIGN1cnJOb2RlXHJcbiAgICAgIGNvbnN0IGhvdmVyZWROb2RlID0gbmFtZUZyb21JbmRleChkKTtcclxuICAgICAgLy8gY29uc3QgcGF0aCA9IHdhbGtEaWprc3RyYVBhdGhzKHBhdGhzRnJvbU5vZGVUb0dldFRvLCBob3ZlcmVkTm9kZSk7XHJcbiAgICAgIC8vIGlmIChwYXRoLmxlbmd0aCkge1xyXG4gICAgICAvLyAgIGxpbmtcclxuICAgICAgLy8gICAgIC50cmFuc2l0aW9uKClcclxuICAgICAgLy8gICAgIC5kdXJhdGlvbigxNTApXHJcbiAgICAgIC8vICAgICAuc3R5bGUoXCJzdHJva2VcIiwgZnVuY3Rpb24gKGxpbmspIHtcclxuICAgICAgLy8gICAgICAgaWYgKFxyXG4gICAgICAvLyAgICAgICAgIHBhdGguaW5jbHVkZXMobmFtZUZyb21JbmRleChsaW5rLnNvdXJjZSkpICYmXHJcbiAgICAgIC8vICAgICAgICAgcGF0aC5pbmNsdWRlcyhuYW1lRnJvbUluZGV4KGxpbmsudGFyZ2V0KSlcclxuICAgICAgLy8gICAgICAgKVxyXG4gICAgICAvLyAgICAgICAgIHJldHVybiBjdXJyTm9kZUNvbG91cjtcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICAuc3R5bGUoXCJvcGFjaXR5XCIsIGZ1bmN0aW9uIChsaW5rKSB7XHJcbiAgICAgIC8vICAgICAgIGlmIChcclxuICAgICAgLy8gICAgICAgICBwYXRoLmluY2x1ZGVzKG5hbWVGcm9tSW5kZXgobGluay5zb3VyY2UpKSAmJlxyXG4gICAgICAvLyAgICAgICAgIHBhdGguaW5jbHVkZXMobmFtZUZyb21JbmRleChsaW5rLnRhcmdldCkpXHJcbiAgICAgIC8vICAgICAgIClcclxuICAgICAgLy8gICAgICAgICByZXR1cm4gMTtcclxuICAgICAgLy8gICAgIH0pO1xyXG4gICAgICAvLyB9XHJcbiAgICB9KVxyXG4gICAgLm9uKFwibW91c2VvdXRcIiwgdW5mb2N1cyk7XHJcblxyXG4gIGZ1bmN0aW9uIGZvY3VzTmVpZ2hib3VycyhkLCBldmVudDogTW91c2VFdmVudCkgeyB9XHJcblxyXG4gIGZ1bmN0aW9uIHVuZm9jdXMoKSB7XHJcbiAgICAvLyBsYWJlbE5vZGUuYXR0cihcImRpc3BsYXlcIiwgXCJibG9ja1wiKTtcclxuICAgIG5vZGUuc3R5bGUoXCJvcGFjaXR5XCIsIDEpO1xyXG4gICAgbGluay5zdHlsZShcIm9wYWNpdHlcIiwgMSkuc3R5bGUoXCJzdHJva2VcIiwgXCIjODY4MjgyXCIpO1xyXG4gIH1cclxuXHJcbiAgc2ltdWxhdGlvbi5vbihcInRpY2tcIiwgKCkgPT4ge1xyXG4gICAgbGlua1xyXG4gICAgICAuYXR0cihcIngxXCIsIChkKSA9PiBkLnNvdXJjZS54KVxyXG4gICAgICAuYXR0cihcInkxXCIsIChkKSA9PiBkLnNvdXJjZS55KVxyXG4gICAgICAuYXR0cihcIngyXCIsIChkKSA9PiBkLnRhcmdldC54KVxyXG4gICAgICAuYXR0cihcInkyXCIsIChkKSA9PiBkLnRhcmdldC55KTtcclxuXHJcbiAgICBub2RlLmF0dHIoXCJjeFwiLCAoZCkgPT4gZC54KS5hdHRyKFwiY3lcIiwgKGQpID0+IGQueSk7XHJcbiAgfSk7XHJcblxyXG4gIGZ1bmN0aW9uIHpvb21lZCh7IHRyYW5zZm9ybSB9KSB7XHJcbiAgICBub2RlLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgdHJhbnNmb3JtKTtcclxuICAgIGxpbmsuYXR0cihcInRyYW5zZm9ybVwiLCB0cmFuc2Zvcm0pO1xyXG4gIH1cclxuICBzdmcuY2FsbChcclxuICAgIGQzXHJcbiAgICAgIC56b29tKClcclxuICAgICAgLmV4dGVudChbXHJcbiAgICAgICAgWzAsIDBdLFxyXG4gICAgICAgIFt3aWR0aCwgaGVpZ2h0XSxcclxuICAgICAgXSlcclxuICAgICAgLnNjYWxlRXh0ZW50KFswLjUsIDEwXSlcclxuICAgICAgLm9uKFwiem9vbVwiLCB6b29tZWQpXHJcbiAgKTtcclxuXHJcbiAgZnVuY3Rpb24gc2F2ZUdyYXBoKCkge1xyXG4gICAgY29uc3QgY2xvbmUgPSBzdmcuY2xvbmUodHJ1ZSk7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIkZER1wiLCBKU09OLnN0cmluZ2lmeShjbG9uZSkpO1xyXG4gIH1cclxufTtcclxuIiwgImltcG9ydCAqIGFzIGQzIGZyb20gXCJkM1wiO1xyXG5pbXBvcnQgdHlwZSBHcmFwaCBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgdHlwZSB7IFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IGRmc0ZsYXRBZGpMaXN0LCBWaXNNb2RhbCB9IGZyb20gXCIuL1Zpc01vZGFsXCI7XHJcblxyXG5leHBvcnQgY29uc3QgaWNpY2xlID0gKFxyXG4gIGdyYXBoOiBHcmFwaCxcclxuICBjdXJyRmlsZTogVEZpbGUsXHJcbiAgbW9kYWw6IFZpc01vZGFsLFxyXG4gIHdpZHRoOiBudW1iZXIsXHJcbiAgdmlld0hlaWdodDogbnVtYmVyXHJcbikgPT4ge1xyXG4gIGNvbnN0IGZsYXRBZGogPSBkZnNGbGF0QWRqTGlzdChncmFwaCwgY3VyckZpbGUuYmFzZW5hbWUpO1xyXG4gIGNvbnNvbGUubG9nKHsgZmxhdEFkaiB9KTtcclxuXHJcbiAgY29uc3QgaGllciA9IGQzLnN0cmF0aWZ5KCkoZmxhdEFkaik7XHJcbiAgY29uc29sZS5sb2coeyBoaWVyIH0pO1xyXG5cclxuICBjb25zdCBmb3JtYXQgPSBkMy5mb3JtYXQoXCIsZFwiKTtcclxuXHJcbiAgY29uc3QgY29sb3IgPSBkMy5zY2FsZU9yZGluYWwoXHJcbiAgICBkMy5xdWFudGl6ZShkMy5pbnRlcnBvbGF0ZVJhaW5ib3csIGhpZXIuY2hpbGRyZW4ubGVuZ3RoICsgMSlcclxuICApO1xyXG5cclxuICBjb25zdCBwYXJ0aXRpb24gPSAoZGF0YSkgPT4ge1xyXG4gICAgY29uc3Qgcm9vdCA9IGQzXHJcbiAgICAgIC5oaWVyYXJjaHkoZGF0YSlcclxuICAgICAgLnN1bSgoZCkgPT4gZC52YWx1ZSlcclxuICAgICAgLnNvcnQoKGEsIGIpID0+IGIuaGVpZ2h0IC0gYS5oZWlnaHQgfHwgYi52YWx1ZSAtIGEudmFsdWUpO1xyXG4gICAgcmV0dXJuIGQzLnBhcnRpdGlvbigpLnNpemUoW3ZpZXdIZWlnaHQsICgocm9vdC5oZWlnaHQgKyAxKSAqIHdpZHRoKSAvIDNdKShcclxuICAgICAgcm9vdFxyXG4gICAgKTtcclxuICB9O1xyXG5cclxuICBjb25zdCByb290ID0gcGFydGl0aW9uKGhpZXIpO1xyXG4gIGxldCBmb2N1cyA9IHJvb3Q7XHJcblxyXG4gIGNvbnN0IHN2ZyA9IGQzXHJcbiAgICAuc2VsZWN0KFwiLmQzLWdyYXBoXCIpXHJcbiAgICAuYXBwZW5kKFwic3ZnXCIpXHJcbiAgICAuYXR0cihcImhlaWdodFwiLCB2aWV3SGVpZ2h0KVxyXG4gICAgLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aClcclxuICAgIC5zdHlsZShcImZvbnRcIiwgXCIxMHB4IHNhbnMtc2VyaWZcIik7XHJcblxyXG4gIGNvbnN0IGNlbGwgPSBzdmdcclxuICAgIC5zZWxlY3RBbGwoXCJnXCIpXHJcbiAgICAuZGF0YShyb290LmRlc2NlbmRhbnRzKCkpXHJcbiAgICAuam9pbihcImdcIilcclxuICAgIC5hdHRyKFwidHJhbnNmb3JtXCIsIChkKSA9PiBgdHJhbnNsYXRlKCR7ZC55MH0sJHtkLngwfSlgKTtcclxuXHJcbiAgY29uc3QgcmVjdCA9IGNlbGxcclxuICAgIC5hcHBlbmQoXCJyZWN0XCIpXHJcbiAgICAuYXR0cihcIndpZHRoXCIsIChkKSA9PiBkLnkxIC0gZC55MCAtIDEpXHJcbiAgICAuYXR0cihcImhlaWdodFwiLCAoZCkgPT4gcmVjdEhlaWdodChkKSlcclxuICAgIC5hdHRyKFwiZmlsbC1vcGFjaXR5XCIsIDAuNilcclxuICAgIC5hdHRyKFwiZmlsbFwiLCAoZCkgPT4ge1xyXG4gICAgICBpZiAoIWQuZGVwdGgpIHJldHVybiBcIiNjY2NcIjtcclxuICAgICAgd2hpbGUgKGQuZGVwdGggPiAxKSBkID0gZC5wYXJlbnQ7XHJcbiAgICAgIHJldHVybiBjb2xvcihkLmRhdGEuZGF0YS5uYW1lKTtcclxuICAgIH0pXHJcbiAgICAuc3R5bGUoXCJjdXJzb3JcIiwgXCJwb2ludGVyXCIpXHJcbiAgICAub24oXCJjbGlja1wiLCBjbGlja2VkKTtcclxuXHJcbiAgY29uc3QgdGV4dCA9IGNlbGxcclxuICAgIC5hcHBlbmQoXCJ0ZXh0XCIpXHJcbiAgICAuc3R5bGUoXCJ1c2VyLXNlbGVjdFwiLCBcIm5vbmVcIilcclxuICAgIC5hdHRyKFwicG9pbnRlci1ldmVudHNcIiwgXCJub25lXCIpXHJcbiAgICAuYXR0cihcInhcIiwgNClcclxuICAgIC5hdHRyKFwieVwiLCAxMyk7XHJcbiAgLy8gLmF0dHIoXCJmaWxsLW9wYWNpdHlcIiwgKGQpID0+ICtsYWJlbFZpc2libGUoZCkpO1xyXG5cclxuICB0ZXh0LmFwcGVuZChcInRzcGFuXCIpLnRleHQoKGQpID0+IGQuZGF0YS5kYXRhLm5hbWUpO1xyXG5cclxuICBjb25zdCB0c3BhbiA9IHRleHRcclxuICAgIC5hcHBlbmQoXCJ0c3BhblwiKVxyXG4gICAgLmF0dHIoXCJmaWxsLW9wYWNpdHlcIiwgKGQpID0+IChsYWJlbFZpc2libGUoZCkgPyAxIDogMCkgKiAwLjcpXHJcbiAgICAudGV4dCgoZCkgPT4gYCAke2Zvcm1hdChkLnZhbHVlKX1gKTtcclxuXHJcbiAgY2VsbC5hcHBlbmQoXCJ0aXRsZVwiKS50ZXh0KFxyXG4gICAgKGQpID0+XHJcbiAgICAgIGAke2QuYW5jZXN0b3JzKCkubWFwKChkKSA9PiBkLmRhdGEuZGF0YS5uYW1lKVxyXG4gICAgICAvLyAucmV2ZXJzZSgpXHJcbiAgICAgIC8vIC5qb2luKFwiL1wiKX1cXG4ke2Zvcm1hdChkLnZhbHVlKVxyXG4gICAgICB9YFxyXG4gICk7XHJcblxyXG4gIGZ1bmN0aW9uIGNsaWNrZWQoZXZlbnQsIHApIHtcclxuICAgIGNvbnNvbGUubG9nKHsgcCB9KTtcclxuICAgIGZvY3VzID0gZm9jdXMgPT09IHAgPyAocCA9IHAucGFyZW50KSA6IHA7XHJcblxyXG4gICAgcm9vdC5lYWNoKChkKSA9PiB7XHJcbiAgICAgIGQudGFyZ2V0ID0ge1xyXG4gICAgICAgIHgwOiAoKGQueDAgLSBwLngwKSAvIChwLngxIC0gcC54MCkpICogdmlld0hlaWdodCxcclxuICAgICAgICB4MTogKChkLngxIC0gcC54MCkgLyAocC54MSAtIHAueDApKSAqIHZpZXdIZWlnaHQsXHJcbiAgICAgICAgeTA6IGQueTAgLSBwLnkwLFxyXG4gICAgICAgIHkxOiBkLnkxIC0gcC55MCxcclxuICAgICAgfTtcclxuICAgICAgY29uc29sZS5sb2coZC50YXJnZXQueDApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgdCA9IGNlbGxcclxuICAgICAgLnRyYW5zaXRpb24oKVxyXG4gICAgICAuZHVyYXRpb24oNzUwKVxyXG4gICAgICAuYXR0cihcInRyYW5zZm9ybVwiLCAoZCkgPT4gYHRyYW5zbGF0ZSgke2QudGFyZ2V0LnkwfSwke2QudGFyZ2V0LngwfSlgKTtcclxuXHJcbiAgICByZWN0LnRyYW5zaXRpb24odCkuYXR0cihcImhlaWdodFwiLCAoZCkgPT4gcmVjdEhlaWdodChkLnRhcmdldCkpO1xyXG4gICAgdGV4dC50cmFuc2l0aW9uKHQpLmF0dHIoXCJmaWxsLW9wYWNpdHlcIiwgKGQpID0+ICtsYWJlbFZpc2libGUoZC50YXJnZXQpKTtcclxuICAgIHRzcGFuXHJcbiAgICAgIC50cmFuc2l0aW9uKHQpXHJcbiAgICAgIC5hdHRyKFwiZmlsbC1vcGFjaXR5XCIsIChkKSA9PiAobGFiZWxWaXNpYmxlKGQpID8gMSA6IDApICogMC43KTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHJlY3RIZWlnaHQoZCkge1xyXG4gICAgY29uc29sZS5sb2coeyBkIH0pO1xyXG4gICAgcmV0dXJuIGQueDEgLSBkLngwIC0gTWF0aC5taW4oMSwgKGQueDEgLSBkLngwKSAvIDIpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gbGFiZWxWaXNpYmxlKGQpIHtcclxuICAgIHJldHVybiBkLnkxIDw9IHdpZHRoICYmIGQueTAgPj0gMCAmJiBkLngxIC0gZC54MCA+IDE2O1xyXG4gIH1cclxufTtcclxuIiwgImltcG9ydCAqIGFzIGQzIGZyb20gXCJkM1wiO1xyXG5pbXBvcnQgdHlwZSBHcmFwaCBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgdHlwZSB7IFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IGRmc0ZsYXRBZGpMaXN0LCBWaXNNb2RhbCB9IGZyb20gXCIuL1Zpc01vZGFsXCI7XHJcblxyXG5leHBvcnQgY29uc3QgcmFkaWFsVHJlZSA9IChcclxuICBncmFwaDogR3JhcGgsXHJcbiAgY3VyckZpbGU6IFRGaWxlLFxyXG4gIG1vZGFsOiBWaXNNb2RhbCxcclxuICB3aWR0aDogbnVtYmVyLFxyXG4gIGhlaWdodDogbnVtYmVyXHJcbikgPT4ge1xyXG4gIGNvbnN0IGZsYXRBZGogPSBkZnNGbGF0QWRqTGlzdChncmFwaCwgY3VyckZpbGUuYmFzZW5hbWUpO1xyXG4gIGNvbnNvbGUubG9nKHsgZmxhdEFkaiB9KTtcclxuXHJcbiAgY29uc3QgaGllcmFyY2h5ID0gZDMuc3RyYXRpZnkoKShmbGF0QWRqKTtcclxuICBjb25zb2xlLmxvZyh7IGhpZXJhcmNoeSB9KTtcclxuXHJcbiAgY29uc3Qgc3ZnID0gZDNcclxuICAgIC5zZWxlY3QoXCIuZDMtZ3JhcGhcIilcclxuICAgIC5hcHBlbmQoXCJzdmdcIilcclxuICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodClcclxuICAgIC5hdHRyKFwid2lkdGhcIiwgd2lkdGgpO1xyXG5cclxuICBjb25zdCByb290ID0gZDNcclxuICAgIC5oaWVyYXJjaHkoaGllcmFyY2h5LCAoZCkgPT4gZC5jaGlsZHJlbilcclxuICAgIC5zdW0oKGQpID0+IChkLmNoaWxkcmVuID8gMCA6IDEpKVxyXG4gICAgLnNvcnQoKGEsIGIpID0+IGEuZGVwdGggLSBiLmRlcHRoKTtcclxuXHJcbiAgY29uc3Qgb3V0ZXJSYWRpdXMgPSB3aWR0aCAvIDI7XHJcbiAgY29uc3QgaW5uZXJSYWRpdXMgPSBvdXRlclJhZGl1cyAtIDE3MDtcclxuXHJcbiAgY29uc3QgY2x1c3RlciA9IGQzXHJcbiAgICAuY2x1c3RlcigpXHJcbiAgICAuc2l6ZShbMzYwLCBpbm5lclJhZGl1c10pXHJcbiAgICAuc2VwYXJhdGlvbigoYSwgYikgPT4gMSk7XHJcblxyXG4gIGNvbnN0IGNvbG9yID0gZDNcclxuICAgIC5zY2FsZU9yZGluYWwoKVxyXG4gICAgLmRvbWFpbihncmFwaC5ub2RlcygpKVxyXG4gICAgLnJhbmdlKGQzLnNjaGVtZUNhdGVnb3J5MTApO1xyXG5cclxuICBmdW5jdGlvbiBtYXhMZW5ndGgoZDogZDMuSGllcmFyY2h5Tm9kZTx1bmtub3duPikge1xyXG4gICAgcmV0dXJuIGQuZGF0YS5kYXRhLmRlcHRoICsgKGQuY2hpbGRyZW4gPyBkMy5tYXgoZC5jaGlsZHJlbiwgbWF4TGVuZ3RoKSA6IDApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gc2V0UmFkaXVzKGQ6IGQzLkhpZXJhcmNoeU5vZGU8dW5rbm93bj4sIHkwOiBudW1iZXIsIGs6IG51bWJlcikge1xyXG4gICAgZC5yYWRpdXMgPSAoeTAgKz0gZC5kYXRhLmRhdGEuZGVwdGgpICogaztcclxuICAgIGlmIChkLmNoaWxkcmVuKSBkLmNoaWxkcmVuLmZvckVhY2goKGQpID0+IHNldFJhZGl1cyhkLCB5MCwgaykpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gc2V0Q29sb3IoZDogZDMuSGllcmFyY2h5Tm9kZTx1bmtub3duPikge1xyXG4gICAgdmFyIG5hbWUgPSBkLmRhdGEuZGF0YS5uYW1lO1xyXG4gICAgZC5jb2xvciA9XHJcbiAgICAgIGNvbG9yLmRvbWFpbigpLmluZGV4T2YobmFtZSkgPj0gMFxyXG4gICAgICAgID8gY29sb3IobmFtZSlcclxuICAgICAgICA6IGQucGFyZW50XHJcbiAgICAgICAgICA/IGQucGFyZW50LmNvbG9yXHJcbiAgICAgICAgICA6IG51bGw7XHJcbiAgICBpZiAoZC5jaGlsZHJlbikgZC5jaGlsZHJlbi5mb3JFYWNoKHNldENvbG9yKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGxpbmtWYXJpYWJsZShkKSB7XHJcbiAgICByZXR1cm4gbGlua1N0ZXAoZC5zb3VyY2UueCwgZC5zb3VyY2UucmFkaXVzLCBkLnRhcmdldC54LCBkLnRhcmdldC5yYWRpdXMpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gbGlua0NvbnN0YW50KGQpIHtcclxuICAgIHJldHVybiBsaW5rU3RlcChkLnNvdXJjZS54LCBkLnNvdXJjZS55LCBkLnRhcmdldC54LCBkLnRhcmdldC55KTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGxpbmtFeHRlbnNpb25WYXJpYWJsZShkKSB7XHJcbiAgICByZXR1cm4gbGlua1N0ZXAoZC50YXJnZXQueCwgZC50YXJnZXQucmFkaXVzLCBkLnRhcmdldC54LCBpbm5lclJhZGl1cyk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBsaW5rRXh0ZW5zaW9uQ29uc3RhbnQoZCkge1xyXG4gICAgcmV0dXJuIGxpbmtTdGVwKGQudGFyZ2V0LngsIGQudGFyZ2V0LnksIGQudGFyZ2V0LngsIGlubmVyUmFkaXVzKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGxpbmtTdGVwKFxyXG4gICAgc3RhcnRBbmdsZTogbnVtYmVyLFxyXG4gICAgc3RhcnRSYWRpdXM6IG51bWJlcixcclxuICAgIGVuZEFuZ2xlOiBudW1iZXIsXHJcbiAgICBlbmRSYWRpdXM6IG51bWJlclxyXG4gICkge1xyXG4gICAgY29uc3QgYzAgPSBNYXRoLmNvcygoc3RhcnRBbmdsZSA9ICgoc3RhcnRBbmdsZSAtIDkwKSAvIDE4MCkgKiBNYXRoLlBJKSk7XHJcbiAgICBjb25zdCBzMCA9IE1hdGguc2luKHN0YXJ0QW5nbGUpO1xyXG4gICAgY29uc3QgYzEgPSBNYXRoLmNvcygoZW5kQW5nbGUgPSAoKGVuZEFuZ2xlIC0gOTApIC8gMTgwKSAqIE1hdGguUEkpKTtcclxuICAgIGNvbnN0IHMxID0gTWF0aC5zaW4oZW5kQW5nbGUpO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgXCJNXCIgK1xyXG4gICAgICBzdGFydFJhZGl1cyAqIGMwICtcclxuICAgICAgXCIsXCIgK1xyXG4gICAgICBzdGFydFJhZGl1cyAqIHMwICtcclxuICAgICAgKGVuZEFuZ2xlID09PSBzdGFydEFuZ2xlXHJcbiAgICAgICAgPyBcIlwiXHJcbiAgICAgICAgOiBcIkFcIiArXHJcbiAgICAgICAgc3RhcnRSYWRpdXMgK1xyXG4gICAgICAgIFwiLFwiICtcclxuICAgICAgICBzdGFydFJhZGl1cyArXHJcbiAgICAgICAgXCIgMCAwIFwiICtcclxuICAgICAgICAoZW5kQW5nbGUgPiBzdGFydEFuZ2xlID8gMSA6IDApICtcclxuICAgICAgICBcIiBcIiArXHJcbiAgICAgICAgc3RhcnRSYWRpdXMgKiBjMSArXHJcbiAgICAgICAgXCIsXCIgK1xyXG4gICAgICAgIHN0YXJ0UmFkaXVzICogczEpICtcclxuICAgICAgXCJMXCIgK1xyXG4gICAgICBlbmRSYWRpdXMgKiBjMSArXHJcbiAgICAgIFwiLFwiICtcclxuICAgICAgZW5kUmFkaXVzICogczFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBsZWdlbmQgPSAoc3ZnKSA9PiB7XHJcbiAgICBjb25zdCBnID0gc3ZnXHJcbiAgICAgIC5zZWxlY3RBbGwoXCJnXCIpXHJcbiAgICAgIC5kYXRhKGNvbG9yLmRvbWFpbigpKVxyXG4gICAgICAuam9pbihcImdcIilcclxuICAgICAgLmF0dHIoXHJcbiAgICAgICAgXCJ0cmFuc2Zvcm1cIixcclxuICAgICAgICAoZCwgaSkgPT4gYHRyYW5zbGF0ZSgkey1vdXRlclJhZGl1c30sJHstb3V0ZXJSYWRpdXMgKyBpICogMjB9KWBcclxuICAgICAgKTtcclxuXHJcbiAgICBnLmFwcGVuZChcInJlY3RcIikuYXR0cihcIndpZHRoXCIsIDE4KS5hdHRyKFwiaGVpZ2h0XCIsIDE4KS5hdHRyKFwiZmlsbFwiLCBjb2xvcik7XHJcblxyXG4gICAgZy5hcHBlbmQoXCJ0ZXh0XCIpXHJcbiAgICAgIC5hdHRyKFwieFwiLCAyNClcclxuICAgICAgLmF0dHIoXCJ5XCIsIDkpXHJcbiAgICAgIC5hdHRyKFwiZHlcIiwgXCIwLjM1ZW1cIilcclxuICAgICAgLnRleHQoKGQpID0+IGQpO1xyXG4gIH07XHJcblxyXG4gIGNsdXN0ZXIocm9vdCk7XHJcbiAgc2V0UmFkaXVzKHJvb3QsIChyb290LmRhdGEuZGF0YS5kZXB0aCA9IDApLCBpbm5lclJhZGl1cyAvIG1heExlbmd0aChyb290KSk7XHJcbiAgc2V0Q29sb3Iocm9vdCk7XHJcblxyXG4gIHN2Zy5hcHBlbmQoXCJnXCIpLmNhbGwobGVnZW5kKTtcclxuXHJcbiAgc3ZnLmFwcGVuZChcInN0eWxlXCIpLnRleHQoYFxyXG5cclxuLmxpbmstLWFjdGl2ZSB7XHJcbnN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xyXG5zdHJva2Utd2lkdGg6IDEuNXB4O1xyXG59XHJcblxyXG4ubGluay1leHRlbnNpb24tLWFjdGl2ZSB7XHJcbnN0cm9rZS1vcGFjaXR5OiAuNjtcclxufVxyXG5cclxuLmxhYmVsLS1hY3RpdmUge1xyXG5mb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuYCk7XHJcblxyXG4gIGNvbnN0IGxpbmtFeHRlbnNpb24gPSBzdmdcclxuICAgIC5hcHBlbmQoXCJnXCIpXHJcbiAgICAuYXR0cihcImZpbGxcIiwgXCJub25lXCIpXHJcbiAgICAuYXR0cihcInN0cm9rZVwiLCBcIiMwMDBcIilcclxuICAgIC5hdHRyKFwic3Ryb2tlLW9wYWNpdHlcIiwgMC4yNSlcclxuICAgIC5zZWxlY3RBbGwoXCJwYXRoXCIpXHJcbiAgICAuZGF0YShyb290LmxpbmtzKCkuZmlsdGVyKChkKSA9PiAhZC50YXJnZXQuY2hpbGRyZW4pKVxyXG4gICAgLmpvaW4oXCJwYXRoXCIpXHJcbiAgICAuZWFjaChmdW5jdGlvbiAoZCkge1xyXG4gICAgICBkLnRhcmdldC5saW5rRXh0ZW5zaW9uTm9kZSA9IHRoaXM7XHJcbiAgICB9KVxyXG4gICAgLmF0dHIoXCJkXCIsIGxpbmtFeHRlbnNpb25Db25zdGFudCk7XHJcblxyXG4gIGNvbnN0IGxpbmsgPSBzdmdcclxuICAgIC5hcHBlbmQoXCJnXCIpXHJcbiAgICAuYXR0cihcImZpbGxcIiwgXCJub25lXCIpXHJcbiAgICAuYXR0cihcInN0cm9rZVwiLCBcIiMwMDBcIilcclxuICAgIC5zZWxlY3RBbGwoXCJwYXRoXCIpXHJcbiAgICAuZGF0YShyb290LmxpbmtzKCkpXHJcbiAgICAuam9pbihcInBhdGhcIilcclxuICAgIC5lYWNoKGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgIGQudGFyZ2V0LmxpbmtOb2RlID0gdGhpcztcclxuICAgIH0pXHJcbiAgICAuYXR0cihcImRcIiwgbGlua0NvbnN0YW50KVxyXG4gICAgLmF0dHIoXCJzdHJva2VcIiwgKGQpID0+IGQudGFyZ2V0LmNvbG9yKTtcclxuXHJcbiAgY29uc3QgbGFiZWwgPSBzdmdcclxuICAgIC5hcHBlbmQoXCJnXCIpXHJcbiAgICAuc2VsZWN0QWxsKFwidGV4dFwiKVxyXG4gICAgLmRhdGEocm9vdC5sZWF2ZXMoKSlcclxuICAgIC5qb2luKFwidGV4dFwiKVxyXG4gICAgLmF0dHIoXCJkeVwiLCBcIi4zMWVtXCIpXHJcbiAgICAuYXR0cihcclxuICAgICAgXCJ0cmFuc2Zvcm1cIixcclxuICAgICAgKGQpID0+XHJcbiAgICAgICAgYHJvdGF0ZSgke2QueCAtIDkwfSkgdHJhbnNsYXRlKCR7aW5uZXJSYWRpdXMgKyA0fSwwKSR7ZC54IDwgMTgwID8gXCJcIiA6IFwiIHJvdGF0ZSgxODApXCJcclxuICAgICAgICB9YFxyXG4gICAgKVxyXG4gICAgLmF0dHIoXCJ0ZXh0LWFuY2hvclwiLCAoZCkgPT4gKGQueCA8IDE4MCA/IFwic3RhcnRcIiA6IFwiZW5kXCIpKVxyXG4gICAgLnRleHQoKGQpID0+IGQuZGF0YS5kYXRhLm5hbWUpXHJcbiAgICAub24oXCJtb3VzZW92ZXJcIiwgbW91c2VvdmVyZWQodHJ1ZSkpXHJcbiAgICAub24oXCJtb3VzZW91dFwiLCBtb3VzZW92ZXJlZChmYWxzZSkpO1xyXG5cclxuICAvLyAgIGZ1bmN0aW9uIHVwZGF0ZShjaGVja2VkKSB7XHJcbiAgLy8gICAgIGNvbnN0IHQgPSBkMy50cmFuc2l0aW9uKCkuZHVyYXRpb24oNzUwKTtcclxuICAvLyAgICAgbGlua0V4dGVuc2lvblxyXG4gIC8vICAgICAgIC50cmFuc2l0aW9uKHQpXHJcbiAgLy8gICAgICAgLmF0dHIoXCJkXCIsIGNoZWNrZWQgPyBsaW5rRXh0ZW5zaW9uVmFyaWFibGUgOiBsaW5rRXh0ZW5zaW9uQ29uc3RhbnQpO1xyXG4gIC8vICAgICBsaW5rLnRyYW5zaXRpb24odCkuYXR0cihcImRcIiwgY2hlY2tlZCA/IGxpbmtWYXJpYWJsZSA6IGxpbmtDb25zdGFudCk7XHJcbiAgLy8gICB9XHJcblxyXG4gIGZ1bmN0aW9uIG1vdXNlb3ZlcmVkKGFjdGl2ZSkge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChldmVudCwgZCkge1xyXG4gICAgICBkMy5zZWxlY3QodGhpcykuY2xhc3NlZChcImxhYmVsLS1hY3RpdmVcIiwgYWN0aXZlKTtcclxuICAgICAgZDMuc2VsZWN0KGQubGlua0V4dGVuc2lvbk5vZGUpXHJcbiAgICAgICAgLmNsYXNzZWQoXCJsaW5rLWV4dGVuc2lvbi0tYWN0aXZlXCIsIGFjdGl2ZSlcclxuICAgICAgICAucmFpc2UoKTtcclxuICAgICAgZG8gZDMuc2VsZWN0KGQubGlua05vZGUpLmNsYXNzZWQoXCJsaW5rLS1hY3RpdmVcIiwgYWN0aXZlKS5yYWlzZSgpO1xyXG4gICAgICB3aGlsZSAoKGQgPSBkLnBhcmVudCkpO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHpvb21lZCh7IHRyYW5zZm9ybSB9KSB7XHJcbiAgICBsaW5rRXh0ZW5zaW9uLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgdHJhbnNmb3JtKTtcclxuICAgIGxpbmsuYXR0cihcInRyYW5zZm9ybVwiLCB0cmFuc2Zvcm0pO1xyXG4gICAgbGFiZWwuYXR0cihcInRyYW5zZm9ybVwiLCB0cmFuc2Zvcm0pO1xyXG4gIH1cclxuICBzdmcuY2FsbChcclxuICAgIGQzXHJcbiAgICAgIC56b29tKClcclxuICAgICAgLmV4dGVudChbXHJcbiAgICAgICAgWzAsIDBdLFxyXG4gICAgICAgIFt3aWR0aCwgaGVpZ2h0XSxcclxuICAgICAgXSlcclxuICAgICAgLnNjYWxlRXh0ZW50KFswLjUsIDhdKVxyXG4gICAgICAub24oXCJ6b29tXCIsIHpvb21lZClcclxuICApO1xyXG59O1xyXG4iLCAiaW1wb3J0ICogYXMgZDMgZnJvbSBcImQzXCI7XHJcbmltcG9ydCB0eXBlIEdyYXBoIGZyb20gXCJncmFwaG9sb2d5XCI7XHJcbmltcG9ydCB0eXBlIHsgVEZpbGUgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHR5cGUgeyBWaXNNb2RhbCB9IGZyb20gXCIuL1Zpc01vZGFsXCI7XHJcbmltcG9ydCB7IGRmc0ZsYXRBZGpMaXN0IH0gZnJvbSBcIi4vVmlzTW9kYWxcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBzdW5idXJzdCA9IChcclxuICBncmFwaDogR3JhcGgsXHJcbiAgY3VyckZpbGU6IFRGaWxlLFxyXG4gIG1vZGFsOiBWaXNNb2RhbCxcclxuICB3aWR0aDogbnVtYmVyLFxyXG4gIGhlaWdodDogbnVtYmVyXHJcbikgPT4ge1xyXG4gIGNvbnN0IGZsYXRBZGogPSBkZnNGbGF0QWRqTGlzdChncmFwaCwgY3VyckZpbGUuYmFzZW5hbWUpO1xyXG4gIGNvbnNvbGUubG9nKHsgZmxhdEFkaiB9KTtcclxuXHJcbiAgY29uc3QgaGllcmFyY2h5ID0gZDMuc3RyYXRpZnkoKShmbGF0QWRqKTtcclxuICBjb25zb2xlLmxvZyh7IGhpZXJhcmNoeSB9KTtcclxuXHJcbiAgdmFyIHJhZGl1cyA9IE1hdGgubWluKHdpZHRoLCBoZWlnaHQpIC8gMjsgLy8gPCAtLSAyXHJcbiAgdmFyIGNvbG9yID0gZDMuc2NhbGVPcmRpbmFsKGQzLnNjaGVtZUNhdGVnb3J5MTApO1xyXG5cclxuICB2YXIgZyA9IGQzXHJcbiAgICAuc2VsZWN0KFwic3ZnXCIpIC8vIDwtLSAxXHJcbiAgICAuYXR0cihcIndpZHRoXCIsIHdpZHRoKSAvLyA8LS0gMlxyXG4gICAgLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0KVxyXG4gICAgLmFwcGVuZChcImdcIikgLy8gPC0tIDNcclxuICAgIC5hdHRyKFwidHJhbnNmb3JtXCIsIFwidHJhbnNsYXRlKFwiICsgd2lkdGggLyAyICsgXCIsXCIgKyBoZWlnaHQgLyAyICsgXCIpXCIpOyAvLyA8LS0gNFxyXG5cclxuICB2YXIgZyA9IGQzXHJcbiAgICAuc2VsZWN0KFwic3ZnXCIpIC8vIHJldHVybnMgYSBoYW5kbGUgdG8gdGhlIDxzdmc+IGVsZW1lbnRcclxuICAgIC5hdHRyKFwid2lkdGhcIiwgd2lkdGgpIC8vIHNldHMgdGhlIHdpZHRoIG9mIDxzdmc+IGFuZCB0aGVuIHJldHVybnMgdGhlIDxzdmc+IGVsZW1lbnQgYWdhaW5cclxuICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodCkgLy8gKHNhbWUgYXMgd2lkdGgpXHJcbiAgICAuYXBwZW5kKFwiZ1wiKSAvLyBhZGRzIGEgPGc+IGVsZW1lbnQgdG8gdGhlIDxzdmc+IGVsZW1lbnQuIEl0IHJldHVybnMgdGhlIDxnPiBlbGVtZW50XHJcbiAgICAuYXR0cihcInRyYW5zZm9ybVwiLCBcInRyYW5zbGF0ZShcIiArIHdpZHRoIC8gMiArIFwiLFwiICsgaGVpZ2h0IC8gMiArIFwiKVwiKTsgLy8gdGFrZXMgdGhlIDxnPiBlbGVtZW50IGFuZCBtb3ZlcyB0aGUgWzAsMF0gY2VudGVyIG92ZXIgYW5kIGRvd25cclxuXHJcbiAgdmFyIGcgPSBkM1xyXG4gICAgLnNlbGVjdChcInN2Z1wiKSAvLyAtLT4gPHN2Zz48L3N2Zz5cclxuICAgIC5hdHRyKFwid2lkdGhcIiwgd2lkdGgpIC8vIC0tPiA8c3ZnIHdpZHRoPVwiNTAwXCI+PC9zdmc+XHJcbiAgICAuYXR0cihcImhlaWdodFwiLCBoZWlnaHQpIC8vIC0tPiA8c3ZnIHdpZHRoPVwiNTAwXCIgaGVpZ2h0PVwiNTAwXCI+PC9zdmc+XHJcbiAgICAuYXBwZW5kKFwiZ1wiKSAvLyAtLT4gPHN2ZyB3aWR0aD1cIjUwMFwiIGhlaWdodD1cIjUwMFwiPjxnPjwvZz48L3N2Zz5cclxuICAgIC5hdHRyKFwidHJhbnNmb3JtXCIsIFwidHJhbnNsYXRlKFwiICsgd2lkdGggLyAyICsgXCIsXCIgKyBoZWlnaHQgLyAyICsgXCIpXCIpOyAvLyAtLT4gPHN2ZyB3aWR0aD1cIjUwMFwiIGhlaWdodD1cIjUwMFwiPjxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgyNTAsMjUwKVwiPjwvZz48L3N2Zz5cclxuXHJcbiAgdmFyIHBhcnRpdGlvbiA9IGQzXHJcbiAgICAucGFydGl0aW9uKCkgLy8gPC0tIDFcclxuICAgIC5zaXplKFsyICogTWF0aC5QSSwgcmFkaXVzXSk7IC8vIDwtLSAyXHJcblxyXG4gIHZhciByb290ID0gZDNcclxuICAgIC5oaWVyYXJjaHkoaGllcmFyY2h5KSAvLyA8LS0gMVxyXG4gICAgLnN1bShmdW5jdGlvbiAoZCkge1xyXG4gICAgICByZXR1cm4gZC5oZWlnaHQ7XHJcbiAgICB9KTsgLy8gPC0tIDJcclxuXHJcbiAgcGFydGl0aW9uKHJvb3QpOyAvLyA8LS0gMVxyXG4gIHZhciBhcmMgPSBkM1xyXG4gICAgLmFyYygpIC8vIDwtLSAyXHJcbiAgICAuc3RhcnRBbmdsZShmdW5jdGlvbiAoZCkge1xyXG4gICAgICByZXR1cm4gZC54MDtcclxuICAgIH0pXHJcbiAgICAuZW5kQW5nbGUoZnVuY3Rpb24gKGQpIHtcclxuICAgICAgcmV0dXJuIGQueDE7XHJcbiAgICB9KVxyXG4gICAgLmlubmVyUmFkaXVzKGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgIHJldHVybiBkLnkwO1xyXG4gICAgfSlcclxuICAgIC5vdXRlclJhZGl1cyhmdW5jdGlvbiAoZCkge1xyXG4gICAgICByZXR1cm4gZC55MTtcclxuICAgIH0pO1xyXG5cclxuICBnLnNlbGVjdEFsbChcInBhdGhcIikgLy8gPC0tIDFcclxuICAgIC5kYXRhKHJvb3QuZGVzY2VuZGFudHMoKSkgLy8gPC0tIDJcclxuICAgIC5lbnRlcigpIC8vIDwtLSAzXHJcbiAgICAuYXBwZW5kKFwicGF0aFwiKSAvLyA8LS0gNFxyXG4gICAgLmF0dHIoXCJkaXNwbGF5XCIsIGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgIHJldHVybiBkLmRlcHRoID8gbnVsbCA6IFwibm9uZVwiO1xyXG4gICAgfSkgLy8gPC0tIDVcclxuICAgIC5hdHRyKFwiZFwiLCBhcmMpIC8vIDwtLSA2XHJcbiAgICAuc3R5bGUoXCJzdHJva2VcIiwgXCIjZmZmXCIpIC8vIDwtLSA3XHJcbiAgICAuc3R5bGUoXCJmaWxsXCIsIGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgIHJldHVybiBjb2xvcigoZC5jaGlsZHJlbiA/IGQgOiBkLnBhcmVudCkuZGF0YS5uYW1lKTtcclxuICAgIH0pOyAvLyA8LS0gOFxyXG59O1xyXG4iLCAiaW1wb3J0ICogYXMgZDMgZnJvbSBcImQzXCI7XHJcbmltcG9ydCB0eXBlIEdyYXBoIGZyb20gXCJncmFwaG9sb2d5XCI7XHJcbmltcG9ydCB0eXBlIHsgVEZpbGUgfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuaW1wb3J0IHsgb3Blbk9yU3dpdGNoIH0gZnJvbSBcIm9ic2lkaWFuLWNvbW11bml0eS1saWJcIjtcclxuaW1wb3J0IHsgZGZzRmxhdEFkakxpc3QsIFZpc01vZGFsIH0gZnJvbSBcIi4vVmlzTW9kYWxcIjtcclxuXHJcbmV4cG9ydCBjb25zdCB0aWR5VHJlZSA9IChcclxuICBncmFwaDogR3JhcGgsXHJcbiAgY3VyckZpbGU6IFRGaWxlLFxyXG4gIG1vZGFsOiBWaXNNb2RhbCxcclxuICB3aWR0aDogbnVtYmVyLFxyXG4gIGhlaWdodDogbnVtYmVyXHJcbikgPT4ge1xyXG4gIC8vIGNvbnN0IGFkakxpc3Q6IEFkakxpc3RJdGVtW10gPSBiZnNBZGpMaXN0KGdyYXBoLCBjdXJyRmlsZS5iYXNlbmFtZSk7XHJcbiAgLy8gY29uc29sZS5sb2coeyBhZGpMaXN0IH0pO1xyXG5cclxuICAvLyBjb25zdCBub0RvdWJsZXMgPSBbLi4uYWRqTGlzdF07XHJcbiAgLy8gbm9Eb3VibGVzLmZvckVhY2goKGEsIGksIGxpc3QpID0+IHtcclxuICAvLyAgIGlmIChsaXN0LnNvbWUoKGIsIGopID0+IGkgIT09IGogJiYgYS5wYXJlbnRJZCA9PT0gYi5wYXJlbnRJZCkpIHtcclxuICAvLyAgICAgbm9Eb3VibGVzLnNwbGljZShpLCAxKTtcclxuICAvLyAgIH1cclxuICAvLyB9KTtcclxuICAvLyBjb25zb2xlLmxvZyh7IG5vRG91YmxlcyB9KTtcclxuXHJcbiAgY29uc3QgdHJlZSA9IChkYXRhKSA9PiB7XHJcbiAgICBjb25zdCByb290ID0gZDMuaGllcmFyY2h5KGRhdGEpO1xyXG4gICAgcm9vdC5keCA9IDEwO1xyXG4gICAgcm9vdC5keSA9IHdpZHRoIC8gKHJvb3QuaGVpZ2h0ICsgMSk7XHJcbiAgICByZXR1cm4gZDMudHJlZSgpLm5vZGVTaXplKFtyb290LmR4LCByb290LmR5XSkocm9vdCk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZmxhdEFkaiA9IGRmc0ZsYXRBZGpMaXN0KGdyYXBoLCBjdXJyRmlsZS5iYXNlbmFtZSk7XHJcbiAgY29uc29sZS5sb2coeyBmbGF0QWRqIH0pO1xyXG5cclxuICBjb25zdCBoaWVyYXJjaHkgPSBkMy5zdHJhdGlmeSgpKGZsYXRBZGopO1xyXG4gIGNvbnNvbGUubG9nKHsgaGllcmFyY2h5IH0pO1xyXG5cclxuICBjb25zdCByb290ID0gdHJlZShoaWVyYXJjaHkpO1xyXG4gIGNvbnNvbGUubG9nKHJvb3QpO1xyXG5cclxuICBsZXQgeDAgPSBJbmZpbml0eTtcclxuICBsZXQgeDEgPSAteDA7XHJcbiAgcm9vdC5lYWNoKChkKSA9PiB7XHJcbiAgICBpZiAoZC54ID4geDEpIHgxID0gZC54O1xyXG4gICAgaWYgKGQueCA8IHgwKSB4MCA9IGQueDtcclxuICB9KTtcclxuXHJcbiAgY29uc3Qgc3ZnID0gZDNcclxuICAgIC5zZWxlY3QoXCIuZDMtZ3JhcGhcIilcclxuICAgIC5hcHBlbmQoXCJzdmdcIilcclxuICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodClcclxuICAgIC5hdHRyKFwid2lkdGhcIiwgd2lkdGgpO1xyXG5cclxuICBjb25zdCBnID0gc3ZnXHJcbiAgICAuYXBwZW5kKFwiZ1wiKVxyXG4gICAgLmF0dHIoXCJmb250LWZhbWlseVwiLCBcInNhbnMtc2VyaWZcIilcclxuICAgIC5hdHRyKFwiZm9udC1zaXplXCIsIDEwKVxyXG4gICAgLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgYHRyYW5zbGF0ZSgke3Jvb3QuZHkgLyAzfSwke3Jvb3QuZHggLSB4MH0pYCk7XHJcblxyXG4gIGNvbnN0IGxpbmsgPSBnXHJcbiAgICAuYXBwZW5kKFwiZ1wiKVxyXG4gICAgLmF0dHIoXCJmaWxsXCIsIFwibm9uZVwiKVxyXG4gICAgLmF0dHIoXCJzdHJva2VcIiwgXCIjNTU1XCIpXHJcbiAgICAuYXR0cihcInN0cm9rZS1vcGFjaXR5XCIsIDAuNClcclxuICAgIC5hdHRyKFwic3Ryb2tlLXdpZHRoXCIsIDEuNSlcclxuICAgIC5zZWxlY3RBbGwoXCJwYXRoXCIpXHJcbiAgICAuZGF0YShyb290LmxpbmtzKCkpXHJcbiAgICAuam9pbihcInBhdGhcIilcclxuICAgIC5hdHRyKFxyXG4gICAgICBcImRcIixcclxuICAgICAgZDNcclxuICAgICAgICAubGlua0hvcml6b250YWwoKVxyXG4gICAgICAgIC54KChkKSA9PiBkLnkpXHJcbiAgICAgICAgLnkoKGQpID0+IGQueClcclxuICAgICk7XHJcblxyXG4gIGNvbnN0IG5vZGUgPSBnXHJcbiAgICAuYXBwZW5kKFwiZ1wiKVxyXG4gICAgLmF0dHIoXCJzdHJva2UtbGluZWpvaW5cIiwgXCJyb3VuZFwiKVxyXG4gICAgLmF0dHIoXCJzdHJva2Utd2lkdGhcIiwgMTApXHJcbiAgICAuc2VsZWN0QWxsKFwiZ1wiKVxyXG4gICAgLmRhdGEocm9vdC5kZXNjZW5kYW50cygpKVxyXG4gICAgLmpvaW4oXCJnXCIpXHJcbiAgICAuYXR0cihcInRyYW5zZm9ybVwiLCAoZCkgPT4gYHRyYW5zbGF0ZSgke2QueX0sJHtkLnh9KWApO1xyXG5cclxuICBub2RlXHJcbiAgICAuYXBwZW5kKFwiY2lyY2xlXCIpXHJcbiAgICAuYXR0cihcImZpbGxcIiwgKGQpID0+IChkLmNoaWxkcmVuID8gXCIjNTU1XCIgOiBcIiM5OTlcIikpXHJcbiAgICAuYXR0cihcInJcIiwgMTApO1xyXG5cclxuICBub2RlLmF0dHIoXCJhcmlhLWxhYmVsXCIsIChkKSA9PiB7XHJcbiAgICBjb25zb2xlLmxvZyhkKTtcclxuICAgIHJldHVybiBkLmRhdGEuZGF0YS5uYW1lO1xyXG4gIH0pO1xyXG5cclxuICBjb25zdCBub2RlQ2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQsIGRlc3Q6IHN0cmluZykgPT4ge1xyXG4gICAgb3Blbk9yU3dpdGNoKGRlc3QsIGV2ZW50KTtcclxuICAgIG1vZGFsLmNsb3NlKCk7XHJcbiAgfTtcclxuICBub2RlLm9uKFwiY2xpY2tcIiwgKGV2ZW50OiBNb3VzZUV2ZW50LCBkKSA9PiB7XHJcbiAgICBjb25zb2xlLmxvZyh7IGQgfSk7XHJcbiAgICBub2RlQ2xpY2soZXZlbnQsIGQuZGF0YS5kYXRhLm5hbWUpO1xyXG4gIH0pO1xyXG5cclxuICBub2RlXHJcbiAgICAuYXBwZW5kKFwidGV4dFwiKVxyXG4gICAgLmF0dHIoXCJkeVwiLCBcIjAuMzFlbVwiKVxyXG4gICAgLmF0dHIoXCJ4XCIsIChkKSA9PiAoZC5jaGlsZHJlbiA/IC02IDogNikpXHJcbiAgICAuYXR0cihcInRleHQtYW5jaG9yXCIsIChkKSA9PiAoZC5jaGlsZHJlbiA/IFwiZW5kXCIgOiBcInN0YXJ0XCIpKVxyXG4gICAgLnRleHQoKGQpID0+IGQuZGF0YS5kYXRhLm5hbWUpXHJcbiAgICAuY2xvbmUodHJ1ZSlcclxuICAgIC5sb3dlcigpXHJcbiAgICAuYXR0cihcInN0cm9rZVwiLCBcIndoaXRlXCIpO1xyXG5cclxuICBmdW5jdGlvbiB6b29tZWQoeyB0cmFuc2Zvcm0gfSkge1xyXG4gICAgc3ZnLmF0dHIoXCJ0cmFuc2Zvcm1cIiwgdHJhbnNmb3JtKTtcclxuICB9XHJcbiAgc3ZnLmNhbGwoXHJcbiAgICBkM1xyXG4gICAgICAuem9vbSgpXHJcbiAgICAgIC5leHRlbnQoW1xyXG4gICAgICAgIFswLCAwXSxcclxuICAgICAgICBbd2lkdGgsIGhlaWdodF0sXHJcbiAgICAgIF0pXHJcbiAgICAgIC5zY2FsZUV4dGVudChbMC41LCA4XSlcclxuICAgICAgLm9uKFwiem9vbVwiLCB6b29tZWQpXHJcbiAgKTtcclxufTtcclxuIiwgImltcG9ydCAqIGFzIGQzIGZyb20gXCJkM1wiO1xyXG5pbXBvcnQgdHlwZSBHcmFwaCBmcm9tIFwiZ3JhcGhvbG9neVwiO1xyXG5pbXBvcnQgdHlwZSB7IFRGaWxlIH0gZnJvbSBcIm9ic2lkaWFuXCI7XHJcbmltcG9ydCB7IG9wZW5PclN3aXRjaCB9IGZyb20gXCJvYnNpZGlhbi1jb21tdW5pdHktbGliXCI7XHJcbmltcG9ydCB0eXBlIHsgVmlzTW9kYWwgfSBmcm9tIFwiLi9WaXNNb2RhbFwiO1xyXG5pbXBvcnQgeyBkZnNGbGF0QWRqTGlzdCB9IGZyb20gXCIuL1Zpc01vZGFsXCI7XHJcblxyXG5leHBvcnQgY29uc3QgdHJlZU1hcCA9IChcclxuICBncmFwaDogR3JhcGgsXHJcbiAgY3VyckZpbGU6IFRGaWxlLFxyXG4gIG1vZGFsOiBWaXNNb2RhbCxcclxuICB3aWR0aDogbnVtYmVyLFxyXG4gIGhlaWdodDogbnVtYmVyXHJcbikgPT4ge1xyXG4gIGNvbnN0IGZsYXRBZGogPSBkZnNGbGF0QWRqTGlzdChncmFwaCwgY3VyckZpbGUuYmFzZW5hbWUpO1xyXG4gIGNvbnNvbGUubG9nKHsgZmxhdEFkaiB9KTtcclxuXHJcbiAgY29uc3QgaGllcmFyY2h5ID0gZDMuc3RyYXRpZnkoKShmbGF0QWRqKTtcclxuICBjb25zb2xlLmxvZyh7IGhpZXJhcmNoeSB9KTtcclxuXHJcbiAgY29uc3Qgcm9vdCA9IGQzXHJcbiAgICAudHJlZW1hcCgpXHJcbiAgICAudGlsZShkMy50cmVlbWFwQmluYXJ5KVxyXG4gICAgLnNpemUoW3dpZHRoLCBoZWlnaHRdKVxyXG4gICAgLnBhZGRpbmcoMSlcclxuICAgIC5yb3VuZCh0cnVlKShcclxuICAgICAgaGllcmFyY2h5LnN1bSgoZCkgPT4gZC5oZWlnaHQpLnNvcnQoKGEsIGIpID0+IGIuaGVpZ2h0IC0gYS5oZWlnaHQpXHJcbiAgICApO1xyXG5cclxuICAvLyAgIGNvbnN0IHJvb3QgPSB0cmVlbWFwKGRhdGEpO1xyXG5cclxuICBjb25zdCBzdmcgPSBkM1xyXG4gICAgLnNlbGVjdChcIi5kMy1ncmFwaFwiKVxyXG4gICAgLmFwcGVuZChcInN2Z1wiKVxyXG4gICAgLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0KVxyXG4gICAgLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aClcclxuICAgIC5zdHlsZShcImZvbnRcIiwgXCIxMHB4IHNhbnMtc2VyaWZcIik7XHJcblxyXG4gIGNvbnN0IGxlYWYgPSBzdmdcclxuICAgIC5zZWxlY3RBbGwoXCJnXCIpXHJcbiAgICAuZGF0YShyb290LmxlYXZlcygpKVxyXG4gICAgLmpvaW4oXCJnXCIpXHJcbiAgICAuYXR0cihcInRyYW5zZm9ybVwiLCAoZCkgPT4gYHRyYW5zbGF0ZSgke2QueDB9LCR7ZC55MH0pYCk7XHJcblxyXG4gIGxlYWYuYXR0cihcImFyaWEtbGFiZWxcIiwgKGQpID0+IGQuZGF0YS5uYW1lKTtcclxuXHJcbiAgLy8gICBsZWFmLmFwcGVuZChcInRpdGxlXCIpLnRleHQoXHJcbiAgLy8gICAgIChkKSA9PlxyXG4gIC8vICAgICAgIGAke2RcclxuICAvLyAgICAgICAgIC5hbmNlc3RvcnMoKVxyXG4gIC8vICAgICAgICAgLnJldmVyc2UoKVxyXG4gIC8vICAgICAgICAgLm1hcCgoZCkgPT4gZC5kYXRhLmlkKVxyXG4gIC8vICAgICAgICAgLmpvaW4oXCIvXCIpfVxcbiR7Zm9ybWF0KGQuaGVpZ2h0KX1gXHJcbiAgLy8gICApO1xyXG5cclxuICBjb25zdCBjb2xvciA9IGQzLnNjYWxlT3JkaW5hbChkMy5zY2hlbWVDYXRlZ29yeTEwKTtcclxuXHJcbiAgbGVhZlxyXG4gICAgLmFwcGVuZChcInJlY3RcIilcclxuICAgIC8vIC5hdHRyKFwiaWRcIiwgKGQpID0+IChkLmxlYWZVaWQgPSBET00udWlkKFwibGVhZlwiKSkuaWQpXHJcbiAgICAuYXR0cihcImZpbGxcIiwgKGQpID0+IHtcclxuICAgICAgd2hpbGUgKGQuZGVwdGggPiAxKSBkID0gZC5wYXJlbnQ7XHJcbiAgICAgIHJldHVybiBjb2xvcihkLmRhdGEuaWQpO1xyXG4gICAgfSlcclxuICAgIC5hdHRyKFwiZmlsbC1vcGFjaXR5XCIsIDAuNilcclxuICAgIC5hdHRyKFwid2lkdGhcIiwgKGQpID0+IGQueDEgLSBkLngwKVxyXG4gICAgLmF0dHIoXCJoZWlnaHRcIiwgKGQpID0+IGQueTEgLSBkLnkwKTtcclxuXHJcbiAgbGVhZlxyXG4gICAgLmFwcGVuZChcImNsaXBQYXRoXCIpXHJcbiAgICAvLyAuYXR0cihcImlkXCIsIChkKSA9PiAoZC5jbGlwVWlkID0gRE9NLnVpZChcImNsaXBcIikpLmlkKVxyXG4gICAgLmFwcGVuZChcInVzZVwiKTtcclxuICAvLyAuYXR0cihcInhsaW5rOmhyZWZcIiwgKGQpID0+IGQubGVhZlVpZC5ocmVmKTtcclxuXHJcbiAgLy8gICBsZWFmXHJcbiAgLy8gICAgIC5hcHBlbmQoXCJ0ZXh0XCIpXHJcbiAgLy8gICAgIC5hdHRyKFwiY2xpcC1wYXRoXCIsIChkKSA9PiBkLmNsaXBVaWQpXHJcbiAgLy8gICAgIC5zZWxlY3RBbGwoXCJ0c3BhblwiKVxyXG4gIC8vICAgICAuZGF0YSgoZCkgPT4ge1xyXG4gIC8vICAgICAgIGNvbnNvbGUubG9nKHsgZCB9KTtcclxuICAvLyAgICAgICByZXR1cm4gZC5kYXRhLm5hbWUuc3BsaXQoLyg/PVtBLVpdW15BLVpdKS9nKS5jb25jYXQoZm9ybWF0KGQuaGVpZ2h0KSk7XHJcbiAgLy8gICAgIH0pXHJcbiAgLy8gICAgIC5qb2luKFwidHNwYW5cIilcclxuICAvLyAgICAgLmF0dHIoXCJ4XCIsIDMpXHJcbiAgLy8gICAgIC5hdHRyKFxyXG4gIC8vICAgICAgIFwieVwiLFxyXG4gIC8vICAgICAgIChkLCBpLCBub2RlcykgPT4gYCR7KGkgPT09IG5vZGVzLmxlbmd0aCAtIDEpICogMC4zICsgMS4xICsgaSAqIDAuOX1lbWBcclxuICAvLyAgICAgKVxyXG4gIC8vICAgICAuYXR0cihcImZpbGwtb3BhY2l0eVwiLCAoZCwgaSwgbm9kZXMpID0+XHJcbiAgLy8gICAgICAgaSA9PT0gbm9kZXMubGVuZ3RoIC0gMSA/IDAuNyA6IG51bGxcclxuICAvLyAgICAgKTtcclxuICAvLyAgIC8vIC50ZXh0KChkKSA9PiBkKTtcclxuXHJcbiAgY29uc3Qgbm9kZUNsaWNrID0gKGV2ZW50OiBNb3VzZUV2ZW50LCBkZXN0OiBzdHJpbmcpID0+IHtcclxuICAgIG9wZW5PclN3aXRjaChkZXN0LCBldmVudCk7XHJcbiAgICBtb2RhbC5jbG9zZSgpO1xyXG4gIH07XHJcbiAgbGVhZi5vbihcImNsaWNrXCIsIChldmVudDogTW91c2VFdmVudCwgZCkgPT4ge1xyXG4gICAgY29uc29sZS5sb2coeyBkIH0pO1xyXG4gICAgbm9kZUNsaWNrKGV2ZW50LCBkLmRhdGEubmFtZSk7XHJcbiAgfSk7XHJcblxyXG4gIGZ1bmN0aW9uIHpvb21lZCh7IHRyYW5zZm9ybSB9KSB7XHJcbiAgICBzdmcuYXR0cihcInRyYW5zZm9ybVwiLCB0cmFuc2Zvcm0pO1xyXG4gIH1cclxuICBzdmcuY2FsbChcclxuICAgIGQzXHJcbiAgICAgIC56b29tKClcclxuICAgICAgLmV4dGVudChbXHJcbiAgICAgICAgWzAsIDBdLFxyXG4gICAgICAgIFt3aWR0aCwgaGVpZ2h0XSxcclxuICAgICAgXSlcclxuICAgICAgLnNjYWxlRXh0ZW50KFswLjUsIDhdKVxyXG4gICAgICAub24oXCJ6b29tXCIsIHpvb21lZClcclxuICApO1xyXG59O1xyXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7SUFBQSwyQ0FBQSxPQUFBLFNBQUE7QUFDQSxVQUFBLE9BQUEsWUFBQSxZQUFBLE9BQUEsWUFBQTtBQUNBLGdCQUFBLFVBQUEsUUFBQTtlQUNBLE9BQUEsV0FBQSxjQUFBLE9BQUE7QUFDQSxlQUFBLENBQUEsR0FBQSxPQUFBO2VBQ0EsT0FBQSxZQUFBO0FBQ0EsZ0JBQUEsYUFBQSxRQUFBOztBQUVBLGNBQUEsYUFBQSxRQUFBO0lBQ0EsR0FBQyxPQUFBLFNBQUEsY0FB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O1VBQ0EsT0FBQztBQUNELGdCQUFBLFFBQUEsVUFBQSxPQUFBO0FBQ0EsdUJBQUEsU0FBQTtBQUNBLG1CQUFBLFNBQUEsSUFBQSxVQUFBO0FBQ0EsbUJBQUEsSUFBQSxPQUFBLFFBQUE7QUFDQSxxQkFBQTtZQUNBO0FBQ0EsbUJBQUEsU0FBQSxJQUFBO0FBQ0EscUJBQUEsVUFBQSxJQUFBLEtBQUEsSUFBQSxHQUFBLFNBQUEsQ0FBQTtZQUNBO0FBQ0Esa0JBQUEsU0FBQSxJQUFBO0FBQ0EscUJBQUEsVUFBQSxJQUFBLEtBQUE7WUFDQTtVQUNBO0FBRUEsa0JBQUEsVUFBQTtZQUNBLEtBQUE7WUFDQSxLQUFBO1lBQ0E7WUFDQTtZQUNBO1VBQ0E7OztBQzVEQSxjQUFBLGtCQUFBLG9CQUFBLHVEQUFBO0FBQ0EsY0FBQSxZQUFBLG9CQUFBLCtDQUFBO0FBRUEsY0FBQSxXQUFBLGdCQUFBLFVBQUE7QUFDQSxjQUFBLGlCQUFBLE1BQUE7QUFHQSxrQkFBQSxVQUFBLFNBQUEsSUFBQTtBQUNBLG1CQUFBLE9BQUEsVUFBQSxXQUFBLFVBQUEsTUFBQSxlQUFBLGNBQUE7VUFDQTs7O0FDVEEsY0FBQSxRQUFBLG9CQUFBLDJDQUFBO0FBRUEsY0FBQSxjQUFBO0FBRUEsY0FBQSxXQUFBLFNBQUEsU0FBQSxXQUFBO0FBQ0EsZ0JBQUEsUUFBQSxLQUFBLFdBQUEsT0FBQTtBQUNBLG1CQUFBLFNBQUEsV0FBQSxPQUNBLFNBQUEsU0FBQSxRQUNBLE9BQUEsYUFBQSxhQUFBLE1BQUEsU0FBQSxJQUNBLENBQUEsQ0FBQTtVQUNBO0FBRUEsY0FBQSxhQUFBLFNBQUEsWUFBQSxTQUFBLFFBQUE7QUFDQSxtQkFBQSxPQUFBLE1BQUEsRUFBQSxRQUFBLGFBQUEsR0FBQSxFQUFBLFlBQUE7VUFDQTtBQUVBLGNBQUEsT0FBQSxTQUFBLE9BQUEsQ0FBQTtBQUNBLGNBQUEsU0FBQSxTQUFBLFNBQUE7QUFDQSxjQUFBLFdBQUEsU0FBQSxXQUFBO0FBRUEsa0JBQUEsVUFBQTs7O0FDcEJBLGtCQUFBLFVBQUEsU0FBQSxJQUFBO0FBQ0EsbUJBQUEsT0FBQSxPQUFBLFdBQUEsT0FBQSxPQUFBLE9BQUEsT0FBQTtVQUNBOzs7QUNGQSxrQkFBQSxVQUFBOzs7O0FDQ0EsY0FBQSxpQkFBQSxvQkFBQSw2REFBQTtBQUNBLGNBQUEsT0FBQSxvQkFBQSwwQ0FBQTtBQUNBLGNBQUEsTUFBQSxvQkFBQSx5Q0FBQTtBQUNBLGNBQUEsa0JBQUEsb0JBQUEsdURBQUE7QUFDQSxjQUFBLFVBQUEsb0JBQUEsNkNBQUE7QUFFQSxjQUFBLFdBQUEsZ0JBQUEsVUFBQTtBQUNBLGNBQUEseUJBQUE7QUFFQSxjQUFBLGFBQUEsV0FBQTtBQUE4QixtQkFBQTtVQUFhO0FBSTNDLGNBQUEsbUJBQUEsbUNBQUE7QUFFQSxjQUFBLENBQUEsRUFBQSxNQUFBO0FBQ0EsNEJBQUEsQ0FBQSxFQUFBLEtBQUE7QUFFQSxnQkFBQSxDQUFBLFdBQUE7QUFBQSx1Q0FBQTtpQkFDQTtBQUNBLGtEQUFBLGVBQUEsZUFBQSxhQUFBLENBQUE7QUFDQSxrQkFBQSxzQ0FBQSxPQUFBO0FBQUEsb0NBQUE7WUFDQTtVQUNBO0FBRUEsY0FBQSxxQkFBQTtBQUFBLGdDQUFBLENBQUE7QUFHQSxjQUFBLENBQUEsV0FBQSxDQUFBLElBQUEsbUJBQUEsUUFBQTtBQUFBLGlCQUFBLG1CQUFBLFVBQUEsVUFBQTtBQUVBLGtCQUFBLFVBQUE7WUFDQTtZQUNBO1VBQ0E7OztBQ2xDQSxrQkFBQSxVQUFBLENBQUE7OztBQ0FBLGNBQUEsUUFBQSxvQkFBQSwyQ0FBQTtBQUVBLGtCQUFBLFVBQUEsQ0FBQSxDQUFBLE9BQUEseUJBQUEsQ0FBQSxNQUFBLFdBQUE7QUFHQSxtQkFBQSxDQUFBLE9BQUEsT0FBQSxDQUFBO1VBQ0EsQ0FBQzs7O0FDTkQsY0FBQSxVQUFBLG9CQUFBLDRDQUFBO0FBQ0EsY0FBQSx5QkFBQSxvQkFBQSx3REFBQTtBQUVBLGNBQUEsVUFBQSxRQUFBO0FBRUEsa0JBQUEsVUFBQSxPQUFBLFlBQUEsY0FBQSxjQUFBLEtBQUEsdUJBQUEsS0FBQSxPQUFBLENBQUE7OztBQ0xBLGNBQUEsV0FBQSxvQkFBQSwrQ0FBQTtBQUNBLGNBQUEsbUJBQUEsb0JBQUEsOERBQUE7QUFDQSxjQUFBLGNBQUEsb0JBQUEsbURBQUE7QUFDQSxjQUFBLGFBQUEsb0JBQUEsaURBQUE7QUFDQSxjQUFBLE9BQUEsb0JBQUEsMENBQUE7QUFDQSxjQUFBLHdCQUFBLG9CQUFBLDZEQUFBO0FBQ0EsY0FBQSxZQUFBLG9CQUFBLGdEQUFBO0FBQ0EsY0FBQSxXQUFBLFVBQUEsVUFBQTtBQUVBLGNBQUEsWUFBQTtBQUNBLGNBQUEsUUFBQSxXQUFBO1VBQXlCO0FBR3pCLGNBQUEsYUFBQSxXQUFBO0FBRUEsZ0JBQUEsU0FBQSxzQkFBQSxRQUFBO0FBQ0EsZ0JBQUEsU0FBQSxZQUFBO0FBQ0EsZ0JBQUEsS0FBQTtBQUNBLGdCQUFBLFNBQUE7QUFDQSxnQkFBQSxLQUFBO0FBQ0EsZ0JBQUEsS0FBQSxTQUFBLFNBQUE7QUFDQSxnQkFBQTtBQUNBLG1CQUFBLE1BQUEsVUFBQTtBQUNBLGlCQUFBLFlBQUEsTUFBQTtBQUNBLG1CQUFBLE1BQUEsT0FBQSxFQUFBO0FBQ0EsNkJBQUEsT0FBQSxjQUFBO0FBQ0EsMkJBQUEsS0FBQTtBQUNBLDJCQUFBLE1BQUEsS0FBQSxTQUFBLEtBQUEsc0JBQUEsS0FBQSxNQUFBLFNBQUEsRUFBQTtBQUNBLDJCQUFBLE1BQUE7QUFDQSx5QkFBQSxlQUFBO0FBQ0EsbUJBQUE7QUFBQSxxQkFBQSxXQUFBLFdBQUEsWUFBQTtBQUNBLG1CQUFBLFdBQUE7VUFDQTtBQUdBLGtCQUFBLFVBQUEsT0FBQSxVQUFBLGlCQUFBLEdBQUEsWUFBQTtBQUNBLGdCQUFBO0FBQ0EsZ0JBQUEsTUFBQSxNQUFBO0FBQ0Esb0JBQUEsYUFBQSxTQUFBLENBQUE7QUFDQSx1QkFBQSxJQUFBLE1BQUE7QUFDQSxvQkFBQSxhQUFBO0FBRUEscUJBQUEsWUFBQTtZQUNBO0FBQUcsdUJBQUEsV0FBQTtBQUNILG1CQUFBLGVBQUEsU0FBQSxTQUFBLGlCQUFBLFFBQUEsVUFBQTtVQUNBO0FBRUEscUJBQUEsWUFBQTs7O0FDL0NBLGNBQUEsY0FBQSxvQkFBQSxpREFBQTtBQUNBLGNBQUEsdUJBQUEsb0JBQUEsNERBQUE7QUFDQSxjQUFBLFdBQUEsb0JBQUEsK0NBQUE7QUFDQSxjQUFBLGFBQUEsb0JBQUEsaURBQUE7QUFFQSxrQkFBQSxVQUFBLGNBQUEsT0FBQSxtQkFBQSwwQkFBQSxHQUFBLFlBQUE7QUFDQSxxQkFBQSxDQUFBO0FBQ0EsZ0JBQUEsT0FBQSxXQUFBLFVBQUE7QUFDQSxnQkFBQSxTQUFBLEtBQUE7QUFDQSxnQkFBQSxJQUFBO0FBQ0EsZ0JBQUE7QUFDQSxtQkFBQSxTQUFBO0FBQUEsbUNBQUEsRUFBQSxHQUFBLE1BQUEsS0FBQSxNQUFBLFdBQUEsSUFBQTtBQUNBLG1CQUFBO1VBQ0E7OztBQ2JBLGNBQUEsY0FBQSxvQkFBQSxpREFBQTtBQUNBLGNBQUEsaUJBQUEsb0JBQUEsb0RBQUE7QUFDQSxjQUFBLFdBQUEsb0JBQUEsK0NBQUE7QUFDQSxjQUFBLGNBQUEsb0JBQUEsa0RBQUE7QUFFQSxjQUFBLHVCQUFBLE9BQUE7QUFFQSxtQkFBQSxJQUFBLGNBQUEsdUJBQUEsd0JBQUEsR0FBQSxHQUFBLFlBQUE7QUFDQSxxQkFBQSxDQUFBO0FBQ0EsZ0JBQUEsWUFBQSxHQUFBLElBQUE7QUFDQSxxQkFBQSxVQUFBO0FBQ0EsZ0JBQUE7QUFBQSxrQkFBQTtBQUNBLHVCQUFBLHFCQUFBLEdBQUEsR0FBQSxVQUFBO2NBQ0EsU0FBRyxRQUFBO2NBQWdCO0FBQ25CLGdCQUFBLFNBQUEsY0FBQSxTQUFBO0FBQUEsb0JBQUEsVUFBQSx5QkFBQTtBQUNBLGdCQUFBLFdBQUE7QUFBQSxnQkFBQSxLQUFBLFdBQUE7QUFDQSxtQkFBQTtVQUNBOzs7QUNqQkEsY0FBQSxjQUFBLG9CQUFBLGlEQUFBO0FBQ0EsY0FBQSw2QkFBQSxvQkFBQSxtRUFBQTtBQUNBLGNBQUEsMkJBQUEsb0JBQUEsZ0VBQUE7QUFDQSxjQUFBLGtCQUFBLG9CQUFBLHVEQUFBO0FBQ0EsY0FBQSxjQUFBLG9CQUFBLGtEQUFBO0FBQ0EsY0FBQSxNQUFBLG9CQUFBLHlDQUFBO0FBQ0EsY0FBQSxpQkFBQSxvQkFBQSxvREFBQTtBQUVBLGNBQUEsaUNBQUEsT0FBQTtBQUVBLG1CQUFBLElBQUEsY0FBQSxpQ0FBQSxrQ0FBQSxHQUFBLEdBQUE7QUFDQSxnQkFBQSxnQkFBQSxDQUFBO0FBQ0EsZ0JBQUEsWUFBQSxHQUFBLElBQUE7QUFDQSxnQkFBQTtBQUFBLGtCQUFBO0FBQ0EsdUJBQUEsK0JBQUEsR0FBQSxDQUFBO2NBQ0EsU0FBRyxRQUFBO2NBQWdCO0FBQ25CLGdCQUFBLElBQUEsR0FBQSxDQUFBO0FBQUEscUJBQUEseUJBQUEsQ0FBQSwyQkFBQSxFQUFBLEtBQUEsR0FBQSxDQUFBLEdBQUEsRUFBQSxFQUFBO1VBQ0E7OztBQ2hCQSxjQUFBLHFCQUFBLG9CQUFBLDBEQUFBO0FBQ0EsY0FBQSxjQUFBLG9CQUFBLG1EQUFBO0FBRUEsY0FBQSxhQUFBLFlBQUEsT0FBQSxVQUFBLFdBQUE7QUFFQSxtQkFBQSxJQUFBLE9BQUEsdUJBQUEsNkJBQUEsR0FBQTtBQUNBLG1CQUFBLG1CQUFBLEdBQUEsVUFBQTtVQUNBOzs7QUNSQSxtQkFBQSxJQUFBLE9BQUE7OztBQ0FBLGNBQUEsTUFBQSxvQkFBQSx5Q0FBQTtBQUNBLGNBQUEsV0FBQSxvQkFBQSwrQ0FBQTtBQUNBLGNBQUEsWUFBQSxvQkFBQSxnREFBQTtBQUNBLGNBQUEsMkJBQUEsb0JBQUEsOERBQUE7QUFFQSxjQUFBLFdBQUEsVUFBQSxVQUFBO0FBQ0EsY0FBQSxrQkFBQSxPQUFBO0FBR0Esa0JBQUEsVUFBQSwyQkFBQSxPQUFBLGlCQUFBLFNBQUEsR0FBQTtBQUNBLGdCQUFBLFNBQUEsQ0FBQTtBQUNBLGdCQUFBLElBQUEsR0FBQSxRQUFBO0FBQUEscUJBQUEsRUFBQTtBQUNBLGdCQUFBLE9BQUEsRUFBQSxlQUFBLGNBQUEsYUFBQSxFQUFBLGFBQUE7QUFDQSxxQkFBQSxFQUFBLFlBQUE7WUFDQTtBQUFHLG1CQUFBLGFBQUEsU0FBQSxrQkFBQTtVQUNIOzs7QUNmQSxjQUFBLE1BQUEsb0JBQUEseUNBQUE7QUFDQSxjQUFBLGtCQUFBLG9CQUFBLHVEQUFBO0FBQ0EsY0FBQSxnQkFBQSxvQkFBQSxvREFBQTtBQUNBLGNBQUEsYUFBQSxvQkFBQSxpREFBQTtBQUVBLGNBQUEsZUFBQSxjQUFBLEtBQUE7QUFFQSxrQkFBQSxVQUFBLFNBQUEsUUFBQSxPQUFBO0FBQ0EsZ0JBQUEsSUFBQSxnQkFBQSxNQUFBO0FBQ0EsZ0JBQUEsSUFBQTtBQUNBLGdCQUFBLFNBQUEsQ0FBQTtBQUNBLGdCQUFBO0FBQ0EsaUJBQUEsT0FBQTtBQUFBLGVBQUEsSUFBQSxZQUFBLEdBQUEsS0FBQSxJQUFBLEdBQUEsR0FBQSxLQUFBLE9BQUEsS0FBQSxHQUFBO0FBRUEsbUJBQUEsTUFBQSxTQUFBO0FBQUEsa0JBQUEsSUFBQSxHQUFBLE1BQUEsTUFBQSxJQUFBLEdBQUE7QUFDQSxpQkFBQSxhQUFBLFFBQUEsR0FBQSxLQUFBLE9BQUEsS0FBQSxHQUFBO2NBQ0E7QUFDQSxtQkFBQTtVQUNBOzs7QUNsQkEsY0FBQSxxQkFBQSxvQkFBQSwwREFBQTtBQUNBLGNBQUEsY0FBQSxvQkFBQSxtREFBQTtBQUdBLGtCQUFBLFVBQUEsT0FBQSxRQUFBLGNBQUEsR0FBQTtBQUNBLG1CQUFBLG1CQUFBLEdBQUEsV0FBQTtVQUNBOzs7O0FDTEEsY0FBQSw2QkFBQSxDQUFBLEVBQW1DO0FBQ25DLGNBQUEsMkJBQUEsT0FBQTtBQUdBLGNBQUEsY0FBQSw0QkFBQSxDQUFBLDJCQUFBLEtBQUEsRUFBZ0YsR0FBQSxFQUFBLEdBQU8sQ0FBQTtBQUV2RixtQkFBQSxJQUFBLGNBQUEsOEJBQUEsR0FBQTtBQUNBLGdCQUFBLGFBQUEseUJBQUEsTUFBQSxDQUFBO0FBQ0EsbUJBQUEsQ0FBQSxDQUFBLGNBQUEsV0FBQTtVQUNBLElBQUM7OztBQ1ZELGNBQUEsa0NBQUEsb0JBQUEseUVBQUE7QUFJQSxrQkFBQSxVQUFBLE9BQUEsa0JBQUEsZ0JBQUEsQ0FBQSxJQUE0RCxXQUFBO0FBQzVELGdCQUFBLGdCQUFBO0FBQ0EsZ0JBQUEsT0FBQSxDQUFBO0FBQ0EsZ0JBQUE7QUFDQSxnQkFBQTtBQUNBLHVCQUFBLE9BQUEseUJBQUEsT0FBQSxXQUFBLFdBQUEsRUFBQTtBQUNBLHFCQUFBLEtBQUEsTUFBQSxDQUFBLENBQUE7QUFDQSw4QkFBQSxnQkFBQTtZQUNBLFNBQUcsUUFBQTtZQUFnQjtBQUNuQixtQkFBQSx3QkFBQSxHQUFBLE9BQUE7QUFDQSw4Q0FBQSxHQUFBLEtBQUE7QUFDQSxrQkFBQTtBQUFBLHVCQUFBLEtBQUEsR0FBQSxLQUFBOztBQUNBLGtCQUFBLFlBQUE7QUFDQSxxQkFBQTtZQUNBO1VBQ0EsRUFBQyxJQUFBOzs7QUNuQkQsY0FBQSxVQUFBLG9CQUFBLDRDQUFBO0FBQ0EsY0FBQSw0QkFBQSxvQkFBQSxtRUFBQTtBQUNBLGNBQUEsOEJBQUEsb0JBQUEscUVBQUE7QUFDQSxjQUFBLFdBQUEsb0JBQUEsK0NBQUE7QUFFQSxjQUFBLFdBQUEsUUFBQTtBQUdBLGtCQUFBLFVBQUEsWUFBQSxTQUFBLFdBQUEsaUJBQUEsSUFBQTtBQUNBLGdCQUFBLE9BQUEsMEJBQUEsRUFBQSxTQUFBLEVBQUEsQ0FBQTtBQUNBLGdCQUFBLHdCQUFBLDRCQUFBO0FBQ0EsbUJBQUEsd0JBQUEsS0FBQSxPQUFBLHNCQUFBLEVBQUEsQ0FBQSxJQUFBO1VBQ0E7OztBQ1pBLGtCQUFBLFVBQUEsb0JBQUEsNENBQUE7OztBQ0FBLGNBQUEsVUFBQSxvQkFBQSw0Q0FBQTtBQUNBLGNBQUEsU0FBQSxvQkFBQSw0Q0FBQTtBQUNBLGNBQUEsT0FBQSxvQkFBQSwwQ0FBQTtBQUNBLGNBQUEsTUFBQSxvQkFBQSx5Q0FBQTtBQUNBLGNBQUEsWUFBQSxvQkFBQSxnREFBQTtBQUNBLGNBQUEseUJBQUEsb0JBQUEsd0RBQUE7QUFDQSxjQUFBLHNCQUFBLG9CQUFBLG9EQUFBO0FBRUEsY0FBQSxtQkFBQSxvQkFBQTtBQUNBLGNBQUEsdUJBQUEsb0JBQUE7QUFDQSxjQUFBLFdBQUEsT0FBQSxzQkFBQSxFQUFBLE1BQUEsVUFBQTtBQUVBLGlCQUFBLGlCQUFBLFNBQUEsSUFBQTtBQUNBLG1CQUFBLHVCQUFBLEtBQUEsRUFBQTtVQUNBLENBQUM7QUFFRCxVQUFBLFNBQUEsVUFBQSxTQUFBLEdBQUEsS0FBQSxPQUFBLFNBQUE7QUFDQSxnQkFBQSxTQUFBLFVBQUEsQ0FBQSxDQUFBLFFBQUEsU0FBQTtBQUNBLGdCQUFBLFNBQUEsVUFBQSxDQUFBLENBQUEsUUFBQSxhQUFBO0FBQ0EsZ0JBQUEsY0FBQSxVQUFBLENBQUEsQ0FBQSxRQUFBLGNBQUE7QUFDQSxnQkFBQSxPQUFBLFNBQUEsWUFBQTtBQUNBLGtCQUFBLE9BQUEsT0FBQSxZQUFBLENBQUEsSUFBQSxPQUFBLE1BQUE7QUFBQSxxQkFBQSxPQUFBLFFBQUEsR0FBQTtBQUNBLG1DQUFBLEtBQUEsRUFBQSxTQUFBLFNBQUEsS0FBQSxPQUFBLE9BQUEsV0FBQSxNQUFBLEVBQUE7WUFDQTtBQUNBLGdCQUFBLE1BQUEsU0FBQTtBQUNBLGtCQUFBO0FBQUEsa0JBQUEsT0FBQTs7QUFDQSwwQkFBQSxLQUFBLEtBQUE7QUFDQTtZQUNBLFdBQUcsQ0FBQSxRQUFBO0FBQ0gscUJBQUEsRUFBQTtZQUNBLFdBQUcsQ0FBQSxlQUFBLEVBQUEsTUFBQTtBQUNILHVCQUFBO1lBQ0E7QUFDQSxnQkFBQTtBQUFBLGdCQUFBLE9BQUE7O0FBQ0EsbUJBQUEsR0FBQSxLQUFBLEtBQUE7VUFFQSxHQUFDLFNBQUEsV0FBQSxZQUFBLG9CQUFBO0FBQ0QsbUJBQUEsT0FBQSxRQUFBLGNBQUEsaUJBQUEsSUFBQSxFQUFBLFVBQUEsdUJBQUEsS0FBQSxJQUFBO1VBQ0EsQ0FBQzs7O0FDcENELGtCQUFBLFVBQUEsU0FBQSxJQUFBO0FBQ0EsZ0JBQUEsTUFBQTtBQUFBLG9CQUFBLFVBQUEsMEJBQUEsRUFBQTtBQUNBLG1CQUFBO1VBQ0E7OztBQ0xBLGNBQUEsVUFBQSxvQkFBQSw0Q0FBQTtBQUNBLGNBQUEsT0FBQSxvQkFBQSwwQ0FBQTtBQUVBLGtCQUFBLFVBQUEsU0FBQSxLQUFBLE9BQUE7QUFDQSxnQkFBQTtBQUNBLG1CQUFBLFNBQUEsS0FBQSxLQUFBO1lBQ0EsU0FBRyxRQUFBO0FBQ0gsc0JBQUEsT0FBQTtZQUNBO0FBQUcsbUJBQUE7VUFDSDs7O0FDVEEsY0FBQSxpQkFBQSxvQkFBQSw0REFBQSxFQUFBO0FBQ0EsY0FBQSxNQUFBLG9CQUFBLHlDQUFBO0FBQ0EsY0FBQSxrQkFBQSxvQkFBQSx1REFBQTtBQUVBLGNBQUEsZ0JBQUEsZ0JBQUEsYUFBQTtBQUVBLGtCQUFBLFVBQUEsU0FBQSxJQUFBLEtBQUEsUUFBQTtBQUNBLGdCQUFBLE1BQUEsQ0FBQSxJQUFBLEtBQUEsU0FBQSxLQUFBLEdBQUEsV0FBQSxhQUFBLEdBQUE7QUFDQSw2QkFBQSxJQUFBLGVBQUEsRUFBdUMsY0FBQSxNQUFBLE9BQUEsSUFBQSxDQUFpQztZQUN4RTtVQUNBOzs7QUNWQSxjQUFBLFNBQUEsb0JBQUEsNENBQUE7QUFDQSxjQUFBLE1BQUEsb0JBQUEseUNBQUE7QUFFQSxjQUFBLE9BQUEsT0FBQSxNQUFBO0FBRUEsa0JBQUEsVUFBQSxTQUFBLEtBQUE7QUFDQSxtQkFBQSxLQUFBLFFBQUEsTUFBQSxPQUFBLElBQUEsR0FBQTtVQUNBOzs7QUNQQSxjQUFBLFVBQUEsb0JBQUEsNENBQUE7QUFDQSxjQUFBLFlBQUEsb0JBQUEsZ0RBQUE7QUFDQSxjQUFBLFVBQUEsb0JBQUEsNkNBQUE7QUFFQSxjQUFBLFNBQUE7QUFDQSxjQUFBLFFBQUEsUUFBQSxXQUFBLFVBQUEsUUFBQSxDQUFBLENBQWtEO0FBRWxELFVBQUEsU0FBQSxVQUFBLFNBQUEsS0FBQSxPQUFBO0FBQ0EsbUJBQUEsTUFBQSxRQUFBLE9BQUEsT0FBQSxVQUFBLFNBQUEsUUFBQSxDQUFBO1VBQ0EsR0FBQyxZQUFBLENBQUEsQ0FBQSxFQUFBLEtBQUE7WUFDRCxTQUFBO1lBQ0EsTUFBQSxVQUFBLFNBQUE7WUFDQSxXQUFBO1VBQ0EsQ0FBQzs7O0FDYkQsY0FBQSxZQUFBLG9CQUFBLGdEQUFBO0FBQ0EsY0FBQSx5QkFBQSxvQkFBQSw4REFBQTtBQUlBLGtCQUFBLFVBQUEsU0FBQSxNQUFBLEtBQUEsbUJBQUE7QUFDQSxnQkFBQSxJQUFBLE9BQUEsdUJBQUEsSUFBQSxDQUFBO0FBQ0EsZ0JBQUEsV0FBQSxVQUFBLEdBQUE7QUFDQSxnQkFBQSxPQUFBLEVBQUE7QUFDQSxnQkFBQSxPQUFBO0FBQ0EsZ0JBQUEsV0FBQSxLQUFBLFlBQUE7QUFBQSxxQkFBQSxvQkFBQSxLQUFBO0FBQ0Esb0JBQUEsRUFBQSxXQUFBLFFBQUE7QUFDQSxtQkFBQSxRQUFBLFNBQUEsUUFBQSxTQUFBLFdBQUEsTUFBQSxRQUNBLFVBQUEsRUFBQSxXQUFBLFdBQUEsQ0FBQSxLQUFBLFNBQUEsU0FBQSxRQUNBLG9CQUFBLEVBQUEsT0FBQSxRQUFBLElBQUEsUUFDQSxvQkFBQSxFQUFBLE1BQUEsVUFBQSxXQUFBLENBQUEsSUFBQSxTQUFBLFNBQUEsTUFBQSxVQUFBLFNBQUE7VUFDQTs7O0FDaEJBLGNBQUEsWUFBQSxvQkFBQSxnREFBQTtBQUVBLGNBQUEsT0FBQSxLQUFBO0FBQ0EsY0FBQSxPQUFBLEtBQUE7QUFLQSxrQkFBQSxVQUFBLFNBQUEsUUFBQSxRQUFBO0FBQ0EsZ0JBQUEsVUFBQSxVQUFBLE1BQUE7QUFDQSxtQkFBQSxVQUFBLElBQUEsS0FBQSxVQUFBLFFBQUEsQ0FBQSxJQUFBLEtBQUEsU0FBQSxNQUFBO1VBQ0E7OztBQ1ZBLGNBQUEsZ0JBQUEsb0JBQUEsb0RBQUE7QUFDQSxjQUFBLHlCQUFBLG9CQUFBLDhEQUFBO0FBRUEsa0JBQUEsVUFBQSxTQUFBLElBQUE7QUFDQSxtQkFBQSxjQUFBLHVCQUFBLEVBQUEsQ0FBQTtVQUNBOzs7QUNOQSxjQUFBLE9BQUEsS0FBQTtBQUNBLGNBQUEsUUFBQSxLQUFBO0FBSUEsa0JBQUEsVUFBQSxTQUFBLFVBQUE7QUFDQSxtQkFBQSxNQUFBLFdBQUEsQ0FBQSxRQUFBLElBQUEsSUFBQSxZQUFBLElBQUEsUUFBQSxNQUFBLFFBQUE7VUFDQTs7O0FDUEEsY0FBQSxZQUFBLG9CQUFBLGdEQUFBO0FBRUEsY0FBQSxPQUFBLEtBQUE7QUFJQSxrQkFBQSxVQUFBLFNBQUEsVUFBQTtBQUNBLG1CQUFBLFdBQUEsSUFBQSxLQUFBLFVBQUEsUUFBQSxHQUFBLGdCQUFBLElBQUE7VUFDQTs7O0FDUkEsY0FBQSx5QkFBQSxvQkFBQSw4REFBQTtBQUlBLGtCQUFBLFVBQUEsU0FBQSxVQUFBO0FBQ0EsbUJBQUEsT0FBQSx1QkFBQSxRQUFBLENBQUE7VUFDQTs7O0FDTkEsY0FBQSxXQUFBLG9CQUFBLCtDQUFBO0FBS0Esa0JBQUEsVUFBQSxTQUFBLElBQUEsR0FBQTtBQUNBLGdCQUFBLENBQUEsU0FBQSxFQUFBO0FBQUEscUJBQUE7QUFDQSxnQkFBQSxJQUFBO0FBQ0EsZ0JBQUEsS0FBQSxPQUFBLE1BQUEsR0FBQSxhQUFBLGNBQUEsQ0FBQSxTQUFBLE1BQUEsR0FBQSxLQUFBLEVBQUEsQ0FBQTtBQUFBLHFCQUFBO0FBQ0EsZ0JBQUEsT0FBQSxNQUFBLEdBQUEsWUFBQSxjQUFBLENBQUEsU0FBQSxNQUFBLEdBQUEsS0FBQSxFQUFBLENBQUE7QUFBQSxxQkFBQTtBQUNBLGdCQUFBLENBQUEsS0FBQSxPQUFBLE1BQUEsR0FBQSxhQUFBLGNBQUEsQ0FBQSxTQUFBLE1BQUEsR0FBQSxLQUFBLEVBQUEsQ0FBQTtBQUFBLHFCQUFBO0FBQ0Esa0JBQUEsVUFBQSx5Q0FBQTtVQUNBOzs7QUNaQSxjQUFBLE1BQUE7QUFDQSxjQUFBLFVBQUEsS0FBQSxPQUFBO0FBRUEsa0JBQUEsVUFBQSxTQUFBLEtBQUE7QUFDQSxtQkFBQSxVQUFBLE9BQUEsUUFBQSxTQUFBLEtBQUEsS0FBQSxNQUFBLEdBQUEsTUFBQSxTQUFBLFNBQUEsRUFBQSxDQUFBO1VBQ0E7OztBQ0xBLGNBQUEsV0FBQSxvQkFBQSwrQ0FBQTtBQUNBLGNBQUEsV0FBQSxvQkFBQSwrQ0FBQTtBQUVBLGtCQUFBLFVBQUEsU0FBQSxHQUFBLE9BQUE7QUFDQSxxQkFBQSxDQUFBO0FBQ0EsZ0JBQUEsQ0FBQSxTQUFBLEtBQUEsS0FBQSxVQUFBLE1BQUE7QUFDQSxvQkFBQSxVQUFBLGVBQUEsT0FBQSxLQUFBLElBQUEsaUJBQUE7WUFDQTtVQUNBOzs7QUNSQSxjQUFBLFVBQUEsb0JBQUEsNENBQUE7QUFDQSxjQUFBLFNBQUEsb0JBQUEsNENBQUE7QUFDQSxjQUFBLE1BQUEsb0JBQUEseUNBQUE7QUFDQSxjQUFBLGdCQUFBLG9CQUFBLG1EQUFBO0FBRUEsY0FBQSxVQUFBLFFBQUE7QUFDQSxjQUFBLFFBQUEsT0FBQSxLQUFBO0FBRUEsa0JBQUEsVUFBQSxTQUFBLE1BQUE7QUFDQSxtQkFBQSxNQUFBLFNBQUEsT0FBQSxRQUFBLGlCQUFBLFFBQUEsU0FDQSxpQkFBQSxVQUFBLEtBQUEsWUFBQSxJQUFBO1VBQ0E7OztBQ1hBLGNBQUEsSUFBQSxvQkFBQSw0Q0FBQTtBQUNBLGNBQUEsT0FBQSxvQkFBQSxnREFBQTtBQUNBLGNBQUEsOEJBQUEsb0JBQUEsb0VBQUE7QUFFQSxjQUFBLHNCQUFBLENBQUEsNEJBQUEsU0FBQSxVQUFBO0FBQ0Esa0JBQUEsS0FBQSxRQUFBO1VBQ0EsQ0FBQztBQUlELFlBQUEsRUFBRyxRQUFBLFNBQUEsTUFBQSxNQUFBLFFBQUEsb0JBQUEsR0FBMkQ7WUFDOUQ7VUFDQSxDQUFDOzs7O0FDWEQsY0FBQSxjQUFBLG9CQUFBLCtDQUFBO0FBQ0EsY0FBQSxzQkFBQSxvQkFBQSxvREFBQTtBQUNBLGNBQUEsaUJBQUEsb0JBQUEscURBQUE7QUFFQSxjQUFBLGtCQUFBO0FBQ0EsY0FBQSxtQkFBQSxvQkFBQTtBQUNBLGNBQUEsbUJBQUEsb0JBQUEsVUFBQSxlQUFBO0FBSUEseUJBQUEsUUFBQSxVQUFBLFNBQUEsVUFBQTtBQUNBLDZCQUFBLE1BQUE7Y0FDQSxNQUFBO2NBQ0EsUUFBQSxPQUFBLFFBQUE7Y0FDQSxPQUFBO1lBQ0EsQ0FBRztVQUdILEdBQUMsZ0JBQUE7QUFDRCxnQkFBQSxRQUFBLGlCQUFBLElBQUE7QUFDQSxnQkFBQSxTQUFBLE1BQUE7QUFDQSxnQkFBQSxTQUFBLE1BQUE7QUFDQSxnQkFBQTtBQUNBLGdCQUFBLFVBQUEsT0FBQTtBQUFBLHFCQUFBLEVBQXNDLE9BQUEsUUFBQSxNQUFBLEtBQUE7QUFDdEMscUJBQUEsWUFBQSxRQUFBLFFBQUEsSUFBQTtBQUNBLGtCQUFBLFNBQUEsT0FBQTtBQUNBLG1CQUFBLEVBQVUsT0FBQSxRQUFBLE1BQUEsTUFBQTtVQUNWLENBQUM7OztBQzVCRCxjQUFBO0FBR0EsY0FBQSxXQUFBO0FBQ0EsbUJBQUE7VUFDQSxFQUFDO0FBRUQsY0FBQTtBQUVBLGdCQUFBLEtBQUEsU0FBQSxhQUFBLEVBQUEsS0FBQSxJQUFBLE1BQUEsTUFBQTtVQUNBLFNBQUMsR0FBQTtBQUVELGdCQUFBLE9BQUEsV0FBQTtBQUFBLGtCQUFBO1VBQ0E7QUFNQSxrQkFBQSxVQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDbkJBLGNBQUEsVUFBQSxvQkFBQSxxQ0FBQTs7QUFFQSxjQUFBLGdCQUFBLG9CQUFBLDBCQUFBOzs7Ozs7Ozs7O2NBRU0sT0FBQSxXQUFBO0FBQ0osMkJBQVksTUFBTSxVQUFxQjtBQUFBLGtCQUFYLE9BQVcsVUFBQSxTQUFBLEtBQUEsVUFBQSxPQUFBLFNBQUEsVUFBQSxLQUFKLENBQUE7QUFBSSw4QkFBQSxNQUFBLEtBQUE7QUFDckMsbUJBQUssT0FBTztBQUNaLG1CQUFLLFdBQVc7QUFDaEIsbUJBQUssT0FBTztBQUNaLG1CQUFLLFFBQUwsU0FBQSxDQUFBLEdBQ0ssZUFBQSxTQUNBLEVBQUUsT0FBQSxxQkFBMEIsS0FBNUIsQ0FGTDtZQUlEOzs7c0NBT2lCO0FBQUEsb0JBQVosUUFBWSxVQUFBLFNBQUEsS0FBQSxVQUFBLE9BQUEsU0FBQSxVQUFBLEtBQUosQ0FBQTtBQUNaLG9CQUFNLGdCQUFBLFNBQUEsQ0FBQSxHQUNELEtBQUssT0FDTCxPQUNBLEVBQUUsT0FBTyxJQUFBLFNBQUEsU0FBVyxLQUFLLE1BQU0sT0FBTyxNQUFNLEtBQW5DLEVBQVQsQ0FIQztBQU1OLHVCQUFBLFVBQWUsY0FBYyxhQUFkLElBQWYsTUFBK0MsS0FBSyxXQUFwRDtjQUNEOzs7eUNBVVU7QUFDVCx1QkFBTyxLQUFLO2NBQ2I7Ozs7QUFRSCxpQ0FBdUIsT0FBTztBQUM1QixtQkFBTyxPQUFPLEtBQUssS0FBWixFQUNKLElBQUksU0FBQSxLQUFBO0FBQUEscUJBQVUsTUFBVixPQUFrQixNQUFNLE9BQXhCO1lBQUEsQ0FEQSxFQUVKLEtBQUssR0FGRDtVQUdSOzZCQUVjOzs7Ozs7O0FDdERmLGNBQUEsUUFBQSxvQkFBQSxlQUFBOztBQUNBLGNBQUEsU0FBQSxvQkFBQSxtQkFBQTs7QUFDQSxjQUFBLFFBQUEsb0JBQUEsaUJBQUE7Ozs7OzZCQUVlLE9BQU8sS0FBSyxRQUFBLE9BQVosRUFDWixJQUFJLFNBQUEsS0FBQTtBQUFBLG1CQUFPLElBQUksT0FBQSxRQUFLLEtBQUssUUFBQSxRQUFNLE1BQU0sT0FBQSxRQUFLLElBQS9CO1VBQVAsQ0FEUSxFQUVaLE9BQU8sU0FBQyxRQUFRLE1BQVM7QUFDeEIsbUJBQU8sS0FBSyxRQUFRO0FBQ3BCLG1CQUFPO1VBQ1IsR0FBRSxDQUFBLENBTFU7Ozs7QUNKZixjQUFBLFNBQUEsb0JBQUEsZ0JBQUE7O0FBQ0EsY0FBQSxTQUFBLG9CQUFBLGlCQUFBOztBQUNBLGNBQUEsV0FBQSxvQkFBQSxrQkFBQTs7Ozs7QUFFQSxrQkFBTyxVQUFVLEVBQUUsT0FBQSxRQUFBLFNBQU8sT0FBQSxRQUFBLFNBQU8sU0FBQSxVQUFBLFFBQWhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNIakIsY0FBQSxVQUFBLG9CQUFBLHFDQUFBOztBQUVBLGNBQUEsU0FBQSxvQkFBQSxnQkFBQTs7Ozs7QUFPQSw2QkFBNkI7QUFBQSxnQkFBWixRQUFZLFVBQUEsU0FBQSxLQUFBLFVBQUEsT0FBQSxTQUFBLFVBQUEsS0FBSixDQUFBO0FBQ3ZCLGdCQUFJLE9BQU8sYUFBYSxhQUFhO0FBQ25DLG9CQUFNLElBQUksTUFBTSwwREFBVjtZQUNQO0FBRUQsZ0JBQU0sb0JBQW9CLFNBQVMsaUJBQWlCLGdCQUExQjtBQUUxQixrQkFBTSxLQUFLLGlCQUFYLEVBQThCLFFBQVEsU0FBQSxVQUFBO0FBQUEscUJBQ3BDLGVBQWUsVUFBUyxLQUF4QjtZQURvQyxDQUF0QztVQUdEO0FBUUQsa0NBQXdCLFVBQXFCO0FBQUEsZ0JBQVosUUFBWSxVQUFBLFNBQUEsS0FBQSxVQUFBLE9BQUEsU0FBQSxVQUFBLEtBQUosQ0FBQTtBQUN2QyxnQkFBTSxlQUFlLFNBQVMsUUFBVDtBQUNyQixnQkFBTSxPQUFPLGFBQWE7QUFDMUIsbUJBQU8sYUFBYTtBQUVwQixnQkFBTSxZQUFZLFFBQUEsUUFBTSxNQUFNLE1BQVosU0FBQSxDQUFBLEdBQ2IsT0FDQSxjQUNBLEVBQUUsT0FBTyxJQUFBLFNBQUEsU0FBVyxNQUFNLE9BQU8sYUFBYSxLQUFyQyxFQUFULENBSGEsQ0FBQTtBQUtsQixnQkFBTSxjQUFjLElBQUksVUFBSixFQUFnQixnQkFDbEMsV0FDQSxlQUZrQjtBQUlwQixnQkFBTSxhQUFhLFlBQVksY0FBYyxLQUExQjtBQUVuQixxQkFBUSxXQUFXLGFBQWEsWUFBWSxRQUE1QztVQUNEO0FBT0QsNEJBQWtCLFVBQVM7QUFDekIsbUJBQU8sTUFBTSxLQUFLLFNBQVEsVUFBbkIsRUFBK0IsT0FBTyxTQUFDLE9BQU8sT0FBUztBQUM1RCxvQkFBTSxNQUFLLFFBQVEsTUFBSztBQUN4QixxQkFBTztZQUNSLEdBQUUsQ0FBQSxDQUhJO1VBSVI7NkJBRWM7Ozs7Ozs7Ozs7QUMzRGYsY0FBQSxTQUFBLG9CQUFBLGdCQUFBOzs7OztBQVNBLHlCQUFlLE1BQWtCO0FBQUEsZ0JBQVosUUFBWSxVQUFBLFNBQUEsS0FBQSxVQUFBLE9BQUEsU0FBQSxVQUFBLEtBQUosQ0FBQTtBQUMzQixvQkFBUSxLQUNOLGdGQURGO0FBSUEsZ0JBQUksQ0FBQyxNQUFNO0FBQ1Qsb0JBQU0sSUFBSSxNQUFNLHNEQUFWO1lBQ1A7QUFFRCxnQkFBSSxDQUFDLFFBQUEsUUFBTSxPQUFPO0FBQ2hCLG9CQUFNLElBQUksTUFBSix1QkFFRixPQUZFLCtEQUFBO1lBS1A7QUFFRCxtQkFBTyxRQUFBLFFBQU0sTUFBTSxNQUFNLEtBQWxCO1VBQ1I7NkJBRWM7Ozs7Ozs7Ozs7OztBQzdCZjtBQUFBO0FBTUEsSUFBQyxVQUFVLE9BQU0sWUFBWTtBQUN6QjtBQUNBLFVBQUksT0FBTyxXQUFXLGNBQWMsT0FBTyxLQUFLO0FBQzVDLGVBQU8sVUFBVTtBQUFBLE1BQ3JCLFdBQVcsT0FBTyxZQUFXLFlBQVksUUFBTyxTQUFTO0FBQ3JELGdCQUFPLFVBQVUsV0FBVztBQUFBLE1BQ2hDLE9BQU87QUFDSCxjQUFLLE1BQU0sV0FBVztBQUFBLE1BQzFCO0FBQUEsSUFDSixHQUFFLFNBQU0sV0FBWTtBQUNoQjtBQUdBLFVBQUksUUFBTyxXQUFXO0FBQUEsTUFBQztBQUN2QixVQUFJLGdCQUFnQjtBQUNwQixVQUFJLE9BQVEsT0FBTyxXQUFXLGlCQUFtQixPQUFPLE9BQU8sY0FBYyxpQkFDekUsa0JBQWtCLEtBQUssT0FBTyxVQUFVLFNBQVM7QUFHckQsVUFBSSxhQUFhO0FBQUEsUUFDYjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNKO0FBR0EsMEJBQW9CLEtBQUssWUFBWTtBQUNqQyxZQUFJLFNBQVMsSUFBSTtBQUNqQixZQUFJLE9BQU8sT0FBTyxTQUFTLFlBQVk7QUFDbkMsaUJBQU8sT0FBTyxLQUFLLEdBQUc7QUFBQSxRQUMxQixPQUFPO0FBQ0gsY0FBSTtBQUNBLG1CQUFPLFNBQVMsVUFBVSxLQUFLLEtBQUssUUFBUSxHQUFHO0FBQUEsVUFDbkQsU0FBUyxHQUFQO0FBRUUsbUJBQU8sV0FBVztBQUNkLHFCQUFPLFNBQVMsVUFBVSxNQUFNLE1BQU0sUUFBUSxDQUFDLEtBQUssU0FBUyxDQUFDO0FBQUEsWUFDbEU7QUFBQSxVQUNKO0FBQUEsUUFDSjtBQUFBLE1BQ0o7QUFHQSw0QkFBc0I7QUFDbEIsWUFBSSxRQUFRLEtBQUs7QUFDYixjQUFJLFFBQVEsSUFBSSxPQUFPO0FBQ25CLG9CQUFRLElBQUksTUFBTSxTQUFTLFNBQVM7QUFBQSxVQUN4QyxPQUFPO0FBRUgscUJBQVMsVUFBVSxNQUFNLE1BQU0sUUFBUSxLQUFLLENBQUMsU0FBUyxTQUFTLENBQUM7QUFBQSxVQUNwRTtBQUFBLFFBQ0o7QUFDQSxZQUFJLFFBQVE7QUFBTyxrQkFBUSxNQUFNO0FBQUEsTUFDckM7QUFJQSwwQkFBb0IsWUFBWTtBQUM1QixZQUFJLGVBQWUsU0FBUztBQUN4Qix1QkFBYTtBQUFBLFFBQ2pCO0FBRUEsWUFBSSxPQUFPLFlBQVksZUFBZTtBQUNsQyxpQkFBTztBQUFBLFFBQ1gsV0FBVyxlQUFlLFdBQVcsTUFBTTtBQUN2QyxpQkFBTztBQUFBLFFBQ1gsV0FBVyxRQUFRLGdCQUFnQixRQUFXO0FBQzFDLGlCQUFPLFdBQVcsU0FBUyxVQUFVO0FBQUEsUUFDekMsV0FBVyxRQUFRLFFBQVEsUUFBVztBQUNsQyxpQkFBTyxXQUFXLFNBQVMsS0FBSztBQUFBLFFBQ3BDLE9BQU87QUFDSCxpQkFBTztBQUFBLFFBQ1g7QUFBQSxNQUNKO0FBSUEscUNBQStCLE9BQU8sWUFBWTtBQUU5QyxpQkFBUyxJQUFJLEdBQUcsSUFBSSxXQUFXLFFBQVEsS0FBSztBQUN4QyxjQUFJLGFBQWEsV0FBVztBQUM1QixlQUFLLGNBQWUsSUFBSSxRQUNwQixRQUNBLEtBQUssY0FBYyxZQUFZLE9BQU8sVUFBVTtBQUFBLFFBQ3hEO0FBR0EsYUFBSyxNQUFNLEtBQUs7QUFBQSxNQUNwQjtBQUlBLCtDQUF5QyxZQUFZLE9BQU8sWUFBWTtBQUNwRSxlQUFPLFdBQVk7QUFDZixjQUFJLE9BQU8sWUFBWSxlQUFlO0FBQ2xDLGtDQUFzQixLQUFLLE1BQU0sT0FBTyxVQUFVO0FBQ2xELGlCQUFLLFlBQVksTUFBTSxNQUFNLFNBQVM7QUFBQSxVQUMxQztBQUFBLFFBQ0o7QUFBQSxNQUNKO0FBSUEsb0NBQThCLFlBQVksT0FBTyxZQUFZO0FBRXpELGVBQU8sV0FBVyxVQUFVLEtBQ3JCLGdDQUFnQyxNQUFNLE1BQU0sU0FBUztBQUFBLE1BQ2hFO0FBRUEsc0JBQWdCLE1BQU0sY0FBYyxTQUFTO0FBQzNDLFlBQUksUUFBTztBQUNYLFlBQUk7QUFDSix1QkFBZSxnQkFBZ0IsT0FBTyxTQUFTO0FBRS9DLFlBQUksYUFBYTtBQUNqQixZQUFJLE9BQU8sU0FBUyxVQUFVO0FBQzVCLHdCQUFjLE1BQU07QUFBQSxRQUN0QixXQUFXLE9BQU8sU0FBUyxVQUFVO0FBQ25DLHVCQUFhO0FBQUEsUUFDZjtBQUVBLHdDQUFnQyxVQUFVO0FBQ3RDLGNBQUksWUFBYSxZQUFXLGFBQWEsVUFBVSxZQUFZO0FBRS9ELGNBQUksT0FBTyxXQUFXLGlCQUFpQixDQUFDO0FBQVk7QUFHcEQsY0FBSTtBQUNBLG1CQUFPLGFBQWEsY0FBYztBQUNsQztBQUFBLFVBQ0osU0FBUyxRQUFQO0FBQUEsVUFBZ0I7QUFHbEIsY0FBSTtBQUNBLG1CQUFPLFNBQVMsU0FDZCxtQkFBbUIsVUFBVSxJQUFJLE1BQU0sWUFBWTtBQUFBLFVBQ3pELFNBQVMsUUFBUDtBQUFBLFVBQWdCO0FBQUEsUUFDdEI7QUFFQSxxQ0FBNkI7QUFDekIsY0FBSTtBQUVKLGNBQUksT0FBTyxXQUFXLGlCQUFpQixDQUFDO0FBQVk7QUFFcEQsY0FBSTtBQUNBLDBCQUFjLE9BQU8sYUFBYTtBQUFBLFVBQ3RDLFNBQVMsUUFBUDtBQUFBLFVBQWdCO0FBR2xCLGNBQUksT0FBTyxnQkFBZ0IsZUFBZTtBQUN0QyxnQkFBSTtBQUNBLGtCQUFJLFNBQVMsT0FBTyxTQUFTO0FBQzdCLGtCQUFJLFdBQVcsT0FBTyxRQUNsQixtQkFBbUIsVUFBVSxJQUFJLEdBQUc7QUFDeEMsa0JBQUksYUFBYSxJQUFJO0FBQ2pCLDhCQUFjLFdBQVcsS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDLEVBQUU7QUFBQSxjQUMxRDtBQUFBLFlBQ0osU0FBUyxRQUFQO0FBQUEsWUFBZ0I7QUFBQSxVQUN0QjtBQUdBLGNBQUksTUFBSyxPQUFPLGlCQUFpQixRQUFXO0FBQ3hDLDBCQUFjO0FBQUEsVUFDbEI7QUFFQSxpQkFBTztBQUFBLFFBQ1g7QUFFQSx1Q0FBK0I7QUFDM0IsY0FBSSxPQUFPLFdBQVcsaUJBQWlCLENBQUM7QUFBWTtBQUdwRCxjQUFJO0FBQ0EsbUJBQU8sYUFBYSxXQUFXLFVBQVU7QUFDekM7QUFBQSxVQUNKLFNBQVMsUUFBUDtBQUFBLFVBQWdCO0FBR2xCLGNBQUk7QUFDQSxtQkFBTyxTQUFTLFNBQ2QsbUJBQW1CLFVBQVUsSUFBSTtBQUFBLFVBQ3ZDLFNBQVMsUUFBUDtBQUFBLFVBQWdCO0FBQUEsUUFDdEI7QUFRQSxjQUFLLE9BQU87QUFFWixjQUFLLFNBQVM7QUFBQSxVQUFFLFNBQVM7QUFBQSxVQUFHLFNBQVM7QUFBQSxVQUFHLFFBQVE7QUFBQSxVQUFHLFFBQVE7QUFBQSxVQUN2RCxTQUFTO0FBQUEsVUFBRyxVQUFVO0FBQUEsUUFBQztBQUUzQixjQUFLLGdCQUFnQixXQUFXO0FBRWhDLGNBQUssV0FBVyxXQUFZO0FBQ3hCLGlCQUFPO0FBQUEsUUFDWDtBQUVBLGNBQUssV0FBVyxTQUFVLE9BQU8sU0FBUztBQUN0QyxjQUFJLE9BQU8sVUFBVSxZQUFZLE1BQUssT0FBTyxNQUFNLFlBQVksT0FBTyxRQUFXO0FBQzdFLG9CQUFRLE1BQUssT0FBTyxNQUFNLFlBQVk7QUFBQSxVQUMxQztBQUNBLGNBQUksT0FBTyxVQUFVLFlBQVksU0FBUyxLQUFLLFNBQVMsTUFBSyxPQUFPLFFBQVE7QUFDeEUsMkJBQWU7QUFDZixnQkFBSSxZQUFZLE9BQU87QUFDbkIscUNBQXVCLEtBQUs7QUFBQSxZQUNoQztBQUNBLGtDQUFzQixLQUFLLE9BQU0sT0FBTyxJQUFJO0FBQzVDLGdCQUFJLE9BQU8sWUFBWSxpQkFBaUIsUUFBUSxNQUFLLE9BQU8sUUFBUTtBQUNoRSxxQkFBTztBQUFBLFlBQ1g7QUFBQSxVQUNKLE9BQU87QUFDSCxrQkFBTSwrQ0FBK0M7QUFBQSxVQUN6RDtBQUFBLFFBQ0o7QUFFQSxjQUFLLGtCQUFrQixTQUFVLE9BQU87QUFDcEMseUJBQWU7QUFDZixjQUFJLENBQUMsa0JBQWtCLEdBQUc7QUFDdEIsa0JBQUssU0FBUyxPQUFPLEtBQUs7QUFBQSxVQUM5QjtBQUFBLFFBQ0o7QUFFQSxjQUFLLGFBQWEsV0FBWTtBQUMxQixnQkFBSyxTQUFTLGNBQWMsS0FBSztBQUNqQyw4QkFBb0I7QUFBQSxRQUN4QjtBQUVBLGNBQUssWUFBWSxTQUFTLFNBQVM7QUFDL0IsZ0JBQUssU0FBUyxNQUFLLE9BQU8sT0FBTyxPQUFPO0FBQUEsUUFDNUM7QUFFQSxjQUFLLGFBQWEsU0FBUyxTQUFTO0FBQ2hDLGdCQUFLLFNBQVMsTUFBSyxPQUFPLFFBQVEsT0FBTztBQUFBLFFBQzdDO0FBR0EsWUFBSSxlQUFlLGtCQUFrQjtBQUNyQyxZQUFJLGdCQUFnQixNQUFNO0FBQ3RCLHlCQUFlO0FBQUEsUUFDbkI7QUFDQSxjQUFLLFNBQVMsY0FBYyxLQUFLO0FBQUEsTUFDbkM7QUFRQSxVQUFJLGdCQUFnQixJQUFJLE9BQU87QUFFL0IsVUFBSSxpQkFBaUIsQ0FBQztBQUN0QixvQkFBYyxZQUFZLG1CQUFtQixNQUFNO0FBQy9DLFlBQUssT0FBTyxTQUFTLFlBQVksT0FBTyxTQUFTLFlBQWEsU0FBUyxJQUFJO0FBQ3pFLGdCQUFNLElBQUksVUFBVSxnREFBZ0Q7QUFBQSxRQUN0RTtBQUVBLFlBQUksU0FBUyxlQUFlO0FBQzVCLFlBQUksQ0FBQyxRQUFRO0FBQ1gsbUJBQVMsZUFBZSxRQUFRLElBQUksT0FDbEMsTUFBTSxjQUFjLFNBQVMsR0FBRyxjQUFjLGFBQWE7QUFBQSxRQUMvRDtBQUNBLGVBQU87QUFBQSxNQUNYO0FBR0EsVUFBSSxPQUFRLE9BQU8sV0FBVyxnQkFBaUIsT0FBTyxNQUFNO0FBQzVELG9CQUFjLGFBQWEsV0FBVztBQUNsQyxZQUFJLE9BQU8sV0FBVyxpQkFDZixPQUFPLFFBQVEsZUFBZTtBQUNqQyxpQkFBTyxNQUFNO0FBQUEsUUFDakI7QUFFQSxlQUFPO0FBQUEsTUFDWDtBQUVBLG9CQUFjLGFBQWEsc0JBQXNCO0FBQzdDLGVBQU87QUFBQSxNQUNYO0FBR0Esb0JBQWMsYUFBYTtBQUUzQixhQUFPO0FBQUEsSUFDWCxDQUFDO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDOVFELFVBQUksS0FaSixXQUFBO0FBQUEsaUJBQ1EsS0FBUyxVQUFVLElBRWhCLEtBQUksR0FBRyxLQUFJLFVBQVUsUUFBUSxLQUFJLElBQUc7QUFBQSxjQUN0QyxVQUFVO0FBQUEscUJBRUosTUFBSyxVQUFVO0FBQUksaUJBQU8sTUFBSyxVQUFVLElBQUc7QUFBQSxlQUdsRDtNQUFBO0FBb0JGLGlCQUF5QixJQUFPLElBQVEsSUFBUSxJQUFBO0FBQUEsWUFDL0MsS0FBYSxHQUFNLE9BQU8sSUFBSSxFQUFBLEdBRWhDLEtBQU87QUFBQSxlQUVOLEtBR0gsS0FEVyxBQUFULE9BQVMsVUFFUixHQUFXLE9BQU8sR0FBVyxJQUFJLE9BQ2pDLEdBQVcsY0FBYyxHQUFXLFdBQVcsTUFDaEMsQUFBVCxPQUFTLGFBQ1gsR0FBVyxPQUFPLEdBQVcsSUFBSSxNQUVqQyxHQUFXLGNBQWMsR0FBVyxXQUFXLE1BVGhDO01BQUE7QUFxQm5CLGlCQUFpQixJQUFBO0FBQUEsZUFFVixBQUFWLE9BQVUsUUFDTyxBQUFqQixFQUFPLEVBQUEsTUFBVSxZQUN5QixBQUFBLE9BQW5DLEdBQU0sNEJBQTZCLGNBQ2hCLEFBQUEsT0FBbkIsR0FBTSxZQUFhO01BQWI7QUFVVixpQkFBdUIsSUFBQTtBQUFBLGVBRVQsQUFBakIsRUFBTyxFQUFBLE1BQVUsWUFBc0IsQUFBVixPQUFVLFFBQVEsR0FBTSxnQkFBZ0I7TUFBQTtBQVVsRSxpQkFBaUIsSUFBQTtBQUFBLFlBQ2xCO0FBQUEsYUFFQyxNQUFLO0FBQUEsaUJBQUE7QUFBVSxlQUFBO01BRWI7QUFVRixpQkFBeUIsSUFBUSxJQUFNLElBQUE7QUFDNUMsZUFBTyxlQUFlLElBQVEsSUFBTSxFQUNsQyxZQUFBLE9BQ0EsY0FBQSxPQUNBLFVBQUEsTUFDQSxPQUFBLEdBQUEsQ0FBQTtNQUFBO0FBV0csaUJBQTBCLElBQVEsSUFBTSxJQUFBO0FBQUEsWUFDdkMsS0FBYSxFQUNqQixZQUFBLE1BQ0EsY0FBQSxLQUFjO0FBR0ssUUFBQSxPQUFWLE1BQVUsYUFDbkIsR0FBVyxNQUFNLEtBRWpCLElBQVcsUUFBUSxJQUNuQixHQUFXLFdBQUEsUUFHYixPQUFPLGVBQWUsSUFBUSxJQUFNLEVBQUE7TUFBQTtBQVEvQixpQkFBdUIsSUFBQTtBQUFBLGVBQUEsQ0FBQSxDQUN2QixFQUFjLEVBQUEsS0FBQSxDQUVmLElBQU0sY0FBQSxDQUFlLE1BQU0sUUFBUSxHQUFNLFVBQUE7TUFBQTtBQTNIbEIsTUFBQSxPQUFsQixPQUFPLFVBQVcsY0FBWSxNQUFTLE9BQU87QUFBQSxVQ0VyRCxJQUFBLElBQUEsRUFBQSxTQUFBLENBQUEsRUFBQSxHQVBBLElBQXVCLEFBQUEsT0FBWixXQUFZLFdBQVcsVUFBVSxNQUM1QyxJQUFlLEtBQXdCLEFBQUEsT0FBWixFQUFFLFNBQVUsYUFDdkMsRUFBRSxRQUNGLFNBQXNCLElBQVEsSUFBVSxJQUFBO0FBQUEsZUFDakMsU0FBUyxVQUFVLE1BQU0sS0FBSyxJQUFRLElBQVUsRUFBQTtNQUFBO0FBS3pELFdBREUsS0FBMEIsQUFBQSxPQUFkLEVBQUUsV0FBWSxhQUNYLEVBQUUsVUFDVixPQUFPLHdCQUNDLFNBQXdCLElBQUE7QUFBQSxlQUNoQyxPQUFPLG9CQUFvQixFQUFBLEVBQy9CLE9BQU8sT0FBTyxzQkFBc0IsRUFBQSxDQUFBO01BQUEsSUFHeEIsU0FBd0IsSUFBQTtBQUFBLGVBQ2hDLE9BQU8sb0JBQW9CLEVBQUE7TUFBQTtBQVF0QyxVQUFJLEtBQWMsT0FBTyxTQUFTLFNBQXFCLElBQUE7QUFBQSxlQUM5QyxNQUFVO01BQUE7QUFHbkIsbUJBQVM7QUFDUCxVQUFhLEtBQUssS0FBSyxJQUFBO01BQUE7QUFBQSxRQUFBLFVBRVIsR0FBQSxFQUFBLFFBQUEsT0F5WWpCLFNBQWMsSUFBUyxJQUFBO0FBQUEsZUFDZCxJQUFJLFFBQVEsU0FBVSxJQUFTLElBQUE7QUFBQSxzQkFDYixJQUFBO0FBQ3JCLGVBQVEsZUFBZSxJQUFNLEVBQUEsR0FDN0IsR0FBTyxFQUFBO1VBQUE7QUFBQSx3QkFHQTtBQUMrQixZQUFBLE9BQTNCLEdBQVEsa0JBQW1CLGNBQ3BDLEdBQVEsZUFBZSxTQUFTLEVBQUEsR0FFbEMsR0FBUSxDQUFBLEVBQUcsTUFBTSxLQUFLLFNBQUEsQ0FBQTtVQUFBO0FBR3hCLFlBQStCLElBQVMsSUFBTSxJQUFVLEVBQUUsTUFBQSxLQUFNLENBQUEsR0FDbkQsQUFBVCxPQUFTLFdBTWpCLFNBQXVDLElBQVMsSUFBUyxJQUFBO0FBQzdCLFlBQUEsT0FBZixHQUFRLE1BQU8sY0FDeEIsRUFBK0IsSUFBUyxTQUFTLElBQVMsRUFBQTtVQUFBLEVBUDFCLElBQVMsSUFBZSxFQUFFLE1BQUEsS0FBTSxDQUFBO1FBQUEsQ0FBQTtNQUFBLEdBclpwRSxFQUFhLGVBQWUsR0FFNUIsRUFBYSxVQUFVLFVBQUEsUUFDdkIsRUFBYSxVQUFVLGVBQWUsR0FDdEMsRUFBYSxVQUFVLGdCQUFBO0FBSXZCLFVBQUksSUFBc0I7QUFFMUIsaUJBQXVCLElBQUE7QUFBQSxZQUNHLEFBQUEsT0FBYixNQUFhO0FBQWIsZ0JBQ0gsSUFBSSxVQUFVLHFFQUFBLE9BQTRFLEVBQUE7TUFBQTtBQXNDcEcsa0JBQTBCLElBQUE7QUFBQSxlQUFBLEFBQ3BCLEdBQUssa0JBRGUsU0FFZixFQUFhLHNCQUNmLEdBQUs7TUFBQTtBQW1EZCxrQkFBc0IsSUFBUSxJQUFNLElBQVUsSUFBQTtBQUFBLFlBQ3hDLElBQ0EsSUFDQSxJQTFIc0I7QUFBQSxZQTRIMUIsRUFBYyxFQUFBLEdBQUEsQUFFZCxNQUFTLEdBQU8sYUFGRixTQUlaLE1BQVMsR0FBTyxVQUFVLHVCQUFPLE9BQU8sSUFBQSxHQUN4QyxHQUFPLGVBQWUsS0FBQSxDQUlsQixHQUFPLGdCQUpXLFVBS3BCLElBQU8sS0FBSyxlQUFlLElBQ2YsR0FBUyxXQUFXLEdBQVMsV0FBVyxFQUFBLEdBSXBELEtBQVMsR0FBTyxVQUVsQixLQUFXLEdBQU8sTUFBQSxBQUdoQixPQUhnQjtBQUtsQixlQUFXLEdBQU8sTUFBUSxJQUFBLEVBQ3hCLEdBQU87aUJBRWUsQUFBQSxPQUFiLE1BQWEsYUFFdEIsS0FBVyxHQUFPLE1BQ2hCLEtBQVUsQ0FBQyxJQUFVLEVBQUEsSUFBWSxDQUFDLElBQVUsRUFBQSxJQUVyQyxLQUNULEdBQVMsUUFBUSxFQUFBLElBRWpCLEdBQVMsS0FBSyxFQUFBLEdBSWhCLE1BQUksR0FBaUIsRUFBQSxLQUNiLEtBQUssR0FBUyxTQUFTLE1BQUEsQ0FBTSxHQUFTLFFBQVE7QUFDcEQsYUFBUyxTQUFBO0FBQVMsY0FHZCxLQUFJLElBQUksTUFBTSxpREFDRSxHQUFTLFNBQVMsTUFBTSxPQUFPLEVBQUEsSUFEakMsbUVBQUE7QUFJbEIsYUFBRSxPQUFPLCtCQUNULEdBQUUsVUFBVSxJQUNaLEdBQUUsT0FBTyxJQUNULEdBQUUsUUFBUSxHQUFTLFFBN0tHLEtBOEtILElBN0tuQixXQUFXLFFBQVEsUUFBTSxRQUFRLEtBQUssRUFBQTtRQUFBO0FBQUEsZUFpTG5DO01BQUE7QUFjVCxtQkFBUztBQUFBLFlBQUEsQ0FDRixLQUFLO0FBQUEsaUJBQUEsS0FDSCxPQUFPLGVBQWUsS0FBSyxNQUFNLEtBQUssTUFBQSxHQUFBLEtBQ3RDLFFBQUEsTUFDb0IsQUFBckIsVUFBVSxXQUFXLElBQ2hCLEtBQUssU0FBUyxLQUFLLEtBQUssTUFBQSxJQUMxQixLQUFLLFNBQVMsTUFBTSxLQUFLLFFBQVEsU0FBQTtNQUFBO0FBSTVDLGtCQUFtQixJQUFRLElBQU0sSUFBQTtBQUFBLFlBQzNCLEtBQVEsRUFBRSxPQUFBLE9BQWMsUUFBQSxRQUFtQixRQUFRLElBQVEsTUFBTSxJQUFNLFVBQVUsR0FBQSxHQUNqRixLQUFVLEVBQVksS0FBSyxFQUFBO0FBQUEsZUFDL0IsR0FBUSxXQUFXLElBQ25CLEdBQU0sU0FBUyxJQUNSO01BQUE7QUEwSFQsaUJBQW9CLElBQVEsSUFBTSxJQUFBO0FBQUEsWUFDNUIsS0FBUyxHQUFPO0FBQUEsWUFBQSxBQUVoQixPQUZnQjtBQUdsQixpQkFBTyxDQUFBO0FBQUEsWUFFTCxLQUFhLEdBQU87QUFBQSxlQUFBLEFBQ3BCLE9BRG9CLFNBRWYsQ0FBQSxJQUVpQixBQUFBLE9BQWYsTUFBZSxhQUNqQixLQUFTLENBQUMsR0FBVyxZQUFZLEVBQUEsSUFBYyxDQUFDLEVBQUEsSUFFbEQsS0FzRFQsU0FBeUIsSUFBQTtBQUFBLG1CQUNuQixLQUFNLElBQUksTUFBTSxHQUFJLE1BQUEsR0FDZixLQUFJLEdBQUcsS0FBSSxHQUFJLFFBQUEsRUFBVTtBQUNoQyxlQUFJLE1BQUssR0FBSSxJQUFHLFlBQVksR0FBSTtBQUFBLGlCQUUzQjtRQUFBLEVBMURXLEVBQUEsSUFBYyxFQUFXLElBQVksR0FBVyxNQUFBO01BQUE7QUFvQnBFLGtCQUF1QixJQUFBO0FBQUEsWUFDakIsS0FBUyxLQUFLO0FBQUEsWUFBQSxBQUVkLE9BRmMsUUFFUTtBQUFBLGNBQ3BCLEtBQWEsR0FBTztBQUFBLGNBRUUsQUFBQSxPQUFmLE1BQWU7QUFBZixtQkFDRjtBQUNGLGNBQUEsQUFBSSxPQUFKO0FBQUksbUJBQ0YsR0FBVztRQUFBO0FBQUEsZUFJZjtNQUFBO0FBT1QsaUJBQW9CLElBQUssSUFBQTtBQUFBLGlCQUNuQixLQUFPLElBQUksTUFBTSxFQUFBLEdBQ1osS0FBSSxHQUFHLEtBQUksSUFBQSxFQUFLO0FBQ3ZCLGFBQUssTUFBSyxHQUFJO0FBQUEsZUFDVDtNQUFBO0FBNENULGlCQUF3QyxJQUFTLElBQU0sSUFBVSxJQUFBO0FBQUEsWUFDckMsQUFBQSxPQUFmLEdBQVEsTUFBTztBQUNwQixhQUFNLE9BQ1IsR0FBUSxLQUFLLElBQU0sRUFBQSxJQUVuQixHQUFRLEdBQUcsSUFBTSxFQUFBO2FBRWQ7QUFBQSxjQUF3QyxBQUFBLE9BQTdCLEdBQVEsb0JBQXFCO0FBQXJCLGtCQVlsQixJQUFJLFVBQVUsd0VBQUEsT0FBK0UsRUFBQTtBQVRuRyxhQUFRLGlCQUFpQixJQUFNLFlBQXNCLElBQUE7QUFHL0MsZUFBTSxRQUNSLEdBQVEsb0JBQW9CLElBQU0sRUFBQSxHQUVwQyxHQUFTLEVBQUE7VUFBQSxDQUFBO1FBQUE7TUFBQTtBQzlkZixpQkFBa0IsSUFBQTtBQUFBLFlBQ0ksQUFBQSxPQUFULE1BQVM7QUFDbEIsZ0JBQU0sSUFBSSxNQUFNLDZDQUFBO0FBQUEsYUFFYixPQUFPO01BQUE7QUQwRGQsYUFBTyxlQUFlLEdBQWMsdUJBQXVCLEVBQ3pELFlBQUEsTUFDQSxLQUFLLFdBQUE7QUFBQSxlQUNJO01BQUEsR0FFVCxLQUFLLFNBQVMsSUFBQTtBQUFBLFlBQ08sQUFBQSxPQUFSLE1BQVEsWUFBWSxLQUFNLEtBQUssR0FBWSxFQUFBO0FBQUEsZ0JBQzlDLElBQUksV0FBVyxvR0FBb0csS0FBTSxHQUFBO0FBRWpJLFlBQXNCO01BQUEsRUFBQSxDQUFBLEdBSTFCLEVBQWEsT0FBTyxXQUFBO0FBQUEsUUFFZCxLQUFLLFlBRlMsVUFHZCxLQUFLLFlBQVksT0FBTyxlQUFlLElBQUEsRUFBTSxXQUFBLE1BQzFDLFVBQVUsdUJBQU8sT0FBTyxJQUFBLEdBQUEsS0FDeEIsZUFBZSxJQUFBLEtBR2pCLGdCQUFnQixLQUFLLGlCQUFBO01BQWlCLEdBSzdDLEVBQWEsVUFBVSxrQkFBa0IsU0FBeUIsSUFBQTtBQUFBLFlBQy9DLEFBQUEsT0FBTixNQUFNLFlBQVksS0FBSSxLQUFLLEdBQVksRUFBQTtBQUFBLGdCQUMxQyxJQUFJLFdBQVcsa0ZBQWtGLEtBQUksR0FBQTtBQUFBLGVBQUEsS0FFeEcsZ0JBQWdCLElBQ2Q7TUFBQSxHQVNULEVBQWEsVUFBVSxrQkFBa0IsV0FBQTtBQUFBLGVBQ2hDLEdBQWlCLElBQUE7TUFBQSxHQUcxQixFQUFhLFVBQVUsT0FBTyxTQUFjLElBQUE7QUFBQSxpQkFDdEMsS0FBTyxDQUFBLEdBQ0YsS0FBSSxHQUFHLEtBQUksVUFBVSxRQUFRO0FBQUssYUFBSyxLQUFLLFVBQVUsR0FBQTtBQUFBLFlBQzNELEtBQW9CLEFBQVQsT0FBUyxTQUVwQixLQUFTLEtBQUs7QUFBQSxZQUFBLEFBQ2QsT0FEYztBQUVoQixlQUFXLE1BQUEsQUFBVyxHQUFPLFVBQWxCO2lCQUNSLENBQUs7QUFDUixpQkFBQTtBQUFPLFlBR0wsSUFBUztBQUFBLGNBQ1A7QUFBQSxjQUNBLEdBQUssU0FBUyxLQUNoQixNQUFLLEdBQUssS0FDUixjQUFjO0FBQUEsa0JBR1Y7QUFBQSxjQUdKLEtBQU0sSUFBSSxNQUFNLHFCQUFzQixNQUFLLE9BQU8sR0FBRyxVQUFVLE1BQU0sR0FBQTtBQUFBLGdCQUN6RSxHQUFJLFVBQVUsSUFDUjtRQUFBO0FBQUEsWUFHSixLQUFVLEdBQU87QUFBQSxZQUFBLEFBRWpCLE9BRmlCO0FBR25CLGlCQUFBO0FBQU8sWUFFYyxBQUFBLE9BQVosTUFBWTtBQUNyQixZQUFhLElBQVMsTUFBTSxFQUFBO2FBQUE7QUFBQSxjQUV4QixLQUFNLEdBQVEsUUFDZCxLQUFZLEVBQVcsSUFBUyxFQUFBO0FBQUEsZUFDM0IsS0FBSSxHQUFHLEtBQUksSUFBQSxFQUFPO0FBQ3pCLGNBQWEsR0FBVSxLQUFJLE1BQU0sRUFBQTtRQUFBO0FBQUEsZUFBQTtNQUc5QixHQWlFVCxFQUFhLFVBQVUsY0FBYyxTQUFxQixJQUFNLElBQUE7QUFBQSxlQUN2RCxHQUFhLE1BQU0sSUFBTSxJQUFBLEtBQVU7TUFBQSxHQUc1QyxFQUFhLFVBQVUsS0FBSyxFQUFhLFVBQVUsYUFFbkQsRUFBYSxVQUFVLGtCQUNuQixTQUF5QixJQUFNLElBQUE7QUFBQSxlQUN0QixHQUFhLE1BQU0sSUFBTSxJQUFBLElBQVU7TUFBQSxHQXFCaEQsRUFBYSxVQUFVLE9BQU8sU0FBYyxJQUFNLElBQUE7QUFBQSxlQUNoRCxFQUFjLEVBQUEsR0FBQSxLQUNULEdBQUcsSUFBTSxHQUFVLE1BQU0sSUFBTSxFQUFBLENBQUEsR0FDN0I7TUFBQSxHQUdULEVBQWEsVUFBVSxzQkFDbkIsU0FBNkIsSUFBTSxJQUFBO0FBQUEsZUFDakMsRUFBYyxFQUFBLEdBQUEsS0FDVCxnQkFBZ0IsSUFBTSxHQUFVLE1BQU0sSUFBTSxFQUFBLENBQUEsR0FDMUM7TUFBQSxHQUliLEVBQWEsVUFBVSxpQkFDbkIsU0FBd0IsSUFBTSxJQUFBO0FBQUEsWUFDeEIsSUFBTSxJQUFRLElBQVUsSUFBRztBQUFBLFlBRS9CLEVBQWMsRUFBQSxHQUFBLEFBRWQsTUFBUyxLQUFLLGFBRkE7QUFJWixpQkFBTztBQUFBLFlBQUEsQUFFVCxNQUFPLEdBQU8sU0FGTDtBQUlQLGlCQUFPO0FBQUEsWUFFTCxPQUFTLE1BQVksR0FBSyxhQUFhO0FBQ2IsVUFBQSxFQUF0QixLQUFLLGdCQUFpQixJQUMxQixLQUFLLFVBQVUsdUJBQU8sT0FBTyxJQUFBLElBQUEsUUFFdEIsR0FBTyxLQUNWLEdBQU8sa0JBQ1QsS0FBSyxLQUFLLGtCQUFrQixJQUFNLEdBQUssWUFBWSxFQUFBO2lCQUU5QixBQUFBLE9BQVQsTUFBUyxZQUFZO0FBQUEsZUFDckMsS0FBQSxJQUVLLEtBQUksR0FBSyxTQUFTLEdBQUcsTUFBSyxHQUFHO0FBQUEsZ0JBQzVCLEdBQUssUUFBTyxNQUFZLEdBQUssSUFBRyxhQUFhLElBQVU7QUFDekQsbUJBQW1CLEdBQUssSUFBRyxVQUMzQixLQUFXO0FBQUE7WUFBQTtBQUFBLGNBS1gsS0FBVztBQUNiLG1CQUFPO0FBRVEsVUFBYixPQUFhLElBQ2YsR0FBSyxNQUFBLElBaUlmLFNBQW1CLElBQU0sSUFBQTtBQUFBLG1CQUNoQixLQUFRLElBQUksR0FBSyxRQUFRO0FBQzlCLGlCQUFLLE1BQVMsR0FBSyxLQUFRO0FBQzdCLGVBQUssSUFBQTtVQUFBLEVBbElhLElBQU0sRUFBQSxHQUdFLEFBQWhCLEdBQUssV0FBVyxLQUNsQixJQUFPLE1BQVEsR0FBSyxLQUFBLEFBRWxCLEdBQU8sbUJBRlcsVUFHcEIsS0FBSyxLQUFLLGtCQUFrQixJQUFNLE1BQW9CLEVBQUE7UUFBQTtBQUFBLGVBR25EO01BQUEsR0FHYixFQUFhLFVBQVUsTUFBTSxFQUFhLFVBQVUsZ0JBRXBELEVBQWEsVUFBVSxxQkFDbkIsU0FBNEIsSUFBQTtBQUFBLFlBQ3RCLElBQVcsSUFBUTtBQUFBLFlBQUEsQUFFdkIsTUFBUyxLQUFLLGFBRlM7QUFJckIsaUJBQU87QUFBQSxZQUFBLEFBR0wsR0FBTyxtQkFIRjtBQUdFLGlCQUNnQixBQUFyQixVQUFVLFdBQVcsSUFBWCxNQUNQLFVBQVUsdUJBQU8sT0FBTyxJQUFBLEdBQUEsS0FDeEIsZUFBZSxLQUFBLEFBQ1gsR0FBTyxRQURJLFVBRVEsQ0FBQSxFQUF0QixLQUFLLGdCQUFpQixJQUMxQixLQUFLLFVBQVUsdUJBQU8sT0FBTyxJQUFBLElBQUEsT0FFdEIsR0FBTyxNQUVYO0FBQUEsWUFJZ0IsQUFBckIsVUFBVSxXQUFXLEdBQUc7QUFBQSxjQUV0QixJQURBLEtBQU8sT0FBTyxLQUFLLEVBQUE7QUFBQSxlQUVsQixLQUFJLEdBQUcsS0FBSSxHQUFLLFFBQUEsRUFBVTtBQUVqQixZQURaLE1BQU0sR0FBSyxTQUNDLG9CQURELEtBRU4sbUJBQW1CLEVBQUE7QUFBQSxpQkFBQSxLQUVyQixtQkFBbUIsZ0JBQUEsR0FBQSxLQUNuQixVQUFVLHVCQUFPLE9BQU8sSUFBQSxHQUFBLEtBQ3hCLGVBQWUsR0FDYjtRQUFBO0FBQUEsWUFLZ0IsQUFBQSxPQUZ6QixNQUFZLEdBQU8sUUFFTTtBQUZOLGVBR1osZUFBZSxJQUFNLEVBQUE7aUJBQ3JCLEFBQUksT0FBSjtBQUFJLGVBRUosS0FBSSxHQUFVLFNBQVMsR0FBRyxNQUFLLEdBQUc7QUFBQSxpQkFDaEMsZUFBZSxJQUFNLEdBQVUsR0FBQTtBQUFBLGVBSWpDO01BQUEsR0FvQmIsRUFBYSxVQUFVLFlBQVksU0FBbUIsSUFBQTtBQUFBLGVBQzdDLEVBQVcsTUFBTSxJQUFBLElBQU07TUFBQSxHQUdoQyxFQUFhLFVBQVUsZUFBZSxTQUFzQixJQUFBO0FBQUEsZUFDbkQsRUFBVyxNQUFNLElBQUEsS0FBTTtNQUFBLEdBR2hDLEVBQWEsZ0JBQWdCLFNBQVMsSUFBUyxJQUFBO0FBQUEsZUFDUixBQUFBLE9BQTFCLEdBQVEsaUJBQWtCLGFBQzVCLEdBQVEsY0FBYyxFQUFBLElBRXRCLEdBQWMsS0FBSyxJQUFTLEVBQUE7TUFBQSxHQUl2QyxFQUFhLFVBQVUsZ0JBQWdCLElBaUJ2QyxFQUFhLFVBQVUsYUFBYSxXQUFBO0FBQUEsZUFDM0IsS0FBSyxlQUFlLElBQUksR0FBZSxLQUFLLE9BQUEsSUFBVyxDQUFBO01BQUEsR0NqWjFDLEFBQUEsT0FBWCxVQUFXLGVBQ3BCLEdBQVMsVUFBVSxPQUFPLFlBQVksV0FBQTtBQUFBLGVBQzdCO01BQUEsSUFBQSxFQVNGLEtBQUssV0FBQTtBQUFBLFlBQ1IsS0FBTyxXQUNULEtBQUksR0FBSyxRQUNULEtBQUk7QUFBQSxlQUVDLElBQUksRUFBUyxXQUFBO0FBQUEsaUJBQ2QsTUFBSyxLQUFVLEVBQUMsTUFBQSxLQUFNLElBRW5CLEVBQUMsTUFBQSxPQUFhLE9BQU8sR0FBSyxNQUFBO1FBQUEsQ0FBQTtNQUFBLEdBQUEsRUFTNUIsUUFBUSxXQUFBO0FBQUEsZUFDQSxJQUFJLEVBQVMsV0FBQTtBQUFBLGlCQUNuQixFQUFDLE1BQUEsS0FBTTtRQUFBLENBQUE7TUFBQSxHQUFBLEVBWVQsZUFBZSxTQUFVLElBQUE7QUFBQSxZQUM1QixLQUFJLEdBQ04sS0FBSSxHQUFTO0FBQUEsZUFFUixJQUFJLEVBQVMsV0FBQTtBQUFBLGlCQUNkLE1BQUssS0FBVSxFQUFDLE1BQUEsS0FBTSxJQUVuQixFQUFDLE1BQUEsT0FBYSxPQUFPLEdBQVMsTUFBQTtRQUFBLENBQUE7TUFBQSxHQUFBLEVBVWhDLEtBQUssU0FBVSxJQUFBO0FBQUEsZUFDbEIsY0FBaUIsS0FHRixBQUFBLE9BQVYsTUFBVSxZQUNQLEFBQVYsT0FBVSxRQUNZLEFBQUEsT0FBZixHQUFNLFFBQVM7TUFBVDtBQUFBLFVBT2pCLElBQWlCLEdBQUEsS0FBQSxDQUFBO0FBQUEsU0FBQSx1QkMvRnFDLEFBQUEsT0FBaEIsZUFBZ0IsYUFBaEIsR0FBQSxpQkFDSyxBQUFBLE9BQVgsVUFBVztBQ00zQyxVQUFJLElBQVcsR0FDWCxJQUFVLElBRVYsSUFBdUIsRUFBUSxzQkFDL0IsSUFBaUIsRUFBUTtBQUFBLFVBeUI3QixJQUFpQixTQUFjLElBQUE7QUFBQSxZQUN6QixLQXhCTixTQUFvQixJQUFBO0FBQUEsaUJBR0UsQUFBQSxPQUFYLE1BQVcsWUFDbEIsTUFBTSxRQUFRLEVBQUEsS0FDYixLQUF3QixZQUFZLE9BQU8sRUFBQSxJQUVyQyxFQUFTLGFBQWEsRUFBQSxJQUdULEFBQUEsT0FBWCxNQUFXLFlBQXVCLEFBQVgsT0FBVyxPQUFhLE9BR3RELEtBQXFELEFBQUEsT0FBNUIsR0FBTyxPQUFPLGFBQWMsYUFDaEQsR0FBTyxPQUFPLFVBQUEsSUFHSSxBQUFBLE9BQWhCLEdBQU8sUUFBUyxhQUFtQixLQUd2QztRQUFBLEVBSW1CLEVBQUE7QUFBQSxZQUFBLENBRXJCO0FBQ0gsZ0JBQU0sSUFBSSxNQUNSLDJEQUFBO0FBQUEsZUFHRztNQUFBLEdDcENMLElBQU8sR0FTWCxJQUFpQixTQUFjLElBQVUsSUFBQTtBQUFBLGlCQUdyQyxJQUZFLEtBQUksVUFBVSxTQUFTLElBQUksS0FBSSxJQUFBLEdBQ2pDLEtBQVEsT0FBTSxJQUFBLElBQVcsSUFBSSxNQUFNLEVBQUEsSUFBSyxDQUFBLEdBRXhDLEtBQUksR0FFRixLQUFXLEVBQUssRUFBQSxPQUVQO0FBQUEsY0FDUCxPQUFNO0FBQUcsbUJBQU87QUFBQSxjQUVwQixNQUFPLEdBQVMsS0FBQSxHQUVQO0FBQUEsbUJBQ0gsT0FBTSxNQUFHLElBQU0sU0FBUyxLQUVyQjtBQUdULGFBQU0sUUFBTyxHQUFLO1FBQUE7TUFBQSxHQzVCVCxJQUFBLFNBQUEsSUFBQTtBQUFBLG9CQUNDLElBQUE7QUFBQSxjQUFBO0FBQUEsaUJBQUEsTUFBQSxHQUFBLEtBQUEsSUFBQSxLQUFBLE1BRUwsT0FBTyxjQUFBLEdBQ1AsVUFBVSxJQUFBO1FBQUE7QUFBQSxlQUFBLEVBQUEsSUFBQSxFQUFBLEdBQUE7TUFBQSxFQUFBLEdBSmEsS0FBQSxDQUFBLEdBUW5CLElBQUEsU0FBQSxJQUFBO0FBQUEsb0JBQ0MsSUFBQTtBQUFBLGNBQUE7QUFBQSxpQkFBQSxNQUFBLEdBQUEsS0FBQSxNQUNKLEVBQUEsS0FBQSxNQUNELE9BQU8sOEJBRzJCLEFBQUEsT0FBNUIsTUFBTSxxQkFBc0IsY0FDckMsTUFBTSxrQkFBQSxFQUFBLEVBQUEsR0FFSixHQUEyQixVQUFVLFdBQUEsR0FBQTtRQUFBO0FBQUEsZUFBQSxFQUFBLElBQUEsRUFBQSxHQUFBO01BQUEsRUFURyxDQUFBLEdBY25DLEtBQUEsU0FBQSxJQUFBO0FBQUEsb0JBQ0MsSUFBQTtBQUFBLGNBQUE7QUFBQSxpQkFBQSxNQUFBLEdBQUEsS0FBQSxNQUNKLEVBQUEsS0FBQSxNQUNELE9BQU8sc0JBRzJCLEFBQUEsT0FBNUIsTUFBTSxxQkFBc0IsY0FDckMsTUFBTSxrQkFBQSxFQUFBLEVBQUEsR0FBd0IsR0FBbUIsVUFBVSxXQUFBLEdBQUE7UUFBQTtBQUFBLGVBQUEsRUFBQSxJQUFBLEVBQUEsR0FBQTtNQUFBLEVBUHpCLENBQUEsR0FXM0IsS0FBQSxTQUFBLElBQUE7QUFBQSxvQkFDQyxJQUFBO0FBQUEsY0FBQTtBQUFBLGlCQUFBLE1BQUEsR0FBQSxLQUFBLE1BQ0osRUFBQSxLQUFBLE1BQ0QsT0FBTyxtQkFHMkIsQUFBQSxPQUE1QixNQUFNLHFCQUFzQixjQUNyQyxNQUFNLGtCQUFBLEVBQUEsRUFBQSxHQUF3QixHQUFnQixVQUFVLFdBQUEsR0FBQTtRQUFBO0FBQUEsZUFBQSxFQUFBLElBQUEsRUFBQSxHQUFBO01BQUEsRUFQekIsQ0FBQTtBQ3ZCOUIsaUJBQXVCLElBQUssSUFBQTtBQUFBLGFBRTVCLE1BQU0sSUFBQSxLQUNOLGFBQWEsSUFBQSxLQUViLE1BQUE7TUFBQTtBQXdCQSxpQkFBMEIsSUFBSyxJQUFBO0FBQUEsYUFFL0IsTUFBTSxJQUFBLEtBQ04sYUFBYSxJQUFBLEtBRWIsTUFBQTtNQUFBO0FBOEJBLGlCQUE0QixJQUFLLElBQUE7QUFBQSxhQUVqQyxNQUFNLElBQUEsS0FDTixhQUFhLElBQUEsS0FFYixNQUFBO01BQUE7QUFpQ0EsaUJBQWtCLElBQVksSUFBSyxJQUFRLElBQVEsSUFBQTtBQUFBLGFBRW5ELE1BQU0sSUFBQSxLQUNOLGFBQWEsSUFBQSxLQUNiLGFBQWEsSUFBQSxLQUdiLFNBQVMsSUFBQSxLQUNULFNBQVM7TUFBQTtBQy9HVCxpQkFDTCxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUFBO0FBQUEsWUFTSSxJQUFLLElBTEwsS0FBUyxPQUNULEtBQVE7QUFBQSxZQUVSLE1BQVksTUFBUyxLQUFRLGVBTG5CLEdBQU0sT0FTVDtBQUFBLGNBQUEsQUFHVCxNQURBLE1BQU0sR0FBVyxLQUNELFNBSFAsVUFNUCxNQUFZLG9CQUFJLE9BQ2hCLEdBQUksTUFBVSxLQUdoQixHQUFVLElBQUksRUFBQSxHQUdWLE9BQVcsTUFBVTtBQUFZO0FBQUEsVUFJckMsTUFBTSxHQUFXLEtBQ0YsUUFMc0IsVUFLRyxJQUFJLE1BQVU7UUFBQSxPQUNqRDtBQUFBLGNBRUwsR0FBVyxJQUFRLE1BQVUsSUFHekIsT0FBVyxNQUFVO0FBQVk7QUFHckMsYUFBVyxJQUFPLE1BQVU7UUFBQTtNQUFBO0FBVXpCLGtCQUFxQyxJQUFPLElBQVksSUFBQTtBQUFBLFlBQ3ZELEtBQVEsR0FBTSxPQUVMLEtBQWtDLEdBQTFDLFFBQTRCLEtBQWMsR0FBdEIsUUFFckIsS0FBUyxHQUFXLEtBQ3hCLEtBQVMsR0FBVyxLQUtwQixLQUFjLEdBREQsS0FBYSxlQUFlLFFBR3JDLEtBQVEsS0FBYSxlQUFlO0FBQUEsWUFFdEMsTUFBVTtBQUFBLGNBQ1IsSUFBTztBQUFBLGdCQUNILEtBQU0sR0FBWTtBQUVQLFlBQWIsR0FBSSxTQUFTLElBQVQsUUFDQyxHQUFZLEtBQUEsT0FDWixHQUFXLElBQU8sT0FFekIsR0FBQSxPQUFXLEVBQUE7VUFBQTtBQUFBLG1CQUVELEdBQVk7QUFHeEIsY0FBQSxPQUVnQixHQUFXLElBRVo7TUFBQTtBRDlFckIsUUFBYyxVQUFVLFFBQVEsV0FBQTtBQUFBLGFBRXpCLFdBQVcsR0FBQSxLQUNYLFlBQVksR0FBQSxLQUNaLG1CQUFtQixHQUFBLEtBQ25CLG9CQUFvQixHQUFBLEtBQ3BCLHNCQUFzQixHQUFBLEtBQUEsS0FHakIsQ0FBQSxHQUFBLEtBQ0wsTUFBTSxDQUFBLEdBQUEsS0FDTixhQUFhLENBQUE7TUFBQSxHQWtCcEIsRUFBaUIsVUFBVSxRQUFRLFdBQUE7QUFBQSxhQUU1QixXQUFXLEdBQUEsS0FDWCxZQUFZLEdBQUEsS0FDWixvQkFBb0IsR0FBQSxLQUFBLEtBR2YsQ0FBQSxHQUFBLEtBQ0wsTUFBTSxDQUFBO01BQUEsR0FHYixFQUFpQixVQUFVLGlCQUFpQixXQUFBO0FBQUEsYUFFckMsbUJBQW1CLEdBQUEsS0FDbkIsc0JBQXNCLEdBQUEsS0FHdEIsYUFBYSxDQUFBO01BQUEsR0FrQnBCLEVBQW1CLFVBQVUsUUFBUSxXQUFBO0FBQUEsYUFFOUIsbUJBQW1CLEdBQUEsS0FDbkIsc0JBQXNCLEdBQUEsS0FHdEIsYUFBYSxDQUFBO01BQUEsR0FHcEIsRUFBbUIsVUFBVSxpQkFBaUIsV0FBQTtBQUFBLGFBRXZDLFdBQVcsR0FBQSxLQUNYLFlBQVksR0FBQSxLQUNaLG9CQUFvQixHQUFBLEtBQUEsS0FHZixDQUFBLEdBQUEsS0FDTCxNQUFNLENBQUE7TUFBQTtBRTlGYixpQkFDRSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUFBO0FBQUEsWUFFSSxJQUFVLElBQVUsSUFBTTtBQUFBLFlBRTlCLEtBQWEsS0FBSyxJQWhCUCxBQWtCUCxPQWxCTyxHQWtCUTtBQUFBLGNBQUEsQ0FDakIsTUFBVyxHQUFNLE9BQU8sSUFBSSxFQUFBO0FBRzFCLGtCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSx3QkFBQSxFQUFBLE9BQStCLElBQUEsc0JBQUEsQ0FBQTtBQUc1QyxlQUFPLElBQ1AsS0FBTztRQUFBLFdBeEJNLEFBeUJKLE9BekJJLEdBeUJlO0FBQUEsY0FDNUIsS0FBYSxLQUFLLElBQUEsQ0FFbEIsTUFBVyxHQUFNLE9BQU8sSUFBSSxFQUFBO0FBRzFCLGtCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSx3QkFBQSxFQUFBLE9BQStCLElBQUEsc0JBQUEsQ0FBQTtBQUFBLGNBR3RDLEtBQVMsR0FBUyxPQUFPLEtBQ3pCLEtBQVMsR0FBUyxPQUFPO0FBQUEsY0FFM0IsT0FBZTtBQUNqQixpQkFBVyxHQUFTO2VBQ2Y7QUFBQSxnQkFBSSxPQUFlO0FBQUEsb0JBR2xCLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSxTQUFBLEVBQUEsT0FBZ0IsSUFBQSxpQ0FBQSxFQUFBLE9BQTRDLElBQUEsVUFBQSxFQUFBLE9BQXFCLElBQUEsSUFBQSxFQUFBLE9BQVcsSUFBQSxJQUFBLENBQUE7QUFIdkcsaUJBQVcsR0FBUztVQUFBO0FBT3RCLGVBQU8sSUFDUCxLQUFPO1FBQUEsT0FDRjtBQUFBLGNBQUEsQ0FDTCxNQUFXLEdBQU0sT0FBTyxJQUFJLEVBQUE7QUFHMUIsa0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHdCQUFBLEVBQUEsT0FBK0IsSUFBQSxzQkFBQSxDQUFBO0FBSTFDLGVBN0RTLEFBNERQLE9BNURPLElBNkRFLEdBQVMsU0FFVCxHQUFTLFFBR3RCLEtBQU8sSUFDUCxLQUFPO1FBQUE7QUFBQSxlQUdGLENBQUMsSUFBVSxJQUFNLEVBQUE7TUFBQTtBQStOMUIsVUFBTSxJQUEwQixDQUM5QixFQUNFLE1BQU0sU0FBQSxJQUFBO0FBQUEsZUFBQSxNQUFBLE9BQWlCLElBQUEsV0FBQTtNQUFBLEdBQ3ZCLFVBL05KLFNBQW1DLElBQU8sSUFBUSxJQUFBO0FBQ2hELFdBQU0sVUFBVSxNQUFVLFNBQVUsSUFBWSxJQUFZLElBQUE7QUFBQSxjQUFBLEtBQ3JDLEVBQ25CLE1BQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxFQUFBLEdBTkssS0FBQSxHQUFBLElBQU0sS0FBQSxHQUFBO0FBQUEsaUJBU04sR0FBSyxXQUFXO1FBQUE7TUFBQSxFQUFBLEdBc056QixFQUNFLE1BQU0sU0FBQSxJQUFBO0FBQUEsZUFBQSxNQUFBLE9BQWlCLElBQUEsWUFBQTtNQUFBLEdBQ3ZCLFVBcE5KLFNBQW9DLElBQU8sSUFBUSxJQUFBO0FBQ2pELFdBQU0sVUFBVSxNQUFVLFNBQVUsSUFBWSxJQUFBO0FBQUEsaUJBQy9CLEVBQ2IsTUFDQSxJQUNBLElBQ0EsSUFDQSxFQUFBLEVBQUEsR0FHVTtRQUFBO01BQUEsRUFBQSxHQTRNZCxFQUNFLE1BQU0sU0FBQSxJQUFBO0FBQUEsZUFBQSxNQUFBLE9BQWlCLElBQUEsV0FBQTtNQUFBLEdBQ3ZCLFVBMU1KLFNBQW9DLElBQU8sSUFBUSxJQUFBO0FBQ2pELFdBQU0sVUFBVSxNQUFVLFNBQVUsSUFBWSxJQUFZLElBQUE7QUFBQSxjQUFBLEtBQ3JDLEVBQ25CLE1BQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxFQUFBLEdBTkssS0FBQSxHQUFBLElBQU0sS0FBQSxHQUFBO0FBQUEsaUJBU04sR0FBSyxXQUFXLGVBQWUsRUFBQTtRQUFBO01BQUEsRUFBQSxHQWlNeEMsRUFDRSxNQUFNLFNBQUEsSUFBQTtBQUFBLGVBQUEsTUFBQSxPQUFpQixJQUFBLFdBQUE7TUFBQSxHQUN2QixVQS9MSixTQUFtQyxJQUFPLElBQVEsSUFBQTtBQUNoRCxXQUFNLFVBQVUsTUFBVSxTQUFVLElBQVksSUFBWSxJQUFNLElBQUE7QUFBQSxjQUFBLEtBQ3BDLEVBQzFCLE1BQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLEVBQUEsR0FQSyxLQUFBLEdBQUEsSUFBTSxLQUFBLEdBQUEsSUFBTSxLQUFBLEdBQUE7QUFBQSxpQkFVbkIsR0FBSyxXQUFXLE1BQVEsSUFBQSxLQUduQixLQUFLLHlCQUF5QixFQUNqQyxLQUFLLEdBQUssS0FDVixNQUFNLE9BQ04sWUFBWSxHQUFLLFlBQ2pCLE1BQUEsR0FBQSxDQUFBLEdBR0s7UUFBQTtNQUFBLEVBQUEsR0EyS1QsRUFDRSxNQUFNLFNBQUEsSUFBQTtBQUFBLGVBQUEsU0FBQSxPQUFvQixJQUFBLFdBQUE7TUFBQSxHQUMxQixVQXpLSixTQUFvQyxJQUFPLElBQVEsSUFBQTtBQUNqRCxXQUFNLFVBQVUsTUFBVSxTQUFVLElBQVksSUFBWSxJQUFNLElBQUE7QUFBQSxjQUFBLEtBQ2xDLEVBQzVCLE1BQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLEVBQUEsR0FQSyxLQUFBLEdBQUEsSUFBTSxLQUFBLEdBQUEsSUFBTSxLQUFBLEdBQUE7QUFBQSxjQVVJLEFBQUEsT0FBWixNQUFZO0FBQ3JCLGtCQUFNLElBQUksRUFBQSxTQUFBLE9BQ0MsSUFBQSxpQ0FBQSxDQUFBO0FBQUEsY0FHUCxLQUFhLEdBQUssWUFDbEIsS0FBUSxHQUFRLEdBQVcsR0FBQTtBQUFBLGlCQUVqQyxHQUFXLE1BQVEsSUFBQSxLQUdkLEtBQUsseUJBQXlCLEVBQ2pDLEtBQUssR0FBSyxLQUNWLE1BQU0sT0FDTixZQUFZLEdBQUssWUFDakIsTUFBQSxHQUFBLENBQUEsR0FHSztRQUFBO01BQUEsRUFBQSxHQTZJVCxFQUNFLE1BQU0sU0FBQSxJQUFBO0FBQUEsZUFBQSxTQUFBLE9BQW9CLElBQUEsV0FBQTtNQUFBLEdBQzFCLFVBM0lKLFNBQW9DLElBQU8sSUFBUSxJQUFBO0FBQ2pELFdBQU0sVUFBVSxNQUFVLFNBQVUsSUFBWSxJQUFZLElBQUE7QUFBQSxjQUFBLEtBQ3JDLEVBQ25CLE1BQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxFQUFBLEdBTkssS0FBQSxHQUFBLElBQU0sS0FBQSxHQUFBO0FBQUEsaUJBQUEsT0FTTixHQUFLLFdBQVcsS0FBQSxLQUdsQixLQUFLLHlCQUF5QixFQUNqQyxLQUFLLEdBQUssS0FDVixNQUFNLFVBQ04sWUFBWSxHQUFLLFlBQ2pCLE1BQUEsR0FBQSxDQUFBLEdBR0s7UUFBQTtNQUFBLEVBQUEsR0F3SFQsRUFDRSxNQUFNLFNBQUEsSUFBQTtBQUFBLGVBQUEsVUFBQSxPQUFxQixJQUFBLFlBQUE7TUFBQSxHQUMzQixVQXRISixTQUFzQyxJQUFPLElBQVEsSUFBQTtBQUNuRCxXQUFNLFVBQVUsTUFBVSxTQUFVLElBQVksSUFBWSxJQUFBO0FBQUEsY0FBQSxLQUMvQixFQUN6QixNQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsRUFBQSxHQU5LLEtBQUEsR0FBQSxJQUFNLEtBQUEsR0FBQTtBQUFBLGNBQUEsQ0FTUixFQUFjLEVBQUE7QUFDakIsa0JBQU0sSUFBSSxFQUFBLFNBQUEsT0FDQyxJQUFBLCtDQUFBLENBQUE7QUFBQSxpQkFHYixHQUFLLGFBQWEsSUFBQSxLQUdiLEtBQUsseUJBQXlCLEVBQ2pDLEtBQUssR0FBSyxLQUNWLE1BQU0sV0FDTixZQUFZLEdBQUssV0FBQSxDQUFBLEdBR1o7UUFBQTtNQUFBLEVBQUEsR0ErRlQsRUFDRSxNQUFNLFNBQUEsSUFBQTtBQUFBLGVBQUEsUUFBQSxPQUFtQixJQUFBLFlBQUE7TUFBQSxHQUN6QixVQTdGSixTQUFvQyxJQUFPLElBQVEsSUFBQTtBQUNqRCxXQUFNLFVBQVUsTUFBVSxTQUFVLElBQVksSUFBWSxJQUFBO0FBQUEsY0FBQSxLQUMvQixFQUN6QixNQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsRUFBQSxHQU5LLEtBQUEsR0FBQSxJQUFNLEtBQUEsR0FBQTtBQUFBLGNBQUEsQ0FTUixFQUFjLEVBQUE7QUFDakIsa0JBQU0sSUFBSSxFQUFBLFNBQUEsT0FDQyxJQUFBLCtDQUFBLENBQUE7QUFBQSxpQkFHYixHQUFPLEdBQUssWUFBWSxFQUFBLEdBQUEsS0FHbkIsS0FBSyx5QkFBeUIsRUFDakMsS0FBSyxHQUFLLEtBQ1YsTUFBTSxTQUNOLFlBQVksR0FBSyxZQUNqQixNQUFNLEdBQUEsQ0FBQSxHQUdEO1FBQUE7TUFBQSxFQUFBLEdBcUVULEVBQ0UsTUFBTSxTQUFBLElBQUE7QUFBQSxlQUFBLFNBQUEsT0FBb0IsSUFBQSxZQUFBO01BQUEsR0FDMUIsVUFuRUosU0FBcUMsSUFBTyxJQUFRLElBQUE7QUFDbEQsV0FBTSxVQUFVLE1BQVUsU0FBVSxJQUFZLElBQVksSUFBQTtBQUFBLGNBQUEsS0FDbEMsRUFDdEIsTUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLEVBQUEsR0FOSyxLQUFBLEdBQUEsSUFBTSxLQUFBLEdBQUE7QUFBQSxjQVNVLEFBQUEsT0FBWixNQUFZO0FBQ3JCLGtCQUFNLElBQUksRUFBQSxTQUFBLE9BQ0MsSUFBQSx1Q0FBQSxDQUFBO0FBQUEsaUJBR2IsR0FBSyxhQUFhLEdBQVEsR0FBSyxVQUFBLEdBQUEsS0FHMUIsS0FBSyx5QkFBeUIsRUFDakMsS0FBSyxHQUFLLEtBQ1YsTUFBTSxVQUNOLFlBQVksR0FBSyxXQUFBLENBQUEsR0FHWjtRQUFBO01BQUEsRUFBQSxDQUFBO0FDc2FYLFVBQU0sS0FBMEIsQ0FDOUIsRUFDRSxNQUFNLFNBQUEsSUFBQTtBQUFBLGVBQUEsTUFBQSxPQUFpQixJQUFBLFdBQUE7TUFBQSxHQUN2QixVQTdyQkosU0FBbUMsSUFBTyxJQUFRLElBQUE7QUFrQmhELFdBQU0sVUFBVSxNQUFVLFNBQVUsSUFBUyxJQUFBO0FBQUEsY0FDdkM7QUFBQSxjQUVjLEFBQWQsS0FBSyxTQUFTLFdBQW9CLEFBQVQsT0FBUyxXQUFXLE9BQVMsS0FBSztBQUM3RCxrQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsMkNBQUEsRUFBQSxPQUFrRCxLQUFLLE1BQUEsU0FBQSxDQUFBO0FBQUEsY0FHaEUsVUFBVSxTQUFTLEdBQUc7QUFBQSxnQkFDcEIsS0FBSztBQUNQLG9CQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSx1SkFBQSxDQUFBO0FBQUEsZ0JBR1AsS0FBUyxLQUFLLElBQ2xCLEtBQVMsS0FBSztBQUFBLGdCQUVoQixLQUFPLFVBQVUsSUFBQSxDQUVqQixNQUFPLEVBQWdCLE1BQU0sSUFBUSxJQUFRLEVBQUE7QUFHM0Msb0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLGdEQUFBLEVBQUEsT0FBdUQsSUFBQSxPQUFBLEVBQUEsT0FBYyxJQUFBLEtBQUEsQ0FBQTtVQUFBLFdBR2xGLEtBQVUsS0FBSyxJQUFBLENBQ2YsTUFBTyxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBR3JCLGtCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSx3QkFBQSxFQUFBLE9BQStCLElBQUEsc0JBQUEsQ0FBQTtBQUFBLGNBSWpDLEFBQVQsT0FBUyxXQUFXLEdBQUssZUFBeUIsQ0FBVCxPQUFTO0FBQ3BELGtCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSx3QkFBQSxFQUFBLE9BQStCLElBQUEsSUFBQSxFQUFBLE9BQVksSUFBQSxxQkFBQSxDQUFBO0FBQUEsaUJBR2pELEdBQUssV0FBVztRQUFBO01BQUEsRUFBQSxHQXFvQnpCLEVBQ0UsTUFBTSxTQUFBLElBQUE7QUFBQSxlQUFBLE1BQUEsT0FBaUIsSUFBQSxZQUFBO01BQUEsR0FDdkIsVUE1bkJKLFNBQW9DLElBQU8sSUFBUSxJQUFBO0FBZ0JqRCxXQUFNLFVBQVUsTUFBVSxTQUFVLElBQUE7QUFBQSxjQUM5QjtBQUFBLGNBRWMsQUFBZCxLQUFLLFNBQVMsV0FBb0IsQUFBVCxPQUFTLFdBQVcsT0FBUyxLQUFLO0FBQzdELGtCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSwyQ0FBQSxFQUFBLE9BQWtELEtBQUssTUFBQSxTQUFBLENBQUE7QUFBQSxjQUdoRSxVQUFVLFNBQVMsR0FBRztBQUFBLGdCQUNwQixLQUFLO0FBQ1Asb0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHVKQUFBLENBQUE7QUFBQSxnQkFHUCxLQUFTLEtBQUssSUFDbEIsS0FBUyxLQUFLLFVBQVU7QUFBQSxnQkFBQSxDQUUxQixNQUFPLEVBQWdCLE1BQU0sSUFBUSxJQUFRLEVBQUE7QUFHM0Msb0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLGdEQUFBLEVBQUEsT0FBdUQsSUFBQSxPQUFBLEVBQUEsT0FBYyxJQUFBLEtBQUEsQ0FBQTtVQUFBLFdBR2xGLEtBQVUsS0FBSyxJQUFBLENBQ2YsTUFBTyxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBR3JCLGtCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSx3QkFBQSxFQUFBLE9BQStCLElBQUEsc0JBQUEsQ0FBQTtBQUFBLGNBSWpDLEFBQVQsT0FBUyxXQUFXLEdBQUssZUFBeUIsQ0FBVCxPQUFTO0FBQ3BELGtCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSx3QkFBQSxFQUFBLE9BQStCLElBQUEsSUFBQSxFQUFBLE9BQVksSUFBQSxxQkFBQSxDQUFBO0FBQUEsaUJBR2pELEdBQUs7UUFBQTtNQUFBLEVBQUEsR0F3a0JkLEVBQ0UsTUFBTSxTQUFBLElBQUE7QUFBQSxlQUFBLE1BQUEsT0FBaUIsSUFBQSxXQUFBO01BQUEsR0FDdkIsVUEvakJKLFNBQW9DLElBQU8sSUFBUSxJQUFBO0FBa0JqRCxXQUFNLFVBQVUsTUFBVSxTQUFVLElBQVMsSUFBQTtBQUFBLGNBQ3ZDO0FBQUEsY0FFYyxBQUFkLEtBQUssU0FBUyxXQUFvQixBQUFULE9BQVMsV0FBVyxPQUFTLEtBQUs7QUFDN0Qsa0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLDJDQUFBLEVBQUEsT0FBa0QsS0FBSyxNQUFBLFNBQUEsQ0FBQTtBQUFBLGNBR2hFLFVBQVUsU0FBUyxHQUFHO0FBQUEsZ0JBQ3BCLEtBQUs7QUFDUCxvQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsdUpBQUEsQ0FBQTtBQUFBLGdCQUdQLEtBQVMsS0FBSyxJQUNsQixLQUFTLEtBQUs7QUFBQSxnQkFFaEIsS0FBTyxVQUFVLElBQUEsQ0FFakIsTUFBTyxFQUFnQixNQUFNLElBQVEsSUFBUSxFQUFBO0FBRzNDLG9CQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSxnREFBQSxFQUFBLE9BQXVELElBQUEsT0FBQSxFQUFBLE9BQWMsSUFBQSxLQUFBLENBQUE7VUFBQSxXQUdsRixLQUFVLEtBQUssSUFBQSxDQUNmLE1BQU8sS0FBSyxPQUFPLElBQUksRUFBQTtBQUdyQixrQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsd0JBQUEsRUFBQSxPQUErQixJQUFBLHNCQUFBLENBQUE7QUFBQSxjQUlqQyxBQUFULE9BQVMsV0FBVyxHQUFLLGVBQXlCLENBQVQsT0FBUztBQUNwRCxrQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsd0JBQUEsRUFBQSxPQUErQixJQUFBLElBQUEsRUFBQSxPQUFZLElBQUEscUJBQUEsQ0FBQTtBQUFBLGlCQUdqRCxHQUFLLFdBQVcsZUFBZSxFQUFBO1FBQUE7TUFBQSxFQUFBLEdBdWdCeEMsRUFDRSxNQUFNLFNBQUEsSUFBQTtBQUFBLGVBQUEsTUFBQSxPQUFpQixJQUFBLFdBQUE7TUFBQSxHQUN2QixVQTlmSixTQUFtQyxJQUFPLElBQVEsSUFBQTtBQW9CaEQsV0FBTSxVQUFVLE1BQVUsU0FBVSxJQUFTLElBQU0sSUFBQTtBQUFBLGNBQzdDO0FBQUEsY0FFYyxBQUFkLEtBQUssU0FBUyxXQUFvQixBQUFULE9BQVMsV0FBVyxPQUFTLEtBQUs7QUFDN0Qsa0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLDJDQUFBLEVBQUEsT0FBa0QsS0FBSyxNQUFBLFNBQUEsQ0FBQTtBQUFBLGNBR2hFLFVBQVUsU0FBUyxHQUFHO0FBQUEsZ0JBQ3BCLEtBQUs7QUFDUCxvQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsdUpBQUEsQ0FBQTtBQUFBLGdCQUdQLEtBQVMsS0FBSyxJQUNsQixLQUFTLEtBQUs7QUFBQSxnQkFFaEIsS0FBTyxVQUFVLElBQ2pCLEtBQVEsVUFBVSxJQUFBLENBRWxCLE1BQU8sRUFBZ0IsTUFBTSxJQUFRLElBQVEsRUFBQTtBQUczQyxvQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsZ0RBQUEsRUFBQSxPQUF1RCxJQUFBLE9BQUEsRUFBQSxPQUFjLElBQUEsS0FBQSxDQUFBO1VBQUEsV0FHbEYsS0FBVSxLQUFLLElBQUEsQ0FDZixNQUFPLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFHckIsa0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHdCQUFBLEVBQUEsT0FBK0IsSUFBQSxzQkFBQSxDQUFBO0FBQUEsY0FJakMsQUFBVCxPQUFTLFdBQVcsR0FBSyxlQUF5QixDQUFULE9BQVM7QUFDcEQsa0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHdCQUFBLEVBQUEsT0FBK0IsSUFBQSxJQUFBLEVBQUEsT0FBWSxJQUFBLHFCQUFBLENBQUE7QUFBQSxpQkFHeEQsR0FBSyxXQUFXLE1BQVEsSUFBQSxLQUduQixLQUFLLHlCQUF5QixFQUNqQyxLQUFLLEdBQUssS0FDVixNQUFNLE9BQ04sWUFBWSxHQUFLLFlBQ2pCLE1BQUEsR0FBQSxDQUFBLEdBR0s7UUFBQTtNQUFBLEVBQUEsR0F5YlQsRUFDRSxNQUFNLFNBQUEsSUFBQTtBQUFBLGVBQUEsU0FBQSxPQUFvQixJQUFBLFdBQUE7TUFBQSxHQUMxQixVQWhiSixTQUFvQyxJQUFPLElBQVEsSUFBQTtBQXFCakQsV0FBTSxVQUFVLE1BQVUsU0FBVSxJQUFTLElBQU0sSUFBQTtBQUFBLGNBQzdDO0FBQUEsY0FFYyxBQUFkLEtBQUssU0FBUyxXQUFvQixBQUFULE9BQVMsV0FBVyxPQUFTLEtBQUs7QUFDN0Qsa0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLDJDQUFBLEVBQUEsT0FBa0QsS0FBSyxNQUFBLFNBQUEsQ0FBQTtBQUFBLGNBR2hFLFVBQVUsU0FBUyxHQUFHO0FBQUEsZ0JBQ3BCLEtBQUs7QUFDUCxvQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsdUpBQUEsQ0FBQTtBQUFBLGdCQUdQLEtBQVMsS0FBSyxJQUNsQixLQUFTLEtBQUs7QUFBQSxnQkFFaEIsS0FBTyxVQUFVLElBQ2pCLEtBQVUsVUFBVSxJQUFBLENBRXBCLE1BQU8sRUFBZ0IsTUFBTSxJQUFRLElBQVEsRUFBQTtBQUczQyxvQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsZ0RBQUEsRUFBQSxPQUF1RCxJQUFBLE9BQUEsRUFBQSxPQUFjLElBQUEsS0FBQSxDQUFBO1VBQUEsV0FHbEYsS0FBVSxLQUFLLElBQUEsQ0FDZixNQUFPLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFHckIsa0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHdCQUFBLEVBQUEsT0FBK0IsSUFBQSxzQkFBQSxDQUFBO0FBQUEsY0FJdkIsQUFBQSxPQUFaLE1BQVk7QUFDckIsa0JBQU0sSUFBSSxFQUFBLFNBQUEsT0FDQyxJQUFBLGlDQUFBLENBQUE7QUFBQSxjQUdBLEFBQVQsT0FBUyxXQUFXLEdBQUssZUFBeUIsQ0FBVCxPQUFTO0FBQ3BELGtCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSx3QkFBQSxFQUFBLE9BQStCLElBQUEsSUFBQSxFQUFBLE9BQVksSUFBQSxxQkFBQSxDQUFBO0FBQUEsaUJBR3hELEdBQUssV0FBVyxNQUFRLEdBQVEsR0FBSyxXQUFXLEdBQUEsR0FBQSxLQUczQyxLQUFLLHlCQUF5QixFQUNqQyxLQUFLLEdBQUssS0FDVixNQUFNLE9BQ04sWUFBWSxHQUFLLFlBQ2pCLE1BQUEsR0FBQSxDQUFBLEdBR0s7UUFBQTtNQUFBLEVBQUEsR0FxV1QsRUFDRSxNQUFNLFNBQUEsSUFBQTtBQUFBLGVBQUEsU0FBQSxPQUFvQixJQUFBLFdBQUE7TUFBQSxHQUMxQixVQTVWSixTQUFvQyxJQUFPLElBQVEsSUFBQTtBQWtCakQsV0FBTSxVQUFVLE1BQVUsU0FBVSxJQUFTLElBQUE7QUFBQSxjQUN2QztBQUFBLGNBRWMsQUFBZCxLQUFLLFNBQVMsV0FBb0IsQUFBVCxPQUFTLFdBQVcsT0FBUyxLQUFLO0FBQzdELGtCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSwyQ0FBQSxFQUFBLE9BQWtELEtBQUssTUFBQSxTQUFBLENBQUE7QUFBQSxjQUdoRSxVQUFVLFNBQVMsR0FBRztBQUFBLGdCQUNwQixLQUFLO0FBQ1Asb0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHVKQUFBLENBQUE7QUFBQSxnQkFHUCxLQUFTLEtBQUssSUFDbEIsS0FBUyxLQUFLO0FBQUEsZ0JBRWhCLEtBQU8sVUFBVSxJQUFBLENBRWpCLE1BQU8sRUFBZ0IsTUFBTSxJQUFRLElBQVEsRUFBQTtBQUczQyxvQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsZ0RBQUEsRUFBQSxPQUF1RCxJQUFBLE9BQUEsRUFBQSxPQUFjLElBQUEsS0FBQSxDQUFBO1VBQUEsV0FHbEYsS0FBVSxLQUFLLElBQUEsQ0FDZixNQUFPLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFHckIsa0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHdCQUFBLEVBQUEsT0FBK0IsSUFBQSxzQkFBQSxDQUFBO0FBQUEsY0FJakMsQUFBVCxPQUFTLFdBQVcsR0FBSyxlQUF5QixDQUFULE9BQVM7QUFDcEQsa0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHdCQUFBLEVBQUEsT0FBK0IsSUFBQSxJQUFBLEVBQUEsT0FBWSxJQUFBLHFCQUFBLENBQUE7QUFBQSxpQkFBQSxPQUdqRCxHQUFLLFdBQVcsS0FBQSxLQUdsQixLQUFLLHlCQUF5QixFQUNqQyxLQUFLLEdBQUssS0FDVixNQUFNLFVBQ04sWUFBWSxHQUFLLFlBQ2pCLE1BQUEsR0FBQSxDQUFBLEdBR0s7UUFBQTtNQUFBLEVBQUEsR0EwUlQsRUFDRSxNQUFNLFNBQUEsSUFBQTtBQUFBLGVBQUEsVUFBQSxPQUFxQixJQUFBLFlBQUE7TUFBQSxHQUMzQixVQWpSSixTQUFzQyxJQUFPLElBQVEsSUFBQTtBQWtCbkQsV0FBTSxVQUFVLE1BQVUsU0FBVSxJQUFTLElBQUE7QUFBQSxjQUN2QztBQUFBLGNBRWMsQUFBZCxLQUFLLFNBQVMsV0FBb0IsQUFBVCxPQUFTLFdBQVcsT0FBUyxLQUFLO0FBQzdELGtCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSwyQ0FBQSxFQUFBLE9BQWtELEtBQUssTUFBQSxTQUFBLENBQUE7QUFBQSxjQUdoRSxVQUFVLFNBQVMsR0FBRztBQUFBLGdCQUNwQixLQUFLO0FBQ1Asb0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHVKQUFBLENBQUE7QUFBQSxnQkFHUCxLQUFTLEtBQUssSUFDbEIsS0FBUyxLQUFLO0FBQUEsZ0JBRWhCLEtBQWEsVUFBVSxJQUFBLENBRXZCLE1BQU8sRUFBZ0IsTUFBTSxJQUFRLElBQVEsRUFBQTtBQUczQyxvQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsZ0RBQUEsRUFBQSxPQUF1RCxJQUFBLE9BQUEsRUFBQSxPQUFjLElBQUEsS0FBQSxDQUFBO1VBQUEsV0FHbEYsS0FBVSxLQUFLLElBQUEsQ0FDZixNQUFPLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFHckIsa0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHdCQUFBLEVBQUEsT0FBK0IsSUFBQSxzQkFBQSxDQUFBO0FBQUEsY0FBQSxDQUl6QyxFQUFjLEVBQUE7QUFDakIsa0JBQU0sSUFBSSxFQUFBLFNBQUEsT0FDQyxJQUFBLCtDQUFBLENBQUE7QUFBQSxjQUdBLEFBQVQsT0FBUyxXQUFXLEdBQUssZUFBeUIsQ0FBVCxPQUFTO0FBQ3BELGtCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSx3QkFBQSxFQUFBLE9BQStCLElBQUEsSUFBQSxFQUFBLE9BQVksSUFBQSxxQkFBQSxDQUFBO0FBQUEsaUJBR3hELEdBQUssYUFBYSxJQUFBLEtBR2IsS0FBSyx5QkFBeUIsRUFDakMsS0FBSyxHQUFLLEtBQ1YsTUFBTSxXQUNOLFlBQVksR0FBSyxXQUFBLENBQUEsR0FHWjtRQUFBO01BQUEsRUFBQSxHQTJNVCxFQUNFLE1BQU0sU0FBQSxJQUFBO0FBQUEsZUFBQSxRQUFBLE9BQW1CLElBQUEsWUFBQTtNQUFBLEdBQ3pCLFVBbE1KLFNBQW9DLElBQU8sSUFBUSxJQUFBO0FBa0JqRCxXQUFNLFVBQVUsTUFBVSxTQUFVLElBQVMsSUFBQTtBQUFBLGNBQ3ZDO0FBQUEsY0FFYyxBQUFkLEtBQUssU0FBUyxXQUFvQixBQUFULE9BQVMsV0FBVyxPQUFTLEtBQUs7QUFDN0Qsa0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLDJDQUFBLEVBQUEsT0FBa0QsS0FBSyxNQUFBLFNBQUEsQ0FBQTtBQUFBLGNBR2hFLFVBQVUsU0FBUyxHQUFHO0FBQUEsZ0JBQ3BCLEtBQUs7QUFDUCxvQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsdUpBQUEsQ0FBQTtBQUFBLGdCQUdQLEtBQVMsS0FBSyxJQUNsQixLQUFTLEtBQUs7QUFBQSxnQkFFaEIsS0FBYSxVQUFVLElBQUEsQ0FFdkIsTUFBTyxFQUFnQixNQUFNLElBQVEsSUFBUSxFQUFBO0FBRzNDLG9CQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSxnREFBQSxFQUFBLE9BQXVELElBQUEsT0FBQSxFQUFBLE9BQWMsSUFBQSxLQUFBLENBQUE7VUFBQSxXQUdsRixLQUFVLEtBQUssSUFBQSxDQUNmLE1BQU8sS0FBSyxPQUFPLElBQUksRUFBQTtBQUdyQixrQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsd0JBQUEsRUFBQSxPQUErQixJQUFBLHNCQUFBLENBQUE7QUFBQSxjQUFBLENBSXpDLEVBQWMsRUFBQTtBQUNqQixrQkFBTSxJQUFJLEVBQUEsU0FBQSxPQUNDLElBQUEsK0NBQUEsQ0FBQTtBQUFBLGNBR0EsQUFBVCxPQUFTLFdBQVcsR0FBSyxlQUF5QixDQUFULE9BQVM7QUFDcEQsa0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHdCQUFBLEVBQUEsT0FBK0IsSUFBQSxJQUFBLEVBQUEsT0FBWSxJQUFBLHFCQUFBLENBQUE7QUFBQSxpQkFHeEQsR0FBTyxHQUFLLFlBQVksRUFBQSxHQUFBLEtBR25CLEtBQUsseUJBQXlCLEVBQ2pDLEtBQUssR0FBSyxLQUNWLE1BQU0sU0FDTixZQUFZLEdBQUssWUFDakIsTUFBTSxHQUFBLENBQUEsR0FHRDtRQUFBO01BQUEsRUFBQSxHQTJIVCxFQUNFLE1BQU0sU0FBQSxJQUFBO0FBQUEsZUFBQSxTQUFBLE9BQW9CLElBQUEsWUFBQTtNQUFBLEdBQzFCLFVBbEhKLFNBQXFDLElBQU8sSUFBUSxJQUFBO0FBa0JsRCxXQUFNLFVBQVUsTUFBVSxTQUFVLElBQVMsSUFBQTtBQUFBLGNBQ3ZDO0FBQUEsY0FFYyxBQUFkLEtBQUssU0FBUyxXQUFvQixBQUFULE9BQVMsV0FBVyxPQUFTLEtBQUs7QUFDN0Qsa0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLDJDQUFBLEVBQUEsT0FBa0QsS0FBSyxNQUFBLFNBQUEsQ0FBQTtBQUFBLGNBR2hFLFVBQVUsU0FBUyxHQUFHO0FBQUEsZ0JBQ3BCLEtBQUs7QUFDUCxvQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsdUpBQUEsQ0FBQTtBQUFBLGdCQUdQLEtBQVMsS0FBSyxJQUNsQixLQUFTLEtBQUs7QUFBQSxnQkFFaEIsS0FBVSxVQUFVLElBQUEsQ0FFcEIsTUFBTyxFQUFnQixNQUFNLElBQVEsSUFBUSxFQUFBO0FBRzNDLG9CQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSxnREFBQSxFQUFBLE9BQXVELElBQUEsT0FBQSxFQUFBLE9BQWMsSUFBQSxLQUFBLENBQUE7VUFBQSxXQUdsRixLQUFVLEtBQUssSUFBQSxDQUNmLE1BQU8sS0FBSyxPQUFPLElBQUksRUFBQTtBQUdyQixrQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsd0JBQUEsRUFBQSxPQUErQixJQUFBLHNCQUFBLENBQUE7QUFBQSxjQUl2QixBQUFBLE9BQVosTUFBWTtBQUNyQixrQkFBTSxJQUFJLEVBQUEsU0FBQSxPQUNDLElBQUEsdUNBQUEsQ0FBQTtBQUFBLGNBR0EsQUFBVCxPQUFTLFdBQVcsR0FBSyxlQUF5QixDQUFULE9BQVM7QUFDcEQsa0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHdCQUFBLEVBQUEsT0FBK0IsSUFBQSxJQUFBLEVBQUEsT0FBWSxJQUFBLHFCQUFBLENBQUE7QUFBQSxpQkFHeEQsR0FBSyxhQUFhLEdBQVEsR0FBSyxVQUFBLEdBQUEsS0FHMUIsS0FBSyx5QkFBeUIsRUFDakMsS0FBSyxHQUFLLEtBQ1YsTUFBTSxVQUNOLFlBQVksR0FBSyxXQUFBLENBQUEsR0FHWjtRQUFBO01BQUEsRUFBQSxDQUFBO0FDaHNCWCxVQUFJLEtBQVcsR0FDYixLQUFPLEdBUVQsS0FBaUIsV0FBQTtBQUFBLFlBRWIsSUFERSxLQUFZLFdBRWQsS0FBQTtBQUFLLGVBRUEsSUFBSSxHQUFTLGNBQVM7QUFBQSxjQUFBLENBQ3RCLElBQVM7QUFBQSxnQkFBQSxFQUNaLE1BRVMsR0FBVTtBQUFRLHFCQUFPLEVBQUMsTUFBQSxLQUFNO0FBRXpDLGlCQUFVLEdBQUssR0FBVSxHQUFBO1VBQUE7QUFBQSxjQUd2QixLQUFPLEdBQVEsS0FBQTtBQUFBLGlCQUVmLEdBQUssT0FDUCxNQUFVLE1BQ0gsR0FBQSxLQUdGO1FBQUEsQ0FBQTtNQUFBLEdDcEJMLEtBQWtCLENBQ3RCLEVBQ0UsTUFBTSxTQUNOLE1BQU0sUUFBQSxHQUVSLEVBQ0UsTUFBTSxXQUNOLE1BQU0sWUFDTixXQUFXLEtBQUEsR0FFYixFQUNFLE1BQU0sWUFDTixNQUFNLFlBQ04sV0FBVyxNQUFBLEdBRWIsRUFDRSxNQUFNLGdCQUNOLE1BQU0sU0FDTixXQUFXLEtBQUEsR0FFYixFQUNFLE1BQU0saUJBQ04sTUFBTSxTQUNOLFdBQVcsTUFBQSxHQUViLEVBQ0UsTUFBTSxpQkFDTixNQUFNLFdBQUEsR0FFUixFQUNFLE1BQU0sbUJBQ04sTUFBTSxhQUFBLENBQUE7QUFXVixrQkFBdUIsSUFBTyxJQUFBO0FBQUEsaUJBQ2pCLE1BQUs7QUFBUSxhQUFNLEtBQUssR0FBTyxJQUFHLEdBQUE7TUFBQTtBQUcvQyxrQkFBc0IsSUFBTyxJQUFBO0FBQUEsaUJBQ2hCLE1BQUs7QUFDZCxhQUFPLElBQUcsUUFBUSxTQUFBLElBQUE7QUFBQSxtQkFBWSxHQUFNLEtBQUssR0FBUyxHQUFBO1VBQUEsQ0FBQTtNQUFBO0FBU3RELGtCQUF1QixJQUFRLElBQVUsSUFBQTtBQUFBLGlCQUM1QixNQUFLO0FBQUEsY0FDVixPQUFNLElBQUE7QUFBQSxnQkFFSixLQUFXLEdBQU87QUFFeEIsZUFDRSxHQUFTLEtBQ1QsR0FBUyxZQUNULEdBQVMsT0FBTyxLQUNoQixHQUFTLE9BQU8sS0FDaEIsR0FBUyxPQUFPLFlBQ2hCLEdBQVMsT0FBTyxZQUNoQixHQUFTLFVBQUE7VUFBQTtNQUFBO0FBS2Ysa0JBQXNCLElBQVEsSUFBVSxJQUFBO0FBQUEsaUJBQzNCLE1BQUs7QUFDVixpQkFBTSxNQUVWLEdBQU8sSUFBRyxRQUFRLFNBQUEsSUFBQTtBQUFBLG1CQUNoQixHQUNFLEdBQVMsS0FDVCxHQUFTLFlBQ1QsR0FBUyxPQUFPLEtBQ2hCLEdBQVMsT0FBTyxLQUNoQixHQUFTLE9BQU8sWUFDaEIsR0FBUyxPQUFPLFlBQ2hCLEdBQVMsVUFBQTtVQUFBLENBQUE7TUFBQTtBQVlqQixrQkFBb0IsSUFBUSxJQUFVLElBQUE7QUFBQSxpQkFHekIsTUFBSztBQUFBLGNBQ1YsT0FBTSxJQUFBO0FBQUEsZ0JBRUosS0FBVyxHQUFPO0FBQUEsZ0JBRVYsR0FDWixHQUFTLEtBQ1QsR0FBUyxZQUNULEdBQVMsT0FBTyxLQUNoQixHQUFTLE9BQU8sS0FDaEIsR0FBUyxPQUFPLFlBQ2hCLEdBQVMsT0FBTyxZQUNoQixHQUFTLFVBQUE7QUFHTSxxQkFBTyxHQUFTO1VBQUE7TUFBQTtBQU1yQyxrQkFBbUIsSUFBUSxJQUFVLElBQUE7QUFBQSxZQUMvQixJQUFVLElBQU0sSUFBVSxJQUFRO0FBQUEsaUJBSTNCLE1BQUs7QUFBQSxjQUNWLE9BQU07QUFBQSxpQkFFVixLQUFXLEdBQU8sSUFBRyxPQUFBLEdBQUEsQUFFWixNQUFPLEdBQVMsS0FBQSxHQUFjLFNBRmxCO0FBRWtCLGtCQUVyQyxLQURBLE1BQVcsR0FBSyxPQUNFLFFBQ2xCLEtBQVMsR0FBUyxRQUVKLEdBQ1osR0FBUyxLQUNULEdBQVMsWUFDVCxHQUFPLEtBQ1AsR0FBTyxLQUNQLEdBQU8sWUFDUCxHQUFPLFlBQ1AsR0FBUyxVQUFBO0FBR00sdUJBQU8sR0FBUzs7TUFBQTtBQWF2QyxrQkFBd0IsSUFBUSxJQUFBO0FBQUEsWUFDeEIsS0FBTyxPQUFPLEtBQUssRUFBQSxHQUN2QixLQUFJLEdBQUssUUFFUCxLQUFRLE1BQ1YsS0FBSTtBQUFBLGVBRUMsSUFBSSxFQUFTLGNBQVM7QUFBQSxjQUN2QjtBQUFBLGNBRUEsSUFBTztBQUFBLGdCQUNILEtBQU8sR0FBTSxLQUFBO0FBQUEsZ0JBRWYsR0FBSztBQUFBLHFCQUNQLEtBQVEsTUFDUixNQUNPLEdBQUE7QUFHVCxpQkFBVyxHQUFLO1VBQUEsT0FDWDtBQUFBLGdCQUNELE1BQUs7QUFBRyxxQkFBTyxFQUFDLE1BQUEsS0FBTTtBQUFBLGdCQUVwQixLQUFJLEdBQUs7QUFBQSxnQkFFWCxPQUFNO0FBQUEscUJBQ1IsTUFDTyxHQUFBO0FBQUEsZ0JBR1QsTUFBVyxHQUFPLGdCQUVNO0FBQUEscUJBQ3RCLEtBQVEsR0FBUyxPQUFBLEdBQ1YsR0FBQTtBQUdUO1VBQUE7QUFBQSxpQkFHSyxFQUNMLE1BQUEsT0FDQSxPQUFPLEVBQ0wsTUFBTSxHQUFTLEtBQ2YsWUFBWSxHQUFTLFlBQ3JCLFFBQVEsR0FBUyxPQUFPLEtBQ3hCLFFBQVEsR0FBUyxPQUFPLEtBQ3hCLGtCQUFrQixHQUFTLE9BQU8sWUFDbEMsa0JBQWtCLEdBQVMsT0FBTyxZQUNsQyxZQUFZLEdBQVMsV0FBQSxFQUFBO1FBQUEsQ0FBQTtNQUFBO0FBYzdCLGtCQUE2QixJQUFPLElBQVEsSUFBQTtBQUFBLFlBQ3BDLEtBQVcsR0FBTztBQUVuQixjQUVMLEdBQU0sS0FBSyxHQUFTLEdBQUE7TUFBQTtBQUd0QixrQkFBNEIsSUFBTyxJQUFRLElBQUE7QUFBQSxZQUNuQyxLQUFZLEdBQU87QUFFcEIsY0FFTCxHQUFVLFFBQVEsU0FBQSxJQUFBO0FBQUEsaUJBQVksR0FBTSxLQUFLLEdBQVMsR0FBQTtRQUFBLENBQUE7TUFBQTtBQVdwRCxrQkFBNkIsSUFBUSxJQUFHLElBQUE7QUFBQSxZQUNoQyxLQUFXLEdBQU87QUFBQSxZQUVuQixJQUFBO0FBQUEsY0FFQyxLQUFhLEdBQVMsUUFDdEIsS0FBYSxHQUFTO0FBRTVCLGFBQ0UsR0FBUyxLQUNULEdBQVMsWUFDVCxHQUFXLEtBQ1gsR0FBVyxLQUNYLEdBQVcsWUFDWCxHQUFXLFlBQ1gsR0FBUyxVQUFBO1FBQUE7TUFBQTtBQUliLGtCQUE0QixJQUFRLElBQUcsSUFBQTtBQUFBLFlBQy9CLEtBQVksR0FBTztBQUVwQixjQUVMLEdBQVUsUUFBUSxTQUFBLElBQUE7QUFBQSxpQkFDaEIsR0FDRSxHQUFTLEtBQ1QsR0FBUyxZQUNULEdBQVMsT0FBTyxLQUNoQixHQUFTLE9BQU8sS0FDaEIsR0FBUyxPQUFPLFlBQ2hCLEdBQVMsT0FBTyxZQUNoQixHQUFTLFVBQUE7UUFBQSxDQUFBO01BQUE7QUFhZixrQkFBMEIsSUFBUSxJQUFHLElBQUE7QUFBQSxZQUM3QixLQUFXLEdBQU87QUFBQSxZQUVuQixJQUFBO0FBQUEsY0FFQyxLQUFhLEdBQVMsUUFDdEIsS0FBYSxHQUFTO0FBQUEsaUJBRzFCLEdBQ0UsR0FBUyxLQUNULEdBQVMsWUFDVCxHQUFXLEtBQ1gsR0FBVyxLQUNYLEdBQVcsWUFDWCxHQUFXLFlBQ1gsR0FBUyxVQUFBLElBR0osR0FBUyxNQUFBO1FBQUE7TUFBQTtBQUdwQixrQkFBeUIsSUFBUSxJQUFHLElBQUE7QUFBQSxZQUM1QixLQUFZLEdBQU87QUFBQSxZQUVwQjtBQUFBLG1CQUtELElBQU0sSUFESixLQUFXLEdBQVUsT0FBQSxHQUFBLEFBR2xCLE1BQU8sR0FBUyxLQUFBLEdBQWMsU0FIWjtBQUdZLGdCQUd2QixHQUZkLE1BQVcsR0FBSyxPQUdMLEtBQ1QsR0FBUyxZQUNULEdBQVMsT0FBTyxLQUNoQixHQUFTLE9BQU8sS0FDaEIsR0FBUyxPQUFPLFlBQ2hCLEdBQVMsT0FBTyxZQUNoQixHQUFTLFVBQUE7QUFHTSxxQkFBTyxHQUFTOztNQUFBO0FBYXJDLGtCQUE4QixJQUFRLElBQUE7QUFBQSxZQUM5QixLQUFJLEdBQU87QUFBQSxZQUViLGNBQWEsS0FBSztBQUFBLGNBQ2QsS0FBVyxHQUFFLE9BQUE7QUFBQSxpQkFFWixJQUFJLEVBQVMsV0FBQTtBQUFBLGdCQUNaLEtBQU8sR0FBUyxLQUFBO0FBQUEsZ0JBRWxCLEdBQUs7QUFBTSxxQkFBTztBQUFBLGdCQUVoQixLQUFXLEdBQUs7QUFBQSxtQkFFZixFQUNMLE1BQUEsT0FDQSxPQUFPLEVBQ0wsTUFBTSxHQUFTLEtBQ2YsWUFBWSxHQUFTLFlBQ3JCLFFBQVEsR0FBUyxPQUFPLEtBQ3hCLFFBQVEsR0FBUyxPQUFPLEtBQ3hCLGtCQUFrQixHQUFTLE9BQU8sWUFDbEMsa0JBQWtCLEdBQVMsT0FBTyxZQUNsQyxZQUFZLEdBQVMsV0FBQSxFQUFBO1VBQUEsQ0FBQTtRQUFBO0FBQUEsZUFNdEIsRUFBUyxHQUFHLENBQ2pCLEdBQUUsS0FDRixHQUFFLFlBQ0YsR0FBRSxPQUFPLEtBQ1QsR0FBRSxPQUFPLEtBQ1QsR0FBRSxPQUFPLFlBQ1QsR0FBRSxPQUFPLFVBQUEsQ0FBQTtNQUFBO0FBV2Isa0JBQXlCLElBQU8sSUFBQTtBQUFBLFlBQ1gsQUFBZixHQUFNLFNBQVM7QUFBRyxpQkFBTyxDQUFBO0FBQUEsWUFFaEIsQUFBVCxPQUFTLFdBQVcsT0FBUyxHQUFNO0FBQUEsaUJBQ1gsQUFBQSxPQUFmLE1BQU0sUUFBUyxhQUNqQixNQUFNLEtBQUssR0FBTSxPQUFPLEtBQUEsQ0FBQSxJQUUxQixFQUFLLEdBQU0sT0FBTyxLQUFBLEdBQVEsR0FBTSxPQUFPLElBQUE7QUFBQSxpQkFZNUMsSUFBTSxJQVRKLEtBQ0ssQUFBVCxPQUFTLGVBQWUsR0FBTSxpQkFBaUIsR0FBTSxjQUVqRCxLQUFPLElBQUksTUFBTSxFQUFBLEdBQ3JCLEtBQWdCLEFBQVQsT0FBUyxjQUVaLEtBQVcsR0FBTSxPQUFPLE9BQUEsR0FFMUIsS0FBSSxHQUFBLEFBR0MsTUFBTyxHQUFTLEtBQUEsR0FBYyxTQUgvQjtBQUcrQixVQUNyQyxNQUFPLEdBQUssT0FFSCxlQUFlLE1BQU0sSUFBSyxRQUFPLEdBQUs7QUFBQSxlQUcxQztNQUFBO0FBVVQsa0JBQXFCLElBQU8sSUFBTSxJQUFBO0FBQUEsWUFDYixBQUFmLEdBQU0sU0FBUztBQUFULG1CQUtOLElBQU0sSUFISixLQUF3QixBQUFULE9BQVMsV0FBVyxPQUFTLEdBQU0sTUFDbEQsS0FBZ0IsQUFBVCxPQUFTLGNBR2hCLEtBQVcsR0FBTSxPQUFPLE9BQUEsR0FBQSxBQUVyQixNQUFPLEdBQVMsS0FBQSxHQUFjLFNBRlQ7QUFFUyxnQkFDckMsS0FBTyxHQUFLLE9BQUEsQ0FFUixNQUFnQixHQUFLLGVBQWUsSUFBQTtBQUFBLGtCQUFBLEtBRUUsSUFBbkMsS0FBQSxHQUFBLEtBQUssS0FBQSxHQUFBLFlBQVksS0FBQSxHQUFBLFFBQVEsS0FBQSxHQUFBO0FBRWhDLGlCQUNFLElBQ0EsSUFDQSxHQUFPLEtBQ1AsR0FBTyxLQUNQLEdBQU8sWUFDUCxHQUFPLFlBQ1AsR0FBSyxVQUFBO1lBQUE7O01BQUE7QUFhWCxrQkFBa0IsSUFBTyxJQUFNLElBQUE7QUFBQSxZQUNWLEFBQWYsR0FBTSxTQUFTO0FBQVQsbUJBS04sSUFBTSxJQUhKLEtBQXdCLEFBQVQsT0FBUyxXQUFXLE9BQVMsR0FBTSxNQUNsRCxLQUFnQixBQUFULE9BQVMsY0FJaEIsS0FBVyxHQUFNLE9BQU8sT0FBQSxHQUFBLEFBRXJCLE1BQU8sR0FBUyxLQUFBLEdBQWMsU0FGVDtBQUVTLGdCQUNyQyxLQUFPLEdBQUssT0FBQSxDQUVSLE1BQWdCLEdBQUssZUFBZSxJQUFBO0FBQUEsa0JBQUEsS0FFRSxJQUFuQyxLQUFBLEdBQUEsS0FBSyxLQUFBLEdBQUEsWUFBWSxLQUFBLEdBQUEsUUFBUSxLQUFBLEdBQUE7QUFBQSxrQkFFbEIsR0FDWixJQUNBLElBQ0EsR0FBTyxLQUNQLEdBQU8sS0FDUCxHQUFPLFlBQ1AsR0FBTyxZQUNQLEdBQUssVUFBQTtBQUdVLHVCQUFPO1lBQUE7O01BQUE7QUFhNUIsa0JBQTRCLElBQU8sSUFBQTtBQUFBLFlBQ2QsQUFBZixHQUFNLFNBQVM7QUFBRyxpQkFBTyxFQUFTLE1BQUE7QUFBQSxZQUVoQyxLQUF3QixBQUFULE9BQVMsV0FBVyxPQUFTLEdBQU0sTUFDbEQsS0FBZ0IsQUFBVCxPQUFTLGNBRWhCLEtBQVcsR0FBTSxPQUFPLE9BQUE7QUFBQSxlQUV2QixJQUFJLEVBQVMsV0FBQTtBQUFBLG1CQUNkLElBQU0sUUFHRztBQUFBLGdCQUNYLE1BQU8sR0FBUyxLQUFBLEdBRVA7QUFBTSxxQkFBTztBQUFBLGdCQUV0QixLQUFPLEdBQUssT0FBQSxDQUVSLE1BQWdCLEdBQUssZUFBZTtBQUFBO1VBQUE7QUFBQSxpQkFlbkMsRUFBQyxPQVZNLEVBQ1osTUFBTSxHQUFLLEtBQ1gsWUFBWSxHQUFLLFlBQ2pCLFFBQVEsR0FBSyxPQUFPLEtBQ3BCLFFBQVEsR0FBSyxPQUFPLEtBQ3BCLGtCQUFrQixHQUFLLE9BQU8sWUFDOUIsa0JBQWtCLEdBQUssT0FBTyxZQUM5QixZQUFZLEdBQUssV0FBQSxHQUdKLE1BQUEsTUFBTTtRQUFBLENBQUE7TUFBQTtBQWF6QixrQkFBZ0MsSUFBTyxJQUFNLElBQVcsSUFBQTtBQUFBLFlBQ2hELEtBQVEsQ0FBQSxHQUVSLEtBQUssS0FBUSxLQUFlO0FBQUEsZUFFckIsQUFBVCxPQUFTLGdCQUNPLENBQWQsT0FBYyxTQUFPLEdBQUcsSUFBTyxHQUFBLEVBQUEsR0FDakIsQUFBZCxPQUFjLFFBQU0sR0FBRyxJQUFPLEdBQVMsR0FBQSxHQUFBLENBR3RDLE1BQWEsR0FBUyxvQkFBb0IsS0FDN0MsR0FBTSxPQUFPLEdBQU0sWUFBWSxHQUFTLEdBQUEsR0FBTSxDQUFBLElBR3JDLEFBQVQsT0FBUyxjQUNYLEdBQUcsSUFBTyxHQUFTLFVBQUEsR0FHZDtNQUFBO0FBWVQsa0JBQTRCLElBQU8sSUFBTSxJQUFXLElBQVUsSUFBQTtBQUFBLFlBQ3RELEtBQUssS0FBUSxLQUFlO0FBRXJCLFFBQVQsT0FBUyxnQkFDTyxDQUFkLE9BQWMsU0FBTyxHQUFHLEdBQUEsSUFBYSxFQUFBLEdBQ3ZCLEFBQWQsT0FBYyxRQUNoQixHQUFHLEdBQVMsS0FBSyxJQUFXLEtBQTJCLE9BQWYsR0FBUyxHQUFBLElBR3hDLEFBQVQsT0FBUyxjQUNYLEdBQUcsR0FBUyxZQUFZLEVBQUE7TUFBQTtBQWE1QixrQkFBeUIsSUFBTyxJQUFNLElBQVcsSUFBVSxJQUFBO0FBQUEsWUFHckQsSUFGRSxLQUFLLEtBQVEsS0FBWTtBQUFBLFlBSWxCLEFBQVQsT0FBUyxjQUFjO0FBQUEsY0FDUCxBQUFkLE9BQWMsU0FDaEIsTUFBUSxHQUFHLEdBQUEsSUFBYSxFQUFBO0FBRWIsbUJBQU87QUFBQSxjQUVGLEFBQWQsT0FBYyxRQUNoQixNQUFRLEdBQUcsR0FBUyxLQUFLLElBQVcsS0FBMkIsT0FBZixHQUFTLEdBQUE7QUFFOUMsbUJBQU87UUFBQTtBQUFBLFlBSVQsQUFBVCxPQUFTLGNBQ1gsTUFBUSxHQUFHLEdBQVMsWUFBWSxFQUFBO0FBRXJCLGlCQUFPO01BQUE7QUFjdEIsa0JBQW1DLElBQU0sSUFBVyxJQUFBO0FBQUEsWUFDOUMsS0FBVyxFQUFTLE1BQUE7QUFBQSxlQUVYLEFBQVQsT0FBUyxnQkFDTyxDQUFkLE9BQWMsU0FBZCxBQUE4QixHQUFBLE9BQTlCLFVBQ0YsTUFBVyxHQUFNLElBQVUsR0FBZSxHQUFBLEVBQUEsQ0FBQSxJQUMxQixBQUFkLE9BQWMsUUFBZCxBQUE2QixHQUFTLFFBQXRDLFVBQ0YsTUFBVyxHQUNULElBQ0EsR0FBZSxHQUFTLEtBQU0sS0FBMkIsT0FBZixHQUFTLEdBQUEsQ0FBQSxLQUk1QyxBQUFULE9BQVMsY0FBVCxBQUE4QixHQUFTLGVBQXZDLFVBQ0YsTUFBVyxHQUFNLElBQVUsR0FBZSxHQUFTLFVBQUEsQ0FBQSxJQUc5QztNQUFBO0FBYVQsa0JBQWdDLElBQU0sSUFBTyxJQUFXLElBQVksSUFBQTtBQUFBLFlBQzVELEtBQUssS0FBUSxLQUFxQixJQUVsQyxLQUFRLENBQUE7QUFBQSxlQUVELEFBQVQsT0FBUyxnQkFBVCxDQUNTLEdBQUEsT0FEVCxVQUN3RCxBQUFkLE9BQWMsU0FDeEQsR0FBRyxJQUFPLEdBQUEsSUFBZSxFQUFBLEdBQUEsQUFFaEIsR0FBVyxRQUZLLFVBRWdDLEFBQWQsT0FBYyxRQUN6RCxHQUFHLElBQU8sR0FBVyxLQUFLLEVBQUEsR0FBQSxDQUd2QixNQUFhLEdBQVcsb0JBQW9CLEtBQy9DLEdBQU0sT0FBTyxHQUFNLFlBQVksR0FBVyxHQUFBLEdBQU0sQ0FBQSxJQUd2QyxBQUFULE9BQVMsY0FBVCxBQUNTLEdBQVcsZUFEcEIsVUFFQSxHQUFHLElBQU8sR0FBVyxZQUFZLEVBQUEsR0FHOUI7TUFBQTtBQWFULGtCQUNFLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUFBO0FBQUEsWUFFTSxLQUFLLEtBQVEsS0FBcUI7QUFFM0IsUUFBVCxPQUFTLGdCQUFULENBQ1MsR0FBQSxPQURULFVBQ3dELEFBQWQsT0FBYyxTQUN4RCxHQUFHLEdBQUEsSUFBZSxJQUFRLEVBQUEsR0FFeEIsR0FBVyxRQUFRLE1BQUEsQUFDVixHQUFXLFFBREQsVUFDc0MsQUFBZCxPQUFjLFFBQ3pELEdBQUcsR0FBVyxLQUFLLElBQVEsRUFBQSxJQUdwQixBQUFULE9BQVMsY0FBVCxBQUNTLEdBQVcsZUFEcEIsVUFFQSxHQUFHLEdBQVcsWUFBWSxJQUFRLEVBQUE7TUFBQTtBQWV4QyxrQkFBeUIsSUFBTSxJQUFPLElBQVcsSUFBWSxJQUFRLElBQUE7QUFBQSxZQUcvRCxJQUZFLEtBQUssS0FBUSxLQUFrQjtBQUFBLFlBSXhCLEFBQVQsT0FBUyxjQUFjO0FBQUEsY0FBQSxBQUNkLEdBQUEsT0FEYyxVQUNpQyxBQUFkLE9BQWMsU0FDeEQsTUFBUSxHQUFHLEdBQUEsSUFBZSxJQUFRLEVBQUE7QUFFdkIsbUJBQU87QUFBQSxjQUdoQixHQUFXLFFBQVEsTUFBQSxBQUNWLEdBQVcsUUFERCxVQUNzQyxBQUFkLE9BQWMsUUFDekQsTUFBUSxHQUNOLEdBQVcsS0FDWCxJQUNBLElBQ0MsS0FBNkIsT0FBakIsR0FBVyxHQUFBO0FBR2YsbUJBQU87UUFBQTtBQUFBLFlBSVgsQUFBVCxPQUFTLGNBQVQsQUFDUyxHQUFXLGVBRHBCLFVBRUEsTUFBUSxHQUFHLEdBQVcsWUFBWSxJQUFRLEVBQUE7QUFFL0IsaUJBQU87TUFBQTtBQWdCeEIsa0JBQW1DLElBQU0sSUFBVyxJQUFZLElBQUE7QUFBQSxZQUMxRCxLQUFXLEVBQVMsTUFBQTtBQUFBLGVBRVgsQUFBVCxPQUFTLGdCQUFULENBRU8sR0FBQSxPQUZQLFVBR2MsQUFBZCxPQUFjLFNBQ2QsTUFBVSxHQUFBLE1BRVYsTUFBVyxHQUFNLElBQVUsR0FBcUIsR0FBQSxJQUFlLEVBQUEsQ0FBQSxJQUFBLEFBR3hELEdBQVcsUUFINkMsVUFJakQsQUFBZCxPQUFjLFFBQ2QsTUFBVSxHQUFXLE9BRXJCLE1BQVcsR0FBTSxJQUFVLEdBQXFCLEdBQVcsS0FBSyxFQUFBLENBQUEsS0FHdkQsQUFBVCxPQUFTLGNBQVQsQUFFTyxHQUFXLGVBRmxCLFVBR0EsTUFBVSxHQUFXLGNBRXJCLE1BQVcsR0FDVCxJQUNBLEdBQXFCLEdBQVcsWUFBWSxFQUFBLENBQUEsSUFJM0M7TUFBQTtBQ3B6QlQsVUFBTSxLQUFzQixDQUMxQixFQUNFLE1BQU0sYUFDTixNQUFNLFFBQUEsR0FFUixFQUNFLE1BQU0sZUFDTixNQUFNLFlBQ04sV0FBVyxLQUFBLEdBRWIsRUFDRSxNQUFNLGdCQUNOLE1BQU0sWUFDTixXQUFXLE1BQUEsR0FFYixFQUNFLE1BQU0sb0JBQ04sTUFBTSxTQUNOLFdBQVcsS0FBQSxHQUViLEVBQ0UsTUFBTSxxQkFDTixNQUFNLFNBQ04sV0FBVyxNQUFBLEdBRWIsRUFDRSxNQUFNLHFCQUNOLE1BQU0sV0FBQSxHQUVSLEVBQ0UsTUFBTSx1QkFDTixNQUFNLGFBQUEsQ0FBQTtBQVVWLGtCQUFlLElBQVcsSUFBQTtBQUFBLFlBQUEsQUFDYixPQURhO0FBQ2IsbUJBRUEsTUFBWTtBQUFRLGVBQVUsSUFBSSxFQUFBO01BQUE7QUErQy9DLGtCQUF5QixJQUFVLElBQVEsSUFBQTtBQUFBLGlCQUM5QixNQUFLLElBQVE7QUFBQSxjQUNsQixLQUFXLEdBQU87QUFFbEIsd0JBQW9CLE9BQUssTUFBVyxHQUFTLE9BQUEsRUFBUyxLQUFBLEVBQU87QUFBQSxjQUUzRCxLQUFhLEdBQVMsUUFDMUIsS0FBYSxHQUFTLFFBRWxCLEtBQWUsT0FBZSxLQUFXLEtBQWE7QUFFNUQsYUFBUyxHQUFhLEtBQUssR0FBYSxVQUFBO1FBQUE7TUFBQTtBQUk1QyxrQkFBNkIsSUFBUyxJQUFVLElBQVEsSUFBQTtBQUFBLGlCQUMzQyxNQUFLLElBQVE7QUFBQSxjQUNsQixLQUFXLEdBQU87QUFFbEIsd0JBQW9CLE9BQUssTUFBVyxHQUFTLE9BQUEsRUFBUyxLQUFBLEVBQU87QUFBQSxjQUUzRCxLQUFhLEdBQVMsUUFDMUIsS0FBYSxHQUFTLFFBRWxCLEtBQWUsT0FBZSxLQUFXLEtBQWE7QUFFeEQsYUFBUSxJQUFJLEdBQWEsR0FBQSxLQUU3QixJQUFRLElBQUksR0FBYSxHQUFBLEdBRXpCLEdBQVMsR0FBYSxLQUFLLEdBQWEsVUFBQTtRQUFBO01BQUE7QUFhNUMsa0JBQXNCLElBQVUsSUFBUSxJQUFBO0FBQUEsaUJBQzNCLE1BQUssSUFBUTtBQUFBLGNBQ2xCLEtBQVcsR0FBTztBQUVsQix3QkFBb0IsT0FBSyxNQUFXLEdBQVMsT0FBQSxFQUFTLEtBQUEsRUFBTztBQUFBLGNBRTNELEtBQWEsR0FBUyxRQUN0QixLQUFhLEdBQVMsUUFFdEIsS0FBZSxPQUFlLEtBQVcsS0FBYTtBQUFBLGNBRXhDLEdBQVMsR0FBYSxLQUFLLEdBQWEsVUFBQTtBQUUzQyxtQkFBTyxHQUFhO1FBQUE7TUFBQTtBQU16QyxrQkFBMEIsSUFBUyxJQUFVLElBQVEsSUFBQTtBQUFBLGlCQUN4QyxNQUFLLElBQVE7QUFBQSxjQUNsQixLQUFXLEdBQU87QUFFbEIsd0JBQW9CLE9BQUssTUFBVyxHQUFTLE9BQUEsRUFBUyxLQUFBLEVBQU87QUFBQSxjQUUzRCxLQUFhLEdBQVMsUUFDdEIsS0FBYSxHQUFTLFFBRXRCLEtBQWUsT0FBZSxLQUFXLEtBQWE7QUFBQSxjQUFBLENBRXhELEdBQVEsSUFBSSxHQUFhLEdBQUE7QUFBQSxnQkFFN0IsR0FBUSxJQUFJLEdBQWEsR0FBQSxHQUVMLEdBQVMsR0FBYSxLQUFLLEdBQWEsVUFBQTtBQUUzQyxxQkFBTyxHQUFhOztRQUFBO01BQUE7QUE4RXpDLGtCQUE4QixJQUFVLElBQUE7QUFBQSxZQUNoQyxLQUFPLE9BQU8sS0FBSyxFQUFBLEdBQ3ZCLEtBQUksR0FBSyxRQUVQLEtBQUk7QUFBQSxlQUVELElBQUksRUFBUyxXQUFBO0FBQUEsY0FDZCxNQUFLO0FBQUcsbUJBQU8sRUFBQyxNQUFBLEtBQU07QUFBQSxjQUV0QixLQUFXLEdBQU8sR0FBSztBQUV2Qix3QkFBb0IsT0FBSyxNQUFXLEdBQVMsT0FBQSxFQUFTLEtBQUEsRUFBTztBQUFBLGNBRTNELEtBQWEsR0FBUyxRQUMxQixLQUFhLEdBQVMsUUFFbEIsS0FBZSxPQUFlLEtBQVcsS0FBYTtBQUFBLGlCQUVyRCxFQUNMLE1BQUEsT0FDQSxPQUFPLEVBQUMsVUFBVSxHQUFhLEtBQUssWUFBWSxHQUFhLFdBQUEsRUFBQTtRQUFBLENBQUE7TUFBQTtBQUtuRSxrQkFBcUMsSUFBUyxJQUFVLElBQUE7QUFBQSxZQUNoRCxLQUFPLE9BQU8sS0FBSyxFQUFBLEdBQ3ZCLEtBQUksR0FBSyxRQUVQLEtBQUk7QUFBQSxlQUVELElBQUksRUFBUyxjQUFTO0FBQUEsY0FDdkIsTUFBSztBQUFHLG1CQUFPLEVBQUMsTUFBQSxLQUFNO0FBQUEsY0FFdEIsS0FBVyxHQUFPLEdBQUs7QUFFdkIsd0JBQW9CLE9BQUssTUFBVyxHQUFTLE9BQUEsRUFBUyxLQUFBLEVBQU87QUFBQSxjQUUzRCxLQUFhLEdBQVMsUUFDMUIsS0FBYSxHQUFTLFFBRWxCLEtBQWUsT0FBZSxLQUFXLEtBQWE7QUFBQSxpQkFFeEQsR0FBUSxJQUFJLEdBQWEsR0FBQSxJQUFhLEdBQUEsSUFFMUMsSUFBUSxJQUFJLEdBQWEsR0FBQSxHQUVsQixFQUNMLE1BQUEsT0FDQSxPQUFPLEVBQUMsVUFBVSxHQUFhLEtBQUssWUFBWSxHQUFhLFdBQUEsRUFBQTtRQUFBLENBQUE7TUFBQTtBQW1EbkUsa0JBQW9DLElBQU8sSUFBQTtBQUFBLFlBQ2xDLEtBQXlCLEdBQXpCLE1BQU0sS0FBbUIsR0FBbkIsTUFBTSxLQUFhLEdBQWI7QUFVbkIsV0FBTSxVQUFVLE1BQVEsU0FBVSxJQUFBO0FBQUEsY0FFbkIsQUFBVCxPQUFTLFdBQXlCLEFBQWQsS0FBSyxTQUFTLFdBQVcsT0FBUyxLQUFLO0FBQzdELG1CQUFPLENBQUE7QUFFVCxlQUFPLEtBQUs7QUFBQSxjQUVOLEtBQVcsS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGNBQUEsQUFFdEIsT0FGc0I7QUFHL0Isa0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHdCQUFBLEVBQUEsT0FBNkIsSUFBQSxzQkFBQSxDQUFBO0FBQUEsaUJBM1Q5QyxTQUFvQyxJQUFNLElBQVcsSUFBQTtBQUFBLGdCQUV0QyxBQUFULE9BQVMsU0FBUztBQUFBLGtCQUNQLEFBQVQsT0FBUztBQUFjLHVCQUFPLE9BQU8sS0FBSyxHQUFTLFVBQUE7QUFBQSxrQkFFOUIsQUFBQSxPQUFkLE1BQWM7QUFBVSx1QkFBTyxPQUFPLEtBQUssR0FBUyxHQUFBO1lBQUE7QUFBQSxnQkFJM0QsS0FBWSxvQkFBSTtBQUFBLG1CQUVULEFBQVQsT0FBUyxnQkFDTyxDQUFkLE9BQWMsU0FDaEIsR0FBTSxJQUFXLEdBQUEsRUFBQSxHQUVELEFBQWQsT0FBYyxRQUNoQixHQUFNLElBQVcsR0FBUyxHQUFBLElBSWpCLEFBQVQsT0FBUyxjQUNYLEdBQU0sSUFBVyxHQUFTLFVBQUEsR0FHckIsRUFBSyxHQUFVLE9BQUEsR0FBVSxHQUFVLElBQUE7VUFBQSxFQXdTN0IsQUFBVCxPQUFTLFVBQVUsS0FBSyxPQUFPLElBQy9CLElBQ0EsRUFBQTtRQUFBO01BQUE7QUFXTixrQkFBK0IsSUFBTyxJQUFBO0FBQUEsWUFDN0IsS0FBeUIsR0FBekIsTUFBTSxLQUFtQixHQUFuQixNQUFNLEtBQWEsR0FBYixXQUViLEtBQWMsWUFBWSxHQUFLLEdBQUcsWUFBQSxJQUFnQixHQUFLLE1BQU0sR0FBQSxFQUFJO0FBV3ZFLFdBQU0sVUFBVSxNQUFlLFNBQVUsSUFBTSxJQUFBO0FBQUEsY0FFaEMsQUFBVCxPQUFTLFdBQXlCLEFBQWQsS0FBSyxTQUFTLFdBQVcsT0FBUyxLQUFLLE1BQUE7QUFFL0QsaUJBQU8sS0FBSztBQUFBLGdCQUVOLEtBQVcsS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGdCQUFBLEFBRXRCLE9BRnNCO0FBRy9CLG9CQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSx3QkFBQSxFQUFBLE9BQW9DLElBQUEsc0JBQUEsQ0FBQTtBQUFBLGFBNU9yRCxTQUFnQyxJQUFNLElBQVcsSUFBVSxJQUFBO0FBQUEsa0JBRTVDLEFBQVQsT0FBUyxTQUFTO0FBQUEsb0JBQ1AsQUFBVCxPQUFTO0FBQ1gseUJBQU8sR0FBZ0IsSUFBVSxHQUFTLFlBQVksRUFBQTtBQUFBLG9CQUUvQixBQUFBLE9BQWQsTUFBYztBQUN2Qix5QkFBTyxHQUFnQixJQUFVLEdBQVMsS0FBWSxFQUFBO2NBQUE7QUFBQSxrQkFJcEQsS0FBVSxvQkFBSTtBQUVQLGNBQVQsT0FBUyxnQkFDTyxDQUFkLE9BQWMsU0FDaEIsR0FBb0IsSUFBUyxJQUFVLEdBQUEsSUFBYSxFQUFBLEdBRXBDLEFBQWQsT0FBYyxRQUNoQixHQUFvQixJQUFTLElBQVUsR0FBUyxLQUFLLEVBQUEsSUFJNUMsQUFBVCxPQUFTLGNBQ1gsR0FBb0IsSUFBUyxJQUFVLEdBQVMsWUFBWSxFQUFBO1lBQUEsRUEwTmpELEFBQVQsT0FBUyxVQUFVLEtBQUssT0FBTyxJQUMvQixJQUNBLElBQ0EsRUFBQTtVQUFBO1FBQUE7QUFBQSxZQVlFLEtBQVUsUUFBUSxHQUFLLEdBQUcsWUFBQSxJQUFnQixHQUFLLE1BQU0sQ0FBQTtBQUUzRCxXQUFNLFVBQVUsTUFBVyxTQUFVLElBQU0sSUFBQTtBQUFBLGNBRW5DLEtBQVMsQ0FBQTtBQUFBLGlCQUFBLEtBRVYsSUFBYSxJQUFNLFNBQUMsSUFBRyxJQUFBO0FBQzFCLGVBQU8sS0FBSyxHQUFTLElBQUcsRUFBQSxDQUFBO1VBQUEsQ0FBQSxHQUduQjtRQUFBO0FBQUEsWUFXSCxLQUFhLFdBQVcsR0FBSyxHQUFHLFlBQUEsSUFBZ0IsR0FBSyxNQUFNLENBQUE7QUFFakUsV0FBTSxVQUFVLE1BQWMsU0FBVSxJQUFNLElBQUE7QUFBQSxjQUN0QyxLQUFTLENBQUE7QUFBQSxpQkFBQSxLQUVWLElBQWEsSUFBTSxTQUFDLElBQUcsSUFBQTtBQUN0QixlQUFTLElBQUcsRUFBQSxLQUFJLEdBQU8sS0FBSyxFQUFBO1VBQUEsQ0FBQSxHQUczQjtRQUFBO0FBQUEsWUFXSCxLQUFhLFdBQVcsR0FBSyxHQUFHLFlBQUEsSUFBZ0IsR0FBSyxNQUFNLENBQUE7QUFFakUsV0FBTSxVQUFVLE1BQWMsU0FBVSxJQUFNLElBQVUsSUFBQTtBQUFBLGNBQ2xELFVBQVUsU0FBUztBQUNyQixrQkFBTSxJQUFJLEVBQUEsU0FBQSxPQUNDLElBQUEsa01BQUEsQ0FBQTtBQUFBLGNBR1QsS0FBYztBQUFBLGlCQUFBLEtBRWIsSUFBYSxJQUFNLFNBQUMsSUFBRyxJQUFBO0FBQzFCLGlCQUFjLEdBQVMsSUFBYSxJQUFHLEVBQUE7VUFBQSxDQUFBLEdBR2xDO1FBQUE7TUFBQTtBQVdYLGtCQUE0QixJQUFPLElBQUE7QUFBQSxZQUMxQixLQUF5QixHQUF6QixNQUFNLEtBQW1CLEdBQW5CLE1BQU0sS0FBYSxHQUFiLFdBRWIsS0FBc0IsR0FBSyxHQUFHLFlBQUEsSUFBZ0IsR0FBSyxNQUFNLEdBQUEsRUFBSSxHQUU3RCxLQUFXLFNBQVM7QUFXMUIsV0FBTSxVQUFVLE1BQVksU0FBVSxJQUFNLElBQUE7QUFBQSxjQUU3QixBQUFULE9BQVMsV0FBeUIsQUFBZCxLQUFLLFNBQVMsV0FBVyxPQUFTLEtBQUssTUFBQTtBQUUvRCxpQkFBTyxLQUFLO0FBQUEsZ0JBRU4sS0FBVyxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBQUEsZ0JBQUEsQUFFdEIsT0FGc0I7QUFHL0Isb0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHdCQUFBLEVBQUEsT0FBaUMsSUFBQSxzQkFBQSxDQUFBO0FBQUEsbUJBalVsRCxTQUFzQixJQUFNLElBQVcsSUFBVSxJQUFBO0FBQUEsa0JBRWxDLEFBQVQsT0FBUyxTQUFTO0FBQUEsb0JBQ1AsQUFBVCxPQUFTO0FBQ1gseUJBQU8sR0FBYSxJQUFVLEdBQVMsWUFBWSxFQUFBO0FBQUEsb0JBRTVCLEFBQUEsT0FBZCxNQUFjO0FBQ3ZCLHlCQUFPLEdBQWEsSUFBVSxHQUFTLEtBQVksRUFBQTtjQUFBO0FBQUEsa0JBTW5ELElBRkUsS0FBVSxvQkFBSTtBQUFBLGtCQUlQLEFBQVQsT0FBUyxjQUFjO0FBQUEsb0JBQ1AsQUFBZCxPQUFjLFNBQ2hCLE1BQVEsR0FBaUIsSUFBUyxJQUFVLEdBQUEsSUFBYSxFQUFBO0FBRTlDLHlCQUFPO0FBQUEsb0JBRUYsQUFBZCxPQUFjLFFBQ2hCLE1BQVEsR0FBaUIsSUFBUyxJQUFVLEdBQVMsS0FBSyxFQUFBO0FBRS9DLHlCQUFPO2NBQUE7QUFBQSxrQkFJVCxBQUFULE9BQVMsY0FDWCxNQUFRLEdBQWlCLElBQVMsSUFBVSxHQUFTLFlBQVksRUFBQTtBQUV0RCx1QkFBTztZQUFBLEVBdVNQLEFBQVQsT0FBUyxVQUFVLEtBQUssT0FBTyxJQUMvQixJQUNBLElBQ0EsRUFBQTtVQUFBO1FBQUE7QUFBQSxZQWNFLEtBQVcsU0FBUztBQUUxQixXQUFNLFVBQVUsTUFBWSxTQUFVLElBQU0sSUFBQTtBQUFBLGlCQUFBLENBQUEsQ0FDNUIsS0FBSyxJQUFVLElBQU0sRUFBQTtRQUFBO0FBQUEsWUFpQi9CLEtBQVksVUFBVTtBQUU1QixXQUFNLFVBQVUsTUFBYSxTQUFVLElBQU0sSUFBQTtBQUFBLGlCQUFBLENBQzdCLEtBQUssSUFBVSxJQUFNLFNBQUMsSUFBRyxJQUFBO0FBQUEsbUJBQUEsQ0FDN0IsR0FBUyxJQUFHLEVBQUE7VUFBQSxDQUFBO1FBQUE7TUFBQTtBQWUxQixrQkFBdUMsSUFBTyxJQUFBO0FBQUEsWUFDckMsS0FBeUIsR0FBekIsTUFBTSxLQUFtQixHQUFuQixNQUFNLEtBQWEsR0FBYixXQUViLEtBQWUsR0FBSyxNQUFNLEdBQUEsRUFBSSxJQUFLO0FBVXpDLFdBQU0sVUFBVSxNQUFnQixTQUFVLElBQUE7QUFBQSxjQUUzQixBQUFULE9BQVMsV0FBeUIsQUFBZCxLQUFLLFNBQVMsV0FBVyxPQUFTLEtBQUs7QUFDN0QsbUJBQU8sRUFBUyxNQUFBO0FBRWxCLGVBQU8sS0FBSztBQUFBLGNBRU4sS0FBVyxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBQUEsY0FBQSxBQUV0QixPQUZzQjtBQUcvQixrQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsd0JBQUEsRUFBQSxPQUFxQyxJQUFBLHNCQUFBLENBQUE7QUFBQSxpQkFuVHRELFNBQWdDLElBQU0sSUFBVyxJQUFBO0FBQUEsZ0JBRWxDLEFBQVQsT0FBUyxTQUFTO0FBQUEsa0JBQ1AsQUFBVCxPQUFTO0FBQ1gsdUJBQU8sR0FBcUIsSUFBVSxHQUFTLFVBQUE7QUFBQSxrQkFFeEIsQUFBQSxPQUFkLE1BQWM7QUFDdkIsdUJBQU8sR0FBcUIsSUFBVSxHQUFTLEdBQUE7WUFBQTtBQUFBLGdCQUcvQyxLQUFXLEVBQVMsTUFBQSxHQUdsQixLQUFVLG9CQUFJO0FBQUEsbUJBRVAsQUFBVCxPQUFTLGdCQUNPLENBQWQsT0FBYyxTQUNoQixNQUFXLEdBQ1QsSUFDQSxHQUE0QixJQUFTLElBQVUsR0FBQSxFQUFBLENBQUEsSUFHakMsQUFBZCxPQUFjLFFBQ2hCLE1BQVcsR0FDVCxJQUNBLEdBQTRCLElBQVMsSUFBVSxHQUFTLEdBQUEsQ0FBQSxLQUtqRCxBQUFULE9BQVMsY0FDWCxNQUFXLEdBQ1QsSUFDQSxHQUE0QixJQUFTLElBQVUsR0FBUyxVQUFBLENBQUEsSUFJckQ7VUFBQSxFQW1STSxBQUFULE9BQVMsVUFBVSxLQUFLLE9BQU8sSUFDL0IsSUFDQSxFQUFBO1FBQUE7TUFBQTtBQ3ZtQkMsa0JBQ0wsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUFBO0FBQUEsaUJBTUksSUFBTSxJQUFZLElBQVUsSUFBSyxJQUFVLElBQVksSUFKckQsS0FBVyxHQUFNLE9BQU8sT0FBQSxHQUV4QixLQUFPLEdBQU0sTUFBQSxBQUlWLE1BQU8sR0FBUyxLQUFBLEdBQWMsU0FKcEIsUUFJb0M7QUFBQSxjQUNqRCxLQUFBO0FBQVcsY0FFZixLQUFhLEdBQUssT0FFTCxBQUFULE9BQVM7QUFBVCxpQkFHRyxNQUZMLEtBQU0sR0FBVztBQUFBLGtCQUlmLEtBREEsTUFBVyxHQUFJLEtBQ08sUUFFdEIsS0FBQSxNQUNBLEtBQWMsR0FDWixHQUFXLEtBQ1gsR0FBVyxLQUNYLEdBQVcsWUFDWCxHQUFXLFlBQ1gsR0FBUyxLQUNULEdBQVMsWUFDVCxHQUFTLFVBQUEsR0FHUCxNQUFhO0FBQWEsdUJBQU87O0FBQUEsY0FJNUIsQUFBVCxPQUFTO0FBQVQsaUJBR0csTUFGTCxLQUFNLEdBQVc7QUFBQSxrQkFBQSxDQUdYLE9BQWMsR0FBVyxNQUFNLE9BR25DLE9BREEsTUFBVyxHQUFJLEtBQ08sUUFFUCxRQUFRLE1BQVUsTUFBYSxHQUFTLFNBRXZELEtBQUEsTUFDQSxLQUFjLEdBQ1osR0FBVyxLQUNYLEdBQVcsS0FDWCxHQUFXLFlBQ1gsR0FBVyxZQUNYLEdBQVMsS0FDVCxHQUFTLFlBQ1QsR0FBUyxVQUFBLEdBR1AsTUFBYTtBQUFhLHVCQUFPOztBQUFBLGNBSXJDLE1BQUEsQ0FBc0IsTUFDeEIsTUFBYyxHQUNaLEdBQVcsS0FDWCxNQUNBLEdBQVcsWUFDWCxNQUNBLE1BQ0EsTUFDQSxJQUFBLEdBR0UsTUFBYTtBQUFhLG1CQUFPO1FBQUE7TUFBQTtBQWdCcEMsa0JBQ0wsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUFBO0FBQUEsaUJBTUksSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBWkUsS0FBVyxHQUFNLE9BQU8sT0FBQSxHQUV4QixLQUFPLEdBQU0sTUFBQSxBQVlWLE1BQU8sR0FBUyxLQUFBLEdBQWMsU0FacEIsUUFZb0M7QUFBQSxjQUNqRCxLQUFBO0FBQVcsY0FFZixLQUFhLEdBQUssT0FFTCxBQUFULE9BQVM7QUFBVCxpQkFHRyxNQUZMLEtBQU0sR0FBVztBQUFBLG1CQUdmLEtBQVksR0FBSSxJQUFVLE9BQUEsR0FBQSxBQUd0QixNQUFnQixHQUFVLEtBQUEsR0FBdUIsU0FIM0I7QUFHMkIsb0JBR25ELEtBREEsTUFBVyxHQUFjLE9BQ0gsUUFFdEIsS0FBQSxNQUNBLEtBQWMsR0FDWixHQUFXLEtBQ1gsR0FBVyxLQUNYLEdBQVcsWUFDWCxHQUFXLFlBQ1gsR0FBUyxLQUNULEdBQVMsWUFDVCxHQUFTLFVBQUEsR0FHUCxNQUFhO0FBQWEseUJBQU87O0FBQUEsY0FLOUIsQUFBVCxPQUFTO0FBQVQsaUJBR0csTUFGTCxLQUFNLEdBQVc7QUFBQSxrQkFBQSxDQUdYLE9BQWMsR0FBVyxNQUFNO0FBQUEscUJBRW5DLEtBQVksR0FBSSxJQUFVLE9BQUEsR0FBQSxBQUd0QixNQUFnQixHQUFVLEtBQUEsR0FBdUIsU0FIM0I7QUFHMkIsc0JBR25ELE1BREEsTUFBVyxHQUFjLE9BQ0gsUUFFUCxRQUFRLE1BQVUsTUFBYSxHQUFTLFNBRXZELEtBQUEsTUFDQSxLQUFjLEdBQ1osR0FBVyxLQUNYLEdBQVcsS0FDWCxHQUFXLFlBQ1gsR0FBVyxZQUNYLEdBQVMsS0FDVCxHQUFTLFlBQ1QsR0FBUyxVQUFBLEdBR1AsTUFBYTtBQUFhLDJCQUFPOzs7QUFBQSxjQUt2QyxNQUFBLENBQXNCLE1BQ3hCLE1BQWMsR0FDWixHQUFXLEtBQ1gsTUFDQSxHQUFXLFlBQ1gsTUFDQSxNQUNBLE1BQ0EsSUFBQSxHQUdFLE1BQWE7QUFBYSxtQkFBTztRQUFBO01BQUE7QUN0THBDLGtCQUF1QixJQUFLLElBQUE7QUFBQSxZQUMzQixLQUFhLEVBQUMsS0FBQSxHQUFBO0FBQUEsZUFFZixFQUFRLEdBQUssVUFBQSxLQUNoQixJQUFXLGFBQWEsR0FBTyxDQUFBLEdBQUksR0FBSyxVQUFBLElBRW5DO01BQUE7QUFVRixrQkFBdUIsSUFBSyxJQUFBO0FBQUEsWUFDM0IsS0FBYSxFQUNqQixLQUFBLElBQ0EsUUFBUSxHQUFLLE9BQU8sS0FDcEIsUUFBUSxHQUFLLE9BQU8sSUFBQTtBQUFBLGVBR2pCLEVBQVEsR0FBSyxVQUFBLEtBQ2hCLElBQVcsYUFBYSxHQUFPLENBQUEsR0FBSSxHQUFLLFVBQUEsSUFFdEMsR0FBSyxjQUFZLElBQVcsYUFBQSxPQUV6QjtNQUFBO0FBU0Ysa0JBQWdDLElBQUE7QUFBQSxlQUNoQyxFQUFjLEVBQUEsSUFFYixTQUFTLEtBQUEsQ0FHYixpQkFBZ0IsT0FDZCxFQUFjLEdBQU0sVUFBQSxLQUFvQyxBQUFyQixHQUFNLGVBQWUsT0FJckQsT0FGRSx1QkFOcUIsV0FGSTtNQUFBO0FBbUI3QixrQkFBZ0MsSUFBQTtBQUFBLGVBQ2hDLEVBQWMsRUFBQSxJQUViLFlBQVksS0FFWixZQUFZLEtBQUEsQ0FHaEIsaUJBQWdCLE9BQ2QsRUFBYyxHQUFNLFVBQUEsS0FBb0MsQUFBckIsR0FBTSxlQUFlLE9BSXhELGdCQUFnQixNQUFxQyxBQUFBLE9BQXJCLEdBQU0sY0FBZSxZQUNoRCx1QkFFRixPQUxFLHVCQU53QixjQUZBLGNBRkM7TUFBQTtBQ3RCcEMsVWhCcUdNLElnQnJHQSxLaEJxR0EsTUFBc0MsTUFBbEMsS0FBSyxNQUFzQixNQUFoQixLQUFLLE9BQUEsQ0FBQSxHQUVqQixXQUFBO0FBQUEsZUFDRTtNQUFBLElnQm5HTCxLQUFRLG9CQUFJLElBQUksQ0FBQyxZQUFZLGNBQWMsT0FBQSxDQUFBLEdBRTNDLEtBQWdCLG9CQUFJLElBQUksQ0FDNUIsVUFDQSxXQUNBLGdCQUNBLGVBQUEsQ0FBQSxHQWtDSSxLQUFXLEVBQ2YsZ0JBQUEsTUFDQSxPQUFBLE9BQ0EsTUFBTSxRQUFBO0FBZ0RSLGtCQUF1QixJQUFPLElBQU0sSUFBQTtBQUFBLFlBQzVCLEtBQU8sSUFBSSxHQUFNLGNBQWMsSUFBTSxFQUFBO0FBQUEsZUFFM0MsR0FBTSxPQUFPLElBQUksSUFBTSxFQUFBLEdBRXZCLEdBQU0sS0FBSyxhQUFhLEVBQ3RCLEtBQUssSUFDTCxZQUFBLEdBQUEsQ0FBQSxHQUdLO01BQUE7QUFxQlQsa0JBQ0UsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUFBO0FBQUEsWUFBQSxDQUdLLE1BQTZCLEFBQWYsR0FBTSxTQUFTO0FBQ2hDLGdCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSw0R0FBQSxDQUFBO0FBQUEsWUFHVCxNQUE2QixBQUFmLEdBQU0sU0FBUztBQUMvQixnQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsMEdBQUEsQ0FBQTtBQUFBLFlBR1QsTUFBQSxDQUFlLEVBQWMsRUFBQTtBQUMvQixnQkFBTSxJQUFJLEVBQUEsU0FBQSxPQUNDLElBQUEscURBQUEsRUFBQSxPQUEwRCxJQUFBLEdBQUEsQ0FBQTtBQUFBLFlBSXZFLEtBQVMsS0FBSyxJQUNkLEtBQVMsS0FBSyxJQUNkLEtBQWEsTUFBYyxDQUFBLEdBQUEsQ0FFdEIsR0FBTSxrQkFBa0IsT0FBVztBQUN0QyxnQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsbUNBQUEsRUFBQSxPQUF3QyxJQUFBLG1HQUFBLENBQUE7QUFBQSxZQUcvQyxLQUFhLEdBQU0sT0FBTyxJQUFJLEVBQUEsR0FDbEMsS0FBYSxHQUFNLE9BQU8sSUFBSSxFQUFBO0FBQUEsWUFBQSxDQUUzQjtBQUNILGdCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSxpQkFBQSxFQUFBLE9BQXNCLElBQUEsY0FBQSxDQUFBO0FBQUEsWUFBQSxDQUc5QjtBQUNILGdCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSxpQkFBQSxFQUFBLE9BQXNCLElBQUEsY0FBQSxDQUFBO0FBQUEsWUFJN0IsS0FBWSxFQUNoQixLQUFLLE1BQ0wsWUFBQSxJQUNBLFFBQUEsSUFDQSxRQUFBLElBQ0EsWUFBQSxHQUFBO0FBQUEsWUFHRTtBQUdGLGVBQU8sR0FBTSxrQkFBQTtpQkFHYixLQUFPLEtBQUssSUFHUixHQUFNLE9BQU8sSUFBSSxFQUFBO0FBQ25CLGdCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSxTQUFBLEVBQUEsT0FBYyxJQUFBLHFDQUFBLENBQUE7QUFBQSxZQUFBLENBTTFCLEdBQU0sU0FDTixNQUFBLEFBQ1UsR0FBVyxXQUFXLFFBRGhDLFNBQ2dDLEFBQ3RCLEdBQVcsSUFBSSxRQURPO0FBQ1AsZ0JBRXBCLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSxxQkFBQSxFQUFBLE9BQTBCLElBQUEsUUFBQSxFQUFBLE9BQWUsSUFBQSw4SUFBQSxDQUFBO0FBQUEsWUFLaEQsS0FBVyxJQUFJLEVBQ25CLElBQ0EsSUFDQSxJQUNBLElBQ0EsRUFBQTtBQUFBLGVBSUYsR0FBTSxPQUFPLElBQUksSUFBTSxFQUFBLEdBR25CLE9BQVcsS0FDVCxLQUNGLElBQVcsdUJBQ1gsR0FBTSw4QkFFTixJQUFXLHFCQUNYLEdBQU0sNEJBR0osS0FDRixJQUFXLG9CQUNYLEdBQVcsc0JBRVgsSUFBVyxhQUNYLEdBQVcsYUFLZixFQUNFLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLEVBQUEsR0FHRSxLQUFZLEdBQU0sb0JBQ2pCLEdBQU0saUJBR1gsR0FBVSxNQUFNLElBRWhCLEdBQU0sS0FBSyxhQUFhLEVBQUEsR0FFakI7TUFBQTtBQXNCVCxrQkFDRSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFBQTtBQUFBLFlBQUEsQ0FHSyxNQUE2QixBQUFmLEdBQU0sU0FBUztBQUNoQyxnQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsb0lBQUEsQ0FBQTtBQUFBLFlBR1QsTUFBNkIsQUFBZixHQUFNLFNBQVM7QUFDL0IsZ0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLGtJQUFBLENBQUE7QUFBQSxZQUdUO0FBQUEsY0FDRSxJQUFBO0FBQUEsZ0JBQ3dCLEFBQUEsT0FBZixNQUFlO0FBQ3hCLG9CQUFNLElBQUksRUFBQSxTQUFBLE9BQ0MsSUFBQSw0REFBQSxFQUFBLE9BQWlFLElBQUEsR0FBQSxDQUFBO1VBQUEsV0FBQSxDQUd6RSxFQUFjLEVBQUE7QUFDakIsa0JBQU0sSUFBSSxFQUFBLFNBQUEsT0FDQyxJQUFBLHFEQUFBLEVBQUEsT0FBMEQsSUFBQSxHQUFBLENBQUE7O0FBQUEsWUFTdkU7QUFBQSxZQUhKLEtBQVMsS0FBSyxJQUNkLEtBQVMsS0FBSyxJQUlWLE1BQ0YsTUFBVSxJQUNWLEtBQUEsU0FBYSxDQUdWLEdBQU0sa0JBQWtCLE9BQVc7QUFDdEMsZ0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLG1DQUFBLEVBQUEsT0FBd0MsSUFBQSxtR0FBQSxDQUFBO0FBQUEsWUFLakQsSUFHQSxJQUxBLEtBQWEsR0FBTSxPQUFPLElBQUksRUFBQSxHQUM5QixLQUFhLEdBQU0sT0FBTyxJQUFJLEVBQUE7QUFBQSxZQUFBLENBTTdCLE1BQ0gsTUFBVyxHQUFNLE9BQU8sSUFBSSxFQUFBLElBRWQ7QUFBQSxjQUlWLEdBQVMsT0FBTyxRQUFRLE1BQ3hCLEdBQVMsT0FBTyxRQUFRLE1BQ3ZCLE1BQ0UsSUFBUyxPQUFPLFFBQVEsTUFBVSxHQUFTLE9BQU8sUUFBUTtBQUFBLGtCQUV2RCxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEseURBQUEsRUFBQSxPQUE4RCxJQUFBLGVBQUEsRUFBQSxPQUFvQixJQUFBLGNBQUEsRUFBQSxPQUFxQixJQUFBLGlCQUFBLEVBQUEsT0FBd0IsR0FBUyxPQUFPLEtBQUEsTUFBQSxFQUFBLE9BQVUsR0FBUyxPQUFPLEtBQUEsS0FBQSxDQUFBO0FBSXRMLGVBQTBCO1FBQUE7QUFBQSxZQUt6QixNQUE0QixHQUFNLFNBQUEsQ0FBUyxNQUM5QyxNQUEwQixLQUN0QixHQUFXLFdBQVcsTUFDdEIsR0FBVyxJQUFJLE1BSWpCLElBQXlCO0FBQUEsY0FDckIsS0FBTyxDQUFDLEdBQXdCLEtBQUEsT0FBSyxPQUFPLEtBQU87QUFBQSxjQUdyRCxLQUFBLENBQWEsS0FBQSxDQUFXO0FBQVksbUJBQU87QUFBQSxjQUczQyxJQUFXO0FBQUEsZ0JBQ1AsS0FBZ0IsR0FBd0I7QUFDOUMsZUFBd0IsYUFBYSxHQUFRLEVBQUEsR0FFN0MsR0FBTSxLQUFLLHlCQUF5QixFQUNsQyxNQUFNLFdBQ04sS0FBSyxHQUF3QixLQUM3QixZQUFZLEdBQXdCLFdBQUEsQ0FBQTtVQUFBO0FBTXRDLGVBQU8sR0FBd0IsWUFBWSxFQUFBLEdBRTNDLEdBQU0sS0FBSyx5QkFBeUIsRUFDbEMsTUFBTSxTQUNOLEtBQUssR0FBd0IsS0FDN0IsWUFBWSxHQUF3QixZQUNwQyxNQUFNLEdBQUEsQ0FBQTtBQUFBLGlCQUlIO1FBQUE7QUFHVCxhQUFhLE1BQWMsQ0FBQSxHQUV2QixNQUFhLE1BQVMsTUFBYSxHQUFRLEVBQUE7QUFBQSxZQUd6QyxLQUFZLEVBQ2hCLEtBQUssTUFDTCxZQUFBLElBQ0EsUUFBQSxJQUNBLFFBQUEsSUFDQSxZQUFBLEdBQUE7QUFBQSxZQUdFO0FBR0YsZUFBTyxHQUFNLGtCQUFBO2lCQUdiLEtBQU8sS0FBSyxJQUdSLEdBQU0sT0FBTyxJQUFJLEVBQUE7QUFDbkIsZ0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLFNBQUEsRUFBQSxPQUFjLElBQUEscUNBQUEsQ0FBQTtBQUFBLFlBSXpCLEtBQUEsT0FDQSxLQUFBO0FBQWlCLGVBRWhCLE1BQ0gsTUFBYSxHQUFjLElBQU8sSUFBUSxDQUFBLENBQUEsR0FDMUMsS0FBQSxNQUVJLE9BQVcsTUFDYixNQUFhLElBQ2IsS0FBQSxRQUdDLE1BQ0gsTUFBYSxHQUFjLElBQU8sSUFBUSxDQUFBLENBQUEsR0FDMUMsS0FBQSxPQUlGLEtBQVcsSUFBSSxFQUFTLElBQVksSUFBTSxJQUFZLElBQVksRUFBQSxHQUdsRSxHQUFNLE9BQU8sSUFBSSxJQUFNLEVBQUEsR0FHbkIsT0FBVyxLQUNULEtBQ0YsSUFBVyx1QkFDWCxHQUFNLDhCQUVOLElBQVcscUJBQ1gsR0FBTSw0QkFHSixLQUNGLElBQVcsb0JBQ1gsR0FBVyxzQkFFWCxJQUFXLGFBQ1gsR0FBVyxhQUtmLEVBQ0UsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsRUFBQSxHQUdFLEtBQVksR0FBTSxvQkFDakIsR0FBTSxpQkFHWCxHQUFVLE1BQU0sSUFFaEIsR0FBTSxLQUFLLGFBQWEsRUFBQSxHQUVqQixDQUFDLElBQUEsTUFBWSxJQUFnQixFQUFBO01BQUE7QUFBQSxVQWVqQixNQUFBLFNBQUEsSUFBQTtBQUFBLG9CQUNQLElBQUE7QUFBQSxjQUFBO0FBQUEsY0FBQSxLQUFBLEdBQUEsS0FBQSxJQUFBLEtBQUEsTUFPbUIsQUFBQSxPQUg3QixNQUFVLEdBQU8sQ0FBQSxHQUFJLElBQVUsRUFBQSxHQUdaLFNBQVU7QUFDM0Isa0JBQU0sSUFBSSxFQUFBLDJFQUFBLE9BQ21FLEdBQVEsT0FBQSxJQUFBLENBQUE7QUFBQSxjQUFBLENBR2xGLEdBQU0sSUFBSSxHQUFRLElBQUE7QUFDckIsa0JBQU0sSUFBSSxFQUFBLDJHQUFBLE9BQ21HLEdBQVEsTUFBQSxJQUFBLENBQUE7QUFBQSxjQUdqRixBQUFBLE9BQTNCLEdBQVEsa0JBQW1CO0FBQ3BDLGtCQUFNLElBQUksRUFBQSxvRkFBQSxPQUM0RSxHQUFRLGdCQUFBLElBQUEsQ0FBQTtBQUFBLGNBTTFGLEtBQ2EsQUFBakIsR0FBUSxTQUFTLFVBQ2IsSUFDaUIsQUFBakIsR0FBUSxTQUFTLGFBQ2pCLElBQ0E7QUFFTixZQUFBLEVBQUEsRUFBQSxHQUFzQixpQkFBaUIsRUFBQTtBQUFBLGNBYWpDLEtBQWEsR0FBQSxHQUNmLEtBQVM7QUFBQSxpQkFhYixFQUFBLEVBQUEsRUFBQSxHQUFzQixlQUFlLENBQUEsQ0FBQSxHQUNyQyxFQUFBLEVBQUEsRUFBQSxHQUFzQixVQUFVLG9CQUFJLEtBQUEsR0FDcEMsRUFBQSxFQUFBLEVBQUEsR0FBc0IsVUFBVSxvQkFBSSxLQUFBLEdBQ3BDLEVBQUEsRUFBQSxFQUFBLEdBQXNCLGlCQUFpQixDQUFBLEdBQ3ZDLEVBQUEsRUFBQSxFQUFBLEdBQXNCLG1CQUFtQixDQUFBLEdBQ3pDLEVBQUEsRUFBQSxFQUFBLEdBQXNCLDBCQUEwQixDQUFBLEdBQ2hELEVBQUEsRUFBQSxFQUFBLEdBQXNCLDRCQUE0QixDQUFBLEdBQ2xELEVBQUEsRUFBQSxFQUFBLEdBQXNCLHFCQWxCRyxXQUFBO0FBQUEsZ0JBQ25CO0FBQUEsZUFBQTtBQUdGLG1CQUFtQixVQUFVLEtBQWEsTUFBTTtZQUFBLFNBQ3pDLEdBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxtQkFFbEI7VUFBQSxDQUFBLEdBY1QsRUFBQSxFQUFBLEVBQUEsR0FBc0IsWUFBWSxFQUFBLEdBR2xDLEdBQWMsUUFBUSxTQUFBLElBQUE7QUFBQSxtQkFBUSxFQUFBLEVBQUEsRUFBQSxHQUFzQixJQUFNLEdBQUssR0FBQTtVQUFBLENBQUEsR0FHL0QsRUFBQSxFQUFBLEVBQUEsR0FBdUIsU0FBUyxXQUFBO0FBQUEsbUJBQU0sR0FBSyxPQUFPO1VBQUEsQ0FBQSxHQUNsRCxFQUFBLEVBQUEsRUFBQSxHQUF1QixRQUFRLFdBQUE7QUFBQSxtQkFBTSxHQUFLLE9BQU87VUFBQSxDQUFBLEdBQ2pELEVBQUEsRUFBQSxFQUFBLEdBQXVCLGdCQUFnQixXQUFBO0FBQUEsbUJBQU0sR0FBSztVQUFBLENBQUEsR0FDbEQsRUFBQSxFQUFBLEVBQUEsR0FBdUIsa0JBQWtCLFdBQUE7QUFBQSxtQkFBTSxHQUFLO1VBQUEsQ0FBQSxHQUNwRCxFQUFBLEVBQUEsRUFBQSxHQUVFLGlCQUNBLFdBQUE7QUFBQSxtQkFBTSxHQUFLLHlCQUF5QixHQUFLO1VBQUEsQ0FBQSxHQUUzQyxFQUFBLEVBQUEsRUFBQSxHQUVFLHlCQUNBLFdBQUE7QUFBQSxtQkFBTSxHQUFLO1VBQUEsQ0FBQSxHQUViLEVBQUEsRUFBQSxFQUFBLEdBRUUsMkJBQ0EsV0FBQTtBQUFBLG1CQUFNLEdBQUs7VUFBQSxDQUFBLEdBRWIsRUFBQSxFQUFBLEVBQUEsR0FBdUIsU0FBUyxHQUFLLFNBQVMsS0FBQSxHQUM5QyxFQUFBLEVBQUEsRUFBQSxHQUF1QixRQUFRLEdBQUssU0FBUyxJQUFBLEdBQzdDLEVBQUEsRUFBQSxFQUFBLEdBQXVCLGtCQUFrQixHQUFLLFNBQVMsY0FBQSxHQUN2RCxFQUFBLEVBQUEsRUFBQSxHQUF1QixrQkFBa0IsV0FBQTtBQUFBLG1CQUFNO1VBQUEsQ0FBQSxHQUFBO1FBQUE7QUFBQSxVQUFBLElBQUEsRUFBQTtBQUFBLFlBQUEsS0FBQSxHQUFBO0FBQUEsZUFBQSxHQUdqRCx5QkFBQSxXQUFBO0FBQUEsZUFDTyxnQkFBZ0IsR0FBQSxLQUNoQixrQkFBa0IsR0FBQSxLQUNsQix5QkFBeUIsR0FBQSxLQUN6QiwyQkFBMkI7UUFBQSxHQUFBLEdBY2xDLFVBQUEsU0FBUSxJQUFBO0FBQUEsaUJBQ0MsS0FBSyxPQUFPLElBQUksS0FBSyxFQUFBO1FBQUEsR0FBQSxHQWlCOUIsa0JBQUEsU0FBZ0IsSUFBUSxJQUFBO0FBQUEsY0FFSixBQUFkLEtBQUssU0FBUztBQUFjLG1CQUFBO0FBQU8sY0FFZCxBQUFyQixVQUFVLFdBQVcsR0FBRztBQUFBLGdCQUNwQixLQUFPLEtBQUssSUFFWixLQUFXLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxtQkFBQSxDQUFBLENBRXhCLE1BQUEsQ0FBYSxHQUFTO1VBQUE7QUFDMUIsY0FBeUIsQUFBckIsVUFBVSxXQUFXLEdBQUc7QUFDakMsaUJBQVMsS0FBSyxJQUNkLEtBQVMsS0FBSztBQUFBLGdCQUdSLEtBQVcsS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGdCQUFBLENBRTVCO0FBQVUscUJBQUE7QUFBTyxnQkFHaEIsS0FBUSxHQUFTLElBQUk7QUFBQSxtQkFBQSxDQUFBLENBRXRCLE1BQUEsRUFFRSxLQUFLLFNBQUEsQ0FBQSxDQUFVLEdBQU07VUFBQTtBQUFBLGdCQUd4QixJQUFJLEVBQUEseUNBQUEsT0FDaUMsVUFBVSxRQUFBLHNIQUFBLENBQUE7UUFBQSxHQUFBLEdBa0J2RCxvQkFBQSxTQUFrQixJQUFRLElBQUE7QUFBQSxjQUVOLEFBQWQsS0FBSyxTQUFTO0FBQVksbUJBQUE7QUFBTyxjQUVaLEFBQXJCLFVBQVUsV0FBVyxHQUFHO0FBQUEsZ0JBQ3BCLEtBQU8sS0FBSyxJQUVaLEtBQVcsS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLG1CQUFBLENBQUEsQ0FFeEIsTUFBWSxHQUFTO1VBQUE7QUFDekIsY0FBeUIsQUFBckIsVUFBVSxXQUFXLEdBQUc7QUFDakMsaUJBQVMsS0FBSyxJQUNkLEtBQVMsS0FBSztBQUFBLGdCQUdSLEtBQVcsS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGdCQUFBLENBRTVCO0FBQVUscUJBQUE7QUFBTyxnQkFHaEIsS0FBUSxHQUFTLFdBQVc7QUFBQSxtQkFBQSxDQUFBLENBRTdCLE1BQUEsRUFFRSxLQUFLLFNBQUEsQ0FBQSxDQUFVLEdBQU07VUFBQTtBQUFBLGdCQUd4QixJQUFJLEVBQUEseUNBQUEsT0FDaUMsVUFBVSxRQUFBLHNIQUFBLENBQUE7UUFBQSxHQUFBLEdBa0J2RCxVQUFBLFNBQVEsSUFBUSxJQUFBO0FBQUEsY0FDVyxBQUFyQixVQUFVLFdBQVcsR0FBRztBQUFBLGdCQUNwQixLQUFPLEtBQUs7QUFBQSxtQkFFWCxLQUFLLE9BQU8sSUFBSSxFQUFBO1VBQUE7QUFDbEIsY0FBeUIsQUFBckIsVUFBVSxXQUFXLEdBQUc7QUFDakMsaUJBQVMsS0FBSyxJQUNkLEtBQVMsS0FBSztBQUFBLGdCQUdSLEtBQVcsS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGdCQUFBLENBRTVCO0FBQVUscUJBQUE7QUFBTyxnQkFHbEIsS0FBQSxBQUFlLEdBQVMsUUFBeEIsVUFBK0MsR0FBUyxJQUFJO0FBQUEsbUJBRTNELE1BQ0gsTUFBQSxBQUNTLEdBQVMsZUFEbEIsVUFFRSxHQUFTLFdBQVcsTUFBQSxDQUFBLENBRW5CLE1BQUEsRUFFRSxLQUFLLFNBQUEsQ0FBQSxDQUFVLEdBQU07VUFBQTtBQUFBLGdCQUd4QixJQUFJLEVBQUEsaUNBQUEsT0FDeUIsVUFBVSxRQUFBLHNIQUFBLENBQUE7UUFBQSxHQUFBLEdBZS9DLGVBQUEsU0FBYSxJQUFRLElBQUE7QUFBQSxjQUNELEFBQWQsS0FBSyxTQUFTLGNBQVQ7QUFBQSxnQkFFVCxLQUFTLEtBQUssSUFDZCxLQUFTLEtBQUssSUFFVixLQUFLO0FBQ1Asb0JBQU0sSUFBSSxHQUNSLDBKQUFBO0FBQUEsZ0JBR0UsS0FBYSxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBQUEsZ0JBQUEsQ0FFOUI7QUFDSCxvQkFBTSxJQUFJLEdBQUEsMkNBQUEsT0FDbUMsSUFBQSw2QkFBQSxDQUFBO0FBQUEsZ0JBQUEsQ0FHMUMsS0FBSyxPQUFPLElBQUksRUFBQTtBQUNuQixvQkFBTSxJQUFJLEdBQUEsMkNBQUEsT0FDbUMsSUFBQSw2QkFBQSxDQUFBO0FBQUEsZ0JBR3pDLEtBQVksR0FBVyxPQUFPLEdBQVcsSUFBSSxPQUFBO0FBQVksbUJBRTNELEtBQWlCLEdBQVMsTUFBQTtVQUFBO1FBQUEsR0FBQSxHQWNoQyxpQkFBQSxTQUFlLElBQVEsSUFBQTtBQUFBLGNBQ0gsQUFBZCxLQUFLLFNBQVMsWUFBVDtBQUFBLGdCQUVULEtBQVMsS0FBSyxJQUNkLEtBQVMsS0FBSyxJQUVWLEtBQUs7QUFDUCxvQkFBTSxJQUFJLEdBQ1IsOEpBQUE7QUFBQSxnQkFHRSxLQUFhLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxnQkFBQSxDQUU5QjtBQUNILG9CQUFNLElBQUksR0FBQSw2Q0FBQSxPQUNxQyxJQUFBLDZCQUFBLENBQUE7QUFBQSxnQkFBQSxDQUc1QyxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBQ25CLG9CQUFNLElBQUksR0FBQSw2Q0FBQSxPQUNxQyxJQUFBLDZCQUFBLENBQUE7QUFBQSxnQkFHM0MsS0FDSCxHQUFXLGNBQWMsR0FBVyxXQUFXLE9BQUE7QUFBWSxtQkFFMUQsS0FBaUIsR0FBUyxNQUFBO1VBQUE7UUFBQSxHQUFBLEdBY2hDLE9BQUEsU0FBSyxJQUFRLElBQUE7QUFBQSxjQUNQLEtBQUs7QUFDUCxrQkFBTSxJQUFJLEdBQ1IsMElBQUE7QUFHSixlQUFTLEtBQUssSUFDZCxLQUFTLEtBQUs7QUFBQSxjQUVSLEtBQWEsS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGNBQUEsQ0FFOUI7QUFDSCxrQkFBTSxJQUFJLEdBQUEsbUNBQUEsT0FDMkIsSUFBQSw2QkFBQSxDQUFBO0FBQUEsY0FBQSxDQUdsQyxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBQ25CLGtCQUFNLElBQUksR0FBQSxtQ0FBQSxPQUMyQixJQUFBLDZCQUFBLENBQUE7QUFBQSxjQUdqQyxLQUNILEdBQVcsT0FBTyxHQUFXLElBQUksT0FDakMsR0FBVyxjQUFjLEdBQVcsV0FBVyxPQUFBO0FBQ2hELGNBRUU7QUFBVSxtQkFBTyxHQUFTO1FBQUEsR0FBQSxHQVloQyx1QkFBQSxTQUFxQixJQUFNLElBQUE7QUFDekIsZUFBTyxLQUFLLElBQ1osS0FBVyxLQUFLO0FBQUEsY0FFVixLQUFXLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxjQUFBLENBRTVCO0FBQ0gsa0JBQU0sSUFBSSxHQUFBLG1EQUFBLE9BQzJDLElBQUEsc0JBQUEsQ0FBQTtBQUFBLGlCQUdyQyxBQUFkLEtBQUssU0FBUyxnQkFFWCxPQUFZLEdBQUEsTUFBZSxNQUFZLEdBQVM7UUFBQSxHQUFBLEdBWXpELGtCQUFBLFNBQWdCLElBQU0sSUFBQTtBQUNwQixlQUFPLEtBQUssSUFDWixLQUFXLEtBQUs7QUFBQSxjQUVWLEtBQVcsS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGNBQUEsQ0FFNUI7QUFDSCxrQkFBTSxJQUFJLEdBQUEsOENBQUEsT0FDc0MsSUFBQSxzQkFBQSxDQUFBO0FBQUEsaUJBR2hDLEFBQWQsS0FBSyxTQUFTLGdCQUVYLE1BQVksR0FBUztRQUFBLEdBQUEsR0FZOUIsaUJBQUEsU0FBZSxJQUFNLElBQUE7QUFDbkIsZUFBTyxLQUFLLElBQ1osS0FBVyxLQUFLO0FBQUEsY0FFVixLQUFXLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxjQUFBLENBRTVCO0FBQ0gsa0JBQU0sSUFBSSxHQUFBLDZDQUFBLE9BQ3FDLElBQUEsc0JBQUEsQ0FBQTtBQUFBLGlCQUcvQixBQUFkLEtBQUssU0FBUyxnQkFFWCxNQUFZLEdBQUE7UUFBQSxHQUFBLEdBWXJCLHlCQUFBLFNBQXVCLElBQU0sSUFBQTtBQUMzQixlQUFPLEtBQUssSUFDWixLQUFXLEtBQUs7QUFBQSxjQUVWLEtBQVcsS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGNBQUEsQ0FFNUI7QUFDSCxrQkFBTSxJQUFJLEdBQUEscURBQUEsT0FDNkMsSUFBQSxzQkFBQSxDQUFBO0FBQUEsaUJBR3ZDLEFBQWQsS0FBSyxTQUFTLGNBRVgsTUFBWSxHQUFTO1FBQUEsR0FBQSxHQVk5QixlQUFBLFNBQWEsSUFBTSxJQUFBO0FBQ2pCLGVBQU8sS0FBSyxJQUNaLEtBQVcsS0FBSztBQUFBLGNBRVYsS0FBVyxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBQUEsY0FBQSxDQUU1QjtBQUNILGtCQUFNLElBQUksR0FBQSwyQ0FBQSxPQUNtQyxJQUFBLHNCQUFBLENBQUE7QUFBQSxpQkFHN0IsQUFBZCxLQUFLLFNBQVMsZ0JBQ1osT0FBWSxHQUFBLE1BQWUsTUFBWSxHQUFTLFFBR3BDLEFBQWQsS0FBSyxTQUFTLGNBQ1osTUFBWSxHQUFTO1FBQUEsR0FBQSxHQWU3QixzQkFBQSxTQUFvQixJQUFNLElBQUE7QUFDeEIsZUFBTyxLQUFLLElBQ1osS0FBVyxLQUFLO0FBQUEsY0FFVixLQUFXLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxjQUFBLENBRTVCO0FBQ0gsa0JBQU0sSUFBSSxHQUFBLGtEQUFBLE9BQzBDLElBQUEsc0JBQUEsQ0FBQTtBQUFBLGlCQUdwQyxBQUFkLEtBQUssU0FBUyxnQkFDWixNQUFZLEdBQUEsTUFHQSxBQUFkLEtBQUssU0FBUyxjQUNaLE1BQVksR0FBUztRQUFBLEdBQUEsR0FlN0IsdUJBQUEsU0FBcUIsSUFBTSxJQUFBO0FBQ3pCLGVBQU8sS0FBSyxJQUNaLEtBQVcsS0FBSztBQUFBLGNBRVYsS0FBVyxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBQUEsY0FBQSxDQUU1QjtBQUNILGtCQUFNLElBQUksR0FBQSxtREFBQSxPQUMyQyxJQUFBLHNCQUFBLENBQUE7QUFBQSxpQkFHckMsQUFBZCxLQUFLLFNBQVMsZ0JBQ1osTUFBWSxHQUFTLE9BR1QsQUFBZCxLQUFLLFNBQVMsY0FDWixNQUFZLEdBQVM7UUFBQSxHQUFBLEdBYzdCLFdBQUEsU0FBUyxJQUFBO0FBQ1AsZUFBTyxLQUFLO0FBQUEsY0FFTixLQUFXLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxjQUFBLENBRTVCO0FBQ0gsa0JBQU0sSUFBSSxHQUFBLHVDQUFBLE9BQytCLElBQUEsc0JBQUEsQ0FBQTtBQUFBLGlCQUd6QixBQUFkLEtBQUssU0FBUyxlQUFxQixJQUVoQyxHQUFTLFdBQVcsR0FBUztRQUFBLEdBQUEsR0FXdEMsWUFBQSxTQUFVLElBQUE7QUFDUixlQUFPLEtBQUs7QUFBQSxjQUVOLEtBQVcsS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGNBQUEsQ0FFNUI7QUFDSCxrQkFBTSxJQUFJLEdBQUEsd0NBQUEsT0FDZ0MsSUFBQSxzQkFBQSxDQUFBO0FBQUEsaUJBRzFCLEFBQWQsS0FBSyxTQUFTLGVBQXFCLElBRWhDLEdBQVMsWUFBWSxHQUFTO1FBQUEsR0FBQSxHQVd2QyxpQkFBQSxTQUFlLElBQUE7QUFDYixlQUFPLEtBQUs7QUFBQSxjQUVOLEtBQVcsS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGNBQUEsQ0FFNUI7QUFDSCxrQkFBTSxJQUFJLEdBQUEsNkNBQUEsT0FDcUMsSUFBQSxzQkFBQSxDQUFBO0FBQUEsY0FHL0IsQUFBZCxLQUFLLFNBQVM7QUFBYyxtQkFBTztBQUFBLGNBRWpDLEtBQVEsR0FBUztBQUFBLGlCQUVOLEdBQVMsV0FBVyxLQUNuQixJQUFTLFlBQVk7UUFBQSxHQUFBLEdBYXpDLG1CQUFBLFNBQWlCLElBQUE7QUFDZixlQUFPLEtBQUs7QUFBQSxjQUVOLEtBQVcsS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGNBQUEsQ0FFNUI7QUFDSCxrQkFBTSxJQUFJLEdBQUEsK0NBQUEsT0FDdUMsSUFBQSxzQkFBQSxDQUFBO0FBQUEsY0FHakMsQUFBZCxLQUFLLFNBQVM7QUFBWSxtQkFBTztBQUFBLGNBRS9CLEtBQVEsR0FBUztBQUFBLGlCQUVoQixHQUFTLG1CQUEyQixJQUFSO1FBQUEsR0FBQSxHQVdyQyxTQUFBLFNBQU8sSUFBQTtBQUNMLGVBQU8sS0FBSztBQUFBLGNBRU4sS0FBVyxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBQUEsY0FBQSxDQUU1QjtBQUNILGtCQUFNLElBQUksR0FBQSxxQ0FBQSxPQUM2QixJQUFBLHNCQUFBLENBQUE7QUFBQSxjQUdyQyxLQUFTO0FBQUEsaUJBRUssQUFBZCxLQUFLLFNBQVMsY0FDaEIsT0FBVSxHQUFTLG1CQUFrRCxJQUEvQixHQUFTLHNCQUcvQixBQUFkLEtBQUssU0FBUyxnQkFDaEIsT0FDRSxHQUFTLFdBQVcsR0FBUyxZQUF5QyxJQUE3QixHQUFTLG9CQUcvQztRQUFBLEdBQUEsR0FXVCwyQkFBQSxTQUF5QixJQUFBO0FBQ3ZCLGVBQU8sS0FBSztBQUFBLGNBRU4sS0FBVyxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBQUEsY0FBQSxDQUU1QjtBQUNILGtCQUFNLElBQUksR0FBQSx1REFBQSxPQUMrQyxJQUFBLHNCQUFBLENBQUE7QUFBQSxpQkFHekMsQUFBZCxLQUFLLFNBQVMsZUFBcUIsSUFFaEMsR0FBUztRQUFBLEdBQUEsR0FXbEIsNEJBQUEsU0FBMEIsSUFBQTtBQUN4QixlQUFPLEtBQUs7QUFBQSxjQUVOLEtBQVcsS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGNBQUEsQ0FFNUI7QUFDSCxrQkFBTSxJQUFJLEdBQUEsd0RBQUEsT0FDZ0QsSUFBQSxzQkFBQSxDQUFBO0FBQUEsaUJBRzFDLEFBQWQsS0FBSyxTQUFTLGVBQXFCLElBRWhDLEdBQVM7UUFBQSxHQUFBLEdBV2xCLGlDQUFBLFNBQStCLElBQUE7QUFDN0IsZUFBTyxLQUFLO0FBQUEsY0FFTixLQUFXLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxjQUFBLENBRTVCO0FBQ0gsa0JBQU0sSUFBSSxHQUFBLDZEQUFBLE9BQ3FELElBQUEsc0JBQUEsQ0FBQTtBQUFBLGlCQUcvQyxBQUFkLEtBQUssU0FBUyxlQUFxQixJQUVoQyxHQUFTLFdBQVcsR0FBUztRQUFBLEdBQUEsR0FXdEMsbUNBQUEsU0FBaUMsSUFBQTtBQUMvQixlQUFPLEtBQUs7QUFBQSxjQUVOLEtBQVcsS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGNBQUEsQ0FFNUI7QUFDSCxrQkFBTSxJQUFJLEdBQUEsK0RBQUEsT0FDdUQsSUFBQSxzQkFBQSxDQUFBO0FBQUEsaUJBR2pELEFBQWQsS0FBSyxTQUFTLGFBQW1CLElBRTlCLEdBQVM7UUFBQSxHQUFBLEdBV2xCLHlCQUFBLFNBQXVCLElBQUE7QUFDckIsZUFBTyxLQUFLO0FBQUEsY0FFTixLQUFXLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxjQUFBLENBRTVCO0FBQ0gsa0JBQU0sSUFBSSxHQUFBLHFEQUFBLE9BQzZDLElBQUEsc0JBQUEsQ0FBQTtBQUFBLGNBR3JELEtBQVM7QUFBQSxpQkFFSyxBQUFkLEtBQUssU0FBUyxjQUNoQixPQUFVLEdBQVMsbUJBR0gsQUFBZCxLQUFLLFNBQVMsZ0JBQ2hCLE9BQVUsR0FBUyxXQUFXLEdBQVMsWUFHbEM7UUFBQSxHQUFBLEdBV1QsU0FBQSxTQUFPLElBQUE7QUFDTCxlQUFPLEtBQUs7QUFBQSxjQUVOLEtBQU8sS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGNBQUEsQ0FFeEI7QUFDSCxrQkFBTSxJQUFJLEdBQUEscUNBQUEsT0FDNkIsSUFBQSxzQkFBQSxDQUFBO0FBQUEsaUJBR2xDLEdBQUssT0FBTztRQUFBLEdBQUEsR0FXckIsU0FBQSxTQUFPLElBQUE7QUFDTCxlQUFPLEtBQUs7QUFBQSxjQUVOLEtBQU8sS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGNBQUEsQ0FFeEI7QUFDSCxrQkFBTSxJQUFJLEdBQUEscUNBQUEsT0FDNkIsSUFBQSxzQkFBQSxDQUFBO0FBQUEsaUJBR2xDLEdBQUssT0FBTztRQUFBLEdBQUEsR0FXckIsY0FBQSxTQUFZLElBQUE7QUFDVixlQUFPLEtBQUs7QUFBQSxjQUVOLEtBQVcsS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGNBQUEsQ0FFNUI7QUFDSCxrQkFBTSxJQUFJLEdBQUEsMENBQUEsT0FDa0MsSUFBQSxzQkFBQSxDQUFBO0FBQUEsaUJBR3ZDLENBQUMsR0FBUyxPQUFPLEtBQUssR0FBUyxPQUFPLEdBQUE7UUFBQSxHQUFBLEdBYS9DLFdBQUEsU0FBUyxJQUFNLElBQUE7QUFDYixlQUFPLEtBQUssSUFDWixLQUFPLEtBQUs7QUFBQSxjQUVOLEtBQU8sS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGNBQUEsQ0FFeEI7QUFDSCxrQkFBTSxJQUFJLEdBQUEsdUNBQUEsT0FDK0IsSUFBQSxzQkFBQSxDQUFBO0FBQUEsY0FHckMsS0FBUyxHQUFLLE9BQU8sS0FDckIsS0FBUyxHQUFLLE9BQU87QUFBQSxjQUV2QixPQUFTO0FBQVEsbUJBQU87QUFBQSxjQUN4QixPQUFTO0FBQVEsbUJBQU87QUFBQSxnQkFFdEIsSUFBSSxHQUFBLHdCQUFBLE9BQ2dCLElBQUEsaUNBQUEsRUFBQSxPQUFzQyxJQUFBLFVBQUEsRUFBQSxPQUFlLElBQUEsSUFBQSxFQUFBLE9BQVcsSUFBQSxJQUFBLENBQUE7UUFBQSxHQUFBLEdBYTVGLGVBQUEsU0FBYSxJQUFNLElBQUE7QUFDakIsZUFBTyxLQUFLLElBQ1osS0FBTyxLQUFLO0FBQUEsY0FFTixLQUFPLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxjQUFBLENBRXhCO0FBQ0gsa0JBQU0sSUFBSSxHQUFBLDJDQUFBLE9BQ21DLElBQUEsc0JBQUEsQ0FBQTtBQUFBLGlCQUd4QyxHQUFLLE9BQU8sUUFBUSxNQUFRLEdBQUssT0FBTyxRQUFRO1FBQUEsR0FBQSxHQVd6RCxlQUFBLFNBQWEsSUFBQTtBQUNYLGVBQU8sS0FBSztBQUFBLGNBRU4sS0FBTyxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBQUEsY0FBQSxDQUV4QjtBQUNILGtCQUFNLElBQUksR0FBQSwyQ0FBQSxPQUNtQyxJQUFBLHNCQUFBLENBQUE7QUFBQSxpQkFHeEMsR0FBSztRQUFBLEdBQUEsR0FXZCxhQUFBLFNBQVcsSUFBQTtBQUNULGVBQU8sS0FBSztBQUFBLGNBRU4sS0FBTyxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBQUEsY0FBQSxDQUV4QjtBQUNILGtCQUFNLElBQUksR0FBQSx5Q0FBQSxPQUNpQyxJQUFBLHNCQUFBLENBQUE7QUFBQSxpQkFBQSxDQUdyQyxHQUFLO1FBQUEsR0FBQSxHQVdmLGFBQUEsU0FBVyxJQUFBO0FBQ1QsZUFBTyxLQUFLO0FBQUEsY0FFTixLQUFPLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxjQUFBLENBRXhCO0FBQ0gsa0JBQU0sSUFBSSxHQUFBLHlDQUFBLE9BQ2lDLElBQUEsc0JBQUEsQ0FBQTtBQUFBLGlCQUd0QyxHQUFLLFdBQVcsR0FBSztRQUFBLEdBQUEsR0FrQjlCLFVBQUEsU0FBUSxJQUFNLElBQUE7QUFBQSxjQUNOLEtBOTdDVixTQUFpQixJQUFPLElBQU0sSUFBQTtBQUFBLGdCQUN4QixNQUFBLENBQWUsRUFBYyxFQUFBO0FBQy9CLG9CQUFNLElBQUksRUFBQSxtRUFBQSxPQUMyRCxJQUFBLEdBQUEsQ0FBQTtBQUFBLGdCQUl2RSxLQUFPLEtBQUssSUFDWixLQUFhLE1BQWMsQ0FBQSxHQUV2QixHQUFNLE9BQU8sSUFBSSxFQUFBO0FBQ25CLG9CQUFNLElBQUksR0FBQSx1QkFBQSxPQUNlLElBQUEsb0NBQUEsQ0FBQTtBQUFBLGdCQUdyQixLQUFPLElBQUksR0FBTSxjQUFjLElBQU0sRUFBQTtBQUFBLG1CQUczQyxHQUFNLE9BQU8sSUFBSSxJQUFNLEVBQUEsR0FHdkIsR0FBTSxLQUFLLGFBQWEsRUFDdEIsS0FBSyxJQUNMLFlBQUEsR0FBQSxDQUFBLEdBR0s7VUFBQSxFQW82Q29CLE1BQU0sSUFBTSxFQUFBO0FBQUEsaUJBRTlCLEdBQVM7UUFBQSxHQUFBLEdBVWxCLFlBQUEsU0FBVSxJQUFNLElBQUE7QUFBQSxjQUNWLE1BQUEsQ0FBZSxFQUFjLEVBQUE7QUFDL0Isa0JBQU0sSUFBSSxFQUFBLHFFQUFBLE9BQzZELElBQUEsR0FBQSxDQUFBO0FBSXpFLGVBQU8sS0FBSyxJQUNaLEtBQWEsTUFBYyxDQUFBO0FBQUEsY0FHdkIsS0FBTyxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBQUEsaUJBRXZCLEtBQ0UsT0FDRixJQUFPLEdBQUssWUFBWSxFQUFBLEdBQUEsS0FFbkIsS0FBSyx5QkFBeUIsRUFDakMsTUFBTSxTQUNOLEtBQUssSUFDTCxZQUFZLEdBQUssWUFDakIsTUFBTSxHQUFBLENBQUEsSUFHSCxDQUFDLElBQUEsS0FBTSxLQUdoQixNQUFPLElBQUksS0FBSyxjQUFjLElBQU0sRUFBQSxHQUFBLEtBRy9CLE9BQU8sSUFBSSxJQUFNLEVBQUEsR0FBQSxLQUdqQixLQUFLLGFBQWEsRUFDckIsS0FBSyxJQUNMLFlBQUEsR0FBQSxDQUFBLEdBR0ssQ0FBQyxJQUFBLElBQU07UUFBQSxHQUFBLEdBV2hCLGFBQUEsU0FBVyxJQUFNLElBQUE7QUFBQSxjQUNYLE1BQThCLEFBQUEsT0FBWixNQUFZO0FBQ2hDLGtCQUFNLElBQUksRUFBQSw2RUFBQSxPQUNxRSxJQUFBLEdBQUEsQ0FBQTtBQUlqRixlQUFPLEtBQUs7QUFBQSxjQUdSLEtBQU8sS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLGNBRXZCLElBQU07QUFBQSxnQkFDSixJQUFTO0FBQUEsa0JBQ0wsS0FBZ0IsR0FBSztBQUMzQixpQkFBSyxhQUFhLEdBQVEsRUFBQSxHQUFBLEtBRXJCLEtBQUsseUJBQXlCLEVBQ2pDLE1BQU0sV0FDTixLQUFLLElBQ0wsWUFBWSxHQUFLLFdBQUEsQ0FBQTtZQUFBO0FBQUEsbUJBR2QsQ0FBQyxJQUFBLEtBQU07VUFBQTtBQUFBLGNBR1YsS0FBYSxLQUFVLEdBQVEsQ0FBQSxDQUFBLElBQU0sQ0FBQTtBQUFBLGlCQUUzQyxLQUFPLElBQUksS0FBSyxjQUFjLElBQU0sRUFBQSxHQUFBLEtBRy9CLE9BQU8sSUFBSSxJQUFNLEVBQUEsR0FBQSxLQUdqQixLQUFLLGFBQWEsRUFDckIsS0FBSyxJQUNMLFlBQUEsR0FBQSxDQUFBLEdBR0ssQ0FBQyxJQUFBLElBQU07UUFBQSxHQUFBLEdBV2hCLFdBQUEsU0FBUyxJQUFBO0FBQUEsY0FBQSxLQUFBO0FBQ1AsZUFBTyxLQUFLO0FBQUEsY0FFTixLQUFXLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxjQUFBLENBRTVCO0FBQ0gsa0JBQU0sSUFBSSxHQUFBLHVDQUFBLE9BQytCLElBQUEsc0JBQUEsQ0FBQTtBQUFBLGVBS3RDLFlBQVksSUFBTSxTQUFBLElBQUE7QUFDckIsZUFBSyxTQUFTLEVBQUE7VUFBQSxDQUFBLEdBQUEsS0FJWCxPQUFBLE9BQWMsRUFBQSxHQUFBLEtBR2QsS0FBSyxlQUFlLEVBQ3ZCLEtBQUssSUFDTCxZQUFZLEdBQVMsV0FBQSxDQUFBO1FBQUEsR0FBQSxHQWtCekIsV0FBQSxTQUFTLElBQUE7QUFBQSxjQUNIO0FBQUEsY0FFQSxVQUFVLFNBQVMsR0FBRztBQUFBLGdCQUNsQixLQUFTLEtBQUssVUFBVSxJQUM1QixLQUFTLEtBQUssVUFBVTtBQUFBLGdCQUFBLENBRTFCLE1BQVcsRUFBZ0IsTUFBTSxJQUFRLElBQVEsS0FBSyxJQUFBO0FBR3BELG9CQUFNLElBQUksR0FBQSx1Q0FBQSxPQUMrQixJQUFBLFFBQUEsRUFBQSxPQUFlLElBQUEsc0JBQUEsQ0FBQTtVQUFBLFdBRzFELEtBQU8sS0FBSyxJQUFBLENBRVosTUFBVyxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBR3pCLGtCQUFNLElBQUksR0FBQSx1Q0FBQSxPQUMrQixJQUFBLHNCQUFBLENBQUE7QUFBQSxlQUt4QyxPQUFBLE9BQWMsR0FBUyxHQUFBO0FBQUEsY0FBQSxLQUdpQyxJQUE5QyxLQUFBLEdBQVIsUUFBNEIsS0FBQSxHQUFSLFFBQW9CLEtBQUEsR0FBQSxZQUV6QyxLQUFhLEdBQVM7QUFBQSxpQkFFeEIsT0FBZSxLQUNiLEtBQ0YsSUFBVyx1QkFBQSxLQUNOLDhCQUVMLElBQVcscUJBQUEsS0FDTiw0QkFHSCxLQUNGLElBQVcsb0JBQ1gsR0FBVyxzQkFFWCxJQUFXLGFBQ1gsR0FBVyxhQUtmLEdBQTRCLE1BQU0sSUFBWSxFQUFBLEdBRTFDLEtBQVksS0FBSyxvQkFDaEIsS0FBSyxpQkFBQSxLQUdMLEtBQUssZUFBZSxFQUN2QixLQUFLLElBQ0wsWUFBQSxJQUNBLFFBQVEsR0FBVyxLQUNuQixRQUFRLEdBQVcsS0FDbkIsWUFBQSxHQUFBLENBQUEsR0FHSztRQUFBLEdBQUEsR0FRVCxRQUFBLFdBQUE7QUFBQSxlQUVPLE9BQU8sTUFBQSxHQUFBLEtBR1AsT0FBTyxNQUFBLEdBQUEsS0FHUCx1QkFBQSxHQUFBLEtBR0EsS0FBSyxTQUFBO1FBQUEsR0FBQSxHQVFaLGFBQUEsV0FBQTtBQUFBLFdSN3JESyxTQUE2QixJQUFBO0FBQUEscUJBRzlCLElBRkUsS0FBVyxHQUFNLE9BQU8sT0FBQSxHQUFBLEFBSXJCLE1BQU8sR0FBUyxLQUFBLEdBQWMsU0FKVDtBQUs1QixpQkFBSyxNQUFNLE1BQUE7VUFBQSxFUXdyRFMsSUFBQSxHQUFBLEtBR2YsT0FBTyxNQUFBLEdBQUEsS0FHUCx1QkFBQSxHQUFBLEtBR0EsS0FBSyxjQUFBO1FBQUEsR0FBQSxHQWNaLGVBQUEsU0FBYSxJQUFBO0FBQUEsaUJBQ0osS0FBSyxZQUFZO1FBQUEsR0FBQSxHQVExQixnQkFBQSxXQUFBO0FBQUEsaUJBQ1MsS0FBSztRQUFBLEdBQUEsR0FTZCxlQUFBLFNBQWEsSUFBQTtBQUFBLGlCQUNKLEtBQUssWUFBWSxlQUFlLEVBQUE7UUFBQSxHQUFBLEdBVXpDLGVBQUEsU0FBYSxJQUFNLElBQUE7QUFBQSxpQkFBQSxLQUNaLFlBQVksTUFBUSxJQUFBLEtBR3BCLEtBQUsscUJBQXFCLEVBQzdCLE1BQU0sT0FDTixZQUFZLEtBQUssYUFDakIsTUFBQSxHQUFBLENBQUEsR0FHSztRQUFBLEdBQUEsR0FVVCxrQkFBQSxTQUFnQixJQUFNLElBQUE7QUFBQSxjQUNHLEFBQUEsT0FBWixNQUFZO0FBQ3JCLGtCQUFNLElBQUksRUFDUixzREFBQTtBQUFBLGNBR0UsS0FBUSxLQUFLLFlBQVk7QUFBQSxpQkFBQSxLQUUxQixZQUFZLE1BQVEsR0FBUSxFQUFBLEdBQUEsS0FHNUIsS0FBSyxxQkFBcUIsRUFDN0IsTUFBTSxPQUNOLFlBQVksS0FBSyxhQUNqQixNQUFBLEdBQUEsQ0FBQSxHQUdLO1FBQUEsR0FBQSxHQVNULGtCQUFBLFNBQWdCLElBQUE7QUFBQSxpQkFBQSxPQUNQLEtBQUssWUFBWSxLQUFBLEtBR25CLEtBQUsscUJBQXFCLEVBQzdCLE1BQU0sVUFDTixZQUFZLEtBQUssYUFDakIsTUFBQSxHQUFBLENBQUEsR0FHSztRQUFBLEdBQUEsR0FXVCxvQkFBQSxTQUFrQixJQUFBO0FBQUEsY0FBQSxDQUNYLEVBQWMsRUFBQTtBQUNqQixrQkFBTSxJQUFJLEVBQ1Isc0VBQUE7QUFBQSxpQkFBQSxLQUdDLGNBQWMsSUFBQSxLQUdkLEtBQUsscUJBQXFCLEVBQzdCLE1BQU0sV0FDTixZQUFZLEtBQUssWUFBQSxDQUFBLEdBR1o7UUFBQSxHQUFBLEdBV1Qsa0JBQUEsU0FBZ0IsSUFBQTtBQUFBLGNBQUEsQ0FDVCxFQUFjLEVBQUE7QUFDakIsa0JBQU0sSUFBSSxFQUNSLG9FQUFBO0FBQUEsaUJBR0osR0FBTyxLQUFLLGFBQWEsRUFBQSxHQUFBLEtBR3BCLEtBQUsscUJBQXFCLEVBQzdCLE1BQU0sU0FDTixZQUFZLEtBQUssYUFDakIsTUFBTSxHQUFBLENBQUEsR0FHRDtRQUFBLEdBQUEsR0FXVCxtQkFBQSxTQUFpQixJQUFBO0FBQUEsY0FDUSxBQUFBLE9BQVosTUFBWTtBQUNyQixrQkFBTSxJQUFJLEVBQ1IsNkRBQUE7QUFBQSxpQkFBQSxLQUdDLGNBQWMsR0FBUSxLQUFLLFdBQUEsR0FBQSxLQUczQixLQUFLLHFCQUFxQixFQUM3QixNQUFNLFVBQ04sWUFBWSxLQUFLLFlBQUEsQ0FBQSxHQUdaO1FBQUEsR0FBQSxHQVNULDJCQUFBLFNBQXlCLElBQVMsSUFBQTtBQUFBLGNBQ1QsQUFBQSxPQUFaLE1BQVk7QUFDckIsa0JBQU0sSUFBSSxFQUNSLGdFQUFBO0FBQUEsY0FHQSxNQUFBLENBQVUsRUFBYyxFQUFBO0FBQzFCLGtCQUFNLElBQUksRUFDUix3SEFBQTtBQUFBLG1CQUtBLElBQU0sSUFGSixLQUFXLEtBQUssT0FBTyxPQUFBLEdBQUEsQUFJcEIsTUFBTyxHQUFTLEtBQUEsR0FBYyxTQUpWO0FBSVUsWUFDckMsTUFBVyxHQUFLLE9BQ1AsYUFBYSxHQUFRLEdBQVMsS0FBSyxHQUFTLFVBQUE7QUFBQSxlQUdsRCxLQUFLLDZCQUE2QixFQUNyQyxPQUFPLE1BQWdCLEtBQUEsQ0FBQTtRQUFBLEdBQUEsR0FVM0IsMkJBQUEsU0FBeUIsSUFBUyxJQUFBO0FBQUEsY0FDVCxBQUFBLE9BQVosTUFBWTtBQUNyQixrQkFBTSxJQUFJLEVBQ1IsZ0VBQUE7QUFBQSxjQUdBLE1BQUEsQ0FBVSxFQUFjLEVBQUE7QUFDMUIsa0JBQU0sSUFBSSxFQUNSLHdIQUFBO0FBQUEsbUJBS0EsSUFBTSxJQUFVLElBQVksSUFGMUIsS0FBVyxLQUFLLE9BQU8sT0FBQSxHQUFBLEFBSXBCLE1BQU8sR0FBUyxLQUFBLEdBQWMsU0FKVjtBQU0zQixpQkFEQSxNQUFXLEdBQUssT0FDTSxRQUN0QixLQUFhLEdBQVMsUUFFdEIsR0FBUyxhQUFhLEdBQ3BCLEdBQVMsS0FDVCxHQUFTLFlBQ1QsR0FBVyxLQUNYLEdBQVcsS0FDWCxHQUFXLFlBQ1gsR0FBVyxZQUNYLEdBQVMsVUFBQTtBQUFBLGVBSVIsS0FBSyw2QkFBNkIsRUFDckMsT0FBTyxNQUFnQixLQUFBLENBQUE7UUFBQSxHQUFBLEdBYzNCLHdCQUFBLFNBQXNCLElBQUE7QUFBQSxjQUNJLEFBQUEsT0FBYixNQUFhO0FBQ3RCLGtCQUFNLElBQUksRUFDUixvREFBQTtBQUdBLGVBQUssUUFBTyxHQUFBLE9BQXNCLE9BQU8sT0FBYyxNQUFNLEVBQUEsSUFDNUQsR0FBQSxPQUF1QixPQUFPLE9BQWMsTUFBTSxFQUFBO1FBQUEsR0FBQSxHQUV6RCxtQ0FBQSxTQUFpQyxJQUFBO0FBQUEsY0FDUCxBQUFBLE9BQWIsTUFBYTtBQUN0QixrQkFBTSxJQUFJLEVBQ1IsK0RBQUE7QUFHQSxlQUFLLFFBQU8sR0FBQSxPQUFzQixPQUFPLE1BQWEsTUFBTSxFQUFBLElBQzNELEdBQUEsT0FBdUIsT0FBTyxNQUFhLE1BQU0sRUFBQTtRQUFBLEdBQUEsR0FReEQsa0NBQUEsU0FBZ0MsSUFBQTtBQUFBLGNBQ04sQUFBQSxPQUFiLE1BQWE7QUFDdEIsa0JBQU0sSUFBSSxFQUNSLDhEQUFBO0FBR0EsZUFBSyxRQUFPLEdBQUEsT0FBc0IsTUFBTyxPQUFhLE1BQU0sRUFBQSxJQUMzRCxHQUFBLE9BQXVCLE1BQU8sT0FBYSxNQUFNLEVBQUE7UUFBQSxHQUFBLEdBRXhELDZDQUFBLFNBQTJDLElBQUE7QUFBQSxjQUNqQixBQUFBLE9BQWIsTUFBYTtBQUN0QixrQkFBTSxJQUFJLEVBQ1IseUVBQUE7QUFHQSxlQUFLLFFBQU8sR0FBQSxPQUFzQixNQUFPLE1BQVksTUFBTSxFQUFBLElBQzFELEdBQUEsT0FBdUIsTUFBTyxNQUFZLE1BQU0sRUFBQTtRQUFBLEdBQUEsR0FRdkQsUUFBQSxXQUFBO0FBQUEsaUJBQzRCLEFBQUEsT0FBZixNQUFNLFFBQVMsYUFBbUIsTUFBTSxLQUFLLEtBQUssT0FBTyxLQUFBLENBQUEsSUFFN0QsRUFBSyxLQUFLLE9BQU8sS0FBQSxHQUFRLEtBQUssT0FBTyxJQUFBO1FBQUEsR0FBQSxHQVE5QyxjQUFBLFNBQVksSUFBQTtBQUFBLGNBQ2MsQUFBQSxPQUFiLE1BQWE7QUFDdEIsa0JBQU0sSUFBSSxFQUNSLDBDQUFBO0FBQUEsbUJBS0EsSUFBTSxJQUZKLEtBQVcsS0FBSyxPQUFPLE9BQUEsR0FBQSxBQUlwQixNQUFPLEdBQVMsS0FBQSxHQUFjLFNBSlY7QUFNM0IsZUFEQSxNQUFXLEdBQUssT0FDRSxLQUFLLEdBQVMsVUFBQTtRQUFBLEdBQUEsR0FVcEMsV0FBQSxTQUFTLElBQUE7QUFBQSxjQUNpQixBQUFBLE9BQWIsTUFBYTtBQUN0QixrQkFBTSxJQUFJLEVBQ1IsdUNBQUE7QUFBQSxtQkFLQSxJQUFNLElBRkosS0FBVyxLQUFLLE9BQU8sT0FBQSxHQUFBLEFBSXBCLE1BQU8sR0FBUyxLQUFBLEdBQWMsU0FKVjtBQUlVLGdCQUdqQyxHQUZKLE1BQVcsR0FBSyxPQUVNLEtBQUssR0FBUyxVQUFBO0FBQWEscUJBQU8sR0FBUztRQUFBLEdBQUEsR0FXckUsV0FBQSxTQUFTLElBQUE7QUFBQSxjQUNpQixBQUFBLE9BQWIsTUFBYTtBQUN0QixrQkFBTSxJQUFJLEVBQ1Isc0NBQUE7QUFBQSxtQkFLQSxJQUFNLElBRkosS0FBVyxLQUFLLE9BQU8sT0FBQSxHQUl2QixLQUFTLElBQUksTUFBTSxLQUFLLEtBQUEsR0FDMUIsS0FBSSxHQUFBLEFBRUMsTUFBTyxHQUFTLEtBQUEsR0FBYyxTQUYvQjtBQUdOLGlCQUFXLEdBQUssT0FDaEIsR0FBTyxRQUFPLEdBQVMsR0FBUyxLQUFLLEdBQVMsVUFBQTtBQUFBLGlCQUd6QztRQUFBLEdBQUEsR0FRVCxXQUFBLFNBQVMsSUFBQTtBQUFBLGNBQ2lCLEFBQUEsT0FBYixNQUFhO0FBQ3RCLGtCQUFNLElBQUksRUFDUix1Q0FBQTtBQUFBLG1CQUtBLElBQU0sSUFGSixLQUFXLEtBQUssT0FBTyxPQUFBLEdBQUEsQUFJcEIsTUFBTyxHQUFTLEtBQUEsR0FBYyxTQUpWO0FBSVUsZ0JBR2pDLEdBRkosTUFBVyxHQUFLLE9BRU0sS0FBSyxHQUFTLFVBQUE7QUFBYSxxQkFBQTtBQUFPLGlCQUFBO1FBR25ELEdBQUEsR0FRVCxZQUFBLFNBQVUsSUFBQTtBQUFBLGNBQ2dCLEFBQUEsT0FBYixNQUFhO0FBQ3RCLGtCQUFNLElBQUksRUFDUix3Q0FBQTtBQUFBLG1CQUtBLElBQU0sSUFGSixLQUFXLEtBQUssT0FBTyxPQUFBLEdBQUEsQUFJcEIsTUFBTyxHQUFTLEtBQUEsR0FBYyxTQUpWO0FBSVUsZ0JBQUEsQ0FHaEMsR0FGTCxNQUFXLEdBQUssT0FFTyxLQUFLLEdBQVMsVUFBQTtBQUFhLHFCQUFBO0FBQU8saUJBQUE7UUFHcEQsR0FBQSxHQVFULGNBQUEsU0FBWSxJQUFBO0FBQUEsY0FDYyxBQUFBLE9BQWIsTUFBYTtBQUN0QixrQkFBTSxJQUFJLEVBQ1IsMENBQUE7QUFBQSxtQkFLQSxJQUFNLElBRkosS0FBVyxLQUFLLE9BQU8sT0FBQSxHQUl2QixLQUFTLENBQUEsR0FBQSxBQUVOLE1BQU8sR0FBUyxLQUFBLEdBQWMsU0FGeEI7QUFLVCxlQUZKLE1BQVcsR0FBSyxPQUVNLEtBQUssR0FBUyxVQUFBLEtBQ2xDLEdBQU8sS0FBSyxHQUFTLEdBQUE7QUFBQSxpQkFHbEI7UUFBQSxHQUFBLEdBUVQsY0FBQSxTQUFZLElBQVUsSUFBQTtBQUFBLGNBQ0ksQUFBQSxPQUFiLE1BQWE7QUFDdEIsa0JBQU0sSUFBSSxFQUNSLDBDQUFBO0FBQUEsY0FHQSxVQUFVLFNBQVM7QUFDckIsa0JBQU0sSUFBSSxFQUNSLG1OQUFBO0FBQUEsbUJBT0EsSUFBTSxJQUpOLEtBQWMsSUFFWixLQUFXLEtBQUssT0FBTyxPQUFBLEdBQUEsQUFJcEIsTUFBTyxHQUFTLEtBQUEsR0FBYyxTQUpWO0FBTTNCLGlCQUFjLEdBQVMsSUFEdkIsTUFBVyxHQUFLLE9BQzZCLEtBQUssR0FBUyxVQUFBO0FBQUEsaUJBR3REO1FBQUEsR0FBQSxHQVFULGNBQUEsV0FBQTtBQUFBLGNBQ1EsS0FBVyxLQUFLLE9BQU8sT0FBQTtBQUFBLGlCQUV0QixJQUFJLEVBQVMsV0FBQTtBQUFBLGdCQUNaLEtBQU8sR0FBUyxLQUFBO0FBQUEsZ0JBRWxCLEdBQUs7QUFBTSxxQkFBTztBQUFBLGdCQUVoQixLQUFPLEdBQUs7QUFBQSxtQkFFWCxFQUNMLE9BQU8sRUFBQyxNQUFNLEdBQUssS0FBSyxZQUFZLEdBQUssV0FBQSxHQUN6QyxNQUFBLE1BQU07VUFBQSxDQUFBO1FBQUEsR0FBQSxHQWtCWixhQUFBLFNBQVcsSUFBQTtBQUNULGVBQU8sS0FBSztBQUFBLGNBRU4sS0FBTyxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBQUEsY0FBQSxDQUV4QjtBQUNILGtCQUFNLElBQUksR0FBQSx5Q0FBQSxPQUNpQyxJQUFBLHNCQUFBLENBQUE7QUFBQSxpQkFHdEMsR0FBYyxJQUFNLEVBQUE7UUFBQSxHQUFBLEdBVzdCLGFBQUEsU0FBVyxJQUFBO0FBQ1QsZUFBTyxLQUFLO0FBQUEsY0FFTixLQUFPLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxjQUFBLENBRXhCO0FBQ0gsa0JBQU0sSUFBSSxHQUFBLHlDQUFBLE9BQ2lDLElBQUEsc0JBQUEsQ0FBQTtBQUFBLGlCQUd0QyxHQUFjLElBQU0sRUFBQTtRQUFBLEdBQUEsR0FBQSxTQVE3QixXQUFBO0FBQUEsY0FDUSxLQUFRLElBQUksTUFBTSxLQUFLLE9BQU8sSUFBQSxHQUVoQyxLQUFJO0FBQUEsZUFFSCxPQUFPLFFBQVEsU0FBQyxJQUFNLElBQUE7QUFDekIsZUFBTSxRQUFPLEdBQWMsSUFBSyxFQUFBO1VBQUEsQ0FBQTtBQUFBLGNBRzVCLEtBQVEsSUFBSSxNQUFNLEtBQUssT0FBTyxJQUFBO0FBQUEsaUJBRXBDLEtBQUksR0FBQSxLQUVDLE9BQU8sUUFBUSxTQUFDLElBQU0sSUFBQTtBQUN6QixlQUFNLFFBQU8sR0FBYyxJQUFLLEVBQUE7VUFBQSxDQUFBLEdBRzNCLEVBQ0wsWUFBWSxLQUFLLGNBQUEsR0FDakIsT0FBQSxJQUNBLE9BQUEsSUFDQSxTQUFTLEVBQ1AsTUFBTSxLQUFLLE1BQ1gsT0FBTyxLQUFLLE9BQ1osZ0JBQWdCLEtBQUssZUFBQSxFQUFBO1FBQUEsR0FBQSxHQVkzQixhQUFBLFNBQVcsSUFBQTtBQUFBLGNBQU0sS0FBQSxVQUFBLFNBQUEsS0FBQSxBQUFBLFVBQUEsT0FBQSxVQUFBLFVBQUEsSUFFVCxLQUFRLEdBQXVCLEVBQUE7QUFBQSxjQUVqQyxJQUFPO0FBQUEsZ0JBQ0ssQUFBVixPQUFVO0FBQ1osb0JBQU0sSUFBSSxFQUNSLHVIQUFBO0FBQUEsZ0JBRVUsQUFBVixPQUFVO0FBQ1osb0JBQU0sSUFBSSxFQUNSLG9DQUFBO0FBQUEsZ0JBRVUsQUFBVixPQUFVO0FBQ1osb0JBQU0sSUFBSSxFQUNSLDZGQUFBO1VBQUE7QUFBQSxjQUtDLEtBQXdCLEdBQXhCLEtBQUEsS0FBd0IsR0FBbkIsWUFBQSxLQUFBLEFBQUEsT0FBQSxTQUFhLENBQUEsSUFBQTtBQUFBLGlCQUVyQixLQUFPLEtBQUssVUFBVSxJQUFLLEVBQUEsSUFDMUIsS0FBSyxRQUFRLElBQUssRUFBQSxHQUVoQjtRQUFBLEdBQUEsR0FVVCxhQUFBLFNBQVcsSUFBQTtBQUFBLGNBQU0sS0FBQSxVQUFBLFNBQUEsS0FBQSxBQUFBLFVBQUEsT0FBQSxVQUFBLFVBQUEsSUFFVCxLQUFRLEdBQXVCLEVBQUE7QUFBQSxjQUVqQyxJQUFPO0FBQUEsZ0JBQ0ssQUFBVixPQUFVO0FBQ1osb0JBQU0sSUFBSSxFQUNSLHFJQUFBO0FBQUEsZ0JBRVUsQUFBVixPQUFVO0FBQ1osb0JBQU0sSUFBSSxFQUNSLGtDQUFBO0FBQUEsZ0JBRVUsQUFBVixPQUFVO0FBQ1osb0JBQU0sSUFBSSxFQUNSLG1DQUFBO0FBQUEsZ0JBRVUsQUFBVixPQUFVO0FBQ1osb0JBQU0sSUFBSSxFQUNSLDZGQUFBO0FBQUEsZ0JBRVUsQUFBVixPQUFVO0FBQ1osb0JBQU0sSUFBSSxFQUNSLGdGQUFBO1VBQUE7QUFBQSxjQUtDLEtBQXVELEdBQXZELFFBQVEsS0FBK0MsR0FBL0MsUUFBQSxLQUErQyxHQUF2QyxZQUFBLEtBQUEsQUFBQSxPQUFBLFNBQWEsQ0FBQSxJQUFBLElBQUEsS0FBMEIsR0FBdEIsWUFBQSxLQUFBLEFBQUEsT0FBQSxVQUFBO0FBQUEsaUJBSXBDLFNBQVMsS0FDRixNQUNMLEtBQ0UsS0FBSyw2QkFDTCxLQUFLLDJCQUNQLEtBQ0EsS0FBSywyQkFDTCxLQUFLLHdCQUVGLEtBQUssTUFBTSxHQUFLLEtBQUssSUFBUSxJQUFRLEVBQUEsSUFFbkMsTUFDTCxLQUNFLEtBQUssc0JBQ0wsS0FBSyxvQkFDUCxLQUNBLEtBQUssb0JBQ0wsS0FBSyxpQkFFRixLQUFLLE1BQU0sSUFBUSxJQUFRLEVBQUEsR0FHN0I7UUFBQSxHQUFBLEdBQUEsU0FVVCxTQUFPLElBQUE7QUFBQSxjQXVCRCxJQUFHLElBQUcsSUF2QkMsS0FBQSxVQUFBLFNBQUEsS0FBQSxBQUFBLFVBQUEsT0FBQSxVQUFBLFVBQUE7QUFBQSxjQUVQLEVBQVEsRUFBQTtBQUFBLG1CQUFBLEtBQUEsT0FDRSxHQUFBLE9BQUEsR0FBZSxFQUFBLEdBQ3BCO0FBQUEsY0FBQSxDQUlKLEVBQWMsRUFBQTtBQUNqQixrQkFBTSxJQUFJLEVBQ1IsbUdBQUE7QUFBQSxjQUdBLEdBQUssWUFBWTtBQUFBLGdCQUFBLENBQ2QsRUFBYyxHQUFLLFVBQUE7QUFDdEIsb0JBQU0sSUFBSSxFQUNSLDZEQUFBO0FBR0EsaUJBQU8sS0FBSyxnQkFBZ0IsR0FBSyxVQUFBLElBQ2hDLEtBQUssa0JBQWtCLEdBQUssVUFBQTtVQUFBO0FBQUEsY0FLL0IsR0FBSyxPQUFPO0FBQUEsZ0JBQ2QsS0FBTyxHQUFLLE9BQUEsQ0FFUCxNQUFNLFFBQVEsRUFBQTtBQUNqQixvQkFBTSxJQUFJLEVBQ1Isa0RBQUE7QUFBQSxpQkFHQyxLQUFJLEdBQUcsS0FBSSxHQUFLLFFBQVEsS0FBSSxJQUFHO0FBQUEsbUJBQVUsV0FBVyxHQUFLLEtBQUksRUFBQTtVQUFBO0FBQUEsY0FHaEUsR0FBSyxPQUFPO0FBQUEsZ0JBQ2QsS0FBTyxHQUFLLE9BQUEsQ0FFUCxNQUFNLFFBQVEsRUFBQTtBQUNqQixvQkFBTSxJQUFJLEVBQ1Isa0RBQUE7QUFBQSxpQkFHQyxLQUFJLEdBQUcsS0FBSSxHQUFLLFFBQVEsS0FBSSxJQUFHO0FBQUEsbUJBQVUsV0FBVyxHQUFLLEtBQUksRUFBQTtVQUFBO0FBQUEsaUJBRzdEO1FBQUEsR0FBQSxHQWVULFdBQUEsU0FBUyxJQUFBO0FBQUEsY0FDRCxLQUFRLElBQUksR0FBTSxHQUFPLENBQUEsR0FBSSxLQUFLLFVBQVUsRUFBQSxDQUFBO0FBQUEsaUJBQ2xELEdBQU0sa0JBQWtCLEdBQU8sQ0FBQSxHQUFJLEtBQUssY0FBQSxDQUFBLENBQUEsR0FDakM7UUFBQSxHQUFBLEdBVVQsWUFBQSxTQUFVLElBQUE7QUFBQSxjQUNGLEtBQVEsS0FBSyxTQUFTLEVBQUE7QUFBQSxpQkFBQSxLQUV2QixPQUFPLFFBQVEsU0FBQyxJQUFVLElBQUE7QUFBQSxnQkFDdkIsS0FBYSxHQUFPLENBQUEsR0FBSSxHQUFTLFVBQUE7QUFHdkMsaUJBQVcsSUFBSSxHQUFNLGNBQWMsSUFBSyxFQUFBLEdBQ3hDLEdBQU0sT0FBTyxJQUFJLElBQUssRUFBQTtVQUFBLENBQUEsR0FHakI7UUFBQSxHQUFBLEdBUVQsT0FBQSxXQUFBO0FBQUEsbUJBS00sSUFBTSxJQUpKLEtBQVEsS0FBSyxVQUFBLEdBRWIsS0FBVyxLQUFLLE9BQU8sT0FBQSxHQUFBLEFBSXBCLE1BQU8sR0FBUyxLQUFBLEdBQWMsU0FKVjtBQVEzQixlQUNFLElBQ0EsUUFBQSxPQUxGLE1BQVcsR0FBSyxPQU9MLFlBQ1QsR0FBUyxLQUNULEdBQVMsT0FBTyxLQUNoQixHQUFTLE9BQU8sS0FDaEIsR0FBTyxDQUFBLEdBQUksR0FBUyxVQUFBLENBQUE7QUFBQSxpQkFJakI7UUFBQSxHQUFBLEdBUVQsaUJBQUEsV0FBQTtBQUFBLGlCQUNvQixBQUFkLEtBQUssU0FBUyxXQUFULE1BT0osT0FBTyxRQUFRLFNBQUEsSUFBQTtBQUFBLG1CQUFRLEdBQUssZUFBQTtVQUFBLENBQUEsR0FBQSxLQUc1QixTQUFTLE9BQU8sU0FDckIsRUFBaUIsTUFBTSxRQUFRLEtBQUssU0FBUyxJQUFBLEdBQzdDLEVBQWdCLE1BQU0saUJBQWlCLENBQUEsSUFaTDtRQUFBLEdBQUEsR0FzQnBDLGlCQUFBLFdBQUE7QUFBQSxpQkFDTSxLQUFLLFNBQUEsTUFHSixTQUFTLFFBQUEsTUFDZCxFQUFpQixNQUFNLFNBQUEsSUFBUyxHUi9nRlMsTVFraEZaLE1SamhGekIsT0FBTyxRQUFRLFNBQUMsSUFBTSxJQUFBO0FBQUEsZ0JBRXRCLEdBQUs7QUFBQSx1QkFDSSxNQUFZLEdBQUssS0FBSztBQUFBLG9CQUN6QixLQUFRLG9CQUFJO0FBQ2xCLG1CQUFNLElBQUksR0FBSyxJQUFJLEdBQUEsR0FDbkIsR0FBSyxJQUFJLE1BQVksSUFDckIsR0FBTSxPQUFPLElBQUksRUFBQSxFQUFBLEdBQWEsTUFBUTtjQUFBO0FBQUEsZ0JBS3RDLEdBQUs7QUFBQSx1QkFDSSxNQUFZLEdBQUs7QUFBQSxvQkFBQSxDQUN0QixNQUFXLEtBQUE7QUFBQSxzQkFFVCxLQUFRLG9CQUFJO0FBQ2xCLHFCQUFNLElBQUksR0FBSyxXQUFXLEdBQUEsR0FDMUIsR0FBSyxXQUFXLE1BQVksSUFDNUIsR0FBTSxPQUFPLElBQUksRUFBQSxFQUFVLFdBQVcsTUFBUTtnQkFBQTs7VUFBQSxDQUFBLElRdS9FM0I7QVIzZ0ZwQixjQUFzQztRQUFBLEdBQUEsR1FpaUYzQyxTQUFBLFdBQUE7QUFBQSxpQkFDUyxLQUFBLE9BQUE7UUFBQSxHQUFBLEdBTVQsV0FBQSxXQUFBO0FBQUEsaUJBQ1M7UUFBQSxHQUFBLEdBUVQsVUFBQSxXQUFBO0FBQUEsY0FBQSxLQUFBLE1BQ1EsS0FBUSxDQUFBO0FBQUEsZUFDVCxPQUFPLFFBQVEsU0FBQyxJQUFNLElBQUE7QUFDekIsZUFBTSxNQUFPLEdBQUs7VUFBQSxDQUFBO0FBQUEsY0FHZCxLQUFRLENBQUEsR0FDWixLQUFhLENBQUE7QUFBQSxlQUVWLE9BQU8sUUFBUSxTQUFDLElBQU0sSUFBQTtBQUFBLGdCQU9yQixJQU5FLEtBQVksR0FBSyxhQUFhLE9BQU8sTUFFdkMsS0FBUSxJQUVSLEtBQVMsR0FBSyxPQUFPLEtBQ3JCLEtBQVMsR0FBSyxPQUFPO0FBR3JCLGVBQUssY0FBYyxLQUFTLE1BQzlCLE1BQU0sSUFDTixLQUFTLElBQ1QsS0FBUztBQUFBLGdCQUdMLEtBQUEsSUFBQSxPQUFXLElBQUEsR0FBQSxFQUFBLE9BQVUsSUFBQSxHQUFBLEVBQUEsT0FBYSxJQUFBLEdBQUE7QUFFbkMsZUFBSSxXQUFXLE9BQUEsSUFFVCxHQUFLLFNBQUEsQ0FDSCxHQUFXLFFBRFIsU0FFWixHQUFXLE1BQVEsSUFFbkIsR0FBVyxPQUdiLE1BQUEsR0FBQSxPQUFZLEdBQVcsS0FBQSxJQUFBLEtBUnZCLE1BQUEsSUFBQSxPQUFhLElBQUEsS0FBQSxHQWFmLEdBRkEsTUFBUyxNQUVNLEdBQUs7VUFBQSxDQUFBO0FBQUEsY0FHaEIsS0FBUSxDQUFBO0FBQUEsbUJBRUgsTUFBSztBQUVaLGlCQUFLLGVBQWUsRUFBQSxLQUFBLENBQ25CLEdBQWMsSUFBSSxFQUFBLEtBQ0EsQUFBQSxPQUFaLEtBQUssT0FBTyxjQUNOLEFBQWIsRUFBTyxFQUFBLE1BQU0sWUFFYixJQUFNLE1BQUssS0FBSztBQUFBLGlCQUdwQixHQUFNLGFBQWEsS0FBSyxhQUN4QixHQUFNLFFBQVEsSUFDZCxHQUFNLFFBQVEsSUFFZCxFQUFnQixJQUFPLGVBQWUsS0FBSyxXQUFBLEdBRXBDO1FBQUEsR0FBQTtNQUFBLEVBbnJFd0IsRUFBQSxRQUFBLFlBQUE7QUFrc0ViLE1BQUEsT0FBWCxVQUFXLGVBQ3BCLEtBQU0sVUFBVSxPQUFBLElBQVcsNEJBQUEsS0FDekIsSUFBTSxVQUFVLFVBbnJGSyxDQUN2QixFQUNFLE1BQU0sU0FBQSxJQUFBO0FBQUEsZUFBQSxHQUFBLE9BQVcsSUFBQSxNQUFBO01BQUEsR0FDakIsYUFBQSxLQUFhLEdBRWYsRUFDRSxNQUFNLFNBQUEsSUFBQTtBQUFBLGVBQUEsR0FBQSxPQUFXLElBQUEsY0FBQTtNQUFBLEdBQ2pCLGFBQUEsTUFDQSxNQUFNLFdBQUEsR0FFUixFQUNFLE1BQU0sU0FBQSxJQUFBO0FBQUEsZUFBQSxHQUFBLE9BQVcsSUFBQSxnQkFBQTtNQUFBLEdBQ2pCLGFBQUEsTUFDQSxNQUFNLGFBQUEsR0FFUixFQUNFLE1BQU0sU0FBQSxJQUFBO0FBQUEsZUFBQSxHQUFBLE9BQVcsSUFBQSxhQUFBO01BQUEsRUFBQSxHQUVuQixFQUNFLE1BQU0sU0FBQSxJQUFBO0FBQUEsZUFBQSxHQUFBLE9BQVcsSUFBQSxxQkFBQTtNQUFBLEdBQ2pCLE1BQU0sV0FBQSxHQUVSLEVBQ0UsTUFBTSxTQUFBLElBQUE7QUFBQSxlQUFBLEdBQUEsT0FBVyxJQUFBLHVCQUFBO01BQUEsR0FDakIsTUFBTSxhQUFBLENBQUEsRUFncUZPLFFBQVEsU0FBQSxJQUFBO0FBQUEsU0FDdEIsT0FBTyxTQUFTLFFBQUEsRUFBVSxRQUFRLFNBQUEsSUFBQTtBQUFBLGNBQzNCLEtBQU8sR0FBTyxLQUFLLEVBQUEsR0FDbkIsS0FBYyxBQUFULE9BQVMsUUFBUSxLQUFVO0FBRWxDLGFBQU8sY0FDVCxJQUFNLFVBQVUsTUFBUSxTQUFVLElBQVEsSUFBUSxJQUFBO0FBQUEsbUJBQ3pDLEdBQ0wsTUFDQSxJQUFBLE1BRStCLEFBQTlCLElBQU8sUUFBUSxLQUFLLFVBQVUsY0FDL0IsTUFDQSxJQUNBLElBQ0EsSUFDUyxBQUFULE9BQVMsUUFBVDtVQUFBLElBSUosSUFBTSxVQUFVLE1BQVEsU0FBVSxJQUFNLElBQVEsSUFBUSxJQUFBO0FBQUEsbUJBQy9DLEdBQ0wsTUFDQSxJQUFBLE9BRStCLEFBQTlCLElBQU8sUUFBUSxLQUFLLFVBQVUsY0FDL0IsSUFDQSxJQUNBLElBQ0EsSUFDUyxBQUFULE9BQVMsUUFBVDtVQUFBO1FBQUEsQ0FBQTtNQUFBLENBQUEsR1B2OEVLLFNBQXFDLElBQUE7QUFDbEQsVUFBd0IsUUFBUSxTQUFBLElBQUE7QUFBQSxjQUFXLEtBQUEsR0FBQSxNQUFNLEtBQUEsR0FBQTtBQUUvQyxhQUFTLElBQU8sR0FBSyxNQUFBLEdBclZaLENBQUEsR0F3VlQsR0FBUyxJQUFPLEdBQUssUUFBQSxHQXZWVixDQUFBLEdBMFZYLEdBQVMsSUFBTyxHQUFLLFFBQUEsR0F6VlYsQ0FBQSxHQTRWWCxHQUFTLElBQU8sR0FBSyxVQUFBLEdBM1ZSLENBQUE7UUFBQSxDQUFBO01BQUEsRU9neUZXLEdBQUEsR05sakViLFNBQXFDLElBQUE7QUFDbEQsV0FBd0IsUUFBUSxTQUFBLElBQUE7QUFBQSxjQUFXLEtBQUEsR0FBQSxNQUFNLEtBQUEsR0FBQTtBQUUvQyxhQUFTLElBQU8sR0FBSyxNQUFBLEdBQVMsT0FBQSxHQUc5QixHQUFTLElBQU8sR0FBSyxjQUFBLEdBQWlCLFVBQUEsR0FHdEMsR0FBUyxJQUFPLEdBQUssZ0JBQUEsR0FBbUIsWUFBQTtRQUFBLENBQUE7TUFBQSxFTTBpRWhCLEdBQUEsR0psNUNiLFNBQW9DLElBQUE7QUFDakQsV0FBZ0IsUUFBUSxTQUFBLElBQUE7QUFBQSxXQTlrQjFCLFNBQWdDLElBQU8sSUFBQTtBQUFBLGdCQUM5QixLQUF5QixHQUF6QixNQUFNLEtBQW1CLEdBQW5CLE1BQU0sS0FBYSxHQUFiO0FBa0JuQixlQUFNLFVBQVUsTUFBUSxTQUFVLElBQVEsSUFBQTtBQUFBLGtCQUUzQixBQUFULE9BQVMsV0FBeUIsQUFBZCxLQUFLLFNBQVMsV0FBVyxPQUFTLEtBQUs7QUFDN0QsdUJBQU8sQ0FBQTtBQUFBLGtCQUFBLENBRUosVUFBVTtBQUFRLHVCQUFPLEdBQWdCLE1BQU0sRUFBQTtBQUFBLGtCQUUzQixBQUFyQixVQUFVLFdBQVcsR0FBRztBQUMxQixxQkFBUyxLQUFLO0FBQUEsb0JBRVIsS0FBVyxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBQUEsb0JBQUEsQUFFdEIsT0FGc0I7QUFHL0Isd0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHdCQUFBLEVBQUEsT0FBNkIsSUFBQSxzQkFBQSxDQUFBO0FBQUEsdUJBSW5DLEdBQ0wsS0FBSyxPQUNJLEFBQVQsT0FBUyxVQUFVLEtBQUssT0FBTyxJQUMvQixJQUNBLEVBQUE7Y0FBQTtBQUFBLGtCQUlxQixBQUFyQixVQUFVLFdBQVcsR0FBRztBQUMxQixxQkFBUyxLQUFLLElBQ2QsS0FBUyxLQUFLO0FBQUEsb0JBRVIsS0FBYSxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBQUEsb0JBQUEsQ0FFOUI7QUFDSCx3QkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEseUJBQUEsRUFBQSxPQUE4QixJQUFBLDZCQUFBLENBQUE7QUFBQSxvQkFBQSxDQUd0QyxLQUFLLE9BQU8sSUFBSSxFQUFBO0FBQ25CLHdCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSx5QkFBQSxFQUFBLE9BQThCLElBQUEsNkJBQUEsQ0FBQTtBQUFBLHVCQUlwQyxHQUNMLElBQ0EsS0FBSyxPQUNMLElBQ0EsSUFDQSxFQUFBO2NBQUE7QUFBQSxvQkFJRSxJQUFJLEVBQUEsU0FBQSxPQUNDLElBQUEsb0RBQUEsRUFBQSxPQUF5RCxVQUFVLFFBQUEsSUFBQSxDQUFBO1lBQUE7VUFBQSxFQXVnQnZELElBQU8sRUFBQSxHQTVmbEMsU0FBMkIsSUFBTyxJQUFBO0FBQUEsZ0JBQ3pCLEtBQXlCLEdBQXpCLE1BQU0sS0FBbUIsR0FBbkIsTUFBTSxLQUFhLEdBQWIsV0FFYixLQUFjLFlBQVksR0FBSyxHQUFHLFlBQUEsSUFBZ0IsR0FBSyxNQUFNLEdBQUEsRUFBSTtBQXNCdkUsZUFBTSxVQUFVLE1BQWUsU0FBVSxJQUFRLElBQVEsSUFBQTtBQUFBLGtCQUUxQyxBQUFULE9BQVMsV0FBeUIsQUFBZCxLQUFLLFNBQVMsV0FBVyxPQUFTLEtBQUssTUFBQTtBQUFBLG9CQUV0QyxBQUFyQixVQUFVLFdBQVc7QUFBWCx5QkFFTCxHQUFZLE1BQU0sSUFEekIsS0FBVyxFQUFBO0FBQUEsb0JBSVksQUFBckIsVUFBVSxXQUFXLEdBQUc7QUFDMUIsdUJBQVMsS0FBSyxJQUNkLEtBQVc7QUFBQSxzQkFFTCxLQUFXLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxzQkFBQSxBQUV0QixPQUZzQjtBQUcvQiwwQkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsd0JBQUEsRUFBQSxPQUFvQyxJQUFBLHNCQUFBLENBQUE7QUFBQSx5QkFLMUMsR0FDTCxLQUFLLE9BQ0ksQUFBVCxPQUFTLFVBQVUsS0FBSyxPQUFPLElBQy9CLElBQ0EsSUFDQSxFQUFBO2dCQUFBO0FBQUEsb0JBSXFCLEFBQXJCLFVBQVUsV0FBVyxHQUFHO0FBQzFCLHVCQUFTLEtBQUssSUFDZCxLQUFTLEtBQUs7QUFBQSxzQkFFUixLQUFhLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxzQkFBQSxDQUU5QjtBQUNILDBCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSx5QkFBQSxFQUFBLE9BQXFDLElBQUEsNkJBQUEsQ0FBQTtBQUFBLHNCQUFBLENBRzdDLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFDbkIsMEJBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHlCQUFBLEVBQUEsT0FBcUMsSUFBQSw2QkFBQSxDQUFBO0FBQUEseUJBSTNDLEdBQ0wsSUFDQSxLQUFLLE9BQ0wsSUFDQSxJQUNBLElBQ0EsRUFBQTtnQkFBQTtBQUFBLHNCQUlFLElBQUksRUFBQSxTQUFBLE9BQ0MsSUFBQSxvREFBQSxFQUFBLE9BQWdFLFVBQVUsUUFBQSxJQUFBLENBQUE7Y0FBQTtZQUFBO0FBQUEsZ0JBd0JqRixLQUFVLFFBQVEsR0FBSyxHQUFHLFlBQUEsSUFBZ0IsR0FBSyxNQUFNLENBQUE7QUFFM0QsZUFBTSxVQUFVLE1BQVcsV0FBQTtBQUFBLGtCQUlyQixJQUhFLEtBQU8sTUFBTSxVQUFVLE1BQU0sS0FBSyxTQUFBLEdBQ2xDLEtBQVcsR0FBSyxJQUFBO0FBQUEsa0JBS0YsQUFBaEIsR0FBSyxXQUFXLEdBQUc7QUFBQSxvQkFDakIsS0FBUztBQUVBLGdCQUFULE9BQVMsY0FBWSxPQUFVLEtBQUssaUJBQzNCLEFBQVQsT0FBUyxnQkFBYyxPQUFVLEtBQUssZUFFMUMsS0FBUyxJQUFJLE1BQU0sRUFBQTtBQUFBLG9CQUVmLEtBQUk7QUFFUixtQkFBSyxLQUFLLFNBQUMsSUFBRyxJQUFJLElBQUcsSUFBRyxJQUFJLElBQUksSUFBQTtBQUM5QixxQkFBTyxRQUFPLEdBQVMsSUFBRyxJQUFJLElBQUcsSUFBRyxJQUFJLElBQUksRUFBQTtnQkFBQSxDQUFBO2NBQUE7QUFPOUMscUJBQVMsQ0FBQSxHQUVULEdBQUssS0FBSyxTQUFDLElBQUcsSUFBSSxJQUFHLElBQUcsSUFBSSxJQUFJLElBQUE7QUFDOUIscUJBQU8sS0FBSyxHQUFTLElBQUcsSUFBSSxJQUFHLElBQUcsSUFBSSxJQUFJLEVBQUEsQ0FBQTtnQkFBQSxDQUFBO0FBQUEscUJBQUEsS0FJekMsSUFBYSxNQUFNLE1BQU0sRUFBQSxHQUV2QjtZQUFBO0FBQUEsZ0JBdUJILEtBQWEsV0FBVyxHQUFLLEdBQUcsWUFBQSxJQUFnQixHQUFLLE1BQU0sQ0FBQTtBQUVqRSxlQUFNLFVBQVUsTUFBYyxXQUFBO0FBQUEsa0JBQ3RCLEtBQU8sTUFBTSxVQUFVLE1BQU0sS0FBSyxTQUFBLEdBQ2xDLEtBQVcsR0FBSyxJQUFBLEdBRWhCLEtBQVMsQ0FBQTtBQUFBLHFCQUVmLEdBQUssS0FBSyxTQUFDLElBQUcsSUFBSSxJQUFHLElBQUcsSUFBSSxJQUFJLElBQUE7QUFDMUIsbUJBQVMsSUFBRyxJQUFJLElBQUcsSUFBRyxJQUFJLElBQUksRUFBQSxLQUFJLEdBQU8sS0FBSyxFQUFBO2NBQUEsQ0FBQSxHQUFBLEtBRy9DLElBQWEsTUFBTSxNQUFNLEVBQUEsR0FFdkI7WUFBQTtBQUFBLGdCQTBCSCxLQUFhLFdBQVcsR0FBSyxHQUFHLFlBQUEsSUFBZ0IsR0FBSyxNQUFNLENBQUE7QUFFakUsZUFBTSxVQUFVLE1BQWMsV0FBQTtBQUFBLGtCQWtCeEIsSUFDQSxJQWxCQSxLQUFPLE1BQU0sVUFBVSxNQUFNLEtBQUssU0FBQTtBQUFBLGtCQUVsQyxHQUFLLFNBQVMsS0FBSyxHQUFLLFNBQVM7QUFBQSxzQkFDN0IsSUFBSSxFQUFBLFNBQUEsT0FDQyxJQUFBLDZEQUFBLEVBQUEsT0FBd0UsR0FBSyxRQUFBLElBQUEsQ0FBQTtBQUFBLGtCQUt2RCxBQUFBLE9BQTFCLEdBQUssR0FBSyxTQUFTLE1BQU8sY0FDQSxBQUFBLE9BQTFCLEdBQUssR0FBSyxTQUFTLE1BQU87QUFBUCxzQkFFcEIsSUFBSSxFQUFBLFNBQUEsT0FDQyxJQUFBLGtNQUFBLENBQUE7QUFPTyxjQUFoQixHQUFLLFdBQVcsSUFDbEIsTUFBVyxHQUFLLElBQ2hCLEtBQWUsR0FBSyxJQUNwQixLQUFPLENBQUEsS0FDa0IsQUFBaEIsR0FBSyxXQUFXLElBQ3pCLE1BQVcsR0FBSyxJQUNoQixLQUFlLEdBQUssSUFDcEIsS0FBTyxDQUFDLEdBQUssRUFBQSxLQUNZLEFBQWhCLEdBQUssV0FBVyxLQUN6QixNQUFXLEdBQUssSUFDaEIsS0FBZSxHQUFLLElBQ3BCLEtBQU8sQ0FBQyxHQUFLLElBQUksR0FBSyxFQUFBO0FBQUEsa0JBR3BCLEtBQWM7QUFBQSxxQkFFbEIsR0FBSyxLQUFLLFNBQUMsSUFBRyxJQUFJLElBQUcsSUFBRyxJQUFJLElBQUksSUFBQTtBQUM5QixxQkFBYyxHQUFTLElBQWEsSUFBRyxJQUFJLElBQUcsSUFBRyxJQUFJLElBQUksRUFBQTtjQUFBLENBQUEsR0FBQSxLQUd0RCxJQUFhLE1BQU0sTUFBTSxFQUFBLEdBRXZCO1lBQUE7VUFBQSxFQWlRVyxJQUFPLEVBQUEsR0F0UDdCLFNBQXdCLElBQU8sSUFBQTtBQUFBLGdCQUN0QixLQUF5QixHQUF6QixNQUFNLEtBQW1CLEdBQW5CLE1BQU0sS0FBYSxHQUFiLFdBRWIsS0FBZSxTQUFTLEdBQUssR0FBRyxZQUFBLElBQWdCLEdBQUssTUFBTSxHQUFBLEVBQUk7QUFzQnJFLGVBQU0sVUFBVSxNQUFnQixTQUFVLElBQVEsSUFBUSxJQUFBO0FBQUEsa0JBRTNDLEFBQVQsT0FBUyxXQUF5QixBQUFkLEtBQUssU0FBUyxXQUFXLE9BQVMsS0FBSztBQUM3RCx1QkFBQTtBQUFPLGtCQUVnQixBQUFyQixVQUFVLFdBQVc7QUFBWCx1QkFFTCxHQUFTLE1BQU0sSUFEdEIsS0FBVyxFQUFBO0FBQUEsa0JBSVksQUFBckIsVUFBVSxXQUFXLEdBQUc7QUFDMUIscUJBQVMsS0FBSyxJQUNkLEtBQVc7QUFBQSxvQkFFTCxLQUFXLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxvQkFBQSxBQUV0QixPQUZzQjtBQUcvQix3QkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEsd0JBQUEsRUFBQSxPQUFxQyxJQUFBLHNCQUFBLENBQUE7QUFBQSx1QkFLM0MsR0FDTCxLQUFLLE9BQ0ksQUFBVCxPQUFTLFVBQVUsS0FBSyxPQUFPLElBQy9CLElBQ0EsSUFDQSxFQUFBO2NBQUE7QUFBQSxrQkFJcUIsQUFBckIsVUFBVSxXQUFXLEdBQUc7QUFDMUIscUJBQVMsS0FBSyxJQUNkLEtBQVMsS0FBSztBQUFBLG9CQUVSLEtBQWEsS0FBSyxPQUFPLElBQUksRUFBQTtBQUFBLG9CQUFBLENBRTlCO0FBQ0gsd0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHlCQUFBLEVBQUEsT0FBc0MsSUFBQSw2QkFBQSxDQUFBO0FBQUEsb0JBQUEsQ0FHOUMsS0FBSyxPQUFPLElBQUksRUFBQTtBQUNuQix3QkFBTSxJQUFJLEdBQUEsU0FBQSxPQUNDLElBQUEseUJBQUEsRUFBQSxPQUFzQyxJQUFBLDZCQUFBLENBQUE7QUFBQSx1QkFJNUMsR0FDTCxJQUNBLEtBQUssT0FDTCxJQUNBLElBQ0EsSUFDQSxFQUFBO2NBQUE7QUFBQSxvQkFJRSxJQUFJLEVBQUEsU0FBQSxPQUNDLElBQUEsb0RBQUEsRUFBQSxPQUFpRSxVQUFVLFFBQUEsSUFBQSxDQUFBO1lBQUE7QUFBQSxnQkF3QmxGLEtBQVcsU0FBUyxHQUFLLEdBQUcsWUFBQSxJQUFnQixHQUFLLE1BQU0sR0FBQSxFQUFJO0FBRWpFLGVBQU0sVUFBVSxNQUFZLFdBQUE7QUFBQSxrQkFDcEIsS0FBTyxNQUFNLFVBQVUsTUFBTSxLQUFLLFNBQUEsR0FDbEMsS0FBVyxHQUFLLElBQUE7QUFBQSxxQkFFdEIsR0FBSyxLQUFLLFNBQUMsSUFBRyxJQUFJLElBQUcsSUFBRyxJQUFJLElBQUksSUFBQTtBQUFBLHVCQUN2QixHQUFTLElBQUcsSUFBSSxJQUFHLElBQUcsSUFBSSxJQUFJLEVBQUE7Y0FBQSxDQUFBLEdBQUEsQ0FBQSxDQUd6QixLQUFLLElBQWMsTUFBTSxNQUFNLEVBQUE7WUFBQTtBQUFBLGdCQTJCekMsS0FBWSxVQUFVLEdBQUssR0FBRyxZQUFBLElBQWdCLEdBQUssTUFBTSxHQUFBLEVBQUk7QUFFbkUsZUFBTSxVQUFVLE1BQWEsV0FBQTtBQUFBLGtCQUNyQixLQUFPLE1BQU0sVUFBVSxNQUFNLEtBQUssU0FBQSxHQUNsQyxLQUFXLEdBQUssSUFBQTtBQUFBLHFCQUV0QixHQUFLLEtBQUssU0FBQyxJQUFHLElBQUksSUFBRyxJQUFHLElBQUksSUFBSSxJQUFBO0FBQUEsdUJBQUEsQ0FDdEIsR0FBUyxJQUFHLElBQUksSUFBRyxJQUFHLElBQUksSUFBSSxFQUFBO2NBQUEsQ0FBQSxHQUFBLENBRzFCLEtBQUssSUFBYyxNQUFNLE1BQU0sRUFBQTtZQUFBO1VBQUEsRUEyRjlCLElBQU8sRUFBQSxHQTdFMUIsU0FBbUMsSUFBTyxJQUFBO0FBQUEsZ0JBQzNCLEtBQWlDLEdBQXZDLE1BQW9CLEtBQW1CLEdBQW5CLE1BQU0sS0FBYSxHQUFiLFdBRTNCLEtBQU8sR0FBYSxNQUFNLEdBQUEsRUFBSSxJQUFLO0FBa0J6QyxlQUFNLFVBQVUsTUFBUSxTQUFVLElBQVEsSUFBQTtBQUFBLGtCQUUzQixBQUFULE9BQVMsV0FBeUIsQUFBZCxLQUFLLFNBQVMsV0FBVyxPQUFTLEtBQUs7QUFDN0QsdUJBQU8sRUFBUyxNQUFBO0FBQUEsa0JBQUEsQ0FFYixVQUFVO0FBQVEsdUJBQU8sR0FBbUIsTUFBTSxFQUFBO0FBQUEsa0JBRTlCLEFBQXJCLFVBQVUsV0FBVyxHQUFHO0FBQzFCLHFCQUFTLEtBQUs7QUFBQSxvQkFFUixLQUFhLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxvQkFBQSxDQUU5QjtBQUNILHdCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSx3QkFBQSxFQUFBLE9BQTZCLElBQUEsc0JBQUEsQ0FBQTtBQUFBLHVCQUluQyxHQUEwQixJQUFNLElBQVcsRUFBQTtjQUFBO0FBQUEsa0JBRzNCLEFBQXJCLFVBQVUsV0FBVyxHQUFHO0FBQzFCLHFCQUFTLEtBQUssSUFDZCxLQUFTLEtBQUs7QUFBQSxvQkFFUixLQUFhLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFBQSxvQkFBQSxDQUU5QjtBQUNILHdCQUFNLElBQUksR0FBQSxTQUFBLE9BQ0MsSUFBQSx5QkFBQSxFQUFBLE9BQThCLElBQUEsNkJBQUEsQ0FBQTtBQUFBLG9CQUFBLENBR3RDLEtBQUssT0FBTyxJQUFJLEVBQUE7QUFDbkIsd0JBQU0sSUFBSSxHQUFBLFNBQUEsT0FDQyxJQUFBLHlCQUFBLEVBQUEsT0FBOEIsSUFBQSw2QkFBQSxDQUFBO0FBQUEsdUJBSXBDLEdBQTBCLElBQU0sSUFBVyxJQUFZLEVBQUE7Y0FBQTtBQUFBLG9CQUcxRCxJQUFJLEVBQUEsU0FBQSxPQUNDLElBQUEsb0RBQUEsRUFBQSxPQUF5RCxVQUFVLFFBQUEsSUFBQSxDQUFBO1lBQUE7VUFBQSxFQWVwRCxJQUFPLEVBQUE7UUFBQSxDQUFBO01BQUEsRUlrNUNWLEdBQUEsR0gvcUVaLFNBQXdDLElBQUE7QUFDckQsV0FBb0IsUUFBUSxTQUFBLElBQUE7QUFDMUIsYUFBMkIsSUFBTyxFQUFBLEdBQ2xDLEdBQXNCLElBQU8sRUFBQSxHQUM3QixHQUFtQixJQUFPLEVBQUEsR0FDMUIsR0FBOEIsSUFBTyxFQUFBO1FBQUEsQ0FBQTtNQUFBLEVHK3FFVixHQUFBO0FBQUEsVUNueUZ6QixLQUFBLFNBQUEsSUFBQTtBQUFBLG9CQUNRLElBQUE7QUFBQSxjQUNKLEtBQWUsR0FBTyxFQUFDLE1BQU0sV0FBQSxHQUFhLEVBQUE7QUFBQSxjQUU1QyxXQUFXLE1BQUEsQUFBZ0IsR0FBYSxVQUE3QjtBQUNiLGtCQUFNLElBQUksRUFDUiw4RkFBQTtBQUFBLGNBR3NCLEFBQXRCLEdBQWEsU0FBUztBQUN4QixrQkFBTSxJQUFJLEVBQ1IsdUNBQ0UsR0FBYSxPQUNiLDBCQUFBO0FBQUEsaUJBR04sR0FBQSxLQUFBLE1BQU0sRUFBQSxLQUFBO1FBQUE7QUFBQSxlQUFBLEVBQUEsSUFBQSxFQUFBLEdBQUE7TUFBQSxFQWhCa0IsR0FBQSxHQW1CdEIsS0FBQSxTQUFBLElBQUE7QUFBQSxvQkFDUSxJQUFBO0FBQUEsY0FDSixLQUFlLEdBQU8sRUFBQyxNQUFNLGFBQUEsR0FBZSxFQUFBO0FBQUEsY0FFOUMsV0FBVyxNQUFBLEFBQWdCLEdBQWEsVUFBN0I7QUFDYixrQkFBTSxJQUFJLEVBQ1IsZ0dBQUE7QUFBQSxjQUdzQixBQUF0QixHQUFhLFNBQVM7QUFDeEIsa0JBQU0sSUFBSSxFQUNSLHlDQUNFLEdBQWEsT0FDYiwwQkFBQTtBQUFBLGlCQUdOLEdBQUEsS0FBQSxNQUFNLEVBQUEsS0FBQTtRQUFBO0FBQUEsZUFBQSxFQUFBLElBQUEsRUFBQSxHQUFBO01BQUEsRUFoQm9CLEdBQUEsR0FtQnhCLEtBQUEsU0FBQSxJQUFBO0FBQUEsb0JBQ1EsSUFBQTtBQUFBLGNBQ0osS0FBZSxHQUFPLEVBQUMsT0FBQSxLQUFPLEdBQU8sRUFBQTtBQUFBLGNBRXZDLFdBQVcsTUFBQSxBQUFnQixHQUFhLFVBQTdCO0FBQ2Isa0JBQU0sSUFBSSxFQUNSLDRGQUFBO0FBQUEsaUJBR0osR0FBQSxLQUFBLE1BQU0sRUFBQSxLQUFBO1FBQUE7QUFBQSxlQUFBLEVBQUEsSUFBQSxFQUFBLEdBQUE7TUFBQSxFQVRlLEdBQUEsR0FZbkIsS0FBQSxTQUFBLElBQUE7QUFBQSxvQkFDUSxJQUFBO0FBQUEsY0FDSixLQUFlLEdBQU8sRUFBQyxNQUFNLFlBQVksT0FBQSxLQUFPLEdBQU8sRUFBQTtBQUFBLGNBRXpELFdBQVcsTUFBQSxBQUFnQixHQUFhLFVBQTdCO0FBQ2Isa0JBQU0sSUFBSSxFQUNSLG9HQUFBO0FBQUEsY0FHc0IsQUFBdEIsR0FBYSxTQUFTO0FBQ3hCLGtCQUFNLElBQUksRUFDUiw0Q0FDRSxHQUFhLE9BQ2IsMEJBQUE7QUFBQSxpQkFHTixHQUFBLEtBQUEsTUFBTSxFQUFBLEtBQUE7UUFBQTtBQUFBLGVBQUEsRUFBQSxJQUFBLEVBQUEsR0FBQTtNQUFBLEVBaEJ1QixHQUFBLEdBbUIzQixLQUFBLFNBQUEsSUFBQTtBQUFBLG9CQUNRLElBQUE7QUFBQSxjQUNKLEtBQWUsR0FBTyxFQUFDLE1BQU0sY0FBYyxPQUFBLEtBQU8sR0FBTyxFQUFBO0FBQUEsY0FFM0QsV0FBVyxNQUFBLEFBQWdCLEdBQWEsVUFBN0I7QUFDYixrQkFBTSxJQUFJLEVBQ1Isc0dBQUE7QUFBQSxjQUdzQixBQUF0QixHQUFhLFNBQVM7QUFDeEIsa0JBQU0sSUFBSSxFQUNSLDhDQUNFLEdBQWEsT0FDYiwwQkFBQTtBQUFBLGlCQUdOLEdBQUEsS0FBQSxNQUFNLEVBQUEsS0FBQTtRQUFBO0FBQUEsZUFBQSxFQUFBLElBQUEsRUFBQSxHQUFBO01BQUEsRUFoQnlCLEdBQUE7QUF1Qm5DLGtCQUFnQyxJQUFBO0FBUTlCLFdBQU0sT0FBTyxTQUFVLElBQU0sSUFBQTtBQUFBLGNBRXJCLEtBQWUsR0FBTyxDQUFBLEdBQUksR0FBSyxTQUFTLEVBQUEsR0FFeEMsS0FBVyxJQUFJLEdBQU0sRUFBQTtBQUFBLGlCQUMzQixHQUFBLE9BQWdCLEVBQUEsR0FFVDtRQUFBO01BQUE7QUFBQSxhQUlYLEdBQXVCLEdBQUEsR0FDdkIsR0FBdUIsRUFBQSxHQUN2QixHQUF1QixFQUFBLEdBQ3ZCLEdBQXVCLEVBQUEsR0FDdkIsR0FBdUIsRUFBQSxHQUN2QixHQUF1QixFQUFBLEdBRXZCLElBQU0sUUFBUSxLQUNkLElBQU0sZ0JBQWdCLElBQ3RCLElBQU0sa0JBQWtCLElBQ3hCLElBQU0sYUFBYSxJQUNuQixJQUFNLHFCQUFxQixJQUMzQixJQUFNLHVCQUF1QixJQUU3QixJQUFNLDZCQUE2QixHQUNuQyxJQUFNLHFCQUFxQixJQUMzQixJQUFNLGtCQUFrQixJQUFBO0lBQUEsQ0FBQTs7Ozs7QUNsSnhCO0FBQUE7QUFjQSxZQUFPLFVBQVUsaUJBQWlCLE9BQU87QUFDdkMsYUFDRSxVQUFVLFFBQ1YsT0FBTyxVQUFVLFlBQ2pCLE9BQU8sTUFBTSw2QkFBNkIsY0FDMUMsT0FBTyxNQUFNLGFBQWEsY0FDMUIsT0FBTyxNQUFNLFVBQVU7QUFBQSxJQUUzQjtBQUFBO0FBQUE7OztBQ3RCQTtBQUFBO0FBQUEsWUFBUSx1QkFBdUIsT0FBTyxnQkFBZ0I7QUFDdEQsWUFBUSxpQkFBaUIsT0FBTyxXQUFXO0FBQUE7QUFBQTs7O0FDRDNDO0FBQUE7QUFNQSxRQUFJLFVBQVU7QUFFZCxRQUFJLHVCQUF1QixRQUFRO0FBQ25DLFFBQUksaUJBQWlCLFFBQVE7QUFRN0IsWUFBTyxVQUFVLGlCQUFpQixVQUFVLFVBQVU7QUFDcEQsVUFBSSxVQUFVLEdBQUcsR0FBRyxHQUFHO0FBRXZCLFVBQUksQ0FBQztBQUFVLGNBQU0sSUFBSSxNQUFNLHdDQUF3QztBQUV2RSxVQUFJLE9BQU8sYUFBYTtBQUN0QixjQUFNLElBQUksTUFBTSw0Q0FBNEM7QUFHOUQsVUFDRSxNQUFNLFFBQVEsUUFBUSxLQUNyQix3QkFBd0IsWUFBWSxPQUFPLFFBQVEsS0FDcEQsT0FBTyxhQUFhLFlBQ3BCLFNBQVMsU0FBUyxNQUFNLHNCQUN4QjtBQUNBLGFBQUssSUFBSSxHQUFHLElBQUksU0FBUyxRQUFRLElBQUksR0FBRztBQUFLLG1CQUFTLFNBQVMsSUFBSSxDQUFDO0FBQ3BFO0FBQUEsTUFDRjtBQUdBLFVBQUksT0FBTyxTQUFTLFlBQVksWUFBWTtBQUMxQyxpQkFBUyxRQUFRLFFBQVE7QUFDekI7QUFBQSxNQUNGO0FBR0EsVUFDRSxrQkFDQSxPQUFPLFlBQVksWUFDbkIsT0FBTyxTQUFTLFNBQVMsWUFDekI7QUFDQSxtQkFBVyxTQUFTLE9BQU8sVUFBVTtBQUFBLE1BQ3ZDO0FBR0EsVUFBSSxPQUFPLFNBQVMsU0FBUyxZQUFZO0FBQ3ZDLG1CQUFXO0FBQ1gsWUFBSTtBQUVKLGVBQVMsSUFBSSxTQUFTLEtBQUssR0FBSSxFQUFFLFNBQVMsTUFBTztBQUMvQyxtQkFBUyxFQUFFLE9BQU8sQ0FBQztBQUNuQjtBQUFBLFFBQ0Y7QUFFQTtBQUFBLE1BQ0Y7QUFHQSxXQUFLLEtBQUssVUFBVTtBQUNsQixZQUFJLFNBQVMsZUFBZSxDQUFDLEdBQUc7QUFDOUIsbUJBQVMsU0FBUyxJQUFJLENBQUM7QUFBQSxRQUN6QjtBQUFBLE1BQ0Y7QUFFQTtBQUFBLElBQ0Y7QUFBQTtBQUFBOzs7QUN4RUE7QUFBQTtBQWlCQSxRQUFJLG1CQUFtQixLQUFLLElBQUksR0FBRyxDQUFDLElBQUk7QUFBeEMsUUFDSSxvQkFBb0IsS0FBSyxJQUFJLEdBQUcsRUFBRSxJQUFJO0FBRDFDLFFBRUksb0JBQW9CLEtBQUssSUFBSSxHQUFHLEVBQUUsSUFBSTtBQUUxQyxRQUFJLDBCQUEwQixLQUFLLElBQUksR0FBRyxDQUFDLElBQUk7QUFBL0MsUUFDSSwyQkFBMkIsS0FBSyxJQUFJLEdBQUcsRUFBRSxJQUFJO0FBRGpELFFBRUksMkJBQTJCLEtBQUssSUFBSSxHQUFHLEVBQUUsSUFBSTtBQUVqRCxZQUFRLGtCQUFrQixTQUFTLE1BQU07QUFDdkMsVUFBSSxXQUFXLE9BQU87QUFFdEIsVUFBSSxZQUFZO0FBQ2QsZUFBTztBQUVULFVBQUksWUFBWTtBQUNkLGVBQU87QUFFVCxVQUFJLFlBQVk7QUFDZCxlQUFPO0FBRVQsWUFBTSxJQUFJLE1BQU0saUVBQWlFO0FBQUEsSUFDbkY7QUFFQSxZQUFRLHdCQUF3QixTQUFTLE1BQU07QUFDN0MsVUFBSSxXQUFXLE9BQU87QUFFdEIsVUFBSSxZQUFZO0FBQ2QsZUFBTztBQUVULFVBQUksWUFBWTtBQUNkLGVBQU87QUFFVCxVQUFJLFlBQVk7QUFDZCxlQUFPO0FBRVQsYUFBTztBQUFBLElBQ1Q7QUFRQSxZQUFRLGdCQUFnQixTQUFTLE9BQU87QUFHdEMsVUFBSSxVQUFXLFNBQVEsSUFBSTtBQUd6QixZQUFJLEtBQUssS0FBSyxLQUFLLE1BQU0sSUFBSTtBQUMzQixjQUFJLFNBQVMsT0FBTyxTQUFTO0FBQzNCLG1CQUFPO0FBRVQsY0FBSSxTQUFTLFNBQVMsU0FBUztBQUM3QixtQkFBTztBQUVULGlCQUFPO0FBQUEsUUFDVCxPQUNLO0FBRUgsY0FBSSxTQUFTO0FBQ1gsbUJBQU87QUFFVCxjQUFJLFNBQVM7QUFDWCxtQkFBTztBQUVULGlCQUFPO0FBQUEsUUFDVDtBQUFBLE1BQ0Y7QUFJQSxhQUFPO0FBQUEsSUFDVDtBQVVBLFFBQUksZ0JBQWdCO0FBQUEsTUFDbEIsWUFBWTtBQUFBLE1BQ1osV0FBVztBQUFBLE1BQ1gsYUFBYTtBQUFBLE1BQ2IsWUFBWTtBQUFBLE1BQ1osYUFBYTtBQUFBLE1BQ2IsWUFBWTtBQUFBLE1BQ1osY0FBYztBQUFBLE1BQ2QsY0FBYztBQUFBLElBQ2hCO0FBR0EsWUFBUSwyQkFBMkIsU0FBUyxPQUFPLFFBQVE7QUFDekQsVUFBSSxVQUFVLE1BQ1YsY0FBYyxHQUNkLEdBQ0EsR0FDQSxHQUNBLEdBQ0E7QUFFSixXQUFLLElBQUksR0FBRyxJQUFJLE1BQU0sUUFBUSxJQUFJLEdBQUcsS0FBSztBQUN4QyxZQUFJLFNBQVMsT0FBTyxNQUFNLEVBQUUsSUFBSSxNQUFNO0FBQ3RDLFlBQUksUUFBUSxjQUFjLENBQUM7QUFDM0IsWUFBSSxjQUFjLEVBQUU7QUFFcEIsWUFBSSxJQUFJLGFBQWE7QUFDbkIsd0JBQWM7QUFDZCxvQkFBVTtBQUFBLFFBQ1o7QUFBQSxNQUNGO0FBRUEsYUFBTztBQUFBLElBQ1Q7QUFRQSxZQUFRLGVBQWUsU0FBUyxPQUFPO0FBQ3JDLGFBQU8sT0FBTyxnQkFBZ0IsZUFBZSxZQUFZLE9BQU8sS0FBSztBQUFBLElBQ3ZFO0FBUUEsWUFBUSxTQUFTLFdBQVc7QUFDMUIsVUFBSSxTQUFTLEdBQ1QsR0FDQSxHQUNBO0FBRUosV0FBSyxJQUFJLEdBQUcsSUFBSSxVQUFVLFFBQVEsSUFBSSxHQUFHO0FBQ3ZDLGtCQUFVLFVBQVUsR0FBRztBQUV6QixVQUFJLFFBQVEsSUFBSyxVQUFVLEdBQUcsWUFBYSxNQUFNO0FBRWpELFdBQUssSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsS0FBSztBQUM3QixjQUFNLElBQUksVUFBVSxJQUFJLENBQUM7QUFDekIsYUFBSyxVQUFVLEdBQUc7QUFBQSxNQUNwQjtBQUVBLGFBQU87QUFBQSxJQUNUO0FBUUEsWUFBUSxVQUFVLFNBQVMsUUFBUTtBQUNqQyxVQUFJLGVBQWUsUUFBUSxnQkFBZ0IsTUFBTTtBQUVqRCxVQUFJLFFBQVEsSUFBSSxhQUFhLE1BQU07QUFFbkMsZUFBUyxJQUFJLEdBQUcsSUFBSSxRQUFRO0FBQzFCLGNBQU0sS0FBSztBQUViLGFBQU87QUFBQSxJQUNUO0FBQUE7QUFBQTs7O0FDMUxBO0FBQUE7QUFNQSxRQUFJLFVBQVU7QUFFZCxRQUFJLFFBQVE7QUFTWix5QkFBcUIsUUFBUTtBQUMzQixhQUFPLE1BQU0sUUFBUSxNQUFNLEtBQUssTUFBTSxhQUFhLE1BQU07QUFBQSxJQUMzRDtBQVNBLHlCQUFxQixRQUFRO0FBQzNCLFVBQUksT0FBTyxPQUFPLFdBQVc7QUFDM0IsZUFBTyxPQUFPO0FBRWhCLFVBQUksT0FBTyxPQUFPLFNBQVM7QUFDekIsZUFBTyxPQUFPO0FBRWhCO0FBQUEsSUFDRjtBQVFBLHFCQUFpQixRQUFRO0FBQ3ZCLFVBQUksSUFBSSxZQUFZLE1BQU07QUFFMUIsVUFBSSxRQUFRLE9BQU8sTUFBTSxXQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQztBQUVwRCxVQUFJLElBQUk7QUFHUixjQUFRLFFBQVEsU0FBUyxPQUFPO0FBQzlCLGNBQU0sT0FBTztBQUFBLE1BQ2YsQ0FBQztBQUVELGFBQU87QUFBQSxJQUNUO0FBUUEsZ0NBQTRCLFFBQVE7QUFDbEMsVUFBSSxJQUFJLFlBQVksTUFBTTtBQUUxQixVQUFJLGFBQWEsT0FBTyxNQUFNLFdBQzVCLE1BQU0sZ0JBQWdCLENBQUMsSUFDdkI7QUFFRixVQUFJLFFBQVEsT0FBTyxNQUFNLFdBQVcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3BELFVBQUksVUFBVSxPQUFPLE1BQU0sV0FBVyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUM7QUFFM0QsVUFBSSxJQUFJO0FBR1IsY0FBUSxRQUFRLFNBQVMsT0FBTztBQUM5QixjQUFNLEtBQUs7QUFDWCxnQkFBUSxLQUFLO0FBQUEsTUFDZixDQUFDO0FBRUQsYUFBTyxDQUFDLE9BQU8sT0FBTztBQUFBLElBQ3hCO0FBS0EsWUFBUSxjQUFjO0FBQ3RCLFlBQVEsY0FBYztBQUN0QixZQUFRLFVBQVU7QUFDbEIsWUFBUSxxQkFBcUI7QUFBQTtBQUFBOzs7QUM1RjdCO0FBQUE7QUFhQSxzQkFBa0IsTUFBTTtBQUN0QixVQUFJLE9BQU8sU0FBUztBQUNsQixjQUFNLElBQUksTUFBTSw2Q0FBNkM7QUFFL0QsV0FBSyxPQUFPO0FBQUEsSUFDZDtBQUtBLFFBQUksT0FBTyxXQUFXO0FBQ3BCLGVBQVMsVUFBVSxPQUFPLFlBQVksV0FBWTtBQUNoRCxlQUFPO0FBQUEsTUFDVDtBQVFGLGFBQVMsS0FBSyxXQUFZO0FBQ3hCLFVBQUksT0FBTyxXQUNULElBQUksS0FBSyxRQUNULElBQUk7QUFFTixhQUFPLElBQUksU0FBUyxXQUFZO0FBQzlCLFlBQUksS0FBSztBQUFHLGlCQUFPLEVBQUMsTUFBTSxLQUFJO0FBRTlCLGVBQU8sRUFBQyxNQUFNLE9BQU8sT0FBTyxLQUFLLEtBQUk7QUFBQSxNQUN2QyxDQUFDO0FBQUEsSUFDSDtBQU9BLGFBQVMsUUFBUSxXQUFZO0FBQzNCLFVBQUksV0FBVyxJQUFJLFNBQVMsV0FBWTtBQUN0QyxlQUFPLEVBQUMsTUFBTSxLQUFJO0FBQUEsTUFDcEIsQ0FBQztBQUVELGFBQU87QUFBQSxJQUNUO0FBUUEsYUFBUyxlQUFlLFNBQVUsVUFBVTtBQUMxQyxVQUFJLElBQUksR0FDTixJQUFJLFNBQVM7QUFFZixhQUFPLElBQUksU0FBUyxXQUFZO0FBQzlCLFlBQUksS0FBSztBQUFHLGlCQUFPLEVBQUMsTUFBTSxLQUFJO0FBRTlCLGVBQU8sRUFBQyxNQUFNLE9BQU8sT0FBTyxTQUFTLEtBQUk7QUFBQSxNQUMzQyxDQUFDO0FBQUEsSUFDSDtBQVFBLGFBQVMsS0FBSyxTQUFVLE9BQU87QUFDN0IsVUFBSSxpQkFBaUI7QUFBVSxlQUFPO0FBRXRDLGFBQ0UsT0FBTyxVQUFVLFlBQ2pCLFVBQVUsUUFDVixPQUFPLE1BQU0sU0FBUztBQUFBLElBRTFCO0FBS0EsWUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDL0ZqQjtBQUFBO0FBTUEsUUFBSSxZQUFZO0FBQWhCLFFBQ0ksV0FBVztBQU9mLHdCQUFvQixZQUFZLFVBQVU7QUFFeEMsVUFBSSxVQUFVLFNBQVM7QUFDckIsY0FBTSxJQUFJLE1BQU0saUVBQWlFO0FBRW5GLFVBQUksT0FBTyxhQUFhLFlBQVksWUFBWTtBQUM5QyxjQUFNLElBQUksTUFBTSxnRUFBZ0U7QUFFbEYsV0FBSyxhQUFhO0FBQ2xCLFdBQUssV0FBVztBQUNoQixXQUFLLFFBQVEsSUFBSSxXQUFXLEtBQUssUUFBUTtBQUN6QyxXQUFLLE1BQU07QUFBQSxJQUNiO0FBT0EsZUFBVyxVQUFVLFFBQVEsV0FBVztBQUd0QyxXQUFLLFFBQVE7QUFDYixXQUFLLE9BQU87QUFBQSxJQUNkO0FBUUEsZUFBVyxVQUFVLE9BQU8sU0FBUyxNQUFNO0FBQ3pDLFVBQUksS0FBSyxTQUFTLEtBQUs7QUFDckIsY0FBTSxJQUFJLE1BQU0saURBQWlELEtBQUssV0FBVyxhQUFhO0FBRWhHLFVBQUksU0FBUyxNQUFLLFFBQVEsS0FBSyxRQUFRLEtBQUs7QUFFNUMsV0FBSyxNQUFNLFVBQVM7QUFFcEIsYUFBTyxFQUFFLEtBQUs7QUFBQSxJQUNoQjtBQVFBLGVBQVcsVUFBVSxVQUFVLFNBQVMsTUFBTTtBQUM1QyxVQUFJLEtBQUssU0FBUyxLQUFLO0FBQ3JCLGNBQU0sSUFBSSxNQUFNLG9EQUFvRCxLQUFLLFdBQVcsYUFBYTtBQUVuRyxVQUFJLFNBQVEsS0FBSyxRQUFRO0FBRXpCLFVBQUksS0FBSyxVQUFVO0FBQ2pCLGlCQUFRLEtBQUssV0FBVztBQUUxQixXQUFLLE1BQU0sVUFBUztBQUNwQixXQUFLLFFBQVE7QUFFYixhQUFPLEVBQUUsS0FBSztBQUFBLElBQ2hCO0FBT0EsZUFBVyxVQUFVLE1BQU0sV0FBVztBQUNwQyxVQUFJLEtBQUssU0FBUztBQUNoQjtBQUVGLFlBQU0sU0FBUyxNQUFLLFFBQVEsS0FBSyxPQUFPLEtBQUssS0FBSztBQUVsRCxXQUFLO0FBRUwsYUFBTyxLQUFLLE1BQU07QUFBQSxJQUNwQjtBQU9BLGVBQVcsVUFBVSxRQUFRLFdBQVc7QUFDdEMsVUFBSSxLQUFLLFNBQVM7QUFDaEI7QUFFRixVQUFJLFNBQVEsS0FBSztBQUVqQixXQUFLO0FBQ0wsV0FBSztBQUVMLFVBQUksS0FBSyxVQUFVLEtBQUs7QUFDdEIsYUFBSyxRQUFRO0FBRWYsYUFBTyxLQUFLLE1BQU07QUFBQSxJQUNwQjtBQU9BLGVBQVcsVUFBVSxZQUFZLFdBQVc7QUFDMUMsVUFBSSxLQUFLLFNBQVM7QUFDaEI7QUFFRixhQUFPLEtBQUssTUFBTSxLQUFLO0FBQUEsSUFDekI7QUFPQSxlQUFXLFVBQVUsV0FBVyxXQUFXO0FBQ3pDLFVBQUksS0FBSyxTQUFTO0FBQ2hCO0FBRUYsVUFBSSxTQUFRLEtBQUssUUFBUSxLQUFLLE9BQU87QUFFckMsVUFBSSxTQUFRLEtBQUs7QUFDZixrQkFBUyxLQUFLO0FBRWhCLGFBQU8sS0FBSyxNQUFNO0FBQUEsSUFDcEI7QUFRQSxlQUFXLFVBQVUsTUFBTSxTQUFTLFFBQU87QUFDekMsVUFBSSxLQUFLLFNBQVM7QUFDaEI7QUFFRixlQUFRLEtBQUssUUFBUTtBQUVyQixVQUFJLFNBQVEsS0FBSztBQUNmLGtCQUFTLEtBQUs7QUFFaEIsYUFBTyxLQUFLLE1BQU07QUFBQSxJQUNwQjtBQVNBLGVBQVcsVUFBVSxVQUFVLFNBQVMsVUFBVSxPQUFPO0FBQ3ZELGNBQVEsVUFBVSxTQUFTLElBQUksUUFBUTtBQUV2QyxVQUFJLEtBQUksS0FBSyxVQUNULElBQUksS0FBSyxNQUNULElBQUksS0FBSyxPQUNULElBQUk7QUFFUixhQUFPLElBQUksR0FBRztBQUNaLGlCQUFTLEtBQUssT0FBTyxLQUFLLE1BQU0sSUFBSSxHQUFHLElBQUk7QUFDM0M7QUFDQTtBQUVBLFlBQUksTUFBTTtBQUNSLGNBQUk7QUFBQSxNQUNSO0FBQUEsSUFDRjtBQVFBLGVBQVcsVUFBVSxVQUFVLFdBQVc7QUFHeEMsVUFBSSxTQUFTLEtBQUssUUFBUSxLQUFLO0FBRS9CLFVBQUksU0FBUyxLQUFLO0FBQ2hCLGVBQU8sS0FBSyxNQUFNLE1BQU0sS0FBSyxPQUFPLE1BQU07QUFFNUMsVUFBSSxRQUFRLElBQUksS0FBSyxXQUFXLEtBQUssSUFBSSxHQUNyQyxLQUFJLEtBQUssVUFDVCxJQUFJLEtBQUssTUFDVCxJQUFJLEtBQUssT0FDVCxJQUFJO0FBRVIsYUFBTyxJQUFJLEdBQUc7QUFDWixjQUFNLEtBQUssS0FBSyxNQUFNO0FBQ3RCO0FBQ0E7QUFFQSxZQUFJLE1BQU07QUFDUixjQUFJO0FBQUEsTUFDUjtBQUVBLGFBQU87QUFBQSxJQUNUO0FBT0EsZUFBVyxVQUFVLFNBQVMsV0FBVztBQUN2QyxVQUFJLFFBQVEsS0FBSyxPQUNiLEtBQUksS0FBSyxVQUNULElBQUksS0FBSyxNQUNULElBQUksS0FBSyxPQUNULElBQUk7QUFFUixhQUFPLElBQUksU0FBUyxXQUFXO0FBQzdCLFlBQUksS0FBSztBQUNQLGlCQUFPO0FBQUEsWUFDTCxNQUFNO0FBQUEsVUFDUjtBQUVGLFlBQUksUUFBUSxNQUFNO0FBRWxCO0FBQ0E7QUFFQSxZQUFJLE1BQU07QUFDUixjQUFJO0FBRU4sZUFBTztBQUFBLFVBQ0w7QUFBQSxVQUNBLE1BQU07QUFBQSxRQUNSO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSDtBQU9BLGVBQVcsVUFBVSxVQUFVLFdBQVc7QUFDeEMsVUFBSSxRQUFRLEtBQUssT0FDYixLQUFJLEtBQUssVUFDVCxJQUFJLEtBQUssTUFDVCxJQUFJLEtBQUssT0FDVCxJQUFJO0FBRVIsYUFBTyxJQUFJLFNBQVMsV0FBVztBQUM3QixZQUFJLEtBQUs7QUFDUCxpQkFBTztBQUFBLFlBQ0wsTUFBTTtBQUFBLFVBQ1I7QUFFRixZQUFJLFFBQVEsTUFBTTtBQUVsQjtBQUVBLFlBQUksTUFBTTtBQUNSLGNBQUk7QUFFTixlQUFPO0FBQUEsVUFDTCxPQUFPLENBQUMsS0FBSyxLQUFLO0FBQUEsVUFDbEIsTUFBTTtBQUFBLFFBQ1I7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBS0EsUUFBSSxPQUFPLFdBQVc7QUFDcEIsaUJBQVcsVUFBVSxPQUFPLFlBQVksV0FBVyxVQUFVO0FBSy9ELGVBQVcsVUFBVSxVQUFVLFdBQVc7QUFDeEMsVUFBSSxRQUFRLEtBQUssUUFBUTtBQUV6QixZQUFNLE9BQU8sS0FBSyxXQUFXO0FBQzdCLFlBQU0sV0FBVyxLQUFLO0FBR3RCLGFBQU8sZUFBZSxPQUFPLGVBQWU7QUFBQSxRQUMxQyxPQUFPO0FBQUEsUUFDUCxZQUFZO0FBQUEsTUFDZCxDQUFDO0FBRUQsYUFBTztBQUFBLElBQ1Q7QUFFQSxRQUFJLE9BQU8sV0FBVztBQUNwQixpQkFBVyxVQUFVLE9BQU8sSUFBSSw0QkFBNEIsS0FBSyxXQUFXLFVBQVU7QUFXeEYsZUFBVyxPQUFPLFNBQVMsVUFBVSxZQUFZLFVBQVU7QUFDekQsVUFBSSxVQUFVLFNBQVMsR0FBRztBQUN4QixtQkFBVyxVQUFVLFlBQVksUUFBUTtBQUV6QyxZQUFJLE9BQU8sYUFBYTtBQUN0QixnQkFBTSxJQUFJLE1BQU0sZ0hBQWdIO0FBQUEsTUFDcEk7QUFFQSxVQUFJLFFBQVEsSUFBSSxXQUFXLFlBQVksUUFBUTtBQUUvQyxVQUFJLFVBQVUsWUFBWSxRQUFRLEdBQUc7QUFDbkMsWUFBSSxHQUFHO0FBRVAsYUFBSyxJQUFJLEdBQUcsSUFBSSxTQUFTLFFBQVEsSUFBSSxHQUFHO0FBQ3RDLGdCQUFNLE1BQU0sS0FBSyxTQUFTO0FBRTVCLGNBQU0sT0FBTztBQUViLGVBQU87QUFBQSxNQUNUO0FBRUEsZ0JBQVUsUUFBUSxVQUFVLFNBQVMsT0FBTztBQUMxQyxjQUFNLEtBQUssS0FBSztBQUFBLE1BQ2xCLENBQUM7QUFFRCxhQUFPO0FBQUEsSUFDVDtBQUtBLFlBQU8sVUFBVTtBQUFBO0FBQUE7OztBQzlWakI7QUFBQTtBQU9BLDZCQUF5QixNQUFNLE9BQU0sT0FBTztBQUMxQyxXQUFLLE9BQU87QUFDWixXQUFLLGFBQWE7QUFDbEIsV0FBSyxRQUFRO0FBQUEsSUFDZjtBQUVBLFlBQVEsa0JBQWtCO0FBQUE7QUFBQTs7O0FDYjFCO0FBQUE7QUFNQSxRQUFJLFVBQVU7QUFDZCxRQUFJLGFBQWE7QUFDakIsUUFBSSxrQkFBa0IsZ0JBQW1CO0FBUXpDLGlCQUFhLE9BQU8sVUFBVTtBQUM1QixVQUFJLENBQUMsUUFBUSxLQUFLO0FBQ2hCLGNBQU0sSUFBSSxNQUFNLDREQUE0RDtBQUU5RSxVQUFJLE9BQU8sYUFBYTtBQUN0QixjQUFNLElBQUksTUFBTSw2REFBNkQ7QUFHL0UsVUFBSSxNQUFNLFVBQVU7QUFDbEI7QUFFRixVQUFJLE9BQU8sb0JBQUksSUFBSTtBQUNuQixVQUFJLFFBQVEsSUFBSSxXQUFXLE9BQU8sTUFBTSxLQUFLO0FBQzdDLFVBQUksUUFBUTtBQUVaLGdDQUEwQixVQUFVLE9BQU07QUFDeEMsWUFBSSxLQUFLLElBQUksUUFBUTtBQUNuQjtBQUVGLGFBQUssSUFBSSxRQUFRO0FBQ2pCLGNBQU0sS0FBSyxJQUFJLGdCQUFnQixVQUFVLE9BQU0sUUFBUSxDQUFDLENBQUM7QUFBQSxNQUMzRDtBQUVBLFlBQU0sWUFBWSxTQUFTLE1BQU0sT0FBTTtBQUNyQyxZQUFJLEtBQUssSUFBSSxJQUFJO0FBQ2Y7QUFFRixhQUFLLElBQUksSUFBSTtBQUNiLGNBQU0sS0FBSyxJQUFJLGdCQUFnQixNQUFNLE9BQU0sQ0FBQyxDQUFDO0FBRTdDLGVBQU8sTUFBTSxTQUFTLEdBQUc7QUFDdkIsbUJBQVMsTUFBTSxNQUFNO0FBQ3JCLGtCQUFRLE9BQU87QUFFZixtQkFBUyxPQUFPLE1BQU0sT0FBTyxZQUFZLEtBQUs7QUFFOUMsZ0JBQU0sd0JBQXdCLE9BQU8sTUFBTSxnQkFBZ0I7QUFBQSxRQUM3RDtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFVQSx5QkFBcUIsT0FBTyxNQUFNLFVBQVU7QUFDMUMsVUFBSSxDQUFDLFFBQVEsS0FBSztBQUNoQixjQUFNLElBQUksTUFBTSw0REFBNEQ7QUFFOUUsVUFBSSxPQUFPLGFBQWE7QUFDdEIsY0FBTSxJQUFJLE1BQU0sNkRBQTZEO0FBRy9FLFVBQUksTUFBTSxVQUFVO0FBQ2xCO0FBRUYsYUFBTyxLQUFLO0FBRVosVUFBSSxPQUFPLG9CQUFJLElBQUk7QUFDbkIsVUFBSSxRQUFRLElBQUksV0FBVyxPQUFPLE1BQU0sS0FBSztBQUM3QyxVQUFJLE9BQU87QUFFWCxnQ0FBMEIsVUFBVSxPQUFNO0FBQ3hDLFlBQUksS0FBSyxJQUFJLFFBQVE7QUFDbkI7QUFFRixhQUFLLElBQUksUUFBUTtBQUNqQixjQUFNLEtBQUssSUFBSSxnQkFBZ0IsVUFBVSxPQUFNLFFBQVEsQ0FBQyxDQUFDO0FBQUEsTUFDM0Q7QUFFQSxXQUFLLElBQUksSUFBSTtBQUNiLFlBQU0sS0FBSyxJQUFJLGdCQUFnQixNQUFNLE1BQU0sa0JBQWtCLElBQUksR0FBRyxDQUFDLENBQUM7QUFFdEUsYUFBTyxNQUFNLFNBQVMsR0FBRztBQUN2QixpQkFBUyxNQUFNLE1BQU07QUFDckIsZ0JBQVEsT0FBTztBQUVmLGlCQUFTLE9BQU8sTUFBTSxPQUFPLFlBQVksS0FBSztBQUU5QyxjQUFNLHdCQUF3QixPQUFPLE1BQU0sZ0JBQWdCO0FBQUEsTUFDN0Q7QUFBQSxJQUNGO0FBRUEsWUFBUSxNQUFNO0FBQ2QsWUFBUSxjQUFjO0FBQUE7QUFBQTs7O0FDeEd0QjtBQUFBO0FBTUEsUUFBSSxVQUFVO0FBQ2QsUUFBSSxrQkFBa0IsZ0JBQW1CO0FBUXpDLGlCQUFhLE9BQU8sVUFBVTtBQUM1QixVQUFJLENBQUMsUUFBUSxLQUFLO0FBQ2hCLGNBQU0sSUFBSSxNQUFNLDREQUE0RDtBQUU5RSxVQUFJLE9BQU8sYUFBYTtBQUN0QixjQUFNLElBQUksTUFBTSw2REFBNkQ7QUFHL0UsVUFBSSxNQUFNLFVBQVU7QUFDbEI7QUFFRixVQUFJLE9BQU8sb0JBQUksSUFBSTtBQUNuQixVQUFJLFFBQVEsQ0FBQztBQUNiLFVBQUksT0FBTztBQUVYLGdDQUEwQixVQUFVLE9BQU07QUFDeEMsWUFBSSxLQUFLLElBQUksUUFBUTtBQUNuQjtBQUVGLGFBQUssSUFBSSxRQUFRO0FBQ2pCLGNBQU0sS0FBSyxJQUFJLGdCQUFnQixVQUFVLE9BQU0sUUFBUSxDQUFDLENBQUM7QUFBQSxNQUMzRDtBQUVBLFlBQU0sWUFBWSxTQUFTLE1BQU0sT0FBTTtBQUNyQyxZQUFJLEtBQUssSUFBSSxJQUFJO0FBQ2Y7QUFFRixhQUFLLElBQUksSUFBSTtBQUNiLGNBQU0sS0FBSyxJQUFJLGdCQUFnQixNQUFNLE9BQU0sQ0FBQyxDQUFDO0FBRTdDLGVBQU8sTUFBTSxXQUFXLEdBQUc7QUFDekIsbUJBQVMsTUFBTSxJQUFJO0FBQ25CLGtCQUFRLE9BQU87QUFFZixtQkFBUyxPQUFPLE1BQU0sT0FBTyxZQUFZLEtBQUs7QUFFOUMsZ0JBQU0sd0JBQXdCLE9BQU8sTUFBTSxnQkFBZ0I7QUFBQSxRQUM3RDtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFVQSwwQkFBcUIsT0FBTyxNQUFNLFVBQVU7QUFDMUMsVUFBSSxDQUFDLFFBQVEsS0FBSztBQUNoQixjQUFNLElBQUksTUFBTSw0REFBNEQ7QUFFOUUsVUFBSSxPQUFPLGFBQWE7QUFDdEIsY0FBTSxJQUFJLE1BQU0sNkRBQTZEO0FBRy9FLFVBQUksTUFBTSxVQUFVO0FBQ2xCO0FBRUYsYUFBTyxLQUFLO0FBRVosVUFBSSxPQUFPLG9CQUFJLElBQUk7QUFDbkIsVUFBSSxRQUFRLENBQUM7QUFDYixVQUFJLE9BQU87QUFFWCxnQ0FBMEIsVUFBVSxPQUFNO0FBQ3hDLFlBQUksS0FBSyxJQUFJLFFBQVE7QUFDbkI7QUFFRixhQUFLLElBQUksUUFBUTtBQUNqQixjQUFNLEtBQUssSUFBSSxnQkFBZ0IsVUFBVSxPQUFNLFFBQVEsQ0FBQyxDQUFDO0FBQUEsTUFDM0Q7QUFFQSxXQUFLLElBQUksSUFBSTtBQUNiLFlBQU0sS0FBSyxJQUFJLGdCQUFnQixNQUFNLE1BQU0sa0JBQWtCLElBQUksR0FBRyxDQUFDLENBQUM7QUFFdEUsYUFBTyxNQUFNLFdBQVcsR0FBRztBQUN6QixpQkFBUyxNQUFNLElBQUk7QUFDbkIsZ0JBQVEsT0FBTztBQUVmLGlCQUFTLE9BQU8sTUFBTSxPQUFPLFlBQVksS0FBSztBQUU5QyxjQUFNLHdCQUF3QixPQUFPLE1BQU0sZ0JBQWdCO0FBQUEsTUFDN0Q7QUFBQSxJQUNGO0FBRUEsWUFBUSxNQUFNO0FBQ2QsWUFBUSxjQUFjO0FBQUE7QUFBQTs7O0FDdkd0QjtBQUFBO0FBQUEsUUFBSSxZQUFZO0FBQ2hCLFFBQUksWUFBWTtBQUVoQixRQUFJO0FBRUosU0FBSyxLQUFLO0FBQ1IsY0FBUSxLQUFLLFVBQVU7QUFFekIsU0FBSyxLQUFLO0FBQ1IsY0FBUSxLQUFLLFVBQVU7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztRQ0puQixhQUFBLHlCQUFBLFFBQUE7Ozs7Ozt1Q0FBbUIsS0FBQSxDQUFBO1FBS1osdUJBQWIseUJBQUEsYUFBQTtBQUFBLHFCQUFBLHVCQUFBLFdBQUE7QUFDRSxxQ0FBWSxRQUFRO0FBQUEsZUFDbEIsWUFBQSxLQUFBLE1BQUEsdUJBQTJCLE9BQU8sVUFBUCxDQUEzQixLQURrQjtNQUVuQjtBQUhILGFBQUE7SUFBQSxFQUEwQyxVQUExQztRQVNhLHVCQUFiLHlCQUFBLGNBQUE7QUFBQSxxQkFBQSx1QkFBQSxZQUFBO0FBQ0UscUNBQVksUUFBUTtBQUFBLGVBQ2xCLGFBQUEsS0FBQSxNQUFBLHVCQUEyQixPQUFPLFVBQVAsQ0FBM0IsS0FEa0I7TUFFbkI7QUFISCxhQUFBO0lBQUEsRUFBMEMsVUFBMUM7UUFTYSx1QkFBYix5QkFBQSxjQUFBO0FBQUEscUJBQUEsdUJBQUEsWUFBQTtBQUNFLHFDQUFZLFFBQVE7QUFBQSxlQUNsQixhQUFBLEtBQUEsTUFBQSx1QkFBMkIsT0FBTyxVQUFQLENBQTNCLEtBRGtCO01BRW5CO0FBSEgsYUFBQTtJQUFBLEVBQTBDLFVBQTFDO1FBU2EsZ0NBQWIseUJBQUEsY0FBQTtBQUFBLHFCQUFBLGdDQUFBLFlBQUE7QUFBQSxnREFBQTtBQUFBLGVBQUEsYUFBQSxNQUFBLE1BQUEsU0FBQSxLQUFBO01BQUE7QUFBQSxhQUFBO0lBQUEsRUFBbUQsVUFBbkQ7UUFLYSxtQkFBYix5QkFBQSxjQUFBO0FBQUEscUJBQUEsbUJBQUEsWUFBQTtBQUNFLGlDQUFZLE9BQU07QUFBQSxlQUNoQixhQUFBLEtBQUEsTUFBQSxrQkFBc0IsS0FBdEIsS0FEZ0I7TUFFakI7QUFISCxhQUFBO0lBQUEsRUFBc0MsVUFBdEM7UUFTYSx1QkFBYix5QkFBQSxjQUFBO0FBQUEscUJBQUEsdUJBQUEsWUFBQTtBQUFBLHVDQUFBO0FBQUEsZUFBQSxhQUFBLE1BQUEsTUFBQSxTQUFBLEtBQUE7TUFBQTtBQUFBLGFBQUE7SUFBQSxFQUEwQyxVQUExQztRQUthLHNCQUFiLHlCQUFBLGNBQUE7QUFBQSxxQkFBQSxzQkFBQSxZQUFBO0FBQ0Usc0NBQWM7QUFBQSxlQUNaLGFBQUEsS0FBQSxNQUFNLDJCQUFOLEtBRFk7TUFFYjtBQUhILGFBQUE7SUFBQSxFQUF5QyxVQUF6QztBQ3BEQSxRQUFNLElBQUk7QUFBVixRQUNFLElBQUk7QUFETixRQUVFLElBQUk7QUFFQyxRQUFNLGFBQWE7TUFDeEIsTUFBTTtNQUNOLE9BQU87TUFDUCxLQUFLO0lBSG1CO0FBTW5CLFFBQU0sV0FBVztNQUN0QixNQUFNO01BQ04sT0FBTztNQUNQLEtBQUs7SUFIaUI7QUFNakIsUUFBTSx3QkFBd0I7TUFDbkMsTUFBTTtNQUNOLE9BQU87TUFDUCxLQUFLO01BQ0wsU0FBUztJQUowQjtBQU85QixRQUFNLFlBQVk7TUFDdkIsTUFBTTtNQUNOLE9BQU87TUFDUCxLQUFLO0lBSGtCO0FBTWxCLFFBQU0sWUFBWTtNQUN2QixNQUFNO01BQ04sT0FBTztNQUNQLEtBQUs7TUFDTCxTQUFTO0lBSmM7QUFPbEIsUUFBTSxjQUFjO01BQ3pCLE1BQU07TUFDTixRQUFRO0lBRmlCO0FBS3BCLFFBQU0sb0JBQW9CO01BQy9CLE1BQU07TUFDTixRQUFRO01BQ1IsUUFBUTtJQUh1QjtBQU0xQixRQUFNLHlCQUF5QjtNQUNwQyxNQUFNO01BQ04sUUFBUTtNQUNSLFFBQVE7TUFDUixjQUFjO0lBSnNCO0FBTy9CLFFBQU0sd0JBQXdCO01BQ25DLE1BQU07TUFDTixRQUFRO01BQ1IsUUFBUTtNQUNSLGNBQWM7SUFKcUI7QUFPOUIsUUFBTSxpQkFBaUI7TUFDNUIsTUFBTTtNQUNOLFFBQVE7TUFDUixXQUFXO0lBSGlCO0FBTXZCLFFBQU0sdUJBQXVCO01BQ2xDLE1BQU07TUFDTixRQUFRO01BQ1IsUUFBUTtNQUNSLFdBQVc7SUFKdUI7QUFPN0IsUUFBTSw0QkFBNEI7TUFDdkMsTUFBTTtNQUNOLFFBQVE7TUFDUixRQUFRO01BQ1IsV0FBVztNQUNYLGNBQWM7SUFMeUI7QUFRbEMsUUFBTSwyQkFBMkI7TUFDdEMsTUFBTTtNQUNOLFFBQVE7TUFDUixRQUFRO01BQ1IsV0FBVztNQUNYLGNBQWM7SUFMd0I7QUFRakMsUUFBTSxpQkFBaUI7TUFDNUIsTUFBTTtNQUNOLE9BQU87TUFDUCxLQUFLO01BQ0wsTUFBTTtNQUNOLFFBQVE7SUFMb0I7QUFRdkIsUUFBTSw4QkFBOEI7TUFDekMsTUFBTTtNQUNOLE9BQU87TUFDUCxLQUFLO01BQ0wsTUFBTTtNQUNOLFFBQVE7TUFDUixRQUFRO0lBTmlDO0FBU3BDLFFBQU0sZUFBZTtNQUMxQixNQUFNO01BQ04sT0FBTztNQUNQLEtBQUs7TUFDTCxNQUFNO01BQ04sUUFBUTtJQUxrQjtBQVFyQixRQUFNLDRCQUE0QjtNQUN2QyxNQUFNO01BQ04sT0FBTztNQUNQLEtBQUs7TUFDTCxNQUFNO01BQ04sUUFBUTtNQUNSLFFBQVE7SUFOK0I7QUFTbEMsUUFBTSw0QkFBNEI7TUFDdkMsTUFBTTtNQUNOLE9BQU87TUFDUCxLQUFLO01BQ0wsU0FBUztNQUNULE1BQU07TUFDTixRQUFRO0lBTitCO0FBU2xDLFFBQU0sZ0JBQWdCO01BQzNCLE1BQU07TUFDTixPQUFPO01BQ1AsS0FBSztNQUNMLE1BQU07TUFDTixRQUFRO01BQ1IsY0FBYztJQU5hO0FBU3RCLFFBQU0sNkJBQTZCO01BQ3hDLE1BQU07TUFDTixPQUFPO01BQ1AsS0FBSztNQUNMLE1BQU07TUFDTixRQUFRO01BQ1IsUUFBUTtNQUNSLGNBQWM7SUFQMEI7QUFVbkMsUUFBTSxnQkFBZ0I7TUFDM0IsTUFBTTtNQUNOLE9BQU87TUFDUCxLQUFLO01BQ0wsU0FBUztNQUNULE1BQU07TUFDTixRQUFRO01BQ1IsY0FBYztJQVBhO0FBVXRCLFFBQU0sNkJBQTZCO01BQ3hDLE1BQU07TUFDTixPQUFPO01BQ1AsS0FBSztNQUNMLFNBQVM7TUFDVCxNQUFNO01BQ04sUUFBUTtNQUNSLFFBQVE7TUFDUixjQUFjO0lBUjBCO0FDeEpuQyx5QkFBcUIsR0FBRztBQUM3QixhQUFPLE9BQU8sTUFBTTtJQUNyQjtBQUVNLHNCQUFrQixHQUFHO0FBQzFCLGFBQU8sT0FBTyxNQUFNO0lBQ3JCO0FBRU0sdUJBQW1CLEdBQUc7QUFDM0IsYUFBTyxPQUFPLE1BQU0sWUFBWSxJQUFJLE1BQU07SUFDM0M7QUFFTSxzQkFBa0IsR0FBRztBQUMxQixhQUFPLE9BQU8sTUFBTTtJQUNyQjtBQUVNLG9CQUFnQixHQUFHO0FBQ3hCLGFBQU8sT0FBTyxVQUFVLFNBQVMsS0FBSyxDQUEvQixNQUFzQztJQUM5QztBQUlNLDJCQUF1QjtBQUM1QixVQUFJO0FBQ0YsZUFBTyxPQUFPLFNBQVMsZUFBZSxDQUFDLENBQUMsS0FBSztNQUM5QyxTQUFRLEdBQVA7QUFDQSxlQUFPO01BQ1I7SUFDRjtBQUlNLHdCQUFvQixPQUFPO0FBQ2hDLGFBQU8sTUFBTSxRQUFRLEtBQWQsSUFBdUIsUUFBUSxDQUFDLEtBQUQ7SUFDdkM7QUFFTSxvQkFBZ0IsS0FBSyxJQUFJLFNBQVM7QUFDdkMsVUFBSSxJQUFJLFdBQVcsR0FBRztBQUNwQixlQUFPO01BQ1I7QUFDRCxhQUFPLElBQUksT0FBTyxTQUFDLE1BQU0sTUFBUztBQUNoQyxZQUFNLE9BQU8sQ0FBQyxHQUFHLElBQUQsR0FBUSxJQUFYO0FBQ2IsWUFBSSxDQUFDLE1BQU07QUFDVCxpQkFBTztRQUNSLFdBQVUsUUFBUSxLQUFLLElBQUksS0FBSyxFQUFmLE1BQXVCLEtBQUssSUFBSTtBQUNoRCxpQkFBTztRQUNSLE9BQU07QUFDTCxpQkFBTztRQUNSO01BQ0YsR0FBRSxJQVRJLEVBU0U7SUFDVjtBQUVNLGtCQUFjLEtBQUssTUFBTTtBQUM5QixhQUFPLEtBQUssT0FBTyxTQUFDLElBQUcsR0FBTTtBQUMzQixXQUFFLEtBQUssSUFBSTtBQUNYLGVBQU87TUFDUixHQUFFLENBQUEsQ0FISTtJQUlSO0FBRU0sNEJBQXdCLEtBQUssTUFBTTtBQUN4QyxhQUFPLE9BQU8sVUFBVSxlQUFlLEtBQUssS0FBSyxJQUExQztJQUNSO0FBSU0sNEJBQXdCLE9BQU8sUUFBUSxLQUFLO0FBQ2pELGFBQU8sVUFBVSxLQUFELEtBQVcsU0FBUyxVQUFVLFNBQVM7SUFDeEQ7QUFHTSxzQkFBa0IsSUFBRyxJQUFHO0FBQzdCLGFBQU8sS0FBSSxLQUFJLEtBQUssTUFBTSxLQUFJLEVBQWY7SUFDaEI7QUFFTSxzQkFBa0IsT0FBTyxJQUFPO0FBQUEsVUFBUCxPQUFPLFFBQUE7QUFBUCxhQUFJO01BQUc7QUFDckMsVUFBTSxRQUFRLFFBQVE7QUFDdEIsVUFBSTtBQUNKLFVBQUksT0FBTztBQUNULGlCQUFTLE1BQU8sTUFBSyxDQUFDLE9BQU8sU0FBUyxJQUFHLEdBQTFCO01BQ2hCLE9BQU07QUFDTCxpQkFBVSxNQUFLLE9BQU8sU0FBUyxJQUFHLEdBQXpCO01BQ1Y7QUFDRCxhQUFPO0lBQ1I7QUFFTSwwQkFBc0IsUUFBUTtBQUNuQyxVQUFJLFlBQVksTUFBRCxLQUFZLFdBQVcsUUFBUSxXQUFXLElBQUk7QUFDM0QsZUFBTztNQUNSLE9BQU07QUFDTCxlQUFPLFNBQVMsUUFBUSxFQUFUO01BQ2hCO0lBQ0Y7QUFFTSwyQkFBdUIsUUFBUTtBQUNwQyxVQUFJLFlBQVksTUFBRCxLQUFZLFdBQVcsUUFBUSxXQUFXLElBQUk7QUFDM0QsZUFBTztNQUNSLE9BQU07QUFDTCxlQUFPLFdBQVcsTUFBRDtNQUNsQjtJQUNGO0FBRU0seUJBQXFCLFVBQVU7QUFFcEMsVUFBSSxZQUFZLFFBQUQsS0FBYyxhQUFhLFFBQVEsYUFBYSxJQUFJO0FBQ2pFLGVBQU87TUFDUixPQUFNO0FBQ0wsWUFBTSxJQUFJLFdBQVcsT0FBTyxRQUFSLElBQW9CO0FBQ3hDLGVBQU8sS0FBSyxNQUFNLENBQVg7TUFDUjtJQUNGO0FBRU0scUJBQWlCLFNBQVEsUUFBUSxZQUFvQjtBQUFBLFVBQXBCLGVBQW9CLFFBQUE7QUFBcEIscUJBQWE7TUFBTztBQUMxRCxVQUFNLFNBQU0sS0FBQSxJQUFHLElBQU0sTUFBVCxHQUNWLFVBQVUsYUFBYSxLQUFLLFFBQVEsS0FBSztBQUMzQyxhQUFPLFFBQVEsVUFBUyxNQUFWLElBQW9CO0lBQ25DO0FBSU0sd0JBQW9CLE1BQU07QUFDL0IsYUFBTyxPQUFPLE1BQU0sS0FBTSxRQUFPLFFBQVEsS0FBSyxPQUFPLFFBQVE7SUFDOUQ7QUFFTSx3QkFBb0IsTUFBTTtBQUMvQixhQUFPLFdBQVcsSUFBRCxJQUFTLE1BQU07SUFDakM7QUFFTSx5QkFBcUIsTUFBTSxPQUFPO0FBQ3ZDLFVBQU0sV0FBVyxTQUFTLFFBQVEsR0FBRyxFQUFaLElBQWtCLEdBQ3pDLFVBQVUsT0FBUSxTQUFRLFlBQVk7QUFFeEMsVUFBSSxhQUFhLEdBQUc7QUFDbEIsZUFBTyxXQUFXLE9BQUQsSUFBWSxLQUFLO01BQ25DLE9BQU07QUFDTCxlQUFPLENBQUMsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEVBQS9DLEVBQW1ELFdBQVc7TUFDdEU7SUFDRjtBQUdNLDBCQUFzQixLQUFLO0FBQ2hDLFVBQUksSUFBSSxLQUFLLElBQ1gsSUFBSSxNQUNKLElBQUksUUFBUSxHQUNaLElBQUksS0FDSixJQUFJLE1BQ0osSUFBSSxRQUNKLElBQUksUUFDSixJQUFJLFdBUEU7QUFXUixVQUFJLElBQUksT0FBTyxPQUFPLElBQUksUUFBUSxHQUFHO0FBQ25DLFlBQUksSUFBSSxLQUFLLENBQVQ7QUFDSixVQUFFLGVBQWUsRUFBRSxlQUFGLElBQXFCLElBQXRDO01BQ0Q7QUFDRCxhQUFPLENBQUM7SUFDVDtBQUVNLDZCQUF5QixVQUFVO0FBQ3hDLFVBQU0sS0FDRCxZQUNDLEtBQUssTUFBTSxXQUFXLENBQXRCLElBQ0EsS0FBSyxNQUFNLFdBQVcsR0FBdEIsSUFDQSxLQUFLLE1BQU0sV0FBVyxHQUF0QixLQUNGLEdBQ0YsT0FBTyxXQUFXLEdBQ2xCLEtBQU0sUUFBTyxLQUFLLE1BQU0sT0FBTyxDQUFsQixJQUF1QixLQUFLLE1BQU0sT0FBTyxHQUFsQixJQUF5QixLQUFLLE1BQU0sT0FBTyxHQUFsQixLQUEwQjtBQUN6RixhQUFPLE9BQU8sS0FBSyxPQUFPLElBQUksS0FBSztJQUNwQztBQUVNLDRCQUF3QixNQUFNO0FBQ25DLFVBQUksT0FBTyxJQUFJO0FBQ2IsZUFBTztNQUNSO0FBQU0sZUFBTyxPQUFPLEtBQUssT0FBTyxPQUFPLE1BQU87SUFDaEQ7QUFJTSwyQkFBdUIsSUFBSSxjQUFjLFNBQVEsVUFBaUI7QUFBQSxVQUFqQixhQUFpQixRQUFBO0FBQWpCLG1CQUFXO01BQU07QUFDdkUsVUFBTSxPQUFPLElBQUksS0FBSyxFQUFULEdBQ1gsV0FBVztRQUNULFdBQVc7UUFDWCxNQUFNO1FBQ04sT0FBTztRQUNQLEtBQUs7UUFDTCxNQUFNO1FBQ04sUUFBUTtNQU5DO0FBU2IsVUFBSSxVQUFVO0FBQ1osaUJBQVMsV0FBVztNQUNyQjtBQUVELFVBQU0sV0FBUSxTQUFBO1FBQUssY0FBYztNQUFuQixHQUFvQyxRQUFwQztBQUVkLFVBQU0sU0FBUyxJQUFJLEtBQUssZUFBZSxTQUFRLFFBQWhDLEVBQ1osY0FBYyxJQURGLEVBRVosS0FBSyxTQUFDLElBQUQ7QUFBQSxlQUFPLEdBQUUsS0FBSyxZQUFQLE1BQXlCO01BQWhDLENBRk87QUFHZixhQUFPLFNBQVMsT0FBTyxRQUFRO0lBQ2hDO0FBR00sMEJBQXNCLFlBQVksY0FBYztBQUNyRCxVQUFJLFVBQVUsU0FBUyxZQUFZLEVBQWI7QUFHdEIsVUFBSSxPQUFPLE1BQU0sT0FBYixHQUF1QjtBQUN6QixrQkFBVTtNQUNYO0FBRUQsVUFBTSxTQUFTLFNBQVMsY0FBYyxFQUFmLEtBQXNCLEdBQzNDLGVBQWUsVUFBVSxLQUFLLE9BQU8sR0FBRyxTQUFTLEVBQW5CLElBQXlCLENBQUMsU0FBUztBQUNuRSxhQUFPLFVBQVUsS0FBSztJQUN2QjtBQUlNLHNCQUFrQixPQUFPO0FBQzlCLFVBQU0sZUFBZSxPQUFPLEtBQUQ7QUFDM0IsVUFBSSxPQUFPLFVBQVUsYUFBYSxVQUFVLE1BQU0sT0FBTyxNQUFNLFlBQWI7QUFDaEQsY0FBTSxJQUFJLHFCQUFKLHdCQUErQyxLQUEvQztBQUNSLGFBQU87SUFDUjtBQUVNLDZCQUF5QixLQUFLLFlBQVk7QUFDL0MsVUFBTSxhQUFhLENBQUE7QUFDbkIsZUFBVyxLQUFLLEtBQUs7QUFDbkIsWUFBSSxlQUFlLEtBQUssQ0FBTixHQUFVO0FBQzFCLGNBQU0sSUFBSSxJQUFJO0FBQ2QsY0FBSSxNQUFNLFVBQWEsTUFBTTtBQUFNO0FBQ25DLHFCQUFXLFdBQVcsQ0FBRCxLQUFPLFNBQVMsQ0FBRDtRQUNyQztNQUNGO0FBQ0QsYUFBTztJQUNSO0FBRU0sMEJBQXNCLFNBQVEsU0FBUTtBQUMzQyxVQUFNLFFBQVEsS0FBSyxNQUFNLEtBQUssSUFBSSxVQUFTLEVBQWxCLENBQVgsR0FDWixVQUFVLEtBQUssTUFBTSxLQUFLLElBQUksVUFBUyxFQUFsQixDQUFYLEdBQ1YsT0FBTyxXQUFVLElBQUksTUFBTTtBQUU3QixjQUFRO2FBQ0Q7QUFDSCxpQkFBQSxLQUFVLE9BQU8sU0FBUyxPQUFPLENBQVIsSUFBekIsTUFBdUMsU0FBUyxTQUFTLENBQVY7YUFDNUM7QUFDSCxpQkFBQSxLQUFVLE9BQU8sUUFBUSxXQUFVLElBQVYsTUFBa0IsVUFBWTthQUNwRDtBQUNILGlCQUFBLEtBQVUsT0FBTyxTQUFTLE9BQU8sQ0FBUixJQUFhLFNBQVMsU0FBUyxDQUFWOztBQUU5QyxnQkFBTSxJQUFJLFdBQUosa0JBQStCLFVBQS9CLHNDQUFBOztJQUVYO0FBRU0sd0JBQW9CLEtBQUs7QUFDOUIsYUFBTyxLQUFLLEtBQUssQ0FBQyxRQUFRLFVBQVUsVUFBVSxhQUE3QixDQUFOO0lBQ1o7QUFFTSxRQUFNLFlBQVk7QUNwUWxCLFFBQU0sYUFBYSxDQUN4QixXQUNBLFlBQ0EsU0FDQSxTQUNBLE9BQ0EsUUFDQSxRQUNBLFVBQ0EsYUFDQSxXQUNBLFlBQ0EsVUFad0I7QUFlbkIsUUFBTSxjQUFjLENBQ3pCLE9BQ0EsT0FDQSxPQUNBLE9BQ0EsT0FDQSxPQUNBLE9BQ0EsT0FDQSxPQUNBLE9BQ0EsT0FDQSxLQVp5QjtBQWVwQixRQUFNLGVBQWUsQ0FBQyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssR0FBeEQ7QUFFckIsb0JBQWdCLFFBQVE7QUFDN0IsY0FBUTthQUNEO0FBQ0gsaUJBQUEsQ0FBQSxFQUFBLE9BQVcsWUFBWDthQUNHO0FBQ0gsaUJBQUEsQ0FBQSxFQUFBLE9BQVcsV0FBWDthQUNHO0FBQ0gsaUJBQUEsQ0FBQSxFQUFBLE9BQVcsVUFBWDthQUNHO0FBQ0gsaUJBQU8sQ0FBQyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxNQUFNLE1BQU0sSUFBMUQ7YUFDSjtBQUNILGlCQUFPLENBQUMsTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLElBQW5FOztBQUVQLGlCQUFPOztJQUVaO0FBRU0sUUFBTSxlQUFlLENBQzFCLFVBQ0EsV0FDQSxhQUNBLFlBQ0EsVUFDQSxZQUNBLFFBUDBCO0FBVXJCLFFBQU0sZ0JBQWdCLENBQUMsT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sS0FBM0M7QUFFdEIsUUFBTSxpQkFBaUIsQ0FBQyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxHQUEvQjtBQUV2QixzQkFBa0IsUUFBUTtBQUMvQixjQUFRO2FBQ0Q7QUFDSCxpQkFBQSxDQUFBLEVBQUEsT0FBVyxjQUFYO2FBQ0c7QUFDSCxpQkFBQSxDQUFBLEVBQUEsT0FBVyxhQUFYO2FBQ0c7QUFDSCxpQkFBQSxDQUFBLEVBQUEsT0FBVyxZQUFYO2FBQ0c7QUFDSCxpQkFBTyxDQUFDLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEdBQS9COztBQUVQLGlCQUFPOztJQUVaO0FBRU0sUUFBTSxZQUFZLENBQUMsTUFBTSxJQUFQO0FBRWxCLFFBQU0sV0FBVyxDQUFDLGlCQUFpQixhQUFsQjtBQUVqQixRQUFNLFlBQVksQ0FBQyxNQUFNLElBQVA7QUFFbEIsUUFBTSxhQUFhLENBQUMsS0FBSyxHQUFOO0FBRW5CLGtCQUFjLFFBQVE7QUFDM0IsY0FBUTthQUNEO0FBQ0gsaUJBQUEsQ0FBQSxFQUFBLE9BQVcsVUFBWDthQUNHO0FBQ0gsaUJBQUEsQ0FBQSxFQUFBLE9BQVcsU0FBWDthQUNHO0FBQ0gsaUJBQUEsQ0FBQSxFQUFBLE9BQVcsUUFBWDs7QUFFQSxpQkFBTzs7SUFFWjtBQUVNLGlDQUE2QixJQUFJO0FBQ3RDLGFBQU8sVUFBVSxHQUFHLE9BQU8sS0FBSyxJQUFJO0lBQ3JDO0FBRU0sZ0NBQTRCLElBQUksUUFBUTtBQUM3QyxhQUFPLFNBQVMsTUFBRCxFQUFTLEdBQUcsVUFBVTtJQUN0QztBQUVNLDhCQUEwQixJQUFJLFFBQVE7QUFDM0MsYUFBTyxPQUFPLE1BQUQsRUFBUyxHQUFHLFFBQVE7SUFDbEM7QUFFTSw0QkFBd0IsSUFBSSxRQUFRO0FBQ3pDLGFBQU8sS0FBSyxNQUFELEVBQVMsR0FBRyxPQUFPLElBQUksSUFBSTtJQUN2QztBQUVNLGdDQUE0QixPQUFNLFFBQU8sU0FBb0IsUUFBZ0I7QUFBQSxVQUFwQyxZQUFvQyxRQUFBO0FBQXBDLGtCQUFVO01BQTBCO0FBQUEsVUFBaEIsV0FBZ0IsUUFBQTtBQUFoQixpQkFBUztNQUFPO0FBQ2xGLFVBQU0sUUFBUTtRQUNaLE9BQU8sQ0FBQyxRQUFRLEtBQVQ7UUFDUCxVQUFVLENBQUMsV0FBVyxNQUFaO1FBQ1YsUUFBUSxDQUFDLFNBQVMsS0FBVjtRQUNSLE9BQU8sQ0FBQyxRQUFRLEtBQVQ7UUFDUCxNQUFNLENBQUMsT0FBTyxPQUFPLE1BQWY7UUFDTixPQUFPLENBQUMsUUFBUSxLQUFUO1FBQ1AsU0FBUyxDQUFDLFVBQVUsTUFBWDtRQUNULFNBQVMsQ0FBQyxVQUFVLE1BQVg7TUFSRztBQVdkLFVBQU0sV0FBVyxDQUFDLFNBQVMsV0FBVyxTQUFyQixFQUFnQyxRQUFRLEtBQXhDLE1BQWtEO0FBRW5FLFVBQUksWUFBWSxVQUFVLFVBQVU7QUFDbEMsWUFBTSxRQUFRLFVBQVM7QUFDdkIsZ0JBQVE7ZUFDRDtBQUNILG1CQUFPLFFBQVEsYUFBSCxVQUF3QixNQUFNLE9BQU07ZUFDN0M7QUFDSCxtQkFBTyxRQUFRLGNBQUgsVUFBeUIsTUFBTSxPQUFNO2VBQzlDO0FBQ0gsbUJBQU8sUUFBUSxVQUFILFVBQXFCLE1BQU0sT0FBTTs7TUFHbEQ7QUFFRCxVQUFNLFdBQVcsT0FBTyxHQUFHLFFBQU8sRUFBakIsS0FBd0IsU0FBUSxHQUMvQyxXQUFXLEtBQUssSUFBSSxNQUFULEdBQ1gsV0FBVyxhQUFhLEdBQ3hCLFdBQVcsTUFBTSxRQUNqQixVQUFVLFNBQ04sV0FDRSxTQUFTLEtBQ1QsU0FBUyxNQUFNLFNBQVMsS0FDMUIsV0FDQSxNQUFNLE9BQU0sS0FDWjtBQUNOLGFBQU8sV0FBYyxXQUFOLE1BQWtCLFVBQWxCLFNBQUEsUUFBd0MsV0FBeEMsTUFBb0Q7SUFDcEU7QUNqS0QsNkJBQXlCLFFBQVEsZUFBZTtBQUM5QyxVQUFJLEtBQUk7QUFDUixlQUFBLFlBQUEsZ0NBQW9CLE1BQXBCLEdBQUEsT0FBQSxDQUFBLFNBQUEsVUFBQSxHQUFBLFFBQTRCO0FBQUEsWUFBakIsUUFBaUIsTUFBQTtBQUMxQixZQUFJLE1BQU0sU0FBUztBQUNqQixnQkFBSyxNQUFNO1FBQ1osT0FBTTtBQUNMLGdCQUFLLGNBQWMsTUFBTSxHQUFQO1FBQ25CO01BQ0Y7QUFDRCxhQUFPO0lBQ1I7QUFFRCxRQUFNLDBCQUF5QjtNQUM3QixHQUFHO01BQ0gsSUFBSTtNQUNKLEtBQUs7TUFDTCxNQUFNO01BQ04sR0FBRztNQUNILElBQUk7TUFDSixLQUFLO01BQ0wsTUFBTTtNQUNOLEdBQUc7TUFDSCxJQUFJO01BQ0osS0FBSztNQUNMLE1BQU07TUFDTixHQUFHO01BQ0gsSUFBSTtNQUNKLEtBQUs7TUFDTCxNQUFNO01BQ04sR0FBRztNQUNILElBQUk7TUFDSixLQUFLO01BQ0wsTUFBTTtJQXBCdUI7UUEyQlYsWUFBQSwyQkFBQTtpQkFDWixTQUFQLGlCQUFjLFNBQVEsTUFBVztBQUFBLFlBQVgsU0FBVyxRQUFBO0FBQVgsaUJBQU8sQ0FBQTtRQUFJO0FBQy9CLGVBQU8sSUFBSSxXQUFVLFNBQVEsSUFBdEI7TUFDUjtpQkFFTSxjQUFQLHFCQUFtQixLQUFLO0FBQ3RCLFlBQUksVUFBVSxNQUNaLGNBQWMsSUFDZCxZQUFZO0FBQ2QsWUFBTSxTQUFTLENBQUE7QUFDZixpQkFBUyxJQUFJLEdBQUcsSUFBSSxJQUFJLFFBQVEsS0FBSztBQUNuQyxjQUFNLEtBQUksSUFBSSxPQUFPLENBQVg7QUFDVixjQUFJLE9BQU0sS0FBSztBQUNiLGdCQUFJLFlBQVksU0FBUyxHQUFHO0FBQzFCLHFCQUFPLEtBQUs7Z0JBQUUsU0FBUztnQkFBVyxLQUFLO2NBQTNCLENBQVo7WUFDRDtBQUNELHNCQUFVO0FBQ1YsMEJBQWM7QUFDZCx3QkFBWSxDQUFDO1VBQ2QsV0FBVSxXQUFXO0FBQ3BCLDJCQUFlO1VBQ2hCLFdBQVUsT0FBTSxTQUFTO0FBQ3hCLDJCQUFlO1VBQ2hCLE9BQU07QUFDTCxnQkFBSSxZQUFZLFNBQVMsR0FBRztBQUMxQixxQkFBTyxLQUFLO2dCQUFFLFNBQVM7Z0JBQU8sS0FBSztjQUF2QixDQUFaO1lBQ0Q7QUFDRCwwQkFBYztBQUNkLHNCQUFVO1VBQ1g7UUFDRjtBQUVELFlBQUksWUFBWSxTQUFTLEdBQUc7QUFDMUIsaUJBQU8sS0FBSztZQUFFLFNBQVM7WUFBVyxLQUFLO1VBQTNCLENBQVo7UUFDRDtBQUVELGVBQU87TUFDUjtpQkFFTSx5QkFBUCxnQ0FBOEIsT0FBTztBQUNuQyxlQUFPLHdCQUF1QjtNQUMvQjtBQUVELDBCQUFZLFNBQVEsWUFBWTtBQUM5QixhQUFLLE9BQU87QUFDWixhQUFLLE1BQU07QUFDWCxhQUFLLFlBQVk7TUFDbEI7O2FBRUQsMEJBQUEsaUNBQXdCLElBQUksTUFBTTtBQUNoQyxZQUFJLEtBQUssY0FBYyxNQUFNO0FBQzNCLGVBQUssWUFBWSxLQUFLLElBQUksa0JBQVQ7UUFDbEI7QUFDRCxZQUFNLEtBQUssS0FBSyxVQUFVLFlBQVksSUFBM0IsU0FBQSxDQUFBLEdBQW9DLEtBQUssTUFBUyxJQUFsRCxDQUFBO0FBQ1gsZUFBTyxHQUFHLE9BQUg7TUFDUjthQUVELGlCQUFBLHdCQUFlLElBQUksTUFBVztBQUFBLFlBQVgsU0FBVyxRQUFBO0FBQVgsaUJBQU8sQ0FBQTtRQUFJO0FBQzVCLFlBQU0sS0FBSyxLQUFLLElBQUksWUFBWSxJQUFyQixTQUFBLENBQUEsR0FBOEIsS0FBSyxNQUFTLElBQTVDLENBQUE7QUFDWCxlQUFPLEdBQUcsT0FBSDtNQUNSO2FBRUQsc0JBQUEsNkJBQW9CLElBQUksTUFBVztBQUFBLFlBQVgsU0FBVyxRQUFBO0FBQVgsaUJBQU8sQ0FBQTtRQUFJO0FBQ2pDLFlBQU0sS0FBSyxLQUFLLElBQUksWUFBWSxJQUFyQixTQUFBLENBQUEsR0FBOEIsS0FBSyxNQUFTLElBQTVDLENBQUE7QUFDWCxlQUFPLEdBQUcsY0FBSDtNQUNSO2FBRUQsa0JBQUEseUJBQWdCLElBQUksTUFBVztBQUFBLFlBQVgsU0FBVyxRQUFBO0FBQVgsaUJBQU8sQ0FBQTtRQUFJO0FBQzdCLFlBQU0sS0FBSyxLQUFLLElBQUksWUFBWSxJQUFyQixTQUFBLENBQUEsR0FBOEIsS0FBSyxNQUFTLElBQTVDLENBQUE7QUFDWCxlQUFPLEdBQUcsZ0JBQUg7TUFDUjthQUVELE1BQUEsYUFBSSxJQUFHLEdBQU87QUFBQSxZQUFQLE1BQU8sUUFBQTtBQUFQLGNBQUk7UUFBRztBQUVaLFlBQUksS0FBSyxLQUFLLGFBQWE7QUFDekIsaUJBQU8sU0FBUyxJQUFHLENBQUo7UUFDaEI7QUFFRCxZQUFNLE9BQUksU0FBQSxDQUFBLEdBQVEsS0FBSyxJQUFiO0FBRVYsWUFBSSxJQUFJLEdBQUc7QUFDVCxlQUFLLFFBQVE7UUFDZDtBQUVELGVBQU8sS0FBSyxJQUFJLGdCQUFnQixJQUF6QixFQUErQixPQUFPLEVBQXRDO01BQ1I7YUFFRCwyQkFBQSxrQ0FBeUIsSUFBSSxLQUFLO0FBQUEsWUFBQSxRQUFBO0FBQ2hDLFlBQU0sZUFBZSxLQUFLLElBQUksWUFBVCxNQUEyQixNQUM5Qyx1QkFBdUIsS0FBSyxJQUFJLGtCQUFrQixLQUFLLElBQUksbUJBQW1CLFdBQzlFLFNBQVMsaUJBQUMsTUFBTSxTQUFQO0FBQUEsaUJBQW1CLE1BQUssSUFBSSxRQUFRLElBQUksTUFBTSxPQUEzQjtRQUFuQixHQUNULGdCQUFlLHVCQUFDLE1BQVM7QUFDdkIsY0FBSSxHQUFHLGlCQUFpQixHQUFHLFdBQVcsS0FBSyxLQUFLLFFBQVE7QUFDdEQsbUJBQU87VUFDUjtBQUVELGlCQUFPLEdBQUcsVUFBVSxHQUFHLEtBQUssYUFBYSxHQUFHLElBQUksS0FBSyxNQUFqQyxJQUEyQztRQUNoRSxHQUNELFdBQVcscUJBQUE7QUFBQSxpQkFDVCxlQUNJLG9CQUE0QixFQUE1QixJQUNBLE9BQU87WUFBRSxNQUFNO1lBQVcsV0FBVztVQUE5QixHQUF1QyxXQUF4QztRQUhELEdBSVgsUUFBUSxnQkFBQyxRQUFRLFlBQVQ7QUFBQSxpQkFDTixlQUNJLGlCQUF5QixJQUFJLE1BQTdCLElBQ0EsT0FBTyxhQUFhO1lBQUUsT0FBTztVQUFULElBQW9CO1lBQUUsT0FBTztZQUFRLEtBQUs7VUFBdEIsR0FBbUMsT0FBckU7UUFISixHQUlSLFVBQVUsa0JBQUMsUUFBUSxZQUFUO0FBQUEsaUJBQ1IsZUFDSSxtQkFBMkIsSUFBSSxNQUEvQixJQUNBLE9BQ0UsYUFBYTtZQUFFLFNBQVM7VUFBWCxJQUFzQjtZQUFFLFNBQVM7WUFBUSxPQUFPO1lBQVEsS0FBSztVQUF2QyxHQUNuQyxTQUZJO1FBSEYsR0FPVixhQUFhLHFCQUFDLE9BQVU7QUFDdEIsY0FBTSxhQUFhLFdBQVUsdUJBQXVCLEtBQWpDO0FBQ25CLGNBQUksWUFBWTtBQUNkLG1CQUFPLE1BQUssd0JBQXdCLElBQUksVUFBakM7VUFDUixPQUFNO0FBQ0wsbUJBQU87VUFDUjtRQUNGLEdBQ0QsTUFBTSxjQUFDLFFBQUQ7QUFBQSxpQkFDSixlQUFlLGVBQXVCLElBQUksTUFBM0IsSUFBcUMsT0FBTztZQUFFLEtBQUs7VUFBUCxHQUFpQixLQUFsQjtRQUR0RCxHQUVOLGdCQUFnQix3QkFBQyxPQUFVO0FBRXpCLGtCQUFRO2lCQUVEO0FBQ0gscUJBQU8sTUFBSyxJQUFJLEdBQUcsV0FBWjtpQkFDSjtpQkFFQTtBQUNILHFCQUFPLE1BQUssSUFBSSxHQUFHLGFBQWEsQ0FBekI7aUJBRUo7QUFDSCxxQkFBTyxNQUFLLElBQUksR0FBRyxNQUFaO2lCQUNKO0FBQ0gscUJBQU8sTUFBSyxJQUFJLEdBQUcsUUFBUSxDQUFwQjtpQkFFSjtBQUNILHFCQUFPLE1BQUssSUFBSSxLQUFLLE1BQU0sR0FBRyxjQUFjLEVBQTVCLEdBQWlDLENBQTFDO2lCQUNKO0FBQ0gscUJBQU8sTUFBSyxJQUFJLEtBQUssTUFBTSxHQUFHLGNBQWMsR0FBNUIsQ0FBVDtpQkFFSjtBQUNILHFCQUFPLE1BQUssSUFBSSxHQUFHLE1BQVo7aUJBQ0o7QUFDSCxxQkFBTyxNQUFLLElBQUksR0FBRyxRQUFRLENBQXBCO2lCQUVKO0FBQ0gscUJBQU8sTUFBSyxJQUFJLEdBQUcsT0FBTyxPQUFPLElBQUksS0FBSyxHQUFHLE9BQU8sRUFBN0M7aUJBQ0o7QUFDSCxxQkFBTyxNQUFLLElBQUksR0FBRyxPQUFPLE9BQU8sSUFBSSxLQUFLLEdBQUcsT0FBTyxJQUFJLENBQWpEO2lCQUNKO0FBQ0gscUJBQU8sTUFBSyxJQUFJLEdBQUcsSUFBWjtpQkFDSjtBQUNILHFCQUFPLE1BQUssSUFBSSxHQUFHLE1BQU0sQ0FBbEI7aUJBRUo7QUFFSCxxQkFBTyxjQUFhO2dCQUFFLFFBQVE7Z0JBQVUsUUFBUSxNQUFLLEtBQUs7Y0FBdEMsQ0FBRDtpQkFDaEI7QUFFSCxxQkFBTyxjQUFhO2dCQUFFLFFBQVE7Z0JBQVMsUUFBUSxNQUFLLEtBQUs7Y0FBckMsQ0FBRDtpQkFDaEI7QUFFSCxxQkFBTyxjQUFhO2dCQUFFLFFBQVE7Z0JBQVUsUUFBUSxNQUFLLEtBQUs7Y0FBdEMsQ0FBRDtpQkFDaEI7QUFFSCxxQkFBTyxHQUFHLEtBQUssV0FBVyxHQUFHLElBQUk7Z0JBQUUsUUFBUTtnQkFBUyxRQUFRLE1BQUssSUFBSTtjQUFwQyxDQUExQjtpQkFDSjtBQUVILHFCQUFPLEdBQUcsS0FBSyxXQUFXLEdBQUcsSUFBSTtnQkFBRSxRQUFRO2dCQUFRLFFBQVEsTUFBSyxJQUFJO2NBQW5DLENBQTFCO2lCQUVKO0FBRUgscUJBQU8sR0FBRztpQkFFUDtBQUNILHFCQUFPLFNBQVE7aUJBRVo7QUFDSCxxQkFBTyx1QkFBdUIsT0FBTztnQkFBRSxLQUFLO2NBQVAsR0FBb0IsS0FBckIsSUFBOEIsTUFBSyxJQUFJLEdBQUcsR0FBWjtpQkFDL0Q7QUFDSCxxQkFBTyx1QkFBdUIsT0FBTztnQkFBRSxLQUFLO2NBQVAsR0FBb0IsS0FBckIsSUFBOEIsTUFBSyxJQUFJLEdBQUcsS0FBSyxDQUFqQjtpQkFFL0Q7QUFFSCxxQkFBTyxNQUFLLElBQUksR0FBRyxPQUFaO2lCQUNKO0FBRUgscUJBQU8sUUFBUSxTQUFTLElBQVY7aUJBQ1g7QUFFSCxxQkFBTyxRQUFRLFFBQVEsSUFBVDtpQkFDWDtBQUVILHFCQUFPLFFBQVEsVUFBVSxJQUFYO2lCQUVYO0FBRUgscUJBQU8sTUFBSyxJQUFJLEdBQUcsT0FBWjtpQkFDSjtBQUVILHFCQUFPLFFBQVEsU0FBUyxLQUFWO2lCQUNYO0FBRUgscUJBQU8sUUFBUSxRQUFRLEtBQVQ7aUJBQ1g7QUFFSCxxQkFBTyxRQUFRLFVBQVUsS0FBWDtpQkFFWDtBQUVILHFCQUFPLHVCQUNILE9BQU87Z0JBQUUsT0FBTztnQkFBVyxLQUFLO2NBQXpCLEdBQXNDLE9BQXZDLElBQ04sTUFBSyxJQUFJLEdBQUcsS0FBWjtpQkFDRDtBQUVILHFCQUFPLHVCQUNILE9BQU87Z0JBQUUsT0FBTztnQkFBVyxLQUFLO2NBQXpCLEdBQXNDLE9BQXZDLElBQ04sTUFBSyxJQUFJLEdBQUcsT0FBTyxDQUFuQjtpQkFDRDtBQUVILHFCQUFPLE1BQU0sU0FBUyxJQUFWO2lCQUNUO0FBRUgscUJBQU8sTUFBTSxRQUFRLElBQVQ7aUJBQ1Q7QUFFSCxxQkFBTyxNQUFNLFVBQVUsSUFBWDtpQkFFVDtBQUVILHFCQUFPLHVCQUNILE9BQU87Z0JBQUUsT0FBTztjQUFULEdBQXNCLE9BQXZCLElBQ04sTUFBSyxJQUFJLEdBQUcsS0FBWjtpQkFDRDtBQUVILHFCQUFPLHVCQUNILE9BQU87Z0JBQUUsT0FBTztjQUFULEdBQXNCLE9BQXZCLElBQ04sTUFBSyxJQUFJLEdBQUcsT0FBTyxDQUFuQjtpQkFDRDtBQUVILHFCQUFPLE1BQU0sU0FBUyxLQUFWO2lCQUNUO0FBRUgscUJBQU8sTUFBTSxRQUFRLEtBQVQ7aUJBQ1Q7QUFFSCxxQkFBTyxNQUFNLFVBQVUsS0FBWDtpQkFFVDtBQUVILHFCQUFPLHVCQUF1QixPQUFPO2dCQUFFLE1BQU07Y0FBUixHQUFxQixNQUF0QixJQUFnQyxNQUFLLElBQUksR0FBRyxJQUFaO2lCQUNqRTtBQUVILHFCQUFPLHVCQUNILE9BQU87Z0JBQUUsTUFBTTtjQUFSLEdBQXFCLE1BQXRCLElBQ04sTUFBSyxJQUFJLEdBQUcsS0FBSyxTQUFSLEVBQW1CLE1BQU0sRUFBekIsR0FBOEIsQ0FBdkM7aUJBQ0Q7QUFFSCxxQkFBTyx1QkFDSCxPQUFPO2dCQUFFLE1BQU07Y0FBUixHQUFxQixNQUF0QixJQUNOLE1BQUssSUFBSSxHQUFHLE1BQU0sQ0FBbEI7aUJBQ0Q7QUFFSCxxQkFBTyx1QkFDSCxPQUFPO2dCQUFFLE1BQU07Y0FBUixHQUFxQixNQUF0QixJQUNOLE1BQUssSUFBSSxHQUFHLE1BQU0sQ0FBbEI7aUJBRUQ7QUFFSCxxQkFBTyxJQUFJLE9BQUQ7aUJBQ1A7QUFFSCxxQkFBTyxJQUFJLE1BQUQ7aUJBQ1A7QUFDSCxxQkFBTyxJQUFJLFFBQUQ7aUJBQ1A7QUFDSCxxQkFBTyxNQUFLLElBQUksR0FBRyxTQUFTLFNBQVosRUFBdUIsTUFBTSxFQUE3QixHQUFrQyxDQUEzQztpQkFDSjtBQUNILHFCQUFPLE1BQUssSUFBSSxHQUFHLFVBQVUsQ0FBdEI7aUJBQ0o7QUFDSCxxQkFBTyxNQUFLLElBQUksR0FBRyxVQUFaO2lCQUNKO0FBQ0gscUJBQU8sTUFBSyxJQUFJLEdBQUcsWUFBWSxDQUF4QjtpQkFDSjtBQUNILHFCQUFPLE1BQUssSUFBSSxHQUFHLE9BQVo7aUJBQ0o7QUFDSCxxQkFBTyxNQUFLLElBQUksR0FBRyxTQUFTLENBQXJCO2lCQUNKO0FBRUgscUJBQU8sTUFBSyxJQUFJLEdBQUcsT0FBWjtpQkFDSjtBQUVILHFCQUFPLE1BQUssSUFBSSxHQUFHLFNBQVMsQ0FBckI7aUJBQ0o7QUFDSCxxQkFBTyxNQUFLLElBQUksS0FBSyxNQUFNLEdBQUcsS0FBSyxHQUFuQixDQUFUO2lCQUNKO0FBQ0gscUJBQU8sTUFBSyxJQUFJLEdBQUcsRUFBWjs7QUFFUCxxQkFBTyxXQUFXLEtBQUQ7O1FBRXRCO0FBRUgsZUFBTyxnQkFBZ0IsV0FBVSxZQUFZLEdBQXRCLEdBQTRCLGFBQTdCO01BQ3ZCO2FBRUQsMkJBQUEsa0NBQXlCLEtBQUssS0FBSztBQUFBLFlBQUEsU0FBQTtBQUNqQyxZQUFNLGVBQWUsdUJBQUMsT0FBVTtBQUM1QixrQkFBUSxNQUFNO2lCQUNQO0FBQ0gscUJBQU87aUJBQ0o7QUFDSCxxQkFBTztpQkFDSjtBQUNILHFCQUFPO2lCQUNKO0FBQ0gscUJBQU87aUJBQ0o7QUFDSCxxQkFBTztpQkFDSjtBQUNILHFCQUFPO2lCQUNKO0FBQ0gscUJBQU87O0FBRVAscUJBQU87O1FBRVosR0FDRCxnQkFBZ0Isd0JBQUMsUUFBRDtBQUFBLGlCQUFZLFNBQUMsT0FBVTtBQUNyQyxnQkFBTSxTQUFTLGFBQWEsS0FBRDtBQUMzQixnQkFBSSxRQUFRO0FBQ1YscUJBQU8sT0FBSyxJQUFJLE9BQU8sSUFBSSxNQUFYLEdBQW9CLE1BQU0sTUFBbkM7WUFDUixPQUFNO0FBQ0wscUJBQU87WUFDUjtVQUNGO1FBUGUsR0FRaEIsU0FBUyxXQUFVLFlBQVksR0FBdEIsR0FDVCxhQUFhLE9BQU8sT0FDbEIsU0FBQyxPQUFELE1BQUE7QUFBQSxjQUFVLFVBQVYsS0FBVSxTQUFTLE1BQW5CLEtBQW1CO0FBQW5CLGlCQUE4QixVQUFVLFFBQVEsTUFBTSxPQUFPLEdBQWI7UUFBaEQsR0FDQSxDQUFBLENBRlcsR0FJYixZQUFZLElBQUksUUFBSixNQUFBLEtBQWUsV0FBVyxJQUFJLFlBQWYsRUFBNkIsT0FBTyxTQUFDLEdBQUQ7QUFBQSxpQkFBTztRQUFQLENBQXBDLENBQVo7QUFDakIsZUFBTyxnQkFBZ0IsUUFBUSxjQUFjLFNBQUQsQ0FBdEI7TUFDdkI7OztRQ3BZa0IsVUFBQSwyQkFBQTtBQUNuQix3QkFBWSxRQUFRLGFBQWE7QUFDL0IsYUFBSyxTQUFTO0FBQ2QsYUFBSyxjQUFjO01BQ3BCOzthQUVELFlBQUEscUJBQVk7QUFDVixZQUFJLEtBQUssYUFBYTtBQUNwQixpQkFBVSxLQUFLLFNBQWYsT0FBMEIsS0FBSztRQUNoQyxPQUFNO0FBQ0wsaUJBQU8sS0FBSztRQUNiO01BQ0Y7OztRQ1BrQixPQUFBLDJCQUFBOzs7O2FBcUNuQixhQUFBLG9CQUFXLElBQUksTUFBTTtBQUNuQixjQUFNLElBQUksb0JBQUo7TUFDUDthQVVELGVBQUEsdUJBQWEsSUFBSSxTQUFRO0FBQ3ZCLGNBQU0sSUFBSSxvQkFBSjtNQUNQO2FBUUQsU0FBQSxpQkFBTyxJQUFJO0FBQ1QsY0FBTSxJQUFJLG9CQUFKO01BQ1A7YUFRRCxTQUFBLGdCQUFPLFdBQVc7QUFDaEIsY0FBTSxJQUFJLG9CQUFKO01BQ1A7OzthQWpFRCxnQkFBVztBQUNULGdCQUFNLElBQUksb0JBQUo7UUFDUDs7O2FBT0QsZ0JBQVc7QUFDVCxnQkFBTSxJQUFJLG9CQUFKO1FBQ1A7OzthQU9ELGdCQUFrQjtBQUNoQixnQkFBTSxJQUFJLG9CQUFKO1FBQ1A7OzthQW9ERCxnQkFBYztBQUNaLGdCQUFNLElBQUksb0JBQUo7UUFDUDs7OztBQ2xGSCxRQUFJLGNBQVk7UUFNSyxhQUFBLHlCQUFBLE9BQUE7Ozs7OzthQTRCbkIsYUFBQSxvQkFBVyxJQUFYLE1BQW1DO0FBQUEsWUFBbEIsVUFBa0IsS0FBbEIsUUFBUSxVQUFVLEtBQVY7QUFDdkIsZUFBTyxjQUFjLElBQUksU0FBUSxPQUFiO01BQ3JCO2FBR0QsZUFBQSx3QkFBYSxJQUFJLFNBQVE7QUFDdkIsZUFBTyxhQUFhLEtBQUssT0FBTyxFQUFaLEdBQWlCLE9BQWxCO01BQ3BCO2FBR0QsU0FBQSxpQkFBTyxJQUFJO0FBQ1QsZUFBTyxDQUFDLElBQUksS0FBSyxFQUFULEVBQWEsa0JBQWI7TUFDVDthQUdELFNBQUEsZ0JBQU8sV0FBVztBQUNoQixlQUFPLFVBQVUsU0FBUztNQUMzQjs7O2FBaENELGdCQUFXO0FBQ1QsaUJBQU87UUFDUjs7O2FBR0QsZ0JBQVc7QUFDVCxpQkFBTyxJQUFJLEtBQUssZUFBVCxFQUEwQixnQkFBMUIsRUFBNEM7UUFDcEQ7OzthQUdELGdCQUFrQjtBQUNoQixpQkFBTztRQUNSOzs7YUF1QkQsZ0JBQWM7QUFDWixpQkFBTztRQUNSOzs7YUE3Q0QsZ0JBQXNCO0FBQ3BCLGNBQUksZ0JBQWMsTUFBTTtBQUN0QiwwQkFBWSxJQUFJLFlBQUo7VUFDYjtBQUNELGlCQUFPO1FBQ1I7OztNQVZxQyxJQUFBO0FDTnhDLFFBQU0sZ0JBQWdCLE9BQU0sTUFBSyxVQUFVLFNBQWYsR0FBQTtBQUU1QixRQUFJLFdBQVcsQ0FBQTtBQUNmLHFCQUFpQixNQUFNO0FBQ3JCLFVBQUksQ0FBQyxTQUFTLE9BQU87QUFDbkIsaUJBQVMsUUFBUSxJQUFJLEtBQUssZUFBZSxTQUFTO1VBQ2hELFFBQVE7VUFDUixVQUFVO1VBQ1YsTUFBTTtVQUNOLE9BQU87VUFDUCxLQUFLO1VBQ0wsTUFBTTtVQUNOLFFBQVE7VUFDUixRQUFRO1FBUndDLENBQWpDO01BVWxCO0FBQ0QsYUFBTyxTQUFTO0lBQ2pCO0FBRUQsUUFBTSxZQUFZO01BQ2hCLE1BQU07TUFDTixPQUFPO01BQ1AsS0FBSztNQUNMLE1BQU07TUFDTixRQUFRO01BQ1IsUUFBUTtJQU5RO0FBU2xCLHlCQUFxQixLQUFLLE1BQU07QUFDeEIsVUFBQSxZQUFZLElBQUksT0FBTyxJQUFYLEVBQWlCLFFBQVEsV0FBVyxFQUFwQyxHQUNoQixTQUFTLDBDQUEwQyxLQUFLLFNBQS9DLEdBQ04sU0FBZ0QsT0FGL0MsSUFFTyxPQUF3QyxPQUYvQyxJQUVhLFFBQWtDLE9BRi9DLElBRW9CLFFBQTJCLE9BRi9DLElBRTJCLFVBQW9CLE9BRi9DLElBRW9DLFVBQVcsT0FGL0M7QUFHTixhQUFPLENBQUMsT0FBTyxRQUFRLE1BQU0sT0FBTyxTQUFTLE9BQXRDO0lBQ1I7QUFFRCx5QkFBcUIsS0FBSyxNQUFNO0FBQzlCLFVBQU0sWUFBWSxJQUFJLGNBQWMsSUFBbEIsR0FDaEIsU0FBUyxDQUFBO0FBQ1gsZUFBUyxJQUFJLEdBQUcsSUFBSSxVQUFVLFFBQVEsS0FBSztBQUN6QyxZQUFBLGVBQXdCLFVBQVUsSUFBMUIsUUFBUixhQUFRLE1BQU0sUUFBZCxhQUFjLE9BQ1osTUFBTSxVQUFVO0FBRWxCLFlBQUksQ0FBQyxZQUFZLEdBQUQsR0FBTztBQUNyQixpQkFBTyxPQUFPLFNBQVMsT0FBTyxFQUFSO1FBQ3ZCO01BQ0Y7QUFDRCxhQUFPO0lBQ1I7QUFFRCxRQUFJLGdCQUFnQixDQUFBO1FBS0MsV0FBQSx5QkFBQSxPQUFBOztnQkFLWixTQUFQLGlCQUFjLE1BQU07QUFDbEIsWUFBSSxDQUFDLGNBQWMsT0FBTztBQUN4Qix3QkFBYyxRQUFRLElBQUksVUFBUyxJQUFiO1FBQ3ZCO0FBQ0QsZUFBTyxjQUFjO01BQ3RCO2dCQU1NLGFBQVAsc0JBQW9CO0FBQ2xCLHdCQUFnQixDQUFBO0FBQ2hCLG1CQUFXLENBQUE7TUFDWjtnQkFVTSxtQkFBUCwwQkFBd0IsSUFBRztBQUN6QixlQUFPLENBQUMsQ0FBRSxPQUFLLEdBQUUsTUFBTSxhQUFSO01BQ2hCO2dCQVVNLGNBQVAscUJBQW1CLE1BQU07QUFDdkIsWUFBSSxDQUFDLE1BQU07QUFDVCxpQkFBTztRQUNSO0FBQ0QsWUFBSTtBQUNGLGNBQUksS0FBSyxlQUFlLFNBQVM7WUFBRSxVQUFVO1VBQVosQ0FBakMsRUFBcUQsT0FBckQ7QUFDQSxpQkFBTztRQUNSLFNBQVEsR0FBUDtBQUNBLGlCQUFPO1FBQ1I7TUFDRjtBQUVELHlCQUFZLE1BQU07QUFBQSxZQUFBO0FBQ2hCLGdCQUFBLE1BQUEsS0FBQSxJQUFBLEtBQUE7QUFFQSxjQUFLLFdBQVc7QUFFaEIsY0FBSyxRQUFRLFVBQVMsWUFBWSxJQUFyQjtBQUxHLGVBQUE7TUFNakI7O2FBa0JELGFBQUEsb0JBQVcsSUFBWCxNQUFtQztBQUFBLFlBQWxCLFVBQWtCLEtBQWxCLFFBQVEsVUFBVSxLQUFWO0FBQ3ZCLGVBQU8sY0FBYyxJQUFJLFNBQVEsU0FBUSxLQUFLLElBQTFCO01BQ3JCO2FBR0QsZUFBQSx3QkFBYSxJQUFJLFNBQVE7QUFDdkIsZUFBTyxhQUFhLEtBQUssT0FBTyxFQUFaLEdBQWlCLE9BQWxCO01BQ3BCO2FBR0QsU0FBQSxpQkFBTyxJQUFJO0FBQ1QsWUFBTSxPQUFPLElBQUksS0FBSyxFQUFUO0FBRWIsWUFBSSxNQUFNLElBQUQ7QUFBUSxpQkFBTztBQUVsQixZQUFBLE1BQU0sUUFBUSxLQUFLLElBQU4sR0FBYixRQUN1QyxJQUFJLGdCQUMzQyxZQUFZLEtBQUssSUFBTixJQUNYLFlBQVksS0FBSyxJQUFOLEdBRmQsT0FERyxNQUFBLElBQ0csUUFESCxNQUFBLElBQ1UsTUFEVixNQUFBLElBQ2UsT0FEZixNQUFBLElBQ3FCLFNBRHJCLE1BQUEsSUFDNkIsU0FEN0IsTUFBQTtBQU1OLFlBQU0sZUFBZSxTQUFTLEtBQUssSUFBSTtBQUV2QyxZQUFNLFFBQVEsYUFBYTtVQUN6QjtVQUNBO1VBQ0E7VUFDQSxNQUFNO1VBQ047VUFDQTtVQUNBLGFBQWE7UUFQWSxDQUFEO0FBVTFCLFlBQUksT0FBTyxDQUFDO0FBQ1osWUFBTSxPQUFPLE9BQU87QUFDcEIsZ0JBQVEsUUFBUSxJQUFJLE9BQU8sTUFBTztBQUNsQyxlQUFRLFNBQVEsUUFBUyxNQUFLO01BQy9CO2FBR0QsU0FBQSxnQkFBTyxXQUFXO0FBQ2hCLGVBQU8sVUFBVSxTQUFTLFVBQVUsVUFBVSxTQUFTLEtBQUs7TUFDN0Q7OzthQXpERCxnQkFBVztBQUNULGlCQUFPO1FBQ1I7OzthQUdELGdCQUFXO0FBQ1QsaUJBQU8sS0FBSztRQUNiOzs7YUFHRCxnQkFBa0I7QUFDaEIsaUJBQU87UUFDUjs7O2FBZ0RELGdCQUFjO0FBQ1osaUJBQU8sS0FBSztRQUNiOzs7TUE1SG1DLElBQUE7QUN0RHRDLFFBQUksWUFBWTtRQU1LLGtCQUFBLHlCQUFBLE9BQUE7O3VCQWlCWixXQUFQLG9CQUFnQixTQUFRO0FBQ3RCLGVBQU8sWUFBVyxJQUFJLGlCQUFnQixjQUFjLElBQUksaUJBQWdCLE9BQXBCO01BQ3JEO3VCQVVNLGlCQUFQLHdCQUFzQixJQUFHO0FBQ3ZCLFlBQUksSUFBRztBQUNMLGNBQU0sSUFBSSxHQUFFLE1BQU0sdUNBQVI7QUFDVixjQUFJLEdBQUc7QUFDTCxtQkFBTyxJQUFJLGlCQUFnQixhQUFhLEVBQUUsSUFBSSxFQUFFLEVBQVQsQ0FBaEM7VUFDUjtRQUNGO0FBQ0QsZUFBTztNQUNSO0FBRUQsZ0NBQVksU0FBUTtBQUFBLFlBQUE7QUFDbEIsZ0JBQUEsTUFBQSxLQUFBLElBQUEsS0FBQTtBQUVBLGNBQUssUUFBUTtBQUhLLGVBQUE7TUFJbkI7O2FBYUQsYUFBQSxzQkFBYTtBQUNYLGVBQU8sS0FBSztNQUNiO2FBR0QsZUFBQSx3QkFBYSxJQUFJLFNBQVE7QUFDdkIsZUFBTyxhQUFhLEtBQUssT0FBTyxPQUFiO01BQ3BCO2FBUUQsU0FBQSxtQkFBUztBQUNQLGVBQU8sS0FBSztNQUNiO2FBR0QsU0FBQSxnQkFBTyxXQUFXO0FBQ2hCLGVBQU8sVUFBVSxTQUFTLFdBQVcsVUFBVSxVQUFVLEtBQUs7TUFDL0Q7OzthQWhDRCxnQkFBVztBQUNULGlCQUFPO1FBQ1I7OzthQUdELGdCQUFXO0FBQ1QsaUJBQU8sS0FBSyxVQUFVLElBQUksUUFBbkIsUUFBaUMsYUFBYSxLQUFLLE9BQU8sUUFBYjtRQUNyRDs7O2FBYUQsZ0JBQWtCO0FBQ2hCLGlCQUFPO1FBQ1I7OzthQWFELGdCQUFjO0FBQ1osaUJBQU87UUFDUjs7O2FBOUVELGdCQUF5QjtBQUN2QixjQUFJLGNBQWMsTUFBTTtBQUN0Qix3QkFBWSxJQUFJLGlCQUFnQixDQUFwQjtVQUNiO0FBQ0QsaUJBQU87UUFDUjs7O01BVjBDLElBQUE7UUNIeEIsY0FBQSx5QkFBQSxPQUFBOztBQUNuQiw0QkFBWSxVQUFVO0FBQUEsWUFBQTtBQUNwQixnQkFBQSxNQUFBLEtBQUEsSUFBQSxLQUFBO0FBRUEsY0FBSyxXQUFXO0FBSEksZUFBQTtNQUlyQjs7YUFrQkQsYUFBQSxzQkFBYTtBQUNYLGVBQU87TUFDUjthQUdELGVBQUEseUJBQWU7QUFDYixlQUFPO01BQ1I7YUFHRCxTQUFBLG1CQUFTO0FBQ1AsZUFBTztNQUNSO2FBR0QsU0FBQSxrQkFBUztBQUNQLGVBQU87TUFDUjs7O2FBaENELGdCQUFXO0FBQ1QsaUJBQU87UUFDUjs7O2FBR0QsZ0JBQVc7QUFDVCxpQkFBTyxLQUFLO1FBQ2I7OzthQUdELGdCQUFrQjtBQUNoQixpQkFBTztRQUNSOzs7YUF1QkQsZ0JBQWM7QUFDWixpQkFBTztRQUNSOzs7TUE3Q3NDLElBQUE7QUNLbEMsMkJBQXVCLE9BQU8sY0FBYTtBQUVoRCxVQUFJLFlBQVksS0FBRCxLQUFXLFVBQVUsTUFBTTtBQUN4QyxlQUFPO01BQ1IsV0FBVSxpQkFBaUIsTUFBTTtBQUNoQyxlQUFPO01BQ1IsV0FBVSxTQUFTLEtBQUQsR0FBUztBQUMxQixZQUFNLFVBQVUsTUFBTSxZQUFOO0FBQ2hCLFlBQUksWUFBWSxXQUFXLFlBQVk7QUFBVSxpQkFBTztpQkFDL0MsWUFBWSxTQUFTLFlBQVk7QUFBTyxpQkFBTyxnQkFBZ0I7aUJBQy9ELFNBQVMsaUJBQWlCLE9BQTFCO0FBQW9DLGlCQUFPLFNBQVMsT0FBTyxLQUFoQjs7QUFDL0MsaUJBQU8sZ0JBQWdCLGVBQWUsT0FBL0IsS0FBMkMsSUFBSSxZQUFZLEtBQWhCO01BQ3hELFdBQVUsU0FBUyxLQUFELEdBQVM7QUFDMUIsZUFBTyxnQkFBZ0IsU0FBUyxLQUF6QjtNQUNSLFdBQVUsT0FBTyxVQUFVLFlBQVksTUFBTSxVQUFVLE9BQU8sTUFBTSxXQUFXLFVBQVU7QUFHeEYsZUFBTztNQUNSLE9BQU07QUFDTCxlQUFPLElBQUksWUFBWSxLQUFoQjtNQUNSO0lBQ0Y7QUMxQkQsUUFBSSxPQUFNLGdCQUFBO0FBQUEsYUFBTSxLQUFLLElBQUw7SUFBTjtBQUFWLFFBQ0UsY0FBYztBQURoQixRQUVFLGlCQUFnQjtBQUZsQixRQUdFLHlCQUF5QjtBQUgzQixRQUlFLHdCQUF3QjtBQUoxQixRQUtFO1FBS21CLFdBQUEsMkJBQUE7OztnQkEwR1osY0FBUCx1QkFBcUI7QUFDbkIsZUFBTyxXQUFQO0FBQ0EsaUJBQVMsV0FBVDtNQUNEOzs7YUF4R0QsZ0JBQWlCO0FBQ2YsaUJBQU87UUFDUjthQVNELGNBQWUsSUFBRztBQUNoQixpQkFBTTtRQUNQOzs7YUFnQkQsZ0JBQXlCO0FBQ3ZCLGlCQUFPLGNBQWMsYUFBYSxXQUFXLFFBQXpCO1FBQ3JCO2FBWEQsY0FBdUIsTUFBTTtBQUMzQix3QkFBYztRQUNmOzs7YUFlRCxnQkFBMkI7QUFDekIsaUJBQU87UUFDUjthQU1ELGNBQXlCLFNBQVE7QUFDL0IsMkJBQWdCO1FBQ2pCOzs7YUFNRCxnQkFBb0M7QUFDbEMsaUJBQU87UUFDUjthQU1ELGNBQWtDLGlCQUFpQjtBQUNqRCxtQ0FBeUI7UUFDMUI7OzthQU1ELGdCQUFtQztBQUNqQyxpQkFBTztRQUNSO2FBTUQsY0FBaUMsZ0JBQWdCO0FBQy9DLGtDQUF3QjtRQUN6Qjs7O2FBTUQsZ0JBQTRCO0FBQzFCLGlCQUFPO1FBQ1I7YUFNRCxjQUEwQixHQUFHO0FBQzNCLDJCQUFpQjtRQUNsQjs7Ozs7O0FDNUdILFFBQUksY0FBYyxDQUFBO0FBQ2xCLHlCQUFxQixXQUFXLE1BQVc7QUFBQSxVQUFYLFNBQVcsUUFBQTtBQUFYLGVBQU8sQ0FBQTtNQUFJO0FBQ3pDLFVBQU0sTUFBTSxLQUFLLFVBQVUsQ0FBQyxXQUFXLElBQVosQ0FBZjtBQUNaLFVBQUksTUFBTSxZQUFZO0FBQ3RCLFVBQUksQ0FBQyxLQUFLO0FBQ1IsY0FBTSxJQUFJLEtBQUssV0FBVyxXQUFXLElBQS9CO0FBQ04sb0JBQVksT0FBTztNQUNwQjtBQUNELGFBQU87SUFDUjtBQUVELFFBQUksY0FBYyxDQUFBO0FBQ2xCLDBCQUFzQixXQUFXLE1BQVc7QUFBQSxVQUFYLFNBQVcsUUFBQTtBQUFYLGVBQU8sQ0FBQTtNQUFJO0FBQzFDLFVBQU0sTUFBTSxLQUFLLFVBQVUsQ0FBQyxXQUFXLElBQVosQ0FBZjtBQUNaLFVBQUksTUFBTSxZQUFZO0FBQ3RCLFVBQUksQ0FBQyxLQUFLO0FBQ1IsY0FBTSxJQUFJLEtBQUssZUFBZSxXQUFXLElBQW5DO0FBQ04sb0JBQVksT0FBTztNQUNwQjtBQUNELGFBQU87SUFDUjtBQUVELFFBQUksZUFBZSxDQUFBO0FBQ25CLDBCQUFzQixXQUFXLE1BQVc7QUFBQSxVQUFYLFNBQVcsUUFBQTtBQUFYLGVBQU8sQ0FBQTtNQUFJO0FBQzFDLFVBQU0sTUFBTSxLQUFLLFVBQVUsQ0FBQyxXQUFXLElBQVosQ0FBZjtBQUNaLFVBQUksTUFBTSxhQUFhO0FBQ3ZCLFVBQUksQ0FBQyxLQUFLO0FBQ1IsY0FBTSxJQUFJLEtBQUssYUFBYSxXQUFXLElBQWpDO0FBQ04scUJBQWEsT0FBTztNQUNyQjtBQUNELGFBQU87SUFDUjtBQUVELFFBQUksZUFBZSxDQUFBO0FBQ25CLDBCQUFzQixXQUFXLE1BQVc7QUFBQSxVQUFYLFNBQVcsUUFBQTtBQUFYLGVBQU8sQ0FBQTtNQUFJO0FBQzFDLFVBQUEsUUFBa0M7QUFBbEMsWUFBUTtBQUFSLFVBQWlCLGVBQWpCLDhCQUFBLE9BQUEsU0FBQTtBQUNBLFVBQU0sTUFBTSxLQUFLLFVBQVUsQ0FBQyxXQUFXLFlBQVosQ0FBZjtBQUNaLFVBQUksTUFBTSxhQUFhO0FBQ3ZCLFVBQUksQ0FBQyxLQUFLO0FBQ1IsY0FBTSxJQUFJLEtBQUssbUJBQW1CLFdBQVcsSUFBdkM7QUFDTixxQkFBYSxPQUFPO01BQ3JCO0FBQ0QsYUFBTztJQUNSO0FBRUQsUUFBSSxpQkFBaUI7QUFDckIsNEJBQXdCO0FBQ3RCLFVBQUksZ0JBQWdCO0FBQ2xCLGVBQU87TUFDUixPQUFNO0FBQ0wseUJBQWlCLElBQUksS0FBSyxlQUFULEVBQTBCLGdCQUExQixFQUE0QztBQUM3RCxlQUFPO01BQ1I7SUFDRjtBQUVELCtCQUEyQixXQUFXO0FBU3BDLFVBQU0sU0FBUyxVQUFVLFFBQVEsS0FBbEI7QUFDZixVQUFJLFdBQVcsSUFBSTtBQUNqQixlQUFPLENBQUMsU0FBRDtNQUNSLE9BQU07QUFDTCxZQUFJO0FBQ0osWUFBTSxVQUFVLFVBQVUsVUFBVSxHQUFHLE1BQXZCO0FBQ2hCLFlBQUk7QUFDRixvQkFBVSxhQUFhLFNBQUQsRUFBWSxnQkFBeEI7UUFDWCxTQUFRLEdBQVA7QUFDQSxvQkFBVSxhQUFhLE9BQUQsRUFBVSxnQkFBdEI7UUFDWDtBQUVELFlBQUEsV0FBc0MsU0FBOUIsa0JBQVIsU0FBUSxpQkFBaUIsV0FBekIsU0FBeUI7QUFFekIsZUFBTyxDQUFDLFNBQVMsaUJBQWlCLFFBQTNCO01BQ1I7SUFDRjtBQUVELDhCQUEwQixXQUFXLGlCQUFpQixnQkFBZ0I7QUFDcEUsVUFBSSxrQkFBa0IsaUJBQWlCO0FBQ3JDLHFCQUFhO0FBRWIsWUFBSSxnQkFBZ0I7QUFDbEIsdUJBQVMsU0FBVztRQUNyQjtBQUVELFlBQUksaUJBQWlCO0FBQ25CLHVCQUFTLFNBQVc7UUFDckI7QUFDRCxlQUFPO01BQ1IsT0FBTTtBQUNMLGVBQU87TUFDUjtJQUNGO0FBRUQsdUJBQW1CLEdBQUc7QUFDcEIsVUFBTSxLQUFLLENBQUE7QUFDWCxlQUFTLElBQUksR0FBRyxLQUFLLElBQUksS0FBSztBQUM1QixZQUFNLEtBQUssVUFBUyxJQUFJLE1BQU0sR0FBRyxDQUF0QjtBQUNYLFdBQUcsS0FBSyxFQUFFLEVBQUQsQ0FBVDtNQUNEO0FBQ0QsYUFBTztJQUNSO0FBRUQseUJBQXFCLEdBQUc7QUFDdEIsVUFBTSxLQUFLLENBQUE7QUFDWCxlQUFTLElBQUksR0FBRyxLQUFLLEdBQUcsS0FBSztBQUMzQixZQUFNLEtBQUssVUFBUyxJQUFJLE1BQU0sSUFBSSxLQUFLLENBQTVCO0FBQ1gsV0FBRyxLQUFLLEVBQUUsRUFBRCxDQUFUO01BQ0Q7QUFDRCxhQUFPO0lBQ1I7QUFFRCx1QkFBbUIsS0FBSyxRQUFRLFdBQVcsV0FBVyxRQUFRO0FBQzVELFVBQU0sT0FBTyxJQUFJLFlBQVksU0FBaEI7QUFFYixVQUFJLFNBQVMsU0FBUztBQUNwQixlQUFPO01BQ1IsV0FBVSxTQUFTLE1BQU07QUFDeEIsZUFBTyxVQUFVLE1BQUQ7TUFDakIsT0FBTTtBQUNMLGVBQU8sT0FBTyxNQUFEO01BQ2Q7SUFDRjtBQUVELGlDQUE2QixLQUFLO0FBQ2hDLFVBQUksSUFBSSxtQkFBbUIsSUFBSSxvQkFBb0IsUUFBUTtBQUN6RCxlQUFPO01BQ1IsT0FBTTtBQUNMLGVBQ0UsSUFBSSxvQkFBb0IsVUFDeEIsQ0FBQyxJQUFJLFVBQ0wsSUFBSSxPQUFPLFdBQVcsSUFBdEIsS0FDQSxJQUFJLEtBQUssZUFBZSxJQUFJLElBQTVCLEVBQWtDLGdCQUFsQyxFQUFvRCxvQkFBb0I7TUFFM0U7SUFDRjtRQU1LLHNCQUFBLDJCQUFBO0FBQ0osb0NBQVksTUFBTSxhQUFhLE1BQU07QUFDbkMsYUFBSyxRQUFRLEtBQUssU0FBUztBQUMzQixhQUFLLFFBQVEsS0FBSyxTQUFTO0FBRVksYUFBL0I7QUFBK0IsYUFBeEI7QUFBZixZQUF5QixZQUF6Qiw4QkFBdUMsTUFBdkMsVUFBQTtBQUVBLFlBQUksQ0FBQyxlQUFlLE9BQU8sS0FBSyxTQUFaLEVBQXVCLFNBQVMsR0FBRztBQUNyRCxjQUFNLFdBQVEsU0FBQTtZQUFLLGFBQWE7VUFBbEIsR0FBNEIsSUFBNUI7QUFDZCxjQUFJLEtBQUssUUFBUTtBQUFHLHFCQUFTLHVCQUF1QixLQUFLO0FBQ3pELGVBQUssTUFBTSxhQUFhLE1BQU0sUUFBUDtRQUN4QjtNQUNGOzthQUVELFNBQUEsaUJBQU8sR0FBRztBQUNSLFlBQUksS0FBSyxLQUFLO0FBQ1osY0FBTSxRQUFRLEtBQUssUUFBUSxLQUFLLE1BQU0sQ0FBWCxJQUFnQjtBQUMzQyxpQkFBTyxLQUFLLElBQUksT0FBTyxLQUFoQjtRQUNSLE9BQU07QUFFTCxjQUFNLFNBQVEsS0FBSyxRQUFRLEtBQUssTUFBTSxDQUFYLElBQWdCLFFBQVEsR0FBRyxDQUFKO0FBQ2xELGlCQUFPLFNBQVMsUUFBTyxLQUFLLEtBQWI7UUFDaEI7TUFDRjs7O1FBT0csb0JBQUEsMkJBQUE7QUFDSixrQ0FBWSxJQUFJLE1BQU0sTUFBTTtBQUMxQixhQUFLLE9BQU87QUFFWixZQUFJO0FBQ0osWUFBSSxHQUFHLEtBQUssYUFBYTtBQU92QixjQUFNLFlBQVksS0FBTSxJQUFHLFNBQVM7QUFDcEMsY0FBTSxVQUFVLGFBQWEsSUFBYixhQUE0QixZQUE1QixZQUFvRDtBQUNwRSxjQUFJLEdBQUcsV0FBVyxLQUFLLFNBQVMsT0FBTyxPQUFoQixFQUF5QixPQUFPO0FBQ3JELGdCQUFJO0FBQ0osaUJBQUssS0FBSztVQUNYLE9BQU07QUFRTCxnQkFBSTtBQUNKLGdCQUFJLEtBQUssY0FBYztBQUNyQixtQkFBSyxLQUFLO1lBQ1gsT0FBTTtBQUNMLG1CQUFLLEtBQUssR0FBRyxXQUFXLElBQUksS0FBSyxVQUFTLFdBQVcsR0FBRyxLQUFLLEdBQUcsU0FBUyxLQUFLLEdBQTdDO1lBQ2xDO1VBQ0Y7UUFDRixXQUFVLEdBQUcsS0FBSyxTQUFTLFVBQVU7QUFDcEMsZUFBSyxLQUFLO1FBQ1gsT0FBTTtBQUNMLGVBQUssS0FBSztBQUNWLGNBQUksR0FBRyxLQUFLO1FBQ2I7QUFFRCxZQUFNLFdBQVEsU0FBQSxDQUFBLEdBQVEsS0FBSyxJQUFiO0FBQ2QsWUFBSSxHQUFHO0FBQ0wsbUJBQVMsV0FBVztRQUNyQjtBQUNELGFBQUssTUFBTSxhQUFhLE1BQU0sUUFBUDtNQUN4Qjs7Y0FFRCxTQUFBLG1CQUFTO0FBQ1AsZUFBTyxLQUFLLElBQUksT0FBTyxLQUFLLEdBQUcsU0FBUixDQUFoQjtNQUNSO2NBRUQsZ0JBQUEseUJBQWdCO0FBQ2QsZUFBTyxLQUFLLElBQUksY0FBYyxLQUFLLEdBQUcsU0FBUixDQUF2QjtNQUNSO2NBRUQsa0JBQUEsMkJBQWtCO0FBQ2hCLGVBQU8sS0FBSyxJQUFJLGdCQUFUO01BQ1I7OztRQU1HLG1CQUFBLDJCQUFBO0FBQ0osaUNBQVksTUFBTSxXQUFXLE1BQU07QUFDakMsYUFBSyxPQUFMLFNBQUE7VUFBYyxPQUFPO1FBQXJCLEdBQWdDLElBQWhDO0FBQ0EsWUFBSSxDQUFDLGFBQWEsWUFBVyxHQUFJO0FBQy9CLGVBQUssTUFBTSxhQUFhLE1BQU0sSUFBUDtRQUN4QjtNQUNGOztjQUVELFNBQUEsaUJBQU8sUUFBTyxPQUFNO0FBQ2xCLFlBQUksS0FBSyxLQUFLO0FBQ1osaUJBQU8sS0FBSyxJQUFJLE9BQU8sUUFBTyxLQUF2QjtRQUNSLE9BQU07QUFDTCxpQkFBTyxtQkFBMkIsT0FBTSxRQUFPLEtBQUssS0FBSyxTQUFTLEtBQUssS0FBSyxVQUFVLE1BQS9FO1FBQ1I7TUFDRjtjQUVELGdCQUFBLHVCQUFjLFFBQU8sT0FBTTtBQUN6QixZQUFJLEtBQUssS0FBSztBQUNaLGlCQUFPLEtBQUssSUFBSSxjQUFjLFFBQU8sS0FBOUI7UUFDUixPQUFNO0FBQ0wsaUJBQU8sQ0FBQTtRQUNSO01BQ0Y7OztRQU9rQixTQUFBLDJCQUFBO2NBQ1osV0FBUCxrQkFBZ0IsTUFBTTtBQUNwQixlQUFPLFFBQU8sT0FBTyxLQUFLLFFBQVEsS0FBSyxpQkFBaUIsS0FBSyxnQkFBZ0IsS0FBSyxXQUEzRTtNQUNSO2NBRU0sU0FBUCxpQkFBYyxTQUFRLGlCQUFpQixnQkFBZ0IsYUFBcUI7QUFBQSxZQUFyQixnQkFBcUIsUUFBQTtBQUFyQix3QkFBYztRQUFPO0FBQzFFLFlBQU0sa0JBQWtCLFdBQVUsU0FBUztBQUUzQyxZQUFNLFVBQVUsbUJBQW9CLGVBQWMsVUFBVSxhQUFZO0FBQ3hFLFlBQU0sbUJBQW1CLG1CQUFtQixTQUFTO0FBQ3JELFlBQU0sa0JBQWtCLGtCQUFrQixTQUFTO0FBQ25ELGVBQU8sSUFBSSxRQUFPLFNBQVMsa0JBQWtCLGlCQUFpQixlQUF2RDtNQUNSO2NBRU0sYUFBUCxzQkFBb0I7QUFDbEIseUJBQWlCO0FBQ2pCLHNCQUFjLENBQUE7QUFDZCx1QkFBZSxDQUFBO0FBQ2YsdUJBQWUsQ0FBQTtNQUNoQjtjQUVNLGFBQVAsb0JBQUEsT0FBb0U7QUFBQSxZQUFBLE9BQUEsVUFBQSxTQUFKLENBQUEsSUFBSSxPQUFoRCxVQUFnRCxLQUFoRCxRQUFRLGtCQUF3QyxLQUF4QyxpQkFBaUIsaUJBQXVCLEtBQXZCO0FBQzNDLGVBQU8sUUFBTyxPQUFPLFNBQVEsaUJBQWlCLGNBQXZDO01BQ1I7QUFFRCx1QkFBWSxTQUFRLFdBQVcsZ0JBQWdCLGlCQUFpQjtBQUM5RCxZQUFBLHFCQUFvRSxrQkFBa0IsT0FBRCxHQUE5RSxlQUFQLG1CQUFBLElBQXFCLHdCQUFyQixtQkFBQSxJQUE0Qyx1QkFBNUMsbUJBQUE7QUFFQSxhQUFLLFNBQVM7QUFDZCxhQUFLLGtCQUFrQixhQUFhLHlCQUF5QjtBQUM3RCxhQUFLLGlCQUFpQixrQkFBa0Isd0JBQXdCO0FBQ2hFLGFBQUssT0FBTyxpQkFBaUIsS0FBSyxRQUFRLEtBQUssaUJBQWlCLEtBQUssY0FBekM7QUFFNUIsYUFBSyxnQkFBZ0I7VUFBRSxRQUFRLENBQUE7VUFBSSxZQUFZLENBQUE7UUFBMUI7QUFDckIsYUFBSyxjQUFjO1VBQUUsUUFBUSxDQUFBO1VBQUksWUFBWSxDQUFBO1FBQTFCO0FBQ25CLGFBQUssZ0JBQWdCO0FBQ3JCLGFBQUssV0FBVyxDQUFBO0FBRWhCLGFBQUssa0JBQWtCO0FBQ3ZCLGFBQUssb0JBQW9CO01BQzFCOztjQVVELGNBQUEsdUJBQWM7QUFDWixZQUFNLGVBQWUsS0FBSyxVQUFMO0FBQ3JCLFlBQU0saUJBQ0gsTUFBSyxvQkFBb0IsUUFBUSxLQUFLLG9CQUFvQixXQUMxRCxNQUFLLG1CQUFtQixRQUFRLEtBQUssbUJBQW1CO0FBQzNELGVBQU8sZ0JBQWdCLGlCQUFpQixPQUFPO01BQ2hEO2NBRUQsUUFBQSxnQkFBTSxNQUFNO0FBQ1YsWUFBSSxDQUFDLFFBQVEsT0FBTyxvQkFBb0IsSUFBM0IsRUFBaUMsV0FBVyxHQUFHO0FBQzFELGlCQUFPO1FBQ1IsT0FBTTtBQUNMLGlCQUFPLFFBQU8sT0FDWixLQUFLLFVBQVUsS0FBSyxpQkFDcEIsS0FBSyxtQkFBbUIsS0FBSyxpQkFDN0IsS0FBSyxrQkFBa0IsS0FBSyxnQkFDNUIsS0FBSyxlQUFlLEtBSmY7UUFNUjtNQUNGO2NBRUQsZ0JBQUEsdUJBQWMsTUFBVztBQUFBLFlBQVgsU0FBVyxRQUFBO0FBQVgsaUJBQU8sQ0FBQTtRQUFJO0FBQ3ZCLGVBQU8sS0FBSyxNQUFMLFNBQUEsQ0FBQSxHQUFnQixNQUFoQjtVQUFzQixhQUFhO1FBQW5DLENBQUEsQ0FBQTtNQUNSO2NBRUQsb0JBQUEsMkJBQWtCLE1BQVc7QUFBQSxZQUFYLFNBQVcsUUFBQTtBQUFYLGlCQUFPLENBQUE7UUFBSTtBQUMzQixlQUFPLEtBQUssTUFBTCxTQUFBLENBQUEsR0FBZ0IsTUFBaEI7VUFBc0IsYUFBYTtRQUFuQyxDQUFBLENBQUE7TUFDUjtjQUVELFNBQUEsa0JBQU8sUUFBUSxTQUFnQixXQUFrQjtBQUFBLFlBQUEsUUFBQTtBQUFBLFlBQWxDLFlBQWtDLFFBQUE7QUFBbEMsb0JBQVM7UUFBeUI7QUFBQSxZQUFsQixjQUFrQixRQUFBO0FBQWxCLHNCQUFZO1FBQU07QUFDL0MsZUFBTyxVQUFVLE1BQU0sUUFBUSxXQUFXLFFBQWdCLFdBQU07QUFDOUQsY0FBTSxPQUFPLFVBQVM7WUFBRSxPQUFPO1lBQVEsS0FBSztVQUF0QixJQUFvQztZQUFFLE9BQU87VUFBVCxHQUN4RCxZQUFZLFVBQVMsV0FBVztBQUNsQyxjQUFJLENBQUMsTUFBSyxZQUFZLFdBQVcsU0FBUztBQUN4QyxrQkFBSyxZQUFZLFdBQVcsVUFBVSxVQUFVLFNBQUMsSUFBRDtBQUFBLHFCQUFRLE1BQUssUUFBUSxJQUFJLE1BQU0sT0FBdkI7WUFBUixDQUFEO1VBQ2hEO0FBQ0QsaUJBQU8sTUFBSyxZQUFZLFdBQVc7UUFDcEMsQ0FQZTtNQVFqQjtjQUVELFdBQUEsb0JBQVMsUUFBUSxTQUFnQixXQUFrQjtBQUFBLFlBQUEsU0FBQTtBQUFBLFlBQWxDLFlBQWtDLFFBQUE7QUFBbEMsb0JBQVM7UUFBeUI7QUFBQSxZQUFsQixjQUFrQixRQUFBO0FBQWxCLHNCQUFZO1FBQU07QUFDakQsZUFBTyxVQUFVLE1BQU0sUUFBUSxXQUFXLFVBQWtCLFdBQU07QUFDaEUsY0FBTSxPQUFPLFVBQ1A7WUFBRSxTQUFTO1lBQVEsTUFBTTtZQUFXLE9BQU87WUFBUSxLQUFLO1VBQXhELElBQ0E7WUFBRSxTQUFTO1VBQVgsR0FDSixZQUFZLFVBQVMsV0FBVztBQUNsQyxjQUFJLENBQUMsT0FBSyxjQUFjLFdBQVcsU0FBUztBQUMxQyxtQkFBSyxjQUFjLFdBQVcsVUFBVSxZQUFZLFNBQUMsSUFBRDtBQUFBLHFCQUNsRCxPQUFLLFFBQVEsSUFBSSxNQUFNLFNBQXZCO1lBRGtELENBQUQ7VUFHcEQ7QUFDRCxpQkFBTyxPQUFLLGNBQWMsV0FBVztRQUN0QyxDQVhlO01BWWpCO2NBRUQsWUFBQSxxQkFBVSxXQUFrQjtBQUFBLFlBQUEsU0FBQTtBQUFBLFlBQWxCLGNBQWtCLFFBQUE7QUFBbEIsc0JBQVk7UUFBTTtBQUMxQixlQUFPLFVBQ0wsTUFDQSxRQUNBLFdBQ0EsV0FBQTtBQUFBLGlCQUFNO1FBQU4sR0FDQSxXQUFNO0FBR0osY0FBSSxDQUFDLE9BQUssZUFBZTtBQUN2QixnQkFBTSxPQUFPO2NBQUUsTUFBTTtjQUFXLFdBQVc7WUFBOUI7QUFDYixtQkFBSyxnQkFBZ0IsQ0FBQyxVQUFTLElBQUksTUFBTSxJQUFJLElBQUksQ0FBM0IsR0FBK0IsVUFBUyxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQTNCLENBQWhDLEVBQWdFLElBQ25GLFNBQUMsSUFBRDtBQUFBLHFCQUFRLE9BQUssUUFBUSxJQUFJLE1BQU0sV0FBdkI7WUFBUixDQURtQjtVQUd0QjtBQUVELGlCQUFPLE9BQUs7UUFDYixDQWhCYTtNQWtCakI7Y0FFRCxPQUFBLGdCQUFLLFFBQVEsV0FBa0I7QUFBQSxZQUFBLFNBQUE7QUFBQSxZQUFsQixjQUFrQixRQUFBO0FBQWxCLHNCQUFZO1FBQU07QUFDN0IsZUFBTyxVQUFVLE1BQU0sUUFBUSxXQUFXLE1BQWMsV0FBTTtBQUM1RCxjQUFNLE9BQU87WUFBRSxLQUFLO1VBQVA7QUFJYixjQUFJLENBQUMsT0FBSyxTQUFTLFNBQVM7QUFDMUIsbUJBQUssU0FBUyxVQUFVLENBQUMsVUFBUyxJQUFJLEtBQUssR0FBRyxDQUFyQixHQUF5QixVQUFTLElBQUksTUFBTSxHQUFHLENBQXRCLENBQTFCLEVBQW9ELElBQUksU0FBQyxJQUFEO0FBQUEscUJBQzlFLE9BQUssUUFBUSxJQUFJLE1BQU0sS0FBdkI7WUFEOEUsQ0FBeEQ7VUFHekI7QUFFRCxpQkFBTyxPQUFLLFNBQVM7UUFDdEIsQ0FaZTtNQWFqQjtjQUVELFVBQUEsaUJBQVEsSUFBSSxVQUFVLE9BQU87QUFDM0IsWUFBTSxLQUFLLEtBQUssWUFBWSxJQUFJLFFBQXJCLEdBQ1QsVUFBVSxHQUFHLGNBQUgsR0FDVixXQUFXLFFBQVEsS0FBSyxTQUFDLElBQUQ7QUFBQSxpQkFBTyxHQUFFLEtBQUssWUFBUCxNQUF5QjtRQUFoQyxDQUFiO0FBQ2IsZUFBTyxXQUFXLFNBQVMsUUFBUTtNQUNwQztjQUVELGtCQUFBLHlCQUFnQixNQUFXO0FBQUEsWUFBWCxTQUFXLFFBQUE7QUFBWCxpQkFBTyxDQUFBO1FBQUk7QUFHekIsZUFBTyxJQUFJLG9CQUFvQixLQUFLLE1BQU0sS0FBSyxlQUFlLEtBQUssYUFBYSxJQUF6RTtNQUNSO2NBRUQsY0FBQSxxQkFBWSxJQUFJLFVBQWU7QUFBQSxZQUFmLGFBQWUsUUFBQTtBQUFmLHFCQUFXLENBQUE7UUFBSTtBQUM3QixlQUFPLElBQUksa0JBQWtCLElBQUksS0FBSyxNQUFNLFFBQXJDO01BQ1I7Y0FFRCxlQUFBLHNCQUFhLE1BQVc7QUFBQSxZQUFYLFNBQVcsUUFBQTtBQUFYLGlCQUFPLENBQUE7UUFBSTtBQUN0QixlQUFPLElBQUksaUJBQWlCLEtBQUssTUFBTSxLQUFLLFVBQUwsR0FBa0IsSUFBbEQ7TUFDUjtjQUVELGdCQUFBLHVCQUFjLE1BQVc7QUFBQSxZQUFYLFNBQVcsUUFBQTtBQUFYLGlCQUFPLENBQUE7UUFBSTtBQUN2QixlQUFPLFlBQVksS0FBSyxNQUFNLElBQVo7TUFDbkI7Y0FFRCxZQUFBLHFCQUFZO0FBQ1YsZUFDRSxLQUFLLFdBQVcsUUFDaEIsS0FBSyxPQUFPLFlBQVosTUFBOEIsV0FDOUIsSUFBSSxLQUFLLGVBQWUsS0FBSyxJQUE3QixFQUFtQyxnQkFBbkMsRUFBcUQsT0FBTyxXQUFXLE9BQXZFO01BRUg7Y0FFRCxTQUFBLGdCQUFPLE9BQU87QUFDWixlQUNFLEtBQUssV0FBVyxNQUFNLFVBQ3RCLEtBQUssb0JBQW9CLE1BQU0sbUJBQy9CLEtBQUssbUJBQW1CLE1BQU07TUFFakM7OzthQTNJRCxnQkFBa0I7QUFDaEIsY0FBSSxLQUFLLHFCQUFxQixNQUFNO0FBQ2xDLGlCQUFLLG9CQUFvQixvQkFBb0IsSUFBRDtVQUM3QztBQUVELGlCQUFPLEtBQUs7UUFDYjs7OztBQzVTSCw4QkFBb0M7QUFBQSxlQUFBLE9BQUEsVUFBQSxRQUFULFVBQVMsSUFBQSxNQUFBLElBQUEsR0FBQSxPQUFBLEdBQUEsT0FBQSxNQUFBLFFBQUE7QUFBVCxnQkFBUyxRQUFBLFVBQUE7TUFBQTtBQUNsQyxVQUFNLE9BQU8sUUFBUSxPQUFPLFNBQUMsR0FBRyxHQUFKO0FBQUEsZUFBVSxJQUFJLEVBQUU7TUFBaEIsR0FBd0IsRUFBdkM7QUFDYixhQUFPLE9BQU0sTUFBSyxPQUFMLEdBQUE7SUFDZDtBQUVELGlDQUEwQztBQUFBLGVBQUEsUUFBQSxVQUFBLFFBQVosYUFBWSxJQUFBLE1BQUEsS0FBQSxHQUFBLFFBQUEsR0FBQSxRQUFBLE9BQUEsU0FBQTtBQUFaLG1CQUFZLFNBQUEsVUFBQTtNQUFBO0FBQ3hDLGFBQU8sU0FBQyxJQUFEO0FBQUEsZUFDTCxXQUNHLE9BQ0MsU0FBQSxNQUFtQyxJQUFPO0FBQUEsY0FBeEMsYUFBd0MsS0FBQSxJQUE1QixhQUE0QixLQUFBLElBQWhCLFNBQWdCLEtBQUE7QUFDeEMsY0FBQSxNQUEwQixHQUFHLElBQUcsTUFBSixHQUFyQixNQUFQLElBQUEsSUFBWSxPQUFaLElBQUEsSUFBa0IsT0FBbEIsSUFBQTtBQUNBLGlCQUFPLENBQUEsU0FBQSxDQUFBLEdBQU0sWUFBZSxHQUFyQixHQUE0QixjQUFjLE1BQU0sSUFBaEQ7UUFDUixHQUNELENBQUMsQ0FBQSxHQUFJLE1BQU0sQ0FBWCxDQU5KLEVBUUcsTUFBTSxHQUFHLENBUlo7TUFESztJQVVSO0FBRUQsbUJBQWUsSUFBZ0I7QUFDN0IsVUFBSSxNQUFLLE1BQU07QUFDYixlQUFPLENBQUMsTUFBTSxJQUFQO01BQ1I7QUFINEIsZUFBQSxRQUFBLFVBQUEsUUFBVixXQUFVLElBQUEsTUFBQSxRQUFBLElBQUEsUUFBQSxJQUFBLENBQUEsR0FBQSxRQUFBLEdBQUEsUUFBQSxPQUFBLFNBQUE7QUFBVixpQkFBVSxRQUFBLEtBQUEsVUFBQTtNQUFBO0FBSzdCLGVBQUEsS0FBQSxHQUFBLFlBQWlDLFVBQWpDLEtBQUEsVUFBQSxRQUFBLE1BQTJDO0FBQXRDLFlBQUEsZUFBQSxVQUFBLEtBQU8sUUFBUCxhQUFBLElBQWMsWUFBZCxhQUFBO0FBQ0gsWUFBTSxLQUFJLE1BQU0sS0FBSyxFQUFYO0FBQ1YsWUFBSSxJQUFHO0FBQ0wsaUJBQU8sVUFBVSxFQUFEO1FBQ2pCO01BQ0Y7QUFDRCxhQUFPLENBQUMsTUFBTSxJQUFQO0lBQ1I7QUFFRCwyQkFBOEI7QUFBQSxlQUFBLFFBQUEsVUFBQSxRQUFOLE9BQU0sSUFBQSxNQUFBLEtBQUEsR0FBQSxRQUFBLEdBQUEsUUFBQSxPQUFBLFNBQUE7QUFBTixhQUFNLFNBQUEsVUFBQTtNQUFBO0FBQzVCLGFBQU8sU0FBQyxRQUFPLFFBQVc7QUFDeEIsWUFBTSxNQUFNLENBQUE7QUFDWixZQUFJO0FBRUosYUFBSyxJQUFJLEdBQUcsSUFBSSxLQUFLLFFBQVEsS0FBSztBQUNoQyxjQUFJLEtBQUssTUFBTSxhQUFhLE9BQU0sU0FBUyxFQUFoQjtRQUM1QjtBQUNELGVBQU8sQ0FBQyxLQUFLLE1BQU0sU0FBUyxDQUFyQjtNQUNSO0lBQ0Y7QUFHRCxRQUFNLGNBQWM7QUFBcEIsUUFDRSxtQkFBbUI7QUFEckIsUUFFRSxlQUFlLE9BQU0sS0FBSSxpQkFBaUIsU0FBUyxZQUFZLFNBQTFDLEdBQUE7QUFGdkIsUUFHRSx3QkFBd0IsT0FBTSxTQUFRLGFBQWEsU0FBckIsSUFBQTtBQUhoQyxRQUlFLGNBQWM7QUFKaEIsUUFLRSxlQUFlO0FBTGpCLFFBTUUsa0JBQWtCO0FBTnBCLFFBT0UscUJBQXFCLFlBQVksWUFBWSxjQUFjLFNBQTNCO0FBUGxDLFFBUUUsd0JBQXdCLFlBQVksUUFBUSxTQUFUO0FBUnJDLFFBU0UsY0FBYztBQVRoQixRQVVFLGVBQWUsT0FDVixpQkFBaUIsU0FERCxVQUNlLFlBQVksU0FEM0IsT0FDc0MsVUFBVSxTQURoRCxLQUFBO0FBVnZCLFFBYUUsd0JBQXdCLE9BQU0sU0FBUSxhQUFhLFNBQXJCLElBQUE7QUFFaEMsaUJBQWEsUUFBTyxLQUFLLFVBQVU7QUFDakMsVUFBTSxLQUFJLE9BQU07QUFDaEIsYUFBTyxZQUFZLEVBQUQsSUFBTSxXQUFXLGFBQWEsRUFBRDtJQUNoRDtBQUVELDJCQUF1QixRQUFPLFFBQVE7QUFDcEMsVUFBTSxPQUFPO1FBQ1gsTUFBTSxJQUFJLFFBQU8sTUFBUjtRQUNULE9BQU8sSUFBSSxRQUFPLFNBQVMsR0FBRyxDQUFwQjtRQUNWLEtBQUssSUFBSSxRQUFPLFNBQVMsR0FBRyxDQUFwQjtNQUhHO0FBTWIsYUFBTyxDQUFDLE1BQU0sTUFBTSxTQUFTLENBQXRCO0lBQ1I7QUFFRCw0QkFBd0IsUUFBTyxRQUFRO0FBQ3JDLFVBQU0sT0FBTztRQUNYLE9BQU8sSUFBSSxRQUFPLFFBQVEsQ0FBaEI7UUFDVixTQUFTLElBQUksUUFBTyxTQUFTLEdBQUcsQ0FBcEI7UUFDWixTQUFTLElBQUksUUFBTyxTQUFTLEdBQUcsQ0FBcEI7UUFDWixjQUFjLFlBQVksT0FBTSxTQUFTLEVBQWhCO01BSmQ7QUFPYixhQUFPLENBQUMsTUFBTSxNQUFNLFNBQVMsQ0FBdEI7SUFDUjtBQUVELDhCQUEwQixRQUFPLFFBQVE7QUFDdkMsVUFBTSxRQUFRLENBQUMsT0FBTSxXQUFXLENBQUMsT0FBTSxTQUFTLElBQzlDLGFBQWEsYUFBYSxPQUFNLFNBQVMsSUFBSSxPQUFNLFNBQVMsRUFBbkMsR0FDekIsT0FBTyxRQUFRLE9BQU8sZ0JBQWdCLFNBQVMsVUFBekI7QUFDeEIsYUFBTyxDQUFDLENBQUEsR0FBSSxNQUFNLFNBQVMsQ0FBcEI7SUFDUjtBQUVELDZCQUF5QixRQUFPLFFBQVE7QUFDdEMsVUFBTSxPQUFPLE9BQU0sVUFBVSxTQUFTLE9BQU8sT0FBTSxPQUF0QixJQUFpQztBQUM5RCxhQUFPLENBQUMsQ0FBQSxHQUFJLE1BQU0sU0FBUyxDQUFwQjtJQUNSO0FBSUQsUUFBTSxjQUFjLE9BQU0sUUFBTyxpQkFBaUIsU0FBeEIsR0FBQTtBQUkxQixRQUFNLGNBQ0o7QUFFRixnQ0FBNEIsUUFBTztBQUNqQyxVQUFPLEtBQ0wsT0FERixJQUFVLFVBQ1IsT0FERixJQUFtQixXQUNqQixPQURGLElBQTZCLFVBQzNCLE9BREYsSUFBc0MsU0FDcEMsT0FERixJQUE4QyxVQUM1QyxPQURGLElBQXVELFlBQ3JELE9BREYsSUFBa0UsWUFDaEUsT0FERixJQUE2RSxrQkFDM0UsT0FERjtBQUdBLFVBQU0sb0JBQW9CLEdBQUUsT0FBTztBQUNuQyxVQUFNLGtCQUFrQixhQUFhLFVBQVUsT0FBTztBQUV0RCxVQUFNLGNBQWMsc0JBQUMsS0FBSyxPQUFOO0FBQUEsWUFBTSxVQUFOLFFBQUE7QUFBTSxrQkFBUTtRQUFkO0FBQUEsZUFDbEIsUUFBUSxVQUFjLFVBQVUsT0FBTyxxQkFBc0IsQ0FBQyxNQUFNO01BRGxEO0FBR3BCLGFBQU8sQ0FDTDtRQUNFLE9BQU8sWUFBWSxjQUFjLE9BQUQsQ0FBZDtRQUNsQixRQUFRLFlBQVksY0FBYyxRQUFELENBQWQ7UUFDbkIsT0FBTyxZQUFZLGNBQWMsT0FBRCxDQUFkO1FBQ2xCLE1BQU0sWUFBWSxjQUFjLE1BQUQsQ0FBZDtRQUNqQixPQUFPLFlBQVksY0FBYyxPQUFELENBQWQ7UUFDbEIsU0FBUyxZQUFZLGNBQWMsU0FBRCxDQUFkO1FBQ3BCLFNBQVMsWUFBWSxjQUFjLFNBQUQsR0FBYSxjQUFjLElBQXpDO1FBQ3BCLGNBQWMsWUFBWSxZQUFZLGVBQUQsR0FBbUIsZUFBL0I7TUFSM0IsQ0FESztJQVlSO0FBS0QsUUFBTSxhQUFhO01BQ2pCLEtBQUs7TUFDTCxLQUFLLEtBQUs7TUFDVixLQUFLLEtBQUs7TUFDVixLQUFLLEtBQUs7TUFDVixLQUFLLEtBQUs7TUFDVixLQUFLLEtBQUs7TUFDVixLQUFLLEtBQUs7TUFDVixLQUFLLEtBQUs7TUFDVixLQUFLLEtBQUs7SUFUTztBQVluQix5QkFBcUIsWUFBWSxTQUFTLFVBQVUsUUFBUSxTQUFTLFdBQVcsV0FBVztBQUN6RixVQUFNLFNBQVM7UUFDYixNQUFNLFFBQVEsV0FBVyxJQUFJLGVBQWUsYUFBYSxPQUFELENBQWIsSUFBMEIsYUFBYSxPQUFEO1FBQ2pGLE9BQU8sWUFBb0IsUUFBUSxRQUE1QixJQUF3QztRQUMvQyxLQUFLLGFBQWEsTUFBRDtRQUNqQixNQUFNLGFBQWEsT0FBRDtRQUNsQixRQUFRLGFBQWEsU0FBRDtNQUxQO0FBUWYsVUFBSTtBQUFXLGVBQU8sU0FBUyxhQUFhLFNBQUQ7QUFDM0MsVUFBSSxZQUFZO0FBQ2QsZUFBTyxVQUNMLFdBQVcsU0FBUyxJQUNoQixhQUFxQixRQUFRLFVBQTdCLElBQTJDLElBQzNDLGNBQXNCLFFBQVEsVUFBOUIsSUFBNEM7TUFDbkQ7QUFFRCxhQUFPO0lBQ1I7QUFHRCxRQUFNLFVBQ0o7QUFFRiw0QkFBd0IsUUFBTztBQUM3QixVQUVJLGFBV0UsT0FiTixJQUdJLFNBVUUsT0FiTixJQUlJLFdBU0UsT0FiTixJQUtJLFVBUUUsT0FiTixJQU1JLFVBT0UsT0FiTixJQU9JLFlBTUUsT0FiTixJQVFJLFlBS0UsT0FiTixJQVNJLFlBSUUsT0FiTixJQVVJLFlBR0UsT0FiTixJQVdJLGFBRUUsT0FiTixLQVlJLGVBQ0UsT0FiTixLQWNFLFNBQVMsWUFBWSxZQUFZLFNBQVMsVUFBVSxRQUFRLFNBQVMsV0FBVyxTQUE1RDtBQUV0QixVQUFJO0FBQ0osVUFBSSxXQUFXO0FBQ2Isa0JBQVMsV0FBVztNQUNyQixXQUFVLFdBQVc7QUFDcEIsa0JBQVM7TUFDVixPQUFNO0FBQ0wsa0JBQVMsYUFBYSxZQUFZLFlBQWI7TUFDdEI7QUFFRCxhQUFPLENBQUMsUUFBUSxJQUFJLGdCQUFnQixPQUFwQixDQUFUO0lBQ1I7QUFFRCwrQkFBMkIsSUFBRztBQUU1QixhQUFPLEdBQ0osUUFBUSxxQkFBcUIsR0FEekIsRUFFSixRQUFRLFlBQVksR0FGaEIsRUFHSixLQUhJO0lBSVI7QUFJRCxRQUFNLFVBQ0Y7QUFESixRQUVFLFNBQ0U7QUFISixRQUlFLFFBQ0U7QUFFSixpQ0FBNkIsUUFBTztBQUNsQyxVQUFTLGFBQXdFLE9BQWpGLElBQXFCLFNBQTRELE9BQWpGLElBQTZCLFdBQW9ELE9BQWpGLElBQXVDLFVBQTBDLE9BQWpGLElBQWdELFVBQWlDLE9BQWpGLElBQXlELFlBQXdCLE9BQWpGLElBQW9FLFlBQWEsT0FBakYsSUFDRSxTQUFTLFlBQVksWUFBWSxTQUFTLFVBQVUsUUFBUSxTQUFTLFdBQVcsU0FBNUQ7QUFDdEIsYUFBTyxDQUFDLFFBQVEsZ0JBQWdCLFdBQXpCO0lBQ1I7QUFFRCwwQkFBc0IsUUFBTztBQUMzQixVQUFTLGFBQXdFLE9BQWpGLElBQXFCLFdBQTRELE9BQWpGLElBQStCLFNBQWtELE9BQWpGLElBQXVDLFVBQTBDLE9BQWpGLElBQWdELFlBQWlDLE9BQWpGLElBQTJELFlBQXNCLE9BQWpGLElBQXNFLFVBQVcsT0FBakYsSUFDRSxTQUFTLFlBQVksWUFBWSxTQUFTLFVBQVUsUUFBUSxTQUFTLFdBQVcsU0FBNUQ7QUFDdEIsYUFBTyxDQUFDLFFBQVEsZ0JBQWdCLFdBQXpCO0lBQ1I7QUFFRCxRQUFNLCtCQUErQixlQUFlLGFBQWEscUJBQWQ7QUFDbkQsUUFBTSxnQ0FBZ0MsZUFBZSxjQUFjLHFCQUFmO0FBQ3BELFFBQU0sbUNBQW1DLGVBQWUsaUJBQWlCLHFCQUFsQjtBQUN2RCxRQUFNLHVCQUF1QixlQUFlLFlBQUQ7QUFFM0MsUUFBTSw2QkFBNkIsa0JBQ2pDLGVBQ0EsZ0JBQ0EsZ0JBSGtEO0FBS3BELFFBQU0sOEJBQThCLGtCQUNsQyxvQkFDQSxnQkFDQSxnQkFIbUQ7QUFLckQsUUFBTSwrQkFBK0Isa0JBQ25DLHVCQUNBLGdCQUNBLGdCQUhvRDtBQUt0RCxRQUFNLDBCQUEwQixrQkFBa0IsZ0JBQWdCLGdCQUFqQjtBQU0xQywwQkFBc0IsSUFBRztBQUM5QixhQUFPLE1BQ0wsSUFDQSxDQUFDLDhCQUE4QiwwQkFBL0IsR0FDQSxDQUFDLCtCQUErQiwyQkFBaEMsR0FDQSxDQUFDLGtDQUFrQyw0QkFBbkMsR0FDQSxDQUFDLHNCQUFzQix1QkFBdkIsQ0FMVTtJQU9iO0FBRU0sOEJBQTBCLElBQUc7QUFDbEMsYUFBTyxNQUFNLGtCQUFrQixFQUFELEdBQUssQ0FBQyxTQUFTLGNBQVYsQ0FBdkI7SUFDYjtBQUVNLDJCQUF1QixJQUFHO0FBQy9CLGFBQU8sTUFDTCxJQUNBLENBQUMsU0FBUyxtQkFBVixHQUNBLENBQUMsUUFBUSxtQkFBVCxHQUNBLENBQUMsT0FBTyxZQUFSLENBSlU7SUFNYjtBQUVNLDhCQUEwQixJQUFHO0FBQ2xDLGFBQU8sTUFBTSxJQUFHLENBQUMsYUFBYSxrQkFBZCxDQUFKO0lBQ2I7QUFFRCxRQUFNLHFCQUFxQixrQkFBa0IsY0FBRDtBQUVyQyw4QkFBMEIsSUFBRztBQUNsQyxhQUFPLE1BQU0sSUFBRyxDQUFDLGFBQWEsa0JBQWQsQ0FBSjtJQUNiO0FBRUQsUUFBTSwrQkFBK0IsZUFBZSxhQUFhLHFCQUFkO0FBQ25ELFFBQU0sdUJBQXVCLGVBQWUsWUFBRDtBQUUzQyxRQUFNLHFDQUFxQyxrQkFDekMsZUFDQSxnQkFDQSxrQkFDQSxlQUowRDtBQU01RCxRQUFNLGtDQUFrQyxrQkFDdEMsZ0JBQ0Esa0JBQ0EsZUFIdUQ7QUFNbEQsc0JBQWtCLElBQUc7QUFDMUIsYUFBTyxNQUNMLElBQ0EsQ0FBQyw4QkFBOEIsa0NBQS9CLEdBQ0EsQ0FBQyxzQkFBc0IsK0JBQXZCLENBSFU7SUFLYjtBQzNURCxRQUFNLFlBQVU7QUFHVCxRQUFNLGlCQUFpQjtNQUMxQixPQUFPO1FBQ0wsTUFBTTtRQUNOLE9BQU8sSUFBSTtRQUNYLFNBQVMsSUFBSSxLQUFLO1FBQ2xCLFNBQVMsSUFBSSxLQUFLLEtBQUs7UUFDdkIsY0FBYyxJQUFJLEtBQUssS0FBSyxLQUFLO01BTDVCO01BT1AsTUFBTTtRQUNKLE9BQU87UUFDUCxTQUFTLEtBQUs7UUFDZCxTQUFTLEtBQUssS0FBSztRQUNuQixjQUFjLEtBQUssS0FBSyxLQUFLO01BSnpCO01BTU4sT0FBTztRQUFFLFNBQVM7UUFBSSxTQUFTLEtBQUs7UUFBSSxjQUFjLEtBQUssS0FBSztNQUF6RDtNQUNQLFNBQVM7UUFBRSxTQUFTO1FBQUksY0FBYyxLQUFLO01BQWxDO01BQ1QsU0FBUztRQUFFLGNBQWM7TUFBaEI7SUFoQmlCO0FBQXZCLFFBa0JMLGVBQVksU0FBQTtNQUNWLE9BQU87UUFDTCxVQUFVO1FBQ1YsUUFBUTtRQUNSLE9BQU87UUFDUCxNQUFNO1FBQ04sT0FBTyxNQUFNO1FBQ2IsU0FBUyxNQUFNLEtBQUs7UUFDcEIsU0FBUyxNQUFNLEtBQUssS0FBSztRQUN6QixjQUFjLE1BQU0sS0FBSyxLQUFLLEtBQUs7TUFSOUI7TUFVUCxVQUFVO1FBQ1IsUUFBUTtRQUNSLE9BQU87UUFDUCxNQUFNO1FBQ04sT0FBTyxLQUFLO1FBQ1osU0FBUyxLQUFLLEtBQUs7UUFDbkIsU0FBUyxLQUFLLEtBQUssS0FBSztRQUN4QixjQUFjLEtBQUssS0FBSyxLQUFLLEtBQUs7TUFQMUI7TUFTVixRQUFRO1FBQ04sT0FBTztRQUNQLE1BQU07UUFDTixPQUFPLEtBQUs7UUFDWixTQUFTLEtBQUssS0FBSztRQUNuQixTQUFTLEtBQUssS0FBSyxLQUFLO1FBQ3hCLGNBQWMsS0FBSyxLQUFLLEtBQUssS0FBSztNQU41QjtJQXBCRSxHQTZCUCxjQTdCTztBQWxCUCxRQWlETCxxQkFBcUIsU0FBVztBQWpEM0IsUUFrREwsc0JBQXNCLFNBQVc7QUFsRDVCLFFBbURMLGlCQUFjLFNBQUE7TUFDWixPQUFPO1FBQ0wsVUFBVTtRQUNWLFFBQVE7UUFDUixPQUFPLHFCQUFxQjtRQUM1QixNQUFNO1FBQ04sT0FBTyxxQkFBcUI7UUFDNUIsU0FBUyxxQkFBcUIsS0FBSztRQUNuQyxTQUFTLHFCQUFxQixLQUFLLEtBQUs7UUFDeEMsY0FBYyxxQkFBcUIsS0FBSyxLQUFLLEtBQUs7TUFSN0M7TUFVUCxVQUFVO1FBQ1IsUUFBUTtRQUNSLE9BQU8scUJBQXFCO1FBQzVCLE1BQU0scUJBQXFCO1FBQzNCLE9BQVEscUJBQXFCLEtBQU07UUFDbkMsU0FBVSxxQkFBcUIsS0FBSyxLQUFNO1FBQzFDLFNBQVUscUJBQXFCLEtBQUssS0FBSyxLQUFNO1FBQy9DLGNBQWUscUJBQXFCLEtBQUssS0FBSyxLQUFLLE1BQVE7TUFQbkQ7TUFTVixRQUFRO1FBQ04sT0FBTyxzQkFBc0I7UUFDN0IsTUFBTTtRQUNOLE9BQU8sc0JBQXNCO1FBQzdCLFNBQVMsc0JBQXNCLEtBQUs7UUFDcEMsU0FBUyxzQkFBc0IsS0FBSyxLQUFLO1FBQ3pDLGNBQWMsc0JBQXNCLEtBQUssS0FBSyxLQUFLO01BTjdDO0lBcEJJLEdBNEJULGNBNUJTO0FBZ0NoQixRQUFNLGlCQUFlLENBQ25CLFNBQ0EsWUFDQSxVQUNBLFNBQ0EsUUFDQSxTQUNBLFdBQ0EsV0FDQSxjQVRtQjtBQVlyQixRQUFNLGVBQWUsZUFBYSxNQUFNLENBQW5CLEVBQXNCLFFBQXRCO0FBR3JCLHFCQUFlLEtBQUssTUFBTSxPQUFlO0FBQUEsVUFBZixVQUFlLFFBQUE7QUFBZixnQkFBUTtNQUFPO0FBRXZDLFVBQU0sT0FBTztRQUNYLFFBQVEsUUFBUSxLQUFLLFNBQVIsU0FBQSxDQUFBLEdBQXNCLElBQUksUUFBWSxLQUFLLFVBQVUsQ0FBQSxDQUFyRDtRQUNiLEtBQUssSUFBSSxJQUFJLE1BQU0sS0FBSyxHQUFuQjtRQUNMLG9CQUFvQixLQUFLLHNCQUFzQixJQUFJO01BSHhDO0FBS2IsYUFBTyxJQUFJLFNBQVMsSUFBYjtJQUNSO0FBRUQsdUJBQW1CLElBQUc7QUFDcEIsYUFBTyxLQUFJLElBQUksS0FBSyxNQUFNLEVBQVgsSUFBZ0IsS0FBSyxLQUFLLEVBQVY7SUFDaEM7QUFHRCxxQkFBaUIsUUFBUSxTQUFTLFVBQVUsT0FBTyxRQUFRO0FBQ3pELFVBQU0sT0FBTyxPQUFPLFFBQVEsV0FDMUIsTUFBTSxRQUFRLFlBQVksTUFDMUIsV0FBVyxLQUFLLEtBQUssR0FBVixNQUFtQixLQUFLLEtBQUssTUFBTSxPQUFoQixHQUU5QixRQUNFLENBQUMsWUFBWSxNQUFNLFlBQVksS0FBSyxLQUFLLElBQUksR0FBVCxLQUFpQixJQUFJLFVBQVUsR0FBRCxJQUFRLEtBQUssTUFBTSxHQUFYO0FBQzlFLFlBQU0sV0FBVztBQUNqQixjQUFRLGFBQWEsUUFBUTtJQUM5QjtBQUdELDZCQUF5QixRQUFRLE1BQU07QUFDckMsbUJBQWEsT0FBTyxTQUFDLFVBQVUsU0FBWTtBQUN6QyxZQUFJLENBQUMsWUFBWSxLQUFLLFFBQU4sR0FBaUI7QUFDL0IsY0FBSSxVQUFVO0FBQ1osb0JBQVEsUUFBUSxNQUFNLFVBQVUsTUFBTSxPQUEvQjtVQUNSO0FBQ0QsaUJBQU87UUFDUixPQUFNO0FBQ0wsaUJBQU87UUFDUjtNQUNGLEdBQUUsSUFUSDtJQVVEO1FBZW9CLFdBQUEsMkJBQUE7QUFJbkIseUJBQVksUUFBUTtBQUNsQixZQUFNLFdBQVcsT0FBTyx1QkFBdUIsY0FBYztBQUk3RCxhQUFLLFNBQVMsT0FBTztBQUlyQixhQUFLLE1BQU0sT0FBTyxPQUFPLE9BQU8sT0FBUDtBQUl6QixhQUFLLHFCQUFxQixXQUFXLGFBQWE7QUFJbEQsYUFBSyxVQUFVLE9BQU8sV0FBVztBQUlqQyxhQUFLLFNBQVMsV0FBVyxpQkFBaUI7QUFJMUMsYUFBSyxrQkFBa0I7TUFDeEI7Z0JBV00sYUFBUCxvQkFBa0IsUUFBTyxNQUFNO0FBQzdCLGVBQU8sVUFBUyxXQUFXO1VBQUUsY0FBYztRQUFoQixHQUF5QixJQUE3QztNQUNSO2dCQXFCTSxhQUFQLG9CQUFrQixLQUFLLE1BQVc7QUFBQSxZQUFYLFNBQVcsUUFBQTtBQUFYLGlCQUFPLENBQUE7UUFBSTtBQUNoQyxZQUFJLE9BQU8sUUFBUSxPQUFPLFFBQVEsVUFBVTtBQUMxQyxnQkFBTSxJQUFJLHFCQUFKLGlFQUVGLFNBQVEsT0FBTyxTQUFTLE9BQU8sSUFGN0I7UUFLUDtBQUVELGVBQU8sSUFBSSxVQUFTO1VBQ2xCLFFBQVEsZ0JBQWdCLEtBQUssVUFBUyxhQUFmO1VBQ3ZCLEtBQUssT0FBTyxXQUFXLElBQWxCO1VBQ0wsb0JBQW9CLEtBQUs7UUFIUCxDQUFiO01BS1I7Z0JBWU0sbUJBQVAsMEJBQXdCLGNBQWM7QUFDcEMsWUFBSSxTQUFTLFlBQUQsR0FBZ0I7QUFDMUIsaUJBQU8sVUFBUyxXQUFXLFlBQXBCO1FBQ1IsV0FBVSxVQUFTLFdBQVcsWUFBcEIsR0FBbUM7QUFDNUMsaUJBQU87UUFDUixXQUFVLE9BQU8saUJBQWlCLFVBQVU7QUFDM0MsaUJBQU8sVUFBUyxXQUFXLFlBQXBCO1FBQ1IsT0FBTTtBQUNMLGdCQUFNLElBQUkscUJBQUosK0JBQ3lCLGVBRHpCLGNBQ2lELE9BQU8sWUFEeEQ7UUFHUDtNQUNGO2dCQWVNLFVBQVAsaUJBQWUsT0FBTSxNQUFNO0FBQ3pCLFlBQUEsb0JBQWlCLGlCQUFpQixLQUFELEdBQTFCLFNBQVAsa0JBQUE7QUFDQSxZQUFJLFFBQVE7QUFDVixpQkFBTyxVQUFTLFdBQVcsUUFBUSxJQUE1QjtRQUNSLE9BQU07QUFDTCxpQkFBTyxVQUFTLFFBQVEsY0FBakIsZ0JBQTZDLFFBQTdDLCtCQUFBO1FBQ1I7TUFDRjtnQkFpQk0sY0FBUCxxQkFBbUIsT0FBTSxNQUFNO0FBQzdCLFlBQUEsb0JBQWlCLGlCQUFpQixLQUFELEdBQTFCLFNBQVAsa0JBQUE7QUFDQSxZQUFJLFFBQVE7QUFDVixpQkFBTyxVQUFTLFdBQVcsUUFBUSxJQUE1QjtRQUNSLE9BQU07QUFDTCxpQkFBTyxVQUFTLFFBQVEsY0FBakIsZ0JBQTZDLFFBQTdDLCtCQUFBO1FBQ1I7TUFDRjtnQkFRTSxVQUFQLGlCQUFlLFFBQVEsYUFBb0I7QUFBQSxZQUFwQixnQkFBb0IsUUFBQTtBQUFwQix3QkFBYztRQUFNO0FBQ3pDLFlBQUksQ0FBQyxRQUFRO0FBQ1gsZ0JBQU0sSUFBSSxxQkFBcUIsa0RBQXpCO1FBQ1A7QUFFRCxZQUFNLFdBQVUsa0JBQWtCLFVBQVUsU0FBUyxJQUFJLFFBQVEsUUFBUSxXQUFwQjtBQUVyRCxZQUFJLFNBQVMsZ0JBQWdCO0FBQzNCLGdCQUFNLElBQUkscUJBQXFCLFFBQXpCO1FBQ1AsT0FBTTtBQUNMLGlCQUFPLElBQUksVUFBUztZQUFFLFNBQUE7VUFBRixDQUFiO1FBQ1I7TUFDRjtnQkFLTSxnQkFBUCx3QkFBcUIsT0FBTTtBQUN6QixZQUFNLGFBQWE7VUFDakIsTUFBTTtVQUNOLE9BQU87VUFDUCxTQUFTO1VBQ1QsVUFBVTtVQUNWLE9BQU87VUFDUCxRQUFRO1VBQ1IsTUFBTTtVQUNOLE9BQU87VUFDUCxLQUFLO1VBQ0wsTUFBTTtVQUNOLE1BQU07VUFDTixPQUFPO1VBQ1AsUUFBUTtVQUNSLFNBQVM7VUFDVCxRQUFRO1VBQ1IsU0FBUztVQUNULGFBQWE7VUFDYixjQUFjO1FBbEJHLEVBbUJqQixRQUFPLE1BQUssWUFBTCxJQUFxQjtBQUU5QixZQUFJLENBQUM7QUFBWSxnQkFBTSxJQUFJLGlCQUFpQixLQUFyQjtBQUV2QixlQUFPO01BQ1I7Z0JBT00sYUFBUCxvQkFBa0IsR0FBRztBQUNuQixlQUFRLEtBQUssRUFBRSxtQkFBb0I7TUFDcEM7O2FBdUNELFdBQUEsa0JBQVMsS0FBSyxNQUFXO0FBQUEsWUFBWCxTQUFXLFFBQUE7QUFBWCxpQkFBTyxDQUFBO1FBQUk7QUFFdkIsWUFBTSxVQUFPLFNBQUEsQ0FBQSxHQUNSLE1BRFE7VUFFWCxPQUFPLEtBQUssVUFBVSxTQUFTLEtBQUssVUFBVTtRQUZuQyxDQUFBO0FBSWIsZUFBTyxLQUFLLFVBQ1IsVUFBVSxPQUFPLEtBQUssS0FBSyxPQUEzQixFQUFvQyx5QkFBeUIsTUFBTSxHQUFuRSxJQUNBO01BQ0w7YUFjRCxVQUFBLGlCQUFRLE1BQVc7QUFBQSxZQUFBLFFBQUE7QUFBQSxZQUFYLFNBQVcsUUFBQTtBQUFYLGlCQUFPLENBQUE7UUFBSTtBQUNqQixZQUFNLEtBQUksZUFDUCxJQUFJLFNBQUMsT0FBUztBQUNiLGNBQU0sTUFBTSxNQUFLLE9BQU87QUFDeEIsY0FBSSxZQUFZLEdBQUQsR0FBTztBQUNwQixtQkFBTztVQUNSO0FBQ0QsaUJBQU8sTUFBSyxJQUNULGdCQURJLFNBQUE7WUFDYyxPQUFPO1lBQVEsYUFBYTtVQUQxQyxHQUNxRCxNQURyRDtZQUMyRCxNQUFNLE1BQUssTUFBTSxHQUFHLEVBQWQ7VUFEakUsQ0FBQSxDQUFBLEVBRUosT0FBTyxHQUZIO1FBR1IsQ0FUTyxFQVVQLE9BQU8sU0FBQyxJQUFEO0FBQUEsaUJBQU87UUFBUCxDQVZBO0FBWVYsZUFBTyxLQUFLLElBQ1QsY0FESSxTQUFBO1VBQ1ksTUFBTTtVQUFlLE9BQU8sS0FBSyxhQUFhO1FBRDFELEdBQ3VFLElBRHZFLENBQUEsRUFFSixPQUFPLEVBRkg7TUFHUjthQU9ELFdBQUEsb0JBQVc7QUFDVCxZQUFJLENBQUMsS0FBSztBQUFTLGlCQUFPLENBQUE7QUFDMUIsZUFBQSxTQUFBLENBQUEsR0FBWSxLQUFLLE1BQWpCO01BQ0Q7YUFZRCxRQUFBLGlCQUFRO0FBRU4sWUFBSSxDQUFDLEtBQUs7QUFBUyxpQkFBTztBQUUxQixZQUFJLEtBQUk7QUFDUixZQUFJLEtBQUssVUFBVTtBQUFHLGdCQUFLLEtBQUssUUFBUTtBQUN4QyxZQUFJLEtBQUssV0FBVyxLQUFLLEtBQUssYUFBYTtBQUFHLGdCQUFLLEtBQUssU0FBUyxLQUFLLFdBQVcsSUFBSTtBQUNyRixZQUFJLEtBQUssVUFBVTtBQUFHLGdCQUFLLEtBQUssUUFBUTtBQUN4QyxZQUFJLEtBQUssU0FBUztBQUFHLGdCQUFLLEtBQUssT0FBTztBQUN0QyxZQUFJLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxLQUFLLEtBQUssWUFBWSxLQUFLLEtBQUssaUJBQWlCO0FBQ3hGLGdCQUFLO0FBQ1AsWUFBSSxLQUFLLFVBQVU7QUFBRyxnQkFBSyxLQUFLLFFBQVE7QUFDeEMsWUFBSSxLQUFLLFlBQVk7QUFBRyxnQkFBSyxLQUFLLFVBQVU7QUFDNUMsWUFBSSxLQUFLLFlBQVksS0FBSyxLQUFLLGlCQUFpQjtBQUc5QyxnQkFBSyxRQUFRLEtBQUssVUFBVSxLQUFLLGVBQWUsS0FBTSxDQUExQyxJQUErQztBQUM3RCxZQUFJLE9BQU07QUFBSyxnQkFBSztBQUNwQixlQUFPO01BQ1I7YUFrQkQsWUFBQSxtQkFBVSxNQUFXO0FBQUEsWUFBWCxTQUFXLFFBQUE7QUFBWCxpQkFBTyxDQUFBO1FBQUk7QUFDbkIsWUFBSSxDQUFDLEtBQUs7QUFBUyxpQkFBTztBQUUxQixZQUFNLFNBQVMsS0FBSyxTQUFMO0FBQ2YsWUFBSSxTQUFTLEtBQUssVUFBVTtBQUFVLGlCQUFPO0FBRTdDLGVBQUksU0FBQTtVQUNGLHNCQUFzQjtVQUN0QixpQkFBaUI7VUFDakIsZUFBZTtVQUNmLFFBQVE7UUFKTixHQUtDLElBTEQ7QUFRSixZQUFNLFFBQVEsS0FBSyxRQUFRLFNBQVMsV0FBVyxXQUFXLGNBQTVDO0FBRWQsWUFBSSxNQUFNLEtBQUssV0FBVyxVQUFVLFNBQVM7QUFFN0MsWUFBSSxDQUFDLEtBQUssbUJBQW1CLE1BQU0sWUFBWSxLQUFLLE1BQU0saUJBQWlCLEdBQUc7QUFDNUUsaUJBQU8sS0FBSyxXQUFXLFVBQVUsT0FBTztBQUN4QyxjQUFJLENBQUMsS0FBSyx3QkFBd0IsTUFBTSxpQkFBaUIsR0FBRztBQUMxRCxtQkFBTztVQUNSO1FBQ0Y7QUFFRCxZQUFJLE1BQU0sTUFBTSxTQUFTLEdBQWY7QUFFVixZQUFJLEtBQUssZUFBZTtBQUN0QixnQkFBTSxNQUFNO1FBQ2I7QUFFRCxlQUFPO01BQ1I7YUFNRCxTQUFBLGtCQUFTO0FBQ1AsZUFBTyxLQUFLLE1BQUw7TUFDUjthQU1ELFdBQUEsb0JBQVc7QUFDVCxlQUFPLEtBQUssTUFBTDtNQUNSO2FBTUQsV0FBQSxvQkFBVztBQUNULGVBQU8sS0FBSyxHQUFHLGNBQVI7TUFDUjthQU1ELFVBQUEsbUJBQVU7QUFDUixlQUFPLEtBQUssU0FBTDtNQUNSO2FBT0QsT0FBQSxjQUFLLFVBQVU7QUFDYixZQUFJLENBQUMsS0FBSztBQUFTLGlCQUFPO0FBRTFCLFlBQU0sTUFBTSxVQUFTLGlCQUFpQixRQUExQixHQUNWLFNBQVMsQ0FBQTtBQUVYLGlCQUFBLFlBQUEsZ0NBQWdCLGNBQWhCLEdBQUEsT0FBQSxDQUFBLFNBQUEsVUFBQSxHQUFBLFFBQThCO0FBQUEsY0FBbkIsSUFBbUIsTUFBQTtBQUM1QixjQUFJLGVBQWUsSUFBSSxRQUFRLENBQWIsS0FBbUIsZUFBZSxLQUFLLFFBQVEsQ0FBZCxHQUFrQjtBQUNuRSxtQkFBTyxLQUFLLElBQUksSUFBSSxDQUFSLElBQWEsS0FBSyxJQUFJLENBQVQ7VUFDMUI7UUFDRjtBQUVELGVBQU8sUUFBTSxNQUFNO1VBQUUsUUFBUTtRQUFWLEdBQW9CLElBQTNCO01BQ2I7YUFPRCxRQUFBLGVBQU0sVUFBVTtBQUNkLFlBQUksQ0FBQyxLQUFLO0FBQVMsaUJBQU87QUFFMUIsWUFBTSxNQUFNLFVBQVMsaUJBQWlCLFFBQTFCO0FBQ1osZUFBTyxLQUFLLEtBQUssSUFBSSxPQUFKLENBQVY7TUFDUjthQVNELFdBQUEsa0JBQVMsSUFBSTtBQUNYLFlBQUksQ0FBQyxLQUFLO0FBQVMsaUJBQU87QUFDMUIsWUFBTSxTQUFTLENBQUE7QUFDZixpQkFBQSxLQUFBLEdBQUEsZUFBZ0IsT0FBTyxLQUFLLEtBQUssTUFBakIsR0FBaEIsS0FBQSxhQUFBLFFBQUEsTUFBMEM7QUFBckMsY0FBTSxJQUFDLGFBQUE7QUFDVixpQkFBTyxLQUFLLFNBQVMsR0FBRyxLQUFLLE9BQU8sSUFBSSxDQUFqQixDQUFIO1FBQ3JCO0FBQ0QsZUFBTyxRQUFNLE1BQU07VUFBRSxRQUFRO1FBQVYsR0FBb0IsSUFBM0I7TUFDYjthQVVELE1BQUEsY0FBSSxPQUFNO0FBQ1IsZUFBTyxLQUFLLFVBQVMsY0FBYyxLQUF2QjtNQUNiO2FBU0QsTUFBQSxjQUFJLFFBQVE7QUFDVixZQUFJLENBQUMsS0FBSztBQUFTLGlCQUFPO0FBRTFCLFlBQU0sUUFBSyxTQUFBLENBQUEsR0FBUSxLQUFLLFFBQVcsZ0JBQWdCLFFBQVEsVUFBUyxhQUFsQixDQUF2QztBQUNYLGVBQU8sUUFBTSxNQUFNO1VBQUUsUUFBUTtRQUFWLENBQVA7TUFDYjthQU9ELGNBQUEscUJBQUEsT0FBa0U7QUFBQSxZQUFBLE9BQUEsVUFBQSxTQUFKLENBQUEsSUFBSSxPQUFwRCxVQUFvRCxLQUFwRCxRQUFRLGtCQUE0QyxLQUE1QyxpQkFBaUIscUJBQTJCLEtBQTNCO0FBQ3JDLFlBQU0sTUFBTSxLQUFLLElBQUksTUFBTTtVQUFFLFFBQUE7VUFBUTtRQUFWLENBQWYsR0FDVixPQUFPO1VBQUU7UUFBRjtBQUVULFlBQUksb0JBQW9CO0FBQ3RCLGVBQUsscUJBQXFCO1FBQzNCO0FBRUQsZUFBTyxRQUFNLE1BQU0sSUFBUDtNQUNiO2FBVUQsS0FBQSxZQUFHLE9BQU07QUFDUCxlQUFPLEtBQUssVUFBVSxLQUFLLFFBQVEsS0FBYixFQUFtQixJQUFJLEtBQXZCLElBQStCO01BQ3REO2FBUUQsWUFBQSxzQkFBWTtBQUNWLFlBQUksQ0FBQyxLQUFLO0FBQVMsaUJBQU87QUFDMUIsWUFBTSxPQUFPLEtBQUssU0FBTDtBQUNiLHdCQUFnQixLQUFLLFFBQVEsSUFBZDtBQUNmLGVBQU8sUUFBTSxNQUFNO1VBQUUsUUFBUTtRQUFWLEdBQWtCLElBQXpCO01BQ2I7YUFPRCxVQUFBLG1CQUFrQjtBQUFBLGlCQUFBLE9BQUEsVUFBQSxRQUFQLFFBQU8sSUFBQSxNQUFBLElBQUEsR0FBQSxPQUFBLEdBQUEsT0FBQSxNQUFBLFFBQUE7QUFBUCxnQkFBTyxRQUFBLFVBQUE7UUFBQTtBQUNoQixZQUFJLENBQUMsS0FBSztBQUFTLGlCQUFPO0FBRTFCLFlBQUksTUFBTSxXQUFXLEdBQUc7QUFDdEIsaUJBQU87UUFDUjtBQUVELGdCQUFRLE1BQU0sSUFBSSxTQUFDLEdBQUQ7QUFBQSxpQkFBTyxVQUFTLGNBQWMsQ0FBdkI7UUFBUCxDQUFWO0FBRVIsWUFBTSxRQUFRLENBQUEsR0FDWixjQUFjLENBQUEsR0FDZCxPQUFPLEtBQUssU0FBTDtBQUNULFlBQUk7QUFFSixpQkFBQSxhQUFBLGdDQUFnQixjQUFoQixHQUFBLFFBQUEsQ0FBQSxVQUFBLFdBQUEsR0FBQSxRQUE4QjtBQUFBLGNBQW5CLElBQW1CLE9BQUE7QUFDNUIsY0FBSSxNQUFNLFFBQVEsQ0FBZCxLQUFvQixHQUFHO0FBQ3pCLHVCQUFXO0FBRVgsZ0JBQUksTUFBTTtBQUdWLHFCQUFXLE1BQU0sYUFBYTtBQUM1QixxQkFBTyxLQUFLLE9BQU8sSUFBSSxLQUFLLFlBQVk7QUFDeEMsMEJBQVksTUFBTTtZQUNuQjtBQUdELGdCQUFJLFNBQVMsS0FBSyxFQUFOLEdBQVc7QUFDckIscUJBQU8sS0FBSztZQUNiO0FBRUQsZ0JBQU0sSUFBSSxLQUFLLE1BQU0sR0FBWDtBQUNWLGtCQUFNLEtBQUs7QUFDWCx3QkFBWSxLQUFNLE9BQU0sTUFBTyxJQUFJLE9BQVE7QUFHM0MscUJBQVcsUUFBUSxNQUFNO0FBQ3ZCLGtCQUFJLGVBQWEsUUFBUSxJQUFyQixJQUE2QixlQUFhLFFBQVEsQ0FBckIsR0FBeUI7QUFDeEQsd0JBQVEsS0FBSyxRQUFRLE1BQU0sTUFBTSxPQUFPLENBQWpDO2NBQ1I7WUFDRjtVQUVGLFdBQVUsU0FBUyxLQUFLLEVBQU4sR0FBVztBQUM1Qix3QkFBWSxLQUFLLEtBQUs7VUFDdkI7UUFDRjtBQUlELGlCQUFXLE9BQU8sYUFBYTtBQUM3QixjQUFJLFlBQVksU0FBUyxHQUFHO0FBQzFCLGtCQUFNLGFBQ0osUUFBUSxXQUFXLFlBQVksT0FBTyxZQUFZLE9BQU8sS0FBSyxPQUFPLFVBQVU7VUFDbEY7UUFDRjtBQUVELGVBQU8sUUFBTSxNQUFNO1VBQUUsUUFBUTtRQUFWLEdBQW1CLElBQTFCLEVBQWdDLFVBQXJDO01BQ1I7YUFPRCxTQUFBLGtCQUFTO0FBQ1AsWUFBSSxDQUFDLEtBQUs7QUFBUyxpQkFBTztBQUMxQixZQUFNLFVBQVUsQ0FBQTtBQUNoQixpQkFBQSxNQUFBLEdBQUEsZ0JBQWdCLE9BQU8sS0FBSyxLQUFLLE1BQWpCLEdBQWhCLE1BQUEsY0FBQSxRQUFBLE9BQTBDO0FBQXJDLGNBQU0sSUFBQyxjQUFBO0FBQ1Ysa0JBQVEsS0FBSyxDQUFDLEtBQUssT0FBTztRQUMzQjtBQUNELGVBQU8sUUFBTSxNQUFNO1VBQUUsUUFBUTtRQUFWLEdBQXFCLElBQTVCO01BQ2I7YUF5R0QsU0FBQSxnQkFBTyxPQUFPO0FBQ1osWUFBSSxDQUFDLEtBQUssV0FBVyxDQUFDLE1BQU0sU0FBUztBQUNuQyxpQkFBTztRQUNSO0FBRUQsWUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLE1BQU0sR0FBdEIsR0FBNEI7QUFDL0IsaUJBQU87UUFDUjtBQUVELG9CQUFZLElBQUksSUFBSTtBQUVsQixjQUFJLE9BQU8sVUFBYSxPQUFPO0FBQUcsbUJBQU8sT0FBTyxVQUFhLE9BQU87QUFDcEUsaUJBQU8sT0FBTztRQUNmO0FBRUQsaUJBQUEsYUFBQSxnQ0FBZ0IsY0FBaEIsR0FBQSxRQUFBLENBQUEsVUFBQSxXQUFBLEdBQUEsUUFBOEI7QUFBQSxjQUFuQixJQUFtQixPQUFBO0FBQzVCLGNBQUksQ0FBQyxHQUFHLEtBQUssT0FBTyxJQUFJLE1BQU0sT0FBTyxFQUE5QixHQUFtQztBQUN4QyxtQkFBTztVQUNSO1FBQ0Y7QUFDRCxlQUFPO01BQ1I7OzthQWxnQkQsZ0JBQWE7QUFDWCxpQkFBTyxLQUFLLFVBQVUsS0FBSyxJQUFJLFNBQVM7UUFDekM7OzthQU9ELGdCQUFzQjtBQUNwQixpQkFBTyxLQUFLLFVBQVUsS0FBSyxJQUFJLGtCQUFrQjtRQUNsRDs7O2FBK1hELGdCQUFZO0FBQ1YsaUJBQU8sS0FBSyxVQUFVLEtBQUssT0FBTyxTQUFTLElBQUk7UUFDaEQ7OzthQU1ELGdCQUFlO0FBQ2IsaUJBQU8sS0FBSyxVQUFVLEtBQUssT0FBTyxZQUFZLElBQUk7UUFDbkQ7OzthQU1ELGdCQUFhO0FBQ1gsaUJBQU8sS0FBSyxVQUFVLEtBQUssT0FBTyxVQUFVLElBQUk7UUFDakQ7OzthQU1ELGdCQUFZO0FBQ1YsaUJBQU8sS0FBSyxVQUFVLEtBQUssT0FBTyxTQUFTLElBQUk7UUFDaEQ7OzthQU1ELGdCQUFXO0FBQ1QsaUJBQU8sS0FBSyxVQUFVLEtBQUssT0FBTyxRQUFRLElBQUk7UUFDL0M7OzthQU1ELGdCQUFZO0FBQ1YsaUJBQU8sS0FBSyxVQUFVLEtBQUssT0FBTyxTQUFTLElBQUk7UUFDaEQ7OzthQU1ELGdCQUFjO0FBQ1osaUJBQU8sS0FBSyxVQUFVLEtBQUssT0FBTyxXQUFXLElBQUk7UUFDbEQ7OzthQU1ELGdCQUFjO0FBQ1osaUJBQU8sS0FBSyxVQUFVLEtBQUssT0FBTyxXQUFXLElBQUk7UUFDbEQ7OzthQU1ELGdCQUFtQjtBQUNqQixpQkFBTyxLQUFLLFVBQVUsS0FBSyxPQUFPLGdCQUFnQixJQUFJO1FBQ3ZEOzs7YUFPRCxnQkFBYztBQUNaLGlCQUFPLEtBQUssWUFBWTtRQUN6Qjs7O2FBTUQsZ0JBQW9CO0FBQ2xCLGlCQUFPLEtBQUssVUFBVSxLQUFLLFFBQVEsU0FBUztRQUM3Qzs7O2FBTUQsZ0JBQXlCO0FBQ3ZCLGlCQUFPLEtBQUssVUFBVSxLQUFLLFFBQVEsY0FBYztRQUNsRDs7OztBQzkxQkgsUUFBTSxZQUFVO0FBR2hCLDhCQUEwQixRQUFPLEtBQUs7QUFDcEMsVUFBSSxDQUFDLFVBQVMsQ0FBQyxPQUFNLFNBQVM7QUFDNUIsZUFBTyxTQUFTLFFBQVEsMEJBQWpCO01BQ1IsV0FBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLFNBQVM7QUFDL0IsZUFBTyxTQUFTLFFBQVEsd0JBQWpCO01BQ1IsV0FBVSxNQUFNLFFBQU87QUFDdEIsZUFBTyxTQUFTLFFBQ2Qsb0JBREssdUVBRWdFLE9BQU0sTUFBTixJQUZoRSxjQUV5RixJQUFJLE1BQUosQ0FGekY7TUFJUixPQUFNO0FBQ0wsZUFBTztNQUNSO0lBQ0Y7UUFjb0IsV0FBQSwyQkFBQTtBQUluQix5QkFBWSxRQUFRO0FBSWxCLGFBQUssSUFBSSxPQUFPO0FBSWhCLGFBQUssSUFBSSxPQUFPO0FBSWhCLGFBQUssVUFBVSxPQUFPLFdBQVc7QUFJakMsYUFBSyxrQkFBa0I7TUFDeEI7Z0JBUU0sVUFBUCxpQkFBZSxRQUFRLGFBQW9CO0FBQUEsWUFBcEIsZ0JBQW9CLFFBQUE7QUFBcEIsd0JBQWM7UUFBTTtBQUN6QyxZQUFJLENBQUMsUUFBUTtBQUNYLGdCQUFNLElBQUkscUJBQXFCLGtEQUF6QjtRQUNQO0FBRUQsWUFBTSxXQUFVLGtCQUFrQixVQUFVLFNBQVMsSUFBSSxRQUFRLFFBQVEsV0FBcEI7QUFFckQsWUFBSSxTQUFTLGdCQUFnQjtBQUMzQixnQkFBTSxJQUFJLHFCQUFxQixRQUF6QjtRQUNQLE9BQU07QUFDTCxpQkFBTyxJQUFJLFVBQVM7WUFBRSxTQUFBO1VBQUYsQ0FBYjtRQUNSO01BQ0Y7Z0JBUU0sZ0JBQVAsdUJBQXFCLFFBQU8sS0FBSztBQUMvQixZQUFNLGFBQWEsaUJBQWlCLE1BQUQsR0FDakMsV0FBVyxpQkFBaUIsR0FBRDtBQUU3QixZQUFNLGdCQUFnQixpQkFBaUIsWUFBWSxRQUFiO0FBRXRDLFlBQUksaUJBQWlCLE1BQU07QUFDekIsaUJBQU8sSUFBSSxVQUFTO1lBQ2xCLE9BQU87WUFDUCxLQUFLO1VBRmEsQ0FBYjtRQUlSLE9BQU07QUFDTCxpQkFBTztRQUNSO01BQ0Y7Z0JBUU0sUUFBUCxlQUFhLFFBQU8sVUFBVTtBQUM1QixZQUFNLE1BQU0sU0FBUyxpQkFBaUIsUUFBMUIsR0FDVixLQUFLLGlCQUFpQixNQUFEO0FBQ3ZCLGVBQU8sVUFBUyxjQUFjLElBQUksR0FBRyxLQUFLLEdBQVIsQ0FBM0I7TUFDUjtnQkFRTSxTQUFQLGdCQUFjLEtBQUssVUFBVTtBQUMzQixZQUFNLE1BQU0sU0FBUyxpQkFBaUIsUUFBMUIsR0FDVixLQUFLLGlCQUFpQixHQUFEO0FBQ3ZCLGVBQU8sVUFBUyxjQUFjLEdBQUcsTUFBTSxHQUFULEdBQWUsRUFBdEM7TUFDUjtnQkFVTSxVQUFQLGlCQUFlLE9BQU0sTUFBTTtBQUN6QixZQUFBLFNBQWdCLFVBQVEsSUFBSSxNQUFNLEtBQUssQ0FBeEIsR0FBUixLQUFQLE9BQUEsSUFBVSxJQUFWLE9BQUE7QUFDQSxZQUFJLE1BQUssR0FBRztBQUNWLGNBQUksUUFBTztBQUNYLGNBQUk7QUFDRixxQkFBUSxVQUFTLFFBQVEsSUFBRyxJQUFwQjtBQUNSLDJCQUFlLE9BQU07VUFDdEIsU0FBUSxJQUFQO0FBQ0EsMkJBQWU7VUFDaEI7QUFFRCxjQUFJLEtBQUs7QUFDVCxjQUFJO0FBQ0Ysa0JBQU0sVUFBUyxRQUFRLEdBQUcsSUFBcEI7QUFDTix5QkFBYSxJQUFJO1VBQ2xCLFNBQVEsSUFBUDtBQUNBLHlCQUFhO1VBQ2Q7QUFFRCxjQUFJLGdCQUFnQixZQUFZO0FBQzlCLG1CQUFPLFVBQVMsY0FBYyxRQUFPLEdBQTlCO1VBQ1I7QUFFRCxjQUFJLGNBQWM7QUFDaEIsZ0JBQU0sTUFBTSxTQUFTLFFBQVEsR0FBRyxJQUFwQjtBQUNaLGdCQUFJLElBQUksU0FBUztBQUNmLHFCQUFPLFVBQVMsTUFBTSxRQUFPLEdBQXRCO1lBQ1I7VUFDRixXQUFVLFlBQVk7QUFDckIsZ0JBQU0sT0FBTSxTQUFTLFFBQVEsSUFBRyxJQUFwQjtBQUNaLGdCQUFJLEtBQUksU0FBUztBQUNmLHFCQUFPLFVBQVMsT0FBTyxLQUFLLElBQXJCO1lBQ1I7VUFDRjtRQUNGO0FBQ0QsZUFBTyxVQUFTLFFBQVEsY0FBakIsZ0JBQTZDLFFBQTdDLCtCQUFBO01BQ1I7Z0JBT00sYUFBUCxvQkFBa0IsR0FBRztBQUNuQixlQUFRLEtBQUssRUFBRSxtQkFBb0I7TUFDcEM7O2FBK0NELFNBQUEsZ0JBQU8sT0FBdUI7QUFBQSxZQUF2QixVQUF1QixRQUFBO0FBQXZCLGtCQUFPO1FBQWdCO0FBQzVCLGVBQU8sS0FBSyxVQUFVLEtBQUssV0FBTCxNQUFBLE1BQW1CLENBQUMsS0FBRCxDQUFuQixFQUEyQixJQUFJLEtBQS9CLElBQXVDO01BQzlEO2FBU0QsUUFBQSxnQkFBTSxPQUF1QjtBQUFBLFlBQXZCLFVBQXVCLFFBQUE7QUFBdkIsa0JBQU87UUFBZ0I7QUFDM0IsWUFBSSxDQUFDLEtBQUs7QUFBUyxpQkFBTztBQUMxQixZQUFNLFNBQVEsS0FBSyxNQUFNLFFBQVEsS0FBbkIsR0FDWixNQUFNLEtBQUssSUFBSSxRQUFRLEtBQWpCO0FBQ1IsZUFBTyxLQUFLLE1BQU0sSUFBSSxLQUFLLFFBQU8sS0FBaEIsRUFBc0IsSUFBSSxLQUExQixDQUFYLElBQThDO01BQ3REO2FBT0QsVUFBQSxpQkFBUSxPQUFNO0FBQ1osZUFBTyxLQUFLLFVBQVUsS0FBSyxRQUFMLEtBQWtCLEtBQUssRUFBRSxNQUFNLENBQWIsRUFBZ0IsUUFBUSxLQUFLLEdBQUcsS0FBaEMsSUFBd0M7TUFDakY7YUFNRCxVQUFBLG1CQUFVO0FBQ1IsZUFBTyxLQUFLLEVBQUUsUUFBUCxNQUFxQixLQUFLLEVBQUUsUUFBUDtNQUM3QjthQU9ELFVBQUEsaUJBQVEsVUFBVTtBQUNoQixZQUFJLENBQUMsS0FBSztBQUFTLGlCQUFPO0FBQzFCLGVBQU8sS0FBSyxJQUFJO01BQ2pCO2FBT0QsV0FBQSxrQkFBUyxVQUFVO0FBQ2pCLFlBQUksQ0FBQyxLQUFLO0FBQVMsaUJBQU87QUFDMUIsZUFBTyxLQUFLLEtBQUs7TUFDbEI7YUFPRCxXQUFBLGtCQUFTLFVBQVU7QUFDakIsWUFBSSxDQUFDLEtBQUs7QUFBUyxpQkFBTztBQUMxQixlQUFPLEtBQUssS0FBSyxZQUFZLEtBQUssSUFBSTtNQUN2QzthQVNELE1BQUEsY0FBQSxPQUF5QjtBQUFBLFlBQUEsT0FBQSxVQUFBLFNBQUosQ0FBQSxJQUFJLE9BQW5CLFNBQW1CLEtBQW5CLE9BQU8sTUFBWSxLQUFaO0FBQ1gsWUFBSSxDQUFDLEtBQUs7QUFBUyxpQkFBTztBQUMxQixlQUFPLFVBQVMsY0FBYyxVQUFTLEtBQUssR0FBRyxPQUFPLEtBQUssQ0FBcEQ7TUFDUjthQU9ELFVBQUEsbUJBQXNCO0FBQUEsWUFBQSxRQUFBO0FBQ3BCLFlBQUksQ0FBQyxLQUFLO0FBQVMsaUJBQU8sQ0FBQTtBQUROLGlCQUFBLE9BQUEsVUFBQSxRQUFYLFlBQVcsSUFBQSxNQUFBLElBQUEsR0FBQSxPQUFBLEdBQUEsT0FBQSxNQUFBLFFBQUE7QUFBWCxvQkFBVyxRQUFBLFVBQUE7UUFBQTtBQUVwQixZQUFNLFNBQVMsVUFDVixJQUFJLGdCQURNLEVBRVYsT0FBTyxTQUFDLEdBQUQ7QUFBQSxpQkFBTyxNQUFLLFNBQVMsQ0FBZDtRQUFQLENBRkcsRUFHVixLQUhVLEdBSWIsVUFBVSxDQUFBO0FBQ1IsWUFBRSxLQUFNLEtBQU4sR0FDSixJQUFJO0FBRU4sZUFBTyxLQUFJLEtBQUssR0FBRztBQUNqQixjQUFNLFFBQVEsT0FBTyxNQUFNLEtBQUssR0FDOUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksS0FBSyxJQUFJO0FBQ3JDLGtCQUFRLEtBQUssVUFBUyxjQUFjLElBQUcsSUFBMUIsQ0FBYjtBQUNBLGVBQUk7QUFDSixlQUFLO1FBQ047QUFFRCxlQUFPO01BQ1I7YUFRRCxVQUFBLGlCQUFRLFVBQVU7QUFDaEIsWUFBTSxNQUFNLFNBQVMsaUJBQWlCLFFBQTFCO0FBRVosWUFBSSxDQUFDLEtBQUssV0FBVyxDQUFDLElBQUksV0FBVyxJQUFJLEdBQUcsY0FBUCxNQUEyQixHQUFHO0FBQ2pFLGlCQUFPLENBQUE7UUFDUjtBQUVHLFlBQUUsS0FBTSxLQUFOLEdBQ0osTUFBTSxHQUNOO0FBRUYsWUFBTSxVQUFVLENBQUE7QUFDaEIsZUFBTyxLQUFJLEtBQUssR0FBRztBQUNqQixjQUFNLFFBQVEsS0FBSyxNQUFNLEtBQUssSUFBSSxTQUFTLFNBQUMsSUFBRDtBQUFBLG1CQUFPLEtBQUk7VUFBWCxDQUFiLENBQWhCO0FBQ2QsaUJBQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLEtBQUssSUFBSTtBQUNuQyxrQkFBUSxLQUFLLFVBQVMsY0FBYyxJQUFHLElBQTFCLENBQWI7QUFDQSxlQUFJO0FBQ0osaUJBQU87UUFDUjtBQUVELGVBQU87TUFDUjthQU9ELGdCQUFBLHVCQUFjLGVBQWU7QUFDM0IsWUFBSSxDQUFDLEtBQUs7QUFBUyxpQkFBTyxDQUFBO0FBQzFCLGVBQU8sS0FBSyxRQUFRLEtBQUssT0FBTCxJQUFnQixhQUE3QixFQUE0QyxNQUFNLEdBQUcsYUFBckQ7TUFDUjthQU9ELFdBQUEsa0JBQVMsT0FBTztBQUNkLGVBQU8sS0FBSyxJQUFJLE1BQU0sS0FBSyxLQUFLLElBQUksTUFBTTtNQUMzQzthQU9ELGFBQUEsb0JBQVcsT0FBTztBQUNoQixZQUFJLENBQUMsS0FBSztBQUFTLGlCQUFPO0FBQzFCLGVBQU8sQ0FBQyxLQUFLLE1BQU0sQ0FBQyxNQUFNO01BQzNCO2FBT0QsV0FBQSxrQkFBUyxPQUFPO0FBQ2QsWUFBSSxDQUFDLEtBQUs7QUFBUyxpQkFBTztBQUMxQixlQUFPLENBQUMsTUFBTSxNQUFNLENBQUMsS0FBSztNQUMzQjthQU9ELFVBQUEsaUJBQVEsT0FBTztBQUNiLFlBQUksQ0FBQyxLQUFLO0FBQVMsaUJBQU87QUFDMUIsZUFBTyxLQUFLLEtBQUssTUFBTSxLQUFLLEtBQUssS0FBSyxNQUFNO01BQzdDO2FBT0QsU0FBQSxnQkFBTyxPQUFPO0FBQ1osWUFBSSxDQUFDLEtBQUssV0FBVyxDQUFDLE1BQU0sU0FBUztBQUNuQyxpQkFBTztRQUNSO0FBRUQsZUFBTyxLQUFLLEVBQUUsT0FBTyxNQUFNLENBQXBCLEtBQTBCLEtBQUssRUFBRSxPQUFPLE1BQU0sQ0FBcEI7TUFDbEM7YUFTRCxlQUFBLHNCQUFhLE9BQU87QUFDbEIsWUFBSSxDQUFDLEtBQUs7QUFBUyxpQkFBTztBQUMxQixZQUFNLEtBQUksS0FBSyxJQUFJLE1BQU0sSUFBSSxLQUFLLElBQUksTUFBTSxHQUMxQyxJQUFJLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxJQUFJLE1BQU07QUFFeEMsWUFBSSxNQUFLLEdBQUc7QUFDVixpQkFBTztRQUNSLE9BQU07QUFDTCxpQkFBTyxVQUFTLGNBQWMsSUFBRyxDQUExQjtRQUNSO01BQ0Y7YUFRRCxRQUFBLGVBQU0sT0FBTztBQUNYLFlBQUksQ0FBQyxLQUFLO0FBQVMsaUJBQU87QUFDMUIsWUFBTSxLQUFJLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxJQUFJLE1BQU0sR0FDMUMsSUFBSSxLQUFLLElBQUksTUFBTSxJQUFJLEtBQUssSUFBSSxNQUFNO0FBQ3hDLGVBQU8sVUFBUyxjQUFjLElBQUcsQ0FBMUI7TUFDUjtnQkFRTSxRQUFQLGVBQWEsV0FBVztBQUN0QixZQUFBLHdCQUF1QixVQUNwQixLQUFLLFNBQUMsSUFBRyxHQUFKO0FBQUEsaUJBQVUsR0FBRSxJQUFJLEVBQUU7UUFBbEIsQ0FEZSxFQUVwQixPQUNDLFNBQUEsT0FBbUIsTUFBUztBQUFBLGNBQTFCLFFBQTBCLE1BQUEsSUFBbkIsVUFBbUIsTUFBQTtBQUMxQixjQUFJLENBQUMsU0FBUztBQUNaLG1CQUFPLENBQUMsT0FBTyxJQUFSO1VBQ1IsV0FBVSxRQUFRLFNBQVMsSUFBakIsS0FBMEIsUUFBUSxXQUFXLElBQW5CLEdBQTBCO0FBQzdELG1CQUFPLENBQUMsT0FBTyxRQUFRLE1BQU0sSUFBZCxDQUFSO1VBQ1IsT0FBTTtBQUNMLG1CQUFPLENBQUMsTUFBTSxPQUFPLENBQUMsT0FBRCxDQUFiLEdBQXlCLElBQTFCO1VBQ1I7UUFDRixHQUNELENBQUMsQ0FBQSxHQUFJLElBQUwsQ0FabUIsR0FBaEIsUUFBUCxzQkFBQSxJQUFjLFFBQWQsc0JBQUE7QUFjQSxZQUFJLE9BQU87QUFDVCxnQkFBTSxLQUFLLEtBQVg7UUFDRDtBQUNELGVBQU87TUFDUjtnQkFPTSxNQUFQLGFBQVcsV0FBVztBQUFBLFlBQUE7QUFDcEIsWUFBSSxTQUFRLE1BQ1YsZUFBZTtBQUNqQixZQUFNLFVBQVUsQ0FBQSxHQUNkLE9BQU8sVUFBVSxJQUFJLFNBQUMsSUFBRDtBQUFBLGlCQUFPLENBQzFCO1lBQUUsTUFBTSxHQUFFO1lBQUcsTUFBTTtVQUFuQixHQUNBO1lBQUUsTUFBTSxHQUFFO1lBQUcsTUFBTTtVQUFuQixDQUYwQjtRQUFQLENBQWQsR0FJUCxZQUFZLG9CQUFBLE1BQU0sV0FBVSxPQUFoQixNQUFBLGtCQUEwQixJQUExQixHQUNaLE1BQU0sVUFBVSxLQUFLLFNBQUMsSUFBRyxHQUFKO0FBQUEsaUJBQVUsR0FBRSxPQUFPLEVBQUU7UUFBckIsQ0FBZjtBQUVSLGlCQUFBLFlBQUEsZ0NBQWdCLEdBQWhCLEdBQUEsT0FBQSxDQUFBLFNBQUEsVUFBQSxHQUFBLFFBQXFCO0FBQUEsY0FBVixJQUFVLE1BQUE7QUFDbkIsMEJBQWdCLEVBQUUsU0FBUyxNQUFNLElBQUk7QUFFckMsY0FBSSxpQkFBaUIsR0FBRztBQUN0QixxQkFBUSxFQUFFO1VBQ1gsT0FBTTtBQUNMLGdCQUFJLFVBQVMsQ0FBQyxXQUFVLENBQUMsRUFBRSxNQUFNO0FBQy9CLHNCQUFRLEtBQUssVUFBUyxjQUFjLFFBQU8sRUFBRSxJQUFoQyxDQUFiO1lBQ0Q7QUFFRCxxQkFBUTtVQUNUO1FBQ0Y7QUFFRCxlQUFPLFVBQVMsTUFBTSxPQUFmO01BQ1I7YUFPRCxhQUFBLHNCQUF5QjtBQUFBLFlBQUEsU0FBQTtBQUFBLGlCQUFBLFFBQUEsVUFBQSxRQUFYLFlBQVcsSUFBQSxNQUFBLEtBQUEsR0FBQSxRQUFBLEdBQUEsUUFBQSxPQUFBLFNBQUE7QUFBWCxvQkFBVyxTQUFBLFVBQUE7UUFBQTtBQUN2QixlQUFPLFVBQVMsSUFBSSxDQUFDLElBQUQsRUFBTyxPQUFPLFNBQWQsQ0FBYixFQUNKLElBQUksU0FBQyxHQUFEO0FBQUEsaUJBQU8sT0FBSyxhQUFhLENBQWxCO1FBQVAsQ0FEQSxFQUVKLE9BQU8sU0FBQyxHQUFEO0FBQUEsaUJBQU8sS0FBSyxDQUFDLEVBQUUsUUFBRjtRQUFiLENBRkg7TUFHUjthQU1ELFdBQUEsb0JBQVc7QUFDVCxZQUFJLENBQUMsS0FBSztBQUFTLGlCQUFPO0FBQzFCLGVBQUEsTUFBVyxLQUFLLEVBQUUsTUFBUCxJQUFYLGFBQStCLEtBQUssRUFBRSxNQUFQLElBQS9CO01BQ0Q7YUFRRCxRQUFBLGVBQU0sTUFBTTtBQUNWLFlBQUksQ0FBQyxLQUFLO0FBQVMsaUJBQU87QUFDMUIsZUFBVSxLQUFLLEVBQUUsTUFBTSxJQUFiLElBQVYsTUFBZ0MsS0FBSyxFQUFFLE1BQU0sSUFBYjtNQUNqQzthQVFELFlBQUEscUJBQVk7QUFDVixZQUFJLENBQUMsS0FBSztBQUFTLGlCQUFPO0FBQzFCLGVBQVUsS0FBSyxFQUFFLFVBQVAsSUFBVixNQUFnQyxLQUFLLEVBQUUsVUFBUDtNQUNqQzthQVNELFlBQUEsbUJBQVUsTUFBTTtBQUNkLFlBQUksQ0FBQyxLQUFLO0FBQVMsaUJBQU87QUFDMUIsZUFBVSxLQUFLLEVBQUUsVUFBVSxJQUFqQixJQUFWLE1BQW9DLEtBQUssRUFBRSxVQUFVLElBQWpCO01BQ3JDO2FBU0QsV0FBQSxrQkFBUyxZQUFULFFBQWlEO0FBQUEsWUFBQSxRQUFBLFdBQUEsU0FBSixDQUFBLElBQUksUUFBQSxrQkFBQSxNQUExQixXQUFBLFlBQTBCLG9CQUFBLFNBQWQsYUFBYztBQUMvQyxZQUFJLENBQUMsS0FBSztBQUFTLGlCQUFPO0FBQzFCLGVBQUEsS0FBVSxLQUFLLEVBQUUsU0FBUyxVQUFoQixJQUE4QixZQUFZLEtBQUssRUFBRSxTQUFTLFVBQWhCO01BQ3JEO2FBY0QsYUFBQSxvQkFBVyxPQUFNLE1BQU07QUFDckIsWUFBSSxDQUFDLEtBQUssU0FBUztBQUNqQixpQkFBTyxTQUFTLFFBQVEsS0FBSyxhQUF0QjtRQUNSO0FBQ0QsZUFBTyxLQUFLLEVBQUUsS0FBSyxLQUFLLEdBQUcsT0FBTSxJQUExQjtNQUNSO2FBU0QsZUFBQSxzQkFBYSxPQUFPO0FBQ2xCLGVBQU8sVUFBUyxjQUFjLE1BQU0sS0FBSyxDQUFOLEdBQVUsTUFBTSxLQUFLLENBQU4sQ0FBM0M7TUFDUjs7O2FBcmFELGdCQUFZO0FBQ1YsaUJBQU8sS0FBSyxVQUFVLEtBQUssSUFBSTtRQUNoQzs7O2FBTUQsZ0JBQVU7QUFDUixpQkFBTyxLQUFLLFVBQVUsS0FBSyxJQUFJO1FBQ2hDOzs7YUFNRCxnQkFBYztBQUNaLGlCQUFPLEtBQUssa0JBQWtCO1FBQy9COzs7YUFNRCxnQkFBb0I7QUFDbEIsaUJBQU8sS0FBSyxVQUFVLEtBQUssUUFBUSxTQUFTO1FBQzdDOzs7YUFNRCxnQkFBeUI7QUFDdkIsaUJBQU8sS0FBSyxVQUFVLEtBQUssUUFBUSxjQUFjO1FBQ2xEOzs7O1FDL01rQixPQUFBLDJCQUFBOzs7WUFNWixTQUFQLGdCQUFjLE1BQTZCO0FBQUEsWUFBN0IsU0FBNkIsUUFBQTtBQUE3QixpQkFBTyxTQUFTO1FBQWE7QUFDekMsWUFBTSxRQUFRLFVBQVMsSUFBVCxFQUFlLFFBQVEsSUFBdkIsRUFBNkIsSUFBSTtVQUFFLE9BQU87UUFBVCxDQUFqQztBQUVkLGVBQU8sQ0FBQyxLQUFLLGVBQWUsTUFBTSxXQUFXLE1BQU0sSUFBSTtVQUFFLE9BQU87UUFBVCxDQUFWLEVBQXdCO01BQ3RFO1lBT00sa0JBQVAseUJBQXVCLE1BQU07QUFDM0IsZUFBTyxTQUFTLGlCQUFpQixJQUExQixLQUFtQyxTQUFTLFlBQVksSUFBckI7TUFDM0M7WUFnQk0sZ0JBQVAseUJBQXFCLE9BQU87QUFDMUIsZUFBTyxjQUFjLE9BQU8sU0FBUyxXQUFqQjtNQUNyQjtZQW1CTSxTQUFQLGlCQUNFLFFBREYsT0FHRTtBQUFBLFlBRkEsV0FFQSxRQUFBO0FBRkEsbUJBQVM7UUFFVDtBQUFBLFlBQUEsT0FBQSxVQUFBLFNBRHVGLENBQUEsSUFDdkYsT0FBQSxjQUFBLEtBREUsUUFBQSxVQUNGLGdCQUFBLFNBRFcsT0FDWCxhQUFBLHVCQUFBLEtBRGlCLGlCQUFBLGtCQUNqQix5QkFBQSxTQURtQyxPQUNuQyxzQkFBQSxjQUFBLEtBRHlDLFFBQUEsU0FDekMsZ0JBQUEsU0FEa0QsT0FDbEQsYUFBQSxzQkFBQSxLQUR3RCxnQkFBQSxpQkFDeEQsd0JBQUEsU0FEeUUsWUFDekU7QUFDQSxlQUFRLFdBQVUsT0FBTyxPQUFPLFNBQVEsaUJBQWlCLGNBQXZDLEdBQXdELE9BQU8sTUFBMUU7TUFDUjtZQWVNLGVBQVAsc0JBQ0UsUUFERixRQUdFO0FBQUEsWUFGQSxXQUVBLFFBQUE7QUFGQSxtQkFBUztRQUVUO0FBQUEsWUFBQSxRQUFBLFdBQUEsU0FEdUYsQ0FBQSxJQUN2RixRQUFBLGVBQUEsTUFERSxRQUFBLFVBQ0YsaUJBQUEsU0FEVyxPQUNYLGNBQUEsd0JBQUEsTUFEaUIsaUJBQUEsa0JBQ2pCLDBCQUFBLFNBRG1DLE9BQ25DLHVCQUFBLGVBQUEsTUFEeUMsUUFBQSxTQUN6QyxpQkFBQSxTQURrRCxPQUNsRCxjQUFBLHVCQUFBLE1BRHdELGdCQUFBLGlCQUN4RCx5QkFBQSxTQUR5RSxZQUN6RTtBQUNBLGVBQVEsV0FBVSxPQUFPLE9BQU8sU0FBUSxpQkFBaUIsY0FBdkMsR0FBd0QsT0FBTyxRQUFRLElBQWxGO01BQ1I7WUFnQk0sV0FBUCxtQkFBZ0IsUUFBaEIsUUFBZ0c7QUFBQSxZQUFoRixXQUFnRixRQUFBO0FBQWhGLG1CQUFTO1FBQXVFO0FBQUEsWUFBQSxRQUFBLFdBQUEsU0FBSixDQUFBLElBQUksUUFBQSxlQUFBLE1BQTdELFFBQUEsVUFBNkQsaUJBQUEsU0FBcEQsT0FBb0QsY0FBQSx3QkFBQSxNQUE5QyxpQkFBQSxrQkFBOEMsMEJBQUEsU0FBNUIsT0FBNEIsdUJBQUEsZUFBQSxNQUF0QixRQUFBLFNBQXNCLGlCQUFBLFNBQWIsT0FBYTtBQUM5RixlQUFRLFdBQVUsT0FBTyxPQUFPLFNBQVEsaUJBQWlCLElBQXZDLEdBQThDLFNBQVMsTUFBbEU7TUFDUjtZQWNNLGlCQUFQLHdCQUNFLFFBREYsUUFHRTtBQUFBLFlBRkEsV0FFQSxRQUFBO0FBRkEsbUJBQVM7UUFFVDtBQUFBLFlBQUEsUUFBQSxXQUFBLFNBRDJELENBQUEsSUFDM0QsUUFBQSxlQUFBLE1BREUsUUFBQSxVQUNGLGlCQUFBLFNBRFcsT0FDWCxjQUFBLHdCQUFBLE1BRGlCLGlCQUFBLGtCQUNqQiwwQkFBQSxTQURtQyxPQUNuQyx1QkFBQSxlQUFBLE1BRHlDLFFBQUEsU0FDekMsaUJBQUEsU0FEa0QsT0FDbEQ7QUFDQSxlQUFRLFdBQVUsT0FBTyxPQUFPLFNBQVEsaUJBQWlCLElBQXZDLEdBQThDLFNBQVMsUUFBUSxJQUExRTtNQUNSO1lBVU0sWUFBUCxvQkFBQSxRQUF5QztBQUFBLFlBQUEsUUFBQSxXQUFBLFNBQUosQ0FBQSxJQUFJLFFBQUEsZUFBQSxNQUF0QixRQUFBLFVBQXNCLGlCQUFBLFNBQWIsT0FBYTtBQUN2QyxlQUFPLE9BQU8sT0FBTyxPQUFkLEVBQXNCLFVBQXRCO01BQ1I7WUFZTSxPQUFQLGVBQVksUUFBWixRQUFzRDtBQUFBLFlBQTFDLFdBQTBDLFFBQUE7QUFBMUMsbUJBQVM7UUFBaUM7QUFBQSxZQUFBLFFBQUEsV0FBQSxTQUFKLENBQUEsSUFBSSxRQUFBLGVBQUEsTUFBdEIsUUFBQSxVQUFzQixpQkFBQSxTQUFiLE9BQWE7QUFDcEQsZUFBTyxPQUFPLE9BQU8sU0FBUSxNQUFNLFNBQTVCLEVBQXVDLEtBQUssTUFBNUM7TUFDUjtZQVVNLFdBQVAsb0JBQWtCO0FBQ2hCLGVBQU87VUFBRSxVQUFVLFlBQVc7UUFBdkI7TUFDUjs7O0FDcktILHFCQUFpQixTQUFTLE9BQU87QUFDL0IsVUFBTSxjQUFjLHNCQUFDLElBQUQ7QUFBQSxlQUFRLEdBQUcsTUFBTSxHQUFHO1VBQUUsZUFBZTtRQUFqQixDQUFaLEVBQXFDLFFBQVEsS0FBN0MsRUFBb0QsUUFBcEQ7TUFBUixHQUNsQixLQUFLLFlBQVksS0FBRCxJQUFVLFlBQVksT0FBRDtBQUN2QyxhQUFPLEtBQUssTUFBTSxTQUFTLFdBQVcsRUFBcEIsRUFBd0IsR0FBRyxNQUEzQixDQUFYO0lBQ1I7QUFFRCw0QkFBd0IsUUFBUSxPQUFPLE9BQU87QUFDNUMsVUFBTSxVQUFVLENBQ2QsQ0FBQyxTQUFTLFNBQUMsSUFBRyxHQUFKO0FBQUEsZUFBVSxFQUFFLE9BQU8sR0FBRTtNQUFyQixDQUFWLEdBQ0EsQ0FBQyxZQUFZLFNBQUMsSUFBRyxHQUFKO0FBQUEsZUFBVSxFQUFFLFVBQVUsR0FBRTtNQUF4QixDQUFiLEdBQ0EsQ0FBQyxVQUFVLFNBQUMsSUFBRyxHQUFKO0FBQUEsZUFBVSxFQUFFLFFBQVEsR0FBRSxRQUFTLEdBQUUsT0FBTyxHQUFFLFFBQVE7TUFBbEQsQ0FBWCxHQUNBLENBQ0UsU0FDQSxTQUFDLElBQUcsR0FBTTtBQUNSLFlBQU0sT0FBTyxRQUFRLElBQUcsQ0FBSjtBQUNwQixlQUFRLFFBQVEsT0FBTyxLQUFNO01BQzlCLENBTEgsR0FPQSxDQUFDLFFBQVEsT0FBVCxDQVhjO0FBY2hCLFVBQU0sVUFBVSxDQUFBO0FBQ2hCLFVBQUksYUFBYTtBQUVqQixlQUFBLEtBQUEsR0FBQSxXQUE2QixTQUE3QixLQUFBLFNBQUEsUUFBQSxNQUFzQztBQUFqQyxZQUFBLGNBQUEsU0FBQSxLQUFPLFFBQVAsWUFBQSxJQUFhLFNBQWIsWUFBQTtBQUNILFlBQUksTUFBTSxRQUFRLEtBQWQsS0FBdUIsR0FBRztBQUFBLGNBQUE7QUFDNUIsd0JBQWM7QUFFZCxjQUFJLFFBQVEsT0FBTyxRQUFRLEtBQVQ7QUFDbEIsc0JBQVksT0FBTyxLQUFQLGdCQUFBLENBQUEsR0FBQSxhQUFlLFNBQU8sT0FBdEIsYUFBQTtBQUVaLGNBQUksWUFBWSxPQUFPO0FBQUEsZ0JBQUE7QUFDckIscUJBQVMsT0FBTyxLQUFQLGlCQUFBLENBQUEsR0FBQSxjQUFlLFNBQU8sUUFBUSxHQUE5QixjQUFBO0FBQ1QscUJBQVM7VUFDVixPQUFNO0FBQ0wscUJBQVM7VUFDVjtBQUVELGtCQUFRLFNBQVE7UUFDakI7TUFDRjtBQUVELGFBQU8sQ0FBQyxRQUFRLFNBQVMsV0FBVyxXQUE3QjtJQUNSO0FBRWMsbUJBQVUsU0FBUyxPQUFPLE9BQU8sTUFBTTtBQUNwRCxVQUFBLGtCQUFnRCxlQUFlLFNBQVMsT0FBTyxLQUFqQixHQUF6RCxTQUFMLGdCQUFBLElBQWEsVUFBYixnQkFBQSxJQUFzQixZQUF0QixnQkFBQSxJQUFpQyxjQUFqQyxnQkFBQTtBQUVBLFVBQU0sa0JBQWtCLFFBQVE7QUFFaEMsVUFBTSxrQkFBa0IsTUFBTSxPQUM1QixTQUFDLEdBQUQ7QUFBQSxlQUFPLENBQUMsU0FBUyxXQUFXLFdBQVcsY0FBaEMsRUFBZ0QsUUFBUSxDQUF4RCxLQUE4RDtNQUFyRSxDQURzQjtBQUl4QixVQUFJLGdCQUFnQixXQUFXLEdBQUc7QUFDaEMsWUFBSSxZQUFZLE9BQU87QUFBQSxjQUFBO0FBQ3JCLHNCQUFZLE9BQU8sS0FBUCxpQkFBQSxDQUFBLEdBQUEsY0FBZSxlQUFjLEdBQTdCLGNBQUE7UUFDYjtBQUVELFlBQUksY0FBYyxRQUFRO0FBQ3hCLGtCQUFRLGVBQWdCLFNBQVEsZ0JBQWdCLEtBQUssa0JBQW1CLGFBQVk7UUFDckY7TUFDRjtBQUVELFVBQU0sV0FBVyxTQUFTLFdBQVcsU0FBUyxJQUE3QjtBQUVqQixVQUFJLGdCQUFnQixTQUFTLEdBQUc7QUFBQSxZQUFBO0FBQzlCLGVBQU8sd0JBQUEsU0FBUyxXQUFXLGlCQUFpQixJQUFyQyxHQUNKLFFBREksTUFBQSxzQkFDTyxlQURQLEVBRUosS0FBSyxRQUZEO01BR1IsT0FBTTtBQUNMLGVBQU87TUFDUjtJQUNGO0FDM0VELFFBQU0sbUJBQW1CO01BQ3ZCLE1BQU07TUFDTixTQUFTO01BQ1QsTUFBTTtNQUNOLE1BQU07TUFDTixNQUFNO01BQ04sVUFBVTtNQUNWLE1BQU07TUFDTixTQUFTO01BQ1QsTUFBTTtNQUNOLE1BQU07TUFDTixNQUFNO01BQ04sTUFBTTtNQUNOLE1BQU07TUFDTixNQUFNO01BQ04sTUFBTTtNQUNOLE1BQU07TUFDTixTQUFTO01BQ1QsTUFBTTtNQUNOLE1BQU07TUFDTixNQUFNO01BQ04sTUFBTTtJQXJCaUI7QUF3QnpCLFFBQU0sd0JBQXdCO01BQzVCLE1BQU0sQ0FBQyxNQUFNLElBQVA7TUFDTixTQUFTLENBQUMsTUFBTSxJQUFQO01BQ1QsTUFBTSxDQUFDLE1BQU0sSUFBUDtNQUNOLE1BQU0sQ0FBQyxNQUFNLElBQVA7TUFDTixNQUFNLENBQUMsTUFBTSxJQUFQO01BQ04sVUFBVSxDQUFDLE9BQU8sS0FBUjtNQUNWLE1BQU0sQ0FBQyxNQUFNLElBQVA7TUFDTixNQUFNLENBQUMsTUFBTSxJQUFQO01BQ04sTUFBTSxDQUFDLE1BQU0sSUFBUDtNQUNOLE1BQU0sQ0FBQyxNQUFNLElBQVA7TUFDTixNQUFNLENBQUMsTUFBTSxJQUFQO01BQ04sTUFBTSxDQUFDLE1BQU0sSUFBUDtNQUNOLE1BQU0sQ0FBQyxNQUFNLElBQVA7TUFDTixNQUFNLENBQUMsTUFBTSxJQUFQO01BQ04sTUFBTSxDQUFDLE1BQU0sSUFBUDtNQUNOLFNBQVMsQ0FBQyxNQUFNLElBQVA7TUFDVCxNQUFNLENBQUMsTUFBTSxJQUFQO01BQ04sTUFBTSxDQUFDLE1BQU0sSUFBUDtNQUNOLE1BQU0sQ0FBQyxNQUFNLElBQVA7SUFuQnNCO0FBc0I5QixRQUFNLGVBQWUsaUJBQWlCLFFBQVEsUUFBUSxZQUFZLEVBQTdDLEVBQWlELE1BQU0sRUFBdkQ7QUFFZCx5QkFBcUIsS0FBSztBQUMvQixVQUFJLFFBQVEsU0FBUyxLQUFLLEVBQU47QUFDcEIsVUFBSSxNQUFNLEtBQUQsR0FBUztBQUNoQixnQkFBUTtBQUNSLGlCQUFTLElBQUksR0FBRyxJQUFJLElBQUksUUFBUSxLQUFLO0FBQ25DLGNBQU0sT0FBTyxJQUFJLFdBQVcsQ0FBZjtBQUViLGNBQUksSUFBSSxHQUFHLE9BQU8saUJBQWlCLE9BQS9CLE1BQTRDLElBQUk7QUFDbEQscUJBQVMsYUFBYSxRQUFRLElBQUksRUFBekI7VUFDVixPQUFNO0FBQ0wscUJBQVcsT0FBTyx1QkFBdUI7QUFDdkMsa0JBQUEsdUJBQW1CLHNCQUFzQixNQUFsQyxPQUFQLHFCQUFBLElBQVksT0FBWixxQkFBQTtBQUNBLGtCQUFJLFFBQVEsUUFBTyxRQUFRLE1BQUs7QUFDOUIseUJBQVMsT0FBTztjQUNqQjtZQUNGO1VBQ0Y7UUFDRjtBQUNELGVBQU8sU0FBUyxPQUFPLEVBQVI7TUFDaEIsT0FBTTtBQUNMLGVBQU87TUFDUjtJQUNGO0FBRU0sd0JBQUEsTUFBeUMsU0FBYTtBQUFBLFVBQWhDLGtCQUFnQyxLQUFoQztBQUFnQyxVQUFiLFlBQWEsUUFBQTtBQUFiLGtCQUFTO01BQUk7QUFDM0QsYUFBTyxJQUFJLE9BQUosS0FBYyxpQkFBaUIsbUJBQW1CLFVBQVUsT0FBNUQ7SUFDUjtBQ2xFRCxRQUFNLGNBQWM7QUFFcEIscUJBQWlCLE9BQU8sTUFBaUI7QUFBQSxVQUFqQixTQUFpQixRQUFBO0FBQWpCLGVBQU8sZUFBQyxHQUFEO0FBQUEsaUJBQU87UUFBUDtNQUFVO0FBQ3ZDLGFBQU87UUFBRTtRQUFPLE9BQU8sZUFBQSxNQUFBO0FBQUEsY0FBRSxLQUFGLEtBQUE7QUFBQSxpQkFBUyxLQUFLLFlBQVksRUFBRCxDQUFaO1FBQWI7TUFBaEI7SUFDUjtBQUVELFFBQU0sT0FBTyxPQUFPLGFBQWEsR0FBcEI7QUFDYixRQUFNLGNBQVcsUUFBUyxPQUFUO0FBQ2pCLFFBQU0sb0JBQW9CLElBQUksT0FBTyxhQUFhLEdBQXhCO0FBRTFCLDBCQUFzQixJQUFHO0FBR3ZCLGFBQU8sR0FBRSxRQUFRLE9BQU8sTUFBakIsRUFBeUIsUUFBUSxtQkFBbUIsV0FBcEQ7SUFDUjtBQUVELGtDQUE4QixJQUFHO0FBQy9CLGFBQU8sR0FDSixRQUFRLE9BQU8sRUFEWCxFQUVKLFFBQVEsbUJBQW1CLEdBRnZCLEVBR0osWUFISTtJQUlSO0FBRUQsbUJBQWUsU0FBUyxZQUFZO0FBQ2xDLFVBQUksWUFBWSxNQUFNO0FBQ3BCLGVBQU87TUFDUixPQUFNO0FBQ0wsZUFBTztVQUNMLE9BQU8sT0FBTyxRQUFRLElBQUksWUFBWixFQUEwQixLQUFLLEdBQS9CLENBQUQ7VUFDYixPQUFPLGVBQUEsT0FBQTtBQUFBLGdCQUFFLEtBQUYsTUFBQTtBQUFBLG1CQUNMLFFBQVEsVUFBVSxTQUFDLEdBQUQ7QUFBQSxxQkFBTyxxQkFBcUIsRUFBRCxNQUFRLHFCQUFxQixDQUFEO1lBQXZELENBQWxCLElBQWdGO1VBRDNFO1FBRkY7TUFLUjtJQUNGO0FBRUQsb0JBQWdCLE9BQU8sUUFBUTtBQUM3QixhQUFPO1FBQUU7UUFBTyxPQUFPLGVBQUEsT0FBQTtBQUFBLGNBQUksSUFBSixNQUFBLElBQU8sS0FBUCxNQUFBO0FBQUEsaUJBQWMsYUFBYSxHQUFHLEVBQUo7UUFBMUI7UUFBa0M7TUFBbEQ7SUFDUjtBQUVELG9CQUFnQixPQUFPO0FBQ3JCLGFBQU87UUFBRTtRQUFPLE9BQU8sZUFBQSxPQUFBO0FBQUEsY0FBRSxLQUFGLE1BQUE7QUFBQSxpQkFBUztRQUFUO01BQWhCO0lBQ1I7QUFFRCx5QkFBcUIsT0FBTztBQUMxQixhQUFPLE1BQU0sUUFBUSwrQkFBK0IsTUFBN0M7SUFDUjtBQUVELDBCQUFzQixPQUFPLEtBQUs7QUFDaEMsVUFBTSxPQUFNLFdBQVcsR0FBRCxHQUNwQixNQUFNLFdBQVcsS0FBSyxLQUFOLEdBQ2hCLFFBQVEsV0FBVyxLQUFLLEtBQU4sR0FDbEIsT0FBTyxXQUFXLEtBQUssS0FBTixHQUNqQixNQUFNLFdBQVcsS0FBSyxLQUFOLEdBQ2hCLFdBQVcsV0FBVyxLQUFLLE9BQU4sR0FDckIsYUFBYSxXQUFXLEtBQUssT0FBTixHQUN2QixXQUFXLFdBQVcsS0FBSyxPQUFOLEdBQ3JCLFlBQVksV0FBVyxLQUFLLE9BQU4sR0FDdEIsWUFBWSxXQUFXLEtBQUssT0FBTixHQUN0QixZQUFZLFdBQVcsS0FBSyxPQUFOLEdBQ3RCLFVBQVUsa0JBQUMsR0FBRDtBQUFBLGVBQVE7VUFBRSxPQUFPLE9BQU8sWUFBWSxFQUFFLEdBQUgsQ0FBWjtVQUFzQixPQUFPLGVBQUEsT0FBQTtBQUFBLGdCQUFFLEtBQUYsTUFBQTtBQUFBLG1CQUFTO1VBQVQ7VUFBWSxTQUFTO1FBQWpFO01BQVIsR0FDVixVQUFVLGtCQUFDLEdBQU07QUFDZixZQUFJLE1BQU0sU0FBUztBQUNqQixpQkFBTyxRQUFRLENBQUQ7UUFDZjtBQUNELGdCQUFRLEVBQUU7ZUFFSDtBQUNILG1CQUFPLE1BQU0sSUFBSSxLQUFLLFNBQVMsS0FBbEIsR0FBMEIsQ0FBM0I7ZUFDVDtBQUNILG1CQUFPLE1BQU0sSUFBSSxLQUFLLFFBQVEsS0FBakIsR0FBeUIsQ0FBMUI7ZUFFVDtBQUNILG1CQUFPLFFBQVEsUUFBRDtlQUNYO0FBQ0gsbUJBQU8sUUFBUSxXQUFXLGNBQVo7ZUFDWDtBQUNILG1CQUFPLFFBQVEsSUFBRDtlQUNYO0FBQ0gsbUJBQU8sUUFBUSxTQUFEO2VBQ1g7QUFDSCxtQkFBTyxRQUFRLEdBQUQ7ZUFFWDtBQUNILG1CQUFPLFFBQVEsUUFBRDtlQUNYO0FBQ0gsbUJBQU8sUUFBUSxHQUFEO2VBQ1g7QUFDSCxtQkFBTyxNQUFNLElBQUksT0FBTyxTQUFTLE1BQU0sS0FBMUIsR0FBa0MsQ0FBbkM7ZUFDVDtBQUNILG1CQUFPLE1BQU0sSUFBSSxPQUFPLFFBQVEsTUFBTSxLQUF6QixHQUFpQyxDQUFsQztlQUNUO0FBQ0gsbUJBQU8sUUFBUSxRQUFEO2VBQ1g7QUFDSCxtQkFBTyxRQUFRLEdBQUQ7ZUFDWDtBQUNILG1CQUFPLE1BQU0sSUFBSSxPQUFPLFNBQVMsT0FBTyxLQUEzQixHQUFtQyxDQUFwQztlQUNUO0FBQ0gsbUJBQU8sTUFBTSxJQUFJLE9BQU8sUUFBUSxPQUFPLEtBQTFCLEdBQWtDLENBQW5DO2VBRVQ7QUFDSCxtQkFBTyxRQUFRLFFBQUQ7ZUFDWDtBQUNILG1CQUFPLFFBQVEsR0FBRDtlQUVYO0FBQ0gsbUJBQU8sUUFBUSxVQUFEO2VBQ1g7QUFDSCxtQkFBTyxRQUFRLEtBQUQ7ZUFFWDtBQUNILG1CQUFPLFFBQVEsR0FBRDtlQUNYO0FBQ0gsbUJBQU8sUUFBUSxRQUFEO2VBQ1g7QUFDSCxtQkFBTyxRQUFRLEdBQUQ7ZUFDWDtBQUNILG1CQUFPLFFBQVEsUUFBRDtlQUNYO0FBQ0gsbUJBQU8sUUFBUSxHQUFEO2VBQ1g7QUFDSCxtQkFBTyxRQUFRLFFBQUQ7ZUFDWDtBQUNILG1CQUFPLFFBQVEsUUFBRDtlQUNYO0FBQ0gsbUJBQU8sUUFBUSxHQUFEO2VBQ1g7QUFDSCxtQkFBTyxRQUFRLFFBQUQ7ZUFDWDtBQUNILG1CQUFPLFFBQVEsR0FBRDtlQUNYO0FBQ0gsbUJBQU8sUUFBUSxVQUFEO2VBQ1g7QUFDSCxtQkFBTyxRQUFRLEtBQUQ7ZUFDWDtBQUNILG1CQUFPLE9BQU8sU0FBRDtlQUNWO0FBQ0gsbUJBQU8sT0FBTyxRQUFEO2VBQ1Y7QUFDSCxtQkFBTyxRQUFRLElBQUQ7ZUFFWDtBQUNILG1CQUFPLE1BQU0sSUFBSSxVQUFKLEdBQWlCLENBQWxCO2VBRVQ7QUFDSCxtQkFBTyxRQUFRLElBQUQ7ZUFDWDtBQUNILG1CQUFPLFFBQVEsV0FBVyxjQUFaO2VBRVg7QUFDSCxtQkFBTyxRQUFRLFFBQUQ7ZUFDWDtBQUNILG1CQUFPLFFBQVEsR0FBRDtlQUVYO2VBQ0E7QUFDSCxtQkFBTyxRQUFRLElBQUQ7ZUFDWDtBQUNILG1CQUFPLE1BQU0sSUFBSSxTQUFTLFNBQVMsT0FBTyxLQUE3QixHQUFxQyxDQUF0QztlQUNUO0FBQ0gsbUJBQU8sTUFBTSxJQUFJLFNBQVMsUUFBUSxPQUFPLEtBQTVCLEdBQW9DLENBQXJDO2VBQ1Q7QUFDSCxtQkFBTyxNQUFNLElBQUksU0FBUyxTQUFTLE1BQU0sS0FBNUIsR0FBb0MsQ0FBckM7ZUFDVDtBQUNILG1CQUFPLE1BQU0sSUFBSSxTQUFTLFFBQVEsTUFBTSxLQUEzQixHQUFtQyxDQUFwQztlQUVUO2VBQ0E7QUFDSCxtQkFBTyxPQUFPLElBQUksT0FBSixVQUFtQixTQUFTLFNBQTVCLFdBQTJDLElBQUksU0FBL0MsS0FBQSxHQUE2RCxDQUE5RDtlQUNWO0FBQ0gsbUJBQU8sT0FBTyxJQUFJLE9BQUosVUFBbUIsU0FBUyxTQUE1QixPQUF1QyxJQUFJLFNBQTNDLElBQUEsR0FBd0QsQ0FBekQ7ZUFHVjtBQUNILG1CQUFPLE9BQU8sb0JBQUQ7O0FBRWIsbUJBQU8sUUFBUSxDQUFEOztNQUVuQjtBQUVILFVBQU0sUUFBTyxRQUFRLEtBQUQsS0FBVztRQUM3QixlQUFlO01BRGM7QUFJL0IsWUFBSyxRQUFRO0FBRWIsYUFBTztJQUNSO0FBRUQsUUFBTSwwQkFBMEI7TUFDOUIsTUFBTTtRQUNKLFdBQVc7UUFDWCxTQUFTO01BRkw7TUFJTixPQUFPO1FBQ0wsU0FBUztRQUNULFdBQVc7UUFDWCxPQUFPO1FBQ1AsTUFBTTtNQUpEO01BTVAsS0FBSztRQUNILFNBQVM7UUFDVCxXQUFXO01BRlI7TUFJTCxTQUFTO1FBQ1AsT0FBTztRQUNQLE1BQU07TUFGQztNQUlULFdBQVc7TUFDWCxXQUFXO01BQ1gsTUFBTTtRQUNKLFNBQVM7UUFDVCxXQUFXO01BRlA7TUFJTixRQUFRO1FBQ04sU0FBUztRQUNULFdBQVc7TUFGTDtNQUlSLFFBQVE7UUFDTixTQUFTO1FBQ1QsV0FBVztNQUZMO0lBN0JzQjtBQW1DaEMsMEJBQXNCLE1BQU0sU0FBUSxZQUFZO0FBQzlDLFVBQVEsUUFBZ0IsS0FBaEIsTUFBTSxRQUFVLEtBQVY7QUFFZCxVQUFJLFVBQVMsV0FBVztBQUN0QixlQUFPO1VBQ0wsU0FBUztVQUNULEtBQUs7UUFGQTtNQUlSO0FBRUQsVUFBTSxRQUFRLFdBQVc7QUFFekIsVUFBSSxNQUFNLHdCQUF3QjtBQUNsQyxVQUFJLE9BQU8sUUFBUSxVQUFVO0FBQzNCLGNBQU0sSUFBSTtNQUNYO0FBRUQsVUFBSSxLQUFLO0FBQ1AsZUFBTztVQUNMLFNBQVM7VUFDVDtRQUZLO01BSVI7QUFFRCxhQUFPO0lBQ1I7QUFFRCx3QkFBb0IsT0FBTztBQUN6QixVQUFNLE1BQUssTUFBTSxJQUFJLFNBQUMsR0FBRDtBQUFBLGVBQU8sRUFBRTtNQUFULENBQVYsRUFBMEIsT0FBTyxTQUFDLEdBQUcsR0FBSjtBQUFBLGVBQWEsSUFBYixNQUFrQixFQUFFLFNBQXBCO01BQUEsR0FBK0IsRUFBaEU7QUFDWCxhQUFPLENBQUEsTUFBSyxNQUFMLEtBQVksS0FBWjtJQUNSO0FBRUQsbUJBQWUsT0FBTyxPQUFPLFVBQVU7QUFDckMsVUFBTSxVQUFVLE1BQU0sTUFBTSxLQUFaO0FBRWhCLFVBQUksU0FBUztBQUNYLFlBQU0sTUFBTSxDQUFBO0FBQ1osWUFBSSxhQUFhO0FBQ2pCLGlCQUFXLEtBQUssVUFBVTtBQUN4QixjQUFJLGVBQWUsVUFBVSxDQUFYLEdBQWU7QUFDL0IsZ0JBQU0sSUFBSSxTQUFTLElBQ2pCLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxJQUFJO0FBQ3JDLGdCQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsT0FBTztBQUN6QixrQkFBSSxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUUsTUFBTSxRQUFRLE1BQU0sWUFBWSxhQUFhLE1BQXZDLENBQVI7WUFDdkI7QUFDRCwwQkFBYztVQUNmO1FBQ0Y7QUFDRCxlQUFPLENBQUMsU0FBUyxHQUFWO01BQ1IsT0FBTTtBQUNMLGVBQU8sQ0FBQyxTQUFTLENBQUEsQ0FBVjtNQUNSO0lBQ0Y7QUFFRCxpQ0FBNkIsU0FBUztBQUNwQyxVQUFNLFVBQVUsa0JBQUMsT0FBVTtBQUN6QixnQkFBUTtlQUNEO0FBQ0gsbUJBQU87ZUFDSjtBQUNILG1CQUFPO2VBQ0o7QUFDSCxtQkFBTztlQUNKO2VBQ0E7QUFDSCxtQkFBTztlQUNKO0FBQ0gsbUJBQU87ZUFDSjtBQUNILG1CQUFPO2VBQ0o7ZUFDQTtBQUNILG1CQUFPO2VBQ0o7QUFDSCxtQkFBTztlQUNKO2VBQ0E7QUFDSCxtQkFBTztlQUNKO0FBQ0gsbUJBQU87ZUFDSjtBQUNILG1CQUFPO2VBQ0o7QUFDSCxtQkFBTzs7QUFFUCxtQkFBTzs7TUFFWjtBQUVELFVBQUksT0FBTztBQUNYLFVBQUk7QUFDSixVQUFJLENBQUMsWUFBWSxRQUFRLENBQVQsR0FBYTtBQUMzQixlQUFPLFNBQVMsT0FBTyxRQUFRLENBQXhCO01BQ1I7QUFFRCxVQUFJLENBQUMsWUFBWSxRQUFRLENBQVQsR0FBYTtBQUMzQixZQUFJLENBQUMsTUFBTTtBQUNULGlCQUFPLElBQUksZ0JBQWdCLFFBQVEsQ0FBNUI7UUFDUjtBQUNELHlCQUFpQixRQUFRO01BQzFCO0FBRUQsVUFBSSxDQUFDLFlBQVksUUFBUSxDQUFULEdBQWE7QUFDM0IsZ0JBQVEsSUFBSyxTQUFRLElBQUksS0FBSyxJQUFJO01BQ25DO0FBRUQsVUFBSSxDQUFDLFlBQVksUUFBUSxDQUFULEdBQWE7QUFDM0IsWUFBSSxRQUFRLElBQUksTUFBTSxRQUFRLE1BQU0sR0FBRztBQUNyQyxrQkFBUSxLQUFLO1FBQ2QsV0FBVSxRQUFRLE1BQU0sTUFBTSxRQUFRLE1BQU0sR0FBRztBQUM5QyxrQkFBUSxJQUFJO1FBQ2I7TUFDRjtBQUVELFVBQUksUUFBUSxNQUFNLEtBQUssUUFBUSxHQUFHO0FBQ2hDLGdCQUFRLElBQUksQ0FBQyxRQUFRO01BQ3RCO0FBRUQsVUFBSSxDQUFDLFlBQVksUUFBUSxDQUFULEdBQWE7QUFDM0IsZ0JBQVEsSUFBSSxZQUFZLFFBQVEsQ0FBVDtNQUN4QjtBQUVELFVBQU0sT0FBTyxPQUFPLEtBQUssT0FBWixFQUFxQixPQUFPLFNBQUMsR0FBRyxHQUFNO0FBQ2pELFlBQU0sSUFBSSxRQUFRLENBQUQ7QUFDakIsWUFBSSxHQUFHO0FBQ0wsWUFBRSxLQUFLLFFBQVE7UUFDaEI7QUFFRCxlQUFPO01BQ1IsR0FBRSxDQUFBLENBUFU7QUFTYixhQUFPLENBQUMsTUFBTSxNQUFNLGNBQWI7SUFDUjtBQUVELFFBQUkscUJBQXFCO0FBRXpCLGdDQUE0QjtBQUMxQixVQUFJLENBQUMsb0JBQW9CO0FBQ3ZCLDZCQUFxQixVQUFTLFdBQVcsYUFBcEI7TUFDdEI7QUFFRCxhQUFPO0lBQ1I7QUFFRCxtQ0FBK0IsT0FBTyxTQUFRO0FBQzVDLFVBQUksTUFBTSxTQUFTO0FBQ2pCLGVBQU87TUFDUjtBQUVELFVBQU0sYUFBYSxVQUFVLHVCQUF1QixNQUFNLEdBQXZDO0FBRW5CLFVBQUksQ0FBQyxZQUFZO0FBQ2YsZUFBTztNQUNSO0FBRUQsVUFBTSxZQUFZLFVBQVUsT0FBTyxTQUFRLFVBQXpCO0FBQ2xCLFVBQU0sUUFBUSxVQUFVLG9CQUFvQixpQkFBZ0IsQ0FBOUM7QUFFZCxVQUFNLFNBQVMsTUFBTSxJQUFJLFNBQUMsR0FBRDtBQUFBLGVBQU8sYUFBYSxHQUFHLFNBQVEsVUFBWjtNQUFuQixDQUFWO0FBRWYsVUFBSSxPQUFPLFNBQVMsTUFBaEIsR0FBNEI7QUFDOUIsZUFBTztNQUNSO0FBRUQsYUFBTztJQUNSO0FBRUQsK0JBQTJCLFFBQVEsU0FBUTtBQUFBLFVBQUE7QUFDekMsYUFBTyxvQkFBQSxNQUFNLFdBQVUsT0FBaEIsTUFBQSxrQkFBMEIsT0FBTyxJQUFJLFNBQUMsR0FBRDtBQUFBLGVBQU8sc0JBQXNCLEdBQUcsT0FBSjtNQUE1QixDQUFYLENBQTFCO0lBQ1I7QUFNTSwrQkFBMkIsU0FBUSxPQUFPLFNBQVE7QUFDdkQsVUFBTSxTQUFTLGtCQUFrQixVQUFVLFlBQVksT0FBdEIsR0FBK0IsT0FBaEMsR0FDOUIsUUFBUSxPQUFPLElBQUksU0FBQyxHQUFEO0FBQUEsZUFBTyxhQUFhLEdBQUcsT0FBSjtNQUFuQixDQUFYLEdBQ1Isb0JBQW9CLE1BQU0sS0FBSyxTQUFDLEdBQUQ7QUFBQSxlQUFPLEVBQUU7TUFBVCxDQUFYO0FBRXRCLFVBQUksbUJBQW1CO0FBQ3JCLGVBQU87VUFBRTtVQUFPO1VBQVEsZUFBZSxrQkFBa0I7UUFBbEQ7TUFDUixPQUFNO0FBQ0wsWUFBQSxjQUFnQyxXQUFXLEtBQUQsR0FBbkMsY0FBUCxZQUFBLElBQW9CLFdBQXBCLFlBQUEsSUFDRSxRQUFRLE9BQU8sYUFBYSxHQUFkLEdBRGhCLFNBRTBCLE1BQU0sT0FBTyxPQUFPLFFBQWYsR0FBNUIsYUFGSCxPQUFBLElBRWUsVUFGZixPQUFBLElBQUEsUUFHbUMsVUFDN0Isb0JBQW9CLE9BQUQsSUFDbkIsQ0FBQyxNQUFNLE1BQU0sTUFBYixHQUZILFNBSEgsTUFBQSxJQUdXLE9BSFgsTUFBQSxJQUdpQixpQkFIakIsTUFBQTtBQU1BLFlBQUksZUFBZSxTQUFTLEdBQVYsS0FBa0IsZUFBZSxTQUFTLEdBQVYsR0FBZ0I7QUFDaEUsZ0JBQU0sSUFBSSw4QkFDUix1REFESTtRQUdQO0FBQ0QsZUFBTztVQUFFO1VBQU87VUFBUTtVQUFPO1VBQVk7VUFBUztVQUFRO1VBQU07UUFBM0Q7TUFDUjtJQUNGO0FBRU0sNkJBQXlCLFNBQVEsT0FBTyxTQUFRO0FBQ3JELFVBQUEscUJBQXdELGtCQUFrQixTQUFRLE9BQU8sT0FBaEIsR0FBakUsU0FBUixtQkFBUSxRQUFRLE9BQWhCLG1CQUFnQixNQUFNLGlCQUF0QixtQkFBc0IsZ0JBQWdCLGdCQUF0QyxtQkFBc0M7QUFDdEMsYUFBTyxDQUFDLFFBQVEsTUFBTSxnQkFBZ0IsYUFBL0I7SUFDUjtBQ3JhRCxRQUFNLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxHQUFuRDtBQUF0QixRQUNFLGFBQWEsQ0FBQyxHQUFHLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssR0FBbkQ7QUFFZiw0QkFBd0IsT0FBTSxPQUFPO0FBQ25DLGFBQU8sSUFBSSxRQUNULHFCQURLLG1CQUVZLFFBRlosZUFFOEIsT0FBTyxRQUZyQyxZQUVvRCxRQUZwRCxvQkFBQTtJQUlSO0FBRUQsdUJBQW1CLE1BQU0sT0FBTyxLQUFLO0FBQ25DLFVBQU0sS0FBSyxJQUFJLEtBQUssS0FBSyxJQUFJLE1BQU0sUUFBUSxHQUFHLEdBQTFCLENBQVQsRUFBeUMsVUFBekM7QUFDWCxhQUFPLE9BQU8sSUFBSSxJQUFJO0lBQ3ZCO0FBRUQsNEJBQXdCLE1BQU0sT0FBTyxLQUFLO0FBQ3hDLGFBQU8sTUFBTyxZQUFXLElBQUQsSUFBUyxhQUFhLGVBQWUsUUFBUTtJQUN0RTtBQUVELDhCQUEwQixNQUFNLFVBQVM7QUFDdkMsVUFBTSxRQUFRLFdBQVcsSUFBRCxJQUFTLGFBQWEsZUFDNUMsU0FBUyxNQUFNLFVBQVUsU0FBQyxHQUFEO0FBQUEsZUFBTyxJQUFJO01BQVgsQ0FBaEIsR0FDVCxNQUFNLFdBQVUsTUFBTTtBQUN4QixhQUFPO1FBQUUsT0FBTyxTQUFTO1FBQUc7TUFBckI7SUFDUjtBQU1NLDZCQUF5QixTQUFTO0FBQ3ZDLFVBQVEsT0FBcUIsUUFBckIsTUFBTSxRQUFlLFFBQWYsT0FBTyxNQUFRLFFBQVIsS0FDbkIsV0FBVSxlQUFlLE1BQU0sT0FBTyxHQUFkLEdBQ3hCLFVBQVUsVUFBVSxNQUFNLE9BQU8sR0FBZDtBQUVyQixVQUFJLGFBQWEsS0FBSyxNQUFPLFlBQVUsVUFBVSxNQUFNLENBQXRDLEdBQ2Y7QUFFRixVQUFJLGFBQWEsR0FBRztBQUNsQixtQkFBVyxPQUFPO0FBQ2xCLHFCQUFhLGdCQUFnQixRQUFEO01BQzdCLFdBQVUsYUFBYSxnQkFBZ0IsSUFBRCxHQUFRO0FBQzdDLG1CQUFXLE9BQU87QUFDbEIscUJBQWE7TUFDZCxPQUFNO0FBQ0wsbUJBQVc7TUFDWjtBQUVELGFBQUEsU0FBQTtRQUFTO1FBQVU7UUFBWTtNQUEvQixHQUEyQyxXQUFXLE9BQUQsQ0FBckQ7SUFDRDtBQUVNLDZCQUF5QixVQUFVO0FBQ3hDLFVBQVEsV0FBa0MsU0FBbEMsVUFBVSxhQUF3QixTQUF4QixZQUFZLFVBQVksU0FBWixTQUM1QixnQkFBZ0IsVUFBVSxVQUFVLEdBQUcsQ0FBZCxHQUN6QixhQUFhLFdBQVcsUUFBRDtBQUV6QixVQUFJLFdBQVUsYUFBYSxJQUFJLFVBQVUsZ0JBQWdCLEdBQ3ZEO0FBRUYsVUFBSSxXQUFVLEdBQUc7QUFDZixlQUFPLFdBQVc7QUFDbEIsb0JBQVcsV0FBVyxJQUFEO01BQ3RCLFdBQVUsV0FBVSxZQUFZO0FBQy9CLGVBQU8sV0FBVztBQUNsQixvQkFBVyxXQUFXLFFBQUQ7TUFDdEIsT0FBTTtBQUNMLGVBQU87TUFDUjtBQUVELFVBQUEsb0JBQXVCLGlCQUFpQixNQUFNLFFBQVAsR0FBL0IsUUFBUixrQkFBUSxPQUFPLE1BQWYsa0JBQWU7QUFDZixhQUFBLFNBQUE7UUFBUztRQUFNO1FBQU87TUFBdEIsR0FBOEIsV0FBVyxRQUFELENBQXhDO0lBQ0Q7QUFFTSxnQ0FBNEIsVUFBVTtBQUMzQyxVQUFRLE9BQXFCLFNBQXJCLE1BQU0sUUFBZSxTQUFmLE9BQU8sTUFBUSxTQUFSO0FBQ3JCLFVBQU0sV0FBVSxlQUFlLE1BQU0sT0FBTyxHQUFkO0FBQzlCLGFBQUEsU0FBQTtRQUFTO1FBQU0sU0FBQTtNQUFmLEdBQTJCLFdBQVcsUUFBRCxDQUFyQztJQUNEO0FBRU0sZ0NBQTRCLGFBQWE7QUFDOUMsVUFBUSxPQUFrQixZQUFsQixNQUFNLFdBQVksWUFBWjtBQUNkLFVBQUEscUJBQXVCLGlCQUFpQixNQUFNLFFBQVAsR0FBL0IsUUFBUixtQkFBUSxPQUFPLE1BQWYsbUJBQWU7QUFDZixhQUFBLFNBQUE7UUFBUztRQUFNO1FBQU87TUFBdEIsR0FBOEIsV0FBVyxXQUFELENBQXhDO0lBQ0Q7QUFFTSxnQ0FBNEIsS0FBSztBQUN0QyxVQUFNLFlBQVksVUFBVSxJQUFJLFFBQUwsR0FDekIsWUFBWSxlQUFlLElBQUksWUFBWSxHQUFHLGdCQUFnQixJQUFJLFFBQUwsQ0FBbkMsR0FDMUIsZUFBZSxlQUFlLElBQUksU0FBUyxHQUFHLENBQWpCO0FBRS9CLFVBQUksQ0FBQyxXQUFXO0FBQ2QsZUFBTyxlQUFlLFlBQVksSUFBSSxRQUFqQjtNQUN0QixXQUFVLENBQUMsV0FBVztBQUNyQixlQUFPLGVBQWUsUUFBUSxJQUFJLElBQWI7TUFDdEIsV0FBVSxDQUFDLGNBQWM7QUFDeEIsZUFBTyxlQUFlLFdBQVcsSUFBSSxPQUFoQjtNQUN0QjtBQUFNLGVBQU87SUFDZjtBQUVNLG1DQUErQixLQUFLO0FBQ3pDLFVBQU0sWUFBWSxVQUFVLElBQUksSUFBTCxHQUN6QixlQUFlLGVBQWUsSUFBSSxTQUFTLEdBQUcsV0FBVyxJQUFJLElBQUwsQ0FBM0I7QUFFL0IsVUFBSSxDQUFDLFdBQVc7QUFDZCxlQUFPLGVBQWUsUUFBUSxJQUFJLElBQWI7TUFDdEIsV0FBVSxDQUFDLGNBQWM7QUFDeEIsZUFBTyxlQUFlLFdBQVcsSUFBSSxPQUFoQjtNQUN0QjtBQUFNLGVBQU87SUFDZjtBQUVNLHFDQUFpQyxLQUFLO0FBQzNDLFVBQU0sWUFBWSxVQUFVLElBQUksSUFBTCxHQUN6QixhQUFhLGVBQWUsSUFBSSxPQUFPLEdBQUcsRUFBZixHQUMzQixXQUFXLGVBQWUsSUFBSSxLQUFLLEdBQUcsWUFBWSxJQUFJLE1BQU0sSUFBSSxLQUFmLENBQXhCO0FBRTNCLFVBQUksQ0FBQyxXQUFXO0FBQ2QsZUFBTyxlQUFlLFFBQVEsSUFBSSxJQUFiO01BQ3RCLFdBQVUsQ0FBQyxZQUFZO0FBQ3RCLGVBQU8sZUFBZSxTQUFTLElBQUksS0FBZDtNQUN0QixXQUFVLENBQUMsVUFBVTtBQUNwQixlQUFPLGVBQWUsT0FBTyxJQUFJLEdBQVo7TUFDdEI7QUFBTSxlQUFPO0lBQ2Y7QUFFTSxnQ0FBNEIsS0FBSztBQUN0QyxVQUFRLE9BQXNDLElBQXRDLE1BQU0sU0FBZ0MsSUFBaEMsUUFBUSxTQUF3QixJQUF4QixRQUFRLGNBQWdCLElBQWhCO0FBQzlCLFVBQU0sWUFDRixlQUFlLE1BQU0sR0FBRyxFQUFWLEtBQ2IsU0FBUyxNQUFNLFdBQVcsS0FBSyxXQUFXLEtBQUssZ0JBQWdCLEdBQ2xFLGNBQWMsZUFBZSxRQUFRLEdBQUcsRUFBWixHQUM1QixjQUFjLGVBQWUsUUFBUSxHQUFHLEVBQVosR0FDNUIsbUJBQW1CLGVBQWUsYUFBYSxHQUFHLEdBQWpCO0FBRW5DLFVBQUksQ0FBQyxXQUFXO0FBQ2QsZUFBTyxlQUFlLFFBQVEsSUFBVDtNQUN0QixXQUFVLENBQUMsYUFBYTtBQUN2QixlQUFPLGVBQWUsVUFBVSxNQUFYO01BQ3RCLFdBQVUsQ0FBQyxhQUFhO0FBQ3ZCLGVBQU8sZUFBZSxVQUFVLE1BQVg7TUFDdEIsV0FBVSxDQUFDLGtCQUFrQjtBQUM1QixlQUFPLGVBQWUsZUFBZSxXQUFoQjtNQUN0QjtBQUFNLGVBQU87SUFDZjtBQzVHRCxRQUFNLFVBQVU7QUFDaEIsUUFBTSxXQUFXO0FBRWpCLDZCQUF5QixNQUFNO0FBQzdCLGFBQU8sSUFBSSxRQUFRLG9CQUFaLGVBQTZDLEtBQUssT0FBbEQsb0JBQUE7SUFDUjtBQUdELG9DQUFnQyxJQUFJO0FBQ2xDLFVBQUksR0FBRyxhQUFhLE1BQU07QUFDeEIsV0FBRyxXQUFXLGdCQUFnQixHQUFHLENBQUo7TUFDOUI7QUFDRCxhQUFPLEdBQUc7SUFDWDtBQUlELG1CQUFlLE1BQU0sTUFBTTtBQUN6QixVQUFNLFVBQVU7UUFDZCxJQUFJLEtBQUs7UUFDVCxNQUFNLEtBQUs7UUFDWCxHQUFHLEtBQUs7UUFDUixHQUFHLEtBQUs7UUFDUixLQUFLLEtBQUs7UUFDVixTQUFTLEtBQUs7TUFOQTtBQVFoQixhQUFPLElBQUksVUFBSixTQUFBLENBQUEsR0FBa0IsU0FBWSxNQUE5QjtRQUFvQyxLQUFLO01BQXpDLENBQUEsQ0FBQTtJQUNSO0FBSUQsdUJBQW1CLFNBQVMsR0FBRyxJQUFJO0FBRWpDLFVBQUksV0FBVyxVQUFVLElBQUksS0FBSztBQUdsQyxVQUFNLEtBQUssR0FBRyxPQUFPLFFBQVY7QUFHWCxVQUFJLE1BQU0sSUFBSTtBQUNaLGVBQU8sQ0FBQyxVQUFVLENBQVg7TUFDUjtBQUdELGtCQUFhLE1BQUssS0FBSyxLQUFLO0FBRzVCLFVBQU0sS0FBSyxHQUFHLE9BQU8sUUFBVjtBQUNYLFVBQUksT0FBTyxJQUFJO0FBQ2IsZUFBTyxDQUFDLFVBQVUsRUFBWDtNQUNSO0FBR0QsYUFBTyxDQUFDLFVBQVUsS0FBSyxJQUFJLElBQUksRUFBYixJQUFtQixLQUFLLEtBQU0sS0FBSyxJQUFJLElBQUksRUFBYixDQUF6QztJQUNSO0FBR0QscUJBQWlCLElBQUksU0FBUTtBQUMzQixZQUFNLFVBQVMsS0FBSztBQUVwQixVQUFNLElBQUksSUFBSSxLQUFLLEVBQVQ7QUFFVixhQUFPO1FBQ0wsTUFBTSxFQUFFLGVBQUY7UUFDTixPQUFPLEVBQUUsWUFBRixJQUFrQjtRQUN6QixLQUFLLEVBQUUsV0FBRjtRQUNMLE1BQU0sRUFBRSxZQUFGO1FBQ04sUUFBUSxFQUFFLGNBQUY7UUFDUixRQUFRLEVBQUUsY0FBRjtRQUNSLGFBQWEsRUFBRSxtQkFBRjtNQVBSO0lBU1I7QUFHRCxxQkFBaUIsS0FBSyxTQUFRLE1BQU07QUFDbEMsYUFBTyxVQUFVLGFBQWEsR0FBRCxHQUFPLFNBQVEsSUFBNUI7SUFDakI7QUFHRCx3QkFBb0IsTUFBTSxLQUFLO0FBQzdCLFVBQU0sT0FBTyxLQUFLLEdBQ2hCLE9BQU8sS0FBSyxFQUFFLE9BQU8sS0FBSyxNQUFNLElBQUksS0FBZixHQUNyQixRQUFRLEtBQUssRUFBRSxRQUFRLEtBQUssTUFBTSxJQUFJLE1BQWYsSUFBeUIsS0FBSyxNQUFNLElBQUksUUFBZixJQUEyQixHQUMzRSxLQUFDLFNBQUEsQ0FBQSxHQUNJLEtBQUssR0FEVDtRQUVDO1FBQ0E7UUFDQSxLQUNFLEtBQUssSUFBSSxLQUFLLEVBQUUsS0FBSyxZQUFZLE1BQU0sS0FBUCxDQUFoQyxJQUNBLEtBQUssTUFBTSxJQUFJLElBQWYsSUFDQSxLQUFLLE1BQU0sSUFBSSxLQUFmLElBQXdCO01BUDNCLENBQUEsR0FTRCxjQUFjLFNBQVMsV0FBVztRQUNoQyxPQUFPLElBQUksUUFBUSxLQUFLLE1BQU0sSUFBSSxLQUFmO1FBQ25CLFVBQVUsSUFBSSxXQUFXLEtBQUssTUFBTSxJQUFJLFFBQWY7UUFDekIsUUFBUSxJQUFJLFNBQVMsS0FBSyxNQUFNLElBQUksTUFBZjtRQUNyQixPQUFPLElBQUksUUFBUSxLQUFLLE1BQU0sSUFBSSxLQUFmO1FBQ25CLE1BQU0sSUFBSSxPQUFPLEtBQUssTUFBTSxJQUFJLElBQWY7UUFDakIsT0FBTyxJQUFJO1FBQ1gsU0FBUyxJQUFJO1FBQ2IsU0FBUyxJQUFJO1FBQ2IsY0FBYyxJQUFJO01BVGMsQ0FBcEIsRUFVWCxHQUFHLGNBVlEsR0FXZCxVQUFVLGFBQWEsRUFBRDtBQUV4QixVQUFBLGFBQWMsVUFBVSxTQUFTLE1BQU0sS0FBSyxJQUFyQixHQUFsQixLQUFMLFdBQUEsSUFBUyxJQUFULFdBQUE7QUFFQSxVQUFJLGdCQUFnQixHQUFHO0FBQ3JCLGNBQU07QUFFTixZQUFJLEtBQUssS0FBSyxPQUFPLEVBQWpCO01BQ0w7QUFFRCxhQUFPO1FBQUU7UUFBSTtNQUFOO0lBQ1I7QUFJRCxpQ0FBNkIsUUFBUSxZQUFZLE1BQU0sU0FBUSxPQUFNLGdCQUFnQjtBQUNuRixVQUFRLFVBQWtCLEtBQWxCLFNBQVMsT0FBUyxLQUFUO0FBQ2pCLFVBQUksVUFBVSxPQUFPLEtBQUssTUFBWixFQUFvQixXQUFXLEdBQUc7QUFDOUMsWUFBTSxxQkFBcUIsY0FBYyxNQUN2QyxPQUFPLFVBQVMsV0FBVyxRQUFwQixTQUFBLENBQUEsR0FDRixNQURFO1VBRUwsTUFBTTtVQUNOO1FBSEssQ0FBQSxDQUFBO0FBS1QsZUFBTyxVQUFVLE9BQU8sS0FBSyxRQUFRLElBQWI7TUFDekIsT0FBTTtBQUNMLGVBQU8sVUFBUyxRQUNkLElBQUksUUFBUSxjQUFaLGdCQUF3QyxRQUF4QywwQkFBb0UsT0FBcEUsQ0FESztNQUdSO0lBQ0Y7QUFJRCwwQkFBc0IsSUFBSSxTQUFRLFFBQWU7QUFBQSxVQUFmLFdBQWUsUUFBQTtBQUFmLGlCQUFTO01BQU07QUFDL0MsYUFBTyxHQUFHLFVBQ04sVUFBVSxPQUFPLE9BQU8sT0FBTyxPQUFkLEdBQXdCO1FBQ3ZDO1FBQ0EsYUFBYTtNQUYwQixDQUF6QyxFQUdHLHlCQUF5QixJQUFJLE9BSGhDLElBSUE7SUFDTDtBQUVELHdCQUFtQixHQUFHLFVBQVU7QUFDOUIsVUFBTSxhQUFhLEVBQUUsRUFBRSxPQUFPLFFBQVEsRUFBRSxFQUFFLE9BQU87QUFDakQsVUFBSSxLQUFJO0FBQ1IsVUFBSSxjQUFjLEVBQUUsRUFBRSxRQUFRO0FBQUcsY0FBSztBQUN0QyxZQUFLLFNBQVMsRUFBRSxFQUFFLE1BQU0sYUFBYSxJQUFJLENBQTVCO0FBRWIsVUFBSSxVQUFVO0FBQ1osY0FBSztBQUNMLGNBQUssU0FBUyxFQUFFLEVBQUUsS0FBTDtBQUNiLGNBQUs7QUFDTCxjQUFLLFNBQVMsRUFBRSxFQUFFLEdBQUw7TUFDZCxPQUFNO0FBQ0wsY0FBSyxTQUFTLEVBQUUsRUFBRSxLQUFMO0FBQ2IsY0FBSyxTQUFTLEVBQUUsRUFBRSxHQUFMO01BQ2Q7QUFDRCxhQUFPO0lBQ1I7QUFFRCx3QkFBbUIsR0FBRyxVQUFVLGlCQUFpQixzQkFBc0IsZUFBZTtBQUNwRixVQUFJLEtBQUksU0FBUyxFQUFFLEVBQUUsSUFBTDtBQUNoQixVQUFJLFVBQVU7QUFDWixjQUFLO0FBQ0wsY0FBSyxTQUFTLEVBQUUsRUFBRSxNQUFMO0FBQ2IsWUFBSSxFQUFFLEVBQUUsV0FBVyxLQUFLLENBQUMsaUJBQWlCO0FBQ3hDLGdCQUFLO1FBQ047TUFDRixPQUFNO0FBQ0wsY0FBSyxTQUFTLEVBQUUsRUFBRSxNQUFMO01BQ2Q7QUFFRCxVQUFJLEVBQUUsRUFBRSxXQUFXLEtBQUssQ0FBQyxpQkFBaUI7QUFDeEMsY0FBSyxTQUFTLEVBQUUsRUFBRSxNQUFMO0FBRWIsWUFBSSxFQUFFLEVBQUUsZ0JBQWdCLEtBQUssQ0FBQyxzQkFBc0I7QUFDbEQsZ0JBQUs7QUFDTCxnQkFBSyxTQUFTLEVBQUUsRUFBRSxhQUFhLENBQWxCO1FBQ2Q7TUFDRjtBQUVELFVBQUksZUFBZTtBQUNqQixZQUFJLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxHQUFHO0FBQ3JDLGdCQUFLO1FBQ04sV0FBVSxFQUFFLElBQUksR0FBRztBQUNsQixnQkFBSztBQUNMLGdCQUFLLFNBQVMsS0FBSyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQWxCLENBQUQ7QUFDYixnQkFBSztBQUNMLGdCQUFLLFNBQVMsS0FBSyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQWxCLENBQUQ7UUFDZCxPQUFNO0FBQ0wsZ0JBQUs7QUFDTCxnQkFBSyxTQUFTLEtBQUssTUFBTSxFQUFFLElBQUksRUFBakIsQ0FBRDtBQUNiLGdCQUFLO0FBQ0wsZ0JBQUssU0FBUyxLQUFLLE1BQU0sRUFBRSxJQUFJLEVBQWpCLENBQUQ7UUFDZDtNQUNGO0FBQ0QsYUFBTztJQUNSO0FBR0QsUUFBTSxvQkFBb0I7TUFDdEIsT0FBTztNQUNQLEtBQUs7TUFDTCxNQUFNO01BQ04sUUFBUTtNQUNSLFFBQVE7TUFDUixhQUFhO0lBTlM7QUFBMUIsUUFRRSx3QkFBd0I7TUFDdEIsWUFBWTtNQUNaLFNBQVM7TUFDVCxNQUFNO01BQ04sUUFBUTtNQUNSLFFBQVE7TUFDUixhQUFhO0lBTlM7QUFSMUIsUUFnQkUsMkJBQTJCO01BQ3pCLFNBQVM7TUFDVCxNQUFNO01BQ04sUUFBUTtNQUNSLFFBQVE7TUFDUixhQUFhO0lBTFk7QUFTN0IsUUFBTSxlQUFlLENBQUMsUUFBUSxTQUFTLE9BQU8sUUFBUSxVQUFVLFVBQVUsYUFBckQ7QUFBckIsUUFDRSxtQkFBbUIsQ0FDakIsWUFDQSxjQUNBLFdBQ0EsUUFDQSxVQUNBLFVBQ0EsYUFQaUI7QUFEckIsUUFVRSxzQkFBc0IsQ0FBQyxRQUFRLFdBQVcsUUFBUSxVQUFVLFVBQVUsYUFBaEQ7QUFHeEIsMkJBQXVCLE9BQU07QUFDM0IsVUFBTSxhQUFhO1FBQ2pCLE1BQU07UUFDTixPQUFPO1FBQ1AsT0FBTztRQUNQLFFBQVE7UUFDUixLQUFLO1FBQ0wsTUFBTTtRQUNOLE1BQU07UUFDTixPQUFPO1FBQ1AsUUFBUTtRQUNSLFNBQVM7UUFDVCxTQUFTO1FBQ1QsVUFBVTtRQUNWLFFBQVE7UUFDUixTQUFTO1FBQ1QsYUFBYTtRQUNiLGNBQWM7UUFDZCxTQUFTO1FBQ1QsVUFBVTtRQUNWLFlBQVk7UUFDWixhQUFhO1FBQ2IsYUFBYTtRQUNiLFVBQVU7UUFDVixXQUFXO1FBQ1gsU0FBUztNQXhCUSxFQXlCakIsTUFBSyxZQUFMO0FBRUYsVUFBSSxDQUFDO0FBQVksY0FBTSxJQUFJLGlCQUFpQixLQUFyQjtBQUV2QixhQUFPO0lBQ1I7QUFTRCxxQkFBaUIsS0FBSyxNQUFNO0FBQzFCLFVBQU0sT0FBTyxjQUFjLEtBQUssTUFBTSxTQUFTLFdBQXJCLEdBQ3hCLE1BQU0sT0FBTyxXQUFXLElBQWxCLEdBQ04sUUFBUSxTQUFTLElBQVQ7QUFFVixVQUFJLElBQUk7QUFHUixVQUFJLENBQUMsWUFBWSxJQUFJLElBQUwsR0FBWTtBQUMxQixpQkFBQSxZQUFBLGdDQUFnQixZQUFoQixHQUFBLE9BQUEsQ0FBQSxTQUFBLFVBQUEsR0FBQSxRQUE4QjtBQUFBLGNBQW5CLElBQW1CLE1BQUE7QUFDNUIsY0FBSSxZQUFZLElBQUksRUFBTCxHQUFVO0FBQ3ZCLGdCQUFJLEtBQUssa0JBQWtCO1VBQzVCO1FBQ0Y7QUFFRCxZQUFNLFVBQVUsd0JBQXdCLEdBQUQsS0FBUyxtQkFBbUIsR0FBRDtBQUNsRSxZQUFJLFNBQVM7QUFDWCxpQkFBTyxVQUFTLFFBQVEsT0FBakI7UUFDUjtBQUVELFlBQU0sZUFBZSxLQUFLLE9BQU8sS0FBWjtBQVpLLFlBQUEsV0FhaEIsUUFBUSxLQUFLLGNBQWMsSUFBcEI7QUFBaEIsYUFieUIsU0FBQTtBQWFyQixZQWJxQixTQUFBO01BYzNCLE9BQU07QUFDTCxhQUFLO01BQ047QUFFRCxhQUFPLElBQUksVUFBUztRQUFFO1FBQUk7UUFBTTtRQUFLO01BQWpCLENBQWI7SUFDUjtBQUVELDBCQUFzQixRQUFPLEtBQUssTUFBTTtBQUN0QyxVQUFNLFFBQVEsWUFBWSxLQUFLLEtBQU4sSUFBZSxPQUFPLEtBQUssT0FDbEQsVUFBUyxpQkFBQyxJQUFHLE9BQVM7QUFDcEIsYUFBSSxRQUFRLElBQUcsU0FBUyxLQUFLLFlBQVksSUFBSSxHQUFHLElBQXJDO0FBQ1gsWUFBTSxZQUFZLElBQUksSUFBSSxNQUFNLElBQWQsRUFBb0IsYUFBYSxJQUFqQztBQUNsQixlQUFPLFVBQVUsT0FBTyxJQUFHLEtBQXBCO01BQ1IsR0FDRCxTQUFTLGlCQUFDLE9BQVM7QUFDakIsWUFBSSxLQUFLLFdBQVc7QUFDbEIsY0FBSSxDQUFDLElBQUksUUFBUSxRQUFPLEtBQW5CLEdBQTBCO0FBQzdCLG1CQUFPLElBQUksUUFBUSxLQUFaLEVBQWtCLEtBQUssT0FBTSxRQUFRLEtBQWQsR0FBcUIsS0FBNUMsRUFBa0QsSUFBSSxLQUF0RDtVQUNSO0FBQU0sbUJBQU87UUFDZixPQUFNO0FBQ0wsaUJBQU8sSUFBSSxLQUFLLFFBQU8sS0FBaEIsRUFBc0IsSUFBSSxLQUExQjtRQUNSO01BQ0Y7QUFFSCxVQUFJLEtBQUssTUFBTTtBQUNiLGVBQU8sUUFBTyxPQUFPLEtBQUssSUFBTixHQUFhLEtBQUssSUFBekI7TUFDZDtBQUVELGVBQUEsYUFBQSxnQ0FBbUIsS0FBSyxLQUF4QixHQUFBLFFBQUEsQ0FBQSxVQUFBLFdBQUEsR0FBQSxRQUErQjtBQUFBLFlBQXBCLFFBQW9CLE9BQUE7QUFDN0IsWUFBTSxTQUFRLE9BQU8sS0FBRDtBQUNwQixZQUFJLEtBQUssSUFBSSxNQUFULEtBQW1CLEdBQUc7QUFDeEIsaUJBQU8sUUFBTyxRQUFPLEtBQVI7UUFDZDtNQUNGO0FBQ0QsYUFBTyxRQUFPLFNBQVEsTUFBTSxLQUFLLEdBQUcsS0FBSyxNQUFNLEtBQUssTUFBTSxTQUFTLEVBQXREO0lBQ2Q7QUFFRCxzQkFBa0IsU0FBUztBQUN6QixVQUFJLE9BQU8sQ0FBQSxHQUNUO0FBQ0YsVUFBSSxRQUFRLFNBQVMsS0FBSyxPQUFPLFFBQVEsUUFBUSxTQUFTLE9BQU8sVUFBVTtBQUN6RSxlQUFPLFFBQVEsUUFBUSxTQUFTO0FBQ2hDLGVBQU8sTUFBTSxLQUFLLE9BQVgsRUFBb0IsTUFBTSxHQUFHLFFBQVEsU0FBUyxDQUE5QztNQUNSLE9BQU07QUFDTCxlQUFPLE1BQU0sS0FBSyxPQUFYO01BQ1I7QUFDRCxhQUFPLENBQUMsTUFBTSxJQUFQO0lBQ1I7UUFzQm9CLFlBQUEsMkJBQUE7QUFJbkIseUJBQVksUUFBUTtBQUNsQixZQUFNLE9BQU8sT0FBTyxRQUFRLFNBQVM7QUFFckMsWUFBSSxVQUNGLE9BQU8sV0FDTixRQUFPLE1BQU0sT0FBTyxFQUFwQixJQUEwQixJQUFJLFFBQVEsZUFBWixJQUErQixTQUN6RCxFQUFDLEtBQUssVUFBVSxnQkFBZ0IsSUFBRCxJQUFTO0FBSTNDLGFBQUssS0FBSyxZQUFZLE9BQU8sRUFBUixJQUFjLFNBQVMsSUFBVCxJQUFpQixPQUFPO0FBRTNELFlBQUksS0FBSSxNQUNOLElBQUk7QUFDTixZQUFJLENBQUMsU0FBUztBQUNaLGNBQU0sWUFBWSxPQUFPLE9BQU8sT0FBTyxJQUFJLE9BQU8sS0FBSyxNQUFNLE9BQU8sSUFBSSxLQUFLLE9BQU8sSUFBdkI7QUFFN0QsY0FBSSxXQUFXO0FBQUEsZ0JBQUEsT0FDSixDQUFDLE9BQU8sSUFBSSxHQUFHLE9BQU8sSUFBSSxDQUExQjtBQUFSLGlCQURZLEtBQUE7QUFDVCxnQkFEUyxLQUFBO1VBRWQsT0FBTTtBQUNMLGdCQUFNLEtBQUssS0FBSyxPQUFPLEtBQUssRUFBakI7QUFDWCxpQkFBSSxRQUFRLEtBQUssSUFBSSxFQUFWO0FBQ1gsc0JBQVUsT0FBTyxNQUFNLEdBQUUsSUFBZixJQUF1QixJQUFJLFFBQVEsZUFBWixJQUErQjtBQUNoRSxpQkFBSSxVQUFVLE9BQU87QUFDckIsZ0JBQUksVUFBVSxPQUFPO1VBQ3RCO1FBQ0Y7QUFLRCxhQUFLLFFBQVE7QUFJYixhQUFLLE1BQU0sT0FBTyxPQUFPLE9BQU8sT0FBUDtBQUl6QixhQUFLLFVBQVU7QUFJZixhQUFLLFdBQVc7QUFJaEIsYUFBSyxJQUFJO0FBSVQsYUFBSyxJQUFJO0FBSVQsYUFBSyxrQkFBa0I7TUFDeEI7Z0JBV00sTUFBUCxnQkFBYTtBQUNYLGVBQU8sSUFBSSxVQUFTLENBQUEsQ0FBYjtNQUNSO2dCQXVCTSxRQUFQLGlCQUFlO0FBQ2IsWUFBQSxZQUFxQixTQUFTLFNBQUQsR0FBdEIsT0FBUCxVQUFBLElBQWEsT0FBYixVQUFBLElBQ0csT0FBdUQsS0FEMUQsSUFDUyxRQUFpRCxLQUQxRCxJQUNnQixNQUEwQyxLQUQxRCxJQUNxQixPQUFxQyxLQUQxRCxJQUMyQixTQUErQixLQUQxRCxJQUNtQyxTQUF1QixLQUQxRCxJQUMyQyxjQUFlLEtBRDFEO0FBRUEsZUFBTyxRQUFRO1VBQUU7VUFBTTtVQUFPO1VBQUs7VUFBTTtVQUFRO1VBQVE7UUFBMUMsR0FBeUQsSUFBMUQ7TUFDZjtnQkEwQk0sTUFBUCxlQUFhO0FBQ1gsWUFBQSxhQUFxQixTQUFTLFNBQUQsR0FBdEIsT0FBUCxXQUFBLElBQWEsT0FBYixXQUFBLElBQ0csT0FBdUQsS0FEMUQsSUFDUyxRQUFpRCxLQUQxRCxJQUNnQixNQUEwQyxLQUQxRCxJQUNxQixPQUFxQyxLQUQxRCxJQUMyQixTQUErQixLQUQxRCxJQUNtQyxTQUF1QixLQUQxRCxJQUMyQyxjQUFlLEtBRDFEO0FBR0EsYUFBSyxPQUFPLGdCQUFnQjtBQUM1QixlQUFPLFFBQVE7VUFBRTtVQUFNO1VBQU87VUFBSztVQUFNO1VBQVE7VUFBUTtRQUExQyxHQUF5RCxJQUExRDtNQUNmO2dCQVNNLGFBQVAsb0JBQWtCLE1BQU0sU0FBYztBQUFBLFlBQWQsWUFBYyxRQUFBO0FBQWQsb0JBQVUsQ0FBQTtRQUFJO0FBQ3BDLFlBQU0sS0FBSyxPQUFPLElBQUQsSUFBUyxLQUFLLFFBQUwsSUFBaUI7QUFDM0MsWUFBSSxPQUFPLE1BQU0sRUFBYixHQUFrQjtBQUNwQixpQkFBTyxVQUFTLFFBQVEsZUFBakI7UUFDUjtBQUVELFlBQU0sWUFBWSxjQUFjLFFBQVEsTUFBTSxTQUFTLFdBQXhCO0FBQy9CLFlBQUksQ0FBQyxVQUFVLFNBQVM7QUFDdEIsaUJBQU8sVUFBUyxRQUFRLGdCQUFnQixTQUFELENBQWhDO1FBQ1I7QUFFRCxlQUFPLElBQUksVUFBUztVQUNsQjtVQUNBLE1BQU07VUFDTixLQUFLLE9BQU8sV0FBVyxPQUFsQjtRQUhhLENBQWI7TUFLUjtnQkFZTSxhQUFQLG9CQUFrQixjQUFjLFNBQWM7QUFBQSxZQUFkLFlBQWMsUUFBQTtBQUFkLG9CQUFVLENBQUE7UUFBSTtBQUM1QyxZQUFJLENBQUMsU0FBUyxZQUFELEdBQWdCO0FBQzNCLGdCQUFNLElBQUkscUJBQUosMkRBQ3FELE9BQU8sZUFENUQsaUJBQ3VGLFlBRHZGO1FBR1AsV0FBVSxlQUFlLENBQUMsWUFBWSxlQUFlLFVBQVU7QUFFOUQsaUJBQU8sVUFBUyxRQUFRLHdCQUFqQjtRQUNSLE9BQU07QUFDTCxpQkFBTyxJQUFJLFVBQVM7WUFDbEIsSUFBSTtZQUNKLE1BQU0sY0FBYyxRQUFRLE1BQU0sU0FBUyxXQUF4QjtZQUNuQixLQUFLLE9BQU8sV0FBVyxPQUFsQjtVQUhhLENBQWI7UUFLUjtNQUNGO2dCQVlNLGNBQVAscUJBQW1CLFNBQVMsU0FBYztBQUFBLFlBQWQsWUFBYyxRQUFBO0FBQWQsb0JBQVUsQ0FBQTtRQUFJO0FBQ3hDLFlBQUksQ0FBQyxTQUFTLE9BQUQsR0FBVztBQUN0QixnQkFBTSxJQUFJLHFCQUFxQix3Q0FBekI7UUFDUCxPQUFNO0FBQ0wsaUJBQU8sSUFBSSxVQUFTO1lBQ2xCLElBQUksVUFBVTtZQUNkLE1BQU0sY0FBYyxRQUFRLE1BQU0sU0FBUyxXQUF4QjtZQUNuQixLQUFLLE9BQU8sV0FBVyxPQUFsQjtVQUhhLENBQWI7UUFLUjtNQUNGO2dCQThCTSxhQUFQLG9CQUFrQixLQUFLLE1BQVc7QUFBQSxZQUFYLFNBQVcsUUFBQTtBQUFYLGlCQUFPLENBQUE7UUFBSTtBQUNoQyxjQUFNLE9BQU8sQ0FBQTtBQUNiLFlBQU0sWUFBWSxjQUFjLEtBQUssTUFBTSxTQUFTLFdBQXJCO0FBQy9CLFlBQUksQ0FBQyxVQUFVLFNBQVM7QUFDdEIsaUJBQU8sVUFBUyxRQUFRLGdCQUFnQixTQUFELENBQWhDO1FBQ1I7QUFFRCxZQUFNLFFBQVEsU0FBUyxJQUFULEdBQ1osZUFBZSxDQUFDLFlBQVksS0FBSyxjQUFOLElBQ3ZCLEtBQUssaUJBQ0wsVUFBVSxPQUFPLEtBQWpCLEdBQ0osYUFBYSxnQkFBZ0IsS0FBSyxhQUFOLEdBQzVCLGtCQUFrQixDQUFDLFlBQVksV0FBVyxPQUFaLEdBQzlCLHFCQUFxQixDQUFDLFlBQVksV0FBVyxJQUFaLEdBQ2pDLG1CQUFtQixDQUFDLFlBQVksV0FBVyxLQUFaLEtBQXNCLENBQUMsWUFBWSxXQUFXLEdBQVosR0FDakUsaUJBQWlCLHNCQUFzQixrQkFDdkMsa0JBQWtCLFdBQVcsWUFBWSxXQUFXLFlBQ3BELE1BQU0sT0FBTyxXQUFXLElBQWxCO0FBUVIsWUFBSyxtQkFBa0Isb0JBQW9CLGlCQUFpQjtBQUMxRCxnQkFBTSxJQUFJLDhCQUNSLHFFQURJO1FBR1A7QUFFRCxZQUFJLG9CQUFvQixpQkFBaUI7QUFDdkMsZ0JBQU0sSUFBSSw4QkFBOEIsd0NBQWxDO1FBQ1A7QUFFRCxZQUFNLGNBQWMsbUJBQW9CLFdBQVcsV0FBVyxDQUFDO0FBRy9ELFlBQUksT0FDRixlQUNBLFNBQVMsUUFBUSxPQUFPLFlBQVI7QUFDbEIsWUFBSSxhQUFhO0FBQ2Ysa0JBQVE7QUFDUiwwQkFBZ0I7QUFDaEIsbUJBQVMsZ0JBQWdCLE1BQUQ7UUFDekIsV0FBVSxpQkFBaUI7QUFDMUIsa0JBQVE7QUFDUiwwQkFBZ0I7QUFDaEIsbUJBQVMsbUJBQW1CLE1BQUQ7UUFDNUIsT0FBTTtBQUNMLGtCQUFRO0FBQ1IsMEJBQWdCO1FBQ2pCO0FBR0QsWUFBSSxhQUFhO0FBQ2pCLGlCQUFBLGFBQUEsZ0NBQWdCLEtBQWhCLEdBQUEsUUFBQSxDQUFBLFVBQUEsV0FBQSxHQUFBLFFBQXVCO0FBQUEsY0FBWixJQUFZLE9BQUE7QUFDckIsY0FBTSxJQUFJLFdBQVc7QUFDckIsY0FBSSxDQUFDLFlBQVksQ0FBRCxHQUFLO0FBQ25CLHlCQUFhO1VBQ2QsV0FBVSxZQUFZO0FBQ3JCLHVCQUFXLEtBQUssY0FBYztVQUMvQixPQUFNO0FBQ0wsdUJBQVcsS0FBSyxPQUFPO1VBQ3hCO1FBQ0Y7QUFHRCxZQUFNLHFCQUFxQixjQUNyQixtQkFBbUIsVUFBRCxJQUNsQixrQkFDQSxzQkFBc0IsVUFBRCxJQUNyQix3QkFBd0IsVUFBRCxHQUMzQixVQUFVLHNCQUFzQixtQkFBbUIsVUFBRDtBQUVwRCxZQUFJLFNBQVM7QUFDWCxpQkFBTyxVQUFTLFFBQVEsT0FBakI7UUFDUjtBQUdLLFlBQUEsWUFBWSxjQUNaLGdCQUFnQixVQUFELElBQ2Ysa0JBQ0EsbUJBQW1CLFVBQUQsSUFDbEIsWUFKQSxZQUtxQixRQUFRLFdBQVcsY0FBYyxTQUExQixHQUEvQixVQUxHLFVBQUEsSUFLTSxjQUxOLFVBQUEsSUFNSixPQUFPLElBQUksVUFBUztVQUNsQixJQUFJO1VBQ0osTUFBTTtVQUNOLEdBQUc7VUFDSDtRQUprQixDQUFiO0FBUVQsWUFBSSxXQUFXLFdBQVcsa0JBQWtCLElBQUksWUFBWSxLQUFLLFNBQVM7QUFDeEUsaUJBQU8sVUFBUyxRQUNkLHNCQURLLHlDQUVrQyxXQUFXLFVBRjdDLG9CQUVzRSxLQUFLLE1BQUwsQ0FGdEU7UUFJUjtBQUVELGVBQU87TUFDUjtnQkFrQk0sVUFBUCxpQkFBZSxPQUFNLE1BQVc7QUFBQSxZQUFYLFNBQVcsUUFBQTtBQUFYLGlCQUFPLENBQUE7UUFBSTtBQUM5QixZQUFBLGdCQUEyQixhQUFhLEtBQUQsR0FBaEMsT0FBUCxjQUFBLElBQWEsYUFBYixjQUFBO0FBQ0EsZUFBTyxvQkFBb0IsTUFBTSxZQUFZLE1BQU0sWUFBWSxLQUFyQztNQUMzQjtnQkFnQk0sY0FBUCxxQkFBbUIsT0FBTSxNQUFXO0FBQUEsWUFBWCxTQUFXLFFBQUE7QUFBWCxpQkFBTyxDQUFBO1FBQUk7QUFDbEMsWUFBQSxvQkFBMkIsaUJBQWlCLEtBQUQsR0FBcEMsT0FBUCxrQkFBQSxJQUFhLGFBQWIsa0JBQUE7QUFDQSxlQUFPLG9CQUFvQixNQUFNLFlBQVksTUFBTSxZQUFZLEtBQXJDO01BQzNCO2dCQWlCTSxXQUFQLGtCQUFnQixPQUFNLE1BQVc7QUFBQSxZQUFYLFNBQVcsUUFBQTtBQUFYLGlCQUFPLENBQUE7UUFBSTtBQUMvQixZQUFBLGlCQUEyQixjQUFjLEtBQUQsR0FBakMsT0FBUCxlQUFBLElBQWEsYUFBYixlQUFBO0FBQ0EsZUFBTyxvQkFBb0IsTUFBTSxZQUFZLE1BQU0sUUFBUSxJQUFqQztNQUMzQjtnQkFlTSxhQUFQLG9CQUFrQixPQUFNLEtBQUssTUFBVztBQUFBLFlBQVgsU0FBVyxRQUFBO0FBQVgsaUJBQU8sQ0FBQTtRQUFJO0FBQ3RDLFlBQUksWUFBWSxLQUFELEtBQVUsWUFBWSxHQUFELEdBQU87QUFDekMsZ0JBQU0sSUFBSSxxQkFBcUIsa0RBQXpCO1FBQ1A7QUFFRCxZQUFBLFFBQWtELE1BQWxELGVBQUEsTUFBUSxRQUFBLFVBQVIsaUJBQUEsU0FBaUIsT0FBakIsY0FBQSx3QkFBQSxNQUF1QixpQkFBQSxrQkFBdkIsMEJBQUEsU0FBeUMsT0FBekMsdUJBQ0UsY0FBYyxPQUFPLFNBQVM7VUFDNUIsUUFBQTtVQUNBO1VBQ0EsYUFBYTtRQUhlLENBQWhCLEdBRGhCLG1CQU1nRCxnQkFBZ0IsYUFBYSxPQUFNLEdBQXBCLEdBQTVELE9BTkgsaUJBQUEsSUFNUyxhQU5ULGlCQUFBLElBTXFCLGlCQU5yQixpQkFBQSxJQU1xQyxVQU5yQyxpQkFBQTtBQU9BLFlBQUksU0FBUztBQUNYLGlCQUFPLFVBQVMsUUFBUSxPQUFqQjtRQUNSLE9BQU07QUFDTCxpQkFBTyxvQkFBb0IsTUFBTSxZQUFZLE1BQW5CLFlBQW1DLEtBQU8sT0FBTSxjQUFoRDtRQUMzQjtNQUNGO2dCQUtNLGFBQVAsb0JBQWtCLE9BQU0sS0FBSyxNQUFXO0FBQUEsWUFBWCxTQUFXLFFBQUE7QUFBWCxpQkFBTyxDQUFBO1FBQUk7QUFDdEMsZUFBTyxVQUFTLFdBQVcsT0FBTSxLQUFLLElBQS9CO01BQ1I7Z0JBc0JNLFVBQVAsaUJBQWUsT0FBTSxNQUFXO0FBQUEsWUFBWCxTQUFXLFFBQUE7QUFBWCxpQkFBTyxDQUFBO1FBQUk7QUFDOUIsWUFBQSxZQUEyQixTQUFTLEtBQUQsR0FBNUIsT0FBUCxVQUFBLElBQWEsYUFBYixVQUFBO0FBQ0EsZUFBTyxvQkFBb0IsTUFBTSxZQUFZLE1BQU0sT0FBTyxLQUFoQztNQUMzQjtnQkFRTSxVQUFQLGlCQUFlLFFBQVEsYUFBb0I7QUFBQSxZQUFwQixnQkFBb0IsUUFBQTtBQUFwQix3QkFBYztRQUFNO0FBQ3pDLFlBQUksQ0FBQyxRQUFRO0FBQ1gsZ0JBQU0sSUFBSSxxQkFBcUIsa0RBQXpCO1FBQ1A7QUFFRCxZQUFNLFdBQVUsa0JBQWtCLFVBQVUsU0FBUyxJQUFJLFFBQVEsUUFBUSxXQUFwQjtBQUVyRCxZQUFJLFNBQVMsZ0JBQWdCO0FBQzNCLGdCQUFNLElBQUkscUJBQXFCLFFBQXpCO1FBQ1AsT0FBTTtBQUNMLGlCQUFPLElBQUksVUFBUztZQUFFLFNBQUE7VUFBRixDQUFiO1FBQ1I7TUFDRjtnQkFPTSxhQUFQLG9CQUFrQixHQUFHO0FBQ25CLGVBQVEsS0FBSyxFQUFFLG1CQUFvQjtNQUNwQzs7YUFXRCxNQUFBLGNBQUksT0FBTTtBQUNSLGVBQU8sS0FBSztNQUNiO2FBOFVELHdCQUFBLCtCQUFzQixNQUFXO0FBQUEsWUFBWCxTQUFXLFFBQUE7QUFBWCxpQkFBTyxDQUFBO1FBQUk7QUFDL0IsWUFBQSx3QkFBOEMsVUFBVSxPQUN0RCxLQUFLLElBQUksTUFBTSxJQUFmLEdBQ0EsSUFGNEMsRUFHNUMsZ0JBQWdCLElBSDRCLEdBQXRDLFVBQVIsc0JBQVEsUUFBUSxrQkFBaEIsc0JBQWdCLGlCQUFpQixXQUFqQyxzQkFBaUM7QUFJakMsZUFBTztVQUFFLFFBQUE7VUFBUTtVQUFpQixnQkFBZ0I7UUFBM0M7TUFDUjthQVlELFFBQUEsZUFBTSxTQUFZLE1BQVc7QUFBQSxZQUF2QixZQUF1QixRQUFBO0FBQXZCLG9CQUFTO1FBQWM7QUFBQSxZQUFYLFNBQVcsUUFBQTtBQUFYLGlCQUFPLENBQUE7UUFBSTtBQUMzQixlQUFPLEtBQUssUUFBUSxnQkFBZ0IsU0FBUyxPQUF6QixHQUFrQyxJQUEvQztNQUNSO2FBUUQsVUFBQSxtQkFBVTtBQUNSLGVBQU8sS0FBSyxRQUFRLFNBQVMsV0FBdEI7TUFDUjthQVdELFVBQUEsaUJBQVEsTUFBUixPQUF3RTtBQUFBLFlBQUEsUUFBQSxVQUFBLFNBQUosQ0FBQSxJQUFJLE9BQUEsc0JBQUEsTUFBeEQsZUFBQSxnQkFBd0Qsd0JBQUEsU0FBeEMsUUFBd0MscUJBQUEsd0JBQUEsTUFBakMsa0JBQUEsbUJBQWlDLDBCQUFBLFNBQWQsUUFBYztBQUN0RSxlQUFPLGNBQWMsTUFBTSxTQUFTLFdBQWhCO0FBQ3BCLFlBQUksS0FBSyxPQUFPLEtBQUssSUFBakIsR0FBd0I7QUFDMUIsaUJBQU87UUFDUixXQUFVLENBQUMsS0FBSyxTQUFTO0FBQ3hCLGlCQUFPLFVBQVMsUUFBUSxnQkFBZ0IsSUFBRCxDQUFoQztRQUNSLE9BQU07QUFDTCxjQUFJLFFBQVEsS0FBSztBQUNqQixjQUFJLGlCQUFpQixrQkFBa0I7QUFDckMsZ0JBQU0sY0FBYyxLQUFLLE9BQU8sS0FBSyxFQUFqQjtBQUNwQixnQkFBTSxRQUFRLEtBQUssU0FBTDtBQUZ1QixnQkFBQSxZQUczQixRQUFRLE9BQU8sYUFBYSxJQUFyQjtBQUFoQixvQkFIb0MsVUFBQTtVQUl0QztBQUNELGlCQUFPLE1BQU0sTUFBTTtZQUFFLElBQUk7WUFBTztVQUFiLENBQVA7UUFDYjtNQUNGO2FBUUQsY0FBQSxxQkFBQSxRQUE4RDtBQUFBLFlBQUEsUUFBQSxXQUFBLFNBQUosQ0FBQSxJQUFJLFFBQWhELFVBQWdELE1BQWhELFFBQVEsa0JBQXdDLE1BQXhDLGlCQUFpQixpQkFBdUIsTUFBdkI7QUFDckMsWUFBTSxNQUFNLEtBQUssSUFBSSxNQUFNO1VBQUUsUUFBQTtVQUFRO1VBQWlCO1FBQTNCLENBQWY7QUFDWixlQUFPLE1BQU0sTUFBTTtVQUFFO1FBQUYsQ0FBUDtNQUNiO2FBUUQsWUFBQSxtQkFBVSxTQUFRO0FBQ2hCLGVBQU8sS0FBSyxZQUFZO1VBQUUsUUFBQTtRQUFGLENBQWpCO01BQ1I7YUFZRCxNQUFBLGNBQUksUUFBUTtBQUNWLFlBQUksQ0FBQyxLQUFLO0FBQVMsaUJBQU87QUFFMUIsWUFBTSxhQUFhLGdCQUFnQixRQUFRLGFBQVQsR0FDaEMsbUJBQ0UsQ0FBQyxZQUFZLFdBQVcsUUFBWixLQUNaLENBQUMsWUFBWSxXQUFXLFVBQVosS0FDWixDQUFDLFlBQVksV0FBVyxPQUFaLEdBQ2Qsa0JBQWtCLENBQUMsWUFBWSxXQUFXLE9BQVosR0FDOUIscUJBQXFCLENBQUMsWUFBWSxXQUFXLElBQVosR0FDakMsbUJBQW1CLENBQUMsWUFBWSxXQUFXLEtBQVosS0FBc0IsQ0FBQyxZQUFZLFdBQVcsR0FBWixHQUNqRSxpQkFBaUIsc0JBQXNCLGtCQUN2QyxrQkFBa0IsV0FBVyxZQUFZLFdBQVc7QUFFdEQsWUFBSyxtQkFBa0Isb0JBQW9CLGlCQUFpQjtBQUMxRCxnQkFBTSxJQUFJLDhCQUNSLHFFQURJO1FBR1A7QUFFRCxZQUFJLG9CQUFvQixpQkFBaUI7QUFDdkMsZ0JBQU0sSUFBSSw4QkFBOEIsd0NBQWxDO1FBQ1A7QUFFRCxZQUFJO0FBQ0osWUFBSSxrQkFBa0I7QUFDcEIsa0JBQVEsZ0JBQWUsU0FBQSxDQUFBLEdBQU0sZ0JBQWdCLEtBQUssQ0FBTixHQUFhLFVBQWxDLENBQUE7UUFDeEIsV0FBVSxDQUFDLFlBQVksV0FBVyxPQUFaLEdBQXNCO0FBQzNDLGtCQUFRLG1CQUFrQixTQUFBLENBQUEsR0FBTSxtQkFBbUIsS0FBSyxDQUFOLEdBQWEsVUFBckMsQ0FBQTtRQUMzQixPQUFNO0FBQ0wsa0JBQUssU0FBQSxDQUFBLEdBQVEsS0FBSyxTQUFMLEdBQW9CLFVBQTVCO0FBSUwsY0FBSSxZQUFZLFdBQVcsR0FBWixHQUFrQjtBQUMvQixrQkFBTSxNQUFNLEtBQUssSUFBSSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQW5CLEdBQTJCLE1BQU0sR0FBckQ7VUFDYjtRQUNGO0FBRUQsWUFBQSxZQUFnQixRQUFRLE9BQU8sS0FBSyxHQUFHLEtBQUssSUFBckIsR0FBaEIsS0FBUCxVQUFBLElBQVcsSUFBWCxVQUFBO0FBQ0EsZUFBTyxNQUFNLE1BQU07VUFBRTtVQUFJO1FBQU4sQ0FBUDtNQUNiO2FBZUQsT0FBQSxjQUFLLFVBQVU7QUFDYixZQUFJLENBQUMsS0FBSztBQUFTLGlCQUFPO0FBQzFCLFlBQU0sTUFBTSxTQUFTLGlCQUFpQixRQUExQjtBQUNaLGVBQU8sTUFBTSxNQUFNLFdBQVcsTUFBTSxHQUFQLENBQWpCO01BQ2I7YUFRRCxRQUFBLGVBQU0sVUFBVTtBQUNkLFlBQUksQ0FBQyxLQUFLO0FBQVMsaUJBQU87QUFDMUIsWUFBTSxNQUFNLFNBQVMsaUJBQWlCLFFBQTFCLEVBQW9DLE9BQXBDO0FBQ1osZUFBTyxNQUFNLE1BQU0sV0FBVyxNQUFNLEdBQVAsQ0FBakI7TUFDYjthQVlELFVBQUEsaUJBQVEsT0FBTTtBQUNaLFlBQUksQ0FBQyxLQUFLO0FBQVMsaUJBQU87QUFDMUIsWUFBTSxJQUFJLENBQUEsR0FDUixpQkFBaUIsU0FBUyxjQUFjLEtBQXZCO0FBQ25CLGdCQUFRO2VBQ0Q7QUFDSCxjQUFFLFFBQVE7ZUFFUDtlQUNBO0FBQ0gsY0FBRSxNQUFNO2VBRUw7ZUFDQTtBQUNILGNBQUUsT0FBTztlQUVOO0FBQ0gsY0FBRSxTQUFTO2VBRVI7QUFDSCxjQUFFLFNBQVM7ZUFFUjtBQUNILGNBQUUsY0FBYztBQUNoQjs7QUFNSixZQUFJLG1CQUFtQixTQUFTO0FBQzlCLFlBQUUsVUFBVTtRQUNiO0FBRUQsWUFBSSxtQkFBbUIsWUFBWTtBQUNqQyxjQUFNLElBQUksS0FBSyxLQUFLLEtBQUssUUFBUSxDQUF2QjtBQUNWLFlBQUUsUUFBUyxLQUFJLEtBQUssSUFBSTtRQUN6QjtBQUVELGVBQU8sS0FBSyxJQUFJLENBQVQ7TUFDUjthQVlELFFBQUEsZUFBTSxPQUFNO0FBQUEsWUFBQTtBQUNWLGVBQU8sS0FBSyxVQUNSLEtBQUssS0FBTCxjQUFBLENBQUEsR0FBQSxXQUFhLFNBQU8sR0FBcEIsV0FBQSxFQUNHLFFBQVEsS0FEWCxFQUVHLE1BQU0sQ0FGVCxJQUdBO01BQ0w7YUFnQkQsV0FBQSxrQkFBUyxLQUFLLE1BQVc7QUFBQSxZQUFYLFNBQVcsUUFBQTtBQUFYLGlCQUFPLENBQUE7UUFBSTtBQUN2QixlQUFPLEtBQUssVUFDUixVQUFVLE9BQU8sS0FBSyxJQUFJLGNBQWMsSUFBdkIsQ0FBakIsRUFBK0MseUJBQXlCLE1BQU0sR0FBOUUsSUFDQTtNQUNMO2FBcUJELGlCQUFBLHdCQUFlLFlBQWlDLE1BQVc7QUFBQSxZQUE1QyxlQUE0QyxRQUFBO0FBQTVDLHVCQUFhO1FBQStCO0FBQUEsWUFBWCxTQUFXLFFBQUE7QUFBWCxpQkFBTyxDQUFBO1FBQUk7QUFDekQsZUFBTyxLQUFLLFVBQ1IsVUFBVSxPQUFPLEtBQUssSUFBSSxNQUFNLElBQWYsR0FBc0IsVUFBdkMsRUFBbUQsZUFBZSxJQUFsRSxJQUNBO01BQ0w7YUFlRCxnQkFBQSx1QkFBYyxNQUFXO0FBQUEsWUFBWCxTQUFXLFFBQUE7QUFBWCxpQkFBTyxDQUFBO1FBQUk7QUFDdkIsZUFBTyxLQUFLLFVBQ1IsVUFBVSxPQUFPLEtBQUssSUFBSSxNQUFNLElBQWYsR0FBc0IsSUFBdkMsRUFBNkMsb0JBQW9CLElBQWpFLElBQ0EsQ0FBQTtNQUNMO2FBZUQsUUFBQSxlQUFBLFFBS1E7QUFBQSxZQUFBLFFBQUEsV0FBQSxTQUFKLENBQUEsSUFBSSxRQUFBLGVBQUEsTUFKTixRQUFBLFVBSU0saUJBQUEsU0FKRyxhQUlILGNBQUEsd0JBQUEsTUFITixpQkFBQSxrQkFHTSwwQkFBQSxTQUhZLFFBR1osdUJBQUEsd0JBQUEsTUFGTixzQkFBQSx1QkFFTSwwQkFBQSxTQUZpQixRQUVqQix1QkFBQSxzQkFBQSxNQUROLGVBQUEsZ0JBQ00sd0JBQUEsU0FEVSxPQUNWO0FBQ04sWUFBSSxDQUFDLEtBQUssU0FBUztBQUNqQixpQkFBTztRQUNSO0FBRUQsWUFBTSxNQUFNLFlBQVc7QUFFdkIsWUFBSSxLQUFJLFdBQVUsTUFBTSxHQUFQO0FBQ2pCLGNBQUs7QUFDTCxjQUFLLFdBQVUsTUFBTSxLQUFLLGlCQUFpQixzQkFBc0IsYUFBbkQ7QUFDZCxlQUFPO01BQ1I7YUFVRCxZQUFBLG1CQUFBLFFBQXdDO0FBQUEsWUFBQSxRQUFBLFdBQUEsU0FBSixDQUFBLElBQUksUUFBQSxlQUFBLE1BQTVCLFFBQUEsVUFBNEIsaUJBQUEsU0FBbkIsYUFBbUI7QUFDdEMsWUFBSSxDQUFDLEtBQUssU0FBUztBQUNqQixpQkFBTztRQUNSO0FBRUQsZUFBTyxXQUFVLE1BQU0sWUFBVyxVQUFsQjtNQUNqQjthQU9ELGdCQUFBLHlCQUFnQjtBQUNkLGVBQU8sYUFBYSxNQUFNLGNBQVA7TUFDcEI7YUFnQkQsWUFBQSxtQkFBQSxRQU1RO0FBQUEsWUFBQSxRQUFBLFdBQUEsU0FBSixDQUFBLElBQUksUUFBQSx3QkFBQSxNQUxOLHNCQUFBLHVCQUtNLDBCQUFBLFNBTGlCLFFBS2pCLHVCQUFBLHdCQUFBLE1BSk4saUJBQUEsa0JBSU0sMEJBQUEsU0FKWSxRQUlaLHVCQUFBLHNCQUFBLE1BSE4sZUFBQSxnQkFHTSx3QkFBQSxTQUhVLE9BR1YscUJBQUEsc0JBQUEsTUFGTixlQUFBLGdCQUVNLHdCQUFBLFNBRlUsUUFFVixxQkFBQSxlQUFBLE1BRE4sUUFBQSxVQUNNLGlCQUFBLFNBREcsYUFDSDtBQUNOLFlBQUksQ0FBQyxLQUFLLFNBQVM7QUFDakIsaUJBQU87UUFDUjtBQUVELFlBQUksS0FBSSxnQkFBZ0IsTUFBTTtBQUM5QixlQUNFLEtBQ0EsV0FBVSxNQUFNLFlBQVcsWUFBWSxpQkFBaUIsc0JBQXNCLGFBQXJFO01BRVo7YUFRRCxZQUFBLHFCQUFZO0FBQ1YsZUFBTyxhQUFhLE1BQU0saUNBQWlDLEtBQXhDO01BQ3BCO2FBVUQsU0FBQSxrQkFBUztBQUNQLGVBQU8sYUFBYSxLQUFLLE1BQUwsR0FBYyxpQ0FBZjtNQUNwQjthQU9ELFlBQUEscUJBQVk7QUFDVixZQUFJLENBQUMsS0FBSyxTQUFTO0FBQ2pCLGlCQUFPO1FBQ1I7QUFDRCxlQUFPLFdBQVUsTUFBTSxJQUFQO01BQ2pCO2FBYUQsWUFBQSxtQkFBQSxRQUE4RDtBQUFBLFlBQUEsUUFBQSxXQUFBLFNBQUosQ0FBQSxJQUFJLFFBQUEsc0JBQUEsTUFBbEQsZUFBQSxnQkFBa0Qsd0JBQUEsU0FBbEMsT0FBa0MscUJBQUEsb0JBQUEsTUFBNUIsYUFBQSxjQUE0QixzQkFBQSxTQUFkLFFBQWM7QUFDNUQsWUFBSSxNQUFNO0FBRVYsWUFBSSxlQUFlLGVBQWU7QUFDaEMsaUJBQU87QUFDUCxjQUFJLGFBQWE7QUFDZixtQkFBTztVQUNSLFdBQVUsZUFBZTtBQUN4QixtQkFBTztVQUNSO1FBQ0Y7QUFFRCxlQUFPLGFBQWEsTUFBTSxLQUFLLElBQVo7TUFDcEI7YUFhRCxRQUFBLGVBQU0sTUFBVztBQUFBLFlBQVgsU0FBVyxRQUFBO0FBQVgsaUJBQU8sQ0FBQTtRQUFJO0FBQ2YsWUFBSSxDQUFDLEtBQUssU0FBUztBQUNqQixpQkFBTztRQUNSO0FBRUQsZUFBVSxLQUFLLFVBQUwsSUFBVixNQUE4QixLQUFLLFVBQVUsSUFBZjtNQUMvQjthQU1ELFdBQUEsb0JBQVc7QUFDVCxlQUFPLEtBQUssVUFBVSxLQUFLLE1BQUwsSUFBZTtNQUN0QzthQU1ELFVBQUEsbUJBQVU7QUFDUixlQUFPLEtBQUssU0FBTDtNQUNSO2FBTUQsV0FBQSxvQkFBVztBQUNULGVBQU8sS0FBSyxVQUFVLEtBQUssS0FBSztNQUNqQzthQU1ELFlBQUEscUJBQVk7QUFDVixlQUFPLEtBQUssVUFBVSxLQUFLLEtBQUssTUFBTztNQUN4QzthQU1ELFNBQUEsa0JBQVM7QUFDUCxlQUFPLEtBQUssTUFBTDtNQUNSO2FBTUQsU0FBQSxrQkFBUztBQUNQLGVBQU8sS0FBSyxTQUFMO01BQ1I7YUFTRCxXQUFBLGtCQUFTLE1BQVc7QUFBQSxZQUFYLFNBQVcsUUFBQTtBQUFYLGlCQUFPLENBQUE7UUFBSTtBQUNsQixZQUFJLENBQUMsS0FBSztBQUFTLGlCQUFPLENBQUE7QUFFMUIsWUFBTSxPQUFJLFNBQUEsQ0FBQSxHQUFRLEtBQUssQ0FBYjtBQUVWLFlBQUksS0FBSyxlQUFlO0FBQ3RCLGVBQUssaUJBQWlCLEtBQUs7QUFDM0IsZUFBSyxrQkFBa0IsS0FBSyxJQUFJO0FBQ2hDLGVBQUssU0FBUyxLQUFLLElBQUk7UUFDeEI7QUFDRCxlQUFPO01BQ1I7YUFNRCxXQUFBLG9CQUFXO0FBQ1QsZUFBTyxJQUFJLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxHQUFsQztNQUNSO2FBbUJELE9BQUEsY0FBSyxlQUFlLE9BQXVCLE1BQVc7QUFBQSxZQUFsQyxVQUFrQyxRQUFBO0FBQWxDLGtCQUFPO1FBQTJCO0FBQUEsWUFBWCxTQUFXLFFBQUE7QUFBWCxpQkFBTyxDQUFBO1FBQUk7QUFDcEQsWUFBSSxDQUFDLEtBQUssV0FBVyxDQUFDLGNBQWMsU0FBUztBQUMzQyxpQkFBTyxTQUFTLFFBQVEsd0NBQWpCO1FBQ1I7QUFFRCxZQUFNLFVBQU8sU0FBQTtVQUFLLFFBQVEsS0FBSztVQUFRLGlCQUFpQixLQUFLO1FBQWhELEdBQW9FLElBQXBFO0FBRWIsWUFBTSxRQUFRLFdBQVcsS0FBRCxFQUFPLElBQUksU0FBUyxhQUE5QixHQUNaLGVBQWUsY0FBYyxRQUFkLElBQTBCLEtBQUssUUFBTCxHQUN6QyxVQUFVLGVBQWUsT0FBTyxlQUNoQyxRQUFRLGVBQWUsZ0JBQWdCLE1BQ3ZDLFNBQVMsTUFBSyxTQUFTLE9BQU8sT0FBTyxPQUF4QjtBQUVmLGVBQU8sZUFBZSxPQUFPLE9BQVAsSUFBa0I7TUFDekM7YUFVRCxVQUFBLGlCQUFRLE9BQXVCLE1BQVc7QUFBQSxZQUFsQyxVQUFrQyxRQUFBO0FBQWxDLGtCQUFPO1FBQTJCO0FBQUEsWUFBWCxTQUFXLFFBQUE7QUFBWCxpQkFBTyxDQUFBO1FBQUk7QUFDeEMsZUFBTyxLQUFLLEtBQUssVUFBUyxJQUFULEdBQWdCLE9BQU0sSUFBaEM7TUFDUjthQU9ELFFBQUEsZUFBTSxlQUFlO0FBQ25CLGVBQU8sS0FBSyxVQUFVLFNBQVMsY0FBYyxNQUFNLGFBQTdCLElBQThDO01BQ3JFO2FBV0QsVUFBQSxpQkFBUSxlQUFlLE9BQU07QUFDM0IsWUFBSSxDQUFDLEtBQUs7QUFBUyxpQkFBTztBQUUxQixZQUFNLFVBQVUsY0FBYyxRQUFkO0FBQ2hCLFlBQU0saUJBQWlCLEtBQUssUUFBUSxjQUFjLE1BQU07VUFBRSxlQUFlO1FBQWpCLENBQWpDO0FBQ3ZCLGVBQU8sZUFBZSxRQUFRLEtBQXZCLEtBQWdDLFdBQVcsV0FBVyxlQUFlLE1BQU0sS0FBckI7TUFDOUQ7YUFTRCxTQUFBLGdCQUFPLE9BQU87QUFDWixlQUNFLEtBQUssV0FDTCxNQUFNLFdBQ04sS0FBSyxRQUFMLE1BQW1CLE1BQU0sUUFBTixLQUNuQixLQUFLLEtBQUssT0FBTyxNQUFNLElBQXZCLEtBQ0EsS0FBSyxJQUFJLE9BQU8sTUFBTSxHQUF0QjtNQUVIO2FBb0JELGFBQUEsb0JBQVcsU0FBYztBQUFBLFlBQWQsWUFBYyxRQUFBO0FBQWQsb0JBQVUsQ0FBQTtRQUFJO0FBQ3ZCLFlBQUksQ0FBQyxLQUFLO0FBQVMsaUJBQU87QUFDMUIsWUFBTSxPQUFPLFFBQVEsUUFBUSxVQUFTLFdBQVcsQ0FBQSxHQUFJO1VBQUUsTUFBTSxLQUFLO1FBQWIsQ0FBeEIsR0FDM0IsVUFBVSxRQUFRLFVBQVcsT0FBTyxPQUFPLENBQUMsUUFBUSxVQUFVLFFBQVEsVUFBVztBQUNuRixZQUFJLFFBQVEsQ0FBQyxTQUFTLFVBQVUsUUFBUSxTQUFTLFdBQVcsU0FBaEQ7QUFDWixZQUFJLFFBQU8sUUFBUTtBQUNuQixZQUFJLE1BQU0sUUFBUSxRQUFRLElBQXRCLEdBQTZCO0FBQy9CLGtCQUFRLFFBQVE7QUFDaEIsa0JBQU87UUFDUjtBQUNELGVBQU8sYUFBYSxNQUFNLEtBQUssS0FBSyxPQUFWLEdBQVAsU0FBQSxDQUFBLEdBQ2QsU0FEYztVQUVqQixTQUFTO1VBQ1Q7VUFDQSxNQUFBO1FBSmlCLENBQUEsQ0FBQTtNQU1wQjthQWVELHFCQUFBLDRCQUFtQixTQUFjO0FBQUEsWUFBZCxZQUFjLFFBQUE7QUFBZCxvQkFBVSxDQUFBO1FBQUk7QUFDL0IsWUFBSSxDQUFDLEtBQUs7QUFBUyxpQkFBTztBQUUxQixlQUFPLGFBQWEsUUFBUSxRQUFRLFVBQVMsV0FBVyxDQUFBLEdBQUk7VUFBRSxNQUFNLEtBQUs7UUFBYixDQUF4QixHQUE4QyxNQUEvRCxTQUFBLENBQUEsR0FDZCxTQURjO1VBRWpCLFNBQVM7VUFDVCxPQUFPLENBQUMsU0FBUyxVQUFVLE1BQXBCO1VBQ1AsV0FBVztRQUpNLENBQUEsQ0FBQTtNQU1wQjtnQkFPTSxNQUFQLGdCQUF5QjtBQUFBLGlCQUFBLE9BQUEsVUFBQSxRQUFYLFlBQVcsSUFBQSxNQUFBLElBQUEsR0FBQSxPQUFBLEdBQUEsT0FBQSxNQUFBLFFBQUE7QUFBWCxvQkFBVyxRQUFBLFVBQUE7UUFBQTtBQUN2QixZQUFJLENBQUMsVUFBVSxNQUFNLFVBQVMsVUFBekIsR0FBc0M7QUFDekMsZ0JBQU0sSUFBSSxxQkFBcUIseUNBQXpCO1FBQ1A7QUFDRCxlQUFPLE9BQU8sV0FBVyxTQUFDLEdBQUQ7QUFBQSxpQkFBTyxFQUFFLFFBQUY7UUFBUCxHQUFvQixLQUFLLEdBQXJDO01BQ2Q7Z0JBT00sTUFBUCxnQkFBeUI7QUFBQSxpQkFBQSxRQUFBLFVBQUEsUUFBWCxZQUFXLElBQUEsTUFBQSxLQUFBLEdBQUEsUUFBQSxHQUFBLFFBQUEsT0FBQSxTQUFBO0FBQVgsb0JBQVcsU0FBQSxVQUFBO1FBQUE7QUFDdkIsWUFBSSxDQUFDLFVBQVUsTUFBTSxVQUFTLFVBQXpCLEdBQXNDO0FBQ3pDLGdCQUFNLElBQUkscUJBQXFCLHlDQUF6QjtRQUNQO0FBQ0QsZUFBTyxPQUFPLFdBQVcsU0FBQyxHQUFEO0FBQUEsaUJBQU8sRUFBRSxRQUFGO1FBQVAsR0FBb0IsS0FBSyxHQUFyQztNQUNkO2dCQVdNLG9CQUFQLDJCQUF5QixPQUFNLEtBQUssU0FBYztBQUFBLFlBQWQsWUFBYyxRQUFBO0FBQWQsb0JBQVUsQ0FBQTtRQUFJO0FBQ2hELFlBQUEsV0FBa0QsU0FBbEQsa0JBQUEsU0FBUSxRQUFBLFVBQVIsb0JBQUEsU0FBaUIsT0FBakIsaUJBQUEsd0JBQUEsU0FBdUIsaUJBQUEsa0JBQXZCLDBCQUFBLFNBQXlDLE9BQXpDLHVCQUNFLGNBQWMsT0FBTyxTQUFTO1VBQzVCLFFBQUE7VUFDQTtVQUNBLGFBQWE7UUFIZSxDQUFoQjtBQUtoQixlQUFPLGtCQUFrQixhQUFhLE9BQU0sR0FBcEI7TUFDekI7Z0JBS00sb0JBQVAsMkJBQXlCLE9BQU0sS0FBSyxTQUFjO0FBQUEsWUFBZCxZQUFjLFFBQUE7QUFBZCxvQkFBVSxDQUFBO1FBQUk7QUFDaEQsZUFBTyxVQUFTLGtCQUFrQixPQUFNLEtBQUssT0FBdEM7TUFDUjs7O2FBdGlDRCxnQkFBYztBQUNaLGlCQUFPLEtBQUssWUFBWTtRQUN6Qjs7O2FBTUQsZ0JBQW9CO0FBQ2xCLGlCQUFPLEtBQUssVUFBVSxLQUFLLFFBQVEsU0FBUztRQUM3Qzs7O2FBTUQsZ0JBQXlCO0FBQ3ZCLGlCQUFPLEtBQUssVUFBVSxLQUFLLFFBQVEsY0FBYztRQUNsRDs7O2FBT0QsZ0JBQWE7QUFDWCxpQkFBTyxLQUFLLFVBQVUsS0FBSyxJQUFJLFNBQVM7UUFDekM7OzthQU9ELGdCQUFzQjtBQUNwQixpQkFBTyxLQUFLLFVBQVUsS0FBSyxJQUFJLGtCQUFrQjtRQUNsRDs7O2FBT0QsZ0JBQXFCO0FBQ25CLGlCQUFPLEtBQUssVUFBVSxLQUFLLElBQUksaUJBQWlCO1FBQ2pEOzs7YUFNRCxnQkFBVztBQUNULGlCQUFPLEtBQUs7UUFDYjs7O2FBTUQsZ0JBQWU7QUFDYixpQkFBTyxLQUFLLFVBQVUsS0FBSyxLQUFLLE9BQU87UUFDeEM7OzthQU9ELGdCQUFXO0FBQ1QsaUJBQU8sS0FBSyxVQUFVLEtBQUssRUFBRSxPQUFPO1FBQ3JDOzs7YUFPRCxnQkFBYztBQUNaLGlCQUFPLEtBQUssVUFBVSxLQUFLLEtBQUssS0FBSyxFQUFFLFFBQVEsQ0FBekIsSUFBOEI7UUFDckQ7OzthQU9ELGdCQUFZO0FBQ1YsaUJBQU8sS0FBSyxVQUFVLEtBQUssRUFBRSxRQUFRO1FBQ3RDOzs7YUFPRCxnQkFBVTtBQUNSLGlCQUFPLEtBQUssVUFBVSxLQUFLLEVBQUUsTUFBTTtRQUNwQzs7O2FBT0QsZ0JBQVc7QUFDVCxpQkFBTyxLQUFLLFVBQVUsS0FBSyxFQUFFLE9BQU87UUFDckM7OzthQU9ELGdCQUFhO0FBQ1gsaUJBQU8sS0FBSyxVQUFVLEtBQUssRUFBRSxTQUFTO1FBQ3ZDOzs7YUFPRCxnQkFBYTtBQUNYLGlCQUFPLEtBQUssVUFBVSxLQUFLLEVBQUUsU0FBUztRQUN2Qzs7O2FBT0QsZ0JBQWtCO0FBQ2hCLGlCQUFPLEtBQUssVUFBVSxLQUFLLEVBQUUsY0FBYztRQUM1Qzs7O2FBUUQsZ0JBQWU7QUFDYixpQkFBTyxLQUFLLFVBQVUsdUJBQXVCLElBQUQsRUFBTyxXQUFXO1FBQy9EOzs7YUFRRCxnQkFBaUI7QUFDZixpQkFBTyxLQUFLLFVBQVUsdUJBQXVCLElBQUQsRUFBTyxhQUFhO1FBQ2pFOzs7YUFTRCxnQkFBYztBQUNaLGlCQUFPLEtBQUssVUFBVSx1QkFBdUIsSUFBRCxFQUFPLFVBQVU7UUFDOUQ7OzthQU9ELGdCQUFjO0FBQ1osaUJBQU8sS0FBSyxVQUFVLG1CQUFtQixLQUFLLENBQU4sRUFBUyxVQUFVO1FBQzVEOzs7YUFRRCxnQkFBaUI7QUFDZixpQkFBTyxLQUFLLFVBQVUsS0FBSyxPQUFPLFNBQVM7WUFBRSxRQUFRLEtBQUs7VUFBZixDQUFyQixFQUEyQyxLQUFLLFFBQVEsS0FBSztRQUNwRjs7O2FBUUQsZ0JBQWdCO0FBQ2QsaUJBQU8sS0FBSyxVQUFVLEtBQUssT0FBTyxRQUFRO1lBQUUsUUFBUSxLQUFLO1VBQWYsQ0FBcEIsRUFBMEMsS0FBSyxRQUFRLEtBQUs7UUFDbkY7OzthQVFELGdCQUFtQjtBQUNqQixpQkFBTyxLQUFLLFVBQVUsS0FBSyxTQUFTLFNBQVM7WUFBRSxRQUFRLEtBQUs7VUFBZixDQUF2QixFQUE2QyxLQUFLLFVBQVUsS0FBSztRQUN4Rjs7O2FBUUQsZ0JBQWtCO0FBQ2hCLGlCQUFPLEtBQUssVUFBVSxLQUFLLFNBQVMsUUFBUTtZQUFFLFFBQVEsS0FBSztVQUFmLENBQXRCLEVBQTRDLEtBQUssVUFBVSxLQUFLO1FBQ3ZGOzs7YUFRRCxnQkFBYTtBQUNYLGlCQUFPLEtBQUssVUFBVSxDQUFDLEtBQUssSUFBSTtRQUNqQzs7O2FBT0QsZ0JBQXNCO0FBQ3BCLGNBQUksS0FBSyxTQUFTO0FBQ2hCLG1CQUFPLEtBQUssS0FBSyxXQUFXLEtBQUssSUFBSTtjQUNuQyxRQUFRO2NBQ1IsUUFBUSxLQUFLO1lBRnNCLENBQTlCO1VBSVIsT0FBTTtBQUNMLG1CQUFPO1VBQ1I7UUFDRjs7O2FBT0QsZ0JBQXFCO0FBQ25CLGNBQUksS0FBSyxTQUFTO0FBQ2hCLG1CQUFPLEtBQUssS0FBSyxXQUFXLEtBQUssSUFBSTtjQUNuQyxRQUFRO2NBQ1IsUUFBUSxLQUFLO1lBRnNCLENBQTlCO1VBSVIsT0FBTTtBQUNMLG1CQUFPO1VBQ1I7UUFDRjs7O2FBTUQsZ0JBQW9CO0FBQ2xCLGlCQUFPLEtBQUssVUFBVSxLQUFLLEtBQUssY0FBYztRQUMvQzs7O2FBTUQsZ0JBQWM7QUFDWixjQUFJLEtBQUssZUFBZTtBQUN0QixtQkFBTztVQUNSLE9BQU07QUFDTCxtQkFDRSxLQUFLLFNBQVMsS0FBSyxJQUFJO2NBQUUsT0FBTztZQUFULENBQVQsRUFBdUIsVUFBVSxLQUFLLFNBQVMsS0FBSyxJQUFJO2NBQUUsT0FBTztZQUFULENBQVQsRUFBdUI7VUFFdkY7UUFDRjs7O2FBUUQsZ0JBQW1CO0FBQ2pCLGlCQUFPLFdBQVcsS0FBSyxJQUFOO1FBQ2xCOzs7YUFRRCxnQkFBa0I7QUFDaEIsaUJBQU8sWUFBWSxLQUFLLE1BQU0sS0FBSyxLQUFqQjtRQUNuQjs7O2FBUUQsZ0JBQWlCO0FBQ2YsaUJBQU8sS0FBSyxVQUFVLFdBQVcsS0FBSyxJQUFOLElBQWM7UUFDL0M7OzthQVNELGdCQUFzQjtBQUNwQixpQkFBTyxLQUFLLFVBQVUsZ0JBQWdCLEtBQUssUUFBTixJQUFrQjtRQUN4RDs7O2FBZ3ZCRCxnQkFBd0I7QUFDdEIsaUJBQU87UUFDUjs7O2FBTUQsZ0JBQXNCO0FBQ3BCLGlCQUFPO1FBQ1I7OzthQU1ELGdCQUFtQztBQUNqQyxpQkFBTztRQUNSOzs7YUFNRCxnQkFBdUI7QUFDckIsaUJBQU87UUFDUjs7O2FBTUQsZ0JBQXVCO0FBQ3JCLGlCQUFPO1FBQ1I7OzthQU1ELGdCQUF5QjtBQUN2QixpQkFBTztRQUNSOzs7YUFNRCxnQkFBK0I7QUFDN0IsaUJBQU87UUFDUjs7O2FBTUQsZ0JBQW9DO0FBQ2xDLGlCQUFPO1FBQ1I7OzthQU1ELGdCQUFtQztBQUNqQyxpQkFBTztRQUNSOzs7YUFNRCxnQkFBNEI7QUFDMUIsaUJBQU87UUFDUjs7O2FBTUQsZ0JBQWtDO0FBQ2hDLGlCQUFPO1FBQ1I7OzthQU1ELGdCQUF1QztBQUNyQyxpQkFBTztRQUNSOzs7YUFNRCxnQkFBc0M7QUFDcEMsaUJBQU87UUFDUjs7O2FBTUQsZ0JBQTRCO0FBQzFCLGlCQUFPO1FBQ1I7OzthQU1ELGdCQUF5QztBQUN2QyxpQkFBTztRQUNSOzs7YUFNRCxnQkFBMEI7QUFDeEIsaUJBQU87UUFDUjs7O2FBTUQsZ0JBQXVDO0FBQ3JDLGlCQUFPO1FBQ1I7OzthQU1ELGdCQUF1QztBQUNyQyxpQkFBTztRQUNSOzs7YUFNRCxnQkFBMkI7QUFDekIsaUJBQU87UUFDUjs7O2FBTUQsZ0JBQXdDO0FBQ3RDLGlCQUFPO1FBQ1I7OzthQU1ELGdCQUEyQjtBQUN6QixpQkFBTztRQUNSOzs7YUFNRCxnQkFBd0M7QUFDdEMsaUJBQU87UUFDUjs7OztBQU1JLDhCQUEwQixhQUFhO0FBQzVDLFVBQUksVUFBUyxXQUFXLFdBQXBCLEdBQWtDO0FBQ3BDLGVBQU87TUFDUixXQUFVLGVBQWUsWUFBWSxXQUFXLFNBQVMsWUFBWSxRQUFaLENBQUQsR0FBeUI7QUFDaEYsZUFBTyxVQUFTLFdBQVcsV0FBcEI7TUFDUixXQUFVLGVBQWUsT0FBTyxnQkFBZ0IsVUFBVTtBQUN6RCxlQUFPLFVBQVMsV0FBVyxXQUFwQjtNQUNSLE9BQU07QUFDTCxjQUFNLElBQUkscUJBQUosZ0NBQzBCLGNBRDFCLGVBQ2tELE9BQU8sV0FEekQ7TUFHUDtJQUNGO1FDam9FSyxVQUFVOzs7Ozs7Ozs7Ozs7Ozs7O0FDWGhCO0FBQUE7QUFRQyxJQUFDLFlBQVc7QUFHWCxVQUFJO0FBR0osVUFBSSxVQUFVO0FBR2QsVUFBSSxtQkFBbUI7QUFHdkIsVUFBSSxrQkFBa0IsbUVBQ2xCLGtCQUFrQix1QkFDbEIsK0JBQStCO0FBR25DLFVBQUksaUJBQWlCO0FBR3JCLFVBQUksbUJBQW1CO0FBR3ZCLFVBQUksY0FBYztBQUdsQixVQUFJLGtCQUFrQixHQUNsQixrQkFBa0IsR0FDbEIscUJBQXFCO0FBR3pCLFVBQUksdUJBQXVCLEdBQ3ZCLHlCQUF5QjtBQUc3QixVQUFJLGlCQUFpQixHQUNqQixxQkFBcUIsR0FDckIsd0JBQXdCLEdBQ3hCLGtCQUFrQixHQUNsQix3QkFBd0IsSUFDeEIsb0JBQW9CLElBQ3BCLDBCQUEwQixJQUMxQixnQkFBZ0IsS0FDaEIsa0JBQWtCLEtBQ2xCLGlCQUFpQjtBQUdyQixVQUFJLHVCQUF1QixJQUN2Qix5QkFBeUI7QUFHN0IsVUFBSSxZQUFZLEtBQ1osV0FBVztBQUdmLFVBQUksbUJBQW1CLEdBQ25CLGdCQUFnQixHQUNoQixrQkFBa0I7QUFHdEIsVUFBSSxXQUFXLElBQUksR0FDZixtQkFBbUIsa0JBQ25CLGNBQWMsdUJBQ2QsTUFBTSxJQUFJO0FBR2QsVUFBSSxtQkFBbUIsWUFDbkIsa0JBQWtCLG1CQUFtQixHQUNyQyx3QkFBd0IscUJBQXFCO0FBR2pELFVBQUksWUFBWTtBQUFBLFFBQ2QsQ0FBQyxPQUFPLGFBQWE7QUFBQSxRQUNyQixDQUFDLFFBQVEsY0FBYztBQUFBLFFBQ3ZCLENBQUMsV0FBVyxrQkFBa0I7QUFBQSxRQUM5QixDQUFDLFNBQVMsZUFBZTtBQUFBLFFBQ3pCLENBQUMsY0FBYyxxQkFBcUI7QUFBQSxRQUNwQyxDQUFDLFFBQVEsY0FBYztBQUFBLFFBQ3ZCLENBQUMsV0FBVyxpQkFBaUI7QUFBQSxRQUM3QixDQUFDLGdCQUFnQix1QkFBdUI7QUFBQSxRQUN4QyxDQUFDLFNBQVMsZUFBZTtBQUFBLE1BQzNCO0FBR0EsVUFBSSxVQUFVLHNCQUNWLFdBQVcsa0JBQ1gsV0FBVywwQkFDWCxVQUFVLG9CQUNWLFVBQVUsaUJBQ1YsWUFBWSx5QkFDWixXQUFXLGtCQUNYLFVBQVUscUJBQ1YsU0FBUyw4QkFDVCxTQUFTLGdCQUNULFlBQVksbUJBQ1osVUFBVSxpQkFDVixZQUFZLG1CQUNaLGFBQWEsb0JBQ2IsV0FBVyxrQkFDWCxZQUFZLG1CQUNaLFNBQVMsZ0JBQ1QsWUFBWSxtQkFDWixZQUFZLG1CQUNaLGVBQWUsc0JBQ2YsYUFBYSxvQkFDYixhQUFhO0FBRWpCLFVBQUksaUJBQWlCLHdCQUNqQixjQUFjLHFCQUNkLGFBQWEseUJBQ2IsYUFBYSx5QkFDYixVQUFVLHNCQUNWLFdBQVcsdUJBQ1gsV0FBVyx1QkFDWCxXQUFXLHVCQUNYLGtCQUFrQiw4QkFDbEIsWUFBWSx3QkFDWixZQUFZO0FBR2hCLFVBQUksdUJBQXVCLGtCQUN2QixzQkFBc0Isc0JBQ3RCLHdCQUF3QjtBQUc1QixVQUFJLGdCQUFnQiw2QkFDaEIsa0JBQWtCLFlBQ2xCLG1CQUFtQixPQUFPLGNBQWMsTUFBTSxHQUM5QyxxQkFBcUIsT0FBTyxnQkFBZ0IsTUFBTTtBQUd0RCxVQUFJLFdBQVcsb0JBQ1gsYUFBYSxtQkFDYixnQkFBZ0I7QUFHcEIsVUFBSSxlQUFlLG9EQUNmLGdCQUFnQixTQUNoQixhQUFhO0FBTWpCLFVBQUksZUFBZSx1QkFDZixrQkFBa0IsT0FBTyxhQUFhLE1BQU07QUFHaEQsVUFBSSxjQUFjO0FBR2xCLFVBQUksZUFBZTtBQUduQixVQUFJLGdCQUFnQiw2Q0FDaEIsZ0JBQWdCLHFDQUNoQixpQkFBaUI7QUFHckIsVUFBSSxjQUFjO0FBWWxCLFVBQUksNkJBQTZCO0FBR2pDLFVBQUksZUFBZTtBQU1uQixVQUFJLGVBQWU7QUFHbkIsVUFBSSxVQUFVO0FBR2QsVUFBSSxhQUFhO0FBR2pCLFVBQUksYUFBYTtBQUdqQixVQUFJLGVBQWU7QUFHbkIsVUFBSSxZQUFZO0FBR2hCLFVBQUksV0FBVztBQUdmLFVBQUksVUFBVTtBQUdkLFVBQUksWUFBWTtBQUdoQixVQUFJLG9CQUFvQjtBQUd4QixVQUFJLGdCQUFnQixtQkFDaEIsb0JBQW9CLG1CQUNwQix3QkFBd0IsbUJBQ3hCLHNCQUFzQixtQkFDdEIsZUFBZSxvQkFBb0Isd0JBQXdCLHFCQUMzRCxpQkFBaUIsbUJBQ2pCLGVBQWUsNkJBQ2YsZ0JBQWdCLHdCQUNoQixpQkFBaUIsZ0RBQ2pCLHFCQUFxQixtQkFDckIsZUFBZSxnS0FDZixlQUFlLDZCQUNmLGFBQWEsa0JBQ2IsZUFBZSxnQkFBZ0IsaUJBQWlCLHFCQUFxQjtBQUd6RSxVQUFJLFNBQVMsYUFDVCxXQUFXLE1BQU0sZ0JBQWdCLEtBQ2pDLFVBQVUsTUFBTSxlQUFlLEtBQy9CLFVBQVUsTUFBTSxlQUFlLEtBQy9CLFdBQVcsUUFDWCxZQUFZLE1BQU0saUJBQWlCLEtBQ25DLFVBQVUsTUFBTSxlQUFlLEtBQy9CLFNBQVMsT0FBTyxnQkFBZ0IsZUFBZSxXQUFXLGlCQUFpQixlQUFlLGVBQWUsS0FDekcsU0FBUyw0QkFDVCxhQUFhLFFBQVEsVUFBVSxNQUFNLFNBQVMsS0FDOUMsY0FBYyxPQUFPLGdCQUFnQixLQUNyQyxhQUFhLG1DQUNiLGFBQWEsc0NBQ2IsVUFBVSxNQUFNLGVBQWUsS0FDL0IsUUFBUTtBQUdaLFVBQUksY0FBYyxRQUFRLFVBQVUsTUFBTSxTQUFTLEtBQy9DLGNBQWMsUUFBUSxVQUFVLE1BQU0sU0FBUyxLQUMvQyxrQkFBa0IsUUFBUSxTQUFTLDBCQUNuQyxrQkFBa0IsUUFBUSxTQUFTLDBCQUNuQyxXQUFXLGFBQWEsS0FDeEIsV0FBVyxNQUFNLGFBQWEsTUFDOUIsWUFBWSxRQUFRLFFBQVEsUUFBUSxDQUFDLGFBQWEsWUFBWSxVQUFVLEVBQUUsS0FBSyxHQUFHLElBQUksTUFBTSxXQUFXLFdBQVcsTUFDbEgsYUFBYSxvREFDYixhQUFhLG9EQUNiLFFBQVEsV0FBVyxXQUFXLFdBQzlCLFVBQVUsUUFBUSxDQUFDLFdBQVcsWUFBWSxVQUFVLEVBQUUsS0FBSyxHQUFHLElBQUksTUFBTSxPQUN4RSxXQUFXLFFBQVEsQ0FBQyxjQUFjLFVBQVUsS0FBSyxTQUFTLFlBQVksWUFBWSxRQUFRLEVBQUUsS0FBSyxHQUFHLElBQUk7QUFHNUcsVUFBSSxTQUFTLE9BQU8sUUFBUSxHQUFHO0FBTS9CLFVBQUksY0FBYyxPQUFPLFNBQVMsR0FBRztBQUdyQyxVQUFJLFlBQVksT0FBTyxTQUFTLFFBQVEsU0FBUyxPQUFPLFdBQVcsT0FBTyxHQUFHO0FBRzdFLFVBQUksZ0JBQWdCLE9BQU87QUFBQSxRQUN6QixVQUFVLE1BQU0sVUFBVSxNQUFNLGtCQUFrQixRQUFRLENBQUMsU0FBUyxTQUFTLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSTtBQUFBLFFBQzlGLGNBQWMsTUFBTSxrQkFBa0IsUUFBUSxDQUFDLFNBQVMsVUFBVSxhQUFhLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSTtBQUFBLFFBQ2hHLFVBQVUsTUFBTSxjQUFjLE1BQU07QUFBQSxRQUNwQyxVQUFVLE1BQU07QUFBQSxRQUNoQjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0YsRUFBRSxLQUFLLEdBQUcsR0FBRyxHQUFHO0FBR2hCLFVBQUksZUFBZSxPQUFPLE1BQU0sUUFBUSxnQkFBaUIsZUFBZSxhQUFhLEdBQUc7QUFHeEYsVUFBSSxtQkFBbUI7QUFHdkIsVUFBSSxlQUFlO0FBQUEsUUFDakI7QUFBQSxRQUFTO0FBQUEsUUFBVTtBQUFBLFFBQVk7QUFBQSxRQUFRO0FBQUEsUUFBUztBQUFBLFFBQWdCO0FBQUEsUUFDaEU7QUFBQSxRQUFZO0FBQUEsUUFBYTtBQUFBLFFBQWM7QUFBQSxRQUFjO0FBQUEsUUFBTztBQUFBLFFBQVE7QUFBQSxRQUNwRTtBQUFBLFFBQVc7QUFBQSxRQUFVO0FBQUEsUUFBTztBQUFBLFFBQVU7QUFBQSxRQUFVO0FBQUEsUUFBYTtBQUFBLFFBQzdEO0FBQUEsUUFBcUI7QUFBQSxRQUFlO0FBQUEsUUFBZTtBQUFBLFFBQ25EO0FBQUEsUUFBSztBQUFBLFFBQWdCO0FBQUEsUUFBWTtBQUFBLFFBQVk7QUFBQSxNQUMvQztBQUdBLFVBQUksa0JBQWtCO0FBR3RCLFVBQUksaUJBQWlCLENBQUM7QUFDdEIscUJBQWUsY0FBYyxlQUFlLGNBQzVDLGVBQWUsV0FBVyxlQUFlLFlBQ3pDLGVBQWUsWUFBWSxlQUFlLFlBQzFDLGVBQWUsbUJBQW1CLGVBQWUsYUFDakQsZUFBZSxhQUFhO0FBQzVCLHFCQUFlLFdBQVcsZUFBZSxZQUN6QyxlQUFlLGtCQUFrQixlQUFlLFdBQ2hELGVBQWUsZUFBZSxlQUFlLFdBQzdDLGVBQWUsWUFBWSxlQUFlLFdBQzFDLGVBQWUsVUFBVSxlQUFlLGFBQ3hDLGVBQWUsYUFBYSxlQUFlLGFBQzNDLGVBQWUsVUFBVSxlQUFlLGFBQ3hDLGVBQWUsY0FBYztBQUc3QixVQUFJLGdCQUFnQixDQUFDO0FBQ3JCLG9CQUFjLFdBQVcsY0FBYyxZQUN2QyxjQUFjLGtCQUFrQixjQUFjLGVBQzlDLGNBQWMsV0FBVyxjQUFjLFdBQ3ZDLGNBQWMsY0FBYyxjQUFjLGNBQzFDLGNBQWMsV0FBVyxjQUFjLFlBQ3ZDLGNBQWMsWUFBWSxjQUFjLFVBQ3hDLGNBQWMsYUFBYSxjQUFjLGFBQ3pDLGNBQWMsYUFBYSxjQUFjLFVBQ3pDLGNBQWMsYUFBYSxjQUFjLGFBQ3pDLGNBQWMsWUFBWSxjQUFjLG1CQUN4QyxjQUFjLGFBQWEsY0FBYyxhQUFhO0FBQ3RELG9CQUFjLFlBQVksY0FBYyxXQUN4QyxjQUFjLGNBQWM7QUFHNUIsVUFBSSxrQkFBa0I7QUFBQSxRQUVwQixRQUFRO0FBQUEsUUFBTSxRQUFRO0FBQUEsUUFBSyxRQUFRO0FBQUEsUUFBSyxRQUFRO0FBQUEsUUFBSyxRQUFRO0FBQUEsUUFBSyxRQUFRO0FBQUEsUUFDMUUsUUFBUTtBQUFBLFFBQU0sUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQzFFLFFBQVE7QUFBQSxRQUFNLFFBQVE7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFBTSxRQUFRO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBQU0sUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQ2hELFFBQVE7QUFBQSxRQUFNLFFBQVE7QUFBQSxRQUFLLFFBQVE7QUFBQSxRQUFLLFFBQVE7QUFBQSxRQUNoRCxRQUFRO0FBQUEsUUFBTSxRQUFRO0FBQUEsUUFBSyxRQUFRO0FBQUEsUUFBSyxRQUFRO0FBQUEsUUFDaEQsUUFBUTtBQUFBLFFBQU0sUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQ2hELFFBQVE7QUFBQSxRQUFNLFFBQVE7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFBTSxRQUFRO0FBQUEsUUFBSyxRQUFRO0FBQUEsUUFBSyxRQUFRO0FBQUEsUUFBSyxRQUFRO0FBQUEsUUFBSyxRQUFRO0FBQUEsUUFDMUUsUUFBUTtBQUFBLFFBQU0sUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQzFFLFFBQVE7QUFBQSxRQUFNLFFBQVE7QUFBQSxRQUFLLFFBQVE7QUFBQSxRQUFLLFFBQVE7QUFBQSxRQUNoRCxRQUFRO0FBQUEsUUFBTSxRQUFRO0FBQUEsUUFBSyxRQUFRO0FBQUEsUUFBSyxRQUFRO0FBQUEsUUFDaEQsUUFBUTtBQUFBLFFBQU0sUUFBUTtBQUFBLFFBQUssUUFBUTtBQUFBLFFBQ25DLFFBQVE7QUFBQSxRQUFNLFFBQVE7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFBTSxRQUFRO0FBQUEsUUFDdEIsUUFBUTtBQUFBLFFBRVIsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQ3pDLFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUN6QyxVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFDeEQsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQ3hELFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUN4RCxVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFDdkUsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQ3ZFLFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUN4RCxVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFDeEQsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQ3hELFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUN2RSxVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFDdkUsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQzFCLFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUN6QyxVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFDdkUsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQ3ZFLFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUN4RCxVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFDeEQsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQ3pDLFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUN6QyxVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFDekMsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQ3pDLFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUN4RCxVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFDeEQsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQ3pDLFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUN6QyxVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFDdEYsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQ3RGLFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUMxQixVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFBSyxVQUFVO0FBQUEsUUFDekMsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQUssVUFBVTtBQUFBLFFBQ3pDLFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxRQUFLLFVBQVU7QUFBQSxRQUN6QyxVQUFVO0FBQUEsUUFBTSxVQUFVO0FBQUEsUUFDMUIsVUFBVTtBQUFBLFFBQU0sVUFBVTtBQUFBLFFBQzFCLFVBQVU7QUFBQSxRQUFNLFVBQVU7QUFBQSxNQUM1QjtBQUdBLFVBQUksY0FBYztBQUFBLFFBQ2hCLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxRQUNMLEtBQUs7QUFBQSxNQUNQO0FBR0EsVUFBSSxnQkFBZ0I7QUFBQSxRQUNsQixTQUFTO0FBQUEsUUFDVCxRQUFRO0FBQUEsUUFDUixRQUFRO0FBQUEsUUFDUixVQUFVO0FBQUEsUUFDVixTQUFTO0FBQUEsTUFDWDtBQUdBLFVBQUksZ0JBQWdCO0FBQUEsUUFDbEIsTUFBTTtBQUFBLFFBQ04sS0FBSztBQUFBLFFBQ0wsTUFBTTtBQUFBLFFBQ04sTUFBTTtBQUFBLFFBQ04sVUFBVTtBQUFBLFFBQ1YsVUFBVTtBQUFBLE1BQ1o7QUFHQSxVQUFJLGlCQUFpQixZQUNqQixlQUFlO0FBR25CLFVBQUksYUFBYSxPQUFPLFVBQVUsWUFBWSxVQUFVLE9BQU8sV0FBVyxVQUFVO0FBR3BGLFVBQUksV0FBVyxPQUFPLFFBQVEsWUFBWSxRQUFRLEtBQUssV0FBVyxVQUFVO0FBRzVFLFVBQUksUUFBTyxjQUFjLFlBQVksU0FBUyxhQUFhLEVBQUU7QUFHN0QsVUFBSSxjQUFjLE9BQU8sV0FBVyxZQUFZLFdBQVcsQ0FBQyxRQUFRLFlBQVk7QUFHaEYsVUFBSSxhQUFhLGVBQWUsT0FBTyxXQUFVLFlBQVksV0FBVSxDQUFDLFFBQU8sWUFBWTtBQUczRixVQUFJLGdCQUFnQixjQUFjLFdBQVcsWUFBWTtBQUd6RCxVQUFJLGNBQWMsaUJBQWlCLFdBQVc7QUFHOUMsVUFBSSxXQUFZLFdBQVc7QUFDekIsWUFBSTtBQUVGLGNBQUksUUFBUSxjQUFjLFdBQVcsV0FBVyxXQUFXLFFBQVEsTUFBTSxFQUFFO0FBRTNFLGNBQUksT0FBTztBQUNULG1CQUFPO0FBQUEsVUFDVDtBQUdBLGlCQUFPLGVBQWUsWUFBWSxXQUFXLFlBQVksUUFBUSxNQUFNO0FBQUEsUUFDekUsU0FBUyxHQUFQO0FBQUEsUUFBVztBQUFBLE1BQ2YsRUFBRTtBQUdGLFVBQUksb0JBQW9CLFlBQVksU0FBUyxlQUN6QyxhQUFhLFlBQVksU0FBUyxRQUNsQyxZQUFZLFlBQVksU0FBUyxPQUNqQyxlQUFlLFlBQVksU0FBUyxVQUNwQyxZQUFZLFlBQVksU0FBUyxPQUNqQyxtQkFBbUIsWUFBWSxTQUFTO0FBYzVDLHFCQUFlLE1BQU0sU0FBUyxNQUFNO0FBQ2xDLGdCQUFRLEtBQUs7QUFBQSxlQUNOO0FBQUcsbUJBQU8sS0FBSyxLQUFLLE9BQU87QUFBQSxlQUMzQjtBQUFHLG1CQUFPLEtBQUssS0FBSyxTQUFTLEtBQUssRUFBRTtBQUFBLGVBQ3BDO0FBQUcsbUJBQU8sS0FBSyxLQUFLLFNBQVMsS0FBSyxJQUFJLEtBQUssRUFBRTtBQUFBLGVBQzdDO0FBQUcsbUJBQU8sS0FBSyxLQUFLLFNBQVMsS0FBSyxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUU7QUFBQTtBQUU3RCxlQUFPLEtBQUssTUFBTSxTQUFTLElBQUk7QUFBQSxNQUNqQztBQVlBLCtCQUF5QixPQUFPLFFBQVEsVUFBVSxhQUFhO0FBQzdELFlBQUksU0FBUSxJQUNSLFNBQVMsU0FBUyxPQUFPLElBQUksTUFBTTtBQUV2QyxlQUFPLEVBQUUsU0FBUSxRQUFRO0FBQ3ZCLGNBQUksUUFBUSxNQUFNO0FBQ2xCLGlCQUFPLGFBQWEsT0FBTyxTQUFTLEtBQUssR0FBRyxLQUFLO0FBQUEsUUFDbkQ7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQVdBLHlCQUFtQixPQUFPLFVBQVU7QUFDbEMsWUFBSSxTQUFRLElBQ1IsU0FBUyxTQUFTLE9BQU8sSUFBSSxNQUFNO0FBRXZDLGVBQU8sRUFBRSxTQUFRLFFBQVE7QUFDdkIsY0FBSSxTQUFTLE1BQU0sU0FBUSxRQUFPLEtBQUssTUFBTSxPQUFPO0FBQ2xEO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQVdBLDhCQUF3QixPQUFPLFVBQVU7QUFDdkMsWUFBSSxTQUFTLFNBQVMsT0FBTyxJQUFJLE1BQU07QUFFdkMsZUFBTyxVQUFVO0FBQ2YsY0FBSSxTQUFTLE1BQU0sU0FBUyxRQUFRLEtBQUssTUFBTSxPQUFPO0FBQ3BEO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQVlBLDBCQUFvQixPQUFPLFdBQVc7QUFDcEMsWUFBSSxTQUFRLElBQ1IsU0FBUyxTQUFTLE9BQU8sSUFBSSxNQUFNO0FBRXZDLGVBQU8sRUFBRSxTQUFRLFFBQVE7QUFDdkIsY0FBSSxDQUFDLFVBQVUsTUFBTSxTQUFRLFFBQU8sS0FBSyxHQUFHO0FBQzFDLG1CQUFPO0FBQUEsVUFDVDtBQUFBLFFBQ0Y7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQVdBLDJCQUFxQixPQUFPLFdBQVc7QUFDckMsWUFBSSxTQUFRLElBQ1IsU0FBUyxTQUFTLE9BQU8sSUFBSSxNQUFNLFFBQ25DLFdBQVcsR0FDWCxTQUFTLENBQUM7QUFFZCxlQUFPLEVBQUUsU0FBUSxRQUFRO0FBQ3ZCLGNBQUksUUFBUSxNQUFNO0FBQ2xCLGNBQUksVUFBVSxPQUFPLFFBQU8sS0FBSyxHQUFHO0FBQ2xDLG1CQUFPLGNBQWM7QUFBQSxVQUN2QjtBQUFBLFFBQ0Y7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQVdBLDZCQUF1QixPQUFPLE9BQU87QUFDbkMsWUFBSSxTQUFTLFNBQVMsT0FBTyxJQUFJLE1BQU07QUFDdkMsZUFBTyxDQUFDLENBQUMsVUFBVSxZQUFZLE9BQU8sT0FBTyxDQUFDLElBQUk7QUFBQSxNQUNwRDtBQVdBLGlDQUEyQixPQUFPLE9BQU8sWUFBWTtBQUNuRCxZQUFJLFNBQVEsSUFDUixTQUFTLFNBQVMsT0FBTyxJQUFJLE1BQU07QUFFdkMsZUFBTyxFQUFFLFNBQVEsUUFBUTtBQUN2QixjQUFJLFdBQVcsT0FBTyxNQUFNLE9BQU0sR0FBRztBQUNuQyxtQkFBTztBQUFBLFVBQ1Q7QUFBQSxRQUNGO0FBQ0EsZUFBTztBQUFBLE1BQ1Q7QUFXQSx3QkFBa0IsT0FBTyxVQUFVO0FBQ2pDLFlBQUksU0FBUSxJQUNSLFNBQVMsU0FBUyxPQUFPLElBQUksTUFBTSxRQUNuQyxTQUFTLE1BQU0sTUFBTTtBQUV6QixlQUFPLEVBQUUsU0FBUSxRQUFRO0FBQ3ZCLGlCQUFPLFVBQVMsU0FBUyxNQUFNLFNBQVEsUUFBTyxLQUFLO0FBQUEsUUFDckQ7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQVVBLHlCQUFtQixPQUFPLFFBQVE7QUFDaEMsWUFBSSxTQUFRLElBQ1IsU0FBUyxPQUFPLFFBQ2hCLFNBQVMsTUFBTTtBQUVuQixlQUFPLEVBQUUsU0FBUSxRQUFRO0FBQ3ZCLGdCQUFNLFNBQVMsVUFBUyxPQUFPO0FBQUEsUUFDakM7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQWNBLDJCQUFxQixPQUFPLFVBQVUsYUFBYSxXQUFXO0FBQzVELFlBQUksU0FBUSxJQUNSLFNBQVMsU0FBUyxPQUFPLElBQUksTUFBTTtBQUV2QyxZQUFJLGFBQWEsUUFBUTtBQUN2Qix3QkFBYyxNQUFNLEVBQUU7QUFBQSxRQUN4QjtBQUNBLGVBQU8sRUFBRSxTQUFRLFFBQVE7QUFDdkIsd0JBQWMsU0FBUyxhQUFhLE1BQU0sU0FBUSxRQUFPLEtBQUs7QUFBQSxRQUNoRTtBQUNBLGVBQU87QUFBQSxNQUNUO0FBY0EsZ0NBQTBCLE9BQU8sVUFBVSxhQUFhLFdBQVc7QUFDakUsWUFBSSxTQUFTLFNBQVMsT0FBTyxJQUFJLE1BQU07QUFDdkMsWUFBSSxhQUFhLFFBQVE7QUFDdkIsd0JBQWMsTUFBTSxFQUFFO0FBQUEsUUFDeEI7QUFDQSxlQUFPLFVBQVU7QUFDZix3QkFBYyxTQUFTLGFBQWEsTUFBTSxTQUFTLFFBQVEsS0FBSztBQUFBLFFBQ2xFO0FBQ0EsZUFBTztBQUFBLE1BQ1Q7QUFZQSx5QkFBbUIsT0FBTyxXQUFXO0FBQ25DLFlBQUksU0FBUSxJQUNSLFNBQVMsU0FBUyxPQUFPLElBQUksTUFBTTtBQUV2QyxlQUFPLEVBQUUsU0FBUSxRQUFRO0FBQ3ZCLGNBQUksVUFBVSxNQUFNLFNBQVEsUUFBTyxLQUFLLEdBQUc7QUFDekMsbUJBQU87QUFBQSxVQUNUO0FBQUEsUUFDRjtBQUNBLGVBQU87QUFBQSxNQUNUO0FBU0EsVUFBSSxZQUFZLGFBQWEsUUFBUTtBQVNyQyw0QkFBc0IsUUFBUTtBQUM1QixlQUFPLE9BQU8sTUFBTSxFQUFFO0FBQUEsTUFDeEI7QUFTQSwwQkFBb0IsUUFBUTtBQUMxQixlQUFPLE9BQU8sTUFBTSxXQUFXLEtBQUssQ0FBQztBQUFBLE1BQ3ZDO0FBYUEsMkJBQXFCLFlBQVksV0FBVyxVQUFVO0FBQ3BELFlBQUk7QUFDSixpQkFBUyxZQUFZLFNBQVMsT0FBTyxLQUFLLGFBQVk7QUFDcEQsY0FBSSxVQUFVLE9BQU8sS0FBSyxXQUFVLEdBQUc7QUFDckMscUJBQVM7QUFDVCxtQkFBTztBQUFBLFVBQ1Q7QUFBQSxRQUNGLENBQUM7QUFDRCxlQUFPO0FBQUEsTUFDVDtBQWFBLDZCQUF1QixPQUFPLFdBQVcsV0FBVyxXQUFXO0FBQzdELFlBQUksU0FBUyxNQUFNLFFBQ2YsU0FBUSxZQUFhLGFBQVksSUFBSTtBQUV6QyxlQUFRLFlBQVksV0FBVSxFQUFFLFNBQVEsUUFBUztBQUMvQyxjQUFJLFVBQVUsTUFBTSxTQUFRLFFBQU8sS0FBSyxHQUFHO0FBQ3pDLG1CQUFPO0FBQUEsVUFDVDtBQUFBLFFBQ0Y7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQVdBLDJCQUFxQixPQUFPLE9BQU8sV0FBVztBQUM1QyxlQUFPLFVBQVUsUUFDYixjQUFjLE9BQU8sT0FBTyxTQUFTLElBQ3JDLGNBQWMsT0FBTyxXQUFXLFNBQVM7QUFBQSxNQUMvQztBQVlBLCtCQUF5QixPQUFPLE9BQU8sV0FBVyxZQUFZO0FBQzVELFlBQUksU0FBUSxZQUFZLEdBQ3BCLFNBQVMsTUFBTTtBQUVuQixlQUFPLEVBQUUsU0FBUSxRQUFRO0FBQ3ZCLGNBQUksV0FBVyxNQUFNLFNBQVEsS0FBSyxHQUFHO0FBQ25DLG1CQUFPO0FBQUEsVUFDVDtBQUFBLFFBQ0Y7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQVNBLHlCQUFtQixPQUFPO0FBQ3hCLGVBQU8sVUFBVTtBQUFBLE1BQ25CO0FBV0Esd0JBQWtCLE9BQU8sVUFBVTtBQUNqQyxZQUFJLFNBQVMsU0FBUyxPQUFPLElBQUksTUFBTTtBQUN2QyxlQUFPLFNBQVUsUUFBUSxPQUFPLFFBQVEsSUFBSSxTQUFVO0FBQUEsTUFDeEQ7QUFTQSw0QkFBc0IsS0FBSztBQUN6QixlQUFPLFNBQVMsUUFBUTtBQUN0QixpQkFBTyxVQUFVLE9BQU8sYUFBWSxPQUFPO0FBQUEsUUFDN0M7QUFBQSxNQUNGO0FBU0EsOEJBQXdCLFFBQVE7QUFDOUIsZUFBTyxTQUFTLEtBQUs7QUFDbkIsaUJBQU8sVUFBVSxPQUFPLGFBQVksT0FBTztBQUFBLFFBQzdDO0FBQUEsTUFDRjtBQWVBLDBCQUFvQixZQUFZLFVBQVUsYUFBYSxXQUFXLFVBQVU7QUFDMUUsaUJBQVMsWUFBWSxTQUFTLE9BQU8sUUFBTyxhQUFZO0FBQ3RELHdCQUFjLFlBQ1QsYUFBWSxPQUFPLFNBQ3BCLFNBQVMsYUFBYSxPQUFPLFFBQU8sV0FBVTtBQUFBLFFBQ3BELENBQUM7QUFDRCxlQUFPO0FBQUEsTUFDVDtBQVlBLDBCQUFvQixPQUFPLFVBQVU7QUFDbkMsWUFBSSxTQUFTLE1BQU07QUFFbkIsY0FBTSxLQUFLLFFBQVE7QUFDbkIsZUFBTyxVQUFVO0FBQ2YsZ0JBQU0sVUFBVSxNQUFNLFFBQVE7QUFBQSxRQUNoQztBQUNBLGVBQU87QUFBQSxNQUNUO0FBV0EsdUJBQWlCLE9BQU8sVUFBVTtBQUNoQyxZQUFJLFFBQ0EsU0FBUSxJQUNSLFNBQVMsTUFBTTtBQUVuQixlQUFPLEVBQUUsU0FBUSxRQUFRO0FBQ3ZCLGNBQUksVUFBVSxTQUFTLE1BQU0sT0FBTTtBQUNuQyxjQUFJLFlBQVksWUFBVztBQUN6QixxQkFBUyxXQUFXLGFBQVksVUFBVyxTQUFTO0FBQUEsVUFDdEQ7QUFBQSxRQUNGO0FBQ0EsZUFBTztBQUFBLE1BQ1Q7QUFXQSx5QkFBbUIsR0FBRyxVQUFVO0FBQzlCLFlBQUksU0FBUSxJQUNSLFNBQVMsTUFBTSxDQUFDO0FBRXBCLGVBQU8sRUFBRSxTQUFRLEdBQUc7QUFDbEIsaUJBQU8sVUFBUyxTQUFTLE1BQUs7QUFBQSxRQUNoQztBQUNBLGVBQU87QUFBQSxNQUNUO0FBV0EsMkJBQXFCLFFBQVEsT0FBTztBQUNsQyxlQUFPLFNBQVMsT0FBTyxTQUFTLEtBQUs7QUFDbkMsaUJBQU8sQ0FBQyxLQUFLLE9BQU8sSUFBSTtBQUFBLFFBQzFCLENBQUM7QUFBQSxNQUNIO0FBU0Esd0JBQWtCLFFBQVE7QUFDeEIsZUFBTyxTQUNILE9BQU8sTUFBTSxHQUFHLGdCQUFnQixNQUFNLElBQUksQ0FBQyxFQUFFLFFBQVEsYUFBYSxFQUFFLElBQ3BFO0FBQUEsTUFDTjtBQVNBLHlCQUFtQixNQUFNO0FBQ3ZCLGVBQU8sU0FBUyxPQUFPO0FBQ3JCLGlCQUFPLEtBQUssS0FBSztBQUFBLFFBQ25CO0FBQUEsTUFDRjtBQVlBLDBCQUFvQixRQUFRLE9BQU87QUFDakMsZUFBTyxTQUFTLE9BQU8sU0FBUyxLQUFLO0FBQ25DLGlCQUFPLE9BQU87QUFBQSxRQUNoQixDQUFDO0FBQUEsTUFDSDtBQVVBLHdCQUFrQixPQUFPLEtBQUs7QUFDNUIsZUFBTyxNQUFNLElBQUksR0FBRztBQUFBLE1BQ3RCO0FBV0EsK0JBQXlCLFlBQVksWUFBWTtBQUMvQyxZQUFJLFNBQVEsSUFDUixTQUFTLFdBQVc7QUFFeEIsZUFBTyxFQUFFLFNBQVEsVUFBVSxZQUFZLFlBQVksV0FBVyxTQUFRLENBQUMsSUFBSSxJQUFJO0FBQUEsUUFBQztBQUNoRixlQUFPO0FBQUEsTUFDVDtBQVdBLDZCQUF1QixZQUFZLFlBQVk7QUFDN0MsWUFBSSxTQUFRLFdBQVc7QUFFdkIsZUFBTyxZQUFXLFlBQVksWUFBWSxXQUFXLFNBQVEsQ0FBQyxJQUFJLElBQUk7QUFBQSxRQUFDO0FBQ3ZFLGVBQU87QUFBQSxNQUNUO0FBVUEsNEJBQXNCLE9BQU8sYUFBYTtBQUN4QyxZQUFJLFNBQVMsTUFBTSxRQUNmLFNBQVM7QUFFYixlQUFPLFVBQVU7QUFDZixjQUFJLE1BQU0sWUFBWSxhQUFhO0FBQ2pDLGNBQUU7QUFBQSxVQUNKO0FBQUEsUUFDRjtBQUNBLGVBQU87QUFBQSxNQUNUO0FBVUEsVUFBSSxlQUFlLGVBQWUsZUFBZTtBQVNqRCxVQUFJLGlCQUFpQixlQUFlLFdBQVc7QUFTL0MsZ0NBQTBCLEtBQUs7QUFDN0IsZUFBTyxPQUFPLGNBQWM7QUFBQSxNQUM5QjtBQVVBLHdCQUFrQixRQUFRLEtBQUs7QUFDN0IsZUFBTyxVQUFVLE9BQU8sYUFBWSxPQUFPO0FBQUEsTUFDN0M7QUFTQSwwQkFBb0IsUUFBUTtBQUMxQixlQUFPLGFBQWEsS0FBSyxNQUFNO0FBQUEsTUFDakM7QUFTQSw4QkFBd0IsUUFBUTtBQUM5QixlQUFPLGlCQUFpQixLQUFLLE1BQU07QUFBQSxNQUNyQztBQVNBLCtCQUF5QixVQUFVO0FBQ2pDLFlBQUksTUFDQSxTQUFTLENBQUM7QUFFZCxlQUFPLENBQUUsUUFBTyxTQUFTLEtBQUssR0FBRyxNQUFNO0FBQ3JDLGlCQUFPLEtBQUssS0FBSyxLQUFLO0FBQUEsUUFDeEI7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQVNBLDBCQUFvQixNQUFLO0FBQ3ZCLFlBQUksU0FBUSxJQUNSLFNBQVMsTUFBTSxLQUFJLElBQUk7QUFFM0IsYUFBSSxRQUFRLFNBQVMsT0FBTyxLQUFLO0FBQy9CLGlCQUFPLEVBQUUsVUFBUyxDQUFDLEtBQUssS0FBSztBQUFBLFFBQy9CLENBQUM7QUFDRCxlQUFPO0FBQUEsTUFDVDtBQVVBLHVCQUFpQixNQUFNLFlBQVc7QUFDaEMsZUFBTyxTQUFTLEtBQUs7QUFDbkIsaUJBQU8sS0FBSyxXQUFVLEdBQUcsQ0FBQztBQUFBLFFBQzVCO0FBQUEsTUFDRjtBQVdBLDhCQUF3QixPQUFPLGFBQWE7QUFDMUMsWUFBSSxTQUFRLElBQ1IsU0FBUyxNQUFNLFFBQ2YsV0FBVyxHQUNYLFNBQVMsQ0FBQztBQUVkLGVBQU8sRUFBRSxTQUFRLFFBQVE7QUFDdkIsY0FBSSxRQUFRLE1BQU07QUFDbEIsY0FBSSxVQUFVLGVBQWUsVUFBVSxhQUFhO0FBQ2xELGtCQUFNLFVBQVM7QUFDZixtQkFBTyxjQUFjO0FBQUEsVUFDdkI7QUFBQSxRQUNGO0FBQ0EsZUFBTztBQUFBLE1BQ1Q7QUFTQSwwQkFBb0IsTUFBSztBQUN2QixZQUFJLFNBQVEsSUFDUixTQUFTLE1BQU0sS0FBSSxJQUFJO0FBRTNCLGFBQUksUUFBUSxTQUFTLE9BQU87QUFDMUIsaUJBQU8sRUFBRSxVQUFTO0FBQUEsUUFDcEIsQ0FBQztBQUNELGVBQU87QUFBQSxNQUNUO0FBU0EsMEJBQW9CLE1BQUs7QUFDdkIsWUFBSSxTQUFRLElBQ1IsU0FBUyxNQUFNLEtBQUksSUFBSTtBQUUzQixhQUFJLFFBQVEsU0FBUyxPQUFPO0FBQzFCLGlCQUFPLEVBQUUsVUFBUyxDQUFDLE9BQU8sS0FBSztBQUFBLFFBQ2pDLENBQUM7QUFDRCxlQUFPO0FBQUEsTUFDVDtBQVlBLDZCQUF1QixPQUFPLE9BQU8sV0FBVztBQUM5QyxZQUFJLFNBQVEsWUFBWSxHQUNwQixTQUFTLE1BQU07QUFFbkIsZUFBTyxFQUFFLFNBQVEsUUFBUTtBQUN2QixjQUFJLE1BQU0sWUFBVyxPQUFPO0FBQzFCLG1CQUFPO0FBQUEsVUFDVDtBQUFBLFFBQ0Y7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQVlBLGlDQUEyQixPQUFPLE9BQU8sV0FBVztBQUNsRCxZQUFJLFNBQVEsWUFBWTtBQUN4QixlQUFPLFVBQVM7QUFDZCxjQUFJLE1BQU0sWUFBVyxPQUFPO0FBQzFCLG1CQUFPO0FBQUEsVUFDVDtBQUFBLFFBQ0Y7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQVNBLDBCQUFvQixRQUFRO0FBQzFCLGVBQU8sV0FBVyxNQUFNLElBQ3BCLFlBQVksTUFBTSxJQUNsQixVQUFVLE1BQU07QUFBQSxNQUN0QjtBQVNBLDZCQUF1QixRQUFRO0FBQzdCLGVBQU8sV0FBVyxNQUFNLElBQ3BCLGVBQWUsTUFBTSxJQUNyQixhQUFhLE1BQU07QUFBQSxNQUN6QjtBQVVBLCtCQUF5QixRQUFRO0FBQy9CLFlBQUksU0FBUSxPQUFPO0FBRW5CLGVBQU8sWUFBVyxhQUFhLEtBQUssT0FBTyxPQUFPLE1BQUssQ0FBQyxHQUFHO0FBQUEsUUFBQztBQUM1RCxlQUFPO0FBQUEsTUFDVDtBQVNBLFVBQUksbUJBQW1CLGVBQWUsYUFBYTtBQVNuRCwyQkFBcUIsUUFBUTtBQUMzQixZQUFJLFNBQVMsVUFBVSxZQUFZO0FBQ25DLGVBQU8sVUFBVSxLQUFLLE1BQU0sR0FBRztBQUM3QixZQUFFO0FBQUEsUUFDSjtBQUNBLGVBQU87QUFBQSxNQUNUO0FBU0EsOEJBQXdCLFFBQVE7QUFDOUIsZUFBTyxPQUFPLE1BQU0sU0FBUyxLQUFLLENBQUM7QUFBQSxNQUNyQztBQVNBLDRCQUFzQixRQUFRO0FBQzVCLGVBQU8sT0FBTyxNQUFNLGFBQWEsS0FBSyxDQUFDO0FBQUEsTUFDekM7QUFpQ0EsVUFBSSxlQUFnQix1QkFBc0IsU0FBUztBQUNqRCxrQkFBVSxXQUFXLE9BQU8sUUFBTyxFQUFFLFNBQVMsTUFBSyxPQUFPLEdBQUcsU0FBUyxFQUFFLEtBQUssT0FBTSxZQUFZLENBQUM7QUFHaEcsWUFBSSxTQUFRLFFBQVEsT0FDaEIsUUFBTyxRQUFRLE1BQ2YsU0FBUSxRQUFRLE9BQ2hCLFlBQVcsUUFBUSxVQUNuQixRQUFPLFFBQVEsTUFDZixVQUFTLFFBQVEsUUFDakIsVUFBUyxRQUFRLFFBQ2pCLFVBQVMsUUFBUSxRQUNqQixhQUFZLFFBQVE7QUFHeEIsWUFBSSxhQUFhLE9BQU0sV0FDbkIsWUFBWSxVQUFTLFdBQ3JCLGNBQWMsUUFBTztBQUd6QixZQUFJLGFBQWEsUUFBUTtBQUd6QixZQUFJLGVBQWUsVUFBVTtBQUc3QixZQUFJLGlCQUFpQixZQUFZO0FBR2pDLFlBQUksWUFBWTtBQUdoQixZQUFJLGFBQWMsV0FBVztBQUMzQixjQUFJLE1BQU0sU0FBUyxLQUFLLGNBQWMsV0FBVyxRQUFRLFdBQVcsS0FBSyxZQUFZLEVBQUU7QUFDdkYsaUJBQU8sTUFBTyxtQkFBbUIsTUFBTztBQUFBLFFBQzFDLEVBQUU7QUFPRixZQUFJLHVCQUF1QixZQUFZO0FBR3ZDLFlBQUksbUJBQW1CLGFBQWEsS0FBSyxPQUFNO0FBRy9DLFlBQUksVUFBVSxNQUFLO0FBR25CLFlBQUksYUFBYSxRQUFPLE1BQ3RCLGFBQWEsS0FBSyxjQUFjLEVBQUUsUUFBUSxjQUFjLE1BQU0sRUFDN0QsUUFBUSwwREFBMEQsT0FBTyxJQUFJLEdBQ2hGO0FBR0EsWUFBSSxVQUFTLGdCQUFnQixRQUFRLFNBQVMsWUFDMUMsVUFBUyxRQUFRLFFBQ2pCLGNBQWEsUUFBUSxZQUNyQixjQUFjLFVBQVMsUUFBTyxjQUFjLFlBQzVDLGVBQWUsUUFBUSxRQUFPLGdCQUFnQixPQUFNLEdBQ3BELGVBQWUsUUFBTyxRQUN0Qix1QkFBdUIsWUFBWSxzQkFDbkMsU0FBUyxXQUFXLFFBQ3BCLG1CQUFtQixVQUFTLFFBQU8scUJBQXFCLFlBQ3hELGNBQWMsVUFBUyxRQUFPLFdBQVcsWUFDekMsaUJBQWlCLFVBQVMsUUFBTyxjQUFjO0FBRW5ELFlBQUksaUJBQWtCLFdBQVc7QUFDL0IsY0FBSTtBQUNGLGdCQUFJLE9BQU8sVUFBVSxTQUFRLGdCQUFnQjtBQUM3QyxpQkFBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDZixtQkFBTztBQUFBLFVBQ1QsU0FBUyxHQUFQO0FBQUEsVUFBVztBQUFBLFFBQ2YsRUFBRTtBQUdGLFlBQUksa0JBQWtCLFFBQVEsaUJBQWlCLE1BQUssZ0JBQWdCLFFBQVEsY0FDeEUsU0FBUyxTQUFRLE1BQUssUUFBUSxNQUFLLEtBQUssT0FBTyxNQUFLLEtBQ3BELGdCQUFnQixRQUFRLGVBQWUsTUFBSyxjQUFjLFFBQVE7QUFHdEUsWUFBSSxhQUFhLE1BQUssTUFDbEIsY0FBYyxNQUFLLE9BQ25CLG1CQUFtQixRQUFPLHVCQUMxQixpQkFBaUIsVUFBUyxRQUFPLFdBQVcsWUFDNUMsaUJBQWlCLFFBQVEsVUFDekIsYUFBYSxXQUFXLE1BQ3hCLGFBQWEsUUFBUSxRQUFPLE1BQU0sT0FBTSxHQUN4QyxZQUFZLE1BQUssS0FDakIsWUFBWSxNQUFLLEtBQ2pCLFlBQVksTUFBSyxLQUNqQixpQkFBaUIsUUFBUSxVQUN6QixlQUFlLE1BQUssUUFDcEIsZ0JBQWdCLFdBQVc7QUFHL0IsWUFBSSxZQUFXLFVBQVUsU0FBUyxVQUFVLEdBQ3hDLE9BQU0sVUFBVSxTQUFTLEtBQUssR0FDOUIsV0FBVSxVQUFVLFNBQVMsU0FBUyxHQUN0QyxPQUFNLFVBQVUsU0FBUyxLQUFLLEdBQzlCLFVBQVUsVUFBVSxTQUFTLFNBQVMsR0FDdEMsZUFBZSxVQUFVLFNBQVEsUUFBUTtBQUc3QyxZQUFJLFVBQVUsV0FBVyxJQUFJO0FBRzdCLFlBQUksWUFBWSxDQUFDO0FBR2pCLFlBQUkscUJBQXFCLFNBQVMsU0FBUSxHQUN0QyxnQkFBZ0IsU0FBUyxJQUFHLEdBQzVCLG9CQUFvQixTQUFTLFFBQU8sR0FDcEMsZ0JBQWdCLFNBQVMsSUFBRyxHQUM1QixvQkFBb0IsU0FBUyxPQUFPO0FBR3hDLFlBQUksY0FBYyxVQUFTLFFBQU8sWUFBWSxZQUMxQyxnQkFBZ0IsY0FBYyxZQUFZLFVBQVUsWUFDcEQsaUJBQWlCLGNBQWMsWUFBWSxXQUFXO0FBeUgxRCx3QkFBZ0IsT0FBTztBQUNyQixjQUFJLGFBQWEsS0FBSyxLQUFLLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBRSxrQkFBaUIsY0FBYztBQUM3RSxnQkFBSSxpQkFBaUIsZUFBZTtBQUNsQyxxQkFBTztBQUFBLFlBQ1Q7QUFDQSxnQkFBSSxlQUFlLEtBQUssT0FBTyxhQUFhLEdBQUc7QUFDN0MscUJBQU8sYUFBYSxLQUFLO0FBQUEsWUFDM0I7QUFBQSxVQUNGO0FBQ0EsaUJBQU8sSUFBSSxjQUFjLEtBQUs7QUFBQSxRQUNoQztBQVVBLFlBQUksYUFBYyxXQUFXO0FBQzNCLDRCQUFrQjtBQUFBLFVBQUM7QUFDbkIsaUJBQU8sU0FBUyxPQUFPO0FBQ3JCLGdCQUFJLENBQUMsU0FBUyxLQUFLLEdBQUc7QUFDcEIscUJBQU8sQ0FBQztBQUFBLFlBQ1Y7QUFDQSxnQkFBSSxjQUFjO0FBQ2hCLHFCQUFPLGFBQWEsS0FBSztBQUFBLFlBQzNCO0FBQ0EsbUJBQU8sWUFBWTtBQUNuQixnQkFBSSxVQUFTLElBQUk7QUFDakIsbUJBQU8sWUFBWTtBQUNuQixtQkFBTztBQUFBLFVBQ1Q7QUFBQSxRQUNGLEVBQUU7QUFPRiw4QkFBc0I7QUFBQSxRQUV0QjtBQVNBLCtCQUF1QixPQUFPLFVBQVU7QUFDdEMsZUFBSyxjQUFjO0FBQ25CLGVBQUssY0FBYyxDQUFDO0FBQ3BCLGVBQUssWUFBWSxDQUFDLENBQUM7QUFDbkIsZUFBSyxZQUFZO0FBQ2pCLGVBQUssYUFBYTtBQUFBLFFBQ3BCO0FBV0EsZUFBTyxtQkFBbUI7QUFBQSxVQVF4QixVQUFVO0FBQUEsVUFRVixZQUFZO0FBQUEsVUFRWixlQUFlO0FBQUEsVUFRZixZQUFZO0FBQUEsVUFRWixXQUFXO0FBQUEsWUFRVCxLQUFLO0FBQUEsVUFDUDtBQUFBLFFBQ0Y7QUFHQSxlQUFPLFlBQVksV0FBVztBQUM5QixlQUFPLFVBQVUsY0FBYztBQUUvQixzQkFBYyxZQUFZLFdBQVcsV0FBVyxTQUFTO0FBQ3pELHNCQUFjLFVBQVUsY0FBYztBQVd0Qyw2QkFBcUIsT0FBTztBQUMxQixlQUFLLGNBQWM7QUFDbkIsZUFBSyxjQUFjLENBQUM7QUFDcEIsZUFBSyxVQUFVO0FBQ2YsZUFBSyxlQUFlO0FBQ3BCLGVBQUssZ0JBQWdCLENBQUM7QUFDdEIsZUFBSyxnQkFBZ0I7QUFDckIsZUFBSyxZQUFZLENBQUM7QUFBQSxRQUNwQjtBQVVBLDZCQUFxQjtBQUNuQixjQUFJLFVBQVMsSUFBSSxZQUFZLEtBQUssV0FBVztBQUM3QyxrQkFBTyxjQUFjLFVBQVUsS0FBSyxXQUFXO0FBQy9DLGtCQUFPLFVBQVUsS0FBSztBQUN0QixrQkFBTyxlQUFlLEtBQUs7QUFDM0Isa0JBQU8sZ0JBQWdCLFVBQVUsS0FBSyxhQUFhO0FBQ25ELGtCQUFPLGdCQUFnQixLQUFLO0FBQzVCLGtCQUFPLFlBQVksVUFBVSxLQUFLLFNBQVM7QUFDM0MsaUJBQU87QUFBQSxRQUNUO0FBVUEsK0JBQXVCO0FBQ3JCLGNBQUksS0FBSyxjQUFjO0FBQ3JCLGdCQUFJLFVBQVMsSUFBSSxZQUFZLElBQUk7QUFDakMsb0JBQU8sVUFBVTtBQUNqQixvQkFBTyxlQUFlO0FBQUEsVUFDeEIsT0FBTztBQUNMLHNCQUFTLEtBQUssTUFBTTtBQUNwQixvQkFBTyxXQUFXO0FBQUEsVUFDcEI7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFVQSw2QkFBcUI7QUFDbkIsY0FBSSxRQUFRLEtBQUssWUFBWSxNQUFNLEdBQy9CLE1BQU0sS0FBSyxTQUNYLFFBQVEsUUFBUSxLQUFLLEdBQ3JCLFVBQVUsTUFBTSxHQUNoQixZQUFZLFFBQVEsTUFBTSxTQUFTLEdBQ25DLE9BQU8sUUFBUSxHQUFHLFdBQVcsS0FBSyxTQUFTLEdBQzNDLFNBQVEsS0FBSyxPQUNiLE1BQU0sS0FBSyxLQUNYLFNBQVMsTUFBTSxRQUNmLFNBQVEsVUFBVSxNQUFPLFNBQVEsR0FDakMsWUFBWSxLQUFLLGVBQ2pCLGFBQWEsVUFBVSxRQUN2QixXQUFXLEdBQ1gsWUFBWSxVQUFVLFFBQVEsS0FBSyxhQUFhO0FBRXBELGNBQUksQ0FBQyxTQUFVLENBQUMsV0FBVyxhQUFhLFVBQVUsYUFBYSxRQUFTO0FBQ3RFLG1CQUFPLGlCQUFpQixPQUFPLEtBQUssV0FBVztBQUFBLFVBQ2pEO0FBQ0EsY0FBSSxVQUFTLENBQUM7QUFFZDtBQUNBLG1CQUFPLFlBQVksV0FBVyxXQUFXO0FBQ3ZDLHdCQUFTO0FBRVQsa0JBQUksWUFBWSxJQUNaLFFBQVEsTUFBTTtBQUVsQixxQkFBTyxFQUFFLFlBQVksWUFBWTtBQUMvQixvQkFBSSxPQUFPLFVBQVUsWUFDakIsWUFBVyxLQUFLLFVBQ2hCLFFBQU8sS0FBSyxNQUNaLFdBQVcsVUFBUyxLQUFLO0FBRTdCLG9CQUFJLFNBQVEsZUFBZTtBQUN6QiwwQkFBUTtBQUFBLGdCQUNWLFdBQVcsQ0FBQyxVQUFVO0FBQ3BCLHNCQUFJLFNBQVEsa0JBQWtCO0FBQzVCO0FBQUEsa0JBQ0YsT0FBTztBQUNMO0FBQUEsa0JBQ0Y7QUFBQSxnQkFDRjtBQUFBLGNBQ0Y7QUFDQSxzQkFBTyxjQUFjO0FBQUEsWUFDdkI7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFHQSxvQkFBWSxZQUFZLFdBQVcsV0FBVyxTQUFTO0FBQ3ZELG9CQUFZLFVBQVUsY0FBYztBQVdwQyxzQkFBYyxTQUFTO0FBQ3JCLGNBQUksU0FBUSxJQUNSLFNBQVMsV0FBVyxPQUFPLElBQUksUUFBUTtBQUUzQyxlQUFLLE1BQU07QUFDWCxpQkFBTyxFQUFFLFNBQVEsUUFBUTtBQUN2QixnQkFBSSxRQUFRLFFBQVE7QUFDcEIsaUJBQUssSUFBSSxNQUFNLElBQUksTUFBTSxFQUFFO0FBQUEsVUFDN0I7QUFBQSxRQUNGO0FBU0EsNkJBQXFCO0FBQ25CLGVBQUssV0FBVyxlQUFlLGFBQWEsSUFBSSxJQUFJLENBQUM7QUFDckQsZUFBSyxPQUFPO0FBQUEsUUFDZDtBQVlBLDRCQUFvQixLQUFLO0FBQ3ZCLGNBQUksVUFBUyxLQUFLLElBQUksR0FBRyxLQUFLLE9BQU8sS0FBSyxTQUFTO0FBQ25ELGVBQUssUUFBUSxVQUFTLElBQUk7QUFDMUIsaUJBQU87QUFBQSxRQUNUO0FBV0EseUJBQWlCLEtBQUs7QUFDcEIsY0FBSSxPQUFPLEtBQUs7QUFDaEIsY0FBSSxjQUFjO0FBQ2hCLGdCQUFJLFVBQVMsS0FBSztBQUNsQixtQkFBTyxZQUFXLGlCQUFpQixhQUFZO0FBQUEsVUFDakQ7QUFDQSxpQkFBTyxlQUFlLEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxPQUFPO0FBQUEsUUFDdEQ7QUFXQSx5QkFBaUIsS0FBSztBQUNwQixjQUFJLE9BQU8sS0FBSztBQUNoQixpQkFBTyxlQUFnQixLQUFLLFNBQVMsYUFBYSxlQUFlLEtBQUssTUFBTSxHQUFHO0FBQUEsUUFDakY7QUFZQSx5QkFBaUIsS0FBSyxPQUFPO0FBQzNCLGNBQUksT0FBTyxLQUFLO0FBQ2hCLGVBQUssUUFBUSxLQUFLLElBQUksR0FBRyxJQUFJLElBQUk7QUFDakMsZUFBSyxPQUFRLGdCQUFnQixVQUFVLGFBQWEsaUJBQWlCO0FBQ3JFLGlCQUFPO0FBQUEsUUFDVDtBQUdBLGFBQUssVUFBVSxRQUFRO0FBQ3ZCLGFBQUssVUFBVSxZQUFZO0FBQzNCLGFBQUssVUFBVSxNQUFNO0FBQ3JCLGFBQUssVUFBVSxNQUFNO0FBQ3JCLGFBQUssVUFBVSxNQUFNO0FBV3JCLDJCQUFtQixTQUFTO0FBQzFCLGNBQUksU0FBUSxJQUNSLFNBQVMsV0FBVyxPQUFPLElBQUksUUFBUTtBQUUzQyxlQUFLLE1BQU07QUFDWCxpQkFBTyxFQUFFLFNBQVEsUUFBUTtBQUN2QixnQkFBSSxRQUFRLFFBQVE7QUFDcEIsaUJBQUssSUFBSSxNQUFNLElBQUksTUFBTSxFQUFFO0FBQUEsVUFDN0I7QUFBQSxRQUNGO0FBU0Esa0NBQTBCO0FBQ3hCLGVBQUssV0FBVyxDQUFDO0FBQ2pCLGVBQUssT0FBTztBQUFBLFFBQ2Q7QUFXQSxpQ0FBeUIsS0FBSztBQUM1QixjQUFJLE9BQU8sS0FBSyxVQUNaLFNBQVEsYUFBYSxNQUFNLEdBQUc7QUFFbEMsY0FBSSxTQUFRLEdBQUc7QUFDYixtQkFBTztBQUFBLFVBQ1Q7QUFDQSxjQUFJLFlBQVksS0FBSyxTQUFTO0FBQzlCLGNBQUksVUFBUyxXQUFXO0FBQ3RCLGlCQUFLLElBQUk7QUFBQSxVQUNYLE9BQU87QUFDTCxtQkFBTyxLQUFLLE1BQU0sUUFBTyxDQUFDO0FBQUEsVUFDNUI7QUFDQSxZQUFFLEtBQUs7QUFDUCxpQkFBTztBQUFBLFFBQ1Q7QUFXQSw4QkFBc0IsS0FBSztBQUN6QixjQUFJLE9BQU8sS0FBSyxVQUNaLFNBQVEsYUFBYSxNQUFNLEdBQUc7QUFFbEMsaUJBQU8sU0FBUSxJQUFJLGFBQVksS0FBSyxRQUFPO0FBQUEsUUFDN0M7QUFXQSw4QkFBc0IsS0FBSztBQUN6QixpQkFBTyxhQUFhLEtBQUssVUFBVSxHQUFHLElBQUk7QUFBQSxRQUM1QztBQVlBLDhCQUFzQixLQUFLLE9BQU87QUFDaEMsY0FBSSxPQUFPLEtBQUssVUFDWixTQUFRLGFBQWEsTUFBTSxHQUFHO0FBRWxDLGNBQUksU0FBUSxHQUFHO0FBQ2IsY0FBRSxLQUFLO0FBQ1AsaUJBQUssS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDO0FBQUEsVUFDeEIsT0FBTztBQUNMLGlCQUFLLFFBQU8sS0FBSztBQUFBLFVBQ25CO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBR0Esa0JBQVUsVUFBVSxRQUFRO0FBQzVCLGtCQUFVLFVBQVUsWUFBWTtBQUNoQyxrQkFBVSxVQUFVLE1BQU07QUFDMUIsa0JBQVUsVUFBVSxNQUFNO0FBQzFCLGtCQUFVLFVBQVUsTUFBTTtBQVcxQiwwQkFBa0IsU0FBUztBQUN6QixjQUFJLFNBQVEsSUFDUixTQUFTLFdBQVcsT0FBTyxJQUFJLFFBQVE7QUFFM0MsZUFBSyxNQUFNO0FBQ1gsaUJBQU8sRUFBRSxTQUFRLFFBQVE7QUFDdkIsZ0JBQUksUUFBUSxRQUFRO0FBQ3BCLGlCQUFLLElBQUksTUFBTSxJQUFJLE1BQU0sRUFBRTtBQUFBLFVBQzdCO0FBQUEsUUFDRjtBQVNBLGlDQUF5QjtBQUN2QixlQUFLLE9BQU87QUFDWixlQUFLLFdBQVc7QUFBQSxZQUNkLFFBQVEsSUFBSTtBQUFBLFlBQ1osT0FBTyxJQUFLLFNBQU87QUFBQSxZQUNuQixVQUFVLElBQUk7QUFBQSxVQUNoQjtBQUFBLFFBQ0Y7QUFXQSxnQ0FBd0IsS0FBSztBQUMzQixjQUFJLFVBQVMsV0FBVyxNQUFNLEdBQUcsRUFBRSxVQUFVLEdBQUc7QUFDaEQsZUFBSyxRQUFRLFVBQVMsSUFBSTtBQUMxQixpQkFBTztBQUFBLFFBQ1Q7QUFXQSw2QkFBcUIsS0FBSztBQUN4QixpQkFBTyxXQUFXLE1BQU0sR0FBRyxFQUFFLElBQUksR0FBRztBQUFBLFFBQ3RDO0FBV0EsNkJBQXFCLEtBQUs7QUFDeEIsaUJBQU8sV0FBVyxNQUFNLEdBQUcsRUFBRSxJQUFJLEdBQUc7QUFBQSxRQUN0QztBQVlBLDZCQUFxQixLQUFLLE9BQU87QUFDL0IsY0FBSSxPQUFPLFdBQVcsTUFBTSxHQUFHLEdBQzNCLFFBQU8sS0FBSztBQUVoQixlQUFLLElBQUksS0FBSyxLQUFLO0FBQ25CLGVBQUssUUFBUSxLQUFLLFFBQVEsUUFBTyxJQUFJO0FBQ3JDLGlCQUFPO0FBQUEsUUFDVDtBQUdBLGlCQUFTLFVBQVUsUUFBUTtBQUMzQixpQkFBUyxVQUFVLFlBQVk7QUFDL0IsaUJBQVMsVUFBVSxNQUFNO0FBQ3pCLGlCQUFTLFVBQVUsTUFBTTtBQUN6QixpQkFBUyxVQUFVLE1BQU07QUFZekIsMEJBQWtCLFNBQVE7QUFDeEIsY0FBSSxTQUFRLElBQ1IsU0FBUyxXQUFVLE9BQU8sSUFBSSxRQUFPO0FBRXpDLGVBQUssV0FBVyxJQUFJO0FBQ3BCLGlCQUFPLEVBQUUsU0FBUSxRQUFRO0FBQ3ZCLGlCQUFLLElBQUksUUFBTyxPQUFNO0FBQUEsVUFDeEI7QUFBQSxRQUNGO0FBWUEsNkJBQXFCLE9BQU87QUFDMUIsZUFBSyxTQUFTLElBQUksT0FBTyxjQUFjO0FBQ3ZDLGlCQUFPO0FBQUEsUUFDVDtBQVdBLDZCQUFxQixPQUFPO0FBQzFCLGlCQUFPLEtBQUssU0FBUyxJQUFJLEtBQUs7QUFBQSxRQUNoQztBQUdBLGlCQUFTLFVBQVUsTUFBTSxTQUFTLFVBQVUsT0FBTztBQUNuRCxpQkFBUyxVQUFVLE1BQU07QUFXekIsdUJBQWUsU0FBUztBQUN0QixjQUFJLE9BQU8sS0FBSyxXQUFXLElBQUksVUFBVSxPQUFPO0FBQ2hELGVBQUssT0FBTyxLQUFLO0FBQUEsUUFDbkI7QUFTQSw4QkFBc0I7QUFDcEIsZUFBSyxXQUFXLElBQUk7QUFDcEIsZUFBSyxPQUFPO0FBQUEsUUFDZDtBQVdBLDZCQUFxQixLQUFLO0FBQ3hCLGNBQUksT0FBTyxLQUFLLFVBQ1osVUFBUyxLQUFLLFVBQVUsR0FBRztBQUUvQixlQUFLLE9BQU8sS0FBSztBQUNqQixpQkFBTztBQUFBLFFBQ1Q7QUFXQSwwQkFBa0IsS0FBSztBQUNyQixpQkFBTyxLQUFLLFNBQVMsSUFBSSxHQUFHO0FBQUEsUUFDOUI7QUFXQSwwQkFBa0IsS0FBSztBQUNyQixpQkFBTyxLQUFLLFNBQVMsSUFBSSxHQUFHO0FBQUEsUUFDOUI7QUFZQSwwQkFBa0IsS0FBSyxPQUFPO0FBQzVCLGNBQUksT0FBTyxLQUFLO0FBQ2hCLGNBQUksZ0JBQWdCLFdBQVc7QUFDN0IsZ0JBQUksUUFBUSxLQUFLO0FBQ2pCLGdCQUFJLENBQUMsUUFBUSxNQUFNLFNBQVMsbUJBQW1CLEdBQUk7QUFDakQsb0JBQU0sS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDO0FBQ3ZCLG1CQUFLLE9BQU8sRUFBRSxLQUFLO0FBQ25CLHFCQUFPO0FBQUEsWUFDVDtBQUNBLG1CQUFPLEtBQUssV0FBVyxJQUFJLFNBQVMsS0FBSztBQUFBLFVBQzNDO0FBQ0EsZUFBSyxJQUFJLEtBQUssS0FBSztBQUNuQixlQUFLLE9BQU8sS0FBSztBQUNqQixpQkFBTztBQUFBLFFBQ1Q7QUFHQSxjQUFNLFVBQVUsUUFBUTtBQUN4QixjQUFNLFVBQVUsWUFBWTtBQUM1QixjQUFNLFVBQVUsTUFBTTtBQUN0QixjQUFNLFVBQVUsTUFBTTtBQUN0QixjQUFNLFVBQVUsTUFBTTtBQVl0QiwrQkFBdUIsT0FBTyxXQUFXO0FBQ3ZDLGNBQUksUUFBUSxRQUFRLEtBQUssR0FDckIsUUFBUSxDQUFDLFNBQVMsWUFBWSxLQUFLLEdBQ25DLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxTQUFTLEtBQUssR0FDM0MsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsVUFBVSxhQUFhLEtBQUssR0FDMUQsY0FBYyxTQUFTLFNBQVMsVUFBVSxRQUMxQyxVQUFTLGNBQWMsVUFBVSxNQUFNLFFBQVEsT0FBTSxJQUFJLENBQUMsR0FDMUQsU0FBUyxRQUFPO0FBRXBCLG1CQUFTLE9BQU8sT0FBTztBQUNyQixnQkFBSyxjQUFhLGVBQWUsS0FBSyxPQUFPLEdBQUcsTUFDNUMsQ0FBRSxnQkFFQyxRQUFPLFlBRU4sVUFBVyxRQUFPLFlBQVksT0FBTyxhQUVyQyxVQUFXLFFBQU8sWUFBWSxPQUFPLGdCQUFnQixPQUFPLGlCQUU3RCxRQUFRLEtBQUssTUFBTSxLQUNsQjtBQUNOLHNCQUFPLEtBQUssR0FBRztBQUFBLFlBQ2pCO0FBQUEsVUFDRjtBQUNBLGlCQUFPO0FBQUEsUUFDVDtBQVNBLDZCQUFxQixPQUFPO0FBQzFCLGNBQUksU0FBUyxNQUFNO0FBQ25CLGlCQUFPLFNBQVMsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLEtBQUs7QUFBQSxRQUNyRDtBQVVBLGlDQUF5QixPQUFPLEdBQUc7QUFDakMsaUJBQU8sWUFBWSxVQUFVLEtBQUssR0FBRyxVQUFVLEdBQUcsR0FBRyxNQUFNLE1BQU0sQ0FBQztBQUFBLFFBQ3BFO0FBU0EsOEJBQXNCLE9BQU87QUFDM0IsaUJBQU8sWUFBWSxVQUFVLEtBQUssQ0FBQztBQUFBLFFBQ3JDO0FBV0Esa0NBQTBCLFFBQVEsS0FBSyxPQUFPO0FBQzVDLGNBQUssVUFBVSxjQUFhLENBQUMsR0FBRyxPQUFPLE1BQU0sS0FBSyxLQUM3QyxVQUFVLGNBQWEsQ0FBRSxRQUFPLFNBQVU7QUFDN0MsNEJBQWdCLFFBQVEsS0FBSyxLQUFLO0FBQUEsVUFDcEM7QUFBQSxRQUNGO0FBWUEsNkJBQXFCLFFBQVEsS0FBSyxPQUFPO0FBQ3ZDLGNBQUksV0FBVyxPQUFPO0FBQ3RCLGNBQUksQ0FBRSxnQkFBZSxLQUFLLFFBQVEsR0FBRyxLQUFLLEdBQUcsVUFBVSxLQUFLLE1BQ3ZELFVBQVUsY0FBYSxDQUFFLFFBQU8sU0FBVTtBQUM3Qyw0QkFBZ0IsUUFBUSxLQUFLLEtBQUs7QUFBQSxVQUNwQztBQUFBLFFBQ0Y7QUFVQSw4QkFBc0IsT0FBTyxLQUFLO0FBQ2hDLGNBQUksU0FBUyxNQUFNO0FBQ25CLGlCQUFPLFVBQVU7QUFDZixnQkFBSSxHQUFHLE1BQU0sUUFBUSxJQUFJLEdBQUcsR0FBRztBQUM3QixxQkFBTztBQUFBLFlBQ1Q7QUFBQSxVQUNGO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBYUEsZ0NBQXdCLFlBQVksUUFBUSxXQUFVLGFBQWE7QUFDakUsbUJBQVMsWUFBWSxTQUFTLE9BQU8sS0FBSyxhQUFZO0FBQ3BELG1CQUFPLGFBQWEsT0FBTyxVQUFTLEtBQUssR0FBRyxXQUFVO0FBQUEsVUFDeEQsQ0FBQztBQUNELGlCQUFPO0FBQUEsUUFDVDtBQVdBLDRCQUFvQixRQUFRLFFBQVE7QUFDbEMsaUJBQU8sVUFBVSxXQUFXLFFBQVEsS0FBSyxNQUFNLEdBQUcsTUFBTTtBQUFBLFFBQzFEO0FBV0EsOEJBQXNCLFFBQVEsUUFBUTtBQUNwQyxpQkFBTyxVQUFVLFdBQVcsUUFBUSxPQUFPLE1BQU0sR0FBRyxNQUFNO0FBQUEsUUFDNUQ7QUFXQSxpQ0FBeUIsUUFBUSxLQUFLLE9BQU87QUFDM0MsY0FBSSxPQUFPLGVBQWUsZ0JBQWdCO0FBQ3hDLDJCQUFlLFFBQVEsS0FBSztBQUFBLGNBQzFCLGdCQUFnQjtBQUFBLGNBQ2hCLGNBQWM7QUFBQSxjQUNkLFNBQVM7QUFBQSxjQUNULFlBQVk7QUFBQSxZQUNkLENBQUM7QUFBQSxVQUNILE9BQU87QUFDTCxtQkFBTyxPQUFPO0FBQUEsVUFDaEI7QUFBQSxRQUNGO0FBVUEsd0JBQWdCLFFBQVEsT0FBTztBQUM3QixjQUFJLFNBQVEsSUFDUixTQUFTLE1BQU0sUUFDZixVQUFTLE9BQU0sTUFBTSxHQUNyQixPQUFPLFVBQVU7QUFFckIsaUJBQU8sRUFBRSxTQUFRLFFBQVE7QUFDdkIsb0JBQU8sVUFBUyxPQUFPLGFBQVksS0FBSSxRQUFRLE1BQU0sT0FBTTtBQUFBLFVBQzdEO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBV0EsMkJBQW1CLFNBQVEsUUFBTyxPQUFPO0FBQ3ZDLGNBQUksWUFBVyxTQUFRO0FBQ3JCLGdCQUFJLFVBQVUsWUFBVztBQUN2Qix3QkFBUyxXQUFVLFFBQVEsVUFBUztBQUFBLFlBQ3RDO0FBQ0EsZ0JBQUksV0FBVSxZQUFXO0FBQ3ZCLHdCQUFTLFdBQVUsU0FBUSxVQUFTO0FBQUEsWUFDdEM7QUFBQSxVQUNGO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBa0JBLDJCQUFtQixPQUFPLFNBQVMsWUFBWSxLQUFLLFFBQVEsT0FBTztBQUNqRSxjQUFJLFNBQ0EsU0FBUyxVQUFVLGlCQUNuQixTQUFTLFVBQVUsaUJBQ25CLFNBQVMsVUFBVTtBQUV2QixjQUFJLFlBQVk7QUFDZCxzQkFBUyxTQUFTLFdBQVcsT0FBTyxLQUFLLFFBQVEsS0FBSyxJQUFJLFdBQVcsS0FBSztBQUFBLFVBQzVFO0FBQ0EsY0FBSSxZQUFXLFlBQVc7QUFDeEIsbUJBQU87QUFBQSxVQUNUO0FBQ0EsY0FBSSxDQUFDLFNBQVMsS0FBSyxHQUFHO0FBQ3BCLG1CQUFPO0FBQUEsVUFDVDtBQUNBLGNBQUksUUFBUSxRQUFRLEtBQUs7QUFDekIsY0FBSSxPQUFPO0FBQ1Qsc0JBQVMsZUFBZSxLQUFLO0FBQzdCLGdCQUFJLENBQUMsUUFBUTtBQUNYLHFCQUFPLFVBQVUsT0FBTyxPQUFNO0FBQUEsWUFDaEM7QUFBQSxVQUNGLE9BQU87QUFDTCxnQkFBSSxNQUFNLE9BQU8sS0FBSyxHQUNsQixTQUFTLE9BQU8sV0FBVyxPQUFPO0FBRXRDLGdCQUFJLFNBQVMsS0FBSyxHQUFHO0FBQ25CLHFCQUFPLFlBQVksT0FBTyxNQUFNO0FBQUEsWUFDbEM7QUFDQSxnQkFBSSxPQUFPLGFBQWEsT0FBTyxXQUFZLFVBQVUsQ0FBQyxRQUFTO0FBQzdELHdCQUFVLFVBQVUsU0FBVSxDQUFDLElBQUksZ0JBQWdCLEtBQUs7QUFDeEQsa0JBQUksQ0FBQyxRQUFRO0FBQ1gsdUJBQU8sU0FDSCxjQUFjLE9BQU8sYUFBYSxTQUFRLEtBQUssQ0FBQyxJQUNoRCxZQUFZLE9BQU8sV0FBVyxTQUFRLEtBQUssQ0FBQztBQUFBLGNBQ2xEO0FBQUEsWUFDRixPQUFPO0FBQ0wsa0JBQUksQ0FBQyxjQUFjLE1BQU07QUFDdkIsdUJBQU8sU0FBUyxRQUFRLENBQUM7QUFBQSxjQUMzQjtBQUNBLHdCQUFTLGVBQWUsT0FBTyxLQUFLLE1BQU07QUFBQSxZQUM1QztBQUFBLFVBQ0Y7QUFFQSxtQkFBVSxTQUFRLElBQUk7QUFDdEIsY0FBSSxVQUFVLE1BQU0sSUFBSSxLQUFLO0FBQzdCLGNBQUksU0FBUztBQUNYLG1CQUFPO0FBQUEsVUFDVDtBQUNBLGdCQUFNLElBQUksT0FBTyxPQUFNO0FBRXZCLGNBQUksTUFBTSxLQUFLLEdBQUc7QUFDaEIsa0JBQU0sUUFBUSxTQUFTLFVBQVU7QUFDL0Isc0JBQU8sSUFBSSxVQUFVLFVBQVUsU0FBUyxZQUFZLFVBQVUsT0FBTyxLQUFLLENBQUM7QUFBQSxZQUM3RSxDQUFDO0FBQUEsVUFDSCxXQUFXLE1BQU0sS0FBSyxHQUFHO0FBQ3ZCLGtCQUFNLFFBQVEsU0FBUyxVQUFVLE1BQUs7QUFDcEMsc0JBQU8sSUFBSSxNQUFLLFVBQVUsVUFBVSxTQUFTLFlBQVksTUFBSyxPQUFPLEtBQUssQ0FBQztBQUFBLFlBQzdFLENBQUM7QUFBQSxVQUNIO0FBRUEsY0FBSSxXQUFXLFNBQ1YsU0FBUyxlQUFlLGFBQ3hCLFNBQVMsU0FBUztBQUV2QixjQUFJLFFBQVEsUUFBUSxhQUFZLFNBQVMsS0FBSztBQUM5QyxvQkFBVSxTQUFTLE9BQU8sU0FBUyxVQUFVLE1BQUs7QUFDaEQsZ0JBQUksT0FBTztBQUNULHFCQUFNO0FBQ04seUJBQVcsTUFBTTtBQUFBLFlBQ25CO0FBRUEsd0JBQVksU0FBUSxNQUFLLFVBQVUsVUFBVSxTQUFTLFlBQVksTUFBSyxPQUFPLEtBQUssQ0FBQztBQUFBLFVBQ3RGLENBQUM7QUFDRCxpQkFBTztBQUFBLFFBQ1Q7QUFTQSw4QkFBc0IsUUFBUTtBQUM1QixjQUFJLFFBQVEsS0FBSyxNQUFNO0FBQ3ZCLGlCQUFPLFNBQVMsUUFBUTtBQUN0QixtQkFBTyxlQUFlLFFBQVEsUUFBUSxLQUFLO0FBQUEsVUFDN0M7QUFBQSxRQUNGO0FBVUEsZ0NBQXdCLFFBQVEsUUFBUSxPQUFPO0FBQzdDLGNBQUksU0FBUyxNQUFNO0FBQ25CLGNBQUksVUFBVSxNQUFNO0FBQ2xCLG1CQUFPLENBQUM7QUFBQSxVQUNWO0FBQ0EsbUJBQVMsUUFBTyxNQUFNO0FBQ3RCLGlCQUFPLFVBQVU7QUFDZixnQkFBSSxNQUFNLE1BQU0sU0FDWixZQUFZLE9BQU8sTUFDbkIsUUFBUSxPQUFPO0FBRW5CLGdCQUFLLFVBQVUsY0FBYSxDQUFFLFFBQU8sV0FBWSxDQUFDLFVBQVUsS0FBSyxHQUFHO0FBQ2xFLHFCQUFPO0FBQUEsWUFDVDtBQUFBLFVBQ0Y7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFZQSwyQkFBbUIsTUFBTSxPQUFNLE1BQU07QUFDbkMsY0FBSSxPQUFPLFFBQVEsWUFBWTtBQUM3QixrQkFBTSxJQUFJLFdBQVUsZUFBZTtBQUFBLFVBQ3JDO0FBQ0EsaUJBQU8sWUFBVyxXQUFXO0FBQUUsaUJBQUssTUFBTSxZQUFXLElBQUk7QUFBQSxVQUFHLEdBQUcsS0FBSTtBQUFBLFFBQ3JFO0FBYUEsZ0NBQXdCLE9BQU8sU0FBUSxXQUFVLFlBQVk7QUFDM0QsY0FBSSxTQUFRLElBQ1IsWUFBVyxlQUNYLFdBQVcsTUFDWCxTQUFTLE1BQU0sUUFDZixVQUFTLENBQUMsR0FDVixlQUFlLFFBQU87QUFFMUIsY0FBSSxDQUFDLFFBQVE7QUFDWCxtQkFBTztBQUFBLFVBQ1Q7QUFDQSxjQUFJLFdBQVU7QUFDWixzQkFBUyxTQUFTLFNBQVEsVUFBVSxTQUFRLENBQUM7QUFBQSxVQUMvQztBQUNBLGNBQUksWUFBWTtBQUNkLHdCQUFXO0FBQ1gsdUJBQVc7QUFBQSxVQUNiLFdBQ1MsUUFBTyxVQUFVLGtCQUFrQjtBQUMxQyx3QkFBVztBQUNYLHVCQUFXO0FBQ1gsc0JBQVMsSUFBSSxTQUFTLE9BQU07QUFBQSxVQUM5QjtBQUNBO0FBQ0EsbUJBQU8sRUFBRSxTQUFRLFFBQVE7QUFDdkIsa0JBQUksUUFBUSxNQUFNLFNBQ2QsV0FBVyxhQUFZLE9BQU8sUUFBUSxVQUFTLEtBQUs7QUFFeEQsc0JBQVMsY0FBYyxVQUFVLElBQUssUUFBUTtBQUM5QyxrQkFBSSxZQUFZLGFBQWEsVUFBVTtBQUNyQyxvQkFBSSxjQUFjO0FBQ2xCLHVCQUFPLGVBQWU7QUFDcEIsc0JBQUksUUFBTyxpQkFBaUIsVUFBVTtBQUNwQztBQUFBLGtCQUNGO0FBQUEsZ0JBQ0Y7QUFDQSx3QkFBTyxLQUFLLEtBQUs7QUFBQSxjQUNuQixXQUNTLENBQUMsVUFBUyxTQUFRLFVBQVUsVUFBVSxHQUFHO0FBQ2hELHdCQUFPLEtBQUssS0FBSztBQUFBLGNBQ25CO0FBQUEsWUFDRjtBQUNBLGlCQUFPO0FBQUEsUUFDVDtBQVVBLFlBQUksV0FBVyxlQUFlLFVBQVU7QUFVeEMsWUFBSSxnQkFBZ0IsZUFBZSxpQkFBaUIsSUFBSTtBQVd4RCwyQkFBbUIsWUFBWSxXQUFXO0FBQ3hDLGNBQUksVUFBUztBQUNiLG1CQUFTLFlBQVksU0FBUyxPQUFPLFFBQU8sYUFBWTtBQUN0RCxzQkFBUyxDQUFDLENBQUMsVUFBVSxPQUFPLFFBQU8sV0FBVTtBQUM3QyxtQkFBTztBQUFBLFVBQ1QsQ0FBQztBQUNELGlCQUFPO0FBQUEsUUFDVDtBQVlBLDhCQUFzQixPQUFPLFdBQVUsWUFBWTtBQUNqRCxjQUFJLFNBQVEsSUFDUixTQUFTLE1BQU07QUFFbkIsaUJBQU8sRUFBRSxTQUFRLFFBQVE7QUFDdkIsZ0JBQUksUUFBUSxNQUFNLFNBQ2QsVUFBVSxVQUFTLEtBQUs7QUFFNUIsZ0JBQUksV0FBVyxRQUFTLGNBQWEsYUFDNUIsWUFBWSxXQUFXLENBQUMsU0FBUyxPQUFPLElBQ3pDLFdBQVcsU0FBUyxRQUFRLElBQzdCO0FBQ0wsa0JBQUksV0FBVyxTQUNYLFVBQVM7QUFBQSxZQUNmO0FBQUEsVUFDRjtBQUNBLGlCQUFPO0FBQUEsUUFDVDtBQVlBLDBCQUFrQixPQUFPLE9BQU8sUUFBTyxLQUFLO0FBQzFDLGNBQUksU0FBUyxNQUFNO0FBRW5CLG1CQUFRLFVBQVUsTUFBSztBQUN2QixjQUFJLFNBQVEsR0FBRztBQUNiLHFCQUFRLENBQUMsU0FBUSxTQUFTLElBQUssU0FBUztBQUFBLFVBQzFDO0FBQ0EsZ0JBQU8sUUFBUSxjQUFhLE1BQU0sU0FBVSxTQUFTLFVBQVUsR0FBRztBQUNsRSxjQUFJLE1BQU0sR0FBRztBQUNYLG1CQUFPO0FBQUEsVUFDVDtBQUNBLGdCQUFNLFNBQVEsTUFBTSxJQUFJLFNBQVMsR0FBRztBQUNwQyxpQkFBTyxTQUFRLEtBQUs7QUFDbEIsa0JBQU0sWUFBVztBQUFBLFVBQ25CO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBVUEsNEJBQW9CLFlBQVksV0FBVztBQUN6QyxjQUFJLFVBQVMsQ0FBQztBQUNkLG1CQUFTLFlBQVksU0FBUyxPQUFPLFFBQU8sYUFBWTtBQUN0RCxnQkFBSSxVQUFVLE9BQU8sUUFBTyxXQUFVLEdBQUc7QUFDdkMsc0JBQU8sS0FBSyxLQUFLO0FBQUEsWUFDbkI7QUFBQSxVQUNGLENBQUM7QUFDRCxpQkFBTztBQUFBLFFBQ1Q7QUFhQSw2QkFBcUIsT0FBTyxPQUFPLFdBQVcsVUFBVSxTQUFRO0FBQzlELGNBQUksU0FBUSxJQUNSLFNBQVMsTUFBTTtBQUVuQix1QkFBYyxhQUFZO0FBQzFCLHFCQUFXLFdBQVMsQ0FBQztBQUVyQixpQkFBTyxFQUFFLFNBQVEsUUFBUTtBQUN2QixnQkFBSSxRQUFRLE1BQU07QUFDbEIsZ0JBQUksUUFBUSxLQUFLLFVBQVUsS0FBSyxHQUFHO0FBQ2pDLGtCQUFJLFFBQVEsR0FBRztBQUViLDRCQUFZLE9BQU8sUUFBUSxHQUFHLFdBQVcsVUFBVSxPQUFNO0FBQUEsY0FDM0QsT0FBTztBQUNMLDBCQUFVLFNBQVEsS0FBSztBQUFBLGNBQ3pCO0FBQUEsWUFDRixXQUFXLENBQUMsVUFBVTtBQUNwQixzQkFBTyxRQUFPLFVBQVU7QUFBQSxZQUMxQjtBQUFBLFVBQ0Y7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFhQSxZQUFJLFVBQVUsY0FBYztBQVk1QixZQUFJLGVBQWUsY0FBYyxJQUFJO0FBVXJDLDRCQUFvQixRQUFRLFdBQVU7QUFDcEMsaUJBQU8sVUFBVSxRQUFRLFFBQVEsV0FBVSxJQUFJO0FBQUEsUUFDakQ7QUFVQSxpQ0FBeUIsUUFBUSxXQUFVO0FBQ3pDLGlCQUFPLFVBQVUsYUFBYSxRQUFRLFdBQVUsSUFBSTtBQUFBLFFBQ3REO0FBV0EsK0JBQXVCLFFBQVEsT0FBTztBQUNwQyxpQkFBTyxZQUFZLE9BQU8sU0FBUyxLQUFLO0FBQ3RDLG1CQUFPLFdBQVcsT0FBTyxJQUFJO0FBQUEsVUFDL0IsQ0FBQztBQUFBLFFBQ0g7QUFVQSx5QkFBaUIsUUFBUSxPQUFNO0FBQzdCLGtCQUFPLFNBQVMsT0FBTSxNQUFNO0FBRTVCLGNBQUksU0FBUSxHQUNSLFNBQVMsTUFBSztBQUVsQixpQkFBTyxVQUFVLFFBQVEsU0FBUSxRQUFRO0FBQ3ZDLHFCQUFTLE9BQU8sTUFBTSxNQUFLLFNBQVE7QUFBQSxVQUNyQztBQUNBLGlCQUFRLFVBQVMsVUFBUyxTQUFVLFNBQVM7QUFBQSxRQUMvQztBQWFBLGdDQUF3QixRQUFRLFVBQVUsYUFBYTtBQUNyRCxjQUFJLFVBQVMsU0FBUyxNQUFNO0FBQzVCLGlCQUFPLFFBQVEsTUFBTSxJQUFJLFVBQVMsVUFBVSxTQUFRLFlBQVksTUFBTSxDQUFDO0FBQUEsUUFDekU7QUFTQSw0QkFBb0IsT0FBTztBQUN6QixjQUFJLFNBQVMsTUFBTTtBQUNqQixtQkFBTyxVQUFVLGFBQVksZUFBZTtBQUFBLFVBQzlDO0FBQ0EsaUJBQVEsa0JBQWtCLGtCQUFrQixRQUFPLEtBQUssSUFDcEQsVUFBVSxLQUFLLElBQ2YsZUFBZSxLQUFLO0FBQUEsUUFDMUI7QUFXQSx3QkFBZ0IsT0FBTyxPQUFPO0FBQzVCLGlCQUFPLFFBQVE7QUFBQSxRQUNqQjtBQVVBLHlCQUFpQixRQUFRLEtBQUs7QUFDNUIsaUJBQU8sVUFBVSxRQUFRLGVBQWUsS0FBSyxRQUFRLEdBQUc7QUFBQSxRQUMxRDtBQVVBLDJCQUFtQixRQUFRLEtBQUs7QUFDOUIsaUJBQU8sVUFBVSxRQUFRLE9BQU8sUUFBTyxNQUFNO0FBQUEsUUFDL0M7QUFXQSw2QkFBcUIsU0FBUSxRQUFPLEtBQUs7QUFDdkMsaUJBQU8sV0FBVSxVQUFVLFFBQU8sR0FBRyxLQUFLLFVBQVMsVUFBVSxRQUFPLEdBQUc7QUFBQSxRQUN6RTtBQVlBLGtDQUEwQixRQUFRLFdBQVUsWUFBWTtBQUN0RCxjQUFJLFlBQVcsYUFBYSxvQkFBb0IsZUFDNUMsU0FBUyxPQUFPLEdBQUcsUUFDbkIsWUFBWSxPQUFPLFFBQ25CLFdBQVcsV0FDWCxTQUFTLE9BQU0sU0FBUyxHQUN4QixZQUFZLFVBQ1osVUFBUyxDQUFDO0FBRWQsaUJBQU8sWUFBWTtBQUNqQixnQkFBSSxRQUFRLE9BQU87QUFDbkIsZ0JBQUksWUFBWSxXQUFVO0FBQ3hCLHNCQUFRLFNBQVMsT0FBTyxVQUFVLFNBQVEsQ0FBQztBQUFBLFlBQzdDO0FBQ0Esd0JBQVksVUFBVSxNQUFNLFFBQVEsU0FBUztBQUM3QyxtQkFBTyxZQUFZLENBQUMsY0FBZSxjQUFhLFVBQVUsT0FBTyxNQUFNLFVBQVUsT0FDN0UsSUFBSSxTQUFTLFlBQVksS0FBSyxJQUM5QjtBQUFBLFVBQ047QUFDQSxrQkFBUSxPQUFPO0FBRWYsY0FBSSxTQUFRLElBQ1IsT0FBTyxPQUFPO0FBRWxCO0FBQ0EsbUJBQU8sRUFBRSxTQUFRLFVBQVUsUUFBTyxTQUFTLFdBQVc7QUFDcEQsa0JBQUksUUFBUSxNQUFNLFNBQ2QsV0FBVyxZQUFXLFVBQVMsS0FBSyxJQUFJO0FBRTVDLHNCQUFTLGNBQWMsVUFBVSxJQUFLLFFBQVE7QUFDOUMsa0JBQUksQ0FBRSxRQUNFLFNBQVMsTUFBTSxRQUFRLElBQ3ZCLFVBQVMsU0FBUSxVQUFVLFVBQVUsSUFDdEM7QUFDTCwyQkFBVztBQUNYLHVCQUFPLEVBQUUsVUFBVTtBQUNqQixzQkFBSSxRQUFRLE9BQU87QUFDbkIsc0JBQUksQ0FBRSxTQUNFLFNBQVMsT0FBTyxRQUFRLElBQ3hCLFVBQVMsT0FBTyxXQUFXLFVBQVUsVUFBVSxJQUNqRDtBQUNKO0FBQUEsa0JBQ0Y7QUFBQSxnQkFDRjtBQUNBLG9CQUFJLE1BQU07QUFDUix1QkFBSyxLQUFLLFFBQVE7QUFBQSxnQkFDcEI7QUFDQSx3QkFBTyxLQUFLLEtBQUs7QUFBQSxjQUNuQjtBQUFBLFlBQ0Y7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFhQSw4QkFBc0IsUUFBUSxRQUFRLFdBQVUsYUFBYTtBQUMzRCxxQkFBVyxRQUFRLFNBQVMsT0FBTyxLQUFLLFNBQVE7QUFDOUMsbUJBQU8sYUFBYSxVQUFTLEtBQUssR0FBRyxLQUFLLE9BQU07QUFBQSxVQUNsRCxDQUFDO0FBQ0QsaUJBQU87QUFBQSxRQUNUO0FBWUEsNEJBQW9CLFFBQVEsT0FBTSxNQUFNO0FBQ3RDLGtCQUFPLFNBQVMsT0FBTSxNQUFNO0FBQzVCLG1CQUFTLE9BQU8sUUFBUSxLQUFJO0FBQzVCLGNBQUksT0FBTyxVQUFVLE9BQU8sU0FBUyxPQUFPLE1BQU0sS0FBSyxLQUFJLENBQUM7QUFDNUQsaUJBQU8sUUFBUSxPQUFPLGFBQVksTUFBTSxNQUFNLFFBQVEsSUFBSTtBQUFBLFFBQzVEO0FBU0EsaUNBQXlCLE9BQU87QUFDOUIsaUJBQU8sYUFBYSxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUs7QUFBQSxRQUNyRDtBQVNBLG1DQUEyQixPQUFPO0FBQ2hDLGlCQUFPLGFBQWEsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLO0FBQUEsUUFDckQ7QUFTQSw0QkFBb0IsT0FBTztBQUN6QixpQkFBTyxhQUFhLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSztBQUFBLFFBQ3JEO0FBZ0JBLDZCQUFxQixPQUFPLE9BQU8sU0FBUyxZQUFZLE9BQU87QUFDN0QsY0FBSSxVQUFVLE9BQU87QUFDbkIsbUJBQU87QUFBQSxVQUNUO0FBQ0EsY0FBSSxTQUFTLFFBQVEsU0FBUyxRQUFTLENBQUMsYUFBYSxLQUFLLEtBQUssQ0FBQyxhQUFhLEtBQUssR0FBSTtBQUNwRixtQkFBTyxVQUFVLFNBQVMsVUFBVTtBQUFBLFVBQ3RDO0FBQ0EsaUJBQU8sZ0JBQWdCLE9BQU8sT0FBTyxTQUFTLFlBQVksYUFBYSxLQUFLO0FBQUEsUUFDOUU7QUFnQkEsaUNBQXlCLFFBQVEsT0FBTyxTQUFTLFlBQVksV0FBVyxPQUFPO0FBQzdFLGNBQUksV0FBVyxRQUFRLE1BQU0sR0FDekIsV0FBVyxRQUFRLEtBQUssR0FDeEIsU0FBUyxXQUFXLFdBQVcsT0FBTyxNQUFNLEdBQzVDLFNBQVMsV0FBVyxXQUFXLE9BQU8sS0FBSztBQUUvQyxtQkFBUyxVQUFVLFVBQVUsWUFBWTtBQUN6QyxtQkFBUyxVQUFVLFVBQVUsWUFBWTtBQUV6QyxjQUFJLFdBQVcsVUFBVSxXQUNyQixXQUFXLFVBQVUsV0FDckIsWUFBWSxVQUFVO0FBRTFCLGNBQUksYUFBYSxTQUFTLE1BQU0sR0FBRztBQUNqQyxnQkFBSSxDQUFDLFNBQVMsS0FBSyxHQUFHO0FBQ3BCLHFCQUFPO0FBQUEsWUFDVDtBQUNBLHVCQUFXO0FBQ1gsdUJBQVc7QUFBQSxVQUNiO0FBQ0EsY0FBSSxhQUFhLENBQUMsVUFBVTtBQUMxQixxQkFBVSxTQUFRLElBQUk7QUFDdEIsbUJBQVEsWUFBWSxhQUFhLE1BQU0sSUFDbkMsWUFBWSxRQUFRLE9BQU8sU0FBUyxZQUFZLFdBQVcsS0FBSyxJQUNoRSxXQUFXLFFBQVEsT0FBTyxRQUFRLFNBQVMsWUFBWSxXQUFXLEtBQUs7QUFBQSxVQUM3RTtBQUNBLGNBQUksQ0FBRSxXQUFVLHVCQUF1QjtBQUNyQyxnQkFBSSxlQUFlLFlBQVksZUFBZSxLQUFLLFFBQVEsYUFBYSxHQUNwRSxlQUFlLFlBQVksZUFBZSxLQUFLLE9BQU8sYUFBYTtBQUV2RSxnQkFBSSxnQkFBZ0IsY0FBYztBQUNoQyxrQkFBSSxlQUFlLGVBQWUsT0FBTyxNQUFNLElBQUksUUFDL0MsZUFBZSxlQUFlLE1BQU0sTUFBTSxJQUFJO0FBRWxELHVCQUFVLFNBQVEsSUFBSTtBQUN0QixxQkFBTyxVQUFVLGNBQWMsY0FBYyxTQUFTLFlBQVksS0FBSztBQUFBLFlBQ3pFO0FBQUEsVUFDRjtBQUNBLGNBQUksQ0FBQyxXQUFXO0FBQ2QsbUJBQU87QUFBQSxVQUNUO0FBQ0EsbUJBQVUsU0FBUSxJQUFJO0FBQ3RCLGlCQUFPLGFBQWEsUUFBUSxPQUFPLFNBQVMsWUFBWSxXQUFXLEtBQUs7QUFBQSxRQUMxRTtBQVNBLDJCQUFtQixPQUFPO0FBQ3hCLGlCQUFPLGFBQWEsS0FBSyxLQUFLLE9BQU8sS0FBSyxLQUFLO0FBQUEsUUFDakQ7QUFZQSw2QkFBcUIsUUFBUSxRQUFRLFdBQVcsWUFBWTtBQUMxRCxjQUFJLFNBQVEsVUFBVSxRQUNsQixTQUFTLFFBQ1QsZUFBZSxDQUFDO0FBRXBCLGNBQUksVUFBVSxNQUFNO0FBQ2xCLG1CQUFPLENBQUM7QUFBQSxVQUNWO0FBQ0EsbUJBQVMsUUFBTyxNQUFNO0FBQ3RCLGlCQUFPLFVBQVM7QUFDZCxnQkFBSSxPQUFPLFVBQVU7QUFDckIsZ0JBQUssZ0JBQWdCLEtBQUssS0FDbEIsS0FBSyxPQUFPLE9BQU8sS0FBSyxNQUN4QixDQUFFLE1BQUssTUFBTSxTQUNmO0FBQ0oscUJBQU87QUFBQSxZQUNUO0FBQUEsVUFDRjtBQUNBLGlCQUFPLEVBQUUsU0FBUSxRQUFRO0FBQ3ZCLG1CQUFPLFVBQVU7QUFDakIsZ0JBQUksTUFBTSxLQUFLLElBQ1gsV0FBVyxPQUFPLE1BQ2xCLFdBQVcsS0FBSztBQUVwQixnQkFBSSxnQkFBZ0IsS0FBSyxJQUFJO0FBQzNCLGtCQUFJLGFBQWEsY0FBYSxDQUFFLFFBQU8sU0FBUztBQUM5Qyx1QkFBTztBQUFBLGNBQ1Q7QUFBQSxZQUNGLE9BQU87QUFDTCxrQkFBSSxRQUFRLElBQUk7QUFDaEIsa0JBQUksWUFBWTtBQUNkLG9CQUFJLFVBQVMsV0FBVyxVQUFVLFVBQVUsS0FBSyxRQUFRLFFBQVEsS0FBSztBQUFBLGNBQ3hFO0FBQ0Esa0JBQUksQ0FBRSxhQUFXLGFBQ1QsWUFBWSxVQUFVLFVBQVUsdUJBQXVCLHdCQUF3QixZQUFZLEtBQUssSUFDaEcsVUFDRDtBQUNMLHVCQUFPO0FBQUEsY0FDVDtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBVUEsOEJBQXNCLE9BQU87QUFDM0IsY0FBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLFNBQVMsS0FBSyxHQUFHO0FBQ3ZDLG1CQUFPO0FBQUEsVUFDVDtBQUNBLGNBQUksVUFBVSxXQUFXLEtBQUssSUFBSSxhQUFhO0FBQy9DLGlCQUFPLFFBQVEsS0FBSyxTQUFTLEtBQUssQ0FBQztBQUFBLFFBQ3JDO0FBU0EsOEJBQXNCLE9BQU87QUFDM0IsaUJBQU8sYUFBYSxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUs7QUFBQSxRQUNyRDtBQVNBLDJCQUFtQixPQUFPO0FBQ3hCLGlCQUFPLGFBQWEsS0FBSyxLQUFLLE9BQU8sS0FBSyxLQUFLO0FBQUEsUUFDakQ7QUFTQSxrQ0FBMEIsT0FBTztBQUMvQixpQkFBTyxhQUFhLEtBQUssS0FDdkIsU0FBUyxNQUFNLE1BQU0sS0FBSyxDQUFDLENBQUMsZUFBZSxXQUFXLEtBQUs7QUFBQSxRQUMvRDtBQVNBLDhCQUFzQixPQUFPO0FBRzNCLGNBQUksT0FBTyxTQUFTLFlBQVk7QUFDOUIsbUJBQU87QUFBQSxVQUNUO0FBQ0EsY0FBSSxTQUFTLE1BQU07QUFDakIsbUJBQU87QUFBQSxVQUNUO0FBQ0EsY0FBSSxPQUFPLFNBQVMsVUFBVTtBQUM1QixtQkFBTyxRQUFRLEtBQUssSUFDaEIsb0JBQW9CLE1BQU0sSUFBSSxNQUFNLEVBQUUsSUFDdEMsWUFBWSxLQUFLO0FBQUEsVUFDdkI7QUFDQSxpQkFBTyxTQUFTLEtBQUs7QUFBQSxRQUN2QjtBQVNBLDBCQUFrQixRQUFRO0FBQ3hCLGNBQUksQ0FBQyxZQUFZLE1BQU0sR0FBRztBQUN4QixtQkFBTyxXQUFXLE1BQU07QUFBQSxVQUMxQjtBQUNBLGNBQUksVUFBUyxDQUFDO0FBQ2QsbUJBQVMsT0FBTyxRQUFPLE1BQU0sR0FBRztBQUM5QixnQkFBSSxlQUFlLEtBQUssUUFBUSxHQUFHLEtBQUssT0FBTyxlQUFlO0FBQzVELHNCQUFPLEtBQUssR0FBRztBQUFBLFlBQ2pCO0FBQUEsVUFDRjtBQUNBLGlCQUFPO0FBQUEsUUFDVDtBQVNBLDRCQUFvQixRQUFRO0FBQzFCLGNBQUksQ0FBQyxTQUFTLE1BQU0sR0FBRztBQUNyQixtQkFBTyxhQUFhLE1BQU07QUFBQSxVQUM1QjtBQUNBLGNBQUksVUFBVSxZQUFZLE1BQU0sR0FDNUIsVUFBUyxDQUFDO0FBRWQsbUJBQVMsT0FBTyxRQUFRO0FBQ3RCLGdCQUFJLENBQUUsUUFBTyxpQkFBa0IsWUFBVyxDQUFDLGVBQWUsS0FBSyxRQUFRLEdBQUcsS0FBSztBQUM3RSxzQkFBTyxLQUFLLEdBQUc7QUFBQSxZQUNqQjtBQUFBLFVBQ0Y7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFXQSx3QkFBZ0IsT0FBTyxPQUFPO0FBQzVCLGlCQUFPLFFBQVE7QUFBQSxRQUNqQjtBQVVBLHlCQUFpQixZQUFZLFdBQVU7QUFDckMsY0FBSSxTQUFRLElBQ1IsVUFBUyxZQUFZLFVBQVUsSUFBSSxPQUFNLFdBQVcsTUFBTSxJQUFJLENBQUM7QUFFbkUsbUJBQVMsWUFBWSxTQUFTLE9BQU8sS0FBSyxhQUFZO0FBQ3BELG9CQUFPLEVBQUUsVUFBUyxVQUFTLE9BQU8sS0FBSyxXQUFVO0FBQUEsVUFDbkQsQ0FBQztBQUNELGlCQUFPO0FBQUEsUUFDVDtBQVNBLDZCQUFxQixRQUFRO0FBQzNCLGNBQUksWUFBWSxhQUFhLE1BQU07QUFDbkMsY0FBSSxVQUFVLFVBQVUsS0FBSyxVQUFVLEdBQUcsSUFBSTtBQUM1QyxtQkFBTyx3QkFBd0IsVUFBVSxHQUFHLElBQUksVUFBVSxHQUFHLEVBQUU7QUFBQSxVQUNqRTtBQUNBLGlCQUFPLFNBQVMsUUFBUTtBQUN0QixtQkFBTyxXQUFXLFVBQVUsWUFBWSxRQUFRLFFBQVEsU0FBUztBQUFBLFVBQ25FO0FBQUEsUUFDRjtBQVVBLHFDQUE2QixPQUFNLFVBQVU7QUFDM0MsY0FBSSxNQUFNLEtBQUksS0FBSyxtQkFBbUIsUUFBUSxHQUFHO0FBQy9DLG1CQUFPLHdCQUF3QixNQUFNLEtBQUksR0FBRyxRQUFRO0FBQUEsVUFDdEQ7QUFDQSxpQkFBTyxTQUFTLFFBQVE7QUFDdEIsZ0JBQUksV0FBVyxLQUFJLFFBQVEsS0FBSTtBQUMvQixtQkFBUSxhQUFhLGNBQWEsYUFBYSxXQUMzQyxNQUFNLFFBQVEsS0FBSSxJQUNsQixZQUFZLFVBQVUsVUFBVSx1QkFBdUIsc0JBQXNCO0FBQUEsVUFDbkY7QUFBQSxRQUNGO0FBYUEsMkJBQW1CLFFBQVEsUUFBUSxVQUFVLFlBQVksT0FBTztBQUM5RCxjQUFJLFdBQVcsUUFBUTtBQUNyQjtBQUFBLFVBQ0Y7QUFDQSxrQkFBUSxRQUFRLFNBQVMsVUFBVSxLQUFLO0FBQ3RDLHFCQUFVLFNBQVEsSUFBSTtBQUN0QixnQkFBSSxTQUFTLFFBQVEsR0FBRztBQUN0Qiw0QkFBYyxRQUFRLFFBQVEsS0FBSyxVQUFVLFdBQVcsWUFBWSxLQUFLO0FBQUEsWUFDM0UsT0FDSztBQUNILGtCQUFJLFdBQVcsYUFDWCxXQUFXLFFBQVEsUUFBUSxHQUFHLEdBQUcsVUFBVyxNQUFNLElBQUssUUFBUSxRQUFRLEtBQUssSUFDNUU7QUFFSixrQkFBSSxhQUFhLFlBQVc7QUFDMUIsMkJBQVc7QUFBQSxjQUNiO0FBQ0EsK0JBQWlCLFFBQVEsS0FBSyxRQUFRO0FBQUEsWUFDeEM7QUFBQSxVQUNGLEdBQUcsTUFBTTtBQUFBLFFBQ1g7QUFpQkEsK0JBQXVCLFFBQVEsUUFBUSxLQUFLLFVBQVUsV0FBVyxZQUFZLE9BQU87QUFDbEYsY0FBSSxXQUFXLFFBQVEsUUFBUSxHQUFHLEdBQzlCLFdBQVcsUUFBUSxRQUFRLEdBQUcsR0FDOUIsVUFBVSxNQUFNLElBQUksUUFBUTtBQUVoQyxjQUFJLFNBQVM7QUFDWCw2QkFBaUIsUUFBUSxLQUFLLE9BQU87QUFDckM7QUFBQSxVQUNGO0FBQ0EsY0FBSSxXQUFXLGFBQ1gsV0FBVyxVQUFVLFVBQVcsTUFBTSxJQUFLLFFBQVEsUUFBUSxLQUFLLElBQ2hFO0FBRUosY0FBSSxXQUFXLGFBQWE7QUFFNUIsY0FBSSxVQUFVO0FBQ1osZ0JBQUksUUFBUSxRQUFRLFFBQVEsR0FDeEIsU0FBUyxDQUFDLFNBQVMsU0FBUyxRQUFRLEdBQ3BDLFVBQVUsQ0FBQyxTQUFTLENBQUMsVUFBVSxhQUFhLFFBQVE7QUFFeEQsdUJBQVc7QUFDWCxnQkFBSSxTQUFTLFVBQVUsU0FBUztBQUM5QixrQkFBSSxRQUFRLFFBQVEsR0FBRztBQUNyQiwyQkFBVztBQUFBLGNBQ2IsV0FDUyxrQkFBa0IsUUFBUSxHQUFHO0FBQ3BDLDJCQUFXLFVBQVUsUUFBUTtBQUFBLGNBQy9CLFdBQ1MsUUFBUTtBQUNmLDJCQUFXO0FBQ1gsMkJBQVcsWUFBWSxVQUFVLElBQUk7QUFBQSxjQUN2QyxXQUNTLFNBQVM7QUFDaEIsMkJBQVc7QUFDWCwyQkFBVyxnQkFBZ0IsVUFBVSxJQUFJO0FBQUEsY0FDM0MsT0FDSztBQUNILDJCQUFXLENBQUM7QUFBQSxjQUNkO0FBQUEsWUFDRixXQUNTLGNBQWMsUUFBUSxLQUFLLFlBQVksUUFBUSxHQUFHO0FBQ3pELHlCQUFXO0FBQ1gsa0JBQUksWUFBWSxRQUFRLEdBQUc7QUFDekIsMkJBQVcsY0FBYyxRQUFRO0FBQUEsY0FDbkMsV0FDUyxDQUFDLFNBQVMsUUFBUSxLQUFLLFdBQVcsUUFBUSxHQUFHO0FBQ3BELDJCQUFXLGdCQUFnQixRQUFRO0FBQUEsY0FDckM7QUFBQSxZQUNGLE9BQ0s7QUFDSCx5QkFBVztBQUFBLFlBQ2I7QUFBQSxVQUNGO0FBQ0EsY0FBSSxVQUFVO0FBRVosa0JBQU0sSUFBSSxVQUFVLFFBQVE7QUFDNUIsc0JBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxLQUFLO0FBQ3pELGtCQUFNLFVBQVUsUUFBUTtBQUFBLFVBQzFCO0FBQ0EsMkJBQWlCLFFBQVEsS0FBSyxRQUFRO0FBQUEsUUFDeEM7QUFVQSx5QkFBaUIsT0FBTyxHQUFHO0FBQ3pCLGNBQUksU0FBUyxNQUFNO0FBQ25CLGNBQUksQ0FBQyxRQUFRO0FBQ1g7QUFBQSxVQUNGO0FBQ0EsZUFBSyxJQUFJLElBQUksU0FBUztBQUN0QixpQkFBTyxRQUFRLEdBQUcsTUFBTSxJQUFJLE1BQU0sS0FBSztBQUFBLFFBQ3pDO0FBV0EsNkJBQXFCLFlBQVksV0FBVyxRQUFRO0FBQ2xELGNBQUksVUFBVSxRQUFRO0FBQ3BCLHdCQUFZLFNBQVMsV0FBVyxTQUFTLFdBQVU7QUFDakQsa0JBQUksUUFBUSxTQUFRLEdBQUc7QUFDckIsdUJBQU8sU0FBUyxPQUFPO0FBQ3JCLHlCQUFPLFFBQVEsT0FBTyxVQUFTLFdBQVcsSUFBSSxVQUFTLEtBQUssU0FBUTtBQUFBLGdCQUN0RTtBQUFBLGNBQ0Y7QUFDQSxxQkFBTztBQUFBLFlBQ1QsQ0FBQztBQUFBLFVBQ0gsT0FBTztBQUNMLHdCQUFZLENBQUMsU0FBUTtBQUFBLFVBQ3ZCO0FBRUEsY0FBSSxTQUFRO0FBQ1osc0JBQVksU0FBUyxXQUFXLFVBQVUsWUFBWSxDQUFDLENBQUM7QUFFeEQsY0FBSSxVQUFTLFFBQVEsWUFBWSxTQUFTLE9BQU8sS0FBSyxhQUFZO0FBQ2hFLGdCQUFJLFdBQVcsU0FBUyxXQUFXLFNBQVMsV0FBVTtBQUNwRCxxQkFBTyxVQUFTLEtBQUs7QUFBQSxZQUN2QixDQUFDO0FBQ0QsbUJBQU8sRUFBRSxZQUFZLFVBQVUsU0FBUyxFQUFFLFFBQU8sU0FBUyxNQUFNO0FBQUEsVUFDbEUsQ0FBQztBQUVELGlCQUFPLFdBQVcsU0FBUSxTQUFTLFFBQVEsT0FBTztBQUNoRCxtQkFBTyxnQkFBZ0IsUUFBUSxPQUFPLE1BQU07QUFBQSxVQUM5QyxDQUFDO0FBQUEsUUFDSDtBQVdBLDBCQUFrQixRQUFRLE9BQU87QUFDL0IsaUJBQU8sV0FBVyxRQUFRLE9BQU8sU0FBUyxPQUFPLE9BQU07QUFDckQsbUJBQU8sTUFBTSxRQUFRLEtBQUk7QUFBQSxVQUMzQixDQUFDO0FBQUEsUUFDSDtBQVdBLDRCQUFvQixRQUFRLE9BQU8sV0FBVztBQUM1QyxjQUFJLFNBQVEsSUFDUixTQUFTLE1BQU0sUUFDZixVQUFTLENBQUM7QUFFZCxpQkFBTyxFQUFFLFNBQVEsUUFBUTtBQUN2QixnQkFBSSxRQUFPLE1BQU0sU0FDYixRQUFRLFFBQVEsUUFBUSxLQUFJO0FBRWhDLGdCQUFJLFVBQVUsT0FBTyxLQUFJLEdBQUc7QUFDMUIsc0JBQVEsU0FBUSxTQUFTLE9BQU0sTUFBTSxHQUFHLEtBQUs7QUFBQSxZQUMvQztBQUFBLFVBQ0Y7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFTQSxrQ0FBMEIsT0FBTTtBQUM5QixpQkFBTyxTQUFTLFFBQVE7QUFDdEIsbUJBQU8sUUFBUSxRQUFRLEtBQUk7QUFBQSxVQUM3QjtBQUFBLFFBQ0Y7QUFhQSw2QkFBcUIsT0FBTyxTQUFRLFdBQVUsWUFBWTtBQUN4RCxjQUFJLFdBQVUsYUFBYSxrQkFBa0IsYUFDekMsU0FBUSxJQUNSLFNBQVMsUUFBTyxRQUNoQixPQUFPO0FBRVgsY0FBSSxVQUFVLFNBQVE7QUFDcEIsc0JBQVMsVUFBVSxPQUFNO0FBQUEsVUFDM0I7QUFDQSxjQUFJLFdBQVU7QUFDWixtQkFBTyxTQUFTLE9BQU8sVUFBVSxTQUFRLENBQUM7QUFBQSxVQUM1QztBQUNBLGlCQUFPLEVBQUUsU0FBUSxRQUFRO0FBQ3ZCLGdCQUFJLFlBQVksR0FDWixRQUFRLFFBQU8sU0FDZixXQUFXLFlBQVcsVUFBUyxLQUFLLElBQUk7QUFFNUMsbUJBQVEsYUFBWSxTQUFRLE1BQU0sVUFBVSxXQUFXLFVBQVUsS0FBSyxJQUFJO0FBQ3hFLGtCQUFJLFNBQVMsT0FBTztBQUNsQix1QkFBTyxLQUFLLE1BQU0sV0FBVyxDQUFDO0FBQUEsY0FDaEM7QUFDQSxxQkFBTyxLQUFLLE9BQU8sV0FBVyxDQUFDO0FBQUEsWUFDakM7QUFBQSxVQUNGO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBV0EsNEJBQW9CLE9BQU8sU0FBUztBQUNsQyxjQUFJLFNBQVMsUUFBUSxRQUFRLFNBQVMsR0FDbEMsWUFBWSxTQUFTO0FBRXpCLGlCQUFPLFVBQVU7QUFDZixnQkFBSSxTQUFRLFFBQVE7QUFDcEIsZ0JBQUksVUFBVSxhQUFhLFdBQVUsVUFBVTtBQUM3QyxrQkFBSSxXQUFXO0FBQ2Ysa0JBQUksUUFBUSxNQUFLLEdBQUc7QUFDbEIsdUJBQU8sS0FBSyxPQUFPLFFBQU8sQ0FBQztBQUFBLGNBQzdCLE9BQU87QUFDTCwwQkFBVSxPQUFPLE1BQUs7QUFBQSxjQUN4QjtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBV0EsNEJBQW9CLFFBQU8sT0FBTztBQUNoQyxpQkFBTyxTQUFRLFlBQVksYUFBYSxJQUFLLFNBQVEsU0FBUSxFQUFFO0FBQUEsUUFDakU7QUFhQSwyQkFBbUIsUUFBTyxLQUFLLE1BQU0sV0FBVztBQUM5QyxjQUFJLFNBQVEsSUFDUixTQUFTLFVBQVUsV0FBWSxPQUFNLFVBQVUsU0FBUSxFQUFFLEdBQUcsQ0FBQyxHQUM3RCxVQUFTLE9BQU0sTUFBTTtBQUV6QixpQkFBTyxVQUFVO0FBQ2Ysb0JBQU8sWUFBWSxTQUFTLEVBQUUsVUFBUztBQUN2QyxzQkFBUztBQUFBLFVBQ1g7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFVQSw0QkFBb0IsUUFBUSxHQUFHO0FBQzdCLGNBQUksVUFBUztBQUNiLGNBQUksQ0FBQyxVQUFVLElBQUksS0FBSyxJQUFJLGtCQUFrQjtBQUM1QyxtQkFBTztBQUFBLFVBQ1Q7QUFHQSxhQUFHO0FBQ0QsZ0JBQUksSUFBSSxHQUFHO0FBQ1QseUJBQVU7QUFBQSxZQUNaO0FBQ0EsZ0JBQUksWUFBWSxJQUFJLENBQUM7QUFDckIsZ0JBQUksR0FBRztBQUNMLHdCQUFVO0FBQUEsWUFDWjtBQUFBLFVBQ0YsU0FBUztBQUVULGlCQUFPO0FBQUEsUUFDVDtBQVVBLDBCQUFrQixNQUFNLFFBQU87QUFDN0IsaUJBQU8sWUFBWSxTQUFTLE1BQU0sUUFBTyxTQUFRLEdBQUcsT0FBTyxFQUFFO0FBQUEsUUFDL0Q7QUFTQSw0QkFBb0IsWUFBWTtBQUM5QixpQkFBTyxZQUFZLE9BQU8sVUFBVSxDQUFDO0FBQUEsUUFDdkM7QUFVQSxnQ0FBd0IsWUFBWSxHQUFHO0FBQ3JDLGNBQUksUUFBUSxPQUFPLFVBQVU7QUFDN0IsaUJBQU8sWUFBWSxPQUFPLFVBQVUsR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDO0FBQUEsUUFDekQ7QUFZQSx5QkFBaUIsUUFBUSxPQUFNLE9BQU8sWUFBWTtBQUNoRCxjQUFJLENBQUMsU0FBUyxNQUFNLEdBQUc7QUFDckIsbUJBQU87QUFBQSxVQUNUO0FBQ0Esa0JBQU8sU0FBUyxPQUFNLE1BQU07QUFFNUIsY0FBSSxTQUFRLElBQ1IsU0FBUyxNQUFLLFFBQ2QsWUFBWSxTQUFTLEdBQ3JCLFNBQVM7QUFFYixpQkFBTyxVQUFVLFFBQVEsRUFBRSxTQUFRLFFBQVE7QUFDekMsZ0JBQUksTUFBTSxNQUFNLE1BQUssT0FBTSxHQUN2QixXQUFXO0FBRWYsZ0JBQUksUUFBUSxlQUFlLFFBQVEsaUJBQWlCLFFBQVEsYUFBYTtBQUN2RSxxQkFBTztBQUFBLFlBQ1Q7QUFFQSxnQkFBSSxVQUFTLFdBQVc7QUFDdEIsa0JBQUksV0FBVyxPQUFPO0FBQ3RCLHlCQUFXLGFBQWEsV0FBVyxVQUFVLEtBQUssTUFBTSxJQUFJO0FBQzVELGtCQUFJLGFBQWEsWUFBVztBQUMxQiwyQkFBVyxTQUFTLFFBQVEsSUFDeEIsV0FDQyxRQUFRLE1BQUssU0FBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7QUFBQSxjQUN4QztBQUFBLFlBQ0Y7QUFDQSx3QkFBWSxRQUFRLEtBQUssUUFBUTtBQUNqQyxxQkFBUyxPQUFPO0FBQUEsVUFDbEI7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFVQSxZQUFJLGNBQWMsQ0FBQyxVQUFVLFlBQVcsU0FBUyxNQUFNLE1BQU07QUFDM0Qsa0JBQVEsSUFBSSxNQUFNLElBQUk7QUFDdEIsaUJBQU87QUFBQSxRQUNUO0FBVUEsWUFBSSxrQkFBa0IsQ0FBQyxpQkFBaUIsWUFBVyxTQUFTLE1BQU0sUUFBUTtBQUN4RSxpQkFBTyxlQUFlLE1BQU0sWUFBWTtBQUFBLFlBQ3RDLGdCQUFnQjtBQUFBLFlBQ2hCLGNBQWM7QUFBQSxZQUNkLFNBQVMsU0FBUyxNQUFNO0FBQUEsWUFDeEIsWUFBWTtBQUFBLFVBQ2QsQ0FBQztBQUFBLFFBQ0g7QUFTQSw2QkFBcUIsWUFBWTtBQUMvQixpQkFBTyxZQUFZLE9BQU8sVUFBVSxDQUFDO0FBQUEsUUFDdkM7QUFXQSwyQkFBbUIsT0FBTyxRQUFPLEtBQUs7QUFDcEMsY0FBSSxTQUFRLElBQ1IsU0FBUyxNQUFNO0FBRW5CLGNBQUksU0FBUSxHQUFHO0FBQ2IscUJBQVEsQ0FBQyxTQUFRLFNBQVMsSUFBSyxTQUFTO0FBQUEsVUFDMUM7QUFDQSxnQkFBTSxNQUFNLFNBQVMsU0FBUztBQUM5QixjQUFJLE1BQU0sR0FBRztBQUNYLG1CQUFPO0FBQUEsVUFDVDtBQUNBLG1CQUFTLFNBQVEsTUFBTSxJQUFNLE1BQU0sV0FBVztBQUM5QyxzQkFBVztBQUVYLGNBQUksVUFBUyxPQUFNLE1BQU07QUFDekIsaUJBQU8sRUFBRSxTQUFRLFFBQVE7QUFDdkIsb0JBQU8sVUFBUyxNQUFNLFNBQVE7QUFBQSxVQUNoQztBQUNBLGlCQUFPO0FBQUEsUUFDVDtBQVdBLDBCQUFrQixZQUFZLFdBQVc7QUFDdkMsY0FBSTtBQUVKLG1CQUFTLFlBQVksU0FBUyxPQUFPLFFBQU8sYUFBWTtBQUN0RCxzQkFBUyxVQUFVLE9BQU8sUUFBTyxXQUFVO0FBQzNDLG1CQUFPLENBQUM7QUFBQSxVQUNWLENBQUM7QUFDRCxpQkFBTyxDQUFDLENBQUM7QUFBQSxRQUNYO0FBY0EsaUNBQXlCLE9BQU8sT0FBTyxZQUFZO0FBQ2pELGNBQUksTUFBTSxHQUNOLE9BQU8sU0FBUyxPQUFPLE1BQU0sTUFBTTtBQUV2QyxjQUFJLE9BQU8sU0FBUyxZQUFZLFVBQVUsU0FBUyxRQUFRLHVCQUF1QjtBQUNoRixtQkFBTyxNQUFNLE1BQU07QUFDakIsa0JBQUksTUFBTyxNQUFNLFNBQVUsR0FDdkIsV0FBVyxNQUFNO0FBRXJCLGtCQUFJLGFBQWEsUUFBUSxDQUFDLFNBQVMsUUFBUSxLQUN0QyxjQUFjLFlBQVksUUFBVSxXQUFXLFFBQVM7QUFDM0Qsc0JBQU0sTUFBTTtBQUFBLGNBQ2QsT0FBTztBQUNMLHVCQUFPO0FBQUEsY0FDVDtBQUFBLFlBQ0Y7QUFDQSxtQkFBTztBQUFBLFVBQ1Q7QUFDQSxpQkFBTyxrQkFBa0IsT0FBTyxPQUFPLFdBQVUsVUFBVTtBQUFBLFFBQzdEO0FBZUEsbUNBQTJCLE9BQU8sT0FBTyxXQUFVLFlBQVk7QUFDN0QsY0FBSSxNQUFNLEdBQ04sT0FBTyxTQUFTLE9BQU8sSUFBSSxNQUFNO0FBQ3JDLGNBQUksU0FBUyxHQUFHO0FBQ2QsbUJBQU87QUFBQSxVQUNUO0FBRUEsa0JBQVEsVUFBUyxLQUFLO0FBQ3RCLGNBQUksV0FBVyxVQUFVLE9BQ3JCLFlBQVksVUFBVSxNQUN0QixjQUFjLFNBQVMsS0FBSyxHQUM1QixpQkFBaUIsVUFBVTtBQUUvQixpQkFBTyxNQUFNLE1BQU07QUFDakIsZ0JBQUksTUFBTSxZQUFhLE9BQU0sUUFBUSxDQUFDLEdBQ2xDLFdBQVcsVUFBUyxNQUFNLElBQUksR0FDOUIsZUFBZSxhQUFhLFlBQzVCLFlBQVksYUFBYSxNQUN6QixpQkFBaUIsYUFBYSxVQUM5QixjQUFjLFNBQVMsUUFBUTtBQUVuQyxnQkFBSSxVQUFVO0FBQ1osa0JBQUksU0FBUyxjQUFjO0FBQUEsWUFDN0IsV0FBVyxnQkFBZ0I7QUFDekIsdUJBQVMsa0JBQW1CLGVBQWM7QUFBQSxZQUM1QyxXQUFXLFdBQVc7QUFDcEIsdUJBQVMsa0JBQWtCLGdCQUFpQixlQUFjLENBQUM7QUFBQSxZQUM3RCxXQUFXLGFBQWE7QUFDdEIsdUJBQVMsa0JBQWtCLGdCQUFnQixDQUFDLGFBQWMsZUFBYyxDQUFDO0FBQUEsWUFDM0UsV0FBVyxhQUFhLGFBQWE7QUFDbkMsdUJBQVM7QUFBQSxZQUNYLE9BQU87QUFDTCx1QkFBUyxhQUFjLFlBQVksUUFBVSxXQUFXO0FBQUEsWUFDMUQ7QUFDQSxnQkFBSSxRQUFRO0FBQ1Ysb0JBQU0sTUFBTTtBQUFBLFlBQ2QsT0FBTztBQUNMLHFCQUFPO0FBQUEsWUFDVDtBQUFBLFVBQ0Y7QUFDQSxpQkFBTyxVQUFVLE1BQU0sZUFBZTtBQUFBLFFBQ3hDO0FBV0EsZ0NBQXdCLE9BQU8sV0FBVTtBQUN2QyxjQUFJLFNBQVEsSUFDUixTQUFTLE1BQU0sUUFDZixXQUFXLEdBQ1gsVUFBUyxDQUFDO0FBRWQsaUJBQU8sRUFBRSxTQUFRLFFBQVE7QUFDdkIsZ0JBQUksUUFBUSxNQUFNLFNBQ2QsV0FBVyxZQUFXLFVBQVMsS0FBSyxJQUFJO0FBRTVDLGdCQUFJLENBQUMsVUFBUyxDQUFDLEdBQUcsVUFBVSxJQUFJLEdBQUc7QUFDakMsa0JBQUksT0FBTztBQUNYLHNCQUFPLGNBQWMsVUFBVSxJQUFJLElBQUk7QUFBQSxZQUN6QztBQUFBLFVBQ0Y7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFVQSw4QkFBc0IsT0FBTztBQUMzQixjQUFJLE9BQU8sU0FBUyxVQUFVO0FBQzVCLG1CQUFPO0FBQUEsVUFDVDtBQUNBLGNBQUksU0FBUyxLQUFLLEdBQUc7QUFDbkIsbUJBQU87QUFBQSxVQUNUO0FBQ0EsaUJBQU8sQ0FBQztBQUFBLFFBQ1Y7QUFVQSw4QkFBc0IsT0FBTztBQUUzQixjQUFJLE9BQU8sU0FBUyxVQUFVO0FBQzVCLG1CQUFPO0FBQUEsVUFDVDtBQUNBLGNBQUksUUFBUSxLQUFLLEdBQUc7QUFFbEIsbUJBQU8sU0FBUyxPQUFPLFlBQVksSUFBSTtBQUFBLFVBQ3pDO0FBQ0EsY0FBSSxTQUFTLEtBQUssR0FBRztBQUNuQixtQkFBTyxpQkFBaUIsZUFBZSxLQUFLLEtBQUssSUFBSTtBQUFBLFVBQ3ZEO0FBQ0EsY0FBSSxVQUFVLFFBQVE7QUFDdEIsaUJBQVEsV0FBVSxPQUFRLElBQUksU0FBVSxDQUFDLFdBQVksT0FBTztBQUFBLFFBQzlEO0FBV0EsMEJBQWtCLE9BQU8sV0FBVSxZQUFZO0FBQzdDLGNBQUksU0FBUSxJQUNSLFlBQVcsZUFDWCxTQUFTLE1BQU0sUUFDZixXQUFXLE1BQ1gsVUFBUyxDQUFDLEdBQ1YsT0FBTztBQUVYLGNBQUksWUFBWTtBQUNkLHVCQUFXO0FBQ1gsd0JBQVc7QUFBQSxVQUNiLFdBQ1MsVUFBVSxrQkFBa0I7QUFDbkMsZ0JBQUksT0FBTSxZQUFXLE9BQU8sVUFBVSxLQUFLO0FBQzNDLGdCQUFJLE1BQUs7QUFDUCxxQkFBTyxXQUFXLElBQUc7QUFBQSxZQUN2QjtBQUNBLHVCQUFXO0FBQ1gsd0JBQVc7QUFDWCxtQkFBTyxJQUFJO0FBQUEsVUFDYixPQUNLO0FBQ0gsbUJBQU8sWUFBVyxDQUFDLElBQUk7QUFBQSxVQUN6QjtBQUNBO0FBQ0EsbUJBQU8sRUFBRSxTQUFRLFFBQVE7QUFDdkIsa0JBQUksUUFBUSxNQUFNLFNBQ2QsV0FBVyxZQUFXLFVBQVMsS0FBSyxJQUFJO0FBRTVDLHNCQUFTLGNBQWMsVUFBVSxJQUFLLFFBQVE7QUFDOUMsa0JBQUksWUFBWSxhQUFhLFVBQVU7QUFDckMsb0JBQUksWUFBWSxLQUFLO0FBQ3JCLHVCQUFPLGFBQWE7QUFDbEIsc0JBQUksS0FBSyxlQUFlLFVBQVU7QUFDaEM7QUFBQSxrQkFDRjtBQUFBLGdCQUNGO0FBQ0Esb0JBQUksV0FBVTtBQUNaLHVCQUFLLEtBQUssUUFBUTtBQUFBLGdCQUNwQjtBQUNBLHdCQUFPLEtBQUssS0FBSztBQUFBLGNBQ25CLFdBQ1MsQ0FBQyxVQUFTLE1BQU0sVUFBVSxVQUFVLEdBQUc7QUFDOUMsb0JBQUksU0FBUyxTQUFRO0FBQ25CLHVCQUFLLEtBQUssUUFBUTtBQUFBLGdCQUNwQjtBQUNBLHdCQUFPLEtBQUssS0FBSztBQUFBLGNBQ25CO0FBQUEsWUFDRjtBQUNBLGlCQUFPO0FBQUEsUUFDVDtBQVVBLDJCQUFtQixRQUFRLE9BQU07QUFDL0Isa0JBQU8sU0FBUyxPQUFNLE1BQU07QUFDNUIsbUJBQVMsT0FBTyxRQUFRLEtBQUk7QUFDNUIsaUJBQU8sVUFBVSxRQUFRLE9BQU8sT0FBTyxNQUFNLEtBQUssS0FBSSxDQUFDO0FBQUEsUUFDekQ7QUFZQSw0QkFBb0IsUUFBUSxPQUFNLFNBQVMsWUFBWTtBQUNyRCxpQkFBTyxRQUFRLFFBQVEsT0FBTSxRQUFRLFFBQVEsUUFBUSxLQUFJLENBQUMsR0FBRyxVQUFVO0FBQUEsUUFDekU7QUFhQSwyQkFBbUIsT0FBTyxXQUFXLFFBQVEsV0FBVztBQUN0RCxjQUFJLFNBQVMsTUFBTSxRQUNmLFNBQVEsWUFBWSxTQUFTO0FBRWpDLGlCQUFRLGFBQVksV0FBVSxFQUFFLFNBQVEsV0FDdEMsVUFBVSxNQUFNLFNBQVEsUUFBTyxLQUFLLEdBQUc7QUFBQSxVQUFDO0FBRTFDLGlCQUFPLFNBQ0gsVUFBVSxPQUFRLFlBQVksSUFBSSxRQUFTLFlBQVksU0FBUSxJQUFJLE1BQU8sSUFDMUUsVUFBVSxPQUFRLFlBQVksU0FBUSxJQUFJLEdBQUssWUFBWSxTQUFTLE1BQU07QUFBQSxRQUNoRjtBQVlBLGtDQUEwQixPQUFPLFNBQVM7QUFDeEMsY0FBSSxVQUFTO0FBQ2IsY0FBSSxtQkFBa0IsYUFBYTtBQUNqQyxzQkFBUyxRQUFPLE1BQU07QUFBQSxVQUN4QjtBQUNBLGlCQUFPLFlBQVksU0FBUyxTQUFTLFNBQVEsUUFBUTtBQUNuRCxtQkFBTyxPQUFPLEtBQUssTUFBTSxPQUFPLFNBQVMsVUFBVSxDQUFDLE9BQU0sR0FBRyxPQUFPLElBQUksQ0FBQztBQUFBLFVBQzNFLEdBQUcsT0FBTTtBQUFBLFFBQ1g7QUFZQSx5QkFBaUIsUUFBUSxXQUFVLFlBQVk7QUFDN0MsY0FBSSxTQUFTLE9BQU87QUFDcEIsY0FBSSxTQUFTLEdBQUc7QUFDZCxtQkFBTyxTQUFTLFNBQVMsT0FBTyxFQUFFLElBQUksQ0FBQztBQUFBLFVBQ3pDO0FBQ0EsY0FBSSxTQUFRLElBQ1IsVUFBUyxPQUFNLE1BQU07QUFFekIsaUJBQU8sRUFBRSxTQUFRLFFBQVE7QUFDdkIsZ0JBQUksUUFBUSxPQUFPLFNBQ2YsV0FBVztBQUVmLG1CQUFPLEVBQUUsV0FBVyxRQUFRO0FBQzFCLGtCQUFJLFlBQVksUUFBTztBQUNyQix3QkFBTyxVQUFTLGVBQWUsUUFBTyxXQUFVLE9BQU8sT0FBTyxXQUFXLFdBQVUsVUFBVTtBQUFBLGNBQy9GO0FBQUEsWUFDRjtBQUFBLFVBQ0Y7QUFDQSxpQkFBTyxTQUFTLFlBQVksU0FBUSxDQUFDLEdBQUcsV0FBVSxVQUFVO0FBQUEsUUFDOUQ7QUFXQSwrQkFBdUIsT0FBTyxTQUFRLFlBQVk7QUFDaEQsY0FBSSxTQUFRLElBQ1IsU0FBUyxNQUFNLFFBQ2YsYUFBYSxRQUFPLFFBQ3BCLFVBQVMsQ0FBQztBQUVkLGlCQUFPLEVBQUUsU0FBUSxRQUFRO0FBQ3ZCLGdCQUFJLFFBQVEsU0FBUSxhQUFhLFFBQU8sVUFBUztBQUNqRCx1QkFBVyxTQUFRLE1BQU0sU0FBUSxLQUFLO0FBQUEsVUFDeEM7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFTQSxxQ0FBNkIsT0FBTztBQUNsQyxpQkFBTyxrQkFBa0IsS0FBSyxJQUFJLFFBQVEsQ0FBQztBQUFBLFFBQzdDO0FBU0EsOEJBQXNCLE9BQU87QUFDM0IsaUJBQU8sT0FBTyxTQUFTLGFBQWEsUUFBUTtBQUFBLFFBQzlDO0FBVUEsMEJBQWtCLE9BQU8sUUFBUTtBQUMvQixjQUFJLFFBQVEsS0FBSyxHQUFHO0FBQ2xCLG1CQUFPO0FBQUEsVUFDVDtBQUNBLGlCQUFPLE1BQU0sT0FBTyxNQUFNLElBQUksQ0FBQyxLQUFLLElBQUksYUFBYSxTQUFTLEtBQUssQ0FBQztBQUFBLFFBQ3RFO0FBV0EsWUFBSSxXQUFXO0FBV2YsMkJBQW1CLE9BQU8sUUFBTyxLQUFLO0FBQ3BDLGNBQUksU0FBUyxNQUFNO0FBQ25CLGdCQUFNLFFBQVEsYUFBWSxTQUFTO0FBQ25DLGlCQUFRLENBQUMsVUFBUyxPQUFPLFNBQVUsUUFBUSxVQUFVLE9BQU8sUUFBTyxHQUFHO0FBQUEsUUFDeEU7QUFRQSxZQUFJLGdCQUFlLG1CQUFtQixTQUFTLEtBQUk7QUFDakQsaUJBQU8sTUFBSyxhQUFhLEdBQUU7QUFBQSxRQUM3QjtBQVVBLDZCQUFxQixRQUFRLFFBQVE7QUFDbkMsY0FBSSxRQUFRO0FBQ1YsbUJBQU8sT0FBTyxNQUFNO0FBQUEsVUFDdEI7QUFDQSxjQUFJLFNBQVMsT0FBTyxRQUNoQixVQUFTLGNBQWMsWUFBWSxNQUFNLElBQUksSUFBSSxPQUFPLFlBQVksTUFBTTtBQUU5RSxpQkFBTyxLQUFLLE9BQU07QUFDbEIsaUJBQU87QUFBQSxRQUNUO0FBU0Esa0NBQTBCLGFBQWE7QUFDckMsY0FBSSxVQUFTLElBQUksWUFBWSxZQUFZLFlBQVksVUFBVTtBQUMvRCxjQUFJLFlBQVcsT0FBTSxFQUFFLElBQUksSUFBSSxZQUFXLFdBQVcsQ0FBQztBQUN0RCxpQkFBTztBQUFBLFFBQ1Q7QUFVQSwrQkFBdUIsVUFBVSxRQUFRO0FBQ3ZDLGNBQUksU0FBUyxTQUFTLGlCQUFpQixTQUFTLE1BQU0sSUFBSSxTQUFTO0FBQ25FLGlCQUFPLElBQUksU0FBUyxZQUFZLFFBQVEsU0FBUyxZQUFZLFNBQVMsVUFBVTtBQUFBLFFBQ2xGO0FBU0EsNkJBQXFCLFFBQVE7QUFDM0IsY0FBSSxVQUFTLElBQUksT0FBTyxZQUFZLE9BQU8sUUFBUSxRQUFRLEtBQUssTUFBTSxDQUFDO0FBQ3ZFLGtCQUFPLFlBQVksT0FBTztBQUMxQixpQkFBTztBQUFBLFFBQ1Q7QUFTQSw2QkFBcUIsUUFBUTtBQUMzQixpQkFBTyxnQkFBZ0IsUUFBTyxjQUFjLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQztBQUFBLFFBQy9EO0FBVUEsaUNBQXlCLFlBQVksUUFBUTtBQUMzQyxjQUFJLFNBQVMsU0FBUyxpQkFBaUIsV0FBVyxNQUFNLElBQUksV0FBVztBQUN2RSxpQkFBTyxJQUFJLFdBQVcsWUFBWSxRQUFRLFdBQVcsWUFBWSxXQUFXLE1BQU07QUFBQSxRQUNwRjtBQVVBLGtDQUEwQixPQUFPLE9BQU87QUFDdEMsY0FBSSxVQUFVLE9BQU87QUFDbkIsZ0JBQUksZUFBZSxVQUFVLFlBQ3pCLFlBQVksVUFBVSxNQUN0QixpQkFBaUIsVUFBVSxPQUMzQixjQUFjLFNBQVMsS0FBSztBQUVoQyxnQkFBSSxlQUFlLFVBQVUsWUFDekIsWUFBWSxVQUFVLE1BQ3RCLGlCQUFpQixVQUFVLE9BQzNCLGNBQWMsU0FBUyxLQUFLO0FBRWhDLGdCQUFLLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxlQUFlLFFBQVEsU0FDdEQsZUFBZSxnQkFBZ0Isa0JBQWtCLENBQUMsYUFBYSxDQUFDLGVBQ2hFLGFBQWEsZ0JBQWdCLGtCQUM3QixDQUFDLGdCQUFnQixrQkFDbEIsQ0FBQyxnQkFBZ0I7QUFDbkIscUJBQU87QUFBQSxZQUNUO0FBQ0EsZ0JBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLGVBQWUsUUFBUSxTQUN0RCxlQUFlLGdCQUFnQixrQkFBa0IsQ0FBQyxhQUFhLENBQUMsZUFDaEUsYUFBYSxnQkFBZ0Isa0JBQzdCLENBQUMsZ0JBQWdCLGtCQUNsQixDQUFDLGdCQUFnQjtBQUNuQixxQkFBTztBQUFBLFlBQ1Q7QUFBQSxVQUNGO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBZ0JBLGlDQUF5QixRQUFRLE9BQU8sUUFBUTtBQUM5QyxjQUFJLFNBQVEsSUFDUixjQUFjLE9BQU8sVUFDckIsY0FBYyxNQUFNLFVBQ3BCLFNBQVMsWUFBWSxRQUNyQixlQUFlLE9BQU87QUFFMUIsaUJBQU8sRUFBRSxTQUFRLFFBQVE7QUFDdkIsZ0JBQUksVUFBUyxpQkFBaUIsWUFBWSxTQUFRLFlBQVksT0FBTTtBQUNwRSxnQkFBSSxTQUFRO0FBQ1Ysa0JBQUksVUFBUyxjQUFjO0FBQ3pCLHVCQUFPO0FBQUEsY0FDVDtBQUNBLGtCQUFJLFFBQVEsT0FBTztBQUNuQixxQkFBTyxVQUFVLFVBQVMsU0FBUyxLQUFLO0FBQUEsWUFDMUM7QUFBQSxVQUNGO0FBUUEsaUJBQU8sT0FBTyxRQUFRLE1BQU07QUFBQSxRQUM5QjtBQWFBLDZCQUFxQixNQUFNLFVBQVUsU0FBUyxXQUFXO0FBQ3ZELGNBQUksWUFBWSxJQUNaLGFBQWEsS0FBSyxRQUNsQixnQkFBZ0IsUUFBUSxRQUN4QixZQUFZLElBQ1osYUFBYSxTQUFTLFFBQ3RCLGNBQWMsVUFBVSxhQUFhLGVBQWUsQ0FBQyxHQUNyRCxVQUFTLE9BQU0sYUFBYSxXQUFXLEdBQ3ZDLGNBQWMsQ0FBQztBQUVuQixpQkFBTyxFQUFFLFlBQVksWUFBWTtBQUMvQixvQkFBTyxhQUFhLFNBQVM7QUFBQSxVQUMvQjtBQUNBLGlCQUFPLEVBQUUsWUFBWSxlQUFlO0FBQ2xDLGdCQUFJLGVBQWUsWUFBWSxZQUFZO0FBQ3pDLHNCQUFPLFFBQVEsY0FBYyxLQUFLO0FBQUEsWUFDcEM7QUFBQSxVQUNGO0FBQ0EsaUJBQU8sZUFBZTtBQUNwQixvQkFBTyxlQUFlLEtBQUs7QUFBQSxVQUM3QjtBQUNBLGlCQUFPO0FBQUEsUUFDVDtBQWFBLGtDQUEwQixNQUFNLFVBQVUsU0FBUyxXQUFXO0FBQzVELGNBQUksWUFBWSxJQUNaLGFBQWEsS0FBSyxRQUNsQixlQUFlLElBQ2YsZ0JBQWdCLFFBQVEsUUFDeEIsYUFBYSxJQUNiLGNBQWMsU0FBUyxRQUN2QixjQUFjLFVBQVUsYUFBYSxlQUFlLENBQUMsR0FDckQsVUFBUyxPQUFNLGNBQWMsV0FBVyxHQUN4QyxjQUFjLENBQUM7QUFFbkIsaUJBQU8sRUFBRSxZQUFZLGFBQWE7QUFDaEMsb0JBQU8sYUFBYSxLQUFLO0FBQUEsVUFDM0I7QUFDQSxjQUFJLFNBQVM7QUFDYixpQkFBTyxFQUFFLGFBQWEsYUFBYTtBQUNqQyxvQkFBTyxTQUFTLGNBQWMsU0FBUztBQUFBLFVBQ3pDO0FBQ0EsaUJBQU8sRUFBRSxlQUFlLGVBQWU7QUFDckMsZ0JBQUksZUFBZSxZQUFZLFlBQVk7QUFDekMsc0JBQU8sU0FBUyxRQUFRLGlCQUFpQixLQUFLO0FBQUEsWUFDaEQ7QUFBQSxVQUNGO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBVUEsMkJBQW1CLFFBQVEsT0FBTztBQUNoQyxjQUFJLFNBQVEsSUFDUixTQUFTLE9BQU87QUFFcEIsbUJBQVUsU0FBUSxPQUFNLE1BQU07QUFDOUIsaUJBQU8sRUFBRSxTQUFRLFFBQVE7QUFDdkIsa0JBQU0sVUFBUyxPQUFPO0FBQUEsVUFDeEI7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFZQSw0QkFBb0IsUUFBUSxPQUFPLFFBQVEsWUFBWTtBQUNyRCxjQUFJLFFBQVEsQ0FBQztBQUNiLG9CQUFXLFVBQVMsQ0FBQztBQUVyQixjQUFJLFNBQVEsSUFDUixTQUFTLE1BQU07QUFFbkIsaUJBQU8sRUFBRSxTQUFRLFFBQVE7QUFDdkIsZ0JBQUksTUFBTSxNQUFNO0FBRWhCLGdCQUFJLFdBQVcsYUFDWCxXQUFXLE9BQU8sTUFBTSxPQUFPLE1BQU0sS0FBSyxRQUFRLE1BQU0sSUFDeEQ7QUFFSixnQkFBSSxhQUFhLFlBQVc7QUFDMUIseUJBQVcsT0FBTztBQUFBLFlBQ3BCO0FBQ0EsZ0JBQUksT0FBTztBQUNULDhCQUFnQixRQUFRLEtBQUssUUFBUTtBQUFBLFlBQ3ZDLE9BQU87QUFDTCwwQkFBWSxRQUFRLEtBQUssUUFBUTtBQUFBLFlBQ25DO0FBQUEsVUFDRjtBQUNBLGlCQUFPO0FBQUEsUUFDVDtBQVVBLDZCQUFxQixRQUFRLFFBQVE7QUFDbkMsaUJBQU8sV0FBVyxRQUFRLFdBQVcsTUFBTSxHQUFHLE1BQU07QUFBQSxRQUN0RDtBQVVBLCtCQUF1QixRQUFRLFFBQVE7QUFDckMsaUJBQU8sV0FBVyxRQUFRLGFBQWEsTUFBTSxHQUFHLE1BQU07QUFBQSxRQUN4RDtBQVVBLGtDQUEwQixRQUFRLGFBQWE7QUFDN0MsaUJBQU8sU0FBUyxZQUFZLFdBQVU7QUFDcEMsZ0JBQUksT0FBTyxRQUFRLFVBQVUsSUFBSSxrQkFBa0IsZ0JBQy9DLGNBQWMsY0FBYyxZQUFZLElBQUksQ0FBQztBQUVqRCxtQkFBTyxLQUFLLFlBQVksUUFBUSxZQUFZLFdBQVUsQ0FBQyxHQUFHLFdBQVc7QUFBQSxVQUN2RTtBQUFBLFFBQ0Y7QUFTQSxnQ0FBd0IsVUFBVTtBQUNoQyxpQkFBTyxTQUFTLFNBQVMsUUFBUSxTQUFTO0FBQ3hDLGdCQUFJLFNBQVEsSUFDUixTQUFTLFFBQVEsUUFDakIsYUFBYSxTQUFTLElBQUksUUFBUSxTQUFTLEtBQUssWUFDaEQsUUFBUSxTQUFTLElBQUksUUFBUSxLQUFLO0FBRXRDLHlCQUFjLFNBQVMsU0FBUyxLQUFLLE9BQU8sY0FBYyxhQUNyRCxXQUFVLGNBQ1g7QUFFSixnQkFBSSxTQUFTLGVBQWUsUUFBUSxJQUFJLFFBQVEsSUFBSSxLQUFLLEdBQUc7QUFDMUQsMkJBQWEsU0FBUyxJQUFJLGFBQVk7QUFDdEMsdUJBQVM7QUFBQSxZQUNYO0FBQ0EscUJBQVMsUUFBTyxNQUFNO0FBQ3RCLG1CQUFPLEVBQUUsU0FBUSxRQUFRO0FBQ3ZCLGtCQUFJLFNBQVMsUUFBUTtBQUNyQixrQkFBSSxRQUFRO0FBQ1YseUJBQVMsUUFBUSxRQUFRLFFBQU8sVUFBVTtBQUFBLGNBQzVDO0FBQUEsWUFDRjtBQUNBLG1CQUFPO0FBQUEsVUFDVCxDQUFDO0FBQUEsUUFDSDtBQVVBLGdDQUF3QixVQUFVLFdBQVc7QUFDM0MsaUJBQU8sU0FBUyxZQUFZLFdBQVU7QUFDcEMsZ0JBQUksY0FBYyxNQUFNO0FBQ3RCLHFCQUFPO0FBQUEsWUFDVDtBQUNBLGdCQUFJLENBQUMsWUFBWSxVQUFVLEdBQUc7QUFDNUIscUJBQU8sU0FBUyxZQUFZLFNBQVE7QUFBQSxZQUN0QztBQUNBLGdCQUFJLFNBQVMsV0FBVyxRQUNwQixTQUFRLFlBQVksU0FBUyxJQUM3QixXQUFXLFFBQU8sVUFBVTtBQUVoQyxtQkFBUSxZQUFZLFdBQVUsRUFBRSxTQUFRLFFBQVM7QUFDL0Msa0JBQUksVUFBUyxTQUFTLFNBQVEsUUFBTyxRQUFRLE1BQU0sT0FBTztBQUN4RDtBQUFBLGNBQ0Y7QUFBQSxZQUNGO0FBQ0EsbUJBQU87QUFBQSxVQUNUO0FBQUEsUUFDRjtBQVNBLCtCQUF1QixXQUFXO0FBQ2hDLGlCQUFPLFNBQVMsUUFBUSxXQUFVLFVBQVU7QUFDMUMsZ0JBQUksU0FBUSxJQUNSLFdBQVcsUUFBTyxNQUFNLEdBQ3hCLFFBQVEsU0FBUyxNQUFNLEdBQ3ZCLFNBQVMsTUFBTTtBQUVuQixtQkFBTyxVQUFVO0FBQ2Ysa0JBQUksTUFBTSxNQUFNLFlBQVksU0FBUyxFQUFFO0FBQ3ZDLGtCQUFJLFVBQVMsU0FBUyxNQUFNLEtBQUssUUFBUSxNQUFNLE9BQU87QUFDcEQ7QUFBQSxjQUNGO0FBQUEsWUFDRjtBQUNBLG1CQUFPO0FBQUEsVUFDVDtBQUFBLFFBQ0Y7QUFZQSw0QkFBb0IsTUFBTSxTQUFTLFNBQVM7QUFDMUMsY0FBSSxTQUFTLFVBQVUsZ0JBQ25CLE9BQU8sV0FBVyxJQUFJO0FBRTFCLDZCQUFtQjtBQUNqQixnQkFBSSxLQUFNLFFBQVEsU0FBUyxTQUFRLGdCQUFnQixVQUFXLE9BQU87QUFDckUsbUJBQU8sR0FBRyxNQUFNLFNBQVMsVUFBVSxNQUFNLFNBQVM7QUFBQSxVQUNwRDtBQUNBLGlCQUFPO0FBQUEsUUFDVDtBQVNBLGlDQUF5QixZQUFZO0FBQ25DLGlCQUFPLFNBQVMsUUFBUTtBQUN0QixxQkFBUyxTQUFTLE1BQU07QUFFeEIsZ0JBQUksYUFBYSxXQUFXLE1BQU0sSUFDOUIsY0FBYyxNQUFNLElBQ3BCO0FBRUosZ0JBQUksTUFBTSxhQUNOLFdBQVcsS0FDWCxPQUFPLE9BQU8sQ0FBQztBQUVuQixnQkFBSSxXQUFXLGFBQ1gsVUFBVSxZQUFZLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFDaEMsT0FBTyxNQUFNLENBQUM7QUFFbEIsbUJBQU8sSUFBSSxZQUFZLElBQUk7QUFBQSxVQUM3QjtBQUFBLFFBQ0Y7QUFTQSxrQ0FBMEIsVUFBVTtBQUNsQyxpQkFBTyxTQUFTLFFBQVE7QUFDdEIsbUJBQU8sWUFBWSxNQUFNLE9BQU8sTUFBTSxFQUFFLFFBQVEsUUFBUSxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUU7QUFBQSxVQUM1RTtBQUFBLFFBQ0Y7QUFVQSw0QkFBb0IsTUFBTTtBQUN4QixpQkFBTyxXQUFXO0FBSWhCLGdCQUFJLE9BQU87QUFDWCxvQkFBUSxLQUFLO0FBQUEsbUJBQ047QUFBRyx1QkFBTyxJQUFJO0FBQUEsbUJBQ2Q7QUFBRyx1QkFBTyxJQUFJLEtBQUssS0FBSyxFQUFFO0FBQUEsbUJBQzFCO0FBQUcsdUJBQU8sSUFBSSxLQUFLLEtBQUssSUFBSSxLQUFLLEVBQUU7QUFBQSxtQkFDbkM7QUFBRyx1QkFBTyxJQUFJLEtBQUssS0FBSyxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUU7QUFBQSxtQkFDNUM7QUFBRyx1QkFBTyxJQUFJLEtBQUssS0FBSyxJQUFJLEtBQUssSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFO0FBQUEsbUJBQ3JEO0FBQUcsdUJBQU8sSUFBSSxLQUFLLEtBQUssSUFBSSxLQUFLLElBQUksS0FBSyxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUU7QUFBQSxtQkFDOUQ7QUFBRyx1QkFBTyxJQUFJLEtBQUssS0FBSyxJQUFJLEtBQUssSUFBSSxLQUFLLElBQUksS0FBSyxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUU7QUFBQSxtQkFDdkU7QUFBRyx1QkFBTyxJQUFJLEtBQUssS0FBSyxJQUFJLEtBQUssSUFBSSxLQUFLLElBQUksS0FBSyxJQUFJLEtBQUssSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFO0FBQUE7QUFFdkYsZ0JBQUksY0FBYyxXQUFXLEtBQUssU0FBUyxHQUN2QyxVQUFTLEtBQUssTUFBTSxhQUFhLElBQUk7QUFJekMsbUJBQU8sU0FBUyxPQUFNLElBQUksVUFBUztBQUFBLFVBQ3JDO0FBQUEsUUFDRjtBQVdBLDZCQUFxQixNQUFNLFNBQVMsT0FBTztBQUN6QyxjQUFJLE9BQU8sV0FBVyxJQUFJO0FBRTFCLDZCQUFtQjtBQUNqQixnQkFBSSxTQUFTLFVBQVUsUUFDbkIsT0FBTyxPQUFNLE1BQU0sR0FDbkIsU0FBUSxRQUNSLGNBQWMsVUFBVSxPQUFPO0FBRW5DLG1CQUFPLFVBQVM7QUFDZCxtQkFBSyxVQUFTLFVBQVU7QUFBQSxZQUMxQjtBQUNBLGdCQUFJLFVBQVcsU0FBUyxLQUFLLEtBQUssT0FBTyxlQUFlLEtBQUssU0FBUyxPQUFPLGNBQ3pFLENBQUMsSUFDRCxlQUFlLE1BQU0sV0FBVztBQUVwQyxzQkFBVSxRQUFRO0FBQ2xCLGdCQUFJLFNBQVMsT0FBTztBQUNsQixxQkFBTyxjQUNMLE1BQU0sU0FBUyxjQUFjLFFBQVEsYUFBYSxZQUNsRCxNQUFNLFNBQVMsWUFBVyxZQUFXLFFBQVEsTUFBTTtBQUFBLFlBQ3ZEO0FBQ0EsZ0JBQUksS0FBTSxRQUFRLFNBQVMsU0FBUSxnQkFBZ0IsVUFBVyxPQUFPO0FBQ3JFLG1CQUFPLE1BQU0sSUFBSSxNQUFNLElBQUk7QUFBQSxVQUM3QjtBQUNBLGlCQUFPO0FBQUEsUUFDVDtBQVNBLDRCQUFvQixlQUFlO0FBQ2pDLGlCQUFPLFNBQVMsWUFBWSxXQUFXLFdBQVc7QUFDaEQsZ0JBQUksV0FBVyxRQUFPLFVBQVU7QUFDaEMsZ0JBQUksQ0FBQyxZQUFZLFVBQVUsR0FBRztBQUM1QixrQkFBSSxZQUFXLFlBQVksV0FBVyxDQUFDO0FBQ3ZDLDJCQUFhLEtBQUssVUFBVTtBQUM1QiwwQkFBWSxTQUFTLEtBQUs7QUFBRSx1QkFBTyxVQUFTLFNBQVMsTUFBTSxLQUFLLFFBQVE7QUFBQSxjQUFHO0FBQUEsWUFDN0U7QUFDQSxnQkFBSSxTQUFRLGNBQWMsWUFBWSxXQUFXLFNBQVM7QUFDMUQsbUJBQU8sU0FBUSxLQUFLLFNBQVMsWUFBVyxXQUFXLFVBQVMsVUFBUztBQUFBLFVBQ3ZFO0FBQUEsUUFDRjtBQVNBLDRCQUFvQixXQUFXO0FBQzdCLGlCQUFPLFNBQVMsU0FBUyxPQUFPO0FBQzlCLGdCQUFJLFNBQVMsTUFBTSxRQUNmLFNBQVEsUUFDUixTQUFTLGNBQWMsVUFBVTtBQUVyQyxnQkFBSSxXQUFXO0FBQ2Isb0JBQU0sUUFBUTtBQUFBLFlBQ2hCO0FBQ0EsbUJBQU8sVUFBUztBQUNkLGtCQUFJLE9BQU8sTUFBTTtBQUNqQixrQkFBSSxPQUFPLFFBQVEsWUFBWTtBQUM3QixzQkFBTSxJQUFJLFdBQVUsZUFBZTtBQUFBLGNBQ3JDO0FBQ0Esa0JBQUksVUFBVSxDQUFDLFdBQVcsWUFBWSxJQUFJLEtBQUssV0FBVztBQUN4RCxvQkFBSSxVQUFVLElBQUksY0FBYyxDQUFDLEdBQUcsSUFBSTtBQUFBLGNBQzFDO0FBQUEsWUFDRjtBQUNBLHFCQUFRLFVBQVUsU0FBUTtBQUMxQixtQkFBTyxFQUFFLFNBQVEsUUFBUTtBQUN2QixxQkFBTyxNQUFNO0FBRWIsa0JBQUksV0FBVyxZQUFZLElBQUksR0FDM0IsT0FBTyxZQUFZLFlBQVksUUFBUSxJQUFJLElBQUk7QUFFbkQsa0JBQUksUUFBUSxXQUFXLEtBQUssRUFBRSxLQUN4QixLQUFLLE1BQU8saUJBQWdCLGtCQUFrQixvQkFBb0Isb0JBQ2xFLENBQUMsS0FBSyxHQUFHLFVBQVUsS0FBSyxNQUFNLEdBQzlCO0FBQ0osMEJBQVUsUUFBUSxZQUFZLEtBQUssRUFBRSxHQUFHLE1BQU0sU0FBUyxLQUFLLEVBQUU7QUFBQSxjQUNoRSxPQUFPO0FBQ0wsMEJBQVcsS0FBSyxVQUFVLEtBQUssV0FBVyxJQUFJLElBQzFDLFFBQVEsVUFBVSxJQUNsQixRQUFRLEtBQUssSUFBSTtBQUFBLGNBQ3ZCO0FBQUEsWUFDRjtBQUNBLG1CQUFPLFdBQVc7QUFDaEIsa0JBQUksT0FBTyxXQUNQLFFBQVEsS0FBSztBQUVqQixrQkFBSSxXQUFXLEtBQUssVUFBVSxLQUFLLFFBQVEsS0FBSyxHQUFHO0FBQ2pELHVCQUFPLFFBQVEsTUFBTSxLQUFLLEVBQUUsTUFBTTtBQUFBLGNBQ3BDO0FBQ0Esa0JBQUksU0FBUSxHQUNSLFVBQVMsU0FBUyxNQUFNLFFBQU8sTUFBTSxNQUFNLElBQUksSUFBSTtBQUV2RCxxQkFBTyxFQUFFLFNBQVEsUUFBUTtBQUN2QiwwQkFBUyxNQUFNLFFBQU8sS0FBSyxNQUFNLE9BQU07QUFBQSxjQUN6QztBQUNBLHFCQUFPO0FBQUEsWUFDVDtBQUFBLFVBQ0YsQ0FBQztBQUFBLFFBQ0g7QUFxQkEsOEJBQXNCLE1BQU0sU0FBUyxTQUFTLFVBQVUsU0FBUyxlQUFlLGNBQWMsUUFBUSxNQUFLLE9BQU87QUFDaEgsY0FBSSxRQUFRLFVBQVUsZUFDbEIsU0FBUyxVQUFVLGdCQUNuQixZQUFZLFVBQVUsb0JBQ3RCLFlBQVksVUFBVyxtQkFBa0Isd0JBQ3pDLFNBQVMsVUFBVSxnQkFDbkIsT0FBTyxZQUFZLGFBQVksV0FBVyxJQUFJO0FBRWxELDZCQUFtQjtBQUNqQixnQkFBSSxTQUFTLFVBQVUsUUFDbkIsT0FBTyxPQUFNLE1BQU0sR0FDbkIsU0FBUTtBQUVaLG1CQUFPLFVBQVM7QUFDZCxtQkFBSyxVQUFTLFVBQVU7QUFBQSxZQUMxQjtBQUNBLGdCQUFJLFdBQVc7QUFDYixrQkFBSSxjQUFjLFVBQVUsT0FBTyxHQUMvQixlQUFlLGFBQWEsTUFBTSxXQUFXO0FBQUEsWUFDbkQ7QUFDQSxnQkFBSSxVQUFVO0FBQ1oscUJBQU8sWUFBWSxNQUFNLFVBQVUsU0FBUyxTQUFTO0FBQUEsWUFDdkQ7QUFDQSxnQkFBSSxlQUFlO0FBQ2pCLHFCQUFPLGlCQUFpQixNQUFNLGVBQWUsY0FBYyxTQUFTO0FBQUEsWUFDdEU7QUFDQSxzQkFBVTtBQUNWLGdCQUFJLGFBQWEsU0FBUyxPQUFPO0FBQy9CLGtCQUFJLGFBQWEsZUFBZSxNQUFNLFdBQVc7QUFDakQscUJBQU8sY0FDTCxNQUFNLFNBQVMsY0FBYyxRQUFRLGFBQWEsU0FDbEQsTUFBTSxZQUFZLFFBQVEsTUFBSyxRQUFRLE1BQ3pDO0FBQUEsWUFDRjtBQUNBLGdCQUFJLGNBQWMsU0FBUyxVQUFVLE1BQ2pDLEtBQUssWUFBWSxZQUFZLFFBQVE7QUFFekMscUJBQVMsS0FBSztBQUNkLGdCQUFJLFFBQVE7QUFDVixxQkFBTyxRQUFRLE1BQU0sTUFBTTtBQUFBLFlBQzdCLFdBQVcsVUFBVSxTQUFTLEdBQUc7QUFDL0IsbUJBQUssUUFBUTtBQUFBLFlBQ2Y7QUFDQSxnQkFBSSxTQUFTLE9BQU0sUUFBUTtBQUN6QixtQkFBSyxTQUFTO0FBQUEsWUFDaEI7QUFDQSxnQkFBSSxRQUFRLFNBQVMsU0FBUSxnQkFBZ0IsU0FBUztBQUNwRCxtQkFBSyxRQUFRLFdBQVcsRUFBRTtBQUFBLFlBQzVCO0FBQ0EsbUJBQU8sR0FBRyxNQUFNLGFBQWEsSUFBSTtBQUFBLFVBQ25DO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBVUEsZ0NBQXdCLFFBQVEsWUFBWTtBQUMxQyxpQkFBTyxTQUFTLFFBQVEsV0FBVTtBQUNoQyxtQkFBTyxhQUFhLFFBQVEsUUFBUSxXQUFXLFNBQVEsR0FBRyxDQUFDLENBQUM7QUFBQSxVQUM5RDtBQUFBLFFBQ0Y7QUFVQSxxQ0FBNkIsVUFBVSxjQUFjO0FBQ25ELGlCQUFPLFNBQVMsT0FBTyxPQUFPO0FBQzVCLGdCQUFJO0FBQ0osZ0JBQUksVUFBVSxjQUFhLFVBQVUsWUFBVztBQUM5QyxxQkFBTztBQUFBLFlBQ1Q7QUFDQSxnQkFBSSxVQUFVLFlBQVc7QUFDdkIsd0JBQVM7QUFBQSxZQUNYO0FBQ0EsZ0JBQUksVUFBVSxZQUFXO0FBQ3ZCLGtCQUFJLFlBQVcsWUFBVztBQUN4Qix1QkFBTztBQUFBLGNBQ1Q7QUFDQSxrQkFBSSxPQUFPLFNBQVMsWUFBWSxPQUFPLFNBQVMsVUFBVTtBQUN4RCx3QkFBUSxhQUFhLEtBQUs7QUFDMUIsd0JBQVEsYUFBYSxLQUFLO0FBQUEsY0FDNUIsT0FBTztBQUNMLHdCQUFRLGFBQWEsS0FBSztBQUMxQix3QkFBUSxhQUFhLEtBQUs7QUFBQSxjQUM1QjtBQUNBLHdCQUFTLFNBQVMsT0FBTyxLQUFLO0FBQUEsWUFDaEM7QUFDQSxtQkFBTztBQUFBLFVBQ1Q7QUFBQSxRQUNGO0FBU0EsNEJBQW9CLFdBQVc7QUFDN0IsaUJBQU8sU0FBUyxTQUFTLFdBQVc7QUFDbEMsd0JBQVksU0FBUyxXQUFXLFVBQVUsWUFBWSxDQUFDLENBQUM7QUFDeEQsbUJBQU8sU0FBUyxTQUFTLE1BQU07QUFDN0Isa0JBQUksVUFBVTtBQUNkLHFCQUFPLFVBQVUsV0FBVyxTQUFTLFdBQVU7QUFDN0MsdUJBQU8sTUFBTSxXQUFVLFNBQVMsSUFBSTtBQUFBLGNBQ3RDLENBQUM7QUFBQSxZQUNILENBQUM7QUFBQSxVQUNILENBQUM7QUFBQSxRQUNIO0FBV0EsK0JBQXVCLFFBQVEsT0FBTztBQUNwQyxrQkFBUSxVQUFVLGFBQVksTUFBTSxhQUFhLEtBQUs7QUFFdEQsY0FBSSxjQUFjLE1BQU07QUFDeEIsY0FBSSxjQUFjLEdBQUc7QUFDbkIsbUJBQU8sY0FBYyxXQUFXLE9BQU8sTUFBTSxJQUFJO0FBQUEsVUFDbkQ7QUFDQSxjQUFJLFVBQVMsV0FBVyxPQUFPLFdBQVcsU0FBUyxXQUFXLEtBQUssQ0FBQyxDQUFDO0FBQ3JFLGlCQUFPLFdBQVcsS0FBSyxJQUNuQixVQUFVLGNBQWMsT0FBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUNuRCxRQUFPLE1BQU0sR0FBRyxNQUFNO0FBQUEsUUFDNUI7QUFjQSwrQkFBdUIsTUFBTSxTQUFTLFNBQVMsVUFBVTtBQUN2RCxjQUFJLFNBQVMsVUFBVSxnQkFDbkIsT0FBTyxXQUFXLElBQUk7QUFFMUIsNkJBQW1CO0FBQ2pCLGdCQUFJLFlBQVksSUFDWixhQUFhLFVBQVUsUUFDdkIsWUFBWSxJQUNaLGFBQWEsU0FBUyxRQUN0QixPQUFPLE9BQU0sYUFBYSxVQUFVLEdBQ3BDLEtBQU0sUUFBUSxTQUFTLFNBQVEsZ0JBQWdCLFVBQVcsT0FBTztBQUVyRSxtQkFBTyxFQUFFLFlBQVksWUFBWTtBQUMvQixtQkFBSyxhQUFhLFNBQVM7QUFBQSxZQUM3QjtBQUNBLG1CQUFPLGNBQWM7QUFDbkIsbUJBQUssZUFBZSxVQUFVLEVBQUU7QUFBQSxZQUNsQztBQUNBLG1CQUFPLE1BQU0sSUFBSSxTQUFTLFVBQVUsTUFBTSxJQUFJO0FBQUEsVUFDaEQ7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFTQSw2QkFBcUIsV0FBVztBQUM5QixpQkFBTyxTQUFTLFFBQU8sS0FBSyxNQUFNO0FBQ2hDLGdCQUFJLFFBQVEsT0FBTyxRQUFRLFlBQVksZUFBZSxRQUFPLEtBQUssSUFBSSxHQUFHO0FBQ3ZFLG9CQUFNLE9BQU87QUFBQSxZQUNmO0FBRUEscUJBQVEsU0FBUyxNQUFLO0FBQ3RCLGdCQUFJLFFBQVEsWUFBVztBQUNyQixvQkFBTTtBQUNOLHVCQUFRO0FBQUEsWUFDVixPQUFPO0FBQ0wsb0JBQU0sU0FBUyxHQUFHO0FBQUEsWUFDcEI7QUFDQSxtQkFBTyxTQUFTLGFBQWEsU0FBUSxNQUFNLElBQUksS0FBTSxTQUFTLElBQUk7QUFDbEUsbUJBQU8sVUFBVSxRQUFPLEtBQUssTUFBTSxTQUFTO0FBQUEsVUFDOUM7QUFBQSxRQUNGO0FBU0EsMkNBQW1DLFVBQVU7QUFDM0MsaUJBQU8sU0FBUyxPQUFPLE9BQU87QUFDNUIsZ0JBQUksQ0FBRSxRQUFPLFNBQVMsWUFBWSxPQUFPLFNBQVMsV0FBVztBQUMzRCxzQkFBUSxTQUFTLEtBQUs7QUFDdEIsc0JBQVEsU0FBUyxLQUFLO0FBQUEsWUFDeEI7QUFDQSxtQkFBTyxTQUFTLE9BQU8sS0FBSztBQUFBLFVBQzlCO0FBQUEsUUFDRjtBQW1CQSwrQkFBdUIsTUFBTSxTQUFTLFVBQVUsYUFBYSxTQUFTLFVBQVUsU0FBUyxRQUFRLE1BQUssT0FBTztBQUMzRyxjQUFJLFVBQVUsVUFBVSxpQkFDcEIsYUFBYSxVQUFVLFVBQVUsWUFDakMsa0JBQWtCLFVBQVUsYUFBWSxTQUN4QyxjQUFjLFVBQVUsV0FBVyxZQUNuQyxtQkFBbUIsVUFBVSxhQUFZO0FBRTdDLHFCQUFZLFVBQVUsb0JBQW9CO0FBQzFDLHFCQUFXLENBQUUsV0FBVSwwQkFBMEI7QUFFakQsY0FBSSxDQUFFLFdBQVUsd0JBQXdCO0FBQ3RDLHVCQUFXLENBQUUsa0JBQWlCO0FBQUEsVUFDaEM7QUFDQSxjQUFJLFVBQVU7QUFBQSxZQUNaO0FBQUEsWUFBTTtBQUFBLFlBQVM7QUFBQSxZQUFTO0FBQUEsWUFBYTtBQUFBLFlBQVk7QUFBQSxZQUNqRDtBQUFBLFlBQWlCO0FBQUEsWUFBUTtBQUFBLFlBQUs7QUFBQSxVQUNoQztBQUVBLGNBQUksVUFBUyxTQUFTLE1BQU0sWUFBVyxPQUFPO0FBQzlDLGNBQUksV0FBVyxJQUFJLEdBQUc7QUFDcEIsb0JBQVEsU0FBUSxPQUFPO0FBQUEsVUFDekI7QUFDQSxrQkFBTyxjQUFjO0FBQ3JCLGlCQUFPLGdCQUFnQixTQUFRLE1BQU0sT0FBTztBQUFBLFFBQzlDO0FBU0EsNkJBQXFCLFlBQVk7QUFDL0IsY0FBSSxPQUFPLE1BQUs7QUFDaEIsaUJBQU8sU0FBUyxTQUFRLFdBQVc7QUFDakMsc0JBQVMsU0FBUyxPQUFNO0FBQ3hCLHdCQUFZLGFBQWEsT0FBTyxJQUFJLFVBQVUsVUFBVSxTQUFTLEdBQUcsR0FBRztBQUN2RSxnQkFBSSxhQUFhLGVBQWUsT0FBTSxHQUFHO0FBR3ZDLGtCQUFJLE9BQVEsVUFBUyxPQUFNLElBQUksS0FBSyxNQUFNLEdBQUcsR0FDekMsUUFBUSxLQUFLLEtBQUssS0FBSyxNQUFPLEVBQUMsS0FBSyxLQUFLLFVBQVU7QUFFdkQscUJBQVEsVUFBUyxLQUFLLElBQUksS0FBSyxNQUFNLEdBQUc7QUFDeEMscUJBQU8sQ0FBRSxNQUFLLEtBQUssTUFBTyxFQUFDLEtBQUssS0FBSztBQUFBLFlBQ3ZDO0FBQ0EsbUJBQU8sS0FBSyxPQUFNO0FBQUEsVUFDcEI7QUFBQSxRQUNGO0FBU0EsWUFBSSxZQUFZLENBQUUsU0FBUSxJQUFJLFdBQVcsSUFBSSxLQUFJLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU8sWUFBWSxRQUFPLFNBQVMsU0FBUTtBQUNsRyxpQkFBTyxJQUFJLEtBQUksT0FBTTtBQUFBLFFBQ3ZCO0FBU0EsK0JBQXVCLFVBQVU7QUFDL0IsaUJBQU8sU0FBUyxRQUFRO0FBQ3RCLGdCQUFJLE1BQU0sT0FBTyxNQUFNO0FBQ3ZCLGdCQUFJLE9BQU8sUUFBUTtBQUNqQixxQkFBTyxXQUFXLE1BQU07QUFBQSxZQUMxQjtBQUNBLGdCQUFJLE9BQU8sUUFBUTtBQUNqQixxQkFBTyxXQUFXLE1BQU07QUFBQSxZQUMxQjtBQUNBLG1CQUFPLFlBQVksUUFBUSxTQUFTLE1BQU0sQ0FBQztBQUFBLFVBQzdDO0FBQUEsUUFDRjtBQTJCQSw0QkFBb0IsTUFBTSxTQUFTLFNBQVMsVUFBVSxTQUFTLFFBQVEsTUFBSyxPQUFPO0FBQ2pGLGNBQUksWUFBWSxVQUFVO0FBQzFCLGNBQUksQ0FBQyxhQUFhLE9BQU8sUUFBUSxZQUFZO0FBQzNDLGtCQUFNLElBQUksV0FBVSxlQUFlO0FBQUEsVUFDckM7QUFDQSxjQUFJLFNBQVMsV0FBVyxTQUFTLFNBQVM7QUFDMUMsY0FBSSxDQUFDLFFBQVE7QUFDWCx1QkFBVyxDQUFFLHFCQUFvQjtBQUNqQyx1QkFBVyxVQUFVO0FBQUEsVUFDdkI7QUFDQSxpQkFBTSxTQUFRLGFBQVksT0FBTSxVQUFVLFVBQVUsSUFBRyxHQUFHLENBQUM7QUFDM0Qsa0JBQVEsVUFBVSxhQUFZLFFBQVEsVUFBVSxLQUFLO0FBQ3JELG9CQUFVLFVBQVUsUUFBUSxTQUFTO0FBRXJDLGNBQUksVUFBVSx5QkFBeUI7QUFDckMsZ0JBQUksZ0JBQWdCLFVBQ2hCLGVBQWU7QUFFbkIsdUJBQVcsVUFBVTtBQUFBLFVBQ3ZCO0FBQ0EsY0FBSSxPQUFPLFlBQVksYUFBWSxRQUFRLElBQUk7QUFFL0MsY0FBSSxVQUFVO0FBQUEsWUFDWjtBQUFBLFlBQU07QUFBQSxZQUFTO0FBQUEsWUFBUztBQUFBLFlBQVU7QUFBQSxZQUFTO0FBQUEsWUFBZTtBQUFBLFlBQzFEO0FBQUEsWUFBUTtBQUFBLFlBQUs7QUFBQSxVQUNmO0FBRUEsY0FBSSxNQUFNO0FBQ1Isc0JBQVUsU0FBUyxJQUFJO0FBQUEsVUFDekI7QUFDQSxpQkFBTyxRQUFRO0FBQ2Ysb0JBQVUsUUFBUTtBQUNsQixvQkFBVSxRQUFRO0FBQ2xCLHFCQUFXLFFBQVE7QUFDbkIsb0JBQVUsUUFBUTtBQUNsQixrQkFBUSxRQUFRLEtBQUssUUFBUSxPQUFPLGFBQy9CLFlBQVksSUFBSSxLQUFLLFNBQ3RCLFVBQVUsUUFBUSxLQUFLLFFBQVEsQ0FBQztBQUVwQyxjQUFJLENBQUMsU0FBUyxVQUFXLG1CQUFrQix3QkFBd0I7QUFDakUsdUJBQVcsQ0FBRSxtQkFBa0I7QUFBQSxVQUNqQztBQUNBLGNBQUksQ0FBQyxXQUFXLFdBQVcsZ0JBQWdCO0FBQ3pDLGdCQUFJLFVBQVMsV0FBVyxNQUFNLFNBQVMsT0FBTztBQUFBLFVBQ2hELFdBQVcsV0FBVyxtQkFBbUIsV0FBVyx1QkFBdUI7QUFDekUsc0JBQVMsWUFBWSxNQUFNLFNBQVMsS0FBSztBQUFBLFVBQzNDLFdBQVksWUFBVyxxQkFBcUIsV0FBWSxrQkFBaUIsdUJBQXVCLENBQUMsUUFBUSxRQUFRO0FBQy9HLHNCQUFTLGNBQWMsTUFBTSxTQUFTLFNBQVMsUUFBUTtBQUFBLFVBQ3pELE9BQU87QUFDTCxzQkFBUyxhQUFhLE1BQU0sWUFBVyxPQUFPO0FBQUEsVUFDaEQ7QUFDQSxjQUFJLFNBQVMsT0FBTyxjQUFjO0FBQ2xDLGlCQUFPLGdCQUFnQixPQUFPLFNBQVEsT0FBTyxHQUFHLE1BQU0sT0FBTztBQUFBLFFBQy9EO0FBY0Esd0NBQWdDLFVBQVUsVUFBVSxLQUFLLFFBQVE7QUFDL0QsY0FBSSxhQUFhLGNBQ1osR0FBRyxVQUFVLFlBQVksSUFBSSxLQUFLLENBQUMsZUFBZSxLQUFLLFFBQVEsR0FBRyxHQUFJO0FBQ3pFLG1CQUFPO0FBQUEsVUFDVDtBQUNBLGlCQUFPO0FBQUEsUUFDVDtBQWdCQSxxQ0FBNkIsVUFBVSxVQUFVLEtBQUssUUFBUSxRQUFRLE9BQU87QUFDM0UsY0FBSSxTQUFTLFFBQVEsS0FBSyxTQUFTLFFBQVEsR0FBRztBQUU1QyxrQkFBTSxJQUFJLFVBQVUsUUFBUTtBQUM1QixzQkFBVSxVQUFVLFVBQVUsWUFBVyxxQkFBcUIsS0FBSztBQUNuRSxrQkFBTSxVQUFVLFFBQVE7QUFBQSxVQUMxQjtBQUNBLGlCQUFPO0FBQUEsUUFDVDtBQVdBLGlDQUF5QixPQUFPO0FBQzlCLGlCQUFPLGNBQWMsS0FBSyxJQUFJLGFBQVk7QUFBQSxRQUM1QztBQWVBLDZCQUFxQixPQUFPLE9BQU8sU0FBUyxZQUFZLFdBQVcsT0FBTztBQUN4RSxjQUFJLFlBQVksVUFBVSxzQkFDdEIsWUFBWSxNQUFNLFFBQ2xCLFlBQVksTUFBTTtBQUV0QixjQUFJLGFBQWEsYUFBYSxDQUFFLGNBQWEsWUFBWSxZQUFZO0FBQ25FLG1CQUFPO0FBQUEsVUFDVDtBQUVBLGNBQUksYUFBYSxNQUFNLElBQUksS0FBSztBQUNoQyxjQUFJLGFBQWEsTUFBTSxJQUFJLEtBQUs7QUFDaEMsY0FBSSxjQUFjLFlBQVk7QUFDNUIsbUJBQU8sY0FBYyxTQUFTLGNBQWM7QUFBQSxVQUM5QztBQUNBLGNBQUksU0FBUSxJQUNSLFVBQVMsTUFDVCxPQUFRLFVBQVUseUJBQTBCLElBQUksYUFBVztBQUUvRCxnQkFBTSxJQUFJLE9BQU8sS0FBSztBQUN0QixnQkFBTSxJQUFJLE9BQU8sS0FBSztBQUd0QixpQkFBTyxFQUFFLFNBQVEsV0FBVztBQUMxQixnQkFBSSxXQUFXLE1BQU0sU0FDakIsV0FBVyxNQUFNO0FBRXJCLGdCQUFJLFlBQVk7QUFDZCxrQkFBSSxXQUFXLFlBQ1gsV0FBVyxVQUFVLFVBQVUsUUFBTyxPQUFPLE9BQU8sS0FBSyxJQUN6RCxXQUFXLFVBQVUsVUFBVSxRQUFPLE9BQU8sT0FBTyxLQUFLO0FBQUEsWUFDL0Q7QUFDQSxnQkFBSSxhQUFhLFlBQVc7QUFDMUIsa0JBQUksVUFBVTtBQUNaO0FBQUEsY0FDRjtBQUNBLHdCQUFTO0FBQ1Q7QUFBQSxZQUNGO0FBRUEsZ0JBQUksTUFBTTtBQUNSLGtCQUFJLENBQUMsVUFBVSxPQUFPLFNBQVMsV0FBVSxVQUFVO0FBQzdDLG9CQUFJLENBQUMsU0FBUyxNQUFNLFFBQVEsS0FDdkIsY0FBYSxhQUFZLFVBQVUsVUFBVSxXQUFVLFNBQVMsWUFBWSxLQUFLLElBQUk7QUFDeEYseUJBQU8sS0FBSyxLQUFLLFFBQVE7QUFBQSxnQkFDM0I7QUFBQSxjQUNGLENBQUMsR0FBRztBQUNOLDBCQUFTO0FBQ1Q7QUFBQSxjQUNGO0FBQUEsWUFDRixXQUFXLENBQ0wsY0FBYSxZQUNYLFVBQVUsVUFBVSxVQUFVLFNBQVMsWUFBWSxLQUFLLElBQ3pEO0FBQ0wsd0JBQVM7QUFDVDtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQ0EsZ0JBQU0sVUFBVSxLQUFLO0FBQ3JCLGdCQUFNLFVBQVUsS0FBSztBQUNyQixpQkFBTztBQUFBLFFBQ1Q7QUFtQkEsNEJBQW9CLFFBQVEsT0FBTyxLQUFLLFNBQVMsWUFBWSxXQUFXLE9BQU87QUFDN0Usa0JBQVE7QUFBQSxpQkFDRDtBQUNILGtCQUFLLE9BQU8sY0FBYyxNQUFNLGNBQzNCLE9BQU8sY0FBYyxNQUFNLFlBQWE7QUFDM0MsdUJBQU87QUFBQSxjQUNUO0FBQ0EsdUJBQVMsT0FBTztBQUNoQixzQkFBUSxNQUFNO0FBQUEsaUJBRVg7QUFDSCxrQkFBSyxPQUFPLGNBQWMsTUFBTSxjQUM1QixDQUFDLFVBQVUsSUFBSSxZQUFXLE1BQU0sR0FBRyxJQUFJLFlBQVcsS0FBSyxDQUFDLEdBQUc7QUFDN0QsdUJBQU87QUFBQSxjQUNUO0FBQ0EscUJBQU87QUFBQSxpQkFFSjtBQUFBLGlCQUNBO0FBQUEsaUJBQ0E7QUFHSCxxQkFBTyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUs7QUFBQSxpQkFFdEI7QUFDSCxxQkFBTyxPQUFPLFFBQVEsTUFBTSxRQUFRLE9BQU8sV0FBVyxNQUFNO0FBQUEsaUJBRXpEO0FBQUEsaUJBQ0E7QUFJSCxxQkFBTyxVQUFXLFFBQVE7QUFBQSxpQkFFdkI7QUFDSCxrQkFBSSxVQUFVO0FBQUEsaUJBRVg7QUFDSCxrQkFBSSxZQUFZLFVBQVU7QUFDMUIseUJBQVksV0FBVTtBQUV0QixrQkFBSSxPQUFPLFFBQVEsTUFBTSxRQUFRLENBQUMsV0FBVztBQUMzQyx1QkFBTztBQUFBLGNBQ1Q7QUFFQSxrQkFBSSxVQUFVLE1BQU0sSUFBSSxNQUFNO0FBQzlCLGtCQUFJLFNBQVM7QUFDWCx1QkFBTyxXQUFXO0FBQUEsY0FDcEI7QUFDQSx5QkFBVztBQUdYLG9CQUFNLElBQUksUUFBUSxLQUFLO0FBQ3ZCLGtCQUFJLFVBQVMsWUFBWSxRQUFRLE1BQU0sR0FBRyxRQUFRLEtBQUssR0FBRyxTQUFTLFlBQVksV0FBVyxLQUFLO0FBQy9GLG9CQUFNLFVBQVUsTUFBTTtBQUN0QixxQkFBTztBQUFBLGlCQUVKO0FBQ0gsa0JBQUksZUFBZTtBQUNqQix1QkFBTyxjQUFjLEtBQUssTUFBTSxLQUFLLGNBQWMsS0FBSyxLQUFLO0FBQUEsY0FDL0Q7QUFBQTtBQUVKLGlCQUFPO0FBQUEsUUFDVDtBQWVBLDhCQUFzQixRQUFRLE9BQU8sU0FBUyxZQUFZLFdBQVcsT0FBTztBQUMxRSxjQUFJLFlBQVksVUFBVSxzQkFDdEIsV0FBVyxXQUFXLE1BQU0sR0FDNUIsWUFBWSxTQUFTLFFBQ3JCLFdBQVcsV0FBVyxLQUFLLEdBQzNCLFlBQVksU0FBUztBQUV6QixjQUFJLGFBQWEsYUFBYSxDQUFDLFdBQVc7QUFDeEMsbUJBQU87QUFBQSxVQUNUO0FBQ0EsY0FBSSxTQUFRO0FBQ1osaUJBQU8sVUFBUztBQUNkLGdCQUFJLE1BQU0sU0FBUztBQUNuQixnQkFBSSxDQUFFLGFBQVksT0FBTyxRQUFRLGVBQWUsS0FBSyxPQUFPLEdBQUcsSUFBSTtBQUNqRSxxQkFBTztBQUFBLFlBQ1Q7QUFBQSxVQUNGO0FBRUEsY0FBSSxhQUFhLE1BQU0sSUFBSSxNQUFNO0FBQ2pDLGNBQUksYUFBYSxNQUFNLElBQUksS0FBSztBQUNoQyxjQUFJLGNBQWMsWUFBWTtBQUM1QixtQkFBTyxjQUFjLFNBQVMsY0FBYztBQUFBLFVBQzlDO0FBQ0EsY0FBSSxVQUFTO0FBQ2IsZ0JBQU0sSUFBSSxRQUFRLEtBQUs7QUFDdkIsZ0JBQU0sSUFBSSxPQUFPLE1BQU07QUFFdkIsY0FBSSxXQUFXO0FBQ2YsaUJBQU8sRUFBRSxTQUFRLFdBQVc7QUFDMUIsa0JBQU0sU0FBUztBQUNmLGdCQUFJLFdBQVcsT0FBTyxNQUNsQixXQUFXLE1BQU07QUFFckIsZ0JBQUksWUFBWTtBQUNkLGtCQUFJLFdBQVcsWUFDWCxXQUFXLFVBQVUsVUFBVSxLQUFLLE9BQU8sUUFBUSxLQUFLLElBQ3hELFdBQVcsVUFBVSxVQUFVLEtBQUssUUFBUSxPQUFPLEtBQUs7QUFBQSxZQUM5RDtBQUVBLGdCQUFJLENBQUUsY0FBYSxhQUNWLGFBQWEsWUFBWSxVQUFVLFVBQVUsVUFBVSxTQUFTLFlBQVksS0FBSyxJQUNsRixXQUNEO0FBQ0wsd0JBQVM7QUFDVDtBQUFBLFlBQ0Y7QUFDQSx3QkFBYSxZQUFXLE9BQU87QUFBQSxVQUNqQztBQUNBLGNBQUksV0FBVSxDQUFDLFVBQVU7QUFDdkIsZ0JBQUksVUFBVSxPQUFPLGFBQ2pCLFVBQVUsTUFBTTtBQUdwQixnQkFBSSxXQUFXLFdBQ1Ysa0JBQWlCLFVBQVUsaUJBQWlCLFVBQzdDLENBQUUsUUFBTyxXQUFXLGNBQWMsbUJBQW1CLFdBQ25ELE9BQU8sV0FBVyxjQUFjLG1CQUFtQixVQUFVO0FBQ2pFLHdCQUFTO0FBQUEsWUFDWDtBQUFBLFVBQ0Y7QUFDQSxnQkFBTSxVQUFVLE1BQU07QUFDdEIsZ0JBQU0sVUFBVSxLQUFLO0FBQ3JCLGlCQUFPO0FBQUEsUUFDVDtBQVNBLDBCQUFrQixNQUFNO0FBQ3RCLGlCQUFPLFlBQVksU0FBUyxNQUFNLFlBQVcsT0FBTyxHQUFHLE9BQU8sRUFBRTtBQUFBLFFBQ2xFO0FBU0EsNEJBQW9CLFFBQVE7QUFDMUIsaUJBQU8sZUFBZSxRQUFRLE1BQU0sVUFBVTtBQUFBLFFBQ2hEO0FBVUEsOEJBQXNCLFFBQVE7QUFDNUIsaUJBQU8sZUFBZSxRQUFRLFFBQVEsWUFBWTtBQUFBLFFBQ3BEO0FBU0EsWUFBSSxVQUFVLENBQUMsVUFBVSxRQUFPLFNBQVMsTUFBTTtBQUM3QyxpQkFBTyxRQUFRLElBQUksSUFBSTtBQUFBLFFBQ3pCO0FBU0EsNkJBQXFCLE1BQU07QUFDekIsY0FBSSxVQUFVLEtBQUssT0FBTyxJQUN0QixRQUFRLFVBQVUsVUFDbEIsU0FBUyxlQUFlLEtBQUssV0FBVyxPQUFNLElBQUksTUFBTSxTQUFTO0FBRXJFLGlCQUFPLFVBQVU7QUFDZixnQkFBSSxPQUFPLE1BQU0sU0FDYixZQUFZLEtBQUs7QUFDckIsZ0JBQUksYUFBYSxRQUFRLGFBQWEsTUFBTTtBQUMxQyxxQkFBTyxLQUFLO0FBQUEsWUFDZDtBQUFBLFVBQ0Y7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFTQSwyQkFBbUIsTUFBTTtBQUN2QixjQUFJLFNBQVMsZUFBZSxLQUFLLFFBQVEsYUFBYSxJQUFJLFNBQVM7QUFDbkUsaUJBQU8sT0FBTztBQUFBLFFBQ2hCO0FBYUEsK0JBQXVCO0FBQ3JCLGNBQUksVUFBUyxPQUFPLFlBQVk7QUFDaEMsb0JBQVMsWUFBVyxXQUFXLGVBQWU7QUFDOUMsaUJBQU8sVUFBVSxTQUFTLFFBQU8sVUFBVSxJQUFJLFVBQVUsRUFBRSxJQUFJO0FBQUEsUUFDakU7QUFVQSw0QkFBb0IsTUFBSyxLQUFLO0FBQzVCLGNBQUksT0FBTyxLQUFJO0FBQ2YsaUJBQU8sVUFBVSxHQUFHLElBQ2hCLEtBQUssT0FBTyxPQUFPLFdBQVcsV0FBVyxVQUN6QyxLQUFLO0FBQUEsUUFDWDtBQVNBLDhCQUFzQixRQUFRO0FBQzVCLGNBQUksVUFBUyxLQUFLLE1BQU0sR0FDcEIsU0FBUyxRQUFPO0FBRXBCLGlCQUFPLFVBQVU7QUFDZixnQkFBSSxNQUFNLFFBQU8sU0FDYixRQUFRLE9BQU87QUFFbkIsb0JBQU8sVUFBVSxDQUFDLEtBQUssT0FBTyxtQkFBbUIsS0FBSyxDQUFDO0FBQUEsVUFDekQ7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFVQSwyQkFBbUIsUUFBUSxLQUFLO0FBQzlCLGNBQUksUUFBUSxTQUFTLFFBQVEsR0FBRztBQUNoQyxpQkFBTyxhQUFhLEtBQUssSUFBSSxRQUFRO0FBQUEsUUFDdkM7QUFTQSwyQkFBbUIsT0FBTztBQUN4QixjQUFJLFFBQVEsZUFBZSxLQUFLLE9BQU8sY0FBYyxHQUNqRCxNQUFNLE1BQU07QUFFaEIsY0FBSTtBQUNGLGtCQUFNLGtCQUFrQjtBQUN4QixnQkFBSSxXQUFXO0FBQUEsVUFDakIsU0FBUyxHQUFQO0FBQUEsVUFBVztBQUViLGNBQUksVUFBUyxxQkFBcUIsS0FBSyxLQUFLO0FBQzVDLGNBQUksVUFBVTtBQUNaLGdCQUFJLE9BQU87QUFDVCxvQkFBTSxrQkFBa0I7QUFBQSxZQUMxQixPQUFPO0FBQ0wscUJBQU8sTUFBTTtBQUFBLFlBQ2Y7QUFBQSxVQUNGO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBU0EsWUFBSSxhQUFhLENBQUMsbUJBQW1CLFlBQVksU0FBUyxRQUFRO0FBQ2hFLGNBQUksVUFBVSxNQUFNO0FBQ2xCLG1CQUFPLENBQUM7QUFBQSxVQUNWO0FBQ0EsbUJBQVMsUUFBTyxNQUFNO0FBQ3RCLGlCQUFPLFlBQVksaUJBQWlCLE1BQU0sR0FBRyxTQUFTLFFBQVE7QUFDNUQsbUJBQU8scUJBQXFCLEtBQUssUUFBUSxNQUFNO0FBQUEsVUFDakQsQ0FBQztBQUFBLFFBQ0g7QUFTQSxZQUFJLGVBQWUsQ0FBQyxtQkFBbUIsWUFBWSxTQUFTLFFBQVE7QUFDbEUsY0FBSSxVQUFTLENBQUM7QUFDZCxpQkFBTyxRQUFRO0FBQ2Isc0JBQVUsU0FBUSxXQUFXLE1BQU0sQ0FBQztBQUNwQyxxQkFBUyxhQUFhLE1BQU07QUFBQSxVQUM5QjtBQUNBLGlCQUFPO0FBQUEsUUFDVDtBQVNBLFlBQUksU0FBUztBQUdiLFlBQUssYUFBWSxPQUFPLElBQUksVUFBUyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxlQUN4RCxRQUFPLE9BQU8sSUFBSSxNQUFHLEtBQUssVUFDMUIsWUFBVyxPQUFPLFNBQVEsUUFBUSxDQUFDLEtBQUssY0FDeEMsUUFBTyxPQUFPLElBQUksTUFBRyxLQUFLLFVBQzFCLFdBQVcsT0FBTyxJQUFJLFNBQU8sS0FBSyxZQUFhO0FBQ2xELG1CQUFTLFNBQVMsT0FBTztBQUN2QixnQkFBSSxVQUFTLFdBQVcsS0FBSyxHQUN6QixPQUFPLFdBQVUsWUFBWSxNQUFNLGNBQWMsWUFDakQsYUFBYSxPQUFPLFNBQVMsSUFBSSxJQUFJO0FBRXpDLGdCQUFJLFlBQVk7QUFDZCxzQkFBUTtBQUFBLHFCQUNEO0FBQW9CLHlCQUFPO0FBQUEscUJBQzNCO0FBQWUseUJBQU87QUFBQSxxQkFDdEI7QUFBbUIseUJBQU87QUFBQSxxQkFDMUI7QUFBZSx5QkFBTztBQUFBLHFCQUN0QjtBQUFtQix5QkFBTztBQUFBO0FBQUEsWUFFbkM7QUFDQSxtQkFBTztBQUFBLFVBQ1Q7QUFBQSxRQUNGO0FBWUEseUJBQWlCLFFBQU8sS0FBSyxZQUFZO0FBQ3ZDLGNBQUksU0FBUSxJQUNSLFNBQVMsV0FBVztBQUV4QixpQkFBTyxFQUFFLFNBQVEsUUFBUTtBQUN2QixnQkFBSSxPQUFPLFdBQVcsU0FDbEIsUUFBTyxLQUFLO0FBRWhCLG9CQUFRLEtBQUs7QUFBQSxtQkFDTjtBQUFhLDBCQUFTO0FBQU07QUFBQSxtQkFDNUI7QUFBYSx1QkFBTztBQUFNO0FBQUEsbUJBQzFCO0FBQWEsc0JBQU0sVUFBVSxLQUFLLFNBQVEsS0FBSTtBQUFHO0FBQUEsbUJBQ2pEO0FBQWEseUJBQVEsVUFBVSxRQUFPLE1BQU0sS0FBSTtBQUFHO0FBQUE7QUFBQSxVQUU1RDtBQUNBLGlCQUFPLEVBQUUsU0FBUyxRQUFPLE9BQU8sSUFBSTtBQUFBLFFBQ3RDO0FBU0EsZ0NBQXdCLFFBQVE7QUFDOUIsY0FBSSxRQUFRLE9BQU8sTUFBTSxhQUFhO0FBQ3RDLGlCQUFPLFFBQVEsTUFBTSxHQUFHLE1BQU0sY0FBYyxJQUFJLENBQUM7QUFBQSxRQUNuRDtBQVdBLHlCQUFpQixRQUFRLE9BQU0sU0FBUztBQUN0QyxrQkFBTyxTQUFTLE9BQU0sTUFBTTtBQUU1QixjQUFJLFNBQVEsSUFDUixTQUFTLE1BQUssUUFDZCxVQUFTO0FBRWIsaUJBQU8sRUFBRSxTQUFRLFFBQVE7QUFDdkIsZ0JBQUksTUFBTSxNQUFNLE1BQUssT0FBTTtBQUMzQixnQkFBSSxDQUFFLFdBQVMsVUFBVSxRQUFRLFFBQVEsUUFBUSxHQUFHLElBQUk7QUFDdEQ7QUFBQSxZQUNGO0FBQ0EscUJBQVMsT0FBTztBQUFBLFVBQ2xCO0FBQ0EsY0FBSSxXQUFVLEVBQUUsVUFBUyxRQUFRO0FBQy9CLG1CQUFPO0FBQUEsVUFDVDtBQUNBLG1CQUFTLFVBQVUsT0FBTyxJQUFJLE9BQU87QUFDckMsaUJBQU8sQ0FBQyxDQUFDLFVBQVUsU0FBUyxNQUFNLEtBQUssUUFBUSxLQUFLLE1BQU0sS0FDdkQsU0FBUSxNQUFNLEtBQUssWUFBWSxNQUFNO0FBQUEsUUFDMUM7QUFTQSxnQ0FBd0IsT0FBTztBQUM3QixjQUFJLFNBQVMsTUFBTSxRQUNmLFVBQVMsSUFBSSxNQUFNLFlBQVksTUFBTTtBQUd6QyxjQUFJLFVBQVUsT0FBTyxNQUFNLE1BQU0sWUFBWSxlQUFlLEtBQUssT0FBTyxPQUFPLEdBQUc7QUFDaEYsb0JBQU8sUUFBUSxNQUFNO0FBQ3JCLG9CQUFPLFFBQVEsTUFBTTtBQUFBLFVBQ3ZCO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBU0EsaUNBQXlCLFFBQVE7QUFDL0IsaUJBQVEsT0FBTyxPQUFPLGVBQWUsY0FBYyxDQUFDLFlBQVksTUFBTSxJQUNsRSxXQUFXLGFBQWEsTUFBTSxDQUFDLElBQy9CLENBQUM7QUFBQSxRQUNQO0FBY0EsZ0NBQXdCLFFBQVEsS0FBSyxRQUFRO0FBQzNDLGNBQUksT0FBTyxPQUFPO0FBQ2xCLGtCQUFRO0FBQUEsaUJBQ0Q7QUFDSCxxQkFBTyxpQkFBaUIsTUFBTTtBQUFBLGlCQUUzQjtBQUFBLGlCQUNBO0FBQ0gscUJBQU8sSUFBSSxLQUFLLENBQUMsTUFBTTtBQUFBLGlCQUVwQjtBQUNILHFCQUFPLGNBQWMsUUFBUSxNQUFNO0FBQUEsaUJBRWhDO0FBQUEsaUJBQWlCO0FBQUEsaUJBQ2pCO0FBQUEsaUJBQWM7QUFBQSxpQkFBZTtBQUFBLGlCQUM3QjtBQUFBLGlCQUFlO0FBQUEsaUJBQXNCO0FBQUEsaUJBQWdCO0FBQ3hELHFCQUFPLGdCQUFnQixRQUFRLE1BQU07QUFBQSxpQkFFbEM7QUFDSCxxQkFBTyxJQUFJO0FBQUEsaUJBRVI7QUFBQSxpQkFDQTtBQUNILHFCQUFPLElBQUksS0FBSyxNQUFNO0FBQUEsaUJBRW5CO0FBQ0gscUJBQU8sWUFBWSxNQUFNO0FBQUEsaUJBRXRCO0FBQ0gscUJBQU8sSUFBSTtBQUFBLGlCQUVSO0FBQ0gscUJBQU8sWUFBWSxNQUFNO0FBQUE7QUFBQSxRQUUvQjtBQVVBLG1DQUEyQixRQUFRLFVBQVM7QUFDMUMsY0FBSSxTQUFTLFNBQVE7QUFDckIsY0FBSSxDQUFDLFFBQVE7QUFDWCxtQkFBTztBQUFBLFVBQ1Q7QUFDQSxjQUFJLFlBQVksU0FBUztBQUN6QixtQkFBUSxhQUFjLFVBQVMsSUFBSSxPQUFPLE1BQU0sU0FBUTtBQUN4RCxxQkFBVSxTQUFRLEtBQUssU0FBUyxJQUFJLE9BQU8sR0FBRztBQUM5QyxpQkFBTyxPQUFPLFFBQVEsZUFBZSx5QkFBeUIsV0FBVSxRQUFRO0FBQUEsUUFDbEY7QUFTQSwrQkFBdUIsT0FBTztBQUM1QixpQkFBTyxRQUFRLEtBQUssS0FBSyxZQUFZLEtBQUssS0FDeEMsQ0FBQyxDQUFFLHFCQUFvQixTQUFTLE1BQU07QUFBQSxRQUMxQztBQVVBLHlCQUFpQixPQUFPLFFBQVE7QUFDOUIsY0FBSSxRQUFPLE9BQU87QUFDbEIsbUJBQVMsVUFBVSxPQUFPLG1CQUFtQjtBQUU3QyxpQkFBTyxDQUFDLENBQUMsVUFDTixVQUFRLFlBQ04sU0FBUSxZQUFZLFNBQVMsS0FBSyxLQUFLLE1BQ3JDLFNBQVEsTUFBTSxRQUFRLEtBQUssS0FBSyxRQUFRO0FBQUEsUUFDakQ7QUFZQSxnQ0FBd0IsT0FBTyxRQUFPLFFBQVE7QUFDNUMsY0FBSSxDQUFDLFNBQVMsTUFBTSxHQUFHO0FBQ3JCLG1CQUFPO0FBQUEsVUFDVDtBQUNBLGNBQUksUUFBTyxPQUFPO0FBQ2xCLGNBQUksU0FBUSxXQUNILFlBQVksTUFBTSxLQUFLLFFBQVEsUUFBTyxPQUFPLE1BQU0sSUFDbkQsU0FBUSxZQUFZLFVBQVMsUUFDaEM7QUFDSixtQkFBTyxHQUFHLE9BQU8sU0FBUSxLQUFLO0FBQUEsVUFDaEM7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFVQSx1QkFBZSxPQUFPLFFBQVE7QUFDNUIsY0FBSSxRQUFRLEtBQUssR0FBRztBQUNsQixtQkFBTztBQUFBLFVBQ1Q7QUFDQSxjQUFJLFFBQU8sT0FBTztBQUNsQixjQUFJLFNBQVEsWUFBWSxTQUFRLFlBQVksU0FBUSxhQUNoRCxTQUFTLFFBQVEsU0FBUyxLQUFLLEdBQUc7QUFDcEMsbUJBQU87QUFBQSxVQUNUO0FBQ0EsaUJBQU8sY0FBYyxLQUFLLEtBQUssS0FBSyxDQUFDLGFBQWEsS0FBSyxLQUFLLEtBQ3pELFVBQVUsUUFBUSxTQUFTLFFBQU8sTUFBTTtBQUFBLFFBQzdDO0FBU0EsMkJBQW1CLE9BQU87QUFDeEIsY0FBSSxRQUFPLE9BQU87QUFDbEIsaUJBQVEsU0FBUSxZQUFZLFNBQVEsWUFBWSxTQUFRLFlBQVksU0FBUSxZQUN2RSxVQUFVLGNBQ1YsVUFBVTtBQUFBLFFBQ2pCO0FBVUEsNEJBQW9CLE1BQU07QUFDeEIsY0FBSSxXQUFXLFlBQVksSUFBSSxHQUMzQixRQUFRLE9BQU87QUFFbkIsY0FBSSxPQUFPLFNBQVMsY0FBYyxDQUFFLGFBQVksWUFBWSxZQUFZO0FBQ3RFLG1CQUFPO0FBQUEsVUFDVDtBQUNBLGNBQUksU0FBUyxPQUFPO0FBQ2xCLG1CQUFPO0FBQUEsVUFDVDtBQUNBLGNBQUksT0FBTyxRQUFRLEtBQUs7QUFDeEIsaUJBQU8sQ0FBQyxDQUFDLFFBQVEsU0FBUyxLQUFLO0FBQUEsUUFDakM7QUFTQSwwQkFBa0IsTUFBTTtBQUN0QixpQkFBTyxDQUFDLENBQUMsY0FBZSxjQUFjO0FBQUEsUUFDeEM7QUFTQSxZQUFJLGFBQWEsYUFBYSxhQUFhO0FBUzNDLDZCQUFxQixPQUFPO0FBQzFCLGNBQUksT0FBTyxTQUFTLE1BQU0sYUFDdEIsUUFBUyxPQUFPLFFBQVEsY0FBYyxLQUFLLGFBQWM7QUFFN0QsaUJBQU8sVUFBVTtBQUFBLFFBQ25CO0FBVUEsb0NBQTRCLE9BQU87QUFDakMsaUJBQU8sVUFBVSxTQUFTLENBQUMsU0FBUyxLQUFLO0FBQUEsUUFDM0M7QUFXQSx5Q0FBaUMsS0FBSyxVQUFVO0FBQzlDLGlCQUFPLFNBQVMsUUFBUTtBQUN0QixnQkFBSSxVQUFVLE1BQU07QUFDbEIscUJBQU87QUFBQSxZQUNUO0FBQ0EsbUJBQU8sT0FBTyxTQUFTLFlBQ3BCLGNBQWEsY0FBYyxPQUFPLFFBQU8sTUFBTTtBQUFBLFVBQ3BEO0FBQUEsUUFDRjtBQVVBLCtCQUF1QixNQUFNO0FBQzNCLGNBQUksVUFBUyxRQUFRLE1BQU0sU0FBUyxLQUFLO0FBQ3ZDLGdCQUFJLE1BQU0sU0FBUyxrQkFBa0I7QUFDbkMsb0JBQU0sTUFBTTtBQUFBLFlBQ2Q7QUFDQSxtQkFBTztBQUFBLFVBQ1QsQ0FBQztBQUVELGNBQUksUUFBUSxRQUFPO0FBQ25CLGlCQUFPO0FBQUEsUUFDVDtBQWtCQSwyQkFBbUIsTUFBTSxRQUFRO0FBQy9CLGNBQUksVUFBVSxLQUFLLElBQ2YsYUFBYSxPQUFPLElBQ3BCLGFBQWEsVUFBVSxZQUN2QixXQUFXLGFBQWMsa0JBQWlCLHFCQUFxQjtBQUVuRSxjQUFJLFVBQ0EsY0FBYyxpQkFBbUIsV0FBVyxtQkFDNUMsY0FBYyxpQkFBbUIsV0FBVyxtQkFBcUIsS0FBSyxHQUFHLFVBQVUsT0FBTyxNQUMxRixjQUFlLGlCQUFnQixvQkFBc0IsT0FBTyxHQUFHLFVBQVUsT0FBTyxNQUFRLFdBQVc7QUFHdkcsY0FBSSxDQUFFLGFBQVksVUFBVTtBQUMxQixtQkFBTztBQUFBLFVBQ1Q7QUFFQSxjQUFJLGFBQWEsZ0JBQWdCO0FBQy9CLGlCQUFLLEtBQUssT0FBTztBQUVqQiwwQkFBYyxVQUFVLGlCQUFpQixJQUFJO0FBQUEsVUFDL0M7QUFFQSxjQUFJLFFBQVEsT0FBTztBQUNuQixjQUFJLE9BQU87QUFDVCxnQkFBSSxXQUFXLEtBQUs7QUFDcEIsaUJBQUssS0FBSyxXQUFXLFlBQVksVUFBVSxPQUFPLE9BQU8sRUFBRSxJQUFJO0FBQy9ELGlCQUFLLEtBQUssV0FBVyxlQUFlLEtBQUssSUFBSSxXQUFXLElBQUksT0FBTztBQUFBLFVBQ3JFO0FBRUEsa0JBQVEsT0FBTztBQUNmLGNBQUksT0FBTztBQUNULHVCQUFXLEtBQUs7QUFDaEIsaUJBQUssS0FBSyxXQUFXLGlCQUFpQixVQUFVLE9BQU8sT0FBTyxFQUFFLElBQUk7QUFDcEUsaUJBQUssS0FBSyxXQUFXLGVBQWUsS0FBSyxJQUFJLFdBQVcsSUFBSSxPQUFPO0FBQUEsVUFDckU7QUFFQSxrQkFBUSxPQUFPO0FBQ2YsY0FBSSxPQUFPO0FBQ1QsaUJBQUssS0FBSztBQUFBLFVBQ1o7QUFFQSxjQUFJLGFBQWEsZUFBZTtBQUM5QixpQkFBSyxLQUFLLEtBQUssTUFBTSxPQUFPLE9BQU8sS0FBSyxVQUFVLEtBQUssSUFBSSxPQUFPLEVBQUU7QUFBQSxVQUN0RTtBQUVBLGNBQUksS0FBSyxNQUFNLE1BQU07QUFDbkIsaUJBQUssS0FBSyxPQUFPO0FBQUEsVUFDbkI7QUFFQSxlQUFLLEtBQUssT0FBTztBQUNqQixlQUFLLEtBQUs7QUFFVixpQkFBTztBQUFBLFFBQ1Q7QUFXQSw4QkFBc0IsUUFBUTtBQUM1QixjQUFJLFVBQVMsQ0FBQztBQUNkLGNBQUksVUFBVSxNQUFNO0FBQ2xCLHFCQUFTLE9BQU8sUUFBTyxNQUFNLEdBQUc7QUFDOUIsc0JBQU8sS0FBSyxHQUFHO0FBQUEsWUFDakI7QUFBQSxVQUNGO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBU0EsZ0NBQXdCLE9BQU87QUFDN0IsaUJBQU8scUJBQXFCLEtBQUssS0FBSztBQUFBLFFBQ3hDO0FBV0EsMEJBQWtCLE1BQU0sUUFBTyxZQUFXO0FBQ3hDLG1CQUFRLFVBQVUsV0FBVSxhQUFhLEtBQUssU0FBUyxJQUFLLFFBQU8sQ0FBQztBQUNwRSxpQkFBTyxXQUFXO0FBQ2hCLGdCQUFJLE9BQU8sV0FDUCxTQUFRLElBQ1IsU0FBUyxVQUFVLEtBQUssU0FBUyxRQUFPLENBQUMsR0FDekMsUUFBUSxPQUFNLE1BQU07QUFFeEIsbUJBQU8sRUFBRSxTQUFRLFFBQVE7QUFDdkIsb0JBQU0sVUFBUyxLQUFLLFNBQVE7QUFBQSxZQUM5QjtBQUNBLHFCQUFRO0FBQ1IsZ0JBQUksWUFBWSxPQUFNLFNBQVEsQ0FBQztBQUMvQixtQkFBTyxFQUFFLFNBQVEsUUFBTztBQUN0Qix3QkFBVSxVQUFTLEtBQUs7QUFBQSxZQUMxQjtBQUNBLHNCQUFVLFVBQVMsV0FBVSxLQUFLO0FBQ2xDLG1CQUFPLE1BQU0sTUFBTSxNQUFNLFNBQVM7QUFBQSxVQUNwQztBQUFBLFFBQ0Y7QUFVQSx3QkFBZ0IsUUFBUSxPQUFNO0FBQzVCLGlCQUFPLE1BQUssU0FBUyxJQUFJLFNBQVMsUUFBUSxRQUFRLFVBQVUsT0FBTSxHQUFHLEVBQUUsQ0FBQztBQUFBLFFBQzFFO0FBWUEseUJBQWlCLE9BQU8sU0FBUztBQUMvQixjQUFJLFlBQVksTUFBTSxRQUNsQixTQUFTLFVBQVUsUUFBUSxRQUFRLFNBQVMsR0FDNUMsV0FBVyxVQUFVLEtBQUs7QUFFOUIsaUJBQU8sVUFBVTtBQUNmLGdCQUFJLFNBQVEsUUFBUTtBQUNwQixrQkFBTSxVQUFVLFFBQVEsUUFBTyxTQUFTLElBQUksU0FBUyxVQUFTO0FBQUEsVUFDaEU7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFVQSx5QkFBaUIsUUFBUSxLQUFLO0FBQzVCLGNBQUksUUFBUSxpQkFBaUIsT0FBTyxPQUFPLFNBQVMsWUFBWTtBQUM5RDtBQUFBLFVBQ0Y7QUFFQSxjQUFJLE9BQU8sYUFBYTtBQUN0QjtBQUFBLFVBQ0Y7QUFFQSxpQkFBTyxPQUFPO0FBQUEsUUFDaEI7QUFnQkEsWUFBSSxVQUFVLFNBQVMsV0FBVztBQVVsQyxZQUFJLGNBQWEsaUJBQWlCLFNBQVMsTUFBTSxPQUFNO0FBQ3JELGlCQUFPLE1BQUssV0FBVyxNQUFNLEtBQUk7QUFBQSxRQUNuQztBQVVBLFlBQUksY0FBYyxTQUFTLGVBQWU7QUFZMUMsaUNBQXlCLFNBQVMsV0FBVyxTQUFTO0FBQ3BELGNBQUksU0FBVSxZQUFZO0FBQzFCLGlCQUFPLFlBQVksU0FBUyxrQkFBa0IsUUFBUSxrQkFBa0IsZUFBZSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFBQSxRQUMzRztBQVdBLDBCQUFrQixNQUFNO0FBQ3RCLGNBQUksU0FBUSxHQUNSLGFBQWE7QUFFakIsaUJBQU8sV0FBVztBQUNoQixnQkFBSSxRQUFRLFVBQVUsR0FDbEIsWUFBWSxXQUFZLFNBQVE7QUFFcEMseUJBQWE7QUFDYixnQkFBSSxZQUFZLEdBQUc7QUFDakIsa0JBQUksRUFBRSxVQUFTLFdBQVc7QUFDeEIsdUJBQU8sVUFBVTtBQUFBLGNBQ25CO0FBQUEsWUFDRixPQUFPO0FBQ0wsdUJBQVE7QUFBQSxZQUNWO0FBQ0EsbUJBQU8sS0FBSyxNQUFNLFlBQVcsU0FBUztBQUFBLFVBQ3hDO0FBQUEsUUFDRjtBQVVBLDZCQUFxQixPQUFPLE9BQU07QUFDaEMsY0FBSSxTQUFRLElBQ1IsU0FBUyxNQUFNLFFBQ2YsWUFBWSxTQUFTO0FBRXpCLGtCQUFPLFVBQVMsYUFBWSxTQUFTO0FBQ3JDLGlCQUFPLEVBQUUsU0FBUSxPQUFNO0FBQ3JCLGdCQUFJLE9BQU8sV0FBVyxRQUFPLFNBQVMsR0FDbEMsUUFBUSxNQUFNO0FBRWxCLGtCQUFNLFFBQVEsTUFBTTtBQUNwQixrQkFBTSxVQUFTO0FBQUEsVUFDakI7QUFDQSxnQkFBTSxTQUFTO0FBQ2YsaUJBQU87QUFBQSxRQUNUO0FBU0EsWUFBSSxlQUFlLGNBQWMsU0FBUyxRQUFRO0FBQ2hELGNBQUksVUFBUyxDQUFDO0FBQ2QsY0FBSSxPQUFPLFdBQVcsQ0FBQyxNQUFNLElBQVk7QUFDdkMsb0JBQU8sS0FBSyxFQUFFO0FBQUEsVUFDaEI7QUFDQSxpQkFBTyxRQUFRLFlBQVksU0FBUyxPQUFPLFNBQVEsT0FBTyxXQUFXO0FBQ25FLG9CQUFPLEtBQUssUUFBUSxVQUFVLFFBQVEsY0FBYyxJQUFJLElBQUssV0FBVSxLQUFNO0FBQUEsVUFDL0UsQ0FBQztBQUNELGlCQUFPO0FBQUEsUUFDVCxDQUFDO0FBU0QsdUJBQWUsT0FBTztBQUNwQixjQUFJLE9BQU8sU0FBUyxZQUFZLFNBQVMsS0FBSyxHQUFHO0FBQy9DLG1CQUFPO0FBQUEsVUFDVDtBQUNBLGNBQUksVUFBVSxRQUFRO0FBQ3RCLGlCQUFRLFdBQVUsT0FBUSxJQUFJLFNBQVUsQ0FBQyxXQUFZLE9BQU87QUFBQSxRQUM5RDtBQVNBLDBCQUFrQixNQUFNO0FBQ3RCLGNBQUksUUFBUSxNQUFNO0FBQ2hCLGdCQUFJO0FBQ0YscUJBQU8sYUFBYSxLQUFLLElBQUk7QUFBQSxZQUMvQixTQUFTLEdBQVA7QUFBQSxZQUFXO0FBQ2IsZ0JBQUk7QUFDRixxQkFBUSxPQUFPO0FBQUEsWUFDakIsU0FBUyxHQUFQO0FBQUEsWUFBVztBQUFBLFVBQ2Y7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFVQSxtQ0FBMkIsVUFBUyxTQUFTO0FBQzNDLG9CQUFVLFdBQVcsU0FBUyxNQUFNO0FBQ2xDLGdCQUFJLFFBQVEsT0FBTyxLQUFLO0FBQ3hCLGdCQUFLLFVBQVUsS0FBSyxNQUFPLENBQUMsY0FBYyxVQUFTLEtBQUssR0FBRztBQUN6RCx1QkFBUSxLQUFLLEtBQUs7QUFBQSxZQUNwQjtBQUFBLFVBQ0YsQ0FBQztBQUNELGlCQUFPLFNBQVEsS0FBSztBQUFBLFFBQ3RCO0FBU0EsOEJBQXNCLFNBQVM7QUFDN0IsY0FBSSxtQkFBbUIsYUFBYTtBQUNsQyxtQkFBTyxRQUFRLE1BQU07QUFBQSxVQUN2QjtBQUNBLGNBQUksVUFBUyxJQUFJLGNBQWMsUUFBUSxhQUFhLFFBQVEsU0FBUztBQUNyRSxrQkFBTyxjQUFjLFVBQVUsUUFBUSxXQUFXO0FBQ2xELGtCQUFPLFlBQWEsUUFBUTtBQUM1QixrQkFBTyxhQUFhLFFBQVE7QUFDNUIsaUJBQU87QUFBQSxRQUNUO0FBeUJBLHVCQUFlLE9BQU8sT0FBTSxPQUFPO0FBQ2pDLGNBQUssUUFBUSxlQUFlLE9BQU8sT0FBTSxLQUFLLElBQUksVUFBUyxZQUFZO0FBQ3JFLG9CQUFPO0FBQUEsVUFDVCxPQUFPO0FBQ0wsb0JBQU8sVUFBVSxVQUFVLEtBQUksR0FBRyxDQUFDO0FBQUEsVUFDckM7QUFDQSxjQUFJLFNBQVMsU0FBUyxPQUFPLElBQUksTUFBTTtBQUN2QyxjQUFJLENBQUMsVUFBVSxRQUFPLEdBQUc7QUFDdkIsbUJBQU8sQ0FBQztBQUFBLFVBQ1Y7QUFDQSxjQUFJLFNBQVEsR0FDUixXQUFXLEdBQ1gsVUFBUyxPQUFNLFdBQVcsU0FBUyxLQUFJLENBQUM7QUFFNUMsaUJBQU8sU0FBUSxRQUFRO0FBQ3JCLG9CQUFPLGNBQWMsVUFBVSxPQUFPLFFBQVEsVUFBUyxLQUFLO0FBQUEsVUFDOUQ7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFpQkEseUJBQWlCLE9BQU87QUFDdEIsY0FBSSxTQUFRLElBQ1IsU0FBUyxTQUFTLE9BQU8sSUFBSSxNQUFNLFFBQ25DLFdBQVcsR0FDWCxVQUFTLENBQUM7QUFFZCxpQkFBTyxFQUFFLFNBQVEsUUFBUTtBQUN2QixnQkFBSSxRQUFRLE1BQU07QUFDbEIsZ0JBQUksT0FBTztBQUNULHNCQUFPLGNBQWM7QUFBQSxZQUN2QjtBQUFBLFVBQ0Y7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUF3QkEsMEJBQWtCO0FBQ2hCLGNBQUksU0FBUyxVQUFVO0FBQ3ZCLGNBQUksQ0FBQyxRQUFRO0FBQ1gsbUJBQU8sQ0FBQztBQUFBLFVBQ1Y7QUFDQSxjQUFJLE9BQU8sT0FBTSxTQUFTLENBQUMsR0FDdkIsUUFBUSxVQUFVLElBQ2xCLFNBQVE7QUFFWixpQkFBTyxVQUFTO0FBQ2QsaUJBQUssU0FBUSxLQUFLLFVBQVU7QUFBQSxVQUM5QjtBQUNBLGlCQUFPLFVBQVUsUUFBUSxLQUFLLElBQUksVUFBVSxLQUFLLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxNQUFNLENBQUMsQ0FBQztBQUFBLFFBQ3BGO0FBdUJBLFlBQUksYUFBYSxTQUFTLFNBQVMsT0FBTyxTQUFRO0FBQ2hELGlCQUFPLGtCQUFrQixLQUFLLElBQzFCLGVBQWUsT0FBTyxZQUFZLFNBQVEsR0FBRyxtQkFBbUIsSUFBSSxDQUFDLElBQ3JFLENBQUM7QUFBQSxRQUNQLENBQUM7QUE0QkQsWUFBSSxlQUFlLFNBQVMsU0FBUyxPQUFPLFNBQVE7QUFDbEQsY0FBSSxZQUFXLEtBQUssT0FBTTtBQUMxQixjQUFJLGtCQUFrQixTQUFRLEdBQUc7QUFDL0Isd0JBQVc7QUFBQSxVQUNiO0FBQ0EsaUJBQU8sa0JBQWtCLEtBQUssSUFDMUIsZUFBZSxPQUFPLFlBQVksU0FBUSxHQUFHLG1CQUFtQixJQUFJLEdBQUcsWUFBWSxXQUFVLENBQUMsQ0FBQyxJQUMvRixDQUFDO0FBQUEsUUFDUCxDQUFDO0FBeUJELFlBQUksaUJBQWlCLFNBQVMsU0FBUyxPQUFPLFNBQVE7QUFDcEQsY0FBSSxhQUFhLEtBQUssT0FBTTtBQUM1QixjQUFJLGtCQUFrQixVQUFVLEdBQUc7QUFDakMseUJBQWE7QUFBQSxVQUNmO0FBQ0EsaUJBQU8sa0JBQWtCLEtBQUssSUFDMUIsZUFBZSxPQUFPLFlBQVksU0FBUSxHQUFHLG1CQUFtQixJQUFJLEdBQUcsWUFBVyxVQUFVLElBQzVGLENBQUM7QUFBQSxRQUNQLENBQUM7QUEyQkQsc0JBQWMsT0FBTyxHQUFHLE9BQU87QUFDN0IsY0FBSSxTQUFTLFNBQVMsT0FBTyxJQUFJLE1BQU07QUFDdkMsY0FBSSxDQUFDLFFBQVE7QUFDWCxtQkFBTyxDQUFDO0FBQUEsVUFDVjtBQUNBLGNBQUssU0FBUyxNQUFNLGFBQWEsSUFBSSxVQUFVLENBQUM7QUFDaEQsaUJBQU8sVUFBVSxPQUFPLElBQUksSUFBSSxJQUFJLEdBQUcsTUFBTTtBQUFBLFFBQy9DO0FBMkJBLDJCQUFtQixPQUFPLEdBQUcsT0FBTztBQUNsQyxjQUFJLFNBQVMsU0FBUyxPQUFPLElBQUksTUFBTTtBQUN2QyxjQUFJLENBQUMsUUFBUTtBQUNYLG1CQUFPLENBQUM7QUFBQSxVQUNWO0FBQ0EsY0FBSyxTQUFTLE1BQU0sYUFBYSxJQUFJLFVBQVUsQ0FBQztBQUNoRCxjQUFJLFNBQVM7QUFDYixpQkFBTyxVQUFVLE9BQU8sR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDO0FBQUEsUUFDMUM7QUFxQ0EsZ0NBQXdCLE9BQU8sV0FBVztBQUN4QyxpQkFBUSxTQUFTLE1BQU0sU0FDbkIsVUFBVSxPQUFPLFlBQVksV0FBVyxDQUFDLEdBQUcsTUFBTSxJQUFJLElBQ3RELENBQUM7QUFBQSxRQUNQO0FBcUNBLDJCQUFtQixPQUFPLFdBQVc7QUFDbkMsaUJBQVEsU0FBUyxNQUFNLFNBQ25CLFVBQVUsT0FBTyxZQUFZLFdBQVcsQ0FBQyxHQUFHLElBQUksSUFDaEQsQ0FBQztBQUFBLFFBQ1A7QUErQkEsc0JBQWMsT0FBTyxPQUFPLFFBQU8sS0FBSztBQUN0QyxjQUFJLFNBQVMsU0FBUyxPQUFPLElBQUksTUFBTTtBQUN2QyxjQUFJLENBQUMsUUFBUTtBQUNYLG1CQUFPLENBQUM7QUFBQSxVQUNWO0FBQ0EsY0FBSSxVQUFTLE9BQU8sVUFBUyxZQUFZLGVBQWUsT0FBTyxPQUFPLE1BQUssR0FBRztBQUM1RSxxQkFBUTtBQUNSLGtCQUFNO0FBQUEsVUFDUjtBQUNBLGlCQUFPLFNBQVMsT0FBTyxPQUFPLFFBQU8sR0FBRztBQUFBLFFBQzFDO0FBcUNBLDJCQUFtQixPQUFPLFdBQVcsV0FBVztBQUM5QyxjQUFJLFNBQVMsU0FBUyxPQUFPLElBQUksTUFBTTtBQUN2QyxjQUFJLENBQUMsUUFBUTtBQUNYLG1CQUFPO0FBQUEsVUFDVDtBQUNBLGNBQUksU0FBUSxhQUFhLE9BQU8sSUFBSSxVQUFVLFNBQVM7QUFDdkQsY0FBSSxTQUFRLEdBQUc7QUFDYixxQkFBUSxVQUFVLFNBQVMsUUFBTyxDQUFDO0FBQUEsVUFDckM7QUFDQSxpQkFBTyxjQUFjLE9BQU8sWUFBWSxXQUFXLENBQUMsR0FBRyxNQUFLO0FBQUEsUUFDOUQ7QUFxQ0EsK0JBQXVCLE9BQU8sV0FBVyxXQUFXO0FBQ2xELGNBQUksU0FBUyxTQUFTLE9BQU8sSUFBSSxNQUFNO0FBQ3ZDLGNBQUksQ0FBQyxRQUFRO0FBQ1gsbUJBQU87QUFBQSxVQUNUO0FBQ0EsY0FBSSxTQUFRLFNBQVM7QUFDckIsY0FBSSxjQUFjLFlBQVc7QUFDM0IscUJBQVEsVUFBVSxTQUFTO0FBQzNCLHFCQUFRLFlBQVksSUFDaEIsVUFBVSxTQUFTLFFBQU8sQ0FBQyxJQUMzQixVQUFVLFFBQU8sU0FBUyxDQUFDO0FBQUEsVUFDakM7QUFDQSxpQkFBTyxjQUFjLE9BQU8sWUFBWSxXQUFXLENBQUMsR0FBRyxRQUFPLElBQUk7QUFBQSxRQUNwRTtBQWdCQSx5QkFBaUIsT0FBTztBQUN0QixjQUFJLFNBQVMsU0FBUyxPQUFPLElBQUksTUFBTTtBQUN2QyxpQkFBTyxTQUFTLFlBQVksT0FBTyxDQUFDLElBQUksQ0FBQztBQUFBLFFBQzNDO0FBZ0JBLDZCQUFxQixPQUFPO0FBQzFCLGNBQUksU0FBUyxTQUFTLE9BQU8sSUFBSSxNQUFNO0FBQ3ZDLGlCQUFPLFNBQVMsWUFBWSxPQUFPLFFBQVEsSUFBSSxDQUFDO0FBQUEsUUFDbEQ7QUFzQkEsOEJBQXNCLE9BQU8sT0FBTztBQUNsQyxjQUFJLFNBQVMsU0FBUyxPQUFPLElBQUksTUFBTTtBQUN2QyxjQUFJLENBQUMsUUFBUTtBQUNYLG1CQUFPLENBQUM7QUFBQSxVQUNWO0FBQ0Esa0JBQVEsVUFBVSxhQUFZLElBQUksVUFBVSxLQUFLO0FBQ2pELGlCQUFPLFlBQVksT0FBTyxLQUFLO0FBQUEsUUFDakM7QUFpQkEsMkJBQW1CLE9BQU87QUFDeEIsY0FBSSxTQUFRLElBQ1IsU0FBUyxTQUFTLE9BQU8sSUFBSSxNQUFNLFFBQ25DLFVBQVMsQ0FBQztBQUVkLGlCQUFPLEVBQUUsU0FBUSxRQUFRO0FBQ3ZCLGdCQUFJLE9BQU8sTUFBTTtBQUNqQixvQkFBTyxLQUFLLE1BQU0sS0FBSztBQUFBLFVBQ3pCO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBb0JBLHNCQUFjLE9BQU87QUFDbkIsaUJBQVEsU0FBUyxNQUFNLFNBQVUsTUFBTSxLQUFLO0FBQUEsUUFDOUM7QUF5QkEseUJBQWlCLE9BQU8sT0FBTyxXQUFXO0FBQ3hDLGNBQUksU0FBUyxTQUFTLE9BQU8sSUFBSSxNQUFNO0FBQ3ZDLGNBQUksQ0FBQyxRQUFRO0FBQ1gsbUJBQU87QUFBQSxVQUNUO0FBQ0EsY0FBSSxTQUFRLGFBQWEsT0FBTyxJQUFJLFVBQVUsU0FBUztBQUN2RCxjQUFJLFNBQVEsR0FBRztBQUNiLHFCQUFRLFVBQVUsU0FBUyxRQUFPLENBQUM7QUFBQSxVQUNyQztBQUNBLGlCQUFPLFlBQVksT0FBTyxPQUFPLE1BQUs7QUFBQSxRQUN4QztBQWdCQSx5QkFBaUIsT0FBTztBQUN0QixjQUFJLFNBQVMsU0FBUyxPQUFPLElBQUksTUFBTTtBQUN2QyxpQkFBTyxTQUFTLFVBQVUsT0FBTyxHQUFHLEVBQUUsSUFBSSxDQUFDO0FBQUEsUUFDN0M7QUFtQkEsWUFBSSxlQUFlLFNBQVMsU0FBUyxRQUFRO0FBQzNDLGNBQUksU0FBUyxTQUFTLFFBQVEsbUJBQW1CO0FBQ2pELGlCQUFRLE9BQU8sVUFBVSxPQUFPLE9BQU8sT0FBTyxLQUMxQyxpQkFBaUIsTUFBTSxJQUN2QixDQUFDO0FBQUEsUUFDUCxDQUFDO0FBeUJELFlBQUksaUJBQWlCLFNBQVMsU0FBUyxRQUFRO0FBQzdDLGNBQUksWUFBVyxLQUFLLE1BQU0sR0FDdEIsU0FBUyxTQUFTLFFBQVEsbUJBQW1CO0FBRWpELGNBQUksY0FBYSxLQUFLLE1BQU0sR0FBRztBQUM3Qix3QkFBVztBQUFBLFVBQ2IsT0FBTztBQUNMLG1CQUFPLElBQUk7QUFBQSxVQUNiO0FBQ0EsaUJBQVEsT0FBTyxVQUFVLE9BQU8sT0FBTyxPQUFPLEtBQzFDLGlCQUFpQixRQUFRLFlBQVksV0FBVSxDQUFDLENBQUMsSUFDakQsQ0FBQztBQUFBLFFBQ1AsQ0FBQztBQXVCRCxZQUFJLG1CQUFtQixTQUFTLFNBQVMsUUFBUTtBQUMvQyxjQUFJLGFBQWEsS0FBSyxNQUFNLEdBQ3hCLFNBQVMsU0FBUyxRQUFRLG1CQUFtQjtBQUVqRCx1QkFBYSxPQUFPLGNBQWMsYUFBYSxhQUFhO0FBQzVELGNBQUksWUFBWTtBQUNkLG1CQUFPLElBQUk7QUFBQSxVQUNiO0FBQ0EsaUJBQVEsT0FBTyxVQUFVLE9BQU8sT0FBTyxPQUFPLEtBQzFDLGlCQUFpQixRQUFRLFlBQVcsVUFBVSxJQUM5QyxDQUFDO0FBQUEsUUFDUCxDQUFDO0FBaUJELHNCQUFjLE9BQU8sV0FBVztBQUM5QixpQkFBTyxTQUFTLE9BQU8sS0FBSyxXQUFXLEtBQUssT0FBTyxTQUFTO0FBQUEsUUFDOUQ7QUFnQkEsc0JBQWMsT0FBTztBQUNuQixjQUFJLFNBQVMsU0FBUyxPQUFPLElBQUksTUFBTTtBQUN2QyxpQkFBTyxTQUFTLE1BQU0sU0FBUyxLQUFLO0FBQUEsUUFDdEM7QUF1QkEsNkJBQXFCLE9BQU8sT0FBTyxXQUFXO0FBQzVDLGNBQUksU0FBUyxTQUFTLE9BQU8sSUFBSSxNQUFNO0FBQ3ZDLGNBQUksQ0FBQyxRQUFRO0FBQ1gsbUJBQU87QUFBQSxVQUNUO0FBQ0EsY0FBSSxTQUFRO0FBQ1osY0FBSSxjQUFjLFlBQVc7QUFDM0IscUJBQVEsVUFBVSxTQUFTO0FBQzNCLHFCQUFRLFNBQVEsSUFBSSxVQUFVLFNBQVMsUUFBTyxDQUFDLElBQUksVUFBVSxRQUFPLFNBQVMsQ0FBQztBQUFBLFVBQ2hGO0FBQ0EsaUJBQU8sVUFBVSxRQUNiLGtCQUFrQixPQUFPLE9BQU8sTUFBSyxJQUNyQyxjQUFjLE9BQU8sV0FBVyxRQUFPLElBQUk7QUFBQSxRQUNqRDtBQXVCQSxxQkFBYSxPQUFPLEdBQUc7QUFDckIsaUJBQVEsU0FBUyxNQUFNLFNBQVUsUUFBUSxPQUFPLFVBQVUsQ0FBQyxDQUFDLElBQUk7QUFBQSxRQUNsRTtBQXlCQSxZQUFJLE9BQU8sU0FBUyxPQUFPO0FBc0IzQix5QkFBaUIsT0FBTyxTQUFRO0FBQzlCLGlCQUFRLFNBQVMsTUFBTSxVQUFVLFdBQVUsUUFBTyxTQUM5QyxZQUFZLE9BQU8sT0FBTSxJQUN6QjtBQUFBLFFBQ047QUF5QkEsMkJBQW1CLE9BQU8sU0FBUSxXQUFVO0FBQzFDLGlCQUFRLFNBQVMsTUFBTSxVQUFVLFdBQVUsUUFBTyxTQUM5QyxZQUFZLE9BQU8sU0FBUSxZQUFZLFdBQVUsQ0FBQyxDQUFDLElBQ25EO0FBQUEsUUFDTjtBQXlCQSw2QkFBcUIsT0FBTyxTQUFRLFlBQVk7QUFDOUMsaUJBQVEsU0FBUyxNQUFNLFVBQVUsV0FBVSxRQUFPLFNBQzlDLFlBQVksT0FBTyxTQUFRLFlBQVcsVUFBVSxJQUNoRDtBQUFBLFFBQ047QUEwQkEsWUFBSSxTQUFTLFNBQVMsU0FBUyxPQUFPLFNBQVM7QUFDN0MsY0FBSSxTQUFTLFNBQVMsT0FBTyxJQUFJLE1BQU0sUUFDbkMsVUFBUyxPQUFPLE9BQU8sT0FBTztBQUVsQyxxQkFBVyxPQUFPLFNBQVMsU0FBUyxTQUFTLFFBQU87QUFDbEQsbUJBQU8sUUFBUSxRQUFPLE1BQU0sSUFBSSxDQUFDLFNBQVE7QUFBQSxVQUMzQyxDQUFDLEVBQUUsS0FBSyxnQkFBZ0IsQ0FBQztBQUV6QixpQkFBTztBQUFBLFFBQ1QsQ0FBQztBQThCRCx5QkFBZ0IsT0FBTyxXQUFXO0FBQ2hDLGNBQUksVUFBUyxDQUFDO0FBQ2QsY0FBSSxDQUFFLFVBQVMsTUFBTSxTQUFTO0FBQzVCLG1CQUFPO0FBQUEsVUFDVDtBQUNBLGNBQUksU0FBUSxJQUNSLFVBQVUsQ0FBQyxHQUNYLFNBQVMsTUFBTTtBQUVuQixzQkFBWSxZQUFZLFdBQVcsQ0FBQztBQUNwQyxpQkFBTyxFQUFFLFNBQVEsUUFBUTtBQUN2QixnQkFBSSxRQUFRLE1BQU07QUFDbEIsZ0JBQUksVUFBVSxPQUFPLFFBQU8sS0FBSyxHQUFHO0FBQ2xDLHNCQUFPLEtBQUssS0FBSztBQUNqQixzQkFBUSxLQUFLLE1BQUs7QUFBQSxZQUNwQjtBQUFBLFVBQ0Y7QUFDQSxxQkFBVyxPQUFPLE9BQU87QUFDekIsaUJBQU87QUFBQSxRQUNUO0FBeUJBLHlCQUFpQixPQUFPO0FBQ3RCLGlCQUFPLFNBQVMsT0FBTyxRQUFRLGNBQWMsS0FBSyxLQUFLO0FBQUEsUUFDekQ7QUFrQkEsd0JBQWUsT0FBTyxRQUFPLEtBQUs7QUFDaEMsY0FBSSxTQUFTLFNBQVMsT0FBTyxJQUFJLE1BQU07QUFDdkMsY0FBSSxDQUFDLFFBQVE7QUFDWCxtQkFBTyxDQUFDO0FBQUEsVUFDVjtBQUNBLGNBQUksT0FBTyxPQUFPLE9BQU8sWUFBWSxlQUFlLE9BQU8sUUFBTyxHQUFHLEdBQUc7QUFDdEUscUJBQVE7QUFDUixrQkFBTTtBQUFBLFVBQ1IsT0FDSztBQUNILHFCQUFRLFVBQVMsT0FBTyxJQUFJLFVBQVUsTUFBSztBQUMzQyxrQkFBTSxRQUFRLGFBQVksU0FBUyxVQUFVLEdBQUc7QUFBQSxVQUNsRDtBQUNBLGlCQUFPLFVBQVUsT0FBTyxRQUFPLEdBQUc7QUFBQSxRQUNwQztBQW1CQSw2QkFBcUIsT0FBTyxPQUFPO0FBQ2pDLGlCQUFPLGdCQUFnQixPQUFPLEtBQUs7QUFBQSxRQUNyQztBQTJCQSwrQkFBdUIsT0FBTyxPQUFPLFdBQVU7QUFDN0MsaUJBQU8sa0JBQWtCLE9BQU8sT0FBTyxZQUFZLFdBQVUsQ0FBQyxDQUFDO0FBQUEsUUFDakU7QUFrQkEsK0JBQXVCLE9BQU8sT0FBTztBQUNuQyxjQUFJLFNBQVMsU0FBUyxPQUFPLElBQUksTUFBTTtBQUN2QyxjQUFJLFFBQVE7QUFDVixnQkFBSSxTQUFRLGdCQUFnQixPQUFPLEtBQUs7QUFDeEMsZ0JBQUksU0FBUSxVQUFVLEdBQUcsTUFBTSxTQUFRLEtBQUssR0FBRztBQUM3QyxxQkFBTztBQUFBLFlBQ1Q7QUFBQSxVQUNGO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBb0JBLGlDQUF5QixPQUFPLE9BQU87QUFDckMsaUJBQU8sZ0JBQWdCLE9BQU8sT0FBTyxJQUFJO0FBQUEsUUFDM0M7QUEyQkEsbUNBQTJCLE9BQU8sT0FBTyxXQUFVO0FBQ2pELGlCQUFPLGtCQUFrQixPQUFPLE9BQU8sWUFBWSxXQUFVLENBQUMsR0FBRyxJQUFJO0FBQUEsUUFDdkU7QUFrQkEsbUNBQTJCLE9BQU8sT0FBTztBQUN2QyxjQUFJLFNBQVMsU0FBUyxPQUFPLElBQUksTUFBTTtBQUN2QyxjQUFJLFFBQVE7QUFDVixnQkFBSSxTQUFRLGdCQUFnQixPQUFPLE9BQU8sSUFBSSxJQUFJO0FBQ2xELGdCQUFJLEdBQUcsTUFBTSxTQUFRLEtBQUssR0FBRztBQUMzQixxQkFBTztBQUFBLFlBQ1Q7QUFBQSxVQUNGO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBaUJBLDRCQUFvQixPQUFPO0FBQ3pCLGlCQUFRLFNBQVMsTUFBTSxTQUNuQixlQUFlLEtBQUssSUFDcEIsQ0FBQztBQUFBLFFBQ1A7QUFrQkEsOEJBQXNCLE9BQU8sV0FBVTtBQUNyQyxpQkFBUSxTQUFTLE1BQU0sU0FDbkIsZUFBZSxPQUFPLFlBQVksV0FBVSxDQUFDLENBQUMsSUFDOUMsQ0FBQztBQUFBLFFBQ1A7QUFnQkEsc0JBQWMsT0FBTztBQUNuQixjQUFJLFNBQVMsU0FBUyxPQUFPLElBQUksTUFBTTtBQUN2QyxpQkFBTyxTQUFTLFVBQVUsT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDO0FBQUEsUUFDakQ7QUEyQkEsc0JBQWMsT0FBTyxHQUFHLE9BQU87QUFDN0IsY0FBSSxDQUFFLFVBQVMsTUFBTSxTQUFTO0FBQzVCLG1CQUFPLENBQUM7QUFBQSxVQUNWO0FBQ0EsY0FBSyxTQUFTLE1BQU0sYUFBYSxJQUFJLFVBQVUsQ0FBQztBQUNoRCxpQkFBTyxVQUFVLE9BQU8sR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDO0FBQUEsUUFDMUM7QUEyQkEsMkJBQW1CLE9BQU8sR0FBRyxPQUFPO0FBQ2xDLGNBQUksU0FBUyxTQUFTLE9BQU8sSUFBSSxNQUFNO0FBQ3ZDLGNBQUksQ0FBQyxRQUFRO0FBQ1gsbUJBQU8sQ0FBQztBQUFBLFVBQ1Y7QUFDQSxjQUFLLFNBQVMsTUFBTSxhQUFhLElBQUksVUFBVSxDQUFDO0FBQ2hELGNBQUksU0FBUztBQUNiLGlCQUFPLFVBQVUsT0FBTyxJQUFJLElBQUksSUFBSSxHQUFHLE1BQU07QUFBQSxRQUMvQztBQXFDQSxnQ0FBd0IsT0FBTyxXQUFXO0FBQ3hDLGlCQUFRLFNBQVMsTUFBTSxTQUNuQixVQUFVLE9BQU8sWUFBWSxXQUFXLENBQUMsR0FBRyxPQUFPLElBQUksSUFDdkQsQ0FBQztBQUFBLFFBQ1A7QUFxQ0EsMkJBQW1CLE9BQU8sV0FBVztBQUNuQyxpQkFBUSxTQUFTLE1BQU0sU0FDbkIsVUFBVSxPQUFPLFlBQVksV0FBVyxDQUFDLENBQUMsSUFDMUMsQ0FBQztBQUFBLFFBQ1A7QUFrQkEsWUFBSSxRQUFRLFNBQVMsU0FBUyxRQUFRO0FBQ3BDLGlCQUFPLFNBQVMsWUFBWSxRQUFRLEdBQUcsbUJBQW1CLElBQUksQ0FBQztBQUFBLFFBQ2pFLENBQUM7QUF5QkQsWUFBSSxVQUFVLFNBQVMsU0FBUyxRQUFRO0FBQ3RDLGNBQUksWUFBVyxLQUFLLE1BQU07QUFDMUIsY0FBSSxrQkFBa0IsU0FBUSxHQUFHO0FBQy9CLHdCQUFXO0FBQUEsVUFDYjtBQUNBLGlCQUFPLFNBQVMsWUFBWSxRQUFRLEdBQUcsbUJBQW1CLElBQUksR0FBRyxZQUFZLFdBQVUsQ0FBQyxDQUFDO0FBQUEsUUFDM0YsQ0FBQztBQXVCRCxZQUFJLFlBQVksU0FBUyxTQUFTLFFBQVE7QUFDeEMsY0FBSSxhQUFhLEtBQUssTUFBTTtBQUM1Qix1QkFBYSxPQUFPLGNBQWMsYUFBYSxhQUFhO0FBQzVELGlCQUFPLFNBQVMsWUFBWSxRQUFRLEdBQUcsbUJBQW1CLElBQUksR0FBRyxZQUFXLFVBQVU7QUFBQSxRQUN4RixDQUFDO0FBb0JELHNCQUFjLE9BQU87QUFDbkIsaUJBQVEsU0FBUyxNQUFNLFNBQVUsU0FBUyxLQUFLLElBQUksQ0FBQztBQUFBLFFBQ3REO0FBeUJBLHdCQUFnQixPQUFPLFdBQVU7QUFDL0IsaUJBQVEsU0FBUyxNQUFNLFNBQVUsU0FBUyxPQUFPLFlBQVksV0FBVSxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQUEsUUFDaEY7QUFzQkEsMEJBQWtCLE9BQU8sWUFBWTtBQUNuQyx1QkFBYSxPQUFPLGNBQWMsYUFBYSxhQUFhO0FBQzVELGlCQUFRLFNBQVMsTUFBTSxTQUFVLFNBQVMsT0FBTyxZQUFXLFVBQVUsSUFBSSxDQUFDO0FBQUEsUUFDN0U7QUFxQkEsdUJBQWUsT0FBTztBQUNwQixjQUFJLENBQUUsVUFBUyxNQUFNLFNBQVM7QUFDNUIsbUJBQU8sQ0FBQztBQUFBLFVBQ1Y7QUFDQSxjQUFJLFNBQVM7QUFDYixrQkFBUSxZQUFZLE9BQU8sU0FBUyxPQUFPO0FBQ3pDLGdCQUFJLGtCQUFrQixLQUFLLEdBQUc7QUFDNUIsdUJBQVMsVUFBVSxNQUFNLFFBQVEsTUFBTTtBQUN2QyxxQkFBTztBQUFBLFlBQ1Q7QUFBQSxVQUNGLENBQUM7QUFDRCxpQkFBTyxVQUFVLFFBQVEsU0FBUyxRQUFPO0FBQ3ZDLG1CQUFPLFNBQVMsT0FBTyxhQUFhLE1BQUssQ0FBQztBQUFBLFVBQzVDLENBQUM7QUFBQSxRQUNIO0FBdUJBLDJCQUFtQixPQUFPLFdBQVU7QUFDbEMsY0FBSSxDQUFFLFVBQVMsTUFBTSxTQUFTO0FBQzVCLG1CQUFPLENBQUM7QUFBQSxVQUNWO0FBQ0EsY0FBSSxVQUFTLE1BQU0sS0FBSztBQUN4QixjQUFJLGFBQVksTUFBTTtBQUNwQixtQkFBTztBQUFBLFVBQ1Q7QUFDQSxpQkFBTyxTQUFTLFNBQVEsU0FBUyxPQUFPO0FBQ3RDLG1CQUFPLE1BQU0sV0FBVSxZQUFXLEtBQUs7QUFBQSxVQUN6QyxDQUFDO0FBQUEsUUFDSDtBQXNCQSxZQUFJLFVBQVUsU0FBUyxTQUFTLE9BQU8sU0FBUTtBQUM3QyxpQkFBTyxrQkFBa0IsS0FBSyxJQUMxQixlQUFlLE9BQU8sT0FBTSxJQUM1QixDQUFDO0FBQUEsUUFDUCxDQUFDO0FBb0JELFlBQUksTUFBTSxTQUFTLFNBQVMsUUFBUTtBQUNsQyxpQkFBTyxRQUFRLFlBQVksUUFBUSxpQkFBaUIsQ0FBQztBQUFBLFFBQ3ZELENBQUM7QUF5QkQsWUFBSSxRQUFRLFNBQVMsU0FBUyxRQUFRO0FBQ3BDLGNBQUksWUFBVyxLQUFLLE1BQU07QUFDMUIsY0FBSSxrQkFBa0IsU0FBUSxHQUFHO0FBQy9CLHdCQUFXO0FBQUEsVUFDYjtBQUNBLGlCQUFPLFFBQVEsWUFBWSxRQUFRLGlCQUFpQixHQUFHLFlBQVksV0FBVSxDQUFDLENBQUM7QUFBQSxRQUNqRixDQUFDO0FBdUJELFlBQUksVUFBVSxTQUFTLFNBQVMsUUFBUTtBQUN0QyxjQUFJLGFBQWEsS0FBSyxNQUFNO0FBQzVCLHVCQUFhLE9BQU8sY0FBYyxhQUFhLGFBQWE7QUFDNUQsaUJBQU8sUUFBUSxZQUFZLFFBQVEsaUJBQWlCLEdBQUcsWUFBVyxVQUFVO0FBQUEsUUFDOUUsQ0FBQztBQWtCRCxZQUFJLE1BQU0sU0FBUyxLQUFLO0FBa0J4QiwyQkFBbUIsT0FBTyxTQUFRO0FBQ2hDLGlCQUFPLGNBQWMsU0FBUyxDQUFDLEdBQUcsV0FBVSxDQUFDLEdBQUcsV0FBVztBQUFBLFFBQzdEO0FBaUJBLCtCQUF1QixPQUFPLFNBQVE7QUFDcEMsaUJBQU8sY0FBYyxTQUFTLENBQUMsR0FBRyxXQUFVLENBQUMsR0FBRyxPQUFPO0FBQUEsUUFDekQ7QUFzQkEsWUFBSSxVQUFVLFNBQVMsU0FBUyxRQUFRO0FBQ3RDLGNBQUksU0FBUyxPQUFPLFFBQ2hCLFlBQVcsU0FBUyxJQUFJLE9BQU8sU0FBUyxLQUFLO0FBRWpELHNCQUFXLE9BQU8sYUFBWSxhQUFjLFFBQU8sSUFBSSxHQUFHLGFBQVk7QUFDdEUsaUJBQU8sVUFBVSxRQUFRLFNBQVE7QUFBQSxRQUNuQyxDQUFDO0FBaUNELHVCQUFlLE9BQU87QUFDcEIsY0FBSSxVQUFTLE9BQU8sS0FBSztBQUN6QixrQkFBTyxZQUFZO0FBQ25CLGlCQUFPO0FBQUEsUUFDVDtBQXlCQSxxQkFBYSxPQUFPLGFBQWE7QUFDL0Isc0JBQVksS0FBSztBQUNqQixpQkFBTztBQUFBLFFBQ1Q7QUF5QkEsc0JBQWMsT0FBTyxhQUFhO0FBQ2hDLGlCQUFPLFlBQVksS0FBSztBQUFBLFFBQzFCO0FBa0JBLFlBQUksWUFBWSxTQUFTLFNBQVMsT0FBTztBQUN2QyxjQUFJLFNBQVMsTUFBTSxRQUNmLFNBQVEsU0FBUyxNQUFNLEtBQUssR0FDNUIsUUFBUSxLQUFLLGFBQ2IsY0FBYyxTQUFTLFFBQVE7QUFBRSxtQkFBTyxPQUFPLFFBQVEsS0FBSztBQUFBLFVBQUc7QUFFbkUsY0FBSSxTQUFTLEtBQUssS0FBSyxZQUFZLFVBQy9CLENBQUUsa0JBQWlCLGdCQUFnQixDQUFDLFFBQVEsTUFBSyxHQUFHO0FBQ3RELG1CQUFPLEtBQUssS0FBSyxXQUFXO0FBQUEsVUFDOUI7QUFDQSxrQkFBUSxNQUFNLE1BQU0sUUFBTyxDQUFDLFNBQVMsVUFBUyxJQUFJLEVBQUU7QUFDcEQsZ0JBQU0sWUFBWSxLQUFLO0FBQUEsWUFDckIsUUFBUTtBQUFBLFlBQ1IsUUFBUSxDQUFDLFdBQVc7QUFBQSxZQUNwQixXQUFXO0FBQUEsVUFDYixDQUFDO0FBQ0QsaUJBQU8sSUFBSSxjQUFjLE9BQU8sS0FBSyxTQUFTLEVBQUUsS0FBSyxTQUFTLE9BQU87QUFDbkUsZ0JBQUksVUFBVSxDQUFDLE1BQU0sUUFBUTtBQUMzQixvQkFBTSxLQUFLLFVBQVM7QUFBQSxZQUN0QjtBQUNBLG1CQUFPO0FBQUEsVUFDVCxDQUFDO0FBQUEsUUFDSCxDQUFDO0FBNkJELGdDQUF3QjtBQUN0QixpQkFBTyxNQUFNLElBQUk7QUFBQSxRQUNuQjtBQTRCQSxpQ0FBeUI7QUFDdkIsaUJBQU8sSUFBSSxjQUFjLEtBQUssTUFBTSxHQUFHLEtBQUssU0FBUztBQUFBLFFBQ3ZEO0FBd0JBLCtCQUF1QjtBQUNyQixjQUFJLEtBQUssZUFBZSxZQUFXO0FBQ2pDLGlCQUFLLGFBQWEsUUFBUSxLQUFLLE1BQU0sQ0FBQztBQUFBLFVBQ3hDO0FBQ0EsY0FBSSxPQUFPLEtBQUssYUFBYSxLQUFLLFdBQVcsUUFDekMsUUFBUSxPQUFPLGFBQVksS0FBSyxXQUFXLEtBQUs7QUFFcEQsaUJBQU8sRUFBRSxRQUFRLE1BQU0sU0FBUyxNQUFNO0FBQUEsUUFDeEM7QUFvQkEscUNBQTZCO0FBQzNCLGlCQUFPO0FBQUEsUUFDVDtBQTBCQSw4QkFBc0IsT0FBTztBQUMzQixjQUFJLFNBQ0EsVUFBUztBQUViLGlCQUFPLG1CQUFrQixZQUFZO0FBQ25DLGdCQUFJLFNBQVEsYUFBYSxPQUFNO0FBQy9CLG1CQUFNLFlBQVk7QUFDbEIsbUJBQU0sYUFBYTtBQUNuQixnQkFBSSxTQUFRO0FBQ1YsdUJBQVMsY0FBYztBQUFBLFlBQ3pCLE9BQU87QUFDTCx3QkFBUztBQUFBLFlBQ1g7QUFDQSxnQkFBSSxXQUFXO0FBQ2Ysc0JBQVMsUUFBTztBQUFBLFVBQ2xCO0FBQ0EsbUJBQVMsY0FBYztBQUN2QixpQkFBTztBQUFBLFFBQ1Q7QUFzQkEsa0NBQTBCO0FBQ3hCLGNBQUksUUFBUSxLQUFLO0FBQ2pCLGNBQUksaUJBQWlCLGFBQWE7QUFDaEMsZ0JBQUksVUFBVTtBQUNkLGdCQUFJLEtBQUssWUFBWSxRQUFRO0FBQzNCLHdCQUFVLElBQUksWUFBWSxJQUFJO0FBQUEsWUFDaEM7QUFDQSxzQkFBVSxRQUFRLFFBQVE7QUFDMUIsb0JBQVEsWUFBWSxLQUFLO0FBQUEsY0FDdkIsUUFBUTtBQUFBLGNBQ1IsUUFBUSxDQUFDLE9BQU87QUFBQSxjQUNoQixXQUFXO0FBQUEsWUFDYixDQUFDO0FBQ0QsbUJBQU8sSUFBSSxjQUFjLFNBQVMsS0FBSyxTQUFTO0FBQUEsVUFDbEQ7QUFDQSxpQkFBTyxLQUFLLEtBQUssT0FBTztBQUFBLFFBQzFCO0FBZ0JBLGdDQUF3QjtBQUN0QixpQkFBTyxpQkFBaUIsS0FBSyxhQUFhLEtBQUssV0FBVztBQUFBLFFBQzVEO0FBMEJBLFlBQUksVUFBVSxpQkFBaUIsU0FBUyxTQUFRLE9BQU8sS0FBSztBQUMxRCxjQUFJLGVBQWUsS0FBSyxTQUFRLEdBQUcsR0FBRztBQUNwQyxjQUFFLFFBQU87QUFBQSxVQUNYLE9BQU87QUFDTCw0QkFBZ0IsU0FBUSxLQUFLLENBQUM7QUFBQSxVQUNoQztBQUFBLFFBQ0YsQ0FBQztBQTJDRCx1QkFBZSxZQUFZLFdBQVcsT0FBTztBQUMzQyxjQUFJLE9BQU8sUUFBUSxVQUFVLElBQUksYUFBYTtBQUM5QyxjQUFJLFNBQVMsZUFBZSxZQUFZLFdBQVcsS0FBSyxHQUFHO0FBQ3pELHdCQUFZO0FBQUEsVUFDZDtBQUNBLGlCQUFPLEtBQUssWUFBWSxZQUFZLFdBQVcsQ0FBQyxDQUFDO0FBQUEsUUFDbkQ7QUEyQ0EseUJBQWdCLFlBQVksV0FBVztBQUNyQyxjQUFJLE9BQU8sUUFBUSxVQUFVLElBQUksY0FBYztBQUMvQyxpQkFBTyxLQUFLLFlBQVksWUFBWSxXQUFXLENBQUMsQ0FBQztBQUFBLFFBQ25EO0FBc0NBLFlBQUksUUFBTyxXQUFXLFNBQVM7QUFxQi9CLFlBQUksV0FBVyxXQUFXLGFBQWE7QUF1QnZDLHlCQUFpQixZQUFZLFdBQVU7QUFDckMsaUJBQU8sWUFBWSxLQUFJLFlBQVksU0FBUSxHQUFHLENBQUM7QUFBQSxRQUNqRDtBQXNCQSw2QkFBcUIsWUFBWSxXQUFVO0FBQ3pDLGlCQUFPLFlBQVksS0FBSSxZQUFZLFNBQVEsR0FBRyxRQUFRO0FBQUEsUUFDeEQ7QUF1QkEsOEJBQXNCLFlBQVksV0FBVSxPQUFPO0FBQ2pELGtCQUFRLFVBQVUsYUFBWSxJQUFJLFVBQVUsS0FBSztBQUNqRCxpQkFBTyxZQUFZLEtBQUksWUFBWSxTQUFRLEdBQUcsS0FBSztBQUFBLFFBQ3JEO0FBZ0NBLHlCQUFpQixZQUFZLFdBQVU7QUFDckMsY0FBSSxPQUFPLFFBQVEsVUFBVSxJQUFJLFlBQVk7QUFDN0MsaUJBQU8sS0FBSyxZQUFZLFlBQVksV0FBVSxDQUFDLENBQUM7QUFBQSxRQUNsRDtBQXNCQSw4QkFBc0IsWUFBWSxXQUFVO0FBQzFDLGNBQUksT0FBTyxRQUFRLFVBQVUsSUFBSSxpQkFBaUI7QUFDbEQsaUJBQU8sS0FBSyxZQUFZLFlBQVksV0FBVSxDQUFDLENBQUM7QUFBQSxRQUNsRDtBQXlCQSxZQUFJLFVBQVUsaUJBQWlCLFNBQVMsU0FBUSxPQUFPLEtBQUs7QUFDMUQsY0FBSSxlQUFlLEtBQUssU0FBUSxHQUFHLEdBQUc7QUFDcEMsb0JBQU8sS0FBSyxLQUFLLEtBQUs7QUFBQSxVQUN4QixPQUFPO0FBQ0wsNEJBQWdCLFNBQVEsS0FBSyxDQUFDLEtBQUssQ0FBQztBQUFBLFVBQ3RDO0FBQUEsUUFDRixDQUFDO0FBZ0NELDBCQUFrQixZQUFZLE9BQU8sV0FBVyxPQUFPO0FBQ3JELHVCQUFhLFlBQVksVUFBVSxJQUFJLGFBQWEsT0FBTyxVQUFVO0FBQ3JFLHNCQUFhLGFBQWEsQ0FBQyxRQUFTLFVBQVUsU0FBUyxJQUFJO0FBRTNELGNBQUksU0FBUyxXQUFXO0FBQ3hCLGNBQUksWUFBWSxHQUFHO0FBQ2pCLHdCQUFZLFVBQVUsU0FBUyxXQUFXLENBQUM7QUFBQSxVQUM3QztBQUNBLGlCQUFPLFNBQVMsVUFBVSxJQUNyQixhQUFhLFVBQVUsV0FBVyxRQUFRLE9BQU8sU0FBUyxJQUFJLEtBQzlELENBQUMsQ0FBQyxVQUFVLFlBQVksWUFBWSxPQUFPLFNBQVMsSUFBSTtBQUFBLFFBQy9EO0FBeUJBLFlBQUksWUFBWSxTQUFTLFNBQVMsWUFBWSxPQUFNLE1BQU07QUFDeEQsY0FBSSxTQUFRLElBQ1IsU0FBUyxPQUFPLFNBQVEsWUFDeEIsVUFBUyxZQUFZLFVBQVUsSUFBSSxPQUFNLFdBQVcsTUFBTSxJQUFJLENBQUM7QUFFbkUsbUJBQVMsWUFBWSxTQUFTLE9BQU87QUFDbkMsb0JBQU8sRUFBRSxVQUFTLFNBQVMsTUFBTSxPQUFNLE9BQU8sSUFBSSxJQUFJLFdBQVcsT0FBTyxPQUFNLElBQUk7QUFBQSxVQUNwRixDQUFDO0FBQ0QsaUJBQU87QUFBQSxRQUNULENBQUM7QUE4QkQsWUFBSSxRQUFRLGlCQUFpQixTQUFTLFNBQVEsT0FBTyxLQUFLO0FBQ3hELDBCQUFnQixTQUFRLEtBQUssS0FBSztBQUFBLFFBQ3BDLENBQUM7QUE0Q0Qsc0JBQWEsWUFBWSxXQUFVO0FBQ2pDLGNBQUksT0FBTyxRQUFRLFVBQVUsSUFBSSxXQUFXO0FBQzVDLGlCQUFPLEtBQUssWUFBWSxZQUFZLFdBQVUsQ0FBQyxDQUFDO0FBQUEsUUFDbEQ7QUErQkEseUJBQWlCLFlBQVksV0FBVyxRQUFRLE9BQU87QUFDckQsY0FBSSxjQUFjLE1BQU07QUFDdEIsbUJBQU8sQ0FBQztBQUFBLFVBQ1Y7QUFDQSxjQUFJLENBQUMsUUFBUSxTQUFTLEdBQUc7QUFDdkIsd0JBQVksYUFBYSxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVM7QUFBQSxVQUNqRDtBQUNBLG1CQUFTLFFBQVEsYUFBWTtBQUM3QixjQUFJLENBQUMsUUFBUSxNQUFNLEdBQUc7QUFDcEIscUJBQVMsVUFBVSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU07QUFBQSxVQUN4QztBQUNBLGlCQUFPLFlBQVksWUFBWSxXQUFXLE1BQU07QUFBQSxRQUNsRDtBQXNDQSxZQUFJLFlBQVksaUJBQWlCLFNBQVMsU0FBUSxPQUFPLEtBQUs7QUFDNUQsa0JBQU8sTUFBTSxJQUFJLEdBQUcsS0FBSyxLQUFLO0FBQUEsUUFDaEMsR0FBRyxXQUFXO0FBQUUsaUJBQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQUEsUUFBRyxDQUFDO0FBdUNsQyx3QkFBZ0IsWUFBWSxXQUFVLGFBQWE7QUFDakQsY0FBSSxPQUFPLFFBQVEsVUFBVSxJQUFJLGNBQWMsWUFDM0MsWUFBWSxVQUFVLFNBQVM7QUFFbkMsaUJBQU8sS0FBSyxZQUFZLFlBQVksV0FBVSxDQUFDLEdBQUcsYUFBYSxXQUFXLFFBQVE7QUFBQSxRQUNwRjtBQXdCQSw2QkFBcUIsWUFBWSxXQUFVLGFBQWE7QUFDdEQsY0FBSSxPQUFPLFFBQVEsVUFBVSxJQUFJLG1CQUFtQixZQUNoRCxZQUFZLFVBQVUsU0FBUztBQUVuQyxpQkFBTyxLQUFLLFlBQVksWUFBWSxXQUFVLENBQUMsR0FBRyxhQUFhLFdBQVcsYUFBYTtBQUFBLFFBQ3pGO0FBb0NBLHdCQUFnQixZQUFZLFdBQVc7QUFDckMsY0FBSSxPQUFPLFFBQVEsVUFBVSxJQUFJLGNBQWM7QUFDL0MsaUJBQU8sS0FBSyxZQUFZLE9BQU8sWUFBWSxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBQUEsUUFDM0Q7QUFnQkEsd0JBQWdCLFlBQVk7QUFDMUIsY0FBSSxPQUFPLFFBQVEsVUFBVSxJQUFJLGNBQWM7QUFDL0MsaUJBQU8sS0FBSyxVQUFVO0FBQUEsUUFDeEI7QUFzQkEsNEJBQW9CLFlBQVksR0FBRyxPQUFPO0FBQ3hDLGNBQUssUUFBUSxlQUFlLFlBQVksR0FBRyxLQUFLLElBQUksTUFBTSxZQUFZO0FBQ3BFLGdCQUFJO0FBQUEsVUFDTixPQUFPO0FBQ0wsZ0JBQUksVUFBVSxDQUFDO0FBQUEsVUFDakI7QUFDQSxjQUFJLE9BQU8sUUFBUSxVQUFVLElBQUksa0JBQWtCO0FBQ25ELGlCQUFPLEtBQUssWUFBWSxDQUFDO0FBQUEsUUFDM0I7QUFpQkEseUJBQWlCLFlBQVk7QUFDM0IsY0FBSSxPQUFPLFFBQVEsVUFBVSxJQUFJLGVBQWU7QUFDaEQsaUJBQU8sS0FBSyxVQUFVO0FBQUEsUUFDeEI7QUF1QkEsc0JBQWMsWUFBWTtBQUN4QixjQUFJLGNBQWMsTUFBTTtBQUN0QixtQkFBTztBQUFBLFVBQ1Q7QUFDQSxjQUFJLFlBQVksVUFBVSxHQUFHO0FBQzNCLG1CQUFPLFNBQVMsVUFBVSxJQUFJLFdBQVcsVUFBVSxJQUFJLFdBQVc7QUFBQSxVQUNwRTtBQUNBLGNBQUksTUFBTSxPQUFPLFVBQVU7QUFDM0IsY0FBSSxPQUFPLFVBQVUsT0FBTyxRQUFRO0FBQ2xDLG1CQUFPLFdBQVc7QUFBQSxVQUNwQjtBQUNBLGlCQUFPLFNBQVMsVUFBVSxFQUFFO0FBQUEsUUFDOUI7QUFzQ0Esc0JBQWMsWUFBWSxXQUFXLE9BQU87QUFDMUMsY0FBSSxPQUFPLFFBQVEsVUFBVSxJQUFJLFlBQVk7QUFDN0MsY0FBSSxTQUFTLGVBQWUsWUFBWSxXQUFXLEtBQUssR0FBRztBQUN6RCx3QkFBWTtBQUFBLFVBQ2Q7QUFDQSxpQkFBTyxLQUFLLFlBQVksWUFBWSxXQUFXLENBQUMsQ0FBQztBQUFBLFFBQ25EO0FBK0JBLFlBQUksU0FBUyxTQUFTLFNBQVMsWUFBWSxXQUFXO0FBQ3BELGNBQUksY0FBYyxNQUFNO0FBQ3RCLG1CQUFPLENBQUM7QUFBQSxVQUNWO0FBQ0EsY0FBSSxTQUFTLFVBQVU7QUFDdkIsY0FBSSxTQUFTLEtBQUssZUFBZSxZQUFZLFVBQVUsSUFBSSxVQUFVLEVBQUUsR0FBRztBQUN4RSx3QkFBWSxDQUFDO0FBQUEsVUFDZixXQUFXLFNBQVMsS0FBSyxlQUFlLFVBQVUsSUFBSSxVQUFVLElBQUksVUFBVSxFQUFFLEdBQUc7QUFDakYsd0JBQVksQ0FBQyxVQUFVLEVBQUU7QUFBQSxVQUMzQjtBQUNBLGlCQUFPLFlBQVksWUFBWSxZQUFZLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUFBLFFBQzlELENBQUM7QUFvQkQsWUFBSSxPQUFNLFVBQVUsV0FBVztBQUM3QixpQkFBTyxNQUFLLEtBQUssSUFBSTtBQUFBLFFBQ3ZCO0FBNEJBLHVCQUFlLEdBQUcsTUFBTTtBQUN0QixjQUFJLE9BQU8sUUFBUSxZQUFZO0FBQzdCLGtCQUFNLElBQUksV0FBVSxlQUFlO0FBQUEsVUFDckM7QUFDQSxjQUFJLFVBQVUsQ0FBQztBQUNmLGlCQUFPLFdBQVc7QUFDaEIsZ0JBQUksRUFBRSxJQUFJLEdBQUc7QUFDWCxxQkFBTyxLQUFLLE1BQU0sTUFBTSxTQUFTO0FBQUEsWUFDbkM7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQW1CQSxxQkFBYSxNQUFNLEdBQUcsT0FBTztBQUMzQixjQUFJLFFBQVEsYUFBWTtBQUN4QixjQUFLLFFBQVEsS0FBSyxPQUFRLEtBQUssU0FBUztBQUN4QyxpQkFBTyxXQUFXLE1BQU0sZUFBZSxZQUFXLFlBQVcsWUFBVyxZQUFXLENBQUM7QUFBQSxRQUN0RjtBQW1CQSx3QkFBZ0IsR0FBRyxNQUFNO0FBQ3ZCLGNBQUk7QUFDSixjQUFJLE9BQU8sUUFBUSxZQUFZO0FBQzdCLGtCQUFNLElBQUksV0FBVSxlQUFlO0FBQUEsVUFDckM7QUFDQSxjQUFJLFVBQVUsQ0FBQztBQUNmLGlCQUFPLFdBQVc7QUFDaEIsZ0JBQUksRUFBRSxJQUFJLEdBQUc7QUFDWCx3QkFBUyxLQUFLLE1BQU0sTUFBTSxTQUFTO0FBQUEsWUFDckM7QUFDQSxnQkFBSSxLQUFLLEdBQUc7QUFDVixxQkFBTztBQUFBLFlBQ1Q7QUFDQSxtQkFBTztBQUFBLFVBQ1Q7QUFBQSxRQUNGO0FBcUNBLFlBQUksT0FBTyxTQUFTLFNBQVMsTUFBTSxTQUFTLFVBQVU7QUFDcEQsY0FBSSxVQUFVO0FBQ2QsY0FBSSxTQUFTLFFBQVE7QUFDbkIsZ0JBQUksVUFBVSxlQUFlLFVBQVUsVUFBVSxJQUFJLENBQUM7QUFDdEQsdUJBQVc7QUFBQSxVQUNiO0FBQ0EsaUJBQU8sV0FBVyxNQUFNLFNBQVMsU0FBUyxVQUFVLE9BQU87QUFBQSxRQUM3RCxDQUFDO0FBK0NELFlBQUksV0FBVSxTQUFTLFNBQVMsUUFBUSxLQUFLLFVBQVU7QUFDckQsY0FBSSxVQUFVLGlCQUFpQjtBQUMvQixjQUFJLFNBQVMsUUFBUTtBQUNuQixnQkFBSSxVQUFVLGVBQWUsVUFBVSxVQUFVLFFBQU8sQ0FBQztBQUN6RCx1QkFBVztBQUFBLFVBQ2I7QUFDQSxpQkFBTyxXQUFXLEtBQUssU0FBUyxRQUFRLFVBQVUsT0FBTztBQUFBLFFBQzNELENBQUM7QUEyQ0QsdUJBQWUsTUFBTSxPQUFPLE9BQU87QUFDakMsa0JBQVEsUUFBUSxhQUFZO0FBQzVCLGNBQUksVUFBUyxXQUFXLE1BQU0saUJBQWlCLFlBQVcsWUFBVyxZQUFXLFlBQVcsWUFBVyxLQUFLO0FBQzNHLGtCQUFPLGNBQWMsTUFBTTtBQUMzQixpQkFBTztBQUFBLFFBQ1Q7QUF3Q0EsNEJBQW9CLE1BQU0sT0FBTyxPQUFPO0FBQ3RDLGtCQUFRLFFBQVEsYUFBWTtBQUM1QixjQUFJLFVBQVMsV0FBVyxNQUFNLHVCQUF1QixZQUFXLFlBQVcsWUFBVyxZQUFXLFlBQVcsS0FBSztBQUNqSCxrQkFBTyxjQUFjLFdBQVc7QUFDaEMsaUJBQU87QUFBQSxRQUNUO0FBd0RBLDBCQUFrQixNQUFNLE9BQU0sU0FBUztBQUNyQyxjQUFJLFVBQ0EsVUFDQSxTQUNBLFNBQ0EsU0FDQSxjQUNBLGlCQUFpQixHQUNqQixVQUFVLE9BQ1YsU0FBUyxPQUNULFdBQVc7QUFFZixjQUFJLE9BQU8sUUFBUSxZQUFZO0FBQzdCLGtCQUFNLElBQUksV0FBVSxlQUFlO0FBQUEsVUFDckM7QUFDQSxrQkFBTyxTQUFTLEtBQUksS0FBSztBQUN6QixjQUFJLFNBQVMsT0FBTyxHQUFHO0FBQ3JCLHNCQUFVLENBQUMsQ0FBQyxRQUFRO0FBQ3BCLHFCQUFTLGFBQWE7QUFDdEIsc0JBQVUsU0FBUyxVQUFVLFNBQVMsUUFBUSxPQUFPLEtBQUssR0FBRyxLQUFJLElBQUk7QUFDckUsdUJBQVcsY0FBYyxVQUFVLENBQUMsQ0FBQyxRQUFRLFdBQVc7QUFBQSxVQUMxRDtBQUVBLDhCQUFvQixNQUFNO0FBQ3hCLGdCQUFJLE9BQU8sVUFDUCxVQUFVO0FBRWQsdUJBQVcsV0FBVztBQUN0Qiw2QkFBaUI7QUFDakIsc0JBQVMsS0FBSyxNQUFNLFNBQVMsSUFBSTtBQUNqQyxtQkFBTztBQUFBLFVBQ1Q7QUFFQSwrQkFBcUIsTUFBTTtBQUV6Qiw2QkFBaUI7QUFFakIsc0JBQVUsWUFBVyxjQUFjLEtBQUk7QUFFdkMsbUJBQU8sVUFBVSxXQUFXLElBQUksSUFBSTtBQUFBLFVBQ3RDO0FBRUEsaUNBQXVCLE1BQU07QUFDM0IsZ0JBQUksb0JBQW9CLE9BQU8sY0FDM0Isc0JBQXNCLE9BQU8sZ0JBQzdCLGNBQWMsUUFBTztBQUV6QixtQkFBTyxTQUNILFVBQVUsYUFBYSxVQUFVLG1CQUFtQixJQUNwRDtBQUFBLFVBQ047QUFFQSxnQ0FBc0IsTUFBTTtBQUMxQixnQkFBSSxvQkFBb0IsT0FBTyxjQUMzQixzQkFBc0IsT0FBTztBQUtqQyxtQkFBUSxpQkFBaUIsY0FBYyxxQkFBcUIsU0FDekQsb0JBQW9CLEtBQU8sVUFBVSx1QkFBdUI7QUFBQSxVQUNqRTtBQUVBLGtDQUF3QjtBQUN0QixnQkFBSSxPQUFPLEtBQUk7QUFDZixnQkFBSSxhQUFhLElBQUksR0FBRztBQUN0QixxQkFBTyxhQUFhLElBQUk7QUFBQSxZQUMxQjtBQUVBLHNCQUFVLFlBQVcsY0FBYyxjQUFjLElBQUksQ0FBQztBQUFBLFVBQ3hEO0FBRUEsZ0NBQXNCLE1BQU07QUFDMUIsc0JBQVU7QUFJVixnQkFBSSxZQUFZLFVBQVU7QUFDeEIscUJBQU8sV0FBVyxJQUFJO0FBQUEsWUFDeEI7QUFDQSx1QkFBVyxXQUFXO0FBQ3RCLG1CQUFPO0FBQUEsVUFDVDtBQUVBLDRCQUFrQjtBQUNoQixnQkFBSSxZQUFZLFlBQVc7QUFDekIsNEJBQWEsT0FBTztBQUFBLFlBQ3RCO0FBQ0EsNkJBQWlCO0FBQ2pCLHVCQUFXLGVBQWUsV0FBVyxVQUFVO0FBQUEsVUFDakQ7QUFFQSw0QkFBaUI7QUFDZixtQkFBTyxZQUFZLGFBQVksVUFBUyxhQUFhLEtBQUksQ0FBQztBQUFBLFVBQzVEO0FBRUEsK0JBQXFCO0FBQ25CLGdCQUFJLE9BQU8sS0FBSSxHQUNYLGFBQWEsYUFBYSxJQUFJO0FBRWxDLHVCQUFXO0FBQ1gsdUJBQVc7QUFDWCwyQkFBZTtBQUVmLGdCQUFJLFlBQVk7QUFDZCxrQkFBSSxZQUFZLFlBQVc7QUFDekIsdUJBQU8sWUFBWSxZQUFZO0FBQUEsY0FDakM7QUFDQSxrQkFBSSxRQUFRO0FBRVYsOEJBQWEsT0FBTztBQUNwQiwwQkFBVSxZQUFXLGNBQWMsS0FBSTtBQUN2Qyx1QkFBTyxXQUFXLFlBQVk7QUFBQSxjQUNoQztBQUFBLFlBQ0Y7QUFDQSxnQkFBSSxZQUFZLFlBQVc7QUFDekIsd0JBQVUsWUFBVyxjQUFjLEtBQUk7QUFBQSxZQUN6QztBQUNBLG1CQUFPO0FBQUEsVUFDVDtBQUNBLG9CQUFVLFNBQVM7QUFDbkIsb0JBQVUsUUFBUTtBQUNsQixpQkFBTztBQUFBLFFBQ1Q7QUFvQkEsWUFBSSxRQUFRLFNBQVMsU0FBUyxNQUFNLE1BQU07QUFDeEMsaUJBQU8sVUFBVSxNQUFNLEdBQUcsSUFBSTtBQUFBLFFBQ2hDLENBQUM7QUFxQkQsWUFBSSxRQUFRLFNBQVMsU0FBUyxNQUFNLE9BQU0sTUFBTTtBQUM5QyxpQkFBTyxVQUFVLE1BQU0sU0FBUyxLQUFJLEtBQUssR0FBRyxJQUFJO0FBQUEsUUFDbEQsQ0FBQztBQW9CRCxzQkFBYyxNQUFNO0FBQ2xCLGlCQUFPLFdBQVcsTUFBTSxjQUFjO0FBQUEsUUFDeEM7QUE4Q0EseUJBQWlCLE1BQU0sVUFBVTtBQUMvQixjQUFJLE9BQU8sUUFBUSxjQUFlLFlBQVksUUFBUSxPQUFPLFlBQVksWUFBYTtBQUNwRixrQkFBTSxJQUFJLFdBQVUsZUFBZTtBQUFBLFVBQ3JDO0FBQ0EsY0FBSSxXQUFXLFdBQVc7QUFDeEIsZ0JBQUksT0FBTyxXQUNQLE1BQU0sV0FBVyxTQUFTLE1BQU0sTUFBTSxJQUFJLElBQUksS0FBSyxJQUNuRCxRQUFRLFNBQVM7QUFFckIsZ0JBQUksTUFBTSxJQUFJLEdBQUcsR0FBRztBQUNsQixxQkFBTyxNQUFNLElBQUksR0FBRztBQUFBLFlBQ3RCO0FBQ0EsZ0JBQUksVUFBUyxLQUFLLE1BQU0sTUFBTSxJQUFJO0FBQ2xDLHFCQUFTLFFBQVEsTUFBTSxJQUFJLEtBQUssT0FBTSxLQUFLO0FBQzNDLG1CQUFPO0FBQUEsVUFDVDtBQUNBLG1CQUFTLFFBQVEsSUFBSyxTQUFRLFNBQVM7QUFDdkMsaUJBQU87QUFBQSxRQUNUO0FBR0EsZ0JBQVEsUUFBUTtBQXNCaEIsd0JBQWdCLFdBQVc7QUFDekIsY0FBSSxPQUFPLGFBQWEsWUFBWTtBQUNsQyxrQkFBTSxJQUFJLFdBQVUsZUFBZTtBQUFBLFVBQ3JDO0FBQ0EsaUJBQU8sV0FBVztBQUNoQixnQkFBSSxPQUFPO0FBQ1gsb0JBQVEsS0FBSztBQUFBLG1CQUNOO0FBQUcsdUJBQU8sQ0FBQyxVQUFVLEtBQUssSUFBSTtBQUFBLG1CQUM5QjtBQUFHLHVCQUFPLENBQUMsVUFBVSxLQUFLLE1BQU0sS0FBSyxFQUFFO0FBQUEsbUJBQ3ZDO0FBQUcsdUJBQU8sQ0FBQyxVQUFVLEtBQUssTUFBTSxLQUFLLElBQUksS0FBSyxFQUFFO0FBQUEsbUJBQ2hEO0FBQUcsdUJBQU8sQ0FBQyxVQUFVLEtBQUssTUFBTSxLQUFLLElBQUksS0FBSyxJQUFJLEtBQUssRUFBRTtBQUFBO0FBRWhFLG1CQUFPLENBQUMsVUFBVSxNQUFNLE1BQU0sSUFBSTtBQUFBLFVBQ3BDO0FBQUEsUUFDRjtBQW9CQSxzQkFBYyxNQUFNO0FBQ2xCLGlCQUFPLE9BQU8sR0FBRyxJQUFJO0FBQUEsUUFDdkI7QUFpQ0EsWUFBSSxXQUFXLFNBQVMsU0FBUyxNQUFNLFlBQVk7QUFDakQsdUJBQWMsV0FBVyxVQUFVLEtBQUssUUFBUSxXQUFXLEVBQUUsSUFDekQsU0FBUyxXQUFXLElBQUksVUFBVSxZQUFZLENBQUMsQ0FBQyxJQUNoRCxTQUFTLFlBQVksWUFBWSxDQUFDLEdBQUcsVUFBVSxZQUFZLENBQUMsQ0FBQztBQUVqRSxjQUFJLGNBQWMsV0FBVztBQUM3QixpQkFBTyxTQUFTLFNBQVMsTUFBTTtBQUM3QixnQkFBSSxTQUFRLElBQ1IsU0FBUyxVQUFVLEtBQUssUUFBUSxXQUFXO0FBRS9DLG1CQUFPLEVBQUUsU0FBUSxRQUFRO0FBQ3ZCLG1CQUFLLFVBQVMsV0FBVyxRQUFPLEtBQUssTUFBTSxLQUFLLE9BQU07QUFBQSxZQUN4RDtBQUNBLG1CQUFPLE1BQU0sTUFBTSxNQUFNLElBQUk7QUFBQSxVQUMvQixDQUFDO0FBQUEsUUFDSCxDQUFDO0FBbUNELFlBQUksVUFBVSxTQUFTLFNBQVMsTUFBTSxVQUFVO0FBQzlDLGNBQUksVUFBVSxlQUFlLFVBQVUsVUFBVSxPQUFPLENBQUM7QUFDekQsaUJBQU8sV0FBVyxNQUFNLG1CQUFtQixZQUFXLFVBQVUsT0FBTztBQUFBLFFBQ3pFLENBQUM7QUFrQ0QsWUFBSSxlQUFlLFNBQVMsU0FBUyxNQUFNLFVBQVU7QUFDbkQsY0FBSSxVQUFVLGVBQWUsVUFBVSxVQUFVLFlBQVksQ0FBQztBQUM5RCxpQkFBTyxXQUFXLE1BQU0seUJBQXlCLFlBQVcsVUFBVSxPQUFPO0FBQUEsUUFDL0UsQ0FBQztBQXdCRCxZQUFJLFFBQVEsU0FBUyxTQUFTLE1BQU0sU0FBUztBQUMzQyxpQkFBTyxXQUFXLE1BQU0saUJBQWlCLFlBQVcsWUFBVyxZQUFXLE9BQU87QUFBQSxRQUNuRixDQUFDO0FBMkJELHNCQUFjLE1BQU0sUUFBTztBQUN6QixjQUFJLE9BQU8sUUFBUSxZQUFZO0FBQzdCLGtCQUFNLElBQUksV0FBVSxlQUFlO0FBQUEsVUFDckM7QUFDQSxtQkFBUSxXQUFVLGFBQVksU0FBUSxVQUFVLE1BQUs7QUFDckQsaUJBQU8sU0FBUyxNQUFNLE1BQUs7QUFBQSxRQUM3QjtBQW9DQSx3QkFBZ0IsTUFBTSxRQUFPO0FBQzNCLGNBQUksT0FBTyxRQUFRLFlBQVk7QUFDN0Isa0JBQU0sSUFBSSxXQUFVLGVBQWU7QUFBQSxVQUNyQztBQUNBLG1CQUFRLFVBQVMsT0FBTyxJQUFJLFVBQVUsVUFBVSxNQUFLLEdBQUcsQ0FBQztBQUN6RCxpQkFBTyxTQUFTLFNBQVMsTUFBTTtBQUM3QixnQkFBSSxRQUFRLEtBQUssU0FDYixZQUFZLFVBQVUsTUFBTSxHQUFHLE1BQUs7QUFFeEMsZ0JBQUksT0FBTztBQUNULHdCQUFVLFdBQVcsS0FBSztBQUFBLFlBQzVCO0FBQ0EsbUJBQU8sTUFBTSxNQUFNLE1BQU0sU0FBUztBQUFBLFVBQ3BDLENBQUM7QUFBQSxRQUNIO0FBOENBLDBCQUFrQixNQUFNLE9BQU0sU0FBUztBQUNyQyxjQUFJLFVBQVUsTUFDVixXQUFXO0FBRWYsY0FBSSxPQUFPLFFBQVEsWUFBWTtBQUM3QixrQkFBTSxJQUFJLFdBQVUsZUFBZTtBQUFBLFVBQ3JDO0FBQ0EsY0FBSSxTQUFTLE9BQU8sR0FBRztBQUNyQixzQkFBVSxhQUFhLFVBQVUsQ0FBQyxDQUFDLFFBQVEsVUFBVTtBQUNyRCx1QkFBVyxjQUFjLFVBQVUsQ0FBQyxDQUFDLFFBQVEsV0FBVztBQUFBLFVBQzFEO0FBQ0EsaUJBQU8sU0FBUyxNQUFNLE9BQU07QUFBQSxZQUMxQixXQUFXO0FBQUEsWUFDWCxXQUFXO0FBQUEsWUFDWCxZQUFZO0FBQUEsVUFDZCxDQUFDO0FBQUEsUUFDSDtBQWlCQSx1QkFBZSxNQUFNO0FBQ25CLGlCQUFPLElBQUksTUFBTSxDQUFDO0FBQUEsUUFDcEI7QUF3QkEsc0JBQWMsT0FBTyxTQUFTO0FBQzVCLGlCQUFPLFFBQVEsYUFBYSxPQUFPLEdBQUcsS0FBSztBQUFBLFFBQzdDO0FBcUNBLDZCQUFxQjtBQUNuQixjQUFJLENBQUMsVUFBVSxRQUFRO0FBQ3JCLG1CQUFPLENBQUM7QUFBQSxVQUNWO0FBQ0EsY0FBSSxRQUFRLFVBQVU7QUFDdEIsaUJBQU8sUUFBUSxLQUFLLElBQUksUUFBUSxDQUFDLEtBQUs7QUFBQSxRQUN4QztBQTRCQSx1QkFBZSxPQUFPO0FBQ3BCLGlCQUFPLFVBQVUsT0FBTyxrQkFBa0I7QUFBQSxRQUM1QztBQWlDQSwyQkFBbUIsT0FBTyxZQUFZO0FBQ3BDLHVCQUFhLE9BQU8sY0FBYyxhQUFhLGFBQWE7QUFDNUQsaUJBQU8sVUFBVSxPQUFPLG9CQUFvQixVQUFVO0FBQUEsUUFDeEQ7QUFvQkEsNEJBQW1CLE9BQU87QUFDeEIsaUJBQU8sVUFBVSxPQUFPLGtCQUFrQixrQkFBa0I7QUFBQSxRQUM5RDtBQThCQSwrQkFBdUIsT0FBTyxZQUFZO0FBQ3hDLHVCQUFhLE9BQU8sY0FBYyxhQUFhLGFBQWE7QUFDNUQsaUJBQU8sVUFBVSxPQUFPLGtCQUFrQixvQkFBb0IsVUFBVTtBQUFBLFFBQzFFO0FBMEJBLDRCQUFvQixRQUFRLFFBQVE7QUFDbEMsaUJBQU8sVUFBVSxRQUFRLGVBQWUsUUFBUSxRQUFRLEtBQUssTUFBTSxDQUFDO0FBQUEsUUFDdEU7QUFrQ0Esb0JBQVksT0FBTyxPQUFPO0FBQ3hCLGlCQUFPLFVBQVUsU0FBVSxVQUFVLFNBQVMsVUFBVTtBQUFBLFFBQzFEO0FBeUJBLFlBQUksS0FBSywwQkFBMEIsTUFBTTtBQXlCekMsWUFBSSxNQUFNLDBCQUEwQixTQUFTLE9BQU8sT0FBTztBQUN6RCxpQkFBTyxTQUFTO0FBQUEsUUFDbEIsQ0FBQztBQW9CRCxZQUFJLGNBQWMsZ0JBQWdCLFdBQVc7QUFBRSxpQkFBTztBQUFBLFFBQVcsRUFBRSxDQUFDLElBQUksa0JBQWtCLFNBQVMsT0FBTztBQUN4RyxpQkFBTyxhQUFhLEtBQUssS0FBSyxlQUFlLEtBQUssT0FBTyxRQUFRLEtBQy9ELENBQUMscUJBQXFCLEtBQUssT0FBTyxRQUFRO0FBQUEsUUFDOUM7QUF5QkEsWUFBSSxVQUFVLE9BQU07QUFtQnBCLFlBQUksZ0JBQWdCLG9CQUFvQixVQUFVLGlCQUFpQixJQUFJO0FBMkJ2RSw2QkFBcUIsT0FBTztBQUMxQixpQkFBTyxTQUFTLFFBQVEsU0FBUyxNQUFNLE1BQU0sS0FBSyxDQUFDLFdBQVcsS0FBSztBQUFBLFFBQ3JFO0FBMkJBLG1DQUEyQixPQUFPO0FBQ2hDLGlCQUFPLGFBQWEsS0FBSyxLQUFLLFlBQVksS0FBSztBQUFBLFFBQ2pEO0FBbUJBLDJCQUFtQixPQUFPO0FBQ3hCLGlCQUFPLFVBQVUsUUFBUSxVQUFVLFNBQ2hDLGFBQWEsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLO0FBQUEsUUFDakQ7QUFtQkEsWUFBSSxXQUFXLGtCQUFrQjtBQW1CakMsWUFBSSxTQUFTLGFBQWEsVUFBVSxVQUFVLElBQUk7QUFtQmxELDJCQUFtQixPQUFPO0FBQ3hCLGlCQUFPLGFBQWEsS0FBSyxLQUFLLE1BQU0sYUFBYSxLQUFLLENBQUMsY0FBYyxLQUFLO0FBQUEsUUFDNUU7QUFtQ0EseUJBQWlCLE9BQU87QUFDdEIsY0FBSSxTQUFTLE1BQU07QUFDakIsbUJBQU87QUFBQSxVQUNUO0FBQ0EsY0FBSSxZQUFZLEtBQUssS0FDaEIsU0FBUSxLQUFLLEtBQUssT0FBTyxTQUFTLFlBQVksT0FBTyxNQUFNLFVBQVUsY0FDcEUsU0FBUyxLQUFLLEtBQUssYUFBYSxLQUFLLEtBQUssWUFBWSxLQUFLLElBQUk7QUFDbkUsbUJBQU8sQ0FBQyxNQUFNO0FBQUEsVUFDaEI7QUFDQSxjQUFJLE1BQU0sT0FBTyxLQUFLO0FBQ3RCLGNBQUksT0FBTyxVQUFVLE9BQU8sUUFBUTtBQUNsQyxtQkFBTyxDQUFDLE1BQU07QUFBQSxVQUNoQjtBQUNBLGNBQUksWUFBWSxLQUFLLEdBQUc7QUFDdEIsbUJBQU8sQ0FBQyxTQUFTLEtBQUssRUFBRTtBQUFBLFVBQzFCO0FBQ0EsbUJBQVMsT0FBTyxPQUFPO0FBQ3JCLGdCQUFJLGVBQWUsS0FBSyxPQUFPLEdBQUcsR0FBRztBQUNuQyxxQkFBTztBQUFBLFlBQ1Q7QUFBQSxVQUNGO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBOEJBLHlCQUFpQixPQUFPLE9BQU87QUFDN0IsaUJBQU8sWUFBWSxPQUFPLEtBQUs7QUFBQSxRQUNqQztBQWtDQSw2QkFBcUIsT0FBTyxPQUFPLFlBQVk7QUFDN0MsdUJBQWEsT0FBTyxjQUFjLGFBQWEsYUFBYTtBQUM1RCxjQUFJLFVBQVMsYUFBYSxXQUFXLE9BQU8sS0FBSyxJQUFJO0FBQ3JELGlCQUFPLFlBQVcsYUFBWSxZQUFZLE9BQU8sT0FBTyxZQUFXLFVBQVUsSUFBSSxDQUFDLENBQUM7QUFBQSxRQUNyRjtBQW9CQSx5QkFBaUIsT0FBTztBQUN0QixjQUFJLENBQUMsYUFBYSxLQUFLLEdBQUc7QUFDeEIsbUJBQU87QUFBQSxVQUNUO0FBQ0EsY0FBSSxNQUFNLFdBQVcsS0FBSztBQUMxQixpQkFBTyxPQUFPLFlBQVksT0FBTyxhQUM5QixPQUFPLE1BQU0sV0FBVyxZQUFZLE9BQU8sTUFBTSxRQUFRLFlBQVksQ0FBQyxjQUFjLEtBQUs7QUFBQSxRQUM5RjtBQTRCQSwyQkFBa0IsT0FBTztBQUN2QixpQkFBTyxPQUFPLFNBQVMsWUFBWSxlQUFlLEtBQUs7QUFBQSxRQUN6RDtBQW1CQSw0QkFBb0IsT0FBTztBQUN6QixjQUFJLENBQUMsU0FBUyxLQUFLLEdBQUc7QUFDcEIsbUJBQU87QUFBQSxVQUNUO0FBR0EsY0FBSSxNQUFNLFdBQVcsS0FBSztBQUMxQixpQkFBTyxPQUFPLFdBQVcsT0FBTyxVQUFVLE9BQU8sWUFBWSxPQUFPO0FBQUEsUUFDdEU7QUE0QkEsMkJBQW1CLE9BQU87QUFDeEIsaUJBQU8sT0FBTyxTQUFTLFlBQVksU0FBUyxVQUFVLEtBQUs7QUFBQSxRQUM3RDtBQTRCQSwwQkFBa0IsT0FBTztBQUN2QixpQkFBTyxPQUFPLFNBQVMsWUFDckIsUUFBUSxNQUFNLFFBQVEsS0FBSyxLQUFLLFNBQVM7QUFBQSxRQUM3QztBQTJCQSwwQkFBa0IsT0FBTztBQUN2QixjQUFJLFFBQU8sT0FBTztBQUNsQixpQkFBTyxTQUFTLFFBQVMsVUFBUSxZQUFZLFNBQVE7QUFBQSxRQUN2RDtBQTBCQSw4QkFBc0IsT0FBTztBQUMzQixpQkFBTyxTQUFTLFFBQVEsT0FBTyxTQUFTO0FBQUEsUUFDMUM7QUFtQkEsWUFBSSxRQUFRLFlBQVksVUFBVSxTQUFTLElBQUk7QUE4Qi9DLHlCQUFpQixRQUFRLFFBQVE7QUFDL0IsaUJBQU8sV0FBVyxVQUFVLFlBQVksUUFBUSxRQUFRLGFBQWEsTUFBTSxDQUFDO0FBQUEsUUFDOUU7QUFrQ0EsNkJBQXFCLFFBQVEsUUFBUSxZQUFZO0FBQy9DLHVCQUFhLE9BQU8sY0FBYyxhQUFhLGFBQWE7QUFDNUQsaUJBQU8sWUFBWSxRQUFRLFFBQVEsYUFBYSxNQUFNLEdBQUcsVUFBVTtBQUFBLFFBQ3JFO0FBOEJBLHdCQUFlLE9BQU87QUFJcEIsaUJBQU8sU0FBUyxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQUEsUUFDdEM7QUE0QkEsMEJBQWtCLE9BQU87QUFDdkIsY0FBSSxXQUFXLEtBQUssR0FBRztBQUNyQixrQkFBTSxJQUFJLE9BQU0sZUFBZTtBQUFBLFVBQ2pDO0FBQ0EsaUJBQU8sYUFBYSxLQUFLO0FBQUEsUUFDM0I7QUFtQkEsd0JBQWdCLE9BQU87QUFDckIsaUJBQU8sVUFBVTtBQUFBLFFBQ25CO0FBc0JBLHVCQUFlLE9BQU87QUFDcEIsaUJBQU8sU0FBUztBQUFBLFFBQ2xCO0FBNEJBLDBCQUFrQixPQUFPO0FBQ3ZCLGlCQUFPLE9BQU8sU0FBUyxZQUNwQixhQUFhLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSztBQUFBLFFBQ2pEO0FBOEJBLCtCQUF1QixPQUFPO0FBQzVCLGNBQUksQ0FBQyxhQUFhLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXO0FBQzFELG1CQUFPO0FBQUEsVUFDVDtBQUNBLGNBQUksUUFBUSxhQUFhLEtBQUs7QUFDOUIsY0FBSSxVQUFVLE1BQU07QUFDbEIsbUJBQU87QUFBQSxVQUNUO0FBQ0EsY0FBSSxPQUFPLGVBQWUsS0FBSyxPQUFPLGFBQWEsS0FBSyxNQUFNO0FBQzlELGlCQUFPLE9BQU8sUUFBUSxjQUFjLGdCQUFnQixRQUNsRCxhQUFhLEtBQUssSUFBSSxLQUFLO0FBQUEsUUFDL0I7QUFtQkEsWUFBSSxXQUFXLGVBQWUsVUFBVSxZQUFZLElBQUk7QUE2QnhELCtCQUF1QixPQUFPO0FBQzVCLGlCQUFPLFVBQVUsS0FBSyxLQUFLLFNBQVMsQ0FBQyxvQkFBb0IsU0FBUztBQUFBLFFBQ3BFO0FBbUJBLFlBQUksUUFBUSxZQUFZLFVBQVUsU0FBUyxJQUFJO0FBbUIvQywwQkFBa0IsT0FBTztBQUN2QixpQkFBTyxPQUFPLFNBQVMsWUFDcEIsQ0FBQyxRQUFRLEtBQUssS0FBSyxhQUFhLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSztBQUFBLFFBQ3BFO0FBbUJBLDBCQUFrQixPQUFPO0FBQ3ZCLGlCQUFPLE9BQU8sU0FBUyxZQUNwQixhQUFhLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSztBQUFBLFFBQ2pEO0FBbUJBLFlBQUksZUFBZSxtQkFBbUIsVUFBVSxnQkFBZ0IsSUFBSTtBQW1CcEUsNkJBQXFCLE9BQU87QUFDMUIsaUJBQU8sVUFBVTtBQUFBLFFBQ25CO0FBbUJBLDJCQUFtQixPQUFPO0FBQ3hCLGlCQUFPLGFBQWEsS0FBSyxLQUFLLE9BQU8sS0FBSyxLQUFLO0FBQUEsUUFDakQ7QUFtQkEsMkJBQW1CLE9BQU87QUFDeEIsaUJBQU8sYUFBYSxLQUFLLEtBQUssV0FBVyxLQUFLLEtBQUs7QUFBQSxRQUNyRDtBQXlCQSxZQUFJLEtBQUssMEJBQTBCLE1BQU07QUF5QnpDLFlBQUksTUFBTSwwQkFBMEIsU0FBUyxPQUFPLE9BQU87QUFDekQsaUJBQU8sU0FBUztBQUFBLFFBQ2xCLENBQUM7QUF5QkQseUJBQWlCLE9BQU87QUFDdEIsY0FBSSxDQUFDLE9BQU87QUFDVixtQkFBTyxDQUFDO0FBQUEsVUFDVjtBQUNBLGNBQUksWUFBWSxLQUFLLEdBQUc7QUFDdEIsbUJBQU8sU0FBUyxLQUFLLElBQUksY0FBYyxLQUFLLElBQUksVUFBVSxLQUFLO0FBQUEsVUFDakU7QUFDQSxjQUFJLGVBQWUsTUFBTSxjQUFjO0FBQ3JDLG1CQUFPLGdCQUFnQixNQUFNLGFBQWEsQ0FBQztBQUFBLFVBQzdDO0FBQ0EsY0FBSSxNQUFNLE9BQU8sS0FBSyxHQUNsQixPQUFPLE9BQU8sU0FBUyxhQUFjLE9BQU8sU0FBUyxhQUFhO0FBRXRFLGlCQUFPLEtBQUssS0FBSztBQUFBLFFBQ25CO0FBeUJBLDBCQUFrQixPQUFPO0FBQ3ZCLGNBQUksQ0FBQyxPQUFPO0FBQ1YsbUJBQU8sVUFBVSxJQUFJLFFBQVE7QUFBQSxVQUMvQjtBQUNBLGtCQUFRLFNBQVMsS0FBSztBQUN0QixjQUFJLFVBQVUsWUFBWSxVQUFVLENBQUMsVUFBVTtBQUM3QyxnQkFBSSxPQUFRLFFBQVEsSUFBSSxLQUFLO0FBQzdCLG1CQUFPLE9BQU87QUFBQSxVQUNoQjtBQUNBLGlCQUFPLFVBQVUsUUFBUSxRQUFRO0FBQUEsUUFDbkM7QUE0QkEsMkJBQW1CLE9BQU87QUFDeEIsY0FBSSxVQUFTLFNBQVMsS0FBSyxHQUN2QixZQUFZLFVBQVM7QUFFekIsaUJBQU8sWUFBVyxVQUFVLFlBQVksVUFBUyxZQUFZLFVBQVU7QUFBQSxRQUN6RTtBQTZCQSwwQkFBa0IsT0FBTztBQUN2QixpQkFBTyxRQUFRLFVBQVUsVUFBVSxLQUFLLEdBQUcsR0FBRyxnQkFBZ0IsSUFBSTtBQUFBLFFBQ3BFO0FBeUJBLDBCQUFrQixPQUFPO0FBQ3ZCLGNBQUksT0FBTyxTQUFTLFVBQVU7QUFDNUIsbUJBQU87QUFBQSxVQUNUO0FBQ0EsY0FBSSxTQUFTLEtBQUssR0FBRztBQUNuQixtQkFBTztBQUFBLFVBQ1Q7QUFDQSxjQUFJLFNBQVMsS0FBSyxHQUFHO0FBQ25CLGdCQUFJLFFBQVEsT0FBTyxNQUFNLFdBQVcsYUFBYSxNQUFNLFFBQVEsSUFBSTtBQUNuRSxvQkFBUSxTQUFTLEtBQUssSUFBSyxRQUFRLEtBQU07QUFBQSxVQUMzQztBQUNBLGNBQUksT0FBTyxTQUFTLFVBQVU7QUFDNUIsbUJBQU8sVUFBVSxJQUFJLFFBQVEsQ0FBQztBQUFBLFVBQ2hDO0FBQ0Esa0JBQVEsU0FBUyxLQUFLO0FBQ3RCLGNBQUksV0FBVyxXQUFXLEtBQUssS0FBSztBQUNwQyxpQkFBUSxZQUFZLFVBQVUsS0FBSyxLQUFLLElBQ3BDLGFBQWEsTUFBTSxNQUFNLENBQUMsR0FBRyxXQUFXLElBQUksQ0FBQyxJQUM1QyxXQUFXLEtBQUssS0FBSyxJQUFJLE1BQU0sQ0FBQztBQUFBLFFBQ3ZDO0FBMEJBLCtCQUF1QixPQUFPO0FBQzVCLGlCQUFPLFdBQVcsT0FBTyxPQUFPLEtBQUssQ0FBQztBQUFBLFFBQ3hDO0FBMEJBLCtCQUF1QixPQUFPO0FBQzVCLGlCQUFPLFFBQ0gsVUFBVSxVQUFVLEtBQUssR0FBRyxDQUFDLGtCQUFrQixnQkFBZ0IsSUFDOUQsVUFBVSxJQUFJLFFBQVE7QUFBQSxRQUM3QjtBQXVCQSwwQkFBa0IsT0FBTztBQUN2QixpQkFBTyxTQUFTLE9BQU8sS0FBSyxhQUFhLEtBQUs7QUFBQSxRQUNoRDtBQW9DQSxZQUFJLFVBQVMsZUFBZSxTQUFTLFFBQVEsUUFBUTtBQUNuRCxjQUFJLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxHQUFHO0FBQzlDLHVCQUFXLFFBQVEsS0FBSyxNQUFNLEdBQUcsTUFBTTtBQUN2QztBQUFBLFVBQ0Y7QUFDQSxtQkFBUyxPQUFPLFFBQVE7QUFDdEIsZ0JBQUksZUFBZSxLQUFLLFFBQVEsR0FBRyxHQUFHO0FBQ3BDLDBCQUFZLFFBQVEsS0FBSyxPQUFPLElBQUk7QUFBQSxZQUN0QztBQUFBLFVBQ0Y7QUFBQSxRQUNGLENBQUM7QUFpQ0QsWUFBSSxXQUFXLGVBQWUsU0FBUyxRQUFRLFFBQVE7QUFDckQscUJBQVcsUUFBUSxPQUFPLE1BQU0sR0FBRyxNQUFNO0FBQUEsUUFDM0MsQ0FBQztBQStCRCxZQUFJLGVBQWUsZUFBZSxTQUFTLFFBQVEsUUFBUSxVQUFVLFlBQVk7QUFDL0UscUJBQVcsUUFBUSxPQUFPLE1BQU0sR0FBRyxRQUFRLFVBQVU7QUFBQSxRQUN2RCxDQUFDO0FBOEJELFlBQUksYUFBYSxlQUFlLFNBQVMsUUFBUSxRQUFRLFVBQVUsWUFBWTtBQUM3RSxxQkFBVyxRQUFRLEtBQUssTUFBTSxHQUFHLFFBQVEsVUFBVTtBQUFBLFFBQ3JELENBQUM7QUFtQkQsWUFBSSxLQUFLLFNBQVMsTUFBTTtBQW9DeEIseUJBQWdCLFdBQVcsWUFBWTtBQUNyQyxjQUFJLFVBQVMsV0FBVyxTQUFTO0FBQ2pDLGlCQUFPLGNBQWMsT0FBTyxVQUFTLFdBQVcsU0FBUSxVQUFVO0FBQUEsUUFDcEU7QUF1QkEsWUFBSSxXQUFXLFNBQVMsU0FBUyxRQUFRLFNBQVM7QUFDaEQsbUJBQVMsUUFBTyxNQUFNO0FBRXRCLGNBQUksU0FBUTtBQUNaLGNBQUksU0FBUyxRQUFRO0FBQ3JCLGNBQUksUUFBUSxTQUFTLElBQUksUUFBUSxLQUFLO0FBRXRDLGNBQUksU0FBUyxlQUFlLFFBQVEsSUFBSSxRQUFRLElBQUksS0FBSyxHQUFHO0FBQzFELHFCQUFTO0FBQUEsVUFDWDtBQUVBLGlCQUFPLEVBQUUsU0FBUSxRQUFRO0FBQ3ZCLGdCQUFJLFNBQVMsUUFBUTtBQUNyQixnQkFBSSxRQUFRLE9BQU8sTUFBTTtBQUN6QixnQkFBSSxhQUFhO0FBQ2pCLGdCQUFJLGNBQWMsTUFBTTtBQUV4QixtQkFBTyxFQUFFLGFBQWEsYUFBYTtBQUNqQyxrQkFBSSxNQUFNLE1BQU07QUFDaEIsa0JBQUksUUFBUSxPQUFPO0FBRW5CLGtCQUFJLFVBQVUsY0FDVCxHQUFHLE9BQU8sWUFBWSxJQUFJLEtBQUssQ0FBQyxlQUFlLEtBQUssUUFBUSxHQUFHLEdBQUk7QUFDdEUsdUJBQU8sT0FBTyxPQUFPO0FBQUEsY0FDdkI7QUFBQSxZQUNGO0FBQUEsVUFDRjtBQUVBLGlCQUFPO0FBQUEsUUFDVCxDQUFDO0FBcUJELFlBQUksZUFBZSxTQUFTLFNBQVMsTUFBTTtBQUN6QyxlQUFLLEtBQUssWUFBVyxtQkFBbUI7QUFDeEMsaUJBQU8sTUFBTSxXQUFXLFlBQVcsSUFBSTtBQUFBLFFBQ3pDLENBQUM7QUFxQ0QseUJBQWlCLFFBQVEsV0FBVztBQUNsQyxpQkFBTyxZQUFZLFFBQVEsWUFBWSxXQUFXLENBQUMsR0FBRyxVQUFVO0FBQUEsUUFDbEU7QUFxQ0EsNkJBQXFCLFFBQVEsV0FBVztBQUN0QyxpQkFBTyxZQUFZLFFBQVEsWUFBWSxXQUFXLENBQUMsR0FBRyxlQUFlO0FBQUEsUUFDdkU7QUE4QkEsdUJBQWUsUUFBUSxXQUFVO0FBQy9CLGlCQUFPLFVBQVUsT0FDYixTQUNBLFFBQVEsUUFBUSxZQUFZLFdBQVUsQ0FBQyxHQUFHLE1BQU07QUFBQSxRQUN0RDtBQTRCQSw0QkFBb0IsUUFBUSxXQUFVO0FBQ3BDLGlCQUFPLFVBQVUsT0FDYixTQUNBLGFBQWEsUUFBUSxZQUFZLFdBQVUsQ0FBQyxHQUFHLE1BQU07QUFBQSxRQUMzRDtBQThCQSx3QkFBZ0IsUUFBUSxXQUFVO0FBQ2hDLGlCQUFPLFVBQVUsV0FBVyxRQUFRLFlBQVksV0FBVSxDQUFDLENBQUM7QUFBQSxRQUM5RDtBQTRCQSw2QkFBcUIsUUFBUSxXQUFVO0FBQ3JDLGlCQUFPLFVBQVUsZ0JBQWdCLFFBQVEsWUFBWSxXQUFVLENBQUMsQ0FBQztBQUFBLFFBQ25FO0FBeUJBLDJCQUFtQixRQUFRO0FBQ3pCLGlCQUFPLFVBQVUsT0FBTyxDQUFDLElBQUksY0FBYyxRQUFRLEtBQUssTUFBTSxDQUFDO0FBQUEsUUFDakU7QUF5QkEsNkJBQXFCLFFBQVE7QUFDM0IsaUJBQU8sVUFBVSxPQUFPLENBQUMsSUFBSSxjQUFjLFFBQVEsT0FBTyxNQUFNLENBQUM7QUFBQSxRQUNuRTtBQTJCQSxzQkFBYSxRQUFRLE9BQU0sY0FBYztBQUN2QyxjQUFJLFVBQVMsVUFBVSxPQUFPLGFBQVksUUFBUSxRQUFRLEtBQUk7QUFDOUQsaUJBQU8sWUFBVyxhQUFZLGVBQWU7QUFBQSxRQUMvQztBQTZCQSxxQkFBYSxRQUFRLE9BQU07QUFDekIsaUJBQU8sVUFBVSxRQUFRLFFBQVEsUUFBUSxPQUFNLE9BQU87QUFBQSxRQUN4RDtBQTRCQSx1QkFBZSxRQUFRLE9BQU07QUFDM0IsaUJBQU8sVUFBVSxRQUFRLFFBQVEsUUFBUSxPQUFNLFNBQVM7QUFBQSxRQUMxRDtBQW9CQSxZQUFJLFNBQVMsZUFBZSxTQUFTLFNBQVEsT0FBTyxLQUFLO0FBQ3ZELGNBQUksU0FBUyxRQUNULE9BQU8sTUFBTSxZQUFZLFlBQVk7QUFDdkMsb0JBQVEscUJBQXFCLEtBQUssS0FBSztBQUFBLFVBQ3pDO0FBRUEsa0JBQU8sU0FBUztBQUFBLFFBQ2xCLEdBQUcsU0FBUyxTQUFRLENBQUM7QUE0QnJCLFlBQUksV0FBVyxlQUFlLFNBQVMsU0FBUSxPQUFPLEtBQUs7QUFDekQsY0FBSSxTQUFTLFFBQ1QsT0FBTyxNQUFNLFlBQVksWUFBWTtBQUN2QyxvQkFBUSxxQkFBcUIsS0FBSyxLQUFLO0FBQUEsVUFDekM7QUFFQSxjQUFJLGVBQWUsS0FBSyxTQUFRLEtBQUssR0FBRztBQUN0QyxvQkFBTyxPQUFPLEtBQUssR0FBRztBQUFBLFVBQ3hCLE9BQU87QUFDTCxvQkFBTyxTQUFTLENBQUMsR0FBRztBQUFBLFVBQ3RCO0FBQUEsUUFDRixHQUFHLFdBQVc7QUFvQmQsWUFBSSxTQUFTLFNBQVMsVUFBVTtBQThCaEMsc0JBQWMsUUFBUTtBQUNwQixpQkFBTyxZQUFZLE1BQU0sSUFBSSxjQUFjLE1BQU0sSUFBSSxTQUFTLE1BQU07QUFBQSxRQUN0RTtBQXlCQSx3QkFBZ0IsUUFBUTtBQUN0QixpQkFBTyxZQUFZLE1BQU0sSUFBSSxjQUFjLFFBQVEsSUFBSSxJQUFJLFdBQVcsTUFBTTtBQUFBLFFBQzlFO0FBdUJBLHlCQUFpQixRQUFRLFdBQVU7QUFDakMsY0FBSSxVQUFTLENBQUM7QUFDZCxzQkFBVyxZQUFZLFdBQVUsQ0FBQztBQUVsQyxxQkFBVyxRQUFRLFNBQVMsT0FBTyxLQUFLLFNBQVE7QUFDOUMsNEJBQWdCLFNBQVEsVUFBUyxPQUFPLEtBQUssT0FBTSxHQUFHLEtBQUs7QUFBQSxVQUM3RCxDQUFDO0FBQ0QsaUJBQU87QUFBQSxRQUNUO0FBOEJBLDJCQUFtQixRQUFRLFdBQVU7QUFDbkMsY0FBSSxVQUFTLENBQUM7QUFDZCxzQkFBVyxZQUFZLFdBQVUsQ0FBQztBQUVsQyxxQkFBVyxRQUFRLFNBQVMsT0FBTyxLQUFLLFNBQVE7QUFDOUMsNEJBQWdCLFNBQVEsS0FBSyxVQUFTLE9BQU8sS0FBSyxPQUFNLENBQUM7QUFBQSxVQUMzRCxDQUFDO0FBQ0QsaUJBQU87QUFBQSxRQUNUO0FBaUNBLFlBQUksUUFBUSxlQUFlLFNBQVMsUUFBUSxRQUFRLFVBQVU7QUFDNUQsb0JBQVUsUUFBUSxRQUFRLFFBQVE7QUFBQSxRQUNwQyxDQUFDO0FBaUNELFlBQUksWUFBWSxlQUFlLFNBQVMsUUFBUSxRQUFRLFVBQVUsWUFBWTtBQUM1RSxvQkFBVSxRQUFRLFFBQVEsVUFBVSxVQUFVO0FBQUEsUUFDaEQsQ0FBQztBQXNCRCxZQUFJLE9BQU8sU0FBUyxTQUFTLFFBQVEsT0FBTztBQUMxQyxjQUFJLFVBQVMsQ0FBQztBQUNkLGNBQUksVUFBVSxNQUFNO0FBQ2xCLG1CQUFPO0FBQUEsVUFDVDtBQUNBLGNBQUksU0FBUztBQUNiLGtCQUFRLFNBQVMsT0FBTyxTQUFTLE9BQU07QUFDckMsb0JBQU8sU0FBUyxPQUFNLE1BQU07QUFDNUIsc0JBQVcsVUFBUyxNQUFLLFNBQVM7QUFDbEMsbUJBQU87QUFBQSxVQUNULENBQUM7QUFDRCxxQkFBVyxRQUFRLGFBQWEsTUFBTSxHQUFHLE9BQU07QUFDL0MsY0FBSSxRQUFRO0FBQ1Ysc0JBQVMsVUFBVSxTQUFRLGtCQUFrQixrQkFBa0Isb0JBQW9CLGVBQWU7QUFBQSxVQUNwRztBQUNBLGNBQUksU0FBUyxNQUFNO0FBQ25CLGlCQUFPLFVBQVU7QUFDZixzQkFBVSxTQUFRLE1BQU0sT0FBTztBQUFBLFVBQ2pDO0FBQ0EsaUJBQU87QUFBQSxRQUNULENBQUM7QUFzQkQsd0JBQWdCLFFBQVEsV0FBVztBQUNqQyxpQkFBTyxPQUFPLFFBQVEsT0FBTyxZQUFZLFNBQVMsQ0FBQyxDQUFDO0FBQUEsUUFDdEQ7QUFtQkEsWUFBSSxPQUFPLFNBQVMsU0FBUyxRQUFRLE9BQU87QUFDMUMsaUJBQU8sVUFBVSxPQUFPLENBQUMsSUFBSSxTQUFTLFFBQVEsS0FBSztBQUFBLFFBQ3JELENBQUM7QUFvQkQsd0JBQWdCLFFBQVEsV0FBVztBQUNqQyxjQUFJLFVBQVUsTUFBTTtBQUNsQixtQkFBTyxDQUFDO0FBQUEsVUFDVjtBQUNBLGNBQUksUUFBUSxTQUFTLGFBQWEsTUFBTSxHQUFHLFNBQVMsTUFBTTtBQUN4RCxtQkFBTyxDQUFDLElBQUk7QUFBQSxVQUNkLENBQUM7QUFDRCxzQkFBWSxZQUFZLFNBQVM7QUFDakMsaUJBQU8sV0FBVyxRQUFRLE9BQU8sU0FBUyxPQUFPLE9BQU07QUFDckQsbUJBQU8sVUFBVSxPQUFPLE1BQUssRUFBRTtBQUFBLFVBQ2pDLENBQUM7QUFBQSxRQUNIO0FBK0JBLHdCQUFnQixRQUFRLE9BQU0sY0FBYztBQUMxQyxrQkFBTyxTQUFTLE9BQU0sTUFBTTtBQUU1QixjQUFJLFNBQVEsSUFDUixTQUFTLE1BQUs7QUFHbEIsY0FBSSxDQUFDLFFBQVE7QUFDWCxxQkFBUztBQUNULHFCQUFTO0FBQUEsVUFDWDtBQUNBLGlCQUFPLEVBQUUsU0FBUSxRQUFRO0FBQ3ZCLGdCQUFJLFFBQVEsVUFBVSxPQUFPLGFBQVksT0FBTyxNQUFNLE1BQUssT0FBTTtBQUNqRSxnQkFBSSxVQUFVLFlBQVc7QUFDdkIsdUJBQVE7QUFDUixzQkFBUTtBQUFBLFlBQ1Y7QUFDQSxxQkFBUyxXQUFXLEtBQUssSUFBSSxNQUFNLEtBQUssTUFBTSxJQUFJO0FBQUEsVUFDcEQ7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUE4QkEsc0JBQWEsUUFBUSxPQUFNLE9BQU87QUFDaEMsaUJBQU8sVUFBVSxPQUFPLFNBQVMsUUFBUSxRQUFRLE9BQU0sS0FBSztBQUFBLFFBQzlEO0FBMEJBLHlCQUFpQixRQUFRLE9BQU0sT0FBTyxZQUFZO0FBQ2hELHVCQUFhLE9BQU8sY0FBYyxhQUFhLGFBQWE7QUFDNUQsaUJBQU8sVUFBVSxPQUFPLFNBQVMsUUFBUSxRQUFRLE9BQU0sT0FBTyxVQUFVO0FBQUEsUUFDMUU7QUEwQkEsWUFBSSxVQUFVLGNBQWMsSUFBSTtBQTBCaEMsWUFBSSxZQUFZLGNBQWMsTUFBTTtBQWdDcEMsNEJBQW1CLFFBQVEsV0FBVSxhQUFhO0FBQ2hELGNBQUksUUFBUSxRQUFRLE1BQU0sR0FDdEIsWUFBWSxTQUFTLFNBQVMsTUFBTSxLQUFLLGFBQWEsTUFBTTtBQUVoRSxzQkFBVyxZQUFZLFdBQVUsQ0FBQztBQUNsQyxjQUFJLGVBQWUsTUFBTTtBQUN2QixnQkFBSSxPQUFPLFVBQVUsT0FBTztBQUM1QixnQkFBSSxXQUFXO0FBQ2IsNEJBQWMsUUFBUSxJQUFJLFNBQU8sQ0FBQztBQUFBLFlBQ3BDLFdBQ1MsU0FBUyxNQUFNLEdBQUc7QUFDekIsNEJBQWMsV0FBVyxJQUFJLElBQUksV0FBVyxhQUFhLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFBQSxZQUN2RSxPQUNLO0FBQ0gsNEJBQWMsQ0FBQztBQUFBLFlBQ2pCO0FBQUEsVUFDRjtBQUNBLFVBQUMsYUFBWSxZQUFZLFlBQVksUUFBUSxTQUFTLE9BQU8sUUFBTyxTQUFRO0FBQzFFLG1CQUFPLFVBQVMsYUFBYSxPQUFPLFFBQU8sT0FBTTtBQUFBLFVBQ25ELENBQUM7QUFDRCxpQkFBTztBQUFBLFFBQ1Q7QUE2QkEsdUJBQWUsUUFBUSxPQUFNO0FBQzNCLGlCQUFPLFVBQVUsT0FBTyxPQUFPLFVBQVUsUUFBUSxLQUFJO0FBQUEsUUFDdkQ7QUE2QkEseUJBQWdCLFFBQVEsT0FBTSxTQUFTO0FBQ3JDLGlCQUFPLFVBQVUsT0FBTyxTQUFTLFdBQVcsUUFBUSxPQUFNLGFBQWEsT0FBTyxDQUFDO0FBQUEsUUFDakY7QUEwQkEsNEJBQW9CLFFBQVEsT0FBTSxTQUFTLFlBQVk7QUFDckQsdUJBQWEsT0FBTyxjQUFjLGFBQWEsYUFBYTtBQUM1RCxpQkFBTyxVQUFVLE9BQU8sU0FBUyxXQUFXLFFBQVEsT0FBTSxhQUFhLE9BQU8sR0FBRyxVQUFVO0FBQUEsUUFDN0Y7QUE0QkEsd0JBQWdCLFFBQVE7QUFDdEIsaUJBQU8sVUFBVSxPQUFPLENBQUMsSUFBSSxXQUFXLFFBQVEsS0FBSyxNQUFNLENBQUM7QUFBQSxRQUM5RDtBQTBCQSwwQkFBa0IsUUFBUTtBQUN4QixpQkFBTyxVQUFVLE9BQU8sQ0FBQyxJQUFJLFdBQVcsUUFBUSxPQUFPLE1BQU0sQ0FBQztBQUFBLFFBQ2hFO0FBdUJBLHVCQUFlLFNBQVEsUUFBTyxPQUFPO0FBQ25DLGNBQUksVUFBVSxZQUFXO0FBQ3ZCLG9CQUFRO0FBQ1IscUJBQVE7QUFBQSxVQUNWO0FBQ0EsY0FBSSxVQUFVLFlBQVc7QUFDdkIsb0JBQVEsU0FBUyxLQUFLO0FBQ3RCLG9CQUFRLFVBQVUsUUFBUSxRQUFRO0FBQUEsVUFDcEM7QUFDQSxjQUFJLFdBQVUsWUFBVztBQUN2QixxQkFBUSxTQUFTLE1BQUs7QUFDdEIscUJBQVEsV0FBVSxTQUFRLFNBQVE7QUFBQSxVQUNwQztBQUNBLGlCQUFPLFVBQVUsU0FBUyxPQUFNLEdBQUcsUUFBTyxLQUFLO0FBQUEsUUFDakQ7QUF3Q0EseUJBQWlCLFNBQVEsUUFBTyxLQUFLO0FBQ25DLG1CQUFRLFNBQVMsTUFBSztBQUN0QixjQUFJLFFBQVEsWUFBVztBQUNyQixrQkFBTTtBQUNOLHFCQUFRO0FBQUEsVUFDVixPQUFPO0FBQ0wsa0JBQU0sU0FBUyxHQUFHO0FBQUEsVUFDcEI7QUFDQSxvQkFBUyxTQUFTLE9BQU07QUFDeEIsaUJBQU8sWUFBWSxTQUFRLFFBQU8sR0FBRztBQUFBLFFBQ3ZDO0FBaUNBLHdCQUFnQixRQUFPLE9BQU8sVUFBVTtBQUN0QyxjQUFJLFlBQVksT0FBTyxZQUFZLGFBQWEsZUFBZSxRQUFPLE9BQU8sUUFBUSxHQUFHO0FBQ3RGLG9CQUFRLFdBQVc7QUFBQSxVQUNyQjtBQUNBLGNBQUksYUFBYSxZQUFXO0FBQzFCLGdCQUFJLE9BQU8sU0FBUyxXQUFXO0FBQzdCLHlCQUFXO0FBQ1gsc0JBQVE7QUFBQSxZQUNWLFdBQ1MsT0FBTyxVQUFTLFdBQVc7QUFDbEMseUJBQVc7QUFDWCx1QkFBUTtBQUFBLFlBQ1Y7QUFBQSxVQUNGO0FBQ0EsY0FBSSxXQUFVLGNBQWEsVUFBVSxZQUFXO0FBQzlDLHFCQUFRO0FBQ1Isb0JBQVE7QUFBQSxVQUNWLE9BQ0s7QUFDSCxxQkFBUSxTQUFTLE1BQUs7QUFDdEIsZ0JBQUksVUFBVSxZQUFXO0FBQ3ZCLHNCQUFRO0FBQ1IsdUJBQVE7QUFBQSxZQUNWLE9BQU87QUFDTCxzQkFBUSxTQUFTLEtBQUs7QUFBQSxZQUN4QjtBQUFBLFVBQ0Y7QUFDQSxjQUFJLFNBQVEsT0FBTztBQUNqQixnQkFBSSxPQUFPO0FBQ1gscUJBQVE7QUFDUixvQkFBUTtBQUFBLFVBQ1Y7QUFDQSxjQUFJLFlBQVksU0FBUSxLQUFLLFFBQVEsR0FBRztBQUN0QyxnQkFBSSxPQUFPLGFBQWE7QUFDeEIsbUJBQU8sVUFBVSxTQUFTLE9BQVEsU0FBUSxTQUFRLGVBQWUsUUFBVSxTQUFPLElBQUksU0FBUyxFQUFFLElBQUssS0FBSztBQUFBLFVBQzdHO0FBQ0EsaUJBQU8sV0FBVyxRQUFPLEtBQUs7QUFBQSxRQUNoQztBQXdCQSxZQUFJLFlBQVksaUJBQWlCLFNBQVMsU0FBUSxNQUFNLFFBQU87QUFDN0QsaUJBQU8sS0FBSyxZQUFZO0FBQ3hCLGlCQUFPLFVBQVUsVUFBUSxXQUFXLElBQUksSUFBSTtBQUFBLFFBQzlDLENBQUM7QUFpQkQsNEJBQW9CLFFBQVE7QUFDMUIsaUJBQU8sV0FBVyxTQUFTLE1BQU0sRUFBRSxZQUFZLENBQUM7QUFBQSxRQUNsRDtBQW9CQSx3QkFBZ0IsUUFBUTtBQUN0QixtQkFBUyxTQUFTLE1BQU07QUFDeEIsaUJBQU8sVUFBVSxPQUFPLFFBQVEsU0FBUyxZQUFZLEVBQUUsUUFBUSxhQUFhLEVBQUU7QUFBQSxRQUNoRjtBQXlCQSwwQkFBa0IsUUFBUSxRQUFRLFVBQVU7QUFDMUMsbUJBQVMsU0FBUyxNQUFNO0FBQ3hCLG1CQUFTLGFBQWEsTUFBTTtBQUU1QixjQUFJLFNBQVMsT0FBTztBQUNwQixxQkFBVyxhQUFhLGFBQ3BCLFNBQ0EsVUFBVSxVQUFVLFFBQVEsR0FBRyxHQUFHLE1BQU07QUFFNUMsY0FBSSxNQUFNO0FBQ1Ysc0JBQVksT0FBTztBQUNuQixpQkFBTyxZQUFZLEtBQUssT0FBTyxNQUFNLFVBQVUsR0FBRyxLQUFLO0FBQUEsUUFDekQ7QUE4QkEsd0JBQWdCLFFBQVE7QUFDdEIsbUJBQVMsU0FBUyxNQUFNO0FBQ3hCLGlCQUFRLFVBQVUsbUJBQW1CLEtBQUssTUFBTSxJQUM1QyxPQUFPLFFBQVEsaUJBQWlCLGNBQWMsSUFDOUM7QUFBQSxRQUNOO0FBaUJBLDhCQUFzQixRQUFRO0FBQzVCLG1CQUFTLFNBQVMsTUFBTTtBQUN4QixpQkFBUSxVQUFVLGdCQUFnQixLQUFLLE1BQU0sSUFDekMsT0FBTyxRQUFRLGNBQWMsTUFBTSxJQUNuQztBQUFBLFFBQ047QUF1QkEsWUFBSSxZQUFZLGlCQUFpQixTQUFTLFNBQVEsTUFBTSxRQUFPO0FBQzdELGlCQUFPLFVBQVUsVUFBUSxNQUFNLE1BQU0sS0FBSyxZQUFZO0FBQUEsUUFDeEQsQ0FBQztBQXNCRCxZQUFJLFlBQVksaUJBQWlCLFNBQVMsU0FBUSxNQUFNLFFBQU87QUFDN0QsaUJBQU8sVUFBVSxVQUFRLE1BQU0sTUFBTSxLQUFLLFlBQVk7QUFBQSxRQUN4RCxDQUFDO0FBbUJELFlBQUksYUFBYSxnQkFBZ0IsYUFBYTtBQXlCOUMscUJBQWEsUUFBUSxRQUFRLE9BQU87QUFDbEMsbUJBQVMsU0FBUyxNQUFNO0FBQ3hCLG1CQUFTLFVBQVUsTUFBTTtBQUV6QixjQUFJLFlBQVksU0FBUyxXQUFXLE1BQU0sSUFBSTtBQUM5QyxjQUFJLENBQUMsVUFBVSxhQUFhLFFBQVE7QUFDbEMsbUJBQU87QUFBQSxVQUNUO0FBQ0EsY0FBSSxNQUFPLFVBQVMsYUFBYTtBQUNqQyxpQkFDRSxjQUFjLFlBQVksR0FBRyxHQUFHLEtBQUssSUFDckMsU0FDQSxjQUFjLFdBQVcsR0FBRyxHQUFHLEtBQUs7QUFBQSxRQUV4QztBQXlCQSx3QkFBZ0IsUUFBUSxRQUFRLE9BQU87QUFDckMsbUJBQVMsU0FBUyxNQUFNO0FBQ3hCLG1CQUFTLFVBQVUsTUFBTTtBQUV6QixjQUFJLFlBQVksU0FBUyxXQUFXLE1BQU0sSUFBSTtBQUM5QyxpQkFBUSxVQUFVLFlBQVksU0FDekIsU0FBUyxjQUFjLFNBQVMsV0FBVyxLQUFLLElBQ2pEO0FBQUEsUUFDTjtBQXlCQSwwQkFBa0IsUUFBUSxRQUFRLE9BQU87QUFDdkMsbUJBQVMsU0FBUyxNQUFNO0FBQ3hCLG1CQUFTLFVBQVUsTUFBTTtBQUV6QixjQUFJLFlBQVksU0FBUyxXQUFXLE1BQU0sSUFBSTtBQUM5QyxpQkFBUSxVQUFVLFlBQVksU0FDekIsY0FBYyxTQUFTLFdBQVcsS0FBSyxJQUFJLFNBQzVDO0FBQUEsUUFDTjtBQTBCQSwyQkFBa0IsUUFBUSxPQUFPLE9BQU87QUFDdEMsY0FBSSxTQUFTLFNBQVMsTUFBTTtBQUMxQixvQkFBUTtBQUFBLFVBQ1YsV0FBVyxPQUFPO0FBQ2hCLG9CQUFRLENBQUM7QUFBQSxVQUNYO0FBQ0EsaUJBQU8sZUFBZSxTQUFTLE1BQU0sRUFBRSxRQUFRLGFBQWEsRUFBRSxHQUFHLFNBQVMsQ0FBQztBQUFBLFFBQzdFO0FBd0JBLHdCQUFnQixRQUFRLEdBQUcsT0FBTztBQUNoQyxjQUFLLFFBQVEsZUFBZSxRQUFRLEdBQUcsS0FBSyxJQUFJLE1BQU0sWUFBWTtBQUNoRSxnQkFBSTtBQUFBLFVBQ04sT0FBTztBQUNMLGdCQUFJLFVBQVUsQ0FBQztBQUFBLFVBQ2pCO0FBQ0EsaUJBQU8sV0FBVyxTQUFTLE1BQU0sR0FBRyxDQUFDO0FBQUEsUUFDdkM7QUFxQkEsMkJBQW1CO0FBQ2pCLGNBQUksT0FBTyxXQUNQLFNBQVMsU0FBUyxLQUFLLEVBQUU7QUFFN0IsaUJBQU8sS0FBSyxTQUFTLElBQUksU0FBUyxPQUFPLFFBQVEsS0FBSyxJQUFJLEtBQUssRUFBRTtBQUFBLFFBQ25FO0FBdUJBLFlBQUksWUFBWSxpQkFBaUIsU0FBUyxTQUFRLE1BQU0sUUFBTztBQUM3RCxpQkFBTyxVQUFVLFVBQVEsTUFBTSxNQUFNLEtBQUssWUFBWTtBQUFBLFFBQ3hELENBQUM7QUFxQkQsdUJBQWUsUUFBUSxXQUFXLE9BQU87QUFDdkMsY0FBSSxTQUFTLE9BQU8sU0FBUyxZQUFZLGVBQWUsUUFBUSxXQUFXLEtBQUssR0FBRztBQUNqRix3QkFBWSxRQUFRO0FBQUEsVUFDdEI7QUFDQSxrQkFBUSxVQUFVLGFBQVksbUJBQW1CLFVBQVU7QUFDM0QsY0FBSSxDQUFDLE9BQU87QUFDVixtQkFBTyxDQUFDO0FBQUEsVUFDVjtBQUNBLG1CQUFTLFNBQVMsTUFBTTtBQUN4QixjQUFJLFVBQ0UsUUFBTyxhQUFhLFlBQ25CLGFBQWEsUUFBUSxDQUFDLFNBQVMsU0FBUyxJQUN4QztBQUNMLHdCQUFZLGFBQWEsU0FBUztBQUNsQyxnQkFBSSxDQUFDLGFBQWEsV0FBVyxNQUFNLEdBQUc7QUFDcEMscUJBQU8sVUFBVSxjQUFjLE1BQU0sR0FBRyxHQUFHLEtBQUs7QUFBQSxZQUNsRDtBQUFBLFVBQ0Y7QUFDQSxpQkFBTyxPQUFPLE1BQU0sV0FBVyxLQUFLO0FBQUEsUUFDdEM7QUF1QkEsWUFBSSxZQUFZLGlCQUFpQixTQUFTLFNBQVEsTUFBTSxRQUFPO0FBQzdELGlCQUFPLFVBQVUsVUFBUSxNQUFNLE1BQU0sV0FBVyxJQUFJO0FBQUEsUUFDdEQsQ0FBQztBQXlCRCw0QkFBb0IsUUFBUSxRQUFRLFVBQVU7QUFDNUMsbUJBQVMsU0FBUyxNQUFNO0FBQ3hCLHFCQUFXLFlBQVksT0FDbkIsSUFDQSxVQUFVLFVBQVUsUUFBUSxHQUFHLEdBQUcsT0FBTyxNQUFNO0FBRW5ELG1CQUFTLGFBQWEsTUFBTTtBQUM1QixpQkFBTyxPQUFPLE1BQU0sVUFBVSxXQUFXLE9BQU8sTUFBTSxLQUFLO0FBQUEsUUFDN0Q7QUEwR0EsMEJBQWtCLFFBQVEsU0FBUyxPQUFPO0FBSXhDLGNBQUksV0FBVyxPQUFPO0FBRXRCLGNBQUksU0FBUyxlQUFlLFFBQVEsU0FBUyxLQUFLLEdBQUc7QUFDbkQsc0JBQVU7QUFBQSxVQUNaO0FBQ0EsbUJBQVMsU0FBUyxNQUFNO0FBQ3hCLG9CQUFVLGFBQWEsQ0FBQyxHQUFHLFNBQVMsVUFBVSxzQkFBc0I7QUFFcEUsY0FBSSxVQUFVLGFBQWEsQ0FBQyxHQUFHLFFBQVEsU0FBUyxTQUFTLFNBQVMsc0JBQXNCLEdBQ3BGLGNBQWMsS0FBSyxPQUFPLEdBQzFCLGdCQUFnQixXQUFXLFNBQVMsV0FBVztBQUVuRCxjQUFJLFlBQ0EsY0FDQSxTQUFRLEdBQ1IsY0FBYyxRQUFRLGVBQWUsV0FDckMsU0FBUztBQUdiLGNBQUksZUFBZSxRQUNoQixTQUFRLFVBQVUsV0FBVyxTQUFTLE1BQ3ZDLFlBQVksU0FBUyxNQUNwQixpQkFBZ0IsZ0JBQWdCLGVBQWUsV0FBVyxTQUFTLE1BQ25FLFNBQVEsWUFBWSxXQUFXLFNBQVMsTUFDekMsR0FBRztBQU1MLGNBQUksWUFBWSxtQkFDYixnQkFBZSxLQUFLLFNBQVMsV0FBVyxJQUNwQyxTQUFRLFlBQVksSUFBSSxRQUFRLE9BQU8sR0FBRyxJQUMxQyw0QkFBNkIsRUFBRSxrQkFBbUIsT0FDbkQ7QUFFTixpQkFBTyxRQUFRLGNBQWMsU0FBUyxPQUFPLGFBQWEsa0JBQWtCLGlCQUFpQixlQUFlLFFBQVE7QUFDbEgsZ0NBQXFCLG9CQUFtQjtBQUd4QyxzQkFBVSxPQUFPLE1BQU0sUUFBTyxNQUFNLEVBQUUsUUFBUSxtQkFBbUIsZ0JBQWdCO0FBR2pGLGdCQUFJLGFBQWE7QUFDZiwyQkFBYTtBQUNiLHdCQUFVLGNBQWMsY0FBYztBQUFBLFlBQ3hDO0FBQ0EsZ0JBQUksZUFBZTtBQUNqQiw2QkFBZTtBQUNmLHdCQUFVLFNBQVMsZ0JBQWdCO0FBQUEsWUFDckM7QUFDQSxnQkFBSSxrQkFBa0I7QUFDcEIsd0JBQVUsbUJBQW1CLG1CQUFtQjtBQUFBLFlBQ2xEO0FBQ0EscUJBQVEsU0FBUyxNQUFNO0FBSXZCLG1CQUFPO0FBQUEsVUFDVCxDQUFDO0FBRUQsb0JBQVU7QUFJVixjQUFJLFdBQVcsZUFBZSxLQUFLLFNBQVMsVUFBVSxLQUFLLFFBQVE7QUFDbkUsY0FBSSxDQUFDLFVBQVU7QUFDYixxQkFBUyxtQkFBbUIsU0FBUztBQUFBLFVBQ3ZDLFdBR1MsMkJBQTJCLEtBQUssUUFBUSxHQUFHO0FBQ2xELGtCQUFNLElBQUksT0FBTSw0QkFBNEI7QUFBQSxVQUM5QztBQUdBLG1CQUFVLGdCQUFlLE9BQU8sUUFBUSxzQkFBc0IsRUFBRSxJQUFJLFFBQ2pFLFFBQVEscUJBQXFCLElBQUksRUFDakMsUUFBUSx1QkFBdUIsS0FBSztBQUd2QyxtQkFBUyxjQUFlLGFBQVksU0FBUyxVQUMxQyxZQUNHLEtBQ0EsMEJBRUosc0JBQ0MsY0FDSSxxQkFDQSxNQUVKLGdCQUNHLHlGQUVBLFNBRUosU0FDQTtBQUVGLGNBQUksVUFBUyxRQUFRLFdBQVc7QUFDOUIsbUJBQU8sVUFBUyxhQUFhLFlBQVksWUFBWSxNQUFNLEVBQ3hELE1BQU0sWUFBVyxhQUFhO0FBQUEsVUFDbkMsQ0FBQztBQUlELGtCQUFPLFNBQVM7QUFDaEIsY0FBSSxRQUFRLE9BQU0sR0FBRztBQUNuQixrQkFBTTtBQUFBLFVBQ1I7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUF1QkEseUJBQWlCLE9BQU87QUFDdEIsaUJBQU8sU0FBUyxLQUFLLEVBQUUsWUFBWTtBQUFBLFFBQ3JDO0FBdUJBLHlCQUFpQixPQUFPO0FBQ3RCLGlCQUFPLFNBQVMsS0FBSyxFQUFFLFlBQVk7QUFBQSxRQUNyQztBQXdCQSxzQkFBYyxRQUFRLE9BQU8sT0FBTztBQUNsQyxtQkFBUyxTQUFTLE1BQU07QUFDeEIsY0FBSSxVQUFXLFVBQVMsVUFBVSxhQUFZO0FBQzVDLG1CQUFPLFNBQVMsTUFBTTtBQUFBLFVBQ3hCO0FBQ0EsY0FBSSxDQUFDLFVBQVUsQ0FBRSxTQUFRLGFBQWEsS0FBSyxJQUFJO0FBQzdDLG1CQUFPO0FBQUEsVUFDVDtBQUNBLGNBQUksYUFBYSxjQUFjLE1BQU0sR0FDakMsYUFBYSxjQUFjLEtBQUssR0FDaEMsU0FBUSxnQkFBZ0IsWUFBWSxVQUFVLEdBQzlDLE1BQU0sY0FBYyxZQUFZLFVBQVUsSUFBSTtBQUVsRCxpQkFBTyxVQUFVLFlBQVksUUFBTyxHQUFHLEVBQUUsS0FBSyxFQUFFO0FBQUEsUUFDbEQ7QUFxQkEseUJBQWlCLFFBQVEsT0FBTyxPQUFPO0FBQ3JDLG1CQUFTLFNBQVMsTUFBTTtBQUN4QixjQUFJLFVBQVcsVUFBUyxVQUFVLGFBQVk7QUFDNUMsbUJBQU8sT0FBTyxNQUFNLEdBQUcsZ0JBQWdCLE1BQU0sSUFBSSxDQUFDO0FBQUEsVUFDcEQ7QUFDQSxjQUFJLENBQUMsVUFBVSxDQUFFLFNBQVEsYUFBYSxLQUFLLElBQUk7QUFDN0MsbUJBQU87QUFBQSxVQUNUO0FBQ0EsY0FBSSxhQUFhLGNBQWMsTUFBTSxHQUNqQyxNQUFNLGNBQWMsWUFBWSxjQUFjLEtBQUssQ0FBQyxJQUFJO0FBRTVELGlCQUFPLFVBQVUsWUFBWSxHQUFHLEdBQUcsRUFBRSxLQUFLLEVBQUU7QUFBQSxRQUM5QztBQXFCQSwyQkFBbUIsUUFBUSxPQUFPLE9BQU87QUFDdkMsbUJBQVMsU0FBUyxNQUFNO0FBQ3hCLGNBQUksVUFBVyxVQUFTLFVBQVUsYUFBWTtBQUM1QyxtQkFBTyxPQUFPLFFBQVEsYUFBYSxFQUFFO0FBQUEsVUFDdkM7QUFDQSxjQUFJLENBQUMsVUFBVSxDQUFFLFNBQVEsYUFBYSxLQUFLLElBQUk7QUFDN0MsbUJBQU87QUFBQSxVQUNUO0FBQ0EsY0FBSSxhQUFhLGNBQWMsTUFBTSxHQUNqQyxTQUFRLGdCQUFnQixZQUFZLGNBQWMsS0FBSyxDQUFDO0FBRTVELGlCQUFPLFVBQVUsWUFBWSxNQUFLLEVBQUUsS0FBSyxFQUFFO0FBQUEsUUFDN0M7QUF1Q0EsMEJBQWtCLFFBQVEsU0FBUztBQUNqQyxjQUFJLFNBQVMsc0JBQ1QsV0FBVztBQUVmLGNBQUksU0FBUyxPQUFPLEdBQUc7QUFDckIsZ0JBQUksWUFBWSxlQUFlLFVBQVUsUUFBUSxZQUFZO0FBQzdELHFCQUFTLFlBQVksVUFBVSxVQUFVLFFBQVEsTUFBTSxJQUFJO0FBQzNELHVCQUFXLGNBQWMsVUFBVSxhQUFhLFFBQVEsUUFBUSxJQUFJO0FBQUEsVUFDdEU7QUFDQSxtQkFBUyxTQUFTLE1BQU07QUFFeEIsY0FBSSxZQUFZLE9BQU87QUFDdkIsY0FBSSxXQUFXLE1BQU0sR0FBRztBQUN0QixnQkFBSSxhQUFhLGNBQWMsTUFBTTtBQUNyQyx3QkFBWSxXQUFXO0FBQUEsVUFDekI7QUFDQSxjQUFJLFVBQVUsV0FBVztBQUN2QixtQkFBTztBQUFBLFVBQ1Q7QUFDQSxjQUFJLE1BQU0sU0FBUyxXQUFXLFFBQVE7QUFDdEMsY0FBSSxNQUFNLEdBQUc7QUFDWCxtQkFBTztBQUFBLFVBQ1Q7QUFDQSxjQUFJLFVBQVMsYUFDVCxVQUFVLFlBQVksR0FBRyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQ3JDLE9BQU8sTUFBTSxHQUFHLEdBQUc7QUFFdkIsY0FBSSxjQUFjLFlBQVc7QUFDM0IsbUJBQU8sVUFBUztBQUFBLFVBQ2xCO0FBQ0EsY0FBSSxZQUFZO0FBQ2QsbUJBQVEsUUFBTyxTQUFTO0FBQUEsVUFDMUI7QUFDQSxjQUFJLFNBQVMsU0FBUyxHQUFHO0FBQ3ZCLGdCQUFJLE9BQU8sTUFBTSxHQUFHLEVBQUUsT0FBTyxTQUFTLEdBQUc7QUFDdkMsa0JBQUksT0FDQSxZQUFZO0FBRWhCLGtCQUFJLENBQUMsVUFBVSxRQUFRO0FBQ3JCLDRCQUFZLFFBQU8sVUFBVSxRQUFRLFNBQVMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxJQUFJLEdBQUc7QUFBQSxjQUM5RTtBQUNBLHdCQUFVLFlBQVk7QUFDdEIscUJBQVEsUUFBUSxVQUFVLEtBQUssU0FBUyxHQUFJO0FBQzFDLG9CQUFJLFNBQVMsTUFBTTtBQUFBLGNBQ3JCO0FBQ0Esd0JBQVMsUUFBTyxNQUFNLEdBQUcsV0FBVyxhQUFZLE1BQU0sTUFBTTtBQUFBLFlBQzlEO0FBQUEsVUFDRixXQUFXLE9BQU8sUUFBUSxhQUFhLFNBQVMsR0FBRyxHQUFHLEtBQUssS0FBSztBQUM5RCxnQkFBSSxTQUFRLFFBQU8sWUFBWSxTQUFTO0FBQ3hDLGdCQUFJLFNBQVEsSUFBSTtBQUNkLHdCQUFTLFFBQU8sTUFBTSxHQUFHLE1BQUs7QUFBQSxZQUNoQztBQUFBLFVBQ0Y7QUFDQSxpQkFBTyxVQUFTO0FBQUEsUUFDbEI7QUFxQkEsMEJBQWtCLFFBQVE7QUFDeEIsbUJBQVMsU0FBUyxNQUFNO0FBQ3hCLGlCQUFRLFVBQVUsaUJBQWlCLEtBQUssTUFBTSxJQUMxQyxPQUFPLFFBQVEsZUFBZSxnQkFBZ0IsSUFDOUM7QUFBQSxRQUNOO0FBc0JBLFlBQUksWUFBWSxpQkFBaUIsU0FBUyxTQUFRLE1BQU0sUUFBTztBQUM3RCxpQkFBTyxVQUFVLFVBQVEsTUFBTSxNQUFNLEtBQUssWUFBWTtBQUFBLFFBQ3hELENBQUM7QUFtQkQsWUFBSSxhQUFhLGdCQUFnQixhQUFhO0FBcUI5Qyx1QkFBZSxRQUFRLFNBQVMsT0FBTztBQUNyQyxtQkFBUyxTQUFTLE1BQU07QUFDeEIsb0JBQVUsUUFBUSxhQUFZO0FBRTlCLGNBQUksWUFBWSxZQUFXO0FBQ3pCLG1CQUFPLGVBQWUsTUFBTSxJQUFJLGFBQWEsTUFBTSxJQUFJLFdBQVcsTUFBTTtBQUFBLFVBQzFFO0FBQ0EsaUJBQU8sT0FBTyxNQUFNLE9BQU8sS0FBSyxDQUFDO0FBQUEsUUFDbkM7QUEwQkEsWUFBSSxVQUFVLFNBQVMsU0FBUyxNQUFNLE1BQU07QUFDMUMsY0FBSTtBQUNGLG1CQUFPLE1BQU0sTUFBTSxZQUFXLElBQUk7QUFBQSxVQUNwQyxTQUFTLEdBQVA7QUFDQSxtQkFBTyxRQUFRLENBQUMsSUFBSSxJQUFJLElBQUksT0FBTSxDQUFDO0FBQUEsVUFDckM7QUFBQSxRQUNGLENBQUM7QUE0QkQsWUFBSSxVQUFVLFNBQVMsU0FBUyxRQUFRLGFBQWE7QUFDbkQsb0JBQVUsYUFBYSxTQUFTLEtBQUs7QUFDbkMsa0JBQU0sTUFBTSxHQUFHO0FBQ2YsNEJBQWdCLFFBQVEsS0FBSyxLQUFLLE9BQU8sTUFBTSxNQUFNLENBQUM7QUFBQSxVQUN4RCxDQUFDO0FBQ0QsaUJBQU87QUFBQSxRQUNULENBQUM7QUErQkQsc0JBQWMsT0FBTztBQUNuQixjQUFJLFNBQVMsU0FBUyxPQUFPLElBQUksTUFBTSxRQUNuQyxhQUFhLFlBQVk7QUFFN0Isa0JBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLE9BQU8sU0FBUyxNQUFNO0FBQ3BELGdCQUFJLE9BQU8sS0FBSyxNQUFNLFlBQVk7QUFDaEMsb0JBQU0sSUFBSSxXQUFVLGVBQWU7QUFBQSxZQUNyQztBQUNBLG1CQUFPLENBQUMsV0FBVyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUU7QUFBQSxVQUN0QyxDQUFDO0FBRUQsaUJBQU8sU0FBUyxTQUFTLE1BQU07QUFDN0IsZ0JBQUksU0FBUTtBQUNaLG1CQUFPLEVBQUUsU0FBUSxRQUFRO0FBQ3ZCLGtCQUFJLE9BQU8sTUFBTTtBQUNqQixrQkFBSSxNQUFNLEtBQUssSUFBSSxNQUFNLElBQUksR0FBRztBQUM5Qix1QkFBTyxNQUFNLEtBQUssSUFBSSxNQUFNLElBQUk7QUFBQSxjQUNsQztBQUFBLFlBQ0Y7QUFBQSxVQUNGLENBQUM7QUFBQSxRQUNIO0FBMEJBLDBCQUFrQixRQUFRO0FBQ3hCLGlCQUFPLGFBQWEsVUFBVSxRQUFRLGVBQWUsQ0FBQztBQUFBLFFBQ3hEO0FBcUJBLDBCQUFrQixPQUFPO0FBQ3ZCLGlCQUFPLFdBQVc7QUFDaEIsbUJBQU87QUFBQSxVQUNUO0FBQUEsUUFDRjtBQXNCQSwyQkFBbUIsT0FBTyxjQUFjO0FBQ3RDLGlCQUFRLFNBQVMsUUFBUSxVQUFVLFFBQVMsZUFBZTtBQUFBLFFBQzdEO0FBd0JBLFlBQUksT0FBTyxXQUFXO0FBdUJ0QixZQUFJLFlBQVksV0FBVyxJQUFJO0FBa0IvQiwyQkFBa0IsT0FBTztBQUN2QixpQkFBTztBQUFBLFFBQ1Q7QUE0Q0EsMEJBQWtCLE1BQU07QUFDdEIsaUJBQU8sYUFBYSxPQUFPLFFBQVEsYUFBYSxPQUFPLFVBQVUsTUFBTSxlQUFlLENBQUM7QUFBQSxRQUN6RjtBQXFDQSx5QkFBaUIsUUFBUTtBQUN2QixpQkFBTyxZQUFZLFVBQVUsUUFBUSxlQUFlLENBQUM7QUFBQSxRQUN2RDtBQW1DQSxpQ0FBeUIsT0FBTSxVQUFVO0FBQ3ZDLGlCQUFPLG9CQUFvQixPQUFNLFVBQVUsVUFBVSxlQUFlLENBQUM7QUFBQSxRQUN2RTtBQTBCQSxZQUFJLFNBQVMsU0FBUyxTQUFTLE9BQU0sTUFBTTtBQUN6QyxpQkFBTyxTQUFTLFFBQVE7QUFDdEIsbUJBQU8sV0FBVyxRQUFRLE9BQU0sSUFBSTtBQUFBLFVBQ3RDO0FBQUEsUUFDRixDQUFDO0FBeUJELFlBQUksV0FBVyxTQUFTLFNBQVMsUUFBUSxNQUFNO0FBQzdDLGlCQUFPLFNBQVMsT0FBTTtBQUNwQixtQkFBTyxXQUFXLFFBQVEsT0FBTSxJQUFJO0FBQUEsVUFDdEM7QUFBQSxRQUNGLENBQUM7QUFzQ0QsdUJBQWUsUUFBUSxRQUFRLFNBQVM7QUFDdEMsY0FBSSxRQUFRLEtBQUssTUFBTSxHQUNuQixjQUFjLGNBQWMsUUFBUSxLQUFLO0FBRTdDLGNBQUksV0FBVyxRQUNYLENBQUUsVUFBUyxNQUFNLEtBQU0sYUFBWSxVQUFVLENBQUMsTUFBTSxVQUFVO0FBQ2hFLHNCQUFVO0FBQ1YscUJBQVM7QUFDVCxxQkFBUztBQUNULDBCQUFjLGNBQWMsUUFBUSxLQUFLLE1BQU0sQ0FBQztBQUFBLFVBQ2xEO0FBQ0EsY0FBSSxTQUFRLENBQUUsVUFBUyxPQUFPLEtBQUssV0FBVyxZQUFZLENBQUMsQ0FBQyxRQUFRLE9BQ2hFLFNBQVMsV0FBVyxNQUFNO0FBRTlCLG9CQUFVLGFBQWEsU0FBUyxZQUFZO0FBQzFDLGdCQUFJLE9BQU8sT0FBTztBQUNsQixtQkFBTyxjQUFjO0FBQ3JCLGdCQUFJLFFBQVE7QUFDVixxQkFBTyxVQUFVLGNBQWMsV0FBVztBQUN4QyxvQkFBSSxXQUFXLEtBQUs7QUFDcEIsb0JBQUksVUFBUyxVQUFVO0FBQ3JCLHNCQUFJLFVBQVMsT0FBTyxLQUFLLFdBQVcsR0FDaEMsVUFBVSxRQUFPLGNBQWMsVUFBVSxLQUFLLFdBQVc7QUFFN0QsMEJBQVEsS0FBSyxFQUFFLFFBQVEsTUFBTSxRQUFRLFdBQVcsV0FBVyxPQUFPLENBQUM7QUFDbkUsMEJBQU8sWUFBWTtBQUNuQix5QkFBTztBQUFBLGdCQUNUO0FBQ0EsdUJBQU8sS0FBSyxNQUFNLFFBQVEsVUFBVSxDQUFDLEtBQUssTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDO0FBQUEsY0FDaEU7QUFBQSxZQUNGO0FBQUEsVUFDRixDQUFDO0FBRUQsaUJBQU87QUFBQSxRQUNUO0FBZUEsOEJBQXNCO0FBQ3BCLGNBQUksTUFBSyxNQUFNLE1BQU07QUFDbkIsa0JBQUssSUFBSTtBQUFBLFVBQ1g7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFjQSx5QkFBZ0I7QUFBQSxRQUVoQjtBQXNCQSx3QkFBZ0IsR0FBRztBQUNqQixjQUFJLFVBQVUsQ0FBQztBQUNmLGlCQUFPLFNBQVMsU0FBUyxNQUFNO0FBQzdCLG1CQUFPLFFBQVEsTUFBTSxDQUFDO0FBQUEsVUFDeEIsQ0FBQztBQUFBLFFBQ0g7QUFvQkEsWUFBSSxPQUFPLFdBQVcsUUFBUTtBQThCOUIsWUFBSSxZQUFZLFdBQVcsVUFBVTtBQWlDckMsWUFBSSxXQUFXLFdBQVcsU0FBUztBQXdCbkMsMEJBQWtCLE9BQU07QUFDdEIsaUJBQU8sTUFBTSxLQUFJLElBQUksYUFBYSxNQUFNLEtBQUksQ0FBQyxJQUFJLGlCQUFpQixLQUFJO0FBQUEsUUFDeEU7QUF1QkEsNEJBQW9CLFFBQVE7QUFDMUIsaUJBQU8sU0FBUyxPQUFNO0FBQ3BCLG1CQUFPLFVBQVUsT0FBTyxhQUFZLFFBQVEsUUFBUSxLQUFJO0FBQUEsVUFDMUQ7QUFBQSxRQUNGO0FBMkNBLFlBQUksUUFBUSxZQUFZO0FBc0N4QixZQUFJLGFBQWEsWUFBWSxJQUFJO0FBb0JqQyw2QkFBcUI7QUFDbkIsaUJBQU8sQ0FBQztBQUFBLFFBQ1Y7QUFlQSw2QkFBcUI7QUFDbkIsaUJBQU87QUFBQSxRQUNUO0FBb0JBLDhCQUFzQjtBQUNwQixpQkFBTyxDQUFDO0FBQUEsUUFDVjtBQWVBLDhCQUFzQjtBQUNwQixpQkFBTztBQUFBLFFBQ1Q7QUFlQSw0QkFBb0I7QUFDbEIsaUJBQU87QUFBQSxRQUNUO0FBcUJBLHVCQUFlLEdBQUcsV0FBVTtBQUMxQixjQUFJLFVBQVUsQ0FBQztBQUNmLGNBQUksSUFBSSxLQUFLLElBQUksa0JBQWtCO0FBQ2pDLG1CQUFPLENBQUM7QUFBQSxVQUNWO0FBQ0EsY0FBSSxTQUFRLGtCQUNSLFNBQVMsVUFBVSxHQUFHLGdCQUFnQjtBQUUxQyxzQkFBVyxZQUFZLFNBQVE7QUFDL0IsZUFBSztBQUVMLGNBQUksVUFBUyxVQUFVLFFBQVEsU0FBUTtBQUN2QyxpQkFBTyxFQUFFLFNBQVEsR0FBRztBQUNsQixzQkFBUyxNQUFLO0FBQUEsVUFDaEI7QUFDQSxpQkFBTztBQUFBLFFBQ1Q7QUFtQkEsd0JBQWdCLE9BQU87QUFDckIsY0FBSSxRQUFRLEtBQUssR0FBRztBQUNsQixtQkFBTyxTQUFTLE9BQU8sS0FBSztBQUFBLFVBQzlCO0FBQ0EsaUJBQU8sU0FBUyxLQUFLLElBQUksQ0FBQyxLQUFLLElBQUksVUFBVSxhQUFhLFNBQVMsS0FBSyxDQUFDLENBQUM7QUFBQSxRQUM1RTtBQW1CQSwwQkFBa0IsUUFBUTtBQUN4QixjQUFJLE1BQUssRUFBRTtBQUNYLGlCQUFPLFNBQVMsTUFBTSxJQUFJO0FBQUEsUUFDNUI7QUFtQkEsWUFBSSxPQUFNLG9CQUFvQixTQUFTLFFBQVEsUUFBUTtBQUNyRCxpQkFBTyxTQUFTO0FBQUEsUUFDbEIsR0FBRyxDQUFDO0FBdUJKLFlBQUksT0FBTyxZQUFZLE1BQU07QUFpQjdCLFlBQUksU0FBUyxvQkFBb0IsU0FBUyxVQUFVLFNBQVM7QUFDM0QsaUJBQU8sV0FBVztBQUFBLFFBQ3BCLEdBQUcsQ0FBQztBQXVCSixZQUFJLFFBQVEsWUFBWSxPQUFPO0FBb0IvQixzQkFBYSxPQUFPO0FBQ2xCLGlCQUFRLFNBQVMsTUFBTSxTQUNuQixhQUFhLE9BQU8sV0FBVSxNQUFNLElBQ3BDO0FBQUEsUUFDTjtBQXlCQSx1QkFBZSxPQUFPLFdBQVU7QUFDOUIsaUJBQVEsU0FBUyxNQUFNLFNBQ25CLGFBQWEsT0FBTyxZQUFZLFdBQVUsQ0FBQyxHQUFHLE1BQU0sSUFDcEQ7QUFBQSxRQUNOO0FBZ0JBLHNCQUFjLE9BQU87QUFDbkIsaUJBQU8sU0FBUyxPQUFPLFNBQVE7QUFBQSxRQUNqQztBQXlCQSx3QkFBZ0IsT0FBTyxXQUFVO0FBQy9CLGlCQUFPLFNBQVMsT0FBTyxZQUFZLFdBQVUsQ0FBQyxDQUFDO0FBQUEsUUFDakQ7QUFvQkEsc0JBQWEsT0FBTztBQUNsQixpQkFBUSxTQUFTLE1BQU0sU0FDbkIsYUFBYSxPQUFPLFdBQVUsTUFBTSxJQUNwQztBQUFBLFFBQ047QUF5QkEsdUJBQWUsT0FBTyxXQUFVO0FBQzlCLGlCQUFRLFNBQVMsTUFBTSxTQUNuQixhQUFhLE9BQU8sWUFBWSxXQUFVLENBQUMsR0FBRyxNQUFNLElBQ3BEO0FBQUEsUUFDTjtBQWlCQSxZQUFJLFdBQVcsb0JBQW9CLFNBQVMsWUFBWSxjQUFjO0FBQ3BFLGlCQUFPLGFBQWE7QUFBQSxRQUN0QixHQUFHLENBQUM7QUF1QkosWUFBSSxRQUFRLFlBQVksT0FBTztBQWlCL0IsWUFBSSxXQUFXLG9CQUFvQixTQUFTLFNBQVMsWUFBWTtBQUMvRCxpQkFBTyxVQUFVO0FBQUEsUUFDbkIsR0FBRyxDQUFDO0FBZ0JKLHFCQUFhLE9BQU87QUFDbEIsaUJBQVEsU0FBUyxNQUFNLFNBQ25CLFFBQVEsT0FBTyxTQUFRLElBQ3ZCO0FBQUEsUUFDTjtBQXlCQSx1QkFBZSxPQUFPLFdBQVU7QUFDOUIsaUJBQVEsU0FBUyxNQUFNLFNBQ25CLFFBQVEsT0FBTyxZQUFZLFdBQVUsQ0FBQyxDQUFDLElBQ3ZDO0FBQUEsUUFDTjtBQUtBLGVBQU8sUUFBUTtBQUNmLGVBQU8sTUFBTTtBQUNiLGVBQU8sU0FBUztBQUNoQixlQUFPLFdBQVc7QUFDbEIsZUFBTyxlQUFlO0FBQ3RCLGVBQU8sYUFBYTtBQUNwQixlQUFPLEtBQUs7QUFDWixlQUFPLFNBQVM7QUFDaEIsZUFBTyxPQUFPO0FBQ2QsZUFBTyxVQUFVO0FBQ2pCLGVBQU8sVUFBVTtBQUNqQixlQUFPLFlBQVk7QUFDbkIsZUFBTyxRQUFRO0FBQ2YsZUFBTyxRQUFRO0FBQ2YsZUFBTyxVQUFVO0FBQ2pCLGVBQU8sU0FBUztBQUNoQixlQUFPLE9BQU87QUFDZCxlQUFPLFdBQVc7QUFDbEIsZUFBTyxXQUFXO0FBQ2xCLGVBQU8sVUFBVTtBQUNqQixlQUFPLFNBQVM7QUFDaEIsZUFBTyxRQUFRO0FBQ2YsZUFBTyxhQUFhO0FBQ3BCLGVBQU8sV0FBVztBQUNsQixlQUFPLFdBQVc7QUFDbEIsZUFBTyxlQUFlO0FBQ3RCLGVBQU8sUUFBUTtBQUNmLGVBQU8sUUFBUTtBQUNmLGVBQU8sYUFBYTtBQUNwQixlQUFPLGVBQWU7QUFDdEIsZUFBTyxpQkFBaUI7QUFDeEIsZUFBTyxPQUFPO0FBQ2QsZUFBTyxZQUFZO0FBQ25CLGVBQU8saUJBQWlCO0FBQ3hCLGVBQU8sWUFBWTtBQUNuQixlQUFPLE9BQU87QUFDZCxlQUFPLFNBQVM7QUFDaEIsZUFBTyxVQUFVO0FBQ2pCLGVBQU8sY0FBYztBQUNyQixlQUFPLGVBQWU7QUFDdEIsZUFBTyxVQUFVO0FBQ2pCLGVBQU8sY0FBYztBQUNyQixlQUFPLGVBQWU7QUFDdEIsZUFBTyxPQUFPO0FBQ2QsZUFBTyxPQUFPO0FBQ2QsZUFBTyxZQUFZO0FBQ25CLGVBQU8sWUFBWTtBQUNuQixlQUFPLFlBQVk7QUFDbkIsZUFBTyxjQUFjO0FBQ3JCLGVBQU8sVUFBVTtBQUNqQixlQUFPLFVBQVU7QUFDakIsZUFBTyxlQUFlO0FBQ3RCLGVBQU8saUJBQWlCO0FBQ3hCLGVBQU8sbUJBQW1CO0FBQzFCLGVBQU8sU0FBUztBQUNoQixlQUFPLFdBQVc7QUFDbEIsZUFBTyxZQUFZO0FBQ25CLGVBQU8sV0FBVztBQUNsQixlQUFPLFFBQVE7QUFDZixlQUFPLE9BQU87QUFDZCxlQUFPLFNBQVM7QUFDaEIsZUFBTyxNQUFNO0FBQ2IsZUFBTyxVQUFVO0FBQ2pCLGVBQU8sWUFBWTtBQUNuQixlQUFPLFVBQVU7QUFDakIsZUFBTyxrQkFBa0I7QUFDekIsZUFBTyxVQUFVO0FBQ2pCLGVBQU8sUUFBUTtBQUNmLGVBQU8sWUFBWTtBQUNuQixlQUFPLFNBQVM7QUFDaEIsZUFBTyxXQUFXO0FBQ2xCLGVBQU8sUUFBUTtBQUNmLGVBQU8sU0FBUztBQUNoQixlQUFPLFNBQVM7QUFDaEIsZUFBTyxPQUFPO0FBQ2QsZUFBTyxTQUFTO0FBQ2hCLGVBQU8sT0FBTztBQUNkLGVBQU8sVUFBVTtBQUNqQixlQUFPLE9BQU87QUFDZCxlQUFPLFdBQVc7QUFDbEIsZUFBTyxZQUFZO0FBQ25CLGVBQU8sV0FBVztBQUNsQixlQUFPLFVBQVU7QUFDakIsZUFBTyxlQUFlO0FBQ3RCLGVBQU8sWUFBWTtBQUNuQixlQUFPLE9BQU87QUFDZCxlQUFPLFNBQVM7QUFDaEIsZUFBTyxXQUFXO0FBQ2xCLGVBQU8sYUFBYTtBQUNwQixlQUFPLE9BQU87QUFDZCxlQUFPLFVBQVU7QUFDakIsZUFBTyxZQUFZO0FBQ25CLGVBQU8sY0FBYztBQUNyQixlQUFPLFNBQVM7QUFDaEIsZUFBTyxRQUFRO0FBQ2YsZUFBTyxhQUFhO0FBQ3BCLGVBQU8sUUFBUTtBQUNmLGVBQU8sU0FBUztBQUNoQixlQUFPLFNBQVM7QUFDaEIsZUFBTyxPQUFPO0FBQ2QsZUFBTyxVQUFVO0FBQ2pCLGVBQU8sYUFBYTtBQUNwQixlQUFPLE1BQU07QUFDYixlQUFPLFVBQVU7QUFDakIsZUFBTyxVQUFVO0FBQ2pCLGVBQU8sUUFBUTtBQUNmLGVBQU8sU0FBUztBQUNoQixlQUFPLGFBQWE7QUFDcEIsZUFBTyxlQUFlO0FBQ3RCLGVBQU8sUUFBUTtBQUNmLGVBQU8sU0FBUztBQUNoQixlQUFPLE9BQU87QUFDZCxlQUFPLE9BQU87QUFDZCxlQUFPLFlBQVk7QUFDbkIsZUFBTyxpQkFBaUI7QUFDeEIsZUFBTyxZQUFZO0FBQ25CLGVBQU8sTUFBTTtBQUNiLGVBQU8sV0FBVztBQUNsQixlQUFPLE9BQU87QUFDZCxlQUFPLFVBQVU7QUFDakIsZUFBTyxVQUFVO0FBQ2pCLGVBQU8sWUFBWTtBQUNuQixlQUFPLFNBQVM7QUFDaEIsZUFBTyxnQkFBZ0I7QUFDdkIsZUFBTyxZQUFZO0FBQ25CLGVBQU8sUUFBUTtBQUNmLGVBQU8sUUFBUTtBQUNmLGVBQU8sVUFBVTtBQUNqQixlQUFPLFlBQVk7QUFDbkIsZUFBTyxPQUFPO0FBQ2QsZUFBTyxTQUFTO0FBQ2hCLGVBQU8sV0FBVztBQUNsQixlQUFPLFFBQVE7QUFDZixlQUFPLFFBQVE7QUFDZixlQUFPLFlBQVk7QUFDbkIsZUFBTyxTQUFTO0FBQ2hCLGVBQU8sYUFBYTtBQUNwQixlQUFPLFNBQVM7QUFDaEIsZUFBTyxXQUFXO0FBQ2xCLGVBQU8sVUFBVTtBQUNqQixlQUFPLFFBQVE7QUFDZixlQUFPLE9BQU87QUFDZCxlQUFPLE1BQU07QUFDYixlQUFPLFFBQVE7QUFDZixlQUFPLFVBQVU7QUFDakIsZUFBTyxNQUFNO0FBQ2IsZUFBTyxZQUFZO0FBQ25CLGVBQU8sZ0JBQWdCO0FBQ3ZCLGVBQU8sVUFBVTtBQUdqQixlQUFPLFVBQVU7QUFDakIsZUFBTyxZQUFZO0FBQ25CLGVBQU8sU0FBUztBQUNoQixlQUFPLGFBQWE7QUFHcEIsY0FBTSxRQUFRLE1BQU07QUFLcEIsZUFBTyxNQUFNO0FBQ2IsZUFBTyxVQUFVO0FBQ2pCLGVBQU8sWUFBWTtBQUNuQixlQUFPLGFBQWE7QUFDcEIsZUFBTyxPQUFPO0FBQ2QsZUFBTyxRQUFRO0FBQ2YsZUFBTyxRQUFRO0FBQ2YsZUFBTyxZQUFZO0FBQ25CLGVBQU8sZ0JBQWdCO0FBQ3ZCLGVBQU8sWUFBWTtBQUNuQixlQUFPLGFBQWE7QUFDcEIsZUFBTyxTQUFTO0FBQ2hCLGVBQU8sWUFBWTtBQUNuQixlQUFPLFNBQVM7QUFDaEIsZUFBTyxXQUFXO0FBQ2xCLGVBQU8sS0FBSztBQUNaLGVBQU8sU0FBUztBQUNoQixlQUFPLGVBQWU7QUFDdEIsZUFBTyxRQUFRO0FBQ2YsZUFBTyxPQUFPO0FBQ2QsZUFBTyxZQUFZO0FBQ25CLGVBQU8sVUFBVTtBQUNqQixlQUFPLFdBQVc7QUFDbEIsZUFBTyxnQkFBZ0I7QUFDdkIsZUFBTyxjQUFjO0FBQ3JCLGVBQU8sUUFBUTtBQUNmLGVBQU8sVUFBVTtBQUNqQixlQUFPLGVBQWU7QUFDdEIsZUFBTyxRQUFRO0FBQ2YsZUFBTyxhQUFhO0FBQ3BCLGVBQU8sU0FBUztBQUNoQixlQUFPLGNBQWM7QUFDckIsZUFBTyxNQUFNO0FBQ2IsZUFBTyxLQUFLO0FBQ1osZUFBTyxNQUFNO0FBQ2IsZUFBTyxNQUFNO0FBQ2IsZUFBTyxRQUFRO0FBQ2YsZUFBTyxPQUFPO0FBQ2QsZUFBTyxXQUFXO0FBQ2xCLGVBQU8sV0FBVztBQUNsQixlQUFPLFVBQVU7QUFDakIsZUFBTyxVQUFVO0FBQ2pCLGVBQU8sU0FBUztBQUNoQixlQUFPLGNBQWM7QUFDckIsZUFBTyxVQUFVO0FBQ2pCLGVBQU8sZ0JBQWdCO0FBQ3ZCLGVBQU8sY0FBYztBQUNyQixlQUFPLG9CQUFvQjtBQUMzQixlQUFPLFlBQVk7QUFDbkIsZUFBTyxXQUFXO0FBQ2xCLGVBQU8sU0FBUztBQUNoQixlQUFPLFlBQVk7QUFDbkIsZUFBTyxVQUFVO0FBQ2pCLGVBQU8sVUFBVTtBQUNqQixlQUFPLGNBQWM7QUFDckIsZUFBTyxVQUFVO0FBQ2pCLGVBQU8sV0FBVztBQUNsQixlQUFPLGFBQWE7QUFDcEIsZUFBTyxZQUFZO0FBQ25CLGVBQU8sV0FBVztBQUNsQixlQUFPLFFBQVE7QUFDZixlQUFPLFVBQVU7QUFDakIsZUFBTyxjQUFjO0FBQ3JCLGVBQU8sUUFBUTtBQUNmLGVBQU8sV0FBVztBQUNsQixlQUFPLFFBQVE7QUFDZixlQUFPLFNBQVM7QUFDaEIsZUFBTyxXQUFXO0FBQ2xCLGVBQU8sV0FBVztBQUNsQixlQUFPLGVBQWU7QUFDdEIsZUFBTyxnQkFBZ0I7QUFDdkIsZUFBTyxXQUFXO0FBQ2xCLGVBQU8sZ0JBQWdCO0FBQ3ZCLGVBQU8sUUFBUTtBQUNmLGVBQU8sV0FBVztBQUNsQixlQUFPLFdBQVc7QUFDbEIsZUFBTyxlQUFlO0FBQ3RCLGVBQU8sY0FBYztBQUNyQixlQUFPLFlBQVk7QUFDbkIsZUFBTyxZQUFZO0FBQ25CLGVBQU8sT0FBTztBQUNkLGVBQU8sWUFBWTtBQUNuQixlQUFPLE9BQU87QUFDZCxlQUFPLGNBQWM7QUFDckIsZUFBTyxZQUFZO0FBQ25CLGVBQU8sYUFBYTtBQUNwQixlQUFPLEtBQUs7QUFDWixlQUFPLE1BQU07QUFDYixlQUFPLE1BQU07QUFDYixlQUFPLFFBQVE7QUFDZixlQUFPLE9BQU87QUFDZCxlQUFPLFNBQVM7QUFDaEIsZUFBTyxNQUFNO0FBQ2IsZUFBTyxRQUFRO0FBQ2YsZUFBTyxZQUFZO0FBQ25CLGVBQU8sWUFBWTtBQUNuQixlQUFPLGFBQWE7QUFDcEIsZUFBTyxhQUFhO0FBQ3BCLGVBQU8sV0FBVztBQUNsQixlQUFPLFdBQVc7QUFDbEIsZUFBTyxNQUFNO0FBQ2IsZUFBTyxhQUFhO0FBQ3BCLGVBQU8sT0FBTztBQUNkLGVBQU8sTUFBTTtBQUNiLGVBQU8sTUFBTTtBQUNiLGVBQU8sU0FBUztBQUNoQixlQUFPLFdBQVc7QUFDbEIsZUFBTyxXQUFXO0FBQ2xCLGVBQU8sU0FBUztBQUNoQixlQUFPLFNBQVM7QUFDaEIsZUFBTyxjQUFjO0FBQ3JCLGVBQU8sU0FBUztBQUNoQixlQUFPLFVBQVU7QUFDakIsZUFBTyxTQUFTO0FBQ2hCLGVBQU8sUUFBUTtBQUNmLGVBQU8sZUFBZTtBQUN0QixlQUFPLFNBQVM7QUFDaEIsZUFBTyxPQUFPO0FBQ2QsZUFBTyxZQUFZO0FBQ25CLGVBQU8sT0FBTztBQUNkLGVBQU8sY0FBYztBQUNyQixlQUFPLGdCQUFnQjtBQUN2QixlQUFPLGdCQUFnQjtBQUN2QixlQUFPLGtCQUFrQjtBQUN6QixlQUFPLG9CQUFvQjtBQUMzQixlQUFPLG9CQUFvQjtBQUMzQixlQUFPLFlBQVk7QUFDbkIsZUFBTyxhQUFhO0FBQ3BCLGVBQU8sV0FBVztBQUNsQixlQUFPLE1BQU07QUFDYixlQUFPLFFBQVE7QUFDZixlQUFPLFdBQVc7QUFDbEIsZUFBTyxRQUFRO0FBQ2YsZUFBTyxXQUFXO0FBQ2xCLGVBQU8sWUFBWTtBQUNuQixlQUFPLFdBQVc7QUFDbEIsZUFBTyxVQUFVO0FBQ2pCLGVBQU8sV0FBVztBQUNsQixlQUFPLGdCQUFnQjtBQUN2QixlQUFPLFdBQVc7QUFDbEIsZUFBTyxVQUFVO0FBQ2pCLGVBQU8sT0FBTztBQUNkLGVBQU8sVUFBVTtBQUNqQixlQUFPLFlBQVk7QUFDbkIsZUFBTyxXQUFXO0FBQ2xCLGVBQU8sV0FBVztBQUNsQixlQUFPLFdBQVc7QUFDbEIsZUFBTyxZQUFZO0FBQ25CLGVBQU8sYUFBYTtBQUdwQixlQUFPLE9BQU87QUFDZCxlQUFPLFlBQVk7QUFDbkIsZUFBTyxRQUFRO0FBRWYsY0FBTSxRQUFTLFdBQVc7QUFDeEIsY0FBSSxTQUFTLENBQUM7QUFDZCxxQkFBVyxRQUFRLFNBQVMsTUFBTSxZQUFZO0FBQzVDLGdCQUFJLENBQUMsZUFBZSxLQUFLLE9BQU8sV0FBVyxVQUFVLEdBQUc7QUFDdEQscUJBQU8sY0FBYztBQUFBLFlBQ3ZCO0FBQUEsVUFDRixDQUFDO0FBQ0QsaUJBQU87QUFBQSxRQUNULEVBQUUsR0FBSSxFQUFFLFNBQVMsTUFBTSxDQUFDO0FBV3hCLGVBQU8sVUFBVTtBQUdqQixrQkFBVSxDQUFDLFFBQVEsV0FBVyxTQUFTLGNBQWMsV0FBVyxjQUFjLEdBQUcsU0FBUyxZQUFZO0FBQ3BHLGlCQUFPLFlBQVksY0FBYztBQUFBLFFBQ25DLENBQUM7QUFHRCxrQkFBVSxDQUFDLFFBQVEsTUFBTSxHQUFHLFNBQVMsWUFBWSxRQUFPO0FBQ3RELHNCQUFZLFVBQVUsY0FBYyxTQUFTLEdBQUc7QUFDOUMsZ0JBQUksTUFBTSxhQUFZLElBQUksVUFBVSxVQUFVLENBQUMsR0FBRyxDQUFDO0FBRW5ELGdCQUFJLFVBQVUsS0FBSyxnQkFBZ0IsQ0FBQyxTQUNoQyxJQUFJLFlBQVksSUFBSSxJQUNwQixLQUFLLE1BQU07QUFFZixnQkFBSSxRQUFPLGNBQWM7QUFDdkIsc0JBQU8sZ0JBQWdCLFVBQVUsR0FBRyxRQUFPLGFBQWE7QUFBQSxZQUMxRCxPQUFPO0FBQ0wsc0JBQU8sVUFBVSxLQUFLO0FBQUEsZ0JBQ3BCLFFBQVEsVUFBVSxHQUFHLGdCQUFnQjtBQUFBLGdCQUNyQyxRQUFRLGFBQWMsU0FBTyxVQUFVLElBQUksVUFBVTtBQUFBLGNBQ3ZELENBQUM7QUFBQSxZQUNIO0FBQ0EsbUJBQU87QUFBQSxVQUNUO0FBRUEsc0JBQVksVUFBVSxhQUFhLFdBQVcsU0FBUyxHQUFHO0FBQ3hELG1CQUFPLEtBQUssUUFBUSxFQUFFLFlBQVksQ0FBQyxFQUFFLFFBQVE7QUFBQSxVQUMvQztBQUFBLFFBQ0YsQ0FBQztBQUdELGtCQUFVLENBQUMsVUFBVSxPQUFPLFdBQVcsR0FBRyxTQUFTLFlBQVksUUFBTztBQUNwRSxjQUFJLFFBQU8sU0FBUSxHQUNmLFdBQVcsU0FBUSxvQkFBb0IsU0FBUTtBQUVuRCxzQkFBWSxVQUFVLGNBQWMsU0FBUyxXQUFVO0FBQ3JELGdCQUFJLFVBQVMsS0FBSyxNQUFNO0FBQ3hCLG9CQUFPLGNBQWMsS0FBSztBQUFBLGNBQ3hCLFlBQVksWUFBWSxXQUFVLENBQUM7QUFBQSxjQUNuQyxRQUFRO0FBQUEsWUFDVixDQUFDO0FBQ0Qsb0JBQU8sZUFBZSxRQUFPLGdCQUFnQjtBQUM3QyxtQkFBTztBQUFBLFVBQ1Q7QUFBQSxRQUNGLENBQUM7QUFHRCxrQkFBVSxDQUFDLFFBQVEsTUFBTSxHQUFHLFNBQVMsWUFBWSxRQUFPO0FBQ3RELGNBQUksV0FBVyxTQUFVLFVBQVEsVUFBVTtBQUUzQyxzQkFBWSxVQUFVLGNBQWMsV0FBVztBQUM3QyxtQkFBTyxLQUFLLFVBQVUsQ0FBQyxFQUFFLE1BQU0sRUFBRTtBQUFBLFVBQ25DO0FBQUEsUUFDRixDQUFDO0FBR0Qsa0JBQVUsQ0FBQyxXQUFXLE1BQU0sR0FBRyxTQUFTLFlBQVksUUFBTztBQUN6RCxjQUFJLFdBQVcsU0FBVSxVQUFRLEtBQUs7QUFFdEMsc0JBQVksVUFBVSxjQUFjLFdBQVc7QUFDN0MsbUJBQU8sS0FBSyxlQUFlLElBQUksWUFBWSxJQUFJLElBQUksS0FBSyxVQUFVLENBQUM7QUFBQSxVQUNyRTtBQUFBLFFBQ0YsQ0FBQztBQUVELG9CQUFZLFVBQVUsVUFBVSxXQUFXO0FBQ3pDLGlCQUFPLEtBQUssT0FBTyxTQUFRO0FBQUEsUUFDN0I7QUFFQSxvQkFBWSxVQUFVLE9BQU8sU0FBUyxXQUFXO0FBQy9DLGlCQUFPLEtBQUssT0FBTyxTQUFTLEVBQUUsS0FBSztBQUFBLFFBQ3JDO0FBRUEsb0JBQVksVUFBVSxXQUFXLFNBQVMsV0FBVztBQUNuRCxpQkFBTyxLQUFLLFFBQVEsRUFBRSxLQUFLLFNBQVM7QUFBQSxRQUN0QztBQUVBLG9CQUFZLFVBQVUsWUFBWSxTQUFTLFNBQVMsT0FBTSxNQUFNO0FBQzlELGNBQUksT0FBTyxTQUFRLFlBQVk7QUFDN0IsbUJBQU8sSUFBSSxZQUFZLElBQUk7QUFBQSxVQUM3QjtBQUNBLGlCQUFPLEtBQUssSUFBSSxTQUFTLE9BQU87QUFDOUIsbUJBQU8sV0FBVyxPQUFPLE9BQU0sSUFBSTtBQUFBLFVBQ3JDLENBQUM7QUFBQSxRQUNILENBQUM7QUFFRCxvQkFBWSxVQUFVLFNBQVMsU0FBUyxXQUFXO0FBQ2pELGlCQUFPLEtBQUssT0FBTyxPQUFPLFlBQVksU0FBUyxDQUFDLENBQUM7QUFBQSxRQUNuRDtBQUVBLG9CQUFZLFVBQVUsUUFBUSxTQUFTLFFBQU8sS0FBSztBQUNqRCxtQkFBUSxVQUFVLE1BQUs7QUFFdkIsY0FBSSxVQUFTO0FBQ2IsY0FBSSxRQUFPLGdCQUFpQixVQUFRLEtBQUssTUFBTSxJQUFJO0FBQ2pELG1CQUFPLElBQUksWUFBWSxPQUFNO0FBQUEsVUFDL0I7QUFDQSxjQUFJLFNBQVEsR0FBRztBQUNiLHNCQUFTLFFBQU8sVUFBVSxDQUFDLE1BQUs7QUFBQSxVQUNsQyxXQUFXLFFBQU87QUFDaEIsc0JBQVMsUUFBTyxLQUFLLE1BQUs7QUFBQSxVQUM1QjtBQUNBLGNBQUksUUFBUSxZQUFXO0FBQ3JCLGtCQUFNLFVBQVUsR0FBRztBQUNuQixzQkFBUyxNQUFNLElBQUksUUFBTyxVQUFVLENBQUMsR0FBRyxJQUFJLFFBQU8sS0FBSyxNQUFNLE1BQUs7QUFBQSxVQUNyRTtBQUNBLGlCQUFPO0FBQUEsUUFDVDtBQUVBLG9CQUFZLFVBQVUsaUJBQWlCLFNBQVMsV0FBVztBQUN6RCxpQkFBTyxLQUFLLFFBQVEsRUFBRSxVQUFVLFNBQVMsRUFBRSxRQUFRO0FBQUEsUUFDckQ7QUFFQSxvQkFBWSxVQUFVLFVBQVUsV0FBVztBQUN6QyxpQkFBTyxLQUFLLEtBQUssZ0JBQWdCO0FBQUEsUUFDbkM7QUFHQSxtQkFBVyxZQUFZLFdBQVcsU0FBUyxNQUFNLFlBQVk7QUFDM0QsY0FBSSxnQkFBZ0IscUNBQXFDLEtBQUssVUFBVSxHQUNwRSxVQUFVLGtCQUFrQixLQUFLLFVBQVUsR0FDM0MsYUFBYSxPQUFPLFVBQVcsU0FBVSxlQUFjLFNBQVMsVUFBVSxNQUFPLGFBQ2pGLGVBQWUsV0FBVyxRQUFRLEtBQUssVUFBVTtBQUVyRCxjQUFJLENBQUMsWUFBWTtBQUNmO0FBQUEsVUFDRjtBQUNBLGlCQUFPLFVBQVUsY0FBYyxXQUFXO0FBQ3hDLGdCQUFJLFFBQVEsS0FBSyxhQUNiLE9BQU8sVUFBVSxDQUFDLENBQUMsSUFBSSxXQUN2QixTQUFTLGlCQUFpQixhQUMxQixZQUFXLEtBQUssSUFDaEIsVUFBVSxVQUFVLFFBQVEsS0FBSztBQUVyQyxnQkFBSSxjQUFjLFNBQVMsUUFBTztBQUNoQyxrQkFBSSxVQUFTLFdBQVcsTUFBTSxRQUFRLFVBQVUsQ0FBQyxNQUFLLEdBQUcsSUFBSSxDQUFDO0FBQzlELHFCQUFRLFdBQVcsV0FBWSxRQUFPLEtBQUs7QUFBQSxZQUM3QztBQUVBLGdCQUFJLFdBQVcsaUJBQWlCLE9BQU8sYUFBWSxjQUFjLFVBQVMsVUFBVSxHQUFHO0FBRXJGLHVCQUFTLFVBQVU7QUFBQSxZQUNyQjtBQUNBLGdCQUFJLFdBQVcsS0FBSyxXQUNoQixXQUFXLENBQUMsQ0FBQyxLQUFLLFlBQVksUUFDOUIsY0FBYyxnQkFBZ0IsQ0FBQyxVQUMvQixXQUFXLFVBQVUsQ0FBQztBQUUxQixnQkFBSSxDQUFDLGdCQUFnQixTQUFTO0FBQzVCLHNCQUFRLFdBQVcsUUFBUSxJQUFJLFlBQVksSUFBSTtBQUMvQyxrQkFBSSxVQUFTLEtBQUssTUFBTSxPQUFPLElBQUk7QUFDbkMsc0JBQU8sWUFBWSxLQUFLLEVBQUUsUUFBUSxNQUFNLFFBQVEsQ0FBQyxXQUFXLEdBQUcsV0FBVyxXQUFVLENBQUM7QUFDckYscUJBQU8sSUFBSSxjQUFjLFNBQVEsUUFBUTtBQUFBLFlBQzNDO0FBQ0EsZ0JBQUksZUFBZSxVQUFVO0FBQzNCLHFCQUFPLEtBQUssTUFBTSxNQUFNLElBQUk7QUFBQSxZQUM5QjtBQUNBLHNCQUFTLEtBQUssS0FBSyxXQUFXO0FBQzlCLG1CQUFPLGNBQWUsVUFBVSxRQUFPLE1BQU0sRUFBRSxLQUFLLFFBQU8sTUFBTSxJQUFLO0FBQUEsVUFDeEU7QUFBQSxRQUNGLENBQUM7QUFHRCxrQkFBVSxDQUFDLE9BQU8sUUFBUSxTQUFTLFFBQVEsVUFBVSxTQUFTLEdBQUcsU0FBUyxZQUFZO0FBQ3BGLGNBQUksT0FBTyxXQUFXLGFBQ2xCLFlBQVksMEJBQTBCLEtBQUssVUFBVSxJQUFJLFFBQVEsUUFDakUsZUFBZSxrQkFBa0IsS0FBSyxVQUFVO0FBRXBELGlCQUFPLFVBQVUsY0FBYyxXQUFXO0FBQ3hDLGdCQUFJLE9BQU87QUFDWCxnQkFBSSxnQkFBZ0IsQ0FBQyxLQUFLLFdBQVc7QUFDbkMsa0JBQUksUUFBUSxLQUFLLE1BQU07QUFDdkIscUJBQU8sS0FBSyxNQUFNLFFBQVEsS0FBSyxJQUFJLFFBQVEsQ0FBQyxHQUFHLElBQUk7QUFBQSxZQUNyRDtBQUNBLG1CQUFPLEtBQUssV0FBVyxTQUFTLFFBQU87QUFDckMscUJBQU8sS0FBSyxNQUFNLFFBQVEsTUFBSyxJQUFJLFNBQVEsQ0FBQyxHQUFHLElBQUk7QUFBQSxZQUNyRCxDQUFDO0FBQUEsVUFDSDtBQUFBLFFBQ0YsQ0FBQztBQUdELG1CQUFXLFlBQVksV0FBVyxTQUFTLE1BQU0sWUFBWTtBQUMzRCxjQUFJLGFBQWEsT0FBTztBQUN4QixjQUFJLFlBQVk7QUFDZCxnQkFBSSxNQUFNLFdBQVcsT0FBTztBQUM1QixnQkFBSSxDQUFDLGVBQWUsS0FBSyxXQUFXLEdBQUcsR0FBRztBQUN4Qyx3QkFBVSxPQUFPLENBQUM7QUFBQSxZQUNwQjtBQUNBLHNCQUFVLEtBQUssS0FBSyxFQUFFLFFBQVEsWUFBWSxRQUFRLFdBQVcsQ0FBQztBQUFBLFVBQ2hFO0FBQUEsUUFDRixDQUFDO0FBRUQsa0JBQVUsYUFBYSxZQUFXLGtCQUFrQixFQUFFLFFBQVEsQ0FBQztBQUFBLFVBQzdELFFBQVE7QUFBQSxVQUNSLFFBQVE7QUFBQSxRQUNWLENBQUM7QUFHRCxvQkFBWSxVQUFVLFFBQVE7QUFDOUIsb0JBQVksVUFBVSxVQUFVO0FBQ2hDLG9CQUFZLFVBQVUsUUFBUTtBQUc5QixlQUFPLFVBQVUsS0FBSztBQUN0QixlQUFPLFVBQVUsUUFBUTtBQUN6QixlQUFPLFVBQVUsU0FBUztBQUMxQixlQUFPLFVBQVUsT0FBTztBQUN4QixlQUFPLFVBQVUsUUFBUTtBQUN6QixlQUFPLFVBQVUsVUFBVTtBQUMzQixlQUFPLFVBQVUsU0FBUyxPQUFPLFVBQVUsVUFBVSxPQUFPLFVBQVUsUUFBUTtBQUc5RSxlQUFPLFVBQVUsUUFBUSxPQUFPLFVBQVU7QUFFMUMsWUFBSSxhQUFhO0FBQ2YsaUJBQU8sVUFBVSxlQUFlO0FBQUEsUUFDbEM7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQUtBLFVBQUksSUFBSSxhQUFhO0FBR3JCLFVBQUksT0FBTyxVQUFVLGNBQWMsT0FBTyxPQUFPLE9BQU8sWUFBWSxPQUFPLEtBQUs7QUFLOUUsY0FBSyxJQUFJO0FBSVQsZUFBTyxXQUFXO0FBQ2hCLGlCQUFPO0FBQUEsUUFDVCxDQUFDO0FBQUEsTUFDSCxXQUVTLFlBQVk7QUFFbkIsUUFBQyxZQUFXLFVBQVUsR0FBRyxJQUFJO0FBRTdCLG9CQUFZLElBQUk7QUFBQSxNQUNsQixPQUNLO0FBRUgsY0FBSyxJQUFJO0FBQUEsTUFDWDtBQUFBLElBQ0YsR0FBRSxLQUFLLE9BQUk7QUFBQTtBQUFBOzs7QUN4emhCWDtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7QUNBQSxzQkFBa0U7QUFFbEUsSUFBTSxlQUFlO0FBQ3JCLElBQU0sZ0JBQWdCO0FBQ3RCLElBQU0sUUFBTixNQUFZO0FBQUEsRUFDUixZQUFZLEtBQUksU0FBUztBQUNyQixTQUFLLEtBQUs7QUFDVixTQUFLLFVBQVU7QUFBQSxFQUNuQjtBQUFBLEVBQ0EsV0FBVztBQUNQLFdBQU8sR0FBRyxLQUFLLFdBQVcsS0FBSztBQUFBLEVBQ25DO0FBQUEsRUFDQSxPQUFPO0FBQ0gsV0FBTyxLQUFLLFNBQVM7QUFBQSxFQUN6QjtBQUFBLEVBQ0EsT0FBTyxPQUFPLEtBQUk7QUFDZCxVQUFNLFFBQVEsSUFBRyxNQUFNLEdBQUc7QUFDMUIsVUFBTSxVQUFVLE1BQU07QUFDdEIsVUFBTSxNQUFNLE1BQU0sTUFBTSxDQUFDLEVBQUUsS0FBSyxHQUFHO0FBQ25DLFdBQU8sSUFBSSxNQUFNLEtBQUssT0FBTztBQUFBLEVBQ2pDO0FBQUEsRUFDQSxPQUFPLFNBQVMsTUFBTTtBQUNsQixXQUFPLE1BQU0sT0FBTyxLQUFLLEdBQUcsQ0FBQztBQUFBLEVBQ2pDO0FBQUEsRUFDQSxPQUFPLFVBQVUsT0FBTztBQUNwQixXQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sTUFBTSxTQUFTLENBQUMsQ0FBQztBQUFBLEVBQzdDO0FBQUEsRUFDQSxPQUFPLFNBQVMsTUFBTTtBQUNsQixXQUFPLElBQUksTUFBTSxLQUFLLE1BQU0sTUFBTTtBQUFBLEVBQ3RDO0FBQUEsRUFDQSxPQUFPLEtBQUssS0FBSSxTQUFTO0FBQ3JCLFdBQU8sSUFBSSxNQUFNLEtBQUksT0FBTyxFQUFFLEtBQUs7QUFBQSxFQUN2QztBQUNKO0FBQ0EsSUFBTSxhQUFhLFNBQVUsTUFBTTtBQUMvQixTQUFPLENBQUMsRUFBRSxPQUFPLEdBQUcsS0FDZixJQUFJLENBQUMsUUFBUTtBQUNkLFVBQU0sSUFBSSxNQUFNLENBQUM7QUFDakIsVUFBTSxTQUFTLElBQUksTUFBTSxHQUFHO0FBQzVCLFVBQU0sUUFBTyxDQUFDO0FBQ2QsZUFBVyxLQUFLLFFBQVE7QUFDcEIsWUFBTSxPQUFPLE9BQU8sTUFBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEdBQUc7QUFDdEQsWUFBSyxLQUFLLE9BQU8sTUFBTTtBQUFBLElBQzNCO0FBQ0EsV0FBTztBQUFBLEVBQ1gsQ0FBQyxDQUFDO0FBQ047QUFDQSxJQUFNLGFBQWEsU0FBVSxNQUFNLGVBQWU7QUFDOUMsTUFBSSxNQUFNO0FBQ04sVUFBTSxVQUFVLENBQUM7QUFDakIsUUFBSSxDQUFDLE9BQU8sT0FBTyxRQUFRLE9BQU8sT0FBTyxPQUFPLE1BQU0sRUFBRSxTQUFTLEtBQUssU0FBUyxHQUFHO0FBQzlFLGNBQVEsS0FBSyxPQUFPO0FBQUEsSUFDeEIsV0FDUyxDQUFDLE9BQU8sUUFBUSxPQUFPLE9BQU8sT0FBTyxPQUFPLE1BQU0sRUFBRSxTQUFTLEtBQUssU0FBUyxHQUFHO0FBQ25GLGNBQVEsS0FBSyxPQUFPO0FBQUEsSUFDeEIsV0FDUyxDQUFDLE9BQU8sUUFBUSxLQUFLLEVBQUUsU0FBUyxLQUFLLFNBQVMsR0FBRztBQUN0RCxjQUFRLEtBQUssT0FBTztBQUFBLElBQ3hCLFdBQ1MsS0FBSyxjQUFjLE9BQU87QUFDL0IsY0FBUSxLQUFLLEtBQUs7QUFBQSxJQUN0QjtBQVFBLFFBQUksS0FBSyxjQUFjLE1BQU07QUFDekIsY0FBUSxLQUFLLE1BQU07QUFDbkIsWUFBTSxRQUFRLGNBQWMsYUFBYSxJQUFJO0FBQzdDLFVBQUksK0JBQU8sYUFBYTtBQUNwQixZQUFJLFdBQVcsTUFBTSxhQUFhO0FBQzlCLGtCQUFRLEtBQUssT0FBTztBQUFBLFFBQ3hCO0FBQ0EsWUFBSSxVQUFVLE1BQU0sYUFBYTtBQUM3QixnQkFBTSxPQUFPLDBDQUFxQixNQUFNLFdBQVc7QUFDbkQsY0FBSSxNQUFNO0FBQ04sb0JBQVEsS0FBSyxHQUFHLFdBQVcsSUFBSSxDQUFDO0FBQUEsVUFDcEM7QUFBQSxRQUNKO0FBQ0EsWUFBSSxjQUFjLE1BQU0sYUFBYTtBQUNqQyxnQkFBTSxVQUFVLGlEQUE0QixNQUFNLGFBQWEsVUFBVTtBQUN6RSxjQUFJLFNBQVM7QUFDVCxvQkFBUSxLQUFLLEdBQUcsT0FBTztBQUFBLFVBQzNCO0FBQUEsUUFDSjtBQUFBLE1BQ0o7QUFDQSxVQUFJLCtCQUFPLE1BQU07QUFDYixnQkFBUSxLQUFLLEdBQUcsV0FBVyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztBQUFBLE1BQzVEO0FBQUEsSUFDSixPQUNLO0FBQ0QsY0FBUSxLQUFLLE1BQU07QUFBQSxJQUN2QjtBQUNBLFdBQU87QUFBQSxFQUNYO0FBQ0EsU0FBTyxDQUFDLFlBQVk7QUFDeEI7QUFDQSxJQUFNLGVBQWUsZUFBZ0IsTUFBTSxRQUFRLFVBQVUsS0FBSTtBQUM3RCxNQUFJLENBQUMsS0FBSTtBQUNMLFVBQUssTUFBTSxLQUFLLEtBQUssTUFBTSxhQUFhO0FBQUEsRUFDNUM7QUFDQSxRQUFNLFFBQVEsT0FBTyxJQUFJLGNBQWMsYUFBYSxJQUFJO0FBQ3hELFFBQU0sT0FBTyxLQUFLLGNBQWMsT0FBTyxLQUFLLFdBQVcsS0FBSztBQUM1RCxRQUFNLFVBQVUsV0FBVyxNQUFNLE9BQU8sSUFBSSxhQUFhLEVBQUUsS0FBSyxHQUFHO0FBQ25FLFFBQU0sT0FBTztBQUFBLElBQ1Q7QUFBQSxJQUNBO0FBQUEsSUFDQSxNQUFNLEtBQUs7QUFBQSxFQUNmO0FBQ0EsTUFBSSxDQUFDLE9BQU8sT0FBTyxRQUFRLE9BQU8sT0FBTyxPQUFPLE1BQU0sRUFBRSxTQUFTLEtBQUssU0FBUyxHQUFHO0FBQzlFLFFBQUk7QUFFQSxXQUFLLGtCQUFrQixvQkFBb0IsT0FBTyxTQUFTLGlCQUFpQixVQUFVLEtBQUssSUFBSTtBQUFBLElBQ25HLFNBQ00sR0FBTjtBQUFBLElBQVE7QUFBQSxFQUNaO0FBQ0EsTUFBSSxTQUFTLGVBQWUsS0FBSyxhQUFhLE1BQU07QUFDaEQsU0FBSyxhQUFhLE1BQU0sT0FBTyxJQUFJLE1BQU0sV0FBVyxJQUFJO0FBQUEsRUFDNUQ7QUFDQSxRQUFNLGNBQWMsK0JBQU87QUFDM0IsTUFBSSxhQUFhO0FBQ2IsV0FBTyxLQUFLLFdBQVcsRUFBRSxRQUFRLENBQUMsTUFBTTtBQUNwQyxVQUFJLENBQUUsT0FBTSxhQUFhO0FBQ3JCLFlBQUksTUFBTSxTQUFTO0FBQ2YsZ0JBQU0sYUFBYSxZQUFZO0FBQy9CLGNBQUk7QUFFQSxnQkFBSSxJQUFJLFVBQVU7QUFDbEIsaUJBQUssS0FBSztBQUFBLFVBQ2QsU0FDTSxHQUFOO0FBQ0ksZ0JBQUk7QUFFQSxtQkFBSyxLQUFLLG9CQUFvQixPQUFPLFNBQVMsaUJBQWlCLFVBQVUsVUFBVTtBQUFBLFlBQ3ZGLFNBQ00sSUFBTjtBQUFBLFlBQVE7QUFBQSxVQUNaO0FBQUEsUUFDSixPQUNLO0FBQ0QsZUFBSyxLQUFLLFlBQVk7QUFBQSxRQUMxQjtBQUFBLE1BQ0o7QUFBQSxJQUNKLENBQUM7QUFBQSxFQUNMO0FBQ0EsU0FBTztBQUFBLElBQ0gsT0FBTztBQUFBLElBQ1A7QUFBQSxJQUNBO0FBQUEsRUFDSjtBQUNKO0FBQ0EsSUFBTSxlQUFlLFNBQVUsT0FBTTtBQUNqQyxTQUFPO0FBQUEsSUFDSCxPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsTUFDRixJQUFJLE1BQU0sS0FBSyxPQUFNLGFBQWE7QUFBQSxNQUNsQyxNQUFNO0FBQUEsSUFDVjtBQUFBLElBQ0EsU0FBUztBQUFBLEVBQ2I7QUFDSjtBQUNBLElBQU0sZ0JBQWdCO0FBQ3RCLElBQU0sWUFBWTtBQUNsQixJQUFNLGNBQWMsU0FBVSxLQUFLO0FBQy9CLFNBQU8sSUFBSSxRQUFRLDBCQUEwQixNQUFNO0FBQ3ZEO0FBQ0EsSUFBTSxpQkFBaUIsU0FBVSxPQUFNLE1BQU0saUJBQWlCO0FBRTFELFFBQU0sbUJBQW1CLElBQUksT0FBTyxJQUFJLFlBQVksZUFBZSxtQ0FBbUMsc0JBQXNCO0FBQzVILFFBQU0sVUFBVSxpQkFBaUIsS0FBSyxJQUFJO0FBQzFDLE1BQUksQ0FBRSxhQUFZLE9BQU87QUFDckIsV0FBTztBQUFBLE1BQ0gsT0FBTztBQUFBLE1BQ1AsVUFBVTtBQUFBLE1BQ1YsWUFBWTtBQUFBLFFBQ1IsTUFBTSxRQUFRO0FBQUEsUUFDZCxTQUFTO0FBQUEsUUFDVCxNQUFNO0FBQUEsTUFDVjtBQUFBLElBQ0o7QUFBQSxFQUNKO0FBR0EsUUFBTSxRQUFRLElBQUksT0FBTyxJQUFJLFlBQVksZUFBZSxNQUFNLGVBQWUsc0JBQXNCO0FBQ25HLFFBQU0sUUFBUSxNQUFNLEtBQUssSUFBSTtBQUM3QixRQUFNLFlBQVksTUFBSyxTQUFTLE1BQU0sR0FBRztBQUN6QyxNQUFJLFFBQVE7QUFDWixNQUFJLFVBQVUsU0FBUyxHQUFHO0FBQ3RCLFlBQVEsVUFBVSxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLEVBQUU7QUFBQSxFQUNqRDtBQUNBLE1BQUksQ0FBRSxXQUFVLE9BQU87QUFDbkIsV0FBTztBQUFBLE1BQ0gsT0FBTyxRQUFRLE1BQU07QUFBQSxNQUNyQixVQUFVO0FBQUEsTUFDVixZQUFZO0FBQUEsUUFDUjtBQUFBLFFBQ0EsU0FBUztBQUFBLFFBQ1QsTUFBTSxNQUFNO0FBQUEsTUFDaEI7QUFBQSxJQUNKO0FBQUEsRUFDSjtBQUNBLFNBQU87QUFDWDtBQThCQSxJQUFNLFlBQVksU0FBVSxNQUFLO0FBRTdCLE1BQUksV0FBVyxLQUFJLFFBQVEsU0FBUztBQUVoQyxXQUFPLEtBQUksUUFBUSxRQUFRO0FBQUEsRUFDL0I7QUFDQSxTQUFPO0FBQ1g7OztBRC9PQSx3QkFBd0Q7OztBRUV4RCxjQUF5QjtBQUN6Qix1QkFBdUc7QUFNdkcsb0JBQTJCLE9BQU87QUFDOUIsU0FBTyxJQUFJLFFBQVEsQ0FBQyxZQUFZLFdBQVcsU0FBUyxLQUFLLENBQUM7QUFDOUQ7QUF3Qk8sd0JBQXdCLE1BQU0sUUFBTyxFQUFFLFNBQVMsYUFBYSxPQUFPLE9BQU8sUUFBUSxNQUFNLEdBQUc7QUFDL0YsTUFBSSxBQUFRLGNBQU0sT0FBTztBQUNyQixVQUFNLFdBQVcsV0FBVztBQUM1QixrQ0FBUSxVQUFVLEFBQVEsY0FBTSxNQUFNLE1BQU0sS0FBSSxDQUFDO0FBQ2pELFdBQU87QUFBQSxFQUNYLE9BQ0s7QUFDRCxVQUFNLE1BQU0sY0FBYyw2Q0FBNkM7QUFBQSxFQUMzRTtBQUNKO0FBcUNBLG9CQUEyQixTQUFTLFVBQVUsTUFBTSxJQUFJLHdCQUFPLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxXQUFXO0FBQ3pHLE1BQUksd0JBQU8sNkJBQTZCO0FBQ3hDLFVBQVEsSUFBSSxFQUFFLE9BQU8sQ0FBQztBQUMxQixHQUFHO0FBQ0MsUUFBTSxVQUFVLFVBQVUsVUFBVSxPQUFPLEVBQUUsS0FBSyxTQUFTLE9BQU87QUFDdEU7QUE4Qk8sSUFBTSxZQUFZLENBQUMsVUFBVSxhQUFhLE9BQU8sQ0FBQyxDQUFDLElBQUksY0FBYyxxQkFBcUIsVUFBVSxVQUFVO0FBVzlHLHNCQUFzQixPQUFPLE1BQU0sSUFBSTtBQUMxQyxRQUFNLFdBQVcsTUFBTTtBQUN2QixNQUFJLFVBQVUsUUFBUSxjQUFjO0FBQUEsSUFDaEM7QUFBQSxJQUNBLFFBQVEsS0FBSyxZQUFZO0FBQUEsSUFDekIsYUFBYTtBQUFBLElBQ2I7QUFBQSxJQUNBLFVBQVU7QUFBQSxFQUNkLENBQUM7QUFDTDtBQU9BLCtCQUFzQyxTQUFTLGVBQWUsSUFBSTtBQUM5RCxRQUFNLGdCQUFnQixJQUFJLFlBQVksaUJBQWlCLFlBQVksRUFBRTtBQUNyRSxRQUFNLGNBQWMsb0NBQWMsR0FBRyxnQkFBZ0Isa0JBQWtCLE1BQU0sS0FBSyxNQUFNLE1BQU0sT0FBTyxHQUFHO0FBQ3hHLFNBQU8sTUFBTSxJQUFJLE1BQU0sT0FBTyxhQUFhLEVBQUU7QUFDakQ7QUFNTyxJQUFNLFFBQVEsQ0FBQyxhQUFhO0FBQy9CLFNBQU8sU0FBUyxNQUFNLGNBQWMsSUFBSSxXQUFXLFdBQVc7QUFDbEU7QUFzQkEsNEJBQW1DLE1BQU0sT0FBTyxVQUFVLEVBQUUsZUFBZSxLQUFLLEdBQUc7QUFDL0UsUUFBTSxFQUFFLGNBQWM7QUFDdEIsTUFBSSxXQUFXLElBQUksY0FBYyxxQkFBcUIsTUFBTSxFQUFFO0FBRTlELE1BQUksQ0FBQyxZQUFZLFFBQVEsZUFBZTtBQUNwQyxlQUFXLE1BQU0sZ0JBQWdCLElBQUk7QUFBQSxFQUN6QyxXQUNTLENBQUMsWUFBWSxDQUFDLFFBQVE7QUFDM0I7QUFFSixRQUFNLDRCQUE0QixDQUFDO0FBRW5DLFlBQVUsaUJBQWlCLENBQUMsU0FBUztBQUNqQyxRQUFJO0FBQ0osUUFBSSxLQUFLLGdCQUFnQiwrQkFBYztBQUNuQyxZQUFNLE9BQVEsTUFBSyxLQUFLLFVBQVUsUUFBUSxPQUFPLFNBQVMsU0FBUyxHQUFHO0FBQ3RFLFVBQUksUUFBUSxLQUFLLFdBQVcsTUFBTSxLQUFLLGNBQWMsTUFBTTtBQUN2RCxrQ0FBMEIsS0FBSyxJQUFJO0FBQUEsTUFDdkM7QUFBQSxJQUNKO0FBQUEsRUFDSixDQUFDO0FBRUQsTUFBSSwwQkFBMEIsU0FBUyxHQUFHO0FBQ3RDLGNBQVUsY0FBYywwQkFBMEIsRUFBRTtBQUFBLEVBQ3hELE9BQ0s7QUFFRCxVQUFNLE9BQU8sSUFBSSxNQUFNLFVBQVUsaUJBQWlCO0FBQ2xELFVBQU0sT0FBTyxNQUFNLFdBQVcsTUFBTSxpQkFBaUIsTUFBTSxJQUNyRCxVQUFVLGdCQUFnQixJQUMxQixVQUFVLGdCQUFnQjtBQUVoQyxVQUFNLEtBQUssU0FBUyxVQUFVLEVBQUUsUUFBUSxNQUFNLEtBQUssQ0FBQztBQUFBLEVBQ3hEO0FBQ0o7QUFzQ0Esd0JBQStCLFVBQVUsV0FBVyxPQUFPLFNBQVM7QUFDaEUsTUFBSSxPQUFPO0FBQ1gsT0FBSyxRQUFRLElBQUksVUFBVSxnQkFBZ0IsUUFBUSxHQUFHO0FBQ2xELFFBQUksS0FBSyxnQkFBZ0IsV0FBVztBQUNoQyxhQUFPLEtBQUs7QUFBQSxJQUNoQjtBQUNBLFVBQU0sS0FBSyxhQUFhLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDekM7QUFBQSxFQUNKO0FBQ0EsU0FDSyxVQUFTLFFBQVEsU0FBUyxTQUFTLE9BQU8sU0FBUyxXQUM5QyxJQUFJLFVBQVUsYUFBYSxLQUFLLElBQ2hDLElBQUksVUFBVSxZQUFZLEtBQUs7QUFDekMsUUFBTSxLQUFLLGFBQWE7QUFBQSxJQUNwQixNQUFNO0FBQUEsSUFDTixRQUFRO0FBQUEsRUFDWixDQUFDO0FBQ0QsU0FBTyxLQUFLO0FBQ2hCO0FBOEVPLCtCQUErQixTQUFTO0FBQzNDLFFBQU0sRUFBRSxrQkFBa0IsSUFBSTtBQUM5QixTQUFPLE9BQU8sS0FBSyxhQUFhLEVBQUUsV0FBVztBQUNqRDtBQU1BLG9DQUEyQyxRQUFRLEtBQU0sT0FBTSxJQUFJO0FBQy9ELFFBQU0sVUFBVSxJQUFJLE1BQU0saUJBQWlCLEVBQUU7QUFDN0MsTUFBSSxJQUFJO0FBQ1IsU0FBTyxDQUFDLHNCQUFzQixPQUFPLEtBQUssSUFBSSxNQUFLO0FBQy9DLFVBQU0sS0FBSyxLQUFLO0FBQ2hCO0FBQUEsRUFDSjtBQUNBLE1BQUksTUFBTSxNQUFLO0FBQ1gsVUFBTSxNQUFNLHdHQUF3RztBQUFBLEVBQ3hIO0FBQ0o7OztBQ3RXTyxJQUFNLGNBQWM7QUFFcEIsSUFBTSxZQUFZO0FBQ2xCLElBQU0sWUFBWTtBQUVsQixJQUFNLGFBQWE7QUFDbkIsSUFBTSxpQkFDWDtBQUVLLElBQU0sWUFBWTtBQUNsQixJQUFNLGdCQUNYO0FBRUssSUFBTSxrQkFBa0IsSUFBSSxPQUFPLGdCQUFnQjtBQUNuRCxJQUFNLG9CQUFvQixJQUFJLE9BQU8sa0JBQWtCO0FBR3ZELElBQU0sWUFBWSxJQUFJLE9BQU8saUJBQWlCO0FBRzlDLElBQU0sZ0JBQWdCO0FBQUEsRUFDM0I7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGO0FBRU8sSUFBTSxXQUFXO0FBQUEsRUFDdEI7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGO0FBR08sSUFBTSxhQUFhLENBQUMsTUFBTSxRQUFRLFFBQVEsUUFBUSxNQUFNO0FBS3hELElBQU0sbUJBQW9EO0FBQUEsRUFDL0QsSUFBSTtBQUFBLEVBQ0osTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUNSO0FBQ08sSUFBTSxZQUFZLENBQUMsVUFBVSxXQUFXLE9BQU87QUFDL0MsSUFBTSxhQUFhLENBQUMsUUFBUSxRQUFRO0FBQ3BDLElBQU0sY0FBYyxDQUFDLE9BQU8sYUFBYTtBQUN6QyxJQUFNLGtCQUFrQixDQUFDLFFBQVEsT0FBTztBQUN4QyxJQUFNLG1CQUFtQjtBQUFBLEVBQzlCO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFDRjtBQUVPLElBQU0sb0JBQW9DO0FBQUEsRUFFL0MsZUFBZTtBQUFBLEVBQ2YsY0FBYztBQUFBLEVBQ2QsWUFBWTtBQUFBLEVBQ1osVUFBVTtBQUFBLEVBQ1YsV0FBVztBQUFBLEVBQ1gsZUFBZTtBQUFBLEVBQ2YsWUFBWTtBQUFBLEVBQ1osUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsWUFBWTtBQUFBLEVBQ1osUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsWUFBWTtBQUFBLEVBQ1osY0FBYztBQUFBLEVBQ2QsTUFBTTtBQUFBLEVBQ04sV0FBVztBQUFBLEVBQ1gsZUFBZTtBQUFBLEVBQ2YsYUFBYTtBQUFBLEVBQ2IsYUFBYSxDQUFDO0FBQUEsRUFDZCxTQUFTO0FBQUEsRUFDVCxPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQ2I7QUFFTyxJQUFNLHVCQUF1QyxPQUFPLE9BQ3pELG1CQUNBO0FBQUEsRUFDRSxlQUFlO0FBQUEsRUFDZixVQUFVO0FBQUEsRUFDVixZQUFZO0FBQUEsRUFDWixRQUFRO0FBQUEsRUFDUixhQUFhO0FBQUEsRUFDYixTQUFTO0FBQUEsRUFDVCxXQUFXO0FBQ2IsQ0FDRjtBQUNBLGlCQUFpQixLQUFLLEdBQUcsT0FBTyxLQUFLLGlCQUFpQixDQUFDO0FBRWhELElBQU0sZ0JBQWdCLE1BQWdCO0FBQzNDLFNBQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRTtBQUMxRDtBQVdPLElBQU0sb0JBQW9CLE1BQW9CO0FBQ25ELFNBQU87QUFBQSxJQUNMLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsRUFBRTtBQUFBLElBQzlCLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsRUFBRTtBQUFBLElBQ2hDLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsRUFBRTtBQUFBLElBQ2hDLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsRUFBRTtBQUFBLElBQ2hDLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsRUFBRTtBQUFBLEVBQ2xDO0FBQ0Y7QUFFTyxJQUFNO0FBQUEsRUFDWDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsSUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGO0FBRUssSUFBTTtBQUFBLEVBQ1g7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxJQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGO0FBRUssSUFBTSxpQkFBaUI7QUFBQSxFQUM1QjtBQUFBLElBQ0UsT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsS0FBSztBQUFBLEVBQ1A7QUFBQSxFQUNBO0FBQUEsSUFDRSxPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUDtBQUFBLEVBQ0E7QUFBQSxJQUNFLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLEtBQUs7QUFBQSxFQUNQO0FBQUEsRUFDQTtBQUFBLElBQ0UsT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsS0FBSztBQUFBLEVBQ1A7QUFBQSxFQUNBO0FBQUEsSUFDRSxPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUDtBQUFBLEVBQ0E7QUFBQSxJQUNFLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLEtBQUs7QUFBQSxFQUNQO0FBQUEsRUFDQTtBQUFBLElBQ0UsT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsS0FBSztBQUFBLEVBQ1A7QUFBQSxFQUNBO0FBQUEsSUFDRSxPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUDtBQUFBLEVBQ0E7QUFBQSxJQUNFLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLEtBQUs7QUFBQSxFQUNQO0FBQUEsRUFDQTtBQUFBLElBQ0UsT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLElBQ04sV0FBVztBQUFBLElBQ1gsYUFBYTtBQUFBLElBQ2IsS0FBSztBQUFBLEVBQ1A7QUFBQSxFQUNBO0FBQUEsSUFDRSxPQUFPO0FBQUEsSUFDUCxNQUFNO0FBQUEsSUFDTixXQUFXO0FBQUEsSUFDWCxhQUFhO0FBQUEsSUFDYixLQUFLO0FBQUEsRUFDUDtBQUFBLEVBQ0E7QUFBQSxJQUNFLE9BQU87QUFBQSxJQUNQLE1BQU07QUFBQSxJQUNOLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLEtBQUs7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YUFBYTtBQUFBLEVBQ2IsZ0JBQWdCO0FBQUEsRUFDaEIsWUFBWTtBQUFBLEVBQ1osWUFBWTtBQUFBLEVBQ1osU0FBUztBQUFBLEVBQ1QsWUFBWTtBQUFBLEVBQ1osY0FBYztBQUFBLEVBQ2QsZUFBZTtBQUFBLEVBQ2YsZUFBZTtBQUFBLEVBQ2YsZUFBZTtBQUFBLEVBQ2YsZUFBZTtBQUFBLEVBQ2YsWUFBWTtBQUFBLEVBQ1osVUFBVTtBQUFBLEVBQ1YsYUFBYTtBQUFBLEVBQ2IsU0FBUztBQUFBLEVBQ1QsU0FBUztBQUFBLEVBQ1QsWUFBWTtBQUFBLEVBQ1osV0FBVztBQUFBLEVBQ1gsYUFBYTtBQUFBLEVBQ2IsYUFBYTtBQUFBLEVBQ2IsU0FBUztBQUFBLEVBQ1QsV0FBVztBQUFBLEVBQ1gsWUFBWTtBQUFBLEVBQ1osTUFBTTtBQUFBLEVBQ04sV0FBVztBQUFBLEVBQ1gsTUFBTTtBQUFBLEVBQ04sT0FBTztBQUFBLEVBQ1AsYUFBYTtBQUFBLEVBQ2IsTUFBTTtBQUFBLEVBQ04sVUFBVTtBQUFBLEVBQ1YsU0FBUztBQUFBLEVBQ1QsV0FBVztBQUFBLEVBQ1gsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsVUFBVTtBQUFBLEVBQ1YsZUFBZTtBQUFBLEVBQ2YsV0FBVztBQUFBLEVBQ1gsY0FBYztBQUFBLEVBQ2QsV0FBVztBQUFBLEVBQ1gsWUFBWTtBQUFBLEVBQ1osV0FBVztBQUFBLEVBQ1gsc0JBQXNCO0FBQUEsRUFDdEIsV0FBVztBQUFBLEVBQ1gsWUFBWTtBQUFBLEVBQ1osV0FBVztBQUFBLEVBQ1gsV0FBVztBQUFBLEVBQ1gsYUFBYTtBQUFBLEVBQ2IsZUFBZTtBQUFBLEVBQ2YsY0FBYztBQUFBLEVBQ2QsZ0JBQWdCO0FBQUEsRUFDaEIsZ0JBQWdCO0FBQUEsRUFDaEIsZ0JBQWdCO0FBQUEsRUFDaEIsYUFBYTtBQUFBLEVBQ2IsTUFBTTtBQUFBLEVBQ04sV0FBVztBQUFBLEVBQ1gsT0FBTztBQUFBLEVBQ1AsU0FBUztBQUFBLEVBQ1QsUUFBUTtBQUFBLEVBQ1Isa0JBQWtCO0FBQUEsRUFDbEIsWUFBWTtBQUFBLEVBQ1osY0FBYztBQUFBLEVBQ2QsY0FBYztBQUFBLEVBQ2QsZ0JBQWdCO0FBQUEsRUFDaEIsaUJBQWlCO0FBQUEsRUFDakIsbUJBQW1CO0FBQUEsRUFDbkIsaUJBQWlCO0FBQUEsRUFDakIsaUJBQWlCO0FBQUEsRUFDakIsY0FBYztBQUFBLEVBQ2QsV0FBVztBQUFBLEVBQ1gsV0FBVztBQUFBLEVBQ1gsVUFBVTtBQUFBLEVBQ1YsYUFBYTtBQUFBLEVBQ2IsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsT0FBTztBQUFBLEVBQ1AsV0FBVztBQUFBLEVBQ1gsUUFBUTtBQUFBLEVBQ1IsV0FBVztBQUFBLEVBQ1gsUUFBUTtBQUFBLEVBQ1IsZUFBZTtBQUFBLEVBQ2YsV0FBVztBQUFBLEVBQ1gsZUFBZTtBQUFBLEVBQ2YsZUFBZTtBQUFBLEVBQ2YsWUFBWTtBQUFBLEVBQ1osV0FBVztBQUFBLEVBQ1gsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sWUFBWTtBQUFBLEVBQ1osUUFBUTtBQUFBLEVBQ1IsZUFBZTtBQUFBLEVBQ2YsS0FBSztBQUFBLEVBQ0wsV0FBVztBQUFBLEVBQ1gsV0FBVztBQUFBLEVBQ1gsYUFBYTtBQUFBLEVBQ2IsUUFBUTtBQUFBLEVBQ1IsWUFBWTtBQUFBLEVBQ1osVUFBVTtBQUFBLEVBQ1YsVUFBVTtBQUFBLEVBQ1YsUUFBUTtBQUFBLEVBQ1IsUUFBUTtBQUFBLEVBQ1IsU0FBUztBQUFBLEVBQ1QsV0FBVztBQUFBLEVBQ1gsV0FBVztBQUFBLEVBQ1gsV0FBVztBQUFBLEVBQ1gsTUFBTTtBQUFBLEVBQ04sYUFBYTtBQUFBLEVBQ2IsV0FBVztBQUFBLEVBQ1gsS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUFBLEVBQ04sU0FBUztBQUFBLEVBQ1QsUUFBUTtBQUFBLEVBQ1IsV0FBVztBQUFBLEVBQ1gsUUFBUTtBQUFBLEVBQ1IsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsWUFBWTtBQUFBLEVB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 diff --git a/.obsidian/plugins/breadcrumbs/manifest.json b/.obsidian/plugins/breadcrumbs/manifest.json index 72399e5..06a2fc2 100644 --- a/.obsidian/plugins/breadcrumbs/manifest.json +++ b/.obsidian/plugins/breadcrumbs/manifest.json @@ -1,7 +1,7 @@ { "id": "breadcrumbs", "name": "Breadcrumbs", - "version": "3.6.3", + "version": "3.6.4", "minAppVersion": "0.15.2", "description": "Visualise & navigate your vault's structure", "author": "SkepticMystic", diff --git a/.obsidian/plugins/emoji-shortcodes/main.js b/.obsidian/plugins/emoji-shortcodes/main.js index d567ddc..801f0c1 100644 --- a/.obsidian/plugins/emoji-shortcodes/main.js +++ b/.obsidian/plugins/emoji-shortcodes/main.js @@ -777,7 +777,7 @@ const emoji = JSON.parse(`{ ":health_worker:": "🧑‍⚕", ":hear_no_evil:": "🙉", ":heard_mcdonald_islands:": "🇭‍🇲", - ":heart:": "❤", + ":heart:": "❤️", ":heart_decoration:": "💟", ":heart_eyes:": "😍", ":heart_eyes_cat:": "😻", @@ -1997,7 +1997,7 @@ class EmojiSuggester extends obsidian.EditorSuggest { return null; } getSuggestions(context) { - let emoji_query = context.query.replace(':', ''); + let emoji_query = context.query.replace(':', '').toLowerCase(); return Object.keys(emoji).filter(p => p.includes(emoji_query)); } renderSuggestion(suggestion, el) { @@ -2014,4 +2014,4 @@ class EmojiSuggester extends obsidian.EditorSuggest { } module.exports = EmojiShortcodesPlugin; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsInNyYy9lbW9qaUxpc3QudHMiLCJzcmMvZW1vamlQb3N0UHJvY2Vzc29yLnRzIiwic3JjL3NldHRpbmdzLnRzIiwic3JjL21haW4udHMiXSwic291cmNlc0NvbnRlbnQiOm51bGwsIm5hbWVzIjpbIlBsdWdpblNldHRpbmdUYWIiLCJTZXR0aW5nIiwiUGx1Z2luIiwiRWRpdG9yU3VnZ2VzdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXVEQTtBQUNPLFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRTtBQUM3RCxJQUFJLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sS0FBSyxZQUFZLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUNoSCxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFLFVBQVUsT0FBTyxFQUFFLE1BQU0sRUFBRTtBQUMvRCxRQUFRLFNBQVMsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDbkcsUUFBUSxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDdEcsUUFBUSxTQUFTLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUU7QUFDdEgsUUFBUSxJQUFJLENBQUMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDOUUsS0FBSyxDQUFDLENBQUM7QUFDUDs7QUM3RUE7QUFFTyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZzBEOUIsQ0FBQSxDQUFBLENBQUM7O0FDL3pEVyxNQUFPLDBCQUEwQixDQUFBO0FBTTlDLElBQUEsT0FBTyxZQUFZLENBQUMsU0FBNkIsRUFBRSxFQUFlLEVBQUE7O0FBQ2pFLFFBQUEsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sS0FBSSxRQUFRLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUMvRyxZQUFBLE9BQU8sS0FBSyxDQUFDO0FBQ2IsU0FBQTtBQUNELFFBQUEsSUFBSSxFQUFFLENBQUMsYUFBYSxFQUFFLEVBQUM7QUFDdEIsWUFBQSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQWdCLEtBQUssSUFB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 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsInNyYy9lbW9qaUxpc3QudHMiLCJzcmMvZW1vamlQb3N0UHJvY2Vzc29yLnRzIiwic3JjL3NldHRpbmdzLnRzIiwic3JjL21haW4udHMiXSwic291cmNlc0NvbnRlbnQiOm51bGwsIm5hbWVzIjpbIlBsdWdpblNldHRpbmdUYWIiLCJTZXR0aW5nIiwiUGx1Z2luIiwiRWRpdG9yU3VnZ2VzdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXVEQTtBQUNPLFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRTtBQUM3RCxJQUFJLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sS0FBSyxZQUFZLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUNoSCxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFLFVBQVUsT0FBTyxFQUFFLE1BQU0sRUFBRTtBQUMvRCxRQUFRLFNBQVMsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDbkcsUUFBUSxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDdEcsUUFBUSxTQUFTLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUU7QUFDdEgsUUFBUSxJQUFJLENBQUMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDOUUsS0FBSyxDQUFDLENBQUM7QUFDUDs7QUM3RUE7QUFFTyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZzBEOUIsQ0FBQSxDQUFBLENBQUM7O0FDL3pEVyxNQUFPLDBCQUEwQixDQUFBO0FBTTlDLElBQUEsT0FBTyxZQUFZLENBQUMsU0FBNkIsRUFBRSxFQUFlLEVBQUE7O0FBQ2pFLFFBQUEsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sS0FBSSxRQUFRLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUMvRyxZQUFBLE9BQU8sS0FBSyxDQUFDO0FBQ2IsU0FBQTtBQUNELFFBQUEsSUFBSSxFQUFFLENBQUMsYUFBYSxFQUFFLEVBQUM7QUFDdEIsWUFBQSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQWdCLEtBQUssSUFB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 diff --git a/.obsidian/plugins/emoji-shortcodes/manifest.json b/.obsidian/plugins/emoji-shortcodes/manifest.json index 1c84468..ceb7df4 100644 --- a/.obsidian/plugins/emoji-shortcodes/manifest.json +++ b/.obsidian/plugins/emoji-shortcodes/manifest.json @@ -1,10 +1,10 @@ { "id": "emoji-shortcodes", "name": "Emoji Shortcodes", - "version": "2.1.2", + "version": "2.1.3", "minAppVersion": "0.12.17", "description": "This Plugin enables the use of Markdown Emoji Shortcodes :smile:", "author": "phibr0", "authorUrl": "https://github.com/phibr0", "isDesktopOnly": false -} \ No newline at end of file +} diff --git a/.obsidian/plugins/obsidian-completr/main.js b/.obsidian/plugins/obsidian-completr/main.js index 2367d37..d087694 100644 --- a/.obsidian/plugins/obsidian-completr/main.js +++ b/.obsidian/plugins/obsidian-completr/main.js @@ -2253,7 +2253,7 @@ var CompletrPlugin = class extends import_obsidian5.Plugin { constructor() { super(...arguments); this.onFileOpened = (file) => { - if (!this.settings.fileScannerScanCurrent || !file) + if (!this.settings.fileScannerProviderEnabled || !this.settings.fileScannerScanCurrent || !file) return; FileScanner.scanFile(this.settings, file, true); }; @@ -2327,7 +2327,8 @@ var CompletrPlugin = class extends import_obsidian5.Plugin { ], editorCallback: (editor) => { this._suggestionPopup.trigger(editor, this.app.workspace.getActiveFile(), true); - } + }, + isVisible: () => !this._suggestionPopup.isVisible() }); this.addCommand({ id: "completr-select-next-suggestion", diff --git a/.obsidian/plugins/obsidian-completr/manifest.json b/.obsidian/plugins/obsidian-completr/manifest.json index e3f51b5..62819a3 100644 --- a/.obsidian/plugins/obsidian-completr/manifest.json +++ b/.obsidian/plugins/obsidian-completr/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-completr", "name": "Completr", - "version": "3.0.0", + "version": "3.0.1", "minAppVersion": "1.0.0", "description": "This plugin provides advanced auto-completion functionality for LaTeX, Frontmatter and standard writing.", "author": "tth05", diff --git a/.obsidian/plugins/obsidian-completr/scanned_words.txt b/.obsidian/plugins/obsidian-completr/scanned_words.txt index 2c92ae9..f77f1c4 100644 --- a/.obsidian/plugins/obsidian-completr/scanned_words.txt +++ b/.obsidian/plugins/obsidian-completr/scanned_words.txt @@ -203,6 +203,476 @@ PvN PvW PIFVHA PXLBEJ +PhD +Pnb +PgQ +PyiqU +Problem +PEoOt +PgR +PVl +PPB +PqQL +PLE +Pqp +PGkE +Pje +Puo +PhX +PeMSU +Pbq +PXc +PqJ +Pfb +PTH +Plv +PXfYEp +PvX +PCW +PxW +Pcg +Pxa +PdR +PeKP +PYZ +PJM +Plrz +PMz +PŚ +PzQ +Pbz +PptL +PlSI +PGpd +PlV +PBP +PTL +PDm +Puk +PoD +Ptj +Pqf +Pyj +PLqL +PKh +PQT +PJw +Pmy +PqG +PGo +Pgg +Pcl +PAr +Pgi +Pie +PwM +PHj +PPl +PCG +Pyk +Pph +PmB +PQY +Pwj +PTQ +PGl +PRy +PBb +PBQ +Pef +PfE +PrO +PSx +PCp +PCVv +PuX +PqM +PDD +PGh +PvR +PzR +PKH +PLe +PGs +PZe +PMl +PJmv +PVN +PstJ +PCK +PqN +PsRcwB +Pcr +PgG +Pyic +PYT +Pix +POa +PNQ +PKA +PNS +PQH +Pnq +PnY +PZz +PEAYö +PBIv +PPL +PrT +PrJ +PFm +PZL +PpTpb +PBS +PWs +PegQ +PjW +PrV +Pdz +PcI +PaE +PNH +Pfaf +Pil +PNK +PDc +PAX +PpAN +Pzs +PIAp +PdT +PvG +PkG +Pezj +Pth +PSoE +PaZuV +Pjd +PiLg +PmLb +PQhFW +PWA +PxK +Pgq +PmVb +PAW +Psq +Prb +Pia +PJY +PXo +PAt +Pwqb +PdOD +PjY +PXg +PEZ +PFT +Pki +PMUZc +PPc +PbR +PiH +PhkLO +Pll +PlD +PZa +PfR +Pjv +PXe +PYL +PIsl +Pre +Pnv +PAAK +PAJ +PHWn +PyX +PkF +PON +PmO +PFa +Ptd +Pkm +Pva +PvF +Pea +PAgg +PnHL +Pzt +PMEk +PKc +PIl +Pmm +PlW +PckH +PAO +Prs +PMnwI +PgA +PgC +PYsP +PLp +PlK +Pgo +PcX +PYsl +PUKFt +Pzn +Pno +PAY +PPJ +PJu +Pdk +PIT +PxU +PAbG +PZc +Pqq +Pon +PET +PKm +PQl +PmW +PhNu +PyO +PghS +PsP +PLCQ +PEt +PRm +PVD +PhB +PnEE +PIm +Pij +PIJ +PkB +Pob +PXX +PQrqt +PpR +PXM +PDZ +PLc +PqT +PhH +PAI +Per +PDz +PLl +PIP +PEH +PSu +PJI +PXY +PBVYN +PVO +PEo +PZX +PHzh +Pmeh +PER +Pgv +Piq +PBD +PPb +PLA +PVP +PGm +PMm +PQn +PJH +PDW +PtB +PgW +POE +Pwz +PuB +PZg +PbU +PRC +PYJW +Plj +PCx +Pvd +PNn +PQqI +Plq +PEM +PFQ +Pei +PGX +PvK +PCf +PEh +Phl +PlHw +Puv +PHc +PdL +PEs +Pxh +POJg +PVlY +PXj +Pyn +Pbs +Pvj +PYQ +PdV +PVx +Pbk +Pra +PZG +PxC +PuR +PVxP +PYHtp +PtV +PXaJ +PZW +PKv +PIH +PEg +PiCf +Ptl +PSk +PnQ +PbLb +Pfh +PuW +PcZi +PrVK +Pko +Pnd +PSY +Pzb +PYh +PIa +PQz +PuIr +PsE +PqQ +PVe +PQi +Pala +PcEPP +PXi +Pgy +PMv +PCb +Pbc +PGsr +PhW +PeW +PMu +Pxo +PRRXAx +Pyf +PRt +PnI +PUp +Pjg +POeH +PEF +PWCA +PaT +PQA +PFq +PDn +Pvn +Pdyl +PUU +Ple +PJt +PhDV +PTvV +Pvo +PxL +PXu +Pln +PNE +Pht +PUI +PMR +PVI +Pan +PTo +PYu +PTjC +PAVE +PRf +PLlEDi +PAn +PAj +PIuUT +PgJ +PNKd +PRB +PYl +PPk +PBx +PRM +POXCXO +PhQ +PvT +PAQ +PYF +PaPl +PpV +PUW +PASPA +PYa +PGvq +Pbx +PFhxhd +PJD +PKG +PJnr +PoSm +PeA +PqyB +PWI +PYY +PJE +PoA +PJpDH +Pww +PNiS +PWP +PwP +POP +PoP +PgP +PUed +PVc +PuM +PIhf +PxbxR +Prm +PWSg +PJSY +Ppd +PvM +PUc +Pis +PyfB +PtIvd +Pqm +PQg +PPyoO +PpRM +PlJ +PKo +PmK +Phy +PoI +PHf +PgL +Ppp +PIo +PCFURV obj oh oq @@ -416,6 +886,485 @@ oJQ oIn oMG oHS +ouoN +oAa +onV +osBR +oCc +oCu +oBS +oVI +obhG +oZq +ocK +oGxxr +oFu +owr +oQxT +omHm +oQIctY +oHz +ozm +oDj +oZvv +oWK +oqz +ocR +otz +oiS +omt +ovU +oweiF +oeX +oau +oOj +obM +oTn +osA +oEr +opa +oRl +ozi +ozG +odN +ooI +owN +oLv +oIj +ovc +oHUg +ouE +opE +otY +oOfQx +ool +ofR +oUL +ovV +oBt +oUZ +obFJ +oRn +oVP +ono +oYf +ohJ +oBWm +oYy +oEi +oCG +oAj +oZkC +omqY +ogG +oDyi +oTR +owQ +oTra +onYhi +oHC +oMz +owb +ojv +osX +ojbBY +oPa +owt +oiq +oqe +oBQs +oDL +oLjU +oit +ozS +onA +oVf +oqDM +oKk +oiqz +oqY +ogu +oNR +oMJW +oHtN +ozkk +oXw +omi +oEVm +obp +oca +obh +oDG +oPci +oAoq +ozq +oAT +oqh +oST +onP +obJkv +oWT +oHc +oEn +oPB +oci +oZX +oEH +oPD +oZn +oLV +oAI +oVA +oSf +oTzu +oDD +oqt +oha +otu +ogK +oXk +otA +ozbqu +ofk +oAA +ouq +oox +oEN +oFk +oXg +oMp +oMJ +oodd +onY +oHM +oGm +oOc +oGP +omeaR +oTi +opb +oIB +obl +owR +oqS +osF +oCx +ozxD +oWJ +oHG +ojK +oGk +oRj +ooBh +ouWz +oGQq +oö +odjA +ohw +oTH +oOW +oQJ +ozN +ojM +olu +osgV +oPEC +oń +oGA +owd +oFb +ouC +oPMv +oKb +ohR +ofW +oQq +oRT +ote +oTFz +oSZr +olj +oktX +oyo +oGt +oMD +oto +oPF +oBo +oVi +ooLbm +oyL +oVB +oQL +ozZ +oPg +obP +owFy +ook +oXzJ +oCo +oZu +oHe +oß +oAS +obv +orH +oot +oCj +oiW +ozUXZ +oRp +oGI +oCb +oMR +oWjM +oVw +ohA +opUT +otns +ohV +oaj +oDRE +omU +oib +oKC +oIxu +ohg +oÖg +oBs +ogD +oDa +odmM +oZG +oth +ooQpf +oIW +ovcJ +oLW +oxi +ouh +oHy +oUm +oRA +ohk +ovp +oyb +ojNEh +oBA +ojX +oWwX +oEy +oOd +oEM +ouR +oDs +oGe +oYZa +oNX +odrD +oDxQYNv +ocP +oEW +oIq +oEsS +oke +oTz +oQjNV +oEU +oHa +ouV +oMC +ovi +oSJ +oiZ +oSF +oMi +oir +oLjn +oJx +oGq +oKf +oyn +oFm +oOu +onx +oRg +oxl +oPw +oub +opr +ofPu +oIG +orP +oSl +oNZ +orC +oŻ +oYo +oCZ +ofsz +oSM +oCi +oax +oXW +ofd +okh +oZc +oUM +oeP +ohLpc +oxTiL +ooa +oec +oyq +oVp +olk +ops +ojzQ +oNF +oWwB +oKB +ohn +oCK +oDN +oqb +oBU +ojm +ouf +oer +ocf +onp +oQY +opF +oHSKrA +oudVP +oBl +opK +oYB +oim +oZv +olX +otM +ovT +opm +oNl +oGi +oFpDe +oVz +oLO +oBH +ouP +ohi +oWHc +onO +oFn +oRF +olV +ogH +ohZ +ouc +oDo +oVe +oAX +oAE +oUJa +osr +omk +otR +onWF +oTy +ost +ofF +oMu +olx +odsy +ozy +oLk +oMf +oWE +oaO +oty +oMUy +oxAq +oyI +oTL +oKD +olJ +ofq +ocV +orX +oTB +orB +oLT +oHl +oAW +obf +oEv +ofe +oxz +oxP +oLS +oOv +oFsy +orO +oEZk +oCed +obF +oJg +oioE +ovVj +oKs +oGK +oNrK +ooA +ooU +ofA +oeT +oÜ +ouT +ogZ +owT +oqo +oTk +oEa +oXi +oph +ofVf +otX +oGC +ohl +oNS +oNL +oTM +oDc +ocTo +oee +oPh +oSL +ovm +opL +orL +olF +oQk +ofQ +oeg +oCn +ojo +oYt +ofz +obsidian +oscU +ord +oHbY +oAzb +oJy +oJa +otr +oKp +ovl +oVqr +oNnU +odUN GoTo GS Gl @@ -607,6 +1556,451 @@ GepuZ GPID Gzb GXAGEC +GAT +GTx +GcU +GIqF +GAa +GGM +GBv +Grafika +GhJ +GVl +GdW +GYb +GRk +GCX +Ged +GrZ +GXN +GYpx +GwD +GTY +GYI +GTi +GmK +GNE +GAS +Gqwdv +Gxc +Gxt +GfZ +GDd +GZy +GJf +GYk +Ghh +GUR +Gzl +Grd +GEI +GQmq +GkmZK +GgC +Gow +GYOX +GjC +GoYA +GDO +Ghn +GcM +Glu +Geq +GeD +GEv +Gpj +GPqXb +GzKX +Gbe +GNA +GEr +GJer +Gć +Gith +GaSa +GKC +GDaKT +GuB +GST +GWT +GRKa +GoI +GOp +GÓ +Gup +GAK +Gos +GoK +GCLu +GhV +Gbg +GtQ +Gpn +GpNU +GiK +GSi +Gcp +Gqr +GEl +Gó +GTA +GlT +GYs +GTe +GWz +GyE +GCT +Gph +GBIp +Gvxj +GBH +GvyNHt +GWa +GsV +Gqw +GKq +GpV +GŁ +GEAz +GjEl +GSC +GSq +Glz +Gou +GWf +GQn +GUL +GVU +Got +GNi +Gjr +GAA +Gqk +GFp +GJlr +GmZ +GdR +GdS +GpW +GNG +GZa +GKnp +GGv +GHK +Gof +GfB +GfQ +GbAE +GMv +GAH +GZgH +Gnd +GDf +GTI +GJu +Gxi +GNq +GsC +GIH +Gkf +GgR +GJv +Git +GZIk +Gsk +Gsw +GWj +Gwk +GEH +GniQ +GrS +GyS +GoT +GWG +GgO +Gru +GOST +GMoJ +GKW +GdY +Gga +GtY +GSYC +GBQ +GHOw +GHE +GoZ +GmG +Gct +GAh +GgFq +GEL +Gdt +Gjp +Gdr +GoU +GsM +GOs +GVz +GVO +GyU +GNI +GzK +GyAr +GLq +Guo +Gie +Gkl +GrX +Gncvo +GSx +Gzm +GvZ +Gys +Gola +Gbs +GQB +GAC +GBmS +Gnc +GJd +Gmx +GhHRUJ +Gsz +Gafy +GNu +GVv +GBz +Gud +GJU +Gvn +GZi +GEQ +GoX +GLA +GHg +GPa +GRm +Gcd +GrDg +Gfd +GsQ +Gyi +GNQ +GPA +Gad +Guh +GxC +GMH +GBl +GAv +Guw +Gmk +GCw +GJw +GofL +GtD +GASpl +GSl +GFb +GXK +Gbn +GRZ +GLa +GEM +GZc +GGX +GYda +Gxh +GAq +GUp +GGl +Gse +GxU +GPm +GOSA +GpD +GuK +Gbu +GJS +Gxo +GrP +GeC +GuS +GkH +GTR +GIL +GqI +GkNO +GYG +GIc +GMSAy +GtG +Goy +GZw +GwU +GxT +GbT +Gsn +GRh +GKg +Guk +GNZ +GYN +GCY +Gli +Gtz +Ghk +Gug +GJr +GmN +GCz +GtU +GJL +Gyl +GBGR +Gip +GTd +GOb +Gep +GeT +GZo +GbR +GjP +GkE +GgX +Gso +GGeu +GrH +GPI +Gby +GCM +Ghq +GJH +GId +GLp +GCO +GPn +GwzX +GYr +GEm +Gpyd +GZJ +GSt +GSb +GxZ +GPw +GpeA +GblAo +Gqm +GkMy +GzpJ +GGs +GNqJ +GDooI +GZv +GiI +GISV +GVb +GqB +GeZ +GeE +GqU +Gmg +GQh +Gwuu +Gzy +GKVh +GoJ +GNhN +GSn +GBeF +GYlE +GGJ +GniN +GVY +Ggo +GrD +GzW +GOO +GyN +GVW +GGZ +GKk +GJp +Gxk +GqHd +GtI +Gxr +GhD +GIo +Grp +GJuD +GWd +GbU +GeO +GAhy +GAV +Guc +GdZ +GzZ +Gyy +GyG +GFD +GTW +Gpnc +GOi +GvY +GPe +GXdD +GgHu +GxVZ +GRX +GAVIu +GpH +GqP +GiW +Gok +GvXvJ +GSK +GzI +GXKL +GQt +GQKa +GZI +GCH +GhA +Gog +GgY +GZK +Gvx +GSF +Gld +GiF +GxD +GuV +GcQv +GNgm +GxX +GEo +GDJ +GGu +GkJdZ +GWX +GvTN +Gtx +Gttp +GZT +GKe +GnH +GChKj +GZG +GiBB +GID +GcT +GYR +GMŃ +GOh Outline ON OD @@ -820,6 +2214,477 @@ OtAL ONEQTG OXWWHX OUe +OJj +Oxr +OkM +OsG +Ozp +OWT +OWHb +OXtJ +ONTq +Ouu +OjL +OJW +OUi +OXS +OHG +Otbhh +OdR +OHs +Oko +OUX +Ola +OkW +OLLn +Otc +OrjW +OaER +Opc +OUh +OwZkbj +OEL +OEy +OGf +OJCGR +Oyq +OFsOj +OVUQ +OcS +Oho +OŚ +Otq +OTn +OWW +OqS +OHwR +Ouc +OTc +OWF +Oeq +Oiw +OLe +OoF +OCS +OkE +OrW +OEg +OFI +OwQ +OQyeh +OBY +OsJ +Okx +OtV +OLE +OvI +Opn +OYP +OVi +Ovg +OJM +Ohd +OPx +OIg +OBZrh +OtQ +OxOl +OYr +Osg +OKnS +OHM +Ouf +OND +Osk +OgE +OMV +OWdK +OaI +OMC +Obj +Ozm +OHd +OBky +OpI +OUO +OiIuwS +Oss +Oxp +OUzwt +OvL +OBJ +Orr +OTW +OSKR +OhĘAH +Oev +Oybb +Oqoo +OSE +OPE +OoY +OGG +OyUq +Ooi +OKz +OfK +OĄ +ONA +OcF +OGv +OUQ +OTE +OvD +Ojh +Omb +Osu +Ozk +OeN +Ocg +OBW +OAK +Okb +OQIM +OFy +OCj +OLG +OyL +OVB +ORO +OKfh +OaXADA +OAW +OcTi +ORJ +OdQEL +OZw +OKLM +OOo +Odg +OBL +OZv +OdOw +OtU +ODU +OQfs +Oba +OVqu +OVIx +OCnl +OPm +OFtx +OrP +OQkl +OadX +OIJ +Ogj +OSP +OKx +OGE +OOpS +OnU +OSb +OaX +OZp +Oqk +OMJ +OFt +ORe +ORz +OKL +Oex +OTXL +OIh +OMXEp +OMfy +OJk +OCg +OaeN +OIW +Ohr +Olh +OWd +ODF +OSYSD +OcI +ObP +OmZ +OqO +OSWK +OSC +OIn +OKh +OKS +OeY +OnY +Oqz +OvG +OTwI +Olvr +OUH +OuK +OdN +OkFg +OMI +OevR +OoSdvA +OCy +OpFB +Oqx +OJQ +OcN +ORk +OtC +Oulw +Oro +OCV +OrV +OWs +OGq +OfY +Ole +OwN +Oic +Ouk +Oee +OTbP +OQm +OaspE +OBj +OOQi +OxZl +OLC +OTS +OEN +Onm +OFn +OXP +Ovx +Oif +OLpl +ORAQ +OvPP +Olf +OcB +ODk +Ojt +OFq +Okv +OEh +OzG +OCs +OIz +ORd +OZJ +Opk +OZY +OySb +OWm +Otm +OLLe +OTD +OrSX +OnFR +OZt +Oah +OqR +Ofg +OhM +OuM +OOA +OOZ +Odv +Oyr +Okas +OhwL +OlHc +OSq +Ogiot +OVvP +OgA +Ocq +OxR +ORF +OGK +OnA +OZQ +Oxd +OMp +OuA +OSc +Oks +OFY +OLBq +Onwz +OGy +OJC +OjE +OFz +OhLk +OmSy +OwYo +Onsl +OBK +OTKM +OFM +OGs +OTe +ORuk +OBU +OoG +OkD +OrQxW +OEx +Owog +OraNp +OJa +Onn +Ocx +OXv +OSZA +Otf +Opz +OThD +OcL +OSN +OHOP +OYC +OOż +OlE +OLd +OJP +OIX +OEK +Obi +OdYk +OcV +Ojk +OWr +OftL +Oqh +OPI +Opi +OXf +OHg +Obs +OfH +OaQ +OXX +OQX +OkR +Omo +Otn +Obr +OTq +OyI +Oze +OYc +OQMM +OWl +OOm +OTu +OHh +OaR +OcYN +OGSk +ObC +OAL +OCoo +ObXp +OvJ +OpY +OTZu +OOC +ONq +OWTPM +OKUg +OGS +OGi +OJG +OhI +OtJ +OJtN +OLaT +OnNr +OUW +OoX +Opp +ORI +Odw +OpC +Oab +OIv +OMU +OTV +OXA +OWY +OgJU +OtE +OKU +OID +OLX +OADDn +Ory +Ovee +Ofx +OjrB +OOKn +OCM +Onc +OKnE +OVLEb +OoUx +OiM +OZW +OcU +OoOz +OVc +ODxO +Oso +Oax +Oeo +OURE +OuE +OOr +Oas +OwV +Ose +OjI +OJr +Oxz +Oio +OgB +Oyo +OEO +Ocu +OwLA +OoZ +OINMNK +OkJ +OGo +OoK +OtL +OGHdV +OXk +OYoN +OKc +OLA +OOtf +Obuo +Ohu +OvC +OznP +Ozo +OmCv +Orl +Obfu +ODp +OLBSGM +OnM +OVf +OMy +Ovct +OKQCZL endobj endstream ea @@ -1031,6 +2896,485 @@ eue eqG ejD eDG +eDI +eOl +eKS +eiU +eAn +emU +ehZ +eXP +efP +eAyQ +eXUzj +ePg +eAL +eiOb +eVS +emH +eorD +eOa +eqU +erh +eoF +eqg +erI +epzA +eLj +eBE +eWba +eYN +eLg +efI +ewC +ela +eDr +eRN +etu +euj +eMk +eHR +euo +eZe +eJcR +efEG +eJW +eUb +esT +ejE +eoZ +eDGj +eLbc +eKl +eQd +ePF +eoe +eNH +eta +eaz +eEa +efj +eDYn +eqyy +eDZ +eUh +eKY +eyX +eZP +edK +evF +eUU +ewiTM +eJD +eJX +eZFMLD +ehsT +eWw +eOJ +eTk +eHL +epj +eFA +ekh +eOC +eqF +eHq +eco +esq +egR +eDFrY +ebk +eDh +eIT +ejz +epv +eiqaQ +eFT +eDz +eytz +eEk +eQb +eEB +eFU +enaS +ewVZZ +elK +eUB +eqDk +emB +eWM +edo +eXf +eYd +ezo +ezR +eCbz +ecn +eEg +eif +ebF +eIpŚX +ewT +eXc +eXN +emBD +ezyD +eZve +eAi +ePq +eMF +ekOf +ekU +eXQ +ehWDW +ecX +eaL +exN +eZJxC +eYT +eBSUe +evn +erw +eSK +eKk +egx +eOi +eCf +eDj +eMl +eNt +exV +eFM +exU +etI +erE +eOj +edN +eOs +eju +eJf +eUR +eST +eSF +ePbi +esj +ewq +eJr +eMz +eOW +eYb +eym +eoj +exTCp +eDK +ejLg +euXk +erk +ecf +eJtin +esb +eßn +ezB +eQuK +ekE +eyE +eLhc +eVkr +evZ +eRATn +eLZ +esw +eKh +exk +eSI +eGgR +eUW +edA +esa +eöq +eqY +eAnJ +eiF +eSn +eEuY +edF +ewn +enh +erR +eDn +ese +egN +eXRP +eNM +eTuue +eMG +eó +egPj +eKi +eNV +edH +erAn +edM +eIz +ekK +eNB +eYV +eIL +enF +eQy +eyG +evv +ecx +eqK +eBu +eiJD +erL +eNL +eqYp +efA +edt +ecwS +eIq +eWE +eAtmi +ezA +eYS +edW +ejF +ekS +eWhg +eBz +efz +eAQ +emc +eVU +exW +eVW +eAwN +ecMq +emi +ePB +ewd +ema +ewg +eZS +eGN +esZ +emg +ecB +eCB +eMm +eps +edG +ept +eFK +eAB +eLC +eNW +eXn +eEM +erm +eLq +eNT +eEz +eQU +eDQ +elH +een +eib +eKF +eMB +eci +eSL +efn +eUKO +ebm +ezp +edY +eJH +enio +eeu +ePP +ekQ +eTY +eXg +eOy +eyS +eGt +euVrH +eJmS +eGy +evf +emI +egd +etW +eüYnd +eca +ehb +eIV +eBk +ecG +ejH +eXEO +eIe +epq +etfW +erl +eXR +eRw +ezr +egv +eyy +ejRm +egh +eyi +eeBB +eJA +elt +eYt +enY +elj +eyf +eBR +ePf +eTe +ebSc +edh +ecW +eza +eRl +eLO +enB +eGv +evG +eQHr +euDB +eÓ +eED +eYNH +eJe +eLXbRp +eSl +eJq +ehk +eOc +etjW +eiN +eNmQ +ejv +egE +eqN +eVWFVI +eEHI +eUO +eyd +eJK +evt +erN +eIA +ega +eRn +ePe +eEQ +eQr +esS +eQX +exn +eQS +exc +eXo +efx +eJcM +eWV +earq +elE +eqHq +epi +eXm +eaS +eQv +ewt +egxkP +eyH +eFH +exf +eAe +ehD +eAG +eTL +esC +eTV +eeN +eFp +eaPtW +eRc +evWc +eSs +etIc +edc +eOsL +eri +eJy +eDY +ewTz +ePT +edd +eł +etFn +eIN +ePz +eJo +eVY +ehu +ezg +ejBx +eWH +evkr +eMX +eVg +eOr +epS +edO +eHF +eNna +eig +ePEW +ere +eSX +eQYT +eJqR +eLJ +eTi +eFn +eDyQIT +eOX +eWm +eer +emf +eoq +exJ +eGp +eLb +eJb +emm +eAeg +eww +epsilon +exm +eiW +eRq +eoM +edw +eBL +ejI +eyr +eAf +eYK +eqZ +enc +ete +eZN +eyEJ Length Link LN @@ -1239,6 +3583,456 @@ LMf LmzV LhG LoREz +LXV +LvO +LPZ +Lcs +LUOf +Lsv +Layer +LnkS +LRV +LdP +LKL +LIW +LKS +LJz +LDHQx +LzM +LGQ +LJm +LZT +LuR +Lxz +Lis +LOv +Lri +LEf +LLprCx +LqB +LyO +LqS +LohT +LKj +LEQ +LLB +Ljv +LGh +Lxt +LEV +LCs +LCo +LVG +LnBw +LpYB +Lkj +LdIns +LeI +Lut +LyB +LlJ +LCK +LIi +LuB +Led +Lpn +LWY +LYg +Loq +LHL +LyKU +Lip +LKq +LZbi +LJO +Ldo +LCp +LAp +LAZ +LQO +LbGQ +LDn +LEb +Lun +LdR +Lygc +Lix +LOD +LcJ +LSd +Len +Lbh +LYT +LMl +LJXu +Lcp +LrqO +LtQ +LBxx +LaX +Lci +LQU +Lww +LusO +LCgq +LlL +Lti +LTfO +LAQ +LrR +LdD +Loy +Ljr +LNH +LoXkW +LraE +LCu +LlB +LEfP +LkJ +LTG +LBGV +LNO +LAP +Lup +LHO +LYya +Lef +Lfe +LGv +Lcc +LjD +Lvv +LHs +LpN +LWm +LMQ +LYp +LZr +Llw +LZX +LlY +LjB +LCk +LqX +LKng +LAc +Lgj +LrF +LQJn +LMi +LDr +Lya +LHv +LVk +LxR +LVO +LbJ +LoG +LxX +LsQ +Lou +LrQ +Lop +LbQ +LpW +LPM +Lbx +LYf +Lzf +LXk +LRR +LYD +Lfm +LbUKQ +LVW +LjJ +Lhp +Lyf +LiU +LnT +LTJ +Lyw +LTR +LLR +LHZ +LmEf +LVE +LQRz +LTD +Lxn +LCw +LQx +LBI +LWq +LgIU +Lsn +LkW +LDe +Lyi +LaxY +LweB +LrNTC +LyD +LRp +LKt +Lxm +Liwb +LfK +LFq +LRl +LyS +LLw +LWYz +LIC +LgM +Lpw +Lrn +Lpa +LCe +Lsr +LrT +LmJ +LOo +LqU +LbFL +LHH +LjLD +LZa +Luu +LWGV +LcE +LFHi +LjIn +Lxa +Lzv +LoY +LTT +LEXc +LtNn +LRN +Lmm +Loe +LCUHH +LYl +LRZ +LJf +LFV +Lxf +Ldu +LnVS +Ltf +LJCc +LnU +Lib +LPL +LHR +LQm +Lcf +Lzc +Lkzu +LzZ +LWy +LgL +LRt +Laa +LASX +Lhyw +Lez +Lab +LMk +LBt +LAR +LFS +LyV +Ló +LPc +Ldl +LJR +LIB +LOU +Lrt +Lxu +LfOU +LJP +LYj +Lkb +LAh +LZF +LFy +Lge +LhV +LUA +LBP +LAa +LQa +LĘ +Lro +LdV +LaGS +LxM +LTL +LtO +LII +LWx +LvfI +LWz +LUj +LoE +LFc +LOO +Ldz +LYc +LŃ +LZZZ +LBFt +LeJ +Lex +LCQ +LyMH +LzQS +LCjs +LQR +LzA +LKpWh +Lozc +Lbq +LwGy +LAg +LHV +LKT +LpY +LvG +LWg +LVw +LagQq +LzO +LaRL +LKp +LuQ +LuW +LePM +LvB +LeL +LDO +LuI +LOn +Lmh +LOL +Lei +LCU +LGg +Lpv +Lsl +Lxk +Llc +LdW +LVP +LuuW +LRJ +LMU +LQA +Lwr +LWR +Lvy +LZW +LSl +Lyc +LaHI +LCS +Lqi +LfP +Lvt +Lć +Ley +LEo +LpQ +LVD +LHDR +LKg +LWN +LBd +Lzi +LeT +Lat +LYi +LFLI +LlH +LVp +LDI +Llu +Lob +LkO +Lcq +LhĄ +Ljm +Ltvs +LUZ +LdYI +LAz +LNv +LBb +LZm +LEP +LiQ +Lau +LgfC +LGgQ +Lkv +Lrv +LLb +LhJ +Lsi +LCA +LHE +LqM +LtL +LtG +LYS +LuNpE +Lgu +Lwb +LcDG +LKuX +LbH +LrG +LMs +LCF +LaS +LVa +LPh +Lwvv +Leg +LXw +LAj +LCl +Lck +LAma +Lvucl +LqV +LQQR +Lcz +LPO +LNh +LSP +LML +LlWy +LNL +LJb +LrV +Lch +LXK +LOJLEP +LLW +LeR +LFw +Lcb +LHM +LfV +LSH +LDR +LSt +LGT Filter FlateDecode Font @@ -1472,6 +4266,454 @@ FaH FPb FJul Ffa +Fuq +FWzv +FMMr +FiWK +Fupg +FAi +Fps +FXp +FHI +FBT +FnR +Fpt +Fsm +Fqu +FEJV +FSw +FJq +FUDm +FKJ +FaV +FwRe +FdE +Fhm +FSZ +FlE +FLr +Fgk +FLx +Fkq +Fhj +FOt +FRT +Fö +FXSQ +Fvz +FcV +FnT +FOu +FYm +Fgd +FKW +FTz +FQs +FwG +FWH +FPc +FWG +FXF +FPNP +Fqw +FYK +FCDwh +Flk +FBh +FgY +FVLb +FcR +FOT +FLJ +FzN +FLU +Fhy +FdG +FZul +FLI +FLWE +FWf +FJG +Fmj +FNt +FAb +FmT +FCCj +FxBm +FSł +Fdfy +FfW +FQws +FKz +FOB +Fqb +FpD +FPfWNYB +FhAmj +FaM +FWm +FYe +FQL +FCx +FhW +FXD +FFN +FIGE +FAR +FkW +FdU +FYw +FoN +FrNL +FmFJ +FGZ +FQD +FBe +FKv +Fć +FdM +FsR +FFj +FtB +FERz +Fol +FzC +FQw +Fzz +FAri +FxnA +Fav +FgD +FeHkv +FbA +FpQ +Fdf +Fpl +FmO +FoZ +Fgi +FnuR +FFM +Fcx +FmE +FGN +FBs +FcLo +FyN +FIUt +FYz +FGq +FISw +FapY +FgF +Fgh +FIc +FOW +FhN +Fvf +FUG +FpfI +FVriO +FjN +FNJ +FEL +Fea +FGIU +FIZ +FÖ +FGG +Fmt +FCv +Fsh +Fnn +FqRIs +FTy +FEZI +FHb +FJx +FDo +FiY +FfP +FBei +FOY +FJQ +Fse +FaJ +FCd +FJw +FXh +FIi +FWGOn +FJK +FvG +Fcf +FqEe +FHO +FkQ +Fß +Faa +FgeV +Fez +FnL +FuG +Fho +FWE +FhR +FrQ +FŹ +FHkF +FEi +Faxe +FLN +Fbsg +FGjl +FWj +FQjqQ +Fncd +FqA +Fab +FLD +FCP +FxW +FoYR +FCVY +Fnv +FJy +Fvd +FHX +FDx +FvH +Fli +FWw +FYW +FSC +FoD +FjXf +FHj +FAv +FCI +FBF +FRH +FXE +Fwz +Fqgy +FSd +Fcr +FaI +FŻm +Fxl +FwY +FctZ +FuL +FiG +Fdj +FUu +Fgbw +Fba +Fds +FMK +FnI +Fsd +FOg +FkZv +FGNaisy +Fee +FEq +FsJ +FvT +FgO +FXb +FmpeqGE +FPu +FIK +Fzr +Faq +FbV +FHN +FOL +FMER +Fgb +FkRC +Ffb +FVdv +FoC +FLO +FnG +FzA +Fkj +FwC +FfD +FSs +FRU +FZe +FKZ +Fxj +FMl +Fhi +Fbm +FoJn +FDR +FYU +FWL +Fnl +FWąI +FZXÜ +Fox +FLba +FIF +Fmx +FPx +Fqz +FBZ +FIE +FvU +FKp +FyH +FuE +Fop +FQwP +FAiru +FLM +FooI +FNCh +FdQ +FKr +FwmqB +FLH +FKl +FpN +FJt +FPL +FYl +FMu +Fgj +FlH +FdAi +FaP +FcwG +Fum +FlAM +Fijy +FEp +FJf +FNUrQZ +FsKI +Fej +Fgp +FoO +FTf +Fcmb +Fkc +FgX +FSf +Fyz +FvZ +FiW +Fxo +FQp +FuF +FrG +FSJ +Fot +Fal +FWy +Ffu +FgH +FSl +Fey +FyM +FkL +FqK +FSU +FFz +FEup +FKA +FES +FvK +FeGW +FbP +FiQ +FIR +FwZm +FlK +FHH +FsDv +FIAn +FQl +FCK +FIS +FEd +FYuR +FRV +Fhb +Fsa +Fky +Fnw +FBf +FGBj +FRX +FhQ +Fta +FAM +FKU +FVv +FCvfV +FZboH +FbM +FyU +FBS +FxN +FĘ +FOo +FHa +FlQ +FEDP +FzO +FhC +Fdww +FTI +FyV +FSR +FyR +FyE +Fsu +FYu +FLf +FGF +FZqQ +FSa +FDs +Fre +Fel +Fch +FaoGs +FtW +FuMV +FMd +FNw +FQRfR +FiP +FEz +FED +FsX +FQqae +Fkk +FRTPGY +FcaI +FOJ +Faf +Foq +FZd +FNC +FqI +FJo +FLS +FPR +FGt +FKV +FyX +Fem +FWg stream sj sR @@ -1713,6 +4955,452 @@ sYO sen sEh sCxo +sorn +ssO +sjd +suE +sQa +sENy +spełnia +są +sobie +sposobów +skoczka +szachowego +sAZz +sZY +sWJ +sRa +skir +sKq +stX +sXN +svbm +sWA +swW +sye +sÓF +skyg +spvp +sSX +swS +sewim +sMM +sxG +sfv +sin +smN +sPF +skqz +slxe +sBWy +sqMj +ssby +sAxW +sar +slK +shP +sea +sFz +she +sveb +sAA +sAc +soR +sgl +sUK +sdSc +ssS +soT +sEi +smI +shU +sFI +sqS +sCG +sIv +sHMs +siy +sPa +sJJU +syL +sai +slN +sIK +svR +sMr +sIds +sTo +snt +sCO +sriR +sHl +sih +sxh +ssn +sxM +sqn +sXtx +sEK +sdN +sWx +sRU +sRD +sKp +sve +sds +sAs +sdFA +sVr +sTk +shdY +ssG +sDU +syn +sfAxo +sBv +sUs +sWH +scb +sGu +sHA +sqW +sWvt +sQEm +sLq +sZO +sROH +sś +sHf +ssA +sSf +sXT +sgc +sYeb +sOv +slz +sTUe +sfWc +sVV +sATE +sER +ssx +sGq +sLo +sqd +sURM +sDBD +slb +ssZr +sVB +sFt +skQ +sŻQZ +sDL +sYGd +seH +shF +sbTb +sGm +sXf +sJc +sfszU +sDc +sZFE +scD +sVt +sKm +sKa +sPD +siN +sED +saH +szK +sal +smf +sgR +srS +sdk +sUi +sFY +seW +sWu +sDN +smu +swD +sqI +sfi +sXR +sZDb +smV +sju +sCRN +scv +sut +sHiR +sCV +sAg +szu +sLI +sZV +sAZ +sLC +sme +sAl +sofZ +sIc +soa +sZJ +sUv +svi +sIey +sNTpm +sKJ +sMO +sOI +sFK +sth +sZr +sQcd +siF +sIk +sjcgl +sLE +sRr +shTG +sCqY +soV +sVgNn +semm +sQd +sGf +sjmL +sxO +szdq +sMC +sVJ +sWi +sSEf +sErQ +skK +sYx +sWq +scB +siG +scY +siL +sms +smx +swVA +sYBfN +srb +sSu +snG +soBoW +sIu +sVf +sDUeW +sŃZ +syS +sov +suN +sPb +sAv +sjH +sfCO +sPp +sZG +sto +sUd +sEJ +sIs +sZF +sue +sKx +sMob +sWP +sDo +sxg +srI +szb +syy +sjW +sYm +sIq +sGP +sakC +sBT +shk +sClr +smd +shie +shj +suj +sjE +sOrfb +sedD +sum +sEp +swHn +sWI +sDV +sln +sfg +sbA +sJY +svjd +seq +sgq +sgs +sxw +sZS +sRW +saI +svp +sMqW +srK +sqgd +sWk +spc +sSY +sOJ +saT +smG +sFp +szw +spG +szRy +sdo +ssu +seRh +sna +sBK +sVS +sTh +sWT +shL +sXU +swE +sqP +svGd +sęZ +shG +sTc +só +szE +sLP +sYN +svr +srqy +sqx +sVGz +sll +sGt +sNR +swF +sgp +sBYj +sHRL +sun +sEX +sKT +sMj +sOE +sePmW +sBO +sQS +szj +slM +sRWO +skZ +sbU +sHJ +sRV +sqC +swV +stz +sOc +sns +soi +saLP +sEn +sspR +sia +sAz +ssD +saz +sXP +sKN +sdR +sbc +sPA +sToQ +sDrJ +sÄ +sfy +sRiT +sKb +spbHd +suMk +sCr +sPE +sHD +smi +sxI +sgz +ska +sKTm +sXX +sqH +soM +spa +sZWJW +ssW +swgy +sxB +shO +sOw +sli +sBL +sLA +siYw +swm +sdOh +ssh +sPRh +sPm +swd +sTvT +saG +stA +sxZ +sLJ +sEEE +slLtTd +sbx +suqua +sOcN +sSz +sba +scTj +svg +source +style +src +stroke +sGT +siYv +sat +sHa +sHR +sCAee +sMw +syO +sIE +svf +sece +sLQm +sQcW JQ Js JX @@ -1895,6 +5583,450 @@ JHI JbC JUj Jly +JYF +JXTi +JOKYWh +JYNZHR +JniVg +JSv +JEX +JLQX +JCI +JjP +JMn +JDpY +JSU +JFm +Jei +JWc +Jcn +Jebhb +JPryHO +Jij +JAv +Jlq +JgJ +JwC +JiI +Jsv +Jfn +JUZ +JTai +JTV +JfSC +JKR +JOc +JDy +JAn +JZs +JbMg +JXu +JFtED +JTi +JxM +JSL +JPre +JAF +JWj +JWr +Jzz +Jkj +JZP +JZi +JXAf +JjHY +Jud +Jrb +JanTd +JmT +Jtc +JTg +JhI +Jya +JTY +Jph +Jai +Jzt +JDA +JVd +Jcw +Jrp +Jou +JEvA +JIvsV +JsQ +JnAx +JIN +JfF +JDS +JIa +JHY +JXV +Jti +JHO +JCf +JZR +Jhn +JŻ +JoO +JNY +JDH +JXHf +Jvss +JFu +JJV +Jyif +Jbj +JXQvh +JER +JmX +Jcdj +JiV +Jsd +JNt +Jfdd +JrZ +JynE +Jmq +JDiB +Jem +JdF +JbgMr +JBs +JKs +JgN +Jos +JFK +JqVpY +JVdl +JvPf +JOV +JQe +JDk +JVn +Jja +JvSL +JWC +Jaw +Jtr +JWE +JZZ +JEl +Jso +Jvl +JfgJ +JNL +Jaesr +JAh +JNl +JdS +JQN +Jgd +JPm +JLl +Jii +Jht +JFO +Jqf +JHj +JXQ +Jqe +JMO +JXF +JXJ +Jjn +JMQ +Jetj +JdU +JUOz +JVa +JcKq +JBć +JsWNX +JBSdc +Jrg +Jwk +JrJ +JJd +JpD +JDC +Jpi +Juh +Jma +Juy +JADp +Jzw +Jax +JiK +JqU +JTX +Jit +JWx +JcT +JbgZ +JkR +JVu +JyT +JGx +JXb +JOU +JPkh +Jbd +JxR +Jbb +JJJ +JJtP +Jrc +JEPK +Jvx +JcZk +JEs +Jxus +JQQHHJI +Jtt +JNO +JRT +JNv +JzB +JJi +JvM +JDyJ +Jaa +JMg +JZQg +JoH +Jfp +JVD +JUu +JXe +Jiq +JHA +JxA +JyO +JSqd +JjC +JZf +JLE +JFM +JXO +Jil +JYU +JvP +JWs +JTb +Jgg +JgH +JQl +JmL +JRH +Jqs +JĆo +Jdh +JEq +JlN +JubL +Jrw +Jef +JoW +JlF +JzF +JKK +Jst +Jic +JAyJ +JCs +JFL +JMP +JyDB +JvC +Jfy +JQr +JXc +Jxzv +JYFr +JzG +Jgf +JAM +JmD +JNs +JAz +JOtm +JZbi +JUm +JuO +JfZg +JUC +JHx +JUt +JTs +JUo +JTM +JHX +JoY +JnW +JqsO +Jgn +JIeg +JPT +Jul +JlI +JVAh +Jmk +JyA +JwA +JbzF +JNj +JVwRkl +JTw +JJlf +JYy +Jrv +JaHJnF +JAW +JEy +JtC +Jji +JIJ +JzPmw +JVm +JGF +Jxto +JzN +JSw +Jot +JNm +JsxkTzjw +JOh +JEj +JFb +JTo +JqB +JĆh +JxT +JKF +JuLdk +Jzl +JOS +Jed +JOn +JGAmBI +JwX +Joi +JSI +JNmA +Jde +JtV +JBk +JTp +Jrq +JeE +Jog +JJy +JGw +JaQ +Jap +JjL +Jgv +JYR +JSH +JiA +Jmr +JChy +Jvg +JPM +JmGw +Jlh +JzL +JlG +JXh +Juf +JIe +JnX +JTG +JAg +JTR +JmSE +JHE +JiEA +Jfz +JKD +Jyv +JCNj +JND +JStO +JXm +JTH +JFZz +JUS +JRKtd +JOch +JzVJ +JIMj +JuA +JjQ +JFz +JmF +Jio +JQQo +JTx +JYrp +JOm +Jjw +JvS +Jö +Joal +JLTW +JRITL +JIUI +Jms +JKmv +JJiSz +JxF +JPt +JFU +JQR +JpDZ +Jco +JoD +Jxe +JsQY +JMr +JQCc +Jag +JGO +Jen +JJL +Jby +Jxyx +JQEn +Jwa +JROb +JBK +JuR +Jiz +Jlw +Jpk +JHAb +JCpE +JUQ +JSQ +JRE +JnB +JeH +JzC +JBGE +JXT +JIc +JQx +JxogH +JKVtjPN +JVV +JzoJ +JLk +JcQ +Jau +JEp +JEI xM xw xfkW @@ -2096,6 +6228,498 @@ xxB xfOQ xyM xttZ +xHn +xRc +xgl +xTB +xbuwY +xUSu +xyI +xaC +xEb +xYAOz +xln +xqyEnHn +xJO +xgB +xyL +xzXi +xbp +xjb +xzl +xXH +xSG +xki +xmw +xUxJ +xbm +xKk +xjx +xhh +xeX +xDz +xQJT +xIF +xhK +xOD +xus +xbM +xDfk +xzE +xmS +xzw +xIx +xmI +xzn +xHE +xLW +xVS +xiU +xdBRDDw +xZjB +xkK +xda +xjr +xpWJr +xAF +xgj +xrY +xJZq +xtUB +xNS +xPp +xup +xbd +xir +xKO +xlmB +xnj +xUT +xKv +xRz +xRh +xNa +xbC +xnOvyDs +xJt +xDogz +xxu +xLN +xeD +xOPr +xvzT +xUL +xYZ +xzN +xdPC +xveC +xXV +xQQ +xNH +xTW +xRM +xmR +xcv +xss +xzzQ +xSe +xpv +xxc +xMN +xBVw +xPV +xtd +xem +xfA +xUJ +xFS +xjq +xzY +xLF +xWF +xsf +xknEI +xUc +xkF +xpZd +xVqQ +xew +xLOŻ +xwB +xgDa +xBQPc +xAL +xDM +xwgr +xFZ +xVV +xoc +xCI +xFz +xRd +xzZ +xJM +xnI +xgK +xNR +xwQ +xzD +xUX +xCdh +xoa +xLs +xkl +xCy +xMp +xSM +xWf +xRv +xNaF +xJL +xaH +xAu +xsS +xZTJJ +xoE +xvM +xNYJ +xXf +xwO +xCe +xqu +xAc +xJi +xlf +xPe +xtm +xdB +xtg +xAUz +xpQf +xLvG +xNb +xXa +xXn +xGa +xvb +xNx +xeix +xnR +xsa +xBH +xdb +xGBe +xJh +xBR +xzx +xnA +xZpu +xqxsa +xfY +xxP +xYQ +xeE +xIT +xIj +xiT +xYS +xIQ +xho +xQN +xyp +xOUW +xWfK +xCAA +xqI +xytU +xTS +xdr +xNav +xkQ +xpq +xBkq +xdj +xJKU +xqB +xuf +xAb +xLj +xNO +xEv +xrh +xPR +xpz +xHFV +xeJ +xpvsh +xLbG +xmY +xeK +xMt +xCP +xGX +xal +xYh +xgk +xNaP +xeQ +xqL +xMF +xFG +xJw +xvkwX +xtV +xMn +xcS +xmh +xDR +xIKA +xJz +xgF +xBo +xBD +xAN +xlx +xQA +xVu +xdm +xreG +xSJO +xdy +xDh +xhV +xEDr +xll +xCJ +xsK +xGS +xne +xIX +xZa +xkj +xę +xVI +xgQ +xvIMI +xdp +xkV +xiJ +xJF +xCxE +xjQ +xpk +xÓR +xvB +xLw +xON +xHR +xcA +xuY +xVG +xljD +xNp +xMY +xJg +xJBs +xpX +xoT +xjU +xdY +xUO +xOX +xMM +xEq +xpN +xUk +xSO +xKQ +xą +xmi +xToX +xax +xćJ +xwQQ +xNw +xwM +xfj +xhga +xUVM +xql +xYo +xSw +xhgZ +xPZ +xxm +xjC +xIp +xbJc +xvIo +xDVuz +xKV +xLb +xvC +xUK +xuN +xLm +xaB +xbf +xZo +xnm +xJl +xadpS +xAuZ +xCS +xlQ +xjs +xgjD +xqv +xvl +xbr +xyb +xoU +xxL +xww +xMYs +xjba +xJN +xlCy +xspT +xWk +xpn +xXe +xMC +xuA +xPt +xtE +xxwA +xuvI +xFl +xSQ +xwN +xhj +xse +xnW +xTyG +xHy +xtx +xZw +xsPZ +xqpy +xyq +xFE +xLf +xZK +xZZ +xFcH +xTBns +xeW +xuE +xYr +xRrs +xIw +xUz +xwo +xwYc +xTa +xsC +xQD +xRp +xSv +xuHD +xbfut +xEK +xJFQ +xRt +xWQ +xTk +xńO +xyQ +xGID +xlt +xtj +xYqU +xZJ +xCT +xRI +xNv +xlk +xgou +xiV +xgLM +xtk +xfez +xsv +xbg +xyJ +xguQ +xsI +xiH +xAh +xQe +xziY +xbv +xfhG +xcK +xZU +xwy +xHG +xkO +xXP +xmoG +xko +xiN +xSkF +xoj +xUS +xLCT +xtb +xOx +xKt +xwi +xeEk +xIZ +xhQ +xCDD +xcZ +xYD +xSE +xZnc +xMb +xqep +xWx +xMW +xlP +xub +xKp +xyK +xrd +xXxxxdxtx +xFH +xBL +xZN +xuX +xTU +xkr +xxT +xbB +xHZq +xCp +xóM +xfZ +xAwI +xJd +xZax +xOY +xvD +xQL +xdo +xxI +xPB +xXj +xOB +xOf +xRL +xbx QL QW QQx @@ -2325,6 +6949,460 @@ QmL QvM Qwc QAa +Qam +QXQJlYET +QwAI +QLP +Qap +QBaX +Qzz +QHY +QjD +QVW +QQMON +QsL +QTM +Qrb +QVo +Qtb +Qcf +QDn +Qkm +QfF +Qqi +QsYOLx +QeI +QpO +QOq +QvI +QJg +QDK +QjU +QQAt +Qba +Qmu +QVg +QxV +Qwl +QJRf +Qjvl +QND +QPo +Quu +QuY +QGQU +QLf +QrT +QCV +QuU +QQP +Qfq +QVa +QAr +Qvq +QUqfxp +QnM +QVf +Qpww +QEh +QSh +QfL +Qppp +QPP +Qvu +QyP +QUz +QPi +QovPZ +QCF +QIr +Qfj +QCpA +QxLa +QjCm +Qdk +QiVt +QZs +QER +Qtkv +QHh +QTqSQ +QPk +QaOF +QsY +QUc +QhC +QiC +QVSI +Qgy +QqB +QyR +QMdb +QYO +Qju +QSP +QZu +QXTD +QYD +Qxkk +Qpu +QMW +QKV +QSB +QJo +QZR +QWi +QSz +QWW +QIxBBK +QmTB +QMy +QyEX +QHD +Qya +Qbh +QRf +QQG +QYP +QDz +Qks +Qqy +QlAP +Qcw +QQK +Qyz +Qnv +QXR +QYe +QheL +QmdU +QRr +Qqc +QRY +QijF +QCg +QGj +QzK +QgZ +QIc +QqP +Qvzz +Qbb +QTt +QsD +QQC +Qhd +QIk +QkR +QxOgt +Qvz +QpC +Quf +QWZ +QCC +QsR +QkO +QslL +QzM +QdR +QÓ +QCZ +QVNA +Qnpg +Qgm +Qln +QAp +QXz +QkL +QpS +QQE +QBO +QAJ +QdKsW +QUv +QOF +QJj +QDJ +QCI +QPl +QtK +QOcb +QhYfzU +Qvbe +QKRj +QYN +QEm +QPJp +QksY +QBcH +QIF +QRt +QxrN +QwB +Qdx +QWHT +QUjy +QphKnF +QUK +Qjf +QHy +QoC +QaC +QvGh +QJy +QLR +QDw +QJzL +QhN +QKWl +Qfs +QdxK +Qha +QTz +Quc +QOJ +QXS +QYx +QMw +QeYn +QADj +QzBG +Qyd +QjO +QPQe +QitS +QZO +QrX +Qyp +QbL +QVkY +QMR +QvV +QNp +Qlk +QpOl +QSC +QrEnt +QQrs +QNq +QkQ +QnU +QMF +QEO +QiBu +QIl +QOG +Qku +QIR +QBl +QXN +QWG +QvY +QgG +QXBpK +QGh +QMi +QQO +QNU +QkJ +QLy +QIa +QXMA +QdL +QWQ +QGr +QNoA +Qiy +QCe +Qxu +QdPc +QbN +QSYG +QDu +QAE +QGu +QDBX +QfH +Qzn +QPu +QlnP +QoFtWj +Qems +QWm +QHK +Qgg +QdJ +Qwcp +Qsj +QFz +QLS +QiA +QIYfx +QSU +QVt +QTd +Qse +QavF +QguOZ +QkN +Qkj +Qxi +QMs +QoS +QrD +QEJ +QpQE +QMg +QdX +QdG +Qah +QSG +QxS +QJv +Qiv +QwD +QOdq +QcH +QDp +QuhX +QmFGLmtTNQ +QhX +QuHx +QxQ +QFX +QNi +QLOU +Qth +QsN +Qal +Qly +QirU +QvVWB +QChT +QüY +QLZ +QTYv +QOL +QZai +Qun +QXJ +QlX +Qtis +QUF +QwV +Qnwx +QHp +QNj +Qkd +Qdg +QZc +Qmq +Quz +QÜt +QUJ +QoF +QTo +Qfr +QDf +Qze +QMt +QyQ +QQAaS +Qau +QaX +Qfu +Qyqg +QIMd +QKA +QTkla +QlF +QXX +Qjv +QSu +QIbp +QgX +QsV +QbK +QSN +QLp +QgRt +Qcl +QGI +Qay +QyO +QrtS +QFYLYd +QWq +QsWz +QyZ +QFM +Qjz +QVJU +QGl +QSO +Qkl +Qoz +QuAl +QInyS +QCTe +QZT +QdYz +QOKG +QBZ +QhO +QiU +QcM +Qqph +QaKD +QUT +Qlwfx +QNPZS +Qsc +QTWrDu +QBXH +QkG +Qof +Qxl +Qcr +QqCf +QLe +QeP +Qmo +QhJ +QRp +QFZ +QzY +QKv +Qż +QTZVf +Qqq +QwR +Qjc +Qfav +QMTEPU +QQY +Qsh +QcpM +Qws +QZG +QtB +QhR +QMv +Qeo +QtIv +QWc +QOQ +QYbW +QpQ +QtI +QEC +QiDL +QAO +QbZ +QaR +QEXBXO +QDTWCG +Qbu fVVhM fW fci @@ -2510,6 +7588,439 @@ fNZ fbr fheiy fsH +fFr +fYT +fVh +fTh +fNp +fbF +funkcja +ftypjp +ffffX +faB +fcw +fht +fIb +fdo +fkh +fZL +fpn +fffg +fub +foR +fQu +fCG +fVR +fET +fiI +fYJ +fgk +fsR +ffe +fuC +fAH +fqRB +fzT +fxg +fvA +fNrT +fNB +fWd +fLc +fQi +fPK +faF +fPP +fUhG +fsa +fSy +fku +fiO +fjo +fJn +fan +fvs +fKW +fWY +fö +fjX +flu +fFj +fzo +fmjOG +fkMR +fkF +feWI +fhj +fJa +fuR +fpb +fĆpu +fTe +fEv +frg +fuH +fXe +fBT +fmL +fRg +fMF +fvFE +fxi +fGV +fVd +fqCZ +fWx +fTB +ffC +fxh +fBPZ +fsi +fqo +fmJ +fjz +fSj +fdF +fUP +fvr +ftfTq +fqJ +ffD +fHs +fZJ +fKj +fOd +feW +fMAU +fHS +foL +fNM +fkO +fmH +fuL +fsL +fdI +fjGO +fYMv +flE +fę +fPw +fDK +fPu +fVa +fkJ +fRV +fABz +fUx +fDZ +fSRx +fnPVrz +fKB +fAf +fPV +fls +ffff +fnOPI +fds +fUHJ +fvLh +feh +fUG +fLu +faK +fGKj +fHb +fEj +fSg +faz +fXP +ftq +ffU +fGn +fCw +fwx +fQx +ftHU +fDlBp +fHa +fiZ +fuc +fHpoX +fMp +fbh +fIW +few +fvc +fEI +fTi +fBq +fea +fYn +fdC +fCZ +fOR +fxX +fkiY +fNS +fdU +fob +fWKQ +ftd +ffEvs +fPt +fwf +fbO +fXU +fRB +fGl +fPg +fJv +foN +fSVJ +fuS +fWF +fmWc +fDP +fZp +fsiaU +fMy +fyE +fdIP +fTJ +ftlf +fQfwa +fTqT +fCQ +fMcHE +flF +fDH +fVc +fsI +fjzAy +fiY +fWb +fdA +fSn +fBL +fQN +fdV +fdIs +feq +fwc +fIt +fcS +fsV +fSeFc +fkEh +fgbR +flkB +feF +fSH +falo +fWs +fbJ +fIaB +fpx +fEY +fSs +fhq +fAZ +fuRG +fzt +fuh +fGt +fKvG +fRn +fKY +fiC +fqx +fBGix +fhJP +fvS +fMet +fAe +fcA +fZx +frf +fVB +fvv +fix +fxo +fVv +fsN +fEL +fDM +fCp +fIs +foJD +fcE +ftnqU +fmZE +fHt +fmMH +fbP +frI +fYw +fFJ +frU +fNlN +fnJ +flo +fNq +fUu +fEe +fry +fSSqU +fBz +ffz +fAyZ +fjg +fIO +fKp +fdAp +fqz +fef +fiL +foK +fpWiz +fxCC +ffffg +fQf +fyny +ffj +fUtK +frP +fHi +fXw +fsrCo +fhG +fti +flwpS +fmx +fHr +foH +fjpy +fxuV +fgA +fPH +fXZ +ffdP +ffo +fVN +fEu +fxOmD +fIK +fGrW +fGQ +fXD +fTN +fgg +fBa +fsw +fnZ +fVw +fLo +fŹ +fMM +fwo +fMyE +fdguk +fYuR +fia +fvk +fpy +fWQ +fvZl +fXE +fcY +fEJ +fMD +fIc +fUc +flJh +fhh +fgH +fCH +frm +fEB +fDcY +fqc +fAh +fFy +fXh +fqR +fucB +frq +fwRH +frzr +ffho +fpIa +fSl +fNw +fqU +fcI +fsZc +fgm +foj +fuNK +fBw +fxf +fxM +fuDu +fOq +fty +fdtR +fGYd +fAl +fCv +fJoMU +fZZ +fuz +fOY +flYeg +fETIqO +fJH +fKt +ftk +fWO +fLV +fii +fFsJ +fnF +fHLH +fHNF +fwX +foV +fTr +fun +fjhwu +fzv +fvf +fEc +fya +fOH +fLp +fxS +fRD +fks +font +face +family +fill +ffffff +filter +fECaU +fdv +fzY +fQZ +fQU +fqM +fuE +fhC +ftx +fGe +fyR +fjA Bi Border Bh @@ -2724,6 +8235,488 @@ BiC BgQs BlL BWi +BdYb +BNQE +Bmb +BDr +BaT +Bool +BWg +BaN +BZP +BOe +BroG +BXME +BFl +Bpa +Bjf +BzNc +BUe +BDR +BEbnJ +BzS +BYT +BuI +BQN +BlG +BLZ +BAG +Bgj +BZn +BkPD +BfGj +BmtI +Btx +BYB +BYV +BvJ +Bbm +BmN +BbL +BKp +ByVrTN +ByDr +BOO +BUU +Bta +BWb +BJX +BAa +BKU +BGr +BIR +BRsK +BqJ +BvA +BUp +Brf +BAwc +BMj +BJz +Blv +BZB +BaW +BJU +BVYq +BQH +Bxi +BlP +BPx +BVh +BCa +BLk +Bxzau +BNF +BZR +BLJ +Bjjki +Bkp +BMa +BSR +BwF +BSJ +Bof +BNyKg +BsJt +Bbt +BvE +BrU +BGV +BDu +BHT +BMwM +BBU +BnR +Bby +Bxs +BEi +Beq +BmC +BEK +BwU +BPd +BvyX +BFI +BRIe +Bjn +BTo +BGH +Bex +BhB +BPf +Bęr +BqI +BEtC +BGbG +BUl +BBr +BMX +BSK +Bdu +BRc +BuZ +BzUX +BSE +BgCH +BJO +BEm +BZF +BJs +BcF +ByW +BLyz +BssO +BGt +BKkbv +BWuY +Bwk +BbP +BGhv +BallAs +ByN +BVW +BEr +Bgw +BHa +BeO +Bad +BIMh +BgFf +BJFM +BPE +BnT +Bwg +BoSV +Bgs +BJe +BEbB +BcC +BcZ +BUT +BrL +BgX +Bzs +BWL +Buz +BAn +BXa +BsYd +BST +BYs +BiaI +BhUj +BTB +Bip +BVn +BKu +BNh +BZA +BGq +BDQ +BVc +Bxl +BIOd +BtL +BOh +Bib +BXP +BZUM +Bwq +BIZ +BNL +BTM +Bar +BTl +BsV +BNX +BWTX +BrrZ +BMG +BwT +BJu +BrvTT +Brs +BYy +BDb +ByA +BKm +BLH +Bjo +BxW +BPH +BIy +BcA +Bsad +Bih +Bph +BYd +BKt +Bmk +Bff +BWf +Bdin +BdP +ByC +BYbfr +BCF +BtQZ +BmoL +BnV +BYS +BEO +BIK +BĄT +Bti +BLfM +Byg +BAI +BUt +Bfp +ByJ +BVy +BwLQ +Bzm +BPuO +BQw +BLVfxML +BuO +BDut +BeZi +BBE +BKw +BwCrgr +BGtA +BXq +BVkh +Buf +Bao +BxP +BOtX +BUd +BjC +BLfr +BFo +Bla +BIl +BXi +BhwW +Bvt +BBG +BhC +BjP +BeE +Bbk +BqR +BTZ +BWCrT +BhV +BmDS +BXp +BPJ +BOd +BZG +Bfn +BoL +BzA +BSó +BwP +Bhf +BmE +BtO +Bva +BfZQD +BKk +BbtO +BOP +BTk +BHt +BGKh +BzR +BYj +BFYo +BAy +Bzbx +BBv +BSM +BxT +BdZ +Buvk +BduV +Ber +Bxo +BdL +BoN +Bem +BGv +Bsh +BYt +BIY +Bba +Bhl +Bgc +BhZI +BtN +BGE +BYQ +BZt +BIN +BjZ +Bud +BffBZ +Bjg +BRk +BVC +Blry +Bav +BPh +BHXw +BOegS +BcE +BApE +Bvd +Blq +BtQN +Btv +BwN +BWZM +BMC +BFh +BBb +BdO +BKCB +BAv +BCE +BCP +BumM +BLW +BQg +BsD +Bjh +BZz +BWG +Bvu +BPM +BEej +Bü +Bdy +BHO +BYg +BkJ +BVvN +BgJa +BYhh +Bms +ByV +Bmma +BdU +BKM +BiH +BSk +Bty +Ban +BqU +BZN +BKK +Bue +BlZ +BYM +BIb +Bzi +BQm +BRM +BlDY +BxWM +BsI +BCCV +Bui +Brj +BIMp +BvP +BlAi +BAKn +Bjj +BKR +Bwł +BmD +BMto +Bhwh +BiTD +BJI +BQt +Bjy +BPl +BvLS +BpJ +BwQ +BHn +BJp +BFD +BcI +BWaE +BKA +Bcx +Brxy +BaHXS +Bsti +BJP +Btr +Bsy +BOk +BxX +BBt +Bsu +BEV +BOw +BHG +BtOg +BDA +Bfa +BuE +BRZm +BEM +Bß +BFj +BZjAK +BvC +BuY +BKf +BXRM +BzF +Boö +BSi +Bhhc +Bcn +BkBE +Btb +Brhh +BHo +BjPE +BNY +Bvmu +BzL +BNT +BNkp +BxcH +BTE +Bqx +Bsd +BlWf +Bä +BbKL +Bcr +BpB +BDyoln +BTA +BgS +BoJv +BMf +BugP +Bkr +BXD +Bqh +BEy +BCg +BXT Trans Type TF @@ -2927,6 +8920,498 @@ TVX Tll Tcv Tyi +TBwo +TjcY +TsA +TzNgx +TyT +Trójkąt +TKo +TdK +TpM +TUr +TdE +TVJ +TjFP +Tex +Tsi +THm +TKy +Tku +TIn +TlI +Txm +THj +TLZ +Tmc +TJU +TqXr +TOb +Ttab +TFbl +TĄt +Tah +TsWd +TUQ +TTK +TZt +TUT +ToD +TMaE +TRt +TkD +TRm +TvD +TYWe +TUm +TMaT +TPn +TWv +TVY +TGY +TruU +Tnx +Twc +TiR +Tgc +Tmn +TiO +Tjj +TOrU +TKl +Tfg +TAc +TYP +TcT +TQK +TRi +TZxH +TBXxS +TNDTwA +THb +TVni +TjH +Tpu +TYE +TdI +TlsSY +TAq +TAz +Tvi +TAi +TMy +TNM +TSpN +TSa +TwB +TuY +TTR +Tiz +TdP +Tqau +TyCd +TrTk +TKS +TXk +THT +TRS +TRnpm +TRfv +TQhB +TxGp +TOU +ToU +TJhz +Tjx +TfV +Tahs +TxA +Tapc +TQB +Tij +TUO +Tth +Tek +TiCW +Tpl +TBu +Tqsc +TAy +TYt +TaE +ThJD +TZK +TUJ +TRC +TjfL +TgT +TcB +TFq +TqlH +TDCV +TIfm +TNUs +TeFo +Tdr +TrN +TXI +TrE +TWi +TBA +TFn +TzV +TER +TbI +Tml +TFy +Tnm +TgJ +TRB +Tgu +TBz +TNq +TPQ +TIR +TkS +TPi +TxG +TpW +TzG +TeV +TQiO +Tjq +TCY +TvU +TOf +TWW +TlF +TtWl +TtZN +TCK +Tkyk +TXw +TQa +TNW +Tvj +TAu +TOLd +TeZ +ThS +TRn +Tvx +Twa +TTYG +TxB +Tln +TtN +TLgM +TlNT +TIt +TBć +TFpI +TJv +TJr +TkG +TsD +TtL +TsS +TxCH +TSm +TfP +TanRh +TPrI +TYk +TiZ +TMT +Tais +Thfu +TQT +TddN +TXb +TZp +TmZ +Tkd +TFo +ToJ +TFY +Tzq +TpB +TTQ +TbZ +TDwc +Tkx +TeP +TDx +TCBO +TzW +TSW +TsOd +TJdd +Tlt +TKR +TKj +TLi +Thn +TaF +TDT +TEe +TZN +TxO +Tac +TJq +TJd +TKq +TgA +Tio +TxEU +TdS +TToal +Trl +TVM +Tquk +ThG +TAJ +TRwEg +THbP +TSx +TOlk +TyV +TiSE +ThE +TEi +TOs +TxU +TNa +Tfk +TrQ +TiV +Tuq +TgX +Teb +TvO +Tfc +TYa +TZZ +TrP +Tci +TGH +TYcP +TfIQ +TDX +Tmkx +TBVuu +TIIB +Txs +TTL +TzL +TXD +TTBJ +ToL +Tgm +TWvT +TQI +TbA +Tbi +THn +TDw +TTLI +TpO +TTX +TXd +TBd +Tzr +TBI +TcC +Txc +TfJ +TQy +TBC +TgQ +Tuf +TpOT +Twax +TQu +TAo +TzT +TAj +TTo +TRJ +TJM +TNy +TjZ +TLb +TIN +TkJ +TKc +TyZ +Twpz +TKTp +TDF +TBAe +TlX +TBIL +TOV +TzO +Trq +Tjl +TmN +TZw +TBG +Tlu +ToP +Tow +TYV +Tql +TgD +TaZ +TsKs +TodUu +TJDD +TDc +TodN +TWr +Tle +Tyvu +TVQ +Tct +Taz +TgB +TbFk +TJh +TWG +TwQ +TVZ +Tom +TCc +TxM +TAw +TyI +THQL +TqY +TQC +TQS +TQo +TLO +TqD +TOH +TYG +TxFAi +Tar +TQqaA +TÓ +Tqd +THnP +TRHo +TwFg +TBgB +TBT +TWI +TdV +Teo +TPm +TYJ +Tiw +Tzc +TDv +TaZF +TIY +TmG +TtzF +TAK +TSI +TlB +TTfa +TQi +TnL +TGp +TQp +TlH +TDf +TqYj +Tmj +Toj +TXQ +Tmb +TcX +Tcw +TigW +TOO +TpV +TZR +TKsU +TsJs +TZu +Tcd +TNmZ +TLc +TDa +TJJR +TMZ +TsE +TpP +TZb +TTA +TAvF +Ttj +TkCxJ +Tfn +TDPT +TDk +TeH +TkK +TDz +TMA +TKz +Tmja +Txp +TbQp +TOF +ToJUg +TpE +ToN +TLG +Tug +TdT +Tqt +Tnd +TME +Tjw +TYO +Tynm +TkFFF +TDME +TkjY +Tlr +TGN +TPNbl +TrUxH +TuU +Twb +TGK +TCIRAD +TPO +TEJ +Tbz +Tsg +Tqk +TIkQ +TUONHF +TuVF +TNhl +Toa +Tky +TOQ +Tii +Tlj +TLg +Tgn +TJt +TYu +Tdw +TFUC +TOA +Thv +TJECWQ Annots Annot Aac @@ -3127,6 +9612,462 @@ Aus AlJv Aew AhZ +AGAZYJ +AlY +Aiu +ALn +ACQOHD +AtO +ARW +AKT +AWJ +AWF +Agq +AHH +AKmz +AVL +Aoe +AWY +AosR +ATC +AdP +AoI +ANpz +AIr +AmN +Asf +AMR +AXf +ATB +AXn +AhJ +Adt +AGE +Alf +AZz +AHp +AkNr +AWj +ABdf +ABT +Akm +Aaa +AfBj +AOI +AGX +Adv +AwE +AEC +AbBl +AAx +AMp +AvTy +AqbX +AUx +AdU +Alj +Ayy +ArR +ACz +Avk +Atk +AvT +Aip +Aau +Ael +AORc +Aom +Ahe +AInn +ACud +ACX +Ank +ARw +Adn +AÄ +AVk +AtB +AaT +ACx +AZS +Asy +Aoc +AqI +ATH +AMQE +AkC +AOm +AGt +Anm +Asg +AJV +AOä +ARr +ACM +APP +AqL +AGi +Azq +AGKE +Arl +Ais +AlO +ACiA +ASm +AmD +Awe +Ajjo +AhG +AYn +Ars +Akw +ABJhf +Alv +AbHy +AXI +AEO +ANj +ARi +Avn +AYX +ADB +AlC +AqOf +Awt +AzI +Amt +ASw +AiD +AKF +AAY +AgL +ARGN +AWgz +AZf +Alu +AHt +Axl +AoT +Auh +AoQ +AZfWH +Auz +Akb +AKU +ANAD +Aji +AtM +AEF +ARt +Aon +AVoj +AXo +AUVl +AWU +Aep +Azb +Ash +AUe +Azao +AdC +AYKZ +AunX +AKW +AsX +Ajs +AynM +Aio +AslNg +Amit +ArE +AtK +AKR +ANJ +AvXV +AiS +AjKRL +AGZ +ACS +ANu +AyG +Ave +AQq +ARs +Amm +ALrH +ACf +AWB +ARIx +AiBS +AZw +ACh +AfU +ANE +AFJ +Ark +AYe +Arh +AbB +Ahs +AxV +AUu +Axmc +AyhCL +AsT +ARuj +AHU +AVK +AMAY +ANC +AfJO +AGg +Avo +AHBQT +ATXB +AWs +AXz +AEV +ASQ +AgFI +AYK +AjPz +AQv +AqR +AiY +ATEs +AFB +ACj +AXj +Aue +AFe +Aty +Ablnvo +Auu +AkI +AGO +Apb +Amy +AfBy +ATHa +AKD +AyX +AjVT +AMT +AfL +ACW +AHo +APi +APAmmm +Aif +AMIA +ARHaa +Avl +ASV +Akn +ALd +APL +AwU +AfY +Auk +AYN +AhgQ +AJU +Ans +AFC +AdAfy +ACZ +AWl +AYi +Ajt +APy +AWV +ABA +AdL +AnlX +ABU +AbK +Arc +ATR +AGA +Ava +ASa +AkH +Amu +AFL +AWk +AOr +AWy +AIi +Awb +Abu +AJd +AYs +AbR +Apy +AME +AsJ +AMfwc +AUf +Ajm +ATG +AaNmgL +Afp +AtJ +AxR +ALbRMA +Ajp +ANo +ANL +AsvC +AKK +AEN +ASM +AlG +Aag +AVe +AjO +ApJP +AzY +AKS +AmL +AeG +AKu +AiP +Aoa +Apo +Abb +Ant +AIb +AHD +AVO +ADQHiq +AvE +Acq +AZn +AAC +AXq +Aez +AVps +AVx +AvK +AWE +AaWa +AFK +Abqe +AWw +AJi +Aglp +AGd +AHQJ +Azp +ATX +AnQM +AsSMJ +Aqt +AgoQ +AAg +AXCPj +AIP +AHZ +ABb +AMV +AIEiu +AXD +AQyB +ApO +AaV +Ase +Adl +AYo +AAlOB +Asp +ADu +APdT +Afh +AeB +AzU +ALp +AkO +ALU +ACyulRjm +AYJM +AXm +AdZ +AXg +AHF +AEfG +Aug +Apd +AtN +AHgV +AoE +AZI +Avt +AkokG +AvP +AgO +AZx +Ana +Afm +AlQ +AcUjacuj +Abo +AEne +AGp +AVF +AsW +Ami +AXIXAXNXF +AMP +AEDP +AMe +Amj +AyP +AqH +AHK +AXY +AnF +ALG +AkK +ArM +AiA +AMtm +AqX +AMxV +ACA +Aro +AGk +AGI +AdX +APJ +ABgP +AeU +AMq +AsK +AqlsTD +AXS +AmT +AoP +Ady +ABz +ABE +AÖ +AUH +Aer +AcAC +ATqA +AgB +AjNO +AlN +AUTQKS +AvA +ARYS +AAU +AcK +AEU +Aki +Agj +ALo Subtype SGw SI @@ -3329,6 +10270,501 @@ SsN STc Sjnp SDUINS +Srx +SmD +SGWX +SHt +Stos +Sierpińskiego +SwP +Sprq +SZS +SZV +SAB +SkZ +SuLUC +SMy +SCg +SUC +SZlX +SLD +SBB +SMO +SQL +SSw +SlX +SbT +SsX +SYyWP +SMa +Sjp +SDAD +SHp +SLK +SWC +Sly +SXk +Sjx +Sto +STHU +SCuCg +SYTr +SAz +SMU +SkT +SZN +SgWnK +SUt +Sfs +SmPS +SFE +Sen +SSN +SoJ +SPji +SkO +Svx +Sig +SJb +SQX +SeREz +Sź +Sxt +SSo +SszU +SFN +SJS +SVyn +Syf +SSs +ScvU +SsH +SED +SZc +SDa +SiZ +Sil +SEm +SfQX +Sst +Svm +SYl +SvlrU +SBpd +SRq +SPDD +SuR +ShU +SFa +Scw +Smu +SRN +SLs +Slqyp +Smq +Spr +SVI +SKsp +SYs +Spf +Suo +SWf +SDE +Svi +SvnV +Son +SEG +Szo +Sja +ScGkD +SMY +SJR +SHs +SFqn +Sxn +Sue +SkB +Szkq +SGz +SKb +SUv +SCQ +Slt +StWcv +Sdi +SZL +SdU +SNZx +SFs +Sbp +SSUr +ScL +SUI +SKd +SNV +SqXR +SHhj +SSQ +SOlYx +SDan +Syn +Sem +SXAX +SpyQ +Sup +Sck +SDA +SDh +SZvH +Stp +SjR +SDn +SRzL +SerA +SOu +SHq +SNk +SIa +SKEj +StD +SxZ +SYv +SMb +SpY +SoP +SLH +SvsuG +SOXB +SVoX +SNW +SQZ +Sjr +Slu +SJYR +SMx +SQAy +SeRH +SYua +SbIu +SiU +SQr +SuGy +SnX +SHsFp +SDx +SiD +SiPL +SvK +Sar +SCx +SNz +Sna +SPVF +SyZ +SaJW +SER +SBk +SIR +SFeJ +ScoJ +SVc +SgW +SbV +SZH +Spn +SxnKn +SCc +SrR +SVd +SHae +Swrw +Shl +Sbr +Srb +SeKy +SFVS +SFx +SPL +Sdc +SDExg +Skl +SIE +SVx +Sas +SOeQ +SzF +Sqr +SbZ +SsV +SmX +SVE +SBt +SCT +SFM +SOy +SaV +SIQ +Sqy +Snn +Sgh +SSJ +STO +Sż +SEZ +SNr +SpdJ +Snp +SdY +STi +SpQQd +SOhP +SkA +SCG +SZeq +SoW +Srn +Sct +SZI +SIgN +SoNQ +SfU +SXXy +SVX +STbLJi +SaT +SBN +SBK +ShI +SxK +SVr +SXN +Srp +SNva +SFd +SmC +SvUo +SOby +SPw +SFz +SUA +SgC +SvF +SZd +SUshp +Sae +SMi +SPN +SYB +SFVq +SRP +Sbb +Ssb +SYe +SyH +SZG +Sgk +SBOe +SyR +SIO +Sbx +ScN +Std +SIT +SzQP +SJi +Stm +SIega +Swi +SEBT +SUMt +SzK +SCp +Skx +SRes +Scg +SSE +Szy +SDSZh +SSV +SEy +SmV +SDIp +StU +SŚ +SlUj +Swyd +SRx +Slf +SNU +SkTy +SyKJ +SFZ +SABk +SrY +Sbe +SxlN +SoV +SuD +SxXl +SzQJGjhD +SmI +SdUi +SQo +STf +Sfub +Skn +SOV +SNv +SnF +SjK +SqU +SHf +SCKl +Sgm +STkT +SaW +Sal +SOi +SBĆ +ShKs +SÖC +SnH +SAU +SON +SwYM +SxR +SkC +Spy +STpn +SLh +SzX +SJn +SxE +SGX +SRV +Stt +Svq +Ssh +SAi +Ssk +SdA +SbQ +Syk +SwV +SBT +Skc +SZJ +SUO +SVA +SiN +Smo +SvO +SDwe +SnsH +Sdk +StMC +SEq +Sve +SvWJ +SIV +SoH +SGK +SAdX +SFl +SYF +SBw +SMN +SZhA +SPC +SOS +SBv +SvmV +SSy +SCz +SWtG +SPH +SCv +SANU +SnP +Svf +SRv +Svj +SIs +SOC +Ssez +SES +SHG +Sqm +Sdf +Svll +Szz +SnS +SCD +SCcUe +SLL +SpZM +Sph +SDd +SqY +SNZ +SgU +SMh +STo +Svl +Sans +SYk +SaA +SHEOA +SrIn +Swf +SYXYTYL +SgR +SWR +STjh +SHu +Spi +SNp +SÄ +SDG +SHa +Suw +Sqs +SYa +Smv +SMp +SBIE +SGh +SVS +SkL +SxDb +SkR +SJG +ShGh +Stj +SfX +STL +Sth +SRTPl +SWt +SOJn +SfT +SwF +SWi +STKQFY +SvS +SYWGTV +SHqS +SQd +Sfl +SVAl +SHn +SHGGPH +SSa +SbWLY +SIK +ScE +SCb +Sti Rect Re Resources @@ -3536,6 +10972,441 @@ RLQ RWu RQc Rfp +Reprezentacja +Rysunek +RBS +RFdL +RZJH +RXH +RhE +RFl +ROQ +RCI +RwRxx +Rht +RsO +Reu +RgiUf +RWA +RpO +ROL +Rsy +Rgr +RBC +RKy +RsJ +Rfx +RYqG +Ryr +Rfdt +RjF +Ryy +Rip +RNd +RcO +RWn +Rcy +RHl +Rtv +Rto +RaJ +RUg +RjWQt +RbM +RMuu +RJLx +RWI +RjO +RIg +RJf +RLk +Rbu +RID +Rix +Rka +RsPG +Rhc +REn +RLM +RrQ +RMT +RGkI +RzO +Rfbv +ROJ +RGGt +RjY +Rej +Rdh +Rck +RERhQ +RDf +Rsd +Rmg +RVQ +RvRi +RIa +Rtt +REf +RTTV +Rbb +RVuMG +Rsv +ROR +ROO +RxP +RuK +RrGs +RrC +RIBt +RTDT +RaS +RUJe +RKd +ROt +RcN +Rxi +RTLe +Rom +RAi +RFN +Rfs +RgaG +RDaP +RmA +RGn +RxZ +RXh +RAE +RQP +Ryb +RnN +Rtmf +Rerl +RHVn +Rho +Rmp +RfP +RRY +RbH +RAe +RiU +RJd +RuWQ +RClou +Rwz +Rvk +RDd +Rkq +RoE +Rmh +RxA +ReB +RyM +ROs +RKJ +RwB +RUqkwSAM +RnEF +RDP +RxG +RcG +RürM +RAlV +RTr +RĆ +RyE +Rnp +RUT +RzY +Rzk +RRo +RZdTU +RFy +RNL +ROoU +ReI +RÜ +RKG +RMH +RkhhS +ROg +RŃBi +RbG +RZXc +RdS +RzD +Rpb +Raj +RJk +RkO +RpWg +RnR +RPy +RJe +Rov +Roa +RzX +RQrmuU +RYz +RELTu +RnI +RuR +RPC +Rmc +RlL +RMr +RTo +RqW +RRs +RbvH +RzE +Rkb +RkV +Rjz +RxvAW +Rkw +RrZ +Ruu +RsN +RwcI +RPmpU +RQf +RyY +RuC +Rvv +RIW +RKM +RuqCHE +Rbw +Rrh +RWx +RdXY +RHiYc +RSjx +RSd +RLX +RBsvP +RLv +RTf +RML +RHc +RpdS +RshQ +RtM +RBe +RIw +RLp +Rrj +RßNG +RIQ +RUy +RWlR +RsS +RRYN +RGf +RFh +RRnx +RAh +RUu +REw +RPWS +RMAHQ +RkIw +RtI +RPe +RJK +RAT +ReQP +RDFT +RVW +RZkw +RxRI +RED +RqbaK +RRZ +ROi +Ree +Rsvo +RNe +RIX +RkFe +Rtn +Rpz +RFV +RaP +Rnt +Rme +RiKQ +RzR +RVl +RvVf +Rnh +RYA +RGQC +RXJ +Rxv +REE +RPG +RIqc +Rfo +RuPPE +RoT +RYv +RHZ +RMq +RYd +RXf +RxjG +RqJxh +RtVs +RkWNV +RZL +RbX +RWh +RzN +RiP +Ren +RjX +RIEa +RLw +RYa +RIOw +RyT +RXRq +RCB +RVBf +RhLR +RDI +Rft +RNZ +RUa +RueU +RwR +RpWl +REB +RLj +RKC +Rwt +RDv +Rjn +RAc +RoO +Rby +RUz +Rxe +RqO +Roy +RuH +RTu +RfH +ROa +RQv +RGM +Rvj +RQE +RctM +REG +Riu +RrVF +Rsb +RuX +RcU +RNb +RtR +RWrm +RFf +RNf +RiB +Rhcf +RIfh +RdB +RVm +RCji +RsAM +RPv +RNiR +Rwr +RLKk +RIn +Rnc +RWq +Rorly +Rzu +RoW +RSf +RSa +RtX +RHK +RdK +RdI +RCuu +RGw +REWu +RtlZF +RzzE +RGY +RcD +RbNO +RcM +RTY +RrNq +RRh +Rfi +RXW +RuZ +RIh +RRM +RmCl +RlM +RGRGS +RmRmR +Rlt +RuA +RGy +RkD +RFFPp +RBr +RCmKm +RJO +REU +RQO +RzPxA +RQl +RRp +RLu +Rbq +Rzz +RQY +RcSd +RDp +RUI +Rkz +RTfR +RWy +RZO +RYu +RXe +Rwa +Rie +RFio +RZi +Rrm +Rbt +RQo +RsQ +Rfu +RyVr +RCy +RHOg +RZe +RBl +Rnm +RJGHUU +Ruc +RLYS +RJP +RnfX Navigation No Nj @@ -3720,6 +11591,467 @@ NRO Neo Ndz NOYRRS +NkM +Nfü +NjE +NSJ +Nstd +NBi +NKe +Nbm +NGg +Nvc +Nwyl +NDT +NeHL +NzoA +NQl +Nlc +NIn +NgA +NAo +NLj +NLr +Nak +NuPjm +NccF +Nmo +NTw +Nsn +NDUU +Nyf +NGVJ +Nok +Ntf +NqU +Nwd +Nge +NiLO +NlT +NVQY +Nsp +NDo +NRs +NrG +NBx +NAkC +NLe +NpxK +NDN +Nrx +NVL +NWJ +NCv +NXA +NlNm +NjOH +Nad +NwJ +NkCa +Nml +NWwqk +NKL +NWs +NrP +Ncp +NvG +NUn +Nhb +NhKfw +NeJ +NjD +NoI +Nmm +NiJ +NTj +Nuk +NdR +NiD +NAn +NMu +NHo +NAZ +NsX +NUY +NaY +NDi +NKv +NDt +Nks +NfC +Nhy +NpcA +NwM +NQu +NĘ +NFM +Nod +NCż +NYX +NEM +NqE +NceAQ +NIJ +NOKE +NRQ +NCU +NMt +Nmq +NSi +NFf +NfRd +NeCX +Nko +Nmbfx +Ndq +NasU +NzsNp +NtB +NQW +NtP +Nfz +Ngi +Nqt +Nmc +Ntc +NWP +NpR +Nim +Nsw +NRW +Nvk +NsHU +NkP +NLy +Ndx +NSO +NPb +NjU +NyL +Nmr +Nwvl +NFhz +Ntv +NjI +Ngc +NdA +NRB +NNg +Naw +NCs +Nzm +NvD +NXB +NJi +NXI +NCUkP +NYDF +Nsu +NttG +NlZt +Nba +NJS +NÄ +Njp +NQZ +NGa +NIE +NAE +NpKN +NBs +NGy +NIb +NJU +NVSM +Nied +NMk +NuL +NHOX +Ndu +NWpp +NPZ +NWg +NEZ +NimeiY +NcI +NNX +NMB +NCsU +NEe +NKS +NAG +NuH +NYN +Nvo +NfX +NjC +Nuq +NeK +NXa +NxacR +NRt +NGt +NLn +NIWS +NPe +NqlB +NLS +NhH +NkG +NDy +Nyb +Nnhz +NdY +NVI +NAK +NEE +Nsro +NJBPz +NbX +Nmv +NwD +Ngl +NjB +NSq +NJM +NiKqJ +NCZ +NsM +NUU +NnP +NGVB +Nhk +NpG +NJWN +NhIQ +Nsk +NNM +NsBo +NZA +NQD +Nxw +NTG +Nto +NPa +Njz +NkZ +NWU +NbqGG +Nbz +NIGjr +NZd +Nvym +NXt +Nkf +NCY +NYA +NBfN +NCq +NcA +NSyZ +Nnk +NBT +NYB +Nvn +NAVAr +Nmy +NmW +Njq +NUI +NwLvOv +NAP +Ntp +Nao +NQv +NoO +NGN +NnAe +NUP +NZgd +NUL +NrT +Nyy +NtH +NVug +NZs +NfrI +Nkql +NCA +NDR +NUV +NEn +NFt +Nrp +NSk +Nqi +NUö +Nch +NXq +NDv +NeQO +NHL +NYiO +NSbu +NkX +Nyr +NCW +NdV +NQWaB +NkUd +NLF +Nxa +NhY +NlR +NgAj +Naq +NIp +Nth +NdX +NLs +NhAr +NXm +Nnbu +NUe +NrN +Ntt +NgL +NuW +NxVr +Njj +NVa +NVF +Nfr +NBmp +NhR +NTI +NuT +NYFk +Nud +NIg +NMiLO +NLw +Nhm +NqJ +NZD +NHJ +Nds +NlD +NjpX +NVm +Nux +NvE +NPN +Nft +NJR +NrZD +NQj +NOG +NpuI +NGl +Nol +NyV +Njy +NFtN +NOg +NIK +NlrE +NVtO +Ncv +NbG +Njf +Nov +NqhR +NCl +NGj +Nio +Nuwf +Num +NgH +Ngu +Noq +NŚ +Nny +NUr +NWc +NKs +Ngy +Nxd +NGc +NUEF +NPB +NTA +Ntk +NUu +NRv +NwU +NEa +NUt +NME +Nif +NHeT +NPWs +NxH +NeV +NFq +NQtj +NxJ +NCR +Npe +NTh +Nop +Nkx +NFY +NnQ +NpN +NbFbvbnb +NEw +NvC +Nqw +NZC +Nxv +NPz +NIs +NEzA +NpD +NOy +NIkv +NDcL +NQS +NWt +NKO +NBD +Nkp +NKg +NhO +NqÖ +NtDj +NRN +Nqe +NDh +Nvx +NUF +NhF +NOIzx +NCCE +NCn +NnAs +Nzvy +NbrF +NeAxd +NCf +NZl +NcX +NMYr +NOf +NtK +Nkkk +NIx +Nwq +Nzr +NQU +NWo +NueT +NGM ColorSpace Contents Cx @@ -3932,6 +12264,456 @@ Czh CGr CbZ CFy +CMdSuZ +COrl +Cdy +CrP +CKg +CiŻv +Cnm +CUc +Cwi +Cyv +Ccn +CQD +CLi +CUC +Cdv +CKY +CIf +CrO +CuT +CAy +CDx +CCP +CbX +COm +CCZ +CUO +CYRG +CYt +Cxs +Cnx +CPoH +CUm +CSGt +CwZ +CeT +CBN +CWw +CSVp +CNI +CIh +CcX +CGv +Cbm +CMF +CcBS +CDuC +CSeH +Cxd +CxU +Cmp +CzC +CPt +CSfr +CojHn +CIJ +Cui +Cź +CGwM +CRtF +CÄ +Cku +CIC +CEH +CLq +CBuS +CbH +CaZ +Cfaw +CXv +COyk +Cxg +CxR +CTG +CXNl +CgP +CSH +CzQU +CsH +CaG +CFV +CSG +CoX +CAhW +CYYE +CdJ +CfRc +CZs +CRD +CgGb +CIRu +CCV +CtAel +CHb +CrV +CfXd +CvuU +CyS +CfQ +CLr +Cgjm +Cgi +Cox +Cno +CJb +Cjk +CZF +Cpr +CcO +Cns +CAgB +Cab +COF +CDSex +CBa +CJY +CRA +Cyuth +CDG +Cev +Clwr +CAt +CBS +Cya +CIVq +CTb +CnjG +Cmi +CVP +CZp +CmO +CgyB +CIYuTd +CVS +CbT +CRc +CCzu +CHU +CRN +Cyy +Ciu +Cpc +CxN +CuEe +CnZT +CXk +Cjw +Cad +Czc +CKQ +Cct +CMy +CLKce +CZX +CSI +CZm +CtU +CXM +CaB +CIq +CGHG +CEg +Catt +Ceo +CBU +CJD +CkQ +CLF +CaS +CvGo +Cvv +Chl +CgV +CyZX +CbA +CTPQD +CBvbk +Cmj +CuX +CBJ +CTV +Cyd +Chu +CUR +CeJC +CJO +CKh +CAv +Csd +Cld +CQF +Ckj +CXd +CNYY +CDk +CUv +CKo +CSW +CgE +CJf +CjE +CQO +Cnt +CPY +CYD +CySVO +CjtW +CMn +CIb +CyX +CwFR +Cnv +CtA +CTC +CAq +CqB +CVhV +CiaX +CoD +CxaLe +ClG +ChqJgO +CsB +Cgw +CuR +Cqu +Cqqjup +CbQt +CQso +CeL +Csx +CbF +CVC +Cwu +CVh +CsqY +CnAT +CeE +CCu +CqY +CYi +ChryU +Cis +CUrYM +CuJ +CŹ +CCh +CzP +CNvg +Cxa +CnG +Cso +Cny +CecV +CMg +CPf +Cqz +CQEz +CgY +CZl +CuDs +CeV +CPT +CKy +CŁ +CQY +Cnw +Cka +CRtI +CmsG +CMK +CzK +CMh +ChZ +CLl +CHt +CvM +CUM +CFa +CQl +CqH +Cpg +CSZb +CqP +CoS +CIm +CjW +CUJ +CFfY +CGA +CpC +CZc +Cbgh +CwoH +CxIj +CEjIC +CLw +Cwv +Cxe +Cth +Ctk +CjU +CGQ +CRv +Cyj +CtJ +Ckk +CTw +CBqH +ChE +CHz +CeD +CPp +CHi +CigD +CHHs +CEQ +CujrHC +ClQ +CIT +CGd +CWX +CINwi +CtF +CQyjd +COd +CPq +CasN +Cmr +CYq +CGw +CJv +CnH +CzYA +Cem +CiN +CFp +CUX +CbGy +CUa +ChI +CyLk +Cdo +CGF +CXW +CDPC +Cir +Cyp +CrU +CKK +Clh +CJU +CaQ +CGi +Csf +CmKS +CDI +CXH +CjeY +Cwc +Cac +COakE +CNgZ +CTO +Cge +CPQ +ClV +CaI +CZN +CEY +Cme +CqF +CGE +CQp +CQe +CUp +CcgW +CvNV +CPA +CXh +Cdvm +CSX +CAu +CXC +CDl +CNA +CYg +CGV +CqO +CfAT +CDp +CqI +CTVL +Cgy +CcJwaI +CKj +Cci +CjD +Cod +CuB +Cov +Cż +CrI +CNB +CNC +Cfk +CvSk +CUu +CQK +CgH +CFJ +CTh +Comic +CcI +Cvf +CGo +CjH +Cqx +CcJ +Cwd +CWM +CwC +CmG +COJ +Csb +Cng +CiT +CbP +CXB +CzL +CJQ +Csh +Cascadia +CoJ +CAxq +CwK +CUI +Ciąg +Cysx +COIY +CMY +CVp +CWQ +COq +CWcW +CnA +CBK +CFwA +CYXo +CRbrb +CXwu ExtGState Eu EV @@ -4157,6 +12939,489 @@ Ebj EQaK EYfv EMz +ELo +ENR +ESorV +Ezg +Ehqe +EsD +EiNW +EVI +EhH +EzW +EwG +EfS +EOf +EvW +ExB +ECL +EvX +EEj +Ekl +EbX +Eks +EwU +EYT +Eóz +EBJ +EyTI +Eqw +EzA +EYV +ESM +EiQ +Eaek +ECPY +EQQ +EfC +EnG +EeK +Egf +EsQ +EZi +EZpdFjD +Epo +EWkA +EHs +Eue +EGR +ETd +EBt +EpC +EOZo +EVC +EmU +EyPo +EzS +Ewc +EVA +EhLG +EABW +EJw +EzAy +Eü +EIs +EmuU +EbK +EWcJE +Ebo +EAQ +Exg +EZcY +Emh +ERs +ECI +EMS +EXc +Ear +Ebms +EgJ +ENJ +ERU +EoT +ESe +EgkP +ExxW +ETL +EtA +EYUk +EKlt +Ewt +EId +EfU +EcU +EUs +EKBH +EUo +EYf +EaG +Empx +Ezjj +EAf +EHqtvw +EDe +EmEk +Edb +EHn +EAki +Ejx +EcG +EZh +EyW +ERtw +EmL +EKD +EEJ +EcI +EvD +EPw +EdU +ETA +EFX +ELA +EtL +ETr +EMPI +Era +Ewg +Emd +EBd +EmM +Euf +ELWLL +EOg +Eku +EIAvOH +ETHw +EhV +EYA +EZCv +EzL +EbC +EiP +EDi +EOTo +Eyk +ErS +EgL +ECg +EmP +Eqd +ELT +EUL +EMd +EEY +EUb +EnQwD +EXe +ETo +EsA +EMV +EtW +EZO +EYI +ERu +Emf +Ect +ERg +Eex +EfO +ExS +Exs +Ejz +EMW +Ell +ElX +EOX +Eą +ExK +EzV +EED +Ewry +EGW +EmX +EpHNS +EMu +EzED +ERi +Egg +Elo +EaH +EcKq +EKB +ELNu +EWQ +EVl +EoS +EUdc +EfGy +Ejp +EjN +EUZ +EYu +Evd +EKk +Ehl +Egn +EnK +EZm +EGt +EPx +Eym +EbR +EuD +EXO +Euy +EiA +Eul +Egk +EkN +EGv +EzVIJ +EwQ +EFG +Enl +ERb +EYZ +EGi +Eqs +EJs +EtkV +EPv +EwZ +Efg +ExN +ESn +EPu +Eeg +EuQ +Eyx +EDh +Eact +EDU +ESa +EAC +EhU +EXA +EGI +EDM +Esi +EXPdKO +Emz +EkRh +EsU +EqYA +Evp +EtP +Eri +Evf +Ebx +ETs +EjWO +EQW +EgIQM +Ezv +EnPy +ENqg +EqHi +EIdr +EUr +EYq +EMB +EdT +EfQ +EdV +EKG +Eni +Evq +Evg +EYcD +EeB +ENh +EGk +EIn +EHr +EUYYz +Ebn +EKU +EEG +EIZ +EeQK +Ewu +EOaM +EaT +Eyy +Exk +EHj +EDE +EAK +ENu +ESECc +EVmp +EyB +EfW +Enfy +EqN +EGko +Eiv +ERo +Eid +EUUU +EQt +Erbsc +EGN +Exc +EQf +ESH +EeCm +Ejo +ESx +Ehr +EvrtxK +Esn +EZuR +EcY +EeYlg +Edz +EBP +ErYN +EMX +Etb +EsI +EtON +ENp +EWL +EMVO +EEC +EFC +EuA +EEw +ECV +EWdW +ECt +EqOy +Exl +EKW +Eed +EiU +ErC +EjO +EZMF +EAz +EySgE +Ezj +EqkYM +Eot +ENmpLu +Eqan +EaA +ESb +EpS +ECC +EtFn +EXg +EaI +EKi +ETn +EKdV +EvV +EkgI +ETq +Ehq +EEĘ +ECn +EQl +EOOf +Egtb +ElD +EVm +EEy +EQr +EAn +EnH +Edq +EJV +EdS +ELp +EKnlG +ERh +EWi +EPX +Erv +EBi +Enk +EnNF +EPsS +EIwmX +Emp +ESd +ECi +Enf +ERI +Eqh +EoU +EPbJ +Eji +Ezx +ENGE +EHi +EXJ +ETa +EKR +Eny +EQP +EcH +EQe +EOL +EOu +Ete +ELQ +EzSU +EXCnYMp +Eae +EbQRQJ +Eyi +EyI +Ehc +EPD +EqI +EDD +EnCn +Ejg +EPR +ETJ +EdZ +EQI +EGG +Eaf +ExUxMx +EBz +EOK +Eow +EzH +Erb +EGl +EZv +Ezd +Eud +EĆ +EHIj +EXr +EaQL +EHBN +EuG +EOE +ErI +EMe +EzB +EnAq +Etl +EZZ +EJn +ELRf +EyQ +EDL +EME +Elx +Eou +EWz +EmO +ErR +ELh +ENWZRC +EAYY +Eyg +EcTl +Eoh +EeTf +ExnA +EzN +EXL +EBUM +EiE +EAo +Ejv +EHQIY Xmo XB XK @@ -4363,6 +13628,472 @@ Xqg Xkw XGyq Xtp +XRx +XjS +XQE +XOWE +XehpB +XOZ +XpP +XLD +XvQ +Xjq +XQR +XCq +XKU +Xix +XKar +XCb +XMe +XFy +XAc +Xmp +XCU +XNy +Xlm +XEX +XDs +XNjW +XmD +XjV +XYa +XaZ +XHt +Xgy +XXv +XQu +XSA +XAM +XVt +XRS +Xpt +Xmh +Xpk +XxG +XOB +XREX +XON +XhFt +Xrv +XRQ +XmN +Xmd +XwX +XtL +XDA +XtG +XGO +XAJ +XNn +XkR +XćJ +XGX +XoC +XaJ +XyZ +XpCXJ +XKB +Xxjm +XcL +XHY +XaS +XgRa +XJL +Xyg +Xwa +XfA +Xen +Xzl +XcGQ +XZj +XMJU +XZy +XJg +XrB +XDh +Xtb +Xqs +XXLb +Xku +XsJ +Xeb +XkU +XAZ +XyQ +Xrh +XkP +XUC +Xlw +XKKV +Xas +XQZB +XAu +Xvb +XZQ +XqH +Xpf +XCX +XFZm +XYK +Xir +XkH +XoF +XKdF +XVT +Xya +XwD +XOp +XLN +Xva +Xrc +XNT +XzYL +XiVeh +XWOYLW +XbT +XKt +XOT +XFc +Xjn +XNA +XEG +Xzm +Xll +XdN +Xbz +XiX +XVV +Xoc +XsZ +Xlc +Xpq +XYsR +Xei +XLR +XGm +Xlr +XYR +Xhj +XFV +XRX +XFb +XAd +Xś +XdC +Xyy +Xjkp +XiC +XXr +XVu +XMd +XsI +XvRB +Xph +XsF +XHhZ +XHn +XkX +XbEm +XGUzS +XZdL +XgW +Xqt +XQs +XWu +XMN +Xqjie +XuX +XLm +XRzu +XAX +XPYU +XLI +XPE +XhJe +XThI +XAi +XbmQ +XYN +XEE +XBc +Xyr +XsC +XlUacM +XZH +XuG +Xrn +XGI +XWB +Xspn +XiM +Xyx +XoO +XvK +XcO +XSR +XYY +XyY +XoX +XLK +XxY +XQQ +Xyn +XgKd +Xko +XIB +XjF +XMv +XtA +Xbqp +XJn +XfP +XUG +XBe +XlP +XUB +XkB +XQTm +XzX +XnG +Xoe +Xwo +XQy +Xjj +XxyK +Xam +XtF +XcKl +XFR +Xtu +XJU +XJT +XyM +XYBE +XTO +Xdb +Xvu +Xma +XJZ +XyN +XrH +XRJ +XEb +XUHg +XFaI +XBAf +XFY +Xzh +XDu +XPP +XFI +Xvv +Xkh +Xzn +Xvgd +XdW +Xzz +XtD +XyU +XtT +XAT +Xcl +Xpl +XWT +XZe +XWY +Xgg +Xte +XRSI +XXa +XECR +XhĆ +XBd +Xoz +XIwJM +XZOjX +XCF +Xxr +Xemn +Xpg +XReBx +XuIQ +XWJ +XWNI +XJt +Xmx +Xre +XKa +XiKv +XNp +XAzC +XdP +XOF +XsN +XcB +XRU +XNdW +XDi +XDr +Xyq +XHyf +XCa +XaP +XctKRö +XORq +XmP +Xjsr +XTa +XJv +XBg +XWx +XCz +XGZ +XJH +XQw +XcV +XTn +XaD +XLNtp +XDvY +XLP +XWa +XWM +XcK +XUv +XTq +XuQ +XLO +Xaf +XDS +XEWQ +XFHxJ +Xlo +Xtzf +XXx +XDgP +XÖ +XeH +XvCm +XoP +Xfg +XnO +XMt +Xvd +Xpmp +Xdv +XdI +XgJ +XvDM +XLE +XRY +XpHE +XdqO +XWV +XiSx +Xon +XpQ +XWC +XqV +XJz +XHd +XSj +XfK +XGr +Xhr +XZm +XDX +XMp +XzL +XdEg +XnMW +XOj +XyF +XBvaHn +Xps +XWH +XgGKc +XYx +XpW +Xwc +XWezJKu +XiZPw +XmX +XEn +XmY +XMC +XzkP +XANG +Xhv +Xvs +XbS +XUb +XXJ +XDw +XwG +XpY +Xfr +XGJpY +XSZ +XDg +XLgn +Xxe +XGc +XsO +XJnY +Xgw +Xlx +XzXz +XNU +XyW +XWoJ +XxO +XOu +XssKN +XYl +XjuG +XPT +XVs +XhH +XlY +XmV +Xly +XyG +Xms +XWv +XgK +XyQVM +XfVE +XvG +XaL +XeY +XMV +Xbi +Xkf +XZV +XROc +XidZ +XyH +XRa +XOk +XtE +XcU +XLLrP +XkeHN +XZx +XSQEB +Xth +XtP +XvV +XCg +Xhk +XVm +XvYtFF +Xxf +XKs +XDT +XUFYNU +XsR +XUf VB Vp VE @@ -4562,6 +14293,489 @@ VgC VCH VRqKCS VJWAUJ +Vü +VYZ +VaR +VqP +VyN +Vxc +VEmT +VPZT +VGb +VXxH +VMvg +VAk +VmwL +Vwb +VPIl +Vnoc +VVS +VTP +VNQ +Vpwt +Vxt +Vfz +VofuO +VrB +VgI +ViV +Vai +VrA +Vvr +Vll +Vhg +VTC +VKUZ +VhI +VGHc +VMk +VZqF +Vefbl +VBK +VSGE +VyY +VdIC +VJS +VWQ +VZU +Vwj +VdC +VVgU +Vul +VRw +Vfe +VES +VIfH +Vjr +VyU +VtGp +VbM +Vke +Vkt +VSd +VOY +VDQm +VcM +Vkr +VWYel +Vpj +Vso +VCb +VsT +ViH +ViM +VCy +VpR +VtzG +VzO +VAWM +VDy +VVyV +VJo +VpH +Vba +VUj +VBx +VjK +VMq +VLQ +VLPnVr +Vhn +VoW +VQQ +VeG +Vti +VQM +VpcG +VOD +VPq +Vjk +Vdl +VKN +VHh +VOs +Vmv +VXasO +VUM +Vnz +Vki +Vgy +VrG +VXd +VTl +VWE +Vny +Vug +VtF +VKv +VWG +VQJ +VPgpf +Vew +VLdjgw +VPVr +VqH +Vlc +VhH +Vza +VDU +VUE +Vrr +VrDd +VPKs +VXb +VYfEo +VoK +VsC +VoISa +Vwd +VKW +VXuV +VAs +VRC +VoJ +VLN +VQa +Vvxz +VnM +VVK +Vxe +VZY +VBu +VwU +Vzu +VFZ +VOImb +VjVB +VfK +VIZ +VCN +VYf +VAK +Vaw +VSt +VYv +VRL +VCu +VqI +VYE +ViT +VKD +VOf +VSl +VkB +VVH +VMj +Vdb +VCM +VcP +Vyp +VFw +Vez +VON +VKb +VPU +VNZ +VTG +Vjjl +Vmb +VxH +VOlD +VDXjY +Vndl +VZe +VNU +VlY +VbZ +Viath +VvG +VCQ +VBk +VoAl +VdA +Vbwq +VNe +VgLUC +VLC +VzX +Vyq +VTI +VhR +VZv +Vpb +Vpt +VAN +VDv +VmC +VuQW +VFf +VEwz +VEt +VDgS +Vixr +VJk +VVrI +VnQ +VBO +VwP +VIP +Vky +Vkkj +VQn +VlgJ +VuI +VJj +Von +VptQ +VCR +VTLz +VÓpHW +VIpa +Vhy +VEQvP +Vcwe +VyP +Vfo +VEe +Vrw +VZg +VkA +VMB +VYq +VAS +VYo +VWA +VhU +VOg +Vgw +VBM +VUp +VGm +VDI +VTS +Vmm +VVa +VOQtE +VJU +Vam +VeM +VvIq +Vao +Vap +VuX +VANw +VJJ +VRD +Vby +VCa +VNk +VSq +VCd +VXPz +Vgd +VZu +VPxB +VXM +VvN +VFd +VaG +VKk +Vnj +Vww +VeYfP +Vle +VPCG +VDi +Vpa +VhAt +Vwe +VYy +VLH +VyB +VdI +VYs +VDkp +VVd +Vgi +Vzd +VYV +VDT +VhoC +VLc +VyW +VEH +VlV +VVG +Vih +VLs +VhF +VBQJj +VjR +VcL +VPK +VNY +VTa +VPN +VeD +VJX +VQT +VAUL +VWq +Vhv +VQY +VMuH +VZj +VQg +Vzw +ViU +VlaLB +VXe +VfJ +VfB +Vrl +VkUH +VMr +Vsj +VstM +VGi +VgE +VMm +Vł +VMU +VVJ +VCr +VaW +VTQ +VFL +VRt +Vcd +VSHH +VAq +VTN +VKK +VRb +Vup +VnVsT +VASH +ViN +Vnq +VasR +Vbe +VLHk +VCW +VEQ +VzOi +VAD +Vplg +VkL +VzsY +VPB +VyTo +VSI +VKl +VyGq +VDR +VKBC +VDo +VGu +Vó +VyI +VlH +Vrk +VtI +Vqo +VhhH +VCC +VbL +VvC +VqF +VTW +VRm +Vjg +VJt +Vzk +VFR +VEx +VoN +Vkf +Vyo +VGw +VEc +VYD +VXV +VBh +VpG +VUV +VŁ +VAP +Vct +Vhs +VGDt +VsG +VSo +VfW +VfUG +VKj +Vvn +VaM +VRgQTD +VBy +VBi +VytJ +Verdana +Vvg +VIq +VcY +VOA +VoS +VZp +Vwfi +VhKd +Vrj +VCG +Vjph +VrC +VcI +Vjl +VOVP +VSL +Vhr +Vok +VTD +VXR +ViO +VZSs +VOh +VXU +VxQzZzZ +Vuw +VMtH +VLE +VubU +VDp +VKuyd +VbzBe +VAG +VpUpmp +VNX +Virgil +VAo +VhZ +Vfj +VKkn +VLr +VKxYg +VHH +VZd +VBA +Vom +VAQ +Vtl +VsE +VPp +VvlG +VAM +Vmg in iy ir @@ -4793,6 +15007,489 @@ iWP izA imul iNe +iNazQt +iEMv +ifG +intersection +iiU +iTAU +iIL +ixq +ihdr +iTs +iVQ +ijtSQ +ivz +iYI +iQaB +ievP +iUqS +iYK +imz +iSS +isy +ijs +iTa +iTq +iYm +iyw +iFQ +iIZŁ +iLpP +ivW +isl +inM +idI +iQIl +ilk +iwG +ion +iQz +iTAq +ivh +ipZA +iFmT +ivO +iDm +iKF +iql +ieQL +ipE +ihT +iZDqg +ilc +ipH +ibg +iUB +ixB +iSu +iTl +iKu +ioh +iFXO +iUMpjf +ifiEYO +iGc +iku +iqLI +iGB +iUu +iEQ +iGl +iAa +iPh +ikg +iQG +iut +iUv +icF +iempIe +iUW +iLn +iwn +iYj +iBf +ikV +iGH +iibK +izt +iEh +ino +igW +iFr +imeuB +icO +iwx +iCE +iBA +iIR +inB +ito +iFlP +izz +iyi +itc +iHa +iQV +iOR +igB +icTK +iqRO +iII +iCZ +igJ +iOc +iMt +iIz +itd +iesQ +iBc +iXB +idM +iuLk +iDZ +iqtE +iSO +iJr +inL +iPS +ijN +iDmO +ivWP +iGC +ijTJ +itZA +iä +iCM +iFm +iUO +itN +iSl +iqK +iqO +izp +iif +ivG +ivw +iXw +iUX +iws +ikf +iyM +iaX +iSv +irC +iab +iMe +icl +imd +ixV +iwSv +irZ +iLJ +iXyY +iMH +ixbGB +iBrU +itv +izm +iee +iIA +iGHU +ieX +iBY +iuj +iHGz +igDr +iEK +iAJ +iFB +ilV +igo +iYJ +iAx +iET +inu +iZY +ivj +itM +iSz +iWyk +inA +iCgu +ilR +ixx +ioIGU +iFa +isQ +iMb +ityM +iGs +iiA +iEF +iKt +iJz +iMW +inj +iTg +iLc +ime +iIMgA +iMr +ixe +ixf +irj +iul +iAECW +irI +iYmP +iSW +iah +ikt +iZnN +ida +iwd +ibG +iLb +ivuv +iVL +ieyu +ivH +iZb +iNU +iVM +idw +ikC +ixP +iSXXX +iGn +ihd +iAm +iOW +iQK +iun +iqA +ivc +ifO +igfr +iFX +imSb +ijo +iYlyl +inBC +idV +imeSm +iDB +iHb +iENv +iweS +ioK +iuu +idO +iog +iuG +iPj +iso +iSb +iNd +icg +iOE +iOy +iPw +idD +iba +imsu +ieO +izw +iBd +iQX +iCI +iFv +iph +ioX +iMjK +ieS +ixv +iMB +imC +iUjC +iTK +iSx +iDt +iMK +iXf +iac +isiV +iTG +idtx +ioAU +igyW +idNJ +iluXS +iFw +iJQ +iNf +iYi +iFO +iPN +irJ +iaZ +izWkBy +ivU +iCl +idt +ird +iQeA +iZv +iaQ +iPB +ibwzmPxHS +ivm +isH +iyz +iMwH +iyL +idXi +iVd +ixJ +iysd +iLOA +iAc +iZRQ +izI +iwPd +iXe +iqi +iWt +ivFb +iGS +iFM +iUn +irG +igH +ikH +iGu +iRK +iyF +iyl +iyv +iZX +iot +iYk +iyU +imU +ioPWpW +idq +iva +ikd +iiC +iYa +iry +iTf +iFc +icV +ipe +iaVl +iyV +iQrOA +iom +ivtZ +iJSJ +ieT +iCO +iju +iRp +iCN +iUe +imO +ivx +icf +ilF +itp +ioO +iHF +iLs +iwZ +iUp +iTJ +itYd +iri +iew +ivL +ijm +idS +ieE +iUq +iCA +itl +iAjq +iEw +ixJL +isW +iAXK +ivM +iEJ +iMf +iad +icZ +iQh +ifd +iJw +iWj +iOQ +iwv +ifuV +iAA +iCG +iLM +isU +iaw +iSKr +iQUnp +ika +iIv +idx +ipQ +irhp +idi +iBy +iś +ihq +idQ +iNPz +igz +irF +iCn +ihj +iKO +iamE +ifuu +injuI +iqUtw +iYO +imYg +iwZH +iDM +iź +iNuX +icjQ +ikp +ikq +iNMe +ijCz +iXs +iAf +iNH +iGA +ids +inZ +iZc +iMT +iSbJ +ixa +iKD +igY +invert +ivq +iPD +idn +iOh +iys +iJn +iKr +iRG +iMkG +iwBk +ilW +iDr +ibN +iep +iAeO +iVO +iLX +iYw +icYT +iuX vK vE vD @@ -4971,6 +15668,504 @@ vEAqy vfo vzMJ vjKk +vles +vcq +vYFLE +vWS +vSG +vWl +vaR +vpB +vqq +vlh +vRxvi +vuF +vNd +vyg +vck +vBd +vqi +vKD +vSMn +vTs +vdU +vRc +voym +viM +vaY +vSB +vfC +vOi +vbP +vggz +vgaB +vdF +vpo +vQp +vra +vUw +vri +vRK +vAE +vxd +vHa +vdwW +vkJ +vwJv +vvH +vod +vJN +voZ +vok +vpT +vGrn +vRI +vKx +vlVo +vub +vAl +vJl +vPR +vSxK +vxD +vJdKB +vhK +vgf +vqE +vqw +vUm +vGe +vru +vvj +vyS +vbY +vIu +vui +vKdT +vON +vmq +vVe +vTu +vvA +vscA +vzF +vFIDygT +vdVu +vup +vdb +vCn +vEk +vptP +vuimE +vMB +vOv +vig +vZy +vJk +vtz +vEe +vUO +vDw +vdDf +vmS +vkZ +vtDh +vmd +vNr +vCE +vyz +vdB +vLUD +veF +viL +vjG +vDx +vEye +vKr +vyV +vuS +vfQ +vhG +vzE +vHrPJ +voC +vtKN +vDg +vAw +vlM +vTX +vÜ +vtq +vqR +vfbe +vuy +vDy +vIV +vRe +vdBm +vRDqG +vTb +vPs +vuEr +vvp +vQAz +vdt +vje +vkb +vLvN +vid +vwKW +vof +vOu +vAm +vxA +vIJ +vOq +voxf +vKM +vnB +vFi +vWLI +vYp +vov +vqI +vexZ +voV +vSU +vVtX +vOe +vXj +vTno +veALu +vnv +vhX +vfh +vLU +vXpDH +vVn +vIm +vjS +vic +vcs +vSPJz +vvU +vRo +vZS +vXQBh +vbf +vLN +vau +vYyA +vSN +vgqL +vfRL +vXh +vOc +vOBR +vgMj +vDVlD +vix +vcqt +vorD +vcW +vHY +vWa +vpYj +viz +vIF +vTV +vymh +vtF +vPmH +vsu +vJGH +vwj +voD +vmo +vRE +vZB +vJc +vbk +vif +vNv +vxVT +vjl +vBs +vqk +vrT +vmz +vyja +vuw +vwgHP +vUx +vUE +vlb +vmL +vNuM +vcLi +vZs +vpR +vrQ +vYK +vun +vVyL +vbD +vph +vLl +vMC +vmQI +vtMj +vXIB +viA +vOYD +vkl +vYx +vTbj +vCR +vFTe +vHHi +vzgu +vVp +vrM +vyy +vJqn +vFm +vrN +vgvw +vhh +vUY +vPu +vqP +vpX +vjj +vtO +voi +vrc +vRl +vfv +vKR +vksw +vln +vfV +vKI +vToz +vOZ +vINNu +vGh +vJZ +vSEP +vZNx +voX +vlD +vls +vXL +vouf +vjT +vOnSqH +vpy +vdp +veA +vxH +vhu +vbTT +vOl +vRj +vIU +vlpfz +vRZ +vez +vSw +vnx +vMt +vXn +vuW +veL +vns +vCm +vkfE +vnZ +vNhq +vYH +vPc +vzi +vsae +vŁ +vvL +vuJp +vVUm +vgz +vAMI +vsV +vlq +vqL +vqr +vgB +vea +vzyk +vfe +vxGB +vOmG +vEC +vzg +vBC +vcS +vbWV +vto +vuoV +vIH +vSNLry +vFp +vmN +vch +vmO +vFw +vMG +vAtL +vCJ +vQmx +vEu +vAU +vQP +vRL +vJP +vwBT +voo +vfk +vdP +vBR +vYl +vTS +vZZ +vDo +vnhv +vDhT +vÓ +vskg +vfB +vrS +vMm +vOh +vEj +vwe +vxf +vSE +vCfV +vnf +vor +vnbu +vyBEsN +vRz +vUD +vhI +vdJk +vzOgwa +vdmq +vTB +vmE +vuv +vuU +vWEo +vFV +vvK +vud +vZTg +vTTv +vdZ +vMz +vRa +vWb +vCB +vTF +vxt +vcG +vJz +vFWD +vmM +vxv +vgBR +velc +vZc +vhW +vgQ +vgX +vgO +voM +vSm +vcru +vef +vTk +vMW +vyF +vKd +vdu +vNM +vCO +vqv +vmY +vIMr +vRb +vnS +vcm +vpH +vCd +vei +vVQ +vsfC +vhYq +vhfco +vDk +vKc +vsw +vBk +vQW +vWv +veO +vQj +vUr +vyh +vUg +vROO +vgFNc +vGfd +vdG +vAa +vZo +vBO +vBU +vMU +vGźQ +vAV +vŹ +vExo +vnE +vCQ +vVXY +vNt +vyD +vfl +vWp +version +viewBox +vSq +vGD +vUtuy +vlT +vPo +vWJ +vaU +vwc +vcY +vofG +vnTg +veK +vnPy +veo +vNE +veayU +vbw +vkX +vqX +vEFd DXy DB Du @@ -5164,6 +16359,492 @@ DkC DQI DBC Dzf +Dziedzina +Dla +Drzewo +DbV +Delta +DAil +DĄ +DUQ +DANK +DLL +DkW +DnANE +DanAR +Dhv +DnB +DqC +DXf +DAL +DxS +Doi +DAb +DpM +DhW +Dqr +DKc +DOvb +DKI +DPt +Dvg +DHxN +DFHi +Dpr +Dan +DVB +Drk +DYSLaJ +Dxr +DdQ +Dhb +DMs +DOI +DXg +Dis +DcMS +Ddg +Dtn +Dgl +DZO +DjN +DLH +Dć +DFb +Dzh +DVM +DhqN +DFY +DwL +DNV +DgH +DKB +DcZ +DaE +DLXr +DvĄ +Dbu +DoR +DsX +DlUL +DQQ +Dhp +DqQ +DoI +Dbg +DFw +DGo +DTBP +DNf +DgK +DBu +Dui +DdhM +DJL +Doni +Dia +DnO +DZS +DYa +DgT +DRa +Doz +DEX +DPh +Dskt +DUA +Dqp +DUh +Dqm +DEQ +DTuER +DUz +Dhu +Dkk +Dpt +DYw +DIb +DVE +DRAo +DlEk +DMCZ +DGA +DiH +DpP +DaG +DEo +DXp +DXl +DPa +Ddb +DTn +DDL +DEJ +DcW +DqM +Dht +DOH +Dqw +DQqsv +DxD +DfycHv +Dkv +DgIT +DIe +DUue +DKE +DGE +DOR +DTS +DUxy +DXM +DBy +Drp +DzK +DSh +DKME +DtZo +DAv +DuV +DIU +DLp +DFt +DFx +DNT +Dqb +DHD +DRu +DGQ +DHO +DCR +DzC +Dü +DlV +DzJ +DqH +Dre +DNZx +DJSu +Dol +Dń +DxO +Dwi +DpQ +DUSZ +DTzP +DwD +DGl +DMR +DAkx +DNI +DcQ +DBx +DeU +Dnq +DOV +DBk +DOn +DkEz +DvU +Dyx +Dwh +DLQ +Dob +DoV +Dqo +Dekl +DFEt +DsfaV +Dmd +DRG +Dqy +DzOa +Dtq +DEs +DHF +DAW +DKC +DRX +DKV +DgP +DCTs +DpF +Dsd +DtO +DbKM +DCh +DEZ +DSV +Dyz +DtQf +Dsz +DZt +DzBU +DeY +DuQ +DPPU +Dxkvk +DLGM +DMTW +DUn +DlP +DrN +DMX +DwY +DwgZ +DyD +DXK +DED +DiI +DsG +Dbl +DŻ +DCrL +Dtu +DsHf +DDYh +DbgA +DKq +Duv +DmV +DKj +DlL +DFs +DnN +Dxfg +Deu +Djt +DEY +Dqd +DnA +DOZS +DiB +Dnr +Dfu +DBq +Dss +DEj +DZl +DDf +DlS +Dck +DKW +Dnu +DzZ +DeuX +DhrKw +DYf +DAJD +DYJ +DJv +DkX +DXe +Dpl +DEm +DzHz +Dic +Dkm +DBU +DfY +DeS +DSi +DKtCpc +DDE +DhY +DiG +DMYVf +DcYiL +Dcr +DhC +DvN +Dtc +DDl +DGW +Dih +DWC +DuZT +DmC +DBh +DNC +DGk +DMh +DCMj +DTlu +DGCc +Ddk +DOz +DZAX +DoG +DVj +Dwv +DXeA +DGWBi +DwR +DVC +DDk +Dkz +Dię +DlIl +DjtP +Dlh +Deb +DCu +DSO +DTw +DaGd +Dmj +DRe +Dej +DoSn +Dfr +Dmk +DmB +DhV +DmI +DOF +Dar +DWw +DjlA +DZmN +DDb +DdK +DDN +Dzl +DNb +DUw +DYy +DpB +DWM +Dyu +DCc +DLRC +DbSZ +DSS +DRVy +DnV +DUF +Djf +DQoV +DqVR +DRH +DOB +Dgp +DkOV +DDX +DHyG +DOX +DOY +DgA +DCY +DNY +DPd +DJA +Dbh +Doa +DBl +DAh +DVD +DUd +DHL +DAIUg +DDJ +DHC +DbVk +Dvr +DhnK +Dlp +Dwo +DHuD +DxxzK +DAC +Ddv +DCEx +Dxay +DExM +DtFx +DyeF +DukXt +DJZ +DJI +DWVP +DfO +DtGV +DWK +DFDc +DmP +DEa +DNy +Dqu +DLC +DDj +DiO +DBH +DTJ +DID +DQD +DEc +DgN +DfIu +Dll +DND +DBQ +DDn +DbO +DlX +DWq +DlZ +DxK +DSmVu +DuOzR +Dż +DQr +DvF +DCs +DvC +Dxf +DVr +DmNZ +DIK +DkP +DyK +DRJ +DCx +DnbBbRbjbZbFbvb +DYDQ +DPG +Dpp +DsR +DlK +DhU +DmQO +DRS +DNn +DiA +DpT +DATD +Dfxe +Dog +DAgy +DEb +Doj +DMS +DMO +Dcp +DRg +DLV +DEmc +Dcy +DLaK +DSy +DPq +DNz +Djqd +DwG +Drz +Del +DAV +DWU +DTVSPN dA dET dg @@ -5379,6 +17060,477 @@ ddo dHD dPVA diuB +dziedzinę +działania +dwgs +dMe +dVi +dUR +dyskretna +dFd +dPu +dASa +dMg +dZV +dOC +dcq +dnt +dsd +dHW +dfEn +djB +drS +dUa +doSe +dlD +dRg +dud +dFP +daRt +dGo +dsl +daM +dox +dhm +dhM +dextZ +dhR +dZeD +dcI +dSs +dXq +diA +dsG +dQL +dZK +dlu +dzl +dDH +dZI +dEV +duii +dQS +dzF +dbd +drf +dPf +dqe +dKS +dfA +dVz +dTd +dzy +dLS +dzCU +dfm +dSRw +dzZ +deo +dtN +dkq +dyZ +dtmB +dOy +dYS +dhO +dGm +dzz +dhn +dOW +dXQ +dnP +dAr +dtP +dtm +doI +dTr +djGw +diV +dcm +dKdg +dpU +dNK +dHa +dhf +dbJ +dsT +dUx +dHp +dpm +dmI +dyy +dJp +dge +dWn +dDh +ddq +dJfO +dEL +dTvb +dQG +dhvX +dJD +dLQf +dot +dta +dlTi +dqW +dse +dTl +dVNEA +dVß +dZm +dQB +dMD +dSu +dkT +dlO +dPSeMD +dGG +dOM +dld +dRb +dQe +dSz +dRF +dro +dę +dRS +dLZ +dPG +dUO +dBGn +dTu +dWE +dqC +drW +drPIN +daDW +dNP +dzaB +dAs +daJ +dQu +dyYj +duP +dLT +dGQ +dDz +dbM +dcX +dBR +dRs +dsV +djeB +dsnm +dDW +dFV +dVdR +dGn +ddS +djd +dUh +dsN +dEz +dTb +dZgN +dPZ +dFn +dre +dOn +dsh +dLA +dJR +dCY +dpX +dvI +dLh +dyM +daK +dZE +dFU +dYo +dcZ +duU +dHr +dMJ +dPV +dKrW +dKKp +dtB +dii +dVo +dCm +daY +dGN +dZh +dTo +dto +dUy +dao +dlc +dCz +dgK +dEx +dwd +djP +dtrtP +dGE +duzt +dxZu +dNq +dSuy +dclz +dNNi +dRc +dFv +dŻBE +dcGd +duz +dsM +doYr +dxOju +deC +dEE +dNÜ +ddV +dxPH +dTy +dVsp +dNT +dPh +dBNz +dCrqM +dgv +dKt +dGr +duW +dHE +dncx +dkN +dIt +div +dpXP +dRP +dBj +dBp +ddg +djZ +dmzDCY +dKiy +dFkS +dtz +dPPSRy +dit +dvP +dLk +dYN +dNr +dff +dvJ +dAh +doe +dpPb +dpf +dwS +dey +dWV +dQH +dlh +dwV +dcP +dBe +dis +djy +dlv +dwwC +dsn +dDF +dyB +dtg +dZQ +dIa +dUEh +dVH +diS +dTO +dgz +dSk +dir +dwo +dmP +drLd +dzUz +dót +dBje +dtY +dkw +dII +diN +dZz +dUU +dIhJ +dJQ +dPfp +dvLW +dPwO +dYa +dXr +dUW +dvA +dHc +dgIO +dPpU +dSjH +dRq +dzU +ddz +dQQ +devR +dzO +dXb +dSy +dil +dowr +dzb +dpXK +dOQ +deE +dRCg +dRt +dZXG +dSX +dkV +dzG +dsA +djH +dGD +dlX +dpA +dAN +dod +dSo +dQM +dsWc +dDr +dOE +dam +dJY +dyd +dsODO +dctG +dtqzK +dNbJ +dż +dDKM +dFBH +dIH +dYd +djU +dgr +dYq +dOj +dJI +dNL +dAKLF +dNap +dcv +dfQ +dlS +dß +dtu +dBq +dvKf +dmw +dYqA +dstq +dTs +dqw +dRz +dsg +dIJ +dPM +dtA +dYqz +dJm +dfH +dNzKjL +dxe +dwb +dsW +dVV +dvhk +dPk +dtD +dRKF +dBao +dTh +dsr +dQV +dfk +dPv +dkm +dAL +dOD +dAM +dsX +dkc +dzDcwzT +dBT +dHH +dsQR +duV +dgef +dvB +djF +dń +dzh +ddC +dqY +dbG +dAf +dbXj +dKy +dau +dhP +dAP +dQW +dDt +dfg +dSn +dCGH +dfMH +dUr +doAr +dwl +dyw +dBG +dyl +dpj +dbQ +ddM +dmS +defs +dist +dKWy +dfX +dodatnie +dąży +dPi +dFE +dAq +dzL +dRr +dMt +ddB +dnZ +dqU +dZhhA +dRQ +delta +dcswwg +dPFL +dgrb YI YT Yv @@ -5585,6 +17737,460 @@ YFF YBFn YXg YKAWER +YaO +YnW +YiWZjKe +YmM +YSR +YGMa +Yjp +YquH +YKZ +YZl +YCH +YxZ +YKo +YlD +YtFo +Yzg +YBp +YyX +YVTD +YQr +YFL +YWJ +YMC +YNL +Yć +YÓ +Yied +YkFA +YjU +Yya +YfN +YvS +Yot +YDS +YhT +YHb +Ymw +YTc +Ypv +YNul +YCt +YaN +YPu +YIN +YtO +YFR +Ydp +YVA +YmQ +YNR +YNZm +Yos +YVAvAL +YJcym +YIs +YAd +Ycml +YCT +Yds +YIjf +YEM +YTp +YED +YGHv +YajI +YTj +YRN +YUXr +YwjK +YCEM +YDk +YHP +YoH +Ymp +YSp +YGE +Ymo +Ycq +YYRm +YcU +YkA +YyZ +YXSZ +YÄ +YKVv +YCiJ +YRO +YpI +YsU +YnY +YOmc +YGAS +YRbp +YiG +Yxo +Yio +YPRhX +YIf +YyR +YEv +YGZ +Ytn +Ybv +YYEm +YCw +YKZa +Ydi +YCk +YMo +YMd +YGp +YRM +Yrz +Yqt +YLvj +Ysb +YFm +YXM +YDyL +YUK +YOn +YFJQ +YIa +YXk +YSho +YCX +Yok +YNNB +YFz +YnC +Yrfd +YaP +YQh +YKX +Yex +Yqv +YLc +YkmE +YWw +YXl +Yjv +YHaR +YVL +YyXX +Yty +YnH +YdcJ +YmNd +YUW +Ypz +YFMH +Yfw +YBs +YqZ +Yxu +YGt +YaB +YgD +YWM +YDa +YDe +YRws +YVrH +YxEe +YsD +YZhB +YSpb +YŚ +YgF +YvW +YuBBrA +YhU +YxU +Yfo +Yyz +YIF +YNW +Yfp +YFj +YpX +Yda +YXN +YSCE +Yyg +YyI +YwZ +YnjT +Yak +YyH +Ydg +YYv +YJb +YMX +YLSF +YNm +YcD +YAT +YqC +YnD +YDN +Yjz +YEK +YZR +YCy +Ycd +Yyi +Yms +YdE +YTHbc +YVg +YzM +YnnH +YlS +YZan +Ytl +Yiy +YSd +YVy +YnL +YIES +YRgT +YhM +YEu +YVT +Yzk +YrE +YvnpP +YFD +YNq +Yynm +YeV +YBF +Yad +YJF +Yea +YOr +YoKq +Ynj +YCf +Ylwź +YOb +YPQ +YQP +YYR +Yzb +YkM +YFA +YUR +Ypcv +YgZx +YtH +YlQ +YdC +YRu +Ykx +YDd +YRp +Yof +YqaD +YVf +YIh +YXd +YpP +YdF +Ykn +YuP +YgKwl +YoGv +YjO +Yqw +YHCh +YXpu +YhvJ +YYQ +YJj +YOA +Yct +YWO +YMm +YjE +YDz +Ykhu +YAi +YMW +YHm +Yal +YUu +YOk +YcT +YZB +YGn +YtI +YYm +YGU +Ypb +YMR +YRv +Yfx +YLy +YPrR +Yjf +YŁ +YTw +Ydy +YGN +YZh +YLl +YTuO +YcZ +Ydr +Yyt +YnX +YTW +YPs +YGK +Yvt +YCQ +Ybu +YUEdd +YXt +YXy +YnB +Ylr +YLNS +YyA +YgN +YJH +YkL +YFf +Ypy +YXC +YGr +YbUO +YBw +YXh +YNr +YIj +YcJ +YjSB +YOoZ +Yń +YcN +YGJ +Ytb +Yll +Yydi +YKMn +YLtr +YErA +Yyu +YPp +YeA +YxK +Ymm +Yks +YAWGH +YWqZ +YcTI +YAB +Yfa +YRC +YqH +YkMm +YvG +YAL +Ycf +YWcY +YASI +Yeq +YDI +YHPmd +YOa +Ysr +Yjc +YWY +YmO +YZt +YGl +YKK +YGUV +YUy +YDbX +YCkA +Yeh +Yoj +YXsh +YCp +YWQ +Ypt +YEe +Ysf +YGg +YUJh +YXRR +YDQ +YSC +YJi +Ygs +YRf +YEfV +YSE +YNV +YMVs +Yuo +Yfu +YQT +YsE +YWZ +Ybi +Yvq +Yvd +YjNB +YEr +YoF +YbUbM +YJy +YuT +Ylk +YQz +YlV +YuV +YQbO +YiH +YEt +Yzt +YhdY +YWU +YoD +Yyf +YsFo +YsTU +YAJS +YhR +Yik +YzT +YesO +YAG +YjVC +Ytq +YAP +YAz +YDX +YYC +YBWQCJ +YTn +YDBz +YvN +YLg +YfYZ +Ybq +Ybkq +YLV +YWua +YFIHGK cVuiT cJ cN @@ -5792,6 +18398,488 @@ cgT coRa cXyja cww +ceZ +csD +centrum +ckTi +colr +cGv +ceg +cjB +cFH +cesQ +cbA +crkv +cZti +ciZA +cwC +cXA +cRq +cmW +cLH +cHQ +cLW +cDr +cER +cUF +cNW +cFj +cpyQ +cFO +cQI +cYC +cTT +czb +cExHW +cOe +cup +ctz +cyG +cYP +cSV +cdQ +cXN +crK +cmR +cVfc +cdY +cSr +cnb +cokp +ctC +cXd +coO +cAn +cPw +cet +cfch +cEHo +cNw +cjb +caz +cMeW +cRUA +cvR +cfa +crCK +cGO +cGV +cfr +cMo +cwA +cjy +cwb +cSS +cbSW +chu +ciE +ciu +cSq +czC +cź +cTV +cTB +ckN +cWa +cMQ +cws +cnamn +cHg +cXZ +cPZ +cmqYQ +cOd +cTF +cEOt +cPN +cvv +cgIU +cjm +cvD +cuVgv +cer +cVe +cfM +cCH +cal +csH +cZTa +cYAj +ckg +cFV +cHv +cgg +cnL +cqx +cHz +cVQ +cPl +clu +cdC +cOF +cyiTb +cnu +cKz +cUa +cuJ +cFU +cKq +caYz +ciN +ccZ +cBw +cTvb +cXF +cFl +cfE +cvd +cJZ +czje +cHx +cluI +cqu +ckq +cAr +csN +cZV +cwQj +cEJ +cIc +cunQ +cUW +cPu +cpI +cVo +cSy +cHw +cxY +cCS +cMVI +ctw +cwk +cwE +ckE +cpt +cKGL +ctYt +cTpNL +cxv +clCJg +ctk +cesX +cBd +cwY +cą +csp +cSL +cpE +cLÜm +cpmAl +cJr +cgBP +cgN +cPY +cBm +cyH +cCx +cRm +cuJE +caw +cGi +cwG +cKjv +cTk +clw +caT +cdU +cvkh +cnq +ckL +cPT +cdr +cvY +coi +ccQ +cuP +ckX +cSN +czN +cSQ +cOZ +cqJ +cTf +cHs +ckB +cNh +cjo +cRI +cGx +cAB +cga +cJp +cvb +ceG +cSg +cYiq +cnKf +cxj +cXw +cNTe +cty +cFca +crT +cZj +cmk +ckcZ +cDY +cJkw +cHEA +cxs +cPF +cadt +cUu +cRy +cHFH +cLa +cdei +cIu +cCM +coG +cDt +clz +ckI +cpq +cRS +cAD +cjr +cTA +cli +cZM +ceC +cLU +cwl +cZD +cHE +cdmi +clG +cCh +ckO +cDfI +cjw +cWl +cOI +cKP +cqp +cRev +cIT +cji +cGóByr +cbU +cDln +cEK +cyJ +cgcd +ccP +cQpF +cjDfmii +cpT +cGURv +cSe +cEN +cVj +cqAHm +cQc +cOY +cHH +cOl +cYVd +cjuD +crYv +coY +cNq +csy +cVX +cYr +cxES +cUVD +cug +csh +ckA +cfD +cdzu +cXl +crc +cEi +cxB +cBLF +cat +cRs +cwFb +cIn +cYH +cqYH +cnt +cSZ +cefp +cIM +cVM +cgU +cUJh +cIsd +cYD +crL +ciV +cgB +cZE +cvK +cpHy +caM +cCYQ +cQv +cps +cqi +cdOa +cym +chi +csG +cqE +cjai +cTu +cEf +cXO +cJq +cQy +cvQA +cEh +cmH +cCk +cHLbx +cgzH +cpV +cCl +cuo +cWI +cNr +clyb +chE +cwZ +cWY +cUl +cvB +cDN +cNa +cAJ +cwt +cRf +cfw +cen +cSm +cIp +cei +cqL +cqTC +cBYc +cgS +cHe +cTy +caC +cKB +ckU +cxk +cib +cZH +cGL +cpW +cyzB +cibxC +cCR +csM +cAW +ceS +ckJ +ckl +cMK +csf +cwq +cMOLB +cMA +cie +cXi +cJB +cle +cnp +cLA +cxJ +clc +ccs +cGz +crt +ctX +cVG +cFL +cUC +cBv +cBY +cQtU +coX +cQF +cbP +cFm +cDf +cxS +coP +cqZ +cwxK +cDpJ +cHo +cTJ +ctO +cTO +cEjN +cGd +csr +clh +cNA +cnz +cok +cwB +cyg +cRXZU +cGD +cAi +cZB +ctL +cOg +cshLR +cGXd +ctl +cIl +cDv +cue +cMd +cJU +cWb +cVg +ciągów +cAc +cBS +cuFR +cWH +cDb +cOvDD +czc +cvy +cVnBvIo +cLO +cuub +cHU +cEB +ccgI +cpp +ciUJh +cPH +cDEZ +cSf bI bx bM @@ -6014,6 +19102,480 @@ bVc bKa bTd bPl +bFg +bZbb +braceex +braceleftBigg +braceleftbt +braceleftmid +bracelefttp +bmUJ +bRO +bLi +bwE +bpvw +bIN +bGN +bytes +bWc +bLS +bQQ +bęJ +bDV +bcT +bxg +bDc +bzx +bAv +blfc +bMT +biQ +bOA +bDAaI +bFq +bDZ +bZJ +bUO +bMlS +bsn +bRG +bTh +bOj +bDH +bOU +bpu +bvx +bfg +bVuv +bjZ +bCa +bKb +beg +bqL +bBr +bxv +bIj +bJa +bsB +bcra +bxk +bpd +bvl +bKH +bHa +blf +bAZ +bFM +bjV +bRs +bEYI +bWH +bcX +bYl +bCD +bJK +bpa +bxa +bJU +bBZ +bdk +bUNi +bHn +bjc +bfBD +bKmrb +bKW +bIzH +baXV +bta +bTP +boe +bkB +bQJC +bza +brj +bQs +bjO +bkD +bIL +bES +btfd +bdG +bHs +bst +bsY +bZK +bof +byRX +bUd +bJt +bzv +bRL +baC +bjGkD +bnUh +bkZ +bKF +bBkrG +bVb +biTq +bHI +bEeR +bCb +baf +blbZz +bfATR +bdM +bgn +bVQ +bQF +bRlT +bHf +bWxv +bGm +bDn +bnHA +bUx +bUE +bGL +beA +bAoRN +bfy +bNd +bUJ +bBe +bWO +bls +bYV +bop +bXn +brF +bUc +btR +bGJ +brW +bBRUMh +bFGM +bYEY +bGa +bAL +bTS +bnYQ +bvO +bLf +baU +bxR +bkl +bvP +boL +blq +bhq +bIIk +bIXBQU +bdy +bzwQ +bFRM +bFF +bIU +bsp +bHZ +bsd +bzY +bvu +bbp +bTgW +bGK +bkU +bJA +bsH +bRP +bYNv +bgO +bdu +bZc +bLeD +bjB +bNU +bKdd +bcpKO +bYHW +bZG +bxW +bvU +bZN +bkI +bDLT +bxl +bFv +bHU +bDi +bigq +blW +bSc +bee +buX +bun +bdC +bnFF +bbf +bUjU +bUBmp +brs +bNu +bjv +bjT +bPZ +bSO +bVm +blV +bMY +bwR +bTJ +bOq +bqb +bCX +bpb +bVw +bzhnC +bPw +bGJE +bAs +byn +bSV +bvz +bFH +bCG +bkb +bsKiJ +brC +bCZ +bVpM +bMG +bRvy +bzP +bPVu +bwy +bLIx +bER +bPf +bWu +bxi +blu +blM +bEY +bIT +bbn +bVS +bmd +bKU +bDh +bKl +bSt +bMaC +bkY +bNT +bÖ +btE +bys +bOCm +bTJW +bjl +bMu +bEn +bTx +bWm +bMW +bur +bFFa +buH +bxfA +bzD +bNr +bfQ +bPY +bSn +bioY +bEYv +bcR +bmjv +biy +bCQc +bPXu +bQM +bWb +biomz +bWI +bav +bNi +bTn +bgf +bww +bQzE +bYKI +bCP +bnp +brI +bLL +bRd +buO +bfw +bUi +bKj +bGV +bev +bYk +boF +bhxC +bBUT +bVGr +blg +bGCCE +buxT +bPL +buh +bcAf +bos +bDO +bSq +boZ +bND +boD +brx +bfx +biT +bPa +bes +baem +bhG +bMwm +bGw +bNSF +bVU +bks +bVA +bqT +bJJ +bPtA +byM +bRZ +bQa +bAO +bmQae +bik +bLju +bvr +bsP +bmN +bNuD +bFY +bJhiD +bmC +bIaA +bOrU +bab +bFW +bOR +bOe +biTy +bmb +bZeH +bfX +bWVR +bbAC +brL +bBP +bDVVC +bcY +bSx +byj +bJp +bcwA +bNh +btZ +bgv +bcf +bOd +bFC +bJr +bTI +bIR +bGUM +bon +bSui +bYu +bzq +bZC +bVL +bjf +bku +bss +bIm +bmX +beq +bjqh +bpJks +blx +bdZ +bzJ +blF +bWe +bUPOgT +bkf +bEK +bfq +byW +bHYQ +bzYG +baYl +brl +bii +bXX +bzK +bRRJ +bGY +buA +buAL +bZf +bME +bcJ +bBX +baQ +bvW +bEy +bKt +biA +blS +bzSw +bYYY +bŹU +baxI +bKQqqQ +bAt +bIq +bbv +bOs +bqt +bsuA +bDce +bBpo +bracketleftBigg +bracketleftbig +bracketleftbigg +bracketrightBigg +bracketrightbig +bracketrightbigg +boA +bCJ +bwIc +bHH +bmq +bmA +bDMp +bse +bFKf +bPb +bAzJ +bUk jW je jz @@ -6212,6 +19774,459 @@ jRy jZe jEP jdc +jhf +jnT +jLi +jmOM +jMu +jXC +jOY +jkq +jiF +jcY +japU +jCqY +jjp +jWl +jUv +jDq +jxs +jua +jqb +jBD +jtrx +jCh +jhe +jpM +jTG +jxud +jiRK +jYL +jxR +jyh +jle +jQr +jYO +jAi +jUJ +jsz +jpn +jJD +jwX +jOq +jLKr +juE +jts +jqr +jSBhF +jGP +jji +jQp +jdPt +jow +jrk +jPP +jMn +jTz +jaa +jPG +jtJvj +jiT +jGT +jED +jrz +jlW +jgq +jCn +jPJ +jIqOy +jyB +jpx +jpA +jwh +jmh +jvDK +jwi +jnPPxG +jEG +jIB +jAUNK +jMJZ +jPd +jeR +jAvuc +jsy +jWX +jMe +jXk +jcRy +jub +jmT +jqR +jUL +jCY +jqd +jRs +jdv +jeK +jCp +jSq +jUM +jEFr +jlm +jIze +joWyO +jlF +jAk +jRDs +jek +jhVUriD +jht +jIq +jAJ +jDm +jGU +jsP +jcw +jWhF +jfxY +jcB +jZu +jeh +jNX +jWB +jsR +jfxgTd +jxt +jvX +jzg +juT +jNk +jdy +juZ +jVeo +jnA +jyGG +jnS +jyl +jEGD +jPv +jfQ +jTj +jZk +jku +jzb +jLCu +jII +jFNc +jcF +jHtD +jlR +jVo +jGy +jCN +jGW +jPF +joU +ją +jEmh +jMmb +jrg +jdGzR +jpX +jsM +jVA +jqp +jyk +jDl +jtU +jlHz +jQV +jIu +jQC +jpf +jHi +jIg +jQE +jdZ +joiZk +jpv +jax +jqE +jBF +jvEP +jmf +jhp +jEm +jds +jqG +jcq +jOD +jxP +jKN +jBC +jiQ +jDJ +jmc +jwu +jlM +jUU +jpl +jGR +jjv +jLq +jQe +jRf +jNF +jyCI +jEom +jZd +jlMk +jbL +jUH +jrr +jfy +jhC +jMz +jvm +jPV +jQcZ +jtCsd +jDK +jVf +jZp +jBo +jEw +jSg +jLO +jfR +jex +jkn +jmNe +jvsF +jgs +jSm +jke +jXJ +jXFU +jwJ +jff +jFK +jTFG +jFH +jDy +jOH +jiz +jaCm +jwKY +jxm +jGk +joKnP +jbP +jRJ +jSx +jjw +jOi +jiO +jnR +jRh +jonc +jZQt +jBE +jJl +jThr +jfI +jkXm +jjO +jJd +jty +jzn +jfkRW +jvw +joj +jAsQ +jhg +jyI +jtHpf +jHX +jpb +jJwJ +jEi +jTv +jWx +jlN +jPPy +jJn +jVb +jakm +jxO +juDW +jreh +jBn +jqs +jgI +jwe +jmeB +jOC +jjZ +jYl +jMd +jYZ +jQG +jgM +jQw +jhV +jdi +jBH +jfl +jfA +juI +jyz +jnOJSA +jLIw +jKy +jdx +jVv +jvy +jeVa +jGi +juV +jUw +jAh +jdat +jqz +jSc +jAd +jak +jTV +jCP +jfM +jvnQ +jde +jgX +jiL +jPb +jQW +jTeq +jnp +jYh +jsh +jSb +jBg +jxh +jhsT +jlPHm +jcf +jQa +joG +jcz +jCmV +jbu +jTPi +jOj +jBB +jmF +jEV +jRjY +jxK +jFpL +jYX +jaKO +jhX +jPO +jTN +jRd +jRO +jlwU +jjVg +jDQ +jdE +jqS +jSV +jXY +jsG +jHt +jHb +jJv +jNY +jkr +jwAw +jaU +jCb +jwA +jfm +jgZ +jmi +jzPB +jSn +jes +jMG +jtz +jNp +jDi +jOzj +jvI +jBc +jmg +jnd +jUm +jjM +jqu +jet +jOAu +jVm +jNf +jFY +jjN +joo +jqZ +jgg +jeWWq +jbj +jyf +jZF +jHC +jIiS +jxd +jPsr +jnL +jMf +jRS +jhP +jMo +jLLQ +jZc +juu +jcu +joT +jii +jlhjX +jce +jjC +jNc +jyc +jZfZiZ +jhmX +jEJ +jVU +jUO +jcR +jcnd +jaJ +jmYp +jego +jnB +jCqQ +jVQ +jAb +jGn +jlH +jdS +jiJ +jmA +jqC +jkaT +jlt ac af ao @@ -6424,6 +20439,458 @@ arg aIj aIE aOTn +aWv +aPA +ags +aUgG +aBz +aRI +arrowright +aSt +aPi +aDc +aqP +aMZ +aTY +aIp +aEB +acI +aFy +arW +ait +aug +axI +aKx +aQz +aGaI +anf +arkkl +asE +aBv +auRj +aOqb +abZ +aFN +avC +acD +aDg +aOZ +aOy +adn +atVE +aHb +apIq +aKD +aIw +aqR +aMB +aom +aGv +aVt +akTAp +atk +afW +aYr +aFY +afJ +anq +aKg +aWKJ +aTh +apy +aVm +ajj +aJR +aEz +abI +aOQ +aND +aeZ +aQA +asKR +aJH +aRC +auQ +adj +aGFL +akE +aJY +ars +aDt +aGr +avd +aYP +aei +ald +agC +aEQ +aar +aAB +aIC +aMkm +aqJ +aUy +akG +amB +auZg +aÜ +aCo +aTH +atm +aXK +adE +aVF +aNQ +ahj +aTF +adx +abv +aCY +aFu +aPUz +afD +ach +ajo +aLtf +aMo +aRd +alF +arb +asL +aJL +aFWf +amC +auRz +aHL +acvO +akQ +aIP +akew +afb +aynZF +aZk +aGC +aHZc +aDfx +acv +aWK +apW +agbo +aYjl +aNv +apIc +aeH +aVX +ajdM +auX +ahG +acuY +aJG +aUQFm +aLW +aay +aJO +arA +aOF +aJUk +aby +aMq +aMQ +akgC +ann +aDO +alo +aIV +aOJ +aAP +aDuNp +awsu +aqM +aoO +aegP +aKtJ +aUR +aBQ +acmX +aNE +aJo +agM +aJQc +akNe +aBK +aZFX +aCF +aqO +ass +aaI +aZZ +asB +aGn +ahH +aGq +axR +aVM +aBm +aRZ +aYx +agf +aHP +acn +aoa +aqe +aql +act +amR +aSskP +auH +aOG +aEx +apwq +aGG +atX +alT +abLP +aŚ +aRWchyDm +aZX +avX +aSxo +ajK +arC +aDs +ajk +aea +avU +avZ +acX +aiK +aee +aIl +ayV +aOi +acB +aOn +aHf +agX +aej +ayTl +ayy +aAv +asf +akX +aab +akn +atj +azR +aur +aml +abu +aNA +aFd +aCV +axy +aCiy +aQv +asGnn +arT +aOpm +aTN +aVOZ +aYG +asO +aBN +aXA +aMO +ape +azG +aUW +aVe +anTq +axA +adI +acA +aqG +aYlQ +aGTfU +azb +awbf +awY +ahVj +aID +aPb +alp +aTt +aJD +aOC +aeo +aje +aXu +arL +aYD +amw +anr +acHt +akM +ayx +aux +ajWN +aBy +aOj +aIjO +aUD +akO +aMg +alU +aeJ +ajIk +aZn +awp +aOm +aclZ +aue +akY +aqT +aqV +aEN +aLRL +atf +axrQ +aBJ +acl +aUv +aAI +aTYD +aqS +aau +aOt +agc +aCTW +aYL +aIn +ane +aSs +aSW +aJa +asS +aPc +ajC +aCN +aUb +avx +aEq +abd +aQh +awKb +aZU +athh +aNh +alv +ajz +auNr +acJ +acCL +ama +axq +aLC +adh +aWs +aXJe +aqy +aIt +axqC +ajVJ +aca +avB +aAfT +avg +aiUH +aiG +anT +ajjJA +aKi +apj +aVo +abo +aDz +aex +avQdh +aOŹ +ayK +aKc +aJCV +aoP +ajL +aMa +aPf +arBj +aAx +aFX +aSWM +aVz +aJźb +ań +ayC +afpyW +aAN +aNN +abz +apK +abn +aDS +aya +aBM +aTw +aLLm +aWcC +aVA +aqL +afkSK +aOT +all +aHK +aqh +aeXM +afNh +amY +aNq +adT +aaU +ajY +aBvE +azY +ajG +aOrx +aOc +aGw +avo +aSk +aob +aOw +aWcj +assets +aiC +aWVx +aLI +aMf +aix +aFj +aRr +aEu +aipTx +aOOE +auh +aEn +arrowdown +aQU +akUs +ayE +asr +aqX +aHi +akkY +amn +aNf +acr uH uS uVn @@ -6627,6 +21094,476 @@ uhYz usJ uOd upm +uAn +uozv +ubH +uJMh +uWa +uaZ +ueY +uSP +uxN +uUI +upN +uOg +uKN +uAO +uUO +uKA +uPHr +uve +uDC +uZY +uyk +uxi +ura +uxĄ +uxQ +uUe +uCq +uPN +uZg +ujT +uhQ +udkg +uoq +uOW +uBUD +uhOg +uQl +uey +ujP +uTB +usI +uPW +ugE +uGFgDi +unDm +uvDV +ukY +uxP +uYJ +uvK +uLW +uoDhZG +uhJd +uzi +uJqyF +ubq +udJ +uar +upz +uvO +uSkS +uSq +uTg +unH +uqX +uLL +uHJ +usQ +uGl +uBPT +ubN +utM +uBF +umO +uSm +usX +uOY +uoE +ugA +uOm +uQU +uBo +uDK +uVj +uTx +uDcB +udi +upA +uQh +uQG +uOC +udn +uLx +usq +uxNd +uOsL +uJNU +udh +ugNR +uVMo +uLf +uxQq +ueu +uwA +usc +ubn +urs +upr +uvo +uhW +uFw +uyU +ujj +uze +uZI +uXZ +uCg +uCc +ufw +uPI +uNa +uYm +uXG +uih +uLgIs +udv +uXmn +uwq +uIQ +upEpTr +unX +urq +uLq +usv +uEE +uEl +uys +urW +uzj +uLJ +uaK +ule +uET +uIN +uaLz +uvx +uzy +uKź +uOJO +uSS +uTb +uFtC +ulk +uej +ufu +uip +uXk +uIa +uII +uDTc +uYh +uGB +uDkW +uRw +uvy +uzI +uWq +ufj +uwp +umf +uLJr +uGY +uVzZ +uDS +uYn +uyd +uEb +uFe +uBO +uhw +uKW +udR +uuv +uzf +uHy +uvr +uPB +ubg +ulS +uJkh +utS +uit +uwR +uQu +uDc +uDz +uLP +uDg +uxY +umE +usx +uUt +uYfo +ujn +ubYf +uza +uFt +uhl +uqwQ +ucq +uYYe +utl +urv +udx +uNx +uHKD +ugR +uNK +ulK +uig +uUhd +uOG +uSGL +uTG +uBh +uBw +uxv +uvk +umh +uiKwFB +ukE +uhD +uQD +ucB +uWwt +uCr +uHBb +uUTn +ucxs +uuI +uec +usF +uTw +uYa +uEq +uCs +uIJ +ukCywJ +uRFVzn +uux +usM +uOL +uHa +uNu +uSF +uGA +ujw +urU +uRQ +uew +uyh +uvF +uqV +upW +uYd +utB +ujk +uYF +ucz +uAK +uhV +uzn +uBTO +uRF +uod +uWK +umZ +uFTE +uyO +ugO +ufb +ucc +uov +uTK +uIr +uFU +uix +uAw +uwQ +uLuo +uYmf +uKRCm +uNrf +uPl +udZ +uWt +uTE +ucx +uEK +uos +usN +uUq +uHcO +ujNMa +ues +uGG +uIM +uEk +uIk +ulA +uRMQ +uFp +usE +uAB +uIE +uqZ +usuo +uiY +uUKj +uWr +uJB +uZk +ucR +ury +uct +uOu +uZVX +ulQ +uTH +uEy +uEe +ujbG +uwDd +uDlZ +uNE +uWP +uBg +uKb +uLc +uvB +uXo +uTy +uPr +ujr +uyi +ufh +ugK +uuO +uqr +uXd +uaI +uRb +uPRT +uww +ueI +uMgx +uOf +usU +udc +uqen +uES +uDe +uGX +uYf +uTQ +uXL +uIL +uMqI +uSJ +uaA +uKg +uVz +ueM +ueS +uhe +uWgeQ +ulf +uTJ +ubis +uugvG +uvz +uKak +uWE +uyN +uTt +uPa +uvT +uCD +uKY +uXV +uNL +ucZ +uCL +uGZ +uQgS +uDM +uoW +uuY +usPh +uÜ +uNVF +udt +uJL +uvtjfG +uzA +uQL +uIT +uow +uFUha +uCJz +unDR +uQR +uJW +uHV +uSD +uai +uICk +uYj +uzU +użR +uld +uzQ +ukU +ugp +uhY +uunwn +uXY +upE +uZG +uUN +uż +udDY +uJYM +uhc +utI +uWQ +uuX +uKR +ukp +uIy +utpt +uDTP +uHA +uhO +uLQ +uCIY +uIi +udp +uwm +ueOo +uAś +uGJ +uRr +uQb +url +unpkg +uqQ +uEFPa +uyb +uRvd +uNQ +uvi +uDR +uNf +unN +uyfs +uzK +uez +upa +ubc Mh MediaBox MI @@ -6843,6 +21780,513 @@ MrY Mqji MID MFr +MaJQ +MQTIVJR +MSXF +Metryka +MOS +Mask +MSE +MsG +MPSv +MnTo +MuM +MVs +Mvl +MjtA +MwJ +MeIv +MGN +MPh +MkS +MRX +MRkT +MnM +MoG +MqF +MrS +MZx +MmT +MeW +Mta +McYa +MFB +MSJ +MmR +MRl +MBF +MXW +McK +MuO +Msp +MUG +MRj +MUJj +MvB +MME +MUv +Mfa +McQ +Myv +Mgl +MPB +MxG +MRA +MPo +McV +MHtR +Mlt +MrB +Msn +MOs +MrF +MQmP +Mvk +MUyA +MDd +Mvti +MGkV +Mfr +MDL +MkgPh +MAc +MqT +MNG +MYKg +MuMu +MQY +MÜ +MjU +Mai +MXlVP +MWm +Mxj +MDy +MTE +MoB +MKk +MzR +MOb +Mrk +MjK +Mgk +MLd +MBN +MUu +MPA +MGi +Mxx +Mzd +MuA +MUF +MVa +MSL +Maw +MsI +MBW +MdK +MgT +MTi +MPD +MCT +MPi +MSr +MFG +MWR +MQx +MhTK +Mwo +Mwk +MpA +MIB +MUY +MFR +MXV +MFM +MSB +MUc +MJN +MDG +MEef +Mpu +MgA +MSFz +MSK +MfV +MxV +MkZO +MpN +Mep +MUq +MoX +MYR +MYi +MZeF +MhO +Mln +MyM +MQl +MBeQx +MAm +MGA +MJE +MUO +MgzQ +MBR +MsH +MMR +MBG +MPO +MdM +MrL +MNT +MZw +MzAO +Mwuu +MAn +MqC +MWn +MEU +MNl +MXvT +MTn +Muh +Mhfm +MhU +MBc +MBe +MGn +MgOj +Mwh +Mcz +MEsy +Mxa +MEQ +MNx +MsL +Mpq +MoU +Mtj +Mrv +MXC +MFo +MJceL +Mgo +MCi +MTw +MSW +Mba +MKR +MtHF +MYWK +MyQ +MQg +MKOXk +MprD +MaF +Mgp +Mty +MCz +Myh +MGw +MRO +MnL +MpI +MwU +MuQE +Mjm +Mse +MwJe +Mvr +MzzC +MGm +Mfh +MNp +MAe +Msa +MRp +MqY +MGv +MuH +MWq +Mdz +Mpb +Mpi +Mez +Mxi +MkCM +MEM +McO +MIl +MJF +MVU +Miz +MzF +Mhcg +Mkl +MCX +MvX +Mlo +MdN +MqQ +MNB +MbB +MQH +MlO +MxN +Mż +MPqk +MEDzY +Mam +MFJyL +MCF +MuT +Mvn +MZz +Myg +MnZ +MDN +MZGH +MlP +MEGu +Msi +Mkj +MsZ +MBa +MwC +MJB +MMx +MaL +Mxl +Mtp +MKT +Mak +MyU +MoK +MYV +Mvpqm +MzE +MuR +MLr +MXI +MoY +MiE +MIh +MTr +MAp +Meb +MnN +McPJ +Mwg +MybX +MTF +MSO +MednX +MHFj +MiG +Mzz +MjA +MWY +MoKCF +Mgv +MCm +MrdE +MhOf +MFz +MUe +Mww +MoV +Mkf +MQt +Mlm +MMw +MRW +MZa +MWu +MBY +Mtd +MeX +MBt +MRS +MbvxLI +MOLW +MXO +MVer +MjC +Mlk +MXEI +MlM +Mim +MDn +MGt +MVc +MTeVEI +Mzf +MZiv +Myl +MWy +MVJ +MxS +MDi +Meny +MLNn +MÖ +MnC +MVb +Mig +MZn +MZq +MRNU +Mmb +MlQ +MYN +MMHJD +MPb +Maq +MWLQ +MyJ +Mbt +Mxd +Myd +MBca +MgZ +MUi +MLAzA +Mjp +MOP +Mcd +MPJKhd +MmI +Mzc +MYQ +MWw +Mwe +Mjz +MXJ +MxP +Mhrox +MnYz +Mfu +Mzs +MdS +MXm +MYe +Mme +MJJ +MxJY +Mnv +MSV +MJdy +MDV +MHE +MgTgV +MJS +MLg +MrcO +MLN +MOOG +MuX +MhH +MgLi +MqIB +MSG +Mfn +MRD +Mps +MexENE +Miv +MzC +Mbv +MLR +MlVU +MsO +Mief +MAw +MGD +MEq +MRr +Mlq +MNU +MtO +MGq +Mkq +MUMa +Mpnl +MYy +MjZ +MBrOw +MMn +MPr +MyC +MAV +Mht +MVl +MzL +MRF +Mrt +MYM +MKe +MuL +MOk +Mwje +MZg +MPk +Mwl +MPFb +MQR +MĆ +MIH +McD +MKX +MnS +MDA +MAs +MxH +MCb +MkU +MQM +MwIw +MOMZ +MjS +MXj +MjE +Mal +Mmr +MMY +MkJ +MgS +MQF +MEgDgE +MYk +MRE +MLH +MxsXq +Mds +MtZ +MIj +MMj +MQS +MhK +MjQxrIW +MYUqs +MIG +MLm +MnF +Mwx +MwI +MMg +MYE +MBX +MSAQ +MSAM +MJt +MmaK +MrW +MWk +MJn +MbzA +Mjf +Metoda lauG lc lS @@ -7041,6 +22485,466 @@ lbZh lJf lPg lDc +liczb +lkjs +liczbę +log +lif +lmo +lUL +lfA +lKMEb +lYS +lNb +loW +lKT +lSE +laKN +lFk +lEH +lXY +lrR +lqZ +liH +lZQIW +lqtc +lTe +lcf +lZm +ldO +lTT +lJe +lEX +lpS +lkP +lCMI +lHu +lLl +lkj +lCPq +lSgJjFf +lGXNR +lZW +lAq +lkT +lhD +ltN +lID +lPq +lrI +lHf +lvx +lCr +lMEZ +lsd +lqE +lNt +luk +lam +lGGYh +lYU +llWm +lCV +lom +lty +lgw +lsN +lvV +lLp +lMNQ +lHDy +lbl +ldWQ +lboFp +lPF +lngE +lKJx +lIu +lzL +loI +lYb +luCp +lVn +lwlx +lPl +lnU +lZM +lOK +lyhC +lGd +lTp +lqnmSX +lhO +llGr +lRq +lnt +ljr +lGj +lrP +lwAx +ldF +lKq +lXK +lyXa +lTUd +ltO +lDB +lCNF +luS +lvP +lJNs +lMz +lvn +lGs +lQPKj +lus +loc +lpG +lXo +lSB +loVs +lmMN +lMl +ldf +ljBq +lGB +lAp +lhcWZ +lfI +lag +lqK +lYX +lurmU +lPy +laG +loE +lIY +lch +lbz +lKG +lad +lsa +lAaH +lGi +lRM +lFR +lTLH +lhr +lwo +lwL +lJR +lvG +lQa +lSj +lIAFg +lqb +lcgd +lwO +lkup +lUU +liw +loYP +lZg +lPV +leb +lDP +lqV +lZV +lSC +lzT +lfq +ltDI +lHW +lij +lCx +lqT +loA +lOR +lEE +lsL +lFE +lqY +lVPc +lsE +liJ +lTq +lhM +lSfpgz +lcA +lAj +lAE +lXR +lkM +lVZ +lkQ +lbbN +lVl +lZl +lgJu +lRZ +lMxXB +lsj +ltE +lIC +ldzR +lFn +lUD +leS +lQIa +lhYm +lWL +lFx +lCf +lNp +luxL +lqA +lZq +lki +lvE +lCw +lZz +lAjB +lpfs +lhN +lQW +lye +lIjD +lhv +llN +lkD +lpy +lQY +lMg +lcs +lvO +lYZ +lVw +loN +laut +lFO +lQc +llS +led +lIe +lCq +lmX +lwW +lfo +lzE +lff +lKR +llQ +lEUd +lwtDX +lUM +lIhwS +lYpa +lxf +lOTAMa +lJa +lFri +lbyZ +lUyK +lUY +lZF +lsD +lyM +lJEw +leW +lsMX +lvL +lJjw +lYy +lIB +lZQ +lfg +lwT +lUO +lZe +les +lDa +lVo +lwl +lLPO +lui +lga +lnq +lCG +lVk +lAh +ldU +lFt +lFL +lOKa +ldHS +leDb +ltJcsm +lYV +lup +lGU +lGr +lhl +lEjw +luc +lcK +lXUB +lSV +lfnTu +lzJ +lZo +lqg +lBf +lBb +lyV +lZS +lEn +lAO +lGdip +lUd +lZK +leer +lEL +lLJW +lRE +lTn +leztjR +las +lOH +lXa +lxG +lNtP +lpT +lZb +leChR +lEB +lnd +lzK +lyA +leZ +lyo +llm +lwCdj +lVp +lTG +lVCTUw +lsk +lTF +lMd +lqeS +lpg +lpZt +lhm +lWK +lyb +lRu +lhEn +lYoD +lRrOum +lkC +lwa +lqRb +lsm +lst +lxd +ldz +lfh +lKZ +lMB +lKx +luA +lbaX +lkwqC +lkJ +lTK +lYgs +lKNeBql +lbx +lhC +laNS +lpix +lep +lJT +lKD +lvc +laQ +lYq +lCs +lsFA +lbw +lnD +lpoDuj +lQj +lpK +lQm +lWq +lse +ltM +lXZ +lIg +lDG +lrX +lUW +lgXp +lbY +lHy +lHh +lPRd +lfc +luG +lYP +lKVFbl +lcB +lFki +ldJl +lyDEd +lvp +lSr +lPR +lcl +laFq +lKsoo +lYY +lKf +ldy +lLQ +lQr +lFB +lclW +lZGe +lvQw +lYx +lqR +lqt +lOrU +lqO +lsInn +lQdk +ljAMI +laZ +lqtlw +lSL +lCZ +lGEe +lsXF +lDX +linecap +ldeO +lWMG +lQq +lWN +lLT +lJs +ltr +lbH +lVv +lrn +lwTN +lRx +lwF +lUA +lpJ +lmf +llCzu Kz KM Kw @@ -7253,6 +23157,436 @@ Klz Klg Kny KkG +KAX +KWQ +KyNK +KVcF +Kod +Kakadu +Kdu +KPK +KwQ +KWßI +KrYq +KHF +KDPf +KhX +KmGo +KWo +KYY +KJgR +KoH +KYg +KAt +KRC +KHon +KtP +KLPGa +KLi +KuA +KÓ +Khn +Keg +KMD +KxK +KII +KsT +KIe +KCk +KKL +KOiB +KgI +KMl +KYj +KRT +KjN +KXi +KnMIs +KiN +Khjz +Krx +Kmm +KOu +KDf +Kzr +KFJntO +KKo +KEU +Kew +KSn +KxY +KUTBu +KFg +KDK +KnR +KLA +KNA +Kgd +KGw +KYMr +KbZ +KZl +KiD +KqU +KJh +Kbdg +KLF +KUb +KviS +KiMx +KRAO +KXvI +KYr +KnOz +KUP +KTO +KYB +KYl +KWX +KMig +KPr +KRX +KwJ +KaG +KDu +KKM +KvV +KAfO +KkJ +Kos +Kta +KCq +Ksva +KlV +KvN +KEYj +Kzcc +KHg +KdF +KCi +Kkg +KOj +KEJ +KIr +KUJ +KWr +Kuu +Kuqn +Kbb +KdWv +KyL +KNP +KGO +KBDh +KHX +KNV +KqO +KeXnv +Knw +Kbp +KQM +KOqw +KFo +KYi +Kbz +Kmu +Krc +Kaz +KHa +KsfC +KOF +KBS +KQq +KWA +Ktp +KHp +KRv +KYdW +KtC +KImg +KMv +Ksek +KQZ +KVJ +Kgf +KxO +KBp +Kzw +Khj +KCb +KUm +KiV +KON +Kdn +KFs +KqN +KJs +KXBn +Kxl +KLM +KzS +KGh +Kci +KfcEC +KXA +KDA +KUk +KIh +KvG +KZrV +KTII +KFV +KdA +KMB +KzX +KZf +Kzm +Kbv +KHt +Kxu +Kgs +Kix +KCp +KzTd +KTX +KZL +KcZ +KTA +KhA +Kep +KDX +KcU +KXs +KiyB +KxTD +KdT +Kocxz +KOk +KGB +KqM +KoPJ +KyW +KBG +Kzg +KEl +KlK +KnK +KXU +KjY +KSC +KiZ +KsO +KOY +KFO +KyP +Kgg +Kqh +KhQG +Kof +KTu +KYx +KvRNp +KsR +KMM +KNK +KNhU +KAqp +KIQ +Kjh +KbLSb +KJa +KjK +Kfw +KUM +KYD +Kpe +KPC +KRz +KzGP +KfH +KOl +KxR +KKpk +KGT +KuI +KfD +KDl +KTW +KTJ +KHJ +KbT +Kqwg +KOtb +Kbn +Kzl +KAd +Knz +Kmx +KYmz +KXW +KyFt +Kkk +KrS +KwX +Klx +KfhJc +KWa +KWL +KXf +KFY +KvS +KyF +KaZ +KRi +KVn +KRp +KfM +KAQ +KebQ +Kko +KLP +KhZb +KlqA +Kgq +KEwr +KrT +KuAo +KNU +KuZr +Kź +KEhZC +KnI +KOX +KPw +KLX +KxCF +KFN +KVe +KkI +KRE +KuW +KLWX +KwD +KqW +KER +KEH +KJTXT +KIO +Kad +KFj +Knk +KIu +KEk +KkL +KEw +KOJd +KYL +KAc +KhgMrE +KUl +KMch +KXY +KEg +KjW +Kjp +Klhz +Kqy +Kza +KBQp +Kzsd +KHh +KDM +KhZK +KEC +KPbz +KlQI +KLN +KZc +KJj +KrgO +KKN +Kźz +KcL +KBd +KyJ +KQR +Kkov +KQeIQrC +Kol +KmQ +Kop +KASz +KYvIEU +Kynh +KmaC +KVr +Kzd +KIrJC +KkN +KFb +Karw +KKD +Kwq +KDH +Kys +KrO +Kdv +KzZ +KPu +KvKq +KcIs +KFQ +KTKA +KqD +Krr +KnW +Kmnz +Kic +Kpm +KIZN +Krh +Kcu +KSqi +KTWN +KtYG +KQJ +KiE +Kkq +Krj +Kcw +KbE +KKI +Kpi +KWh +KuR +KhLz +KcQ +KFdD +Krw +KWtLc +KWtJ +KnB +Kpt +KWhU +KxBZm +KZd +KEe +KLLw +Kuh +Ktr +KLE +KzG +KnZs +Kpc +KQB +KiH +KgS +KMWASZ +Kbh +KwKrm +KVf +KYe +KBXT IS ID IQT @@ -7468,6 +23802,482 @@ IGj IYh IKAX IMt +Imn +Ikx +Isu +IqB +IHF +ImageMask +ItH +Iia +IGd +IKu +IvA +Ifq +IwI +IxT +Iay +IZj +IIR +IbX +IQn +IFbf +IQz +ILr +IKpI +IAU +IŃ +IkU +IQa +IUr +IFoGl +IIVN +Ixz +IDg +IfG +IRb +IXY +Isq +IsT +IPK +ITo +IVFR +IhQ +IeT +IFY +INZ +Iap +IUu +IJt +IaF +Ilp +IiJk +IKv +IBQ +Iep +IdSs +IzNv +InR +IiJ +IJx +Iolv +IPsO +Ifnb +IMC +IOS +IpPS +IWb +IJQ +Iufi +ICw +IeF +Ijz +IPQ +IQmLE +IDR +IHS +IceC +Iun +IQN +Ifm +IfA +Ilx +IeO +IhJ +IPKH +IgG +IOk +IOe +IsD +IpGk +IaS +Ixo +IRl +ISek +IskH +IBh +IpT +IJE +IwWcU +IäZ +IbW +ITnt +IOb +IXXn +Isi +IrO +Iyu +Imk +ISV +IxZ +IkF +Idri +Ipb +IdW +Ino +IdN +IUo +IXA +IFg +IPON +ILo +IoZL +IsCP +IVI +Ium +InQ +IdZ +IuzyJ +IAki +Ieu +IrU +ITA +IzW +Ixr +IziBj +IqL +IyM +IZhJ +IzE +Iix +Igd +IQc +IBU +IXa +IbQu +IgqS +IBXX +IFm +Ilg +IdV +IqC +IaaW +IjG +Inl +IUbx +Iwz +IoE +IŁ +Idd +ITD +IYo +IUI +IrN +IUh +IoKz +ISQ +IcF +Iwu +IqH +Iop +IZjy +IKQ +IGTmsd +IeZ +IvO +IXrA +Ilz +IDBZ +INVQ +IdBy +IcU +IyOYjG +IcR +IUw +IfT +IDzb +IsU +Iqu +IahmC +Ius +ITO +IHV +IXki +IfB +IsC +Igtt +IXN +Iyo +ILQ +Ima +IkQF +ICB +IbR +IUZ +IbM +Ibu +IjC +IMUO +Ixk +INMG +IBJP +IPr +IjB +IEP +IzX +IDS +IiS +IsW +Ifs +ISaq +Isx +IrA +IPL +ITtT +IVH +Ids +Ivw +IOO +IURM +ILFL +IuP +IfR +IXqD +IzY +IgV +IrY +Iwg +IvX +Irz +Iwk +IgP +IKxu +IlT +ITQ +IeY +Ika +IDCm +Iaz +Ibb +IPjg +IVZ +IIA +IEw +IRh +IPR +IFB +IYi +Ild +Iht +InE +IJI +IVq +IwŚ +IIm +IZV +IRX +IqyNo +IHk +Icb +IOm +IDk +IMK +Iwl +INS +ITX +IxH +IDmqi +Izt +IoQK +IOJ +IYu +ImA +Ijl +Ibp +IzD +IBz +IIv +IBD +IwB +IMP +IiYR +ItD +IQS +IuS +Iwy +Ioj +Iys +IVz +IWW +ISL +Ikb +IUKpJk +IKJY +IjNC +IIB +Itd +IZt +Ikz +IlL +IKw +IWnJ +ImC +IpfW +IeV +Iqc +IeE +IFP +IOi +IHf +INT +IRf +IMr +IESb +INFO +Iom +IqK +IbY +IVT +Ihu +IOZ +IkT +IYC +IhL +IUpj +IQh +Iqg +IjL +IOE +IvE +IbI +IUS +IRZ +Iyz +IaG +IExxQ +IIf +IIq +Iqky +IaY +IAct +IQTL +Ink +IZO +ITw +IDW +IRt +IeMn +Ili +Iwj +Izv +IFh +IsR +IkP +ISI +IZq +IIx +IVA +IoOx +IBl +ICR +IPE +IFd +IUk +Ism +IlrW +IWP +IPO +IwaZ +IzV +Iefx +IwQ +Ich +IxM +Irol +IeC +IoM +Ipt +IDr +Ico +IRa +IdlF +IWE +IajuY +Ixi +IzYlUq +IOSA +IZi +Ioh +IuD +Isl +IRj +IFa +ITC +IOzd +ITE +ICn +IrJ +ISx +IrS +IqQw +INlo +IbgW +Isc +IeP +Iqq +ISJ +INK +IyZ +Idq +Ibd +IhC +IJuOKO +IYn +IvZ +Iec +IUn +IzMCSH +ICT +ICo +IvT +IfdI +ILF +IlHlNlO +IGg +IinO +IVp +Ieq +IÓ +Icc +IUF +IVm +ISeO +InA +IuQ +IzAZ +IFowI +Iib +IWn +IBBB +Iut +Iet +IrI +InMk +IDu +IQG +IUm +IBv +IXjGY +IJN +IsKw +IKO +ICC +IAgn +IdE +INim +IKzZ +IRjd +IFOG +Ine +IVun +Idi +Iwq +Iui +IWp +Imt +IJSLSOU +IKih +IdAJr qF qIF qy @@ -7645,6 +24455,478 @@ qEE qcG qoq quc +qPX +qrw +qqY +qeS +qfb +qtqJf +qgR +qü +qjs +qKoo +qFm +qlk +qrI +qRIY +qNtL +qHwA +qQy +qyD +qMW +qVDT +qFxo +qIb +qSh +qnk +qwy +qYx +qNq +qxT +qEIg +qiR +qtd +qxW +qlx +qAg +qHAg +qqn +qws +qOj +qAj +qBt +qJH +qVt +qOr +qZf +qaZ +qvM +qXR +quyD +qvIv +qAw +qPD +qNA +qCm +qEan +qwj +qmX +qtE +qKc +qAF +qlvWY +qpi +qxn +qgk +qFs +qEL +qtrUJ +qfzzt +qAE +qQsc +qVF +qURx +qjh +qEB +quA +qSf +qFb +qeBU +qRW +qqo +qjf +qih +qnZ +qcWQ +qŚ +qov +qgn +qOsbrT +qnV +qDs +qsv +qLi +qQX +qKsq +qkW +qBR +qcw +qTL +qNv +qQu +qwyg +qkR +quY +qcX +qzr +qOM +qYas +qyw +qga +qja +qie +qtz +qJv +qeEj +qGv +qUj +qYe +qnl +qlK +qyZ +qwF +qcBs +qge +qbf +qey +qqg +qhwrdM +qHk +qSY +qoIt +qwnn +qmi +qGWO +qUnp +qEz +qEHS +qEZn +qPDt +qrY +qlV +qPt +qSO +qoV +qpr +qMI +qlP +qLXNz +qNx +qUO +qBJq +qWI +qvh +qjZ +qez +qQm +qdM +qjre +qjdWs +qFj +qfR +qjT +qKr +qAn +qgw +qjz +qnpK +qQG +qSX +qOYdN +qLI +qbDy +qDa +qby +qWz +qJe +qCeY +qOLu +qmfxiB +qdE +qaV +qPP +qrRz +qXX +qOk +qyhb +qoQ +qYC +qtQ +qBU +qGc +qUJ +qgxY +qdW +qBDt +qsx +qopcL +qBK +qTe +qoDF +qsG +qWb +qBO +qAy +qtH +qiA +qeoK +qBw +qhp +qgF +qXN +qzt +qxj +qNhOe +qgY +qcMW +qff +qYG +qJl +qNU +qmW +qGm +qbNH +qBxY +qHX +qtV +qDw +qsY +qAQ +qOV +qko +qYs +qsS +qkkA +qCo +qvN +qMM +qus +qUQ +qzw +qEj +qpk +qSJ +qrA +qPaO +qit +qQj +qRY +qIv +qZD +qnNJ +qRT +qVi +qRH +qChM +qXV +quW +qfqk +qzCe +qLx +qKu +qyin +qsNm +qud +qhXv +qfk +qVY +qvd +qRF +qkJ +qlhJ +qBlh +quFy +qxFm +qji +qRU +qNp +qQg +qBo +qax +qRm +qAsL +qPL +qUJh +qGA +qMhx +qRJo +qTC +qzz +qFe +qhy +qNmUu +qxt +qŚV +quj +qwn +qXT +qvm +qqvEibg +qgMH +qDy +qLn +qDh +qLM +qLlN +qpf +qdK +qHOuE +qoD +qGI +qrT +qlL +qIa +qTA +qBL +qzZ +qNQO +qYB +qwwz +qyjC +qCq +qWF +qMs +qiV +qUn +qmmB +qRs +qhpl +qAuE +qcL +qKX +qjKJ +qPf +qNbXi +qZoh +qhD +qLN +qnDn +qYF +qIh +qEp +qza +qsf +qoH +qGt +qiW +qhz +qVI +qmD +qMNl +qó +qcc +qoCr +qaA +quK +qBu +qZS +qxZ +qXi +qzK +qcR +qRz +qpl +qCa +qoI +qODO +qNcv +qHd +qBi +quN +qHs +qfz +qKA +qwk +qmE +qOW +qTW +qGYl +qUM +qZK +qZW +qIt +qÓ +qZE +qNG +qCx +qoK +qnf +qrLj +qEZ +qAM +qxK +qCQ +qvK +qrQ +qtI +qKT +qwMjwG +qTvD +qhB +qOi +qfy +qLC +qHzL +qCv +qUU +qxd +qLE +qWZW +qwD +qoR +qJZ +qDnr +qIu +qö +qcm +qnq +qhN +qmw +qdv +qvP +qgQ +quFO +qvf +qwh +qZv +qjx +qBJ +qNz +qaT +qTP +qFR +qVjD +qLV +qYK +qsVP +qPe +qar +qzXrZ +qiI +qWx +qtJ +qXK +qVBj +qLR +qJg +qKL +qlj +qTv +qJzY +qpIp +qiC +qmz +qMN +qoM +qty +qoYA +qVo +question +qmWo +qCr +qsz +qkX +qHR +qmA +qyO +qxH +qfC +qQS +quf +qYX +qeX +quoteright +qys Wd WKo Wm @@ -7841,6 +25123,453 @@ WGN WVR WpCJsO Wxc +Wyznaczyć +Wykonać +WPg +Wuq +WRS +WzL +Wsd +WsD +WRw +WpJD +WKf +WcMC +WVS +WRM +WrQ +WUv +WGk +WEm +WuuG +WGx +WAA +Wme +Wgs +WCg +WBL +Wiz +WyE +WRy +WuR +WTC +WjB +WnE +WSGpf +WyX +WeA +WzDy +WIRXvH +WIT +Wzl +WyO +WbF +WNQs +Wqf +WNc +Wpd +Wtn +WmW +WVz +WkV +WeM +WFr +WHm +WFa +WiX +WmJ +WFqM +WMp +WJE +WVKk +WOK +WGw +Whp +Wfvb +WUA +WzyL +WQL +Wrem +WpsD +Wlq +Wst +WdC +WVh +Wki +Wyy +WPM +WYs +WBH +WAC +WHsr +WOe +WLy +WPs +Wxy +WmTa +WPr +WPJ +WEC +WeH +Wby +WrI +WMY +WOEAU +Walc +WsQ +WJV +WCDTe +WQI +WEK +Woe +WxpU +WqU +WCd +WBk +WqePj +Wyh +WDGq +WWooYc +WHv +WUm +WLi +Wqk +WLq +WNh +WwZ +Wfq +WXi +Wep +WZC +WPB +Wtm +WeY +WjdNt +WbX +WgA +WhO +WzW +WHT +WDA +WZdA +WMb +WVo +Wxu +Wzf +WUr +WJY +WfC +WOG +WYL +WEOr +WCX +WCUo +WuLy +WEL +WOJD +WHC +WUj +WGhD +WBQ +WFZ +WIBl +WGE +Wfg +WGp +Wni +Wńw +WjtS +WBW +Wws +WZqF +Wbj +WCq +WzZ +Wą +WFg +WWNx +WEqoe +WgzNb +Wmp +Wsc +WhLg +WSN +WMB +WiC +WEQ +Whx +WhD +WIcX +WhG +Wjm +WcXY +WEpA +WAF +Wyg +WmU +WBl +Waj +WTf +Wsk +WqR +Wbd +WQP +WUi +WdM +WTO +WnKP +WfI +Wzo +WTKz +Woi +Wgz +WRr +WsR +WBXJ +WPHY +Wcw +WDN +Wke +Wmw +Wvh +Whn +Wxk +WCCvm +Wxz +WrN +WMF +WFH +WFP +WLN +WNAI +WpwB +WDy +WSa +WpF +WMJ +WJx +Wad +WSs +WEc +WVr +WsB +Wö +WAo +WaU +Wvy +Wkj +WXZ +WEb +WTCk +WNDc +WyZ +WeOT +WhyQ +WHuH +WIp +WuW +WdO +WPgF +WylK +Wku +WnW +WRa +WZj +Wek +WRW +WRA +WUL +WYX +WjS +WDW +WyK +Wet +WSV +WfV +Wwb +WIS +WRT +Wwm +Wct +WXx +WBG +WcN +WIH +WsE +WvT +WAy +WZI +Wfkm +WGTLW +WWh +WLB +WlH +WTB +WpsQ +WDM +WqYG +Wgp +WÜ +Wzal +WIu +WjN +WDY +WVP +WNv +Wmj +WfX +WUa +WUy +WeeQ +WCMd +Wzg +WGS +WTl +WHL +WJheR +WiV +WIh +WyT +Wky +Wks +WpO +Wiu +WZü +WPvvx +WHala +WSuG +WvU +Wyn +WeC +Wgqf +WrVp +Wmi +WHV +Wak +WQb +WJR +WYr +WRq +WrauH +WEBOIEs +WOHcSS +Wex +WPi +Woq +Wcb +WVjBZ +WYEu +WBDY +WKB +WkB +WvY +WAq +WiS +WqW +WXKP +WAgk +WPwo +WqM +WPU +WazM +WKh +WgK +WhT +WtU +Whh +WHq +WxcaU +WDI +WyU +WicC +WvF +WzX +WKb +WeL +WDR +Wel +WTQ +WqN +WIV +WdF +WFA +WZTX +WdEh +Wez +WDB +WrU +WnO +WZZ +WcSD +WbVF +WaH +WQo +WWźH +WGc +WzA +Wtk +WdI +WIq +Www +WHzsv +WyN +WzN +Wsh +Wnd +WMNQDM +WQM +Wsr +WvSv +WJS +Wkg +WQD +WbEXh +WzD +Wlj +Wdy +WmR +WoozG +WNt +WZb +WGzp +WRt +WVWW +WKw +WAI +WzJW +WKm +WhI +WLcC +WSIO +WCc +Wiy +WoWo +WZJ +WEE +WNT +WĘ +WLG +WJy +Wij +WFE +WOA +WQfwd +Wpp +WJK +WwDw +Wve +WjR +Wuf +WKA +WLU +Wus +WOO +WcM +WMFFTO +WPp +Wui +WRD +Wwh rM ra rv @@ -8048,6 +25777,463 @@ rYG roJ rbP rVsl +rUn +rtM +rzym +rvh +res +resd +resc +rCZ +rsp +rHlQu +resdK +rescK +rekA +rtS +ros +rty +rmL +rlp +rCw +rMa +rDg +rYj +rEWM +rLW +reK +roaor +rYkE +ryO +rcH +rsJ +rSt +rVd +rTg +rMoJ +rZPo +rAU +rIC +rkGG +rFNNy +rjmeSme +rhg +rSyS +rJZ +rmU +rIg +rkn +rqBD +rQD +riO +rjE +rLN +rfd +ryU +rmF +rJm +rzs +rgs +rHF +rEw +ryn +rFuP +rzia +rah +rQm +rly +rDpQ +rdd +rnR +rSo +rWv +rfZ +ryh +rRR +rzsH +rWE +rVL +rvmG +rnq +rZF +rFg +rGF +rlW +rGT +rnYO +rmB +rIP +rTXs +rGv +rFj +rVz +rFH +rHh +rtE +rbJz +rkr +rCYd +rKt +rBK +rTY +rjL +rkP +rxU +rPA +rCyob +rMS +rCL +rzC +rOk +rxB +roR +rGO +rKY +rNk +roL +rvl +rXs +rtN +rPx +rFt +rTI +rmh +rue +rNR +rxkB +rPLI +rXng +rqkc +rTLG +rfE +rxI +rAtxv +rEKY +rof +rIE +ryN +rVh +rGW +rXK +riUJ +rxg +rmPS +ruM +rPE +rYLt +rkS +rJlc +rHB +raT +rbr +rEU +rvL +rEW +rXL +rFCJ +rQQ +ril +rZi +rkrR +rkQ +rpI +rVC +rcA +ryY +rob +rod +rYZ +rto +rpn +rŃ +rCA +rRE +rNB +rwu +rUgV +rÖ +rKW +rbD +rIZ +rso +rdUy +red +rgM +rLOX +rlD +rUl +rUx +rIq +ryc +rcf +rDk +rntz +rxK +rmnN +rhOr +rst +rSTj +rBU +rNe +roKj +rVc +rVF +rkk +rBP +rBuQ +rAXmz +rAg +rqK +rEjm +rvd +reh +rkN +rWJ +rvO +rBvQk +rbq +rRg +rkW +rWs +rAj +rFyC +rpF +rtG +rUO +rLSsbv +rgHs +rCW +rbNW +rBu +rQc +rAD +rTE +rzZ +rOG +rTM +rhI +rex +rDK +rEu +rrx +riBe +rww +rUU +rsWv +rZp +rOz +rkFF +rQJ +rkw +rld +rrF +rje +rfq +rCsIf +rFX +rwBH +rVb +rol +rwS +rUN +rPD +rND +riU +rJG +rYl +roK +rqq +rVm +rIf +rpx +rte +rht +rgpL +rXq +rbFZ +rMr +rxQc +rsO +rqA +rzPG +rxh +rVy +rKG +rqY +rLV +roh +raK +rZT +rIQ +rqC +rYSf +rNb +raG +rpC +rfSW +rQkK +ryB +rWnX +rFF +rqbj +rbT +rdnn +rdlu +rRT +rSP +rxre +rDev +rdZ +rKk +rsdA +rDt +rzF +rsm +rnw +rWV +rgmOi +rHtN +rym +rjJ +rUk +roU +rDQ +rOHB +rHK +rcE +rdaHo +rSC +rAa +rVQ +ryj +rug +rZA +rzN +rbc +rwv +rwb +rvQ +rby +rEN +rWU +rjyJ +rlr +rQy +ritl +rYn +rż +rrK +rOQ +rCK +rIe +rSw +rQeC +ray +rCl +rei +rzD +rnL +rta +rLON +rAJ +rjI +rNC +rqu +rOV +rvD +rAHy +rTff +rdM +rdlo +rwp +rAz +rTU +ryz +rKcq +rmR +rÄD +rCJ +rexU +rxb +rzy +rFKx +rOd +reSo +rgZF +rvG +rjg +rMB +riX +rga +rDX +rBv +rYU +rnqP +rAW +riw +rvzv +rak +rQo +rRN +rsk +rwJ +rej +rEj +rgh +rLxu +rpV +rQcS +rcrkr +raoH +rQq +rxbG +rJP +rKM +rBMTKh +rGA +rUfe +rTW +rSk +rWDGE +rNjI +rMu +rgC +riYm +rDf +reE +rLe +rJB +rRj +rgLBJ +rmC +rxP +rOo +rQY +rWP +rNpN +rvw +rect +rotate +round +rIU +rQF +rcU +rss +rCm +rvt +rGg +rIw +rye +rdc +rNo +rFQ +rMwC +rJU +rTw +rXf +rfafP +rie +rqn tI tU ta @@ -8262,6 +26448,468 @@ tOc tOV trZ twwI +tWM +tJg +tHfQ +tyY +tRV +tus +tWDE +tQn +tfq +tHD +tYfLL +tze +tmBq +tOf +tAU +tqG +tBH +txZcV +tuB +trr +tBb +tqU +tPc +tnD +tWw +tMN +tnd +tbD +tqnq +tJl +tKB +tHU +tEl +tXv +tCĘ +tEy +tqdC +tCXJ +tFvi +tzz +tYN +tru +tOm +tIg +thd +tMP +tjf +taT +tWH +tFz +tOF +tox +teR +tmA +tyXlZME +tyP +tVj +tPl +tCxbA +tWU +tcP +tYB +tVt +tHe +trq +tRuX +tnsA +tzOrm +tHj +tur +tTD +tkR +tYG +tYNr +tDLa +tPr +tCT +txq +tYS +tCo +tBY +tEz +tYEb +tgE +taF +tdd +tcqL +tHS +tSL +tQiC +tjr +tnY +tEq +tsX +tcg +tgv +tslWA +tĘU +tRd +trB +tHx +tKW +tvS +trO +taL +tQS +tZD +thm +tLH +tvp +tjSr +tuQ +tLkq +tXA +tAwM +tBFV +tXCYU +tiKU +tUT +tnP +tYf +thX +tJi +tbp +tTZFviR +tsA +tui +tpV +tXi +tetg +tGb +tnS +tsp +tLäu +tBx +toZ +tIW +tRC +tGNK +tgw +tsB +tXl +tWr +tet +tijf +tlN +txP +tCr +ttGZ +tkl +tLg +tUq +tiKP +tKt +tin +tsdn +tyh +tlj +tFJ +tGP +tph +txB +tmy +tCP +tOx +ttk +tznj +tPH +tIPO +tnu +tmZ +tAp +tqQ +twy +teH +tfQ +tiP +tNO +tyx +tPU +tpn +tTy +tRwwWy +tHA +tqH +tdO +tTW +tEc +tSy +tcSS +tif +tNf +tXMY +tio +tfVLA +txw +ttP +tAb +taz +tMV +tfY +tGj +tHv +tid +tfD +tbo +txj +tEm +ttE +tuS +tlK +tfJcs +tNwf +thVG +tJA +tJU +tuX +tRs +tJw +tyi +tew +tck +tlTd +tuP +tlR +tBJ +tSnpU +tgcF +tgKp +taB +tzFA +tOCb +tjZN +tTj +tsI +tcyAvc +tlZ +tzS +tHhF +tNy +tRQ +tzQ +tMX +tGR +tnj +tPG +tgy +tPp +tHi +tDx +tpO +tdL +tAu +tbH +tXb +tKP +tjh +twQ +tyC +tbW +tbYT +trJ +toz +tkB +tPKg +tos +tce +tNeuC +tPO +tjp +tId +tFl +thS +tNR +tiM +tQUcQr +tzB +tOz +tXVDr +tHn +tfGS +tAG +tPgB +tLA +tWA +tQV +tZu +tlr +tTY +tda +tje +tXxgdr +tWY +tUO +tCZ +tzoQ +tXg +tbg +tiX +tUn +tbzLg +twr +txp +tfn +tLuK +tdo +tJuq +tYPl +tOgU +tjb +tzSJ +tUr +tiN +tlE +tup +tOic +tZm +tBR +tzy +teA +tKjx +tdC +tYK +tź +tlzS +tty +tgdq +tqyP +tpF +tfB +tDE +tth +tQk +tiK +tkb +tjDFW +tPK +tIjMx +tyE +tBRZy +tMo +tro +tiW +tLMw +tkI +tpAM +tTrz +tTo +tjOl +tpQt +tVU +txk +txu +tYt +tLK +tEu +twz +tKO +teL +tho +tpZ +tuJ +tNr +tkp +tKH +tdb +tvb +tqR +ttvt +tCVD +tkq +tFm +thvp +tpI +tOh +tuO +tNe +tuA +twL +tym +taH +tXF +tSP +tdX +tQj +tHV +tFA +tmrTAn +tgQex +tOL +tpM +tpv +tsQc +tkbPU +thk +tQcO +tSA +tMNW +tSnd +tNp +tQDW +tzG +tYRV +tQK +tPxP +tBZVj +tqsbIj +tMK +tfJ +tSUO +tno +tbKb +tObm +tSG +tPm +tmza +tGz +tkzO +tyj +tei +tUW +tzEr +tkx +tdqmmq +tLzH +tVV +tLivb +tSf +tGw +twJ +tDq +tWZ +tHaW +tsbjb +tAt +tCI +tZM +tZMg +tmt +tPC +tjP +tDg +tSZ +tpz +transform +translate +toU +tHw +tCd +thb +trakcie +tPe +tJG +tjW +tCv +tCF +tEv +tXI +tGYa +tEL +tLB +thickens wo wHJ wKe @@ -8480,6 +27128,449 @@ wEk wwY wYuc wCV +wyznaczonych +wyznaczyć +wEfO +wmQ +warunki +weEzW +wVE +waP +woo +wMR +wNR +wsO +wRz +wrD +wGs +waf +wAz +wSe +weSu +wls +wFB +wSI +whT +wcj +wZQzxD +wmy +wUb +wXZ +wGc +wVQ +wNLakV +wDt +wzyLA +wOX +weh +wUQ +wtq +wec +wBdZ +wkZ +wQn +wdo +wdQ +wyj +wmp +wNY +wBP +wSN +wfzR +wyq +wBu +wEH +wBX +wOe +wGo +wNiE +wHr +wbvf +wlJ +wfY +wInmK +wBv +wbN +wZh +wHs +wiR +wzq +wrX +wSm +wtt +wgdZ +whr +wLDx +wgb +wyC +wBr +wvm +wwD +wcN +whs +wdY +wWjK +wPOP +wgpl +wYI +wAG +wTY +wzg +wmn +wPXn +wsQ +wqa +wqH +wXn +wpF +wbB +wmk +wFyX +wiQ +wrU +wlO +wOa +wjr +wwbp +wie +wSC +wjq +wtC +wCtH +wVH +wbL +wCoK +wyi +wrg +wmJ +wLp +wjM +wjTy +wBV +wkxCSa +wKD +wgYL +wAN +wxL +woE +wwk +wtm +wsI +wtw +wiM +wTRL +wdf +wKG +waO +wGf +wEd +wEm +weQHw +wwXT +wOp +wkj +wvfv +wsN +wKTfj +wggk +wvŹ +wiu +wgt +wKfY +wqq +wXh +wDw +wPw +wgu +wSg +wHYi +wNO +wjd +waH +wSq +wgg +wyY +weU +wBg +wKhg +wIO +whet +wcl +wyV +wCrP +wiN +wNLp +wMK +wao +wlY +wmkXA +wgU +whL +wGN +wzw +wSt +wID +whN +wCB +wWq +wCmW +wPR +wMd +wAl +wgF +wdS +wmo +wyO +wUY +wfP +way +wga +wcS +wGz +wZr +wkQ +wIJ +wQi +wAt +wŁe +wkf +wQm +wQd +wbzD +wrr +wTt +wVL +wPd +wrfU +wÖ +wJq +wgo +wYj +wko +wWzq +wZu +wQq +wcU +wpK +wJz +wZjf +wQBm +wzv +wTw +wXf +wVr +wvG +wESJ +wIm +wIkw +wmS +wWh +wHCW +wKS +wfl +wDR +wWGw +wjo +wiJ +wpn +wMY +wkV +wTAv +weCd +wCb +wIv +wip +wABs +wqy +wsYyg +wlX +wUV +wTW +wwtO +wGm +wAI +wJF +wCL +wep +wFa +wvo +wZH +wpKn +wBWF +wal +whRxlL +wDE +wHe +wwsCc +wDC +whX +wgC +wNRN +wGa +wKK +wNG +wUg +wqJo +wbt +wuN +wxTV +woj +wqc +wxQ +wVk +wkU +wVV +wfo +wLg +wiz +wND +wbe +wjL +wcz +wDj +woWT +wlA +wHB +wfS +wLO +whh +wDs +weK +wMA +wcf +wVM +wCz +wzR +wwf +wFQ +wAYY +wbO +wIxI +wgd +wvA +wks +wySs +wó +wTP +waKe +wgW +wGZ +whw +wvv +wmz +wFq +wuqB +wyT +wbcpaQ +wFvw +wcs +wqw +wuDxe +wFKI +wNM +wAi +wJy +witf +wgcQ +wnW +wQQ +wkz +wje +wAh +wEIy +wWR +wrc +wmW +wtI +wolb +wJM +wIUZ +wNs +wyB +wCZm +wLPoG +wix +wgM +wMg +wrKz +wId +wlSA +wBR +wDc +wSM +wxA +wee +wRS +wge +weZ +wZl +wff +wTn +wME +wLPI +wLA +wfc +wddv +wdZ +wXU +wCE +wZq +wzvz +wZqd +wqBxu +wbLFP +wxW +wCa +wZa +wXz +wTl +wbs +wmV +wnM +woO +wvxN +wgG +wIwW +wlg +wYu +waK +wxt +wCj +wzIo +wxN +wFh +wIV +wVg +wyM +wrjq +wVT +wEt +wWP +wgz +wFlvFl +woI +wTu +wBA +wmrBr +wfW +width +woff +wHD +wtB +wWI +wML +wszystkie +wyrazy +wIA +wRD +wZBq +wALX +wdn +wZŹG +wXw +wVN +wSxx +wKm pDJ parenleftbigg parenrightbigg @@ -8736,6 +27827,470 @@ pVL pqBa pFsx plD +podanych +pgfprgb +pMh +phk +pwd +peL +pZqb +prime +punkty +przedstawić +phI +pJN +pXg +pXw +pEK +pZx +pHUM +poT +plo +poc +pId +pwp +pkF +pajB +pXn +pasbQ +pnR +psIa +pQF +pMVX +pYD +ptA +pdW +pcO +pFL +pUv +pks +pCjUw +pKk +pAy +pkIR +pWy +pRg +paC +pJhB +pxP +pus +pRd +pTsEvvcqN +ptz +ptD +pDe +pMX +pzeUV +peR +pWp +pbZU +pJkg +pQT +pxH +pflsN +pó +pOdd +prmiF +pJbb +plp +puS +pfu +pGO +pDPi +pUX +pXG +pSS +poy +pxm +pON +pxt +pgE +pld +pRw +pym +pAU +pFz +pzbQ +pZe +pSy +pTB +poq +pIP +pwB +pwYr +pjg +pzV +pnH +pnx +pdb +pPY +pYE +pRV +pFA +pww +pVB +pGZ +pkd +pur +pGB +pUG +pho +pIzVO +pWK +pHO +pVSF +pSD +pDb +puFR +pis +pYR +pkz +pjk +pFJ +peUz +pPs +psK +pSre +pSZ +pYg +pgIw +pPr +pVo +pDv +pxp +plQ +pKR +pqu +pAc +pJt +pDlC +pEjG +pts +pćp +pnM +pvah +pca +pzH +prN +pVN +pUIJ +pUL +pbZ +ppl +pgT +pHc +pJj +pSq +pAp +pkv +piMp +ppE +psr +pLh +pEc +pNI +plG +paW +pPv +paN +pSh +pcf +piQ +pop +pPpjQ +pCu +pńtlQQ +pkw +pcu +pkX +ppD +psn +pJS +pOp +poz +pwV +pMa +pKX +ptgi +pgj +prt +pphln +pPP +pdG +pap +pDT +pKHp +poF +pth +pOO +pEz +pzq +pLC +pIb +pbGw +phu +pXM +pVNLr +pBx +pHT +pbr +pPl +pjF +pzQ +pgA +pNF +pRe +pIS +pfr +pJI +phF +phf +pRL +pyS +pad +psS +pWB +poY +pAD +pml +pmI +pTk +pBv +pwO +pDVX +pLV +pTjOM +pFiU +pDi +pQD +pŹ +pAT +pzZz +plx +poxG +pob +pet +pAj +pWs +pUld +pNB +pNW +pxk +pOD +pwdH +pł +ptL +pTG +pTcl +pPA +pbp +pmF +pBm +pKKl +pOi +phJv +pUQ +puL +pPj +pJDoJ +peZ +psSo +pat +pBE +pWa +pzs +pAHQ +pPN +pMV +pjV +pBW +pXt +psX +pZoi +pYp +pDF +pQt +pcR +pelM +pBEQ +ppC +pes +pnI +plb +pxu +puz +pojp +pkj +pvs +pHm +pBDW +pwC +pPKAV +pź +pcP +pxx +pAR +pxS +pGM +prY +pij +pJu +pHnI +pZq +pdj +prJ +pxq +pxTr +pVh +pPo +pAGt +pvBb +pGC +pst +pxc +pMs +pMn +pcD +pkh +pQKk +pXZG +pQqWq +pyE +psb +paj +pOb +pIjA +pJJY +pKyk +poX +pPZ +piA +pQe +pUs +pUp +pqqJ +pwY +pxr +ple +pcY +pPw +pfT +pTT +pJR +pTlp +pwL +pDw +pPz +pFzFP +pJk +pGT +pef +plE +prm +pLi +pji +pdo +pbd +pCX +pid +pGe +pWD +pSr +pJD +pVg +prFx +pAG +pFKC +pMG +pMzh +pCC +paXg +pKC +pfH +pIc +pTA +pGoX +pBR +pZoS +psd +prsp +pOK +pzT +pMB +pKM +puK +pec +pJZ +pyF +pvB +pyvj +pso +pMRDx +pfof +pGnp +pjmDWm +pgjp +pxo +pHj +pUl +pEx +pQŹc +pCI +pUZ +pqpipy +poj +pFWb +pJH +ppN +pJi +pVaf +pwr +pUg +pLJ +ptu +pSxA +pNX +pqxv +pDES +pHJgM +paO +pmm +pttrv +phsp +pGm +pmxI +pnv +pNxvec +pxK +pVD +path +pXX +pqI +ponieważ +pQz +pQO +parenleftBig +parenleftBigg +parenrightBig +parenrightBigg +pRh +prW +ptvX +ppq +pCP +phL +pou +pzO +plusminus +psf +pGV +pbs +psq +poJ +pNA +phv +pRMk +plot HD Ho Hg @@ -8916,6 +28471,440 @@ HgT HgnW HJza HHr +HRA +HuD +HeT +HLO +HPic +HCdo +Hoh +Hiyll +HKv +HNL +HWt +HGk +HbX +HUH +HlQ +HUQ +HVia +Haf +HqP +HpGq +HPPg +HjB +HCB +HgM +HgpKT +HctA +HzC +HkE +HsMg +HWE +HSZ +HCV +Hgk +HHQ +HKy +HPV +HTP +HIou +HZOQ +HKC +Hzo +Hhc +HrQ +HJQ +HOMF +HFzp +HEz +HwB +HaB +Hbk +HyY +HZaRo +HbL +HnL +HZK +HWV +Hbj +HNK +HjQ +Hrw +HOsW +HnoQ +HfM +HyX +HEm +Hsi +HBPC +HFqß +HeN +HzhU +HXQS +HfE +HxW +HaM +HRl +HUs +Hvp +HKB +HLM +HqT +HkV +HFm +Hnr +HKAS +HZI +HwX +Hyogd +HJoS +HGF +Hdj +HncM +Hpl +HNP +Hng +HfZ +HGw +HFU +HnHL +HRB +HRa +HlgP +HsPm +HQAa +HEM +HHW +Hsc +HvP +HTd +HoO +HAq +HQb +HSs +Hqe +HtP +HsF +HHy +HHt +Hfn +HVEi +HEp +Hyy +HmÓ +HtD +HHd +HSb +Hqa +HDz +HuH +HNV +Htgs +Hld +Hrm +HKf +HeW +HQQ +HcP +HdG +HJZ +HtI +HoS +HHf +HGY +HAu +HKG +HbU +HDÖ +HwOl +HpJ +Hcc +HIQdW +HtW +Hqc +HRg +Hgb +HlLJ +HGf +HXi +HJqbd +HYJ +HOX +HfJ +Hmk +HRJ +Hbm +Hnz +HOr +HqE +HDc +HyzA +HJE +Hgi +HFJ +HyO +HIh +HYqW +HWX +HJr +HEt +HLR +HQI +Hyf +Heu +HRk +Hdg +HjJ +Hrd +Htj +Hju +HvfB +HHBh +HlG +Hnj +HHh +HJN +HZV +HoJ +HJb +HdJ +HmxN +HjG +HKFM +Htg +HhrY +HvD +Hji +HuK +HTs +Hhq +HHA +HMc +HWP +HTM +HLn +HJf +Hys +HWe +HVC +HgF +Hrs +Hcs +HYT +HmuPh +HFNx +Hwk +HhtP +Hftx +HRQ +Hmu +Hyd +Hxa +HHDG +HFt +HTN +HLe +HGQ +HlL +HCn +HFMe +HGx +Heei +HYqM +HByN +HCa +HMU +HSMk +HbR +HRR +HjhF +Hvq +HpiN +HdPl +HhR +HYH +HXM +HOqU +HAg +HCX +HgC +HFg +HlO +HeD +HLW +Hpy +HoM +HWlOq +HzBt +HBx +HzP +HbED +Hsn +HGh +HGV +Hqu +HBb +HIP +Hik +HUBS +Hqi +Hż +HSy +HEcG +Hvm +Hqw +HhF +HVy +HPs +HUN +Hlwm +Hjo +HKZ +HEu +HjD +HPeKiP +Hrk +HPR +HBny +HBF +HTZ +HSfV +Hcw +HcE +Hga +HHMp +HIg +HMN +HKS +HpG +HGt +HMe +HAz +Hqq +HRF +HfoD +Hfs +HFvP +Hhv +HTn +Hgn +HtV +HLl +HchH +HDWj +HwW +HCm +HGA +HES +HQg +Hdfo +Hcf +HXUn +HLa +HqQ +HBlL +HSe +Hab +HgnA +HBd +HOI +HsP +Hhi +Hcg +HDS +HCy +HaC +Hko +HkP +Hur +HWdDH +Hww +HLG +Hxx +HmO +HvNv +Hel +Hea +HYD +HMH +HzQ +HfF +HJJ +Hnf +HvwD +HHUW +HmAb +HBed +HOV +HmDC +HQp +Hno +HnQd +HJL +HkH +HsJ +HIi +HPcd +HiP +HqD +HMDK +HMk +HnA +HSi +HdAsY +HZvZ +HhC +HIl +HvVuI +HJi +HZl +HeQ +HMn +HvC +HuYS +HKjH +HIv +HPX +HyU +HOx +HJd +HOb +Hjs +Hsd +HYdL +Hkk +Hol +Hdm +HYI +Hwc +HTk +HeA +Hiu +HPE +Hnw +HdUK +HoRz +HZy +HFĘ +HEW +HtF +HxD +HOK +HSM +Hvj +HbF +HYn +HPn +HHC +HQG +HjO +Hej +HxE +HXe +HQBr +HWA +Hlv UDq Ue UV @@ -9104,6 +29093,455 @@ Urfs UrJ UJn ULn +UmO +UiucP +URSS +UIm +UNI +UJh +UPU +UKIC +UFV +ULZ +UqH +UXMLw +USH +UOsT +UIkc +UcR +UzA +Uye +UcD +Uiq +UxQ +Usy +UjB +UhLN +UAM +UbP +UyJ +UAP +UlW +Uvz +UEeK +Uol +Uwd +UVh +Ubu +URN +UVX +UFI +UZEC +UOl +UnA +UpA +UKHz +UQU +UOw +Ugm +UjbF +UQB +UbnB +UVr +UUY +UKR +UAwr +UCi +Ujn +UCF +UvR +UxR +UkcS +UqB +UFU +UĆc +UVe +UFT +UpJ +UtA +UqG +Utg +URk +UUQ +UGi +UYo +UGv +USw +UBY +UmS +URM +UJFc +UKC +ULG +UvN +UPD +UMX +UDP +Unc +UĄ +UgQ +UZN +UVw +UPt +UoaF +UHu +UoA +Uqx +UUUUUy +UfY +UTb +UBS +UWi +UfL +UAa +UPtH +Uop +UPx +UWd +UaJS +Uck +UZX +Ubl +Udx +Umm +USI +Umhs +UeY +Uxs +UUUUUX +UTbZ +UWu +UĄk +UuK +UNV +UAQ +UJu +ULM +Ufj +UTa +UUw +UwS +UMG +UaB +Uujfbj +UKi +UMV +UTZbH +UJrXF +USL +UqP +UXw +UDorj +UzUgT +UFMR +UoZ +Uvl +UJCjc +UwC +UHX +Uwy +UTq +UrM +UgH +Uib +UGq +UrtI +UFF +UxP +Uiv +Unk +UkS +Uau +URt +Uqr +URK +UoQ +UcJ +UPf +UIc +UhEO +UWJ +UkmvQ +UOc +UfLE +UEPl +UFql +UŃ +UdZ +UNWI +UNZ +Unt +UEe +Uö +Udz +Ugr +URu +UVW +UgD +UbJ +UdyJ +UryG +UTf +UYJ +UVx +UXt +UyC +ULk +UWs +Ubn +UMw +UmH +UCJ +URB +UŻp +UBP +UpJk +UKo +UfP +UBb +UNJ +UyY +Uzjf +Urr +UWRo +UTD +UJj +Uyi +UmQ +UGnm +URx +UYt +UwO +Ump +UNG +UfA +Uft +Ucp +UPH +UNHP +UhE +Uwk +Uuf +UeD +ULHK +UWK +Uzh +UPen +UiH +UOo +UZT +UgZ +Uvj +UlXQ +Uih +UnY +UQO +UFApT +UcN +UDh +UNXHN +ULoK +UoXc +UCRK +UNq +UaYa +UxE +UDk +UmA +USV +UOJ +Uqpt +UEo +UHB +USYth +UDG +UdK +UiEw +UvG +USj +Uma +Ubr +UTT +Ucc +UVOH +UtE +UBo +UFh +UjH +Uuj +UxVZ +UJe +UaBl +UyhM +UGe +UdU +UgP +UPPj +Uwo +UdsZ +UcK +UwU +UjHRs +UQK +UOSw +UKRm +Ugs +Usa +UHYG +UYX +UWDM +Uxw +UHx +UTU +UNi +Uzit +UBM +UdH +UHr +UFP +UHzI +UrP +UJf +UUc +Uwv +UOG +Uzy +UUW +UfX +Uś +UŹ +UuIJpi +UWq +UGp +UQy +UNs +UVxz +UGa +Udr +UPPs +UxI +Ulc +UIS +Utv +UfQ +UzZ +UxVV +Uoq +UhM +UYjF +Ukw +UOai +UByQ +Ujd +UpVc +Uga +UEIs +UIL +UwGk +UAD +Uke +Uuy +Upt +UxJ +UZLX +UNv +UHYD +UDl +UKQ +UBs +UCX +URP +UQM +UXR +Uaj +UGm +UiG +UQI +UEw +UqmB +UKG +UCb +UOMR +UkC +UOQK +UxD +UONY +Usw +Uhk +UDD +Uxf +UPX +UPR +UoT +UMS +UXe +UBJ +Uku +UHf +Udn +Udf +UdM +UjT +UfC +Ukh +Uyv +UFM +UZL +UfiW +UHbz +UQWE +UpU +UQV +UWDOMUP +UbT +UtF +UWz +UnI +Ujw +UEa +UOTGTKTCTM +UhB +UxO +UaRk +UEU +Ucv +UdSo +Uuz +UEf +UHy +UVq +UMH +Upc +UtK +Uhe +UCD +UnW +UPe +UsD +UUMUUTEETTTDEDDt +UHa +UkO +UvS +UGN +UOR +UTw +UQo +UbR +UJCOJP +UEI +Upjz +UBB +UVz +UDvL +UEui +UCj +Uł +UoK +UGB +UZe +URU +UsM +UPd yr yukC yF @@ -9296,6 +29734,486 @@ yug yTH yfRc ykfQ +yTcN +yaG +yTzp +yOB +yTK +yBj +yAe +ykv +yii +yXv +ywv +ynV +yvA +yVP +yOp +yKx +yTz +ygF +ycIU +yLbw +ypk +yAr +yWJ +yhS +yrN +yBA +yhI +yprF +yYZ +ygy +ylM +yxw +yST +yJS +yDMqY +ycG +yoK +ypw +yFZ +yAP +ySV +yUp +ytD +ylw +yEKp +yLP +yvp +yLe +yfV +yNV +ysw +yzU +yvi +ybq +ydC +ypp +yIF +yGV +yOn +yUO +yOe +ykq +yyy +yKL +yhH +yFW +yHf +yYmz +yTo +ynb +ylE +yAW +yDI +yHQm +yLS +yaX +ylq +yCd +yIv +yaLE +ypC +yNk +yyQ +yuY +ywW +yxb +yIaj +yLU +yXx +yhv +ykT +yljh +yUR +yYR +ybs +yEz +yGm +yzry +yAZ +yIs +ymzB +yUL +yBGW +yyK +yaO +yzl +ykh +yON +ynd +ytP +ykAu +yrH +yOt +yao +ypQ +yvlO +ykK +ylB +yAn +yHrUiZ +yCp +ysO +ybE +yCce +yZpUmg +yYG +yqA +yeG +yqr +yIf +yhR +yyw +yAX +yYMB +ydy +yVG +yZAi +ycD +yEa +yUv +yyY +yyg +yQtI +ygV +yfM +yWs +yko +yzT +yplYv +yzRC +yiI +yMtW +yhf +yDy +yEy +yLLP +yewc +yiK +yzF +ysXO +yFe +yaT +yBxE +yqM +yHz +yho +yUJ +yul +ygO +yId +yeB +yHY +yxd +ylF +yNu +yLiEf +yRtn +ysi +yRp +yJL +ykR +yeI +ybl +yVI +yUA +ytb +yEY +yMgKr +yRnl +ybU +ySt +yUk +yyj +ymU +yAT +yjK +yuT +yes +yoa +yLbp +yPe +yyU +yrkv +ypDL +yTq +ytC +yea +yPW +yPX +yÜ +yin +yOS +yMu +yXW +ysZo +yOk +yxk +yUjR +yaY +yCB +yUx +yVOGi +yxT +yć +yaI +ynSs +ykmi +ytIH +yZt +ySf +yyH +yLK +yfLL +yTL +ykM +yHy +yMQ +ywA +yCrj +ybb +yRV +yRRw +ylP +yqrf +yIV +yKAc +ykG +yNe +ySN +yoqaB +yHL +yVD +yNL +ygd +yuD +yLC +ySS +ylI +yDa +ypz +yWN +yqda +yIy +ydBj +ystn +yQjt +ylp +yoz +yMv +yIO +yNG +yep +yQq +yQj +yAo +yjj +ymw +yeE +yADs +ymf +yGX +yow +yXc +yAPd +yeBf +yZw +yHr +yli +yVB +ySp +yQw +yrpy +ycq +yqEP +yHQ +yLgV +yte +yiq +ymr +yCw +yEb +ygJs +yhb +yoe +yERX +yrKXU +yWj +ytQ +ygfg +yCR +yEaEa +yqw +yYwv +yoA +ykru +yhg +yHl +yxI +yuo +yeA +yIb +yaL +yCx +yJjV +yLp +yVfr +yRJC +yFY +yrl +yWw +yfg +yTCtgT +yZI +ykm +yGG +yBV +yPu +ynA +yGU +yGB +yph +yWBVl +ymnW +yzxZ +yCl +yNWdXd +yZj +yWg +ypon +yzV +yaPIr +ypBe +ysg +yiM +yAL +yTwN +yLRYB +yRM +yqm +yZk +yFw +yck +ylK +ypT +yJD +yIS +yRd +yQbD +yLn +yKc +yrX +yKz +yKy +yXOG +yXo +yTnlCx +ygjk +yLH +ydd +yBKz +yNJ +yIe +ygS +yIY +ydWr +ysY +yFT +yQs +ynpt +yLM +yyuMv +ygx +yPy +yKs +yuk +yzu +ypU +yub +yfP +ysL +yWLC +yQgIqz +yHm +ySw +yWA +yOyw +yMy +yUKQf +yEq +yBb +yvu +yfH +ymm +yVQ +yGu +yś +ytt +yZYo +ypM +yGp +yHe +yrt +yile +ydw +yci +yQW +yGJxnB +yll +yYnK +yejyU +yMs +ypAk +yń +ylk +ynO +yDf +ySSe +yNc +yKq +ythf +yPr +yLW +yvR +yOE +ygW +yKW +you +yIh +ylV +ysP +yHgI +ywoi +ysFY +yFnu +ylkpm +yxf +ywf +yof +yDPJ +ydW +yfy +yez +yrze +yol +yVi +yuQ +yDe +yQY +ykE +yANi +yrM +yde +yzz +yrr +yBE +yJx +yNn +yJXR +ydK +yyUV Zmo ZS ZW @@ -9501,6 +30419,464 @@ ZUz Zqw ZEq ZPUQKC +Założenia +Zsx +ZRPa +ZQEz +ZAd +ZoE +Zxo +ZJTIAV +ZTS +ZŃ +ZcGvx +ZQR +ZLo +ZTL +ZcQZF +ZRc +ZNs +ZoJ +ZvO +ZEA +ZFm +ZVK +ZCS +ZNl +ZrpN +Zcj +ZYD +ZXhF +Zjak +ZMn +Zxf +Zbb +ZESp +ZLTy +ZRh +ZmG +ZVG +ZMA +ZJg +ZJsqH +Zku +ZEnca +ZuT +ZZE +ZkR +ZOc +ZfF +ZAXH +ZTyA +ZUK +ZzD +Zze +ZOw +ZNZ +ZXS +ZVj +ZEp +ZFYp +ZvaW +ZMS +ZsgG +ZQH +Zxmj +ZOJWA +ZJn +ZUv +ZLJ +ZBO +ZNh +ZgK +ZZR +Zqb +ZqU +ZvGF +ZLY +ZQt +ZaA +ZgZ +ZTK +ZxWG +Zjb +ZIw +Zwns +Zcnv +ZqTwq +ZCk +ZcT +ZAj +Zyn +ZxY +Znf +ZDb +Zbj +ZQu +ZYG +ZLU +Zgl +ZnH +ZrN +Zek +Zbs +ZIa +ZAY +Zzf +Zbh +ZsM +ZiH +ZZc +ZFl +Zyq +ZJtr +ZGx +Zth +Zmq +ZlP +Zsr +ZyS +ZXk +ZGe +ZMw +Znd +ZRX +ZDY +Zff +ZACM +Zmh +ZiW +Zsw +Zei +ZVT +Zbi +ZIN +ZAe +ZeWm +ZZo +Zko +ZdO +Zoe +ZYw +Ztr +ZJDz +ZcL +ZpM +Zls +Zjc +ZyLx +ZIV +Ztm +ZYv +ZWI +ZoI +ZJL +ZMt +ZMK +ZnG +ZuR +ZxO +Zgn +Zop +ZYvclM +Zfo +ZXj +ZxQ +ZhE +Zsa +ZvhE +ZDS +ZbBy +ZfeuH +ZZd +ZTk +ZbR +ZeS +Ztl +ZÓ +ZyI +ZkF +ZCLJ +Znz +ZCn +ZYz +ZCM +ZfSY +ZZw +Zfh +ZąK +ZJc +ZZU +ZSdi +Zsn +ZGV +Zjyi +ZuB +Zpl +Zch +ZMLo +ZHG +Ztq +Zho +ZjT +ZmO +ZRg +ZpSo +ZBQ +ZYj +ZaK +Zms +ZzL +Zyo +ZTqE +ZmY +ZOMS +ZRgb +Zkp +ZPz +Zne +ZdL +ZQU +ZEx +ZOG +ZiN +ZDr +ZXB +ZiP +ZLI +ZbS +ZXP +ZCL +ZzI +Zeo +ZgCm +Zzo +ZvI +ZOj +Zqp +ZCN +ZxD +ZWD +ZmBF +Zyl +ZKLE +ZHByKY +ZFLl +ZdD +ZdW +ZHd +ZEb +ZJq +Zel +ZrDw +ZWh +ZeO +ZcOmxk +Zgaw +ZoU +ZHx +ZOJ +Zif +Zjg +ZVZ +ZĘ +ZYq +ZEw +Zus +ZQw +ZQq +ZCI +ZfwvD +ZNU +ZvU +ZIr +ZJjo +Ztv +ZPbI +ZiG +Zqh +ZFOw +ZVFT +ZgX +ZREf +ZuD +ZqI +ZoOY +ZKW +ZNcV +ZhZ +ZWFne +ZvS +ZPpOJ +ZyG +ZoF +ZiO +ZXg +ZLB +ZUx +ZjB +ZaJ +ZLv +ZWn +ZqD +ZRP +ZYX +ZKK +Zwk +ZAV +Zsj +ZFcH +ZQUu +ZVd +ZBn +ZGc +ZpX +ZUG +ZnZ +ZuI +ZUP +ZnS +ZHs +ZUi +ZAR +ZbV +Zyp +ZSRe +Zxqx +ZbM +ZbN +ZcjRF +ZgcrMgHb +ZBo +ZWb +ZtT +ZNqO +ZwN +ZBC +ZIR +ZSy +ZDR +Zeb +ZLh +ZtK +ZWQ +ZAf +ZTh +ZFUC +ZlUz +ZCwA +ZIgk +ZOg +ZzA +ZCg +ZpL +ZUr +ZBu +ZjuG +Zla +ZMc +Zzu +ZiwG +ZDk +Zcg +ZIoU +ZavF +Zgj +ZzG +ZHrxIJT +ZCid +Zvg +ZXH +ZcW +ZWJZt +ZnM +ZHz +Zbo +ZEn +ZuOLN +Zlt +ZzR +ZrK +ZxH +ZrHUg +ZEk +ZZm +Zxz +ZcR +ZNQ +ZPxx +Zom +ZOo +ZvZ +ZjS +ZWy +ZWE +ZRS +ZSQ +ZWS +Ztx +ZEvF +ZtI +ZAO +ZlZK +ZlZ +ZOk +ZgM +Zcl +ZaL +Zmx +Zed +ZxM +ZAYr +ZNy +ZCY +ZvM +Zji +ZgB +Zqs +ZgxY +ZLf +Zrd +ZSa +ZcZ +ZNq +ZQK +ZSS +Zgm +Zjd +ZRy +Zwn +ZQk +ZJI +Zxu +ZZQ +ZOwB +ZoBJ +ZaV +Zqzq +ZRu +ZZZ +ZLL +Ztc +ZvKF +ZqP +Zbadać +Załączniki +ZuU +ZGN +ZDw +ZCQ +ZDU +ZSc +ZbJ +ZmR +ZMq +Zpt +ZCbm +Zxn +ZJs +ZkM +ZpG mD ma mj @@ -9706,6 +31082,491 @@ mZph man mcW mGn +mwa +mFb +mMi +muRA +mul +metryka +można +mHB +mqRg +mmD +mrM +mZl +mUj +mQn +mkw +mAT +mgV +meR +mTK +mOx +mqb +mNxm +mOp +mzl +mSfY +mfC +mBY +mfs +mSg +moB +mwC +mRr +mjPB +mtl +mMTL +mZw +meQ +mUW +mel +mwZJ +mGyIV +myx +meU +mGZj +mFPE +mpl +mts +mjg +mVV +mhrm +mcB +mNA +mak +mIDuPIu +mlPy +mMz +mDj +muWJ +mLRE +mPH +muo +mOV +mMm +muY +mVNo +mNzT +mnB +mqZ +mqc +mZR +mzy +mLt +mmn +mbH +mWh +mTD +mBJ +maP +mMy +msC +mDu +mCj +mUN +mBq +mnj +mYa +mij +moy +mRK +mRS +mrJ +miP +mKS +mIKf +mYp +mRg +mrE +mtd +mCO +mCYK +mRP +meH +mQl +mYI +msDk +mMloC +mWi +mSb +mfy +mZb +mOu +mhX +mrs +muzrw +mAQ +mds +mwd +mbCX +mto +mMj +mAf +mhG +mhF +mwv +mtB +mAY +mpQ +mOz +mkt +mseT +mMM +maR +mSs +mSx +mwzF +mBC +mMU +mGPc +mLW +mJQ +mvj +mfR +mLO +mZO +mcE +mzb +moY +mFy +mkF +mhVg +mbh +meB +mvQ +mqJ +mCu +mlt +mej +mKy +mnE +mgz +mAz +mGL +mlrl +mfx +mjcc +mKU +mLU +mwe +mRw +mMW +mpP +mTE +mEX +mlQ +mDcSv +mYxu +mDO +mKP +myb +mSL +mEB +msE +mDk +mBYv +mMn +mwi +mrlX +mdkD +mZfo +mVEG +mGU +mXT +mgWj +mtV +mNf +mko +mso +mKh +mCQ +mrV +mnA +mIYM +mfY +mXZ +mRE +mEs +mtv +mbs +mKyx +mydg +mdR +mlN +mii +mkb +mVE +mMH +mGY +mAp +mho +mpj +mmP +mrI +mqMZ +moI +mhp +mTS +mfv +mHF +myV +mOc +miT +mGi +mnru +mcO +mmd +mOqR +msA +mLk +mpX +mJrLdq +mHE +mbf +mKnE +mCE +miR +mDZ +mHy +mXy +mTI +mZA +mtb +mMt +mYZ +mtTh +mFq +mYL +mkfW +mfP +mFX +mOt +mjt +moU +mXRL +min +mHs +mcX +mId +mfq +mQD +mIi +mź +mWb +mFim +mlkm +mvqE +mBx +mkB +mPI +mQH +mji +mOmSPL +mIB +mLXf +mHr +mHm +mmx +mü +myT +msQ +mWf +mac +mfow +mXQ +mhZ +mrD +moH +mbLM +mXXU +mUO +mÖ +mOC +mLZ +mtA +mup +mwmO +mtfL +maaH +mFwNV +mbin +mMp +mqNW +mRa +mwmn +mhNv +mpL +mbO +mAXc +mCY +mPT +mXU +mtqT +mbj +mĆ +mCw +mwI +mmf +mHLHp +mxj +mMr +mIu +mvM +mQK +mes +met +mvh +mlf +mbp +mjyd +mZu +muN +meX +mIVW +mMG +mGj +mVsk +mNK +mEH +mLN +mDx +mVjqf +mgNa +mXg +mox +mUZ +mNh +mGw +mKM +mis +mWY +mvL +mEG +mdE +mPAv +mNb +mfp +maQ +mVK +mdNho +mKv +mgsb +mAW +miK +mgE +moL +mJM +mPl +mTz +mda +mGx +mNp +mDAQM +mbS +mJt +myd +mOf +mNW +mixW +mSuy +mmX +mJJ +mkUs +mIHo +mvn +mDT +mjlA +mWD +mmq +mVy +mNP +mBR +myc +mnd +mXC +mcr +msh +mhbs +msp +mmCi +mXxQ +myZ +mZh +mdAk +mhd +mwN +mTJ +mET +mmMEc +mfl +mLr +mDy +mtF +mNO +mLn +mMq +mmo +mSl +mż +mJff +mvi +mWd +mew +muF +mwk +mwy +mHAY +mPLB +mRILLV +mXt +mbQ +mMD +mUr +mxo +mpWpo +mjBpz +mAN +mojOO +mAs +mFr +myeQ +mzhz +mhhj +mSa +mGb +mhpe +mxa +mDd +maC +mBv +mhW +mSn +mgD +mIO +mTh +meBM +mPJu +mpT +mDG +mWj +mDY +mkJT +mFk +mdp +mdr +mGR +mIUk +monotoniczność +monotoniczny +mXa +mrX +mZeP +mDp +mym +mnGh +mZg +mGz nD nF nZ @@ -9933,6 +31794,453 @@ njk nJy nMYk nfX +nxj +ntvp +nTI +nVf +nav +noL +nSd +noH +nZnz +nTvkF +nmH +ntQ +nKH +ntu +nCa +nHR +nku +nwS +nqi +nHD +nOS +nLg +noYnfN +naH +nyi +nIy +nUi +nTUO +nJivD +nIF +nRB +nGt +nkq +nKV +nrc +ntvj +nijip +njV +npr +njw +nIx +nQH +nox +nRX +nOZ +ndę +noS +nzQ +nKu +nMN +nrH +njM +nFsU +nRp +nBL +nxIO +nqf +nXm +nee +ngN +nEP +nqO +nTe +nAVl +nZG +npUP +nYX +nkC +ntP +nVX +ndYT +nPB +nRcX +nJhH +nMf +nNE +noX +nmr +nzh +nDi +nVMzmd +nFkWJ +nhz +nLu +nJx +nBo +niQL +nGzp +nda +npm +nPtIO +nMSi +nHy +nGK +nUI +naud +nwT +nbe +nPK +niS +nPg +nUW +nLJ +nOP +nWB +nlZ +nRCZ +nkoN +nSY +nfM +nUO +nEV +nvbQ +nWh +nNmk +nGhg +nlc +nzR +nvrR +nrBpW +nDs +nUR +nGZ +njG +ncR +nJm +nsE +njQ +nfw +nJcc +ncux +nuju +nrhk +nGm +nglG +nuR +nOK +nLt +nib +nPU +nXVo +nrn +nht +nVij +nń +nlUF +nVA +njE +nuVY +nRi +nMT +nja +nVI +niO +ngC +nzsW +nzy +nUC +nBaW +nnsq +npZ +neu +nlu +nEqLY +nlF +nFI +nHNN +nRDW +nPrh +nrI +nmo +nFA +nai +nGW +nzk +ntZ +nEfK +ncoQRM +nbJ +nPdp +ngW +ngy +nXF +nci +nAX +nIwJ +nvr +nwR +nZd +nfH +nVN +nwg +nFV +nwcL +naFv +nCn +nVS +nwO +nVi +nln +nTF +nCOHL +nkm +nmC +nJCS +nko +nLA +nPX +nJT +nÖ +nHo +nnj +nHx +nEVV +nnfi +nSb +nMxK +ntH +nub +nHs +nQF +nwOq +ndj +nms +nqTC +nzm +nfd +nYn +nXuI +nTZ +nEa +nSW +niZ +nYr +nog +nrAj +nQh +nxN +nld +nAG +nnM +nMYPq +nRu +nuy +nOb +nau +nHc +nSm +nAh +nhp +nrAa +nsd +nJM +nGD +nIN +njo +nsp +nCWpE +nYDr +nVb +nDJs +nTU +nyz +nla +nDo +nTw +nTa +nEU +nQMR +nMS +nZt +nXy +njSG +nJi +nDz +now +nAgg +nPq +neiyB +nFj +nxS +nFH +nsv +nQS +nzra +njdO +nnb +nrg +nxO +nKCD +nSE +ndI +ntR +nRo +ntO +nDJ +nZzm +nlxz +nlO +nNZO +nvS +nzK +ndMZ +nchm +nDX +nVvp +nXt +nÜD +nNk +nvi +nME +nkRC +nSi +nfN +nZr +nIw +nhh +nIR +nFT +naL +niX +nKG +nJs +njp +npP +nß +nyM +nZw +nWJ +neG +nPn +njI +nnJ +nJmU +nIo +nTD +nOj +nuM +nkk +nDcb +nCvo +nwH +nQSV +nONX +ngI +nEj +nMD +npn +nbR +nPQ +njc +nlV +nkO +ntb +npa +nza +nADt +noq +npyt +nDf +nDt +nLH +nwVNl +nLs +nś +nYf +nJN +nnr +ndJ +nsmDK +nMZ +nrK +nWH +naX +ncLeq +nHh +nQJ +nyt +nKi +nsjF +nKBe +nRv +nOJ +nbl +naY +naO +nzo +nŚ +nZM +nYa +nOi +nDDL +nFy +nzE +nMn +nAg +nIZ +nwp +nzt +nKo +nrf +nio +nNvf +nVLX +nRy +nEK +nqw +ncw +nlX +nyln +nuJ +nIm +ndM +nzA +nnqq +nIn +nUA +nDIv +nUw +nar +njRjB +nlPF +nGO +ntOd +nDO +nIE +nnAMO +nnX +nPo +nNq +none +nzO +nFi +nvd +nlw +niemonotoniczny +nKw +nxZ +nqk +nxV +nEfH +nbn +nEm +ncF +nbk +ntC +nEY gNx gHI gri @@ -10130,6 +32438,475 @@ gmaila gTZb grK gqgi +gsD +gMR +gHJ +gdy +gLgLgdP +gUC +glEwb +grV +gon +gWGCe +gWul +gPt +gvv +gkW +gJj +gEsAK +gUx +gŻ +gcAlv +gyY +ghZC +gmwC +gTiZ +gqU +gTHi +gFJJ +gkJ +ggs +gmyX +gqo +gWL +glY +gaL +goZY +gyJ +gyAa +gPZUBN +grobWf +gKeL +gxj +gnwk +gEms +grjlk +gtEM +gUq +gZQm +gmJ +gyVD +gpk +gxB +gca +gIFR +gEe +gOq +gFTm +gbg +gß +gKa +gpi +gjV +gmL +gEt +gAI +grT +gpJ +gxz +gwN +gdT +gFK +gcm +gck +gXDXD +gEyI +gAEG +gGuk +gJl +gQC +gwX +gRv +giG +gWs +gjI +gGzt +ggD +gbk +geO +gFhU +gsm +gmX +gGo +gü +gVg +gCł +gQT +gFd +gIWz +gECL +gbp +gCG +guO +gbZi +gaG +gVi +gbI +gaxv +gJv +gWI +gXg +ggz +gIe +gjy +gkm +gKI +gFnM +gATz +gGh +gDGwfA +gyq +gDn +gSyr +gJSrW +gtU +gqr +gTg +gju +gRL +gqW +gHT +gOC +gSW +gFx +gax +gvD +gvg +geS +gHxl +gKH +gHB +gkD +gDA +gFl +gfJ +gafZ +gmx +gRc +gQwQ +gmM +grx +ghBP +grE +gdS +glgh +gli +gil +gOV +gBi +gPG +giN +gLJ +gox +gtlE +gSm +glCn +gKR +gxBCFbG +gTr +gjpiE +gLT +gXU +gWFW +guK +gGQ +gha +gPw +gRX +gCh +gcG +gjs +guP +gut +gwL +gbe +gNH +gqyEV +grr +gtz +gnI +gGIb +gMW +gSl +gĘ +glk +geR +gjfm +gTP +gwY +gXA +gWPv +gFj +gxMk +gAWNp +gzR +gkP +gjh +gGr +gmR +gYJXG +ggy +gPD +gDv +gCt +glBI +gLC +gAK +ghh +gEvi +gBw +gWm +gVl +gaPM +gtZ +gOa +gNb +ghF +gxr +gGy +gqk +gMF +gpN +gzv +gSG +gYI +gRm +gjx +gwer +gJn +gqwtZ +gUD +gsgi +gMQT +gbc +gib +gWK +gru +gRw +gih +gZH +gjk +gOm +gNf +guT +gSK +gYuT +guj +gsc +glA +gruR +gsp +gXw +gYyVh +gIw +gCR +gxP +gOld +gtd +gJm +gPk +gNqn +gdN +gRenl +gaHi +ghU +gHd +gAGZC +gwb +gxb +guhL +gjM +gek +gQe +ggCs +gPV +ggTx +gZU +giE +gis +gQV +gYU +gKiB +gAJ +gPP +gKJ +gDb +gIj +gRU +gHh +gkO +gJy +gVj +gSn +gpv +gpg +gBu +gyvL +gUE +gymt +gIc +gfC +gvF +gjL +gfU +gCL +gtu +gnZ +gDt +gGe +gIv +gBK +gzY +gMV +gwR +gYp +gRQ +gHq +gJe +gaq +gfi +gja +gsNa +gIAO +gźk +gBZ +grwv +gGz +gIB +gob +gVF +gwh +gCa +ggg +gsg +gż +gTd +gPM +gSE +gHl +gNTI +gCY +gUI +gam +git +geZ +gEU +gMfB +gEKk +gxda +gWa +gYA +gnU +gSa +gly +gBa +gyw +gVZMK +gBCB +ghK +gus +gxg +gPL +gYi +gJS +gRP +gZg +gGB +gvz +gDe +gYNL +guG +gJb +gBs +gDs +gź +gwQ +gqLd +gTz +gws +gEI +gmfI +giI +gcam +gyix +gdi +gIh +gUw +gEX +goX +gUno +gtF +gGc +gIs +gKn +geU +gbF +gZF +gUZ +goJa +grf +gmy +glF +gxF +gky +gzj +gZY +gEG +gOo +gWp +gwbrb +gMj +grQZ +gfh +gAHy +glC +gvY +gVQ +gnmLO +gyZ +gEHu +gWv +gbO +gum +gDZw +gXj +ghN +ggv +gag +gJt +gcH +gAKA +gZf +gEk +grFC +gBtJG +gDh +gUg +gfwo +gmkSK +gTTq +gmY +gfm +gÜg +gCD +gAnW +gbM +gvT +giA +gpI +gPc +gqK +gBg +gnV +gaM +gYt +gRGw +gnK +greaterequal +gbhS +gcw +gTY +gfy kXk kQ kx @@ -10338,12 +33115,485 @@ kTj kOT klh kWj +kLN +kaM +kwW +która +kwD +kEU +kAM +kiA +kMtxU +kavE +kUg +krN +kUK +kfwk +kZK +khD +kpvY +klT +krs +kAr +kvQ +kCi +kGD +kGV +kcl +kHuc +kmg +kVV +kgQ +koL +kWcS +kpq +kcN +knr +kUBZ +kHh +klI +klv +kLb +ksj +kODK +kHPf +kUT +kqj +khc +kZX +kXT +kLa +kqn +kiL +kkE +kHZ +kMN +kQV +kmH +kNg +kph +kQi +kAbP +kWJ +kMQ +klH +khF +kFV +kxl +krP +kmq +kKw +ktl +kUL +kfF +kCWPM +kYs +kŚ +kqk +kfd +kwx +kGf +kja +kqPc +kup +kxN +kPq +kpA +kwE +kfQ +kMg +kYI +kLG +koF +kFA +kVeM +kth +kxK +kfS +kofCE +krQ +kwF +kEm +kDjC +kam +kaL +kjw +kfx +kjE +kLt +kip +khd +kBO +kOZ +kIu +kgfK +ktOf +kXw +klIX +kAd +khmK +kxUA +kOb +kJT +kÜ +kPZ +kom +kmf +kfA +kuHs +kje +keL +kEpo +kOjQ +kgJ +kQk +klC +kTO +kAP +kyP +kFl +kpd +kpV +kvA +kRjttqs +krj +kXE +kHn +kKr +kkAA +kIK +kib +kgW +kLS +kfk +kXa +kQO +kbA +klA +kMP +klIv +ktr +kvy +kln +kQmx +kwp +keh +kDA +kBRvX +kPOnbW +kgP +kit +kTJ +kOE +kdJ +kRD +kFd +kxL +kZY +kZU +kRn +kPEG +kew +kAx +kiR +kFa +kTM +kPns +kkZ +khVz +kcX +kpUa +kZb +kzz +ktos +kXo +kTa +kvk +kmb +kuh +kOf +kfB +kiX +kqS +kemJ +kjcfpJ +kBw +kvwjA +khsJ +kuY +ktL +kHI +kLkU +kwd +kxt +kiH +krv +kVv +kzy +kXu +kTE +kGm +kXs +kXP +kGK +kvQBV +kPx +kxh +kxv +kdy +kAZ +kXA +kaN +kisG +kHy +krd +kCp +kga +kcd +krE +kcV +kyj +kSQ +ksw +krr +kkIpe +kpw +kQJP +kVW +krz +keMG +kxm +kkA +kQp +kSpau +kPpt +kum +kwa +krf +kFx +kUj +kjH +kVG +kgr +kNG +kWU +kEog +kgA +kNf +kDE +kfP +kbu +kVe +kSp +kCL +kuL +kpD +kGr +kkI +kGY +kPd +kzdnO +kBCA +kWn +kpP +kaTvh +krk +kEGh +kmX +kZc +kBv +kpl +kbm +kBY +kDC +kEvEW +kuPZ +kQj +kua +kgo +kcx +kfnC +kxa +kCÄ +kXWn +kdU +kek +kIT +kOV +khz +kJC +kXJ +kvN +kxb +kJw +kff +kvlF +kXLM +kfY +knn +kwV +kmL +kYMX +klL +kAB +ktD +kUt +kNy +kqF +kDN +kfi +kmk +kae +kFH +kLdu +kTH +kCQ +keY +kwR +kCYn +kbR +kYm +kwj +kgE +kPSY +kyJ +ksh +kBPi +kGw +koq +kYt +kTs +kOu +ksF +kRiB +kRU +kIS +kxyN +kOSy +kmd +kZm +ksi +kXi +krT +kijg +kVa +keEE +kyi +kmh +kov +kuX +kNiU +kbTg +kxr +kKU +kYyr +ktN +kGZrF +kpMC +kkR +kAs +kbY +kodC +kJCU +kiu +kLl +kUs +kEbCIJm +kUH +kMG +kjV +kYwOE +kPj +kUS +kEk +kKv +kutX +kUO +kNaJp +kWXo +kac +kFcr +kRa +kOKvx +kYa +knY +koc +kqh +knA +kYDXBh +kCtzz +kyY +kwT +kil +khA +kPK +kwhw +kMXf +kBm +kjG +kUo +kjdi +kVr +kZk +kHg +kCU +klE +kKRK +kaG +kykf +kBq +kVKe +kbr +kNv +kiS +kTR +kpVg +kddAt +kpp +kWlM +klf +kDr +kLIJ +kXI +kZya +knw +kXS +knu +krF +knOa +kLY +koN +knU +kTK +kzwlc +kdjj +kpiT +kuF +kRz +kdm +kjl +kdn +kRV +kbZ +kfM +kWq +kSmOw üx ün ür üp üL üJ +üD +üXi +üKM +üg +üN +üs +üQ +ük +üt +üy hlz hQ hE @@ -10529,6 +33779,483 @@ hscf hoR hqg hskX +hYN +hcmw +hUTE +hMKt +hejk +hwXj +hLK +hPi +hmq +hPt +hRki +hdE +hkO +hIb +hZX +hjh +haO +hDn +hxC +hCQ +hÜ +hOu +hcM +hUEf +hkzC +hpV +hLeX +hPC +hxZ +hJQ +hNxZ +hMn +hWt +hNr +hao +hht +hbŁ +hZK +hDq +hmP +hIh +hfQsiS +hiix +hvv +hFd +hys +hQv +hdT +hLk +hOJ +hph +hft +hgAijW +heX +hmkF +hkt +hUO +hDh +hxc +hKA +hQfa +hce +hAe +hWn +hpF +hYu +hrsc +hpwW +hRZrR +hIO +hKo +hdi +hkS +hJly +hzP +hGZ +hCj +hAfN +hnf +htF +hXA +hzD +hFt +hUR +hBo +hmn +hVz +hSf +hUWc +hhq +htz +htl +hfh +hHj +hKd +hRx +hvC +hmE +hvd +hNX +hYP +hKH +heU +had +hhi +hruX +hBB +hNV +hOz +hqc +hws +hwA +hIs +hef +hDH +hIc +htS +hkY +hOU +hSqj +hLy +hAo +hYDn +hEa +hYD +hlg +hRf +hNw +hMU +hXM +hkf +hzQ +hdS +hoVx +hkL +hZgM +hHi +hsx +hEJ +hpt +hcr +hIE +huV +hmo +hah +hJE +heJ +hEi +hGO +hQu +hAa +hYz +hmEt +hhZ +hrW +hQj +hoQ +hFg +hrg +hTFR +hdG +huxw +huY +hmms +hRn +hLA +hbU +hFJ +hIp +hctt +hKQ +hLqW +hli +hZt +hKs +hrL +hOm +huF +hXj +hSU +hKV +hpq +hnh +hFT +haJ +hgI +hWA +hpg +hzC +hod +hOW +hpHK +hHT +hpE +hHJ +hOxE +hCq +hTh +hDT +hsi +hId +hLO +hoX +hsy +hnR +hCieY +hsN +hNE +hAV +hVT +hXPN +hLB +hSE +hmhH +hIWw +hql +hxW +hqU +hdj +hSk +hhr +hhC +hjy +hMv +hfO +hGU +hHF +hLn +hHf +hVr +hRui +hFS +htcv +hyK +hKk +himI +hqx +hJL +hZA +hhn +hViw +hupfgyz +hgY +hQo +hNtm +hPv +hvrq +hKp +hks +hUT +hMr +hWTB +hDx +ham +hle +hMO +hwe +hRU +hYys +hKRz +hRI +hLD +hyl +hMH +hip +hKn +hqPSc +hCiH +hook +hOM +hFX +hBA +hZT +hxkF +hmM +hhw +hę +hUjq +hpy +hnwf +hCN +hLW +hEy +hWDUH +hEl +hXr +hPs +hnn +hGJh +hUtN +hXuo +hXK +hEt +hqw +hiXt +hxEb +hkd +hIWO +hTY +hlB +hCS +hgV +hIl +hof +htk +hVa +hojb +hkB +hnxo +hRg +hrq +hBP +hTj +hzWvV +haD +hdR +hMdj +hCGW +hbZgfK +hPHg +hSe +hNSy +hwk +hrZ +hRM +hye +hdtR +hDqa +hfU +hnkS +hocJ +hhMw +hPCr +hKT +hpK +hto +hkx +hzO +hRG +hmw +hfx +hPB +hXd +hTc +hryD +hxT +hIn +hmy +hCD +hsh +hwB +hRr +hzY +hrDi +hkK +hDj +hxk +hUzj +hsD +hkg +hiz +haY +hvk +hgo +hpG +hJW +hpVX +hgxJ +hvD +hoPh +hpj +hwV +hJyIQ +hmi +hvVLY +hdv +hlf +hmf +hbM +hQSn +hDy +haZ +hSh +hiP +hNd +hLN +hYG +heQJ +hgw +hwv +hWh +hohz +hMD +htu +hNZ +hQW +hfn +hzqyp +hPx +hlD +hEe +hUV +hymJ +hEB +hXu +hym +hMb +hwT +hkcS +hpr +hGP +hzy +hĆ +hna +hvK +hgC +hRR +hnH +hsc +hwh +hQVAV +hNcW +hTd +hHI +hRD +hcW +hPZ +htSkvG +hou +hzW +hkv +hfG +hXq +hNY +hNgl +hcx +hktwto +hpl +hWY +hUH +hjJ +huR +hMzB +hqH +hCIh +hDZ +hSm +hGi +hOh +hISX +hyZ +hSA +hBl +hqcC +hiW +hHWu +hPG +hBq +hyY +hQH +height +hue +hRb +hoZ +hGI +hmc +hKt +hZbT +hJn +hlLW +hdI +hÖ +hih +hqK +htf +hXF +htn zC zZ zZes @@ -10748,81 +34475,748 @@ ztx zIX zNV zQD +zeT +zOI +zpQ +zfn +zQgN +zFP +zbiorze +zVB +ziD +zJb +zPp +zZx +zOnb +zFI +zta +zgz +zÄ +zVDL +zVD +ziq +zOau +zfK +zoG +zqH +zQf +zTI +zXc +zĘ +zUP +zcH +zuu +zaF +zLX +zuA +zmh +zgk +zFA +zMDC +zme +zkS +zDi +zAa +zPk +zJK +zVl +zvi +zRhp +zAgI +zUW +zkt +zXXiaO +zeY +zet +zuF +zVf +zfZ +znw +zQwah +ztr +zfU +zpO +zXb +zIdP +zLN +zNy +zGx +zBqP +zNb +zmj +zMpP +zwU +zJHO +zJFE +zhC +zyb +zAHa +zxS +zVq +zRO +zvJEP +zNQ +zOOW +zyC +zrkXf +zsq +zgx +zODS +zYu +zZs +zRo +zIg +zka +zTw +zHJ +zGk +zknw +zpo +zzq +zfB +zwP +zhIZ +zJU +zpRG +zYP +zkM +zfG +zlD +zcy +zYE +zNs +zGraO +zIQ +zŹb +ztT +zmQ +zXQ +zNdJ +zkU +zqK +zhv +zFr +zAC +zVIF +zCZ +zmEi +zvN +zMe +znY +zvv +zbz +zhg +znV +zWr +zgcJ +ztiP +ztZ +zOZ +zGZ +zHU +zgb +zpm +zZt +zwhCD +zLXZ +zrP +zTT +zMq +zDL +zHTq +zdt +zyc +zAV +zrl +zYd +zĄ +zII +zgSk +zmt +zpE +zXo +zlO +zCI +zJB +zXxRem +zHx +zLBK +zFVa +zof +zIs +zkq +zOY +zzp +zAr +zBvAM +zgT +zvJ +zHa +zIt +zyo +zCR +zrn +zJZ +zMR +zfA +zWD +ztYS +zWP +zCd +zYD +zma +zhV +zPi +znXDA +zTZ +zat +zYR +zmD +zErw +zDq +zSZ +zyxs +zzz +zsqb +zfkl +zool +zKnj +zfv +zUgo +zgj +zä +zsORV +zzT +zvL +zLY +zhkZ +zdS +zLnp +zQw +zVQ +zHK +zYt +zhLh +zgIo +ztJK +zuKUXXe +zpx +zCh +zck +zGwO +zFj +zmu +zXs +zFV +zFO +zMAN +ztu +zamR +zTE +zCU +zDE +zxsqW +zgH +zeB +zPV +zKu +zmV +zHG +zWn +zcV +zTOgG +ztg +zfa +zKN +ztv +zvF +zXD +zonp +zNx +zKb +zqe +zzX +zNK +zZh +zpGb +zWgcZ +zXd +zpn +zJw +zHp +zYH +zfT +zxE +zTrT +zFS +zLsx +zEZ +zULZv +zri +zdA +zSl +zjs +zAe +zSq +zAB +zbf +zWe +zfp +zHy +zxq +zUU +zxv +zVh +zsP +zEbMEgX +znb +zjr +zkAQ +zDR +zjk +zKE +zRL +zZV +zkQa +zdr +zFu +zzTLm +zTKmm +zQau +zwq +zXl +zInE +zRWV +zEW +zqQa +zmg +zGt +zYY +znI +zOd +zbN +zSN +zxQ +zNX +ziX +zca +zkd +zEu +zyic +zFJ +ztq +zoU +zId +zwh +zRz +zOL +zjV +zbs +zpG +zMD +ztn +zUK +zLt +zovoe +zcJ +zUs +zuL +zjC +zWt +zad +zpZ +zFf +zlN +zAKx +zfbu +zhB +zwo +zWo +zBW +zfV +zmuG +zgf +zuPi +zuc +zzV +zfZj +zQAF +zxg +zfZn +zukKm +zNq +znX +zLXrw +zsii +zhm +zAP +zFX +zHi +zGwx +zxTQ +zzkx +zrg +zRwZ +zNF +zPq +zwQ +zOeKc +zqi +zau +zADPG +zPT +zJY +zTa +zzc +znN +zok +zTlc +zFG +zRNR +zEm +ziE +zFH +zrXR +zPm +zxU +zgQ +zWJ +zOwx +zlg +zPA +zhlS +zJpJq +zWQ +zuj +zJcb +znH +zEF +zYT +znbg +znzn +zzBbIw +ztc +zpY +zyn +zGI +zvM +zQM +zjN +zSp +zja +zVj +zNxc +zjT +zCkX +zBe +zWv +zqB +znd +zLiU +zVn +zQv +zAo +zKAs +zCo +ziA +zsz +zSf +zsviczian +zdp +znaki +zmieniają +zyS +zpF +zzr +zEnf +zYHh +zVk +zCC +zuYX +zsY +zser +zaR +zos +zhO +zrc ÜI Üj ÜX ÜD ÜV +ÜU +Üp +ÜN +Üx +Üs +Üc +ÜOo +ÜZ żv żN żNLn +żg +żA +żY +że +żgO +żt +żnb +żc +żm +żi +żz +żQ +żV Żk ŻX Żs ŻA ŻZ +ŻAE +ŻH +Żo +Żt +ŻN +Żm +Żmw +Żv ńE ńk +ńq +ńSF +ńc +ńsl +ńnA +ńKe +ńP +ńyu Ęm ĘxKi +ĘC +Ęl +Ęj +ĘE +Ęn +ĘP +ĘF +Ęh +Ęb ŁZt Łp Ładunek Łabaj +Łi +Łfe +Łm +Ła Ćwiczenia ĆJ Ćr Ćl +Ćq +ĆG +Ćd +ĆC +ĆXL +ĆV +ĆE +ĆY +ĆbC łBzAi +łrS +łT +łO +łC +łf +łgF +łL +łh +łe +łG Źk Źl +ŹT +ŹA +ŹF +ŹZ +Źq +Źxc +Źm +Źc +Źz +ŹDy +ŹD +ŹRl +ŹH óz óH óVo ófUL óE óh +ór +ód +óX +ós +ób +óe +óL +ól +óx +óS +óB Ód ÓQ ÓX +Ót +Ów +Óq +ÓXn +ÓD +Óz +ÓW +Óg ęH ęP ęe +ęT +ęm +ęY +ęzE +ęw +ęZ śy środku śq średnia +śa +śg +śO +śKo +śT +śb +śR +śI +śQ +śJ ŃI ŃMZo ŃO Ńw Ńb Ńk +Ńp +ŃN +ŃLj +Ńt +Ńh +ŃT +ŃtM +ŃF ßK ßc ßB ßz ßP +ße +ßr +ßu +ßb +ßAR +ßa +ßR +ßj ćJ ćn ćwiczeń ćc +ćQ +ćyE +ćG +ćC äX äc äms +äT +äg +äob +äf +äQ Ąi ĄWUb ĄAb ĄN Ąd +Ąk +Ąbv +ĄQ +ĄZ +ĄD +ĄT +Ąc +ĄY źe źhY +źW +źDjB +źR +źw +źY +źT +źh +źx +źq +źK ÖBq +ÖS +ÖH +ÖjRu +ÖHcJ +Öm +ÖN +ÖX +ÖY +ÖE ÄB ÄV +ÄO +Äz +Äu Śt ŚU Śy +ŚQmb +Śg +Śz +ŚD +Śr +ŚY +Śj +Śm +Śa +Śd +Śeb +Śk öQD öL -ąp \ No newline at end of file +öQ +ös +öBO +öI +öR +öp +öW +öF +öa +öM +ąp +ąW +ąMwE +ąQ +ąiO +ąMCw +ąC +ąbl +ąv +ąc \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/data.json b/.obsidian/plugins/obsidian-excalidraw-plugin/data.json index 6d8954b..cc00d8e 100644 --- a/.obsidian/plugins/obsidian-excalidraw-plugin/data.json +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/data.json @@ -1,9 +1,9 @@ { - "folder": "Excalidraw", + "folder": "!Załączniki/Excalidraw", "embedUseExcalidrawFolder": false, - "templateFilePath": "Excalidraw/Template.excalidraw", - "scriptFolderPath": "Excalidraw/Scripts", - "compress": false, + "templateFilePath": "!Załączniki/Excalidraw/Template.excalidraw", + "scriptFolderPath": "!Załączniki/Excalidraw/Scripts", + "compress": true, "autosave": true, "autosaveInterval": 15000, "drawingFilenamePrefix": "Drawing ", @@ -16,8 +16,8 @@ "previewMatchObsidianTheme": false, "width": "400", "isLeftHanded": false, - "matchTheme": false, - "matchThemeAlways": false, + "matchTheme": true, + "matchThemeAlways": true, "matchThemeTrigger": false, "defaultMode": "normal", "defaultPenMode": "never", @@ -75,7 +75,7 @@ "mdCSS": "", "scriptEngineSettings": {}, "defaultTrayMode": false, - "previousRelease": "1.7.25", + "previousRelease": "1.7.29", "showReleaseNotes": true, "showNewVersionNotification": true, "mathjaxSourceURL": "https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js" diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/main.js b/.obsidian/plugins/obsidian-excalidraw-plugin/main.js index f42830d..d8f26fd 100644 --- a/.obsidian/plugins/obsidian-excalidraw-plugin/main.js +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/main.js @@ -1,5 +1,5 @@ "use strict";var obsidian=require("obsidian");var LZString=function(){function o(o,r){if(!t[o]){t[o]={};for(var n=0;ne;e++){var s=r.charCodeAt(e);n[2*e]=s>>>8,n[2*e+1]=s%256}return n},decompressFromUint8Array:function(o){if(null===o||void 0===o)return i.decompress(o);for(var n=new Array(o.length/2),e=0,t=n.length;t>e;e++)n[e]=256*o[2*e]+o[2*e+1];var s=[];return n.forEach(function(o){s.push(r(o))}),i.decompress(s.join(""))},compressToEncodedURIComponent:function(o){return null==o?"":i._compress(o,6,function(o){return e.charAt(o)})},decompressFromEncodedURIComponent:function(r){return null==r?"":""==r?null:(r=r.replace(/ /g,"+"),i._decompress(r.length,32,function(n){return o(e,r.charAt(n))}))},compress:function(o){return i._compress(o,16,function(o){return r(o)})},_compress:function(o,r,n){if(null==o)return"";var e,t,i,s={},p={},u="",c="",a="",l=2,f=3,h=2,d=[],m=0,v=0;for(i=0;ie;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++),s[c]=f++,a=String(u)}if(""!==a){if(Object.prototype.hasOwnProperty.call(p,a)){if(a.charCodeAt(0)<256){for(e=0;h>e;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++)}for(t=2,e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;for(;;){if(m<<=1,v==r-1){d.push(n(m));break}v++}return d.join("")},decompress:function(o){return null==o?"":""==o?null:i._decompress(o.length,32768,function(r){return o.charCodeAt(r)})},_decompress:function(o,n,e){var t,i,s,p,u,c,a,l,f=[],h=4,d=4,m=3,v="",w=[],A={val:e(0),position:n,index:1};for(i=0;3>i;i+=1)f[i]=i;for(p=0,c=Math.pow(2,2),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(t=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 2:return""}for(f[3]=l,s=l,w.push(l);;){if(A.index>o)return"";for(p=0,c=Math.pow(2,m),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(l=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 2:return w.join("")}if(0==h&&(h=Math.pow(2,m),m++),f[l])v=f[l];else{if(l!==d)return null;v=s+s.charAt(0)}w.push(v),f[d++]=s+v.charAt(0),h--,s=v,0==h&&(h=Math.pow(2,m),m++)}}};return i}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module&&(module.exports=LZString); -const EXCALIDRAW_PACKAGES = "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LkkEhb9aNRCACHrQu1v3WUeLiIY4dfW+4DYHqOb61ChbQtR0LW89rb0xpY6lPVjO+turW771RyABda1cdaR/ppx63ouWa1p063rNbLut13W4Yucj1rWa2o9bfmtUMmsnrXc1uea1FtbZmtkzWiZreAAHL607NabmtUzWrvrcjJtc63YtbIetauWbDiUL1qja2dNb2ut3TWjdrST1pprFU+rrmNY54ovrY81tA61rdb5uttzGjkAPc1r2a34tbPdx9zWk5rfi1sK6k8dbnmtEzWp/rWK1vGwVk9bsOtozW5FrQpstc62ydazWtIXWxK2Wa1sha2ktagetNYWwEAEANo661glz2mtjzWmrrQu1pe0lmga7rRr7WlNrWs1r5a3jNaDutH/WvWTdt1LNk14saPdx/B4+JRYvqP062QtbyetlPW2VreD1uma0jtahS5Ypcha2VHJsr9VSnr16xiFo1Vjcq2qua23Nbi+ttrWogbTc1uGa1TtaGWtGLWsvrU91tra22taM2t2zWkbrYR1vAAD9NbbWtWzWs1rTt1tra3EdayT11cmikca21tX63r9bxmtm/WrNrTv1vba1QdaYOtYnW39rZoNv39XaDaRcFof4hgbfP1pna3/dbFOt3TW9HrRR1u2a3gABdBta/WjfrVv1uza2jdbTBtwzWgDrfM1osG3bgaaT11XW/Lrb61p6a3o9aM2tyHW/wbdr1sR63I9bAAAsgjttaghtW8mlypa3+P73HuDa22tWA2urreb1ug60xDbzBtGg27SLeW2vdwVbqiH+t2vWidrdM1vta0I9bKWtp7W8Zree1sSG2TNbkht0EG1k9TaxsocX9gJX2t53Wj9rSS1up62dNbahtXzW+obY0NsIg1ASqt7Rs/W+wbQ11s6G2Ndb1etVQ28AAKM1uea1EDbG2tJLWpNrSm1tx60xDaJ2ty/W3Frds1qLa3PNaFhtozWogbaJ1pXa2gtbhmt8Q28QbTc1oOG38tb+utHPWggbVP1s3a2/tbAOty3WwzyaS1s6a2edbOmtMw2rNraS1oWG2PNb+mtJA27ZrYm1q2a3dNamutBzWyFrasNtL62NdbgWt9rWjFrWM1pg62NDa6FNLrGjkABx1o7a1xdbumteXWvZras1rWa2ttapht8A28ZrQc1pB60Adb5+tN7W3lrS8Np2a0YdbKWtuLWv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XGntDTFxpnI07aaeqMUGmmcjTIJp8002GaciNM1mn3jTwFp6s02EacAADh0OEaYaNOBGnSjTT5p7Q0xeaYuNNuGmITTWpp3w02Kab0NMbmmpjTwRprk07aaYGNPvGnwAAjxpo00xcafgtNuABPzT2hp7807+abKNP/mnALTwFp3Q058aZeNPgWnnjTkJpic09haa1NOtGnjDT7xpmi01osc8/UdApvDTlhpwAAB3QVhpyI03haZ0NPRGnAjTnxp34054afAADTGmGjTVZp1vUSeAEAAAJ0KGafKNOVGmO495hpy406hae0NMngBDDT5xpjc0046oQtP+mnGzTpQm9Y0xkaetNMkWmOjTTTEi807ZaYuNPxZK4jT+hpuo05Gab1NOdQ7rDTSRpoo0y5aZIPXH6iYLTthp8AAD5ab8tN+0atTTOppry06j5uCNNFmnBLTtlpns03caeHIP/zLgjTSRp/w03haf8tOKcnmzTmhp1s0xdWo5AAIWnNDTVZp6BZVGaYuNNumnzyZhhp3w04VaaAT3KmmUzT7lp0o01laZytPYLKqPpypp2005oafeNNFmnAAAedCxGn/q1Oxplw051aePNMnhHzDT0lp4w06GaYvNNjGnojT4AAQAAMnQfpprq06M6ulNMcWnYTTwVpny0xcaZmtMOcmiEAoppjI0/kaYiNOVGmTDTq4+5U07UacSNONGmWTTIVpi4088afsNPDmnWLTBVpwY0/5ydMMk1Gm6jTjRpsI0wKaYaNM/GmyTT6Kh3K8bdaYOtNcWmTLTxZp8Y05VaakT1EIAITT+hpwS0yWaat5VMWnLLTwNpkCg0QgGCNNfGnSTTuyxtY8XEaZiNNGmnPjTNVpzw0zkaeetMZcm4bTOxp6405MabmhXhGmizTORpr8079adifFLWmVrTa0KtI004aZLNMhWn/zTK1pjL/TjJLEtPaGnJLTg1pmS09oabktMKWmUTTUxplS079actLFrmn4jTiRprc0+4aeeNO2WmfjTDVpi6FdzaY3NNbmnFrTYppl60xCsZAsmpmmnTTqNp600yCaZWtOdcnmrTuhprc05Yac+NNnmmejTku2440XEaZTNO+GnRjTRxp0o0xUaZWtP6RGDjTetpg207hafwtOEWn5jTXJpwS0xZEbzyW62n9bTdRptw03RaayNM1GmNrTehpoZZY7afMNPk2naTTaRpoI05OadJ62nmnnzTWFpj801+ab0NPu2mqzTgW88M05GaYatOW7bgjT0lp8E0zHaYzNPZiaRHJ3Jp4k00naYjNMp2m1Gp3X0/K07habDNNZ2m47TtMK8q0/nafKNOF2mGoT030pi0+TaeHNPXGmKLTlxpuC0+0aeNWN7WnsrTO5p3Q07qabmNPFWmG7TiRpwk0zasfhWU1GmW7T2Zp2u0yYadFNMXGm3jTUtp8aE0QgCrtOTGm7rTcxp4e09aabHtPQ8npTT2pplw063acitNzGmzTT0Rpp00/ntqntPrGmZ7TIVpuc01vaYFT0TajrDTgRp2I04YabcNPWGmTrT2hpx40xkaYatOSp7RRj7Gk4+0zUaaVtOGp7lTTPJp0o0+tafAADeGn9DTORpxo08WabCNPoWmOTTtP+2CRY9aeetPzGnxjTX9pn+03Yab/tPq2nAHTHRpsCTeEaZeNME2nEjTzRpqk0yvacCNPh2nZRjHIAZC04Jab8tPzGnzbTbpp8ayXTaYZtNDWnZLT8lp72026acVGMTaiZzT7Rp+c0+OafPtOwOm9DTt9p5dYxyABodPd2m6HTPFpyE03xaaKNMsxGiEAwZprC0xLaaFtOGGmTDTxJp4805dPpUTGiFzwjTXxpqB07kac2tNamnRzTjdpxDQ1I6ZkdPRmmHrT2Vp6xjco6ZhNOBmmneTQQq3o9fDZMl+nWGnkbTdxpiOSYY6dtNMiOnjzTK8Kvw0wEaZCNMPWmjHTHRp/oLVY6aCNOhGmQrTRjp8x0+7EZ5zFdGmrTTNppi6079ab9iMcgBrDTsFpuw07aacuNN5GmCjT4xpjc0+CafPtMZ9b2NjgIAJC03oaa+tOnGnRzTwFpgS0xaaZ0tPRGnAnT9hpko0wEaZcNOibGn5F09Y960/UaYaNNUmnILTphpxJ01o6aotNuGmELT1dp7S08baasNNWGmtrT65pxI0wMaYcAAQmm0rTVZpz401yaaHNMdmmQrTd5pqY0zSafatMYWnrTTYxpvC06OaettPe2nnbT4DprI05OadThPHGiCnTh1p3w0yU6bKdPJOnQ7TVTpyY0zU6cqNPkWnRbTTTp/Q0xPyY2A1zOmmjTkJp1o0+3aextOV9ba95YFp2E04JabDtP0WnqzTWpp0G08eaawR32Gn27T6zpms0/EXNdtM3OmpbTDfWl7QODHEudNvOmfzTw1p5i0y31t+HQ/Onw7Tfzpu504SysONNamm1jTUxp2404Mafy2Oa7iSx0Glpuk0xbaeONPrGm6TTixp8rQ/Q6YctOG7jwjTExp6w0y8aa3NMXGn2LTBJpwS0886altONaGELTyTpnS0y86aRA0VmnMHTe8JlwA4CAACdNimn3jTNVp600xEaekdNaOnVHTlNprI0zGUuCNM1WmHLT4meqG06SaawtNyOnKjTG5p9F0zAKactkM1izjTi5p3Q07iabSNMdmnWrTVhp9o04JabkdP4Wn8zTKii0K07UaaxtPrGn+fVTlp7V03babwFN3WiZXThhpzh0/Kac8tOGumQBtHIAJy09kadtNPj2nprRlFp4w02LaY6NNzWj5HTs5p//6aDaf8NPhGmTDTJtpmTicRabZtOhGmwXTBYp2VseM6ZQdOHOmLXTJzpxMY17YrNNNamnCXTEJp2+06HaZNdM6umpzTf2hyG03oaaHNNqunzjTZsm1o09WaYvtNX2mb7TDVplE3Z46bFNM82nwjTx1p540wW6dj9WAAAc6CSNNcWnL7TFbpph0w1abrn0cgAa3Tdbp/N0426dDtMlGndXTROxjkANEafaNNBumu59gIAKs0+o6cWRVxGnbbTkbpmuxcCaeiNNlGm5zTZLpkJyWUaeCNOxGnwLT5SizI086af+dMAWnCxjxyKuJ0xRafTdN9On9rThTpy40/BaYiNOLmn/7T6xp0I024ADHdO+2mwjTq7p2N04Eaal2NL+qmXT6Tpqw06y6cJdOaOmcjTV5p0c0wCafItOOumLjTWTpos02cka7k1MrTH3TLLpqi0+y6ZUdNlOmv3T9Tpn903+6ZcNMvyh0LTF5pii0wJaZyNO+WmDXTpxpjs079adSFMlcSmLTaVpwI02W6fOdO5GmrnTGRpnd01RaZg9O+7HTWN2DpyI08i6ZGdMEWnu7T4AABC0xkacEtN/OmIjTLxp/w0yYafyRMWZifTT6Vpxo058af3dN/2nCPT7zpu504S6Z/dO4em9DTFSJ/sBBC6ZRdPQumdjTZFpqD04uaetNMwemC9j/YCV80+faYotO32mx3T37puT07+6drNM5Om+kTW9o6w01qacMNORGmvzTzjphC06OaYRNPbmmE3T1xpu603VaZE9M+mmMnTTpp9D03oaYcADeGmGjThnpr+0xJaaktNM2mWbTFRp8+0xcafMNOPGnnHTfLpgW0zY6YiNPimm7DTitpo90wq6ctNNKumLbTbhpgE0xeafeNPCemqzTnehoRg8W6YJNMZGmRrT+7psU0wnaa/NOlGnTPTEdpnE00R6ai9OmGmYvTEzp/K0+Taa+NMdmmaLTYHp8a0z66a0dO6mmfhTKwMvM02fadQdNZGn2jTuNpsI0wiae0NMNGnYjThzp9u01tafeNNsum0jTzjp0a00cab7dNhumE7T/RpjN09V6cvdPOGnr3TbXp6003e6bHtnDem5TTcxp0b0/I6YmdMMOmrDThnpgN07W6ZZNMOAAZ3ToRp3U06caYDtMvmnfTTRZpii0/y6bmNM4WmoXT+npqk09cadpRPJKbp6xMrp5Z080afNtPDOmoLTsRp8i0xZaaCNOcomD0jL3poJ05eafwdNO2nDbTVtp2j0+p6fqdM/enATTVSm1ztXlaeQtOGWmODjgo2rM08UadCNN6AASzTxgAFb08D6ao9OfemZvTXJpq906caYW9NXGnRDji0GuGcRS6aCdMfemNbTz5p0L0++acrNNHun8vTORpqs03i6dKNOFGn5PT2np2i0yC6djdMgmm7DT+Lpvp05raYQ9PXmm7DTWpp3G05U6b89M4mmGjTEZpu90yejs9ROuGiyfT9hpns0+Baeo9PW2n4PTuJp4i06RacBtNWGngLTxHpxb079aanGNEIBDDTxJp8m0xdacSdPpWmqTTYPp9p08r6ZWdMMentvT1ppoI024AG3dPeumMjT3Hp5H04YaYp9PFemqzTLTpv80206cSNPkWniHTnnp400yzaZpdHKen/7TrNpuV02laZ09PBun6kx27psm03N6fmNN6GmQfTW5puR0ye6cY9PaGmL3TePpmP0ze6cW9M1imCMd9SYpC+QD6fsNPGGm0fTFppk68Ii6cx9OhunLbTozp2j0ySaYEtPbenJfTDl290bYCAGCNOWenyLTJhpso024acDkwmWnrTTc5pgr0xTaeRNNyunRzT7xpnb054afPdPzGmEbTuJp2W0yjabsNNgOnKLT9np1W06J6fHFNDW7wrt0xp1809X6ZsNNBOn5LT+HpqY04Yaf0tPTW6HwJ9hp5204taYjtPDmm/TTtvpkK0+MadRdP+umh/TnXpvQ0/6a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";const {react, reactDOM, excalidrawLib} = window.eval.call(window, `(function() {${LZString.decompressFromBase64(EXCALIDRAW_PACKAGES)};return {react:React, reactDOM:ReactDOM, excalidrawLib: ExcalidrawLib};})();`);const PLUGIN_VERSION="1.7.25";function _interopNamespace(A){if(A&&A.__esModule)return A;var e=Object.create(null);return A&&Object.keys(A).forEach((function(t){if("default"!==t){var i=Object.getOwnPropertyDescriptor(A,t);Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:function(){return A[t]}})}})),e.default=A,Object.freeze(e)}var React__namespace=_interopNamespace(React);let random=A=>crypto.getRandomValues(new Uint8Array(A)),customRandom=(A,e,t)=>{let i=(2<{let r="";for(;;){let e=t(n),s=n;for(;s--;)if(r+=A[e[s]&i]||"",r.length===a)return r}}},customAlphabet=(A,e=21)=>customRandom(A,e,random);function JSON_parse(A){return JSON.parse(A.replaceAll("[","["))}const isDarwin=/Mac|iPod|iPhone|iPad/.test(window.navigator.platform),CTRL_OR_CMD=isDarwin?"metaKey":"ctrlKey",nanoid=customAlphabet("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",8),KEYCODE={ESC:27},PLUGIN_ID="obsidian-excalidraw-plugin",SCRIPT_INSTALL_CODEBLOCK="excalidraw-script-install",SCRIPT_INSTALL_FOLDER="Downloaded",fileid=customAlphabet("1234567890abcdef",40),REG_LINKINDEX_INVALIDCHARS=/[<>:"\\|?*#]/g,REG_BLOCK_REF_CLEAN=/[!"#$%&()*+,.:;<=>?@^`{|}~\/\[\]\\]/g,IMAGE_TYPES=["jpeg","jpg","png","gif","svg","webp","bmp","ico"],EXPORT_TYPES=["svg","dark.svg","light.svg","png","dark.png","light.png"],MAX_IMAGE_SIZE=500,FRONTMATTER_KEY="excalidraw-plugin",FRONTMATTER_KEY_EXPORT_TRANSPARENT="excalidraw-export-transparent",FRONTMATTER_KEY_EXPORT_DARK="excalidraw-export-dark",FRONTMATTER_KEY_EXPORT_SVGPADDING="excalidraw-export-svgpadding",FRONTMATTER_KEY_EXPORT_PADDING="excalidraw-export-padding",FRONTMATTER_KEY_EXPORT_PNGSCALE="excalidraw-export-pngscale",FRONTMATTER_KEY_CUSTOM_PREFIX="excalidraw-link-prefix",FRONTMATTER_KEY_CUSTOM_URL_PREFIX="excalidraw-url-prefix",FRONTMATTER_KEY_CUSTOM_LINK_BRACKETS="excalidraw-link-brackets",FRONTMATTER_KEY_ONLOAD_SCRIPT="excalidraw-onload-script",FRONTMATTER_KEY_LINKBUTTON_OPACITY="excalidraw-linkbutton-opacity",FRONTMATTER_KEY_DEFAULT_MODE="excalidraw-default-mode",FRONTMATTER_KEY_FONT="excalidraw-font",FRONTMATTER_KEY_FONTCOLOR="excalidraw-font-color",FRONTMATTER_KEY_BORDERCOLOR="excalidraw-border-color",FRONTMATTER_KEY_MD_STYLE="excalidraw-css",FRONTMATTER_KEY_AUTOEXPORT="excalidraw-autoexport",LOCAL_PROTOCOL="md://",VIEW_TYPE_EXCALIDRAW="excalidraw",ICON_NAME="excalidraw-icon",RERENDER_EVENT="excalidraw-embed-rerender",BLANK_DRAWING='{"type":"excalidraw","version":2,"source":"https://excalidraw.com","elements":[],"appState":{"gridSize":null,"viewBackgroundColor":"#ffffff"}}',DARK_BLANK_DRAWING='{"type":"excalidraw","version":2,"source":"https://excalidraw.com","elements":[],"appState":{"theme":"dark","gridSize":null,"viewBackgroundColor":"#ffffff"}}',FRONTMATTER=["---","","excalidraw-plugin: parsed","tags: [excalidraw]","","---","==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==","",""].join("\n"),EMPTY_MESSAGE="Hit enter to create a new drawing",TEXT_DISPLAY_PARSED_ICON_NAME="quote-glyph",TEXT_DISPLAY_RAW_ICON_NAME="presentation",FULLSCREEN_ICON_NAME="fullscreen",SCRIPTENGINE_ICON_NAME="ScriptEngine",COLOR_NAMES=new Map;COLOR_NAMES.set("aliceblue","#f0f8ff"),COLOR_NAMES.set("antiquewhite","#faebd7"),COLOR_NAMES.set("aqua","#00ffff"),COLOR_NAMES.set("aquamarine","#7fffd4"),COLOR_NAMES.set("azure","#f0ffff"),COLOR_NAMES.set("beige","#f5f5dc"),COLOR_NAMES.set("bisque","#ffe4c4"),COLOR_NAMES.set("black","#000000"),COLOR_NAMES.set("blanchedalmond","#ffebcd"),COLOR_NAMES.set("blue","#0000ff"),COLOR_NAMES.set("blueviolet","#8a2be2"),COLOR_NAMES.set("brown","#a52a2a"),COLOR_NAMES.set("burlywood","#deb887"),COLOR_NAMES.set("cadetblue","#5f9ea0"),COLOR_NAMES.set("chartreuse","#7fff00"),COLOR_NAMES.set("chocolate","#d2691e"),COLOR_NAMES.set("coral","#ff7f50"),COLOR_NAMES.set("cornflowerblue","#6495ed"),COLOR_NAMES.set("cornsilk","#fff8dc"),COLOR_NAMES.set("crimson","#dc143c"),COLOR_NAMES.set("cyan","#00ffff"),COLOR_NAMES.set("darkblue","#00008b"),COLOR_NAMES.set("darkcyan","#008b8b"),COLOR_NAMES.set("darkgoldenrod","#b8860b"),COLOR_NAMES.set("darkgray","#a9a9a9"),COLOR_NAMES.set("darkgreen","#006400"),COLOR_NAMES.set("darkkhaki","#bdb76b"),COLOR_NAMES.set("darkmagenta","#8b008b"),COLOR_NAMES.set("darkolivegreen","#556b2f"),COLOR_NAMES.set("darkorange","#ff8c00"),COLOR_NAMES.set("darkorchid","#9932cc"),COLOR_NAMES.set("darkred","#8b0000"),COLOR_NAMES.set("darksalmon","#e9967a"),COLOR_NAMES.set("darkseagreen","#8fbc8f"),COLOR_NAMES.set("darkslateblue","#483d8b"),COLOR_NAMES.set("darkslategray","#2f4f4f"),COLOR_NAMES.set("darkturquoise","#00ced1"),COLOR_NAMES.set("darkviolet","#9400d3"),COLOR_NAMES.set("deeppink","#ff1493"),COLOR_NAMES.set("deepskyblue","#00bfff"),COLOR_NAMES.set("dimgray","#696969"),COLOR_NAMES.set("dodgerblue","#1e90ff"),COLOR_NAMES.set("firebrick","#b22222"),COLOR_NAMES.set("floralwhite","#fffaf0"),COLOR_NAMES.set("forestgreen","#228b22"),COLOR_NAMES.set("fuchsia","#ff00ff"),COLOR_NAMES.set("gainsboro","#dcdcdc"),COLOR_NAMES.set("ghostwhite","#f8f8ff"),COLOR_NAMES.set("gold","#ffd700"),COLOR_NAMES.set("goldenrod","#daa520"),COLOR_NAMES.set("gray","#808080"),COLOR_NAMES.set("green","#008000"),COLOR_NAMES.set("greenyellow","#adff2f"),COLOR_NAMES.set("honeydew","#f0fff0"),COLOR_NAMES.set("hotpink","#ff69b4"),COLOR_NAMES.set("indianred","#cd5c5c"),COLOR_NAMES.set("indigo","#4b0082"),COLOR_NAMES.set("ivory","#fffff0"),COLOR_NAMES.set("khaki","#f0e68c"),COLOR_NAMES.set("lavender","#e6e6fa"),COLOR_NAMES.set("lavenderblush","#fff0f5"),COLOR_NAMES.set("lawngreen","#7cfc00"),COLOR_NAMES.set("lemonchiffon","#fffacd"),COLOR_NAMES.set("lightblue","#add8e6"),COLOR_NAMES.set("lightcoral","#f08080"),COLOR_NAMES.set("lightcyan","#e0ffff"),COLOR_NAMES.set("lightgoldenrodyellow","#fafad2"),COLOR_NAMES.set("lightgrey","#d3d3d3"),COLOR_NAMES.set("lightgreen","#90ee90"),COLOR_NAMES.set("lightpink","#ffb6c1"),COLOR_NAMES.set("lightsalmon","#ffa07a"),COLOR_NAMES.set("lightseagreen","#20b2aa"),COLOR_NAMES.set("lightskyblue","#87cefa"),COLOR_NAMES.set("lightslategray","#778899"),COLOR_NAMES.set("lightsteelblue","#b0c4de"),COLOR_NAMES.set("lightyellow","#ffffe0"),COLOR_NAMES.set("lime","#00ff00"),COLOR_NAMES.set("limegreen","#32cd32"),COLOR_NAMES.set("linen","#faf0e6"),COLOR_NAMES.set("magenta","#ff00ff"),COLOR_NAMES.set("maroon","#800000"),COLOR_NAMES.set("mediumaquamarine","#66cdaa"),COLOR_NAMES.set("mediumblue","#0000cd"),COLOR_NAMES.set("mediumorchid","#ba55d3"),COLOR_NAMES.set("mediumpurple","#9370d8"),COLOR_NAMES.set("mediumseagreen","#3cb371"),COLOR_NAMES.set("mediumslateblue","#7b68ee"),COLOR_NAMES.set("mediumspringgreen","#00fa9a"),COLOR_NAMES.set("mediumturquoise","#48d1cc"),COLOR_NAMES.set("mediumvioletred","#c71585"),COLOR_NAMES.set("midnightblue","#191970"),COLOR_NAMES.set("mintcream","#f5fffa"),COLOR_NAMES.set("mistyrose","#ffe4e1"),COLOR_NAMES.set("moccasin","#ffe4b5"),COLOR_NAMES.set("navajowhite","#ffdead"),COLOR_NAMES.set("navy","#000080"),COLOR_NAMES.set("oldlace","#fdf5e6"),COLOR_NAMES.set("olive","#808000"),COLOR_NAMES.set("olivedrab","#6b8e23"),COLOR_NAMES.set("orange","#ffa500"),COLOR_NAMES.set("orangered","#ff4500"),COLOR_NAMES.set("orchid","#da70d6"),COLOR_NAMES.set("palegoldenrod","#eee8aa"),COLOR_NAMES.set("palegreen","#98fb98"),COLOR_NAMES.set("paleturquoise","#afeeee"),COLOR_NAMES.set("palevioletred","#d87093"),COLOR_NAMES.set("papayawhip","#ffefd5"),COLOR_NAMES.set("peachpuff","#ffdab9"),COLOR_NAMES.set("peru","#cd853f"),COLOR_NAMES.set("pink","#ffc0cb"),COLOR_NAMES.set("plum","#dda0dd"),COLOR_NAMES.set("powderblue","#b0e0e6"),COLOR_NAMES.set("purple","#800080"),COLOR_NAMES.set("rebeccapurple","#663399"),COLOR_NAMES.set("red","#ff0000"),COLOR_NAMES.set("rosybrown","#bc8f8f"),COLOR_NAMES.set("royalblue","#4169e1"),COLOR_NAMES.set("saddlebrown","#8b4513"),COLOR_NAMES.set("salmon","#fa8072"),COLOR_NAMES.set("sandybrown","#f4a460"),COLOR_NAMES.set("seagreen","#2e8b57"),COLOR_NAMES.set("seashell","#fff5ee"),COLOR_NAMES.set("sienna","#a0522d"),COLOR_NAMES.set("silver","#c0c0c0"),COLOR_NAMES.set("skyblue","#87ceeb"),COLOR_NAMES.set("slateblue","#6a5acd"),COLOR_NAMES.set("slategray","#708090"),COLOR_NAMES.set("snow","#fffafa"),COLOR_NAMES.set("springgreen","#00ff7f"),COLOR_NAMES.set("steelblue","#4682b4"),COLOR_NAMES.set("tan","#d2b48c"),COLOR_NAMES.set("teal","#008080"),COLOR_NAMES.set("thistle","#d8bfd8"),COLOR_NAMES.set("tomato","#ff6347"),COLOR_NAMES.set("turquoise","#40e0d0"),COLOR_NAMES.set("violet","#ee82ee"),COLOR_NAMES.set("wheat","#f5deb3"),COLOR_NAMES.set("white","#ffffff"),COLOR_NAMES.set("whitesmoke","#f5f5f5"),COLOR_NAMES.set("yellow","#ffff00"),COLOR_NAMES.set("yellowgreen","#9acd32");const DEFAULT_MD_EMBED_CSS='.excalidraw-md-host{padding:0px 10px}.excalidraw-md-footer{height:5px}foreignObject{background-color:transparent}p{display:block;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0px;margin-inline-end:0px;color:inherit}table,tr,th,td{color:inherit;border:1px solid;border-collapse:collapse;padding:3px}th{font-weight:bold;border-bottom:double;background-color:silver}.copy-code-button{display:none}code[class*=language-],pre[class*=language-]{color:#393a34;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;font-size:.9em;line-height:1.2em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre>code[class*=language-]{font-size:1em}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{background:#C1DEF1}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{background:#C1DEF1}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;background-color:#0000001a}:not(pre)>code[class*=language-]{padding:.2em;padding-top:1px;padding-bottom:1px;background:#f8f8f8;border:1px solid #dddddd}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:green;font-style:italic}.token.namespace{opacity:.7}.token.string{color:#a31515}.token.punctuation,.token.operator{color:#393a34}.token.url,.token.symbol,.token.number,.token.boolean,.token.variable,.token.constant,.token.inserted{color:#36acaa}.token.atrule,.token.keyword,.token.attr-value,.language-autohotkey .token.selector,.language-json .token.boolean,.language-json .token.number,code[class*=language-css]{color:#00f}.token.function{color:#393a34}.token.deleted,.language-autohotkey .token.tag{color:#9a050f}.token.selector,.language-autohotkey .token.keyword{color:#00009f}.token.important{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.class-name,.language-json .token.property{color:#2b91af}.token.tag,.token.selector{color:maroon}.token.attr-name,.token.property,.token.regex,.token.entity{color:red}.token.directive.tag .tag{background:#ffff00;color:#393a34}.line-numbers.line-numbers .line-numbers-rows{border-right-color:#a5a5a5}.line-numbers .line-numbers-rows>span:before{color:#2b91af}.line-highlight.line-highlight{background:rgba(193,222,241,.2);background:-webkit-linear-gradient(left,rgba(193,222,241,.2) 70%,rgba(221,222,241,0));background:linear-gradient(to right,rgba(193,222,241,.2) 70%,rgba(221,222,241,0))}blockquote{ font-style:italic;background-color:rgb(46,43,42,0.1);margin:0;margin-left:1em;border-radius:0 4px 4px 0;border:1px solid hsl(0,80%,32%);border-left-width:8px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;padding:10px 20px;margin-inline-start:30px;margin-inline-end:30px;}',SCRIPTENGINE_ICON='',DISK_ICON_NAME="disk",DISK_ICON='',PNG_ICON_NAME="save-png",PNG_ICON='',SVG_ICON_NAME="save-svg",SVG_ICON='',EXCALIDRAW_ICON='',VIRGIL_DATAURL="data:application/font-woff;charset=utf-8;base64,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",VIRGIL_FONT=` @font-face {font-family: "Virgil";src: url("${VIRGIL_DATAURL}") format("woff2");}`,CASCADIA_FONT=' @font-face {font-family: "Cascadia";src: url("data:application/font-woff;charset=utf-8;base64,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XVtdpV2uXdBeAV4OXmBecl6GXpteyl74X1Vfsl/PX+xgDWAtYDVgPWBQYGNga2B9YIZgj2CcYKlgtmDLYOFg7GElYVthfmGgYa1hwmHdYgNiN2JVYoli0GL6Yzpjc2PbZINkrGUYZUBlTWVeZaNl8GX9Zi9mPGZNZrdm/mdPZ59nq2e4Z8hoAWhDaE9oW2hoaMto12jnaPNo/2mBaipqmGqlarFrRWtSa79sG2wnbFRskGzBbM5s32z7bQ5tF20fbR9tH20fbX9tzm4ebp9u+W9jb75wGnBgcKRw1HEucZRx1nIxcoly1HMHc1Nzm3P+dEJ0rXTvdR11YXWIdcl2LHZrdnN2e3aidqp2zHbwdwd3LHc/d213qHfGd/14JHhLeHt4rnjWeON5EnkpeUd5nHnBefJ5+noCeiV6T3pyenp6hXqcewR7kXu5e+R8Dnw3fHF8qnztfPp9B30UfSF9Ln07fUh9VX1ifW99fH2JfZZ9o32wfb19yn3YfeZ9834Bfg5+Hn4yfkJ+U35hfnd+h37Vf2iAj4CrgNeBDYEzgVmBgIGmgbmBzYH4gh2CUoKHgr2C84M1g/iEM4SIhK6Ey4T9hR6FQIVbhXaFiYWcha+FwoXSheuGAoYZhjCGR4Zoho+GnYazhsGGzobjhviHBYcah0yHaIgsiE6IcIi1iNuJA4lciWqJgImViaqJvYnRie6KDIosikyKbIqBio+KpIqyir+KzIrZiueK+4sPiySLOYtdi3GLhIuRi5+Ls4vIi9aL44vxi/+MFIwojD2MUoxfjGyMeYyFjJiMq4y/jNKM840NjSeNO41bjXSNjo2ijc6N7o4PjieOPY5TjmaOd46Njp6OtI7NjuGO8o8JjxqPMY9Lj2WPe4+Rj6aPvI/Kj96P75AAkA6QHJAukE6QdJCCkJ6QvJDKkN6Q75ECkRORIZE7kU+RY5F+kZSRqZHCkdiR7pIIkiSSQJJckniSlJK3ksiS2JLrkwCTDpMhkzKTQ5NQk12TcJOMk6+TvJPVk/GT/5QSlCSUNJRElFKUa5R+lJGUrJTClNiU8ZUHlR2VN5VTlWqVf5WUla2VwJXWleaV/JYNlieWOpZQlmCWdpaHlqCWtJbJluyXBZcflziXTJdgl3qXjpeil8WX3Zf1mGqYsZkFmTmZg5mvmcaZ5Zpamr6bHZtFm7icHZyAnN6dG52E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") format("woff2");}';var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},lzString={exports:{}};function splitFolderAndFilename(A){const e=A.lastIndexOf("/"),t=-1==e?A:A.substring(e+1);return{folderpath:obsidian.normalizePath(A.substring(0,e)),filename:t,basename:t.replace(/\.[^/.]+$/,"")}}function download(A,e,t){const i=document.createElement("a");i.setAttribute("href",(A?`${A},`:"")+e),i.setAttribute("download",t),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)}function getIMGFilename(A,e){return`${A.substring(0,A.lastIndexOf("."))}.${e}`}function getNewUniqueFilepath(A,e,t){let i=obsidian.normalizePath(`${t}/${e}`),n=A.getAbstractFileByPath(i),a=0;const r=e.endsWith(".excalidraw.md")?".excalidraw.md":e.slice(e.lastIndexOf("."));for(;n;)i=obsidian.normalizePath(`${t}/${e.slice(0,e.lastIndexOf(r))}_${a}${r}`),a++,n=A.getAbstractFileByPath(i);return i}function getDrawingFilename(A){return A.drawingFilenamePrefix+(""!==A.drawingFilenameDateTime?window.moment().format(A.drawingFilenameDateTime):"")+(A.compatibilityMode?".excalidraw":A.useExcalidrawExtension?".excalidraw.md":".md")}function getEmbedFilename(A,e){return(e.drawingEmbedPrefixWithFilename?A:"")+e.drawingFilnameEmbedPostfix+(""!==e.drawingFilenameDateTime?window.moment().format(e.drawingFilenameDateTime):"")+(e.compatibilityMode?".excalidraw":e.useExcalidrawExtension?".excalidraw.md":".md")}async function checkAndCreateFolder(A){const e=app.vault;A=obsidian.normalizePath(A);const t=e.getAbstractFileByPathInsensitive(A);t&&t instanceof obsidian.TFolder||(t&&t instanceof obsidian.TFile&&new obsidian.Notice(`The folder cannot be created because it already exists as a file: ${A}.`),await e.createFolder(A))}!function(A){var e=function(){var A=String.fromCharCode,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",i={};function n(A,e){if(!i[A]){i[A]={};for(var t=0;t>>8,t[2*i+1]=r%256}return t},decompressFromUint8Array:function(e){if(null==e)return a.decompress(e);for(var t=new Array(e.length/2),i=0,n=t.length;i>=1}else{for(n=1,i=0;i>=1}0==--d&&(d=Math.pow(2,g),g++),delete s[c]}else for(n=r[c],i=0;i>=1;0==--d&&(d=Math.pow(2,g),g++),r[l]=h++,c=String(o)}if(""!==c){if(Object.prototype.hasOwnProperty.call(s,c)){if(c.charCodeAt(0)<256){for(i=0;i>=1}else{for(n=1,i=0;i>=1}0==--d&&(d=Math.pow(2,g),g++),delete s[c]}else for(n=r[c],i=0;i>=1;0==--d&&(d=Math.pow(2,g),g++)}for(n=2,i=0;i>=1;for(;;){if(p<<=1,w==e-1){u.push(t(p));break}w++}return u.join("")},decompress:function(A){return null==A?"":""==A?null:a._decompress(A.length,32768,(function(e){return A.charCodeAt(e)}))},_decompress:function(e,t,i){var n,a,r,s,o,l,c,d=[],h=4,g=4,u=3,p="",w=[],m={val:i(0),position:t,index:1};for(n=0;n<3;n+=1)d[n]=n;for(r=0,o=Math.pow(2,2),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;switch(r){case 0:for(r=0,o=Math.pow(2,8),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;c=A(r);break;case 1:for(r=0,o=Math.pow(2,16),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;c=A(r);break;case 2:return""}for(d[3]=c,a=c,w.push(c);;){if(m.index>e)return"";for(r=0,o=Math.pow(2,u),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;switch(c=r){case 0:for(r=0,o=Math.pow(2,8),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;d[g++]=A(r),c=g-1,h--;break;case 1:for(r=0,o=Math.pow(2,16),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=i(m.index++)),r|=(s>0?1:0)*l,l<<=1;d[g++]=A(r),c=g-1,h--;break;case 2:return w.join("")}if(0==h&&(h=Math.pow(2,u),u++),d[c])p=d[c];else{if(c!==g)return null;p=a+a.charAt(0)}w.push(p),d[g++]=a+p.charAt(0),a=p,0==--h&&(h=Math.pow(2,u),u++)}}};return a}();null!=A&&(A.exports=e)}(lzString);const{exportToSvg:exportToSvg,exportToBlob:exportToBlob}=excalidrawLib;let versionUpdateChecked=!1;const checkExcalidrawVersion=async A=>{if(!versionUpdateChecked){versionUpdateChecked=!0;try{const A=async()=>JSON.parse(await obsidian.request({url:"https://api.github.com/repos/zsviczian/obsidian-excalidraw-plugin/releases?per_page=5&page=1"})),e=(await A()).map((A=>({version:A.tag_name,published:new Date(A.published_at)}))).filter((A=>A.version.match(/^\d+\.\d+\.\d+$/))).sort(((A,e)=>e.published-A.published))[0].version;isVersionNewerThanOther(e,PLUGIN_VERSION)&&new obsidian.Notice(`A newer version of Excalidraw is available in Community Plugins.\n\nYou are using ${PLUGIN_VERSION}.\nThe latest is ${e}`)}catch(A){errorlog({where:"Utils/checkExcalidrawVersion",error:A})}setTimeout((()=>versionUpdateChecked=!1),288e5)}};function wrapText(A,e,t=!1,i=0){if(!e)return A;let n="";if(t){for(const t of A.split("\n")){const A=t.match(new RegExp(`(.){1,${e}}`,"g"));n+=A?`${A.join("\n")}\n`:"\n"}return n.replace(/\n$/,"")}const a=new RegExp(`(.{1,${e}})(\\s+|$\\n?)|([^\\s]{1,${e+i}})(\\s+|$\\n?)?`,"gm"),r=A.matchAll(a);let s;for(;!(s=r.next()).done;){n+=s.value[1]?s.value[1].trimEnd():s.value[3].trimEnd();const A=(s.value[2]?s.value[2].split("\n").length-1:0)+(s.value[4]?s.value[4].split("\n").length-1:0);n+="\n".repeat(A),0===A&&(n+="\n")}return n.replace(/\n$/,"")}const rotate=(A,e,t,i,n)=>[(A-t)*Math.cos(n)-(e-i)*Math.sin(n)+t,(A-t)*Math.sin(n)+(e-i)*Math.cos(n)+i],rotatedDimensions=A=>{if(0===A.angle)return[A.x,A.y,A.width,A.height];const e=A.x+A.width/2,t=A.y+A.height/2,[i,n]=rotate(A.x,A.y,e,t,A.angle),[a,r]=rotate(A.x+A.width,A.y+A.height,e,t,A.angle);return[i{const s=1/t.value;return{x:(A-i)*s-a,y:(e-n)*s-r}},getDataURL=async(A,e)=>new Promise(((t,i)=>{const n=new FileReader;n.onload=()=>{const A=n.result;t(A)},n.onerror=A=>i(A),n.readAsDataURL(new Blob([new Uint8Array(A)],{type:e}))})),getFontDataURL=async(A,e,t,i)=>{let n="",a="",r="";const s=A.metadataCache.getFirstLinkpathDest(e,t);if(s){const e=await A.vault.readBinary(s),t=s.extension.startsWith("woff")?"application/font-woff":"font/truetype";a=null!=i?i:s.basename,r=await getDataURL(e,t),n=` @font-face {font-family: "${a}";src: url("${r}") format("${"ttf"===s.extension?"truetype":s.extension}");}`;const o=n.split(";base64,",2);n=`${o[0]};charset=utf-8;base64,${o[1]}`}return{fontDef:n,fontName:a,dataURL:r}},svgToBase64=A=>`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(A.replaceAll(" "," "))))}`,getBinaryFileFromDataURL=A=>{if(!A)return null;const e=A.matchAll(/base64,(.*)/g).next(),t=window.atob(e.value[1]),i=t.length,n=new Uint8Array(i);for(let A=0;A{var i;try{return await exportToSvg({elements:A.elements,appState:Object.assign({exportBackground:e.withBackground,exportWithDarkMode:!!e.withTheme&&"light"!=(null===(i=A.appState)||void 0===i?void 0:i.theme)},A.appState),files:A.files,exportPadding:t})}catch(A){return null}},getPNG=async(A,e,t,i=1)=>{var n;try{return await exportToBlob({elements:A.elements,appState:Object.assign({exportBackground:e.withBackground,exportWithDarkMode:!!e.withTheme&&"light"!=(null===(n=A.appState)||void 0===n?void 0:n.theme)},A.appState),files:A.files,exportPadding:t,mimeType:"image/png",getDimensions:(A,e)=>({width:A*i,height:e*i,scale:i})})}catch(A){return errorlog({where:"Utils.getPNG",error:A}),null}},getQuickImagePreview=async(A,e,t)=>{if(!A.settings.displayExportedImageIfAvailable)return null;const i=getIMGFilename(e,t),n=A.app.vault.getAbstractFileByPath(i);return n&&n instanceof obsidian.TFile?"png"===t?await A.app.vault.readBinary(n):await A.app.vault.read(n):null},embedFontsInSVG=(A,e)=>{const t=null!=A.querySelector("text[font-family^='Virgil']"),i=null!=A.querySelector("text[font-family^='Cascadia']"),n=null!=A.querySelector("text[font-family^='LocalFont']"),a=A.querySelector("defs");return a&&(i||t||n)&&(a.innerHTML=``),A},getImageSize=async A=>new Promise(((e,t)=>{const i=new Image;i.onload=()=>e({height:i.naturalHeight,width:i.naturalWidth}),i.onerror=t,i.src=A})),scaleLoadedImage=(A,e)=>{let t=!1;if(!e||!A)return{dirty:t,scene:A};for(const i of e){const[e,n]=[i.size.width,i.size.height],a=i.size.width/i.size.height;return A.elements.filter((A=>"image"===A.type&&A.fileId===i.id)).forEach((A=>{const[i,r]=[A.width,A.height];if(a!=i/r){t=!0;const a=Math.sqrt(i*r*n/e),s=Math.sqrt(i*r*e/n);A.height=a,A.width=s,A.y+=(r-a)/2,A.x+=(i-s)/2}})),{dirty:t,scene:A}}},setDocLeftHandedMode=(A,e)=>{const t=e.createElement("style");t.id="excalidraw-left-handed",t.textContent=".excalidraw .App-bottom-bar{justify-content:flex-end;}";const i=e.getElementById(t.id);i&&e.head.removeChild(i),A&&e.head.appendChild(t)},setLeftHandedMode=A=>{const e=new Set;app.workspace.iterateAllLeaves((t=>{const i=app.isMobile?document:t.view.containerEl.ownerDocument;i&&(e.has(i)||(e.add(i),setDocLeftHandedMode(A,i)))}))},getLinkParts=(A,e)=>{var t;const i=A.match(/(^[^#\|]*)#?(\^)?([^\|]*)?\|?(\d*)x?(\d*)/);return{original:A,path:e&&""===i[1]?e.path:i[1],isBlockRef:"^"===i[2],ref:null===(t=i[3])||void 0===t?void 0:t.replaceAll(REG_BLOCK_REF_CLEAN,""),width:i[4]?parseInt(i[4]):void 0,height:i[5]?parseInt(i[5]):void 0}},compress=A=>lzString.exports.compressToBase64(A).replace(/(.{64})/g,"$1\n\n"),decompress=A=>lzString.exports.decompressFromBase64(A.replaceAll("\n","").replaceAll("\r","")),hasExportTheme=(A,e)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-dark"])return!0}return!1},getExportTheme=(A,e,t)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-dark"])return t.frontmatter["excalidraw-export-dark"]?"dark":"light"}return A.settings.exportWithTheme?t:"light"},hasExportBackground=(A,e)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-transparent"])return!0}return!1},getWithBackground=(A,e)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-transparent"])return!t.frontmatter["excalidraw-export-transparent"]}return A.settings.exportWithBackground},getExportPadding=(A,e)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if(!(null==t?void 0:t.frontmatter))return A.settings.exportPaddingSVG;if(null!=t.frontmatter["excalidraw-export-padding"]){const A=parseInt(t.frontmatter["excalidraw-export-padding"]);if(!isNaN(A))return A}if(null!=t.frontmatter["excalidraw-export-svgpadding"]){const A=parseInt(t.frontmatter["excalidraw-export-svgpadding"]);if(!isNaN(A))return A}}return A.settings.exportPaddingSVG},getPNGScale=(A,e)=>{if(e){const t=A.app.metadataCache.getFileCache(e);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-pngscale"]){const A=parseFloat(t.frontmatter["excalidraw-export-pngscale"]);if(!isNaN(A)&&A>0)return A}}return A.settings.pngExportScale},isVersionNewerThanOther=(A,e)=>{const t=A.match(/(\d*)\.(\d*)\.(\d*)/),i=e.match(/(\d*)\.(\d*)\.(\d*)/);return Boolean(t&&4===t.length&&i&&4===i.length&&!(isNaN(parseInt(t[1]))||isNaN(parseInt(t[2]))||isNaN(parseInt(t[3])))&&!(isNaN(parseInt(i[1]))||isNaN(parseInt(i[2]))||isNaN(parseInt(i[3])))&&(parseInt(t[1])>parseInt(i[1])||parseInt(t[1])>=parseInt(i[1])&&parseInt(t[2])>parseInt(i[2])||parseInt(t[1])>=parseInt(i[1])&&parseInt(t[2])>=parseInt(i[2])&&parseInt(t[3])>parseInt(i[3])))},getEmbeddedFilenameParts=A=>{const e=null==A?void 0:A.match(/([^#\^]*)((#\^)(group=|area=)?([^\|]*)|(#)(group=|area=)?([^\^\|]*))(.*)/);return e?{filepath:e[1],hasBlockref:Boolean(e[3]),hasGroupref:"group="===e[4]||"group="===e[7],hasArearef:"area="===e[4]||"area="===e[7],blockref:e[5],hasSectionref:Boolean(e[6]),sectionref:e[8],linkpartReference:e[2],linkpartAlias:e[9]}:{filepath:A,hasBlockref:!1,hasGroupref:!1,hasArearef:!1,blockref:"",hasSectionref:!1,sectionref:"",linkpartReference:"",linkpartAlias:""}},errorlog=A=>{console.error(Object.assign({plugin:"Excalidraw"},A))},sleep$1=async A=>new Promise((e=>setTimeout(e,A))),log=console.log.bind(window.console);console.log.bind(window.console);const getParentOfClass=(A,e)=>{var t;let i=A.parentElement;for(;i&&!(i instanceof window.HTMLBodyElement)&&!i.classList.contains(e);)i=i.parentElement;return(null===(t=null==i?void 0:i.classList)||void 0===t?void 0:t.contains(e))?i:null},getNewOrAdjacentLeaf=(A,e)=>{const t=e.id,i=app.workspace.getLayout(),n=A=>A.children.filter((A=>"leaf"!==A.type)).map((A=>n(A))).flat().concat(A.children.filter((A=>"leaf"===A.type)).map((A=>A.id))),a=n(i.main),r=i.main&&a.contains(t)?"main":i.floating&&n(i.floating).contains(t)?"popout":i.left&&n(i.left).contains(t)?"left":i.right&&n(i.right).contains(t)?"right":"hover",s=()=>{var A;let t=app.workspace.getMostRecentLeaf();return t&&t!==e&&(null===(A=t.view)||void 0===A?void 0:A.containerEl.ownerDocument)===document||(t=null,a.forEach((A=>{var i;const n=app.workspace.getLeafById(A);!t&&(null===(i=n.view)||void 0===i?void 0:i.navigation)&&e!==n&&(t=n)}))),t};if(A.settings.openInMainWorkspace||["main","left","right"].contains(r)){if(!A.settings.openInAdjacentPane){if("main"===r)return app.workspace.createLeafBySplit(e);const A=s();return A?"empty"===A.view.getViewType()?A:app.workspace.createLeafBySplit(A):app.workspace.getLeaf(!0)}const t=s();return null!=t?t:app.workspace.getLeaf(!0)}if(!A.settings.openInAdjacentPane)return app.workspace.createLeafBySplit(e);if("hover"===r){const t=new Set;return app.workspace.iterateAllLeaves((A=>{A!==e&&e.containerEl.parentElement===A.containerEl.parentElement&&t.add(A)})),0===t.size?A.app.workspace.createLeafBySplit(e):Array.from(t)[0]}if("popout"===r){const A=new Set;return app.workspace.iterateAllLeaves((t=>{t!==e&&t.view.navigation&&t.view.containerEl.ownerDocument===e.view.containerEl.ownerDocument&&A.add(t)})),0===A.size?app.workspace.createLeafBySplit(e):Array.from(A)[0]}return A.app.workspace.createLeafBySplit(e)},getAttachmentsFolderAndFilePath=async(A,e,t)=>{let i=A.vault.getConfig("attachmentFolderPath");if(i&&i.startsWith("./")){const A=`${splitFolderAndFilename(e).folderpath}/`;i=obsidian.normalizePath(A+i.substring(2))}return i&&"/"!==i||(i=""),await checkAndCreateFolder(i),{folder:i,filepath:obsidian.normalizePath(""===i?t:`${i}/${t}`)}},isObsidianThemeDark=()=>document.body.classList.contains("theme-dark");var ar={},cz={},da={},de={},en={INSTALL_SCRIPT:"Install this script",UPDATE_SCRIPT:"An update is available - Click to install",CHECKING_SCRIPT:"Checking if a newer version is available - Click to reinstall now",UNABLETOCHECK_SCRIPT:"Update check was unsuccessful - Click to reinstall now",UPTODATE_SCRIPT:"Script is installed and up to date - Click to reinstall now",OPEN_AS_EXCALIDRAW:"Open as Excalidraw Drawing",TOGGLE_MODE:"Toggle between Excalidraw and Markdown mode",CONVERT_NOTE_TO_EXCALIDRAW:"Convert empty note to Excalidraw Drawing",CONVERT_EXCALIDRAW:"Convert *.excalidraw to *.md files",CREATE_NEW:"New Excalidraw drawing",CONVERT_FILE_KEEP_EXT:"*.excalidraw => *.excalidraw.md",CONVERT_FILE_REPLACE_EXT:"*.excalidraw => *.md (Logseq compatibility)",DOWNLOAD_LIBRARY:"Export stencil library as an *.excalidrawlib file",OPEN_EXISTING_NEW_PANE:"Open an existing drawing - IN A NEW PANE",OPEN_EXISTING_ACTIVE_PANE:"Open an existing drawing - IN THE CURRENT ACTIVE PANE",TRANSCLUDE:"Transclude (embed) a drawing",TRANSCLUDE_MOST_RECENT:"Transclude (embed) the most recently edited drawing",TOGGLE_LEFTHANDED_MODE:"Toggle left-handed mode",NEW_IN_NEW_PANE:"Create a new drawing - IN A NEW PANE",NEW_IN_ACTIVE_PANE:"Create a new drawing - IN THE CURRENT ACTIVE PANE",NEW_IN_POPOUT_WINDOW:"Create a new drawing - IN A POPOUT WINDOW",NEW_IN_NEW_PANE_EMBED:"Create a new drawing - IN A NEW PANE - and embed into active document",NEW_IN_ACTIVE_PANE_EMBED:"Create a new drawing - IN THE CURRENT ACTIVE PANE - and embed into active document",NEW_IN_POPOUT_WINDOW_EMBED:"Create a new drawing - IN A POPOUT WINDOW - and embed into active document",EXPORT_SVG:"Save as SVG next to the current file",EXPORT_PNG:"Save as PNG next to the current file",TOGGLE_LOCK:"Toggle Text Element edit RAW/PREVIEW",DELETE_FILE:"Delete selected Image or Markdown file from Obsidian Vault",INSERT_LINK_TO_ELEMENT:"Copy markdown link for selected element to clipboard. CTRL/CMD+Click to copy group link. SHIFT+click to copy an area link.",INSERT_LINK_TO_ELEMENT_GROUP:"Copy 'group=' markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_AREA:"Copy 'area=' markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_NORMAL:"Copy markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_ERROR:"Select a single element in the scene",INSERT_LINK_TO_ELEMENT_READY:"Link is READY and available on the clipboard",INSERT_LINK:"Insert link to file",INSERT_IMAGE:"Insert image from vault",INSERT_MD:"Insert markdown file from vault",INSERT_LATEX:"Insert LaTeX formula (e.g. \\binom{n}{k} = \\frac{n!}{k!(n-k)!})",ENTER_LATEX:"Enter a valid LaTeX expression",READ_RELEASE_NOTES:"Read latest release notes",TRAY_MODE:"Toggle property-panel tray-mode",SEARCH:"Search for text in drawing",RESET_IMG_TO_100:"Set selected image element size to 100% of original",INSTALL_SCRIPT_BUTTON:"Install or update Excalidraw Scripts",OPEN_AS_MD:"Open as Markdown",SAVE_AS_PNG:"Save as PNG into Vault (CTRL/CMD+CLICK to export)",SAVE_AS_SVG:"Save as SVG into Vault (CTRL/CMD+CLICK to export)",OPEN_LINK:"Open selected text as link\n(SHIFT+CLICK to open in a new pane)",EXPORT_EXCALIDRAW:"Export to an .Excalidraw file",LINK_BUTTON_CLICK_NO_TEXT:"Select a an ImageElement, or select a TextElement that contains an internal or external link.\nSHIFT CLICK this button to open the link in a new pane.\nCTRL/CMD CLICK the Image or TextElement on the canvas has the same effect!",FILENAME_INVALID_CHARS:'File name cannot contain any of the following characters: * " \\ < > : | ? #',FILE_DOES_NOT_EXIST:"File does not exist. Hold down ALT (or ALT+SHIFT) and CLICK link button to create a new file.",FORCE_SAVE:"Save (will also update transclusions)",RAW:"Change to PREVIEW mode (only effects text-elements with links or transclusions)",PARSED:"Change to RAW mode (only effects text-elements with links or transclusions)",NOFILE:"Excalidraw (no file)",COMPATIBILITY_MODE:"*.excalidraw file opened in compatibility mode. Convert to new format for full plugin functionality.",CONVERT_FILE:"Convert to new format",RELEASE_NOTES_NAME:"Display Release Notes after update",RELEASE_NOTES_DESC:"Toggle ON: Display release notes each time you update Excalidraw to a newer version.
Toggle OFF: Silent mode. You can still read release notes on GitHub.",NEWVERSION_NOTIFICATION_NAME:"Plugin update notification",NEWVERSION_NOTIFICATION_DESC:"Toggle ON: Show a notification when a new version of the plugin is avaiable.
Toggle OFF: Silent mode. You need to check for plugin updates in Community Plugins.",FOLDER_NAME:"Excalidraw folder",FOLDER_DESC:"Default location for new drawings. If empty, drawings will be created in the Vault root.",FOLDER_EMBED_NAME:"Use Excalidraw folder when embedding a drawing into the active document",FOLDER_EMBED_DESC:"Define which folder to place the newly inserted drawing into when using the command palette action: 'Create a new drawing and embed into active document'.
Toggle ON: Use Excalidraw folder
Toggle OFF: use the attachments folder defined in Obsidian settings.",TEMPLATE_NAME:"Excalidraw template file",TEMPLATE_DESC:"Full filepath to the Excalidraw template. E.g.: If your template is in the default Excalidraw folder and it's name is Template.md, the setting would be: Excalidraw/Template.md (or just Excalidraw/Template - you may omit the .md file extension). If you are using Excalidraw in compatibility mode, then your template must be a legacy Excalidraw file as well such as Excalidraw/Template.excalidraw.",SCRIPT_FOLDER_NAME:"Excalidraw Automate script folder",SCRIPT_FOLDER_DESC:"The files you place in this folder will be treated as Excalidraw Automate scripts. You can access your scripts from Excalidraw via the Obsidian Command Palette. Assign hotkeys to your favorite scripts just like to any other Obsidian command. The folder may not be the root folder of your Vault. ",COMPRESS_NAME:"Compress Excalidraw JSON in Markdown",COMPRESS_DESC:"By enabling this feature Excalidraw will store the drawing JSON in a Base64 compressed format using the LZ-String algorithm. This will reduce the chance of Excalidraw JSON cluttering your search results in Obsidian. As a side effect, this will also reduce the filesize of Excalidraw drawings. When you switch an Excalidraw drawing to Markdown view, using the options menu in Excalidraw, the file will be saved without compression, so that you can read and edit the JSON string. The drawing will be compressed again once you switch back to Excalidraw view. The setting only has effect 'point forward', meaning, existing drawings will not be effected by the setting until you open them and save them.
Toggle ON: Compress drawing JSON
Toggle OFF: Leave drawing JSON uncompressed",AUTOSAVE_NAME:"Enable Autosave",AUTOSAVE_DESC:"Automatically save the active drawing, in case there are changes, every 15, 30 seconds, or 1, 2, 3, 4, or 5 minute. Save normally happens when you close Excalidraw or Obsidian, or move focus to another pane. I created this feature with mobile phones and tablets in mind, where 'swiping out Obsidian to close it' led to some data loss.",AUTOSAVE_INTERVAL_NAME:"Interval for autosave",AUTOSAVE_INTERVAL_DESC:"The time interval between saves. Autosave will skip if there are no changes in the drawing.",FILENAME_HEAD:"Filename",FILENAME_DESC:"

Click this link for the date and time format reference.

",FILENAME_SAMPLE:"Filename for a new drawing is: ",FILENAME_EMBED_SAMPLE:"Filename for a new embedded drawing is: ",FILENAME_PREFIX_NAME:"Filename prefix",FILENAME_PREFIX_DESC:"The first part of the filename",FILENAME_PREFIX_EMBED_NAME:"Filename prefix when embedding a new drawing into a markdown note",FILENAME_PREFIX_EMBED_DESC:"Should the filename of the newly inserted drawing start with the name of the active markdown note when using the command palette action: Create a new drawing and embed into active document?
Toggle ON: Yes, the filename of a new drawing should start with filename of the active document
Toggle OFF: No, filename of a new drawing should not include the filename of the active document",FILENAME_POSTFIX_NAME:"Custom text after markdown Note's name when embedding",FILENAME_POSTFIX_DESC:"Effects filename only when embedding into a markdown document. This is text will be inserted after the note's name, but before the date.",FILENAME_DATE_NAME:"Filename Date",FILENAME_DATE_DESC:"The last part of the filename. Leave empty if you do not want a date.",FILENAME_EXCALIDRAW_EXTENSION_NAME:".excalidraw.md or .md",FILENAME_EXCALIDRAW_EXTENSION_DESC:"This setting does not apply if you use Excalidraw in compatibility mode, i.e. you are not using Excalidraw markdown files.
Toggle ON: filename ends with .excalidraw.md
Toggle OFF: filename ends with .md",DISPLAY_HEAD:"Display",LEFTHANDED_MODE_NAME:"Left-handed mode",LEFTHANDED_MODE_DESC:"Currently only has effect in tray-mode. If turned on, the tray will be on the right side.
Toggle ON: Left-handed mode.
Toggle OFF: Right-handed moded",MATCH_THEME_NAME:"New drawing to match Obsidian theme",MATCH_THEME_DESC:"If theme is dark, new drawing will be created in dark mode. This does not apply when you use a template for new drawings. Also this will not effect when you open an existing drawing. Those will follow the theme of the template/drawing respectively.
Toggle ON: Follow Obsidian Theme
Toggle OFF:Follow theme defined in your template",MATCH_THEME_ALWAYS_NAME:"Existing drawings to match Obsidian theme",MATCH_THEME_ALWAYS_DESC:"If theme is dark, drawings will be opened in dark mode. If your theme is light, they will be opened in light mode.
Toggle ON: Match Obsidian theme
Toggle OFF: Open with the same theme as last saved",MATCH_THEME_TRIGGER_NAME:"Excalidraw to follow when Obsidian Theme changes",MATCH_THEME_TRIGGER_DESC:"If this option is enabled open Excalidraw pane will switch to light/dark mode when Obsidian theme changes.
Toggle ON: Follow theme changes
Toggle OFF: Drawings are not effected by Obsidian theme changes",DEFAULT_OPEN_MODE_NAME:"Default mode when opening Excalidraw",DEFAULT_OPEN_MODE_DESC:"Specifies the mode how Excalidraw opens: Normal, Zen, or View mode. You may also set this behavior on a file level by adding the excalidraw-default-mode frontmatter key with a value of: normal,view, or zen to your document.",DEFAULT_PEN_MODE_NAME:"Pen mode",DEFAULT_PEN_MODE_DESC:"Should pen mode be automatically enabled when opening Excalidraw?",ZOOM_TO_FIT_NAME:"Zoom to fit on view resize",ZOOM_TO_FIT_DESC:"Zoom to fit drawing when the pane is resized
Toggle ON: Zoom to fit
Toggle OFF: Auto zoom disabled",ZOOM_TO_FIT_MAX_LEVEL_NAME:"Zoom to fit max ZOOM level",ZOOM_TO_FIT_MAX_LEVEL_DESC:"Set the maximum level to which zoom to fit will enlarge the drawing. Minimum is 0.5 (50%) and maximum is 10 (1000%).",LINKS_HEAD:"Links and transclusion",LINKS_DESC:"CTRL/CMD + CLICK on [[Text Elements]] to open them as links. If the selected text has more than one [[valid Obsidian links]], only the first will be opened. If the text starts as a valid web link (i.e. https:// or http://), then the plugin will open it in a browser. When Obsidian files change, the matching [[link]] in your drawings will also change. If you don't want text accidentally changing in your drawings use [[links|with aliases]].",ADJACENT_PANE_NAME:"Open in adjacent pane",ADJACENT_PANE_DESC:"When CTRL/CMD+SHIFT clicking a link in Excalidraw, by default the plugin will open the link in a new pane. Turning this setting on, Excalidraw will first look for an existing adjacent pane, and try to open the link there. Excalidraw will look for the adjacent pane based on your focus/navigation history, i.e. the workpane that was active before you activated Excalidraw.",MAINWORKSPACE_PANE_NAME:"Open in main workspace",MAINWORKSPACE_PANE_DESC:"When CTRL/CMD+SHIFT clicking a link in Excalidraw, by default the plugin will open the link in a new pane in the current active window. Turning this setting on, Excalidraw will open the link in an existing or new pane in the main workspace. ",LINK_BRACKETS_NAME:"Show [[brackets]] around links",LINK_BRACKETS_DESC:"In PREVIEW mode, when parsing Text Elements, place brackets around links. You can override this setting for a specific drawing by adding excalidraw-link-brackets: true/false to the file's frontmatter.",LINK_PREFIX_NAME:"Link prefix",LINK_PREFIX_DESC:'In PREVIEW mode, if the Text Element contains a link, precede the text with these characters. You can override this setting for a specific drawing by adding excalidraw-link-prefix: "📍 " to the file\'s frontmatter.',URL_PREFIX_NAME:"URL prefix",URL_PREFIX_DESC:'In PREVIEW mode, if the Text Element contains a URL link, precede the text with these characters. You can override this setting for a specific drawing by adding excalidraw-url-prefix: "🌐 " to the file\'s frontmatter.',PARSE_TODO_NAME:"Parse todo",PARSE_TODO_DESC:"Convert '- [ ] ' and '- [x] ' to checkpox and tick in the box.",TODO_NAME:"Open TODO icon",TODO_DESC:"Icon to use for open TODO items",DONE_NAME:"Completed TODO icon",DONE_DESC:"Icon to use for completed TODO items",HOVERPREVIEW_NAME:"Hover preview without CTRL/CMD key",HOVERPREVIEW_DESC:"Toggle On: In Exalidraw view mode the hover preview for [[wiki links]] will be shown immediately, without the need to hold the CTRL/CMD key. In Excalidraw normal mode, the preview will be shown immediately only when hovering the blue link icon in the top right of the element.
Toggle Off: Hover preview is shown only when you hold the CTRL/CMD key while hovering the link.",LINKOPACITY_NAME:"Opacity of link icon",LINKOPACITY_DESC:"Opacity of the link indicator icon in the top right corner of an element. 1 is opaque, 0 is transparent.",LINK_CTRL_CLICK_NAME:"CTRL/CMD + CLICK on text with [[links]] or [](links) to open them",LINK_CTRL_CLICK_DESC:"You can turn this feature off if it interferes with default Excalidraw features you want to use. If this is turned off, only the link button in the title bar of the drawing pane will open links.",TRANSCLUSION_WRAP_NAME:"Overflow wrap behavior of transcluded text",TRANSCLUSION_WRAP_DESC:"Number specifies the character count where the text should be wrapped. Set the text wrapping behavior of transcluded text. Turn this ON to force-wrap text (i.e. no overflow), or OFF to soft-wrap text (at the nearest whitespace).",TRANSCLUSION_DEFAULT_WRAP_NAME:"Transclusion word wrap default",TRANSCLUSION_DEFAULT_WRAP_DESC:"You can set manually set/override word wrapping length using the `![[page#^block]]{NUMBER}` format. Normally you will not want to set a default, because if you transclude text inside a sticky note, then Excalidraw will automatically take care of word wrapping. Set this value to `0` if you do not want to set a default. ",PAGE_TRANSCLUSION_CHARCOUNT_NAME:"Page transclusion max char count",PAGE_TRANSCLUSION_CHARCOUNT_DESC:"The maximum number of characters to display from the page when transcluding an entire page with the ![[markdown page]] format.",QUOTE_TRANSCLUSION_REMOVE_NAME:"Quote translusion: remove leading '> ' from each line",QUOTE_TRANSCLUSION_REMOVE_DESC:"Remove the leading '> ' from each line of the transclusion. This will improve readibility of quotes in text only transclusions
Toggle ON: Remove leading '> '
Toggle OFF: Do not remove leading '> ' (note it will still be removed from the first row due to Obsidian API functionality)",GET_URL_TITLE_NAME:"Use iframely to resolve page title",GET_URL_TITLE_DESC:"Use the http://iframely.server.crestify.com/iframely?url= to get title of page when dropping a link into Excalidraw",MD_HEAD:"Markdown-embed settings",MD_HEAD_DESC:"You can transclude formatted markdown documents into drawings as images CTRL(Shift on Mac) drop from the file explorer or using the command palette action.",MD_TRANSCLUDE_WIDTH_NAME:"Default width of a transcluded markdown document",MD_TRANSCLUDE_WIDTH_DESC:"The width of the markdown page. This effects the word wrapping when transcluding longer paragraphs, and the width of the image element. You can override the default width of an embedded file using the [[filename#heading|WIDTHxMAXHEIGHT]] syntax in markdown view mode under embedded files.",MD_TRANSCLUDE_HEIGHT_NAME:"Default maximum height of a transcluded markdown document",MD_TRANSCLUDE_HEIGHT_DESC:"The embedded image will be as high as the markdown text requires, but not higher than this value. You can override this value by editing the embedded image link in markdown view mode with the following syntax [[filename#^blockref|WIDTHxMAXHEIGHT]].",MD_DEFAULT_FONT_NAME:"The default font typeface to use for embedded markdown files.",MD_DEFAULT_FONT_DESC:'Set this value to "Virgil" or "Cascadia" or the filename of a valid .ttf, .woff, or .woff2 font e.g. MyFont.woff2 You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font: font_or_filename',MD_DEFAULT_COLOR_NAME:"The default font color to use for embedded markdown files.",MD_DEFAULT_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font-color: steelblue',MD_DEFAULT_BORDER_COLOR_NAME:"The default border color to use for embedded markdown files.",MD_DEFAULT_BORDER_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-border-color: gray. Leave empty if you don\'t want a border. ',MD_CSS_NAME:"CSS file",MD_CSS_DESC:"The filename of the CSS to apply to markdown embeds. Provide the filename with extension (e.g. 'md-embed.css'). The css file may also be a plain markdown file (e.g. 'md-embed-css.md'), just make sure the content is written using valid css syntax. If you need to look at the HTML code you are applying the CSS to, then open Obsidian Developer Console (CTRL+SHIFT+i) and type in the following command: \"ExcalidrawAutomate.mostRecentMarkdownSVG\". This will display the most recent SVG generated by Excalidraw. Setting the font-family in the css is has limitations. By default only your operating system's standard fonts are available (see README for details). You can add one custom font beyond that using the setting above. You can override this css setting by adding the following frontmatter-key to the embedded markdown file: \"excalidraw-css: css_file_in_vault|css-snippet\".",EMBED_HEAD:"Embed & Export",EMBED_REUSE_EXPORTED_IMAGE_NAME:"If found, use the already exported image for preview",EMBED_REUSE_EXPORTED_IMAGE_DESC:"This setting works in conjunction with the Auto-export SVG/PNG setting. If an exported image that matches the file name of the drawing is available, use that image instead of generating a preview image on the fly. This will result in faster previews especially when you have many embedded objects in the drawing, however, it may happen that your latest changes are not displayed and that the image will not automatically match your Obsidian theme in case you have changed the Obsidian theme since the export was created. This setting only applies to embedding images into markdown documents. For a number of reasons, the same approach cannot be used to expedite the loading of drawings with many embedded objects. See demonstration here.",EMBED_PREVIEW_SVG_NAME:"Display SVG in markdown preview",EMBED_PREVIEW_SVG_DESC:"Toggle ON: Embed drawing as an SVG image into the markdown preview.
Toggle OFF: Embedd drawing as a PNG image. Note, that some of the image block referencing features do not work with PNG embeds.",PREVIEW_MATCH_OBSIDIAN_NAME:"Excalidraw preview to match Obsidian theme",PREVIEW_MATCH_OBSIDIAN_DESC:"Image preview in documents should match the Obsidian theme. If enabled, when Obsidian is in dark mode, Excalidraw images will render in dark mode. When Obsidian is in light mode, Excalidraw will render light mode as well. You may want to switch 'Export image with background' off for a more Obsidian-integrated look and feel.",EMBED_WIDTH_NAME:"Default width of embedded (transcluded) image",EMBED_WIDTH_DESC:"The default width of an embedded drawing. This applies to live preview edit and reading mode, as well as to hover previews. You can specify a custom width when embedding an image using the ![[drawing.excalidraw|100]] or [[drawing.excalidraw|100x100]] format.",EMBED_TYPE_NAME:"Type of file to insert into the document",EMBED_TYPE_DESC:"When you embed an image into a document using the command palette this setting will specify if Excalidraw should embed the original Excalidraw file or a PNG or an SVG copy. You need to enable auto-export PNG / SVG (see below under Export Settings) for those image types to be available in the dropdown. For drawings that do not have a a corresponding PNG or SVG readily available the command palette action will insert a broken link. You need to open the original drawing and initiate export manually. This option will not autogenerate PNG/SVG files, but will simply reference the already existing files.",EMBED_WIKILINK_NAME:"Embed SVG or PNG as Wiki link",EMBED_WIKILINK_DESC:"Toggle ON: Excalidraw will embed a [[wiki link]]. Toggle OFF: Excalidraw will embed a [markdown](link).",EXPORT_PNG_SCALE_NAME:"PNG export image scale",EXPORT_PNG_SCALE_DESC:"The size-scale of the exported PNG image",EXPORT_BACKGROUND_NAME:"Export image with background",EXPORT_BACKGROUND_DESC:"If turned off, the exported image will be transparent.",EXPORT_PADDING_NAME:"Image Padding",EXPORT_PADDING_DESC:"The padding (in pixels) around the exported SVG or PNG image. If you have curved lines close to the edge of the image they might get cropped during image export. You can increase this value to avoid cropping. You can also override this setting at a file level by adding the excalidraw-export-padding: 5 frontmatter key.",EXPORT_THEME_NAME:"Export image with theme",EXPORT_THEME_DESC:"Export the image matching the dark/light theme of your drawing. If turned off, drawings created in dark mode will appear as they would in light mode.",EXPORT_HEAD:"Export Settings",EXPORT_SYNC_NAME:"Keep the .SVG and/or .PNG filenames in sync with the drawing file",EXPORT_SYNC_DESC:"When turned on, the plugin will automatically update the filename of the .SVG and/or .PNG files when the drawing in the same folder (and same name) is renamed. The plugin will also automatically delete the .SVG and/or .PNG files when the drawing in the same folder (and same name) is deleted. ",EXPORT_SVG_NAME:"Auto-export SVG",EXPORT_SVG_DESC:"Automatically create an SVG export of your drawing matching the title of your file. The plugin will save the *.SVG file in the same folder as the drawing. Embed the .svg file into your documents instead of Excalidraw making you embeds platform independent. While the auto-export switch is on, this file will get updated every time you edit the Excalidraw drawing with the matching name. You can override this setting on a file level by adding the excalidraw-autoexport frontmatter key. Valid values for this key are none,both,svg, and png",EXPORT_PNG_NAME:"Auto-export PNG",EXPORT_PNG_DESC:"Same as the auto-export SVG, but for *.PNG",EXPORT_BOTH_DARK_AND_LIGHT_NAME:"Export both dark- and light-themed image",EXPORT_BOTH_DARK_AND_LIGHT_DESC:"When enabled, Excalidraw will export two files instead of one: filename.dark.png, filename.light.png and/or filename.dark.svg and filename.light.svg
Double files will be exported both if auto-export SVG or PNG (or both) are enabled, as well as when clicking export on a single image.",COMPATIBILITY_HEAD:"Compatibility features",EXPORT_EXCALIDRAW_NAME:"Auto-export Excalidraw",EXPORT_EXCALIDRAW_DESC:"Same as the auto-export SVG, but for *.Excalidraw",SYNC_EXCALIDRAW_NAME:"Sync *.excalidraw with *.md version of the same drawing",SYNC_EXCALIDRAW_DESC:"If the modified date of the *.excalidraw file is more recent than the modified date of the *.md file then update the drawing in the .md file based on the .excalidraw file",COMPATIBILITY_MODE_NAME:"New drawings as legacy files",COMPATIBILITY_MODE_DESC:"By enabling this feature drawings you create with the ribbon icon, the command palette actions, and the file explorer are going to be all legacy *.excalidraw files. This setting will also turn off the reminder message when you open a legacy file for editing.",MATHJAX_NAME:"MathJax (LaTeX) javascript library host",MATHJAX_DESC:"If you are using LaTeX equiations in Excalidraw then the plugin needs to load a javascript library for that. Some users are unable to access certain host servers. If you are experiencing issues try changing the host here. You may need to restart Obsidian after closing settings, for this change to take effect.",EXPERIMENTAL_HEAD:"Experimental features",EXPERIMENTAL_DESC:"Some of these setting will not take effect immediately, only when the File Explorer is refreshed, or Obsidian restarted.",FIELD_SUGGESTER_NAME:"Enable Field Suggester",FIELD_SUGGESTER_DESC:"Field Suggester borrowed from Breadcrumbs and Templater plugins. The Field Suggester will show an autocomplete menu when you type excalidraw- or ea. with function description as hints on the individual items in the list.",FILETYPE_NAME:"Display type (✏️) for excalidraw.md files in File Explorer",FILETYPE_DESC:"Excalidraw files will receive an indicator using the emoji or text defined in the next setting.",FILETAG_NAME:"Set the type indicator for excalidraw.md files",FILETAG_DESC:"The text or emoji to display as type indicator.",INSERT_EMOJI:"Insert an emoji",LIVEPREVIEW_NAME:"Immersive image embedding in live preview editing mode",LIVEPREVIEW_DESC:"Turn this on to support image embedding styles such as ![[drawing|width|style]] in live preview editing mode. The setting will not effect the currently open documents. You need close the open documents and re-open them for the change to take effect.",ENABLE_FOURTH_FONT_NAME:"Enable fourth font option",ENABLE_FOURTH_FONT_DESC:"By turning this on, you will see a fourth font button on the properties panel for text elements. Files that use this fourth font will (partly) lose their platform independence. Depending on the custom font set in settings, they will look differently when loaded in another vault, or at a later time. Also the 4th font will display as system default font on excalidraw.com, or other Excalidraw versions.",FOURTH_FONT_NAME:"Forth font file",FOURTH_FONT_DESC:"Select a .ttf, .woff or .woff2 font file from your vault to use as the fourth font. If no file is selected, Excalidraw will use the Virgil font by default.",SCRIPT_SETTINGS_HEAD:"Settings for installed Scripts",SELECT_FILE:"Select a file then press enter.",NO_MATCH:"No file matches your query.",SELECT_FILE_TO_LINK:"Select the file you want to insert the link for.",SELECT_DRAWING:"Select the drawing you want to insert",TYPE_FILENAME:"Type name of drawing to select.",SELECT_FILE_OR_TYPE_NEW:"Select existing drawing or type name of a new drawing then press Enter.",SELECT_TO_EMBED:"Select the drawing to insert into active document.",SELECT_MD:"Select the markdown document you want to insert",INFINITE_LOOP_WARNING:"EXCALIDRAW WARNING\nAborted loading embedded images due to infinite loop in file:\n",SCRIPT_EXECUTION_ERROR:"Script execution error. Please find error message on the developer console.",LOAD_FROM_BACKUP:"Excalidraw file was corrupted. Loading from backup file.",GOTO_FULLSCREEN:"Goto fullscreen mode",EXIT_FULLSCREEN:"Exit fullscreen mode",TOGGLE_FULLSCREEN:"Toggle fullscreen mode"},enGB={},es={},fr={},hi={},id={},it={},ja={},ko={},nl={},no={},pl={},pt={},ptBR={},ro={},ru={},tr={},zhCN={INSTALL_SCRIPT:"安装此脚本",UPDATE_SCRIPT:"发现可用更新 - 点击安装",CHECKING_SCRIPT:"检查脚本更新 - 点击重新安装",UNABLETOCHECK_SCRIPT:"检查更新失败 - 点击重新安装",UPTODATE_SCRIPT:"已安装最新脚本 - 点击重新安装",OPEN_AS_EXCALIDRAW:"打开为 Excalidraw 绘图",TOGGLE_MODE:"在 Excalidraw 和 Markdown 模式之间切换",CONVERT_NOTE_TO_EXCALIDRAW:"转换空白笔记为 Excalidraw 绘图",CONVERT_EXCALIDRAW:"转换 *.excalidraw 为 *.md 文件",CREATE_NEW:"新建 Excalidraw 绘图",CONVERT_FILE_KEEP_EXT:"*.excalidraw => *.excalidraw.md",CONVERT_FILE_REPLACE_EXT:"*.excalidraw => *.md (兼容 Logseq)",DOWNLOAD_LIBRARY:"导出 stencil 库为 *.excalidrawlib 文件",OPEN_EXISTING_NEW_PANE:"打开已有的绘图 - 于新面板",OPEN_EXISTING_ACTIVE_PANE:"打开已有的绘图 - 于当前面板",TRANSCLUDE:"嵌入绘图(形如 ![[drawing]])到当前文档",TRANSCLUDE_MOST_RECENT:"嵌入最近编辑过的绘图(形如 ![[drawing]])到当前文档",TOGGLE_LEFTHANDED_MODE:"切换为左手模式",NEW_IN_NEW_PANE:"新建绘图 - 于新面板",NEW_IN_ACTIVE_PANE:"新建绘图 - 于当前面板",NEW_IN_POPOUT_WINDOW:"新建绘图 - 于新窗口",NEW_IN_NEW_PANE_EMBED:"新建绘图 - 于新面板 - 并将其嵌入(形如 ![[drawing]])到当前文档",NEW_IN_ACTIVE_PANE_EMBED:"新建绘图 - 于当前面板 - 并将其嵌入(形如 ![[drawing]])到当前文档",NEW_IN_POPOUT_WINDOW_EMBED:"新建绘图 - 于新窗口 - 并将其嵌入(形如 ![[drawing]])到当前文档",EXPORT_SVG:"导出 SVG 文件到当前目录",EXPORT_PNG:"导出 PNG 文件到当前目录",TOGGLE_LOCK:"切换文本元素为原文模式(RAW)/预览模式(PREVIEW)",DELETE_FILE:"从库中删除所选图像(或 MD-Embed)的源文件",INSERT_LINK_TO_ELEMENT:"复制所选元素的内部链接。按住 CTRL/CMD 可复制元素所在分组的内部链接。按住 SHIFT 可复制元素周围区域的内部链接。",INSERT_LINK_TO_ELEMENT_GROUP:"复制所选元素所在分组的内部链接(形如 [[file#^group=elementID]])",INSERT_LINK_TO_ELEMENT_AREA:"复制所选元素周围区域的内部链接(形如 [[file#^area=elementID]])",INSERT_LINK_TO_ELEMENT_NORMAL:"复制所选元素的引用链接(形如 [[file#^elementID]])",INSERT_LINK_TO_ELEMENT_ERROR:"未选择画布里的单个元素",INSERT_LINK_TO_ELEMENT_READY:"链接已生成并复制到剪贴板",INSERT_LINK:"插入文件的内部链接(形如 [[drawing]])到当前绘图",INSERT_IMAGE:"插入图像(以图像形式嵌入)到当前绘图",INSERT_MD:"插入 Markdown 文档(以图像形式嵌入)到当前绘图",INSERT_LATEX:"插入 LaTeX 公式到当前绘图",ENTER_LATEX:"输入 LaTeX 表达式",READ_RELEASE_NOTES:"阅读本插件的最新发行版本说明",TRAY_MODE:"切换绘图工具属性页为面板模式(Panel)/托盘模式(Tray)",SEARCH:"搜索文本",INSTALL_SCRIPT_BUTTON:"安装或更新 Excalidraw 自动化脚本",OPEN_AS_MD:"打开为 Markdown 文件",SAVE_AS_PNG:"导出 PNG 到当前目录(按住 CTRL/CMD 设定导出路径)",SAVE_AS_SVG:"导出 SVG 到当前目录(按住 CTRL/CMD 设定导出路径)",OPEN_LINK:"打开所选元素里的链接 \n(按住 SHIFT 在新面板打开)",EXPORT_EXCALIDRAW:"导出为 .Excalidraw 文件",LINK_BUTTON_CLICK_NO_TEXT:"请选择一个含有链接的图形或文本元素。\n按住 SHIFT 并点击此按钮可在新面板中打开链接。\n您也可以直接在画布中按住 CTRL/CMD 并点击图形或文本元素来打开链接。",FILENAME_INVALID_CHARS:'文件名不能含有以下符号: * " \\ < > : | ? #',FILE_DOES_NOT_EXIST:"文件不存在。按住 ALT(或 ALT + SHIFT)并点击链接来创建新文件。",FORCE_SAVE:"立刻保存该绘图(并更新嵌入了该绘图的面板)。\n详见插件设置中的定期保存选项",RAW:"文本元素正以原文(RAW)模式显示链接。\n点击切换到预览(PREVIEW)模式",PARSED:"文本元素正以预览(PREVIEW)模式显示链接。\n点击切换到原文(RAW)模式",NOFILE:"Excalidraw(没有文件)",COMPATIBILITY_MODE:"*.excalidraw 文件以兼容模式打开。转换为新格式以获得完整的插件功能。",CONVERT_FILE:"转换为新格式",RELEASE_NOTES_NAME:"显示更新说明",RELEASE_NOTES_DESC:"开启:每次更新本插件后,显示最新发行版本的说明。
关闭:您仍可以在 GitHub 上阅读更新说明。",NEWVERSION_NOTIFICATION_NAME:"通知插件更新",NEWVERSION_NOTIFICATION_DESC:"开启:当本插件存在可用更新时,显示通知。
关闭:您需要手动检查本插件的更新(设置 - 第三方插件 - 检查更新)。",FOLDER_NAME:"Excalidraw 文件夹",FOLDER_DESC:"新绘图的默认存储路径。若为空,将在库的根目录中创建新绘图。",FOLDER_EMBED_NAME:"将 Excalidraw 文件夹用于“新建绘图”命令创建的绘图",FOLDER_EMBED_DESC:"在命令面板中执行“新建绘图”系列命令时,新绘图的存储路径。
开启:使用 Excalidraw 文件夹。
关闭:使用 Obsidian 设置的新附件默认位置。",TEMPLATE_NAME:"Excalidraw 模板文件",TEMPLATE_DESC:"Excalidraw 模板文件的完整路径。
如果您的模板在默认的 Excalidraw 文件夹中且文件名是 Template.md,则此项应设为 Excalidraw/Template.md(也可省略 .md 扩展名,即 Excalidraw/Template)。
如果您在兼容模式下使用 Excalidraw,那么您的模板文件也必须是旧的 *.excalidraw 格式,例如 Excalidraw/Template.excalidraw。",SCRIPT_FOLDER_NAME:"Excalidraw 自动化脚本的文件夹",SCRIPT_FOLDER_DESC:"此文件夹用于存放 Excalidraw 自动化脚本。您可以在 Obsidian 命令面板中执行这些脚本,还可以为喜欢的脚本分配快捷键,就像为其他 Obsidian 命令分配快捷键一样。
该项不能设为库的根目录。",COMPRESS_NAME:"压缩 Excalidraw JSON",COMPRESS_DESC:"Excalidraw 绘图文件默认将元素记录为 JSON 格式。开启此项,可将元素的 JSON 数据以 BASE64 编码(使用 LZ-String 算法)。这样做的好处是:一方面可以避免原来的明文 JSON 数据干扰 Obsidian 的文本搜索结果,另一方面减小了绘图文件的体积。
当您通过功能区按钮或命令将绘图切换成 Markdown 模式时,数据将被解码回 JSON 格式以便阅读和编辑;而当您切换回 Excalidraw 模式时,数据就会被再次编码。
开启此项后,对于之前已存在的未压缩的绘图文件,需要重新打开并保存它们才能生效。",AUTOSAVE_NAME:"定期保存",AUTOSAVE_DESC:"定期保存当前绘图。此功能专为移动设备设计 —— 在桌面端,当您关闭 Excalidraw 或 Obsidian,或者移动焦点到其他面板的时候,软件是会自动保存的;但是在手机或平板上通过滑动手势退出 Obsidian 时,可能无法顺利触发自动保存。因此我添加了定期保存功能作为弥补。",AUTOSAVE_INTERVAL_NAME:"定期保存的时间间隔",AUTOSAVE_INTERVAL_DESC:"每隔多长时间执行一次保存。如果当前绘图没有发生改变,将不会触发保存。",FILENAME_HEAD:"文件名",FILENAME_DESC:"

点击阅读日期和时间格式参考

",FILENAME_SAMPLE:"“新建绘图”系列命令创建的文件名形如:",FILENAME_EMBED_SAMPLE:"“新建绘图并嵌入到当前文档”系列命令创建的文件名形如:",FILENAME_PREFIX_NAME:"“新建绘图”系列命令创建的文件名前缀",FILENAME_PREFIX_DESC:"执行“新建绘图”系列命令时,创建的绘图文件名的第一部分",FILENAME_PREFIX_EMBED_NAME:"“新建绘图并嵌入到当前文档”系列命令创建的文件名前缀",FILENAME_PREFIX_EMBED_DESC:"执行“新建绘图并嵌入到当前文档”系列命令时,创建的绘图文件名是否以当前文档名作为前缀?
开启:
关闭:否",FILENAME_POSTFIX_NAME:"“新建绘图并嵌入到当前文档”系列命令创建的文件名的中间部分",FILENAME_POSTFIX_DESC:"介于文件名前缀和日期时间之间的文本。仅对“新建绘图并嵌入到当前文档”系列命令创建的绘图生效。",FILENAME_DATE_NAME:"文件名里的日期时间",FILENAME_DATE_DESC:"文件名的最后一部分。允许留空。",FILENAME_EXCALIDRAW_EXTENSION_NAME:"文件扩展名(.excalidraw.md 或 .md)",FILENAME_EXCALIDRAW_EXTENSION_DESC:"该选项在兼容模式(即非 Excalidraw 专用 Markdown 文件)下不会生效。
开启:使用 .excalidraw.md 作为扩展名。
关闭:使用 .md 作为扩展名。",DISPLAY_HEAD:"显示",LEFTHANDED_MODE_NAME:"左手模式",LEFTHANDED_MODE_DESC:"目前只在托盘模式下生效。若开启此项,则托盘(绘图工具属性页)将位于右侧。
开启:左手模式。
关闭:右手模式。",MATCH_THEME_NAME:"使新建的绘图匹配 Obsidian 主题",MATCH_THEME_DESC:"如果 Obsidian 使用黑暗主题,新建的绘图文件也将使用黑暗主题。
但是若设置了模板,新建的绘图文件将跟随模板主题;另外,此功能不会作用于已有的绘图。
开启:跟随 Obsidian 主题风格。
关闭:跟随模板主题风格。",MATCH_THEME_ALWAYS_NAME:"使已有的绘图匹配 Obsidian 主题",MATCH_THEME_ALWAYS_DESC:"如果 Obsidian 使用黑暗主题,则绘图文件也将以黑暗主题打开;反之亦然。
开启:匹配 Obsidian 主题风格。
关闭:采用上次保存时的主题风格。",MATCH_THEME_TRIGGER_NAME:"Excalidraw 主题跟随 Obsidian 主题变化",MATCH_THEME_TRIGGER_DESC:"开启此项,则切换 Obsidian 的黑暗/明亮主题时,已打开的 Excalidraw 面板的主题会随之改变。
开启:跟随主题变化。
关闭:不跟随主题变化。",DEFAULT_OPEN_MODE_NAME:"Excalidraw 的默认运行模式",DEFAULT_OPEN_MODE_DESC:"设置 Excalidraw 的运行模式:普通模式(Normal)/禅模式(Zen)/阅读模式(View)。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-default-mode: normal/zen/view 的键值对。",DEFAULT_PEN_MODE_NAME:"触控笔模式(Pen mode)",DEFAULT_PEN_MODE_DESC:"打开绘图时,是否自动开启触控笔模式?",ZOOM_TO_FIT_NAME:"自动缩放以适应面板调整",ZOOM_TO_FIT_DESC:"调整面板大小时,自适应地缩放画布
开启:自动缩放。
关闭:禁用自动缩放。",ZOOM_TO_FIT_MAX_LEVEL_NAME:"自动缩放的最高级别",ZOOM_TO_FIT_MAX_LEVEL_DESC:"自动缩放画布时,允许放大的最高级别。该值不能低于 0.5(50%)且不能超过 10(1000%)。",LINKS_HEAD:"链接(Links) & 以文本形式嵌入到绘图中的文档(Transclusion)",LINKS_DESC:"按住 CTRL/CMD 并点击包含 [[链接]] 的文本元素可以打开其中的链接。
如果所选文本元素包含多个 [[有效的内部链接]] ,只会打开第一个链接;如果所选文本元素包含有效的 URL 链接 (如 https://http://),插件会在浏览器中打开链接。
链接的源文件被重命名时,绘图中相应的 [[内部链接]] 也会同步更新。若您不愿绘图中的链接外观因此而变化,可使用 [[内部链接|别名]]。",ADJACENT_PANE_NAME:"在相邻面板中打开",ADJACENT_PANE_DESC:"按住 CTRL/CMD + SHIFT 并点击绘图里的内部链接时,插件默认会在新面板中打开该链接。
若开启此项,Excalidraw 会先尝试寻找已有的相邻面板(按照右侧、左侧、上方、下方的顺序),并在其中打开该链接。如果找不到,再在新面板中打开。",MAINWORKSPACE_PANE_NAME:"在主工作区中打开",MAINWORKSPACE_PANE_DESC:"按住 CTRL/CMD + SHIFT 并点击绘图里的内部链接时,插件默认会在当前窗口的新面板中打开该链接。
若开启此项,Excalidraw 会在主工作区的面板中打开该链接。",LINK_BRACKETS_NAME:"在链接的两侧显示 [[中括号]]",LINK_BRACKETS_DESC:"文本元素处于预览模式时,在内部链接的两侧显示中括号。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-link-brackets: true/false 的键值对。",LINK_PREFIX_NAME:"内部链接的前缀",LINK_PREFIX_DESC:'文本元素处于预览模式时,如果其中包含链接,则添加此前缀。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-link-prefix: "📍 " 的键值对。',URL_PREFIX_NAME:"外部链接的前缀",URL_PREFIX_DESC:'文本元素处于预览模式时,如果其中包含外部链接,则添加此前缀。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-url-prefix: "🌐 " 的键值对。',PARSE_TODO_NAME:"解析任务列表(Todo)",PARSE_TODO_DESC:"将文本元素中的 - [ ]- [x] 前缀显示为方框。",TODO_NAME:"未完成的 Todo 项目",TODO_DESC:"未完成的 Todo 项目的符号",DONE_NAME:"已完成的 Todo 项目",DONE_DESC:"已完成的 Todo 项目的符号",HOVERPREVIEW_NAME:"鼠标悬停预览内部链接",HOVERPREVIEW_DESC:"开启:在 Excalidraw 阅读模式(View)下,鼠标悬停在 [[内部链接]] 上即可预览;而在普通模式(Normal)下, 鼠标悬停在内部链接右上角的蓝色标识上即可预览。
关闭:鼠标悬停在 [[内部链接]] 上,并且按住 CTRL/CMD 时进行预览。",LINKOPACITY_NAME:"链接标识的透明度",LINKOPACITY_DESC:"含有链接的元素,其右上角的链接标识的透明度。介于 0(全透明)到 1(不透明)之间。",LINK_CTRL_CLICK_NAME:"按住 CTRL/CMD 并点击含有 [[链接]] 或 [别名](链接) 的文本来打开链接",LINK_CTRL_CLICK_DESC:"如果此功能影响到您使用某些原版 Excalidraw 功能,可将其关闭。关闭后,您只能通过绘图面板标题栏中的链接按钮来打开链接。",TRANSCLUSION_WRAP_NAME:"Transclusion 的折行方式",TRANSCLUSION_WRAP_DESC:"中的 number 表示嵌入的文本溢出时,在第几个字符处进行折行。
此开关控制具体的折行方式。若开启,则严格在 number 处折行,禁止溢出;若关闭,则允许在 number 位置后最近的空格处折行。",TRANSCLUSION_DEFAULT_WRAP_NAME:"Transclusion 的默认折行位置",TRANSCLUSION_DEFAULT_WRAP_DESC:"除了通过 ![[doc#^block]]{number} 中的 number 来控制折行位置,您也可以在此设置 number 的默认值。
一般设为 0 即可,表示不设置固定的默认值,这样当您需要嵌入文档到便签中时,Excalidraw 能更好地帮您自动处理。",PAGE_TRANSCLUSION_CHARCOUNT_NAME:"Transclusion 的最大显示字符数",PAGE_TRANSCLUSION_CHARCOUNT_DESC:"以 ![[内部链接]]![](内部链接) 的形式将文档以文本形式嵌入到绘图中时,该文档在绘图中可显示的最大字符数量。",GET_URL_TITLE_NAME:"使用 iframly 获取页面标题",GET_URL_TITLE_DESC:"拖放链接到 Excalidraw 时,使用 http://iframely.server.crestify.com/iframely?url= 来获取页面的标题。",MD_HEAD:"以图像形式嵌入到绘图中的 Markdown 文档(MD-Embed)",MD_HEAD_DESC:"您还可以将 Markdown 文档以图像形式(而非文本形式)嵌入到绘图中。方法是按住 CTRL/CMD 并从文件管理器中把文档拖入绘图,或者执行“以图像形式嵌入”系列命令。",MD_TRANSCLUDE_WIDTH_NAME:"MD-Embed 的默认宽度",MD_TRANSCLUDE_WIDTH_DESC:"MD-Embed 的宽度。该选项会影响到折行,以及图像元素的宽度。
您可为绘图中的某个 MD-Embed 单独设置此项,方法是将绘图切换至 Markdown 模式,并修改相应的 [[Embed文件名#标题|宽度x最大高度]]。",MD_TRANSCLUDE_HEIGHT_NAME:"MD-Embed 的默认最大高度",MD_TRANSCLUDE_HEIGHT_DESC:"MD-Embed 的高度取决于 Markdown 文档内容的多少,但最大不会超过该值。
您可为绘图中的某个 MD-Embed 单独设置此项,方法是将绘图切换至 Markdown 模式,并修改相应的 [[Embed文件名#^块引ID|宽度x最大高度]]。",MD_DEFAULT_FONT_NAME:"MD-Embed 的默认字体",MD_DEFAULT_FONT_DESC:"可以设为 VirgilCasadia 或其他有效的 .ttf/.woff/.woff2 字体文件(如 我的字体.woff2)。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-font: 字体名或文件名 的键值对。",MD_DEFAULT_COLOR_NAME:"MD-Embed 的默认文本颜色",MD_DEFAULT_COLOR_DESC:"可以填写 HTML 颜色名,如 steelblue(参考 HTML Color Names),或者有效的 16 进制颜色值,例如 #e67700,或者任何其他有效的 CSS 颜色。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-font-color: steelblue 的键值对。",MD_DEFAULT_BORDER_COLOR_NAME:"MD-Embed 的默认边框颜色",MD_DEFAULT_BORDER_COLOR_DESC:"可以填写 HTML 颜色名,如 steelblue(参考 HTML Color Names),或者有效的 16 进制颜色值,例如 #e67700,或者任何其他有效的 CSS 颜色。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-border-color: gray 的键值对。
如果您不想要边框,请留空。",MD_CSS_NAME:"MD-Embed 的默认 CSS 样式表",MD_CSS_DESC:"MD-Embed 图像所采用的 CSS 样式表文件名。需包含扩展名,例如 md-embed.css。允许使用 Markdown 文件(如 md-embed-css.md),但其内容应符合 CSS 语法。
如果您要查询 CSS 所作用的 HTML 节点,请在 Obsidian 开发者控制台(CTRL+SHIFT+i)中键入命令:ExcalidrawAutomate.mostRecentMarkdownSVG —— 这将显示 Excalidraw 最近生成的 SVG。
此外,在 CSS 中不能任意地设置字体,您一般只能使用系统默认的标准字体(详见 README),但可以通过上面的设置来额外添加一个自定义字体。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-css: 库中的CSS文件或CSS片段 的键值对。",EMBED_HEAD:"嵌入到文档中的绘图(Embed) & 导出",EMBED_REUSE_EXPORTED_IMAGE_NAME:"将之前已导出的图像作为 Embed 的预览图(如果存在的话)",EMBED_REUSE_EXPORTED_IMAGE_DESC:"该选项与“自动导出 SVG/PNG 副本”选项配合使用。如果存在文件名相匹配的 SVG/PNG 副本,则将其作为 Embed 的预览图,而不再重新生成预览图。
该选项能够提高性能,尤其是当 Embed 中含有大量图像或 MD-Embed 时。但是,该选项也可能导致预览图无法立即响应你最新的修改,或者你对 Obsidian 主题风格的改变。
该选项仅作用于嵌入到文档中的绘图。由于种种原因,该技术无法用于加快绘图文件的打开速度。详见此说明。",EMBED_PREVIEW_SVG_NAME:"生成 SVG 格式的 Embed 预览图",EMBED_PREVIEW_SVG_DESC:"开启:在 Markdown 预览模式下,为 Embed 生成 SVG 格式的预览图。
关闭:为 Embed 生成 PNG 格式的预览图。注意:PNG 格式预览图不支持某些 绘图元素的块引用特性。",PREVIEW_MATCH_OBSIDIAN_NAME:"Embed 预览图匹配 Obsidian 主题",PREVIEW_MATCH_OBSIDIAN_DESC:"开启此项,则当 Obsidian 处于黑暗模式时,Embed 的预览图也会以黑暗模式渲染;当 Obsidian 处于明亮模式时,预览图也会以明亮模式渲染。
您可能还需要关闭“导出的图像包含背景”开关,来获得与 Obsidian 更加协调的观感。",EMBED_WIDTH_NAME:"Embed 预览图的默认宽度",EMBED_WIDTH_DESC:"该选项同时作用于 Obsidian 实时预览模式下的编辑视图和阅读视图,以及鼠标悬停时浮现的预览图。
您可为某个要嵌入到文档中的绘图(Embed)单独设置此项,方法是修改相应的链接格式为形如 ![[drawing.excalidraw|100]][[drawing.excalidraw|100x100]] 的格式。",EMBED_TYPE_NAME:"“嵌入绘图到当前文档”系列命令的源文件类型",EMBED_TYPE_DESC:"在命令面板中执行“嵌入绘图到当前文档”系列命令时,要嵌入绘图文件本身,还是嵌入其 PNG 或 SVG 副本。
如果您想选择 PNG 或 SVG 副本,需要先开启下方的“自动导出 PNG 副本”或“自动导出 SVG 副本”开关。
如果您选择了 PNG 或 SVG 副本,当副本不存在时,该命令将会插入一条损坏的链接,您需要打开绘图文件并手动导出副本才能修复 —— 也就是说,该选项不会自动帮您生成 PNG/SVG 副本,而只会引用已有的 PNG/SVG 副本。",EMBED_WIKILINK_NAME:"“嵌入绘图到当前文档”命令产生的内部链接类型",EMBED_WIKILINK_DESC:"开启:将产生 ![[Wiki 链接]]关闭:将产生 ![](Markdown 链接)。",EXPORT_PNG_SCALE_NAME:"导出的 PNG 图像的比例",EXPORT_PNG_SCALE_DESC:"导出的 PNG 图像的大小比例",EXPORT_BACKGROUND_NAME:"导出的图像包含背景",EXPORT_BACKGROUND_DESC:"如果关闭,将导出透明背景的图像。",EXPORT_PADDING_NAME:"导出的图像的空白边距",EXPORT_PADDING_DESC:"导出的 SVG/PNG 图像四周的空白边距(单位:像素)。
增加该值,可以避免在导出图像时,靠近图像边缘的图形被裁掉。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-export-padding: 5 的键值对。",EXPORT_THEME_NAME:"导出的图像包含主题",EXPORT_THEME_DESC:"导出与绘图的黑暗/明亮主题匹配的图像。如果关闭,在黑暗主题下导出的图像将和明亮主题一样。",EXPORT_HEAD:"导出设置",EXPORT_SYNC_NAME:"保持 SVG/PNG 文件名与绘图文件同步",EXPORT_SYNC_DESC:"打开后,当绘图文件被重命名时,插件将同步更新同文件夹下的同名 .SVG 和 .PNG 文件。当绘图文件被删除时,插件将自动删除同文件夹下的同名 .SVG 和 .PNG 文件。",EXPORT_SVG_NAME:"自动导出 SVG 副本",EXPORT_SVG_DESC:"自动导出和绘图文件同名的 SVG 副本。插件会将副本保存到绘图文件所在的文件夹中。在文档中嵌入这个 SVG 文件,相比直接嵌入绘图文件,具有更强的跨平台能力。
此开关开启时,每次您编辑 Excalidraw 绘图,其 SVG 文件副本都会同步更新。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-autoexport: none/both/svg/png的键值对",EXPORT_PNG_NAME:"自动导出 PNG 副本",EXPORT_PNG_DESC:"和“自动导出 SVG 副本”类似,但是导出格式为 *.PNG。",EXPORT_BOTH_DARK_AND_LIGHT_NAME:"同时导出黑暗和明亮风格的图像",EXPORT_BOTH_DARK_AND_LIGHT_DESC:"若开启,Excalidraw 将导出两个文件:filename.dark.png(或 filename.dark.svg)和 filename.light.png(或 filename.light.svg)。
该选项可作用于“自动导出 SVG 副本”、“自动导出 PNG 副本”,以及其他的手动的导出命令。",COMPATIBILITY_HEAD:"兼容性设置",EXPORT_EXCALIDRAW_NAME:"自动导出 Excalidraw 旧格式副本",EXPORT_EXCALIDRAW_DESC:"和“自动导出 SVG 副本”类似,但是导出格式为 *.excalidraw。",SYNC_EXCALIDRAW_NAME:"新旧格式绘图文件的内容保持同步",SYNC_EXCALIDRAW_DESC:"如果旧格式(*.excalidraw)绘图文件的修改日期比新格式(*.md)更新,则根据旧格式文件的内容来更新新格式文件。",COMPATIBILITY_MODE_NAME:"以旧格式创建新绘图",COMPATIBILITY_MODE_DESC:"开启此功能后,您通过功能区按钮、命令面板、文件浏览器等创建的绘图都将是旧格式(*.excalidraw)。此外,您打开旧格式绘图文件时将不再收到提醒消息。",MATHJAX_NAME:"MathJax (LaTeX) 的 javascript 库服务器",MATHJAX_DESC:"如果您在绘图中使用 LaTeX,插件需要从服务器获取并加载一个 javascript 库。如果您的网络无法访问某些库服务器,可以尝试通过此选项更换库服务器。更改此选项后,您可能需要重启 Obsidian 来使其生效。",EXPERIMENTAL_HEAD:"实验性功能",EXPERIMENTAL_DESC:"以下部分设置不会立即生效,需要刷新文件资源管理器或者重启 Obsidian 才会生效。",FIELD_SUGGESTER_NAME:"开启字段建议",FIELD_SUGGESTER_DESC:"开启后,当您在编辑器中输入 excalidraw- 或者 ea. 时,会弹出一个带有函数说明的自动补全提示菜单。
该功能借鉴了 Breadcrumbs 和 Templater 插件。",FILETYPE_NAME:"在文件浏览器中为 excalidraw.md 文件添加类型标识符(如 ✏️)",FILETYPE_DESC:"可通过下一项设置来自定义类型标识符。",FILETAG_NAME:"excalidraw.md 文件的类型标识符",FILETAG_DESC:"要显示为类型标识符的 emoji 或文本。",INSERT_EMOJI:"插入 emoji",LIVEPREVIEW_NAME:"嵌入绘图到文档时,模拟嵌入图像的语法",LIVEPREVIEW_DESC:"开启此项,则可在 Obsidian 实时预览模式的编辑视图下,用形如 ![[绘图|宽度|样式]] 的语法来嵌入绘图。
该选项不会在已打开的文档中立刻生效 —— 你需要重新打开此文档来使其生效。",ENABLE_FOURTH_FONT_NAME:"为文本元素启用本地字体",ENABLE_FOURTH_FONT_DESC:"开启此项后,文本元素的属性面板里会多出一个本地字体按钮。
使用了本地字体的绘图文件,将会失去一部分跨平台能力 —— 若将绘图文件移动到其他库中打开,显示效果可能会截然不同;若在 excalidraw.com 或者其他版本的 Excalidraw 中打开,使用本地字体的文本会变回系统默认字体。",FOURTH_FONT_NAME:"本地字体文件",FOURTH_FONT_DESC:"选择库文件夹中的一个 .ttf, .woff 或 .woff2 字体文件作为本地字体文件。若未选择文件,则使用默认的 Virgil 字体。",SCRIPT_SETTINGS_HEAD:"已安装脚本的设置",SELECT_FILE:"选择一个文件后按回车。",NO_MATCH:"查询不到匹配的文件。",SELECT_FILE_TO_LINK:"选择要插入(链接)到当前绘图中的文件。",SELECT_DRAWING:"选择要插入(以图像形式嵌入)到当前绘图中的图像。",TYPE_FILENAME:"键入要选择的绘图名称。",SELECT_FILE_OR_TYPE_NEW:"选择已有绘图,或者新绘图的类型,然后按回车。",SELECT_TO_EMBED:"选择要插入(嵌入)到当前文档中的绘图。",SELECT_MD:"选择要插入(以图像形式嵌入)到当前绘图中的 Markdown 文档。",INFINITE_LOOP_WARNING:"EXCALIDRAW 警告\n停止加载嵌入的图像,因为此文件中存在死循环:\n",SCRIPT_EXECUTION_ERROR:"脚本运行错误。请在开发者控制台中查看错误信息。",LOAD_FROM_BACKUP:"Excalidraw 文件已损坏。尝试从备份文件中加载。",GOTO_FULLSCREEN:"进入全屏模式",EXIT_FULLSCREEN:"退出全屏模式",TOGGLE_FULLSCREEN:"切换全屏模式"},zhTW={};const localeMap={ar:ar,cs:cz,da:da,de:de,en:en,"en-gb":enGB,es:es,fr:fr,hi:hi,id:id,it:it,ja:ja,ko:ko,nl:nl,nn:no,pl:pl,pt:pt,"pt-br":ptBR,ro:ro,ru:ru,tr:tr,"zh-cn":zhCN,"zh-tw":zhTW},locale=localeMap[obsidian.moment.locale()];function t$d(A){return locale||errorlog({where:"helpers.t",message:"Error: Excalidraw locale not found",locale:obsidian.moment.locale()}),locale&&locale[A]||en[A]}var html2canvas$1={exports:{}}; +const EXCALIDRAW_PACKAGES = "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i+qm3OD+qkSsCBqlo/jkqlvtDsqnUqllkm0qkA8ntKnOqni4JMqlEqksql2qnRim+tjkRJ80l4zFgVgs6RmYSyqk2qkcqkhligimUsn80kTykggBTynhclyqnlqmrwBsqnRqk0qkT6LuCksUk/0lYRgmikye4a0pJtgzkHVqlFql1qnWqlZqm2qlNqmKqnZqnegAqqlogBKdCgilbqiZql+qkTqnmtjoAALUJFCn3ClIUnHim2imCQBeQCWHQCQROHRe8ktskaYBtsmLKH+8krUm9slB8n2KlLNSOKn60kjsmWUnG0kHUm8KleKl2MlW0kLsn+KleClBKll8m6AAV8kbslSKm+MkFcnYsCwsTtEnFKmasQZMnykjlKnX0LykjbmJonQTCh/qkX8gn9gPtxxkmd4D7KkXKmysCXQLmqkNUn1KkNkl/0nTSmFwBQcmwamXimEcm5KmDMkHinv0niqlYqnMCkmKmzUnqMmeSQyfEnqk9slt1RMKkXqkm4lh8nDsmCEkuKl3qmWMkQMn/qlRcjhUBQwivklIqkQwhrKkO2zV0lq4DRSlaKmHCm6ilialgCm6imgqkACm5Kk7imxSxt0mOEnYamI0mzSltSnzSmGBAtKmYcmPKmGSmYsHCCng0mLSlSSk5SnIclhtiZtiRtgLCnGin9zEmqkoECGqmP4klyCDzGmqmNykWqnaSkT9Ac0nojjbXQCqlgakYqhlKnAamlKnPkAwakAak8alugCvknksk/4m7MmJsnz0kpslWqn9clcanuFCBakothlElrthVOAhqkhykItgRCiWykA8lYMlpanPik3yklUkxalwam8akJakYknJanCSlmylVzKwykqyl1ckiSllal0qk8skLTFQKlGcmikl5alxanmtgJakRCjByklamngBDKlCezoKlsynQKlNalnUhBamFamM2Ltammymdak6bzdanNskzrFNqTmfHDAmq0n0Kndska0nlPTnqnDskOKlbUnh8k2e52cgTYR5PTm4lkn61eRu4nN/HpRTR4lJ8m7UmcoD0Ujp4n0QAZ8n3qmeKknUlPqkCKkvqnOMm3UnvqnpCmfqnrsmSKn6jjSKkyqmcCndSosgD9am3TCKUCyMlF7oVZoezTBSkPYR6Y5dEmVdhvOB1gJISBJ1Cjikd4kpPAa6BTimAtiXsnIal3NiyalEinFEl/alkHR0il8ECkam88ngVJpCAeqnDdiQ6ni4LNKERynBUnfalYsCwanZaTsZzcqIgikkuT08lDIC8vinEkWzQY6mozCKUDA6lMuCNKE46kK4AL0mwCn80nXclZYDQKkU6m/als6n7XoginMyljcI2SleilzqkQMnC6lU6kDal+WCi0l5ylLCmeUlB0kHCle8D46nFEkQ6kXOB1gIgAA1SgyanC5CjgiaqmaskbmhE6mNYZ5LjjymDqnX0AlUly6kAam3Sk10kh0lO8LmYgR0m9CADqmTynW6mmcm26ncakK6lbniegCO6lh0nQiku6m/8kye4XskQeCW6nu6klqlfam6YT9amSEnZYAgAA8il8dgX0ma6ng6lE6k66kk6lb75u6m1qke6n9cle6mxamodw06li6kogGiTw86ksAHNxDwvjh6lZ6mR6mOCm56lwakKKkcICZ6nFqmy6nR6ny6l16mikmUsAWMGLikXEmS0nAylKSk4UnWDAV6mN6k26nN6kBal0U4Aalt6nqEniGEJUlTwCcdif8nACRN6n10B5anQaB5xSikk16nAimIkA+slfKl3DhP8l64C/KkbCku6lbClLbi+kCf1iotj8YCbyJbzAMgAv2C0OAOADf8nLhE8qklsmXsn1oDaKkj85KvBfgmJMR8viiCwMAFNsDWEC0ODXADz6logCL6lkSrxQBRYTD6lRchr6mrsT3sA/Kmv8l76lgjgH6mDCAjgDH6lBACn6nGQB8exhmRX6mVsBWMDjSB/6k/al4amAGm7Emr6kYMk05YT0nr0l0Cgz1F8diYsFOxCfUkFcmr6m4Gkr6kgGk64QEGmiklJwBSIDuUlosES6k/ClBVAbKkWcBLRAn6masmcGmIGm8GnyskZ0l7CnB6n/8nring1D8ckK4BO6nh0lgjhUGl0GmN1DL6nAGkL6l4akMGnPEDp3q1UnkpTdnggFD1UnQalYGmU6kAalL6mVpS0GlKGn6GkqGlMGkxgDUKC4KnQAAJ6m676Akl4dgaSn/4ksAEjECG4De0kwMmr6lBtgU6nG8mSUl8ymcGm6imYsF7KlCqnEin6amJKn9T5t0maakA8m9kk9KkpKlDSlBsnOEn88lflQ2ilZKl0AAu5gZYboqkPMnWdSGMCJGmrCw2angEk9yB5IAmsCOakNUkbLIT9A1amCMl2UmuGlyGnQthFDgeGkIMmuylmsnYykE8mqylO8mpanxclNcn50nlGnGGmgGnuGm6YSeGmKymd4BiykxckRGnNGmDUHiSklim3Mky6llGmEMluGlVGndGmtEmpckMAF4RFNslOYyUalUYDRiQBfGzalU/5dskB8n6Ul2KkramXqlraksakcKm3qnjskycQQMnOFG9eC/CC4YSSclmCkNim1yluBANthC/LjGmmclnGmu0mXGlx6lKin1tgnUxdwAuUCnGkwDbnGm4gCXGn6i6qtbC5CjykkADnKlf0lA0kfEmgmn6alYalA0l5qkkxIRqklUnPGkXGn3aiAmkYUrurzq/pgVi4gA9ymEsHFxCfUmTalmKmriHvvGtn7zalbGl6Mk7GncEl7GnMansKknalcKkV4lXanZ8mPqlJcL58n3alF8mBKmiKnBKnl8mvalhKkyKn9cmfUhBQB5amikmWSAAi7MQSgQDF6kM6nmOg8mmcCl8mkcAACmnaADGIDWGkKal2GkJElUEkXwCIMAFGkl74kikFcnSmn9an9Lb26ngikh0lHGBtwC5UmHCmQkmkiklUnamny6kYYTR3zCalb9Ciaku6naKmaKn2mnialA0kyanaslKal9Kk4amqakbSnqakHKkLCnvSl4dhQmmAMkGamaclGamxfAxcmEylucno0muan5rjualoanEalNUkmamngD+Sk3slZCkQMkWmkj6lWml+cmfthluSezjDSnmmksyD9alECi1snr7A80ksAGMSm8mkFmny6lFmlT0lzGkyxERakXElRalSmmVmkj6msaEeQB0sn3aiginfKl64CSalp8CKmkT9CrCmP6nQCm0ABL0mv6kmsD8XjXYS0SC4EDbKmf6l+64/6lXABpmnNmne6mtmlgqziimQGnrCnX4T/Kk36noGmSKyjmmLMYArjtkxTml8dhosHDyiCxBzmkLmn8mny6nLmm2IHVsk+smrClJjj5lD5lBO7QImmmcnpmlLmkT6nQaAVZoQGl64BJjhO7T5lCRMDPmkVmkXmktmnvmne1A+QBLABfml/YRrgBSilO7SRMA9sBammLml56lXmkBQDxECb0nzmyBmnKmmOGlqmn7KmYqm88m3smNmmOCmvmmIWnvmnQ2yrqnKalUSl16n4amIyl1Slkxwoyn1Sm0knwWlAWne6lrmFqqn4ACFilYqkemkqanLil4antSlu4ByamscB7immmkq6kB0l3Snwkn6KkJykQ6nm6kAvKummXslxmnOakCqk9mk6KnFGlOmlSan4WkQSmEWlwanMWlKdALCCPADHCEhwBsWm88mPGmAWkymny6mYwCsSk2mkiGn36lU0l2mlqKmHCn1KkKWmRSkSGmCcmbikMWnGWkj6mYwB6mkT8n3im96lZ4i96AFGl4Wk6Sl1Gn3KnuqmVamlakhckWyk3KnIylLSnISkYUlSgDcrDbim6ilJCGK4CNIBUdD6MCn9D4wAWWmh6m7qpq8nVz72anWams8kpskUane8mHqm0AnjYS0amLakMam7GlMalsKnOKlHGkWMkycRZ8logDTsneKkOMm+KmF8kBKmuMn3UliKkhKlu0ncmmfakEWn+9w41Dr8l3GmfGk2Sk96lHSnKSlJymxKkoqlCamq6mHsnG6n/imXsk+SmEClQ0n06mqSnK6lrWlnEkECkTcKLCko6k30iXsnhmn4clEynmSlxmmmmkD6lDqm8mkDWl6LFXGkc8mYt4xCBhSkfEnDmkCinmmmXWldyCqBFDNhzClwimamn86n1akJtiikmWpDiQSDWmSclWykIthDKmpOCFWkHqlUtRc7TjfFlWmMKnLakUmlVWlOKk3ql7Ul1WnW8oNWksgBNWm3ak+Kl+KkPanLsnsmkfqk/kBcmlV8l9WkQSlCin0Cl94k9UlQdi7MljWmgykTWk/0kfEmRSkFclnCkN8kY6mOqnGClaEmRGl8ymbqmd8nuh7d8m1EC98lmimpKmJGk0cDGACGsmGskJiniskRWlJKmH0n1impymM2nMin3aj9kkBDAQMlnCmK2n8angBCCalCWlxslFsnR0mWWm7qo8qkLWlh6nK2ny2mEkRMUmkMkfCn9SmZoBG2kICmK2l9Smj7I3CmY0nLbBZKl8whhGkVakfslDKkjShW2nIikm2k22nm2mj7JI8me2lnklm2mT5AngAW2l1UlPtjpsAFqmmcmk2kK2nicnycnI8n9ckq2mx2lIMn9GnhGknknu2lk6kC0nR2ne2mtcljhzx2mcCmJ2kIMn7cmBWluqkNGkUklp2k6bwZ6klUlZ2nKESm2nTLhGGJ52mOCkF2mkMlGGJ0iDoymKbwGTL5ABy2lTCkx2mzGl1EkB2m12njnpByn7KkZsmpGm2SlQZzS2kfGmNth5mlR2nH8mq2lyalHKlJGknKlmxAnKlfWlV2lRCl5CkDSlKClj2krxjKimMylnNBNilp8DjJAp0lwmk22K2EBFSn1ClgSn92mpklDCkDSlNSl9yl1CmxknhCkz2mDCmSCmQmnhKlr2kv2m06Eb8LxylOUCeGDXGmpylQym6xEKCngymEAHKCmqCnWdTlak4ynVCmVCnlCnaamrhKwOnaClmqGECmwYCSmmN2nr2k32lCuDRLI/2nA6TiQD/2nc8mAOmFKnAOmf/5KCngAAqClpGnqCkIyn6SnQOmqwEIOn6Cks2mN6Bs2k+qkf2le2mdDAfWmNKlA0mb6m/QDb6kcti76kbmn76kAKCH6nZlh7CmHvDP8nOmlBGnUWlLgBZCn9yklSnMOkUimsOlyamt0lPWnP2mJtjAKmVyl4OmNikX0kS2knWkQCkA8mqOlQuBYkmtykNCmyOnEKkfynYmnzsD32mhCmP2kYSkk2lIKkkKkgKmPEnv2nvnFW6lV6k2OnUCl6Onzyln4mGWn52lRCm/ylk0EnymYA65OhuOnIKkgKlfykHynGOmyjRZYDwKnF2kCSFAKnBOmVyklGld2kRimjqD3ykvICWGmtgD5ikvymikmxOl2OnxOmYsn7ymJOkGklwKn/ymKjhZOm2OmmOmD0lgKmVOmBtzfWkYKkNamBOmwKmdthROn0clSSD1Olbyk5Om7ylkKnlmkF7QC6lSIG/WmtOlJmnCykpOlw5xYmL4Kmb0SlOlBOntOmfymdOl7qmUKkEmmvFK184w2m2KmGUkh8lXqkmMmsam1WluKkcaklUnt6keQAA6m5KnwJjU2mqmkTWkp2mu2lXmkt8mRGl8Sm3Mla6lPCnQtgT6kaykekm0WnjklxWnBSnJ6mGCmC8nh+xa6mp6mLORBYAMynxKlZkkJPiqmmXOleYAiaKRLr5ICItjqkkFck7OnQaIYmmv3CDSn8Slzqn4mkaUnUtQvfGLOnbGnLOmralUmk1WnI2mbOn1WkPqk3alMmnPqmtWlCKlvql42nPakE2mhKlE2kFckwcBZ4ieSBvIHx2Dazid4AjzbE9BNDiikkkACgunoADgul40BUunYTKngC0ulYmhDWky2n4OkbWlj2lQ0nDWlT2k2Skn2ntDjFEmMjgOcCXSnYrAoJSeRzcunyun74p0ukJDDhUCGkkLQIeWnCyBgCmnWkQMnUum8uk7aL8unOlZnUxqSDr8kbWlKuk0umGukwESuUmmulUkkAtifIyItin2mZlxsSl6uk8ukqulGumikkwumIdgjzbiPIAunRSnVeK7insulZYABth40D/OnJykBukgulIgBgukhuli0BhumxKkRunVEBBumcukrpxflQeCmefyBulRukcukxumbkkP2nxiyX2klUn6unuukwESeukoACYmnR/40zaq5TOFDhSntqkJMmsUmP4aCTJisAGM4q1jn2BoGnWFhpklmzhNulZditulMDi5ultymmcmFul8unFulQxylumv3B1un8fwjzZ4Um6AA1ukpkmykkdunviBduk19AGMyzukkzgGM4LukOACfFDSOlP2n9ckDulWunx2Alul8dijukjzaVukotj3gLTukykntukrunzuktumLultunZklzulU8BruldWybunWOn2yk7umqukK2D7ulluljumYSATumaun+ukXumNunviDNulkOnruljUlsUn3umOFiPumJRYFuluumDul7unDukHuneukVulvulGuk2ukNULeSnDknfuktamgUlnulxCl3umXunc2YOAAqOg/6lhunVUANuloAAGM7XYCkOniskZ2mikkoelDul8NgzVgjukZACd6n5rjNxDS2nVyk3Gn3+BYqkQOloalqCkC8nBSn8ekYWnojhc0nh2kdLj8wBT7K1cHpUlMuk/QaMthUAB32LigAmwDyekzkR6qmBunWgApSlGOn9umwem7ukJDCikmMeleulYmmQmn88nqenFSlbumcCn0enwen6enMelYmlNSnGemuunKulwem6ekbrFZYAGemC6kW2lJ0F6qlWsASelFQaesAW2lxukQ8CyekrADyenSSEmwBg1j9vxiemBun+enmthTSr6qlhEDebD2emWunvumVUB0enaelJenwgEmunoemN7QQeDvGkQeD3GnUQDT2nbumpekeumrbAOek6ekK2Boenhtgk0lvGliulC/L4wAWukGulpeklAAlemJemoekZenhtj3gIN2kQSkWelOendenleltenvElfIIJekNenFelWemIenodgh2l22k1en5el1elDelFunwem9emVUAVekDenESAJ6mukmz6ndqm/0n1ynQamIulzUm+8kXrjaMm64l0am3LRw2mGMmsKmI2nrOnYul0mmWMlo2msWl8KmY2ktWnY2msmkdWmrsndWmV8k/qnhKkpMQ40L7snmWn62mPSlx0nSWlU0lyan+mn3smfSlemnfSl7SlbSnZclg+kakkQ+l98mKSnjWl96lWimEkmAclI+mZthAOkwyk8Wkcknwylsckc2kSOmjknBGkNSmQakGilocku2lQOkVCmGSkHWkmSkEcnEynROmtKm3OkWMHnOkuqlosEN0l/SkGEnUcmw+ma2mFsnKsnnsnfimXsliOks8mlmmtiknWm6imJmlidhPDa676pmmfenKcm1GnNOkl2meklqykJclS+k52nkMknOnBWkfsnacmQOml2mxcmiSnDGkMMlK+kLcmqcmq+la+nBck2ynhWmY+kdammSk+yn31DLMRfekG+lfNAy+kS8lq+km+neykWymVEn6+lfcmBylTOmu2nO+lhyktGldRbu+loeDT0mg+npcm5cn5Em0cms+mkcm1smfslu+m1nFdKnr4xcql48l94lzqm7mmzgkgrgHml08nHmmzmlpZ7W+nNUS2+k7EkJ+lWGkLyl2hBZFFLGlFWmQ2lsGi+C6oulkmnoumUmnVWlI2ljsko2m2Ulaemlen93yx+neym2pRu0laukQilSGmB6kyGmzel8umfeld+n+6lQikQwgwim10m1ti1tg6Gkwekt+lry42+kpekz+lS+m6mnKKkA+m7qrCunysmGskn0lxGldOmOCkoemfenz+ktemL+nzR5SMkKMmremQmmqWmvulFel7+nNenDemH+mLJSq2nqSn3Mn1enuukd+lxrh0elt+k40JQqntPZ38m5ylnEnmul6unv+kg8lbnictghVKSclG+kpamhWkpgi2/be+mhym2ynCen5rhOGmc+lFsDc+k62mZWlj1C/ekGKlumnBGkxMDrWkQyn1mkg0mhSmCukaOm88nVKn1Kmn8nECmq8latgs0nA+ns8mT2kPGl+an9+mGulS+meyRsOnMsCPWmdUnTmmEAGX6m40mzWlb9Dd+kB6mj+lB6kr+lj1AQikToFeenoBkJymlskMBmt+k2+lRKl6qQxsSxUmyWlKOkJ2nbuCr2gOaoyBlolaNany6kkWnKKl8Bkj+k30gu6mM2kqBnbcBqBm5+kPODETQc9TVtgI8kkMn2ElgBkCQAIYnVIAuEBk0m8wwQinGKnK2lGBmSwBS+lolYWBnC4RiMnEMkSMmkMkO+lOim8ckBaAG+TRX6GBmW+DGBmeBnmBncXhWBn+BmB+k48ljEnaGmf1jqmlA0klGm+mn/El86kFukABlQqkasRZYD4kmCGmpEkN0lyanOanHKlNUnL+k8+kvSmXsniBlIkmXslT6lE9DpUm/OlYBCS2nwclRWkESnIclgBkW+kscnZal00k5QC/tjZ0lx0mvKli+m4QhTwC5UnZmk+boMFhbqhUynRmloEmZlzC+nn+lHMlMBmLKm5BnS+nJ2mk+nG+kwBnhylUunZBlLBmW6TKclF2my+nuynrBlVak6yliSlhcl1am1Ol9OmLBlUqnLBlTKkZam0MldalUdT/+kyBk5Bm7BkJakR6mkGkqdi9ykS2k/0mPElT+n9unbBnXBmvBknknOOnuAAsBm4aC3ing2lTameSS4/FV+lnqnkmmnemrOnrak0mmuKlXeknGlfaIA6n13Ac6kxtiWsCVsCLCl1ckm2lYhlQuBevBFwDxmlmmn/BnPBmLKntPZINz5W7n9ZxUkmSn9Bn7Wl3Bkg2k6bwXbT7eiC+kg0kiaJ+WlyWl/+lZBkUhlUqlUhmc7Yx0kF+kjameynHBmQBlwBmEsEIBl8el1Kn+Glp0mbemEQC6766umtTE/Wl1whv+l8hm5W4ChlrYTtPYihlaynMhk37wHoRbBnqhkx0lmWk8BmOWmiBnfrQh0kbinOdgWhkCcmUbDxACWSl1Bkz6kN0m6Bl5ES9wBB6k/+lG6miWkm6lx0n7KmYan1ylkWla6mvamUWnmSmNBntiCGhmmBmf+nn9aMUmLzCFCmcOnu6CrCm8Ok74r8On7J4WyzX6kYGnaum9mnzBnBUlXBkahlRhn13BC8C0hmDmkqWlNUm5Kn6ckEhlhSlYwBUSmYhlhSkBvDj+nUylVUDoxJOhnJBmOhm/Ml0ykbelYqlZhkC0k5hnGhn5hl9TDCZQ6hkhWlYthlanShkSMAUBmUEmYWlUAg4Wl/0mkhnhhk2ymRhmoDbRhl9hmLJTRy4kHSremECnh8GdhlqhkRhmUhl5hkK2nW0ArqnCunlBkoBm8+lU0nTBnzsBc0lxmmpEAkanBMkAkl4dh0AA6Omu2kRmkhclYkk7elUakDF4JRQHek2Klouna0kYul1+kXekN+k4umEIA3ekY2kEul3alEumvqmPamkuniKk9WmUulPBmmBnwdisWlCBkphzumknimUSlO2lqEA/enzWl/emXsmhhn72losH00jJskien88kC2mHSk02mI+nNBn4+kSOkySlwRk2ykIRnQaCiynzSngBlDhmuLK0ek5+m0RnCKByMnG1D5ACFinA2kQBncckgOn6jij8mzhneykIRnFxz71jr8lHhl/8m62loBlYRkYBmXskehk8hnkhnwRnCKBiRmaQBOOCqBFBykS6lJcKsyk/7helQekABilcylsyl6RlmhmrDg/gD06kehmrWnZyl5ynCRk40KiRmHFYXMmMUmdemvukABl2RlWDAK4CcSlx2k0RkiRkqRn2RmosmcSmWclIRmuqm7GDqiRHik2SkxclE8m0tjvimYRlehkG2m7qr7Klyam6inqOm1ykOOmKal/0lsBkjKnE+nKBA2RlQVgXIG+Rmesl9kmr25eRm2Rk+RluRmMUkSclJHimqG8hnKRm5RmlRn+RkpULySlE+kYymG2lVRnsRk1Rl8slq2kpyn4OmECkyhkQmnojg9RmM8kBGnb+ldekuRklRl8sm5smCsl/ADWGlZyl1mkNsmRaniOnLSnsknFilrBlMRmW+lm+koRmbqmdBmM2Jw+lDSmTBnuim5KmOOnbukjRltRkXMmRsnlRmRsnMsnLRmbRlucmu+lFRk5Rl3EB5Rm96BIskoWDjRlRsmTRkdBmjammSm+kkwknZRmuRl8slPRnMmAvRltMl1Um8RnMRmm+lGwK3Rl2Rk7+QPnDxYS5+kaRntEm80mj2mJsmpGk/Rk+RlqUKScn/unjUl+FBBjhDUndiBh2jRSluzgMFhS+l2RloxlftjyziVsBJulfQB8yQhYZZgCozgSoBHRn3RkkxkExmrwBsumZunBunXAwr2j3+BJRn3+Daim+GkpslHCmXRkfRldBkwSmtBnekmxWmIBmGKmehmE0mxRlj1CBRlTenubBeOk7+n0xk8alJ4gGnJBykgxmrRnpMHhamzRkNmlKBnmen0xm9GlbhmtRkMxkqxm4emkxnuzj3ClMxkSsA2SkYxlsUmEb4jUlmcg4xmKBQcsysRlExmoxlDcmNRluBCD4nRSmYwA4dQKekyBnExkqxlmxmt0BMYBRuSmxmOxn2xnDyDhxk0ADIUDc+h5ylhxncUnkozYxkJxlYxkKUinEnxxmYxndiDRxmRxnJxmZxkcsyFBiD4k+xnWMB+xnVRnGxmEkmWxlHElxxk2xn1ul2xlZxlgenVxmJxm1xnWgCd0npxm2xmJxmKkk5xnL+jWgBpxlVxlkek1xl5xl1xm9xkNxn9xkl+n7qlQhkhF4SuSfhkLamw2nwhkrOn7GnUmlmMkohkaqH0mmNWl3emgRlY2ltWkkumdWkcmkvakUunvemoOkQSlQqmTSnLRkCMlUynmRksAH46mWOTwvgWzS0xDWdTAFSnSlkHQI1ZX0kQMk5Bl3EnKKnVBnE0mXsmyxlvSn1Klpck7SnuSkc+kR+nUSmA8m0cmHOlPikCRknEkUOmEknQylgcnm+nQ+nBhkuqnCxmGakE+nIckexkk+m0+laanaCkKAgA8lPhk2yk0+kHBl0+lnOnpqlu4C/xmR+k/Slj2k5cnAJkVEnPxlLBk1GmrBnoJmp2kMUnackFckvxmkMn7BmO+la+laclSyma+krRk9cnGcnMJk0Jke+lDcnvRmihl8Rk40JrRmUOnQBlihku+ngxklUksJnQ8kuyl0Jn4JnqxkEck3RmyJkCJnyJkpUJLcmSJmiJl0MkJclqJnXBm92ntEkkJndElE8lZcn5rgUJmmJn5cnUJn8hlJhBaulgBnoRkWSlkYAVBlgqmA+lEil8inUBkL0lA0nWWkTDgOmnUBn2WnUBmyWmCWnqxkPBkKAiocmYymIJkhmkE+lixnCumgJnHSlnhmpMku8TZGnGqm5Wk+ACD4nfgn7mmTmkZ+kzmkqOij8m/6n6Jm5hlzECsemEsHbqKwCn8Jk2JlzEDqumFQB0hm3OB1BlJUlx6EpUk0ylnSlthmDBnZUkjBkD4nWJkFJkgkyly7TqnqqnRSk/0nA1BysniqkU2kEgDythwRgN0liekwCllJmdJl+cnCJmNGloeAWtjqym9BkmSk5mkTBn0Bn5Jnk0lB+kzRkT9C80kcOkUsmLykdJnk0lvsqb0p+sDJakCQDggCE4j+ACcupTcm5xBb8xTsA1Om9al1OnzhliAADhmcclDKkGhn3Jk3cmPJk7hlzEBHJmicmnJktxDxEC3JnZannJn32ixMAfJmC6lfJlUqlHxn0JnaJljak37w/wSqUml+kQ2mK0mu/Eg4lWKmbGmnqn0aknemzxmYun1+m0mlLxnXel4um2MlrxkPekbxmQRlbxn42lfqlvalx9AfalXcl4zEPEDA8n0ClcxmnYCSulevBn2kQMlCmlWGnMpkH2l5KmdilkumWSkX0kosDmWmBRnvxlasm1Bn3xnrem5KmvOmE6n3OBp6lbwGMaQFcmcpnj6kd6n7Rk7ilyUmKpl8ADCmntckdRnTWk8pkZynzsAtiko7h1ykKhn2wCspleen2JlaCkI85Wpm2xCwskapmNQBeGQimmkQAdRka2lmpnSwBr+kJ0nGJmWRlNDjc6mfBnqimS0kTJn2wA9xkDUDkellyZhADrrD8ekDxnBpkQenhpm3xkCqnlxngBCcpnhUDQ2zVIbodhfQAKcRJunxHjUACJukoyC+Mg0xnyzg8xiapkOpnJpnkwCppm7Eksxk2GLqkmikmGfEDSG5pm4RnrKmOhmPxl6IBBRkvinvmlEJleSkbqmuSmPsncWk+mmjGkPDjFEkMpnMthtCn3Ol6Emj2mxJnKSl2pnCmknsnRil40DWSlrJlOOkR6kcpmFplJpmTTBimkxJkuskURlSsCQADexlIwC+xmkGr2pnLplBVApplsxmegAeEgeekijiWSlBpnfdghpmU9AxpkkenLumAelhplPJA/6m8+BTbATJk/gCXplsjjRplJFikelRpkEenNLhhpIFxk7plFxl7pmTpmTTBHpmItgnpmEQBnpmesCBplpun4ekPpn/pkRpk/plXplfpkRpkvpnQZkR2kCqn3pkUelNQDrrC3ungel/pl4ZlZ4CLpn7pnF4rVtgvJkRRlzlHo0nxRnbin8WkEBmcekAOnLWm9Rn4BnzRnQA5BRlFMnUOl4yn5WmtimoJlZRkkZmTpkGHi1mmCRmLCm80nkakN6nnWmcCmcplghnCcmFqkLpklUmJpmOpmsWncpmECn6pmWSm3inGpkyS6QhlzOkx/GwhlYpkzxm/hnnemHGmXekEpm4unXanEplnOTMmngRk42kiKkUplkulUpm9WlnWnZ6mcCldYhIBCWFB6GnuyROEQT6lD+kCck9+kCBl9+klUkuZmGQTYGlj6lVkRaukipmyRniWlE6lIOI4gCOWmGmlHGCOZkuOn2ymBZnr3oqhgCmmhZkuhnO6lgjiSxl/inYRnNRmmcnJZluZlpZluZkfZA41DWGlhEAp0m7WkACmJsnEelb9C80lKuCQJkLRlkxwS2m5KmQym9KmoRl+yQCQDA1SjMnixna2lSRmoBn6FCipkACmjinoRkFckFZkObDuZnuFAVMkqhglZkZrRZhCginDJl5Bn7JkBZkNHiFZmwalTZksgAzZnPURD2kJ0l1ZkQOlepmCRk+xD7xlJZkrZnjZlFZnjZmbZl+cmEakWSmGsmnil1LGpEATtC0ElIpljxlF/G6ZnHen6Zm1+mGZnIhnsalohlR2m8ClfiA6plcekspmOuntDj95i5Klb+nmaB4mlPZlzOlNxBc/Yo4ETT5fhnV+k/hkfZnXqn/hn4pkOzw2UmqGlO/ruUnyskN0mSRkh6knhm50mY5nMGmLKDFkmaGnqqmYsEXxmpEn3YSZsmrSlJ0nGdRb9C1JnSel9BmXKk+hniqmPEnlZlb9Cfti1JmGVEu5CVElmGkJrRtUQaGnzQBdjDKbS3CBrMQN8mjWmOEkvKkMAGDJkf6mcBn05m+mnhSljylE5nmGkk5lC5nDZAgFCi5l9Mk2zIzJkFykIulQ5lIun4vEpfGvZma0nvZkI2ko5lGZkARmohlARlEpm58l2algRmPentWmO0ldWmcmm7xnvam/qluBkRBkeBnv+nVUl9sTeZmSGn8Bn6Bn+ZlR2nuBkmBkpgi+5mLjxYTK8MktZlKmlvxkRZlOUASWm6MB5LgZWkE5kb/Se5n3FDe5k2+kR5nfFz9zLyBk38IoEmc0mzBmUBnzwroWlYikEpDdFxhslV2mh5mfenZ5l32IT6IVRlORlHMmN6Be5lh5nLAC15lR5k6HjxTD1UkXbRnElA+ns0nYEnq8nFEmeSDiCzZVDp5mqBk15lIoZ9sQd5n+QAdTQjOjXymM6KdoAG97ysl0ACbhncoAt5kT5lKKnmWnz2mpEn2wCDZkuBmeAAZhmKWnhBkZ5mt5mv9gKAo7Ek05a+BnfkkfBkz0mLCnM+nJBl8emr5nN5kn5kb5m0UlX5nWBlHEk/BlJrjoWmEam7ilP5nV5k+5nn5lbEn4hmnlCP4Dv5lxBkVknHxn2BkqEzH5nj5mAFmzLggFnzABgFmfknsMnt3xJ2n/Zm2BkhBmfz4AWn52kAFlZ5lAFlqUAuclxcixBloFmIUnHxnbql06LOGlV5nr5nwFnNElEFmh0AkFn2sDoFnr8m2BnYikV5mwFmRBm0FkX5nFkkoFk6kmJBkJOlj5mcFn4FlHklX5kSUmikmDNgn+lyMnSMm6cmJXE5akh5k0FnCFlv5m8FllklT0nH+nuOB1UkJRn/5kKFm5+mikmOlD5ACn5kx0n+5nZ4jVcBGmntJnUFkv5nv+m6FlcRkcthS+ntPa6FkrvEGFlxjjGFkJDD1UlXhm6xmN2l4FmmBk3US5Ok00lhqni6wcFmZ5mmBm2kCd4Ax5mtsT2GkFKmXcirVA5ADqmnGilF+nO4BaZmG5k7KHZxAm5lLalm5nGUlzxlYulW5kmZk25lmZl25mWZmO5mbxkvemu5kwRl7xnE2n2ylUpliRkqAAd5CaskOun5qmTWkQ8C6pnLWmS0k+SlbWkaKk/xkQynKuDqClAulE9AjEkABkRHjVFlDpkURmPOk8knpBk1KnkanPungSnlFmvamVFkNQAsCA1FnqZm/BlPxklUkVFlkZkculWmmN5nBUkrFlQZiK4AtJwQMkrFn9FlzFlWmlaumDZn/enOJlo6nBSn+Wkg+lrSlwJlkJmAJkrimAykgJkpKmkRlHOnkRngJnHikEOmXchEOkSJlq+nY+kyFm8yl4+nDFmE+lhJlU0kWpnk+l4ymU+m3ODU+nmSnGJns+kPFlOSmAJmwlnzJkFEmEakFckrFncXg7FngBCeRnLFnTFl88BOklHRSbcl7Fk4lkHFl0wAYlm65kwplq+mcJnqymolk4lnolmZmm/EobFkC0lbFl4ln80i52mElkSKkzFnVFl0llCJkCxkDKnzJka+mwJkiJmgxneym6ylnBn9clolkP8gYllvsoMlniFk4lnbFlWmlSllsllu0kclmHFk7JxsJlBBk8JnmynpMEClm6hk6JmqJmmcnilnVtiSlkKJlJXqKllxrhqsDMllvsoElnYlnslmDCSTQCclmqlm+cmBBn1GkalnXRkyJn6lk0lkSlnylme+nSlnHMSylkWlnelmmllTgDKlkkllelmaJlqxlMhk6JmbBmBlnGum0llHRT+2nWllKlm4lmJ6lxlnN2A+ln7Fl2lkqllTthBykwlmh+njEnh+nbSmR+mWJlUJkJllmllJlkYlltKnFNLiGGzJmDhmfRncJlXRksRnUlk2llyllHRQVlnvUDmNjhlm+Fm1alill+lnJll8djcCltllWlnullNlnMlmtlme0C9GnFamCxk6+mGGAZ2k9OnQKlMlm9lmjlkmNgdllO+n3Bk6byvclSBmomlxrgA5mMZnNikaZlqZmtilmplwJC+hk8lkeqlBhltpkC2lDSmBhkSKmxil3xmNJn1BlthmZSmcGn46kfaks6kp6mypnfOlISA1Sj0Snf5kcWlUSkv+nmok8WnPOl/El3inmikI+k+Wn96kTFkbln/lmSck+SkfEl/BmFekz+nQVlSIFLhBwuljGl+amQVnT+ktenQVmFimQmm/llXllu0nwJkdSkPEmdilP+l8unQVnKpm7Om9plE9AKxldelFenkVkJBl6kkRJkUkk5SmxWmkVmGun0VmiFljElJpkGHhvVqkZncXj1UnSplSFnvll+aQgAAQ6gU5nLCAE6lCVnvOBypnh+wQ6hx5kxRm5Zm7qqBRnqxmhY5sVmxUCvakUVmeAB7OlEikHOknllqEkM+nnllMVn4anESlAVmiGCCVmEhmY4AsIFvlnSVnfOncrC72l/OlMulUVkZukVpnZulqVmbllBllLhmXgAKSnPFlPinyVlSxmPSmJ5mpYahIxnFkDBlWRm95lEinoWl+hkKhkBhng6lnlnqaluVnQVllODCZToNDNElhZkhVl8+lgCnA+kJFm7elsGjv/EpFkVWnw2npFm4pmo5mLxno5mEpm5FnNWnzslWZlPenO5nbxnkuklFnu5kHRmcCmZvGOFm2Jl1pm1kAQMktVm2FlJhCjJkkYDblldRnbWl6aks8lJrjM0RjhmSthJElkACpBnLcl2EBb8xe+AFync2k9F6LVn1EmAFZyamBmlAqmKalYBkr5nuFkQSldVkABlxjixUBBym2Bk9Bl8WkfSmEAGUAC8xnojjnVkbVn8iAxVm8lmGQDp2kFcm7VkyBn7VlIYDF2CbJmCRk5ykpsli0mPVkOFndVl3hmcVmMVnHxk9Bn35lNpmYsGDJnBMl8imZBmmclPVmmBlxjg8FlcMlSzidVm/Vl7VlJhDw1nakl+BmkFkBBmKJnsJn0awrclI1lWIitVl3hktKY+lkw1k2ylw1nvWTz5l2EC7D4ShlHsBqmmP5kDRk3hlsBk/VkE1l/VmtsQU1nxJlc0k0ZkXFkAMmMin41n5Cms1mi5n5KD9VmNindRnpRln+nbVn2ymk1neylOFldtgwngMVmf5mDRnM1n81ko1lzECC1kfuBo1niUmJBlHVkcsn+Fl81k0gCE1kaIFNWry1mYlnY1nqlm00kzVmMql61lHtgq1mG1nRxga1ncMljEnjlm2BkL5m7D5K1n61kC1my1nq1laJn8MnHVnbilECDXVmNZlLgD9UlaxnbJlzRlKvCvhk+8kmWRQAn5VnYpkGZkW5lfZnHGkiCHLFnSFmScl45n/8k/ikKVlyRlU0kWRls5lJrjg1lCdhwVnJBlSFkKMkgMlUSmUZkZgBMOn6lkp1l1Un4xm0xkuMm4hmmIAKemOVHSpQcxl7Bh11nLIIN1lN1ltVCtACt1lYZmefw8dhDSQk0kzilU0nVeID1l7WkQeDD1mE5nJ1kKMlpABmVGd4DixGfOkl1no0m11n5pmD+Gd1kheklADBelUxkKzh5pnmxlr1mlMCN1kb1lFwCmVS91nWlHHthe8AxTJexkXkmFxnV/CqSD4UBDTBi0ktxn1uleClmIC2Zl+CkO0mv1lO0nLwCQAA31lqQB31lNQAP1mVxlwZlsUkv1nWEBJCnZkmgNkUpnf1nbplj0DAZmD+Ehxmd3yYVHrthawwrPRg1h4cCJlGD+HY0lSsDNxn+lHINms2CAZzt+6Zly4NnJlGhqBSwBoKlpxnENkbtjTSpKxBENkYNlUVF8xFSwDKuDf1m/1lS4TwNlxxmUNkoNk0Nn03R0NkkNlIVDYNnsNk8NlUNmWsA3xlJNi0Nk6jhJlE7cAuxEv2BdxmP1kcNn4NlcNnoNniNmYNlSNlMNnZVlvhndGTtVGR/HWKlTxlLOlI5nm5lrOmW5lo5miEl7FlPygA6nQCnwJhxhmH5nmVna6nfOlWVkcclo6SYGnLFlPygYdwhxF+QAQWlrCnscRJhkwGnrel3mkIGmJUn1oDcOlmZDH6mz0AWcAtUkBtjQ2yBNlyWIhNl08nQ2yolnONlENTWtjuNmJhnt7RP0A+NnP8lyWLPqJuhlZZm+Nl6IDv8mAjhLgB9JnhNmTTCRNnH6n/KkxNmTTBqNmR1kMAkx1lpFm60l/hmGNmlVmiEnARmrxkWZmEukFFnkplFFk7xkNVk0pke5lONmhAC0imEBm1ymECm5xAp0lv2kp0l8ekS2lmpmg5m6dB5enubAzel9Nn0SBymlTRluAQJikc5nwJgtJnvKltJn/cQmNn9Nk7skP8h+6kYYx3yB9QIIxkp0lIxn2snAllT1n6lnyYDkqmCZnZllhVkiunfVk7Nn0SDZcBK6lRuRxNm7NnZcDtAD6WlYal4VldEliimAVnpBmpmkLNmNsQpUS7AClAC7GBqPT3TwnGhZJmcBnGimVZkLQLn2lWOmTFlHMkHkCu8nf5kS2kfEnMsSItnoSnItmbFnXNkBQDymkP+kZYZrNmnmm0vAYVlXNm7NlumIHNnLbj3gKVNnFWkseSFRSTxmkmlwhk1+n6NlIhkLxnfZk5FkMmn4umtNkO5lkpm42m2ZnQRlvemNVlHZlHMnxjRdjDzZm9qmUskR1n0tlqAkmolw5m+V4I5kstl6NlFVn1NkJ1mN+nNNmMmm8tnrxnEukdNku5ldNnCtk9NlNVmOCkTxhM7CmxnxpljwB3ziItiRekWtklplsxmRenVllu2njanDplkknJKlYakQOljpnkRmNRmHsBf/ab8li8lf5mb8me04QOm5KkJik72kMZldRnM5mysChVk/qkQOlmplZdhZdgFcmmtmG4T/Zqry58rJ6qTSZkn0kAklTVmu2kzKm/tjo0kbNnmADh9Bd4TxZkQMlJtk7lb8VnKZm7lnqZkKOmr5lltl7NlGHjG1n/UlbVmh1kXEnNtlX1ksUksNnLqJWtmSACQZnPJkBpnoZlvpnMNlAZm31l2tkQZmbLgYZkdLgDtn7Mnz5Aytnl+lWAk1NmstmqtmfZkctmJ1lWMkrxlatmzsltNn8tk2ZmdNn1VmGtl2pC9Nmmcm+Bk4VmSSmRJlURnIcnk2m9qm9Zn45mVBmA+n2VlNBm8ZlWWkeCm5MleqnGkkYJnYclAamZti+amJoCealPQhzpn9cmiFlHSizqlwsTqpmltnKFmH+EpUSMFkUYAODC9wAoWDdb4A1mI1klUm+BkQdkyGJQdluRmwdnMmDwdnKFnX5n3i69EmRRlUMlVhkbBl++mJtngdnj0CQdngFnt3zHwQYdnXGBYdkI1kqFn5QDxllHtmkdlH0DkdnYdn6dbodk7GC0dno1mI8kxsnh5HFEnl1lk8m/Ckkdl0dn21niMmUdkwdmcdnG1k+lm+BmidkY1k5cB8snUdnz6Bcdma1mA1nROkullhWnpMFtu5xOn6OkEdkW+mg2nQelMdkidlQdlUdmSdkIdlZln16lIdnKFmydk7q4PRlVMmmdnYdliFne1lHBmRlnEdlgdlGdmiFnuOkOEl/0nGikfElAtmGdno1nWdkSUlklkHBny+mMJlSynCdkBdnG1lO1kFykhkkK+n/FkzwC3Vk6llClm++m6+msRm+BltKkkHHJakjZludno1kZdmVByNtkz0l4BnFJm1tlsdlgdzHwTSdmldnt3xuRnC1m1ykBpk0Bm5ekjWn/tmcClmdneVkgykvFngVkqSnB+l/xltSkAJkFllAJlkJnhRl4dlUZnmSl+Vk5ZlZ1lKVnpVkglnBmnMVnIJmmEmWdl0dnfknKdncMn5sl9JniqnA1CZCBDJm9qnrdkRdkqdmD2ntEntVmcGlfSkvOx5cnwll9dkeElFlnQEgA8kCdmV1kAdkOdn5slp1nSRm7/anOlDdkV1lRmkD5nj8BD5kayQ3OA46kQ1miklFGlLJk1JkSpk85mN8g5dniUm55lqFkyMkBtkRSmV0k7dkHElLr6b/7OQAFdkMAHpRmeJn95maSlJElFGmw9lidlMFnr4w+llKplQdkWEnzdncdkf5nbwBXZmhRnqiT7KloalWak/ARgBlYtmg9moFk49lB2l0BATenH+CW2nyZmFpnWdkk9m22ms9kVdkLdlc9m+2ms9moVkBsmDMmGsnFEkfCmvtlZilCdn09nY9kEFmiADpdm8qnzWB49kc9kE9mEMny9l6Fk7IDS9lydmy9lEMmcRlb0oTll3VlQCk6bwe2lE9lfkkk9k69kK9nnWC9GlK9n2pmc9kQFly9nKFm69nzWBW9ma9k2dmsMkO9kW9n3vhqlnOlmxdmDKkV2lpdmVdmM9nTLj0ln8Zkz5kUdmB9kQwjB9km9kM9my9nRdnklkcJnl2k37yV2n+dmm9l29lyMl+djW9lMyAq9kMUnfNhTwC89nE9mp9k59ntCmBeklGCj7JY9la9kJak7TQZ9mh9kB9my9n0Rm/CB59kp9mY1nzJl5MlYmlJ+kgdltknTElR9ky9lstgodZZdmcZkWbQu9n6dY99kqxFOllBWlvwDZdld9la9nD9nME7cllx9l3yD99kGdm3dl89lgdzT9nY8ktdmOtllEldam05lx9Ao9ksAFM1mD9kr9kKODw8lmdnBdk41k+9nzJkPVkH9nt3yr9nZkBRdle9lj9mhdkX9l+9ll9nhUCedncpmaOmjNnojjC8lxml+Jm6Onadns2kuqnZWmWsCfdkj5lClSftlJmnftmnYC/tlJSmGOn5ummcmzTTXGDFmkOOndCm2Ck4tkQMkIDnz6DFmkPWmitnBUldrhEkkBIBxriMUmBdmJBk5lmUJmQ+nmJlUclkclwlnmpYlUl4DnVsmEDl9knG1nvVlx9AWJkndnkDmEsGsDlh+kVEmztmK0l+AkLtkqtl1NnLtlsamrtmatk8tmbtl8tm6tkCtm7tn2ZmwRm0DmU4T0DnaFCuemBdnuOk+ll0DnNyBxrgIellul/WkvWkSRmeOlNdmOClqDkEDkeVl9FAKkT/UmERkchnSak+Um8wzasl6Vn9dk+mkP+nkak8DkaMmDOBeAlaNkYplHemm5mLtmCDnx1krtkatm25mVVmCKkQRlSDn6tl7tnfqkitllFmVaLVsl98gdRk15GL4DA5lsplcDjpBkc5kURmjplPFltdlPilyxnibDqiSJWmGmn7sDZ4jjVDNpmSxHc0kjJmiZlwJCVZlx0l8enf9kF5kiemZlxpBlt9lIXrVqlRDkZTCNDnNyB98gfml22lxFlVCAtDkBIBtDkwEQeWnjylNDmn9AkDnzGm+74ttn5rgLGmdUm51l+tliqlyhnLWkp0kuumyZmV6ndDk1smJBn1Dm1kBODnUrHplz8Dn9slx1kGNnqtmARlN+n9ckRTi7NA5enhtiNdmJoClhnWVn/OAflmfOnCVlQ6m3Dk2Vl+aR/llfOl+aQ9ZkO6kCclxZm5Ul75kh0k6qmHCnUBlnxkXEkUGlb9D7Zk79kH0kM5kSpnnSkQMnHDkRaAicATVzAdkNDklUnQjmPADVekzNmfGnzNmmclIjl3EDvBlXZmDZnO8T15HdqmKWmMikbDm5VmuDnopkkmmYplvZleDmDslCDkbOnW5kyNwlUmkyDmlhWGlADmXWHzABMjkEqklUmDRDRQg0sD4Nh5Li40RTbAPdn9ZnyWnKWkaKlBJkijmKhm6iloaklJmr5lcjl2iC7kAgrj8jnMDkNUkeJnKAFLFmmcmyjk8jkKjk5mmnDm4djiunqiTBJk6bzvJmcjkpIByjm8jmluk5mlyMnS8CftSVykjhn1KnlDngqnGjncjkgQBmjl8dgWjmXNhBQAQVjZenKKncpnqZk8enWRnktn9ckajnOjlajk+br0RksyCejmYUCjymGpmEsHwVmcClBjnyjkk8lujkE6ERjmknjbZmzDnbWkJWkMAHIUDmDmEsEG+Qp0kfpnsUmcUmBYD/1lU8CkumOxlFjme+S3Ul42nYtkDymOjmmjkhjkkuBhjkejluBA11nANnP1lVjlv1nJCkO0nVjkQMnxjkujl/thQtiukn4DkFcAHOC6dA1dn3+BNFnK6mPEli8kFjkQemcUmd0mRpkoZl/pnzjl5yk/dlCdjrhmLCmCjl+UmPNjigAFcl9jkNjmDjmGkkKDmjjnKBDChmJsnSqn1FkSsAa2nIOk0ABQ1mBjkmjmajmJjmhjlDjnHjkpjmqxlGJngknJDmYsE9GQoDm28kyOnqjkPjnBjlPjmNjkvjnqDnmoktjkxskFjk8UmLjlsjjQTl7jmATkJjl8jlujlQqluBDjjkJsngkkXjn01mZ0lWCnK6mtFm6771KmrdlyhnA1BZtkM1lCdgLZmjJkYRgkTlV0mmhkyan75nxhnFhlkhn3jlOjmITnmjnPjkoTm6dBKjnscA5jnzsDGZi/jmmekvulHMn7jnATmDjnsTnKBCtjmDUkdxkVjnIZmwTl3kkmRZ1jmPjl8jlk2nmWkZZnSGkTDiH5npRknFmfxmTdm7qrcpmZDn3ClNSlgmmZhlNUni1lBmkwmkS1mCTkITn9jnahk6BnD+muhkwilDmkp0maTlU0lIRnwTnMTlWTm2Jmetkddn1dlnDlT2npWkGjk37zqAmBJl7KkcBnu5kQOlbjm3tl62nx5mtRRm6lJ5kAvKjimS5nnDg2SlyamCWlGVnSSmsVm9jmWTkKjkvVn3dnCpnaTlj1DeJkgCn8+nU0k+Jn8+muTn1jkk8nZTn15lCZksDlwJkXdm/Slndnvsl1TllTkKTmlukvVmaWnqqn+Tk40IHoR+WlKhnS6LrMm9GlNMlCTl8jlxjhZmm/tgrJkQ8CjWkxdkfRkPBkZ2n9Tm/EqDTmZTkVTlJhBnRlDTmtTlJhBTqksgAzqmdTlYEiL9kF7RzTljhwLTluTlZTnLTnycmikmrTk3tnChnbTndakZTlHTlLTlzECx9khdl6dlG9m7TmOCnnTnk0kGxkHLS3TnDTnrTndJmbTkdTkRllwpk40KZvDNTlATnfTn3TlnMmfTnlTlgzldJkpqmwpnE8k37zXTnyTmgzlrTngzljhxtKkeEiaaEAzn3LKEQCbKhfMlIzksTk3tm9Gnozk4zkrTmLTnQzmXTlYzntaS4zmgdnKhkXBmqhmQzktTmujk+bovJlPck6bxg2ngpm9On0zlvTlxjgszmrlk37zszm0zkPJl9Onczk/TntTmsWnbTkCznnBlCzl1wj7TnTJRnTlkzkozlsjij9lQ1BPTk37wxxk9amfJkJtiyzlnNCHTlQzmKzmkzlfTmKzkbTksWm8zl6hlAzkvTkuaIqhnPyhzMkDTnyzmGzmEzmnTkMznIzkXTm48lWGlXTkWzmJHRWzl2zl6zmEzn39ly+mqzkvckezmR7RezlOzkEznvTkQzkizkVJmuzmmzlQtgzTlpJlv6kgjkvyhZ+l5JkATn2zkDjn+WTJjluBA+llvTnITmLKmoTlrDnf1mszLv6m+pnzsDmaDXukpzlMTk+zn8Cnpjlp8CKOkhIgp+mHmklzkvyjbXQ/6mZJk7ZksAGkOn05kVzlxjkKzlvkkdml4Tlz0lFUnxzkmsDFzmYsHgACtxC3xnzmn4zn9jlujlHjlgTknjlejl6DlIXrDzkvICjzkdzkTmhnmnTzkKjlKTk/4lzqkzOmmKmJFnn2AnbQKtnK/Y6Nnfhk7DnI5l7Dm+DkHDmT7LYYC6EAt9nN0hoTlUym80mnNkQykp0mM5lthlAtgAKBliCj8nX6loGm/zmJikBvAFtmO8AfKlZdDgDke9n3CnQDky6khjSHUrcJRoTl6pn8pmyCntim+tkGplxDnkRJZdhvDn6mk+ZmB5lZNlqTnhZmZ1kSBk4Rmojl6jkNDkwLnK0rcJTiFkp1moWnl0kcswCilkLnjsoULnSLj3yrkLl6qQv8nzQBrhlf0lo9njVlNymY9lMLl55TyJSczk2ACnJn5EAiLkFECYsldZmNQB0tnl+nC2C+fEnzmqk5Ktl6ZlUjlnekW5lZPSbanW4lKJF7ak+4muRQu4iJ8maLnYzRO4iHanLSyqOE0mnnPBp8nKxi54lFUpBUbW5lrtno2ktNniDk6tlBDk7tkhDkyDmlFkpMj+Dn3elVVntNnBDl1VkuLnhDllskA6k+ileinCk4WugfskQqgaUBnNCM+myFl5iAMqkGj6hLllEFozlKMnwAAqOg4AC0AAuIBl2m+9kIzkvyhnJm+75IABPYDpLlP9k37y1sCCQASLlpLlOtmJ9lZLkUFkCQSxLnPsmxsTA8m/EqRLleNxnJkz6h78SxLkUWmY+mEdlmzlkNkU7ZngAZlkklmO1nmXaLwR33z4EHWUbB2kS9mFMlKMkcslcsmBACxLnXdlRXEBznUmQbWC4dn3Vkk8n4dkwnR2BkzckK8khLlPskADlRLl00nTLn3i4sSlEJlZLl7Ln7LmItia5ntLmdZn5ADdZkHLma5nyckNLnHLnf8nGICXJkzLksSlvikEdkjMmHxCGfF+ED6VkeQD3LkIOkrB5uATuh6Arm7Ck0AAxQyxLnuOml1nzLndTnZEl4MCl1mvMnwADvMlOsmxLnYzx/LkLVkOAAArkArnRxlmchtKms2l/LkCMk9Bk4rkMOkdKnkuBdKk7LmNLl5q6bz7PLmErnN8mzKnvLlG0KxLm5tkmSlzsn6FlKMknLl5LkPOACTIkyDKlCUDh84S4ACItjfkDyhmJ9ByMnm8RcrmYDiT4BrgD8rk+TSnIKxLkaQBeNzesTcrkjiC8rnjyDPMmTulgDkcrmlznyrlirlKrmSrkw2zGcIyrnG1AZineqlKMkJmQPZkyrk3OlXmkvyjpGlkACqCkJimD8nPGL2rk0ACGfF3LzpGnpGl2SA7YHZxCZKnVCkOrnrunUADaLnOrnOEkurl4REaQjBCmoSF2rlUenhrkKcQXbQ1Sj5LmGQDyckvyjzLmMaStLkOSmMRkdLmxzkV2mLLn9dkQ+kvyjpRnnikpVYXdlJzleJndEmbSnZrkOWmFllsDkFrlNUlyMnrCiEDlIcRVIDxrmyckZLk40LRrkPODVrnmom1rnypBxrlUSmb9l+9mxLkDpmximWrngOnpGmdFmhrlernhrk+rn9LTrunOEnscB1uSlxCpGmRyh2SA7vEJGmjrnrunjrm0cABfEu5hFwDOEllaDM0RmIDpKn/iA+xBkOm0OkrrkOrnUADVGQzigLYSbrkPMnh8FCZbgOkPeFlxCermlCnerkkhn9RSTrmoSHycTrUg2ECxGnM0Qv2BrNlhrnHrmOrlKuAFPQXrnpGk8Qw+gzx4lbrl0AATt5LrmPrljrnPrl0fHKuDNrnI0kAVkprnzLn12DdLlIVmpKmXrnDyhDrnpGl/rknrkTrlYbnTrmlxA+gzOElBzDR75laDQbnRElPrmOrlrrkeeD+rmoSHbrnyXR7rmUAAHrkPrlUbmwbmOrlnrlqXGvrlbqIiaI3rlpGl3rmGsl4bkRrkvrlYbnvrlKbFfrk4aQerkjrkwbn/rnUACAbllxDAbkQblgblECAQbmplzYWhsbkyETUbkPeEZlzNrlIVntLmobkZrn6blkrnHLmnLlS+nElnjElDSlYbkv7Rvrmabkcbnjrn1aBYblrNlxGnCbmrrn0blNsBTrl2bn/rnjrnpRTWblbrlebnabmObkurkBrkBbkcblmqFSVnXDmH6CWrmlrlsLmQllHWkwnTzLlmxSxLlYMkGNBZLlJLDrUicajJbmhylpblqAmZbk1lm8JkzwCCQB06I2HQbaJZblSJkpdn0MlZLnIv6eXAWADvpna+muln5riCQCzVnAqkhLmszkIzkxaCCQCXJldblwJA1lnu2kdblNLmWACWABlblprmJ9n9blOsnjbkuEC9bmGjn9bkzcmzbkREBTbkBTn9bnxtnPxALbk40LWEBZLlkAA4ACbbmbbnDbmAzmXY79bnVEDwACHbmHbm7bnwzk40Lhn6CQCRX5Xbnu6CrbnUmStsCCQCCxCPbmJEC3bmdXBZLk1hTvbmtbl8zk40KWORvbkBYB/bmnbkRChZLmcajpbk9bna+kkzlNbk0Ek9GTVLksVmxcq5BSCWkzdnntnCsAkhmwCkp+njmkGMCZJkBtjmQB1AAM6kumgBYCbznS6IA6mIllcDlAlQbhmVrkmJnlrm4hkETmZrnUDklrlU7nndkU7lnKlDzkczl0MmzllGckUti0+lbqgS5n6DmWzl0zlCLmrC7cylBLn5Fnbtlsmm2ZkxrlMznYnEYEB4rnVEBNIyJDli7n7SAS7leNm7Lk4ADy8nzbllLnfblZLm7rn4pDVLkJ9lNrlZLkFPRSJDa7mNrmBRh67nb5hy7lA8nMtj1LlHLkPbmAeiDODPbmh0n6GkGbnTTk6bxJblSIG9Lkye75QAvyhw6mDhjH4kjLnM9ljLmqKmyFnQFmTblR+mrLmJXFQrkZrlE8mNwilumh7mNLlJLCcai2HRJrnuSkmblGsl/bnfO43LkSknJ7mvMmp7nSwDp7k0SnfFmNLkj86F7khLliil3LlW7mvMnYWgV7kvLma5lvLlrLndFwRnDsrmEJmZ7kezaDODfLnvylzymQrlO7n8zkZrlFmlKMmjMkz6it7korlW7nFMntonmaC2xDjzmZsAkhnopAMrm4rll7m0ADRX7z7nT7lErlfFykrlwrllaA57k0Ck0rl5tnvLklLmL7mb7lMrlmgaHBl67nz7lz7n6rklWCGrlvtnvLl97njMmxLk4JneylzLmd7ldTkZrmUlmFbmJbkZrm/FlXileNyv7nobnmrkT6kDrkPMnpKlBzChblybkEbnpGnZfblEDOEkFUlMfFNxBAHn4bmUpBQWjubkl77pKlgHlyxBZEAwHkibkdLRYbk0AA+gzD2AuxCqCnR77GZgubnLrn4bmCxB2onYrmYmnA8mYbnpGmWOTOEnDrlHrnabkgHlTrmlMDEblzrlkbmLrloHmrrlU1nMtQ8bmMbm7rmqCksblJLDsHnPrlcblKblXrl8bmpsnDyiCbmCHmOrkYHnpGnibmfrmoSGiE5Sbm/rlEHkibkKbnC2ncHl1uQcmRzrnbqJQblSHk6bkEpAbNSxLlIbmngCO7mCllnbl3bnoblxVn57n1rlmHlDKkxxkyrlnlmZ7mucTUpQyrmtrmVORBXHaoHmXRM0g4ABOxCuHlpDA1rkeHkLJmFbkfLm0cA2HSnbmpbmXblNxD2HR27k++kVLny8klX7srk++m6JmNLnoL61XinLlJHkillZLnVIAWAC/z6JHkwBnfClVbn+AB3oGmIB5HnNGlVOCmbnK7kcsmnblUzlA7kdXBkADD0k68kA6kyuny4ArymvDR1bnNHkfDmIBCwAChQAbVDZrmxLkdHkK4D6unQ+gvyg9sD80nOpl72n1pkQjmfznYJmHWmRmkjdnmWkqZl7lmqZnRjmoLkKRn3NngLkZMnealftkVKk0VnlMlTKkXNlp5lfaLesn22mzpkIjnfUk4ACb0kqmlc0ljBn/tgTTn6jkA8k97lS9l2UndgAlck3Hlw8kQwgQdhaNjbslk0Hs7hTNCABkQwg2SlBthdtgUyjCsDKMGMynjGBAnnNthcGk6eSWOgaADokCgWnfWpoLkkxLSulh4CtHkZ2lJpkginMpkazkQpm/Wk/HlaRlnOQ6RnBinDeD6RnaRmGRm6RkhikFclImn/GkdmlhSmECla6m3cwGMz3WlQ+nkylTgCgemK5kX0n0nnJQCMnmC8lK5n0nl2IBdWzK2lsJDWnCxhnRRn+VkGKmBVlNYaM2lCnmIjjWmmmhkqTm9+lqTlFhmijl3jn52nSnku6kEtk+llDNgpIAynkwFLcBAa9lV2lqnlgjh3clICn5snYWm46nThn1KlzBkPhlq+m37lmSmADnVDn5rh4jl+QDixlVqkGnlZMA6nnDzC38m55nySmdDmcGmXEmCnnunnqnlP9h0sAZtlSnmBnlGnkK7rZnglWAnDkQimfDl86HtVlhnnannqnl0vQ7EkxnkGmkmFlHGCYLm2mkXkn2WkSanijmLClKnlH5kBnlJnkRnleTC7NDT5nULlNym9TkJ2mGnkTDiikllnnY3rpFDisTjZDHwQagDFnmXGDJnkNnlEw4rcjNnnyUBeTDm6x1dm6TnELl0BlnHk1nnhnl1nkpnloeDlnmRnnI7SFCkDzk4DmZ2m1nmAjiwqarsSMQBTRnpBmkSn8iC7HlHMkmDleVko+nsZmD0l17m5LkEjlCRkQMldnklPIT6JcSn7qZK2l2UnpFDc9m17InHl3CkOJlUVkCSmvCli9mjLn5MkX7meSkFcnnnnEDl6kn4wCORi1ilUykfil4zmmcm/nnOknLRkT9lgXnr4zlnn9zI+lngXm49lnnkwXnY3pQxxh4CeGnHFlRTlipnOTl5Tn6FBA+ntFnXFn/Sn/xnUDn1TnMnnddkbSkc+meTkmHnWDCKClvzmo+lJmno+kwJmMRlHdmEVnxdnRWmRWlIJmI7mnEAHHkphyQXkL9lQBk2nmzHnPhkhhluJk/nnIXmG4T9zKDln9ckIXlY1kmlklUm/nmoXkOcA9GnKzmH7nn9mxrnhdlIXmpnnY3oSXmR9nQXmaXkDfqF2msllyXliXk7lYDHk9Gl+zkqXkNrl8llcJnaln5blTlmXcCsRm/nn9zIKllGXl6Xl2kB2+ls9m6XlTnkoXmmXnuXn69lJdkaxmOclMXmTlkNbkeckuXleXniXkT6KWllYlmeXkUXr6XmCJlbDjRXlSXnGXmeuloXnuXmn9nqln1llgxnJwGiXmuXnT5lvsqMdlJXm5XnrclhlkWdkxXlM6HJtk+XnxXlnNDAxmUzl2XmtGmcCmOXlVTl92lhXmxXluXkpcnNXllXnTnmVXmB+nVTlY+mNTlsDkkXkUDmEXl5rkDXkFclqDnGClTgC1FnInldEkDHlyumSaieRxZnmOWm+ZlB5l4Lk4XljXmU4S4UlblmVtnpylLHkoLn7llGpkUkngTk6Vn46nxEBISAPDmRbl1gKmVlQuCECl8ewhklHXnzCl3Lz0nnOwpXXnghmkXnCrmucDcnnzCmCrmFyl+sBsnlhSmPEl8nlsnlmpllSG5TnHhkU0l0TneTm6jkjnkdVlyDnGCmgUkUtjROSeZkd6mJzlQ0mUXltMnx0kl6ld6nK6k2TnYLl6Bm4LmR0l6Tl09mw3mCrkI3k8/5QukxOlLnmk9lEilrNlrNnEtkLnn2UnyDnzzmvNnrXmn9DHjmVslwZRXgC+Bl+clLLl8dgx7mmbnsrkQrmsrldlmcCmGDkjjns3n5IB6Poq+m2Dk++msRmi3kMDkrpnhTkuJmRTkELkJ5kxTlBVlJDn03l8qyU4QR6nsqmvNn1hnPqJbOAl9ms9n63mNhmNpn/2FpDneWlUXnAjnmnn1yl3XkHODvOks3m63mWNmDdmGQAx7msRlsJHduTnRTLKmjdkPSnjdlj1B6Tm7Rkd9mPVkQFGe3l5EQojm0BnTenfGnE3lPTglkYcABJNlQGl8OneNlbmnAqklAA36mBNlDmkumlnFliGnXKnetn56CQ3mDBEkLkYADqpkNzkwtn6jiVsCUaT47n9cl4Dkx3nAmkJhkJ3leNkf8lbmlN3k/8nq6lp8BDVnLwAblkwETrMnOelvjnKIRNMnV3nUGCx3nh3kNdm+TlR3mmckD3nBgBD3kgABjwA3lC6WmqwAaqlehnOBmWhng1CO3k13kqABx6naWk+dR6Wk8qlL3kCcmuBnR3mD3kzknwLkdhllBminljdmRZn3OCSWnBVlg3lLs7L3k53kM0k+tkB3nt9kbkkkRnpDnHSm/5mBmmr3mH3nw3lYemGQD3gIlBzLKmJsnZjkRDm4Dna3nf3mKUkAPnfAD9DkQMkT3kLFIzkkb3lX4ok2AL3mE0m73l+skr3kwPlgPmT3nwPnT3nWbBz3niGE73mRUCGKl9qlf3mT3mnul13nrmk3UmpNlbmkTCjbmkPNnWRkYPmn9Ax3maunkPmeNkpNn9T4/8k/+kkPkLFIqi4NhCgbT3xlNhlNpnJTmZjny5kS2lo3m+WlYnkQMkWbke9lFJnzsB9mkbnkCqlhSnETmJRk8nnkTlKPleJkXklhSkIRhyPlhSnkTlaPmOmnPdmu3nDdkIJm2DndrkIzkutnsXkypmPDkZtJtZkbRmWXnLLmFLk94ncLlOalA0kzpl3CnWxkXkkJSlxSnqiSePkgLkhRktKlBthY+lu7m1skaam0+kphmpMldtiH6nsZmASlbyKWql4djQkad0m7IC6Vm0+lUBlOOytsQTCh1MxvNkBjmcClSPmOlClcnoCn/3mxPkIdbrTgJPkDMkFck5PkpMnRikvnkvCmi9ldEni9mfnmS9nfnmSPlBPkZMnKXl0+mmPlNrmsRnlPkVKnmXltPk67lSwCdPnNPnG1DBsGQQAJMBaQAyPlesChGlz9n8dmtplkrnpamu2nv7mUynuimPtmXNn9cldPkUNaqIYjPm/+ytPnhRkzPk3dnZPkexFMeljel9GnTdnGVlVSkHnlYzl9bntpmJdm3bkDRjpBn8ekm2ya3mjellunpXne9kP7nzBTu3nrCjs7k2ABEkk1FmpTmhmkhPlKJlXdm7PkD0lXdkvdmCdkIJnrRmdpnDXnemn57kvXlyOhbrnBtmDNmoql+tnK6kX0nsenZnkSTnwZk4ZlhAArjmXUnSTnXplNQC4vl2VkR3lzNlj3n9ckc8hfPk/PknsnbPkMJlWXlUlmdVmfPnAEBUvmPSltcmQvktSnBXknBmpdkFcnJjmrDln3m+3mELnYXk33nnFlwinUBnGJn3FlIln5llvXnU7kSvn7SkW3lgVlW3k0XkyxENZn0XmEOkY+lBXnQvnfSk9pknPnSSkoJncXnnPkPKmYJn8Xla+m2nmEcmOtmN7mEcmkDm3Fl9dlE7l5lnFlmmck8vke7k0vmu2nP7n1XmOCkOvkR9mz9mAvnOvlxdlzPkrlnlbm6Jl6ykQMnuvnrUqG+nS3n5Hlalnqvn+XkqJluln9cnBvlRXmm1mvPlmHnRvnZXlBvnhjljEn5XlOdnqdk2ylRlklUnBvlKjmcDm2vnsDl2SmUDlR+k2IoQMnXElqkn4kksjkgDnfdkFcnPLZ5BmvxnLClb6k5NmW0SZNn2TlgCmApmTDk1znrelThlbelF1ktUlrdlahi3hldvlkTlbdlDvkw9noDnXUCNEmvklSEklUlVgCasSb5k/4ldml/YR+NkPDgwil4Tn51lOkm88kN0mETlCdjETk70k/0mqPnjvnmTnIHTOOne0m9OGt9lLzkw3nzplLDklUkUvlMvm5NkkWlJ6kSVm0HkIYacnmgel38jxDkHWhZPmOCnCkmaaoIUBP1mDxkZklcUkZxkcUl5kkQMmueks9lr7LFQYYICSem+emj7K6qnnpk/gBg1nJBkg1mF140zbzDD8jhqekQfnWelZYCBemaDmjumBel19nSNiwfk+enpsDpUl1dkyCmcGnRZgYfkRekgullPkHPluBDKIQ6jkF3nQ3mgXlDTGFqlA6kydha3mMPnRKk+3liWmq3mX3mxTmu6l2UnxTDVqk9HmKkA9HntEnk9mJoCuPnLbCS5ndFlrqm4SnbslNnn/ib9mHSlnxTDd3l4zESfndHkbVAWg6PhmCXm4Jm4+kJdnn8m2PmE8mHLk+mlCPlaimZUlDBmpMmZnlGVk2NmvDlmvmHLmzPkqfk9nlqfnzQBIYQdMm81DsgCJXmj0maflzMnifldHlSfls9DefmT5C+fkJvkP9n8dksSml7mufne0mqfkhZj9mHeskafkwmhafnvnE6fkhfnHHlyfnDBmJoBVPlVik1Pkccl1PlfClfnkZqmo7n18GsWkMPkk3lxrg+llUnmBvhmhA+lkLem6Dm7zl+anbsnwqnRSkc8hblkZsn03ltfkXkkdfltrkeHnM2ng6luHnQdgFDDmPlkxz8emtfmhNksUl9fnuHkFDAvPk4gCFynDfntrlBHmuvk30k9fnTflLfkeHkPTlV7KLfn+Hn9fmjfnMJmV6maaovsDDjntmkm2kxDm/Gk8pm6inqZk43kB5l43kwik2PlQvmnlnXlkAtlIUnhSkEUkixlnPlRVlKUmskkPOmffmoymrklGplmvnAvlPHmmck63lAkRhcA3mlEDmNtmZSmHfnFqnHfmQ/nNyBnfk12mGxneynOkkusmO3mvjnOOl8Pl3lmG3npUko3kN2AUeSY/nzzk1qnFqnKDn/9mVqn7JkL8CDNjsbArwFg6IfBm5ynwvjpBnSqmTJwSpm45mg3l9Zmp5kDZmYXkACkbHkpMmgak+akVKkjCCVEnU/lPIChlE26kIUA0/nrtiyBmVMCXGlGFnLXn43nX3mc/kRTkyRkq3kfxmuJnBSlAjn6vk+1kjiAxLlHinpKm3ZlJLmpLmpLki/mS/li/l0/lfalm/m0/nX4qaQDUdgKmlb+kY3kM6ktzl+Mmi/m0/my6lW/nS/kZQJexRwuDReDR0kk0nVJkEdhRtngqmu/nlyZyXlaABOOD1Ekh/ni/lgXnh/mB2n2EkjhkCilR/kW/mOCkI9nHG5RYQe/nR/nkvn15ExECq2mXhmJ/kZ/nJ/kQSlJ/nEGkwOLy/k4Lkwim0Tl33ksgCm/nHgBS/mZ/mW/m1/nm/kl/lAaJd5nupnBMn3PnhFlGqkT4m5Gk0mDEeBchlFUkUKkHzkePGcGC5xDCZZyLkw+QKLmUjkCDnUjk+DnCDmN+ly0l6tQvvEdVQbtnxrhC7mSDlOLmY4BU1SvelhDlx9CAgAfalrAFjxk/AnytnEmmo4GHenlWmx1mXznstlz/kHDmiDnmZn2Lmkpnr/ki7nSDmE2muLnVqnLeCVUBEChy/mK3kACmDZkSnnJ5nv9lRGn8SkgbmebmoSEZYaJGndihTNmZlyjinTPkGVmzPlDFn/fn1SlixliPnUXlM8ksAG4mkgPlkHTv/m3th4MCXGlnLkrpxv/lkgCQdhb0CXGmq2mQAVDRnW7QGyiEAWf/n3ah4AWVRnvnFYAVEAXHuA0AVECjjPmktkbnllRgp0ncZm9ynGimXhljVnatg1Dmd/m2ak1vmhiAZ2mUAUf/k4AU0AXySlAPkB1mfCB+Plz9kOJkQlmW+no0nZflKfmJTkhRmAAVoVmCgw0zn0AVUAUSAUEhksAUfznSNgA9l0thA9nJUmtyDALnDBmZnko3kqnnkzEMAXUAXZ2kPcmy8lKuAOBna/nj9l8XlTBkOnmEsFAEkEAXiAXEAU92lfcl4zF2AV6AU12lq1lKymD0lG/kpLlhOk6AW+AVMAXe2mxwCPMoEgDwjnXvmI6JBAV+AUEhme1laMBMDmZvm00k61kIaTjympAWxAUo/lI9mcBlFdnmOmdhliAXYAVpAU12kpVkX5l+6ntDiDMnbekG5k5VlwgnbDnMKmX/kHGn7DnWLm3/l5FlbtmP/nPenOLkv/l+LkQMmhJiD6SWmmIUlsvn9KlkXmavmwvnsfmcCkjAWL6n2AU12laumCGkiaJ2GlufluU7zAV4aksAWKAVQlkuqml3k65ESGlWsBEGo7vkDvlETlahjf0mbdlfNjA1CKsln4nkTm7MnLPlj1AyfmnYC/5l35k2fmtJn2fknPmOfnWPkmPl9PlyTmmcmbAX6GlTeAhTib0ld/npeFisDJMnAcIFckAgWgGnVyTAWBf/nmWkrAWpPkWNkc/k3tlK3mq/linkCvkrPlt7RnvklUnQgU64SwgWLKBy/nynl+ZmrXlCvlhTR4sAJZnDAWsjiL6kEgUgQADiC8MnxJlOGlQgXUgV4am0gV9Gm2Dn/NlwAU2Xm0AUsXkU7YePm3XFiYi+PmJoA+Pk5fmnYD7AWWSnj+nHAX9vkdqmDvlwRgXAVyhlHvlygVcLlb0kZ0mUgW4gUsgX6GlsgUcLkaKmpPkCqn9JlahgbdkKgVjvlwRjkAVHMl4gWITZECprngqhieGnwgWmhlOTlYgWOCn49nmgXytgqABHxyQFlTPl2Pni7n0cIRLltpkTpkz5nOgWCGBugW7EmiFlwXkh9mikkBgXC5BBgV/nl7dkvJllElhLkJLlCdnEjkmUlwolFKFkwE2TxupqANzhbJM8azwymCESTFkIH20SzgG+iQeUSQAAiColCzIUEkIG4iSAQnTt6U+Smryo7mOgkXogxFHyQBVgWvFqzt6zgAwAA8un1gWtcxkIGykLONjlgW19rvoDrXCaGweuQv5w6rzgQngaSYSytgXboDcaTqNCjgWcHLG4FhPH0uzhC7TfzS0aSCAl1jqHDArx8/FwdIbg7Uez03QvSoH5rvnKHZB6URThAKICwvBEPFvTylggPYBc/Q3QmVyYm+SzqzfqB0domWh6Ub+KDvUzzZioEqfRiBhopay/cBCGFtgX6umdgUuS7dgXnaa9gWzqwfgU48gDgWAQnfmxvGFTgWRxgC4GWay1dCIYRJxhlGRlgDfgl/gV8V4t7hNgUa8EXoiQQVjgVwOEk2SORhpgGvDxwQXqNAIQVygIlgWMzRlgXAQUVgXGADgQUUQWgIhTgWExGDGRmfxIOFjRAoQV4+zrhr79BA3QWORnBQpgUGO4ynHz+JhUIPI7TjBZhw30y3AnGYSSpgm7ZQwBjIyFUQT1ggACJUTqgAWTFuPSJIKPYkb1baux0S73ICWrx0S4SQWKgAyvrGABsmHSqDFgAjDFobm1CG/kK5JRxGI7DbMSC0gCFUQyNx3gWq0JwzAcICKsQpUBUEZ/9adpGEICvdReziWQV1KB1KBiuQGUncQXH85pgXwXo/vrPAyWKl7/HaNmFQwpsA2cQF4CeA7KaHhJLH+g5EDdqR/PrEwkFfZ9x79vGunHpRRAzT00j1C5VC6j/kbakBfFB9Fl+5R9GtohTHRO9D5PRpQgyhJ9RT3LTnPAC9QLYSFdqngz1C6hsz09R2e75O7NOC3FzdyHXbSK7EzgBUpSpYw2eADYSg/GjO4THToYlsrjnbQuk78eiwpDD2D1aDh4A7VHkADQ7zxAmHV50xjZDKMjByKlzdCAKYXIiOo6REqW2aERT5CSVQCXhRMBHwSw3pGzZFYXLe6Yq0Bi7zYIy5KEdI5uEAcKHTFjao7X0h9sIyETHQWoAAAgAbhi6MSUGASXkyERXxj1RSzLjkzxMB4dRSO1nu4RDZwI0TOHjPyhdkjfTC3+xY6DOFRtVCtHmvknk0bjeDgJw4SD3QVW0BmfagbTzQWgFlhqCqlAizR/QVxcgSoB47gIalkoAX/gnwD1RRtsw+AF5al2OgIanL0FYMg3QUwwWWpFNA6HNCN1iSrigwXmolk0EHpmdDCYMht0j6ozt5yvQWuzgxECegHy0CfQVfIBJ+E6+E2IzTQVFH6stT2HmZeHMU7zjyveCU4n36Bk4nT+wSwWSkDU4l0STHkJWrydPbLxat/YcCQzI7jI4IsRjgJYMQGgaWDIdBJlwx0T6YqIRmrygngURwpHApaf0QdhoycwtRYpVhisSb0Q5o74AC2WH/ICK7RCSx7IDY2qeZY+KqEEQ0+S9sIywUd/YKNQTI7fiAGwk9vbMEbHeRewVjI4+wUawV53QWPoOwURnG16xcbpQ4mZFJi4Gb6ChwU76DI6rbGL5+TwjhQxxMMTVr5YlBPHL+Ok4gCuikmlAGGC2far4AHJKVuEyiAl8DUbDVIzVIzMMSqN4YroTxiWpCv4QCjjviwVZo5wUB6hnHRnkBdYiBnm80T6kI2PyuQxlwX0bCOORW6buFFHQUwwX1RSczh2fSFKkdRkSj5YBBLrjFTDYwVr4DDwW2cDdIggwjdwkvQW4wU/8ieaoh0CddTNwXhgHILR+Oluykr6D6SmT7KKUBbwWuil/QWbFB/s6dvSwflHwVuymuilnqFDpBfUpbDjX8iddSuikcNiGGCxVaqNg3aAMOl7MIwcrnwVa/RJ0EoAAfwX1QAqwyPwUlvz7OAvwVJ6BvoRvaJUVgc6TPcgGZxoiliylnCn7wWgIV+FCbORYZRnHRdYgmak1uHOIhupS9wUrkDDaRNIg2Y5YxCfI4mWCZwXy0BL0GjwmwEC2fZrsBbdwYiCwIVNkG14ixPL1uGI9pU5xBtjPlIM3bsMQ2PxftxyJZj3byoRMCyhijXNI85DU4R8KQIfJ10DlwV7MCfuzVhgt3Cd2KdYH/mZjAD01brrSIiBEsFBilUFigeC6EqVbC1MjKIUVipRMQlEAVipoEE26gFyl7H5bwW6IVdDBf8hVZCj1AVIFogByKA5cimIUKMQgjjJk6N+x3Dh+GT2bBTwCotm0kJ+diotkQZQhSKwalaIUNHh5ak7Qj6krNyAc8xFDgQEBvspaklv+oVwWcrimkCgkrNyDsMQGb7ILQGNBASBRMRmkrp3aYtjoIVHZSDDR4oKpIWbOTkIXJTwZADULJEsGbti1MjULKlSiQ6okb4RaA0IWnjgkuhqnmdwX0XwDwVBFBDwVZKEEISM0AIwVF3goZn4IVlVhECSEIUZwVaoQ4knOAD5wUUIW3FBUIX9JA0IXAIUI5zMZRkem3GI6PwiIXg7DhIVVwWZApRYRMMQVZr10BksEr/65AwIOS2xj7xjQwA41D10DUsFj8HN76blRyjgXxiPQjeiIKhkyETDdBXDCaEQ4kn62DTmRD8zRwQR441wWlIX1wUpGB2bhVIWMXAPPFh9RO6aDwWfGK3QX3QURAAhBxR9ZeTAr6DUwXdIWOkmJ6mtEmVvnr4x94Qe7nu4QmOCYwWXchowDfmwrwX4hAoeDNEkzEm9IUmQmAAAoBC6CWyATIRI/gPwAFhjBGRG0uOgCNffi5kHYRKONKk6f3MrggIihW9BSihT0hV7ODSKM/KOGVmxkM0iJjALf7D/BYEJKGhsz8DgAE1URAItGhnq0BEIFyhVDLE5nKrtAZYpJKlU8DJQjChOIoLDQooABUABjWHYtFzjGfclGoMSDmnBUQhXSITiScieH0hc7gJQhfJRCYELTuCMhUuuMXBRMhaXBVMhSuQDMhU1pDZjub4HwhZfBU4xmiAMshdeUfsheshX3GJshYpQNshViwUIfqshVIfn6wm3IYVAMchWyOKchR+LBchayOPrYL/uDchc/dJygPchXXBWFxE8hZUhR3Ba8hfqQrUha0dmTBQ0hXu8n8hcgtAChY7VEp1MChagdHiSWChbcSTsSZChRDCO7hH8AOnrhiKRpoAihTjBUihXD1hfmTMSeqhRihVihU6CTihXVAPihazoIShd3IFKAK+ALM4PAhg/KRShbPBWzBZWhVsSdWheS9vShcjBUyhS8wCyhZdwGyhVSnOHqqL4AKhVUAHPvHPntcZDGhvyhU1UaiEjT2FYROvgiShKKhSfAOKhevgmAIDj2NKhbKhYVTPKhXzekaDjIRJ0hcQhVqhPMeD6hRqhYAdAMhdqhcMhUQwfQhceMYwhZyIDghWOQKahY4KkjuPMhSZYIshTaheiwXahWshUzUBshT+hSyADshSIfnshQBhTjQCoAEchayOLPBWchQQhCVOmGhSUhRGheUhZeVu3BUmedUheQfveCLJHEs5K+hf/komhXdBQQhAycE9BZeeVShcihVWhZehayOCfQCByeM+UqhGLSdPBaTBdDBSdBcmhSjxn2hbyAOmhepADTBRW+bmhYH6eChXmhbChS9TOWhdSheRhekZFehZ2heShRPopShYJhWRhf2hRRheknEOhYyhXcgjPBUmLpqUleAJchZDYi8Rss4YnrLSdLzBWduEjAKyhdD5lOhcS0AKhd+ls9JLyhWvKkZhcuhUKhSZhUpaCWQGKhaToDuhVKhTKhciQdGzjIUIDRBffJ+hgOfrBhKlWHUWHBhCYoMDCofpD4qqpsQtkY5LAO3m05OQkm05FiZDPgehaKndCv/hItqZkIq0PAzLshQa8F6oZ9yOfgDiXOPYH0QIVQOnEDNrllhWj4ZTIYzGC1KnN0DSzFcMPiZoYAlGoFteLATg7CfaFDP0l5hWKxLUWFbBYlWI0WNqfC/5G1gRYsVUWGKxERBQhhDo0BCYjIRK4AJKYS/dtHIuIzre4AQhEAWvz1Be8udpr1hd8bH6LJO5LPBa4AANANNhREkX0whsYOmUHYgPVSeDAWo9OthdoAIk4ZiwVLwfhSbthboAK7IYlQHTOMhjptBQN6Gk0IfUEaJBw6B6Lk63uuUBw6FiZDU7j07pjgM04ZiIJzPq9AM3vuEobhhTWrGIhZXBWahe3nORkEwxLxwryEBcECywF68JY7jyTE8+Fshf/qYt+gvCPTVmiwZthbmkOiOPthUTwDiSY5GIMIgZvijhUYml0RIJIrXBWUhbTuKqsO8AMqhV0hVLFDiSRPGAbUGDOA2OFqhfmTvehXHAfqhQwhf1Qq8jjvrLphRe1OOhd13IuhVVIE1USyVtgLDocJfjFLMqfjOIUGi1Po+MFUPZhZKhXuhU5hYDRKehenBeehcThayOCfPKaOOQhZqhbehVThbqhQ+hWMhcGmfThTmtJKYM0IPphenioZhUuhfl7L5nD2zvKhdJTL0uALhXZhRKhbuhb/wPuhVsYu3nGehXSITSeJIYEGKdehZThdQhcrhTThY+heMhQeKs6Uo/AGUwGPIiBALceKoDk08CcEkGKbdmsq7DnychTg1dAphNB5EmrNYrPJxEf/DyVuHsBHhd0AFHhU+4Z9he+hWYGJQINOyXfIKHhUGKeHhfJxEnhR9YNu9BHhXHhQNAAnhXnhaSvh9YIhVOGhbjhQKOKhhS8hZhcG8hXUDOZCEs5PGhbCYt8hQQhMAMPDBRJeY8aHXCMEhTnyRA6unGBWhe9Bd8KUPuFqAFJhaxhVrIkZySPhX9BYu4FbwCL4jnhaKgKToGXhVHhYXhbHhVdJCXhTHhZHhRXhYlQB7ud3hUu4LkUUGKREwv0AHQwDoxDYAOSwHSuJdwCDBfbhXQyWW6eB8qqqVpaTIRESVvVFPbhb7hRoBqOhXphSzhTrhSbhcurkbhaxpHyhezhbopOLhYThVLhagyPO+dkagXBYrhS7hQFYceObThU+hTfnpP3DIRHKgAMALxBv3hY/gNTACTRPxgGnhSEhc3II4cDBylqSbMqK2gBLeWhGHEhR6GOTRhnhdZsLgRc3IPgRRzeZY+g2hWgRSfpFH1qARV/JOQRVEhQEgFQRRLeYkhSwRVt0E3RKIhT9hWflBnher2T0UJfghQKur2cavEIRR8PJwRU4NFXhY8hRUhWOha7kN13J5mKL4ELhSOpNGhehhbGhUYQjY/NGHLhha5DPGhQALDKCPUhQRhcxhf8hRChSXeAWhYWsuxhU3WOeRDIRH1SKdhUvOBLedbRL5yQgRVFhJxCD83PxhaWhbOrKRhcM0KwRdoUIwRXfNLM4GWhTkQI2hfVFDiqmJhcM6VEJJJhQPhU/hZQRd4RRzeSpPg5+IwcDSIMkqETJDSOMAjggjrwDPUTqqREsAfghfi8QDYIS8W4OfNqYVDO6WjZxIwQueQKiYWgxBb9tX4gV9vkXi1CgL1G2iKlBQLBXT1Ivlon3vRfJmJEs5MSaBmJBsUFHYvepH3JrCYmp7AYRUoOMGoM9oTTBdJeeFeSrgPlAEzBVdBWaus6ARUxExhXvOBJhVTBRmhZYRbQxKdhR6SlsOPkcXjAlbkCWhaUBvNAFfSPJYNdBWJREmhUvBIbUFH1sfBLcgOpoEd/B0RVRGCVDOgPGnvPSyWsReB8LDnC/yVgkQvoKUBgt/sfJGMSYByqpWfflNfNv49J+olH0UlBTH0bQoXbUebiVaZOk7vT1HlBSicDURZNBRZitYQPctHLGMVBcz9CnpGLimLBa4gMHBbMjpfHtLBagxqrBeLgXLBU1BrstPL/FzmpsoqiRerBUnBT9EtrBRoMhnXJ0pI+wgbBUPQkbBbCkRe1r00eFFsDgjBQJbBQ8pLbBbZYfNII7BbF1i7Be3YqdhVZRB7BdCgESRYnBS7yf7BTllg4RkHBZiRX39uLgcSRS7ycP7EwQCDZumQNHBYH6tcALHBYKRSnyPq5PmauUAV1lvFAIHDHoRi0RaFuj8YN4jBPotkTPO4JsUAzjvLVHoSDO+DeIKqUNTgNeIOGjvmZo3gJaRXaRQMwA7ALaRXZjvOIAyRGZNmg+N6jqGqOyAPuRCWQn6RYvaD6RSIChridMRX0RaPBe2VAsRagyAghf3ALnQOEKLBqfTQqk6QOmUQgAtUIiJuJhWERXmJCIAOIUKWuBrjhfhsXFj0IpjAGQlEy4PZBElunDcQjbHN4HlGuIUAXpL0uNGhgLjIAfPBoFBIiRkDJQtPtBDQND0ctwGZNkeYGzOL8SqgsSRNG/0mBqFSXgaCqUJMrWsQRP1WF2RVdGJAJJ+hQPgBJRNHFHGSZAUN8iZD5gllPgYAGRWC6KN8K99LktFYkk5gTmlJTJJgBlSgOfkDNeFBkDJQgTQsH/CntCDWMjzPuRXyrH8pPYZPhAFHhY2wGeRYeRfYZC/wCH/IO8hKsJWsf/YXR0HuRVuheeRc9JJeReXhaeRR+RXeRceRSYAMjzBWwLeRReRQ6wPTABKgAyoBypOPIIFgFG5MAJEuRRWbnzSLzAItGB8Ntc5EwTPSUY2ENwQPQNE7GEoRXtQmrtL0AFPUJjANhRTJQiUAqOKBwsmhRSwTNpwBvgCEbmKcnyShdqf6mMVMJGCT6RWtLjTkDxYIilMEEGc0DGEMsOjJ9qawCDkMcOCTUHEUjPUBKELXwAxhbIRAcReGRYMRVqhNXaRM8gPAK5LlgyJMRcPmqGRc7StJhWxhRGRRxhepoAwxCxlvOVNQKZIRPYRasRfZBGyYMNhHERQyhV+Fr4sDfUMhReZikXCWnvEH3HChShBVsRaTTOAAJihRhBQBQjigIWRbv4OuHMc2H1ECERZYacIdh4sIEoDc/KmRePINOgHfhaUOMIdgWRXPKRmCZDwGvsPcznBxvujiJ6GaNi9Wtz3CKDmZNrciKPwD2snQECM+NcRa7vDsReZYIdLisSYpRSRtEM2AMRUChVLFNk6R/KeMRbsRfQNK5RWH4OQ8pCVK2YYYDFpiLtANjbp79vqRWrAm+ZEaRVXkaCJAfSCaRVHYsCJH3JoF2oTZBCJKSgL43o6RVm+GtBUUkUBNqdhVV0NfuMaJDJEDZ4KXAKAiFCqK6RaroIJcILAMnnA9zFORcDAHGST0ReTBSPBbHyIc0LgWPlRcpRRNBl2RIj+MVRTrgMz0Gc2EHpBpXjgqd2hZaTEZRWWpFigCIQDOpCFQLBwDQWBKKtnbLmRd13HbYM1VPiwj3hrKKmMSfQzPsRQYRTO+Jj6Cv1J6AO3eMCgDPBRwcEDRUpRe7hOkodW6JdBbsRUmLjDRWRfonzD9gGekc0hQ/yCSNBOhQMjENkN2GFVKMubqghHnAHHSB8SaITrEwCP0EmuGfyX37tIhYjReZYIdRdMYMKJL8ehsYCQcN3CXdRbcePesH01Nm+PGMXY8EW1hgul+AHKjFP8FgcvSpuZRerYrTDijRTHyEPWKpRRYRVGReg6ePEUBICUEcPsEn4YyxDVFIZ8QthK20KHye0brctOCReNBT77oVBdLQN1BR0tFk/EaTqljIgmN1BarUUtns04ImZH8gKy1AthBQwH8YWhuRonl1FMYXHZQK1BQiRTPgOxDjV5MiRfhXBKRY0PlLBcQRKiRTiRYbDqhbBD/h8Bus9irBZKRQnBWqRYEbImcCSjDrBRSRaRxFSRfrgkcjPQQd7nCbBXqlmbBVzAiyRS1FmyRXG5OmUJyRVkCNyRep1LyRaTJpibJ7BT7RWrBUKRdndCKRbAdssVF5waqRV39uHBdCgHnRVHBVapEqRVcACqReXRVKRZXRcnBbQ1iDjMdAA4QhtUS1hTVhWUaFo0JOAchAKPRRw3jIRGp6PnnHHIui8MNhYuDlH7JzqrYweMMpZ8k+EgXpJnijEDhgusTTKqRIwuINWFgcn/DgyjgrGvVAp5BWyRHAIBf3rpNsKZB+obQuPT0INhf8ANIuCTRMWpjfgEbGk/Re5LCLxDTCjUxHMkDIROi8M4RXxsv3hei8PenAQhLPWj2AE5RMm0MzAizwCnaCsTPasdN6OEoRwhT74U6UqJRHfRQLfkjplLDJI1GhDkd6WTBRAID4qqPiXYhelwbTysAMHm/LqTjIRHb6HGSUjplu5AIDGAiFYRdAJPCYvn2paEGTBU3FCNhZQYF68HvOH3GO19iMII5uEqQLLYotVon1OEblBvnS2NDwbvAV3oAFSawxYVAOwxXc2GZztIAfXkP0HnDbsaScFwSuAs3vudAJKYBtQTH9phPLF1ssgMahWOQMbgMbgLMhRnhduMGKdIOQDkECXmV8yOvMP3haVDH44v+sXsKDrAr4sHoxaGIH4ZMUhdjhQ8hZGhRUhcijjIRHPACqhZnBZsUJgEXnBfLhTehU5QEXBXThcNiqBgJoxXmNlYxUmEJ4xWcdPyjrAxTmtLzYjIRFooJJAaUJPHIP3hdgjJgxdc0le2DfBeZ4acIGKdGExfs4D80IruBC1hnhZ9hUExbMhdTVFIRY4xe+LLoxaExYqOK6Kc0iGhhR2eRhhRwTi/VCZ/D3Beoxc5CO8hbxQCmBGLvL0RbDRWdBen2BdBUphYdRXOAKzRDftA/KUdKMmRa0MOVRXTRZ+hRWhf3MtsfE2UYhVP0xeGRdRhX3iZyAMsOPRhW3SPMxXtRZqGOPBegKZPBUHpMJRWsxeLRX0QIvBRc9MU6U2URkQMvBZMxfVFNMxYvkcvQVQySegCyTD8xqkxa3BWd1OUxbY2JUxb8KafBQsXElAiZYC8xXGBjqODfBRc0O7kN/BRRUVnMU4hMfyW/BSUQAAhY10OUoL5yV8xX/Bb6eAw6UAhY8xaAhWCxZdEoNuEghSZqagheixWkhZghcGQNghc0xTrZAoGkn4YDRYr2JLhXSIViUMfBWcdE7hbcUH4xbARQExTMgIUxTOpCExXMQBSxfs4BExSZ/M0EcG0kZZnPBckxcjkO1yWkxUyxWIACyxUsAIw4VGoPkxfixQyxdzDmg8EhhdXhVdyOkxZ1EkmEEKxXghSoRbUxWoRZhhd3BThhc0xQALC3hR0xTtRWa9PDRb0xQdReLRQMxcGoGShePICMxSzzGMxdlRXDYGtRVMxevBe1yeZtOsxZLRYsxWficsxcuDHsxVdBY6xbuYrrERPBYJqasxR6xQcxVDHCxhU06VXslQZCRhRcxWvBVEJJ2tHvBVKxc/uHcxYuJD8xnyxU8xbZ4RkxQqxdfBe8xd1RZcRaFgt8xZiwGKdIqxbfBWrmg/BYmxcixQgKeCxf/BazaV/BTCxVmxXCxZCxUAhUWxUBIiixRAhSkhcghexlBkhc2xXxcOyxTw5PixXghVpgESxTZjq4xUThagyFiUMgEWIUdiUOARb4xdDVv4xY7qrSIJExZyxdbZtDBTyxTIhbCdrrEd2xeloOKxRZDtoxQZvj8xcOxcuxXYxdvxshhXjhZnVDUxXoRA3hUZ/BqxRwAGjCK0xU1AO0xZ8Yp0xRTBch3IjlLTRXDYMjRaJRX0RcGeVQuI+xeAEDaxZcxevBf2UXMxeLRU/AEnQRgevblG1RibEXidhqLOGxbMRZGxRvoY+4OVFB7uf9CN3iL6Yl3oPX4UgYm5oQhsF+xRGxS6gLCIKU7HWIOw8rBxRDCOq0H1JIhxQjSWBxVaLBBxVcxcRxXhxeAENuoNkwErvj9gL0OCEYK6UZv9nJwJV/D8xi6kQdYQKxduxSw4IZRezRXp6p60r2xe3nP2xcARaSYB4xfaUV2Ud4xYXBROxbSxVOxTKIDOxcL5NExfOxXwhcjkKHkSuxWoxeexeDsBKxenhZuxTmxRUxZ7kfqOMNpFjhXuxTKxRUhUexQRcCexeqxZfVJqxf3BR8hXUhTexbqxYLhH2xA+xX0xUaxW+xSeRDPBehxZBxZhxdrkQ6xf+xd/JPRxcCxfTydnoUBxb6YnrvmhxWRxevBYclEXQMevnBxf0QBOpL6YkGYaRxaocLaxVBxTxKSBptFxZVAFiwrujkcIBmYeBxYlxd+xVBxU4aalxfhxYLJAVQL6YgEZHFsO5xVcxYclE3IKrAIVxVRxbpBpzVgiYHGxSiMjrhdrkexxT8xZgEXVoRmxVTEl8xe/ZHzBcSxYJxWSxR4xWxoVBmLAuOJxdSxZJxR7hdJxdBULJxfxgPJxdyxYpxTkuG7EQ/hdIuFUxOGTHakU9QASxRkEGuxVoxb9hToxdpxXMQGHqLuEb6CfpxSUxeUhYexXXhQfwGZxY0xWexRexdxstexe8arexfVFPexUcRU5xS+xfdBcwxXqeQMRSJRTn0HlxZ5xcNxQFoSQwMSxZ0xYAxb5xSMOMFuP9xSW2IFxVueH2wr6Ys3sOVxWFxVBxVIkZlST+MY7WYciJ1JHFxR3APDxblxRhxdrAFcLl8ADDoJRxXtCIjNgZvgiYNlxQlxT9xTjxb7dCyANYANPaF9BdFxTDfg1xRsYE1xSRPtWcOtxepAG1xftxWIAIdxTpkfhtB8xZmxZNOnxxfghQJxaSxe4xbk4JgESOxVSxeOxarhVemctil3GLixXAxXNxUkxQtxYg2SANjuxWydAUxeuxbtxVpxSmxa8xTqOCOxZIRdKxdIRedxTGhfXhV3BddxRZxWpxaN4JexSFIp8hQ9xXZxc9xV9xczBf0xS5xY7xf6xdjxR5xbjxf3kSWCX+xW9xSDxRAaWDxcCxRLxXIMdDxcBxZqPMRxZjxTlxRTxR7xTMxaIUYd+BXCHvEYTxduoOlxSTxZqPIP4WKYKFxe7xeRxYqOCOxbr+ga6LVxZDCLeZIhxQ37PkUhnxVHxVnxXrxXHxcXxfLNKjxVVICdwLXMEzxSxxa7NtnxYd+BzxTrxb8xbHxVxxXzxd1xVmxb1xfxxS4xSLxVqhFiUJqONyPhTheNxdLxWyOLLxTNxbBlhgxcrxRMmd2xYFrBrxTtxXwRdrxfKxXMQMPxZawCdxYbxY4xcbxaoRabxRr3g0xc4iAALFoRfepNqxbZxTMRRShfMRWpRVLFISYAEgN5RVaxeAEM+xWXxevBWJ6SfQP0xXGUCxhbdnJ6QuAEAWXIgem17JpdJaQX/xXERhcRd3xZlgmHIL9go/oiUMExxXZRJaACegAeFD8xmJ6dmCT8xevxbT5FJrHZKRp+H3xQL3gPxdfxdPgjYxbWvqPxVLxQahXSxZOrFExSH5AdYS8wCZxXUxQtSgHMebxY3hX3Bdbxb3QTZxXbxTMRQ7xftRU7xc5xSX3O+xW5xQjxZhxTc4H4ZN5xb7xez/P7xYAhYJQOj2aSHsKJKHxRoKP2iKXxavBdHxSHgNn+fnxXsiHDxQt/iEYLgJY5ZKn+UWvqTxXDxZHxTIJVcxYsAaljiYRXVxb2QJjxcoJSIJQTaY5ZHoJRoJRsYFJpFjxU/xVBxfQgOq+onxVuhcYJYaQioJQYxY5ZPYJRCUCnxRoKGYgBHxeTxToJevBREXAOIA4JQYJXtCBXes4JSDBbwJffCoEJZaQAflExxczxeWsjIRISyUPRKo0ui1G4JWMiRwxstQILJHUwBzZq5XGkJZdEsmxavxfkEKoJexEFbQMgAKNDMAJVzReW5oLxXzev3xW4xVqhOeAGuAOgAPoxWYJaOxf0hQQJZOxZb0T2iCQJe5fByTg+aQpxD4bJEJRUSWyRLIRZyFn+em/MB+RebhY5hRjWIbhTzhZITHd8I2RaToM1nIVQM9JJ9QuoCIBRQXpAoRfdsELhWanBp3CIYbZDpgJXUJVLFFatpxQMUJZLxXkOBNxWrhUQJRNcN0JZlgr0Jf0JakJS0JdTlCMJTjRUiAA5kBMJQ5haLhdMJd/hbMJTgLJsJWeRR+lssJbCAleRR9YBsJfMJVsJTJQv3/EpAVysAThSSxYcJYOxTgJbHgo/iWcJfKOBcJTLxUQJXLxUL8grxWl5IkJScgMkJfGMkQJErxVgxTc4GYAOAScNpLCYvgxc4RbNxc3gCfAMTAGnBtycSoxQvxdtxREhTEhYc0Jzxc0JSSJeryZvxfYxfuxaKOG3BRdxb3CfRfOZxbQJUtQCfxdZxTN8BIJUcIFbQGLQF6Ki3iXqlDYJf4JVBxeaVGgwcrOiEJduoPTANupL6YlKJfWQikgBgQD7ir4JbPBbYJZhxU6eXdoI4JTDAF4JZKJXVAKanJt1L3+fqJRVxevBS+no4JQXgNZvv4RaYxUc+IoAP0AEKaJqJZaJUwuTgOKGILaJdwJbjxatuM0JQoJdAJGJgePwrhaIpRXexW83I5xYaxQIJR9xXgUKwJW7xYaJbjxcSJUiJT7xcDxYIJX3Jq4JWPidviVDxWpQFpwI1xY3xWnvoEkNdgEkJUjpviooiJdviQUFEQxVkJXVRmL6rRQJWJeryc9CHKxRocg+EKGIByJQfQHjUMDADbAF1xZUJWKwlKPOqjkLxbUJQOxcJxbk4PGNKIxQwtGOxecJePxSXBdNxeyxViJcWJTiJUgxd5seBRDPxVgxWwxZcqWSJWLvBSJSfpDWJSQxXSJc59KoxYvxcyJTTRT8xeOJZuJbuxXDqg4xWdxXyJSbxZdxWbxYfxTdxXQJXdxbbxUXKo9xQ1DA5xS9xbGJRmJfGJZwJd9xQqJZhxRuJUqQPwJRmJQBxVmJYJ1Lc4AYPnmJfJ2BKJagyBmgv6JZnxevBRmgo4Ja5AOaJYOxUIxQhJcmJckUjwEI4JdwAPeXIhxWWgphJQBJbjxWWgrhJXXxXEJUWJT3vkuJXiJTqpEBJXc2NWJdSJXQwNkJd8ymuHCIxZcqc2JQKxeeJTqTl3xX2JQUFtUJYARbCJSOJRPlFpAMkEbT+rYfsiJcNwkrhQFYcwoe7hZcJVNxTUIFPxQkJaWJbiJcgxUWGGuJdc0s62EbXBOJTrZOSJZuAJSJe3nMQxbSJSerPSJbkxck9GuxbMhadxQexbeJbvxfeJYKJTQJYZ4LdxVhha+JaHcj+JSwJR+xbPBaBJaDxcIJbtadBJSQEF6JaEweSlGbzERJUlxZhxQYPhfGPnxYdRduoEzzMV9EGKVelEGKc0iP5Jd0wFUAAZYj16vKJSFJbjxSTSaJJeOwBFJeLRWqJSQIJnhZ6DiBAAlJQiYFbQAFJetJCztPzysFJb9xbjxQYPk3IIpSTlJQIJf9CE0hTnyXFJYiIEIgPXxRoKPEJdiJcpJcuJTfalWRAYEBYxJpJVw1LYfgxJZkJUxJXWJUM0kNJWJJbKwMPsNxxWfBT1xVysEOJQcJUJJViUPUSruQpDxWNxe0JVJxd4CSO9F/RboxJakTiJf1hQTSmk8UdpJ3nCjctzmpQxRhhHVRr2wvrRJVKO+2BIxFgRf72PHILOqqdJUXsNRfH1SFdJbPBX1SPdJRZrJwRXwcdOxfOJTcJUekupJUpxdnxYpPoLESpxceJRuxayJW3xeLxeDJRtxTNeIEzAKxXDJYlPiW2BdAJzxTFoVOACjJetJRtxZ2AEjJT8xZjJQnYHrxfDJezxVKxdyJUZxTvxSqxXvxWqxfZJVoRVZxW0xc5JbTyu+JfZxYuPDGJWwJXGJS7xYmJbsRXaJVBxZWWoDxTZjp5JUIJeUEXzJb5JTDxW1RmVPiRxQaJcRJWZJIpPiGJVVwGhJbTzJSNlVJZTxb14Y7ODXxbw/ozxZ1JZRJaAWovkWtJek8jw1DZjui8OHiJeFI9Jc30OgBOzAJQxT9JZLec8StgRQkxS2JYLIkmEITJdjJfrJcdxcjJWDJajJax4YR/DxJS8JQRhoOJTUJctJUJxcJJQUoFmuOp8fgJdOJYQJfJJfXAIpJd1JZVKFdJSuJRNCnkfAncjnsQd+KM2HDrl8hbwhVgxacfCHJbcIEoRnXLHgUGnJe8aoSJdc0tWvNnJSqIAisoeJauxZbxRoxZrxcvxRs1ppRbdjGM0NQYpO2LPoJzxVCMDhuB68QfWm3xXDUO3JRy8R36ohheTJUbxdZJVTJbZJTTJY+JRbxY5JToReORaocJORRxhJtRUQji5JfbxdGJV+JezJT+JZzJe5JTzJaFJaXJX+xOmJXZxeJRWdRRzzPlAAbUOWeeeeeMxU+xYdRRlRkvBVWuCOtFPAJ+1BiLqLJbBJVqwNIJelJdJJFvJZzti2UTXxVYwM0IFVRVzDJGbArJY5vFPAJLJRvJTVJa/JdfJblQSEJZFJScgKtha2en0OL2JF/JXPKa7uJYJc+PHGuIApQGJS/JfWgLfJcgpYTxRApXN0H7qRlMKFQLApWFRdCiA4jn/JQ37CgpYhJYjxa/JaQpVgpblJWTsv+ZpauPgpVGoIQpX8Saf9n/JS0KZfSE/JdVJWgpTfJbcINTNhg6Q1JRmJduoHNAXQpXgpc6fIwpUjAN/JSzzLEJYWJfcxfTOh9JUihWLHNsXnQCvExdfIBPLqhvFvJVhlK3JSSvFvJa3xYUJW3JVvJXNJZ8xVWxdsxa/OJ1VEtJQIJRfJV3haApbfJQmJeBJVYpbcIOaOOIJb6YiElGlJZwpVcLugpTwpVuqCfQEwpUsKpGbKqJUcQH/JaApWQpVhJW4pdwpU4ZIEpWyuOIpfApRf9uApTQpcEAMIpWnwL2JH/JcgpcrJbIJXYpU4ZJgpXApUQpVLII7WdgpfEpat9C8wEXxYwcikpVcxWkpXGrowchEpRLlFEpV/JDkpTQpS0nLgpQkpcVJRaPBvadiUC4pSrJaUpbwpXLRdQpY1JSugLbEPUpfkpZkpcwpbGAJrJUcIF1JVyxXIpUzDv3RBQMEopUcmp/sYD2uopfbJSoct3Jdopc8xZzxUspe4pWvOt7JbCxdsxQmJaYpVysAADL2xS6cUrUUtSYVDBZnB1YlgiJjCRURSVFDAoUlApK9k6CYBzHp7usaQkgV2yXDCcjCZcpfRqQFgMrUTCRVprvM1M1BX2ts/hbFJc+xcRsE2hYFuA2ELpHnxgK+AFoCLRRsCCtYhTrgICpYERQShYIUEShW2hY2uLRRm7oDCpXsRQJgHihfVFJKrIipa2hUDgJLdGsPNMafXQBipUCpdipS2hcShb5IX+MK+ADiqj82mLQCSpfCpc2hbipRSpTTtD82pmAvSpVipQipdAAEipUDgBF9oG4Q0eOypU2hTipVypXipa+AJtYbRRtYeCOxSQEBpRRypYypcKpRSpY5uAOGLypR4hQ+ICw4FKpbQxDKpUKpdypWCpQOGGKpc5jMbUAvBAKpWSpUypW2hcVYbRRix8AbUMRGOyxXCpTKpR7uDzBTdAAjhO3imThRDCNapYKpeSpW2hZCpe3nKSpcDOOCpShBVAJBWhQToYTBf+0I0ClwYM5FhkyDroIapZypVqpYqALRRg0gA59iE7OGpS6pUapXKpW2hYcLHqpZ4AKAIV+wM29DhANDRZipa6pcapUDgAqpa+ANGpbPBV6pbKpVqpSCpQOGNGpeuUJFcCfPGTIHJjvXkNmpf3haWpZqpSKpYWpYcLCWpQypS2pRSpRWpZBpHapdYeDLRKkXMKwImpd5LFSpYWpUqpf2pVSwMXYOPCVmJcOpWWpSKpcbwiQYZBAPRxbOpV2pcipVSpQupRqACCOBXuCupW6pROKXaper+tupdKpU2hYWpbrQlCpdc2RGpYjOOCpb8gC+EL/4h3IO/6ePCdApRXPt14Na2BepT2pSNYbRRtApVlJa+pVSpbqpU6haxAZzSLOpYWpZ9JLRRgUBRepaupUDgKMArRRvbhaOuGBpbupZSpQBEIhXjzBROtv6RspKi06nXVOdpjjIbpoC6cYB6LkRWSOaf+TZROS0a1JEHtNOpJcpSsgLpoiNcXqdGgcingeZok2cd1MVmcfVMUj2HmcWtIINMd06cWcZFouWcdGcdmcQFokxpUOxCxpaQdMNMbHtKNMeWcS2cVWcYVonNMfzqa9okNoiJpXRpRVnB2cXSyVtMeVonecWjMT9igOcQ1ogPtMOcZE7PRcf7tBOcV1ovGcWtIDdMaxcfOcXLMYucaNoq9MSucVppWucbNohucb9MTftPpoADMatoutoptouDMbtolDMQdojDMcdouecWdopecZdomUANecaBcb2ccppZ+cY+cZjMc+ce9oq+cbjMe+cQBcUFpZgRETMT+cZ7+rTMRQBVFpRYsrgDNTMfwdLecWBcRwdBBcRIdGjoszMTBcazMdjouzMWhcYLMQTotpHBodChcXzMcodMVpbWwMLMcYdNhcWLMbhcZQWfhcYzooRcU4dKzoqRcSW/uRcTzogEdLOuNRcULouEdHLMWLorrMUFovrMaxpWxcXLohxcSbMdxcebMbxcWroiS6HLooJcRZnNrotUdEtWI7MedIOJcU0dCbonZnGbol0dLJcU0vjbooXXDUxL7Cm1pezoivih1pdzoooACrMT4oIeQUVQY/MaFUFBAA14LcYkOwO1WPdpb+RD7UML5NZMEsIJARXwxPAEK7OdQiAiYOXJcuJJ7Ov/lJzVFFyGvhCbhMrkN01CkyMMlOJCdQQM/MXZRCV9umQDRpV5ojJpdmcQ1MVOcfmcXxpS5omxpWmcVppZxpX7tNxpXppbxpS1MQ2ca+ohFooJpfHtMJpZNMVXtDxpeXYOJpYZpZTpZWcTJpYVop2caVooppRlpdVotLcqppUdMeppadMVppR1opOcYVogZpSTpeWcSZpS9Mb/wG9MUNopZpd9MfNon9MducSzQoDMWtosDMU5pdtoi5pSece5pcAdJ5pRAdN5pYp9kjMaBxP5pXTMUlpY9ohjMbvjqFpShijjMUFov+cYFpX9ol+cejovFpelpQFpeBcZTMSlpcBcTTMfbpQbpVbpY9opBcejoizMQPfmzMUQgBzMfjotzMbKhkQgKhcZVpYHpeTok9oFhcaYdPVpbTovTogRcczolppWzohzomdpRRcd1pfzoiEdLRcf1pbRpYNpUxcXrMSxccLpXNpakdBNpYrombMRbMbNpUbMQtpZUdDroiJcbalGtpcxuBJcZtpe0dB7MTtpVbonJcftpc8UDUxIRRNpJp6wtyVtrtL/wPnJrcYs0iKd4FvEMcpa1JBbzD2pNOQJlnBjZpJgF68KjjolQBPxXJXAVQD24fwQv9xG8pcc8Y1cP9NJxwMt7ik9B8pSDNK3EMYXPm8YPRGXplHBljub3RMAwZTwMIAJcgKfpawoOfpRnQCs9FhcrSIBgiKFAOdOeCwbFJRFckvhR9YF0RLDyas3OJsDMQi6KeNmZTuKlLF/JD8xXmxVLVPKBj8xWspaEpd+EoEpejJW3xZxxXChaBxbAZYUJeyJbZqem9Jn0GyJcUJV4HGUJUgZa2JXMQE7Je7JTjJb6CasQErJUgJdO2c21j8xdzxZ/4f1PjgZQ7Ja8xWopespSyYBDmJopX8xVQyfPpnTpDQZSocs7JYLEYUgLLJRwZZkxc3xYUqY6kTtyO1xaJxYJGXwZUmEFxJajqfXkOnOET6T0aTnlAVyPvWBYwFhWOocAzILGwt3GCoZbQuKIRYwZXq8KoZRYmIp6a02FaBBjaBIRVH1vEhejJQPpJTuGxsEuEJ0RMwRf4hawRb2MAQRWXQAKiCUQBXuH4xR3UYlQtmOPyyAhQPIlNZiN0aQXKQAeLphFVkH4UCGpN95JYhX4cLkADoQt95DVgotQHXCC4ZZbvmiNKPeIYQA4hfPCoCwd/JXkhd8oujMBIqapUAsYNaGmNGnnlJ0RM5lPD6cKwDkZWHqKD8MywKvgKshrp0He4DVggQTG+uDkQOdyMoZWvAlqhL6pbQxM/JejSNZRfLNAOkf4RXDRUYABUaKo2O2uKUhBCxazaQMZSgAFSmcMZZu4F4hYoeD4hV4hSGoH52Nq8St9CzwBVchapctGJUkGIRc9RYUZQ0Ze8hOsKOyEKUOL8IDMEusKA0uBzyC0uAIRSsZfA8pQICIRb0OKsZWRGHkRBsZXYgI7Ns+UoqyogAD6hTMEm4heepavgEoQGKkjcZdpwCmIN9aq2QN/JZYdpJCa7kC6yDjUHmxS3nJlSUSzCohabbl2hqvgCjhXFxRDhYpQIUhdI9IHETlsOEAScZc0hH52P0KDEBTWxeUZXgwOvxbWbAUhbkhYiZQYvFixSghWcZdYWYTJTcZWeQCDsE/pS/pUXwDbpJmOLphDMEj1ZIjeC1JbSZRitPSZcSpW8ZUyZd2QKbyT/pcbSHSZV8cAyZZyZbDZIjeP/pSqGJTuKyZSfIuyZQbFEKZTUydyZZzxXmxRKZY4Zf4ZRyZWLEVyZRywBAZRSvOopYqZQFsUYhYyZcKZXKZXAZbXod6xbkGS2OLqZTKZR6+OqZRgZY2JePwNqZaaZd95HqZbKZZaZXAZZgZbaZVKZRhGOaZWmOE6ZYUJfgZcTJR7Jb6Ca6ZcqZdKZaqZfqZV6ZbgZWIALiZQGZRQkIKZcGZY6ZbXwJzxZQZYLEZGZWaZTGZRaZXGZbDJVopQwZXyZWyZYGZe6ZSmZZ6ZWmZbopW8xc/uEmZfaZR6ZSKZcwZaIUSTJfTViaZW6ZSiJVwYCGZQWZWGZeLxcaZfyZVGZSqZfWZbGZeIZbrxfPkXH0CWZdGZR2ZamZV2ZWIAJIZeAEH2Ze2ZZtZOWZfqKT0aWOZUGZQOZfmZTdAIoZWoZbc0gGZfyyP2ZROZWbAroZVhWCuZcmZXOZRbxLoZVoZVmZZKZTmZXWZeuZdc3LoZeSZSQqNuZaWZXmZYjeEkhRmODOZbmZbuZd2QM4ZZzSA+ZSeZWqZfQhW4ZU72W+ZQ6ZYOZfnQN4ZVeZWuZR+ZUYhVvBYeZUqZW2ZbOZaeZdOQLphKEZb14OEZWBZTqZdeZU+Zdc3AEZeSjAhZXaZUBZQ2ZUYhVEZQm2BXuD+ZWWZd2QEc4FG+IBZeOZcBZbYhfPCvhZZg4vqZd3iJiwSRZZBZcBZQ4NHPKXkhXRZY+ZVBZXfBVSmVkZSSYPhZTeZd2QPEAPQuehZZ0REhZWxZQUZc8WSxZe+ZVhZeqNqUZcKwGJZb+ZfOZRUZcoEFUZROgAJZceZbJZYjeIoKFuZTWZQKZaRZVhZV2RNxZchZaPwA6hZvyTJZQRZRywAchRNwsZZTxZaZZc4ZdQYMpZRBZaxZcBZe/BUMZRZZfpZTORCMZa9qbZZTuZWxZao2HlqcpZauZdpZZ2ZTdOD5Zc5ZWxZYsZdYWYIRacZZpZXZZeJZZ2ZS1PkoZZeZZpZX5ZfRZVhZRzyNsZb4ALsZXpZWxZRzyAUuBlZcBZYcZR5ZUJZblZWFZScZdWZa2ZZ5ZYVZVvSloZSVZdmZVFZapZZ6+B6GBpZfyZYlZfZZclZbpOPcZerhk8ZTlZS1Zc4heepZ1ZZ2Ze8ZdS2A1ZdmZU1ZdFZYOZdhgJ2kPNPH8Zb5ZWVZVhZQCZYsrAlZdNZZ2ZU3BWmxcWZZFZWaZVRZbKZd3iGiwcFZcBZQepQSZV2hr1ZYOZTCZatZQVZVhZRVmgiZftZfNZSdZQFZciZVUaaiZdtZV1ZRKvroBVvQDWxfdZZ2ZUQKBGZZdZZhZZ2ZaKwDkhWjNoiZa9ZYOZU2xRixQDZfOZer2ReZd3GAdZfmZfzDJhbj5saOpBIfMiReTWsr5vdWnpNvRRgogOqTGRCaWLi7RK9EHWAPpkIuRKOTJL4O5fAtFH4gDbpMx5P6JiB5KW0bphMx5Ju9rSMnTbNTei8wLVgrj9j4RUvrn9JdvFqwTj0FKPpVr5LwAESYTr9kOkLupOEkuWpKPAGgxIIQmvpQbRdURSLsQnyUDNP8RXT1L+SFk9FvpS7mILTgVBS7mCLTkksHVFCU1sc2nCQWvCfSTEMiZpQMiQc3hBWAGiQSMiS+Xrt1hrDNHagOJuVsZi0CojE/jrEiBG0pMQR7CTRQNSbN9DLMQcpBW7QIsQXl9L/hVCcdadHlzvgcZdlCVQFjcOHYXsQeg8YnxvEJM5JLqTIjOKo0DsQWcQeUULqAJcQWRANcQegECUCEzYPcQTpQY8QTqcVbAPJBbRDhwYLtUgjgDTxFs7NYURT3OJEJfDkKKiVFDTwgFzI/pcZREb9ueAWITEdpOcvAQifg/DXZToQodAjDDLmRAPJBXxJJgNW0q75CgTgYcUUQZQFibhHDOM6ZvjmVsRA5drUQYbaj0yCbhPaQK0iVYYqqym0Qb2gGhhvspj0QSkiX0QdqjLUJr71Ciph5dmC1o3YmXZZwwASQcRwaOpPrwCRwCPMlxghNDAXCbt/p+AAPJEyQZWHC6AA4saBtDdUIVbMv4FyQTToGciaDQL/kplDlKUK57uaRN8Qd3rvH9P8QaC4ksJisNsCQYAZKCQdVJOrifOPs+CZF0l7RcTiZ3RT6oH7RdmNuHRb7RYP9rx+grBSHRfF6t29mTXI0PtKRZrBb+DnyFnHRdvDJSRfrBUnRRLDLSRZKEX6lgyRV+hhnRcogFnRde1jnRQwMPKRYtpFyRVxuq7Bc89PyReyAPXRb7BRCJIMjuKRbA5RXRVHRUH8g+HDQ5X5XK3Rd1Wl9TB3RZw5V3RVHRRNir3RXapN1aFXWuLEPQIO7rstIJFnHUrMlnCQzgFnMH1Of9moAoo5V5nMo5YGNmblnl5L+rCxLpBpPMjPKAA3AIAADUEAAAxQAAKWAACVBH+jPo5Ro0IUJMGdBQAJyYdu+BSdAUTsSysj6jM4QeoL6peXojTxEFITpRGdaqrQkkVrg9E5hCzwPqMQ9sbKMijEL+DhEXM6AV31t2GCYtLqysgiPdtE5cgu4anyNnvjKIJ3AJfABMxIqhMEQL9Jm9QG4BPC2LMOBcwr9bu7UtPDJ/aMtkTaIBk5VTAIqhFApKPOrmgggAGQgJ8Mh5wKczHe4WtOr95ErsBE5YHwlIQS7wE05S+LA4YWq0nT1sF9EfABU5RbVE5oEu2OmVsVunU2KCFp3ABlRuiQGbwDPaFt4e0ZXfIE8HA+4UNwjI+JGxVqwPTRr0IGXGsNWCU5QjCiU5XgEc6fGHTJ7fOk5YqCsM5dU5XYprU5f+RGR+LHTEKaEz9KXMjbiBUXhpRadhU/ANfuF2cq8YUvcpJwTSpN05ZjWHngYLVj51l5kJiKFLBl64awrnG5Gf6kM5YqhGgQNY2OmVjuohM5UB4Y6INpwI5IF5AHM5YsrAs5XjBNqoRkDPCiGs5cN0JBwSfdDGQPtpPTRli5VwhWKwk05XngQMYrOQfXymyoH3INB9G91J05XU0hS5VesU42GyYUuVOhJBZMB8RjjIV6MBHjHS5XWeNS5di5e1kpy5UgIX4MgWskUicc5Y0JYqhNthKkJPU5ZNgkk5a45AjxG9JZEXN13JD/PiwmU5TrgGC5d/xQvBKpIE/QC/QDlJpYao0Jrt8u15psKRK5SO9J85ASEBmYLcmKhtPtQMMPm5FuE3tGbJAhlSZuYIcaCdo0oMTMqlAPlkJ9AYxOloRL1GF8EF4FxPkcFvkjmIxE6BFvBWBfN6wL65cGxTFMtZVGTQB9ofrxXOAPrEe2JbZqWVAAl8JgZYsRHGYmQZRFJGzxdQZUixWidEG5ScxYe2CqkgQZS7Jbr1BLJRLkR3xXCheHxaHkdU7q42WHQJcqZtIElJRbwD7BldhsCYN2QIgmMv4klkAT0IQAYzSD4bPJRjB0nN0E25e8Ab57meQBwwKFvoiBN90vg5Cg0PuRONmYhvt6IV25ZIwfEHu0Zf3hZlhd9YCcAPO5f5yTfBR+AH3JkIRWgFG3jiyJdUmahphiKUDQCGImrZETBem0F68OZNs9hXfINC4FLAPEQA84J1QLUQP3kVWZcFuLwZV7xYIZeHxXRJd/xSTSUBIOufDZ4NLcOEyDESAS8PO5YGAIu5VQycu5RcZfA8mu5SrrjTRcgtJhNnLRf8AG6lBvxXvQHIAfqOILGCwAVCxUWZem5bp9qfGJgEemEC6kcFuMmkSp6eemcc9GDGt9khSji6JZpRcS8PafuGJe3nK6JSOgEIjkCvAFhZePu5dnCsDZ8hguj6FJ5qhiFpNgL0DlIQSKTGLvLO5QQhC3LELJau5ZxZHWxXnyeu5aB5Xu5faFBdzvChdZBepeEPIJ6gPjwWRHDfkcJ5V4bKJ5bZRdXogthCJdnXouR8J2PK25TfYZmwBvxRSDLB5SLKdDOE4iDEwMkSRnwHkJVIJWxJbKwIIxfX0FNJeW5eZ5cLkK+5b9Raf3Eu/BawS5jhtBVx5f25euRYTREPzHO5dx5Su5UB5WF9Px5WviIbZBnhYe5UZALyQCe5cMrCzHDtdLJ5SCID/xU+5bTzKp2L05Z7Glx0p+5YVQF55Qu5T55SQEH55ctZVBqYJ5UF5SgkCF5dB5b2brshWTxaGoZM5FHJGPYGR5ZpRVvwq7MvschSjECwvlhPXbDVKmV5TqEtR5VV5ebJHO/LV5ZBVL4JdpJasQPF5W/8rZ3rF5tR5SLdkSsEO5cLAU25YhvnMCBO5X1Avk+B55c4/lx5Qu5f55TmkOl5X2wmmpDl5bEhY7lBZypB5fxgBvxTdtrWfOopeocJqZZmZcROAwAYq0GYECQEL5kfXWIq0CNgLXKu3nH0QLN5T+5SZYAt5XRxSMOLx5S1XIF5Wt5bvlBt5Ye5aF5bDZhmZVAZdZiAd5X95Yk8CwAYItut4X2wud5QTEJdVnpRNd5TN5Z54Pd5X+5c/uIt5YB5SQECt5SB5RnhcgtJ95VB5Se5bhoJJvr95Qs0GXJVYBAD5Xj5doZQW5arxYIZVXxTtyGiwabxPsybRwBGlLgkWD5ZoXgTEJd5RqjuQ8v15bmMJ4DpxwQPihwato8LAThcoQ1oU15TmlC15SAfMKqkBNlm4KqUEMQOWsSNvnvgfUoWH7Eq4ToUIG4Xo4a1ODOABNFCAfKBbA2BOkjkSQSWqubidCRPh8HZgPEEbO8OzPvdPuGgCHaVEwNogfn0JV8lY7nD+E88KarCcKr0qLVrIy6H5ENNQLmSI15Z0pOV5dR5SHwWU9qAWuLYEWqJF0M75aRxK75S55SHGDy5RfXhsjN75YgmLjXPz5Y6gG75TS5TWQF75bvrEF0OH5S75c15QH5e75dE5SQkviwj26kQJLd5bD5dx5f55UWQEj5X2wnypKt5SxhRj5QOGLzPhgENB5Tj5fQZYD5QT5YkwdX5b9QJiwQrgJQMGiwWQdPdSKHkes9KD5bsMpXTC1RU3QGx5Xl4q25UmpBgEPbTlgRNogRSDLCYnDRN+5Tn5Vl5W/AHn5c95UB5YX5aj5QZvhh5UIZeB8qIZTv2daICARUwkXeOJ2PGY3OX5adYd25JXmGiwRAZiwAUq8BzknZQFvwr35ahtP35Tp5cNxCb5fvUFRpNZ2p8Yln5XN5b+5bn5U95fVAKu5fP5W95cX5ak2oe5R1RG2iDp5dB5W2ZLj5Z+1P95bX5UT5VqwJiwUAFRXxWT5ZaSWKYBMmTT5ad5fT5atERD5dEiaK2kSiE64ReiNR5fsjsYfjJxGHpJLmL8hWuytIMaihBbor9JDKYo4AEnIgH5ULvtR5Z8jhOFpeTJVhb75UZ4P75cQJLyRUL5RjQSL5a9ALBkYMABL5UF6FL5eoTDdTLL5XzYAMYef5QXEjhJjf5S1AkokBx5V+5c/5Q95VP5QvCkt5b7IEX5ccRTGABB5b/5Vf5XN0IAFSF5Wiwd07sD5TnBv+zu4RQH5VaZFgFXyTDW5K7lDJhI5WAQFYMdMDRMQFc9nH8oJV/DiFhX6ZxwBzZZQYLbuJnkm3ZSRpYtqTLZYAKqjjE4nIB/N/pTTyVGzjyZTTyblQhiQcRbL8KTkia3BQktvbgUTNBM4u9wgavJtzmGkqQjLOqqhicG5cg4upeGk9KZ9k6BJgEWBfN2KLSIKOKfIDFG5GnUM5jKLkVIDLBRT3dHeztFGnKQnS5U5cu5Rb6OJnbCfrBmpAs1E4FTMYHFBeEkhOpGIAMiYWgxPpxPwAC2pGgxPOpEQAB0FXJXMkOEHzDZxGtwJR5DZxCEiItqSlBZvpZ8uUs1HUefU2UrsW2iKJwXzTqrUSLTnLZTH0SEGWk0JEgE7RY7UWEDANSFmgGrIlauDroIz9r/MWpIlCQMi1J2dA6uIiQBm0AcFXquIiQMcFUosdAtJE4mcFWmABcFZauLcFUWQFfURlMO8FfcFWDcViAHFji8FR6QZcFXuYAWoocFYiQGKdIbOPL7sM0JJ5D9UDYAXHAYmdFJXE5EF3tgw5XXOim2GOVGd6kpJjUNqCylGIEcYLU0iWXqfqETdFWGhWek1hJ3AJD4EzRF9ooe4KCFb0EB2xfrvjBsJQxnRSf3wgpRTjBVDvE6HChrkc4NGwJT5BvRDkxFa+N0oO25GyFXQgb50uDgR8QQASjisaapFLJF/GGtLm9LHsFVWGqZ3h6gPtatKFXUHph0IFoHysWP7ifAMXAGUcGWwOf3i81owsVlNKqFSU2j6aHX0KMTiCXKe6oDRD+BgTEJ6YjhrDHUrTJi9gm7cr1No6McHCXP5NpzPuHuLMicATKIJrBOxhit1m0Dq9dHx4NqFb5gFbYulDPgJhooMiFaedHXCGiFTUTKkFKz7tQ6tiFdVwLiFY2GPiFSSroSFTHcoT4ETdI92Fu1MVsHAkO18KqFT3pjiIW8FdauIuWMx5Q3YebvEucPkNBBJXxKkeoGTkcpxMVsF9Hkm6IT4PgAHLAI6gAn1LWFZkFJWFVq7mbno9sOkQLudECFWP4iqJHMPNYoHLADbKkaptYoGqFSfAPt2mwFoOFRXDA0gAtIf8QBIgAoQGFrDDBEFmkTdOb2NYoKu0OqFRjQMdHhOFcrzJDjr1oN/tv5oAAkO1vEB0Cr3PQiSaFfN0CXWEz9P9JJaFQKMcg5RnpEHCUnMQYDNVavOtEGFQ0JCGFWwiGd6hY3piFepalGFYS5UsLs34HGFegQIQzDIsGDdgMjMVsKLHr1DLc6igFKC1LY0HEJpHBpBbJtIFcME2FdhsOmFdqCVjZuuFQeoJKoJSLvvaO12o9AMk3tSWL4JKnOp+5VzZVnieh+qN1P18MJGLAAAACCGoAi5RaVHBCdDUBRFUi5SkyC8+JqnthsPXEIhFZMeshFVOFQ2APQZJAOhuDHY8CgrjZ4OkQNmACt1h/9CD4ESADjgMDAGSFdLom2yGJFWDohSFe8FYgSgNxu3dJqQO2JJ+3PKUacmiRWC88cOAGBtCZ/DNHpWFUFGPZnpwzKxFZuFRNBhwhTXmMGQDSFffAFyFa3RMGKPKFX4QI6qIxwD1rouFZmFSuFdkgIAVqjBMqevpFahFRVgK4tCZ/Jz8pu5WSJTuFWVttsMEFmsaFby1CH2tOMMeFfXuMkXhRkelwNr3EMLteFbQ0aCFNqzk85A+FbrCoGIM+FWGFTYZpGFWAXtGFei3LGFZMOgSFTrsLCBHysXgrB2FTmFTroBBjgRQL75mzcU7QNJFdauOSstR5QzONIuMwnneIc6LPRbkBFTpFZAhDkehcMHysR8UvgAEOFXysLtKLdJREIHd5fiTNKFdvmB4fMx/HLAMVFV8FdauJCVKu0O1WNVFTroGKdJCVFgoKVDJCVLgoOwLCfAK34H1hY1FZyhvKFQEZMckEFmvgAF34DbKpCVNErDIRNYoBJRNYoN1FSswYdFcpxDO5OpRCfADuTtYoBNhNYoEdUFq9B4XiNFWQHLWFWVFaUzLWFZCVM5FRWqDS9K1FT9nrWwBVbD1FaVoMm6iCXEBFbWHqVoHcqPiQPuFYKpsLkOrYooyL9QCeFXyaueFdFFT0kswMTeFeYzOEfp21ElFaiFalFTENltYnZpJlFZ+FSnRVhUEmgD+FSfgvlFYmFT4cTvyE7sPKFaKbrfHl+IvAnFXnuHsZNFZSFWVFQXynSqvroOKWM7wRHsFWFXR0AAkHysUEPj1FZzvGWwC85T6FU13D1FSU2kqnpHCXGjsBWEVIAxFY9sAqFdr4MCIfbDjlJtYeLzFZd2v5FYaFXEUkjFaaFSXWN6wDSZOjFcGNjFFVjFXFFaqUC1ZA1uqsQHGScGYMgsZdGHgsWIkp51DwfI5gUWCXN1ANcN4zId+D0YD0yDkFHaUSw4DmXEWRT/xeb6AHFR/SX7FXRwgHFZO2K6nIDmf7FRHJOExD15cRIEQgBmgmNEMB6WQ6WjgRrADqdGkwP/wHNEUdcQdcZgsefGCoAC56GZ1AZ1GJ5ZJ4XuOH3oLvkQHFYMJRDEASKYbUJ1PC+UQb8kfmA0YvxPD/6hPsvh1PRCb9/OK9M6QbE5qDUN9LBNxI2Bi2CtcUgjGBqGrx1CmdGOjCMtgWkFgUAp0FfZEDpV+NHR/NWAoYNiZZKSOcFBRrvlb9lURf9NGGfqpsf0jM29LQkNdiS16NXAAgKH23NVwMlTOp1IJnHIYHvFfoaiYEHvFaO0CfFQp1HyQKC9LZ1LgANTGofFRVqnkuHvFXe2LfFbm0sGInvFcKdA9YLFYIYhLpxHlUSiAaBZc29K8qVQbpu2Egic9yTqoYR5adhV3+Gm6pUkCAlWAZUcBuAlVbAFrYRVqqglZlrBgFbM4QH5T1AKs+DixeOmoHkc29HqwLAQCglSuvB4XkfFaglflrFglSVlDglSs4UmQp1cBPGeP+WJlq0oZVAOBRWgxE3IOdAIngLPpaQoU2pJqBBsKk2pO6JXWpE2pCYAEWwHJXDtwNM/CYAHOpE2pFQwMf+fwQiYEFZYC0FfwQl4UKOpB2yR8CjUwglBcwXgs1NJlkeCAsGM0tOvFXT1NH4Jm8LLZZxwK7dMc8bURVH0Z2gIE9EVBaeDCHiVsFWCRXrSaCRZx4NfuNVBVMFTk7g4oLVFN4iMOyazGINBRNhO1BebibiUF1BT77jLZfMfOU9HR5ANBWs1AthMNBdfaAthDrRdxufrRWVBVSkEbRbsPulFKbRaElSVBRbRa5FIrsYC8LrRS7mHbRcnmB0tHJ6BRFNfuC7RZbRZ5GNxnvk9D/BJsjmbRWk0Kknk1BcYXGb6BrRbsRNNBVPuZYgK9DmA5WPgbqTAHRYP9hiRSI5VA5fA5fLBXiRYrBXmRWHRaLgViRZHRQ3RaSRVg5eSRTg5QnRXg5X0EgPVuTFUWGGnRZe1mQ5cyRde1g1hZ4pFQ5aIgPnRe1oIXRUHAMXRe7BaXRQKRZA5YmYOg5X7Bew5fjECw5WHBTw5SZCHw5Uy7Guul6ukCosI5aMlRHRacld3ReI5Sx6n3Rer6Hs0VoSvuZYB5TV5FPRW4QBwFXtJUdJc4sjvRRYwFoZW/QvuvOn4q3gJyuH6FYtxVvSuFZTKIlSXssRTOpE5cnaVDxiM59CAOEQJFCVnCJeEKMLOEsZRGwptJXlQIMhTqhdJJVH2H4hSVskMJLJJWiJeEJislOeZfoZYNWEqvBhobQuODZRTJjFbKfGKt1KG0ur2ZvOENIorVoQYGfkdaBUxZVdGFjGgK7MKlSD8JNhHPAEiRKe1LXyK99BxRHRopqDot9sLjMrJBUuicaBEcUH5bIsis4s4Mf3hVooAuxY2QDuREjifUJDAxeyxWDCPixdkNtkNpQIBRQusSDTReClQcGIylYYZS5QGTJYZxdIRfPkK1wOhGDZsOKlbc0kzAolclBFTPCY7MKDSM5Fp6lU5QN6lTfGr6lXu8qd5cdVo7MM1Ikf6IhgMJQrylUFPuwheyxf+gGalbCldDJVQYAylc3WVhWOalamlWXXBmlW1UINWKHSPwRdYWbylXLgNLVjL7lhRCqDnzdDvaurJKzIb8yl75ZeJbm/DyJQlQP40BcOvnihiJfl6Tf3NE5fRJIilcVZcaMa4KqcQhzaBMpd2lfNYEilawWu9qB7ADqlRnJfwhfLxIIhTsRHNUpXJdRsNmlWmlccZSD8KsZU0iEYbOWZEZ/N6IbhhbCYvOUA3APXgOuCEMlffoq7pITkiulXZAJfgoVpJYMu2ldjsKpxYulTmlec8AjQJEBk+4QZvneZZojk3PPl7OgRSxhfEhVGoOpZQ6lVwRZZJZawDiJc4RSClQ/RUNPINuMGsGKdPSBVWuFcxTKls8JfIRWCJdgjELhflonUrFhIqCJSeGNx9B+Rf1YjfwM8hXeJQKJaPJSZFU+JVbxS+JYwJUXKsFifdBXb6CmhY7lGmhY7WZQsL9BQs5ZQxa0ZUMJF5Rd2hQxla4pUxldPhUe4IUUokRRbabPBcAMMBlYopaClSZ9ELxR/Vi+5PULtvgDDZa6migKjAoQOkPa6FPUu+lTPRSWJXfRfPRaaWiq4KRZBiEYhKLpJBGCE+EkomndnsKCReiJo3E0fET0oW0qg0AC5VplTOlcDllR3svUiZlXqkQRwGz0JmivbVph1o7qmCUOOleVjgSRDXaQYEFK4BmgstTu69EQhmPsEiRKhiYTUOEZSjsmn8BN1P1JR/BOeAj0Iuu5CmwhhCXK2pfRSZovepMXkme1PmFSbhiZotBbM/hu4coEpYXsfZ5SsuIkDlw6Ygfp5lSwxYHZRVfL5lZc1P5lagiEFldtEoXGLXyMvzsIioK9Ou5AYDKfDmAMoPmmnav9ZDy/BCQYTwCvBGd/ssfKKxc0iPpQq38eMiUVJOH2BLXFlAB31t/IVJFDn9Kp7NEFQyFbtOouAtYXGfIaW3jCADXBsJbOYXMAuqAPDz7DX9s3Cb8TAKFc3CSPIGWgksQZh3m30LNAkE1BomNFxgbQb/lCqkug9LOPhUXswxQ2EMpvJaEG7jufRQAClgUkDPCFmj4/EyRNThPfgD+oZoZYB5bklOl5cfpcPciylYwuJCleGYjdlYo4AnjO+laR5CfpGo4WLoRFJFdVrPBf1IPAAPdBT1VBWLqYlSNEoAFMDsReVh3xLalZoAJClTrYLWkP6hIkDn9lQDTqQ6P7sHeAJ+3BjLEj5YHgfVRvwZAyoNFECiTkPnK+dI14LwkO5gAbkc4oX9lWGlV9lUDlf8lSqXs8rBVqrP5XhkaqRgnhC1kHqlAzlW1hXPAgbmEiPFpLtjlVoZdu9Ol5ZzAHzle/5TKQqLHIDlRClf8lcRkRTlfzlfLlX9lRjAhNvvsXkClSfpEVSrtEPxVKDlcHpHi/EgShcYYmNOu5BWQAqEvoMX4wEu/K14Y9AF7Jsi8EA6Bt6CblZB3DgiOvVlmYB7lV5kODKCg0N7lfSgCKZHO7Cb0Bmgu7lWBfJnTLSQgPIEa9BdAHO7HT8CHlQ3Yf7la5NiRpBHlV5kMtvvxLm7lQ3YbeBdihUsRQRFZ6pZpRUsgI85WRfjZjk1llx5dCgJnlfWhdnlQ6JLnladhW+8AXld6KLXlfgcC28hqlW+9L9AH+jLsXroxNNhYacR/ZF+Qv1lapbrH2BZJCNlRA8noSHWkenlSTZKW4tLlf8lWeEIClU+aG7BSrlZBAJClc1cNClW0Hmu5EgShAYe9PDLaBx9MafBAZFccQOwuPlbP5d90lPlRwFYBQrvlYrleMCKoJtV5NKpCkHhJooGGmflSSEXnITrAIocfeoFx9LLdNJzq6sJOUGY3M7AJIDP9la6fssDserITEO1IcFijgXJO5NH5Z8YlooKwlddJUBMB5kOvVs3IZAVV5kGY3JN9HHldBGGXlZgFRXlbJMLXlYMkVXlQQhIf3kgVdglQJgKdhfz4RgVa2IQQVXk0OdAAwwP1QgOakCgMhJedAG0QmE5VD6GEFgnFcWuC8wBUQlB4ZQhDmtCblS8wAyQP1Qg91sL5PQVZFoIjCTilVgJWu3AK7GGpXcFcSlYsrHehbqhTJJTOJV2gtelUuAPpiBZJJ9ha4hgPJdvxZSZW+0JBlZeebIJZy7MIVTtyO2ImlOBmwKqbu/hXIReniq7TO8JSLhZbhU5hdJTNfjF9FByhdCANgjAKhZXtDXtJfwGsJSdwMqxcexXGhWKJV5CVXJXhhddgGRlUJhWh4MGoKmhcYRRJRcThaleXxhfJhZ1XIkRQs5aXFeXlZVKK0ZZoVQjKHcFbWhU5RTQleOuJ2pXBpdGpWg8FgyJQsGkYELxbkwMtxXilcTZXGpTiyCIVWHJWIVVJJQgdFH2DSlQvpcwVTIVXRCEYbAoVQZxVeJU2lRUhcsMGoVd3CbIJbGpZBANroCIVToVUFOHoVVrhR/hf5BYhlduhaYVcwIuYVbkHC5heYodYVRhlXYVentA4VadnD+RThlTZJXhlfUxcRlUpCA5JY3tp8Yj4VUdRf4VVRlYEVfvJRjrCEVX4VRxlfERX6khEVSWhVEVcgVTEVa4pR0VSkvvGpQkVcxoI5RUBCZcVV+hHmpcmpUDgIcLBkVW3SJQsPgAH37oDRJNjHkVUJJbblBmpXlniUVZJJV9pUqABUVVIVWn4jUVZWjPIVfixYoVc6lcoVeBlUAUI7JeoVeRxXSwMCVWOuHBle5fNgjI2pQiQSYVRbhaMVV8JXzhZMVYZhbYVU1UfYVdrtI4VSeRfxHEMVcLhYSVVbhTMJQ2EPzhb/heZheSVUwLLMVVSVQBRc4VRQJaqxSsVU5JUEUMKJff4GLvFsVePhTsVbvlGmhUEVagyN1eWxhWEVacVRkUpEVc0ZVcVSrJUCVSFfgG7okVU8VaJeLiVTmpS8VUmpVqpYWpcWpTIRLqVZGpSKpT2pekVffxXCcBwAMggHzeqRjACVYHJTcVbWpaGIBJJaSlcMhZIVRHJWE5TUVb31olDPCVQ0VY2lRTJSoVRBlaiVW0VVcxQ6VYa4k6Vf0VYYVZlgtqVU8HHSVZMJZ8JSXZCSVVYVWSVf/hZSVUj2MCJcjzPiVdsJR8JWYVcSVRMVUmVTGhuyVamVZfwOmVYsVcPJcsVVQJfQJSmBEKVV4VQngPPBWKVSxhZKVfsVTKVS3SHKVQhymcVVjBRcVTgVcphNcVTWpWGVVSIQ8VXWhReiNGVUaVakVfmpdqpb2paPhSkVRqpXBpT2pR8VRaVZQsAz2G0hZ9EGedlwtOA5XclVnxDMjtA5WdtF0lZfHgg5YMlUg5U66gBmvHBW8lWI5Sz0mSRVXbjMlUZ4InRfMlUXMBRjOwFMslSQ5QH3tn7GsldbBT5hZQ5fytMlYQRQDslc7BfQ5SilW7BWW3Eclcw5SclQsKGclWw5eSFlBcnHBWMlSeVQ3RTclV9EJyRQ8lb9anqos8lewAMeVSBVe8lezkhI5cTpoEFDD5rilYCVfqpQhUaCVS6Va7hSiATARZNxVvNstutjlWylbY0KcAfepM1lfLNj5leZla2QK4Kui8MuJZjGNm/O5lceYBEJEuEIwjAI9JTgMYFj1lRrRp9hYClRYAEpaI6AHxQOzSFrxQilVjSPald3GOM4MslG+/CktI8IPiIPIpXzdHOfIhgExgmvlOEZeufMflWVpd8hD2laulfA8rApSBlaQxQBlc2ldwpCiVXgZWiVevBY6UAvBAQgNiVYMVQSVVMJQmVTY8HSVViwtOdoJsWsFUOkIJsSKIXdTDPgLVeMc2muVTuVSMQOTiSO9EFVXQ2HuVYBcgeVVxxig5RuVaI5RMlWeVVMlReVTygHrBVJ4chIEvIHeVWPZA+VSvRAcQg05eBwA8pBslSUpCYoB+VXG5P5Vd+VQhVdTdnqojIRPslf+VfZSjHUjKCsBVffoKBVdXRQHehBVVclUnBTclaVVS3ReVVdcoshVag5Vw5RMlRhVZ8lZI5QKpDhVQIVeEKA6pfJRE6pZOJW0JSSleIVeSleWwpUVVHgcY9JRVTJVZRYIx1FKlbHABNVY4zlvSvGlQdFkeNuiADUVcmlZ4VT6lFoRaZVaeOK8iDzdBJVb3GDVYqeJVvxTeJdXwKoVUGVdBlevBZSxJ5NNwJETGHZVQYVaMJYK2pmVcMVQyVWMVQ2RRhlULhUegKWVa4VXZJWPJdWVVqxe4VSKVfPBRRlQ2VcYRTRlVDLHZ/OcVUqVd2VSrJa9VY6pSQRRqVf4RcaVXOpRSpZCpcxlRJhV9JdLJZtVVSxD/nh9VdxxTPhVcRRkUjxlUBlbPRffRbxBkCMoDRJuscPgVtfMT/C52gpyk+mlCxUXdOhjui8O0QA9JTpVQd1DYgFcAFGodwxUZStvQKLHjS9P0HuLVfIxdVUN2us68YzcGDwVNAkpCiW5JuERf+EQJP1IAplTiJcplb6Dm/ROpIfw4PeBbGQKTGGRABXyERbosgArlWVpXhkfvckQJGp6LMeifpB/BOLVo5ADbVfrla+8Pt6PHRUZ4HYgPXlZqVckVcXlcN8E3lTIMmGhdi7kKeJYaAgMCOMDR/GQ0GhsJdEZ+kI9ICLXJxAM8QGLsfYgtqIjIRPOUE5OAQhInVVcJDUVaalcdVcJVaJVbzTLzTMuldYWZVZcIRUVZQZVeJsPSFUPmgZOgOlffkgr7O25C3lXYzIruFlcMSxei8EdJYWArXwO5NF0tDkRYaTlvpXlEoJsVvzpTgnoTO0lV8PD8CuLBQ1VbLBd0lf7RaPVb5QIHRelVPiRX0JISRZPVSHBaeVdLUueVZ0bMlVbg5alVRm6kJhBlVanRfSRdlVb44s+VXlVRQ5a+VVQ5dYUGVVXslZV5SXRXVVW1VcKRRcleAzAvVaoAKBVbKRafVV1Vdjar1VbFVeMlb7BR8lZqRf40DHOHaVXSIfW+RJJTSxWRVb1gThJnFlRvBVTALwobzUJcab6NtCuKPUAB4itVZmlYD0GeEP+oaylatVdW6CVLJylTsgLuqO8ZUGldMWGl0HQYIGlS7CPT0KagBtVTKlVh1Chtm6gGXIDIRKcQoEKjYIMnVW5UDKxOEMNdGAcjuyxdZCrgkZYXMxVeeEpUsF4iBgcFFVWKwq7pNbGIHitCgKHUPixbhTLhTGmlbIZQgyfIZZ+AHmlVOABSZU6lY0Vf6VfbDITgPz7GHiCiZQZVVa8GQ1elGmo1bdZQZVYe8Lm1looPQxeQMPqlcyRAaOMVoH1WJ2RWOHD0UOdPNE4N2RXcqiHUPl4rdyHsuCV4k41SQqJyAHsANbtE35gx5VfRbvRYD0Fgci5aCMDs4MBd9JuZX+latgGNmB41ZJhMBQDK8GHlNgTL2vGohpUZSwIDVgnZgCUaN/jFUkPqSI4cCEwpvOCZ8Ps7qjPiGfC60K4KoY1aQJBfJYgFTvpO8kRJ5cpBdIMoopbngNw1UF4M8zi7sOU1VdVmwuEQJPVPMw/gQhKU1bgkeSGoGhZEYLWkLL4XXstE1X9uAYRp41US8G7KNW7rZ6JJQKd5fkjptjgHADExbopEU1edsaD5cAMCIFSJUUAMGlPEKaFwFTJEFwFSGEfOlemEbjriS6Hm8m01UqHMPQe01Sqlde6oFgF3gGTQKQ1chJBcEIUoGHgKTIpiYMH7IMOOVWhlRtwFEIDjyRY0hUwEWrQAM7jJEEXgAM7vW+PQ1XM1d5rLp9oFlaPUBTnowxb3eJawBFBW38KbJX+dPPoLdQBE1cUdLXlK+le7UBN3CXVeelUePDK8HXVa1YGrzNC1TqEHC1ZsNpE1Yi1SzZebJWL7COVRi/iNhdc6LYRcnioS1bYZWbJb8uO+lXQRZqEvdGFdVZEhTS1TgRZwRWwRWXQEQRY7lN+lRu5TYZTbJXYZR2MA4ZS8II6lZOVf1IAy1RAGty1SQRaKxRwhXN0J9hWI1cy1Ru5ZI1aQydI1a+lWJ0Ui1bi1QOSPC1XMAdS1fy1bS1UkMMS8Cy1bq1bSiIuZZQ9H+lXUZa41eoZVYBCE1Za1e8hODUB8ZWa1WNZT8ZalBHPKZYdmela6OvBybiLOq1UuEL/oFq1Q+Eki1fSYPK1REhaDUJapaXVSyJVVVfXJU8+BSCvImsOledYEilVcZedYFRVXlQDOLEpVXHJUF4GpVfBZBlRrwcDG1Whiog1RKlT1COo1Wi1fkJaZVe41fi1Qi1YXFP61ZEvEzhdrhcwVSCXJsJXSVYwAisvvhRXYGOV5Ag1fmlZUkKmslwEGvhKgsVyfL+lZujg4tHW1R+RQ21XhRWhlWGAPW1SahN3SHmHCeJD0UKDVaZxfqQloRc3hWKJboRYzJTIRFsVXDVUYRXxhYjVZ2sK4RaxlUdRd7gi2Uaaxd5RcTVYPhSiha28LERf9BX9paPsnsKC41V8ADfRfPCikRYfRWkRb4gBYJULxe16NjNPwCYaTrw7lSkJNpMPQvn4qx6BLhStBWAMJlRSYfBXdG81Vr6NfuKEgPVkeg9MioaRlbvJRsxVKVSBuGoac3WK9xaKVRfxVLRTTBfzmbGEIsoHfxcdIFxQAxxRBAEh1VgyJ2VT/zO/MoL7EAoCBADV+KaPEQgF99G8RdLRRR1f3haKVe/xc4QbLZPB1cv7MLmT2eCIAM6wMkAJDwOZ6COVYngEQhfs8g0bIaojOAj0BB8KARpL2JQM3JmRUjANmRcWJfBuH70MWRSoUEmFUgTOhRc2LITkJxRQJJIqMJBAKs5B1cPJ1SckpPuKl4KZRY/otO0O9NLHiihBaTTHBNqC4PNlBsYMKZBUJS8JXOXGQYiUME3yN4VXWVU02EVRZGRYTYWTmYQAOK2SxKV22NrmUXciZ1chQYZXkc4BZ1RaVd1wnzBSy8O3VTICDu8R+1QDYE6MA+dPXyhiKRcSEZyddFLCYDu1ePhQSvMRICPhUe1b4VSgzrhZQX2BGJU51UmhWu1cgtGMSfmha5RJ91Kk5HkHB/pUmrNUgIGnIihBZnDV1ViVoVCAs5X7vF2hUTVT1VPdRTXDOJ1WZwh55IvhbopGvhf8FL11fnhcjzEZSkXhWvhS8wA8RdAhT/NlfhWzuRf2M0iPTlNsVq6cLPBaKVW/YB3vgwAYCABsmEUMCwAet1bpuOYRZxhXGSf++djlE3BVUybJxIYwBsmOZoDt1VwJbWVQcRWsBuHkb/kTdmpSxQMDqxAAbEHZoPYdFgSDxDKkQEXACrWJ8yUzSApxF91aQ6Y3WT91bW2C7EP91SD1S7EOfsG6uf91V91eD1b91WD1bD1aYgAXgGIAJHidHvmVGLeOcy2MZmHW5OfsJQAMYgPOuXdvpY5NHvvAANl9tUQGEdACSdSZNHvlLAPJxET1QFgHhEVLAKUwKkQMy2Hj1adeWRuUT1Z5cGT1ej1WEQGFwPJxOe5UOottWILECT1dz1YFGLW2FQAMy2Cz1dj1ej1WQAJ0ACo6HW5OAABdtByzGFwNUdKYgOfsHdvkQICJomVGGT1VT1R91er1dAAEz1dhuaz1dl9mQAE2wJQAPEQHL1bPSePOWT1dz1Ss2QCSYYwJ2gNAAGL1Qb1czRIFGHZIP+onj1YduYr1U71XZIJ8yUzRKdecr1f+our1W4BLT1WVog3YGT1dr1SL1aQ6Xr1fAAJz1bxuWEQBb1Z8yeb1Z2gEXANAACL1SrWHr1Tr1Yz1Y71Q4dO71U2wCr1d71aT1V71bT1TT1XhEcy2Ez1UZ1Mj1WL1Zj1czROn1SsXCr1eUQGe5XW5HQAAL1QpxAj1Z7TqITh91c4QGFwLfCHhEU2wJAeWEdCXvp31dT1RxwIL1efsF31e31akQIP1X31Z2gApxJ91f31b31SP1cP1Zd2iXvqP1S31dhaPGKZAedP1av1bsPhP1SfSdhaPNEAoGuOuHV1Ut1c51bwOKt1YQAdt1exuJiwSf1YChW51bbFcy2BIAKQKEd1UwxYMyWd1Rt1RaVSu1XWVTd1QHEXd1Zr2g91d+EhUAEq4HZIB8ped1XPuT0ZHhEYM4CPya2iL6uSP1WbEHhETRwC6aEzRMhQGQAEn1XW5Co6NL1dQAASkKT1RdtNtWACSV6ZPn1UzSGp3iJooM4LBgAVSWbELBgLz1fXYNj1VxwACSQzSFLAM7iHQAPgNQb5CJoj6DFQNUzRB7NgQNfJxImZJ91WXEHQAGVoJHKEzRIkCWEdDwNWbEMPKC3ScPYODqNl9nJsaQ6QCST7EFTRfkQMgNTRwGQ2c7vvANRCSaZZNuuVxwLPPubEBAoZ8ya0LuoNVWKQayU0ZJBuYL1XL1dOuQ5cJ91c91VkQIT1VkQJE7hoNVHECPyYYNc7EOtmGYNbW2M91Y4NVHENv1bmMtYhPM1As1EEuIJsexwLbUa3uGs1JlDEZyoJse1DGk0F+sj8RRZBN4BPeFQPRAQhOyoMlFaGFRC9CLPuFvrvVmtPoBLtFvpG8B+FR75SzvDlFYsmj1rgmFZyasIivHbN95IYhQnTMlFF1iPMKU+gF3jkZSongJawJMmEe8sCZVP5bbAPIxIsoOc8MzfPEZfA+KdABMIO88NNgCW7qdZuJENKFW1FVLBK/nKl1X4UDNlCdlhTqeVgkvQehFaLBg6ULwONksjcFdauA84NMNVn7FZFRSHlXPNhsBgEAgRfsAA3ANw1ZPCgUNQXKbyBLphDhZTEZZzSK4tPsNROgNEZYjNilkEtZdE6TfBc/1LphCUNX8SVn0KhZUEZccNfXQIEZem0CEZSYhfBZc8NRYhR8NaPUAuoLwOH4AcSIMAkJIcMdFYUgAsNU97PKFX0NWs/NhsNakU2OGuLHO5VZ5I4QVTLEQoJj+BqAA0Mf7LMwns3YKKxfYfLe1CVshTqSbhD5LMbwpgEOeRL0ELYsuJiBDCF8NSyALBZTCpSSgK1MW/YMFuIf1URZaPeHtIUapq5FbmwBuFahFTbKnqFUmYkCFfMNW1+KmFdCNdZFcxFYBFdCNWsNfKhDOMN4KkiNZhQNE4CU2vQ6ixFWyNShFRioCU2iyUpDFdCNekQOsNVDLPCNV8vNhPvXQKBZV3orUNVcNVQyTcNfXQHcNWZWS4Ih3KBcMEwaGMYmpeN7FW+qPoUU2EVF1O0YMd1IXyLiUIGoPV+PyNY9sM7iMsNRnpFDFe3nIjAHhsAQhGGaZRwK2wDZYMdFUIaMecqcEBSNcYhVYhVpVcrFZaAEHMF6NdUgsVsHvmNGwScPAWaK5wCo6MXEBMNZHKARmr0NTydmqYom9OQuUSCg95QD5MlADtGrxlXRxHFZLqqq8gH/uLKENuwA8qHnkdHYNuwBDFb0NbUQDIRHowBqNYRhTb0SnyLiNbphCbhDcIacRcSNfpwEXUAvCF4HO8NdGNaPUDSNQtMXeIUQgNONTSFVG+MyNduwLDBBKAG5FRioD45EujtuwBznjyspSFSlIHBFY9sC/9GNFVg0r+FRAVjU7voVf6NVNKGzFQglDIRF2xN0FQc1U+BFofmmFRyHo/IMGNX8BETdHmAYOFeLFRjQF6ZJ6gNpnMJxE/wC51KDRNYRJntAihK/wPivsbwrF/DQAMSbtKFbfCGNAn/kqqFU+BP+KPocXDZNdgGjVVg2MzALaRGscCppmoAH/4iVFQkVeqBLRwPOFSSrjT5WGNY8kq83IC6DICAoCIECPeNfBFYKNdQKBK5NnlgvFTsuv/lKPRvXQFxAN95ErHnhNeWqGb0PDFRnpMaFaFFddACXWBAVnmATT5U3EJFFTtOnjfArhsqehbFZkjDDpgtTKLBR0lSPVb0laTiePVTA5S8lXA5buVQMlZFVdedvPVYpNWhVUvVVrBYlVavVaGUevVRh0eLgNvVYXnFlVYKxDlVYuNlHIPlVayRcVVVzGF+VS3RQXRb+VTD8AclQBVVfVffVU1VbfVZBVa8lbpNTBVbKRY+KPBVa/VeglsL5NfVeqRaW0gQ4i5dhENbIRKdhdENQTFTN9hiFYo4V5mvugNENTiFdlFai0McMdkNTTFbkNZeDO5xBDgTqNW7KafGofBX2TnUNfm8UwRHmboyNa0NZdADIRH6NbngIrAACUbm1n6NQYvlujlpFdhsPPmIi8MCIZVNUg6O22HSKqgFronEuwfaQGlVEoxm9Wcz6BJ2NAplhgO9pPOVgROgmDgRQKL0mv0Ru5WONWEZWYhathsVsCQIMHiLBTAJlegRZDuFW5NqNWiAKBZaTMPqNQcGTfBaR4upoPlKC0NRWQVt0DKpleFSuNdOFXloVi+PA+CKJOqBLuFX7hNxNdUgrxNUp6uKEtFFTaFVeFVJNSHCaCFAdTHHiWVoFVBfRfKN8FeFChYAALL2JdkTFKVbCYmRlRTBXvJW51TVNZpRazoHyyX3hJQYPXoHSyShYC5qpTVZxlbxxajtIW7AZ1XiEM94qyCdJPkyyeSYK1QgvGNXwLGJaKVWmhWh1VqhKTNdYMFTVLGRSKYBcyQmRePIDsYLnIPOVZHgLngMSxaKVfDNVfxagyEyyRfxTPBdqRLzBRSwIENTHGUSzHIFHPlmk0BNBaWrCZ9v30m5Sd3BHExPrUJ/dDDNfPBVXTJ3heoVajVTIJe9BcCCnYRGLObPBTt0v10FuYJ/dDCpYqQUDBRfhd+EsCChDBccVc/KBMrB7uZQsDgAALlI7/ArTEiRfJNSiRffVVuVaFVZ7Nf0lbiRZpNQSRSd6iMlShVVBVX5NZ/VQlVbHRdMlWvVbMlRvVUbgGZNUslbvVZZNfvVblVTZNUfVdDXFQ5QrTGfVS5NdVVYw5YBVfVVTpNY1Vd3RWBVVgdq1VZ5NYXNbKRRnNS/VTHBSFNfxgGFNT3RUNVY5in/VaLxQ9YBh1dQoIA1aiJVUVZ0JdBUAUxQRQOpzGmlV2RFyJYiVShhUPJWDVZhhfO1ZWVd9MEfxXXQDKSJsVfPBUGkJfJW+lcqVbIJUc4D7gMTBZZ1RoKPoVJGAJvMFjhEAJTxxasYs4JGR1dgEGHWB0RJbZOTFBmfGdZXtZXB4GYpbhVYHJViUBTqa8Na0JQrhU5QERVdJJZTZZSlYqhIRvqRVXJJZ3NTUIN3NVwtgq1TalY8NZdyAPNYo1S6lcPNbO1eDVQRlePJc+JQKVTN8MZVfxokQJHxlX44ulctrVdw1d2wl3AGrNUmhcwnvqxVr5DPBUZSkfpUvRUxotWGHkHJjgIrTBUNQsNOV4Aw5bPPDh/DYkngiR1YP4RShNbrNeSjHfNIOVQBQuV2CULN7VTCGhXFWQEf6vN4pi/1YV1UPzDkuPPCoUgPIJev5UrluVyCEJUR1XTbBXFUSNSARbphODBR/Na4RX3AAe1d2hX3ALHit95PItUwtbzSMyYI00GvrN95PfNZspfCssT9gX9AJJdfNYNxbk4B4aXvBaIVWCVUMhRIVa/NVDCCzzIwKLf/nvBYtVbLxb/Nb3NZJVbtNXohWp2cAtX6VaAtTO1ZQJdkAVAtfKtOPNSRlaHclsVTmcPtRdotQYhYVNb2JS8JXwapd1ShNVcxTniFvBUuVCYtWNVUHJaMNT8NR5yoRVXNVQIdPXQHnyLtCEqAFktTH1u6VZH8ZMhcdVepzO4tbXJZ4tVGNUtNY7aQ2lTjhX4tS4VeAtaPNZqxQu1QzJaEtbTyrDNQQhBEtaZYFEtclFFSNeEZQYtWW8s4JK9xYkteFxTBZcUta/xQV1QYRYAwFV0PPNVl1SrJYtNXBZaPUPxgXQKItRC30dMOCJRbzNXB1fsVVWya0ORlMLWyafJeAEJQsIVQFt0H7JWktfkVcCChPGA5SeIMFYtc/NXktanOItVdTrDD5mIxFENcGFSlFQlNSpenCsJhmnZrqTFekNYjypkNeNlFlNXOwCRujM+O+LF1NW8NXZFXJHKeNTE/ibJZCtTNaNKFUxFYi8FCNXuNT3bOi4pzmjLlNsqO+NcdFYzFQAKB72iqNSrFTn9KWJYBcJ+le8Okc4DGyPRBDitWMYt9HkfZaqFY6GgiteOFfKNWxFVuFYEqIPNXjhcvWOKxT3NVdVdAWov5WMAFG+LvFPUQK7kJ2ABhCNs9AogAlILRJP3hShNbNZVyFb0CrjNj19hZ1QWPndNRRYgQgJZBd+bLRJNy5o1eostcM0EzsLKtZ/dO6QHRFYvkmaNTHHgRNb+Ff2iL2FR+NdkgPVoIjOEnOBPpPPDnvqMOFULRcOFSvOl9FYdtNIwFLFUgLI2FW6GWwsdWhr2Fd2LDdNexFWytSAtY4xQLlKVoJWqAaFUIBu9NcjFXYgCXWCudJglX4MoahSiof6xlQ/CHCRUpdW1TrJQO1ULhVjQVrZY5VfGVRYVfKhf4tXyVVQJdoRYu1bwrM0xRgtQYRdtMgjBXKtW29okRYrNeeRNF+viRfdNUg6MlleXhpExPoVG0hf3RZmgEmIAngJmgNW9o3NVqhMCCj19hPGGX+GOuDktWUVXd+k8tTOJRUsK8tZpRXFNQm2LENSO4TDQLyGn8tf5LjGFRlNVTFX+FRXocqdj1rmQHEmNe3nK9wDESJ+lZUtTytRu5QitfkJZitZStcypvZgMdFcq1IytcuNcytQZFQMRXdVRytbelepxdytQK9jTReetS0LMatWVGKatTZ4KLFb1FU6mInrBmopSNYaYtYFukoKqFU6tT1FS6tRBNWhJO6tWwsW/ZLqFd6tT9cb6tbqFUytZOFU+tYc0C+tTXhb+te/EHuFQFFQeFe4gnxNbxzhHUibFQmtZ7hX3wMmtU6FrsdGmtQMVRmtQhlR+RdmtdzhcyVZMVcYVVmVSMVVbhYWtdTJfyVafxe8aqu1QIteu1UcVYjVaiANu1chNTrNSihcCCjLRHfNDdRUTVal1brNZ/dNJtUzuH52BbAC8gFBlYtwNnQvxJGDeMWqQ6gHTKaFQO2NS9bK2VTQeokRRN1dWpj/NtbNVTABDBULxSCMgOtVLFGipeEZc6VbktZOtd9UM8tRAzBUxLFNR8tYutTB6suteO2qkNf8teutRTFZlNXlFaCtQBFatAiSrnutdhsIP3iStZ1QLD5ZWpsmeiFgA2NVELsZFfW+nMCFoRYTGhStRhteyNauNTUVVaTPixWdNTBsIj+DhtZs8vRBIp1WatZ9FUBtWWwCBtbateBtZvRT/0IOFdBtWifLYFj1FZdlLuNVx6AhFSitd6FT6tc0xIOFf6tY+tahFY1SBHHqyNZhtahFTUVZ2xRUtR+tfNNTalV4ZasSoOFfaYpmwbIhV4HBltWdVaGtTcBLrFZGtYjFXzeobFRHUiLapaFS53uHCZOrNRtfaFbRtRGVd9Vfw1extX9VU5VQRRYxtULhdTANxtSPJbxtdDVTPNUmhRrNcRhecxYvNUPhRNyITxZQsJhcrbNW6lOfhSYJdAtmmhQbNTExXkHJcxe/OA5tVmoTWjpsXuktZEZacNbl1aflOOteCVd95AUtTmov8pYiIJ/NbSld/NfXAG4tf/NRnhbDtb5pfDtVv9r6VY0tSGtWAtQEte8yi54mPNasVRWte9xQsxd6xUsxesOAQgHoqepkCEYD8OVQuB/SRfGPXopHECZ1AM/GnSXVJfXKbRhSZ1O6xdzJTMtfdBV6dr6YnsfgcNecNXKqiN1avhfHhbLtZvhZ3eLEtbxxNcgBV1b11cXhc/dCWhal1VcxfbhRTqa6KRx6gZIrmMtCJa98iuVacDO7Nd7RfnNWPVeiRRPVZbtVPVb7NUHRSfsHw1ShUmJjqpNf1VWHNcvVQZNRTRlHNVeVXMlQIkrNgHHNfpJBZNSc1TZSkyRYfVeslXZNZrBLZYQ2cJnNW3ReG1W5NbVVZ5XLXNUXNdO9sPOBw5a7tXFVaw5bKRdHtZXNW3RW/VahVQXNWI5YNVd/VR5BhDEDaAGnOKNVfkVRKpYd+KnZlOJaUVUjtZCVaUtY0ltsbAkNoSIA10tm1SG1Wi1c3lXnCHN4BzCvFRdQ1dAJFJkVxpNgVPx7J3bNkJVyMt3BquAqDALYzN1QWkbEpRNRsM1SM1SGmlbNZSywMGpKl1TKtVXtaqpRkLAo1b4taTtciVWdOE9VYtwLIJRvtVY2J9VczhZGVZ75bGVdmVUSVc5VV/hVMVeyVcLZWprBXtUJJTdOJKpY5tROtW6VR0JXMmoRzDcSr3IKq1FhFJioaSZP43NmBoopcwAInZYcFnOJVghZmYEVtdrQMwDMpJTrVTvrMLARqla7pAl5ct4UmlTS5V7XBzlQrGtKdhAgfj4YKGAgxSxVXiJcsQRxVSu8HaNkVoC6FTPjjcEDM1Xqlf55dF+gS8H9RRXhkLCgaNVrAqHkY8FtaRHCFoWFdrkST5SCxSiFmmZGwdaXhrCmlB3DHxYjACfBfe5ZdyCZoqGAHQdfwddj+OTlbrJYd+PrvgYkQ5loXhgUDMllehwJ+3FTsEuxcOqBMmSZoo3gJIdRMILZGJ+3E5GGJ6TGRUdxRTRBgupEgLodTSWFB3IG0Cm5e4QYplQQdSXlXMXuY7v5bEYhEQJLqlXwhfJ+NXFeWlah6HwdRMIFjCJ+3P+6MUJW4DrVCOc+NG5eASc+3PwQMllcz0J+3I/gKmJdviUEdd2JV15Zcqc+3L9gBYdZ9GEbsJ+3EK0GZ5Z3yrQEm5UA5MEBCcQdUJmFPaGWsvTOvYdRcgK/UCs4mbIOOlc8UF7JXtJQQxbVgPP5P/Jdq1QV8Iy0CigFQde4dXZ9FX5eAFRDGMAFbcIPqGD3JSqIKgOIT5WKCUBMBXJcTtdeJVZJXvtcLmQftRyAFcxS/tdXtaftemtdtkudtfSVZdtVubMfjA2NmyVf/hbTwCSuNlMk9tX0RTTNSx1WZ2czIB6OSV1b9tTutIu4KItfWVYqVYL7O0ZQOVQQ9AFRYe1Yz3AhqZzNcV5EIgCzgqbtVLicPVR7NbbtVjgcFVT0lentX0lepNX7NcHRVpNYHNbpxgCddBVe7tfpNRHNUlVUZNdHNSZNS2EAHtcbBQnNcHtYyRQfVSnNeHtdnRfZNWPSDHtYI5aEonHtTVVUw5XnNRCdaHNdclc1VVVZiXNT8dQ/VWXNRY+jidTntXidU8ldXNT5NWg5ehVRqRdm4bZtagyPbhT4AX2uPctU5tU9OBjtR3NVa9l3NfixTCzDCzGmlX0ZTZZXqhbXlBKdcGAJxHA+hdvtSTtUPNXdteWVYEtZDVe0tVexcu1aLtY0hYJtQEVRu1Q7NWaAC3eMotXJteJtce1VWhfyddjNcpwLDZtYWbQhVTAMEhTKdfkmsSxaYtdWvrrtT5ADydYjtTYtQFYfydS4tdCVZ9haKdbjtQZvvadbe5f+uHaddZZbKdbCQWwkeTRsttWTtUWtaqdaexUEtQJcCEtQmhVqdY0jn8hbTVYopVPtFtBXAtS2vLsVXqdRDCJQsEegHDJEademRfJtSihTvRWe1TPhQEMOr2UGdev2NQYvadVfNektfbhbg2LCdiCuG/teCVUQwbfAKqRPJRDjRbdJeOhEPRE+tJ/tWMOr2df4Ku+lZPCBxhO3nEOdeEgu+lYzAGOdUGtTvtUqdSdtS8JYDVXSVTqMFH1MsdXGVTmVVsYtmIk/tYHJfbhVXNn9OdMIrydROtfydW/Nd/xfbhepaQKdc+hdaQlA1fdqCPIAToSGddeurBqaBEKqUHPteDsH6dSeJRnhd5ZV4hey8UFAPedeMZQBqZxHHedQ0teMdbhtcqdXlQG4VR0ta0drIskNInWIFUgMkAE44O2uPR1erNTVBq9tZpwKl1QGpbBqfu5TTbP9tS4Jd+dbx+eUmdIdIjVcV5L9tTU5MFRVx5CSgI51Vd1QYRYSzJrRljBWhdQhaUK0BiKeWdZxlS80gudfBlehlXSVScwq51CVnBp3DyVoDRJ6zKNhFbRWykh8dYFVT7NdbtSpNcHNb5NZLBfbtTPVUelWCdbXNZMlTCdYZNXEdj7tTHNWusEidXSRcQ5XvVYSsuidRbBZide+VZHtXG5COzLideuulpEgSdTnNR5NVSdV5NeBVXXRaXNdw5bKRUZdfSdSZdU66nntSHNQXtQNVWydapdkQHB8dRrZUkiVrZb0QUiQdfXmWAPrZWpguiQU+0VeLLRzEGmgA7GbZff/EIxsqpLwgJ2LItFLbZZtCSZhtMQYSQU7ZYGnk0ia3mBossCccoJOsQTscaNYqAQH7ZbXYbHxIo4AJkQcQXXLEcQcNsbXYZHZRcQTRYLHZabFPHZXcQZujAkwU8QazYOnZZEjpcsCpdu/xDnZXhcH0dlE8OhcAXZZIIEXZf+tKXZZ23OXZYUUlXZYXCvXZUJWNNdVExlDDE3ZdOQC3ZX/km3ZXr5B3ZafCQUxmkeNy0b3ZdkOP3Zb5SYPZTUQRwBvUQWPZZkAFUQem0BUQdPZT6QLPZV0QbTnNrZaN9gMQSvZeh1u4ABKko9PkLUiWjlvZZMiROOBXZSoegfZaqBtQ6vXsgoxGrxGfZZcGtvJFFQCzcdfZSzZLfZeRqPfZZdvI/ZXyQYEia/ZbwHNVTB/ZXnCl/ZWHBgCQb/ZUCQakfrXAMxZEg9MA5Vz/CbAGDiPDEigtfTVUdJbfTCLyCtYisIe6tnlCbx0v6LmqlV7HPxEkS3DDEOl5avbAsJn06nfsHjYGwTAjCPRVUT7oCldKYCfpCADMT1sEic2lQu5Or5bh8Ojdlr5VAiVeMOQUDHytB6CdhWYxT7MOiGC+NJHgHb5cGJP56K24CHIAM3FyhBydQQKrU5oedfXtQtVVCVYXUsTdXYdQzVQTSqSKP8nhLAEaZJ7fPUVRwhVAdUoVUPNTAZIClbAANkJZSDi79InDMdfJB1dN6IplWp6NPlRqcsAVa10jcYJygBjilAWv7ddUgkI1U66JnMB5aNQlYplb7VcqjkF7LXlcqjrL9GpeALAh4zuNgkahcdVcbREmlWMdU0Va6lalgTIRMIUBjABwFc3aCOVQplZGimrLgCtYK2sAYECutplW0dVgxUt5YClU/wKUJOl5Rz/LPlTjlf8lTkxftpLhFVgiC7VVV0GN6AfcjblRHEoggAFmrMhEgSmc9AtGOpeJeCPVoOfgGtGOvVkigLJdZ5fLdJWp6Hzdcy8PtpNRMP4Rb7VTz0LXlfnlRXlXk0B9hfixVPlROonYgEwqEwqAXVRVZfn5RJPO3nM3VSTRMkkPglfl6WZcfbdRMdeZVfvtZZVcGVevBX3JvvBYGVXMQLdkAz6MjsDVkh1mLzUvZVUekhzbD/hb9VSsdXmtUI6tdtTJQnLkc0teTtUR3IE/PW+oRlQmddTtTDVfwtX8hUdKKFQB1mPY8jmdcJtR7uXwtQYRZQsPsvjFJQohYVJYruEZtRECvlkrG5tcdfoFYvNVcxe/ddjVdQ9bjVeBpa+AAupYTVcWdSada4pXQ9Zshaz2bxlVDLCTdVtNUzVdOMBkJU6dVqhIUAO/dXrdR6deUVQbdY3tTikt56Hrlc7dbxBtClS+dSuQJndZAddndUZxaswOkEo45Jzqv3tYOlUJbN/TgrGo7dXrldoAOYgHz7Ej5Q+NGfdfzlRPmiz3CU0JTlUdpAJhRLQXqlUt5eXJX8kjnVQQhMfdf6dVJVedYEXVRfdXAtayQt28o7gT2Oqi1e61WlTKkstwReDsBYHOyxbfJtAdZnVIA9dtknmVYMibmtRudVdtexdR+RVPTDUFdKDJMdSocuptTMdevBaI9brdS0VUmEN/de3ikW4Z8Ymp6PI9QmEiI6jA9TGdRTtZjCkKJesVURlTAtTTtdqdZRlRKVcYReg9fWkHI9dkJURsj4jLg9cmdZQsJgAOwsAVJQLqVGoGQ9RsBhQ9XR6K4RZItdrtbk9UupSMOMwtY8VTjVaOVW8VfBpaCpSw9Q8dSxlew9SrJXk9XM9fNlJe1XTVSbdYJlQI9VbkBNTOU9MPYHmDHrxBT1Ax5Gx4TU9V7ouigjzDkZRQALEwRDqyG8THJlR3ABnFMBRpNhP+1WMcPF4GtBYO8qB1c85SY2m85dTGh85ePMPmAL85Z+3A3yWabCg9WGRbstZf1WbAELSV/JCByY10EOha5wDPBTZwMmdTgKHQuLTNVLFPC9d9MJfYbgKNpwLPiZMEJ2wKb9CR6k4hDAlAFYWthHb3KwAF/JHuNHWpLduj80D+tUyECc9WVoHpSFNQrKLEldYKQNLiQpNSSdVJdWJdduVaJdcFVRFVSCdQHNeU9lk9ry9ZKQGclQpdUeYtg5d7tb1wNeVX7tXlzIQ5bJiMl1g6ocnNbpda+VQVVVMpDbBfZNZeoMZdY8lZVVX+VeZdYntbZdTBVeSddQQpSdRK9d7BXZdRY+nq9Y5dQa9VpEi5dZJdZK9aydRFNanBT3bOktSYEIhUl+eKioK2dRI9YzIruuN6dT3lQ0SD6IHHSJ9haJeBG9SbEr9hfrxDgiADheEZb2lpnapDhdgaVRADDhSywHDhWrwTthWPwab9jBhdoYayOGjhZQYIGdVKdYXFPaderRJMKu2uEBdTndaCFvUVVGdaBdadtcd1vU9dDsOqdTbxTp5hK9BPNehjvXkKdhQEMFzTjVkQw0qAiH89W89dAJAwxWYGNwiu1ybwile2E09dsCDgtVQyXagI4STEkR11WXduGlbp0C8wF2RJnMSN4FLoAFrD2vpFTl7gAcHJ2tUCPCy9a5FG7RUd5By9R4zObtRA5VSdV7NejgYK9eFVRpNSK9XPVXJdaa9VCdZg5YpdV7tXCdSpdQidQNzMq9UHtT94mideq9bpFlq9YrglQ5XB1Pq9YhVaZdUa9XyRbnNUntea9aEypa9RJdSydTa9eJ3mRAEFNVXNUM9qFNQ+9WHBV/Vdm4ZdgEI9ektdvCjDGfuWuI9WSlZI9fMQEG9eRVcPtXAddw1XAtWTdW7XimehAfM6AQ/wRCUPv6s8UHHSMttW+tSuQN57N57Gmlf+ZasSkEnPX1JTIILyZgwd9ajLJkdaJYWXaIBTeiIAEDMEIgLRtO/6cG8rYwJX5Db6cfwUlAmxGZa1N+QHh9dRfPblAH4tdgAXdaL5RrkeqIO4gM/mVq6MtJOyxUKpHIJk6nELvvIOG2QGGStHdbXlZ4mq9idXArOdYqda+tZ9hex9VG9dUtcvtaKtZUwNqtTKtYg8kU4u/6VvtSsJHbQY25dAdZytcdVc59e+dQZvlx9YE8XNte3QQU9S/dc9VYjxbepap9ZHfJHGCc9VACcPIIubMe9XLJCJdee9cpNQK9dl9UCdQ7tbPVXnXPe9ZZde8leHNTK9ZHNa+9fK9b7tQv5HpoHFzPeVSidd+9aQ5WSfObBX+9RHtTlALZYQrzMB9RVVaB9a5NYSdRB9Wh9e1VVB9Yn+jB9X1VRntdclU/VYh9fa9SB9c5dUydfJdUXtZh9bGiHhQj9NNWRHlnG/1pO2DSjhf+BkxInZcfobOADYMKk5EKaOC4PkuCE2JM5N7uKXMod9QVxEmxH8ALiuA85f89UwEa85eJwcC9SURiLVbo0JO2TcKi64S59UsgA3Jch0EqUEa9UP1uBpEVgHS2OdkAgdNsMD99b19eDZuBpBkDID9XngbPBdnNX99Ru5EVgLPznngbbobUTgj9XpRts2EM4FXGmdqp8YsAMPPRZR9etzEzmhcuEt9dP7LVfICld27C/diB1SanDCYNt9QmkasIDijvfolVELoNovRWTFeyGm4dVgxaLVe28Fz1qF5YVMsyLB0YF6MoplTj9RR9ZtNS/dr3dutBSkVQplWgTpD9BqlaO8q7pAjfLzqtrdVg2EqQOFJQR9a6VQ3tQOdfqFunddRsCo9bixSbzIv9sYpeueJM5PaGYCAEl9Wo9YPJVW1fRtUsdZftZxtQDVfE9RA9Sk9ULhf+RThAPTALW9VdxRDVQ29S0xcg9XsdeRlYJteg9Rd+F3vJcddRlfqdZKrL9tdTVXcglQ9VnlTQ9evBWFJah0PQ9eH9Yw9TOVVSpTmuMCSLJtWw9RH9YjxbYfuFJbs9dw9fs9VmdUJlf7JR69fkVbVJaBSX69YR9RCVVI9Wr9Z4XBr9eDsFr9UL8jr9e1hBPBQmJQb9br1Mb9WdVTE9V9VYudWudVftYyVd8JaxtUmVZmtQeRaBRQ+RcURbyVTxtRWVfA9dRAE0xZ4VVDVRBdRO9Wu1T79cxQlg9a09bmdSctW5UOSwKM9aSxu2VTZRfQtSTVYX9fVJTH9dEVXH9WOVT2pRWuEn9a11Sn9eMtWn9UqQPzteknGmdXfRfxlVMpYc9SADJctUJJQYPphuO6dSX9R/tdtJUKdT/NT6VTK1aHzBPBa/OI39RyAHQ4AqdcBdWZVbE9WMJR39Vb9bmVZYVck9aO1X+RaBRU4Vc79Q+JZAtZDVfTJRqdZ0tXg9V79Wg9Xptb79fxArqdTg9XmdfANMH9YYtQqVSjVVv9a0ZS/9SwxXv9c8VUs9eWpVSpWmuCf9WmRVJ0NM9Rf9Xc2AwDVw9bXsjw9Xf9VfdYzVY/9Y6dTh9bYfkRuMX9Sr9WX9Z/9XxBcKdRndbfde5sLX9e9pdspVQuIADft2JGddE9WeQOADT9VZADf9VdADSA9S5VfADV+RfMVVHhUgDRAtQg9fGde79Y09dC9VgDSDoTgDfP9cTVNg9WxhYjVS8CMQDeEkuM9ZrtR2VdrNRQDYIDap2NQDTgVQf9cs9T2pUIDYwDaERcwDZs9akpe4DYnFZn9ZwDdn9UL9VF5vWdQX9bYfllJT4igFSenxbXtdYte/9ar9WIDer9RIDZr9VIDUuADIDVr5NsxS+5csgHlnByAM39coDQYDfhlUYDagDYmdTP9d79ZYDX79fgDbYDfqda51A4DeeARv9fY9ef9ZhxZlJWW5fJsqw9YEDan9e0DQFSXEDf1LBwDR0RBEDff9fw9XwDTZjsI9VLFAYPk+pVa2Et+vEDRB4IkDTNVXXtf69R/9cA1eIDd/9ZIDb/9br9RzyRZ5X70AUDYb9cADSb9UiVVU9SP9bGdXU9XTJZUDWYDc09RYDdI2KFQFYDfZrDYDRPhPqdZjkk0DR8Ck4DU1pFrtUEDVcxSTSTMDdevjJtaf9T0DW0DRlJQFSb8DXMDYMDTf9YgtQc9WMDZDtTpKhl9ZaDGVNPCQfPZSMQKkicMiYFdaiQSFdYbZQnHsbZTsSqbZXSlebZR8CJbZQLRjpYC/zMnrFMQZLpDMQepeHMQdL8a7ZYwqi++gUgbldXSDasQT7ZYVddsQcVdQHZdL9g+KMHZdFghVdeHZdVdeRFJujFHZTHZX+rDcQSBpE1dSpkMnZSsoanZaoAO1ddGKC/zLD9D1dYzyPVsf+eiwrIXZfFZHiCdOOOEoQFjl9deQ9ZNddojLNdXXZREidU7vNdRyFM3Za7wZcKpfZatdcgTutdQoVltdcoBjtdRUQRPZUPZYddQUOMddVjDDDwC0QXzhE0pjPZY8kUhBkiDf72IvZfddf8NKvZT8tevZXHZtBUMvpbOnNvZTn/gojp21D9dao8gofK28JPtkDdb7TK0RKDdcsbHoQOyQZqQJDdYWSHv4KOwGVbLVlfDdTFTG+DLKLMjdQxXEsbmjdT/ZeFbEXVNFsUyDDjdWCQQv1tAZPjdU4Ylj9e8agL9Xw9cL9ZslI4TqblkT9cQRP/nrt9cEhY39Qd9cZAN7uDIdL9ACODZd9eODVBvuqAIWQcZABd9Wm2HODZM5Bd9SIfm3WO29ZpRQEMJZ7j29aQiTPcoOIX9gJFhc01Vt9S/dl3dWp6GT9R4FEH5WBIi9BQeDRXwtkxD/Bu9wsloXpRFDIZjWOJYT3bjRvlBAJ+kGFbMN8PHGGLdYXsAGQmsiYQ0WhnhIYMloUVgCF5JViCrdXewHJKI75e0/AyoJoJqN3gS8F6dAPdXgEZNLvTwk4SDzUI7QGIuvnXMloYv9NrGPVJKvdcS0KIukUMuIusloZXAFhDVzAPtpEn8K3UDe4WnRGeAEwjBRDfD9nBDcdVvGXtRDXeDau9DzULT9WTFWzvAw5ZmgOB1eg9DJEOdlX29VaAF68NWGM++B7dEL0Aoce+oDMniJ9LYgO25I39Q4IID9fD9i/cMz9T7cqz9dc0uz9dchTX0C0IGG0tchbz9QtEoyxBo3sxDXl4KRehXdTe3EtBR29T4qtfuIxzH5keGoZlcAJDaF5asgYiPFJDXlnHY4ZrIci9AmHo6gAmHsDEIcdoZDZOem3lXqlSpDRVHFz9RpDREAFpDQ62uR9e2DcdJav5OhjprVY5YF7ARYxBqlV+ggrGsRoB/ZBnzAyoPL9Sq7vGUaCDYUrsIDRIVakDWsDekDRsDZkDRwhcl7Fr5LwxD2MEFWXnyIUDYoDRW9Uo1axdUJSqA9euddftcObOsdayVfySOyVQb9icDfdtaP9XGdRUDR79fxtbDVdUDbcDUSAEHzHgDY8DaV1XCcPwACwsGv9f3XC0DW4ReH9UCDaFcYuoN8oOlDboQPM9SwtckVbjVYWpe+pd0DVZ0CwDZhxalDQ2UYtDdlJWEDcMDcpJdwDabdb3dtEDUJJbtDd8oAMDZlDfNVcR9YbdR6VTbdeyxYVDTkuEIxCVDU1hmVDYb9cUDQ/dbyJWb9eftWAoqudZb9RoDTftY1DXftVsdaUDfyVecDZZxZcDZ79dcDTnsDgDYNDQv9agyAH9YQDQfPq8DeQ9VNDVM9V8DS9VRFoPGUddDZ4DatDQypYWpWKpZtDeERbNDTSnrjDZ0DeCDXs9cdDaFDWdDXzehMdPvpZygAOohT1MQIDPzNh9fkVY+pVevkt+jdDUR9WdoCR9V/9VHJeyxeSYtwVQk2dzDQulVX9UcDTeJb9DXW9dl/DADViAOIUCNYbmhn60E/dVMdbF9YftVcxZzDZXPtzDSrDSockU9V2dVDOvawsbdXj9QtCX40hZMBBJXlpNUFZEvDTTtDvOzDUJJZ+pWW5TzDaX9XdDdI9RX9RAdbixcLDaTTFZ5XHyD6VS39SoDW39a7Nj/hYCAOIUJtYUrDa0RDF9dmTlZVVBxfbDVTMlsQDrDWKdHrDb/dTW1f1QuZ9CFDVCDR2DZ4FNbDQ/zCK6kbDZEDfDfBMCl++qhkGW9HxoiqdOFDRrVYn1FFDQ+LtUgrFDVNumvRe2SB/ZFirMQPnU2pNJJMLEYbJGYA7DftlX6rCrprs4XgGoYDqVYst7MV4eMoDZppaLtwfgfSNiwa89RnzNIuDnERKAFYiFDtRLQUY1cjkOPEbPBRPDZ0ADnEUVIS7RG2NesQC//DPlTiSUAiNMODqlMgAC9aFI4C81OsRPvDcOJs6QLbAPbAP3tXHJX1JRGlQzXDP0vokBQPhGlXRVb/Bi1Kj+TD05aQjASLlBvjZjqcQtfDcigMjGJt9S1Ej4qkATNXVLrJVWZe+eGl0BeDQlCOQQbqTFfDfIpX3rO8kXfDYL5Kw6NfcsAjef9J8+BtVfkoPGlZmgOp9STEnnHsDhSxLqgjZ/MCo0qk1ahAAioGmEXzABtVcaJevMFgjabyH4ILZGHA4R84O8FjW9P7AHvQOmENPdUKaA7YUIYaXMjW9DJEDW9GVkTVNREJInZa6FFjcNYDs68TMEPyyLYgLvWnMAbjyCN2OEyLQQJboXH0GD0GrIbN0Dk+JRYkQJMvDTnERD4TG7q4gDvUME5KEEaqbusQCvDQGNcHod3DTZjoU1VgxYvDQ5MO3nOYjcpDadYTsgPeqLp5cZRGDWcSxfOUCMvi/dpZGCm1XAjZPoJAjSi7EAjSQjSIUSANmAjT3UAIYYrgOqEQwjTzAKe5DCJTYjcjkCpDeNoWDhYVMo4jV94coATWEakgDM1fPDYmOLToT+tR/zFRgYn1AALEPDQIjZPDaUJOPEWlYQyocS9AUjUYjc0YSc4Xj7GkjaQJAvDbToUZVW3lekjc99a5wPeqM0iFkOEepNiKZTgjTLG7NUPVc3Yt8dVa9b8dXQ2P8dbB9ZuVdJdYg5aCdWK9UHNaN9R/Veh9WV9bgpLK9ZV9fY4apdTVEHV9ZlVQ19ef9Gq9dZNRq9dDXP+9cE0vZNTTLF19dcomZdeB9RZdQMjdSddw5UN9XVqiN9e/VZCdeN9RY+gcjVN9d19TN9Sh9TXNQN9YZXPN9ZFNSUANdEvL9VrFcr9VlDaIDTlDf2ImYNq4dXoJNw1SpleFjtYhDCYLngIIZiUdhStewxDW9XHDdMdUftZmAgsdeOhdE9m2Yj8jQOMG/9SIDc7DeX9eJxiOBJwlMeMZ7ciAOO+WgNQBZPOHDdk9UftQOMKoDWdtYDDasdUudR+RdkwIDRJQ4j8jZmAjLRIMAIf1dijf8jbijWkDWQZrOtR5tY+FZ8tcYxEutSXcqutWlNROPN+FblFfGFdlNUJavHwXHAa1tVMYgeNUhFX1tdltVGdeqBKd2uhjlkOJHgIL9aMDbwDYFrHysRkqhHsBgEMHiLMNffSSt1QRkd2ADn9Va9OZFaKoV2WsqjcNtaqjUF9b+tfN2h4Ur+FSqFWLFY5FSYgFKxYhtTqFTLFZltQqNbdNZ9hb8rL8rJNtXjtdNtZF9c1tRsSpLDRytXhtfqFa9NZD9FGtVttXIXqJNVaFU9ZDB6pJNXaFdjFY6FYijWrDTk9VBxROpRyjenoFGoJvLPwVZXtWyjTbkGV2FyjbdDXzDfdDSoeu5te8tYKjV5td8tbegGKjVlFRKjZTFVKjb+FTkNbKjQwgmTQQqjRrHrpFddNSqjbdNWqjRceiCjdqjbTDdtNV8tkTdIajcVsMajXRoECFXnyPxVJajZEDVrrOp1BltW7gCKpihTAGtaytUGjWRACGjR2DqB5UKtYsrKvtUEDevtZmAthNVNFTroAOpWV2DUtVNVVZsO5amejcejSDGEeoJ59c+jUQwTQILphPrta9tAmlPjtZkvoTtVKtRJtVWhZPhXl1dqtUPhQC2CPhULxaOjXAOizFW8mJCVBVtZ+Nd6jT9cUhtX6jQ+tQ6jYGjfixcGjS59bytQcjuGjR59bNtVGjdBjeaaARtXrFThOpttWFFcmjabFUrdmmjQZbBmjRmMVmjZ+5o9VbmjcijWoADejXQuDSjeBegWVf/hZuLImVUyVWfjIDRBtYqyjVhNbLZFWjbzDSuqPzDU3teOjbj9bnDe/TLslc/DQZOqUdQ+bMSoqFjttlUF5A+CWBxP91GLvF2xN5AGFjthtd9DVGheHDQnDYeQDVkl2xJR5AY1aCjf+VbslTI/JS9ipJZk9a0VXF9e0DRejVCQE+CVskHCDWbtb0jazChbtWcjRe9c8PFe9drAMK9Y7tRMjaHReCdSMjWN9SSRXMjVsRAsjcpdVV9csjef4qsjTvVZpdYnNdpdb+9bZNVidQZdbSANwrIcjdTvMcjZfVSa9SV9Rcjd5NUntbKRZljY8jT1VbN9W8jeFNSnBV8lSUAB/4vL9VupQX2H8jQFYe2dY5ID/dcZjQvdTY9b9ALYxRJjblDdjtWalWRAN+rGF9b5xZ1jfPCmKRPPoECzCF1hjAJVDU0tfSyUlAni1uRZTFzDmjRHDa/dVBxU/pT0OH9yBxjfFTOoDfSjcmVQKhfDQu/wCOpC5jTPgLW7HJNR5jTi1GFVV90jbtd5jWMjfuVUFjZeFcrBWcjVK9RFjYwYBV9dFjUsje+9dBjvFjeZNesja6ITpda19Wlje19XG5NC7FljV9TDljYclacjaFjTMjYN9YVjRVjY3ReyAEDjaVjdTvE69XB9e5dW69dVjfR0LbDYHJbtZQjtUkDQ8tXqhR2da1jbxJQ57PKshCZUUhd1ja7DXlDeDsLJrLJrGmlVjjZCZbwnLigjsYC4RQijTNjTrhbTjUUhYtjZSje9BbTjaijX9DeTSgDDYk9fVDWsdWfjBsdc1Df/hWVDIdjSF4G5jZ8dX0jV5jRDjUpNfy9d7NXl9UK9Te9YFjaK9cFjfJdU9jXawFFjSlVe9jXcYJ9jfHNYljaidU19aHtRidZq9W19XbBXG5HFrMDjfidWB9bljWXRfljWa9dDjQ7jZntRY+lbjQjjUI5eVjc7jeh9R8jRAJibAIeEvL9cRgDXtUsDckDcMhV6dbWjesDb1jcdVelrOlrMulS8Zf02aFQKNjY9kVNjbvtVotcCYAHDd1Zf02XZjUijYHjZhdTzjTLDTVkLVDZ39db9bftTtjU1UYMAIb4gb9hLjavALpkp7Rae9euVfntVbtX8dZdjXLjVTiddjf7NXe9ZMjSFjdMjbcjeFjR7tc+9brBcZNXR/MCUPrjYHtd9jVZNcVVmHtWbjf9jRbjbSAEP7NbjUCoqDje5NXljQ9jYXNZcjanhpclTDjTclXPje7jaEokjjW7td7jR5db7jcR+BjjXSIYUAI+iPGNB/dRZVUtjQ5jbjxWfjY7QBfjY1jWJjUMpYtjUZjYTjQZaqnDSz0tZjVMRUpVUxIuAVU7kHijcZoTnDbqjcdJZDimpJaL5KPtXWJdUgYT4iPtdAJCdUWuvLN2GClCocCOVeGZbxBmk8fhvhtgmPDSfsDuOYmgDUjfQRd98MT5WiwUkjeiOAdACS2MtsFSvHFsPATbx2IgTb5qGYjbM1VgxYllZE9RKKks5AwTc4iMllQFDp2JIukR3jTrJb9AOV5OHdfghYmlao9dW9SUDd4OCfjdWvufjcx1UxjdfjerDXaxffjSJjTjjU5tZIVYZjbQkMU9ST9R/jUTiYr3vHHgk9HtJcuJVjIRrzIopToTb6oQgxacQm85qpVeZDTsskpVSYTX1LtT9IiytfHFqijATeNJUkisIhp49GTjfr7qL9W2DWnDcdJTCJaUdQPCbm1sYTcQZl8FolZAtkYPAjk+C4mG05KvWKrLLQTUY1ZMlvgTYfsHaVFZ5dpJUZSgFJclJT7BsSxTYjZPCiwTbixZUWgNZSZ/DT+LOrEx1awhrJwI4MTv1TATXUddQPHD/IJJnetahDfhDd13BvRUUTYsGGvdCqGhDJKofJ4AGhDTrhRvRR04oHdTLoGvdFHldN4Sw1VghZMEPixc1rM1rKfdSOlcVZTD9RG1WCWshKOeNL7DYDRBGkhT1C1hJTgtvrAFVXXjedjSFVZe9Urjde9cCdarjVwTXdjeK9S3jW5dY+9THReV9bCda9jSG1qOTKLaCPjcidYbjY19U+VSljanNZslfZNUsTfPjYa9WD9ScjcvjfsTS69QVjdZdWntR8Tda9f5NRY+k8TTvjYydS8jcydfvjSSRT7jWjjSAbPL9dBpT8nqJjU7DTWjS7Dcc2sbdeCjW14cENjNYgpyIcIlPJZFDbpjSsgCAEMHpMalZAdaHdd4Mp1ujXdd5DcrxTqEDajvOlax9WOQPmkvmkiMTQm1Wg1STJKW9WDZYyTdqRNGjT9DRzjZeeaoTUplWCjeR2ngEabDTtwiFWEk5UuECSgJVxZUkKOuOjSHiTXmjZhxafGBKTXiTRgno4TpgUHiTWGAGLUp0FLIJbKTXaEDC1bZVdKTbjxRqTSyoBgObZVfUiWTZKvccHsnAUbVks4iPonHaEHcfiAEAuCQkAEuwQSAFCeB22CUQH/XBtjYzIeVxCWRe15UtcSkUHADULhR2KIXjVADc5VXLDcbdTC5kVmpDAuLUGD4oKpt8xiOgpw1PPoEx9dLFCe0O4gHiTY7/B6FCdjVy9V8dbLjd3ja3jQrjesTVdjfl9TJdU7tTUohrjX3jccTUpdTrjUPjcSUJgbPV9dcTRsjaslZPjTsjebjclYUFik5NbslVnNRfVWDje8TZmTQcTWSdU7jSvjfB9XUoE2TQqRQI5U5dZ4OnvjWFje8jYfjWjjdnKtCTY4tUvkfmlWBaV/JHCTYoTZITa/jbWQbPDMiTclUXxzOzDACmrdJT/DUihboTf/jbyjUfXrFlQgtROjR4TVR9f+sTSjvFlT41fgkKyTcllVqDpExJ5FXo1bpgL9AI7MNufOpVQkdoDhXttgoVZlJEbAJx9bI1QYZd3GC0LOyTQZjZITdk9X2DUATTwDWbde1oLq+BjnEwTdeTXalbm1ZRYOwdYPpk6BAYEPL3C+TbIJVo2N0MIh1L8eIC4JhTeKANhTVhQD5AJvYJTgvcbMsTadjZ0lX5jWsTb5jRsTf5jSrjYV9XDZNpNb2TfFVcWTfMjS9jWWTecTVEbJWTWsjdWTT9jXcTXpdcfVfZNWRTc8TT19dnNW8TfbjcxTaw5WvjS9RhvjV7je1VbKRcJTUCTUhVZ7jZJTQfjajjcNVXCsLJqmzvMzAQewvUZe21VIPLFZUuZX6lK3dT0UH3Ria1YNWCtgvK1h5wLiTvXAKZVRjIrAdWL9VFDdcbo+TSZFbfRdiTSHUlqLk7tQ57PNujL9ftpJdAJlkQpDWLvEpDXFDbXDTf2sHMmyAbdroFTSAVVOlcjkAIhcDlkIhVFFZ8YnulQeleskX0TbixUPcPixVALFALLMhdY8p4VSADU2lZWdfO1E0VSi4PnMEVtZs5XUQCylMJieDNFpTRawcRRjWFbXtfKmGlsVC0AH5UjVEsDWQjA2FbXtXqoATjYijp1TS1je3ijYDpOfLm1oh1HO5a1TY/NSBUHNVZCVJ1TVDCAXpEwRJItfZRW4gBwtX+YLzxPKgMEQMWqSSgBHqUOfOEABnzKh0DwtRJzhSUa/ZHIwJzVAD6KDpWSMTmoib0b0xJpMt5tbkrEeVDIRKKii/MgmoqLwFwNsEyMNSkKcZJjS1he6trVhYlWJhLAhhC3uAS2tgdN7hdD6AnEeA1ffBRWTlF4JISbFYD4oMP9QfwA8uE8SvV4rRAGCDqosNmhqC9C7PDd4KLwBgZHgJFDTa5gCt0neqMp1JjTSuqHv9PM8Ge1G7xky4DuRCjBbE8J8oM0xdaRRWRBabOvHJ5IFQZHQZIB+GnmHGCXoCkSjYTTSZ/MTTXXEsyREHmmIkpTTTQIIHCZn+gIjj1DUmhYq0DUVWzTc4iBzTX/ElzTeLDSuQPM8F2uGmcEGShBdXpwCXwCUhIB+Kt8LIMUcJEWVJKAJQoFi4IYlC2uHghTxkCH1KxQBb+iJSv1cHRgHUJF5pMT7B6wdMotslqZ0nLTR/in/OiFlcGQBLTTw/syRGeEqb+h5lp+5cXRfblGRYexlt9pFbygiYLtHGjTZJJCdgDLvj7Tb59phQLZVUxxWU4k3DQhyil9gywPkxAMYkGMnrEfA+FmRTrkFHTXyMSAzKQOADTWDREoMXHAS9TWgAGAiAAVfo/EC+s5uqb6tzdZdvAhQoWwK3jBz7N1ImlOBCzDvAmrjRrQEwhdmBqukiTmcEjh5cp1leSgdOPiMJSrlCMJVYwjzTZ4VUOLFo1aLAM7TaTTY/ErrAN0NYKTcb8o4TrpcdfQIODjseD/QCX2sI3BSaBX2lueA6wUq2LpIGLObcgKcEDf+B7dRHIbtXBTTYPTdSgOfNX9ZY2spb+gugFFbEZSthIjHpHJFapDCmbNbGqcAfw7MPTdRAKPTVLTd1mrbTbzTRpDCmpIQgOXKdauK/Ecm1m3IcQ+porixRV8YM2LGrkLxRd90YbTbxQKYDE5cgckmu0sLpjVdsiEJnVFTYSTFvnTWf9hsYJNpC1hdm5J9TdGQJEoAhhD8FtHtLotFyJETTUJdpzTdThEyUd3CnbTUkxAwbKtoBabO1hDj7HW9rNMsLIsi8nAzRKvHW9tt0G3Lp+5iylMPpRNhA3KgL1IZ8QCZGrADLUelFFwAO/vAcQZHWrhaM99aQqizxYn1M8UKoTrTGJawNIzT8xrz9YKoP7TGeQFYwO/vBxDUwEQgiKgUkh3jXvp4KHCABcLFz1gDhLkjea0iYzX8Blkqo00vJjRsii9UjMohZtAMLn77KuVSsTVRTcMjZ2TY3jZsTQV9fPderjTDjdK9WxTScTRxTdSReykNxTQljaq9bWTabjfWTdPjeyRQOTbQ5c5NbHtbbje2TRJTb8TYvVY7jd8TbJTapTfJTRY+qOakh9bntSpTUkzecjSjjVVjRpTTPQP1bMGXPpVZ3tTwDEE9YLIoZ4ucZfzlRUzRY9YrlXqNVfBUwdWidKC7IdNVXsifBa21XI1SQqJzlTeTYhTa25n8lbP5TS9ILVfekKv4hRYk8+L7KuipiCQrdTZpRfUbDCVJUkNJisT/I3UYiQBJ0UOrh2INXhaVStYSaVAo/UXdcBM0m2bJVUabbsK0jbPDp9P2aJqEDyJdD0ko9WOQOJ7IBzOyxaLxDEFZcSkYTcpVWFjiPxnpTSD8M8zRa1WdGLUTQrGjVTL21RnsgRpD8zVWJCs4o4MfqoQgjaqlcAFFHPG0EHGCDhoL+TYejRnhYgFY06susJtJpvOOzDKd5TiMrfDWLTBo0FGlOw1Q01ZiKJizdRAPXAd/ln4MY3VB3IjrklHfB55V7TVTYWc6Gczb7UugzRoKBbBsYDQALBoReUtdRsAJFTQIJE9TS5YT4qwdXoJPMzTBmDXDbM8MhTYFDlNukxhIGwLVQOMCORDm4IWMHJUkO5zKwVj+CWyAZnyUkVegPCXCMKzVXCHciKS5UnTYuYJSzdXhTs0jSzUcIHSzV1Dbw/HvdcdVTPtayzVghR5DbU0lyzSD8KwhSSTc9UOazXZAKwhX1PHaVBVPIJ1afGKwhavRSlRsdPJ1ukKzWiTJgFH1PJ6zd3UKIxKZ9aQxeegG2QM68b6zY7wNMegvCEqzboaNt0AZvmRYZ0qF+cM1QreOOnTV3tot/CtwPDpKIYEszUy4DdthIajKxfLKjyJdENkMLhqzfXBdD0iUspszcAqP5mLuAA9All1hnpIWzWFxMWzVsDDGzUpYW2zNqzbxJXbgkWStXhaFHuWzZ5eLAQB2zccim80jCcdyzfjeqPDtdVmRYXcZVHyNSzUmzRwTlw+tKiL7UpFIT6sn8BDY/HeoOzDAuzWiTaBXJ55nGwtzPNxFC+oH2WahtGP9VMpO/LABniZ/Lg8RIiSRWGIwP9UdbYDTpN4bqGzUKiREYIqzWiTE2CI3XmXdG79UHTNpwCVQJ0zQBTfMQN0timsCZogofLhhTT5FgcopFRXhhpFU+TRBtRguu/pG79X+zVIdWU3IIdahTbM8BQiW40JUzfWyilIAFevUzZbVUhzYPXL+QO4pOzDL+zZibE4TdOgg2zQFYe10FqzROzV/tXr6vszSscreWjxNLmqFSza48lmBlj9HN0a1ZWOza48uAdR8CLmze2zTdRl2rn2zd60VOADuIF2zaytNsoVTYW2zDxzVaoM2zZjkJVVBWzSNAmvdO2tKWzd2zWcPPhzeyYlY1JbsgHTddBlscee0PDAlwdkpqkjAtJzSyoDQiULjhKwt9Guq4HmzVNAmGlFRzZqzU90nh5QEcGqzWsSTzyiJzX3CcaXG2zfXBYvlZEVtsTAZzWxzXYid2Ai5zfXBUOrB5zWFxCGfLpzQBbN9Glpzd9Rv+EdzFCZzUWzbo8uZzaHTUpYXPumXUtwSkpzY/gr2zRM0sZzT/8NRzdfTscUQI0eRzYnvmHTVm4o/eMszWV2HFzTEPqhNkWRRUhVTYYVzTZzTZHJScblzX7sJwoDygBlzdnUZVzd4aNvvvM9tLHKigKsSCylDk9EZyiylHikACZJ9bKy1HZ7uvqup9fqdXmWkxxVE2MjOD3AHSVSEHBc5d0uEMVbC3ix2UhAg2JPqdcH/MNzeB5S/EcBlHSVZyMpCIAgAFNzVuhQqZGR2XNzeegPqdSCkMNzSawJSAFQuGNzZhle5wB8IJtzefANNzViZLtzUfJPNzYQDdgAMNzTzmRn0NdzR+RdTABdza4SPAAFtzcFUCQgXdzXZsg9zcv9YzosNzTAZWdzfb9Z9zYEQD9zXQwDVYf9zQaOPtzYQDTvcMNzRt5WDzTJQuSwJNzW9zb9zbggbDzQmOPDzcv9eqJcNzYM1ZE1cBlMsdTnFHSVdkwAIFBtzd9zRjzdDzQNXtjzRywLjzXCcCl5cNzU1UKtzR+RZ3eOjzZawNNzR4XnTzQZvojVdkwOIjm1RkG2Kftc5NpTzVDzfXuAV2rNzXvJLzzfqdfulc9zTERazzUoRRDzVdzZzzdtzTJEDzzRqAKTqgL1OCRXTqvouZLUdc9XA9QKUa5DPLVCSNKR1lBhUiFI6hcqyG6AN8Wov7loRcw1CZ/DP9VeAIM9cbzaZlNQiIQKQEMI8SUQhD4AM4AE8chyZeDKIZZfOwO7hHKOBshWZZWnwIHzbbGIchcBhc25fqOCv7gwfpHze8AbIxflPpd1aKVdSAK51fzNdjzA2qTvNb2uDZZd13ORRaxRZTNW3SPJRVRjMeDodlAtQv2NFcDeGbF/JNi9YOxQmqS2qeMSfqoKs3GsAeK9JKCsKgOZxKPgqBTRPotlBIHLCOcPZjXeADu1W5lc/dVITQlTrCSJs9f3zarDVITc55ZRde9xXAACaxWPII8RV8AAvoOcRee1ai9dstXZxQcdfvJYjNTYReOqaOqWDOM3AQ1MGTHA2di4EISlSZ/JHlKnjTYAHCqSZovlTChYMllQfRZExIyjqpvBXQWjDRsBmqwuDwAUoIrVFvWCMIH2uPnzVdBc+xTstZLRSx1VvzY2qd8AAX6cctY9Ne3nKKVTa4K5xfsVQALUmqcbOUp0CALTNeCDtbjLLRZLpoHzBa/5kbtT3bHAXG/9vVODIasuzhrAOBOBlpuYcNXkY7gTisF/ImOQopVfpQMEyHHIlsVa2gMV9BNwtwMGAmD1AhPAsHxfmJWzRVjRS7zXXxLh+ibaUbZChDisUHnDsigFeNZbBJBcHoRFuhJPuPzHk4gkUflzZjUTO+eJDgiedd8WnRCVbzWRetSTdbyFoRbbdbw/PQzM7TAuJD5THwLUgVO7FaB/P0RdP5CyCcbUEaQNWqcsMO2uJcaS42B3FWlTpzwITaiZ9GQIW1zfHibXALCkOKIV0jY4ze5jWmTTLjWe9bmTU3jeJdW4zXbtXmTeMjY3TYeVTFVQ3jX8TYcTSvVS+9acTQq9TV9SHYMEzV9jbxTePjdhsi+VREzfpdQDjYQUtEzfw5bEzQydS8TWJTXbjcclXJTTfVakzXfVfkLWI8fcjekLfclcFNSCTXN9ROTUUzcgGvqQqDNQh7B/9oj4EqQNkTMztZNMM2FFKVYv7iq2BO9f0RZfxdLRUvDUjNVaoIZlrAQH1MFzDeReLfyELkIUqS4rNggNBoGjpBzNQYPmKdOJsFlQJqqSztWWFADmnJRdUxQhqpjCvULSU0I0Lb7+RT2PepK0LUFUO0LWdRZ0LYd+N0LXzNX0LRvzfVFIMLVaoC42THDfFyEw/LrEVMLeetrMLdQiHoqQsLXmJIcLQnKasLZ8VRMRc0iLrHLctBI6I4LQS8ZTggcnD0je4LZ5jZ4LXkzT5jZdjCELYMjXRTVsTQxTUrBXsTb4LckzWELZ7tQPjfCdeWTQHkLELQbjaEzc19ZnRQJTWnNfZNQcnCJTU66ovjQntYkzaiLfkzVJTT2TXkzY/VRY+qSLUpTY69bkzdSLVK9RCTXapK0la4LSYsQVQSyQJrZQiQf5dZvCWiDcFdQ3zZiDeFdaUplHCT8lfiDYf4ISDUczLwgF8nDbZSe9cldepsaldcRwelddSDRp8NldfgcQyDeicQVdVnpKyDTErLsQZ0VByDaPKFyDe5eKHZZVdWYcXyDX+rIKDXVdcKDY1dYnZc1dRKDQDUM8QUZBfclfKLYEbPKDc2Nr1dfkif1dTczINdXUFMNdRIfKNdeGDeNdSVDLqDVKIvqDaCFoaDUxxcqFKaDY7BuaDVFQJaDWLlp3ZQrwZtdT3ZXaDQI0Q6DaddYBBrSxHUQS6DXWBiddbgpB6DRdda+PD6DTAwH6DYAOJvCYGDQH1MGDU9daGDa9dRGDXaXFGDc4JNqDYTBhCoiqJHStYmDYDdbrwsDdamDVfZZmDasoNmDZgFNyQV4iU/ZWA0Ajdef4tkbKWDb8Qc15N/ZU39BQbH/ZVjdSCQY49Mg9DCZI2DUcFjXBJsLYj5PSzY45N3BbRVZLCPnTWwFXfRVcyqFDVE5DbJAvgLu5l6MDo9VJkagif2lQPtX44pAiZLwiLyCtPoAcClwdjlQWlZdAJptV09MKSfbFegsXnFU7FbxCeRUa7FSg0DiJRLUCbJRW1SpFVMmrI/FyxcAMOBLTMpUkMD2deeEg/RVunu0zUJ2be7CeTfBLdbJcEUU9JdfIDi4FGTbBLWjoIfldExBAVcNMIOPoq0L9eNF+neLZBzdgcgwda96D2OKSCEiJKr5Z94KLdZGgFlAPwcHGgL+DU/ZclbKUGmEIHmGPWGFvgSF5HgQKBDSNwDEdUpyp79XDNbC9WnzfDlOOeYCOCALT/zXWVeJRaTBUaVR1Ctw1dhLbOXLhLT2oMYMEEhVhzUS1Yy0PR9YxGsjgPhLTBLXOxeOuKpLcopT2oPiwk+dUHJVkxci0VGoFdLBi9UpLW3SLjvOSxVP5eZtHuYC5LdPgkaZTcaLMSDiJRA0BBLXpLcbvNBLS1lRJ3H5Ld4KicMVZLfAXjZLav5a/xSW1fkAAS1WvrJBLexEMFLXR9YTzWW1evVJEvBFwNZLatJe7JTKTC2SDiJRUAMAptC1VNUEEEF/jXNxcAMIVLRZLedZMigKLtZakVgtedBTgtbgWJ5LWLxQIZVg0Ge9DZLRDxWWttRYfz9d/oNNhepLaEhSVLSlLeVLb1LVVLbSRLm1lsVfVLT0xY1Lc5LRKeB4xVWZQ6xTiJRYAKdhf1LbbJXhLaVLQRLaZLcAMEtLaNLZFLZgDXVLd0xclXFzJTlRc1LQ9YM0JXwJe1LUOxaEdY3iSBprNLWOJVkdUeoNRYUNLfTOgOlVJkcbvDo9fCYudZNlLZsUFlJROJa/xTiJZvMAFLay1YNLbR9cNLQDLQhLWNLZMpRNLQdLRTJu5JSdLVpAP0dQatRdLZsUOvxdMtZPzVGJZ+Ja7xUjRZgDZcxRwJa5xSJRWTDfq6fzJWALbB1X/zfsVSfJRaVerJIdlOmpWqVQe0O1LXEVTYACyIDdLQUVdClH2VV9BSh4JFcF0Ve6QPspTvCUzmmHTONLYvJRjLUdLWfJRi9WvJQktdv9eJJT7xd0tRLRanzX0LePhbs0PJLbZGHtLQQhJNLYdLe5JZTLQr9Xc2H4DfJMRrLUWVKMLboQDmcAsDeGAbjvJQDbdlTr4fv1UxhSrLTDLUphcbLbYfuwDTbLUqQPtDfMDZRJEbLezBUqQH4DY9LQkDO6trjvJdDUQoI7LYMDdjLdLLWPBZdyHUBf6vr04br1KcSZt1V1KTzNSTLV6xePBQztSsxS6AMsOHR1F7wNAtNsQetpuUEcwKT6nEKqZztTM4LeOdIoH6xUjRfbLXc2Bn9drLQYPgMDQbLc7LUzLTv9Vejmnml4bF7LQsMc6UXjDdzLTr4UVoCK0WJCkrLR+JazJcvJd/zQHLb+JXjLfsxb0DTVJaLwPwJVLLT0LVXzQ5Xq5efJLePMCtTZXqdZLRjVZNVVjVUVoJ3qNptWMAHPLQSlQhzSMUrjvJw9bjvNs9ZXkMeoNZLQUBUhpTr4Un4SAONuLc7THHAT3BZwRVCMofTeZCFXkWjOEUOEeLcqyOWteXzZbLQjRTPBQDbGx5WFcsCJOB8FqLmMSUhvnQIFpLhzzUQtv9zec8GvtVERVeAChBX6KuYkO9ThPTmkAI14BAYauflcoIs9fH2nYkN9OOQDfVFOhdQBqQPYMwtfKzZXgNNDU6CYblTDDSmdb0LZKuFcLSOpcGdYuxZjMgImmB5Q4MCNDYj+ChYFelAMqKspFqhDvRVC2NuML0yXKNGH9fv9Te2oXlQOVfKzUYkN4pQcGJeeT1LMn9T0DWK1VJkW+8Ae1UFRT0mdMImQcKZtU8RcmRST+ZArYZRZvODaGCwICexW4EEdMBKkBWKoAUcniOB2sDGtoheYKtmOLUuCgAC4ZVoKKlRbvNZgcc/jMATADiF1wIFLSuaENTVeAHO5Z4RSOOeB8v51F84J4RiOVQy1bohJ3AK3RK2RZNDSsRUa1Z2Qi8zV6lZ0hAhzWulWydCOVThAPVNTXNUFitCzW5wPkxRIRf0rB/HEEhZrpE+dSx+ZTuHghQIYHD9OdABRgHX6s9TW6AH+1RLbKyOJNTfY7Fn3hrAEYoVhSBO9YzAN/JF7wMuhOvzaqbkjNWqSZISSaxT9ZTcSbqhLnJc/1bVLQQhK/bO/QeZ5fkDUphQeoGqheS9gqNd+QKJheUsBjrKyOGihTphZ6uGfLV91EJIEeLVeFGdRTTtZJLaTLZf1XxSU0SdwWShBcUxVTNYpLVJLbLLS+SREaSbaSALQHLXMtShdQvNQwtSihWsSSTBQXzcrFFHFMUTY5LfsrZxhTRSU7yccrV0rWjLVENQDLOcrWBjSihdYSTcrd/zQmuAqNbuAEfLRctUVQHMrRKAAoLXdUUTwn52C9wD4APQqBCZeJrAb7r3LWvzQjNY0rTYRU8+Rf2GjNRirYh2FB+XE0E4NBNDVaMqgzWuQP9tF/zSLte9taWdRB0PCrZBjS8wD0OPkrYeLYUrUsrZGRecLU8rVqhPW+cFqdsrb8LbsRQeoAA1YItTSOMItQghgoGudAMK6nHicaTtH0nExAJJH4FYwuK5DIEFZpQDZ4Y45PShdkTBrTTBddrTfBddQYH8JGmTLErBO9a/LQaxW3SAlkMmdS9tQstdtDYGJWc0Kjye8eV7ONhdSDBfNyUv9XCcAyiL9tY1hAu4pKremzRRdaPLSirWnzWQrQG9UVySpRRtyWyTXUDS2VfdRZWdd6xdsxb6xR8DbRdVjDXYJSarc7yZjOBTLZQsLarbNlZDLXsrWsrdJLajyZ4accmXUODTySALcNpDphYP7G1zTQqVDAC0GoHBtwlEbzZzRRQxWnBQB1T89enFBQtaB1V29R8GhdlXgiSl2nXOvWJCV4K6RUytgyRN7pvVoIQ7KAqgTYAbkUG8BTNSICo3sCGRcmddqrdNLVdBa5LMmdWQnIJtan+UgYM7zWvFHpwPRlUEDfnQITBe0Zf8rWSrb/zbHLcHLa8qTGuFGRcW2dVwAXLeZYC80q4NaAGqNhK5FBNhMBahHifXYAthP49BvpaVeHEtF6VMPuHx1FyUfZTHqhUa0glwWnkXgHDnKqPLU5LT3LRi9XKaZjLRMxYvNWTQevpE22lXNgzfqLqSPLa/1b+rdaxRi9S51ULLZ+xUEDQBrTQSnHAZzJlsIEyVA8rR8rcNyNIdGrLSIQe3nChNfBrcsSohrdYAMhrT7gBvZjwtc3LSjCd2djVVDwhe7Di2QMILU+1KNAE+ioE0pj+GEDH9RrCFSiAc41U6NeR1JOVf6GJLCFQLfPBYa7ODgQSggW6pdOvz9MMyI45LcdXfLf9Be0LWcdJ0LbqyVgEcKvBpziRkeXzfWVePLVNjh0aTrhF0aTqNcYRSByfBxn9hTMzYZXh+yZGgn9QEn1o+DROjka9WZ1fprbQyY1yQ7zEZrXpIfu5GZdWZrYMaVC2CKWVZrTH4bHRCCkQP5CWhWWWgCDVZ0KwLZxlTXPlgyEqxTknHX6pDDZP9S3tVY2M2FN95CaNZyhn+mgKvAN1ZUNa0+JfVJCrbjOlqLrDULphHtkZyhh4cSlrfXQKThXUSVpLplrWiAJejZSFbrlbf9fzdT3bl89VWjptvjpBtXlUwEYaJOQgYNaKAiEn8KWrXaRS+OpCvABnr4ZdE6V6nsVNYqxe3UP3he4TSyTK1rLCYgpMK6jiKyIozPNIKMkgTEPyFWVrXWjvJSsTYF3MCxkEQtR2NY1iAeFDUtaBZZAnm0zTFMjfBQsNLcNUSKS0LIa9mLvH6NQ9wAo9VKAXwHJa0l7mtN9Z4OrPFWyLHwHIxoD36uBANauh3IgeFPYABlRoq0JIjjZjh+rSyrVLFDXqfJLb3LRcLTTBTXqdTqRVmlTVCFQK6INerRe8gUrVFFH+jWcNVPhd9rRsxc6xT/ieAKncOAQgCCOEpSBQ+TKeeHLVYwLurZBrWhrWPLbDrQHSfDrX9yEjrfXeajreyYoI6Rk2Y+fGfqXx7Gn4P/ORgaTL+rUmWgyNI2BjrQ/xUtAAsrdncrfNW1rQcGYqQfzLUmhb0tfSyY6gMrte5fEYdsLtX+rWTDWsxEsZeZtEzrZeAPnTbdLQ9YJkteONUSpqLNR3LdjrfTtS6xYztTNuEqQB8LbsDWeuBztTL4cO+QzrRipVsVb0rfewF7wArcFgyOLrfHTVFFKzrS8NUwtZLLeBrUHLU4rB/SfvGG17HMQNTzGXQAbUDrLAuqILrZjrZcrVWhR/NT2xdHLWJRTDrUrrXDrSrrfMLdYdhrrV/JF8Lb/afkDfKyRsgJXSUXALrrRlWLfaqDrfSrebrZsUC3NW/yNbrUxhQbrUOaUsLaJaSztWHrSv5ePBdHrc/qXHrR7rQ/xQHLYgLNhtc/uLvkHMACYECaUJ8DeSrVWhd95GlrQQtEWdYCDUBjf2hU3rW21FXNI/zcjkgTAIrAKXrSBuIdQn7rQYRRXrcHKeCQAAcvXrV7rR3ralrfogLwOCTDT8rY3rTPrYWjUxdScVfwQjgQP3rRaVV5oIVQMbwlGoF2xEHzJzrSPrZMlnOrQ3rf2hdYeIOpQVrd8FRadcZReEkvZGBvrf3MfDrXLDPZsHfOCCYTPBQQ9Rb9sfLZZ5vmCl7osFrY5JeUoJqxfepBltQfSBFrYLyUMxjFrWQtfFrRCrVlxIoLclreCODPrYOpUhvnlrdAvIWjTwfogbbm/PNFVcFWqYM2rXwoiAHCZYJ+dQBqaixR3ImEoS/LdDLW/LYR1epranOLWddohY+dfGrUmheOrX8hdOrVulJEyJPre3rZRGt95LK7MurX+rVsVTknGlTUL8mNtdRsPPPFY2MZRMAbcFKVaTIlrU44CGpKgbc3rRjBZIbbPrYx0AjRBTqRfrdauD3GAwbeOhTcYIKrW0nFLNbsPrtKHULUrSMR1pncPlTMsrYprT9repRWirfVFLV+eYLdk5mM4S8aSiaR36Z1QWyAfXdJyrXurTv1Wv4HHifXKPrzYPVnO1W0tQfxSZFWu5CvLem0PepNfpRC4q+lbY3iJZSDKcj/JJZSh1hufPJZRB4IpZTmlMg+GjUe8zW8jCdQJ96b+dVSmaTAGbwUmILzxBF4VSmQ34AgxUHwE4RagTWLvChNYBVGBAIwRd/WMzACuDI0dSnRJGAFz5Yh4D2oKrcIBjf6pew1fsUT0UHXZigakEDSUbQSvH0zVSIcvsL61YVuFQ1R0bew1QYRsqJZUbU1UP0bUUbTIJZ0bYBUJUbULzTq1ThLXq1bF5DdZWkwOFZQMbYvNVMbbRoOwbeK0cGTeoTeqTB1OIz+PMWgtGFpwmIQAIYbCYruTQQhKLiHmWCrsCCzdojGhdc0bXaEODob5oLPBacQjVwOcbVjgIMbXdII2vpsbdqtVMbY2viNsaFLGe0Iz+KsbcUbew1S4ydxIWb+F6MEpVcuJQIYa48LcbXdICMIMooaESuhJB+LdyCZMpacQqxVSZTYD0ECbZMbew1fCbdjlZUbfEhf0bfvcvwMB9VZLFlC0Di3idwZ2kHFZX21TRLe88J+3Nl6ObJRmfMiba8zazUW+zYNWBMbU0bXdILiALQgE3IH8AAbUEtRjflczgEAFOybRgrew1WTQe3BbcVIVWK3GLllA8zXHJdCbcG9P+TWxraybZgscWlet4aWlfFxI0bSKbcrJARTfOTXzwBcEKLrZOVcCbVqbQSAIRTZztjxKb7pVvSu0bWsbc0bdqbaVyjF3nyPuUxBYTTKxHKbcKbeGbOw1eITUicEquOWwquAmVwDkNvixZDVaoLfuLX4bdbyPEAKtTe+wdfpS83rzxLgxf++tyZsaVbSWo8rYmrbLLf9aWcIIDaScrVBrYVRTBrUUNhdLNOdmhnKy9VjOMc8Wz8QjRFaAB+ljXtJbwJQsKkvsZnMWbdrtKWbYhgIIQtpwB0smYDRTBah1fB1e6rTJ2SGBT8noXQNh2UuvihBSKVOOQfoJdggAsyRtTTS9CGbZXqfoxGQDdZBbcdfJAJihb5YY4bcLLZPzfVFIx1YcdTX2W5GSaUI7lMubTItYDFY0NbEtTutKaRfSyWCRNcYOs9UTVU8dem0PIrfPzYorUYOd5KRZuMPrbTte9ragyGZ2SALXubfPoMD5DjTM1nCWbfMMIBYpWbZoCKCrTLytBdNaOeAuHDyODbDPgE6suRTRCLWdjS4zc3jdSLdPVQELTsTUELS7tfSLaV9axTZFjexTYPjZxTeNFDhXKPjfELUnNVsjX9jSkLTPjUBbWSLZ4OhSLUSdZB9XSLWyLTSdZbDoNZsyLc8jSntfCLqCTWOTZVjZhVZdZLE/KEEl/rUHjL+bdTysJrftBBT9UTbBfVTLyiy1D+1RSCuhjqKVdoAOxuMprfDIHqXAfQA/OTwQv51aSAYZXvKzWZ1UurTObbBrWsbbcIJzIJsgMhQfflN0LV7eWDOD+sj+skP1hu5a3rWguMV5NcoN+bOvHH4RbOrPJbYxdYpbc5hDoMa0QGxXDpoB3LUOrRmbZRiDdYdTlOPhDbRVSkKhnFLNebENobSDNScLUs5BHqQALDKrd39pbzVAbVCrVzVXP7Mh2hc8vazZxVfAfFdwV7Wo8xHHdYpfIELTc9RkJSZDSY3pC5JEUQxkWSyvLxtLjUH8p4FIzxgpDWATUXRaZDZQEpB1ZJjnMCGDrdh8l69aZCj69ZpQK6eJaTBrie66qcrV8rQstcQMon4Ou9UrOtl2snihaVaNxMIZAHLTaiNgtRmbb1bd4jl0tQmrTLLaQraYbTCavIpBFoDBKhJENNbe+rhHqZIRSbrTv1YCOFLNa5FB0tJ4bZP9eBFZS0o5JcObTpta7PGQVGR4Ab7k2sRkZW7SZxZcCFSkbdKdSUQFSmY7MArrah1VwrTQDSgrWArV4Rf6tL59bvrMh1XWVQubfsVWH2bZ2TZ1DvBSjNeubUqAPOTafmTvNfNJTaPBTsC2JMyCeqlMTNbMVkV6TAREVINKKrklM9obs0NWAvbODWpoepBb8lMHuMYL+Tao2KMZXpzCkbfkJay6ODKE4rZcxb59eQuDOTYl9cNRKo2KE5mzeSSAWyAW76qGbcZhMd0MWqZtTVfMLZ5btTZTNdotVMqjb6akba9qQebSn9eIrXHItKteArUp9f1LF5RdIrfuda/kAWXFebasreNbVqhAH6WxhR9bf7rX/zZkVUPzKpoaJCdDrQmbTTBQrbcmqXMRWLLRWhdWyWbQK9bTzbb7rWF1T9gPWbaNpNeukYrei9VjrU2bQ0rRciDYRa2bQ52S+ZaflB2bQt2V2bd+bD2bRKwX2bejNc46cIdntbWMAKObS4DTcdRiKVZbQpLQcRV9bZf1T9bWubf9bSzNeubZKClubaJqDubQwrQ+bS5sAZbT5RRiKVebbtRVrbVqhHebZzNZtMH7JQKiGUXJobWGfu4bYt1ktBdKJfNhaUJDY/GtOspJaeLVoSo0xdWVWakQAjVXbdFDUQrWPLSx1ai2ambWhrTaQILJOdsUSKcbrezJaurSQrYPxVN0UOhecdaqnK/reSlNaVcTLQcRT+rRmbal1TnjQpbVnbf1cGDnOvJd0rf1cD+1BBrWXrRi9bsANvbebLX0RTc9qxwrCOMDzPrbSRtNc2bA1USpqhraPLXvbU5bb3Lb+aPvbYvbRfbTY/GBrQcRQ/bRmbbuzXsVH7JbPbXdBRTBbfbWrLffbf3LW7xShNTnjVODRnrYfbUA7bsRQRoTVjOhEeEYQWkLoTd/bQrrf/bUrbRA7Y/bUEDTnjcuDeA7e9xe/be5JdA7WdarA7b5vue7Jmod/bW7deQLaKVcg7SvzW/bY3hMfbUM2KfbfjLTIJTnjcwoegLVsPKE4Q5bSQbTqrV+rXObf1cJXzUnzXWVUfbXs4CfbYPbcA7Qw7Rfber2akta9rXZxRQ7UPbXw7ZA7ULrSI7f02bw/K/bag7RmbVsPH7Jdw4e3LRvbY5bQA7RvbS0MPvbeHbco7e5JRVDRI7W/bbI7XDYCRoXxzi3LUg7Tw7bsrSY7fvbUb9eTRoA7fvbeY7ZkUZY7To7VI7Zw7eQ7aY7UpbSA7RfbWA7SvbQUUF47ZsoYe7IakdC2BY7d1LW47dY7dI7bY7Qvbeg7RfbZg7f47Tg7TPBeY7bUWKE7S47c3LQdpCC4mGbBE7Xo7Y47TE7YvNTnjZ0pQk7YE7ZItb0JTcofGoSzUE4iE54QUkYQgAAAA1LlTcOHvUXzK2XgAuSBjkSotmtrW94aKKyf217wx5U28wVZq3QwD9LLt2107XjwVn9Wj8kEID+eXJmAavl57k4+meSlZy3BMkbIBNKkkU2m5Zt1Ty/YP66MtQDoSHypmUkM5Az8xt1TdRQTYRoIjV/Q9WQh2kBIAx4D61kl0BeQBlICG1DhnL+BY+Wk8ADnO1M7DiQB5QktCTVACzgCG8JvZIfiTDnCO/V1AKIJheaD7UI/paSQFtZwgyS8AD/2xAu0SlYIJjeEhi5xWNiocSEQDmjjsnJu6WeNUUDDeEh4zHquCNHSIu3vnGickEIAmgptw2lURrthsYAokoBFyyZAlwhwTbmjhIgqjYTDSjYkSMtTD2A1JVt1QtOBJAkbyzva5xLQIg38i2Vi0og062XCi19EGhXWrKZG2WE+TXixvS3ka2Sa4W2V/yYYfFa6GBESsjycvUCHhbQmGAFpXWUg3O2WZXXAcBai0e2VrEGMg2H6DMg36i0qyzzJwlXXmrHSIyE+Qh2U8g3yNAR2X8g3nEHR2V2i1x2W3EGOi3ig3YjiSg2ui3v0oQAixNI5kTdXXei2Kg380b52Uqg1DXVqg02crhkqIY4xg3wrIRi2SmpRi20CrPkCdESN2Umg2LXVmg2YTwWg0kH5Wg0FEE3iHd2V/OTbXVZi2qsqOg0HXX5i2j2WFi1ug3NEHnXWs2DtEH0SATcxz2W3XX9EHL2VBg2PXWX0U4kGNi1W8Ati2fXV72VekBxg1y1X/XUn2WE40F4Epg1uBXpg3g3UckFEGjZg15g3BiRw3XyuCC4BkBC2u3v2XqJSf2Xlg1ggyVg1bXzVg3XV4vkwri243XgkEbi2G8DW+LWdw03DJYpyJJk1w9fYCpU4Iif3Qru0wiV3U3vGxUUGPAoru0orpmSSTTUpL6yIX7u0LAr5AB7u2LM0ByrHgBnu3Hu0Xu1xrQ9fZKFib56+pH6rUru1NI68vL+rYY5Ivu1bUres2Hu2fu2Bsq8vKEiqACJWNifsprerBYYxlj6rWJRy8IjPu2yIXAe3TtTru3Hu14xWRDX8+CNo2ExXcDyR26F/4zF4E+HRb6PV4//ato0KQ14hWdo3UxUhbUcXIHJSNMUiPQZbVc1WTYSZXIrhDvg1mSRYCTRyES3W/g3cIrgfD97XMhV0jCFYBchXshWQRX5YbnTU4bHqHVhuYPeT9eh8e2RloiRV8hUUqQLAoOfbQe2Ce0ce1TE17U0lsDK3WOaSMujuETiS2HjU2eAfFKrTWAmZDrWyIU5DZo8Yru3QzzqgTbxBob7VuibpXAgqAe3Z0ELRgAe0ru2nQCZXI04Dvg3kZB0e257A/g06+X6I3FW0hxjgfAKYhiu7apGnu2me1XNImshX2QgQ0Ke3BiTgQ3MQp+sDDo2BrUme26e29BAIUDXu2CG3/cRcjV8rHB5g2eCZXLMxozInCfB0e0pNWOe3qiQxYiVa0EIRyoBue1GcrgIiKSw8nQSe1Ae1OCTdUAheTRTYiS1CaBxhjKe2UkbI8H+OBKjVrbWBRUbbVHhX8TWymKnWoFRQpo0XhUwW1Y2a/TUOhUQXSmdJ7u0Ie0xTUNo0xDUoe1ZExJTUYe0UX5Ye1WO5+bVrrXpTWBbWbrXdo3KahleYsKwjRUJjVyjXoY2BrUnzi6e2PoAWe0LbUVTy/rUkkKf9y9Qzvg2KEB0e0bYIZe2JoCISjIWwkij+eh8KrFe2Ehos/zXhrLiQm2SVe1iuj9EA1e01sa/hVqe3YbAkCBO1Jw8Bae1W9y9tobmiJbUfJoutbKpCWe3LOjvWTRe0MJCN4CZXIsCQzIlrRh0e2bpWXe3NxhKiSzvCQe1PrAvu39eh8M4ye3ibTye2P2UaRqjsDHe2D/AzIl2e1EkEOe2cS1Oe3Ze2ue0/GDue3whiee17e1Ae39ei+e3AQ0E+1ji1Be3MZwhe2be2srXbe0LbV6vBRe3ee17jAlNq2RULhW1ECJe1+Dzvg2pe1EkHpe1U+2Ze18u4Y+0HUG7u3Qe1OCT962tAzs+1hPjVe3MQoTBiXCwvxClqhcTWEbUIxWHhUkbUoxVte3m9gBaCde0YxX32y9e27HT9e3hFi6TiQEykQCGhpgfQtcUbS3AyVKVXMhWIS00NQ7kStZ7WQCdFXQe2dbp8hX07xn8RB8QGbAFtUeTqrlZcsWnEKe+0BiSge27kD6rWa3zOyKi4iVZwuwj/5HHjRrepckTnu2y/pwe1WNhuuCSBXks1Zc2I5T5c3CnGBUHK+1Ae1Ds2we1++1Hu3l+3jNpwxRQe01+1tVCG9GC+0vu1Ds2Nc0c1znnJDe1vLVIe2je0zfaKboTe2QIGgAq4e2eQ3kxWSo1ZDXBbWtmHlApS6EMJCP9yTOSFxoQuKQXhTzjfADg2IzxGUe3v9wShX2EC0e14TUWjUEpSo+0Ko37GRKo3+ZY0+3KmIkigBJFi2BuPhi2CgIgQI2Gbw8JhSdGYOWuxTUJpcoWAUFsxUwjVZUAm2S0iWNdBL/ZgFzegDdLgclr8rKbFhtkCkpoT4CU7gKChAB1NCDmfUTEqA/5N9AIog0BYWfXXf7q2JGqbM+DHRWRoBiLauH4xOStTUqxV9DXTsGpdU0yBchVIa1aADBqAkuTJk4lO3G9K2Tjz4q6n6CxDkB3PkhohJMuUvxANsC35pBs09xgFeTJMglNp8cAR7DtbU3DEXrgjRVMxUvxDCxV2RWAbWWrVeo0WoqjfQyxWKp7/rUkIBixEfe3CXxkTW5ghiwRBZrc+1ZbXThUEASbsCwxURrVNe3G+1802te3VxDDF5OF7qNBUY1QOa7E0oUw2+0RwzE94dLLWlYw+2rwqFOxfaJq7RaKAybAwqUrdBoHVWB0a3blZWj1AkM0DXpkM3A5annSeQ31HbR+1IEROhxmB3ee0Q8ZB+2TpXJMVFQ3HjTE8yVZQ/NCvVKO/ysNJ9ImMu2+XUCi0L2UBXUImRBXXsu1ii1TkzYg2RXV8u2XMzXmCyi1UiiQqD2zyKi2ZfV22Vjro6EhSu0DyBUg3kEA0g3yu0dIE6i3e2V6i198QGi3qu3sg1rgxB2Xau3cg0lUCWi0syLWi0Cg21XVXEENXWmu0wUotXVSg0yg35B0xAr2u35hx9XUY+SmwwBi0dBRuu2NaSag1hi3eu0P5WEaoBu0ohD+u0EIlGg1dcILXWn2Whu39i3Ji1uCGpi0bXV1gy2g1kF72g0Ju05i1Og3Ju1IMCpu0T2Uli2Zu3eg05u3XXXMu0Bg0Fu21i1Fu3PXWTYSlu3vXXfPFeu1d7bVu2pabH2VJg29i2Nu2X2Vg3WDi0E2DDi3Q3WBCSw3UFg3du2Ti0vuy/5wzi2o3XDu0Li2AkHPV61g2AOUvrENg078L+NDJzxFUDKXrVDatHYJrLX1Qr3QrOLPtx7i3WtVIU00S0382diQdE1tkIb0XPtwHi3rGV+NU0S33k2diT/VH0h1kh2pZUSvTmU0sh05ZWseW1w0x+LfAC4h5MYS5JSFzxr6xMYSEqRXs2m0xXs1skSQQoDwEHi13M2RyUX168VXWhGfKEChWg/g6sgiSbkfRYC1xzi75oWi7G6GPmiS+2I+2sS0aNYMe06+WrmAB4lkASPSBmKAZ5C4+2xkDutwNYSakBXbCftylwC8I12gA1vRGUp0MDiyS9WbyGCeh2d2ziyT9QI2QRuh1Zi4EvAUIndrohh3Xhp+CD+h2CyTiyTiipmHWwGRy9X8Kw0S3rNAV4am1VuA4Z0QKIABoATIAmzgxh3eh2eok0PQV7CnS4CHW2cDgHFvvB2h1dZWgvDacC/7hCcJRcAcnQ9E3MNUVh111VVh1GvQ1h0oD6uZDqUwqIE+CD3gA+CDQYyzsgkgDV7C5CAKvDJBCEDBiAA8MDHNZ1h0DyC8z5M0CDJGVSSgvCVh2NdC8z5th3sS1J5UKIAcHCTh1eZANh2zh3/vBNh2U4Ath2fYDLh3FNytA4JYDlh3zh3Nh2NdBEZF+ZC16bMEhkFAOZA6qG3Sy7h3WhGNpRZuEk4AjjCnh32h1AsAXh1pTw1h1imjLiQnxhve1pMKSB3nTBeM3/Q3G1qvWTe6CoQorday6V2aU7nEraJ7nEgzFgzEq6XHnHQzFHaIa6WnaJa6UXaI66V+aUJaWVaKG6XS3LG6Xo6IvnGQCIRaVKaWO6U/Yo26VA6J26WW6VkR1cHRAXG8HSu6XUR2ZaUO/Je6W5aWY6L5aVwXGFaVh6VIXGlaW8zEB6VczER6WU6J1aXmHSx6WSzHx6UyzEzxWVY5dSqxLJGqSUzLA3JQEQ0NhCsDf2KVfjtNI4A6W1TfmzQR1LaKwR0K6WOaUHnHOaXIR1uaWoR1wzFeaWYR0N4TYR1wu24R0e6X4R3BaUm6U/nFER2EHT5nGMR0c6VbMQUR3EzFUR2RaWWR3qYpUXYMR3uR00R1/aIsR3EzE+6WXiocR3+6VFaWB6XIXEh6UVaUCzHh6U1aWizHCR14XFSzEtaWNXqerjLYRlxpRRrXQATtysRAegqV3ga/p/UAibJekD1o3d+3xTXGGSuhJD+0BbWj+3ArXj+3/hWUnojRUkuinA6PJIwkQIhYPmYtYRNXCgRU225Y1D56DHigxcaVhWm5gDpg9a6a7HEiSfYTJzwVhXQjXsB3tRV/rWlbUAbXwY0CB3Pkgl8A7gBbVXX4TYETgTUUEqxjWrd7+2iSR1GDxwbXx4CzbX5ErP+2jR37RWgxUbxC3Kh0Qi2AYvxCyjXbo2he1bhVA+1EcCcTVwxWG+08TXNe0m+0xrWymLkbWfTXBjaYxWZo2WxWlXh5R270gFR3zrVPhXoqalR3ze3lR1MSwgrUT+2UnqbzC7MBRRqEAo38zyB0Bo3sRUAy2rJovTV3R1vTUPR0fTWJU3UY0bAaHbUMY2qlDBgqd+1zrWebWExUYOaAx3to1BbXSo1Ee07rVARV4lCe/ytR1k+7VugTty7MAZR0pjXQCyEiAayyrLC+vIyYATtwKo3IrWDo2JjW/e1tDz7WoZR1i4Z/rVDbUKB3sRVXR2IcgkY3rbXqB3wHypo2Yx24NF/TWqlB8dzRTVd+1/R1Co0fiIlR0pTVpDVlR0do1j+1kx1gx0Ux3YbDesC2Dzqo0XDC0x3TFi7ty7MAegpMx2NR1gdVtohNpDkwphgC7txcx3re3CjWPbAkCC7tz7WoegpCx0ErVoY2ix2XR3qgT6+23R2kY2Jo2u8La9zvR30Y2fR1aLjfR174C/R0Ex1fLWEh2/LWax3+bVAx06x0VR16x1VR1uuoawBGs2ERTX+3nJi3+07vS8LoR7DSmokuho/ImPVBPJG9qQoCg+3KtQL+3jziljGtvRzAhZhD+o0srUTQaWrT4sAIbD2dRh7AWRW1DySx1qB3EbVox1iTUbzzhx3lRzYx1XCzRx38o0je1FR0Lu0TTw30rEx3OQwbrUEe1brWkqaBJSxJQjCCwxCKH6DtJZhBrx1GYbDR2PbDFx3TeJTwAwo3NpEETo6sjVuhlzqFQCtsGMLbYgC4LYhdGuxTtAxB6i+x1wx1bhUrdZFhT7Wo9x1EbUGxWhx1mxULHJYx2Rx1Wspks2xwnGGTTM2nYXdRyp6hKkz09LP/YMA5kfCnPLRRpgJ3lACveqfgAXvwMdRf2DPDotI6KKVOiKoE1x+JeBXEGx2cDtRSZIJTK17mCs8WEQAyFCMdR7SXoJ121aXWTS/U4J0obSo9RNhAzqQ2cokcCxx3Ie29+3hhU8ho2tJax0px2kx1do0yo06Lpr+bRHZtxK2PQZbW9DVqlDUx3XrUOW7Vuimaz1ThGkz1ThIrW1R3WPrgIkx5x4x0Co09+3Co1ZEzKMWpTVto1zx0Le0Lx1Le1P7p+Fq8VW2N46AzQrVQTXom6fnRRiB7vaSLUdj4cLVcaRELJNfYKgDECFdDHojUlrSisXZXpa9aH7X6fV9wDxtgK4BBAEoQUNYlmIDkSy/rUGc6ZVpfLbNhUACjbxB8rEyd4ORXK7qAzRBJ0UTVIDpvx1G+19x3RrVmhXqd6W+1mxVDx0akbSTVasw3Woix2Px0TQbhe0LbW8gTN+0LbVQoB/xDxJ33R3Sx3VS1de3RVU/TUfR2ZJ1MhD0J35R2Ie2qx1No1mDZvGKze3io2aJ3Ax3/wigx0Zx08J2RZJECTovBkJ32iz7rXAkq2o2jLqJaC3rV0uArx0qHANx1T+5KTQXR15J3hGVqcTGUStx31AYgiClBZ8WKSeS1maKH4eFbaCxh7AbJ3SWJbJ0yYZGYacJKvx1Ix3Bx2ox0yx1VJ0Ror7bVUnpGB31wzZo2MsqKJ0Tx0LrUoe2JTU4HU3QDtJ0aJ2WYFArUgx2VR3brXLe0zCyIIj4J0D5qsjjg2LUJQtFQed7IQBq6QaVSRQ4Ko2QjV6RULJ3P+w5VqorWWgC1EC/Hxb+1+47HRXcIpEUoC2L6EjwQYh8ij1AkMDVJYFW7NhVtsgXObh9qJRVNJ1xx0qJ2vGL/lIf2FfJ14e2/J3dJ3/J0Vno1R1SzxFUqtR0S6pqmIQ4FvPwKo0j5gH+2ux1aokKEBhyAwcKAjV2o3qWqg+3/fwxJG9bU8+2GRU3M319FP3gFJAvMLD7B/xCIjx4CTeha3RXFwBwADP+32EDOkLZ0S0B0HRV9hVjGKLYTlbXxMXhiFmoCv+g5s6PwE38yVhW2xD7yBdkjip1EcAErXWi5qmKdXGbkiWH4Px3Nx3BqAcIWmeRuvgHvgd7VC/I3GCiB1lJ0ox0VJ2fx0Yx187p0Y3Dx2fR0lNoEZr2Ihup3IJ1Z0QR3A121Nx1YbWps1Kp2Bp35elJXDoPif5RntSxo2Ne3vx2bbURp36B00Y23J0/x11J3LIANJ0/R3Up1MJ3Co3vJ3oe2Mp3D+0Xh6px1/J3px0Ap26J1Cp2FQQiJ3v9opnqg+1pZWGebUME1gaEp2EJAuNiZObOLLqe1kZr6e0WjUUopuiiasIrR395iCp1Uno7o0Opaw5hvJB+44fcHNixixU6p27RUKThwvJjJ0HJAzygWrXYp1ECQ9bVGDz8EZfqAXvzwUayp1+x0t0gyERqwBRYTc5yPwFQJw8B2Fp0JJ0fx2vR2Rp1dqLW+21J0Kx3DYTVp0xx21p3KJ1Tx1aDYAApsJ3Jx0kx2Le3cJ2dp0c0w75rcTzGJ1EcHSQIV5Ve3XWJ3kkTPJ2FR2vJ34EQGBw1uSJDWh9qzx0/J3zx26x1cJ3kx19J3BRq/hXnKJNTFQERY1Yk1YBfoocREADcDh6kEoQXJzzAnatXaEICCjQ51x3gUGQmLCQqGw2YFHowrgCiuxi6zdHzfmyFx3FbCybq4FGSLWvIBdgAaYAiQnqgTNsB8FBD95WjU6ir6mQDoR7+3cx3MxXejWMRWyERawxk4rZJ37oAVS5aeaVhVHBqhqyiAAaeAvjopH5zuRjehW7hf+1L+3nwC+RWlKiiMjHRUlSySvSb3LjzpX+2jyTnx0QNE3x2X7hWmQdhESADN4JHwAgB3+Z1NjZGUqooQlrRDpBjVJjyD2aKNdDgB3+7Cph2RMQ+rC3YQrihwB1QB29pIwB1eHVxZ2diQJZ3jiROLjJZ3HySVhUCp2ZugAJBXNK20yxJ25uiAxWGx17R2bsC6IxE3QOF7UrV9RUoUbjuY1j4erUbR3qo0qB3xo2yjKXJ1bbWJ6IhhElp2zJrde2THr3J1qeCnoKyZ1yB0rp3BqB8+2CG0WBxFJ2CG1dx3tdqhp0Jo2dZ29Z2WvZlp1MIV3J2/p19e13KpRjg1E2MVUBGDcbIhOFmVLUmQ3JmtsA9nWiADVNXXSW2TDRRogR1/nrnyaonLmMDKx34x11p3qx17FJctLsJ2QZ3aJ3QZ0THoTAAfCGYAy7Shw6RQXgl8o2+GEQDoFyGQbzJ1yp2fUTvpUzyVu5Y36jzZ0dZ3hp2fp2lp1yx2xRWVp2eSD3Z1KJ2Tx12+Imfr4Z01BKEZ1px3EZ36x3Kahre1BEKf6S/hU8nZphV5kFlsCSLVNTFC6UGzHEzFjr47cl02WYp1jLq4rUR7C9GS+olkYi1Dw5J3ep1rjVsuDfR4VWwLhXoDQeo3K7qSxU+o2+hXobUDDXzq1v6Qh0C2kDlIakVJGTKz2JZjWHJAw51GhWdZ1hRWtV49Z3w519Z2I52DZ23hWqmAAZ3jx0YZ3/R3FR1exxNp3ax2cJ2Ee3450wZ01R2wBgmx1R47M51k53UNVy9lYwDs50YRU+HGcjUrR1qZ39DWEHFyGpTgnv0D7M2qSBuSDWoJPTWjZ1Ip1PAH4J1upTsHTdLh2Z3HQRK536xXFp0a53LZ1a53rZ22+13Kr6aD4xwBgF74AAOoxUppMp7MCvfRoAa1HHFiBl0AUWKA6XNZ2M+E/gqO/xOMKxB3FTHrACIg15u262UpB0G2Wzs1Yg3cu0RXW8u1Si0xXW5B1Jyze0THipiu3t6rbQkUg3lB0yu1VB3LEE1B0nC5Ku0A6T1B1bEFqu1p6zNB1lXVmi1GHYdB28g2Gi01XVGu19B0ig0J2WDB3Oi2tXWbtgjB1d51Z2XHA4TB2+i1TB3Ou3NeTDsCuu0wGQl2XMvwLB3DkITXXLB1+u2zXWbB1HCBxi0hu0Ji1hu1Ji0Ru0pi3Wg3h1wnB1ug2Tg6GQCJu00frD2VHXU3B05i13B1eg2XXXli3dEG1501i18AB1i3Fu0vXXJkhjXXfB1GAG/B2z2o5hGJWwAh04CRAh1Vbx9i1Nu3wOQAH432WckHtu0wh2TuSFg0nBZdrxIh1Du3p87NeSLi2Y3V4kzY3WYh1ri1Iox5gla9Jdrw950CPKUU20U3UU2wi2uXXuM0Ii2eM0Fk0F5A+M2a400gDa43IW2BM3jC4Enw8U34i0m43bI2eKS7I06vXpY0SAB3JWgSwtk1xM2vE25C1AVXFC3nJWFC20W2Q40ykWZM1hyDZM1ZC0si2VC0+M0ci1YVXTgC/Ho2crMJ3vHJAJ33U0y+qFXaX1YtFSoiQtkpeQIiBox1RuF1iAAc4zrWy3O1qXANHjLGUg/DIrq3u0xJoDkBjABgrb1UqKZUqx00p0fiJY50ZDU451tp14529J2W527rVsxVcE6FclchXfFqnu0ru32B1YIUtVRJcn80nWB3OB3Gm3s02kM2S03kM2QeKCG15F2RCQFF1OB0A+1WNhTCQH7BIrUACii+2ETVTR2eo1VbUWIU1bWzbXkxRVF1nyKOB02B169FBZUXM1OKwRfX4Y2qhVzbW/rVApDpF39F33gh2B01FW9F29KjS6KFF3AtXFF3i02lF0u03lF1Ek2tpKickZF1kXorHCh+0MUDh+0EzpY2LG7Jkk2ZyVhB2FID6rUJIX/bIBx1vp3lJ2JJ1dZ3EmK7bVg1gDMy+F0XO0wqWo50vJ2G51Tx3bzYTe0m50cJ1QZ0kZ0e2q7uRHmADFzVABcrErR0Do1VCDAiEZ9RquV1CZBGDkHGSjGvO3IkQfiQmx0bYLWM2x5LryEWFYMoBJdJnO1+F0Mzw9FBGPLC8aCh3bvK4h54l0XO1Zp1iuKlUSRGZPhIodSJ7zQ9bmlg4aBhyDQyVmXVD9YBh0sugkoA0PQ8HVZ9qR17JZUAc2RMQMdKbpjlaTEs2YCoRqTt7C50FGRVnkCN5ibhA0e2mh07+1y+1Xe1Me0/GBWaxvF3+F2El2TbpSe12lSpoB3eIheTmFgAR1Ke0YdGOlShF09ISPzYqdXYbDpEDoXaql2OBLhZRmtRKB0b9x3F1hp0PF1LZ2LQmhZq2hURx2Vp0u6pD0AXO0FTgpZnvhz+bpEAji3UtFQgMU52Sj3Szfj3o6O5QW8Ar4pxiqf8D+9ByKjj3zhZRY6C8Iih9GZvjy7hsviF53qaALF0ktBfaRjM2l3Lkl1tVw2l3+wHXhprep5l1s1ZTiCL7b+l3QCVQlLnLQF2Shl3T+xR9bF0rCKGooQyALnMSxl2i3jxl3tRSJl1UJ38+oWdq6dB2gHKBCTLikMlygo7EkbyB4bhutVVM34ZQ7F0zF0D03y03BtUBF2d7Vd3hrvUJpQ7F1+S5sgW7JoFpYll0/kAFl1aUFFl1UwKRCTbQwax3vGo0sw+Kre01KWENFTF+35/FZkYDVx31Sn4L4J0p1Fgp13fCAvYTzRw5T6iDkHSAdGv5HhZT62TVNQqNRFMSvl3ECTsHSaHKiMQk21bmDObC1Nisjh/sJroDi9aPjHVNRw5S6kBJ4pnrjoZ3NJ1je0CkTqJ1Mp3xF0sp3tp0pfL4iBWl0/kBBZVAu0ol3s83pF0rF2zdRO03rF1j02kij6/DnJ1Sx1Ol3x50ul3pJ0BsYbZ3xtFPl3roAiHRJMmdzjLeTpF1z7rO8liPGOlaRc1NY1TdHnl1ZwyBZgfl0HRxOQg9fabja35QjFTbertRQ0bJCV2OF3xSr/l0eF2pQJeF13fAnHwJl2CWZkEIbl2Ul1BF1/cTDs1KWHxABxlRlc1zRJZFDlrRqV3wjrQEzjzS4J34qwKV1rNH3l0KoVqs2aWzYV18bRnzhMcXcmZRF2PZ3EwLIFJjtpmdoy+T/F1vZ1EZ3m51JF3UvTZJgRdqnNWvnSEYjpi725LW5CrzR7+0thUE/LdUEntKuhTxjRW9aHSB3+2X7ikp2rDXt5zTeKJ4Blx22QLKV26PjAJC+W7VuhQs41x2/GUOnFFDWNx0X82IGTnLT70U4kKwlS/eRoIhA9yJgJiACrdSxRFGqYx51kY1HhWzGxATCQrJI52prUe5Qc1y5crWQCrXhrW3mxCHanPfGM0hMw1653hfBPjhOnSL0T1PQ9cBZ4Tr1xZBTXUABWKkcCe5510BqcQFLQhVCipbhMQeEKSJW/eSULANwC1sAEPXFEUKSr0XxVToP8iXy3tiAjAXeaEsHBh9Tpl3x4B3y0RThwgWmkVdUWznkWFBgqjAiQURjUgVXESMH7fkAL8DyJRF/5KIX/w3DjA3iDNa2n2z/boMJ1AZ3o51v+KxF2ArVoV2NYqJF0dp2fZ1hbXkZ2pF3t5zaY3eCqbo036hNF1Juh8rHXRUIY3ZIC7SjblyRo0xwY3WrwUWo1AU13ZtXO50Sx2UV29x0GxVhRVDyCpJ1fp10V0prUMV3nPAIV3RF0Y51w13I5zMp2I10BV3I105jUpF1CJ0cuzObCrPLMG0VoXsHSEwUy7ArzVtS0ISUoTVS10YXUy12WW3asBwSpR523yDShU0TU3DEtF2/hUE10CB2lZ3S9UOl0LZ0VJ2M11PF3Ol01wy9V3s13U2WMkR40V+mCWNUhBAom3810gM0JwBbp2P6KOlDSugTvV0G05LjZ/lTq2c0XY0URcQS12uKVwAD8GiRq0hmzMEQKIUEmCUO2/23Z21y21SxTOgVJkUUy2o7QH61KUVaO0oO3vcV4bjr22LzWK11YK32Hy2Vg8ABKO3p112O2AAC8G4AAEi7MrN0RVCtdGoFkd0uddSBAk4AL/YwzaP9t15tOdtcddVddOuE6AA7AGUIwNoF92o3dtWxVIhgj0FhqtQQN2ddoax8fpShAQYFK+t1+trfAgFd0i4JG0IFdoxQYFd/KUbGF2IAKHYdNt3CtKDoY51vpcGQQbvAU9t1hEhLFB1hydd+0tg1t2jtXDtlMFmddldd0WWGF1uddkgAayGy8w+ddWDt9UUGddZ9tUxArddeaIL7ApcuDogt1dBddsttI9tLdd59d+hpiwFZoQX2tG9tWetRutFMtPBlDogPwVvukiF1qD139dRzCz9dNQFRxVvqtI0NGSAGREgddKpVIFd8+tRqtMsl4DdV+t4fQPzQus2yZ1a7VLHV5oF8DdbGFiDdIQlb+tYm1g8ttpE08V/NtbetrRlWsVODdNxg4Ttx9djHVyC0LPNMOJZvAzo2pSB+xVzoF93YEVFc71qitB0YdMAzAdzDdb2tzddsDdv9dMIFD1ddX5gYQgDdx9ddttl/VzoFbIF6m1RQwbvIuHVnYifFEj9dsglp6irc1d9d5B4A4w+RNhtQseKbIFInNmxIF/V0ktSjd0jdSHMHnVoNthiloAlBNihM1kAlknVkCUL+QONFsnVojwETq5ihjYQiDtOjtD9dNjtfRF0Gtw7ATM13XIrM1kltN5xKZFRDdz9d3tQlIAIU4IAtgIApdd5NGCa4qXVQ9d7hQdqYn1etddeAA/UsojdNutp9dMglKTdL9dn1euFNY9dejdHdtPDdUTd7ddC8Indd6+MFhtvDtSaFfdd8MFUMIgBlEQoobFb21Z9dowFWCtXkwOSO57FloF49d+vAU9dzitMuwoFdAgW19RTO4W9dqttrwSu9dYXVM44Yoh61I6UUt3KhMAuFEOmtp2FBIgWCIAQw3AUZl1KzdARcykFSUAUsk/sEk2kXuymedCzK2edmaA8VdXSO8hB/T8Hu8tguYUkloAyyUGIQ7eA7Wxu5hHVkTHMhzdyhy5KyrnA3VBV1WTO8wVkVMcecE2miWtA+Nx5OQ4kcHyAAZBZ0gwVEbSMALdbLgpMAwAAr1A0WCJOkwEAAZ0K4A4Ld0NxAixkLdMGkFdqgWqEIkL/BwJEra2uvk6LdFdC0NS7WIZ4sX6QK3E65Uh2xQnsFmKdJEopQpiq/dmpLdaKkd2m22kOyKosM6iqrr2ip8LPKgv8If2/1Usdk7RFaJW36R5osKoKkH0QvRzU0uNiEY0GgOSAsRNihzaHm8dmh1aR5m8BeqqmO2yR1Gie9i+ZWlYyJXUsRiJw2qc6HiOT+ifhBYEynfSZgY6iqWhslegYr07v2noO7syef2Jw8hpmKJy1KAOQy4EyRaoCAwVpAzTQdWQuRBR/ovnm/Pow1Yp6Q/24qgAaaALoFZ4w7rdaaAdhE4WgRuA4q8Ci43bw72y1AsQwKef2bFOOXMBtgerdquUUMINrdnB83gO5a8IfofdqobdODauKOPQkCwM+wOvcs6OU+7h+KRPbqja85rdcbdfWAUN8i9EibdqNSKbdlYAn1Et0OAy8h0O6iq+qUGWyhbdO5o5V8J90BzRq/yDSOOG0C7OjtiUYgJNibRUCBMxmAn4oGOx4PRLr8cticNiZAhJrK9bd/EQWyQ5oMQbdjcOueRI8SAR8dMO64abSgfRmyCJPSCEqyGgOjC0KKM1hdRudu8ydhd27taE6MNOwRdMLVF8kMLViKK14aIfUfg2vIxiziJ7dxsOGZ8fFlS4Q6t1j/lF9VJ5dAVhd7d1xghldoBaKm8doQPlNLxwuKCIAQFgdbftkCitcEKZAXx8wFt7AA3L1/SN0ItOX1iuNXgtHjN+ZNt2N/WdUyNNyNpJ1veN0J1JZNEQtATN+Dl0GOkhdITNpsFBIt5DlRItDxN6WNNFo+FtfO6hFt/X1Whdye1AcFYpFaTNcFtfZNEUUhhdlFtI5NrItSHdXZN4JN1QtjmKFqQKZ8eVct8xn+g5agBBQ5agY+di32AndImG1GaIhAdGiDgMScAtpMecg4iEd4JI8Gl+OpYOwndCVcFsgbA8KghLxilgyJlBXoVzhNl2kYcdLCdRAkw3QvJFR/EqG0fqFwCdPD8wJx2uCindUJxacOgfkb4OUwADcJSedg3AsJiEQgJnd/sSWeAx0A4PKbrdFK1Z4AyGinndEuct5SPHKFGt6cYy0tumKxwMkwmIv2P+x2Uxu7dvmsl1aVWFMkMKXenwhasmDj0rH0B+mkCMtt0nxiTndPiq03+BZAtcMEE00d1uYw5M8G1kudAYQAg3tVKdw3tBudasdHldLvAKFdzadHLwrad6FdSNdbKdEewci4YcgbxQAcWY9ys4aECGk2xXtsDDlxsa3b1tatHj4AridkcMAdlCcB2dA3dETs9N6+QA3IUR2dbZC24wPX2CpCYaVE7GA4QirQLXdr/KIuGdNdRadJoV5tdYJ1Fadf6d7ecrgABndP+a/8dTVkWaQiFk5RQj666+wYlKRzdKhyegAcq8M+cC9xcpOe0llUt56RLzd9yg5Kyhhct3dspO876imV+RttiUqBNrF4Ycg75CIXkF2tjCOU8lR5dsQ1IjEYo4MzNUvUzDMnsqSGANPuI5V+PirnlSIV0NdmGd9adtGNScdc3tflduOdAtdFZ6rZ8uNUEew9hAWwgsq1BNWmnt9Rdo21pkVuclfqGNNdnYe7VdIcdNFd4gafbhbpdMadladLxdOPyp7tnYchPdfB6n90r64Akgr8ChPdsPddR2r7CrPd0lUcq1PxEfPdwIKEldi1UrPdbIQcBcx+QrPdfeUIvdxdEhPd0vdMLVzgkgsGWbiCvdfXESvdHoQQUOIAQqvdbvqcq13PdcYxGwG/VYR0o+oAWvdCAp8qAo64UYxQvdz7Bqz2jGgLNotT4untFFmUN007dZbdjcVuKOiGd89ijQk+wOtbdUsO0wklr0LXdMJE9KWjCdwGdfdcmJBb4V43Mr2doSi+Hty8GPWuXj2Nea0mVMxCxUmi5CDr1NGNSFsSKMUBNpWVMZ8zJdHi1f6SaWdYZKSJglXyIpksIRcA2jpufTw/4+AQSPFsmngy3dxedXW1VKcLrloOdt6d42d40aunt0MI02dMGwvYkNvaSudQp0iSdTLm1ydnoW8sdDFdmBgOftMGw9M6bldofdv1Uim64GdGPd0fdfNdvGuYBUFudKNdOGFOntsiFKw2kid3E8Ou8mzaRniGVdnvdteVRGyaGdJXd4/dMNdLZinldwpkvldnSdtXd/Ndi8doW1xkNumtXENmKhGmMqzeRidRcdJLomngS3d5/cB4ovnyyIo0ychmdoSd/eMJKuESdgudfKwwsoJed6G1VzS3/dssVRtdsOdDxdYUVKSdegdmudUadjPdGSdf6dWY1Z0dZiqsMdXOdIag9fttIVET2n9gQvts2dfXaUA9ZiqUa1TLm8AdmGmndUJLxosMvOazFOPl1AyJfl1iQdQotyQd6INootjed4otqX0shQzM80otxfNYxB1za3edSotltYErtqotkmS0rtGV1Q+d7tlI+deV1BSBI7CLINU+dkYAM+dW6qc+dgSOnQd0wi3QdhrtQoNJrtooNZrtQwdVrtrxBEAI2F8vz2xu8B+dedlX+MAYtn7RZ20F+dGoNZdl1+d4Ytt+dESJBoNqwdD+d5zQ2wd9btFkWewd7+dBwdn+dMbtrSsmYtmoQ2YtuCklwdI9l1wdiEGabtZ11U9l9wd4BdjwdKEyN11gotqzcS9lqoeMBd7wdDYtCBdoYtQY0yBdbYtfKNHYth9l5XE3Ytz+dk0kAB4uBd70c+BdEN1hBduYNxBdz9lXmAPbtsxQ5BdA7tKN15YNXP0aIdNYN9Bdq4teN1kJBMg6XHdFGily0m+QfHdJFYFndibMQndbCUKagCVcondi32EndmicHtM7GGsndcZc8nd+BgvQ99HCyndK3cqndzD6mwQ55WkTS2ndb0dundxndkBNNUJZb0mw9PdkY+dSwADwQAw92agSndiiI1nd8KSg/dVfAjndkPdLndZcaVMqCBFkrUUUNglwTMq9w9eUAUUNxWg10qLw9TqyhbWYdoWMQJlA326elWpgV4S5vIAQOBXoq5KUpzCkwi/SUU5IRlKbxQlgVagIZvMz2cuzApZ0SXJ01d1CxSXJpZOfNOE1d8Uiw1Ycg4USEcdVYaVV9NBVJS96a+CbWcaYSdKEOekNAg438OSMRpFoLUpF1EM1Dz196kf8tPoUeDA+EwvctVvMymtkc50h0b3YWnAQ2QTBWxCVW9AgOth+1zvEZL1PddMctMDdHIAHI9wAtFMt4akvMFB9tSlFSmtLHVHI9K5ti/1RxVQ6Ft8m/jdco9xhtUsUEo9rs58kt0o9e9dNBtML14jd4o9vc55NJsAtA4wM8FmatzSIR2Sk7NiD1JgNUMI1vN6GOxDY3xsolVMpQwvlLntpZhQ8JYy60ZQGptd609s5IeAKOge2R4lUXa4nY+l6gXp0uWEpB0KVAXJhbHlr2CU2OYOiRbkWuArI9a6tTisTH5U9pWDYd2gVcaA8AlOdw2l+elNOdP5xdkYoDgY5YSd00uismRBY9egl4YASA4YtAIJM0Ns4Xwvc5qBQi8k5vAyAA0z6VltsY9Be0p48O98vbCqXVejAfo9oDBCutmo9qDIb059dwcjdYjdsdd/Y9Jo9UXIQ0ObI5wQA6UOac5OZp8ktlCwFQA7cA8kA4Y9Qh06oA/jtfY9XNIsol049Vc5OZpW49jM56c5lo5FgAbFtIAtbJNvY9N5txo9ac57T2U8taxa8JlF816QwBo990FuAA3ytJZ1VaF+XIODd12yRKtGtA2AAmBgpF1hs1oO1P/I4O1o9Q+fF321XBFActj49A9dVDd99QIddjqtYddBs16SE871hqSt265Ddm4AvP1jddChEuiEBKtzpSH49htAg0Qw9MYbFyltjFpqTdCltTiF+51HIAJKASE9rx1pwQ0ZQyddaE9T0FdnYVOd4lUEmlhEA2HE640lY9hY9+ygxY9rE9ZY9JfAJY9VY9a0wXY9Ps57SqibNXeF6CyFsm+dJVDYiFut+FMitWrAiNVzi+ajtbx1MdQMD8bBd4HdGZNLHdvBdXBdqxNAWNSItwyVXeNqk9oQtsyNCFtz2N/jNYhd+uC0gwlI9lO1XhtXTtvCsYhtxpuTTtxQARqkNepLxC8h0RKlUOFAGpnQtN8t9GwX1djIwRvJ1TdFx1MBto64E8YVJ4fOI/1Uli8tTIAU9I2hWkulfBK9uDqtkQkcPJnKG1ouwTILTtH7GtrpjouM4kD8thStUQewTIF8YRG40PoaQepgEiU9cYG/TZo/g5QEl4AVKZXeidzevPEZd4xU9Ua0vc5Kytyst7Dtw6tSNFR4oZ81ONQ51lcHg+9dEjEk8KHfpDi1eG4LHV415CN58ktUsy/YC9C51E9NF8YT1yj1sgtZF6nStAct6TyIOhKltzpiHt5IAt9M6WxVNSthuttc5qutqOp+et7ytUstwDdvZpu3VWqEct5dMF3ddFMtHctvdtdac0mZ9StcL1jN555t+2ErN5JP5fttFMtqf0yZ1O09KfRUdd90F7hAY098hKinAKIBPcYqrVhrV8xtX8F+LFpvE98taTA+dNGit4uMAOIoYwXeoz8iccB2LAmE2E+JAJtkFAWRFrjtWOt649zNtYwACP5p35jFJU8tPWaN49p9NbU9b6YUku0R1HTAkOsActFPYfS1wJgTwu6iFsS1dZIqDdLitRttaiFeXVd8FjNtG/2hit7hl/PClWwFYqK9t9uCkS1FM9OLVS4Q3sleqUtM9htt2hQeJN+oszM9+hCzU9uM9dONd49pytk8K9RVf+tx1V9nUQZtfCkpGtef1WxViKcwxdbqUvqdTM9lepL+47GcjvAcqO1FhGZ89p1yI0ceNemE/Vtcs9PpVCs91GwiL0Cqd8tU+vAhbcL/NkutviNz1FQkg+U9LiFViNp49Ro9iM4G158N5ySl1GFH9JV/1E/Fq6SSak4+EgskEUg9utSa4Yc9NpAdDeYc92T+vO1vHYRG4Y8AIc9sc9decVyex09G9tp09/dtwUp2xguBYRb19vEoZ1istyZ1M09ymt1d5R35x51bFtNp1INN6i8W09Y1tYo9MktJZ5Ew4Io9TGFK092etgytxU1rU9BSQUDd0dd4eG9U9TltUA0qE95qMyF14E9U+trBtumEmxtSE9VDAbQuFs1JglQJ56i1aaFGE9dmkcLFPllBktFOpiGBO8JPjKk5VUstqdduBYks9/6leM9d49z28zOtUUU9m1gE9Z70rvKTO4I09rIsDYk0U9tVtohgPewXFdyWQ9fAmq8tVt3d0T/u91FqlEf5dyet2Hyu51pF15o4axgC6we89nc92iiR89EutLOtpCFNOFxjtBhF1ucoP4QC9t492iiXs9SY9K+1QqpQc9JTcd7Juut+jtTddSC92DFQi1pIZsztvHYqC98zt+ctA+tmDdwNNKS1JTdQztwctuSpJ3VcnEJIpuutoC9Zut2HyWcFa2t1LYecFpttX89x89P89M5NL+FR8tchwtJtFeGdE0+z8wtRkqtb895Ra9496MtXctOTtIstuMtaDtEE9QVtLROejdqGc19Gus96Y4Ii9k4wL89aatLvJE09d1Ruclqs9PzQYDdNZ1xb1hc9uIsJ9N0s9CC96Z1Ye8nQU009k8KvU92t55c9H7QuaQeRlI3NfhwEBR+dN5o4tTdBhF4K0H09NsS2s9lVtAJ5pgE+dNCgaWrACutTQA6HpI49rt2t0955t8ktOM9+89Zi9Nttw9tpc9V09I45mrJIAtDC9ftNUUUXJ1ccBn/Nzqtoo9iS9kS9yS90Ns8ktaS9kutwzQgU93J1H7QbhUfi966ALp1PgAn/NHC9YC9UUU1ytlS9389cOUfytzS9nC9/1kU7VlSQJKAADV41VZNV71VaQq7S9DS92Hy5qlG8tvC9Z8YaQwqVlHfpuIsJs9WIAKRtI6811tr2pI098o9+xV975sBAzL5kQhPetPvM83teItuHdMhd2FtglN6WNOAcJHdk2sZHd4ONpFtXxNxc1Nl1FHdspFxy9jHdfO6o5Nehd9Ft9c1jFt4iFd9FOcRMLmlFOJC9QQNjC1aQw664SBRtvwck9GmS+JlB894yhyZ1Wc9509Ewtwctkc9m/JtkxQu1tc9SaFFGATwBLS94AQxS9hStKOFub1hEA2SFZitQS9zLxoKtSVAywVz0hliwmtJjpOYqthC1oNdTWtCzAS0Fg2tVaOtbUNPtrnAXENabhRkono97xqNK9sb4+L49mOxgsfwEMzl9ilSEJXea/oGD8AlqR3xkyhALomPK9iLlSEJhkp70KVqxvqwOrFaOdKPdpD8lXdUfdQKiMfdgTycfdH2dnM6jXd7ec2KwaOgWw1ByObOtO35UTGLC9ucFVDJs1qrypnQaZL0BfcAu01boYhstGgshYreqg9u3kJBXUQ2SW9K2xaPBoItF6oE5tsQcdtamHVd+jEtJE0K6af6XWsdq9iA8IgKsQ8szlEq9wq9v5Qa41W9KJmtx9drqtsstxWZoGtWy9R2AzMO/0FPBMABliUopKtnBtdc9K3AUVA+6tIz1Zk9mMK1s98CIu4t7RFIC0xpFHAGHuobmZkBQNqIsL4MBwijMcsOiFUsCsRUkNs8zs87ecw1N9UUfXIdTlUZ4ozYp+k2bFs+C6a99cRyqlQVlT+lcxl+fUyBQgtNMHVtBtiHa3tdAF5PUoftdLvNJSwtM9sx1J2ZKoYIxSLHVY2ZqWZ8ZFxfSeiAvNQylcr09X9dymtg49Gc9XDt9ZA+1FYplVGVU4A4HyNEVSEJ/6UUxlOddE81VZ1QBlsVWopl3uATQgQ6FQFNActp69plg569H3lqTaYq9lEVSFQMGUniF969EBQj69tRtCylbmZka9769Fy1eIOJiAKjoNUo8Ewik9/A9YHd6ZNUItEFtUHdOZNkHd/gtN2NyVtiA9sFtFy9LFNqHdfjNpZNxk9fQSvnQSrenm1bUgrWWSG9csktA9bJACQdyINi9lbLtDedAr0TedT5MLedWa8bedOQdgrtWXxwrtoKyDmhbBdTz2Qg9ylCA+dog9motw+drX2tQdCrtKrtDQdsg9RotpV1Cg9bQd5oturtxxBS+dBrttotq+dDotG+dFrtLotbV1botGdlUYk7aC4wdudlSoN8f0p+dgYtcwdIYtNQgWoNN+dT52d+dMYtQbtc7uuQ9dHBiYt7dlkbtlOBaYtxwdGYtpwd8btf+dFwdSbtgQ9jjAwQ9twdGbtYBdZYtkQ9voNUBdrwdCQ9FxGHwdG9liBdNIg5bty71lbtu9I/wdXYtz5AWBdAJ6OBdoIdzbt4Ida+sbbtpQ9Y4tXbtL9lRYN4HYMD8FBdfNg84t1BdDQ947t78KdYNQDl07tOIdL2AMOCDZtMdd9c96lpSVZXEhx69o8tbI9LHVHW9mlsR0URQwmY9QWiiHEgJ0b2or6iX2ifFxQh0WLJqfwrdAJpQu4wRccfI9vWeVa4BkAqjYsuEn9gSAkwBlsYlxRt9F133ic29UC9WC97W99F1rfpW9ARy1nM1N7+PjdWOtvW9+xV/W9VppQ29IVATUx7oQb0YBelPI9i29PIQy29go9hz0rzQYPo1L1Z64Yy1kxtu29T29qMtCS9fW9x29a8up29px1U9tF29yM9PW94S9OdyYO9d29DqAw29RB0o29yHEtu0k29k29ELgTdA829fK4b29HgAH29Ossa29UYsv29W297MlO29BE98bQE6A0vAwO92a9oO9FO9J293z5kO9qtt0O9pGtC14S09urFO89UTtfRF89t7klR5tAEq8ZtcO9/W9V5pyP5ADdIXVxjwoKt/lA7O9MxFqM9Qu9E+p5ddF6IveMkZFYdtvct2gAAm4R299O9zr4DPpS6tYu9DgQVfiB29bW9ymtsu9DPphS9Ou9fNIFy1DzWNG9KNM1bk5/dE5AOkMKq9GNAe38v4V9gyH8yxY6Sk4gkSPWu8t6n4Nz+oKaw2rku/tWiJlYV7U116eyTiGPtFzyxWwBWdHW1bDBYe9LlsMGNWlS+zUAsVpzWL8QtbA9gyOJkjqozbAye9AWgBbo/8gju9kIYGAQIBUxcA3Ni2SAZkNyt1ee9JTaLqN6lqdkV7YVkgdshEOvtHpepWgCHIqgdokSUa19CAquduhexsQEbkG1CMJARAS1I9UhwMit+jiNDU6AIWYkDR8e8g/BJQflWhKYKsNbKb4AGugQpoVn1FeVbTlPuVJYUSeiTcsGugHci4hWOPIsVxTjYy+9WxdpM9uiEM8FavEytStU9gcthu9YO9W9N3W9tO96wt+u9h+9dO9rlp3upplpR69l3VvtVmUg9nUPo9uF1hMFyLR17Sptt0z8438imtEAt03Cmiduy96dFeHdSQtchdDZNcbk0uIJy9PHV8TNS+NVItuk9aIt3ZNOhdRWNFj6YB99y9k2sjy9PeN45N6lNDc1R+9Gu91qCh6OLzA3UAdfq5pFVRIWBtda9QdkWpCja9B4mxBth9dHi9SlFXtdmNF1bY2NF0XEtM9mCtkd0RE9V+9eWpQ4988FQ8AoP4Hct81AxX0TB9u29Ys5a696o9lqR5MA6u91+9RFpDPpp35K+gX7gErAdF1FO9LUQNTYyu9yZ1syII89Mglws9GSIFNVxE9LFpJAQ43Nc8Fv3NIYRK9tKh9z0FT6NL1t6lRnSlWh9SnQOh9H5F64o03NEbkhh9uiExh9i816h9s2gkoA5LgVGFf89fbCdJVLCwN3NGqOg89Rh9eE9wttph9L3N7h9ve9nh973Neh90PNugd9h9T49Jh9Jca2hQ4SlFh9pQ4YR94PN03NZ4V0R9qh9BttIttIBqiR97mwJPNER9pYB2TdSaF/h9rTdah9IttaUtYClgh9hZBFalN6OYzE/a423NVCV6R9jh9gR9cR9PHoxOgOR9Vh9QuFnd4XPNvh9pytDh9AR9pR9ph9QvNym1oR95214vNhR9sy1fR9JR9mR9QR9MRFwx9kttyR9xFF+R9V3ljR9/R9/qlu29O9FSxl9RKeUtlR9z7FuNVLp4NmO5O94h9aaIDgi/0FvC9vR9MR9+E9Rx9gFQVtaMWhIR98x9ux9DKl+x9451DKlPal+x94x990FxR9qF1HRtu29Iwgk3B23Adx92h9GKlex96p8zx905VY5Vbx9Kx9Ux9GCtu29xwRYAVAJ9lh9hZB5Vhch9Vx9x7QqMthx9hMFqJ9Bx9AO98h9mJ9Cah6AIhM0fh9kx9Xx9lx9GJ9dnhHehNNsOx9ylhyJ9GJ9u7gWJ9ax9OJ9tJ92Gt2J9KJ9tJ9eJ9+ZlF+9nx9FytAx9LR9MLV8J9SR9yx1ueA7x9UQ1RJ9XJ99J9Vx9TBM38lfJ9uR9I5VYJ9bxVZx9yh9Ip9b6Nph993Ycx9gJ9Dx9sp9WqlkGl6TtHctoh9WB9Rx9nyBkh9AOtinAdqp1J9GF1AOtSh9XDtnJ9C+t/aFtKFUp9aqlU5VrxVWqlGugQp9fL4Fx9o89WsiwytHUUOx9Mp9jp9IqlszgLp9Vp9z49MmFImFlGFqp9CJ96p9vp9FKlNZcAZ9ip9pp9WCtJOFPpGXp9Hh9ioAPalzG4MZ9bp9zJ9hMFCZ9U1Vdp9VR9VKlpCA6Z9GR92XVlTieDYLZ1YZ9/J9J1yhZ9TR9LBtHp9pitjM93p976VMqlJ6l8p9lp9sZ9YatnnFfnYa2N4YBDZ9Dp9epVIql0E+VZ9qx9rilpi9uZ9EZ99UUQGlLZ9WxVgZ97Z9uPFaO1hu17R9QJ9hMN4KlR/1k5988F059+TtF9tRE9PZ9a0NV6lR8t7x9Ih9O+9N29YO9ZzpoFptpt0h9Jp93x98h9rCtfPUaddwp9GZ9sRV+FVJolC59Y59JpV8qlq59RR9bZ9EE9igofJt5Z90p9jZ9wKlVKlrgN0J9DJ9yrMQMR5x9RZ94Zsu29XJt3Td0n4v599p93gNWqlQF9kF9IF9tMtYF9Cp9959wF9Vx90F9PJtP59z59Pp9fZ9FKlSF9L+9F9dHhAPD0g59UJ9KslBfIkC9eF9/591wt7lxRF9zB9qTdQalE/NuNVIcmKSAcdE1D16J9JF9mkAZF9d8F+J9RCk4F91Z99Dd5L2259tANIqlLKlkJ9xJ9ZMNDDdNF9vZ9r59baFvKlkl9op9rilN04o59+F98l9QOAuqlSl92q13wN5aNg6lal9tF9I6lCGlY6l759Ex9GF9Kslx+1Ni8cF9i59Gp9ral4Klil9HJ9n59ZMNcx1m+11l9L59eNVJql4KlWl9jl95l9sgl7GVol9NqleHQMO9a59Tl9JNVqpV664o59w5Vhl9Hl9Bal4KlhpV0V9TD1ZpVpl9Hx9oV9rRloZV65w/ZVOx9UV9cl9MV945V7al6l9uV9s5VyV9d59EF9GhVQhV8RV3Z9yZ9BV9TD1Val2l9pC9NxVnMtBl9OV9TD1qaldV9M590kk6f10f1sl9CF9ppVCf1G9m5F9Ul94stl/1Rf1bl91V98f1CGlx/1A19yl9bSltstVAN3V9Yl93al9ANVANU19Ol9kf1IQNDBV819tl9i19CGl7stbV9EE988t21Vgy9m19kZ97qlqMtO59ygcnF9mZ93F9TJUaF9rZ9vl9jF9QrQM5NPRQ364o19CV9419oKlsEWK19QZ9lEaTS9x19BF9baFp6lX19Py9vyt57QuZ92CMO8q7l9TD1uK4NmOPV9219oKlgN9Nl9J19QOAPalgN9e19ZMNnD1AV9SN9zD1xV9rp9pV9VzFu8txGtmN9/19yN966lON9659ZMNmsNz6lYsNf19Rl9oKl76lQN9EE90cNDc+TV9uNVPal3l9hJ9vl95HFLxlszFNN9YNhwV9H59nN91lVfnY5C9vN9G6laN9JNVDQlNhiZ0tWk+vN9iV9VKlohk/N9Zl9eN968Fxwl0t9HPWr19zV9719A4Y1RWzctei96xgXlt8joZdt0p2HFt8lggVtKYpRhtZ49jbaIhVWmtu/MSzdJ+k562GDJyhJEDY2CyU/cEztUb5W0ZuCApHkxxkjohNmO2c1Zmtjt9mWpLRpzt91tyrt9mV5wpZfvpnt9BZku3eMa9ft9emtAd9FmtpwZwd9Y2yod9HL52b5pwZmugbIAXt93jSOGsMeGFo9O/VrAQyAN5QNbv1fyyq/d96k9o9igtQBtumE98UuoqKRSnXUk2EPlgsBtWWtNMtreCE0aQtNho9cO9Nep+dWLk9oBpuBpzc9Pc9pTdl/V+BpuLI8ktUXAI/dI618QAk3oG9tsacY+tH8VHB9yttcO9RBpTO9XxV5KUTv1F+940ssi9KE133kgalE998GpbUtMttBu9LHVRBpgGi7i9229MglW99F9dO99x99J9ACet+9qiVyVS9UutWkAaethu1Lp9hDd+xVRBpaaFZDdx+tm99chpjOgNgAsvZ/wNTANW0N86tP99uOgf99AKFwx9RhET4A2T1c6957VG5EqyMRCgkutzaI7itW+11Fhxi0U99O+9VDJTuU/I9p+98999c9i99YxFnM1Gw4/jtwltG99Z99P99RAou99r+Fg89A99Sat99JV997yt399qmt5kweDAay1MDiBddsMNh9999JH99w0NlDdjD93d9qTdFD94D9tDdQD9i81599WCtgj9EKFED9qm1OAA0D94Mo8E9rfAuGyB4UVwk/TdMM0r81svhY64S9d5EFsf1aOg8JinqAzAWzq4HstCU9gfW0PoMcARj9A+k0PocWqD9a6htvxAhd94/1to9Jd9YWtIVtNXEigtCh833k1d9DOOlfB/b1NK9TqOxDQR/tTARuAK5/tDkh5zwNa9kWOwBAijMkxARdYKghEKN289fc9R9dWxVBqtiNV/QoZzFg19pp10+t+S1b49hfAET96DcFqt34SecU69maIAVm1kcYI09tB9KhtruQJcUtM970FyO1VltActfJAPBt+XpfBt4OwAhtOA95d9Oi91nVIC02NFZHwVd9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ke9aAb6FvWAG+4AAMBvvW9ZbeuAAAm4Cgb5I5WOQAgAAROBM3rA71sBvgO9czevDvW82rgH1oBvu29ZAb51vWm3rkH13L8+LBeg+uwfX4Prjb10d67u9fAACZvXa3rOb1w96yA3znevgABO3rgAAIeAm3LVrF0YM0QgBQ+twfWG3r6H1nd61u9aw+s4fW8PrBH14j63TlYHcuaJnKPraH1jD63R9ew+u4fW13r+H17d68x9bAb7HvWW3ra71oBvgO9e5ytBsXAQAgAAYuAuPrc71gt62A32HeugN8xPr57l1dy4CAEAAARwEA33resXvXM3rR71zN62u9cAAAtwNu9e0+sFvXO3r67V/dy2p9Y0+tafWdPr+n17d6y29ew+vzvX23r/714kcwrldh/PSfXDPr9b1ht63J9YU+sgN8lPrj7loSbIAABTgEBvvW9Y4+sXtWKPrMH1qj6wh9YvestvXG3rEDfUBvkW9aI+uCjmS2L5b1sBvnm9cAb5VvW13rUX1mL6yA3zi+uftXAQAd71gd67/X0AACjwD+9ZAb6OfX7WKHIAQAAGXAOb1mD6z59btyuAABk4CXestvWsvrLb1+t60h5YW9bTvWIG++71gd6yR9Zbev5fWivrJX1+L6/R5YUwHSfWCvrv9fLD62u9dretUfWIG+Lb15r61u9YG+uEeXZQzP82ST6wV9ds+tBfXh3rc31gPK1uxcBAABfXn3ra71sD69N9aXetvvXwAAwn1rD6/W9cAACzwL/XzXevrfXMOrB7FjkANt9cE+t7fWW3rB31j968d9fXesXfWj3rl31738xx5ch4pAfWv3rT711d6/W9YLetHvWWvrSeV/bmLd9cC+vRfWgG+vH14H66J5ZvOKufWj3r+71rL6x+9cE+sgN9Hvron1gr61n+altqAAAw4DAb61vWPvr3HV4v84CAEAAD5wIAAD7gU762p5Y5ADSfW53r1b16t6yN9ZzevaeWiEAkn10767+9fy+uafWf3ra713+voAADngHt6xJ1fg4scgBAAAWcD1vWgG+B316H67J1cEiuAAAk4CXeuDvW5vr3eVohAHe9czesQN8G3rA+VohAIAABLgdn68e9ZF+tadWfxzgIAZX67W9aPevVvXu3rNX11pc3e9aXevVvW13rC71rr6zW9YbevTfX63rW71gt67x9dresQN85vrx/5wEALV9at+szfX53r9v1xz66xxfv/N3vWqvr271p96+AAH7etrvXq3rqP16H69ROdKXOVfXqvrMnFpicz/XyAb7GfW23rXb1qt63J9eAb5rfXo/rSAF2hs8r9c0+t6fXrProf1nd62A3xT+skfWF3rmn1+t6yB9YXesAN9BPrBX1rd66d9aAb60fXt3r7n1w96ye9Z/ytSFm7PrJH1td68T9aC+udvWR3r4AADn66u9Y3esfvXk/rQDfUd6xZ9ePesafWQG+4AAPT6wV9Y0+vtvWc3r4AACz6yX9dA+s2/WAfrT71hd68e9fAAAl/WZ/r9b1yv6zm9ZwjOAAAM4GL+sFfXifrw71u362P9bo+uPfXTfr5v1kj61u9YK+tr/Xa3rDf1gd69f9Zb+sXvX2/r+v1kd64N1bMAsdNwtvLs71+d6wu9eHev5/XcCr5X12D60F9dR+s2fWN3rk3V6OK6lOYW6sM/XD3ren1wL6wW9eABu1/XwAA+71pd6xN9eoKsjrYBfron10BvvJ9boKt8/WOfrMANr96+t9dUjO5fXwG+OH1lgq7L9bXesFvX63rJ71jgq0JNgfevVvWIG+g71i7qw9Genev5fXTvrR314P6/QDZ8+tG/mlvrK31kd63N9ee6vf18wG+yX13+vvW9cAAATwMW9Y+6utJr4fL231/76wV9bnetM/WRPrH713b60IDdEBviA2O1WI3FwAANnAl719t64h9funM/zZ1PrW71t96xD1bwpqAfWJvrvf1h36xoVf5+sHfX23rc71ony0QgD8+tt/WSvrZPlvKM0QgGYBu/19WAbVgNgd64YDax6ulRnAQAJgNhH6+29aXetgN8DAb9b16X60z5bwpoC/X/6+IDfAIG/u9bfetzfW+6SrPltts5J9bAb5RA2C3rQ71h36429a6+vs+WKWzgAAGOBRPrzX1m/63f9fR+sJXEgQLC3F/t60O9dHeuAABy4Fresc/X3frcQN9nqyUxcBABVA3C3rKP18D6wO9ePetPvWx/ru71mv61+9d/euOfXJZzMNXQEAJH9bo+s9A2/3rndFxXyy0Ock+vQA2gfrVb1kYG459cJloM/XrAbNQNxf66r1altrf18hfrtb1036yA3zx+uzEUtertX1zn6wW9YoBt69W756rs5wAAGnA3b1p964P9Z3euT/Xxvr1b1gH60D9ZFAv9L0PZzfn11t6959dkBvVvWgfra/1sL63W9Ygb4ZA2igbEMZx3y40Dc7eu6/XL/rR719t6wwDeAThoxncgbA715r61zxfd6ustnlfr271v36229Z3ev3/WuirfvV0PyxV9cABsh/WDvrIANoYq4XOcTjPPA3Gvr9/1jYGx8DehBsQN89PrIQNtf65m9Zn+uXvWQG+171nQG5n5cBAAC/WHPrGwN996+AADJBsUg2SPr6/1rT63SDfKBsp9Wf9KDP164GxsDY7evbA3VsaY85r/6z+9fy+ujvXM3rv9fE367UDdmKst5mv/ri713/6/39fbesfvXivrP713+vt59Z/+v5/Wa+rjaF9VM4B9cbeuUA3cfrVb17kG2qDfAAAag2tQbA71nUG6oDcn8uTkXp/LlX12t64n9fVBsgN9NQb2oNlUG0R9d76trFXAQAmP1/+vpd9YtBuug2rQbOoN7YG+P1b38uOg3nQbef1gv63P1bE8tw/WEfrRb16/y4nGdjBuI/WsPrMX1kz60/5aoXNJg2ZgbHb1tMG2eBdYXOZg2P3r7n1rL6+u9fMBvbgW+Fz+YN8f6w4Db6BuiLn7FzLNCPn61YDYI+uQN8V/rT71i4q/PxbrBswfWCPrA71ib64AADbgKr64ADYAGu+y15+LhP17sG72DcC+ufvXF/reQNnQG7YucP4vMg3n3rOb12t6wV9ebetjg2Lgb0INnQG/QFZIctDg2QG+PYNsL68X9Y0+urvW53r6H1iAa5Euf5+uL/Xkvr84NxcG4L9aX+v7g2dAbH/FzQG1EDeJBvvA3NPrdn1yUG7/X1T+ucQWiBr3EFx3ChyADWBv1vX/6+q31p/6x39d4BvgABl3rtQNxAG7W9c7esJ/WJ3r+P1oSbHz9b3euifWQPrR719963IFdZ/Pf18MvrsX1xQG1e9aHetLvXNPr+71sCGxBDZr+vZvXIfrWoNx368QJZonMoQ2IfryYN2kG9e9awhugQ2lgbs318AAI29d7Buog3aBLn4N2P6z+DeEBtd/XgIbNv1zIG6kWf4EvyDWOQASoNzt69m9fk+vgAAxfrgYN90G7qDYZitCHRqlzokNt0G9aDZVBt4g3Jb6+SAaQSxyAAfetHvXO3rVb14T69W9aXevm/WCvrJH1+D69b9dt+ue/W5vrekFswK4B9dO+vE/W2QbmkN7SG/f9b0htu/WuIbx/1h363N9YcGvLBnfAbIH1gt69X9ez+szA3ePrwANv4GxYJb8+srvXhPrBX1ryGyj9ZxBvX/XMPrBn1u/66iVc8CtZvW2/rNwNu4G5p9YLeuT/W9PrAUNpiG0hxUpEB2A2Xgb94Nj4G4lDaAb7JQ24AbqUN7tClJ9Y8hvkA2evr8X12Ia5FBbxKvPjWCSreQ17xMwUNaIQB8/W3vren18CG9D9fSguAgBAAAecC7fXGobzUN+QiysuYahvHvWmob+QN8d69z9bqGsrLmOobYDfLqG4NDd/r4TvWWhrNH4rZc1t9dbevzvWtgby31nEG1UJaiCvRJm+frDb17QG739c3evnvWZQb9b1wAAFPAlwN2z6wr9Z3Bt7vX93r2gNtwK71BbiCusMX7AbNf1pd6519cn+v0fX7PrZv11f64L9dg+uCfWj3rwn1uf68l9ZbesAN9EsLwI1lvM/29aXevE/X13r4AAYX67X9YPevHvXT3rBgNscG70DZreujg2LPrMn17/6yu9cfesbvX9PrHP1hwAKO9eD+u/fWl/rR/10GG419dZ+tiQ25Ibf/1s0G9u9b0+utvWc3rBb17z61SDetBuPvXh3rE31gd6w4AEzevufXn3r2YNoEaxMJY5KvQwXAYbV714GG6DDfBhu7vXIYbjf1roG7DDb/evww3NPriMNwz67J9eXet2/XQYb6MN4ESxkFawmtuhW8KaWb1i8GxkDYd+ubvX7/rIsNxz6/SNfBohfg3n/rnf1jD6xu9fr+tQw2hSrAFZ4D68TDbXetBQ2P3rzH13j68l9Y0+uFBWf6++sNm96wKNbKCtlvWnYbhsN0j6ySJdqDPf193YbO71jd640Ffa3O9BX2Pr1H1zj65LDZ4+t8fXGRL4OZ+lc8HDYi+vMrnMPr3H1xj65wDc9gsNQ3Pobz716H6zMFfNhvBg2rYbCAN6wG/dDc8BsFA2TYb71QR0a65DYthvZw3iPrJpVn0G6J9bg+swg3lRLXo1lCq+V2cJBuUw3vPrJH19yG7lDZKhvcQ2nSrTINt761TDZ6+uulXLVzX4NjCG139erev7A2KAb631h1c88FdTGsPvWn3ryQNt96yv9dBBsbvWjPrnb1hAG7p9Ym+trvX93rOb1r6Gz59dDXO0A3tIbk/1+MGwWNYKDOSfWW3rR71nH63vDdUBtljWf6+zMNjT62rDYgb5sA2tIbC71s+G3N9bHgsPvXRPrZP16eC0JNmV+uS/WO4briZmKG8T9bihuA/WWobDmjID6xp9aPesmg3z4b2IVy+G6rDc7BuOfXJxrAv1ov66YDZbes5vWSPrloN8SGwA3ziBuLjWGyrDfFwkG68DZJBviw2l3rmsN/d6xz9bnet/A3txrN5xad6y+DdretoI32QbC71qr66oDePGsU/WwPr671kBvpcDYu+t3g23gb9wNwcSyeufkjPlfXO3rTCNlhG7x9av+u4I27xrfIV28G4IjYfBtKTWRPr0oVvkK6p9eJ+sDvWDPrXIN6kGztDZr+usI2xEbHwNx9c8qFZHWyAfWwG+p31sCG/vDYAmvHg34EbTX1pBGyBNaZBs2/WFfr1b1xCG09VdXtAt5nCQb8719761bDfPKs7mAOQAgAAUuAQPrz4NnQG6kqwHhuug213rP71ygG+pDeLesYTWvlL+SZp8S4B9a3+tAQ2EobP71o/67x9fZBu/18c3r40NgBvgR9ZhhuzA23AA39fI96xQDc6Bt6/XiQbXX1t2gKRVbZXSCTWrSrdgNkT6+AAGHesXA3x/rk/1m366O9Y/evkw2iQb7CNhKG0lDZShvX/WwPrzCNtb66BDaP+toI2YpreSNnMK0xNbzCsYSXbobxSN0pGxP9an+uVI3x/rmUN2pG5+9dghu4fXKEbu71sKG/UjfyhsFfWX5Q/f1/P65cDZH+v1vWx/rIH1twG3fDfoBuqA3j0zd/sLSa5EhdAzN9I3bPrc4N8gGxu9bn+uifWj3rf8Nsf6+QDaNBu/194AbxsNqgGxEta8Wot31utzgAAdOAL3rWX1gCG6O9dJhvcVWWgAJf1pd6+29YK+uHvXxFLpywoSq6Vub6RsrI2x/rgyNipG+AAEUBu+w3BPrr8NrWGx0jba3N9IXpSrgH1qFG8fDZ3BuofWQ4bLcNmT6+HDbnevh1mv/a3W5vpGyUjcF+tlI2hkbMKNmmG6fDczetbvXvgbzb1qt69n9YM+uo/Xu3r1U1jcK7JVZZoRvI3hPrT71hiG06Df8Rtgw28Pr/4Ngt6zcjaLBur/XjvrVKNmlG+kDbZBvcg2IG+OP1096xu9elRtzvWmYbDv1kP64+Dc1htFvXmvrr716JGzm9dg+vsg3x/rgX1vb60WDZaRvWZmv3rJ/13X6wH9ce+uUI2KwbNf12z652DYHevV/XZ/rWf1wL63+9dSBuPQ2uPr431rYG+vDc3hug7mGddClV/qS0pVcBABvI3uUbEYNtv67wjbdRtgfXWAbBb1qYG5rDaL+ufA33obi/11d61EjZP+vbvWCvr8v12/6/nDZXhvuo2N4bIn1gd6ykjezesPw3hPr88N+1G1cDch+v7vW0kbqMNnJGx6rSemsRIRipLRCAN5GzADefevgfXR3raoNluG9cDb0+u6/XKQb0aNt6G+A3zjRtbQ3okbSMNgBvtW9dtRubw2HAAW71oSG7fDfn+tl/WK/r8ANiNG0u9ZgBvZo3A/raSN0GG4D9YHRuyA293rnqFsDiPrueg+tAQ3JfrqMNwtG3WjbVBu1vWokboMNuj6yOjdzes7vXKQb06N2dGw4ABL+u/19b4b40N4969tDbVBvdA33PrAQN4QGxrDYf+tU/WHfrBkNi36+mjeHesWI24vrDM1zSq8zNZbzNoo3ykbGKNp6G8qDfz+tcg2wvryP1nyG7R9ZdBuyQ2bQbWMlm8K2LNZZoQgY2NPrYGNpt68aDfIBtUI3O0bMGN0KG1SDZn+vmg2UEbxMN7ZG6rNehK5udnQkb0/18JG+BjelhvRI3WZLus1nd6/u9eHevNfW9AAT714wAGe9YDBsIY35Ibo8NlJGwujY3etLo2skbIDfctGyZVbfCtUZAhczlGN4ZG7bDaq+tZ/WikbRoNjVGx0DcLRvpo37ob0SNhlG9CDf5htLI21vrbgAVT64e9dlhuQ/WNgbrQNkBvgmjaURsXvW4/r4EN7MG0n9Y0xskfXfvrt8Nx9G/+DZf+vDvXy0by2F78K5BhfNjNvI2B/ro717P6zX9ZJRs1/WoUbVGNuf6yB9Zxhv/fW54bBGNtf62Ejbo+v3I3t3rUmNjT68ZDcEUt2VXCkbXmNgZG+Uje0BsUo3ePrFAN+zG5GDcH+sKI3CMb271q2rCB9ev+t6fWe/rNv1td67xjb5hv8o2b0bF/1o7652DfQ+sOAB2gbG71zzG2N9Ym+vKY2x/rJv1sBvrIDZkxuMo3wYbMkdXGM0vNYAesUY2wkb0aNr96/AjdLRsn/X4MbQYN7jGyEDd4xvbQ2BMbK6NoTG/vNbrwYfaGK0z231jj6+3mY0wtrcZcMb3kN0KG3oAG7evGAAzQbo2N1BG8Jjdcqt6ecd9zHIABEG5+9dYRt6fWj3rn71+cG9SjbSBs/A333rJH17D60u9d0+tj/Xh/rr711ZG8ie0QBssw2ggb9MNy7624ADeRtdg3zgbgv1jD60KDduBsAI2L3rb2Nsf6yX9ZE+s3A2DMbrb1p768CJdmSvzwm5UWSC1mgGx+9eTRv2fWEkbm4NzNG6J9cv+unfWQPrXIN2/61DDYK+u4LXpFrWEVn/c2hje/esfA3UsbnyN1v67m9eixtuAAlQbzMNn/69tDfb+tAN8x0bGwNrVG+N9freuJYWWFrJUV7X63X9cJxuN/WIUbWH1lgG5sjcHetuABTsbZ/1osG5FjezevWA3L3r2ONmz6yb9bN+sW/XhcbYi1rrGpItZqwtk42/MLFONsDG9Tjfsxu0427YblINlhS+AADcxvMY3BfrVb1ptG5wpfqxtyY3IfrCmNlrG7IDb+hsVzWhFLsVVu96x+9ftxsEfWLFr3k14A81KhZIis643sobxUNuL62wDY1hs+Y29Ub0INg1G0Wjf/htA/WiPrDONr7Gz+DY5+ufA3Bfra71nv60ejf7+vs/Wj3rFINscG2sjdk+tM428YbG711nGxA3xsUtkRXUqr2uN9FGx8DcDRv+I3kEbRMNm0G2VDfJtpURXsEAWhZsoG87Db0LPf18Pkb6WNqLGyEDeCUvWlmhwb5v16t61z9e8+scRXNMBgAAQuAN4bkoNub61QedU+t+g2QG+YgNoqqxL9al+uiRWOQArv1796y29dXBteFnJgb+n16YG6oDb4PN8/WhPrWaNr1s0QgBkhtjY2JIb8ZNeqGw79bVBt2/WeQbF317EG6J9Y1hsXvWNgbP4NqGG2wDYc+s342L0b/eN1Is/eNYoYtKg2bQbsyltYG3Djd0Rv9/XZkbPX16/69W9dHBvgw3KIbwf1qdG0xjZrht3LWiEAtX1jeGy19a0iucyAXlrrh5tYG8gDc2Bv+g3Zgbfy1/9cK8taD+tX43/QbIn11Am7x9f9BsRo2zcbs319qqxT9cgJvLA2zIrXVVn5S8iudq+sIw3NPrnKN59680jZlhsbvXZgbDgAHH6xUje2hvMw21Qb8ANmGG9YDYHevrw230bIuN6DG959dYBuNo3DPrL4NoIGwR9brRvxo2QIbIn1+PG+5Ddx+vrvWi1rTeFvn6zF9dYJtag2wG+YsNwtG3/DZnhsJo2Hsb+X14QGzKDdvhtqo31frDgARQmxu9eAJsME3Rwb+kN5fGyKtfZUtqE2YPrGhN8BvpnjZ3es6I313rV6N3T6xd9YK+sr/XqgbFAN0GG1qjdJRvKY2j0bav1kBvj39d4+s5KWiNaL8oa1G7j9YLRuXvW0kbVCNiz63Z9cXesrvXQYbH0NzeG0HjZgBsyg2c3rJ4AcaGy4TdaBsFfW9Prw71kD6/jDY3et0fW4obb31mXG7yDd7xvDQ34TaFJZxwm6DDayJuxI2zsbLhN6UG5wTdBhskUVtCbw/13T63/Dbvxu9/WC0bwwNnfG6J9acis4EXAQA0719om6ADZbWvFI2k1ryz1Tom1YTcLRv5fXQPrgDfPwmzujdsxuXvXYobfRNjhG9Gpc2qtuRWmQb6hNlom1oTcw+uvfXLYbT71oWG629YfxvSg2O3rhb1yYmwmtdHevfHh5ibiMN0Im+ETZAb5zfXC1Lva1uX652DdqxuKY23UbnYN0tGynjZrevdvWPgbHBN9t61z9afesPY2bfrcON6/G3R9cRPO7VXkTzHxN2ImyR9aSJs/E3dfrx/1y/6y8TYTxvXvX3vrVmNzaG6CTcpBvQk2GNr8hNtf6//Xwgb5dg3ePr3X1pXGxf9YpPPSqAcfrVxN8/G9wTchJv+/Xt3raZZ+Ym2xDb/BtWQ2dIbWWNm/G2A33rBs+fXEiL5sZ+Em18Tbn+vEk2/4bR6NxXG+f9ZVxsXfXTvrvhNzT68CTdxJvgk2eCbOINm/G+SedcgrAk3c8bJ31hUm1CTaZJu9lmHibxf14Um6sTbFJvK43OSbwwNnkmzyef8isCk2j3riJNx8G8iTeGxtok29IbgJN9AmziTZg+uUg36SbvBNiQm7/9f4JvebWagA1mN4zG+mjb3BsDvWDwb1m19DS6dVYC+vZE3cibmhN6Ym9m9dSJugA2J6yOpNrT6xsTdBxvrvWBibCUN84m1sTbQ0vOlYworkml8Ym1tDdBhtLY2Q4b2hNzDG6Ajewxs7vWUyb9/1rbG0A30xIs3rZ2NL+ZNr4GyHDcxhtuE2lCblhN0cG4wTZfetvvW9EbaZNgEi3Ztf2PNAw2QYbG71/mGyWTa6JuafX1ibvRNhMm18Tb0ACqk2uCbEJN10m56TYHJsX43gYbO6N9ZG0YTZvRsVk3kAAo718cm6DDZdJuKk26Pr/Wl41G5+9Zi+tpE3wybsZN5Im7RjdBhtC/Xkyb+aN6H6/Zpeght7k3nCbWhN2MmyOjdphs9o2U8bNf19vG9MTcgb5OE2DibrhNiwm6DDdjJu/E2WCbN+Ns/62b9aQRs7Q2SPricNlsmwA32bBtWI3tuANiNhaG1TDbXeunfWH0bVSN8Bvhh9cpBvEY3EMbvW15KK/1tfeqtZk21Sb9xN0cG0eTfkht4Y20frU21vwMxtDYmJvqk2GSbN+NqrS7GTcohtzk3QYbviNhd6yV9fYJvvY3/MbA713OGyIDdWJvPfXH3rTb16BG2pFc0PS/VX+frm0NtUmxuTc1JtpCZCAA1FNq+G029eQBurE2EobW71wWGyqjbChvnE2wibE6N0lG/MTbrRvBfW6zzrGtObS4DVb+2vA1XfAbpeNwcm6hDcR+sPY253rtINuT6zm9czev3Y3rtLGElwn61rDe6+sgfXYibhaN4XG5pDY4BvR42rKb5UV27S9wDclBsjfXh3rL8oZImznje2hsWfXmybzBN6Sm1h9ephvz/Xmvrp8NuAG/zDdkpsN/XNPrv9fTJG6FTe3etgfWYPrt8N5r612DaPesI42qor7O1pGq/xeaW+tC/Wf3rSP1iBviB9ephuCo36AbzX1hnG9njYgb5l/Xz8bYu15WlH+eZ3vPl43z8b+eN4zG3b9fipsUg3rdrSu182M9/Xxi+s343mYbDb1+X60A3yXhv1Y2DPrI31pd6+xTZAb6Ko353r8v16qmxu9cN2sXkXsarO95wbG+59b+JtlE384bX71oBvn+9Y6ptUXmCarNcxSjGzP9ejRt2fWv3rsoN4/61SDY5+usI3NPrluNkam6wjcd+sog3r/rcul4CizW2dOxulU3bkbDBNo2Gxp9ereuDU3TAb70Nmf6/dTZyrOK6W+qb9aNwd6z4TeHesTo3+MbdH19yG2e9eRBvNfXXKbc0VlmqyvtevbOAABI4Ga+v/fX8IbouN5Im7t9fehsDvXLsbsZN36GzX9cShu2fW3UbN6Nrymy99fRJsyg2Ekb/pN34m/6DctxvuY2W4bqqN8Gm9F9ZeptuABN0biyNlP67dTctRvg43R/r4AAEBvjADd4RtIU2mYbseNzn63n9bGpuaw3vobixN4Gm6iTZvxt4A2Z/r0NN7as/TVen2uM1WCGzgv1g965D9cr+stI3BUbP4NvCG7rpZpqup6XFdL4xNht60dTfjxsWfX8ab6aNomm6sTdJptfY3swbWH15YmxTTd1+uXfWr0bNZNn4G54DbBJuuE3aQbYH1/+vnKTZvxtdg2Skbrb1mSm9u9bMosn1nIazqY16d626jbXhsK42Msba31l/a6FRcyMtK1XIqLct580m5aTfAxtHU2UYb6JN+gG0DTYTptXU3habj0NtKm5djedRv63mkDr8+l2X6+e9cF+uFvXAUbx71oj6w4AH/xuQ/XW0bHwNnCG80DZ6+vFU3V/rYqN27G3SjYLBuKI3TCbQsN/jGyWTYcAAnQ32QbsH1oomyUTdYJvqE30SbB1NlmG/mjch+uQ42q4b50N6Wm379b9hsXvWC3rwv1twAIT9dO+ugw293rR31gBvvu9cF+tLvXuvrlINmIm7ajZr+sWfWRqbNf17VG2+TbJJuW1mnazEh1l2s+p9fc+sWQ3wAAeVN/T622jbm+sV1WXazqv12t6zN9aMRskfW76b1dNjvG4gddOiv4XhzorHIAf7G4DjcuBs5Q3I8br1N8AAKnTZshsc033sb5+N6HGxsDeHet503TDrsv1vd6x59cTJuik28abAeNnr60HjfMpt7vX84by71i76yeTaz+v3/XZQb7FN/GG/W9fSptL1WErT3JERAy7WjdDxsQfXqMbo8NmmGzlDbyhvRI3vkbA0Njt6959avRvEk3qMbMRNwUm3UjeLRsrU3d0bRDNuCmzujeFhvafWNPrX714dG+B9fAb4F43b6bilNwrGwETe1Rub/WqMb9WN6NG5e9YSRtrvWIG+J1NmGG2IzbThvgM3/6+3b1pim2P9ejRu7027Ubs4N/IG0bTeuBtZfXG3ryAN+/63jTdsxt4A3xCbukNsGG2A3wM+tFvX/DLbTAils9wDc5RuaM2dMb/GNjd6wTDfAAAA42nSbwDNltG22jYjxubE3KQb8xNuj69/ZfmOsRNWz6zkn1hmmzCDZeisTZlo6b+9Vs+s5nDd/+uWw2k/rdH1i7G3J9Z8+v7HXZuQbsNz5GxWDY6xuDU28ablmN2em+DDYixshY26PrrQNxv6zwzYLRvD/WsvrEDfU366DDfc+vVvXOcbDb1l46wdWYyZsV/Wk/rRsNwXGz59dIbMUtmYIbzCNyZG4W9bohutw3PIbpUNwYyyCdb1hvFM3mPrUzN9uG0d9Znpssk22cbH1N/xG/CdZ3vM+w3imb5+Nxn623Db0RuonXTqY6J1kuG6DTfgpv/E33MbCANwhGwR9dAZstw3KQbpxlsk6/HRefqvbM33YbuMVt+q4FVb8wvEo3Esb5KN2FG7szeiZt0xXQsbyWN80G6u9erhvwM2OTrxF9bVK0XRe2+tOo3RSb/7WbMgNDTd/vOpNm8ibYDfMU65WebF+v1vWGKbt8NyiG3yDbAavV0WGfL6LNzFmxfjfKBtHfWV3rvtNq2m5QDaphtJU33sb8/1/gm3QzcShu1vXAfr8oN/U6xWGb5+uyA2qMbP71r+G3EDfgfNPNnWWbToN0d67YTcnBst0X3oz39fat64x9fTxuv42KTLzp1pomzP9eRZt0mWiEAFhNtBqxM2d/hv/w3tAbY+Nops/3RYjivKs2ImbF+N8Am/hjeIJsgQ2xybQxNgd68AAA5ZtS/XgAAArNpps7g1cBABi/WD0bv31heGzh9c1Bs+02JIAriNgd63+9fwZurU3+HzBDV3wG27Tfv+vM43RSbTjNuRG/2jdtRvb025vrfmFnQGxWddT9pAfWSibc71uhm3lDcChuB43TWbkENlxWqsDbvxtvfX04buj5qT65P9a3evCfX4KbZJNq2m+X9f4JuYk3Uob7plwF0EQgEJ+uDvXxob9MN3lG0OTduZvDUQa2bfRN1Vm5+9Y2xto/X24rc08Mc6y4DalhvyQ3TybtkNpfGy0jb0AD1s2EybLSNwim/f9YXOtCTYxfrA71kGm1D9ZXOv8Q253r7iNjc64mfVr8tuSBk8bpyN7CG0CDZXeu2M2x3rr6NgP6wLDdipvzs2PZzJwN+/6y29bgxvPk3B4bOgNmsyzVDdSbN9Q308bzUN4AAGNDYmhuDk3T2bNeN7ys3fi3XusjM2MWbhYNuAG0BTYwJtSpWtsGcTNhTAbYjcB+tZM29sbJGN4yG+BdaEmxQg38gb62NkKG0RTYfouzmWiEAEHNrP66Mjf0xtvw3ELrq5ljBK1uHCwSsmN1BLLEjV7C6+ldaw5vav11WzCHNzjG4fjbQRtiXWy5iwdNib68tjdQpseg22rrgIAQAAJnAu711qm+njYvJttPnrWzIDFwEAERzdHetIg3sIbB6Ns968BZdZbNEc3Lcb1HNyDG2ejdeJssJWNErFHN8L6zR9aE5tV42PQbonN7v6wFTdZ+sDvWAG+zON3tG0lTYmRuFo2cYbon1ozG+aDZwhttI3gKb+l14Z80Rzb05scY3MPrZelvQAHZ9dWRtKE3c3rdy8Zdm4WjYaZsEM24ybw5Npf618TaIxuyc2SYbGQN1gG+jjcdZvBY2WSbxP17z67Ejb/Rub42hnzhFl4zm7xzfNBuBXWSgAFnNud61Zzcfes2c2HAAdnNiz6xszd1+tdg3D2bfjNkXG959aAb7AAAP3rB9Nnv62lzYvevwU2fabS4NmzG7tDbnesc/Xqqbz31ld60vDci5u0c39mb0zNi361EzdK5vzvXBIbSFN+Tm9LjaY5sZ42vkb/9fW1G8NREs5v4fW4ubyX1uq655VZMauNXWo2bqyN1Bm6sjdo5st42C3rLTNndGwEzfdxuIU24KbD8NuP6x+9YIOi9XX1jLHjVl1m26zY4pvEc3UEb8nN2Mm8bTcJpsAN9G3rwWNzD6xQxeqRtNw26/rpf1umGwzDd25sgc3bGriXNnjm3XTdhxvBY2pUbv4N8Bm9mzZkpsJQ2kAbMANmzGzZDbOutioMNnzHjVt5G8JzY/euPY3nsb9H1jn6wH9eH+vVvWcfrIDfYLG6BTdfevgU3ucb4AAPWm2nDcFpt1o2YWbq1NpxmxQxcDZvvA3tgbMl57D68wjeMxvec2pQbbgAPf66BDah+v9E2+YbGn15RG0O9cLBsA/XEEbp+1sGs9oTbWJtCQ3YIbgJNmUm+9jcPJuzs2vib5+N1km1pDdb+uNvXgOIY711IGzX9ZwhtU83EybnDNm9G+zTeFxub/Wz3rB6NqkG5QDbPxuO43+UrLN14IwE41Yfesk823EbUoN8wm8t9cbevdvWvibWqNsf68BzZtBvUY3qkbi0Ny2G8FjeTRuEY3z3rFDFzH69n9dHBvw2WX2zVDFvLGyZjaLRvZs3sobPtNjVG2P9eN5s6o3Bsbwv1uym58TcuxuIw2nubPcNgzG0Zjf3etAg2LSbDWN7z6wgjeDZum3XWGLahNlf6zGjfAb5Gs3gKbd3N6vG/R9aexvRI2LPrTWNyWm6ejav+tjvW8gbmn1x7m0d9fspur/WLPrjb1ukG9YDY/ZuJk3yebdSNgmmxN9cAb4nc296bm714v60IDd9ZuYo20+bn0NkT64TDa4xuQY3w7rVz59WlFHdeanNo82Dabs5Nnsm2+jZvRtxg2YYbVTN6DG+nzdB5t6Q36Cb4AAXQm8FTeUJuIbJs7r1c3ST6ymTf8RvRE3Q0bY6NxRGwH9bAJtX43u+b3JNlH633zb5Rsbs3h3r5MNnkG2qjcF+vBY3mPrFvN2Cm8tDY0+vAABvObPiNwBvqH9Yb5vZ82IebFn17zm/QDZ3RvrY3e+bw/1rQm0L9c1huII3r8b1FNt968J9ZWJv4w2PgbN/NtHGymjYehsUA3M+b8kN0d66TzZfBvAiWBGLT1ABY6/6jbQFt//XvObL4N0Gm0nZZWivf19AUbdfNwdGxu9ePuuiJXdDQf2NggW/39cpBv582iBbKnN1f635zYC5s5vWgubbgAc0m45zYBps+s2fCbrnNxCm/W9bwBvxQ2KGL6MN3+60gWX/uv8YXawb77NhBG0BTaX5tzY3QXzvgNuTG2AjZ1ZtX43u3rqfNwimxoLd2xsMC3kHrqfnVB64MORV+vfc2Z0bJX1tmm8LjabptofXISbxf1xRG/KjdlRvgM2ZUbDgAf5G1TDfZpuqM2IcbIuNgIG+yDc2hupU3SWbNTNyBm3Wjf1RurvWt6bQhN7rGxQxcFOtBDRj2bV2N5NG+KjbuxtVvW6WAPz5fY8Jh9ZiZtZNW7jeCmA2r65zzfyasLA2zobhcNsR61LbVc+tyU3ZHrRCAQAAHHAIgNjuG9N2YYRsp/XVHrXiNy/G6H9c0escgAKgbRCNjuGwA2ek+s2/Wiwb0jN7QmwW9eZhuA/W70bc31uNK0VDdE+uDvWAAABRY9Y5ACqfWXGb8711QG2mldrBv7E3kWb1ZNrFGwh9csYtPdnXHran1sYWxpDaEFvSw2UfrqgNoZq+QjY7euZA2AnrgLgCZq5xQwrTNKg2AgboNNuDG7oLeLYv4/ng4bd2N9am7R9ZG+sbNXUUbDtN5t64J9eXhsMfX7fr2aNuUa9auBLfNXC2nhb1Atu9GkY5ZeFt4o3+PrJH105q8DGhsct1PWipK9jlp5q+kxdOxvVM3x0b5f1uCm2qDcE+ttPX4/aW6Vzp66y2czhvwi3l6b8IthAGz09YGeuAgBZgb631xFs9izZvetAtWCizUz1hfG3DzeV7PgtXx3zmgNgr68l9ZqYta9mXfrlIttZ69+lZgJuUi2tnrgGVvn63EjZnhvbvW9nr4GVwfGwO9a7BvQZWTnrUn1rlGyN9cuxsIZXLnr++NgLm4+9YlFu5Nm7nrgIAdQG0QzelRtj/XsMrTz1lSGzKDY3euvPXQ/T/P1gr64L9Zn+tfPXyMrJ2N/D62B9YK+skk3WnLeLVmdm5ozeYRu8i3u6wBLVsYmx59ZtFsvvXrAbNot1Zy0S1b5+ugg2Jvr1+NmF6+s5bGJudg2t3rR1NuUW9hgORet4U1tvrRoNoX63EDYpatsi2Jvr8x7MFiyc5YpFsxi2cXrI/Z/n69yLddFs3OWCXrHIAAUW0KLeJev3vmKfrYot+Km685apevSi38vrsots/s6y1cVFvKi3kgbLL19pnL6Lbl+sXfXnMrF/Z+qG3qLaAb4z/WIXLnmV7X6yaLfv+vmi2BXrr/Z2d69aLevxsivXHmLM7NgH606Lc9Ftpi2pXrUWV/n62OLYHFvxZX5Xrfotp0Gwv9YLFtKvW+roKkNs76zYDYyysavWExbY/1mlyzq9aZBupi3r8b+r11D84CACzFuTZXwWLeYtpt6+KLfNesKtWOQAokNksW+29cuxsCuWG+VgH5pUWyN9ZVFuTZWmBzu64DUW/WLb6ytIsXdRb+otl16yixY7Fu1vXTRb5ot3162IOatFtUw2DxbiHJ/Vqx2zZHFuifXnRbXot7d69q5exYv1Q3pxbSEt3A6DG9eYBsLi3Axb8b15j8yZuC4P5v2D5pjhg5kli8YOdtctTlnksyJb157K8lmWEUzI9WfWraplkqwHAYknet/xCBWLaPoMHKwYclEF7BfmWhzOJ4ds6ofJxbYuGngtWLpbFroKyMGfFgvXdnqwMWVjWfYiTlfLRqdfnRJbCNUcSW5dhADhvM4VNEzMktz8YsRy1n2LTuXCiqoIZyHI+MRnfUYruWRcrA11iV9MAQFM+sYjnCe+lKMRMiP90HTYvlX1L3LP82JXKxKyCOCqwhm6RzdG4W+aBcLd/cuiS2VWwdmlh9qyWxeoltuS2cvr8gV8Dy+JBZSWpAdW7mrD7lrzil+1Y1YK5oD4jmuHlnUcGO/24Oj4dXl2LWHleb61h1ZXyKRNgA8rN31iP1OHlfeqBkdW4/LX310bipaGeTyu3sWrQzZJZxjq2Gtagkrehns/zZaMH9izx1cvXA8dWa/zJWVpWSkhxeb/OY98oDKmnEdpSrmGeFZpZNhRfreMZ/xszz9bPHMrhMefrL4569pUv+a1+u/OwVuapglSwa80JWV4IReXcxKbylttsKCBS3ytscWmhCYjtNLywABf8luWLUb8rPnViNcF/yAIqtp/W8pBhRl+/K4heF+sz2kATPa2jAEQxIAVF0whcQA2vLUhZnCbCIYj7oANCY22mlbEe0gDCBhpbBoenEWI0qgK04P1xiUgvMjXx6MSkgYkFhgVY/+sjdXzkouBVgPq2bVDABtxcWfALkANpDcL8uWt2hQiZaCrG3V9lY9lxeQEs7dWgxKTpVW6hLjemDErvVBCAbqFRhCood1bjEt5aNfvLOPFmISuQ5cGnN/eWnSoWEydV9Hd1cEKvxS3nurshHRacxIDe8jOSFX7iODfhdh5FsBaOQCRcUcRL23FlLisMsZG4usy2uU4m3F5wG1MBcP6sd8N89ak/F10azoVaEBrMy3yfLaPV3mS3DOe8BsnAWBflB3Fwmc9dxfO4sieX4gbDhVvCmr7SQSBuT5XqerZ9ZxyklBdZ8KvAgWe1wcbYaMiiMhRCKuBHQcSMn9SB7RiMhRRAtrsEjVWqRVvEC+kVfaYL5YRvZoFst+YGy1Zd1nMrA3jlLIwjHYG26VdCyvmiXllUr0Z44GzecUN6sRyYA5biWF+oq+AQBOoQkJNber9k1nrcP7OYhBuCXX8esbvVuDmxyABRYgOORXerguV9Oc9/UIxBtjdXA+reINuuc8avA14uDCpGQbuk1rRTKYZQ9Vqp9XdeLvc5qYqzX5cvXBeYAQRwCoN4Ry2j6ABYhk21gXzKGNmQSzCeGgYQbIMKwLD856fy/QuSWYi5+kvQbI5xfvq5bpD7luDy3U+L86Uvfy73Lc/JrRg23jr4klbcC+XxafYt3NgKfQFDDevi81OYnEqjKXFPWuYNo4q2vLfgko6y0+Fza8twiSuPxYwgvA1Np+Lr6+FsG9/1ZZoTHy3aVB2UlMgK1/1apvoZQ19u+x/F+QwFfLaLuSf9W7irGEFjfiw2URPlsnvGIBrZ8ZrjcJauCICskQWHir5ka14q+iZYymBfy2BBLH/Fp45O/+kwctPX1PirWS5xN1oFPWZGvmis+ikCctqQKwJYyQhtFLmvNAfnYB9sMgraNltP6UUQLwGtHrPOvKUxbBAMES2KzEN1QKx2bUQVs58l2BLcg16pc/DMisstcUMjArCZ176kowrcUhsiJmzArFc6D6Wzc4AmltqCWLBre1V3AZP0Nm4VtITZnIbXw5zeYI+iEK0tpaWXIbhZFQrS0J9VaYyfwAoobriZ7oYGhITrKuDLmRxTfDdAKCw3Vf5HrlQ3cSriittSyxt5UiEviPWATwdEhZxM7kNfiea1Q3j8bKMtnBhq1DYpjY9Q2R1so64RiW8EFedwB2BmKY2jEtmaG20NfDHPuK2XvLfQ1n7vrQgG3KQSKlnhol0Nxkq9dDamGs+b1xpUiDyW47KsNfZhszQWNhrPcl42oC/YjhrLmy2tZTiZEemQLp+n9ogtMZp8IxhxEeWy1RGgYRKQB3E6gPoHAoLZoyuwjoxIolbkMFlIK6CNdiVsMS2chMqNZRJW511BJYho+hHFMkyIeWG5iNe8rN8lXPoKR8iHiWzrDYEERFGX+nMdy1KjhkWWbxGpaum4FLvI1uVahT6ESwsDJnkVzeI1RMiNUFabvqdfnJlbDQVxYM4s1epEuZgIxJbOyZ9Ua1HDeZEuiS3mVzskt1ZWzqVc9StyB8i4b/K5kZWwjVAnkTcXG9SrAandpEl0QSx4sTchb2Li4li0q0JNYTJo6/IZdgKVEdRW8aJZAWh9w3zYzBtQcdvt7LaTGtxH0HRLkQhMMawJeBEbDjCFNl64LZz0S+WNbckAHdX/RLOZlvNyymubDEunipDDklGFNMq51pZhCtZlWI/UDbaXRWyBxbRCsC/p9TL28FnjmpWVYrTNtK3O5b9ZVw1M62uFnoI1UJiZipCNrXQCpAABXDbrn2QreQl360pirSmVRDiXQsrW8iRlW9OVYlCs7dXY0zaRZzJhiuVegVvfjWR1scejCi8y2xcPXD9+W25bQoRJrazrGbaGuOI2vHzVZPZCa7euHEVaBI2XcLj4lvCmuxIF+sxtswj5E7GgXOgNaQGTyJsAwMAABbEMSZPRNc6RtqbnvRrCZNV2zr6Jc7YICzp44LyitpFGzYheKOb1w3NNzIVVs1W0UHFnoJPK2ZDE+FV26Wzide4JOZu5l1Tmk1+AzqBmadVslPJoGAKgGU5WzZNeeRsZIWOKryxUcYjGfQliNQ0th1s4wKNnya98NVqQsw5XCPjbE1BpTB6X1EquBw3pSrAatyw8Csrc5ioSVXpkL0ct7NW1Mha/Uwso3kLwm4VrxzSy6y2yyPzYbrMBjAeNKAJRk+Ty5Nl9jwJVdexCCAYiVbAtMCphG+26Wea5yVAmGw+Di+jitdFDFsB4AHNVu3+Y3L0k0wL1G6xOaWmsHhXe5b/DEBxYMEeBFiLaGJYVLuusFPrtODhzmg0xgMlMyCmUncJOgGBVteG9JULFWZ48K76jeWmsPuomLsZdV+dW7fKhLIj+LWAjEFVycy+NKMD0bBux5IeLLB1oNiPqreC2iozX82IA9AUYQlQFlWuC+K2AjEM9KSHi3VJf++BWHgDDwMRqGDrDJMh6xygbBGZr0Mlz4My3mezVspK24aySlDYT6ogwxZKjIY3a+rF8toPiGBxHfoBNWo4ayOSt5Shs3LcMqtqzXK1bWQAX6zCkrfoxuToWSezbCREeS4mRC/VvSfVdVbZF2YLaC+FfFkv2zW9/LqrEXBgkssfg6xwQZJnMSkyT8miWrYfWv6uYB6A9EyDjW1mOHkoYRedmRrSc1r8KynNZcxucFW7pbKGt81Ww9LetAxPS23JA+LEXBgiGrdixtZLNQ5L2at0IkgRVfhvQNCY0N+ltWcRQOvInvRhRMmhjj6QgQvLO8pbGyyLLHDt0qGtiIQghMjSPClyWs4oJat/FW1MJaqmRqq2PDEFGt1v+lRrcfVv0xRFBbh81itM06eePmud5mW2II8ljuW+/6Unku6Ch75r7lV7oSxPmfigCYwB5GMhLETeS0SIV3kvVXkZVatypqoU/gYkSMuwRXEFrZiEPyq8xNX2ow4tgRSAH8liKq9eJbWODma2nKg/EprV00hzCiazE3omhLRJEZha7rSzBquOUkvVbtEyVkPgVPAkqQ/rX75m+OprIAGrjeIUvoRXNcbHzNiZs6prY7gScKWStbJuqICMym2BqPBLRJ9wSGR4ARS57mbwivVzdw64nuNn7a97jYqzMkRXs1bl3RWDW8HLfImRmzpHss/Q2TAxMB6dyVtYyAJhsZWtogIIXjciWu5+k1Cz2atvi8CkbXSqsrhMUlrDRV7KpnoWfeoYKUNO8bva10JSyNLfy4H7d8rC+pS1mVcHSxc38oJKX0Nw8+NzRW/UtbJwsjG0ySzTg17jazrGcYVu+JnOA8BctpRyMYcRSoQczJZ1bKC4Kqq5YvGgVsWzQmCYBx4Chi+clFmUsGbBlFbfH1SHW+Y2Grt5sIZaqrJ64GIiggTaigBIE3jZza7BFpWs1VYMivo8WljK7bYNxuBTrZ8PM6eWQ7yqeF2Fa98pYRWtOiXupwWjASvgm62DTYhntBOl0Oh4ftsMN2Ff9IA+gFkmKhN96q/9BRNwhZthQmw804WaOK8eHH4iZvFpJC9hNwaq+LrdokBcBAHAAduJgOiNAphnEDAcRzlTFHBTPK80tbwUrIKZK2IM3GdwAI3LcKgDaKYh+4t/DS9DBkJjxYjoBYPQwvruB9y3UTY9WsOCJb+G2MgPI8J0TYhuRqWWA2Lzqlpi8Ah1SXbAfHnsZATD1d3W+D6GR4KjxWmLw+KlnYm7dyGFVtHuABBMpTyMwIK7rZfyDxrW3G4/EAb48GZLaXotAnnrSzL/6YgHLEFEqDjjxFtFMFZSOn0DCTcA2tCTZM9bPskHNQJtsj7UvLFRyAsscmfPWw/KDU0v1Q4gsmHCAVyChWUkGsQ1AB9GU4rYTDWz6FZFls+RWAKzJet1Gy+3rb2AAcWYVgANet7MgMqTelUDN620yzbetncpB3rcnrIvcWjqrvetlWEtDlFA0v3KXq9biDAAvWwxtfqhyW9cXlO7ZN48s7wMxd1vM+gE9bKett52GpZbwN6Bk30ybF1V+LywnradPP6MosTwFwQDzHK5BT02tgMISEmLTGV48ImRCyCJXVWbNrZptX8s58rbYktuzWPdb0kAdHAIgwGnJsXqI4lbFgXKkm87xG51teAB+tLtEgMacMkrb3kzG+4PNeijVrk88gJcmnB8Ep9OwR8iINsC0xjGnAq62WHrwBtw1iPRIHFbC9WWloakFNz6dZKrfcDJLq25pwnct16q5lpdnq4YWWGiCKStgNi8Vpa+qvQDW02IVWl0ogr4rcdKCHGCjjwfBiKUmCLrfx1tl0BTtrSG4QA2/1pf0ZSOMElIAcymDNsK0pjwBxyGBmwAGlNuwAlpTabPM6U2N6LhHxp/StwbZcfPfcX8wrJuqMmgvG2FP/S+u4DhLVtVkZCjdpdx2sG63JhselVhaTCqGBBkRfaXqIAMDAOJPNxeHZ9BOvoIFarO14HS7JWbqpuc7Wo2LY9iWhIC/YiIJSla2n2IiNVyci/VTbUotba2mXAnhiPmZK+daN2vK7WawYO30FJAIiI1g6zmq3K/cvzEHw28+zbRqsz7W1KLbbMJi7OmrdCNvPkWdqb8kAVVW4+pncYK21pSnYhLEYmZL9TZJqschWVJAR1NNMiNLpcmjjYYDyar8uliPazNZZHsS9RWBBMxhqIhsHkEC1ptw037WANbZwaIJZNe9ywky2GCoPIABji54wGsB4DcYl1bHGt8va2aGjRc5eG2X1bO9KUY2ySISeEt4TYGgAvtABUiApAGDEQrFQ5Gw+bYHelFPtbT2vLFICGzH9iLKs4vtdT2s3VnFdLl7x/jCMMbbGNtdQAojbSlAOaQmoABi86qdA6fQN3AE6W8zzYostY711cISj1uI9KmNfvys4ql4azr+18KixtFY/2vz62HwA/i1gUAF3cBNwgBGIW8oHGt8YQpKrRzlsziA86b20Vvja4VragPAwbQj5Ex6t3SAAmZh4dKe1WILwblVioTIkAGZPBNQAoTwBbEcpkr9ZmQwChJwnhLmTaekbJfLGaNttjEDpbXrQGQxMAbY11tGGou9LbVEGo8DniDPpts3mIDLCh1oI8NXVcLqvgGX5DrJdV6EjJybZjpu11X/6bDdVyXcglrfHPSWgUMYYKUljHgD7GgoMtXRXyuzAljFeREp2GKojM0I4WIBbEN9W3BBkhNsAVQKGbt0V12c4erfi86t1WVQ8v1mYyxsgpmn1vsHQwVMSQAYDiM5ADm5g0m26KkLzueUgrodY/bDoBYhlqg9AE946SbbPYISTJdJAk8IQrW391ca+yAAYgTbZ11HtW0jAAtNv+QB+irdWGa026trd+5LaQBiAsJplkl+GvVbPrPAf8afQ8Wto3y+EZYFkL8PXQ/LiRlvAW2kZcgAt71XsjLRo1it9GAwmPqsh0XCjLkytx02zidcQvDJK2TxC8N6eaTBWxByEyOTXKegi+1s+qzveaOVvB63FR8wzNs+s+ohbdVuOlWaGzczN7pW3IcbN4B0tg2J0CFVm+q5Sdd7GqJkQP66kkN1OiwnRZOZtHK2SzbgoMcjW8YaneMshTJKuwjzNp+q6dTAxiv5LVxzbqxl95m/gtb8wvZq3E9+/yod4yzdLaqmSUgAzow4LNp+89yddqDODwhTi404AcEy+UNwTJqon0wGrYD5t41XI2AO5C4s30orRgl9g23ErevPKjKXF3StEgFHW7wbeHKKqUEKwzZrAoQxFjVwAttN0XW1wZJ9BXWzadYdOvvRnbQwc29PB80g1eFOsW637zbKc0WoM/+0AwavBxXfTrCQ3f06yg5bUsvq9ladb8IAIeKwuxNAUoNdc4zr3LZsUy28pakkA5CZdqzxBBWVW8PWHwaty3nByAwYiK82wE0FHbOacQ9TLi5SCNmxHNyy0t6pBGlMXmAMqirXjegbNaklDeLBcV8HvuRsy2bMnNmq4rZip0PW3T6D5Mu8QB5zro51hB8wDLf2KCktg5Lboet6rDqYxaEmzSmlp2bvLlxSgPOzchbPgq2inyvsl0VdEWZdBVsHxXw5bsZVuTW+xLaVFTns2zFbqTZ0dcNaTTtCAFy2ZDbGRt9sy6+zbPrPfvMMsAbuFYg23gLbaGtZK3q5wgjV1ls2KdHWohFPn1Wz5z6EK2+RbaQutrmWy9L+HNyp85I1ci5t53ICLr6jV1ls5TbSSttQWXxLrlNtc+84LccMsvGj1DLLsUV1i68o1bY5u0C2iEAKct9aiNjIHw5uEXX45bCjGJdW53LfIusbGXtAucJGYw1Hv6UTIgE6EGj0KgAJSQBB2DXKt0SAcjEzUVyK29LwAMutYJW7OYlFlky63VJf+VDVm34SInutrDW3P6S9yhvTg2PElMgRNeswgyEsuEWWErbbIFYa2+FddGtv+INpYMXmATVW9WBmUJqdYZoFMVM5Y7KOCeBq5vZW3zGrmitwcq2NbeMNTSQX/IAAiDIGTKkgAyExhXXnLL8C1kbmyM6BkEvzJXTrbbSV9xuoiXzSPBrc3MGLG3Npxq1WTxqtuWFkbg6c9DX39Gi52ZSsO2X/Lb+Stxa62ylbbbPBNZr0Mfpt5+xFvJijNvl0AlZzXMgWDs4DzdIYtONWTdUe/pHijK6DUINvjsAf3jqwSCiVPeteONvaNhQGEKkgChi9Sg15Qajp11rrb5WWa24i83UMQv/pfrMCleUvS1glbrkCQXA4IMaN1oYbDNzGAYB/NI6cA2BBeaeNkpk8/S3EA9GwLSmM66+rzf6uuLIQGbba+GC6TETej2ABHyI9/SVJt3VBn0A0A5OOMBKbbk111iANUABkmurYMZbrr7Z69TFO2FVVIrgkphGyptwUGJWxAPYhAGJutjoPoLtS7Ig28ausMWlLAUNtuGsjBV0v/RzThDWw2JtnwAEagU6Uww8AhZMmtV9GJHT6D39J2FllbbUEVboVJejj8avY4MAmrZNtguW8IyfP4ybMQ4NbOhZGDW/8qD4Kte0pROzQTVnO67M0iBKjWY1jpM75WLelC2xEjMwSG3Z9i3Cx4IzkCkLcX6tkBn/0A9ADFAm/+kowBuL9c7b5BxEjYH/+mXVtRthprbBpyVY8OwBmwFuR2W17r751s+s5TbSB6j5FIomr4g1/HesgphoFuqNW6Bbh6GVPrnP6RGmRn/p9kG0EGfiAKLqTLtuXSYJgABhgJE28eNAoYv+0QJBbLeDbVK5ONcJVvNy29Ur1S56qpDjrZrtsBa3TVOA0WFB64oxahfPJy3jDUkPFyMzHELcbVtkEZwXzHEgY7y1EyaLsgnq2HSapJ4cn0ObSSvsuAuXJsyW1WAQTNfbfRNtP2Xt9zOZAJIW9c2UZfO9rX/7LYj1z7W8A5Z0YvSPWwHLH0guR65Nj1eNuepXr8rFJZ0XWs7pQ+VscHJNLbuHl3ZsrU1bC54EDXPDITolshy701fejN23YnHr6/TKPW22hhtNu8MFCHbzj1lhy5jMksetw+QXTMz3Z6tK2G+eNHN7C3AezLaVhuW7BeCblvwa3LL6Fct9HK6kplVUr3C35RrLIlpeSJ2FQ+FvXo150rwjtrwAAU9ZZABFPW1uM2ytykKhJLfOzg1PW4FbP6NZ1cJulfDHOOUkTPayIt55q9uldZbOM9mTcIuItn5q3jjVGevfpVigbZItm9K2i9ZWACzPWIWr4mCDulBk5a7fNpbagvS3dYdZ6447f/SuLOXAMrO4gMDKwi1c7yt7LXjnrSLVlZ64RbclFue9n3nL7AOMPs2hlcj7P2vXHnrZvpwFy3TqG1FtdMX3Xrgzl756969f8gB/PXJnLxIsAxgHr2ftFusZW3RbTzlsBUMxbZ9FsCZW43rCL1pkgYe+d2ctG/99nLUYtyx27GLe1E7xi2VnrKwAJMW9S9c8dvpi26WrIG4NPrjmLaectpbbCLblL12jgMy1eactWkAvnLqvp8/Kw89fsyusvXOOqFL1/aQZy9dZ0DcvW2xbvL15J22WLbuYtZOXrsIg4ttFy9k7fOcuTi2DNEEAZhtALi5bnFtwvXxnbHzFlcW2y9ZzdzqvW/mLSA51x2zuLclasyCWvAAh4tn+bIc9dPFuytXpnrhFtrlyzz6YoHN9O29XrmgrVrKwRYgeeuOvXPxbbL1unUD+LY1atTO2fZInr10l60/FUmytosW8nL12EQN64tlYbqttURkJburljZ28xbejetSOgdsrcb1lPvpJtHtnKI1mb5wj64fyAGNxgkMSbAB9Vqzpt3QgAMRmMNQmmUT6zAY9NtqEGPQ2wj7d8vAAqpt8Pi8IciyEtHyJ3jLIGt3grGmVdP4ZFBW9dro/jKoeLNHF18uzRxEsLx45Nl253lch9CNFBq2SxI1oYWt+eEh4sw9ncLqArtj1hpYfVFduAXU8JbbaJY7K4fvgmnzSBnzsrvcgS7K9a1bIltCTZ30QNhSSiW1oGZ1dsQZBa3L1PaI5gL29folvSaX31LQPc/Uy6G1YZ8tmwBEG+NJgX2y3ZADwmSVmXJWLUrFkNq9DlflYvgngdDwnPUK1sNm5Z7XBuoQjRLtDllkS80paLavXiXDJLnrFxfaPNQHhAD3KW7RA/yoSSWyMGekls6sWjJLXrFnk/v+uGjds4zkWPr3bVtWW4m7fDdubEBI3bsxAZ1i97aGHivifWdJbpz16egKVoUWYxTSoCoAukt+4M1mxbXUs5sXyXA+ploH8yqrZcFlJu2klkVbt89y859czYvjBw63bC7/RqS3mxZrXCE99ptLIX17Vi2G7crYsmu39crnktvqiJuoEbYvju3TcraJmH1235LYWjP6MVgVagUttr5Ph1RLyvgdXlnLRzAAgSydlAXduEeW6WLM7tydi8yFaQ6v3dXBgAUrF7bkAGlfw6uJS34gAI4MMjy6lLc5WuF+mV3b0eVkbirHlcFkvBAACLsu7t/Uy3x5c1HCqyWGOrif5ofi2LmXjMsDNnSpb/fVitsBVLYJ+umyAGsoT7tyvK+e0Ac0YSdWpbaD7tvg61BxYEU5GeWy1z2aQEZ8vL5Y6luJKWUPb3UtpTq7LDCV+t4cXsMIg0t0fK8RxbrctAQAoGAm/5vaq03mJwADIN9R5LaMw9t20vlci8uHFxUQA1AlkqRB3Sm9+uSaWz3b8YVhXixZbF7LnudXSlzy7txEKyxOaFzO4DJ9ZL07twvi9tLdYnOFGW01lfc0Zey4vlG90v9hXnesiJAKcAHW5cqsvGHE6fLMMAJv67cIW84u7gBDjBqAABFSyipdd0uN6BkCrvFlzeKAgYHc4vaCXMbUOEZwWSyglfoLBOZXO8ybHE2j2z2xdMKuae2dPb7uEX6W3RGf+luxUITYAl9cT6kFGGBobDHeWHIKoMts7y4lxePfB9MkPZIQTfa7yyOtlu8sCCWX08ra4Z7y/bBMSAsFcXt4odrt0gGzjLfOkBTcWeCrVXF122kD5c60sahDLtLWfV8mW9ZLfPdv2CXofLbXFpi22i8Um7CfdXJCrZJw8L22bOCkgTDcWbzi5HBRt25txdj6sANgjAbQrlsUpp5IDC56asWYerFctQfQDirYyjPLnAcPbKPViWWz/NiMKs7cXg5o6M57Hq5muDykCJUIAArYQN6+yxdxZZ8uqy2EOLgRALnglkDYniuRKWg2IzntjT2/qZb1lsLcXWQSkRll4NsbLfFnOOsBwvbWUlxGaHu7f6BtjjmMAc11AMHi1d7f1Msy9WWhzgzfAwoh+7cWkuroBlfLCHF1goO7LfoEtcsWFEGuvloVy0PoDYEt+y3nZzZqta8S6TxelYtjGWKeLmkgB4G29VQ9nO2+W+6SUcthBy+n5FZ4uxWr3fL65lzrALCDaTluF0ARkr23twNy0Lxe6KtZy2/Pb4ClhjssH1eV4tINA1eLBpyKJy8M2EZBtoiWZeLFqgdZS667f5Bvpq1tWL+vF79i9n1aMIakCXHEAg3F5gAMzxYgqT1y2dYztrt+121XxYgst6g27wrrvFwtixEgGfMsjmW2+r3ct9Gq77ST58GZeBClLA8tyJ2HHxf2cBLSBClLVytjYq3AucV9vguQh9LrcUaeWyXxf0MoJg3jfbjlRF9i1O2AyQJQ2hmFzz/lrviwgJfZjKuEg6+LB/Vs3293WXV4vdeA8pAPXt0/q0AFYA9uoWXxWL9LAaLINf1aAGv9e3FQYZblLzmGfLbvltLQ1hZborAb6zMgFbD9s3y2Z4z58t8oq8fxdt4tXy24/br8twAazWDaT9uVKBozb9wtNP22uDZHWxXxBrOLqfthYIIeDaf4uF+2Q/buftkv24w1dYguf8XLVLapie32x8VffBtfFWWIbCqlRPwA9Jc04uQCX+dLJCt+T2/AJYt9vm0XrxLBol+YABgrZEgvc+3qfbZFSY726RZdFYB7u38FbNE50f28HpYoEv4CWPeLpzgJ922INbJMFt+3WBLQiV8Eq1wJdisvXW2NBr1fZrvqx8mwUht6DWlIbrS5sv8DETlt4tjxQaPbH7tlQSyYKxMhtkcX6eIdntswS457ev9v6CXR3jFglrfQKaZfsEqFaXG3b7g1t4oC4AHUgg/thT3JtglpKoOe0ALUu+DXPArbQoGmZPp2BCGvICX8JLfgl8wAFENdZ77QB3tFbYy5vwa14Feqht2W3YhL0SZqKcLOQGaUutQ38hLs9+DNAM0pbWXPpCWoGAuAd9n0E+7YNJorLmCA75Adin0MCrTcVsRJmXtADtlvpkqtDbdpLRBXahL329ONcAnxbrNtMyAD7B/8lwJWxMNeCVvwdnMJL8dEyw23IjPcAB2u2J0Wy9loHuTr0GZ4sUwA1hrHMNmJW+qmcQcuCgxVbLjrttT27UAFuLXKko7WLkgd+YAAJpfrstbCXp8IW+1juy6IJeOEvbaK0rLIoQC4SxUJaRus56WnuA9vtkpWw8JZBGtcw2K0zKgdrfa2IHYIuwA8XHvblMyHQO/a7f0DsbCWmlbPJVxWG3yVZadhhu3vXbY1twH0OxADmTXt+3u/b2RWOD21Rw1hEvDGXES+LntoT2/kFfNjODdDlPbGWAdN20G2CC6uCwWijLzSl8ZW+UFfgEuIl9plbWK52oK0UHYpEsLK2knrSytsN2yY5bzdsn7U1lb2klkd23W7fZEvqOW3UIdQdl5S57Bb/XD2CUzRr27FnXQFFgEhQB7e25lLwUt4uG+kHbKDhfehlgr1ytq2+rq7drhvtm3mJr5O0bMqPAHdSAAZQIEJLAxlmFM8gJaPADNKW84L5oloByy/xckOTCAAQfbyprX0q38rdEYsdSWoTwrolpWS0+7dDXOMsBAQgxjYaMq5m1aMQ3ZRQEyrDfF4sS3awD3ED8sNEVbBhrdMq82uATEvvw2QXrUYYPMq5AHfTEuCiXStCs+tiBG9gABBDsb7HesbS+50X0crXDrdti+2nuuhIVzBG81OaGqgOOQM0APhlhsS82JaXXMdlWoNwcwNUiS12JdpVuJyDRsrdQcP0/fnXU4RsgIWiQ7ismUkO3Kp3vGuWSB/lQ6iNgxW0ghYuVtwAApDb7/6OkO4W1Y3KuNtpM7BRoljUK8P/maogmI23eL+CUI0K9YjaPEvMB2S8rzCF7t28G7d+fPXiWFoKdjfZ0K5hNZaVuCIWbPbtQAIiAGupeakuWu3PxLj3tgWS48AD7dsR1wSMrhqtk9M8arftVs6SX+wrjegZlYHAHZFYuvGSlg71Y4FYO/MABtVugVXukb6ElsGq6BJcaPCKrhoJLirF9wS2dRGWDv9GXyJLrnFhT26w2Xo7CeN8sNADXF122jsjfIqu/QBKKrzod3VBsysEAgCM6Xkg7d/6ClKxe7dewtPI2YtzIkl9yS3ESQt9txkQMwAfhlwSq75NaTVv4gXIw7xntnv24vtFUkteB2666u2l1RC3FNelKsFh3XQ7jDlpN2xG7dTdvyrpsprBat8Mc9WHb7atkyBpDLr/Ie9AHJ7erABVyXpMzmyFrcKy1ZbKkvK5BZFLtqUPCZH+JcH0CKyXZ6yafYLDQPvpeKQCWrRBxijuEJ7aIPQFM4uhxpt0iR2locYvYJY94vWZmE2I3N0KbsHf+kLDtZSWAprirFuwS7uADHVuFSX91bB4V0qS33SWHDsKTwqpLmMQzaawZADV1sg6KnkA4/c5qSzoeFaksZDW3AAAAAfq30Dd8WupLO6toyZHurbUqvVo2jBLCwdyJyxIZbMqidYAGEQTUlkBgHeHdXQBGMBMKAyBAG5sB45tbihYaBVtwXnMb8O4LJbN8vnSWeAAa6N1bM6VJcPoShaXgKgpJ4RGa5QoHgjurbhf1b7n/eQwFZKEcoAfSXN4odrtn6S5/dH+kmIdQwNbWlVqsqyWFdNDt4TJvPb7ft0+ME67bEcsIWXNlLCFARDW/qDbc7Oth3/lQc3txnS7xHfVsuy+3ryrAgB3DW3OxbwmS6B2nMrRGtzZo+zJaDYAjyXhXbkN1wpS5hHe1DvCyW9Q7tGtu2a2JjbgXPYOWFKGaYAZUlBGcEpEJMNgew7jHF73S9+HbrEAXYQm9k4XtxhSxGAgzDsWmWFPbJsl4eqx/ZfNkuuu3hNbpfKUTWzbJfNjNiR3LOLoMl30O67pbpRDye2AkrcYdxfKNkHadxtxY2ZFLDQABGS1IHfOEIqSXQo7xsl8IABaZatqwjwB+1LPJlsuy1hHezkuiNhr5wWwlguSx60FLNvWR3F8o1mt6/OAmHfsEtVyXJxrSodhnS05lZTABjyWBI7Okdw/y3pHdwjsea3QIrFaZr8OwKHffUs+a3GEw7gdkeS7TZcKUtBa2TMLR2N5bRHPJcirU4VWpw7A3tn2sC/lG+3qbyWnCslEkDBS/C2GiMuuu3yeL1kAVz29qHfDOPXGp91A184TKm8NzZvkvI430tbyC1ojWh+7bjDszBwSwx8/Ndz234peh4ha428fLHEd10O13qAAUumR315EpEAQryz1UA/dt4+BNPbd3lkFshgCB5xvVa2QqrcstrMIARdlFOAvIAgw7Cl4UZiLzxcv9u0e27vLElSNQtPi7CujtmcX2tbEi1zrW0hFbujvGh22jwj0djuBM9HeyDsCFmBZLoNyBL28y9aAjMSaBUgAD4AP4K6eHadxtTa3kVzIiloaHOTHeujtza2rFrPuNmxa0FHZkMtjxEk3bd+kJKS3s4B9eoTNrY643LYc6kB9eXbTQ6iVD9L14d56OxwAEakumKWuOwVo1nwy+EjE6GBTgAoGAh2thahsXjfujsmh2aw7MYdsGS01RGKAByB2klrl2t+vG4i2dhMvM+2bo7NmVj3UA+LCKHCgPXcqrnUDMj2+j7anjNWFn/1SValhcovYWb4iu/1h9xzbQ4AP28qWbcktpKWgpgrKlpSpnjGbxK1he3Fykaq1ot2+VVcJ74yR3fEzHAd2bBuKxfxYAAMAGcY8vFqsy7x7btYsMCXwzjjegG4Sz4tbIjvNKWqqrR3Ir3AIqxc6Uv76W5iiaS4cIO+YAAlkDPR2m9okKllLSx/QHPdtc8n5PbAPFxqS+KCrR1tKR36nogdlqiZFAHc9DvWh2wjLaylkeyzPFdtwu8h3ZQ7zht5zVOnhcsPPo8WblLHjfB721oHcwJvwgBXlrg8dwhIHR7a5Mvtx3+RLTOtyFa6KcGZ1tBI2M8LOd129KBzra84ueB2tA7O6lgeta5xdaGDucXYVLoQANaO27JHVYiNCWIo7/LYZRyAzjA8SiNKZY9LySl6yKzncgOCtOaXrQ7H3tslSxSpaP0utbIr4762l7wOy4SXmEtisWPY7EkVtlS4NVbrECw7s1VLPUOS2AHmTjqktWjXQpLjqlpQ9P7HfdYupTRV0A0qlgkQIV5d1QazpR3IASkd7/2xdhCslD3e3qTLSkgNVSwDJb1Lge+370AKYgRxAKWGnassbB2pnV29l/VSzT7YcitO62aTLJHYSn0LYRIwACdE3lg7imlswS4HHYgkp8lmXVLeHFoMhFMTf+VCB62TUIn8d1E9B7xcU0ui63JB0uxNwBOzhpZ2Mv+QA9NLvuAehO9hhFw0vnZoLLYietwi2/ubYnrLLB3nlsxAdnta4OZYzQBKcWu1L4cUdv25bHYE0t2x26s493tofIOnJbedj+QAVX0a0dwvW78bRA3DWh2jE7GVES7CFlHbaflDx2q1LSCdtTS6Ynd49vnx2m9o8dcYV5GUgCf9u5EBkG+EHEaVQK4nalNsKJ2eTL/yoNMs8sHYeIDbpF2/b0MdiuO4CpcnrJUh2+SbD0ZkygMgVdfUsL3GE3gKWl/c63q/SEUBYaBR9b/YwD0wJEnetDvpJ2F4Q0vt9RFceHZQEg4q2SNreHFlBO8201LUuD0A/AABid5ey0YncRmhYaAPE74Sd6cm+QndFYDu3Xo8AF41nEqy+WZ31vYaW1VL9CdoMhKonetDssJ2QpLs7t9smxmTf2PMFHgAZw1Gl0bZDWpfGTtS+2HpLG9AZey5MndY0t6bXlg7XGlqBgDxpdcgB9u2FWwAmlqJOwW2GWCs8bWbqrX+tnj26oHbk0vlm2WE7fL4YCoMOHYaEX3qXIVUhviT+OyPZfSEDSJ2u7g4dwCLa9BpaLqDDh2ck74Xt/rS0PrdByDmaXrQ7NHtkX219HfWTstkBZ3bl5Ns7a8OHYfjsJ8XIWwh1lxhS6bHalKIjIA4U7xKlkBOyrpaDYjMJ2zuAbwd7DABaQACTuHx4+rLVftiVW1FpeYDt8xWCUYizGeEO0lFfjGiYU2tGLcyduFiHIEjS9Cgp3uI7xFNys87UJaQTtVaXlg7byd8ni/CZclSCqyXy2In8d9jOJnHdlhjraXeKbzI2fim1sQXuTthSXtYAAKd+FY8sHcG0sMKXl7LvEdqk43p0F7LmvJ3npwDGliWJFD7fdIuaU3PSLP21gqKxvRerDvIFW1tL0ft2LS967lUNuasXodrn2tzQO297ZHoBqwA5A7h2lh+K704XC9vBh2XjbBhtuc87dpbQSZlDwXkAA8xWWO0RMhuDuymXy51qkAHUOzYEHcDvx1xQ07kIl/IuPtHZbItOG36or4OlmSQoSYFfYsisXF9IdhqBYIEjpY52vI1WAjbHybCiAPr7aMUvix2sdLc1N3HS+Ebc90t45Yc07w4duXCGTpYstgTzogqgP111+K2EbYVps73m72wZbF+72167c1DtFp38ar+ZUGuYkqHfGkt90lmpLRilpnKxOi350v4p3RWA/Um/5UMUbcgovXtneeLnNUBjsjoeGl0skWXBpC1Rtni8xTVbqNs0Xm0ZhTjBVZVFhoE12tbpQeAA25SPIIFJJdhpvL7WOjb17ZrjLWtpZtwjkSEPo7pxsxji9bpYa4wMKXwkYWelqH24cZc1Tuu6XJE7XJULRSxSnYU9un2XS2wfuliKS8yADjIg8NHtLiCpEeXi9Sg1RDuzERZabNV5o9OwdWaxTti5khE7UXtKuSwcbYWiszWXXUI/6dnkgAtxg1CHq8WubL6ad8vaxmHfz0t1uXdwA4rF0JOP0kDwzuMqXX07zxtxji/7Tfv2v/K311s9gl0eS97pcjpvN6XUmb7+1+uq6kneijuJmYRU7qwAbpO5ZZdtUn+sXBVLgdlg32xpxeWDvRSWuY7dQ4AGSx60BMCAwm3barxodv0Op0wucwCbNGj7B4Mlx9O2AtafsvLyXH07G9l7ey2FJcPCB4zJ4Lw4kdpQDHwAAB0wrh2idrZEd98rD8ncwsvNSWMm6Zl1hYIJk2hQ7DjvDuvbCfFvHwPSiA3Du/6XXDLzUlqE8AJpbWkvmAAq5L4h1mR25AZdhDsjVUII7B0VwW8y7WdiqSzYN266Oqdn+m4KbcwMsjSXVM7K5SVaO9D7Y2jtvOwto7D/lmNi1KbYyQz0x3c66iDN7ViwaJeIMsySE0DbDHZZzAH5AAITtcZ3Jw7HvtzuTLZnbmC7HO001a8a4RA69qbZvOLBZ2HE7CmdtaO7BVfS6LKKXmpLFplhQy3wJa3ct4ZW9I7F/tl5sGmUH19sMdlDPb2xly32wT6H7hATNqIpLQ+KMzi81Nb0zuEu2+iA1jdaH285gDySDxSXXJAd/6SgcGzHeakuMCXOM70kF2aOCsAABsuXYQlo8l2EEPS925Z0Wv3e2LAgHmd472z69RpmQfp27OL7jNi2i0JNlvUu2qSkIMYRl0LO2tHeEztw8kfDLh114GO+TxZiZtT3n3LbCmAzM27vVbPotpM2FMBowd/oO6eMRPqvdm3Eg7DSd2T22UZZd0vD6XfBLUUd9KOwknfyzvGSXtE7gCl4sOyGnd+jv4ZACjLBDZkHO5dneSDtAxW/s7lodxo8NaHe9DtgB2fjr0MV9HOzG7cWDtTR3UAA5cdmApNDwgPTuR0W1zbKUdxooGObdfqtonWNubRIsDpVG5HZfTvDZ2llASRmw4y71nfgjvlR26Yry5txmK88zeHNvFh23mbtJ1+4y35haCjuvGX4jLALNnYywElePNugQB3cIp5tgui9ggCLova9AoVAYGd5WK7ebYewZZWWFTrMJlmn27VpYRMtsp2TgLrgd3lO9i2EUiaqyWl2rGaIUeS3kgEJYBDgBJSY/i10VO9H7bNOtQNX0TLAinC3S02Jcgau4mXf47vud7sS0KzddnNwW2+/bCFtg9wEhbaGTtG52smz1+8MVOxhbYmbMhxXsLbGrN7Bq5AHc5MspThuTLnqluS29B1EgUYjIAN6Av8dy1mxRbcBABfh37I7H0gLs4i1jhSzvJnWFTL4wcT2yxR7fotsCPn8dLFadndO5dhCAgByB32LbEzZ/Uy1xberm4Zx3QyC0Ns3kNTgNeizuWmXosguDt2ei/DvUtgBdJ2NdGPBleei0gZbTKBye3O8yBiBlgO5JbdLZuemX/7IUWASNS2tHdjMuT+3h4rrbNkMy+4WeF9uY2Wvo7YrFyvi5vnY94vNxXR2b+NCKi9DPFdTMvLe2zLbC7N5NcFYJbBkvwyB+5oxydj+O5a7dlWvhp292biLZnMyxhnaoTscNWL2bCZNHAO0QHYbMtDBHCA73dZbTS9CtcSNtvnX/zrFLZruO6n1xHjs/s2CQGv2d7V26KHaajttWXRzLV5l/H222xZVDD8+2rY70F1kCy1UgB29s6HgJhQi5SdBKxhda/ksEF2po7J5lywO9tZbFMvYc3MKAkjV4TCY/ZcXyhUF3BxiZ5l/SywJdbnMuYF2x7LKWlvn25BZZ1bPiXXHzLg+d/iO2gXY+ttPuXr8gW7Jli69Rg3Yus4+3GC7QbEfOS1wXexIzbmXTk70jVzguxQXafTuoF3O7L39FjRK4IXbWjv6qWtI74jlz+O6wDrGDvq8W2YoSEGBYIEJIFgjtMBBDObhFlsvS8Zxe7MuOWXJLLfiV/T26ZxYPDuh63no7dNl9iy875a4suF2XrQ7+Kdviy2FncWttwMXCLLshdygu3fOWoLsYAAErbDhd9a2w2xARUuc2WiOwZ6d6/S7AACQTt4AA9rbPPt/X220eB0suMyByeLJ1tvNs59bZ6MtnURZwSAFVnkAP0laKzstCXyeLyOdwrOzMAF3Ts4cQTYAURdp62ylrbcsumNWPLLpwaJ9295ZdobCmwh9hLgVl8mOyFZcsasP1WnGrNedzSOxoXdEEvcp3Ba0SEyLBS6+nZSsvmB3bTarBduO25rHZA0SZWX+RotjVwTO3TqCqLuOJ3cbLORiQncFBIHJ4s4kA4I7dVls585jbbRStdJ9Bw7dNlo/sO+VjPURLgkerLYWlojyOmndG2SPWBeY7jkAfmO+ZfG74visXmUrYUwSfOzJeZKUuPyWfbLmTaVay6tUCcythGWFs7FCdkgLFgla9Dv7WWQG4KpKIFO28HbyQAsHJl7LipAfsK+AkS+b6XWX5C7ZnF/aDGPFHTTsBco/HLIoQCW2+41acauObgE7LH15abOAGncLjumcXhC7vAlzGOxUJZU9sfNh4I7Oh4Chi7QxegMuiSAXebbbZ6KSwYwE6wBaMBVw7GmRUzixUXbKzvIJ3mC7mxd8fuWGnchcB1J2EAA/3t9G20QxcpssPTTy2LIPwa/2yYHcP9unF3TpwIWd5my5NAEHGJSiXH7Lyxd98rIuHbNVze23+J0sJdydiAzjCHUuVJA587LFlsku8UAFU9vC3pqo7Q/NsO26x2ejuvIZ30YpqGd82y160AxkAoVs+Tr7gd6SOwYXeYTtD3hx+5Kdtx583rZfY4sG2W98rablsoy8qnYNLvccXY474Sd+Ry6p7fbhAkWWC3bQ4AMKSxSXd7LlhxQPvGvZc7+xHTndOLu8F3rjwZwd/Eu+GnaunDpF2vWgDcd1IACHZdistvOwrIAzPF9z2wgXZlSvR02N7rBhd7wu7qxaoztpba5k1M6AWghsPbe07NFEAhi7h/tiCS6OHYLssgaJfC7xdl+GQHtHbGYjaJ33ysIGd90O8hgCfdvGHn67La9thjO25ZahDtFiW+xgmJ8TX2+I5Y6jv6pWC2L9lcd9Syqnczzvqp2ho7C5dyLsyfbZnstn23cfbi9l1dAOGXYFuCv8gNy7LoduROxpnb0QBaZ2uw7JJd2Euz/pf/qsi5386SM/Vzh3GGna/EB1uWP7bsnVCcOxoHfvsszSWg2ICPoGaOz37YVbCUgAYGAqyUKbwMUJaEevWlmAAAgyM+TrzvgO3QHLaud/Jq4cdeDLsFC2ye+0wV4yO3ZxcqFtSaWTlL4Sd2oW5epRQjuS6AGcY+plrByyOXepCv8jRS2w1odwhy7g7dNfMtVIIFbZ3ZlVy/5nZIdttNWC1E7DgUEu4ZJYWFv9NXWHLdDttaOx2lYrSsmQBuHLzjF8OgP8HdYdueMXgnrQvt3QO2hMCNLtUyXnJbZUtmd22axbLYtJl2xHbmbF21i1unewsvJu3uuADYdquS7k9e0csSO2lK7/yoaR25g1bdADFPXWg7KbtqN2/1xfTdsgi2TLAYIt4ga1c1fUds/zYgY7mntpT26rJfpjs3NWOnr3jlgGhNznYu9ttABDHbdb5qZVCPHb+as3nFwC7Ez14Fq3E5dBaunOWqRbfGViFq4jbLa2gMi3MnLVLlvwACyLbS9OhV2ORbvb5sPUPBHb5FveO37nLfjtrpiz10IWcucgAUWrNL1rsS7c9anfOAgAAAAs7ZlaidvjvniMrKTtgjKzqLdZ0ADOXDRbvb5+/KSnQByruTMXgfL0e1zJ28xleiGvAGIIXrTzl4miGdIGwbCrOWSWrX8gMTEFs5f3fPlO2VorFKUfHoIgFcqduxV3qnbVLVrJy1kAAadsRKX4I7zTti708y5aJcu3vmSXr8wVnwy907aZ9MhO2BlwZYthl60AOdKrvtZXqxbDgZAbK2zIA5euNi2wXLkr1m1Ae2LcartN0B1q7VmVhZ2yq5cXyjLO2WVbwBiNZ29Em3xoTtwgj6A/yobZ29wGYPavDV3Hq7htCA52xNxf1MuZZXQq75ztyICktXYdevIfnisra1du525Vla2ruNFAnnb5A5y164V3RRrvvO2nxbRCAY6u187bhYtdZXzq7/kAf52269elcukfnZXLLLrZIAE1XbBdu6tXk0ri+UKF2xq5Yxctwu2I3rY7FvquwJpaRduMfmDNwRCxU1y5vYAJYuE9Rk3rFvkVN60IIWuyt2uXlEN/TZPLiy65dpYsUbhfAAYtdy7S0EACBGEaP06JbEMtsheAvJbgctbrYp3rlZ52TkKNRE1TuVJAEmA7tlkU/qI0Vvesw5WZBQyfcVYAG7eAVBi+u2p7xIhgPNq9jlZQwArDmJHbNtdxqO83VZiIAWsXehCyZECRy9UGc6/MO13BVLNRV52u5wpbdrsTfnrCrOrFx2uz7XZM4sc6R1JrbDYYt23t+ZPXCQaINAApDYRygPB0GrdsLtWCCKNVAFjQNf4RMFZNu26WLMdd7lSy5gFUEtOfX92ruBkNjiZCgHQuuaQAnvbA7tk9cL1QB/QgEeWeHbBbloOu8+ncJ3A0V6Evr+P50Wu2lZTkUvvu2LtjyoZzrS/h7cXduAcX3T1zDuJ5AAZAAyUuulEnfLHdKEKW1sQW7jXObX1xUztd2Dqz9leaojK53667/Il0PK3FLYvdsL12r3bm31meuyhgBXrstVcCOrHitlsgJ6EMaPWffWY8rUttdeu+21an9v1EB8xzeUty1GPO512sg9kw/3bj7F2/2B0qkPDttoB/4jqtdwvK/vcN6oAK13f2Lb9dg4S/kdHJ+trrhFo9LOkZIyfT9cvKtdBBdyGh4QYfK6/JVzDN8sAXIAgBUNV61h7eAbssqX6pbCyqHvK13XcQbsvjmH3bCTAYj2512ctSC5sB9iZlHt5E82gQFFYBasRQOIGSlizq7dQmY4voilUQALHFm2ZL+WbrED9wgSiAPSl5xuBo/XD+viQXcTx1ba6qZAPXck9tC5n8k5bqERqOz1CJfrvCe3wjKRZttCEa3FHbasYUBjxJmnFxfaCmACWL2xu20urQEZvTi/mTgGcs6oVcQAzDuHg+ONneEbsacWEOAoPwAIa45QHH7m9133cIrkFBBvm/Jf7hDMO55G7W3cRGaASnaICDtWWPIAOfcFRu4zneCnPDdWHlbti0xqO5fXGszMEiBcQAsO7GpjD6JaC9spTn4uL4Mtk9cFfMB4OEPbWl5p+9dqL2zpJZd4i6sX5IzvYiTHw0l7ZHWzYeCuTwCDdiwSrgZDwAiZe2OpziDoBBu7l7frXDYm3zSoCDdpeu/YJZMFbPdWshwvVAVWADfXdpls7TnO67lsAW5vdaZcB6uPUBMQQoPVlGW9PiX5lt0sWzOhO94ZEBkLLcJ1tOzFbAbA7F5aJIp6RyDvbAXxgLxARwegA03dHGjHAWbXbFhV7amnZ5aJnOZrhqozVqdqmc9dxfXru45T7BKCDd9wq9rLdw3kKN3vAA6v6XVi8WxX1lu/BzP7ADfhMheL1QDGABWp3R/mDQNtWyX4UAjfQvNhe9kRzdzeCjROdObv2CV0dyejd9hu2fXfdOvjA2ja7ssMSsWGw3Z+gCj2HMvbbsty8q32LPbruXUV0eL0kE8L8f83cB9tIbgQlRLZAXqgEcDZdnMRlXrAphyi8xO5Boh5CDdiWLerDRVrYQF4UG68ApgBkfbKT19X9GstZMFYtFWH9oqtdtoq+p5Z7oBS3WTBW6ctkPy1bMS2S6j0k3G7XhdqgmjH5aLnO0N39a7wrtljod3xYJECdaEMW7o7xuuc7+HakbhTZxGW7J9d5lu5s3f9AvI8Xfg5tVtA5u4EgA/rtG8Wmrr9Lkluu7KuQGXCC+31UzmtdnPuEsxGSABEKAX+LJgrKGMkhrYLct0sArRLxSgXNgGY3ZAGvLFX5fb4Rt+LCMq3bMbvxJWYw78411X2+2BYYT0U9WlW7urdiOiCC3d38swOX1G7Zrd3NOxa3eL4tkN2n67ttdueW/gubQICet3Go7JgQc6QDb7aoXO+t2V2wKGAcgHAg4A74usLmQ27kYuXhu803ccoCtN3AArRTV6Nuza3a2pquamI27h8toAa62gFUbuNR3NG7MtqlLReH7bv4soBX2m7L+APZTGGoKtrvx+2Foa8/F9nVR5AFLbvIBXy276ftg/ixhBerbs1nWrsIyxUNyifW3fz9tCuWjkARdMgBW0t+g7bsvFXmb6FG4btu0Eldzbvtt28uLH/F1zA7iQHNLDWmXYFbTft+BW5epTEbsSN235LKtO7vy2cdBbvTwkRnW7/ft2xO19ggp6vD+3MFjBdd5aJC3XfbhCz138pr+zgLLADy3dCACit3PY7U+doEq+JBYIIqHt24S7l7dthu/3XZNXDdHW127ezd+TAFe3ZnbvpCMW/bPPMf1u9dwE39u8Q3qlzxrdu1u+aWD4EuiErhuAmyl2pc8wre2S46t2VW7CDdthW8pBcsGtxN3hogo1l9mW2xxIlb68K2T/bZgVtJu41HZv9sWN3MO7KiZ9wazLRBtbth130677g1lNgI1HbI7tMWXzdw3wAN3wWupby4uOCWIA7YdYXhu0gEHdSteCWh1wxLfORS05OEy9u2JnBZLPHd7EqyFFdyiuVQ2DFbGAd/5oOYrbiEvYzWnYCJQ1jYy+6EERgBet2ySrpAdw9sGG3YacMcWANH6VAdkdbAQHfk7v+t3Z0JPiu4oS60NcYDsHHQ/i7G9d1gO3GuHYDvlaXg6r0p1jpSSL5YT4sVFXVqgAgdvtc5MNeEDuw3r9DU2ruWHdtTZZ1rsaABusAWkALWu/9DcUDt6lgK0zDLdsNu583b8KDMO5T4wkN1vugEGKTaAA+d23ut1baj6zFhoGnwhht3MqIJrdiOiGw8nDbvMO4WdIZjdlW2yF5ZAGsOB2oYL1y5tzs0F3cajshd3vcR5idkH4BF3YcrTd3Bb5Qo1EFduwEHa2JKuhW+SrXxSRVuyV3ag7sClWGRrhjdnhu4qtdWbtmN3c67bI1rcOBW2G8AC5sA5gAykyDSAA7DY67trjRSgr4sF8bu2G3eZXP+12XYbsyttXKGG3aAjNzd2qg7qpV2uu9kddmIC512z9aGo1oR217XcOTNO12qwAho1rna25RP5EvXJn+u70e1yT4SY3e67v2t2HRrmygQ0qwN3ZS770IAK4bFNS44cAR5buVsFI2UZbigi6vizx3YebsKTx2O7oY1kUBhp4HeVsPRmiu7eymcFu8C3Z+VspjWqM7dEQouu2nXZo7siGBc67oa5tJuyXXfZbugq2YyrKHdlliwumKeDvNTm0CAdGANsQI4ddZHCkt26xrGZVjBu78HYjXC0t2MGrdLFljuwR5bRCtct2Dur28FpjUVzRFAevTl23JLu+1/Hu7a3fg7uasWMEbJKtrzQFx3fMmutt3J7LBPWY2uLamZxDtRMhGBLfZwgkO3yFYUbDeABAxLvvF5lW6Nle9rvTt3hEbp65jlW4A3efGuMh2h27hU11Xu+9wDrKsch2UXYXQQIVW1uHD8KQ59wTEbwkRgQAEKHagpvCOWW8SXuABTu1aFa2ED2pk8uLniN5/VF84EVVsNd3BELyG4Q5RabXdHsM9JW0FLxvd213Rz6CcjBKTWJWCsnoMrkKaPFyRsGh3bELJqtppu5TGV6oADWwuy7O7dp9u2F3bY7vk9WOJAigiu0O/kjeE3P5hXB4DRIkWPu27WG+7tAnyV273HdyDRB01eVwCLqRNOLGzd0FWH21enbtu1hfVbXm5lByw+KXWbs+yQJ2LkGiV7u5JfDQ4umt23O72dVsmRGp1EEkt7TU2Kr4at9EoJsQEyBEFhhL1kkS6KRuAIAHjVuzhXStz2fdxvu3H3a97tMyBR+7LulyRu+t5eAquYTUUUbQjtmfu1RMjn7sHd2fZIlbVlDAASja63MZIXN+7ufdmpS10EDT7ApgBS1byqQctWw4uZe7tPt3sUrTEAZMAB01a0RA513G3LZ/dgggIl5epbuw7szBpnXdt2sDitYXksRSXrMz1/hLFXOP3J8V22lX2rLrLRmwpOrAEHiu0eGFVrPVQGNiwIAH2JmDd36XJVC0M8Oz6jeAjunhWi8rg/d5h3Me3cg/yID2W+7d/d7rADSAEI6AdNWBAAOh1+Hu4sxgrbBmdCUMAKjdwPu6dMNByiNR3ljFO5lm4awBHd6kvVsb0B7fqNyRMNHRNvlCZxLRFABYYVI60XIFqe4YAhpG7jl1/1q45QGwHtvN3EB7xN6cNy10EBoHtuAA1KNIfdlPuHhHf13Ol9WeFrlsAXHKcDNYVBgmZ2W27jA9j5sKQPdX0u4bzvNLW3ysVS4c3fbavyN2AMbUMltiOxWmeP7tN93JS7dkAXWu8l3dA7uKN2nG7snloSO6LNY1bsRrgG+7W/dvPu+F3aPzva014O7IA11a4DWdepktGVXCu7z5AbrACpHeF/RrcY1lLMXd/3u6w2EajuDZW4NbKXd6du2lDnkHv8sNQ+7Ns1oRKHRraMjt7+WibYtajN1sJ73ed8s8Hw8h7fDdjTi2I3a87t9NoTIA26gYUsxX3f/iPaiA7+7ZtyRVu0zID0HtLt23UIw/dh6awzHecxsBR2Hoz1g9ufuyUPbFYts92CCAKnJobu9zZfb7upd2Uu+Wjd2KO8prZHWw9D3vB7zrd46cEY3YwwwwsRmHcs+0XLu35UhCVFi1XBh7/c0WBoUfrbedjud2Iu73vF5yo7PNZkjplD2uTwPWN6QW9ANc97sJD2Oe7prds25GEddiHsT92g+7O9KLplXKqkXLvOVW3OzIHd/wex01b6jtDyWda7SIACuuyhgBGjsQRXMTby2iMcjc/ZcyBGgCl5a7H2NyDRF9VrX6teD2CZrESAHPuHIPdhbtsN33t6vwgMVS+GcfyvRSN2WP0JddmNO0FXecwutkAEIrl/Ur7u2stau7ujD2wO7AjYRnOz5hZkWuJ53PB7J/d+16MMPeFdvZ0a1xo39iADuzm3eCzO7p3QnAOI9qrW9cEhq1vXd3q+72Td+1u27WDcABEj2sR7zDuGLu6PUEOHuX+3KlLyMd3Q0EKPdRjt4LW1CzMw9idi0BGdZaNjmk/ZLzI9zhSym2ALDDd933CgEo0ini7Wowm1sZHhncb1c3ICMzqPZxbvxq35tbcudGxa0qPfLYsIt22EgzDuIAe1vpY0AAJ8Wa4rf9Y/fu8kwEDMDuN3qmMVC0XdO/gPeK7sRUywB7VRVpiQOndZ9Hv0x3wDzx2tzmK7SPZsHvXD3BR7fo9+ZvoJbZ1jujPWgu79DdjJa9w3bXGiDd3a1GardmLgS1Zdo7t5loNm7A+Npp6+ZVxKUubKWHY7H8RASK3jGdk5A/123Y7Hrd252lPhYvq5j13gm7BHlgOO1IXD4LvvD24O7prd9pa2HHcs7vxzWrAAetdlDAMIPbsMsacWcB7lYsZ6cA27Y/6tVVXOB7IMiKUy+X+Mx7vunqY2L/c0PCnI1HeHHvD1WUtLzDuSSS803f7mjgJEBcAdcIS9u/bxfcbsUMWFW7jUd2ZS+w0Ek+GDD2i+7Vjd5Wu8IPbWUs/oQqwAEowPg2wtxa7jsmBBNIrvhtxAm33Hd0itk6244CH+Vm7gO/XdHjvWM81erd8dy8e425baoDttXSLwYqlj+u5Oha10BBsAl3AVBNt8e1v8x6qvGkAza78gl89iHo3bqktGD3UWImkAB+u9F3dZcQNZQmLLFyVz5wJJ8IRvIJ8X3c7d/d7467fHfYaBfQAfYrF2ECyyH3QBCkt7KYGjwXhQQ4waAnfTHsxEBd073UAGOu7ePf1MslHnBqr5E99OAMNVf2rvET2UwAentm1uxh3dFHsc0qclLtWh7K0XOwWo7sxD2Va779dwwjJqnd3AAF9Xq1rh7d3fu8NVamN0/QB0R7NTGZ3yxe3eSGKDj2HRACC4ahO/f+Z4nsNrWIBg5PQrfS7hPaqKs2t2ll8aHkU6cC2PbcLt6N2RibnCdrzQGhPfjWsWT3vVL1k93ypPapeNusiT2V27Iidr4tLsTeMnuUT3cB7+/EXeuxG+k7csuT2TSz57QXdRF93Z8nvVtrtqrva1tTS+89P7Ht2sWHrA6aAIiO6LGFkntd0A8y0XkVtda3nJOjondYAjE7/B1sCe/JPenJtJT2sR7BHdl0S3+3YVCt6D2uXQX8yYlOFppZcntplmwuez5gQcqxh3cqnsYUBfJ7sJNpA2/i5eIbt9y3kFwNzYdzi3JPaNmuJT20J7EBQBqeza3aanvLM0Ah7Uo99qe4n3aqTsAaXyVC6LKgsMIVPcRmvFT3hp7DG1sqe/3CAOEvv92h+rZA9rFXOZslabvb63TqrgU9tSe2ZPc0nvhT2rJ7KoYZmy6FPe1dwsd3Op77+t/4izMncI6vOT2bW7AMQ9cVI1HdonsFhhW8EKE91yCrHrHs61XSF1J76LduLuxZPYEnuUhXkJ79099sm+cnbY4ug937J7hfd2ie2l3eQ0sRlnNp7oUl4RQLDuwvbt6N3lybUU9pVgCIYFEpuWT3kp7gY9mpjCZPaP0shj2nwA3ndpxu/dPZhTvk92KJ7w1V1Ue4sxi8KAF93gZ7WM9qRuJRPf4ntMT2w271d1iqey7pZzvV/D2VQwFM99M8+qmaM7s2934h7PdABwe5z3ckVv/HA3qrWjFyRMJdPa+7vST3yZ7cU91820wbYjXA7GUZibbk9qUAHjPfKntGVjbx7+1d956YoneGEtsN3WZ7Kul+oexpADdvB/d3EQrmUVyVO0KYFo7u4z3kZ7MbF/4ew83a1HuiT2xA74jdoge6xUV8nuyG3yOR8ht70i0DVY3osz9285LiE9u1iy5gC5PAKlA3KbgMd5Ie/P3YjjvWN3BR7l8l9Q256ncTjMST3lokc7BE2e2G3YXgCSfC4+7KfcbCy+V3YLDDKMFMPLMplzrQpl3fV/S4j2Yar2VNvw264bdwMhXu00u7VnF1Du0KPd3UTBj2M07OVNghsxhNipTtlHXzW7hc9otO4/Oa2EA7j3XW7vA9v4e7oPdXUS6t31f0qE9uue+3PYWptqUWWu7tw94Ae30dfrTuZG2u078kAD3u8ZtZWroe4jx2+vvd4pu7Y3dD2s1G2Hqb17Z93iAX3fjIjSTXCRULsmJdO1JedXTtvHQeiIwYV/dOwENaQMQLyWV+7CGd2mq+d5exNuJJXAm70H5LLq9aHauHt9D322r5e14fu1yVDj0C9z3ZVyejdpEe0GxD6HtQFJK67ds9vuew4AAfns+yRxsy6k1nugJsbbaiuuznCRUBjARzAJbAD9eMacX9Z7jOdm+ezrTZmstutK2R7F3Kymom1QE/nt793eG7/c0bYQDLXc/7uPG2p5EzxtkxmpRndEYthrgNm7IE9hAe76nZWvPfG31orn1eWOm0QgHJJmY+GRB7pPaJPu7QvbQUtv6IsFL7jdrKe44ddMoAILhaskdo9xyogMHdi7teFAJM7yB1ppu6tcCoHuCT2gx7NFe/D5C5gACHvP93467jbllAAJ25sLjtzj2XIAB9gvjANVPdX0sIcBIP8IkyNQe4VNZqnvHrI64djR62fu8y9Yzks33jXtrU7QJ0e6APeeGsgykA+73gAZaJHCXev8JIgBEOIu09woACybaLqtsm2hDLhC8azO9dwCebu7RWjoriBliQTcEvejok11XXqL9dVncdH51eYdyoj2ZuQ3plk2e/UQEf9gDOWY57StVjLO1BuAT7usd30AFF490Re3LHbYSAHvpFW7Og9mqe7hPaFHoILgtTbXh1hQ6yEvftei2LJ3IIyYABjlFG5a2pphD21xoDo9hhcIYvcsbvl92RG7pF4cdvt/PcQXv0D3BVL3vdrfuzYvZuGsaD2i5AbgAKwg40epz7sQL2wh7vc9vtq2WJdvDsdKA+9LGw9zSABYwCRuv7V25yA7bVzRuz+IAjfTqrgil74i955sI0PZGXux92bF70eAG7Oxz5awXu0xXEdE+21hJe0fHZXgPJL31PcIS9th5Ag4HTNt/s2UHLUXtW8S2I/Teis5m23mrA3d0B+mJPcLNtDGXFu7rHd2he8fJY3rtkz3bnazL1hvQAsPajWBMyBRl7Afdsge6Y3dS7s/oQrtLhZtnHOwN3ZRXvJD2Cc72rt8zZAzPaT7v5L3ZmbhTNgdi8v3aQHvLRI85JbDdxIAIw3fAnyEr2eO7WzNyk66CvbrrsCd2NzbFxljnO/jFaJFgDd3AF7Vw994y9BsGYdxEeAjkAYud2+8xSdfaivTd3Ue7RzNrughzFZ/3MfXR8h7Ay4eEiFGPd6HtMr2WTrVYAH4yxCzejstF0WnSdFK92Ou6fPYAatriW/7zm091FmycBeTHu1q353O8vlxg29NtbeLvJDFdZ7KC9qRuDfxhEMB5j2WS7vwgbpEIGPZNntTj3347n7d69u6iZYrDOVj2UOwFK94Be57ndxMt8QAp0AyQAf1e9BbcdbC1Z3Ty09BYYfu4g1cjzt/3nKJ7gM9sVS3Kze03hM7AFO7BA3dkyxnnEZMthxWsGryC1toUI1HfRnvGN3wfQXJlsSqi2PdoEn5HQQXchb2wvO2NvUO4uQf4b9hs/dvIy8wPf6U5zL2eWAAvdvLi7mdboHudL3WLbQbEc0sI1AA0fp+YXQb6xDVhR8/Kt0nHvK2Nb5QYRRaLu0QEEQXtzj2yGrxkVrDAFUQHFbuiW3cq4BpJHCcf83ZLZur2g6zLe9dhSez+yTSXvFr3eG785NWiWIpbaebOHj3RrLbaAFtewjPbDrvqW21wA5+dlqy0bZcTXvV+28Yz8M1oWewR5ZYasnrgpG4nSl8Lu6xbcrFigD3g57bHd/Uy1E+YaKs+oULx7+tdw7u3/ncwDupOXlO7QB+ulEHJ3YGXB5r3LV70nF4+i51FbwFtNd3iu7Ac9le67+zaQLuHcXEOIBlcbVu34PY7HtgXXIErKDlnWu9JNZJbuhW2eeLTI5ddu+s3dVrukF2WirKF1g2exc3f0XvxkRoWw+Y9ugu1hdfQ5tpJXN6i3tQMLu3RveMHv61liN7HBd6Iazhvftbvvz2mN7WhdjK2+2PcE3vF7Wr5gQ7UaNe6IXaEmwlsQjbL17d4RK0VbeHttEt2el0FfdrGe1xvavbuMb3Va7lVt+jKyLPbE3vTt2hN72m98Tm+JdZUHsxj2DN7Em9rRe5/PZTCAQt22G7YIAIoAPuomEnDG3XnNgtbTPReymPb6tvqYMbC7g1tgycMqwETnuYemPbxOWsqooOZfH03usiXqe77gAU5e01AAy7vBZn3F7QA4A4Sw73ekbutN3/Lry1tnC67Rvb0Xvcb3g3SFfd+A0oYYHnc5+kA+579zUvH27HXZmtheT307rDmwIC8EbZbSutkJXSF7OJAD1e3ePdyLu2tXk+7ws9oNiBNEHk3tkCXRpCbS4oC8GQPe8Kk38XMt7HE9tr9g0XZetuNenm70G7YXZJaEvdTbPXL2PmwBw95Yeze9h/Qg7JX/rbRxdgpSw73c4Xuiz2eu7s4JK6e2FvYRXtmTI2G7FDFq4e0tvYjogZd3cV4OK99a6+Z6vkMB2b3MfD2jd1Qe0vNJEMByr3dF7e3MNbe59AA23tSL39i7qKVxxq3NvY+Hs3D3U27sO7Rce8VvYiQBl2XNV7C8AFDsFTbckkssT2G67dNttxu79yDjruP92qh7Zelh+e2l3exnuxd34krrhqHcy/DvY/pky2rfu7kCdntewMuG1dxSNx4V7d29iLe0jdbapUoL33O7aCl3Tu7Du3hHs6N2gRh2Jdy9sx41ft7u3eAFQrv2EG4a0o3HISjG3Xmh7O296vu+Lde1ttQ8Rwvxa6lvpewIKUfXsqN2vugettqhi0pPf5wBH2DtaaADdng4R9ZiEUAQ4QBhLwdV89oEpPegHsab30dy3vdp+xEhPaoWgbj2U+7ay1xPmwNBde3u7b2yu7dg9j5sGi3bAnutt3MgAam9+he+QDgiQBDD3QcgXQQW7e433fQAXu4QZJrAm9qLhf8qE60LqwBmXrPg9iAYBFAFBPCh92LS7HDF0fm2dteVrusW2VMIGQ12HdizvfJ6HOz20u7/7FjTwBKPbxEjcqXwt7tu9r0uxnmSefOxeDLYAL8ofNe8IPffXs/oQ8y0Ublkuu6PUH5XvW92sN7bGAAsoIDvY5MvVIAim7oWlnce+VPcagAp9x8Y7Wc97Ru86Pfq1sLb3Sd7cQ98Ze67PclSBZ72l1DQtaB3e2LVeV9v2plR2wMbF5re0+3YVWs6HW49AbdtsJq68+Y+Xv8b2kh7zc9hbezPFfVSv+N3DDA5Q97eYLpXcbLuP0XtOzpm9kPe3uPbB3sTsWEOAXndnxcIKvdHiSywxFW7Ai9xGADpdb3ntLqHc67xh5qLuxOXakFuFiXWe7ePds8e+vvcXLvVLmze7dE9wCe2F3cI3uED3gt7+rd7cu/oLdPtvpNWs/LPdAYce/sTIKnvR7JHKAqi9kA+zS9WSztaL30x7qjd70ewcFa0GvttXHR7+alziAG53Y2XtN733m7bi9hUoO+XfgPtdLpwD7xHYYA+w/3Y4nuWQAoD7d/d9tq8TejYbsgQBho9ADVt5e4I9ZAdsKYDFp7aU9jIW3BXfg6slj3BuzTB9xo9Ro/SFfNkmDfoo/IltCu8JvYpLOg92F67FjKYOOzF4CV7sYO2TqEkK9kx6wX7d07u512k0rzd6eKQNEvYYruBu2M0rNrdghe/dPcLStLC2mNRaVlXYe5pxYpXug5AIqZob5hb1jh5CGGr8OXj0abDtkSu+qme13uqt3qu7h+992u6yObfdvKiBusABC9xGa4KvYUru2V2Q67u/d9bu5kvc0rtzpXxYLeld2R27e1brnsTsWd+7qXV24Qm7XeUdtzt3VHbkIt5yuz/Ngi8LJcXBR7Sjdz3e9o7arfMvNWWirPT1gHCIIPa/4tXN37ZbLXd/Ji67OZ0ntwb2zHb8gZ8kW7FXcaKDWO3x3zpfVpZu8s9cScs5V39ezQA56o+247b4yuAZWugkAY9tKu8f2ZTXBCiXMq7NTl+Fe/RIEVCOf2Aaj7eVdhSjQVXbCdsKi37XrzVdjFq6yLEGHC9OW3nr6nljL24k7aNFtyH3mC7uXNcwIc1XctFsLH3u+L7Vd4F60tla6ruV9miWrT6lGo+7u+fdGtA13W+ziL1pcpM3SF69trMX6j7GL1/vsyUfcxcs0tXmj7T4AfF6y07caltCiX2nb3WV7o+8UdbXbvA12zMrgx9/auwM7Z+cufO2VrFp1d30WxMfcqUuXV2v3zOtCWY+zM7ahctO+WLu7Sx9zDyz2LcA/NMaiOF7b1dzqu8DXYAHNfV3BDbDx9/6u+AOdiwxHH3lxbSV0J3y/RvbFauUuX6j7UNdjAc5yvYDHvXO3DuLU3YTGu3GLaRrtlaWkDEHx9s9u7SfflavPO26zLVr1lk+7a9aGduAn3vnb1fZkE+xpxeJrszH2CMUAEt8muzCfcWPsUuBlj71Ndv162Kfe74v013UT7k2Vw1q0gOb2PtbZWY3rQQlDwANzXYTetQPHPLg/NdqI4ILXfHbM8fnLYzFDfcAAIAAHqwN0M+3Xyob7VsXXXLD8ZsGM1GGecDNHhmsQz/cZo+s/+mYuUt2BnASzFmZy+M5mGfTDNMS2wHzFDfQAAJVgegZihvvlWaKrN6Bnhoz7p9gsM84GclzOeZnwez4bZ8AAL6fYsDMUN9nAz1EZhNq/iBctjOd19DT7Rp9t7M1mGbgFoQDmEz7B5ZgSW76fcAAB+YBafbI+viwXCz7Rp9//M2xWaIb7YhnJcze8Z4xswQWZYLOdJmPwzcbtj2u6SJbLPto1nogzmwZ6s+7+Gb6zMfhngz7buZj8MwpLZchttn2Kz7nZ9ms+z2ffrPv9n2FszB5Zydq7D+ZODOi5nMazeA5g8s/O1dSbMFn3UwzkeZpCM6GGenPvojnkZbFsZiaM+AAAXPt29mlz7lkt0EM6ufcYzPkN9iszdp9k9q4OGaRDPDu3AQAbZ9shvp3X19PuN13f3Lhp9k0+2afaNPsPn2nz7HddkMMzaGYob5en3u67AwN08+3hGaMDMUN8sIzMHlhSMxYGeNPv7n2QL7eEZ4s+6PXcCDMWZmtcz7QZ38+/+ff3dvZNniszFDfDIM8hfb/Psnu2jCGfp95wM0hGbI8ubfWqQz4AAQAAGFgoF9u92+HlZbDNdn3yL7S59zKW84GeMbPn13QfrgIAO0MyEGcDPu312xPL5F9rms9AmflDMHlnC8rZgZyM+86fYDR67hmKG+E5ZqWc3uWaAbuVhnogzRZ930+5YGdQ9vuFn0wzFDfUi+7GfajbN9/n9xzMl9uS+7h7YmbMgX3m6+2HZ4s+2p1fFDOahnUL7I+Vzrs92Gd7DN4N3UUzFgZqMM3hGclzPpBmswzzv1x/M3Zfbmlv3/nlwzn8Z0M+0YmfDPuCX3+Pb4kFoC+yBfbAvvedW8pBeiZzuvn+fZYLOOBn/L7a0tnaW7Q2flDP+hnG6+Rp95QM2FfclzPBn2SG+mF98zM+3X0vLNGn2CRqfT0XoQtGfclzPZdnCuz7gZm0M+4GaOzOxX3RIzsF9oxM3FfYSvv1n2g6zzJZkIM7lfYDDMYRnCr7OEZ4/M602b0DNEN8S0zFDfG0M4omeFbOxX2MgzkBZ9K+7+GY6vvQdmPPboU5hMmpfXESjPopnJczhV9xK+/mGbABu7pnu2zMOZyXM3GfeC9ukFWCL7H4ZtiMxQ30uTOhN2pIzoYZ4s+3F7bvPtLdnCAbvp9gwM6Rfa/PvYy3DqzaUZvGW0JNk7r7R9njT7jANq6+5Q3wljPXX326+t19or213GYLPvgxnnur4sZm0M50maq9uSA2fIzX19zpMwtmZOjNahnGvb4oZzPs6dfdR8sIX2KG+WYZr6c6RfYLPsWA232zXEZzpu3YmcIvviy3nAbbkZzC+0afahvvVhm6fLPgN2GMxVGfx6sl5mLAzikZqy+yT1eeAt3n3SG+rUZja+ye2eZnMUtm3wz3V9zC+/z5YGjNun2jEzxp96IM+3X0gvuC9mTZbEF9qC++LGYzPvGBnJfL4kFzM+2MDbSKtS21Mz71JZk6M7+fa+9uUZmQr7MbZtHiwCtYSrMUN8/YzoLdwEAHhGePzMHlng66YPt/OcCXmaMDOyX3zT74AAcbMxGfbh9uY1UvFL9gZ30+2DGcxbte9mIOzIeZg8sy0VfpvvY+31Wz9N9gsM1cGbRBuZy2KW7lYZ4ks5NfYjPuiRnc5byvFtm+wnme97POBmjT7LN9oqs0JfcZBt6xmTT7aV98Vs1ZfeDvvuX3Q77LPtl3kl2md1vukN9NL7N7d6uW3UGauDMdX3I77CZ9uVu252ZCDMLlm7T79Z930+8Vmc7r4WZnwr76rdkSO0vuYjvuZ9nYz7Jd9su+6hfbtBuwLl0arx+Z56+++fdrvtGJn677lrd7P81MWcBvvm33C77xd9ju+5YGa8vtvzgdfbe/l4/M6afdIb4VX2sIzRvtyVM5n2dN9uz33+CzwZ94Ms0JfZXlsexmrozi99yXMwWfdivsUX3I27RxVgrsxvfbIvvw33SwbGUZ/e+/WfaujOo32M27mft1KM1xGa3bPRBnbT7R4Zvs+42fd3jP9xndr7IINefi/pGdvvto1nNz7E59p++zO2eLPtr8XE/bu4ZheMxQ3ynDN932H77kuZyc+3/ff7BthABD+L28ZkB+7GfcPPs/32Wozz99oO+z/LaeKscgBSL7d7Zzq+1A/aAVtHg3AQAmD98oM51fb7jOoP2717fIV0xs2tfczvs2hnG/bjPTcEW0Amb6DMUN8KG+0QZ+zM9kGb6vtHBmjT7HN9l6+0gJetDM2hmCuzvp9wAADAEE9980+3u3aEmzEhms77Id92M+xYGasvuS5mOH7bFZlC+yRDdKXOiP3sH7cd9iR+1I/d3TOQX3wAAvl90C+6hfdX9sxlmGH70QZh8MzQrdYTOyQWB77pd9oe+wWGa4TPFn3eEzHIAEx+/XfZMCt8K3kTzsl99MM0o/esvuS5neszw0Z8wa9h3bI4v533Yr7nV9+++yGfZcfuMZnJozNN9kRW5omePzN4RmwH71JZgwMzw/dQvsWCXbszAiZyJ+9E/YUVvRQWDAzjD9nx+zEGdAvunX2OO7j0ZihvpbGfcDNFn3JozuhZwqG83XwyfuCd24hraAd/Eq9MucJKt1Q2H4zJcZmTu7bWZrvtgP3bFb58ZkuM+zmejbMlDW7AzYT9hB+4XfdUDMtP3PT7+nd2aGzSVf1DMiZnogzU190zu73ApSfOxJmnO7Fz5tBkNErYC7sZnngRrZrAZwO9kmfSCvNK3gkbeFNLe+76fcSjOwX2XwzxgZiW+/amcsftfLndYbvkZtK+2w/fbPuMZmer7psN82MwiGfKDOMP3Er7xVZkts0eGdbr6bP2HYbwCZxm+y7DfFguvP2MgzwZ9koO0gbVJEufP36z7g595J60QgGHPsdn3OgzY59xi+w0HaBfvWP2iz7hyZkc+2C/e7PsQv3dlbnYZ1QM0rfc2vtnK2iEA1z925+2c/czDOgX3zn7bz9s5WxKJcBACYv326+0196ks0k2ZWCst33BH7xZ997u3MHf/zNK32Z8z6T9iwM/6fYobN6BmeH7V0ZzJ+wD3biftHn3kUzWvV8R+2rfdTvuVwW/SrTq54M+8lmfzDNHZmUn7uhZ0Nc09fagvuiP3iz7/olo6+ydfepLOZ33iz7F8NywMwE/f7zPFP2YxL6GZ9MM+efabGsnFnLYzJgZwq+3mVZSftXRmOr7QIdj6M5n2bZvu6Fnt4LNd9shvuDGcnGsCJmOgz0N938M7ZGfcDM2P2h77MAdmsS81Odivu5P3wAAfp9vQM8Vmd0DO2Rmc77Qvdl0cnj2euDN8P2DWzjgZ1C+/Qjd1jMshm2Yztz93kK6eufIfu7pmon7B5Z6cqym/YRDN8X3AJGfIV1h+3oGf4LMpv2uyzvp9ics9dgyUDN9BmpmzZ5FohABs/a6fsHlm5gGHIAat+40/eINst5nASzkKZ6VW/imd6bNyq2ML7Od913u8+VbJguxX2jwzet92M+xkGajfvSP38wz1b9kC+3GfcTPv7n2lb7v4Z7EM0YGfZDPxn2ecz4fd21W7MHYTgtSRmFWzekZywM9vfbOfvjX2Pwz/r94p+0y/cfTNGJmHYzbL9xuvr6ffT7tdI37lb+YVg9+8y/ePfusv3eH7b59ye+wGfd9fvmJnnAzL8oUV+1PfcSvsPX2IIzN19zDszTfdDDuMSX9kbCmA1qs2zGYDDNvhmGH7Zz9sJ+1S/bxfugJnrgzrdfdWM+DGdDVsph3o5blL9xh+8Hff4LMFn2eH7oV9rCMz7fZtDObP2p0zAYZsBs+Gfcn7ugo2Whz4t99ks0afZZfv/P34z7SEZu0O5WHaEdvBn3fT7xT9gs+zs/bt7Oxn2YX7r79g/u6uFZEkuKRm8Izxp9lBMxB/dtPuCX29Azyd9o8MwWfYRDOMP3qSz1N9y/uzNuYrVscgBMazBZ9iaM0VffzDO8f3oP7XBZr6s+amew7MWBmDX7A1976+84GeuzN6X2jwzsMZ+M+7GfblrNpX3ogz1mZ0XM/amd1rPOZnewzSr9o0+5u/ckfvuBmP4z4mZ52+yp/bFft5X2nP7qA9xaaxeHbwpqUv2S0z+t9/1+8w/fMzPRZmjT7H79xjM5nGfYftWf3F77uL9kC+0dmanfuY1mZ37IF9vK+4pfYDzNRtnJczEZ9hM+5bmY53NAR3nprIEdi1+6B/Z6fs7P38ezkt9ihvjBmbSDOnhnH0zz6Zo0+6LmeJfte32az78WZo0+zaGaMzNqdmwn7619yhvgNfYkftTv2P4z879+M+7OmdRmuN182b7nX9lL+wmfb2fu/n3fwzjX98zM/3GbmvtERnnwzcZ9hM+wZ/d7TOhhnjT7GZ956+zWffM/tDf3Wv7gd9hM++YPZZKiWD2dYze8Ztj+4x/brvtmP2cr71JZo1+yLNb0quty31QzeA5/N++3fdMfs4f2I77r794Ie/JHanHjg5c2ZLa3GGu+/amdkvtfP3Fr7J39nD+81/fmvu1X2pv7+V94j+7O/d6/vs5mkIzWX9gyO6JjfF05j33Jczy1Z+z+7umbIb4B5ncX7CoZk1+y5WfLPuhhnBL7/N9kr+/s/dEjONX3p37+YZy2M1s/c/fszf2Rz7uL91h+0afaIb7SRmMgzfd9vS+84Gd8jtWVXbczD0Z+K+zh/bU7NYhmHP7YH9u7+/2/Zg/u0ZmTX7GZ9zPs0rfeCvtdP3Jh7BIAKuax9Gd2fuXFnxv7Nd9zGs//meJrNXRn2Qz9X9p4s2x/c4/sBn2jwzM79t8M/L/Z6rNIRmYMzM79kAs1j/e9vsVR3+gACdZhD+1J/do/t2a31UzuL9wd+0x/ZYLNexnR37Gj9s9+wNfcnftuABEv7+YZnr+wu/YTPu8bmnKrLeZiO+98PbW4yJf2HwzegAcWM8YAAafv/f30wzgI9yn+WNHdgjpMf3Rv7qn9tu+8fmdG/tcDU9b7Z79jFMwT/anfuZhm9b7Rp9w2+5Lmfofvmpnaf7f793Ee6lraOjt/lgJwzU4Z5K+xkGcw/v2BmKG+6t9o0+6+/ewjO5a3qR7LTZzZ+3oGd6bPnf2p37iRZqMM/9ma4LMt33Jcz9gZ7DM51ffm/uJn3uR7iBZvnGxX/fMzOY32Xwzv79nDM0RGajDO+n3J6z/j9zPszWfctjP8FmZR7Hd5eUe6Tje61vTJmMf7QEZgMM6r/cJ/smpmcP70H9oCM/Tffg/tHZn6z7iP9kC+8j/cTPuUx2YqrJo9qQs1r/fPPsWj3GY7C2tmxa8GfbtfuA33ROSC2Z4FM2r/ebr7YhmSG+dv96N+zN/dpjOLdmxX7pDfaD+0P/ZszNo1mc2zR9ZtmMwP/Ykfs7f2kw7hYltQs0J/b4fueZnKX7bd919+6TfYu1sEIXdY7Xil40+7BffMTMZLW9/7br9xB++j/cYfsPa2FMBhLZ+wM9iGfxfsva3tAzwD9niK2UtY+jMUN9Agz+l9isMxpfY1vtPNmRQzXsd+se76fd/PuXn2gdbukZrgBzrGfdfvhX3fEzRiZgL+yGfcFbMeX2pr7M39zv+3d/f4Ae5n3qSzxp9jL+6SWZaUunrma77C5ZkwMwq/f9PsRP25z7K39/W+5AA9FzOdJmX77+59ktM+4GbU7OuX27v7dl9l8M+J/bQ/uFP3bOz+d9/uMxYGeAABFVm+H7aV96Ps4lGZM/v5P2rL7L4Z01+wWGdt/sh33LH7ph5wEAA2/amjPE63e47cK1xqq8bOcVvtlFm0r7uP938e68tbiAcfhmEgHgQDh2M8o/dGfvgrXs/zeH95uvmgA//TMwT3ogH3VVnO68VfaNPvb5ni77X99wu+5mfZgzMEP2gmzqxZmd+yQ30VDMO/2Kf7A79gQB/afdUAdf33zT7jgDp1xo32ZKvukX2/AHBoZxa+8U/f9Pui5nSgHfr9/0+yRfcfPsCAPFdbeMZ2P+3oA8XftQAOpgHo39kwB8Y2aNPuDv2HwzECZwq+7umc8zND/2clLTL9oEsy/KGPzP+AP6b7Wn9mQB5fGbkAeA/2Br7jn90b+0cA57/sSxm5gHNb99nM+3X19PuWxmBr7eV90b+7xfb0DPgJmlYzuwDo1S2xxbuAfRBmHgHkADmd+98eCsAeQpm0azqX9tmM/mGcfLMzf2TX7aT934B+wneciv+62Z37fCdlHsDN/YwzMSxnMv7pFZ/MM3CA6zvsbAPDX78A58PW60bV2JtpAOF6zuL9wYB0O/f9fvAgP8wzsf99wMw21XkAfjZnRv7M792kB98ec+PCtf3GQHRV9gIB++GauDM6AP1AHbxNhTAUcA8gvtqAOeH7R4ZtTS/Z2eNPsQJmCH7nV9q/+9cA/cDNOlnZb77n9ib+1wWbdfuLv2vIrMoDsD+zcA+hAcdAOowzIoD6cmxWffFAcQJndH7kn9tV+0v/fK/sPn2xWzioDhcM8qA4QAf6f20yzrX9gIB0aA8xTNWX2l/7d39qYs8W/ZUAdqAOugHh6lgCs4KA+1Af2pn4n7aml9UB5YGdG/uY1mLAHp3950BzZfZm/uOgOIQHC391yCmMA+jAcmgPIwHNd9t0B3hGZgzN2gOtQHnoDkN+5OWauvsZgOv77uoDsUB5BfclAdYP3Ov7soDg2+ysWYVAfAAOXAz039hEB0dPaCisOFmYAHgID4YBzaA79fszX2J6yYIDzEB5CA+KzN7P3JQzanZ3EB4P/dVAen63XyzOQQNji2MA6e/tGX2zNYJs4MYB22ffpLNHhnxSzKID91SgyA4WAei5mZ37YwD1M++mfZfDNKAPugHQnd50rFDPfv/P+v2KQH9oDkq+32A+kAdhn3IAHiM9moAIeA9jvtnAOyL7Vl9iUBzh/aFAedAOEz7hgAVss8gABnfv9aWOf7foDroB4sA65AdtX2XAH3YDy1M6N/aBAcDgPEDbRZZsYB2iWcxAff33yAHjYDqkB4u/b1/s0gOmwHxgDjcBwIA6hAeL/3IwH1V9x++8g/dWvsOf2wEzzr9vT+xb3ZINvqpmxAHdV9ywB+7/eGjNUtmEQHVBt3rs2MA+cAeF33+37af99kB8BA/NXt+BmqtLl4Dk8Bx5ffKjMUN9dAzouZgwB2h/cUAdtAOPQHj4D3Qsz9VYqNpk98Zv7D4Dt7s6N/a7AfDdmp6z1wZj8M9B/bkAejgO28zR2Zq1+9gA6+2tez38orPs9phq2EA6zvuKP3zv70CZoT+0j/bwgexz2war4t96X+xmfe/ftT/3nr7hf90Oe2Lntu0v7AP0wzL8oMhvq3XzWAcLAO9yzGKZ3F+9JA5m/u+n2r/7wZ9zMM0HfaG/sWBn6SzMEDxAB44bfXbCw1XS57d5569s0cA5PDOx/3uz7TBZr2+9Dfb3zO4v21OzskD9oMwO/YWAe1U2r99Eu1tSi3C/a+fuZ9nD/7cV9+3+1tTfmpvo1XBv7EEZ/KBygmZM/sjv3fwzuQDmb+/FmepLN9331f7M391KB9AmcgAcjz3jdrrs53KB2zGZgvuPAPhb7rltztO+FWfkgC8/3mr7MEZkC+3p/djPtOn2mv7RmZur++d/em/sTp3hor17ZqkM/mGYrPs2hm3wzGYZ9ee8undqNvDRXFdLFZ9yhvvWWaCbPbAPDAHTX9m/+4enflpvw02hJsRmZm5+8U/Ym/vFZnJQz6YZqH+zoA+w7Pn5nG6+0kZj8M5cA7U7MVn2loHn99qR+4lA59vu8/3TGzegZob+ySGewzOvQO3P75mZjpM8oGbr/vU32Ygz//9sd+xQ3yOgfNgOYF7o899qK0WfYRgfff30Gz9gZto25BnZkvN//2AAHwMDl6B2UWdgvvs32wAH7H9tYB4g/YrPvVQOYoH2GZj8M2Xpc7r5Uv2ToHHqVp1c+F/bZ/sOQPGF7UdNt/a78bfrqtBgOFgHIQZq6M0HffkAcQP3Kr7NP966B9l2fcDPo1mPwzkADrsB0cA8uAeZ/2n37cZ9qy+9IvYLpupBm2b70CZl3s/s/f0/tNQPmsz2HZ/gs/H/afftcFn7MzMZ9nDMyQ329vtX/3J37MGZ08+zq/bIvuiX2Mz7m4D8GB/q2aNPspf3nP7ar94As9X/d7TPmf2DoHnP9xz+0VfeCvt+APyL72z930+5NfaMzP2ZnnizYX9v0+4u/b8XvgGWL6biBl+sM0Sma1gcBZ3wl7Qhlre+0rfaPDNxwPws7sS9uW81rA9aftZ/39z7FgZ7DM7i/a6geWBmdP7OGZhBm7Kbb3bO4v2b378gD/MM5bA82ftrAOaz7DsD+q+5qA70DOi5nZYHRgDhYB8Gff9Afsv2Xwz9MD6peyvVaEMtHAOk4H+kD7++1rA5gzOXAOvv7gb9hqs/rGbDgcawPrgz7v9rn+8GA6KvsQP2n77iWZtYBxLGdFgeVwPiv7egZ9L+zGA6nft6RmiP7OoDoEswT/cAgeGf3uz7R396IM4lGeNAeR5n8MzUaZrsM5J/c5/uPv22P7zcDowM/0A54vtzwOnP7Zz98YM8RA6zgdywOvP7sZtgUB5Lmf9fuZwOW4H2f91R+xWfeszOd19fAHQd9xIM+8vfQ3uf1mCgHWZtwHO38vYxfs3P2SX7Zz9oO+2Q31OvsFM31lqEUZ72+3zfew/sO/2kr7PV92uBy+Gf0TO0lnuYHo392X+0eGZIAfNgPYEzFZ9of+90zYIbMzQOKz7Ff93FezIOYyftHv3n0z9799l+wI/ffPvEr2sEHxz9/q+8GfZtvvjAONH7FDfAp+4xmc1DMg/2rL78Z9hle+1Fap/tnP3mEHrK924y+yvYfqt0NnKr7H0DwTM8EGZXgf6333jLa8DmaB3Qg+lzurm2d7zciDtm+zPmezftPM3TqYdJ1iZs11A/aDMF9nOf7fD9xz+/WffeMs0IPAQHdvZ1Ve2eba1zvSxXn0zg39g6B61/c8/tZgOgGrcwDw1ewz5fEfscQPEUzCp1vFm/imeUfuhIOzn7sl9//M8vWZ4gf632Gn7bQDz3O2iZZLjOdX3ygzIF9o2+/7naebNDRmwr7/99kPOzecWoAfOgOab7Tp14U61GGY4QeBIP3TrtQZzcB3xfZ7ot9gO2b7LJllPO8gtePAe1QPxH7cgDq5swImeAABpIPgAAVIZyte9TvQpDN4f2W6+ocDl8M6Bfay/smn2Av7vj91L+56zblvNXRn7Ozmd9nxB8tA7Vgd0/3gIHfmFpW+4nFY9SqRs3BozlgZqcM4VfYQjP8FnSL7D595QB2kg/ZzNCX3s4rkgD9QB1s2fVDPJwOjszuCD6qB7SA57OvL52wgHsV96BM8eA70AD1IOYYzAiZnfO3Q1etDO/gPC77JF94N++4GbeQepP2Or7Q393i+1evbsTNzIOhL7G9F5hs1kg9vzsGW2PozN192V+/4A5KvuQIO9czPID6d+/lWblvu352PZz0r9pFB6oGe6jM9VnMgHsKD2y2+J3dSbM9P3m6+bgD8G+4g/baQc4IO4EHkBd9J8zAg6eQd6APEH7wt9hAu3gLZbfv3APw/76BdtGM07fcD/vVhn2ObTt99r+1I/fjOuSNWnb7et9o7M0afZW/sWgPc2zcVttcy2Kg9Ib4SoPQP7DD9lVs3xvdSDMQJmiIHZHNruM2wA/aDMSwOuUHMm9j2M6Q32JDOSF22LrSm9ji62qg5MDOa/31UHCqD/W+4D/f45sytmdAHeqDkTe2XMXrDOOBn0P7939+u+2DA6nAe6336z7UxZhVs2MA//zP+n2jYH2P9u7+0HWesLtOJXVr7kuZ8zm8SWaVvvmn3nwHetZoxM6a/aM/uvwPRv7p59r7+23/bGAdHZnyG+ZX991B2Y/d7AfAoP+wHWYDxLe04lflQdd199b7ekZ5VBz3mejQeT3240H3vZhNB7z/av/txVnnX7BoDtqs9V/b6DNnP3y0HgZ9iCM5LmdIvuLX2Ov7L0D32M3ffcUvtZhnU2zECD+s+zm2aW/uBn3zH7kMDsGBzO/ctgevn3/IHlaD9FMzGg4ob5Dc3YnLkz57DM8Bfdo5tUIOIn7cv98hvu2fcIvvrc2rGrc29oiB1N/ZIget/2FOzzYDrsBxWfeqvvGn3tP7ar9ya+3NA81ttGBmzszOaDnD+33GZAvu2NWuwHvMD/DMwug/fgelf2TkH9cDgPM/wWeqvtBoPvb78sDm/+/ylYOLvPb2a2zJ6DxP+wHmdUzNRhmkH7H4ZrCB1CA4YfsFX3oOzMMDkhvv9mdLvsagP3AzFDF1a+50mckbN5AOsUHMl5wqsw7Gf4LOkN8L0HGaDmPs2DGeDvuLNmrizVn9nJ+1fA/ofupP3kMH0QZyc+//mbyvu6/36z7/r9xwM8NmbIXtSf2a77EkD6eB0ZmeDPuFX3EGzJaZq/+zR/cxgfM3WcS7c29o4B5Rg5br4GZmAwzy4ZqdMy5A6PgevoO+/7fmZ4ts9z/bITNUtnxoHFDF96+2B/fTDOAAAVMF8kA1ABbGrAcD+s+9iGcBvsrlnlAzdz9pqB8Z/eDvtIRnTP7TwD2M+x1/e5gdFX2IOzVoDl++z1WeAwdaZm/37xsDxa+wrA7ttsDQXLYHh39t1++H/dEjOjf2nb7utZteBx9A/9AfTX2tgHXYDll+0Q30wvtp/3j8zhP9xuvukGfVQdRYOiYHBYZ4dM47A/DPve73hUr4dt6O67jA9pLMuBnssHGQZ/1+xFg8UAdRYPWIHMcDpeM8o/YRAcPPmE97Ppd3eBw5A/8Ac3P3XQHVCDmlBw5g6EQdkYPSEHZEDkZ+xGfdqbNt/25AHz2ZrXM/JA+9vvOwOwYH1gDuDB+zmcLAcmBn3AHngD2qMyZ/apAdRYO0sz039md+4pg+br7KYPSG+Z6DgEB9h2bb/v6IOyy7Hdt6Au2fWZPQd7YPwz7pAtsLM3h/cxTP8FnLgHQ9tlfe5nZZPQeXAPqMHWaD89B6uWbkAfFwOSwHuGDmzM+6mcnQdqdnUYHvEDmsB04A9AvuWxmr97kjF5eayzQkdfvOv2QAHkWDwe++XfbAes92WIHrN39w7B2xA/OAezYP+Cz07Ztj+6ufZjvve32I773191SB4j5x9qsGC3Z7LlwDis+7Vg9dQc9gOlIzBADp9+3IA/U/sGwOMv7oL9jIM8HA9dQeQ/3q/7eT91MM9ZmZ1fsEAONP72QZ3BB+9A+hAdxf2QsHmtt1c+x+GZzbPYZmoL7FZ9urB7rA/1vt2v3iszdr9s5+0A7YZfNqMXe1r8oD1C+8woQpDOAAAFMDQjOp32HUrjdffXB1cGaPDNYoPOD7lN9ybs0tFdqTMJX2MK7/WDnCuxj2e0fsUtnMazFUZ5FB3X/bt7NYoPehbtMZveM+a2dkPsfwPWmrgbtqcBzC/YiftAQOswH6h9jiuysGdz/uMP2WX7q198hvgYfZabOgtn3GLgT17z6izNZFfucxnsOzC1927B1JXaltr3n3Hz7gjtqJiw4WeggcFn2+H7b2Ztj+22fcavuuH2S3zbZ9vw+/8LdoQfMf3S8HC8DnTB9AmfMrt6V2JArUbNGyu+hmZ6vvgAAZoHFeDhxy8kfd0dtCTZGEH0QZryu0QwVtrMC32/K7JxZs4B4FXfMdshV23IzZ79pCM/rfbKPuX9m0sHuhZ+x20QgAszP4f39b78Vd3t8xvg4XwdGn2kq7QA5tEs0pGa8dvH9n+z7Rp9zo+ycWeNPudJnz8HFz14J25QOYwzOFV3x3z8Z966B2qLeiduAgBMazIv9uJ22XMQ/wd1/2Z8zN+DuWyDi1fk/si/20sHngDvS+xaLboyu8hnrr7QL1kvs9oGehvspP3/8HfGVolq9H2fcDMFO2wb7HN905+8U7ZDFtEIBWL7fUZ6au7vg/cgezV3anb+BD/W+4tXetPvH4OVq7U/Zs/Bw85YZasfFmr8HJBD0zK0WLfX7MP4O/j7vb55/B0afZGds1i3j+zP+DhsW+Cfe4Ic+9nXYHUJ9v98+/g+AIeMP2F4zYBDhE+5AQ6f7PBZXRXrSgZuAhxB/c+rvgfnVb7bH97E+xQObfDPoEP2CH0H5g52w9fdQvsQ1258Hm+Do0+2Sfa7fNH4PhBzcNdg162pGcbPtGn3jXr7LlytM3QQ8sId1ZW2T7TBDzq+4+LboHOpBnJ/7vJ9ohANwQ8FPtAEPf8HrsD4F2x4Q5EIegEOAz7Up98CW5WGagIdyn3ZCHe8ZiD+0zXaNatKEP3Az7Ndo1y3UGcNQenP2zXLctRWdEjqfaygB6n303r0Q1nwAAG1b1dtS21a4d+AAANq8AVfe0jZCXFa7yQcPjfA0AEGKXsrg8uL1rtw/q/EAADatFEPaM13/F37kIeEFabvJn37ZbqBQFoNkUQ/00DzABJISFwgXUoL67aTavsrh6yA1tdwaeT9ADtrviwXscrP0AGApDNIQ4AA1mCVvA481pSQDcIXRFLntBXJAaqVqSW2TlbGIcE6Wv7AiMAOYhwsQ+qGu/5Xh5wvZctDwO7XZchtTEPUpLOeVyv0LkQ/jYudFUS3buPtt52AXtPRKABtWDury59hMmq04gtIDHpCsmwGddwmwm7QltKutiWO3b+dd3S2x8Q+rGt3HWDurauV13oMhgFvPvnEPgSowV658+9n+YKIdFEPxPt0/Nb8+53ld6IeNu2aJzGrSyEh6u7eiAABtXc8I+AAGswa19ctetXLnq1rGBAMDy2hfd5cvEkOYSHyJD+b60b+bttBF1BniHmd1jb6xEFaLyvhZXprwfudhKW/e7a9yDWQArlzB9dl92yr5bZIcHCEE2wy0SKay3x5c8dWL0AA2rNLkgga/dLWzyv6/j0/IVMARvKBj9ZkEs9kxLQrv7F9g9BKQ+uIe7AcQNwqgAGswXCeWFGjcj56pbUttQzcLnQC3oDQdX80r8l9lBy2ipZyId9jW1L7FYZo0h9SQ5l+vtnXuuADRDgj253lcXcaIN2iOLvwciQAJxPdaXNembUQteDADpSZNLeulqfd95gAfpD0iAAavv00DOX3JNLtjh3fK/uoENPDMN2FozmJDxuXK13aU4aBX3AjooGiYV29qQ84buCN3aGzSlIJ4SRxNfAvCYwxG5cqeVtjAD7JAulv70CjiHh0UGnig4AFXQDYNh0/ICIAasa7frzqSsKgwplw9ZAbcpDkQ6mXtujHjtiTLdwHixLIiwCwVkO1iHOdV8ne8Nff84sN1XUAADRD3AqzZdMZbC4xmWOyxBViAG2W0CDhoiHWG9A014UA+/qQ/W6s7rg00AWjYbwq6eud7ESjLgYm7teVvrKGl7eB75NlJ6Z7ywVngq0UQE+cB3X2mrrOzkBkhyAwAvIevX3k5bF/V89axJNbK9vXtm//bLjEYGOzn3C64tSkd4fLx+QLBItyQ4LgAkYBQb79a4S9ZHU3YbqudTINJ7BHlrHy/kgG8Ksw9XhCgTZSQoh8jfagA3Xt2DCr43t1DdDeQ7gADgUOTe7Mst0Zu9UQ7CAC6AA8uLVM8RwqwwuC0JxV7gZm7Gsti5WxC+HpcnskPlm7CmAn3AKsQ7Q8D2Vwmb7vhVwqgNB1a+gBPchDwgXN98WcwNAFxIf4kP1IA3RD5ch30Q4zQAW8XBb7C0Z8nsdTxT0MAcTXG8oY/F572zDlbEoeCUOdfLivV9s69kJYKKsdm0Vy7tpATXq98reDIf7rIoW74PtpbK5LuRmxBfGWh1QBJDrucI8DcRbMlcosSH/wNu3qwZuGWytKDWMfb2aQCQAA7ff/MsGpAaiHhPt9EG+7fcnIcrABpyHM+EOlu4nGa+GHTNAciHi8mDihxy3eV4t/D1T4rfG+RqOwmgrEAAakO4umJVti/qxFoG1IeuxWAvVhoVquW2POf6AA8UOiiHubAEAUObuBq3u4fUK0z0Ogcchwj3dRC1PAXxfbraVn6AMhgCnQAhkOHN0FlDxu+ywuSNbv5Rpd+7lVD1yQEXxdqfPtgWmrArZDwqhw5ui3Esj32mXAQuZlEid9MAOELakPCiHM99ndcBpAH74t4Lncdr8pDxooEqIDPatBt39irc/6VshwqDGalvO+3HSHYVDq9oNn+XalsD8X8XLo1D02u/J3eYKtP9Wy1BV99o8h8NEG6If3hBEAg1kaazkakwALbt/A0fu+8FDooh5OAC2+XYYB3WIqCl6B+5EhEAfuAgAViJa8AB6h+dQ9tUmjd2K27jbdoAax9Q7UABDqhHqHF1D36hxwFcgGsR+29urDRDm0gHdQ/rIDJEAQaHP1DjJSwO3dogufd9oaH561/rAKdQ4RofPUPSH725D/psuiysJ3Dft3ABLKjtliG7Y4dpg3jP9eFjxAAVihwXtIODtSBWViJwj9jni+lQ8kgCUkOiAArFDmMh9sIBeIe8DWpZzaVD3PCIiQ6koc69BWaHi8mNKyth80kguUOX5gZE7F6mh4B3doVuyQW0CK8SVxqh8B7aYVs4iX86SHVD1yQHY/c8fuWDW8kFJEAdGh8rQ/9IdAjCPH77Ctsji1XPKFpIVUPKKHkLgE8hyYKxCft4U1iDhGk94V25cQ7y4sWCXPUgrx/Qoh5zlawSIf0BniHcAAGswbZQ8mutoB3H8NwxDo/O80VNgADRUPBlz2ZaN2SHgwHrbuFQ3bq6VtdlAO8J3YmXNVQ3Kn7/+d3wK8SVdahtNP2NK8Gndqkqw1BcYDvmDoDl7EWgAjyx1BYTJrp5BeAARRD+LnrLxfVXA4z29PQ1nIhzu9rDCmfsFuW5aHpTsGNiyh2C1VtpZoxerQ4AXQANDQ5zqtUsgjso8gdvLu6yVbc7PCiBfAAwn1Mch+KQ5Zodt0P99LAlDravYs0GP0ur5AG2IHDa2wy40UEjzQpaKgCrytDi1FiyVc5hsFd2oJrFRD/uh2V1cKIdD0OmiHjR4UehxJQ893B1d3NfLQQdwRCx0Jrs3vo0OeiH4lDycwJABdhEvvEP+yHxVDyAC0WWd5kA9kP4kr5HkAjFA7DdacSTd3kVz7xD5Yh3fQ4stgSlXSRL7xDw4hwWQ7WIenEOoX7+bV6Yh3i312IfzEOC6He1DlEMyqVfimtbEOAIzKxD44h27JB2Ie0IBoGHixDxpsJ7Bd7EQ1b2ZgrT9DiCABpxallWXeAkFwqkyeihzTxQNKv4uXn6HRU1pXdWL1Yrhu4vU0ErKolh0O7Z2eDE0NuWO6HPhlogUPW3eNEtFEB9hNwPdthy+vQ4qofaUPHgrRwdieG1Rne5odO0OXcg8614yh6CrbeCtOaAGdrMNDu4O4f1Y0nvq8osx7jKZhviw+uP0cG3kPYjrLDSySh4kAC1fuXWFfuQuiKvV+/ow6I8hbrJKe71m4N2hL7Q/Nfs+9pKQAWY9uVM93DNx4Ap9xiTAE412HByy6xmxBn0PGiHNdDz1+0uNbcku/EPATo/lFRdc8L3efgs4MP85LPFD/Eh5L3dPXPulouJsS/+OXu1wjb4YdnN3omHyvd+SM2+NYJodSI3T1zEJD+Ie6W6QJocWUPS37gGlm76WuJdzTNakOZsQeXFut+x3pZvzuQTWWaEmdDwYpb/WCtCudAAGdrCFDuPczeVfKIdsUbISHPb94+h2TBZxIdRUPgSoonQUCAAVQ+s7sX0P5KH3c1vL0LDkpLIdb0B2xIAk1y9+x93feoffGK2MAabF5RW7bWjdoTGQAdjLdx19XlNnQ/ryDjMPDQ7TDD4SayFVYjt26lB7qHyitkQwEUQ6/sCCkQ8O7pGeqSewiADvQxwAABnLj1DoMgsu/bDDume1LXruyouYolB1eovBkMO66HxzDwVS0LSSQAeThW7JrHitvyAAtwAnwDm6XjptOGoJEAMsw6uKxSFw1mH3k1qfuy0OdPofjkP+mHY9D3UoNLhEFIjjP8C6HdH9zNW0I7aGIfoMP9iHSkgNLNIsw/hIigsPaeKBngfNW91uckTB2r3qZrFmqdW9RJNZBYcBtWVmH4LDmT+/2Hbk/uyMPygAsIAO9DExAF+pIfT2GiHUHVvegA0Q842vjElmyH1Y1mfCALJel0Sz/4/mH4qDBtyznVeTa3vUAyFoUDwjq3dBoSzCBldWkWH6aAeTu3unckYcBtXvP74O53z+/MFfVXCOqlwEoZLD5chyu2GpmurCAG+hlLDrwoChVCSwyugLcSIPimMch3xgDPav15B997wzDjUaV4UBYHuVo3qszy01ylgNi8KnBxsaEO6HuLDnOq6aw/cABM6QaqAeMyL7wyWJnbrpfAALSAPZDwBAKwSdZaNSFwGyHgYV0IAL3vfx3rtiRUZr86y1Da34eNdoeN4lxSH3RDoNh+CXGrUxhsOCGHEbDoBglGw9td1L2RwE7+wmzewddwCogCU0O4AARA90Nh56w91KCq8QfFMAVY0QAKxHaAxsVpnGBdM3IfuaEcw4Aofat2B6HHjDk2h/fQ4Q1tuD3K77KB1k+EO2w7eYddsO62wyGAWWh32w9hSsvf3yMbS+5jph0UQ/uKDjkOIh79OZxhQIjkCnYdFUOV+NtrDoZh/Gw9GYcZD2m9zAuZ1vc3AuYXYfBr33s7rNlxmhxIw74wDqkPI2H2Kl4ecLXBLLst+ZipgrHGdruoLueFCYce0Ob2H+rDyShz2Q+0YdbC5EZokUAP1h0b8M7ACWLXOh7j9D85hx2w566sQUP6jwN/GXUoMK7ZEOtO0P52FMeAMhhxZQ9sqtTD3s8rsKVxFh+Ow+Om1BH3JWH+sl0D7HS2GpXubORN4oN9iIQ65fxl/YcaT3sXhKbpSeh9u7ZFchzMBEWHWqt43+zi7VUxCW/23OzJ7D2EAN0w9IgAFUOa6HipAWNh/aw4TYfe/3UcHB81zqO5KrbKof9zR/f7w9Djuh8bQ83YfIYBI/7y0YYEe7BHRJYeN5ReyYFbD/NsJ7uB8MtcDUPhA1RD/ih6buFVYcyTX9KHcVDoyh3Rw6UkA2AAeKHZ7Vsch0X/YQWsl/2yTsdFDlBh+J9vemyHMPUpLGaAUDBI3/fRjufd9X6HQtaMchwG1e9Ye0IBqWHYLDz/Gc/+hQIBFEO+MSCj1mrZV9AGsjSyGAaQANScEf+xobeAYczotagAVzD6yNBoACUjqfOAp2wJYmRegKcles7vxQA1/7lBZ96oGFVdujtb/3JCz+9A09h62Q87YeQcOl2HhRDm+xDFw+McDb61EiSVrD/Eh/TtbxIfjkPSZACe4PwnFew8NHv/hWqY7tQZ5vEs1w8pYeza2nMbCVV6xa0lVbpIe3DAcD7emdmeKJSw6U5LzUBxeIH8VJZhz5w4JYe2sPm8S5bm8Rh1mEGenDdmWCWdTtDsLh5uNb6Ovhj2UwQkB5nABx4Fa0LPCiAgqHehZ/Kh40Q9foeUAOA+LbtCHLWX92J77v0AO3yHWTAWAAFIw6oPPUsB4m7C3tjvK3aQ8Y7tPNm+R51FDrws2JQ+YAAakOA47spDvfG8GQ+nYftLX86HsND/dQFR3YSoeHCB57rbJDi1hyBoj1YfxQApAA48146bhMtfvGuCyWiiHJkAY6zMyw5xJIfDXuzLnXUEZh7sNiICDHo0NRpU6AYhsIsQ/4octBsjsozCV8rsydw9PYjPEOiuUi7D0Ohz11b43whgAg6Iemd2Bh7bhfSYc3kAazBblE+Mez3HfMivvj30eLclDsehxxNZ+gDGQB1KHlOt/5a/+Pd7odYBY12HCaACn0GpQ9KIdzx3Misemd5/GjM/aXjsWRWc7rtcOw9uyWQ+rGtwl24WHehgXUoGrrfCX2tkOAIl7bVtLNKGwFg7kz4QLSAPXV8ea43iSUGtXEO66AN5Dxah2W2AlkTYvCb47fVV5Q+8kQHh4e9EOGiHevD7RSxY2BVDtAMEkAgxvD+Fez7w5ZAB+8PQs7Q4ADdcNeQ8pYf/kO/470+FvGM+ZOA04vdmXtnRIyAX9Oxyw6doe9EPfV7WAWQrujSjCBIg5KW//b1RD+NchpPdUgDakOFPSPbD52h18AEaIfHpCyqH6CIMKYJf7et4cSABAKoWHlhBZIFQ/kwBQ8PE8FT3dv4B/f+c/3HUr2aXkbxdm3h/UeEqUudE212HQJ8z4h3CXfQAVYJF/uHhx50Ym8nw8aKD+63J6HqID2/gIPQHhAAwcP/eHNuEWwAN7w/rYd+T3HNkketlGW2vw/iSv32Jt+HHYl7khwPZeeYdY8OjsoAbVwNh+MlY7EsfHnoao13AVkB2VZYDatO8ObuAGpD/kB2w5dL4dNJLyOH7VDv7sa2Q7TUuecPyeHnpNgHCC/w9BIcccObmw/9MyoIGlw/l8s2J2v2L0kAb/hzs5FbIfuLwneDBe0zs/jkQ6iocZgAiiHzZZkAR6/w/AEcu8OoBH7vD4NewMcbIXiDkP5RAQDBAuhy3rZwEdgCOnaH+Aj8UANAI+xSstkOJ+Hvq9jpSfEla2poZTAvcgtatnF8I8Q+9Afmxn7DFKJ4G76SWQ9IEdhUP6DRLtDgARxgI6bofNlmA6HI9AUToKgpbxmS/QAiiHkSdk+EKiFqFEuMKBGBHG/Ds2h6tcFy6IcCPWX4REAVih6aTanLN8COnGCF7YGDh8GvYlYdAMFCiH4gjrARwxtZSonKCOQNE2pDtCh09QEXIcRRW7TadYDvvh3Xw7UrtbT3J6HrvDhfhxPWTH4ffTAN+Hl/DnIh84I6HAf6V3np76TD+HhwSMwjjDD8PJdAHYllj4CRMlJ6tdl3b+H1vDn0869JYJ0vTXgVJ7TjBMPh9n+RvjvxnnbNrt1V56e73Q8mYgWMPjtiPhly/h92Y1hnDsUPn876AjoAR+4naUEeoKXLLsj/D7wR7jPe7Ms+xXveHtQAHthxvw57RGLMZAhH9TDkCBxlteP4cLUPir0cNDqPhwhw4qEyT0PWhHrZD1Phybw7tYtDCOmBHTQqHOq9CXzC0u/cgQ2H4td/me252cqYdQ7JVgAwBiRehz/7b62uSz2VorJ3Dqvh1II+8EfZCPaDbFudhny9xQ55ocf0APW6EpDloh4II+7MuXcAMqHJvDnRS5Y3dOEfgaVxU7AhtzvKxQI6gNvsbBXeHR2UHsmGAveAgAbOAN+HGnDnZyNRWsznt2QBh5wGPAEThw3iSXsi6p25Db+qd7SmyBrV0ptHligT5r81sdh5Bw/PWsNcPoqH1qd1p22iQ6OkyjUOTBH+7IOLhz7JGuYcQsOPU77lNxOM0Xw5EMAvyg1uHhdDgShwVQ6MrE/yJO7grIlypIGEACR4dE+h6Owwh1oAxFFQ9oqRSQANRpRc9tnayDpczTv8XnKBmSkcs7S01w9GYiLRKnaHmUDqciwQ2aLod/zWSyHQJEfuaBtw6cYcIHX6UHJUD8I22xAGM4dBJWFRHTQlo1h0AVdVEcRcP1prAiqCKS3SI68rPTz3i07jadtSi2xw7s3uFEOKeHl9D+qeB2ndt2tIcxABH4FdXQAK2Q9hABKDW9SGjEAPtKddhHmgf8XmuuHekAJONEgEAt4sbQOj5720Dmay0WQ8lYdfAAvoASPDiF8ApPCI8gNEOVSIWMDs6B8enaEmxoOqVSIBgpdZ5PyI4wwxO3j6RHVrDg+gOKQ/MMTOGpOIAkkJAth0/XZDYe9OFJIAjzDkhhx3QC5PB28OKxHn7DuEu0cw61Vt9pSLWAEk1nFa2icrZAW793mYA6zyOEuwPZeqGtIwOOoHN5xSUR3iQAQMCHhB4xHYIACIa7yI7HIcpiPhxHGC9mi87+7sWIdXCOOxLudAHWSxWQ7HatTInThHVW1+G67uhmTa3or3GYHqY137h3mQ9IYcWnc2YHk5dn42ywvfb0uGCOH27utdt28ECRGOEcI8Pqxr52aTnK3MQFbocGUP87rXoj+Dh2KwA0gDccOtorkmdjkAJjdabod+MOdU6rk1qFO1OgFCYewsPM+HAbVrlh0G1b7Gscrkb+MyGAash/rChZWu80O3qAQoli+h39w599FYm3GjwtpordsItQ40gACyWlOLk3D/5hySQHdatysO4moAbV+E8AFQ9bP0aMAI4Hh0VgJe+9Gcc3DW0PwJHRHtrk24xI55NvvRmU2Ah/DtiR/LQ7UOtnRX29LOzDxqO9nQ7kTuwhQ4crxnD4hsNPaDM4cym3+6r5XZj6hxYI8Z4f+0PAh7m411vhxQOBQkdb0AzW74x1qxu2lPecNRIfaiiHn4j+Kh9DdYDas9wOqGbQhlt1h+6xC4nSIBAoJH3rDoE+VUw/J9CfiPkihvugN2hOYYhIYckTIWyHxzD8Z/k3Q7V0ttCOvRHICwAqAAfQEzYd5t2/CcWCRTWSwsw9PXq2lWnaHikjjDh194a2nvWXqW+Hkkj8Uh2GbMI7SkJ3BSIsMVuNh62Q/v0u5bo1KA8fdiFwBmQ7PavfT3ZpCqrD3+ByyrYFbDWZnNb7nHYfTh16I9EkfFUPoEHndthTAUGI+WOsZGW/aLf99ABs/gw+nocwkYlRAio+TBB7aqaBIdeiOzxHhZDyrh1LOHArrlUPqZrBcAPmK5qmTL4fBcOeNQ6ojhs22pRfakfWciXmHKDDxeuq2bYUwHCSOU+I+zDj7h+Tne7NvvEP6soMjYB8HV+VA4YeSABipHF9Vghs+8Q6OkfnrWDEHidFwT8ML3yoYdhABl7L7xlgmh4eI4lXtnSPbOr7OdixB7LncTzsQcPFW7aWaCgR6cZY9mhTcPzqHpQAIAR0yw4fsRi9W3EHmudqb6D/Vbp1BPb1zKuCctoBqxMI8RMsgNXKzz7RAFmh5UI6RkeKnXKzzlwj8RhzcI/Rkez0OXdLTtDtPhwqQ+ZZsd5WBdgDogHwy8GAHASgBr2nmzZMj57IKfFYFIeOxWYLbrs57GR/iQ6UEdwQkY17KTZ1WK7Xw5b4ICIgwpgU1l2PO0+sA1Idpr2VeHwxDpgIN0w+Ta2NIPw4r2DVn2h20I6e5BpcPsUr67DoeK7KQ8G7AdW6Y9oApDvpB9X2bu2tdHlTdwNZgzZiOgNZqoDEEFhCgJ69wcR4qPlzOt7kAEDAjAlgL1atUBVIhj0WWeY13AdZB7M2fR4dQqAehy3R15evRHfBHztCW3O+Hhp4S5B53laN+GgCPniHFY4B5B2uvYP4f7V2x+H4aGsPRFPw6OIfTF2vkH7bNpbKx5w4cYdwl2Vzgy9dSOR+BeGjkc6PXjSA3TDqPK0anYDau4+6NSHz69sRhzXw/Hjli1XKkgXwVthq4i2YLkft8PCaHv1MThq62ZYQ3vj73CmHAwlg3h5OYDZQf1yP3qHmL+zYRzsI+5QestnGBdjxD6hhwRQ/Y5tm4Kq9wfY1vuRyKg+itvw3XEpHhRDpHh+6w6msuyoPWN7kXN068FBI6nkfusQprLOm96uh9Ow7CmsOUOIGLGiV30hw5unTgCv0OprLqbZosawt5eW4fGoPCrbv5l5Te9ZQ7UgCpSXH+HE8jgNq0jw4joDnZo7UHa8jqThwXNc3kdOoPn5Hu8jorh6ndebFGBz2TBHD4jqSAAZI6NYDQdXFJHw8j6maxPI+husJtgIKH1Y19YK3G2eBzvw3Xp5HG/D7FzrY0kqCCIWRwK6CLDgCh5vw/H4eScOHN08vFwjtMjw+uwhp1X+wrpYaOph1Tw9SoTw0O9SHKfEGPh5hdck9RJb32N708jsPROxQ6BHUkQA7l4q6ABFh0cQ884dtURR2wHjD68h6dw9/YcreE2qIkXNiFwBqQ9yuvKSO6MAIhgFwa7RmtXyD3aWejbdcIY+R+2mlckDEmBJ+Hj/D1QR1RuiDkgtEOmFHCTgZ62w1ddetu2J3FQjm5D2jm+0QGMkc7UO/JobtCMGvUAVdn2j4cONJ7ozV0Ky0nRf6uu1MOmWHvbDl+RyhI4RYeO5ZYYAJPDy9h0WI/tEdeVnjDzc9D8tzbRw52EeF1AjKxFTdIRK1QxesvXv5XwFH3ojsA1JhI71YdMKAWGleUjq7S5Bg6e3uXXWMUrNdDn+2+JiF90A3COAyjg9DwLh0sI5CkdfABhR7UEhG4R2Kw8MUwUMW2ZHUeVmS86nle5EdX8PlRHOnDlbIEVylenAoXXNi7FQmVhR/3NAwUdpZpp+HYrDvChxQI9UEfeFTPG+GND5IoeKQ8cEfuSOXFH/nVyegIAVHfa2KUkfZILNDvjAIpI/xIcccOKd7XKVl7e3Uw8UkeYCOAoAmSjohsLxAHFIfYKPls7vijn+RCMw+8Ue2dmJbrfhOcY64MUnWusasW7DrxnD7IAMWrpzYftiXsUr864SCR9iI+3KRZ8OzBHCAjoth2OEFCwfCB208NUOya3hzsI/ymsX9WwxHKnDmZh4wJeAMQPyO0AAhdD05hyRgFaUfmbI0oc5sj7Z0TrJd+Udt0PUBHyrDtVsSzQ648i+NWfd7ZWD5qc4UI+9yxBtW3+Hw8j9sR9so8D9I70ObmwP/DpgR/HvdXtBPPnxW0hEAbjCL34jCoexkOLU7kijr8R4wJfG5jWwKwRH4FdP9hO3I+zocb0ASFHu9kmPh6wpbqYeNEOT4QXxllUR44w+NEdrwBZ/89PDmrq4UQ8cEdjKPaJLjAl71SO1Q5rodMt2xarEyj/WSyPvcoIYXYOKy7FLZneR8tnbF6tMsOqeHd2D6uh6VygbLsZ2Wpl7XHD+uh1Uo71IcJsQE2wXuQXZh8ekPm4el8OFVwBBAXBR9Ew+SUsJk17RHmAj6HBxvbZcYeE2E3GHHDaxxRw5ukf3uyQXwhHgtD3c8EKo7ghKEqOZ2H3+98nB7/vY49Z4iPKxHr4juAK3cdbg4ewSPk1HPLDxCR785DC9vOKODGA05Dwp+FNw+WyvS4RUVHOdV7Bvj7JHPWvSzX2yHoQtqLkGupZAGsP2I6krMEj/rANyw+HkcZqPtGH5VD3GMxuaFG7tmpXwK7va14z0QcHZ1wfQO3QIAXwABCuxA7bsgAgcXOD7Gy2q7lcexePYfnMOMK7MvDkPK0IfZ3XDfsPG2L1plils/X/k6odJYYdSHnE15JK3g7YfIePEOxyHwwtuiuz33cmFvI5Xx457VDrYhz2vdCztsV2XHrEeDg9R287GCXvfTAjeV3fDnx62G+c8nADE4hK7Bwt9vy3HI83ocrAAdhHi9dauu76o+CvVbiONJ7y9e/PBy0Fa2IexiPq1rsxDjBh8SYBA0eIkAtmrYGj5evQY5ZeGr/C3IGHmLDmBh0sQ4uKznrXwj7ND9qyu/U9Y7wf3yWyGHubD4shxf3ZsrvZMW0YzC0jt3hwho8ZUeBmADGAI+Dloc03I6dFZaFn0ZH0+Doo+xY7bvjspThSj7FTF8d8+cIDRbuZ3W18HEMt9jR1+lYSrv8aPciAjRQA/B+BxZQUcn4PDXrOM9i/B8CqjhADjzXznr7vZqUW3tXdX/SP4OInbZVd1/B+O+f2kyUsOv8H7SJPkgOkODmPu9vmtNH1kAc7sEUQ9SdtsOXLhFiAAUzR3aLY6rtbH3wOsJmjnJ29X2eEKCe7htNH9fZ30W4JlZlYDHH2SnbWjF2ph1BmBzkc3CPpMrJ754TR62Q6uPvH9m6xAAmj0gh0wHY0Uc3V2sWLTx9w56zjPdePtqsW5NHSkgHau707ateuhsOWCHQA5yJ2xwQ7Orv46XIoABjAME+6C5dxhgajSUOwghD4/s0Zo4s0dFEOJCHrI5ezRyifds0eJmYatHE4tjE+8D32c0dAFWVCH53lkmcHCXfxPsxEODm1Y/F3Qh2xo5E0davXaXLhHtiTR1SfdadvKSOrCHZcxL4YXcdaUkCo12eXLrzt0Nh84Q+VasAn3Ya7NqA1Vq1po6AKteEOitH+mjvwh7lo6TEb2aOwJbyrllOVawACKIfhEOYXbdmj47RwqfZQls/d8WtHBjAeIhyi7d/EcodgUiHLpxB2oukQ42i5SSwDcopLFzV28LXanLO5EROLbT2VrQM79o8T4uXaW4XAzfSbHei6fZWXM87ga6ArEVvIiPIrac/NJDnKzzuSoPGgBlRGA4isRWOOLXWxxuSx/QGh0cfCp2iHUttI9ABxxdo0A9qXrSA6BASfO9mfbkNScCF83LTQdjHK3qxZtYtttW3awUwjK8Uz05w9miylXyeLzZ961i6G7Zxyv3WBpjLfBiaZpEzo5xysGMBBz7sCd5nR5zo5gKTc6OOXSkbtvnRxMAHD4utSX+GIkdd0EM+MHDmIhOGIhqImKlsNi5aFeFys1u28dHBOj8AAFNJYTktULRedLWWAfuu0ZLZ3PsPzgINLPTl8FSzjlYN0cAkPSRziPV4ScAnpawCwW6PfPrO4l5oUMOVFvPsGsWMqIjyl+Y6hO7fx/OA6P7lL3ktlEh8aoBA4tlfXMe+sAAPXR8K61abt25W1HEF6gX6Rk7lecYslAXtl72dV2aALMTkG+sB8XDvw2dVpxuHh1a3rtG/nhhAT3AIi+8yQ59wDJgBj2L131qi+6Uw6uCTQAB8xLz7tzjy0HlZYcCC528AA73lvjyxNXaqHgcX2Z5bMCkLrY8HVZGEALlF2Orq51itS0X+cTjObzgprLgHFttAIN7kkvuU+W0dHPgAMvRy1LbLXOSJg7rWiDd52O9AAFqUuN+YtL7dZlnPiy6Q+Yl48/WiOLw0t+43vp1d5kC9URR5L+9AOoAIGQ4cXPttQ99HdnVtji3OuEgEsUyBppLWOjwYVPGQ/70caAAQ9H9uj4Lq+4WeXmAccXG4QzZl6Gy+irYEbshdWSV7IzlLDSwUlf9DvkngYbLZxd0MQJZACT2sccXWGyq4JVlsF7EZxytlkPmRrHHFw4wfiABJLup+kADHuqDCFwBgAAxb4QaXZ1EVnF0Ax1ro+r4u28XoBL6LKjWSOYwBwjMMhXA57yVcEzi0ipdiZC32Wuu7abV3o4/XQA44tv/XNvL/0tipyZ8eEvriYAAOOLywj+oS5/dHYcAgy2fG7YMt+chyWYO0Et3VQLaIhU5mL24qPj2vuxZA9yHHaloPuIG5aanMUZXsVg71AagG9M9cK9tYu0iZbD0ZzngPUpYK9sMFXfcruiRLJsFTLZsMJfkPqvbC3ramW87ARuwhlUPQDHBA1wHq+RwS+IebcWAAAk2W2GmaQde2OQA/BjvWVfPo7abv08REk7y3FjKM/wY8aegd0oUKHFol9Qx/jo5/kROx3cb7sst4Ix2tYEJvth2VqoziAV+wq6T1bW9tVjRKerdjtrWW92FdAstUGOf7rxQNgXy4MAEv0dx6PKBLyrAWdnqd7YaBtB7T7ig9QlwNiK5xdmBpTR2qZrB3Vm725pgMOQDB6OM5oPIQePR2wkCbILPN3Rb7tflwUGF/xZwFRj9XFKHR/FydsL97aJ2gbiJrZzmlD2LDCM+R18ucgWxjrEPtsY6+TxakNLG32F5alvVi9QDPBEtvvkdWARMQfcb1ui0Vc54ve+W4Qbn/DiDS1KJddvv6gXEk4yBiJjsL7fdj8vGrx6s7qAAS/R/jODp9vP6Pehwxxj04x7+o97nNs+3Elm2y9w3i9MVaMIY1xJuRrZvFjQALAw9yodC+2mDH09ADHR3zJe0AC1KXZyAJVDlwO5V+C4mQe8XSS7ZQAAEx06KxqocMLkFfbDmwF/K1iShl9tvDXITHiAALu+wh7akSKcSAGFLUuEP4x8iY+19s9UPdfbcJjtWy21nbf0comP3W7C8tgkALPxeX6vG+3Q6r5PFnlu7NQ6vRwV8XqTHLJdyfO2XGapMezYMXOLzhjkZ64m3cH4u2H4fjHYR4CtuvtQ84ZFB+2tCr4CtilKnPxbeof9e2y3bYag6cywA/chocOLnWDHZElmP25DQ+lMf78WYH7GEF+Ux1TPEV0f3C1pzLnbdvMvpM0AsUuKmPC272pj5Gh0gNZQ0R6mPZsGVnlacyx/xb7Et1GX6/bgwqQga9ho4/BsUK2YOUTP+PHR1h8lcztmyXTcorej/4x8RddxKQ5GOS8rdA1nJe55wX9MfdWVMFbLxjiv8CLo5OMfNWAd6U2RjmkANGY6oKggcWZ/bpS5sMxyT6G+luZGO4zHo4OWMx0v7bcPrkK3WWztx4QnRxCY4TlvXW2hBL5fV5Ex1xnayYCKj4rH7U41ui66WY4kEuId3lIbQWrGInPVnaiZC32W3ki4kgPWh0h3b2quaCWAqSrnF5sx1NHaMUswJQsmwFtDpP221FBxyvUngZdH6FNlyG6GgT3ACjmO15LtiyUhsJZHdyMdMd3XEzsu4N3R7anZgDtJmWkdHJYdxcS+HQ8ButR0OPAry5j4V5PVnZ5McVP3KL4x3Fz48JipY44s+QAsjHwn1ReSHFBfjodElXUmzzcIZxwL1REXKT4B2OOLcSEJIAC+Y+Tocdm1QfQH5j6TyMT1ccVuUlXE3WoPoXgAO+Y74gD/mOakADAduaG6UJYh8veK2tiCrbYO9OzZ3aUEt1CXsU82kAcjyPUBgrofyBnDlzwgd1g61gFlR0ddbHUNbyWdklwBgAA44uaiXZ87YtAeoS353dmfst5mMjHRMYAkALDuzwsel6OutjxRjnBOw0Y8cTtNW2E5L3xjkkyMClYHoAZK3nfLknwoYu/8Y5qMs8MXdhCoJ4fHRwAABfOz+DtlonLBrJCpmtPWAu6HK9DrJM8oHeuMfvUAGLHbQAfCxxTIBYsd8UYHSa7FjnelMro64sfeABCDHGI1wIOwqHbJgusGP/9jq5j3LgMTo+E4uHP2ulbFOpaegEgblGADUGPLn73Q94XoqZRABOuOWOnjBvI1+yx8iJaRXPlBW3LHOMNd2q57DZqCv+WOk9rQVjwF+9UHY50fgGPGjwjOj8XR1To9pXPrK3egrrujwnR4MFeisei6P9dH0e0T7K57BesMeKsBYGHMwV8DwGFY/LoBpWPqe0KI1kfS6I9cFXPwbhCrHekgXEx+d5fI8jOj3PRrq79tdMxqJdKUtYBZOeojHFlviyF9k7hu+/A1SFJeV6Ma9sHeRmplUPbeLAlj5dvlgw6eCt4pmZBL0AQW3iz05aWqBPr324Li7N8nQAfDdemsccWrzrkIdxiAHCrfMsdIURn6ASkgVMq58HeRVuZlWy1zuKGSQAO95YPMdR8ZXzHQCNgmcOmAFBDu5iXSLHSbAIf2w5VYJVsccWLLHLilksx4CY4RDuqhBvGHpKt0Ax4zgWdMzoWPqhrzsCRUfJSrdFysQjWOOLQfAVpu7G/b7EsyPwsfbZIdqXuzxIEU6h3WPqQ7MNjxfKI1ta5Vv3jXK5JZCVpSQDJ2Ea2s5MOljFwk4Q3uyeuBYDN7iATEb4JfW4u5xbbWEdL7nShLn2V8UO+vMfldJyq2wlWkFjuUO0EjeVVtuSXgOIN3AC4x3xviLkvz23rLHa8AcAAGgY4AXsE2PQDHbgAAAAFPMSAjnaDHF1AAAAAG+SgA+odld+8BJfK7McVXnjLLZjm7CF9Y98EttWP99LKoYEI26v3Yj7t2q3NmHDqtvnG/LY9Z7KfcXmAAytj1qx+Y3bVsduoQZjw6/sRAx+hIXT+yTQBrjwxw00BS7/WAA/udhWgP7Qk2fWx4opegEsEmOYJLJVjnHK9YKCybBIf2pwr0ctsXS2/NHSJKrwALJQnkgLnR8rRB3pT4KWoww/AAOgxzmHcTVtySWYcrbtjmQxK/ZZYmowSWrLHtSt54QKiw/X7sF4Pk7Hitj/PS1ZHfp0cxWOnqAGVj2Uq7PpZR845TXA7HrDZdXlGYY4dIDAcQgDHrBQXVBjzY4g0ugWPyhAgQAI2x42HZbuxlq22UbrPd0oAKjo6SyDwmOtDL1ElzUSycY4coDxAAODH+xjrALG3Y4FysImPRlLRMlvC0IoNBnFKNXJrM7SpAUyAKZxZMgCzzWN7HlS51oxwnJbFoDw0ZGjwpus7nSxpIBF0czWO1WHu4VqtGxgPbQIDCKZB7HswAY8y4l1ZjYQPh3quoBOj0+K1UXdxKTAVBeM7HMs2bO7GWGyMhhABfWwIgys1i/K7ilsfjFXnWH+4V8wq8wADQMfHGPxTbINjjm8i/Y4g0t1GWCvL6W4cM44KXdckDO4B6hLq24PBYuAAGFsfhABRbHCQASWx0TxYwABKD2rpLEHDhjiyIMppACw7sbCkSDAbN4YQXYfscUR3A9LFB97cpFRHdcEvB5Q4kiIyVsDqHHo4x0e0aBdv7oOZlthzrGbzsegnhOLHm5j1wSxpY7bbC/GOXrHTorfOgMJHYl9tL7m+HHjHFx/uwCdYvMdMWPZ7H4JjoSx06Kxw1tzsOL5bX3Qbmx+RY8+PArsO1I7apCkeSy5xaoccdYAxHHozELBx925H/scf0A8HHBDjmH+4ew8lku6+20kKgspwUGGBgWJzsAOPJ1L8PFmux3/o5fYAAGOWDrGBAP+x09YG1ktoOOWbHb0dr2KKHY7SQDEmPB6AR1EScy24JfgEurwAmf71slosszI48XygYGPTKAr+jpAx2HY6yACpABvbHDx1zqxyhw/F/uhyXEnHLNjvwkscY/CcfpOO77EwHEK2rPFnE6FCQx3qhrPslgjh+hNjlzzQ7AOJAHRVt+x1CI87P5Ie3NXKN7lqXCF1je+pK6ChO7Hk414gx9zY5E2DmAANlrEGl7Exzv2Ewcci2OLHHEtj5gAPg46IIKvD2aLHIJj7hOGJw+Ecd3/RjAAm5d6sx7OQAGFsycOQtbx2N2LDLoeCLku3Th6wgM9jttsLuAG3kx/DAQQMH2NnoSwQAD10fLR3RTb0PtqQ0nIpdmQBccXjiUAtjrRR0jjdnM4o43XGHhFtxfKFk46jFiW+36+ocdjm6O5/JdEku0KXb7LQTjk4x/I48KcdC7QsAAZhjmYcc75evU6pUJYFLyIt/MK1fY9+cePOOM0QcjYOi8Isw/ABasKXlVH1Q1zCpH4UD2FJwnksDH101wmQcXqXVxsb/28uH25tiZswU47fmhoAAmcryOj4Ox1jIGNxtX2Pu+7lTAThS8448SbhY52cIrvXgDrh+0iSkLO+2Pn/7REVpmO0lVcScfGZ3C6i/O1ocYnHo4S1tBwAndrEFj2Hdn+NctIAbaWsZAcx4WFxzy6QVjvIAOX9zYrj6+x/VnbGcfL6A9uHmVViy27RY6VFRIHnKNwDLj76x/drdyWvWlmntb9xvegB2msroFgy/8Ptb5S12X/t9rfRMtz6ORnrZ9XBuq7eY94AfsqWt9AkLgF7iwHHdsWRA8OqzHwt15Ex+0tdaKSr/167HgghTHR3RY44MdCAAOwAXAAdQxy2Y5jYTMJm0eHREADFvuGY+2sdgV0z1AgDBe8Iq/ceOMfMiPZi7qHYM/RyI45wMezVWVWw3G18rs4jo+RGpNWyCFAGAAFzixU5MJ0dtWPEYrFrjovLDG45h0egGPxU7ANCcs3E8te0iuwT3q56/49txevUY50sfHsWmkHf49qW2kO45bcfp522qIkZjjtx402GV4eiRwPlLMK1jXh/CtfgntD0jy6A+OjmXK+KxdKMfw8X2jHIkyVtsM75fkEu0vW+zHPSlynq5ZAFOcAFeW0LHDQl2iO4vJcq7C9Th1dLH+UIRQIQAHe53HNJd+HUet2cgLDuyncegWPj27lbYcSqJFZaOogTNVYLE9IsF9x8/QCnccCWOFVwSkgY8x17HdFWuHuAP3HtpVoDx9qZfuKBbCKnw70AAalvoqwFh3b+2XEaS/jjz+6LDuzkPTveW+DzaMq3KEHNye+gA6KXSnZzvlxvKI+3YMset6P+GIExj53W4u0H9stxNRCnHLE1VYAAAAE+6so4IAJhx9G4/1UsqWPDJ7kml3fW/R44zQAfb3BVLddAX89bDu2KMe/SRMAA1hjkYAFO4+iTtJ5ARdHbejxyez7raiU6ieOZmI4AAawx2opwKFgD0AhVKL1IoHABJ46k8cj0Ad6Uch6Rlx5eY47EbbE3iQH+/DgtRHB460sefTXddr804U4uMxdhU8fFGOcrHHbYezx3IEiwMdTuOjPHBalzRO5/w9I8foWOFXHUqYPsYKHAFcEu563SDLrbYcPizepa8ityZLS2wZHjoBO6lNG2kz3KWnE7flgcni6BxCLqDh8WkVLHO4ZJgHpfgaPRKqq8+LHuIGVZW+pfJMd+sQUvHUe99Lx7QtcUEc70oSk73wAWbBoz7fvMCm5RprHS3FngR+6Vf8ceIxXfHHgPofLxwvcfDjtZJ2KZAoXj4CoOHxfyTvFeP6LHLetgzx5zMna8cLwhZsGpTjk+xw1478isGCPmvHMXjupO4F44xUv96WrEQCZmeNsGF47bbA3qXsvHXPCHeO7472CEeDJ3PDwCM0ODx98xBE8fYrAxPHO9KNzx28kR3pQmePzzHK2lnos4OA6envhjmu1wv565u2/8xhBMduAAp3HvQobhOCRI5JSaqz2tPHC4Dr9xw6pRnghKNxFVr13ALte0h48rbAX23N3Hwzj4IR7uA849sqWPZsGduji4IMN4+oktXmOoubA3jxCx3seEy8dUMAkfHtatuHx7+44VKAPGPlybU3GIgIG449K8cqDX+tLItV+kUCS48BbAHSjfooSPj7Rx0w2B+seoAhwAW0utli60WWdg8eCeOkfHmujqXS0UOCB8cmHI4PHEdV4ih+7dbB8fPbcIfHK9oA05Hi44xscDdFNxrs/F8ph4exct8BsGJX7HBKMINiHq46+IeQVm6U7K0Vx7x/K6VU8fneO6fHVHjqUy+OY/CQdvm34LHMGln7x5VpfVnvvePcfHRVjoux+7dcuMeRLpeIA6bjzNx2JY9o0Cz8XhIHyFZ43x3s0Fh3bk+OLQgLgAWVS8YakyYA26P7lLKzj1VO32QHqMvTG2QTHPTdD2ezqXHUgcLaXFDbWkDxJx17JcsryZuOvZLlVALhvlXXdxEcjOUidHtStn2SyvpducC82ODJA604YMO1jtbwqSUiP8aEUhcVIAKf7FSYAnePZHH4rcatadPQDt0d7CXA/Hijjqw2wl4/EqjUSWoGASpALji4KI7jTsiiOa2zMq9ne8DvSlqcd2eE8fAWoduFx7Du1lEf+G2TdrTp6T2xx9JY1seWiPH5znulqfx5aQAIsdTAAuOLeJ4S7CF7pccoDJAAJd7o/ji0R61FeRgdwL2CbHhJjzmx8nkWdEdZG2lAAmjjpvaF0313ssCWOOlAoJ4KUy5JAliZDhiPw9rC0D0LK+7pbj0ecGPdZLgAkcPiwGI4+LvD2P6hLsbF9yx1gY+F0e2kBZys94QWpS4AwAXEfp7XOC7DHF86kFMIw/yjOGoVLL7kABHU6vABc4uNoZLsIwt6RbxyfWRNuhr01v+Livjrxx60Y/AMdv+OsaGQW8b6AFrpfCceoa3s/Hjidlc4KAY/RstzkBeqIHjdxMzJUwA94stuPsMAWYQWcrDvShACc/XX0F71oj9qK3jQHDqsgMAkxGH6l4/sPBnblptbG2OjbiulhMEPK47QzuYBOe6y2AT8gLOYwHl3JbAAVvHabtltO6oqR5CBwMIi7H1F4KoqBRnYQdtOrmo7AKtdtfS+E4/ozt71WmM7ct5qLxwZ49a8cAm3PjwJEjhwy5PHZD4uY8kSJL+xjqZxzvSiMcf/6PBQYZVj6DRwBI5kXu2J36GwQTjvKQKRY5T7jyZ3kTbmxdkPlIc47BOiXqXF8oIcSdXS1EE93sH0ih73HS9j6KSxY4/KMeDePZ1EJnF2uunQY+SYAYt82qInATqVxxwE4u8eWwBBSIGWAMwyyR467bI/uoGJHe0VoLO2jo5z4vNmWem6HEjwLO4gZcOQAQOOagnHN5tOB+odfrqtYGXxTbuBl8Yx7EZcwmyPOOBvH4fF0TOxVYhLgdySO86H6tjtDq0vY7ascf+OEvHtgT/vS/sY6sbCzkBFFHJQTvSQD/Y+d8s8mVp6Apkj86i40E/PMfiGWYTe/jj1ux3P0QgKtr6WqN0+7jv+q75450bsPThPWgJQAd8Sw/45fMfseP2HA00l4kx1erfJRgGGX07bGHjunUD/QCSwwJyW3NgaQT9fx/3pb3seKSWZgns0cO6zEBohbcd1qVepwjbjs1i9/pRIjs9qWXAnMZtqCGxz5a3LRroAgvH4HjzoJyuUm6CeEGXegn4njgR67EzcZQc+YBtl7TUj16K7KlaBzsoOWArHYU0Z7xyLo9x0CvWPvorRZts6Wz2pZ/0edOOYc7bgThkVIybcREvUGPTOLFjj0EJ875dCJJ1+O+MATOV/9x3gsWxzvMxXSQnCrYTIO1mI9+ccsIOlsr+/EMYJ90jd4Qe9SOfLHYOmNwO21Y8PDvQ8J3ysyrAGRB67OflCeOWPOeoV0jk5mwVY/DpryOOrbHnu9qYRq4E/5ztTR3RWAGMyFk60KvYnNsS53RV7tITq6R5Yg6FcsojADbHqdjr/K1U8hZOtI+OMbHrhqSJW/nRcliseIOeTrx9jnIJ/rnaAatQmWHzbfgZ41xyPr2isc2+ORhwCiDJiByjI8t8d06PpjLUYTjJAkCE/t8ccAAM3HKZjp3x/p2Fn4ter2O8rajgd1x76Y4h6CduPskHKSlmBSKODkLCfuxX4GrsFtgpBxzI8pMuexW6PHMedv2KyB45e4vCyPrDHV5j3IxxsfTHcejZXo8g07jtJAHD46wMdyW2tBjs+jxVgLgwEXkgayO1/LerAcAJ/n4/I8j1CXaLbUAIo7KN63TNkeeSBWvH+RcVi25XJdtkeXZwHZH8q3H8BOmE6PMcUojDDSPzjocJyM9ezivIng2H69plyhq0owA52CVwgMnHkVauXcEHI/+PrudUOD0xnjw3+MNRCu8fXmPCtLZFtiCSrvnaEmzVuPPjwAlj2+KwtwEg8elhO9AAr4T9Mx23o/BQe2LLU0rWkD5Mx51Y+fXs+oVwfHLgTn6AOz6AY4uN+O0dHakTbFB1/ne3OvkhOL9HHEtklB3000fMfgWOXzHO4AMCx22gAgsfNmWePH8G9zGq6fRdxCeH+OwZLO7jtoxym45bkeMoOKbHz1jpEx1SE8CtuqF3lOLKnFlZxyRvfHMugWWFzLYUwfEJ+5vYYLugWXjzLIQTpqADvSj3MvMb2qnzZBd9cy7bo7EieqFDaPe7Bdgjm/gXddLsbOOoTHxm9suYrsldUiehuOqQno29/xa5+ZfyttSF3TUHOPtnYRJsY7ckAD0A2bLm5l+SJ4JE+Uie8RONzL3uWRXxyr481QcwWXsXjjHF1wJyr47p8dLG37lL3AQPwAPYE6M84P6W0kA8UAMBa0HJccStJGONzLokT5xuJvfzj0fmc3JCIWTAO5eFO49akvXT2UDHPid06xxJXZUcdb7XsismwAKAEbiRCR8dEAA+QnGmRO0xyFzacStHmW7gA1kTnelJEXdiicfUAtM70xtvT0NUZbO0tB8BXwnXYdyJx8FpcOtttwlyonSkT3K64ddaGoiuBP82zJRd7ex/zrcFUv/BO1rbqQqYmAG848mfP3BxiyCiDF0CawCdYEseBWWMjw1ij3ou2FZYBttzhPnmyJgd9KJx6E6CcdITIg2IPTl8ayxJY7r0seRP9PqVIT19s1O45BGzzhPAon2XaeSJ4OAEZ9thTBc2AiO9ouxxVYiQcfSVAAebSSjuxR2tE9LMenOPb7HVf6QnK3n46JtvThOatrj11jBx5IE/oCe1AAZAnkNlmBSMyxcwmyBEAFEGHxdtNi3XpemksrROFWw7Ul7Dx6ZQBJ3sANhJDwd9jzay8CXbP2tI+P3HkPQyLzi822jTscfqXZPHDwhKYRnCXedTueABYDHq3jjFsLt8kz4tivoQP0tzYasABpIAWUd0MX+i7ZlUEWALqUBTUsWOO/rLbwTxEx2pE8Cic1JWVAyWBjpQJ65xdpLtQSBUgAzvN2xq6kAE4MsGMB0FLMUltex61JfiPCehPBrrOfj1wS5vpefoBCKBKrk3WEbLxB8o914sjIBopLKzj7SJ1OHHeiel8PaonHEgFLO45IAF4sBAAvoAfZAFmx8GbdL4e9CRebLCnFoPx4xxY8iesBPYYn+9loAx8Lej8AAlYPI7rmKjopy1IE9ncdugBZsGPTlpxYFMI0YseoROTnHxjj1iJ7JZeMNRem5CbHm/N1O29XNzUcRTgBopLxfBf+S9JUA/UvOxPA4n3oAG9ywkACAMfsKXY7HzrFtqiDdY5OccccWpAALnF/T6lxxabsDZRP56A5gT8yAPxY6AmTyWWKZA42cCscC3Y6lwjOxP1Too8l1XiNgY8bce26PBQYHkTgegJuZaccc1xOVQ8T2UEpS+qo9Xutj73GUHA/V0sx1sAFV4iGqO4xLbT89OyyfdczsumRPlfHJjjmBgKRY6KMc1xP8gnYmER260jE988eteO3Yni3jrfOIaeGMPOYnwvVH0dlze249Y82se6uOTHHQajhM6z3HlczvtxOm/H+BtvsJ4yE6cifRqPa46saj27SzsIi04uQuA84nbbYaex0bY8fktRBPyeLMQToHR5HY8icfiCXvqSgoMe5Sx+Y7bbCOYA62IDD12zs+dxasvAuxP3ZI1nj4BJ4SY46wDxHgWS78R4YXR2rg/NSugO2Rpbfaj6wx6/E6HUccgByEnEcT5Hq5wfYZbs2ROyhbZm4AAxxhXfDCeDColXz4OQFxCEHJfDSv4tkp3HmplnB25Iffwds0V2KHLbj1xeukeo9bXA0+P4InmQd2Uq5eo5odvgNgREnZkdwgy7GNFr2Tx4OWrLWLgMdoG+o6CeuHC2vjHeNAeoS6I4+jif09XJHL+P5yVSno5c78euH32dHRcltKx2k5150c9KpFlbPh95FczXg72atrcZ89LFiTzQJ1Yk7iseXZ2W8Hlldx0xxCLYaevtPWYj7kBj92qyAY6SPuoi3XK7rPfEAx9VY4Cctoi3vmr3ldjOx5Pna0LPZxOXLb7cxGfB4K9ZmrtL4PunLLgAaKuw47eycvb4O6j7+TlgDK8lXZbnAKaO+Mr4GVwAFUUk4+9P+O2zIJWjAIJ21xo6teuqaPuT7/yoDTR5H2YR8kvPXqq78Tt7l6/VXaAHP3V2yqHRSTlqu3S5d2evWaPNj7tVdjNEDqde/PDdV3q+zeXoASx6gQ4VesL/JMCHY1d5t215o5RevTV3EnLhBDhTK6FXYi0fc8U9nbMWj1au5QFcFFAbV3cxbWxBdCx4WLZ6dvUvXXnbB1dwZ2/c9eZevZaPfRbzSTngh4Vo4SdulaOKa7R3F7pJ/M7f8yuIuX+JTtWjoZJ+2HccYIKEOgBzEyTwUGG1o+mSczHgutHSA5wNgPDY760fLJPDCHESlt2q5Nlelas7JPtlgTUMe522VpcOSezaOXnbtSTxbR3a9bKrvuEPAXLewlzbRwk7Z20e4+2nknOUTg7R61XbeduYfmYJb/Tl4ZJ9Pxcu0fwu2/kn8KTtQc8i7fa0eYdgntHGYeJeIIRLakDPES21XbBFADV22m9a1dttiW3SHEtd0t6x2pa4ktxghGpLxrt0dx7YGY5YuXJ3deIemd70+34GfpYuY2WpI72EdqsywbHc4ltG13wTwqDDt72767fMyNe4A82rtrFgN28JLf1YvZu2MpLubt/9cBk47MrvjJmyPrCbtsN28ak7aDumpPoy7AujpSWzqxf3DsmpPwaN0Zd5uK7Lo9h/PGqAHLHoKdp2YiPXbV0dJ12FrLZUlu1iwIlc04jfEO0TM09AZqS+ZLb9ScghnYfzEoduFYIWvbiDtq5XYC7Luj7N22O7bhIcIe2p3brddmCu2aUVOet7u3A9Hgnt8C++f1YRACEkPVEnNi9720Me7aT0cHu3667U6V0+u7hfeK9uJh2k9H5v56IawxHZdMvMhWC9HV7t1KW+FoBbSdnl25EZvJDivR/43erSetpOa17TF9lp9PlLfnZl3zhG9Hxvtu124AHfloeF5W7/8s7t0vK8aHug9sDA2eOacQdoTq5Fo92sjUCXFXH5pDjni91pbOms2kPcwn26ThfR4T3xQbsGX3CPb8tDky+955Y0ABNJ2LL7PU9q/23n3ZucDmdWkJz98llj2z849jECRkP9jzZ7t9cu7O7ev0cDA2C0nAV96AC785foUvie3+G7vk19P692beHIdbeX5UntvFy+uL78FK5QBe3uDHp3l0gq1Ojig8v/KhmpLNVAVAG2E3bhltbdXkBLhMd6YK4QDdAQ0lSIrXbMhj9L25F7Yq4tvNWIY7l5DicS1l1coyf3kOvNAJXtp92891Yq9tZvFfr7dMthb1kowDBjvlpOxWADXtzmWzecUFkv/Ob5aHqPl4YcLow8absDsWZ4IM+9vr28XHcG9tABXhvb9ndtG+5txeCIA0ZPt3b03tnwGxbADm9uw+2FZbZ3FsIG2RQ9W9sKiW4jHuddmih6oXboCzPNhB6w+3thnq/rLaO9uUCW2erxzd37i+d7eUruhLprvbgvVkHiw27anSsQQA93bMlD6Hi1oHd3ceUKAamE0t9lHi8yY9cPM3KXXXbWPF/qx9GwH2Du+8X/Zb0LdiH27FnYmMcWXGpjHh19Cy24j7bwDufPHo5bl4qUoAGj7ZgrsrGOUNwaxjnH29TAFOnB4+2E5bZLdon2+7fbgyfAq2DjHRc5yn27LxbH9suu3afbsz1Iuc/T7ap9tM+2tyHPMZtn29zHY59spUOufbX+ltIuw6nYF9scUMP1H8G4f6SbbxeakvUp2K77UjjlmhD1He+3utl27zLfvFw1u+bGb19v3e2ILLqJjgkSxr7csLriOXcTHsC5vfy/Nk63Tt2cXhqH7DFO12467fnvtPsX9snaudrxgI77cXKSr32K+Lx2TuRO3zJDOydf+XWFze2T1Cy+EAHEydjUPNZaEDluAANOk923QknWx+Lz4Fw6h8H7c1Mcz8WSU7SAV2Uxxo467OIGmOV+LJKdmUx4W3YcXMfy3KFARbl3tu+ReDT9tTg335b+/FuHJ2/xYY9s6mPX9zxpjkhy5gNcRscfu2f+LLLEBv22+DYdMfN+2nTH/Mwad2537ciMvOmXTpb3kd2ga3xBeoMurB2b27AJVhlVh/HdwEse8XiLHWGlz92/I/fEgtz+3WcnlOT6ux4K2BX9si0Oye+6/tpMIJLQ6Mfv7+3YrL9CtgQS5WY4P9ucO5azHx/t/Wh5YNaoUFPcA4cncSdh9J++k6w7uK5POzHTsVwbxBY3ac9uO4QNcnRHdpEqyrxc/9u68Q2E7Fgl8LQFxJcLdtAB3sCExh4CZtUk/ecEvMWWGYnBeAFVJ1k/ZRDu1ABlcgLuTjox7YmctyeQf5mfbe5jvpc9vRdE7tx0PQN7D5jgAu2QHaALt1P2VeL7oQcgO9+Y8ALvd1lLXb7T96gO42ZdALvSpP6A7P9lgzu9BY+YDtPu3c6HnddiessfHYKCc8B3jDimjd28Sx0JaEDsTuO0lLE7FqcHNkZCzLtF6WpA7EQABQO9RY6SCv+d3Fn7q9D6Riys/ZMsdrP3Oq7jPtjVJ3u7c6VsEiWWc7JmTpcJykHbM4AAVmI3HxCdoCu+nQFe4Bjd2ig7n9DwoO+jnZdruEjVxRrUyZ9l2+xnYiscbK3s3btuT+sO66k8jhuNB2g3bJQAdkS1u5dtSc75P7VzYwVroO6d3f5XPj5PeJLJVj7Bw+CNgXusUMOje7GQd8YOxXDb19skF3GGH9yt87yxhhDr8dnTWPcnfuT0rO8ZnaUCATsXSc7pwV7V2wIp16sc8v2BjHKgdh8WMD7Z4PtjWP/SrxPlmZDO4ABtNs4ahLg7c1j3hyxeoGaUv+iWToQ8Nji+GzCHbnLuyegPg7Y8F74O0Yw94VSlcoAQ7RGl81+1voD+cAb7HcxLPGAeOJzqlZ1jN4FOog7U2Trnu4iHZ57vu5PozLVRVx9R4DY9F7sdiXbbI3Ylvsq7SHaH0skZWk37w4l6bO6OJd/XtpFmhCnyNjnN+6euckTBw5OsNADxAC5K+yHczTOch2Pgn3IdgphzC7YtUD8h2Vk7+ED1tK6KHbbfsRWXJQ77CFmvS6AWW7jttpne37T4lt1hyHQ+UqBqh3ps7veTu3e1hHbajtjMPl379odj/J1/JanbAuh2aM7vsYRnAhBJedydrR3QS7g/txfazsjbcKdWlX8wrwrNFWO94U7gDtH53PcnARTknOzofENEsIoF+M7+Clz4ay6nfBjvHTXa+72k1nSS54U+QMfRh3c07uuTm/JzZAGFJzEAA6Y7XzD/vu9OFchYekf2RKrrhT+j+wXg6JYcZIWIinbR4WGAI9YHvsd/l2gR4hXVuRGXSw+v7vy6Uhw7BuT7lS+OHc9Ut5Z2Ty7H7tkCu0BXY/suAV2kbrOmd4MK8dro5LvRSWDDkB9lrcO99STXkvcUAbIADByaER6v/WnoDIFPq1LFMd7qh+eHfYHsHq3zrLMYd7ju7NHfABY2LI7vASN1vYAP+MUg/yUl2pin8pd78O7+HcZYv/h3gHHuX9i+x36jcAxsXhXEorEjjwdh2Nk4Q/NkY3EorImN2xx+ZVdsfNe434nH8UV3Jx7hAFDkvMcPnwriTV8B6wtjYzPNj5m5OH7eTqGS8X/Y+cfHR2BGraMd/LhxkxdH/shNWcuHUi1qlx5AeZ5cfGj2wjzIJT4Vx6//aSqtIAPyIrkVVg1x1draNce/529Cz53DmQSwQABvSfWx2UcLXEVkpS0wA6dcexKWXXHlS16qRK7HaJwsN1XUvbPrjwaq1OjhrymRE22E7rS1kOO9EmY4DuIl8OXwjt1zce1Kk6CPsJx3ajLZVD7zJ+ACzTjsqRXNbbXbjuqq88tf7cfjx3NeLxtlhwp0kA6aqsM62OqraeFooBzQTZxKdmePeuzMwD5eiz0uZ74eSaXFPH1c3Xfh1tVfT1u9rWvIrjXjxZ80dVd28enVXghH93jzFi5DPbyEe/lnWfH8UV2Xx8iVbV8f7COIhLsYTmuiydtayiuapX/qrFh5jSB7H470tsg1Xi/HIVVmyB4xWcTjOA6Xi57wojnKm7gxZ7jtyiPb6rc/j6fy+1A+SNvtRXT/Hs89n/x6TVcGisrp3IxHEQl7gJ+dA4CTP1lOKXWjZT0QJ4cbapqtV6WqM7F4jkwJ5zA9HouIHXYTbyJV8+m95ndXqt1BOE4Hd0V1oJ4JI4/2uySPIxR10V6rOzUvZaavwhP16rOIT+qR58vfzrrJM3szbax14Ri9SE9Pqv4Nnb6rq0jhhiwfeYgyenSPb6rEq9k5m1dI5fqsSr2HQndVV30J1DI5aisEPnQwn2sVxWexA1bAttomXqZHwJTx6RDraasYuSs3hTrSa93ui2Mud/Kc4W3GHzVrN6ZB42U6IasGmWk4rmyD6dewoFdEtt3hOFvWB69t8pxHRY3ov6W2g8nf69iy2xfFZrkcUROcdLeAt1De4gXeXKfKFmwObgqV9jm6PI9Y3vUKPJGrT8j0BiymCEgYv6oOTnzrHN8+R2ag6katgMWNGrGkTwCpzo1fgYtSRPdGrVFTyqKwdHak9ijc3f6LZ1tmbe0eg7zKeMMX1rrj29i66/1ddUivCVO1ebcmDwSpzOU9luvMMWKbLzJV9FR6Vg6tLvNTnyVHUewn0u9hU/LLvX0XFnzs+901Kw0w/XttXxOfVH3kV12lLCU4hKtfxPCOraTVuNR541c7Ue0H3FnzfajyhJ9HFb0YvFNWLKrpTVyJM+U1fTkcCJO3irtFdgPB46+ZkSeOMWVEn6hZ0w+8JXa0Sf3hW/1Hh4VtFh3UU9sSebNWJHbeGjrEpzo7aiSdFRXqinoz15jR6UxdnwdzMWIWrmST0d8+s9fyScvMWynLHTFkUW7fg96YsB9miq7gzF9UW5i1emPuZFnACHbiZ1Y+wMk5gIc7H2nnLrmjzZizs5YC0eUtXanbUr1mlqxP2aePt7JP6qnhCAMzK/C5cOrvkfnWXrEztq6u++gEhctCEP4XLz1d6Qh0OLdf3PSvXZxbANdzVq6K1Y3FsnO2EPzu4t0wh0eLYRSf0n330AFr1nD89jXZVasE13NWrkrlzVq4BLaakDgu2qPz5KT7Fq/C7YwlsMpPTWreg5o9Eq9o8yIe8pOOQAgAAFdBAAAy6CyN9AAA56B5EOiEAL1T96p+AAEAABLoPI30AAAnoIo30AAC7oKa7Y5ACyN9AAA66DyN9wAAj1TwAANuggAAHdBZUnlZ5x6p4AAFXQQAAIeggAAY9BwAAgAABdAUansjfRRvoo3zeqeAAAN0HAADw1PIanijfeRvo9U8Nrv4gXHqngAANdBaanONT5RvjDU7eqeAAAD0Fkb5o1PfXbENT5RvijU8AABboHm1ceqfSN9lG+H1TpD68iuYFqdC1PSan8NTlGpxDU/AACw1PSPr9bVr6p4LU7eqcS1OpanMtTjN28JjU0TNi1Olan8NTyWp9LU9hqdP2gLUnM59zNi49U9kb7Y1PwAAgAAS9BYansjfR6p+AADeqfPVPFG+gAAPdAqanyn1vSWwLU4Ub6k1O0anKNTjGp4bo5Wiuu1Poan8NTiGp7TU5Ub57tWrdHgIAX2p+bU8tqfW1PsanENTlGp5TU6vPscgB7anENT4Wp1rlfx/Oa1PwAAaNT36pyzU5RqeAAB90HTSdfVPXqnStT9Op5nU5zqcokO3qnKNT8AAPbU+Ub7Y1P5G+FuVqWc/I3zeqfSN9wL79tTxRvpLU8Ub4lpPAQA0jfPGp4o3xtqdl1OK6nVdT2Dq4XU+zqfd1OYanvdT6up42k6N/P21P4an2NTnPR+0Nftqel1OUanpdTyi+89PftqeZ1PbanfaT7764CAAHqfF1PcpbzF97Gp0TU4dqco1PVG+hUtxP8wTU7Nqcx1PwAARNTt6p2jU6JqeKkOOQAb1TwAAGegKNTg+p93o6IQAQ1Pnqnv9d6Rvr9U5RqeI1P4PbRCAeRvtjU7Nqdd1OIand9TkGpzuk45ADa1Op6nPP1/ccxDU8AACnoFP+cw4un1PY6nfUt1zyyzU9LqfPVOnan7pDrX6/bU9Pqfw1Ozant6TjkAJ/U+eqfw1O/qnKNTgGp1vU+d+se1PfqnMNTz+p6Q04/SfPT266n5dT62p2bU7ZqdQ1PvL7C0Zuupw3U4AydC5nHqnRNT+2p9I30YadENOm6nz1T6RvjDU7Rqd31OWan6DTh/R2xOe7NuCNPhGnj1T5Rvg/U9+qfW1OT6n9tTv2p6XU9kb7QNPh6nijfFGp3fU9Nqf21OKGnWntmWpzzU/NqeKN9HqnJjT8AACzU5Ub5Z1PSanZtTgOp5TU/LqfL1OUanOEZx6pwDU47qfw1PranyjfX6p3bU6IafY1OmanBDTohp49U7UacaNPHqnTdT7Rp9jU/oMcON2vqn6NTrGp5fXEzqd31PoanJtT+2p3fU47qdM1PEMn83V+ch7DU+Ub6yN9wAAijfN+p1tfcBADyN9fqnzdTugq6g04kMeAgBianW9TxJu4CAFkb6Z1OLGnChj/Bp89U6/qdUZP26nKDTgQqz/NntqfaNOk6nz3VuepyDU/Lqen1OXGnIDT0pu/D5e6afA1Py6n2jTsmpwM07UBs3nFnqnSdT1Hy+00+eqe/VPcGnomTwEAGbU/tqfY1Pv6nbTdlRp7DU9pqfI32HanijfLep74Y45AByN90GnphVnwG1XU9hqeKN8L6n19TzTJ3hTWxqf21Ot6nKstmIx7fU6Ub7E1OY6nijfK+p5t7YUwFm1ORmngTTpih/rLfJqfyN8mand9T2Rvhw07yMe/cXZG+ADT9pp2bU/AADvVO2anHNT2IqzROfYacw1OdanIt9u2W1LbR1qfgABgGnMdTvzJxbU9kb5P1P5b7/49lxp1/U7xadey3+4byzTgGp+g081vsE8XXZzcjTiGp0Q04Aafc1OsanENT1upyZQ/h9uItmLanANT9Zp6bpCsoeAgBwGnMtTg+pwC04x9tfNPHKHrLZoVpzqBYzlv6gXYmn8TT25p0k04PqflZPE4zUdT56p6TU7eqe4tO76n6DTxkGwDU/oafKtPtGn6DTmKhxyAFPqfKN8ganoNTjrJz/Nkeqd31PKGn8jfM2p4fU8TAsszXUanmNT92pxq05MadAmOdYzj1TtGp9DU70acOtOKWnM2Tqfy+jVaJqco1PpG+VjTtGpx606WyccgBnqnANT56p1jU/ZqcOtPiWnoYN9ws760/9afgAB5GnKNTxRp8NQ5Pqej1OdZa88t1Np6TU94aduNO6THDfFzNp/DU/tqdE1Pjmny1DwEAPm05WadrNOvfbRTV/Np7s0/uafVg3T5b8dT+Rvls05xqcs1PzmnVrToHJ1Dk5ZoSbNOGanuNTgGp29U6Dqd/UODFzb1D2lp/PU8jqckNO+2nVrTpHJ0ANeHadvVPI6nLbT/tp+DQ9/lsb1O8anWTTntp+O09L9sgK2PansjfFdp3O06tacf8XEmnWTTxNp4o0+oft1k9aH7RCAJhp5HU6ZqfSN9G2ngLT4Fp13U9MaeKN8H6nEDTrh+3q0+Ub5e1PGBrmCt01p5Q06BafSN8u6npdT8up5XU7TaeJmPxILn7TjFp7e0/AADsNOQSrLENgBp5nU67qdXtOMmnMNTn9pw/U9kb6GP3OBL1fZwNp0o32tqcatO96nVrTysxy6049afm1OiGn8uTlpc2YFYCadE1OrGnPjT4hp4Q06oackNOt6nd/tywa49U88afeNPfGnKNTqjpwx05o6eIlXHBr4NTi5p1/U5tqeKN9cWnsjTi+p+804nMdfDm+2n/HTmGp4J05JqeT1Ok2nuTT3662gHavaeKN94OnfbThBp+uY45AAPtOKanTNTpTp1i07ujO2JnNOn1dTgPJ/ENe+qsQdAxO7eETrAO6k2ZZqc/tOc2ngFjohAPjU99adENPzOnzdTilpyEFZ5afmdOeOncNTzlp2VBbsDM2NP5G+Z9TuGp4006gseDP2BVzcFjzCx3Emf6gvCB3l6HSgdhJq+rw8cDut5OlLHSxVjvJ/V3csKc3NOAanaNTxmp0i06lqc5BWjn7BNTnRp0q07xqewNOH6HAFZlZpxTU+tqcZNP2mn4jTh2G1l06facFB2iEAD7T02p0Q05+fv7MJSRLNXT0mp2rU5zsew/nU6n2tT9Lp5C/fpXOp1PmVzHXTiGp0d3aIQCs1PrangjT9BpzMFcK6cAtPu6n6jT8xpyjU9hqdMtOH8nyzTpup3Y0/BadGtO3RrHIAImp/604asey2OEyayrTohp7p0+sacqN9PanIBTohAOnU606cjc0YxrQk2SGp9DU7NqfktPIe7Qr91Ma79U8lqdENPIantNTuxp/DU+5qew1Ot6noa5hjp4Q04UYdfVPymn2PdohANjU8Ub4A1P0an4AAWmpyjU5W6djwWDWnSjfK5p7CFYu6faNOQWnriZq9p7zU/NfuyN8ian6zT7eC7I3ySafl1PX6nizThgp+qmaB6cg9OUun6HTx1p29Y+mUAfWPAQAD9T6Gp6/U7Tac8FO9GnRjTiep0+09jfv7tOZanj1Tz1p/L3fjqdAtPoWnpjTtNp9OVZZ6e01P9mnshT+SM9l0/tqcs9PoenFzT8up/I3whqdvtOlxLXHT2zp3jY4sael1PmWnwL5ohAAnU8JqfoNPQyngIAIGp/I3w9qcrdOrQrZtT+Gp4o3whqc6tOpQ7YDT/+p3p04ZsdKq3sRrT4lwlp2407B6dl1PlG+KDTi9pzLU/8ac61O3AAPjT62p2j06lqfS2PQincwdyep+Y08saek1OsunftTxRvig0/26cMtOL37GzDq9+xhJf96emtP/anmdToPpw+0+hqd7dOcGnB3TjGpy/KDkacKNPrannjTr+p8N07tqeZFOXbHRCAf3pxY0+Ub5WNP4an63Twep4E0/NqdA9OWanCfT7mp9jU5W6f+2OfmHP82Amp7i090aePVOzanE3Tltpwb05I/u5h3E7H+IF4vp4H08N6dNdP0WnzzT7Ox3vk8H6el9OYanZjTtxp4LU8JqfK1P+unTYd7rc5P07L6cuNOWan0tTmRp10U57sdPVOBank9T62p6jU7vqcA1PxGn5dT++p9bU/hqen9OHAAX9Tj7p+bU4m6fWZntGnirTg3p4o3wAaek1PTanCnTr+pz00/P6fedPTanFHTuRpzN06zqdn2OJ1beFNdbp6H0/4acYtOtGn1PTh9pyjU4sacJtPaWnijfLGpz/0/e6dWNOAmnBNTkZpwb055qduABHqnDfThNp/I31Vaek1PgmnADTnmp06w5eKcusODwr0jfYBpxN0476dp9OE2nndTohpwW06ZadvVOmancjTi1p7s05Gacd9P2mnSjfEZp7I31DaehtP/+nMNTrAZz40+AACe9PfWnENTwQZ2ujb0ABYDPlG+OAzs/pys07PqcIDPmBnTdT1gZ3205YGcOAB3untAzk7p9DU5/6fcDPSGn5dT2Rvob0/dqcoDPUunlAziPp82w4+KcVpmV+neAz9Gp3AM/AAAOtPJOnJPT0npwOw6u/vuD2eWnptTkvp2X04Tqfz1PrBnMPThhpyT05N6ck5n1HHX1T23p+408sGdY1PdHHa3GKnp49U70AAH1PjAA8NTnwZwR0/QGd8DORmnHvT6Fp8IM/3YevhXASnQuZlmp3/U8YadyNPSunZ/T3Rp+c07t6cyNPwAA0jffxp6I05AGcYDP+BnANTzvp4wM54aeC1Py6nOTT2Rp2UM+P6fAtPGBn43Tx6p3E45A4cAVnY+nd9T+Pp2XU5wae2NPDBnh7T4bp1X05yGdQDP0Gn4JTiX+6305Rqem1PgmnDQz8upwG0+AafH9P7anGTTvGp4wM5r6dE1P5G+LNTkmp9307cacYDOihn1TTlGp13U5Nqc0dPemneNTqFp7jU/Nqeo1Pv+nofTsup1X05kjpC1O9mnBHT5KS2cPZv3scgBAhn9vThNp0709S6cI1O0unENT93p8o3yEGfe9P5nHFaZtXpwwM5WxuDyW1uMNgzkGp3oABBqfGAAK6nvNTkRpx60+2ceIlPVenANT5RvtLU7Z6eH9Pj+nTLTvjp3gM60adM1PZG+VjTrgatzU5BqcYDP6WnntTmGp0y050Gco1P0en5nDpzC95VZcwufOOOQA+jTgJp7l05xqc3DPzGnyjfe2p+gM+c4eYlPzBnpjTs/p9w06bqfCNOEBnuQzhwANjU5ZqcuDOPan5tTvGp+XU9xqdQ1Psmn/LT/6OzyPZCqusjOpunltTxVp/bU7tqcYDO/Gnw9Ty+pw7U70GfBNP+WnMNT6YZ2VhaIUsox3cSnXWt6lx0X05cGeB9OBRneAznhp4o3xFGdM1OuRnUAzxgZ8dLHYLO8dOGmnirTx6px6M9uEI19OHenrNTxRvm1w+iqujYWt9atwhXQZ8o3y7qdC1OLGnQrj/rhyK44W4sUlOlY7NozgPp1P0/tGfl9OO6n5HTxgZz4M+1ju4APRnr/zT8YZwBWdtadojOE2nuQzhkpw207xqcgtP6AHvDTw4Z/s0/sLNrNPgenaNT45pxWGZgae/a2F6nQpTvGM8A04pqc5KWJOnwbjnMZ0sua+qdm1Oq6nhgzhGp3e0+YafQ1P+mnRDT36pyM08nqcKjO0anWjT1gZ5i07TadVVWKGLxYzx6p8AAGkb7PVPYang9Tg3p7x04QafFDPcWn0NT01pzHU/36fjjOcOnoQDhOpx9U8iAcC8OYgH6PF23p7K08eqfItPJeHWBN1w8/eM8BacnjPzan44z0bp8rw6p6dP1PCgHrOt+Ce7DU7tqd4DPA6n3bTxgZ6zU/Zqek1OgGnZdTkoZ39U/hqcPdOEOnltTjQZzBM4EadvVOoWnj1T7zpyrU+5qdGNOgJnXdT/6p0V07fcdPVO3qn5/T6Fp2bU/xqe0DPIanZ9TlBpyx09lacqNO8anB9ThwAP9U7PqfgtPyJnQ9T3Fp89U5k6dcT28Yz/tTjRp0m0+86fyN8HAAXnT6Gp7DU7NqfzjOHanVrTvg83vU4BqcvyhsanVQzv2p7a06sGcSdPihnRDTnJp13U/9qcPtPiunIPTu3p7I3x+Gez1OIenxQzkZp6OM5hqcFjPePH+x5niZ1BM40mcy1OtJno7T5tpxsM9JqfydP4Onj1T6iZw004kmez8OnJ7uEz/QZz005/6cOTOz+n0Ez5SZyf06haf+62LhnsEz8UsyjU9nqeBTOJ6yzkgdWe7I3wTqdkTOu6nskz+Gp6hpc4IsWeOAmnJEz2CZ05M9Qaf79Oo6n3nT4/pxcM4CaeBTOpibFwz748DEM4XGfxT2FMBSQzt/p7QM4Y6esTPwenhwzy9p4AABfQNSZ0y09wGewTPrE7JXxwEAK4M7wGe/VPWJnGrTkhpzHU8xaeXtOVJnwEz9SZy1M6IadqaXsJnMtT4CZ9B08OGeUdP4anYBtx6pwHU6VqdplmWJnzdT6xp5nU+Y6dUdP8anENTlLpwW08bafbNOup7wpVo6q51M7cafdTPVpntUz/EZ/5M9UmcWTPRpn05NiaZx5M/nGe4tPkOng4D48s+ZM5GmeaTPc+nONTsupxKM7smfw1OHJnjAz5yZ9G0542t+lOrIruQjz/W2xxeDKePVXSU7bnZ7Xp7r07Tqf4dOgen9LT8Wexlpd67NP9O8BnSnTp/hyUAA8mduNPghn59Ty+p7D06jKd6xX7x7EqdkSB3GU71TvCd2kRHLZ55wZzDU56GcQ1OE+nbjT4Bp5Q04QGdZ9O9RndtTx2p+mU7+6ewtPlJnPHTtxpxdM5z6cCNPtRn6ZTiqK1JM5flAs1OmxnIEzxRvmBM74GcFtOthnPTTjCZ9HU77aecDP8RnbrT6RviTU7eqfedOsmnSsz7Jp6/U678dhQOS574u1yKB0JNiB6fyN8+Gn5tTwpp9jU8eqduABRZn1tT8fx9lA/aitxtOsxnCHTuZpzj0+eqdm1PioHVojh6M1gM+AGdLDPcenL/T4oZ3jU+eqfKN8HAAVsz3fx51FdgXs3nFl6nM7TwwZ270/LKeDQOwenSjT/Gp7V09xqdcDOrGncjfFjp9bM8PnvP+P+LzZtTs2Z9bU+kb4jNP7antNTtnp0/4592syXmWaniTT82Z9C094afXtOCOnmdT1MR2IE/4vMs1PC5nmwznup7jU4f6f+9P4anCNTnjp0UM7QGekTOc5n7vT1gZ0UM5r6cJ9OEZnijfBwAFu07Qme5zO1GnONThUZ5AE+2Ns73neGnyrT6Fp9jU8KafA1O65nbZTmi8+PM7NqfFdPHunhgzooZwW06LadLzPEmnyTThDp0LU+tqco1Pvqnkczg4Z0OM+hadkL2A6bM151Ma4gM9+GfGBPAc7pgTwHpwCM+yafbjOqpntNTpup+R05ZqcANOZxn6LTpyZzN06pGc9zOdJnw0zy1p1jU8CGeKwPMm6gPTohp89U+XmePVOHAARgzikZ+008P6dWNPZ6nuAz8/p6q04cACw1OjGnFtTgRp4w0/kacE1PoanT/T4cZ1h0+DGc41OganktTmGp9UM56acG9O6Znr/Tmbp9Qs/hqd/1PZWnFHTx2p9X0/fmei9PgGnYTT+OB0xI+pafojO6WnafTvhZ1xI+pafJdOlan5IzmXpwJI7/pvt6XJFn4AAKkZ7DU4KafCNPZG+UCzqcp2u/eWaevtPDBne3TvOZy70/qGecLPhunHdTixp48M9+mfsTPGanKNTjYJy7WbIGfqdOaFnVAzx3p+LU9xqfKN8GenC0z56pwJM5xqe6DPihndtTx4Z6oM7wGdYNPFG+RjTkxZyx0/8mePjOpanDgAPSZ03U+Ub5uAB/5npNTrJp2bU8Lme+zOn+nQNT4Rp7BM4lGdRLPspnINTy/p49U5GaebjOCanVjTrRp53M+saeaLP3hnOizhjpxTU7FmcG9PMlnly9ils6a042GdY1OYhnZtTqxp3Is9kb7fzPyOnFdTp4Z99ndfrOtyPs5nijfc2ZwSE5SZstSPfjrMgzv2p9uM5Zqdb1OepH0DZrLp6aM6KGcutPFhnZ/Tqvpw4s7LqedTOTGnM/T1vp6bU6tqdYNOeRnGK9ne820M5y6fqNOJQnodTxWpxp06f6dn1PU+nDLT2UJ+Ms8gGem1PYanKfTtWZ90s896dk1Pnqn6oTm84hMs8uWe6dOdQnnOdwZZ7vM/Jafu1P8ansjfRgZ6nM7QadxDPoWn3aJUXO2eU53vPPLP7Qnn0jr6p88s9JqfArO4x6vszuPp0b0/smeXtOARnEMj68p0XRbVmff9PGBnugzpNpzXM5RqeIs3tunhvTpOp1rFZOAsFjPihn7TTmdp+cI7wpqkrPpG+5Kzz3pxNM9LqfJdOz5ny9Tp0Z7406Ub6INPnynLYzjRpzWM4e6evlOhJsf7T7lZ+s07QfPvRmoxnHdTmTp6Ug7/vNvTOrJnufTn8p/BM/4meKs2iEAHdT+RvnzU79OudhPDmn3nToxpz/0/CGcw1Ozxnw1ECTp8AABgafAABS6nY4TznpxR09vaftDPwAADTTzrp3OAAYtsKrOp5n2Uz4epy4s4U6d0LP4anmdT9cJ7jU83CebIPpZnfrT8xp4h06ZqfNTOJmn2cV0cZ3r04zZt9tOqenXdT2ep/DU4DmcwVPjunBgznyZ7qs7xmcxyOEHztrTrGpwg0+tqe49PranegACTp+Cg+kb4vdP0GnG9FoYZ0hU7wpoPdOHOneAzs1p0zU5+GeYDPpZne9TzgZ/T08/zteKWchnttT6FpyZM5A3ukoOEya9nTtxp8AABs6eudP21noAzjCZ+c0/xqesDPxxnIDTjCpy+zdwqccgBFenM0zgJp7C0+wqd4C2NWnsMz/sZxAlbHMtCTYvmnMNTmwZzxE+XWesDOtGncTToipzJE5XWf4DOuRnULT0BZ/RKh2sskVO1zLe6zrBpwes8BWeyN8ixoSkT1eR3q09YGcLrO6rbHIAKMZ7jU6PGcLrPU2zPjT5cZzRU7wLsitPEhnZdTldZxes6wadkVPAQAjvT/9ZzOM8fWdMVPn1n3Szs+p7uM7w6cYdPAVnWMzsSZ8I04LaeWtPfFnM4z42p48M5/6cQtOUanULTq2p2Gg91KtFoPdSrqbZlPp5+s9XWfyN896ngKzi4Zx3M9Qmf6TP7Vn4gzkhp5i08lGeG9PV0HQVdyZ8yzU5cWd49PU2zdNTjkZysM9+WcpyWHhnZXTw9B30Xbm3v0zOnRnhgz2IZz3M55meytPO5n2kzihi6s0/+qeIjP4NnprTvjp6809sau4LPq+nUNTnpp3ks+YWfSN99WnxjTyFp9C06XGfOrOKlnIlTmm29Bg+vbNwbOzGncTThTp7Ms/cWcIzOz6nOTT2MZ8209NqcYrPUunq4z9fp/iM68auSVPKd7TjVihi0o3wAaeD1OJYn611ocZ2FM/iaf31O7Gn+Cz6eZ4q08qmf2TO9NnVtT1AZ/vU6hae8tP7an3UzyWpxEs51ieCpXh+bWODZSp4BFa35uSpXiDbmlT/hq19U9iGd/zP/anvgz0Ri9zU4BWcvYPZzL2nZyzZ/w06MaelbPjen0Szplp+I07cADeLPfpndqzzTZ2nU6Jqe+tOUunzjTnXpxD04oYuw1PsanOdTn5803ZZhwcs92OQAhPT0Hpwus53tuyQW3Gn84zjQZ4wM6hGeDrPLunPTTx2pzmM7MqdGpXDBbT1T/zZ2FM+dWcM9PtGnR/T9bZ6f06Vae4DP1NnW8z2hZ6gM8I6ffUl/enFNTi4Zw4s5nGeuNPV5nFDFonpyTU63aeS1PKGn6UzrEZ8MM8wWf31Osmn16zohJ12o4UwHnTOcOnvXZtZp8vU9h6cOpWIdnMszlbp5wfc/qd4bOEHbRCAAtZy5U46meXdPgAAEzTpV81HU49qdb1OAGzV9Tvep1fU8JqeytPehnFjTlbp70LabGf1TPYan+6j/6p02M+8qcs0JXpnmtTvNZ7ezSvUe0O2nqnNOzyOpyAM7B6dN1OyunTDthb1t504hqfIdONEnKeDlvM5nU7tacxDOPWnt591OpwPU/WmcwaOTWnfrT+xZ6706lqey7P8nrfwtxxJyaM8Vqdn9P0WnetTzxJ7U9Zw0c+JOYqnVfTv+Zyo0+CScuV3XmrRCAI3Z6o07ZGe0aOYcrWDTomp9LU6XGe5H2bziJkz0kWyxo9SqeyTOz6naSTsBp4SM4yqdTbOQen0NTnJJ4D0792cNH3Tezvb57Gpw005GaetH2iEAMdTwJZzJo+aacDrPC+zeVdk7p0Q0+GPtFV3ZunPHT2Gp0XM8aSdEIA09nyez1pJ2XMV9ad11OJZnBmjoAcxTU7VmdK1OzNH1XT7zp+Xs5qqezMXh+nEezuqp9X2dVad41OGqn2ez7mp/Xs+DFtzJOz2npdTmXp6i9cBADu7PoanIWjwPZ2fU4i0dh7P9JnFBDpAc9Hs8VacJaPDmnbNTnppylo+petJ7Ozkn/x9nPZ6z0+tqdXJPj+zK+zgrR5H2YL2d9tOGanDyT1Tp3XU/oadVaPS2nVezs/s8B+aEmx17PMXL6ztpvZ1k04BSeAgAVhnIzT4FJ2e0+jqdptO+tH/ezwbR7uLdH2cjNPRtHgIASfZ4jXZNesz7P49nKKT47p5/U6IafopPs9n0dTohpxns+tqdYpP79nkBzl16wdU8BAA77Oi9n+KT0vZ/Q0+JSeV7OPBnp2jy/Z9EQ6QHMU1OsDnl1Tjmu/fs7b2e4S25XMV6JO6pyRLa4/PfaOhJsgAALEhdG+gAAKkhAAAqJB5t9AAA8JCAABASE+qccgAaDnebfHNvoY30AAD4kOAADoOdMHPWDnHBz8HRyOtkAAAckIAAFpIUxvoIc8AACCkPo30AADikIAACBIJGpycBcAABgkMwc5zb7gABGDngAAaUhBDngAAekh9G+4AALNvsoc/AACAAAcSB0OeAAAdSGUOfU1P7ZbjBzwAABKQ+jfQAAKyQebfcQ59oc70OfiHPDG+gAAUkg82++jfPNvkoc8AAAkkDm310b4BHPtDnObfGw5wB9cBADMHO+DnERzmYcxyAHoOeGN8c2+ARz3RvoAACZIBg57o3wmIfIrnGDnhjfNI5/Qc8AAA0kDoc94OeAABCSHAAD0HOtDnjBzwAAJKQ9BzmQ54wc/COdKHPwAAdgAao5ywc/0b5mHOajnChz8AADm30AABCkPQc+MOexHP5anHIAbI57kc4KOfFHPSjn5Rzqo5zUc7qOd2AAWDn4hzpw56Y31aOfaHP2jnXRzno5yYc5UOdusXNEzKRzhQ54AADRIIw54wc8WOfdHPejn9Rz+g53wc5SOejHPtDn4xzsI57Ec8Nqc/zZxDnebfLNvooc/AAApHPWDnqxziNizW7eqOeAABsSHaOeSHOFDnZhzy459ufZWis3HO7jn7Rzx45+wc+DqdWS2iEA1Rzmg558c7mOcKHO46ngIALNvro3z4OesHPbz7lRz6o5+AAE8OeInPAAA4JApHPc6nHIAdE53m3yxOelHOFDn6Jzi4588c5zSeAgBwjnmxzvNvjXU4GBv0HPAAAwpCAAB2SEMb4Ft9JDnnRz+E5+BfckOd1HO26nFJzvNvtoc5kOc0HPAAAMpBFHPAAAPJB5t9AAAEJCwdX0TniRznQ54wc+0Oc8nONDnPBzutJ0QgALb46HPxDn09T8Mc0Uc/sOeAAA2SEXqfhjm8jnujfJQ52Y32Mb4KnOMpb2Ut2PK3kc4UOeAAAiSCFOdKHPAAA6JB5t96Dn+jfEdJyzQkAACgkPQc54OfGN9eDnmpzkI51Sc6PqePsWYjn2Rz4k5+Ic6UOcUnPHTnIHtohAIwc4Mb48HOfTnwl9wEAPo31kOeMHPTG+jxz3+uzac50OfYnOf6nHIAAI56Y3y0OeanOsznhjfek56A06iOc6HPRTn4AAaQ5+AAH0b7aN9TG+zxzuBu4CAEzOc5t84GnEzZvI58ac9QbuueW9TnBpz2Q55g3etLMBHPEjnujfXQ54AAGJIPBp4CAEAADUkEKc4qOdGN8BDnzBz8AAPKc7rOekcXl8rQ5zkc52Oc9lOejHPdG+Lhz6c5xfqji8v7HndjnThzk45zQc8MOchHPWGnUs5uk54yc+ZOesnOMjnnDTkpqxFfak9u0Nn9G+ujfXg5/oc7zb6hHOWDnWbfQxvuac5KOfGN9aTnmpzwxvvoc/AABOHPlznObffs5xt5YiaccgBAAACJAlHPL64Jhzko5z+c68OfgAAWDnAZzhw52kc6KOf5t8nDns5D3xu/OQ+0b55t8oLn4hz9o53kc78Od3nPwAA2jfWQ52oc8wye4nO82+gAAckgeDn/5znDJ+Gc50OdFHPSmnbxznQ54ic8PIdZt8SLnn5zrNvnU08BAB5HPhTn0ZzjJu+xc/wuehHOOLnIpz1pp0QgDfOdWnOXyHQk2NC5zQc9kOfhHPWMnZTdgY54kc4qOduHPtG+9hzmg50BQ8BAD0HOAjnSZznmW+MBazb70XPoznX05xs5ywc+eOcAzmmLnn5z5G+0ac5BOfyZPxgLeRz3i58Yc50ucqZOTgLLhzzw5wEc/jOdNnPCKHeFNRg548c80Odk33ruLThzz857ac8/OeCHOQjniRzzy5/dxbPrPDnP8TnJxzic534c9YudpGOBozObfW05wYc9DOegtPkeLjBzwAAKKQzhz1w56cc4SOc5t99DnOhzm053uc/haelLmHDn6Vztw53kc/sOeMHObTniRzvNvoAAEhIJQ5zRc6aMeotPwznjhzhy5+AAGwuc8nOc2+2jfdo54pc+eOcuy3VLnSRz2I5ypQ80OeJHOXDn4pz/ox6S08kOd5t96TnulzkYxwHLaIQCtHOnDngRztE59o3xyuc2nP4snu1Aiy20Uc9kOcJHO0jnuxzvg5/MY8BADOnOcznvBz+k5/lc7IQZCTYornwrToSbGoc+EOdlnPbjn2xjnoq+Bc+/Oe6N8oLnMFzwxvuIc7gue6N8ELnebfJw5z5Q6IQDiHOs2+nRz7Rvglc+j6uJxm/rnANzhK5+AAGdOeg3OKznjBz2k56Ec9qOd9HPbjHgIAcQ50tc9yufmN9jWnRCACq58Ec9fOe6N9KTnBlz3O+0vuceOcYnO8jniRzhQ5zm3xkOeYXPzDn1FzoU57Ec9Gyct5nCbnxNz8I52Tc7ROftHPrznzBzjY591c69af2g30ar9Nzkm50zc82OeyHOTjn7VzmQ54pc7bAvZ/mebnjNzmQ5wzc+qudmHOhTnJJzseW0LmbfOcfnOvzn/NzwW52hc7wuf2HPSTHQZzik5yEc7lufet3E4zgAAKEgyjnaJz4M51sc51ufw3OqznW/V/Yq/o31Mb6QnPjbn2tzuG55yc93vt4U1Gzn+hz0w51rc9NucO3P+rnm1DjkAEac9duf1HP3bnmxzs2547c8vvv1tPAQAKRzpQ53kc6cOdw3OFDnRjfYxvt2c4COdXUOwQa4ZzvM5/Yc+SOdmHOFjnsdz+O5y9Q6ggvZHP6Tnqdz3Rvunc6WOfM3PHrnQRzoO57Ec8naeHUPNjnwpzmQ50Xc4puc/nPS7nntz545xjk99uemHOXbnphz+g5ykc5iOfrtPB27gIAQ251oc+tue23OO7nXdznGh/JGedOcpHObTnENz8e5+AAGMb5bHPYjn9pjk9p3rs8WfNSBXNTnChz/Q5+Uc+DufCQX927okFxQK6UucPOdMnOWTn8Jzjo5/Fc6cOc5t9GDnstz4xvjjc7zb6u3PIOnFCtlDpzJBcMCuVmPVaHWuT5E81Oc/AACAAAMSExOdAXP2zH9Zj4c56Oc/4OeTnPNDnLVzq05yIc446cuQ2kZneFNDY59sc/cOfuHPNTnxdziw58Kc5hOde0ORO7WT9xAOzEFf6TvR0PooL3Jz42526c4vuee3OTzHWDzoM5zg85lOe7HOWrnebfbRvnWc9MVutrOE6HqTZgI53m3w2OcHHOOjnmxz2I561Ddoef0POKbnjZz8h59+Y/EOd5HPwAArDz9o5yQ8+dOcGnOtDnObfJh50nk4kOc8PO+HnCxz0h5+Q87LOc9nO6HnMJz/zp2UJdUudBXO82+XpzhO53gwzWhupNmbjnGJzoo542c60Ocq3O2rnTDz4ES2Xk+wsdS21nTnpZzgI58Q86LOeTnOMTnfBzrNvpTc6KOc8nPyznlZz8AADac7vOcKWOIunS+5/Q52hc7YOcOPOhTn9xzkh52kc5YOelHPjjnxdzmC59+c8cueyHO5DnihzhwAM6c68OcuHPzDnOxznQ5/Sc7CecynOgznmNzwG5wPc/aOeeHOfDn9Bzsu50oc48edOB228nRCAbx53m318efwPP/Hn/DzoE57o32CedHHOTjnFNz8J504c8iefRPOFDnh9DtXq20w6fEtFXPmrnZNzzC5+Oc+Duf95PRSr5BLWyp7kHevOe3nP7znc+T8E56Y32aOfzHOSHnRdzlY57I87Ged4PP5u7pIlwtGlI87meemHPRnnn5z+85xcc7MSeyXOhjnhRzwxviUc6NudZXPkjnuRz3Rvi1c78OfmXO4GHO3dgvB4Mc4YOfDHPDnnpxzlE5xMc+UOeNHOpnnLRzto5x0c/2OcrHOBun8Rz+w51m318OfRnOZgr83TzC504c4uOfgAAMTnbhzoI59o3wrhspHPqLnutz5lzo1Y9s7M3HPAAAuJA8nPajn9xz5a5/5c7SOdKHOZTnWVz+054Y30budHdOOQAeRzg05wi862Dta9Xxrnk1zlp56Sc/HhvjWPiLnWbfTG5zIc6NucuHP6Dnbhzzw59kc5zb4VHOIrnwdz0Nc3kc8sOfovPeXnNKZgoM3Rc8ROcIvOL4bMtz1k5x0c9Mb69POEXnY8Fkw50Y330OedHOSCnf1zgl5+o888CtBnPNTnOhzki5zsc+DudohX6DnnRz3g504c6jueGN9xXnECNwc5zec+Lufm3OoSnO0V4lW2mufCef6N9cLnjBz3Nvjyc9aud43PQ37Ivdg150zc45eeJHPTG+iVz2N+44894OcynPtLndVzplW7Ew6IQCE3OBDnIbzxJh0JNhlucx3ObLnobzlGx3yFZ+OdGHOQ3nxdzjh5/3c57Ofs3P+VbLUVzQpzcc+HOc7PPRVbHIAbRvoic/dedQzOl9zWVz5g52o8/JefMIWsrnkTzpZ57JHeanP0HPZDnjJzvg5+c8+teetMPTLHT4lyF5xTc69efovOmrnGVz/N53hc70OdmHPWDndpzlQC9kc9wudXXPdDn4AAfQ5wmc6MOeKXOfenGfd9RZ6i88FeeYvPcrn2Lz/U5zKc+cef1HPWrnuFz0d52ic+YOdJkXVELy7zx0OyFVZxecynOV7na9zss5xWc/qOe1HPD3ntDzl+UIrc/8udWXPZDnfFzzi5wX04oqugZnnTnALzxV5+AADCucEnO4XnJRznd57yc/MOc8nO3rnaNz3vu8mHYDse6nOyrnBlzko5xTc7UOd3nOHbnfhzx654Oc9Vud5t8kyLpGZqop/iBcpOcpHOajnA7ztw55s8+Q+c3vOXHn97zt657Q8+PeeASXainsP5u55/kc4OedHPOxjnqJzkD5xGc/3efgfPmDn9RTkSS0Uc4UOdivOZ3nRRzns592c4SOcCHOWPnujfNj54e88w+frhXu7HtU1/a5x3c/heczvP4PnJ4APg550c5PADwfPoLnRjfTl5wwc8Mb6anOdjn2Tz9C52ic8kue53Ozbnonznk524855OeKXOHAAZhz3Rvm9c55OdZt91LnPDzxS59oc/OecvXO3rnORzzo5+Ic+XOdonOjXnWhzwAACiQWhzrw5yMc7dOe8HO+DnNRzpQ5zEc9C+ekfPDjnVpzh9551c/sOdKHO8ULO4VwAZxG8/hefaN89Dn7Vzsz5/Yc+kedM3OijnlVzjE5/Fc+neftHOs2+/Jzsw550c6NOdonPbjnTLz6B53kc+Mb4nHOZ7n47z7Q51s88nOc9HPR3nTNzkR56h8+4OfaN8AjnMXzpQ50QM9Uqt5f2MB73BzlI550c7ROddnOtDnqrzhI58kc+LufTvPwPnflz9q5zrc69eeGN8wXnOTz3w56Y3y/OfOnOSLnqRzrY50Yc/0b6tvPh3n97z5t5/o30AADAkBDc/W+eQPOdbnKXzu05w4AEnedynOmDnehzud50Kc79efq3Puvnw1EWd52Y30a+czvP5vni3z7w5/ac51udrfONvnUDz8Q5wZ87zOc63P2vnonz9o5wEc70Od5HOSrnlVzqq5zLc60Od8HP7DnPDz0l58Y3wuOcmDOINbFaZ9J54kc8BufzPP4HnTjzsD5+J86QxvfFOW8zGPz9q58Xc5LedX3OnHnt7zvH59Z89nYd03P8TnDNz0m5zIc4qeft3OW3nhjfQAALAEbbzkk5wA854OfG3PNjnWzzmxx7uhaPYd7+WgLnNxzh45zac9oefq3PHPnELztw528c5/OcMPPdDnxZz5951+c+4+divOQPnilzid5w186uuf3HPiPn2zzkh58Y335Of5t8jDnivz6C50+c5fOf6nOJ7nzpzuM57Z87NufC3P7DnHQz/yO0WWZl+fnPOAPnJxzqy53Q8+nufvnP/LnqvzjW54SU7ijuAgAL7nrtz1x5wH8/0OcEXPwjn9Tz9o50b86Q+fbPORPnYnz6z524AG8eezvOeTn4PziG53Gc7oOehHPzPnCfzqX5/M86quep/Ojh7Nmt5X5xT85cedq/ObXnJTzwG5328+NucZPOOjnAnzz253ac7cABXfO3vnt3zs+5w9866uf8cPjKnaODuEp+qmbE4dNPPCXnshzvQAH7c+MADE/PAbnFNzsn537c+RGfR/2WaEjBzzo58cc82+faHPZDnShz+Y51wNWdOe53Oc2+Ohzu958Lc50OfW3PBDnZDz0H5w4AEhedpHOA/nc1zha58jc+WucQ3Pc7n9jzrq5284/xHsw+0yTskNz3Nvt4c51ueDnPwrnpRzlR56uc6pHsucPAQAjvztE50+c/hOdpHPQjnLHzxn5+x89Mb5uAB9vnR3zrK5/oc67Oe6vPWnnUXDjCS878/MOdCnOujnSRzuB50Kc62eelfP+LnNvzgp58d857OcBHP7HnFvz2Q5/Cc9COdlHPdG+ALz3s52aM/EWuyj3z/nlozjEp9aM45ADTHPZjn8xzj/539c8Mb7f/OdbnLHz0b57sc4cAA0Au5jnNdzmg56h85wBc5/PyAXWGFvlxxyAF4Bc63P+3L4GF0kp1aPaSquVHONjnPDz8Q51586teeKHPsjn2nziL58O89KOdtXO0Lntfz2k5/Qc9wud73OC2+0Dz4AFw8c98Of8POeTnoALjK5/Dc41ceUlPfrnM3z0v54kc+SOdHnPvvnv/zyn56x855OcHvPqfn1JTvABw0VZ3OeJXOkDz9ALr/56kc/yefljPAQAkfz9V5/QA+SOe3nOKrnJ9zwxvitc/e1uwpmzG+vBzt+504c9hueEvOiqrtZz37W9yc7rHvsqXU/nlVzwI52Xc5yUtunOC2+wbj8W5wz8/aWvZfP82+uXzie5yQ88bOfI/PPAXOtzpT5xFc48OcafOvznIjz2I5yuM81KdEzOiEAObffi57249fHtFAPXlrXTz0wF92c7vOdGlPjZz1QL0I5xoc9huftvOBgXTxzsgm4EC5hufJHO7znHBz/8ZyEefgnuETOojnxZz1s58Y31kOeAABkSDved6HPNTnklzob5xi86qecPHOann9Xz7a5ySc4cADufPbTnJxzwm5zp8+OBfBPPNjnlZzyE503c4Gqt4xm7nnxDzuo5+AAF8+fgAAHgXShzp4FyoBbG+eEvOwjnATz6p5ywc4cAB0XPhTnOhznJS1dc/Bue1AurXnlPz0s57o85SOcngA3gXYRzkh5/6c9euf/3OKnn0Xzx756ZM+enuOlPiSnVpTkH4KcecEefJHP7Hn6wLqJ50bc5RBfm3OM/nAILtP5+v86OBdBPPoLnHLzhQ5z0c9wucGXO+DnWhz4xvvpc+6ufeeOiEA0ILt+54a88Mb69nPdXnnXzz/51+c7U0tMHPhTn97zvs5yv8+gechvPZbnFHzrr515FdfudVfOUjnooLv651+c+hBdqaX3vnjBz4U52Ec+T+ebXPtnn8zz515xMc+xBddXOwDbuxzg054kc8m+eAPPVQXwILu4F0N465BesHPGHnNNz7vW5DM6Oqv8gvBQXwoLsI5+qC6zb7iguGNrkoLoU59KC50Oe9nPZQXM7zn8504c9gefkfPGDnooL/gF7WA7lvPkgvtgX0Dzwh53m31wedAguGQXJwL748Ebc8RBfIgucjnPZzzn57hc6dBdXPPpk75+tu6q4OA5h8dlgu+hHkMzzXp+A8/V8eRlPPqrT5T13x3hTXhOeInP7QXjILiS5/cc/wufBPOaDncxzsMF3oc7a+fyHO2wXJwL/rSzcc6gufzPOiwX8Ijz2e4iI4UNvIiON6LH3zr653C88YOdbfPKfnF9zyk52aC9i+fszOBjnhHzlq59Zc/4ufRnO9tLJfjrcF8Vc53BdvvOWrnnFz8AAG28/oOdZlOhRH+ZT2qK0QgHCecjfPZDnHPzic5wCc9Q+cYvPjAXnFzlQC6AC/ABf1z2IoHB1ZyF56Uc4ZOdMnO9AX8hzo750B84RedFlP0ar+hzi+56Uc9AhcPHO5PnObfN8F7cc+UBe1HPxfn6fzpP5yYC7cOfUguSynPAT12c30C/Zed5t9BznQILiT5/1A5dEc9vOjAX9jzyK5/Gc5uOcLvPcrnPJzysp0JNnoOfaN9uDn+jfWo54S8/Ree6fOoLnj4Ljn5z/48V0vaN8AXn4RztE51Z8/4Of2POjbnLRzuAF4w85kOc2nPiznXhz0xvnpRYgztpiP+Lz/ELk8F6Ec/EOdBHPDG+Mpzrw5/w8/OefcQvznnRtz6d5zIc6N+ejvPWIXPBzmQ55qc9uOepHOyznJJzlQC9BC/OedTfP3fnStz2R5/Mc69+cOAAk/nMNzrQF2Z84EhdYXOeDnBXz0w5z+c+4Ofr3PTDns8z5spyS84nud8HPEjnZVz1c502U91NozWX3IXuFzsvS1m31kOdx3OZ7n0Dz55558C60Of0HOiTn/9z2o5yQ86yefT3OpIXxZz4yF5oc7MhcWQueXnyhznyi4HTaoztG/OATnTLz5+Z9qlfWvP11XoQXrpz+45xEC6wBe+HOHIX/lzwJ57lc77BcQ3OHTnnELxa58f88OBdSPPGQXahzrNvoEc/juf6gvFQXj3zyZC97Wf7KeAgA6DngRz3H5+bc4uBcjfOIbngRzk8AJhc5PAAkgu1PnGkLwT51p852Oc8nOqrnWgL3K5z6C/S+c7/PxDnI0Lpr53oc4RBeVXOSTnNpz9o504c8yecF3Oa7nHVzur56U8/qOeWPPJfn/ELqM55584W+daHPSznIHzme55sc9UBcsHO7Tnkvz6EF3X8/veftXOuvnJ1Fwcp2ZI/ejNqQvrQX+LzuK55Ic4RedP03EDLiML4R5/Gc/Ludt6X04HEbz/E54t85RucT3PMYXENznh58185t+czQvX662S9gCFxe8+gefQgvLPnWELqz55889HBclnPybnRML4iF5v846+ddfOHAAVVzt65/1C9XecIvPc6zc5ThGF6tC+X+dLgvrvnM7zro5/Y8/YedkPP17n09zhQ5xd84eOcKHOIznRhz6EF0t8+tudfnPHLnGULzkFx786/OckPOWYXzBzyiF4hC+cBemQvGHnIML205woc5UAvMXO7znhvz0w5xGc9neeA3OLfn2Lz7qFzsC6f+c5t9xrn9dzlCF+Ec8VhdfAunDn7Rz8x5zIc9LOfNQvsnnShzjl53+c9OOdH/OToXQ0L+Z5y58/pOdn/OV/n90Lnyi+PecXKc/Z2x1ngIAG052qC+Lb7wIP6oXiCD7jM5ffUPKfUhOX6re5T6yC9fVaPKezRX3pH10jhBq4og7TotllPq4XW5t3bh5ydec7NF0XvoX+bfFq5zkc4qOcT3P6DnFpzxB5wbnb2ef5gvrXn95T6MpwTM5RMsQPmO8rThzzl57w86zOe8rOiEA48L60F2kC7DXsflPm6LiFtu8p6hbaIQA/AungX8qz3E50oc6IeeSyPs17T9Fq1m4lC+Shc2fPUjnebfYggnW8+7+dEvP687XrNluF+0c7tOc6PPFznbpzlI5xAC+eOd+YXBgXA69w0y5sg9rOctXOlDnOrzjo59Kc7nudrNmOQA3nzmW502c59kcJnOHnnJRzkh55qc4qOdBfPGDn4UL1U50vneDkdUNWvwnFT5ils1m32Mb7GN8dLbivzwtZ79c4seddnOnDnPULi153086HBfBPPJXnRsL2I5yhU9boueAveHnMpzwAANqQUrz+G52hU/vMc1nP5HnUjzwR5x6c+AAAZvPonnX1z2uR5RE7cttpwuZ1nrcjruR4s+eEas7rOWirp6z4ip6qg/oqcUVO5GrHFT0+R1a2doqc4+3gNnzkTkRq9AxdYqeBF39GrRGzqaJ5xU7XQfuWXaObv7z/y51bViyuc/nOdvnHbzv62wJU+vbMD/PP/njALvwFyh886ucKHOnLnbsL+t55z84oYs3HOjXnZhz1m5+X88x+d0PP9DntjVp2F1+c9nhdzAueoXVVz1iF+0c8yBen3PTYXWfz46F+UC+qefX3PElHolTjxq1Yi/e+faN82HnC3z0xvrMC7sheRgvPznxDzzQF7hc/j+ddwvqbn9Rzihixfc/MhcngBNnnM9z7U5xJU7cas+bO5t74lT2SpxY1aj1wKVPQ7bGKjnLZ9wxby2e1BnLwXhjfeg572c9Mb4vyhGDnshzt45y087wueyHO/YXNjzux56Uc5SRedXPmXnKjztR58AAHPhdOXO4bnJwLg95xJc5IeddXOJ3nTMLt2F1W851udJIu9DnzpzuO52AC5FBfZPO/QXGfzpiF2w8/aOfzIvTwXahz2x55RC70Of7fPDG+atzi5Fw7c99Bf6HOHAA0ILyH5+AAF5hdVPOtznENz/ZFwEc+fhfgAAmyLkRDQrZx/Fd1Ks6VPNSnY2zv+6xNs/OHvcMXW/ngnDpcuyk1Z3LsWVPbtL+XzgK56tC5JBcbQuFDnW0Lha580c92hfBHOhPnChzko5+aC6l+eMgvnPngxztz58uc7kudgvP9YXcgLkJF/ci7thcAwuVwXs9zi2F3iheuivWVONcHCmAvs54wfcBAAsHO0jnKxz3a55I9aCPPcoveUXyhz/lF7A7aIQD63PfgXYpz63Bz7c91hcYV2RgXOFdgf5+nI/NOfjwvOjnRELwJ5ycC7UOdsHPdQX1Nzjyp1Ec4Fuf7qOgznYcLii52Ik6iOd5t8UrnqJzoaF+qi+CedUgvg7n4eD1nZ0jc9DhcaQvw4XR0LlI58Tc5IufKAuRbnvOzohAAKc84ufinOhdnQjljM86FU+YOfmouajnUzztE5/wc/Cue7POojneYL+j5yMc+NBfnHOEznLBzyvB9FU77we3NXYqn/eD+KpymU+yXMNvmXdnKVTlJJ5xo8j7PiHPBznChzzBF2+ldqYuZVPWRbsLV1983TSXAys1MX/Hbgjzm054a85kOfVJPhmLRVT8d89bc5OOdZ7OOQAHaLnk5zpo4qqdJO2qqnEBD6ZizZo7mYtEtWW9nSzFhZJyiZemrsIpPVknoH59qpwAQ86qf7MXNq7RzFxghyy1f6qdstXOCHFzF4ap7f2dmdsstWJqnYLFkLK08xfWduzVOcT7mhDgk+++gD60doDmLnb11FJly2h+cRSebVPrxbF6Lj52/jXadev7VP+srHIANQ56q8+tudk13tWr76AE6p4CAHIefRnOMWLtH55mu9Uc40ue4sWrqnsZzng57ac+Lb54S2n0S/mgyQMyq7Y5SebRcgCU3KToWu061brMtaE4rGwlYsMvRwKk+eytpba5a72pFLDFz1CLqEvVMPvXLHIAcswRvXqlwgiGB+TZNZg0vR7/WFqIfDqO3WwtdQxqS15AD7duH6WaMXKSAOjF1xxaVAm2HOVfLfbt2YGt1OC5DGtR3NWLBQZz1IBSlc0AB9u282rFQAPt2wEgCkxci1POuH4sd89211ZamUyyYuM3L8dcN2a6zo/I+uXWElMX0q4BPiz9HbkxcaYu22wDqTiIS1cc8+1uAABFQCNsdG5BmMX8mLl45wu1c3wCZuWctZIHV0Cx6Gk7+OfiPXoAAlmL1i6wXgFsxcZsWf5sDmLlTy9Zi5sADOYuy9HauV6IADqQ/oxe3n2DEAlYVhjiwZi/UxdCJWPJbRiTlni6346CGuKKOcMX1TD1n8wNAB1IfQjWBBLgej/zFyhY/AvsCeQ6MXpGLtup5li6eghWWX8eH+XgcWO5vXb6hYFuWssXVllx4ANFi7Boc+5X7urhWL61h4vQDVOfWS3jDCT2kdrF42k4THM3aBsMIptQ0jq6ac508tJYuRSHVxvDkABBXc2ci+AAC8A5mLk4xy8pyzytDrgC8ANZgx/6d4AE9yfz+WwaHheV3AUdDo/AnsE/XyEnCiDKWc0bI/UGvpnPLa0qgASsK8/5scY0FnP0Pb+4AA9J4JFZ1KGVhX6znd89pBIcvLcoUqueX+sXmnVzzy0RxYcxer7mlsXLynfTq9WMHwACAABHQGs0vJgB99HdtVxiAADi4B8toQjHZCzsCMzy7Q0/DHNbdJ3IIFVD2jFzvdfNGjpeXSlzeWLs8q2ec738t+ggIIAnzhRAAOLHb5IDeYuNsXH+juTi92bfe9D8mzR6gwo0GApEW5dfYuKRpbAAzGL7zF4nxY8LiDxWvIA0sdgxp/4AEakvJlpvpFDgAcZSz1DgbCu44uqcX8MgQxZTAUiZYezqXQGERWLvrKEUrfMxfX0BvMAsO7ECAHc2GWxf7rIUFInOLjGQAy47qEuPNX7G7f0thMmgDLe+kXeYvhXMIpE3Aq1oNbTQBToAuOLBeAfSa8hc94Mc3nEBoAy1j8bK0YI6tbAo4u1yHt3l+9y3QVcc8sveXCAbnqQfcADUQ5IydBw0azBoigVHi+Rk4PasFk4mmnX8gAsnLCFE0gC7G9qgLrWL/Ehz1i9a4uvkO9f6bYVwbF9Jc/h8uHYu0IR5mYgLyzp5EtJIqXPCqAHHFmuK9XOCUKusRWejreUTgtS6wueU6sI33MsXBeAfHR8jfbE7HIaIDmnW3FhPiyYAALxfLYvMcXwzdg7iw+E98cfmYuCKHi3t6zcADi7yicL36vLnbbZimpSjvfOEu1uW+2LiRjreqyri5vctD1hXuLA0Z3AUWkpYTDtUwBKxYiAl8Xy8jxYFCkyVCBMXS60J262hCMv8so4vKjHP82QqgOvi990CZuWULHaEIj2Oyi06h4v2y3V8XFKVtCEStI86MesGP4J4w+V1w8xUAB7xfCzgyLr/VjnUoTqJR0ofa33AQA5CT8zF14vdUAAYLXQHAEOLmswS5i9WudRq87TrDqlNsK+pi72uf9AB3zHPVQRcSysY/fMcXXOOeLGnAdBcEVk7cof8XFKW75MxY3F5Di7Nxco4u65z058+ry/p7dajvA3OW2LiQAeugD+zOIJc9SXy5btWLmheWIACAJe8ABzMX4rdp4xyVlcakv7gAgAMxu4HzK6zxa44vtS3i+r0A1ljF2xi7UYAnXWPW6h/l2zI2q9dpudWD2+MAjUl6fS/CpdajswMAhCXQfMKjyxYAHPdsGt3vWn4RtzLF//+gUJdA6Z8SHvIT9AAMG059xcaEuRCX2o9pQa5oAFNxfcEv5bncC5nHF5Ti4K3RFYvuCXw1D8o8QXgHWxeHZPffgz817LOKti8g/yOEv0wb+xV6R0S/8LcJcOEvKCXm8tvCmsp1ds7trYv/CXXJjthe560OCJfuEv/CXP2T0O5yYAAdauaABpcXJfcMBR77i/x0c9LoQiXmeLgUx1BBaMysrkLheAyRLivFxbE4+0h+EuMiXDbdwdp8Dk9gys5EuIOLtWSI5gJWLFsxcV3PYiX8RLxIl4J9SiNup4vbMXGOT7IlwvfsqJf97WZrYKRLvti1jk5HWxxEvO0gjRLxShrq326JcV4vNOIggV5ax1HlfnueIMd527FOpe9yzXQAcJf0uPgDECYdkTF1u3d4KvVEv/CXm9zjFK3Vi+G4Af0BFiX8+L1PFzppZUtGcEvSMX87jne5+JBYxxc4hS0lLIdpe9ywvi/wABHEuOCXMkV04lzfc9ZbPRAAqgnJRTyQl2DQ6LMeyQWCX51mlg+gNRi6UGvCEuqPLe/txWh6PSXkJciEun7nHZj5E8/9i6Bxdq4u0gAqAAHnh99PbMJea5OoSXQk2GEl8Di9w+SK4v6MXg5j9pc5x0680BLYvH/pPR10jF8aTCgYCqwB2MX4Dz6Jq2gHZn1VxsOdPIOod4Ru8MaTSxeIBXBlz1JLqYK0Ti+yACkWOWNrtJLsGh4VDZZJdTaKpMX+nT8p+7HQ7TbNVP2LFbqy54kqyQHYCTOp0PQgr1JVpR52M/eeUhH0Wg47VdD45c6UrdmgvN5PZn7MXT54S3F044kdW9PsJrxPlg/F6UAHCxfIkv4g77Xd3TCPe5Z1Dsc4vky0hJl/Lp+bGebXDEkuAfLb0Q96OzPk/roBmkubLHTd9Kbu6aS/UxdIMOolLy+T2ZWx6S51Du/5XvSX3h93oK/vi80ADKYvwArGOdwzF7vk7AYfMrnYsX7GLtBTLpi5Uxe/POZ/LBZODwl+i/frGvEkuDgrVy1v4K8uohVxdWkuCX7R9d0CADRJb7dsA+Xw2LKwV/7FzYS/NKvv5PJmH+BSjYl0gYlfYtKdhS9HCrYb6ReSS7WDuYYvvMXI+L3hhxzxexWAEcQKqHBxLmol01i7pefwFPLXrG9ezSADqQ+m4A3CWmW7bqEKBgC2yLVeuhrmQ8Xp2L/wl/6JY9xeQuAFyXZeji+G/OS/WxcQCPd+ok246qBdIY6hCvNrhGxrZPdoOGqbi7zKsEvyGSXxWL0d43KmcKgyGLKcxLct529S6/bBUYfQov9CXQJLoyS91wECgDUeRdyX4AAe9yzIS5bJdpQ33rHSIdohAPeS72JdDMR2SXTZLrklxkpZbEs7jWlKQ+wm4o6/jo9i8CqABzMX4TD+SM4MAGhuukWPFQrI5Vjnp7y5YzcsmBB464SoVhGx2OVeI7Cp4uE4A6FL1Jh5E3eCAD46OJyXMBSfHiiOPfhWOShXONQyhLjRG51pef0dXtA8bHnqQAHF3z7YvJcq9OC2Lh/l848KmS816fl4uK8X6uL8qx+KHfVXDBYuuuLpvT3gq8UAFmxdcEvRkKd4lnUl0rDdkXtTKZn8XKFhcLF9ypZKKfX4u3DUWwgSsWMvZeV6umKJ1mHkfdo0OxuJYq2szSEZ1rtFLoZCqni7rJfKK3zZCHJLrzFyZAEj6cGUudbH4RTvDsH8tOKAD6TX2CXtZLg+O1ZS5KeSOYvbKXBuYUoAOSpYhwgFk4YGAFOLqgq7cw8A/tfvPuwrzlLkyl25S5SwwS4uN7HpCdosRz5lcaAAq4vuxgTfTyyS1FS8MMAxUvGIAcVLtSl/SS7iQjS4ve+nCdj4Sq/iBacuve+Qr8X3i5hcOFpZZpWsTb80QA93l8kRyEU5o+eZsXOPn0ct5tEMZS8ypfwrGhcXvVAQuCdWpf9Yt9sijmArPFy0kibrerACPNW+w73RT/GhCSS+0JekYvE/Lz+j4iAN4VPGmtLYuVNHQfcBby+ti+dgTf125EZA1LtLh5RIAbxLuABKxY/OL6+8Pri6CpfoW4LsIucljpq1mJbUrRxPlY+ZUymfpIDe5a2XX+sX1bHRHkTNy9UxhpABM5XlRjO1LrtW9f4S/ED1TJ3GAAAzjVh8muGsJdtYvN/LIHV1AAL/i6aSWw7sRxALhLhSAMbuEaKBFuX8TL8uL0vR0QAHMxfOsQzyXjEAG9y60piLEdwpWWTEj014gZ6A4/Gpcf0z1b1VhLmkAN+S/WxfGFWIaXj6R7syzDS+5UseN2PMXM2Lp/sMcdRpaITAAqPLPQ5O3F0mAlUGvaUvJd7hhGZAxJBoj4ABiDP7I78uLi0a0g4lAYTq2P4qXdNL5Xq6UAEZpfwrHQaXmCIP/F/SS4BxcAyX3np/LDKjy65WiQgwWABjCXpuL3/F561bkMCo/PvKGwjlvuxz1UEqpcm62gjgnlL3XF+tnfGmsGEuqPL30ign544M6HYfjUuhKX51LhDrFIS7GUv7bpX2LRBd02ly+S6UJcPuW1HHLeZgGIR7JGUpdWkBQhnojYTNy5DS4ZxesYugXaalL8El+JFaCOA6eRKJrbNLteAEFS90pdh92DJaaQzgX53Y4738u3qWgqXgOLyoewdS+Jwiw7t4kr+Oj/Wl+DUHv4sHBWQqX5nSGNuwLJc1SCsRWTvHOicPalxLImqQAE4vIP8Bydt6l995BdJep9263LdvzxbTqnNe/CfV0urSAnVLnAAETS5Exf60uXKXplL3iAEbkGlxdyEu86XFpLoAgAxS+DkuocOjKX25Sdql4axD8JJ1UvgqXPmVlwIClxflxd9MlrXrFij5gAAVS6wAClOwwaXA1ATNy8BAHOEvo2Xw8X+dL+6l9/FeoktPQQKvLJcl76kkapGlbDVgAgT5Lwzr2l38AvgMThYvgCXchLwEl5oS8zctuAACRAMdLycAIdS6NyC3zWYSnbfzt4e0vubE4d9KhnDUOpDujF2hCI/pdm0uIeg57t0f5+Frd2cfveglqX/VL1qOznw+ihA8uJusAXA1aEe5geoh6Cj0uwZHX5LjXyWOEDhgiw7tWIrv+L9C3AAS7oJc9HWXMXIuj2Zh4TuAhaV0jPDo7qJT0v+7PS8P8uBtbhqX9kAFKl8zxZHSAk438SnFCljKl65S/hWPmeqC8Aw+L4Wl/aS7R9QT8QpWLFgAe9y14AHOEsPkuTcXwNLo3IMqM+xKfjUuJ6X/lLtStOHi5YOvsEvtUAs6Ua165hUmzJeqQA4SXWXDjXG5QC7ULOtUu56XQjLnRgGhCLEZeU0uBCzp14OCl86xFYpEcuOHxSSxelAa5fS7yif//o4CX71AQcqwDi8qHshjPeXHd/95Fc9YY6vpdeMukqXvXDsQF/GM7JKeJjPHkbmrjtKqwmPbzGdaFnPUgyOLsvR0geetxdyNgRGXw+L38lzgebeJfkdDpVwBY9iJS7BdTQhEclPYUzyAgOPQl0EGalu2kPTsXNS19ws5CeIEEuZKXV8XkZLoQB/iS8Vxdb63W2Hn9LiElwOM+BVRplB7cXOod2LK5CgBzpcZ8xmeLFkAHqET0dd2pfg1AhRLnGLlwaw+vjfxt8hXpF8bGLg+gDp5G9Mt80vZaHnuL//9DJS9P1I3CX9wABYYa+Eb0xHPduQ0uvIADwjzJW4Yst+wgA+Wrd71SAIrlNbuAoYu8kuuSXwdLgQl4NzrhPJEEvuCXchL03y+xsG0pfWvWFQY0sQyewDp5C1KcxJnzDzupT1w8/vi40peqQBfaX6ACoYF+jxeSZdcYv4VjayluglwtwBcCB5cXXlLl6lfnAGZMlsACLx2bxnxQD6ubu96HKpfQl8Pb9oQAPt28IFZ08ipUJbBRoS6CBgLDsLtYseN2TCX13Vscl+Zi6kABoUv/6XfOLtCEVKxbGZcHCXAeLsIAAHFw5WnOEtskuxmXVm1wkF+9VYF2DX/pWo7q1LzQADqQ+qQCHGCKWXZbtzll/iy+NxeQ5AC9r6FuIlOg6QGocN90BJaXQiW6bFzaU8+76/ORcEi1EluxgJyy7Gyy5EBZ3QlkADYQBBeH5PIN4kTWHxAAZ/RxzS9YiuRE3mykL8od70FMy+4xcNsWzOhvuL23Fyx+gRwhmt2BWXOod+Rl3sS9aZdWkBvpFoFL71uo7rd74casurDbr1VOtyyfS6Cpf//pCIAoOViDwClxbQhGtMu9iX1sCkjF1xxca8uGEZ8QXtQZnUoZGy/TbD9JA3qX/ut+llzAwG08cUqVOib5NemQdRDi8iUuSABWCX0rFmNl9f4VUYBpYvZNopqiMYl8my7VeuN4XUJEuxN/ll5X6HokDxJXFcXsOSmbF+AAGGZcj0AHCXL7FqQAOJFbDZcAfG62XStLmBgJNpJactwH2pibubL748PLi4jZc/R2pCXAglj/h+NS7U0tFsuwyHAOLkll0jrMnJetR3F2X8pVpYAP6FZ08hIGJuzLDkAY4cHSS5+xekWOvIr73oVdl71RHXZebsuyWXRLLqVl7wHdh3aZuWMSXv9jmiS8Q9JVDDdmXMyX3bllf5bdzFcgoHBW0yzEEAUllz4ZfBqCPsucbLNetD+l/kS9mpd/4uRaXpBlwfQB6U5XZcMbW12XbLLu9lyBy5VDBgcu9iX64qeXhy+y7VxeGEZ9VHOyAVyChMy7JYgoABgOX5LLobx8hy9UADssvIOXqRL0el2mgFfYs4cvkwAhhGHjFymy+m8ed0vr2XrLLyjl6hy+3ZcYcuTWHB7L0kCKEAC/Zdesv4SRMvd7DF6Ri4vZfPTPTqrrbLzVlyGy4qEy5sv52XUbLzCgClxdmpf04v6SX1bLsTl7xi7u8elgvnp76bL9Weysy6Q5iGkv3brkSliD7LNS+TCiKwBaskPFLx2l/iy+5xcOcWZibOnjiFSv6xZrMFG5BY2XxnVsYl0qBOHZcBQBJWXqTADGQLiy/23RdUOHp7O4DwMp2xxf3xdvMvMjwuVLqtlyRi8lxc2ABhmXdblmhS9hhH0AD4kPAsXVe4KFl0my6VAlEsvVzQXHLikS0hy5vZdssuzAwrkFXNlwqpQcAA3CWgT5bbLww0gcFc9ZfKcvusAxtLgQlwSy7VeuUz2WSHJXLsel3I2BSQDvkumOXJxjtzl7HS+/UdBsv6JANEl3Dl0OhAeuvZkvWm7mvTpSkGj6DGZcV4uqirg7Lzfyx0y4jpf3sXKIHTeFnTl5my9P4yw7sKtwCxLuNl1Vy9+CsYIg1Xrw8L/Fy/FIGI5fzsu2cX+bL9WexRy6o5dTKYK6XSOL5LlzPaDIZdqMBtAAnnL9gl1t8t+CuLMuicXNXLj4R7GU8nBdR+PpwX3s9pMp3jGeQEDmYubqXrvyVtiCFS9Z4tMsPf8X8uLzcF4jOHUpeCYvyLwqnt/AAAFS5i2QjpXjIHOO1uji0ZREF0jSMvZGX7BLmn0MQ9IdpeRCQCRAX2lz8qGMy9mIDWYvvpFG9jo6lz9He+kU6zP7wnOZTv8FzW2ctSCuMF8SHLIAd6O7HXGYAAo8uTykL49lw21mnfaivyMuCCAOVLt6l4gwHOms4QuQe7ZHLjnl6EAArJf60vqGXwBLrk8BTpaZ5cFVJXLbYczpOKtlS+M6sy8o1KX2LL8Oy6RC7P8c0JiiC7Hjd4BrOSPa1yDlsXeuZMg94uZzWU/4vPveg4gAbE957yztS6XWhEEupWLxuL3iFzNZfnZfxQBZmHheLxiAFEPT5ED0kvger9OkdUR9FC5rbNvFACycXPl7F4duPag0s7cAgqXs9DnzK5MAFw8f2FWXcnsgT77sOWy9fYuCgwQqXdm9tHl+APe6gC6t8/OreZUNKHPZHaD5cC4uuIA5Jj7+u4XS9mjgA+WIXwIxLg2l8HS5gYDBQuDqzxvL/nAJ2y5BpdLDNr/CrvL7QAL7i7XmeIZ2aLz1uL/Pl5RIFixfdmW5uYOdLjNy9choj5d3eWX2LuwVtm29jE7lMto6PGpLYlAKhe1oxcsJcSyIiWXhdLuqF29FdfmdxiWdAAwzLiSZMglCt0UpcWQqXQJlrul3mVCzpd/4uqGX9BLuze4PFd6Ot9EAvAnSsD0ly0TelDJfodBDjBNuETSR1RAG7pczUvEbrjh933F9DddDYeoMuiCXDdLm/QB4XHvcvb2DtAAgdLmRlwjHeZpc8OyKdLpvl1u6w9lgqADP6PS5MH1L1yl1vQG3pfBm2jrQ1VLopW/O5a2XXlBPi6r70ZhnFfjS4n5eO0BiaXIizhAy0IZeQFeO3XzZC+OLjMAOgK/HKcyLOP9rzjL8hl1vy8XoCi8uXMXaKl7Xl1fy81bCbObI6AJNateALNI8uisjBO757wuLvmlxzS4TNvCiw7SAVHlkQwAeTgtGtnNB92oBZOAAl/Gy+TACCgwKBXJkACxZw0E7lxfUCuCaXeArn8l5My/IpfjzhQ2HDvD0AVyCAGH5fnu3d7BmtVlAo75y8P0t40vA6XK29iblwE0AopfC7WCycPaLUwVygIFFZduthDqX3XlvDsHyE+BYc/R2MMM1d14A+1vQE5xeB0ubhLjBLin0BSlbn2n2vQx+7/+L8gV/QS6ZYee92DBXgdLlYl9u5f97vqiPT6zCmAhHF+xRL5Je+Cu2/HFDLoQV/4K5oZdccWqBXl/LynF6ly7gPvvnESa1j0V1uR9Ty++XtL3msjLG5ThTAbaS5uEtNGAaF54Odr/R3MS+n3CH6Xi6XZPSGNuzBy4npfPcMIuLs0hCwAAQy644vmYvrMXoRJe9y0ey8ZztzSP2orJQrnMl5aS7dUe/HWayXFlLo2lxQldiFdnLPDjrfpLjFsPLS8XYjINl7iXRPoX6krEK5LJePNWJH6kud2ql56S/KZk0kuicXeZLk8p5zndtJcNAAXaXtQr+8Ikty4BZt40uNoAIHVxiAAy46tCebm2bQnGoTmYVxCs6lXt+YXx+XtNLrPl67PZqpcsgAl6XmQruMehS2FRWdcnW/QntQZlCCafSOsNtRchteX6oVuNe11y9qJepWkwHzwArvRsHay4ixePlO/AzcIr79R0ly+mZeUUvqTLGeLvC0CkgBA6uFcuruXN3L9el+G+vvct1jTfyXOYTwSK8VXYW4BxNRqmX08LjkABSK+t3CNzWBBLQqz0PO5GvdAgBR8uawnzp116qm6y7bZe1Eu/Yr0I16/F1AS4Tzu+dWE2XqeLxClyqs6lkfILXIWX0zLtRy8iy6dNPhcvU8XzzL5UoASS/6SA05HKwrDu0J62+5vfFMvR8BA6XkPLyQl3eAHX6vOYursIwFTz7vori/S5dlcvQHAZC8KVi3gwHvYt+YX6WXHqz7i23UpmqZcLhwnGC/0kjVVZBU7nouiW2MPB2d0I7lxo/VXXv3hP8SXwormtl261DrZcKivY2Xj/0xNZ082aApcy4A7mX63LmMy6GK9L5LpyPaq4rPFubFzpbZgJfcRGcEXya4WHdqZw9EUCm2W8Ow/oVpzy0zlftIDNkuwaHlCL96M5KK/tZfw0Zw8XqZL3CJ5eo3pKuuW28Bbl+L/UlwqDG3Jcfku8yogiLxlB+oS5fJfzUvBKXpFj2YgMIi5ZdY9ivzqXUo+YRq2eS+7Zcv22xEXaMZsvS+DS9f5fb4vXXbiBLqSJ/FbfEstTiuF8XM4ryfF8Bs47FeaEuFw4Uo+J9Z8+S43Fc0gAi3Lv5L1Ns7wlZ55gPuXFN7iiLq8yygS465ckkvpxX97l112ygS+A2e2supuXg+gTcV8MY/SttlzEHxXcDL4D09eK9WECB0ukq4rPF3/F3uK47Jfub2BrbZ+1hvwvA+DqLvb4upVjPbLoKl6py5Ixf4cvYGXL5Lhk8p/5MP8vYWWgsXqsAaC8EAdcsxdjEv/WXRUT2ihzhdaXFdb4ubxXk+LiSy98AGzJd3LxecXfMVmVsJRIAQXCDxXCGXUgAS3l41JYppcwMBIub3R1yZEKni5A6sodhx8rGblpaIAcndo5s3Mu2SXwjdv4l6yEP6SstcugvHubLknl1Blb+vCtsQiSXsxAGbFyxs4KLOTPnMsXcBLmbF7RzdR9B9eX2BXQVLpnK54y6ElcWKO1eHNijm6R041YGgAGiv7SA4dLicO6fqQD5en/p2qXUgAb0RwfPd+usVIBqHDFKVlcJyZK7FpdEmBpGXISjtts+ZK4jJfdYBsdMzXL5cV90K4VICNSWBcAduLr7wyTWueicJIvcS7rtLzQl1tJY8xfOcv+uX9xQXsR85ADolcUpW0U7jUKqZe0zlakAAjEulG4dTli7Sy7S4oYtJVxLzHOgQD08IrpeV6uqAB5GX/dLlJAIjS6Rpdm4uN1w5rLpnFzBy5QutBAAmWXRE9nOq9zbbbCsvsXfWXlFLuil2gy9kxcSAgdPIOK1k3F153c0Fe9z2s+X4NL9XFxBABA6t7EuRiXc2L+VdN5s8WUc1tn3vQ1SAVCVy5i8NAC1ZJH0jhzLiKSx5K47ZdwMuP6XuolY/e7/i4VBjWvX2qXXYrreJz1UAj0ua22GS7LN1sfx2co9B8vGdXnhAAzLwgACFS6+ACb8vv+XOM93jl5m5duZc3uXRKX/kAL8Vz0K/AACMEu0fUGWztrvsddcfFd+3BPe7GkAQwVw6TTAsfylWSnLBWgW7eVsuqsMQeSu0IR7FLoHl7qeTkMfaMuHeXXbL3/FyZK9SksDiuaJXQjLz3u1EJFQZCKVPfYnrSLsHl8fvZcxepcuDiXMDLnGe0YcWH5dTyIjqXWMrr7S1iFfaRe8NXR97gjF1uR++K87FcLSvnMXUo+Wfe5li9jZchOCC+X1Wz07CJnZfXFeGEvdvLKSARaV10S5JJcgdXrIAgU224l8objtYiksuItbnbLuCVwcFe/Je8hqihLmttnZyJfE9lSuTjXRZXVHlrcl++S+4iP2kA+6X2TLgTh/NjeqXO2svXmXdxLwal30qG1dySEveKX/dLzaV27S+UJdbbOKcHe5d970KDS9hPV90A8on1VGW/l/NS4f5epSW+qXz/Lrzl85K7w4Xm7gP+X+grs4V/nSTypcknXIBX/YV4PuBjndgFc3Uu7KXlajk9Naaoh1wOUUvfZXFXLgOV4tS+DlfrYvGeXxhxaOV23tGyFdsovsmrCU9n7F1yi9FED2VP8XAHB9xypzY338lcvKdGEn4/LqPKxSWbLFco4ulXz0QAc2l7NIQTFeg/BU8XXJ4AKV7qi8oxfCN24RHJDtuly10EGocs2MWlD7XXLtRgLGS425e+VOlhbWLL65PY7paz5e+hXdlR+AAUUV0+o4W9ZbYuCSMz+jpPB/sLc0Sf9ZP9ZXohLk3W+yQ9CqcyYu/aAgHlxrF7YAFl2eUOWEyX4ZL2LF5OAGV2cSO3nGXDiTvIiCT2eZXPVUBD6XWtYkJdBJi7DJf6Yu1MXPhlrDRwvc+8Sft4PU0XGjtlXF7VkjsgBdsQSNHKR9tGM7aS60YDGQBCAA1uz/EC6DS6V5eO7OiEACIr7MS7mi5BaspJPcBR+rfaZiJ7s94VTaABm8XfGj/ElwQq7KSfrPX8FXg1BYPZ4U5dadt7h3I9nY2jo563Wi66Yu4CjpcXv+LltF0K5ZGIDfSWU9n6GVmvWq+xa7RfHkvmFXIzF8qp7VXdU9sdJOC3LOeL7Bx0ti7TYgV7Os/LdGLv6ADXs86rtlJPoAz1fZwYAFR5eHDtTJOZ/LgoFOKu6NXe5kQTYu4ySmblxll81U986sUKuVknmL1xbF2Yq4i0fp5A9w74+zw169QQ+XRf4kv2FXRyT3auzWDG4VfA13yxbTL119i+vs8kVfdYAt9nUrl1T2/vs6EVfSKuFFXLyTlJJ5VAFCVcfJPVnbjWjxQh+oq9zTtyvW5qn2ir9qgGc5bPRcxEPffgo7Ycly5uLfIVc0KvIUn9Cr5eyz/s9udsTaPfOrzir4A5xRuHcVc2vWPnbXir98W6q1etxdGvWiPz76LsRV2G9erLiAS3alXISrtNiBgc/kVftKvoJb6rl5RV9Sk+ZrtxKvhw7d2jwGu8kq/jeuC3GMXba15rF2+TZArWt04vdvL9q9qjy8pi7UUwq0vIIAatLzjUBxNfFpeR5pt1AMYlgV2xTqWqYymyvEgAlEgeireLxEokB8u355yArt4LlwqQApZfE4RgiZvuLwgACSNbJld9eW/IAJbSkyAJK7YJ0ICu3PRX34gb0V6K7dQADnCXQyXPNd/kQp+iQoOecpOPtHpEt6g59nlaHvAniv/tHxkV/ucDoZfeyve5XyMXneVjCh1wpdJ7tq13mJblZ5pvMadQeNqs7xhVrgQDBDCh20Q/ddv2y29yo3j442q0b8MaMe8S3g2LaHgQBq4G7ZJYcVGPqdHTIdiie8TnZlFJU5WUzwQ04lDsFpi86/PUqvSzw9R4RlV//LfQAAsquWunLkNjlV9iq8jduqT2wFbvKr6JrM7Q49SeZsWzaA4UAWdSznQ/9SepNmvTNJ+16ZiFEJC2+XgLgw0n0qr1gRz7WHTNp512Q6niqr1tiB/TPbnCwnO6xAI6QSLFy0Q7NuR8kAcTny/scFV8bVeVyAWquUSHN9476YOXVZonO6ZdmlLduVpPza03dHrvKYiIMg3c4D1V7+4wBoRWwAid7zqjxri4vXeI8uKRoOsXh7FkjALuQ0Aoe9YvUpbK81Lk8OiKX1bsmnPD67mrdvcQCCABPhCtN2+PLR/8hAwBhk99OdieXwWI/VD63VBuuBvqfL+wIyH+P1iah0gk9/rsuDT72L66ToJgF2XeWMUFnOfcAPa9oalzdi6T4cEYof2rDpD+1dI44BdIdxqvwG7H2LrX67VXGfMBKiXRpbe1V6JWhOI4lbCg4u2F7fWUc41OGxY49v7HnOxA30l++KtmQGxYD6aAMKH+5zgYGy6q98sdgZPUyHsfESOgMbVfhADfzZHHArTdyRp6V5YkMT7quYWIA9akZa033akgD2iA4+7OlBCs29AY8XVcETXECrpD1jHJH8na5EchOAqlb//d3FgKw2D1fpu3hjarZQcfiAxN5eZWkX2Wsxwsq5Y2qw+DrcMs4thH1XfbVxAq+E061xc9T2MVXPskS+uL7HZHcsJ1XAvb4ANlC5zecRZ9mS73HEQrTdx3F7QVfhls112GCr7uL6tiA+5cqad7kAQnAbFzjbeUw5adKix6OLlbA9a6xl5sHdDVcYUBRLn/qruE8qAKThPJJ4ufIz0QMtwy4qQBMMYqXOWolUygUChxUaKXZesLnFVXCN9pSkAPWp/as6FXZoZR6rwTKOjfecnsMavTpwZMiOy56M3fzbPgN3Jm7ERj0xh7FyFmbsD4urp709oD5p3OZbY4kniFfmnC3F9PILiq5KusRQAsj7P3F5Hi03kR7Jj/qvfV7Fst3fF+6NczjuzQzSVXHmT+2W25q8nzs9XPEhdbDYVTq4Fk6oUejXPzYzLjfeUh5/i5JMvCt201acJdkwxkusJeU5hy3wCXF6gIE+Xtc95kBf9EOVHb7AOyh2xxKQJec13gDEDT0Ulu65Q7dvsYEuslLqGri9V3K081bvTkvLS9PskFdV2bXdqyd1zmuAJSu8irV843DeoAJ33fuLEWr1Pq5z7Z/mxN5iV1XNqrhHWn1k5Zmvoqu6tXnKrkdIEsXqzHsLFXraXEMtkdIG7WFjruDautvlKhLrm51qI8+sw0T39ZLyRAPQl9BS63MvEaXkMA7qVmNp72Jfm1edn931Xh6r5AAMNQ/zVcjMPDsnlPAYNJ8yY8tuf0mP2uL/c0ImuVGsDuydHFWTtXxtDgih97c8u1daSPWm7MRL7+W3hxc3v7G1Xzoo1odzSSm5RMTuf3y2mA7n2r0kRzmnfastPFWB2nr1Dsolw/LcqUB/LSm17kNDl6h4fxZhycKlBjarv2r+pl6fGfQfvP6oBhHvugMHV+DQ7wfvKdWT1HIyTlAaw+5atMc8SB10oDWUYWhwfReJocUK3JIgUawNcpPR2Cz2soL3ECraxLq3KzLatoGshmORILHWr33HSAVbOkD2GWB61LByG621Zq65ycJkPsRwnOrxUR35pd51cs6R6dXVcjlQK6y2ep1ebq36Owd9zviG4Dq6G1cT8Q64dcwAEElx9q+V1dEdP4Srlg15VwyLq9x4C6H24zw4ZVXfIMR07I4vUaudx72XaA3V+Oq7f9sUd39VAYlmItV8J080TM75XgUrU/D7FV4kldF3qydPmO7Gx4N4uwuNfShuE99U2HhnIruoKg841aWB6uBSXnur5w1N7q5PMdOaOOlUF6924e1uskoecmdPqHnCZNJ3V3lxdahtoEAfvblQ1gty7hZaRVfm0OPOnKy5tPVwdnfm1f9P3PFb2eV24CadODuHtykvogrWwgBNsKSI40rLCjQPKCmFAShQA2lcVJfl5PMMXAI4Ial5+xGg1fWyPENXogARvJyqS88ecs0JzNXbt4T9iBTpC0ke1K3d67BU9mt893q4VZcsfoV7HJkAQ4wYZyLFfT/zWptXmHlgDV6xbZCcCsNgPmwYfVrAHIU841JetpWGtXw+rz1SySq8uwjj6u9SGWtNfrV9Pq431eQuA1mH8XTo+h1285KksuBB/IAUIKf+a15q9dJdogAEg7iBV7FV6crb67uIaIb1XZtyLWsZuq9TnARrhGdX7z9iZWx/q+mYj1dOJRrmddtrKNiq/Xye9BXBVX4BrtSu20AAzSsUMNtu7iVj6Uq4Kq+ZXPTMRhVXvE98T1qfk6NGsnd2eg7P+rxlVzMF3fKzQj3EFwxcNpIxMDq5ZVcVw2DDd6wVqsl3MHY8kB90Bg9XPskR9V/DNfQgx1w6Dt7ncNvHBWlkzO6f9WPB9XJ72eFewOS7gKdOrn2lUzId1a4FrWPKStZPXgKgOY1lCa9Xq+GbBLkvSNXRvwgHp+GJatIDvogRHg2nF2sa/uS5RVsT6P83b9sjsxh56jExVvnWPrP9kEAJQ18ONc1YeOOBimHhlTtpW8vq9YKf/kuee7jBrhugM7zuzIBxrgCPLPBT6cQGLq5xfBIUvexLPEgcyaxQw2Hwqnrm+xLQA4cBcNOVb7EsyFPFyr25Dpae0VY9jruY2OVCnv65k9JwQ7aA3N3x2TVXRbzpI11NZaG5cOL3TdwHqr5hC3qq9MNeNvOa67ModxUgDkmYsKcdPPLaH8VL42q4rdY7bBi2P5tXMZd7uTBRxZZ1c6q3/C1cYuYAq4woBjLsiL2l3nEzDuYO42q+1HtsNggAMsF1G6W97q5qNfOGuejXCPF9Ze7ka5CKenvPUKrGElro11nve/Vf+ZR/dXAxr6DV2pXfUkD+FIWdXMEhXbV8Vq5VHDQ8PzPVkod/jc3cw8oqvTGu3awsxr7bV623fhoeDGvqLwTar3QUGUU9smvdbn8rwA2xRW62K5gm1codgY1b8djxic3mHftlsHGuCRAKgj3Rl2Aa8/HsLeWc2iNRT8Kp56k8kkumT2vjXQYlzegEKq8QNcNrXhugzVL8Mcwca8agBHGvJ15Tk4IdqGTE/PLCSfOr+72/T1izBh7c7SDwr2GLsp04UvV8dzXx3ogavK4D9mriN9BAK9Mehi1WParfapRie5X6G+kuclRrMz91gIBgkaVFWuBoTXhXbwJrsg4v5lDwABmsO5RL46t36l9CFcYUB90ATaNr/padW7sS9VVd6kNsTXwLDxJKwYwBy1dnGu+y7jRrmnV9Ka/MJQsqOeQg2mYo34T187YHt9fO/Ubza4BxgDhqC+1eviPRTXVEATu4L73f/1cIDwJ2Lj6r9FsIaa88Kc9CWJl7LB1pVVa0a8kACEOPfPAUaVhU15PlD1IaiKSZRSgprhN4JGLjBwhKqqHAAfPgmk1z3JgfB1yNgpG7NR4GSZKS7a1pfg5mW8zcJrpY16fq61rEGjiiRIqNZLA14tq8EjuR7mraXPxT++S02q/hNd90A5jX/81uGsqvq5sNc0/OK0z5PEfmlyyo8l0BT6v/aXyvV213UKq6TNcmmuy7L0pr8YOfaa/5+dmVWhcz+V4Y01+xABTPCaEYgxL5xrnZlz17e/VeIXgz1XOXjvnwUpHSJVfymvbTXit1mBayZWIq1ckcv6OwXdQBo9Aeq+K1ejtgo0rOeV5kAG3S4104d0uFBrc5rvnwV2a5mNcjuX6OLGFD/9V/uohxbAemvpUoeXFiYZ6HJajNffquHjX/Zrj9V3H3djrul5Z1+rn1mEw10S2BTkuKt3c2A8tL94CVua9bbtSQAyDi3Tj/Oko+q4PBLF/PfnL3Kl8o19qgEqNeUqX1tXjRQHLVzaa9NNf9BL2h7Pv9wLu3WkYbLurY3P2IeZrpM14gy+33PLaJJ9Hw3dzRe8ia5Q7AObAGOLODL6scHgy6mXsVZ3hToUWrxxwDFq9YbDzqhxzXRvwphl+84/gitMjPmPbJBrj81xOiwfB1mFBeRnVALw4uBma+jNdUQBiGHtnl8de//q5gMQgUuUwgjSVnDUCoy/zCuOUlNjX6aAK7CLKuTcACjqu3DLUzEOaFq2xE71cjEApjgxtVkxl5S4+BcfnmuszXJHLqSANA8P4tev+ljcbWi1mo8EBGeXVLykZOzX8/NAsMP+a8JKeCAvwxnH5rqy1x0PaiZcSAuFuLWlrvSR93sOSuvYqvOSoioRs+RMkwFTYfqQRQ2whddunR9xIFcYLCWvzAXyYz9M1wWGEzNesrX+TXUlj8C17mM/24eItn+DXrTdpA87+7r4td/6vvHrOB5+GZBHRAKZcwn2QgAQXV0se6Y9CKqvtwUbtX1Y9pcpNpq8yUstmvvHrAPDi8a6QbditddMuClLchriAR60Jn/msDET99X45rq/9F90EnQCK3WjzXqbjvkK6tdpp1dggArErlVAbY11b47L1cYuW3qA30llI8OUfUeNfZeO3VHCGrqNYD0MNsKS3ROLSAgFkzStObuCuwjwdXusAneryrVz+1c54cgWuELXXQLknWwCy+NnM8GEUOwL+r8FlwCtZOtfrWvKzXW1rhrV9MC9j+W2u60WX1BNtnW4EdA2te9GvHaA5+ro/V7NHHyXsL+RJpHvOt9811n8DhLsLmvMPLpvVrk8CsC+UPurWuJ9XS1mJ418zQmzntroBSHryYACG11UVZzbvc6u1WXYq1rPe54U+TABPF2gIJPskKArRBa9tNeVWATZ7VrLjVa9Ka/w8XYj2ETXZ+ruM187Q6XaubmvKJ7SvtmfV9BpYMFeKCXitX+0r2c1w1q4S3vurXe+Hw1Vum1yxoB6cvfWvvMA/Cdk/VzvRQlVdrVXRibZuCn2SP7rffNdCqVClAfwhttCp0TZP1cE2vlFHujLjAbryy9ETsWePwbXI+r6i8AEPYmXFTWOF9XfNriW1wvq++PAn6ueLXuhrlnV2VM+/Ce2mvIrXepDRzAMOHewwACAADprm5r6US7k5TamdVAmCZwFHF7i1xd2uBTtZR2yYnaGrq/l8bVZGnt86uxTX1bOSdABBq+NtOEcueO7/coS8qIja8VutB2v9dXY6r1fV78neKtdF62iyz0pry219Ha9OoMlBxrQ72R5JD28Vq99tc+yR8k7Ytr/uUL2WaNtfaoAY7X8drovS9Jq+qTuu2uybX2lrwlyzba6yof22uiTXOJr0qe1rTSnHokkB+4QZOd7cB7xtfaaved2YWIPNr/Xx8bVcNtevWvFbrQtroPuKDa805cKbX7/zBdricBzLOGLtePuCELXmtr8Xl7Zy+JQo1H0rpCs9rjGqvDQ5zSB92uEb0G3AIe13QFCVVVxmvofHgXL+/8/wa4XtfdYBZ7XGwgf/W3za7U0sn6vtrXHzYIMSzbAC3td82v+tLDJryieyfq7HihT6vR7X7u9x/y1WC4ejPg2u37X/c4DKR/pa9ZPJb2vKJ7DJrtXS9k0J9kj/2ueT+4Gry3V99q/0xdXF29CnFaZ9g9Firj3VfVmuctXtYLiMpzKQ9JNe/hPXrX79r8/V1Pw8pWdYOvLRgbS4Le18va+Ltc2dXJ0Anert2sDpQQKOslmukAAyuQSdACUQHQSZVgAgurFs9kmZ7zIFycr9aXz7X2XIAxh/svaq7ud6vhyrj/Dk/V3MAFAtevcvvtrFMzpbSy5a5jNedauKtXWPJEacaDy5f1cX8uaSV1uqK5vlJa+GtdF+PDDbiPL4vgiBS6gzDDmuIRHmTD4oACNOJSOuWAAh9XyjdvugLhUjY4lk8uZKz8ad69s1qa4VBig+XeVXCTAGYa345duAnEpwAqkZMiGnVzbM7Z5f/NXfLXJhjVDa4XXbdmePzmZdFV1L6K12ulf/msWWuAhrhhgZ3O+kAA8deToA+eXIULnsYC3CEptfpG2NRHXUV2ee1RICAtdEmudAAuLfY2qyrAEccCdmv4QAUTrknhwxC81bsNiXcnKzdITc10w6+l0sb2v9eXW0DmKFzRebmAB0oAIrXK9jvIIM0a/JEce8vr2zv6M4Je0pq4Q4BIGINZIfTrxG1xE69dNf/yXjar5e1/Xh+sa83NfSmuNbXqjABUGG9QEDCtRpWrzXe2rms1x+a9wqTbLqmDrv2ETe198eK4nTykYf5XGU4Ik1+9a8IHvqn3rpwnqlkvlwQ2ajducmuRiM+htj3l4rpeCIBE6QEb0Q2r9mMkGwDJid1w6t9XbZrip10Sa75IDgmuGTXV/L61V1eq9P2tjb13GAypRu+Z28baoztqGvz1XNNrpKoNPy6JCez8uq7Xhxrmu10bZfX1dkBmhVXEzrn2SNKa8JEdYA5EbXlHVki1x4lDUuvFavILXh/LmBZ4glaWdcSAh5K0hol0h6wOI+1QBG2XRTX2Fr8k1w2rfRNsvquLGAw4dtSu8mpbONfSmujzXxZr06cDyf1bbuqDGaJ7cvAGkwLSLHP1eeWvtqXQzr1O1/usgkmTMuvH1X0prxUpZ6EPVEdeZ34YXrs5y5ZI/w4vUcjlPnaziBlz6kDqa+B1eFGvCBXL+QIU2ydLGYEcbiM4S7Akgf+awhwGi1c3tXjYRRCxfQ2+lndLgeL6OouFgpDla12867Q1eeN95qALLryV17aa8VNfgavXrXXlryLV08a6YgS5EBJBXWArkC19feF1NePt3gLXz/d7Bvs5I+SuuouuLbX+6iXNgHtq+3sE8n8UOwKdr9218qa5Ra0+yQFpXhjrpm15U65Rdf9yh8bXIOr6012MxCHmsoDW8LQUawGVV22a6GdckkAi9L9VO+uhwGGCwmRLh3vnXkyIYG1704SNf7RmusXXBrrpshxOxbsQhAAZx8rjOdyIV281b9YBmuvXxHXrr0i1wTpfItc0XX8NL2IT1OF5dg4UwFwUPZnX3zfbOF78vaKFcB8WLTX2Kr0B+hUK74QdrNDoDXfZr7N15/q9AMSPqvLaiyzry21w8a7yLj5KPBQnalFyg15yq9OVvFwvhe+gFkqYV1Aa7/Ttiqv8r0y1rmc14+q/Gtcz6uncAjOd9YV6KvbANd6QAI9XdcL5RB2FZaINeTmuNzXvYjt1iP/NaKdfuhP8XXf7rwxB5SdeANcVwvLynnFriK19Ga6XNf8QBpmIPMVjGtdvq41ztorPpYr3jIdViO7JApYf4rPMFX99iIJB4Plf31f2pkalUhvjpWewiq9Mdf2Ouc6rHXlwK1/Q65p1dMOvvrULDrlJBxWGaKtfGOuTDXoj1GkV6Va+mMucevwFwTIriNe67FbySBauuvynca9++xKAKSVVU/lOJ9r3YwYWR0nnY7CfiivcLb0kACs12ta5uteIquxKqPjmoZsPNa5sKRObR4zre1jz6zOUa/lIe3ATDZHNl6zVcK03dzOuuYHQ2HQzYZIyfV1bfkd+YX3gJdor6ubn1a8YdewzRx+HhT8etV4JbYnce2hWzwnbZ1nx27tZF7EfZs9tSrvor7eVyba7FNdC2uT87ztD8MV+4Wb61eU2vtPXD9Afs4cNREyGtT8PwUH7OqmZezpbY51c8hB0xXgGl4a19gFmp9t3zlcXXm5rq9oLrXZ3jB1rOGir4LEbL1wGxFmICBavSl6gAlzhq8nq5BdyN2PKrAVCjkdZ7i2bThfGquGOLn1rtsV2nC+Qdd9siKtXSZrvsV1lq/tehsdnYObMF14AxPuq7s1EwKPRGrrG9khQCBokpddhGXmmz84rw8y8Zq6Y9dhGWci7d6zmfy8AYhMoC1Wv35HgolrRe/rw769ccVPFDrDHFktiPIi6AYs/rOjNXwBid81zEI+y8dCoKNOL6DrqRF9N6+mtc2GuazXKiLrfQLt67qStoOvbTX5Drkmtf6Pf/mvD2vlio13rql15kwDtVeoc2PN7TiV6RfFgFhiicjmjnLL1ZDmkwAe6/dtcjPl07XT3roG1zPq7LoDn6uT9XC1twjZ+d65m9fEmuNOLFUTqH18NwBYUew+uKWH+Hl7cpMy64GInHvhfV7eB9kJ11TORh1clsarqX9CACnVeVvb2Bq1b2tLb0vAUR6sSq+DCskYBSi7yzr981yQcU7NeOWXSk7o0Tvre9oo4G3u+x2TM1uRr1Ns5fMGyoc+yQ5one8RITZ0tE7m3s5GvevX4Fr5Z18I69xIhuoQHNXByj8rs6lZemLu6oMVfX+n1DR+q+2ZP1dIuuSDiYprql16FNe+ktkevojrZ+r9IQA266kkvxIuzNnySjw9iyr66mUA4vgiWogCASPNNZnbzdcE22y9XNIAVlu27WEBOjpoABXXnDuZlK+e0BzVf1Iv0UCg25NvV/ca7ZUBQWvV1EJmai0axD68w5uvWusXXyO9mp1/W676Nc7auAzdTdr3G13eHfF9fG2nOXX0e0D81+FAA6tF5+uZXXzMT1m63NvaTEA52vtUACPd33ABb64iktouuPfX109lX16Ka5R8coOur1X12ruJ15rbeh0BPBdzMHAu9tts4+q6pnidmunXXGmduF16ytZx9eqqvzLXZc4Y+O3565Z2uwdnKbLuFAWGZcPq+rNd4Wv464dAUe+xI0ldmRApnhX1X9vFoUS7joHmjhXgB71MeHYJ718N3a79cYuu2/X6dAbDAEb8J9icj82/YnrTtxFV9+QGBNcj+uw27cNZJ710ba/UgiWGvmZXn64eTAF8OCuwhGL3nXXcNZVT10Pq7gHtGv9VqgSqqr313yq9ttc06vyfXlvgDe10b8J3ADq+v+tXcfr0FWJb6/h9fyukPrXPDroJK04WThrLI+vejXQ1r/s4e969b9cL6umHXPXfPy1xPE55XWaqOtKnzvr5XV6AG9YbAI92fzis+99g9Bi5Y3teToAhZX+OETOy096+lNd0BvcdAVYASm12r68r9AjTiwnX6hiJN19+q7r6WnxP7cEwPr4w88N3av1c6yvo6bm9t9IyHr66G1cPxOztr42roAN81a/YEeIquULXsVrt2Vz/E8TjMVWvJcgtpryiSGSa5HNF0uu+1SO/rxl1/Lxe2kzWZmhnXopryqgMsYvH9dAAZcVXAesj917Z2Y0qAANX5S7jiIIg+zha9x4CR5pM5r4bEPwN+8eHHddpm2aD77KLi7h3ba6rlesuAa5XUQb8By0AFZ9wCVwGEWXcC5sF1wOa49VdscX2D021rnCu5YvDdNcEYpsPmlTVvuVwEPZP1eEOXdUX1FdonV7RXfMoh07Pj1HZ9r16187AgO6t2ou5EnB6jj81+i2HyGxeouyG7yClf1F+w7amEsU2uOfXSgb6bV9ng/9VffSX0WwLRD2+Vw+E5qDcDavITXVOV5+V+LBeiaVmqu35XBldtbjNMxCBCrMqvxVXOuzynV/rs/AVf+JOxzHLcIG9Vybs9cWyZouj+Ly7r6ZiCgq/tlsdeuJ8HuBMNm1xAXZl7O4KvX+zRHIXK3P267CrspOW8OL/Nqn3ZzatVuDeUKBBNHvb5m4N2ZkDeDdiaPF4nNOrxhV9CFYgT024QJ2Lsez3Say0k8U0d34PTknvCrtTRydXcEVedz2wQ3SoALFqwk7YkVdzO25FXud1oQNxsfZgIfZO2xknmerj1iFoq//D3YmvPNHWBDpF60b/1e1fTV3Pg3dwbwfZ8muEoUBfBvsXrbVT3F678G8nQB2KuGQ3QIb4Gu485b5PsjPkXFXqWjvPhxlo/qSdAn3j+zcIb25J5H2fuSc7ovoT7y/sJmQMfs8tSBCBuolXO+xn5JziG7p9B37P8Q3w4dp/Z2C3bHijEn2kBz5Ibt4N7kq4BDc06uf9nLiwGnVxCpZZPtni2etwQEAK8Ww4Q/yrsKuWsa7LhD5bR9Uq72qcFKXc2ACBzhpV3ik5/RdevWxQ3RNd46pzTXbRDfiuXulXQb1s7R30q5iIc75W6fQQyrxBK5YG9IOf/KuVASlgudj81a5coOdXZWMMXvzl3dkpwc8HBi7slZa7F8TsQ52a7cyBEacWpG78tDxjF9LxeqyHhxQXS7HYlyqwOmG8Dcv4qudPLW1WG2h4+o9J0eXtQQgAuqTnVi5kc5p0dJaWXzhQSVkvgKbpC+9BJbWLUn/RzoN2ztxabDciePgWHco5flV4Lo8WYyNhvuVLPYb0Nh32G450iNu2Z3LV7l+ES7DE4RZfyquEya0WyCdi9EeAbdve1PB8rIbFl+YOnQFBOeghmFw3M+ro+lKXXbhDNclPOm4KaTpLS42xfFrsJYvf3LuwsYkRyeG5y+vGqA8iS1Jz2726U4LiDvh6OmdI+mgA7J8qGedyva9WnqA6BiS9i785EvdtnG8g8roBib8N7eG7HqfEeXEZov4bvqFk2k9OeubORKTa1YAHU5zc7ZCqTQRv5aHJ7Fvkh46E82zhSQB/GH37tokcOVxYWxcBiXFPS6gdhdi0PimLVd3/4EWXv7ForUfLQ8ryuI5A10nW8lBD25vZfC4eO4QFgAcyay7FzjuFPSvVnPeSnDEb49J1hxdzrtnpON0nr3DssM2vo7yFJctgBznVCgt9S3xRgIICUSQJ1XCol666N63VnVfPT2/cr1lt9MNzHgDXVf3hvl/bI+TxAC9uq45pqAFXkyHqkby8592bZh9AYUA1Lr1vD13Sxoa/lkt/MOY8AC4cXTi6AYmgMfEzQeG7lNRVkO18HkMCcOyXYJCLulifa8hIDqomRpW4vA2I9zTi4kABwjNybBls7tJ6gKkhjo9G8fzJ2e2L2leUFe/THc1xeee3tcXlJtUR6ih2EvrgZCpkCn6Gr5a+343fe9A1UAQ6HRi9oi55lxfryL09XturitWUppxw2EhbCHkPGzGp5Djqc9l7dTSu0aueCrdXF4Q5LRk+X8qtO2UK2rGryCN1t3BZoL0xPQdH+3t78hz5GZvDcNRvBxiaLCacxzBG94yftIlLSSvStoTJx4lGKvTLBXWFzWmjvMnAjff69vSZOimrlREKDu303fG9vo9W0tt0zSICNy3i5m9th2VjgLy0b1y50t7eyYfRGPyb7uDYVuJzfncMyc6SWfTH5kb0Qx+Zk8O9u8Zhe84mLYKIxzZk+R4vne3EOseJr6zVwQreUjcPRuz8XpW5xulBvq94DfE9o/MnhvVs+KD0Y+kWWwzgNKHpLT7zQraJdB9tUtObziS4jIsN7UAClHxxavYLbW1VPa55eKm9MtB9wBI3cctozJ5lq5rBj+QA4tL8hdwrJ3lq/1AtxRuEMnHtg4Yq4nGbrEsM+3X0nMcd2jw/4w7p9tJiNhu7JMbjn0GTG6LDdNavkeLdC/D1gG1q+HJedCZa6haCloiQNWG561c1yWoo3eYbjsSxrHcF7sty2nBnx+QNdh9ZAGodfWiWeC7CDd6Ex4/Od9pL8jR1A7Asbl5AHoS9KcHvc7fB7NL1N6R5tq9iMfQl2TsntEbjSN7tk+7mjXt3KTH2Ltyvi/FkD4wAABXztXDfFheCMbG+LdfqQAzY3SpATvi5bG+H4uV3WcYaL2T5HaG9k+4SKfZPxo3Apjw/i8H7dCOsA5OGPb7bT66hwvxe24uWthC27iOTlUxxDq47adZ+3CFAN7t6t1914FDjcQ5Pw43COr/fizHG5FMd5+20dXUA1q/iwiFdtJlOkA4434OT9HJ30S++9tZxuwO7aOTgtK6Do1Gyt8b5DHHbW297CL1QHpjdE5OQFXJOT3Mxy3a7FYvBGJXto9NrzFsH/3CsjdsYBa43z7T29cLueWIjds6ut7n3PtiVi3kSV/Ltrt2j3bP4bwXV1LOaHjeVWAR43i/tonax/QGUjcvEvkBLTcbjf2wrq+A7uSxuLWL+gVhcotB3f43tqxv6bXWur+x+0JNmPyC7iAdzL9BLHCq4cU9EjeuEhv7nGglp2K65xcCjdwsRMZrQaTw5yCnq9xJcCqvDV4w4d8cNxSS4gJIjmP7Xojql3yN6DciOnoe6uTrHa4dl5W6orZ8EvqK2dzHWit0/W4Hk7wpqy7hny7inpE8x5GuER3sZgBJOL85NDfV6Xxfj1c1ivE9XYG9jnYDnq98TOvhqRssRSloCx2y9cITd8xXlo3UpLrzQJWEE4dyZhuxG+l3MTPJwF096AYUl3EI3cFjrrS5Li6ZP7FGWC8n3AdjaAHIH3GGuOd2W9XG4liFJvo6/PLuy547WLvMbi1Fr3q8cDs0WOZJXWRdtQOydk+1EBIqXNHHeol3mN044DczueSBDA7vrAa3h2EZYVjfYj2F1bBStlqiM3mWsDvL2OOJAeRJHfV6kFZcDvSJvFE7sibuRO/Im/LDczeu4Vgyibu+VMvY7aefyUu+SrHKNUxR+rxbgHsZdO7LHi3d2CO1/q/HnoAVmSWHPhlvsNxp/PWXvv6Oekz/jdxfaBM89JXshsW+w3EBrlfJxEm5iTc0sB+VXYDDj1i0OG4c8c4agoyXkVjxfJ12G+HDchSXEg3YwV14ahfk4D4smRuQGAJ0b3EpKcIEabAUGuSk3DHZKUSzr5cmDuyxuTxLNL99RZyZNMRmhpCO9lrW2cbqDIgFYB7uJ8Ba1GnZL97i2Q46yLtM8BkVXgr944O1LPfpcD5yw+2rDud/EAHhMgATfv2P5aHVwd2+NxYwAUvAPfpf17wrzvCmsfG8EAD5yxgw7Kyb5Q1/7pFcjcgnNwkY2yb18N7tY/rGsseOSCnAO42dJ9FBbgTc56u5UzONj7yh2Ya7+utr8PLDXk2zvZN0gQAOTd9T3BY3drz2sSz4Jcpkfoh2u6gkLdj158/BY49TfdhKailwQLw12Cq9T9IiFPobHETDunV+UICQcQxvPy43+6gFzi/SHaTeenrn/nZx9j+1Mke47i3sucWsbHHIdu5NxWG41Ctx6NH1HJTDkWN27QmsgCIOvSDbmDQRYu6huYvKvzgwEG7Tvd+68HRGaKNfEbnEunRCAHyN6FJchjcOepigA2ujulxzFvbgHvf2IjmHOA1/SO64U4mNfldmIinqAkKJKz3JnwkuKhO0+uHSbyT0u6nfGNcdGuekbYNV5Ox6AYh8KeZABPA77Sb1t+J0m8tscaRvwAAwBljFxyx7bdTufvPww7oGZ1VN6xY/W9tsTJERLSkgGqHBkeH1MtpUvw1b6RJSGNzb2U5KgSSWnOHlRTvvp8VS/tlsRFPgDLsEhaD8vsZZUkvGB2Ho3XBljZwOP07AYfmpvcSkhklhGou9zvSTcnuul+njqbv1N2T+QaEoOSWel0fc0ckR6NS4xNdB2PXss+qbrfONfKgaoR5EkAvb4rF9KYHkSQmUusiXKTX70YGXu3ZG/ZLtxSWVBrU49Ok10sU7L1eJeWyJLxRT2CQkutF1PKP3XK03M1jpeh7sU7QHsamuD1bIkbyAx3vxmWzufRuv075xT0a2zqFeSwgucWFgnAmllQa9kZHaktu0JzrLahlhOlzl/d6+evFPXWHEHgS4rmv1fAjsLwhAon1bMqPgF+IBc4tTj1Ns47uqIna0lXDlwg2V44431YAGbOxhHfctAr2OHKAibDr1C1dJe9ywLputB7sI9+AxL8Q5HTcA6ZQJBkH2PIe1e0AYqj7nWHgnbPAGFS8fInYLThmv+snEabk/lzFQY7Tde6WDS7cBiVWN6lpcu/v5JX9KrhZrp0J/6m5cjeixut03U5lvCN/zG43jcFmudYz7KbriO7mG6ccAsyX3v7DGNjmS/0SQ7EtWL3tE3Aqbu9N8Km8TpdZD24f77hZ9lN4Apc7XpoBP4aMn9SEAO9tE/0ggacXrs7cMEDAgGLG69idHx29U3Hkdhcy53G/r8vnrHgOH9vzgCsxBm6Hai6kP8Eo8hl42S9fpYmztTSFdpLqTaael3k45HWwQZuo5LCmb2OS/jAHKcc3vYHIAIXKXmO0cZbomTHNIeFrOclyOgHUHGKKdLVBjjrpkbn816PSV0FDkiPJxrzGbnal/Mna5TeP6WpdLEHgeDN0+ABozdWzW6M3cFrnWMxNk6DYjgMuS5H4sb7zNy8gDQtczyWWaEc8luleVowGG7ttFPkDL9cTzyN2v1fhGBbD3GigC0dy+N4lw6zsuBBVIY3mt9nNN7B4EubtOcPhfXdFrnyq2iU8R5cc+hubLNqb8c9NX1GrAB8MvgXHPqb3NNwopbJ/LW6hj7H3Pj1jNzlejqonrPIgGCbHjmBS/XkCgBcqpuyk3Oabw1N4nbYhju4uPWGws6/HhazKwGAMR3SXPnjjRQYAy+pa4oBcKj2tXHqGb5rNxGAlazeFOP2s3eMdpwAPWpbrhDGWupCzU4OMNAginZx1MmJvb/7YYzmmO2zQ52KcOWvxeIiVVhbixBm8q5Sm3RuVLUAr7aTPFm80UtYAB+Ro63tmfx6YpamACdZun5XSYzqJaz/ubuzdnSA+6SwWl7RN3Fa8Ncet0Wiag3cb01x2tm80e0szJQk3y3F7Me6aY8cRDIxvwlLlAVzogCUy4I3tg+OiqrrEbqWN7UtYQTcdjOk/b11Lwiu80tYIjdBx2G6rE9lqWN1KU8a4iS4v4wreG1uRNxYm7i8B4TJV/0mnt9Eg3hMmHGK4kRZ1TnedtIs62IDz6LC2RjJLnPMSWAG+vaImRIAAEWHnmbk6cMN3c/TdLMRHrAX8dsLN9l4/l8tTKXlE39u0SDN86Jd/jdY63kvSrcd6eOwzm8On624WugkXE2A611EA8KLPXKX0w31mdkMAE0la+6DnWv/x78tjruN98AH0jfisW247Wubsfi4iy8XcePWv+3HFpThQawacjLDcYqXbE3yV6VpNydIS2ntQqWGqE1vDnti7zraEzdcB3ZwStjMpiQFDE/A0te5uTsomj2kyACsC+cPCIWXjzX+R0K1N37Q+74uz/5YAAbHjvJN8leg8Sjc8A7E3ld1kwIBLG8cqKo2vE83MbF2PN3nm7V1sNZRNHtNll+723diMf4ccxlic3miZ7W5qT+ntrSN6BpiHNNQL1oA4m8ILt/xuzJb5gALBOxx5ZUlsWqX2007FAQtN6NJlbKvaxuvfXAyb/xhwGy8k0uJJwnVr+mgQfN91gEtUug+WbM4YNEJYS8TE+BzeVpvP43Itrpye5Rpfw0t7UIvVLhKFClSqvm7yyfJel+CnJ8TjfNx64+SmeDqPxEnwpdwouygm7uAAafHZE7IKmE6QvhpczUtUSBBM4SwlsXx3Um6cVtFqWX03gVcH5iMro8ggBcth5S7dLAZfN/zFedtd7VW/lLJgl452ifE6cTvG5ufc3kuLvdS/8qCf+af8BX/4ImbytN3cOHoJZylPHtQz6lztS8h2DPUs7e3+qIlSdxAt1vY+nUte2d+m+B0zgCsyZQGmIdYFvCC3cGtqsAPudb2aAmJ3yC3DQV1tS2AbahEf0pW4NLESd3ss8l6ToLdvqWfmINvZWAK/oI+QLvTEP7E7oPj7lS8AW6CSvMFu2k7rBb6cmxgW4DzfW5v/GH8YLrXQI/w/RIML5v41LS+b1/N6keEHGLJekN83PzEd71xkm/HtfDgPj7XeGlyEayuXfzzdsqAyU3b6b1+OybLHv1tH5u/vHTDYLaqnIXfLzfyZulhLZLgMfAMMY/QecBcuwZn9/5yHNzIm+uTu0xv3/0MSdpyQJwW79zeJkRUC3B+b5L0oWG9gpy70Os83pukQnxyJ49+ky+5vkC3uM91VsI/w6c0skSWu83urlFxiEfpfFrvpbXzYzc+bsacMl6SvyDyRuMVLG2b+HN1sJbGnBUFQ483+ebpdUGPgDgScz6uJs3D118LSwx7c16eMJvEcIPZj+we7hm4d1cpRX3qre+bnQt/DHcgze43Wel0Peb0uu6A+b8DN0UOyC33BbmYm4ALnN8ev22p835CUVRYIc4F3fgucWD7HJJkIOAsfY6nHrdJ2883xybpsF3RxaQLdyFv+tLfBb/ZN5X6B+YgxpvT4wi6brs4jipczCBLCWYM3Fhb+mN5H4/EdczgvKZnEGb/HJ5em/KLdV/oCoAW2yUHl+5JbgHsj0ATM3p8l5yN8Nm40McKpvodrFUV5vNysm5gkKQKXS5MnubtelEElcuLfdZv7/0XdQOpK5nm8kgDc8BUpL3AdxaPVY6/Cgf6zP+LzpUl4AyxBwirGgfCXCRUDPLquyz9dfqiuo6X3s3/I0e720YpdCTeM53IIXJad77N33SXezf92UPL48kb85Kz4ZfidcHVnf1XMeb/lNzHM5ovMEZuXI3kH0blN2ZG6MUvNT2th7Xrt/mO+OnYzmclzPRdL7ul9AxAx2XnTs1iAZS3ZNVzaBw9TcV0vAGXiMAXGT65oVem6yYBg+gHM72ultBe62U4mivtIl5GuW+cNFSz0OToqRhTBhYrn+l7qZPJGh6XT26XxM3G9jnWN67pfLMcKlu/LE7loLot6n6QdktTg5fU3mSZiKS5Z67Soh0rygK7L2b8TEJeAEALeFF3wkYSEyHdN2ZG4NLcO53TnXO953Y2wvtfr5eGUWjjb09AW0u46W7cDoi6OP57NublyN5I3dJizWZ3GySejl8FyEpIHGAC7slrqANqbsMR2RneG7s6BOjxHVGd/QJ6UQQMjeF8WoXXjGdnsp4exemIdWBOOhCDhlhGotbw6sXsVGX5ZHV4phyx9TyVHjfW6poFnL15iIp45IBGyxVZPHpXKBl2Mt5vpfZjeucXi03trIV7q2Wm7RNtUmvl7HfzllBpBgMcXTf7+uOc3G9jmncI/pZjqtl2XWqXVEAMgvJ/pcNLecHWudLaoYf8uz11cub64lIhRLNeTm1MPTHbldebBP1AdOwT/xh+jC6EMuHWOeM3loFKni7jC7aCdy3mOgn7AGeeNzlm/mTvAGXM1HrRbhsGCYZeOsTDBPpynVBl7VN8h2CHTdNy2tU3AtwcygyPm7pRAKkRF03fgVNGKJ4dd7gfvRn7Fgm6bmPN2XVbCcdCEQUXOGOj/st/8m9C0sAlvQcoFwT4MAD8xDl4s8NGI5oJCdjSN08E6grejMQpi3XBbtUxIc47MMvLZ2pwcarOSdN6Um6UkAFWX1i3felj6zFWm6IWIzBwRE3OZANBKBVm/DNuz124M3ETjoaHCXCHdTu9uu2xLX2CS1aIfpaezt/luN9XYFbuFiHlm/xTvtLP3aLrcjhfgKM1Z+XtEhPc4Xzk9l5y/inamGJruu5QnPibxHe6Gw9dLdUSX8U7hVLah1+pZavFOrF3hbI6RJR0t7qHdK5T0IPGzbJSb1yt70ravdfnW2aGwJg5IqDF4W7/vogr3CRLfYbpTsDIG8ZUththZjLQ5t0Vez4m77Dds539hXHK9wJNxhnaokv6lvjpt8gZTIEegm+lLeWhPQVnjK9yJN1B68lXvv1X7o7bQALUt/JgC3cvPGXQDEYmb9gJ+6E45stbpRlHIXoT9XO8CJfcQc3lOyG7lJtStN+Hpam36cyRe4XBudweFwz5f8LdwsQVi3knrpEVyjI61zfpsRsWwqxbuAxEE4/OKec4Qi03nzYFFS6obc9VuECXNuodPV9iRxys8PSeSsWAzXKFUbj15jJSDzuMyPw17fG14ky93G/FWdUmWB83t/DH8pzsW8I7uyeusLb8nrveF12E45Lt25vNc3ixbiQxDuvZzzv0Ru8f13CRY1ZzI1CrcsfCXJaruRAWi29dS4VBgwV2zZH6plkXR1qZdXCeu209TLSRbrJsF3neRXM85uU43JDkY6N3bm7+rczt3R87BiAAIQP3G9Ett2Ng2n5jMTz3e5JWhZGvWmXK4rjyD0pDOrxf0LcJeu0E3w3d8cN5F6+/CeK5vnZHPhloiQDGZcyGsM1uh8U4KDnlBimZa0geFQYx+Lz691H0MdsXeDtuSA9C3XWT36TAIej1bDFyOQfgeXFksV67Oe/zsGRuGc3MCtg+i5w1fiEt5IAVqhLrATh3DEW9TDZ1ivW5Hbib3YbAom6e7uMRO04XHRbuKSxLG4pze3+38Kn5BdnCqw/m94jvrrOjo3ttb5XR0uZfXnA8tnDzLSSbohQGJNdrLcnrOFvXU3rj2t50MHnjerevkrbRmTlat+Fm9bHvLAAHzLocFZ1N2GI9BzcHev4Mnx3rwyJyag7PFdoxngcIE0jgXi9pAHTre48AA63wGz4TCU7W80jth1uXvXUdboKN2GI6ozcbxvvhLwaKwAt6JW7hYikSXgmQcCTluN7wKXw2daW3zXQG+ryH1/JG4WoKRSWAAAN3ZG4+nu10Pgi3GmRGPN9om/2EvnHgiF7ztl/PN4TpZr2TT5ucJXIdbz2t1tZZQ7B4+u263BtgTutxJW/emyuH1IPswub1Iu9inY8JDWFv7vb+KdnIuyIo4FwDvpvgjE8GTiaIKUXYzrcFWXckrKgABet3JK8aLs8VPd9VDMTltpvqZbaLv0KXYc3WAWWX16V7fl9e2KOPGrk8kUdS/nW4+TcVu3oy3Dpb3sty8Xc1ts6+uwuIodbv+t7GXYpLtLF37AgJCr0n1zjIAkMRBH2zVcwsVgnS4tHvd9fHa7QpXjvr16JxA25MNRB8XQPHyYIIm20bQ4Jts3pu/FrfBiJ7SOgm/6SDQZufrrxh5rRsGvShdhhuSuaLzW2yDfVwCbaKXs/F3hdIKKgU+N7KZdL7ACaXva3A/L4ct8jvc3zesTU8xA8sjoNiJfm+MzvftWB1gl5d+NsMUU9qrcwVW5SnCNRXeRFiXdkwc1Iua2z39b8FyIcYMvCd5ABew3ylDMOt1UVaPLfGLhPJoPSlgtN8A29sle0MXvTLQWziP17Wm7wtDU5A5YnHJdlQa+UIEKAD0WXe63YC1q5vk0Km9MtdqXjc3mu95zu8drpdLs6xvB63SWbpOBBqm6V8fKl2aWAROWI5gF3W5UGt9KOHYnei90ZiB56LEDu25vgM7bHt2Yuw8faMjeU1EYy3BuYCWyy0i9ufOfeWjmHjkgMhtzIG61zdcZuzy3bwl2DN7427LrfJel2IAKebhHN9/699LtzsE1IILpblp6TLW5HUcSsX5I3obDytKFsU6GjcQ1vRw3SSb80sBXE/0bcUnZT2IB5gPqZG4AAAAATO8iOZgJYHf+c0LWX4S3jTb6+8DLm8w8dH1vlc3I3gfYS4PW+/jvc6O8kgkMb87NA8UBRsAaVOqA3RWzpbK5bW50LeHT9Z97aW2sIosvE9oFvadm/i33Rbg5t7VW7xduj1u7i3Zadiet0ZSn7LtiFvYZwPB0CxS8uHe1LcUMW8pAcgbqcu0+S99QVyZuIzLBdb4Bl3Ci93tsPBJci3Fxb0LNzrW9uLeYpuC63ugb3cu3/vZrBgTSPT43Z6bostwXJdQ3RUdg91EobD3+2+YG6+gBKFO7I3Xvr57N8EG9HpIesO6krtdD89N4/w6fWCNK20dbVMyEAt3fZcwSem5ubsIOzkDFt+/1LMDf7Hhhu7QOzmyp53o5Rzd9qOeigiIVqB2z0UFbXuOVPW/b7Mb6VF2ZuFVrvIO2Hc3AaV+dRypigQbvcJO9HrLrYUQxLLhDC57FBvPDIpUb4RJzeo4bbQmovS83K6lxN22q276ass7P6g3lqOYop5w5d4ru9K2hmrJQFpUCZC3faDfmH26ZLYibmZNxbW73jeRYvNi7JZbuNN6t3aSsdB1385LDTb2NN/VS8apd5vRfD7quz9+V04k49bc5JvvW3rYbyns2c1a8ScNxuwFXUIttNF5o7ZMjfdpuY23puzloq9lW+sB6RJPvHL01JUfBzeOEfUfxJPla3yVTq4Nwk5e+dj/KgiFXVerqKu2Wi8ZFtrY1Go3Aez+au41G5+Df+6RSnYDST+Fq+U5YakbCi3/Hb2VdhPZ0po/yrvNV3wnb5+V7l2OVXaaSdSWu+0XtVdycOMXs7pcuL5Rjv8Kx9odFy9XbKSdZO2d9j2IbjDm/hMgGru+i2GE9/awBttx3s/0VdomY5knU1di4+4W2/MVfXH2K23g4xdZJ/W28ePvbJO623Lx9rqp3yfe2rsMEPjkn6Nd8VizyG7ayu9tufFXMTtwUN1K5eHbdBKukXLuZdrSuGEq9f7Pvtuz9nh6L2zR1fs6a0dgEr+q7d+z5dtwLneVDekuWqQ74KTndt1qG8ABXYm2f9n9zlopV4EdB8MulKvO23FSrnapwRYl7bewHPOOqDob38W0O27lwj4pOf2347b4Ih4do/i6vmvWzqn2Tt3A55glYXbdBhuw7K7VAQcYsyk488CAquUMXF2Vz7Rzyk9BVccgBAAAPTGAAAohkAAAbcoAAEUGBMN4AAEGGQAAMcMgAAH4ZAAAEwyAAA7Bm47f8duwangIAQAAJoMgAATwZAAAZgyAAAPBMAAB5Rqoc4Z8uAABwSMAAAOphp274xdEIBAAAtQzCdvAAAzwyAAAFhkAACdDIAACSGQAAN+egAAVaVfXbgAAcCUuO3gAANeUuO3ebVwAAM0MgAAFYZRO3dYbpNi+dnEAAAWDIAAHUGZTt4AAHqGQAAFcMgAAYYZAAA6wyAAAdhlE7eAABJhkAAAeDD52787fNuXagzBI1ELt+F2+i7fxduku3qXb3ztwHXaIQCAAAxhiM7eWdvxO32XbyLt7F24S7eJdvAAA1gxpdvJVXP82QAALJKgAAI3Tau3DnbxOu6k2cAAAA5oAABmAtrtx125uIfg5mzPrXXb1rt+128c7eW6OwTnHIAPrt2N29hOeAAApJUAAAmabefcs7eAAB+hkAAAlDIAAGuGSTtw12890e/uWVu3G3b6Tt7x24E7cokPAAAW753hvNMBPXbwAAPZm4F9wAAOoaXHbwAACYMgAANwZgu3bdT47t5J28AABUmoAAFUGWDq6928AAB0XoAAD0MxU5xyAEAAD52qd296xebfXAAALB6g9uOSHRejwAAJ0OUPbpCN/2k8AAAODIAAEiGO7t4AAFkGQAAAVKgAAbDsnTnRCAQAAPAJgAAODNAAAZXqTpOOQAfrfQAAOraknbwAALKJgAAO39i1XgAAJcjn6nHIAQAANtqjPbmqW0QgEAAAccpJfde7eAAAhXxh7cFnPAAAVgzPdvIGnFYZwAAEfugAAB2UHsXHIAczt+l2+bOd4U1Eu3UXb8Ttx2c97WuAABIOTZ7fDqvkTzgAAVYZAAAlQymdupO3gAAck00e3X3bmc50x7Z17d69vJO3/3buHFz/Ng07c+t9JO3gAAfwZFI353bq7t1ji/cLOAABp9UAACBDIAAB74u3t4AAHaGUTt6Z26zIef6O+EHfvb0zt4AAHGGUTt8t28AAD2DIAAAqGMLt5Z28AAC7DBJ24+7eAAAYhkAAD6DGWQ817eAABChg27e1dvAAAu/KAAANbRT7eAABABhD7fWdvAAAlfqAABhRXk7eAABohkAADKDIF28AAAyDIAAHMGNHt4AAD8GeTt4AACAGVyCrH24T7dJ9u0+3Wfb/bt4AAFaGVbt4AAC6GSPt4AAHSNDHt8F2/b7cd9vIMnI3Vy+uEDLYm6vS6JL64gXbwAABYRgAALk9Eo385DwAANJGgAAeeM0e3gAACoz0o3gAAOzNAAAWAl0FXPO3SXb0pp4AAHgdQ8hz63zYuf69ummngAATydH+3dGTwAAJsMy3b27t3VG8BACAAAc0yh7cSFWFvWgAAJt9AAA2cZHdvJmnRCAQAAAy+oFDt7t+T24cMeAgBAAAZ7qAAAR7UAADaDAjfZ9b6AAA6TRQHfI33AAAz8pYDuLLnP82QAAK6Wb3b1TV3hTUAADG1oAAC6PcIx4AACKGCTt/3i7wpqAABqe0AADcrkf25CucKYCB+363bwAALAqpmriZs4AACcggzt8EVfFnMmduLO3lnbwAAFByTfbwAAP7ygAAClcRKHUs5oQd1Z28k7eXdvXo3LQ5uQd5Z28k7e79vGB3fmTwAADcMq3bwAACcMsvblSh4AAFmTQAADrygMb82M4AAAAomJvqDG6N8tEIBAAAjoqAAAYFUAAAXvoAADG00Alx7Oe07eAABfiL2ueAABCR0AAAyGRj7Y4HdNdu0Y3gAAIQYBe3qfbyTtwEO7uudZy3cYzTfbowd4AAAQjH65xyAEAAANDOt29E7cxdvAAAaMokEukh3KQ79Id9Z28AADHkYt26oJcCg2OQA9g75wd4AAFAAlmN0kO+i7eJdvrO3G/b/G5yzQkAACXDKt28AABrDPUO4i7e1dvAAAv/EY9unWn6qZxody0O4i7eAABpBmR7cLduZtXTd98I270O9aHfWdvAAAtVF29vve3PrfPQl+MO4i7fWdvAAAQ8qAABzRxr7fmEu9/Lpfb6Yd7MO+Goe09vDsnIg7wAAMPGgAACQZc2nzU5wAANByxw727V3hTXgHeXDvj77QAV7Ad7cO5DufvavAQAgAAMj9AAAnaaAABEFVq7cYDvHh3AcbpO5xyAEAABUVp8O++HfoDvHh3kOTwON4AABYbQAAM56wI7wAAGBKgAAY1M9h34Orw/i4AACD1QAAC9ucI7xEd3T26AVuLtPoR3wI7wAALPKgAAI7ju7nKNDwEAOiO4JHfEjuR7nQk2QAAE2pgAAcsjAAARwxX9u643MxL74qz328T7fidvAAA1Qz1DvRO3lnbozt6J28AAAHDJJ25c7eAAB/sxOHdQQ3bB3gAASHN6aHHIAcrt4AAFuGUTt2F265HeidvvO3UXbjkd6J25qHeb9upirKIFy7tzwO5VHdqjuNR3S8bkrt6J28AAB7DEKO647eiju143skFwAANAKgAALrkFh36urguTkIdHtHfQlW1aHe1Vs3t+J2+H7cj9vrO3gAAOj9b+3KJL+sx+6O89HfWdvAAAh0av9ujcneJL0rt+V28k7fmdvVu3pnbxLt/kO6/jeAgBIx34nb6zt5529M7fFdvAAAUwy1duYx3cY7h3J3hTQi7emduwu31nb5wdyp08BAAFjuix3cQ71B5+WO9KfsVQ2Y6HweT4Ul/eY+qfuAgBZR3UXbsLt1Hk5bHdhduEx3GerjkAEp2+U7cdjuxHnRCAXsd5J247Hd5DvFu3ijz5kh4AABtFQAANGpgAACDsHe3GjztgO9EmeH7eJduZe31nbqcd4AABEGVPt6329b7e1dv1h3vCbyuh/wm8BACt9vAAABgxUDvVu3xXb/kdw3286Hcp9vlO36471vt8gO8AADJDD/OYBhsVpmVB3Ig7yTt2eO4vHfWduNO3oXb2vt7X246HcY9ua+3/Q7ovt4AAFO5M4d5J2+nHcRdv4+3gAADoZxO3Aw75HtwsO+s7exjvyu3onb9bt6F28AADyDMeO4+7frjvZ+3y7j6Lp2Ym51jNvjuPx3547/kd9+O/U7c19vAu3Rfbv8dwBO5T7cz9vjLHCXTko18Z27M7fyDuIu3gAAboZFe3XibohAOwO+S7dsjvaB31pLh6M4wO8AADzCtl24L7cOw3eJ3SvbkA17UGeZXO1dvxJ3/9DzLt1IWZkndx9v2R3UaLqrt3l27q7fbdvrnnaBroR26pO5q7e1dubhCqY7wrt3ga6EmyWdvAAAjQyoTvCDXgAAP+dAAAFOqSdv2B3efb/Pt/N04CHfWdv+O3ynb0Sd91Q6IQDbDu7e3iWFppN2umZsHcSjvZ9oknb1zt4AAHT9Yl54CAEAACRqYAAA0Gavt30m8BAAWDvJO3/A7w4O8mNbu6dUZ20x3xXb0zt4AABGGVvt0328s7dhdv5R363bpvt4AAG4jaKd8WZZkYehjvfunHIAX0d7sm9DHfAABfR31nbtidxxO6RVscgBAAAhwyAABphkAACnDLL29RVuAAAY7UAABhcnmVZLHeXku5bzFfb2rtwVO/k7e3kuiEAgAAEIYuO3aI74Xt/j07c7OITv6p3Ek7v8l+T04ApccgBAAADabBdv1x3gAAC4TAAA0jrWdu4h36w7wFN9iHc17frducp3EXb/3t+Cm45ACAAABhgVHeMjvEu3ohToSbI0O/E7d3TuEU3gz15AAC9O/V7tpFmnB3PrfO6d9Z24mnfu9vip3svTwEAEIO9Ynfrdu8bHgAACNtAAA3comI3hh3Tb9itM9OO8MKccgBAAAgAmAABD+TlVvkDvAAAsVHMpunyrjE7jkALX28k7fGDvau3gAACIZAAAxgzKduVB3gAAC0UvW+Dfb8Gd0cO5n7dEzvAAAsQybTum+38nb/od4AAHx//Sl9rY/cKeAgA/J3s+0fad7EO5b7f3juHx3Tfb4Lt6n29wnea2OZbHJqt/MK35O8AAD3yoAAF+AgXt+WO/5neCzvHx3Is71Pty/KBD7cN9vDe38nbwAAHIM7fbk1N/cw45ABeDvAAAnUoC9v2B3Uw7mYd+726FndqzvxZ3DqbkSS4P29E7cy9vBh3knbzyd7V28AACMmoAAHVTaft6LO/FncjDUcPn9stwAAF5eknblQdzH26UncSduVZ3D4732dxWHcBNeZsWdJ3SXb+rt7524jnc2zuYTXP82cPt8t2/L7eAAB35STnc+zu0TXsn9hxc2nO4/Hexdv5R3iXbmPt3GO/Sneidvo+3cY7wAAOlmGc7tId8TO7Jne59vAAA7tE3ju7x3nfb3GMw7O5l7eBdvAAANN4q9vSh3kfbgud4AAFDFQAAJ3a1nbwAANGRdfbxvtxHO/Fnf4oXeTXgAANE0tp3gAAZ7UWu3Fs7z3t4AAACGSid4AACPTfPt1t2/THcZTuG+3NPbtHt4AAG3jQAAPEMXHbmft4AACzfQAADIR0/b1mdxzO6xperpuSBneFNdidz728AADnDKZ2+s7eAAAdBUAABG1hRO6L7fyjuOR363b+ydy3O+r7cLzuG+3Ig7wAAB9mRvb5PtzP2/AAARN9AAAyvrEzumZ3647lmd+zO9Rmv/zvNu3C876zt7n28AACAxqLO/XHeAAAWDUAAAQKpH26L7fPzu353n87r+d8gO8AABaDLV25aHeAAAyhkAABtDMt26aHfWdvIp3ynbzCd9hO477dgZuWZrn470idwsO4AnfZzvU+3ltLpDN9d/cBAALDvBh3vC76ztwt28EXd4ZuO/npGb4jW2txitHeSduF53gAAI31rO3/C7zodzfO477eMzvmZ3t87xs1/RrfcLP4zuhJ3tXbyPtyH27TncN9vAAA1Cqt9vk+3t47gXt+uO6JneAAAxBhZncd9vxJ3gAAITNau3IfbyTtx72+97fWduJR3xs72rt97O9T7fszvJM37dLsTW0JNnxnerdump3onb6Cd+wO8GHel9vK+3Mi7n35zPS8BACAABwY0AABZ2in29T7cpyW4l3/vbpCd6Z2/ZHeCLuO+3gAAWDlSB3AvblRd4AAHh9Jvt0EO+r7fATu/F3Avb3P59fnHMXdWLubF3d47x8d+LO8nGuITuoZ3Wi7+Bd4gu90XfBLvgW382N0BlyzQjE4dKLvJF34i7oYd/N25vnf9LvejiOzj5bRDXO7SHd8jvI+3ZWgCnt0324F7d8dvk+3iPbgXt2fO7aXe9DvPO39Q7uLt5oO9E7evzvTO3kfbk2d2kO5bnd0Tvis3l/z+/M35VcH7fsjuW53di79gdxUu+cXfsWu1CzQk76zt4AAH5jQAAKaKhS7wAADH6TfbwAAEEMDi7wAAAByRPbwAAFIMgAAMyjgu3HC79cd2Ja4wkvsDutZ3aPb3WdzP28AACMUTLO5T7fV9uuu3+vbz0d5H25IBddY1wAALy7xbN5v/Y4tcEjVIl30S7z5dz8u7b7eqzufZ3BI1Y0dwqO6oHexdvTl3/i70ed3TO877enZuADzJs7gXtwSNUJXdXZvIsnoB5wEAHsu4OXdHLu353Hc72rt4AAFLjc+d4Uu8AABbDOSu8AACxip5O9C7dF9ugV3oK7yFd9Cu6wnc4Tu/s3EY9n/c4hO+2HdWzvqV3Ys7sHNzSU9bosJTukDz7y775dwEC8AACX7iou+yteAgBAAATgzBdvrV30QLoSbIAAFVLQAAGGKRVViXt79rbRHdQ9vMlL6g7nJS8mO+DcfOjvRSX6g735dwCu6kHe29vy5363bsid6LO+3He7jvAZ3VVV7zt6Z28E7eBduR+3Ao76zt4AAESjL+d8F26L7dSrvTO3zs7u3t4AACvAwAAIyuAvbr5d4AAGylazt4AAHXlPjt/x2/1nea22fx3qfb1Rd5J26VnedDvgAAgAAF7M1p3vzL8Gd8F28AAAtDPyO/1zfosvXlrKg74wdxbm6ltoadvMl3qi72rt4AAD/tGvtyOu+yAdS21VF3Lub80p89a+BnfMTubO3DnbmvtyYu6L7fGju6F3lnbwAANsMq3b1Cd6329T7eR9vLO3Mq7yzt6uO8AAA9RsF24F7cN9vke3iXb+od1F28SHc3zuVgXVXbsLtxRO707eSdvAAAQBkw9vBh3Avb6vt4AACezY7t2uO8AADTmkX24fXdPruKJ33q71G12+u9C7cQbvn13M/bwAAEdp8nbwLtzz256ncvrvmmXgAAJYY9e3L8oDTt5Gu+s7dSDvQu3gAAb7lAAA8IaSdv8F3gAAASNrO3V07pod+t29g3fKdvkx31nbzodzX2/r7cArvBZ3Y07+0p/secY3fODvN13JC7mjd3Ru+i7dhdvj13kfbircHyO+s7fXru613iID0YmyaWb5HfCbvZi3IqlTom2Ju+vXfKdvnB31nbtDdxhu5Vtf+T2LPHXXb35d5J2/j7exjuUx3b67oCd0X2+j7emTvUh3wm7ircOJu9C7fqbvJN3y7LodcK2pas3dbjudx3v87+nt0T2+s7eAAA2JUAAAKaSxu8nndt9uON3RetohAEGO8AACQmm2u59b61dvmyz4m7lDdy8O4BHeAAAV62s7eAAAvtTSXfsbuO+3CqlSLd4F24wHeDDvgt3ba79jdwhy/s3emcrrO3gAAd1Tr13FE74td7V26y3fJbvXIKGW75Ht1lu943eICLCt3167jTd0dVcAAB7aoSO7C3dqaWlN3KG71zdx5u+83cTzvm+3fm770p3WA/03d69vix3Tg73jd0X2/43dvruLN3EHgJTdxpu5LBcT2u+PHws4Drd4F25h7dSLv5u3Rfbn0803248Hfbrvd138G7pvtwN2/85cdk38hH4Y5njd9X25W3cadvAAAEP8Rbvr13Tm7zbd/p2/U7eAABIf6L7cOcW+MAM2729d8j26M3fV9vAu3G079cdytu86HcQzOHoz9G795d7T2+M3f0bv4N3oXboMd9v2/s7dN9vAAAtFFpLuNN3mvTgtd7CO8k7eITuEZ3vRbusF1GxcwoBWbuGN3ZXblMd39u+mrcnAWqtLVm78+d3x24nndN9v4N3Ga7rNd0X28AACPtuuO407fWdvL53rc757l5Knf60tE7uSd39fbpvtwt27pXdhdvMl3gAAQMjAAABL7Wdvhp3o07sR19H49+2uzgu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43oAAC1sIAAC7sNqKFGih4AAIAAA5sIAAALsIqKGAAAy7D2ihgAAOWw4AANKKGAAAQbCeihpooeAACAAAibCAAAWbBOihgAACuw4AADGKHaihKooWqKEDt+pW5jGKG+ihyoofKKG6ihkYoYAAAFsLKKGKihkYocmKGpihvrtjGKHqihpYob94HqihlooYGKHqihToocqKFJihKYoaqKGsA+twhLKKGAAAm7C6ih4AANWKG1ih9YoY2KGVihlqTh/gHgAA7YoZ2KHdihdYoQ2KElihzYoVkJ67UeAXnpmxaAAAkbCAAA9bCWih2oodaKHBihnooW2KH9ihpPgeqKG6ih8YoVuKGBih9ooV6KHrih1oof2KFhpOC4oUuKErih+4oWuKEbihQwnpmxZbihO4obqKGrihh4oaaKH9ihauVvaKExih/YoaFU6WquOX1rED7gX2v1Hj2sEA0eAR/vd1bXteMarkXo6pQh76AHx5aYiexarm+160d+H7Xr8gFvlO1ZzhKJ5/teVwPgwL7LQha75t2+5F+BF0IZCD4SoB8HXiv4EQfuiSZncn4aV4a5DnQValNOh5Dmxc5NNOs4oU6KEeih8ooZaKGAAAg7BGihsoob0L5UShtEofRKEqwhQk2PaKGAAADbBaihpooY6KFHoBjHXiNxYxihbYoYGKHKihgYofGKGgUOToofOKFwDu8oodxKFtN29ood6KHiShGwvkAFbzihMYofGKGAAA1bApbB5EoR6KFiShnHXvKKFGih+ooQmKHyihgAAFuw84oX6KGmihRooeEY4xihsooUaKHJihIkoflsFttmuood6KExihloobKKFLihgAAGuwVkoZhgGeihgAADuwiooYmKGKihRoofaKHmihEpvgtxbqihRoocGKGuih2ooTGKEBShcpvkPIEogWmYoSqKE5ihXYoduKGAAAbbCWihUkoeXCEcgAeYoZaKH1ihOooTGKFJihWYoTmKGRShPVzrKKH6ShpoodqKE9GOMYoVqKHLihJkoTGKEmihMYoVJKEq32gAAO2wRooYAABDsEaKHyihByjneD5I6+w8IWT15NFWGPtoqKFSShzdHuPUGMPmndHvPUHBMenqfgoFYBdeyPfiWb5E6+eHkpfUF8je3oNjjsGFden5TgpD6qQ+XC3rOb6yIha9HjDgE1BeF0njot6h3OZOA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";const {react, reactDOM, excalidrawLib} = window.eval.call(window, `(function() {${LZString.decompressFromBase64(EXCALIDRAW_PACKAGES)};return {react:React, reactDOM:ReactDOM, excalidrawLib: ExcalidrawLib};})();`);const PLUGIN_VERSION="1.7.29";function _interopNamespace(e){if(e&&e.__esModule)return e;var A=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(A,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),A.default=e,Object.freeze(A)}var React__namespace=_interopNamespace(React);let random$1=e=>crypto.getRandomValues(new Uint8Array(e)),customRandom=(e,A,t)=>{let n=(2<{let r="";for(;;){let A=t(i),s=i;for(;s--;)if(r+=e[A[s]&n]||"",r.length===a)return r}}},customAlphabet=(e,A=21)=>customRandom(e,A,random$1),nanoid$1=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce(((e,A)=>e+((A&=63)<36?A.toString(36):A<62?(A-26).toString(36).toUpperCase():A>62?"-":"_")),"");function JSON_parse(e){return JSON.parse(e.replaceAll("[","["))}const isDarwin=/Mac|iPod|iPhone|iPad/.test(window.navigator.platform),CTRL_OR_CMD=isDarwin?"metaKey":"ctrlKey",nanoid=customAlphabet("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",8),KEYCODE={ESC:27},PLUGIN_ID="obsidian-excalidraw-plugin",SCRIPT_INSTALL_CODEBLOCK="excalidraw-script-install",SCRIPT_INSTALL_FOLDER="Downloaded",fileid=customAlphabet("1234567890abcdef",40),REG_LINKINDEX_INVALIDCHARS=/[<>:"\\|?*#]/g,REG_BLOCK_REF_CLEAN=/[!"#$%&()*+,.:;<=>?@^`{|}~\/\[\]\\]/g,IMAGE_TYPES=["jpeg","jpg","png","gif","svg","webp","bmp","ico"],EXPORT_TYPES=["svg","dark.svg","light.svg","png","dark.png","light.png"],MAX_IMAGE_SIZE=500,FRONTMATTER_KEY="excalidraw-plugin",FRONTMATTER_KEY_EXPORT_TRANSPARENT="excalidraw-export-transparent",FRONTMATTER_KEY_EXPORT_DARK="excalidraw-export-dark",FRONTMATTER_KEY_EXPORT_SVGPADDING="excalidraw-export-svgpadding",FRONTMATTER_KEY_EXPORT_PADDING="excalidraw-export-padding",FRONTMATTER_KEY_EXPORT_PNGSCALE="excalidraw-export-pngscale",FRONTMATTER_KEY_CUSTOM_PREFIX="excalidraw-link-prefix",FRONTMATTER_KEY_CUSTOM_URL_PREFIX="excalidraw-url-prefix",FRONTMATTER_KEY_CUSTOM_LINK_BRACKETS="excalidraw-link-brackets",FRONTMATTER_KEY_ONLOAD_SCRIPT="excalidraw-onload-script",FRONTMATTER_KEY_LINKBUTTON_OPACITY="excalidraw-linkbutton-opacity",FRONTMATTER_KEY_DEFAULT_MODE="excalidraw-default-mode",FRONTMATTER_KEY_FONT="excalidraw-font",FRONTMATTER_KEY_FONTCOLOR="excalidraw-font-color",FRONTMATTER_KEY_BORDERCOLOR="excalidraw-border-color",FRONTMATTER_KEY_MD_STYLE="excalidraw-css",FRONTMATTER_KEY_AUTOEXPORT="excalidraw-autoexport",LOCAL_PROTOCOL="md://",VIEW_TYPE_EXCALIDRAW="excalidraw",ICON_NAME="excalidraw-icon",RERENDER_EVENT="excalidraw-embed-rerender",BLANK_DRAWING='{"type":"excalidraw","version":2,"source":"https://excalidraw.com","elements":[],"appState":{"gridSize":null,"viewBackgroundColor":"#ffffff"}}',DARK_BLANK_DRAWING='{"type":"excalidraw","version":2,"source":"https://excalidraw.com","elements":[],"appState":{"theme":"dark","gridSize":null,"viewBackgroundColor":"#ffffff"}}',FRONTMATTER=["---","","excalidraw-plugin: parsed","tags: [excalidraw]","","---","==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==","",""].join("\n"),EMPTY_MESSAGE="Hit enter to create a new drawing",TEXT_DISPLAY_PARSED_ICON_NAME="quote-glyph",TEXT_DISPLAY_RAW_ICON_NAME="presentation",FULLSCREEN_ICON_NAME="fullscreen",SCRIPTENGINE_ICON_NAME="ScriptEngine",COLOR_NAMES=new Map;COLOR_NAMES.set("aliceblue","#f0f8ff"),COLOR_NAMES.set("antiquewhite","#faebd7"),COLOR_NAMES.set("aqua","#00ffff"),COLOR_NAMES.set("aquamarine","#7fffd4"),COLOR_NAMES.set("azure","#f0ffff"),COLOR_NAMES.set("beige","#f5f5dc"),COLOR_NAMES.set("bisque","#ffe4c4"),COLOR_NAMES.set("black","#000000"),COLOR_NAMES.set("blanchedalmond","#ffebcd"),COLOR_NAMES.set("blue","#0000ff"),COLOR_NAMES.set("blueviolet","#8a2be2"),COLOR_NAMES.set("brown","#a52a2a"),COLOR_NAMES.set("burlywood","#deb887"),COLOR_NAMES.set("cadetblue","#5f9ea0"),COLOR_NAMES.set("chartreuse","#7fff00"),COLOR_NAMES.set("chocolate","#d2691e"),COLOR_NAMES.set("coral","#ff7f50"),COLOR_NAMES.set("cornflowerblue","#6495ed"),COLOR_NAMES.set("cornsilk","#fff8dc"),COLOR_NAMES.set("crimson","#dc143c"),COLOR_NAMES.set("cyan","#00ffff"),COLOR_NAMES.set("darkblue","#00008b"),COLOR_NAMES.set("darkcyan","#008b8b"),COLOR_NAMES.set("darkgoldenrod","#b8860b"),COLOR_NAMES.set("darkgray","#a9a9a9"),COLOR_NAMES.set("darkgreen","#006400"),COLOR_NAMES.set("darkkhaki","#bdb76b"),COLOR_NAMES.set("darkmagenta","#8b008b"),COLOR_NAMES.set("darkolivegreen","#556b2f"),COLOR_NAMES.set("darkorange","#ff8c00"),COLOR_NAMES.set("darkorchid","#9932cc"),COLOR_NAMES.set("darkred","#8b0000"),COLOR_NAMES.set("darksalmon","#e9967a"),COLOR_NAMES.set("darkseagreen","#8fbc8f"),COLOR_NAMES.set("darkslateblue","#483d8b"),COLOR_NAMES.set("darkslategray","#2f4f4f"),COLOR_NAMES.set("darkturquoise","#00ced1"),COLOR_NAMES.set("darkviolet","#9400d3"),COLOR_NAMES.set("deeppink","#ff1493"),COLOR_NAMES.set("deepskyblue","#00bfff"),COLOR_NAMES.set("dimgray","#696969"),COLOR_NAMES.set("dodgerblue","#1e90ff"),COLOR_NAMES.set("firebrick","#b22222"),COLOR_NAMES.set("floralwhite","#fffaf0"),COLOR_NAMES.set("forestgreen","#228b22"),COLOR_NAMES.set("fuchsia","#ff00ff"),COLOR_NAMES.set("gainsboro","#dcdcdc"),COLOR_NAMES.set("ghostwhite","#f8f8ff"),COLOR_NAMES.set("gold","#ffd700"),COLOR_NAMES.set("goldenrod","#daa520"),COLOR_NAMES.set("gray","#808080"),COLOR_NAMES.set("green","#008000"),COLOR_NAMES.set("greenyellow","#adff2f"),COLOR_NAMES.set("honeydew","#f0fff0"),COLOR_NAMES.set("hotpink","#ff69b4"),COLOR_NAMES.set("indianred","#cd5c5c"),COLOR_NAMES.set("indigo","#4b0082"),COLOR_NAMES.set("ivory","#fffff0"),COLOR_NAMES.set("khaki","#f0e68c"),COLOR_NAMES.set("lavender","#e6e6fa"),COLOR_NAMES.set("lavenderblush","#fff0f5"),COLOR_NAMES.set("lawngreen","#7cfc00"),COLOR_NAMES.set("lemonchiffon","#fffacd"),COLOR_NAMES.set("lightblue","#add8e6"),COLOR_NAMES.set("lightcoral","#f08080"),COLOR_NAMES.set("lightcyan","#e0ffff"),COLOR_NAMES.set("lightgoldenrodyellow","#fafad2"),COLOR_NAMES.set("lightgrey","#d3d3d3"),COLOR_NAMES.set("lightgreen","#90ee90"),COLOR_NAMES.set("lightpink","#ffb6c1"),COLOR_NAMES.set("lightsalmon","#ffa07a"),COLOR_NAMES.set("lightseagreen","#20b2aa"),COLOR_NAMES.set("lightskyblue","#87cefa"),COLOR_NAMES.set("lightslategray","#778899"),COLOR_NAMES.set("lightsteelblue","#b0c4de"),COLOR_NAMES.set("lightyellow","#ffffe0"),COLOR_NAMES.set("lime","#00ff00"),COLOR_NAMES.set("limegreen","#32cd32"),COLOR_NAMES.set("linen","#faf0e6"),COLOR_NAMES.set("magenta","#ff00ff"),COLOR_NAMES.set("maroon","#800000"),COLOR_NAMES.set("mediumaquamarine","#66cdaa"),COLOR_NAMES.set("mediumblue","#0000cd"),COLOR_NAMES.set("mediumorchid","#ba55d3"),COLOR_NAMES.set("mediumpurple","#9370d8"),COLOR_NAMES.set("mediumseagreen","#3cb371"),COLOR_NAMES.set("mediumslateblue","#7b68ee"),COLOR_NAMES.set("mediumspringgreen","#00fa9a"),COLOR_NAMES.set("mediumturquoise","#48d1cc"),COLOR_NAMES.set("mediumvioletred","#c71585"),COLOR_NAMES.set("midnightblue","#191970"),COLOR_NAMES.set("mintcream","#f5fffa"),COLOR_NAMES.set("mistyrose","#ffe4e1"),COLOR_NAMES.set("moccasin","#ffe4b5"),COLOR_NAMES.set("navajowhite","#ffdead"),COLOR_NAMES.set("navy","#000080"),COLOR_NAMES.set("oldlace","#fdf5e6"),COLOR_NAMES.set("olive","#808000"),COLOR_NAMES.set("olivedrab","#6b8e23"),COLOR_NAMES.set("orange","#ffa500"),COLOR_NAMES.set("orangered","#ff4500"),COLOR_NAMES.set("orchid","#da70d6"),COLOR_NAMES.set("palegoldenrod","#eee8aa"),COLOR_NAMES.set("palegreen","#98fb98"),COLOR_NAMES.set("paleturquoise","#afeeee"),COLOR_NAMES.set("palevioletred","#d87093"),COLOR_NAMES.set("papayawhip","#ffefd5"),COLOR_NAMES.set("peachpuff","#ffdab9"),COLOR_NAMES.set("peru","#cd853f"),COLOR_NAMES.set("pink","#ffc0cb"),COLOR_NAMES.set("plum","#dda0dd"),COLOR_NAMES.set("powderblue","#b0e0e6"),COLOR_NAMES.set("purple","#800080"),COLOR_NAMES.set("rebeccapurple","#663399"),COLOR_NAMES.set("red","#ff0000"),COLOR_NAMES.set("rosybrown","#bc8f8f"),COLOR_NAMES.set("royalblue","#4169e1"),COLOR_NAMES.set("saddlebrown","#8b4513"),COLOR_NAMES.set("salmon","#fa8072"),COLOR_NAMES.set("sandybrown","#f4a460"),COLOR_NAMES.set("seagreen","#2e8b57"),COLOR_NAMES.set("seashell","#fff5ee"),COLOR_NAMES.set("sienna","#a0522d"),COLOR_NAMES.set("silver","#c0c0c0"),COLOR_NAMES.set("skyblue","#87ceeb"),COLOR_NAMES.set("slateblue","#6a5acd"),COLOR_NAMES.set("slategray","#708090"),COLOR_NAMES.set("snow","#fffafa"),COLOR_NAMES.set("springgreen","#00ff7f"),COLOR_NAMES.set("steelblue","#4682b4"),COLOR_NAMES.set("tan","#d2b48c"),COLOR_NAMES.set("teal","#008080"),COLOR_NAMES.set("thistle","#d8bfd8"),COLOR_NAMES.set("tomato","#ff6347"),COLOR_NAMES.set("turquoise","#40e0d0"),COLOR_NAMES.set("violet","#ee82ee"),COLOR_NAMES.set("wheat","#f5deb3"),COLOR_NAMES.set("white","#ffffff"),COLOR_NAMES.set("whitesmoke","#f5f5f5"),COLOR_NAMES.set("yellow","#ffff00"),COLOR_NAMES.set("yellowgreen","#9acd32");const DEFAULT_MD_EMBED_CSS='.snw-reference{display: none;}.excalidraw-md-host{padding:0px 10px}.excalidraw-md-footer{height:5px}foreignObject{background-color:transparent}p{display:block;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0px;margin-inline-end:0px;color:inherit}table,tr,th,td{color:inherit;border:1px solid;border-collapse:collapse;padding:3px}th{font-weight:bold;border-bottom:double;background-color:silver}.copy-code-button{display:none}code[class*=language-],pre[class*=language-]{color:#393a34;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;font-size:.9em;line-height:1.2em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre>code[class*=language-]{font-size:1em}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{background:#C1DEF1}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{background:#C1DEF1}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;background-color:#0000001a}:not(pre)>code[class*=language-]{padding:.2em;padding-top:1px;padding-bottom:1px;background:#f8f8f8;border:1px solid #dddddd}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:green;font-style:italic}.token.namespace{opacity:.7}.token.string{color:#a31515}.token.punctuation,.token.operator{color:#393a34}.token.url,.token.symbol,.token.number,.token.boolean,.token.variable,.token.constant,.token.inserted{color:#36acaa}.token.atrule,.token.keyword,.token.attr-value,.language-autohotkey .token.selector,.language-json .token.boolean,.language-json .token.number,code[class*=language-css]{color:#00f}.token.function{color:#393a34}.token.deleted,.language-autohotkey .token.tag{color:#9a050f}.token.selector,.language-autohotkey .token.keyword{color:#00009f}.token.important{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.class-name,.language-json .token.property{color:#2b91af}.token.tag,.token.selector{color:maroon}.token.attr-name,.token.property,.token.regex,.token.entity{color:red}.token.directive.tag .tag{background:#ffff00;color:#393a34}.line-numbers.line-numbers .line-numbers-rows{border-right-color:#a5a5a5}.line-numbers .line-numbers-rows>span:before{color:#2b91af}.line-highlight.line-highlight{background:rgba(193,222,241,.2);background:-webkit-linear-gradient(left,rgba(193,222,241,.2) 70%,rgba(221,222,241,0));background:linear-gradient(to right,rgba(193,222,241,.2) 70%,rgba(221,222,241,0))}blockquote{ font-style:italic;background-color:rgb(46,43,42,0.1);margin:0;margin-left:1em;border-radius:0 4px 4px 0;border:1px solid hsl(0,80%,32%);border-left-width:8px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;padding:10px 20px;margin-inline-start:30px;margin-inline-end:30px;}',SCRIPTENGINE_ICON='',DISK_ICON_NAME="disk",DISK_ICON='',PNG_ICON_NAME="save-png",PNG_ICON='',SVG_ICON_NAME="save-svg",SVG_ICON='',EXCALIDRAW_ICON='',VIRGIL_DATAURL="data:application/font-woff;charset=utf-8;base64,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",VIRGIL_FONT=` @font-face {font-family: "Virgil";src: url("${VIRGIL_DATAURL}") format("woff2");}`,CASCADIA_FONT=' @font-face {font-family: "Cascadia";src: url("data:application/font-woff;charset=utf-8;base64,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XVtdpV2uXdBeAV4OXmBecl6GXpteyl74X1Vfsl/PX+xgDWAtYDVgPWBQYGNga2B9YIZgj2CcYKlgtmDLYOFg7GElYVthfmGgYa1hwmHdYgNiN2JVYoli0GL6Yzpjc2PbZINkrGUYZUBlTWVeZaNl8GX9Zi9mPGZNZrdm/mdPZ59nq2e4Z8hoAWhDaE9oW2hoaMto12jnaPNo/2mBaipqmGqlarFrRWtSa79sG2wnbFRskGzBbM5s32z7bQ5tF20fbR9tH20fbX9tzm4ebp9u+W9jb75wGnBgcKRw1HEucZRx1nIxcoly1HMHc1Nzm3P+dEJ0rXTvdR11YXWIdcl2LHZrdnN2e3aidqp2zHbwdwd3LHc/d213qHfGd/14JHhLeHt4rnjWeON5EnkpeUd5nHnBefJ5+noCeiV6T3pyenp6hXqcewR7kXu5e+R8Dnw3fHF8qnztfPp9B30UfSF9Ln07fUh9VX1ifW99fH2JfZZ9o32wfb19yn3YfeZ9834Bfg5+Hn4yfkJ+U35hfnd+h37Vf2iAj4CrgNeBDYEzgVmBgIGmgbmBzYH4gh2CUoKHgr2C84M1g/iEM4SIhK6Ey4T9hR6FQIVbhXaFiYWcha+FwoXSheuGAoYZhjCGR4Zoho+GnYazhsGGzobjhviHBYcah0yHaIgsiE6IcIi1iNuJA4lciWqJgImViaqJvYnRie6KDIosikyKbIqBio+KpIqyir+KzIrZiueK+4sPiySLOYtdi3GLhIuRi5+Ls4vIi9aL44vxi/+MFIwojD2MUoxfjGyMeYyFjJiMq4y/jNKM840NjSeNO41bjXSNjo2ijc6N7o4PjieOPY5TjmaOd46Njp6OtI7NjuGO8o8JjxqPMY9Lj2WPe4+Rj6aPvI/Kj96P75AAkA6QHJAukE6QdJCCkJ6QvJDKkN6Q75ECkRORIZE7kU+RY5F+kZSRqZHCkdiR7pIIkiSSQJJckniSlJK3ksiS2JLrkwCTDpMhkzKTQ5NQk12TcJOMk6+TvJPVk/GT/5QSlCSUNJRElFKUa5R+lJGUrJTClNiU8ZUHlR2VN5VTlWqVf5WUla2VwJXWleaV/JYNlieWOpZQlmCWdpaHlqCWtJbJluyXBZcflziXTJdgl3qXjpeil8WX3Zf1mGqYsZkFmTmZg5mvmcaZ5Zpamr6bHZtFm7icHZyAnN6dG52E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") format("woff2");}';class Random{constructor(e){this.seed=e}next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)))/2**31:Math.random()}}var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},lzString={exports:{}};function splitFolderAndFilename(e){const A=e.lastIndexOf("/"),t=-1==A?e:e.substring(A+1);return{folderpath:obsidian.normalizePath(e.substring(0,A)),filename:t,basename:t.replace(/\.[^/.]+$/,"")}}function download(e,A,t){const n=document.createElement("a");n.setAttribute("href",(e?`${e},`:"")+A),n.setAttribute("download",t),n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)}function getIMGFilename(e,A){return`${e.substring(0,e.lastIndexOf("."))}.${A}`}function getNewUniqueFilepath(e,A,t){let n=obsidian.normalizePath(`${t}/${A}`),i=e.getAbstractFileByPath(n),a=0;const r=A.endsWith(".excalidraw.md")?".excalidraw.md":A.slice(A.lastIndexOf("."));for(;i;)n=obsidian.normalizePath(`${t}/${A.slice(0,A.lastIndexOf(r))}_${a}${r}`),a++,i=e.getAbstractFileByPath(n);return n}function getDrawingFilename(e){return e.drawingFilenamePrefix+(""!==e.drawingFilenameDateTime?window.moment().format(e.drawingFilenameDateTime):"")+(e.compatibilityMode?".excalidraw":e.useExcalidrawExtension?".excalidraw.md":".md")}function getEmbedFilename(e,A){return(A.drawingEmbedPrefixWithFilename?e:"")+A.drawingFilnameEmbedPostfix+(""!==A.drawingFilenameDateTime?window.moment().format(A.drawingFilenameDateTime):"")+(A.compatibilityMode?".excalidraw":A.useExcalidrawExtension?".excalidraw.md":".md")}async function checkAndCreateFolder(e){const A=app.vault;e=obsidian.normalizePath(e);const t=A.getAbstractFileByPathInsensitive(e);t&&t instanceof obsidian.TFolder||(t&&t instanceof obsidian.TFile&&new obsidian.Notice(`The folder cannot be created because it already exists as a file: ${e}.`),await A.createFolder(e))}!function(e){var A=function(){var e=String.fromCharCode,A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",n={};function i(e,A){if(!n[e]){n[e]={};for(var t=0;t>>8,t[2*n+1]=r%256}return t},decompressFromUint8Array:function(A){if(null==A)return a.decompress(A);for(var t=new Array(A.length/2),n=0,i=t.length;n>=1}else{for(i=1,n=0;n>=1}0==--d&&(d=Math.pow(2,u),u++),delete s[c]}else for(i=r[c],n=0;n>=1;0==--d&&(d=Math.pow(2,u),u++),r[l]=h++,c=String(o)}if(""!==c){if(Object.prototype.hasOwnProperty.call(s,c)){if(c.charCodeAt(0)<256){for(n=0;n>=1}else{for(i=1,n=0;n>=1}0==--d&&(d=Math.pow(2,u),u++),delete s[c]}else for(i=r[c],n=0;n>=1;0==--d&&(d=Math.pow(2,u),u++)}for(i=2,n=0;n>=1;for(;;){if(p<<=1,w==A-1){g.push(t(p));break}w++}return g.join("")},decompress:function(e){return null==e?"":""==e?null:a._decompress(e.length,32768,(function(A){return e.charCodeAt(A)}))},_decompress:function(A,t,n){var i,a,r,s,o,l,c,d=[],h=4,u=4,g=3,p="",w=[],m={val:n(0),position:t,index:1};for(i=0;i<3;i+=1)d[i]=i;for(r=0,o=Math.pow(2,2),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=n(m.index++)),r|=(s>0?1:0)*l,l<<=1;switch(r){case 0:for(r=0,o=Math.pow(2,8),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=n(m.index++)),r|=(s>0?1:0)*l,l<<=1;c=e(r);break;case 1:for(r=0,o=Math.pow(2,16),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=n(m.index++)),r|=(s>0?1:0)*l,l<<=1;c=e(r);break;case 2:return""}for(d[3]=c,a=c,w.push(c);;){if(m.index>A)return"";for(r=0,o=Math.pow(2,g),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=n(m.index++)),r|=(s>0?1:0)*l,l<<=1;switch(c=r){case 0:for(r=0,o=Math.pow(2,8),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=n(m.index++)),r|=(s>0?1:0)*l,l<<=1;d[u++]=e(r),c=u-1,h--;break;case 1:for(r=0,o=Math.pow(2,16),l=1;l!=o;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=t,m.val=n(m.index++)),r|=(s>0?1:0)*l,l<<=1;d[u++]=e(r),c=u-1,h--;break;case 2:return w.join("")}if(0==h&&(h=Math.pow(2,g),g++),d[c])p=d[c];else{if(c!==u)return null;p=a+a.charAt(0)}w.push(p),d[u++]=a+p.charAt(0),a=p,0==--h&&(h=Math.pow(2,g),g++)}}};return a}();null!=e&&(e.exports=A)}(lzString);const{exportToSvg:exportToSvg,exportToBlob:exportToBlob}=excalidrawLib;let versionUpdateChecked=!1;const checkExcalidrawVersion=async e=>{if(!versionUpdateChecked){versionUpdateChecked=!0;try{const e=async()=>JSON.parse(await obsidian.request({url:"https://api.github.com/repos/zsviczian/obsidian-excalidraw-plugin/releases?per_page=5&page=1"})),A=(await e()).map((e=>({version:e.tag_name,published:new Date(e.published_at)}))).filter((e=>e.version.match(/^\d+\.\d+\.\d+$/))).sort(((e,A)=>A.published-e.published))[0].version;isVersionNewerThanOther(A,PLUGIN_VERSION)&&new obsidian.Notice(`A newer version of Excalidraw is available in Community Plugins.\n\nYou are using ${PLUGIN_VERSION}.\nThe latest is ${A}`)}catch(e){errorlog({where:"Utils/checkExcalidrawVersion",error:e})}setTimeout((()=>versionUpdateChecked=!1),288e5)}};function wrapTextAtCharLength(e,A,t=!1,n=0){if(!A)return e;let i="";if(t){for(const t of e.split("\n")){const e=t.match(new RegExp(`(.){1,${A}}`,"g"));i+=e?`${e.join("\n")}\n`:"\n"}return i.replace(/\n$/,"")}const a=new RegExp(`(.{1,${A}})(\\s+|$\\n?)|([^\\s]{1,${A+n}})(\\s+|$\\n?)?`,"gm"),r=e.matchAll(a);let s;for(;!(s=r.next()).done;){i+=s.value[1]?s.value[1].trimEnd():s.value[3].trimEnd();const e=(s.value[2]?s.value[2].split("\n").length-1:0)+(s.value[4]?s.value[4].split("\n").length-1:0);i+="\n".repeat(e),0===e&&(i+="\n")}return i.replace(/\n$/,"")}new Random(Date.now());const rotate$1=(e,A,t,n,i)=>[(e-t)*Math.cos(i)-(A-n)*Math.sin(i)+t,(e-t)*Math.sin(i)+(A-n)*Math.cos(i)+n],rotatedDimensions=e=>{if(0===e.angle)return[e.x,e.y,e.width,e.height];const A=e.x+e.width/2,t=e.y+e.height/2,[n,i]=rotate$1(e.x,e.y,A,t,e.angle),[a,r]=rotate$1(e.x+e.width,e.y+e.height,A,t,e.angle);return[n{const s=1/t.value;return{x:(e-n)*s-a,y:(A-i)*s-r}},getDataURL=async(e,A)=>new Promise(((t,n)=>{const i=new FileReader;i.onload=()=>{const e=i.result;t(e)},i.onerror=e=>n(e),i.readAsDataURL(new Blob([new Uint8Array(e)],{type:A}))})),getFontDataURL=async(e,A,t,n)=>{let i="",a="",r="";const s=e.metadataCache.getFirstLinkpathDest(A,t);if(s){const A=await e.vault.readBinary(s),t=s.extension.startsWith("woff")?"application/font-woff":"font/truetype";a=null!=n?n:s.basename,r=await getDataURL(A,t),i=` @font-face {font-family: "${a}";src: url("${r}") format("${"ttf"===s.extension?"truetype":s.extension}");}`;const o=i.split(";base64,",2);i=`${o[0]};charset=utf-8;base64,${o[1]}`}return{fontDef:i,fontName:a,dataURL:r}},svgToBase64=e=>`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(e.replaceAll(" "," "))))}`,getBinaryFileFromDataURL=e=>{if(!e)return null;const A=e.matchAll(/base64,(.*)/g).next(),t=window.atob(A.value[1]),n=t.length,i=new Uint8Array(n);for(let e=0;e{var n;try{return await exportToSvg({elements:e.elements,appState:Object.assign({exportBackground:A.withBackground,exportWithDarkMode:!!A.withTheme&&"light"!=(null===(n=e.appState)||void 0===n?void 0:n.theme)},e.appState),files:e.files,exportPadding:t})}catch(e){return null}},getPNG=async(e,A,t,n=1)=>{var i;try{return await exportToBlob({elements:e.elements,appState:Object.assign({exportBackground:A.withBackground,exportWithDarkMode:!!A.withTheme&&"light"!=(null===(i=e.appState)||void 0===i?void 0:i.theme)},e.appState),files:e.files,exportPadding:t,mimeType:"image/png",getDimensions:(e,A)=>({width:e*n,height:A*n,scale:n})})}catch(e){return errorlog({where:"Utils.getPNG",error:e}),null}},getQuickImagePreview=async(e,A,t)=>{if(!e.settings.displayExportedImageIfAvailable)return null;const n=getIMGFilename(A,t),i=e.app.vault.getAbstractFileByPath(n);return i&&i instanceof obsidian.TFile?"png"===t?await e.app.vault.readBinary(i):await e.app.vault.read(i):null},embedFontsInSVG=(e,A)=>{const t=null!=e.querySelector("text[font-family^='Virgil']"),n=null!=e.querySelector("text[font-family^='Cascadia']"),i=null!=e.querySelector("text[font-family^='LocalFont']"),a=e.querySelector("defs");return a&&(n||t||i)&&(a.innerHTML=``),e},getImageSize=async e=>new Promise(((A,t)=>{const n=new Image;n.onload=()=>A({height:n.naturalHeight,width:n.naturalWidth}),n.onerror=t,n.src=e})),scaleLoadedImage=(e,A)=>{let t=!1;if(!A||!e)return{dirty:t,scene:e};for(const n of A){const[A,i]=[n.size.width,n.size.height],a=n.size.width/n.size.height;e.elements.filter((e=>"image"===e.type&&e.fileId===n.id)).forEach((e=>{const[r,s]=[e.width,e.height];if(n.shouldScale){if(a!=r/s){t=!0;const n=Math.sqrt(r*s*i/A),a=Math.sqrt(r*s*A/i);e.height=n,e.width=a,e.y+=(s-n)/2,e.x+=(r-a)/2}}else r===A&&s===i||(t=!0,e.height=i,e.width=A,e.y+=(s-i)/2,e.x+=(r-A)/2)}))}return{dirty:t,scene:e}},setDocLeftHandedMode=(e,A)=>{const t=A.createElement("style");t.id="excalidraw-left-handed",t.textContent=".excalidraw .App-bottom-bar{justify-content:flex-end;}";const n=A.getElementById(t.id);n&&A.head.removeChild(n),e&&A.head.appendChild(t)},setLeftHandedMode=e=>{const A=new Set;app.workspace.iterateAllLeaves((t=>{const n=app.isMobile?document:t.view.containerEl.ownerDocument;n&&(A.has(n)||(A.add(n),setDocLeftHandedMode(e,n)))}))},getLinkParts=(e,A)=>{var t;const n=e.match(/(^[^#\|]*)#?(\^)?([^\|]*)?\|?(\d*)x?(\d*)/);return{original:e,path:A&&""===n[1]?A.path:n[1],isBlockRef:"^"===n[2],ref:null===(t=n[3])||void 0===t?void 0:t.replaceAll(REG_BLOCK_REF_CLEAN,""),width:n[4]?parseInt(n[4]):void 0,height:n[5]?parseInt(n[5]):void 0}},compress=e=>lzString.exports.compressToBase64(e).replace(/(.{64})/g,"$1\n\n"),decompress=e=>lzString.exports.decompressFromBase64(e.replaceAll("\n","").replaceAll("\r","")),hasExportTheme=(e,A)=>{if(A){const t=e.app.metadataCache.getFileCache(A);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-dark"])return!0}return!1},getExportTheme=(e,A,t)=>{if(A){const t=e.app.metadataCache.getFileCache(A);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-dark"])return t.frontmatter["excalidraw-export-dark"]?"dark":"light"}return e.settings.exportWithTheme?t:"light"},hasExportBackground=(e,A)=>{if(A){const t=e.app.metadataCache.getFileCache(A);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-transparent"])return!0}return!1},getWithBackground=(e,A)=>{if(A){const t=e.app.metadataCache.getFileCache(A);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-transparent"])return!t.frontmatter["excalidraw-export-transparent"]}return e.settings.exportWithBackground},getExportPadding=(e,A)=>{if(A){const t=e.app.metadataCache.getFileCache(A);if(!(null==t?void 0:t.frontmatter))return e.settings.exportPaddingSVG;if(null!=t.frontmatter["excalidraw-export-padding"]){const e=parseInt(t.frontmatter["excalidraw-export-padding"]);if(!isNaN(e))return e}if(null!=t.frontmatter["excalidraw-export-svgpadding"]){const e=parseInt(t.frontmatter["excalidraw-export-svgpadding"]);if(!isNaN(e))return e}}return e.settings.exportPaddingSVG},getPNGScale=(e,A)=>{if(A){const t=e.app.metadataCache.getFileCache(A);if((null==t?void 0:t.frontmatter)&&null!=t.frontmatter["excalidraw-export-pngscale"]){const e=parseFloat(t.frontmatter["excalidraw-export-pngscale"]);if(!isNaN(e)&&e>0)return e}}return e.settings.pngExportScale},isVersionNewerThanOther=(e,A)=>{const t=e.match(/(\d*)\.(\d*)\.(\d*)/),n=A.match(/(\d*)\.(\d*)\.(\d*)/);return Boolean(t&&4===t.length&&n&&4===n.length&&!(isNaN(parseInt(t[1]))||isNaN(parseInt(t[2]))||isNaN(parseInt(t[3])))&&!(isNaN(parseInt(n[1]))||isNaN(parseInt(n[2]))||isNaN(parseInt(n[3])))&&(parseInt(t[1])>parseInt(n[1])||parseInt(t[1])>=parseInt(n[1])&&parseInt(t[2])>parseInt(n[2])||parseInt(t[1])>=parseInt(n[1])&&parseInt(t[2])>=parseInt(n[2])&&parseInt(t[3])>parseInt(n[3])))},getEmbeddedFilenameParts=e=>{const A=null==e?void 0:e.match(/([^#\^]*)((#\^)(group=|area=)?([^\|]*)|(#)(group=|area=)?([^\^\|]*))(.*)/);return A?{filepath:A[1],hasBlockref:Boolean(A[3]),hasGroupref:"group="===A[4]||"group="===A[7],hasArearef:"area="===A[4]||"area="===A[7],blockref:A[5],hasSectionref:Boolean(A[6]),sectionref:A[8],linkpartReference:A[2],linkpartAlias:A[9]}:{filepath:e,hasBlockref:!1,hasGroupref:!1,hasArearef:!1,blockref:"",hasSectionref:!1,sectionref:"",linkpartReference:"",linkpartAlias:""}},fragWithHTML=e=>createFragment((A=>A.createDiv().innerHTML=e)),errorlog=e=>{console.error(Object.assign({plugin:"Excalidraw"},e))},sleep$1=async e=>new Promise((A=>setTimeout(A,e))),log=console.log.bind(window.console);console.log.bind(window.console);const getContainerElement=(e,A)=>{var t;return e&&e.containerId&&null!==(t=A.elements.filter((A=>A.id===e.containerId))[0])&&void 0!==t?t:null},getParentOfClass=(e,A)=>{var t;let n=e.parentElement;for(;n&&!(n instanceof window.HTMLBodyElement)&&!n.classList.contains(A);)n=n.parentElement;return(null===(t=null==n?void 0:n.classList)||void 0===t?void 0:t.contains(A))?n:null},getNewOrAdjacentLeaf=(e,A)=>{const t=A.id,n=app.workspace.getLayout(),i=e=>e.children.filter((e=>"leaf"!==e.type)).map((e=>i(e))).flat().concat(e.children.filter((e=>"leaf"===e.type)).map((e=>e.id))),a=i(n.main),r=n.main&&a.contains(t)?"main":n.floating&&i(n.floating).contains(t)?"popout":n.left&&i(n.left).contains(t)?"left":n.right&&i(n.right).contains(t)?"right":"hover",s=()=>{var e;let t=app.workspace.getMostRecentLeaf();return t&&t!==A&&(null===(e=t.view)||void 0===e?void 0:e.containerEl.ownerDocument)===document||(t=null,a.forEach((e=>{var n;const i=app.workspace.getLeafById(e);!t&&(null===(n=i.view)||void 0===n?void 0:n.navigation)&&A!==i&&(t=i)}))),t};if(e.settings.openInMainWorkspace||["main","left","right"].contains(r)){if(!e.settings.openInAdjacentPane){if("main"===r)return app.workspace.createLeafBySplit(A);const e=s();return e?"empty"===e.view.getViewType()?e:app.workspace.createLeafBySplit(e):app.workspace.getLeaf(!0)}const t=s();return null!=t?t:app.workspace.getLeaf(!0)}if(!e.settings.openInAdjacentPane)return app.workspace.createLeafBySplit(A);if("hover"===r){const t=new Set;return app.workspace.iterateAllLeaves((e=>{e!==A&&A.containerEl.parentElement===e.containerEl.parentElement&&t.add(e)})),0===t.size?e.app.workspace.createLeafBySplit(A):Array.from(t)[0]}if("popout"===r){const e=new Set;return app.workspace.iterateAllLeaves((t=>{t!==A&&t.view.navigation&&t.view.containerEl.ownerDocument===A.view.containerEl.ownerDocument&&e.add(t)})),0===e.size?app.workspace.createLeafBySplit(A):Array.from(e)[0]}return e.app.workspace.createLeafBySplit(A)},getAttachmentsFolderAndFilePath=async(e,A,t)=>{let n=e.vault.getConfig("attachmentFolderPath");if(n&&n.startsWith("./")){const e=`${splitFolderAndFilename(A).folderpath}/`;n=obsidian.normalizePath(e+n.substring(2))}return n&&"/"!==n||(n=""),await checkAndCreateFolder(n),{folder:n,filepath:obsidian.normalizePath(""===n?t:`${n}/${t}`)}},isObsidianThemeDark=()=>document.body.classList.contains("theme-dark");var ar={},cz={},da={},de={},en={INSTALL_SCRIPT:"Install this script",UPDATE_SCRIPT:"An update is available - Click to install",CHECKING_SCRIPT:"Checking if a newer version is available - Click to reinstall now",UNABLETOCHECK_SCRIPT:"Update check was unsuccessful - Click to reinstall now",UPTODATE_SCRIPT:"Script is installed and up to date - Click to reinstall now",OPEN_AS_EXCALIDRAW:"Open as Excalidraw Drawing",TOGGLE_MODE:"Toggle between Excalidraw and Markdown mode",CONVERT_NOTE_TO_EXCALIDRAW:"Convert empty note to Excalidraw Drawing",CONVERT_EXCALIDRAW:"Convert *.excalidraw to *.md files",CREATE_NEW:"New Excalidraw drawing",CONVERT_FILE_KEEP_EXT:"*.excalidraw => *.excalidraw.md",CONVERT_FILE_REPLACE_EXT:"*.excalidraw => *.md (Logseq compatibility)",DOWNLOAD_LIBRARY:"Export stencil library as an *.excalidrawlib file",OPEN_EXISTING_NEW_PANE:"Open an existing drawing - IN A NEW PANE",OPEN_EXISTING_ACTIVE_PANE:"Open an existing drawing - IN THE CURRENT ACTIVE PANE",TRANSCLUDE:"Transclude (embed) a drawing",TRANSCLUDE_MOST_RECENT:"Transclude (embed) the most recently edited drawing",TOGGLE_LEFTHANDED_MODE:"Toggle left-handed mode",NEW_IN_NEW_PANE:"Create a new drawing - IN A NEW PANE",NEW_IN_ACTIVE_PANE:"Create a new drawing - IN THE CURRENT ACTIVE PANE",NEW_IN_POPOUT_WINDOW:"Create a new drawing - IN A POPOUT WINDOW",NEW_IN_NEW_PANE_EMBED:"Create a new drawing - IN A NEW PANE - and embed into active document",NEW_IN_ACTIVE_PANE_EMBED:"Create a new drawing - IN THE CURRENT ACTIVE PANE - and embed into active document",NEW_IN_POPOUT_WINDOW_EMBED:"Create a new drawing - IN A POPOUT WINDOW - and embed into active document",EXPORT_SVG:"Save as SVG next to the current file",EXPORT_PNG:"Save as PNG next to the current file",TOGGLE_LOCK:"Toggle Text Element edit RAW/PREVIEW",DELETE_FILE:"Delete selected Image or Markdown file from Obsidian Vault",INSERT_LINK_TO_ELEMENT:"Copy markdown link for selected element to clipboard. CTRL/CMD+Click to copy group link. SHIFT+click to copy an area link.",INSERT_LINK_TO_ELEMENT_GROUP:"Copy 'group=' markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_AREA:"Copy 'area=' markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_NORMAL:"Copy markdown link for selected element to clipboard.",INSERT_LINK_TO_ELEMENT_ERROR:"Select a single element in the scene",INSERT_LINK_TO_ELEMENT_READY:"Link is READY and available on the clipboard",INSERT_LINK:"Insert link to file",INSERT_IMAGE:"Insert image or Excalidraw drawing from your vault",IMPORT_SVG:"Import an SVG file as Excalidraw strokes (limited SVG support, TEXT currently not supported)",INSERT_MD:"Insert markdown file from vault",INSERT_LATEX:"Insert LaTeX formula (e.g. \\binom{n}{k} = \\frac{n!}{k!(n-k)!})",ENTER_LATEX:"Enter a valid LaTeX expression",READ_RELEASE_NOTES:"Read latest release notes",TRAY_MODE:"Toggle property-panel tray-mode",SEARCH:"Search for text in drawing",RESET_IMG_TO_100:"Set selected image element size to 100% of original",TEMPORARY_DISABLE_AUTOSAVE:"Disable autosave until next time Obsidian starts (only set this if you know what you are doing)",TEMPORARY_ENABLE_AUTOSAVE:"Enable autosave",INSTALL_SCRIPT_BUTTON:"Install or update Excalidraw Scripts",OPEN_AS_MD:"Open as Markdown",SAVE_AS_PNG:"Save as PNG into Vault (CTRL/CMD+CLICK to export)",SAVE_AS_SVG:"Save as SVG into Vault (CTRL/CMD+CLICK to export)",OPEN_LINK:"Open selected text as link\n(SHIFT+CLICK to open in a new pane)",EXPORT_EXCALIDRAW:"Export to an .Excalidraw file",LINK_BUTTON_CLICK_NO_TEXT:"Select a an ImageElement, or select a TextElement that contains an internal or external link.\nSHIFT CLICK this button to open the link in a new pane.\nCTRL/CMD CLICK the Image or TextElement on the canvas has the same effect!",FILENAME_INVALID_CHARS:'File name cannot contain any of the following characters: * " \\ < > : | ? #',FILE_DOES_NOT_EXIST:"File does not exist. Hold down ALT (or ALT+SHIFT) and CLICK link button to create a new file.",FORCE_SAVE:"Save (will also update transclusions)",RAW:"Change to PREVIEW mode (only effects text-elements with links or transclusions)",PARSED:"Change to RAW mode (only effects text-elements with links or transclusions)",NOFILE:"Excalidraw (no file)",COMPATIBILITY_MODE:"*.excalidraw file opened in compatibility mode. Convert to new format for full plugin functionality.",CONVERT_FILE:"Convert to new format",RELEASE_NOTES_NAME:"Display Release Notes after update",RELEASE_NOTES_DESC:"Toggle ON: Display release notes each time you update Excalidraw to a newer version.
Toggle OFF: Silent mode. You can still read release notes on GitHub.",NEWVERSION_NOTIFICATION_NAME:"Plugin update notification",NEWVERSION_NOTIFICATION_DESC:"Toggle ON: Show a notification when a new version of the plugin is avaiable.
Toggle OFF: Silent mode. You need to check for plugin updates in Community Plugins.",FOLDER_NAME:"Excalidraw folder",FOLDER_DESC:"Default location for new drawings. If empty, drawings will be created in the Vault root.",FOLDER_EMBED_NAME:"Use Excalidraw folder when embedding a drawing into the active document",FOLDER_EMBED_DESC:"Define which folder to place the newly inserted drawing into when using the command palette action: 'Create a new drawing and embed into active document'.
Toggle ON: Use Excalidraw folder
Toggle OFF: use the attachments folder defined in Obsidian settings.",TEMPLATE_NAME:"Excalidraw template file",TEMPLATE_DESC:"Full filepath to the Excalidraw template. E.g.: If your template is in the default Excalidraw folder and it's name is Template.md, the setting would be: Excalidraw/Template.md (or just Excalidraw/Template - you may omit the .md file extension). If you are using Excalidraw in compatibility mode, then your template must be a legacy Excalidraw file as well such as Excalidraw/Template.excalidraw.",SCRIPT_FOLDER_NAME:"Excalidraw Automate script folder (CASE SeNSitiVE!)",SCRIPT_FOLDER_DESC:"The files you place in this folder will be treated as Excalidraw Automate scripts. You can access your scripts from Excalidraw via the Obsidian Command Palette. Assign hotkeys to your favorite scripts just like to any other Obsidian command. The folder may not be the root folder of your Vault. ",COMPRESS_NAME:"Compress Excalidraw JSON in Markdown",COMPRESS_DESC:"By enabling this feature Excalidraw will store the drawing JSON in a Base64 compressed format using the LZ-String algorithm. This will reduce the chance of Excalidraw JSON cluttering your search results in Obsidian. As a side effect, this will also reduce the filesize of Excalidraw drawings. When you switch an Excalidraw drawing to Markdown view, using the options menu in Excalidraw, the file will be saved without compression, so that you can read and edit the JSON string. The drawing will be compressed again once you switch back to Excalidraw view. The setting only has effect 'point forward', meaning, existing drawings will not be effected by the setting until you open them and save them.
Toggle ON: Compress drawing JSON
Toggle OFF: Leave drawing JSON uncompressed",AUTOSAVE_NAME:"Enable Autosave",AUTOSAVE_DESC:"Automatically save the active drawing, in case there are changes, every 15, 30 seconds, or 1, 2, 3, 4, or 5 minute. Save normally happens when you close Excalidraw or Obsidian, or move focus to another pane. I created this feature with mobile phones and tablets in mind, where 'swiping out Obsidian to close it' led to some data loss.",AUTOSAVE_INTERVAL_NAME:"Interval for autosave",AUTOSAVE_INTERVAL_DESC:"The time interval between saves. Autosave will skip if there are no changes in the drawing.",FILENAME_HEAD:"Filename",FILENAME_DESC:"

Click this link for the date and time format reference.

",FILENAME_SAMPLE:"Filename for a new drawing is: ",FILENAME_EMBED_SAMPLE:"Filename for a new embedded drawing is: ",FILENAME_PREFIX_NAME:"Filename prefix",FILENAME_PREFIX_DESC:"The first part of the filename",FILENAME_PREFIX_EMBED_NAME:"Filename prefix when embedding a new drawing into a markdown note",FILENAME_PREFIX_EMBED_DESC:"Should the filename of the newly inserted drawing start with the name of the active markdown note when using the command palette action: Create a new drawing and embed into active document?
Toggle ON: Yes, the filename of a new drawing should start with filename of the active document
Toggle OFF: No, filename of a new drawing should not include the filename of the active document",FILENAME_POSTFIX_NAME:"Custom text after markdown Note's name when embedding",FILENAME_POSTFIX_DESC:"Effects filename only when embedding into a markdown document. This is text will be inserted after the note's name, but before the date.",FILENAME_DATE_NAME:"Filename Date",FILENAME_DATE_DESC:"The last part of the filename. Leave empty if you do not want a date.",FILENAME_EXCALIDRAW_EXTENSION_NAME:".excalidraw.md or .md",FILENAME_EXCALIDRAW_EXTENSION_DESC:"This setting does not apply if you use Excalidraw in compatibility mode, i.e. you are not using Excalidraw markdown files.
Toggle ON: filename ends with .excalidraw.md
Toggle OFF: filename ends with .md",DISPLAY_HEAD:"Display",LEFTHANDED_MODE_NAME:"Left-handed mode",LEFTHANDED_MODE_DESC:"Currently only has effect in tray-mode. If turned on, the tray will be on the right side.
Toggle ON: Left-handed mode.
Toggle OFF: Right-handed moded",MATCH_THEME_NAME:"New drawing to match Obsidian theme",MATCH_THEME_DESC:"If theme is dark, new drawing will be created in dark mode. This does not apply when you use a template for new drawings. Also this will not effect when you open an existing drawing. Those will follow the theme of the template/drawing respectively.
Toggle ON: Follow Obsidian Theme
Toggle OFF:Follow theme defined in your template",MATCH_THEME_ALWAYS_NAME:"Existing drawings to match Obsidian theme",MATCH_THEME_ALWAYS_DESC:"If theme is dark, drawings will be opened in dark mode. If your theme is light, they will be opened in light mode.
Toggle ON: Match Obsidian theme
Toggle OFF: Open with the same theme as last saved",MATCH_THEME_TRIGGER_NAME:"Excalidraw to follow when Obsidian Theme changes",MATCH_THEME_TRIGGER_DESC:"If this option is enabled open Excalidraw pane will switch to light/dark mode when Obsidian theme changes.
Toggle ON: Follow theme changes
Toggle OFF: Drawings are not effected by Obsidian theme changes",DEFAULT_OPEN_MODE_NAME:"Default mode when opening Excalidraw",DEFAULT_OPEN_MODE_DESC:"Specifies the mode how Excalidraw opens: Normal, Zen, or View mode. You may also set this behavior on a file level by adding the excalidraw-default-mode frontmatter key with a value of: normal,view, or zen to your document.",DEFAULT_PEN_MODE_NAME:"Pen mode",DEFAULT_PEN_MODE_DESC:"Should pen mode be automatically enabled when opening Excalidraw?",ZOOM_TO_FIT_NAME:"Zoom to fit on view resize",ZOOM_TO_FIT_DESC:"Zoom to fit drawing when the pane is resized
Toggle ON: Zoom to fit
Toggle OFF: Auto zoom disabled",ZOOM_TO_FIT_MAX_LEVEL_NAME:"Zoom to fit max ZOOM level",ZOOM_TO_FIT_MAX_LEVEL_DESC:"Set the maximum level to which zoom to fit will enlarge the drawing. Minimum is 0.5 (50%) and maximum is 10 (1000%).",LINKS_HEAD:"Links and transclusion",LINKS_DESC:"CTRL/CMD + CLICK on [[Text Elements]] to open them as links. If the selected text has more than one [[valid Obsidian links]], only the first will be opened. If the text starts as a valid web link (i.e. https:// or http://), then the plugin will open it in a browser. When Obsidian files change, the matching [[link]] in your drawings will also change. If you don't want text accidentally changing in your drawings use [[links|with aliases]].",ADJACENT_PANE_NAME:"Open in adjacent pane",ADJACENT_PANE_DESC:"When CTRL/CMD+SHIFT clicking a link in Excalidraw, by default the plugin will open the link in a new pane. Turning this setting on, Excalidraw will first look for an existing adjacent pane, and try to open the link there. Excalidraw will look for the adjacent pane based on your focus/navigation history, i.e. the workpane that was active before you activated Excalidraw.",MAINWORKSPACE_PANE_NAME:"Open in main workspace",MAINWORKSPACE_PANE_DESC:"When CTRL/CMD+SHIFT clicking a link in Excalidraw, by default the plugin will open the link in a new pane in the current active window. Turning this setting on, Excalidraw will open the link in an existing or new pane in the main workspace. ",LINK_BRACKETS_NAME:"Show [[brackets]] around links",LINK_BRACKETS_DESC:"In PREVIEW mode, when parsing Text Elements, place brackets around links. You can override this setting for a specific drawing by adding excalidraw-link-brackets: true/false to the file's frontmatter.",LINK_PREFIX_NAME:"Link prefix",LINK_PREFIX_DESC:'In PREVIEW mode, if the Text Element contains a link, precede the text with these characters. You can override this setting for a specific drawing by adding excalidraw-link-prefix: "📍 " to the file\'s frontmatter.',URL_PREFIX_NAME:"URL prefix",URL_PREFIX_DESC:'In PREVIEW mode, if the Text Element contains a URL link, precede the text with these characters. You can override this setting for a specific drawing by adding excalidraw-url-prefix: "🌐 " to the file\'s frontmatter.',PARSE_TODO_NAME:"Parse todo",PARSE_TODO_DESC:"Convert '- [ ] ' and '- [x] ' to checkpox and tick in the box.",TODO_NAME:"Open TODO icon",TODO_DESC:"Icon to use for open TODO items",DONE_NAME:"Completed TODO icon",DONE_DESC:"Icon to use for completed TODO items",HOVERPREVIEW_NAME:"Hover preview without CTRL/CMD key",HOVERPREVIEW_DESC:"Toggle On: In Exalidraw view mode the hover preview for [[wiki links]] will be shown immediately, without the need to hold the CTRL/CMD key. In Excalidraw normal mode, the preview will be shown immediately only when hovering the blue link icon in the top right of the element.
Toggle Off: Hover preview is shown only when you hold the CTRL/CMD key while hovering the link.",LINKOPACITY_NAME:"Opacity of link icon",LINKOPACITY_DESC:"Opacity of the link indicator icon in the top right corner of an element. 1 is opaque, 0 is transparent.",LINK_CTRL_CLICK_NAME:"CTRL/CMD + CLICK on text with [[links]] or [](links) to open them",LINK_CTRL_CLICK_DESC:"You can turn this feature off if it interferes with default Excalidraw features you want to use. If this is turned off, only the link button in the title bar of the drawing pane will open links.",TRANSCLUSION_WRAP_NAME:"Overflow wrap behavior of transcluded text",TRANSCLUSION_WRAP_DESC:"Number specifies the character count where the text should be wrapped. Set the text wrapping behavior of transcluded text. Turn this ON to force-wrap text (i.e. no overflow), or OFF to soft-wrap text (at the nearest whitespace).",TRANSCLUSION_DEFAULT_WRAP_NAME:"Transclusion word wrap default",TRANSCLUSION_DEFAULT_WRAP_DESC:"You can set manually set/override word wrapping length using the `![[page#^block]]{NUMBER}` format. Normally you will not want to set a default, because if you transclude text inside a sticky note, then Excalidraw will automatically take care of word wrapping. Set this value to `0` if you do not want to set a default. ",PAGE_TRANSCLUSION_CHARCOUNT_NAME:"Page transclusion max char count",PAGE_TRANSCLUSION_CHARCOUNT_DESC:"The maximum number of characters to display from the page when transcluding an entire page with the ![[markdown page]] format.",QUOTE_TRANSCLUSION_REMOVE_NAME:"Quote translusion: remove leading '> ' from each line",QUOTE_TRANSCLUSION_REMOVE_DESC:"Remove the leading '> ' from each line of the transclusion. This will improve readibility of quotes in text only transclusions
Toggle ON: Remove leading '> '
Toggle OFF: Do not remove leading '> ' (note it will still be removed from the first row due to Obsidian API functionality)",GET_URL_TITLE_NAME:"Use iframely to resolve page title",GET_URL_TITLE_DESC:"Use the http://iframely.server.crestify.com/iframely?url= to get title of page when dropping a link into Excalidraw",MD_HEAD:"Markdown-embed settings",MD_HEAD_DESC:"You can transclude formatted markdown documents into drawings as images CTRL(Shift on Mac) drop from the file explorer or using the command palette action.",MD_TRANSCLUDE_WIDTH_NAME:"Default width of a transcluded markdown document",MD_TRANSCLUDE_WIDTH_DESC:"The width of the markdown page. This effects the word wrapping when transcluding longer paragraphs, and the width of the image element. You can override the default width of an embedded file using the [[filename#heading|WIDTHxMAXHEIGHT]] syntax in markdown view mode under embedded files.",MD_TRANSCLUDE_HEIGHT_NAME:"Default maximum height of a transcluded markdown document",MD_TRANSCLUDE_HEIGHT_DESC:"The embedded image will be as high as the markdown text requires, but not higher than this value. You can override this value by editing the embedded image link in markdown view mode with the following syntax [[filename#^blockref|WIDTHxMAXHEIGHT]].",MD_DEFAULT_FONT_NAME:"The default font typeface to use for embedded markdown files.",MD_DEFAULT_FONT_DESC:'Set this value to "Virgil" or "Cascadia" or the filename of a valid .ttf, .woff, or .woff2 font e.g. MyFont.woff2 You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font: font_or_filename',MD_DEFAULT_COLOR_NAME:"The default font color to use for embedded markdown files.",MD_DEFAULT_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-font-color: steelblue',MD_DEFAULT_BORDER_COLOR_NAME:"The default border color to use for embedded markdown files.",MD_DEFAULT_BORDER_COLOR_DESC:'Set this to any valid css color name e.g. "steelblue" (color names), or a valid hexadecimal color e.g. "#e67700", or any other valid css color string. You can override this setting by adding the following frontmatter-key to the embedded markdown file: excalidraw-border-color: gray. Leave empty if you don\'t want a border. ',MD_CSS_NAME:"CSS file",MD_CSS_DESC:"The filename of the CSS to apply to markdown embeds. Provide the filename with extension (e.g. 'md-embed.css'). The css file may also be a plain markdown file (e.g. 'md-embed-css.md'), just make sure the content is written using valid css syntax. If you need to look at the HTML code you are applying the CSS to, then open Obsidian Developer Console (CTRL+SHIFT+i) and type in the following command: \"ExcalidrawAutomate.mostRecentMarkdownSVG\". This will display the most recent SVG generated by Excalidraw. Setting the font-family in the css is has limitations. By default only your operating system's standard fonts are available (see README for details). You can add one custom font beyond that using the setting above. You can override this css setting by adding the following frontmatter-key to the embedded markdown file: \"excalidraw-css: css_file_in_vault|css-snippet\".",EMBED_HEAD:"Embed & Export",EMBED_REUSE_EXPORTED_IMAGE_NAME:"If found, use the already exported image for preview",EMBED_REUSE_EXPORTED_IMAGE_DESC:"This setting works in conjunction with the Auto-export SVG/PNG setting. If an exported image that matches the file name of the drawing is available, use that image instead of generating a preview image on the fly. This will result in faster previews especially when you have many embedded objects in the drawing, however, it may happen that your latest changes are not displayed and that the image will not automatically match your Obsidian theme in case you have changed the Obsidian theme since the export was created. This setting only applies to embedding images into markdown documents. For a number of reasons, the same approach cannot be used to expedite the loading of drawings with many embedded objects. See demonstration here.",EMBED_PREVIEW_SVG_NAME:"Display SVG in markdown preview",EMBED_PREVIEW_SVG_DESC:"Toggle ON: Embed drawing as an SVG image into the markdown preview.
Toggle OFF: Embedd drawing as a PNG image. Note, that some of the image block referencing features do not work with PNG embeds.",PREVIEW_MATCH_OBSIDIAN_NAME:"Excalidraw preview to match Obsidian theme",PREVIEW_MATCH_OBSIDIAN_DESC:"Image preview in documents should match the Obsidian theme. If enabled, when Obsidian is in dark mode, Excalidraw images will render in dark mode. When Obsidian is in light mode, Excalidraw will render light mode as well. You may want to switch 'Export image with background' off for a more Obsidian-integrated look and feel.",EMBED_WIDTH_NAME:"Default width of embedded (transcluded) image",EMBED_WIDTH_DESC:"The default width of an embedded drawing. This applies to live preview edit and reading mode, as well as to hover previews. You can specify a custom width when embedding an image using the ![[drawing.excalidraw|100]] or [[drawing.excalidraw|100x100]] format.",EMBED_TYPE_NAME:"Type of file to insert into the document",EMBED_TYPE_DESC:"When you embed an image into a document using the command palette this setting will specify if Excalidraw should embed the original Excalidraw file or a PNG or an SVG copy. You need to enable auto-export PNG / SVG (see below under Export Settings) for those image types to be available in the dropdown. For drawings that do not have a a corresponding PNG or SVG readily available the command palette action will insert a broken link. You need to open the original drawing and initiate export manually. This option will not autogenerate PNG/SVG files, but will simply reference the already existing files.",EMBED_WIKILINK_NAME:"Embed SVG or PNG as Wiki link",EMBED_WIKILINK_DESC:"Toggle ON: Excalidraw will embed a [[wiki link]]. Toggle OFF: Excalidraw will embed a [markdown](link).",EXPORT_PNG_SCALE_NAME:"PNG export image scale",EXPORT_PNG_SCALE_DESC:"The size-scale of the exported PNG image",EXPORT_BACKGROUND_NAME:"Export image with background",EXPORT_BACKGROUND_DESC:"If turned off, the exported image will be transparent.",EXPORT_PADDING_NAME:"Image Padding",EXPORT_PADDING_DESC:"The padding (in pixels) around the exported SVG or PNG image. If you have curved lines close to the edge of the image they might get cropped during image export. You can increase this value to avoid cropping. You can also override this setting at a file level by adding the excalidraw-export-padding: 5 frontmatter key.",EXPORT_THEME_NAME:"Export image with theme",EXPORT_THEME_DESC:"Export the image matching the dark/light theme of your drawing. If turned off, drawings created in dark mode will appear as they would in light mode.",EXPORT_HEAD:"Export Settings",EXPORT_SYNC_NAME:"Keep the .SVG and/or .PNG filenames in sync with the drawing file",EXPORT_SYNC_DESC:"When turned on, the plugin will automatically update the filename of the .SVG and/or .PNG files when the drawing in the same folder (and same name) is renamed. The plugin will also automatically delete the .SVG and/or .PNG files when the drawing in the same folder (and same name) is deleted. ",EXPORT_SVG_NAME:"Auto-export SVG",EXPORT_SVG_DESC:"Automatically create an SVG export of your drawing matching the title of your file. The plugin will save the *.SVG file in the same folder as the drawing. Embed the .svg file into your documents instead of Excalidraw making you embeds platform independent. While the auto-export switch is on, this file will get updated every time you edit the Excalidraw drawing with the matching name. You can override this setting on a file level by adding the excalidraw-autoexport frontmatter key. Valid values for this key are none,both,svg, and png",EXPORT_PNG_NAME:"Auto-export PNG",EXPORT_PNG_DESC:"Same as the auto-export SVG, but for *.PNG",EXPORT_BOTH_DARK_AND_LIGHT_NAME:"Export both dark- and light-themed image",EXPORT_BOTH_DARK_AND_LIGHT_DESC:"When enabled, Excalidraw will export two files instead of one: filename.dark.png, filename.light.png and/or filename.dark.svg and filename.light.svg
Double files will be exported both if auto-export SVG or PNG (or both) are enabled, as well as when clicking export on a single image.",COMPATIBILITY_HEAD:"Compatibility features",EXPORT_EXCALIDRAW_NAME:"Auto-export Excalidraw",EXPORT_EXCALIDRAW_DESC:"Same as the auto-export SVG, but for *.Excalidraw",SYNC_EXCALIDRAW_NAME:"Sync *.excalidraw with *.md version of the same drawing",SYNC_EXCALIDRAW_DESC:"If the modified date of the *.excalidraw file is more recent than the modified date of the *.md file then update the drawing in the .md file based on the .excalidraw file",COMPATIBILITY_MODE_NAME:"New drawings as legacy files",COMPATIBILITY_MODE_DESC:"By enabling this feature drawings you create with the ribbon icon, the command palette actions, and the file explorer are going to be all legacy *.excalidraw files. This setting will also turn off the reminder message when you open a legacy file for editing.",MATHJAX_NAME:"MathJax (LaTeX) javascript library host",MATHJAX_DESC:"If you are using LaTeX equiations in Excalidraw then the plugin needs to load a javascript library for that. Some users are unable to access certain host servers. If you are experiencing issues try changing the host here. You may need to restart Obsidian after closing settings, for this change to take effect.",EXPERIMENTAL_HEAD:"Experimental features",EXPERIMENTAL_DESC:"Some of these setting will not take effect immediately, only when the File Explorer is refreshed, or Obsidian restarted.",FIELD_SUGGESTER_NAME:"Enable Field Suggester",FIELD_SUGGESTER_DESC:"Field Suggester borrowed from Breadcrumbs and Templater plugins. The Field Suggester will show an autocomplete menu when you type excalidraw- or ea. with function description as hints on the individual items in the list.",FILETYPE_NAME:"Display type (✏️) for excalidraw.md files in File Explorer",FILETYPE_DESC:"Excalidraw files will receive an indicator using the emoji or text defined in the next setting.",FILETAG_NAME:"Set the type indicator for excalidraw.md files",FILETAG_DESC:"The text or emoji to display as type indicator.",INSERT_EMOJI:"Insert an emoji",LIVEPREVIEW_NAME:"Immersive image embedding in live preview editing mode",LIVEPREVIEW_DESC:"Turn this on to support image embedding styles such as ![[drawing|width|style]] in live preview editing mode. The setting will not effect the currently open documents. You need close the open documents and re-open them for the change to take effect.",ENABLE_FOURTH_FONT_NAME:"Enable fourth font option",ENABLE_FOURTH_FONT_DESC:"By turning this on, you will see a fourth font button on the properties panel for text elements. Files that use this fourth font will (partly) lose their platform independence. Depending on the custom font set in settings, they will look differently when loaded in another vault, or at a later time. Also the 4th font will display as system default font on excalidraw.com, or other Excalidraw versions.",FOURTH_FONT_NAME:"Forth font file",FOURTH_FONT_DESC:"Select a .ttf, .woff or .woff2 font file from your vault to use as the fourth font. If no file is selected, Excalidraw will use the Virgil font by default.",SCRIPT_SETTINGS_HEAD:"Settings for installed Scripts",SELECT_FILE:"Select a file then press enter.",SELECT_FILE_WITH_OPTION_TO_SCALE:"Select a file then press ENTER, or ALT+ENTER to insert at 100% scale.",NO_MATCH:"No file matches your query.",SELECT_FILE_TO_LINK:"Select the file you want to insert the link for.",SELECT_DRAWING:"Select the image or drawing you want to insert",TYPE_FILENAME:"Type name of drawing to select.",SELECT_FILE_OR_TYPE_NEW:"Select existing drawing or type name of a new drawing then press Enter.",SELECT_TO_EMBED:"Select the drawing to insert into active document.",SELECT_MD:"Select the markdown document you want to insert",INFINITE_LOOP_WARNING:"EXCALIDRAW WARNING\nAborted loading embedded images due to infinite loop in file:\n",SCRIPT_EXECUTION_ERROR:"Script execution error. Please find error message on the developer console.",LOAD_FROM_BACKUP:"Excalidraw file was corrupted. Loading from backup file.",GOTO_FULLSCREEN:"Goto fullscreen mode",EXIT_FULLSCREEN:"Exit fullscreen mode",TOGGLE_FULLSCREEN:"Toggle fullscreen mode"},enGB={},es={},fr={},hi={},id={},it={},ja={},ko={},nl={},no={},pl={},pt={},ptBR={},ro={},ru={},tr={},zhCN={INSTALL_SCRIPT:"安装此脚本",UPDATE_SCRIPT:"发现可用更新 - 点击安装",CHECKING_SCRIPT:"检查脚本更新 - 点击重新安装",UNABLETOCHECK_SCRIPT:"检查更新失败 - 点击重新安装",UPTODATE_SCRIPT:"已安装最新脚本 - 点击重新安装",OPEN_AS_EXCALIDRAW:"打开为 Excalidraw 绘图",TOGGLE_MODE:"在 Excalidraw 和 Markdown 模式之间切换",CONVERT_NOTE_TO_EXCALIDRAW:"转换空白笔记为 Excalidraw 绘图",CONVERT_EXCALIDRAW:"转换 *.excalidraw 为 *.md 文件",CREATE_NEW:"新建 Excalidraw 绘图",CONVERT_FILE_KEEP_EXT:"*.excalidraw => *.excalidraw.md",CONVERT_FILE_REPLACE_EXT:"*.excalidraw => *.md (兼容 Logseq)",DOWNLOAD_LIBRARY:"导出 stencil 库为 *.excalidrawlib 文件",OPEN_EXISTING_NEW_PANE:"打开已有的绘图 - 于新面板",OPEN_EXISTING_ACTIVE_PANE:"打开已有的绘图 - 于当前面板",TRANSCLUDE:"嵌入绘图(形如 ![[drawing]])到当前文档",TRANSCLUDE_MOST_RECENT:"嵌入最近编辑过的绘图(形如 ![[drawing]])到当前文档",TOGGLE_LEFTHANDED_MODE:"切换为左手模式",NEW_IN_NEW_PANE:"新建绘图 - 于新面板",NEW_IN_ACTIVE_PANE:"新建绘图 - 于当前面板",NEW_IN_POPOUT_WINDOW:"新建绘图 - 于新窗口",NEW_IN_NEW_PANE_EMBED:"新建绘图 - 于新面板 - 并将其嵌入(形如 ![[drawing]])到当前文档",NEW_IN_ACTIVE_PANE_EMBED:"新建绘图 - 于当前面板 - 并将其嵌入(形如 ![[drawing]])到当前文档",NEW_IN_POPOUT_WINDOW_EMBED:"新建绘图 - 于新窗口 - 并将其嵌入(形如 ![[drawing]])到当前文档",EXPORT_SVG:"导出 SVG 文件到当前目录",EXPORT_PNG:"导出 PNG 文件到当前目录",TOGGLE_LOCK:"切换文本元素为原文模式(RAW)/预览模式(PREVIEW)",DELETE_FILE:"从库中删除所选图像(或 MD-Embed)的源文件",INSERT_LINK_TO_ELEMENT:"复制所选元素的内部链接。按住 CTRL/CMD 可复制元素所在分组的内部链接。按住 SHIFT 可复制元素周围区域的内部链接。",INSERT_LINK_TO_ELEMENT_GROUP:"复制所选元素所在分组的内部链接(形如 [[file#^group=elementID]])",INSERT_LINK_TO_ELEMENT_AREA:"复制所选元素周围区域的内部链接(形如 [[file#^area=elementID]])",INSERT_LINK_TO_ELEMENT_NORMAL:"复制所选元素的引用链接(形如 [[file#^elementID]])",INSERT_LINK_TO_ELEMENT_ERROR:"未选择画布里的单个元素",INSERT_LINK_TO_ELEMENT_READY:"链接已生成并复制到剪贴板",INSERT_LINK:"插入文件的内部链接(形如 [[drawing]])到当前绘图",INSERT_IMAGE:"插入图像(以图像形式嵌入)到当前绘图",INSERT_MD:"插入 Markdown 文档(以图像形式嵌入)到当前绘图",INSERT_LATEX:"插入 LaTeX 公式到当前绘图",ENTER_LATEX:"输入 LaTeX 表达式",READ_RELEASE_NOTES:"阅读本插件的最新发行版本说明",TRAY_MODE:"切换绘图工具属性页为面板模式(Panel)/托盘模式(Tray)",SEARCH:"搜索文本",INSTALL_SCRIPT_BUTTON:"安装或更新 Excalidraw 自动化脚本",OPEN_AS_MD:"打开为 Markdown 文件",SAVE_AS_PNG:"导出 PNG 到当前目录(按住 CTRL/CMD 设定导出路径)",SAVE_AS_SVG:"导出 SVG 到当前目录(按住 CTRL/CMD 设定导出路径)",OPEN_LINK:"打开所选元素里的链接 \n(按住 SHIFT 在新面板打开)",EXPORT_EXCALIDRAW:"导出为 .Excalidraw 文件",LINK_BUTTON_CLICK_NO_TEXT:"请选择一个含有链接的图形或文本元素。\n按住 SHIFT 并点击此按钮可在新面板中打开链接。\n您也可以直接在画布中按住 CTRL/CMD 并点击图形或文本元素来打开链接。",FILENAME_INVALID_CHARS:'文件名不能含有以下符号: * " \\ < > : | ? #',FILE_DOES_NOT_EXIST:"文件不存在。按住 ALT(或 ALT + SHIFT)并点击链接来创建新文件。",FORCE_SAVE:"立刻保存该绘图(并更新嵌入了该绘图的面板)。\n详见插件设置中的定期保存选项",RAW:"文本元素正以原文(RAW)模式显示链接。\n点击切换到预览(PREVIEW)模式",PARSED:"文本元素正以预览(PREVIEW)模式显示链接。\n点击切换到原文(RAW)模式",NOFILE:"Excalidraw(没有文件)",COMPATIBILITY_MODE:"*.excalidraw 文件以兼容模式打开。转换为新格式以获得完整的插件功能。",CONVERT_FILE:"转换为新格式",RELEASE_NOTES_NAME:"显示更新说明",RELEASE_NOTES_DESC:"开启:每次更新本插件后,显示最新发行版本的说明。
关闭:您仍可以在 GitHub 上阅读更新说明。",NEWVERSION_NOTIFICATION_NAME:"通知插件更新",NEWVERSION_NOTIFICATION_DESC:"开启:当本插件存在可用更新时,显示通知。
关闭:您需要手动检查本插件的更新(设置 - 第三方插件 - 检查更新)。",FOLDER_NAME:"Excalidraw 文件夹",FOLDER_DESC:"新绘图的默认存储路径。若为空,将在库的根目录中创建新绘图。",FOLDER_EMBED_NAME:"将 Excalidraw 文件夹用于“新建绘图”命令创建的绘图",FOLDER_EMBED_DESC:"在命令面板中执行“新建绘图”系列命令时,新绘图的存储路径。
开启:使用 Excalidraw 文件夹。
关闭:使用 Obsidian 设置的新附件默认位置。",TEMPLATE_NAME:"Excalidraw 模板文件",TEMPLATE_DESC:"Excalidraw 模板文件的完整路径。
如果您的模板在默认的 Excalidraw 文件夹中且文件名是 Template.md,则此项应设为 Excalidraw/Template.md(也可省略 .md 扩展名,即 Excalidraw/Template)。
如果您在兼容模式下使用 Excalidraw,那么您的模板文件也必须是旧的 *.excalidraw 格式,例如 Excalidraw/Template.excalidraw。",SCRIPT_FOLDER_NAME:"Excalidraw 自动化脚本的文件夹",SCRIPT_FOLDER_DESC:"此文件夹用于存放 Excalidraw 自动化脚本。您可以在 Obsidian 命令面板中执行这些脚本,还可以为喜欢的脚本分配快捷键,就像为其他 Obsidian 命令分配快捷键一样。
该项不能设为库的根目录。",COMPRESS_NAME:"压缩 Excalidraw JSON",COMPRESS_DESC:"Excalidraw 绘图文件默认将元素记录为 JSON 格式。开启此项,可将元素的 JSON 数据以 BASE64 编码(使用 LZ-String 算法)。这样做的好处是:一方面可以避免原来的明文 JSON 数据干扰 Obsidian 的文本搜索结果,另一方面减小了绘图文件的体积。
当您通过功能区按钮或命令将绘图切换成 Markdown 模式时,数据将被解码回 JSON 格式以便阅读和编辑;而当您切换回 Excalidraw 模式时,数据就会被再次编码。
开启此项后,对于之前已存在的未压缩的绘图文件,需要重新打开并保存它们才能生效。",AUTOSAVE_NAME:"定期保存",AUTOSAVE_DESC:"定期保存当前绘图。此功能专为移动设备设计 —— 在桌面端,当您关闭 Excalidraw 或 Obsidian,或者移动焦点到其他面板的时候,软件是会自动保存的;但是在手机或平板上通过滑动手势退出 Obsidian 时,可能无法顺利触发自动保存。因此我添加了定期保存功能作为弥补。",AUTOSAVE_INTERVAL_NAME:"定期保存的时间间隔",AUTOSAVE_INTERVAL_DESC:"每隔多长时间执行一次保存。如果当前绘图没有发生改变,将不会触发保存。",FILENAME_HEAD:"文件名",FILENAME_DESC:"

点击阅读日期和时间格式参考

",FILENAME_SAMPLE:"“新建绘图”系列命令创建的文件名形如:",FILENAME_EMBED_SAMPLE:"“新建绘图并嵌入到当前文档”系列命令创建的文件名形如:",FILENAME_PREFIX_NAME:"“新建绘图”系列命令创建的文件名前缀",FILENAME_PREFIX_DESC:"执行“新建绘图”系列命令时,创建的绘图文件名的第一部分",FILENAME_PREFIX_EMBED_NAME:"“新建绘图并嵌入到当前文档”系列命令创建的文件名前缀",FILENAME_PREFIX_EMBED_DESC:"执行“新建绘图并嵌入到当前文档”系列命令时,创建的绘图文件名是否以当前文档名作为前缀?
开启:
关闭:否",FILENAME_POSTFIX_NAME:"“新建绘图并嵌入到当前文档”系列命令创建的文件名的中间部分",FILENAME_POSTFIX_DESC:"介于文件名前缀和日期时间之间的文本。仅对“新建绘图并嵌入到当前文档”系列命令创建的绘图生效。",FILENAME_DATE_NAME:"文件名里的日期时间",FILENAME_DATE_DESC:"文件名的最后一部分。允许留空。",FILENAME_EXCALIDRAW_EXTENSION_NAME:"文件扩展名(.excalidraw.md 或 .md)",FILENAME_EXCALIDRAW_EXTENSION_DESC:"该选项在兼容模式(即非 Excalidraw 专用 Markdown 文件)下不会生效。
开启:使用 .excalidraw.md 作为扩展名。
关闭:使用 .md 作为扩展名。",DISPLAY_HEAD:"显示",LEFTHANDED_MODE_NAME:"左手模式",LEFTHANDED_MODE_DESC:"目前只在托盘模式下生效。若开启此项,则托盘(绘图工具属性页)将位于右侧。
开启:左手模式。
关闭:右手模式。",MATCH_THEME_NAME:"使新建的绘图匹配 Obsidian 主题",MATCH_THEME_DESC:"如果 Obsidian 使用黑暗主题,新建的绘图文件也将使用黑暗主题。
但是若设置了模板,新建的绘图文件将跟随模板主题;另外,此功能不会作用于已有的绘图。
开启:跟随 Obsidian 主题风格。
关闭:跟随模板主题风格。",MATCH_THEME_ALWAYS_NAME:"使已有的绘图匹配 Obsidian 主题",MATCH_THEME_ALWAYS_DESC:"如果 Obsidian 使用黑暗主题,则绘图文件也将以黑暗主题打开;反之亦然。
开启:匹配 Obsidian 主题风格。
关闭:采用上次保存时的主题风格。",MATCH_THEME_TRIGGER_NAME:"Excalidraw 主题跟随 Obsidian 主题变化",MATCH_THEME_TRIGGER_DESC:"开启此项,则切换 Obsidian 的黑暗/明亮主题时,已打开的 Excalidraw 面板的主题会随之改变。
开启:跟随主题变化。
关闭:不跟随主题变化。",DEFAULT_OPEN_MODE_NAME:"Excalidraw 的默认运行模式",DEFAULT_OPEN_MODE_DESC:"设置 Excalidraw 的运行模式:普通模式(Normal)/禅模式(Zen)/阅读模式(View)。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-default-mode: normal/zen/view 的键值对。",DEFAULT_PEN_MODE_NAME:"触控笔模式(Pen mode)",DEFAULT_PEN_MODE_DESC:"打开绘图时,是否自动开启触控笔模式?",ZOOM_TO_FIT_NAME:"自动缩放以适应面板调整",ZOOM_TO_FIT_DESC:"调整面板大小时,自适应地缩放画布
开启:自动缩放。
关闭:禁用自动缩放。",ZOOM_TO_FIT_MAX_LEVEL_NAME:"自动缩放的最高级别",ZOOM_TO_FIT_MAX_LEVEL_DESC:"自动缩放画布时,允许放大的最高级别。该值不能低于 0.5(50%)且不能超过 10(1000%)。",LINKS_HEAD:"链接(Links) & 以文本形式嵌入到绘图中的文档(Transclusion)",LINKS_DESC:"按住 CTRL/CMD 并点击包含 [[链接]] 的文本元素可以打开其中的链接。
如果所选文本元素包含多个 [[有效的内部链接]] ,只会打开第一个链接;如果所选文本元素包含有效的 URL 链接 (如 https://http://),插件会在浏览器中打开链接。
链接的源文件被重命名时,绘图中相应的 [[内部链接]] 也会同步更新。若您不愿绘图中的链接外观因此而变化,可使用 [[内部链接|别名]]。",ADJACENT_PANE_NAME:"在相邻面板中打开",ADJACENT_PANE_DESC:"按住 CTRL/CMD + SHIFT 并点击绘图里的内部链接时,插件默认会在新面板中打开该链接。
若开启此项,Excalidraw 会先尝试寻找已有的相邻面板(按照右侧、左侧、上方、下方的顺序),并在其中打开该链接。如果找不到,再在新面板中打开。",MAINWORKSPACE_PANE_NAME:"在主工作区中打开",MAINWORKSPACE_PANE_DESC:"按住 CTRL/CMD + SHIFT 并点击绘图里的内部链接时,插件默认会在当前窗口的新面板中打开该链接。
若开启此项,Excalidraw 会在主工作区的面板中打开该链接。",LINK_BRACKETS_NAME:"在链接的两侧显示 [[中括号]]",LINK_BRACKETS_DESC:"文本元素处于预览模式时,在内部链接的两侧显示中括号。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-link-brackets: true/false 的键值对。",LINK_PREFIX_NAME:"内部链接的前缀",LINK_PREFIX_DESC:'文本元素处于预览模式时,如果其中包含链接,则添加此前缀。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-link-prefix: "📍 " 的键值对。',URL_PREFIX_NAME:"外部链接的前缀",URL_PREFIX_DESC:'文本元素处于预览模式时,如果其中包含外部链接,则添加此前缀。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-url-prefix: "🌐 " 的键值对。',PARSE_TODO_NAME:"解析任务列表(Todo)",PARSE_TODO_DESC:"将文本元素中的 - [ ]- [x] 前缀显示为方框。",TODO_NAME:"未完成的 Todo 项目",TODO_DESC:"未完成的 Todo 项目的符号",DONE_NAME:"已完成的 Todo 项目",DONE_DESC:"已完成的 Todo 项目的符号",HOVERPREVIEW_NAME:"鼠标悬停预览内部链接",HOVERPREVIEW_DESC:"开启:在 Excalidraw 阅读模式(View)下,鼠标悬停在 [[内部链接]] 上即可预览;而在普通模式(Normal)下, 鼠标悬停在内部链接右上角的蓝色标识上即可预览。
关闭:鼠标悬停在 [[内部链接]] 上,并且按住 CTRL/CMD 时进行预览。",LINKOPACITY_NAME:"链接标识的透明度",LINKOPACITY_DESC:"含有链接的元素,其右上角的链接标识的透明度。介于 0(全透明)到 1(不透明)之间。",LINK_CTRL_CLICK_NAME:"按住 CTRL/CMD 并点击含有 [[链接]] 或 [别名](链接) 的文本来打开链接",LINK_CTRL_CLICK_DESC:"如果此功能影响到您使用某些原版 Excalidraw 功能,可将其关闭。关闭后,您只能通过绘图面板标题栏中的链接按钮来打开链接。",TRANSCLUSION_WRAP_NAME:"Transclusion 的折行方式",TRANSCLUSION_WRAP_DESC:"中的 number 表示嵌入的文本溢出时,在第几个字符处进行折行。
此开关控制具体的折行方式。若开启,则严格在 number 处折行,禁止溢出;若关闭,则允许在 number 位置后最近的空格处折行。",TRANSCLUSION_DEFAULT_WRAP_NAME:"Transclusion 的默认折行位置",TRANSCLUSION_DEFAULT_WRAP_DESC:"除了通过 ![[doc#^block]]{number} 中的 number 来控制折行位置,您也可以在此设置 number 的默认值。
一般设为 0 即可,表示不设置固定的默认值,这样当您需要嵌入文档到便签中时,Excalidraw 能更好地帮您自动处理。",PAGE_TRANSCLUSION_CHARCOUNT_NAME:"Transclusion 的最大显示字符数",PAGE_TRANSCLUSION_CHARCOUNT_DESC:"以 ![[内部链接]]![](内部链接) 的形式将文档以文本形式嵌入到绘图中时,该文档在绘图中可显示的最大字符数量。",GET_URL_TITLE_NAME:"使用 iframly 获取页面标题",GET_URL_TITLE_DESC:"拖放链接到 Excalidraw 时,使用 http://iframely.server.crestify.com/iframely?url= 来获取页面的标题。",MD_HEAD:"以图像形式嵌入到绘图中的 Markdown 文档(MD-Embed)",MD_HEAD_DESC:"您还可以将 Markdown 文档以图像形式(而非文本形式)嵌入到绘图中。方法是按住 CTRL/CMD 并从文件管理器中把文档拖入绘图,或者执行“以图像形式嵌入”系列命令。",MD_TRANSCLUDE_WIDTH_NAME:"MD-Embed 的默认宽度",MD_TRANSCLUDE_WIDTH_DESC:"MD-Embed 的宽度。该选项会影响到折行,以及图像元素的宽度。
您可为绘图中的某个 MD-Embed 单独设置此项,方法是将绘图切换至 Markdown 模式,并修改相应的 [[Embed文件名#标题|宽度x最大高度]]。",MD_TRANSCLUDE_HEIGHT_NAME:"MD-Embed 的默认最大高度",MD_TRANSCLUDE_HEIGHT_DESC:"MD-Embed 的高度取决于 Markdown 文档内容的多少,但最大不会超过该值。
您可为绘图中的某个 MD-Embed 单独设置此项,方法是将绘图切换至 Markdown 模式,并修改相应的 [[Embed文件名#^块引ID|宽度x最大高度]]。",MD_DEFAULT_FONT_NAME:"MD-Embed 的默认字体",MD_DEFAULT_FONT_DESC:"可以设为 VirgilCasadia 或其他有效的 .ttf/.woff/.woff2 字体文件(如 我的字体.woff2)。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-font: 字体名或文件名 的键值对。",MD_DEFAULT_COLOR_NAME:"MD-Embed 的默认文本颜色",MD_DEFAULT_COLOR_DESC:"可以填写 HTML 颜色名,如 steelblue(参考 HTML Color Names),或者有效的 16 进制颜色值,例如 #e67700,或者任何其他有效的 CSS 颜色。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-font-color: steelblue 的键值对。",MD_DEFAULT_BORDER_COLOR_NAME:"MD-Embed 的默认边框颜色",MD_DEFAULT_BORDER_COLOR_DESC:"可以填写 HTML 颜色名,如 steelblue(参考 HTML Color Names),或者有效的 16 进制颜色值,例如 #e67700,或者任何其他有效的 CSS 颜色。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-border-color: gray 的键值对。
如果您不想要边框,请留空。",MD_CSS_NAME:"MD-Embed 的默认 CSS 样式表",MD_CSS_DESC:"MD-Embed 图像所采用的 CSS 样式表文件名。需包含扩展名,例如 md-embed.css。允许使用 Markdown 文件(如 md-embed-css.md),但其内容应符合 CSS 语法。
如果您要查询 CSS 所作用的 HTML 节点,请在 Obsidian 开发者控制台(CTRL+SHIFT+i)中键入命令:ExcalidrawAutomate.mostRecentMarkdownSVG —— 这将显示 Excalidraw 最近生成的 SVG。
此外,在 CSS 中不能任意地设置字体,您一般只能使用系统默认的标准字体(详见 README),但可以通过上面的设置来额外添加一个自定义字体。
您可为某个 MD-Embed 单独设置此项,方法是在其源文件的 frontmatter 中添加形如 excalidraw-css: 库中的CSS文件或CSS片段 的键值对。",EMBED_HEAD:"嵌入到文档中的绘图(Embed) & 导出",EMBED_REUSE_EXPORTED_IMAGE_NAME:"将之前已导出的图像作为 Embed 的预览图(如果存在的话)",EMBED_REUSE_EXPORTED_IMAGE_DESC:"该选项与“自动导出 SVG/PNG 副本”选项配合使用。如果存在文件名相匹配的 SVG/PNG 副本,则将其作为 Embed 的预览图,而不再重新生成预览图。
该选项能够提高性能,尤其是当 Embed 中含有大量图像或 MD-Embed 时。但是,该选项也可能导致预览图无法立即响应你最新的修改,或者你对 Obsidian 主题风格的改变。
该选项仅作用于嵌入到文档中的绘图。由于种种原因,该技术无法用于加快绘图文件的打开速度。详见此说明。",EMBED_PREVIEW_SVG_NAME:"生成 SVG 格式的 Embed 预览图",EMBED_PREVIEW_SVG_DESC:"开启:在 Markdown 预览模式下,为 Embed 生成 SVG 格式的预览图。
关闭:为 Embed 生成 PNG 格式的预览图。注意:PNG 格式预览图不支持某些 绘图元素的块引用特性。",PREVIEW_MATCH_OBSIDIAN_NAME:"Embed 预览图匹配 Obsidian 主题",PREVIEW_MATCH_OBSIDIAN_DESC:"开启此项,则当 Obsidian 处于黑暗模式时,Embed 的预览图也会以黑暗模式渲染;当 Obsidian 处于明亮模式时,预览图也会以明亮模式渲染。
您可能还需要关闭“导出的图像包含背景”开关,来获得与 Obsidian 更加协调的观感。",EMBED_WIDTH_NAME:"Embed 预览图的默认宽度",EMBED_WIDTH_DESC:"该选项同时作用于 Obsidian 实时预览模式下的编辑视图和阅读视图,以及鼠标悬停时浮现的预览图。
您可为某个要嵌入到文档中的绘图(Embed)单独设置此项,方法是修改相应的链接格式为形如 ![[drawing.excalidraw|100]][[drawing.excalidraw|100x100]] 的格式。",EMBED_TYPE_NAME:"“嵌入绘图到当前文档”系列命令的源文件类型",EMBED_TYPE_DESC:"在命令面板中执行“嵌入绘图到当前文档”系列命令时,要嵌入绘图文件本身,还是嵌入其 PNG 或 SVG 副本。
如果您想选择 PNG 或 SVG 副本,需要先开启下方的“自动导出 PNG 副本”或“自动导出 SVG 副本”开关。
如果您选择了 PNG 或 SVG 副本,当副本不存在时,该命令将会插入一条损坏的链接,您需要打开绘图文件并手动导出副本才能修复 —— 也就是说,该选项不会自动帮您生成 PNG/SVG 副本,而只会引用已有的 PNG/SVG 副本。",EMBED_WIKILINK_NAME:"“嵌入绘图到当前文档”命令产生的内部链接类型",EMBED_WIKILINK_DESC:"开启:将产生 ![[Wiki 链接]]关闭:将产生 ![](Markdown 链接)。",EXPORT_PNG_SCALE_NAME:"导出的 PNG 图像的比例",EXPORT_PNG_SCALE_DESC:"导出的 PNG 图像的大小比例",EXPORT_BACKGROUND_NAME:"导出的图像包含背景",EXPORT_BACKGROUND_DESC:"如果关闭,将导出透明背景的图像。",EXPORT_PADDING_NAME:"导出的图像的空白边距",EXPORT_PADDING_DESC:"导出的 SVG/PNG 图像四周的空白边距(单位:像素)。
增加该值,可以避免在导出图像时,靠近图像边缘的图形被裁掉。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-export-padding: 5 的键值对。",EXPORT_THEME_NAME:"导出的图像包含主题",EXPORT_THEME_DESC:"导出与绘图的黑暗/明亮主题匹配的图像。如果关闭,在黑暗主题下导出的图像将和明亮主题一样。",EXPORT_HEAD:"导出设置",EXPORT_SYNC_NAME:"保持 SVG/PNG 文件名与绘图文件同步",EXPORT_SYNC_DESC:"打开后,当绘图文件被重命名时,插件将同步更新同文件夹下的同名 .SVG 和 .PNG 文件。当绘图文件被删除时,插件将自动删除同文件夹下的同名 .SVG 和 .PNG 文件。",EXPORT_SVG_NAME:"自动导出 SVG 副本",EXPORT_SVG_DESC:"自动导出和绘图文件同名的 SVG 副本。插件会将副本保存到绘图文件所在的文件夹中。在文档中嵌入这个 SVG 文件,相比直接嵌入绘图文件,具有更强的跨平台能力。
此开关开启时,每次您编辑 Excalidraw 绘图,其 SVG 文件副本都会同步更新。
您可为某个绘图单独设置此项,方法是在其 frontmatter 中添加形如 excalidraw-autoexport: none/both/svg/png的键值对",EXPORT_PNG_NAME:"自动导出 PNG 副本",EXPORT_PNG_DESC:"和“自动导出 SVG 副本”类似,但是导出格式为 *.PNG。",EXPORT_BOTH_DARK_AND_LIGHT_NAME:"同时导出黑暗和明亮风格的图像",EXPORT_BOTH_DARK_AND_LIGHT_DESC:"若开启,Excalidraw 将导出两个文件:filename.dark.png(或 filename.dark.svg)和 filename.light.png(或 filename.light.svg)。
该选项可作用于“自动导出 SVG 副本”、“自动导出 PNG 副本”,以及其他的手动的导出命令。",COMPATIBILITY_HEAD:"兼容性设置",EXPORT_EXCALIDRAW_NAME:"自动导出 Excalidraw 旧格式副本",EXPORT_EXCALIDRAW_DESC:"和“自动导出 SVG 副本”类似,但是导出格式为 *.excalidraw。",SYNC_EXCALIDRAW_NAME:"新旧格式绘图文件的内容保持同步",SYNC_EXCALIDRAW_DESC:"如果旧格式(*.excalidraw)绘图文件的修改日期比新格式(*.md)更新,则根据旧格式文件的内容来更新新格式文件。",COMPATIBILITY_MODE_NAME:"以旧格式创建新绘图",COMPATIBILITY_MODE_DESC:"开启此功能后,您通过功能区按钮、命令面板、文件浏览器等创建的绘图都将是旧格式(*.excalidraw)。此外,您打开旧格式绘图文件时将不再收到提醒消息。",MATHJAX_NAME:"MathJax (LaTeX) 的 javascript 库服务器",MATHJAX_DESC:"如果您在绘图中使用 LaTeX,插件需要从服务器获取并加载一个 javascript 库。如果您的网络无法访问某些库服务器,可以尝试通过此选项更换库服务器。更改此选项后,您可能需要重启 Obsidian 来使其生效。",EXPERIMENTAL_HEAD:"实验性功能",EXPERIMENTAL_DESC:"以下部分设置不会立即生效,需要刷新文件资源管理器或者重启 Obsidian 才会生效。",FIELD_SUGGESTER_NAME:"开启字段建议",FIELD_SUGGESTER_DESC:"开启后,当您在编辑器中输入 excalidraw- 或者 ea. 时,会弹出一个带有函数说明的自动补全提示菜单。
该功能借鉴了 Breadcrumbs 和 Templater 插件。",FILETYPE_NAME:"在文件浏览器中为 excalidraw.md 文件添加类型标识符(如 ✏️)",FILETYPE_DESC:"可通过下一项设置来自定义类型标识符。",FILETAG_NAME:"excalidraw.md 文件的类型标识符",FILETAG_DESC:"要显示为类型标识符的 emoji 或文本。",INSERT_EMOJI:"插入 emoji",LIVEPREVIEW_NAME:"嵌入绘图到文档时,模拟嵌入图像的语法",LIVEPREVIEW_DESC:"开启此项,则可在 Obsidian 实时预览模式的编辑视图下,用形如 ![[绘图|宽度|样式]] 的语法来嵌入绘图。
该选项不会在已打开的文档中立刻生效 —— 你需要重新打开此文档来使其生效。",ENABLE_FOURTH_FONT_NAME:"为文本元素启用本地字体",ENABLE_FOURTH_FONT_DESC:"开启此项后,文本元素的属性面板里会多出一个本地字体按钮。
使用了本地字体的绘图文件,将会失去一部分跨平台能力 —— 若将绘图文件移动到其他库中打开,显示效果可能会截然不同;若在 excalidraw.com 或者其他版本的 Excalidraw 中打开,使用本地字体的文本会变回系统默认字体。",FOURTH_FONT_NAME:"本地字体文件",FOURTH_FONT_DESC:"选择库文件夹中的一个 .ttf, .woff 或 .woff2 字体文件作为本地字体文件。若未选择文件,则使用默认的 Virgil 字体。",SCRIPT_SETTINGS_HEAD:"已安装脚本的设置",SELECT_FILE:"选择一个文件后按回车。",NO_MATCH:"查询不到匹配的文件。",SELECT_FILE_TO_LINK:"选择要插入(链接)到当前绘图中的文件。",SELECT_DRAWING:"选择要插入(以图像形式嵌入)到当前绘图中的图像。",TYPE_FILENAME:"键入要选择的绘图名称。",SELECT_FILE_OR_TYPE_NEW:"选择已有绘图,或者新绘图的类型,然后按回车。",SELECT_TO_EMBED:"选择要插入(嵌入)到当前文档中的绘图。",SELECT_MD:"选择要插入(以图像形式嵌入)到当前绘图中的 Markdown 文档。",INFINITE_LOOP_WARNING:"EXCALIDRAW 警告\n停止加载嵌入的图像,因为此文件中存在死循环:\n",SCRIPT_EXECUTION_ERROR:"脚本运行错误。请在开发者控制台中查看错误信息。",LOAD_FROM_BACKUP:"Excalidraw 文件已损坏。尝试从备份文件中加载。",GOTO_FULLSCREEN:"进入全屏模式",EXIT_FULLSCREEN:"退出全屏模式",TOGGLE_FULLSCREEN:"切换全屏模式"},zhTW={};const localeMap={ar:ar,cs:cz,da:da,de:de,en:en,"en-gb":enGB,es:es,fr:fr,hi:hi,id:id,it:it,ja:ja,ko:ko,nl:nl,nn:no,pl:pl,pt:pt,"pt-br":ptBR,ro:ro,ru:ru,tr:tr,"zh-cn":zhCN,"zh-tw":zhTW},locale=localeMap[obsidian.moment.locale()];function t$d(e){return locale||errorlog({where:"helpers.t",message:"Error: Excalidraw locale not found",locale:obsidian.moment.locale()}),locale&&locale[e]||en[e]}var html2canvas$1={exports:{}}; /*! * html2canvas 1.4.0 * Copyright (c) 2022 Niklas von Hertzen @@ -19,8 +19,64 @@ const EXCALIDRAW_PACKAGES = "PQKhAIAEBsEsGMCmA7Azo8AlRBDeAXcANwEYB2AOgAYKAmAKHAg OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ -var A=function(e,t){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,e){A.__proto__=e}||function(A,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(A[t]=e[t])},A(e,t)};function e(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}A(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var t=function(){return t=Object.assign||function(A){for(var e,t=1,i=arguments.length;t0&&n[n.length-1])||6!==a[0]&&2!==a[0])){r=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]=55296&&n<=56319&&t>10),r%1024+56320)),(n+1===t||i.length>16384)&&(a+=String.fromCharCode.apply(String,i),i.length=0)}return a},c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d="undefined"==typeof Uint8Array?[]:new Uint8Array(256),h=0;h=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>5])<<2)+(31&A),this.data[e];if(A<=65535)return e=((e=this.index[2048+(A-55296>>5)])<<2)+(31&A),this.data[e];if(A>11),e=this.index[e],e+=A>>5&63,e=((e=this.index[e])<<2)+(31&A),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},A}(),p=10,w=13,m=15,f=17,B=18,E=19,C=20,b=21,v=22,y=24,F=25,x=26,Q=27,U=28,I=30,S=32,T=33,L=34,M=35,k=37,H=38,O=39,D=40,N=42,R=[9001,65288],P="×",V="÷",K=function(A){var e,t,i,n=function(A){var e,t,i,n,a,r=.75*A.length,s=A.length,o=0;"="===A[A.length-1]&&(r--,"="===A[A.length-2]&&r--);var l="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(r):new Array(r),c=Array.isArray(l)?l:new Uint8Array(l);for(e=0;e>4,c[o++]=(15&i)<<4|n>>2,c[o++]=(3&n)<<6|63&a;return l}(A),a=Array.isArray(n)?function(A){for(var e=A.length,t=[],i=0;i0;){var r=i[--a];if(Array.isArray(A)?-1!==A.indexOf(r):A===r)for(var s=t;s<=i.length;){var o;if((o=i[++s])===e)return!0;if(o!==p)break}if(r!==p)break}return!1},q=function(A,e){for(var t=A;t>=0;){var i=e[t];if(i!==p)return i;t--}return 0},_=function(A,e,t,i,n){if(0===t[i])return P;var a=i-1;if(Array.isArray(n)&&!0===n[a])return P;var r=a-1,s=a+1,o=e[a],l=r>=0?e[r]:0,c=e[s];if(2===o&&3===c)return P;if(-1!==W.indexOf(o))return"!";if(-1!==W.indexOf(c))return P;if(-1!==z.indexOf(c))return P;if(8===q(a,e))return V;if(11===K.get(A[a]))return P;if((o===S||o===T)&&11===K.get(A[s]))return P;if(7===o||7===c)return P;if(9===o)return P;if(-1===[p,w,m].indexOf(o)&&9===c)return P;if(-1!==[f,B,E,y,U].indexOf(c))return P;if(q(a,e)===v)return P;if(Z(23,v,a,e))return P;if(Z([f,B],b,a,e))return P;if(Z(12,12,a,e))return P;if(o===p)return V;if(23===o||23===c)return P;if(16===c||16===o)return V;if(-1!==[w,m,b].indexOf(c)||14===o)return P;if(36===l&&-1!==J.indexOf(o))return P;if(o===U&&36===c)return P;if(c===C)return P;if(-1!==G.indexOf(c)&&o===F||-1!==G.indexOf(o)&&c===F)return P;if(o===Q&&-1!==[k,S,T].indexOf(c)||-1!==[k,S,T].indexOf(o)&&c===x)return P;if(-1!==G.indexOf(o)&&-1!==X.indexOf(c)||-1!==X.indexOf(o)&&-1!==G.indexOf(c))return P;if(-1!==[Q,x].indexOf(o)&&(c===F||-1!==[v,m].indexOf(c)&&e[s+1]===F)||-1!==[v,m].indexOf(o)&&c===F||o===F&&-1!==[F,U,y].indexOf(c))return P;if(-1!==[F,U,y,f,B].indexOf(c))for(var d=a;d>=0;){if((h=e[d])===F)return P;if(-1===[U,y].indexOf(h))break;d--}if(-1!==[Q,x].indexOf(c))for(d=-1!==[f,B].indexOf(o)?r:a;d>=0;){var h;if((h=e[d])===F)return P;if(-1===[U,y].indexOf(h))break;d--}if(H===o&&-1!==[H,O,L,M].indexOf(c)||-1!==[O,L].indexOf(o)&&-1!==[O,D].indexOf(c)||-1!==[D,M].indexOf(o)&&c===D)return P;if(-1!==j.indexOf(o)&&-1!==[C,x].indexOf(c)||-1!==j.indexOf(c)&&o===Q)return P;if(-1!==G.indexOf(o)&&-1!==G.indexOf(c))return P;if(o===y&&-1!==G.indexOf(c))return P;if(-1!==G.concat(F).indexOf(o)&&c===v&&-1===R.indexOf(A[s])||-1!==G.concat(F).indexOf(c)&&o===B)return P;if(41===o&&41===c){for(var g=t[a],u=1;g>0&&41===e[--g];)u++;if(u%2!=0)return P}return o===S&&c===T?P:V},$=function(A,e){e||(e={lineBreak:"normal",wordBreak:"normal"});var t=function(A,e){void 0===e&&(e="strict");var t=[],i=[],n=[];return A.forEach((function(A,a){var r=K.get(A);if(r>50?(n.push(!0),r-=50):n.push(!1),-1!==["normal","auto","loose"].indexOf(e)&&-1!==[8208,8211,12316,12448].indexOf(A))return i.push(a),t.push(16);if(4===r||11===r){if(0===a)return i.push(a),t.push(I);var s=t[a-1];return-1===Y.indexOf(s)?(i.push(i[a-1]),t.push(s)):(i.push(a),t.push(I))}return i.push(a),31===r?t.push("strict"===e?b:k):r===N||29===r?t.push(I):43===r?A>=131072&&A<=196605||A>=196608&&A<=262141?t.push(k):t.push(I):void t.push(r)})),[i,t,n]}(A,e.lineBreak),i=t[0],n=t[1],a=t[2];"break-all"!==e.wordBreak&&"break-word"!==e.wordBreak||(n=n.map((function(A){return-1!==[F,I,N].indexOf(A)?k:A})));var r="keep-all"===e.wordBreak?a.map((function(e,t){return e&&A[t]>=19968&&A[t]<=40959})):void 0;return[i,n,r]},AA=function(){function A(A,e,t,i){this.codePoints=A,this.required="!"===e,this.start=t,this.end=i}return A.prototype.slice=function(){return l.apply(void 0,this.codePoints.slice(this.start,this.end))},A}(),eA=45,tA=43,iA=-1,nA=function(A){return A>=48&&A<=57},aA=function(A){return nA(A)||A>=65&&A<=70||A>=97&&A<=102},rA=function(A){return 10===A||9===A||32===A},sA=function(A){return function(A){return function(A){return A>=97&&A<=122}(A)||function(A){return A>=65&&A<=90}(A)}(A)||function(A){return A>=128}(A)||95===A},oA=function(A){return sA(A)||nA(A)||A===eA},lA=function(A){return A>=0&&A<=8||11===A||A>=14&&A<=31||127===A},cA=function(A,e){return 92===A&&10!==e},dA=function(A,e,t){return A===eA?sA(e)||cA(e,t):!!sA(A)||!(92!==A||!cA(A,e))},hA=function(A,e,t){return A===tA||A===eA?!!nA(e)||46===e&&nA(t):nA(46===A?e:A)},gA=function(A){var e=0,t=1;A[e]!==tA&&A[e]!==eA||(A[e]===eA&&(t=-1),e++);for(var i=[];nA(A[e]);)i.push(A[e++]);var n=i.length?parseInt(l.apply(void 0,i),10):0;46===A[e]&&e++;for(var a=[];nA(A[e]);)a.push(A[e++]);var r=a.length,s=r?parseInt(l.apply(void 0,a),10):0;69!==A[e]&&101!==A[e]||e++;var o=1;A[e]!==tA&&A[e]!==eA||(A[e]===eA&&(o=-1),e++);for(var c=[];nA(A[e]);)c.push(A[e++]);var d=c.length?parseInt(l.apply(void 0,c),10):0;return t*(n+s*Math.pow(10,-r))*Math.pow(10,o*d)},uA={type:2},pA={type:3},wA={type:4},mA={type:13},fA={type:8},BA={type:21},EA={type:9},CA={type:10},bA={type:11},vA={type:12},yA={type:14},FA={type:23},xA={type:1},QA={type:25},UA={type:24},IA={type:26},SA={type:27},TA={type:28},LA={type:29},MA={type:31},kA={type:32},HA=function(){function A(){this._value=[]}return A.prototype.write=function(A){this._value=this._value.concat(o(A))},A.prototype.read=function(){for(var A=[],e=this.consumeToken();e!==kA;)A.push(e),e=this.consumeToken();return A},A.prototype.consumeToken=function(){var A=this.consumeCodePoint();switch(A){case 34:return this.consumeStringToken(34);case 35:var e=this.peekCodePoint(0),t=this.peekCodePoint(1),i=this.peekCodePoint(2);if(oA(e)||cA(t,i)){var n=dA(e,t,i)?2:1;return{type:5,value:this.consumeName(),flags:n}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),mA;break;case 39:return this.consumeStringToken(39);case 40:return uA;case 41:return pA;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),yA;break;case tA:if(hA(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 44:return wA;case eA:var a=A,r=this.peekCodePoint(0),s=this.peekCodePoint(1);if(hA(a,r,s))return this.reconsumeCodePoint(A),this.consumeNumericToken();if(dA(a,r,s))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();if(r===eA&&62===s)return this.consumeCodePoint(),this.consumeCodePoint(),UA;break;case 46:if(hA(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var o=this.consumeCodePoint();if(42===o&&47===(o=this.consumeCodePoint()))return this.consumeToken();if(o===iA)return this.consumeToken()}break;case 58:return IA;case 59:return SA;case 60:if(33===this.peekCodePoint(0)&&this.peekCodePoint(1)===eA&&this.peekCodePoint(2)===eA)return this.consumeCodePoint(),this.consumeCodePoint(),QA;break;case 64:var c=this.peekCodePoint(0),d=this.peekCodePoint(1),h=this.peekCodePoint(2);if(dA(c,d,h))return{type:7,value:this.consumeName()};break;case 91:return TA;case 92:if(cA(A,this.peekCodePoint(0)))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();break;case 93:return LA;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),fA;break;case 123:return bA;case 125:return vA;case 117:case 85:var g=this.peekCodePoint(0),u=this.peekCodePoint(1);return g!==tA||!aA(u)&&63!==u||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(A),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),EA;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),BA;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),CA;break;case iA:return kA}return rA(A)?(this.consumeWhiteSpace(),MA):nA(A)?(this.reconsumeCodePoint(A),this.consumeNumericToken()):sA(A)?(this.reconsumeCodePoint(A),this.consumeIdentLikeToken()):{type:6,value:l(A)}},A.prototype.consumeCodePoint=function(){var A=this._value.shift();return void 0===A?-1:A},A.prototype.reconsumeCodePoint=function(A){this._value.unshift(A)},A.prototype.peekCodePoint=function(A){return A>=this._value.length?-1:this._value[A]},A.prototype.consumeUnicodeRangeToken=function(){for(var A=[],e=this.consumeCodePoint();aA(e)&&A.length<6;)A.push(e),e=this.consumeCodePoint();for(var t=!1;63===e&&A.length<6;)A.push(e),e=this.consumeCodePoint(),t=!0;if(t)return{type:30,start:parseInt(l.apply(void 0,A.map((function(A){return 63===A?48:A}))),16),end:parseInt(l.apply(void 0,A.map((function(A){return 63===A?70:A}))),16)};var i=parseInt(l.apply(void 0,A),16);if(this.peekCodePoint(0)===eA&&aA(this.peekCodePoint(1))){this.consumeCodePoint(),e=this.consumeCodePoint();for(var n=[];aA(e)&&n.length<6;)n.push(e),e=this.consumeCodePoint();return{type:30,start:i,end:parseInt(l.apply(void 0,n),16)}}return{type:30,start:i,end:i}},A.prototype.consumeIdentLikeToken=function(){var A=this.consumeName();return"url"===A.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:A}):{type:20,value:A}},A.prototype.consumeUrlToken=function(){var A=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===iA)return{type:22,value:""};var e=this.peekCodePoint(0);if(39===e||34===e){var t=this.consumeStringToken(this.consumeCodePoint());return 0===t.type&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===iA||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:t.value}):(this.consumeBadUrlRemnants(),FA)}for(;;){var i=this.consumeCodePoint();if(i===iA||41===i)return{type:22,value:l.apply(void 0,A)};if(rA(i))return this.consumeWhiteSpace(),this.peekCodePoint(0)===iA||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:l.apply(void 0,A)}):(this.consumeBadUrlRemnants(),FA);if(34===i||39===i||40===i||lA(i))return this.consumeBadUrlRemnants(),FA;if(92===i){if(!cA(i,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),FA;A.push(this.consumeEscapedCodePoint())}else A.push(i)}},A.prototype.consumeWhiteSpace=function(){for(;rA(this.peekCodePoint(0));)this.consumeCodePoint()},A.prototype.consumeBadUrlRemnants=function(){for(;;){var A=this.consumeCodePoint();if(41===A||A===iA)return;cA(A,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},A.prototype.consumeStringSlice=function(A){for(var e="";A>0;){var t=Math.min(5e4,A);e+=l.apply(void 0,this._value.splice(0,t)),A-=t}return this._value.shift(),e},A.prototype.consumeStringToken=function(A){for(var e="",t=0;;){var i=this._value[t];if(i===iA||void 0===i||i===A)return{type:0,value:e+=this.consumeStringSlice(t)};if(10===i)return this._value.splice(0,t),xA;if(92===i){var n=this._value[t+1];n!==iA&&void 0!==n&&(10===n?(e+=this.consumeStringSlice(t),t=-1,this._value.shift()):cA(i,n)&&(e+=this.consumeStringSlice(t),e+=l(this.consumeEscapedCodePoint()),t=-1))}t++}},A.prototype.consumeNumber=function(){var A=[],e=4,t=this.peekCodePoint(0);for(t!==tA&&t!==eA||A.push(this.consumeCodePoint());nA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0);var i=this.peekCodePoint(1);if(46===t&&nA(i))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;nA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0),i=this.peekCodePoint(1);var n=this.peekCodePoint(2);if((69===t||101===t)&&((i===tA||i===eA)&&nA(n)||nA(i)))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;nA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());return[gA(A),e]},A.prototype.consumeNumericToken=function(){var A=this.consumeNumber(),e=A[0],t=A[1],i=this.peekCodePoint(0),n=this.peekCodePoint(1),a=this.peekCodePoint(2);return dA(i,n,a)?{type:15,number:e,flags:t,unit:this.consumeName()}:37===i?(this.consumeCodePoint(),{type:16,number:e,flags:t}):{type:17,number:e,flags:t}},A.prototype.consumeEscapedCodePoint=function(){var A=this.consumeCodePoint();if(aA(A)){for(var e=l(A);aA(this.peekCodePoint(0))&&e.length<6;)e+=l(this.consumeCodePoint());rA(this.peekCodePoint(0))&&this.consumeCodePoint();var t=parseInt(e,16);return 0===t||function(A){return A>=55296&&A<=57343}(t)||t>1114111?65533:t}return A===iA?65533:A},A.prototype.consumeName=function(){for(var A="";;){var e=this.consumeCodePoint();if(oA(e))A+=l(e);else{if(!cA(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),A;A+=l(this.consumeEscapedCodePoint())}}},A}(),OA=function(){function A(A){this._tokens=A}return A.create=function(e){var t=new HA;return t.write(e),new A(t.read())},A.parseValue=function(e){return A.create(e).parseComponentValue()},A.parseValues=function(e){return A.create(e).parseComponentValues()},A.prototype.parseComponentValue=function(){for(var A=this.consumeToken();31===A.type;)A=this.consumeToken();if(32===A.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(A);var e=this.consumeComponentValue();do{A=this.consumeToken()}while(31===A.type);if(32===A.type)return e;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},A.prototype.parseComponentValues=function(){for(var A=[];;){var e=this.consumeComponentValue();if(32===e.type)return A;A.push(e),A.push()}},A.prototype.consumeComponentValue=function(){var A=this.consumeToken();switch(A.type){case 11:case 28:case 2:return this.consumeSimpleBlock(A.type);case 19:return this.consumeFunction(A)}return A},A.prototype.consumeSimpleBlock=function(A){for(var e={type:A,values:[]},t=this.consumeToken();;){if(32===t.type||zA(t,A))return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue()),t=this.consumeToken()}},A.prototype.consumeFunction=function(A){for(var e={name:A.value,values:[],type:18};;){var t=this.consumeToken();if(32===t.type||3===t.type)return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue())}},A.prototype.consumeToken=function(){var A=this._tokens.shift();return void 0===A?kA:A},A.prototype.reconsumeToken=function(A){this._tokens.unshift(A)},A}(),DA=function(A){return 15===A.type},NA=function(A){return 17===A.type},RA=function(A){return 20===A.type},PA=function(A){return 0===A.type},VA=function(A,e){return RA(A)&&A.value===e},KA=function(A){return 31!==A.type},GA=function(A){return 31!==A.type&&4!==A.type},WA=function(A){var e=[],t=[];return A.forEach((function(A){if(4===A.type){if(0===t.length)throw new Error("Error parsing function args, zero tokens for arg");return e.push(t),void(t=[])}31!==A.type&&t.push(A)})),t.length&&e.push(t),e},zA=function(A,e){return 11===e&&12===A.type||28===e&&29===A.type||2===e&&3===A.type},XA=function(A){return 17===A.type||15===A.type},YA=function(A){return 16===A.type||XA(A)},jA=function(A){return A.length>1?[A[0],A[1]]:[A[0]]},JA={type:17,number:0,flags:4},ZA={type:16,number:50,flags:4},qA={type:16,number:100,flags:4},_A=function(A,e,t){var i=A[0],n=A[1];return[$A(i,e),$A(void 0!==n?n:i,t)]},$A=function(A,e){if(16===A.type)return A.number/100*e;if(DA(A))switch(A.unit){case"rem":case"em":return 16*A.number;default:return A.number}return A.number},Ae="grad",ee="turn",te=function(A,e){if(15===e.type)switch(e.unit){case"deg":return Math.PI*e.number/180;case Ae:return Math.PI/200*e.number;case"rad":return e.number;case ee:return 2*Math.PI*e.number}throw new Error("Unsupported angle type")},ie=function(A){return 15===A.type&&("deg"===A.unit||A.unit===Ae||"rad"===A.unit||A.unit===ee)},ne=function(A){switch(A.filter(RA).map((function(A){return A.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[JA,JA];case"to top":case"bottom":return ae(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[JA,qA];case"to right":case"left":return ae(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[qA,qA];case"to bottom":case"top":return ae(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[qA,JA];case"to left":case"right":return ae(270)}return 0},ae=function(A){return Math.PI*A/180},re=function(A,e){if(18===e.type){var t=ue[e.name];if(void 0===t)throw new Error('Attempting to parse an unsupported color function "'+e.name+'"');return t(A,e.values)}if(5===e.type){if(3===e.value.length){var i=e.value.substring(0,1),n=e.value.substring(1,2),a=e.value.substring(2,3);return le(parseInt(i+i,16),parseInt(n+n,16),parseInt(a+a,16),1)}if(4===e.value.length){i=e.value.substring(0,1),n=e.value.substring(1,2),a=e.value.substring(2,3);var r=e.value.substring(3,4);return le(parseInt(i+i,16),parseInt(n+n,16),parseInt(a+a,16),parseInt(r+r,16)/255)}if(6===e.value.length)return i=e.value.substring(0,2),n=e.value.substring(2,4),a=e.value.substring(4,6),le(parseInt(i,16),parseInt(n,16),parseInt(a,16),1);if(8===e.value.length)return i=e.value.substring(0,2),n=e.value.substring(2,4),a=e.value.substring(4,6),r=e.value.substring(6,8),le(parseInt(i,16),parseInt(n,16),parseInt(a,16),parseInt(r,16)/255)}if(20===e.type){var s=we[e.value.toUpperCase()];if(void 0!==s)return s}return we.TRANSPARENT},se=function(A){return 0==(255&A)},oe=function(A){var e=255&A,t=255&A>>8,i=255&A>>16,n=255&A>>24;return e<255?"rgba("+n+","+i+","+t+","+e/255+")":"rgb("+n+","+i+","+t+")"},le=function(A,e,t,i){return(A<<24|e<<16|t<<8|Math.round(255*i)<<0)>>>0},ce=function(A,e){if(17===A.type)return A.number;if(16===A.type){var t=3===e?1:255;return 3===e?A.number/100*t:Math.round(A.number/100*t)}return 0},de=function(A,e){var t=e.filter(GA);if(3===t.length){var i=t.map(ce),n=i[0],a=i[1],r=i[2];return le(n,a,r,1)}if(4===t.length){var s=t.map(ce),o=(n=s[0],a=s[1],r=s[2],s[3]);return le(n,a,r,o)}return 0};function he(A,e,t){return t<0&&(t+=1),t>=1&&(t-=1),t<1/6?(e-A)*t*6+A:t<.5?e:t<2/3?6*(e-A)*(2/3-t)+A:A}var ge=function(A,e){var t=e.filter(GA),i=t[0],n=t[1],a=t[2],r=t[3],s=(17===i.type?ae(i.number):te(A,i))/(2*Math.PI),o=YA(n)?n.number/100:0,l=YA(a)?a.number/100:0,c=void 0!==r&&YA(r)?$A(r,1):1;if(0===o)return le(255*l,255*l,255*l,1);var d=l<=.5?l*(o+1):l+o-l*o,h=2*l-d,g=he(h,d,s+1/3),u=he(h,d,s),p=he(h,d,s-1/3);return le(255*g,255*u,255*p,c)},ue={hsl:ge,hsla:ge,rgb:de,rgba:de},pe=function(A,e){return re(A,OA.create(e).parseComponentValue())},we={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},me={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(RA(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},fe={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Be=function(A,e){var t=re(A,e[0]),i=e[1];return i&&YA(i)?{color:t,stop:i}:{color:t,stop:null}},Ee=function(A,e){var t=A[0],i=A[A.length-1];null===t.stop&&(t.stop=JA),null===i.stop&&(i.stop=qA);for(var n=[],a=0,r=0;ra?n.push(o):n.push(a),a=o}else n.push(null)}var l=null;for(r=0;rA.optimumDistance)?{optimumCorner:e,optimumDistance:s}:A}),{optimumDistance:n?1/0:-1/0,optimumCorner:null}).optimumCorner},ye=function(A,e){var t=ae(180),i=[];return WA(e).forEach((function(e,n){if(0===n){var a=e[0];if(20===a.type&&-1!==["top","left","right","bottom"].indexOf(a.value))return void(t=ne(e));if(ie(a))return void(t=(te(A,a)+ae(270))%ae(360))}var r=Be(A,e);i.push(r)})),{angle:t,stops:i,type:1}},Fe="closest-side",xe="farthest-side",Qe="closest-corner",Ue="farthest-corner",Ie="circle",Se="ellipse",Te="cover",Le="contain",Me=function(A,e){var t=0,i=3,n=[],a=[];return WA(e).forEach((function(e,r){var s=!0;if(0===r?s=e.reduce((function(A,e){if(RA(e))switch(e.value){case"center":return a.push(ZA),!1;case"top":case"left":return a.push(JA),!1;case"right":case"bottom":return a.push(qA),!1}else if(YA(e)||XA(e))return a.push(e),!1;return A}),s):1===r&&(s=e.reduce((function(A,e){if(RA(e))switch(e.value){case Ie:return t=0,!1;case Se:return t=1,!1;case Le:case Fe:return i=0,!1;case xe:return i=1,!1;case Qe:return i=2,!1;case Te:case Ue:return i=3,!1}else if(XA(e)||YA(e))return Array.isArray(i)||(i=[]),i.push(e),!1;return A}),s)),s){var o=Be(A,e);n.push(o)}})),{size:i,shape:t,stops:n,position:a,type:2}},ke=function(A,e){if(22===e.type){var t={url:e.value,type:0};return A.cache.addImage(e.value),t}if(18===e.type){var i=Oe[e.name];if(void 0===i)throw new Error('Attempting to parse an unsupported image function "'+e.name+'"');return i(A,e.values)}throw new Error("Unsupported image type "+e.type)};var He,Oe={"linear-gradient":function(A,e){var t=ae(180),i=[];return WA(e).forEach((function(e,n){if(0===n){var a=e[0];if(20===a.type&&"to"===a.value)return void(t=ne(e));if(ie(a))return void(t=te(A,a))}var r=Be(A,e);i.push(r)})),{angle:t,stops:i,type:1}},"-moz-linear-gradient":ye,"-ms-linear-gradient":ye,"-o-linear-gradient":ye,"-webkit-linear-gradient":ye,"radial-gradient":function(A,e){var t=0,i=3,n=[],a=[];return WA(e).forEach((function(e,r){var s=!0;if(0===r){var o=!1;s=e.reduce((function(A,e){if(o)if(RA(e))switch(e.value){case"center":return a.push(ZA),A;case"top":case"left":return a.push(JA),A;case"right":case"bottom":return a.push(qA),A}else(YA(e)||XA(e))&&a.push(e);else if(RA(e))switch(e.value){case Ie:return t=0,!1;case Se:return t=1,!1;case"at":return o=!0,!1;case Fe:return i=0,!1;case Te:case xe:return i=1,!1;case Le:case Qe:return i=2,!1;case Ue:return i=3,!1}else if(XA(e)||YA(e))return Array.isArray(i)||(i=[]),i.push(e),!1;return A}),s)}if(s){var l=Be(A,e);n.push(l)}})),{size:i,shape:t,stops:n,position:a,type:2}},"-moz-radial-gradient":Me,"-ms-radial-gradient":Me,"-o-radial-gradient":Me,"-webkit-radial-gradient":Me,"-webkit-gradient":function(A,e){var t=ae(180),i=[],n=1;return WA(e).forEach((function(e,t){var a=e[0];if(0===t){if(RA(a)&&"linear"===a.value)return void(n=1);if(RA(a)&&"radial"===a.value)return void(n=2)}if(18===a.type)if("from"===a.name){var r=re(A,a.values[0]);i.push({stop:JA,color:r})}else if("to"===a.name)r=re(A,a.values[0]),i.push({stop:qA,color:r});else if("color-stop"===a.name){var s=a.values.filter(GA);if(2===s.length){r=re(A,s[1]);var o=s[0];NA(o)&&i.push({stop:{type:16,number:100*o.number,flags:o.flags},color:r})}}})),1===n?{angle:(t+ae(180))%ae(360),stops:i,type:n}:{size:3,shape:0,stops:i,position:[],type:n}}},De={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(A,e){if(0===e.length)return[];var t=e[0];return 20===t.type&&"none"===t.value?[]:e.filter((function(A){return GA(A)&&function(A){return!(20===A.type&&"none"===A.value||18===A.type&&!Oe[A.name])}(A)})).map((function(e){return ke(A,e)}))}},Ne={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(RA(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},Re={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(A,e){return WA(e).map((function(A){return A.filter(YA)})).map(jA)}},Pe={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(A,e){return WA(e).map((function(A){return A.filter(RA).map((function(A){return A.value})).join(" ")})).map(Ve)}},Ve=function(A){switch(A){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(A){A.AUTO="auto",A.CONTAIN="contain",A.COVER="cover"}(He||(He={}));var Ke,Ge={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(A,e){return WA(e).map((function(A){return A.filter(We)}))}},We=function(A){return RA(A)||YA(A)},ze=function(A){return{name:"border-"+A+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},Xe=ze("top"),Ye=ze("right"),je=ze("bottom"),Je=ze("left"),Ze=function(A){return{name:"border-radius-"+A,initialValue:"0 0",prefix:!1,type:1,parse:function(A,e){return jA(e.filter(YA))}}},qe=Ze("top-left"),_e=Ze("top-right"),$e=Ze("bottom-right"),At=Ze("bottom-left"),et=function(A){return{name:"border-"+A+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(A,e){switch(e){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},tt=et("top"),it=et("right"),nt=et("bottom"),at=et("left"),rt=function(A){return{name:"border-"+A+"-width",initialValue:"0",type:0,prefix:!1,parse:function(A,e){return DA(e)?e.number:0}}},st=rt("top"),ot=rt("right"),lt=rt("bottom"),ct=rt("left"),dt={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ht={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(A,e){return"rtl"===e?1:0}},gt={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(A,e){return e.filter(RA).reduce((function(A,e){return A|ut(e.value)}),0)}},ut=function(A){switch(A){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},pt={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},wt={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(A,e){return 20===e.type&&"normal"===e.value?0:17===e.type||15===e.type?e.number:0}};!function(A){A.NORMAL="normal",A.STRICT="strict"}(Ke||(Ke={}));var mt,ft={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"strict"===e?Ke.STRICT:Ke.NORMAL}},Bt={name:"line-height",initialValue:"normal",prefix:!1,type:4},Et=function(A,e){return RA(A)&&"normal"===A.value?1.2*e:17===A.type?e*A.number:YA(A)?$A(A,e):e},Ct={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(A,e){return 20===e.type&&"none"===e.value?null:ke(A,e)}},bt={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(A,e){return"inside"===e?0:1}},vt={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},yt=function(A){return{name:"margin-"+A,initialValue:"0",prefix:!1,type:4}},Ft=yt("top"),xt=yt("right"),Qt=yt("bottom"),Ut=yt("left"),It={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(A,e){return e.filter(RA).map((function(A){switch(A.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},St={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"break-word"===e?"break-word":"normal"}},Tt=function(A){return{name:"padding-"+A,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},Lt=Tt("top"),Mt=Tt("right"),kt=Tt("bottom"),Ht=Tt("left"),Ot={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(A,e){switch(e){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},Dt={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(A,e){switch(e){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},Nt={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return 1===e.length&&VA(e[0],"none")?[]:WA(e).map((function(e){for(var t={color:we.TRANSPARENT,offsetX:JA,offsetY:JA,blur:JA},i=0,n=0;n1?1:0],this.overflowWrap=mi(A,St,e.overflowWrap),this.paddingTop=mi(A,Lt,e.paddingTop),this.paddingRight=mi(A,Mt,e.paddingRight),this.paddingBottom=mi(A,kt,e.paddingBottom),this.paddingLeft=mi(A,Ht,e.paddingLeft),this.paintOrder=mi(A,di,e.paintOrder),this.position=mi(A,Dt,e.position),this.textAlign=mi(A,Ot,e.textAlign),this.textDecorationColor=mi(A,Zt,null!==(t=e.textDecorationColor)&&void 0!==t?t:e.color),this.textDecorationLine=mi(A,qt,null!==(i=e.textDecorationLine)&&void 0!==i?i:e.textDecoration),this.textShadow=mi(A,Nt,e.textShadow),this.textTransform=mi(A,Rt,e.textTransform),this.transform=mi(A,Pt,e.transform),this.transformOrigin=mi(A,Wt,e.transformOrigin),this.visibility=mi(A,zt,e.visibility),this.webkitTextStrokeColor=mi(A,hi,e.webkitTextStrokeColor),this.webkitTextStrokeWidth=mi(A,gi,e.webkitTextStrokeWidth),this.wordBreak=mi(A,Xt,e.wordBreak),this.zIndex=mi(A,Yt,e.zIndex)}return A.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},A.prototype.isTransparent=function(){return se(this.backgroundColor)},A.prototype.isTransformed=function(){return null!==this.transform},A.prototype.isPositioned=function(){return 0!==this.position},A.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},A.prototype.isFloating=function(){return 0!==this.float},A.prototype.isInlineLevel=function(){return ii(this.display,4)||ii(this.display,33554432)||ii(this.display,268435456)||ii(this.display,536870912)||ii(this.display,67108864)||ii(this.display,134217728)},A}(),pi=function(A,e){this.content=mi(A,ni,e.content),this.quotes=mi(A,oi,e.quotes)},wi=function(A,e){this.counterIncrement=mi(A,ai,e.counterIncrement),this.counterReset=mi(A,ri,e.counterReset)},mi=function(A,e,t){var i=new HA,n=null!=t?t.toString():e.initialValue;i.write(n);var a=new OA(i.read());switch(e.type){case 2:var r=a.parseComponentValue();return e.parse(A,RA(r)?r.value:e.initialValue);case 0:return e.parse(A,a.parseComponentValue());case 1:return e.parse(A,a.parseComponentValues());case 4:return a.parseComponentValue();case 3:switch(e.format){case"angle":return te(A,a.parseComponentValue());case"color":return re(A,a.parseComponentValue());case"image":return ke(A,a.parseComponentValue());case"length":var s=a.parseComponentValue();return XA(s)?s:JA;case"length-percentage":var o=a.parseComponentValue();return YA(o)?o:JA;case"time":return jt.parse(A,a.parseComponentValue())}}},fi=function(A,e){var t=function(A){switch(A.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(A);return 1===t||e===t},Bi=function(A,e){this.context=A,this.textNodes=[],this.elements=[],this.flags=0,fi(e,3),this.styles=new ui(A,window.getComputedStyle(e,null)),yn(e)&&(this.styles.animationDuration.some((function(A){return A>0}))&&(e.style.animationDuration="0s"),null!==this.styles.transform&&(e.style.transform="none")),this.bounds=s(this.context,e),fi(e,4)&&(this.flags|=16)},Ei="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ci="undefined"==typeof Uint8Array?[]:new Uint8Array(256),bi=0;bi=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>5])<<2)+(31&A),this.data[e];if(A<=65535)return e=((e=this.index[2048+(A-55296>>5)])<<2)+(31&A),this.data[e];if(A>11),e=this.index[e],e+=A>>5&63,e=((e=this.index[e])<<2)+(31&A),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},A}(),Fi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",xi="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Qi=0;Qi>10),r%1024+56320)),(n+1===t||i.length>16384)&&(a+=String.fromCharCode.apply(String,i),i.length=0)}return a},ki=function(A,e){var t,i,n,a=function(A){var e,t,i,n,a,r=.75*A.length,s=A.length,o=0;"="===A[A.length-1]&&(r--,"="===A[A.length-2]&&r--);var l="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(r):new Array(r),c=Array.isArray(l)?l:new Uint8Array(l);for(e=0;e>4,c[o++]=(15&i)<<4|n>>2,c[o++]=(3&n)<<6|63&a;return l}(A),r=Array.isArray(a)?function(A){for(var e=A.length,t=[],i=0;i=55296&&n<=56319&&t=t)return{done:!0,value:null};for(var A=Hi;ir.x||n.y>r.y;return r=n,0===e||s}));return A.body.removeChild(e),s}(document);return Object.defineProperty(Ki,"SUPPORT_WORD_BREAKING",{value:A}),A},get SUPPORT_SVG_DRAWING(){var A=function(A){var e=new Image,t=A.createElement("canvas"),i=t.getContext("2d");if(!i)return!1;e.src="data:image/svg+xml,";try{i.drawImage(e,0,0),t.toDataURL()}catch(A){return!1}return!0}(document);return Object.defineProperty(Ki,"SUPPORT_SVG_DRAWING",{value:A}),A},get SUPPORT_FOREIGNOBJECT_DRAWING(){var A="function"==typeof Array.from&&"function"==typeof window.fetch?function(A){var e=A.createElement("canvas"),t=100;e.width=t,e.height=t;var i=e.getContext("2d");if(!i)return Promise.reject(!1);i.fillStyle="rgb(0, 255, 0)",i.fillRect(0,0,t,t);var n=new Image,a=e.toDataURL();n.src=a;var r=Pi(t,t,0,0,n);return i.fillStyle="red",i.fillRect(0,0,t,t),Vi(r).then((function(e){i.drawImage(e,0,0);var n=i.getImageData(0,0,t,t).data;i.fillStyle="red",i.fillRect(0,0,t,t);var r=A.createElement("div");return r.style.backgroundImage="url("+a+")",r.style.height="100px",Ri(n)?Vi(Pi(t,t,0,0,r)):Promise.reject(!1)})).then((function(A){return i.drawImage(A,0,0),Ri(i.getImageData(0,0,t,t).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(Ki,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:A}),A},get SUPPORT_CORS_IMAGES(){var A=void 0!==(new Image).crossOrigin;return Object.defineProperty(Ki,"SUPPORT_CORS_IMAGES",{value:A}),A},get SUPPORT_RESPONSE_TYPE(){var A="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(Ki,"SUPPORT_RESPONSE_TYPE",{value:A}),A},get SUPPORT_CORS_XHR(){var A="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Ki,"SUPPORT_CORS_XHR",{value:A}),A},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var A=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(Ki,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:A}),A}},Gi=function(A,e){this.text=A,this.bounds=e},Wi=function(A,e){var t=e.ownerDocument;if(t){var i=t.createElement("html2canvaswrapper");i.appendChild(e.cloneNode(!0));var n=e.parentNode;if(n){n.replaceChild(i,e);var a=s(A,i);return i.firstChild&&n.replaceChild(i.firstChild,i),a}}return r.EMPTY},zi=function(A,e,t){var i=A.ownerDocument;if(!i)throw new Error("Node has no owner document");var n=i.createRange();return n.setStart(A,e),n.setEnd(A,e+t),n},Xi=function(A){if(Ki.SUPPORT_NATIVE_TEXT_SEGMENTATION){var e=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(e.segment(A)).map((function(A){return A.segment}))}return function(A){for(var e,t=Ni(A),i=[];!(e=t.next()).done;)e.value&&i.push(e.value.slice());return i}(A)},Yi=function(A,e){return 0!==e.letterSpacing?Xi(A):function(A,e){if(Ki.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(t.segment(A)).map((function(A){return A.segment}))}return Ji(A,e)}(A,e)},ji=[32,160,4961,65792,65793,4153,4241],Ji=function(A,e){for(var t,i=function(A,e){var t=o(A),i=$(t,e),n=i[0],a=i[1],r=i[2],s=t.length,l=0,c=0;return{next:function(){if(c>=s)return{done:!0,value:null};for(var A=P;c0)if(Ki.SUPPORT_RANGE_BOUNDS){var n=zi(i,s,e.length).getClientRects();if(n.length>1){var o=Xi(e),l=0;o.forEach((function(e){a.push(new Gi(e,r.fromDOMRectList(A,zi(i,l+s,e.length).getClientRects()))),l+=e.length}))}else a.push(new Gi(e,r.fromDOMRectList(A,n)))}else{var c=i.splitText(e.length);a.push(new Gi(e,Wi(A,i))),i=c}else Ki.SUPPORT_RANGE_BOUNDS||(i=i.splitText(e.length));s+=e.length})),a}(A,this.text,t,e)},qi=function(A,e){switch(e){case 1:return A.toLowerCase();case 3:return A.replace(_i,$i);case 2:return A.toUpperCase();default:return A}},_i=/(^|\s|:|-|\(|\))([a-z])/g,$i=function(A,e,t){return A.length>0?e+t.toUpperCase():A},An=function(A){function t(e,t){var i=A.call(this,e,t)||this;return i.src=t.currentSrc||t.src,i.intrinsicWidth=t.naturalWidth,i.intrinsicHeight=t.naturalHeight,i.context.cache.addImage(i.src),i}return e(t,A),t}(Bi),en=function(A){function t(e,t){var i=A.call(this,e,t)||this;return i.canvas=t,i.intrinsicWidth=t.width,i.intrinsicHeight=t.height,i}return e(t,A),t}(Bi),tn=function(A){function t(e,t){var i=A.call(this,e,t)||this,n=new XMLSerializer,a=s(e,t);return t.setAttribute("width",a.width+"px"),t.setAttribute("height",a.height+"px"),i.svg="data:image/svg+xml,"+encodeURIComponent(n.serializeToString(t)),i.intrinsicWidth=t.width.baseVal.value,i.intrinsicHeight=t.height.baseVal.value,i.context.cache.addImage(i.svg),i}return e(t,A),t}(Bi),nn=function(A){function t(e,t){var i=A.call(this,e,t)||this;return i.value=t.value,i}return e(t,A),t}(Bi),an=function(A){function t(e,t){var i=A.call(this,e,t)||this;return i.start=t.start,i.reversed="boolean"==typeof t.reversed&&!0===t.reversed,i}return e(t,A),t}(Bi),rn=[{type:15,flags:0,unit:"px",number:3}],sn=[{type:16,flags:0,number:50}],on="checkbox",ln="radio",cn="password",dn=707406591,hn=function(A){function t(e,t){var i,n,a,s=A.call(this,e,t)||this;switch(s.type=t.type.toLowerCase(),s.checked=t.checked,s.value=0===(a=(n=t).type===cn?new Array(n.value.length+1).join("•"):n.value).length?n.placeholder||"":a,s.type!==on&&s.type!==ln||(s.styles.backgroundColor=3739148031,s.styles.borderTopColor=s.styles.borderRightColor=s.styles.borderBottomColor=s.styles.borderLeftColor=2779096575,s.styles.borderTopWidth=s.styles.borderRightWidth=s.styles.borderBottomWidth=s.styles.borderLeftWidth=1,s.styles.borderTopStyle=s.styles.borderRightStyle=s.styles.borderBottomStyle=s.styles.borderLeftStyle=1,s.styles.backgroundClip=[0],s.styles.backgroundOrigin=[0],s.bounds=(i=s.bounds).width>i.height?new r(i.left+(i.width-i.height)/2,i.top,i.height,i.height):i.width0)t.textNodes.push(new Zi(A,n,t.styles));else if(vn(n))if(Dn(n)&&n.assignedNodes)n.assignedNodes().forEach((function(e){return mn(A,e,t,i)}));else{var r=fn(A,n);r.styles.isVisible()&&(En(n,r,i)?r.flags|=4:Cn(r.styles)&&(r.flags|=2),-1!==wn.indexOf(n.tagName)&&(r.flags|=8),t.elements.push(r),n.slot,n.shadowRoot?mn(A,n.shadowRoot,r,i):Hn(n)||In(n)||On(n)||mn(A,n,r,i))}},fn=function(A,e){return Ln(e)?new An(A,e):Tn(e)?new en(A,e):In(e)?new tn(A,e):xn(e)?new nn(A,e):Qn(e)?new an(A,e):Un(e)?new hn(A,e):On(e)?new gn(A,e):Hn(e)?new un(A,e):Mn(e)?new pn(A,e):new Bi(A,e)},Bn=function(A,e){var t=fn(A,e);return t.flags|=4,mn(A,e,t,t),t},En=function(A,e,t){return e.styles.isPositionedWithZIndex()||e.styles.opacity<1||e.styles.isTransformed()||Sn(A)&&t.styles.isTransparent()},Cn=function(A){return A.isPositioned()||A.isFloating()},bn=function(A){return A.nodeType===Node.TEXT_NODE},vn=function(A){return A.nodeType===Node.ELEMENT_NODE},yn=function(A){return vn(A)&&void 0!==A.style&&!Fn(A)},Fn=function(A){return"object"==typeof A.className},xn=function(A){return"LI"===A.tagName},Qn=function(A){return"OL"===A.tagName},Un=function(A){return"INPUT"===A.tagName},In=function(A){return"svg"===A.tagName},Sn=function(A){return"BODY"===A.tagName},Tn=function(A){return"CANVAS"===A.tagName},Ln=function(A){return"IMG"===A.tagName},Mn=function(A){return"IFRAME"===A.tagName},kn=function(A){return"STYLE"===A.tagName},Hn=function(A){return"TEXTAREA"===A.tagName},On=function(A){return"SELECT"===A.tagName},Dn=function(A){return"SLOT"===A.tagName},Nn=function(A){return A.tagName.indexOf("-")>0},Rn=function(){function A(){this.counters={}}return A.prototype.getCounterValue=function(A){var e=this.counters[A];return e&&e.length?e[e.length-1]:1},A.prototype.getCounterValues=function(A){return this.counters[A]||[]},A.prototype.pop=function(A){var e=this;A.forEach((function(A){return e.counters[A].pop()}))},A.prototype.parse=function(A){var e=this,t=A.counterIncrement,i=A.counterReset,n=!0;null!==t&&t.forEach((function(A){var t=e.counters[A.counter];t&&0!==A.increment&&(n=!1,t.length||t.push(1),t[Math.max(0,t.length-1)]+=A.increment)}));var a=[];return n&&i.forEach((function(A){var t=e.counters[A.counter];a.push(A.counter),t||(t=e.counters[A.counter]=[]),t.push(A.reset)})),a},A}(),Pn={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},Vn={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Kn={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},Gn={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},Wn=function(A,e,t,i,n,a){return At?$n(A,n,a.length>0):i.integers.reduce((function(e,t,n){for(;A>=t;)A-=t,e+=i.values[n];return e}),"")+a},zn=function(A,e,t,i){var n="";do{t||A--,n=i(A)+n,A/=e}while(A*e>=e);return n},Xn=function(A,e,t,i,n){var a=t-e+1;return(A<0?"-":"")+(zn(Math.abs(A),a,i,(function(A){return l(Math.floor(A%a)+e)}))+n)},Yn=function(A,e,t){void 0===t&&(t=". ");var i=e.length;return zn(Math.abs(A),i,!1,(function(A){return e[Math.floor(A%i)]}))+t},jn=function(A,e,t,i,n,a){if(A<-9999||A>9999)return $n(A,4,n.length>0);var r=Math.abs(A),s=n;if(0===r)return e[0]+s;for(var o=0;r>0&&o<=4;o++){var l=r%10;0===l&&ii(a,1)&&""!==s?s=e[l]+s:l>1||1===l&&0===o||1===l&&1===o&&ii(a,2)||1===l&&1===o&&ii(a,4)&&A>100||1===l&&o>1&&ii(a,8)?s=e[l]+(o>0?t[o-1]:"")+s:1===l&&o>0&&(s=t[o-1]+s),r=Math.floor(r/10)}return(A<0?i:"")+s},Jn="十百千萬",Zn="拾佰仟萬",qn="マイナス",_n="마이너스",$n=function(A,e,t){var i=t?". ":"",n=t?"、":"",a=t?", ":"",r=t?" ":"";switch(e){case 0:return"•"+r;case 1:return"◦"+r;case 2:return"◾"+r;case 5:var s=Xn(A,48,57,!0,i);return s.length<4?"0"+s:s;case 4:return Yn(A,"〇一二三四五六七八九",n);case 6:return Wn(A,1,3999,Pn,3,i).toLowerCase();case 7:return Wn(A,1,3999,Pn,3,i);case 8:return Xn(A,945,969,!1,i);case 9:return Xn(A,97,122,!1,i);case 10:return Xn(A,65,90,!1,i);case 11:return Xn(A,1632,1641,!0,i);case 12:case 49:return Wn(A,1,9999,Vn,3,i);case 35:return Wn(A,1,9999,Vn,3,i).toLowerCase();case 13:return Xn(A,2534,2543,!0,i);case 14:case 30:return Xn(A,6112,6121,!0,i);case 15:return Yn(A,"子丑寅卯辰巳午未申酉戌亥",n);case 16:return Yn(A,"甲乙丙丁戊己庚辛壬癸",n);case 17:case 48:return jn(A,"零一二三四五六七八九",Jn,"負",n,14);case 47:return jn(A,"零壹貳參肆伍陸柒捌玖",Zn,"負",n,15);case 42:return jn(A,"零一二三四五六七八九",Jn,"负",n,14);case 41:return jn(A,"零壹贰叁肆伍陆柒捌玖",Zn,"负",n,15);case 26:return jn(A,"〇一二三四五六七八九","十百千万",qn,n,0);case 25:return jn(A,"零壱弐参四伍六七八九","拾百千万",qn,n,7);case 31:return jn(A,"영일이삼사오육칠팔구","십백천만",_n,a,7);case 33:return jn(A,"零一二三四五六七八九","十百千萬",_n,a,0);case 32:return jn(A,"零壹貳參四五六七八九","拾百千",_n,a,7);case 18:return Xn(A,2406,2415,!0,i);case 20:return Wn(A,1,19999,Gn,3,i);case 21:return Xn(A,2790,2799,!0,i);case 22:return Xn(A,2662,2671,!0,i);case 22:return Wn(A,1,10999,Kn,3,i);case 23:return Yn(A,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return Yn(A,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return Xn(A,3302,3311,!0,i);case 28:return Yn(A,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",n);case 29:return Yn(A,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",n);case 34:return Xn(A,3792,3801,!0,i);case 37:return Xn(A,6160,6169,!0,i);case 38:return Xn(A,4160,4169,!0,i);case 39:return Xn(A,2918,2927,!0,i);case 40:return Xn(A,1776,1785,!0,i);case 43:return Xn(A,3046,3055,!0,i);case 44:return Xn(A,3174,3183,!0,i);case 45:return Xn(A,3664,3673,!0,i);case 46:return Xn(A,3872,3881,!0,i);default:return Xn(A,48,57,!0,i)}},Aa="data-html2canvas-ignore",ea=function(){function A(A,e,t){if(this.context=A,this.options=t,this.scrolledElements=[],this.referenceElement=e,this.counters=new Rn,this.quoteDepth=0,!e.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(e.ownerDocument.documentElement,!1)}return A.prototype.toIFrame=function(A,e){var t=this,a=ia(A,e);if(!a.contentWindow)return Promise.reject("Unable to find iframe window");var r=A.defaultView.pageXOffset,s=A.defaultView.pageYOffset,o=a.contentWindow,l=o.document,c=ra(a).then((function(){return i(t,void 0,void 0,(function(){var A,t;return n(this,(function(i){switch(i.label){case 0:return this.scrolledElements.forEach(da),o&&(o.scrollTo(e.left,e.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||o.scrollY===e.top&&o.scrollX===e.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(o.scrollX-e.left,o.scrollY-e.top,0,0))),A=this.options.onclone,void 0===(t=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:l.fonts&&l.fonts.ready?[4,l.fonts.ready]:[3,2];case 1:i.sent(),i.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,aa(l)]:[3,4];case 3:i.sent(),i.label=4;case 4:return"function"==typeof A?[2,Promise.resolve().then((function(){return A(l,t)})).then((function(){return a}))]:[2,a]}}))}))}));return l.open(),l.write(la(document.doctype)+""),ca(this.referenceElement.ownerDocument,r,s),l.replaceChild(l.adoptNode(this.documentElement),l.documentElement),l.close(),c},A.prototype.createElementClone=function(A){if(fi(A,2),Tn(A))return this.createCanvasClone(A);if(kn(A))return this.createStyleClone(A);var e=A.cloneNode(!1);return Ln(e)&&(Ln(A)&&A.currentSrc&&A.currentSrc!==A.src&&(e.src=A.currentSrc,e.srcset=""),"lazy"===e.loading&&(e.loading="eager")),Nn(e)?this.createCustomElementClone(e):e},A.prototype.createCustomElementClone=function(A){var e=document.createElement("html2canvascustomelement");return oa(A.style,e),e},A.prototype.createStyleClone=function(A){try{var e=A.sheet;if(e&&e.cssRules){var t=[].slice.call(e.cssRules,0).reduce((function(A,e){return e&&"string"==typeof e.cssText?A+e.cssText:A}),""),i=A.cloneNode(!1);return i.textContent=t,i}}catch(A){if(this.context.logger.error("Unable to access cssRules property",A),"SecurityError"!==A.name)throw A}return A.cloneNode(!1)},A.prototype.createCanvasClone=function(A){var e;if(this.options.inlineImages&&A.ownerDocument){var t=A.ownerDocument.createElement("img");try{return t.src=A.toDataURL(),t}catch(e){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",A)}}var i=A.cloneNode(!1);try{i.width=A.width,i.height=A.height;var n=A.getContext("2d"),a=i.getContext("2d");if(a)if(!this.options.allowTaint&&n)a.putImageData(n.getImageData(0,0,A.width,A.height),0,0);else{var r=null!==(e=A.getContext("webgl2"))&&void 0!==e?e:A.getContext("webgl");if(r){var s=r.getContextAttributes();!1===(null==s?void 0:s.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",A)}a.drawImage(A,0,0)}return i}catch(e){this.context.logger.info("Unable to clone canvas as it is tainted",A)}return i},A.prototype.appendChildNode=function(A,e,t){vn(e)&&("SCRIPT"===e.tagName||e.hasAttribute(Aa)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(e))||this.options.copyStyles&&vn(e)&&kn(e)||A.appendChild(this.cloneNode(e,t))},A.prototype.cloneNode=function(A,e){var t=this;if(bn(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);var i=A.ownerDocument.defaultView;if(i&&vn(A)&&(yn(A)||Fn(A))){var n=this.createElementClone(A);n.style.transitionProperty="none";var a=i.getComputedStyle(A),r=i.getComputedStyle(A,":before"),s=i.getComputedStyle(A,":after");this.referenceElement===A&&yn(n)&&(this.clonedReferenceElement=n),Sn(n)&&pa(n);var o=this.counters.parse(new wi(this.context,a)),l=this.resolvePseudoContent(A,n,r,Ui.BEFORE);Nn(A)&&(e=!0);for(var c=A.shadowRoot?A.shadowRoot.firstChild:A.firstChild;c;c=c.nextSibling)if(vn(c)&&Dn(c)&&"function"==typeof c.assignedNodes){var d=c.assignedNodes();d.length&&d.forEach((function(A){return t.appendChildNode(n,A,e)}))}else this.appendChildNode(n,c,e);l&&n.insertBefore(l,n.firstChild);var h=this.resolvePseudoContent(A,n,s,Ui.AFTER);return h&&n.appendChild(h),this.counters.pop(o),(a&&(this.options.copyStyles||Fn(A))&&!Mn(A)||e)&&oa(a,n),0===A.scrollTop&&0===A.scrollLeft||this.scrolledElements.push([n,A.scrollLeft,A.scrollTop]),(Hn(A)||On(A))&&(Hn(n)||On(n))&&(n.value=A.value),n}return A.cloneNode(!1)},A.prototype.resolvePseudoContent=function(A,e,t,i){var n=this;if(t){var a=t.content,r=e.ownerDocument;if(r&&a&&"none"!==a&&"-moz-alt-content"!==a&&"none"!==t.display){this.counters.parse(new wi(this.context,t));var s=new pi(this.context,t),o=r.createElement("html2canvaspseudoelement");oa(t,o),s.content.forEach((function(e){if(0===e.type)o.appendChild(r.createTextNode(e.value));else if(22===e.type){var t=r.createElement("img");t.src=e.value,t.style.opacity="1",o.appendChild(t)}else if(18===e.type){if("attr"===e.name){var i=e.values.filter(RA);i.length&&o.appendChild(r.createTextNode(A.getAttribute(i[0].value)||""))}else if("counter"===e.name){var a=e.values.filter(GA),l=a[0],c=a[1];if(l&&RA(l)){var d=n.counters.getCounterValue(l.value),h=c&&RA(c)?vt.parse(n.context,c.value):3;o.appendChild(r.createTextNode($n(d,h,!1)))}}else if("counters"===e.name){var g=e.values.filter(GA),u=(l=g[0],g[1]);if(c=g[2],l&&RA(l)){var p=n.counters.getCounterValues(l.value),w=c&&RA(c)?vt.parse(n.context,c.value):3,m=u&&0===u.type?u.value:"",f=p.map((function(A){return $n(A,w,!1)})).join(m);o.appendChild(r.createTextNode(f))}}}else if(20===e.type)switch(e.value){case"open-quote":o.appendChild(r.createTextNode(li(s.quotes,n.quoteDepth++,!0)));break;case"close-quote":o.appendChild(r.createTextNode(li(s.quotes,--n.quoteDepth,!1)));break;default:o.appendChild(r.createTextNode(e.value))}})),o.className=ha+" "+ga;var l=i===Ui.BEFORE?" "+ha:" "+ga;return Fn(e)?e.className.baseValue+=l:e.className+=l,o}}},A.destroy=function(A){return!!A.parentNode&&(A.parentNode.removeChild(A),!0)},A}();!function(A){A[A.BEFORE=0]="BEFORE",A[A.AFTER=1]="AFTER"}(Ui||(Ui={}));var ta,ia=function(A,e){var t=A.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=e.width.toString(),t.height=e.height.toString(),t.scrolling="no",t.setAttribute(Aa,"true"),A.body.appendChild(t),t},na=function(A){return new Promise((function(e){A.complete?e():A.src?(A.onload=e,A.onerror=e):e()}))},aa=function(A){return Promise.all([].slice.call(A.images,0).map(na))},ra=function(A){return new Promise((function(e,t){var i=A.contentWindow;if(!i)return t("No window assigned for iframe");var n=i.document;i.onload=A.onload=function(){i.onload=A.onload=null;var t=setInterval((function(){n.body.childNodes.length>0&&"complete"===n.readyState&&(clearInterval(t),e(A))}),50)}}))},sa=["all","d","content"],oa=function(A,e){for(var t=A.length-1;t>=0;t--){var i=A.item(t);-1===sa.indexOf(i)&&e.style.setProperty(i,A.getPropertyValue(i))}return e},la=function(A){var e="";return A&&(e+=""),e},ca=function(A,e,t){A&&A.defaultView&&(e!==A.defaultView.pageXOffset||t!==A.defaultView.pageYOffset)&&A.defaultView.scrollTo(e,t)},da=function(A){var e=A[0],t=A[1],i=A[2];e.scrollLeft=t,e.scrollTop=i},ha="___html2canvas___pseudoelement_before",ga="___html2canvas___pseudoelement_after",ua='{\n content: "" !important;\n display: none !important;\n}',pa=function(A){wa(A,"."+ha+":before"+ua+"\n ."+ga+":after"+ua)},wa=function(A,e){var t=A.ownerDocument;if(t){var i=t.createElement("style");i.textContent=e,A.appendChild(i)}},ma=function(){function A(){}return A.getOrigin=function(e){var t=A._link;return t?(t.href=e,t.href=t.href,t.protocol+t.hostname+t.port):"about:blank"},A.isSameOrigin=function(e){return A.getOrigin(e)===A._origin},A.setContext=function(e){A._link=e.document.createElement("a"),A._origin=A.getOrigin(e.location.href)},A._origin="about:blank",A}(),fa=function(){function A(A,e){this.context=A,this._options=e,this._cache={}}return A.prototype.addImage=function(A){var e=Promise.resolve();return this.has(A)?e:Fa(A)||ba(A)?((this._cache[A]=this.loadImage(A)).catch((function(){})),e):e},A.prototype.match=function(A){return this._cache[A]},A.prototype.loadImage=function(A){return i(this,void 0,void 0,(function(){var e,t,i,a,r=this;return n(this,(function(n){switch(n.label){case 0:return e=ma.isSameOrigin(A),t=!va(A)&&!0===this._options.useCORS&&Ki.SUPPORT_CORS_IMAGES&&!e,i=!va(A)&&!e&&!Fa(A)&&"string"==typeof this._options.proxy&&Ki.SUPPORT_CORS_XHR&&!t,e||!1!==this._options.allowTaint||va(A)||Fa(A)||i||t?(a=A,i?[4,this.proxy(a)]:[3,2]):[2];case 1:a=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+A.substring(0,256)),[4,new Promise((function(A,e){var i=new Image;i.onload=function(){return A(i)},i.onerror=e,(ya(a)||t)&&(i.crossOrigin="anonymous"),i.src=a,!0===i.complete&&setTimeout((function(){return A(i)}),500),r._options.imageTimeout>0&&setTimeout((function(){return e("Timed out ("+r._options.imageTimeout+"ms) loading image")}),r._options.imageTimeout)}))];case 3:return[2,n.sent()]}}))}))},A.prototype.has=function(A){return void 0!==this._cache[A]},A.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},A.prototype.proxy=function(A){var e=this,t=this._options.proxy;if(!t)throw new Error("No proxy defined");var i=A.substring(0,256);return new Promise((function(n,a){var r=Ki.SUPPORT_RESPONSE_TYPE?"blob":"text",s=new XMLHttpRequest;s.onload=function(){if(200===s.status)if("text"===r)n(s.response);else{var A=new FileReader;A.addEventListener("load",(function(){return n(A.result)}),!1),A.addEventListener("error",(function(A){return a(A)}),!1),A.readAsDataURL(s.response)}else a("Failed to proxy resource "+i+" with status code "+s.status)},s.onerror=a;var o=t.indexOf("?")>-1?"&":"?";if(s.open("GET",""+t+o+"url="+encodeURIComponent(A)+"&responseType="+r),"text"!==r&&s instanceof XMLHttpRequest&&(s.responseType=r),e._options.imageTimeout){var l=e._options.imageTimeout;s.timeout=l,s.ontimeout=function(){return a("Timed out ("+l+"ms) proxying "+i)}}s.send()}))},A}(),Ba=/^data:image\/svg\+xml/i,Ea=/^data:image\/.*;base64,/i,Ca=/^data:image\/.*/i,ba=function(A){return Ki.SUPPORT_SVG_DRAWING||!xa(A)},va=function(A){return Ca.test(A)},ya=function(A){return Ea.test(A)},Fa=function(A){return"blob"===A.substr(0,4)},xa=function(A){return"svg"===A.substr(-3).toLowerCase()||Ba.test(A)},Qa=function(){function A(A,e){this.type=0,this.x=A,this.y=e}return A.prototype.add=function(e,t){return new A(this.x+e,this.y+t)},A}(),Ua=function(A,e,t){return new Qa(A.x+(e.x-A.x)*t,A.y+(e.y-A.y)*t)},Ia=function(){function A(A,e,t,i){this.type=1,this.start=A,this.startControl=e,this.endControl=t,this.end=i}return A.prototype.subdivide=function(e,t){var i=Ua(this.start,this.startControl,e),n=Ua(this.startControl,this.endControl,e),a=Ua(this.endControl,this.end,e),r=Ua(i,n,e),s=Ua(n,a,e),o=Ua(r,s,e);return t?new A(this.start,i,r,o):new A(o,s,a,this.end)},A.prototype.add=function(e,t){return new A(this.start.add(e,t),this.startControl.add(e,t),this.endControl.add(e,t),this.end.add(e,t))},A.prototype.reverse=function(){return new A(this.end,this.endControl,this.startControl,this.start)},A}(),Sa=function(A){return 1===A.type},Ta=function(A){var e=A.styles,t=A.bounds,i=_A(e.borderTopLeftRadius,t.width,t.height),n=i[0],a=i[1],r=_A(e.borderTopRightRadius,t.width,t.height),s=r[0],o=r[1],l=_A(e.borderBottomRightRadius,t.width,t.height),c=l[0],d=l[1],h=_A(e.borderBottomLeftRadius,t.width,t.height),g=h[0],u=h[1],p=[];p.push((n+s)/t.width),p.push((g+c)/t.width),p.push((a+u)/t.height),p.push((o+d)/t.height);var w=Math.max.apply(Math,p);w>1&&(n/=w,a/=w,s/=w,o/=w,c/=w,d/=w,g/=w,u/=w);var m=t.width-s,f=t.height-d,B=t.width-c,E=t.height-u,C=e.borderTopWidth,b=e.borderRightWidth,v=e.borderBottomWidth,y=e.borderLeftWidth,F=$A(e.paddingTop,A.bounds.width),x=$A(e.paddingRight,A.bounds.width),Q=$A(e.paddingBottom,A.bounds.width),U=$A(e.paddingLeft,A.bounds.width);this.topLeftBorderDoubleOuterBox=n>0||a>0?La(t.left+y/3,t.top+C/3,n-y/3,a-C/3,ta.TOP_LEFT):new Qa(t.left+y/3,t.top+C/3),this.topRightBorderDoubleOuterBox=n>0||a>0?La(t.left+m,t.top+C/3,s-b/3,o-C/3,ta.TOP_RIGHT):new Qa(t.left+t.width-b/3,t.top+C/3),this.bottomRightBorderDoubleOuterBox=c>0||d>0?La(t.left+B,t.top+f,c-b/3,d-v/3,ta.BOTTOM_RIGHT):new Qa(t.left+t.width-b/3,t.top+t.height-v/3),this.bottomLeftBorderDoubleOuterBox=g>0||u>0?La(t.left+y/3,t.top+E,g-y/3,u-v/3,ta.BOTTOM_LEFT):new Qa(t.left+y/3,t.top+t.height-v/3),this.topLeftBorderDoubleInnerBox=n>0||a>0?La(t.left+2*y/3,t.top+2*C/3,n-2*y/3,a-2*C/3,ta.TOP_LEFT):new Qa(t.left+2*y/3,t.top+2*C/3),this.topRightBorderDoubleInnerBox=n>0||a>0?La(t.left+m,t.top+2*C/3,s-2*b/3,o-2*C/3,ta.TOP_RIGHT):new Qa(t.left+t.width-2*b/3,t.top+2*C/3),this.bottomRightBorderDoubleInnerBox=c>0||d>0?La(t.left+B,t.top+f,c-2*b/3,d-2*v/3,ta.BOTTOM_RIGHT):new Qa(t.left+t.width-2*b/3,t.top+t.height-2*v/3),this.bottomLeftBorderDoubleInnerBox=g>0||u>0?La(t.left+2*y/3,t.top+E,g-2*y/3,u-2*v/3,ta.BOTTOM_LEFT):new Qa(t.left+2*y/3,t.top+t.height-2*v/3),this.topLeftBorderStroke=n>0||a>0?La(t.left+y/2,t.top+C/2,n-y/2,a-C/2,ta.TOP_LEFT):new Qa(t.left+y/2,t.top+C/2),this.topRightBorderStroke=n>0||a>0?La(t.left+m,t.top+C/2,s-b/2,o-C/2,ta.TOP_RIGHT):new Qa(t.left+t.width-b/2,t.top+C/2),this.bottomRightBorderStroke=c>0||d>0?La(t.left+B,t.top+f,c-b/2,d-v/2,ta.BOTTOM_RIGHT):new Qa(t.left+t.width-b/2,t.top+t.height-v/2),this.bottomLeftBorderStroke=g>0||u>0?La(t.left+y/2,t.top+E,g-y/2,u-v/2,ta.BOTTOM_LEFT):new Qa(t.left+y/2,t.top+t.height-v/2),this.topLeftBorderBox=n>0||a>0?La(t.left,t.top,n,a,ta.TOP_LEFT):new Qa(t.left,t.top),this.topRightBorderBox=s>0||o>0?La(t.left+m,t.top,s,o,ta.TOP_RIGHT):new Qa(t.left+t.width,t.top),this.bottomRightBorderBox=c>0||d>0?La(t.left+B,t.top+f,c,d,ta.BOTTOM_RIGHT):new Qa(t.left+t.width,t.top+t.height),this.bottomLeftBorderBox=g>0||u>0?La(t.left,t.top+E,g,u,ta.BOTTOM_LEFT):new Qa(t.left,t.top+t.height),this.topLeftPaddingBox=n>0||a>0?La(t.left+y,t.top+C,Math.max(0,n-y),Math.max(0,a-C),ta.TOP_LEFT):new Qa(t.left+y,t.top+C),this.topRightPaddingBox=s>0||o>0?La(t.left+Math.min(m,t.width-b),t.top+C,m>t.width+b?0:Math.max(0,s-b),Math.max(0,o-C),ta.TOP_RIGHT):new Qa(t.left+t.width-b,t.top+C),this.bottomRightPaddingBox=c>0||d>0?La(t.left+Math.min(B,t.width-y),t.top+Math.min(f,t.height-v),Math.max(0,c-b),Math.max(0,d-v),ta.BOTTOM_RIGHT):new Qa(t.left+t.width-b,t.top+t.height-v),this.bottomLeftPaddingBox=g>0||u>0?La(t.left+y,t.top+Math.min(E,t.height-v),Math.max(0,g-y),Math.max(0,u-v),ta.BOTTOM_LEFT):new Qa(t.left+y,t.top+t.height-v),this.topLeftContentBox=n>0||a>0?La(t.left+y+U,t.top+C+F,Math.max(0,n-(y+U)),Math.max(0,a-(C+F)),ta.TOP_LEFT):new Qa(t.left+y+U,t.top+C+F),this.topRightContentBox=s>0||o>0?La(t.left+Math.min(m,t.width+y+U),t.top+C+F,m>t.width+y+U?0:s-y+U,o-(C+F),ta.TOP_RIGHT):new Qa(t.left+t.width-(b+x),t.top+C+F),this.bottomRightContentBox=c>0||d>0?La(t.left+Math.min(B,t.width-(y+U)),t.top+Math.min(f,t.height+C+F),Math.max(0,c-(b+x)),d-(v+Q),ta.BOTTOM_RIGHT):new Qa(t.left+t.width-(b+x),t.top+t.height-(v+Q)),this.bottomLeftContentBox=g>0||u>0?La(t.left+y+U,t.top+E,Math.max(0,g-(y+U)),u-(v+Q),ta.BOTTOM_LEFT):new Qa(t.left+y+U,t.top+t.height-(v+Q))};!function(A){A[A.TOP_LEFT=0]="TOP_LEFT",A[A.TOP_RIGHT=1]="TOP_RIGHT",A[A.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",A[A.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(ta||(ta={}));var La=function(A,e,t,i,n){var a=(Math.sqrt(2)-1)/3*4,r=t*a,s=i*a,o=A+t,l=e+i;switch(n){case ta.TOP_LEFT:return new Ia(new Qa(A,l),new Qa(A,l-s),new Qa(o-r,e),new Qa(o,e));case ta.TOP_RIGHT:return new Ia(new Qa(A,e),new Qa(A+r,e),new Qa(o,l-s),new Qa(o,l));case ta.BOTTOM_RIGHT:return new Ia(new Qa(o,e),new Qa(o,e+s),new Qa(A+r,l),new Qa(A,l));case ta.BOTTOM_LEFT:default:return new Ia(new Qa(o,l),new Qa(o-r,l),new Qa(A,e+s),new Qa(A,e))}},Ma=function(A){return[A.topLeftBorderBox,A.topRightBorderBox,A.bottomRightBorderBox,A.bottomLeftBorderBox]},ka=function(A){return[A.topLeftPaddingBox,A.topRightPaddingBox,A.bottomRightPaddingBox,A.bottomLeftPaddingBox]},Ha=function(A,e,t){this.offsetX=A,this.offsetY=e,this.matrix=t,this.type=0,this.target=6},Oa=function(A,e){this.path=A,this.target=e,this.type=1},Da=function(A){this.opacity=A,this.type=2,this.target=6},Na=function(A){return 1===A.type},Ra=function(A,e){return A.length===e.length&&A.some((function(A,t){return A===e[t]}))},Pa=function(A){this.element=A,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},Va=function(){function A(A,e){if(this.container=A,this.parent=e,this.effects=[],this.curves=new Ta(this.container),this.container.styles.opacity<1&&this.effects.push(new Da(this.container.styles.opacity)),null!==this.container.styles.transform){var t=this.container.bounds.left+this.container.styles.transformOrigin[0].number,i=this.container.bounds.top+this.container.styles.transformOrigin[1].number,n=this.container.styles.transform;this.effects.push(new Ha(t,i,n))}if(0!==this.container.styles.overflowX){var a=Ma(this.curves),r=ka(this.curves);Ra(a,r)?this.effects.push(new Oa(a,6)):(this.effects.push(new Oa(a,2)),this.effects.push(new Oa(r,4)))}}return A.prototype.getEffects=function(A){for(var e=-1===[2,3].indexOf(this.container.styles.position),t=this.parent,i=this.effects.slice(0);t;){var n=t.effects.filter((function(A){return!Na(A)}));if(e||0!==t.container.styles.position||!t.parent){if(i.unshift.apply(i,n),e=-1===[2,3].indexOf(t.container.styles.position),0!==t.container.styles.overflowX){var a=Ma(t.curves),r=ka(t.curves);Ra(a,r)||i.unshift(new Oa(r,6))}}else i.unshift.apply(i,n);t=t.parent}return i.filter((function(e){return ii(e.target,A)}))},A}(),Ka=function(A,e,t,i){A.container.elements.forEach((function(n){var a=ii(n.flags,4),r=ii(n.flags,2),s=new Va(n,A);ii(n.styles.display,2048)&&i.push(s);var o=ii(n.flags,8)?[]:i;if(a||r){var l=a||n.styles.isPositioned()?t:e,c=new Pa(s);if(n.styles.isPositioned()||n.styles.opacity<1||n.styles.isTransformed()){var d=n.styles.zIndex.order;if(d<0){var h=0;l.negativeZIndex.some((function(A,e){return d>A.element.container.styles.zIndex.order?(h=e,!1):h>0})),l.negativeZIndex.splice(h,0,c)}else if(d>0){var g=0;l.positiveZIndex.some((function(A,e){return d>=A.element.container.styles.zIndex.order?(g=e+1,!1):g>0})),l.positiveZIndex.splice(g,0,c)}else l.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else n.styles.isFloating()?l.nonPositionedFloats.push(c):l.nonPositionedInlineLevel.push(c);Ka(s,c,a?c:t,o)}else n.styles.isInlineLevel()?e.inlineLevel.push(s):e.nonInlineLevel.push(s),Ka(s,e,t,o);ii(n.flags,8)&&Ga(n,o)}))},Ga=function(A,e){for(var t=A instanceof an?A.start:1,i=A instanceof an&&A.reversed,n=0;n0&&A.intrinsicHeight>0){var i=ja(A),n=ka(e);this.path(n),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(t,0,0,A.intrinsicWidth,A.intrinsicHeight,i.left,i.top,i.width,i.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(A){return i(this,void 0,void 0,(function(){var e,i,a,s,o,l,c,d,h,g,u,p,w,m,f,B,E,C;return n(this,(function(n){switch(n.label){case 0:this.applyEffects(A.getEffects(4)),e=A.container,i=A.curves,a=e.styles,s=0,o=e.textNodes,n.label=1;case 1:return s0&&y>0&&(f=i.ctx.createPattern(p,"repeat"),i.renderRepeat(E,f,x,Q))):function(A){return 2===A.type}(t)&&(B=Ja(A,e,[null,null,null]),E=B[0],C=B[1],b=B[2],v=B[3],y=B[4],F=0===t.position.length?[ZA]:t.position,x=$A(F[0],v),Q=$A(F[F.length-1],y),U=function(A,e,t,i,n){var a=0,r=0;switch(A.size){case 0:0===A.shape?a=r=Math.min(Math.abs(e),Math.abs(e-i),Math.abs(t),Math.abs(t-n)):1===A.shape&&(a=Math.min(Math.abs(e),Math.abs(e-i)),r=Math.min(Math.abs(t),Math.abs(t-n)));break;case 2:if(0===A.shape)a=r=Math.min(be(e,t),be(e,t-n),be(e-i,t),be(e-i,t-n));else if(1===A.shape){var s=Math.min(Math.abs(t),Math.abs(t-n))/Math.min(Math.abs(e),Math.abs(e-i)),o=ve(i,n,e,t,!0),l=o[0],c=o[1];r=s*(a=be(l-e,(c-t)/s))}break;case 1:0===A.shape?a=r=Math.max(Math.abs(e),Math.abs(e-i),Math.abs(t),Math.abs(t-n)):1===A.shape&&(a=Math.max(Math.abs(e),Math.abs(e-i)),r=Math.max(Math.abs(t),Math.abs(t-n)));break;case 3:if(0===A.shape)a=r=Math.max(be(e,t),be(e,t-n),be(e-i,t),be(e-i,t-n));else if(1===A.shape){s=Math.max(Math.abs(t),Math.abs(t-n))/Math.max(Math.abs(e),Math.abs(e-i));var d=ve(i,n,e,t,!1);l=d[0],c=d[1],r=s*(a=be(l-e,(c-t)/s))}}return Array.isArray(A.size)&&(a=$A(A.size[0],i),r=2===A.size.length?$A(A.size[1],n):a),[a,r]}(t,x,Q,v,y),I=U[0],S=U[1],I>0&&S>0&&(T=i.ctx.createRadialGradient(C+x,b+Q,0,C+x,b+Q,I),Ee(t.stops,2*I).forEach((function(A){return T.addColorStop(A.stop,oe(A.color))})),i.path(E),i.ctx.fillStyle=T,I!==S?(L=A.bounds.left+.5*A.bounds.width,M=A.bounds.top+.5*A.bounds.height,H=1/(k=S/I),i.ctx.save(),i.ctx.translate(L,M),i.ctx.transform(1,0,0,k,0,0),i.ctx.translate(-L,-M),i.ctx.fillRect(C,H*(b-M)+M,v,y*H),i.ctx.restore()):i.ctx.fill())),n.label=6;case 6:return e--,[2]}}))},i=this,a=0,r=A.styles.backgroundImage.slice(0).reverse(),o.label=1;case 1:return a0?2!==l.style?[3,5]:[4,this.renderDashedDottedBorder(l.color,l.width,r,A.curves,2)]:[3,11]:[3,13];case 4:return n.sent(),[3,11];case 5:return 3!==l.style?[3,7]:[4,this.renderDashedDottedBorder(l.color,l.width,r,A.curves,3)];case 6:return n.sent(),[3,11];case 7:return 4!==l.style?[3,9]:[4,this.renderDoubleBorder(l.color,l.width,r,A.curves)];case 8:return n.sent(),[3,11];case 9:return[4,this.renderSolidBorder(l.color,r,A.curves)];case 10:n.sent(),n.label=11;case 11:r++,n.label=12;case 12:return s++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(A,e,t,a,r){return i(this,void 0,void 0,(function(){var i,s,o,l,c,d,h,g,u,p,w,m,f,B,E,C;return n(this,(function(n){return this.ctx.save(),i=function(A,e){switch(e){case 0:return za(A.topLeftBorderStroke,A.topRightBorderStroke);case 1:return za(A.topRightBorderStroke,A.bottomRightBorderStroke);case 2:return za(A.bottomRightBorderStroke,A.bottomLeftBorderStroke);default:return za(A.bottomLeftBorderStroke,A.topLeftBorderStroke)}}(a,t),s=Wa(a,t),2===r&&(this.path(s),this.ctx.clip()),Sa(s[0])?(o=s[0].start.x,l=s[0].start.y):(o=s[0].x,l=s[0].y),Sa(s[1])?(c=s[1].end.x,d=s[1].end.y):(c=s[1].x,d=s[1].y),h=0===t||2===t?Math.abs(o-c):Math.abs(l-d),this.ctx.beginPath(),3===r?this.formatPath(i):this.formatPath(s.slice(0,2)),g=e<3?3*e:2*e,u=e<3?2*e:e,3===r&&(g=e,u=e),p=!0,h<=2*g?p=!1:h<=2*g+u?(g*=w=h/(2*g+u),u*=w):(m=Math.floor((h+u)/(g+u)),f=(h-m*g)/(m-1),u=(B=(h-(m+1)*g)/m)<=0||Math.abs(u-f){const a=await tex2dataURL(A,n);if(a){const A=[];A.push({mimeType:a.mimeType,id:e,dataURL:a.dataURL,created:a.created,size:a.size,hasSVGwithBitmap:!1}),i(A,t)}};async function tex2dataURL(A,e){let t=0;for(;!e.mathjax&&!e.mathjaxLoaderFinished&&t<10;)await sleep$1(100),t++;e.mathjaxLoaderFinished||errorlog({where:"text2dataURL",fn:tex2dataURL,message:"mathjaxLoader not ready, using fallback. Try reloading Obsidian or restarting the Excalidraw plugin"});try{return await mathjaxSVG(A,e)}catch(t){await sleep$1(100);try{return await mathjaxSVG(A,e)}catch(t){await sleep$1(100);try{return await mathjaxSVG(A,e)}catch(t){return e.mathjax?new obsidian.Notice("Unknown error loading LaTeX. Using fallback solution. Try closing and reopening this drawing."):new obsidian.Notice("LaTeX support did not load. Using fallback solution. Try checking your network connection."),await mathjaxImage2html(A)}}}}async function mathjaxSVG(A,e){const t=e.mathjax.tex2svg(A,{display:!0,scale:4}).querySelector("svg");if(t){const A=svgToBase64(t.outerHTML);return{mimeType:"image/svg+xml",fileId:fileid(),dataURL:A,created:Date.now(),size:await getImageSize(A)}}return null}async function mathjaxImage2html(A){const e=document.body.createDiv();e.style.display="table";const t=window.MathJax.tex2chtml(A,{display:!0,scale:4});t.style.margin="3px",t.style.color="black";const i=t.querySelector("mjx-assistive-mml");i&&i.parentElement.removeChild(i),e.appendChild(t),window.MathJax.typeset();const n=await html2canvas(e,{backgroundColor:null});return document.body.removeChild(e),{mimeType:"image/png",fileId:fileid(),dataURL:n.toDataURL(),created:Date.now(),size:{height:n.height,width:n.width}}}const THEME_FILTER="invert(100%) hue-rotate(180deg) saturate(1.25)";class EmbeddedFile{constructor(A,e,t){this.file=null,this.isSVGwithBitmap=!1,this.img="",this.imgInverted="",this.mtime=0,this.mimeType="application/octet-stream",this.size={height:0,width:0},this.attemptCounter=0,this.plugin=A,this.resetImage(e,t)}resetImage(A,e){this.imgInverted=this.img="",this.mtime=0,this.linkParts=getLinkParts(e),this.hostPath=A,this.linkParts.path?(this.linkParts.width||(this.linkParts.width=this.plugin.settings.mdSVGwidth),this.linkParts.height||(this.linkParts.height=this.plugin.settings.mdSVGmaxHeight),this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,A),this.file||0==this.attemptCounter++&&new obsidian.Notice(`Excalidraw Warning: could not find image file: ${e}`,5e3)):new obsidian.Notice(`Excalidraw Error\nIncorrect embedded filename: ${e}`)}fileChanged(){return this.file||(this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),this.file)?this.mtime!=this.file.stat.mtime:(this.attemptCounter++,!1)}setImage(A,e,t,i,n){if(this.file){switch(this.fileChanged()&&(this.imgInverted=this.img=""),this.mtime=this.file.stat.mtime,this.size=t,this.mimeType=e,i&&n){case!0:this.imgInverted=A;break;case!1:this.img=A}this.isSVGwithBitmap=n}}isLoaded(A){return this.file||(this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),this.file)?!this.fileChanged()&&(this.isSVGwithBitmap&&A?""!==this.imgInverted:""!==this.img):(this.attemptCounter++,!0)}getImage(A){return this.file?A&&this.isSVGwithBitmap?this.imgInverted:this.img:""}}class EmbeddedFilesLoader{constructor(A,e){this.terminate=!1,this.plugin=A,this.isDark=e,this.uid=nanoid()}async getObsidianImage(A,e){if(!this.plugin||!A)return null;const t=A instanceof EmbeddedFile?A.file:A,i=A instanceof EmbeddedFile?A.linkParts:{original:t.path,path:t.path,isBlockRef:!1,ref:null,width:this.plugin.settings.mdSVGwidth,height:this.plugin.settings.mdSVGmaxHeight};let n=!1;const a=this.plugin.isExcalidrawFile(t);if(!IMAGE_TYPES.contains(t.extension)&&!a&&"md"!==t.extension)return null;const r=await app.vault.readBinary(t),s=a?await(async A=>{const i=hasExportTheme(this.plugin,t)?getExportTheme(this.plugin,t,"light"):void 0,a={withBackground:!!hasExportBackground(this.plugin,t)&&getWithBackground(this.plugin,t),withTheme:!!i},r=await createSVG(t.path,!0,a,this,i,null,null,[],this.plugin,e+1,getExportPadding(this.plugin,t)),s=r.querySelectorAll("image:not([href^='data:image/svg'])");return s.length>0&&(n=!0),n&&A&&s.forEach((A=>{var e;const t=null===(e=A.parentElement)||void 0===e?void 0:e.id;r.querySelectorAll(`use[href='#${t}']`).forEach((A=>{A.setAttribute("filter",THEME_FILTER)}))})),!n&&r.getAttribute("hasbitmap")&&(n=!0),svgToBase64(r.outerHTML)})(this.isDark):null;let o="image/svg+xml";if(!a)switch(t.extension){case"png":o="image/png";break;case"jpeg":case"jpg":o="image/jpeg";break;case"gif":o="image/gif";break;case"webp":o="image/webp";break;case"bmp":o="image/bmp";break;case"ico":o="image/x-icon";break;case"svg":case"md":o="image/svg+xml";break;default:o="application/octet-stream"}let l=null!=s?s:"svg"===t.extension?await getSVGData(app,t):"md"===t.extension?null:await getDataURL(r,o);if(!l){const A=await this.convertMarkdownToSVG(this.plugin,t,i);l=A.dataURL,n=A.hasSVGwithBitmap}const c=await getImageSize(l);return{mimeType:o,fileId:await generateIdFromFile(r),dataURL:l,created:t.stat.mtime,hasSVGwithBitmap:n,size:c}}async loadSceneFiles(A,e,t){var i,n;if(t>4)return void new obsidian.Notice(t$d("INFINITE_LOOP_WARNING")+t.toString(),6e3);const a=A.getFileEntries();let r;void 0===this.isDark&&(this.isDark="dark"===(null===(n=null===(i=null==A?void 0:A.scene)||void 0===i?void 0:i.appState)||void 0===n?void 0:n.theme));const s=[];for(;!this.terminate&&!(r=a.next()).done;){const A=r.value[1];if(A.isLoaded(this.isDark))A.isSVGwithBitmap&&s.push({mimeType:A.mimeType,id:r.value[0],dataURL:A.getImage(this.isDark),created:A.mtime,size:A.size,hasSVGwithBitmap:A.isSVGwithBitmap});else{const e=await this.getObsidianImage(A,t);e&&s.push({mimeType:e.mimeType,id:r.value[0],dataURL:e.dataURL,created:e.created,size:e.size,hasSVGwithBitmap:e.hasSVGwithBitmap})}}let o;const l=A.getEquationEntries();for(;!this.terminate&&!(o=l.next()).done;)if(!A.getEquation(o.value[0]).isLoaded){const A=o.value[1].latex,e=await tex2dataURL(A,this.plugin);e&&s.push({mimeType:e.mimeType,id:o.value[0],dataURL:e.dataURL,created:e.created,size:e.size,hasSVGwithBitmap:!1})}if(!this.terminate)try{e(s,this.isDark)}catch(A){errorlog({where:"EmbeddedFileLoader.loadSceneFiles",error:A})}}async convertMarkdownToSVG(A,e,t){var i,n,a,r;let s=!1;const o=await getTransclusion(t,A.app,e);let l=(null!==(i=o.leadingHashes)&&void 0!==i?i:"")+o.contents;""===l&&(l="# Empty markdown file\nCTRL+Click here to open the file for editing in the current active pane, or CTRL+SHIFT+Click to open it in an adjacent pane.");const c=A.app.metadataCache.getFileCache(e);let d,h=A.settings.mdFont;switch((null==c?void 0:c.frontmatter)&&Boolean(c.frontmatter["excalidraw-font"])&&(h=c.frontmatter["excalidraw-font"]),h){case"Virgil":d=VIRGIL_FONT;break;case"Cascadia":d=CASCADIA_FONT;break;case"":d="";break;default:const t=await getFontDataURL(A.app,h,e.path);d=t.fontDef,h=t.fontName}(null==c?void 0:c.frontmatter)&&null!==c.frontmatter.banner&&(l=l.replace(/banner:\s*.*/,""));const g=(null==c?void 0:c.frontmatter)&&null!==(n=c.frontmatter["excalidraw-font-color"])&&void 0!==n?n:A.settings.mdFontColor;let u=(null==c?void 0:c.frontmatter)&&null!==(a=c.frontmatter["excalidraw-css"])&&void 0!==a?a:"",p=!1;if(u&&""!=u){const t=A.app.metadataCache.getFirstLinkpathDest(u,e.path);t&&(u=await A.app.vault.read(t),p=!0)}if(!p)if(A.settings.mdCSS&&""!==A.settings.mdCSS){const t=A.app.metadataCache.getFirstLinkpathDest(A.settings.mdCSS,e.path);u+=t?`\n${await A.app.vault.read(t)}`:DEFAULT_MD_EMBED_CSS}else u+=DEFAULT_MD_EMBED_CSS;const w=(null==c?void 0:c.frontmatter)&&null!==(r=c.frontmatter["excalidraw-border-color"])&&void 0!==r?r:A.settings.mdBorderColor;w&&""!==w&&!u.match(/svg/i)&&(u+=`svg{border:2px solid;color:${w};transform:scale(.95)}`);let m=` width="${t.width}px" height="100000"`,f=` width="${t.width}px" height="100%"`;const B=(A,e,t)=>`${t?``:""}${A}${e}${""!==d?``:""}`,E=createDiv();E.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),E.setAttribute("class","excalidraw-md-host"),""!==h&&(E.style.fontFamily=h),E.style.overflow="auto",E.style.display="block",E.style.color=g&&""!==g?g:"initial",await obsidian.MarkdownRenderer.renderMarkdown(l,E,e.path,A),E.querySelectorAll(":scope > *[class^='frontmatter']").forEach((A=>E.removeChild(A)));const C=Array.from(E.querySelectorAll("span[class='internal-embed']"));for(let t=0;t{const e=A.style,t=window.getComputedStyle(A);let i="";for(const A in e)e.hasOwnProperty(A)&&(i+=`${A}: ${t[A]};`);A.setAttribute("style",i)}));const x=(new XMLSerializer).serializeToString(y),Q=(new XMLSerializer).serializeToString(F);document.body.removeChild(b);const U=new DOMParser,I=U.parseFromString(B(x,Q),"image/svg+xml").firstElementChild,S=createDiv();S.appendChild(I),document.body.appendChild(S);const T=I.querySelector(".excalidraw-md-footer").scrollHeight,L=I.querySelector(".excalidraw-md-host").scrollHeight+T,M=L<=t.height?L:t.height;document.body.removeChild(S),m=` width="${t.width}px" height="${M}px"`,f=` width="${t.width}px" height="${M}px"`,E.style.height=M-T+"px",E.style.overflow="hidden";const k=E.querySelectorAll("img:not([src^='data:image/svg+xml'])");k.length>0&&(s=!0),s&&this.isDark&&k.forEach((A=>{A instanceof HTMLImageElement&&(A.style.filter=THEME_FILTER)}));const H=B((new XMLSerializer).serializeToString(E),'',u);return A.ea.mostRecentMarkdownSVG=U.parseFromString(H,"image/svg+xml").firstElementChild,{dataURL:svgToBase64(H),hasSVGwithBitmap:s}}}const getSVGData=async(A,e)=>{const t=await A.vault.read(e);return svgToBase64(t)},generateIdFromFile=async A=>{let e;try{const t=await window.crypto.subtle.digest("SHA-1",A);e=Array.from(new Uint8Array(t)).map((A=>A.toString(16).padStart(2,"0"))).join("")}catch(A){errorlog({where:"EmbeddedFileLoader.generateIdFromFile",error:A}),e=fileid()}return e};var AutoexportPreference;!function(A){A[A.none=0]="none",A[A.both=1]="both",A[A.png=2]="png",A[A.svg=3]="svg",A[A.inherit=4]="inherit"}(AutoexportPreference||(AutoexportPreference={}));const REGEX_LINK={ +var e=function(A,t){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,A){e.__proto__=A}||function(e,A){for(var t in A)Object.prototype.hasOwnProperty.call(A,t)&&(e[t]=A[t])},e(A,t)};function A(A,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=A}e(A,t),A.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var t=function(){return t=Object.assign||function(e){for(var A,t=1,n=arguments.length;t0&&i[i.length-1])||6!==a[0]&&2!==a[0])){r=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=55296&&i<=56319&&t>10),r%1024+56320)),(i+1===t||n.length>16384)&&(a+=String.fromCharCode.apply(String,n),n.length=0)}return a},c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d="undefined"==typeof Uint8Array?[]:new Uint8Array(256),h=0;h=0){if(e<55296||e>56319&&e<=65535)return A=((A=this.index[e>>5])<<2)+(31&e),this.data[A];if(e<=65535)return A=((A=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[A];if(e>11),A=this.index[A],A+=e>>5&63,A=((A=this.index[A])<<2)+(31&e),this.data[A];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),p=10,w=13,m=15,f=17,B=18,E=19,b=20,C=21,v=22,y=24,F=25,x=26,Q=27,U=28,S=30,T=32,I=33,k=34,M=35,L=37,O=38,H=39,N=40,D=42,R=[9001,65288],P="×",V="÷",K=function(e){var A,t,n,i=function(e){var A,t,n,i,a,r=.75*e.length,s=e.length,o=0;"="===e[e.length-1]&&(r--,"="===e[e.length-2]&&r--);var l="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(r):new Array(r),c=Array.isArray(l)?l:new Uint8Array(l);for(A=0;A>4,c[o++]=(15&n)<<4|i>>2,c[o++]=(3&i)<<6|63&a;return l}(e),a=Array.isArray(i)?function(e){for(var A=e.length,t=[],n=0;n0;){var r=n[--a];if(Array.isArray(e)?-1!==e.indexOf(r):e===r)for(var s=t;s<=n.length;){var o;if((o=n[++s])===A)return!0;if(o!==p)break}if(r!==p)break}return!1},q=function(e,A){for(var t=e;t>=0;){var n=A[t];if(n!==p)return n;t--}return 0},_=function(e,A,t,n,i){if(0===t[n])return P;var a=n-1;if(Array.isArray(i)&&!0===i[a])return P;var r=a-1,s=a+1,o=A[a],l=r>=0?A[r]:0,c=A[s];if(2===o&&3===c)return P;if(-1!==W.indexOf(o))return"!";if(-1!==W.indexOf(c))return P;if(-1!==z.indexOf(c))return P;if(8===q(a,A))return V;if(11===K.get(e[a]))return P;if((o===T||o===I)&&11===K.get(e[s]))return P;if(7===o||7===c)return P;if(9===o)return P;if(-1===[p,w,m].indexOf(o)&&9===c)return P;if(-1!==[f,B,E,y,U].indexOf(c))return P;if(q(a,A)===v)return P;if(Z(23,v,a,A))return P;if(Z([f,B],C,a,A))return P;if(Z(12,12,a,A))return P;if(o===p)return V;if(23===o||23===c)return P;if(16===c||16===o)return V;if(-1!==[w,m,C].indexOf(c)||14===o)return P;if(36===l&&-1!==J.indexOf(o))return P;if(o===U&&36===c)return P;if(c===b)return P;if(-1!==G.indexOf(c)&&o===F||-1!==G.indexOf(o)&&c===F)return P;if(o===Q&&-1!==[L,T,I].indexOf(c)||-1!==[L,T,I].indexOf(o)&&c===x)return P;if(-1!==G.indexOf(o)&&-1!==X.indexOf(c)||-1!==X.indexOf(o)&&-1!==G.indexOf(c))return P;if(-1!==[Q,x].indexOf(o)&&(c===F||-1!==[v,m].indexOf(c)&&A[s+1]===F)||-1!==[v,m].indexOf(o)&&c===F||o===F&&-1!==[F,U,y].indexOf(c))return P;if(-1!==[F,U,y,f,B].indexOf(c))for(var d=a;d>=0;){if((h=A[d])===F)return P;if(-1===[U,y].indexOf(h))break;d--}if(-1!==[Q,x].indexOf(c))for(d=-1!==[f,B].indexOf(o)?r:a;d>=0;){var h;if((h=A[d])===F)return P;if(-1===[U,y].indexOf(h))break;d--}if(O===o&&-1!==[O,H,k,M].indexOf(c)||-1!==[H,k].indexOf(o)&&-1!==[H,N].indexOf(c)||-1!==[N,M].indexOf(o)&&c===N)return P;if(-1!==j.indexOf(o)&&-1!==[b,x].indexOf(c)||-1!==j.indexOf(c)&&o===Q)return P;if(-1!==G.indexOf(o)&&-1!==G.indexOf(c))return P;if(o===y&&-1!==G.indexOf(c))return P;if(-1!==G.concat(F).indexOf(o)&&c===v&&-1===R.indexOf(e[s])||-1!==G.concat(F).indexOf(c)&&o===B)return P;if(41===o&&41===c){for(var u=t[a],g=1;u>0&&41===A[--u];)g++;if(g%2!=0)return P}return o===T&&c===I?P:V},$=function(e,A){A||(A={lineBreak:"normal",wordBreak:"normal"});var t=function(e,A){void 0===A&&(A="strict");var t=[],n=[],i=[];return e.forEach((function(e,a){var r=K.get(e);if(r>50?(i.push(!0),r-=50):i.push(!1),-1!==["normal","auto","loose"].indexOf(A)&&-1!==[8208,8211,12316,12448].indexOf(e))return n.push(a),t.push(16);if(4===r||11===r){if(0===a)return n.push(a),t.push(S);var s=t[a-1];return-1===Y.indexOf(s)?(n.push(n[a-1]),t.push(s)):(n.push(a),t.push(S))}return n.push(a),31===r?t.push("strict"===A?C:L):r===D||29===r?t.push(S):43===r?e>=131072&&e<=196605||e>=196608&&e<=262141?t.push(L):t.push(S):void t.push(r)})),[n,t,i]}(e,A.lineBreak),n=t[0],i=t[1],a=t[2];"break-all"!==A.wordBreak&&"break-word"!==A.wordBreak||(i=i.map((function(e){return-1!==[F,S,D].indexOf(e)?L:e})));var r="keep-all"===A.wordBreak?a.map((function(A,t){return A&&e[t]>=19968&&e[t]<=40959})):void 0;return[n,i,r]},ee=function(){function e(e,A,t,n){this.codePoints=e,this.required="!"===A,this.start=t,this.end=n}return e.prototype.slice=function(){return l.apply(void 0,this.codePoints.slice(this.start,this.end))},e}(),Ae=45,te=43,ne=-1,ie=function(e){return e>=48&&e<=57},ae=function(e){return ie(e)||e>=65&&e<=70||e>=97&&e<=102},re=function(e){return 10===e||9===e||32===e},se=function(e){return function(e){return function(e){return e>=97&&e<=122}(e)||function(e){return e>=65&&e<=90}(e)}(e)||function(e){return e>=128}(e)||95===e},oe=function(e){return se(e)||ie(e)||e===Ae},le=function(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e},ce=function(e,A){return 92===e&&10!==A},de=function(e,A,t){return e===Ae?se(A)||ce(A,t):!!se(e)||!(92!==e||!ce(e,A))},he=function(e,A,t){return e===te||e===Ae?!!ie(A)||46===A&&ie(t):ie(46===e?A:e)},ue=function(e){var A=0,t=1;e[A]!==te&&e[A]!==Ae||(e[A]===Ae&&(t=-1),A++);for(var n=[];ie(e[A]);)n.push(e[A++]);var i=n.length?parseInt(l.apply(void 0,n),10):0;46===e[A]&&A++;for(var a=[];ie(e[A]);)a.push(e[A++]);var r=a.length,s=r?parseInt(l.apply(void 0,a),10):0;69!==e[A]&&101!==e[A]||A++;var o=1;e[A]!==te&&e[A]!==Ae||(e[A]===Ae&&(o=-1),A++);for(var c=[];ie(e[A]);)c.push(e[A++]);var d=c.length?parseInt(l.apply(void 0,c),10):0;return t*(i+s*Math.pow(10,-r))*Math.pow(10,o*d)},ge={type:2},pe={type:3},we={type:4},me={type:13},fe={type:8},Be={type:21},Ee={type:9},be={type:10},Ce={type:11},ve={type:12},ye={type:14},Fe={type:23},xe={type:1},Qe={type:25},Ue={type:24},Se={type:26},Te={type:27},Ie={type:28},ke={type:29},Me={type:31},Le={type:32},Oe=function(){function e(){this._value=[]}return e.prototype.write=function(e){this._value=this._value.concat(o(e))},e.prototype.read=function(){for(var e=[],A=this.consumeToken();A!==Le;)e.push(A),A=this.consumeToken();return e},e.prototype.consumeToken=function(){var e=this.consumeCodePoint();switch(e){case 34:return this.consumeStringToken(34);case 35:var A=this.peekCodePoint(0),t=this.peekCodePoint(1),n=this.peekCodePoint(2);if(oe(A)||ce(t,n)){var i=de(A,t,n)?2:1;return{type:5,value:this.consumeName(),flags:i}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),me;break;case 39:return this.consumeStringToken(39);case 40:return ge;case 41:return pe;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),ye;break;case te:if(he(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 44:return we;case Ae:var a=e,r=this.peekCodePoint(0),s=this.peekCodePoint(1);if(he(a,r,s))return this.reconsumeCodePoint(e),this.consumeNumericToken();if(de(a,r,s))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();if(r===Ae&&62===s)return this.consumeCodePoint(),this.consumeCodePoint(),Ue;break;case 46:if(he(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var o=this.consumeCodePoint();if(42===o&&47===(o=this.consumeCodePoint()))return this.consumeToken();if(o===ne)return this.consumeToken()}break;case 58:return Se;case 59:return Te;case 60:if(33===this.peekCodePoint(0)&&this.peekCodePoint(1)===Ae&&this.peekCodePoint(2)===Ae)return this.consumeCodePoint(),this.consumeCodePoint(),Qe;break;case 64:var c=this.peekCodePoint(0),d=this.peekCodePoint(1),h=this.peekCodePoint(2);if(de(c,d,h))return{type:7,value:this.consumeName()};break;case 91:return Ie;case 92:if(ce(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();break;case 93:return ke;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),fe;break;case 123:return Ce;case 125:return ve;case 117:case 85:var u=this.peekCodePoint(0),g=this.peekCodePoint(1);return u!==te||!ae(g)&&63!==g||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(e),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Ee;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),Be;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),be;break;case ne:return Le}return re(e)?(this.consumeWhiteSpace(),Me):ie(e)?(this.reconsumeCodePoint(e),this.consumeNumericToken()):se(e)?(this.reconsumeCodePoint(e),this.consumeIdentLikeToken()):{type:6,value:l(e)}},e.prototype.consumeCodePoint=function(){var e=this._value.shift();return void 0===e?-1:e},e.prototype.reconsumeCodePoint=function(e){this._value.unshift(e)},e.prototype.peekCodePoint=function(e){return e>=this._value.length?-1:this._value[e]},e.prototype.consumeUnicodeRangeToken=function(){for(var e=[],A=this.consumeCodePoint();ae(A)&&e.length<6;)e.push(A),A=this.consumeCodePoint();for(var t=!1;63===A&&e.length<6;)e.push(A),A=this.consumeCodePoint(),t=!0;if(t)return{type:30,start:parseInt(l.apply(void 0,e.map((function(e){return 63===e?48:e}))),16),end:parseInt(l.apply(void 0,e.map((function(e){return 63===e?70:e}))),16)};var n=parseInt(l.apply(void 0,e),16);if(this.peekCodePoint(0)===Ae&&ae(this.peekCodePoint(1))){this.consumeCodePoint(),A=this.consumeCodePoint();for(var i=[];ae(A)&&i.length<6;)i.push(A),A=this.consumeCodePoint();return{type:30,start:n,end:parseInt(l.apply(void 0,i),16)}}return{type:30,start:n,end:n}},e.prototype.consumeIdentLikeToken=function(){var e=this.consumeName();return"url"===e.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:e}):{type:20,value:e}},e.prototype.consumeUrlToken=function(){var e=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===ne)return{type:22,value:""};var A=this.peekCodePoint(0);if(39===A||34===A){var t=this.consumeStringToken(this.consumeCodePoint());return 0===t.type&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===ne||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:t.value}):(this.consumeBadUrlRemnants(),Fe)}for(;;){var n=this.consumeCodePoint();if(n===ne||41===n)return{type:22,value:l.apply(void 0,e)};if(re(n))return this.consumeWhiteSpace(),this.peekCodePoint(0)===ne||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:l.apply(void 0,e)}):(this.consumeBadUrlRemnants(),Fe);if(34===n||39===n||40===n||le(n))return this.consumeBadUrlRemnants(),Fe;if(92===n){if(!ce(n,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),Fe;e.push(this.consumeEscapedCodePoint())}else e.push(n)}},e.prototype.consumeWhiteSpace=function(){for(;re(this.peekCodePoint(0));)this.consumeCodePoint()},e.prototype.consumeBadUrlRemnants=function(){for(;;){var e=this.consumeCodePoint();if(41===e||e===ne)return;ce(e,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},e.prototype.consumeStringSlice=function(e){for(var A="";e>0;){var t=Math.min(5e4,e);A+=l.apply(void 0,this._value.splice(0,t)),e-=t}return this._value.shift(),A},e.prototype.consumeStringToken=function(e){for(var A="",t=0;;){var n=this._value[t];if(n===ne||void 0===n||n===e)return{type:0,value:A+=this.consumeStringSlice(t)};if(10===n)return this._value.splice(0,t),xe;if(92===n){var i=this._value[t+1];i!==ne&&void 0!==i&&(10===i?(A+=this.consumeStringSlice(t),t=-1,this._value.shift()):ce(n,i)&&(A+=this.consumeStringSlice(t),A+=l(this.consumeEscapedCodePoint()),t=-1))}t++}},e.prototype.consumeNumber=function(){var e=[],A=4,t=this.peekCodePoint(0);for(t!==te&&t!==Ae||e.push(this.consumeCodePoint());ie(this.peekCodePoint(0));)e.push(this.consumeCodePoint());t=this.peekCodePoint(0);var n=this.peekCodePoint(1);if(46===t&&ie(n))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),A=8;ie(this.peekCodePoint(0));)e.push(this.consumeCodePoint());t=this.peekCodePoint(0),n=this.peekCodePoint(1);var i=this.peekCodePoint(2);if((69===t||101===t)&&((n===te||n===Ae)&&ie(i)||ie(n)))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),A=8;ie(this.peekCodePoint(0));)e.push(this.consumeCodePoint());return[ue(e),A]},e.prototype.consumeNumericToken=function(){var e=this.consumeNumber(),A=e[0],t=e[1],n=this.peekCodePoint(0),i=this.peekCodePoint(1),a=this.peekCodePoint(2);return de(n,i,a)?{type:15,number:A,flags:t,unit:this.consumeName()}:37===n?(this.consumeCodePoint(),{type:16,number:A,flags:t}):{type:17,number:A,flags:t}},e.prototype.consumeEscapedCodePoint=function(){var e=this.consumeCodePoint();if(ae(e)){for(var A=l(e);ae(this.peekCodePoint(0))&&A.length<6;)A+=l(this.consumeCodePoint());re(this.peekCodePoint(0))&&this.consumeCodePoint();var t=parseInt(A,16);return 0===t||function(e){return e>=55296&&e<=57343}(t)||t>1114111?65533:t}return e===ne?65533:e},e.prototype.consumeName=function(){for(var e="";;){var A=this.consumeCodePoint();if(oe(A))e+=l(A);else{if(!ce(A,this.peekCodePoint(0)))return this.reconsumeCodePoint(A),e;e+=l(this.consumeEscapedCodePoint())}}},e}(),He=function(){function e(e){this._tokens=e}return e.create=function(A){var t=new Oe;return t.write(A),new e(t.read())},e.parseValue=function(A){return e.create(A).parseComponentValue()},e.parseValues=function(A){return e.create(A).parseComponentValues()},e.prototype.parseComponentValue=function(){for(var e=this.consumeToken();31===e.type;)e=this.consumeToken();if(32===e.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(e);var A=this.consumeComponentValue();do{e=this.consumeToken()}while(31===e.type);if(32===e.type)return A;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},e.prototype.parseComponentValues=function(){for(var e=[];;){var A=this.consumeComponentValue();if(32===A.type)return e;e.push(A),e.push()}},e.prototype.consumeComponentValue=function(){var e=this.consumeToken();switch(e.type){case 11:case 28:case 2:return this.consumeSimpleBlock(e.type);case 19:return this.consumeFunction(e)}return e},e.prototype.consumeSimpleBlock=function(e){for(var A={type:e,values:[]},t=this.consumeToken();;){if(32===t.type||ze(t,e))return A;this.reconsumeToken(t),A.values.push(this.consumeComponentValue()),t=this.consumeToken()}},e.prototype.consumeFunction=function(e){for(var A={name:e.value,values:[],type:18};;){var t=this.consumeToken();if(32===t.type||3===t.type)return A;this.reconsumeToken(t),A.values.push(this.consumeComponentValue())}},e.prototype.consumeToken=function(){var e=this._tokens.shift();return void 0===e?Le:e},e.prototype.reconsumeToken=function(e){this._tokens.unshift(e)},e}(),Ne=function(e){return 15===e.type},De=function(e){return 17===e.type},Re=function(e){return 20===e.type},Pe=function(e){return 0===e.type},Ve=function(e,A){return Re(e)&&e.value===A},Ke=function(e){return 31!==e.type},Ge=function(e){return 31!==e.type&&4!==e.type},We=function(e){var A=[],t=[];return e.forEach((function(e){if(4===e.type){if(0===t.length)throw new Error("Error parsing function args, zero tokens for arg");return A.push(t),void(t=[])}31!==e.type&&t.push(e)})),t.length&&A.push(t),A},ze=function(e,A){return 11===A&&12===e.type||28===A&&29===e.type||2===A&&3===e.type},Xe=function(e){return 17===e.type||15===e.type},Ye=function(e){return 16===e.type||Xe(e)},je=function(e){return e.length>1?[e[0],e[1]]:[e[0]]},Je={type:17,number:0,flags:4},Ze={type:16,number:50,flags:4},qe={type:16,number:100,flags:4},_e=function(e,A,t){var n=e[0],i=e[1];return[$e(n,A),$e(void 0!==i?i:n,t)]},$e=function(e,A){if(16===e.type)return e.number/100*A;if(Ne(e))switch(e.unit){case"rem":case"em":return 16*e.number;default:return e.number}return e.number},eA="grad",AA="turn",tA=function(e,A){if(15===A.type)switch(A.unit){case"deg":return Math.PI*A.number/180;case eA:return Math.PI/200*A.number;case"rad":return A.number;case AA:return 2*Math.PI*A.number}throw new Error("Unsupported angle type")},nA=function(e){return 15===e.type&&("deg"===e.unit||e.unit===eA||"rad"===e.unit||e.unit===AA)},iA=function(e){switch(e.filter(Re).map((function(e){return e.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[Je,Je];case"to top":case"bottom":return aA(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[Je,qe];case"to right":case"left":return aA(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[qe,qe];case"to bottom":case"top":return aA(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[qe,Je];case"to left":case"right":return aA(270)}return 0},aA=function(e){return Math.PI*e/180},rA=function(e,A){if(18===A.type){var t=gA[A.name];if(void 0===t)throw new Error('Attempting to parse an unsupported color function "'+A.name+'"');return t(e,A.values)}if(5===A.type){if(3===A.value.length){var n=A.value.substring(0,1),i=A.value.substring(1,2),a=A.value.substring(2,3);return lA(parseInt(n+n,16),parseInt(i+i,16),parseInt(a+a,16),1)}if(4===A.value.length){n=A.value.substring(0,1),i=A.value.substring(1,2),a=A.value.substring(2,3);var r=A.value.substring(3,4);return lA(parseInt(n+n,16),parseInt(i+i,16),parseInt(a+a,16),parseInt(r+r,16)/255)}if(6===A.value.length)return n=A.value.substring(0,2),i=A.value.substring(2,4),a=A.value.substring(4,6),lA(parseInt(n,16),parseInt(i,16),parseInt(a,16),1);if(8===A.value.length)return n=A.value.substring(0,2),i=A.value.substring(2,4),a=A.value.substring(4,6),r=A.value.substring(6,8),lA(parseInt(n,16),parseInt(i,16),parseInt(a,16),parseInt(r,16)/255)}if(20===A.type){var s=wA[A.value.toUpperCase()];if(void 0!==s)return s}return wA.TRANSPARENT},sA=function(e){return 0==(255&e)},oA=function(e){var A=255&e,t=255&e>>8,n=255&e>>16,i=255&e>>24;return A<255?"rgba("+i+","+n+","+t+","+A/255+")":"rgb("+i+","+n+","+t+")"},lA=function(e,A,t,n){return(e<<24|A<<16|t<<8|Math.round(255*n)<<0)>>>0},cA=function(e,A){if(17===e.type)return e.number;if(16===e.type){var t=3===A?1:255;return 3===A?e.number/100*t:Math.round(e.number/100*t)}return 0},dA=function(e,A){var t=A.filter(Ge);if(3===t.length){var n=t.map(cA),i=n[0],a=n[1],r=n[2];return lA(i,a,r,1)}if(4===t.length){var s=t.map(cA),o=(i=s[0],a=s[1],r=s[2],s[3]);return lA(i,a,r,o)}return 0};function hA(e,A,t){return t<0&&(t+=1),t>=1&&(t-=1),t<1/6?(A-e)*t*6+e:t<.5?A:t<2/3?6*(A-e)*(2/3-t)+e:e}var uA=function(e,A){var t=A.filter(Ge),n=t[0],i=t[1],a=t[2],r=t[3],s=(17===n.type?aA(n.number):tA(e,n))/(2*Math.PI),o=Ye(i)?i.number/100:0,l=Ye(a)?a.number/100:0,c=void 0!==r&&Ye(r)?$e(r,1):1;if(0===o)return lA(255*l,255*l,255*l,1);var d=l<=.5?l*(o+1):l+o-l*o,h=2*l-d,u=hA(h,d,s+1/3),g=hA(h,d,s),p=hA(h,d,s-1/3);return lA(255*u,255*g,255*p,c)},gA={hsl:uA,hsla:uA,rgb:dA,rgba:dA},pA=function(e,A){return rA(e,He.create(A).parseComponentValue())},wA={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},mA={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(e,A){return A.map((function(e){if(Re(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},fA={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},BA=function(e,A){var t=rA(e,A[0]),n=A[1];return n&&Ye(n)?{color:t,stop:n}:{color:t,stop:null}},EA=function(e,A){var t=e[0],n=e[e.length-1];null===t.stop&&(t.stop=Je),null===n.stop&&(n.stop=qe);for(var i=[],a=0,r=0;ra?i.push(o):i.push(a),a=o}else i.push(null)}var l=null;for(r=0;re.optimumDistance)?{optimumCorner:A,optimumDistance:s}:e}),{optimumDistance:i?1/0:-1/0,optimumCorner:null}).optimumCorner},yA=function(e,A){var t=aA(180),n=[];return We(A).forEach((function(A,i){if(0===i){var a=A[0];if(20===a.type&&-1!==["top","left","right","bottom"].indexOf(a.value))return void(t=iA(A));if(nA(a))return void(t=(tA(e,a)+aA(270))%aA(360))}var r=BA(e,A);n.push(r)})),{angle:t,stops:n,type:1}},FA="closest-side",xA="farthest-side",QA="closest-corner",UA="farthest-corner",SA="circle",TA="ellipse",IA="cover",kA="contain",MA=function(e,A){var t=0,n=3,i=[],a=[];return We(A).forEach((function(A,r){var s=!0;if(0===r?s=A.reduce((function(e,A){if(Re(A))switch(A.value){case"center":return a.push(Ze),!1;case"top":case"left":return a.push(Je),!1;case"right":case"bottom":return a.push(qe),!1}else if(Ye(A)||Xe(A))return a.push(A),!1;return e}),s):1===r&&(s=A.reduce((function(e,A){if(Re(A))switch(A.value){case SA:return t=0,!1;case TA:return t=1,!1;case kA:case FA:return n=0,!1;case xA:return n=1,!1;case QA:return n=2,!1;case IA:case UA:return n=3,!1}else if(Xe(A)||Ye(A))return Array.isArray(n)||(n=[]),n.push(A),!1;return e}),s)),s){var o=BA(e,A);i.push(o)}})),{size:n,shape:t,stops:i,position:a,type:2}},LA=function(e,A){if(22===A.type){var t={url:A.value,type:0};return e.cache.addImage(A.value),t}if(18===A.type){var n=HA[A.name];if(void 0===n)throw new Error('Attempting to parse an unsupported image function "'+A.name+'"');return n(e,A.values)}throw new Error("Unsupported image type "+A.type)};var OA,HA={"linear-gradient":function(e,A){var t=aA(180),n=[];return We(A).forEach((function(A,i){if(0===i){var a=A[0];if(20===a.type&&"to"===a.value)return void(t=iA(A));if(nA(a))return void(t=tA(e,a))}var r=BA(e,A);n.push(r)})),{angle:t,stops:n,type:1}},"-moz-linear-gradient":yA,"-ms-linear-gradient":yA,"-o-linear-gradient":yA,"-webkit-linear-gradient":yA,"radial-gradient":function(e,A){var t=0,n=3,i=[],a=[];return We(A).forEach((function(A,r){var s=!0;if(0===r){var o=!1;s=A.reduce((function(e,A){if(o)if(Re(A))switch(A.value){case"center":return a.push(Ze),e;case"top":case"left":return a.push(Je),e;case"right":case"bottom":return a.push(qe),e}else(Ye(A)||Xe(A))&&a.push(A);else if(Re(A))switch(A.value){case SA:return t=0,!1;case TA:return t=1,!1;case"at":return o=!0,!1;case FA:return n=0,!1;case IA:case xA:return n=1,!1;case kA:case QA:return n=2,!1;case UA:return n=3,!1}else if(Xe(A)||Ye(A))return Array.isArray(n)||(n=[]),n.push(A),!1;return e}),s)}if(s){var l=BA(e,A);i.push(l)}})),{size:n,shape:t,stops:i,position:a,type:2}},"-moz-radial-gradient":MA,"-ms-radial-gradient":MA,"-o-radial-gradient":MA,"-webkit-radial-gradient":MA,"-webkit-gradient":function(e,A){var t=aA(180),n=[],i=1;return We(A).forEach((function(A,t){var a=A[0];if(0===t){if(Re(a)&&"linear"===a.value)return void(i=1);if(Re(a)&&"radial"===a.value)return void(i=2)}if(18===a.type)if("from"===a.name){var r=rA(e,a.values[0]);n.push({stop:Je,color:r})}else if("to"===a.name)r=rA(e,a.values[0]),n.push({stop:qe,color:r});else if("color-stop"===a.name){var s=a.values.filter(Ge);if(2===s.length){r=rA(e,s[1]);var o=s[0];De(o)&&n.push({stop:{type:16,number:100*o.number,flags:o.flags},color:r})}}})),1===i?{angle:(t+aA(180))%aA(360),stops:n,type:i}:{size:3,shape:0,stops:n,position:[],type:i}}},NA={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(e,A){if(0===A.length)return[];var t=A[0];return 20===t.type&&"none"===t.value?[]:A.filter((function(e){return Ge(e)&&function(e){return!(20===e.type&&"none"===e.value||18===e.type&&!HA[e.name])}(e)})).map((function(A){return LA(e,A)}))}},DA={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(e,A){return A.map((function(e){if(Re(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},RA={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(e,A){return We(A).map((function(e){return e.filter(Ye)})).map(je)}},PA={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(e,A){return We(A).map((function(e){return e.filter(Re).map((function(e){return e.value})).join(" ")})).map(VA)}},VA=function(e){switch(e){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(e){e.AUTO="auto",e.CONTAIN="contain",e.COVER="cover"}(OA||(OA={}));var KA,GA={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(e,A){return We(A).map((function(e){return e.filter(WA)}))}},WA=function(e){return Re(e)||Ye(e)},zA=function(e){return{name:"border-"+e+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},XA=zA("top"),YA=zA("right"),jA=zA("bottom"),JA=zA("left"),ZA=function(e){return{name:"border-radius-"+e,initialValue:"0 0",prefix:!1,type:1,parse:function(e,A){return je(A.filter(Ye))}}},qA=ZA("top-left"),_A=ZA("top-right"),$A=ZA("bottom-right"),et=ZA("bottom-left"),At=function(e){return{name:"border-"+e+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(e,A){switch(A){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},tt=At("top"),nt=At("right"),it=At("bottom"),at=At("left"),rt=function(e){return{name:"border-"+e+"-width",initialValue:"0",type:0,prefix:!1,parse:function(e,A){return Ne(A)?A.number:0}}},st=rt("top"),ot=rt("right"),lt=rt("bottom"),ct=rt("left"),dt={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ht={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(e,A){return"rtl"===A?1:0}},ut={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(e,A){return A.filter(Re).reduce((function(e,A){return e|gt(A.value)}),0)}},gt=function(e){switch(e){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},pt={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(e,A){switch(A){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},wt={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(e,A){return 20===A.type&&"normal"===A.value?0:17===A.type||15===A.type?A.number:0}};!function(e){e.NORMAL="normal",e.STRICT="strict"}(KA||(KA={}));var mt,ft={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(e,A){return"strict"===A?KA.STRICT:KA.NORMAL}},Bt={name:"line-height",initialValue:"normal",prefix:!1,type:4},Et=function(e,A){return Re(e)&&"normal"===e.value?1.2*A:17===e.type?A*e.number:Ye(e)?$e(e,A):A},bt={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(e,A){return 20===A.type&&"none"===A.value?null:LA(e,A)}},Ct={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(e,A){return"inside"===A?0:1}},vt={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(e,A){switch(A){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},yt=function(e){return{name:"margin-"+e,initialValue:"0",prefix:!1,type:4}},Ft=yt("top"),xt=yt("right"),Qt=yt("bottom"),Ut=yt("left"),St={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(e,A){return A.filter(Re).map((function(e){switch(e.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},Tt={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(e,A){return"break-word"===A?"break-word":"normal"}},It=function(e){return{name:"padding-"+e,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},kt=It("top"),Mt=It("right"),Lt=It("bottom"),Ot=It("left"),Ht={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(e,A){switch(A){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},Nt={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(e,A){switch(A){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},Dt={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(e,A){return 1===A.length&&Ve(A[0],"none")?[]:We(A).map((function(A){for(var t={color:wA.TRANSPARENT,offsetX:Je,offsetY:Je,blur:Je},n=0,i=0;i1?1:0],this.overflowWrap=fn(e,Tt,A.overflowWrap),this.paddingTop=fn(e,kt,A.paddingTop),this.paddingRight=fn(e,Mt,A.paddingRight),this.paddingBottom=fn(e,Lt,A.paddingBottom),this.paddingLeft=fn(e,Ot,A.paddingLeft),this.paintOrder=fn(e,hn,A.paintOrder),this.position=fn(e,Nt,A.position),this.textAlign=fn(e,Ht,A.textAlign),this.textDecorationColor=fn(e,Zt,null!==(t=A.textDecorationColor)&&void 0!==t?t:A.color),this.textDecorationLine=fn(e,qt,null!==(n=A.textDecorationLine)&&void 0!==n?n:A.textDecoration),this.textShadow=fn(e,Dt,A.textShadow),this.textTransform=fn(e,Rt,A.textTransform),this.transform=fn(e,Pt,A.transform),this.transformOrigin=fn(e,Wt,A.transformOrigin),this.visibility=fn(e,zt,A.visibility),this.webkitTextStrokeColor=fn(e,un,A.webkitTextStrokeColor),this.webkitTextStrokeWidth=fn(e,gn,A.webkitTextStrokeWidth),this.wordBreak=fn(e,Xt,A.wordBreak),this.zIndex=fn(e,Yt,A.zIndex)}return e.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},e.prototype.isTransparent=function(){return sA(this.backgroundColor)},e.prototype.isTransformed=function(){return null!==this.transform},e.prototype.isPositioned=function(){return 0!==this.position},e.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},e.prototype.isFloating=function(){return 0!==this.float},e.prototype.isInlineLevel=function(){return nn(this.display,4)||nn(this.display,33554432)||nn(this.display,268435456)||nn(this.display,536870912)||nn(this.display,67108864)||nn(this.display,134217728)},e}(),wn=function(e,A){this.content=fn(e,an,A.content),this.quotes=fn(e,ln,A.quotes)},mn=function(e,A){this.counterIncrement=fn(e,rn,A.counterIncrement),this.counterReset=fn(e,sn,A.counterReset)},fn=function(e,A,t){var n=new Oe,i=null!=t?t.toString():A.initialValue;n.write(i);var a=new He(n.read());switch(A.type){case 2:var r=a.parseComponentValue();return A.parse(e,Re(r)?r.value:A.initialValue);case 0:return A.parse(e,a.parseComponentValue());case 1:return A.parse(e,a.parseComponentValues());case 4:return a.parseComponentValue();case 3:switch(A.format){case"angle":return tA(e,a.parseComponentValue());case"color":return rA(e,a.parseComponentValue());case"image":return LA(e,a.parseComponentValue());case"length":var s=a.parseComponentValue();return Xe(s)?s:Je;case"length-percentage":var o=a.parseComponentValue();return Ye(o)?o:Je;case"time":return jt.parse(e,a.parseComponentValue())}}},Bn=function(e,A){var t=function(e){switch(e.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(e);return 1===t||A===t},En=function(e,A){this.context=e,this.textNodes=[],this.elements=[],this.flags=0,Bn(A,3),this.styles=new pn(e,window.getComputedStyle(A,null)),yi(A)&&(this.styles.animationDuration.some((function(e){return e>0}))&&(A.style.animationDuration="0s"),null!==this.styles.transform&&(A.style.transform="none")),this.bounds=s(this.context,A),Bn(A,4)&&(this.flags|=16)},bn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Cn="undefined"==typeof Uint8Array?[]:new Uint8Array(256),vn=0;vn=0){if(e<55296||e>56319&&e<=65535)return A=((A=this.index[e>>5])<<2)+(31&e),this.data[A];if(e<=65535)return A=((A=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[A];if(e>11),A=this.index[A],A+=e>>5&63,A=((A=this.index[A])<<2)+(31&e),this.data[A];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),xn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Qn="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Un=0;Un>10),r%1024+56320)),(i+1===t||n.length>16384)&&(a+=String.fromCharCode.apply(String,n),n.length=0)}return a},On=function(e,A){var t,n,i,a=function(e){var A,t,n,i,a,r=.75*e.length,s=e.length,o=0;"="===e[e.length-1]&&(r--,"="===e[e.length-2]&&r--);var l="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(r):new Array(r),c=Array.isArray(l)?l:new Uint8Array(l);for(A=0;A>4,c[o++]=(15&n)<<4|i>>2,c[o++]=(3&i)<<6|63&a;return l}(e),r=Array.isArray(a)?function(e){for(var A=e.length,t=[],n=0;n=55296&&i<=56319&&t=t)return{done:!0,value:null};for(var e=Hn;nr.x||i.y>r.y;return r=i,0===A||s}));return e.body.removeChild(A),s}(document);return Object.defineProperty(Gn,"SUPPORT_WORD_BREAKING",{value:e}),e},get SUPPORT_SVG_DRAWING(){var e=function(e){var A=new Image,t=e.createElement("canvas"),n=t.getContext("2d");if(!n)return!1;A.src="data:image/svg+xml,";try{n.drawImage(A,0,0),t.toDataURL()}catch(e){return!1}return!0}(document);return Object.defineProperty(Gn,"SUPPORT_SVG_DRAWING",{value:e}),e},get SUPPORT_FOREIGNOBJECT_DRAWING(){var e="function"==typeof Array.from&&"function"==typeof window.fetch?function(e){var A=e.createElement("canvas"),t=100;A.width=t,A.height=t;var n=A.getContext("2d");if(!n)return Promise.reject(!1);n.fillStyle="rgb(0, 255, 0)",n.fillRect(0,0,t,t);var i=new Image,a=A.toDataURL();i.src=a;var r=Vn(t,t,0,0,i);return n.fillStyle="red",n.fillRect(0,0,t,t),Kn(r).then((function(A){n.drawImage(A,0,0);var i=n.getImageData(0,0,t,t).data;n.fillStyle="red",n.fillRect(0,0,t,t);var r=e.createElement("div");return r.style.backgroundImage="url("+a+")",r.style.height="100px",Pn(i)?Kn(Vn(t,t,0,0,r)):Promise.reject(!1)})).then((function(e){return n.drawImage(e,0,0),Pn(n.getImageData(0,0,t,t).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(Gn,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:e}),e},get SUPPORT_CORS_IMAGES(){var e=void 0!==(new Image).crossOrigin;return Object.defineProperty(Gn,"SUPPORT_CORS_IMAGES",{value:e}),e},get SUPPORT_RESPONSE_TYPE(){var e="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(Gn,"SUPPORT_RESPONSE_TYPE",{value:e}),e},get SUPPORT_CORS_XHR(){var e="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Gn,"SUPPORT_CORS_XHR",{value:e}),e},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var e=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(Gn,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:e}),e}},Wn=function(e,A){this.text=e,this.bounds=A},zn=function(e,A){var t=A.ownerDocument;if(t){var n=t.createElement("html2canvaswrapper");n.appendChild(A.cloneNode(!0));var i=A.parentNode;if(i){i.replaceChild(n,A);var a=s(e,n);return n.firstChild&&i.replaceChild(n.firstChild,n),a}}return r.EMPTY},Xn=function(e,A,t){var n=e.ownerDocument;if(!n)throw new Error("Node has no owner document");var i=n.createRange();return i.setStart(e,A),i.setEnd(e,A+t),i},Yn=function(e){if(Gn.SUPPORT_NATIVE_TEXT_SEGMENTATION){var A=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(A.segment(e)).map((function(e){return e.segment}))}return function(e){for(var A,t=Rn(e),n=[];!(A=t.next()).done;)A.value&&n.push(A.value.slice());return n}(e)},jn=function(e,A){return 0!==A.letterSpacing?Yn(e):function(e,A){if(Gn.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(t.segment(e)).map((function(e){return e.segment}))}return Zn(e,A)}(e,A)},Jn=[32,160,4961,65792,65793,4153,4241],Zn=function(e,A){for(var t,n=function(e,A){var t=o(e),n=$(t,A),i=n[0],a=n[1],r=n[2],s=t.length,l=0,c=0;return{next:function(){if(c>=s)return{done:!0,value:null};for(var e=P;c0)if(Gn.SUPPORT_RANGE_BOUNDS){var i=Xn(n,s,A.length).getClientRects();if(i.length>1){var o=Yn(A),l=0;o.forEach((function(A){a.push(new Wn(A,r.fromDOMRectList(e,Xn(n,l+s,A.length).getClientRects()))),l+=A.length}))}else a.push(new Wn(A,r.fromDOMRectList(e,i)))}else{var c=n.splitText(A.length);a.push(new Wn(A,zn(e,n))),n=c}else Gn.SUPPORT_RANGE_BOUNDS||(n=n.splitText(A.length));s+=A.length})),a}(e,this.text,t,A)},_n=function(e,A){switch(A){case 1:return e.toLowerCase();case 3:return e.replace($n,ei);case 2:return e.toUpperCase();default:return e}},$n=/(^|\s|:|-|\(|\))([a-z])/g,ei=function(e,A,t){return e.length>0?A+t.toUpperCase():e},Ai=function(e){function t(A,t){var n=e.call(this,A,t)||this;return n.src=t.currentSrc||t.src,n.intrinsicWidth=t.naturalWidth,n.intrinsicHeight=t.naturalHeight,n.context.cache.addImage(n.src),n}return A(t,e),t}(En),ti=function(e){function t(A,t){var n=e.call(this,A,t)||this;return n.canvas=t,n.intrinsicWidth=t.width,n.intrinsicHeight=t.height,n}return A(t,e),t}(En),ni=function(e){function t(A,t){var n=e.call(this,A,t)||this,i=new XMLSerializer,a=s(A,t);return t.setAttribute("width",a.width+"px"),t.setAttribute("height",a.height+"px"),n.svg="data:image/svg+xml,"+encodeURIComponent(i.serializeToString(t)),n.intrinsicWidth=t.width.baseVal.value,n.intrinsicHeight=t.height.baseVal.value,n.context.cache.addImage(n.svg),n}return A(t,e),t}(En),ii=function(e){function t(A,t){var n=e.call(this,A,t)||this;return n.value=t.value,n}return A(t,e),t}(En),ai=function(e){function t(A,t){var n=e.call(this,A,t)||this;return n.start=t.start,n.reversed="boolean"==typeof t.reversed&&!0===t.reversed,n}return A(t,e),t}(En),ri=[{type:15,flags:0,unit:"px",number:3}],si=[{type:16,flags:0,number:50}],oi="checkbox",li="radio",ci="password",di=707406591,hi=function(e){function t(A,t){var n,i,a,s=e.call(this,A,t)||this;switch(s.type=t.type.toLowerCase(),s.checked=t.checked,s.value=0===(a=(i=t).type===ci?new Array(i.value.length+1).join("•"):i.value).length?i.placeholder||"":a,s.type!==oi&&s.type!==li||(s.styles.backgroundColor=3739148031,s.styles.borderTopColor=s.styles.borderRightColor=s.styles.borderBottomColor=s.styles.borderLeftColor=2779096575,s.styles.borderTopWidth=s.styles.borderRightWidth=s.styles.borderBottomWidth=s.styles.borderLeftWidth=1,s.styles.borderTopStyle=s.styles.borderRightStyle=s.styles.borderBottomStyle=s.styles.borderLeftStyle=1,s.styles.backgroundClip=[0],s.styles.backgroundOrigin=[0],s.bounds=(n=s.bounds).width>n.height?new r(n.left+(n.width-n.height)/2,n.top,n.height,n.height):n.width0)t.textNodes.push(new qn(e,i,t.styles));else if(vi(i))if(Ni(i)&&i.assignedNodes)i.assignedNodes().forEach((function(A){return mi(e,A,t,n)}));else{var r=fi(e,i);r.styles.isVisible()&&(Ei(i,r,n)?r.flags|=4:bi(r.styles)&&(r.flags|=2),-1!==wi.indexOf(i.tagName)&&(r.flags|=8),t.elements.push(r),i.slot,i.shadowRoot?mi(e,i.shadowRoot,r,n):Oi(i)||Si(i)||Hi(i)||mi(e,i,r,n))}},fi=function(e,A){return ki(A)?new Ai(e,A):Ii(A)?new ti(e,A):Si(A)?new ni(e,A):xi(A)?new ii(e,A):Qi(A)?new ai(e,A):Ui(A)?new hi(e,A):Hi(A)?new ui(e,A):Oi(A)?new gi(e,A):Mi(A)?new pi(e,A):new En(e,A)},Bi=function(e,A){var t=fi(e,A);return t.flags|=4,mi(e,A,t,t),t},Ei=function(e,A,t){return A.styles.isPositionedWithZIndex()||A.styles.opacity<1||A.styles.isTransformed()||Ti(e)&&t.styles.isTransparent()},bi=function(e){return e.isPositioned()||e.isFloating()},Ci=function(e){return e.nodeType===Node.TEXT_NODE},vi=function(e){return e.nodeType===Node.ELEMENT_NODE},yi=function(e){return vi(e)&&void 0!==e.style&&!Fi(e)},Fi=function(e){return"object"==typeof e.className},xi=function(e){return"LI"===e.tagName},Qi=function(e){return"OL"===e.tagName},Ui=function(e){return"INPUT"===e.tagName},Si=function(e){return"svg"===e.tagName},Ti=function(e){return"BODY"===e.tagName},Ii=function(e){return"CANVAS"===e.tagName},ki=function(e){return"IMG"===e.tagName},Mi=function(e){return"IFRAME"===e.tagName},Li=function(e){return"STYLE"===e.tagName},Oi=function(e){return"TEXTAREA"===e.tagName},Hi=function(e){return"SELECT"===e.tagName},Ni=function(e){return"SLOT"===e.tagName},Di=function(e){return e.tagName.indexOf("-")>0},Ri=function(){function e(){this.counters={}}return e.prototype.getCounterValue=function(e){var A=this.counters[e];return A&&A.length?A[A.length-1]:1},e.prototype.getCounterValues=function(e){return this.counters[e]||[]},e.prototype.pop=function(e){var A=this;e.forEach((function(e){return A.counters[e].pop()}))},e.prototype.parse=function(e){var A=this,t=e.counterIncrement,n=e.counterReset,i=!0;null!==t&&t.forEach((function(e){var t=A.counters[e.counter];t&&0!==e.increment&&(i=!1,t.length||t.push(1),t[Math.max(0,t.length-1)]+=e.increment)}));var a=[];return i&&n.forEach((function(e){var t=A.counters[e.counter];a.push(e.counter),t||(t=A.counters[e.counter]=[]),t.push(e.reset)})),a},e}(),Pi={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},Vi={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Ki={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},Gi={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},Wi=function(e,A,t,n,i,a){return et?$i(e,i,a.length>0):n.integers.reduce((function(A,t,i){for(;e>=t;)e-=t,A+=n.values[i];return A}),"")+a},zi=function(e,A,t,n){var i="";do{t||e--,i=n(e)+i,e/=A}while(e*A>=A);return i},Xi=function(e,A,t,n,i){var a=t-A+1;return(e<0?"-":"")+(zi(Math.abs(e),a,n,(function(e){return l(Math.floor(e%a)+A)}))+i)},Yi=function(e,A,t){void 0===t&&(t=". ");var n=A.length;return zi(Math.abs(e),n,!1,(function(e){return A[Math.floor(e%n)]}))+t},ji=function(e,A,t,n,i,a){if(e<-9999||e>9999)return $i(e,4,i.length>0);var r=Math.abs(e),s=i;if(0===r)return A[0]+s;for(var o=0;r>0&&o<=4;o++){var l=r%10;0===l&&nn(a,1)&&""!==s?s=A[l]+s:l>1||1===l&&0===o||1===l&&1===o&&nn(a,2)||1===l&&1===o&&nn(a,4)&&e>100||1===l&&o>1&&nn(a,8)?s=A[l]+(o>0?t[o-1]:"")+s:1===l&&o>0&&(s=t[o-1]+s),r=Math.floor(r/10)}return(e<0?n:"")+s},Ji="十百千萬",Zi="拾佰仟萬",qi="マイナス",_i="마이너스",$i=function(e,A,t){var n=t?". ":"",i=t?"、":"",a=t?", ":"",r=t?" ":"";switch(A){case 0:return"•"+r;case 1:return"◦"+r;case 2:return"◾"+r;case 5:var s=Xi(e,48,57,!0,n);return s.length<4?"0"+s:s;case 4:return Yi(e,"〇一二三四五六七八九",i);case 6:return Wi(e,1,3999,Pi,3,n).toLowerCase();case 7:return Wi(e,1,3999,Pi,3,n);case 8:return Xi(e,945,969,!1,n);case 9:return Xi(e,97,122,!1,n);case 10:return Xi(e,65,90,!1,n);case 11:return Xi(e,1632,1641,!0,n);case 12:case 49:return Wi(e,1,9999,Vi,3,n);case 35:return Wi(e,1,9999,Vi,3,n).toLowerCase();case 13:return Xi(e,2534,2543,!0,n);case 14:case 30:return Xi(e,6112,6121,!0,n);case 15:return Yi(e,"子丑寅卯辰巳午未申酉戌亥",i);case 16:return Yi(e,"甲乙丙丁戊己庚辛壬癸",i);case 17:case 48:return ji(e,"零一二三四五六七八九",Ji,"負",i,14);case 47:return ji(e,"零壹貳參肆伍陸柒捌玖",Zi,"負",i,15);case 42:return ji(e,"零一二三四五六七八九",Ji,"负",i,14);case 41:return ji(e,"零壹贰叁肆伍陆柒捌玖",Zi,"负",i,15);case 26:return ji(e,"〇一二三四五六七八九","十百千万",qi,i,0);case 25:return ji(e,"零壱弐参四伍六七八九","拾百千万",qi,i,7);case 31:return ji(e,"영일이삼사오육칠팔구","십백천만",_i,a,7);case 33:return ji(e,"零一二三四五六七八九","十百千萬",_i,a,0);case 32:return ji(e,"零壹貳參四五六七八九","拾百千",_i,a,7);case 18:return Xi(e,2406,2415,!0,n);case 20:return Wi(e,1,19999,Gi,3,n);case 21:return Xi(e,2790,2799,!0,n);case 22:return Xi(e,2662,2671,!0,n);case 22:return Wi(e,1,10999,Ki,3,n);case 23:return Yi(e,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return Yi(e,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return Xi(e,3302,3311,!0,n);case 28:return Yi(e,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",i);case 29:return Yi(e,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",i);case 34:return Xi(e,3792,3801,!0,n);case 37:return Xi(e,6160,6169,!0,n);case 38:return Xi(e,4160,4169,!0,n);case 39:return Xi(e,2918,2927,!0,n);case 40:return Xi(e,1776,1785,!0,n);case 43:return Xi(e,3046,3055,!0,n);case 44:return Xi(e,3174,3183,!0,n);case 45:return Xi(e,3664,3673,!0,n);case 46:return Xi(e,3872,3881,!0,n);default:return Xi(e,48,57,!0,n)}},ea="data-html2canvas-ignore",Aa=function(){function e(e,A,t){if(this.context=e,this.options=t,this.scrolledElements=[],this.referenceElement=A,this.counters=new Ri,this.quoteDepth=0,!A.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(A.ownerDocument.documentElement,!1)}return e.prototype.toIFrame=function(e,A){var t=this,a=na(e,A);if(!a.contentWindow)return Promise.reject("Unable to find iframe window");var r=e.defaultView.pageXOffset,s=e.defaultView.pageYOffset,o=a.contentWindow,l=o.document,c=ra(a).then((function(){return n(t,void 0,void 0,(function(){var e,t;return i(this,(function(n){switch(n.label){case 0:return this.scrolledElements.forEach(da),o&&(o.scrollTo(A.left,A.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||o.scrollY===A.top&&o.scrollX===A.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(o.scrollX-A.left,o.scrollY-A.top,0,0))),e=this.options.onclone,void 0===(t=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:l.fonts&&l.fonts.ready?[4,l.fonts.ready]:[3,2];case 1:n.sent(),n.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,aa(l)]:[3,4];case 3:n.sent(),n.label=4;case 4:return"function"==typeof e?[2,Promise.resolve().then((function(){return e(l,t)})).then((function(){return a}))]:[2,a]}}))}))}));return l.open(),l.write(la(document.doctype)+""),ca(this.referenceElement.ownerDocument,r,s),l.replaceChild(l.adoptNode(this.documentElement),l.documentElement),l.close(),c},e.prototype.createElementClone=function(e){if(Bn(e,2),Ii(e))return this.createCanvasClone(e);if(Li(e))return this.createStyleClone(e);var A=e.cloneNode(!1);return ki(A)&&(ki(e)&&e.currentSrc&&e.currentSrc!==e.src&&(A.src=e.currentSrc,A.srcset=""),"lazy"===A.loading&&(A.loading="eager")),Di(A)?this.createCustomElementClone(A):A},e.prototype.createCustomElementClone=function(e){var A=document.createElement("html2canvascustomelement");return oa(e.style,A),A},e.prototype.createStyleClone=function(e){try{var A=e.sheet;if(A&&A.cssRules){var t=[].slice.call(A.cssRules,0).reduce((function(e,A){return A&&"string"==typeof A.cssText?e+A.cssText:e}),""),n=e.cloneNode(!1);return n.textContent=t,n}}catch(e){if(this.context.logger.error("Unable to access cssRules property",e),"SecurityError"!==e.name)throw e}return e.cloneNode(!1)},e.prototype.createCanvasClone=function(e){var A;if(this.options.inlineImages&&e.ownerDocument){var t=e.ownerDocument.createElement("img");try{return t.src=e.toDataURL(),t}catch(A){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",e)}}var n=e.cloneNode(!1);try{n.width=e.width,n.height=e.height;var i=e.getContext("2d"),a=n.getContext("2d");if(a)if(!this.options.allowTaint&&i)a.putImageData(i.getImageData(0,0,e.width,e.height),0,0);else{var r=null!==(A=e.getContext("webgl2"))&&void 0!==A?A:e.getContext("webgl");if(r){var s=r.getContextAttributes();!1===(null==s?void 0:s.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",e)}a.drawImage(e,0,0)}return n}catch(A){this.context.logger.info("Unable to clone canvas as it is tainted",e)}return n},e.prototype.appendChildNode=function(e,A,t){vi(A)&&("SCRIPT"===A.tagName||A.hasAttribute(ea)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(A))||this.options.copyStyles&&vi(A)&&Li(A)||e.appendChild(this.cloneNode(A,t))},e.prototype.cloneNode=function(e,A){var t=this;if(Ci(e))return document.createTextNode(e.data);if(!e.ownerDocument)return e.cloneNode(!1);var n=e.ownerDocument.defaultView;if(n&&vi(e)&&(yi(e)||Fi(e))){var i=this.createElementClone(e);i.style.transitionProperty="none";var a=n.getComputedStyle(e),r=n.getComputedStyle(e,":before"),s=n.getComputedStyle(e,":after");this.referenceElement===e&&yi(i)&&(this.clonedReferenceElement=i),Ti(i)&&pa(i);var o=this.counters.parse(new mn(this.context,a)),l=this.resolvePseudoContent(e,i,r,Sn.BEFORE);Di(e)&&(A=!0);for(var c=e.shadowRoot?e.shadowRoot.firstChild:e.firstChild;c;c=c.nextSibling)if(vi(c)&&Ni(c)&&"function"==typeof c.assignedNodes){var d=c.assignedNodes();d.length&&d.forEach((function(e){return t.appendChildNode(i,e,A)}))}else this.appendChildNode(i,c,A);l&&i.insertBefore(l,i.firstChild);var h=this.resolvePseudoContent(e,i,s,Sn.AFTER);return h&&i.appendChild(h),this.counters.pop(o),(a&&(this.options.copyStyles||Fi(e))&&!Mi(e)||A)&&oa(a,i),0===e.scrollTop&&0===e.scrollLeft||this.scrolledElements.push([i,e.scrollLeft,e.scrollTop]),(Oi(e)||Hi(e))&&(Oi(i)||Hi(i))&&(i.value=e.value),i}return e.cloneNode(!1)},e.prototype.resolvePseudoContent=function(e,A,t,n){var i=this;if(t){var a=t.content,r=A.ownerDocument;if(r&&a&&"none"!==a&&"-moz-alt-content"!==a&&"none"!==t.display){this.counters.parse(new mn(this.context,t));var s=new wn(this.context,t),o=r.createElement("html2canvaspseudoelement");oa(t,o),s.content.forEach((function(A){if(0===A.type)o.appendChild(r.createTextNode(A.value));else if(22===A.type){var t=r.createElement("img");t.src=A.value,t.style.opacity="1",o.appendChild(t)}else if(18===A.type){if("attr"===A.name){var n=A.values.filter(Re);n.length&&o.appendChild(r.createTextNode(e.getAttribute(n[0].value)||""))}else if("counter"===A.name){var a=A.values.filter(Ge),l=a[0],c=a[1];if(l&&Re(l)){var d=i.counters.getCounterValue(l.value),h=c&&Re(c)?vt.parse(i.context,c.value):3;o.appendChild(r.createTextNode($i(d,h,!1)))}}else if("counters"===A.name){var u=A.values.filter(Ge),g=(l=u[0],u[1]);if(c=u[2],l&&Re(l)){var p=i.counters.getCounterValues(l.value),w=c&&Re(c)?vt.parse(i.context,c.value):3,m=g&&0===g.type?g.value:"",f=p.map((function(e){return $i(e,w,!1)})).join(m);o.appendChild(r.createTextNode(f))}}}else if(20===A.type)switch(A.value){case"open-quote":o.appendChild(r.createTextNode(cn(s.quotes,i.quoteDepth++,!0)));break;case"close-quote":o.appendChild(r.createTextNode(cn(s.quotes,--i.quoteDepth,!1)));break;default:o.appendChild(r.createTextNode(A.value))}})),o.className=ha+" "+ua;var l=n===Sn.BEFORE?" "+ha:" "+ua;return Fi(A)?A.className.baseValue+=l:A.className+=l,o}}},e.destroy=function(e){return!!e.parentNode&&(e.parentNode.removeChild(e),!0)},e}();!function(e){e[e.BEFORE=0]="BEFORE",e[e.AFTER=1]="AFTER"}(Sn||(Sn={}));var ta,na=function(e,A){var t=e.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=A.width.toString(),t.height=A.height.toString(),t.scrolling="no",t.setAttribute(ea,"true"),e.body.appendChild(t),t},ia=function(e){return new Promise((function(A){e.complete?A():e.src?(e.onload=A,e.onerror=A):A()}))},aa=function(e){return Promise.all([].slice.call(e.images,0).map(ia))},ra=function(e){return new Promise((function(A,t){var n=e.contentWindow;if(!n)return t("No window assigned for iframe");var i=n.document;n.onload=e.onload=function(){n.onload=e.onload=null;var t=setInterval((function(){i.body.childNodes.length>0&&"complete"===i.readyState&&(clearInterval(t),A(e))}),50)}}))},sa=["all","d","content"],oa=function(e,A){for(var t=e.length-1;t>=0;t--){var n=e.item(t);-1===sa.indexOf(n)&&A.style.setProperty(n,e.getPropertyValue(n))}return A},la=function(e){var A="";return e&&(A+=""),A},ca=function(e,A,t){e&&e.defaultView&&(A!==e.defaultView.pageXOffset||t!==e.defaultView.pageYOffset)&&e.defaultView.scrollTo(A,t)},da=function(e){var A=e[0],t=e[1],n=e[2];A.scrollLeft=t,A.scrollTop=n},ha="___html2canvas___pseudoelement_before",ua="___html2canvas___pseudoelement_after",ga='{\n content: "" !important;\n display: none !important;\n}',pa=function(e){wa(e,"."+ha+":before"+ga+"\n ."+ua+":after"+ga)},wa=function(e,A){var t=e.ownerDocument;if(t){var n=t.createElement("style");n.textContent=A,e.appendChild(n)}},ma=function(){function e(){}return e.getOrigin=function(A){var t=e._link;return t?(t.href=A,t.href=t.href,t.protocol+t.hostname+t.port):"about:blank"},e.isSameOrigin=function(A){return e.getOrigin(A)===e._origin},e.setContext=function(A){e._link=A.document.createElement("a"),e._origin=e.getOrigin(A.location.href)},e._origin="about:blank",e}(),fa=function(){function e(e,A){this.context=e,this._options=A,this._cache={}}return e.prototype.addImage=function(e){var A=Promise.resolve();return this.has(e)?A:Fa(e)||Ca(e)?((this._cache[e]=this.loadImage(e)).catch((function(){})),A):A},e.prototype.match=function(e){return this._cache[e]},e.prototype.loadImage=function(e){return n(this,void 0,void 0,(function(){var A,t,n,a,r=this;return i(this,(function(i){switch(i.label){case 0:return A=ma.isSameOrigin(e),t=!va(e)&&!0===this._options.useCORS&&Gn.SUPPORT_CORS_IMAGES&&!A,n=!va(e)&&!A&&!Fa(e)&&"string"==typeof this._options.proxy&&Gn.SUPPORT_CORS_XHR&&!t,A||!1!==this._options.allowTaint||va(e)||Fa(e)||n||t?(a=e,n?[4,this.proxy(a)]:[3,2]):[2];case 1:a=i.sent(),i.label=2;case 2:return this.context.logger.debug("Added image "+e.substring(0,256)),[4,new Promise((function(e,A){var n=new Image;n.onload=function(){return e(n)},n.onerror=A,(ya(a)||t)&&(n.crossOrigin="anonymous"),n.src=a,!0===n.complete&&setTimeout((function(){return e(n)}),500),r._options.imageTimeout>0&&setTimeout((function(){return A("Timed out ("+r._options.imageTimeout+"ms) loading image")}),r._options.imageTimeout)}))];case 3:return[2,i.sent()]}}))}))},e.prototype.has=function(e){return void 0!==this._cache[e]},e.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},e.prototype.proxy=function(e){var A=this,t=this._options.proxy;if(!t)throw new Error("No proxy defined");var n=e.substring(0,256);return new Promise((function(i,a){var r=Gn.SUPPORT_RESPONSE_TYPE?"blob":"text",s=new XMLHttpRequest;s.onload=function(){if(200===s.status)if("text"===r)i(s.response);else{var e=new FileReader;e.addEventListener("load",(function(){return i(e.result)}),!1),e.addEventListener("error",(function(e){return a(e)}),!1),e.readAsDataURL(s.response)}else a("Failed to proxy resource "+n+" with status code "+s.status)},s.onerror=a;var o=t.indexOf("?")>-1?"&":"?";if(s.open("GET",""+t+o+"url="+encodeURIComponent(e)+"&responseType="+r),"text"!==r&&s instanceof XMLHttpRequest&&(s.responseType=r),A._options.imageTimeout){var l=A._options.imageTimeout;s.timeout=l,s.ontimeout=function(){return a("Timed out ("+l+"ms) proxying "+n)}}s.send()}))},e}(),Ba=/^data:image\/svg\+xml/i,Ea=/^data:image\/.*;base64,/i,ba=/^data:image\/.*/i,Ca=function(e){return Gn.SUPPORT_SVG_DRAWING||!xa(e)},va=function(e){return ba.test(e)},ya=function(e){return Ea.test(e)},Fa=function(e){return"blob"===e.substr(0,4)},xa=function(e){return"svg"===e.substr(-3).toLowerCase()||Ba.test(e)},Qa=function(){function e(e,A){this.type=0,this.x=e,this.y=A}return e.prototype.add=function(A,t){return new e(this.x+A,this.y+t)},e}(),Ua=function(e,A,t){return new Qa(e.x+(A.x-e.x)*t,e.y+(A.y-e.y)*t)},Sa=function(){function e(e,A,t,n){this.type=1,this.start=e,this.startControl=A,this.endControl=t,this.end=n}return e.prototype.subdivide=function(A,t){var n=Ua(this.start,this.startControl,A),i=Ua(this.startControl,this.endControl,A),a=Ua(this.endControl,this.end,A),r=Ua(n,i,A),s=Ua(i,a,A),o=Ua(r,s,A);return t?new e(this.start,n,r,o):new e(o,s,a,this.end)},e.prototype.add=function(A,t){return new e(this.start.add(A,t),this.startControl.add(A,t),this.endControl.add(A,t),this.end.add(A,t))},e.prototype.reverse=function(){return new e(this.end,this.endControl,this.startControl,this.start)},e}(),Ta=function(e){return 1===e.type},Ia=function(e){var A=e.styles,t=e.bounds,n=_e(A.borderTopLeftRadius,t.width,t.height),i=n[0],a=n[1],r=_e(A.borderTopRightRadius,t.width,t.height),s=r[0],o=r[1],l=_e(A.borderBottomRightRadius,t.width,t.height),c=l[0],d=l[1],h=_e(A.borderBottomLeftRadius,t.width,t.height),u=h[0],g=h[1],p=[];p.push((i+s)/t.width),p.push((u+c)/t.width),p.push((a+g)/t.height),p.push((o+d)/t.height);var w=Math.max.apply(Math,p);w>1&&(i/=w,a/=w,s/=w,o/=w,c/=w,d/=w,u/=w,g/=w);var m=t.width-s,f=t.height-d,B=t.width-c,E=t.height-g,b=A.borderTopWidth,C=A.borderRightWidth,v=A.borderBottomWidth,y=A.borderLeftWidth,F=$e(A.paddingTop,e.bounds.width),x=$e(A.paddingRight,e.bounds.width),Q=$e(A.paddingBottom,e.bounds.width),U=$e(A.paddingLeft,e.bounds.width);this.topLeftBorderDoubleOuterBox=i>0||a>0?ka(t.left+y/3,t.top+b/3,i-y/3,a-b/3,ta.TOP_LEFT):new Qa(t.left+y/3,t.top+b/3),this.topRightBorderDoubleOuterBox=i>0||a>0?ka(t.left+m,t.top+b/3,s-C/3,o-b/3,ta.TOP_RIGHT):new Qa(t.left+t.width-C/3,t.top+b/3),this.bottomRightBorderDoubleOuterBox=c>0||d>0?ka(t.left+B,t.top+f,c-C/3,d-v/3,ta.BOTTOM_RIGHT):new Qa(t.left+t.width-C/3,t.top+t.height-v/3),this.bottomLeftBorderDoubleOuterBox=u>0||g>0?ka(t.left+y/3,t.top+E,u-y/3,g-v/3,ta.BOTTOM_LEFT):new Qa(t.left+y/3,t.top+t.height-v/3),this.topLeftBorderDoubleInnerBox=i>0||a>0?ka(t.left+2*y/3,t.top+2*b/3,i-2*y/3,a-2*b/3,ta.TOP_LEFT):new Qa(t.left+2*y/3,t.top+2*b/3),this.topRightBorderDoubleInnerBox=i>0||a>0?ka(t.left+m,t.top+2*b/3,s-2*C/3,o-2*b/3,ta.TOP_RIGHT):new Qa(t.left+t.width-2*C/3,t.top+2*b/3),this.bottomRightBorderDoubleInnerBox=c>0||d>0?ka(t.left+B,t.top+f,c-2*C/3,d-2*v/3,ta.BOTTOM_RIGHT):new Qa(t.left+t.width-2*C/3,t.top+t.height-2*v/3),this.bottomLeftBorderDoubleInnerBox=u>0||g>0?ka(t.left+2*y/3,t.top+E,u-2*y/3,g-2*v/3,ta.BOTTOM_LEFT):new Qa(t.left+2*y/3,t.top+t.height-2*v/3),this.topLeftBorderStroke=i>0||a>0?ka(t.left+y/2,t.top+b/2,i-y/2,a-b/2,ta.TOP_LEFT):new Qa(t.left+y/2,t.top+b/2),this.topRightBorderStroke=i>0||a>0?ka(t.left+m,t.top+b/2,s-C/2,o-b/2,ta.TOP_RIGHT):new Qa(t.left+t.width-C/2,t.top+b/2),this.bottomRightBorderStroke=c>0||d>0?ka(t.left+B,t.top+f,c-C/2,d-v/2,ta.BOTTOM_RIGHT):new Qa(t.left+t.width-C/2,t.top+t.height-v/2),this.bottomLeftBorderStroke=u>0||g>0?ka(t.left+y/2,t.top+E,u-y/2,g-v/2,ta.BOTTOM_LEFT):new Qa(t.left+y/2,t.top+t.height-v/2),this.topLeftBorderBox=i>0||a>0?ka(t.left,t.top,i,a,ta.TOP_LEFT):new Qa(t.left,t.top),this.topRightBorderBox=s>0||o>0?ka(t.left+m,t.top,s,o,ta.TOP_RIGHT):new Qa(t.left+t.width,t.top),this.bottomRightBorderBox=c>0||d>0?ka(t.left+B,t.top+f,c,d,ta.BOTTOM_RIGHT):new Qa(t.left+t.width,t.top+t.height),this.bottomLeftBorderBox=u>0||g>0?ka(t.left,t.top+E,u,g,ta.BOTTOM_LEFT):new Qa(t.left,t.top+t.height),this.topLeftPaddingBox=i>0||a>0?ka(t.left+y,t.top+b,Math.max(0,i-y),Math.max(0,a-b),ta.TOP_LEFT):new Qa(t.left+y,t.top+b),this.topRightPaddingBox=s>0||o>0?ka(t.left+Math.min(m,t.width-C),t.top+b,m>t.width+C?0:Math.max(0,s-C),Math.max(0,o-b),ta.TOP_RIGHT):new Qa(t.left+t.width-C,t.top+b),this.bottomRightPaddingBox=c>0||d>0?ka(t.left+Math.min(B,t.width-y),t.top+Math.min(f,t.height-v),Math.max(0,c-C),Math.max(0,d-v),ta.BOTTOM_RIGHT):new Qa(t.left+t.width-C,t.top+t.height-v),this.bottomLeftPaddingBox=u>0||g>0?ka(t.left+y,t.top+Math.min(E,t.height-v),Math.max(0,u-y),Math.max(0,g-v),ta.BOTTOM_LEFT):new Qa(t.left+y,t.top+t.height-v),this.topLeftContentBox=i>0||a>0?ka(t.left+y+U,t.top+b+F,Math.max(0,i-(y+U)),Math.max(0,a-(b+F)),ta.TOP_LEFT):new Qa(t.left+y+U,t.top+b+F),this.topRightContentBox=s>0||o>0?ka(t.left+Math.min(m,t.width+y+U),t.top+b+F,m>t.width+y+U?0:s-y+U,o-(b+F),ta.TOP_RIGHT):new Qa(t.left+t.width-(C+x),t.top+b+F),this.bottomRightContentBox=c>0||d>0?ka(t.left+Math.min(B,t.width-(y+U)),t.top+Math.min(f,t.height+b+F),Math.max(0,c-(C+x)),d-(v+Q),ta.BOTTOM_RIGHT):new Qa(t.left+t.width-(C+x),t.top+t.height-(v+Q)),this.bottomLeftContentBox=u>0||g>0?ka(t.left+y+U,t.top+E,Math.max(0,u-(y+U)),g-(v+Q),ta.BOTTOM_LEFT):new Qa(t.left+y+U,t.top+t.height-(v+Q))};!function(e){e[e.TOP_LEFT=0]="TOP_LEFT",e[e.TOP_RIGHT=1]="TOP_RIGHT",e[e.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",e[e.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(ta||(ta={}));var ka=function(e,A,t,n,i){var a=(Math.sqrt(2)-1)/3*4,r=t*a,s=n*a,o=e+t,l=A+n;switch(i){case ta.TOP_LEFT:return new Sa(new Qa(e,l),new Qa(e,l-s),new Qa(o-r,A),new Qa(o,A));case ta.TOP_RIGHT:return new Sa(new Qa(e,A),new Qa(e+r,A),new Qa(o,l-s),new Qa(o,l));case ta.BOTTOM_RIGHT:return new Sa(new Qa(o,A),new Qa(o,A+s),new Qa(e+r,l),new Qa(e,l));case ta.BOTTOM_LEFT:default:return new Sa(new Qa(o,l),new Qa(o-r,l),new Qa(e,A+s),new Qa(e,A))}},Ma=function(e){return[e.topLeftBorderBox,e.topRightBorderBox,e.bottomRightBorderBox,e.bottomLeftBorderBox]},La=function(e){return[e.topLeftPaddingBox,e.topRightPaddingBox,e.bottomRightPaddingBox,e.bottomLeftPaddingBox]},Oa=function(e,A,t){this.offsetX=e,this.offsetY=A,this.matrix=t,this.type=0,this.target=6},Ha=function(e,A){this.path=e,this.target=A,this.type=1},Na=function(e){this.opacity=e,this.type=2,this.target=6},Da=function(e){return 1===e.type},Ra=function(e,A){return e.length===A.length&&e.some((function(e,t){return e===A[t]}))},Pa=function(e){this.element=e,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},Va=function(){function e(e,A){if(this.container=e,this.parent=A,this.effects=[],this.curves=new Ia(this.container),this.container.styles.opacity<1&&this.effects.push(new Na(this.container.styles.opacity)),null!==this.container.styles.transform){var t=this.container.bounds.left+this.container.styles.transformOrigin[0].number,n=this.container.bounds.top+this.container.styles.transformOrigin[1].number,i=this.container.styles.transform;this.effects.push(new Oa(t,n,i))}if(0!==this.container.styles.overflowX){var a=Ma(this.curves),r=La(this.curves);Ra(a,r)?this.effects.push(new Ha(a,6)):(this.effects.push(new Ha(a,2)),this.effects.push(new Ha(r,4)))}}return e.prototype.getEffects=function(e){for(var A=-1===[2,3].indexOf(this.container.styles.position),t=this.parent,n=this.effects.slice(0);t;){var i=t.effects.filter((function(e){return!Da(e)}));if(A||0!==t.container.styles.position||!t.parent){if(n.unshift.apply(n,i),A=-1===[2,3].indexOf(t.container.styles.position),0!==t.container.styles.overflowX){var a=Ma(t.curves),r=La(t.curves);Ra(a,r)||n.unshift(new Ha(r,6))}}else n.unshift.apply(n,i);t=t.parent}return n.filter((function(A){return nn(A.target,e)}))},e}(),Ka=function(e,A,t,n){e.container.elements.forEach((function(i){var a=nn(i.flags,4),r=nn(i.flags,2),s=new Va(i,e);nn(i.styles.display,2048)&&n.push(s);var o=nn(i.flags,8)?[]:n;if(a||r){var l=a||i.styles.isPositioned()?t:A,c=new Pa(s);if(i.styles.isPositioned()||i.styles.opacity<1||i.styles.isTransformed()){var d=i.styles.zIndex.order;if(d<0){var h=0;l.negativeZIndex.some((function(e,A){return d>e.element.container.styles.zIndex.order?(h=A,!1):h>0})),l.negativeZIndex.splice(h,0,c)}else if(d>0){var u=0;l.positiveZIndex.some((function(e,A){return d>=e.element.container.styles.zIndex.order?(u=A+1,!1):u>0})),l.positiveZIndex.splice(u,0,c)}else l.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else i.styles.isFloating()?l.nonPositionedFloats.push(c):l.nonPositionedInlineLevel.push(c);Ka(s,c,a?c:t,o)}else i.styles.isInlineLevel()?A.inlineLevel.push(s):A.nonInlineLevel.push(s),Ka(s,A,t,o);nn(i.flags,8)&&Ga(i,o)}))},Ga=function(e,A){for(var t=e instanceof ai?e.start:1,n=e instanceof ai&&e.reversed,i=0;i0&&e.intrinsicHeight>0){var n=ja(e),i=La(A);this.path(i),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(t,0,0,e.intrinsicWidth,e.intrinsicHeight,n.left,n.top,n.width,n.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(e){return n(this,void 0,void 0,(function(){var A,n,a,s,o,l,c,d,h,u,g,p,w,m,f,B,E,b;return i(this,(function(i){switch(i.label){case 0:this.applyEffects(e.getEffects(4)),A=e.container,n=e.curves,a=A.styles,s=0,o=A.textNodes,i.label=1;case 1:return s0&&y>0&&(f=n.ctx.createPattern(p,"repeat"),n.renderRepeat(E,f,x,Q))):function(e){return 2===e.type}(t)&&(B=Ja(e,A,[null,null,null]),E=B[0],b=B[1],C=B[2],v=B[3],y=B[4],F=0===t.position.length?[Ze]:t.position,x=$e(F[0],v),Q=$e(F[F.length-1],y),U=function(e,A,t,n,i){var a=0,r=0;switch(e.size){case 0:0===e.shape?a=r=Math.min(Math.abs(A),Math.abs(A-n),Math.abs(t),Math.abs(t-i)):1===e.shape&&(a=Math.min(Math.abs(A),Math.abs(A-n)),r=Math.min(Math.abs(t),Math.abs(t-i)));break;case 2:if(0===e.shape)a=r=Math.min(CA(A,t),CA(A,t-i),CA(A-n,t),CA(A-n,t-i));else if(1===e.shape){var s=Math.min(Math.abs(t),Math.abs(t-i))/Math.min(Math.abs(A),Math.abs(A-n)),o=vA(n,i,A,t,!0),l=o[0],c=o[1];r=s*(a=CA(l-A,(c-t)/s))}break;case 1:0===e.shape?a=r=Math.max(Math.abs(A),Math.abs(A-n),Math.abs(t),Math.abs(t-i)):1===e.shape&&(a=Math.max(Math.abs(A),Math.abs(A-n)),r=Math.max(Math.abs(t),Math.abs(t-i)));break;case 3:if(0===e.shape)a=r=Math.max(CA(A,t),CA(A,t-i),CA(A-n,t),CA(A-n,t-i));else if(1===e.shape){s=Math.max(Math.abs(t),Math.abs(t-i))/Math.max(Math.abs(A),Math.abs(A-n));var d=vA(n,i,A,t,!1);l=d[0],c=d[1],r=s*(a=CA(l-A,(c-t)/s))}}return Array.isArray(e.size)&&(a=$e(e.size[0],n),r=2===e.size.length?$e(e.size[1],i):a),[a,r]}(t,x,Q,v,y),S=U[0],T=U[1],S>0&&T>0&&(I=n.ctx.createRadialGradient(b+x,C+Q,0,b+x,C+Q,S),EA(t.stops,2*S).forEach((function(e){return I.addColorStop(e.stop,oA(e.color))})),n.path(E),n.ctx.fillStyle=I,S!==T?(k=e.bounds.left+.5*e.bounds.width,M=e.bounds.top+.5*e.bounds.height,O=1/(L=T/S),n.ctx.save(),n.ctx.translate(k,M),n.ctx.transform(1,0,0,L,0,0),n.ctx.translate(-k,-M),n.ctx.fillRect(b,O*(C-M)+M,v,y*O),n.ctx.restore()):n.ctx.fill())),i.label=6;case 6:return A--,[2]}}))},n=this,a=0,r=e.styles.backgroundImage.slice(0).reverse(),o.label=1;case 1:return a0?2!==l.style?[3,5]:[4,this.renderDashedDottedBorder(l.color,l.width,r,e.curves,2)]:[3,11]:[3,13];case 4:return i.sent(),[3,11];case 5:return 3!==l.style?[3,7]:[4,this.renderDashedDottedBorder(l.color,l.width,r,e.curves,3)];case 6:return i.sent(),[3,11];case 7:return 4!==l.style?[3,9]:[4,this.renderDoubleBorder(l.color,l.width,r,e.curves)];case 8:return i.sent(),[3,11];case 9:return[4,this.renderSolidBorder(l.color,r,e.curves)];case 10:i.sent(),i.label=11;case 11:r++,i.label=12;case 12:return s++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(e,A,t,a,r){return n(this,void 0,void 0,(function(){var n,s,o,l,c,d,h,u,g,p,w,m,f,B,E,b;return i(this,(function(i){return this.ctx.save(),n=function(e,A){switch(A){case 0:return za(e.topLeftBorderStroke,e.topRightBorderStroke);case 1:return za(e.topRightBorderStroke,e.bottomRightBorderStroke);case 2:return za(e.bottomRightBorderStroke,e.bottomLeftBorderStroke);default:return za(e.bottomLeftBorderStroke,e.topLeftBorderStroke)}}(a,t),s=Wa(a,t),2===r&&(this.path(s),this.ctx.clip()),Ta(s[0])?(o=s[0].start.x,l=s[0].start.y):(o=s[0].x,l=s[0].y),Ta(s[1])?(c=s[1].end.x,d=s[1].end.y):(c=s[1].x,d=s[1].y),h=0===t||2===t?Math.abs(o-c):Math.abs(l-d),this.ctx.beginPath(),3===r?this.formatPath(n):this.formatPath(s.slice(0,2)),u=A<3?3*A:2*A,g=A<3?2*A:A,3===r&&(u=A,g=A),p=!0,h<=2*u?p=!1:h<=2*u+g?(u*=w=h/(2*u+g),g*=w):(m=Math.floor((h+g)/(u+g)),f=(h-m*u)/(m-1),g=(B=(h-(m+1)*u)/m)<=0||Math.abs(g-f){const a=await tex2dataURL(e,i);if(a){const e=[];e.push({mimeType:a.mimeType,id:A,dataURL:a.dataURL,created:a.created,size:a.size,hasSVGwithBitmap:!1,shouldScale:!0}),n(e,t)}};async function tex2dataURL(e,A){let t=0;for(;!A.mathjax&&!A.mathjaxLoaderFinished&&t<10;)await sleep$1(100),t++;A.mathjaxLoaderFinished||errorlog({where:"text2dataURL",fn:tex2dataURL,message:"mathjaxLoader not ready, using fallback. Try reloading Obsidian or restarting the Excalidraw plugin"});try{return await mathjaxSVG(e,A)}catch(t){await sleep$1(100);try{return await mathjaxSVG(e,A)}catch(t){await sleep$1(100);try{return await mathjaxSVG(e,A)}catch(t){return A.mathjax?new obsidian.Notice("Unknown error loading LaTeX. Using fallback solution. Try closing and reopening this drawing."):new obsidian.Notice("LaTeX support did not load. Using fallback solution. Try checking your network connection."),await mathjaxImage2html(e)}}}}async function mathjaxSVG(e,A){const t=A.mathjax.tex2svg(e,{display:!0,scale:4}).querySelector("svg");if(t){const e=svgToBase64(t.outerHTML);return{mimeType:"image/svg+xml",fileId:fileid(),dataURL:e,created:Date.now(),size:await getImageSize(e)}}return null}async function mathjaxImage2html(e){const A=document.body.createDiv();A.style.display="table";const t=window.MathJax.tex2chtml(e,{display:!0,scale:4});t.style.margin="3px",t.style.color="black";const n=t.querySelector("mjx-assistive-mml");n&&n.parentElement.removeChild(n),A.appendChild(t),window.MathJax.typeset();const i=await html2canvas(A,{backgroundColor:null});return document.body.removeChild(A),{mimeType:"image/png",fileId:fileid(),dataURL:i.toDataURL(),created:Date.now(),size:{height:i.height,width:i.width}}}const THEME_FILTER="invert(100%) hue-rotate(180deg) saturate(1.25)";class EmbeddedFile{constructor(e,A,t){this.file=null,this.isSVGwithBitmap=!1,this.img="",this.imgInverted="",this.mtime=0,this.mimeType="application/octet-stream",this.size={height:0,width:0},this.attemptCounter=0,this.plugin=e,this.resetImage(A,t)}resetImage(e,A){this.imgInverted=this.img="",this.mtime=0,this.linkParts=getLinkParts(A),this.hostPath=e,this.linkParts.path?(this.linkParts.width||(this.linkParts.width=this.plugin.settings.mdSVGwidth),this.linkParts.height||(this.linkParts.height=this.plugin.settings.mdSVGmaxHeight),this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,e),this.file||0==this.attemptCounter++&&new obsidian.Notice(`Excalidraw Warning: could not find image file: ${A}`,5e3)):new obsidian.Notice(`Excalidraw Error\nIncorrect embedded filename: ${A}`)}fileChanged(){return this.file||(this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),this.file)?this.mtime!=this.file.stat.mtime:(this.attemptCounter++,!1)}setImage(e,A,t,n,i){if(this.file){switch(this.fileChanged()&&(this.imgInverted=this.img=""),this.mtime=this.file.stat.mtime,this.size=t,this.mimeType=A,n&&i){case!0:this.imgInverted=e;break;case!1:this.img=e}this.isSVGwithBitmap=i}}isLoaded(e){return this.file||(this.file=app.metadataCache.getFirstLinkpathDest(this.linkParts.path,this.hostPath),this.file)?!this.fileChanged()&&(this.isSVGwithBitmap&&e?""!==this.imgInverted:""!==this.img):(this.attemptCounter++,!0)}getImage(e){return this.file?e&&this.isSVGwithBitmap?this.imgInverted:this.img:""}shouldScale(){return!Boolean(this.linkParts&&this.linkParts.original&&this.linkParts.original.endsWith("|100%"))}}class EmbeddedFilesLoader{constructor(e,A){this.terminate=!1,this.plugin=e,this.isDark=A,this.uid=nanoid()}async getObsidianImage(e,A){if(!this.plugin||!e)return null;const t=e instanceof EmbeddedFile?e.file:e,n=e instanceof EmbeddedFile?e.linkParts:{original:t.path,path:t.path,isBlockRef:!1,ref:null,width:this.plugin.settings.mdSVGwidth,height:this.plugin.settings.mdSVGmaxHeight};let i=!1;const a=this.plugin.isExcalidrawFile(t);if(!IMAGE_TYPES.contains(t.extension)&&!a&&"md"!==t.extension)return null;const r=await app.vault.readBinary(t),s=a?await(async e=>{const n=hasExportTheme(this.plugin,t)?getExportTheme(this.plugin,t,"light"):void 0,a={withBackground:!!hasExportBackground(this.plugin,t)&&getWithBackground(this.plugin,t),withTheme:!!n},r=await createSVG(t.path,!0,a,this,n,null,null,[],this.plugin,A+1,getExportPadding(this.plugin,t)),s=r.querySelectorAll("image:not([href^='data:image/svg'])");return s.length>0&&(i=!0),i&&e&&s.forEach((e=>{var A;const t=null===(A=e.parentElement)||void 0===A?void 0:A.id;r.querySelectorAll(`use[href='#${t}']`).forEach((e=>{e.setAttribute("filter",THEME_FILTER)}))})),!i&&r.getAttribute("hasbitmap")&&(i=!0),svgToBase64(r.outerHTML)})(this.isDark):null;let o="image/svg+xml";if(!a)switch(t.extension){case"png":o="image/png";break;case"jpeg":case"jpg":o="image/jpeg";break;case"gif":o="image/gif";break;case"webp":o="image/webp";break;case"bmp":o="image/bmp";break;case"ico":o="image/x-icon";break;case"svg":case"md":o="image/svg+xml";break;default:o="application/octet-stream"}let l=null!=s?s:"svg"===t.extension?await getSVGData(app,t):"md"===t.extension?null:await getDataURL(r,o);if(!l){const e=await this.convertMarkdownToSVG(this.plugin,t,n);l=e.dataURL,i=e.hasSVGwithBitmap}const c=await getImageSize(l);return{mimeType:o,fileId:await generateIdFromFile(r),dataURL:l,created:t.stat.mtime,hasSVGwithBitmap:i,size:c}}async loadSceneFiles(e,A,t){var n,i;if(t>4)return void new obsidian.Notice(t$d("INFINITE_LOOP_WARNING")+t.toString(),6e3);const a=e.getFileEntries();let r;void 0===this.isDark&&(this.isDark="dark"===(null===(i=null===(n=null==e?void 0:e.scene)||void 0===n?void 0:n.appState)||void 0===i?void 0:i.theme));const s=[];for(;!this.terminate&&!(r=a.next()).done;){const e=r.value[1];if(e.isLoaded(this.isDark))e.isSVGwithBitmap&&s.push({mimeType:e.mimeType,id:r.value[0],dataURL:e.getImage(this.isDark),created:e.mtime,size:e.size,hasSVGwithBitmap:e.isSVGwithBitmap,shouldScale:e.shouldScale()});else{const A=await this.getObsidianImage(e,t);A&&s.push({mimeType:A.mimeType,id:r.value[0],dataURL:A.dataURL,created:A.created,size:A.size,hasSVGwithBitmap:A.hasSVGwithBitmap,shouldScale:e.shouldScale()})}}let o;const l=e.getEquationEntries();for(;!this.terminate&&!(o=l.next()).done;)if(!e.getEquation(o.value[0]).isLoaded){const e=o.value[1].latex,A=await tex2dataURL(e,this.plugin);A&&s.push({mimeType:A.mimeType,id:o.value[0],dataURL:A.dataURL,created:A.created,size:A.size,hasSVGwithBitmap:!1,shouldScale:!0})}if(!this.terminate)try{A(s,this.isDark)}catch(e){errorlog({where:"EmbeddedFileLoader.loadSceneFiles",error:e})}}async convertMarkdownToSVG(e,A,t){var n,i,a,r;let s=!1;const o=await getTransclusion(t,e.app,A);let l=(null!==(n=o.leadingHashes)&&void 0!==n?n:"")+o.contents;""===l&&(l="# Empty markdown file\nCTRL+Click here to open the file for editing in the current active pane, or CTRL+SHIFT+Click to open it in an adjacent pane.");const c=e.app.metadataCache.getFileCache(A);let d,h=e.settings.mdFont;switch((null==c?void 0:c.frontmatter)&&Boolean(c.frontmatter["excalidraw-font"])&&(h=c.frontmatter["excalidraw-font"]),h){case"Virgil":d=VIRGIL_FONT;break;case"Cascadia":d=CASCADIA_FONT;break;case"":d="";break;default:const t=await getFontDataURL(e.app,h,A.path);d=t.fontDef,h=t.fontName}(null==c?void 0:c.frontmatter)&&null!==c.frontmatter.banner&&(l=l.replace(/banner:\s*.*/,""));const u=(null==c?void 0:c.frontmatter)&&null!==(i=c.frontmatter["excalidraw-font-color"])&&void 0!==i?i:e.settings.mdFontColor;let g=(null==c?void 0:c.frontmatter)&&null!==(a=c.frontmatter["excalidraw-css"])&&void 0!==a?a:"",p=!1;if(g&&""!=g){const t=e.app.metadataCache.getFirstLinkpathDest(g,A.path);t&&(g=await e.app.vault.read(t),p=!0)}if(!p)if(e.settings.mdCSS&&""!==e.settings.mdCSS){const t=e.app.metadataCache.getFirstLinkpathDest(e.settings.mdCSS,A.path);g+=t?`\n${await e.app.vault.read(t)}`:DEFAULT_MD_EMBED_CSS}else g+=DEFAULT_MD_EMBED_CSS;const w=(null==c?void 0:c.frontmatter)&&null!==(r=c.frontmatter["excalidraw-border-color"])&&void 0!==r?r:e.settings.mdBorderColor;w&&""!==w&&!g.match(/svg/i)&&(g+=`svg{border:2px solid;color:${w};transform:scale(.95)}`);let m=` width="${t.width}px" height="100000"`,f=` width="${t.width}px" height="100%"`;const B=(e,A,t)=>`${t?``:""}${e}${A}${""!==d?``:""}`,E=createDiv();E.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),E.setAttribute("class","excalidraw-md-host"),""!==h&&(E.style.fontFamily=h),E.style.overflow="auto",E.style.display="block",E.style.color=u&&""!==u?u:"initial",await obsidian.MarkdownRenderer.renderMarkdown(l,E,A.path,e),E.querySelectorAll(":scope > *[class^='frontmatter']").forEach((e=>E.removeChild(e)));const b=Array.from(E.querySelectorAll("span[class='internal-embed']"));for(let t=0;t{const A=e.style,t=window.getComputedStyle(e);let n="";for(const e in A)A.hasOwnProperty(e)&&(n+=`${e}: ${t[e]};`);e.setAttribute("style",n)}));const x=(new XMLSerializer).serializeToString(y),Q=(new XMLSerializer).serializeToString(F);document.body.removeChild(C);const U=new DOMParser,S=U.parseFromString(B(x,Q),"image/svg+xml").firstElementChild,T=createDiv();T.appendChild(S),document.body.appendChild(T);const I=S.querySelector(".excalidraw-md-footer").scrollHeight,k=S.querySelector(".excalidraw-md-host").scrollHeight+I,M=k<=t.height?k:t.height;document.body.removeChild(T),m=` width="${t.width}px" height="${M}px"`,f=` width="${t.width}px" height="${M}px"`,E.style.height=M-I+"px",E.style.overflow="hidden";const L=E.querySelectorAll("img:not([src^='data:image/svg+xml'])");L.length>0&&(s=!0),s&&this.isDark&&L.forEach((e=>{e instanceof HTMLImageElement&&(e.style.filter=THEME_FILTER)}));const O=B((new XMLSerializer).serializeToString(E),'',g);return e.ea.mostRecentMarkdownSVG=U.parseFromString(O,"image/svg+xml").firstElementChild,{dataURL:svgToBase64(O),hasSVGwithBitmap:s}}}const getSVGData=async(e,A)=>{const t=await e.vault.read(A);return svgToBase64(t)},generateIdFromFile=async e=>{let A;try{const t=await window.crypto.subtle.digest("SHA-1",e);A=Array.from(new Uint8Array(t)).map((e=>e.toString(16).padStart(2,"0"))).join("")}catch(e){errorlog({where:"EmbeddedFileLoader.generateIdFromFile",error:e}),A=fileid()}return A},{wrapText:wrapText,getFontString:getFontString,getMaxContainerWidth:getMaxContainerWidth}=excalidrawLib;var AutoexportPreference;!function(e){e[e.none=0]="none",e[e.both=1]="both",e[e.png=2]="png",e[e.svg=3]="svg",e[e.inherit=4]="inherit"}(AutoexportPreference||(AutoexportPreference={}));const REGEX_LINK={ //![[link|alias]] [alias](link){num} -EXPR:/(!)?(\[\[([^|\]]+)\|?([^\]]+)?]]|\[([^\]]*)]\(([^)]*)\))(\{(\d+)\})?/g,getRes:A=>A.matchAll(REGEX_LINK.EXPR),isTransclusion:A=>!!A.value[1],getLink:A=>A.value[3]?A.value[3]:A.value[6],isWikiLink:A=>!!A.value[3],getAliasOrLink:A=>REGEX_LINK.isWikiLink(A)?A.value[4]?A.value[4]:A.value[3]:A.value[5]?A.value[5]:A.value[6],getWrapLength:(A,e)=>{const t=parseInt(A.value[8]);return isNaN(t)?e>0?e:null:t}},DRAWING_REG=/\n# Drawing\n[^`]*(```json\n)([\s\S]*?)```\n/gm,DRAWING_REG_FALLBACK=/\n# Drawing\n(```json\n)?(.*)(```)?(%%)?/gm,DRAWING_COMPRESSED_REG=/(\n# Drawing\n[^`]*(?:```compressed\-json\n))([\s\S]*?)(```\n)/gm,DRAWING_COMPRESSED_REG_FALLBACK=/(\n# Drawing\n(?:```compressed\-json\n)?)(.*)((```)?(%%)?)/gm,REG_LINKINDEX_HYPERLINK=/^\w+:\/\//,isCompressedMD=A=>null!==A.match(/```compressed\-json\n/gm),getDecompressedScene=A=>{let e,t=A.matchAll(DRAWING_COMPRESSED_REG);return e=t.next(),e.done&&(t=A.matchAll(DRAWING_COMPRESSED_REG_FALLBACK),e=t.next()),e.value&&e.value.length>1?[decompress(e.value[2]),e]:[null,e]},changeThemeOfExcalidrawMD=A=>{const e=isCompressedMD(A);let t=e?getDecompressedScene(A)[0]:A;return t?(isObsidianThemeDark?1===(t.match(/"theme"\s*:\s*"light"\s*,/g)||[]).length&&(t=t.replace(/"theme"\s*:\s*"light"\s*,/,'"theme": "dark",')):1===(t.match(/"theme"\s*:\s*"dark"\s*,/g)||[]).length&&(t=t.replace(/"theme"\s*:\s*"dark"\s*,/,'"theme": "light",')),e?A.replace(DRAWING_COMPRESSED_REG,`$1${compress(t)}$3`):t):A};function getJSON(A){let e,t;if(isCompressedMD(A)){const[e,t]=getDecompressedScene(A);return e?{scene:e.substring(0,e.lastIndexOf("}")+1),pos:t.value.index}:{scene:A,pos:t.value?t.value.index:0}}if(e=A.matchAll(DRAWING_REG),t=e.next(),t.done&&(e=A.matchAll(DRAWING_REG_FALLBACK),t=e.next()),t.value&&t.value.length>1){const A=t.value[2];return{scene:A.substr(0,A.lastIndexOf("}")+1),pos:t.value.index}}return{scene:A,pos:t.value?t.value.index:0}}function getMarkdownDrawingSection(A,e){return e?`%%\n# Drawing\n\`\`\`compressed-json\n${compress(A)}\n\`\`\`\n%%`:`%%\n# Drawing\n\`\`\`json\n${A}\n\`\`\`\n%%`}const estimateMaxLineLen=(A,e)=>{if(!e||!A)return null;if(A===e)return null;let t=0;const i=A.split("\n");if(1===i.length)return null;for(const A of i)A.length>t&&(t=A.length);return t},wrap=(A,e)=>e?wrapText(A,e,!1,0):A;class ExcalidrawData{constructor(A){this.plugin=A,this.textElements=null,this.elementLinks=null,this.scene=null,this.deletedElements=[],this.file=null,this.autoexportPreference=AutoexportPreference.inherit,this.textMode=TextMode.raw,this.loaded=!1,this.files=null,this.equations=null,this.compatibilityMode=!1,this.selectedElementIds={},this.disableCompression=!1,this.app=A.app,this.files=new Map,this.equations=new Map}initializeNonInitializedFields(){var A,e;if(!this.scene||!this.scene.elements)return;const t=this.scene.elements;for(const i of t){if(i.boundElements){const A=new Map;i.boundElements.forEach((e=>{A.set(e.id,e.type)}));const e=Array.from(A,(([A,e])=>({id:A,type:e})));e.length!==i.boundElements.length&&(i.boundElements=e)}i.boundElementIds&&(i.boundElements||(i.boundElements=[]),i.boundElements=i.boundElements.concat(i.boundElementIds.map((A=>({type:"arrow",id:A})))),delete i.boundElementIds),"text"!==i.type||i.containerId||(i.containerId=null),null===i.x&&(i.x=0),null===i.y&&(i.y=0),null===(null===(A=i.startBinding)||void 0===A?void 0:A.focus)&&(i.startBinding.focus=0),null===(null===(e=i.endBinding)||void 0===e?void 0:e.focus)&&(i.endBinding.focus=0),null===i.fontSize&&(i.fontSize=20)}try{t.filter((A=>"text"===A.type&&A.containerId&&t.some((e=>e.id===A.containerId&&e.boundElements.length>0&&e.boundElements.some((e=>"text"===e.type&&e.id!==A.id&&e.id.length>8)))))).forEach((A=>{try{const e=t.filter((e=>e.id===A.containerId))[0],i=e.boundElements.filter((A=>!("text"===A.type&&!t.some((e=>e.id===A.id)))));e.boundElements=[{id:A.id,type:"text"}].concat(i)}catch(A){}})),t.filter((A=>A.boundElements&&A.boundElements.length>0)).forEach((A=>{const e=A.boundElements.filter((A=>t.some((e=>e.id===A.id))));e.length!==A.boundElements.length&&(A.boundElements=e)})),t.filter((A=>"text"===A.type&&A.containerId&&!t.some((e=>e.id===A.containerId)))).forEach((A=>{A.containerId=null}))}catch(A){}}async loadData(A,e,t){if(!e)return!1;if(this.loaded=!1,this.selectedElementIds={},this.textElements=new Map,this.elementLinks=new Map,this.file!=e&&(this.files.clear(),this.equations.clear()),this.file=e,this.compatibilityMode=!1,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.setAutoexportPreferences(),this.scene=null,this.plugin.settings.syncExcalidraw){const A=`${e.path.substring(0,e.path.lastIndexOf(".md"))}.excalidraw`,t=this.app.vault.getAbstractFileByPath(A);if(t&&t instanceof obsidian.TFile&&t.stat.mtime>e.stat.mtime){const A=await this.app.vault.read(t);this.scene=JSON.parse(A)}}let i=null;i=(()=>{const e=getJSON(A);if(-1===e.pos)throw new Error("Excalidraw JSON not found in the file");return this.scene||(this.scene=JSON_parse(e.scene)),e})(),this.deletedElements=this.scene.elements.filter((A=>A.isDeleted)),this.scene.elements=this.scene.elements.filter((A=>!A.isDeleted)),this.scene.files||(this.scene.files={}),hasExportTheme(this.plugin,this.file)?this.scene.appState.theme=getExportTheme(this.plugin,this.file,"light"):this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),this.initializeNonInitializedFields();let n=(A=A.substring(0,i.pos)).search(/(^%%\n)?# Text Elements\n/m);if(-1===n)return await this.setTextMode(t,!1),this.loaded=!0,!0;n+=A.match(/((^%%\n)?# Text Elements\n)/m)[0].length,A=A.substring(n),n=0;const a=" ^12345678\n\n".length;let r,s=A.matchAll(/\s\^(.{8})[\n]+/g);for(;!(r=s.next()).done;){let e=A.substring(n,r.value.index);const t=r.value[1],i=this.scene.elements.filter((A=>A.id===t))[0];if(i)if("text"!==i.type)i.link!==e&&(i.link=e,i.version++,i.versionNonce++),this.elementLinks.set(t,e);else{const A=estimateMaxLineLen(i.text,i.originalText),n=e.matchAll(/^%%\*\*\*>>>text element-link:(\[\[[^<*\]]*]])<<<\*\*\*%%/gm).next();n.done||(e=e.replace(/^%%\*\*\*>>>text element-link:\[\[[^<*\]]*]]<<<\*\*\*%%/gm,""),i.link=n.value[1]);const a=await this.parse(e);this.textElements.set(t,{raw:e,parsed:a.parsed,wrapAt:A}),a.link&&(i.link=a.link),!i||i.rawText&&""!==i.rawText||(i.rawText=e)}n=r.value.index+a}for(s=(A=A.substring(A.indexOf("# Embedded files\n")+"# Embedded files\n".length)).matchAll(/([\w\d]*):\s*\[\[([^\]]*)]]\n/gm);!(r=s.next()).done;){const A=new EmbeddedFile(this.plugin,this.file.path,r.value[2]);this.setFile(r.value[1],A)}for(s=A.matchAll(/([\w\d]*):\s*\$\$(.*)(\$\$\s*\n)/gm);!(r=s.next()).done;)this.setEquation(r.value[1],{latex:r.value[2],isLoaded:!1});return this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(t,!0),this.loaded=!0,!0}async loadLegacyData(A,e){return!!e&&(this.loaded=!1,this.selectedElementIds={},this.compatibilityMode=!0,this.file=e,this.textElements=new Map,this.elementLinks=new Map,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.scene=JSON.parse(A),this.scene.files||(this.scene.files={}),this.initializeNonInitializedFields(),this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),this.files.clear(),this.equations.clear(),this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(TextMode.raw,!0),this.loaded=!0,!0)}async setTextMode(A,e=!1){this.scene&&(this.textMode=A,await this.updateSceneTextElements(e))}updateTextElement(A,e,t,i=!1){if(i||e!=A.text){const i=_measureText(e,A.fontSize,A.fontFamily);A.text=e,A.originalText=t,A.containerId||(A.width=i.w),A.height=i.h,A.baseline=i.baseline}}async updateSceneTextElements(A=!1){var e,t,i,n;const a=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((A=>"text"===A.type));for(const e of a){const a=null!==(i=null!==(t=await this.getText(e.id,!1))&&void 0!==t?t:e.originalText)&&void 0!==i?i:e.text,r=null===(n=this.textElements.get(e.id))||void 0===n?void 0:n.wrapAt;this.updateTextElement(e,wrap(a,r),a,A)}}async getText(A,e=!0){const t=this.textElements.get(A);return t?this.textMode===TextMode.parsed?(t.parsed||this.textElements.set(A,{raw:t.raw,parsed:(await this.parse(t.raw)).parsed,wrapAt:t.wrapAt}),e?wrap(t.parsed,t.wrapAt):t.parsed):t.raw:null}findNewElementLinksInScene(){var A;const e=null===(A=this.scene.elements)||void 0===A?void 0:A.filter((A=>"text"!==A.type&&A.link&&A.link.startsWith("[[")&&!this.elementLinks.has(A.id)));if(0===e.length)return!1;let t,i=JSON.stringify(this.scene);for(const A of e)t=A.id,A.id.length>8&&(t=nanoid(),i=i.replaceAll(A.id,t)),this.elementLinks.set(t,A.link);return this.scene=JSON.parse(i),!0}findNewTextElementsInScene(A={}){var e;this.selectedElementIds=A;const t=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((A=>"text"===A.type));let i,n=JSON.stringify(this.scene),a=!1;for(const A of t)if(i=A.id,A.id.length>8){if(a=!0,i=nanoid(),this.selectedElementIds[A.id]&&(delete this.selectedElementIds[A.id],this.selectedElementIds[i]=!0),n=n.replaceAll(A.id,i),this.textElements.has(A.id)){const e=this.textElements.get(A.id);this.textElements.set(i,{raw:e.raw,parsed:e.parsed,wrapAt:e.wrapAt}),this.textElements.delete(A.id)}if(!this.textElements.has(i)){const e=A.rawText&&""!==A.rawText?A.rawText:A.text,t=estimateMaxLineLen(A.text,A.originalText);this.textElements.set(i,{raw:e,parsed:null,wrapAt:t}),this.parseasync(i,e,t)}}else if(!this.textElements.has(A.id)){const e=A.rawText&&""!==A.rawText?A.rawText:A.text,t=estimateMaxLineLen(A.text,A.originalText);this.textElements.set(i,{raw:e,parsed:null,wrapAt:t}),this.parseasync(i,e,t)}return a&&(this.scene=JSON.parse(n)),a}updateElementLinksFromScene(){var A;for(const e of this.elementLinks.keys()){const t=null===(A=this.scene.elements)||void 0===A?void 0:A.filter((A=>"text"!==A.type&&A.id===e&&A.link&&A.link.startsWith("[[")));0===t.length?this.elementLinks.delete(e):this.elementLinks.set(e,t[0].link)}}async updateTextElementsFromScene(){var A,e,t;for(const i of this.textElements.keys()){const n=null===(A=this.scene.elements)||void 0===A?void 0:A.filter((A=>"text"===A.type&&A.id===i));if(0===n.length)this.textElements.delete(i);else{const A=await this.getText(i,!1),a=this.scene.prevTextMode===TextMode.parsed?n[0].rawText:null!==(e=n[0].originalText)&&void 0!==e?e:n[0].text;if(A!==(null!==(t=n[0].originalText)&&void 0!==t?t:n[0].text)){const A=estimateMaxLineLen(n[0].text,n[0].originalText);this.textElements.set(i,{raw:a,parsed:(await this.parse(a)).parsed,wrapAt:A})}}}}async parseasync(A,e,t){this.textElements.set(A,{raw:e,parsed:(await this.parse(e)).parsed,wrapAt:t})}parseLinks(A,e,t){return A.substring(e,t.value.index)+(this.showLinkBrackets?"[[":"")+REGEX_LINK.getAliasOrLink(t)+(this.showLinkBrackets?"]]":"")}async getTransclusion(A){const e=getLinkParts(A,this.file),t=this.app.metadataCache.getFirstLinkpathDest(e.path,this.file.path);return await getTransclusion(e,this.app,t,this.plugin.settings.pageTransclusionCharLimit)}async parse(A){A=this.parseCheckbox(A);let e="",t=null,i=0;const n=REGEX_LINK.getRes(A);let a,r=!1,s=!1;for(A.match(REG_LINKINDEX_HYPERLINK)&&(t=A,s=!0);!(a=n.next()).done;){if(!t){const A=REGEX_LINK.getLink(a);t=A.match(REG_LINKINDEX_HYPERLINK)?A:`[[${A}]]`}if(REGEX_LINK.isTransclusion(a)){let t=this.parseCheckbox((await this.getTransclusion(REGEX_LINK.getLink(a))).contents).replaceAll(/%%[^%]*%%/gm,"");this.plugin.settings.removeTransclusionQuoteSigns&&(t=t.replaceAll(/\n\s*>\s?/gm,"\n")),e+=A.substring(i,a.value.index)+wrapText(t,REGEX_LINK.getWrapLength(a,this.plugin.settings.wordWrappingDefault),this.plugin.settings.forceWrap)}else{const t=this.parseLinks(A,i,a);t&&(e+=t,s||r||(REGEX_LINK.getLink(a).match(REG_LINKINDEX_HYPERLINK)?s=!0:r=!0))}i=a.value.index+a.value[0].length}return e+=A.substring(i,A.length),r&&(e=this.linkPrefix+e),s&&(e=this.urlPrefix+e),{parsed:e,link:t}}parseCheckbox(A){return this.plugin.settings.parseTODO?A.replaceAll(/^- \[\s] /g,`${this.plugin.settings.todo} `).replaceAll(/\n- \[\s] /g,`\n${this.plugin.settings.todo} `).replaceAll(/^- \[[^\s]] /g,`${this.plugin.settings.done} `).replaceAll(/\n- \[[^\s]] /g,`\n${this.plugin.settings.done} `):A}quickParse(A){if((A=>{const e=REGEX_LINK.getRes(A);let t;for(;!(t=e.next()).done;)if(REGEX_LINK.isTransclusion(t))return!0;return!1})(A))return[null,null];A=this.parseCheckbox(A);let e="",t=null,i=0;const n=REGEX_LINK.getRes(A);let a,r=!1,s=!1;for(A.match(REG_LINKINDEX_HYPERLINK)&&(t=A,s=!0);!(a=n.next()).done;){if(!t){const A=REGEX_LINK.getLink(a);t=A.match(REG_LINKINDEX_HYPERLINK)?A:`[[${A}]]`}const n=this.parseLinks(A,i,a);n&&(e+=n,s||r||(REGEX_LINK.getLink(a).match(REG_LINKINDEX_HYPERLINK)?s=!0:r=!0)),i=a.value.index+a.value[0].length}return e+=A.substring(i,A.length),r&&(e=this.linkPrefix+e),s&&(e=this.urlPrefix+e),[e,t]}generateMD(A=[]){let e="# Text Elements\n";for(const A of this.textElements.keys()){const t=this.scene.elements.filter((e=>e.id===A));let i=this.textElements.get(A).raw;t&&1===t.length&&t[0].link&&t[0].rawText===t[0].originalText&&t[0].link.match(/^\[\[[^\]]*]]$/g)&&(i=`%%***>>>text element-link:${t[0].link}<<<***%%`+i),e+=`${i} ^${A}\n\n`}for(const A of this.elementLinks.keys())e+=`${this.elementLinks.get(A)} ^${A}\n\n`;if(e+=this.equations.size>0||this.files.size>0?"\n# Embedded files\n":"",this.equations.size>0)for(const A of this.equations.keys())e+=`${A}: $$${this.equations.get(A).latex}$$\n`;if(this.files.size>0)for(const A of this.files.keys()){const t=/(^[^#\|]*)/,i=this.files.get(A);e+=`${A}: [[${i.file?i.linkParts.original.replace(t,app.metadataCache.fileToLinktext(i.file,this.file.path)):i.linkParts.original}]]\n`}return e+=this.equations.size>0||this.files.size>0?"\n":"",e+getMarkdownDrawingSection(JSON.stringify({type:this.scene.type,version:this.scene.version,source:this.scene.source,elements:this.scene.elements.concat(A),appState:this.scene.appState,files:this.scene.files},null,"\t"),!this.disableCompression&&this.plugin.settings.compress)}async syncFiles(){var A;let e=!1;const t=this.scene,i=t.elements.filter((A=>"image"===A.type)).map((A=>A.fileId));if(this.files.forEach(((A,t)=>{i.contains(t)||(this.files.delete(t),e=!0)})),this.equations.forEach(((A,t)=>{i.contains(t)||(this.equations.delete(t),e=!0)})),!t.files||0===Object.keys(t.files).length)return!1;const n=new Set;i.forEach((A=>{if(n.has(A)){const i=this.getFile(A),a=this.getEquation(A);if(i&&i.file&&("md"!==i.file.extension||this.plugin.isExcalidrawFile(i.file)))return;const r=fileid();t.elements.filter((e=>e.fileId===A))[0].fileId=r,e=!0,n.add(r),i&&this.setFile(r,new EmbeddedFile(this.plugin,this.file.path,i.linkParts.original)),a&&this.setEquation(r,{latex:a.latex,isLoaded:!1})}n.add(A)}));for(const i of Object.keys(t.files))if(!this.hasFile(i)&&!this.hasEquation(i)){e=!0;let n=`Pasted Image ${window.moment().format("YYYYMMDDHHmmss_SSS")}`;const a=t.files[i].mimeType;switch(a){case"image/png":default:n+=".png";break;case"image/jpeg":n+=".jpg";break;case"image/svg+xml":n+=".svg";break;case"image/gif":n+=".gif"}const r=(await getAttachmentsFolderAndFilePath(this.app,this.file.path,n)).filepath,s=t.files[i].dataURL;await this.app.vault.createBinary(r,getBinaryFileFromDataURL(s));const o=new EmbeddedFile(this.plugin,this.file.path,r);o.setImage(s,a,{height:0,width:0},"dark"===(null===(A=t.appState)||void 0===A?void 0:A.theme),"image/svg+xml"===a),this.setFile(i,o)}return e}async syncElements(A,e){this.scene=A;let t=!1;return this.compatibilityMode||(t=await this.syncFiles(),this.scene.files={}),this.updateElementLinksFromScene(),t=t||this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.findNewElementLinksInScene(),await this.updateTextElementsFromScene(),t||this.findNewTextElementsInScene(e)}async updateScene(A){this.scene=JSON_parse(A),this.updateElementLinksFromScene();const e=this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.findNewElementLinksInScene();return await this.updateTextElementsFromScene(),!(!e&&!this.findNewTextElementsInScene()||(await this.updateSceneTextElements(),0))}getRawText(A){var e;return null===(e=this.textElements.get(A))||void 0===e?void 0:e.raw}getParsedText(A){const e=this.textElements.get(A);return e?[wrap(e.parsed,e.wrapAt),e.parsed,null]:[null,null,null]}setTextElement(A,e,t,i){const n=estimateMaxLineLen(e,t),[a,r]=this.quickParse(t);return a?(this.textElements.set(A,{raw:t,parsed:a,wrapAt:n}),[wrap(a,n),a,r]):(this.parse(t).then((e=>{const a=e.parsed;this.textElements.set(A,{raw:t,parsed:a,wrapAt:n}),a&&i(wrap(a,n),a)})),[null,null,null])}async addTextElement(A,e,t){let i=estimateMaxLineLen(e,t);this.textElements.has(A)&&(i=this.textElements.get(A).wrapAt);const n=await this.parse(t);return this.textElements.set(A,{raw:t,parsed:n.parsed,wrapAt:i}),[wrap(n.parsed,i),n.parsed,n.link]}deleteTextElement(A){this.textElements.delete(A)}getOpenMode(){const A=this.app.metadataCache.getFileCache(this.file);let e=this.plugin.settings.defaultMode;switch((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-default-mode"]&&(e=A.frontmatter["excalidraw-default-mode"]),e){case"zen":return{viewModeEnabled:!1,zenModeEnabled:!0};case"view":return{viewModeEnabled:!0,zenModeEnabled:!1};default:return{viewModeEnabled:!1,zenModeEnabled:!1}}}getLinkOpacity(){const A=this.app.metadataCache.getFileCache(this.file);let e=this.plugin.settings.linkOpacity;return(null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-linkbutton-opacity"]&&(e=A.frontmatter["excalidraw-linkbutton-opacity"]),e}getOnLoadScript(){const A=this.app.metadataCache.getFileCache(this.file);return(null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-onload-script"]?A.frontmatter["excalidraw-onload-script"]:null}setLinkPrefix(){const A=this.linkPrefix,e=this.app.metadataCache.getFileCache(this.file);return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-link-prefix"]?this.linkPrefix=e.frontmatter["excalidraw-link-prefix"]:this.linkPrefix=this.plugin.settings.linkPrefix,A!=this.linkPrefix}setUrlPrefix(){const A=this.urlPrefix,e=this.app.metadataCache.getFileCache(this.file);return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-url-prefix"]?this.urlPrefix=e.frontmatter["excalidraw-url-prefix"]:this.urlPrefix=this.plugin.settings.urlPrefix,A!=this.urlPrefix}setAutoexportPreferences(){const A=this.app.metadataCache.getFileCache(this.file);if((null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-autoexport"])switch(A.frontmatter["excalidraw-autoexport"].toLowerCase()){case"none":this.autoexportPreference=AutoexportPreference.none;break;case"both":this.autoexportPreference=AutoexportPreference.both;break;case"png":this.autoexportPreference=AutoexportPreference.png;break;case"svg":this.autoexportPreference=AutoexportPreference.svg;break;default:this.autoexportPreference=AutoexportPreference.inherit}else this.autoexportPreference=AutoexportPreference.inherit}setShowLinkBrackets(){const A=this.showLinkBrackets,e=this.app.metadataCache.getFileCache(this.file);return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-link-brackets"]?this.showLinkBrackets=0!=e.frontmatter["excalidraw-link-brackets"]:this.showLinkBrackets=this.plugin.settings.showLinkBrackets,A!=this.showLinkBrackets}setFile(A,e){if(!e)return;if(this.files.set(A,e),!e.file)return;const t=e.linkParts.original.split("#");this.plugin.filesMaster.set(A,{path:e.file.path,blockrefData:1===t.length?null:t[1],hasSVGwithBitmap:e.isSVGwithBitmap})}getFiles(){return Object.values(this.files)}getFile(A){let e=this.files.get(A);if(e)return e;const t=this.plugin.filesMaster.get(A);return t?(e=new EmbeddedFile(this.plugin,this.file.path,t.blockrefData?t.path+"#"+t.blockrefData:t.path),this.files.set(A,e),e):e}getFileEntries(){return this.files.entries()}deleteFile(A){this.files.delete(A)}hasFile(A){if(this.files.has(A))return!0;if(this.plugin.filesMaster.has(A)){const e=this.plugin.filesMaster.get(A);if(!this.app.vault.getAbstractFileByPath(e.path))return this.plugin.filesMaster.delete(A),!0;const t=new EmbeddedFile(this.plugin,this.file.path,e.blockrefData?e.path+"#"+e.blockrefData:e.path);return this.files.set(A,t),!0}return!1}setEquation(A,e){this.equations.set(A,{latex:e.latex,isLoaded:e.isLoaded}),this.plugin.equationsMaster.set(A,e.latex)}getEquation(A){let e=this.equations.get(A);if(e)return e;const t=this.plugin.equationsMaster.get(A);return t?(this.equations.set(A,{latex:t,isLoaded:!1}),{latex:t,isLoaded:!1}):e}getEquationEntries(){return this.equations.entries()}deleteEquation(A){this.equations.delete(A)}hasEquation(A){return!!this.equations.has(A)||!!this.plugin.equationsMaster.has(A)&&(this.equations.set(A,{latex:this.plugin.equationsMaster.get(A),isLoaded:!1}),!0)}}const getTransclusion=async(A,e,t,i)=>{var n,a,r,s,o,l,c,d,h,g;if(!A.path)return{contents:A.original.trim(),lineNum:0};if(!(t&&t instanceof obsidian.TFile))return{contents:A.original.trim(),lineNum:0};const u=await e.vault.read(t);if(!A.ref)return i?{contents:u.substring(0,i).trim(),lineNum:0}:{contents:u.trim(),lineNum:0};const p=(await e.metadataCache.blockCache.getForFile({isCancelled:()=>!1},t)).blocks.filter((A=>"comment"!=A.node.type));if(!p)return{contents:A.original.trim(),lineNum:0};if(A.isBlockRef){let e=null===(n=p.filter((e=>e.node.id==A.ref))[0])||void 0===n?void 0:n.node;if(!e)return{contents:A.original.trim(),lineNum:0};["blockquote","listItem"].includes(e.type)&&(e=e.children[0]);const t=e.position.start.offset,i=e.position.start.line,r=(null===(a=e.children[e.children.length-1])||void 0===a?void 0:a.position.start.offset)-1;return{contents:u.substring(t,r).trim(),lineNum:i}}const w=p.filter((A=>0===A.display.search(/^#+\s/)));let m=null,f=0,B=null,E=1;for(let e=0;eE;)A++;return A===w.length&&w[A-1].node.depth>E?{leadingHashes:"#".repeat(E)+" ",contents:u.substring(m).trim(),lineNum:f}:(B=w[A].node.position.start.offset-1,{leadingHashes:"#".repeat(E)+" ",contents:u.substring(m,B).trim(),lineNum:f})}const t=w[e].node.children[0],i=null===(s=null===(r=w[e].node.data)||void 0===r?void 0:r.hProperties)||void 0===s?void 0:s.dataHeading,n=null==t?void 0:t.children;!m&&((null===(o=null==t?void 0:t.value)||void 0===o?void 0:o.replaceAll(REG_BLOCK_REF_CLEAN,""))===A.ref||(null===(l=null==t?void 0:t.title)||void 0===l?void 0:l.replaceAll(REG_BLOCK_REF_CLEAN,""))===A.ref||(null==i?void 0:i.replaceAll(REG_BLOCK_REF_CLEAN,""))===A.ref||n&&(null===(d=null===(c=n[0])||void 0===c?void 0:c.value)||void 0===d?void 0:d.replaceAll(REG_BLOCK_REF_CLEAN,""))===A.ref)&&(m=null===(h=w[e].node.children[0])||void 0===h?void 0:h.position.start.offset,E=w[e].node.depth,f=null===(g=w[e].node.children[0])||void 0===g?void 0:g.position.start.line)}return m?{leadingHashes:"#".repeat(E)+" ",contents:u.substring(m).trim(),lineNum:f}:{contents:A.original.trim(),lineNum:0}};class Prompt extends obsidian.Modal{constructor(A,e,t,i,n){super(A),this.prompt_text=e,this.default_value=t,this.placeholder=i,this.prompt_desc=n}onOpen(){this.titleEl.setText(this.prompt_text),this.createForm()}onClose(){this.contentEl.empty()}createForm(){var A;let e=this.contentEl.createDiv();e.addClass("excalidraw-prompt-div"),this.prompt_desc&&(e=e.createDiv(),e.style.width="100%",e.createEl("p").innerHTML=this.prompt_desc);const t=e.createEl("form");t.addClass("excalidraw-prompt-form"),t.type="submit",t.onsubmit=A=>{A.preventDefault(),this.resolve(this.promptEl.value),this.close()},this.promptEl=t.createEl("input"),this.promptEl.type="text",this.promptEl.placeholder=this.placeholder,this.promptEl.value=null!==(A=this.default_value)&&void 0!==A?A:"",this.promptEl.addClass("excalidraw-prompt-input"),this.promptEl.select()}async openAndGetValue(A){this.resolve=A,this.open()}}class GenericInputPrompt extends obsidian.Modal{constructor(A,e,t,i,n){super(A),this.header=e,this.didSubmit=!1,this.submitClickCallback=()=>this.submit(),this.cancelClickCallback=()=>this.cancel(),this.submitEnterCallback=A=>{"Enter"===A.key&&(A.preventDefault(),this.submit())},this.placeholder=t,this.input=i,this.buttons=n,this.waitForClose=new Promise(((A,e)=>{this.resolvePromise=A,this.rejectPromise=e})),this.display(),this.open()}static Prompt(A,e,t,i,n){return new GenericInputPrompt(A,e,t,i,n).waitForClose}display(){this.contentEl.empty(),this.titleEl.textContent=this.header;const A=this.contentEl.createDiv();this.inputComponent=this.createInputField(A,this.placeholder,this.input),this.createButtonBar(A)}createInputField(A,e,t){const i=new obsidian.TextComponent(A);return i.inputEl.style.width="100%",i.setPlaceholder(null!=e?e:"").setValue(null!=t?t:"").onChange((A=>this.input=A)).inputEl.addEventListener("keydown",this.submitEnterCallback),i}createButton(A,e,t){const i=new obsidian.ButtonComponent(A);return i.setButtonText(e).onClick(t),i}createButtonBar(A){const e=A.createDiv();if(this.buttons&&this.buttons.length>0){let A=null;for(const t of this.buttons){const i=new obsidian.ButtonComponent(e);i.setButtonText(t.caption).onClick((A=>{const e=t.action(this.input);e&&(this.input=e),this.submit()})),A=null!=A?A:i}A&&(A.setCta().buttonEl.style.marginRight="0")}else this.createButton(e,"Ok",this.submitClickCallback).setCta().buttonEl.style.marginRight="0";this.createButton(e,"Cancel",this.cancelClickCallback),e.style.display="flex",e.style.flexDirection="row-reverse",e.style.justifyContent="flex-start",e.style.marginTop="1rem"}submit(){this.didSubmit=!0,this.close()}cancel(){this.close()}resolveInput(){this.didSubmit?this.resolvePromise(this.input):this.rejectPromise("No input given.")}removeInputListener(){var A,e;null===(e=null===(A=this.inputComponent)||void 0===A?void 0:A.inputEl)||void 0===e||e.removeEventListener("keydown",this.submitEnterCallback)}onOpen(){super.onOpen(),this.inputComponent.inputEl.focus(),this.inputComponent.inputEl.select()}onClose(){super.onClose(),this.resolveInput(),this.removeInputListener()}}class GenericSuggester extends obsidian.FuzzySuggestModal{constructor(A,e,t,i,n){var a;super(A),this.displayItems=e,this.items=t,this.hint=i,this.instructions=n,this.limit=20,this.setPlaceholder(null!==(a=this.hint)&&void 0!==a?a:""),n&&this.setInstructions(this.instructions),this.promise=new Promise(((A,e)=>{this.resolvePromise=A,this.rejectPromise=e})),this.open()}static Suggest(A,e,t,i,n){return new GenericSuggester(A,e,t,i,n).promise}getItemText(A){return this.displayItems[this.items.indexOf(A)]}getItems(){return this.items}selectSuggestion(A,e){this.resolved=!0,super.selectSuggestion(A,e)}onChooseItem(A){this.resolved=!0,this.resolvePromise(A)}onClose(){super.onClose(),this.resolved||this.rejectPromise(this.inputEl.value)}}class NewFileActions extends obsidian.Modal{constructor(A,e,t,i,n){super(A.app),this.plugin=A,this.path=e,this.newPane=t,this.newWindow=i,this.view=n}onOpen(){this.createForm()}async onClose(){}openFile(A){A&&(this.newWindow?app.workspace.openPopoutLeaf():this.newPane?getNewOrAdjacentLeaf(this.plugin,this.view.leaf):this.view.leaf).openFile(A,{active:!0})}createForm(){this.titleEl.setText("New File"),this.contentEl.createDiv({cls:"excalidraw-prompt-center",text:"File does not exist. Do you want to create it?"}),this.contentEl.createDiv({cls:"excalidraw-prompt-center filepath",text:this.path}),this.contentEl.createDiv({cls:"excalidraw-prompt-center"},(A=>{A.style.textAlign="right";const e=()=>this.path&&""!==this.path?!!this.view.file||(new obsidian.Notice("Unknown error. It seems as if your drawing was closed or the drawing file is missing"),!1):(new obsidian.Notice("Error: Filename for new file may not be empty"),!1),t=async A=>{if(!this.path.includes("/")){const A=new RegExp(`${this.view.file.name}$`,"g");this.path=this.view.file.path.replace(A,this.path)}return this.path.match(/\.md$/)||(this.path=`${this.path}.md`),checkAndCreateFolder(splitFolderAndFilename(this.path).folderpath),await this.app.vault.create(this.path,A)};A.createEl("button",{text:"Create Markdown"}).onclick=async()=>{if(!e)return;const A=await t("");this.openFile(A),this.close()},A.createEl("button",{text:"Create Excalidraw"}).onclick=async()=>{if(!e)return;const A=await t(await this.plugin.getBlankDrawing());await sleep$1(200),this.openFile(A),this.close()},A.createEl("button",{text:"Never Mind"}).onclick=()=>{this.close()}}))}}class ScriptEngine{constructor(A){this.plugin=A,this.scriptIconMap={},this.loadScripts(),this.registerEventHandlers()}registerEventHandlers(){const A=A=>{if(!A.endsWith(".svg"))return;const e=app.vault.getAbstractFileByPath(getIMGFilename(A,"md"));e&&e instanceof obsidian.TFile&&(this.unloadScript(this.getScriptName(e),e.path),this.loadScript(e))};this.plugin.registerEvent(app.vault.on("delete",(async e=>{e instanceof obsidian.TFile&&e.path.startsWith(this.scriptPath)&&(this.unloadScript(this.getScriptName(e),e.path),A(e.path))}))),this.plugin.registerEvent(app.vault.on("create",(async e=>{e instanceof obsidian.TFile&&e.path.startsWith(this.scriptPath)&&(this.loadScript(e),A(e.path))}))),this.plugin.registerEvent(app.vault.on("rename",(async(e,t)=>{if(!(e instanceof obsidian.TFile))return;const i=t.startsWith(this.scriptPath),n=e.path.startsWith(this.scriptPath);i&&(this.unloadScript(this.getScriptName(t),t),A(t)),n&&(this.loadScript(e),A(e.path))})))}updateScriptPath(){this.scriptPath!==this.plugin.settings.scriptFolderPath&&(this.scriptPath&&this.unloadScripts(),this.loadScripts())}getListofScripts(){if(this.scriptPath=this.plugin.settings.scriptFolderPath,app.vault.getAbstractFileByPath(this.scriptPath))return app.vault.getFiles().filter((A=>A.path.startsWith(this.scriptPath)&&"md"===A.extension));this.scriptPath=null}loadScripts(){var A;null===(A=this.getListofScripts())||void 0===A||A.forEach((A=>this.loadScript(A)))}getScriptName(A){let e="",t="";A instanceof obsidian.TFile?(e=A.basename,t=A.path):(e=splitFolderAndFilename(A).basename,t=A);const i=t.split(`${this.scriptPath}/`)[1],n=i.lastIndexOf("/");return n>-1?i.substring(0,n+1)+e:e}async addScriptIconToMap(A,e){const t=getIMGFilename(A,"svg"),i=app.vault.getAbstractFileByPath(t),n=i&&i instanceof obsidian.TFile?await app.vault.read(i):null;this.scriptIconMap=Object.assign({},this.scriptIconMap),this.scriptIconMap[A]={name:e,svgString:n},this.updateToolPannels()}loadScript(A){if("md"!==A.extension)return;const e=this.getScriptName(A);this.addScriptIconToMap(A.path,e),this.plugin.addCommand({id:e,name:`(Script) ${e}`,checkCallback:t=>{if(t)return Boolean(app.workspace.getActiveViewOfType(ExcalidrawView));const i=app.workspace.getActiveViewOfType(ExcalidrawView);return!!i&&((async()=>{const t=await app.vault.read(A);t&&this.executeScript(i,t,e)})(),!0)}})}unloadScripts(){const A=app.vault.getFiles().filter((A=>A.path.startsWith(this.scriptPath)));A.forEach((A=>{this.unloadScript(this.getScriptName(A),A.path)}))}unloadScript(A,e){if(!e.endsWith(".md"))return;delete this.scriptIconMap[e],this.scriptIconMap=Object.assign({},this.scriptIconMap),this.updateToolPannels();const t=`${PLUGIN_ID}:${A}`;app.commands.commands[t]&&delete app.commands.commands[t]}async executeScript(A,e,t){if(!A||!e||!t)return;this.plugin.ea.reset(),this.plugin.ea.setView(A),this.plugin.ea.activeScript=t;const i=Object.getPrototypeOf((async()=>{})).constructor;let n=null;return n=await new i("ea","utils",e)(this.plugin.ea,{inputPrompt:(A,e,t,i)=>ScriptEngine.inputPrompt(app,A,e,t,i),suggester:(A,e,t,i)=>ScriptEngine.suggester(app,A,e,t,i)}),this.plugin.ea.activeScript=null,n}updateToolPannels(){app.workspace.getLeavesOfType("excalidraw").forEach((A=>{var e,t;null===(t=null===(e=A.view.toolsPanelRef)||void 0===e?void 0:e.current)||void 0===t||t.updateScriptIconMap(this.scriptIconMap)}))}static async inputPrompt(A,e,t,i,n){try{return await GenericInputPrompt.Prompt(A,e,t,i,n)}catch(A){return}}static async suggester(A,e,t,i,n){try{return await GenericSuggester.Suggest(A,e,t,i,n)}catch(A){return}}}var t$c={d:(A,e)=>{for(var t in e)t$c.o(e,t)&&!t$c.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},r$d={};t$c.d(r$d,{QA:()=>w$1,ZP:()=>j$1,qt:()=>x$1,MX:()=>$});const e$d={red:"hsl(0, 100%, 50%)",orange:"hsl(30, 100%, 50%)",yellow:"hsl(60, 100%, 50%)","lime green":"hsl(90, 100%, 50%)",green:"hsl(120, 100%, 50%)","blue green":"hsl(150, 100%, 50%)",cyan:"hsl(180, 100%, 50%)","sky blue":"hsl(210, 100%, 50%)",blue:"hsl(240, 100%, 50%)",purple:"hsl(270, 100%, 50%)",magenta:"hsl(300, 100%, 50%)",pink:"hsl(330, 100%, 50%)"};function s$a(A,e,t){return Math.max(A,Math.min(e,t))}function n$c(A,e){return+A.toFixed(e>=0?e:0)}function a$c(A){const e=A%360;return e<0?e+360:e}function i$a(A){return void 0!==A?s$a(0,A,1):1}function o$b(A){return Math.floor(Math.random()*A)}function h$4(A){var e;const{Cmin:t,Cmax:i,H:n,delta:a}=function(A){const[e,t,i]=Object.values(A).map((A=>A/255)),n=Math.max(e,t,i),a=Math.min(e,t,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===e?(t-i)/r%6:n===t?(i-e)/r+2:(e-t)/r+4,delta:r}}(A),r=(i+t)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:a$c(60*n),s:100*s,l:100*r,a:null!==(e=A.a)&&void 0!==e?e:1}}function u$8(A){const{h:e,s:t,l:i,a:n}=A,a=i/100,r=t/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(e/60%2-1)),l=a-s/2,c=e<60||300<=e&&e<360?s:120<=e&&e<240?0:o,d=240<=e&&e<360?0:60<=e&&e<180?s:o,h=e<120?0:180<=e&&e<300?s:o,[g,u,p]=[c,d,h].map((A=>255*(A+l)));return{r:g,g:u,b:p,a:null!=n?n:1}}function l$5(A){const[e,t,i,n]=Object.values(A).map((A=>parseInt(A,16)));return{r:e,g:t,b:i,a:n?n/255:1}}const c$a=/^#?([\da-f])([\da-f])([\da-f])([\da-f])?$|^#?([\da-f]{2})([\da-f]{2})([\da-f]{2})?([\da-f]{2})?$/gi,f$3=/hsla?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function d$2({h:A,s:e,l:t,a:i}){return[u$8({h:a$c(A),s:s$a(0,e,100),l:s$a(0,t,100),a:i$a(i)}),"hsl"]}const g$2=/rgba?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function b$5({r:A,g:e,b:t,a:i}){return[{r:s$a(0,A,255),g:s$a(0,e,255),b:s$a(0,t,255),a:i$a(i)},"rgb"]}var p$3,v$2,m$1=function(A,e,t,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?A!==e||!n:!e.has(A))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(A,t):n?n.value=t:e.set(A,t),t},y$1=function(A,e,t,i){if("a"===t&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?A!==e||!i:!e.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===t?i:"a"===t?i.call(A):i?i.value:e.get(A)};class w$1{constructor(A){var e,t;p$3.set(this,{r:0,g:0,b:0,a:1}),v$2.set(this,"rgb");const i=w$1.Parsers.map((e=>e(A))).find((A=>"invalid"!==A[1]));i?(e=this,t=this,[{set value(A){m$1(e,p$3,A,"f")}}.value,{set value(A){m$1(t,v$2,A,"f")}}.value]=i):m$1(this,v$2,"invalid","f")}get red(){return y$1(this,p$3,"f").r}get blue(){return y$1(this,p$3,"f").b}get green(){return y$1(this,p$3,"f").g}get alpha(){return y$1(this,p$3,"f").a}get hue(){return h$4(y$1(this,p$3,"f")).h}get saturation(){return h$4(y$1(this,p$3,"f")).s}get lightness(){return h$4(y$1(this,p$3,"f")).l}get format(){return y$1(this,v$2,"f")}isValid(){return"invalid"!==y$1(this,v$2,"f")}rgba(){return y$1(this,p$3,"f")}hsla(){return h$4(y$1(this,p$3,"f"))}hexa({round:A=!1}={}){return function(A,e=!1){let{r:t,g:i,b:n,a:a}=A;a&&(a*=255),e&&([t,i,n,a]=[t,i,n,a].map((A=>A&&Math.round(A))));const[r,s,o,l]=[t,i,n,null!=a?a:255].map((A=>A.toString(16).padStart(2,"0").toUpperCase()));return{r:r,g:s,b:o,a:l}}(y$1(this,p$3,"f"),A)}stringRGB({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(y$1(this,p$3,"f")).map(((A,t)=>n$c(A,e[t])));return A?`rgba(${t}, ${i}, ${n}, ${a})`:`rgb(${t}, ${i}, ${n})`}stringHEX({alpha:A=!0}={}){const[e,t,i,n]=Object.values(this.hexa({round:!0}));return`#${e}${t}${i}${A?n:""}`}stringHSL({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.hsla()).map(((A,t)=>n$c(A,e[t])));return A?`hsla(${t}, ${i}%, ${n}%, ${a})`:`hsl(${t}, ${i}%, ${n}%)`}hueTo(A){var e;const{h:t,s:i,l:n,a:a}=this.hsla(),r="number"==typeof A?a$c(A):Number(null!==(e=e$d[A].match(/\d{1,3}/))&&void 0!==e?e:t);return m$1(this,p$3,u$8({h:r,s:i,l:n,a:a}),"f"),this}hueBy(A){const{h:e,s:t,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:a$c(e+A),s:t,l:i,a:n}),"f"),this}saturationTo(A){const{h:e,l:t,a:i}=this.hsla();return m$1(this,p$3,u$8({h:e,s:s$a(0,A,100),l:t,a:i}),"f"),this}saturateBy(A){const{h:e,s:t,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:e,s:s$a(0,t+A,100),l:i,a:n}),"f"),this}desaturateBy(A){return this.saturateBy(-1*A)}lightnessTo(A){const{h:e,s:t,a:i}=this.hsla();return m$1(this,p$3,u$8({h:e,s:t,l:s$a(0,A,100),a:i}),"f"),this}lighterBy(A){const{h:e,s:t,l:i,a:n}=this.hsla();return m$1(this,p$3,u$8({h:e,s:t,l:s$a(0,i+A,100),a:n}),"f"),this}darkerBy(A){return this.lighterBy(-1*A)}alphaTo(A){return m$1(this,p$3,Object.assign(Object.assign({},y$1(this,p$3,"f")),{a:s$a(0,A,1)}),"f"),this}alphaBy(A){return m$1(this,p$3,Object.assign(Object.assign({},y$1(this,p$3,"f")),{a:s$a(0,y$1(this,p$3,"f").a+A,1)}),"f"),this}invert({alpha:A=!1}={}){const{r:e,g:t,b:i,a:n}=y$1(this,p$3,"f");return m$1(this,p$3,{r:255-e,g:255-t,b:255-i,a:A?1-n:n},"f"),this}grayscale(){return this.desaturateBy(100)}rotate(A){return this.hueBy(A)}}function $(){return new w$1({r:o$b(255),g:o$b(255),b:o$b(255),a:Math.random()})}function x$1(A){(A=A.filter(((A,e,t)=>t.indexOf(A)===e))).forEach((A=>A(w$1)))}p$3=new WeakMap,v$2=new WeakMap,w$1.Parsers=[function(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{r:e,g:t,b:i}=A;return void 0!==e&&void 0!==t&&void 0!==i&&"number"==typeof e}(A))return b$5(A);if("string"==typeof A){g$2.lastIndex=0;const e=g$2.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(e<3?2.55:.01):+A));return b$5({r:A,g:t,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]},function(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{r:e,g:t,b:i}=A;return void 0!==e&&void 0!==t&&void 0!==i&&"string"==typeof e}(A))return[l$5(A),"hex"];if("string"==typeof A){c$a.lastIndex=0;const e=c$a.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map((A=>1===A.length?A.repeat(2):A));return[l$5({r:A,g:t,b:i,a:null!=n?n:"FF"}),"hex"]}}return[{r:0,g:0,b:0,a:1},"invalid"]},function(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{h:e,s:t,l:i}=A;return void 0!==e&&void 0!==t&&void 0!==i}(A))return d$2(A);if("string"==typeof A){f$3.lastIndex=0;const e=f$3.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(0===e?3.59:e<3?1:.01):+A));return d$2({h:A,s:t,l:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}];const j$1=A=>new w$1(A);r$d.QA;var O$1=r$d.ZP,B=r$d.qt;r$d.MX;var e$c={d:(A,e)=>{for(var t in e)e$c.o(e,t)&&!e$c.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},a$b={};function t$b(A){const e=A%360;return e<0?e+360:e}e$c.d(a$b,{Z:()=>n$b});const n$b=A=>{A.prototype.harmony=function({type:e="analogous",effect:t="tones",amount:i=5}={}){const{h:n,s:a,l:r,a:s}=this.hsla();switch("monochromatic"===e&&(o=i,i=Math.max(2,Math.min(o,10))),e){case"analogous":return[-30,0,30].map((e=>new A({h:t$b(n+e),s:a,l:r,a:s})));case"complementary":return[0,180].map((e=>new A({h:t$b(n+e),s:a,l:r,a:s})));case"split-complementary":return[0,150,210].map((e=>new A({h:t$b(n+e),s:a,l:r,a:s})));case"double-split-complementary":return[-30,0,30,150,210].map((e=>new A({h:t$b(n+e),s:a,l:r,a:s})));case"triad":return[0,120,240].map((e=>new A({h:t$b(n+e),s:a,l:r,a:s})));case"rectangle":return[0,60,180,240].map((e=>new A({h:t$b(n+e),s:a,l:r,a:s})));case"square":return[0,90,180,270].map((e=>new A({h:t$b(n+e),s:a,l:r,a:s})));case"monochromatic":{const e="tones"===t?a:r;let o=("tints"===t?100-e:e)/i;o="tints"===t?o:-1*o;const l=[e];for(let A=0;Anew A({h:n,s:e,l:r,a:s}))):l.map((e=>new A({h:n,s:a,l:e,a:s})))}}var o}};var r$c=a$b.Z,a$a={d:(A,e)=>{for(var t in e)a$a.o(e,t)&&!a$a.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},t$a={};a$a.d(t$a,{Z:()=>k});const e$b=6/29,n$a=Math.pow(e$b,3),c$9=Math.pow(29/3,3),r$b={x:.96422,y:1,z:.82521};function u$7(A,e){return[A[0][0]*e[0]+A[0][1]*e[1]+A[0][2]*e[2],A[1][0]*e[0]+A[1][1]*e[1]+A[1][2]*e[2],A[2][0]*e[0]+A[2][1]*e[1]+A[2][2]*e[2]]}function s$9(A,e,t){return Math.max(A,Math.min(e,t))}function o$a(A){const e=A%360;return e<0?e+360:e}function l$4(A){const[e,t,i]=Object.values(A).map((A=>A/255)),n=Math.max(e,t,i),a=Math.min(e,t,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===e?(t-i)/r%6:n===t?(i-e)/r+2:(e-t)/r+4,delta:r}}function b$4(A){var e;const{Cmin:t,Cmax:i,H:n,delta:a}=l$4(A),r=(i+t)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:o$a(60*n),s:100*s,l:100*r,a:null!==(e=A.a)&&void 0!==e?e:1}}function h$3(A){var e;const{Cmax:t,H:i,delta:n}=l$4(A),a=0===n?0:n/t;return{h:o$a(60*i),s:100*a,v:100*t,a:null!==(e=A.a)&&void 0!==e?e:1}}function v$1(A){const{h:e,a:t}=b$4(A),{r:i,g:n,b:a}=A;return{h:e,w:Math.min(i,n,a)/2.55,b:100*(1-Math.max(i,n,a)/255),a:t}}function i$9(A){const[e,t,i]=u$7([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(A).map((A=>{return 100*(e=A,(e/=255)<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4));var e})));return function(A){const[e,t,i]=u$7([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}({x:e,y:t,z:i,a:A.a})}function m(A){const e=Object.values(i$9(A)).map(((A,e)=>A/(100*Object.values(r$b)[e]))).map((A=>A>n$a?Math.cbrt(A):(c$9*A+16)/116));return{l:116*e[1]-16,a:500*(e[0]-e[1]),b:200*(e[1]-e[2]),alpha:A.a}}function p$2(A){const{l:e,a:t,b:i}=m(A),n=180*Math.atan2(i,t)/Math.PI;return{l:e,c:Math.sqrt(Math.pow(t,2)+Math.pow(i,2)),h:o$a(n),a:A.a}}function f$2(A){const[e,t,i]=Object.values(i$9(A)).map((A=>A/100)),n=t/r$b.y,a=e&&t&&i?e+15*t+3*i:19,r=4*e/a,s=9*t/a,o=r$b.x+15*r$b.y+3*r$b.z,l=4*r$b.x/o,c=9*r$b.y/o;let d=n>n$a?116*Math.cbrt(n)-16:c$9*n,h=13*d*(r-l),g=13*d*(s-c);return d===Number(-0)&&(d=0),h===Number(-0)&&(h=0),g===Number(-0)&&(g=0),{l:d,u:h,v:g,a:A.a}}function M(A){const{x:e,y:t,z:i}=i$9(A),[n,a,r]=u$7([[2/3,0,0],[0,1,0],[-.5,1.5,.5]],[e,t,i]);return{u:n,v:a,w:r,a:A.a}}function w(A){let{r:e,g:t,b:i}=A;const n=Math.min(e,t,i);[e,t,i]=[e,t,i].map((A=>A-n));const a=Math.max(e,t,i);let r=Math.min(e,t);e-=r,t-=r,i&&t&&(i/=2,t/=2),r+=t,i+=t;const s=Math.max(e,r,i);if(s){const A=a/s;[e,r,i]=[e,r,i].map((e=>e*A))}return[e,r,i]=[e,r,i].map((A=>A+n)),{r:e,y:r,b:i,a:A.a}}function O(A){const{r:e,g:t,b:i,a:n}=A,a=1-Math.max(e,t,i)/255,[r,s,o]=1===a?[0,0,0]:[e,t,i].map((A=>100*(1-A/255-a)/(1-a)));return{c:r,m:s,y:o,k:100*a,a:n}}function j(A){const{h:e,s:t,v:i,a:n}=A,a=i/100,r=a*(t/100),s=r*(1-Math.abs(e/60%2-1)),o=a-r,l=e<60||300<=e&&e<360?r:120<=e&&e<240?0:s,c=240<=e&&e<360?0:60<=e&&e<180?r:s,d=e<120?0:180<=e&&e<300?r:s,[h,g,u]=[l,c,d].map((A=>255*(A+o)));return{r:h,g:g,b:u,a:null!=n?n:1}}function x(A){const[e,t,i]=Object.values(function(A){const[e,t,i]=u$7([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}(A)).map((A=>A/100)),[n,a,r]=u$7([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[e,t,i]).map((A=>{return s$9(0,255*((e=A)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e),255);var e}));return{r:n,g:a,b:r,a:A.a}}function y(A){const{l:e,a:t,b:i}=A,n=(e+16)/116,a=n+t/500,r=n-i/200,s=Object.values(r$b),[o,l,c]=[a,n,r].map(((A,e)=>(A>e$b?Math.pow(A,3):3*Math.pow(e$b,2)*(A-4/29))*s[e]*100));return x({x:o,y:l,z:c,a:A.alpha})}const k=A=>{A.prototype.mix=function({color:e="#fff",ratio:t=.5,colorspace:i="luv"}={}){const n=this.rgba(),a=(e instanceof A?e:new A(e)).rgba();let r,s;switch(t=s$9(0,t,1),i){case"hsl":r=Object.values(b$4(n)),s=Object.values(b$4(a));break;case"hsv":r=Object.values(h$3(n)),s=Object.values(h$3(a));break;case"hwb":r=Object.values(v$1(n)),s=Object.values(v$1(a));break;case"lab":r=Object.values(m(n)),s=Object.values(m(a));break;case"lch":r=Object.values(p$2(n)),s=Object.values(p$2(a));break;case"luv":r=Object.values(f$2(n)),s=Object.values(f$2(a));break;case"ryb":r=Object.values(w(n)),s=Object.values(w(a));break;case"uvw":r=Object.values(M(n)),s=Object.values(M(a));break;case"xyz":r=Object.values(i$9(n)),s=Object.values(i$9(a));break;case"cmyk":r=Object.values(O(n)),s=Object.values(O(a));break;default:r=Object.values(n),s=Object.values(a)}const[o,l,c,d,h]=r.map(((A,e)=>r[e]*(1-t)+s[e]*t));switch(i){case"hsl":return new A(function(A){const{h:e,s:t,l:i,a:n}=A,a=i/100,r=t/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(e/60%2-1)),l=a-s/2,c=e<60||300<=e&&e<360?s:120<=e&&e<240?0:o,d=240<=e&&e<360?0:60<=e&&e<180?s:o,h=e<120?0:180<=e&&e<300?s:o,[g,u,p]=[c,d,h].map((A=>255*(A+l)));return{r:g,g:u,b:p,a:null!=n?n:1}}({h:o,s:l,l:c,a:d}));case"hsv":return new A(j({h:o,s:l,v:c,a:d}));case"hwb":return new A(function(A){const{h:e,b:t,w:i,a:n}=A;return j({h:e,s:100===t?0:100-i/(100-t)*100,v:100-t,a:n})}({h:o,w:l,b:c,a:d}));case"lab":return new A(y({l:o,a:l,b:c,alpha:d}));case"lch":return new A(function(A){const{l:e,c:t,h:i}=A;return y({l:e,a:t*Math.cos(i*Math.PI/180),b:t*Math.sin(i*Math.PI/180),alpha:A.a})}({l:o,c:l,h:c,a:d}));case"luv":return new A(function(A){const{l:e,u:t,v:i}=A,n=e>c$9*n$a?Math.pow((e+16)/116,3):e/c$9,a=r$b.x+15*r$b.y+3*r$b.z,r=(52*e/(t&&e?t+13*e*(4*r$b.x/a):1)-1)/3,s=-5*n,o=n*(39*e/(i&&e?i+13*e*(9*r$b.y/a):1)-5),l=r===-1/3?o-s:(o-s)/(r- -1/3);return x({x:100*l,y:100*n,z:100*(r*l+s),a:A.a})}({l:o,u:l,v:c,a:d}));case"ryb":return new A(function(A){let{r:e,y:t,b:i}=A;const n=Math.min(e,t,i);[e,t,i]=[e,t,i].map((A=>A-n));const a=Math.max(e,t,i);let r=Math.min(t,i);t-=r,i-=r,i&&r&&(i*=2,r*=2),e+=t,r+=t;const s=Math.max(e,r,i);if(s){const A=a/s;[e,r,i]=[e,r,i].map((e=>e*A))}return[e,r,i]=[e,r,i].map((A=>A+n)),{r:e,g:r,b:i,a:A.a}}({r:o,y:l,b:c,a:d}));case"uvw":return new A(function(A){const{u:e,v:t,w:i}=A,[n,a,r]=u$7([[1.5,0,0],[0,1,0],[1.5,-3,2]],[e,t,i]);return x({x:n,y:a,z:r,a:A.a})}({u:o,v:l,w:c,a:d}));case"xyz":return new A(x({x:o,y:l,z:c,a:d}));case"cmyk":return new A(function(A){const{c:e,m:t,y:i,k:n,a:a}=A,[r,s,o]=[e,t,i].map((A=>255*(1-A/100)*(1-n/100)));return{r:r,g:s,b:o,a:a}}({c:o,m:l,y:c,k:d,a:h}));default:return new A({r:o,g:l,b:c,a:d})}}};var z=t$a.Z,r$a={d:(A,e)=>{for(var t in e)r$a.o(e,t)&&!r$a.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},b$3={};r$a.d(b$3,{Z:()=>n$9});const g$1=["rgb(0,0,0)","rgb(0,0,51)","rgb(0,0,102)","rgb(0,0,153)","rgb(0,0,204)","rgb(0,0,255)","rgb(0,51,0)","rgb(0,51,51)","rgb(0,51,102)","rgb(0,51,153)","rgb(0,51,204)","rgb(0,51,255)","rgb(0,102,0)","rgb(0,102,51)","rgb(0,102,102)","rgb(0,102,153)","rgb(0,102,204)","rgb(0,102,255)","rgb(0,153,0)","rgb(0,153,51)","rgb(0,153,102)","rgb(0,153,153)","rgb(0,153,204)","rgb(0,153,255)","rgb(0,204,0)","rgb(0,204,51)","rgb(0,204,102)","rgb(0,204,153)","rgb(0,204,204)","rgb(0,204,255)","rgb(0,255,0)","rgb(0,255,51)","rgb(0,255,102)","rgb(0,255,153)","rgb(0,255,204)","rgb(0,255,255)","rgb(51,0,0)","rgb(51,0,51)","rgb(51,0,102)","rgb(51,0,153)","rgb(51,0,204)","rgb(51,0,255)","rgb(51,51,0)","rgb(51,51,51)","rgb(51,51,102)","rgb(51,51,153)","rgb(51,51,204)","rgb(51,51,255)","rgb(51,102,0)","rgb(51,102,51)","rgb(51,102,102)","rgb(51,102,153)","rgb(51,102,204)","rgb(51,102,255)","rgb(51,153,0)","rgb(51,153,51)","rgb(51,153,102)","rgb(51,153,153)","rgb(51,153,204)","rgb(51,153,255)","rgb(51,204,0)","rgb(51,204,51)","rgb(51,204,102)","rgb(51,204,153)","rgb(51,204,204)","rgb(51,204,255)","rgb(51,255,0)","rgb(51,255,51)","rgb(51,255,102)","rgb(51,255,153)","rgb(51,255,204)","rgb(51,255,255)","rgb(102,0,0)","rgb(102,0,51)","rgb(102,0,102)","rgb(102,0,153)","rgb(102,0,204)","rgb(102,0,255)","rgb(102,51,0)","rgb(102,51,51)","rgb(102,51,102)","rgb(102,51,153)","rgb(102,51,204)","rgb(102,51,255)","rgb(102,102,0)","rgb(102,102,51)","rgb(102,102,102)","rgb(102,102,153)","rgb(102,102,204)","rgb(102,102,255)","rgb(102,153,0)","rgb(102,153,51)","rgb(102,153,102)","rgb(102,153,153)","rgb(102,153,204)","rgb(102,153,255)","rgb(102,204,0)","rgb(102,204,51)","rgb(102,204,102)","rgb(102,204,153)","rgb(102,204,204)","rgb(102,204,255)","rgb(102,255,0)","rgb(102,255,51)","rgb(102,255,102)","rgb(102,255,153)","rgb(102,255,204)","rgb(102,255,255)","rgb(153,0,0)","rgb(153,0,51)","rgb(153,0,102)","rgb(153,0,153)","rgb(153,0,204)","rgb(153,0,255)","rgb(153,51,0)","rgb(153,51,51)","rgb(153,51,102)","rgb(153,51,153)","rgb(153,51,204)","rgb(153,51,255)","rgb(153,102,0)","rgb(153,102,51)","rgb(153,102,102)","rgb(153,102,153)","rgb(153,102,204)","rgb(153,102,255)","rgb(153,153,0)","rgb(153,153,51)","rgb(153,153,102)","rgb(153,153,153)","rgb(153,153,204)","rgb(153,153,255)","rgb(153,204,0)","rgb(153,204,51)","rgb(153,204,102)","rgb(153,204,153)","rgb(153,204,204)","rgb(153,204,255)","rgb(153,255,0)","rgb(153,255,51)","rgb(153,255,102)","rgb(153,255,153)","rgb(153,255,204)","rgb(153,255,255)","rgb(204,0,0)","rgb(204,0,51)","rgb(204,0,102)","rgb(204,0,153)","rgb(204,0,204)","rgb(204,0,255)","rgb(204,51,0)","rgb(204,51,51)","rgb(204,51,102)","rgb(204,51,153)","rgb(204,51,204)","rgb(204,51,255)","rgb(204,102,0)","rgb(204,102,51)","rgb(204,102,102)","rgb(204,102,153)","rgb(204,102,204)","rgb(204,102,255)","rgb(204,153,0)","rgb(204,153,51)","rgb(204,153,102)","rgb(204,153,153)","rgb(204,153,204)","rgb(204,153,255)","rgb(204,204,0)","rgb(204,204,51)","rgb(204,204,102)","rgb(204,204,153)","rgb(204,204,204)","rgb(204,204,255)","rgb(204,255,0)","rgb(204,255,51)","rgb(204,255,102)","rgb(204,255,153)","rgb(204,255,204)","rgb(204,255,255)","rgb(255,0,0)","rgb(255,0,51)","rgb(255,0,102)","rgb(255,0,153)","rgb(255,0,204)","rgb(255,0,255)","rgb(255,51,0)","rgb(255,51,51)","rgb(255,51,102)","rgb(255,51,153)","rgb(255,51,204)","rgb(255,51,255)","rgb(255,102,0)","rgb(255,102,51)","rgb(255,102,102)","rgb(255,102,153)","rgb(255,102,204)","rgb(255,102,255)","rgb(255,153,0)","rgb(255,153,51)","rgb(255,153,102)","rgb(255,153,153)","rgb(255,153,204)","rgb(255,153,255)","rgb(255,204,0)","rgb(255,204,51)","rgb(255,204,102)","rgb(255,204,153)","rgb(255,204,204)","rgb(255,204,255)","rgb(255,255,0)","rgb(255,255,51)","rgb(255,255,102)","rgb(255,255,153)","rgb(255,255,204)","rgb(255,255,255)"];function t$9(A){return(A/=255)<.04045?A/12.92:Math.pow((A+.055)/1.055,2.4)}function o$9(A,e=[0,0,0,1]){var t,i;return null!==(i=null===(t=A.match(/\d{1,3}/g))||void 0===t?void 0:t.map((A=>+A)))&&void 0!==i?i:e}const n$9=A=>{A.prototype.brightness=function({precision:A=4,percentage:e=!1}={}){const{r:t,g:i,b:n}=this.rgba(),a=+((.299*t+.587*i+.114*n)/255).toFixed(A);return e?100*a:a},A.prototype.luminance=function({precision:A=4,percentage:e=!1}={}){const{r:t,g:i,b:n}=this.rgba(),a=+(.2126*t$9(t)+.7152*t$9(i)+.0722*t$9(n)).toFixed(A);return e?100*a:a},A.prototype.contrast=function({bgColor:e="#fff",precision:t=4,ratio:i=!1}={}){const n=this.luminance(),a=(e instanceof A?e:new A(e)).luminance(),r=((Math.max(n,a)+.05)/(Math.min(n,a)+.05)).toFixed(t);return i?r+":1":+r},A.prototype.readableOn=function({bgColor:A="#fff",size:e="body",level:t="minimum"}={}){const i=this.contrast({bgColor:A});return"body"===e&&"enhanced"===t?i>=7:"large"===e&&"minimum"===t?i>=3:i>=4.5},A.prototype.equalTo=function(e="#fff"){const t=Object.values(this.rgba()),i=Object.values((e instanceof A?e:new A(e)).rgba());return t.toString()===i.toString()},A.prototype.isLight=function(){return this.brightness()>=.5},A.prototype.isDark=function(){return!this.isLight()},A.prototype.isCool=function(){const{h:A}=this.hsla();return 75<=A&&A<255},A.prototype.isWarm=function(){return!this.isCool()},A.prototype.isTinted=function(){return this.hsla().l>50},A.prototype.isShaded=function(){return this.hsla().l<50},A.prototype.isToned=function(){return this.hsla().s<100},A.prototype.isPureHue=function({reason:A=!0}={}){return this.isTinted()?!!A&&{pure:!1,reason:"tinted"}:this.isShaded()?!!A&&{pure:!1,reason:"shaded"}:this.isToned()?!!A&&{pure:!1,reason:"toned"}:!A||{pure:!0,reason:"N/A"}},A.prototype.closestCool=function(){const{h:A}=this.hsla();return this.isCool()?this:this.hueTo(A<75?75:254)},A.prototype.closestWarm=function(){const{h:A}=this.hsla();return this.isWarm()?this:this.hueTo(A<165?74:255)},A.prototype.closestPureHue=function(){const{h:e,a:t}=this.hsla(),{r:i,g:n,b:a,a:r}=function(A){const{h:e,s:t,l:i,a:n}=A,a=i/100,r=t/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(e/60%2-1)),l=a-s/2,c=e<60||300<=e&&e<360?s:120<=e&&e<240?0:o,d=240<=e&&e<360?0:60<=e&&e<180?s:o,h=e<120?0:180<=e&&e<300?s:o,[g,u,p]=[c,d,h].map((A=>255*(A+l)));return{r:g,g:u,b:p,a:null!=n?n:1}}({h:e,s:100,l:50,a:t});return new A({r:i,g:n,b:a,a:r})},A.prototype.closestWebSafe=function(){const{r:e,g:t,b:i,a:n}=this.rgba();let[a,r,s]=new Array(3).fill(0),o=Number.POSITIVE_INFINITY,l={r:e,g:t,b:i,a:n};for(let A=0;A{for(var t in e)r$9.o(e,t)&&!r$9.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},g={};r$9.d(g,{Z:()=>a$9});const e$9={maroon:"rgb(128,0,0)","dark red":"rgb(139,0,0)",brown:"rgb(165,42,42)",firebrick:"rgb(178,34,34)",crimson:"rgb(220,20,60)",red:"rgb(255,0,0)",tomato:"rgb(255,99,71)",coral:"rgb(255,127,80)","indian red":"rgb(205,92,92)","light coral":"rgb(240,128,128)","dark salmon":"rgb(233,150,122)",salmon:"rgb(250,128,114)","light salmon":"rgb(255,160,122)","orange red":"rgb(255,69,0)","dark orange":"rgb(255,140,0)",orange:"rgb(255,165,0)",gold:"rgb(255,215,0)","dark golden rod":"rgb(184,134,11)","golden rod":"rgb(218,165,32)","pale golden rod":"rgb(238,232,170)","dark khaki":"rgb(189,183,107)",khaki:"rgb(240,230,140)",olive:"rgb(128,128,0)",yellow:"rgb(255,255,0)","yellow green":"rgb(154,205,50)","dark olive green":"rgb(85,107,47)","olive drab":"rgb(107,142,35)","lawn green":"rgb(124,252,0)","chart reuse":"rgb(127,255,0)","green yellow":"rgb(173,255,47)","dark green":"rgb(0,100,0)",green:"rgb(0,128,0)","forest green":"rgb(34,139,34)",lime:"rgb(0,255,0)","lime green":"rgb(50,205,50)","light green":"rgb(144,238,144)","pale green":"rgb(152,251,152)","dark sea green":"rgb(143,188,143)","medium spring green":"rgb(0,250,154)","spring green":"rgb(0,255,127)","sea green":"rgb(46,139,87)","medium aqua marine":"rgb(102,205,170)","medium sea green":"rgb(60,179,113)","light sea green":"rgb(32,178,170)","dark slate gray":"rgb(47,79,79)",teal:"rgb(0,128,128)","dark cyan":"rgb(0,139,139)",cyan:"rgb(0,255,255)",aqua:"rgb(0,255,255)","light cyan":"rgb(224,255,255)","dark turquoise":"rgb(0,206,209)",turquoise:"rgb(64,224,208)","medium turquoise":"rgb(72,209,204)","pale turquoise":"rgb(175,238,238)","aqua marine":"rgb(127,255,212)","powder blue":"rgb(176,224,230)","cadet blue":"rgb(95,158,160)","steel blue":"rgb(70,130,180)","corn flower blue":"rgb(100,149,237)","deep sky blue":"rgb(0,191,255)","dodger blue":"rgb(30,144,255)","light blue":"rgb(173,216,230)","sky blue":"rgb(135,206,235)","light sky blue":"rgb(135,206,250)","midnight blue":"rgb(25,25,112)",navy:"rgb(0,0,128)","dark blue":"rgb(0,0,139)","medium blue":"rgb(0,0,205)",blue:"rgb(0,0,255)","royal blue":"rgb(65,105,225)","blue violet":"rgb(138,43,226)",indigo:"rgb(75,0,130)","dark slate blue":"rgb(72,61,139)","slate blue":"rgb(106,90,205)","medium slate blue":"rgb(123,104,238)","medium purple":"rgb(147,112,219)","dark magenta":"rgb(139,0,139)","dark violet":"rgb(148,0,211)","dark orchid":"rgb(153,50,204)","medium orchid":"rgb(186,85,211)",purple:"rgb(128,0,128)",thistle:"rgb(216,191,216)",plum:"rgb(221,160,221)",violet:"rgb(238,130,238)",magenta:"rgb(255,0,255)",fuchsia:"rgb(255,0,255)",orchid:"rgb(218,112,214)","medium violet red":"rgb(199,21,133)","pale violet red":"rgb(219,112,147)","deep pink":"rgb(255,20,147)","hot pink":"rgb(255,105,180)","light pink":"rgb(255,182,193)",pink:"rgb(255,192,203)","antique white":"rgb(250,235,215)",beige:"rgb(245,245,220)",bisque:"rgb(255,228,196)","blanched almond":"rgb(255,235,205)",wheat:"rgb(245,222,179)","corn silk":"rgb(255,248,220)","lemon chiffon":"rgb(255,250,205)","light golden rod yellow":"rgb(250,250,210)","light yellow":"rgb(255,255,224)","saddle brown":"rgb(139,69,19)",sienna:"rgb(160,82,45)",chocolate:"rgb(210,105,30)",peru:"rgb(205,133,63)","sandy brown":"rgb(244,164,96)","burly wood":"rgb(222,184,135)",tan:"rgb(210,180,140)","rosy brown":"rgb(188,143,143)",moccasin:"rgb(255,228,181)","navajo white":"rgb(255,222,173)","peach puff":"rgb(255,218,185)","misty rose":"rgb(255,228,225)","lavender blush":"rgb(255,240,245)",linen:"rgb(250,240,230)","old lace":"rgb(253,245,230)","papaya whip":"rgb(255,239,213)","sea shell":"rgb(255,245,238)","mint cream":"rgb(245,255,250)","slate gray":"rgb(112,128,144)","light slate gray":"rgb(119,136,153)","light steel blue":"rgb(176,196,222)",lavender:"rgb(230,230,250)","floral white":"rgb(255,250,240)","alice blue":"rgb(240,248,255)","ghost white":"rgb(248,248,255)",honeydew:"rgb(240,255,240)",ivory:"rgb(255,255,240)",azure:"rgb(240,255,255)",snow:"rgb(255,250,250)",black:"rgb(0,0,0)","dim gray":"rgb(105,105,105)","dim grey":"rgb(105,105,105)",gray:"rgb(128,128,128)",grey:"rgb(128,128,128)","dark gray":"rgb(169,169,169)","dark grey":"rgb(169,169,169)",silver:"rgb(192,192,192)","light gray":"rgb(211,211,211)","light grey":"rgb(211,211,211)",gainsboro:"rgb(220,220,220)",gainsborough:"rgb(220,220,220)","white smoke":"rgb(245,245,245)",white:"rgb(255,255,255)",transparent:"rgba(0,0,0,0)"};function b$2(A,e=[0,0,0,1]){var t,i;return null!==(i=null===(t=A.match(/\d{1,3}/g))||void 0===t?void 0:t.map((A=>+A)))&&void 0!==i?i:e}const a$9=A=>{A.prototype.name=function({exact:A=!0}={}){const{r:e,g:t,b:i,a:n}=this.rgba();if(0===n)return"transparent";const[a,r]=[Object.keys(e$9),Object.values(e$9)];let s;if(A){const A=this.stringRGB({alpha:!1}).replace(/\s/g,"");s=a.find((e=>e$9[e]===A))}else{let A=Number.POSITIVE_INFINITY;for(let n=0;n{for(var t in e)t$8.o(e,t)&&!t$8.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},a$8={};t$8.d(a$8,{Z:()=>d$1});const n$8=6/29,r$8=Math.pow(n$8,3),o$8=Math.pow(29/3,3),e$8={x:.96422,y:1,z:.82521};function c$8(A,e){return[A[0][0]*e[0]+A[0][1]*e[1]+A[0][2]*e[2],A[1][0]*e[0]+A[1][1]*e[1]+A[1][2]*e[2],A[2][0]*e[0]+A[2][1]*e[1]+A[2][2]*e[2]]}function s$8(A,e,t){return Math.max(A,Math.min(e,t))}function u$6(A){const e=A%360;return e<0?e+360:e}function i$8(A){const{l:e,a:t,b:i}=function(A){const e=Object.values(function(A){const[e,t,i]=c$8([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(A).map((A=>{return 100*(e=A,(e/=255)<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4));var e})));return function(A){const[e,t,i]=c$8([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}({x:e,y:t,z:i,a:A.a})}(A)).map(((A,e)=>A/(100*Object.values(e$8)[e]))).map((A=>A>r$8?Math.cbrt(A):(o$8*A+16)/116));return{l:116*e[1]-16,a:500*(e[0]-e[1]),b:200*(e[1]-e[2]),alpha:A.a}}(A),n=180*Math.atan2(i,t)/Math.PI;return{l:e,c:Math.sqrt(Math.pow(t,2)+Math.pow(i,2)),h:u$6(n),a:A.a}}function h$2(A){const{l:e,c:t,h:i}=A;return function(A){const{l:e,a:t,b:i}=A,n=(e+16)/116,a=n+t/500,r=n-i/200,s=Object.values(e$8),[o,l,c]=[a,n,r].map(((A,e)=>(A>n$8?Math.pow(A,3):3*Math.pow(n$8,2)*(A-4/29))*s[e]*100));return function(A){const[e,t,i]=Object.values(function(A){const[e,t,i]=c$8([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}(A)).map((A=>A/100)),[n,a,r]=c$8([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[e,t,i]).map((A=>{return s$8(0,255*((e=A)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e),255);var e}));return{r:n,g:a,b:r,a:A.a}}({x:o,y:l,z:c,a:A.alpha})}({l:e,a:t*Math.cos(i*Math.PI/180),b:t*Math.sin(i*Math.PI/180),alpha:A.a})}const l$2=/lcha?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function p$1({l:A,c:e,h:t,a:i}){return[h$2({l:s$8(0,A,100),c:s$8(0,e,230),h:u$6(t),a:(n=i,void 0!==n?s$8(0,n,1):1)}),"lch"];var n}function f$1(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{l:e,c:t,h:i}=A;return void 0!==e&&void 0!==t&&void 0!==i}(A))return p$1(A);if("string"==typeof A){l$2.lastIndex=0;const e=l$2.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(0===e?1:1===e?2.3:2===e?3.59:.01):+A));return p$1({l:A,c:t,h:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const d$1=A=>{A.prototype.lcha=function(){return i$8(this.rgba())},A.prototype.stringLCH=function({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.lcha()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`lcha(${t}%, ${i}, ${n}, ${a})`:`lch(${t}%, ${i}, ${n})`},A.Parsers.push(f$1)};var b$1=a$8.Z,t$7={d:(A,e)=>{for(var t in e)t$7.o(e,t)&&!t$7.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},n$7={};t$7.d(n$7,{Z:()=>l$1});const r$7=Math.pow(6/29,3),e$7=Math.pow(29/3,3);function o$7(A,e){return[A[0][0]*e[0]+A[0][1]*e[1]+A[0][2]*e[2],A[1][0]*e[0]+A[1][1]*e[1]+A[1][2]*e[2],A[2][0]*e[0]+A[2][1]*e[1]+A[2][2]*e[2]]}function a$7(A,e,t){return Math.max(A,Math.min(e,t))}function u$5(A){const{l:e,u:t,v:i}=A,n=e>e$7*r$7?Math.pow((e+16)/116,3):e/e$7,a=(52*e/(t&&e?t+13*e*.20916005282038627:1)-1)/3,r=-5*n,s=n*(39*e/(i&&e?i+13*e*(9/18.43985):1)-5),o=a===-1/3?s-r:(s-r)/(a- -1/3);return function(A){const[e,t,i]=Object.values(function(A){const[e,t,i]=o$7([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}(A)).map((A=>A/100)),[n,a,r]=o$7([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[e,t,i]).map((A=>{return a$7(0,255*((e=A)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e),255);var e}));return{r:n,g:a,b:r,a:A.a}}({x:100*o,y:100*n,z:100*(a*o+r),a:A.a})}const c$7=/color\s*\(\s*luva?\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function s$7({l:A,u:e,v:t,a:i}){return[u$5({l:a$7(0,A,100),u:a$7(-100,e,100),v:a$7(-100,t,100),a:(n=i,void 0!==n?a$7(0,n,1):1)}),"luv"];var n}function i$7(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{l:e,u:t,v:i}=A;return void 0!==e&&void 0!==t&&null!=i}(A))return s$7(A);if("string"==typeof A){c$7.lastIndex=0;const e=c$7.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(e<3?1:.01):+A));return s$7({l:A,u:t,v:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const l$1=A=>{A.prototype.luva=function(){return function(A){const[e,t,i]=Object.values(function(A){const[e,t,i]=o$7([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(A).map((A=>{return 100*(e=A,(e/=255)<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4));var e})));return function(A){const[e,t,i]=o$7([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}({x:e,y:t,z:i,a:A.a})}(A)).map((A=>A/100)),n=t/1,a=e&&t&&i?e+15*t+3*i:19,r=4*e/a,s=9*t/a;let o=n>r$7?116*Math.cbrt(n)-16:e$7*n,l=13*o*(r-.20916005282038627),c=13*o*(s-.48807338454488514);return o===Number(-0)&&(o=0),l===Number(-0)&&(l=0),c===Number(-0)&&(c=0),{l:o,u:l,v:c,a:A.a}}(this.rgba())},A.prototype.stringLUV=function({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.luva()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`color(luva ${t}%, ${i}%, ${n}%, ${a})`:`color(luv ${t}%, ${i}%, ${n}%)`},A.Parsers.push(i$7)};var v=n$7.Z,t$6={d:(A,e)=>{for(var t in e)t$6.o(e,t)&&!t$6.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},a$6={};t$6.d(a$6,{Z:()=>d});const n$6=6/29,r$6=Math.pow(n$6,3),e$6=Math.pow(29/3,3),o$6={x:.96422,y:1,z:.82521};function c$6(A,e){return[A[0][0]*e[0]+A[0][1]*e[1]+A[0][2]*e[2],A[1][0]*e[0]+A[1][1]*e[1]+A[1][2]*e[2],A[2][0]*e[0]+A[2][1]*e[1]+A[2][2]*e[2]]}function s$6(A,e,t){return Math.max(A,Math.min(e,t))}function u$4(A){return void 0!==A?s$6(0,A,1):1}function i$6(A){const e=Object.values(function(A){const[e,t,i]=c$6([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(A).map((A=>{return 100*(e=A,(e/=255)<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4));var e})));return function(A){const[e,t,i]=c$6([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}({x:e,y:t,z:i,a:A.a})}(A)).map(((A,e)=>A/(100*Object.values(o$6)[e]))).map((A=>A>r$6?Math.cbrt(A):(e$6*A+16)/116));return{l:116*e[1]-16,a:500*(e[0]-e[1]),b:200*(e[1]-e[2]),alpha:A.a}}function l(A){const{l:e,a:t,b:i}=A,n=(e+16)/116,a=n+t/500,r=n-i/200,s=Object.values(o$6),[o,l,c]=[a,n,r].map(((A,e)=>(A>n$6?Math.pow(A,3):3*Math.pow(n$6,2)*(A-4/29))*s[e]*100));return function(A){const[e,t,i]=Object.values(function(A){const[e,t,i]=c$6([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}(A)).map((A=>A/100)),[n,a,r]=c$6([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[e,t,i]).map((A=>{return s$6(0,255*((e=A)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e),255);var e}));return{r:n,g:a,b:r,a:A.a}}({x:o,y:l,z:c,a:A.alpha})}const p=/laba?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function b({l:A,a:e,b:t,alpha:i}){return[l({l:s$6(0,A,100),a:s$6(-160,e,160),b:s$6(-160,t,160),alpha:u$4(i)}),"lab"]}function f(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{l:e,a:t,b:i}=A;return void 0!==e&&void 0!==t&&void 0!==i}(A))return b(A);if("string"==typeof A){p.lastIndex=0;const e=p.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(e<3?1:.01):+A));return b({l:A,a:t,b:i,alpha:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const d=A=>{A.prototype.laba=function(){return i$6(this.rgba())},A.prototype.stringLAB=function({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.laba()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`laba(${t}%, ${i}, ${n}, ${a})`:`lab(${t}%, ${i}, ${n})`},A.Parsers.push(f)};var h$1=a$6.Z,t$5={d:(A,e)=>{for(var t in e)t$5.o(e,t)&&!t$5.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},n$5={};function r$5(A,e){return[A[0][0]*e[0]+A[0][1]*e[1]+A[0][2]*e[2],A[1][0]*e[0]+A[1][1]*e[1]+A[1][2]*e[2],A[2][0]*e[0]+A[2][1]*e[1]+A[2][2]*e[2]]}function o$5(A,e,t){return Math.max(A,Math.min(e,t))}function e$5(A){const{u:e,v:t,w:i}=A,[n,a,r]=r$5([[1.5,0,0],[0,1,0],[1.5,-3,2]],[e,t,i]);return function(A){const[e,t,i]=Object.values(function(A){const[e,t,i]=r$5([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}(A)).map((A=>A/100)),[n,a,r]=r$5([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[e,t,i]).map((A=>{return o$5(0,255*((e=A)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e),255);var e}));return{r:n,g:a,b:r,a:A.a}}({x:n,y:a,z:r,a:A.a})}t$5.d(n$5,{Z:()=>s$5});const a$5=/color\s*\(\s*uvwa?\s*(\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function u$3({u:A,v:e,w:t,a:i}){return[e$5({u:o$5(0,A,200/3*.96422),v:o$5(0,e,100),w:o$5(-48.211,t,191.2605),a:(n=i,void 0!==n?o$5(0,n,1):1)}),"uvw"];var n}function c$5(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{u:e,v:t,w:i}=A;return void 0!==e&&void 0!==t&&void 0!==i}(A))return u$3(A);if("string"==typeof A){a$5.lastIndex=0;const e=a$5.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map((A=>A.includes("%")?.01*+A.slice(0,-1):+A));return u$3({u:A,v:t,w:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const s$5=A=>{A.prototype.uvwa=function(){return function(A){const{x:e,y:t,z:i}=function(A){const[e,t,i]=r$5([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(A).map((A=>{return 100*(e=A,(e/=255)<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4));var e})));return function(A){const[e,t,i]=r$5([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}({x:e,y:t,z:i,a:A.a})}(A),[n,a,r]=r$5([[2/3,0,0],[0,1,0],[-.5,1.5,.5]],[e,t,i]);return{u:n,v:a,w:r,a:A.a}}(this.rgba())},A.prototype.stringUVW=function({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.uvwa()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`color(uvwa ${t}, ${i}, ${n}, ${a})`:`color(uvw ${t}, ${i}, ${n})`},A.Parsers.push(c$5)};var i$5=n$5.Z,t$4={d:(A,e)=>{for(var t in e)t$4.o(e,t)&&!t$4.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},n$4={};function r$4(A,e){return[A[0][0]*e[0]+A[0][1]*e[1]+A[0][2]*e[2],A[1][0]*e[0]+A[1][1]*e[1]+A[1][2]*e[2],A[2][0]*e[0]+A[2][1]*e[1]+A[2][2]*e[2]]}function o$4(A,e,t){return Math.max(A,Math.min(e,t))}function e$4(A){const[e,t,i]=Object.values(function(A){const[e,t,i]=r$4([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}(A)).map((A=>A/100)),[n,a,r]=r$4([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[e,t,i]).map((A=>{return o$4(0,255*((e=A)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e),255);var e}));return{r:n,g:a,b:r,a:A.a}}t$4.d(n$4,{Z:()=>u$2});const a$4=/color\s*\(\s*xyza?\s*(\d*\.?\d+)\s*,?\s*(\d*\.?\d+)\s*,?\s*(\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function s$4({x:A,y:e,z:t,a:i}){return[e$4({x:o$4(0,A,96.422),y:o$4(0,e,100),z:o$4(0,t,82.521),a:(n=i,void 0!==n?o$4(0,n,1):1)}),"xyz"];var n}function c$4(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{x:e,y:t,z:i}=A;return void 0!==e&&void 0!==t&&void 0!==i}(A))return s$4(A);if("string"==typeof A){a$4.lastIndex=0;const e=a$4.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map((A=>A.includes("%")?.01*+A.slice(0,-1):+A));return s$4({x:A,y:t,z:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const u$2=A=>{A.prototype.xyza=function(){return function(A){const[e,t,i]=r$4([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(A).map((A=>{return 100*(e=A,(e/=255)<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4));var e})));return function(A){const[e,t,i]=r$4([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(A));return{x:e,y:t,z:i,a:A.a}}({x:e,y:t,z:i,a:A.a})}(this.rgba())},A.prototype.stringXYZ=function({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.xyza()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`color(xyza ${t}, ${i}, ${n}, ${a})`:`color(xyz ${t}, ${i}, ${n})`},A.Parsers.push(c$4)};var i$4=n$4.Z,t$3={d:(A,e)=>{for(var t in e)t$3.o(e,t)&&!t$3.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},n$3={};function r$3(A,e,t){return Math.max(A,Math.min(e,t))}function a$3(A){const e=A%360;return e<0?e+360:e}function o$3(A){const{h:e,a:t}=function(A){var e;const{Cmin:t,Cmax:i,H:n,delta:a}=function(A){const[e,t,i]=Object.values(A).map((A=>A/255)),n=Math.max(e,t,i),a=Math.min(e,t,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===e?(t-i)/r%6:n===t?(i-e)/r+2:(e-t)/r+4,delta:r}}(A),r=(i+t)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:a$3(60*n),s:100*s,l:100*r,a:null!==(e=A.a)&&void 0!==e?e:1}}(A),{r:i,g:n,b:a}=A;return{h:e,w:Math.min(i,n,a)/2.55,b:100*(1-Math.max(i,n,a)/255),a:t}}function e$3(A){const{h:e,b:t,w:i,a:n}=A;return function(A){const{h:e,s:t,v:i,a:n}=A,a=i/100,r=a*(t/100),s=r*(1-Math.abs(e/60%2-1)),o=a-r,l=e<60||300<=e&&e<360?r:120<=e&&e<240?0:s,c=240<=e&&e<360?0:60<=e&&e<180?r:s,d=e<120?0:180<=e&&e<300?r:s,[h,g,u]=[l,c,d].map((A=>255*(A+o)));return{r:h,g:g,b:u,a:null!=n?n:1}}({h:e,s:100===t?0:100-i/(100-t)*100,v:100-t,a:n})}t$3.d(n$3,{Z:()=>u$1});const s$3=/hwba?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function i$3({h:A,w:e,b:t,a:i}){return[e$3({h:a$3(A),w:r$3(0,e,100),b:r$3(0,t,100),a:(n=i,void 0!==n?r$3(0,n,1):1)}),"hwb"];var n}function c$3(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{h:e,w:t,b:i}=A;return void 0!==e&&void 0!==t&&void 0!==i}(A))return i$3(A);if("string"==typeof A){s$3.lastIndex=0;const e=s$3.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(0===e?3.59:e<3?1:.01):+A));return i$3({h:A,w:t,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const u$1=A=>{A.prototype.hwba=function(){return o$3(this.rgba())},A.prototype.stringHWB=function({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.hwba()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`hwba(${a$3(t)}, ${i}%, ${n}%, ${a})`:`hwb(${a$3(t)}, ${i}%, ${n}%)`},A.Parsers.push(c$3)};var h=n$3.Z,t$2={d:(A,e)=>{for(var t in e)t$2.o(e,t)&&!t$2.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},n$2={};function r$2(A,e,t){return Math.max(A,Math.min(e,t))}function s$2(A){const e=A%360;return e<0?e+360:e}function e$2(A){const{h:e,s:t,v:i,a:n}=A,a=i/100,r=a*(t/100),s=r*(1-Math.abs(e/60%2-1)),o=a-r,l=e<60||300<=e&&e<360?r:120<=e&&e<240?0:s,c=240<=e&&e<360?0:60<=e&&e<180?r:s,d=e<120?0:180<=e&&e<300?r:s,[h,g,u]=[l,c,d].map((A=>255*(A+o)));return{r:h,g:g,b:u,a:null!=n?n:1}}t$2.d(n$2,{Z:()=>c$2});const a$2=/hsva?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function o$2({h:A,s:e,v:t,a:i}){return[e$2({h:s$2(A),s:r$2(0,e,100),v:r$2(0,t,100),a:(n=i,void 0!==n?r$2(0,n,1):1)}),"hsv"];var n}function i$2(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{h:e,s:t,v:i}=A;return void 0!==e&&void 0!==t&&void 0!==i}(A))return o$2(A);if("string"==typeof A){a$2.lastIndex=0;const e=a$2.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(0===e?3.59:e<3?1:.01):+A));return o$2({h:A,s:t,v:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const c$2=A=>{A.prototype.hsva=function(){return function(A){var e;const{Cmax:t,H:i,delta:n}=function(A){const[e,t,i]=Object.values(A).map((A=>A/255)),n=Math.max(e,t,i),a=Math.min(e,t,i),r=n-a;return{Cmin:a,Cmax:n,H:0===r?0:n===e?(t-i)/r%6:n===t?(i-e)/r+2:(e-t)/r+4,delta:r}}(A),a=0===n?0:n/t;return{h:s$2(60*i),s:100*a,v:100*t,a:null!==(e=A.a)&&void 0!==e?e:1}}(this.rgba())},A.prototype.stringHSV=function({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.hsva()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`hsva(${s$2(t)}, ${i}%, ${n}%, ${a})`:`hsv(${s$2(t)}, ${i}%, ${n}%)`},A.Parsers.push(i$2)};var u=n$2.Z,t$1={d:(A,e)=>{for(var t in e)t$1.o(e,t)&&!t$1.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},r$1={};function n$1(A,e,t){return Math.max(A,Math.min(e,t))}function o$1(A){let{r:e,y:t,b:i}=A;const n=Math.min(e,t,i);[e,t,i]=[e,t,i].map((A=>A-n));const a=Math.max(e,t,i);let r=Math.min(t,i);t-=r,i-=r,i&&r&&(i*=2,r*=2),e+=t,r+=t;const s=Math.max(e,r,i);if(s){const A=a/s;[e,r,i]=[e,r,i].map((e=>e*A))}return[e,r,i]=[e,r,i].map((A=>A+n)),{r:e,g:r,b:i,a:A.a}}t$1.d(r$1,{Z:()=>i$1});const a$1=/color\s*\(\s*ryba?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function e$1({r:A,y:e,b:t,a:i}){return[o$1({r:n$1(0,A,255),y:n$1(0,e,255),b:n$1(0,t,255),a:(n=i,void 0!==n?n$1(0,n,1):1)}),"ryb"];var n}function s$1(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{r:e,y:t,b:i}=A;return void 0!==e&&void 0!==t&&void 0!==i}(A))return e$1(A);if("string"==typeof A){a$1.lastIndex=0;const e=a$1.exec(A);if(e){const[A,t,i,n]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(e<3?2.55:.01):+A));return e$1({r:A,y:t,b:i,a:n})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const i$1=A=>{A.prototype.ryba=function(){return function(A){let{r:e,g:t,b:i}=A;const n=Math.min(e,t,i);[e,t,i]=[e,t,i].map((A=>A-n));const a=Math.max(e,t,i);let r=Math.min(e,t);e-=r,t-=r,i&&t&&(i/=2,t/=2),r+=t,i+=t;const s=Math.max(e,r,i);if(s){const A=a/s;[e,r,i]=[e,r,i].map((e=>e*A))}return[e,r,i]=[e,r,i].map((A=>A+n)),{r:e,y:r,b:i,a:A.a}}(this.rgba())},A.prototype.stringRYB=function({alpha:A=!0,precision:e=[0,0,0,1]}={}){const[t,i,n,a]=Object.values(this.ryba()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`color(ryba ${t}, ${i}, ${n}, ${a})`:`color(ryb ${t}, ${i}, ${n})`},A.Parsers.push(s$1)};var c$1=r$1.Z,t={d:(A,e)=>{for(var i in e)t.o(e,i)&&!t.o(A,i)&&Object.defineProperty(A,i,{enumerable:!0,get:e[i]})},o:(A,e)=>Object.prototype.hasOwnProperty.call(A,e)},n={};function e(A,e,t){return Math.max(A,Math.min(e,t))}function r(A){const{c:e,m:t,y:i,k:n,a:a}=A,[r,s,o]=[e,t,i].map((A=>255*(1-A/100)*(1-n/100)));return{r:r,g:s,b:o,a:a}}t.d(n,{Z:()=>i});const c=/device-cmyka?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?),?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function o({c:A,m:t,y:i,k:n,a:a}){return[r({c:e(0,A,100),m:e(0,t,100),y:e(0,i,100),k:e(0,n,100),a:(s=a,void 0!==s?e(0,s,1):1)}),"cmyk"];var s}function a(A){if("object"===A.constructor.name.toLowerCase()&&function(A){const{c:e,m:t,y:i,k:n}=A;return void 0!==e&&void 0!==t&&void 0!==i&&void 0!==n}(A))return o(A);if("string"==typeof A){c.lastIndex=0;const e=c.exec(A);if(e){const[A,t,i,n,a]=e.filter((A=>void 0!==A)).slice(1).map(((A,e)=>A.includes("%")?+A.slice(0,-1)*(e<4?1:.01):+A));return o({c:A,m:t,y:i,k:n,a:a})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const i=A=>{A.prototype.cmyka=function(){return function(A){const{r:e,g:t,b:i,a:n}=A,a=1-Math.max(e,t,i)/255,[r,s,o]=1===a?[0,0,0]:[e,t,i].map((A=>100*(1-A/255-a)/(1-a)));return{c:r,m:s,y:o,k:100*a,a:n}}(this.rgba())},A.prototype.stringCMYK=function({alpha:A=!0,precision:e=[0,0,0,0,1]}={}){const[t,i,n,a,r]=Object.values(this.cmyka()).map(((A,t)=>function(A,e){return+A.toFixed(e>=0?e:0)}(A,e[t])));return A?`device-cmyk(${t}, ${i}, ${n}, ${a}, ${r})`:`device-cmyk(${t}, ${i}, ${n}, ${a})`},A.Parsers.push(a)};var s=n.Z;B([r$c,z,e$a,l$3,b$1,v,h$1,i$5,i$4,h,u,c$1,s]);const{determineFocusDistance:determineFocusDistance,intersectElementWithLine:intersectElementWithLine,getCommonBoundingBox:getCommonBoundingBox,getMaximumGroups:getMaximumGroups,measureText:measureText}=excalidrawLib,GAP=4;class ExcalidrawAutomate{constructor(A,e){this.targetView=null,this.mostRecentMarkdownSVG=null,this.onViewUnloadHook=null,this.onViewModeChangeHook=null,this.onLinkHoverHook=null,this.onLinkClickHook=null,this.onDropHook=null,this.onCanvasColorChangeHook=null,this.activeScript=null,this.plugin=A,this.reset(),this.targetView=e}getAPI(A){return new ExcalidrawAutomate(this.plugin,A)}setFillStyle(A){switch(A){case 0:return this.style.fillStyle="hachure","hachure";case 1:return this.style.fillStyle="cross-hatch","cross-hatch";default:return this.style.fillStyle="solid","solid"}}setStrokeStyle(A){switch(A){case 0:return this.style.strokeStyle="solid","solid";case 1:return this.style.strokeStyle="dashed","dashed";default:return this.style.strokeStyle="dotted","dotted"}}setStrokeSharpness(A){return 0===A?(this.style.strokeSharpness="round","round"):(this.style.strokeSharpness="sharp","sharp")}setFontFamily(A){switch(A){case 1:return this.style.fontFamily=4,getFontFamily(4);case 2:return this.style.fontFamily=2,getFontFamily(2);case 3:return this.style.fontFamily=3,getFontFamily(3);default:return this.style.fontFamily=1,getFontFamily(1)}}setTheme(A){return 0===A?(this.canvas.theme="light","light"):(this.canvas.theme="dark","dark")}addToGroup(A){const e=nanoid();return A.forEach((A=>{var t,i;null===(i=null===(t=this.elementsDict[A])||void 0===t?void 0:t.groupIds)||void 0===i||i.push(e)})),e}async toClipboard(A){const e=A?await getTemplate(this.plugin,A,!1,new EmbeddedFilesLoader(this.plugin),0):null;let t=e?e.elements:[];t=t.concat(this.getElements()),navigator.clipboard.writeText(JSON.stringify({type:"excalidraw/clipboard",elements:t}))}getElements(){const A=[],e=Object.keys(this.elementsDict);for(let t=0;t{const l=t+Math.random()*r-r/2;o.push([l+Math.random()*r-r/2+t%2*r/6+A,i*Math.sqrt(n*n*(1-l*l/(a*a)))+Math.random()*s-s/2+t%2*s/6+e])};let c;for(c=r/2-a;c<=a-r/2;c+=a/6)l(c,1);for(c=a-r/2;c>=r/2-a;c-=a/6)l(c,-1);o.push(o[0]);const d=this.addLine((A=>{const e=getLineBox(A),n=t/e.w,a=i/e.h;let r;for(r=0;r500){const A=500/Math.max(a.size.width,a.size.height);a.size.width=A*a.size.width,a.size.height=A*a.size.height}return this.elementsDict[i]=this.boxedElement(i,"image",A,e,a.size.width,a.size.height),this.elementsDict[i].fileId=r,this.elementsDict[i].scale=[1,1],i}async addLaTex(A,e,t){const i=nanoid(),n=await tex2dataURL(t,this.plugin);return n?(this.imagesDict[n.fileId]={mimeType:n.mimeType,id:n.fileId,dataURL:n.dataURL,created:n.created,file:null,hasSVGwithBitmap:!1,latex:t},this.elementsDict[i]=this.boxedElement(i,"image",A,e,n.size.width,n.size.height),this.elementsDict[i].fileId=n.fileId,this.elementsDict[i].scale=[1,1],i):null}connectObjects(A,e,t,i,n){if(!this.elementsDict[A]||!this.elementsDict[t])return;if(["line","arrow","freedraw"].includes(this.elementsDict[A].type)||["line","arrow","freedraw"].includes(this.elementsDict[t].type))return;const a=(null==n?void 0:n.padding)?n.padding:10,r=(null==n?void 0:n.numberOfPoints)?n.numberOfPoints:0,s=(A,e)=>{switch(A){case"bottom":return[(e.x+(e.x+e.width))/2,e.y+e.height+a];case"left":return[e.x-a,(e.y+(e.y+e.height))/2];case"right":return[e.x+e.width+a,(e.y+(e.y+e.height))/2];default:return[(e.x+(e.x+e.width))/2,e.y-a]}};let o,l,c,d;const h=this.elementsDict[A],g=this.elementsDict[t];if(!e||!i){const A=h.x+h.width/2,t=g.x+g.width/2,n=h.y+h.height/2,a=g.y+g.height/2;if(!e){const e=intersectElementWithLine(h,[t,a],[A,n],4);0===e.length?[o,l]=[A,n]:[o,l]=e[0]}if(!i){const e=intersectElementWithLine(g,[A,n],[t,a],4);0===e.length?[c,d]=[t,a]:[c,d]=e[0]}}e&&([o,l]=s(e,this.elementsDict[A])),i&&([c,d]=s(i,this.elementsDict[t]));const u=r+2,p=[];for(let A=0;AMath.PI/2&&(i-=Math.PI),this.style.angle=i;const a=this.addText(t.x+t.points[1][0]/2-n.width/2,t.y+t.points[1][1]/2-n.height,e);return this.style.angle=0,a}clear(){this.elementsDict={},this.imagesDict={}}reset(){this.clear(),this.activeScript=null,this.style={strokeColor:"#000000",backgroundColor:"transparent",angle:0,fillStyle:"hachure",strokeWidth:1,strokeStyle:"solid",roughness:1,opacity:100,strokeSharpness:"sharp",fontFamily:1,fontSize:20,textAlign:"left",verticalAlign:"top",startArrowHead:null,endArrowHead:"arrow"},this.canvas={theme:"light",viewBackgroundColor:"#FFFFFF",gridSize:0}}isExcalidrawFile(A){return this.plugin.isExcalidrawFile(A)}setView(A){if("active"==A){const A=app.workspace.getActiveViewOfType(ExcalidrawView);if(!(A instanceof ExcalidrawView))return;this.targetView=A}if("first"==A){const A=app.workspace.getLeavesOfType("excalidraw");if(!A||0==A.length)return;this.targetView=A[0].view}return A instanceof ExcalidrawView&&(this.targetView=A),this.targetView}getExcalidrawAPI(){var A;return this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?this.targetView.excalidrawAPI:(errorMessage("targetView not set","getExcalidrawAPI()"),null)}getViewElements(){var A,e,t;if(!this.targetView||!(null===(A=this.targetView)||void 0===A?void 0:A._loaded))return errorMessage("targetView not set","getViewElements()"),[];const i=null===(t=null===(e=this.targetView)||void 0===e?void 0:e.excalidrawRef)||void 0===t?void 0:t.current;return i?null==i?void 0:i.getSceneElements():[]}deleteViewElements(A){var e,t,i;if(!this.targetView||!(null===(e=this.targetView)||void 0===e?void 0:e._loaded))return errorMessage("targetView not set","deleteViewElements()"),!1;const n=null===(i=null===(t=this.targetView)||void 0===t?void 0:t.excalidrawRef)||void 0===i?void 0:i.current;if(!n)return!1;const a=n.getSceneElements(),r=n.getAppState();return this.targetView.updateScene({elements:a.filter((e=>!A.includes(e))),appState:r,commitToHistory:!0}),!0}getViewSelectedElement(){const A=this.getViewSelectedElements();return A?A[0]:null}getViewSelectedElements(){var A;return this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?this.targetView.getViewSelectedElements():(errorMessage("targetView not set","getViewSelectedElements()"),[])}getViewFileForImageElement(A){var e,t,i,n;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?A&&"image"===A.type?null===(n=null===(i=null===(t=this.targetView)||void 0===t?void 0:t.excalidrawData)||void 0===i?void 0:i.getFile(A.fileId))||void 0===n?void 0:n.file:(errorMessage("Must provide an image element as input","getViewFileForImageElement()"),null):(errorMessage("targetView not set","getViewFileForImageElement()"),null)}copyViewElementsToEAforEditing(A){A.forEach((A=>{this.elementsDict[A.id]=cloneElement(A)}))}viewToggleFullScreen(A=!1){var e;if(app.isMobile)return void errorMessage("mobile not supported","viewToggleFullScreen()");if(!this.targetView||!(null===(e=this.targetView)||void 0===e?void 0:e._loaded))return void errorMessage("targetView not set","viewToggleFullScreen()");if(A){const A=this.getExcalidrawAPI();this.targetView.updateScene({appState:Object.assign({viewModeEnabled:!0},A.appState),commitToHistory:!1})}const t=this.targetView;t.isFullscreen()?t.exitFullscreen():t.gotoFullscreen()}connectObjectWithViewSelectedElement(A,e,t,i){const n=this.getViewSelectedElement();if(!n)return!1;const a=n.id;return this.elementsDict[a]=n,this.connectObjects(A,e,a,t,i),delete this.elementsDict[a],!0}async addElementsToView(A=!1,e=!0,t=!1){var i;if(!this.targetView||!(null===(i=this.targetView)||void 0===i?void 0:i._loaded))return errorMessage("targetView not set","addElementsToView()"),!1;const n=this.getElements();return await this.targetView.addElements(n,A,e,this.imagesDict,t)}registerThisAsViewEA(){var A;return this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?(this.targetView.setHookServer(this),!0):(errorMessage("targetView not set","addElementsToView()"),!1)}deregisterThisAsViewEA(){var A;return this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?(this.targetView.setHookServer(this),!0):(errorMessage("targetView not set","addElementsToView()"),!1)}getEmbeddedFilesLoader(A){return new EmbeddedFilesLoader(this.plugin,A)}getExportSettings(A,e){return{withBackground:A,withTheme:e}}getBoundingBox(A){const e=getCommonBoundingBox(A);return{topX:e.minX,topY:e.minY,width:e.maxX-e.minX,height:e.maxY-e.minY}}getMaximumGroups(A){return getMaximumGroups(A)}getLargestElement(A){if(!A||0===A.length)return null;let e=A[0];const t=A=>A.height*A.width;let i=t(A[0]);for(let n=1;ni&&(i=a,e=A[n])}return e}getCommonGroupForElements(A){const e=A.map((A=>A.groupIds)).reduce(((A,e)=>e.filter((e=>A.includes(e)))));return e.length>0?e[0]:null}getElementsInTheSameGroupWithElement(A,e){if(!A||!e)return[];const t="text"===A.type&&A.containerId?e.filter((e=>e.id===A.containerId)):[];return 0===A.groupIds.length?1===t.length?[A,t[0]]:[A]:1===t.length?e.filter((e=>e.groupIds.some((e=>A.groupIds.includes(e)))||e===t[0])):e.filter((e=>e.groupIds.some((e=>A.groupIds.includes(e)))))}intersectElementWithLine(A,e,t,i){return intersectElementWithLine(A,e,t,i)}getScriptSettings(){var A;return this.activeScript?null!==(A=this.plugin.settings.scriptEngineSettings[this.activeScript])&&void 0!==A?A:{}:null}async setScriptSettings(A){if(!this.activeScript)return null;this.plugin.settings.scriptEngineSettings[this.activeScript]=A,await this.plugin.saveSettings()}openFileInNewOrAdjacentLeaf(A){if(!(A&&A instanceof obsidian.TFile))return null;if(!this.targetView)return null;const e=getNewOrAdjacentLeaf(this.plugin,this.targetView.leaf);return e.openFile(A,{active:!0}),e}measureText(A){var e,t;const i=_measureText(A,this.style.fontSize,this.style.fontFamily);return{width:null!==(e=i.w)&&void 0!==e?e:0,height:null!==(t=i.h)&&void 0!==t?t:0}}async getOriginalImageSize(A){var e;if(!this.targetView||!(null===(e=this.targetView)||void 0===e?void 0:e._loaded))return errorMessage("targetView not set","getOriginalImageSize()"),null;if(!A||"image"!==A.type)return errorMessage("Please provide a single image element as input","getOriginalImageSize()"),null;const t=this.targetView.excalidrawData.getFile(A.fileId);if(!t)return errorMessage("Please provide a single image element as input","getOriginalImageSize()"),null;const i="dark"===this.getExcalidrawAPI().getAppState().theme,n=t.getImage(i);return await getImageSize(n)}verifyMinimumPluginVersion(A){return PLUGIN_VERSION===A||isVersionNewerThanOther(PLUGIN_VERSION,A)}isExcalidrawView(A){return A instanceof ExcalidrawView}selectElementsInView(A){var e;this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?A&&0!==A.length&&this.getExcalidrawAPI().selectElements(A):errorMessage("targetView not set","selectElementsInView()")}generateElementId(){return nanoid()}cloneElement(A){const e=JSON.parse(JSON.stringify(A));return e.id=nanoid(),e}moveViewElementToZIndex(A,e){var t;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return void errorMessage("targetView not set","moveViewElementToZIndex()");const i=this.getExcalidrawAPI(),n=this.getViewElements(),a=n.filter((e=>e.id===A));if(0===a.length)return void errorMessage(`Element (id: ${A}) not found`,"moveViewElementToZIndex");if(e>=n.length)return void i.bringToFront(a);if(e<0)return void i.sendToBack(a);const r=n.indexOf(a[0]);n.splice(e,0,n.splice(r,1)[0]),this.targetView.updateScene({elements:n,commitToHistory:!0})}hexStringToRgb(A){const e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(A);return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}rgbToHexString(A){return O$1({r:A[0],g:A[1],b:A[2]}).stringHEX({alpha:!1})}hslToRgb(A){const e=O$1({h:A[0],s:A[1],l:A[2]});return[e.red,e.green,e.blue]}rgbToHsl(A){const e=O$1({r:A[0],g:A[1],b:A[2]});return[e.hue,e.saturation,e.lightness]}colorNameToHex(A){return COLOR_NAMES.has(A.toLowerCase().trim())?COLOR_NAMES.get(A.toLowerCase().trim()):A.trim()}getCM(A){if(A)return"string"==typeof A&&(A=this.colorNameToHex(A)),O$1(A);log("Creates a CM object. Visit https://github.com/lbragile/ColorMaster for documentation.")}}async function initExcalidrawAutomate(A){await initFonts();const e=new ExcalidrawAutomate(A);return window.ExcalidrawAutomate=e,e}function destroyExcalidrawAutomate(){delete window.ExcalidrawAutomate}function normalizeLinePoints(A){const e=[],[t,i]=A[0];for(let n=0;n-1||e.search("excalidraw-plugin: locked\n")>-1;await a.loadData(e,l,o?TextMode.parsed:TextMode.raw);let d=e.search("# Text Elements\n");-1==d&&(d=e.search("# Drawing\n"));let h=a.scene;t&&await i.loadSceneFiles(a,(A=>{if(A&&0!==A.length){for(const e of A)e.hasSVGwithBitmap&&(c=!0),a.scene.files[e.id]={mimeType:e.mimeType,id:e.id,dataURL:e.dataURL,created:e.created};h=scaleLoadedImage(a.scene,A).scene}}),n);let g=h.elements;if(s.hasGroupref){const e=s.hasSectionref?getTextElementsMatchingQuery(h.elements,["# "+s.sectionref],!0):h.elements.filter((A=>A.id===s.blockref));e.length>0&&(g=A.ea.getElementsInTheSameGroupWithElement(e[0],h.elements))}return{elements:g,appState:h.appState,frontmatter:e.substring(0,d),files:h.files,hasSVGwithBitmap:c}}return{elements:[],appState:{},frontmatter:null,files:[],hasSVGwithBitmap:c}}async function createPNG(A,e=1,t,i,n,a,r,s=[],o,l,c){var d,h,g,u,p,w,m,f;i||(i=new EmbeddedFilesLoader(o)),c=null!=c?c:o.settings.exportPaddingSVG;const B=A?await getTemplate(o,A,!0,i,l):null;let E=null!==(d=null==B?void 0:B.elements)&&void 0!==d?d:[];return E=E.concat(s),await getPNG({type:"excalidraw",version:2,source:"https://excalidraw.com",elements:E,appState:{theme:null!==(g=null!=n?n:null===(h=null==B?void 0:B.appState)||void 0===h?void 0:h.theme)&&void 0!==g?g:a,viewBackgroundColor:null!==(p=null===(u=null==B?void 0:B.appState)||void 0===u?void 0:u.viewBackgroundColor)&&void 0!==p?p:r},files:null!==(w=null==B?void 0:B.files)&&void 0!==w?w:{}},{withBackground:null!==(m=null==t?void 0:t.withBackground)&&void 0!==m?m:o.settings.exportWithBackground,withTheme:null!==(f=null==t?void 0:t.withTheme)&&void 0!==f?f:o.settings.exportWithTheme},c,e)}async function createSVG(A,e=!1,t,i,n,a,r,s=[],o,l,c){var d,h,g,u,p,w,m,f;i||(i=new EmbeddedFilesLoader(o));const B=A?await getTemplate(o,A,!0,i,l):null;let E=null!==(d=null==B?void 0:B.elements)&&void 0!==d?d:[];E=E.concat(s),c=null!=c?c:o.settings.exportPaddingSVG;const C=await getSVG({type:"excalidraw",version:2,source:"https://excalidraw.com",elements:E,appState:{theme:null!==(g=null!=n?n:null===(h=null==B?void 0:B.appState)||void 0===h?void 0:h.theme)&&void 0!==g?g:a,viewBackgroundColor:null!==(p=null===(u=null==B?void 0:B.appState)||void 0===u?void 0:u.viewBackgroundColor)&&void 0!==p?p:r},files:null!==(w=null==B?void 0:B.files)&&void 0!==w?w:{}},{withBackground:null!==(m=null==t?void 0:t.withBackground)&&void 0!==m?m:o.settings.exportWithBackground,withTheme:null!==(f=null==t?void 0:t.withTheme)&&void 0!==f?f:o.settings.exportWithTheme},c),b=getEmbeddedFilenameParts(A);if(!b.hasGroupref&&(b.hasBlockref||b.hasSectionref)){let A=b.hasSectionref?getTextElementsMatchingQuery(E,["# "+b.sectionref],!0):E.filter((A=>A.id===b.blockref));if(A.length>0){const e=A[0].containerId;e&&(A=A.concat(E.filter((A=>A.id===e))));const t=o.ea.getBoundingBox(A),i=o.ea.getBoundingBox(E);C.viewBox.baseVal.x=t.topX-i.topX,C.viewBox.baseVal.y=t.topY-i.topY,C.viewBox.baseVal.width=t.width+2*c,C.viewBox.baseVal.height=t.height+2*c}}return(null==B?void 0:B.hasSVGwithBitmap)&&C.setAttribute("hasbitmap","true"),e?embedFontsInSVG(C,o):C}function estimateLineBound(A){let e=1/0,t=1/0,i=-1/0,n=-1/0;for(const[a,r]of A)e=Math.min(e,a),t=Math.min(t,r),i=Math.max(i,a),n=Math.max(n,r);return[e,t,i,n]}function estimateBounds(A){const e=getCommonBoundingBox(A);return[e.minX,e.minY,e.maxX,e.maxY]}function repositionElementsToCursor(A,e,t=!1){const[i,n,a,r]=estimateBounds(A);let[s,o]=[0,0];return[s,o]=t?[e.x-(i+a)/2,e.y-(n+r)/2]:[e.x-i,e.y-n],A.forEach((A=>{A.x=A.x+s,A.y=A.y+o})),A}function errorMessage(A,e){switch(A){case"targetView not set":errorlog({where:"ExcalidrawAutomate",source:e,message:"targetView not set, or no longer active. Use setView before calling this function"});break;case"mobile not supported":errorlog({where:"ExcalidrawAutomate",source:e,message:"this function is not avalable on Obsidian Mobile"});break;default:errorlog({where:"ExcalidrawAutomate",source:e,message:"unknown error"})}}const insertLaTeXToView=A=>{const e=A.plugin.app,t=A.plugin.ea;new Prompt(e,t$d("ENTER_LATEX"),"","\\color{red}\\oint_S {E_n dA = \\frac{1}{{\\varepsilon _0 }}} Q_{inside}").openAndGetValue((async e=>{e&&(t.reset(),await t.addLaTex(0,0,e),t.setView(A),t.addElementsToView(!0,!1,!0))}))},search=async A=>{const e=A.plugin.ea;e.reset(),e.setView(A);const t=e.getViewElements().filter((A=>"text"===A.type));if(0===t.length)return;let i=await ScriptEngine.inputPrompt(A.plugin.app,"Search for","use quotation marks for exact match","");if(!i)return;const n=i.matchAll(/"(.*?)"/g);let a,r=[];for(;!(a=n.next()).done;)r.push(a.value[1]);i=i.replaceAll(/"(.*?)"/g,""),r=r.concat(i.split(" ").filter((A=>0!==A.length))),e.targetView.selectElementsMatchingQuery(t,r)},getTextElementsMatchingQuery=(A,e,t=!1)=>A&&0!==A.length&&e&&0!==e.length?A.filter((A=>"text"===A.type&&e.some((e=>{if(t){const t=A.rawText.toLowerCase().split("\n")[0].trim().match(/^#*(# .*)/);return!(!t||2!==t.length)&&t[1]===e.toLowerCase()}return A.rawText.toLowerCase().replaceAll("\n"," ").trim().match(e.toLowerCase())})))):[],cloneElement=A=>Object.assign(Object.assign({},A),{version:A.version+1,updated:Date.now(),versionNonce:Math.floor(1e9*Math.random())}),URL$1="https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/index-new.md";class ScriptInstallPrompt extends obsidian.Modal{constructor(A){super(A.app),this.plugin=A}async onOpen(){this.contentEl.classList.add("excalidraw-scriptengine-install"),this.containerEl.classList.add("excalidraw-scriptengine-install");try{const A=await obsidian.request({url:URL$1});if(!A)return new obsidian.Notice("Error opening the Excalidraw Script Store page. Please double check that you can access the website. I've logged the link in developer console (press CTRL+SHIFT+i)",5e3),log(URL$1),void this.close();await obsidian.MarkdownRenderer.renderMarkdown(A,this.contentEl,"",this.plugin),this.contentEl.querySelectorAll("h1[data-heading],h2[data-heading],h3[data-heading]").forEach((A=>{A.setAttribute("id",A.getAttribute("data-heading"))})),this.contentEl.querySelectorAll("a.internal-link").forEach((A=>{A.removeAttribute("target")}))}catch(A){errorlog({where:"ScriptInstallPrompt.onOpen",error:A}),new obsidian.Notice("Could not open ScriptEngine repository"),this.close()}}onClose(){this.contentEl.empty()}}function toVal(A){var e,t,i="";if("string"==typeof A||"number"==typeof A)i+=A;else if("object"==typeof A)if(Array.isArray(A))for(e=0;eReact__namespace.createElement("label",{className:clsx("ToolIcon ToolIcon_type_floating","ToolIcon_size_medium",{"is-mobile":A}),onClick:()=>{this.toolsRef.current.setTheme(e.theme),this.toolsRef.current.toggleVisibility(e.zenModeEnabled||A)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-hidden":"true"},React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 166 267"},React__namespace.createElement("path",{fill:"transparent",d:"M0 0h165.742v267.245H0z"}),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#bd7efc",strokeWidth:"0",d:"M55.5 96.49 39.92 57.05 111.28 10l4.58 36.54L55.5 95.65"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M55.5 96.49c-5.79-14.66-11.59-29.33-15.58-39.44M55.5 96.49c-3.79-9.59-7.58-19.18-15.58-39.44m0 0C60.13 43.72 80.34 30.4 111.28 10M39.92 57.05C60.82 43.27 81.73 29.49 111.28 10m0 0c.97 7.72 1.94 15.45 4.58 36.54M111.28 10c1.14 9.12 2.29 18.24 4.58 36.54m0 0C95.41 63.18 74.96 79.82 55.5 95.65m60.36-49.11C102.78 57.18 89.71 67.82 55.5 95.65m0 0v.84m0-.84v.84"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#e2c4ff",strokeWidth:"0",d:"m111.234 10.06 44.51 42.07-40.66-5.08-3.85-36.99"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M111.234 10.06c11.83 11.18 23.65 22.36 44.51 42.07m-44.51-42.07 44.51 42.07m0 0c-13.07-1.63-26.13-3.27-40.66-5.08m40.66 5.08c-11.33-1.41-22.67-2.83-40.66-5.08m0 0c-1.17-11.29-2.35-22.58-3.85-36.99m3.85 36.99c-1.47-14.17-2.95-28.33-3.85-36.99m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#2f005e",strokeWidth:"0",d:"m10 127.778 45.77-32.99-15.57-38.08-30.2 71.07"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M10 127.778c16.85-12.14 33.7-24.29 45.77-32.99M10 127.778c16.59-11.95 33.17-23.91 45.77-32.99m0 0c-6.14-15.02-12.29-30.05-15.57-38.08m15.57 38.08c-4.08-9.98-8.16-19.96-15.57-38.08m0 0c-11.16 26.27-22.33 52.54-30.2 71.07m30.2-71.07c-10.12 23.81-20.23 47.61-30.2 71.07m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#410380",strokeWidth:"0",d:"m40.208 235.61 15.76-140.4-45.92 32.92 30.16 107.48"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M40.208 235.61c3.7-33.01 7.41-66.02 15.76-140.4m-15.76 140.4c3.38-30.16 6.77-60.32 15.76-140.4m0 0c-10.83 7.76-21.66 15.53-45.92 32.92m45.92-32.92c-11.69 8.38-23.37 16.75-45.92 32.92m0 0c6.84 24.4 13.69 48.8 30.16 107.48m-30.16-107.48c6.67 23.77 13.33 47.53 30.16 107.48m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#943feb",strokeWidth:"0",d:"m111.234 240.434-12.47 16.67-42.36-161.87 58.81-48.3 40.46 5.25-44.44 188.25"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M111.234 240.434c-3.79 5.06-7.57 10.12-12.47 16.67m12.47-16.67c-4.43 5.93-8.87 11.85-12.47 16.67m0 0c-16.8-64.17-33.59-128.35-42.36-161.87m42.36 161.87c-9.74-37.2-19.47-74.41-42.36-161.87m0 0c15.03-12.35 30.07-24.7 58.81-48.3m-58.81 48.3c22.49-18.47 44.97-36.94 58.81-48.3m0 0c9.48 1.23 18.95 2.46 40.46 5.25m-40.46-5.25c13.01 1.69 26.02 3.38 40.46 5.25m0 0c-10.95 46.41-21.91 92.82-44.44 188.25m44.44-188.25c-12.2 51.71-24.41 103.42-44.44 188.25m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#6212b3",strokeWidth:"0",d:"m40.379 235.667 15.9-140.21 42.43 161.79-58.33-21.58"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M40.379 235.667c4.83-42.62 9.67-85.25 15.9-140.21m-15.9 140.21c5.84-51.52 11.69-103.03 15.9-140.21m0 0c10.98 41.87 21.96 83.74 42.43 161.79m-42.43-161.79c13.28 50.63 26.56 101.25 42.43 161.79m0 0c-11.8-4.37-23.6-8.74-58.33-21.58m58.33 21.58c-21.73-8.04-43.47-16.08-58.33-21.58m0 0s0 0 0 0m0 0s0 0 0 0"}))))),this.plugin=A,this.toolsRef=e}}class ActionButton extends React__namespace.Component{constructor(A){super(A),this.toastMessageTimeout=0,this.state={visible:!0}}render(){return React__namespace.createElement("button",{style:{width:"fit-content",padding:"2px",margin:"4px"},className:"ToolIcon_type_button ToolIcon_size_small ToolIcon_type_button--show ToolIcon",title:this.props.title,onClick:A=>{this.toastMessageTimeout&&(window.clearTimeout(this.toastMessageTimeout),this.toastMessageTimeout=0),this.props.action(A)},onPointerDown:()=>{this.toastMessageTimeout=window.setTimeout((()=>{var A;return null===(A=this.props.view.excalidrawAPI)||void 0===A?void 0:A.setToast({message:this.props.title})}),300)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-hidden":"true"},this.props.icon))}}const ICONS={exportLibrary:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 200 190"},React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M50 10h20v20H50"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M50 10h20m-20 0h20m0 0v20m0-20v20m0 0H50m20 0H50m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M90 10h20v20H90"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M90 10h20m-20 0h20m0 0v20m0-20v20m0 0H90m20 0H90m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M130 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M130 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M170 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M170 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M70 50h60v80h20l-50 50-50-50h20V50"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M70 50h60m-60 0h60m0 0v80m0-80v80m0 0h20m-20 0h20m0 0-50 50m50-50-50 50m0 0-50-50m50 50-50-50m0 0h20m-20 0h20m0 0V50m0 80V50m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M10 10h20v20H10"}),React__namespace.createElement("path",{fill:"none",strokeWidth:"2",d:"M10 10h20m-20 0h20m0 0v20m0-20v20m0 0H10m20 0H10m0 0V10m0 20V10"}))),insertImage:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("path",{d:"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"})),insertMD:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512"},React__namespace.createElement("path",{d:"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"})),insertLaTeX:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},React__namespace.createElement("path",{d:"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"})),insertLink:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("path",{d:"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"})),exportSVG:React__namespace.createElement("svg",{viewBox:"0 0 28 28"},React__namespace.createElement("text",{style:{fontSize:"28px",fontWeight:"bold"},x:"4",y:"24"},"S")),exportPNG:React__namespace.createElement("svg",{viewBox:"0 0 28 28"},React__namespace.createElement("text",{style:{fontSize:"28px",fontWeight:"bold"},x:"4",y:"24"},"P")),exportExcalidraw:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100"},React__namespace.createElement("g",{transform:"translate(30,5)"},React__namespace.createElement("path",{d:"M14.45 1.715c-2.723 2.148-6.915 5.797-10.223 8.93l-2.61 2.445.477 3.207c.258 1.75.738 5.176 1.031 7.582.332 2.406.66 4.668.773 4.996.145.438 0 .656-.406.656-.699 0-.734-.183 1.176 5.832.7 2.297 1.363 4.414 1.434 4.633.074.254.367.363.699.254.332-.145.515-.438.406-.691-.113-.293.074-.586.367-.696.403-.144.367-.437-.258-1.492-.992-1.64-3.53-15.64-3.675-20.164-.11-3.207-.11-3.242 1.25-5.066 1.324-1.786 4.375-4.485 9.078-7.91 1.324-.985 2.648-2.079 3.015-2.446.551-.656.809-.472 5.442 4.414 2.683 2.805 5.664 5.688 6.617 6.414l1.766 1.313-1.36 2.844c-.734 1.53-3.715 7.437-6.656 13.054-6.137 11.813-4.887 10.68-12.02 10.79l-4.632.038-1.547 1.75c-1.617 1.86-1.836 2.551-1.063 3.72.293.398.512 1.054.512 1.456 0 .656.258.766 1.73.84.918.035 1.762.145 1.875.254.11.11.258 2.371.368 5.031l.144 4.813-2.46 5.25C1.616 72.516 0 76.527 0 77.84c0 .691.148 1.273.293 1.273.367 0 .367-.035 15.332-30.988 6.95-14.363 13.531-27.89 14.633-30.113 1.101-2.227 2.094-4.266 2.168-4.559.074-.328-2.461-2.844-6.508-6.379C22.281 3.864 19.082.95 18.785.621c-.844-1.023-2.094-.695-4.336 1.094zM15.7 43.64c-1.692 3.246-1.766 3.28-6.4 3.5-4.081.218-4.152.183-4.152-.582 0-.438-.148-1.024-.332-1.313-.222-.328-.074-.914.442-1.715l.808-1.238h3.676c2.024-.04 4.34-.184 5.149-.328.808-.149 1.507-.219 1.578-.184.074.035-.293.875-.77 1.86zm-3.09 5.832c-.294.765-1.067 2.37-1.692 3.574-1.027 2.043-1.137 2.113-1.395 1.277-.148-.511-.257-2.008-.296-3.355-.036-2.66-.11-2.625 2.98-2.809l.992-.035zm0 0"}),React__namespace.createElement("path",{d:"M15.55 10.39c-.66.473-.843.95-.843 2.153 0 1.422.11 1.64 1.102 2.039.992.402 1.25.367 2.39-.398 1.508-1.024 1.543-1.278.442-2.918-.957-1.422-1.914-1.676-3.09-.875zm2.098 1.313c.586 1.02.22 1.785-.882 1.785-.993 0-1.434-.984-.883-1.968.441-.801 1.285-.727 1.765.183zm0 0M38.602 18.594c0 .183-.22.363-.477.363-.219 0-.844 1.023-1.324 2.262-1.469 3.793-16.176 32.629-16.211 31.718 0-.472-.223-.8-.59-.8-.516 0-.59.289-.367 1.71.219 1.641.074 2.008-5.149 12.071-2.941 5.723-6.101 11.703-7.02 13.305-.956 1.68-1.69 3.5-1.765 4.265-.11 1.313.035 1.496 3.235 4.23 1.84 1.606 4.191 3.61 5.222 4.52 4.63 4.196 6.801 5.871 7.387 5.762.883-.145 14.523-14.328 14.559-15.129 0-.367-.66-5.906-1.47-12.324-1.398-10.938-2.722-23.734-2.573-24.973.109-.765-.442-4.633-.844-6.308-.332-1.313-.184-1.86 2.46-7.84 1.544-3.535 3.567-7.875 4.45-9.625.844-1.75 1.582-3.281 1.582-3.39 0-.11-.258-.18-.55-.18-.298 0-.555.144-.555.363zm-8.454 27.234c.403 2.55 1.211 8.676 1.801 13.598 1.14 9.043 2.461 19.07 2.832 21.62.219 1.278.07 1.532-2.316 4.157-4.156 4.629-8.567 9.188-10.074 10.356l-1.399 1.093-7.168-6.636c-6.617-6.051-7.168-6.672-6.765-7.403.222-.398 2.097-3.789 4.156-7.508 2.058-3.718 4.777-8.68 6.027-11.011 1.29-2.371 2.465-4.41 2.684-4.52.258-.148.332 3.535.258 11.375-.149 11.703-.11 11.739 1.066 11.485.148 0 .258-5.907.258-13.09V56.293l3.86-7.656c2.132-4.23 3.898-7.621 3.972-7.586.07.039.441 2.187.808 4.777zm0 0"}))),search:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("path",{d:"M500.3 443.7l-119.7-119.7c27.22-40.41 40.65-90.9 33.46-144.7C401.8 87.79 326.8 13.32 235.2 1.723C99.01-15.51-15.51 99.01 1.724 235.2c11.6 91.64 86.08 166.7 177.6 178.9c53.8 7.189 104.3-6.236 144.7-33.46l119.7 119.7c15.62 15.62 40.95 15.62 56.57 0C515.9 484.7 515.9 459.3 500.3 443.7zM79.1 208c0-70.58 57.42-128 128-128s128 57.42 128 128c0 70.58-57.42 128-128 128S79.1 278.6 79.1 208z"})),switchToMarkdown:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},React__namespace.createElement("path",{d:"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z"})),gotoFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},React__namespace.createElement("path",{d:"M128 32H32C14.31 32 0 46.31 0 64v96c0 17.69 14.31 32 32 32s32-14.31 32-32V96h64c17.69 0 32-14.31 32-32S145.7 32 128 32zM416 32h-96c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32V64C448 46.31 433.7 32 416 32zM128 416H64v-64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96c0 17.69 14.31 32 32 32h96c17.69 0 32-14.31 32-32S145.7 416 128 416zM416 320c-17.69 0-32 14.31-32 32v64h-64c-17.69 0-32 14.31-32 32s14.31 32 32 32h96c17.69 0 32-14.31 32-32v-96C448 334.3 433.7 320 416 320z"})),exitFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},React__namespace.createElement("path",{d:"M128 320H32c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32v-96C160 334.3 145.7 320 128 320zM416 320h-96c-17.69 0-32 14.31-32 32v96c0 17.69 14.31 32 32 32s32-14.31 32-32v-64h64c17.69 0 32-14.31 32-32S433.7 320 416 320zM320 192h96c17.69 0 32-14.31 32-32s-14.31-32-32-32h-64V64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96C288 177.7 302.3 192 320 192zM128 32C110.3 32 96 46.31 96 64v64H32C14.31 128 0 142.3 0 160s14.31 32 32 32h96c17.69 0 32-14.31 32-32V64C160 46.31 145.7 32 128 32z"})),releaseNotes:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("path",{d:"M0 219.2v212.5c0 14.25 11.62 26.25 26.5 27C75.32 461.2 180.2 471.3 240 511.9V245.2C181.4 205.5 79.99 194.8 29.84 192C13.59 191.1 0 203.6 0 219.2zM482.2 192c-50.09 2.848-151.3 13.47-209.1 53.09C272.1 245.2 272 245.3 272 245.5v266.5c60.04-40.39 164.7-50.76 213.5-53.28C500.4 457.9 512 445.9 512 431.7V219.2C512 203.6 498.4 191.1 482.2 192zM352 96c0-53-43-96-96-96S160 43 160 96s43 96 96 96S352 149 352 96z"})),rawMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 60"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"4",d:"M20 10H10m10 0H10m0 0v40m0-40v40m0 0h10m-10 0h10M40 10H30m10 0H30m0 0v40m0-40v40m0 0h10m-10 0h10M60 10h10m-10 0h10m0 0v40m0-40v40m0 0H60m10 0H60M80 10h10m-10 0h10m0 0v40m0-40v40m0 0H80m10 0H80"})),parsedMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},React__namespace.createElement("path",{d:"M574.1 280.4l-45.38-181.8c-5.875-23.63-21.62-44-43-55.75c-21.5-11.75-46.1-14.13-70.25-6.375l-15.25 5.125c-8.375 2.75-12.87 11.88-10 20.25l5 15.13c2.75 8.375 11.88 12.88 20.25 10.13l13.12-4.375c10.88-3.625 23-3.625 33.25 1.75c10.25 5.375 17.5 14.5 20.38 25.75l38.38 153.9c-22.12-6.875-49.75-12.5-81.13-12.5c-34.88 0-73.1 7-114.9 26.75H251.4C210.5 258.6 171.4 251.6 136.5 251.6c-31.38 0-59 5.625-81.12 12.5l38.38-153.9c2.875-11.25 10.12-20.38 20.5-25.75C124.4 79.12 136.5 79.12 147.4 82.74l13.12 4.375c8.375 2.75 17.5-1.75 20.25-10.13l5-15.13C188.6 53.49 184.1 44.37 175.6 41.62l-15.25-5.125c-23.13-7.75-48.75-5.375-70.13 6.375c-21.37 11.75-37.12 32.13-43 55.75L1.875 280.4C.6251 285.4 .0001 290.6 .0001 295.9v70.25C.0001 428.1 51.63 480 115.3 480h37.13c60.25 0 110.4-46 114.9-105.4l2.875-38.63h35.75l2.875 38.63C313.3 433.1 363.4 480 423.6 480h37.13c63.62 0 115.2-51 115.2-113.9V295.9C576 290.6 575.4 285.5 574.1 280.4zM203.4 369.7c-2 26-24.38 46.25-51 46.25H115.2C87 415.1 64 393.6 64 366.1v-37.5c18.12-6.5 43.38-13 72.62-13c23.88 0 47.25 4.375 69.88 13L203.4 369.7zM512 366.1c0 27.5-23 49.88-51.25 49.88h-37.13c-26.62 0-49-20.25-51-46.25l-3.125-41.13c22.62-8.625 46.13-13 70-13c29 0 54.38 6.5 72.5 13V366.1z"})),convertFile:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",viewBox:"0 110 700 340",xmlns:"http://www.w3.org/2000/svg"},React__namespace.createElement("path",{d:"m593.95 239.4v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4688-1.457-3.1875-2.6445-5.0742-3.5h-1.5742c-1.4727-0.49219-3.0039-0.78516-4.5508-0.875h-124.25c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v87.5h-70v-105.88-1.0508c-0.089844-1.5469-0.38281-3.0781-0.875-4.5508v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4727-1.457-3.1914-2.6445-5.0742-3.5h-1.5742c-1.7031-0.875-3.5352-1.4688-5.4258-1.75h-123.55c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v245c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-52.5h70v122.5c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-192.5-1.0508c-0.14453-1.5547-0.5-3.0859-1.0508-4.5508zm-313.95 110.6h-140v-210h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v87.5h-52.5c-6.2539 0-12.031 3.3359-15.156 8.75s-3.125 12.086 0 17.5 8.9023 8.75 15.156 8.75h52.5zm140 70v-105h27.824l-5.0742 5.0742c-3.7031 3.1719-5.9141 7.7461-6.1055 12.617-0.1875 4.8711 1.668 9.6016 5.1133 13.051 3.4492 3.4453 8.1797 5.3008 13.051 5.1133 4.8711-0.19141 9.4453-2.4023 12.617-6.1055l35-35c3.2578-3.2773 5.0898-7.7148 5.0898-12.336 0-4.625-1.832-9.0586-5.0898-12.34l-35-35c-4.5078-3.8555-10.66-5.1719-16.348-3.4883-5.6875 1.6797-10.137 6.1289-11.816 11.816-1.6836 5.6914-0.37109 11.844 3.4883 16.348l5.0742 5.0742h-27.824v-69.824h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v157.5z"})),cog:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},React__namespace.createElement("path",{d:"M495.9 166.6C499.2 175.2 496.4 184.9 489.6 191.2L446.3 230.6C447.4 238.9 448 247.4 448 256C448 264.6 447.4 273.1 446.3 281.4L489.6 320.8C496.4 327.1 499.2 336.8 495.9 345.4C491.5 357.3 486.2 368.8 480.2 379.7L475.5 387.8C468.9 398.8 461.5 409.2 453.4 419.1C447.4 426.2 437.7 428.7 428.9 425.9L373.2 408.1C359.8 418.4 344.1 427 329.2 433.6L316.7 490.7C314.7 499.7 307.7 506.1 298.5 508.5C284.7 510.8 270.5 512 255.1 512C241.5 512 227.3 510.8 213.5 508.5C204.3 506.1 197.3 499.7 195.3 490.7L182.8 433.6C167 427 152.2 418.4 138.8 408.1L83.14 425.9C74.3 428.7 64.55 426.2 58.63 419.1C50.52 409.2 43.12 398.8 36.52 387.8L31.84 379.7C25.77 368.8 20.49 357.3 16.06 345.4C12.82 336.8 15.55 327.1 22.41 320.8L65.67 281.4C64.57 273.1 64 264.6 64 256C64 247.4 64.57 238.9 65.67 230.6L22.41 191.2C15.55 184.9 12.82 175.3 16.06 166.6C20.49 154.7 25.78 143.2 31.84 132.3L36.51 124.2C43.12 113.2 50.52 102.8 58.63 92.95C64.55 85.8 74.3 83.32 83.14 86.14L138.8 103.9C152.2 93.56 167 84.96 182.8 78.43L195.3 21.33C197.3 12.25 204.3 5.04 213.5 3.51C227.3 1.201 241.5 0 256 0C270.5 0 284.7 1.201 298.5 3.51C307.7 5.04 314.7 12.25 316.7 21.33L329.2 78.43C344.1 84.96 359.8 93.56 373.2 103.9L428.9 86.14C437.7 83.32 447.4 85.8 453.4 92.95C461.5 102.8 468.9 113.2 475.5 124.2L480.2 132.3C486.2 143.2 491.5 154.7 495.9 166.6V166.6zM256 336C300.2 336 336 300.2 336 255.1C336 211.8 300.2 175.1 256 175.1C211.8 175.1 176 211.8 176 255.1C176 300.2 211.8 336 256 336z"})),trayMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512"},React__namespace.createElement("path",{d:"M618.1 97.67c-13.02-4.375-27.45 .1562-35.72 11.16L464 266.7l-118.4-157.8c-8.266-11.03-22.64-15.56-35.72-11.16C296.8 102 288 114.2 288 128v256c0 17.69 14.33 32 32 32s32-14.31 32-32v-160l86.41 115.2c12.06 16.12 39.13 16.12 51.19 0L576 224v160c0 17.69 14.33 32 32 32s32-14.31 32-32v-256C640 114.2 631.2 102 618.1 97.67zM224 96.01H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h64v223.1c0 17.69 14.33 31.99 32 31.99s32-14.3 32-31.99V160h64c17.67 0 32-14.31 32-32S241.7 96.01 224 96.01z"})),copyElementLink:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 260 260","aria-hidden":"true",focusable:"false",role:"img"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"8",d:"M10 10h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0V10m0 40V10M210 10h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0V10m0 40V10M210 210h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0v-40m0 40v-40M10 210h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0v-40m0 40v-40M30 210V50m0 160V50M50 30h160M50 30h160M230 50v160m0-160v160M50 230h160m-160 0h160"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M110 90c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10m0-80c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10M150 90c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10m0-80c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M89.868 130.198c13.36-.03 66.78-.17 80.13-.2m-80.13.2c13.36-.03 66.78-.17 80.13-.2"}))},stringToSVG=A=>(A=A.replace(/stroke\s*=\s*['"][^"']*['"]/g,"").replace(/width\s*=\s*['"][^"']*['"]/g,"").replace(/height\s*=\s*['"][^"']*['"]/g,"").replace("
\n\n
\n',RELEASE_NOTES={Intro:'I want to help you keep up with all the updates. After installing each release, you\'ll be prompted with a summary of new features and fixes. You can disable these popup messages in plugin settings.\n\nI develop this plugin as a hobby, spending most of my free time doing this. If you\'d like to contribute to the on-going work, I have a simple membership scheme with Bronze, Silver and Gold tiers. Many of you have already bought me a coffee. THANK YOU! It really means a lot to me! If you find this plugin valuable, please consider supporting me.\n\n
\n',"1.7.25":`# Fixed\n- Tool buttons did not "stick" the first time you clicked them.\n- Tray (in tray mode) was higher when the help button was visible. The tray in tablet mode was too large and the help button was missing.\n- ExcalidrawAutomate ${String.fromCharCode(96)}getCM(color:TInput): ColorMaster;${String.fromCharCode(96)} function will now properly convert valid [css color names](https://www.w3schools.com/colors/colors_names.asp) to ColorMaster objects.\n- The downloaded script icons in the Excalidraw-Obsidian menu were not always correct\n- The obsidian mobile navigation bar at the bottom overlapped with Excalidraw\n\n# New\n- Created ExcalidrawAutomate hook for styling script when the canvas color changes. See sample [onCanvasColorChangeHook](https://gist.github.com/zsviczian/c7223c5b4af30d5c88a0cae05300305c) implementation following the link.\n\n
\n\n
\n\n${String.fromCharCode(96,96,96)}typescript\n /**\n * If set, this callback is triggered whenever the active canvas color changes\n */\n onCanvasColorChangeHook: (\n ea: ExcalidrawAutomate,\n view: ExcalidrawView, //the Excalidraw view \n color: string,\n ) => void = null;\n${String.fromCharCode(96,96,96)}\n`,"1.7.24":`\n# New and improved\n- **Updated Chinese translation**. Thanks, @tswwe!\n- **Improved update for TextElement links**: Until now, when you attached a link to a file to a TextElement using the "Create Link" command, this link did not get updated when the file was renamed or moved. Only links created as markdown links in the TextElement text were updated. Now both approaches work. Keep in mind however, that if you have a link in the TextElemenet text, it will override the link attached to the text element using the create link command. [#566](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/566)\n- **Transclusion filters markdown comments**: Text transclusion in a TextElement using the ${String.fromCharCode(96)}![[file]]${String.fromCharCode(96)} or ${String.fromCharCode(96)}![[file#section]]${String.fromCharCode(96)} format did not filter out markdown comments in the file placed ${String.fromCharCode(96)}%% inside a comment block %%${String.fromCharCode(96)}. Now they do.\n- **Remove leading '>' from trancluded quotes**: Added a new option in settings under **Links and Transclusion** to remove the leading ${String.fromCharCode(96)}> ${String.fromCharCode(96)} characters from quotes you transclude as a text element in your drawing. \n![image](https://user-images.githubusercontent.com/14358394/194755306-6e7bf5f3-4228-44a1-9363-c3241b34865e.png)\n- **Added support for ${String.fromCharCode(96)}webp${String.fromCharCode(96)}, ${String.fromCharCode(96)}bmp${String.fromCharCode(96)}, and ${String.fromCharCode(96)}ico${String.fromCharCode(96)} images**. This extends the already supported formats (${String.fromCharCode(96)}jpg${String.fromCharCode(96)}, ${String.fromCharCode(96)}gif${String.fromCharCode(96)}, ${String.fromCharCode(96)}png${String.fromCharCode(96)}, ${String.fromCharCode(96)}svg${String.fromCharCode(96)}).\n- **Added command palette action to reset images to original size**. Select a single image or embedded Excalidraw drawing on your canvas and choose ${String.fromCharCode(96)}Set selected image element size to 100% of original${String.fromCharCode(96)} from the command palette. This function is especially helpful when you combine atomic drawings on a single canvas, keeping each atomic piece in its original excalidraw file (i.e. the way I create [book on a page summaries](https://www.youtube.com/playlist?list=PL6mqgtMZ4NP1-mbCYc3T7mr-unmsIXpEG))\n- The ${String.fromCharCode(96)}async getOriginalImageSize(imageElement: ExcalidrawImageElement): Promise<{width: number; height: number}>${String.fromCharCode(96)} function is also avaiable via ExcalidrawAutomate. You may use this function to resize images to custom scales (e.g. 50% size, or to fit a certain bounding rectangle).\n\n# Fixed\n- **Upgraded perfect freehand package to resolve unwanted dots on end of lines** [#5727](https://github.com/excalidraw/excalidraw/pull/5727)\n- **Pinch zoom in View mode opens images** resulting in a very annoying behavior [#837](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/837)\n- **Embedded files** such as transcluded markdown documents and images **did not honor the Obsidian "New Link Format" setting** (shortest path, relative path, absolute path). [#829](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/829)\n- **Fixed error with dataview queries involving Excalidraw files**: In case you created a task on an Excalidraw canvas (${String.fromCharCode(96)}docA.md${String.fromCharCode(96)}) by typing ${String.fromCharCode(96)}- [ ] Task [[owner]] #tag${String.fromCharCode(96)}, and then you created a Dataview tasklist in another document (${String.fromCharCode(96)}docB.md${String.fromCharCode(96)}) such that the query criteria matched the task in ${String.fromCharCode(96)}docA.md${String.fromCharCode(96)}, then the task from ${String.fromCharCode(96)}docA.md${String.fromCharCode(96)} only appeared as an empty line when viewing ${String.fromCharCode(96)}docB.md${String.fromCharCode(96)}. If you now embedded ${String.fromCharCode(96)}docB.md${String.fromCharCode(96)} into a third markdown document (${String.fromCharCode(96)}docC.md${String.fromCharCode(96)}), then instead of the contents of ${String.fromCharCode(96)}docB.md${String.fromCharCode(96)} Obsidian rendered ${String.fromCharCode(96)}docA.md${String.fromCharCode(96)}. [#835](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/835)\n`,"1.7.22":"\n# Fixed\n- Text size in sticky notes increased when opening the drawing and when editing a sticky note [#824](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/824)\n- ToDo rendering did not work properly when there were parsed links in the text\n- Horizontal text alignment in sticky notes did not honor text alignment setting when resizing text. The text was always aligned center even when text alignment was left or right. [#5720](https://github.com/excalidraw/excalidraw/issues/5720)\n","1.7.21":`\n# New from Excalidraw.com\n- Image-mirroring in export preview and in exported SVG [#5700](https://github.com/excalidraw/excalidraw/pull/5700), [#811](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/811), [#617](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/617)\n\n# New \n- Ctrl+s will force-save your drawing and update all your transclusions\n- Added setting to parse ${String.fromCharCode(96)}- [ ] ${String.fromCharCode(96)} and ${String.fromCharCode(96)}- [x] ${String.fromCharCode(96)} todo items. Parsing is disabled by default. This feature can be found under "Links and Transclusions" in Plugin Settings. [#819](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/819)\n\n![image](https://user-images.githubusercontent.com/14358394/192145020-94bdd115-d24f-47c7-86fe-1417c53980c4.png)\n\n\n\n\n- Added new scripts to the script library\n - [Rename Image](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Rename%20Image.md)\n - [Text Arch](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Text%20Arch.md)\n\n\n\n\n# Fixed\n- Fixed toast message to display script name on press and hold on mobile and iPad.\n- Fixed save error when the embedded image file is not found (i.e. it was moved, renamed, or deleted)\n\n`,"1.7.20":'\n# New from Excalidraw.com\n- support segment midpoints in line editor [#5641](https://github.com/excalidraw/excalidraw/pull/5641)\n
\n\n
\n\n# Fixed\n- When editing a line or arrow and selecting a tool on the toolbar, the tool jumps back to the selection tool and you need to click again to select the tool [#5703](https://github.com/excalidraw/excalidraw/issues/5703)\n- Minor improvement of autosave, hopefully decreasing occasional lagging\n',"1.7.19":`\n# QoL improvements\n- Reintroduced the help button. I also added the help button to the Tray (in Tray Mode) and moved help to the canvas action panel (in non-TrayMode) because in Obsidian 0.16.0 the status bar hides the help icon.\n- Resetting the canvas with the "Reset Canvas" button will now preserve your custom color palette.\n- I updated the [Set background color of unlclosed line object](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Set%20background%20color%20of%20unclosed%20line%20object%20by%20adding%20a%20shadow%20clone.md) script. The script will now add background color to open freedraw objects as well. You no longer need to convert freedraw objects to lines before setting the background color. Check the Script Engine library to download the update.\n\n# New in Excalidraw Automate\n- I added the [ColorMaster](https://github.com/lbragile/ColorMaster#readme) library to ExcalidrawAutomate. You can get a CM object by calling ${String.fromCharCode(96)}ExcalidrawAutomate.getCM()${String.fromCharCode(96)}. Color master introduces many new ways to manipulate colors from script. I will publish scripts that make use of this new functionality including supporting videos on my YouTube channel in the coming days.\n`,"1.7.18":"\n## Critical fix\n- duplicating text elements, adding text elements from the library, and pasting excalidraw text elements results in a corrupted file!!","1.7.17":`\n## Fixed\n- Block transclusions sometimes got lost when switching between RAW mode and PREVIEW mode. [#769](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/769)\n\n## New\n- Added feature to disable "new Excalidraw version" notification [#770](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/770)\n- Added option to export both light- and dark-themed images at the same time. If this is enabled Excalidraw will create two files "filename.dark.png" and "filename.light.png" (or .svg depending on your other settings). See practical use case here: [Aadam's Notes](https://notes.aadam.dev/SBYNtPHqsTW9Ck1Kuoxsu/)\n- Added custom export padding for PNG images. Use the frontmatter key ${String.fromCharCode(96)}excalidraw-export-padding${String.fromCharCode(96)} to set the padding at a file level, or set padding for all your files in plugin settings. The new feature replaces the old "SVG Padding" option and applies to both SVG and PNG exports.\n\n## ExcalidrawAutomate\n- Added ${String.fromCharCode(96)}padding${String.fromCharCode(96)} to the createPNG function call.\n${String.fromCharCode(96,96,96)}typescript\nasync createPNG(\n templatePath?: string,\n scale: number = 1,\n exportSettings?: ExportSettings,\n loader?: EmbeddedFilesLoader,\n theme?: string,\n padding?: number,\n)\n${String.fromCharCode(96,96,96)}\n`,"1.7.16":"\n## Fixed\n- Excalidraw canvas is empty after saving the drawing and re-opening it at a later time. If you accidentally paste Excalidraw elements from the clipboard as the contents of a text element, in certain situations this can corrupt the Excalidraw file and as a result, Excalidraw will load an empty-looking drawing the next time. Changing to markdown view, these files can be repaired, however, to avoid accidental data loss, I have prevented pasting of excalidraw clipboard contents as text elements. [#768](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/768)\n\n## New\n- Add zoom % display in tray-mode [737](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/737)\n","1.7.15":"\n## Fixed\n- Canvas turns white when adding point for curved line [#760](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/760), [#738](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/738), [#5602](https://github.com/excalidraw/excalidraw/issues/5602)\n","1.7.14":`\n
\n\n
\n\n## New\n- The ${String.fromCharCode(96)}Copy markdown link for selected element to clipboard${String.fromCharCode(96)} action in the Obsidian menu is now more intelligent. If multiple elements are selected it will copy the Element Reference for the largest element. \n- When referencing an element in a link pointing to an Excalidraw file using the elementId or the section header as the block reference e.g. ${String.fromCharCode(96)}[[file#^elementID]]${String.fromCharCode(96)}, you can now add the ${String.fromCharCode(96)}group=${String.fromCharCode(96)} prefix, e.g. ${String.fromCharCode(96)}[[file#^group=elementID]]${String.fromCharCode(96)} and the ${String.fromCharCode(96)}area=${String.fromCharCode(96)} prefix, e.g. ${String.fromCharCode(96)}[[file#area=Section heading]]${String.fromCharCode(96)}.\n - If the ${String.fromCharCode(96)}group=${String.fromCharCode(96)} prefix is found, Excalidraw will select the group of elements in the same group as the element referenced by the elementID or heading section.\n - If the ${String.fromCharCode(96)}area=${String.fromCharCode(96)} prefix is found, excalidraw will insert a cutout of the image around the referenced element.\n - The ${String.fromCharCode(96)}area=${String.fromCharCode(96)} selector is not supported when embedding Excalidraw as PNG into your markdown documents.\n- I added "Toggle left-handed mode" to the Command Palette. The action is only visible if tray-mode is enabled. It will move the tray from left to right and back. [749](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/749)\n\n## Fixed\n- Zooming with CTRL+Wheel will no longer trigger hover preview.\n- When editing text in a text element CTRL+C will not launch the hover preview in case the mouse pointer is over the text element being edited. Hover preview will only show if the element is not in editing mode.\n- ExcalidrawAutomate did not reliably save changes. This caused issues for example in the "Add link to an existing file and open" script. [#747](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/747)\n- Create a new folder not working when clicking on a link in Erxcalidraw that points to a file that is in a folder that does not yet exist. [741](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/741)\n- Downgraded to React 17 due to various stability issues, including [#738](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/738) and [#747](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/747)\n\n## New in Excalidraw Automate\n- I added two new Excalidraw Automate functions\n${String.fromCharCode(96,96,96)}typescript\n/**\n * Gets the groupId for the group that contains all the elements, or null if such a group does not exist\n * @param elements \n * @returns null or the groupId\n*/\ngetCommonGroupForElements(elements: ExcalidrawElement[]): string;\n\n/**\n * Gets all the elements from elements[] that share one or more groupIds with element.\n * @param element \n * @param elements - typically all the non-deleted elements in the scene \n * @returns \n*/\ngetElementsInTheSameGroupWithElement(element: ExcalidrawElement, elements: ExcalidrawElement[]): ExcalidrawElement[];\n${String.fromCharCode(96,96,96)}`,"1.7.13":`\n## Fix from Excalidraw.com\n- Resize multiple elements from center ([#5560](https://github.com/excalidraw/excalidraw/pull/5560))\n\n## Obsidian 0.16.0 compatibility (getting ready, because 0.16.0 will be available to insiders soon)\n- ${String.fromCharCode(96)}Install or update Excalidraw Scripts${String.fromCharCode(96)} was only available via the page header button. Because the page header is hidden by default, the install script action is now available through the pane menu and through the command palette as well.\n- ${String.fromCharCode(96)}Open selected text as link${String.fromCharCode(96)} page header button is now also available via the pane menu\n- ${String.fromCharCode(96)}Open in Adjacent Pane${String.fromCharCode(96)} and ${String.fromCharCode(96)}Open in Main Workspace${String.fromCharCode(96)} Excalidraw plugin settings is fixed\n`,"1.7.12":`\n## New from Excalidraw.com:\n- Showing a mid-point for lines and arrows. By touching the mid-point you can easily add an additional point to a two-point line. This is especially helpful when working on a tablet with touch input. ([#5534](https://github.com/excalidraw/excalidraw/pull/5534))\n- Lock angle when editing a line or an arrow with SHIFT pressed. Pressing SHIFT will restrict the edited point to snap to certain discrete angles. ([#5527](https://github.com/excalidraw/excalidraw/pull/5527))\n\n## Fixed:\n- Clicking Obsidian search-results pointing to an element on the canvas works again ([#734](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/734))\n- The feature to allow resizing and rotation of lines and arrows consisting of 3 or more points by showing the bounding box when selected is back ([#5554](https://github.com/excalidraw/excalidraw/pull/5554))\n\n## New\n- You can now use the following frontmatter key to allow/prevent automatic export of PNG/SVG images at a file level. This frontmatter will override export settings for the given file. ([#732](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/732)\n${String.fromCharCode(96)}excalidraw-autoexport: none|both|svg|png${String.fromCharCode(96)}\n`,"1.7.11":`\n## Fixed\n- Markdown files embed into the Excalidraw canvas crashed when the embedded markdown file included a nested Markdown embed with a block reference (i.e. the markdown document you are dropping into Excalidraw included a quote you referenced from another file using a ${String.fromCharCode(96)}[[other-file#^blockref]]${String.fromCharCode(96)} block or section reference. \n- Horizontal flipping of arrows and lines broke in 1.7.10. ([#726](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/726))\n`,"1.7.10":'\n## New from Excalidraw.com\n- Improved handling of arrows and lines. ([#5501](https://github.com/excalidraw/excalidraw/pull/5501))\n\n## Fixed\n- When opening a document in view-mode or zen-mode the panel buttons no longer flash up for a moment before switching to the desired mode. ([#479](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/479))\n- The "blinding white screen" no longer flashes up while loading the scene if the scene is dark ([#241](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/241))\n\n## Under the hood\n- Finalized migration to React 18 (no longer showing an error about React 17 compatibility mode in console log)\n',"1.7.9":'\n## New features and fixes from Excalidraw.com:\n- The right-click context menu is now scrollable on smaller screens ([#4030](https://github.com/excalidraw/excalidraw/pull/4030), [#5520](https://github.com/excalidraw/excalidraw/pull/5520))\n- Holding down the shift key while rotating an object will rotate it at discrete angles. Rotation is continuous without the SHIFT key. ([#5500](https://github.com/excalidraw/excalidraw/pull/5500))\n- Improved cursor alignment when resizing an element proportionally (maintain aspect ratio) by holding SHIFT during resizing. ([#5513](https://github.com/excalidraw/excalidraw/pull/5515))\n- Improved freedraw performance during editing (now has proper canvas caching), and no more blurry freedraw shapes when exporting on a higher scale. ([#5481](https://github.com/excalidraw/excalidraw/pull/5481))\n- Sidebar stencil library now correctly scrolls vertically ([#5459](https://github.com/excalidraw/excalidraw/pull/5459))\n\n## New in Obsidian:\n- Fullscreen mode on iPad. When there are multiple work panes open, clicking the fullscreen action in the Excalidraw Obsidian menu will hide the other work panes and make Excalidraw fullscreen.\n\n## Fixes in Obsidian:\n- Drag&Drop an image from a web browser into Excalidraw ([#697](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/697))\n- On Obsidian Mobile 1.3.0, when the drawing included an embedded image, switching from markdown-view to Excalidraw-view caused the drawing to disappear (it had to be recovered from backup or synchronization history). ([#715](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/715))\n- When working on a mobile device (tablet and phone) and using two work panes (one for drawing and the other for editing a markdown document) if you switched focus from the drawing to the markdown document auto-zoom changed the zoom level of the drawing. ([#723](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/723)), ([#705](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/705))\n- Actions on the Command Palette to create a new drawing in a new pane or reusing an existing adjacent pane; on the main workspace or in the Hover Editor or Popout window, were not working well. See related settings in plugin settings under "Links and transclusions" ([#718](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/718))\n- There was a problem with links with section references when the header contained space characters ([#704](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/704))\n- I added additional controls to avoid the fantom warnings about a problem with saving the Excalidraw file. Hopefully, from now on, you\'ll see this error less frequently ([#701](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/701))\n',"1.7.8":'\n# Optimized for Obsidian 0.15.5\n- I reworked how the plugin treats the "More options" menu because the old approach was interfering with Obsidian\n- Did thorough testing of handling of work panes on link click. There are two settings (open in the adjacent pane, and open in the main workspace), and three broad scenarios (Excalidraw in a work pane in the main Obsidian window, Excalidraw in a hover editor, and Excalidraw in an Obsidian popout window). All should work correctly now.\n',"1.7.7":`\n# New\n- Optimized for Obsidian 0.15.4\n- On a desktop, you can now use the META key when clicking on a link and it will open the link in a new popout Window.\n- ([#685](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/685)) Markdown embeds will now display correctly in Excalidraw even if they include photos and recursive markdown embeds. Unfortunately due to the limitations of Safari the inversion of colors on iPads in dark mode will not work well.\nSee an 18 second long demo video [here](https://user-images.githubusercontent.com/14358394/177213263-2a7ef1ca-0614-4190-8955-e830ca6b424b.mp4).\n\n\n# Fixed\n- ([#683](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/683)) Copy/Paste Markdown embeds to create another instance of the embed, thus you can reference different sections of the document in your drawing (something I broke in 1.7.6)\n- ([#684](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/684)) Transclusions incorrectly did not pick up subsections of a section. To understand this change, imagine for example the following document:\n${String.fromCharCode(96,96,96)}markdown\n# A\nabc\n# B\nxyz\n## b1\n123\n## b2\n456\n# C\n${String.fromCharCode(96,96,96)}\nWhen you transclude ${String.fromCharCode(96)}![[document#B]]${String.fromCharCode(96)} you expect the following result\n${String.fromCharCode(96,96,96)}markdown\nB\nxyz\n\nb1\n123\n\nb2\n456\n${String.fromCharCode(96,96,96)}\nUntil this fix you only got\n${String.fromCharCode(96,96,96)}markdown\nB\nxyz\n${String.fromCharCode(96,96,96)}`,"1.7.6":`\nThis release is the same as 1.7.5 except for two minor fixes\n- a fix for ExcaliBrain, becuase 1.7.5 broke ExcaliBrain.\n- I left out the release note from 1.7.5.\n\n# New\n- Deployed sidebar for libraries panel from excalidraw.com ([#5274](https://github.com/excalidraw/excalidraw/pull/5274)). You can dock the library to the right side depending on the screen real estate available (i.e. does not work on mobiles).\n\n# Fixed\n- When copying 2 identical images from one drawing to another, the second image got corrupted in the process ([#672]https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/672)).\n- When making a copy of an equation in a drawing and then without first closing/opening the file, immediately copying the new equation to another drawing, the equation did not get displayed until the file was closed and reopened.\n- Copying a markdown embed from one drawing to another, in the destination the markdown embed appeared without the section/block reference and without the width & height (i.e. these settings had to be done again)\n- Improved the parsing of section references in embeds. When you had ${String.fromCharCode(96)}&${String.fromCharCode(96)} in the section name in a markdown file, when embedding that markdown document into Excalidraw, the section reference did not work as expected ([#681 ](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/681)).\n- Improved the logic for autosave to better detect changes to the document, and to reduce too frequent export of ${String.fromCharCode(96)}.png${String.fromCharCode(96)} and/or ${String.fromCharCode(96)}.svg${String.fromCharCode(96)} files, when auto export is enabled in plugin settings.\n`,"1.7.5":`\n# New\n- Deployed sidebar for libraries panel from excalidraw.com ([#5274](https://github.com/excalidraw/excalidraw/pull/5274)). You can dock the library to the right side depending on the screen real estate available (i.e. does not work on mobiles).\n\n# Fixed\n- When copying 2 identical images from one drawing to another, the second image got corrupted in the process ([#672]https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/672)).\n- When making a copy of an equation in a drawing and then without first closing/opening the file, immediately copying the new equation to another drawing, the equation did not get displayed until the file was closed and reopened.\n- Copying a markdown embed from one drawing to another, in the destination the markdown embed appeared without the section/block reference and without the width & height (i.e. these settings had to be done again)\n- Improved the parsing of section references in embeds. When you had ${String.fromCharCode(96)}&${String.fromCharCode(96)} in the section name in a markdown file, when embedding that markdown document into Excalidraw, the section reference did not work as expected ([#681 ](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/681)).\n- Improved the logic for autosave to better detect changes to the document, and to reduce too frequent export of ${String.fromCharCode(96)}.png${String.fromCharCode(96)} and/or ${String.fromCharCode(96)}.svg${String.fromCharCode(96)} files, when auto export is enabled in plugin settings.\n`,"1.7.4":"\n- Obsidian 0.15.3 support dragging and dropping work panes between Obsidian windows.\n- Addressed Obsidian changes affecting the more-options menu.\n- Addressed incompatibility with Obsidian Mobile 1.2.2.\n","1.7.3":"\nObsidian 0.15.3 support for dragging and dropping work panes between Obsidian windows.\n","1.7.2":"\nDue to some of the changes to the code, I highly recommend restarting Obsidian after installing this update to Excalidraw.\n\n# Fixed\n- Stability improvements\n- Opening links in new panes and creating new drawings from the file explorer works properly again\n\n# New feature\n- Two new command palette actions:\n - Create a new drawing - IN A POPOUT WINDOW\n - Create a new drawing - IN A POPOUT WINDOW - and embed into active document\n![image|600](https://user-images.githubusercontent.com/14358394/175137800-88789f5d-f8e8-4371-a356-84f443aa6a50.png)\n- Added setting to prefer opening the link in the popout window or in the main workspace.\n![image|800](https://user-images.githubusercontent.com/14358394/175076326-1c8eee53-e512-4025-aedb-07881a732c69.png)\n","1.7.1":"\nSupport for Obsidian 0.15.0 popout windows. While there are no new features (apart from the popout window support) under the hood there were some major changes required to make this happen.\n","1.7.0":"\nThis is the first test version of Excalidraw Obsidian supporting Obsidian 0.15.0 popout windows. The current technical solution is not really sustainable, it's more of a working concept. I don't expect any real big issues with this version - on the contrary, this works much better with Obsidian 0.15.0 popout windows, but some of the features aren't working as expected in the Obsidian popouts yet. Also as a consequence of Obsidian 0.15.0 compatibility, multiple hover previews are no longer supported.\n","1.6.34":"\nWith 0.15.1 Obsidian is implementing some exciting, but significant changes to how windows are managed. I need to make some heavy/invasive changes to Excalidraw to adapt. The next version of the Excalidraw Plugin will require Obsidian 0.15.1 or newer. If you are not signed up for Obsidian Insider Builds, you will need to wait few weeks until the new Obsidian version will be made public.\n\n# Fixed\n- Error saving when the attachments folder exists but with a different letter case (i.e. ATTACHMENTS instead of attachments) [658](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/658). I added more error tolerance. As a general rule, however, I recommend treating file paths as case-sensitive as some platforms like iOS or LINUX have case-sensitive filenames, and synchronizing your Vault to these platforms will cause you headaches in the future.\n- Text detached from the container if you immediately clicked the text-align buttons on the properties pane while still editing the text in the container for the very first time. [#657](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/657).\n- Can't add text to the second container if the first container has text and the second container is centered around the first one. [#5300](https://github.com/excalidraw/excalidraw/issues/5300)\n","1.6.33":`\n# Fixed\n- Under some special circumstances when you embedded a drawing (guest) into another drawing (host), the host did not update when you modified the guest, until you closed Excalidraw completely and reopened the host. [#637](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/637)\n\n# New\n- ExcalidrawAutomate ${String.fromCharCode(96)}addLabelToLine${String.fromCharCode(96)} adds a text label to a line or arrow. Currently this function only works with simple straight 2-point (start & end) lines.\n${String.fromCharCode(96,96,96)}typescript\naddLabelToLine(lineId: string, label: string): string\n${String.fromCharCode(96,96,96)}\n- ExcalidrawAutomate ${String.fromCharCode(96)}ConnectObjects${String.fromCharCode(96)} now returns the ID of the arrow that was created.`,"1.6.32":"\n## Fixed\n- Filenames of embedded images and markdown documents did not get updated if the drawing was open in a work-pane while you changed the filename of the embedded file (image or markdown document) [632](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/632).\n- When you created a new text element and immediately dragged it, sometimes autosave interrupted the drag action and Excalidraw dropped the element you were dragging [630](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/630)\n- In some edge cases when you had the drawing open on your desktop and you also opened the same image on your tablet, Sync seemed to work in the background but the changes did not appear on the desktop until you closed and opened the drawing again. [629](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/629)\n- LaTeX support: Excalidraw must download a javascript library from one of the hosting sites for MathJax tex2svg. It seems that some people do not have access to the URL recommended in the first place by [MathJax](https://docs.mathjax.org/en/latest/web/start.html). If LaTeX formulas do not render correctly in Excalidraw, try changing the source server under Compatibility Settings in Excalidraw Plugin Settings. [628](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/628)","1.6.31":"\nMinor update:\n\n## Fixes\n- Color picker hotkeys were not working. They are working again [627](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/627)\n- I updated MathJax (LaTeX) to the newest (3.2.1) release.","1.6.30":"\n## Fixed\n- The load stencil library button stopped working after 1.6.29 due to an error in the core Excalidraw package. It is now fixed. [#625](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/625).\n- On iPad (probably other Obsidian mobile devices as well) after opening the command palette the positioning of the pointer was off. From now on, the pointer is automatically re-calibrated every 5 seconds.\n- I improved shared-vault collaboration sync. If the open file has not been saved for the last 5 minutes (i.e. you are not working on the drawing actively), and a newer remote version of the file is received via sync, then the remote file will simply overwrite the local file (i.e. the behavior of Excalidraw Obsidian prior to implementing Shared (Multiplayer) Vault Synchronization support in 1.6.29). This solution will support active collaboration when parties participating are actively editing the drawing, but also caters to the scenario when you open a drawing on one device (e.g. your desktop) and once you are finished editing you do not close the drawing, but simply put your PC to sleep... then later you edit the same drawing on your tablet. When you turn your desktop PC on the next time, the changes you've made on your tablet will be synchronized by Obsidian sync. In this case the changes from your tablet should be honored. If you have not edited the open drawing for more then 5 minutes (like in this scenario) there is no value in running the file comparison between the local version and the received one. This approach reduces the probability of running into sync conflicts.","1.6.29":"\n## New\n- I implemented sync support inspired by the new [Obsidian Multiplayer Sync](https://youtu.be/ZyCPhbd51eo) feature (available in insider build v0.14.10). \n - To manage expectations, this is not real-time collaboration like on Excalidraw.com. Synchronization is delayed by the frequency of the autosave timer (every 10 secs) and the speed of Obsidian sync. Also if a file has conflicting versions, Obsidian sync may delay the delivery of the changed file.\n - Even if you are not using multiplayer Obsidian Vaults, you may benefit from the improved synchronization, for example when using the freedraw tool on your tablet or phone, and in parallel editing the same drawing (e.g. typing text) on your desktop. I frequently do this in a mind-mapping scenario.\n - If the same Excalidraw sketch is open on multiple devices then Excalidraw will try to merge changes into the open drawing, thus parallel modifications on different devices are possible. If the same element is edited by multiple parties at the same time, then the foreign (received) version will be honored and the local changes lost. \n\n## Fixed:\n- Default embed width setting stopped working. [#622](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/622)\n- The link tooltip gets stuck on screen after Excalidraw closes [#621](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/621)\n- Layout error when using the Workspaces core plugin. [#28](https://github.com/zsviczian/excalibrain/issues/28)","1.6.28":'\n## New\n- When dropping a link from a DataView query into Excalidraw the link will honor your "New link format" preferences in Obsidian. It will add the "shortest path when possible", if that is your setting. If the link includes a block or section reference, then the link will automatically include an alias, such that only the filename is displayed (shortest path possible allowing) [#610](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/610)\n- If Excalidraw is in a Hover Editor and you open a link in another pane by CTRL+SHIFT+Click then the new page will open in the main workspace, and not in a split pane in the hover editor.\n\n## Fixed\n- New text elements get de-selected after auto-save [#609](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/609)\n- Update opacity of bound text when the opacity of the container is updated [#5142](https://github.com/excalidraw/excalidraw/pull/5142)\n- ExcalidrawAutomate: openFileInNewOrAdjacentLeaf() function. This also caused an error when clicking a link in Excalidraw in a hover window, when there were no leaves in the main workspace view.',"1.6.27":"\n## New Features\n- While these new features are benefitial for all Excalidraw Automation projects, the current changes are mainly in support of the [ExcaliBrain](https://youtu.be/O2s-h5VKCas) integration. See detailed [Release Notes](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.27) on GitHub.\n","1.6.26":`\n## Fixed\n- Dragging multiple files onto the canvas will now correctly [#589](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/589)\n - add multiple links\n - or if you hold the CTRL/(SHIFT on Mac) while dropping the files, then adding multiple images\n- Dropped images and links were not selectable with the selection tool until the file was saved. This is now fixed.\n- Display the linked block/section on link-hover instead of the full page. [#597](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/597)\n- Hover preview without CTRL/CMD works again. Requires configuration in plugin settings. [#595](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/595)\n- If you embed the same markdown document into a drawing multiple times, you can now display different sections of the document in each embedded object. [#601](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/601).\n- If you make a copy of an equation and edit this copy, the original equation will remain unchanged [#593](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/593)\n\n## New Features\n- When you drag files from Dataview-results onto the canvas the obsidian:// urls will be converted into wiki links.[#599](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/599)\n- I added one more frontmatter key: ${String.fromCharCode(96)}excalidraw-linkbutton-opacity: ${String.fromCharCode(96)} This sets the opacity of the blue link-button in the top right corner of the element, overriding the respective setting in plugin settings. Valid values are numbers between 0 and 1, where 0 means the button is fully transparent.\n\n## New Excalidraw Automate Features\n- As part of building the new [ExcaliBrain](https://youtu.be/O2s-h5VKCas) plugin, I've added a number of integration features. See the GitHub [Release Notes](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.26) for details.\n`,"1.6.25":`\n## Fixed\n- Pinch-zoom in view mode was broken ([#5001](https://github.com/excalidraw/excalidraw/pull/5001))\n- The add image button on iPad was not working ([#5038](https://github.com/excalidraw/excalidraw/pull/5038) & [#584](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/584))\n\n## New Features\n- If Excalidraw is open in a [hover-editor](https://github.com/nothingislost/obsidian-hover-editor) when opening a link in a new pane Excalidraw will now open the link in the main workspace and not by splitting the view inside the hover-editor. \n- Excalidraw ScriptEngine settings\n - Script Engine settings now render HTML descriptions\n - If the ${String.fromCharCode(96)}height${String.fromCharCode(96)} property of a text setting is set, the corresponding text input field will be rendered as a textArea with the specified height.\n`,"1.6.24":"\n## Fixed\n- Link fixes:\n - Shift+Click on an element link (i.e. a link attached to a rectangle, ellipse, etc) did not open the link in a new leaf.\n - Clicking a link and opening it in a new leaf will now make the new leaf active and focused after the click.\n- Pointer calibration:\n - Opening an Excalidraw drawing with the [hover-editor](https://github.com/nothingislost/obsidian-hover-editor) and dragging the editor to another location corrupted the calibration of the pointer in Excalidraw. Similarly, when rearranging workspace panes by dragging, Excalidraw lost pointer calibration.\n\n## New Features\n### From Excalidraw.com\n- Element locking: The lock and unlock action is in the context menu.\n\n### Plugin\n- Any element that has a link, ctrl/cmd+clicking anywhere on the object will trigger the link action. You no longer have to go to the link icon. ([#541](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/541#issuecomment-1075578365))\n","1.6.23":`\n## Fixed:\n- I have received some user feedback about cases where the text separated from the sticky note. This version comes with a cleanup algorithm that will try to automatically resolve these issues.\n- Autosave did not notice changes in a very obscure case, when you opened a drawing, resized an element, and without deselecting the element you immediately closed the drawing. ([565](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/565))\n- CTRL+Enter to create a task did not work in hover-editor when opened from Excalidraw. Now it does! Thanks @pjeby! ([567](https://github.com/zsviczian/obsidian-excalidraw-plugin/pull/567))\n\n## New Features\n- If you have the [Obsidian-Latex](https://github.com/xldenis/obsidian-latex) plugin installed, from now Excalidraw will also process the ${String.fromCharCode(96)}preambles.sty${String.fromCharCode(96)} file. ( [563](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/563))\n- I added a new setting ${String.fromCharCode(96)}Embed & Export >> If found, use the already exported image for preview${String.fromCharCode(96)}. This setting works in conjunction with the ${String.fromCharCode(96)}Auto-export SVG/PNG${String.fromCharCode(96)} settings. If an exported image that matches the file name of the drawing is available, use that image instead of generating a preview image on the fly. This will result in faster previews especially when you have many embedded objects in the drawing, however, it may happen that your latest changes are not displayed and that the image will not automatically match your Obsidian theme in case you have changed the Obsidian theme since the export was created. This setting only applies to embedding images into markdown documents. For a number of reasons, the same approach cannot be used to expedite the loading of drawings with many embedded objects. See release notes for a [demo video](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.22).\n`,"1.6.22":'\n## Fixed:\n- "Create a new drawing - IN THE CURRENT ACTIVE PANE - and embed into active document" did not work as intended when an Excalidraw pane was already open. [#559](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/559)\n- [Obsidian-hover-editor](https://github.com/nothingislost/obsidian-hover-editor) related improvements [#555](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/555):\n - hovering triggered many hover preview windows in quick succession, and in some cases raised dozens of errors in the Developer Console\n - hover-editors were not visible in Excalidraw fullscreen mode\n\n## Minor new features:\n- Activating the eraser with key "e" will toggle the active tool and back. So for example if you are drawing a freedraw shape, you can press "e" to delete a few strokes, then press "e" again to continue drawing. On desktop PCs many styluses allow you to configure the pen button to trigger keypress "e". \n- New setting to enable penMode by default.\n- I increased the file size limit for images you paste into Excalidraw from 2MB to 20MB. You should however avoid very large images as they will impact the overall performance of the canvas. ([#557](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/557))\n',"1.6.21":`\nBefore I move on to implementing further features, I spent this week with further stabilizing and debugging the plugin. Hopefully this will result in a smoother, better experince for you all.\n\n## Fixed\n- Links in drawings (e.g. text elements or embedded images) were sometimes not updating when the source file was moved or renamed in your Vault. The issue happend when you had the drawing and the linked file open in panes next to each other. This has led to broken links. ([#546](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/546))\n- To remove complexity and potential error, I have hidden the autosave settings. From now, autosave is now always enabled. Excalidraw will attempt to save your drawing every 10 seconds, or if you are actively engaged in drawing a shape at that very moment (e.g. you are busy with a freedraw line), then autosave will save the drawing at the earliest next opportunity. I imlemented further triggers to save the drawing when there are changes in the drawing and you click outside the drawing canvas. There was a rare error involving text elements, that when happened blocked saving of the file. This error is now properly handeled. Also from now, you will receive a warning message if for any reason save encountered problems. \n- If you have two heading sections in your drawing, e.g. ${String.fromCharCode(96)}# Section abc${String.fromCharCode(96)} and ${String.fromCharCode(96)}# Section abc def${String.fromCharCode(96)}, then referencing ${String.fromCharCode(96)}[[#Section abc]]${String.fromCharCode(96)} in a link will highlight both text elements when clicking the link. These section references now work as expected. ([#530](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/530))`,"1.6.20":`\n
\n\n
\n\n## Fixed\n- ${String.fromCharCode(96)}ExcalidrawAutomate.create()${String.fromCharCode(96)} threw an error [539](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/539)\n\n## New Features\n### From excalidraw.com\n- Bind/unbind text to/from container [4935](https://github.com/excalidraw/excalidraw/pull/4935)\n\n### Plugin\nFrontmatter tags to customize image export at a file level [519](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/519). If these keys are present they will override the default excalidraw embed and export settings.\n- ${String.fromCharCode(96)}excalidraw-export-transparent: true${String.fromCharCode(96)}\n - true == Transparent / false == with background. \n- ${String.fromCharCode(96)}excalidraw-export-dark${String.fromCharCode(96)}\n - true == Dark mode / false == light mode.\n- ${String.fromCharCode(96)}excalidraw-export-svgpadding${String.fromCharCode(96)}\n - This only affects export to SVG. Specify the export padding for the image\n- ${String.fromCharCode(96)}excalidraw-export-pngscale${String.fromCharCode(96)}\n - This only affects export to PNG. Specify the export scale for the image. The typical range is between 0.5 and 5, but you can experiment with other values as well.\n`,"1.6.19":"\nThis is a minor update fixing left-handed mode on iOS, and deploying improvements to the new Excalidraw Eraser.\n","1.6.18":`\n
\n\n
\n\n## Fixed\n- Modifying properties of a text element in tray mode. [496](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/496)\n- Friendly page aliases with iframely should work more reliably now.\n- I further improved resilience of loading from a damaged Excalidraw.md file.\n\n## New Features\n### From excalidraw.com\n- Added Eraser [4887](https://github.com/excalidraw/excalidraw/pull/4887)\n\n### Plugin\n- New setting for default transcluded-text line-wrap length. This is the default value for "wrapAt" in ${String.fromCharCode(96)}![[file#^block]]{wrapAt}${String.fromCharCode(96)}. Wrapping text using this feature will insert linebreaks in the transcluded text. An alternative approach is to transclude text inside sticky notes, in which case Excalidraw will automatically take care of text wrapping depending on the sticky note's width. [228](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/228)\n- New command palette action to toggle fullscreen mode, so you can assign a hotkey.\n- I added basic support for left-handed users. Enable it in plugin settings under the "Display" section. Currently, only affects the position of the tray in tray-mode. [510](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/510)\n- More flexible filename settings. ⚠ Due to the change, current settings may behave slightly differently compared to before. ⚠ [470](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/470)\n`,"1.6.17":`\n
\n\n
\n\n## Fixed\n- Freedraw shape's background color was missing in the SVG export. [#443](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/443)\n- In rare cases, when you only changed the background color of the drawing or edited the dimensions of an embedded markdown document, or changed an existing LaTeX formula, and then moved to another document in the vault, these changes did not get saved. [#503](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/503)\n- I resolved an Excalidraw Automate glitch with word wrapping in containers. EA generated containers with fixed line breaks. The same error also affected the conversion of drawings from the "legacy" Excalidraw.com file format.\n- When you allow/disable autosave in settings, this change will immediately take effect for all open Excalidraw workspace leaves. Until now autosave was activated only after you closed and reopened the Excalidraw view. [#502](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/502)\n- When you create a text element containing a ${String.fromCharCode(96,96,96)}[[markdown link]]${String.fromCharCode(96,96,96)} in raw mode, the new link was parsed nonetheless, and sometimes the link disappeared, leaving only the parsed text without the actual link. Creating links in raw-mode now works correctly.\n\n## New Features\n- The most recent 5 custom colors from the canvas are now added as color options to the element stroke and element background palette. [#4843](https://github.com/excalidraw/excalidraw/pull/4843)\n- Vertical text alignment for text in sticky notes [#4852](https://github.com/excalidraw/excalidraw/pull/4852)\n- Markdown embeds into Excalidraw now receive default styling, including that of tables, blockquotes, and code blocks. I also added a new setting and corresponding frontmatter-key to set the border-color for the embedded markdown document. You can override plugin settings at the document level by adding ${String.fromCharCode(96,96,96)}excalidraw-border-color: steelblue${String.fromCharCode(96,96,96)} to the markdown document you want to embed into your drawing. Valid values are css-color-name|#HEXcolor|any-other-html-standard-format.\n- In Obsidian search, when the text you were searching for is found in an Excalidraw document, clicking the link in search-results will open the drawing with the matching text element selected and zoomed.\n- Excalidraw now supports linking to text elements on the canvas and linking to non-text objects. \n1) You can reference text headings just the same as markdown headings in a document\ni.e. you have a text element that includes a valid markdown heading:\n${String.fromCharCode(96,96,96)}markdown\n# My Heading\ndetails...\n${String.fromCharCode(96,96,96)}\nor \n${String.fromCharCode(96,96,96)}markdown\ntext element text\n# my reference\n${String.fromCharCode(96,96,96)}\nYou can reference these like this respectively: ${String.fromCharCode(96,96,96)}[[#My Heading|display alias]]${String.fromCharCode(96,96,96)} and ${String.fromCharCode(96,96,96)}[[#my reference|alias]]${String.fromCharCode(96,96,96)}\n\n![image](https://user-images.githubusercontent.com/14358394/156890231-5a23bcb3-40a4-4ad7-b366-74c328620159.png)\n\n2) You can also reference element ids similar to block references\n- Links take this form ${String.fromCharCode(96,96,96)}[[#^elementID|alias]]${String.fromCharCode(96,96,96)}\n- Linking is supported by a new action on the Obsidian Tools Panel\n![image](https://user-images.githubusercontent.com/14358394/156894011-6442c3d6-aaff-43a8-bd77-513e450484ba.png)\n\n[Release Notes on GitHub](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.17)\n`,"1.6.16":'\n
\n\n
\n\n\n## Fixed\n- CMD+Drag from the Obsidian File Manager does not work on Mac. You can now use SHIFT+Drag to embed an image or markdown document into a scene. ([#468](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/468))\n- Excalidraw Compressed JSON is now cut to smaller chunks (64 characters per paragraph, instead of the earlier 1024 characters). This should address search performance issues. ([#484](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/484))\n\n## New Features\n- I added the Obsidian Tools Panel\n - Click the Obsidian button to access the panel.\n - The tools panel contains key plugin commands and user / downloaded Excalidraw scripts.\n - Drag the panel with the handle at the top. Single click on the top to collapse the panel.\n - On Mobile press and hold the drag handle before dragging, to avoid activating the Obsidian slide in menus.\n - On Mobile long touch individual buttons on the panel to access tooltips.\n - Reinstall Excalidraw scripts to get the icons.\n- If you hold down SHIFT while resizing a sticky note, the text size will scale instead of text wrapping. ([Excalidraw tweet](https://twitter.com/aakansha1216/status/1496116528890417155?s=20&t=taXjA6I9Nd0T-C0wYBsG5g))\n- SVG export now includes links ([#4791](https://github.com/excalidraw/excalidraw/pull/4791))\n- Added full screen mode for Obsidian Mobile\n- Release notes\n - disable popup in settings\n - access release notes via the command palette, or the button on the tools panel\n\n[Release Notes on GitHub](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.16)\n\n[![support-membership](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/support-tiers.jpg)](https://ko-fi.com/zsolt)\n'};class ReleaseNotes extends obsidian.Modal{constructor(A,e,t){super(A),this.plugin=e,this.version=t}onOpen(){var A;this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText(`Welcome to Excalidraw ${null!==(A=this.version)&&void 0!==A?A:""}`),this.createForm()}async onClose(){this.contentEl.empty(),await this.plugin.loadSettings(),this.plugin.settings.previousRelease=PLUGIN_VERSION,await this.plugin.saveSettings()}async createForm(){let A=this.plugin.settings.previousRelease;A=this.version===A?"0.0.0":A;const e=this.version?Object.keys(RELEASE_NOTES).filter((e=>"Intro"===e||isVersionNewerThanOther(e,A))).map((A=>`# ${A}\n${RELEASE_NOTES[A]}`)).slice(0,10).join("\n\n---\n"):FIRST_RUN;await obsidian.MarkdownRenderer.renderMarkdown(e,this.contentEl,"",this.plugin),this.contentEl.createEl("p",{text:""},(A=>{A.style.textAlign="right",A.createEl("button",{text:"Close"}).onclick=()=>this.close()}))}}const TOOLS_PANEL_WIDTH=228;class ToolsPanel extends React__namespace.Component{constructor(A){super(A),this.pos1=0,this.pos2=0,this.pos3=0,this.pos4=0,this.penDownX=0,this.penDownY=0,this.previousWidth=0,this.previousHeight=0,this.onRightEdge=!1,this.onBottomEdge=!1;const e=A.view.plugin.getPackage(A.view.ownerWindow).react;this.containerRef=e.createRef(),this.state={visible:A.visible,top:50,left:200,theme:"dark",excalidrawViewMode:!1,minimized:!1,isFullscreen:!1,isPreviewMode:!0,scriptIconMap:{}}}updateScriptIconMap(A){this.setState((()=>({scriptIconMap:A})))}setPreviewMode(A){this.setState((()=>({isPreviewMode:A})))}setFullscreen(A){this.setState((()=>({isFullscreen:A})))}setExcalidrawViewMode(A){this.setState((()=>({excalidrawViewMode:A})))}toggleVisibility(A){this.setTopCenter(A),this.setState((A=>({visible:!A.visible})))}setTheme(A){this.setState((e=>({theme:A})))}setTopCenter(A){this.setState((()=>({left:(this.containerRef.current.clientWidth-228-(A?0:232))/2+this.containerRef.current.parentElement.offsetLeft+(A?0:232),top:64+this.containerRef.current.parentElement.offsetTop})))}updatePosition(A=0,e=0){this.setState((()=>{const{offsetTop:t,offsetLeft:i,clientWidth:n,clientHeight:a}=this.containerRef.current.firstElementChild,r=t-A,s=i-e,{clientWidth:o,clientHeight:l,offsetTop:c,offsetLeft:d}=this.containerRef.current.parentElement;return this.previousHeight=l,this.previousWidth=o,this.onBottomEdge=r>=l-a+c,this.onRightEdge=s>=o-n+d,{top:r{A.preventDefault(),Math.abs(this.penDownX-this.pos3)>5||Math.abs(this.penDownY-this.pos4)>5||this.setState((A=>({minimized:!A.minimized})))},onPointerDown:A=>{const e=A=>{A.preventDefault(),this.pos1=this.pos3-A.clientX,this.pos2=this.pos4-A.clientY,this.pos3=A.clientX,this.pos4=A.clientY,this.updatePosition(this.pos2,this.pos1)},t=()=>{var A,i;null===(A=this.props.view.ownerDocument)||void 0===A||A.removeEventListener("pointerup",t),null===(i=this.props.view.ownerDocument)||void 0===i||i.removeEventListener("pointermove",e)};A.preventDefault(),this.penDownX=this.pos3=A.clientX,this.penDownY=this.pos4=A.clientY,this.props.view.ownerDocument.addEventListener("pointerup",t),this.props.view.ownerDocument.addEventListener("pointermove",e)}},React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 228 26"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M40,7 h148 M40,13 h148 M40,19 h148"}))),React__namespace.createElement("div",{className:"Island App-menu__left scrollbar",style:{maxHeight:"350px",backgroundColor:"transparent","--padding":2,display:this.state.minimized?"none":"block"}},React__namespace.createElement("div",{className:"panelColumn"},React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Utility actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"search",title:t$d("SEARCH"),action:()=>{search(this.props.view)},icon:ICONS.search,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"release-notes",title:t$d("READ_RELEASE_NOTES"),action:()=>{new ReleaseNotes(this.props.view.app,this.props.view.plugin,PLUGIN_VERSION).open()},icon:ICONS.releaseNotes,view:this.props.view}),null===this.state.isPreviewMode?React__namespace.createElement(ActionButton,{key:"convert",title:t$d("CONVERT_FILE"),action:()=>{this.props.view.convertExcalidrawToMD()},icon:ICONS.convertFile,view:this.props.view}):React__namespace.createElement(ActionButton,{key:"viewmode",title:this.state.isPreviewMode?t$d("PARSED"):t$d("RAW"),action:()=>{this.state.isPreviewMode?this.props.view.changeTextMode(TextMode.raw):this.props.view.changeTextMode(TextMode.parsed)},icon:this.state.isPreviewMode?ICONS.rawMode:ICONS.parsedMode,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"tray-mode",title:t$d("TRAY_MODE"),action:()=>{this.props.view.toggleTrayMode()},icon:ICONS.trayMode,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"fullscreen",title:this.state.isFullscreen?t$d("EXIT_FULLSCREEN"):t$d("GOTO_FULLSCREEN"),action:()=>{this.state.isFullscreen?this.props.view.exitFullscreen():this.props.view.gotoFullscreen()},icon:this.state.isFullscreen?ICONS.exitFullScreen:ICONS.gotoFullScreen,view:this.props.view}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Export actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"lib",title:t$d("DOWNLOAD_LIBRARY"),action:()=>{this.props.view.plugin.exportLibrary()},icon:ICONS.exportLibrary,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"svg",title:t$d("EXPORT_SVG"),action:()=>{this.props.view.saveSVG(),new obsidian.Notice(`File saved: ${getIMGFilename(this.props.view.file.path,"svg")}`)},icon:ICONS.exportSVG,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"png",title:t$d("EXPORT_PNG"),action:()=>{this.props.view.savePNG(),new obsidian.Notice(`File saved: ${getIMGFilename(this.props.view.file.path,"png")}`)},icon:ICONS.exportPNG,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"excalidraw",title:t$d("EXPORT_EXCALIDRAW"),action:()=>{this.props.view.exportExcalidraw()},icon:ICONS.exportExcalidraw,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"md",title:t$d("OPEN_AS_MD"),action:()=>{this.props.view.openAsMarkdown()},icon:ICONS.switchToMarkdown,view:this.props.view}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Insert actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"image",title:t$d("INSERT_IMAGE"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertImageDialog.start(this.props.view)},icon:ICONS.insertImage,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"insertMD",title:t$d("INSERT_MD"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertMDDialog.start(this.props.view)},icon:ICONS.insertMD,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"latex",title:t$d("INSERT_LATEX"),action:()=>{this.props.centerPointer(),insertLaTeXToView(this.props.view)},icon:ICONS.insertLaTeX,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"link",title:t$d("INSERT_LINK"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertLinkDialog.start(this.props.view.file.path,this.props.view.addText)},icon:ICONS.insertLink,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"link-to-element",title:t$d("INSERT_LINK_TO_ELEMENT"),action:A=>{this.props.view.copyLinkToSelectedElementToClipboard(A[CTRL_OR_CMD]?"group=":A.shiftKey?"area=":"")},icon:ICONS.copyElementLink,view:this.props.view}))),this.renderScriptButtons(!1),this.renderScriptButtons(!0)))))}renderScriptButtons(A){if(0===Object.keys(this.state.scriptIconMap).length)return"";const e=`${this.props.view.plugin.settings.scriptFolderPath}/Downloaded/`,t=t=>A?t.startsWith(e):!t.startsWith(e);return 0===Object.keys(this.state.scriptIconMap).filter((A=>t(A))).length?"":React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,A?"Downloaded":"User"," Scripts"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},Object.keys(this.state.scriptIconMap).filter((A=>t(A))).sort().map((e=>{return React__namespace.createElement(ActionButton,{key:e,title:A?this.state.scriptIconMap[e].name.replace("Downloaded/",""):this.state.scriptIconMap[e].name,action:async()=>{const A=this.props.view.app.vault.getAbstractFileByPath(e);A&&A instanceof obsidian.TFile&&this.props.view.plugin.scriptEngine.executeScript(this.props.view,await this.props.view.plugin.app.vault.read(A),this.props.view.plugin.scriptEngine.getScriptName(A))},icon:this.state.scriptIconMap[e].svgString?(t=this.state.scriptIconMap[e].svgString,t=t.replace(/stroke\s*=\s*['"][^"']*['"]/g,"").replace(/width\s*=\s*['"][^"']*['"]/g,"").replace(/height\s*=\s*['"][^"']*['"]/g,"").replace("e.filter((e=>{if(t&&e.type!==t)return!1;const[i,n,a,r]=rotatedDimensions(e);return i<=A.x&&i+a>=A.x&&n<=A.y&&n+r>=A.y})),getTextElementAtPointer=(A,e)=>{const t=e.excalidrawAPI;if(!t)return{id:null,text:null};const i=getElementsAtPointer(A,t.getSceneElements(),"text");if(0==i.length)return{id:null,text:null};if(1===i.length)return{id:i[0].id,text:i[0].text};const n=i.filter((A=>{const t=e.textMode===TextMode.parsed?e.excalidrawData.getRawText(A.id):A.text;return!!t&&(!!t.match(REG_LINKINDEX_HYPERLINK)||!!REGEX_LINK.getRes(t).next().value)}));return 0==n.length?{id:i[0].id,text:i[0].text}:{id:n[0].id,text:n[0].text}},getImageElementAtPointer=(A,e)=>{const t=e.excalidrawAPI;if(!t)return;const i=getElementsAtPointer(A,t.getSceneElements(),"image");return 0===i.length?{id:null,fileId:null}:i.length>=1?{id:i[0].id,fileId:i[0].fileId}:void 0},getElementWithLinkAtPointer=(A,e)=>{const t=e.excalidrawAPI;if(!t)return;const i=getElementsAtPointer(A,t.getSceneElements()).filter((A=>A.link));return 0===i.length?{id:null,text:null}:i.length>=1?{id:i[0].id,text:i[0].link}:void 0};var TextMode;!function(A){A.parsed="parsed",A.raw="raw"}(TextMode||(TextMode={}));const addFiles=async(A,e,t)=>{if(!A||0===A.length||!e)return;const i=e.excalidrawAPI;if(!i)return;if(A=A.filter((A=>A&&A.size&&A.size.height>0&&A.size.width>0)),0===A.length)return;const n=scaleLoadedImage(e.getScene(),A);void 0===t&&(t=n.scene.appState.theme),n.dirty&&await e.updateScene({elements:n.scene.elements,appState:n.scene.appState,commitToHistory:!1});for(const i of A)if(e.excalidrawData.hasFile(i.id)&&e.excalidrawData.getFile(i.id).setImage(i.dataURL,i.mimeType,i.size,t,i.hasSVGwithBitmap),e.excalidrawData.hasEquation(i.id)){const A=e.excalidrawData.getEquation(i.id).latex;e.excalidrawData.setEquation(i.id,{latex:A,isLoaded:!0})}i.addFiles(A)},warningUnknowSeriousError=()=>{new obsidian.Notice("WARNING: Excalidraw ran into an unknown problem!\n\nThere is a risk that your most recent changes cannot be saved.\n\nTo be on the safe side...\n1) Please select your drawing using CTRL/CMD+A and make a copy with CTRL/CMD+C.\n2) Then create an empty drawing in a new pane by CTRL/CMD+clicking the Excalidraw ribbon button,\n3) and paste your work to the new document with CTRL/CMD+V.",6e4)};class ExcalidrawView extends obsidian.TextFileView{constructor(A,e){super(A),this.getScene=null,this.addElements=null,this.getSelectedTextElement=null,this.getSelectedImageElement=null,this.getSelectedElementWithLink=null,this.addText=null,this.refresh=null,this.excalidrawRef=null,this.excalidrawAPI=null,this.excalidrawWrapperRef=null,this.toolsPanelRef=null,this.linksAlwaysOpenInANewPane=!1,this.lastSaveTimestamp=0,this.metaKeyDown=!1,this.ctrlKeyDown=!1,this.shiftKeyDown=!1,this.altKeyDown=!1,this.semaphores={viewunload:!1,scriptsReady:!1,justLoaded:!1,preventAutozoom:!1,autosaving:!1,dirty:null,preventReload:!1,isEditingText:!1,saving:!1,forceSaving:!1,hoverSleep:!1,wheelTimeout:null},this.autosaveTimer=null,this.textMode=TextMode.raw,this.compatibilityMode=!1,this.isEditingTextResetTimer=null,this.id=this.leaf.id,this.getHookServer=()=>{var A;return null!==(A=this.hookServer)&&void 0!==A?A:this.plugin.ea},this.preventReloadResetTimer=null,this.fullscreenModalObserver=null,this.hiddenMobileLeaves=[],this.offsetLeft=0,this.offsetTop=0,this.blockTextModeChange=!1,this.isLoaded=!1,this.activeLoader=null,this.nextLoader=null,this.initialContainerSizeUpdate=!1,this.previousSceneVersion=0,this.previousBackgroundColor="",this.plugin=e,this.excalidrawData=new ExcalidrawData(e),this.hookServer=e.ea}setHookServer(A){this.hookServer=A||this.plugin.ea}preventAutozoom(){this.semaphores.preventAutozoom=!0,setTimeout((()=>this.semaphores.preventAutozoom=!1),1500)}saveExcalidraw(A){if(!A){if(!this.getScene)return!1;A=this.getScene()}const e=`${this.file.path.substring(0,this.file.path.lastIndexOf(".md"))}.excalidraw`,t=app.vault.getAbstractFileByPath(obsidian.normalizePath(e));t&&t instanceof obsidian.TFile?app.vault.modify(t,JSON.stringify(A,null,"\t")):app.vault.create(e,JSON.stringify(A,null,"\t"))}async exportExcalidraw(){this.getScene&&this.file&&(app.isMobile?new Prompt(app,"Please provide filename",this.file.basename,"filename, leave blank to cancel action").openAndGetValue((async A=>{if(!A)return;A=`${A}.excalidraw`;const e=splitFolderAndFilename(this.file.path).folderpath;await checkAndCreateFolder(e);const t=getNewUniqueFilepath(app.vault,A,e);app.vault.create(t,JSON.stringify(this.getScene(),null,"\t")),new obsidian.Notice(`Exported to ${t}`,6e3)})):download("data:text/plain;charset=utf-8",encodeURIComponent(JSON.stringify(this.getScene(),null,"\t")),`${this.file.basename}.excalidraw`))}async svg(A,e){const t={withBackground:getWithBackground(this.plugin,this.file),withTheme:!0};return await getSVG(Object.assign(Object.assign({},A),{appState:Object.assign(Object.assign({},A.appState),{theme:null!=e?e:getExportTheme(this.plugin,this.file,A.appState.theme)})}),t,getExportPadding(this.plugin,this.file))}async saveSVG(A){if(!A){if(!this.getScene)return!1;A=this.getScene()}const e=async(e,t)=>{const i=app.vault.getAbstractFileByPath(obsidian.normalizePath(e)),n=await this.svg(A,t);if(!n)return;const a=(new XMLSerializer).serializeToString(embedFontsInSVG(n,this.plugin));i&&i instanceof obsidian.TFile?await app.vault.modify(i,a):await app.vault.create(e,a)};this.plugin.settings.autoExportLightAndDark?(await e(getIMGFilename(this.file.path,"dark.svg"),"dark"),await e(getIMGFilename(this.file.path,"light.svg"),"light")):await e(getIMGFilename(this.file.path,"svg"))}async png(A,e){const t={withBackground:getWithBackground(this.plugin,this.file),withTheme:!0};return await getPNG(Object.assign(Object.assign({},A),{appState:Object.assign(Object.assign({},A.appState),{theme:null!=e?e:getExportTheme(this.plugin,this.file,A.appState.theme)})}),t,getExportPadding(this.plugin,this.file),getPNGScale(this.plugin,this.file))}async savePNG(A){if(!A){if(!this.getScene)return!1;A=this.getScene()}const e=async(e,t)=>{const i=app.vault.getAbstractFileByPath(obsidian.normalizePath(e)),n=await this.png(A,t);n&&(i&&i instanceof obsidian.TFile?await app.vault.modifyBinary(i,await n.arrayBuffer()):await app.vault.createBinary(e,await n.arrayBuffer()))};this.plugin.settings.autoExportLightAndDark?(await e(getIMGFilename(this.file.path,"dark.png"),"dark"),await e(getIMGFilename(this.file.path,"light.png"),"light")):await e(getIMGFilename(this.file.path,"png"))}async save(A=!0,e=!1){if(!this.isLoaded)return;if(this.semaphores.saving)return;this.semaphores.saving=!0;let t=!1;if(this.getScene&&this.excalidrawAPI&&this.isLoaded&&this.file&&app.vault.getAbstractFileByPath(this.file.path)){try{const i=Boolean(null!==this.semaphores.dirty&&this.semaphores.dirty||this.semaphores.autosaving||e),n=this.getScene();if(this.compatibilityMode?await this.excalidrawData.syncElements(n):await this.excalidrawData.syncElements(n,this.excalidrawAPI.getAppState().selectedElementIds)&&await this.loadDrawing(!1,this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((A=>A.isDeleted))),i&&(this.preventReloadResetTimer&&(clearTimeout(this.preventReloadResetTimer),this.preventReloadResetTimer=null),this.semaphores.preventReload=A,await super.save(),t=this.lastSaveTimestamp===this.file.stat.mtime&&!A&&e,this.lastSaveTimestamp=this.file.stat.mtime,this.clearDirty(),A)){const A=this;this.preventReloadResetTimer=setTimeout((()=>A.semaphores.preventReload=!1),2e3)}if(!t&&!this.semaphores.autosaving&&!this.semaphores.viewunload){const A=this.excalidrawData.autoexportPreference;(A===AutoexportPreference.inherit&&this.plugin.settings.autoexportSVG||A===AutoexportPreference.both||A===AutoexportPreference.svg)&&this.saveSVG(),(A===AutoexportPreference.inherit&&this.plugin.settings.autoexportPNG||A===AutoexportPreference.both||A===AutoexportPreference.png)&&this.savePNG(),!this.compatibilityMode&&this.plugin.settings.autoexportExcalidraw&&this.saveExcalidraw()}}catch(A){errorlog({where:"ExcalidrawView.save",fn:this.save,error:A}),warningUnknowSeriousError()}this.semaphores.saving=!1,t&&this.reload(!0,this.file)}else this.semaphores.saving=!1}getViewData(){if(!this.getScene)return this.data;if(!this.excalidrawData.loaded)return this.data;const A=this.getScene();if(!this.compatibilityMode){let A=this.data.search(/(^%%\n)?# Text Elements\n/m);if(-1==A&&(A=this.data.search(/(%%\n)?# Drawing\n/)),-1==A)return this.data;let e=this.data.substring(0,A).replace(/excalidraw-plugin:\s.*\n/,"excalidraw-plugin: "+(this.textMode===TextMode.raw?"raw\n":"parsed\n"));const t=/(^---[\w\W]*?---\n)(!\[\[.*?]]\n(%%\n)?)/m;e.match(t)&&(e=e.replace(t,"$1")),this.excalidrawData.disableCompression||(this.excalidrawData.disableCompression=this.isEditedAsMarkdownInOtherView());const i=e+this.excalidrawData.generateMD(this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((A=>A.isDeleted)));return this.excalidrawData.disableCompression=!1,i}return this.compatibilityMode?JSON.stringify(A,null,"\t"):this.data}addFullscreenchangeEvent(){this.contentEl.onfullscreenchange=()=>{this.plugin.settings.zoomToFitOnResize&&this.zoomToFit(),this.isFullscreen()||(this.clearFullscreenObserver(),this.contentEl.removeAttribute("style")),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(this.isFullscreen())}}restoreMobileLeaves(){this.hiddenMobileLeaves.length>0&&(this.hiddenMobileLeaves.forEach((A=>{A[0].containerEl.style.display=A[1]})),this.hiddenMobileLeaves=[])}gotoFullscreen(){var A;if(this.plugin.leafChangeTimeout&&(clearTimeout(this.plugin.leafChangeTimeout),this.plugin.leafChangeTimeout=null),this.excalidrawWrapperRef){if(this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(!0),app.isMobile){obsidian.Platform.isIosApp&&(this.restoreMobileLeaves(),app.workspace.getLayout().main.children.filter((A=>"leaf"===A.type)).forEach((A=>{const e=app.workspace.getLeafById(A.id);e!==this.leaf&&(this.hiddenMobileLeaves.push([e,e.containerEl.style.display]),e.containerEl.style.display="none")})));const A=document.createElement("style");A.id="excalidraw-full-screen",A.textContent="\n .workspace-leaf-content .view-content {\n padding: 0px !important;\n }\n .view-header {\n height: 1px !important;\n }\n .status-bar {\n display: none !important;\n }";const e=document.getElementById(A.id);e&&document.head.removeChild(e),document.head.appendChild(A)}this.contentEl.requestFullscreen(),null===(A=this.excalidrawWrapperRef.current.firstElementChild)||void 0===A||A.focus(),this.contentEl.setAttribute("style","padding:0px;margin:0px;"),this.fullscreenModalObserver=new MutationObserver((A=>{if(1!==A.length)return;if(!A[0].addedNodes||1!==A[0].addedNodes.length)return;const e=A[0].addedNodes[0];if(e.nodeType!==Node.ELEMENT_NODE)return;const t=e;t.classList.contains("modal-container")&&(this.contentEl.appendChild(t),t.querySelector("input").focus())})),this.fullscreenModalObserver.observe(this.ownerDocument.body,{childList:!0,subtree:!1})}}clearFullscreenObserver(){this.fullscreenModalObserver&&(this.fullscreenModalObserver.disconnect(),this.fullscreenModalObserver=null)}isFullscreen(){return this.hiddenMobileLeaves.length>0||this.ownerDocument.fullscreenEnabled&&this.ownerDocument.fullscreenElement===this.contentEl}exitFullscreen(){if(console.log("Exit Fullscreen"),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(!1),app.isMobile){this.restoreMobileLeaves();const A=document.getElementById("excalidraw-full-screen");A&&document.head.removeChild(A)}this.ownerDocument.exitFullscreen()}async handleLinkClick(A,e){var t,i,n,a;const r=this.ownerDocument.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");r&&this.ownerDocument.body.removeChild(r);const s=this.getSelectedTextElement(),o=(null==s?void 0:s.id)?null:this.getSelectedImageElement(),l=(null==o?void 0:o.id)||(null==s?void 0:s.id)?null:this.getSelectedElementWithLink();let c=null,d=null,h=null;if((null==s?void 0:s.id)||(null==l?void 0:l.id)){if(h=null!==(t=null==l?void 0:l.text)&&void 0!==t?t:this.textMode===TextMode.parsed?this.excalidrawData.getRawText(s.id):s.text,!h)return;if(h=h.replaceAll("\n",""),this.getHookServer().onLinkClickHook){const A=null!==(i=s.id)&&void 0!==i?i:l.id,t=this.excalidrawAPI.getSceneElements().filter((e=>e.id===A))[0];try{if(!this.getHookServer().onLinkClickHook(t,h,e,this,this.getHookServer()))return}catch(A){errorlog({where:"ExcalidrawView.handleLinkClick selectedText.id!==null",fn:this.getHookServer().onLinkClickHook,error:A})}}if(h.match(REG_LINKINDEX_HYPERLINK))return void window.open(h,"_blank");const n=REGEX_LINK.getRes(h).next();if(!n.value){const A=h.matchAll(/#([\p{Letter}\p{Emoji_Presentation}\p{Number}\/_-]+)/gu).next();if(!A.value||A.value.length<2)return;const e=app.workspace.getLeavesOfType("search");if(0==e.length)return;return e[0].view.setQuery(`tag:${A.value[1]}`),app.workspace.revealLeaf(e[0]),void(this.isFullscreen()&&this.exitFullscreen())}if(h=REGEX_LINK.getLink(n),h.match(REG_LINKINDEX_HYPERLINK))return void window.open(h,"_blank");if(h.search("#")>-1){const A=getLinkParts(h,this.file);d=`#${A.isBlockRef?"^":""}${A.ref}`,h=A.path}if(h.match(REG_LINKINDEX_INVALIDCHARS))return void new obsidian.Notice(t$d("FILENAME_INVALID_CHARS"),4e3);c=A.app.metadataCache.getFirstLinkpathDest(h,A.file.path)}if(null==o?void 0:o.id){if(this.excalidrawData.hasEquation(o.fileId)){const A=this.excalidrawData.getEquation(o.fileId).latex;return void new Prompt(app,t$d("ENTER_LATEX"),A,"").openAndGetValue((async e=>{e&&e!==A&&(this.excalidrawData.setEquation(o.fileId,{latex:e,isLoaded:!1}),await this.save(!1),await updateEquation(e,o.fileId,this,addFiles,this.plugin),this.setDirty(1))}))}if(await this.save(!1),this.excalidrawData.hasFile(o.fileId)){if(e.altKey){const A=this.excalidrawData.getFile(o.fileId);if("md"===A.file.extension&&!this.plugin.isExcalidrawFile(A.file))return void new Prompt(app,"Customize the link",A.linkParts.original,"","Do not add [[square brackets]] around the filename!
Follow this format when editing your link:
filename#^blockref|WIDTHxMAXHEIGHT").openAndGetValue((async e=>{e&&A.linkParts.original!==e&&(A.resetImage(this.file.path,e),await this.save(!1),await this.loadSceneFiles(),this.setDirty(2))}))}h=this.excalidrawData.getFile(o.fileId).file.path,c=this.excalidrawData.getFile(o.fileId).file}}if(h){if(this.getHookServer().onLinkClickHook){const A=null!==(a=null!==(n=o.id)&&void 0!==n?n:s.id)&&void 0!==a?a:l.id,t=this.excalidrawAPI.getSceneElements().filter((e=>e.id===A))[0];try{if(!this.getHookServer().onLinkClickHook(t,h,e,this,this.getHookServer()))return}catch(A){errorlog({where:"ExcalidrawView.handleLinkClick selectedText.id===null",fn:this.getHookServer().onLinkClickHook,error:A})}}try{if(e.shiftKey&&this.isFullscreen()&&this.exitFullscreen(),!c)return void new NewFileActions(this.plugin,h,e.shiftKey,!app.isMobile&&e.metaKey,A).open();const t=!app.isMobile&&(e.metaKey&&this.linksAlwaysOpenInANewPane||e.metaKey)?app.workspace.openPopoutLeaf():e.shiftKey||this.linksAlwaysOpenInANewPane?getNewOrAdjacentLeaf(this.plugin,A.leaf):A.leaf;await t.openFile(c,d?{active:!1,eState:{subpath:d}}:void 0)}catch(A){new obsidian.Notice(A,4e3)}}else new obsidian.Notice(t$d("LINK_BUTTON_CLICK_NO_TEXT"),2e4)}onResize(){var A,e;if(this.plugin.leafChangeTimeout)return;const t=this.excalidrawAPI;this.plugin.settings.zoomToFitOnResize&&this.excalidrawRef&&!this.semaphores.isEditingText&&t&&"text"!==(null===(e=null===(A=t.getAppState())||void 0===A?void 0:A.editingElement)||void 0===e?void 0:e.type)&&this.zoomToFit(!1)}getSceneVersion(A){return this.excalidrawGetSceneVersion||(this.excalidrawGetSceneVersion=this.plugin.getPackage(this.ownerWindow).excalidrawLib.getSceneVersion),this.excalidrawGetSceneVersion(A.filter((A=>!A.isDeleted)))}onload(){const A=Boolean(void 0===this.containerEl.onWindowMigrated);app.isMobile||A||this.containerEl.onWindowMigrated((()=>this.leaf.rebuildView()));const e=app.isMobile?document:this.containerEl.ownerDocument;this.ownerDocument=e,this.ownerWindow=this.ownerDocument.defaultView,this.plugin.getPackage(this.ownerWindow),this.semaphores.scriptsReady=!0,this.wheelEvent=A=>{this.semaphores.wheelTimeout&&clearTimeout(this.semaphores.wheelTimeout),this.semaphores.hoverSleep&&this.clearHoverPreview&&this.clearHoverPreview(),this.semaphores.wheelTimeout=setTimeout((()=>{clearTimeout(this.semaphores.wheelTimeout),this.semaphores.wheelTimeout=null}),1e3)},this.containerEl.addEventListener("wheel",this.wheelEvent,{passive:!1}),this.addAction("ScriptEngine",t$d("INSTALL_SCRIPT_BUTTON"),(()=>{new ScriptInstallPrompt(this.plugin).open()})),this.diskIcon=this.addAction("disk",t$d("FORCE_SAVE"),(async()=>{this.semaphores.autosaving||this.semaphores.saving?new obsidian.Notice("Force Save aborted because saving is in progress)"):(this.preventReloadResetTimer&&(clearTimeout(this.preventReloadResetTimer),this.preventReloadResetTimer=null),this.semaphores.preventReload=!1,this.semaphores.forceSaving=!0,await this.save(!1,!0),this.plugin.triggerEmbedUpdates(),this.loadSceneFiles(),this.semaphores.forceSaving=!1,new obsidian.Notice("Save successful",1e3))})),this.textIsRaw_Element=this.addAction("presentation",t$d("RAW"),(()=>this.changeTextMode(TextMode.parsed))),this.textIsParsed_Element=this.addAction("quote-glyph",t$d("PARSED"),(()=>this.changeTextMode(TextMode.raw))),this.linkAction_Element=this.addAction("link",t$d("OPEN_LINK"),(A=>this.handleLinkClick(this,A))),app.isMobile||this.addAction("fullscreen","Press ESC to exit fullscreen mode",(()=>this.gotoFullscreen()));const t=this;app.workspace.onLayoutReady((async()=>{t.contentEl.addClass("excalidraw-view"),await t.addSlidingPanesListner(),t.addParentMoveObserver(),t.onKeyUp=A=>{t.ctrlKeyDown=A[CTRL_OR_CMD],t.shiftKeyDown=A.shiftKey,t.altKeyDown=A.altKey,t.metaKeyDown=A.metaKey},t.onKeyDown=A=>{this.ctrlKeyDown=A[CTRL_OR_CMD],this.shiftKeyDown=A.shiftKey,this.altKeyDown=A.altKey,this.metaKeyDown=A.metaKey},t.ownerWindow.addEventListener("keydown",t.onKeyDown,!1),t.ownerWindow.addEventListener("keyup",t.onKeyUp,!1)})),this.setupAutosaveTimer(),super.onload()}async addSlidingPanesListner(){const A=this;this.slidingPanesListner=()=>{A.refresh&&A.refresh()};let e=app.workspace.rootSplit;for(;!e;)await sleep(50),e=app.workspace.rootSplit;e.containerEl.addEventListener("scroll",this.slidingPanesListner)}removeSlidingPanesListner(){var A;this.slidingPanesListner&&(null===(A=app.workspace.rootSplit.containerEl)||void 0===A||A.removeEventListener("scroll",this.slidingPanesListner))}addParentMoveObserver(){var A;const e=null!==(A=getParentOfClass(this.containerEl,"popover"))&&void 0!==A?A:getParentOfClass(this.containerEl,"workspace-leaf");if(!e)return;const t=e.classList.contains("popover");this.offsetLeft=e.offsetLeft,this.offsetTop=e.offsetTop;const i=this;this.parentMoveObserver=new MutationObserver((async A=>{const e=A[0].target;if(!(e instanceof HTMLElement))return;const{offsetLeft:t,offsetTop:n}=e;t===i.offsetLeft&&n==i.offsetTop||(i.refresh&&i.refresh(),i.offsetLeft=t,i.offsetTop=n)})),this.parentMoveObserver.observe(e,{attributeOldValue:!0,attributeFilter:t?["data-x","data-y"]:["class","style"]})}removeParentMoveObserver(){this.parentMoveObserver&&this.parentMoveObserver.disconnect()}setTheme(A){const e=this.excalidrawAPI;if(!this.excalidrawRef||!e)return;if(this.file&&hasExportTheme(this.plugin,this.file))return;const t=e.getAppState();this.excalidrawData.scene.theme=A,this.updateScene({appState:Object.assign(Object.assign({},t),{theme:A}),commitToHistory:!1})}async changeTextMode(A,e=!0){if(this.compatibilityMode)return;if(this.blockTextModeChange)return;this.blockTextModeChange=!0,this.textMode=A,A===TextMode.parsed?(this.textIsRaw_Element.hide(),this.textIsParsed_Element.show()):(this.textIsRaw_Element.show(),this.textIsParsed_Element.hide()),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setPreviewMode(A===TextMode.parsed);const t=this.excalidrawAPI;t&&e&&(await this.save(),this.preventAutozoom(),await this.excalidrawData.loadData(this.data,this.file,this.textMode),this.excalidrawData.scene.appState.theme=t.getAppState().theme,await this.loadDrawing(!1),t.history.clear()),this.prevTextMode=this.textMode,this.blockTextModeChange=!1}setupAutosaveTimer(){const A=async()=>{var e;if(!this.isLoaded)return void(this.autosaveTimer=setTimeout(A,this.plugin.settings.autosaveInterval));const t=this.excalidrawAPI;if(!t)return void warningUnknowSeriousError();const i=t.getAppState(),n=null!==i.editingElement;if(this.refresh(),!this.semaphores.dirty||this.semaphores.dirty!=(null===(e=this.file)||void 0===e?void 0:e.path)||!this.plugin.settings.autosave||this.semaphores.forceSaving||this.semaphores.autosaving||n||null!==i.draggingElement)this.autosaveTimer=setTimeout(A,this.plugin.activeExcalidrawView===this&&this.semaphores.dirty?1e3:this.plugin.settings.autosaveInterval);else{if(this.autosaveTimer=null,this.excalidrawRef){this.semaphores.autosaving=!0;const A=this;this.save().then((()=>A.semaphores.autosaving=!1))}this.autosaveTimer=setTimeout(A,this.plugin.settings.autosaveInterval)}};this.autosaveTimer&&(clearTimeout(this.autosaveTimer),this.autosaveTimer=null),this.plugin.settings.autosave&&(this.autosaveTimer=setTimeout(A,this.plugin.settings.autosaveInterval))}onunload(){var A,e,t,i,n,a;if(this.restoreMobileLeaves(),this.semaphores.viewunload=!0,null===(A=this.ownerWindow)||void 0===A||A.removeEventListener("keydown",this.onKeyDown,!1),null===(e=this.ownerWindow)||void 0===e||e.removeEventListener("keyup",this.onKeyUp,!1),this.containerEl.removeEventListener("wheel",this.wheelEvent,!1),this.getHookServer().onViewUnloadHook)try{this.getHookServer().onViewUnloadHook(this)}catch(A){errorlog({where:"ExcalidrawView.onunload",fn:this.getHookServer().onViewUnloadHook,error:A})}const r=null===(i=null===(t=this.containerEl)||void 0===t?void 0:t.ownerDocument)||void 0===i?void 0:i.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");r&&(null===(a=null===(n=this.containerEl)||void 0===n?void 0:n.ownerDocument)||void 0===a||a.body.removeChild(r)),this.removeParentMoveObserver(),this.removeSlidingPanesListner(),this.autosaveTimer&&(clearInterval(this.autosaveTimer),this.autosaveTimer=null),this.fullscreenModalObserver&&(this.fullscreenModalObserver.disconnect(),this.fullscreenModalObserver=null)}async reload(A=!1,e){if(this.semaphores.preventReload)return void(this.semaphores.preventReload=!1);if(this.semaphores.saving)return;if(this.diskIcon.querySelector("svg").removeClass("excalidraw-dirty"),this.compatibilityMode)return void this.clearDirty();const t=this.excalidrawAPI;if(!this.excalidrawRef||!this.file||!t)return;const i=e&&e===this.file;i&&(this.data=await app.vault.read(e),this.preventAutozoom()),A?await this.excalidrawData.loadData(this.data,this.file,this.textMode):await this.excalidrawData.setTextMode(this.textMode),this.excalidrawData.scene.appState.theme=t.getAppState().theme,await this.loadDrawing(i),this.clearDirty()}async zoomToElementId(A,e){let t=0;for(;!this.excalidrawAPI&&t++<100;)await sleep(50);const i=this.excalidrawAPI;if(!i)return;const n=i.getSceneElements();let a=n.filter((e=>e.id===A));if(0!==a.length){if(e){const A=this.plugin.ea.getElementsInTheSameGroupWithElement(a[0],n);A.length>0&&(a=A)}this.preventAutozoom(),this.zoomToElements(!i.getAppState().viewModeEnabled,a)}}setEphemeralState(A){if(!A)return;const e=this;let t=null;A.match&&A.match.content&&A.match.matches&&1===A.match.matches.length&&2===A.match.matches[0].length&&(t=[A.match.content.substring(A.match.matches[0][0],A.match.matches[0][1])]);const i=getEmbeddedFilenameParts(A.subpath);i.hasBlockref&&setTimeout((()=>e.zoomToElementId(i.blockref,i.hasGroupref)),300),i.hasSectionref?t=[`# ${i.sectionref}`]:A.line&&A.line>0&&(t=[this.data.split("\n")[A.line-1]]),t&&setTimeout((async()=>{let A=0;for(;!e.excalidrawAPI&&A++<100;)await sleep(50);const n=e.excalidrawAPI;if(!n)return;const a=n.getSceneElements();e.selectElementsMatchingQuery(a,t,!n.getAppState().viewModeEnabled,i.hasSectionref,i.hasGroupref)}),300),super.setEphemeralState(A)}clear(){const A=this.excalidrawAPI;this.excalidrawRef&&A&&(this.activeLoader&&(this.activeLoader.terminate=!0,this.activeLoader=null),this.nextLoader=null,A.resetScene(),A.history.clear(),this.previousSceneVersion=0)}async setViewData(A,e=!1){this.plugin.settings.showNewVersionNotification&&checkExcalidrawVersion(app),this.isLoaded=!1,e&&this.clear(),this.lastSaveTimestamp=this.file.stat.mtime,A=this.data=A.replaceAll("\r\n","\n").replaceAll("\r","\n"),app.workspace.onLayoutReady((async()=>{if(this.compatibilityMode="excalidraw"===this.file.extension,await this.plugin.loadSettings(),this.compatibilityMode)this.textIsRaw_Element.hide(),this.textIsParsed_Element.hide(),this.linkAction_Element.hide(),this.textMode=TextMode.raw,await this.excalidrawData.loadLegacyData(A,this.file),this.plugin.settings.compatibilityMode||new obsidian.Notice(t$d("COMPATIBILITY_MODE"),4e3),this.excalidrawData.disableCompression=!0;else{this.linkAction_Element.show(),this.excalidrawData.disableCompression=!1;const e=getTextMode(A);this.changeTextMode(e,!1);try{if(!await this.excalidrawData.loadData(A,this.file,this.textMode))return}catch(A){return errorlog({where:"ExcalidrawView.setViewData",error:A}),new obsidian.Notice(`Error loading drawing:\n${A.message}${"Cannot read property 'index' of undefined"===A.message?"\n'# Drawing' section is likely missing":""}\n\nTry manually fixing the file or restoring an earlier version from sync history.`,1e4),void this.setMarkdownView()}}await this.loadDrawing(!0);const e=this.excalidrawData.getOnLoadScript();if(e){const A=this,t=this.file.basename+"-onlaod-script",i=()=>{A.excalidrawAPI?A.plugin.scriptEngine.executeScript(A,e,t):setTimeout(i,200)};i()}this.isLoaded=!0}))}async loadSceneFiles(){if(!this.excalidrawAPI)return;const A=new EmbeddedFilesLoader(this.plugin),e=A=>{this.nextLoader=null,this.activeLoader=A,A.loadSceneFiles(this.excalidrawData,((A,t)=>{A&&(addFiles(A,this,t),this.activeLoader=null,this.nextLoader?e(this.nextLoader):this.excalidrawData.getFiles().some((A=>{if(A&&!A.file&&A.attemptCounter<30){const A=this,e=this.file.path;return setTimeout((async()=>{A&&A.excalidrawAPI&&e===A.file.path&&A.loadSceneFiles()}),2e3),!0}return!1})))}),0)};this.activeLoader?this.nextLoader=A:e(A)}async synchronizeWithData(A){let e=0;for(;this.semaphores.saving&&e++<30;)await sleep(100);if(e>=30)return void errorlog({where:"ExcalidrawView.synchronizeWithData",message:`Aborting sync with received file (${this.file.path}) because semaphores.saving remained true for ower 3 seconds`,fn:this.synchronizeWithData});this.semaphores.saving=!0;let t=!1;try{const e=A.deletedElements.map((A=>A.id)),i=this.excalidrawAPI.getSceneElements().filter((A=>!e.contains(A.id))),n=i.map((A=>A.id)),a=e=>{switch(e.type){case"text":this.excalidrawData.textElements.set(e.id,A.textElements.get(e.id));break;case"image":A.getFile(e.fileId)?(this.excalidrawData.setFile(e.fileId,A.getFile(e.fileId)),t=!0):A.getEquation(e.fileId)&&(this.excalidrawData.setEquation(e.fileId,A.getEquation(e.fileId)),t=!0)}A.elementLinks.has(e.id)&&this.excalidrawData.elementLinks.set(e.id,A.elementLinks.get(e.id))};A.scene.elements.forEach(((e,r,s)=>{const o=i.filter((A=>A.id===e.id))[0];if(o&&(o.versionA.view.file===this.file)).length>0}setDirty(A){var e;this.semaphores.dirty=null===(e=this.file)||void 0===e?void 0:e.path,this.diskIcon.querySelector("svg").addClass("excalidraw-dirty"),app.isMobile||obsidian.requireApiVersion("0.16.0")&&(this.leaf.tabHeaderInnerTitleEl.style.color="var(--color-accent)")}clearDirty(){const A=this.excalidrawAPI;if(!A)return;this.semaphores.dirty=null;const e=A.getSceneElements();e&&(this.previousSceneVersion=this.getSceneVersion(e)),this.diskIcon.querySelector("svg").removeClass("excalidraw-dirty"),app.isMobile||obsidian.requireApiVersion("0.16.0")&&(this.leaf.tabHeaderInnerTitleEl.style.color="")}initializeToolsIconPanelAfterLoading(){var A;const e=this.excalidrawAPI;if(!e)return;const t=e.getAppState(),i=null===(A=this.toolsPanelRef)||void 0===A?void 0:A.current;i&&(i.setTheme(t.theme),i.setExcalidrawViewMode(t.viewModeEnabled),i.setPreviewMode(this.compatibilityMode?null:this.textMode===TextMode.parsed),i.updateScriptIconMap(this.plugin.scriptEngine.scriptIconMap))}canAcceptExtension(A){return"excalidraw"===A}getDisplayText(){return this.file?this.file.basename:t$d("NOFILE")}getViewType(){return"excalidraw"}getIcon(){return ICON_NAME}setMarkdownView(){this.plugin.excalidrawFileModes[this.id||this.file.path]="markdown",this.plugin.setMarkdownView(this.leaf)}async openAsMarkdown(){!0===this.plugin.settings.compress&&(this.excalidrawData.disableCompression=!0,await this.save(!0,!0)),this.setMarkdownView()}async convertExcalidrawToMD(){await this.save(),this.plugin.openDrawing(await this.plugin.convertSingleExcalidrawToMD(this.file),"active-pane",!0)}onPaneMenu(A,e){this.excalidrawAPI&&this.getViewSelectedElements().some((A=>"text"===A.type))&&A.addItem((A=>{A.setTitle(t$d("OPEN_LINK")).setIcon("external-link").setSection("pane").onClick((A=>{this.handleLinkClick(this,A)}))})),this.compatibilityMode?A.addItem((A=>{A.setTitle(t$d("CONVERT_FILE")).onClick((()=>this.convertExcalidrawToMD())).setSection("pane")})):A.addItem((A=>{A.setTitle(t$d("OPEN_AS_MD")).setIcon("document").onClick((()=>{this.openAsMarkdown()})).setSection("pane")})).addItem((A=>{A.setTitle(t$d("EXPORT_EXCALIDRAW")).setIcon(ICON_NAME).onClick((async()=>{this.exportExcalidraw()})).setSection("pane")})),A.addItem((A=>{A.setTitle(t$d("SAVE_AS_PNG")).setIcon("save-png").setSection("pane").onClick((async A=>{if(this.getScene&&this.file)if(A[CTRL_OR_CMD]){const A=await this.png(this.getScene());if(!A)return;const e=new FileReader;e.readAsDataURL(A);const t=this;e.onloadend=function(){download(null,e.result,`${t.file.basename}.png`)}}else this.savePNG()})).setSection("pane")})).addItem((A=>{A.setTitle(t$d("SAVE_AS_SVG")).setIcon("save-svg").setSection("pane").onClick((async A=>{if(this.getScene&&this.file){if(A[CTRL_OR_CMD]){let A=await this.svg(this.getScene());return A?(A=embedFontsInSVG(A,this.plugin),void download(null,svgToBase64(A.outerHTML),`${this.file.basename}.svg`)):null}this.saveSVG()}}))})).addItem((A=>{A.setTitle(t$d("INSTALL_SCRIPT_BUTTON")).setIcon("ScriptEngine").setSection("pane").onClick((()=>{new ScriptInstallPrompt(this.plugin).open()}))})),super.onPaneMenu(A,e)}async getLibrary(){var A;const e=this.plugin.getStencilLibrary();return(null==e?void 0:e.library)?e.library:null!==(A=null==e?void 0:e.libraryItems)&&void 0!==A?A:[]}async instantiateExcalidraw(A){for(;!this.semaphores.scriptsReady;)await sleep(50);const e=this.plugin.getPackage(this.ownerWindow).react,t=this.plugin.getPackage(this.ownerWindow).reactDOM;this.clearDirty();const i=e.createElement((()=>{let t={x:0,y:0};const i=e.useRef(null),n=e.useRef(null),[a,r]=e.useState({width:void 0,height:void 0});let s=null,o=null,l=null,c=Date.now(),d=!1;this.toolsPanelRef=n,this.obsidianMenu=new ObsidianMenu(this.plugin,n);const h=()=>{let A,e;const t=new Promise(((t,i)=>{A=t,e=i}));return t.resolve=A,t.reject=e,t},g=e.useMemo((()=>({current:{readyPromise:h()}})),[]);e.useEffect((()=>{g.current.readyPromise.then((A=>{var e;this.excalidrawAPI=A,A.setLocalFont(this.plugin.settings.experimentalEnableFourthFont),this.loadSceneFiles(),this.updateContainerSize(null,!0),null===(e=this.excalidrawWrapperRef.current.firstElementChild)||void 0===e||e.focus(),this.addFullscreenchangeEvent(),this.initializeToolsIconPanelAfterLoading()}))}),[g]),this.excalidrawRef=g,this.excalidrawWrapperRef=i,e.useEffect((()=>{r({width:this.contentEl.clientWidth,height:this.contentEl.clientHeight});const A=()=>{try{r({width:this.contentEl.clientWidth,height:this.contentEl.clientHeight}),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.updatePosition(),this.ownerDocument!==document&&this.refresh()}catch(A){errorlog({where:"Excalidraw React-Wrapper, onResize",error:A})}};return this.ownerWindow.addEventListener("resize",A),()=>{var e;return null===(e=this.ownerWindow)||void 0===e?void 0:e.removeEventListener("resize",A)}}),[i]),this.getSelectedTextElement=()=>{var A;const e=this.excalidrawAPI;if(!(null==g?void 0:g.current)||!e)return{id:null,text:null};if(e.getAppState().viewModeEnabled){if(s){const A=s;return s=null,A}return{id:null,text:null}}const t=e.getSceneElements().filter((A=>A.id===Object.keys(e.getAppState().selectedElementIds)[0]));if(0===t.length)return{id:null,text:null};if("text"===t[0].type)return{id:t[0].id,text:t[0].text};if("image"===t[0].type)return{id:null,text:null};const i=null===(A=t[0].boundElements)||void 0===A?void 0:A.filter((A=>"text"===A.type));if((null==i?void 0:i.length)>0){const A=e.getSceneElements().filter((A=>A.id===i[0].id));if(A.length>0)return{id:A[0].id,text:A[0].text}}if(0===t[0].groupIds.length)return{id:null,text:null};const n=t[0].groupIds[0],a=e.getSceneElements().filter((A=>{var e;return null===(e=A.groupIds)||void 0===e?void 0:e.includes(n)})).filter((A=>"text"===A.type));return 0===a.length?{id:null,text:null}:{id:t[0].id,text:t[0].text}},this.getSelectedImageElement=()=>{const A=this.excalidrawAPI;if(!A)return{id:null,fileId:null};if(A.getAppState().viewModeEnabled){if(o){const A=o;return o=null,A}return{id:null,fileId:null}}const e=A.getSceneElements().filter((e=>e.id==Object.keys(A.getAppState().selectedElementIds)[0]));if(0===e.length)return{id:null,fileId:null};if("image"==e[0].type)return{id:e[0].id,fileId:e[0].fileId};if("text"===e[0].type)return{id:null,fileId:null};if(0===e[0].groupIds.length)return{id:null,fileId:null};const t=e[0].groupIds[0],i=A.getSceneElements().filter((A=>{var e;return null===(e=A.groupIds)||void 0===e?void 0:e.includes(t)})).filter((A=>"image"==A.type));return 0===i.length?{id:null,fileId:null}:{id:i[0].id,fileId:i[0].fileId}},this.getSelectedElementWithLink=()=>{const A=this.excalidrawAPI;if(!A)return{id:null,text:null};if(A.getAppState().viewModeEnabled){if(l){const A=l;return l=null,A}return{id:null,text:null}}const e=A.getSceneElements().filter((e=>e.id==Object.keys(A.getAppState().selectedElementIds)[0]));if(0===e.length)return{id:null,text:null};if(e[0].link)return{id:e[0].id,text:e[0].link};if(0===e[0].groupIds.length)return{id:null,text:null};const t=e[0].groupIds[0],i=A.getSceneElements().filter((A=>{var e;return null===(e=A.groupIds)||void 0===e?void 0:e.includes(t)})).filter((A=>A.link));return 0===i.length?{id:null,text:null}:{id:i[0].id,text:i[0].link}},this.addText=async(A,e,i=!0)=>{var n,a,r,s,o;const l=this.excalidrawAPI;if(!(null==g?void 0:g.current)||!l)return;const c=l.getAppState(),d=this.plugin.ea;d.reset(),d.style.strokeColor=null!==(n=c.currentItemStrokeColor)&&void 0!==n?n:"black",d.style.opacity=null!==(a=c.currentItemOpacity)&&void 0!==a?a:1,d.style.fontFamily=null!==(r=null!=e?e:c.currentItemFontFamily)&&void 0!==r?r:1,d.style.fontSize=null!==(s=c.currentItemFontSize)&&void 0!==s?s:20,d.style.textAlign=null!==(o=c.currentItemTextAlign)&&void 0!==o?o:"left";const h=d.addText(t.x,t.y,A);return await this.addElements(d.getElements(),!1,i),h},this.addElements=async(A,e=!1,i=!1,n,a=!1)=>{const r=this.excalidrawAPI;if(!(null==g?void 0:g.current)||!r)return!1;const s=A.filter((A=>"text"==A.type));for(let A=0;AA.id)),l=r.getSceneElements(),c=[];for(let e=0;eA.id===t))[0],c.push(t))}const d=a?l.concat(A.filter((A=>!c.includes(A.id)))):A.filter((A=>!c.includes(A.id))).concat(l);if(await this.updateScene({elements:d,commitToHistory:!0},!1,!0),n&&Object.keys(n).length>0){const A=[];Object.keys(n).forEach((e=>{if(A.push({mimeType:n[e].mimeType,id:n[e].id,dataURL:n[e].dataURL,created:n[e].created}),n[e].file){const A=new EmbeddedFile(this.plugin,this.file.path,n[e].file),t=r.getAppState();A.setImage(n[e].dataURL,n[e].mimeType,n[e].size,"dark"===t.theme,n[e].hasSVGwithBitmap),this.excalidrawData.setFile(n[e].id,A)}n[e].latex&&this.excalidrawData.setEquation(n[e].id,{latex:n[e].latex,isLoaded:!0})})),r.addFiles(A)}return i?await this.save(!1):this.setDirty(5),!0},this.getScene=()=>{const A=this.excalidrawAPI;if(!(null==g?void 0:g.current)||!A)return null;const e=A.getSceneElements(),t=A.getAppState(),i=A.getFiles();if(i){const A=e.filter((A=>"image"===A.type)).map((A=>A.fileId)),t=Object.keys(i).filter((e=>!A.contains(e)));t.forEach((A=>delete i[A]))}return{type:"excalidraw",version:2,source:"https://excalidraw.com",elements:e,appState:{theme:t.theme,viewBackgroundColor:t.viewBackgroundColor,currentItemStrokeColor:t.currentItemStrokeColor,currentItemBackgroundColor:t.currentItemBackgroundColor,currentItemFillStyle:t.currentItemFillStyle,currentItemStrokeWidth:t.currentItemStrokeWidth,currentItemStrokeStyle:t.currentItemStrokeStyle,currentItemRoughness:t.currentItemRoughness,currentItemOpacity:t.currentItemOpacity,currentItemFontFamily:t.currentItemFontFamily,currentItemFontSize:t.currentItemFontSize,currentItemTextAlign:t.currentItemTextAlign,currentItemStrokeSharpness:t.currentItemStrokeSharpness,currentItemStartArrowhead:t.currentItemStartArrowhead,currentItemEndArrowhead:t.currentItemEndArrowhead,currentItemLinearStrokeSharpness:t.currentItemLinearStrokeSharpness,gridSize:t.gridSize,colorPalette:t.colorPalette},prevTextMode:this.prevTextMode,files:i}},this.refresh=()=>{if(0===this.contentEl.clientWidth||0===this.contentEl.clientHeight)return;const A=this.excalidrawAPI;(null==g?void 0:g.current)&&A&&A.refresh()};let u={x:0,y:0},p=null;this.clearHoverPreview=()=>{if(p){const A=new MouseEvent("click",{view:this.ownerWindow,bubbles:!0,cancelable:!0});p.dispatchEvent(A),p=null}};const w=A=>{var e,t,i,n,a;const r=null===(e=app.dragManager.draggable)||void 0===e?void 0:e.files;return r&&r[0]==this.file&&(r.shift(),app.dragManager.draggable.title=`${r.length} files`),["file","files"].includes(null===(t=app.dragManager.draggable)||void 0===t?void 0:t.type)?"link":(null===(i=A.types)||void 0===i?void 0:i.includes("text/html"))||(null===(n=A.types)||void 0===n?void 0:n.includes("text/plain"))||(null===(a=A.types)||void 0===a?void 0:a.includes("Files"))?"copy":void 0};let m=!1;const f=()=>{if(s=getTextElementAtPointer(t,this),s&&s.id){const A=new MouseEvent("click",{ctrlKey:!0,metaKey:this.metaKeyDown,shiftKey:this.shiftKeyDown,altKey:this.altKeyDown});return this.handleLinkClick(this,A),void(s=null)}if(o=getImageElementAtPointer(t,this),o&&o.id){const A=new MouseEvent("click",{ctrlKey:!0,metaKey:this.metaKeyDown,shiftKey:this.shiftKeyDown,altKey:this.altKeyDown});return this.handleLinkClick(this,A),void(o=null)}if(l=getElementWithLinkAtPointer(t,this),l&&l.id){const A=new MouseEvent("click",{ctrlKey:!0,metaKey:this.metaKeyDown,shiftKey:this.shiftKeyDown,altKey:this.altKeyDown});return this.handleLinkClick(this,A),void(l=null)}};let B=null;const E=(A,e)=>{var i,n;if(!B)return;if(null===(n=null===(i=this.excalidrawAPI)||void 0===i?void 0:i.getAppState())||void 0===n?void 0:n.editingElement)return;if(this.semaphores.wheelTimeout)return;if(!A){if(!t)return;A="";const i=getTextElementAtPointer(t,this);if(i&&i.text){e=this.excalidrawAPI.getSceneElements().filter((A=>A.id===i.id))[0];const t=this.textMode===TextMode.parsed?this.excalidrawData.getRawText(i.id):i.text;if(!t)return;if(t.match(REG_LINKINDEX_HYPERLINK))return;const n=REGEX_LINK.getRes(t).next();if(!n.value)return;if((A=REGEX_LINK.getLink(n)).match(REG_LINKINDEX_HYPERLINK))return}else{const i=getImageElementAtPointer(t,this);if(e=this.excalidrawAPI.getSceneElements().filter((A=>A.id===i.id))[0],!i||!i.fileId)return;if(!this.excalidrawData.hasFile(i.fileId))return;const n=this.excalidrawData.getFile(i.fileId),a=n.linkParts.ref?`#${n.linkParts.isBlockRef?"^":""}${n.linkParts.ref}`:"";A=this.excalidrawData.getFile(i.fileId).file.path+a}}if(this.getHookServer().onLinkHoverHook)try{if(!this.getHookServer().onLinkHoverHook(e,A,this,this.getHookServer()))return}catch(A){errorlog({where:"ExcalidrawView.showHoverPreview",fn:this.getHookServer().onLinkHoverHook,error:A})}if(this.semaphores.hoverSleep)return;const a=app.metadataCache.getFirstLinkpathDest(A.split("#")[0],this.file.path);if(!a)return;if(this.ownerDocument.querySelector(`div.popover-title[data-path="${a.path}"]`))return;this.semaphores.hoverSleep=!0;const r=this;if(setTimeout((()=>r.semaphores.hoverSleep=!1),500),this.plugin.hover.linkText=A,this.plugin.hover.sourcePath=this.file.path,p=this.contentEl,app.workspace.trigger("hover-link",{event:B,source:"excalidraw",hoverParent:p,targetEl:p,linktext:this.plugin.hover.linkText,sourcePath:this.plugin.hover.sourcePath}),u=t,this.isFullscreen()){const A=this;setTimeout((()=>{var e,t,i,n;const r=null!==(n=null===(i=null===(t=null===(e=this.ownerDocument.querySelector(`div.popover-title[data-path="${a.path}"]`))||void 0===e?void 0:e.parentElement)||void 0===t?void 0:t.parentElement)||void 0===i?void 0:i.parentElement)&&void 0!==n?n:this.ownerDocument.body.querySelector("div.popover");r&&A.contentEl.append(r)}),400)}},{Excalidraw:C}=this.plugin.getPackage(this.ownerWindow).excalidrawLib,b=e.createElement("div",{className:"excalidraw-wrapper",ref:i,key:"abc",tabIndex:0,onKeyDown:A=>{A.target!==b.ref.current&&(this.isFullscreen()&&A.keyCode===KEYCODE.ESC&&this.exitFullscreen(),!A[CTRL_OR_CMD]||A.shiftKey||A.altKey||E())},onPointerDown:A=>{(A[CTRL_OR_CMD]||A.metaKey)&&(this.plugin.settings.allowCtrlClick||A.metaKey)&&setTimeout((()=>{(this.getSelectedTextElement().id||this.getSelectedImageElement().id||this.getSelectedElementWithLink().id)&&this.handleLinkClick(this,A)}))},onMouseMove:A=>{B=A.nativeEvent},onMouseOver:()=>{this.clearHoverPreview()},onDragOver:A=>{const e=w(A.dataTransfer);if(e)return A.dataTransfer.dropEffect=e,A.preventDefault(),!1},onDragLeave:()=>{}},e.createElement(C,{ref:g,width:a.width,height:a.height,UIOptions:{canvasActions:{loadScene:!1,saveScene:!1,saveAsScene:!1,export:{saveFileToDisk:!1},saveAsImage:!1,saveToActiveFile:!1}},initState:null==A?void 0:A.appState,initialData:A,detectScroll:!0,onPointerUpdate:A=>{if(t=A.pointer,p&&(Math.abs(u.x-A.pointer.x)>50||Math.abs(u.y-A.pointer.y)>50)&&this.clearHoverPreview(),m){if(!d&&"down"===A.button){if(d=!0,this.ctrlKeyDown||this.metaKeyDown)return void f();const A=Date.now();return A-c<600&&A-c>40&&f(),void(c=A)}"up"===A.button&&(d=!1),(this.ctrlKeyDown||this.excalidrawAPI.getAppState().isViewModeEnabled&&this.plugin.settings.hoverPreviewWithoutCTRL)&&E()}},libraryReturnUrl:"app://obsidian.md",autoFocus:!0,onChange:(A,e)=>{const t=()=>{this.plugin.ea.onCanvasColorChangeHook&&this.plugin.ea.onCanvasColorChangeHook(this.plugin.ea,this,e.viewBackgroundColor)};if(m=e.viewModeEnabled,this.semaphores.justLoaded)return this.semaphores.justLoaded=!1,this.semaphores.preventAutozoom||this.zoomToFit(!1),this.previousSceneVersion=this.getSceneVersion(A),this.previousBackgroundColor=e.viewBackgroundColor,void t();if(!this.semaphores.dirty&&null===e.editingElement&&null===e.editingLinearElement){const i=this.getSceneVersion(A);((i>0||0===i&&A.length>0)&&i!==this.previousSceneVersion||e.viewBackgroundColor!==this.previousBackgroundColor)&&(this.previousSceneVersion=i,this.previousBackgroundColor=e.viewBackgroundColor,this.setDirty(6),t())}},onLibraryChange:A=>{(async()=>{const e={type:"excalidrawlib",version:2,source:"https://excalidraw.com",libraryItems:A};this.plugin.setStencilLibrary(e),await this.plugin.saveSettings()})()},renderTopRightUI:this.obsidianMenu.renderButton,onPaste:A=>{if(A.elements){const A=this;setTimeout((()=>A.save(!1)),300)}return!0},onThemeChange:async A=>{var e;this.excalidrawData.scene.appState.theme=A,this.loadSceneFiles(),null===(e=null==n?void 0:n.current)||void 0===e||e.setTheme(A)},ownerDocument:this.ownerDocument,ownerWindow:this.ownerWindow,onDrop:A=>{const e=this.excalidrawAPI;if(!e)return!1;const i=e.getAppState();t=viewportCoordsToSceneCoords({clientX:A.clientX,clientY:A.clientY},i);const n=app.dragManager.draggable,a=(e,i,a)=>{if(!this.getHookServer().onDropHook)return!1;try{return this.getHookServer().onDropHook({ea:this.getHookServer(),event:A,draggable:n,type:e,payload:{files:i,text:a},excalidrawFile:this.file,view:this,pointerPosition:t})}catch(A){return new obsidian.Notice("on drop hook error. See console log for details"),errorlog({where:"ExcalidrawView.onDrop",error:A}),!1}};switch(A[CTRL_OR_CMD]=A.shiftKey||A[CTRL_OR_CMD],null==n?void 0:n.type){case"file":if(!a("file",[n.file],null)){if(n.file.path.match(REG_LINKINDEX_INVALIDCHARS))return new obsidian.Notice(t$d("FILENAME_INVALID_CHARS"),4e3),!1;if(A[CTRL_OR_CMD]&&(IMAGE_TYPES.contains(n.file.extension)||"md"===n.file.extension)){const A=this.plugin.ea;return A.reset(),A.setView(this),(async()=>{A.canvas.theme=e.getAppState().theme,await A.addImage(t.x,t.y,n.file),A.addElementsToView(!1,!1,!0)})(),!1}this.addText(`[[${app.metadataCache.fileToLinktext(n.file,this.file.path,!0)}]]`)}return!1;case"files":return a("file",n.files,null)||(async()=>{if(A[CTRL_OR_CMD]){const A=this.plugin.ea;A.reset(),A.setView(this),A.canvas.theme=e.getAppState().theme;let i=0;for(const e of n.files)(IMAGE_TYPES.contains(e.extension)||"md"===e.extension)&&(await A.addImage(t.x+50*i,t.y+50*i,e),i++,await A.addElementsToView(!1,!1,!0))}else{for(const A of n.files)await this.addText(`[[${app.metadataCache.fileToLinktext(A,this.file.path,!0)}]]`,void 0,!1),t.y+=2*i.currentItemFontSize;this.save(!1)}})(),!1}if(A.dataTransfer.types.includes("Files")){if(A.dataTransfer.types.includes("text/plain")){const e=A.dataTransfer.getData("text");if(e&&a("text",null,e))return!1}return!0}if(A.dataTransfer.types.includes("text/plain")){const e=A.dataTransfer.getData("text");if(!e)return!0;if(!a("text",null,e)){if(this.plugin.settings.iframelyAllowed&&e.match(/^https?:\/\/\S*$/))return(async()=>{var A;const t=await this.addText(e),i=`http://iframely.server.crestify.com/iframely?url=${e}`,n=JSON.parse(await obsidian.request({url:i}));if(!n||n.error||!(null===(A=n.meta)||void 0===A?void 0:A.title))return!1;const a=this.plugin.ea;a.reset(),a.setView(this);const r=a.getViewElements().filter((A=>A.id===t));1===r.length&&(r[0].text=r[0].originalText=r[0].rawText=`[${n.meta.title}](${e})`,a.copyViewElementsToEAforEditing(r),a.addElementsToView(!1,!1,!1))})(),!1;if(e.startsWith("obsidian://open?vault=")){const t=A.dataTransfer.getData("text/html");if(t){const A=t.match(/href="app:\/\/obsidian\.md\/(.*?)"/);if(2===A.length){const e=decodeURIComponent(A[1]).split("#"),t=app.vault.getAbstractFileByPath(e[0]);if(t&&t instanceof obsidian.TFile){const A=app.metadataCache.fileToLinktext(t,this.file.path);return void this.addText(`[[${A+(e.length>1?"#"+e[1]+"|"+A:"")}]]`)}return this.addText(`[[${decodeURIComponent(A[1])}]]`),!1}}const i=e.split("file=");if(2===i.length)return this.addText(`[[${decodeURIComponent(i[1])}]]`),!1}this.addText(e.replace(/(!\[\[.*#[^\]]*\]\])/g,"$1{40}"))}return!1}return!a("unknown",null,null)},onBeforeTextEdit:A=>{var e;if(clearTimeout(this.isEditingTextResetTimer),this.isEditingTextResetTimer=null,this.semaphores.isEditingText=!0,this.compatibilityMode)return null!==(e=A.originalText)&&void 0!==e?e:A.text;return this.excalidrawData.getRawText(A.id)||A.rawText},onBeforeTextSubmit:(A,e,t,i)=>{const n=this.excalidrawAPI;if(!n)return[null,null,null];const a="PASTING EXCALIDRAW ELEMENTS AS A TEXT ELEMENT IS NOT ALLOWED";if(e.startsWith('{"type":"excalidraw/clipboard","elements":[{"'))return setTimeout((async()=>{const e=this.excalidrawAPI.getSceneElements(),t=e.filter((e=>e.id===A.id));if(1===t.length){const A=cloneElement(t[0]);A.rawText=a,e[e.indexOf(t[0])]=A,this.excalidrawData.setTextElement(A.id,a,a,(()=>{})),await this.updateScene({elements:e}),n.history.clear()}})),[a,a,null];if(this.semaphores.isEditingText=!0,this.isEditingTextResetTimer=setTimeout((()=>{this.semaphores.isEditingText=!1,this.isEditingTextResetTimer=null}),1500),i)return this.excalidrawData.deleteTextElement(A.id),this.setDirty(7),[null,null,null];const r=A.containerId;if(e!==A.text||t!==A.originalText||!this.excalidrawData.getRawText(A.id)){this.setDirty(8);const[i,a,s]=this.excalidrawData.setTextElement(A.id,e,t,(async(e,t)=>{if(this.textMode===TextMode.raw)return;const i=this.excalidrawAPI.getSceneElements(),a=i.filter((e=>e.id===A.id));if(1===a.length){const A=cloneElement(a[0]);this.excalidrawData.updateTextElement(A,e,t,!0),i[i.indexOf(a[0])]=A,await this.updateScene({elements:i}),A.containerId&&this.updateContainerSize(A.containerId)}n.history.clear()}));return i?(r&&this.updateContainerSize(r,!0),this.textMode===TextMode.raw?[e,t,s]:e===i?s?[i,a,s]:[null,null,null]:(n.history.clear(),[i,a,s])):[null,null,null]}return r&&this.updateContainerSize(r,!0),this.textMode===TextMode.parsed?this.excalidrawData.getParsedText(A.id):[null,null,null]},onLinkOpen:async(A,e)=>{var t;if(e.preventDefault(),!A)return;const i=A.link;if(!i||""===i)return;const n=this.ownerDocument.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");n&&this.ownerDocument.body.removeChild(n);const a=null===(t=null==e?void 0:e.detail)||void 0===t?void 0:t.nativeEvent;if(this.getHookServer().onLinkClickHook)try{if(!this.getHookServer().onLinkClickHook(A,A.link,a,this,this.getHookServer()))return}catch(e){errorlog({where:"ExcalidrawView.onLinkOpen",fn:this.getHookServer().onLinkClickHook,error:e})}i.startsWith("md://")||i.startsWith("[[")?(async()=>{const A=i.match(/(md:\/\/)?\[\[(?.*?)\]\]/);if(!A)return;let e=A.groups.link,t=null;if(e.search("#")>-1){const A=getLinkParts(e,this.file);t=`#${A.isBlockRef?"^":""}${A.ref}`,e=A.path}if(e.match(REG_LINKINDEX_INVALIDCHARS))return void new obsidian.Notice(t$d("FILENAME_INVALID_CHARS"),4e3);const n=app.metadataCache.getFirstLinkpathDest(e,this.file.path),r=a.shiftKey||a[CTRL_OR_CMD]||this.linksAlwaysOpenInANewPane||a.metaKey;if(r&&this.isFullscreen()&&this.exitFullscreen(),n)if(n===this.file){if(t)return void this.setEphemeralState({subpath:t});this.zoomToFit(!1)}else try{const A=r?a.metaKey&&!app.isMobile?app.workspace.openPopoutLeaf():getNewOrAdjacentLeaf(this.plugin,this.leaf):this.leaf;await A.openFile(n,t?{active:!1,eState:{subpath:t}}:{active:!1})}catch(A){new obsidian.Notice(A,4e3)}else new NewFileActions(this.plugin,e,r,!app.isMobile&&a.metaKey,this).open()})():window.open(i)},onLinkHover:(A,e)=>{if(A&&(this.plugin.settings.hoverPreviewWithoutCTRL||e[CTRL_OR_CMD])){B=e,B.ctrlKey=!0;const t=A.link;if(!t||""===t)return;if(t.startsWith("md://")||t.startsWith("[[")){const e=t.match(/(md:\/\/)?\[\[(?.*?)\]\]/);if(!e)return;let i=e.groups.link;E(i,A)}}},onViewModeChange:A=>{var e,t;if(null===(t=null===(e=this.toolsPanelRef)||void 0===e?void 0:e.current)||void 0===t||t.setExcalidrawViewMode(A),this.getHookServer().onViewModeChangeHook)try{this.getHookServer().onViewModeChangeHook(A,this,this.getHookServer())}catch(A){errorlog({where:"ExcalidrawView.onViewModeChange",fn:this.getHookServer().onViewModeChangeHook,error:A})}}}),e.createElement(ToolsPanel,{ref:n,visible:!1,view:this,centerPointer:()=>{const A=this.excalidrawAPI;if(!g||!g.current||!A)return;const e=A.getAppState(),{width:i,height:n}=e;t=viewportCoordsToSceneCoords({clientX:i/2,clientY:n/2},e)}})),v=e.useRef(new ResizeObserver((A=>{if(!n||!n.current)return;const{width:e,height:t}=A[0].contentRect,i=n.current.onRightEdge?n.current.previousWidth-e:0,a=n.current.onBottomEdge?n.current.previousHeight-t:0;n.current.updatePosition(a,i)})));return e.useEffect((()=>((null==n?void 0:n.current)&&v.current.observe(n.current.containerRef.current),()=>{v.current.unobserve(n.current.containerRef.current)})),[n,v]),e.createElement(e.Fragment,null,b)}));t.render(i,this.contentEl,(()=>{}))}updateContainerSize(A,e=!1){const t=this.excalidrawAPI;if(!t)return;const i=()=>{const e=A?t.getSceneElements().filter((e=>e.id===A)):t.getSceneElements().filter((A=>{var e;return null===(e=A.boundElements)||void 0===e?void 0:e.map((A=>A.type)).includes("text")}));e.length>0&&(this.initialContainerSizeUpdate&&(this.semaphores.justLoaded=!0),t.updateContainerSize(e)),this.initialContainerSizeUpdate=!1};e?setTimeout((()=>i()),50):i()}zoomToFit(A=!0){const e=this.excalidrawAPI;if(!e||!this.excalidrawRef||this.semaphores.isEditingText)return;const t=this.plugin.settings.zoomToFitMaxLevel,i=e.getSceneElements().filter((A=>A.width<1e4&&A.height<1e4));A?setTimeout((()=>e.zoomToFit(i,t,this.isFullscreen()?0:.05)),100):e.zoomToFit(i,t,this.isFullscreen()?0:.05)}async toggleTrayMode(){const A=this.excalidrawAPI;if(!A)return!1;const e=A.getAppState();A.updateScene({appState:{trayModeEnabled:!e.trayModeEnabled}}),await this.plugin.loadSettings(),this.plugin.settings.defaultTrayMode=!e.trayModeEnabled,this.plugin.saveSettings()}selectElementsMatchingQuery(A,e,t=!0,i=!1,n=!1){let a=getTextElementsMatchingQuery(A.filter((A=>"text"===A.type)),e,i);if(0!==a.length){if(n){const e=this.plugin.ea.getElementsInTheSameGroupWithElement(a[0],A);e.length>0&&(a=e)}this.zoomToElements(t,a)}else new obsidian.Notice("I could not find a matching text element")}zoomToElements(A,e){const t=this.excalidrawAPI;if(!t)return;const i=this.plugin.settings.zoomToFitMaxLevel;this.ownerWindow,A&&t.selectElements(e),t.zoomToFit(e,i,.05)}getViewSelectedElements(){var A;const e=this.excalidrawAPI;if(!e)return[];const t=null===(A=e.getAppState())||void 0===A?void 0:A.selectedElementIds;if(!t)return[];const i=Object.keys(t);if(!i)return[];const n=e.getSceneElements().filter((A=>i.includes(A.id))),a=n.filter((A=>A.boundElements&&A.boundElements.filter((A=>"text"===A.type)).length>0)).map((A=>A.boundElements.filter((A=>"text"===A.type)).map((A=>A.id))[0])),r=n.map((A=>A.id)).concat(a);return e.getSceneElements().filter((A=>r.contains(A.id)))}async copyLinkToSelectedElementToClipboard(A){const e=this.getViewSelectedElements();if(e.length<1)return void new obsidian.Notice(t$d("INSERT_LINK_TO_ELEMENT_ERROR"));let t;if(2===e.length){const A=e.filter((A=>"text"===A.type));1===A.length&&A[0].containerId&&1===e.filter((A=>A.boundElements.some((A=>"text"===A.type)))).length&&(t=A[0].id)}t||(t=1===e.length?e[0].id:this.plugin.ea.getLargestElement(e).id);const i=await ScriptEngine.inputPrompt(app,"Set link alias","Leave empty if you do not want to set an alias","");navigator.clipboard.writeText(`[[${this.file.path}#^${A}${t}${i?`|${i}`:""}]]`),new obsidian.Notice(t$d("INSERT_LINK_TO_ELEMENT_READY"))}async updateScene(A,e=!1,t=!1){const i=this.excalidrawAPI;if(!i)return;const n=A.elements&&e;n&&(A.elements=i.restore(A).elements);try{i.updateScene(A)}catch(e){if(errorlog({where:"ExcalidrawView.updateScene 1st attempt",fn:this.updateScene,error:e,scene:A,willDoSecondAttempt:!n}),n)warningUnknowSeriousError();else try{A.elements=i.restore(A).elements,i.updateScene(A)}catch(e){errorlog({where:"ExcalidrawView.updateScene 2nd attempt",fn:this.updateScene,error:e,scene:A}),warningUnknowSeriousError()}}}}function getTextMode(A){return A.search("excalidraw-plugin: parsed\n")>-1||A.search("excalidraw-plugin: locked\n")>-1?TextMode.parsed:TextMode.raw}const DEFAULT_SETTINGS={folder:"Excalidraw",embedUseExcalidrawFolder:!1,templateFilePath:"Excalidraw/Template.excalidraw",scriptFolderPath:"Excalidraw/Scripts",compress:!1,autosave:!0,autosaveInterval:15e3,drawingFilenamePrefix:"Drawing ",drawingEmbedPrefixWithFilename:!0,drawingFilnameEmbedPostfix:" ",drawingFilenameDateTime:"YYYY-MM-DD HH.mm.ss",useExcalidrawExtension:!0,displaySVGInPreview:!0,displayExportedImageIfAvailable:!1,previewMatchObsidianTheme:!1,width:"400",isLeftHanded:!1,matchTheme:!1,matchThemeAlways:!1,matchThemeTrigger:!1,defaultMode:"normal",defaultPenMode:"never",zoomToFitOnResize:!0,zoomToFitMaxLevel:2,linkPrefix:"📍",urlPrefix:"🌐",parseTODO:!1,todo:"☐",done:"🗹",hoverPreviewWithoutCTRL:!1,linkOpacity:1,openInAdjacentPane:!1,openInMainWorkspace:!0,showLinkBrackets:!0,allowCtrlClick:!0,forceWrap:!1,pageTransclusionCharLimit:200,wordWrappingDefault:0,removeTransclusionQuoteSigns:!0,iframelyAllowed:!0,pngExportScale:1,exportWithTheme:!0,exportWithBackground:!0,exportPaddingSVG:10,keepInSync:!1,autoexportSVG:!1,autoexportPNG:!1,autoExportLightAndDark:!1,autoexportExcalidraw:!1,embedType:"excalidraw",embedWikiLink:!0,syncExcalidraw:!1,experimentalFileType:!1,experimentalFileTag:"✏️",experimentalLivePreview:!0,experimentalEnableFourthFont:!1,experimantalFourthFont:"Virgil",fieldSuggester:!0,compatibilityMode:!1,drawingOpenCount:0,library:"deprecated",library2:{type:"excalidrawlib",version:2,source:"https://excalidraw.com",libraryItems:[]},imageElementNotice:!0,mdSVGwidth:500,mdSVGmaxHeight:800,mdFont:"Virgil",mdFontColor:"Black",mdBorderColor:"Black",mdCSS:"",scriptEngineSettings:{},defaultTrayMode:!1,previousRelease:"1.6.13",showReleaseNotes:!0,showNewVersionNotification:!0,mathjaxSourceURL:"https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js"},fragWithHTML=A=>createFragment((e=>e.createDiv().innerHTML=A));class ExcalidrawSettingTab extends obsidian.PluginSettingTab{constructor(A,e){super(A,e),this.requestEmbedUpdate=!1,this.requestReloadDrawings=!1,this.reloadMathJax=!1,this.plugin=e}applySettingsUpdate(A=!1){A&&(this.requestReloadDrawings=!0)}async hide(){if(this.plugin.settings.scriptFolderPath=obsidian.normalizePath(this.plugin.settings.scriptFolderPath),"/"!==this.plugin.settings.scriptFolderPath&&""!==this.plugin.settings.scriptFolderPath||(this.plugin.settings.scriptFolderPath="Excalidraw/Scripts"),this.plugin.saveSettings(),this.requestReloadDrawings){const A=app.workspace.getLeavesOfType("excalidraw");for(const e of A)e.view instanceof ExcalidrawView&&(await e.view.save(!1),await e.view.reload(!0));this.requestEmbedUpdate=!0}this.requestEmbedUpdate&&this.plugin.triggerEmbedUpdates(),this.plugin.scriptEngine.updateScriptPath(),this.reloadMathJax&&this.plugin.loadMathJax()}async display(){var A;await this.plugin.loadSettings(),this.requestEmbedUpdate=!1,this.requestReloadDrawings=!1;const{containerEl:e}=this;this.containerEl.empty();const t=e.createDiv("coffee");t.addClass("ex-coffee-div"),t.createEl("a",{href:"https://ko-fi.com/zsolt"}).createEl("img",{attr:{src:"https://cdn.ko-fi.com/cdn/kofi3.png?v=3"}}).height=45,new obsidian.Setting(e).setName(t$d("RELEASE_NOTES_NAME")).setDesc(fragWithHTML(t$d("RELEASE_NOTES_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.showReleaseNotes).onChange((async A=>{this.plugin.settings.showReleaseNotes=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("NEWVERSION_NOTIFICATION_NAME")).setDesc(fragWithHTML(t$d("NEWVERSION_NOTIFICATION_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.showNewVersionNotification).onChange((async A=>{this.plugin.settings.showNewVersionNotification=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FOLDER_NAME")).setDesc(fragWithHTML(t$d("FOLDER_DESC"))).addText((A=>A.setPlaceholder("Excalidraw").setValue(this.plugin.settings.folder).onChange((async A=>{this.plugin.settings.folder=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FOLDER_EMBED_NAME")).setDesc(fragWithHTML(t$d("FOLDER_EMBED_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.embedUseExcalidrawFolder).onChange((async A=>{this.plugin.settings.embedUseExcalidrawFolder=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("TEMPLATE_NAME")).setDesc(fragWithHTML(t$d("TEMPLATE_DESC"))).addText((A=>A.setPlaceholder("Excalidraw/Template").setValue(this.plugin.settings.templateFilePath).onChange((async A=>{this.plugin.settings.templateFilePath=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("SCRIPT_FOLDER_NAME")).setDesc(fragWithHTML(t$d("SCRIPT_FOLDER_DESC"))).addText((A=>A.setPlaceholder("Excalidraw/Scripts").setValue(this.plugin.settings.scriptFolderPath).onChange((async A=>{this.plugin.settings.scriptFolderPath=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("COMPRESS_NAME")).setDesc(fragWithHTML(t$d("COMPRESS_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.compress).onChange((async A=>{this.plugin.settings.compress=A,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("FILENAME_HEAD")}),e.createDiv("",(A=>{A.innerHTML=t$d("FILENAME_DESC")}));const i=()=>`${t$d("FILENAME_SAMPLE")}${getDrawingFilename(this.plugin.settings)}
${t$d("FILENAME_EMBED_SAMPLE")}${getEmbedFilename("{NOTE_NAME}",this.plugin.settings)}`,n=e.createEl("p",{text:""});let a,r,s,o,l,c,d;n.innerHTML=i(),new obsidian.Setting(e).setName(t$d("FILENAME_PREFIX_NAME")).setDesc(fragWithHTML(t$d("FILENAME_PREFIX_DESC"))).addText((A=>A.setPlaceholder("Drawing ").setValue(this.plugin.settings.drawingFilenamePrefix).onChange((async e=>{this.plugin.settings.drawingFilenamePrefix=e.replaceAll(/[<>:"/\\|?*]/g,"_"),A.setValue(this.plugin.settings.drawingFilenamePrefix),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FILENAME_PREFIX_EMBED_NAME")).setDesc(fragWithHTML(t$d("FILENAME_PREFIX_EMBED_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.drawingEmbedPrefixWithFilename).onChange((async A=>{this.plugin.settings.drawingEmbedPrefixWithFilename=A,n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FILENAME_POSTFIX_NAME")).setDesc(fragWithHTML(t$d("FILENAME_POSTFIX_DESC"))).addText((A=>A.setPlaceholder("").setValue(this.plugin.settings.drawingFilnameEmbedPostfix).onChange((async e=>{this.plugin.settings.drawingFilnameEmbedPostfix=e.replaceAll(/[<>:"/\\|?*]/g,"_"),A.setValue(this.plugin.settings.drawingFilnameEmbedPostfix),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FILENAME_DATE_NAME")).setDesc(fragWithHTML(t$d("FILENAME_DATE_DESC"))).addText((A=>A.setPlaceholder("YYYY-MM-DD HH.mm.ss").setValue(this.plugin.settings.drawingFilenameDateTime).onChange((async e=>{this.plugin.settings.drawingFilenameDateTime=e.replaceAll(/[<>:"/\\|?*]/g,"_"),A.setValue(this.plugin.settings.drawingFilenameDateTime),n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FILENAME_EXCALIDRAW_EXTENSION_NAME")).setDesc(fragWithHTML(t$d("FILENAME_EXCALIDRAW_EXTENSION_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.useExcalidrawExtension).onChange((async A=>{this.plugin.settings.useExcalidrawExtension=A,n.innerHTML=i(),this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("DISPLAY_HEAD")}),new obsidian.Setting(e).setName(t$d("LEFTHANDED_MODE_NAME")).setDesc(fragWithHTML(t$d("LEFTHANDED_MODE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.isLeftHanded).onChange((async A=>{this.plugin.settings.isLeftHanded=A,setLeftHandedMode(A),setTimeout((()=>setLeftHandedMode(A))),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("MATCH_THEME_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.matchTheme).onChange((async A=>{this.plugin.settings.matchTheme=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("MATCH_THEME_ALWAYS_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_ALWAYS_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.matchThemeAlways).onChange((async A=>{this.plugin.settings.matchThemeAlways=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("MATCH_THEME_TRIGGER_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_TRIGGER_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.matchThemeTrigger).onChange((async A=>{this.plugin.settings.matchThemeTrigger=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("DEFAULT_OPEN_MODE_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_OPEN_MODE_DESC"))).addDropdown((A=>A.addOption("normal","Normal Mode").addOption("zen","Zen Mode").addOption("view","View Mode").setValue(this.plugin.settings.defaultMode).onChange((async A=>{this.plugin.settings.defaultMode=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("DEFAULT_PEN_MODE_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_PEN_MODE_DESC"))).addDropdown((A=>A.addOption("never","Never").addOption("mobile","On Obsidian Mobile").addOption("always","Always").setValue(this.plugin.settings.defaultPenMode).onChange((async A=>{this.plugin.settings.defaultPenMode=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("ZOOM_TO_FIT_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.zoomToFitOnResize).onChange((async A=>{this.plugin.settings.zoomToFitOnResize=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("ZOOM_TO_FIT_MAX_LEVEL_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_MAX_LEVEL_DESC"))).addSlider((A=>A.setLimits(.5,10,.5).setValue(this.plugin.settings.zoomToFitMaxLevel).onChange((async A=>{a.innerText=` ${A.toString()}`,this.plugin.settings.zoomToFitMaxLevel=A,this.applySettingsUpdate()})))).settingEl.createDiv("",(A=>{a=A,A.style.minWidth="2.3em",A.style.textAlign="right",A.innerText=` ${this.plugin.settings.zoomToFitMaxLevel.toString()}`})),this.containerEl.createEl("h1",{text:t$d("LINKS_HEAD")}),this.containerEl.createEl("span",void 0,(A=>A.innerHTML=t$d("LINKS_DESC"))),new obsidian.Setting(e).setName(t$d("ADJACENT_PANE_NAME")).setDesc(fragWithHTML(t$d("ADJACENT_PANE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.openInAdjacentPane).onChange((async A=>{this.plugin.settings.openInAdjacentPane=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("MAINWORKSPACE_PANE_NAME")).setDesc(fragWithHTML(t$d("MAINWORKSPACE_PANE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.openInMainWorkspace).onChange((async A=>{this.plugin.settings.openInMainWorkspace=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(fragWithHTML(t$d("LINK_BRACKETS_NAME"))).setDesc(fragWithHTML(t$d("LINK_BRACKETS_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.showLinkBrackets).onChange((A=>{this.plugin.settings.showLinkBrackets=A,this.applySettingsUpdate(!0)})))),new obsidian.Setting(e).setName(t$d("LINK_PREFIX_NAME")).setDesc(fragWithHTML(t$d("LINK_PREFIX_DESC"))).addText((A=>A.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.linkPrefix).onChange((A=>{this.plugin.settings.linkPrefix=A,this.applySettingsUpdate(!0)})))),new obsidian.Setting(e).setName(t$d("URL_PREFIX_NAME")).setDesc(fragWithHTML(t$d("URL_PREFIX_DESC"))).addText((A=>A.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.urlPrefix).onChange((A=>{this.plugin.settings.urlPrefix=A,this.applySettingsUpdate(!0)})))),new obsidian.Setting(e).setName(t$d("PARSE_TODO_NAME")).setDesc(fragWithHTML(t$d("PARSE_TODO_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.parseTODO).onChange((A=>{this.plugin.settings.parseTODO=A,r.setDisabled(!A),s.setDisabled(!A),this.applySettingsUpdate(!0)})))),new obsidian.Setting(e).setName(t$d("TODO_NAME")).setDesc(fragWithHTML(t$d("TODO_DESC"))).addText((A=>{r=A,A.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.todo).onChange((A=>{this.plugin.settings.todo=A,this.applySettingsUpdate(!0)}))})),r.setDisabled(!this.plugin.settings.parseTODO),new obsidian.Setting(e).setName(t$d("DONE_NAME")).setDesc(fragWithHTML(t$d("DONE_DESC"))).setDisabled(!this.plugin.settings.parseTODO).addText((A=>{s=A,A.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.done).onChange((A=>{this.plugin.settings.done=A,this.applySettingsUpdate(!0)}))})),s.setDisabled(!this.plugin.settings.parseTODO),new obsidian.Setting(e).setName(t$d("LINKOPACITY_NAME")).setDesc(fragWithHTML(t$d("LINKOPACITY_DESC"))).addSlider((A=>A.setLimits(0,1,.05).setValue(this.plugin.settings.linkOpacity).onChange((async A=>{o.innerText=` ${A.toString()}`,this.plugin.settings.linkOpacity=A,this.applySettingsUpdate(!0)})))).settingEl.createDiv("",(A=>{o=A,A.style.minWidth="2.3em",A.style.textAlign="right",A.innerText=` ${this.plugin.settings.linkOpacity.toString()}`})),new obsidian.Setting(e).setName(t$d("HOVERPREVIEW_NAME")).setDesc(fragWithHTML(t$d("HOVERPREVIEW_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.hoverPreviewWithoutCTRL).onChange((async A=>{this.plugin.settings.hoverPreviewWithoutCTRL=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("LINK_CTRL_CLICK_NAME")).setDesc(fragWithHTML(t$d("LINK_CTRL_CLICK_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.allowCtrlClick).onChange((async A=>{this.plugin.settings.allowCtrlClick=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("TRANSCLUSION_WRAP_NAME")).setDesc(fragWithHTML(t$d("TRANSCLUSION_WRAP_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.forceWrap).onChange((async A=>{this.plugin.settings.forceWrap=A,this.applySettingsUpdate(!0)})))).descEl.innerHTML=`![[doc#^ref]]{number} ${t$d("TRANSCLUSION_WRAP_DESC")}`,new obsidian.Setting(e).setName(t$d("PAGE_TRANSCLUSION_CHARCOUNT_NAME")).setDesc(fragWithHTML(t$d("PAGE_TRANSCLUSION_CHARCOUNT_DESC"))).addText((A=>A.setPlaceholder("Enter a number").setValue(this.plugin.settings.pageTransclusionCharLimit.toString()).onChange((async e=>{const t=parseInt(e);if(isNaN(t)&&""!==e)A.setValue(this.plugin.settings.pageTransclusionCharLimit.toString());else{if(this.requestEmbedUpdate=!0,""===e)return this.plugin.settings.pageTransclusionCharLimit=10,void this.applySettingsUpdate(!0);this.plugin.settings.pageTransclusionCharLimit=t,A.setValue(this.plugin.settings.pageTransclusionCharLimit.toString()),this.applySettingsUpdate(!0)}})))),new obsidian.Setting(e).setName(t$d("TRANSCLUSION_DEFAULT_WRAP_NAME")).setDesc(fragWithHTML(t$d("TRANSCLUSION_DEFAULT_WRAP_DESC"))).addText((A=>A.setPlaceholder("Enter a number").setValue(this.plugin.settings.wordWrappingDefault.toString()).onChange((async e=>{const t=parseInt(e);if(isNaN(t)&&""!==e)A.setValue(this.plugin.settings.wordWrappingDefault.toString());else{if(this.requestEmbedUpdate=!0,""===e)return this.plugin.settings.wordWrappingDefault=0,void this.applySettingsUpdate(!0);this.plugin.settings.wordWrappingDefault=t,A.setValue(this.plugin.settings.wordWrappingDefault.toString()),this.applySettingsUpdate(!0)}})))),new obsidian.Setting(e).setName(t$d("QUOTE_TRANSCLUSION_REMOVE_NAME")).setDesc(fragWithHTML(t$d("QUOTE_TRANSCLUSION_REMOVE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.removeTransclusionQuoteSigns).onChange((A=>{this.plugin.settings.removeTransclusionQuoteSigns=A,this.requestEmbedUpdate=!0,this.applySettingsUpdate(!0)})))),new obsidian.Setting(e).setName(t$d("GET_URL_TITLE_NAME")).setDesc(fragWithHTML(t$d("GET_URL_TITLE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.iframelyAllowed).onChange((async A=>{this.plugin.settings.iframelyAllowed=A,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("MD_HEAD")}),this.containerEl.createEl("p",{text:t$d("MD_HEAD_DESC")}),new obsidian.Setting(e).setName(t$d("MD_TRANSCLUDE_WIDTH_NAME")).setDesc(fragWithHTML(t$d("MD_TRANSCLUDE_WIDTH_DESC"))).addText((A=>A.setPlaceholder("Enter a number e.g. 500").setValue(this.plugin.settings.mdSVGwidth.toString()).onChange((async e=>{const t=parseInt(e);if(isNaN(t)&&""!==e)A.setValue(this.plugin.settings.mdSVGwidth.toString());else{if(this.requestEmbedUpdate=!0,""===e)return this.plugin.settings.mdSVGwidth=500,void this.applySettingsUpdate(!0);this.plugin.settings.mdSVGwidth=t,this.requestReloadDrawings=!0,A.setValue(this.plugin.settings.mdSVGwidth.toString()),this.applySettingsUpdate(!0)}})))),new obsidian.Setting(e).setName(t$d("MD_TRANSCLUDE_HEIGHT_NAME")).setDesc(fragWithHTML(t$d("MD_TRANSCLUDE_HEIGHT_DESC"))).addText((A=>A.setPlaceholder("Enter a number e.g. 800").setValue(this.plugin.settings.mdSVGmaxHeight.toString()).onChange((async e=>{const t=parseInt(e);if(isNaN(t)&&""!==e)A.setValue(this.plugin.settings.mdSVGmaxHeight.toString());else{if(this.requestEmbedUpdate=!0,""===e)return this.plugin.settings.mdSVGmaxHeight=800,void this.applySettingsUpdate(!0);this.plugin.settings.mdSVGmaxHeight=t,this.requestReloadDrawings=!0,A.setValue(this.plugin.settings.mdSVGmaxHeight.toString()),this.applySettingsUpdate(!0)}})))),new obsidian.Setting(e).setName(t$d("MD_DEFAULT_FONT_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_FONT_DESC"))).addDropdown((async A=>{A.addOption("Virgil","Virgil"),A.addOption("Cascadia","Cascadia"),this.app.vault.getFiles().filter((A=>["ttf","woff","woff2"].contains(A.extension))).forEach((e=>{A.addOption(e.path,e.name)})),A.setValue(this.plugin.settings.mdFont).onChange((A=>{this.requestReloadDrawings=!0,this.plugin.settings.mdFont=A,this.applySettingsUpdate(!0)}))})),new obsidian.Setting(e).setName(t$d("MD_DEFAULT_COLOR_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_COLOR_DESC"))).addText((A=>A.setPlaceholder("CSS Color-name|RGB-HEX").setValue(this.plugin.settings.mdFontColor).onChange((A=>{this.requestReloadDrawings=!0,this.plugin.settings.mdFontColor=A,this.applySettingsUpdate(!0)})))),new obsidian.Setting(e).setName(t$d("MD_DEFAULT_BORDER_COLOR_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_BORDER_COLOR_DESC"))).addText((A=>A.setPlaceholder("CSS Color-name|RGB-HEX").setValue(this.plugin.settings.mdBorderColor).onChange((A=>{this.requestReloadDrawings=!0,this.plugin.settings.mdBorderColor=A,this.applySettingsUpdate(!0)})))),new obsidian.Setting(e).setName(t$d("MD_CSS_NAME")).setDesc(fragWithHTML(t$d("MD_CSS_DESC"))).addText((A=>A.setPlaceholder("filename of css file in vault").setValue(this.plugin.settings.mdCSS).onChange((A=>{this.requestReloadDrawings=!0,this.plugin.settings.mdCSS=A,this.applySettingsUpdate(!0)})))),this.containerEl.createEl("h1",{text:t$d("EMBED_HEAD")}),new obsidian.Setting(e).setName(t$d("EMBED_PREVIEW_SVG_NAME")).setDesc(fragWithHTML(t$d("EMBED_PREVIEW_SVG_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.displaySVGInPreview).onChange((async A=>{this.plugin.settings.displaySVGInPreview=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("EMBED_REUSE_EXPORTED_IMAGE_NAME")).setDesc(fragWithHTML(t$d("EMBED_REUSE_EXPORTED_IMAGE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.displayExportedImageIfAvailable).onChange((async A=>{this.plugin.settings.displayExportedImageIfAvailable=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("PREVIEW_MATCH_OBSIDIAN_NAME")).setDesc(fragWithHTML(t$d("PREVIEW_MATCH_OBSIDIAN_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.previewMatchObsidianTheme).onChange((async A=>{this.plugin.settings.previewMatchObsidianTheme=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("EMBED_WIDTH_NAME")).setDesc(fragWithHTML(t$d("EMBED_WIDTH_DESC"))).addText((A=>A.setPlaceholder("400").setValue(this.plugin.settings.width).onChange((async A=>{this.plugin.settings.width=A,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),new obsidian.Setting(e).setName(t$d("EMBED_TYPE_NAME")).setDesc(fragWithHTML(t$d("EMBED_TYPE_DESC"))).addDropdown((async A=>{l=A,l.addOption("excalidraw","excalidraw"),this.plugin.settings.autoexportPNG?l.addOption("PNG","PNG"):"PNG"===this.plugin.settings.embedType&&(this.plugin.settings.embedType="excalidraw",this.applySettingsUpdate()),this.plugin.settings.autoexportSVG?l.addOption("SVG","SVG"):"SVG"===this.plugin.settings.embedType&&(this.plugin.settings.embedType="excalidraw",this.applySettingsUpdate()),l.setValue(this.plugin.settings.embedType).onChange((async A=>{this.plugin.settings.embedType=A,this.applySettingsUpdate()}))})),new obsidian.Setting(e).setName(t$d("EMBED_WIKILINK_NAME")).setDesc(fragWithHTML(t$d("EMBED_WIKILINK_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.embedWikiLink).onChange((async A=>{this.plugin.settings.embedWikiLink=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("EXPORT_PNG_SCALE_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PNG_SCALE_DESC"))).addSlider((A=>A.setLimits(1,5,.5).setValue(this.plugin.settings.pngExportScale).onChange((async A=>{c.innerText=` ${A.toString()}`,this.plugin.settings.pngExportScale=A,this.applySettingsUpdate()})))).settingEl.createDiv("",(A=>{c=A,A.style.minWidth="2.3em",A.style.textAlign="right",A.innerText=` ${this.plugin.settings.pngExportScale.toString()}`})),new obsidian.Setting(e).setName(t$d("EXPORT_BACKGROUND_NAME")).setDesc(fragWithHTML(t$d("EXPORT_BACKGROUND_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.exportWithBackground).onChange((async A=>{this.plugin.settings.exportWithBackground=A,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),new obsidian.Setting(e).setName(t$d("EXPORT_PADDING_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PADDING_DESC"))).addSlider((A=>A.setLimits(0,50,5).setValue(this.plugin.settings.exportPaddingSVG).onChange((async A=>{d.innerText=` ${A.toString()}`,this.plugin.settings.exportPaddingSVG=A,this.applySettingsUpdate()})))).settingEl.createDiv("",(A=>{d=A,A.style.minWidth="2.3em",A.style.textAlign="right",A.innerText=` ${this.plugin.settings.exportPaddingSVG.toString()}`})),new obsidian.Setting(e).setName(t$d("EXPORT_THEME_NAME")).setDesc(fragWithHTML(t$d("EXPORT_THEME_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.exportWithTheme).onChange((async A=>{this.plugin.settings.exportWithTheme=A,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),this.containerEl.createEl("h1",{text:t$d("EXPORT_HEAD")}),new obsidian.Setting(e).setName(t$d("EXPORT_SYNC_NAME")).setDesc(fragWithHTML(t$d("EXPORT_SYNC_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.keepInSync).onChange((async A=>{this.plugin.settings.keepInSync=A,this.applySettingsUpdate()}))));const h=A=>{let e=0;for(e=0;eA.setValue(this.plugin.settings.autoexportSVG).onChange((async A=>{A?l.addOption("SVG","SVG"):("SVG"===this.plugin.settings.embedType&&(l.setValue("excalidraw"),this.plugin.settings.embedType="excalidraw"),h("SVG")),this.plugin.settings.autoexportSVG=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("EXPORT_PNG_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PNG_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.autoexportPNG).onChange((async A=>{A?l.addOption("PNG","PNG"):("PNG"===this.plugin.settings.embedType&&(l.setValue("excalidraw"),this.plugin.settings.embedType="excalidraw"),h("PNG")),this.plugin.settings.autoexportPNG=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("EXPORT_BOTH_DARK_AND_LIGHT_NAME")).setDesc(fragWithHTML(t$d("EXPORT_BOTH_DARK_AND_LIGHT_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.autoExportLightAndDark).onChange((async A=>{this.plugin.settings.autoExportLightAndDark=A,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("COMPATIBILITY_HEAD")}),new obsidian.Setting(e).setName(t$d("COMPATIBILITY_MODE_NAME")).setDesc(fragWithHTML(t$d("COMPATIBILITY_MODE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.compatibilityMode).onChange((async A=>{this.plugin.settings.compatibilityMode=A,n.innerHTML=i(),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("EXPORT_EXCALIDRAW_NAME")).setDesc(fragWithHTML(t$d("EXPORT_EXCALIDRAW_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.autoexportExcalidraw).onChange((async A=>{this.plugin.settings.autoexportExcalidraw=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("SYNC_EXCALIDRAW_NAME")).setDesc(fragWithHTML(t$d("SYNC_EXCALIDRAW_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.syncExcalidraw).onChange((async A=>{this.plugin.settings.syncExcalidraw=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("MATHJAX_NAME")).setDesc(t$d("MATHJAX_DESC")).addDropdown((A=>{A.addOption("https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js","jsdelivr").addOption("https://unpkg.com/mathjax@3.2.1/es5/tex-svg.js","unpkg").addOption("https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.1/es5/tex-svg-full.min.js","cdnjs").setValue(this.plugin.settings.mathjaxSourceURL).onChange((A=>{this.plugin.settings.mathjaxSourceURL=A,this.reloadMathJax=!0,this.applySettingsUpdate()}))})),this.containerEl.createEl("h1",{text:t$d("EXPERIMENTAL_HEAD")}),this.containerEl.createEl("p",{text:t$d("EXPERIMENTAL_DESC")}),new obsidian.Setting(e).setName(t$d("FIELD_SUGGESTER_NAME")).setDesc(fragWithHTML(t$d("FIELD_SUGGESTER_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.fieldSuggester).onChange((async A=>{this.plugin.settings.fieldSuggester=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FILETYPE_NAME")).setDesc(fragWithHTML(t$d("FILETYPE_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.experimentalFileType).onChange((async A=>{this.plugin.settings.experimentalFileType=A,this.plugin.experimentalFileTypeDisplayToggle(A),this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FILETAG_NAME")).setDesc(fragWithHTML(t$d("FILETAG_DESC"))).addText((A=>A.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.experimentalFileTag).onChange((async A=>{this.plugin.settings.experimentalFileTag=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("LIVEPREVIEW_NAME")).setDesc(fragWithHTML(t$d("LIVEPREVIEW_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.experimentalLivePreview).onChange((async A=>{this.plugin.settings.experimentalLivePreview=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("ENABLE_FOURTH_FONT_NAME")).setDesc(fragWithHTML(t$d("ENABLE_FOURTH_FONT_DESC"))).addToggle((A=>A.setValue(this.plugin.settings.experimentalEnableFourthFont).onChange((async A=>{this.requestReloadDrawings=!0,this.plugin.settings.experimentalEnableFourthFont=A,this.applySettingsUpdate()})))),new obsidian.Setting(e).setName(t$d("FOURTH_FONT_NAME")).setDesc(fragWithHTML(t$d("FOURTH_FONT_DESC"))).addDropdown((async A=>{A.addOption("Virgil","Virgil"),this.app.vault.getFiles().filter((A=>["ttf","woff","woff2"].contains(A.extension))).forEach((e=>{A.addOption(e.path,e.name)})),A.setValue(this.plugin.settings.experimantalFourthFont).onChange((A=>{this.requestReloadDrawings=!0,this.plugin.settings.experimantalFourthFont=A,this.applySettingsUpdate(!0),this.plugin.initializeFourthFont()}))}));const g=null===(A=this.plugin.scriptEngine.getListofScripts())||void 0===A?void 0:A.map((A=>this.plugin.scriptEngine.getScriptName(A)));if(Object.keys(this.plugin.settings.scriptEngineSettings).length>0&&g){const A=(A,e)=>{const t=this.plugin.settings.scriptEngineSettings[A][e];return"object"==typeof t?t.height:null},t=(A,e)=>{const t=this.plugin.settings.scriptEngineSettings[A][e];return"object"==typeof t?t.value:t},i=(A,e,t)=>{"object"==typeof this.plugin.settings.scriptEngineSettings[A][e]?this.plugin.settings.scriptEngineSettings[A][e].value=t:this.plugin.settings.scriptEngineSettings[A][e]=t},n=(A,n,a)=>{new obsidian.Setting(e).setName(n).setDesc(fragWithHTML(null!=a?a:"")).addToggle((e=>e.setValue(t(A,n)).onChange((async e=>{i(A,n,e),this.applySettingsUpdate()}))))},a=(n,a,r,s)=>{s&&"[object Array]"===Object.prototype.toString.call(s)&&s.length>0?new obsidian.Setting(e).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addDropdown((A=>{s.forEach((e=>A.addOption(e.toString(),e.toString()))),A.setValue(t(n,a)).onChange((async A=>{i(n,a,A),this.applySettingsUpdate()}))})):A(n,a)?new obsidian.Setting(e).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addTextArea((e=>{e.inputEl.style.minHeight=A(n,a),e.inputEl.style.minWidth="400px",e.setValue(t(n,a)).onChange((async A=>{i(n,a,A),this.applySettingsUpdate()}))})):new obsidian.Setting(e).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addText((A=>A.setValue(t(n,a)).onChange((async A=>{i(n,a,A),this.applySettingsUpdate()}))))},r=(A,n,a)=>{new obsidian.Setting(e).setName(n).setDesc(fragWithHTML(null!=a?a:"")).addText((e=>e.setPlaceholder("Enter a number").setValue(t(A,n).toString()).onChange((async a=>{const r=parseFloat(a);isNaN(r)&&""!==a?e.setValue(t(A,n).toString()):(i(A,n,isNaN(r)?0:r),this.applySettingsUpdate())}))))};this.containerEl.createEl("h1",{text:t$d("SCRIPT_SETTINGS_HEAD")}),Object.keys(this.plugin.settings.scriptEngineSettings).filter((A=>g.contains(A))).forEach((A=>{const e=this.plugin.settings.scriptEngineSettings[A],t=Object.values(e);0===t.length||t.length>0&&0===t.map((A=>A.hidden?0:1)).reduce(((A,e)=>A+e))||(this.containerEl.createEl("h3",{text:A}),Object.keys(e).forEach((t=>{var i;const s=e[t];switch(typeof(null!==(i=s.value)&&void 0!==i?i:s)){case"boolean":s.hidden||n(A,t,s.description);break;case"string":s.hidden||a(A,t,s.description,s.valueset);break;case"number":s.hidden||r(A,t,s.description)}})))}))}}}var openDialogAction;!function(A){A[A.openFile=0]="openFile",A[A.insertLinkToDrawing=1]="insertLinkToDrawing"}(openDialogAction||(openDialogAction={}));class OpenFileDialog extends obsidian.FuzzySuggestModal{constructor(A,e){super(A),this.app=A,this.action=openDialogAction.openFile,this.plugin=e,this.onNewPane=!1,this.limit=20,this.setInstructions([{command:t$d("TYPE_FILENAME"),purpose:""}]),this.inputEl.onkeyup=A=>{"Enter"==A.key&&this.action==openDialogAction.openFile&&this.containerEl.innerText.includes(EMPTY_MESSAGE)&&(this.plugin.createAndOpenDrawing(`${this.plugin.settings.folder}/${this.inputEl.value}.excalidraw.md`,this.onNewPane?"new-pane":"active-pane"),this.close())}}getItems(){return(this.app.vault.getFiles()||[]).filter((A=>this.plugin.isExcalidrawFile(A)))}getItemText(A){return A.path}onChooseItem(A){switch(this.action){case openDialogAction.openFile:this.plugin.openDrawing(A,this.onNewPane?"new-pane":"active-pane",!0);break;case openDialogAction.insertLinkToDrawing:this.plugin.embedDrawing(A)}}start(A,e){switch(this.action=A,this.onNewPane=e,A){case openDialogAction.openFile:this.emptyStateText=EMPTY_MESSAGE,this.setPlaceholder(t$d("SELECT_FILE_OR_TYPE_NEW"));break;case openDialogAction.insertLinkToDrawing:this.emptyStateText=t$d("NO_MATCH"),this.setPlaceholder(t$d("SELECT_TO_EMBED"))}this.open()}}class InsertLinkDialog extends obsidian.FuzzySuggestModal{constructor(A){super(A),this.app=A,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_FILE_TO_LINK")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return this.app.metadataCache.getLinkSuggestions().filter((A=>!A.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(A){return A.path+(A.alias?`|${A.alias}`:"")}onChooseItem(A){let e=A.path;A.file&&(e=this.app.metadataCache.fileToLinktext(A.file,this.drawingPath,!0)),this.addText(`[[${e+(A.alias?`|${A.alias}`:"")}]]`)}start(A,e){this.addText=e,this.drawingPath=A,this.open()}}class InsertImageDialog extends obsidian.FuzzySuggestModal{constructor(A){super(A.app),this.plugin=A,this.app=A.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_DRAWING")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return(this.app.vault.getFiles()||[]).filter((A=>(IMAGE_TYPES.contains(A.extension)||this.plugin.isExcalidrawFile(A))&&!A.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(A){return A.path}onChooseItem(A){const e=this.plugin.ea;e.reset(),e.setView(this.view),e.canvas.theme=this.view.excalidrawAPI.getAppState().theme,(async()=>{await e.addImage(0,0,A),e.addElementsToView(!0,!1,!0)})()}start(A){this.view=A,this.open()}}class InsertMDDialog extends obsidian.FuzzySuggestModal{constructor(A){super(A.app),this.plugin=A,this.app=A.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_MD")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return(this.app.vault.getFiles()||[]).filter((A=>"md"===A.extension&&!this.plugin.isExcalidrawFile(A)))}getItemText(A){return A.path}onChooseItem(A){const e=this.plugin.ea;e.reset(),e.setView(this.view),(async()=>{await e.addImage(0,0,A),e.addElementsToView(!0,!1,!0)})()}start(A){this.view=A,this.open()}}function around(A,e){const t=Object.keys(e).map((t=>around1(A,t,e[t])));return 1===t.length?t[0]:function(){t.forEach((A=>A()))}}function around1(A,e,t){const i=A[e],n=A.hasOwnProperty(e);let a=t(i);return i&&Object.setPrototypeOf(a,i),Object.setPrototypeOf(r,a),A[e]=r,s;function r(...t){return a===i&&A[e]===r&&s(),a.apply(this,t)}function s(){A[e]===r&&(n?A[e]=i:delete A[e]),a!==i&&(a=i,Object.setPrototypeOf(r,i||Function))}}let plugin,vault,metadataCache;const getDefaultWidth=A=>{const e=parseInt(A.settings.width);return isNaN(e)||0===e||null===e?"400":A.settings.width},initializeMarkdownPostProcessor=A=>{plugin=A,vault=A.app.vault,metadataCache=A.app.metadataCache},getIMG=async A=>{var e;let t=A.file;if(!A.file){const i=vault.getAbstractFileByPath(null===(e=A.fname)||void 0===e?void 0:e.split("#")[0]);if(!(i&&i instanceof obsidian.TFile))return null;t=i}const i=getEmbeddedFilenameParts(A.fname);A.style=A.style.replaceAll(" ","-");const n=hasExportTheme(plugin,t)?getExportTheme(plugin,t,"light"):void 0,a={withBackground:getWithBackground(plugin,t),withTheme:!!n||plugin.settings.exportWithTheme},r=createEl("img");let s=`max-width:${A.fwidth}px !important; width:100%;`;A.fheight&&(s+=`height:${A.fheight}px;`),r.setAttribute("style",s),r.addClass(A.style);const o=null!=n?n:plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":plugin.settings.exportWithTheme?void 0:"light";o&&(a.withTheme=!0);const l=new EmbeddedFilesLoader(plugin,o?"dark"===o:void 0);if(!plugin.settings.displaySVGInPreview){const e=parseInt(A.fwidth),n=e>=2400?5:e>=1800?4:e>=1200?3:e>=600?2:1,s=i.hasGroupref?void 0:await getQuickImagePreview(plugin,t.path,"png"),c=null!=s?s:await createPNG(i.hasGroupref?i.filepath+i.linkpartReference:t.path,n,a,l,o,null,null,[],plugin,0);return c?(r.src=URL.createObjectURL(c),r):null}if(!i.hasBlockref&&!i.hasSectionref){const A=await getQuickImagePreview(plugin,t.path,"svg");if(A)return r.setAttribute("src",svgToBase64(A)),r}const c=(await createSVG(i.hasGroupref||i.hasBlockref||i.hasSectionref?i.filepath+i.linkpartReference:t.path,!0,a,l,o,null,null,[],plugin,0,getExportPadding(plugin,t))).outerHTML;let d=null;const h=document.createElement("div");h.innerHTML=c;const g=h.firstChild;return g instanceof SVGSVGElement&&(d=g),d?(d=embedFontsInSVG(d,plugin),d.removeAttribute("width"),d.removeAttribute("height"),r.setAttribute("src",svgToBase64(d.outerHTML)),r):null},createImageDiv=async A=>{const e=await getIMG(A);return createDiv(A.style,(t=>{t.append(e),t.setAttribute("src",A.fname),A.fwidth&&t.setAttribute("w",A.fwidth),A.fheight&&t.setAttribute("h",A.fheight),t.onClickEvent((A=>{if(A.target instanceof Element&&"img"!=A.target.tagName.toLowerCase())return;const e=t.getAttribute("src");if(e){const t=e.match(/([^#]*)(.*)/);if(!t)return;plugin.openDrawing(vault.getAbstractFileByPath(t[1]),A[CTRL_OR_CMD]?"new-pane":A.metaKey&&!app.isMobile?"popout-window":"active-pane",!0,t[2])}})),t.addEventListener(RERENDER_EVENT,(async A=>{A.stopPropagation(),t.empty();const e=await getIMG({fname:t.getAttribute("src"),fwidth:t.getAttribute("w"),fheight:t.getAttribute("h"),style:t.getAttribute("class")});t.append(e)}))}))},processReadingMode=async(A,e)=>{var t;for(const i of A){const A=null===(t=i.getAttribute("src"))||void 0===t?void 0:t.split("#")[0];if(!A)continue;const n=metadataCache.getFirstLinkpathDest(A,e.sourcePath);if(n&&n instanceof obsidian.TFile&&plugin.isExcalidrawFile(n)){if(isTextOnlyEmbed(i))continue;i.parentElement.replaceChild(await processInternalEmbed(i,n),i)}}},processInternalEmbed=async(A,e)=>{const t={fname:"",fheight:"",fwidth:"",style:""},i=A.getAttribute("src");if(!i)return;t.fwidth=A.getAttribute("width")?A.getAttribute("width"):getDefaultWidth(plugin),t.fheight=A.getAttribute("height");let n=A.getAttribute("alt");t.style="excalidraw-svg",processAltText(i.split("#")[0],n,t);const a=getEmbeddedFilenameParts(i);return t.fname=(null==e?void 0:e.path)+(a.hasBlockref||a.hasSectionref?a.linkpartReference:""),t.file=e,await createImageDiv(t)},processAltText=(A,e,t)=>{var i,n;if(e&&!e.startsWith(A)){const a=e.match(/[^\|\d]*\|?((\d*%?)x?(\d*%?))?\|?(.*)/);t.fwidth=null!==(i=a[2])&&void 0!==i?i:t.fwidth,t.fheight=null!==(n=a[3])&&void 0!==n?n:t.fheight,a[4]&&!a[4].startsWith(A)&&(t.style=`excalidraw-svg-${a[4]}`),a[4]&&""!==a[4]||a[2]&&""!==a[2]||!a[0]||""===a[0]||(t.style=`excalidraw-svg-${a[0]}`)}},isTextOnlyEmbed=A=>{const e=A.getAttribute("src");if(!e)return!0;const t=getEmbeddedFilenameParts(e);return!(t.hasArearef||t.hasGroupref)&&(t.hasBlockref||t.hasSectionref)},tmpObsidianWYSIWYG=async(A,e)=>{const t=app.vault.getAbstractFileByPath(e.sourcePath);t instanceof obsidian.TFile&&plugin.isExcalidrawFile(t)&&(e.remainingNestLevel<4||setTimeout((async()=>{let i=0;for(;!A.parentElement&&i++<=50;)await sleep(50);if(!A.parentElement)return;let n=A;for(;!n.hasClass("dataview")&&!n.hasClass("cm-preview-code-block")&&!n.hasClass("cm-embed-block")&&!n.hasClass("internal-embed")&&n.parentElement;)n=n.parentElement;if(n.hasClass("dataview")||n.hasClass("cm-preview-code-block")||n.hasClass("cm-embed-block"))return;const a={fname:e.sourcePath,fheight:"",fwidth:getDefaultWidth(plugin),style:"excalidraw-svg"};if(a.file=t,!n.hasClass("internal-embed")){A.empty();const e=A.parentElement;if(!e.hasClass("markdown-preview-section"))return;if(e.hasAttribute("ready"))return void e.removeChild(A);e.setAttribute("ready","");const t=await createImageDiv(a);return void A.appendChild(t)}if(isTextOnlyEmbed(n))return;if(A.empty(),n.hasAttribute("ready"))return;n.setAttribute("ready",""),n.empty();const r=await processInternalEmbed(n,t);n.appendChild(r);let s=null;const o=new MutationObserver((A=>{var e;["alt","width","height"].contains(null===(e=A[0])||void 0===e?void 0:e.attributeName)&&(s&&clearTimeout(s),s=setTimeout((async()=>{s=null,n.empty();const A=await processInternalEmbed(n,t);n.appendChild(A)}),500))}));o.observe(n,{attributes:!0})})))},markdownPostProcessor=async(A,e)=>{var t;const i=A.querySelectorAll(".internal-embed");0!==i.length?Boolean(null===(t=e.frontmatter)||void 0===t?void 0:t.hasOwnProperty("excalidraw-plugin"))?A.style.display="none":await processReadingMode(i,e):tmpObsidianWYSIWYG(A,e)},hoverEvent=A=>{A.linktext?(plugin.hover.linkText=A.linktext,plugin.hover.sourcePath=A.sourcePath):plugin.hover.linkText=null},observer=new MutationObserver((async A=>{if(0==A.length)return;if(!plugin.hover.linkText)return;const e=metadataCache.getFirstLinkpathDest(plugin.hover.linkText,plugin.hover.sourcePath?plugin.hover.sourcePath:"");if(!e)return;if(!(e instanceof obsidian.TFile))return;if("excalidraw"!==e.extension)return;const t=getIMGFilename(e.path,"svg"),i=vault.getAbstractFileByPath(t);if(i&&i instanceof obsidian.TFile)return;const n=getIMGFilename(e.path,"png"),a=vault.getAbstractFileByPath(n);if(a&&a instanceof obsidian.TFile)return;if(!plugin.hover.linkText)return;if(1!=A.length)return;if(1!=A[0].addedNodes.length)return;if("popover hover-popover file-embed is-loaded"!=!A[0].addedNodes[0].classNames)return;const r=A[0].addedNodes[0];r.empty();const s=await getIMG({file:e,fname:e.path,fwidth:"300",fheight:null,style:"excalidraw-svg"}),o=createDiv("",(async A=>{A.appendChild(s),A.setAttribute("src",e.path),A.onClickEvent((e=>{e.stopImmediatePropagation();const t=A.getAttribute("src");t&&plugin.openDrawing(vault.getAbstractFileByPath(t),e[CTRL_OR_CMD]?"new-pane":e.metaKey&&!app.isMobile?"popout-window":"active-pane")}))}));r.appendChild(o)})),EXCALIDRAW_AUTOMATE_INFO=[{field:"plugin",code:null,desc:"The ExcalidrawPlugin object",after:""},{field:"elementsDict",code:null,desc:"The {} dictionary object, contains the ExcalidrawElements currently edited in Automate indexed by el.id",after:'[""]'},{field:"imagesDict",code:null,desc:"the images files including DataURL, indexed by fileId",after:'[""]'},{field:"style.strokeColor",code:"[string]",desc:"A valid css color. See W3 School Colors for more.",after:""},{field:"style.backgroundColor",code:"[string]",desc:"A valid css color. See W3 School Colors for more.",after:""},{field:"style.angle",code:"[number]",desc:"Rotation of the object in radian",after:""},{field:"style.fillStyle",code:"[string]",desc:"'hachure' | 'cross-hatch' | 'solid'",after:""},{field:"style.strokeWidth",code:"[number]",desc:null,after:""},{field:"style.strokeStyle",code:"[string]",desc:"'solid' | 'dashed' | 'dotted'",after:""},{field:"style.roughness",code:"[number]",desc:"0:Architect\n1:Artist\n2:Cartoonist",after:""},{field:"style.opacity",code:"[number]",desc:"100: Fully opaque\n0: Fully transparent",after:""},{field:"style.strokeSharpness",code:"[string]",desc:"'round' | 'sharp'",after:""},{field:"style.fontFamily",code:"[number]",desc:"1: Virgil, 2:Helvetica, 3:Cascadia, 4:LocalFont",after:""},{field:"style.fontSize",code:"[number]",desc:null,after:""},{field:"style.textAlign",code:"[string]",desc:"'left' | 'right' | 'center'",after:""},{field:"style.verticalAlign",code:"[string]",desc:"For future use, has no effect currently; 'top' | 'bottom' | 'middle'",after:""},{field:"style.startArrowHead",code:"[string]",desc:"'triangle' | 'dot' | 'arrow' | 'bar' | null",after:""},{field:"style.endArrowHead",code:"[string]",desc:"'triangle' | 'dot' | 'arrow' | 'bar' | null",after:""},{field:"canvas.theme",code:"[string]",desc:"'dark' | 'light'",after:""},{field:"canvas.viewBackgroundColor",code:"[string]",desc:"A valid css color.\nSee W3 School Colors for more.",after:""},{field:"canvas.gridSize",code:"[number]",desc:null,after:""},{field:"addToGroup",code:"addToGroup(objectIds: []): string;",desc:null,after:""},{field:"toCliboard",code:"toClipboard(templatePath?: string): void;",desc:"Copies current elements using template to clipboard, ready to be pasted into an excalidraw canvas",after:""},{field:"getElements",code:"getElements(): ExcalidrawElement[];",desc:"Get all elements from ExcalidrawAutomate elementsDict",after:""},{field:"getElement",code:"getElement(id: string): ExcalidrawElement;",desc:"Get single element from ExcalidrawAutomate elementsDict",after:""},{field:"create",code:'create(params?: {filename?: string, foldername?: string, templatePath?: string, onNewPane?: boolean, frontmatterKeys?: { "excalidraw-plugin"?: "raw" | "parsed", "excalidraw-link-prefix"?: string, "excalidraw-link-brackets"?: boolean, "excalidraw-url-prefix"?: string,},}): Promise;',desc:"Create a drawing and save it to filename.\nIf filename is null: default filename as defined in Excalidraw settings.\nIf folder is null: default folder as defined in Excalidraw settings\n",after:""},{field:"createSVG",code:"createSVG(templatePath?: string, embedFont?: boolean, exportSettings?: ExportSettings, loader?: EmbeddedFilesLoader, theme?: string,): Promise;",desc:"Use ExcalidrawAutomate.getExportSettings(boolean,boolean) to create an ExportSettings object.\nUse ExcalidrawAutomate.getEmbeddedFilesLoader(boolean?) to create an EmbeddedFilesLoader object.",after:""},{field:"createPNG",code:"createPNG(templatePath?: string, scale?: number, exportSettings?: ExportSettings, loader?: EmbeddedFilesLoader, theme?: string,): Promise;",desc:"Use ExcalidrawAutomate.getExportSettings(boolean,boolean) to create an ExportSettings object.\nUse ExcalidrawAutomate.getEmbeddedFilesLoader(boolean?) to create an EmbeddedFilesLoader object.",after:""},{field:"wrapText",code:"wrapText(text: string, lineLen: number): string;",desc:null,after:""},{field:"addRect",code:"addRect(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addDiamond",code:"addDiamond(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addEllipse",code:"addEllipse(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addBlob",code:"addBlob(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addText",code:'addText(topX: number, topY: number, text: string, formatting?: {wrapAt?: number; width?: number; height?: number; textAlign?: string; box?: boolean | "box" | "blob" | "ellipse" | "diamond"; boxPadding?: number;}, id?: string,): string;',desc:"If box is !null, then text will be boxed\nThe function returns the id of the TextElement. If the text element is boxed i.e. it is a sticky note, then the id of the container object",after:""},{field:"addLine",code:"addLine(points: [[x: number, y: number]]): string;",desc:null,after:""},{field:"addArrow",code:"addArrow(points: [[x: number, y: number]], formatting?: { startArrowHead?: string; endArrowHead?: string; startObjectId?: string; endObjectId?: string;},): string;",desc:null,after:""},{field:"addImage",code:"addImage(topX: number, topY: number, imageFile: TFile): Promise;",desc:null,after:""},{field:"addLaTex",code:"addLaTex(topX: number, topY: number, tex: string): Promise;",desc:null,after:""},{field:"connectObjects",code:"connectObjects(objectA: string, connectionA: ConnectionPoint, objectB: string, connectionB: ConnectionPoint, formatting?: {numberOfPoints?: number; startArrowHead?: string; endArrowHead?: string; padding?: number;},): string;",desc:'type ConnectionPoint = "top" | "bottom" | "left" | "right" | null\nWhen null is passed as ConnectionPoint then Excalidraw will automatically decide\nnumberOfPoints is the number of points on the line. Default is 0 i.e. line will only have a start and end point.\nArrowHead: "triangle"|"dot"|"arrow"|"bar"|null',after:""},{field:"addLabelToLine",code:"addLabelToLine(lineId: string, label: string): string;",desc:"Adds a text label to a line or arrow. Currently only works with a simple straight 2-point (start & end) line",after:""},{field:"clear",code:"clear(): void;",desc:"Clears elementsDict and imagesDict only",after:""},{field:"reset",code:"reset(): void;",desc:"clear() + reset all style values to default",after:""},{field:"isExcalidrawFile",code:"isExcalidrawFile(f: TFile): boolean;",desc:"Returns true if MD file is an Excalidraw file",after:""},{field:"targetView",code:"targetView: ExcalidrawView;",desc:"The Obsidian view currently edited",after:""},{field:"setView",code:'setView(view: ExcalidrawView | "first" | "active"): ExcalidrawView;',desc:null,after:""},{field:"getExcalidrawAPI",code:"getExcalidrawAPI(): any;",desc:"Excalidraw API",after:""},{field:"getViewElements",code:"getViewElements(): ExcalidrawElement[];",desc:"Get elements in View",after:""},{field:"deleteViewElements",code:"deleteViewElements(el: ExcalidrawElement[]): boolean;",desc:null,after:""},{field:"getViewSelectedElement",code:"getViewSelectedElement(): ExcalidrawElement;",desc:"Get the selected element in the view, if more are selected, get the first",after:""},{field:"getViewSelectedElements",code:"getViewSelectedElements(): ExcalidrawElement[];",desc:null,after:""},{field:"getViewFileForImageElement",code:"getViewFileForImageElement(el: ExcalidrawElement): TFile | null;",desc:"Returns the TFile file handle for the image element",after:""},{field:"copyViewElementsToEAforEditing",code:"copyViewElementsToEAforEditing(elements: ExcalidrawElement[]): void;",desc:"Copies elements from view to elementsDict for editing",after:""},{field:"viewToggleFullScreen",code:"viewToggleFullScreen(forceViewMode?: boolean): void;",desc:null,after:""},{field:"connectObjectWithViewSelectedElement",code:"connectObjectWithViewSelectedElement(objectA: string, connectionA: ConnectionPoint, connectionB: ConnectionPoint, formatting?: {numberOfPoints?: number; startArrowHead?: string; endArrowHead?: string; padding?: number;},): boolean;",desc:"Connect an object to the selected element in the view\nSee tooltip for connectObjects for details",after:""},{field:"addElementsToView",code:"addElementsToView(repositionToCursor?: boolean, save?: boolean, newElementsOnTop?: boolean,): Promise;",desc:"Adds elements from elementsDict to the current view\nrepositionToCursor: default is false\nsave: default is true\nnewElementsOnTop: default is false, i.e. the new elements get to the bottom of the stack\nnewElementsOnTop controls whether elements created with ExcalidrawAutomate are added at the bottom of the stack or the top of the stack of elements already in the view\nNote that elements copied to the view with copyViewElementsToEAforEditing retain their position in the stack of elements in the view even if modified using EA",after:""},{field:"onDropHook",code:'onDropHook(data: {ea: ExcalidrawAutomate, event: React.DragEvent, draggable: any, type: "file" | "text" | "unknown", payload: {files: TFile[], text: string,}, excalidrawFile: TFile, view: ExcalidrawView, pointerPosition: { x: number, y: number},}): boolean;',desc:"If set Excalidraw will call this function onDrop events.\nA return of true will stop the default onDrop processing in Excalidraw.\n\ndraggable is the Obsidian draggable object\nfiles is the array of dropped files\nexcalidrawFile is the file receiving the drop event\nview is the excalidraw view receiving the drop.\npointerPosition is the pointer position on canvas at the time of drop.",after:""},{field:"mostRecentMarkdownSVG",code:"mostRecentMarkdownSVG: SVGSVGElement;",desc:"Markdown renderer will drop a copy of the most recent SVG here for debugging purposes",after:""},{field:"getEmbeddedFilesLoader",code:"getEmbeddedFilesLoader(isDark?: boolean): EmbeddedFilesLoader;",desc:"Utility function to generate EmbeddedFilesLoader object",after:""},{field:"getExportSettings",code:"getExportSettings(withBackground: boolean, withTheme: boolean,): ExportSettings;",desc:"Utility function to generate ExportSettings object",after:""},{field:"getBoundingBox",code:"getBoundingBox(elements: ExcalidrawElement[]): {topX: number, topY: number, width: number, height: number,};",desc:"Gets the bounding box of elements. The bounding box is the box encapsulating all of the elements completely.",after:""},{field:"getMaximumGroups",code:"getMaximumGroups(elements: ExcalidrawElement[]): ExcalidrawElement[][];",desc:"Elements grouped by the highest level groups",after:""},{field:"getLargestElement",code:"getLargestElement(elements: ExcalidrawElement[]): ExcalidrawElement;",desc:"Gets the largest element from a group. useful when a text element is grouped with a box, and you want to connect an arrow to the box",after:""},{field:"intersectElementWithLine",code:"intersectElementWithLine(element: ExcalidrawBindableElement, a: readonly [number, number], b: readonly [number, number], gap?: number,): Point[];",desc:"If gap is given, the element is inflated by this value.\nReturns 2 or 0 intersection points between line going through `a` and `b` and the `element`, in ascending order of distance from `a`.",after:""},{field:"getCommonGroupForElements",code:"getCommonGroupForElements(elements: ExcalidrawElement[]): string;",desc:"Gets the groupId for the group that contains all the elements, or null if such a group does not exist",after:""},{field:"getElementsInTheSameGroupWithElement",code:"getElementsInTheSameGroupWithElement(element: ExcalidrawElement, elements: ExcalidrawElement[]): ExcalidrawElement[];",desc:"Gets all the elements from elements[] that share one or more groupIds with element.",after:""},{field:"activeScript",code:"activeScript: string;",desc:"Mandatory to set before calling the get and set ScriptSettings functions. Set automatically by the ScriptEngine\nSee for more details: Script Engine Help",after:""},{field:"getScriptSettings",code:"getScriptSettings(): {};",desc:"Returns script settings. Saves settings in plugin settings, under the activeScript key. See for more details: Script Engine Help",after:""},{field:"setScriptSettings",code:"setScriptSettings(settings: any): Promise;",desc:"Sets script settings.\nSee for more details: Script Engine Help",after:""},{field:"openFileInNewOrAdjacentLeaf",code:"openFileInNewOrAdjacentLeaf(file: TFile): WorkspaceLeaf;",desc:"Open a file in a new workspaceleaf or reuse an existing adjacent leaf depending on Excalidraw Plugin Settings",after:""},{field:"measureText",code:"measureText(text: string): { width: number; height: number };",desc:"Measures text size based on current style settings",after:""},{field:"verifyMinimumPluginVersion",code:"verifyMinimumPluginVersion(requiredVersion: string): boolean;",desc:'Returns true if plugin version is >= than required\nrecommended use:\nif(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.20")) {new Notice("message");return;}',after:""},{field:"selectElementsInView",code:"selectElementsInView(elements: ExcalidrawElement[]):void;",desc:"Elements provided will be set as selected in the targetView.",after:""},{field:"generateElementId",code:"generateElementId(): string;",desc:"Returns an 8 character long random id",after:""},{field:"cloneElement",code:"cloneElement(element: ExcalidrawElement): ExcalidrawElement;",desc:"Returns a clone of the element with a new element id",after:""},{field:"moveViewElementToZIndex",code:"moveViewElementToZIndex(elementId:number, newZIndex:number): void;",desc:"Moves the element to a specific position in the z-index",after:""},{field:"hexStringToRgb",code:"hexStringToRgb(color: string):number[];",desc:"Converts a HEX color to an RGB number array. #FF0000 to [255,0,0]",after:""},{field:"rgbToHexString",code:"rgbToHexString(color: number[]):string;",desc:"Converts an RGB number array to a HEX string. [255,0,0] to #FF0000",after:""},{field:"hslToRgb",code:"hslToRgb(color: number[]):number[];",desc:"Converts an HSL number array to an RGB number array. [0,100,50] to [255,0,0]",after:""},{field:"rgbToHsl",code:"rgbToHsl(color:number[]):number[];",desc:"Converts an RGB number array to an HSL number array. [255,0,0] to [0,100,50]",after:""},{field:"colorNameToHex",code:"colorNameToHex(color:string):string;",desc:"Converts a CSS color name to its HEX color equivalent. 'White' to #FFFFFF",after:""}],EXCALIDRAW_SCRIPTENGINE_INFO=[{field:"inputPrompt",code:"inputPrompt: (header: string, placeholder?: string, value?: string, buttons?: [{caption:string, action:Function}]);",desc:"Opens a prompt that asks for an input.\nReturns a string with the input.\nYou need to await the result of inputPrompt.\nbuttons.action(input: string) => string\nThe button action function will receive the actual input string. If action returns null, input will be unchanged. If action returns a string, input will receive that value when the promise is resolved. example:\nlet fileType = '';\nconst filename = await utils.inputPrompt (\n 'Filename',\n '',\n '',\n, [\n {\n caption: 'Markdown',\n action: ()=>{fileType='md';return;}\n },\n {\n caption: 'Excalidraw',\n action: ()=>{fileType='ex';return;}\n }\n ]\n);",after:""},{field:"suggester",code:"suggester: (displayItems: string[], items: any[], hint?: string, instructions?:Instruction[]);",desc:"Opens a suggester. Displays the displayItems and returns the corresponding item from items[]\nYou need to await the result of suggester.\nIf the user cancels (ESC), suggester will return undefined\nHint and instructions are optional\n\ninterface Instruction {command: string;purpose: string;}",after:""}],FRONTMATTER_KEYS_INFO=[{field:"plugin",code:null,desc:"Denotes an excalidraw file. If key is not present, the file will not be recognized as an Excalidarw file. Valid values are 'parsed' and 'raw'",after:": parsed"},{field:"link-prefix",code:null,desc:"Set custom prefix to denote text element containing a valid internal link. Set to empty string if you do not want to show a prefix",after:': "📍"'},{field:"url-prefix",code:null,desc:"Set custom prefix to denote text element containing a valid external link. Set to empty string if you do not want to show a prefix",after:': "🌐"'},{field:"link-brackets",code:null,desc:"Set to true, if you want to display [[square brackets]] around the links in Text Elements",after:": true"},{field:"default-mode",code:null,desc:"Specifies how Excalidraw should open by default. Valid values are: view|zen",after:": view"},{field:"linkbutton-opacity",code:null,desc:"The opacity of the blue link button in the top right of the element overriding the respective setting in plugin settings. Valid values are between 0 and 1, where 0 means the button is transparent.",after:": 0.5"},{field:"onload-script",code:null,desc:"The value of this field will be executed as javascript code using the Script Engine environment. Use this to initiate custom actions or logic when loading your drawing.",after:': "new Notice(`Hello World!\\n\\nFile: ${ea.targetView.file.basename}`);"'},{field:"font",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: Virgil|Cascadia|font_file_name.extension",after:": Virgil"},{field:"font-color",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: css-color-name|#HEXcolor|any-other-html-standard-format",after:": SteelBlue"},{field:"border-color",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: css-color-name|#HEXcolor|any-other-html-standard-format",after:": SteelBlue"},{field:"css",code:null,desc:'This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this front matter keys to your markdown document. Valid values are: "css-filename|css snippet"',after:': ""'},{field:"export-transparent",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. true == Transparent / false == with background",after:": true"},{field:"export-dark",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. true == Dark mode / false == light mode",after:": true"},{field:"export-padding",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. This only affects both SVG and PNG export. Specify the export padding for the image.",after:": 5"},{field:"export-pngscale",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. This only affects export to PNG. Specify the export scale for the image. The typical range is between 0.5 and 5, but you can experiment with other values as well.",after:": 1"},{field:"autoexport",code:null,desc:"Override autoexport settings for this file. Valid values are\nnone\nboth\npng\nsvg",after:": png"}];class FieldSuggester extends obsidian.EditorSuggest{constructor(A){super(A.app),this.getSuggestions=A=>{const e=A.query.toLowerCase();return("ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO).map((A=>A.field)).filter((A=>A.toLowerCase().includes(e)))},this.plugin=A}onTrigger(A,e,t){var i,n,a,r,s;if(this.plugin.settings.fieldSuggester){const t=e.getLine(A.line).substring(0,A.ch),o=null!==(r=null!==(n=null===(i=t.match(/^excalidraw-(.*)$/))||void 0===i?void 0:i[1])&&void 0!==n?n:null===(a=t.match(/(^ea|\Wea)\.([\w\.]*)$/))||void 0===a?void 0:a[2])&&void 0!==r?r:null===(s=t.match(/(^utils|\Wutils)\.([\w\.]*)$/))||void 0===s?void 0:s[2];if(void 0!==o)return this.suggestType=t.match(/^excalidraw-(.*)$/)?"excalidraw":t.match(/(^ea|\Wea)\.([\w\.]*)$/)?"ea":"utils",this.latestTriggerInfo={end:A,start:{ch:A.ch-o.length,line:A.line},query:o},this.latestTriggerInfo}return null}renderSuggestion(A,e){const t=A.replace("ea"===this.suggestType?"ea.":"utils"===this.suggestType?"utils.":"excalidraw-",""),i=("ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO).find((e=>e.field===A));e.createEl("b",{text:t}),e.createEl("br"),i.code&&e.createEl("code",{text:i.code}),i.desc&&e.createDiv("div",(A=>A.innerHTML=i.desc))}selectSuggestion(A){var e;const{context:t}=this;if(t){const i="ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO,n=`${A}${null===(e=i.find((e=>e.field===A)))||void 0===e?void 0:e.after}`;if(t.editor.replaceRange(n,this.latestTriggerInfo.start,this.latestTriggerInfo.end),this.latestTriggerInfo.start.ch===this.latestTriggerInfo.end.ch){const A=this.latestTriggerInfo.end;A.ch+=n.length,t.editor.setCursor(A)}}}}class ExcalidrawPlugin extends obsidian.Plugin{constructor(A,e){super(A,e),this.excalidrawFiles=new Set,this.excalidrawFileModes={},this._loaded=!1,this.activeExcalidrawView=null,this.lastActiveExcalidrawFilePath=null,this.hover={linkText:null,sourcePath:null},this.opencount=0,this.filesMaster=null,this.equationsMaster=null,this.mathjax=null,this.mathjaxDiv=null,this.mathjaxLoaderFinished=!1,this.fourthFontDef=VIRGIL_FONT,this.packageMap=new WeakMap,this.leafChangeTimeout=null,this.popScope=null,this.filesMaster=new Map,this.equationsMaster=new Map}getPackage(A){if(A===window)return{react:react,reactDOM:reactDOM,excalidrawLib:excalidrawLib};if(this.packageMap.has(A))return this.packageMap.get(A);const{react:e,reactDOM:t,excalidrawLib:i}=A.eval.call(A,`(function() {\n ${lzString.exports.decompressFromBase64(EXCALIDRAW_PACKAGES)};\n return {react:React,reactDOM:ReactDOM,excalidrawLib:ExcalidrawLib};\n })()`);return this.packageMap.set(A,{react:e,reactDOM:t,excalidrawLib:i}),{react:e,reactDOM:t,excalidrawLib:i}}async onload(){if(obsidian.addIcon(ICON_NAME,EXCALIDRAW_ICON),obsidian.addIcon("ScriptEngine",SCRIPTENGINE_ICON),obsidian.addIcon("disk",DISK_ICON),obsidian.addIcon("save-png",PNG_ICON),obsidian.addIcon("save-svg",SVG_ICON),await this.loadSettings(),this.addSettingTab(new ExcalidrawSettingTab(this.app,this)),this.ea=await initExcalidrawAutomate(this),this.registerView("excalidraw",(A=>new ExcalidrawView(A,this))),this.registerExtensions(["excalidraw"],"excalidraw"),this.addMarkdownPostProcessor(),this.registerInstallCodeblockProcessor(),this.addThemeObserver(),this.experimentalFileTypeDisplayToggle(this.settings.experimentalFileType),this.registerCommands(),this.registerEventListeners(),this.initializeFourthFont(),this.registerEditorSuggest(new FieldSuggester(this)),this.registerMonkeyPatches(),this.settings.showReleaseNotes){const A=this.settings.imageElementNotice;isVersionNewerThanOther(PLUGIN_VERSION,this.settings.previousRelease)&&new ReleaseNotes(this.app,this,A?null:PLUGIN_VERSION).open()}this.switchToExcalidarwAfterLoad(),this.loadMathJax();const A=this;this.app.workspace.onLayoutReady((()=>{this.scriptEngine=new ScriptEngine(A)}))}initializeFourthFont(){this.app.workspace.onLayoutReady((async()=>{const A=await getFontDataURL(this.app,this.settings.experimantalFourthFont,"","LocalFont"),e=""===A.dataURL?VIRGIL_DATAURL:A.dataURL;this.fourthFontDef=A.fontDef;const t=new Set;app.workspace.iterateAllLeaves((A=>{const i=app.isMobile?document:A.view.containerEl.ownerDocument;if(!i)return;if(t.has(i))return;t.add(i);const n=i.createElement("style");n.id="local-font-stylesheet",n.textContent=`\n @font-face {\n font-family: 'LocalFont';\n src: url("${e}");\n font-display: swap;\n }\n `;const a=i.getElementById(n.id);i.head.appendChild(n),a&&i.head.removeChild(a),i.fonts.load("20px LocalFont")}))}))}loadMathJax(){const A=this;this.app.workspace.onLayoutReady((async()=>{await obsidian.loadMathJax();try{A.mathjaxDiv&&(document.body.removeChild(A.mathjaxDiv),A.mathjax=null,A.mathjaxLoaderFinished=!1),A.mathjaxDiv=document.body.createDiv(),A.mathjaxDiv.title="Excalidraw MathJax Support",A.mathjaxDiv.style.display="none";const e=A.mathjaxDiv.createEl("iframe");e.title="Excalidraw MathJax Support";const t=e.contentWindow.document,i=t.createElement("script");i.type="text/javascript",i.onload=()=>{const t=e.contentWindow;t.MathJax.startup.pagePromise.then((async()=>{const e=app.vault.getAbstractFileByPath("preamble.sty"),i=e&&e instanceof obsidian.TFile?await app.vault.read(e):null;try{i&&await t.MathJax.tex2svg(i)}catch(e){errorlog({where:A.loadMathJax,description:"Unexpected error while loading preamble.sty",error:e})}A.mathjax=t.MathJax,A.mathjaxLoaderFinished=!0}))},i.src=A.settings.mathjaxSourceURL,t.head.appendChild(i)}catch(e){new obsidian.Notice("Excalidraw: Error initializing LaTeX support"),A.mathjaxLoaderFinished=!0}}))}switchToExcalidarwAfterLoad(){const A=this;this.app.workspace.onLayoutReady((()=>{let e;for(e of app.workspace.getLeavesOfType("markdown"))e.view instanceof obsidian.MarkdownView&&A.isExcalidrawFile(e.view.file)&&(A.excalidrawFileModes[e.id||e.view.file.path]="excalidraw",A.setExcalidrawView(e))}))}forceSaveActiveView(A){if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&((async()=>{e.semaphores.autosaving||(e.semaphores.forceSaving=!0,await e.save(!1,!0),e.plugin.triggerEmbedUpdates(),e.loadSceneFiles(),e.semaphores.forceSaving=!1,new obsidian.Notice("Save successful",1e3))})(),!0)}registerInstallCodeblockProcessor(){const A=async(A,e)=>{let t=null;try{const A=e.parentElement.querySelector(`a[href="#${e.previousElementSibling.getAttribute("data-heading")}"]`);A.style.paddingRight="10px",t=A.parentElement.createEl("button",null,(A=>{A.setText(t$d("UPDATE_SCRIPT")),A.addClass("mod-cta"),A.style.backgroundColor="var(--interactive-success)",A.style.display="none"}))}catch(e){errorlog({where:"this.registerInstallCodeblockProcessor",source:A,error:e})}A=A.trim(),e.createEl("button",null,(async e=>{const i=A=>{switch(t&&(t.style.display="none"),A){case"CHECKING":e.setText(t$d("CHECKING_SCRIPT")),e.style.backgroundColor="var(--interactive-normal)";break;case"INSTALL":e.setText(t$d("INSTALL_SCRIPT")),e.style.backgroundColor="var(--interactive-accent)";break;case"UPTODATE":e.setText(t$d("UPTODATE_SCRIPT")),e.style.backgroundColor="var(--interactive-normal)";break;case"UPDATE":e.setText(t$d("UPDATE_SCRIPT")),e.style.backgroundColor="var(--interactive-success)",t&&(t.style.display=null);break;case"ERROR":e.setText(t$d("UNABLETOCHECK_SCRIPT")),e.style.backgroundColor="var(--interactive-normal)"}};e.addClass("mod-cta");let n=A;try{n=decodeURI(A)}catch(e){errorlog({where:"ExcalidrawPlugin.registerInstallCodeblockProcessor.codeblockProcessor.onClick",source:A,error:e})}const a=n.substring(n.lastIndexOf("/")+1),r=`${this.settings.scriptFolderPath}/Downloaded`,s=`${r}/${a}`,o=getIMGFilename(s,"svg");let l=this.app.vault.getAbstractFileByPath(s),c=this.app.vault.getAbstractFileByPath(o);if(i(l?"CHECKING":"INSTALL"),e.onclick=async()=>{const e=async(A,e,t)=>{const i=await obsidian.request({url:A});return!i||i.startsWith("404: Not Found")?null:(e?await this.app.vault.modify(e,i):(await checkAndCreateFolder(r),e=await this.app.vault.create(t,i)),e)};try{if(l=await e(A,l,s),!l)throw i("ERROR"),"File not found";c=await e(getIMGFilename(A,"svg"),c,o),i("UPTODATE"),new obsidian.Notice(`Installed: ${l.basename}`)}catch(A){new obsidian.Notice(`Error installing script: ${a}`),errorlog({where:"ExcalidrawPlugin.registerInstallCodeblockProcessor.codeblockProcessor.onClick",error:A})}},t&&(t.onclick=e.onclick),!(l&&l instanceof obsidian.TFile))return;const d=new Map;JSON.parse(await obsidian.request({url:"https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/directory-info.json"})).forEach((A=>d.set(A.fname,A.mtime)));const h=(A,e)=>{if(0===d.size||!d.has(A))return"ERROR";const t=d.get(A);return!e||t>e.stat.mtime?"UPDATE":"UPTODATE"},g=h(a,l),u=h(getIMGFilename(a,"svg"),c&&c instanceof obsidian.TFile?c:null);i("UPTODATE"===g&&"UPTODATE"===u||"UPTODATE"===g&&"ERROR"===u?"UPTODATE":"ERROR"===g?"ERROR":"UPDATE"===g||"UPDATE"===u?"UPDATE":"UPTODATE")}))};this.registerMarkdownCodeBlockProcessor(SCRIPT_INSTALL_CODEBLOCK,(async(e,t)=>{t.addEventListener(RERENDER_EVENT,(async i=>{i.stopPropagation(),t.empty(),A(e,t)})),A(e,t)}))}addMarkdownPostProcessor(){initializeMarkdownPostProcessor(this),this.registerMarkdownPostProcessor(markdownPostProcessor),this.registerEvent(this.app.workspace.on("hover-link",hoverEvent)),this.observer=observer,this.observer.observe(document,{childList:!0,subtree:!0})}addThemeObserver(){this.themeObserver=new MutationObserver((async A=>{var e,t,i,n,a,r,s,o;if(!this.settings.matchThemeTrigger)return;if((null===(e=A[0])||void 0===e?void 0:e.oldValue)===(null===(i=null===(t=A[0])||void 0===t?void 0:t.target)||void 0===i?void 0:i.getAttribute("class")))return;if((null===(a=null===(n=A[0])||void 0===n?void 0:n.oldValue)||void 0===a?void 0:a.includes("theme-dark"))===(null===(o=null===(s=null===(r=A[0])||void 0===r?void 0:r.target)||void 0===s?void 0:s.classList)||void 0===o?void 0:o.contains("theme-dark")))return;const l=isObsidianThemeDark()?"dark":"light";this.app.workspace.getLeavesOfType("excalidraw").forEach((A=>{const e=A.view;e.file&&e.excalidrawRef&&e.setTheme(l)}))})),this.themeObserver.observe(document.body,{attributeOldValue:!0,attributeFilter:["class"]})}experimentalFileTypeDisplayToggle(A){A?this.experimentalFileTypeDisplay():(this.fileExplorerObserver&&this.fileExplorerObserver.disconnect(),this.fileExplorerObserver=null)}experimentalFileTypeDisplay(){const A=A=>{if(1!=A.childElementCount)return;const e=A.getAttribute("data-path");if(!e)return;const t=this.app.vault.getAbstractFileByPath(e);t&&t instanceof obsidian.TFile&&this.isExcalidrawFile(t)&&A.insertBefore(createDiv({cls:"nav-file-tag",text:this.settings.experimentalFileTag}),A.firstChild)};this.fileExplorerObserver=new MutationObserver((e=>{const t=e.filter((A=>A.addedNodes.length>0));t.forEach((e=>{e.addedNodes.forEach((e=>{e instanceof Element&&e.querySelectorAll(".nav-file-title").forEach(A)}))}))}));const e=this;this.app.workspace.onLayoutReady((()=>{document.querySelectorAll(".nav-file-title").forEach(A),e.fileExplorerObserver.observe(document.querySelector(".workspace"),{childList:!0,subtree:!0})}))}registerCommands(){this.openDialog=new OpenFileDialog(this.app,this),this.insertLinkDialog=new InsertLinkDialog(this.app),this.insertImageDialog=new InsertImageDialog(this),this.insertMDDialog=new InsertMDDialog(this),this.addRibbonIcon(ICON_NAME,t$d("CREATE_NEW"),(async A=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),A[CTRL_OR_CMD]?"new-pane":"active-pane")})),this.registerEvent(this.app.workspace.on("file-menu",((A,e)=>{A.addItem((A=>{A.setTitle(t$d("CREATE_NEW")).setIcon(ICON_NAME).onClick((()=>{let A=e.path;e instanceof obsidian.TFile&&(A=obsidian.normalizePath(e.path.substr(0,e.path.lastIndexOf(e.name)))),this.createAndOpenDrawing(getDrawingFilename(this.settings),"active-pane",A)}))}))}))),this.registerEvent(this.app.workspace.on("file-menu",((A,e)=>{e instanceof obsidian.TFile&&"excalidraw"==e.extension&&A.addItem((A=>{A.setTitle(t$d("CONVERT_FILE_KEEP_EXT")).onClick((()=>{this.convertSingleExcalidrawToMD(e,!1,!1)}))}))}))),this.registerEvent(this.app.workspace.on("file-menu",((A,e)=>{e instanceof obsidian.TFile&&"excalidraw"==e.extension&&A.addItem((A=>{A.setTitle(t$d("CONVERT_FILE_REPLACE_EXT")).onClick((()=>{this.convertSingleExcalidrawToMD(e,!0,!0)}))}))}))),this.addCommand({id:"excalidraw-download-lib",name:t$d("DOWNLOAD_LIBRARY"),callback:this.exportLibrary}),this.addCommand({id:"excalidraw-open",name:t$d("OPEN_EXISTING_NEW_PANE"),callback:()=>{this.openDialog.start(openDialogAction.openFile,!0)}}),this.addCommand({id:"excalidraw-open-on-current",name:t$d("OPEN_EXISTING_ACTIVE_PANE"),callback:()=>{this.openDialog.start(openDialogAction.openFile,!1)}}),this.addCommand({id:"excalidraw-insert-transclusion",name:t$d("TRANSCLUDE"),checkCallback:A=>A?Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView)):(this.openDialog.start(openDialogAction.insertLinkToDrawing,!1),!0)}),this.addCommand({id:"excalidraw-insert-last-active-transclusion",name:t$d("TRANSCLUDE_MOST_RECENT"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView))&&null!=this.lastActiveExcalidrawFilePath;const e=this.app.vault.getAbstractFileByPath(this.lastActiveExcalidrawFilePath);return e instanceof obsidian.TFile&&(this.embedDrawing(e),!0)}}),this.addCommand({id:"excalidraw-autocreate",name:t$d("NEW_IN_NEW_PANE"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"new-pane")}}),this.addCommand({id:"excalidraw-autocreate-on-current",name:t$d("NEW_IN_ACTIVE_PANE"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"active-pane")}}),this.addCommand({id:"excalidraw-autocreate-popout",name:t$d("NEW_IN_POPOUT_WINDOW"),checkCallback:A=>{if(A)return!app.isMobile;this.createAndOpenDrawing(getDrawingFilename(this.settings),"popout-window")}});const A=async A=>{const e=this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);if(!e)return;const t=getEmbedFilename(e.file.basename,this.settings),i=this.settings.embedUseExcalidrawFolder?null:(await getAttachmentsFolderAndFilePath(this.app,e.file.path,t)).folder,n=await this.createDrawing(t,i);await this.embedDrawing(n),this.openDrawing(n,A,!0)};this.addCommand({id:"excalidraw-autocreate-and-embed",name:t$d("NEW_IN_NEW_PANE_EMBED"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView)):(A("new-pane"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-on-current",name:t$d("NEW_IN_ACTIVE_PANE_EMBED"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView)):(A("active-pane"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-popout",name:t$d("NEW_IN_POPOUT_WINDOW_EMBED"),checkCallback:e=>e?!app.isMobile&&Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView)):(A("popout-window"),!0)}),this.addCommand({id:"export-svg",name:t$d("EXPORT_SVG"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(e.saveSVG(),!0)}}),this.addCommand({id:"search-text",name:t$d("SEARCH"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(search(e),!0)}}),this.addCommand({id:"fullscreen",name:t$d("TOGGLE_FULLSCREEN"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(e.isFullscreen()?e.exitFullscreen():e.gotoFullscreen(),!0)}}),this.addCommand({id:"export-png",name:t$d("EXPORT_PNG"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(e.savePNG(),!0)}}),this.forceSaveCommand=this.addCommand({id:"save",hotkeys:[{modifiers:["Ctrl"],key:"s"}],name:t$d("FORCE_SAVE"),checkCallback:A=>this.forceSaveActiveView(A)}),this.addCommand({id:"toggle-lock",hotkeys:[{modifiers:["Ctrl","Shift"],key:"e"}],name:t$d("TOGGLE_LOCK"),checkCallback:A=>{if(A)return!!Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView))&&!this.app.workspace.getActiveViewOfType(ExcalidrawView).compatibilityMode;const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!(!e||e.compatibilityMode||(e.changeTextMode(e.textMode===TextMode.parsed?TextMode.raw:TextMode.parsed),0))}}),this.addCommand({id:"scriptengine-store",name:t$d("INSTALL_SCRIPT_BUTTON"),checkCallback:A=>A?Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView)):(new ScriptInstallPrompt(this).open(),!0)}),this.addCommand({id:"delete-file",name:t$d("DELETE_FILE"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(e){this.ea.reset(),this.ea.setView(e);const A=this.ea.getViewSelectedElement();if("image"!==A.type)return new obsidian.Notice("Please select an image or embedded markdown document",4e3),!0;const t=this.ea.getViewFileForImageElement(A);return t?(this.app.vault.delete(t),this.ea.deleteViewElements([A]),!0):(new obsidian.Notice("Please select an image or embedded markdown document",4e3),!0)}return!1}}),this.addCommand({id:"insert-link",hotkeys:[{modifiers:["Ctrl","Shift"],key:"k"}],name:t$d("INSERT_LINK"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(this.insertLinkDialog.start(e.file.path,e.addText),!0)}}),this.addCommand({id:"insert-link-to-element",hotkeys:[{modifiers:["Ctrl","Shift"],key:"k"}],name:t$d("INSERT_LINK_TO_ELEMENT_NORMAL"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(e.copyLinkToSelectedElementToClipboard(""),!0)}}),this.addCommand({id:"insert-link-to-element-group",name:t$d("INSERT_LINK_TO_ELEMENT_GROUP"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(e.copyLinkToSelectedElementToClipboard("group="),!0)}}),this.addCommand({id:"insert-link-to-element-area",name:t$d("INSERT_LINK_TO_ELEMENT_AREA"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(e.copyLinkToSelectedElementToClipboard("area="),!0)}}),this.addCommand({id:"toggle-lefthanded-mode",name:t$d("TOGGLE_LEFTHANDED_MODE"),checkCallback:A=>{if(A){if(this.app.workspace.getActiveViewOfType(ExcalidrawView)){const A=this.app.workspace.getActiveViewOfType(ExcalidrawView),e=null==A?void 0:A.excalidrawAPI;return!!e&&!!e.getAppState().trayModeEnabled}return!1}return this.app.workspace.getActiveViewOfType(ExcalidrawView),(async()=>{const A=this.settings.isLeftHanded;await this.loadSettings(!1),this.settings.isLeftHanded=!A,this.saveSettings(),setLeftHandedMode(!A),setTimeout((()=>setLeftHandedMode(!A)))})(),!0}}),this.addCommand({id:"reset-image-to-100",name:t$d("RESET_IMG_TO_100"),checkCallback:A=>{const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(!e)return!1;if(!e.excalidrawAPI)return!1;const t=e.getViewSelectedElements().filter((A=>"image"===A.type));if(1!==t.length)return A||new obsidian.Notice("Select a single image element and try again"),!1;const i=t[0];return e.excalidrawData.getFile(i.fileId)?!!A||void(async()=>{const A=new ExcalidrawAutomate(this,e),n=await A.getOriginalImageSize(i);if(n){A.copyViewElementsToEAforEditing(t);const e=A.getElement(i.id);e.width=n.width,e.height=n.height,A.addElementsToView(!1,!1,!1)}})():(A||new obsidian.Notice("Select a single image element and try again"),!1)}}),this.addCommand({id:"insert-image",name:t$d("INSERT_IMAGE"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(this.insertImageDialog.start(e),!0)}}),this.addCommand({id:"release-notes",name:t$d("READ_RELEASE_NOTES"),checkCallback:A=>A?Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView)):(new ReleaseNotes(this.app,this,PLUGIN_VERSION).open(),!0)}),this.addCommand({id:"tray-mode",name:t$d("TRAY_MODE"),checkCallback:A=>{if(A){const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(!A||!A.excalidrawRef)return!1;const e=A.excalidrawAPI.getAppState();return!e.zenModeEnabled&&!e.viewModeEnabled}const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!(!e||!e.excalidrawAPI||(e.toggleTrayMode(),0))}}),this.addCommand({id:"insert-md",name:t$d("INSERT_MD"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(this.insertMDDialog.start(e),!0)}}),this.addCommand({id:"insert-LaTeX-symbol",name:t$d("INSERT_LATEX"),checkCallback:A=>{if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!e&&(insertLaTeXToView(e),!0)}}),this.addCommand({id:"toggle-excalidraw-view",name:t$d("TOGGLE_MODE"),checkCallback:A=>{const e=this.app.workspace.getActiveFile();if(!e)return!1;const t=this.isExcalidrawFile(e);if(A)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView))?!this.app.workspace.getActiveViewOfType(ExcalidrawView).compatibilityMode:t;const i=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(i){const A=i.leaf;return this.excalidrawFileModes[A.id||e.path]="markdown",void this.setMarkdownView(A)}const n=this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);if(n&&t){const A=n.leaf;return this.excalidrawFileModes[A.id||e.path]="excalidraw",void this.setExcalidrawView(A)}}}),this.addCommand({id:"convert-to-excalidraw",name:t$d("CONVERT_NOTE_TO_EXCALIDRAW"),checkCallback:A=>{const e=this.app.workspace.getActiveFile(),t=this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);if(!e||!t)return!1;const i=0===e.stat.size;if(A)return i;i&&(async()=>{await this.app.vault.modify(e,await this.getBlankDrawing()),this.setExcalidrawView(t.leaf)})()}}),this.addCommand({id:"convert-excalidraw",name:t$d("CONVERT_EXCALIDRAW"),checkCallback:A=>{if(A){const A=this.app.vault.getFiles().filter((A=>"excalidraw"==A.extension));return A.length>0}return this.convertExcalidrawToMD(),!0}})}async convertSingleExcalidrawToMD(A,e=!1,t=!1){const i=await this.app.vault.read(A),n=A.name.substring(0,A.name.lastIndexOf(".excalidraw"))+(e?".md":".excalidraw.md"),a=getNewUniqueFilepath(this.app.vault,n,obsidian.normalizePath(A.path.substring(0,A.path.lastIndexOf(A.name))));log(a);const r=await this.app.vault.create(a,FRONTMATTER+await this.exportSceneToMD(i));return this.settings.keepInSync&&EXPORT_TYPES.forEach((e=>{const t=A.path.substring(0,A.path.lastIndexOf(".excalidraw"))+e,i=this.app.vault.getAbstractFileByPath(obsidian.normalizePath(t));if(i&&i instanceof obsidian.TFile){const A=a.substring(0,a.lastIndexOf(".md"))+e;this.app.fileManager.renameFile(i,A)}})),t||this.app.vault.delete(A),r}async convertExcalidrawToMD(A=!1,e=!1){const t=this.app.vault.getFiles().filter((A=>"excalidraw"==A.extension));for(const i of t)this.convertSingleExcalidrawToMD(i,A,e);new obsidian.Notice(`Converted ${t.length} files.`)}registerMonkeyPatches(){this.registerEvent(app.workspace.on("editor-menu",((A,e,t)=>{if(!(t&&t instanceof obsidian.MarkdownView))return;const i=t.file,n=t.leaf;if(!t.file)return;const a=this.app.metadataCache.getFileCache(i);(null==a?void 0:a.frontmatter)&&a.frontmatter[FRONTMATTER_KEY]&&A.addItem((A=>A.setTitle(t$d("OPEN_AS_EXCALIDRAW")).setIcon(ICON_NAME).setSection("excalidraw").onClick((()=>{this.excalidrawFileModes[n.id||i.path]="excalidraw",this.setExcalidrawView(n)}))))}))),this.registerEvent(app.workspace.on("file-menu",((A,e,t,i)=>{if(!(i&&i.view instanceof obsidian.MarkdownView))return;if(!(e instanceof obsidian.TFile))return;const n=this.app.metadataCache.getFileCache(e);(null==n?void 0:n.frontmatter)&&n.frontmatter[FRONTMATTER_KEY]&&(A.addItem((A=>{A.setTitle(t$d("OPEN_AS_EXCALIDRAW")).setIcon(ICON_NAME).setSection("pane").onClick((()=>{this.excalidrawFileModes[i.id||e.path]="excalidraw",this.setExcalidrawView(i)}))})),A.items.unshift(A.items.pop()))})));const A=this;this.register(around(obsidian.WorkspaceLeaf.prototype,{detach:e=>function(){var t;const i=null===(t=this.view)||void 0===t?void 0:t.getState();return(null==i?void 0:i.file)&&A.excalidrawFileModes[this.id||i.file]&&delete A.excalidrawFileModes[this.id||i.file],e.apply(this)},setViewState:e=>function(t,...i){var n;if(A._loaded&&"markdown"===t.type&&(null===(n=t.state)||void 0===n?void 0:n.file)&&"markdown"!==A.excalidrawFileModes[this.id||t.state.file]){const n=app.metadataCache.getCache(t.state.file);if((null==n?void 0:n.frontmatter)&&n.frontmatter[FRONTMATTER_KEY]){const n=Object.assign(Object.assign({},t),{type:"excalidraw"});return A.excalidrawFileModes[t.state.file]="excalidraw",e.apply(this,[n,...i])}}return e.apply(this,[t,...i])}}))}registerEventListeners(){const A=this;this.app.workspace.onLayoutReady((async()=>{A.registerEvent(app.vault.on("rename",(async(e,t)=>{e instanceof obsidian.TFile&&A.isExcalidrawFile(e)&&A.settings.keepInSync&&[EXPORT_TYPES,"excalidraw"].flat().forEach((async A=>{const i=getIMGFilename(t,A),n=app.vault.getAbstractFileByPath(obsidian.normalizePath(i));if(n&&n instanceof obsidian.TFile){const t=getIMGFilename(e.path,A);await app.fileManager.renameFile(n,t)}}))}))),A.registerEvent(app.vault.on("modify",(async e=>{app.workspace.getLeavesOfType("excalidraw").forEach((async t=>{const i=t.view;if(i.file&&(i.file.path===e.path||"excalidraw"===e.extension&&`${e.path.substring(0,e.path.lastIndexOf(".excalidraw"))}.md`===i.file.path)){if(i.semaphores.preventReload)return void(i.semaphores.preventReload=!1);if(i.lastSaveTimestamp+3e5{if(!(e instanceof obsidian.TFile))return;const t=this.excalidrawFiles.has(e);if(this.updateFileCache(e,void 0,!0),!t)return;const i=app.workspace.getLeavesOfType("excalidraw");for(let A=0;A{[EXPORT_TYPES,"excalidraw"].flat().forEach((async A=>{const t=getIMGFilename(e.path,A),i=app.vault.getAbstractFileByPath(obsidian.normalizePath(t));i&&i instanceof obsidian.TFile&&await app.vault.delete(i)}))}),500)}))),A.registerEvent(app.workspace.on("active-leaf-change",(async e=>{var t;A.leafChangeTimeout&&clearTimeout(A.leafChangeTimeout),A.leafChangeTimeout=setTimeout((()=>{A.leafChangeTimeout=null}),1e3);const i=A.activeExcalidrawView,n=e.view instanceof ExcalidrawView?e.view:null; +EXPR:/(!)?(\[\[([^|\]]+)\|?([^\]]+)?]]|\[([^\]]*)]\(([^)]*)\))(\{(\d+)\})?/g,getRes:e=>e.matchAll(REGEX_LINK.EXPR),isTransclusion:e=>!!e.value[1],getLink:e=>e.value[3]?e.value[3]:e.value[6],isWikiLink:e=>!!e.value[3],getAliasOrLink:e=>REGEX_LINK.isWikiLink(e)?e.value[4]?e.value[4]:e.value[3]:e.value[5]?e.value[5]:e.value[6],getWrapLength:(e,A)=>{const t=parseInt(e.value[8]);return isNaN(t)?A>0?A:null:t}},DRAWING_REG=/\n# Drawing\n[^`]*(```json\n)([\s\S]*?)```\n/gm,DRAWING_REG_FALLBACK=/\n# Drawing\n(```json\n)?(.*)(```)?(%%)?/gm,DRAWING_COMPRESSED_REG=/(\n# Drawing\n[^`]*(?:```compressed\-json\n))([\s\S]*?)(```\n)/gm,DRAWING_COMPRESSED_REG_FALLBACK=/(\n# Drawing\n(?:```compressed\-json\n)?)(.*)((```)?(%%)?)/gm,REG_LINKINDEX_HYPERLINK=/^\w+:\/\//,isCompressedMD=e=>null!==e.match(/```compressed\-json\n/gm),getDecompressedScene=e=>{let A,t=e.matchAll(DRAWING_COMPRESSED_REG);return A=t.next(),A.done&&(t=e.matchAll(DRAWING_COMPRESSED_REG_FALLBACK),A=t.next()),A.value&&A.value.length>1?[decompress(A.value[2]),A]:[null,A]},changeThemeOfExcalidrawMD=e=>{const A=isCompressedMD(e);let t=A?getDecompressedScene(e)[0]:e;return t?(isObsidianThemeDark?1===(t.match(/"theme"\s*:\s*"light"\s*,/g)||[]).length&&(t=t.replace(/"theme"\s*:\s*"light"\s*,/,'"theme": "dark",')):1===(t.match(/"theme"\s*:\s*"dark"\s*,/g)||[]).length&&(t=t.replace(/"theme"\s*:\s*"dark"\s*,/,'"theme": "light",')),A?e.replace(DRAWING_COMPRESSED_REG,`$1${compress(t)}$3`):t):e};function getJSON(e){let A,t;if(isCompressedMD(e)){const[A,t]=getDecompressedScene(e);return A?{scene:A.substring(0,A.lastIndexOf("}")+1),pos:t.value.index}:{scene:e,pos:t.value?t.value.index:0}}if(A=e.matchAll(DRAWING_REG),t=A.next(),t.done&&(A=e.matchAll(DRAWING_REG_FALLBACK),t=A.next()),t.value&&t.value.length>1){const e=t.value[2];return{scene:e.substr(0,e.lastIndexOf("}")+1),pos:t.value.index}}return{scene:e,pos:t.value?t.value.index:0}}function getMarkdownDrawingSection(e,A){return A?`%%\n# Drawing\n\`\`\`compressed-json\n${compress(e)}\n\`\`\`\n%%`:`%%\n# Drawing\n\`\`\`json\n${e}\n\`\`\`\n%%`}const estimateMaxLineLen=(e,A)=>{if(!A||!e)return null;if(e===A)return null;let t=0;const n=e.split("\n");if(1===n.length)return null;for(const e of n){const A=e.trim();A.length>t&&(t=A.length)}return t},wrap=(e,A)=>A?wrapTextAtCharLength(e,A,!1,0):e;class ExcalidrawData{constructor(e){this.plugin=e,this.textElements=null,this.elementLinks=null,this.scene=null,this.deletedElements=[],this.file=null,this.autoexportPreference=AutoexportPreference.inherit,this.textMode=TextMode.raw,this.loaded=!1,this.files=null,this.equations=null,this.compatibilityMode=!1,this.selectedElementIds={},this.disableCompression=!1,this.app=e.app,this.files=new Map,this.equations=new Map}initializeNonInitializedFields(){var e,A;if(!this.scene||!this.scene.elements)return;const t=this.scene.elements;for(const n of t){if(n.boundElements){const e=new Map;n.boundElements.forEach((A=>{e.set(A.id,A.type)}));const A=Array.from(e,(([e,A])=>({id:e,type:A})));A.length!==n.boundElements.length&&(n.boundElements=A)}n.boundElementIds&&(n.boundElements||(n.boundElements=[]),n.boundElements=n.boundElements.concat(n.boundElementIds.map((e=>({type:"arrow",id:e})))),delete n.boundElementIds),"text"!==n.type||n.containerId||(n.containerId=null),null===n.x&&(n.x=0),null===n.y&&(n.y=0),null===(null===(e=n.startBinding)||void 0===e?void 0:e.focus)&&(n.startBinding.focus=0),null===(null===(A=n.endBinding)||void 0===A?void 0:A.focus)&&(n.endBinding.focus=0),null===n.fontSize&&(n.fontSize=20)}try{t.filter((e=>"text"===e.type&&e.containerId&&t.some((A=>A.id===e.containerId&&A.boundElements.length>0&&A.boundElements.some((A=>"text"===A.type&&A.id!==e.id&&A.id.length>8)))))).forEach((e=>{try{const A=t.filter((A=>A.id===e.containerId))[0],n=A.boundElements.filter((e=>!("text"===e.type&&!t.some((A=>A.id===e.id)))));A.boundElements=[{id:e.id,type:"text"}].concat(n)}catch(e){}})),t.filter((e=>e.boundElements&&e.boundElements.length>0)).forEach((e=>{const A=e.boundElements.filter((e=>t.some((A=>A.id===e.id))));A.length!==e.boundElements.length&&(e.boundElements=A)})),t.filter((e=>"text"===e.type&&e.containerId&&!t.some((A=>A.id===e.containerId)))).forEach((e=>{e.containerId=null}))}catch(e){}}async loadData(e,A,t){if(!A)return!1;if(this.loaded=!1,this.selectedElementIds={},this.textElements=new Map,this.elementLinks=new Map,this.file!=A&&(this.files.clear(),this.equations.clear()),this.file=A,this.compatibilityMode=!1,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.setAutoexportPreferences(),this.scene=null,this.plugin.settings.syncExcalidraw){const e=`${A.path.substring(0,A.path.lastIndexOf(".md"))}.excalidraw`,t=this.app.vault.getAbstractFileByPath(e);if(t&&t instanceof obsidian.TFile&&t.stat.mtime>A.stat.mtime){const e=await this.app.vault.read(t);this.scene=JSON.parse(e)}}let n=null;n=(()=>{const A=getJSON(e);if(-1===A.pos)throw new Error("Excalidraw JSON not found in the file");return this.scene||(this.scene=JSON_parse(A.scene)),A})(),this.deletedElements=this.scene.elements.filter((e=>e.isDeleted)),this.scene.elements=this.scene.elements.filter((e=>!e.isDeleted)),this.scene.files||(this.scene.files={}),hasExportTheme(this.plugin,this.file)?this.scene.appState.theme=getExportTheme(this.plugin,this.file,"light"):this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),this.initializeNonInitializedFields();let i=(e=e.substring(0,n.pos)).search(/(^%%\n)?# Text Elements\n/m);if(-1===i)return await this.setTextMode(t,!1),this.loaded=!0,!0;i+=e.match(/((^%%\n)?# Text Elements\n)/m)[0].length,e=e.substring(i),i=0;const a=" ^12345678\n\n".length;let r,s=e.matchAll(/\s\^(.{8})[\n]+/g);for(;!(r=s.next()).done;){let A=e.substring(i,r.value.index);const t=r.value[1],n=this.scene.elements.filter((e=>e.id===t))[0];if(n)if("text"!==n.type)n.link!==A&&(n.link=A,n.version++,n.versionNonce++),this.elementLinks.set(t,A);else{const e=estimateMaxLineLen(n.text,n.originalText),i=A.matchAll(/^%%\*\*\*>>>text element-link:(\[\[[^<*\]]*]])<<<\*\*\*%%/gm).next();i.done||(A=A.replace(/^%%\*\*\*>>>text element-link:\[\[[^<*\]]*]]<<<\*\*\*%%/gm,""),n.link=i.value[1]);const a=await this.parse(A);this.textElements.set(t,{raw:A,parsed:a.parsed,wrapAt:e}),a.link&&(n.link=a.link),!n||n.rawText&&""!==n.rawText||(n.rawText=A)}i=r.value.index+a}for(s=(e=e.substring(e.indexOf("# Embedded files\n")+"# Embedded files\n".length)).matchAll(/([\w\d]*):\s*\[\[([^\]]*)]]\n/gm);!(r=s.next()).done;){const e=new EmbeddedFile(this.plugin,this.file.path,r.value[2]);this.setFile(r.value[1],e)}for(s=e.matchAll(/([\w\d]*):\s*\$\$(.*)(\$\$\s*\n)/gm);!(r=s.next()).done;)this.setEquation(r.value[1],{latex:r.value[2],isLoaded:!1});return this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(t,!0),this.loaded=!0,!0}async loadLegacyData(e,A){return!!A&&(this.loaded=!1,this.selectedElementIds={},this.compatibilityMode=!0,this.file=A,this.textElements=new Map,this.elementLinks=new Map,this.setShowLinkBrackets(),this.setLinkPrefix(),this.setUrlPrefix(),this.scene=JSON.parse(e),this.scene.files||(this.scene.files={}),this.initializeNonInitializedFields(),this.plugin.settings.matchThemeAlways&&(this.scene.appState.theme=isObsidianThemeDark()?"dark":"light"),this.files.clear(),this.equations.clear(),this.findNewTextElementsInScene(),this.findNewElementLinksInScene(),await this.setTextMode(TextMode.raw,!0),this.loaded=!0,!0)}async setTextMode(e,A=!1){this.scene&&(this.textMode=e,await this.updateSceneTextElements(A))}updateTextElement(e,A,t,n=!1){if(n||A!=e.text){const n=_measureText(A,e.fontSize,e.fontFamily);e.text=A,e.originalText=t,e.containerId||(e.width=n.w),e.height=n.h,e.baseline=n.baseline}}async updateSceneTextElements(e=!1){var A,t,n,i;const a=null===(A=this.scene.elements)||void 0===A?void 0:A.filter((e=>"text"===e.type));for(const A of a){const a=getContainerElement(A,this.scene),r=null!==(n=null!==(t=await this.getText(A.id))&&void 0!==t?t:A.originalText)&&void 0!==n?n:A.text,s=null===(i=this.textElements.get(A.id))||void 0===i?void 0:i.wrapAt;this.updateTextElement(A,s?wrapText(r,getFontString({fontSize:A.fontSize,fontFamily:A.fontFamily}),getMaxContainerWidth(a)):r,r,e)}}async getText(e){const A=this.textElements.get(e);return A?this.textMode===TextMode.parsed?(A.parsed||this.textElements.set(e,{raw:A.raw,parsed:(await this.parse(A.raw)).parsed,wrapAt:A.wrapAt}),A.parsed):A.raw:null}findNewElementLinksInScene(){var e;const A=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((e=>"text"!==e.type&&e.link&&e.link.startsWith("[[")&&!this.elementLinks.has(e.id)));if(0===A.length)return!1;let t,n=JSON.stringify(this.scene);for(const e of A)t=e.id,e.id.length>8&&(t=nanoid(),n=n.replaceAll(e.id,t)),this.elementLinks.set(t,e.link);return this.scene=JSON.parse(n),!0}findNewTextElementsInScene(e={}){var A;this.selectedElementIds=e;const t=null===(A=this.scene.elements)||void 0===A?void 0:A.filter((e=>"text"===e.type));let n,i=JSON.stringify(this.scene),a=!1;for(const e of t)if(n=e.id,e.id.length>8){if(a=!0,n=nanoid(),this.selectedElementIds[e.id]&&(delete this.selectedElementIds[e.id],this.selectedElementIds[n]=!0),i=i.replaceAll(e.id,n),this.textElements.has(e.id)){const A=this.textElements.get(e.id);this.textElements.set(n,{raw:A.raw,parsed:A.parsed,wrapAt:A.wrapAt}),this.textElements.delete(e.id)}if(!this.textElements.has(n)){const A=e.rawText&&""!==e.rawText?e.rawText:e.text,t=estimateMaxLineLen(e.text,e.originalText);this.textElements.set(n,{raw:A,parsed:null,wrapAt:t}),this.parseasync(n,A,t)}}else if(!this.textElements.has(e.id)){const A=e.rawText&&""!==e.rawText?e.rawText:e.text,t=estimateMaxLineLen(e.text,e.originalText);this.textElements.set(n,{raw:A,parsed:null,wrapAt:t}),this.parseasync(n,A,t)}return a&&(this.scene=JSON.parse(i)),a}updateElementLinksFromScene(){var e;for(const A of this.elementLinks.keys()){const t=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((e=>"text"!==e.type&&e.id===A&&e.link&&e.link.startsWith("[[")));0===t.length?this.elementLinks.delete(A):this.elementLinks.set(A,t[0].link)}}async updateTextElementsFromScene(){var e,A,t;for(const n of this.textElements.keys()){const i=null===(e=this.scene.elements)||void 0===e?void 0:e.filter((e=>"text"===e.type&&e.id===n));if(0===i.length)this.textElements.delete(n);else{const e=await this.getText(n),a=this.scene.prevTextMode===TextMode.parsed?i[0].rawText:null!==(A=i[0].originalText)&&void 0!==A?A:i[0].text;if(e!==(null!==(t=i[0].originalText)&&void 0!==t?t:i[0].text)){const e=estimateMaxLineLen(i[0].text,i[0].originalText);this.textElements.set(n,{raw:a,parsed:(await this.parse(a)).parsed,wrapAt:e})}}}}async parseasync(e,A,t){this.textElements.set(e,{raw:A,parsed:(await this.parse(A)).parsed,wrapAt:t})}parseLinks(e,A,t){return e.substring(A,t.value.index)+(this.showLinkBrackets?"[[":"")+REGEX_LINK.getAliasOrLink(t)+(this.showLinkBrackets?"]]":"")}async getTransclusion(e){const A=getLinkParts(e,this.file),t=this.app.metadataCache.getFirstLinkpathDest(A.path,this.file.path);return await getTransclusion(A,this.app,t,this.plugin.settings.pageTransclusionCharLimit)}async parse(e){e=this.parseCheckbox(e);let A="",t=null,n=0;const i=REGEX_LINK.getRes(e);let a,r=!1,s=!1;for(e.match(REG_LINKINDEX_HYPERLINK)&&(t=e,s=!0);!(a=i.next()).done;){if(!t){const e=REGEX_LINK.getLink(a);t=e.match(REG_LINKINDEX_HYPERLINK)?e:`[[${e}]]`}if(REGEX_LINK.isTransclusion(a)){let t=this.parseCheckbox((await this.getTransclusion(REGEX_LINK.getLink(a))).contents).replaceAll(/%%[^%]*%%/gm,"");this.plugin.settings.removeTransclusionQuoteSigns&&(t=t.replaceAll(/\n\s*>\s?/gm,"\n")),A+=e.substring(n,a.value.index)+wrapTextAtCharLength(t,REGEX_LINK.getWrapLength(a,this.plugin.settings.wordWrappingDefault),this.plugin.settings.forceWrap)}else{const t=this.parseLinks(e,n,a);t&&(A+=t,s||r||(REGEX_LINK.getLink(a).match(REG_LINKINDEX_HYPERLINK)?s=!0:r=!0))}n=a.value.index+a.value[0].length}return A+=e.substring(n,e.length),r&&(A=this.linkPrefix+A),s&&(A=this.urlPrefix+A),{parsed:A,link:t}}parseCheckbox(e){return this.plugin.settings.parseTODO?e.replaceAll(/^- \[\s] /g,`${this.plugin.settings.todo} `).replaceAll(/\n- \[\s] /g,`\n${this.plugin.settings.todo} `).replaceAll(/^- \[[^\s]] /g,`${this.plugin.settings.done} `).replaceAll(/\n- \[[^\s]] /g,`\n${this.plugin.settings.done} `):e}quickParse(e){if((e=>{const A=REGEX_LINK.getRes(e);let t;for(;!(t=A.next()).done;)if(REGEX_LINK.isTransclusion(t))return!0;return!1})(e))return[null,null];e=this.parseCheckbox(e);let A="",t=null,n=0;const i=REGEX_LINK.getRes(e);let a,r=!1,s=!1;for(e.match(REG_LINKINDEX_HYPERLINK)&&(t=e,s=!0);!(a=i.next()).done;){if(!t){const e=REGEX_LINK.getLink(a);t=e.match(REG_LINKINDEX_HYPERLINK)?e:`[[${e}]]`}const i=this.parseLinks(e,n,a);i&&(A+=i,s||r||(REGEX_LINK.getLink(a).match(REG_LINKINDEX_HYPERLINK)?s=!0:r=!0)),n=a.value.index+a.value[0].length}return A+=e.substring(n,e.length),r&&(A=this.linkPrefix+A),s&&(A=this.urlPrefix+A),[A,t]}generateMD(e=[]){let A="# Text Elements\n";for(const e of this.textElements.keys()){const t=this.scene.elements.filter((A=>A.id===e));let n=this.textElements.get(e).raw;t&&1===t.length&&t[0].link&&t[0].rawText===t[0].originalText&&t[0].link.match(/^\[\[[^\]]*]]$/g)&&(n=`%%***>>>text element-link:${t[0].link}<<<***%%`+n),A+=`${n} ^${e}\n\n`}for(const e of this.elementLinks.keys())A+=`${this.elementLinks.get(e)} ^${e}\n\n`;if(A+=this.equations.size>0||this.files.size>0?"\n# Embedded files\n":"",this.equations.size>0)for(const e of this.equations.keys())A+=`${e}: $$${this.equations.get(e).latex}$$\n`;if(this.files.size>0)for(const e of this.files.keys()){const t=/(^[^#\|]*)/,n=this.files.get(e);A+=`${e}: [[${n.file?n.linkParts.original.replace(t,app.metadataCache.fileToLinktext(n.file,this.file.path)):n.linkParts.original}]]\n`}return A+=this.equations.size>0||this.files.size>0?"\n":"",A+getMarkdownDrawingSection(JSON.stringify({type:this.scene.type,version:this.scene.version,source:this.scene.source,elements:this.scene.elements.concat(e),appState:this.scene.appState,files:this.scene.files},null,"\t"),!this.disableCompression&&this.plugin.settings.compress)}async syncFiles(){var e;let A=!1;const t=this.scene,n=t.elements.filter((e=>"image"===e.type)).map((e=>e.fileId));if(this.files.forEach(((e,t)=>{n.contains(t)||(this.files.delete(t),A=!0)})),this.equations.forEach(((e,t)=>{n.contains(t)||(this.equations.delete(t),A=!0)})),!t.files||0===Object.keys(t.files).length)return!1;const i=new Set;n.forEach((e=>{if(i.has(e)){const n=this.getFile(e),a=this.getEquation(e);if(n&&n.file&&("md"!==n.file.extension||this.plugin.isExcalidrawFile(n.file)))return;const r=fileid();t.elements.filter((A=>A.fileId===e))[0].fileId=r,A=!0,i.add(r),n&&this.setFile(r,new EmbeddedFile(this.plugin,this.file.path,n.linkParts.original)),a&&this.setEquation(r,{latex:a.latex,isLoaded:!1})}i.add(e)}));for(const n of Object.keys(t.files))if(!this.hasFile(n)&&!this.hasEquation(n)){A=!0;let i=`Pasted Image ${window.moment().format("YYYYMMDDHHmmss_SSS")}`;const a=t.files[n].mimeType;switch(a){case"image/png":default:i+=".png";break;case"image/jpeg":i+=".jpg";break;case"image/svg+xml":i+=".svg";break;case"image/gif":i+=".gif"}const r=(await getAttachmentsFolderAndFilePath(this.app,this.file.path,i)).filepath,s=t.files[n].dataURL;await this.app.vault.createBinary(r,getBinaryFileFromDataURL(s));const o=new EmbeddedFile(this.plugin,this.file.path,r);o.setImage(s,a,{height:0,width:0},"dark"===(null===(e=t.appState)||void 0===e?void 0:e.theme),"image/svg+xml"===a),this.setFile(n,o)}return A}async syncElements(e,A){this.scene=e;let t=!1;return this.compatibilityMode||(t=await this.syncFiles(),this.scene.files={}),this.updateElementLinksFromScene(),t=t||this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.findNewElementLinksInScene(),await this.updateTextElementsFromScene(),t||this.findNewTextElementsInScene(A)}async updateScene(e){this.scene=JSON_parse(e),this.updateElementLinksFromScene();const A=this.setLinkPrefix()||this.setUrlPrefix()||this.setShowLinkBrackets()||this.findNewElementLinksInScene();return await this.updateTextElementsFromScene(),!(!A&&!this.findNewTextElementsInScene()||(await this.updateSceneTextElements(),0))}getRawText(e){var A;return null===(A=this.textElements.get(e))||void 0===A?void 0:A.raw}getParsedText(e){const A=this.textElements.get(e);return A?[wrap(A.parsed,A.wrapAt),A.parsed,null]:[null,null,null]}setTextElement(e,A,t,n){const i=estimateMaxLineLen(A,t),[a,r]=this.quickParse(t);return a?(this.textElements.set(e,{raw:t,parsed:a,wrapAt:i}),[wrap(a,i),a,r]):(this.parse(t).then((A=>{const a=A.parsed;this.textElements.set(e,{raw:t,parsed:a,wrapAt:i}),a&&n(wrap(a,i),a)})),[null,null,null])}async addTextElement(e,A,t){let n=estimateMaxLineLen(A,t);this.textElements.has(e)&&(n=this.textElements.get(e).wrapAt);const i=await this.parse(t);return this.textElements.set(e,{raw:t,parsed:i.parsed,wrapAt:n}),[wrap(i.parsed,n),i.parsed,i.link]}deleteTextElement(e){this.textElements.delete(e)}getOpenMode(){const e=this.app.metadataCache.getFileCache(this.file);let A=this.plugin.settings.defaultMode;switch((null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-default-mode"]&&(A=e.frontmatter["excalidraw-default-mode"]),A){case"zen":return{viewModeEnabled:!1,zenModeEnabled:!0};case"view":return{viewModeEnabled:!0,zenModeEnabled:!1};default:return{viewModeEnabled:!1,zenModeEnabled:!1}}}getLinkOpacity(){const e=this.app.metadataCache.getFileCache(this.file);let A=this.plugin.settings.linkOpacity;return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-linkbutton-opacity"]&&(A=e.frontmatter["excalidraw-linkbutton-opacity"]),A}getOnLoadScript(){const e=this.app.metadataCache.getFileCache(this.file);return(null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-onload-script"]?e.frontmatter["excalidraw-onload-script"]:null}setLinkPrefix(){const e=this.linkPrefix,A=this.app.metadataCache.getFileCache(this.file);return(null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-link-prefix"]?this.linkPrefix=A.frontmatter["excalidraw-link-prefix"]:this.linkPrefix=this.plugin.settings.linkPrefix,e!=this.linkPrefix}setUrlPrefix(){const e=this.urlPrefix,A=this.app.metadataCache.getFileCache(this.file);return(null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-url-prefix"]?this.urlPrefix=A.frontmatter["excalidraw-url-prefix"]:this.urlPrefix=this.plugin.settings.urlPrefix,e!=this.urlPrefix}setAutoexportPreferences(){const e=this.app.metadataCache.getFileCache(this.file);if((null==e?void 0:e.frontmatter)&&null!=e.frontmatter["excalidraw-autoexport"])switch(e.frontmatter["excalidraw-autoexport"].toLowerCase()){case"none":this.autoexportPreference=AutoexportPreference.none;break;case"both":this.autoexportPreference=AutoexportPreference.both;break;case"png":this.autoexportPreference=AutoexportPreference.png;break;case"svg":this.autoexportPreference=AutoexportPreference.svg;break;default:this.autoexportPreference=AutoexportPreference.inherit}else this.autoexportPreference=AutoexportPreference.inherit}setShowLinkBrackets(){const e=this.showLinkBrackets,A=this.app.metadataCache.getFileCache(this.file);return(null==A?void 0:A.frontmatter)&&null!=A.frontmatter["excalidraw-link-brackets"]?this.showLinkBrackets=0!=A.frontmatter["excalidraw-link-brackets"]:this.showLinkBrackets=this.plugin.settings.showLinkBrackets,e!=this.showLinkBrackets}setFile(e,A){if(!A)return;if(this.files.set(e,A),!A.file)return;const t=A.linkParts.original.split("#");this.plugin.filesMaster.set(e,{path:A.file.path+(A.shouldScale()?"":"|100%"),blockrefData:1===t.length?null:t[1],hasSVGwithBitmap:A.isSVGwithBitmap})}getFiles(){return Object.values(this.files)}getFile(e){let A=this.files.get(e);if(A)return A;const t=this.plugin.filesMaster.get(e);return t?(A=new EmbeddedFile(this.plugin,this.file.path,t.blockrefData?t.path+"#"+t.blockrefData:t.path),this.files.set(e,A),A):A}getFileEntries(){return this.files.entries()}deleteFile(e){this.files.delete(e)}hasFile(e){if(this.files.has(e))return!0;if(this.plugin.filesMaster.has(e)){const A=this.plugin.filesMaster.get(e),t=A.path.split("|")[0].split("#")[0];if(!this.app.vault.getAbstractFileByPath(t))return this.plugin.filesMaster.delete(e),!0;const n=A.path.endsWith("100%"),i=new EmbeddedFile(this.plugin,this.file.path,(A.blockrefData?t+"#"+A.blockrefData:t)+(n?"|100%":""));return this.files.set(e,i),!0}return!1}setEquation(e,A){this.equations.set(e,{latex:A.latex,isLoaded:A.isLoaded}),this.plugin.equationsMaster.set(e,A.latex)}getEquation(e){let A=this.equations.get(e);if(A)return A;const t=this.plugin.equationsMaster.get(e);return t?(this.equations.set(e,{latex:t,isLoaded:!1}),{latex:t,isLoaded:!1}):A}getEquationEntries(){return this.equations.entries()}deleteEquation(e){this.equations.delete(e)}hasEquation(e){return!!this.equations.has(e)||!!this.plugin.equationsMaster.has(e)&&(this.equations.set(e,{latex:this.plugin.equationsMaster.get(e),isLoaded:!1}),!0)}}const getTransclusion=async(e,A,t,n)=>{var i,a,r,s,o,l,c,d,h;if(!e.path)return{contents:e.original.trim(),lineNum:0};if(!(t&&t instanceof obsidian.TFile))return{contents:e.original.trim(),lineNum:0};const u=await A.vault.read(t);if(!e.ref)return n?{contents:u.substring(0,n).trim(),lineNum:0}:{contents:u.trim(),lineNum:0};const g=(await A.metadataCache.blockCache.getForFile({isCancelled:()=>!1},t)).blocks.filter((e=>"comment"!=e.node.type));if(!g)return{contents:e.original.trim(),lineNum:0};if(e.isBlockRef){let A=null===(i=g.filter((A=>A.node.id==e.ref))[0])||void 0===i?void 0:i.node;if(!A)return{contents:e.original.trim(),lineNum:0};["blockquote"].includes(A.type)&&(A=A.children[0]);const t=A.position.start.offset,n=A.position.start.line,a=A.position.end.offset;return{contents:u.substring(t,a).replaceAll(/ \^\S*$|^\^\S*$/gm,"").trim(),lineNum:n}}const p=g.filter((e=>0===e.display.search(/^#+\s/)));let w=null,m=0,f=null,B=1;for(let A=0;AB;)e++;return e===p.length&&p[e-1].node.depth>B?{leadingHashes:"#".repeat(B)+" ",contents:u.substring(w).trim(),lineNum:m}:(f=p[e].node.position.start.offset-1,{leadingHashes:"#".repeat(B)+" ",contents:u.substring(w,f).trim(),lineNum:m})}const t=p[A].node.children[0],n=null===(r=null===(a=p[A].node.data)||void 0===a?void 0:a.hProperties)||void 0===r?void 0:r.dataHeading,i=null==t?void 0:t.children;!w&&((null===(s=null==t?void 0:t.value)||void 0===s?void 0:s.replaceAll(REG_BLOCK_REF_CLEAN,""))===e.ref||(null===(o=null==t?void 0:t.title)||void 0===o?void 0:o.replaceAll(REG_BLOCK_REF_CLEAN,""))===e.ref||(null==n?void 0:n.replaceAll(REG_BLOCK_REF_CLEAN,""))===e.ref||i&&(null===(c=null===(l=i[0])||void 0===l?void 0:l.value)||void 0===c?void 0:c.replaceAll(REG_BLOCK_REF_CLEAN,""))===e.ref)&&(w=null===(d=p[A].node.children[0])||void 0===d?void 0:d.position.start.offset,B=p[A].node.depth,m=null===(h=p[A].node.children[0])||void 0===h?void 0:h.position.start.line)}return w?{leadingHashes:"#".repeat(B)+" ",contents:u.substring(w).trim(),lineNum:m}:{contents:e.original.trim(),lineNum:0}};class Prompt extends obsidian.Modal{constructor(e,A,t,n,i){super(e),this.prompt_text=A,this.default_value=t,this.placeholder=n,this.prompt_desc=i}onOpen(){this.titleEl.setText(this.prompt_text),this.createForm()}onClose(){this.contentEl.empty()}createForm(){var e;let A=this.contentEl.createDiv();A.addClass("excalidraw-prompt-div"),this.prompt_desc&&(A=A.createDiv(),A.style.width="100%",A.createEl("p").innerHTML=this.prompt_desc);const t=A.createEl("form");t.addClass("excalidraw-prompt-form"),t.type="submit",t.onsubmit=e=>{e.preventDefault(),this.resolve(this.promptEl.value),this.close()},this.promptEl=t.createEl("input"),this.promptEl.type="text",this.promptEl.placeholder=this.placeholder,this.promptEl.value=null!==(e=this.default_value)&&void 0!==e?e:"",this.promptEl.addClass("excalidraw-prompt-input"),this.promptEl.select()}async openAndGetValue(e){this.resolve=e,this.open()}}class GenericInputPrompt extends obsidian.Modal{constructor(e,A,t,n,i){super(e),this.header=A,this.didSubmit=!1,this.submitClickCallback=()=>this.submit(),this.cancelClickCallback=()=>this.cancel(),this.submitEnterCallback=e=>{"Enter"===e.key&&(e.preventDefault(),this.submit())},this.placeholder=t,this.input=n,this.buttons=i,this.waitForClose=new Promise(((e,A)=>{this.resolvePromise=e,this.rejectPromise=A})),this.display(),this.open()}static Prompt(e,A,t,n,i){return new GenericInputPrompt(e,A,t,n,i).waitForClose}display(){this.contentEl.empty(),this.titleEl.textContent=this.header;const e=this.contentEl.createDiv();this.inputComponent=this.createInputField(e,this.placeholder,this.input),this.createButtonBar(e)}createInputField(e,A,t){const n=new obsidian.TextComponent(e);return n.inputEl.style.width="100%",n.setPlaceholder(null!=A?A:"").setValue(null!=t?t:"").onChange((e=>this.input=e)).inputEl.addEventListener("keydown",this.submitEnterCallback),n}createButton(e,A,t){const n=new obsidian.ButtonComponent(e);return n.setButtonText(A).onClick(t),n}createButtonBar(e){const A=e.createDiv();if(this.buttons&&this.buttons.length>0){let e=null;for(const t of this.buttons){const n=new obsidian.ButtonComponent(A);n.setButtonText(t.caption).onClick((e=>{const A=t.action(this.input);A&&(this.input=A),this.submit()})),e=null!=e?e:n}e&&(e.setCta().buttonEl.style.marginRight="0")}else this.createButton(A,"Ok",this.submitClickCallback).setCta().buttonEl.style.marginRight="0";this.createButton(A,"Cancel",this.cancelClickCallback),A.style.display="flex",A.style.flexDirection="row-reverse",A.style.justifyContent="flex-start",A.style.marginTop="1rem"}submit(){this.didSubmit=!0,this.close()}cancel(){this.close()}resolveInput(){this.didSubmit?this.resolvePromise(this.input):this.rejectPromise("No input given.")}removeInputListener(){var e,A;null===(A=null===(e=this.inputComponent)||void 0===e?void 0:e.inputEl)||void 0===A||A.removeEventListener("keydown",this.submitEnterCallback)}onOpen(){super.onOpen(),this.inputComponent.inputEl.focus(),this.inputComponent.inputEl.select()}onClose(){super.onClose(),this.resolveInput(),this.removeInputListener()}}class GenericSuggester extends obsidian.FuzzySuggestModal{constructor(e,A,t,n,i){var a;super(e),this.displayItems=A,this.items=t,this.hint=n,this.instructions=i,this.limit=20,this.setPlaceholder(null!==(a=this.hint)&&void 0!==a?a:""),i&&this.setInstructions(this.instructions),this.promise=new Promise(((e,A)=>{this.resolvePromise=e,this.rejectPromise=A})),this.open()}static Suggest(e,A,t,n,i){return new GenericSuggester(e,A,t,n,i).promise}getItemText(e){return this.displayItems[this.items.indexOf(e)]}getItems(){return this.items}selectSuggestion(e,A){this.resolved=!0,super.selectSuggestion(e,A)}onChooseItem(e){this.resolved=!0,this.resolvePromise(e)}onClose(){super.onClose(),this.resolved||this.rejectPromise(this.inputEl.value)}}class NewFileActions extends obsidian.Modal{constructor(e,A,t,n,i){super(e.app),this.plugin=e,this.path=A,this.newPane=t,this.newWindow=n,this.view=i}onOpen(){this.createForm()}async onClose(){}openFile(e){e&&(this.newWindow?app.workspace.openPopoutLeaf():this.newPane?getNewOrAdjacentLeaf(this.plugin,this.view.leaf):this.view.leaf).openFile(e,{active:!0})}createForm(){this.titleEl.setText("New File"),this.contentEl.createDiv({cls:"excalidraw-prompt-center",text:"File does not exist. Do you want to create it?"}),this.contentEl.createDiv({cls:"excalidraw-prompt-center filepath",text:this.path}),this.contentEl.createDiv({cls:"excalidraw-prompt-center"},(e=>{e.style.textAlign="right";const A=()=>this.path&&""!==this.path?!!this.view.file||(new obsidian.Notice("Unknown error. It seems as if your drawing was closed or the drawing file is missing"),!1):(new obsidian.Notice("Error: Filename for new file may not be empty"),!1),t=async e=>{if(!this.path.includes("/")){const e=new RegExp(`${this.view.file.name}$`,"g");this.path=this.view.file.path.replace(e,this.path)}return this.path.match(/\.md$/)||(this.path=`${this.path}.md`),checkAndCreateFolder(splitFolderAndFilename(this.path).folderpath),await this.app.vault.create(this.path,e)};e.createEl("button",{text:"Create Markdown"}).onclick=async()=>{if(!A)return;const e=await t("");this.openFile(e),this.close()},e.createEl("button",{text:"Create Excalidraw"}).onclick=async()=>{if(!A)return;const e=await t(await this.plugin.getBlankDrawing());await sleep$1(200),this.openFile(e),this.close()},e.createEl("button",{text:"Never Mind"}).onclick=()=>{this.close()}}))}}class ScriptEngine{constructor(e){this.plugin=e,this.scriptIconMap={},this.loadScripts(),this.registerEventHandlers()}registerEventHandlers(){const e=e=>{if(!e.endsWith(".svg"))return;const A=app.vault.getAbstractFileByPath(getIMGFilename(e,"md"));A&&A instanceof obsidian.TFile&&(this.unloadScript(this.getScriptName(A),A.path),this.loadScript(A))};this.plugin.registerEvent(app.vault.on("delete",(async A=>{A instanceof obsidian.TFile&&A.path.startsWith(this.scriptPath)&&(this.unloadScript(this.getScriptName(A),A.path),e(A.path))}))),this.plugin.registerEvent(app.vault.on("create",(async A=>{A instanceof obsidian.TFile&&A.path.startsWith(this.scriptPath)&&(this.loadScript(A),e(A.path))}))),this.plugin.registerEvent(app.vault.on("rename",(async(A,t)=>{if(!(A instanceof obsidian.TFile))return;const n=t.startsWith(this.scriptPath),i=A.path.startsWith(this.scriptPath);n&&(this.unloadScript(this.getScriptName(t),t),e(t)),i&&(this.loadScript(A),e(A.path))})))}updateScriptPath(){this.scriptPath!==this.plugin.settings.scriptFolderPath&&(this.scriptPath&&this.unloadScripts(),this.loadScripts())}getListofScripts(){if(this.scriptPath=this.plugin.settings.scriptFolderPath,app.vault.getAbstractFileByPath(this.scriptPath))return app.vault.getFiles().filter((e=>e.path.startsWith(this.scriptPath)&&"md"===e.extension));this.scriptPath=null}loadScripts(){var e;null===(e=this.getListofScripts())||void 0===e||e.forEach((e=>this.loadScript(e)))}getScriptName(e){let A="",t="";e instanceof obsidian.TFile?(A=e.basename,t=e.path):(A=splitFolderAndFilename(e).basename,t=e);const n=t.split(`${this.scriptPath}/`)[1],i=n.lastIndexOf("/");return i>-1?n.substring(0,i+1)+A:A}async addScriptIconToMap(e,A){const t=getIMGFilename(e,"svg"),n=app.vault.getAbstractFileByPath(t),i=n&&n instanceof obsidian.TFile?await app.vault.read(n):null;this.scriptIconMap=Object.assign({},this.scriptIconMap),this.scriptIconMap[e]={name:A,svgString:i},this.updateToolPannels()}loadScript(e){if("md"!==e.extension)return;const A=this.getScriptName(e);this.addScriptIconToMap(e.path,A),this.plugin.addCommand({id:A,name:`(Script) ${A}`,checkCallback:t=>{if(t)return Boolean(app.workspace.getActiveViewOfType(ExcalidrawView));const n=app.workspace.getActiveViewOfType(ExcalidrawView);return!!n&&((async()=>{const t=await app.vault.read(e);t&&this.executeScript(n,t,A)})(),!0)}})}unloadScripts(){const e=app.vault.getFiles().filter((e=>e.path.startsWith(this.scriptPath)));e.forEach((e=>{this.unloadScript(this.getScriptName(e),e.path)}))}unloadScript(e,A){if(!A.endsWith(".md"))return;delete this.scriptIconMap[A],this.scriptIconMap=Object.assign({},this.scriptIconMap),this.updateToolPannels();const t=`${PLUGIN_ID}:${e}`;app.commands.commands[t]&&delete app.commands.commands[t]}async executeScript(e,A,t){if(!e||!A||!t)return;this.plugin.ea.reset(),this.plugin.ea.setView(e),this.plugin.ea.activeScript=t;const n=Object.getPrototypeOf((async()=>{})).constructor;let i=null;return i=await new n("ea","utils",A)(this.plugin.ea,{inputPrompt:(e,A,t,n)=>ScriptEngine.inputPrompt(app,e,A,t,n),suggester:(e,A,t,n)=>ScriptEngine.suggester(app,e,A,t,n)}),this.plugin.ea.activeScript=null,i}updateToolPannels(){app.workspace.getLeavesOfType("excalidraw").forEach((e=>{var A,t;null===(t=null===(A=e.view.toolsPanelRef)||void 0===A?void 0:A.current)||void 0===t||t.updateScriptIconMap(this.scriptIconMap)}))}static async inputPrompt(e,A,t,n,i){try{return await GenericInputPrompt.Prompt(e,A,t,n,i)}catch(e){return}}static async suggester(e,A,t,n,i){try{return await GenericSuggester.Suggest(e,A,t,n,i)}catch(e){return}}}var t$c={d:(e,A)=>{for(var t in A)t$c.o(A,t)&&!t$c.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},r$d={};t$c.d(r$d,{QA:()=>w$1,ZP:()=>j$1,qt:()=>x$1,MX:()=>$});const e$d={red:"hsl(0, 100%, 50%)",orange:"hsl(30, 100%, 50%)",yellow:"hsl(60, 100%, 50%)","lime green":"hsl(90, 100%, 50%)",green:"hsl(120, 100%, 50%)","blue green":"hsl(150, 100%, 50%)",cyan:"hsl(180, 100%, 50%)","sky blue":"hsl(210, 100%, 50%)",blue:"hsl(240, 100%, 50%)",purple:"hsl(270, 100%, 50%)",magenta:"hsl(300, 100%, 50%)",pink:"hsl(330, 100%, 50%)"};function s$a(e,A,t){return Math.max(e,Math.min(A,t))}function n$c(e,A){return+e.toFixed(A>=0?A:0)}function a$c(e){const A=e%360;return A<0?A+360:A}function i$a(e){return void 0!==e?s$a(0,e,1):1}function o$b(e){return Math.floor(Math.random()*e)}function h$4(e){var A;const{Cmin:t,Cmax:n,H:i,delta:a}=function(e){const[A,t,n]=Object.values(e).map((e=>e/255)),i=Math.max(A,t,n),a=Math.min(A,t,n),r=i-a;return{Cmin:a,Cmax:i,H:0===r?0:i===A?(t-n)/r%6:i===t?(n-A)/r+2:(A-t)/r+4,delta:r}}(e),r=(n+t)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:a$c(60*i),s:100*s,l:100*r,a:null!==(A=e.a)&&void 0!==A?A:1}}function u$8(e){const{h:A,s:t,l:n,a:i}=e,a=n/100,r=t/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(A/60%2-1)),l=a-s/2,c=A<60||300<=A&&A<360?s:120<=A&&A<240?0:o,d=240<=A&&A<360?0:60<=A&&A<180?s:o,h=A<120?0:180<=A&&A<300?s:o,[u,g,p]=[c,d,h].map((e=>255*(e+l)));return{r:u,g:g,b:p,a:null!=i?i:1}}function l$5(e){const[A,t,n,i]=Object.values(e).map((e=>parseInt(e,16)));return{r:A,g:t,b:n,a:i?i/255:1}}const c$a=/^#?([\da-f])([\da-f])([\da-f])([\da-f])?$|^#?([\da-f]{2})([\da-f]{2})([\da-f]{2})?([\da-f]{2})?$/gi,f$3=/hsla?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function d$2({h:e,s:A,l:t,a:n}){return[u$8({h:a$c(e),s:s$a(0,A,100),l:s$a(0,t,100),a:i$a(n)}),"hsl"]}const g$2=/rgba?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function b$5({r:e,g:A,b:t,a:n}){return[{r:s$a(0,e,255),g:s$a(0,A,255),b:s$a(0,t,255),a:i$a(n)},"rgb"]}var p$3,v$2,m$1=function(e,A,t,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof A?e!==A||!i:!A.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,t):i?i.value=t:A.set(e,t),t},y$1=function(e,A,t,n){if("a"===t&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof A?e!==A||!n:!A.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===t?n:"a"===t?n.call(e):n?n.value:A.get(e)};class w$1{constructor(e){var A,t;p$3.set(this,{r:0,g:0,b:0,a:1}),v$2.set(this,"rgb");const n=w$1.Parsers.map((A=>A(e))).find((e=>"invalid"!==e[1]));n?(A=this,t=this,[{set value(e){m$1(A,p$3,e,"f")}}.value,{set value(e){m$1(t,v$2,e,"f")}}.value]=n):m$1(this,v$2,"invalid","f")}get red(){return y$1(this,p$3,"f").r}get blue(){return y$1(this,p$3,"f").b}get green(){return y$1(this,p$3,"f").g}get alpha(){return y$1(this,p$3,"f").a}get hue(){return h$4(y$1(this,p$3,"f")).h}get saturation(){return h$4(y$1(this,p$3,"f")).s}get lightness(){return h$4(y$1(this,p$3,"f")).l}get format(){return y$1(this,v$2,"f")}isValid(){return"invalid"!==y$1(this,v$2,"f")}rgba(){return y$1(this,p$3,"f")}hsla(){return h$4(y$1(this,p$3,"f"))}hexa({round:e=!1}={}){return function(e,A=!1){let{r:t,g:n,b:i,a:a}=e;a&&(a*=255),A&&([t,n,i,a]=[t,n,i,a].map((e=>e&&Math.round(e))));const[r,s,o,l]=[t,n,i,null!=a?a:255].map((e=>e.toString(16).padStart(2,"0").toUpperCase()));return{r:r,g:s,b:o,a:l}}(y$1(this,p$3,"f"),e)}stringRGB({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,n,i,a]=Object.values(y$1(this,p$3,"f")).map(((e,t)=>n$c(e,A[t])));return e?`rgba(${t}, ${n}, ${i}, ${a})`:`rgb(${t}, ${n}, ${i})`}stringHEX({alpha:e=!0}={}){const[A,t,n,i]=Object.values(this.hexa({round:!0}));return`#${A}${t}${n}${e?i:""}`}stringHSL({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,n,i,a]=Object.values(this.hsla()).map(((e,t)=>n$c(e,A[t])));return e?`hsla(${t}, ${n}%, ${i}%, ${a})`:`hsl(${t}, ${n}%, ${i}%)`}hueTo(e){var A;const{h:t,s:n,l:i,a:a}=this.hsla(),r="number"==typeof e?a$c(e):Number(null!==(A=e$d[e].match(/\d{1,3}/))&&void 0!==A?A:t);return m$1(this,p$3,u$8({h:r,s:n,l:i,a:a}),"f"),this}hueBy(e){const{h:A,s:t,l:n,a:i}=this.hsla();return m$1(this,p$3,u$8({h:a$c(A+e),s:t,l:n,a:i}),"f"),this}saturationTo(e){const{h:A,l:t,a:n}=this.hsla();return m$1(this,p$3,u$8({h:A,s:s$a(0,e,100),l:t,a:n}),"f"),this}saturateBy(e){const{h:A,s:t,l:n,a:i}=this.hsla();return m$1(this,p$3,u$8({h:A,s:s$a(0,t+e,100),l:n,a:i}),"f"),this}desaturateBy(e){return this.saturateBy(-1*e)}lightnessTo(e){const{h:A,s:t,a:n}=this.hsla();return m$1(this,p$3,u$8({h:A,s:t,l:s$a(0,e,100),a:n}),"f"),this}lighterBy(e){const{h:A,s:t,l:n,a:i}=this.hsla();return m$1(this,p$3,u$8({h:A,s:t,l:s$a(0,n+e,100),a:i}),"f"),this}darkerBy(e){return this.lighterBy(-1*e)}alphaTo(e){return m$1(this,p$3,Object.assign(Object.assign({},y$1(this,p$3,"f")),{a:s$a(0,e,1)}),"f"),this}alphaBy(e){return m$1(this,p$3,Object.assign(Object.assign({},y$1(this,p$3,"f")),{a:s$a(0,y$1(this,p$3,"f").a+e,1)}),"f"),this}invert({alpha:e=!1}={}){const{r:A,g:t,b:n,a:i}=y$1(this,p$3,"f");return m$1(this,p$3,{r:255-A,g:255-t,b:255-n,a:e?1-i:i},"f"),this}grayscale(){return this.desaturateBy(100)}rotate(e){return this.hueBy(e)}}function $(){return new w$1({r:o$b(255),g:o$b(255),b:o$b(255),a:Math.random()})}function x$1(e){(e=e.filter(((e,A,t)=>t.indexOf(e)===A))).forEach((e=>e(w$1)))}p$3=new WeakMap,v$2=new WeakMap,w$1.Parsers=[function(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{r:A,g:t,b:n}=e;return void 0!==A&&void 0!==t&&void 0!==n&&"number"==typeof A}(e))return b$5(e);if("string"==typeof e){g$2.lastIndex=0;const A=g$2.exec(e);if(A){const[e,t,n,i]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(A<3?2.55:.01):+e));return b$5({r:e,g:t,b:n,a:i})}}return[{r:0,g:0,b:0,a:1},"invalid"]},function(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{r:A,g:t,b:n}=e;return void 0!==A&&void 0!==t&&void 0!==n&&"string"==typeof A}(e))return[l$5(e),"hex"];if("string"==typeof e){c$a.lastIndex=0;const A=c$a.exec(e);if(A){const[e,t,n,i]=A.filter((e=>void 0!==e)).slice(1).map((e=>1===e.length?e.repeat(2):e));return[l$5({r:e,g:t,b:n,a:null!=i?i:"FF"}),"hex"]}}return[{r:0,g:0,b:0,a:1},"invalid"]},function(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{h:A,s:t,l:n}=e;return void 0!==A&&void 0!==t&&void 0!==n}(e))return d$2(e);if("string"==typeof e){f$3.lastIndex=0;const A=f$3.exec(e);if(A){const[e,t,n,i]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(0===A?3.59:A<3?1:.01):+e));return d$2({h:e,s:t,l:n,a:i})}}return[{r:0,g:0,b:0,a:1},"invalid"]}];const j$1=e=>new w$1(e);r$d.QA;var O$1=r$d.ZP,B=r$d.qt;r$d.MX;var e$c={d:(e,A)=>{for(var t in A)e$c.o(A,t)&&!e$c.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},a$b={};function t$b(e){const A=e%360;return A<0?A+360:A}e$c.d(a$b,{Z:()=>n$b});const n$b=e=>{e.prototype.harmony=function({type:A="analogous",effect:t="tones",amount:n=5}={}){const{h:i,s:a,l:r,a:s}=this.hsla();switch("monochromatic"===A&&(o=n,n=Math.max(2,Math.min(o,10))),A){case"analogous":return[-30,0,30].map((A=>new e({h:t$b(i+A),s:a,l:r,a:s})));case"complementary":return[0,180].map((A=>new e({h:t$b(i+A),s:a,l:r,a:s})));case"split-complementary":return[0,150,210].map((A=>new e({h:t$b(i+A),s:a,l:r,a:s})));case"double-split-complementary":return[-30,0,30,150,210].map((A=>new e({h:t$b(i+A),s:a,l:r,a:s})));case"triad":return[0,120,240].map((A=>new e({h:t$b(i+A),s:a,l:r,a:s})));case"rectangle":return[0,60,180,240].map((A=>new e({h:t$b(i+A),s:a,l:r,a:s})));case"square":return[0,90,180,270].map((A=>new e({h:t$b(i+A),s:a,l:r,a:s})));case"monochromatic":{const A="tones"===t?a:r;let o=("tints"===t?100-A:A)/n;o="tints"===t?o:-1*o;const l=[A];for(let e=0;enew e({h:i,s:A,l:r,a:s}))):l.map((A=>new e({h:i,s:a,l:A,a:s})))}}var o}};var r$c=a$b.Z,a$a={d:(e,A)=>{for(var t in A)a$a.o(A,t)&&!a$a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},t$a={};a$a.d(t$a,{Z:()=>k});const e$b=6/29,n$a=Math.pow(e$b,3),c$9=Math.pow(29/3,3),r$b={x:.96422,y:1,z:.82521};function u$7(e,A){return[e[0][0]*A[0]+e[0][1]*A[1]+e[0][2]*A[2],e[1][0]*A[0]+e[1][1]*A[1]+e[1][2]*A[2],e[2][0]*A[0]+e[2][1]*A[1]+e[2][2]*A[2]]}function s$9(e,A,t){return Math.max(e,Math.min(A,t))}function o$a(e){const A=e%360;return A<0?A+360:A}function l$4(e){const[A,t,n]=Object.values(e).map((e=>e/255)),i=Math.max(A,t,n),a=Math.min(A,t,n),r=i-a;return{Cmin:a,Cmax:i,H:0===r?0:i===A?(t-n)/r%6:i===t?(n-A)/r+2:(A-t)/r+4,delta:r}}function b$4(e){var A;const{Cmin:t,Cmax:n,H:i,delta:a}=l$4(e),r=(n+t)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:o$a(60*i),s:100*s,l:100*r,a:null!==(A=e.a)&&void 0!==A?A:1}}function h$3(e){var A;const{Cmax:t,H:n,delta:i}=l$4(e),a=0===i?0:i/t;return{h:o$a(60*n),s:100*a,v:100*t,a:null!==(A=e.a)&&void 0!==A?A:1}}function v$1(e){const{h:A,a:t}=b$4(e),{r:n,g:i,b:a}=e;return{h:A,w:Math.min(n,i,a)/2.55,b:100*(1-Math.max(n,i,a)/255),a:t}}function i$9(e){const[A,t,n]=u$7([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(A=e,(A/=255)<.04045?A/12.92:Math.pow((A+.055)/1.055,2.4));var A})));return function(e){const[A,t,n]=u$7([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:A,y:t,z:n,a:e.a}}({x:A,y:t,z:n,a:e.a})}function m(e){const A=Object.values(i$9(e)).map(((e,A)=>e/(100*Object.values(r$b)[A]))).map((e=>e>n$a?Math.cbrt(e):(c$9*e+16)/116));return{l:116*A[1]-16,a:500*(A[0]-A[1]),b:200*(A[1]-A[2]),alpha:e.a}}function p$2(e){const{l:A,a:t,b:n}=m(e),i=180*Math.atan2(n,t)/Math.PI;return{l:A,c:Math.sqrt(Math.pow(t,2)+Math.pow(n,2)),h:o$a(i),a:e.a}}function f$2(e){const[A,t,n]=Object.values(i$9(e)).map((e=>e/100)),i=t/r$b.y,a=A&&t&&n?A+15*t+3*n:19,r=4*A/a,s=9*t/a,o=r$b.x+15*r$b.y+3*r$b.z,l=4*r$b.x/o,c=9*r$b.y/o;let d=i>n$a?116*Math.cbrt(i)-16:c$9*i,h=13*d*(r-l),u=13*d*(s-c);return d===Number(-0)&&(d=0),h===Number(-0)&&(h=0),u===Number(-0)&&(u=0),{l:d,u:h,v:u,a:e.a}}function M(e){const{x:A,y:t,z:n}=i$9(e),[i,a,r]=u$7([[2/3,0,0],[0,1,0],[-.5,1.5,.5]],[A,t,n]);return{u:i,v:a,w:r,a:e.a}}function w(e){let{r:A,g:t,b:n}=e;const i=Math.min(A,t,n);[A,t,n]=[A,t,n].map((e=>e-i));const a=Math.max(A,t,n);let r=Math.min(A,t);A-=r,t-=r,n&&t&&(n/=2,t/=2),r+=t,n+=t;const s=Math.max(A,r,n);if(s){const e=a/s;[A,r,n]=[A,r,n].map((A=>A*e))}return[A,r,n]=[A,r,n].map((e=>e+i)),{r:A,y:r,b:n,a:e.a}}function O(e){const{r:A,g:t,b:n,a:i}=e,a=1-Math.max(A,t,n)/255,[r,s,o]=1===a?[0,0,0]:[A,t,n].map((e=>100*(1-e/255-a)/(1-a)));return{c:r,m:s,y:o,k:100*a,a:i}}function j(e){const{h:A,s:t,v:n,a:i}=e,a=n/100,r=a*(t/100),s=r*(1-Math.abs(A/60%2-1)),o=a-r,l=A<60||300<=A&&A<360?r:120<=A&&A<240?0:s,c=240<=A&&A<360?0:60<=A&&A<180?r:s,d=A<120?0:180<=A&&A<300?r:s,[h,u,g]=[l,c,d].map((e=>255*(e+o)));return{r:h,g:u,b:g,a:null!=i?i:1}}function x(e){const[A,t,n]=Object.values(function(e){const[A,t,n]=u$7([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:A,y:t,z:n,a:e.a}}(e)).map((e=>e/100)),[i,a,r]=u$7([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[A,t,n]).map((e=>{return s$9(0,255*((A=e)>.0031308?1.055*Math.pow(A,1/2.4)-.055:12.92*A),255);var A}));return{r:i,g:a,b:r,a:e.a}}function y(e){const{l:A,a:t,b:n}=e,i=(A+16)/116,a=i+t/500,r=i-n/200,s=Object.values(r$b),[o,l,c]=[a,i,r].map(((e,A)=>(e>e$b?Math.pow(e,3):3*Math.pow(e$b,2)*(e-4/29))*s[A]*100));return x({x:o,y:l,z:c,a:e.alpha})}const k=e=>{e.prototype.mix=function({color:A="#fff",ratio:t=.5,colorspace:n="luv"}={}){const i=this.rgba(),a=(A instanceof e?A:new e(A)).rgba();let r,s;switch(t=s$9(0,t,1),n){case"hsl":r=Object.values(b$4(i)),s=Object.values(b$4(a));break;case"hsv":r=Object.values(h$3(i)),s=Object.values(h$3(a));break;case"hwb":r=Object.values(v$1(i)),s=Object.values(v$1(a));break;case"lab":r=Object.values(m(i)),s=Object.values(m(a));break;case"lch":r=Object.values(p$2(i)),s=Object.values(p$2(a));break;case"luv":r=Object.values(f$2(i)),s=Object.values(f$2(a));break;case"ryb":r=Object.values(w(i)),s=Object.values(w(a));break;case"uvw":r=Object.values(M(i)),s=Object.values(M(a));break;case"xyz":r=Object.values(i$9(i)),s=Object.values(i$9(a));break;case"cmyk":r=Object.values(O(i)),s=Object.values(O(a));break;default:r=Object.values(i),s=Object.values(a)}const[o,l,c,d,h]=r.map(((e,A)=>r[A]*(1-t)+s[A]*t));switch(n){case"hsl":return new e(function(e){const{h:A,s:t,l:n,a:i}=e,a=n/100,r=t/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(A/60%2-1)),l=a-s/2,c=A<60||300<=A&&A<360?s:120<=A&&A<240?0:o,d=240<=A&&A<360?0:60<=A&&A<180?s:o,h=A<120?0:180<=A&&A<300?s:o,[u,g,p]=[c,d,h].map((e=>255*(e+l)));return{r:u,g:g,b:p,a:null!=i?i:1}}({h:o,s:l,l:c,a:d}));case"hsv":return new e(j({h:o,s:l,v:c,a:d}));case"hwb":return new e(function(e){const{h:A,b:t,w:n,a:i}=e;return j({h:A,s:100===t?0:100-n/(100-t)*100,v:100-t,a:i})}({h:o,w:l,b:c,a:d}));case"lab":return new e(y({l:o,a:l,b:c,alpha:d}));case"lch":return new e(function(e){const{l:A,c:t,h:n}=e;return y({l:A,a:t*Math.cos(n*Math.PI/180),b:t*Math.sin(n*Math.PI/180),alpha:e.a})}({l:o,c:l,h:c,a:d}));case"luv":return new e(function(e){const{l:A,u:t,v:n}=e,i=A>c$9*n$a?Math.pow((A+16)/116,3):A/c$9,a=r$b.x+15*r$b.y+3*r$b.z,r=(52*A/(t&&A?t+13*A*(4*r$b.x/a):1)-1)/3,s=-5*i,o=i*(39*A/(n&&A?n+13*A*(9*r$b.y/a):1)-5),l=r===-1/3?o-s:(o-s)/(r- -1/3);return x({x:100*l,y:100*i,z:100*(r*l+s),a:e.a})}({l:o,u:l,v:c,a:d}));case"ryb":return new e(function(e){let{r:A,y:t,b:n}=e;const i=Math.min(A,t,n);[A,t,n]=[A,t,n].map((e=>e-i));const a=Math.max(A,t,n);let r=Math.min(t,n);t-=r,n-=r,n&&r&&(n*=2,r*=2),A+=t,r+=t;const s=Math.max(A,r,n);if(s){const e=a/s;[A,r,n]=[A,r,n].map((A=>A*e))}return[A,r,n]=[A,r,n].map((e=>e+i)),{r:A,g:r,b:n,a:e.a}}({r:o,y:l,b:c,a:d}));case"uvw":return new e(function(e){const{u:A,v:t,w:n}=e,[i,a,r]=u$7([[1.5,0,0],[0,1,0],[1.5,-3,2]],[A,t,n]);return x({x:i,y:a,z:r,a:e.a})}({u:o,v:l,w:c,a:d}));case"xyz":return new e(x({x:o,y:l,z:c,a:d}));case"cmyk":return new e(function(e){const{c:A,m:t,y:n,k:i,a:a}=e,[r,s,o]=[A,t,n].map((e=>255*(1-e/100)*(1-i/100)));return{r:r,g:s,b:o,a:a}}({c:o,m:l,y:c,k:d,a:h}));default:return new e({r:o,g:l,b:c,a:d})}}};var z=t$a.Z,r$a={d:(e,A)=>{for(var t in A)r$a.o(A,t)&&!r$a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},b$3={};r$a.d(b$3,{Z:()=>n$9});const g$1=["rgb(0,0,0)","rgb(0,0,51)","rgb(0,0,102)","rgb(0,0,153)","rgb(0,0,204)","rgb(0,0,255)","rgb(0,51,0)","rgb(0,51,51)","rgb(0,51,102)","rgb(0,51,153)","rgb(0,51,204)","rgb(0,51,255)","rgb(0,102,0)","rgb(0,102,51)","rgb(0,102,102)","rgb(0,102,153)","rgb(0,102,204)","rgb(0,102,255)","rgb(0,153,0)","rgb(0,153,51)","rgb(0,153,102)","rgb(0,153,153)","rgb(0,153,204)","rgb(0,153,255)","rgb(0,204,0)","rgb(0,204,51)","rgb(0,204,102)","rgb(0,204,153)","rgb(0,204,204)","rgb(0,204,255)","rgb(0,255,0)","rgb(0,255,51)","rgb(0,255,102)","rgb(0,255,153)","rgb(0,255,204)","rgb(0,255,255)","rgb(51,0,0)","rgb(51,0,51)","rgb(51,0,102)","rgb(51,0,153)","rgb(51,0,204)","rgb(51,0,255)","rgb(51,51,0)","rgb(51,51,51)","rgb(51,51,102)","rgb(51,51,153)","rgb(51,51,204)","rgb(51,51,255)","rgb(51,102,0)","rgb(51,102,51)","rgb(51,102,102)","rgb(51,102,153)","rgb(51,102,204)","rgb(51,102,255)","rgb(51,153,0)","rgb(51,153,51)","rgb(51,153,102)","rgb(51,153,153)","rgb(51,153,204)","rgb(51,153,255)","rgb(51,204,0)","rgb(51,204,51)","rgb(51,204,102)","rgb(51,204,153)","rgb(51,204,204)","rgb(51,204,255)","rgb(51,255,0)","rgb(51,255,51)","rgb(51,255,102)","rgb(51,255,153)","rgb(51,255,204)","rgb(51,255,255)","rgb(102,0,0)","rgb(102,0,51)","rgb(102,0,102)","rgb(102,0,153)","rgb(102,0,204)","rgb(102,0,255)","rgb(102,51,0)","rgb(102,51,51)","rgb(102,51,102)","rgb(102,51,153)","rgb(102,51,204)","rgb(102,51,255)","rgb(102,102,0)","rgb(102,102,51)","rgb(102,102,102)","rgb(102,102,153)","rgb(102,102,204)","rgb(102,102,255)","rgb(102,153,0)","rgb(102,153,51)","rgb(102,153,102)","rgb(102,153,153)","rgb(102,153,204)","rgb(102,153,255)","rgb(102,204,0)","rgb(102,204,51)","rgb(102,204,102)","rgb(102,204,153)","rgb(102,204,204)","rgb(102,204,255)","rgb(102,255,0)","rgb(102,255,51)","rgb(102,255,102)","rgb(102,255,153)","rgb(102,255,204)","rgb(102,255,255)","rgb(153,0,0)","rgb(153,0,51)","rgb(153,0,102)","rgb(153,0,153)","rgb(153,0,204)","rgb(153,0,255)","rgb(153,51,0)","rgb(153,51,51)","rgb(153,51,102)","rgb(153,51,153)","rgb(153,51,204)","rgb(153,51,255)","rgb(153,102,0)","rgb(153,102,51)","rgb(153,102,102)","rgb(153,102,153)","rgb(153,102,204)","rgb(153,102,255)","rgb(153,153,0)","rgb(153,153,51)","rgb(153,153,102)","rgb(153,153,153)","rgb(153,153,204)","rgb(153,153,255)","rgb(153,204,0)","rgb(153,204,51)","rgb(153,204,102)","rgb(153,204,153)","rgb(153,204,204)","rgb(153,204,255)","rgb(153,255,0)","rgb(153,255,51)","rgb(153,255,102)","rgb(153,255,153)","rgb(153,255,204)","rgb(153,255,255)","rgb(204,0,0)","rgb(204,0,51)","rgb(204,0,102)","rgb(204,0,153)","rgb(204,0,204)","rgb(204,0,255)","rgb(204,51,0)","rgb(204,51,51)","rgb(204,51,102)","rgb(204,51,153)","rgb(204,51,204)","rgb(204,51,255)","rgb(204,102,0)","rgb(204,102,51)","rgb(204,102,102)","rgb(204,102,153)","rgb(204,102,204)","rgb(204,102,255)","rgb(204,153,0)","rgb(204,153,51)","rgb(204,153,102)","rgb(204,153,153)","rgb(204,153,204)","rgb(204,153,255)","rgb(204,204,0)","rgb(204,204,51)","rgb(204,204,102)","rgb(204,204,153)","rgb(204,204,204)","rgb(204,204,255)","rgb(204,255,0)","rgb(204,255,51)","rgb(204,255,102)","rgb(204,255,153)","rgb(204,255,204)","rgb(204,255,255)","rgb(255,0,0)","rgb(255,0,51)","rgb(255,0,102)","rgb(255,0,153)","rgb(255,0,204)","rgb(255,0,255)","rgb(255,51,0)","rgb(255,51,51)","rgb(255,51,102)","rgb(255,51,153)","rgb(255,51,204)","rgb(255,51,255)","rgb(255,102,0)","rgb(255,102,51)","rgb(255,102,102)","rgb(255,102,153)","rgb(255,102,204)","rgb(255,102,255)","rgb(255,153,0)","rgb(255,153,51)","rgb(255,153,102)","rgb(255,153,153)","rgb(255,153,204)","rgb(255,153,255)","rgb(255,204,0)","rgb(255,204,51)","rgb(255,204,102)","rgb(255,204,153)","rgb(255,204,204)","rgb(255,204,255)","rgb(255,255,0)","rgb(255,255,51)","rgb(255,255,102)","rgb(255,255,153)","rgb(255,255,204)","rgb(255,255,255)"];function t$9(e){return(e/=255)<.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function o$9(e,A=[0,0,0,1]){var t,n;return null!==(n=null===(t=e.match(/\d{1,3}/g))||void 0===t?void 0:t.map((e=>+e)))&&void 0!==n?n:A}const n$9=e=>{e.prototype.brightness=function({precision:e=4,percentage:A=!1}={}){const{r:t,g:n,b:i}=this.rgba(),a=+((.299*t+.587*n+.114*i)/255).toFixed(e);return A?100*a:a},e.prototype.luminance=function({precision:e=4,percentage:A=!1}={}){const{r:t,g:n,b:i}=this.rgba(),a=+(.2126*t$9(t)+.7152*t$9(n)+.0722*t$9(i)).toFixed(e);return A?100*a:a},e.prototype.contrast=function({bgColor:A="#fff",precision:t=4,ratio:n=!1}={}){const i=this.luminance(),a=(A instanceof e?A:new e(A)).luminance(),r=((Math.max(i,a)+.05)/(Math.min(i,a)+.05)).toFixed(t);return n?r+":1":+r},e.prototype.readableOn=function({bgColor:e="#fff",size:A="body",level:t="minimum"}={}){const n=this.contrast({bgColor:e});return"body"===A&&"enhanced"===t?n>=7:"large"===A&&"minimum"===t?n>=3:n>=4.5},e.prototype.equalTo=function(A="#fff"){const t=Object.values(this.rgba()),n=Object.values((A instanceof e?A:new e(A)).rgba());return t.toString()===n.toString()},e.prototype.isLight=function(){return this.brightness()>=.5},e.prototype.isDark=function(){return!this.isLight()},e.prototype.isCool=function(){const{h:e}=this.hsla();return 75<=e&&e<255},e.prototype.isWarm=function(){return!this.isCool()},e.prototype.isTinted=function(){return this.hsla().l>50},e.prototype.isShaded=function(){return this.hsla().l<50},e.prototype.isToned=function(){return this.hsla().s<100},e.prototype.isPureHue=function({reason:e=!0}={}){return this.isTinted()?!!e&&{pure:!1,reason:"tinted"}:this.isShaded()?!!e&&{pure:!1,reason:"shaded"}:this.isToned()?!!e&&{pure:!1,reason:"toned"}:!e||{pure:!0,reason:"N/A"}},e.prototype.closestCool=function(){const{h:e}=this.hsla();return this.isCool()?this:this.hueTo(e<75?75:254)},e.prototype.closestWarm=function(){const{h:e}=this.hsla();return this.isWarm()?this:this.hueTo(e<165?74:255)},e.prototype.closestPureHue=function(){const{h:A,a:t}=this.hsla(),{r:n,g:i,b:a,a:r}=function(e){const{h:A,s:t,l:n,a:i}=e,a=n/100,r=t/100,s=(1-Math.abs(2*a-1))*r,o=s*(1-Math.abs(A/60%2-1)),l=a-s/2,c=A<60||300<=A&&A<360?s:120<=A&&A<240?0:o,d=240<=A&&A<360?0:60<=A&&A<180?s:o,h=A<120?0:180<=A&&A<300?s:o,[u,g,p]=[c,d,h].map((e=>255*(e+l)));return{r:u,g:g,b:p,a:null!=i?i:1}}({h:A,s:100,l:50,a:t});return new e({r:n,g:i,b:a,a:r})},e.prototype.closestWebSafe=function(){const{r:A,g:t,b:n,a:i}=this.rgba();let[a,r,s]=new Array(3).fill(0),o=Number.POSITIVE_INFINITY,l={r:A,g:t,b:n,a:i};for(let e=0;e{for(var t in A)r$9.o(A,t)&&!r$9.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},g={};r$9.d(g,{Z:()=>a$9});const e$9={maroon:"rgb(128,0,0)","dark red":"rgb(139,0,0)",brown:"rgb(165,42,42)",firebrick:"rgb(178,34,34)",crimson:"rgb(220,20,60)",red:"rgb(255,0,0)",tomato:"rgb(255,99,71)",coral:"rgb(255,127,80)","indian red":"rgb(205,92,92)","light coral":"rgb(240,128,128)","dark salmon":"rgb(233,150,122)",salmon:"rgb(250,128,114)","light salmon":"rgb(255,160,122)","orange red":"rgb(255,69,0)","dark orange":"rgb(255,140,0)",orange:"rgb(255,165,0)",gold:"rgb(255,215,0)","dark golden rod":"rgb(184,134,11)","golden rod":"rgb(218,165,32)","pale golden rod":"rgb(238,232,170)","dark khaki":"rgb(189,183,107)",khaki:"rgb(240,230,140)",olive:"rgb(128,128,0)",yellow:"rgb(255,255,0)","yellow green":"rgb(154,205,50)","dark olive green":"rgb(85,107,47)","olive drab":"rgb(107,142,35)","lawn green":"rgb(124,252,0)","chart reuse":"rgb(127,255,0)","green yellow":"rgb(173,255,47)","dark green":"rgb(0,100,0)",green:"rgb(0,128,0)","forest green":"rgb(34,139,34)",lime:"rgb(0,255,0)","lime green":"rgb(50,205,50)","light green":"rgb(144,238,144)","pale green":"rgb(152,251,152)","dark sea green":"rgb(143,188,143)","medium spring green":"rgb(0,250,154)","spring green":"rgb(0,255,127)","sea green":"rgb(46,139,87)","medium aqua marine":"rgb(102,205,170)","medium sea green":"rgb(60,179,113)","light sea green":"rgb(32,178,170)","dark slate gray":"rgb(47,79,79)",teal:"rgb(0,128,128)","dark cyan":"rgb(0,139,139)",cyan:"rgb(0,255,255)",aqua:"rgb(0,255,255)","light cyan":"rgb(224,255,255)","dark turquoise":"rgb(0,206,209)",turquoise:"rgb(64,224,208)","medium turquoise":"rgb(72,209,204)","pale turquoise":"rgb(175,238,238)","aqua marine":"rgb(127,255,212)","powder blue":"rgb(176,224,230)","cadet blue":"rgb(95,158,160)","steel blue":"rgb(70,130,180)","corn flower blue":"rgb(100,149,237)","deep sky blue":"rgb(0,191,255)","dodger blue":"rgb(30,144,255)","light blue":"rgb(173,216,230)","sky blue":"rgb(135,206,235)","light sky blue":"rgb(135,206,250)","midnight blue":"rgb(25,25,112)",navy:"rgb(0,0,128)","dark blue":"rgb(0,0,139)","medium blue":"rgb(0,0,205)",blue:"rgb(0,0,255)","royal blue":"rgb(65,105,225)","blue violet":"rgb(138,43,226)",indigo:"rgb(75,0,130)","dark slate blue":"rgb(72,61,139)","slate blue":"rgb(106,90,205)","medium slate blue":"rgb(123,104,238)","medium purple":"rgb(147,112,219)","dark magenta":"rgb(139,0,139)","dark violet":"rgb(148,0,211)","dark orchid":"rgb(153,50,204)","medium orchid":"rgb(186,85,211)",purple:"rgb(128,0,128)",thistle:"rgb(216,191,216)",plum:"rgb(221,160,221)",violet:"rgb(238,130,238)",magenta:"rgb(255,0,255)",fuchsia:"rgb(255,0,255)",orchid:"rgb(218,112,214)","medium violet red":"rgb(199,21,133)","pale violet red":"rgb(219,112,147)","deep pink":"rgb(255,20,147)","hot pink":"rgb(255,105,180)","light pink":"rgb(255,182,193)",pink:"rgb(255,192,203)","antique white":"rgb(250,235,215)",beige:"rgb(245,245,220)",bisque:"rgb(255,228,196)","blanched almond":"rgb(255,235,205)",wheat:"rgb(245,222,179)","corn silk":"rgb(255,248,220)","lemon chiffon":"rgb(255,250,205)","light golden rod yellow":"rgb(250,250,210)","light yellow":"rgb(255,255,224)","saddle brown":"rgb(139,69,19)",sienna:"rgb(160,82,45)",chocolate:"rgb(210,105,30)",peru:"rgb(205,133,63)","sandy brown":"rgb(244,164,96)","burly wood":"rgb(222,184,135)",tan:"rgb(210,180,140)","rosy brown":"rgb(188,143,143)",moccasin:"rgb(255,228,181)","navajo white":"rgb(255,222,173)","peach puff":"rgb(255,218,185)","misty rose":"rgb(255,228,225)","lavender blush":"rgb(255,240,245)",linen:"rgb(250,240,230)","old lace":"rgb(253,245,230)","papaya whip":"rgb(255,239,213)","sea shell":"rgb(255,245,238)","mint cream":"rgb(245,255,250)","slate gray":"rgb(112,128,144)","light slate gray":"rgb(119,136,153)","light steel blue":"rgb(176,196,222)",lavender:"rgb(230,230,250)","floral white":"rgb(255,250,240)","alice blue":"rgb(240,248,255)","ghost white":"rgb(248,248,255)",honeydew:"rgb(240,255,240)",ivory:"rgb(255,255,240)",azure:"rgb(240,255,255)",snow:"rgb(255,250,250)",black:"rgb(0,0,0)","dim gray":"rgb(105,105,105)","dim grey":"rgb(105,105,105)",gray:"rgb(128,128,128)",grey:"rgb(128,128,128)","dark gray":"rgb(169,169,169)","dark grey":"rgb(169,169,169)",silver:"rgb(192,192,192)","light gray":"rgb(211,211,211)","light grey":"rgb(211,211,211)",gainsboro:"rgb(220,220,220)",gainsborough:"rgb(220,220,220)","white smoke":"rgb(245,245,245)",white:"rgb(255,255,255)",transparent:"rgba(0,0,0,0)"};function b$2(e,A=[0,0,0,1]){var t,n;return null!==(n=null===(t=e.match(/\d{1,3}/g))||void 0===t?void 0:t.map((e=>+e)))&&void 0!==n?n:A}const a$9=e=>{e.prototype.name=function({exact:e=!0}={}){const{r:A,g:t,b:n,a:i}=this.rgba();if(0===i)return"transparent";const[a,r]=[Object.keys(e$9),Object.values(e$9)];let s;if(e){const e=this.stringRGB({alpha:!1}).replace(/\s/g,"");s=a.find((A=>e$9[A]===e))}else{let e=Number.POSITIVE_INFINITY;for(let i=0;i{for(var t in A)t$8.o(A,t)&&!t$8.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},a$8={};t$8.d(a$8,{Z:()=>d$1});const n$8=6/29,r$8=Math.pow(n$8,3),o$8=Math.pow(29/3,3),e$8={x:.96422,y:1,z:.82521};function c$8(e,A){return[e[0][0]*A[0]+e[0][1]*A[1]+e[0][2]*A[2],e[1][0]*A[0]+e[1][1]*A[1]+e[1][2]*A[2],e[2][0]*A[0]+e[2][1]*A[1]+e[2][2]*A[2]]}function s$8(e,A,t){return Math.max(e,Math.min(A,t))}function u$6(e){const A=e%360;return A<0?A+360:A}function i$8(e){const{l:A,a:t,b:n}=function(e){const A=Object.values(function(e){const[A,t,n]=c$8([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(A=e,(A/=255)<.04045?A/12.92:Math.pow((A+.055)/1.055,2.4));var A})));return function(e){const[A,t,n]=c$8([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:A,y:t,z:n,a:e.a}}({x:A,y:t,z:n,a:e.a})}(e)).map(((e,A)=>e/(100*Object.values(e$8)[A]))).map((e=>e>r$8?Math.cbrt(e):(o$8*e+16)/116));return{l:116*A[1]-16,a:500*(A[0]-A[1]),b:200*(A[1]-A[2]),alpha:e.a}}(e),i=180*Math.atan2(n,t)/Math.PI;return{l:A,c:Math.sqrt(Math.pow(t,2)+Math.pow(n,2)),h:u$6(i),a:e.a}}function h$2(e){const{l:A,c:t,h:n}=e;return function(e){const{l:A,a:t,b:n}=e,i=(A+16)/116,a=i+t/500,r=i-n/200,s=Object.values(e$8),[o,l,c]=[a,i,r].map(((e,A)=>(e>n$8?Math.pow(e,3):3*Math.pow(n$8,2)*(e-4/29))*s[A]*100));return function(e){const[A,t,n]=Object.values(function(e){const[A,t,n]=c$8([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:A,y:t,z:n,a:e.a}}(e)).map((e=>e/100)),[i,a,r]=c$8([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[A,t,n]).map((e=>{return s$8(0,255*((A=e)>.0031308?1.055*Math.pow(A,1/2.4)-.055:12.92*A),255);var A}));return{r:i,g:a,b:r,a:e.a}}({x:o,y:l,z:c,a:e.alpha})}({l:A,a:t*Math.cos(n*Math.PI/180),b:t*Math.sin(n*Math.PI/180),alpha:e.a})}const l$2=/lcha?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function p$1({l:e,c:A,h:t,a:n}){return[h$2({l:s$8(0,e,100),c:s$8(0,A,230),h:u$6(t),a:(i=n,void 0!==i?s$8(0,i,1):1)}),"lch"];var i}function f$1(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{l:A,c:t,h:n}=e;return void 0!==A&&void 0!==t&&void 0!==n}(e))return p$1(e);if("string"==typeof e){l$2.lastIndex=0;const A=l$2.exec(e);if(A){const[e,t,n,i]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(0===A?1:1===A?2.3:2===A?3.59:.01):+e));return p$1({l:e,c:t,h:n,a:i})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const d$1=e=>{e.prototype.lcha=function(){return i$8(this.rgba())},e.prototype.stringLCH=function({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,n,i,a]=Object.values(this.lcha()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`lcha(${t}%, ${n}, ${i}, ${a})`:`lch(${t}%, ${n}, ${i})`},e.Parsers.push(f$1)};var b$1=a$8.Z,t$7={d:(e,A)=>{for(var t in A)t$7.o(A,t)&&!t$7.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},n$7={};t$7.d(n$7,{Z:()=>l$1});const r$7=Math.pow(6/29,3),e$7=Math.pow(29/3,3);function o$7(e,A){return[e[0][0]*A[0]+e[0][1]*A[1]+e[0][2]*A[2],e[1][0]*A[0]+e[1][1]*A[1]+e[1][2]*A[2],e[2][0]*A[0]+e[2][1]*A[1]+e[2][2]*A[2]]}function a$7(e,A,t){return Math.max(e,Math.min(A,t))}function u$5(e){const{l:A,u:t,v:n}=e,i=A>e$7*r$7?Math.pow((A+16)/116,3):A/e$7,a=(52*A/(t&&A?t+13*A*.20916005282038627:1)-1)/3,r=-5*i,s=i*(39*A/(n&&A?n+13*A*(9/18.43985):1)-5),o=a===-1/3?s-r:(s-r)/(a- -1/3);return function(e){const[A,t,n]=Object.values(function(e){const[A,t,n]=o$7([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:A,y:t,z:n,a:e.a}}(e)).map((e=>e/100)),[i,a,r]=o$7([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[A,t,n]).map((e=>{return a$7(0,255*((A=e)>.0031308?1.055*Math.pow(A,1/2.4)-.055:12.92*A),255);var A}));return{r:i,g:a,b:r,a:e.a}}({x:100*o,y:100*i,z:100*(a*o+r),a:e.a})}const c$7=/color\s*\(\s*luva?\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function s$7({l:e,u:A,v:t,a:n}){return[u$5({l:a$7(0,e,100),u:a$7(-100,A,100),v:a$7(-100,t,100),a:(i=n,void 0!==i?a$7(0,i,1):1)}),"luv"];var i}function i$7(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{l:A,u:t,v:n}=e;return void 0!==A&&void 0!==t&&null!=n}(e))return s$7(e);if("string"==typeof e){c$7.lastIndex=0;const A=c$7.exec(e);if(A){const[e,t,n,i]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(A<3?1:.01):+e));return s$7({l:e,u:t,v:n,a:i})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const l$1=e=>{e.prototype.luva=function(){return function(e){const[A,t,n]=Object.values(function(e){const[A,t,n]=o$7([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(A=e,(A/=255)<.04045?A/12.92:Math.pow((A+.055)/1.055,2.4));var A})));return function(e){const[A,t,n]=o$7([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:A,y:t,z:n,a:e.a}}({x:A,y:t,z:n,a:e.a})}(e)).map((e=>e/100)),i=t/1,a=A&&t&&n?A+15*t+3*n:19,r=4*A/a,s=9*t/a;let o=i>r$7?116*Math.cbrt(i)-16:e$7*i,l=13*o*(r-.20916005282038627),c=13*o*(s-.48807338454488514);return o===Number(-0)&&(o=0),l===Number(-0)&&(l=0),c===Number(-0)&&(c=0),{l:o,u:l,v:c,a:e.a}}(this.rgba())},e.prototype.stringLUV=function({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,n,i,a]=Object.values(this.luva()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`color(luva ${t}%, ${n}%, ${i}%, ${a})`:`color(luv ${t}%, ${n}%, ${i}%)`},e.Parsers.push(i$7)};var v=n$7.Z,t$6={d:(e,A)=>{for(var t in A)t$6.o(A,t)&&!t$6.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},a$6={};t$6.d(a$6,{Z:()=>d});const n$6=6/29,r$6=Math.pow(n$6,3),e$6=Math.pow(29/3,3),o$6={x:.96422,y:1,z:.82521};function c$6(e,A){return[e[0][0]*A[0]+e[0][1]*A[1]+e[0][2]*A[2],e[1][0]*A[0]+e[1][1]*A[1]+e[1][2]*A[2],e[2][0]*A[0]+e[2][1]*A[1]+e[2][2]*A[2]]}function s$6(e,A,t){return Math.max(e,Math.min(A,t))}function u$4(e){return void 0!==e?s$6(0,e,1):1}function i$6(e){const A=Object.values(function(e){const[A,t,n]=c$6([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(A=e,(A/=255)<.04045?A/12.92:Math.pow((A+.055)/1.055,2.4));var A})));return function(e){const[A,t,n]=c$6([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:A,y:t,z:n,a:e.a}}({x:A,y:t,z:n,a:e.a})}(e)).map(((e,A)=>e/(100*Object.values(o$6)[A]))).map((e=>e>r$6?Math.cbrt(e):(e$6*e+16)/116));return{l:116*A[1]-16,a:500*(A[0]-A[1]),b:200*(A[1]-A[2]),alpha:e.a}}function l(e){const{l:A,a:t,b:n}=e,i=(A+16)/116,a=i+t/500,r=i-n/200,s=Object.values(o$6),[o,l,c]=[a,i,r].map(((e,A)=>(e>n$6?Math.pow(e,3):3*Math.pow(n$6,2)*(e-4/29))*s[A]*100));return function(e){const[A,t,n]=Object.values(function(e){const[A,t,n]=c$6([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:A,y:t,z:n,a:e.a}}(e)).map((e=>e/100)),[i,a,r]=c$6([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[A,t,n]).map((e=>{return s$6(0,255*((A=e)>.0031308?1.055*Math.pow(A,1/2.4)-.055:12.92*A),255);var A}));return{r:i,g:a,b:r,a:e.a}}({x:o,y:l,z:c,a:e.alpha})}const p=/laba?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function b({l:e,a:A,b:t,alpha:n}){return[l({l:s$6(0,e,100),a:s$6(-160,A,160),b:s$6(-160,t,160),alpha:u$4(n)}),"lab"]}function f(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{l:A,a:t,b:n}=e;return void 0!==A&&void 0!==t&&void 0!==n}(e))return b(e);if("string"==typeof e){p.lastIndex=0;const A=p.exec(e);if(A){const[e,t,n,i]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(A<3?1:.01):+e));return b({l:e,a:t,b:n,alpha:i})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const d=e=>{e.prototype.laba=function(){return i$6(this.rgba())},e.prototype.stringLAB=function({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,n,i,a]=Object.values(this.laba()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`laba(${t}%, ${n}, ${i}, ${a})`:`lab(${t}%, ${n}, ${i})`},e.Parsers.push(f)};var h$1=a$6.Z,t$5={d:(e,A)=>{for(var t in A)t$5.o(A,t)&&!t$5.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},n$5={};function r$5(e,A){return[e[0][0]*A[0]+e[0][1]*A[1]+e[0][2]*A[2],e[1][0]*A[0]+e[1][1]*A[1]+e[1][2]*A[2],e[2][0]*A[0]+e[2][1]*A[1]+e[2][2]*A[2]]}function o$5(e,A,t){return Math.max(e,Math.min(A,t))}function e$5(e){const{u:A,v:t,w:n}=e,[i,a,r]=r$5([[1.5,0,0],[0,1,0],[1.5,-3,2]],[A,t,n]);return function(e){const[A,t,n]=Object.values(function(e){const[A,t,n]=r$5([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:A,y:t,z:n,a:e.a}}(e)).map((e=>e/100)),[i,a,r]=r$5([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[A,t,n]).map((e=>{return o$5(0,255*((A=e)>.0031308?1.055*Math.pow(A,1/2.4)-.055:12.92*A),255);var A}));return{r:i,g:a,b:r,a:e.a}}({x:i,y:a,z:r,a:e.a})}t$5.d(n$5,{Z:()=>s$5});const a$5=/color\s*\(\s*uvwa?\s*(\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*([+-]?\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function u$3({u:e,v:A,w:t,a:n}){return[e$5({u:o$5(0,e,200/3*.96422),v:o$5(0,A,100),w:o$5(-48.211,t,191.2605),a:(i=n,void 0!==i?o$5(0,i,1):1)}),"uvw"];var i}function c$5(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{u:A,v:t,w:n}=e;return void 0!==A&&void 0!==t&&void 0!==n}(e))return u$3(e);if("string"==typeof e){a$5.lastIndex=0;const A=a$5.exec(e);if(A){const[e,t,n,i]=A.filter((e=>void 0!==e)).slice(1).map((e=>e.includes("%")?.01*+e.slice(0,-1):+e));return u$3({u:e,v:t,w:n,a:i})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const s$5=e=>{e.prototype.uvwa=function(){return function(e){const{x:A,y:t,z:n}=function(e){const[A,t,n]=r$5([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(A=e,(A/=255)<.04045?A/12.92:Math.pow((A+.055)/1.055,2.4));var A})));return function(e){const[A,t,n]=r$5([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:A,y:t,z:n,a:e.a}}({x:A,y:t,z:n,a:e.a})}(e),[i,a,r]=r$5([[2/3,0,0],[0,1,0],[-.5,1.5,.5]],[A,t,n]);return{u:i,v:a,w:r,a:e.a}}(this.rgba())},e.prototype.stringUVW=function({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,n,i,a]=Object.values(this.uvwa()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`color(uvwa ${t}, ${n}, ${i}, ${a})`:`color(uvw ${t}, ${n}, ${i})`},e.Parsers.push(c$5)};var i$5=n$5.Z,t$4={d:(e,A)=>{for(var t in A)t$4.o(A,t)&&!t$4.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},n$4={};function r$4(e,A){return[e[0][0]*A[0]+e[0][1]*A[1]+e[0][2]*A[2],e[1][0]*A[0]+e[1][1]*A[1]+e[1][2]*A[2],e[2][0]*A[0]+e[2][1]*A[1]+e[2][2]*A[2]]}function o$4(e,A,t){return Math.max(e,Math.min(A,t))}function e$4(e){const[A,t,n]=Object.values(function(e){const[A,t,n]=r$4([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Object.values(e));return{x:A,y:t,z:n,a:e.a}}(e)).map((e=>e/100)),[i,a,r]=r$4([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],[A,t,n]).map((e=>{return o$4(0,255*((A=e)>.0031308?1.055*Math.pow(A,1/2.4)-.055:12.92*A),255);var A}));return{r:i,g:a,b:r,a:e.a}}t$4.d(n$4,{Z:()=>u$2});const a$4=/color\s*\(\s*xyza?\s*(\d*\.?\d+)\s*,?\s*(\d*\.?\d+)\s*,?\s*(\d*\.?\d+)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function s$4({x:e,y:A,z:t,a:n}){return[e$4({x:o$4(0,e,96.422),y:o$4(0,A,100),z:o$4(0,t,82.521),a:(i=n,void 0!==i?o$4(0,i,1):1)}),"xyz"];var i}function c$4(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{x:A,y:t,z:n}=e;return void 0!==A&&void 0!==t&&void 0!==n}(e))return s$4(e);if("string"==typeof e){a$4.lastIndex=0;const A=a$4.exec(e);if(A){const[e,t,n,i]=A.filter((e=>void 0!==e)).slice(1).map((e=>e.includes("%")?.01*+e.slice(0,-1):+e));return s$4({x:e,y:t,z:n,a:i})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const u$2=e=>{e.prototype.xyza=function(){return function(e){const[A,t,n]=r$4([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Object.values(e).map((e=>{return 100*(A=e,(A/=255)<.04045?A/12.92:Math.pow((A+.055)/1.055,2.4));var A})));return function(e){const[A,t,n]=r$4([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Object.values(e));return{x:A,y:t,z:n,a:e.a}}({x:A,y:t,z:n,a:e.a})}(this.rgba())},e.prototype.stringXYZ=function({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,n,i,a]=Object.values(this.xyza()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`color(xyza ${t}, ${n}, ${i}, ${a})`:`color(xyz ${t}, ${n}, ${i})`},e.Parsers.push(c$4)};var i$4=n$4.Z,t$3={d:(e,A)=>{for(var t in A)t$3.o(A,t)&&!t$3.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},n$3={};function r$3(e,A,t){return Math.max(e,Math.min(A,t))}function a$3(e){const A=e%360;return A<0?A+360:A}function o$3(e){const{h:A,a:t}=function(e){var A;const{Cmin:t,Cmax:n,H:i,delta:a}=function(e){const[A,t,n]=Object.values(e).map((e=>e/255)),i=Math.max(A,t,n),a=Math.min(A,t,n),r=i-a;return{Cmin:a,Cmax:i,H:0===r?0:i===A?(t-n)/r%6:i===t?(n-A)/r+2:(A-t)/r+4,delta:r}}(e),r=(n+t)/2,s=0===a?0:a/(1-Math.abs(2*r-1));return{h:a$3(60*i),s:100*s,l:100*r,a:null!==(A=e.a)&&void 0!==A?A:1}}(e),{r:n,g:i,b:a}=e;return{h:A,w:Math.min(n,i,a)/2.55,b:100*(1-Math.max(n,i,a)/255),a:t}}function e$3(e){const{h:A,b:t,w:n,a:i}=e;return function(e){const{h:A,s:t,v:n,a:i}=e,a=n/100,r=a*(t/100),s=r*(1-Math.abs(A/60%2-1)),o=a-r,l=A<60||300<=A&&A<360?r:120<=A&&A<240?0:s,c=240<=A&&A<360?0:60<=A&&A<180?r:s,d=A<120?0:180<=A&&A<300?r:s,[h,u,g]=[l,c,d].map((e=>255*(e+o)));return{r:h,g:u,b:g,a:null!=i?i:1}}({h:A,s:100===t?0:100-n/(100-t)*100,v:100-t,a:i})}t$3.d(n$3,{Z:()=>u$1});const s$3=/hwba?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function i$3({h:e,w:A,b:t,a:n}){return[e$3({h:a$3(e),w:r$3(0,A,100),b:r$3(0,t,100),a:(i=n,void 0!==i?r$3(0,i,1):1)}),"hwb"];var i}function c$3(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{h:A,w:t,b:n}=e;return void 0!==A&&void 0!==t&&void 0!==n}(e))return i$3(e);if("string"==typeof e){s$3.lastIndex=0;const A=s$3.exec(e);if(A){const[e,t,n,i]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(0===A?3.59:A<3?1:.01):+e));return i$3({h:e,w:t,b:n,a:i})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const u$1=e=>{e.prototype.hwba=function(){return o$3(this.rgba())},e.prototype.stringHWB=function({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,n,i,a]=Object.values(this.hwba()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`hwba(${a$3(t)}, ${n}%, ${i}%, ${a})`:`hwb(${a$3(t)}, ${n}%, ${i}%)`},e.Parsers.push(c$3)};var h=n$3.Z,t$2={d:(e,A)=>{for(var t in A)t$2.o(A,t)&&!t$2.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},n$2={};function r$2(e,A,t){return Math.max(e,Math.min(A,t))}function s$2(e){const A=e%360;return A<0?A+360:A}function e$2(e){const{h:A,s:t,v:n,a:i}=e,a=n/100,r=a*(t/100),s=r*(1-Math.abs(A/60%2-1)),o=a-r,l=A<60||300<=A&&A<360?r:120<=A&&A<240?0:s,c=240<=A&&A<360?0:60<=A&&A<180?r:s,d=A<120?0:180<=A&&A<300?r:s,[h,u,g]=[l,c,d].map((e=>255*(e+o)));return{r:h,g:u,b:g,a:null!=i?i:1}}t$2.d(n$2,{Z:()=>c$2});const a$2=/hsva?\s*\(\s*([+-]?\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function o$2({h:e,s:A,v:t,a:n}){return[e$2({h:s$2(e),s:r$2(0,A,100),v:r$2(0,t,100),a:(i=n,void 0!==i?r$2(0,i,1):1)}),"hsv"];var i}function i$2(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{h:A,s:t,v:n}=e;return void 0!==A&&void 0!==t&&void 0!==n}(e))return o$2(e);if("string"==typeof e){a$2.lastIndex=0;const A=a$2.exec(e);if(A){const[e,t,n,i]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(0===A?3.59:A<3?1:.01):+e));return o$2({h:e,s:t,v:n,a:i})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const c$2=e=>{e.prototype.hsva=function(){return function(e){var A;const{Cmax:t,H:n,delta:i}=function(e){const[A,t,n]=Object.values(e).map((e=>e/255)),i=Math.max(A,t,n),a=Math.min(A,t,n),r=i-a;return{Cmin:a,Cmax:i,H:0===r?0:i===A?(t-n)/r%6:i===t?(n-A)/r+2:(A-t)/r+4,delta:r}}(e),a=0===i?0:i/t;return{h:s$2(60*n),s:100*a,v:100*t,a:null!==(A=e.a)&&void 0!==A?A:1}}(this.rgba())},e.prototype.stringHSV=function({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,n,i,a]=Object.values(this.hsva()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`hsva(${s$2(t)}, ${n}%, ${i}%, ${a})`:`hsv(${s$2(t)}, ${n}%, ${i}%)`},e.Parsers.push(i$2)};var u=n$2.Z,t$1={d:(e,A)=>{for(var t in A)t$1.o(A,t)&&!t$1.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},r$1={};function n$1(e,A,t){return Math.max(e,Math.min(A,t))}function o$1(e){let{r:A,y:t,b:n}=e;const i=Math.min(A,t,n);[A,t,n]=[A,t,n].map((e=>e-i));const a=Math.max(A,t,n);let r=Math.min(t,n);t-=r,n-=r,n&&r&&(n*=2,r*=2),A+=t,r+=t;const s=Math.max(A,r,n);if(s){const e=a/s;[A,r,n]=[A,r,n].map((A=>A*e))}return[A,r,n]=[A,r,n].map((e=>e+i)),{r:A,g:r,b:n,a:e.a}}t$1.d(r$1,{Z:()=>i$1});const a$1=/color\s*\(\s*ryba?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function e$1({r:e,y:A,b:t,a:n}){return[o$1({r:n$1(0,e,255),y:n$1(0,A,255),b:n$1(0,t,255),a:(i=n,void 0!==i?n$1(0,i,1):1)}),"ryb"];var i}function s$1(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{r:A,y:t,b:n}=e;return void 0!==A&&void 0!==t&&void 0!==n}(e))return e$1(e);if("string"==typeof e){a$1.lastIndex=0;const A=a$1.exec(e);if(A){const[e,t,n,i]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(A<3?2.55:.01):+e));return e$1({r:e,y:t,b:n,a:i})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const i$1=e=>{e.prototype.ryba=function(){return function(e){let{r:A,g:t,b:n}=e;const i=Math.min(A,t,n);[A,t,n]=[A,t,n].map((e=>e-i));const a=Math.max(A,t,n);let r=Math.min(A,t);A-=r,t-=r,n&&t&&(n/=2,t/=2),r+=t,n+=t;const s=Math.max(A,r,n);if(s){const e=a/s;[A,r,n]=[A,r,n].map((A=>A*e))}return[A,r,n]=[A,r,n].map((e=>e+i)),{r:A,y:r,b:n,a:e.a}}(this.rgba())},e.prototype.stringRYB=function({alpha:e=!0,precision:A=[0,0,0,1]}={}){const[t,n,i,a]=Object.values(this.ryba()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`color(ryba ${t}, ${n}, ${i}, ${a})`:`color(ryb ${t}, ${n}, ${i})`},e.Parsers.push(s$1)};var c$1=r$1.Z,t={d:(e,A)=>{for(var n in A)t.o(A,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:A[n]})},o:(e,A)=>Object.prototype.hasOwnProperty.call(e,A)},n={};function e(e,A,t){return Math.max(e,Math.min(A,t))}function r(e){const{c:A,m:t,y:n,k:i,a:a}=e,[r,s,o]=[A,t,n].map((e=>255*(1-e/100)*(1-i/100)));return{r:r,g:s,b:o,a:a}}t.d(n,{Z:()=>i});const c=/device-cmyka?\s*\(\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?)\s*,?\s*(\d*\.?\d+%?),?\s*\/?\s*?(\d*\.?\d+%?)?\s*\)/gi;function o({c:A,m:t,y:n,k:i,a:a}){return[r({c:e(0,A,100),m:e(0,t,100),y:e(0,n,100),k:e(0,i,100),a:(s=a,void 0!==s?e(0,s,1):1)}),"cmyk"];var s}function a(e){if("object"===e.constructor.name.toLowerCase()&&function(e){const{c:A,m:t,y:n,k:i}=e;return void 0!==A&&void 0!==t&&void 0!==n&&void 0!==i}(e))return o(e);if("string"==typeof e){c.lastIndex=0;const A=c.exec(e);if(A){const[e,t,n,i,a]=A.filter((e=>void 0!==e)).slice(1).map(((e,A)=>e.includes("%")?+e.slice(0,-1)*(A<4?1:.01):+e));return o({c:e,m:t,y:n,k:i,a:a})}}return[{r:0,g:0,b:0,a:1},"invalid"]}const i=e=>{e.prototype.cmyka=function(){return function(e){const{r:A,g:t,b:n,a:i}=e,a=1-Math.max(A,t,n)/255,[r,s,o]=1===a?[0,0,0]:[A,t,n].map((e=>100*(1-e/255-a)/(1-a)));return{c:r,m:s,y:o,k:100*a,a:i}}(this.rgba())},e.prototype.stringCMYK=function({alpha:e=!0,precision:A=[0,0,0,0,1]}={}){const[t,n,i,a,r]=Object.values(this.cmyka()).map(((e,t)=>function(e,A){return+e.toFixed(A>=0?A:0)}(e,A[t])));return e?`device-cmyk(${t}, ${n}, ${i}, ${a}, ${r})`:`device-cmyk(${t}, ${n}, ${i}, ${a})`},e.Parsers.push(a)};var s=n.Z;class ExcalidrawScene{constructor(e=[]){this.type="excalidraw",this.version=2,this.source="https://excalidraw.com",this.elements=[],this.elements=e}toExJSON(){return Object.assign(Object.assign({},this),{elements:this.elements.map((e=>Object.assign({},e)))})}}var ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array;function create$1(){var e=new ARRAY_TYPE(16);return ARRAY_TYPE!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function clone(e){var A=new ARRAY_TYPE(16);return A[0]=e[0],A[1]=e[1],A[2]=e[2],A[3]=e[3],A[4]=e[4],A[5]=e[5],A[6]=e[6],A[7]=e[7],A[8]=e[8],A[9]=e[9],A[10]=e[10],A[11]=e[11],A[12]=e[12],A[13]=e[13],A[14]=e[14],A[15]=e[15],A}function fromValues$1(e,A,t,n,i,a,r,s,o,l,c,d,h,u,g,p){var w=new ARRAY_TYPE(16);return w[0]=e,w[1]=A,w[2]=t,w[3]=n,w[4]=i,w[5]=a,w[6]=r,w[7]=s,w[8]=o,w[9]=l,w[10]=c,w[11]=d,w[12]=h,w[13]=u,w[14]=g,w[15]=p,w}function multiply(e,A,t){var n=A[0],i=A[1],a=A[2],r=A[3],s=A[4],o=A[5],l=A[6],c=A[7],d=A[8],h=A[9],u=A[10],g=A[11],p=A[12],w=A[13],m=A[14],f=A[15],B=t[0],E=t[1],b=t[2],C=t[3];return e[0]=B*n+E*s+b*d+C*p,e[1]=B*i+E*o+b*h+C*w,e[2]=B*a+E*l+b*u+C*m,e[3]=B*r+E*c+b*g+C*f,B=t[4],E=t[5],b=t[6],C=t[7],e[4]=B*n+E*s+b*d+C*p,e[5]=B*i+E*o+b*h+C*w,e[6]=B*a+E*l+b*u+C*m,e[7]=B*r+E*c+b*g+C*f,B=t[8],E=t[9],b=t[10],C=t[11],e[8]=B*n+E*s+b*d+C*p,e[9]=B*i+E*o+b*h+C*w,e[10]=B*a+E*l+b*u+C*m,e[11]=B*r+E*c+b*g+C*f,B=t[12],E=t[13],b=t[14],C=t[15],e[12]=B*n+E*s+b*d+C*p,e[13]=B*i+E*o+b*h+C*w,e[14]=B*a+E*l+b*u+C*m,e[15]=B*r+E*c+b*g+C*f,e}function create(){var e=new ARRAY_TYPE(3);return ARRAY_TYPE!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function fromValues(e,A,t){var n=new ARRAY_TYPE(3);return n[0]=e,n[1]=A,n[2]=t,n}function transformMat4(e,A,t){var n=A[0],i=A[1],a=A[2],r=t[3]*n+t[7]*i+t[11]*a+t[15];return r=r||1,e[0]=(t[0]*n+t[4]*i+t[8]*a+t[12])/r,e[1]=(t[1]*n+t[5]*i+t[9]*a+t[13])/r,e[2]=(t[2]*n+t[6]*i+t[10]*a+t[14])/r,e}Math.hypot||(Math.hypot=function(){for(var e=0,A=arguments.length;A--;)e+=arguments[A]*arguments[A];return Math.sqrt(e)}),create();const random=new Random(Date.now()),randomInteger=()=>Math.floor(random.next()*2**31),randomId=()=>nanoid$1();function dimensionsFromPoints(e){const A=e.map((([e])=>e)),t=e.map((([,e])=>e)),n=Math.min(...A),i=Math.min(...t);return[Math.max(...A)-n,Math.max(...t)-i]}function getWindingOrder(e){return e.reduce(((e,[A,t],n,i)=>{const a=i[n+1];return((a?a[0]:0)-A)*((a?a[1]:0)+t)+e}),0)>0?"clockwise":"counterclockwise"}var chroma$1={exports:{}}; +/** + * chroma.js - JavaScript library for color conversions + * + * Copyright (c) 2011-2019, Gregor Aisch + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name Gregor Aisch may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL GREGOR AISCH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ------------------------------------------------------- + * + * chroma.js includes colors from colorbrewer2.org, which are released under + * the following license: + * + * Copyright (c) 2002 Cynthia Brewer, Mark Harrower, + * and The Pennsylvania State University. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific + * language governing permissions and limitations under the License. + * + * ------------------------------------------------------ + * + * Named colors are taken from X11 Color Names. + * http://www.w3.org/TR/css3-color/#svg-color + * + * @preserve + */chroma$1.exports=function(){for(var e=function(e,A,t){return void 0===A&&(A=0),void 0===t&&(t=1),et?t:e},A=e,t={},n=0,i=["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"];n255)&&(e._clipped=!0),e[t]=A(e[t],0,255)):3===t&&(e[t]=A(e[t],0,1));return e},limit:e,type:r,unpack:function(e,A){return void 0===A&&(A=null),e.length>=3?Array.prototype.slice.call(e):"object"==s(e[0])&&A?A.split("").filter((function(A){return void 0!==e[0][A]})).map((function(A){return e[0][A]})):e[0]},last:function(e){if(e.length<2)return null;var A=e.length-1;return"string"==o(e[A])?e[A].toLowerCase():null},PI:l,TWOPI:2*l,PITHIRD:l/3,DEG2RAD:l/180,RAD2DEG:180/l},d={format:{},autodetect:[]},h=c.last,u=c.clip_rgb,g=c.type,p=d,w=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=this;if("object"===g(e[0])&&e[0].constructor&&e[0].constructor===this.constructor)return e[0];var n=h(e),i=!1;if(!n){i=!0,p.sorted||(p.autodetect=p.autodetect.sort((function(e,A){return A.p-e.p})),p.sorted=!0);for(var a=0,r=p.autodetect;a4?e[4]:1;return 1===a?[0,0,0,r]:[t>=1?0:255*(1-t)*(1-a),n>=1?0:255*(1-n)*(1-a),i>=1?0:255*(1-i)*(1-a),r]},F=B,x=m,Q=d,U=c.unpack,S=c.type,T=C;x.prototype.cmyk=function(){return T(this._rgb)},F.cmyk=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(x,[null].concat(e,["cmyk"])))},Q.format.cmyk=y,Q.autodetect.push({p:2,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=U(e,"cmyk"),"array"===S(e)&&4===e.length)return"cmyk"}});var I=c.unpack,k=c.last,M=function(e){return Math.round(100*e)/100},L=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=I(e,"hsla"),n=k(e)||"lsa";return t[0]=M(t[0]||0),t[1]=M(100*t[1])+"%",t[2]=M(100*t[2])+"%","hsla"===n||t.length>3&&t[3]<1?(t[3]=t.length>3?t[3]:1,n="hsla"):t.length=3,n+"("+t.join(",")+")"},O=c.unpack,H=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=(e=O(e,"rgba"))[0],n=e[1],i=e[2];t/=255,n/=255,i/=255;var a,r,s=Math.min(t,n,i),o=Math.max(t,n,i),l=(o+s)/2;return o===s?(a=0,r=Number.NaN):a=l<.5?(o-s)/(o+s):(o-s)/(2-o-s),t==o?r=(n-i)/(o-s):n==o?r=2+(i-t)/(o-s):i==o&&(r=4+(t-n)/(o-s)),(r*=60)<0&&(r+=360),e.length>3&&void 0!==e[3]?[r,a,l,e[3]]:[r,a,l]},N=c.unpack,D=c.last,R=L,P=H,V=Math.round,K=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=N(e,"rgba"),n=D(e)||"rgb";return"hsl"==n.substr(0,3)?R(P(t),n):(t[0]=V(t[0]),t[1]=V(t[1]),t[2]=V(t[2]),("rgba"===n||t.length>3&&t[3]<1)&&(t[3]=t.length>3?t[3]:1,n="rgba"),n+"("+t.slice(0,"rgb"===n?3:4).join(",")+")")},G=c.unpack,W=Math.round,z=function(){for(var e,A=[],t=arguments.length;t--;)A[t]=arguments[t];var n,i,a,r=(A=G(A,"hsl"))[0],s=A[1],o=A[2];if(0===s)n=i=a=255*o;else{var l=[0,0,0],c=[0,0,0],d=o<.5?o*(1+s):o+s-o*s,h=2*o-d,u=r/360;l[0]=u+1/3,l[1]=u,l[2]=u-1/3;for(var g=0;g<3;g++)l[g]<0&&(l[g]+=1),l[g]>1&&(l[g]-=1),6*l[g]<1?c[g]=h+6*(d-h)*l[g]:2*l[g]<1?c[g]=d:3*l[g]<2?c[g]=h+(d-h)*(2/3-l[g])*6:c[g]=h;n=(e=[W(255*c[0]),W(255*c[1]),W(255*c[2])])[0],i=e[1],a=e[2]}return A.length>3?[n,i,a,A[3]]:[n,i,a,1]},X=z,Y=d,j=/^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/,J=/^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/,Z=/^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,q=/^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,_=/^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,$=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,ee=Math.round,Ae=function(e){var A;if(e=e.toLowerCase().trim(),Y.format.named)try{return Y.format.named(e)}catch(e){}if(A=e.match(j)){for(var t=A.slice(1,4),n=0;n<3;n++)t[n]=+t[n];return t[3]=1,t}if(A=e.match(J)){for(var i=A.slice(1,5),a=0;a<4;a++)i[a]=+i[a];return i}if(A=e.match(Z)){for(var r=A.slice(1,4),s=0;s<3;s++)r[s]=ee(2.55*r[s]);return r[3]=1,r}if(A=e.match(q)){for(var o=A.slice(1,5),l=0;l<3;l++)o[l]=ee(2.55*o[l]);return o[3]=+o[3],o}if(A=e.match(_)){var c=A.slice(1,4);c[1]*=.01,c[2]*=.01;var d=X(c);return d[3]=1,d}if(A=e.match($)){var h=A.slice(1,4);h[1]*=.01,h[2]*=.01;var u=X(h);return u[3]=+A[4],u}};Ae.test=function(e){return j.test(e)||J.test(e)||Z.test(e)||q.test(e)||_.test(e)||$.test(e)};var te=B,ne=m,ie=d,ae=c.type,re=K,se=Ae;ne.prototype.css=function(e){return re(this._rgb,e)},te.css=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(ne,[null].concat(e,["css"])))},ie.format.css=se,ie.autodetect.push({p:5,test:function(e){for(var A=[],t=arguments.length-1;t-- >0;)A[t]=arguments[t+1];if(!A.length&&"string"===ae(e)&&se.test(e))return"css"}});var oe=m,le=B,ce=c.unpack;d.format.gl=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=ce(e,"rgba");return t[0]*=255,t[1]*=255,t[2]*=255,t},le.gl=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(oe,[null].concat(e,["gl"])))},oe.prototype.gl=function(){var e=this._rgb;return[e[0]/255,e[1]/255,e[2]/255,e[3]]};var de=c.unpack,he=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t,n=de(e,"rgb"),i=n[0],a=n[1],r=n[2],s=Math.min(i,a,r),o=Math.max(i,a,r),l=o-s,c=100*l/255,d=s/(255-l)*100;return 0===l?t=Number.NaN:(i===o&&(t=(a-r)/l),a===o&&(t=2+(r-i)/l),r===o&&(t=4+(i-a)/l),(t*=60)<0&&(t+=360)),[t,c,d]},ue=c.unpack,ge=Math.floor,pe=function(){for(var e,A,t,n,i,a,r=[],s=arguments.length;s--;)r[s]=arguments[s];var o,l,c,d=(r=ue(r,"hcg"))[0],h=r[1],u=r[2];u*=255;var g=255*h;if(0===h)o=l=c=u;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var p=ge(d/=60),w=d-p,m=u*(1-h),f=m+g*(1-w),B=m+g*w,E=m+g;switch(p){case 0:o=(e=[E,B,m])[0],l=e[1],c=e[2];break;case 1:o=(A=[f,E,m])[0],l=A[1],c=A[2];break;case 2:o=(t=[m,E,B])[0],l=t[1],c=t[2];break;case 3:o=(n=[m,f,E])[0],l=n[1],c=n[2];break;case 4:o=(i=[B,m,E])[0],l=i[1],c=i[2];break;case 5:o=(a=[E,m,f])[0],l=a[1],c=a[2]}}return[o,l,c,r.length>3?r[3]:1]},we=c.unpack,me=c.type,fe=B,Be=m,Ee=d,be=he;Be.prototype.hcg=function(){return be(this._rgb)},fe.hcg=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(Be,[null].concat(e,["hcg"])))},Ee.format.hcg=pe,Ee.autodetect.push({p:1,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=we(e,"hcg"),"array"===me(e)&&3===e.length)return"hcg"}});var Ce=c.unpack,ve=c.last,ye=Math.round,Fe=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=Ce(e,"rgba"),n=t[0],i=t[1],a=t[2],r=t[3],s=ve(e)||"auto";void 0===r&&(r=1),"auto"===s&&(s=r<1?"rgba":"rgb");var o="000000"+((n=ye(n))<<16|(i=ye(i))<<8|(a=ye(a))).toString(16);o=o.substr(o.length-6);var l="0"+ye(255*r).toString(16);switch(l=l.substr(l.length-2),s.toLowerCase()){case"rgba":return"#"+o+l;case"argb":return"#"+l+o;default:return"#"+o}},xe=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,Qe=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,Ue=function(e){if(e.match(xe)){4!==e.length&&7!==e.length||(e=e.substr(1)),3===e.length&&(e=(e=e.split(""))[0]+e[0]+e[1]+e[1]+e[2]+e[2]);var A=parseInt(e,16);return[A>>16,A>>8&255,255&A,1]}if(e.match(Qe)){5!==e.length&&9!==e.length||(e=e.substr(1)),4===e.length&&(e=(e=e.split(""))[0]+e[0]+e[1]+e[1]+e[2]+e[2]+e[3]+e[3]);var t=parseInt(e,16);return[t>>24&255,t>>16&255,t>>8&255,Math.round((255&t)/255*100)/100]}throw new Error("unknown hex color: "+e)},Se=B,Te=m,Ie=c.type,ke=d,Me=Fe;Te.prototype.hex=function(e){return Me(this._rgb,e)},Se.hex=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(Te,[null].concat(e,["hex"])))},ke.format.hex=Ue,ke.autodetect.push({p:4,test:function(e){for(var A=[],t=arguments.length-1;t-- >0;)A[t]=arguments[t+1];if(!A.length&&"string"===Ie(e)&&[3,4,5,6,7,8,9].indexOf(e.length)>=0)return"hex"}});var Le=c.unpack,Oe=c.TWOPI,He=Math.min,Ne=Math.sqrt,De=Math.acos,Re=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t,n=Le(e,"rgb"),i=n[0],a=n[1],r=n[2],s=He(i/=255,a/=255,r/=255),o=(i+a+r)/3,l=o>0?1-s/o:0;return 0===l?t=NaN:(t=(i-a+(i-r))/2,t/=Ne((i-a)*(i-a)+(i-r)*(a-r)),t=De(t),r>a&&(t=Oe-t),t/=Oe),[360*t,l,o]},Pe=c.unpack,Ve=c.limit,Ke=c.TWOPI,Ge=c.PITHIRD,We=Math.cos,ze=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t,n,i,a=(e=Pe(e,"hsi"))[0],r=e[1],s=e[2];return isNaN(a)&&(a=0),isNaN(r)&&(r=0),a>360&&(a-=360),a<0&&(a+=360),(a/=360)<1/3?n=1-((i=(1-r)/3)+(t=(1+r*We(Ke*a)/We(Ge-Ke*a))/3)):a<2/3?i=1-((t=(1-r)/3)+(n=(1+r*We(Ke*(a-=1/3))/We(Ge-Ke*a))/3)):t=1-((n=(1-r)/3)+(i=(1+r*We(Ke*(a-=2/3))/We(Ge-Ke*a))/3)),[255*(t=Ve(s*t*3)),255*(n=Ve(s*n*3)),255*(i=Ve(s*i*3)),e.length>3?e[3]:1]},Xe=c.unpack,Ye=c.type,je=B,Je=m,Ze=d,qe=Re;Je.prototype.hsi=function(){return qe(this._rgb)},je.hsi=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(Je,[null].concat(e,["hsi"])))},Ze.format.hsi=ze,Ze.autodetect.push({p:2,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=Xe(e,"hsi"),"array"===Ye(e)&&3===e.length)return"hsi"}});var _e=c.unpack,$e=c.type,eA=B,AA=m,tA=d,nA=H;AA.prototype.hsl=function(){return nA(this._rgb)},eA.hsl=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(AA,[null].concat(e,["hsl"])))},tA.format.hsl=z,tA.autodetect.push({p:2,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=_e(e,"hsl"),"array"===$e(e)&&3===e.length)return"hsl"}});var iA=c.unpack,aA=Math.min,rA=Math.max,sA=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t,n,i,a=(e=iA(e,"rgb"))[0],r=e[1],s=e[2],o=aA(a,r,s),l=rA(a,r,s),c=l-o;return i=l/255,0===l?(t=Number.NaN,n=0):(n=c/l,a===l&&(t=(r-s)/c),r===l&&(t=2+(s-a)/c),s===l&&(t=4+(a-r)/c),(t*=60)<0&&(t+=360)),[t,n,i]},oA=c.unpack,lA=Math.floor,cA=function(){for(var e,A,t,n,i,a,r=[],s=arguments.length;s--;)r[s]=arguments[s];var o,l,c,d=(r=oA(r,"hsv"))[0],h=r[1],u=r[2];if(u*=255,0===h)o=l=c=u;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var g=lA(d/=60),p=d-g,w=u*(1-h),m=u*(1-h*p),f=u*(1-h*(1-p));switch(g){case 0:o=(e=[u,f,w])[0],l=e[1],c=e[2];break;case 1:o=(A=[m,u,w])[0],l=A[1],c=A[2];break;case 2:o=(t=[w,u,f])[0],l=t[1],c=t[2];break;case 3:o=(n=[w,m,u])[0],l=n[1],c=n[2];break;case 4:o=(i=[f,w,u])[0],l=i[1],c=i[2];break;case 5:o=(a=[u,w,m])[0],l=a[1],c=a[2]}}return[o,l,c,r.length>3?r[3]:1]},dA=c.unpack,hA=c.type,uA=B,gA=m,pA=d,wA=sA;gA.prototype.hsv=function(){return wA(this._rgb)},uA.hsv=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(gA,[null].concat(e,["hsv"])))},pA.format.hsv=cA,pA.autodetect.push({p:2,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=dA(e,"hsv"),"array"===hA(e)&&3===e.length)return"hsv"}});var mA={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},fA=mA,BA=c.unpack,EA=Math.pow,bA=function(e){return(e/=255)<=.04045?e/12.92:EA((e+.055)/1.055,2.4)},CA=function(e){return e>fA.t3?EA(e,1/3):e/fA.t2+fA.t0},vA=function(e,A,t){return e=bA(e),A=bA(A),t=bA(t),[CA((.4124564*e+.3575761*A+.1804375*t)/fA.Xn),CA((.2126729*e+.7151522*A+.072175*t)/fA.Yn),CA((.0193339*e+.119192*A+.9503041*t)/fA.Zn)]},yA=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=BA(e,"rgb"),n=t[0],i=t[1],a=t[2],r=vA(n,i,a),s=r[0],o=r[1],l=116*o-16;return[l<0?0:l,500*(s-o),200*(o-r[2])]},FA=mA,xA=c.unpack,QA=Math.pow,UA=function(e){return 255*(e<=.00304?12.92*e:1.055*QA(e,1/2.4)-.055)},SA=function(e){return e>FA.t1?e*e*e:FA.t2*(e-FA.t0)},TA=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t,n,i,a=(e=xA(e,"lab"))[0],r=e[1],s=e[2];return n=(a+16)/116,t=isNaN(r)?n:n+r/500,i=isNaN(s)?n:n-s/200,n=FA.Yn*SA(n),t=FA.Xn*SA(t),i=FA.Zn*SA(i),[UA(3.2404542*t-1.5371385*n-.4985314*i),UA(-.969266*t+1.8760108*n+.041556*i),UA(.0556434*t-.2040259*n+1.0572252*i),e.length>3?e[3]:1]},IA=c.unpack,kA=c.type,MA=B,LA=m,OA=d,HA=yA;LA.prototype.lab=function(){return HA(this._rgb)},MA.lab=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(LA,[null].concat(e,["lab"])))},OA.format.lab=TA,OA.autodetect.push({p:2,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=IA(e,"lab"),"array"===kA(e)&&3===e.length)return"lab"}});var NA=c.unpack,DA=c.RAD2DEG,RA=Math.sqrt,PA=Math.atan2,VA=Math.round,KA=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=NA(e,"lab"),n=t[0],i=t[1],a=t[2],r=RA(i*i+a*a),s=(PA(a,i)*DA+360)%360;return 0===VA(1e4*r)&&(s=Number.NaN),[n,r,s]},GA=c.unpack,WA=yA,zA=KA,XA=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=GA(e,"rgb"),n=t[0],i=t[1],a=t[2],r=WA(n,i,a),s=r[0],o=r[1],l=r[2];return zA(s,o,l)},YA=c.unpack,jA=c.DEG2RAD,JA=Math.sin,ZA=Math.cos,qA=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=YA(e,"lch"),n=t[0],i=t[1],a=t[2];return isNaN(a)&&(a=0),[n,ZA(a*=jA)*i,JA(a)*i]},_A=c.unpack,$A=qA,et=TA,At=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=(e=_A(e,"lch"))[0],n=e[1],i=e[2],a=$A(t,n,i),r=a[0],s=a[1],o=a[2],l=et(r,s,o);return[l[0],l[1],l[2],e.length>3?e[3]:1]},tt=c.unpack,nt=At,it=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=tt(e,"hcl").reverse();return nt.apply(void 0,t)},at=c.unpack,rt=c.type,st=B,ot=m,lt=d,ct=XA;ot.prototype.lch=function(){return ct(this._rgb)},ot.prototype.hcl=function(){return ct(this._rgb).reverse()},st.lch=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(ot,[null].concat(e,["lch"])))},st.hcl=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(ot,[null].concat(e,["hcl"])))},lt.format.lch=At,lt.format.hcl=it,["lch","hcl"].forEach((function(e){return lt.autodetect.push({p:2,test:function(){for(var A=[],t=arguments.length;t--;)A[t]=arguments[t];if(A=at(A,e),"array"===rt(A)&&3===A.length)return e}})}));var dt={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflower:"#6495ed",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},ht=d,ut=c.type,gt=dt,pt=Ue,wt=Fe;m.prototype.name=function(){for(var e=wt(this._rgb,"rgb"),A=0,t=Object.keys(gt);A0;)A[t]=arguments[t+1];if(!A.length&&"string"===ut(e)&>[e.toLowerCase()])return"named"}});var mt=c.unpack,ft=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=mt(e,"rgb");return(t[0]<<16)+(t[1]<<8)+t[2]},Bt=c.type,Et=function(e){if("number"==Bt(e)&&e>=0&&e<=16777215)return[e>>16,e>>8&255,255&e,1];throw new Error("unknown num color: "+e)},bt=B,Ct=m,vt=d,yt=c.type,Ft=ft;Ct.prototype.num=function(){return Ft(this._rgb)},bt.num=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(Ct,[null].concat(e,["num"])))},vt.format.num=Et,vt.autodetect.push({p:5,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(1===e.length&&"number"===yt(e[0])&&e[0]>=0&&e[0]<=16777215)return"num"}});var xt=B,Qt=m,Ut=d,St=c.unpack,Tt=c.type,It=Math.round;Qt.prototype.rgb=function(e){return void 0===e&&(e=!0),!1===e?this._rgb.slice(0,3):this._rgb.slice(0,3).map(It)},Qt.prototype.rgba=function(e){return void 0===e&&(e=!0),this._rgb.slice(0,4).map((function(A,t){return t<3?!1===e?A:It(A):A}))},xt.rgb=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(Qt,[null].concat(e,["rgb"])))},Ut.format.rgb=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=St(e,"rgba");return void 0===t[3]&&(t[3]=1),t},Ut.autodetect.push({p:3,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=St(e,"rgba"),"array"===Tt(e)&&(3===e.length||4===e.length&&"number"==Tt(e[3])&&e[3]>=0&&e[3]<=1))return"rgb"}});var kt=Math.log,Mt=function(e){var A,t,n,i=e/100;return i<66?(A=255,t=i<6?0:-155.25485562709179-.44596950469579133*(t=i-2)+104.49216199393888*kt(t),n=i<20?0:.8274096064007395*(n=i-10)-254.76935184120902+115.67994401066147*kt(n)):(A=351.97690566805693+.114206453784165*(A=i-55)-40.25366309332127*kt(A),t=325.4494125711974+.07943456536662342*(t=i-50)-28.0852963507957*kt(t),n=255),[A,t,n,1]},Lt=Mt,Ot=c.unpack,Ht=Math.round,Nt=B,Dt=m,Rt=d,Pt=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];for(var t,n=Ot(e,"rgb"),i=n[0],a=n[2],r=1e3,s=4e4,o=.4;s-r>o;){var l=Lt(t=.5*(s+r));l[2]/l[0]>=a/i?s=t:r=t}return Ht(t)};Dt.prototype.temp=Dt.prototype.kelvin=Dt.prototype.temperature=function(){return Pt(this._rgb)},Nt.temp=Nt.kelvin=Nt.temperature=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(Dt,[null].concat(e,["temp"])))},Rt.format.temp=Rt.format.kelvin=Rt.format.temperature=Mt;var Vt=c.unpack,Kt=Math.cbrt,Gt=Math.pow,Wt=Math.sign,zt=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=Vt(e,"rgb"),n=t[0],i=t[1],a=t[2],r=[Xt(n/255),Xt(i/255),Xt(a/255)],s=r[0],o=r[1],l=r[2],c=Kt(.4122214708*s+.5363325363*o+.0514459929*l),d=Kt(.2119034982*s+.6806995451*o+.1073969566*l),h=Kt(.0883024619*s+.2817188376*o+.6299787005*l);return[.2104542553*c+.793617785*d-.0040720468*h,1.9779984951*c-2.428592205*d+.4505937099*h,.0259040371*c+.7827717662*d-.808675766*h]};function Xt(e){var A=Math.abs(e);return A<.04045?e/12.92:(Wt(e)||1)*Gt((A+.055)/1.055,2.4)}var Yt=c.unpack,jt=Math.pow,Jt=Math.sign,Zt=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=(e=Yt(e,"lab"))[0],n=e[1],i=e[2],a=jt(t+.3963377774*n+.2158037573*i,3),r=jt(t-.1055613458*n-.0638541728*i,3),s=jt(t-.0894841775*n-1.291485548*i,3);return[255*qt(4.0767416621*a-3.3077115913*r+.2309699292*s),255*qt(-1.2684380046*a+2.6097574011*r-.3413193965*s),255*qt(-.0041960863*a-.7034186147*r+1.707614701*s),e.length>3?e[3]:1]};function qt(e){var A=Math.abs(e);return A>.0031308?(Jt(e)||1)*(1.055*jt(A,1/2.4)-.055):12.92*e}var _t=c.unpack,$t=c.type,en=B,An=m,tn=d,nn=zt;An.prototype.oklab=function(){return nn(this._rgb)},en.oklab=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(An,[null].concat(e,["oklab"])))},tn.format.oklab=Zt,tn.autodetect.push({p:3,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=_t(e,"oklab"),"array"===$t(e)&&3===e.length)return"oklab"}});var an=c.unpack,rn=zt,sn=KA,on=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=an(e,"rgb"),n=t[0],i=t[1],a=t[2],r=rn(n,i,a),s=r[0],o=r[1],l=r[2];return sn(s,o,l)},ln=c.unpack,cn=qA,dn=Zt,hn=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];var t=(e=ln(e,"lch"))[0],n=e[1],i=e[2],a=cn(t,n,i),r=a[0],s=a[1],o=a[2],l=dn(r,s,o);return[l[0],l[1],l[2],e.length>3?e[3]:1]},un=c.unpack,gn=c.type,pn=B,wn=m,mn=d,fn=on;wn.prototype.oklch=function(){return fn(this._rgb)},pn.oklch=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];return new(Function.prototype.bind.apply(wn,[null].concat(e,["oklch"])))},mn.format.oklch=hn,mn.autodetect.push({p:3,test:function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];if(e=un(e,"oklch"),"array"===gn(e)&&3===e.length)return"oklch"}});var Bn=m,En=c.type;Bn.prototype.alpha=function(e,A){return void 0===A&&(A=!1),void 0!==e&&"number"===En(e)?A?(this._rgb[3]=e,this):new Bn([this._rgb[0],this._rgb[1],this._rgb[2],e],"rgb"):this._rgb[3]},m.prototype.clipped=function(){return this._rgb._clipped||!1};var bn=m,Cn=mA;bn.prototype.darken=function(e){void 0===e&&(e=1);var A=this.lab();return A[0]-=Cn.Kn*e,new bn(A,"lab").alpha(this.alpha(),!0)},bn.prototype.brighten=function(e){return void 0===e&&(e=1),this.darken(-e)},bn.prototype.darker=bn.prototype.darken,bn.prototype.brighter=bn.prototype.brighten,m.prototype.get=function(e){var A=e.split("."),t=A[0],n=A[1],i=this[t]();if(n){var a=t.indexOf(n)-("ok"===t.substr(0,2)?2:0);if(a>-1)return i[a];throw new Error("unknown channel "+n+" in mode "+t)}return i};var vn=m,yn=c.type,Fn=Math.pow;vn.prototype.luminance=function(e){if(void 0!==e&&"number"===yn(e)){if(0===e)return new vn([0,0,0,this._rgb[3]],"rgb");if(1===e)return new vn([255,255,255,this._rgb[3]],"rgb");var A=this.luminance(),t=20,n=function(A,i){var a=A.interpolate(i,.5,"rgb"),r=a.luminance();return Math.abs(e-r)<1e-7||!t--?a:r>e?n(A,a):n(a,i)},i=(A>e?n(new vn([0,0,0]),this):n(this,new vn([255,255,255]))).rgb();return new vn(i.concat([this._rgb[3]]))}return xn.apply(void 0,this._rgb.slice(0,3))};var xn=function(e,A,t){return.2126*(e=Qn(e))+.7152*(A=Qn(A))+.0722*Qn(t)},Qn=function(e){return(e/=255)<=.03928?e/12.92:Fn((e+.055)/1.055,2.4)},Un={},Sn=m,Tn=c.type,In=Un,kn=function(e,A,t){void 0===t&&(t=.5);for(var n=[],i=arguments.length-3;i-- >0;)n[i]=arguments[i+3];var a=n[0]||"lrgb";if(In[a]||n.length||(a=Object.keys(In)[0]),!In[a])throw new Error("interpolation mode "+a+" is not defined");return"object"!==Tn(e)&&(e=new Sn(e)),"object"!==Tn(A)&&(A=new Sn(A)),In[a](e,A,t).alpha(e.alpha()+t*(A.alpha()-e.alpha()))},Mn=m,Ln=kn;Mn.prototype.mix=Mn.prototype.interpolate=function(e,A){void 0===A&&(A=.5);for(var t=[],n=arguments.length-2;n-- >0;)t[n]=arguments[n+2];return Ln.apply(void 0,[this,e,A].concat(t))};var On=m;On.prototype.premultiply=function(e){void 0===e&&(e=!1);var A=this._rgb,t=A[3];return e?(this._rgb=[A[0]*t,A[1]*t,A[2]*t,t],this):new On([A[0]*t,A[1]*t,A[2]*t,t],"rgb")};var Hn=m,Nn=mA;Hn.prototype.saturate=function(e){void 0===e&&(e=1);var A=this.lch();return A[1]+=Nn.Kn*e,A[1]<0&&(A[1]=0),new Hn(A,"lch").alpha(this.alpha(),!0)},Hn.prototype.desaturate=function(e){return void 0===e&&(e=1),this.saturate(-e)};var Dn=m,Rn=c.type;Dn.prototype.set=function(e,A,t){void 0===t&&(t=!1);var n=e.split("."),i=n[0],a=n[1],r=this[i]();if(a){var s=i.indexOf(a)-("ok"===i.substr(0,2)?2:0);if(s>-1){if("string"==Rn(A))switch(A.charAt(0)){case"+":case"-":r[s]+=+A;break;case"*":r[s]*=+A.substr(1);break;case"/":r[s]/=+A.substr(1);break;default:r[s]=+A}else{if("number"!==Rn(A))throw new Error("unsupported value for Color.set");r[s]=A}var o=new Dn(r,i);return t?(this._rgb=o._rgb,this):o}throw new Error("unknown channel "+a+" in mode "+i)}return r};var Pn=m;Un.rgb=function(e,A,t){var n=e._rgb,i=A._rgb;return new Pn(n[0]+t*(i[0]-n[0]),n[1]+t*(i[1]-n[1]),n[2]+t*(i[2]-n[2]),"rgb")};var Vn=m,Kn=Math.sqrt,Gn=Math.pow;Un.lrgb=function(e,A,t){var n=e._rgb,i=n[0],a=n[1],r=n[2],s=A._rgb,o=s[0],l=s[1],c=s[2];return new Vn(Kn(Gn(i,2)*(1-t)+Gn(o,2)*t),Kn(Gn(a,2)*(1-t)+Gn(l,2)*t),Kn(Gn(r,2)*(1-t)+Gn(c,2)*t),"rgb")};var Wn=m;Un.lab=function(e,A,t){var n=e.lab(),i=A.lab();return new Wn(n[0]+t*(i[0]-n[0]),n[1]+t*(i[1]-n[1]),n[2]+t*(i[2]-n[2]),"lab")};var zn=m,Xn=function(e,A,t,n){var i,a,r,s,o,l,c,d,h,u,g,p,w;return"hsl"===n?(r=e.hsl(),s=A.hsl()):"hsv"===n?(r=e.hsv(),s=A.hsv()):"hcg"===n?(r=e.hcg(),s=A.hcg()):"hsi"===n?(r=e.hsi(),s=A.hsi()):"lch"===n||"hcl"===n?(n="hcl",r=e.hcl(),s=A.hcl()):"oklch"===n&&(r=e.oklch().reverse(),s=A.oklch().reverse()),"h"!==n.substr(0,1)&&"oklch"!==n||(o=(i=r)[0],c=i[1],h=i[2],l=(a=s)[0],d=a[1],u=a[2]),isNaN(o)||isNaN(l)?isNaN(o)?isNaN(l)?p=Number.NaN:(p=l,1!=h&&0!=h||"hsv"==n||(g=d)):(p=o,1!=u&&0!=u||"hsv"==n||(g=c)):p=o+t*(l>o&&l-o>180?l-(o+360):l180?l+360-o:l-o),void 0===g&&(g=c+t*(d-c)),w=h+t*(u-h),new zn("oklch"===n?[w,g,p]:[p,g,w],n)},Yn=Xn,jn=function(e,A,t){return Yn(e,A,t,"lch")};Un.lch=jn,Un.hcl=jn;var Jn=m;Un.num=function(e,A,t){var n=e.num(),i=A.num();return new Jn(n+t*(i-n),"num")};var Zn=Xn;Un.hcg=function(e,A,t){return Zn(e,A,t,"hcg")};var qn=Xn;Un.hsi=function(e,A,t){return qn(e,A,t,"hsi")};var _n=Xn;Un.hsl=function(e,A,t){return _n(e,A,t,"hsl")};var $n=Xn;Un.hsv=function(e,A,t){return $n(e,A,t,"hsv")};var ei=m;Un.oklab=function(e,A,t){var n=e.oklab(),i=A.oklab();return new ei(n[0]+t*(i[0]-n[0]),n[1]+t*(i[1]-n[1]),n[2]+t*(i[2]-n[2]),"oklab")};var Ai=Xn;Un.oklch=function(e,A,t){return Ai(e,A,t,"oklch")};var ti=m,ni=c.clip_rgb,ii=Math.pow,ai=Math.sqrt,ri=Math.PI,si=Math.cos,oi=Math.sin,li=Math.atan2,ci=function(e,A){for(var t=e.length,n=[0,0,0,0],i=0;i.9999999&&(n[3]=1),new ti(ni(n))},di=B,hi=c.type,ui=Math.pow,gi=function(e){var A="rgb",t=di("#ccc"),n=0,i=[0,1],a=[],r=[0,0],s=!1,o=[],l=!1,c=0,d=1,h=!1,u={},g=!0,p=1,w=function(e){if((e=e||["#fff","#000"])&&"string"===hi(e)&&di.brewer&&di.brewer[e.toLowerCase()]&&(e=di.brewer[e.toLowerCase()]),"array"===hi(e)){1===e.length&&(e=[e[0],e[0]]),e=e.slice(0);for(var A=0;A2?function(e){if(null!=s){for(var A=s.length-1,t=0;t=s[t];)t++;return t-1}return 0}(e)/(s.length-2):d!==c?(e-c)/(d-c):1,l=f(l),n||(l=m(l)),1!==p&&(l=ui(l,p)),l=r[0]+l*(1-r[0]-r[1]),l=Math.min(1,Math.max(0,l));var h=Math.floor(1e4*l);if(g&&u[h])i=u[h];else{if("array"===hi(o))for(var w=0;w=B&&w===a.length-1){i=o[w];break}if(l>B&&l2){var l=e.map((function(A,t){return t/(e.length-1)})),h=e.map((function(e){return(e-c)/(d-c)}));h.every((function(e,A){return l[A]===e}))||(f=function(e){if(e<=0||e>=1)return e;for(var A=0;e>=h[A+1];)A++;var t=(e-h[A])/(h[A+1]-h[A]);return l[A]+t*(l[A+1]-l[A])})}}return i=[c,d],b},b.mode=function(e){return arguments.length?(A=e,E(),b):A},b.range=function(e,A){return w(e),b},b.out=function(e){return l=e,b},b.spread=function(e){return arguments.length?(n=e,b):n},b.correctLightness=function(e){return null==e&&(e=!0),h=e,E(),m=h?function(e){for(var A=B(0,!0).lab()[0],t=B(1,!0).lab()[0],n=A>t,i=B(e,!0).lab()[0],a=A+(t-A)*e,r=i-a,s=0,o=1,l=20;Math.abs(r)>.01&&l-- >0;)n&&(r*=-1),r<0?(s=e,e+=.5*(o-e)):(o=e,e+=.5*(s-e)),r=(i=B(e,!0).lab()[0])-a;return e}:function(e){return e},b},b.padding=function(e){return null!=e?("number"===hi(e)&&(e=[e,e]),r=e,b):r},b.colors=function(A,t){arguments.length<2&&(t="hex");var n=[];if(0===arguments.length)n=o.slice(0);else if(1===A)n=[b(.5)];else if(A>1){var a=i[0],r=i[1]-a;n=pi(0,A,!1).map((function(e){return b(a+e/(A-1)*r)}))}else{e=[];var l=[];if(s&&s.length>2)for(var c=1,d=s.length,h=1<=d;h?cd;h?c++:c--)l.push(.5*(s[c-1]+s[c]));else l=i;n=l.map((function(e){return b(e)}))}return di[t]&&(n=n.map((function(e){return e[t]()}))),n},b.cache=function(e){return null!=e?(g=e,b):g},b.gamma=function(e){return null!=e?(p=e,b):p},b.nodata=function(e){return null!=e?(t=di(e),b):t},b};function pi(e,A,t){for(var n=[],i=ea;i?r++:r--)n.push(r);return n}var wi=m,mi=gi,fi=B,Bi=function(e,A,t){if(!Bi[t])throw new Error("unknown blend mode "+t);return Bi[t](e,A)},Ei=function(e){return function(A,t){var n=fi(t).rgb(),i=fi(A).rgb();return fi.rgb(e(n,i))}},bi=function(e){return function(A,t){var n=[];return n[0]=e(A[0],t[0]),n[1]=e(A[1],t[1]),n[2]=e(A[2],t[2]),n}};Bi.normal=Ei(bi((function(e){return e}))),Bi.multiply=Ei(bi((function(e,A){return e*A/255}))),Bi.screen=Ei(bi((function(e,A){return 255*(1-(1-e/255)*(1-A/255))}))),Bi.overlay=Ei(bi((function(e,A){return A<128?2*e*A/255:255*(1-2*(1-e/255)*(1-A/255))}))),Bi.darken=Ei(bi((function(e,A){return e>A?A:e}))),Bi.lighten=Ei(bi((function(e,A){return e>A?e:A}))),Bi.dodge=Ei(bi((function(e,A){return 255===e||(e=A/255*255/(1-e/255))>255?255:e}))),Bi.burn=Ei(bi((function(e,A){return 255*(1-(1-A/255)/(e/255))})));for(var Ci=Bi,vi=c.type,yi=c.clip_rgb,Fi=c.TWOPI,xi=Math.pow,Qi=Math.sin,Ui=Math.cos,Si=B,Ti=m,Ii=Math.floor,ki=Math.random,Mi=r,Li=Math.log,Oi=Math.pow,Hi=Math.floor,Ni=Math.abs,Di=function(e,A){void 0===A&&(A=null);var t={min:Number.MAX_VALUE,max:-1*Number.MAX_VALUE,sum:0,values:[],count:0};return"object"===Mi(e)&&(e=Object.values(e)),e.forEach((function(e){A&&"object"===Mi(e)&&(e=e[A]),null==e||isNaN(e)||(t.values.push(e),t.sum+=e,et.max&&(t.max=e),t.count+=1)})),t.domain=[t.min,t.max],t.limits=function(e,A){return Ri(t,e,A)},t},Ri=function(e,A,t){void 0===A&&(A="equal"),void 0===t&&(t=7),"array"==Mi(e)&&(e=Di(e));var n=e.min,i=e.max,a=e.values.sort((function(e,A){return e-A}));if(1===t)return[n,i];var r=[];if("c"===A.substr(0,1)&&(r.push(n),r.push(i)),"e"===A.substr(0,1)){r.push(n);for(var s=1;s 0");var o=Math.LOG10E*Li(n),l=Math.LOG10E*Li(i);r.push(n);for(var c=1;c200&&(B=!1)}for(var O={},H=0;H=360;)g-=360;r[u]=g}else r[u]=r[u]/s[u];return h/=n,new ti(r,A).alpha(h>.99999?1:h,!0)},la.bezier=function(e){var A=function(e){var A,t,n,i,a,r,s;if(e=e.map((function(e){return new wi(e)})),2===e.length)A=e.map((function(e){return e.lab()})),a=A[0],r=A[1],i=function(e){var A=[0,1,2].map((function(A){return a[A]+e*(r[A]-a[A])}));return new wi(A,"lab")};else if(3===e.length)t=e.map((function(e){return e.lab()})),a=t[0],r=t[1],s=t[2],i=function(e){var A=[0,1,2].map((function(A){return(1-e)*(1-e)*a[A]+2*(1-e)*e*r[A]+e*e*s[A]}));return new wi(A,"lab")};else if(4===e.length){var o;n=e.map((function(e){return e.lab()})),a=n[0],r=n[1],s=n[2],o=n[3],i=function(e){var A=[0,1,2].map((function(A){return(1-e)*(1-e)*(1-e)*a[A]+3*(1-e)*(1-e)*e*r[A]+3*(1-e)*e*e*s[A]+e*e*e*o[A]}));return new wi(A,"lab")}}else{if(!(e.length>=5))throw new RangeError("No point in running bezier with only one color.");var l,c,d;l=e.map((function(e){return e.lab()})),d=e.length-1,c=function(e){for(var A=[1,1],t=1;tn?(t+.05)/(n+.05):(n+.05)/(t+.05)},la.deltaE=function(e,A,t,n,i){void 0===t&&(t=1),void 0===n&&(n=1),void 0===i&&(i=1);var a=function(e){return 360*e/(2*_i)},r=function(e){return 2*_i*e/360};e=new Ki(e),A=new Ki(A);var s=Array.from(e.lab()),o=s[0],l=s[1],c=s[2],d=Array.from(A.lab()),h=d[0],u=d[1],g=d[2],p=(o+h)/2,w=(Gi(Wi(l,2)+Wi(c,2))+Gi(Wi(u,2)+Wi(g,2)))/2,m=.5*(1-Gi(Wi(w,7)/(Wi(w,7)+Wi(25,7)))),f=l*(1+m),B=u*(1+m),E=Gi(Wi(f,2)+Wi(c,2)),b=Gi(Wi(B,2)+Wi(g,2)),C=(E+b)/2,v=a(Yi(c,f)),y=a(Yi(g,B)),F=v>=0?v:v+360,x=y>=0?y:y+360,Q=ji(F-x)>180?(F+x+360)/2:(F+x)/2,U=1-.17*Ji(r(Q-30))+.24*Ji(r(2*Q))+.32*Ji(r(3*Q+6))-.2*Ji(r(4*Q-63)),S=x-F;S=ji(S)<=180?S:x<=F?S+360:S-360,S=2*Gi(E*b)*Zi(r(S)/2);var T=h-o,I=b-E,k=1+.015*Wi(p-50,2)/Gi(20+Wi(p-50,2)),M=1+.045*C,L=1+.015*C*U,O=30*qi(-Wi((Q-275)/25,2)),H=-2*Gi(Wi(C,7)/(Wi(C,7)+Wi(25,7)))*Zi(2*r(O)),N=Gi(Wi(T/(t*k),2)+Wi(I/(n*M),2)+Wi(S/(i*L),2)+H*(I/(n*M))*(S/(i*L)));return Xi(0,zi(100,N))},la.distance=function(e,A,t){void 0===t&&(t="lab"),e=new $i(e),A=new $i(A);var n=e.get(t),i=A.get(t),a=0;for(var r in n){var s=(n[r]||0)-(i[r]||0);a+=s*s}return Math.sqrt(a)},la.limits=Pi.limits,la.valid=function(){for(var e=[],A=arguments.length;A--;)e[A]=arguments[A];try{return new(Function.prototype.bind.apply(ea,[null].concat(e))),!0}catch(e){return!1}},la.scales=na,la.colors=dt,la.brewer=oa,la}();var chroma=chroma$1.exports;function hexWithAlpha(e,A){return chroma(e).alpha(A).css()}function has(e,A){return e.hasAttribute(A)}function get(e,A,t){return e.getAttribute(A)||t||""}function getNum(e,A,t){const n=Number(get(e,A));return NaN===n?t||0:n}const attrHandlers={stroke:({el:e,exVals:A})=>{const t=get(e,"stroke");A.strokeColor=has(e,"stroke-opacity")?hexWithAlpha(t,getNum(e,"stroke-opacity")):t},"stroke-opacity":({el:e,exVals:A})=>{A.strokeColor=hexWithAlpha(get(e,"stroke","#000000"),getNum(e,"stroke-opacity"))},"stroke-width":({el:e,exVals:A})=>{A.strokeWidth=getNum(e,"stroke-width")},fill:({el:e,exVals:A})=>{const t=get(e,"fill");A.backgroundColor="none"===t?"#00000000":t},"fill-opacity":({el:e,exVals:A})=>{A.backgroundColor=hexWithAlpha(get(e,"fill","#000000"),getNum(e,"fill-opacity"))},opacity:({el:e,exVals:A})=>{A.opacity=getNum(e,"opacity",100)}};function presAttrsToElementValues(e){return[...e.attributes].reduce(((A,t)=>{const n=t.name;return Object.keys(attrHandlers).includes(n)&&attrHandlers[n]({el:e,exVals:A}),A}),{})}function filterAttrsToElementValues(e){const A={};return has(e,"x")&&(A.x=getNum(e,"x")),has(e,"y")&&(A.y=getNum(e,"y")),has(e,"width")&&(A.width=getNum(e,"width")),has(e,"height")&&(A.height=getNum(e,"height")),A}function pointsAttrToPoints(e){let A=[];return has(e,"points")&&(A=get(e,"points").split(" ").map((e=>e.split(",").map(parseFloat)))),A}function getGroupAttrs(e){return e.reduce(((e,{element:A})=>{const t=presAttrsToElementValues(A);return Object.assign(Object.assign({},e),t)}),{})}class Group{constructor(e){this.id=randomId(),this.element=e}}function createExElement(){return{id:randomId(),x:0,y:0,strokeColor:"#000000",backgroundColor:"#000000",fillStyle:"solid",strokeWidth:1,strokeStyle:"solid",strokeSharpness:"sharp",roughness:0,opacity:100,width:0,height:0,angle:0,seed:Math.floor(random.next()*2**31),version:0,versionNonce:0,isDeleted:!1,groupIds:[],boundElementIds:null}}function createExRect(){return Object.assign(Object.assign({},createExElement()),{type:"rectangle"})}function createExLine(){return Object.assign(Object.assign({},createExElement()),{type:"line",points:[]})}function createExEllipse(){return Object.assign(Object.assign({},createExElement()),{type:"ellipse"})}function createExDraw(){return Object.assign(Object.assign({},createExElement()),{type:"line",points:[]})}const transformFunctions={matrix:"matrix",matrix3d:"matrix3d",perspective:"perspective",rotate:"rotate",rotate3d:"rotate3d",rotateX:"rotateX",rotateY:"rotateY",rotateZ:"rotateZ",scale:"scale",scale3d:"scale3d",scaleX:"scaleX",scaleY:"scaleY",scaleZ:"scaleZ",skew:"skew",skewX:"skewX",skewY:"skewY",translate:"translate",translate3d:"translate3d",translateX:"translateX",translateY:"translateY",translateZ:"translateZ"},transformFunctionsArr=Object.keys(transformFunctions),defaultUnits={matrix:"",matrix3d:"",perspective:"perspective",rotate:"deg",rotate3d:"deg",rotateX:"deg",rotateY:"deg",rotateZ:"deg",scale:"",scale3d:"",scaleX:"",scaleY:"",scaleZ:"",skew:"skew",skewX:"deg",skewY:"deg",translate:"px",translate3d:"px",translateX:"px",translateY:"px",translateZ:"px"},svgTransformToCSSTransform=e=>{const A=e.match(/(\w+)\(([^)]*)\)/g);if(!A)return"";const t=A.map((e=>{const A=e.split("(")[0];if(!A)throw new Error("Unable to find transform name");if(!transformFunctionsArr.includes(A))throw new Error(`transform function name "${A}" is not valid`);const t=e.match(/([-+]?[0-9]*\.?[0-9]+)([a-z])*/g);if(!t)return{type:A,values:[]};let n=t.map((e=>{const[t,n]=e.matchAll(/([-+]?[0-9]*\.?[0-9]+)|([a-z])*/g);return{unit:n[0]||defaultUnits[A],value:t[0]}}));return n&&"rotate"===A&&(null==n?void 0:n.length)>1&&(n=[n[0]]),{type:A,values:n}}));return t.map((({type:e,values:A})=>`${e}(${A.map((({unit:e,value:A})=>`${A}${e}`)).join(", ")})`)).join(" ")};function getElementMatrix(e){if(e.hasAttribute("transform")){const A=new DOMMatrix(svgTransformToCSSTransform(e.getAttribute("transform")||""));return multiply(create$1(),create$1(),A.toFloat32Array())}return create$1()}function getTransformMatrix(e,A){return A.map((({element:e})=>getElementMatrix(e))).concat([getElementMatrix(e)]).reduce(((e,A)=>multiply(e,e,A)),create$1())}function transformPoints(e,A){return e.map((([e,t])=>{const[n,i]=transformMat4(create(),fromValues(e,t,1),A);return[n,i]}))}function distance(e,A){return Math.sqrt(distanceSq(e,A))}function distanceSq(e,A){return Math.pow(e[0]-A[0],2)+Math.pow(e[1]-A[1],2)}function distanceToSegmentSq(e,A,t){const n=distanceSq(A,t);if(0===n)return distanceSq(e,A);let i=((e[0]-A[0])*(t[0]-A[0])+(e[1]-A[1])*(t[1]-A[1]))/n;return i=Math.max(0,Math.min(1,i)),distanceSq(e,lerp(A,t,i))}function lerp(e,A,t){return[e[0]+(A[0]-e[0])*t,e[1]+(A[1]-e[1])*t]}function flatness(e,A){const t=e[A+0],n=e[A+1],i=e[A+2],a=e[A+3];let r=3*n[0]-2*t[0]-a[0];r*=r;let s=3*n[1]-2*t[1]-a[1];s*=s;let o=3*i[0]-2*a[0]-t[0];o*=o;let l=3*i[1]-2*a[1]-t[1];return l*=l,r1&&i.push(t):i.push(t),i.push(e[A+3])}else{const n=.5,a=e[A+0],r=e[A+1],s=e[A+2],o=e[A+3],l=lerp(a,r,n),c=lerp(r,s,n),d=lerp(s,o,n),h=lerp(l,c,n),u=lerp(c,d,n),g=lerp(h,u,n);getPointsOnBezierCurveWithSplitting([a,l,h,g],0,t,i),getPointsOnBezierCurveWithSplitting([g,u,d,o],0,t,i)}return i}function simplify(e,A){return simplifyPoints(e,0,e.length,A)}function simplifyPoints(e,A,t,n,i){const a=i||[],r=e[A],s=e[t-1];let o=0,l=1;for(let n=A+1;no&&(o=A,l=n)}return Math.sqrt(o)>n?(simplifyPoints(e,A,l+1,n,a),simplifyPoints(e,l,t,n,a)):(a.length||a.push(r),a.push(s)),a}function pointsOnBezierCurves(e,A=.15,t){const n=[],i=(e.length-1)/3;for(let t=0;t0?simplifyPoints(n,0,n.length,t):n}const COMMAND=0,NUMBER=1,EOD=2,PARAMS={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};function tokenize(e){const A=new Array;for(;""!==e;)if(e.match(/^([ \t\r\n,]+)/))e=e.substr(RegExp.$1.length);else if(e.match(/^([aAcChHlLmMqQsStTvVzZ])/))A[A.length]={type:0,text:RegExp.$1},e=e.substr(RegExp.$1.length);else{if(!e.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];A[A.length]={type:1,text:`${parseFloat(RegExp.$1)}`},e=e.substr(RegExp.$1.length)}return A[A.length]={type:2,text:""},A}function isType(e,A){return e.type===A}function parsePath(e){const A=[],t=tokenize(e);let n="BOD",i=0,a=t[i];for(;!isType(a,2);){let r=0;const s=[];if("BOD"===n){if("M"!==a.text&&"m"!==a.text)return parsePath("M0,0"+e);i++,r=PARAMS[a.text],n=a.text}else isType(a,1)?r=PARAMS[n]:(i++,r=PARAMS[a.text],n=a.text);if(!(i+rn%2?e+t:e+A));a.push({key:"C",data:e}),A=e[4],t=e[5];break}case"Q":a.push({key:"Q",data:[...s]}),A=s[2],t=s[3];break;case"q":{const e=s.map(((e,n)=>n%2?e+t:e+A));a.push({key:"Q",data:e}),A=e[2],t=e[3];break}case"A":a.push({key:"A",data:[...s]}),A=s[5],t=s[6];break;case"a":A+=s[5],t+=s[6],a.push({key:"A",data:[s[0],s[1],s[2],s[3],s[4],A,t]});break;case"H":a.push({key:"H",data:[...s]}),A=s[0];break;case"h":A+=s[0],a.push({key:"H",data:[A]});break;case"V":a.push({key:"V",data:[...s]}),t=s[0];break;case"v":t+=s[0],a.push({key:"V",data:[t]});break;case"S":a.push({key:"S",data:[...s]}),A=s[2],t=s[3];break;case"s":{const e=s.map(((e,n)=>n%2?e+t:e+A));a.push({key:"S",data:e}),A=e[2],t=e[3];break}case"T":a.push({key:"T",data:[...s]}),A=s[0],t=s[1];break;case"t":A+=s[0],t+=s[1],a.push({key:"T",data:[A,t]});break;case"Z":case"z":a.push({key:"Z",data:[]}),A=n,t=i}return a}function normalize(e){const A=[];let t="",n=0,i=0,a=0,r=0,s=0,o=0;for(const{key:l,data:c}of e){switch(l){case"M":A.push({key:"M",data:[...c]}),[n,i]=c,[a,r]=c;break;case"C":A.push({key:"C",data:[...c]}),n=c[4],i=c[5],s=c[2],o=c[3];break;case"L":A.push({key:"L",data:[...c]}),[n,i]=c;break;case"H":n=c[0],A.push({key:"L",data:[n,i]});break;case"V":i=c[0],A.push({key:"L",data:[n,i]});break;case"S":{let e=0,a=0;"C"===t||"S"===t?(e=n+(n-s),a=i+(i-o)):(e=n,a=i),A.push({key:"C",data:[e,a,...c]}),s=c[0],o=c[1],n=c[2],i=c[3];break}case"T":{const[e,a]=c;let r=0,l=0;"Q"===t||"T"===t?(r=n+(n-s),l=i+(i-o)):(r=n,l=i);const d=n+2*(r-n)/3,h=i+2*(l-i)/3,u=e+2*(r-e)/3,g=a+2*(l-a)/3;A.push({key:"C",data:[d,h,u,g,e,a]}),s=r,o=l,n=e,i=a;break}case"Q":{const[e,t,a,r]=c,l=n+2*(e-n)/3,d=i+2*(t-i)/3,h=a+2*(e-a)/3,u=r+2*(t-r)/3;A.push({key:"C",data:[l,d,h,u,a,r]}),s=e,o=t,n=a,i=r;break}case"A":{const e=Math.abs(c[0]),t=Math.abs(c[1]),a=c[2],r=c[3],s=c[4],o=c[5],l=c[6];0===e||0===t?(A.push({key:"C",data:[n,i,o,l,o,l]}),n=o,i=l):n===o&&i===l||(arcToCubicCurves(n,i,o,l,e,t,a,r,s).forEach((function(e){A.push({key:"C",data:e})})),n=o,i=l);break}case"Z":A.push({key:"Z",data:[]}),n=a,i=r}t=l}return A}function degToRad(e){return Math.PI*e/180}function rotate(e,A,t){return[e*Math.cos(t)-A*Math.sin(t),e*Math.sin(t)+A*Math.cos(t)]}function arcToCubicCurves(e,A,t,n,i,a,r,s,o,l){const c=degToRad(r);let d=[],h=0,u=0,g=0,p=0;if(l)[h,u,g,p]=l;else{[e,A]=rotate(e,A,-c),[t,n]=rotate(t,n,-c);const r=(e-t)/2,l=(A-n)/2;let d=r*r/(i*i)+l*l/(a*a);d>1&&(d=Math.sqrt(d),i*=d,a*=d);const w=i*i,m=a*a,f=w*m-w*l*l-m*r*r,B=w*l*l+m*r*r,E=(s===o?-1:1)*Math.sqrt(Math.abs(f/B));g=E*i*l/a+(e+t)/2,p=E*-a*r/i+(A+n)/2,h=Math.asin(parseFloat(((A-p)/a).toFixed(9))),u=Math.asin(parseFloat(((n-p)/a).toFixed(9))),eu&&(h-=2*Math.PI),!o&&u>h&&(u-=2*Math.PI)}let w=u-h;if(Math.abs(w)>120*Math.PI/180){const e=u,A=t,s=n;u=o&&u>h?h+120*Math.PI/180*1:h+120*Math.PI/180*-1,d=arcToCubicCurves(t=g+i*Math.cos(u),n=p+a*Math.sin(u),A,s,i,a,r,0,o,[u,e,g,p])}w=u-h;const m=Math.cos(h),f=Math.sin(h),B=Math.cos(u),E=Math.sin(u),b=Math.tan(w/4),C=4/3*i*b,v=4/3*a*b,y=[e,A],F=[e+C*f,A-v*m],x=[t+C*E,n-v*B],Q=[t,n];if(F[0]=2*y[0]-F[0],F[1]=2*y[1]-F[1],l)return[F,x,Q].concat(d);{d=[F,x,Q].concat(d);const e=[];for(let A=0;A{s.length>=4&&a.push(...pointsOnBezierCurves(s,A)),s=[]},l=()=>{o(),a.length&&(i.push(a),a=[])};for(const{key:e,data:A}of n)switch(e){case"M":l(),r=[A[0],A[1]],a.push(r);break;case"L":o(),a.push([A[0],A[1]]);break;case"C":if(!s.length){const e=a.length?a[a.length-1]:r;s.push([e[0],e[1]])}s.push([A[0],A[1]]),s.push([A[2],A[3]]),s.push([A[4],A[5]]);break;case"Z":o(),a.push([r[0],r[1]])}if(l(),!t)return i;const c=[];for(const e of i){const A=simplify(e,t);A.length&&c.push(A)}return c}const SUPPORTED_TAGS=["svg","path","g","use","circle","ellipse","rect","polyline","polygon"],nodeValidator=e=>SUPPORTED_TAGS.includes(e.tagName)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT;function createTreeWalker(e){return document.createTreeWalker(e,NodeFilter.SHOW_ALL,{acceptNode:nodeValidator})}const presAttrs=(e,A)=>Object.assign(Object.assign(Object.assign({},getGroupAttrs(A)),presAttrsToElementValues(e)),filterAttrsToElementValues(e)),skippedUseAttrs=["id"],allwaysPassedUseAttrs=["x","y","width","height","href","xlink:href"],getDefElWithCorrectAttrs=(e,A)=>[...A.attributes].reduce(((t,n)=>(skippedUseAttrs.includes(n.value)||e.hasAttribute(n.name)&&!allwaysPassedUseAttrs.includes(n.name)||t.setAttribute(n.name,A.getAttribute(n.name)||""),t)),e.cloneNode()),walkers={svg:e=>{walk(e,e.tw.nextNode())},g:e=>{const A=Object.assign(Object.assign({},e),{tw:createTreeWalker(e.tw.currentNode),groups:[...e.groups,new Group(e.tw.currentNode)]});walk(A,A.tw.nextNode()),walk(e,e.tw.nextSibling())},use:e=>{const{root:A,tw:t,scene:n}=e,i=t.currentNode,a=i.getAttribute("href")||i.getAttribute("xlink:href");if(!a)throw new Error("unable to get id of use element");const r=A.querySelector(a);if(!r)throw new Error(`unable to find def element with id: ${a}`);const s=new ExcalidrawScene,o=getDefElWithCorrectAttrs(r,i);walk(Object.assign(Object.assign({},e),{scene:s,tw:createTreeWalker(o)}),o);const l=s.elements.pop();l&&n.elements.push(l),walk(e,e.tw.nextNode())},circle:e=>{const{tw:A,scene:t,groups:n}=e,i=A.currentNode,a=getNum(i,"r",0),r=2*a,s=getNum(i,"x",0)+getNum(i,"cx",0)-a,o=getNum(i,"y",0)+getNum(i,"cy",0)-a,l=getTransformMatrix(i,n),c=fromValues$1(r,0,0,0,0,r,0,0,0,0,1,0,s,o,0,1),d=multiply(create$1(),l,c),h=Object.assign(Object.assign(Object.assign({},createExEllipse()),presAttrs(i,n)),{x:d[12],y:d[13],width:d[0],height:d[5],groupIds:n.map((e=>e.id))});t.elements.push(h),walk(e,A.nextNode())},ellipse:e=>{const{tw:A,scene:t,groups:n}=e,i=A.currentNode,a=getNum(i,"rx",0),r=getNum(i,"ry",0),s=getNum(i,"cx",0),o=getNum(i,"cy",0),l=getNum(i,"x",0)+s-a,c=getNum(i,"y",0)+o-r,d=2*a,h=2*r,u=getTransformMatrix(i,n),g=fromValues$1(d,0,0,0,0,h,0,0,0,0,1,0,l,c,0,1),p=multiply(create$1(),u,g),w=Object.assign(Object.assign(Object.assign({},createExEllipse()),presAttrs(i,n)),{x:p[12],y:p[13],width:p[0],height:p[5],groupIds:n.map((e=>e.id))});t.elements.push(w),walk(e,A.nextNode())},line:e=>{walk(e,e.tw.nextNode())},polygon:e=>{const{tw:A,scene:t,groups:n}=e,i=A.currentNode,a=transformPoints(pointsAttrToPoints(i),getTransformMatrix(i,n)),r=a[0][0],s=a[0][1],o=a.map((([e,A])=>[e-r,A-s])),[l,c]=dimensionsFromPoints(o),d=Object.assign(Object.assign(Object.assign(Object.assign({},createExLine()),getGroupAttrs(n)),presAttrsToElementValues(i)),{points:o.concat([[0,0]]),x:r,y:s,width:l,height:c});t.elements.push(d),walk(e,e.tw.nextNode())},polyline:e=>{const{tw:A,scene:t,groups:n}=e,i=A.currentNode,a=getTransformMatrix(i,n),r=transformPoints(pointsAttrToPoints(i),a),s=r[0][0],o=r[0][1],l=r.map((([e,A])=>[e-s,A-o])),[c,d]=dimensionsFromPoints(l),h=has(i,"fill"),u=get(i,"fill"),g=!h||h&&"none"!==u,p=Object.assign(Object.assign(Object.assign(Object.assign({},createExLine()),getGroupAttrs(n)),presAttrsToElementValues(i)),{points:l.concat(g?[[0,0]]:[]),x:s,y:o,width:c,height:d});t.elements.push(p),walk(e,e.tw.nextNode())},rect:e=>{const{tw:A,scene:t,groups:n}=e,i=A.currentNode,a=getNum(i,"x",0),r=getNum(i,"y",0),s=getNum(i,"width",0),o=getNum(i,"height",0),l=getTransformMatrix(i,n),c=fromValues$1(s,0,0,0,0,o,0,0,0,0,1,0,a,r,0,1),d=multiply(create$1(),l,c),h=i.hasAttribute("rx")||i.hasAttribute("ry"),u=Object.assign(Object.assign(Object.assign({},createExRect()),presAttrs(i,n)),{x:d[12],y:d[13],width:d[0],height:d[5],strokeSharpness:h?"round":"sharp"});t.elements.push(u),walk(e,e.tw.nextNode())},path:e=>{const{tw:A,scene:t,groups:n}=e,i=A.currentNode,a=getTransformMatrix(i,n),r=pointsOnPath(get(i,"d")),s=get(i,"fill","black"),o=get(i,"fill-rule","nonzero");let l=[],c=randomId();switch(o){case"nonzero":let e="clockwise";l=r.map(((A,t)=>{const r=transformPoints(A,clone(a)),o=r[0][0],l=r[0][1],[d,h]=dimensionsFromPoints(r),u=r.map((([e,A])=>[e-o,A-l])),g=getWindingOrder(u);0===t&&(e=g,c=randomId());let p=s;return e!==g&&(p="#FFFFFF"),Object.assign(Object.assign(Object.assign(Object.assign({},createExDraw()),{strokeWidth:0,strokeColor:"#00000000"}),presAttrs(i,n)),{points:u,backgroundColor:p,width:d,height:h,x:o+getNum(i,"x",0),y:l+getNum(i,"y",0),groupIds:[c]})}));break;case"evenodd":l=r.map(((e,A)=>{const t=transformPoints(e,clone(a)),r=t[0][0],s=t[0][1],[o,l]=dimensionsFromPoints(t),d=t.map((([e,A])=>[e-r,A-s]));return 0===A&&(c=randomId()),Object.assign(Object.assign(Object.assign({},createExDraw()),presAttrs(i,n)),{points:d,width:o,height:l,x:r+getNum(i,"x",0),y:s+getNum(i,"y",0)})}))}t.elements=t.elements.concat(l),walk(e,A.nextNode())}};function walk(e,A){if(!A)return;const t=A.nodeName;walkers[t]&&walkers[t](e)}const svgToExcalidraw=e=>{const A=(new DOMParser).parseFromString(e,"image/svg+xml"),t=A.querySelectorAll("parsererror"),n=t.length>0;let i=null;if(n)console.error("There were errors while parsing the given SVG: ",[...t].map((e=>e.innerHTML)));else{const e=createTreeWalker(A),t=new ExcalidrawScene;walk({tw:e,scene:t,groups:[],root:A},e.nextNode()),i=t.elements}return{hasErrors:n,errors:n?t:null,content:i}};B([r$c,z,e$a,l$3,b$1,v,h$1,i$5,i$4,h,u,c$1,s]);const{determineFocusDistance:determineFocusDistance,intersectElementWithLine:intersectElementWithLine,getCommonBoundingBox:getCommonBoundingBox,getMaximumGroups:getMaximumGroups,measureText:measureText}=excalidrawLib,GAP=4;class ExcalidrawAutomate{constructor(e,A){this.targetView=null,this.mostRecentMarkdownSVG=null,this.onViewUnloadHook=null,this.onViewModeChangeHook=null,this.onLinkHoverHook=null,this.onLinkClickHook=null,this.onDropHook=null,this.onCanvasColorChangeHook=null,this.activeScript=null,this.plugin=e,this.reset(),this.targetView=A}getAPI(e){return new ExcalidrawAutomate(this.plugin,e)}setFillStyle(e){switch(e){case 0:return this.style.fillStyle="hachure","hachure";case 1:return this.style.fillStyle="cross-hatch","cross-hatch";default:return this.style.fillStyle="solid","solid"}}setStrokeStyle(e){switch(e){case 0:return this.style.strokeStyle="solid","solid";case 1:return this.style.strokeStyle="dashed","dashed";default:return this.style.strokeStyle="dotted","dotted"}}setStrokeSharpness(e){return 0===e?(this.style.strokeSharpness="round","round"):(this.style.strokeSharpness="sharp","sharp")}setFontFamily(e){switch(e){case 1:return this.style.fontFamily=4,getFontFamily(4);case 2:return this.style.fontFamily=2,getFontFamily(2);case 3:return this.style.fontFamily=3,getFontFamily(3);default:return this.style.fontFamily=1,getFontFamily(1)}}setTheme(e){return 0===e?(this.canvas.theme="light","light"):(this.canvas.theme="dark","dark")}addToGroup(e){const A=nanoid();return e.forEach((e=>{var t,n;null===(n=null===(t=this.elementsDict[e])||void 0===t?void 0:t.groupIds)||void 0===n||n.push(A)})),A}async toClipboard(e){const A=e?await getTemplate(this.plugin,e,!1,new EmbeddedFilesLoader(this.plugin),0):null;let t=A?A.elements:[];t=t.concat(this.getElements()),navigator.clipboard.writeText(JSON.stringify({type:"excalidraw/clipboard",elements:t}))}getElements(){const e=[],A=Object.keys(this.elementsDict);for(let t=0;t{const e=this.getElements().filter((e=>"text"===e.type));let A="# Text Elements\n";return e.forEach((e=>{var t;A+=`${null!==(t=e.originalText)&&void 0!==t?t:e.text} ^${e.id}\n\n`})),this.getElements().filter((e=>"text"!==e.type&&e.link)).forEach((e=>{A+=`${e.link} ^${e.id}\n\n`})),A+=Object.keys(this.imagesDict).length>0?"\n# Embedded files\n":"",Object.keys(this.imagesDict).forEach((e=>{const t=this.imagesDict[e];t.latex?A+=`${e}: $$${t.latex}$$\n`:A+=`${e}: [[${t.file}]]\n`})),A})()+getMarkdownDrawingSection(JSON.stringify(V,null,"\t"),this.plugin.settings.compress))}async createSVG(e,A=!1,t,n,i,a){return i||(i=this.plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":this.plugin.settings.exportWithTheme?void 0:"light"),i&&!t&&(t={withBackground:this.plugin.settings.exportWithBackground,withTheme:!0}),n||(n=new EmbeddedFilesLoader(this.plugin,i?"dark"===i:void 0)),await createSVG(e,A,t,n,i,this.canvas.theme,this.canvas.viewBackgroundColor,this.getElements(),this.plugin,0,a)}async createPNG(e,A=1,t,n,i,a){return i||(i=this.plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":this.plugin.settings.exportWithTheme?void 0:"light"),i&&!t&&(t={withBackground:this.plugin.settings.exportWithBackground,withTheme:!0}),n||(n=new EmbeddedFilesLoader(this.plugin,i?"dark"===i:void 0)),await createPNG(e,A,t,n,i,this.canvas.theme,this.canvas.viewBackgroundColor,this.getElements(),this.plugin,0,a)}wrapText(e,A){return wrapTextAtCharLength(e,A,this.plugin.settings.forceWrap)}boxedElement(e,A,t,n,i,a){return{id:e,type:A,x:t,y:n,width:i,height:a,angle:this.style.angle,strokeColor:this.style.strokeColor,backgroundColor:this.style.backgroundColor,fillStyle:this.style.fillStyle,strokeWidth:this.style.strokeWidth,strokeStyle:this.style.strokeStyle,roughness:this.style.roughness,opacity:this.style.opacity,strokeSharpness:this.style.strokeSharpness,seed:Math.floor(1e5*Math.random()),version:1,versionNonce:Math.floor(1e9*Math.random()),updated:Date.now(),isDeleted:!1,groupIds:[],boundElements:[],link:null,locked:!1}}addRect(e,A,t,n){const i=nanoid();return this.elementsDict[i]=this.boxedElement(i,"rectangle",e,A,t,n),i}addDiamond(e,A,t,n){const i=nanoid();return this.elementsDict[i]=this.boxedElement(i,"diamond",e,A,t,n),i}addEllipse(e,A,t,n){const i=nanoid();return this.elementsDict[i]=this.boxedElement(i,"ellipse",e,A,t,n),i}addBlob(e,A,t,n){const i=.5*n,a=.5*t,r=a/9,s=.8*i,o=[],l=(t,n)=>{const l=t+Math.random()*r-r/2;o.push([l+Math.random()*r-r/2+t%2*r/6+e,n*Math.sqrt(i*i*(1-l*l/(a*a)))+Math.random()*s-s/2+t%2*s/6+A])};let c;for(c=r/2-a;c<=a-r/2;c+=a/6)l(c,1);for(c=a-r/2;c>=r/2-a;c-=a/6)l(c,-1);o.push(o[0]);const d=this.addLine((e=>{const A=getLineBox(e),i=t/A.w,a=n/A.h;let r;for(r=0;r500){const e=500/Math.max(r.size.width,r.size.height);r.size.width=e*r.size.width,r.size.height=e*r.size.height}return this.elementsDict[i]=this.boxedElement(i,"image",e,A,r.size.width,r.size.height),this.elementsDict[i].fileId=s,this.elementsDict[i].scale=[1,1],i}async addLaTex(e,A,t){const n=nanoid(),i=await tex2dataURL(t,this.plugin);return i?(this.imagesDict[i.fileId]={mimeType:i.mimeType,id:i.fileId,dataURL:i.dataURL,created:i.created,file:null,hasSVGwithBitmap:!1,latex:t},this.elementsDict[n]=this.boxedElement(n,"image",e,A,i.size.width,i.size.height),this.elementsDict[n].fileId=i.fileId,this.elementsDict[n].scale=[1,1],n):null}connectObjects(e,A,t,n,i){if(!this.elementsDict[e]||!this.elementsDict[t])return;if(["line","arrow","freedraw"].includes(this.elementsDict[e].type)||["line","arrow","freedraw"].includes(this.elementsDict[t].type))return;const a=(null==i?void 0:i.padding)?i.padding:10,r=(null==i?void 0:i.numberOfPoints)?i.numberOfPoints:0,s=(e,A)=>{switch(e){case"bottom":return[(A.x+(A.x+A.width))/2,A.y+A.height+a];case"left":return[A.x-a,(A.y+(A.y+A.height))/2];case"right":return[A.x+A.width+a,(A.y+(A.y+A.height))/2];default:return[(A.x+(A.x+A.width))/2,A.y-a]}};let o,l,c,d;const h=this.elementsDict[e],u=this.elementsDict[t];if(!A||!n){const e=h.x+h.width/2,t=u.x+u.width/2,i=h.y+h.height/2,a=u.y+u.height/2;if(!A){const A=intersectElementWithLine(h,[t,a],[e,i],4);0===A.length?[o,l]=[e,i]:[o,l]=A[0]}if(!n){const A=intersectElementWithLine(u,[e,i],[t,a],4);0===A.length?[c,d]=[t,a]:[c,d]=A[0]}}A&&([o,l]=s(A,this.elementsDict[e])),n&&([c,d]=s(n,this.elementsDict[t]));const g=r+2,p=[];for(let e=0;eMath.PI/2&&(n-=Math.PI),this.style.angle=n;const a=this.addText(t.x+t.points[1][0]/2-i.width/2,t.y+t.points[1][1]/2-i.height,A);return this.style.angle=0,a}clear(){this.elementsDict={},this.imagesDict={}}reset(){this.clear(),this.activeScript=null,this.style={strokeColor:"#000000",backgroundColor:"transparent",angle:0,fillStyle:"hachure",strokeWidth:1,strokeStyle:"solid",roughness:1,opacity:100,strokeSharpness:"sharp",fontFamily:1,fontSize:20,textAlign:"left",verticalAlign:"top",startArrowHead:null,endArrowHead:"arrow"},this.canvas={theme:"light",viewBackgroundColor:"#FFFFFF",gridSize:0}}isExcalidrawFile(e){return this.plugin.isExcalidrawFile(e)}setView(e){if("active"==e){const e=app.workspace.getActiveViewOfType(ExcalidrawView);if(!(e instanceof ExcalidrawView))return;this.targetView=e}if("first"==e){const e=app.workspace.getLeavesOfType("excalidraw");if(!e||0==e.length)return;this.targetView=e[0].view}return e instanceof ExcalidrawView&&(this.targetView=e),this.targetView}getExcalidrawAPI(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?this.targetView.excalidrawAPI:(errorMessage("targetView not set","getExcalidrawAPI()"),null)}getViewElements(){var e,A,t;if(!this.targetView||!(null===(e=this.targetView)||void 0===e?void 0:e._loaded))return errorMessage("targetView not set","getViewElements()"),[];const n=null===(t=null===(A=this.targetView)||void 0===A?void 0:A.excalidrawRef)||void 0===t?void 0:t.current;return n?null==n?void 0:n.getSceneElements():[]}deleteViewElements(e){var A,t,n;if(!this.targetView||!(null===(A=this.targetView)||void 0===A?void 0:A._loaded))return errorMessage("targetView not set","deleteViewElements()"),!1;const i=null===(n=null===(t=this.targetView)||void 0===t?void 0:t.excalidrawRef)||void 0===n?void 0:n.current;if(!i)return!1;const a=i.getSceneElements(),r=i.getAppState();return this.targetView.updateScene({elements:a.filter((A=>!e.includes(A))),appState:r,commitToHistory:!0}),!0}getViewSelectedElement(){const e=this.getViewSelectedElements();return e?e[0]:null}getViewSelectedElements(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?this.targetView.getViewSelectedElements():(errorMessage("targetView not set","getViewSelectedElements()"),[])}getViewFileForImageElement(e){var A,t,n,i;return this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?e&&"image"===e.type?null===(i=null===(n=null===(t=this.targetView)||void 0===t?void 0:t.excalidrawData)||void 0===n?void 0:n.getFile(e.fileId))||void 0===i?void 0:i.file:(errorMessage("Must provide an image element as input","getViewFileForImageElement()"),null):(errorMessage("targetView not set","getViewFileForImageElement()"),null)}copyViewElementsToEAforEditing(e){e.forEach((e=>{this.elementsDict[e.id]=cloneElement(e)}))}viewToggleFullScreen(e=!1){var A;if(app.isMobile)return void errorMessage("mobile not supported","viewToggleFullScreen()");if(!this.targetView||!(null===(A=this.targetView)||void 0===A?void 0:A._loaded))return void errorMessage("targetView not set","viewToggleFullScreen()");if(e){const e=this.getExcalidrawAPI();this.targetView.updateScene({appState:Object.assign({viewModeEnabled:!0},e.appState),commitToHistory:!1})}const t=this.targetView;t.isFullscreen()?t.exitFullscreen():t.gotoFullscreen()}connectObjectWithViewSelectedElement(e,A,t,n){const i=this.getViewSelectedElement();if(!i)return!1;const a=i.id;return this.elementsDict[a]=i,this.connectObjects(e,A,a,t,n),delete this.elementsDict[a],!0}async addElementsToView(e=!1,A=!0,t=!1){var n;if(!this.targetView||!(null===(n=this.targetView)||void 0===n?void 0:n._loaded))return errorMessage("targetView not set","addElementsToView()"),!1;const i=this.getElements();return await this.targetView.addElements(i,e,A,this.imagesDict,t)}registerThisAsViewEA(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?(this.targetView.setHookServer(this),!0):(errorMessage("targetView not set","addElementsToView()"),!1)}deregisterThisAsViewEA(){var e;return this.targetView&&(null===(e=this.targetView)||void 0===e?void 0:e._loaded)?(this.targetView.setHookServer(this),!0):(errorMessage("targetView not set","addElementsToView()"),!1)}getEmbeddedFilesLoader(e){return new EmbeddedFilesLoader(this.plugin,e)}getExportSettings(e,A){return{withBackground:e,withTheme:A}}getBoundingBox(e){const A=getCommonBoundingBox(e);return{topX:A.minX,topY:A.minY,width:A.maxX-A.minX,height:A.maxY-A.minY}}getMaximumGroups(e){return getMaximumGroups(e)}getLargestElement(e){if(!e||0===e.length)return null;let A=e[0];const t=e=>e.height*e.width;let n=t(e[0]);for(let i=1;in&&(n=a,A=e[i])}return A}getCommonGroupForElements(e){const A=e.map((e=>e.groupIds)).reduce(((e,A)=>A.filter((A=>e.includes(A)))));return A.length>0?A[0]:null}getElementsInTheSameGroupWithElement(e,A){if(!e||!A)return[];const t="text"===e.type&&e.containerId?A.filter((A=>A.id===e.containerId)):[];return 0===e.groupIds.length?1===t.length?[e,t[0]]:[e]:1===t.length?A.filter((A=>A.groupIds.some((A=>e.groupIds.includes(A)))||A===t[0])):A.filter((A=>A.groupIds.some((A=>e.groupIds.includes(A)))))}intersectElementWithLine(e,A,t,n){return intersectElementWithLine(e,A,t,n)}getScriptSettings(){var e;return this.activeScript?null!==(e=this.plugin.settings.scriptEngineSettings[this.activeScript])&&void 0!==e?e:{}:null}async setScriptSettings(e){if(!this.activeScript)return null;this.plugin.settings.scriptEngineSettings[this.activeScript]=e,await this.plugin.saveSettings()}openFileInNewOrAdjacentLeaf(e){if(!(e&&e instanceof obsidian.TFile))return null;if(!this.targetView)return null;const A=getNewOrAdjacentLeaf(this.plugin,this.targetView.leaf);return A.openFile(e,{active:!0}),A}measureText(e){var A,t;const n=_measureText(e,this.style.fontSize,this.style.fontFamily);return{width:null!==(A=n.w)&&void 0!==A?A:0,height:null!==(t=n.h)&&void 0!==t?t:0}}async getOriginalImageSize(e){var A;if(!this.targetView||!(null===(A=this.targetView)||void 0===A?void 0:A._loaded))return errorMessage("targetView not set","getOriginalImageSize()"),null;if(!e||"image"!==e.type)return errorMessage("Please provide a single image element as input","getOriginalImageSize()"),null;const t=this.targetView.excalidrawData.getFile(e.fileId);if(!t)return errorMessage("Please provide a single image element as input","getOriginalImageSize()"),null;const n="dark"===this.getExcalidrawAPI().getAppState().theme,i=t.getImage(n);return await getImageSize(i)}verifyMinimumPluginVersion(e){return PLUGIN_VERSION===e||isVersionNewerThanOther(PLUGIN_VERSION,e)}isExcalidrawView(e){return e instanceof ExcalidrawView}selectElementsInView(e){var A;this.targetView&&(null===(A=this.targetView)||void 0===A?void 0:A._loaded)?e&&0!==e.length&&this.getExcalidrawAPI().selectElements(e):errorMessage("targetView not set","selectElementsInView()")}generateElementId(){return nanoid()}cloneElement(e){const A=JSON.parse(JSON.stringify(e));return A.id=nanoid(),A}moveViewElementToZIndex(e,A){var t;if(!this.targetView||!(null===(t=this.targetView)||void 0===t?void 0:t._loaded))return void errorMessage("targetView not set","moveViewElementToZIndex()");const n=this.getExcalidrawAPI(),i=this.getViewElements(),a=i.filter((A=>A.id===e));if(0===a.length)return void errorMessage(`Element (id: ${e}) not found`,"moveViewElementToZIndex");if(A>=i.length)return void n.bringToFront(a);if(A<0)return void n.sendToBack(a);const r=i.indexOf(a[0]);i.splice(A,0,i.splice(r,1)[0]),this.targetView.updateScene({elements:i,commitToHistory:!0})}hexStringToRgb(e){const A=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return[parseInt(A[1],16),parseInt(A[2],16),parseInt(A[3],16)]}rgbToHexString(e){return O$1({r:e[0],g:e[1],b:e[2]}).stringHEX({alpha:!1})}hslToRgb(e){const A=O$1({h:e[0],s:e[1],l:e[2]});return[A.red,A.green,A.blue]}rgbToHsl(e){const A=O$1({r:e[0],g:e[1],b:e[2]});return[A.hue,A.saturation,A.lightness]}colorNameToHex(e){return COLOR_NAMES.has(e.toLowerCase().trim())?COLOR_NAMES.get(e.toLowerCase().trim()):e.trim()}getCM(e){if(e)return"string"==typeof e&&(e=this.colorNameToHex(e)),O$1(e);log("Creates a CM object. Visit https://github.com/lbragile/ColorMaster for documentation.")}importSVG(e){const A=svgToExcalidraw(e);return A.hasErrors?(new obsidian.Notice(`There were errors while parsing the given SVG:\n${[...A.errors].map((e=>e.innerHTML))}`),!1):(this.copyViewElementsToEAforEditing(A.content),!0)}}async function initExcalidrawAutomate(e){await initFonts();const A=new ExcalidrawAutomate(e);return window.ExcalidrawAutomate=A,A}function destroyExcalidrawAutomate(){delete window.ExcalidrawAutomate}function normalizeLinePoints(e){const A=[],[t,n]=e[0];for(let i=0;i-1||A.search("excalidraw-plugin: locked\n")>-1;await a.loadData(A,l,o?TextMode.parsed:TextMode.raw);let d=A.search("# Text Elements\n");-1==d&&(d=A.search("# Drawing\n"));let h=a.scene;t&&await n.loadSceneFiles(a,(e=>{if(e&&0!==e.length){for(const A of e)A.hasSVGwithBitmap&&(c=!0),a.scene.files[A.id]={mimeType:A.mimeType,id:A.id,dataURL:A.dataURL,created:A.created};h=scaleLoadedImage(a.scene,e).scene}}),i);let u=h.elements;if(s.hasGroupref){const A=s.hasSectionref?getTextElementsMatchingQuery(h.elements,["# "+s.sectionref],!0):h.elements.filter((e=>e.id===s.blockref));A.length>0&&(u=e.ea.getElementsInTheSameGroupWithElement(A[0],h.elements))}return{elements:u,appState:h.appState,frontmatter:A.substring(0,d),files:h.files,hasSVGwithBitmap:c}}return{elements:[],appState:{},frontmatter:null,files:[],hasSVGwithBitmap:c}}async function createPNG(e,A=1,t,n,i,a,r,s=[],o,l,c){var d,h,u,g,p,w,m,f;n||(n=new EmbeddedFilesLoader(o)),c=null!=c?c:o.settings.exportPaddingSVG;const B=e?await getTemplate(o,e,!0,n,l):null;let E=null!==(d=null==B?void 0:B.elements)&&void 0!==d?d:[];return E=E.concat(s),await getPNG({type:"excalidraw",version:2,source:"https://excalidraw.com",elements:E,appState:{theme:null!==(u=null!=i?i:null===(h=null==B?void 0:B.appState)||void 0===h?void 0:h.theme)&&void 0!==u?u:a,viewBackgroundColor:null!==(p=null===(g=null==B?void 0:B.appState)||void 0===g?void 0:g.viewBackgroundColor)&&void 0!==p?p:r},files:null!==(w=null==B?void 0:B.files)&&void 0!==w?w:{}},{withBackground:null!==(m=null==t?void 0:t.withBackground)&&void 0!==m?m:o.settings.exportWithBackground,withTheme:null!==(f=null==t?void 0:t.withTheme)&&void 0!==f?f:o.settings.exportWithTheme},c,A)}async function createSVG(e,A=!1,t,n,i,a,r,s=[],o,l,c){var d,h,u,g,p,w,m,f;n||(n=new EmbeddedFilesLoader(o));const B=e?await getTemplate(o,e,!0,n,l):null;let E=null!==(d=null==B?void 0:B.elements)&&void 0!==d?d:[];E=E.concat(s),c=null!=c?c:o.settings.exportPaddingSVG;const b=await getSVG({type:"excalidraw",version:2,source:"https://excalidraw.com",elements:E,appState:{theme:null!==(u=null!=i?i:null===(h=null==B?void 0:B.appState)||void 0===h?void 0:h.theme)&&void 0!==u?u:a,viewBackgroundColor:null!==(p=null===(g=null==B?void 0:B.appState)||void 0===g?void 0:g.viewBackgroundColor)&&void 0!==p?p:r},files:null!==(w=null==B?void 0:B.files)&&void 0!==w?w:{}},{withBackground:null!==(m=null==t?void 0:t.withBackground)&&void 0!==m?m:o.settings.exportWithBackground,withTheme:null!==(f=null==t?void 0:t.withTheme)&&void 0!==f?f:o.settings.exportWithTheme},c),C=getEmbeddedFilenameParts(e);if(!C.hasGroupref&&(C.hasBlockref||C.hasSectionref)){let e=C.hasSectionref?getTextElementsMatchingQuery(E,["# "+C.sectionref],!0):E.filter((e=>e.id===C.blockref));if(e.length>0){const A=e[0].containerId;A&&(e=e.concat(E.filter((e=>e.id===A))));const t=o.ea.getBoundingBox(e),n=o.ea.getBoundingBox(E);b.viewBox.baseVal.x=t.topX-n.topX,b.viewBox.baseVal.y=t.topY-n.topY,b.viewBox.baseVal.width=t.width+2*c,b.viewBox.baseVal.height=t.height+2*c}}return(null==B?void 0:B.hasSVGwithBitmap)&&b.setAttribute("hasbitmap","true"),A?embedFontsInSVG(b,o):b}function estimateLineBound(e){let A=1/0,t=1/0,n=-1/0,i=-1/0;for(const[a,r]of e)A=Math.min(A,a),t=Math.min(t,r),n=Math.max(n,a),i=Math.max(i,r);return[A,t,n,i]}function estimateBounds(e){const A=getCommonBoundingBox(e);return[A.minX,A.minY,A.maxX,A.maxY]}function repositionElementsToCursor(e,A,t=!1){const[n,i,a,r]=estimateBounds(e);let[s,o]=[0,0];return[s,o]=t?[A.x-(n+a)/2,A.y-(i+r)/2]:[A.x-n,A.y-i],e.forEach((e=>{e.x=e.x+s,e.y=e.y+o})),e}function errorMessage(e,A){switch(e){case"targetView not set":errorlog({where:"ExcalidrawAutomate",source:A,message:"targetView not set, or no longer active. Use setView before calling this function"});break;case"mobile not supported":errorlog({where:"ExcalidrawAutomate",source:A,message:"this function is not avalable on Obsidian Mobile"});break;default:errorlog({where:"ExcalidrawAutomate",source:A,message:"unknown error"})}}const insertLaTeXToView=e=>{const A=e.plugin.app,t=e.plugin.ea;new Prompt(A,t$d("ENTER_LATEX"),"","\\color{red}\\oint_S {E_n dA = \\frac{1}{{\\varepsilon _0 }}} Q_{inside}").openAndGetValue((async A=>{A&&(t.reset(),await t.addLaTex(0,0,A),t.setView(e),t.addElementsToView(!0,!1,!0))}))},search=async e=>{const A=e.plugin.ea;A.reset(),A.setView(e);const t=A.getViewElements().filter((e=>"text"===e.type));if(0===t.length)return;let n=await ScriptEngine.inputPrompt(e.plugin.app,"Search for","use quotation marks for exact match","");if(!n)return;const i=n.matchAll(/"(.*?)"/g);let a,r=[];for(;!(a=i.next()).done;)r.push(a.value[1]);n=n.replaceAll(/"(.*?)"/g,""),r=r.concat(n.split(" ").filter((e=>0!==e.length))),A.targetView.selectElementsMatchingQuery(t,r)},getTextElementsMatchingQuery=(e,A,t=!1)=>e&&0!==e.length&&A&&0!==A.length?e.filter((e=>"text"===e.type&&A.some((A=>{if(t){const t=e.rawText.toLowerCase().split("\n")[0].trim().match(/^#*(# .*)/);return!(!t||2!==t.length)&&t[1]===A.toLowerCase()}return e.rawText.toLowerCase().replaceAll("\n"," ").trim().match(A.toLowerCase())})))):[],cloneElement=e=>Object.assign(Object.assign({},e),{version:e.version+1,updated:Date.now(),versionNonce:Math.floor(1e9*Math.random())}),URL$1="https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/index-new.md";class ScriptInstallPrompt extends obsidian.Modal{constructor(e){super(e.app),this.plugin=e}async onOpen(){this.contentEl.classList.add("excalidraw-scriptengine-install"),this.containerEl.classList.add("excalidraw-scriptengine-install");try{const e=await obsidian.request({url:URL$1});if(!e)return new obsidian.Notice("Error opening the Excalidraw Script Store page. Please double check that you can access the website. I've logged the link in developer console (press CTRL+SHIFT+i)",5e3),log(URL$1),void this.close();await obsidian.MarkdownRenderer.renderMarkdown(e,this.contentEl,"",this.plugin),this.contentEl.querySelectorAll("h1[data-heading],h2[data-heading],h3[data-heading]").forEach((e=>{e.setAttribute("id",e.getAttribute("data-heading"))})),this.contentEl.querySelectorAll("a.internal-link").forEach((e=>{e.removeAttribute("target")}))}catch(e){errorlog({where:"ScriptInstallPrompt.onOpen",error:e}),new obsidian.Notice("Could not open ScriptEngine repository"),this.close()}}onClose(){this.contentEl.empty()}}function toVal(e){var A,t,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e))for(A=0;AReact__namespace.createElement("label",{className:clsx("ToolIcon ToolIcon_type_floating","ToolIcon_size_medium",{"is-mobile":e}),onClick:()=>{this.toolsRef.current.setTheme(A.theme),this.toolsRef.current.toggleVisibility(A.zenModeEnabled||e)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-hidden":"true"},React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 166 267"},React__namespace.createElement("path",{fill:"transparent",d:"M0 0h165.742v267.245H0z"}),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#bd7efc",strokeWidth:"0",d:"M55.5 96.49 39.92 57.05 111.28 10l4.58 36.54L55.5 95.65"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M55.5 96.49c-5.79-14.66-11.59-29.33-15.58-39.44M55.5 96.49c-3.79-9.59-7.58-19.18-15.58-39.44m0 0C60.13 43.72 80.34 30.4 111.28 10M39.92 57.05C60.82 43.27 81.73 29.49 111.28 10m0 0c.97 7.72 1.94 15.45 4.58 36.54M111.28 10c1.14 9.12 2.29 18.24 4.58 36.54m0 0C95.41 63.18 74.96 79.82 55.5 95.65m60.36-49.11C102.78 57.18 89.71 67.82 55.5 95.65m0 0v.84m0-.84v.84"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#e2c4ff",strokeWidth:"0",d:"m111.234 10.06 44.51 42.07-40.66-5.08-3.85-36.99"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M111.234 10.06c11.83 11.18 23.65 22.36 44.51 42.07m-44.51-42.07 44.51 42.07m0 0c-13.07-1.63-26.13-3.27-40.66-5.08m40.66 5.08c-11.33-1.41-22.67-2.83-40.66-5.08m0 0c-1.17-11.29-2.35-22.58-3.85-36.99m3.85 36.99c-1.47-14.17-2.95-28.33-3.85-36.99m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#2f005e",strokeWidth:"0",d:"m10 127.778 45.77-32.99-15.57-38.08-30.2 71.07"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M10 127.778c16.85-12.14 33.7-24.29 45.77-32.99M10 127.778c16.59-11.95 33.17-23.91 45.77-32.99m0 0c-6.14-15.02-12.29-30.05-15.57-38.08m15.57 38.08c-4.08-9.98-8.16-19.96-15.57-38.08m0 0c-11.16 26.27-22.33 52.54-30.2 71.07m30.2-71.07c-10.12 23.81-20.23 47.61-30.2 71.07m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#410380",strokeWidth:"0",d:"m40.208 235.61 15.76-140.4-45.92 32.92 30.16 107.48"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M40.208 235.61c3.7-33.01 7.41-66.02 15.76-140.4m-15.76 140.4c3.38-30.16 6.77-60.32 15.76-140.4m0 0c-10.83 7.76-21.66 15.53-45.92 32.92m45.92-32.92c-11.69 8.38-23.37 16.75-45.92 32.92m0 0c6.84 24.4 13.69 48.8 30.16 107.48m-30.16-107.48c6.67 23.77 13.33 47.53 30.16 107.48m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#943feb",strokeWidth:"0",d:"m111.234 240.434-12.47 16.67-42.36-161.87 58.81-48.3 40.46 5.25-44.44 188.25"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M111.234 240.434c-3.79 5.06-7.57 10.12-12.47 16.67m12.47-16.67c-4.43 5.93-8.87 11.85-12.47 16.67m0 0c-16.8-64.17-33.59-128.35-42.36-161.87m42.36 161.87c-9.74-37.2-19.47-74.41-42.36-161.87m0 0c15.03-12.35 30.07-24.7 58.81-48.3m-58.81 48.3c22.49-18.47 44.97-36.94 58.81-48.3m0 0c9.48 1.23 18.95 2.46 40.46 5.25m-40.46-5.25c13.01 1.69 26.02 3.38 40.46 5.25m0 0c-10.95 46.41-21.91 92.82-44.44 188.25m44.44-188.25c-12.2 51.71-24.41 103.42-44.44 188.25m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{fill:"#6212b3",strokeWidth:"0",d:"m40.379 235.667 15.9-140.21 42.43 161.79-58.33-21.58"}),React__namespace.createElement("path",{fill:"none",stroke:"#410380",strokeWidth:".5",d:"M40.379 235.667c4.83-42.62 9.67-85.25 15.9-140.21m-15.9 140.21c5.84-51.52 11.69-103.03 15.9-140.21m0 0c10.98 41.87 21.96 83.74 42.43 161.79m-42.43-161.79c13.28 50.63 26.56 101.25 42.43 161.79m0 0c-11.8-4.37-23.6-8.74-58.33-21.58m58.33 21.58c-21.73-8.04-43.47-16.08-58.33-21.58m0 0s0 0 0 0m0 0s0 0 0 0"}))))),this.plugin=e,this.toolsRef=A}}class ActionButton extends React__namespace.Component{constructor(e){super(e),this.toastMessageTimeout=0,this.state={visible:!0}}render(){return React__namespace.createElement("button",{style:{},className:"ToolIcon_type_button ToolIcon_size_small ToolIcon_type_button--show ToolIcon",title:this.props.title,onClick:e=>{this.toastMessageTimeout&&(window.clearTimeout(this.toastMessageTimeout),this.toastMessageTimeout=0),this.props.action(e)},onPointerDown:()=>{this.toastMessageTimeout=window.setTimeout((()=>{var e;return null===(e=this.props.view.excalidrawAPI)||void 0===e?void 0:e.setToast({message:this.props.title})}),300)}},React__namespace.createElement("div",{className:"ToolIcon__icon","aria-hidden":"true"},this.props.icon))}}const ICONS={exportLibrary:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 200 190",fill:"var(--icon-fill-color)"},React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M50 10h20v20H50"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M50 10h20m-20 0h20m0 0v20m0-20v20m0 0H50m20 0H50m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M90 10h20v20H90"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M90 10h20m-20 0h20m0 0v20m0-20v20m0 0H90m20 0H90m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M130 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M130 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M170 10h20v20h-20"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M170 10h20m-20 0h20m0 0v20m0-20v20m0 0h-20m20 0h-20m0 0V10m0 20V10"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M70 50h60v80h20l-50 50-50-50h20V50"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M70 50h60m-60 0h60m0 0v80m0-80v80m0 0h20m-20 0h20m0 0-50 50m50-50-50 50m0 0-50-50m50 50-50-50m0 0h20m-20 0h20m0 0V50m0 80V50m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("g",{fillRule:"evenodd"},React__namespace.createElement("path",{strokeWidth:"0",d:"M10 10h20v20H10"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M10 10h20m-20 0h20m0 0v20m0-20v20m0 0H10m20 0H10m0 0V10m0 20V10"}))),insertImage:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"})),insertMD:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"})),insertLaTeX:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",stroke:"none",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"})),insertLink:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"none",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"})),exportSVG:React__namespace.createElement("svg",{viewBox:"0 0 28 28",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"1"},React__namespace.createElement("text",{style:{fontSize:"28px",fontWeight:"bold"},x:"4",y:"24"},"S")),exportPNG:React__namespace.createElement("svg",{viewBox:"0 0 28 28",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"1"},React__namespace.createElement("text",{style:{fontSize:"28px",fontWeight:"bold"},x:"4",y:"24"},"P")),exportExcalidraw:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",stroke:"var(--icon-fill-color)",strokeWidth:"2"},React__namespace.createElement("g",{transform:"translate(30,5)"},React__namespace.createElement("path",{d:"M14.45 1.715c-2.723 2.148-6.915 5.797-10.223 8.93l-2.61 2.445.477 3.207c.258 1.75.738 5.176 1.031 7.582.332 2.406.66 4.668.773 4.996.145.438 0 .656-.406.656-.699 0-.734-.183 1.176 5.832.7 2.297 1.363 4.414 1.434 4.633.074.254.367.363.699.254.332-.145.515-.438.406-.691-.113-.293.074-.586.367-.696.403-.144.367-.437-.258-1.492-.992-1.64-3.53-15.64-3.675-20.164-.11-3.207-.11-3.242 1.25-5.066 1.324-1.786 4.375-4.485 9.078-7.91 1.324-.985 2.648-2.079 3.015-2.446.551-.656.809-.472 5.442 4.414 2.683 2.805 5.664 5.688 6.617 6.414l1.766 1.313-1.36 2.844c-.734 1.53-3.715 7.437-6.656 13.054-6.137 11.813-4.887 10.68-12.02 10.79l-4.632.038-1.547 1.75c-1.617 1.86-1.836 2.551-1.063 3.72.293.398.512 1.054.512 1.456 0 .656.258.766 1.73.84.918.035 1.762.145 1.875.254.11.11.258 2.371.368 5.031l.144 4.813-2.46 5.25C1.616 72.516 0 76.527 0 77.84c0 .691.148 1.273.293 1.273.367 0 .367-.035 15.332-30.988 6.95-14.363 13.531-27.89 14.633-30.113 1.101-2.227 2.094-4.266 2.168-4.559.074-.328-2.461-2.844-6.508-6.379C22.281 3.864 19.082.95 18.785.621c-.844-1.023-2.094-.695-4.336 1.094zM15.7 43.64c-1.692 3.246-1.766 3.28-6.4 3.5-4.081.218-4.152.183-4.152-.582 0-.438-.148-1.024-.332-1.313-.222-.328-.074-.914.442-1.715l.808-1.238h3.676c2.024-.04 4.34-.184 5.149-.328.808-.149 1.507-.219 1.578-.184.074.035-.293.875-.77 1.86zm-3.09 5.832c-.294.765-1.067 2.37-1.692 3.574-1.027 2.043-1.137 2.113-1.395 1.277-.148-.511-.257-2.008-.296-3.355-.036-2.66-.11-2.625 2.98-2.809l.992-.035zm0 0"}),React__namespace.createElement("path",{d:"M15.55 10.39c-.66.473-.843.95-.843 2.153 0 1.422.11 1.64 1.102 2.039.992.402 1.25.367 2.39-.398 1.508-1.024 1.543-1.278.442-2.918-.957-1.422-1.914-1.676-3.09-.875zm2.098 1.313c.586 1.02.22 1.785-.882 1.785-.993 0-1.434-.984-.883-1.968.441-.801 1.285-.727 1.765.183zm0 0M38.602 18.594c0 .183-.22.363-.477.363-.219 0-.844 1.023-1.324 2.262-1.469 3.793-16.176 32.629-16.211 31.718 0-.472-.223-.8-.59-.8-.516 0-.59.289-.367 1.71.219 1.641.074 2.008-5.149 12.071-2.941 5.723-6.101 11.703-7.02 13.305-.956 1.68-1.69 3.5-1.765 4.265-.11 1.313.035 1.496 3.235 4.23 1.84 1.606 4.191 3.61 5.222 4.52 4.63 4.196 6.801 5.871 7.387 5.762.883-.145 14.523-14.328 14.559-15.129 0-.367-.66-5.906-1.47-12.324-1.398-10.938-2.722-23.734-2.573-24.973.109-.765-.442-4.633-.844-6.308-.332-1.313-.184-1.86 2.46-7.84 1.544-3.535 3.567-7.875 4.45-9.625.844-1.75 1.582-3.281 1.582-3.39 0-.11-.258-.18-.55-.18-.298 0-.555.144-.555.363zm-8.454 27.234c.403 2.55 1.211 8.676 1.801 13.598 1.14 9.043 2.461 19.07 2.832 21.62.219 1.278.07 1.532-2.316 4.157-4.156 4.629-8.567 9.188-10.074 10.356l-1.399 1.093-7.168-6.636c-6.617-6.051-7.168-6.672-6.765-7.403.222-.398 2.097-3.789 4.156-7.508 2.058-3.718 4.777-8.68 6.027-11.011 1.29-2.371 2.465-4.41 2.684-4.52.258-.148.332 3.535.258 11.375-.149 11.703-.11 11.739 1.066 11.485.148 0 .258-5.907.258-13.09V56.293l3.86-7.656c2.132-4.23 3.898-7.621 3.972-7.586.07.039.441 2.187.808 4.777zm0 0"}))),search:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M500.3 443.7l-119.7-119.7c27.22-40.41 40.65-90.9 33.46-144.7C401.8 87.79 326.8 13.32 235.2 1.723C99.01-15.51-15.51 99.01 1.724 235.2c11.6 91.64 86.08 166.7 177.6 178.9c53.8 7.189 104.3-6.236 144.7-33.46l119.7 119.7c15.62 15.62 40.95 15.62 56.57 0C515.9 484.7 515.9 459.3 500.3 443.7zM79.1 208c0-70.58 57.42-128 128-128s128 57.42 128 128c0 70.58-57.42 128-128 128S79.1 278.6 79.1 208z"})),switchToMarkdown:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",stroke:"var(--icon-fill-color)",strokeWidth:"10",fill:"var(--icon-fill-color)"},React__namespace.createElement("path",{d:"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z"})),gotoFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M128 32H32C14.31 32 0 46.31 0 64v96c0 17.69 14.31 32 32 32s32-14.31 32-32V96h64c17.69 0 32-14.31 32-32S145.7 32 128 32zM416 32h-96c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32V64C448 46.31 433.7 32 416 32zM128 416H64v-64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96c0 17.69 14.31 32 32 32h96c17.69 0 32-14.31 32-32S145.7 416 128 416zM416 320c-17.69 0-32 14.31-32 32v64h-64c-17.69 0-32 14.31-32 32s14.31 32 32 32h96c17.69 0 32-14.31 32-32v-96C448 334.3 433.7 320 416 320z"})),exitFullScreen:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M128 320H32c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32v-96C160 334.3 145.7 320 128 320zM416 320h-96c-17.69 0-32 14.31-32 32v96c0 17.69 14.31 32 32 32s32-14.31 32-32v-64h64c17.69 0 32-14.31 32-32S433.7 320 416 320zM320 192h96c17.69 0 32-14.31 32-32s-14.31-32-32-32h-64V64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96C288 177.7 302.3 192 320 192zM128 32C110.3 32 96 46.31 96 64v64H32C14.31 128 0 142.3 0 160s14.31 32 32 32h96c17.69 0 32-14.31 32-32V64C160 46.31 145.7 32 128 32z"})),releaseNotes:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M0 219.2v212.5c0 14.25 11.62 26.25 26.5 27C75.32 461.2 180.2 471.3 240 511.9V245.2C181.4 205.5 79.99 194.8 29.84 192C13.59 191.1 0 203.6 0 219.2zM482.2 192c-50.09 2.848-151.3 13.47-209.1 53.09C272.1 245.2 272 245.3 272 245.5v266.5c60.04-40.39 164.7-50.76 213.5-53.28C500.4 457.9 512 445.9 512 431.7V219.2C512 203.6 498.4 191.1 482.2 192zM352 96c0-53-43-96-96-96S160 43 160 96s43 96 96 96S352 149 352 96z"})),rawMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 60"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"4",d:"M20 10H10m10 0H10m0 0v40m0-40v40m0 0h10m-10 0h10M40 10H30m10 0H30m0 0v40m0-40v40m0 0h10m-10 0h10M60 10h10m-10 0h10m0 0v40m0-40v40m0 0H60m10 0H60M80 10h10m-10 0h10m0 0v40m0-40v40m0 0H80m10 0H80"})),parsedMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",stroke:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M574.1 280.4l-45.38-181.8c-5.875-23.63-21.62-44-43-55.75c-21.5-11.75-46.1-14.13-70.25-6.375l-15.25 5.125c-8.375 2.75-12.87 11.88-10 20.25l5 15.13c2.75 8.375 11.88 12.88 20.25 10.13l13.12-4.375c10.88-3.625 23-3.625 33.25 1.75c10.25 5.375 17.5 14.5 20.38 25.75l38.38 153.9c-22.12-6.875-49.75-12.5-81.13-12.5c-34.88 0-73.1 7-114.9 26.75H251.4C210.5 258.6 171.4 251.6 136.5 251.6c-31.38 0-59 5.625-81.12 12.5l38.38-153.9c2.875-11.25 10.12-20.38 20.5-25.75C124.4 79.12 136.5 79.12 147.4 82.74l13.12 4.375c8.375 2.75 17.5-1.75 20.25-10.13l5-15.13C188.6 53.49 184.1 44.37 175.6 41.62l-15.25-5.125c-23.13-7.75-48.75-5.375-70.13 6.375c-21.37 11.75-37.12 32.13-43 55.75L1.875 280.4C.6251 285.4 .0001 290.6 .0001 295.9v70.25C.0001 428.1 51.63 480 115.3 480h37.13c60.25 0 110.4-46 114.9-105.4l2.875-38.63h35.75l2.875 38.63C313.3 433.1 363.4 480 423.6 480h37.13c63.62 0 115.2-51 115.2-113.9V295.9C576 290.6 575.4 285.5 574.1 280.4zM203.4 369.7c-2 26-24.38 46.25-51 46.25H115.2C87 415.1 64 393.6 64 366.1v-37.5c18.12-6.5 43.38-13 72.62-13c23.88 0 47.25 4.375 69.88 13L203.4 369.7zM512 366.1c0 27.5-23 49.88-51.25 49.88h-37.13c-26.62 0-49-20.25-51-46.25l-3.125-41.13c22.62-8.625 46.13-13 70-13c29 0 54.38 6.5 72.5 13V366.1z"})),convertFile:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",viewBox:"0 110 700 340",xmlns:"http://www.w3.org/2000/svg",stroke:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"m593.95 239.4v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4688-1.457-3.1875-2.6445-5.0742-3.5h-1.5742c-1.4727-0.49219-3.0039-0.78516-4.5508-0.875h-124.25c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v87.5h-70v-105.88-1.0508c-0.089844-1.5469-0.38281-3.0781-0.875-4.5508v-1.5742c-0.85547-1.8828-2.043-3.6016-3.5-5.0742l-52.5-52.5c-1.4727-1.457-3.1914-2.6445-5.0742-3.5h-1.5742c-1.7031-0.875-3.5352-1.4688-5.4258-1.75h-123.55c-4.6406 0-9.0938 1.8438-12.375 5.125s-5.125 7.7344-5.125 12.375v245c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-52.5h70v122.5c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h175c4.6406 0 9.0938-1.8438 12.375-5.125s5.125-7.7344 5.125-12.375v-192.5-1.0508c-0.14453-1.5547-0.5-3.0859-1.0508-4.5508zm-313.95 110.6h-140v-210h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v87.5h-52.5c-6.2539 0-12.031 3.3359-15.156 8.75s-3.125 12.086 0 17.5 8.9023 8.75 15.156 8.75h52.5zm140 70v-105h27.824l-5.0742 5.0742c-3.7031 3.1719-5.9141 7.7461-6.1055 12.617-0.1875 4.8711 1.668 9.6016 5.1133 13.051 3.4492 3.4453 8.1797 5.3008 13.051 5.1133 4.8711-0.19141 9.4453-2.4023 12.617-6.1055l35-35c3.2578-3.2773 5.0898-7.7148 5.0898-12.336 0-4.625-1.832-9.0586-5.0898-12.34l-35-35c-4.5078-3.8555-10.66-5.1719-16.348-3.4883-5.6875 1.6797-10.137 6.1289-11.816 11.816-1.6836 5.6914-0.37109 11.844 3.4883 16.348l5.0742 5.0742h-27.824v-69.824h87.5v35c0 4.6406 1.8438 9.0938 5.125 12.375s7.7344 5.125 12.375 5.125h35v157.5z"})),cog:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:"var(--icon-fill-color)",stroke:"none"},React__namespace.createElement("path",{d:"M495.9 166.6C499.2 175.2 496.4 184.9 489.6 191.2L446.3 230.6C447.4 238.9 448 247.4 448 256C448 264.6 447.4 273.1 446.3 281.4L489.6 320.8C496.4 327.1 499.2 336.8 495.9 345.4C491.5 357.3 486.2 368.8 480.2 379.7L475.5 387.8C468.9 398.8 461.5 409.2 453.4 419.1C447.4 426.2 437.7 428.7 428.9 425.9L373.2 408.1C359.8 418.4 344.1 427 329.2 433.6L316.7 490.7C314.7 499.7 307.7 506.1 298.5 508.5C284.7 510.8 270.5 512 255.1 512C241.5 512 227.3 510.8 213.5 508.5C204.3 506.1 197.3 499.7 195.3 490.7L182.8 433.6C167 427 152.2 418.4 138.8 408.1L83.14 425.9C74.3 428.7 64.55 426.2 58.63 419.1C50.52 409.2 43.12 398.8 36.52 387.8L31.84 379.7C25.77 368.8 20.49 357.3 16.06 345.4C12.82 336.8 15.55 327.1 22.41 320.8L65.67 281.4C64.57 273.1 64 264.6 64 256C64 247.4 64.57 238.9 65.67 230.6L22.41 191.2C15.55 184.9 12.82 175.3 16.06 166.6C20.49 154.7 25.78 143.2 31.84 132.3L36.51 124.2C43.12 113.2 50.52 102.8 58.63 92.95C64.55 85.8 74.3 83.32 83.14 86.14L138.8 103.9C152.2 93.56 167 84.96 182.8 78.43L195.3 21.33C197.3 12.25 204.3 5.04 213.5 3.51C227.3 1.201 241.5 0 256 0C270.5 0 284.7 1.201 298.5 3.51C307.7 5.04 314.7 12.25 316.7 21.33L329.2 78.43C344.1 84.96 359.8 93.56 373.2 103.9L428.9 86.14C437.7 83.32 447.4 85.8 453.4 92.95C461.5 102.8 468.9 113.2 475.5 124.2L480.2 132.3C486.2 143.2 491.5 154.7 495.9 166.6V166.6zM256 336C300.2 336 336 300.2 336 255.1C336 211.8 300.2 175.1 256 175.1C211.8 175.1 176 211.8 176 255.1C176 300.2 211.8 336 256 336z"})),trayMode:React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",stroke:"var(--icon-fill-color)",fill:"var(--icon-fill-color)",strokeWidth:"20"},React__namespace.createElement("path",{d:"M618.1 97.67c-13.02-4.375-27.45 .1562-35.72 11.16L464 266.7l-118.4-157.8c-8.266-11.03-22.64-15.56-35.72-11.16C296.8 102 288 114.2 288 128v256c0 17.69 14.33 32 32 32s32-14.31 32-32v-160l86.41 115.2c12.06 16.12 39.13 16.12 51.19 0L576 224v160c0 17.69 14.33 32 32 32s32-14.31 32-32v-256C640 114.2 631.2 102 618.1 97.67zM224 96.01H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h64v223.1c0 17.69 14.33 31.99 32 31.99s32-14.3 32-31.99V160h64c17.67 0 32-14.31 32-32S241.7 96.01 224 96.01z"})),copyElementLink:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 260 260","aria-hidden":"true",focusable:"false",role:"img"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"8",d:"M10 10h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0V10m0 40V10M210 10h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0V10m0 40V10M210 210h40m-40 0h40m0 0v40m0-40v40m0 0h-40m40 0h-40m0 0v-40m0 40v-40M10 210h40m-40 0h40m0 0v40m0-40v40m0 0H10m40 0H10m0 0v-40m0 40v-40M30 210V50m0 160V50M50 30h160M50 30h160M230 50v160m0-160v160M50 230h160m-160 0h160"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M110 90c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10m0-80c-6.67 1.67-30 3.11-40 10-10 6.89-20 21.37-20 31.37S60 153.56 70 160c10 6.44 33.33 8.33 40 10M150 90c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10m0-80c6.67 1.67 30 3.11 40 10 10 6.89 20 21.37 20 31.37s-10 22.19-20 28.63c-10 6.44-33.33 8.33-40 10"}),React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",fill:"none",strokeLinecap:"round",strokeWidth:"16",d:"M89.868 130.198c13.36-.03 66.78-.17 80.13-.2m-80.13.2c13.36-.03 66.78-.17 80.13-.2"})),importSVG:React__namespace.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 526 526"},React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"var(--input-bg-color)",strokeWidth:"0",d:"m133.462 71 .33-6.54.97-6.34 1.58-6.13 2.16-5.88 2.69-5.6 3.21-5.27 3.69-4.93 4.13-4.55 4.55-4.13 4.93-3.69 5.27-3.21 5.6-2.69 5.88-2.16 6.13-1.58 6.34-.97 6.54-.33h160v128l.16 3.28.49 3.18.79 3.07 1.07 2.94 1.35 2.8 1.6 2.63 1.84 2.47 2.06 2.27 2.27 2.06 2.47 1.84 2.63 1.6 2.8 1.35 2.94 1.07 3.07.79 3.18.49 3.28.16h128v288l-.33 6.54-.97 6.34-1.58 6.13-2.16 5.88-2.69 5.6-3.21 5.27-3.69 4.93-4.13 4.55-4.55 4.13-4.93 3.69-5.27 3.21-5.6 2.69-5.88 2.16-6.13 1.58-6.34.97-6.54.33h-256l-6.54-.33-6.34-.97-6.13-1.58-5.88-2.16-5.6-2.69-5.27-3.21-4.93-3.69-4.55-4.13-4.13-4.55-3.69-4.93-3.21-5.27-2.69-5.6-2.16-5.88-1.58-6.13-.97-6.34-.33-6.54V343h174.1l-39 39-1.65 1.83-1.43 1.94-1.22 2.05-.99 2.13-.77 2.2-.55 2.25-.33 2.29-.11 2.3.11 2.3.33 2.28.55 2.24.77 2.19.99 2.12 1.22 2.04 1.43 1.93 1.65 1.81 1.83 1.64 1.94 1.42 2.05 1.2 2.13.99 2.2.76 2.25.56 2.29.33 2.3.11 2.3-.1 2.28-.33 2.24-.54 2.19-.77 2.12-.98 2.04-1.21 1.93-1.43 1.81-1.65 80-80 1.65-1.83 1.43-1.94 1.22-2.05.99-2.13.77-2.2.55-2.25.33-2.29.11-2.3-.11-2.3-.33-2.28-.55-2.24-.77-2.19-.99-2.12-1.22-2.04-1.43-1.93-1.65-1.81-80-80-1.83-1.65-1.94-1.43-2.05-1.22-2.13-.99-2.2-.77-2.25-.55-2.29-.33-2.3-.11-2.3.11-2.28.33-2.24.55-2.19.77-2.12.99-2.04 1.22-1.93 1.43-1.81 1.65-1.64 1.83-1.42 1.94-1.2 2.05-.99 2.13-.76 2.2-.56 2.25-.33 2.29-.11 2.3.1 2.3.33 2.28.54 2.24.77 2.19.98 2.12 1.21 2.04 1.43 1.93 1.65 1.81 39 39h-174.1V71"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"18",d:"M133.462 71s0 0 0 0m0 0s0 0 0 0m0 0 .33-6.54m-.33 6.54c.13-2.57.26-5.13.33-6.54m0 0c.36-2.33.72-4.67.97-6.34m-.97 6.34c.35-2.26.69-4.53.97-6.34m0 0c.51-1.99 1.03-3.98 1.58-6.13m-1.58 6.13c.4-1.56.81-3.12 1.58-6.13m0 0c.81-2.22 1.62-4.43 2.16-5.88m-2.16 5.88c.45-1.22.9-2.44 2.16-5.88m0 0c.72-1.51 1.45-3.01 2.69-5.6m-2.69 5.6c.69-1.45 1.39-2.9 2.69-5.6m0 0c.93-1.52 1.86-3.05 3.21-5.27m-3.21 5.27c.97-1.59 1.94-3.18 3.21-5.27m0 0c.86-1.15 1.71-2.29 3.69-4.93m-3.69 4.93c.78-1.04 1.56-2.08 3.69-4.93m0 0c1.53-1.69 3.07-3.38 4.13-4.55m-4.13 4.55c1.54-1.69 3.07-3.38 4.13-4.55m0 0c1.03-.93 2.06-1.87 4.55-4.13m-4.55 4.13c.98-.89 1.97-1.78 4.55-4.13m0 0c1.64-1.23 3.28-2.46 4.93-3.69m-4.93 3.69c1.72-1.29 3.45-2.58 4.93-3.69m0 0c1.11-.68 2.23-1.35 5.27-3.21m-5.27 3.21c1.5-.91 3.01-1.83 5.27-3.21m0 0c1.87-.89 3.73-1.79 5.6-2.69m-5.6 2.69c2.09-1 4.17-2.01 5.6-2.69m0 0c1.72-.64 3.44-1.27 5.88-2.16m-5.88 2.16c1.94-.72 3.89-1.43 5.88-2.16m0 0c2.3-.59 4.6-1.19 6.13-1.58m-6.13 1.58c2.32-.6 4.65-1.2 6.13-1.58m0 0c2.06-.31 4.12-.63 6.34-.97m-6.34.97c2.34-.36 4.69-.72 6.34-.97m0 0c2.05-.1 4.09-.21 6.54-.33m-6.54.33c2.06-.1 4.12-.21 6.54-.33m0 0h160m-160 0h160m0 0v128m0-128v128m0 0s0 0 0 0m0 0s0 0 0 0m0 0 .16 3.28m-.16-3.28c.06 1.16.12 2.32.16 3.28m0 0c.13.82.26 1.64.49 3.18m-.49-3.18c.18 1.13.35 2.26.49 3.18m0 0c.24.95.49 1.91.79 3.07m-.79-3.07c.28 1.1.56 2.2.79 3.07m0 0c.39 1.06.78 2.13 1.07 2.94m-1.07-2.94c.42 1.15.84 2.3 1.07 2.94m0 0c.38.79.76 1.57 1.35 2.8m-1.35-2.8c.4.82.79 1.64 1.35 2.8m0 0c.45.75.91 1.5 1.6 2.63m-1.6-2.63c.4.65.8 1.31 1.6 2.63m0 0c.56.76 1.13 1.52 1.84 2.47m-1.84-2.47c.58.79 1.17 1.57 1.84 2.47m0 0c.75.82 1.5 1.65 2.06 2.27m-2.06-2.27c.75.82 1.5 1.65 2.06 2.27m0 0c.74.66 1.47 1.33 2.27 2.06m-2.27-2.06c.89.81 1.78 1.61 2.27 2.06m0 0c.69.51 1.37 1.02 2.47 1.84m-2.47-1.84c.68.5 1.35 1.01 2.47 1.84m0 0c.81.49 1.62.99 2.63 1.6m-2.63-1.6c.74.45 1.47.9 2.63 1.6m0 0c.72.35 1.43.69 2.8 1.35m-2.8-1.35c.61.3 1.22.59 2.8 1.35m0 0c.85.31 1.69.62 2.94 1.07m-2.94-1.07c1.03.38 2.07.75 2.94 1.07m0 0c.83.22 1.67.43 3.07.79m-3.07-.79 3.07.79m0 0c1.07.16 2.14.33 3.18.49m-3.18-.49c1.2.18 2.39.36 3.18.49m0 0 3.28.16m-3.28-.16c.97.04 1.93.09 3.28.16m0 0h128m-128 0h128m0 0v288m0-288v288m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.1 2.02-.2 4.04-.33 6.54m.33-6.54c-.13 2.52-.26 5.05-.33 6.54m0 0c-.33 2.14-.66 4.29-.97 6.34m.97-6.34c-.32 2.06-.63 4.12-.97 6.34m0 0c-.59 2.28-1.17 4.55-1.58 6.13m1.58-6.13c-.53 2.07-1.07 4.14-1.58 6.13m0 0c-.73 1.99-1.46 3.97-2.16 5.88m2.16-5.88c-.72 1.97-1.44 3.94-2.16 5.88m0 0c-.94 1.97-1.89 3.93-2.69 5.6m2.69-5.6c-.91 1.89-1.82 3.77-2.69 5.6m0 0c-.89 1.46-1.78 2.92-3.21 5.27m3.21-5.27c-.65 1.05-1.29 2.11-3.21 5.27m0 0c-1.13 1.51-2.25 3.01-3.69 4.93m3.69-4.93c-1.29 1.72-2.58 3.44-3.69 4.93m0 0c-1.29 1.42-2.58 2.84-4.13 4.55m4.13-4.55-4.13 4.55m0 0-4.55 4.13m4.55-4.13-4.55 4.13m0 0c-1.2.9-2.41 1.8-4.93 3.69m4.93-3.69-4.93 3.69m0 0c-1.56.95-3.13 1.9-5.27 3.21m5.27-3.21c-1.99 1.21-3.98 2.42-5.27 3.21m0 0c-1.8.86-3.6 1.73-5.6 2.69m5.6-2.69c-1.34.64-2.67 1.28-5.6 2.69m0 0c-2.24.82-4.48 1.65-5.88 2.16m5.88-2.16c-1.38.51-2.77 1.02-5.88 2.16m0 0c-1.46.38-2.93.76-6.13 1.58m6.13-1.58c-1.54.4-3.09.79-6.13 1.58m0 0c-2.12.32-4.24.65-6.34.97m6.34-.97c-2.47.38-4.94.75-6.34.97m0 0c-2.23.11-4.46.22-6.54.33m6.54-.33c-1.97.1-3.93.2-6.54.33m0 0h-256m256 0h-256m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-2.33-.12-4.66-.24-6.54-.33m6.54.33c-1.33-.07-2.65-.13-6.54-.33m0 0c-1.88-.29-3.77-.58-6.34-.97m6.34.97c-2.07-.32-4.14-.63-6.34-.97m0 0c-1.52-.39-3.04-.79-6.13-1.58m6.13 1.58c-2.02-.52-4.04-1.04-6.13-1.58m0 0c-1.6-.59-3.19-1.17-5.88-2.16m5.88 2.16c-1.9-.7-3.8-1.39-5.88-2.16m0 0c-1.41-.68-2.82-1.36-5.6-2.69m5.6 2.69c-1.6-.77-3.2-1.54-5.6-2.69m0 0c-1.4-.86-2.81-1.71-5.27-3.21m5.27 3.21c-2.08-1.27-4.17-2.54-5.27-3.21m0 0c-1.72-1.29-3.43-2.57-4.93-3.69m4.93 3.69c-1.79-1.34-3.57-2.67-4.93-3.69m0 0c-1.18-1.07-2.36-2.15-4.55-4.13m4.55 4.13c-1.64-1.49-3.27-2.97-4.55-4.13m0 0c-1.07-1.19-2.15-2.37-4.13-4.55m4.13 4.55c-1.46-1.61-2.93-3.23-4.13-4.55m0 0-3.69-4.93m3.69 4.93c-.88-1.17-1.76-2.35-3.69-4.93m0 0c-.83-1.37-1.67-2.75-3.21-5.27m3.21 5.27c-1.15-1.89-2.3-3.79-3.21-5.27m0 0c-1.03-2.14-2.05-4.27-2.69-5.6m2.69 5.6c-.68-1.43-1.37-2.85-2.69-5.6m0 0c-.8-2.17-1.59-4.34-2.16-5.88m2.16 5.88c-.82-2.22-1.63-4.44-2.16-5.88m0 0c-.47-1.82-.94-3.64-1.58-6.13m1.58 6.13c-.37-1.44-.74-2.88-1.58-6.13m0 0-.97-6.34m.97 6.34c-.3-1.98-.61-3.97-.97-6.34m0 0c-.13-2.54-.26-5.07-.33-6.54m.33 6.54-.33-6.54m0 0V343m0 112V343m0 0h174.1m-174.1 0h174.1m0 0-39 39m39-39-39 39m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.65.72-1.3 1.44-1.65 1.83m1.65-1.83c-.34.38-.68.76-1.65 1.83m0 0c-.35.47-.7.95-1.43 1.94m1.43-1.94c-.38.5-.75 1.01-1.43 1.94m0 0c-.32.54-.64 1.08-1.22 2.05m1.22-2.05c-.38.64-.76 1.28-1.22 2.05m0 0c-.2.45-.41.89-.99 2.13m.99-2.13c-.38.82-.76 1.64-.99 2.13m0 0c-.18.53-.36 1.05-.77 2.2m.77-2.2c-.3.88-.61 1.75-.77 2.2m0 0c-.15.61-.3 1.22-.55 2.25m.55-2.25c-.16.68-.33 1.35-.55 2.25m0 0-.33 2.29m.33-2.29c-.13.9-.26 1.79-.33 2.29m0 0-.11 2.3m.11-2.3c-.03.59-.06 1.19-.11 2.3m0 0c.03.54.05 1.08.11 2.3m-.11-2.3c.03.72.07 1.44.11 2.3m0 0c.1.71.21 1.43.33 2.28m-.33-2.28c.1.71.21 1.42.33 2.28m0 0c.22.88.44 1.77.55 2.24m-.55-2.24c.16.66.33 1.32.55 2.24m0 0c.26.72.51 1.45.77 2.19m-.77-2.19c.25.69.49 1.39.77 2.19m0 0c.33.7.65 1.4.99 2.12m-.99-2.12c.37.79.74 1.57.99 2.12m0 0c.38.63.75 1.25 1.22 2.04m-1.22-2.04c.4.67.8 1.35 1.22 2.04m0 0c.38.52.77 1.05 1.43 1.93m-1.43-1.93c.38.52.77 1.05 1.43 1.93m0 0c.46.5.91 1 1.65 1.81m-1.65-1.81c.35.39.7.77 1.65 1.81m0 0c.37.33.75.67 1.83 1.64m-1.83-1.64c.43.39.87.78 1.83 1.64m0 0c.62.45 1.25.91 1.94 1.42m-1.94-1.42c.45.32.9.65 1.94 1.42m0 0c.53.3 1.05.61 2.05 1.2m-2.05-1.2c.43.25.86.5 2.05 1.2m0 0c.78.36 1.56.72 2.13.99m-2.13-.99c.54.25 1.08.5 2.13.99m0 0c.67.23 1.33.46 2.2.76m-2.2-.76c.51.17 1.03.35 2.2.76m0 0c.87.22 1.73.43 2.25.56m-2.25-.56c.79.2 1.57.39 2.25.56m0 0 2.29.33m-2.29-.33c.58.08 1.16.16 2.29.33m0 0c.91.04 1.82.09 2.3.11m-2.3-.11c.89.04 1.79.09 2.3.11m0 0c.48-.02.96-.04 2.3-.1m-2.3.1c.73-.03 1.47-.06 2.3-.1m0 0c.61-.09 1.22-.18 2.28-.33m-2.28.33c.58-.09 1.17-.17 2.28-.33m0 0c.79-.19 1.59-.38 2.24-.54m-2.24.54c.88-.21 1.75-.42 2.24-.54m0 0c.7-.25 1.4-.49 2.19-.77m-2.19.77c.5-.18 1.01-.35 2.19-.77m0 0c.56-.26 1.13-.52 2.12-.98m-2.12.98c.69-.31 1.37-.63 2.12-.98m0 0c.63-.37 1.25-.74 2.04-1.21m-2.04 1.21c.8-.48 1.6-.95 2.04-1.21m0 0c.67-.5 1.34-.99 1.93-1.43m-1.93 1.43c.52-.39 1.05-.78 1.93-1.43m0 0c.43-.39.87-.79 1.81-1.65m-1.81 1.65c.42-.38.83-.76 1.81-1.65m0 0 80-80m-80 80 80-80m0 0s0 0 0 0m0 0s0 0 0 0m0 0c.33-.37.67-.74 1.65-1.83m-1.65 1.83c.63-.7 1.27-1.4 1.65-1.83m0 0c.3-.4.59-.79 1.43-1.94m-1.43 1.94c.42-.57.84-1.13 1.43-1.94m0 0c.4-.68.8-1.35 1.22-2.05m-1.22 2.05c.47-.79.93-1.57 1.22-2.05m0 0c.28-.62.57-1.23.99-2.13m-.99 2.13c.3-.65.6-1.31.99-2.13m0 0c.26-.74.51-1.47.77-2.2m-.77 2.2.77-2.2m0 0 .55-2.25m-.55 2.25c.2-.84.41-1.68.55-2.25m0 0 .33-2.29m-.33 2.29c.11-.75.21-1.49.33-2.29m0 0c.03-.54.05-1.08.11-2.3m-.11 2.3c.04-.91.09-1.81.11-2.3m0 0c-.03-.7-.07-1.41-.11-2.3m.11 2.3c-.04-.75-.07-1.49-.11-2.3m0 0c-.08-.52-.15-1.04-.33-2.28m.33 2.28c-.09-.63-.18-1.26-.33-2.28m0 0-.55-2.24m.55 2.24c-.19-.79-.39-1.58-.55-2.24m0 0-.77-2.19m.77 2.19c-.25-.72-.51-1.44-.77-2.19m0 0c-.23-.5-.46-.99-.99-2.12m.99 2.12c-.39-.83-.78-1.66-.99-2.12m0 0c-.42-.7-.83-1.39-1.22-2.04m1.22 2.04c-.32-.53-.64-1.06-1.22-2.04m0 0c-.47-.64-.95-1.28-1.43-1.93m1.43 1.93c-.47-.63-.94-1.27-1.43-1.93m0 0c-.44-.49-.89-.98-1.65-1.81m1.65 1.81c-.64-.7-1.28-1.4-1.65-1.81m0 0-80-80m80 80-80-80m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.72-.65-1.44-1.3-1.83-1.65m1.83 1.65c-.68-.62-1.37-1.23-1.83-1.65m0 0c-.51-.38-1.02-.75-1.94-1.43m1.94 1.43c-.58-.43-1.17-.87-1.94-1.43m0 0c-.73-.43-1.45-.86-2.05-1.22m2.05 1.22c-.77-.45-1.53-.9-2.05-1.22m0 0c-.46-.21-.93-.43-2.13-.99m2.13.99-2.13-.99m0 0c-.83-.29-1.65-.57-2.2-.77m2.2.77c-.56-.19-1.12-.39-2.2-.77m0 0c-.65-.16-1.29-.31-2.25-.55m2.25.55c-.57-.14-1.13-.27-2.25-.55m0 0c-.74-.11-1.48-.21-2.29-.33m2.29.33c-.51-.07-1.02-.15-2.29-.33m0 0c-.77-.04-1.54-.07-2.3-.11m2.3.11c-.88-.04-1.76-.08-2.3-.11m0 0c-.49.02-.98.05-2.3.11m2.3-.11c-.88.04-1.77.09-2.3.11m0 0c-.62.09-1.23.18-2.28.33m2.28-.33c-.6.09-1.2.17-2.28.33m0 0c-.45.11-.91.22-2.24.55m2.24-.55c-.79.2-1.58.39-2.24.55m0 0c-.56.2-1.12.4-2.19.77m2.19-.77c-.51.18-1.01.36-2.19.77m0 0c-.85.4-1.7.8-2.12.99m2.12-.99c-.51.24-1.02.48-2.12.99m0 0c-.6.36-1.2.71-2.04 1.22m2.04-1.22c-.46.27-.91.55-2.04 1.22m0 0c-.49.36-.99.73-1.93 1.43m1.93-1.43-1.93 1.43m0 0c-.42.38-.85.77-1.81 1.65m1.81-1.65c-.69.63-1.39 1.27-1.81 1.65m0 0-1.64 1.83m1.64-1.83c-.54.6-1.08 1.21-1.64 1.83m0 0c-.53.73-1.07 1.47-1.42 1.94m1.42-1.94c-.36.5-.73 1-1.42 1.94m0 0c-.35.61-.7 1.21-1.2 2.05m1.2-2.05c-.33.58-.67 1.15-1.2 2.05m0 0c-.26.57-.53 1.15-.99 2.13m.99-2.13c-.39.85-.78 1.69-.99 2.13m0 0c-.24.7-.48 1.4-.76 2.2m.76-2.2c-.17.51-.35 1.01-.76 2.2m0 0c-.17.68-.33 1.35-.56 2.25m.56-2.25c-.2.79-.39 1.57-.56 2.25m0 0c-.09.65-.18 1.29-.33 2.29m.33-2.29c-.06.48-.13.95-.33 2.29m0 0c-.03.71-.07 1.43-.11 2.3m.11-2.3-.11 2.3m0 0c.04.86.08 1.73.1 2.3m-.1-2.3c.03.8.07 1.6.1 2.3m0 0c.13.88.25 1.76.33 2.28m-.33-2.28c.11.73.21 1.47.33 2.28m0 0c.18.74.36 1.49.54 2.24m-.54-2.24c.15.64.31 1.28.54 2.24m0 0c.2.57.4 1.15.77 2.19m-.77-2.19c.21.58.41 1.17.77 2.19m0 0c.23.5.46 1.01.98 2.12m-.98-2.12c.35.76.71 1.53.98 2.12m0 0c.38.64.76 1.29 1.21 2.04m-1.21-2.04 1.21 2.04m0 0c.45.6.89 1.21 1.43 1.93m-1.43-1.93c.3.4.6.81 1.43 1.93m0 0 1.65 1.81m-1.65-1.81c.47.52.94 1.03 1.65 1.81m0 0 39 39m-39-39 39 39m0 0h-174.1m174.1 0h-174.1m0 0V71m0 223.9V71m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeLinecap:"round",strokeWidth:"18",d:"M135 343.068H31m104 0H31m0 0s0 0 0 0m0 0s0 0 0 0m0 0c-.74-.04-1.48-.07-2.46-.12m2.46.12c-.77-.04-1.54-.08-2.46-.12m0 0c-.87-.14-1.75-.27-2.39-.37m2.39.37c-.55-.09-1.1-.17-2.39-.37m0 0c-.87-.22-1.74-.44-2.3-.59m2.3.59c-.62-.15-1.24-.31-2.3-.59m0 0c-.82-.29-1.64-.59-2.21-.8m2.21.8c-.52-.18-1.03-.37-2.21-.8m0 0c-.55-.26-1.09-.52-2.1-1.01m2.1 1.01c-.64-.31-1.28-.61-2.1-1.01m0 0c-.74-.45-1.48-.89-1.98-1.2m1.98 1.2c-.42-.25-.84-.51-1.98-1.2m0 0c-.7-.52-1.41-1.05-1.84-1.38m1.84 1.38c-.37-.28-.75-.56-1.84-1.38m0 0c-.4-.36-.8-.71-1.71-1.54m1.71 1.54c-.35-.31-.7-.63-1.71-1.54m0 0c-.43-.47-.85-.95-1.54-1.71m1.54 1.71c-.61-.68-1.23-1.36-1.54-1.71m0 0c-.29-.38-.58-.76-1.38-1.84m1.38 1.84c-.54-.71-1.08-1.43-1.38-1.84m0 0c-.46-.76-.92-1.52-1.2-1.98m1.2 1.98c-.45-.74-.89-1.47-1.2-1.98m0 0c-.37-.77-.74-1.53-1.01-2.1m1.01 2.1c-.3-.62-.6-1.25-1.01-2.1m0 0c-.2-.54-.39-1.07-.8-2.21m.8 2.21c-.2-.54-.4-1.09-.8-2.21m0 0c-.22-.85-.44-1.71-.59-2.3m.59 2.3c-.12-.46-.24-.92-.59-2.3m0 0c-.11-.72-.22-1.43-.37-2.39m.37 2.39c-.08-.48-.15-.96-.37-2.39m0 0c-.03-.74-.07-1.48-.12-2.46m.12 2.46c-.04-.79-.08-1.59-.12-2.46m0 0c.04-.74.07-1.49.12-2.46m-.12 2.46.12-2.46m0 0c.08-.53.16-1.07.37-2.39m-.37 2.39c.09-.56.17-1.12.37-2.39m0 0c.17-.69.35-1.38.59-2.3m-.59 2.3c.15-.61.31-1.23.59-2.3m0 0c.17-.48.34-.96.8-2.21m-.8 2.21c.2-.55.4-1.1.8-2.21m0 0c.25-.52.49-1.03 1.01-2.1m-1.01 2.1c.36-.76.73-1.52 1.01-2.1m0 0c.43-.72.87-1.44 1.2-1.98m-1.2 1.98c.27-.45.55-.91 1.2-1.98m0 0c.54-.73 1.09-1.47 1.38-1.84m-1.38 1.84c.4-.54.81-1.09 1.38-1.84m0 0c.53-.59 1.07-1.18 1.54-1.71m-1.54 1.71c.59-.66 1.19-1.32 1.54-1.71m0 0c.54-.49 1.08-.97 1.71-1.54m-1.71 1.54c.48-.43.95-.86 1.71-1.54m0 0c.46-.35.92-.7 1.84-1.38m-1.84 1.38c.5-.38 1.01-.76 1.84-1.38m0 0c.52-.32 1.04-.63 1.98-1.2m-1.98 1.2c.72-.44 1.44-.88 1.98-1.2m0 0 2.1-1.01m-2.1 1.01c.84-.4 1.67-.81 2.1-1.01m0 0c.45-.17.91-.33 2.21-.8m-2.21.8c.56-.21 1.12-.41 2.21-.8m0 0c.89-.23 1.79-.46 2.3-.59m-2.3.59c.48-.13.95-.25 2.3-.59m0 0c.51-.08 1.02-.16 2.39-.37m-2.39.37 2.39-.37m0 0c.52-.02 1.03-.05 2.46-.12m-2.46.12c.74-.03 1.48-.07 2.46-.12m0 0 103.34-.27m-103.34.27c30.04-.08 60.08-.16 103.34-.27"}),React__namespace.createElement("g",{fillRule:"evenodd",strokeLinecap:"round"},React__namespace.createElement("path",{fill:"var(--input-bg-color)",strokeWidth:"0",d:"M517.462 135h-128V7l128 128"}),React__namespace.createElement("path",{fill:"none",stroke:"var(--icon-fill-color)",strokeWidth:"18",d:"M517.462 135h-128m128 0h-128m0 0V7m0 128V7m0 0 128 128m-128-128 128 128m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0m0 0s0 0 0 0"})))},stringToSVG=e=>(e=e.replace(/stroke\s*=\s*['"][^"']*['"]/g,"").replace(/width\s*=\s*['"][^"']*['"]/g,"").replace(/height\s*=\s*['"][^"']*['"]/g,"").replace("
\n\n
\n',RELEASE_NOTES={Intro:'After each update you\'ll be prompted with the release notes. You can disable this in plugin settings.\n\nI develop this plugin as a hobby, spending my free time doing this. If you find it valuable, then please say THANK YOU or...\n\n
\n',"1.7.29":"\n- This is a big update that accommodates the **UI redesign** on Excalidraw.com [#5780](https://github.com/excalidraw/excalidraw/pull/5780). The change on the surface may seem superficial, however, I had to tweak a number of things to make it work in Obsidian. I hope I found everything that broke and fixed it, if not, I'll try to fix it quickly...\n- This update also comes with changes under the hood that **fix issues with Excalidraw Automate** - paving the way for further scripts, plus some smaller bug fixes.\n- I **reworked text wrapping**. In some cases, text wrapping in SVG exports looked different compared to how the text looked in Excalidraw. This should now be fixed.\n- If you are using the **Experimental Dynamic Styling** of the Excalidraw Toolbar, then I recommend updating your styling script following base on [this](https://gist.github.com/zsviczian/c7223c5b4af30d5c88a0cae05300305c)\n","1.7.27":'## New\n- Import SVG drawing as an Excalidraw object. [#679](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/679)\n\n
\n\n
\n\n## Fixed\n- Large drawings freeze on the iPad when opening the file. I implemented a workaround whereby Excalidraw will avoid zoom-to-fit drawings with over 1000 elements. [#863](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/863)\n- Reintroduced copy/paste to the context menu\n',"1.7.26":'## Fixed\n- Transcluded block with a parent bullet does not embed sub-bullet [#853](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/853)\n- Transcluded text will now exclude ^block-references at end of lines\n- Phantom duplicates of the drawing appear when "zoom to fit" results in a zoom value below 10% and there are many objects on the canvas [#850](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/850)\n- CTRL+Wheel will increase/decrease zoom in steps of 5% matching the behavior of the "+" & "-" zoom buttons.\n- Latest updates from Excalidarw.com\n - Freedraw flip not scaling correctly [#5752](https://github.com/excalidraw/excalidraw/pull/5752)\n - Multiple elements resizing regressions [#5586](https://github.com/excalidraw/excalidraw/pull/5586)\n\n## New - power user features\n- Force the embedded image to always scale to 100%. Note: this is a very niche feature with a very particular behavior that I built primarily for myself (even more so than other features in Excalidraw Obsidian - also built primarily for myself 😉)... This will reset your embedded image to 100% size every time you open the Excalidraw drawing, or in case you have embedded an Excalidraw drawing on your canvas inserted using this function, every time you update the embedded drawing, it will be scaled back to 100% size. This means that even if you resize the image on the drawing, it will reset to 100% the next time you open the file or you modify the original embedded object. This feature is useful when you decompose a drawing into separate Excalidraw files, but when combined onto a single canvas you want the individual pieces to maintain their actual sizes. I use this feature to construct Book-on-a-Page summaries from atomic drawings.\n- I added an action to the command palette to temporarily disable/enable Excalidraw autosave. When autosave is disabled, Excalidraw will still save your drawing when changing to another Obsidian window, but it will not save every 10 seconds. On a mobile device (but also on a desktop) this can lead to data loss if you terminate Obsidian abruptly (i.e. swipe the application away, or close Obsidian without first closing the drawing). Use this feature if you find Excalidraw laggy.',"1.7.25":`## Fixed\n- Tool buttons did not "stick" the first time you clicked them.\n- Tray (in tray mode) was higher when the help button was visible. The tray in tablet mode was too large and the help button was missing.\n- ExcalidrawAutomate ${String.fromCharCode(96)}getCM(color:TInput): ColorMaster;${String.fromCharCode(96)} function will now properly convert valid [css color names](https://www.w3schools.com/colors/colors_names.asp) to ColorMaster objects.\n- The downloaded script icons in the Excalidraw-Obsidian menu were not always correct\n- The obsidian mobile navigation bar at the bottom overlapped with Excalidraw\n\n## New\n- Created ExcalidrawAutomate hook for styling script when the canvas color changes. See sample [onCanvasColorChangeHook](https://gist.github.com/zsviczian/c7223c5b4af30d5c88a0cae05300305c) implementation following the link.\n\n
\n\n
\n\n${String.fromCharCode(96,96,96)}typescript\n /**\n * If set, this callback is triggered whenever the active canvas color changes\n */\n onCanvasColorChangeHook: (\n ea: ExcalidrawAutomate,\n view: ExcalidrawView, //the Excalidraw view \n color: string,\n ) => void = null;\n${String.fromCharCode(96,96,96)}\n`,"1.7.24":`\n# New and improved\n- **Updated Chinese translation**. Thanks, @tswwe!\n- **Improved update for TextElement links**: Until now, when you attached a link to a file to a TextElement using the "Create Link" command, this link did not get updated when the file was renamed or moved. Only links created as markdown links in the TextElement text were updated. Now both approaches work. Keep in mind however, that if you have a link in the TextElemenet text, it will override the link attached to the text element using the create link command. [#566](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/566)\n- **Transclusion filters markdown comments**: Text transclusion in a TextElement using the ${String.fromCharCode(96)}![[file]]${String.fromCharCode(96)} or ${String.fromCharCode(96)}![[file#section]]${String.fromCharCode(96)} format did not filter out markdown comments in the file placed ${String.fromCharCode(96)}%% inside a comment block %%${String.fromCharCode(96)}. Now they do.\n- **Remove leading '>' from trancluded quotes**: Added a new option in settings under **Links and Transclusion** to remove the leading ${String.fromCharCode(96)}> ${String.fromCharCode(96)} characters from quotes you transclude as a text element in your drawing. \n![image](https://user-images.githubusercontent.com/14358394/194755306-6e7bf5f3-4228-44a1-9363-c3241b34865e.png)\n- **Added support for ${String.fromCharCode(96)}webp${String.fromCharCode(96)}, ${String.fromCharCode(96)}bmp${String.fromCharCode(96)}, and ${String.fromCharCode(96)}ico${String.fromCharCode(96)} images**. This extends the already supported formats (${String.fromCharCode(96)}jpg${String.fromCharCode(96)}, ${String.fromCharCode(96)}gif${String.fromCharCode(96)}, ${String.fromCharCode(96)}png${String.fromCharCode(96)}, ${String.fromCharCode(96)}svg${String.fromCharCode(96)}).\n- **Added command palette action to reset images to original size**. Select a single image or embedded Excalidraw drawing on your canvas and choose ${String.fromCharCode(96)}Set selected image element size to 100% of original${String.fromCharCode(96)} from the command palette. This function is especially helpful when you combine atomic drawings on a single canvas, keeping each atomic piece in its original excalidraw file (i.e. the way I create [book on a page summaries](https://www.youtube.com/playlist?list=PL6mqgtMZ4NP1-mbCYc3T7mr-unmsIXpEG))\n- The ${String.fromCharCode(96)}async getOriginalImageSize(imageElement: ExcalidrawImageElement): Promise<{width: number; height: number}>${String.fromCharCode(96)} function is also avaiable via ExcalidrawAutomate. You may use this function to resize images to custom scales (e.g. 50% size, or to fit a certain bounding rectangle).\n\n# Fixed\n- **Upgraded perfect freehand package to resolve unwanted dots on end of lines** [#5727](https://github.com/excalidraw/excalidraw/pull/5727)\n- **Pinch zoom in View mode opens images** resulting in a very annoying behavior [#837](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/837)\n- **Embedded files** such as transcluded markdown documents and images **did not honor the Obsidian "New Link Format" setting** (shortest path, relative path, absolute path). [#829](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/829)\n- **Fixed error with dataview queries involving Excalidraw files**: In case you created a task on an Excalidraw canvas (${String.fromCharCode(96)}docA.md${String.fromCharCode(96)}) by typing ${String.fromCharCode(96)}- [ ] Task [[owner]] #tag${String.fromCharCode(96)}, and then you created a Dataview tasklist in another document (${String.fromCharCode(96)}docB.md${String.fromCharCode(96)}) such that the query criteria matched the task in ${String.fromCharCode(96)}docA.md${String.fromCharCode(96)}, then the task from ${String.fromCharCode(96)}docA.md${String.fromCharCode(96)} only appeared as an empty line when viewing ${String.fromCharCode(96)}docB.md${String.fromCharCode(96)}. If you now embedded ${String.fromCharCode(96)}docB.md${String.fromCharCode(96)} into a third markdown document (${String.fromCharCode(96)}docC.md${String.fromCharCode(96)}), then instead of the contents of ${String.fromCharCode(96)}docB.md${String.fromCharCode(96)} Obsidian rendered ${String.fromCharCode(96)}docA.md${String.fromCharCode(96)}. [#835](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/835)\n`,"1.7.22":"\n# Fixed\n- Text size in sticky notes increased when opening the drawing and when editing a sticky note [#824](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/824)\n- ToDo rendering did not work properly when there were parsed links in the text\n- Horizontal text alignment in sticky notes did not honor text alignment setting when resizing text. The text was always aligned center even when text alignment was left or right. [#5720](https://github.com/excalidraw/excalidraw/issues/5720)\n","1.7.21":`\n# New from Excalidraw.com\n- Image-mirroring in export preview and in exported SVG [#5700](https://github.com/excalidraw/excalidraw/pull/5700), [#811](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/811), [#617](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/617)\n\n# New \n- Ctrl+s will force-save your drawing and update all your transclusions\n- Added setting to parse ${String.fromCharCode(96)}- [ ] ${String.fromCharCode(96)} and ${String.fromCharCode(96)}- [x] ${String.fromCharCode(96)} todo items. Parsing is disabled by default. This feature can be found under "Links and Transclusions" in Plugin Settings. [#819](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/819)\n\n![image](https://user-images.githubusercontent.com/14358394/192145020-94bdd115-d24f-47c7-86fe-1417c53980c4.png)\n\n\n\n\n- Added new scripts to the script library\n - [Rename Image](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Rename%20Image.md)\n - [Text Arch](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Text%20Arch.md)\n\n\n\n\n# Fixed\n- Fixed toast message to display script name on press and hold on mobile and iPad.\n- Fixed save error when the embedded image file is not found (i.e. it was moved, renamed, or deleted)\n\n`,"1.7.20":'\n# New from Excalidraw.com\n- support segment midpoints in line editor [#5641](https://github.com/excalidraw/excalidraw/pull/5641)\n
\n\n
\n\n# Fixed\n- When editing a line or arrow and selecting a tool on the toolbar, the tool jumps back to the selection tool and you need to click again to select the tool [#5703](https://github.com/excalidraw/excalidraw/issues/5703)\n- Minor improvement of autosave, hopefully decreasing occasional lagging\n',"1.7.19":`\n# QoL improvements\n- Reintroduced the help button. I also added the help button to the Tray (in Tray Mode) and moved help to the canvas action panel (in non-TrayMode) because in Obsidian 0.16.0 the status bar hides the help icon.\n- Resetting the canvas with the "Reset Canvas" button will now preserve your custom color palette.\n- I updated the [Set background color of unlclosed line object](https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/Set%20background%20color%20of%20unclosed%20line%20object%20by%20adding%20a%20shadow%20clone.md) script. The script will now add background color to open freedraw objects as well. You no longer need to convert freedraw objects to lines before setting the background color. Check the Script Engine library to download the update.\n\n# New in Excalidraw Automate\n- I added the [ColorMaster](https://github.com/lbragile/ColorMaster#readme) library to ExcalidrawAutomate. You can get a CM object by calling ${String.fromCharCode(96)}ExcalidrawAutomate.getCM()${String.fromCharCode(96)}. Color master introduces many new ways to manipulate colors from script. I will publish scripts that make use of this new functionality including supporting videos on my YouTube channel in the coming days.\n`,"1.7.18":"\n## Critical fix\n- duplicating text elements, adding text elements from the library, and pasting excalidraw text elements results in a corrupted file!!","1.7.17":`\n## Fixed\n- Block transclusions sometimes got lost when switching between RAW mode and PREVIEW mode. [#769](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/769)\n\n## New\n- Added feature to disable "new Excalidraw version" notification [#770](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/770)\n- Added option to export both light- and dark-themed images at the same time. If this is enabled Excalidraw will create two files "filename.dark.png" and "filename.light.png" (or .svg depending on your other settings). See practical use case here: [Aadam's Notes](https://notes.aadam.dev/SBYNtPHqsTW9Ck1Kuoxsu/)\n- Added custom export padding for PNG images. Use the frontmatter key ${String.fromCharCode(96)}excalidraw-export-padding${String.fromCharCode(96)} to set the padding at a file level, or set padding for all your files in plugin settings. The new feature replaces the old "SVG Padding" option and applies to both SVG and PNG exports.\n\n## ExcalidrawAutomate\n- Added ${String.fromCharCode(96)}padding${String.fromCharCode(96)} to the createPNG function call.\n${String.fromCharCode(96,96,96)}typescript\nasync createPNG(\n templatePath?: string,\n scale: number = 1,\n exportSettings?: ExportSettings,\n loader?: EmbeddedFilesLoader,\n theme?: string,\n padding?: number,\n)\n${String.fromCharCode(96,96,96)}\n`,"1.7.16":"\n## Fixed\n- Excalidraw canvas is empty after saving the drawing and re-opening it at a later time. If you accidentally paste Excalidraw elements from the clipboard as the contents of a text element, in certain situations this can corrupt the Excalidraw file and as a result, Excalidraw will load an empty-looking drawing the next time. Changing to markdown view, these files can be repaired, however, to avoid accidental data loss, I have prevented pasting of excalidraw clipboard contents as text elements. [#768](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/768)\n\n## New\n- Add zoom % display in tray-mode [737](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/737)\n","1.7.15":"\n## Fixed\n- Canvas turns white when adding point for curved line [#760](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/760), [#738](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/738), [#5602](https://github.com/excalidraw/excalidraw/issues/5602)\n","1.7.14":`\n
\n\n
\n\n## New\n- The ${String.fromCharCode(96)}Copy markdown link for selected element to clipboard${String.fromCharCode(96)} action in the Obsidian menu is now more intelligent. If multiple elements are selected it will copy the Element Reference for the largest element. \n- When referencing an element in a link pointing to an Excalidraw file using the elementId or the section header as the block reference e.g. ${String.fromCharCode(96)}[[file#^elementID]]${String.fromCharCode(96)}, you can now add the ${String.fromCharCode(96)}group=${String.fromCharCode(96)} prefix, e.g. ${String.fromCharCode(96)}[[file#^group=elementID]]${String.fromCharCode(96)} and the ${String.fromCharCode(96)}area=${String.fromCharCode(96)} prefix, e.g. ${String.fromCharCode(96)}[[file#area=Section heading]]${String.fromCharCode(96)}.\n - If the ${String.fromCharCode(96)}group=${String.fromCharCode(96)} prefix is found, Excalidraw will select the group of elements in the same group as the element referenced by the elementID or heading section.\n - If the ${String.fromCharCode(96)}area=${String.fromCharCode(96)} prefix is found, excalidraw will insert a cutout of the image around the referenced element.\n - The ${String.fromCharCode(96)}area=${String.fromCharCode(96)} selector is not supported when embedding Excalidraw as PNG into your markdown documents.\n- I added "Toggle left-handed mode" to the Command Palette. The action is only visible if tray-mode is enabled. It will move the tray from left to right and back. [749](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/749)\n\n## Fixed\n- Zooming with CTRL+Wheel will no longer trigger hover preview.\n- When editing text in a text element CTRL+C will not launch the hover preview in case the mouse pointer is over the text element being edited. Hover preview will only show if the element is not in editing mode.\n- ExcalidrawAutomate did not reliably save changes. This caused issues for example in the "Add link to an existing file and open" script. [#747](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/747)\n- Create a new folder not working when clicking on a link in Erxcalidraw that points to a file that is in a folder that does not yet exist. [741](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/741)\n- Downgraded to React 17 due to various stability issues, including [#738](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/738) and [#747](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/747)\n\n## New in Excalidraw Automate\n- I added two new Excalidraw Automate functions\n${String.fromCharCode(96,96,96)}typescript\n/**\n * Gets the groupId for the group that contains all the elements, or null if such a group does not exist\n * @param elements \n * @returns null or the groupId\n*/\ngetCommonGroupForElements(elements: ExcalidrawElement[]): string;\n\n/**\n * Gets all the elements from elements[] that share one or more groupIds with element.\n * @param element \n * @param elements - typically all the non-deleted elements in the scene \n * @returns \n*/\ngetElementsInTheSameGroupWithElement(element: ExcalidrawElement, elements: ExcalidrawElement[]): ExcalidrawElement[];\n${String.fromCharCode(96,96,96)}`,"1.7.13":`\n## Fix from Excalidraw.com\n- Resize multiple elements from center ([#5560](https://github.com/excalidraw/excalidraw/pull/5560))\n\n## Obsidian 0.16.0 compatibility (getting ready, because 0.16.0 will be available to insiders soon)\n- ${String.fromCharCode(96)}Install or update Excalidraw Scripts${String.fromCharCode(96)} was only available via the page header button. Because the page header is hidden by default, the install script action is now available through the pane menu and through the command palette as well.\n- ${String.fromCharCode(96)}Open selected text as link${String.fromCharCode(96)} page header button is now also available via the pane menu\n- ${String.fromCharCode(96)}Open in Adjacent Pane${String.fromCharCode(96)} and ${String.fromCharCode(96)}Open in Main Workspace${String.fromCharCode(96)} Excalidraw plugin settings is fixed\n`,"1.7.12":`\n## New from Excalidraw.com:\n- Showing a mid-point for lines and arrows. By touching the mid-point you can easily add an additional point to a two-point line. This is especially helpful when working on a tablet with touch input. ([#5534](https://github.com/excalidraw/excalidraw/pull/5534))\n- Lock angle when editing a line or an arrow with SHIFT pressed. Pressing SHIFT will restrict the edited point to snap to certain discrete angles. ([#5527](https://github.com/excalidraw/excalidraw/pull/5527))\n\n## Fixed:\n- Clicking Obsidian search-results pointing to an element on the canvas works again ([#734](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/734))\n- The feature to allow resizing and rotation of lines and arrows consisting of 3 or more points by showing the bounding box when selected is back ([#5554](https://github.com/excalidraw/excalidraw/pull/5554))\n\n## New\n- You can now use the following frontmatter key to allow/prevent automatic export of PNG/SVG images at a file level. This frontmatter will override export settings for the given file. ([#732](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/732)\n${String.fromCharCode(96)}excalidraw-autoexport: none|both|svg|png${String.fromCharCode(96)}\n`,"1.7.11":`\n## Fixed\n- Markdown files embed into the Excalidraw canvas crashed when the embedded markdown file included a nested Markdown embed with a block reference (i.e. the markdown document you are dropping into Excalidraw included a quote you referenced from another file using a ${String.fromCharCode(96)}[[other-file#^blockref]]${String.fromCharCode(96)} block or section reference. \n- Horizontal flipping of arrows and lines broke in 1.7.10. ([#726](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/726))\n`,"1.7.10":'\n## New from Excalidraw.com\n- Improved handling of arrows and lines. ([#5501](https://github.com/excalidraw/excalidraw/pull/5501))\n\n## Fixed\n- When opening a document in view-mode or zen-mode the panel buttons no longer flash up for a moment before switching to the desired mode. ([#479](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/479))\n- The "blinding white screen" no longer flashes up while loading the scene if the scene is dark ([#241](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/241))\n\n## Under the hood\n- Finalized migration to React 18 (no longer showing an error about React 17 compatibility mode in console log)\n',"1.7.9":'\n## New features and fixes from Excalidraw.com:\n- The right-click context menu is now scrollable on smaller screens ([#4030](https://github.com/excalidraw/excalidraw/pull/4030), [#5520](https://github.com/excalidraw/excalidraw/pull/5520))\n- Holding down the shift key while rotating an object will rotate it at discrete angles. Rotation is continuous without the SHIFT key. ([#5500](https://github.com/excalidraw/excalidraw/pull/5500))\n- Improved cursor alignment when resizing an element proportionally (maintain aspect ratio) by holding SHIFT during resizing. ([#5513](https://github.com/excalidraw/excalidraw/pull/5515))\n- Improved freedraw performance during editing (now has proper canvas caching), and no more blurry freedraw shapes when exporting on a higher scale. ([#5481](https://github.com/excalidraw/excalidraw/pull/5481))\n- Sidebar stencil library now correctly scrolls vertically ([#5459](https://github.com/excalidraw/excalidraw/pull/5459))\n\n## New in Obsidian:\n- Fullscreen mode on iPad. When there are multiple work panes open, clicking the fullscreen action in the Excalidraw Obsidian menu will hide the other work panes and make Excalidraw fullscreen.\n\n## Fixes in Obsidian:\n- Drag&Drop an image from a web browser into Excalidraw ([#697](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/697))\n- On Obsidian Mobile 1.3.0, when the drawing included an embedded image, switching from markdown-view to Excalidraw-view caused the drawing to disappear (it had to be recovered from backup or synchronization history). ([#715](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/715))\n- When working on a mobile device (tablet and phone) and using two work panes (one for drawing and the other for editing a markdown document) if you switched focus from the drawing to the markdown document auto-zoom changed the zoom level of the drawing. ([#723](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/723)), ([#705](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/705))\n- Actions on the Command Palette to create a new drawing in a new pane or reusing an existing adjacent pane; on the main workspace or in the Hover Editor or Popout window, were not working well. See related settings in plugin settings under "Links and transclusions" ([#718](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/718))\n- There was a problem with links with section references when the header contained space characters ([#704](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/704))\n- I added additional controls to avoid the fantom warnings about a problem with saving the Excalidraw file. Hopefully, from now on, you\'ll see this error less frequently ([#701](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/701))\n',"1.7.8":'\n# Optimized for Obsidian 0.15.5\n- I reworked how the plugin treats the "More options" menu because the old approach was interfering with Obsidian\n- Did thorough testing of handling of work panes on link click. There are two settings (open in the adjacent pane, and open in the main workspace), and three broad scenarios (Excalidraw in a work pane in the main Obsidian window, Excalidraw in a hover editor, and Excalidraw in an Obsidian popout window). All should work correctly now.\n',"1.7.7":`\n# New\n- Optimized for Obsidian 0.15.4\n- On a desktop, you can now use the META key when clicking on a link and it will open the link in a new popout Window.\n- ([#685](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/685)) Markdown embeds will now display correctly in Excalidraw even if they include photos and recursive markdown embeds. Unfortunately due to the limitations of Safari the inversion of colors on iPads in dark mode will not work well.\nSee an 18 second long demo video [here](https://user-images.githubusercontent.com/14358394/177213263-2a7ef1ca-0614-4190-8955-e830ca6b424b.mp4).\n\n\n# Fixed\n- ([#683](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/683)) Copy/Paste Markdown embeds to create another instance of the embed, thus you can reference different sections of the document in your drawing (something I broke in 1.7.6)\n- ([#684](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/684)) Transclusions incorrectly did not pick up subsections of a section. To understand this change, imagine for example the following document:\n${String.fromCharCode(96,96,96)}markdown\n# A\nabc\n# B\nxyz\n## b1\n123\n## b2\n456\n# C\n${String.fromCharCode(96,96,96)}\nWhen you transclude ${String.fromCharCode(96)}![[document#B]]${String.fromCharCode(96)} you expect the following result\n${String.fromCharCode(96,96,96)}markdown\nB\nxyz\n\nb1\n123\n\nb2\n456\n${String.fromCharCode(96,96,96)}\nUntil this fix you only got\n${String.fromCharCode(96,96,96)}markdown\nB\nxyz\n${String.fromCharCode(96,96,96)}`,"1.7.6":`\nThis release is the same as 1.7.5 except for two minor fixes\n- a fix for ExcaliBrain, becuase 1.7.5 broke ExcaliBrain.\n- I left out the release note from 1.7.5.\n\n# New\n- Deployed sidebar for libraries panel from excalidraw.com ([#5274](https://github.com/excalidraw/excalidraw/pull/5274)). You can dock the library to the right side depending on the screen real estate available (i.e. does not work on mobiles).\n\n# Fixed\n- When copying 2 identical images from one drawing to another, the second image got corrupted in the process ([#672]https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/672)).\n- When making a copy of an equation in a drawing and then without first closing/opening the file, immediately copying the new equation to another drawing, the equation did not get displayed until the file was closed and reopened.\n- Copying a markdown embed from one drawing to another, in the destination the markdown embed appeared without the section/block reference and without the width & height (i.e. these settings had to be done again)\n- Improved the parsing of section references in embeds. When you had ${String.fromCharCode(96)}&${String.fromCharCode(96)} in the section name in a markdown file, when embedding that markdown document into Excalidraw, the section reference did not work as expected ([#681 ](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/681)).\n- Improved the logic for autosave to better detect changes to the document, and to reduce too frequent export of ${String.fromCharCode(96)}.png${String.fromCharCode(96)} and/or ${String.fromCharCode(96)}.svg${String.fromCharCode(96)} files, when auto export is enabled in plugin settings.\n`,"1.7.5":`\n# New\n- Deployed sidebar for libraries panel from excalidraw.com ([#5274](https://github.com/excalidraw/excalidraw/pull/5274)). You can dock the library to the right side depending on the screen real estate available (i.e. does not work on mobiles).\n\n# Fixed\n- When copying 2 identical images from one drawing to another, the second image got corrupted in the process ([#672]https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/672)).\n- When making a copy of an equation in a drawing and then without first closing/opening the file, immediately copying the new equation to another drawing, the equation did not get displayed until the file was closed and reopened.\n- Copying a markdown embed from one drawing to another, in the destination the markdown embed appeared without the section/block reference and without the width & height (i.e. these settings had to be done again)\n- Improved the parsing of section references in embeds. When you had ${String.fromCharCode(96)}&${String.fromCharCode(96)} in the section name in a markdown file, when embedding that markdown document into Excalidraw, the section reference did not work as expected ([#681 ](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/681)).\n- Improved the logic for autosave to better detect changes to the document, and to reduce too frequent export of ${String.fromCharCode(96)}.png${String.fromCharCode(96)} and/or ${String.fromCharCode(96)}.svg${String.fromCharCode(96)} files, when auto export is enabled in plugin settings.\n`,"1.7.4":"\n- Obsidian 0.15.3 support dragging and dropping work panes between Obsidian windows.\n- Addressed Obsidian changes affecting the more-options menu.\n- Addressed incompatibility with Obsidian Mobile 1.2.2.\n","1.7.3":"\nObsidian 0.15.3 support for dragging and dropping work panes between Obsidian windows.\n","1.7.2":"\nDue to some of the changes to the code, I highly recommend restarting Obsidian after installing this update to Excalidraw.\n\n# Fixed\n- Stability improvements\n- Opening links in new panes and creating new drawings from the file explorer works properly again\n\n# New feature\n- Two new command palette actions:\n - Create a new drawing - IN A POPOUT WINDOW\n - Create a new drawing - IN A POPOUT WINDOW - and embed into active document\n![image|600](https://user-images.githubusercontent.com/14358394/175137800-88789f5d-f8e8-4371-a356-84f443aa6a50.png)\n- Added setting to prefer opening the link in the popout window or in the main workspace.\n![image|800](https://user-images.githubusercontent.com/14358394/175076326-1c8eee53-e512-4025-aedb-07881a732c69.png)\n","1.7.1":"\nSupport for Obsidian 0.15.0 popout windows. While there are no new features (apart from the popout window support) under the hood there were some major changes required to make this happen.\n","1.7.0":"\nThis is the first test version of Excalidraw Obsidian supporting Obsidian 0.15.0 popout windows. The current technical solution is not really sustainable, it's more of a working concept. I don't expect any real big issues with this version - on the contrary, this works much better with Obsidian 0.15.0 popout windows, but some of the features aren't working as expected in the Obsidian popouts yet. Also as a consequence of Obsidian 0.15.0 compatibility, multiple hover previews are no longer supported.\n","1.6.34":"\nWith 0.15.1 Obsidian is implementing some exciting, but significant changes to how windows are managed. I need to make some heavy/invasive changes to Excalidraw to adapt. The next version of the Excalidraw Plugin will require Obsidian 0.15.1 or newer. If you are not signed up for Obsidian Insider Builds, you will need to wait few weeks until the new Obsidian version will be made public.\n\n# Fixed\n- Error saving when the attachments folder exists but with a different letter case (i.e. ATTACHMENTS instead of attachments) [658](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/658). I added more error tolerance. As a general rule, however, I recommend treating file paths as case-sensitive as some platforms like iOS or LINUX have case-sensitive filenames, and synchronizing your Vault to these platforms will cause you headaches in the future.\n- Text detached from the container if you immediately clicked the text-align buttons on the properties pane while still editing the text in the container for the very first time. [#657](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/657).\n- Can't add text to the second container if the first container has text and the second container is centered around the first one. [#5300](https://github.com/excalidraw/excalidraw/issues/5300)\n","1.6.33":`\n# Fixed\n- Under some special circumstances when you embedded a drawing (guest) into another drawing (host), the host did not update when you modified the guest, until you closed Excalidraw completely and reopened the host. [#637](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/637)\n\n# New\n- ExcalidrawAutomate ${String.fromCharCode(96)}addLabelToLine${String.fromCharCode(96)} adds a text label to a line or arrow. Currently this function only works with simple straight 2-point (start & end) lines.\n${String.fromCharCode(96,96,96)}typescript\naddLabelToLine(lineId: string, label: string): string\n${String.fromCharCode(96,96,96)}\n- ExcalidrawAutomate ${String.fromCharCode(96)}ConnectObjects${String.fromCharCode(96)} now returns the ID of the arrow that was created.`,"1.6.32":"\n## Fixed\n- Filenames of embedded images and markdown documents did not get updated if the drawing was open in a work-pane while you changed the filename of the embedded file (image or markdown document) [632](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/632).\n- When you created a new text element and immediately dragged it, sometimes autosave interrupted the drag action and Excalidraw dropped the element you were dragging [630](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/630)\n- In some edge cases when you had the drawing open on your desktop and you also opened the same image on your tablet, Sync seemed to work in the background but the changes did not appear on the desktop until you closed and opened the drawing again. [629](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/629)\n- LaTeX support: Excalidraw must download a javascript library from one of the hosting sites for MathJax tex2svg. It seems that some people do not have access to the URL recommended in the first place by [MathJax](https://docs.mathjax.org/en/latest/web/start.html). If LaTeX formulas do not render correctly in Excalidraw, try changing the source server under Compatibility Settings in Excalidraw Plugin Settings. [628](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/628)","1.6.31":"\nMinor update:\n\n## Fixes\n- Color picker hotkeys were not working. They are working again [627](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/627)\n- I updated MathJax (LaTeX) to the newest (3.2.1) release.","1.6.30":"\n## Fixed\n- The load stencil library button stopped working after 1.6.29 due to an error in the core Excalidraw package. It is now fixed. [#625](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/625).\n- On iPad (probably other Obsidian mobile devices as well) after opening the command palette the positioning of the pointer was off. From now on, the pointer is automatically re-calibrated every 5 seconds.\n- I improved shared-vault collaboration sync. If the open file has not been saved for the last 5 minutes (i.e. you are not working on the drawing actively), and a newer remote version of the file is received via sync, then the remote file will simply overwrite the local file (i.e. the behavior of Excalidraw Obsidian prior to implementing Shared (Multiplayer) Vault Synchronization support in 1.6.29). This solution will support active collaboration when parties participating are actively editing the drawing, but also caters to the scenario when you open a drawing on one device (e.g. your desktop) and once you are finished editing you do not close the drawing, but simply put your PC to sleep... then later you edit the same drawing on your tablet. When you turn your desktop PC on the next time, the changes you've made on your tablet will be synchronized by Obsidian sync. In this case the changes from your tablet should be honored. If you have not edited the open drawing for more then 5 minutes (like in this scenario) there is no value in running the file comparison between the local version and the received one. This approach reduces the probability of running into sync conflicts.","1.6.29":"\n## New\n- I implemented sync support inspired by the new [Obsidian Multiplayer Sync](https://youtu.be/ZyCPhbd51eo) feature (available in insider build v0.14.10). \n - To manage expectations, this is not real-time collaboration like on Excalidraw.com. Synchronization is delayed by the frequency of the autosave timer (every 10 secs) and the speed of Obsidian sync. Also if a file has conflicting versions, Obsidian sync may delay the delivery of the changed file.\n - Even if you are not using multiplayer Obsidian Vaults, you may benefit from the improved synchronization, for example when using the freedraw tool on your tablet or phone, and in parallel editing the same drawing (e.g. typing text) on your desktop. I frequently do this in a mind-mapping scenario.\n - If the same Excalidraw sketch is open on multiple devices then Excalidraw will try to merge changes into the open drawing, thus parallel modifications on different devices are possible. If the same element is edited by multiple parties at the same time, then the foreign (received) version will be honored and the local changes lost. \n\n## Fixed:\n- Default embed width setting stopped working. [#622](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/622)\n- The link tooltip gets stuck on screen after Excalidraw closes [#621](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/621)\n- Layout error when using the Workspaces core plugin. [#28](https://github.com/zsviczian/excalibrain/issues/28)","1.6.28":'\n## New\n- When dropping a link from a DataView query into Excalidraw the link will honor your "New link format" preferences in Obsidian. It will add the "shortest path when possible", if that is your setting. If the link includes a block or section reference, then the link will automatically include an alias, such that only the filename is displayed (shortest path possible allowing) [#610](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/610)\n- If Excalidraw is in a Hover Editor and you open a link in another pane by CTRL+SHIFT+Click then the new page will open in the main workspace, and not in a split pane in the hover editor.\n\n## Fixed\n- New text elements get de-selected after auto-save [#609](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/609)\n- Update opacity of bound text when the opacity of the container is updated [#5142](https://github.com/excalidraw/excalidraw/pull/5142)\n- ExcalidrawAutomate: openFileInNewOrAdjacentLeaf() function. This also caused an error when clicking a link in Excalidraw in a hover window, when there were no leaves in the main workspace view.',"1.6.27":"\n## New Features\n- While these new features are benefitial for all Excalidraw Automation projects, the current changes are mainly in support of the [ExcaliBrain](https://youtu.be/O2s-h5VKCas) integration. See detailed [Release Notes](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.27) on GitHub.\n","1.6.26":`\n## Fixed\n- Dragging multiple files onto the canvas will now correctly [#589](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/589)\n - add multiple links\n - or if you hold the CTRL/(SHIFT on Mac) while dropping the files, then adding multiple images\n- Dropped images and links were not selectable with the selection tool until the file was saved. This is now fixed.\n- Display the linked block/section on link-hover instead of the full page. [#597](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/597)\n- Hover preview without CTRL/CMD works again. Requires configuration in plugin settings. [#595](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/595)\n- If you embed the same markdown document into a drawing multiple times, you can now display different sections of the document in each embedded object. [#601](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/601).\n- If you make a copy of an equation and edit this copy, the original equation will remain unchanged [#593](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/593)\n\n## New Features\n- When you drag files from Dataview-results onto the canvas the obsidian:// urls will be converted into wiki links.[#599](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/599)\n- I added one more frontmatter key: ${String.fromCharCode(96)}excalidraw-linkbutton-opacity: ${String.fromCharCode(96)} This sets the opacity of the blue link-button in the top right corner of the element, overriding the respective setting in plugin settings. Valid values are numbers between 0 and 1, where 0 means the button is fully transparent.\n\n## New Excalidraw Automate Features\n- As part of building the new [ExcaliBrain](https://youtu.be/O2s-h5VKCas) plugin, I've added a number of integration features. See the GitHub [Release Notes](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.26) for details.\n`,"1.6.25":`\n## Fixed\n- Pinch-zoom in view mode was broken ([#5001](https://github.com/excalidraw/excalidraw/pull/5001))\n- The add image button on iPad was not working ([#5038](https://github.com/excalidraw/excalidraw/pull/5038) & [#584](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/584))\n\n## New Features\n- If Excalidraw is open in a [hover-editor](https://github.com/nothingislost/obsidian-hover-editor) when opening a link in a new pane Excalidraw will now open the link in the main workspace and not by splitting the view inside the hover-editor. \n- Excalidraw ScriptEngine settings\n - Script Engine settings now render HTML descriptions\n - If the ${String.fromCharCode(96)}height${String.fromCharCode(96)} property of a text setting is set, the corresponding text input field will be rendered as a textArea with the specified height.\n`,"1.6.24":"\n## Fixed\n- Link fixes:\n - Shift+Click on an element link (i.e. a link attached to a rectangle, ellipse, etc) did not open the link in a new leaf.\n - Clicking a link and opening it in a new leaf will now make the new leaf active and focused after the click.\n- Pointer calibration:\n - Opening an Excalidraw drawing with the [hover-editor](https://github.com/nothingislost/obsidian-hover-editor) and dragging the editor to another location corrupted the calibration of the pointer in Excalidraw. Similarly, when rearranging workspace panes by dragging, Excalidraw lost pointer calibration.\n\n## New Features\n### From Excalidraw.com\n- Element locking: The lock and unlock action is in the context menu.\n\n### Plugin\n- Any element that has a link, ctrl/cmd+clicking anywhere on the object will trigger the link action. You no longer have to go to the link icon. ([#541](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/541#issuecomment-1075578365))\n","1.6.23":`\n## Fixed:\n- I have received some user feedback about cases where the text separated from the sticky note. This version comes with a cleanup algorithm that will try to automatically resolve these issues.\n- Autosave did not notice changes in a very obscure case, when you opened a drawing, resized an element, and without deselecting the element you immediately closed the drawing. ([565](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/565))\n- CTRL+Enter to create a task did not work in hover-editor when opened from Excalidraw. Now it does! Thanks @pjeby! ([567](https://github.com/zsviczian/obsidian-excalidraw-plugin/pull/567))\n\n## New Features\n- If you have the [Obsidian-Latex](https://github.com/xldenis/obsidian-latex) plugin installed, from now Excalidraw will also process the ${String.fromCharCode(96)}preambles.sty${String.fromCharCode(96)} file. ( [563](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/563))\n- I added a new setting ${String.fromCharCode(96)}Embed & Export >> If found, use the already exported image for preview${String.fromCharCode(96)}. This setting works in conjunction with the ${String.fromCharCode(96)}Auto-export SVG/PNG${String.fromCharCode(96)} settings. If an exported image that matches the file name of the drawing is available, use that image instead of generating a preview image on the fly. This will result in faster previews especially when you have many embedded objects in the drawing, however, it may happen that your latest changes are not displayed and that the image will not automatically match your Obsidian theme in case you have changed the Obsidian theme since the export was created. This setting only applies to embedding images into markdown documents. For a number of reasons, the same approach cannot be used to expedite the loading of drawings with many embedded objects. See release notes for a [demo video](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.22).\n`,"1.6.22":'\n## Fixed:\n- "Create a new drawing - IN THE CURRENT ACTIVE PANE - and embed into active document" did not work as intended when an Excalidraw pane was already open. [#559](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/559)\n- [Obsidian-hover-editor](https://github.com/nothingislost/obsidian-hover-editor) related improvements [#555](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/555):\n - hovering triggered many hover preview windows in quick succession, and in some cases raised dozens of errors in the Developer Console\n - hover-editors were not visible in Excalidraw fullscreen mode\n\n## Minor new features:\n- Activating the eraser with key "e" will toggle the active tool and back. So for example if you are drawing a freedraw shape, you can press "e" to delete a few strokes, then press "e" again to continue drawing. On desktop PCs many styluses allow you to configure the pen button to trigger keypress "e". \n- New setting to enable penMode by default.\n- I increased the file size limit for images you paste into Excalidraw from 2MB to 20MB. You should however avoid very large images as they will impact the overall performance of the canvas. ([#557](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/557))\n',"1.6.21":`\nBefore I move on to implementing further features, I spent this week with further stabilizing and debugging the plugin. Hopefully this will result in a smoother, better experince for you all.\n\n## Fixed\n- Links in drawings (e.g. text elements or embedded images) were sometimes not updating when the source file was moved or renamed in your Vault. The issue happend when you had the drawing and the linked file open in panes next to each other. This has led to broken links. ([#546](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/546))\n- To remove complexity and potential error, I have hidden the autosave settings. From now, autosave is now always enabled. Excalidraw will attempt to save your drawing every 10 seconds, or if you are actively engaged in drawing a shape at that very moment (e.g. you are busy with a freedraw line), then autosave will save the drawing at the earliest next opportunity. I imlemented further triggers to save the drawing when there are changes in the drawing and you click outside the drawing canvas. There was a rare error involving text elements, that when happened blocked saving of the file. This error is now properly handeled. Also from now, you will receive a warning message if for any reason save encountered problems. \n- If you have two heading sections in your drawing, e.g. ${String.fromCharCode(96)}# Section abc${String.fromCharCode(96)} and ${String.fromCharCode(96)}# Section abc def${String.fromCharCode(96)}, then referencing ${String.fromCharCode(96)}[[#Section abc]]${String.fromCharCode(96)} in a link will highlight both text elements when clicking the link. These section references now work as expected. ([#530](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/530))`,"1.6.20":`\n
\n\n
\n\n## Fixed\n- ${String.fromCharCode(96)}ExcalidrawAutomate.create()${String.fromCharCode(96)} threw an error [539](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/539)\n\n## New Features\n### From excalidraw.com\n- Bind/unbind text to/from container [4935](https://github.com/excalidraw/excalidraw/pull/4935)\n\n### Plugin\nFrontmatter tags to customize image export at a file level [519](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/519). If these keys are present they will override the default excalidraw embed and export settings.\n- ${String.fromCharCode(96)}excalidraw-export-transparent: true${String.fromCharCode(96)}\n - true == Transparent / false == with background. \n- ${String.fromCharCode(96)}excalidraw-export-dark${String.fromCharCode(96)}\n - true == Dark mode / false == light mode.\n- ${String.fromCharCode(96)}excalidraw-export-svgpadding${String.fromCharCode(96)}\n - This only affects export to SVG. Specify the export padding for the image\n- ${String.fromCharCode(96)}excalidraw-export-pngscale${String.fromCharCode(96)}\n - This only affects export to PNG. Specify the export scale for the image. The typical range is between 0.5 and 5, but you can experiment with other values as well.\n`,"1.6.19":"\nThis is a minor update fixing left-handed mode on iOS, and deploying improvements to the new Excalidraw Eraser.\n","1.6.18":`\n
\n\n
\n\n## Fixed\n- Modifying properties of a text element in tray mode. [496](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/496)\n- Friendly page aliases with iframely should work more reliably now.\n- I further improved resilience of loading from a damaged Excalidraw.md file.\n\n## New Features\n### From excalidraw.com\n- Added Eraser [4887](https://github.com/excalidraw/excalidraw/pull/4887)\n\n### Plugin\n- New setting for default transcluded-text line-wrap length. This is the default value for "wrapAt" in ${String.fromCharCode(96)}![[file#^block]]{wrapAt}${String.fromCharCode(96)}. Wrapping text using this feature will insert linebreaks in the transcluded text. An alternative approach is to transclude text inside sticky notes, in which case Excalidraw will automatically take care of text wrapping depending on the sticky note's width. [228](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/228)\n- New command palette action to toggle fullscreen mode, so you can assign a hotkey.\n- I added basic support for left-handed users. Enable it in plugin settings under the "Display" section. Currently, only affects the position of the tray in tray-mode. [510](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/510)\n- More flexible filename settings. ⚠ Due to the change, current settings may behave slightly differently compared to before. ⚠ [470](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/470)\n`,"1.6.17":`\n
\n\n
\n\n## Fixed\n- Freedraw shape's background color was missing in the SVG export. [#443](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/443)\n- In rare cases, when you only changed the background color of the drawing or edited the dimensions of an embedded markdown document, or changed an existing LaTeX formula, and then moved to another document in the vault, these changes did not get saved. [#503](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/503)\n- I resolved an Excalidraw Automate glitch with word wrapping in containers. EA generated containers with fixed line breaks. The same error also affected the conversion of drawings from the "legacy" Excalidraw.com file format.\n- When you allow/disable autosave in settings, this change will immediately take effect for all open Excalidraw workspace leaves. Until now autosave was activated only after you closed and reopened the Excalidraw view. [#502](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/502)\n- When you create a text element containing a ${String.fromCharCode(96,96,96)}[[markdown link]]${String.fromCharCode(96,96,96)} in raw mode, the new link was parsed nonetheless, and sometimes the link disappeared, leaving only the parsed text without the actual link. Creating links in raw-mode now works correctly.\n\n## New Features\n- The most recent 5 custom colors from the canvas are now added as color options to the element stroke and element background palette. [#4843](https://github.com/excalidraw/excalidraw/pull/4843)\n- Vertical text alignment for text in sticky notes [#4852](https://github.com/excalidraw/excalidraw/pull/4852)\n- Markdown embeds into Excalidraw now receive default styling, including that of tables, blockquotes, and code blocks. I also added a new setting and corresponding frontmatter-key to set the border-color for the embedded markdown document. You can override plugin settings at the document level by adding ${String.fromCharCode(96,96,96)}excalidraw-border-color: steelblue${String.fromCharCode(96,96,96)} to the markdown document you want to embed into your drawing. Valid values are css-color-name|#HEXcolor|any-other-html-standard-format.\n- In Obsidian search, when the text you were searching for is found in an Excalidraw document, clicking the link in search-results will open the drawing with the matching text element selected and zoomed.\n- Excalidraw now supports linking to text elements on the canvas and linking to non-text objects. \n1) You can reference text headings just the same as markdown headings in a document\ni.e. you have a text element that includes a valid markdown heading:\n${String.fromCharCode(96,96,96)}markdown\n# My Heading\ndetails...\n${String.fromCharCode(96,96,96)}\nor \n${String.fromCharCode(96,96,96)}markdown\ntext element text\n# my reference\n${String.fromCharCode(96,96,96)}\nYou can reference these like this respectively: ${String.fromCharCode(96,96,96)}[[#My Heading|display alias]]${String.fromCharCode(96,96,96)} and ${String.fromCharCode(96,96,96)}[[#my reference|alias]]${String.fromCharCode(96,96,96)}\n\n![image](https://user-images.githubusercontent.com/14358394/156890231-5a23bcb3-40a4-4ad7-b366-74c328620159.png)\n\n2) You can also reference element ids similar to block references\n- Links take this form ${String.fromCharCode(96,96,96)}[[#^elementID|alias]]${String.fromCharCode(96,96,96)}\n- Linking is supported by a new action on the Obsidian Tools Panel\n![image](https://user-images.githubusercontent.com/14358394/156894011-6442c3d6-aaff-43a8-bd77-513e450484ba.png)\n\n[Release Notes on GitHub](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.17)\n`,"1.6.16":'\n
\n\n
\n\n\n## Fixed\n- CMD+Drag from the Obsidian File Manager does not work on Mac. You can now use SHIFT+Drag to embed an image or markdown document into a scene. ([#468](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/468))\n- Excalidraw Compressed JSON is now cut to smaller chunks (64 characters per paragraph, instead of the earlier 1024 characters). This should address search performance issues. ([#484](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/484))\n\n## New Features\n- I added the Obsidian Tools Panel\n - Click the Obsidian button to access the panel.\n - The tools panel contains key plugin commands and user / downloaded Excalidraw scripts.\n - Drag the panel with the handle at the top. Single click on the top to collapse the panel.\n - On Mobile press and hold the drag handle before dragging, to avoid activating the Obsidian slide in menus.\n - On Mobile long touch individual buttons on the panel to access tooltips.\n - Reinstall Excalidraw scripts to get the icons.\n- If you hold down SHIFT while resizing a sticky note, the text size will scale instead of text wrapping. ([Excalidraw tweet](https://twitter.com/aakansha1216/status/1496116528890417155?s=20&t=taXjA6I9Nd0T-C0wYBsG5g))\n- SVG export now includes links ([#4791](https://github.com/excalidraw/excalidraw/pull/4791))\n- Added full screen mode for Obsidian Mobile\n- Release notes\n - disable popup in settings\n - access release notes via the command palette, or the button on the tools panel\n\n[Release Notes on GitHub](https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.6.16)\n\n[![support-membership](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/support-tiers.jpg)](https://ko-fi.com/zsolt)\n'};class ReleaseNotes extends obsidian.Modal{constructor(e,A,t){super(e),this.plugin=A,this.version=t}onOpen(){var e;this.containerEl.classList.add("excalidraw-release"),this.titleEl.setText(`Welcome to Excalidraw ${null!==(e=this.version)&&void 0!==e?e:""}`),this.createForm()}async onClose(){this.contentEl.empty(),await this.plugin.loadSettings(),this.plugin.settings.previousRelease=PLUGIN_VERSION,await this.plugin.saveSettings()}async createForm(){let e=this.plugin.settings.previousRelease;e=this.version===e?"0.0.0":e;const A=this.version?Object.keys(RELEASE_NOTES).filter((A=>"Intro"===A||isVersionNewerThanOther(A,e))).map((e=>`${"Intro"===e?"":`# ${e}\n`}${RELEASE_NOTES[e]}`)).slice(0,10).join("\n\n---\n"):FIRST_RUN;await obsidian.MarkdownRenderer.renderMarkdown(A,this.contentEl,"",this.plugin),this.contentEl.createEl("p",{text:""},(e=>{e.style.textAlign="right",e.createEl("button",{text:"Close"}).onclick=()=>this.close()}))}}const TOOLS_PANEL_WIDTH=228;class ToolsPanel extends React__namespace.Component{constructor(e){super(e),this.pos1=0,this.pos2=0,this.pos3=0,this.pos4=0,this.penDownX=0,this.penDownY=0,this.previousWidth=0,this.previousHeight=0,this.onRightEdge=!1,this.onBottomEdge=!1;const A=e.view.plugin.getPackage(e.view.ownerWindow).react;this.containerRef=A.createRef(),this.state={visible:e.visible,top:50,left:200,theme:"dark",excalidrawViewMode:!1,minimized:!1,isFullscreen:!1,isPreviewMode:!0,scriptIconMap:{}}}updateScriptIconMap(e){this.setState((()=>({scriptIconMap:e})))}setPreviewMode(e){this.setState((()=>({isPreviewMode:e})))}setFullscreen(e){this.setState((()=>({isFullscreen:e})))}setExcalidrawViewMode(e){this.setState((()=>({excalidrawViewMode:e})))}toggleVisibility(e){this.setTopCenter(e),this.setState((e=>({visible:!e.visible})))}setTheme(e){this.setState((A=>({theme:e})))}setTopCenter(e){this.setState((()=>({left:(this.containerRef.current.clientWidth-228-(e?0:232))/2+this.containerRef.current.parentElement.offsetLeft+(e?0:232),top:64+this.containerRef.current.parentElement.offsetTop})))}updatePosition(e=0,A=0){this.setState((()=>{const{offsetTop:t,offsetLeft:n,clientWidth:i,clientHeight:a}=this.containerRef.current.firstElementChild,r=t-e,s=n-A,{clientWidth:o,clientHeight:l,offsetTop:c,offsetLeft:d}=this.containerRef.current.parentElement;return this.previousHeight=l,this.previousWidth=o,this.onBottomEdge=r>=l-a+c,this.onRightEdge=s>=o-i+d,{top:r{e.preventDefault(),Math.abs(this.penDownX-this.pos3)>5||Math.abs(this.penDownY-this.pos4)>5||this.setState((e=>({minimized:!e.minimized})))},onPointerDown:e=>{const A=e=>{e.preventDefault(),this.pos1=this.pos3-e.clientX,this.pos2=this.pos4-e.clientY,this.pos3=e.clientX,this.pos4=e.clientY,this.updatePosition(this.pos2,this.pos1)},t=()=>{var e,n;null===(e=this.props.view.ownerDocument)||void 0===e||e.removeEventListener("pointerup",t),null===(n=this.props.view.ownerDocument)||void 0===n||n.removeEventListener("pointermove",A)};e.preventDefault(),this.penDownX=this.pos3=e.clientX,this.penDownY=this.pos4=e.clientY,this.props.view.ownerDocument.addEventListener("pointerup",t),this.props.view.ownerDocument.addEventListener("pointermove",A)}},React__namespace.createElement("svg",{"aria-hidden":"true",focusable:"false",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 228 26"},React__namespace.createElement("path",{stroke:"var(--icon-fill-color)",strokeWidth:"2",d:"M40,7 h148 M40,13 h148 M40,19 h148"}))),React__namespace.createElement("div",{className:"Island App-menu__left scrollbar",style:{maxHeight:"350px",width:"initial","--padding":2,display:this.state.minimized?"none":"block"}},React__namespace.createElement("div",{className:"panelColumn"},React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Utility actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"search",title:t$d("SEARCH"),action:()=>{search(this.props.view)},icon:ICONS.search,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"release-notes",title:t$d("READ_RELEASE_NOTES"),action:()=>{new ReleaseNotes(this.props.view.app,this.props.view.plugin,PLUGIN_VERSION).open()},icon:ICONS.releaseNotes,view:this.props.view}),null===this.state.isPreviewMode?React__namespace.createElement(ActionButton,{key:"convert",title:t$d("CONVERT_FILE"),action:()=>{this.props.view.convertExcalidrawToMD()},icon:ICONS.convertFile,view:this.props.view}):React__namespace.createElement(ActionButton,{key:"viewmode",title:this.state.isPreviewMode?t$d("PARSED"):t$d("RAW"),action:()=>{this.state.isPreviewMode?this.props.view.changeTextMode(TextMode.raw):this.props.view.changeTextMode(TextMode.parsed)},icon:this.state.isPreviewMode?ICONS.rawMode:ICONS.parsedMode,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"tray-mode",title:t$d("TRAY_MODE"),action:()=>{this.props.view.toggleTrayMode()},icon:ICONS.trayMode,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"fullscreen",title:this.state.isFullscreen?t$d("EXIT_FULLSCREEN"):t$d("GOTO_FULLSCREEN"),action:()=>{this.state.isFullscreen?this.props.view.exitFullscreen():this.props.view.gotoFullscreen()},icon:this.state.isFullscreen?ICONS.exitFullScreen:ICONS.gotoFullScreen,view:this.props.view}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Export actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"lib",title:t$d("DOWNLOAD_LIBRARY"),action:()=>{this.props.view.plugin.exportLibrary()},icon:ICONS.exportLibrary,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"svg",title:t$d("EXPORT_SVG"),action:()=>{this.props.view.saveSVG(),new obsidian.Notice(`File saved: ${getIMGFilename(this.props.view.file.path,"svg")}`)},icon:ICONS.exportSVG,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"png",title:t$d("EXPORT_PNG"),action:()=>{this.props.view.savePNG(),new obsidian.Notice(`File saved: ${getIMGFilename(this.props.view.file.path,"png")}`)},icon:ICONS.exportPNG,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"excalidraw",title:t$d("EXPORT_EXCALIDRAW"),action:()=>{this.props.view.exportExcalidraw()},icon:ICONS.exportExcalidraw,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"md",title:t$d("OPEN_AS_MD"),action:()=>{this.props.view.openAsMarkdown()},icon:ICONS.switchToMarkdown,view:this.props.view}))),React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,"Insert actions"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},React__namespace.createElement(ActionButton,{key:"image",title:t$d("INSERT_IMAGE"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertImageDialog.start(this.props.view)},icon:ICONS.insertImage,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"insertMD",title:t$d("INSERT_MD"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertMDDialog.start(this.props.view)},icon:ICONS.insertMD,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"latex",title:t$d("INSERT_LATEX"),action:()=>{this.props.centerPointer(),insertLaTeXToView(this.props.view)},icon:ICONS.insertLaTeX,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"link",title:t$d("INSERT_LINK"),action:()=>{this.props.centerPointer(),this.props.view.plugin.insertLinkDialog.start(this.props.view.file.path,this.props.view.addText)},icon:ICONS.insertLink,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"link-to-element",title:t$d("INSERT_LINK_TO_ELEMENT"),action:e=>{this.props.view.copyLinkToSelectedElementToClipboard(e[CTRL_OR_CMD]?"group=":e.shiftKey?"area=":"")},icon:ICONS.copyElementLink,view:this.props.view}),React__namespace.createElement(ActionButton,{key:"import-svg",title:t$d("IMPORT_SVG"),action:e=>{this.props.view.plugin.importSVGDialog.start(this.props.view)},icon:ICONS.importSVG,view:this.props.view}))),this.renderScriptButtons(!1),this.renderScriptButtons(!0)))))}renderScriptButtons(e){if(0===Object.keys(this.state.scriptIconMap).length)return"";const A=`${this.props.view.plugin.settings.scriptFolderPath}/Downloaded/`,t=t=>e?t.startsWith(A):!t.startsWith(A);return 0===Object.keys(this.state.scriptIconMap).filter((e=>t(e))).length?"":React__namespace.createElement("fieldset",null,React__namespace.createElement("legend",null,e?"Downloaded":"User"," Scripts"),React__namespace.createElement("div",{className:"buttonList buttonListIcon"},Object.keys(this.state.scriptIconMap).filter((e=>t(e))).sort().map((A=>{return React__namespace.createElement(ActionButton,{key:A,title:e?this.state.scriptIconMap[A].name.replace("Downloaded/",""):this.state.scriptIconMap[A].name,action:async()=>{const e=this.props.view.app.vault.getAbstractFileByPath(A);e&&e instanceof obsidian.TFile&&this.props.view.plugin.scriptEngine.executeScript(this.props.view,await this.props.view.plugin.app.vault.read(e),this.props.view.plugin.scriptEngine.getScriptName(e))},icon:this.state.scriptIconMap[A].svgString?(t=this.state.scriptIconMap[A].svgString,t=t.replace(/stroke\s*=\s*['"][^"']*['"]/g,"").replace(/width\s*=\s*['"][^"']*['"]/g,"").replace(/height\s*=\s*['"][^"']*['"]/g,"").replace("A.filter((A=>{if(t&&A.type!==t)return!1;const[n,i,a,r]=rotatedDimensions(A);return n<=e.x&&n+a>=e.x&&i<=e.y&&i+r>=e.y})),getTextElementAtPointer=(e,A)=>{const t=A.excalidrawAPI;if(!t)return{id:null,text:null};const n=getElementsAtPointer(e,t.getSceneElements(),"text");if(0==n.length)return{id:null,text:null};if(1===n.length)return{id:n[0].id,text:n[0].text};const i=n.filter((e=>{const t=A.textMode===TextMode.parsed?A.excalidrawData.getRawText(e.id):e.text;return!!t&&(!!t.match(REG_LINKINDEX_HYPERLINK)||!!REGEX_LINK.getRes(t).next().value)}));return 0==i.length?{id:n[0].id,text:n[0].text}:{id:i[0].id,text:i[0].text}},getImageElementAtPointer=(e,A)=>{const t=A.excalidrawAPI;if(!t)return;const n=getElementsAtPointer(e,t.getSceneElements(),"image");return 0===n.length?{id:null,fileId:null}:n.length>=1?{id:n[0].id,fileId:n[0].fileId}:void 0},getElementWithLinkAtPointer=(e,A)=>{const t=A.excalidrawAPI;if(!t)return;const n=getElementsAtPointer(e,t.getSceneElements()).filter((e=>e.link));return 0===n.length?{id:null,text:null}:n.length>=1?{id:n[0].id,text:n[0].link}:void 0};class MenuLinks{constructor(e,A){this.render=(e,A)=>React__namespace.createElement("div",null,"Hello"),this.plugin=e,this.ref=A}}var TextMode;!function(e){e.parsed="parsed",e.raw="raw"}(TextMode||(TextMode={}));const addFiles=async(e,A,t)=>{if(!e||0===e.length||!A)return;const n=A.excalidrawAPI;if(!n)return;if(e=e.filter((e=>e&&e.size&&e.size.height>0&&e.size.width>0)),0===e.length)return;const i=scaleLoadedImage(A.getScene(),e);void 0===t&&(t=i.scene.appState.theme),i.dirty&&await A.updateScene({elements:i.scene.elements,appState:i.scene.appState,commitToHistory:!1});for(const n of e)if(A.excalidrawData.hasFile(n.id)&&A.excalidrawData.getFile(n.id).setImage(n.dataURL,n.mimeType,n.size,t,n.hasSVGwithBitmap),A.excalidrawData.hasEquation(n.id)){const e=A.excalidrawData.getEquation(n.id).latex;A.excalidrawData.setEquation(n.id,{latex:e,isLoaded:!0})}n.addFiles(e)},warningUnknowSeriousError=()=>{new obsidian.Notice("WARNING: Excalidraw ran into an unknown problem!\n\nThere is a risk that your most recent changes cannot be saved.\n\nTo be on the safe side...\n1) Please select your drawing using CTRL/CMD+A and make a copy with CTRL/CMD+C.\n2) Then create an empty drawing in a new pane by CTRL/CMD+clicking the Excalidraw ribbon button,\n3) and paste your work to the new document with CTRL/CMD+V.",6e4)};class ExcalidrawView extends obsidian.TextFileView{constructor(e,A){super(e),this.getScene=null,this.addElements=null,this.getSelectedTextElement=null,this.getSelectedImageElement=null,this.getSelectedElementWithLink=null,this.addText=null,this.refresh=null,this.excalidrawRef=null,this.excalidrawAPI=null,this.excalidrawWrapperRef=null,this.toolsPanelRef=null,this.linksAlwaysOpenInANewPane=!1,this.lastSaveTimestamp=0,this.metaKeyDown=!1,this.ctrlKeyDown=!1,this.shiftKeyDown=!1,this.altKeyDown=!1,this.semaphores={viewunload:!1,scriptsReady:!1,justLoaded:!1,preventAutozoom:!1,autosaving:!1,dirty:null,preventReload:!1,isEditingText:!1,saving:!1,forceSaving:!1,hoverSleep:!1,wheelTimeout:null},this.autosaveTimer=null,this.textMode=TextMode.raw,this.compatibilityMode=!1,this.isEditingTextResetTimer=null,this.id=this.leaf.id,this.getHookServer=()=>{var e;return null!==(e=this.hookServer)&&void 0!==e?e:this.plugin.ea},this.preventReloadResetTimer=null,this.fullscreenModalObserver=null,this.hiddenMobileLeaves=[],this.offsetLeft=0,this.offsetTop=0,this.blockTextModeChange=!1,this.isLoaded=!1,this.activeLoader=null,this.nextLoader=null,this.initialContainerSizeUpdate=!1,this.previousSceneVersion=0,this.previousBackgroundColor="",this.plugin=A,this.excalidrawData=new ExcalidrawData(A),this.hookServer=A.ea}setHookServer(e){this.hookServer=e||this.plugin.ea}preventAutozoom(){this.semaphores.preventAutozoom=!0,setTimeout((()=>this.semaphores.preventAutozoom=!1),1500)}saveExcalidraw(e){if(!e){if(!this.getScene)return!1;e=this.getScene()}const A=`${this.file.path.substring(0,this.file.path.lastIndexOf(".md"))}.excalidraw`,t=app.vault.getAbstractFileByPath(obsidian.normalizePath(A));t&&t instanceof obsidian.TFile?app.vault.modify(t,JSON.stringify(e,null,"\t")):app.vault.create(A,JSON.stringify(e,null,"\t"))}async exportExcalidraw(){this.getScene&&this.file&&(app.isMobile?new Prompt(app,"Please provide filename",this.file.basename,"filename, leave blank to cancel action").openAndGetValue((async e=>{if(!e)return;e=`${e}.excalidraw`;const A=splitFolderAndFilename(this.file.path).folderpath;await checkAndCreateFolder(A);const t=getNewUniqueFilepath(app.vault,e,A);app.vault.create(t,JSON.stringify(this.getScene(),null,"\t")),new obsidian.Notice(`Exported to ${t}`,6e3)})):download("data:text/plain;charset=utf-8",encodeURIComponent(JSON.stringify(this.getScene(),null,"\t")),`${this.file.basename}.excalidraw`))}async svg(e,A){const t={withBackground:getWithBackground(this.plugin,this.file),withTheme:!0};return await getSVG(Object.assign(Object.assign({},e),{appState:Object.assign(Object.assign({},e.appState),{theme:null!=A?A:getExportTheme(this.plugin,this.file,e.appState.theme)})}),t,getExportPadding(this.plugin,this.file))}async saveSVG(e){if(!e){if(!this.getScene)return!1;e=this.getScene()}const A=async(A,t)=>{const n=app.vault.getAbstractFileByPath(obsidian.normalizePath(A)),i=await this.svg(e,t);if(!i)return;const a=(new XMLSerializer).serializeToString(embedFontsInSVG(i,this.plugin));n&&n instanceof obsidian.TFile?await app.vault.modify(n,a):await app.vault.create(A,a)};this.plugin.settings.autoExportLightAndDark?(await A(getIMGFilename(this.file.path,"dark.svg"),"dark"),await A(getIMGFilename(this.file.path,"light.svg"),"light")):await A(getIMGFilename(this.file.path,"svg"))}async png(e,A){const t={withBackground:getWithBackground(this.plugin,this.file),withTheme:!0};return await getPNG(Object.assign(Object.assign({},e),{appState:Object.assign(Object.assign({},e.appState),{theme:null!=A?A:getExportTheme(this.plugin,this.file,e.appState.theme)})}),t,getExportPadding(this.plugin,this.file),getPNGScale(this.plugin,this.file))}async savePNG(e){if(!e){if(!this.getScene)return!1;e=this.getScene()}const A=async(A,t)=>{const n=app.vault.getAbstractFileByPath(obsidian.normalizePath(A)),i=await this.png(e,t);i&&(n&&n instanceof obsidian.TFile?await app.vault.modifyBinary(n,await i.arrayBuffer()):await app.vault.createBinary(A,await i.arrayBuffer()))};this.plugin.settings.autoExportLightAndDark?(await A(getIMGFilename(this.file.path,"dark.png"),"dark"),await A(getIMGFilename(this.file.path,"light.png"),"light")):await A(getIMGFilename(this.file.path,"png"))}async save(e=!0,A=!1){if(!this.isLoaded)return;if(this.semaphores.saving)return;this.semaphores.saving=!0;let t=!1;if(this.getScene&&this.excalidrawAPI&&this.isLoaded&&this.file&&app.vault.getAbstractFileByPath(this.file.path)){try{const n=Boolean(null!==this.semaphores.dirty&&this.semaphores.dirty||this.semaphores.autosaving||A),i=this.getScene();if(this.compatibilityMode?await this.excalidrawData.syncElements(i):await this.excalidrawData.syncElements(i,this.excalidrawAPI.getAppState().selectedElementIds)&&await this.loadDrawing(!1,this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((e=>e.isDeleted))),n&&(this.preventReloadResetTimer&&(clearTimeout(this.preventReloadResetTimer),this.preventReloadResetTimer=null),this.semaphores.preventReload=e,await super.save(),t=this.lastSaveTimestamp===this.file.stat.mtime&&!e&&A,this.lastSaveTimestamp=this.file.stat.mtime,this.clearDirty(),e)){const e=this;this.preventReloadResetTimer=setTimeout((()=>e.semaphores.preventReload=!1),2e3)}if(!t&&!this.semaphores.autosaving&&!this.semaphores.viewunload){const e=this.excalidrawData.autoexportPreference;(e===AutoexportPreference.inherit&&this.plugin.settings.autoexportSVG||e===AutoexportPreference.both||e===AutoexportPreference.svg)&&this.saveSVG(),(e===AutoexportPreference.inherit&&this.plugin.settings.autoexportPNG||e===AutoexportPreference.both||e===AutoexportPreference.png)&&this.savePNG(),!this.compatibilityMode&&this.plugin.settings.autoexportExcalidraw&&this.saveExcalidraw()}}catch(e){errorlog({where:"ExcalidrawView.save",fn:this.save,error:e}),warningUnknowSeriousError()}this.semaphores.saving=!1,t&&this.reload(!0,this.file)}else this.semaphores.saving=!1}getViewData(){if(!this.getScene)return this.data;if(!this.excalidrawData.loaded)return this.data;const e=this.getScene();if(!this.compatibilityMode){let e=this.data.search(/(^%%\n)?# Text Elements\n/m);if(-1==e&&(e=this.data.search(/(%%\n)?# Drawing\n/)),-1==e)return this.data;let A=this.data.substring(0,e).replace(/excalidraw-plugin:\s.*\n/,"excalidraw-plugin: "+(this.textMode===TextMode.raw?"raw\n":"parsed\n"));const t=/(^---[\w\W]*?---\n)(!\[\[.*?]]\n(%%\n)?)/m;A.match(t)&&(A=A.replace(t,"$1")),this.excalidrawData.disableCompression||(this.excalidrawData.disableCompression=this.isEditedAsMarkdownInOtherView());const n=A+this.excalidrawData.generateMD(this.excalidrawAPI.getSceneElementsIncludingDeleted().filter((e=>e.isDeleted)));return this.excalidrawData.disableCompression=!1,n}return this.compatibilityMode?JSON.stringify(e,null,"\t"):this.data}addFullscreenchangeEvent(){this.contentEl.onfullscreenchange=()=>{this.plugin.settings.zoomToFitOnResize&&this.zoomToFit(),this.isFullscreen()||(this.clearFullscreenObserver(),this.contentEl.removeAttribute("style")),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(this.isFullscreen())}}restoreMobileLeaves(){this.hiddenMobileLeaves.length>0&&(this.hiddenMobileLeaves.forEach((e=>{e[0].containerEl.style.display=e[1]})),this.hiddenMobileLeaves=[])}gotoFullscreen(){var e;if(this.plugin.leafChangeTimeout&&(clearTimeout(this.plugin.leafChangeTimeout),this.plugin.leafChangeTimeout=null),this.excalidrawWrapperRef){if(this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(!0),this.plugin.device.isPhone){obsidian.Platform.isIosApp&&(this.restoreMobileLeaves(),app.workspace.getLayout().main.children.filter((e=>"leaf"===e.type)).forEach((e=>{const A=app.workspace.getLeafById(e.id);A!==this.leaf&&(this.hiddenMobileLeaves.push([A,A.containerEl.style.display]),A.containerEl.style.display="none")})));const e=document.createElement("style");e.id="excalidraw-full-screen",e.textContent="\n .workspace-leaf-content .view-content {\n padding: 0px !important;\n }\n .view-header {\n height: 1px !important;\n }\n .status-bar {\n display: none !important;\n }";const A=document.getElementById(e.id);A&&document.head.removeChild(A),document.head.appendChild(e)}this.contentEl.requestFullscreen(),null===(e=this.excalidrawWrapperRef.current.firstElementChild)||void 0===e||e.focus(),this.contentEl.setAttribute("style","padding:0px;margin:0px;"),this.fullscreenModalObserver=new MutationObserver((e=>{if(1!==e.length)return;if(!e[0].addedNodes||1!==e[0].addedNodes.length)return;const A=e[0].addedNodes[0];if(A.nodeType!==Node.ELEMENT_NODE)return;const t=A;t.classList.contains("modal-container")&&(this.contentEl.appendChild(t),t.querySelector("input").focus())})),this.fullscreenModalObserver.observe(this.ownerDocument.body,{childList:!0,subtree:!1})}}clearFullscreenObserver(){this.fullscreenModalObserver&&(this.fullscreenModalObserver.disconnect(),this.fullscreenModalObserver=null)}isFullscreen(){return this.hiddenMobileLeaves.length>0||this.ownerDocument.fullscreenEnabled&&this.ownerDocument.fullscreenElement===this.contentEl}exitFullscreen(){if(console.log("Exit Fullscreen"),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setFullscreen(!1),this.plugin.device.isPhone){this.restoreMobileLeaves();const e=document.getElementById("excalidraw-full-screen");e&&document.head.removeChild(e)}this.ownerDocument.exitFullscreen()}async handleLinkClick(e,A){var t,n,i,a;const r=this.ownerDocument.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");r&&this.ownerDocument.body.removeChild(r);const s=this.getSelectedTextElement(),o=(null==s?void 0:s.id)?null:this.getSelectedImageElement(),l=(null==o?void 0:o.id)||(null==s?void 0:s.id)?null:this.getSelectedElementWithLink();let c=null,d=null,h=null;if((null==s?void 0:s.id)||(null==l?void 0:l.id)){if(h=null!==(t=null==l?void 0:l.text)&&void 0!==t?t:this.textMode===TextMode.parsed?this.excalidrawData.getRawText(s.id):s.text,!h)return;if(h=h.replaceAll("\n",""),this.getHookServer().onLinkClickHook){const e=null!==(n=s.id)&&void 0!==n?n:l.id,t=this.excalidrawAPI.getSceneElements().filter((A=>A.id===e))[0];try{if(!this.getHookServer().onLinkClickHook(t,h,A,this,this.getHookServer()))return}catch(e){errorlog({where:"ExcalidrawView.handleLinkClick selectedText.id!==null",fn:this.getHookServer().onLinkClickHook,error:e})}}if(h.match(REG_LINKINDEX_HYPERLINK))return void window.open(h,"_blank");const i=REGEX_LINK.getRes(h).next();if(!i.value){const e=h.matchAll(/#([\p{Letter}\p{Emoji_Presentation}\p{Number}\/_-]+)/gu).next();if(!e.value||e.value.length<2)return;const A=app.workspace.getLeavesOfType("search");if(0==A.length)return;return A[0].view.setQuery(`tag:${e.value[1]}`),app.workspace.revealLeaf(A[0]),void(this.isFullscreen()&&this.exitFullscreen())}if(h=REGEX_LINK.getLink(i),h.match(REG_LINKINDEX_HYPERLINK))return void window.open(h,"_blank");if(h.search("#")>-1){const e=getLinkParts(h,this.file);d=`#${e.isBlockRef?"^":""}${e.ref}`,h=e.path}if(h.match(REG_LINKINDEX_INVALIDCHARS))return void new obsidian.Notice(t$d("FILENAME_INVALID_CHARS"),4e3);c=e.app.metadataCache.getFirstLinkpathDest(h,e.file.path)}if(null==o?void 0:o.id){if(this.excalidrawData.hasEquation(o.fileId)){const e=this.excalidrawData.getEquation(o.fileId).latex;return void new Prompt(app,t$d("ENTER_LATEX"),e,"").openAndGetValue((async A=>{A&&A!==e&&(this.excalidrawData.setEquation(o.fileId,{latex:A,isLoaded:!1}),await this.save(!1),await updateEquation(A,o.fileId,this,addFiles,this.plugin),this.setDirty(1))}))}if(await this.save(!1),this.excalidrawData.hasFile(o.fileId)){if(A.altKey){const e=this.excalidrawData.getFile(o.fileId);if("md"===e.file.extension&&!this.plugin.isExcalidrawFile(e.file))return void new Prompt(app,"Customize the link",e.linkParts.original,"","Do not add [[square brackets]] around the filename!
Follow this format when editing your link:
filename#^blockref|WIDTHxMAXHEIGHT").openAndGetValue((async A=>{A&&e.linkParts.original!==A&&(e.resetImage(this.file.path,A),await this.save(!1),await this.loadSceneFiles(),this.setDirty(2))}))}h=this.excalidrawData.getFile(o.fileId).file.path,c=this.excalidrawData.getFile(o.fileId).file}}if(h){if(this.getHookServer().onLinkClickHook){const e=null!==(a=null!==(i=o.id)&&void 0!==i?i:s.id)&&void 0!==a?a:l.id,t=this.excalidrawAPI.getSceneElements().filter((A=>A.id===e))[0];try{if(!this.getHookServer().onLinkClickHook(t,h,A,this,this.getHookServer()))return}catch(e){errorlog({where:"ExcalidrawView.handleLinkClick selectedText.id===null",fn:this.getHookServer().onLinkClickHook,error:e})}}try{if(A.shiftKey&&this.isFullscreen()&&this.exitFullscreen(),!c)return void new NewFileActions(this.plugin,h,A.shiftKey,!app.isMobile&&A.metaKey,e).open();const t=!app.isMobile&&(A.metaKey&&this.linksAlwaysOpenInANewPane||A.metaKey)?app.workspace.openPopoutLeaf():A.shiftKey||this.linksAlwaysOpenInANewPane?getNewOrAdjacentLeaf(this.plugin,e.leaf):e.leaf;await t.openFile(c,d?{active:!1,eState:{subpath:d}}:void 0)}catch(e){new obsidian.Notice(e,4e3)}}else new obsidian.Notice(t$d("LINK_BUTTON_CLICK_NO_TEXT"),2e4)}onResize(){var e,A;if(this.plugin.leafChangeTimeout)return;const t=this.excalidrawAPI;this.plugin.settings.zoomToFitOnResize&&this.excalidrawRef&&!this.semaphores.isEditingText&&t&&"text"!==(null===(A=null===(e=t.getAppState())||void 0===e?void 0:e.editingElement)||void 0===A?void 0:A.type)&&this.zoomToFit(!1)}getSceneVersion(e){return this.excalidrawGetSceneVersion||(this.excalidrawGetSceneVersion=this.plugin.getPackage(this.ownerWindow).excalidrawLib.getSceneVersion),this.excalidrawGetSceneVersion(e.filter((e=>!e.isDeleted)))}onload(){const e=Boolean(void 0===this.containerEl.onWindowMigrated);app.isMobile||e||this.containerEl.onWindowMigrated((()=>this.leaf.rebuildView()));const A=app.isMobile?document:this.containerEl.ownerDocument;this.ownerDocument=A,this.ownerWindow=this.ownerDocument.defaultView,this.plugin.getPackage(this.ownerWindow),this.semaphores.scriptsReady=!0,this.wheelEvent=e=>{this.semaphores.wheelTimeout&&clearTimeout(this.semaphores.wheelTimeout),this.semaphores.hoverSleep&&this.clearHoverPreview&&this.clearHoverPreview(),this.semaphores.wheelTimeout=setTimeout((()=>{clearTimeout(this.semaphores.wheelTimeout),this.semaphores.wheelTimeout=null}),1e3)},this.containerEl.addEventListener("wheel",this.wheelEvent,{passive:!1}),this.addAction("ScriptEngine",t$d("INSTALL_SCRIPT_BUTTON"),(()=>{new ScriptInstallPrompt(this.plugin).open()})),this.diskIcon=this.addAction("disk",t$d("FORCE_SAVE"),(async()=>{this.semaphores.autosaving||this.semaphores.saving?new obsidian.Notice("Force Save aborted because saving is in progress)"):(this.preventReloadResetTimer&&(clearTimeout(this.preventReloadResetTimer),this.preventReloadResetTimer=null),this.semaphores.preventReload=!1,this.semaphores.forceSaving=!0,await this.save(!1,!0),this.plugin.triggerEmbedUpdates(),this.loadSceneFiles(),this.semaphores.forceSaving=!1,new obsidian.Notice("Save successful",1e3))})),this.textIsRaw_Element=this.addAction("presentation",t$d("RAW"),(()=>this.changeTextMode(TextMode.parsed))),this.textIsParsed_Element=this.addAction("quote-glyph",t$d("PARSED"),(()=>this.changeTextMode(TextMode.raw))),this.linkAction_Element=this.addAction("link",t$d("OPEN_LINK"),(e=>this.handleLinkClick(this,e))),app.isMobile||this.addAction("fullscreen","Press ESC to exit fullscreen mode",(()=>this.gotoFullscreen()));const t=this;app.workspace.onLayoutReady((async()=>{t.contentEl.addClass("excalidraw-view"),await t.addSlidingPanesListner(),t.addParentMoveObserver(),t.onKeyUp=e=>{t.ctrlKeyDown=e[CTRL_OR_CMD],t.shiftKeyDown=e.shiftKey,t.altKeyDown=e.altKey,t.metaKeyDown=e.metaKey},t.onKeyDown=e=>{this.ctrlKeyDown=e[CTRL_OR_CMD],this.shiftKeyDown=e.shiftKey,this.altKeyDown=e.altKey,this.metaKeyDown=e.metaKey},t.ownerWindow.addEventListener("keydown",t.onKeyDown,!1),t.ownerWindow.addEventListener("keyup",t.onKeyUp,!1)})),this.setupAutosaveTimer(),super.onload()}async addSlidingPanesListner(){const e=this;this.slidingPanesListner=()=>{e.refresh&&e.refresh()};let A=app.workspace.rootSplit;for(;!A;)await sleep(50),A=app.workspace.rootSplit;A.containerEl.addEventListener("scroll",this.slidingPanesListner)}removeSlidingPanesListner(){var e;this.slidingPanesListner&&(null===(e=app.workspace.rootSplit.containerEl)||void 0===e||e.removeEventListener("scroll",this.slidingPanesListner))}addParentMoveObserver(){var e;const A=null!==(e=getParentOfClass(this.containerEl,"popover"))&&void 0!==e?e:getParentOfClass(this.containerEl,"workspace-leaf");if(!A)return;const t=A.classList.contains("popover");this.offsetLeft=A.offsetLeft,this.offsetTop=A.offsetTop;const n=this;this.parentMoveObserver=new MutationObserver((async e=>{const A=e[0].target;if(!(A instanceof HTMLElement))return;const{offsetLeft:t,offsetTop:i}=A;t===n.offsetLeft&&i==n.offsetTop||(n.refresh&&n.refresh(),n.offsetLeft=t,n.offsetTop=i)})),this.parentMoveObserver.observe(A,{attributeOldValue:!0,attributeFilter:t?["data-x","data-y"]:["class","style"]})}removeParentMoveObserver(){this.parentMoveObserver&&this.parentMoveObserver.disconnect()}setTheme(e){const A=this.excalidrawAPI;if(!this.excalidrawRef||!A)return;if(this.file&&hasExportTheme(this.plugin,this.file))return;const t=A.getAppState();this.excalidrawData.scene.theme=e,this.updateScene({appState:Object.assign(Object.assign({},t),{theme:e}),commitToHistory:!1})}async changeTextMode(e,A=!0){if(this.compatibilityMode)return;if(this.blockTextModeChange)return;this.blockTextModeChange=!0,this.textMode=e,e===TextMode.parsed?(this.textIsRaw_Element.hide(),this.textIsParsed_Element.show()):(this.textIsRaw_Element.show(),this.textIsParsed_Element.hide()),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.setPreviewMode(e===TextMode.parsed);const t=this.excalidrawAPI;t&&A&&(await this.save(),this.preventAutozoom(),await this.excalidrawData.loadData(this.data,this.file,this.textMode),this.excalidrawData.scene.appState.theme=t.getAppState().theme,await this.loadDrawing(!1),t.history.clear()),this.prevTextMode=this.textMode,this.blockTextModeChange=!1}setupAutosaveTimer(){const e=async()=>{var A;if(!this.isLoaded)return void(this.autosaveTimer=setTimeout(e,this.plugin.settings.autosaveInterval));const t=this.excalidrawAPI;if(!t)return void warningUnknowSeriousError();const n=t.getAppState(),i=null!==n.editingElement;if(this.refresh(),!this.semaphores.dirty||this.semaphores.dirty!=(null===(A=this.file)||void 0===A?void 0:A.path)||!this.plugin.settings.autosave||this.semaphores.forceSaving||this.semaphores.autosaving||i||null!==n.draggingElement)this.autosaveTimer=setTimeout(e,this.plugin.activeExcalidrawView===this&&this.semaphores.dirty&&this.plugin.settings.autosave?1e3:this.plugin.settings.autosaveInterval);else{if(this.autosaveTimer=null,this.excalidrawRef){this.semaphores.autosaving=!0;const e=this;this.save().then((()=>e.semaphores.autosaving=!1))}this.autosaveTimer=setTimeout(e,this.plugin.settings.autosaveInterval)}};this.autosaveTimer&&(clearTimeout(this.autosaveTimer),this.autosaveTimer=null),this.autosaveTimer=setTimeout(e,this.plugin.settings.autosaveInterval)}onunload(){var e,A,t,n,i,a;if(this.restoreMobileLeaves(),this.semaphores.viewunload=!0,null===(e=this.ownerWindow)||void 0===e||e.removeEventListener("keydown",this.onKeyDown,!1),null===(A=this.ownerWindow)||void 0===A||A.removeEventListener("keyup",this.onKeyUp,!1),this.containerEl.removeEventListener("wheel",this.wheelEvent,!1),this.getHookServer().onViewUnloadHook)try{this.getHookServer().onViewUnloadHook(this)}catch(e){errorlog({where:"ExcalidrawView.onunload",fn:this.getHookServer().onViewUnloadHook,error:e})}const r=null===(n=null===(t=this.containerEl)||void 0===t?void 0:t.ownerDocument)||void 0===n?void 0:n.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");r&&(null===(a=null===(i=this.containerEl)||void 0===i?void 0:i.ownerDocument)||void 0===a||a.body.removeChild(r)),this.removeParentMoveObserver(),this.removeSlidingPanesListner(),this.autosaveTimer&&(clearInterval(this.autosaveTimer),this.autosaveTimer=null),this.fullscreenModalObserver&&(this.fullscreenModalObserver.disconnect(),this.fullscreenModalObserver=null)}async reload(e=!1,A){if(this.semaphores.preventReload)return void(this.semaphores.preventReload=!1);if(this.semaphores.saving)return;if(this.diskIcon.querySelector("svg").removeClass("excalidraw-dirty"),this.compatibilityMode)return void this.clearDirty();const t=this.excalidrawAPI;if(!this.excalidrawRef||!this.file||!t)return;const n=A&&A===this.file;n&&(this.data=await app.vault.read(A),this.preventAutozoom()),e?await this.excalidrawData.loadData(this.data,this.file,this.textMode):await this.excalidrawData.setTextMode(this.textMode),this.excalidrawData.scene.appState.theme=t.getAppState().theme,await this.loadDrawing(n),this.clearDirty()}async zoomToElementId(e,A){let t=0;for(;!this.excalidrawAPI&&t++<100;)await sleep(50);const n=this.excalidrawAPI;if(!n)return;const i=n.getSceneElements();let a=i.filter((A=>A.id===e));if(0!==a.length){if(A){const e=this.plugin.ea.getElementsInTheSameGroupWithElement(a[0],i);e.length>0&&(a=e)}this.preventAutozoom(),this.zoomToElements(!n.getAppState().viewModeEnabled,a)}}setEphemeralState(e){if(!e)return;const A=this;let t=null;e.match&&e.match.content&&e.match.matches&&1===e.match.matches.length&&2===e.match.matches[0].length&&(t=[e.match.content.substring(e.match.matches[0][0],e.match.matches[0][1])]);const n=getEmbeddedFilenameParts(e.subpath);n.hasBlockref&&setTimeout((()=>A.zoomToElementId(n.blockref,n.hasGroupref)),300),n.hasSectionref?t=[`# ${n.sectionref}`]:e.line&&e.line>0&&(t=[this.data.split("\n")[e.line-1]]),t&&setTimeout((async()=>{let e=0;for(;!A.excalidrawAPI&&e++<100;)await sleep(50);const i=A.excalidrawAPI;if(!i)return;const a=i.getSceneElements();A.selectElementsMatchingQuery(a,t,!i.getAppState().viewModeEnabled,n.hasSectionref,n.hasGroupref)}),300),super.setEphemeralState(e)}clear(){const e=this.excalidrawAPI;this.excalidrawRef&&e&&(this.activeLoader&&(this.activeLoader.terminate=!0,this.activeLoader=null),this.nextLoader=null,e.resetScene(),e.history.clear(),this.previousSceneVersion=0)}async setViewData(e,A=!1){this.plugin.settings.showNewVersionNotification&&checkExcalidrawVersion(app),this.isLoaded=!1,A&&this.clear(),this.lastSaveTimestamp=this.file.stat.mtime,e=this.data=e.replaceAll("\r\n","\n").replaceAll("\r","\n"),app.workspace.onLayoutReady((async()=>{if(this.compatibilityMode="excalidraw"===this.file.extension,await this.plugin.loadSettings(),this.compatibilityMode)this.textIsRaw_Element.hide(),this.textIsParsed_Element.hide(),this.linkAction_Element.hide(),this.textMode=TextMode.raw,await this.excalidrawData.loadLegacyData(e,this.file),this.plugin.settings.compatibilityMode||new obsidian.Notice(t$d("COMPATIBILITY_MODE"),4e3),this.excalidrawData.disableCompression=!0;else{this.linkAction_Element.show(),this.excalidrawData.disableCompression=!1;const A=getTextMode(e);this.changeTextMode(A,!1);try{if(!await this.excalidrawData.loadData(e,this.file,this.textMode))return}catch(e){return errorlog({where:"ExcalidrawView.setViewData",error:e}),new obsidian.Notice(`Error loading drawing:\n${e.message}${"Cannot read property 'index' of undefined"===e.message?"\n'# Drawing' section is likely missing":""}\n\nTry manually fixing the file or restoring an earlier version from sync history.`,1e4),void this.setMarkdownView()}}await this.loadDrawing(!0);const A=this.excalidrawData.getOnLoadScript();if(A){const e=this,t=this.file.basename+"-onlaod-script",n=()=>{e.excalidrawAPI?e.plugin.scriptEngine.executeScript(e,A,t):setTimeout(n,200)};n()}this.isLoaded=!0}))}async loadSceneFiles(){if(!this.excalidrawAPI)return;const e=new EmbeddedFilesLoader(this.plugin),A=e=>{this.nextLoader=null,this.activeLoader=e,e.loadSceneFiles(this.excalidrawData,((e,t)=>{e&&(addFiles(e,this,t),this.activeLoader=null,this.nextLoader?A(this.nextLoader):this.excalidrawData.getFiles().some((e=>{if(e&&!e.file&&e.attemptCounter<30){const e=this,A=this.file.path;return setTimeout((async()=>{e&&e.excalidrawAPI&&A===e.file.path&&e.loadSceneFiles()}),2e3),!0}return!1})))}),0)};this.activeLoader?this.nextLoader=e:A(e)}async synchronizeWithData(e){let A=0;for(;this.semaphores.saving&&A++<30;)await sleep(100);if(A>=30)return void errorlog({where:"ExcalidrawView.synchronizeWithData",message:`Aborting sync with received file (${this.file.path}) because semaphores.saving remained true for ower 3 seconds`,fn:this.synchronizeWithData});this.semaphores.saving=!0;let t=!1;try{const A=e.deletedElements.map((e=>e.id)),n=this.excalidrawAPI.getSceneElements().filter((e=>!A.contains(e.id))),i=n.map((e=>e.id)),a=A=>{switch(A.type){case"text":this.excalidrawData.textElements.set(A.id,e.textElements.get(A.id));break;case"image":e.getFile(A.fileId)?(this.excalidrawData.setFile(A.fileId,e.getFile(A.fileId)),t=!0):e.getEquation(A.fileId)&&(this.excalidrawData.setEquation(A.fileId,e.getEquation(A.fileId)),t=!0)}e.elementLinks.has(A.id)&&this.excalidrawData.elementLinks.set(A.id,e.elementLinks.get(A.id))};e.scene.elements.forEach(((A,r,s)=>{const o=n.filter((e=>e.id===A.id))[0];if(o&&(o.versione.view.file===this.file)).length>0}setDirty(e){var A;this.semaphores.dirty=null===(A=this.file)||void 0===A?void 0:A.path,this.diskIcon.querySelector("svg").addClass("excalidraw-dirty"),app.isMobile||obsidian.requireApiVersion("0.16.0")&&(this.leaf.tabHeaderInnerTitleEl.style.color="var(--color-accent)")}clearDirty(){const e=this.excalidrawAPI;if(!e)return;this.semaphores.dirty=null;const A=e.getSceneElements();A&&(this.previousSceneVersion=this.getSceneVersion(A)),this.diskIcon.querySelector("svg").removeClass("excalidraw-dirty"),app.isMobile||obsidian.requireApiVersion("0.16.0")&&(this.leaf.tabHeaderInnerTitleEl.style.color="")}initializeToolsIconPanelAfterLoading(){var e;const A=this.excalidrawAPI;if(!A)return;const t=A.getAppState(),n=null===(e=this.toolsPanelRef)||void 0===e?void 0:e.current;n&&(n.setTheme(t.theme),n.setExcalidrawViewMode(t.viewModeEnabled),n.setPreviewMode(this.compatibilityMode?null:this.textMode===TextMode.parsed),n.updateScriptIconMap(this.plugin.scriptEngine.scriptIconMap))}canAcceptExtension(e){return"excalidraw"===e}getDisplayText(){return this.file?this.file.basename:t$d("NOFILE")}getViewType(){return"excalidraw"}getIcon(){return ICON_NAME}setMarkdownView(){this.plugin.excalidrawFileModes[this.id||this.file.path]="markdown",this.plugin.setMarkdownView(this.leaf)}async openAsMarkdown(){!0===this.plugin.settings.compress&&(this.excalidrawData.disableCompression=!0,await this.save(!0,!0)),this.setMarkdownView()}async convertExcalidrawToMD(){await this.save(),this.plugin.openDrawing(await this.plugin.convertSingleExcalidrawToMD(this.file),"active-pane",!0)}onPaneMenu(e,A){this.excalidrawAPI&&this.getViewSelectedElements().some((e=>"text"===e.type))&&e.addItem((e=>{e.setTitle(t$d("OPEN_LINK")).setIcon("external-link").setSection("pane").onClick((e=>{this.handleLinkClick(this,e)}))})),this.compatibilityMode?e.addItem((e=>{e.setTitle(t$d("CONVERT_FILE")).onClick((()=>this.convertExcalidrawToMD())).setSection("pane")})):e.addItem((e=>{e.setTitle(t$d("OPEN_AS_MD")).setIcon("document").onClick((()=>{this.openAsMarkdown()})).setSection("pane")})).addItem((e=>{e.setTitle(t$d("EXPORT_EXCALIDRAW")).setIcon(ICON_NAME).onClick((async()=>{this.exportExcalidraw()})).setSection("pane")})),e.addItem((e=>{e.setTitle(t$d("SAVE_AS_PNG")).setIcon("save-png").setSection("pane").onClick((async e=>{if(this.getScene&&this.file)if(e[CTRL_OR_CMD]){const e=await this.png(this.getScene());if(!e)return;const A=new FileReader;A.readAsDataURL(e);const t=this;A.onloadend=function(){download(null,A.result,`${t.file.basename}.png`)}}else this.savePNG()})).setSection("pane")})).addItem((e=>{e.setTitle(t$d("SAVE_AS_SVG")).setIcon("save-svg").setSection("pane").onClick((async e=>{if(this.getScene&&this.file){if(e[CTRL_OR_CMD]){let e=await this.svg(this.getScene());return e?(e=embedFontsInSVG(e,this.plugin),void download(null,svgToBase64(e.outerHTML),`${this.file.basename}.svg`)):null}this.saveSVG()}}))})).addItem((e=>{e.setTitle(t$d("INSTALL_SCRIPT_BUTTON")).setIcon("ScriptEngine").setSection("pane").onClick((()=>{new ScriptInstallPrompt(this.plugin).open()}))})),super.onPaneMenu(e,A)}async getLibrary(){var e;const A=this.plugin.getStencilLibrary();return(null==A?void 0:A.library)?A.library:null!==(e=null==A?void 0:A.libraryItems)&&void 0!==e?e:[]}async instantiateExcalidraw(e){for(;!this.semaphores.scriptsReady;)await sleep(50);const A=this.plugin.getPackage(this.ownerWindow).react,t=this.plugin.getPackage(this.ownerWindow).reactDOM;this.clearDirty();const n=A.createElement((()=>{let t={x:0,y:0};const n=A.useRef(null),i=A.useRef(null),a=A.useRef(null),[r,s]=A.useState({width:void 0,height:void 0});let o=null,l=null,c=null,d=Date.now(),h=!1;this.toolsPanelRef=i,this.obsidianMenu=new ObsidianMenu(this.plugin,i),this.menuLinks=new MenuLinks(this.plugin,a);const u=()=>{let e,A;const t=new Promise(((t,n)=>{e=t,A=n}));return t.resolve=e,t.reject=A,t},g=A.useMemo((()=>({current:{readyPromise:u()}})),[]);A.useEffect((()=>{g.current.readyPromise.then((e=>{var A;this.excalidrawAPI=e,e.setLocalFont(this.plugin.settings.experimentalEnableFourthFont),this.loadSceneFiles(),this.updateContainerSize(null,!0),null===(A=this.excalidrawWrapperRef.current.firstElementChild)||void 0===A||A.focus(),this.addFullscreenchangeEvent(),this.initializeToolsIconPanelAfterLoading()}))}),[g]),this.excalidrawRef=g,this.excalidrawWrapperRef=n,A.useEffect((()=>{s({width:this.contentEl.clientWidth,height:this.contentEl.clientHeight});const e=()=>{try{s({width:this.contentEl.clientWidth,height:this.contentEl.clientHeight}),this.toolsPanelRef&&this.toolsPanelRef.current&&this.toolsPanelRef.current.updatePosition(),this.ownerDocument!==document&&this.refresh()}catch(e){errorlog({where:"Excalidraw React-Wrapper, onResize",error:e})}};return this.ownerWindow.addEventListener("resize",e),()=>{var A;return null===(A=this.ownerWindow)||void 0===A?void 0:A.removeEventListener("resize",e)}}),[n]),this.getSelectedTextElement=()=>{var e;const A=this.excalidrawAPI;if(!(null==g?void 0:g.current)||!A)return{id:null,text:null};if(A.getAppState().viewModeEnabled){if(o){const e=o;return o=null,e}return{id:null,text:null}}const t=A.getSceneElements().filter((e=>e.id===Object.keys(A.getAppState().selectedElementIds)[0]));if(0===t.length)return{id:null,text:null};if("text"===t[0].type)return{id:t[0].id,text:t[0].text};if("image"===t[0].type)return{id:null,text:null};const n=null===(e=t[0].boundElements)||void 0===e?void 0:e.filter((e=>"text"===e.type));if((null==n?void 0:n.length)>0){const e=A.getSceneElements().filter((e=>e.id===n[0].id));if(e.length>0)return{id:e[0].id,text:e[0].text}}if(0===t[0].groupIds.length)return{id:null,text:null};const i=t[0].groupIds[0],a=A.getSceneElements().filter((e=>{var A;return null===(A=e.groupIds)||void 0===A?void 0:A.includes(i)})).filter((e=>"text"===e.type));return 0===a.length?{id:null,text:null}:{id:t[0].id,text:t[0].text}},this.getSelectedImageElement=()=>{const e=this.excalidrawAPI;if(!e)return{id:null,fileId:null};if(e.getAppState().viewModeEnabled){if(l){const e=l;return l=null,e}return{id:null,fileId:null}}const A=e.getSceneElements().filter((A=>A.id==Object.keys(e.getAppState().selectedElementIds)[0]));if(0===A.length)return{id:null,fileId:null};if("image"==A[0].type)return{id:A[0].id,fileId:A[0].fileId};if("text"===A[0].type)return{id:null,fileId:null};if(0===A[0].groupIds.length)return{id:null,fileId:null};const t=A[0].groupIds[0],n=e.getSceneElements().filter((e=>{var A;return null===(A=e.groupIds)||void 0===A?void 0:A.includes(t)})).filter((e=>"image"==e.type));return 0===n.length?{id:null,fileId:null}:{id:n[0].id,fileId:n[0].fileId}},this.getSelectedElementWithLink=()=>{const e=this.excalidrawAPI;if(!e)return{id:null,text:null};if(e.getAppState().viewModeEnabled){if(c){const e=c;return c=null,e}return{id:null,text:null}}const A=e.getSceneElements().filter((A=>A.id==Object.keys(e.getAppState().selectedElementIds)[0]));if(0===A.length)return{id:null,text:null};if(A[0].link)return{id:A[0].id,text:A[0].link};if(0===A[0].groupIds.length)return{id:null,text:null};const t=A[0].groupIds[0],n=e.getSceneElements().filter((e=>{var A;return null===(A=e.groupIds)||void 0===A?void 0:A.includes(t)})).filter((e=>e.link));return 0===n.length?{id:null,text:null}:{id:n[0].id,text:n[0].link}},this.addText=async(e,A,n=!0)=>{var i,a,r,s,o;const l=this.excalidrawAPI;if(!(null==g?void 0:g.current)||!l)return;const c=l.getAppState(),d=this.plugin.ea;d.reset(),d.style.strokeColor=null!==(i=c.currentItemStrokeColor)&&void 0!==i?i:"black",d.style.opacity=null!==(a=c.currentItemOpacity)&&void 0!==a?a:1,d.style.fontFamily=null!==(r=null!=A?A:c.currentItemFontFamily)&&void 0!==r?r:1,d.style.fontSize=null!==(s=c.currentItemFontSize)&&void 0!==s?s:20,d.style.textAlign=null!==(o=c.currentItemTextAlign)&&void 0!==o?o:"left";const h=d.addText(t.x,t.y,e);return await this.addElements(d.getElements(),!1,n),h},this.addElements=async(e,A=!1,n=!1,i,a=!1)=>{const r=this.excalidrawAPI;if(!(null==g?void 0:g.current)||!r)return!1;const s=e.filter((e=>"text"==e.type));for(let e=0;ee.id)),l=r.getSceneElements(),c=[];for(let A=0;Ae.id===t))[0],c.push(t))}const d=a?l.concat(e.filter((e=>!c.includes(e.id)))):e.filter((e=>!c.includes(e.id))).concat(l);if(await this.updateScene({elements:d,commitToHistory:!0},!0,!0),i&&Object.keys(i).length>0){const e=[];Object.keys(i).forEach((A=>{if(e.push({mimeType:i[A].mimeType,id:i[A].id,dataURL:i[A].dataURL,created:i[A].created}),i[A].file){const e=new EmbeddedFile(this.plugin,this.file.path,i[A].file),t=r.getAppState();e.setImage(i[A].dataURL,i[A].mimeType,i[A].size,"dark"===t.theme,i[A].hasSVGwithBitmap),this.excalidrawData.setFile(i[A].id,e)}i[A].latex&&this.excalidrawData.setEquation(i[A].id,{latex:i[A].latex,isLoaded:!0})})),r.addFiles(e)}return n?await this.save(!1):this.setDirty(5),!0},this.getScene=()=>{const e=this.excalidrawAPI;if(!(null==g?void 0:g.current)||!e)return null;const A=e.getSceneElements(),t=e.getAppState(),n=e.getFiles();if(n){const e=A.filter((e=>"image"===e.type)).map((e=>e.fileId)),t=Object.keys(n).filter((A=>!e.contains(A)));t.forEach((e=>delete n[e]))}return{type:"excalidraw",version:2,source:"https://excalidraw.com",elements:A,appState:{theme:t.theme,viewBackgroundColor:t.viewBackgroundColor,currentItemStrokeColor:t.currentItemStrokeColor,currentItemBackgroundColor:t.currentItemBackgroundColor,currentItemFillStyle:t.currentItemFillStyle,currentItemStrokeWidth:t.currentItemStrokeWidth,currentItemStrokeStyle:t.currentItemStrokeStyle,currentItemRoughness:t.currentItemRoughness,currentItemOpacity:t.currentItemOpacity,currentItemFontFamily:t.currentItemFontFamily,currentItemFontSize:t.currentItemFontSize,currentItemTextAlign:t.currentItemTextAlign,currentItemStrokeSharpness:t.currentItemStrokeSharpness,currentItemStartArrowhead:t.currentItemStartArrowhead,currentItemEndArrowhead:t.currentItemEndArrowhead,currentItemLinearStrokeSharpness:t.currentItemLinearStrokeSharpness,gridSize:t.gridSize,colorPalette:t.colorPalette},prevTextMode:this.prevTextMode,files:n}},this.refresh=()=>{if(0===this.contentEl.clientWidth||0===this.contentEl.clientHeight)return;const e=this.excalidrawAPI;(null==g?void 0:g.current)&&e&&e.refresh()};let p={x:0,y:0},w=null;this.clearHoverPreview=()=>{if(w){const e=new MouseEvent("click",{view:this.ownerWindow,bubbles:!0,cancelable:!0});w.dispatchEvent(e),w=null}};const m=e=>{var A,t,n,i,a;const r=null===(A=app.dragManager.draggable)||void 0===A?void 0:A.files;return r&&r[0]==this.file&&(r.shift(),app.dragManager.draggable.title=`${r.length} files`),["file","files"].includes(null===(t=app.dragManager.draggable)||void 0===t?void 0:t.type)?"link":(null===(n=e.types)||void 0===n?void 0:n.includes("text/html"))||(null===(i=e.types)||void 0===i?void 0:i.includes("text/plain"))||(null===(a=e.types)||void 0===a?void 0:a.includes("Files"))?"copy":void 0};let f=!1;const B=()=>{if(o=getTextElementAtPointer(t,this),o&&o.id){const e=new MouseEvent("click",{ctrlKey:!0,metaKey:this.metaKeyDown,shiftKey:this.shiftKeyDown,altKey:this.altKeyDown});return this.handleLinkClick(this,e),void(o=null)}if(l=getImageElementAtPointer(t,this),l&&l.id){const e=new MouseEvent("click",{ctrlKey:!0,metaKey:this.metaKeyDown,shiftKey:this.shiftKeyDown,altKey:this.altKeyDown});return this.handleLinkClick(this,e),void(l=null)}if(c=getElementWithLinkAtPointer(t,this),c&&c.id){const e=new MouseEvent("click",{ctrlKey:!0,metaKey:this.metaKeyDown,shiftKey:this.shiftKeyDown,altKey:this.altKeyDown});return this.handleLinkClick(this,e),void(c=null)}};let E=null;const b=(e,A)=>{var n,i;if(!E)return;if(null===(i=null===(n=this.excalidrawAPI)||void 0===n?void 0:n.getAppState())||void 0===i?void 0:i.editingElement)return;if(this.semaphores.wheelTimeout)return;if(!e){if(!t)return;e="";const n=getTextElementAtPointer(t,this);if(n&&n.text){A=this.excalidrawAPI.getSceneElements().filter((e=>e.id===n.id))[0];const t=this.textMode===TextMode.parsed?this.excalidrawData.getRawText(n.id):n.text;if(!t)return;if(t.match(REG_LINKINDEX_HYPERLINK))return;const i=REGEX_LINK.getRes(t).next();if(!i.value)return;if((e=REGEX_LINK.getLink(i)).match(REG_LINKINDEX_HYPERLINK))return}else{const n=getImageElementAtPointer(t,this);if(A=this.excalidrawAPI.getSceneElements().filter((e=>e.id===n.id))[0],!n||!n.fileId)return;if(!this.excalidrawData.hasFile(n.fileId))return;const i=this.excalidrawData.getFile(n.fileId),a=i.linkParts.ref?`#${i.linkParts.isBlockRef?"^":""}${i.linkParts.ref}`:"";e=this.excalidrawData.getFile(n.fileId).file.path+a}}if(this.getHookServer().onLinkHoverHook)try{if(!this.getHookServer().onLinkHoverHook(A,e,this,this.getHookServer()))return}catch(e){errorlog({where:"ExcalidrawView.showHoverPreview",fn:this.getHookServer().onLinkHoverHook,error:e})}if(this.semaphores.hoverSleep)return;const a=app.metadataCache.getFirstLinkpathDest(e.split("#")[0],this.file.path);if(!a)return;if(this.ownerDocument.querySelector(`div.popover-title[data-path="${a.path}"]`))return;this.semaphores.hoverSleep=!0;const r=this;if(setTimeout((()=>r.semaphores.hoverSleep=!1),500),this.plugin.hover.linkText=e,this.plugin.hover.sourcePath=this.file.path,w=this.contentEl,app.workspace.trigger("hover-link",{event:E,source:"excalidraw",hoverParent:w,targetEl:w,linktext:this.plugin.hover.linkText,sourcePath:this.plugin.hover.sourcePath}),p=t,this.isFullscreen()){const e=this;setTimeout((()=>{var A,t,n,i;const r=null!==(i=null===(n=null===(t=null===(A=this.ownerDocument.querySelector(`div.popover-title[data-path="${a.path}"]`))||void 0===A?void 0:A.parentElement)||void 0===t?void 0:t.parentElement)||void 0===n?void 0:n.parentElement)&&void 0!==i?i:this.ownerDocument.body.querySelector("div.popover");r&&e.contentEl.append(r)}),400)}},{Excalidraw:C}=this.plugin.getPackage(this.ownerWindow).excalidrawLib,v=A.createElement("div",{className:"excalidraw-wrapper",ref:n,key:"abc",tabIndex:0,onKeyDown:e=>{e.target!==v.ref.current&&(this.isFullscreen()&&e.keyCode===KEYCODE.ESC&&this.exitFullscreen(),!e[CTRL_OR_CMD]||e.shiftKey||e.altKey||b())},onPointerDown:e=>{(e[CTRL_OR_CMD]||e.metaKey)&&(this.plugin.settings.allowCtrlClick||e.metaKey)&&setTimeout((()=>{(this.getSelectedTextElement().id||this.getSelectedImageElement().id||this.getSelectedElementWithLink().id)&&this.handleLinkClick(this,e)}))},onMouseMove:e=>{E=e.nativeEvent},onMouseOver:()=>{this.clearHoverPreview()},onDragOver:e=>{const A=m(e.dataTransfer);if(A)return e.dataTransfer.dropEffect=A,e.preventDefault(),!1},onDragLeave:()=>{}},A.createElement(C,{ref:g,width:r.width,height:r.height,UIOptions:{canvasActions:{loadScene:!1,saveScene:!1,saveAsScene:!1,export:!1,saveAsImage:!1,saveToActiveFile:!1}},initState:null==e?void 0:e.appState,initialData:e,detectScroll:!0,onPointerUpdate:e=>{if(t=e.pointer,w&&(Math.abs(p.x-e.pointer.x)>50||Math.abs(p.y-e.pointer.y)>50)&&this.clearHoverPreview(),f){if(!h&&"down"===e.button){if(h=!0,this.ctrlKeyDown||this.metaKeyDown)return void B();const e=Date.now();return e-d<600&&e-d>40&&B(),void(d=e)}"up"===e.button&&(h=!1),(this.ctrlKeyDown||this.excalidrawAPI.getAppState().isViewModeEnabled&&this.plugin.settings.hoverPreviewWithoutCTRL)&&b()}},libraryReturnUrl:"app://obsidian.md",autoFocus:!0,hideWelcomeScreen:!0,renderMenuLinks:null,onChange:(e,A)=>{const t=()=>{this.plugin.ea.onCanvasColorChangeHook&&this.plugin.ea.onCanvasColorChangeHook(this.plugin.ea,this,A.viewBackgroundColor)};if(f=A.viewModeEnabled,this.semaphores.justLoaded)return this.semaphores.justLoaded=!1,this.semaphores.preventAutozoom||this.zoomToFit(!1,!0),this.previousSceneVersion=this.getSceneVersion(e),this.previousBackgroundColor=A.viewBackgroundColor,void t();if(!this.semaphores.dirty&&null===A.editingElement&&null===A.editingLinearElement){const n=this.getSceneVersion(e);((n>0||0===n&&e.length>0)&&n!==this.previousSceneVersion||A.viewBackgroundColor!==this.previousBackgroundColor)&&(this.previousSceneVersion=n,this.previousBackgroundColor=A.viewBackgroundColor,this.setDirty(6),t())}},onLibraryChange:e=>{(async()=>{const A={type:"excalidrawlib",version:2,source:"https://excalidraw.com",libraryItems:e};this.plugin.setStencilLibrary(A),await this.plugin.saveSettings()})()},renderTopRightUI:this.obsidianMenu.renderButton,onPaste:e=>{if(e.elements){const e=this;setTimeout((()=>e.save(!1)),300)}return!0},onThemeChange:async e=>{var A;this.excalidrawData.scene.appState.theme=e,this.loadSceneFiles(),null===(A=null==i?void 0:i.current)||void 0===A||A.setTheme(e)},ownerDocument:this.ownerDocument,ownerWindow:this.ownerWindow,onDrop:e=>{const A=this.excalidrawAPI;if(!A)return!1;const n=A.getAppState();t=viewportCoordsToSceneCoords({clientX:e.clientX,clientY:e.clientY},n);const i=app.dragManager.draggable,a=(A,n,a)=>{if(!this.getHookServer().onDropHook)return!1;try{return this.getHookServer().onDropHook({ea:this.getHookServer(),event:e,draggable:i,type:A,payload:{files:n,text:a},excalidrawFile:this.file,view:this,pointerPosition:t})}catch(e){return new obsidian.Notice("on drop hook error. See console log for details"),errorlog({where:"ExcalidrawView.onDrop",error:e}),!1}};switch(e[CTRL_OR_CMD]=e.shiftKey||e[CTRL_OR_CMD],null==i?void 0:i.type){case"file":if(!a("file",[i.file],null)){if(i.file.path.match(REG_LINKINDEX_INVALIDCHARS))return new obsidian.Notice(t$d("FILENAME_INVALID_CHARS"),4e3),!1;if(e[CTRL_OR_CMD]&&(IMAGE_TYPES.contains(i.file.extension)||"md"===i.file.extension)){const n=this.plugin.ea;return n.reset(),n.setView(this),(async()=>{n.canvas.theme=A.getAppState().theme,await n.addImage(t.x,t.y,i.file,!e.altKey),n.addElementsToView(!1,!1,!0)})(),!1}this.addText(`[[${app.metadataCache.fileToLinktext(i.file,this.file.path,!0)}]]`)}return!1;case"files":return a("file",i.files,null)||(async()=>{if(e[CTRL_OR_CMD]){const n=this.plugin.ea;n.reset(),n.setView(this),n.canvas.theme=A.getAppState().theme;let a=0;for(const A of i.files)(IMAGE_TYPES.contains(A.extension)||"md"===A.extension)&&(await n.addImage(t.x+50*a,t.y+50*a,A,!e.altKey),a++,await n.addElementsToView(!1,!1,!0))}else{for(const e of i.files)await this.addText(`[[${app.metadataCache.fileToLinktext(e,this.file.path,!0)}]]`,void 0,!1),t.y+=2*n.currentItemFontSize;this.save(!1)}})(),!1}if(e.dataTransfer.types.includes("Files")){if(e.dataTransfer.types.includes("text/plain")){const A=e.dataTransfer.getData("text");if(A&&a("text",null,A))return!1}return!0}if(e.dataTransfer.types.includes("text/plain")){const A=e.dataTransfer.getData("text");if(!A)return!0;if(!a("text",null,A)){if(this.plugin.settings.iframelyAllowed&&A.match(/^https?:\/\/\S*$/))return(async()=>{var e;const t=await this.addText(A),n=`http://iframely.server.crestify.com/iframely?url=${A}`,i=JSON.parse(await obsidian.request({url:n}));if(!i||i.error||!(null===(e=i.meta)||void 0===e?void 0:e.title))return!1;const a=this.plugin.ea;a.reset(),a.setView(this);const r=a.getViewElements().filter((e=>e.id===t));1===r.length&&(r[0].text=r[0].originalText=r[0].rawText=`[${i.meta.title}](${A})`,a.copyViewElementsToEAforEditing(r),a.addElementsToView(!1,!1,!1))})(),!1;if(A.startsWith("obsidian://open?vault=")){const t=e.dataTransfer.getData("text/html");if(t){const e=t.match(/href="app:\/\/obsidian\.md\/(.*?)"/);if(2===e.length){const A=decodeURIComponent(e[1]).split("#"),t=app.vault.getAbstractFileByPath(A[0]);if(t&&t instanceof obsidian.TFile){const e=app.metadataCache.fileToLinktext(t,this.file.path);return void this.addText(`[[${e+(A.length>1?"#"+A[1]+"|"+e:"")}]]`)}return this.addText(`[[${decodeURIComponent(e[1])}]]`),!1}}const n=A.split("file=");if(2===n.length)return this.addText(`[[${decodeURIComponent(n[1])}]]`),!1}this.addText(A.replace(/(!\[\[.*#[^\]]*\]\])/g,"$1{40}"))}return!1}return!a("unknown",null,null)},onBeforeTextEdit:e=>{var A;if(clearTimeout(this.isEditingTextResetTimer),this.isEditingTextResetTimer=null,this.semaphores.isEditingText=!0,this.compatibilityMode)return null!==(A=e.originalText)&&void 0!==A?A:e.text;return this.excalidrawData.getRawText(e.id)||e.rawText},onBeforeTextSubmit:(e,A,t,n)=>{const i=this.excalidrawAPI;if(!i)return[null,null,null];const a="PASTING EXCALIDRAW ELEMENTS AS A TEXT ELEMENT IS NOT ALLOWED";if(A.startsWith('{"type":"excalidraw/clipboard","elements":[{"'))return setTimeout((async()=>{const A=this.excalidrawAPI.getSceneElements(),t=A.filter((A=>A.id===e.id));if(1===t.length){const e=cloneElement(t[0]);e.rawText=a,A[A.indexOf(t[0])]=e,this.excalidrawData.setTextElement(e.id,a,a,(()=>{})),await this.updateScene({elements:A}),i.history.clear()}})),[a,a,null];if(this.semaphores.isEditingText=!0,this.isEditingTextResetTimer=setTimeout((()=>{this.semaphores.isEditingText=!1,this.isEditingTextResetTimer=null}),1500),n)return this.excalidrawData.deleteTextElement(e.id),this.setDirty(7),[null,null,null];const r=e.containerId;if(A!==e.text||t!==e.originalText||!this.excalidrawData.getRawText(e.id)){this.setDirty(8);const[n,a,s]=this.excalidrawData.setTextElement(e.id,A,t,(async(A,t)=>{if(this.textMode===TextMode.raw)return;const n=this.excalidrawAPI.getSceneElements(),a=n.filter((A=>A.id===e.id));if(1===a.length){const e=cloneElement(a[0]);this.excalidrawData.updateTextElement(e,A,t,!0),n[n.indexOf(a[0])]=e,await this.updateScene({elements:n}),e.containerId&&this.updateContainerSize(e.containerId)}i.history.clear()}));return n?(r&&this.updateContainerSize(r,!0),this.textMode===TextMode.raw?[A,t,s]:A===n?s?[n,a,s]:[null,null,null]:(i.history.clear(),[n,a,s])):[null,null,null]}return r&&this.updateContainerSize(r,!0),this.textMode===TextMode.parsed?this.excalidrawData.getParsedText(e.id):[null,null,null]},onLinkOpen:async(e,A)=>{var t;if(A.preventDefault(),!e)return;const n=e.link;if(!n||""===n)return;const i=this.ownerDocument.body.querySelector("body>div.excalidraw-tooltip,div.excalidraw-tooltip--visible");i&&this.ownerDocument.body.removeChild(i);const a=null===(t=null==A?void 0:A.detail)||void 0===t?void 0:t.nativeEvent;if(this.getHookServer().onLinkClickHook)try{if(!this.getHookServer().onLinkClickHook(e,e.link,a,this,this.getHookServer()))return}catch(A){errorlog({where:"ExcalidrawView.onLinkOpen",fn:this.getHookServer().onLinkClickHook,error:A})}n.startsWith("md://")||n.startsWith("[[")?(async()=>{const e=n.match(/(md:\/\/)?\[\[(?.*?)\]\]/);if(!e)return;let A=e.groups.link,t=null;if(A.search("#")>-1){const e=getLinkParts(A,this.file);t=`#${e.isBlockRef?"^":""}${e.ref}`,A=e.path}if(A.match(REG_LINKINDEX_INVALIDCHARS))return void new obsidian.Notice(t$d("FILENAME_INVALID_CHARS"),4e3);const i=app.metadataCache.getFirstLinkpathDest(A,this.file.path),r=a.shiftKey||a[CTRL_OR_CMD]||this.linksAlwaysOpenInANewPane||a.metaKey;if(r&&this.isFullscreen()&&this.exitFullscreen(),i)if(i===this.file){if(t)return void this.setEphemeralState({subpath:t});this.zoomToFit(!1)}else try{const e=r?a.metaKey&&!app.isMobile?app.workspace.openPopoutLeaf():getNewOrAdjacentLeaf(this.plugin,this.leaf):this.leaf;await e.openFile(i,t?{active:!1,eState:{subpath:t}}:{active:!1})}catch(e){new obsidian.Notice(e,4e3)}else new NewFileActions(this.plugin,A,r,!app.isMobile&&a.metaKey,this).open()})():window.open(n)},onLinkHover:(e,A)=>{if(e&&(this.plugin.settings.hoverPreviewWithoutCTRL||A[CTRL_OR_CMD])){E=A,E.ctrlKey=!0;const t=e.link;if(!t||""===t)return;if(t.startsWith("md://")||t.startsWith("[[")){const A=t.match(/(md:\/\/)?\[\[(?.*?)\]\]/);if(!A)return;let n=A.groups.link;b(n,e)}}},onViewModeChange:e=>{var A,t;if(null===(t=null===(A=this.toolsPanelRef)||void 0===A?void 0:A.current)||void 0===t||t.setExcalidrawViewMode(e),this.getHookServer().onViewModeChangeHook)try{this.getHookServer().onViewModeChangeHook(e,this,this.getHookServer())}catch(e){errorlog({where:"ExcalidrawView.onViewModeChange",fn:this.getHookServer().onViewModeChangeHook,error:e})}}}),A.createElement(ToolsPanel,{ref:i,visible:!1,view:this,centerPointer:()=>{const e=this.excalidrawAPI;if(!g||!g.current||!e)return;const A=e.getAppState(),{width:n,height:i}=A;t=viewportCoordsToSceneCoords({clientX:n/2,clientY:i/2},A)}})),y=A.useRef(new ResizeObserver((e=>{if(!i||!i.current)return;const{width:A,height:t}=e[0].contentRect,n=i.current.onRightEdge?i.current.previousWidth-A:0,a=i.current.onBottomEdge?i.current.previousHeight-t:0;i.current.updatePosition(a,n)})));return A.useEffect((()=>((null==i?void 0:i.current)&&y.current.observe(i.current.containerRef.current),()=>{y.current.unobserve(i.current.containerRef.current)})),[i,y]),A.createElement(A.Fragment,null,v)}));t.render(n,this.contentEl,(()=>{}))}updateContainerSize(e,A=!1){const t=this.excalidrawAPI;if(!t)return;const n=()=>{const A=e?t.getSceneElements().filter((A=>A.id===e)):t.getSceneElements().filter((e=>{var A;return null===(A=e.boundElements)||void 0===A?void 0:A.map((e=>e.type)).includes("text")}));A.length>0&&(this.initialContainerSizeUpdate&&(this.semaphores.justLoaded=!0),t.updateContainerSize(A)),this.initialContainerSizeUpdate=!1};A?setTimeout((()=>n()),50):n()}zoomToFit(e=!0,A=!1){const t=this.excalidrawAPI;if(!t||!this.excalidrawRef||this.semaphores.isEditingText)return;const n=this.plugin.settings.zoomToFitMaxLevel,i=t.getSceneElements().filter((e=>e.width<1e4&&e.height<1e4));app.isMobile&&i.length>1e3||i.length>2500?A&&t.scrollToContent():e?setTimeout((()=>t.zoomToFit(i,n,this.isFullscreen()?0:.05)),100):t.zoomToFit(i,n,this.isFullscreen()?0:.05)}async toggleTrayMode(){const e=this.excalidrawAPI;if(!e)return!1;const A=e.getAppState();e.updateScene({appState:{trayModeEnabled:!A.trayModeEnabled}}),await this.plugin.loadSettings(),this.plugin.settings.defaultTrayMode=!A.trayModeEnabled,this.plugin.saveSettings()}selectElementsMatchingQuery(e,A,t=!0,n=!1,i=!1){let a=getTextElementsMatchingQuery(e.filter((e=>"text"===e.type)),A,n);if(0!==a.length){if(i){const A=this.plugin.ea.getElementsInTheSameGroupWithElement(a[0],e);A.length>0&&(a=A)}this.zoomToElements(t,a)}else new obsidian.Notice("I could not find a matching text element")}zoomToElements(e,A){const t=this.excalidrawAPI;if(!t)return;const n=this.plugin.settings.zoomToFitMaxLevel;this.ownerWindow,e&&t.selectElements(A),t.zoomToFit(A,n,.05)}getViewSelectedElements(){var e;const A=this.excalidrawAPI;if(!A)return[];const t=null===(e=A.getAppState())||void 0===e?void 0:e.selectedElementIds;if(!t)return[];const n=Object.keys(t);if(!n)return[];const i=A.getSceneElements().filter((e=>n.includes(e.id))),a=i.filter((e=>e.boundElements&&e.boundElements.filter((e=>"text"===e.type)).length>0)).map((e=>e.boundElements.filter((e=>"text"===e.type)).map((e=>e.id))[0])),r=i.map((e=>e.id)).concat(a);return A.getSceneElements().filter((e=>r.contains(e.id)))}async copyLinkToSelectedElementToClipboard(e){const A=this.getViewSelectedElements();if(A.length<1)return void new obsidian.Notice(t$d("INSERT_LINK_TO_ELEMENT_ERROR"));let t;if(2===A.length){const e=A.filter((e=>"text"===e.type));1===e.length&&e[0].containerId&&1===A.filter((e=>e.boundElements.some((e=>"text"===e.type)))).length&&(t=e[0].id)}t||(t=1===A.length?A[0].id:this.plugin.ea.getLargestElement(A).id);const n=await ScriptEngine.inputPrompt(app,"Set link alias","Leave empty if you do not want to set an alias","");navigator.clipboard.writeText(`[[${this.file.path}#^${e}${t}${n?`|${n}`:""}]]`),new obsidian.Notice(t$d("INSERT_LINK_TO_ELEMENT_READY"))}async updateScene(e,A=!1,t=!1){const n=this.excalidrawAPI;if(!n)return;const i=e.elements&&A;i&&(e.elements=n.restore(e).elements);try{n.updateScene(e)}catch(A){if(errorlog({where:"ExcalidrawView.updateScene 1st attempt",fn:this.updateScene,error:A,scene:e,willDoSecondAttempt:!i}),i)warningUnknowSeriousError();else try{e.elements=n.restore(e).elements,n.updateScene(e)}catch(A){errorlog({where:"ExcalidrawView.updateScene 2nd attempt",fn:this.updateScene,error:A,scene:e}),warningUnknowSeriousError()}}}}function getTextMode(e){return e.search("excalidraw-plugin: parsed\n")>-1||e.search("excalidraw-plugin: locked\n")>-1?TextMode.parsed:TextMode.raw}const DEFAULT_SETTINGS={folder:"Excalidraw",embedUseExcalidrawFolder:!1,templateFilePath:"Excalidraw/Template.excalidraw",scriptFolderPath:"Excalidraw/Scripts",compress:!1,autosave:!0,autosaveInterval:15e3,drawingFilenamePrefix:"Drawing ",drawingEmbedPrefixWithFilename:!0,drawingFilnameEmbedPostfix:" ",drawingFilenameDateTime:"YYYY-MM-DD HH.mm.ss",useExcalidrawExtension:!0,displaySVGInPreview:!0,displayExportedImageIfAvailable:!1,previewMatchObsidianTheme:!1,width:"400",isLeftHanded:!1,matchTheme:!1,matchThemeAlways:!1,matchThemeTrigger:!1,defaultMode:"normal",defaultPenMode:"never",zoomToFitOnResize:!0,zoomToFitMaxLevel:2,linkPrefix:"📍",urlPrefix:"🌐",parseTODO:!1,todo:"☐",done:"🗹",hoverPreviewWithoutCTRL:!1,linkOpacity:1,openInAdjacentPane:!1,openInMainWorkspace:!0,showLinkBrackets:!0,allowCtrlClick:!0,forceWrap:!1,pageTransclusionCharLimit:200,wordWrappingDefault:0,removeTransclusionQuoteSigns:!0,iframelyAllowed:!0,pngExportScale:1,exportWithTheme:!0,exportWithBackground:!0,exportPaddingSVG:10,keepInSync:!1,autoexportSVG:!1,autoexportPNG:!1,autoExportLightAndDark:!1,autoexportExcalidraw:!1,embedType:"excalidraw",embedWikiLink:!0,syncExcalidraw:!1,experimentalFileType:!1,experimentalFileTag:"✏️",experimentalLivePreview:!0,experimentalEnableFourthFont:!1,experimantalFourthFont:"Virgil",fieldSuggester:!0,compatibilityMode:!1,drawingOpenCount:0,library:"deprecated",library2:{type:"excalidrawlib",version:2,source:"https://excalidraw.com",libraryItems:[]},imageElementNotice:!0,mdSVGwidth:500,mdSVGmaxHeight:800,mdFont:"Virgil",mdFontColor:"Black",mdBorderColor:"Black",mdCSS:"",scriptEngineSettings:{},defaultTrayMode:!1,previousRelease:"0.0.0",showReleaseNotes:!0,showNewVersionNotification:!0,mathjaxSourceURL:"https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js"};class ExcalidrawSettingTab extends obsidian.PluginSettingTab{constructor(e,A){super(e,A),this.requestEmbedUpdate=!1,this.requestReloadDrawings=!1,this.reloadMathJax=!1,this.plugin=A}applySettingsUpdate(e=!1){e&&(this.requestReloadDrawings=!0)}async hide(){if(this.plugin.settings.scriptFolderPath=obsidian.normalizePath(this.plugin.settings.scriptFolderPath),"/"!==this.plugin.settings.scriptFolderPath&&""!==this.plugin.settings.scriptFolderPath||(this.plugin.settings.scriptFolderPath="Excalidraw/Scripts"),this.plugin.saveSettings(),this.requestReloadDrawings){const e=app.workspace.getLeavesOfType("excalidraw");for(const A of e)A.view instanceof ExcalidrawView&&(await A.view.save(!1),await A.view.reload(!0));this.requestEmbedUpdate=!0}this.requestEmbedUpdate&&this.plugin.triggerEmbedUpdates(),this.plugin.scriptEngine.updateScriptPath(),this.reloadMathJax&&this.plugin.loadMathJax()}async display(){var e;await this.plugin.loadSettings(),this.requestEmbedUpdate=!1,this.requestReloadDrawings=!1;const{containerEl:A}=this;this.containerEl.empty();const t=A.createDiv("coffee");t.addClass("ex-coffee-div"),t.createEl("a",{href:"https://ko-fi.com/zsolt"}).createEl("img",{attr:{src:"https://cdn.ko-fi.com/cdn/kofi3.png?v=3"}}).height=45,new obsidian.Setting(A).setName(t$d("RELEASE_NOTES_NAME")).setDesc(fragWithHTML(t$d("RELEASE_NOTES_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.showReleaseNotes).onChange((async e=>{this.plugin.settings.showReleaseNotes=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("NEWVERSION_NOTIFICATION_NAME")).setDesc(fragWithHTML(t$d("NEWVERSION_NOTIFICATION_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.showNewVersionNotification).onChange((async e=>{this.plugin.settings.showNewVersionNotification=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("FOLDER_NAME")).setDesc(fragWithHTML(t$d("FOLDER_DESC"))).addText((e=>e.setPlaceholder("Excalidraw").setValue(this.plugin.settings.folder).onChange((async e=>{this.plugin.settings.folder=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("FOLDER_EMBED_NAME")).setDesc(fragWithHTML(t$d("FOLDER_EMBED_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.embedUseExcalidrawFolder).onChange((async e=>{this.plugin.settings.embedUseExcalidrawFolder=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("TEMPLATE_NAME")).setDesc(fragWithHTML(t$d("TEMPLATE_DESC"))).addText((e=>e.setPlaceholder("Excalidraw/Template").setValue(this.plugin.settings.templateFilePath).onChange((async e=>{this.plugin.settings.templateFilePath=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("SCRIPT_FOLDER_NAME")).setDesc(fragWithHTML(t$d("SCRIPT_FOLDER_DESC"))).addText((e=>e.setPlaceholder("Excalidraw/Scripts").setValue(this.plugin.settings.scriptFolderPath).onChange((async e=>{this.plugin.settings.scriptFolderPath=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("COMPRESS_NAME")).setDesc(fragWithHTML(t$d("COMPRESS_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.compress).onChange((async e=>{this.plugin.settings.compress=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("FILENAME_HEAD")}),A.createDiv("",(e=>{e.innerHTML=t$d("FILENAME_DESC")}));const n=()=>`${t$d("FILENAME_SAMPLE")}${getDrawingFilename(this.plugin.settings)}
${t$d("FILENAME_EMBED_SAMPLE")}${getEmbedFilename("{NOTE_NAME}",this.plugin.settings)}`,i=A.createEl("p",{text:""});let a,r,s,o,l,c,d;i.innerHTML=n(),new obsidian.Setting(A).setName(t$d("FILENAME_PREFIX_NAME")).setDesc(fragWithHTML(t$d("FILENAME_PREFIX_DESC"))).addText((e=>e.setPlaceholder("Drawing ").setValue(this.plugin.settings.drawingFilenamePrefix).onChange((async A=>{this.plugin.settings.drawingFilenamePrefix=A.replaceAll(/[<>:"/\\|?*]/g,"_"),e.setValue(this.plugin.settings.drawingFilenamePrefix),i.innerHTML=n(),this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("FILENAME_PREFIX_EMBED_NAME")).setDesc(fragWithHTML(t$d("FILENAME_PREFIX_EMBED_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.drawingEmbedPrefixWithFilename).onChange((async e=>{this.plugin.settings.drawingEmbedPrefixWithFilename=e,i.innerHTML=n(),this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("FILENAME_POSTFIX_NAME")).setDesc(fragWithHTML(t$d("FILENAME_POSTFIX_DESC"))).addText((e=>e.setPlaceholder("").setValue(this.plugin.settings.drawingFilnameEmbedPostfix).onChange((async A=>{this.plugin.settings.drawingFilnameEmbedPostfix=A.replaceAll(/[<>:"/\\|?*]/g,"_"),e.setValue(this.plugin.settings.drawingFilnameEmbedPostfix),i.innerHTML=n(),this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("FILENAME_DATE_NAME")).setDesc(fragWithHTML(t$d("FILENAME_DATE_DESC"))).addText((e=>e.setPlaceholder("YYYY-MM-DD HH.mm.ss").setValue(this.plugin.settings.drawingFilenameDateTime).onChange((async A=>{this.plugin.settings.drawingFilenameDateTime=A.replaceAll(/[<>:"/\\|?*]/g,"_"),e.setValue(this.plugin.settings.drawingFilenameDateTime),i.innerHTML=n(),this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("FILENAME_EXCALIDRAW_EXTENSION_NAME")).setDesc(fragWithHTML(t$d("FILENAME_EXCALIDRAW_EXTENSION_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.useExcalidrawExtension).onChange((async e=>{this.plugin.settings.useExcalidrawExtension=e,i.innerHTML=n(),this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("DISPLAY_HEAD")}),new obsidian.Setting(A).setName(t$d("LEFTHANDED_MODE_NAME")).setDesc(fragWithHTML(t$d("LEFTHANDED_MODE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.isLeftHanded).onChange((async e=>{this.plugin.settings.isLeftHanded=e,setLeftHandedMode(e),setTimeout((()=>setLeftHandedMode(e))),this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("MATCH_THEME_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.matchTheme).onChange((async e=>{this.plugin.settings.matchTheme=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("MATCH_THEME_ALWAYS_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_ALWAYS_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.matchThemeAlways).onChange((async e=>{this.plugin.settings.matchThemeAlways=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("MATCH_THEME_TRIGGER_NAME")).setDesc(fragWithHTML(t$d("MATCH_THEME_TRIGGER_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.matchThemeTrigger).onChange((async e=>{this.plugin.settings.matchThemeTrigger=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("DEFAULT_OPEN_MODE_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_OPEN_MODE_DESC"))).addDropdown((e=>e.addOption("normal","Normal Mode").addOption("zen","Zen Mode").addOption("view","View Mode").setValue(this.plugin.settings.defaultMode).onChange((async e=>{this.plugin.settings.defaultMode=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("DEFAULT_PEN_MODE_NAME")).setDesc(fragWithHTML(t$d("DEFAULT_PEN_MODE_DESC"))).addDropdown((e=>e.addOption("never","Never").addOption("mobile","On Obsidian Mobile").addOption("always","Always").setValue(this.plugin.settings.defaultPenMode).onChange((async e=>{this.plugin.settings.defaultPenMode=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("ZOOM_TO_FIT_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.zoomToFitOnResize).onChange((async e=>{this.plugin.settings.zoomToFitOnResize=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("ZOOM_TO_FIT_MAX_LEVEL_NAME")).setDesc(fragWithHTML(t$d("ZOOM_TO_FIT_MAX_LEVEL_DESC"))).addSlider((e=>e.setLimits(.5,10,.5).setValue(this.plugin.settings.zoomToFitMaxLevel).onChange((async e=>{a.innerText=` ${e.toString()}`,this.plugin.settings.zoomToFitMaxLevel=e,this.applySettingsUpdate()})))).settingEl.createDiv("",(e=>{a=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.zoomToFitMaxLevel.toString()}`})),this.containerEl.createEl("h1",{text:t$d("LINKS_HEAD")}),this.containerEl.createEl("span",void 0,(e=>e.innerHTML=t$d("LINKS_DESC"))),new obsidian.Setting(A).setName(t$d("ADJACENT_PANE_NAME")).setDesc(fragWithHTML(t$d("ADJACENT_PANE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.openInAdjacentPane).onChange((async e=>{this.plugin.settings.openInAdjacentPane=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("MAINWORKSPACE_PANE_NAME")).setDesc(fragWithHTML(t$d("MAINWORKSPACE_PANE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.openInMainWorkspace).onChange((async e=>{this.plugin.settings.openInMainWorkspace=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(fragWithHTML(t$d("LINK_BRACKETS_NAME"))).setDesc(fragWithHTML(t$d("LINK_BRACKETS_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.showLinkBrackets).onChange((e=>{this.plugin.settings.showLinkBrackets=e,this.applySettingsUpdate(!0)})))),new obsidian.Setting(A).setName(t$d("LINK_PREFIX_NAME")).setDesc(fragWithHTML(t$d("LINK_PREFIX_DESC"))).addText((e=>e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.linkPrefix).onChange((e=>{this.plugin.settings.linkPrefix=e,this.applySettingsUpdate(!0)})))),new obsidian.Setting(A).setName(t$d("URL_PREFIX_NAME")).setDesc(fragWithHTML(t$d("URL_PREFIX_DESC"))).addText((e=>e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.urlPrefix).onChange((e=>{this.plugin.settings.urlPrefix=e,this.applySettingsUpdate(!0)})))),new obsidian.Setting(A).setName(t$d("PARSE_TODO_NAME")).setDesc(fragWithHTML(t$d("PARSE_TODO_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.parseTODO).onChange((e=>{this.plugin.settings.parseTODO=e,r.setDisabled(!e),s.setDisabled(!e),this.applySettingsUpdate(!0)})))),new obsidian.Setting(A).setName(t$d("TODO_NAME")).setDesc(fragWithHTML(t$d("TODO_DESC"))).addText((e=>{r=e,e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.todo).onChange((e=>{this.plugin.settings.todo=e,this.applySettingsUpdate(!0)}))})),r.setDisabled(!this.plugin.settings.parseTODO),new obsidian.Setting(A).setName(t$d("DONE_NAME")).setDesc(fragWithHTML(t$d("DONE_DESC"))).setDisabled(!this.plugin.settings.parseTODO).addText((e=>{s=e,e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.done).onChange((e=>{this.plugin.settings.done=e,this.applySettingsUpdate(!0)}))})),s.setDisabled(!this.plugin.settings.parseTODO),new obsidian.Setting(A).setName(t$d("LINKOPACITY_NAME")).setDesc(fragWithHTML(t$d("LINKOPACITY_DESC"))).addSlider((e=>e.setLimits(0,1,.05).setValue(this.plugin.settings.linkOpacity).onChange((async e=>{o.innerText=` ${e.toString()}`,this.plugin.settings.linkOpacity=e,this.applySettingsUpdate(!0)})))).settingEl.createDiv("",(e=>{o=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.linkOpacity.toString()}`})),new obsidian.Setting(A).setName(t$d("HOVERPREVIEW_NAME")).setDesc(fragWithHTML(t$d("HOVERPREVIEW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.hoverPreviewWithoutCTRL).onChange((async e=>{this.plugin.settings.hoverPreviewWithoutCTRL=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("LINK_CTRL_CLICK_NAME")).setDesc(fragWithHTML(t$d("LINK_CTRL_CLICK_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.allowCtrlClick).onChange((async e=>{this.plugin.settings.allowCtrlClick=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("TRANSCLUSION_WRAP_NAME")).setDesc(fragWithHTML(t$d("TRANSCLUSION_WRAP_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.forceWrap).onChange((async e=>{this.plugin.settings.forceWrap=e,this.applySettingsUpdate(!0)})))).descEl.innerHTML=`![[doc#^ref]]{number} ${t$d("TRANSCLUSION_WRAP_DESC")}`,new obsidian.Setting(A).setName(t$d("PAGE_TRANSCLUSION_CHARCOUNT_NAME")).setDesc(fragWithHTML(t$d("PAGE_TRANSCLUSION_CHARCOUNT_DESC"))).addText((e=>e.setPlaceholder("Enter a number").setValue(this.plugin.settings.pageTransclusionCharLimit.toString()).onChange((async A=>{const t=parseInt(A);if(isNaN(t)&&""!==A)e.setValue(this.plugin.settings.pageTransclusionCharLimit.toString());else{if(this.requestEmbedUpdate=!0,""===A)return this.plugin.settings.pageTransclusionCharLimit=10,void this.applySettingsUpdate(!0);this.plugin.settings.pageTransclusionCharLimit=t,e.setValue(this.plugin.settings.pageTransclusionCharLimit.toString()),this.applySettingsUpdate(!0)}})))),new obsidian.Setting(A).setName(t$d("TRANSCLUSION_DEFAULT_WRAP_NAME")).setDesc(fragWithHTML(t$d("TRANSCLUSION_DEFAULT_WRAP_DESC"))).addText((e=>e.setPlaceholder("Enter a number").setValue(this.plugin.settings.wordWrappingDefault.toString()).onChange((async A=>{const t=parseInt(A);if(isNaN(t)&&""!==A)e.setValue(this.plugin.settings.wordWrappingDefault.toString());else{if(this.requestEmbedUpdate=!0,""===A)return this.plugin.settings.wordWrappingDefault=0,void this.applySettingsUpdate(!0);this.plugin.settings.wordWrappingDefault=t,e.setValue(this.plugin.settings.wordWrappingDefault.toString()),this.applySettingsUpdate(!0)}})))),new obsidian.Setting(A).setName(t$d("QUOTE_TRANSCLUSION_REMOVE_NAME")).setDesc(fragWithHTML(t$d("QUOTE_TRANSCLUSION_REMOVE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.removeTransclusionQuoteSigns).onChange((e=>{this.plugin.settings.removeTransclusionQuoteSigns=e,this.requestEmbedUpdate=!0,this.applySettingsUpdate(!0)})))),new obsidian.Setting(A).setName(t$d("GET_URL_TITLE_NAME")).setDesc(fragWithHTML(t$d("GET_URL_TITLE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.iframelyAllowed).onChange((async e=>{this.plugin.settings.iframelyAllowed=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("MD_HEAD")}),this.containerEl.createEl("p",{text:t$d("MD_HEAD_DESC")}),new obsidian.Setting(A).setName(t$d("MD_TRANSCLUDE_WIDTH_NAME")).setDesc(fragWithHTML(t$d("MD_TRANSCLUDE_WIDTH_DESC"))).addText((e=>e.setPlaceholder("Enter a number e.g. 500").setValue(this.plugin.settings.mdSVGwidth.toString()).onChange((async A=>{const t=parseInt(A);if(isNaN(t)&&""!==A)e.setValue(this.plugin.settings.mdSVGwidth.toString());else{if(this.requestEmbedUpdate=!0,""===A)return this.plugin.settings.mdSVGwidth=500,void this.applySettingsUpdate(!0);this.plugin.settings.mdSVGwidth=t,this.requestReloadDrawings=!0,e.setValue(this.plugin.settings.mdSVGwidth.toString()),this.applySettingsUpdate(!0)}})))),new obsidian.Setting(A).setName(t$d("MD_TRANSCLUDE_HEIGHT_NAME")).setDesc(fragWithHTML(t$d("MD_TRANSCLUDE_HEIGHT_DESC"))).addText((e=>e.setPlaceholder("Enter a number e.g. 800").setValue(this.plugin.settings.mdSVGmaxHeight.toString()).onChange((async A=>{const t=parseInt(A);if(isNaN(t)&&""!==A)e.setValue(this.plugin.settings.mdSVGmaxHeight.toString());else{if(this.requestEmbedUpdate=!0,""===A)return this.plugin.settings.mdSVGmaxHeight=800,void this.applySettingsUpdate(!0);this.plugin.settings.mdSVGmaxHeight=t,this.requestReloadDrawings=!0,e.setValue(this.plugin.settings.mdSVGmaxHeight.toString()),this.applySettingsUpdate(!0)}})))),new obsidian.Setting(A).setName(t$d("MD_DEFAULT_FONT_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_FONT_DESC"))).addDropdown((async e=>{e.addOption("Virgil","Virgil"),e.addOption("Cascadia","Cascadia"),this.app.vault.getFiles().filter((e=>["ttf","woff","woff2"].contains(e.extension))).forEach((A=>{e.addOption(A.path,A.name)})),e.setValue(this.plugin.settings.mdFont).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdFont=e,this.applySettingsUpdate(!0)}))})),new obsidian.Setting(A).setName(t$d("MD_DEFAULT_COLOR_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_COLOR_DESC"))).addText((e=>e.setPlaceholder("CSS Color-name|RGB-HEX").setValue(this.plugin.settings.mdFontColor).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdFontColor=e,this.applySettingsUpdate(!0)})))),new obsidian.Setting(A).setName(t$d("MD_DEFAULT_BORDER_COLOR_NAME")).setDesc(fragWithHTML(t$d("MD_DEFAULT_BORDER_COLOR_DESC"))).addText((e=>e.setPlaceholder("CSS Color-name|RGB-HEX").setValue(this.plugin.settings.mdBorderColor).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdBorderColor=e,this.applySettingsUpdate(!0)})))),new obsidian.Setting(A).setName(t$d("MD_CSS_NAME")).setDesc(fragWithHTML(t$d("MD_CSS_DESC"))).addText((e=>e.setPlaceholder("filename of css file in vault").setValue(this.plugin.settings.mdCSS).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.mdCSS=e,this.applySettingsUpdate(!0)})))),this.containerEl.createEl("h1",{text:t$d("EMBED_HEAD")}),new obsidian.Setting(A).setName(t$d("EMBED_PREVIEW_SVG_NAME")).setDesc(fragWithHTML(t$d("EMBED_PREVIEW_SVG_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.displaySVGInPreview).onChange((async e=>{this.plugin.settings.displaySVGInPreview=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("EMBED_REUSE_EXPORTED_IMAGE_NAME")).setDesc(fragWithHTML(t$d("EMBED_REUSE_EXPORTED_IMAGE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.displayExportedImageIfAvailable).onChange((async e=>{this.plugin.settings.displayExportedImageIfAvailable=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("PREVIEW_MATCH_OBSIDIAN_NAME")).setDesc(fragWithHTML(t$d("PREVIEW_MATCH_OBSIDIAN_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.previewMatchObsidianTheme).onChange((async e=>{this.plugin.settings.previewMatchObsidianTheme=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("EMBED_WIDTH_NAME")).setDesc(fragWithHTML(t$d("EMBED_WIDTH_DESC"))).addText((e=>e.setPlaceholder("400").setValue(this.plugin.settings.width).onChange((async e=>{this.plugin.settings.width=e,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),new obsidian.Setting(A).setName(t$d("EMBED_TYPE_NAME")).setDesc(fragWithHTML(t$d("EMBED_TYPE_DESC"))).addDropdown((async e=>{l=e,l.addOption("excalidraw","excalidraw"),this.plugin.settings.autoexportPNG?l.addOption("PNG","PNG"):"PNG"===this.plugin.settings.embedType&&(this.plugin.settings.embedType="excalidraw",this.applySettingsUpdate()),this.plugin.settings.autoexportSVG?l.addOption("SVG","SVG"):"SVG"===this.plugin.settings.embedType&&(this.plugin.settings.embedType="excalidraw",this.applySettingsUpdate()),l.setValue(this.plugin.settings.embedType).onChange((async e=>{this.plugin.settings.embedType=e,this.applySettingsUpdate()}))})),new obsidian.Setting(A).setName(t$d("EMBED_WIKILINK_NAME")).setDesc(fragWithHTML(t$d("EMBED_WIKILINK_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.embedWikiLink).onChange((async e=>{this.plugin.settings.embedWikiLink=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("EXPORT_PNG_SCALE_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PNG_SCALE_DESC"))).addSlider((e=>e.setLimits(1,5,.5).setValue(this.plugin.settings.pngExportScale).onChange((async e=>{c.innerText=` ${e.toString()}`,this.plugin.settings.pngExportScale=e,this.applySettingsUpdate()})))).settingEl.createDiv("",(e=>{c=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.pngExportScale.toString()}`})),new obsidian.Setting(A).setName(t$d("EXPORT_BACKGROUND_NAME")).setDesc(fragWithHTML(t$d("EXPORT_BACKGROUND_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.exportWithBackground).onChange((async e=>{this.plugin.settings.exportWithBackground=e,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),new obsidian.Setting(A).setName(t$d("EXPORT_PADDING_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PADDING_DESC"))).addSlider((e=>e.setLimits(0,50,5).setValue(this.plugin.settings.exportPaddingSVG).onChange((async e=>{d.innerText=` ${e.toString()}`,this.plugin.settings.exportPaddingSVG=e,this.applySettingsUpdate()})))).settingEl.createDiv("",(e=>{d=e,e.style.minWidth="2.3em",e.style.textAlign="right",e.innerText=` ${this.plugin.settings.exportPaddingSVG.toString()}`})),new obsidian.Setting(A).setName(t$d("EXPORT_THEME_NAME")).setDesc(fragWithHTML(t$d("EXPORT_THEME_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.exportWithTheme).onChange((async e=>{this.plugin.settings.exportWithTheme=e,this.applySettingsUpdate(),this.requestEmbedUpdate=!0})))),this.containerEl.createEl("h1",{text:t$d("EXPORT_HEAD")}),new obsidian.Setting(A).setName(t$d("EXPORT_SYNC_NAME")).setDesc(fragWithHTML(t$d("EXPORT_SYNC_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.keepInSync).onChange((async e=>{this.plugin.settings.keepInSync=e,this.applySettingsUpdate()}))));const h=e=>{let A=0;for(A=0;Ae.setValue(this.plugin.settings.autoexportSVG).onChange((async e=>{e?l.addOption("SVG","SVG"):("SVG"===this.plugin.settings.embedType&&(l.setValue("excalidraw"),this.plugin.settings.embedType="excalidraw"),h("SVG")),this.plugin.settings.autoexportSVG=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("EXPORT_PNG_NAME")).setDesc(fragWithHTML(t$d("EXPORT_PNG_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.autoexportPNG).onChange((async e=>{e?l.addOption("PNG","PNG"):("PNG"===this.plugin.settings.embedType&&(l.setValue("excalidraw"),this.plugin.settings.embedType="excalidraw"),h("PNG")),this.plugin.settings.autoexportPNG=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("EXPORT_BOTH_DARK_AND_LIGHT_NAME")).setDesc(fragWithHTML(t$d("EXPORT_BOTH_DARK_AND_LIGHT_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.autoExportLightAndDark).onChange((async e=>{this.plugin.settings.autoExportLightAndDark=e,this.applySettingsUpdate()})))),this.containerEl.createEl("h1",{text:t$d("COMPATIBILITY_HEAD")}),new obsidian.Setting(A).setName(t$d("COMPATIBILITY_MODE_NAME")).setDesc(fragWithHTML(t$d("COMPATIBILITY_MODE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.compatibilityMode).onChange((async e=>{this.plugin.settings.compatibilityMode=e,i.innerHTML=n(),this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("EXPORT_EXCALIDRAW_NAME")).setDesc(fragWithHTML(t$d("EXPORT_EXCALIDRAW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.autoexportExcalidraw).onChange((async e=>{this.plugin.settings.autoexportExcalidraw=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("SYNC_EXCALIDRAW_NAME")).setDesc(fragWithHTML(t$d("SYNC_EXCALIDRAW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.syncExcalidraw).onChange((async e=>{this.plugin.settings.syncExcalidraw=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("MATHJAX_NAME")).setDesc(t$d("MATHJAX_DESC")).addDropdown((e=>{e.addOption("https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js","jsdelivr").addOption("https://unpkg.com/mathjax@3.2.1/es5/tex-svg.js","unpkg").addOption("https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.1/es5/tex-svg-full.min.js","cdnjs").setValue(this.plugin.settings.mathjaxSourceURL).onChange((e=>{this.plugin.settings.mathjaxSourceURL=e,this.reloadMathJax=!0,this.applySettingsUpdate()}))})),this.containerEl.createEl("h1",{text:t$d("EXPERIMENTAL_HEAD")}),this.containerEl.createEl("p",{text:t$d("EXPERIMENTAL_DESC")}),new obsidian.Setting(A).setName(t$d("FIELD_SUGGESTER_NAME")).setDesc(fragWithHTML(t$d("FIELD_SUGGESTER_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.fieldSuggester).onChange((async e=>{this.plugin.settings.fieldSuggester=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("FILETYPE_NAME")).setDesc(fragWithHTML(t$d("FILETYPE_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.experimentalFileType).onChange((async e=>{this.plugin.settings.experimentalFileType=e,this.plugin.experimentalFileTypeDisplayToggle(e),this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("FILETAG_NAME")).setDesc(fragWithHTML(t$d("FILETAG_DESC"))).addText((e=>e.setPlaceholder(t$d("INSERT_EMOJI")).setValue(this.plugin.settings.experimentalFileTag).onChange((async e=>{this.plugin.settings.experimentalFileTag=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("LIVEPREVIEW_NAME")).setDesc(fragWithHTML(t$d("LIVEPREVIEW_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.experimentalLivePreview).onChange((async e=>{this.plugin.settings.experimentalLivePreview=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("ENABLE_FOURTH_FONT_NAME")).setDesc(fragWithHTML(t$d("ENABLE_FOURTH_FONT_DESC"))).addToggle((e=>e.setValue(this.plugin.settings.experimentalEnableFourthFont).onChange((async e=>{this.requestReloadDrawings=!0,this.plugin.settings.experimentalEnableFourthFont=e,this.applySettingsUpdate()})))),new obsidian.Setting(A).setName(t$d("FOURTH_FONT_NAME")).setDesc(fragWithHTML(t$d("FOURTH_FONT_DESC"))).addDropdown((async e=>{e.addOption("Virgil","Virgil"),this.app.vault.getFiles().filter((e=>["ttf","woff","woff2"].contains(e.extension))).forEach((A=>{e.addOption(A.path,A.name)})),e.setValue(this.plugin.settings.experimantalFourthFont).onChange((e=>{this.requestReloadDrawings=!0,this.plugin.settings.experimantalFourthFont=e,this.applySettingsUpdate(!0),this.plugin.initializeFourthFont()}))}));const u=null===(e=this.plugin.scriptEngine.getListofScripts())||void 0===e?void 0:e.map((e=>this.plugin.scriptEngine.getScriptName(e)));if(Object.keys(this.plugin.settings.scriptEngineSettings).length>0&&u){const e=(e,A)=>{const t=this.plugin.settings.scriptEngineSettings[e][A];return"object"==typeof t?t.height:null},t=(e,A)=>{const t=this.plugin.settings.scriptEngineSettings[e][A];return"object"==typeof t?t.value:t},n=(e,A,t)=>{"object"==typeof this.plugin.settings.scriptEngineSettings[e][A]?this.plugin.settings.scriptEngineSettings[e][A].value=t:this.plugin.settings.scriptEngineSettings[e][A]=t},i=(e,i,a)=>{new obsidian.Setting(A).setName(i).setDesc(fragWithHTML(null!=a?a:"")).addToggle((A=>A.setValue(t(e,i)).onChange((async A=>{n(e,i,A),this.applySettingsUpdate()}))))},a=(i,a,r,s)=>{s&&"[object Array]"===Object.prototype.toString.call(s)&&s.length>0?new obsidian.Setting(A).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addDropdown((e=>{s.forEach((A=>e.addOption(A.toString(),A.toString()))),e.setValue(t(i,a)).onChange((async e=>{n(i,a,e),this.applySettingsUpdate()}))})):e(i,a)?new obsidian.Setting(A).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addTextArea((A=>{A.inputEl.style.minHeight=e(i,a),A.inputEl.style.minWidth="400px",A.setValue(t(i,a)).onChange((async e=>{n(i,a,e),this.applySettingsUpdate()}))})):new obsidian.Setting(A).setName(a).setDesc(fragWithHTML(null!=r?r:"")).addText((e=>e.setValue(t(i,a)).onChange((async e=>{n(i,a,e),this.applySettingsUpdate()}))))},r=(e,i,a)=>{new obsidian.Setting(A).setName(i).setDesc(fragWithHTML(null!=a?a:"")).addText((A=>A.setPlaceholder("Enter a number").setValue(t(e,i).toString()).onChange((async a=>{const r=parseFloat(a);isNaN(r)&&""!==a?A.setValue(t(e,i).toString()):(n(e,i,isNaN(r)?0:r),this.applySettingsUpdate())}))))};this.containerEl.createEl("h1",{text:t$d("SCRIPT_SETTINGS_HEAD")}),Object.keys(this.plugin.settings.scriptEngineSettings).filter((e=>u.contains(e))).forEach((e=>{const A=this.plugin.settings.scriptEngineSettings[e],t=Object.values(A);0===t.length||t.length>0&&0===t.map((e=>e.hidden?0:1)).reduce(((e,A)=>e+A))||(this.containerEl.createEl("h3",{text:e}),Object.keys(A).forEach((t=>{var n;const s=A[t];switch(typeof(null!==(n=s.value)&&void 0!==n?n:s)){case"boolean":s.hidden||i(e,t,s.description);break;case"string":s.hidden||a(e,t,s.description,s.valueset);break;case"number":s.hidden||r(e,t,s.description)}})))}))}}}var openDialogAction;!function(e){e[e.openFile=0]="openFile",e[e.insertLinkToDrawing=1]="insertLinkToDrawing"}(openDialogAction||(openDialogAction={}));class OpenFileDialog extends obsidian.FuzzySuggestModal{constructor(e,A){super(e),this.app=e,this.action=openDialogAction.openFile,this.plugin=A,this.onNewPane=!1,this.limit=20,this.setInstructions([{command:t$d("TYPE_FILENAME"),purpose:""}]),this.inputEl.onkeyup=e=>{"Enter"==e.key&&this.action==openDialogAction.openFile&&this.containerEl.innerText.includes(EMPTY_MESSAGE)&&(this.plugin.createAndOpenDrawing(`${this.plugin.settings.folder}/${this.inputEl.value}.excalidraw.md`,this.onNewPane?"new-pane":"active-pane"),this.close())}}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>this.plugin.isExcalidrawFile(e)))}getItemText(e){return e.path}onChooseItem(e){switch(this.action){case openDialogAction.openFile:this.plugin.openDrawing(e,this.onNewPane?"new-pane":"active-pane",!0);break;case openDialogAction.insertLinkToDrawing:this.plugin.embedDrawing(e)}}start(e,A){switch(this.action=e,this.onNewPane=A,e){case openDialogAction.openFile:this.emptyStateText=EMPTY_MESSAGE,this.setPlaceholder(t$d("SELECT_FILE_OR_TYPE_NEW"));break;case openDialogAction.insertLinkToDrawing:this.emptyStateText=t$d("NO_MATCH"),this.setPlaceholder(t$d("SELECT_TO_EMBED"))}this.open()}}class InsertLinkDialog extends obsidian.FuzzySuggestModal{constructor(e){super(e),this.app=e,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_FILE_TO_LINK")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return this.app.metadataCache.getLinkSuggestions().filter((e=>!e.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(e){return e.path+(e.alias?`|${e.alias}`:"")}onChooseItem(e){let A=e.path;e.file&&(A=this.app.metadataCache.fileToLinktext(e.file,this.drawingPath,!0)),this.addText(`[[${A+(e.alias?`|${e.alias}`:"")}]]`)}start(e,A){this.addText=A,this.drawingPath=e,this.open()}}class InsertImageDialog extends obsidian.FuzzySuggestModal{constructor(e){super(e.app),this.plugin=e,this.app=e.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE_WITH_OPTION_TO_SCALE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_DRAWING")),this.emptyStateText=t$d("NO_MATCH"),this.inputEl.onkeyup=e=>{"Enter"===e.key&&e.altKey&&this.chooser.values&&(this.onChooseItem(this.chooser.values[this.chooser.selectedItem].item,new KeyboardEvent("keypress",{altKey:!0})),this.close())}}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>(IMAGE_TYPES.contains(e.extension)||this.plugin.isExcalidrawFile(e))&&!e.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(e){return e.path}onChooseItem(e,A){const t=this.plugin.ea;t.reset(),t.setView(this.view),t.canvas.theme=this.view.excalidrawAPI.getAppState().theme,(async()=>{await t.addImage(0,0,e,!A.altKey),t.addElementsToView(!0,!1,!0)})()}start(e){this.view=e,this.open()}}class ImportSVGDialog extends obsidian.FuzzySuggestModal{constructor(e){super(e.app),this.plugin=e,this.app=e.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_DRAWING")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>"svg"===e.extension&&!e.path.match(REG_LINKINDEX_INVALIDCHARS)))}getItemText(e){return e.path}async onChooseItem(e,A){if(!e)return;const t=this.plugin.ea;t.reset(),t.setView(this.view);const n=await app.vault.read(e);n&&""!==n&&(t.importSVG(n),t.addElementsToView(!0,!0,!0))}start(e){this.view=e,this.open()}}class InsertMDDialog extends obsidian.FuzzySuggestModal{constructor(e){super(e.app),this.plugin=e,this.app=e.app,this.limit=20,this.setInstructions([{command:t$d("SELECT_FILE"),purpose:""}]),this.setPlaceholder(t$d("SELECT_MD")),this.emptyStateText=t$d("NO_MATCH")}getItems(){return(this.app.vault.getFiles()||[]).filter((e=>"md"===e.extension&&!this.plugin.isExcalidrawFile(e)))}getItemText(e){return e.path}onChooseItem(e){const A=this.plugin.ea;A.reset(),A.setView(this.view),(async()=>{await A.addImage(0,0,e),A.addElementsToView(!0,!1,!0)})()}start(e){this.view=e,this.open()}}function around(e,A){const t=Object.keys(A).map((t=>around1(e,t,A[t])));return 1===t.length?t[0]:function(){t.forEach((e=>e()))}}function around1(e,A,t){const n=e[A],i=e.hasOwnProperty(A);let a=t(n);return n&&Object.setPrototypeOf(a,n),Object.setPrototypeOf(r,a),e[A]=r,s;function r(...t){return a===n&&e[A]===r&&s(),a.apply(this,t)}function s(){e[A]===r&&(i?e[A]=n:delete e[A]),a!==n&&(a=n,Object.setPrototypeOf(r,n||Function))}}let plugin,vault,metadataCache;const getDefaultWidth=e=>{const A=parseInt(e.settings.width);return isNaN(A)||0===A||null===A?"400":e.settings.width},initializeMarkdownPostProcessor=e=>{plugin=e,vault=e.app.vault,metadataCache=e.app.metadataCache},getIMG=async e=>{var A;let t=e.file;if(!e.file){const n=vault.getAbstractFileByPath(null===(A=e.fname)||void 0===A?void 0:A.split("#")[0]);if(!(n&&n instanceof obsidian.TFile))return null;t=n}const n=getEmbeddedFilenameParts(e.fname);e.style=e.style.replaceAll(" ","-");const i=hasExportTheme(plugin,t)?getExportTheme(plugin,t,"light"):void 0,a={withBackground:getWithBackground(plugin,t),withTheme:!!i||plugin.settings.exportWithTheme},r=createEl("img");let s=`max-width:${e.fwidth}px; width:100%;`;e.fheight&&(s+=`height:${e.fheight}px;`),r.setAttribute("style",s),r.addClass(e.style);const o=null!=i?i:plugin.settings.previewMatchObsidianTheme?isObsidianThemeDark()?"dark":"light":plugin.settings.exportWithTheme?void 0:"light";o&&(a.withTheme=!0);const l=new EmbeddedFilesLoader(plugin,o?"dark"===o:void 0);if(!plugin.settings.displaySVGInPreview){const A=parseInt(e.fwidth),i=A>=2400?5:A>=1800?4:A>=1200?3:A>=600?2:1,s=n.hasGroupref?void 0:await getQuickImagePreview(plugin,t.path,"png"),c=null!=s?s:await createPNG(n.hasGroupref?n.filepath+n.linkpartReference:t.path,i,a,l,o,null,null,[],plugin,0);return c?(r.src=URL.createObjectURL(c),r):null}if(!n.hasBlockref&&!n.hasSectionref){const e=await getQuickImagePreview(plugin,t.path,"svg");if(e)return r.setAttribute("src",svgToBase64(e)),r}const c=(await createSVG(n.hasGroupref||n.hasBlockref||n.hasSectionref?n.filepath+n.linkpartReference:t.path,!0,a,l,o,null,null,[],plugin,0,getExportPadding(plugin,t))).outerHTML;let d=null;const h=document.createElement("div");h.innerHTML=c;const u=h.firstChild;return u instanceof SVGSVGElement&&(d=u),d?(d=embedFontsInSVG(d,plugin),d.removeAttribute("width"),d.removeAttribute("height"),r.setAttribute("src",svgToBase64(d.outerHTML)),r):null},createImageDiv=async e=>{const A=await getIMG(e);return createDiv(e.style,(t=>{t.append(A),t.setAttribute("src",e.fname),e.fwidth&&t.setAttribute("w",e.fwidth),e.fheight&&t.setAttribute("h",e.fheight),t.onClickEvent((e=>{if(e.target instanceof Element&&"img"!=e.target.tagName.toLowerCase())return;const A=t.getAttribute("src");if(A){const t=A.match(/([^#]*)(.*)/);if(!t)return;plugin.openDrawing(vault.getAbstractFileByPath(t[1]),e[CTRL_OR_CMD]?"new-pane":e.metaKey&&!app.isMobile?"popout-window":"active-pane",!0,t[2])}})),t.addEventListener(RERENDER_EVENT,(async e=>{e.stopPropagation(),t.empty();const A=await getIMG({fname:t.getAttribute("src"),fwidth:t.getAttribute("w"),fheight:t.getAttribute("h"),style:t.getAttribute("class")});t.append(A)}))}))},processReadingMode=async(e,A)=>{var t;for(const n of e){const e=null===(t=n.getAttribute("src"))||void 0===t?void 0:t.split("#")[0];if(!e)continue;const i=metadataCache.getFirstLinkpathDest(e,A.sourcePath);if(i&&i instanceof obsidian.TFile&&plugin.isExcalidrawFile(i)){if(isTextOnlyEmbed(n))continue;n.parentElement.replaceChild(await processInternalEmbed(n,i),n)}}},processInternalEmbed=async(e,A)=>{const t={fname:"",fheight:"",fwidth:"",style:""},n=e.getAttribute("src");if(!n)return;t.fwidth=e.getAttribute("width")?e.getAttribute("width"):getDefaultWidth(plugin),t.fheight=e.getAttribute("height");let i=e.getAttribute("alt");t.style="excalidraw-svg",processAltText(n.split("#")[0],i,t);const a=getEmbeddedFilenameParts(n);return t.fname=(null==A?void 0:A.path)+(a.hasBlockref||a.hasSectionref?a.linkpartReference:""),t.file=A,await createImageDiv(t)},processAltText=(e,A,t)=>{var n,i;if(A&&!A.startsWith(e)){const a=A.match(/[^\|\d]*\|?((\d*%?)x?(\d*%?))?\|?(.*)/);t.fwidth=null!==(n=a[2])&&void 0!==n?n:t.fwidth,t.fheight=null!==(i=a[3])&&void 0!==i?i:t.fheight,a[4]&&!a[4].startsWith(e)&&(t.style=`excalidraw-svg-${a[4]}`),a[4]&&""!==a[4]||a[2]&&""!==a[2]||!a[0]||""===a[0]||(t.style=`excalidraw-svg-${a[0]}`)}},isTextOnlyEmbed=e=>{const A=e.getAttribute("src");if(!A)return!0;const t=getEmbeddedFilenameParts(A);return!(t.hasArearef||t.hasGroupref)&&(t.hasBlockref||t.hasSectionref)},tmpObsidianWYSIWYG=async(e,A)=>{const t=app.vault.getAbstractFileByPath(A.sourcePath);t instanceof obsidian.TFile&&plugin.isExcalidrawFile(t)&&(A.remainingNestLevel<4||setTimeout((async()=>{let n=0;for(;!e.parentElement&&n++<=50;)await sleep(50);if(!e.parentElement)return;let i=e;for(;!i.hasClass("dataview")&&!i.hasClass("cm-preview-code-block")&&!i.hasClass("cm-embed-block")&&!i.hasClass("internal-embed")&&i.parentElement;)i=i.parentElement;if(i.hasClass("dataview")||i.hasClass("cm-preview-code-block")||i.hasClass("cm-embed-block"))return;const a={fname:A.sourcePath,fheight:"",fwidth:getDefaultWidth(plugin),style:"excalidraw-svg"};if(a.file=t,!i.hasClass("internal-embed")){e.empty();const A=e.parentElement;if(!A.hasClass("markdown-preview-section"))return;if(A.hasAttribute("ready"))return void A.removeChild(e);A.setAttribute("ready","");const t=await createImageDiv(a);return void e.appendChild(t)}if(isTextOnlyEmbed(i))return;if(e.empty(),i.hasAttribute("ready"))return;i.setAttribute("ready",""),i.empty();const r=await processInternalEmbed(i,t);i.appendChild(r);let s=null;const o=new MutationObserver((e=>{var A;["alt","width","height"].contains(null===(A=e[0])||void 0===A?void 0:A.attributeName)&&(s&&clearTimeout(s),s=setTimeout((async()=>{s=null,i.empty();const e=await processInternalEmbed(i,t);i.appendChild(e)}),500))}));o.observe(i,{attributes:!0})})))},markdownPostProcessor=async(e,A)=>{var t;const n=e.querySelectorAll(".internal-embed");0!==n.length?Boolean(null===(t=A.frontmatter)||void 0===t?void 0:t.hasOwnProperty("excalidraw-plugin"))?e.style.display="none":await processReadingMode(n,A):tmpObsidianWYSIWYG(e,A)},hoverEvent=e=>{e.linktext?(plugin.hover.linkText=e.linktext,plugin.hover.sourcePath=e.sourcePath):plugin.hover.linkText=null},observer=new MutationObserver((async e=>{if(0==e.length)return;if(!plugin.hover.linkText)return;const A=metadataCache.getFirstLinkpathDest(plugin.hover.linkText,plugin.hover.sourcePath?plugin.hover.sourcePath:"");if(!A)return;if(!(A instanceof obsidian.TFile))return;if("excalidraw"!==A.extension)return;const t=getIMGFilename(A.path,"svg"),n=vault.getAbstractFileByPath(t);if(n&&n instanceof obsidian.TFile)return;const i=getIMGFilename(A.path,"png"),a=vault.getAbstractFileByPath(i);if(a&&a instanceof obsidian.TFile)return;if(!plugin.hover.linkText)return;if(1!=e.length)return;if(1!=e[0].addedNodes.length)return;if("popover hover-popover file-embed is-loaded"!=!e[0].addedNodes[0].classNames)return;const r=e[0].addedNodes[0];r.empty();const s=await getIMG({file:A,fname:A.path,fwidth:"300",fheight:null,style:"excalidraw-svg"}),o=createDiv("",(async e=>{e.appendChild(s),e.setAttribute("src",A.path),e.onClickEvent((A=>{A.stopImmediatePropagation();const t=e.getAttribute("src");t&&plugin.openDrawing(vault.getAbstractFileByPath(t),A[CTRL_OR_CMD]?"new-pane":A.metaKey&&!app.isMobile?"popout-window":"active-pane")}))}));r.appendChild(o)})),EXCALIDRAW_AUTOMATE_INFO=[{field:"plugin",code:null,desc:"The ExcalidrawPlugin object",after:""},{field:"elementsDict",code:null,desc:"The {} dictionary object, contains the ExcalidrawElements currently edited in Automate indexed by el.id",after:'[""]'},{field:"imagesDict",code:null,desc:"the images files including DataURL, indexed by fileId",after:'[""]'},{field:"style.strokeColor",code:"[string]",desc:"A valid css color. See W3 School Colors for more.",after:""},{field:"style.backgroundColor",code:"[string]",desc:"A valid css color. See W3 School Colors for more.",after:""},{field:"style.angle",code:"[number]",desc:"Rotation of the object in radian",after:""},{field:"style.fillStyle",code:"[string]",desc:"'hachure' | 'cross-hatch' | 'solid'",after:""},{field:"style.strokeWidth",code:"[number]",desc:null,after:""},{field:"style.strokeStyle",code:"[string]",desc:"'solid' | 'dashed' | 'dotted'",after:""},{field:"style.roughness",code:"[number]",desc:"0:Architect\n1:Artist\n2:Cartoonist",after:""},{field:"style.opacity",code:"[number]",desc:"100: Fully opaque\n0: Fully transparent",after:""},{field:"style.strokeSharpness",code:"[string]",desc:"'round' | 'sharp'",after:""},{field:"style.fontFamily",code:"[number]",desc:"1: Virgil, 2:Helvetica, 3:Cascadia, 4:LocalFont",after:""},{field:"style.fontSize",code:"[number]",desc:null,after:""},{field:"style.textAlign",code:"[string]",desc:"'left' | 'right' | 'center'",after:""},{field:"style.verticalAlign",code:"[string]",desc:"For future use, has no effect currently; 'top' | 'bottom' | 'middle'",after:""},{field:"style.startArrowHead",code:"[string]",desc:"'triangle' | 'dot' | 'arrow' | 'bar' | null",after:""},{field:"style.endArrowHead",code:"[string]",desc:"'triangle' | 'dot' | 'arrow' | 'bar' | null",after:""},{field:"canvas.theme",code:"[string]",desc:"'dark' | 'light'",after:""},{field:"canvas.viewBackgroundColor",code:"[string]",desc:"A valid css color.\nSee W3 School Colors for more.",after:""},{field:"canvas.gridSize",code:"[number]",desc:null,after:""},{field:"addToGroup",code:"addToGroup(objectIds: []): string;",desc:null,after:""},{field:"toCliboard",code:"toClipboard(templatePath?: string): void;",desc:"Copies current elements using template to clipboard, ready to be pasted into an excalidraw canvas",after:""},{field:"getElements",code:"getElements(): ExcalidrawElement[];",desc:"Get all elements from ExcalidrawAutomate elementsDict",after:""},{field:"getElement",code:"getElement(id: string): ExcalidrawElement;",desc:"Get single element from ExcalidrawAutomate elementsDict",after:""},{field:"create",code:'create(params?: {filename?: string, foldername?: string, templatePath?: string, onNewPane?: boolean, frontmatterKeys?: { "excalidraw-plugin"?: "raw" | "parsed", "excalidraw-link-prefix"?: string, "excalidraw-link-brackets"?: boolean, "excalidraw-url-prefix"?: string,},}): Promise;',desc:"Create a drawing and save it to filename.\nIf filename is null: default filename as defined in Excalidraw settings.\nIf folder is null: default folder as defined in Excalidraw settings\n",after:""},{field:"createSVG",code:"createSVG(templatePath?: string, embedFont?: boolean, exportSettings?: ExportSettings, loader?: EmbeddedFilesLoader, theme?: string,): Promise;",desc:"Use ExcalidrawAutomate.getExportSettings(boolean,boolean) to create an ExportSettings object.\nUse ExcalidrawAutomate.getEmbeddedFilesLoader(boolean?) to create an EmbeddedFilesLoader object.",after:""},{field:"createPNG",code:"createPNG(templatePath?: string, scale?: number, exportSettings?: ExportSettings, loader?: EmbeddedFilesLoader, theme?: string,): Promise;",desc:"Use ExcalidrawAutomate.getExportSettings(boolean,boolean) to create an ExportSettings object.\nUse ExcalidrawAutomate.getEmbeddedFilesLoader(boolean?) to create an EmbeddedFilesLoader object.",after:""},{field:"wrapText",code:"wrapText(text: string, lineLen: number): string;",desc:null,after:""},{field:"addRect",code:"addRect(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addDiamond",code:"addDiamond(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addEllipse",code:"addEllipse(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addBlob",code:"addBlob(topX: number, topY: number, width: number, height: number): string;",desc:null,after:""},{field:"addText",code:'addText(topX: number, topY: number, text: string, formatting?: {wrapAt?: number; width?: number; height?: number; textAlign?: string; box?: boolean | "box" | "blob" | "ellipse" | "diamond"; boxPadding?: number;}, id?: string,): string;',desc:"If box is !null, then text will be boxed\nThe function returns the id of the TextElement. If the text element is boxed i.e. it is a sticky note, then the id of the container object",after:""},{field:"addLine",code:"addLine(points: [[x: number, y: number]]): string;",desc:null,after:""},{field:"addArrow",code:"addArrow(points: [[x: number, y: number]], formatting?: { startArrowHead?: string; endArrowHead?: string; startObjectId?: string; endObjectId?: string;},): string;",desc:null,after:""},{field:"addImage",code:"addImage(topX: number, topY: number, imageFile: TFile, scale: boolean): Promise;",desc:"set scale to false if you want to embed the image at 100% of its original size. Default is true which will insert a scaled image",after:""},{field:"addLaTex",code:"addLaTex(topX: number, topY: number, tex: string): Promise;",desc:null,after:""},{field:"connectObjects",code:"connectObjects(objectA: string, connectionA: ConnectionPoint, objectB: string, connectionB: ConnectionPoint, formatting?: {numberOfPoints?: number; startArrowHead?: string; endArrowHead?: string; padding?: number;},): string;",desc:'type ConnectionPoint = "top" | "bottom" | "left" | "right" | null\nWhen null is passed as ConnectionPoint then Excalidraw will automatically decide\nnumberOfPoints is the number of points on the line. Default is 0 i.e. line will only have a start and end point.\nArrowHead: "triangle"|"dot"|"arrow"|"bar"|null',after:""},{field:"addLabelToLine",code:"addLabelToLine(lineId: string, label: string): string;",desc:"Adds a text label to a line or arrow. Currently only works with a simple straight 2-point (start & end) line",after:""},{field:"clear",code:"clear(): void;",desc:"Clears elementsDict and imagesDict only",after:""},{field:"reset",code:"reset(): void;",desc:"clear() + reset all style values to default",after:""},{field:"isExcalidrawFile",code:"isExcalidrawFile(f: TFile): boolean;",desc:"Returns true if MD file is an Excalidraw file",after:""},{field:"targetView",code:"targetView: ExcalidrawView;",desc:"The Obsidian view currently edited",after:""},{field:"setView",code:'setView(view: ExcalidrawView | "first" | "active"): ExcalidrawView;',desc:null,after:""},{field:"getExcalidrawAPI",code:"getExcalidrawAPI(): any;",desc:"Excalidraw API",after:""},{field:"getViewElements",code:"getViewElements(): ExcalidrawElement[];",desc:"Get elements in View",after:""},{field:"deleteViewElements",code:"deleteViewElements(el: ExcalidrawElement[]): boolean;",desc:null,after:""},{field:"getViewSelectedElement",code:"getViewSelectedElement(): ExcalidrawElement;",desc:"Get the selected element in the view, if more are selected, get the first",after:""},{field:"getViewSelectedElements",code:"getViewSelectedElements(): ExcalidrawElement[];",desc:null,after:""},{field:"getViewFileForImageElement",code:"getViewFileForImageElement(el: ExcalidrawElement): TFile | null;",desc:"Returns the TFile file handle for the image element",after:""},{field:"copyViewElementsToEAforEditing",code:"copyViewElementsToEAforEditing(elements: ExcalidrawElement[]): void;",desc:"Copies elements from view to elementsDict for editing",after:""},{field:"viewToggleFullScreen",code:"viewToggleFullScreen(forceViewMode?: boolean): void;",desc:null,after:""},{field:"connectObjectWithViewSelectedElement",code:"connectObjectWithViewSelectedElement(objectA: string, connectionA: ConnectionPoint, connectionB: ConnectionPoint, formatting?: {numberOfPoints?: number; startArrowHead?: string; endArrowHead?: string; padding?: number;},): boolean;",desc:"Connect an object to the selected element in the view\nSee tooltip for connectObjects for details",after:""},{field:"addElementsToView",code:"addElementsToView(repositionToCursor?: boolean, save?: boolean, newElementsOnTop?: boolean,): Promise;",desc:"Adds elements from elementsDict to the current view\nrepositionToCursor: default is false\nsave: default is true\nnewElementsOnTop: default is false, i.e. the new elements get to the bottom of the stack\nnewElementsOnTop controls whether elements created with ExcalidrawAutomate are added at the bottom of the stack or the top of the stack of elements already in the view\nNote that elements copied to the view with copyViewElementsToEAforEditing retain their position in the stack of elements in the view even if modified using EA",after:""},{field:"onDropHook",code:'onDropHook(data: {ea: ExcalidrawAutomate, event: React.DragEvent, draggable: any, type: "file" | "text" | "unknown", payload: {files: TFile[], text: string,}, excalidrawFile: TFile, view: ExcalidrawView, pointerPosition: { x: number, y: number},}): boolean;',desc:"If set Excalidraw will call this function onDrop events.\nA return of true will stop the default onDrop processing in Excalidraw.\n\ndraggable is the Obsidian draggable object\nfiles is the array of dropped files\nexcalidrawFile is the file receiving the drop event\nview is the excalidraw view receiving the drop.\npointerPosition is the pointer position on canvas at the time of drop.",after:""},{field:"mostRecentMarkdownSVG",code:"mostRecentMarkdownSVG: SVGSVGElement;",desc:"Markdown renderer will drop a copy of the most recent SVG here for debugging purposes",after:""},{field:"getEmbeddedFilesLoader",code:"getEmbeddedFilesLoader(isDark?: boolean): EmbeddedFilesLoader;",desc:"Utility function to generate EmbeddedFilesLoader object",after:""},{field:"getExportSettings",code:"getExportSettings(withBackground: boolean, withTheme: boolean,): ExportSettings;",desc:"Utility function to generate ExportSettings object",after:""},{field:"getBoundingBox",code:"getBoundingBox(elements: ExcalidrawElement[]): {topX: number, topY: number, width: number, height: number,};",desc:"Gets the bounding box of elements. The bounding box is the box encapsulating all of the elements completely.",after:""},{field:"getMaximumGroups",code:"getMaximumGroups(elements: ExcalidrawElement[]): ExcalidrawElement[][];",desc:"Elements grouped by the highest level groups",after:""},{field:"getLargestElement",code:"getLargestElement(elements: ExcalidrawElement[]): ExcalidrawElement;",desc:"Gets the largest element from a group. useful when a text element is grouped with a box, and you want to connect an arrow to the box",after:""},{field:"intersectElementWithLine",code:"intersectElementWithLine(element: ExcalidrawBindableElement, a: readonly [number, number], b: readonly [number, number], gap?: number,): Point[];",desc:"If gap is given, the element is inflated by this value.\nReturns 2 or 0 intersection points between line going through `a` and `b` and the `element`, in ascending order of distance from `a`.",after:""},{field:"getCommonGroupForElements",code:"getCommonGroupForElements(elements: ExcalidrawElement[]): string;",desc:"Gets the groupId for the group that contains all the elements, or null if such a group does not exist",after:""},{field:"getElementsInTheSameGroupWithElement",code:"getElementsInTheSameGroupWithElement(element: ExcalidrawElement, elements: ExcalidrawElement[]): ExcalidrawElement[];",desc:"Gets all the elements from elements[] that share one or more groupIds with element.",after:""},{field:"activeScript",code:"activeScript: string;",desc:"Mandatory to set before calling the get and set ScriptSettings functions. Set automatically by the ScriptEngine\nSee for more details: Script Engine Help",after:""},{field:"getScriptSettings",code:"getScriptSettings(): {};",desc:"Returns script settings. Saves settings in plugin settings, under the activeScript key. See for more details: Script Engine Help",after:""},{field:"setScriptSettings",code:"setScriptSettings(settings: any): Promise;",desc:"Sets script settings.\nSee for more details: Script Engine Help",after:""},{field:"openFileInNewOrAdjacentLeaf",code:"openFileInNewOrAdjacentLeaf(file: TFile): WorkspaceLeaf;",desc:"Open a file in a new workspaceleaf or reuse an existing adjacent leaf depending on Excalidraw Plugin Settings",after:""},{field:"measureText",code:"measureText(text: string): { width: number; height: number };",desc:"Measures text size based on current style settings",after:""},{field:"verifyMinimumPluginVersion",code:"verifyMinimumPluginVersion(requiredVersion: string): boolean;",desc:'Returns true if plugin version is >= than required\nrecommended use:\nif(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.20")) {new Notice("message");return;}',after:""},{field:"selectElementsInView",code:"selectElementsInView(elements: ExcalidrawElement[]):void;",desc:"Elements provided will be set as selected in the targetView.",after:""},{field:"generateElementId",code:"generateElementId(): string;",desc:"Returns an 8 character long random id",after:""},{field:"cloneElement",code:"cloneElement(element: ExcalidrawElement): ExcalidrawElement;",desc:"Returns a clone of the element with a new element id",after:""},{field:"moveViewElementToZIndex",code:"moveViewElementToZIndex(elementId:number, newZIndex:number): void;",desc:"Moves the element to a specific position in the z-index",after:""},{field:"hexStringToRgb",code:"hexStringToRgb(color: string):number[];",desc:"Converts a HEX color to an RGB number array. #FF0000 to [255,0,0]",after:""},{field:"rgbToHexString",code:"rgbToHexString(color: number[]):string;",desc:"Converts an RGB number array to a HEX string. [255,0,0] to #FF0000",after:""},{field:"hslToRgb",code:"hslToRgb(color: number[]):number[];",desc:"Converts an HSL number array to an RGB number array. [0,100,50] to [255,0,0]",after:""},{field:"rgbToHsl",code:"rgbToHsl(color:number[]):number[];",desc:"Converts an RGB number array to an HSL number array. [255,0,0] to [0,100,50]",after:""},{field:"colorNameToHex",code:"colorNameToHex(color:string):string;",desc:"Converts a CSS color name to its HEX color equivalent. 'White' to #FFFFFF",after:""}],EXCALIDRAW_SCRIPTENGINE_INFO=[{field:"inputPrompt",code:"inputPrompt: (header: string, placeholder?: string, value?: string, buttons?: [{caption:string, action:Function}]);",desc:"Opens a prompt that asks for an input.\nReturns a string with the input.\nYou need to await the result of inputPrompt.\nbuttons.action(input: string) => string\nThe button action function will receive the actual input string. If action returns null, input will be unchanged. If action returns a string, input will receive that value when the promise is resolved. example:\nlet fileType = '';\nconst filename = await utils.inputPrompt (\n 'Filename',\n '',\n '',\n, [\n {\n caption: 'Markdown',\n action: ()=>{fileType='md';return;}\n },\n {\n caption: 'Excalidraw',\n action: ()=>{fileType='ex';return;}\n }\n ]\n);",after:""},{field:"suggester",code:"suggester: (displayItems: string[], items: any[], hint?: string, instructions?:Instruction[]);",desc:"Opens a suggester. Displays the displayItems and returns the corresponding item from items[]\nYou need to await the result of suggester.\nIf the user cancels (ESC), suggester will return undefined\nHint and instructions are optional\n\ninterface Instruction {command: string;purpose: string;}",after:""}],FRONTMATTER_KEYS_INFO=[{field:"plugin",code:null,desc:"Denotes an excalidraw file. If key is not present, the file will not be recognized as an Excalidarw file. Valid values are 'parsed' and 'raw'",after:": parsed"},{field:"link-prefix",code:null,desc:"Set custom prefix to denote text element containing a valid internal link. Set to empty string if you do not want to show a prefix",after:': "📍"'},{field:"url-prefix",code:null,desc:"Set custom prefix to denote text element containing a valid external link. Set to empty string if you do not want to show a prefix",after:': "🌐"'},{field:"link-brackets",code:null,desc:"Set to true, if you want to display [[square brackets]] around the links in Text Elements",after:": true"},{field:"default-mode",code:null,desc:"Specifies how Excalidraw should open by default. Valid values are: view|zen",after:": view"},{field:"linkbutton-opacity",code:null,desc:"The opacity of the blue link button in the top right of the element overriding the respective setting in plugin settings. Valid values are between 0 and 1, where 0 means the button is transparent.",after:": 0.5"},{field:"onload-script",code:null,desc:"The value of this field will be executed as javascript code using the Script Engine environment. Use this to initiate custom actions or logic when loading your drawing.",after:': "new Notice(`Hello World!\\n\\nFile: ${ea.targetView.file.basename}`);"'},{field:"font",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: Virgil|Cascadia|font_file_name.extension",after:": Virgil"},{field:"font-color",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: css-color-name|#HEXcolor|any-other-html-standard-format",after:": SteelBlue"},{field:"border-color",code:null,desc:"This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this frontmatter key to your markdown document. Valid values are: css-color-name|#HEXcolor|any-other-html-standard-format",after:": SteelBlue"},{field:"css",code:null,desc:'This key applies to Markdown Embeds. You can control the appearance of the embedded markdown file on a file by file bases by adding the this front matter keys to your markdown document. Valid values are: "css-filename|css snippet"',after:': ""'},{field:"export-transparent",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. true == Transparent / false == with background",after:": true"},{field:"export-dark",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. true == Dark mode / false == light mode",after:": true"},{field:"export-padding",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. This only affects both SVG and PNG export. Specify the export padding for the image.",after:": 5"},{field:"export-pngscale",code:null,desc:"If this key is present it will override the default excalidraw embed and export setting. This only affects export to PNG. Specify the export scale for the image. The typical range is between 0.5 and 5, but you can experiment with other values as well.",after:": 1"},{field:"autoexport",code:null,desc:"Override autoexport settings for this file. Valid values are\nnone\nboth\npng\nsvg",after:": png"}];class FieldSuggester extends obsidian.EditorSuggest{constructor(e){super(e.app),this.getSuggestions=e=>{const A=e.query.toLowerCase();return("ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO).map((e=>e.field)).filter((e=>e.toLowerCase().includes(A)))},this.plugin=e}onTrigger(e,A,t){var n,i,a,r,s;if(this.plugin.settings.fieldSuggester){const t=A.getLine(e.line).substring(0,e.ch),o=null!==(r=null!==(i=null===(n=t.match(/^excalidraw-(.*)$/))||void 0===n?void 0:n[1])&&void 0!==i?i:null===(a=t.match(/(^ea|\Wea)\.([\w\.]*)$/))||void 0===a?void 0:a[2])&&void 0!==r?r:null===(s=t.match(/(^utils|\Wutils)\.([\w\.]*)$/))||void 0===s?void 0:s[2];if(void 0!==o)return this.suggestType=t.match(/^excalidraw-(.*)$/)?"excalidraw":t.match(/(^ea|\Wea)\.([\w\.]*)$/)?"ea":"utils",this.latestTriggerInfo={end:e,start:{ch:e.ch-o.length,line:e.line},query:o},this.latestTriggerInfo}return null}renderSuggestion(e,A){const t=e.replace("ea"===this.suggestType?"ea.":"utils"===this.suggestType?"utils.":"excalidraw-",""),n=("ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO).find((A=>A.field===e));A.createEl("b",{text:t}),A.createEl("br"),n.code&&A.createEl("code",{text:n.code}),n.desc&&A.createDiv("div",(e=>e.innerHTML=n.desc))}selectSuggestion(e){var A;const{context:t}=this;if(t){const n="ea"===this.suggestType?EXCALIDRAW_AUTOMATE_INFO:"utils"===this.suggestType?EXCALIDRAW_SCRIPTENGINE_INFO:FRONTMATTER_KEYS_INFO,i=`${e}${null===(A=n.find((A=>A.field===e)))||void 0===A?void 0:A.after}`;if(t.editor.replaceRange(i,this.latestTriggerInfo.start,this.latestTriggerInfo.end),this.latestTriggerInfo.start.ch===this.latestTriggerInfo.end.ch){const e=this.latestTriggerInfo.end;e.ch+=i.length,t.editor.setCursor(e)}}}}class ExcalidrawPlugin extends obsidian.Plugin{constructor(e,A){super(e,A),this.excalidrawFiles=new Set,this.excalidrawFileModes={},this._loaded=!1,this.activeExcalidrawView=null,this.lastActiveExcalidrawFilePath=null,this.hover={linkText:null,sourcePath:null},this.opencount=0,this.filesMaster=null,this.equationsMaster=null,this.mathjax=null,this.mathjaxDiv=null,this.mathjaxLoaderFinished=!1,this.fourthFontDef=VIRGIL_FONT,this.packageMap=new WeakMap,this.leafChangeTimeout=null,this.popScope=null,this.filesMaster=new Map,this.equationsMaster=new Map}getPackage(e){if(e===window)return{react:react,reactDOM:reactDOM,excalidrawLib:excalidrawLib};if(this.packageMap.has(e))return this.packageMap.get(e);const{react:A,reactDOM:t,excalidrawLib:n}=e.eval.call(e,`(function() {\n ${lzString.exports.decompressFromBase64(EXCALIDRAW_PACKAGES)};\n return {react:React,reactDOM:ReactDOM,excalidrawLib:ExcalidrawLib};\n })()`);return this.packageMap.set(e,{react:A,reactDOM:t,excalidrawLib:n}),{react:A,reactDOM:t,excalidrawLib:n}}async onload(){if(this.device={isDesktop:!document.body.hasClass("is-tablet")&&!document.body.hasClass("is-mobile"),isPhone:document.body.hasClass("is-phone"),isTablet:document.body.hasClass("is-tablet"),isMobile:document.body.hasClass("is-mobile"),isLinux:document.body.hasClass("mod-linux")&&!document.body.hasClass("is-android"),isMacOS:document.body.hasClass("mod-macos")&&!document.body.hasClass("is-ios"),isWindows:document.body.hasClass("mod-windows"),isIOS:document.body.hasClass("is-ios"),isAndroid:document.body.hasClass("is-android")},obsidian.addIcon(ICON_NAME,EXCALIDRAW_ICON),obsidian.addIcon("ScriptEngine",SCRIPTENGINE_ICON),obsidian.addIcon("disk",DISK_ICON),obsidian.addIcon("save-png",PNG_ICON),obsidian.addIcon("save-svg",SVG_ICON),await this.loadSettings({reEnableAutosave:!0}),this.addSettingTab(new ExcalidrawSettingTab(this.app,this)),this.ea=await initExcalidrawAutomate(this),this.registerView("excalidraw",(e=>new ExcalidrawView(e,this))),this.registerExtensions(["excalidraw"],"excalidraw"),this.addMarkdownPostProcessor(),this.registerInstallCodeblockProcessor(),this.addThemeObserver(),this.experimentalFileTypeDisplayToggle(this.settings.experimentalFileType),this.registerCommands(),this.registerEventListeners(),this.initializeFourthFont(),this.registerEditorSuggest(new FieldSuggester(this)),this.registerMonkeyPatches(),this.settings.showReleaseNotes){const e="0.0.0"===this.settings.previousRelease;isVersionNewerThanOther(PLUGIN_VERSION,this.settings.previousRelease)&&new ReleaseNotes(this.app,this,e?null:PLUGIN_VERSION).open()}this.switchToExcalidarwAfterLoad(),this.loadMathJax();const e=this;this.app.workspace.onLayoutReady((()=>{this.scriptEngine=new ScriptEngine(e)}))}initializeFourthFont(){this.app.workspace.onLayoutReady((async()=>{const e=await getFontDataURL(this.app,this.settings.experimantalFourthFont,"","LocalFont"),A=""===e.dataURL?VIRGIL_DATAURL:e.dataURL;this.fourthFontDef=e.fontDef;const t=new Set;app.workspace.iterateAllLeaves((e=>{const n=app.isMobile?document:e.view.containerEl.ownerDocument;if(!n)return;if(t.has(n))return;t.add(n);const i=n.createElement("style");i.id="local-font-stylesheet",i.textContent=`\n @font-face {\n font-family: 'LocalFont';\n src: url("${A}");\n font-display: swap;\n }\n `;const a=n.getElementById(i.id);n.head.appendChild(i),a&&n.head.removeChild(a),n.fonts.load("20px LocalFont")}))}))}loadMathJax(){const e=this;this.app.workspace.onLayoutReady((async()=>{await obsidian.loadMathJax();try{e.mathjaxDiv&&(document.body.removeChild(e.mathjaxDiv),e.mathjax=null,e.mathjaxLoaderFinished=!1),e.mathjaxDiv=document.body.createDiv(),e.mathjaxDiv.title="Excalidraw MathJax Support",e.mathjaxDiv.style.display="none";const A=e.mathjaxDiv.createEl("iframe");A.title="Excalidraw MathJax Support";const t=A.contentWindow.document,n=t.createElement("script");n.type="text/javascript",n.onload=()=>{const t=A.contentWindow;t.MathJax.startup.pagePromise.then((async()=>{const A=app.vault.getAbstractFileByPath("preamble.sty"),n=A&&A instanceof obsidian.TFile?await app.vault.read(A):null;try{n&&await t.MathJax.tex2svg(n)}catch(A){errorlog({where:e.loadMathJax,description:"Unexpected error while loading preamble.sty",error:A})}e.mathjax=t.MathJax,e.mathjaxLoaderFinished=!0}))},n.src=e.settings.mathjaxSourceURL,t.head.appendChild(n)}catch(A){new obsidian.Notice("Excalidraw: Error initializing LaTeX support"),e.mathjaxLoaderFinished=!0}}))}switchToExcalidarwAfterLoad(){const e=this;this.app.workspace.onLayoutReady((()=>{let A;for(A of app.workspace.getLeavesOfType("markdown"))A.view instanceof obsidian.MarkdownView&&e.isExcalidrawFile(A.view.file)&&(e.excalidrawFileModes[A.id||A.view.file.path]="excalidraw",e.setExcalidrawView(A))}))}forceSaveActiveView(e){if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&((async()=>{A.semaphores.autosaving||(A.semaphores.forceSaving=!0,await A.save(!1,!0),A.plugin.triggerEmbedUpdates(),A.loadSceneFiles(),A.semaphores.forceSaving=!1,new obsidian.Notice("Save successful",1e3))})(),!0)}registerInstallCodeblockProcessor(){const e=async(e,A)=>{let t=null;try{const e=A.parentElement.querySelector(`a[href="#${A.previousElementSibling.getAttribute("data-heading")}"]`);e.style.paddingRight="10px",t=e.parentElement.createEl("button",null,(e=>{e.setText(t$d("UPDATE_SCRIPT")),e.addClass("mod-cta"),e.style.backgroundColor="var(--interactive-success)",e.style.display="none"}))}catch(A){errorlog({where:"this.registerInstallCodeblockProcessor",source:e,error:A})}e=e.trim(),A.createEl("button",null,(async A=>{const n=e=>{switch(t&&(t.style.display="none"),e){case"CHECKING":A.setText(t$d("CHECKING_SCRIPT")),A.style.backgroundColor="var(--interactive-normal)";break;case"INSTALL":A.setText(t$d("INSTALL_SCRIPT")),A.style.backgroundColor="var(--interactive-accent)";break;case"UPTODATE":A.setText(t$d("UPTODATE_SCRIPT")),A.style.backgroundColor="var(--interactive-normal)";break;case"UPDATE":A.setText(t$d("UPDATE_SCRIPT")),A.style.backgroundColor="var(--interactive-success)",t&&(t.style.display=null);break;case"ERROR":A.setText(t$d("UNABLETOCHECK_SCRIPT")),A.style.backgroundColor="var(--interactive-normal)"}};A.addClass("mod-cta");let i=e;try{i=decodeURI(e)}catch(A){errorlog({where:"ExcalidrawPlugin.registerInstallCodeblockProcessor.codeblockProcessor.onClick",source:e,error:A})}const a=i.substring(i.lastIndexOf("/")+1),r=`${this.settings.scriptFolderPath}/Downloaded`,s=`${r}/${a}`,o=getIMGFilename(s,"svg");let l=this.app.vault.getAbstractFileByPath(s),c=this.app.vault.getAbstractFileByPath(o);if(n(l?"CHECKING":"INSTALL"),A.onclick=async()=>{const A=async(e,A,t)=>{const n=await obsidian.request({url:e});return!n||n.startsWith("404: Not Found")?null:(A?await this.app.vault.modify(A,n):(await checkAndCreateFolder(r),A=await this.app.vault.create(t,n)),A)};try{if(l=await A(e,l,s),!l)throw n("ERROR"),"File not found";c=await A(getIMGFilename(e,"svg"),c,o),n("UPTODATE"),new obsidian.Notice(`Installed: ${l.basename}`)}catch(e){new obsidian.Notice(`Error installing script: ${a}`),errorlog({where:"ExcalidrawPlugin.registerInstallCodeblockProcessor.codeblockProcessor.onClick",error:e})}},t&&(t.onclick=A.onclick),!(l&&l instanceof obsidian.TFile))return;const d=new Map;JSON.parse(await obsidian.request({url:"https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/directory-info.json"})).forEach((e=>d.set(e.fname,e.mtime)));const h=(e,A)=>{if(0===d.size||!d.has(e))return"ERROR";const t=d.get(e);return!A||t>A.stat.mtime?"UPDATE":"UPTODATE"},u=h(a,l),g=h(getIMGFilename(a,"svg"),c&&c instanceof obsidian.TFile?c:null);n("UPTODATE"===u&&"UPTODATE"===g||"UPTODATE"===u&&"ERROR"===g?"UPTODATE":"ERROR"===u?"ERROR":"UPDATE"===u||"UPDATE"===g?"UPDATE":"UPTODATE")}))};this.registerMarkdownCodeBlockProcessor(SCRIPT_INSTALL_CODEBLOCK,(async(A,t)=>{t.addEventListener(RERENDER_EVENT,(async n=>{n.stopPropagation(),t.empty(),e(A,t)})),e(A,t)}))}addMarkdownPostProcessor(){initializeMarkdownPostProcessor(this),this.registerMarkdownPostProcessor(markdownPostProcessor),this.registerEvent(this.app.workspace.on("hover-link",hoverEvent)),this.observer=observer,this.observer.observe(document,{childList:!0,subtree:!0})}addThemeObserver(){this.themeObserver=new MutationObserver((async e=>{var A,t,n,i,a,r,s,o;if(!this.settings.matchThemeTrigger)return;if((null===(A=e[0])||void 0===A?void 0:A.oldValue)===(null===(n=null===(t=e[0])||void 0===t?void 0:t.target)||void 0===n?void 0:n.getAttribute("class")))return;if((null===(a=null===(i=e[0])||void 0===i?void 0:i.oldValue)||void 0===a?void 0:a.includes("theme-dark"))===(null===(o=null===(s=null===(r=e[0])||void 0===r?void 0:r.target)||void 0===s?void 0:s.classList)||void 0===o?void 0:o.contains("theme-dark")))return;const l=isObsidianThemeDark()?"dark":"light";this.app.workspace.getLeavesOfType("excalidraw").forEach((e=>{const A=e.view;A.file&&A.excalidrawRef&&A.setTheme(l)}))})),this.themeObserver.observe(document.body,{attributeOldValue:!0,attributeFilter:["class"]})}experimentalFileTypeDisplayToggle(e){e?this.experimentalFileTypeDisplay():(this.fileExplorerObserver&&this.fileExplorerObserver.disconnect(),this.fileExplorerObserver=null)}experimentalFileTypeDisplay(){const e=e=>{if(1!=e.childElementCount)return;const A=e.getAttribute("data-path");if(!A)return;const t=this.app.vault.getAbstractFileByPath(A);t&&t instanceof obsidian.TFile&&this.isExcalidrawFile(t)&&e.insertBefore(createDiv({cls:"nav-file-tag",text:this.settings.experimentalFileTag}),e.firstChild)};this.fileExplorerObserver=new MutationObserver((A=>{const t=A.filter((e=>e.addedNodes.length>0));t.forEach((A=>{A.addedNodes.forEach((A=>{A instanceof Element&&A.querySelectorAll(".nav-file-title").forEach(e)}))}))}));const A=this;this.app.workspace.onLayoutReady((()=>{document.querySelectorAll(".nav-file-title").forEach(e),A.fileExplorerObserver.observe(document.querySelector(".workspace"),{childList:!0,subtree:!0})}))}registerCommands(){this.openDialog=new OpenFileDialog(this.app,this),this.insertLinkDialog=new InsertLinkDialog(this.app),this.insertImageDialog=new InsertImageDialog(this),this.importSVGDialog=new ImportSVGDialog(this),this.insertMDDialog=new InsertMDDialog(this),this.addRibbonIcon(ICON_NAME,t$d("CREATE_NEW"),(async e=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),e[CTRL_OR_CMD]?"new-pane":"active-pane")})),this.registerEvent(this.app.workspace.on("file-menu",((e,A)=>{e.addItem((e=>{e.setTitle(t$d("CREATE_NEW")).setIcon(ICON_NAME).onClick((()=>{let e=A.path;A instanceof obsidian.TFile&&(e=obsidian.normalizePath(A.path.substr(0,A.path.lastIndexOf(A.name)))),this.createAndOpenDrawing(getDrawingFilename(this.settings),"active-pane",e)}))}))}))),this.registerEvent(this.app.workspace.on("file-menu",((e,A)=>{A instanceof obsidian.TFile&&"excalidraw"==A.extension&&e.addItem((e=>{e.setTitle(t$d("CONVERT_FILE_KEEP_EXT")).onClick((()=>{this.convertSingleExcalidrawToMD(A,!1,!1)}))}))}))),this.registerEvent(this.app.workspace.on("file-menu",((e,A)=>{A instanceof obsidian.TFile&&"excalidraw"==A.extension&&e.addItem((e=>{e.setTitle(t$d("CONVERT_FILE_REPLACE_EXT")).onClick((()=>{this.convertSingleExcalidrawToMD(A,!0,!0)}))}))}))),this.addCommand({id:"excalidraw-disable-autosave",name:t$d("TEMPORARY_DISABLE_AUTOSAVE"),checkCallback:e=>!!this.settings.autosave&&(e||(this.settings.autosave=!1),!0)}),this.addCommand({id:"excalidraw-enable-autosave",name:t$d("TEMPORARY_ENABLE_AUTOSAVE"),checkCallback:e=>!this.settings.autosave&&(e||(this.settings.autosave=!0),!0)}),this.addCommand({id:"excalidraw-download-lib",name:t$d("DOWNLOAD_LIBRARY"),callback:this.exportLibrary}),this.addCommand({id:"excalidraw-open",name:t$d("OPEN_EXISTING_NEW_PANE"),callback:()=>{this.openDialog.start(openDialogAction.openFile,!0)}}),this.addCommand({id:"excalidraw-open-on-current",name:t$d("OPEN_EXISTING_ACTIVE_PANE"),callback:()=>{this.openDialog.start(openDialogAction.openFile,!1)}}),this.addCommand({id:"excalidraw-insert-transclusion",name:t$d("TRANSCLUDE"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView)):(this.openDialog.start(openDialogAction.insertLinkToDrawing,!1),!0)}),this.addCommand({id:"excalidraw-insert-last-active-transclusion",name:t$d("TRANSCLUDE_MOST_RECENT"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView))&&null!=this.lastActiveExcalidrawFilePath;const A=this.app.vault.getAbstractFileByPath(this.lastActiveExcalidrawFilePath);return A instanceof obsidian.TFile&&(this.embedDrawing(A),!0)}}),this.addCommand({id:"excalidraw-autocreate",name:t$d("NEW_IN_NEW_PANE"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"new-pane")}}),this.addCommand({id:"excalidraw-autocreate-on-current",name:t$d("NEW_IN_ACTIVE_PANE"),callback:()=>{this.createAndOpenDrawing(getDrawingFilename(this.settings),"active-pane")}}),this.addCommand({id:"excalidraw-autocreate-popout",name:t$d("NEW_IN_POPOUT_WINDOW"),checkCallback:e=>{if(e)return!app.isMobile;this.createAndOpenDrawing(getDrawingFilename(this.settings),"popout-window")}});const e=async e=>{const A=this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);if(!A)return;const t=getEmbedFilename(A.file.basename,this.settings),n=this.settings.embedUseExcalidrawFolder?null:(await getAttachmentsFolderAndFilePath(this.app,A.file.path,t)).folder,i=await this.createDrawing(t,n);await this.embedDrawing(i),this.openDrawing(i,e,!0)};this.addCommand({id:"excalidraw-autocreate-and-embed",name:t$d("NEW_IN_NEW_PANE_EMBED"),checkCallback:A=>A?Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView)):(e("new-pane"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-on-current",name:t$d("NEW_IN_ACTIVE_PANE_EMBED"),checkCallback:A=>A?Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView)):(e("active-pane"),!0)}),this.addCommand({id:"excalidraw-autocreate-and-embed-popout",name:t$d("NEW_IN_POPOUT_WINDOW_EMBED"),checkCallback:A=>A?!app.isMobile&&Boolean(this.app.workspace.getActiveViewOfType(obsidian.MarkdownView)):(e("popout-window"),!0)}),this.addCommand({id:"export-svg",name:t$d("EXPORT_SVG"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(A.saveSVG(),!0)}}),this.addCommand({id:"search-text",name:t$d("SEARCH"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(search(A),!0)}}),this.addCommand({id:"fullscreen",name:t$d("TOGGLE_FULLSCREEN"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(A.isFullscreen()?A.exitFullscreen():A.gotoFullscreen(),!0)}}),this.addCommand({id:"export-png",name:t$d("EXPORT_PNG"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(A.savePNG(),!0)}}),this.forceSaveCommand=this.addCommand({id:"save",hotkeys:[{modifiers:["Ctrl"],key:"s"}],name:t$d("FORCE_SAVE"),checkCallback:e=>this.forceSaveActiveView(e)}),this.addCommand({id:"toggle-lock",hotkeys:[{modifiers:["Ctrl","Shift"],key:"e"}],name:t$d("TOGGLE_LOCK"),checkCallback:e=>{if(e)return!!Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView))&&!this.app.workspace.getActiveViewOfType(ExcalidrawView).compatibilityMode;const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!(!A||A.compatibilityMode||(A.changeTextMode(A.textMode===TextMode.parsed?TextMode.raw:TextMode.parsed),0))}}),this.addCommand({id:"scriptengine-store",name:t$d("INSTALL_SCRIPT_BUTTON"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView)):(new ScriptInstallPrompt(this).open(),!0)}),this.addCommand({id:"delete-file",name:t$d("DELETE_FILE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(A){this.ea.reset(),this.ea.setView(A);const e=this.ea.getViewSelectedElement();if("image"!==e.type)return new obsidian.Notice("Please select an image or embedded markdown document",4e3),!0;const t=this.ea.getViewFileForImageElement(e);return t?(this.app.vault.delete(t),this.ea.deleteViewElements([e]),!0):(new obsidian.Notice("Please select an image or embedded markdown document",4e3),!0)}return!1}}),this.addCommand({id:"insert-link",hotkeys:[{modifiers:["Ctrl","Shift"],key:"k"}],name:t$d("INSERT_LINK"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(this.insertLinkDialog.start(A.file.path,A.addText),!0)}}),this.addCommand({id:"insert-link-to-element",hotkeys:[{modifiers:["Ctrl","Shift"],key:"k"}],name:t$d("INSERT_LINK_TO_ELEMENT_NORMAL"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(A.copyLinkToSelectedElementToClipboard(""),!0)}}),this.addCommand({id:"insert-link-to-element-group",name:t$d("INSERT_LINK_TO_ELEMENT_GROUP"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(A.copyLinkToSelectedElementToClipboard("group="),!0)}}),this.addCommand({id:"insert-link-to-element-area",name:t$d("INSERT_LINK_TO_ELEMENT_AREA"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(A.copyLinkToSelectedElementToClipboard("area="),!0)}}),this.addCommand({id:"toggle-lefthanded-mode",name:t$d("TOGGLE_LEFTHANDED_MODE"),checkCallback:e=>{if(e){if(this.app.workspace.getActiveViewOfType(ExcalidrawView)){const e=this.app.workspace.getActiveViewOfType(ExcalidrawView),A=null==e?void 0:e.excalidrawAPI;return!!A&&!!A.getAppState().trayModeEnabled}return!1}return this.app.workspace.getActiveViewOfType(ExcalidrawView),(async()=>{const e=this.settings.isLeftHanded;await this.loadSettings({applyLefthandedMode:!1}),this.settings.isLeftHanded=!e,this.saveSettings(),setLeftHandedMode(!e),setTimeout((()=>setLeftHandedMode(!e)))})(),!0}}),this.addCommand({id:"reset-image-to-100",name:t$d("RESET_IMG_TO_100"),checkCallback:e=>{const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(!A)return!1;if(!A.excalidrawAPI)return!1;const t=A.getViewSelectedElements().filter((e=>"image"===e.type));if(1!==t.length)return e||new obsidian.Notice("Select a single image element and try again"),!1;const n=t[0];return A.excalidrawData.getFile(n.fileId)?!!e||void(async()=>{const e=new ExcalidrawAutomate(this,A),i=await e.getOriginalImageSize(n);if(i){e.copyViewElementsToEAforEditing(t);const A=e.getElement(n.id);A.width=i.width,A.height=i.height,e.addElementsToView(!1,!1,!1)}})():(e||new obsidian.Notice("Select a single image element and try again"),!1)}}),this.addCommand({id:"insert-image",name:t$d("INSERT_IMAGE"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(this.insertImageDialog.start(A),!0)}}),this.addCommand({id:"import-svg",name:t$d("IMPORT_SVG"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(this.importSVGDialog.start(A),!0)}}),this.addCommand({id:"release-notes",name:t$d("READ_RELEASE_NOTES"),checkCallback:e=>e?Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView)):(new ReleaseNotes(this.app,this,PLUGIN_VERSION).open(),!0)}),this.addCommand({id:"tray-mode",name:t$d("TRAY_MODE"),checkCallback:e=>{if(e){const e=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(!e||!e.excalidrawRef)return!1;const A=e.excalidrawAPI.getAppState();return!A.zenModeEnabled&&!A.viewModeEnabled}const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!(!A||!A.excalidrawAPI||(A.toggleTrayMode(),0))}}),this.addCommand({id:"insert-md",name:t$d("INSERT_MD"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(this.insertMDDialog.start(A),!0)}}),this.addCommand({id:"insert-LaTeX-symbol",name:t$d("INSERT_LATEX"),checkCallback:e=>{if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView));const A=this.app.workspace.getActiveViewOfType(ExcalidrawView);return!!A&&(insertLaTeXToView(A),!0)}}),this.addCommand({id:"toggle-excalidraw-view",name:t$d("TOGGLE_MODE"),checkCallback:e=>{const A=this.app.workspace.getActiveFile();if(!A)return!1;const t=this.isExcalidrawFile(A);if(e)return Boolean(this.app.workspace.getActiveViewOfType(ExcalidrawView))?!this.app.workspace.getActiveViewOfType(ExcalidrawView).compatibilityMode:t;const n=this.app.workspace.getActiveViewOfType(ExcalidrawView);if(n){const e=n.leaf;return this.excalidrawFileModes[e.id||A.path]="markdown",void this.setMarkdownView(e)}const i=this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);if(i&&t){const e=i.leaf;return this.excalidrawFileModes[e.id||A.path]="excalidraw",void this.setExcalidrawView(e)}}}),this.addCommand({id:"convert-to-excalidraw",name:t$d("CONVERT_NOTE_TO_EXCALIDRAW"),checkCallback:e=>{const A=this.app.workspace.getActiveFile(),t=this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);if(!A||!t)return!1;const n=0===A.stat.size;if(e)return n;n&&(async()=>{await this.app.vault.modify(A,await this.getBlankDrawing()),this.setExcalidrawView(t.leaf)})()}}),this.addCommand({id:"convert-excalidraw",name:t$d("CONVERT_EXCALIDRAW"),checkCallback:e=>{if(e){const e=this.app.vault.getFiles().filter((e=>"excalidraw"==e.extension));return e.length>0}return this.convertExcalidrawToMD(),!0}})}async convertSingleExcalidrawToMD(e,A=!1,t=!1){const n=await this.app.vault.read(e),i=e.name.substring(0,e.name.lastIndexOf(".excalidraw"))+(A?".md":".excalidraw.md"),a=getNewUniqueFilepath(this.app.vault,i,obsidian.normalizePath(e.path.substring(0,e.path.lastIndexOf(e.name))));log(a);const r=await this.app.vault.create(a,FRONTMATTER+await this.exportSceneToMD(n));return this.settings.keepInSync&&EXPORT_TYPES.forEach((A=>{const t=e.path.substring(0,e.path.lastIndexOf(".excalidraw"))+A,n=this.app.vault.getAbstractFileByPath(obsidian.normalizePath(t));if(n&&n instanceof obsidian.TFile){const e=a.substring(0,a.lastIndexOf(".md"))+A;this.app.fileManager.renameFile(n,e)}})),t||this.app.vault.delete(e),r}async convertExcalidrawToMD(e=!1,A=!1){const t=this.app.vault.getFiles().filter((e=>"excalidraw"==e.extension));for(const n of t)this.convertSingleExcalidrawToMD(n,e,A);new obsidian.Notice(`Converted ${t.length} files.`)}registerMonkeyPatches(){this.registerEvent(app.workspace.on("editor-menu",((e,A,t)=>{if(!(t&&t instanceof obsidian.MarkdownView))return;const n=t.file,i=t.leaf;if(!t.file)return;const a=this.app.metadataCache.getFileCache(n);(null==a?void 0:a.frontmatter)&&a.frontmatter[FRONTMATTER_KEY]&&e.addItem((e=>e.setTitle(t$d("OPEN_AS_EXCALIDRAW")).setIcon(ICON_NAME).setSection("excalidraw").onClick((()=>{this.excalidrawFileModes[i.id||n.path]="excalidraw",this.setExcalidrawView(i)}))))}))),this.registerEvent(app.workspace.on("file-menu",((e,A,t,n)=>{if(!(n&&n.view instanceof obsidian.MarkdownView))return;if(!(A instanceof obsidian.TFile))return;const i=this.app.metadataCache.getFileCache(A);(null==i?void 0:i.frontmatter)&&i.frontmatter[FRONTMATTER_KEY]&&(e.addItem((e=>{e.setTitle(t$d("OPEN_AS_EXCALIDRAW")).setIcon(ICON_NAME).setSection("pane").onClick((()=>{this.excalidrawFileModes[n.id||A.path]="excalidraw",this.setExcalidrawView(n)}))})),e.items.unshift(e.items.pop()))})));const e=this;this.register(around(obsidian.WorkspaceLeaf.prototype,{detach:A=>function(){var t;const n=null===(t=this.view)||void 0===t?void 0:t.getState();return(null==n?void 0:n.file)&&e.excalidrawFileModes[this.id||n.file]&&delete e.excalidrawFileModes[this.id||n.file],A.apply(this)},setViewState:A=>function(t,...n){var i;if(e._loaded&&"markdown"===t.type&&(null===(i=t.state)||void 0===i?void 0:i.file)&&"markdown"!==e.excalidrawFileModes[this.id||t.state.file]){const i=app.metadataCache.getCache(t.state.file);if((null==i?void 0:i.frontmatter)&&i.frontmatter[FRONTMATTER_KEY]){const i=Object.assign(Object.assign({},t),{type:"excalidraw"});return e.excalidrawFileModes[t.state.file]="excalidraw",A.apply(this,[i,...n])}}return A.apply(this,[t,...n])}}))}registerEventListeners(){const e=this;this.app.workspace.onLayoutReady((async()=>{e.registerEvent(app.vault.on("rename",(async(A,t)=>{A instanceof obsidian.TFile&&e.isExcalidrawFile(A)&&e.settings.keepInSync&&[EXPORT_TYPES,"excalidraw"].flat().forEach((async e=>{const n=getIMGFilename(t,e),i=app.vault.getAbstractFileByPath(obsidian.normalizePath(n));if(i&&i instanceof obsidian.TFile){const t=getIMGFilename(A.path,e);await app.fileManager.renameFile(i,t)}}))}))),e.registerEvent(app.vault.on("modify",(async A=>{app.workspace.getLeavesOfType("excalidraw").forEach((async t=>{const n=t.view;if(n.file&&(n.file.path===A.path||"excalidraw"===A.extension&&`${A.path.substring(0,A.path.lastIndexOf(".excalidraw"))}.md`===n.file.path)){if(n.semaphores.preventReload)return void(n.semaphores.preventReload=!1);if(n.lastSaveTimestamp+3e5{if(!(A instanceof obsidian.TFile))return;const t=this.excalidrawFiles.has(A);if(this.updateFileCache(A,void 0,!0),!t)return;const n=app.workspace.getLeavesOfType("excalidraw");for(let e=0;e{[EXPORT_TYPES,"excalidraw"].flat().forEach((async e=>{const t=getIMGFilename(A.path,e),n=app.vault.getAbstractFileByPath(obsidian.normalizePath(t));n&&n instanceof obsidian.TFile&&await app.vault.delete(n)}))}),500)}))),e.registerEvent(app.workspace.on("active-leaf-change",(async A=>{var t;e.leafChangeTimeout&&clearTimeout(e.leafChangeTimeout),e.leafChangeTimeout=setTimeout((()=>{e.leafChangeTimeout=null}),1e3);const n=e.activeExcalidrawView,i=A.view instanceof ExcalidrawView?A.view:null; //!Temporary hack -if(A.activeExcalidrawView=n,n&&(A.lastActiveExcalidrawFilePath=null===(t=n.file)||void 0===t?void 0:t.path),app.isMobile&&n&&!i){const A=document.querySelector("body>.app-container>.mobile-navbar");A&&A instanceof HTMLDivElement&&(A.style.position="relative")}if(app.isMobile&&!n&&i){const A=document.querySelector("body>.app-container>.mobile-navbar");A&&A instanceof HTMLDivElement&&(A.style.position="")}if(i&&i!==n&&(i.leaf!==e&&i.semaphores.dirty&&await i.save(!0),i.file&&A.triggerEmbedUpdates(i.file.path)),n&&(!i||i.leaf!==e)){const A=n.file;n.file&&setTimeout((()=>{var e;n&&n._loaded&&(null===(e=n.file)||void 0===e?void 0:e.path)===(null==A?void 0:A.path)&&(n.activeLoader||n.loadSceneFiles())}),2e3)}if(n&&n._loaded&&n.isLoaded&&n.excalidrawAPI&&A.ea.onCanvasColorChangeHook&&A.ea.onCanvasColorChangeHook(A.ea,n,n.excalidrawAPI.getAppState().viewBackgroundColor),A.popScope&&(A.popScope(),A.popScope=null),n){const e=A.app.keymap.getRootScope(),t=e.register(["Mod"],"Enter",(()=>!0)),i=A.forceSaveCommand&&"s"===A.forceSaveCommand.hotkeys[0].key&&A.forceSaveCommand.hotkeys[0].modifiers.includes("Ctrl")?e.register(["Ctrl"],"s",(()=>A.forceSaveActiveView(!1))):void 0;e.keys.unshift(e.keys.pop()),A.popScope=()=>{e.unregister(t),Boolean(i)&&e.unregister(i)}}}))),A.addFileSaveTriggerEventHandlers();const e=app.metadataCache;e.getCachedFiles().forEach((t=>{var i;const n=null===(i=e.getCache(t))||void 0===i?void 0:i.frontmatter;(n&&void 0!==n[FRONTMATTER_KEY]||t.match(/\.excalidraw$/))&&A.updateFileCache(app.vault.getAbstractFileByPath(t),n)})),this.registerEvent(e.on("changed",((A,e,t)=>this.updateFileCache(A,null==t?void 0:t.frontmatter))))}))}addFileSaveTriggerEventHandlers(){this.registerEvent(this.app.workspace.on("click",(A=>{this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&(!A.target||"excalidraw__canvas"!==A.target.className&&!getParentOfClass(A.target,"excalidraw-wrapper"))&&this.activeExcalidrawView.save()}))),this.registerEvent(this.app.workspace.on("file-menu",(()=>{this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()}))),this.modalContainerObserver=new MutationObserver((async A=>{1===A.length&&"childList"===A[0].type&&1===A[0].addedNodes.length&&this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()})),this.modalContainerObserver.observe(document.body,{childList:!0});const A=document.querySelector(".workspace-drawer.mod-left"),e=document.querySelector(".workspace-drawer.mod-right");if(A||e){const t=async A=>{"display: none;"===A[0].oldValue&&this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()},i={attributeOldValue:!0,attributeFilter:["style"]};A&&(this.workspaceDrawerLeftObserver=new MutationObserver(t),this.workspaceDrawerLeftObserver.observe(A,i)),e&&(this.workspaceDrawerRightObserver=new MutationObserver(t),this.workspaceDrawerRightObserver.observe(e,i))}}updateFileCache(A,e,t=!1){e&&void 0!==e[FRONTMATTER_KEY]?this.excalidrawFiles.add(A):t||"excalidraw"!==A.extension?this.excalidrawFiles.delete(A):this.excalidrawFiles.add(A)}onunload(){destroyExcalidrawAutomate(),this.popScope&&(this.popScope(),this.popScope=null),this.observer.disconnect(),this.themeObserver.disconnect(),this.modalContainerObserver.disconnect(),this.workspaceDrawerLeftObserver&&this.workspaceDrawerLeftObserver.disconnect(),this.workspaceDrawerRightObserver&&this.workspaceDrawerRightObserver.disconnect(),this.fileExplorerObserver&&this.fileExplorerObserver.disconnect(),this.app.workspace.getLeavesOfType("excalidraw").forEach((A=>{this.setMarkdownView(A)})),this.mathjaxDiv&&document.body.removeChild(this.mathjaxDiv),Object.values(this.packageMap).forEach((A=>{delete A.excalidrawLib,delete A.reactDOM,delete A.react}))}async embedDrawing(A){const e=this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);if(e&&e.file){const t=this.app.metadataCache.fileToLinktext(A,e.file.path,"excalidraw"===this.settings.embedType),i=e.editor;if("excalidraw"===this.settings.embedType)return i.replaceSelection(this.settings.embedWikiLink?`![[${t}]]`:`![](${encodeURI(t)})`),void i.focus();let n=this.settings.autoExportLightAndDark?getExportTheme(this,A,this.settings.exportWithTheme&&isObsidianThemeDark()?"dark":"light"):"";n=""===n?"":n+".";const a=getIMGFilename(t,n+this.settings.embedType.toLowerCase()),r=getIMGFilename(A.path,n+this.settings.embedType.toLowerCase()),s="dark."===n?"light.":"dark.",o=getIMGFilename(t,s+this.settings.embedType.toLowerCase());this.app.vault.getAbstractFileByPath(r)||(await this.app.vault.create(r,""),await sleep$1(200)),i.replaceSelection(this.settings.embedWikiLink?`![[${a}]]\n%%[[${t}|🖋 Edit in Excalidraw]]${o?", and the [["+o+"|"+s.split(".")[0]+" exported image]]":""}%%`:`![](${encodeURI(a)})\n%%[🖋 Edit in Excalidraw](${encodeURI(t)})${o?", and the ["+s.split(".")[0]+" exported image]("+encodeURI(o)+")":""}%%`),i.focus()}}async loadSettings(A=!0){this.settings=Object.assign({},DEFAULT_SETTINGS,await this.loadData()),A&&setLeftHandedMode(this.settings.isLeftHanded),this.settings.autosave=!0,this.settings.autosaveInterval=app.isMobile?1e4:15e3}async saveSettings(){await this.saveData(this.settings)}getStencilLibrary(){return""===this.settings.library||"deprecated"===this.settings.library?this.settings.library2:JSON_parse(this.settings.library)}setStencilLibrary(A){this.settings.library="deprecated",this.settings.library2=A}triggerEmbedUpdates(A){const e=new Set;app.workspace.iterateAllLeaves((t=>{const i=app.isMobile?document:t.view.containerEl.ownerDocument;if(!i)return;if(e.has(i))return;e.add(i);const n=i.createEvent("Event");n.initEvent(RERENDER_EVENT,!0,!1),i.querySelectorAll("div[class^='excalidraw-svg']"+(A?`[src='${A.replaceAll("'","\\'")}']`:"")).forEach((A=>A.dispatchEvent(n)))}))}openDrawing(A,e,t=!1,i){let n;"popout-window"===e?n=app.workspace.openPopoutLeaf():(n=this.app.workspace.getLeaf(!1),"empty"!==n.view.getViewType()&&"new-pane"===e&&(n=getNewOrAdjacentLeaf(this,n))),n.openFile(A,i&&""!==i?{active:t,eState:{subpath:i}}:{active:t})}async getBlankDrawing(){const A=this.app.metadataCache.getFirstLinkpathDest(obsidian.normalizePath(this.settings.templateFilePath),"");if(A&&A instanceof obsidian.TFile&&("md"==A.extension&&!this.settings.compatibilityMode||"excalidraw"==A.extension&&this.settings.compatibilityMode)){const e=await this.app.vault.read(A);if(e)return this.settings.matchTheme?changeThemeOfExcalidrawMD(e):e}if(this.settings.compatibilityMode)return this.settings.matchTheme&&isObsidianThemeDark()?DARK_BLANK_DRAWING:BLANK_DRAWING;const e=this.settings.matchTheme&&isObsidianThemeDark()?DARK_BLANK_DRAWING:BLANK_DRAWING;return`${FRONTMATTER}\n${getMarkdownDrawingSection(e,this.settings.compress)}`}async exportSceneToMD(A){var e,t;if(!A)return"";const i=null===(e=JSON_parse(A).elements)||void 0===e?void 0:e.filter((A=>"text"==A.type));let n,a="# Text Elements\n";for(const e of i)n=e.id,e.id.length>8&&(n=nanoid(),A=A.replaceAll(e.id,n)),a+=`${null!==(t=e.originalText)&&void 0!==t?t:e.text} ^${n}\n\n`;return a+getMarkdownDrawingSection(JSON.stringify(JSON_parse(A),null,"\t"),this.settings.compress)}async createDrawing(A,e,t){const i=obsidian.normalizePath(e||this.settings.folder);await checkAndCreateFolder(i);const n=getNewUniqueFilepath(this.app.vault,A,i),a=await this.app.vault.create(n,null!=t?t:await this.getBlankDrawing());let r=0;for(;a instanceof obsidian.TFile&&!this.isExcalidrawFile(a)&&r++<10;)await sleep$1(50);return r>10&&errorlog({file:a,error:"new drawing not recognized as an excalidraw file",fn:this.createDrawing}),a}async createAndOpenDrawing(A,e,t,i){const n=await this.createDrawing(A,t,i);return this.openDrawing(n,e,!0),n.path}async setMarkdownView(A){const e=A.view.getState();await A.setViewState({type:"excalidraw",state:{file:null}}),await A.setViewState({type:"markdown",state:e,popstate:!0},{focus:!0})}async setExcalidrawView(A){await A.setViewState({type:"excalidraw",state:A.view.getState(),popstate:!0})}isExcalidrawFile(A){if("excalidraw"==A.extension)return!0;const e=A?this.app.metadataCache.getFileCache(A):null;return!!(null==e?void 0:e.frontmatter)&&!!e.frontmatter[FRONTMATTER_KEY]}async exportLibrary(){this.app.isMobile?new Prompt(this.app,"Please provide a filename","my-library","filename, leave blank to cancel action").openAndGetValue((async A=>{if(!A)return;A=`${A}.excalidrawlib`;const e=obsidian.normalizePath(this.settings.folder);await checkAndCreateFolder(e);const t=getNewUniqueFilepath(this.app.vault,A,e);this.app.vault.create(t,this.settings.library),new obsidian.Notice(`Exported library to ${t}`,6e3)})):download("data:text/plain;charset=utf-8",encodeURIComponent(JSON.stringify(this.settings.library2,null,"\t")),"my-obsidian-library.excalidrawlib")}}module.exports=ExcalidrawPlugin; +if(e.activeExcalidrawView=i,i&&(e.lastActiveExcalidrawFilePath=null===(t=i.file)||void 0===t?void 0:t.path),app.isMobile&&i&&!n){const e=document.querySelector("body>.app-container>.mobile-navbar");e&&e instanceof HTMLDivElement&&(e.style.position="relative")}if(app.isMobile&&!i&&n){const e=document.querySelector("body>.app-container>.mobile-navbar");e&&e instanceof HTMLDivElement&&(e.style.position="")}if(n&&n!==i&&(n.leaf!==A&&n.semaphores.dirty&&await n.save(!0),n.file&&e.triggerEmbedUpdates(n.file.path)),i&&(!n||n.leaf!==A)){const e=i.file;i.file&&setTimeout((()=>{var A;i&&i._loaded&&(null===(A=i.file)||void 0===A?void 0:A.path)===(null==e?void 0:e.path)&&(i.activeLoader||i.loadSceneFiles())}),2e3)}if(i&&i._loaded&&i.isLoaded&&i.excalidrawAPI&&e.ea.onCanvasColorChangeHook&&e.ea.onCanvasColorChangeHook(e.ea,i,i.excalidrawAPI.getAppState().viewBackgroundColor),e.popScope&&(e.popScope(),e.popScope=null),i){const A=e.app.keymap.getRootScope(),t=A.register(["Mod"],"Enter",(()=>!0)),n=e.forceSaveCommand&&"s"===e.forceSaveCommand.hotkeys[0].key&&e.forceSaveCommand.hotkeys[0].modifiers.includes("Ctrl")?A.register(["Ctrl"],"s",(()=>e.forceSaveActiveView(!1))):void 0;A.keys.unshift(A.keys.pop()),e.popScope=()=>{A.unregister(t),Boolean(n)&&A.unregister(n)}}}))),e.addFileSaveTriggerEventHandlers();const A=app.metadataCache;A.getCachedFiles().forEach((t=>{var n;const i=null===(n=A.getCache(t))||void 0===n?void 0:n.frontmatter;(i&&void 0!==i[FRONTMATTER_KEY]||t.match(/\.excalidraw$/))&&e.updateFileCache(app.vault.getAbstractFileByPath(t),i)})),this.registerEvent(A.on("changed",((e,A,t)=>this.updateFileCache(e,null==t?void 0:t.frontmatter))))}))}addFileSaveTriggerEventHandlers(){this.registerEvent(this.app.workspace.on("click",(e=>{this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&(!e.target||"excalidraw__canvas"!==e.target.className&&!getParentOfClass(e.target,"excalidraw-wrapper"))&&this.activeExcalidrawView.save()}))),this.registerEvent(this.app.workspace.on("file-menu",(()=>{this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()}))),this.modalContainerObserver=new MutationObserver((async e=>{1===e.length&&"childList"===e[0].type&&1===e[0].addedNodes.length&&this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()})),this.modalContainerObserver.observe(document.body,{childList:!0});const e=document.querySelector(".workspace-drawer.mod-left"),A=document.querySelector(".workspace-drawer.mod-right");if(e||A){const t=async e=>{"display: none;"===e[0].oldValue&&this.activeExcalidrawView&&this.activeExcalidrawView.semaphores.dirty&&this.activeExcalidrawView.save()},n={attributeOldValue:!0,attributeFilter:["style"]};e&&(this.workspaceDrawerLeftObserver=new MutationObserver(t),this.workspaceDrawerLeftObserver.observe(e,n)),A&&(this.workspaceDrawerRightObserver=new MutationObserver(t),this.workspaceDrawerRightObserver.observe(A,n))}}updateFileCache(e,A,t=!1){A&&void 0!==A[FRONTMATTER_KEY]?this.excalidrawFiles.add(e):t||"excalidraw"!==e.extension?this.excalidrawFiles.delete(e):this.excalidrawFiles.add(e)}onunload(){destroyExcalidrawAutomate(),this.popScope&&(this.popScope(),this.popScope=null),this.observer.disconnect(),this.themeObserver.disconnect(),this.modalContainerObserver.disconnect(),this.workspaceDrawerLeftObserver&&this.workspaceDrawerLeftObserver.disconnect(),this.workspaceDrawerRightObserver&&this.workspaceDrawerRightObserver.disconnect(),this.fileExplorerObserver&&this.fileExplorerObserver.disconnect(),this.app.workspace.getLeavesOfType("excalidraw").forEach((e=>{this.setMarkdownView(e)})),this.mathjaxDiv&&document.body.removeChild(this.mathjaxDiv),Object.values(this.packageMap).forEach((e=>{delete e.excalidrawLib,delete e.reactDOM,delete e.react}))}async embedDrawing(e){const A=this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);if(A&&A.file){const t=this.app.metadataCache.fileToLinktext(e,A.file.path,"excalidraw"===this.settings.embedType),n=A.editor;if("excalidraw"===this.settings.embedType)return n.replaceSelection(this.settings.embedWikiLink?`![[${t}]]`:`![](${encodeURI(t)})`),void n.focus();let i=this.settings.autoExportLightAndDark?getExportTheme(this,e,this.settings.exportWithTheme&&isObsidianThemeDark()?"dark":"light"):"";i=""===i?"":i+".";const a=getIMGFilename(t,i+this.settings.embedType.toLowerCase()),r=getIMGFilename(e.path,i+this.settings.embedType.toLowerCase()),s="dark."===i?"light.":"dark.",o=getIMGFilename(t,s+this.settings.embedType.toLowerCase());this.app.vault.getAbstractFileByPath(r)||(await this.app.vault.create(r,""),await sleep$1(200)),n.replaceSelection(this.settings.embedWikiLink?`![[${a}]]\n%%[[${t}|🖋 Edit in Excalidraw]]${o?", and the [["+o+"|"+s.split(".")[0]+" exported image]]":""}%%`:`![](${encodeURI(a)})\n%%[🖋 Edit in Excalidraw](${encodeURI(t)})${o?", and the ["+s.split(".")[0]+" exported image]("+encodeURI(o)+")":""}%%`),n.focus()}}async loadSettings(e={applyLefthandedMode:!0,reEnableAutosave:!1}){void 0===e.applyLefthandedMode&&(e.applyLefthandedMode=!0),void 0===e.reEnableAutosave&&(e.reEnableAutosave=!1),this.settings=Object.assign({},DEFAULT_SETTINGS,await this.loadData()),e.applyLefthandedMode&&setLeftHandedMode(this.settings.isLeftHanded),e.reEnableAutosave&&(this.settings.autosave=!0),this.settings.autosaveInterval=app.isMobile?1e4:15e3}async saveSettings(){await this.saveData(this.settings)}getStencilLibrary(){return""===this.settings.library||"deprecated"===this.settings.library?this.settings.library2:JSON_parse(this.settings.library)}setStencilLibrary(e){this.settings.library="deprecated",this.settings.library2=e}triggerEmbedUpdates(e){const A=new Set;app.workspace.iterateAllLeaves((t=>{const n=app.isMobile?document:t.view.containerEl.ownerDocument;if(!n)return;if(A.has(n))return;A.add(n);const i=n.createEvent("Event");i.initEvent(RERENDER_EVENT,!0,!1),n.querySelectorAll("div[class^='excalidraw-svg']"+(e?`[src='${e.replaceAll("'","\\'")}']`:"")).forEach((e=>e.dispatchEvent(i)))}))}openDrawing(e,A,t=!1,n){let i;"popout-window"===A?i=app.workspace.openPopoutLeaf():(i=this.app.workspace.getLeaf(!1),"empty"!==i.view.getViewType()&&"new-pane"===A&&(i=getNewOrAdjacentLeaf(this,i))),i.openFile(e,n&&""!==n?{active:t,eState:{subpath:n}}:{active:t})}async getBlankDrawing(){const e=this.app.metadataCache.getFirstLinkpathDest(obsidian.normalizePath(this.settings.templateFilePath),"");if(e&&e instanceof obsidian.TFile&&("md"==e.extension&&!this.settings.compatibilityMode||"excalidraw"==e.extension&&this.settings.compatibilityMode)){const A=await this.app.vault.read(e);if(A)return this.settings.matchTheme?changeThemeOfExcalidrawMD(A):A}if(this.settings.compatibilityMode)return this.settings.matchTheme&&isObsidianThemeDark()?DARK_BLANK_DRAWING:BLANK_DRAWING;const A=this.settings.matchTheme&&isObsidianThemeDark()?DARK_BLANK_DRAWING:BLANK_DRAWING;return`${FRONTMATTER}\n${getMarkdownDrawingSection(A,this.settings.compress)}`}async exportSceneToMD(e){var A,t;if(!e)return"";const n=null===(A=JSON_parse(e).elements)||void 0===A?void 0:A.filter((e=>"text"==e.type));let i,a="# Text Elements\n";for(const A of n)i=A.id,A.id.length>8&&(i=nanoid(),e=e.replaceAll(A.id,i)),a+=`${null!==(t=A.originalText)&&void 0!==t?t:A.text} ^${i}\n\n`;return a+getMarkdownDrawingSection(JSON.stringify(JSON_parse(e),null,"\t"),this.settings.compress)}async createDrawing(e,A,t){const n=obsidian.normalizePath(A||this.settings.folder);await checkAndCreateFolder(n);const i=getNewUniqueFilepath(this.app.vault,e,n),a=await this.app.vault.create(i,null!=t?t:await this.getBlankDrawing());let r=0;for(;a instanceof obsidian.TFile&&!this.isExcalidrawFile(a)&&r++<10;)await sleep$1(50);return r>10&&errorlog({file:a,error:"new drawing not recognized as an excalidraw file",fn:this.createDrawing}),a}async createAndOpenDrawing(e,A,t,n){const i=await this.createDrawing(e,t,n);return this.openDrawing(i,A,!0),i.path}async setMarkdownView(e){const A=e.view.getState();await e.setViewState({type:"excalidraw",state:{file:null}}),await e.setViewState({type:"markdown",state:A,popstate:!0},{focus:!0})}async setExcalidrawView(e){await e.setViewState({type:"excalidraw",state:e.view.getState(),popstate:!0})}isExcalidrawFile(e){if("excalidraw"==e.extension)return!0;const A=e?this.app.metadataCache.getFileCache(e):null;return!!(null==A?void 0:A.frontmatter)&&!!A.frontmatter[FRONTMATTER_KEY]}async exportLibrary(){this.app.isMobile?new Prompt(this.app,"Please provide a filename","my-library","filename, leave blank to cancel action").openAndGetValue((async e=>{if(!e)return;e=`${e}.excalidrawlib`;const A=obsidian.normalizePath(this.settings.folder);await checkAndCreateFolder(A);const t=getNewUniqueFilepath(this.app.vault,e,A);this.app.vault.create(t,this.settings.library),new obsidian.Notice(`Exported library to ${t}`,6e3)})):download("data:text/plain;charset=utf-8",encodeURIComponent(JSON.stringify(this.settings.library2,null,"\t")),"my-obsidian-library.excalidrawlib")}}module.exports=ExcalidrawPlugin; diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json b/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json index d8d9e1e..92c276e 100644 --- a/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-excalidraw-plugin", "name": "Excalidraw", - "version": "1.7.25", + "version": "1.7.29", "minAppVersion": "0.15.6", "description": "An Obsidian plugin to edit and view Excalidraw drawings", "author": "Zsolt Viczian", diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css b/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css index 34b99fb..6781ed1 100644 --- a/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css @@ -96,8 +96,7 @@ li[data-testid] { .ex-coffee-div { text-align: center; - margin-bottom: 20px; - + margin-bottom: 10px; } .excalidraw-scriptengine-install td>img { @@ -184,9 +183,8 @@ li[data-testid] { } .excalidraw-release .modal { - max-height: 90%; - width: auto; - max-width: 130ch; + max-height: 80%; + max-width: 100ch; } .excalidraw .Island .scrollbar { @@ -225,6 +223,65 @@ textarea.excalidraw-wysiwyg { border-radius: 0; } -.is-tablet .excalidraw button { +.is-tablet .excalidraw button, +.is-mobile .excalidraw button { padding: initial; + height: 1.8rem; +} + +.excalidraw button, +.ToolIcon button { + box-shadow: none; + justify-content: initial; +} + +.excalidraw { + --default-button-size: 2rem !important; + --default-icon-size: 1rem !important; + --lg-button-size: 1.8rem !important; + --lg-icon-size: 1rem !important; +} + +.excalidraw .tray-zoom { + pointer-events: initial; + padding-bottom: 0.05rem; + padding-top: 0.05rem; +} + +.excalidraw-container.theme--dark { + background-color: #121212; + color: #fff; +} + +/* https://discordapp.com/channels/686053708261228577/989603365606531104/1041266507256184863 */ +/*.workspace-leaf { + contain: none !important; +}*/ + +.color-picker-content { + overflow-y: auto; + max-height: 10rem; +} + +.excalidraw .FixedSideContainer_side_top { + top: 0.3rem; +} + +.excalidraw .ToolIcon__keybinding { + font-size: 0.5rem; +} + +.Island > .Stack > .Stack { + padding:0.2rem; +} + +label.color-input-container > input { + max-width: 8rem; +} + +.excalidraw .FixedSideContainer_side_top { + left: 10px !important; + top: 10px !important; + right: 10px !important; + bottom: 10px !important; } \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-git/data.json b/.obsidian/plugins/obsidian-git/data.json index cdd767c..a7a625f 100644 --- a/.obsidian/plugins/obsidian-git/data.json +++ b/.obsidian/plugins/obsidian-git/data.json @@ -2,9 +2,9 @@ "commitMessage": "vault backup: {{date}}", "autoCommitMessage": "vault backup: {{date}}", "commitDateFormat": "YYYY-MM-DD HH:mm:ss", - "autoSaveInterval": 0, + "autoSaveInterval": 5, "autoPushInterval": 0, - "autoPullInterval": 0, + "autoPullInterval": 60, "autoPullOnBoot": false, "disablePush": false, "pullBeforePush": true, @@ -14,13 +14,12 @@ "updateSubmodules": false, "syncMethod": "merge", "customMessageOnAutoBackup": false, - "autoBackupAfterFileChange": false, + "autoBackupAfterFileChange": true, "treeStructure": false, "refreshSourceControl": true, "basePath": "", "differentIntervalCommitAndPush": false, "changedFilesInStatusBar": false, - "username": "", "showedMobileNotice": true, "refreshSourceControlTimer": 7000, "showBranchStatusBar": true diff --git a/.obsidian/plugins/obsidian-git/main.js b/.obsidian/plugins/obsidian-git/main.js index 0990c5b..ab7a114 100644 --- a/.obsidian/plugins/obsidian-git/main.js +++ b/.obsidian/plugins/obsidian-git/main.js @@ -1886,6 +1886,7 @@ var require_lib = __commonJS({ } this.timeout = opts.timeout || AsyncLock2.DEFAULT_TIMEOUT; this.maxOccupationTime = opts.maxOccupationTime || AsyncLock2.DEFAULT_MAX_OCCUPATION_TIME; + this.maxExecutionTime = opts.maxExecutionTime || AsyncLock2.DEFAULT_MAX_EXECUTION_TIME; if (opts.maxPending === Infinity || Number.isInteger(opts.maxPending) && opts.maxPending >= 0) { this.maxPending = opts.maxPending; } else { @@ -1894,6 +1895,7 @@ var require_lib = __commonJS({ }; AsyncLock2.DEFAULT_TIMEOUT = 0; AsyncLock2.DEFAULT_MAX_OCCUPATION_TIME = 0; + AsyncLock2.DEFAULT_MAX_EXECUTION_TIME = 0; AsyncLock2.DEFAULT_MAX_PENDING = 1e3; AsyncLock2.prototype.acquire = function(key2, fn, cb, opts) { if (Array.isArray(key2)) { @@ -1917,12 +1919,17 @@ var require_lib = __commonJS({ var resolved = false; var timer = null; var occupationTimer = null; + var executionTimer = null; var self3 = this; var done = function(locked, err, ret) { if (occupationTimer) { clearTimeout(occupationTimer); occupationTimer = null; } + if (executionTimer) { + clearTimeout(executionTimer); + executionTimer = null; + } if (locked) { if (!!self3.queues[key2] && self3.queues[key2].length === 0) { delete self3.queues[key2]; @@ -1962,6 +1969,14 @@ var require_lib = __commonJS({ if (self3.domainReentrant && locked) { self3.domains[key2] = process.domain; } + var maxExecutionTime = opts.maxExecutionTime || self3.maxExecutionTime; + if (maxExecutionTime) { + executionTimer = setTimeout(function() { + if (!!self3.queues[key2]) { + done(locked, new Error("Maximum execution time is exceeded " + key2)); + } + }, maxExecutionTime); + } if (fn.length === 1) { var called = false; try { @@ -19625,10 +19640,10 @@ var IsomorphicGit = class extends GitManager { fs: this.fs, dir: this.plugin.settings.basePath, onAuth: () => { - var _a2; + var _a2, _b; return { - username: this.plugin.settings.username, - password: (_a2 = this.plugin.localStorage.getPassword()) != null ? _a2 : void 0 + username: (_a2 = this.plugin.localStorage.getUsername()) != null ? _a2 : void 0, + password: (_b = this.plugin.localStorage.getPassword()) != null ? _b : void 0 }; }, onAuthFailure: async () => { @@ -19637,8 +19652,7 @@ var IsomorphicGit = class extends GitManager { if (username) { const password = await new GeneralModal({ placeholder: "Specify your password/personal access token" }).open(); if (password) { - this.plugin.settings.username = username; - await this.plugin.saveSettings(); + this.plugin.localStorage.setUsername(username); this.plugin.localStorage.setPassword(password); return { username, @@ -19683,17 +19697,22 @@ var IsomorphicGit = class extends GitManager { } } async status() { - const notice = new import_obsidian5.Notice("Getting status...", this.noticeLength); + let notice; + const timeout = window.setTimeout(function() { + notice = new import_obsidian5.Notice("This takes longer: Getting status", this.noticeLength); + }, 2e4); try { this.plugin.setState(PluginState.status); const status2 = (await this.wrapFS(isomorphic_git_default.statusMatrix({ ...this.getRepo() }))).map((row) => this.getFileStatusResult(row)); const changed = status2.filter((fileStatus) => fileStatus.working_dir !== " "); const staged = status2.filter((fileStatus) => fileStatus.index !== " " && fileStatus.index !== "U"); const conflicted = []; - notice.hide(); + window.clearTimeout(timeout); + notice == null ? void 0 : notice.hide(); return { changed, staged, conflicted }; } catch (error) { - notice.hide(); + window.clearTimeout(timeout); + notice == null ? void 0 : notice.hide(); this.plugin.displayError(error); throw error; } @@ -19831,7 +19850,7 @@ var IsomorphicGit = class extends GitManager { return this.wrapFS(isomorphic_git_default.resolveRef({ ...this.getRepo(), ref })); } async pull() { - const progressNotice = new import_obsidian5.Notice("Initializing pull", this.noticeLength); + const progressNotice = this.showNotice("Initializing pull"); try { this.plugin.setState(PluginState.pull); const localCommit = await this.resolveRef("HEAD"); @@ -19847,11 +19866,13 @@ var IsomorphicGit = class extends GitManager { ...this.getRepo(), ref: branchInfo.current, onProgress: (progress) => { - progressNotice.noticeEl.innerText = this.getProgressText("Checkout", progress); + if (progressNotice !== void 0) { + progressNotice.noticeEl.innerText = this.getProgressText("Checkout", progress); + } }, remote: branchInfo.remote })); - progressNotice.hide(); + progressNotice == null ? void 0 : progressNotice.hide(); const upstreamCommit = await this.resolveRef("HEAD"); this.plugin.lastUpdate = Date.now(); const changedFiles = await this.getFileChangesCount(localCommit, upstreamCommit); @@ -19863,7 +19884,7 @@ var IsomorphicGit = class extends GitManager { vault_path: this.getVaultPath(file.path) })); } catch (error) { - progressNotice.hide(); + progressNotice == null ? void 0 : progressNotice.hide(); if (error instanceof Errors.MergeConflictError) { this.plugin.handleConflict(error.data.filepaths.map((file) => this.getVaultPath(file))); } @@ -19875,7 +19896,7 @@ var IsomorphicGit = class extends GitManager { if (!await this.canPush()) { return 0; } - const progressNotice = new import_obsidian5.Notice("Initializing push", this.noticeLength); + const progressNotice = this.showNotice("Initializing push"); try { this.plugin.setState(PluginState.status); const status2 = await this.branchInfo(); @@ -19886,13 +19907,15 @@ var IsomorphicGit = class extends GitManager { await this.wrapFS(isomorphic_git_default.push({ ...this.getRepo(), onProgress: (progress) => { - progressNotice.noticeEl.innerText = this.getProgressText("Pushing", progress); + if (progressNotice !== void 0) { + progressNotice.noticeEl.innerText = this.getProgressText("Pushing", progress); + } } })); - progressNotice.hide(); + progressNotice == null ? void 0 : progressNotice.hide(); return numChangedFiles; } catch (error) { - progressNotice.hide(); + progressNotice == null ? void 0 : progressNotice.hide(); this.plugin.displayError(error); throw error; } @@ -19973,19 +19996,21 @@ var IsomorphicGit = class extends GitManager { } } async clone(url, dir) { - const progressNotice = new import_obsidian5.Notice("Initializing clone", this.noticeLength); + const progressNotice = this.showNotice("Initializing clone"); try { await this.wrapFS(isomorphic_git_default.clone({ ...this.getRepo(), dir, url, onProgress: (progress) => { - progressNotice.noticeEl.innerText = this.getProgressText("Cloning", progress); + if (progressNotice !== void 0) { + progressNotice.noticeEl.innerText = this.getProgressText("Cloning", progress); + } } })); - progressNotice.hide(); + progressNotice == null ? void 0 : progressNotice.hide(); } catch (error) { - progressNotice.hide(); + progressNotice == null ? void 0 : progressNotice.hide(); this.plugin.displayError(error); throw error; } @@ -20014,26 +20039,28 @@ var IsomorphicGit = class extends GitManager { } } async fetch(remote) { - const progressNotice = new import_obsidian5.Notice("Initializing fetch", this.noticeLength); + const progressNotice = this.showNotice("Initializing fetch"); try { const args = { ...this.getRepo(), onProgress: (progress) => { - progressNotice.noticeEl.innerText = this.getProgressText("Fetching", progress); + if (progressNotice !== void 0) { + progressNotice.noticeEl.innerText = this.getProgressText("Fetching", progress); + } }, remote: remote != null ? remote : await this.getCurrentRemote() }; await this.wrapFS(isomorphic_git_default.fetch(args)); - progressNotice.hide(); + progressNotice == null ? void 0 : progressNotice.hide(); } catch (error) { this.plugin.displayError(error); - progressNotice.hide(); + progressNotice == null ? void 0 : progressNotice.hide(); throw error; } } async setRemote(name, url) { try { - await this.wrapFS(isomorphic_git_default.addRemote({ ...this.getRepo(), remote: name, url })); + await this.wrapFS(isomorphic_git_default.addRemote({ ...this.getRepo(), remote: name, url, force: true })); } catch (error) { this.plugin.displayError(error); throw error; @@ -20053,7 +20080,8 @@ var IsomorphicGit = class extends GitManager { await this.wrapFS(isomorphic_git_default.deleteRemote({ ...this.getRepo(), remote: remoteName })); } async getRemoteUrl(remote) { - return (await this.wrapFS(isomorphic_git_default.listRemotes({ ...this.getRepo() }))).filter((item) => item.remote == remote)[0].url; + var _a2; + return (_a2 = (await this.wrapFS(isomorphic_git_default.listRemotes({ ...this.getRepo() }))).filter((item) => item.remote == remote)[0]) == null ? void 0 : _a2.url; } updateBasePath(basePath) { this.getRepo().dir = basePath; @@ -20122,7 +20150,10 @@ var IsomorphicGit = class extends GitManager { }); } async getUnstagedFiles(base = ".") { - const notice = new import_obsidian5.Notice("Getting status...", this.noticeLength); + let notice; + const timeout = window.setTimeout(function() { + notice = new import_obsidian5.Notice("This takes longer: Getting status", this.noticeLength); + }, 2e4); try { const repo = this.getRepo(); const res = await this.wrapFS(isomorphic_git_default.walk({ @@ -20174,10 +20205,12 @@ var IsomorphicGit = class extends GitManager { return null; } })); - notice.hide(); + window.clearTimeout(timeout); + notice == null ? void 0 : notice.hide(); return res; } catch (error) { - notice.hide(); + window.clearTimeout(timeout); + notice == null ? void 0 : notice.hide(); this.plugin.displayError(error); throw error; } @@ -20221,6 +20254,11 @@ var IsomorphicGit = class extends GitManager { vault_path: this.getVaultPath(row[this.FILE]) }; } + showNotice(message) { + if (!this.plugin.settings.disablePopups) { + return new import_obsidian5.Notice(message, this.noticeLength); + } + } }; function fromValue2(value) { let queue = [value]; @@ -23795,6 +23833,32 @@ function abortPlugin(signal) { }; return [onSpawnBefore, onSpawnAfter]; } +function isConfigSwitch(arg) { + return arg.trim().toLowerCase() === "-c"; +} +function preventProtocolOverride(arg, next) { + if (!isConfigSwitch(arg)) { + return; + } + if (!/^\s*protocol(.[a-z]+)?.allow/.test(next)) { + return; + } + throw new GitPluginError(void 0, "unsafe", "Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol"); +} +function blockUnsafeOperationsPlugin({ + allowUnsafeProtocolOverride = false +} = {}) { + return { + type: "spawn.args", + action(args, _context) { + args.forEach((current, index2) => { + const next = index2 < args.length ? args[index2 + 1] : ""; + allowUnsafeProtocolOverride || preventProtocolOverride(current, next); + }); + return args; + } + }; +} init_utils(); function commandConfigPrefixingPlugin(configuration) { const prefix = prefixedArray(configuration, "-c"); @@ -24023,6 +24087,7 @@ function gitInstanceFactory(baseDir, options) { if (Array.isArray(config.config)) { plugins.add(commandConfigPrefixingPlugin(config.config)); } + plugins.add(blockUnsafeOperationsPlugin(config.unsafe)); plugins.add(completionDetectionPlugin(config.completion)); config.abort && plugins.add(abortPlugin(config.abort)); config.progress && plugins.add(progressMonitorPlugin(config.progress)); @@ -24058,7 +24123,14 @@ var SimpleGit = class extends GitManager { binary: this.plugin.localStorage.getGitPath() || void 0, config: ["core.quotepath=off"] }); - this.git.cwd(await this.git.revparse("--show-toplevel")); + const env = this.plugin.localStorage.getPATHPaths(); + if (env.length > 0) { + const path3 = process.env["PATH"] + ":" + env.join(":"); + process.env["PATH"] = path3; + } + const debug2 = require_browser(); + debug2.enable("simple-git"); + await this.git.cwd(await this.git.revparse("--show-toplevel")); } } async status() { @@ -24300,10 +24372,14 @@ var SimpleGit = class extends GitManager { await this.git.clone(url, path.join(this.app.vault.adapter.getBasePath(), dir), [], (err) => this.onError(err)); } async setConfig(path2, value) { - await this.git.addConfig(path2, value, (err) => this.onError(err)); + if (value == void 0) { + await this.git.raw(["config", "--local", "--unset", path2]); + } else { + await this.git.addConfig(path2, value, (err) => this.onError(err)); + } } async getConfig(path2) { - const config = await this.git.listConfig((err) => this.onError(err)); + const config = await this.git.listConfig("local", (err) => this.onError(err)); return config.all[path2]; } async fetch(remote) { @@ -24377,7 +24453,7 @@ var SimpleGit = class extends GitManager { } onError(error) { if (error) { - const networkFailure = error.message.contains("Could not resolve host") || error.message.match(/ssh: connect to host .*? port .*?: Operation timed out/); + const networkFailure = error.message.contains("Could not resolve host") || error.message.match(/ssh: connect to host .*? port .*?: Operation timed out/) || error.message.match(/ssh: connect to host .*? port .*?: Network is unreachable/); if (!networkFailure) { this.plugin.displayError(error.message); this.plugin.setState(PluginState.idle); @@ -24435,7 +24511,7 @@ var ObsidianGitSettingsTab = class extends import_obsidian7.PluginSettingTab { new import_obsidian7.Notice("Please specify a valid number."); } })); - new import_obsidian7.Setting(containerEl).setName(`If turned on, do auto ${commitOrBackup} every X minutes after last change. Prevents auto ${commitOrBackup} while editing a file. If turned off, do auto ${commitOrBackup} every X minutes. It's independent from last change.`).addToggle((toggle) => toggle.setValue(plugin.settings.autoBackupAfterFileChange).onChange((value) => { + new import_obsidian7.Setting(containerEl).setName(`Auto Backup after Filechange`).setDesc(`If turned on, do auto ${commitOrBackup} every ${plugin.settings.autoSaveInterval} minutes after last change. This also prevents auto ${commitOrBackup} while editing a file. If turned off, it's independent from last the change.`).addToggle((toggle) => toggle.setValue(plugin.settings.autoBackupAfterFileChange).onChange((value) => { plugin.settings.autoBackupAfterFileChange = value; plugin.saveSettings(); plugin.clearAutoBackup(); @@ -24564,6 +24640,43 @@ var ObsidianGitSettingsTab = class extends import_obsidian7.PluginSettingTab { plugin.saveSettings(); })); containerEl.createEl("br"); + if (plugin.gitManager instanceof IsomorphicGit) { + containerEl.createEl("h3", { text: "Authentication/Commit Author" }); + } else { + containerEl.createEl("h3", { text: "Commit Author" }); + } + if (plugin.gitManager instanceof IsomorphicGit) + new import_obsidian7.Setting(containerEl).setName("Username on your git server. E.g. your username on GitHub").addText((cb) => { + var _a2; + cb.setValue((_a2 = plugin.localStorage.getUsername()) != null ? _a2 : ""); + cb.onChange((value) => { + plugin.localStorage.setUsername(value); + }); + }); + if (plugin.gitManager instanceof IsomorphicGit) + new import_obsidian7.Setting(containerEl).setName("Password/Personal access token").setDesc("Type in your password. You won't be able to see it again.").addText((cb) => { + cb.inputEl.autocapitalize = "off"; + cb.inputEl.autocomplete = "off"; + cb.inputEl.spellcheck = false; + cb.onChange((value) => { + plugin.localStorage.setPassword(value); + }); + }); + if (gitReady) + new import_obsidian7.Setting(containerEl).setName("Author name for commit").addText(async (cb) => { + cb.setValue(await plugin.gitManager.getConfig("user.name")); + cb.onChange((value) => { + plugin.gitManager.setConfig("user.name", value == "" ? void 0 : value); + }); + }); + if (gitReady) + new import_obsidian7.Setting(containerEl).setName("Author email for commit").addText(async (cb) => { + cb.setValue(await plugin.gitManager.getConfig("user.email")); + cb.onChange((value) => { + plugin.gitManager.setConfig("user.email", value == "" ? void 0 : value); + }); + }); + containerEl.createEl("br"); containerEl.createEl("h3", { text: "Advanced" }); if (plugin.gitManager instanceof SimpleGit) new import_obsidian7.Setting(containerEl).setName("Update submodules").setDesc('"Create backup" and "pull" takes care of submodules. Missing features: Conflicted files, count of pulled/pushed/committed files. Tracking branch needs to be set for each submodule').addToggle((toggle) => toggle.setValue(plugin.settings.updateSubmodules).onChange((value) => { @@ -24580,35 +24693,19 @@ var ObsidianGitSettingsTab = class extends import_obsidian7.PluginSettingTab { plugin.gitManager.updateGitPath(value || "git"); }); }); - if (plugin.gitManager instanceof IsomorphicGit) - new import_obsidian7.Setting(containerEl).setName("Username on your git server. E.g. your username on GitHub").addText((cb) => { - cb.setValue(plugin.settings.username); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian7.Setting(containerEl).setName("Additional PATH environment variable paths").setDesc("Use each line for one path").addTextArea((cb) => { + cb.setValue(plugin.localStorage.getPATHPaths().join("\n")); cb.onChange((value) => { - plugin.settings.username = value; - plugin.saveSettings(); + plugin.localStorage.setPATHPaths(value.split("\n")); }); }); - if (plugin.gitManager instanceof IsomorphicGit) - new import_obsidian7.Setting(containerEl).setName("Password/Personal access token").setDesc("Type in your password. You won't be able to see it again.").addText((cb) => { - cb.inputEl.autocapitalize = "off"; - cb.inputEl.autocomplete = "off"; - cb.inputEl.spellcheck = false; - cb.onChange((value) => { - plugin.localStorage.setPassword(value); - }); - }); - if (gitReady) - new import_obsidian7.Setting(containerEl).setName("Author name for commit").addText(async (cb) => { - cb.setValue(await plugin.gitManager.getConfig("user.name")); - cb.onChange((value) => { - plugin.gitManager.setConfig("user.name", value); - }); - }); - if (gitReady) - new import_obsidian7.Setting(containerEl).setName("Author email for commit").addText(async (cb) => { - cb.setValue(await plugin.gitManager.getConfig("user.email")); - cb.onChange((value) => { - plugin.gitManager.setConfig("user.email", value); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian7.Setting(containerEl).setName("Reload with new PATH environment variable").addButton((cb) => { + cb.setButtonText("Reload"); + cb.setCta(); + cb.onClick(() => { + plugin.gitManager.setGitInstance(); }); }); new import_obsidian7.Setting(containerEl).setName("Custom base path (Git repository path)").setDesc(` @@ -24852,7 +24949,6 @@ var DEFAULT_SETTINGS = { basePath: "", differentIntervalCommitAndPush: false, changedFilesInStatusBar: false, - username: "", showedMobileNotice: false, refreshSourceControlTimer: 7e3, showBranchStatusBar: true @@ -24893,6 +24989,12 @@ var LocalStorageSettings = class { setPassword(value) { return app.saveLocalStorage(this.prefix + "password", value); } + getUsername() { + return app.loadLocalStorage(this.prefix + "username"); + } + setUsername(value) { + return app.saveLocalStorage(this.prefix + "username", value); + } getHostname() { return app.loadLocalStorage(this.prefix + "hostname"); } @@ -24929,6 +25031,13 @@ var LocalStorageSettings = class { setGitPath(value) { return app.saveLocalStorage(this.prefix + "gitPath", value); } + getPATHPaths() { + var _a2, _b; + return (_b = (_a2 = app.loadLocalStorage(this.prefix + "PATHPaths")) == null ? void 0 : _a2.split(":")) != null ? _b : []; + } + setPATHPaths(value) { + return app.saveLocalStorage(this.prefix + "PATHPaths", value.join(":")); + } getPluginDisabled() { return app.loadLocalStorage(this.prefix + "pluginDisabled") == "true"; } @@ -26757,7 +26866,9 @@ function insert(target, node, anchor) { target.insertBefore(node, anchor || null); } function detach(node) { - node.parentNode.removeChild(node); + if (node.parentNode) { + node.parentNode.removeChild(node); + } } function destroy_each(iterations, detaching) { for (let i = 0; i < iterations.length; i += 1) { @@ -30581,7 +30692,14 @@ var ObsidianGit = class extends import_obsidian23.Plugin { if (checking) { return file !== null; } else { - (_a2 = getNewLeaf()) == null ? void 0 : _a2.setViewState({ type: DIFF_VIEW_CONFIG.type, state: { staged: false, file: file.path } }); + (_a2 = getNewLeaf()) == null ? void 0 : _a2.setViewState({ + type: DIFF_VIEW_CONFIG.type, + active: true, + state: { + staged: false, + file: file.path + } + }); } } }); @@ -30846,6 +30964,11 @@ var ObsidianGit = class extends import_obsidian23.Plugin { this.settings.gitPath = void 0; await this.saveSettings(); } + if (this.settings.username != void 0) { + this.localStorage.setPassword(this.settings.username); + this.settings.username = void 0; + await this.saveSettings(); + } } unloadPlugin() { this.gitReady = false; @@ -31465,20 +31588,6 @@ var ObsidianGit = class extends import_obsidian23.Plugin { * @author Feross Aboukhadijeh * @license MIT */ -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ /*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */ /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ /*! safe-buffer. MIT License. Feross Aboukhadijeh */ diff --git a/.obsidian/plugins/obsidian-git/manifest.json b/.obsidian/plugins/obsidian-git/manifest.json index 949c98e..dbe59e9 100644 --- a/.obsidian/plugins/obsidian-git/manifest.json +++ b/.obsidian/plugins/obsidian-git/manifest.json @@ -4,5 +4,5 @@ "description": "Backup your vault with Git.", "isDesktopOnly": false, "js": "main.js", - "version": "2.8.0" + "version": "2.10.2" } diff --git a/.obsidian/plugins/obsidian-icon-folder/main.js b/.obsidian/plugins/obsidian-icon-folder/main.js index 6e3b1bd..73b687a 100644 --- a/.obsidian/plugins/obsidian-icon-folder/main.js +++ b/.obsidian/plugins/obsidian-icon-folder/main.js @@ -326,7 +326,1863 @@ const getSvgFromLoadedIcon = (iconPrefix, iconName) => { }; /*! Copyright Twitter Inc. and other contributors. Licensed under MIT */ -var twemoji=function(){var twemoji={base:"https://twemoji.maxcdn.com/v/13.1.1/",ext:".png",size:"72x72",className:"emoji",convert:{fromCodePoint:fromCodePoint,toCodePoint:toCodePoint},onerror:function onerror(){if(this.parentNode){this.parentNode.replaceChild(createText(this.alt,false),this);}},parse:parse,replace:replace,test:test},escaper={"&":"&","<":"<",">":">","'":"'",'"':"""},re=/(?:\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffc-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffb\udffd-\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffb\udffc\udffe\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffb-\udffd\udfff]|\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffb-\udffe]|\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffc-\udfff]|\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffb\udffd-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffb\udffc\udffe\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffb-\udffd\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d[\udc68\udc69]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d[\udc68\udc69]|\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1|\ud83d\udc6b\ud83c[\udffb-\udfff]|\ud83d\udc6c\ud83c[\udffb-\udfff]|\ud83d\udc6d\ud83c[\udffb-\udfff]|\ud83d\udc8f\ud83c[\udffb-\udfff]|\ud83d\udc91\ud83c[\udffb-\udfff]|\ud83d[\udc6b-\udc6d\udc8f\udc91])|(?:\ud83d[\udc68\udc69]|\ud83e\uddd1)(?:\ud83c[\udffb-\udfff])?\u200d(?:\u2695\ufe0f|\u2696\ufe0f|\u2708\ufe0f|\ud83c[\udf3e\udf73\udf7c\udf84\udf93\udfa4\udfa8\udfeb\udfed]|\ud83d[\udcbb\udcbc\udd27\udd2c\ude80\ude92]|\ud83e[\uddaf-\uddb3\uddbc\uddbd])|(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75]|\u26f9)((?:\ud83c[\udffb-\udfff]|\ufe0f)\u200d[\u2640\u2642]\ufe0f)|(?:\ud83c[\udfc3\udfc4\udfca]|\ud83d[\udc6e\udc70\udc71\udc73\udc77\udc81\udc82\udc86\udc87\ude45-\ude47\ude4b\ude4d\ude4e\udea3\udeb4-\udeb6]|\ud83e[\udd26\udd35\udd37-\udd39\udd3d\udd3e\uddb8\uddb9\uddcd-\uddcf\uddd4\uddd6-\udddd])(?:\ud83c[\udffb-\udfff])?\u200d[\u2640\u2642]\ufe0f|(?:\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83d\ude36\u200d\ud83c\udf2b\ufe0f|\u2764\ufe0f\u200d\ud83d\udd25|\u2764\ufe0f\u200d\ud83e\ude79|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc15\u200d\ud83e\uddba|\ud83d\udc3b\u200d\u2744\ufe0f|\ud83d\udc41\u200d\ud83d\udde8|\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc6f\u200d\u2640\ufe0f|\ud83d\udc6f\u200d\u2642\ufe0f|\ud83d\ude2e\u200d\ud83d\udca8|\ud83d\ude35\u200d\ud83d\udcab|\ud83e\udd3c\u200d\u2640\ufe0f|\ud83e\udd3c\u200d\u2642\ufe0f|\ud83e\uddde\u200d\u2640\ufe0f|\ud83e\uddde\u200d\u2642\ufe0f|\ud83e\udddf\u200d\u2640\ufe0f|\ud83e\udddf\u200d\u2642\ufe0f|\ud83d\udc08\u200d\u2b1b)|[#*0-9]\ufe0f?\u20e3|(?:[©®\u2122\u265f]\ufe0f)|(?:\ud83c[\udc04\udd70\udd71\udd7e\udd7f\ude02\ude1a\ude2f\ude37\udf21\udf24-\udf2c\udf36\udf7d\udf96\udf97\udf99-\udf9b\udf9e\udf9f\udfcd\udfce\udfd4-\udfdf\udff3\udff5\udff7]|\ud83d[\udc3f\udc41\udcfd\udd49\udd4a\udd6f\udd70\udd73\udd76-\udd79\udd87\udd8a-\udd8d\udda5\udda8\uddb1\uddb2\uddbc\uddc2-\uddc4\uddd1-\uddd3\udddc-\uddde\udde1\udde3\udde8\uddef\uddf3\uddfa\udecb\udecd-\udecf\udee0-\udee5\udee9\udef0\udef3]|[\u203c\u2049\u2139\u2194-\u2199\u21a9\u21aa\u231a\u231b\u2328\u23cf\u23ed-\u23ef\u23f1\u23f2\u23f8-\u23fa\u24c2\u25aa\u25ab\u25b6\u25c0\u25fb-\u25fe\u2600-\u2604\u260e\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262a\u262e\u262f\u2638-\u263a\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2697\u2699\u269b\u269c\u26a0\u26a1\u26a7\u26aa\u26ab\u26b0\u26b1\u26bd\u26be\u26c4\u26c5\u26c8\u26cf\u26d1\u26d3\u26d4\u26e9\u26ea\u26f0-\u26f5\u26f8\u26fa\u26fd\u2702\u2708\u2709\u270f\u2712\u2714\u2716\u271d\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u2764\u27a1\u2934\u2935\u2b05-\u2b07\u2b1b\u2b1c\u2b50\u2b55\u3030\u303d\u3297\u3299])(?:\ufe0f|(?!\ufe0e))|(?:(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75\udd90]|[\u261d\u26f7\u26f9\u270c\u270d])(?:\ufe0f|(?!\ufe0e))|(?:\ud83c[\udf85\udfc2-\udfc4\udfc7\udfca]|\ud83d[\udc42\udc43\udc46-\udc50\udc66-\udc69\udc6e\udc70-\udc78\udc7c\udc81-\udc83\udc85-\udc87\udcaa\udd7a\udd95\udd96\ude45-\ude47\ude4b-\ude4f\udea3\udeb4-\udeb6\udec0\udecc]|\ud83e[\udd0c\udd0f\udd18-\udd1c\udd1e\udd1f\udd26\udd30-\udd39\udd3d\udd3e\udd77\uddb5\uddb6\uddb8\uddb9\uddbb\uddcd-\uddcf\uddd1-\udddd]|[\u270a\u270b]))(?:\ud83c[\udffb-\udfff])?|(?:\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f|\ud83c\udde6\ud83c[\udde8-\uddec\uddee\uddf1\uddf2\uddf4\uddf6-\uddfa\uddfc\uddfd\uddff]|\ud83c\udde7\ud83c[\udde6\udde7\udde9-\uddef\uddf1-\uddf4\uddf6-\uddf9\uddfb\uddfc\uddfe\uddff]|\ud83c\udde8\ud83c[\udde6\udde8\udde9\uddeb-\uddee\uddf0-\uddf5\uddf7\uddfa-\uddff]|\ud83c\udde9\ud83c[\uddea\uddec\uddef\uddf0\uddf2\uddf4\uddff]|\ud83c\uddea\ud83c[\udde6\udde8\uddea\uddec\udded\uddf7-\uddfa]|\ud83c\uddeb\ud83c[\uddee-\uddf0\uddf2\uddf4\uddf7]|\ud83c\uddec\ud83c[\udde6\udde7\udde9-\uddee\uddf1-\uddf3\uddf5-\uddfa\uddfc\uddfe]|\ud83c\udded\ud83c[\uddf0\uddf2\uddf3\uddf7\uddf9\uddfa]|\ud83c\uddee\ud83c[\udde8-\uddea\uddf1-\uddf4\uddf6-\uddf9]|\ud83c\uddef\ud83c[\uddea\uddf2\uddf4\uddf5]|\ud83c\uddf0\ud83c[\uddea\uddec-\uddee\uddf2\uddf3\uddf5\uddf7\uddfc\uddfe\uddff]|\ud83c\uddf1\ud83c[\udde6-\udde8\uddee\uddf0\uddf7-\uddfb\uddfe]|\ud83c\uddf2\ud83c[\udde6\udde8-\udded\uddf0-\uddff]|\ud83c\uddf3\ud83c[\udde6\udde8\uddea-\uddec\uddee\uddf1\uddf4\uddf5\uddf7\uddfa\uddff]|\ud83c\uddf4\ud83c\uddf2|\ud83c\uddf5\ud83c[\udde6\uddea-\udded\uddf0-\uddf3\uddf7-\uddf9\uddfc\uddfe]|\ud83c\uddf6\ud83c\udde6|\ud83c\uddf7\ud83c[\uddea\uddf4\uddf8\uddfa\uddfc]|\ud83c\uddf8\ud83c[\udde6-\uddea\uddec-\uddf4\uddf7-\uddf9\uddfb\uddfd-\uddff]|\ud83c\uddf9\ud83c[\udde6\udde8\udde9\uddeb-\udded\uddef-\uddf4\uddf7\uddf9\uddfb\uddfc\uddff]|\ud83c\uddfa\ud83c[\udde6\uddec\uddf2\uddf3\uddf8\uddfe\uddff]|\ud83c\uddfb\ud83c[\udde6\udde8\uddea\uddec\uddee\uddf3\uddfa]|\ud83c\uddfc\ud83c[\uddeb\uddf8]|\ud83c\uddfd\ud83c\uddf0|\ud83c\uddfe\ud83c[\uddea\uddf9]|\ud83c\uddff\ud83c[\udde6\uddf2\uddfc]|\ud83c[\udccf\udd8e\udd91-\udd9a\udde6-\uddff\ude01\ude32-\ude36\ude38-\ude3a\ude50\ude51\udf00-\udf20\udf2d-\udf35\udf37-\udf7c\udf7e-\udf84\udf86-\udf93\udfa0-\udfc1\udfc5\udfc6\udfc8\udfc9\udfcf-\udfd3\udfe0-\udff0\udff4\udff8-\udfff]|\ud83d[\udc00-\udc3e\udc40\udc44\udc45\udc51-\udc65\udc6a\udc6f\udc79-\udc7b\udc7d-\udc80\udc84\udc88-\udc8e\udc90\udc92-\udca9\udcab-\udcfc\udcff-\udd3d\udd4b-\udd4e\udd50-\udd67\udda4\uddfb-\ude44\ude48-\ude4a\ude80-\udea2\udea4-\udeb3\udeb7-\udebf\udec1-\udec5\uded0-\uded2\uded5-\uded7\udeeb\udeec\udef4-\udefc\udfe0-\udfeb]|\ud83e[\udd0d\udd0e\udd10-\udd17\udd1d\udd20-\udd25\udd27-\udd2f\udd3a\udd3c\udd3f-\udd45\udd47-\udd76\udd78\udd7a-\uddb4\uddb7\uddba\uddbc-\uddcb\uddd0\uddde-\uddff\ude70-\ude74\ude78-\ude7a\ude80-\ude86\ude90-\udea8\udeb0-\udeb6\udec0-\udec2\uded0-\uded6]|[\u23e9-\u23ec\u23f0\u23f3\u267e\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a])|\ufe0f/g,UFE0Fg=/\uFE0F/g,U200D=String.fromCharCode(8205),rescaper=/[&<>'"]/g,shouldntBeParsed=/^(?:iframe|noframes|noscript|script|select|style|textarea)$/,fromCharCode=String.fromCharCode;return twemoji;function createText(text,clean){return document.createTextNode(clean?text.replace(UFE0Fg,""):text)}function escapeHTML(s){return s.replace(rescaper,replacer)}function defaultImageSrcGenerator(icon,options){return "".concat(options.base,options.size,"/",icon,options.ext)}function grabAllTextNodes(node,allText){var childNodes=node.childNodes,length=childNodes.length,subnode,nodeType;while(length--){subnode=childNodes[length];nodeType=subnode.nodeType;if(nodeType===3){allText.push(subnode);}else if(nodeType===1&&!("ownerSVGElement"in subnode)&&!shouldntBeParsed.test(subnode.nodeName.toLowerCase())){grabAllTextNodes(subnode,allText);}}return allText}function grabTheRightIcon(rawText){return toCodePoint(rawText.indexOf(U200D)<0?rawText.replace(UFE0Fg,""):rawText)}function parseNode(node,options){var allText=grabAllTextNodes(node,[]),length=allText.length,attrib,attrname,modified,fragment,subnode,text,match,i,index,img,rawText,iconId,src;while(length--){modified=false;fragment=document.createDocumentFragment();subnode=allText[length];text=subnode.nodeValue;i=0;while(match=re.exec(text)){index=match.index;if(index!==i){fragment.appendChild(createText(text.slice(i,index),true));}rawText=match[0];iconId=grabTheRightIcon(rawText);i=index+rawText.length;src=options.callback(iconId,options);if(iconId&&src){img=new Image;img.onerror=options.onerror;img.setAttribute("draggable","false");attrib=options.attributes(rawText,iconId);for(attrname in attrib){if(attrib.hasOwnProperty(attrname)&&attrname.indexOf("on")!==0&&!img.hasAttribute(attrname)){img.setAttribute(attrname,attrib[attrname]);}}img.className=options.className;img.alt=rawText;img.src=src;modified=true;fragment.appendChild(img);}if(!img)fragment.appendChild(createText(rawText,false));img=null;}if(modified){if(i");}return ret})}function replacer(m){return escaper[m]}function returnNull(){return null}function toSizeSquaredAsset(value){return typeof value==="number"?value+"x"+value:value}function fromCodePoint(codepoint){var code=typeof codepoint==="string"?parseInt(codepoint,16):codepoint;if(code<65536){return fromCharCode(code)}code-=65536;return fromCharCode(55296+(code>>10),56320+(code&1023))}function parse(what,how){if(!how||typeof how==="function"){how={callback:how};}return (typeof what==="string"?parseString:parseNode)(what,{callback:how.callback||defaultImageSrcGenerator,attributes:typeof how.attributes==="function"?how.attributes:returnNull,base:typeof how.base==="string"?how.base:twemoji.base,ext:how.ext||twemoji.ext,size:how.folder||toSizeSquaredAsset(how.size||twemoji.size),className:how.className||twemoji.className,onerror:how.onerror||twemoji.onerror})}function replace(text,callback){return String(text).replace(re,callback)}function test(text){re.lastIndex=0;var result=re.test(text);re.lastIndex=0;return result}function toCodePoint(unicodeSurrogates,sep){var r=[],c=0,p=0,i=0;while(i":">","'":"'",'"':"""},re=/(?:\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffc-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffb\udffd-\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffb\udffc\udffe\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffb-\udffd\udfff]|\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffb-\udffe]|\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffc-\udfff]|\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffb\udffd-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffb\udffc\udffe\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffb-\udffd\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d[\udc68\udc69]|\ud83e\udef1\ud83c\udffb\u200d\ud83e\udef2\ud83c[\udffc-\udfff]|\ud83e\udef1\ud83c\udffc\u200d\ud83e\udef2\ud83c[\udffb\udffd-\udfff]|\ud83e\udef1\ud83c\udffd\u200d\ud83e\udef2\ud83c[\udffb\udffc\udffe\udfff]|\ud83e\udef1\ud83c\udffe\u200d\ud83e\udef2\ud83c[\udffb-\udffd\udfff]|\ud83e\udef1\ud83c\udfff\u200d\ud83e\udef2\ud83c[\udffb-\udffe]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d[\udc68\udc69]|\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1|\ud83d\udc6b\ud83c[\udffb-\udfff]|\ud83d\udc6c\ud83c[\udffb-\udfff]|\ud83d\udc6d\ud83c[\udffb-\udfff]|\ud83d\udc8f\ud83c[\udffb-\udfff]|\ud83d\udc91\ud83c[\udffb-\udfff]|\ud83e\udd1d\ud83c[\udffb-\udfff]|\ud83d[\udc6b-\udc6d\udc8f\udc91]|\ud83e\udd1d)|(?:\ud83d[\udc68\udc69]|\ud83e\uddd1)(?:\ud83c[\udffb-\udfff])?\u200d(?:\u2695\ufe0f|\u2696\ufe0f|\u2708\ufe0f|\ud83c[\udf3e\udf73\udf7c\udf84\udf93\udfa4\udfa8\udfeb\udfed]|\ud83d[\udcbb\udcbc\udd27\udd2c\ude80\ude92]|\ud83e[\uddaf-\uddb3\uddbc\uddbd])|(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75]|\u26f9)((?:\ud83c[\udffb-\udfff]|\ufe0f)\u200d[\u2640\u2642]\ufe0f)|(?:\ud83c[\udfc3\udfc4\udfca]|\ud83d[\udc6e\udc70\udc71\udc73\udc77\udc81\udc82\udc86\udc87\ude45-\ude47\ude4b\ude4d\ude4e\udea3\udeb4-\udeb6]|\ud83e[\udd26\udd35\udd37-\udd39\udd3d\udd3e\uddb8\uddb9\uddcd-\uddcf\uddd4\uddd6-\udddd])(?:\ud83c[\udffb-\udfff])?\u200d[\u2640\u2642]\ufe0f|(?:\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83d\ude36\u200d\ud83c\udf2b\ufe0f|\u2764\ufe0f\u200d\ud83d\udd25|\u2764\ufe0f\u200d\ud83e\ude79|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc15\u200d\ud83e\uddba|\ud83d\udc3b\u200d\u2744\ufe0f|\ud83d\udc41\u200d\ud83d\udde8|\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc6f\u200d\u2640\ufe0f|\ud83d\udc6f\u200d\u2642\ufe0f|\ud83d\ude2e\u200d\ud83d\udca8|\ud83d\ude35\u200d\ud83d\udcab|\ud83e\udd3c\u200d\u2640\ufe0f|\ud83e\udd3c\u200d\u2642\ufe0f|\ud83e\uddde\u200d\u2640\ufe0f|\ud83e\uddde\u200d\u2642\ufe0f|\ud83e\udddf\u200d\u2640\ufe0f|\ud83e\udddf\u200d\u2642\ufe0f|\ud83d\udc08\u200d\u2b1b)|[#*0-9]\ufe0f?\u20e3|(?:[©®\u2122\u265f]\ufe0f)|(?:\ud83c[\udc04\udd70\udd71\udd7e\udd7f\ude02\ude1a\ude2f\ude37\udf21\udf24-\udf2c\udf36\udf7d\udf96\udf97\udf99-\udf9b\udf9e\udf9f\udfcd\udfce\udfd4-\udfdf\udff3\udff5\udff7]|\ud83d[\udc3f\udc41\udcfd\udd49\udd4a\udd6f\udd70\udd73\udd76-\udd79\udd87\udd8a-\udd8d\udda5\udda8\uddb1\uddb2\uddbc\uddc2-\uddc4\uddd1-\uddd3\udddc-\uddde\udde1\udde3\udde8\uddef\uddf3\uddfa\udecb\udecd-\udecf\udee0-\udee5\udee9\udef0\udef3]|[\u203c\u2049\u2139\u2194-\u2199\u21a9\u21aa\u231a\u231b\u2328\u23cf\u23ed-\u23ef\u23f1\u23f2\u23f8-\u23fa\u24c2\u25aa\u25ab\u25b6\u25c0\u25fb-\u25fe\u2600-\u2604\u260e\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262a\u262e\u262f\u2638-\u263a\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2697\u2699\u269b\u269c\u26a0\u26a1\u26a7\u26aa\u26ab\u26b0\u26b1\u26bd\u26be\u26c4\u26c5\u26c8\u26cf\u26d1\u26d3\u26d4\u26e9\u26ea\u26f0-\u26f5\u26f8\u26fa\u26fd\u2702\u2708\u2709\u270f\u2712\u2714\u2716\u271d\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u2764\u27a1\u2934\u2935\u2b05-\u2b07\u2b1b\u2b1c\u2b50\u2b55\u3030\u303d\u3297\u3299])(?:\ufe0f|(?!\ufe0e))|(?:(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75\udd90]|[\u261d\u26f7\u26f9\u270c\u270d])(?:\ufe0f|(?!\ufe0e))|(?:\ud83c[\udf85\udfc2-\udfc4\udfc7\udfca]|\ud83d[\udc42\udc43\udc46-\udc50\udc66-\udc69\udc6e\udc70-\udc78\udc7c\udc81-\udc83\udc85-\udc87\udcaa\udd7a\udd95\udd96\ude45-\ude47\ude4b-\ude4f\udea3\udeb4-\udeb6\udec0\udecc]|\ud83e[\udd0c\udd0f\udd18-\udd1c\udd1e\udd1f\udd26\udd30-\udd39\udd3d\udd3e\udd77\uddb5\uddb6\uddb8\uddb9\uddbb\uddcd-\uddcf\uddd1-\udddd\udec3-\udec5\udef0-\udef6]|[\u270a\u270b]))(?:\ud83c[\udffb-\udfff])?|(?:\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f|\ud83c\udde6\ud83c[\udde8-\uddec\uddee\uddf1\uddf2\uddf4\uddf6-\uddfa\uddfc\uddfd\uddff]|\ud83c\udde7\ud83c[\udde6\udde7\udde9-\uddef\uddf1-\uddf4\uddf6-\uddf9\uddfb\uddfc\uddfe\uddff]|\ud83c\udde8\ud83c[\udde6\udde8\udde9\uddeb-\uddee\uddf0-\uddf5\uddf7\uddfa-\uddff]|\ud83c\udde9\ud83c[\uddea\uddec\uddef\uddf0\uddf2\uddf4\uddff]|\ud83c\uddea\ud83c[\udde6\udde8\uddea\uddec\udded\uddf7-\uddfa]|\ud83c\uddeb\ud83c[\uddee-\uddf0\uddf2\uddf4\uddf7]|\ud83c\uddec\ud83c[\udde6\udde7\udde9-\uddee\uddf1-\uddf3\uddf5-\uddfa\uddfc\uddfe]|\ud83c\udded\ud83c[\uddf0\uddf2\uddf3\uddf7\uddf9\uddfa]|\ud83c\uddee\ud83c[\udde8-\uddea\uddf1-\uddf4\uddf6-\uddf9]|\ud83c\uddef\ud83c[\uddea\uddf2\uddf4\uddf5]|\ud83c\uddf0\ud83c[\uddea\uddec-\uddee\uddf2\uddf3\uddf5\uddf7\uddfc\uddfe\uddff]|\ud83c\uddf1\ud83c[\udde6-\udde8\uddee\uddf0\uddf7-\uddfb\uddfe]|\ud83c\uddf2\ud83c[\udde6\udde8-\udded\uddf0-\uddff]|\ud83c\uddf3\ud83c[\udde6\udde8\uddea-\uddec\uddee\uddf1\uddf4\uddf5\uddf7\uddfa\uddff]|\ud83c\uddf4\ud83c\uddf2|\ud83c\uddf5\ud83c[\udde6\uddea-\udded\uddf0-\uddf3\uddf7-\uddf9\uddfc\uddfe]|\ud83c\uddf6\ud83c\udde6|\ud83c\uddf7\ud83c[\uddea\uddf4\uddf8\uddfa\uddfc]|\ud83c\uddf8\ud83c[\udde6-\uddea\uddec-\uddf4\uddf7-\uddf9\uddfb\uddfd-\uddff]|\ud83c\uddf9\ud83c[\udde6\udde8\udde9\uddeb-\udded\uddef-\uddf4\uddf7\uddf9\uddfb\uddfc\uddff]|\ud83c\uddfa\ud83c[\udde6\uddec\uddf2\uddf3\uddf8\uddfe\uddff]|\ud83c\uddfb\ud83c[\udde6\udde8\uddea\uddec\uddee\uddf3\uddfa]|\ud83c\uddfc\ud83c[\uddeb\uddf8]|\ud83c\uddfd\ud83c\uddf0|\ud83c\uddfe\ud83c[\uddea\uddf9]|\ud83c\uddff\ud83c[\udde6\uddf2\uddfc]|\ud83c[\udccf\udd8e\udd91-\udd9a\udde6-\uddff\ude01\ude32-\ude36\ude38-\ude3a\ude50\ude51\udf00-\udf20\udf2d-\udf35\udf37-\udf7c\udf7e-\udf84\udf86-\udf93\udfa0-\udfc1\udfc5\udfc6\udfc8\udfc9\udfcf-\udfd3\udfe0-\udff0\udff4\udff8-\udfff]|\ud83d[\udc00-\udc3e\udc40\udc44\udc45\udc51-\udc65\udc6a\udc6f\udc79-\udc7b\udc7d-\udc80\udc84\udc88-\udc8e\udc90\udc92-\udca9\udcab-\udcfc\udcff-\udd3d\udd4b-\udd4e\udd50-\udd67\udda4\uddfb-\ude44\ude48-\ude4a\ude80-\udea2\udea4-\udeb3\udeb7-\udebf\udec1-\udec5\uded0-\uded2\uded5-\uded7\udedd-\udedf\udeeb\udeec\udef4-\udefc\udfe0-\udfeb\udff0]|\ud83e[\udd0d\udd0e\udd10-\udd17\udd20-\udd25\udd27-\udd2f\udd3a\udd3c\udd3f-\udd45\udd47-\udd76\udd78-\uddb4\uddb7\uddba\uddbc-\uddcc\uddd0\uddde-\uddff\ude70-\ude74\ude78-\ude7c\ude80-\ude86\ude90-\udeac\udeb0-\udeba\udec0-\udec2\uded0-\uded9\udee0-\udee7]|[\u23e9-\u23ec\u23f0\u23f3\u267e\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a])|\ufe0f/g,UFE0Fg=/\uFE0F/g,U200D=String.fromCharCode(8205),rescaper=/[&<>'"]/g,shouldntBeParsed=/^(?:iframe|noframes|noscript|script|select|style|textarea)$/,fromCharCode=String.fromCharCode;return twemoji;function createText(text,clean){return document.createTextNode(clean?text.replace(UFE0Fg,""):text)}function escapeHTML(s){return s.replace(rescaper,replacer)}function defaultImageSrcGenerator(icon,options){return "".concat(options.base,options.size,"/",icon,options.ext)}function grabAllTextNodes(node,allText){var childNodes=node.childNodes,length=childNodes.length,subnode,nodeType;while(length--){subnode=childNodes[length];nodeType=subnode.nodeType;if(nodeType===3){allText.push(subnode);}else if(nodeType===1&&!("ownerSVGElement"in subnode)&&!shouldntBeParsed.test(subnode.nodeName.toLowerCase())){grabAllTextNodes(subnode,allText);}}return allText}function grabTheRightIcon(rawText){return toCodePoint(rawText.indexOf(U200D)<0?rawText.replace(UFE0Fg,""):rawText)}function parseNode(node,options){var allText=grabAllTextNodes(node,[]),length=allText.length,attrib,attrname,modified,fragment,subnode,text,match,i,index,img,rawText,iconId,src;while(length--){modified=false;fragment=document.createDocumentFragment();subnode=allText[length];text=subnode.nodeValue;i=0;while(match=re.exec(text)){index=match.index;if(index!==i){fragment.appendChild(createText(text.slice(i,index),true));}rawText=match[0];iconId=grabTheRightIcon(rawText);i=index+rawText.length;src=options.callback(iconId,options);if(iconId&&src){img=new Image;img.onerror=options.onerror;img.setAttribute("draggable","false");attrib=options.attributes(rawText,iconId);for(attrname in attrib){if(attrib.hasOwnProperty(attrname)&&attrname.indexOf("on")!==0&&!img.hasAttribute(attrname)){img.setAttribute(attrname,attrib[attrname]);}}img.className=options.className;img.alt=rawText;img.src=src;modified=true;fragment.appendChild(img);}if(!img)fragment.appendChild(createText(rawText,false));img=null;}if(modified){if(i");}return ret})}function replacer(m){return escaper[m]}function returnNull(){return null}function toSizeSquaredAsset(value){return typeof value==="number"?value+"x"+value:value}function fromCodePoint(codepoint){var code=typeof codepoint==="string"?parseInt(codepoint,16):codepoint;if(code<65536){return fromCharCode(code)}code-=65536;return fromCharCode(55296+(code>>10),56320+(code&1023))}function parse(what,how){if(!how||typeof how==="function"){how={callback:how};}return (typeof what==="string"?parseString:parseNode)(what,{callback:how.callback||defaultImageSrcGenerator,attributes:typeof how.attributes==="function"?how.attributes:returnNull,base:typeof how.base==="string"?how.base:twemoji.base,ext:how.ext||twemoji.ext,size:how.folder||toSizeSquaredAsset(how.size||twemoji.size),className:how.className||twemoji.className,onerror:how.onerror||twemoji.onerror})}function replace(text,callback){return String(text).replace(re,callback)}function test(text){re.lastIndex=0;var result=re.test(text);re.lastIndex=0;return result}function toCodePoint(unicodeSurrogates,sep){var r=[],c=0,p=0,i=0;while(i { - const data = Object.entries(plugin.getData()); - const node = document.querySelector('.view-header-icon'); - if (!node || !node.hasAttribute('draggable')) { - return; - } - const titleContainer = node.nextSibling; - if (!titleContainer) { - return; - } - const title = titleContainer.querySelector('.view-header-title'); - if (!title || title.innerHTML.length === 0) { - return; - } - const foundData = data.find(([dataPath]) => dataPath === file.path); - if (!foundData) { - const defaultElement = ''; - node.innerHTML = defaultElement; - return; - } - const [_, iconName] = foundData; - if (typeof iconName !== 'string') { - return; - } - const iconNextIdentifier = nextIdentifier(iconName); - node.innerHTML = getSvgFromLoadedIcon(iconName.substring(0, iconNextIdentifier), iconName.substring(iconNextIdentifier)); -}; /** * This function refreshes the icon style. * For that, it will manipulate the `innerHTML` of the icon and will customize the style. @@ -942,32 +2771,9 @@ class IconsPickerModal extends obsidian.FuzzySuggestModal { this.limit = 150; const pluginRecentltyUsedItems = [...plugin.getSettings().recentlyUsedIcons]; this.recentlyUsedItems = pluginRecentltyUsedItems.reverse().filter((iconName) => { - return doesIconExists(iconName); + return doesIconExists(iconName) || isEmoji(iconName); }); this.resultContainerEl.classList.add('obsidian-icon-folder-modal'); - this.oldEnterFunc = this.scope.keys.find((e) => e.key === 'Enter').func; - } - onNoSuggestion() { - super.onNoSuggestion(); - const inputVal = this.inputEl.value; - if (isEmoji(inputVal)) { - this.resultContainerEl.empty(); - const suggestionItem = this.resultContainerEl.createDiv(); - suggestionItem.className = 'suggestion-item suggestion-item__center is-selected'; - suggestionItem.textContent = 'Use twemoji Emoji'; - suggestionItem.innerHTML += `
${twemoji.parse(inputVal)}
`; - this.setEnterScope(() => { - this.selectTwemoji(inputVal); - }); - suggestionItem.addEventListener('click', () => { - this.selectTwemoji(inputVal); - }); - this.resultContainerEl.appendChild(suggestionItem); - } - } - selectTwemoji(inputVal) { - this.onChooseItem(inputVal); - this.close(); } onOpen() { super.onOpen(); @@ -984,6 +2790,15 @@ class IconsPickerModal extends obsidian.FuzzySuggestModal { if (this.inputEl.value.length === 0) { this.renderIndex = 0; this.recentlyUsedItems.forEach((iconName) => { + // Transform unicodes to twemojis. + if (isEmoji(iconName)) { + iconKeys.push({ + name: emojiShortName[iconName], + prefix: 'Twemoji', + displayName: iconName, + }); + return; + } const nextLetter = nextIdentifier(iconName); iconKeys.push({ name: iconName.substring(nextLetter), @@ -999,6 +2814,18 @@ class IconsPickerModal extends obsidian.FuzzySuggestModal { displayName: icon.prefix + icon.name, }); } + Object.entries(emojiShortName).forEach(([unicode, shortName]) => { + iconKeys.push({ + name: shortName, + prefix: 'Twemoji', + displayName: unicode, + }); + iconKeys.push({ + name: unicode, + prefix: 'Twemoji', + displayName: unicode, + }); + }); return iconKeys; } onChooseItem(item) { @@ -1012,11 +2839,11 @@ class IconsPickerModal extends obsidian.FuzzySuggestModal { } renderSuggestion(item, el) { super.renderSuggestion(item, el); - if (getAllIconPacks().length === 0) { - this.resultContainerEl.style.display = 'block'; - this.resultContainerEl.innerHTML = '
You need to create an icon pack.
'; - return; - } + // if (getAllIconPacks().length === 0) { + // this.resultContainerEl.style.display = 'block'; + // this.resultContainerEl.innerHTML = '
You need to create an icon pack.
'; + // return; + // } // Render subheadlines for modal. if (this.recentlyUsedItems.length !== 0 && this.inputEl.value.length === 0) { if (this.renderIndex === 0) { @@ -1025,34 +2852,23 @@ class IconsPickerModal extends obsidian.FuzzySuggestModal { subheadline.innerText = 'Recently used Icons:'; this.resultContainerEl.prepend(subheadline); } - else if (this.renderIndex === this.recentlyUsedItems.length) { - const subheadline = this.containerEl.createDiv(); + else if (this.renderIndex === this.recentlyUsedItems.length - 1) { + const subheadline = this.resultContainerEl.createDiv(); subheadline.classList.add('obsidian-icon-folder-subheadline'); subheadline.innerText = 'All Icons:'; - subheadline.insertAfter(this.lastRenderedRecentlyIcon); + this.resultContainerEl.append(subheadline); } } - if (this.getEnterScope() !== this.oldEnterFunc) { - this.setEnterScope(this.oldEnterFunc); - } if (item.item.name !== 'default') { - const possibleEmoji = el.innerHTML.trim().replace(/\(|\)/gi, ''); - if (isEmoji(possibleEmoji)) { - el.innerHTML = `
Twemoji
${twemoji.parse(possibleEmoji)}
`; + if (item.item.prefix === 'Twemoji') { + el.innerHTML = `
${el.innerHTML}
${twemoji.parse(item.item.displayName)}
`; } else { el.innerHTML = `
${el.innerHTML}
${getSvgFromLoadedIcon(item.item.prefix, item.item.name)}
`; } } - this.lastRenderedRecentlyIcon = el; this.renderIndex++; } - setEnterScope(func) { - this.scope.keys.find((e) => e.key === 'Enter').func = func; - } - getEnterScope() { - return this.scope.keys.find((e) => e.key === 'Enter').func; - } } const DEFAULT_SETTINGS = { @@ -1274,37 +3090,6 @@ class CustomIconPackSetting extends IconFolderSetting { } } -class ColorPickerComponent extends obsidian.ValueComponent { - constructor(containerEl) { - super(); - this.value = '#000000'; - this.containerEl = containerEl; - this.inputEl = containerEl.createEl('input'); - this.inputEl.type = 'color'; - this.inputEl.ariaLabel = 'Click to change the color'; - this.containerEl.classList.add('obsidian-icon-folder-setting'); - } - onChange(callback) { - this.inputEl.addEventListener('input', () => { - this.setValue(this.inputEl.value); - callback(this.getValue()); - }); - return this; - } - getValue() { - return this.value; - } - setValue(value) { - this.value = value; - this.inputEl.value = value; - return this; - } - build() { - this.containerEl.appendChild(this.inputEl); - return this; - } -} - class CustomIconRuleSetting extends IconFolderSetting { constructor(plugin, containerEl, app, refreshDisplay) { super(plugin, containerEl); @@ -1316,12 +3101,20 @@ class CustomIconRuleSetting extends IconFolderSetting { .setName('Add icon rule') .setDesc('Will add the icon based on the specific string.') .addText((text) => { + text.onChange((value) => { + this.chooseIconBtn.setDisabled(value.length === 0); + this.chooseIconBtn.buttonEl.style.cursor = value.length === 0 ? 'not-allowed' : 'default'; + this.chooseIconBtn.buttonEl.style.opacity = value.length === 0 ? '50%' : '100%'; + }); text.setPlaceholder('regex or simple string'); this.textComponent = text; }) .addButton((btn) => { + btn.setDisabled(true); btn.setButtonText('Choose icon'); btn.buttonEl.style.marginLeft = '12px'; + btn.buttonEl.style.cursor = 'not-allowed'; + btn.buttonEl.style.opacity = '50%'; btn.onClick(() => __awaiter(this, void 0, void 0, function* () { if (this.textComponent.getValue().length === 0) { return; @@ -1345,11 +3138,12 @@ class CustomIconRuleSetting extends IconFolderSetting { }); modal.open(); })); + this.chooseIconBtn = btn; }); this.plugin.getSettings().rules.forEach((rule) => { var _a; const settingRuleEl = new obsidian.Setting(this.containerEl).setName(rule.rule).setDesc(`Icon: ${rule.icon}`); - const colorPicker = new ColorPickerComponent(settingRuleEl.controlEl) + const colorPicker = new obsidian.ColorComponent(settingRuleEl.controlEl) .setValue((_a = rule.color) !== null && _a !== void 0 ? _a : '#000000') .onChange((value) => __awaiter(this, void 0, void 0, function* () { rule.color = value; @@ -1425,7 +3219,7 @@ class ExtraMarginSetting extends IconFolderSetting { left: 'Left', }); const extraMarginSlider = new obsidian.SliderComponent(extraMarginSetting.controlEl) - .setLimits(0, 24, 1) + .setLimits(-24, 24, 1) .setDynamicTooltip() .setValue((_b = (_a = this.plugin.getSettings().extraMargin) === null || _a === void 0 ? void 0 : _a.top) !== null && _b !== void 0 ? _b : 2) .onChange((val) => __awaiter(this, void 0, void 0, function* () { @@ -1460,7 +3254,7 @@ class IconColorSetting extends IconFolderSetting { const colorCustomization = new obsidian.Setting(this.containerEl) .setName('Icon color') .setDesc('Change the color of the displayed icons.'); - const colorPicker = new ColorPickerComponent(colorCustomization.controlEl) + const colorPicker = new obsidian.ColorComponent(colorCustomization.controlEl) .setValue((_a = this.plugin.getSettings().iconColor) !== null && _a !== void 0 ? _a : '#000000') .onChange((value) => __awaiter(this, void 0, void 0, function* () { this.plugin.getSettings().iconColor = value; @@ -1478,7 +3272,7 @@ class IconColorSetting extends IconFolderSetting { refreshIconStyle(this.plugin); })); }); - colorCustomization.components.push(colorPicker.build()); + colorCustomization.components.push(colorPicker); } } @@ -1585,7 +3379,7 @@ function commonjsRequire (path) { /*! -JSZip v3.10.0 - A JavaScript class for generating and reading zip files +JSZip v3.10.1 - A JavaScript class for generating and reading zip files (c) 2009-2016 Stuart Knightley @@ -1596,7 +3390,7 @@ https://github.com/nodeca/pako/blob/main/LICENSE */ var jszip_min = createCommonjsModule(function (module, exports) { -!function(e){module.exports=e();}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t="function"==typeof commonjsRequire&&commonjsRequire;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error("Cannot find module '"+r+"'");throw n.code="MODULE_NOT_FOUND",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h);}return o[r].exports}for(var l="function"==typeof commonjsRequire&&commonjsRequire,e=0;e>2,s=(3&t)<<4|r>>4,a=1>6:64,o=2>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l};},{"./support":30,"./utils":32}],2:[function(e,t,r){var n=e("./external"),i=e("./stream/DataWorker"),s=e("./stream/Crc32Probe"),a=e("./stream/DataLengthProbe");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i;}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),t=this;return e.on("end",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a("uncompressedSize")).pipe(t.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression",t)},t.exports=o;},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,r){var n=e("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(e){return new n("STORE compression")},uncompressWorker:function(){return new n("STORE decompression")}},r.DEFLATE=e("./flate");},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,r){var n=e("./utils");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e;}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return -1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t.charCodeAt(a))];return -1^e}(0|t,e,e.length,0):0};},{"./utils":32}],5:[function(e,t,r){r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null;},{}],6:[function(e,t,r){var n=null;n="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:n};},{lie:37}],7:[function(e,t,r){var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=e("pako"),s=e("./utils"),a=e("./stream/GenericWorker"),o=n?"uint8array":"array";function h(e,t){a.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={};}r.magic="\b\0",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1);},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0);},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null;},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta});};},r.compressWorker=function(e){return new h("Deflate",e)},r.uncompressWorker=function(){return new h("Inflate",{})};},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,r){function A(e,t){var r,n="";for(r=0;r>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo("string",s(h.name)),c=I.transformTo("string",O.utf8encode(h.name)),d=h.comment,p=I.transformTo("string",s(d)),m=I.transformTo("string",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b="",v="",y="",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),"UNIX"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+="up"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+="uc"+A(y.length,2)+y);var E="";return E+="\n\0",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+"\0\0\0\0"+A(z,4)+A(n,4)+f+b+p}}var I=e("../utils"),i=e("../stream/GenericWorker"),O=e("../utf8"),B=e("../crc32"),R=e("../signature");function s(e,t,r,n){i.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[];}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}));},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}});}else this.accumulate=!0;},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null;},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo("string",this.readData(e))},readData:function(e){},lastIndexOfSignature:function(e){},readAndCheckSignature:function(e){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i;},{"../utils":32}],19:[function(e,t,r){var n=e("./Uint8ArrayReader");function i(e){n.call(this,e);}e("../utils").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,r){var n=e("./DataReader");function i(e){n.call(this,e);}e("../utils").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{"../utils":32,"./DataReader":18}],21:[function(e,t,r){var n=e("./ArrayReader");function i(e){n.call(this,e);}e("../utils").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,r){var n=e("../utils"),i=e("../support"),s=e("./ArrayReader"),a=e("./StringReader"),o=e("./NodeBufferReader"),h=e("./Uint8ArrayReader");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),"string"!==t||i.uint8array?"nodebuffer"===t?new o(e):i.uint8array?new h(n.transformTo("uint8array",e)):new s(n.transformTo("array",e)):new a(e)};},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,r){r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b";},{}],24:[function(e,t,r){var n=e("./GenericWorker"),i=e("../utils");function s(e){n.call(this,"ConvertWorker to "+e),this.destType=e;}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta});},t.exports=s;},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,r){var n=e("./GenericWorker"),i=e("../crc32");function s(){n.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0);}e("../utils").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e);},t.exports=s;},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,r){var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0);}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length;}i.prototype.processChunk.call(this,e);},t.exports=s;},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,r){var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat();},function(e){t.error(e);});}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null;},s.prototype.resume=function(){return !!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0));},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return !1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":e=this.data.subarray(this.index,t);break;case"array":case"nodebuffer":e=this.data.slice(this.index,t);}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s;},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,r){function n(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null;}n.prototype={push:function(e){this.emit("data",e);},end:function(){if(this.isFinished)return !1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0;}catch(e){this.emit("error",e);}return !0},error:function(e){return !this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[];},emit:function(e,t){if(this._listeners[e])for(var r=0;r "+e:e}},t.exports=n;},{}],29:[function(e,t,r){var h=e("../utils"),i=e("./ConvertWorker"),s=e("./GenericWorker"),u=e("../base64"),n=e("../support"),a=e("../external"),o=null;if(n.nodestream)try{o=e("../nodejs/NodejsStreamOutputAdapter");}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on("data",function(e,t){n.push(e),o&&o(t);}).on("error",function(e){n=[],r(e);}).on("end",function(){try{var e=function(e,t,r){switch(e){case"blob":return h.newBlob(h.transformTo("arraybuffer",t),r);case"base64":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t>10&1023,a[r++]=56320|1023&n);}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?"uint8array":"array",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length);}else t=this.leftOver.concat(t);this.leftOver=null;}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta});},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null);},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta});},s.Utf8EncodeWorker=l;},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,a){var o=e("./support"),h=e("./base64"),r=e("./nodejsUtils"),u=e("./external");function n(e){return e}function l(e,t){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0);},parseZIP64ExtraField:function(e){if(this.extraFields[1]){var t=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=t.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=t.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=t.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=t.readInt(4));}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r>10&1023,o[n++]=56320|1023&i);}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t};},{"./common":41}],43:[function(e,t,r){t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:e>>>1;t[r]=e;}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return -1^e};},{}],46:[function(e,t,r){var h,c=e("../utils/common"),u=e("./trees"),d=e("./adler32"),p=e("./crc32"),n=e("./messages"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return (e<<1)-(4e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0));}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm);}function U(e,t){e.pending_buf[e.pending++]=t;}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t;}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f;}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else {var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1;}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73);}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91);}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103);}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0e.lookahead&&(e.match_length=e.lookahead);}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else {if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<>>=y,p-=y),p<15&&(d+=z[n++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<>>=y,p-=y,(y=s-a)>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0;}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg="incorrect header check",r.mode=30;break}if(8!=(15&u)){e.msg="unknown compression method",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0;}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30;}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3;}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=_,l-=_,r.lens[r.have++]=b;else {if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2;}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3;}else {for(z=_+7;l>>=_)),u>>>=7,l-=7;}if(r.have+d>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;d--;)r.lens[r.have++]=k;}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v;}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra;}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v;}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg="invalid distance code",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra;}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window;}else m=i,p=a-r.offset,d=r.length;for(hd?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]];}if(k>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255;}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o));}}function W(e){var t;for(t=0;t>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u>=7;n>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8);}(e);};},{"../utils/common":41}],53:[function(e,t,r){t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0;};},{}],54:[function(e,t,r){(function(e){!function(r,n){if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i="[object process]"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e);});}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1;},r.postMessage("","*"),r.onmessage=t,e}}()?(a="setImmediate$"+Math.random()+"$",r.addEventListener?r.addEventListener("message",d,!1):r.attachEvent("onmessage",d),function(e){r.postMessage(a+e,"*");}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data);},function(e){t.port2.postMessage(e);}):l&&"onreadystatechange"in l.createElement("script")?(s=l.documentElement,function(e){var t=l.createElement("script");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null;},s.appendChild(t);}):function(e){setTimeout(c,0,e);},e.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r>2,s=(3&t)<<4|r>>4,a=1>6:64,o=2>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l};},{"./support":30,"./utils":32}],2:[function(e,t,r){var n=e("./external"),i=e("./stream/DataWorker"),s=e("./stream/Crc32Probe"),a=e("./stream/DataLengthProbe");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i;}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),t=this;return e.on("end",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a("uncompressedSize")).pipe(t.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression",t)},t.exports=o;},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,r){var n=e("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new n("STORE compression")},uncompressWorker:function(){return new n("STORE decompression")}},r.DEFLATE=e("./flate");},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,r){var n=e("./utils");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e;}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return -1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t.charCodeAt(a))];return -1^e}(0|t,e,e.length,0):0};},{"./utils":32}],5:[function(e,t,r){r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null;},{}],6:[function(e,t,r){var n=null;n="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:n};},{lie:37}],7:[function(e,t,r){var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=e("pako"),s=e("./utils"),a=e("./stream/GenericWorker"),o=n?"uint8array":"array";function h(e,t){a.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={};}r.magic="\b\0",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1);},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0);},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null;},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta});};},r.compressWorker=function(e){return new h("Deflate",e)},r.uncompressWorker=function(){return new h("Inflate",{})};},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,r){function A(e,t){var r,n="";for(r=0;r>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo("string",s(h.name)),c=I.transformTo("string",O.utf8encode(h.name)),d=h.comment,p=I.transformTo("string",s(d)),m=I.transformTo("string",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b="",v="",y="",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),"UNIX"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+="up"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+="uc"+A(y.length,2)+y);var E="";return E+="\n\0",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+"\0\0\0\0"+A(z,4)+A(n,4)+f+b+p}}var I=e("../utils"),i=e("../stream/GenericWorker"),O=e("../utf8"),B=e("../crc32"),R=e("../signature");function s(e,t,r,n){i.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[];}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}));},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}});}else this.accumulate=!0;},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null;},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i;},{"../utils":32}],19:[function(e,t,r){var n=e("./Uint8ArrayReader");function i(e){n.call(this,e);}e("../utils").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,r){var n=e("./DataReader");function i(e){n.call(this,e);}e("../utils").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{"../utils":32,"./DataReader":18}],21:[function(e,t,r){var n=e("./ArrayReader");function i(e){n.call(this,e);}e("../utils").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,r){var n=e("../utils"),i=e("../support"),s=e("./ArrayReader"),a=e("./StringReader"),o=e("./NodeBufferReader"),h=e("./Uint8ArrayReader");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),"string"!==t||i.uint8array?"nodebuffer"===t?new o(e):i.uint8array?new h(n.transformTo("uint8array",e)):new s(n.transformTo("array",e)):new a(e)};},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,r){r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b";},{}],24:[function(e,t,r){var n=e("./GenericWorker"),i=e("../utils");function s(e){n.call(this,"ConvertWorker to "+e),this.destType=e;}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta});},t.exports=s;},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,r){var n=e("./GenericWorker"),i=e("../crc32");function s(){n.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0);}e("../utils").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e);},t.exports=s;},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,r){var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0);}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length;}i.prototype.processChunk.call(this,e);},t.exports=s;},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,r){var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat();},function(e){t.error(e);});}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null;},s.prototype.resume=function(){return !!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0));},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return !1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":e=this.data.subarray(this.index,t);break;case"array":case"nodebuffer":e=this.data.slice(this.index,t);}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s;},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,r){function n(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null;}n.prototype={push:function(e){this.emit("data",e);},end:function(){if(this.isFinished)return !1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0;}catch(e){this.emit("error",e);}return !0},error:function(e){return !this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[];},emit:function(e,t){if(this._listeners[e])for(var r=0;r "+e:e}},t.exports=n;},{}],29:[function(e,t,r){var h=e("../utils"),i=e("./ConvertWorker"),s=e("./GenericWorker"),u=e("../base64"),n=e("../support"),a=e("../external"),o=null;if(n.nodestream)try{o=e("../nodejs/NodejsStreamOutputAdapter");}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on("data",function(e,t){n.push(e),o&&o(t);}).on("error",function(e){n=[],r(e);}).on("end",function(){try{var e=function(e,t,r){switch(e){case"blob":return h.newBlob(h.transformTo("arraybuffer",t),r);case"base64":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t>10&1023,a[r++]=56320|1023&n);}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?"uint8array":"array",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length);}else t=this.leftOver.concat(t);this.leftOver=null;}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta});},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null);},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta});},s.Utf8EncodeWorker=l;},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,a){var o=e("./support"),h=e("./base64"),r=e("./nodejsUtils"),u=e("./external");function n(e){return e}function l(e,t){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0);},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4));}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r>10&1023,o[n++]=56320|1023&i);}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t};},{"./common":41}],43:[function(e,t,r){t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:e>>>1;t[r]=e;}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return -1^e};},{}],46:[function(e,t,r){var h,c=e("../utils/common"),u=e("./trees"),d=e("./adler32"),p=e("./crc32"),n=e("./messages"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return (e<<1)-(4e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0));}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm);}function U(e,t){e.pending_buf[e.pending++]=t;}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t;}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f;}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else {var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1;}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73);}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91);}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103);}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0e.lookahead&&(e.match_length=e.lookahead);}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else {if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<>>=y,p-=y),p<15&&(d+=z[n++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<>>=y,p-=y,(y=s-a)>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0;}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg="incorrect header check",r.mode=30;break}if(8!=(15&u)){e.msg="unknown compression method",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0;}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30;}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3;}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=_,l-=_,r.lens[r.have++]=b;else {if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2;}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3;}else {for(z=_+7;l>>=_)),u>>>=7,l-=7;}if(r.have+d>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;d--;)r.lens[r.have++]=k;}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v;}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra;}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v;}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg="invalid distance code",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra;}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window;}else m=i,p=a-r.offset,d=r.length;for(hd?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]];}if(k>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255;}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o));}}function W(e){var t;for(t=0;t>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u>=7;n>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8);}(e);};},{"../utils/common":41}],53:[function(e,t,r){t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0;};},{}],54:[function(e,t,r){(function(e){!function(r,n){if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i="[object process]"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e);});}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1;},r.postMessage("","*"),r.onmessage=t,e}}()?(a="setImmediate$"+Math.random()+"$",r.addEventListener?r.addEventListener("message",d,!1):r.attachEvent("onmessage",d),function(e){r.postMessage(a+e,"*");}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data);},function(e){t.port2.postMessage(e);}):l&&"onreadystatechange"in l.createElement("script")?(s=l.documentElement,function(e){var t=l.createElement("script");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null;},s.appendChild(t);}):function(e){setTimeout(c,0,e);},e.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r __awaiter(void 0, void 0, void 0, function* () { @@ -2011,12 +3805,6 @@ class IconFolderPlugin extends obsidian.Plugin { addIconsToDOM(this, data, this.registeredFileExplorers, () => { //const searchLeaveDom = this.getSearchLeave().dom; //searchLeaveDom.changed = () => this.addIconsToSearch(); - // Add icon to active file - addIconToDragToRearrange(this, this.app.workspace.getActiveFile()); - // Register event for manipulating view-header of drag to rearange icon. - this.registerEvent(this.app.workspace.on('file-open', (file) => { - addIconToDragToRearrange(this, file); - })); // Register rename event for adding icons with custom rules to the DOM. this.registerEvent(this.app.vault.on('rename', (file, oldPath) => { this.getSettings().rules.forEach((rule) => __awaiter(this, void 0, void 0, function* () { @@ -2167,4 +3955,4 @@ class IconFolderPlugin extends obsidian.Plugin { } module.exports = IconFolderPlugin; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsInNyYy9NZXRhRGF0YS50cyIsInNyYy9pY29uUGFja01hbmFnZXIudHMiLCJub2RlX21vZHVsZXMvdHdlbW9qaS9kaXN0L3R3ZW1vamkuZXNtLmpzIiwic3JjL3V0aWwudHMiLCJzcmMvaWNvbnNQaWNrZXJNb2RhbC50cyIsInNyYy9zZXR0aW5ncy50cyIsInNyYy9taWdyYXRpb24udHMiLCJzcmMvc2V0dGluZ3NUYWIvaWNvbkZvbGRlclNldHRpbmcudHMiLCJzcmMvc2V0dGluZ3NUYWIvY3VzdG9tSWNvblBhY2sudHMiLCJzcmMvY29sb3JQaWNrZXJDb21wb25lbnQudHMiLCJzcmMvc2V0dGluZ3NUYWIvY3VzdG9tSWNvblJ1bGUudHMiLCJzcmMvc2V0dGluZ3NUYWIvZXh0cmFNYXJnaW4udHMiLCJzcmMvc2V0dGluZ3NUYWIvaWNvbkNvbG9yLnRzIiwic3JjL3NldHRpbmdzVGFiL2ljb25Gb250U2l6ZS50cyIsInNyYy9zZXR0aW5nc1RhYi9pY29uUGFja3NQYXRoLnRzIiwic3JjL2ljb25QYWNrcy50cyIsIm5vZGVfbW9kdWxlcy9qc3ppcC9kaXN0L2pzemlwLm1pbi5qcyIsInNyYy96aXBVdGlsLnRzIiwic3JjL2ljb25QYWNrQnJvd3Nlck1vZGFsLnRzIiwic3JjL3NldHRpbmdzVGFiL3ByZWRlZmluZWRJY29uUGFja3MudHMiLCJzcmMvc2V0dGluZ3NUYWIvcmVjZW50bHlVc2VkSWNvbnMudHMiLCJzcmMvc2V0dGluZ3NUYWIvaW5kZXgudHMiLCJub2RlX21vZHVsZXMvbW9ua2V5LWFyb3VuZC9tanMvaW5kZXguanMiLCJzcmMvQHR5cGVzL2ludGVybmFsUGx1Z2luSW5qZWN0b3IudHMiLCJzcmMvaW50ZXJuYWxQbHVnaW5zL3N0YXJyZWQudHMiLCJzcmMvbWFpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6bnVsbCwibmFtZXMiOlsiTm90aWNlIiwiaWNvblBhY2tzIiwiRnV6enlTdWdnZXN0TW9kYWwiLCJTZXR0aW5nIiwiVmFsdWVDb21wb25lbnQiLCJEcm9wZG93bkNvbXBvbmVudCIsIlNsaWRlckNvbXBvbmVudCIsInJlcXVpcmUiLCJnbG9iYWwiLCJyZXF1ZXN0VXJsIiwiSlNaaXAiLCJQbHVnaW5TZXR0aW5nVGFiIiwiUGx1Z2luIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdURBO0FBQ08sU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFO0FBQzdELElBQUksU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxLQUFLLFlBQVksQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQ2hILElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLEVBQUUsVUFBVSxPQUFPLEVBQUUsTUFBTSxFQUFFO0FBQy9ELFFBQVEsU0FBUyxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUNuRyxRQUFRLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUN0RyxRQUFR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QVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMscXZZQUFxdlksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsNkRBQTZELENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxPQUFPLENBQUMsU0FBUyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sUUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLHdCQUF3QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLE1BQU0sRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDLEtBQUssR0FBRyxRQUFRLEdBQUcsQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUMsU0FBUyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLHNCQUFzQixFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxRQUFRLElBQUksTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLFFBQVEsSUFBSSxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsVUFBVSxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsU0FBUyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLE9BQU8sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxTQUFTLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxHQUFHLEdBQUcsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBQyxDQUFDLE9BQU0sQ0FBQyxPQUFPLElBQUksR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxNQUFNLENBQUMsU0FBUyxXQUFXLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFD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LFVBQVUsRUFBRSxPQUFPTyxlQUFPLEVBQUVBLGVBQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPQSxlQUFPLEVBQUVBLGVBQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtRUFBbUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsMEJBQTBCLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLE9BQU8sVUFBVSxFQUFFLFdBQVcsRUFBRSxPQUFPLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsc0NBQXNDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnR0FBZ0csQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0RUFBNEUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0RUFBNEUsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsK0JBQStCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLGNBQWMsR0FBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUNBQXFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksWUFBWSxDQUFDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtDQUFrQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxxQ0FBcUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLE9BQU8sV0FBVyxFQUFFLFdBQVcsRUFBRSxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEtBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxTQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsWUFBWSxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxZQUFZLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyw0RUFBNEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsMEJBQTBCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGlDQUFpQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsR0FBRSxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUs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QixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLDRCQUE0QixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9C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LEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsNEVBQTRFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsRUFBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUUsRUFBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBT0MsY0FBTSxDQUFDQSxjQUFNLENBQUMsV0FBVyxFQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDLDZCQUE2QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFHLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxPQUFPLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTyxXQUFXLEVBQUUsV0FBVyxFQUFFLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFlBQVksR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMscUNBQW9DLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxxQ0FBb0MsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLGNBQWMsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElB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 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsInNyYy9NZXRhRGF0YS50cyIsInNyYy9pY29uUGFja01hbmFnZXIudHMiLCJub2RlX21vZHVsZXMvdHdlbW9qaS9kaXN0L3R3ZW1vamkuZXNtLmpzIiwic3JjL2Vtb2ppLnRzIiwic3JjL3V0aWwudHMiLCJzcmMvaWNvbnNQaWNrZXJNb2RhbC50cyIsInNyYy9zZXR0aW5ncy50cyIsInNyYy9taWdyYXRpb24udHMiLCJzcmMvc2V0dGluZ3NUYWIvaWNvbkZvbGRlclNldHRpbmcudHMiLCJzcmMvc2V0dGluZ3NUYWIvY3VzdG9tSWNvblBhY2sudHMiLCJzcmMvc2V0dGluZ3NUYWIvY3VzdG9tSWNvblJ1bGUudHMiLCJzcmMvc2V0dGluZ3NUYWIvZXh0cmFNYXJnaW4udHMiLCJzcmMvc2V0dGluZ3NUYWIvaWNvbkNvbG9yLnRzIiwic3JjL3NldHRpbmdzVGFiL2ljb25Gb250U2l6ZS50cyIsInNyYy9zZXR0aW5nc1RhYi9pY29uUGFja3NQYXRoLnRzIiwic3JjL2ljb25QYWNrcy50cyIsIm5vZGVfbW9kdWxlcy9qc3ppcC9kaXN0L2pzemlwLm1pbi5qcyIsInNyYy96aXBVdGlsLnRzIiwic3JjL2ljb25QYWNrQnJvd3Nlck1vZGFsLnRzIiwic3JjL3NldHRpbmdzVGFiL3ByZWRlZmluZWRJY29uUGFja3MudHMiLCJzcmMvc2V0dGluZ3NUYWIvcmVjZW50bHlVc2VkSWNvbnMudHMiLCJzcmMvc2V0dGluZ3NUYWIvaW5kZXgudHMiLCJub2RlX21vZHVsZXMvbW9ua2V5LWFyb3VuZC9tanMvaW5kZXguanMiLCJzcmMvQHR5cGVzL2ludGVybmFsUGx1Z2luSW5qZWN0b3IudHMiLCJzcmMvaW50ZXJuYWxQbHVnaW5zL3N0YXJyZWQudHMiLCJzcmMvbWFpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6bnVsbCwibmFtZXMiOlsiTm90aWNlIiwiaWNvblBhY2tzIiwiRnV6enlTdWdnZXN0TW9kYWwiLCJlbW9qaSIsIlNldHRpbmciLCJDb2xvckNvbXBvbmVudCIsIkRyb3Bkb3duQ29tcG9uZW50IiwiU2xpZGVyQ29tcG9uZW50IiwicmVxdWlyZSIsImdsb2JhbCIsInJlcXVlc3RVcmwiLCJKU1ppcCIsIlBsdWdpblNldHRpbmdUYWIiLCJQbHVnaW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF1REE7QUFDTyxTQUFTLFNBQVMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUU7QUFDN0QsSUFBSSxTQUFTLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEtBQUssWUFBWSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLFVBQVUsT0FBTyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7QUFDaEgsSUFBSSxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxVQUFVLE9BQU8sRUFBRSxNQUFNLEVBQUU7QUFDL0QsUUFBUSxTQUFTLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0FBQ25HLFFBQVEsU0FBUyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0FBQ3RHLFFBQVEsU0FBUyxJ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QU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sTUFBTSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsS0FBSyxHQUFHLFFBQVEsR0FBRyxDQUFDLEVBQUUsRUFBRSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxTQUFTLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLFFBQVEsSUFBSSxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsU0FBUyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLE9BQU8sQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksUUFBUSxJQUFJLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxVQUFVLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxTQUFTLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sT0FBTyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLFNBQVMsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLEdBQUcsR0FBRyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFDLENBQUMsT0FBTSxDQUFDLE9BQU8sSUFBSSxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxF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LEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLE9BQU9BLGVBQU8sRUFBRUEsZUFBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1FQUFtRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxPQUFPLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTyxXQUFXLEVBQUUsV0FBVyxFQUFFLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLHNDQUFzQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0dBQWdHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsNEVBQTRFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0RUFBNEUsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFFLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFFBQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsY0FBYyxHQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQ0FBcUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxZQUFZLENBQUMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksTUFBTSxDQUFDLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsa0NBQWtDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLHFDQUFxQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxXQUFXLEVBQUUsV0FBVyxFQUFFLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLE9BQU8sVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsS0FBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFNBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxZQUFZLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFlBQVksV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLG9DQUFvQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLDRFQUE0RSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsaUNBQWlDLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixHQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMs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QWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvSUFBb0ksQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsNEJBQTRCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxZQUFZLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0RUFBNEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxFQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRSxFQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPQyxjQUFNLENBQUNBLGNBQU0sQ0FBQyxXQUFXLEVBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUcsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLE9BQU8sVUFBVSxFQUFFLFdBQVcsRUFBRSxPQUFPLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxNQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsWUFBWSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxxQ0FBb0MsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsc0NBQXNDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBRyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLHFDQUFvQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksY0FBYyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU9BLGNBQU0sQ0FBQ0EsY0FBTSxDQUFDLFdBQVcsRUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7OztBQ1R0OTlGLE1BQU0sZUFBZSxHQUFHLENBQU8sR0FBVyxLQUFJLFNBQUEsQ0FBQSxLQUFBLENBQUEsRUFBQSxLQUFBLENBQUEsRUFBQSxLQUFBLENBQUEsRUFBQSxhQUFBO0lBQ25ELE1BQU0sT0FBTyxHQUFHLE1BQU1DLG1CQUFVLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQzFDLElBQUEsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztBQUNsQyxJQUFBLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFBLENBQUM7QUFFSyxNQUFNLG9CQUFvQixHQUFHLENBQU8sSUFBdUIsS0FBSSxTQUFBLENBQUEsS0FBQSxDQUFBLEVBQUEsS0FBQSxDQUFBLEVBQUEsS0FBQSxDQUFBLEVBQUEsYUFBQTtJQUNwRSxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDMUMsSUFBQSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM1QyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDeEMsQ0FBQyxDQUFBLENBQUM7QUFFSyxNQUFNLFdBQVcsR0FBRyxDQUFPLEtBQWtCLEVBQUUsU0FBQSxHQUFvQixFQUFFLEtBQUksU0FBQSxDQUFBLEtBQUEsQ0FBQSxFQUFBLEtBQUEsQ0FBQSxFQUFBLEtBQUEsQ0FBQSxFQUFBLGFBQUE7QUFDOUUsSUFBQSxNQUFNLE1BQU0sR0FBRyxJQUFJQyxTQUFLLEVBQUUsQ0FBQztJQUMzQixNQUFNLGFBQWEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDcEQsSUFBQSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxLQUFJO1FBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUU7QUFDdkMsWUFBQSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUM1QyxTQUFBO1FBRUQsTUFBTSxLQUFLLEdBQXdCLEVBQUUsQ0FBQztRQUN0QyxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEdBQUcsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3hELFFBQUEsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUE4QixLQUFJO1lBQ2xGLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLFlBQUEsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQzNDLGdCQUFBLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDZixhQUFBO0FBQ0gsU0FBQyxDQUFDLENBQUM7QUFFSCxRQUFBLE9BQU8sS0FBSyxDQUFDO0FBQ2YsS0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUE7O0FDckJvQixNQUFBLG9CQUFxQixTQUFRVCwwQkFBMkIsQ0FBQTtJQUczRSxXQUFZLENBQUEsR0FBUSxFQUFFLE1BQXdCLEVBQUE7UUFDNUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ1gsUUFBQSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUVyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0FBQzFFLFFBQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsOEJBQThCLENBQUM7S0FDM0Q7QUFFRCxJQUFBLGVBQWUsTUFBVztJQUUxQixNQUFNLEdBQUE7UUFDSixLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7S0FDaEI7SUFFRCxPQUFPLEdBQUE7QUFDTCxRQUFBLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7S0FDeEI7QUFFRCxJQUFBLFdBQVcsQ0FBQyxJQUFjLEVBQUE7UUFDeEIsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9DLFFBQUEsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUssRUFBQSxFQUFBLE1BQU0sR0FBRyxDQUFDO0tBQzFDO0lBRUQsUUFBUSxHQUFBO1FBQ04sTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3JELFFBQUEsTUFBTSxZQUFZLEdBQUcsZUFBZSxFQUFFLENBQUM7QUFFdkMsUUFBQSxPQUFPLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsS0FBSyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0tBQ3JIO0lBRUssWUFBWSxDQUFDLElBQWMsRUFBRSxNQUFrQyxFQUFBOztZQUNuRSxJQUFJRixlQUFNLENBQUMsQ0FBVSxPQUFBLEVBQUEsSUFBSSxDQUFDLFdBQVcsQ0FBQSxHQUFBLENBQUssQ0FBQyxDQUFDO1lBQzVDLE1BQU0sdUJBQXVCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEQsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUk7QUFDbEQsZ0JBQUEsV0FBVyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQU8sS0FBSyxLQUFJLFNBQUEsQ0FBQSxJQUFBLEVBQUEsS0FBQSxDQUFBLEVBQUEsS0FBQSxDQUFBLEVBQUEsYUFBQTtvQkFDbkQsTUFBTSxhQUFhLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFELG9CQUFBLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO3dCQUNyQyxNQUFNLElBQUksR0FBRyxNQUFNLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xELHdCQUFBLE1BQU0sT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3pDLHdCQUFBLE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDOUQsSUFBSSxDQUFDLElBQUksRUFBRTs0QkFDVCxTQUFTO0FBQ1YseUJBQUE7d0JBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQ3pDLHdCQUFBLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQztBQUN2RSx3QkFBQSxJQUFJLFlBQVksRUFBRTtBQUNoQiw0QkFBQSxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDO0FBQzlCLDRCQUFBLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGVBQWUsSUFBSSxDQUFBLEVBQUEsQ0FBSSxDQUFDLENBQUM7NEJBQy9GLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0NBQ2QsU0FBUztBQUNWLDZCQUFBOzRCQUVELE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsNEJBQTRCLENBQWdCLENBQUM7NEJBRTVGLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0NBQ25CLFNBQVM7QUFDViw2QkFBQTs0QkFFRCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztBQUN6RCx5QkFBQTt3QkFFRCxNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdFLHFCQUFBO29CQUVELElBQUlBLGVBQU0sQ0FBQyxDQUFNLEdBQUEsRUFBQSxJQUFJLENBQUMsV0FBVyxDQUFBLE1BQUEsQ0FBUSxDQUFDLENBQUM7b0JBQzNDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztpQkFDeEIsQ0FBQSxDQUFDLENBQUM7QUFDTCxhQUFDLENBQUMsQ0FBQztTQUNKLENBQUEsQ0FBQTtBQUFBLEtBQUE7SUFFRCxnQkFBZ0IsQ0FBQyxJQUEwQixFQUFFLEVBQWUsRUFBQTtBQUMxRCxRQUFBLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakMsRUFBRSxDQUFDLFNBQVMsR0FBRyxDQUFBLEtBQUEsRUFBUSxFQUFFLENBQUMsU0FBUyxRQUFRLENBQUM7S0FDN0M7QUFDRjs7QUN2Rm9CLE1BQUEsMEJBQTJCLFNBQVEsaUJBQWlCLENBQUE7QUFJdkUsSUFBQSxXQUFBLENBQVksTUFBd0IsRUFBRSxXQUF3QixFQUFFLEdBQVEsRUFBRSxjQUEwQixFQUFBO0FBQ2xHLFFBQUEsS0FBSyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztBQUMzQixRQUFBLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ2YsUUFBQSxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztLQUN0QztJQUVNLE9BQU8sR0FBQTtBQUNaLFFBQUEsSUFBSUksZ0JBQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2FBQzFCLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQzthQUNuQyxPQUFPLENBQUMsaURBQWlELENBQUM7QUFDMUQsYUFBQSxTQUFTLENBQUMsQ0FBQyxHQUFHLEtBQUk7QUFDakIsWUFBQSxHQUFHLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDdkMsWUFBQSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQUs7QUFDZixnQkFBQSxNQUFNLEtBQUssR0FBRyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzlELGdCQUFBLEtBQUssQ0FBQyxlQUFlLEdBQUcsTUFBSztvQkFDM0IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0FBQ3hCLGlCQUFDLENBQUM7Z0JBQ0YsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ2YsYUFBQyxDQUFDLENBQUM7QUFDTCxTQUFDLENBQUMsQ0FBQztLQUNOO0FBQ0Y7O0FDMUJvQixNQUFBLHdCQUF5QixTQUFRLGlCQUFpQixDQUFBO0lBQzlELE9BQU8sR0FBQTtBQUNaLFFBQUEsSUFBSUEsZ0JBQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2FBQzFCLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQzthQUNwQyxPQUFPLENBQUMsMkVBQTJFLENBQUM7QUFDcEYsYUFBQSxTQUFTLENBQUMsQ0FBQyxNQUFNLEtBQUk7O1lBQ3BCLE1BQU07QUFDSCxpQkFBQSxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDbkIsaUJBQUEsaUJBQWlCLEVBQUU7QUFDbkIsaUJBQUEsUUFBUSxDQUFDLENBQUEsRUFBQSxHQUFBLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMscUJBQXFCLE1BQUEsSUFBQSxJQUFBLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxFQUFBLEdBQUksZ0JBQWdCLENBQUMscUJBQXFCLENBQUM7QUFDbkcsaUJBQUEsUUFBUSxDQUFDLENBQU8sR0FBRyxLQUFJLFNBQUEsQ0FBQSxJQUFBLEVBQUEsS0FBQSxDQUFBLEVBQUEsS0FBQSxDQUFBLEVBQUEsYUFBQTtnQkFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxxQkFBcUIsR0FBRyxHQUFHLENBQUM7QUFDdEQsZ0JBQUEsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUM7QUFDM0MsZ0JBQUEsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUM7YUFDeEMsQ0FBQSxDQUFDLENBQUM7QUFDUCxTQUFDLENBQUMsQ0FBQztLQUNOO0FBQ0Y7O0FDVm9CLE1BQUEscUJBQXNCLFNBQVFRLHlCQUFnQixDQUFBO0lBR2pFLFdBQVksQ0FBQSxHQUFRLEVBQUUsTUFBd0IsRUFBQTtBQUM1QyxRQUFBLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFbkIsUUFBQSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztLQUN0QjtJQUVELE9BQU8sR0FBQTtRQUNMLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMxQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFcEIsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBQzdELElBQUksd0JBQXdCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzVELElBQUksb0JBQW9CLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXhELFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7QUFDbkQsUUFBQSxJQUFJLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDekYsUUFBQSxJQUFJLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUUvRSxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFDM0QsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdkQsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEQsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFdEQsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0FBQzFELFFBQUEsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0tBQ3JGO0FBQ0Y7O0FDeENNLFNBQVMsTUFBTSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUU7QUFDdkMsSUFBSSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRixJQUFJLE9BQU8sUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUM3RixDQUFDO0FBQ0QsU0FBUyxPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUU7QUFDN0MsSUFBSSxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdEUsSUFBSSxJQUFJLE9BQU8sR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDMUM7QUFDQTtBQUNBLElBQUksSUFBSSxRQUFRO0FBQ2hCLFFBQVEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDakQsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM1QyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUM7QUFDMUI7QUFDQSxJQUFJLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLElBQUksU0FBUyxPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUU7QUFDOUI7QUFDQSxRQUFRLElBQUksT0FBTyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssT0FBTztBQUMzRCxZQUFZLE1BQU0sRUFBRSxDQUFDO0FBQ3JCLFFBQVEsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN6QyxLQUFLO0FBQ0wsSUFBSSxTQUFTLE1BQU0sR0FBRztBQUN0QjtBQUNBLFFBQVEsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssT0FBTyxFQUFFO0FBQ3JDLFlBQVksSUFBSSxNQUFNO0FBQ3RCLGdCQUFnQixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDO0FBQ3ZDO0FBQ0EsZ0JBQWdCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ25DLFNBQVM7QUFDVCxRQUFRLElBQUksT0FBTyxLQUFLLFFBQVE7QUFDaEMsWUFBWSxPQUFPO0FBQ25CO0FBQ0EsUUFBUSxPQUFPLEdBQUcsUUFBUSxDQUFDO0FBQzNCLFFBQVEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxJQUFJLFFBQVEsQ0FBQyxDQUFDO0FBQzdELEtBQUs7QUFDTDs7QUN2QmMsTUFBZ0Isc0JBQXNCLENBQUE7QUFHbEQsSUFBQSxXQUFBLENBQVksTUFBd0IsRUFBQTtBQUNsQyxRQUFBLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0tBQ3RCO0FBRUQsSUFBQSxJQUFJLGFBQWEsR0FBQTtBQUNmLFFBQUEsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBMkMsQ0FBQztLQUM3RztBQUVELElBQUEsT0FBTyxNQUFXO0FBS25COztBQ2hCb0IsTUFBQSxxQkFBc0IsU0FBUSxzQkFBc0IsQ0FBQTtBQUN2RSxJQUFBLFdBQUEsQ0FBWSxNQUF3QixFQUFBO1FBQ2xDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNmO0FBRUQsSUFBQSxJQUFJLE9BQU8sR0FBQTtBQUNULFFBQUEsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQ2pFO0FBRUQsSUFBQSxJQUFJLE9BQU8sR0FBQTtBQUNULFFBQUEsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztLQUN6RTtBQUVELElBQUEsSUFBSSxJQUFJLEdBQUE7QUFDTixRQUFBLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLElBQUksRUFBRTtBQUNULFlBQUEsT0FBTyxTQUFTLENBQUM7QUFDbEIsU0FBQTtBQUVELFFBQUEsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUNyQixZQUFBLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQW1CLENBQUM7QUFDcEMsU0FBQTtBQUVELFFBQUEsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFFTyxPQUFPLENBQUMsUUFBZ0IsRUFBRSxJQUF5QixFQUFBO1FBQ3pELE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN0RCxRQUFBLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDdEIsT0FBTztBQUNSLFNBQUE7UUFFRCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxRQUF1QixDQUFDLENBQUM7S0FDOUQ7QUFFTyxJQUFBLG9CQUFvQixDQUFDLFFBQW1ELEVBQUE7UUFDOUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzlDLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUM3RCxRQUFBLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEtBQUk7WUFDL0IsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNmLE9BQU87QUFDUixhQUFBO0FBRUQsWUFBQSxRQUFRLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN2QyxTQUFDLENBQUMsQ0FBQztLQUNKO0lBRUQsT0FBTyxHQUFBO1FBQ0wsTUFBTSxhQUFhLEdBQStCLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxLQUFJO0FBQzNDLFlBQUEsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUNqQyxTQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBbUIsQ0FBQyxDQUFDLENBQUM7S0FDMUc7SUFFRCxRQUFRLEdBQUE7QUFDTixRQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sRUFBRTtZQUMzRSxPQUFPLENBQUMsSUFBSSxDQUNWLENBQUEsQ0FBQSxFQUFJLFFBQVEsQ0FBQyxVQUFVLENBQStGLDZGQUFBLENBQUEsQ0FDdkgsQ0FBQztZQUNGLE9BQU87QUFDUixTQUFBO0FBRUQsUUFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixPQUFPLENBQUMsSUFBSSxDQUNWLENBQUEsQ0FBQSxFQUFJLFFBQVEsQ0FBQyxVQUFVLENBQW1GLGlGQUFBLENBQUEsQ0FDM0csQ0FBQztZQUNGLE9BQU87QUFDUixTQUFBO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ2xCLFFBQUEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQ2xCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUM1QixPQUFPLEVBQUUsVUFBVSxJQUFJLEVBQUE7QUFDckIsZ0JBQUEsT0FBTyxVQUFVLElBQUksRUFBQTtBQUNuQixvQkFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDdEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ2pCLGlCQUFDLENBQUM7YUFDSDtZQUNELFVBQVUsRUFBRSxVQUFVLElBQUksRUFBQTtBQUN4QixnQkFBQSxPQUFPLFVBQVUsSUFBSSxFQUFBO0FBQ25CLG9CQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUN0QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDakIsaUJBQUMsQ0FBQzthQUNIO0FBQ0YsU0FBQSxDQUFDLENBQ0gsQ0FBQztLQUNIO0FBQ0Y7O0FDM0VvQixNQUFBLGdCQUFpQixTQUFRQyxlQUFNLENBQUE7QUFBcEQsSUFBQSxXQUFBLEdBQUE7O0FBRVUsUUFBQSxJQUFBLENBQUEsdUJBQXVCLEdBQUcsSUFBSSxHQUFHLEVBQWdCLENBQUM7UUFFbEQsSUFBdUIsQ0FBQSx1QkFBQSxHQUE2QixFQUFFLENBQUM7S0FnVmhFO0lBOVVlLE9BQU8sR0FBQTs7QUFDbkIsWUFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRTtBQUNoQyxnQkFBQSxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFDbEMsZ0JBQUEsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDL0IsZ0JBQUEsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7QUFDbkMsZ0JBQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ2xDLGFBQUE7WUFFRCxNQUFNLFlBQVksR0FBSSxJQUFJLENBQUMsV0FBVyxFQUFVLENBQUMsWUFBbUMsQ0FBQztBQUNyRixZQUFBLElBQUksWUFBWSxFQUFFO2dCQUNoQixJQUFJLFlBQVksQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQzlHLG9CQUFBLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDO0FBQzlDLG9CQUFBLE9BQVEsSUFBSSxDQUFDLFdBQVcsRUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ3BELGlCQUFBO0FBQ0YsYUFBQTtBQUVELFlBQUEsTUFBTSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztTQUNqQyxDQUFBLENBQUE7QUFBQSxLQUFBO0lBRUssTUFBTSxHQUFBOztZQUNWLFFBQVEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBLFFBQUEsRUFBVyxRQUFRLENBQUMsVUFBVSxDQUFFLENBQUEsQ0FBQyxDQUFDO1lBRTlDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBRW5FLFlBQUEsTUFBTSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBRTFDLFlBQUEsTUFBTSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuQyxZQUFBLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7QUFFcEMsWUFBQSxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUVyQixNQUFNLGFBQWEsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFaEQsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRXBCLFlBQUEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztZQUNsRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsTUFBTSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFNUYsWUFBQSxJQUFJLENBQUMsYUFBYSxDQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksS0FBSTtBQUNoRCxnQkFBQSxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQWMsS0FBSTtBQUN6QyxvQkFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzdCLG9CQUFBLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDeEIsb0JBQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFLO0FBQ2hCLHdCQUFBLE1BQU0sS0FBSyxHQUFHLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUM5RCxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDZixxQkFBQyxDQUFDLENBQUM7QUFDTCxpQkFBQyxDQUFDO0FBRUYsZ0JBQUEsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLElBQWMsS0FBSTtBQUM1QyxvQkFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzdCLG9CQUFBLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdEIsb0JBQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFLO0FBQ2hCLHdCQUFBLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakMsd0JBQUEsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6Qix3QkFBQSxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3pCLHFCQUFDLENBQUMsQ0FBQztBQUNMLGlCQUFDLENBQUM7QUFFRixnQkFBQSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBRTlCLGdCQUFBLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBZSxZQUFBLEVBQUEsSUFBSSxDQUFDLElBQUksQ0FBSSxFQUFBLENBQUEsQ0FBQyxDQUFDO2dCQUNsRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFFbEUsZ0JBQUEsSUFBSSxRQUFRLEVBQUU7QUFDWixvQkFBQSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDbEMsaUJBQUE7QUFFRCxnQkFBQSxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQWMsS0FBSTtvQkFDckMsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVEsRUFBRTtBQUM1Qyx3QkFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFDckMsd0JBQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFLO0FBQ2hCLDRCQUFBLDBCQUEwQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7NEJBQzVDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzVDLHlCQUFDLENBQUMsQ0FBQztBQUNKLHFCQUFBO0FBQU0seUJBQUE7QUFDTCx3QkFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzlCLHdCQUFBLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBSztBQUNoQiw0QkFBQSxNQUFNLEtBQUssR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDOUQsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDOztBQUViLDRCQUFBLEtBQUssQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFtQixLQUFJO2dDQUMzQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMxQyxnQ0FBQSx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNDLDZCQUFDLENBQUM7QUFDSix5QkFBQyxDQUFDLENBQUM7QUFDSixxQkFBQTtBQUNELG9CQUFBLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUN0QyxpQkFBQyxDQUFDO0FBRUYsZ0JBQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMzQixDQUFDLENBQ0gsQ0FBQzs7QUFHRixZQUFBLElBQUksQ0FBQyxhQUFhLENBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEtBQUk7QUFDbkMsZ0JBQUEsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztBQUN2QixnQkFBQSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDN0IsQ0FBQyxDQUNILENBQUM7O0FBR0YsWUFBQSxJQUFJLENBQUMsYUFBYSxDQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sS0FBSTtnQkFDNUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQ3ZDLENBQUMsQ0FDSCxDQUFDO0FBRUYsWUFBQSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQy9ELENBQUEsQ0FBQTtBQUFBLEtBQUE7SUFFTyxjQUFjLEdBQUE7QUFDcEIsUUFBQSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7S0FDN0Q7SUFFTyxnQkFBZ0IsR0FBQTtBQUN0QixRQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDNUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUNqRCxjQUFjLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssS0FBSTtBQUN4QyxZQUFBLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFhLENBQUM7QUFDakMsWUFBQSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBeUIsQ0FBQztZQUVuRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBQ25GLFlBQUEsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUN2QixhQUFBO1lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUF1QixDQUFDO0FBQzVELFlBQUEsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUMvQyxnQkFBQSxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBRXBELGdCQUFBLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUVqRSxnQkFBQSxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ2xDLGFBQUE7QUFDSCxTQUFDLENBQUMsQ0FBQztLQUNKO0lBRU8sa0JBQWtCLEdBQUE7O1FBRXhCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBMEMsQ0FBQztRQUVoRixJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxLQUFJO1lBQ3RELElBQUksY0FBYyxDQUFDLE9BQU8sRUFBRTtnQkFDMUIsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN6QixjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDM0IsYUFBQTtBQUNILFNBQUMsQ0FBQyxDQUFDO1FBRUgsYUFBYSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixFQUFFLE1BQUs7Ozs7QUFLM0QsWUFBQSxJQUFJLENBQUMsYUFBYSxDQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sS0FBSTtnQkFDNUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBTyxJQUFJLEtBQUksU0FBQSxDQUFBLElBQUEsRUFBQSxLQUFBLENBQUEsRUFBQSxLQUFBLENBQUEsRUFBQSxhQUFBO0FBQzlDLG9CQUFBLElBQUksd0JBQXdCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFO0FBQzNDLHdCQUFBLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUIscUJBQUE7b0JBRUQsTUFBTSx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUNqRCxDQUFBLENBQUMsQ0FBQzthQUNKLENBQUMsQ0FDSCxDQUFDOztBQUdGLFlBQUEsSUFBSSxDQUFDLGFBQWEsQ0FDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksS0FBSTtBQUNuQyxnQkFBQSxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FDekQsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssVUFBVSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FDdEQsQ0FBQztBQUVGLGdCQUFBLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssR0FBRztvQkFBRSxPQUFPO2dCQUVyQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLENBQTZCLEtBQUk7b0JBQ3JFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO0FBQ25DLHdCQUFBLHdCQUF3QixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDOUYscUJBQUE7QUFDSCxpQkFBQyxDQUFDLENBQUM7YUFDSixDQUFDLENBQ0gsQ0FBQztBQUNKLFNBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFFTyxtQkFBbUIsQ0FBQyxVQUFrQixFQUFFLElBQTBCLEVBQUE7UUFDeEUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzs7UUFFM0MsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLFlBQVksSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLEVBQUU7WUFDckUsTUFBTSxZQUFZLEdBQUcsWUFBZ0MsQ0FBQztZQUV0RCxJQUFJLFlBQVksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQztBQUMvQyxhQUFBO0FBQU0saUJBQUE7QUFDTCxnQkFBQSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDOUIsYUFBQTtBQUNGLFNBQUE7O0FBRUksYUFBQTs7QUFFSCxZQUFBLElBQUksWUFBWSxFQUFFOztBQUVoQixnQkFBQSxJQUFJLE9BQU8sWUFBWSxLQUFLLFFBQVEsRUFBRTtBQUNwQyxvQkFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHO0FBQ3RCLHdCQUFBLFFBQVEsRUFBRSxZQUFzQjtBQUNoQyx3QkFBQSxlQUFlLEVBQUUsT0FBTyxJQUFJLEtBQUssUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSTtxQkFDcEUsQ0FBQztBQUNILGlCQUFBOztxQkFFSSxJQUFJLFVBQVUsS0FBSyxVQUFVLEVBQUU7b0JBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLG1DQUNmLFlBQWlDLENBQUEsRUFBQSxFQUNyQyxlQUFlLEVBQUUsT0FBTyxJQUFJLEtBQUssUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFBLENBQ3BFLENBQUM7QUFDSCxpQkFBQTtBQUNGLGFBQUE7QUFBTSxpQkFBQTtBQUNMLGdCQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUc7QUFDdEIsb0JBQUEsUUFBUSxFQUFFLElBQUk7QUFDZCxvQkFBQSxlQUFlLEVBQUUsT0FBTyxJQUFJLEtBQUssUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSTtpQkFDcEUsQ0FBQztBQUNILGFBQUE7QUFDRixTQUFBO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7S0FDM0I7SUFFRCxRQUFRLEdBQUE7QUFDTixRQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztLQUMvQztJQUVELFlBQVksQ0FBQyxPQUFlLEVBQUUsT0FBZSxFQUFBO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sS0FBSyxPQUFPLEVBQUU7WUFDOUMsT0FBTztBQUNSLFNBQUE7UUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDL0YsUUFBQSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7S0FDM0I7QUFFRCxJQUFBLGdCQUFnQixDQUFDLElBQVksRUFBQTtBQUMzQixRQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3BCLE9BQU87QUFDUixTQUFBO1FBRUQsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQ3ZDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFxQixDQUFDO0FBQ3pELFlBQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBQSxNQUFBLENBQUEsTUFBQSxDQUFBLE1BQUEsQ0FBQSxNQUFBLENBQUEsRUFBQSxFQUNWLFlBQVksQ0FBQSxFQUFBLEVBQ2YsUUFBUSxFQUFFLElBQUksRUFBQSxDQUNmLENBQUM7QUFDSCxTQUFBO0FBQU0sYUFBQTtBQUNMLFlBQUEsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hCLFNBQUE7O1FBR0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7S0FDM0I7SUFFRCxhQUFhLENBQUMsSUFBWSxFQUFFLElBQW1CLEVBQUE7QUFDN0MsUUFBQSxNQUFNLFFBQVEsR0FBRyxPQUFPLElBQUksS0FBSyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDcEUsUUFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQztBQUMzQixRQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO0FBQzVELFlBQUEsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsaUJBQWlCLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRTtnQkFDM0YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQy9FLENBQUMsRUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxDQUM3QyxDQUFDO0FBQ0gsYUFBQTtZQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7QUFDL0IsU0FBQTs7UUFHRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztLQUMzQjtJQUVNLFdBQVcsR0FBQTtBQUNoQixRQUFBLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUE4QixDQUFDO0tBQ2pEO0lBRUssa0JBQWtCLEdBQUE7O0FBQ3RCLFlBQUEsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDbkMsWUFBQSxJQUFJLElBQUksRUFBRTtBQUNSLGdCQUFBLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSTtBQUNsRCxvQkFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUNyQix3QkFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN0QixxQkFBQTtBQUNILGlCQUFDLENBQUMsQ0FBQztBQUNKLGFBQUE7QUFDRCxZQUFBLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBTyxNQUFBLENBQUEsTUFBQSxDQUFBLEVBQUEsRUFBQSxnQkFBZ0IsQ0FBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzVFLENBQUEsQ0FBQTtBQUFBLEtBQUE7SUFFSyxrQkFBa0IsR0FBQTs7WUFDdEIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoQyxDQUFBLENBQUE7QUFBQSxLQUFBO0lBRUssc0JBQXNCLEdBQUE7O0FBQzFCLFlBQUEsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRTtnQkFDMUYsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQy9FLENBQUMsRUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMscUJBQXFCLENBQ3pDLENBQUM7QUFDRixnQkFBQSxNQUFNLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0FBQ2pDLGFBQUE7U0FDRixDQUFBLENBQUE7QUFBQSxLQUFBO0lBRUQsT0FBTyxHQUFBO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0tBQ2xCO0lBRUQsMEJBQTBCLEdBQUE7UUFDeEIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUM7S0FDckM7QUFFRCxJQUFBLGtCQUFrQixDQUFDLEtBQWEsRUFBQTtBQUM5QixRQUFBLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUk7QUFDL0MsWUFBQSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRTtnQkFDekIsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ2Ysb0JBQUEsT0FBTyxDQUFDLENBQUM7QUFDVixpQkFBQTtBQUNGLGFBQUE7QUFBTSxpQkFBQSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRTtnQkFDaEMsQ0FBQyxHQUFHLENBQXFCLENBQUM7Z0JBQzFCLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxRQUFRLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUU7QUFDdkQsb0JBQUEsT0FBTyxDQUFDLENBQUM7QUFDVixpQkFBQTtBQUNGLGFBQUE7QUFDSCxTQUFDLENBQXNCLENBQUM7S0FDekI7QUFDRjs7OzsifQ== diff --git a/.obsidian/plugins/obsidian-icon-folder/manifest.json b/.obsidian/plugins/obsidian-icon-folder/manifest.json index 2fb11a9..f65890a 100644 --- a/.obsidian/plugins/obsidian-icon-folder/manifest.json +++ b/.obsidian/plugins/obsidian-icon-folder/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-icon-folder", "name": "Icon Folder", - "version": "1.3.5", + "version": "1.4.1", "minAppVersion": "0.9.12", "description": "This plugin allows to add an emoji or an icon to a folder or file.", "author": "Florian Woelki", diff --git a/.obsidian/plugins/obsidian-linter/data.json b/.obsidian/plugins/obsidian-linter/data.json index aa49aee..11b3cdc 100644 --- a/.obsidian/plugins/obsidian-linter/data.json +++ b/.obsidian/plugins/obsidian-linter/data.json @@ -2,18 +2,14 @@ "ruleConfigs": { "Escape YAML Special Characters": { "Escapes colons with a space after them (: ), single quotes ('), and double quotes (\") in YAML.": false, - "Default Escape Character": "\"", - "Try to Escape Single Line Arrays": false, - "Force Yaml Escape on Keys": "" + "Try to Escape Single Line Arrays": false }, "Format Tags in YAML": { "Remove Hashtags from tags in the YAML frontmatter, as they make the tags there invalid.": false }, "Format Yaml Array": { "Allows for the formatting of regular yaml arrays as either multi-line or single-line and `tags` and `aliases` are allowed to have some Obsidian specific yaml formats. Note that single string to single-line goes from a single string entry to a single-line array if more than 1 entry is present. The same is true for single string to multi-line except it becomes a multi-line array.": false, - "Yaml aliases section style": "single-line", "Format yaml aliases section": true, - "Yaml tags section style": "single-line", "Format yaml tags section": true, "Default yaml array section style": "single-line", "Format yaml array sections": true, @@ -26,9 +22,8 @@ }, "Move Tags to Yaml": { "Move all tags to Yaml frontmatter of the document.": false, - "Yaml tags section style": "single-line", - "Remove the hashtag from tags in content body": false, - "Tags to ignore": "" + "Tags to ignore": "", + "Body tag operation": "Nothing" }, "Remove YAML Keys": { "Removes the YAML keys specified": false, @@ -54,13 +49,12 @@ }, "YAML Title Alias": { "Inserts the title of the file into the YAML frontmatter's aliases section. Gets the title from the first H1 or filename.": false, - "YAML aliases section style": "Multi-line array", "Preserve existing aliases section style": true, "Keep alias that matches the filename": false, "Use the YAML key `linter-yaml-title-alias` to help with filename and heading changes": true }, "Capitalize Headings": { - "Headings should be formatted with capitalization": false, + "Headings should be formatted with capitalization": true, "Style": "Title Case", "Ignore Cased Words": true, "Ignore Words": "macOS, iOS, iPhone, iPad, JavaScript, TypeScript, AppleScript", @@ -82,31 +76,31 @@ "Re-indexes footnote keys and footnote, based on the order of occurrence (NOTE: This rule deliberately does *not* preserve the relation between key and footnote, to be able to re-index duplicate keys.)": false }, "Convert Bullet List Markers": { - "Converts common bullet list marker symbols to markdown list markers.": false + "Converts common bullet list marker symbols to markdown list markers.": true }, "Emphasis Style": { - "Makes sure the emphasis style is consistent.": false, + "Makes sure the emphasis style is consistent.": true, "Style": "consistent" }, "No Bare URLs": { - "Encloses bare URLs with angle brackets except when enclosed in back ticks, square braces, or single or double quotes.": false + "Encloses bare URLs with angle brackets except when enclosed in back ticks, square braces, or single or double quotes.": true }, "Ordered List Style": { - "Makes sure that ordered lists follow the style specified. Note that 2 spaces or 1 tab is considered to be an indentation level.": false, + "Makes sure that ordered lists follow the style specified. Note that 2 spaces or 1 tab is considered to be an indentation level.": true, "Number Style": "ascending", "Ordered List Indicator End Style": "." }, "Proper Ellipsis": { - "Replaces three consecutive dots with an ellipsis.": false + "Replaces three consecutive dots with an ellipsis.": true }, "Remove Consecutive List Markers": { - "Removes consecutive list markers. Useful when copy-pasting list items.": false + "Removes consecutive list markers. Useful when copy-pasting list items.": true }, "Remove Empty List Markers": { - "Removes empty list markers, i.e. list items without content.": false + "Removes empty list markers, i.e. list items without content.": true }, "Remove Hyphenated Line Breaks": { - "Removes hyphenated line breaks. Useful when pasting text from textbooks.": false + "Removes hyphenated line breaks. Useful when pasting text from textbooks.": true }, "Remove Multiple Spaces": { "Removes two or more consecutive spaces. Ignores spaces at the beginning and ending of the line. ": false @@ -119,8 +113,8 @@ "Makes sure that two spaces are added to the ends of lines with content continued on the next line for paragraphs, blockquotes, and list items": false }, "Unordered List Style": { - "Makes sure that unordered lists follow the style specified.": false, - "List item style": "consistent" + "Makes sure that unordered lists follow the style specified.": true, + "List item style": "-" }, "Compact YAML": { "Removes leading and trailing blank lines in the YAML front matter.": false, @@ -140,7 +134,7 @@ "Ensures that there is an empty line around code fences unless they start or end a document.": false }, "Empty Line Around Tables": { - "Ensures that there is an empty line around github flavored tables unless they start or end a document.": false + "Ensures that there is an empty line around github flavored tables unless they start or end a document.": true }, "Heading blank lines": { "All headings have a blank line both before and after (except where the heading is at the beginning or end of the document).": false, @@ -171,6 +165,40 @@ "Trailing spaces": { "Removes extra spaces after every line.": false, "Two Space Linebreak": false + }, + "Force YAML Escape": { + "Escapes the values for the specified YAML keys.": false, + "Force YAML Escape on Keys": "" + }, + "Empty Line Around Math Blocks": { + "Ensures that there is an empty line around math blocks using `Number of Dollar Signs to Indicate a Math Block` to determine how many dollar signs indicates a math block for single-line math.": true + }, + "Move Math Block Indicators to Their Own Line": { + "Move all starting and ending math block indicators to their own lines using `Number of Dollar Signs to Indicate a Math Block` to determine how many dollar signs indicates a math block for single-line math.": false + }, + "Add Blockquote Indentation on Paste": { + "Adds blockquotes to all but the first line, when the cursor is in a blockquote/callout line during pasting": false + }, + "Prevent Double Checklist Indicator on Paste": { + "Removes starting checklist indicator from the text to paste if the line the cursor is on in the file has a checklist indicator": false + }, + "Prevent Double List Item Indicator on Paste": { + "Removes starting list indicator from the text to paste if the line the cursor is on in the file has a list indicator": false + }, + "Proper Ellipsis on Paste": { + "Replaces three consecutive dots with an ellipsis even if they have a space between them in the text to paste": false + }, + "Remove Hyphens on Paste": { + "Removes hyphens from the text to paste": false + }, + "Remove Leading or Trailing Whitespace on Paste": { + "Removes any leading non-tab whitespace and all trailing whitespace for the text to paste": false + }, + "Remove Leftover Footnotes from Quote on Paste": { + "Removes any leftover footnote references for the text to paste": false + }, + "Remove Multiple Blank Lines on Paste": { + "Condenses multiple blank lines down into one blank line for the text to paste": false } }, "lintOnSave": false, @@ -178,5 +206,11 @@ "foldersToIgnore": [], "linterLocale": "system-default", "logLevel": 4, - "lintCommands": [] + "lintCommands": [], + "commonStyles": { + "aliasArrayStyle": "single-line", + "tagArrayStyle": "single-line", + "minimumNumberOfDollarSignsToBeAMathBlock": 2, + "escapeCharacter": "\"" + } } \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-linter/main.js b/.obsidian/plugins/obsidian-linter/main.js index e53b6d6..82de5a8 100644 --- a/.obsidian/plugins/obsidian-linter/main.js +++ b/.obsidian/plugins/obsidian-linter/main.js @@ -3,176 +3,146 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin */ -var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDescriptor;var cd=Object.getOwnPropertyNames;var pd=Object.getPrototypeOf,md=Object.prototype.hasOwnProperty;var so=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Va=(e,t)=>{for(var n in t)Ir(e,n,{get:t[n],enumerable:!0})},bu=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of cd(t))!md.call(e,i)&&i!==n&&Ir(e,i,{get:()=>t[i],enumerable:!(r=yu(t,i))||r.enumerable});return e};var Xn=(e,t,n)=>(n=e!=null?ud(pd(e)):{},bu(t||!e||!e.__esModule?Ir(n,"default",{value:e,enumerable:!0}):n,e)),fd=e=>bu(Ir({},"__esModule",{value:!0}),e),B=(e,t,n,r)=>{for(var i=r>1?void 0:r?yu(t,n):t,o=e.length-1,a;o>=0;o--)(a=e[o])&&(i=(r?a(t,n,i):a(i))||i);return r&&i&&Ir(t,n,i),i};var wu=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)};var pt=(e,t,n)=>(wu(e,t,"read from private field"),n?n.call(e):t.get(e)),Jn=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},xu=(e,t,n,r)=>(wu(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);var cs=so((Px,yc)=>{yc.exports=function(t){return t!=null&&t.constructor!=null&&typeof t.constructor.isBuffer=="function"&&t.constructor.isBuffer(t)}});var Cc=so((Nx,Tc)=>{"use strict";var vo=Object.prototype.hasOwnProperty,Oc=Object.prototype.toString,bc=Object.defineProperty,wc=Object.getOwnPropertyDescriptor,xc=function(t){return typeof Array.isArray=="function"?Array.isArray(t):Oc.call(t)==="[object Array]"},kc=function(t){if(!t||Oc.call(t)!=="[object Object]")return!1;var n=vo.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&vo.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var i;for(i in t);return typeof i=="undefined"||vo.call(t,i)},vc=function(t,n){bc&&n.name==="__proto__"?bc(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},Sc=function(t,n){if(n==="__proto__")if(vo.call(t,n)){if(wc)return wc(t,n).value}else return;return t[n]};Tc.exports=function e(){var t,n,r,i,o,a,s=arguments[0],l=1,u=arguments.length,c=!1;for(typeof s=="boolean"&&(c=s,s=arguments[1]||{},l=2),(s==null||typeof s!="object"&&typeof s!="function")&&(s={});l{var R=function(){this.Diff_Timeout=1,this.Diff_EditCost=4,this.Match_Threshold=.5,this.Match_Distance=1e3,this.Patch_DeleteThreshold=.5,this.Patch_Margin=4,this.Match_MaxBits=32},ue=-1,pe=1,Z=0;R.Diff=function(e,t){return[e,t]};R.prototype.diff_main=function(e,t,n,r){typeof r=="undefined"&&(this.Diff_Timeout<=0?r=Number.MAX_VALUE:r=new Date().getTime()+this.Diff_Timeout*1e3);var i=r;if(e==null||t==null)throw new Error("Null input. (diff_main)");if(e==t)return e?[new R.Diff(Z,e)]:[];typeof n=="undefined"&&(n=!0);var o=n,a=this.diff_commonPrefix(e,t),s=e.substring(0,a);e=e.substring(a),t=t.substring(a),a=this.diff_commonSuffix(e,t);var l=e.substring(e.length-a);e=e.substring(0,e.length-a),t=t.substring(0,t.length-a);var u=this.diff_compute_(e,t,o,i);return s&&u.unshift(new R.Diff(Z,s)),l&&u.push(new R.Diff(Z,l)),this.diff_cleanupMerge(u),u};R.prototype.diff_compute_=function(e,t,n,r){var i;if(!e)return[new R.Diff(pe,t)];if(!t)return[new R.Diff(ue,e)];var o=e.length>t.length?e:t,a=e.length>t.length?t:e,s=o.indexOf(a);if(s!=-1)return i=[new R.Diff(pe,o.substring(0,s)),new R.Diff(Z,a),new R.Diff(pe,o.substring(s+a.length))],e.length>t.length&&(i[0][0]=i[2][0]=ue),i;if(a.length==1)return[new R.Diff(ue,e),new R.Diff(pe,t)];var l=this.diff_halfMatch_(e,t);if(l){var u=l[0],c=l[1],p=l[2],m=l[3],f=l[4],d=this.diff_main(u,p,n,r),h=this.diff_main(c,m,n,r);return d.concat([new R.Diff(Z,f)],h)}return n&&e.length>100&&t.length>100?this.diff_lineMode_(e,t,r):this.diff_bisect_(e,t,r)};R.prototype.diff_lineMode_=function(e,t,n){var r=this.diff_linesToChars_(e,t);e=r.chars1,t=r.chars2;var i=r.lineArray,o=this.diff_main(e,t,!1,n);this.diff_charsToLines_(o,i),this.diff_cleanupSemantic(o),o.push(new R.Diff(Z,""));for(var a=0,s=0,l=0,u="",c="";a=1&&l>=1){o.splice(a-s-l,s+l),a=a-s-l;for(var p=this.diff_main(u,c,!1,n),m=p.length-1;m>=0;m--)o.splice(a,0,p[m]);a=a+p.length}l=0,s=0,u="",c="";break}a++}return o.pop(),o};R.prototype.diff_bisect_=function(e,t,n){for(var r=e.length,i=t.length,o=Math.ceil((r+i)/2),a=o,s=2*o,l=new Array(s),u=new Array(s),c=0;cn);b++){for(var O=-b+f;O<=b-d;O+=2){var S=a+O,E;O==-b||O!=b&&l[S-1]r)d+=2;else if(I>i)f+=2;else if(m){var k=a+p-O;if(k>=0&&k=_)return this.diff_bisectSplit_(e,t,E,I,n)}}}for(var M=-b+h;M<=b-g;M+=2){var k=a+M,_;M==-b||M!=b&&u[k-1]r)g+=2;else if(z>i)h+=2;else if(!m){var S=a+p-M;if(S>=0&&S=_)return this.diff_bisectSplit_(e,t,E,I,n)}}}}return[new R.Diff(ue,e),new R.Diff(pe,t)]};R.prototype.diff_bisectSplit_=function(e,t,n,r,i){var o=e.substring(0,n),a=t.substring(0,r),s=e.substring(n),l=t.substring(r),u=this.diff_main(o,a,!1,i),c=this.diff_main(s,l,!1,i);return u.concat(c)};R.prototype.diff_linesToChars_=function(e,t){var n=[],r={};n[0]="";function i(l){for(var u="",c=0,p=-1,m=n.length;pr?e=e.substring(n-r):nt.length?e:t,r=e.length>t.length?t:e;if(n.length<4||r.length*2=d.length?[E,I,k,_,S]:null}var a=o(n,r,Math.ceil(n.length/4)),s=o(n,r,Math.ceil(n.length/2)),l;if(!a&&!s)return null;s?a?l=a[4].length>s[4].length?a:s:l=s:l=a;var u,c,p,m;e.length>t.length?(u=l[0],c=l[1],p=l[2],m=l[3]):(p=l[0],m=l[1],u=l[2],c=l[3]);var f=l[4];return[u,c,p,m,f]};R.prototype.diff_cleanupSemantic=function(e){for(var t=!1,n=[],r=0,i=null,o=0,a=0,s=0,l=0,u=0;o0?n[r-1]:-1,a=0,s=0,l=0,u=0,i=null,t=!0)),o++;for(t&&this.diff_cleanupMerge(e),this.diff_cleanupSemanticLossless(e),o=1;o=f?(m>=c.length/2||m>=p.length/2)&&(e.splice(o,0,new R.Diff(Z,p.substring(0,m))),e[o-1][1]=c.substring(0,c.length-m),e[o+1][1]=p.substring(m),o++):(f>=c.length/2||f>=p.length/2)&&(e.splice(o,0,new R.Diff(Z,c.substring(0,f))),e[o-1][0]=pe,e[o-1][1]=p.substring(0,p.length-f),e[o+1][0]=ue,e[o+1][1]=c.substring(f),o++),o++}o++}};R.prototype.diff_cleanupSemanticLossless=function(e){function t(f,d){if(!f||!d)return 6;var h=f.charAt(f.length-1),g=d.charAt(0),b=h.match(R.nonAlphaNumericRegex_),O=g.match(R.nonAlphaNumericRegex_),S=b&&h.match(R.whitespaceRegex_),E=O&&g.match(R.whitespaceRegex_),I=S&&h.match(R.linebreakRegex_),k=E&&g.match(R.linebreakRegex_),_=I&&f.match(R.blanklineEndRegex_),M=k&&d.match(R.blanklineStartRegex_);return _||M?5:I||k?4:b&&!S&&E?3:S||E?2:b||O?1:0}for(var n=1;n=p&&(p=m,l=r,u=i,c=o)}e[n-1][1]!=l&&(l?e[n-1][1]=l:(e.splice(n-1,1),n--),e[n][1]=u,c?e[n+1][1]=c:(e.splice(n+1,1),n--))}n++}};R.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;R.whitespaceRegex_=/\s/;R.linebreakRegex_=/[\r\n]/;R.blanklineEndRegex_=/\n\r?\n$/;R.blanklineStartRegex_=/^\r?\n\r?\n/;R.prototype.diff_cleanupEfficiency=function(e){for(var t=!1,n=[],r=0,i=null,o=0,a=!1,s=!1,l=!1,u=!1;o0?n[r-1]:-1,l=u=!1),t=!0)),o++;t&&this.diff_cleanupMerge(e)};R.prototype.diff_cleanupMerge=function(e){e.push(new R.Diff(Z,""));for(var t=0,n=0,r=0,i="",o="",a;t1?(n!==0&&r!==0&&(a=this.diff_commonPrefix(o,i),a!==0&&(t-n-r>0&&e[t-n-r-1][0]==Z?e[t-n-r-1][1]+=o.substring(0,a):(e.splice(0,0,new R.Diff(Z,o.substring(0,a))),t++),o=o.substring(a),i=i.substring(a)),a=this.diff_commonSuffix(o,i),a!==0&&(e[t][1]=o.substring(o.length-a)+e[t][1],o=o.substring(0,o.length-a),i=i.substring(0,i.length-a))),t-=n+r,e.splice(t,n+r),i.length&&(e.splice(t,0,new R.Diff(ue,i)),t++),o.length&&(e.splice(t,0,new R.Diff(pe,o)),t++),t++):t!==0&&e[t-1][0]==Z?(e[t-1][1]+=e[t][1],e.splice(t,1)):t++,r=0,n=0,i="",o="";break}e[e.length-1][1]===""&&e.pop();var s=!1;for(t=1;tt));a++)i=n,o=r;return e.length!=a&&e[a][0]===ue?o:o+(t-i)};R.prototype.diff_prettyHtml=function(e){for(var t=[],n=/&/g,r=//g,o=/\n/g,a=0;a");switch(s){case pe:t[a]=''+u+"";break;case ue:t[a]=''+u+"";break;case Z:t[a]=""+u+"";break}}return t.join("")};R.prototype.diff_text1=function(e){for(var t=[],n=0;nthis.Match_MaxBits)throw new Error("Pattern too long for this browser.");var r=this.match_alphabet_(t),i=this;function o(E,I){var k=E/t.length,_=Math.abs(n-I);return i.Match_Distance?k+_/i.Match_Distance:_?1:k}var a=this.Match_Threshold,s=e.indexOf(t,n);s!=-1&&(a=Math.min(o(0,s),a),s=e.lastIndexOf(t,n+t.length),s!=-1&&(a=Math.min(o(0,s),a)));var l=1<=d;b--){var O=r[e.charAt(b-1)];if(f===0?g[b]=(g[b+1]<<1|1)&O:g[b]=(g[b+1]<<1|1)&O|((m[b+1]|m[b])<<1|1)|m[b+1],g[b]&l){var S=o(f,b-1);if(S<=a)if(a=S,s=b-1,s>n)d=Math.max(1,2*n-s);else break}}if(o(f+1,n)>a)break;m=g}return s};R.prototype.match_alphabet_=function(e){for(var t={},n=0;n2&&(this.diff_cleanupSemantic(i),this.diff_cleanupEfficiency(i));else if(e&&typeof e=="object"&&typeof t=="undefined"&&typeof n=="undefined")i=e,r=this.diff_text1(i);else if(typeof e=="string"&&t&&typeof t=="object"&&typeof n=="undefined")r=e,i=t;else if(typeof e=="string"&&typeof t=="string"&&n&&typeof n=="object")r=e,i=n;else throw new Error("Unknown call format to patch_make.");if(i.length===0)return[];for(var o=[],a=new R.patch_obj,s=0,l=0,u=0,c=r,p=r,m=0;m=2*this.Patch_Margin&&s&&(this.patch_addContext_(a,c),o.push(a),a=new R.patch_obj,s=0,c=p,l=u);break}f!==pe&&(l+=d.length),f!==ue&&(u+=d.length)}return s&&(this.patch_addContext_(a,c),o.push(a)),o};R.prototype.patch_deepCopy=function(e){for(var t=[],n=0;nthis.Match_MaxBits?(l=this.match_main(t,s.substring(0,this.Match_MaxBits),a),l!=-1&&(u=this.match_main(t,s.substring(s.length-this.Match_MaxBits),a+s.length-this.Match_MaxBits),(u==-1||l>=u)&&(l=-1))):l=this.match_main(t,s,a),l==-1)i[o]=!1,r-=e[o].length2-e[o].length1;else{i[o]=!0,r=l-a;var c;if(u==-1?c=t.substring(l,l+s.length):c=t.substring(l,u+this.Match_MaxBits),s==c)t=t.substring(0,l)+this.diff_text2(e[o].diffs)+t.substring(l+s.length);else{var p=this.diff_main(s,c,!1);if(s.length>this.Match_MaxBits&&this.diff_levenshtein(p)/s.length>this.Patch_DeleteThreshold)i[o]=!1;else{this.diff_cleanupSemanticLossless(p);for(var m=0,f,d=0;do[0][1].length){var a=t-o[0][1].length;o[0][1]=n.substring(o[0][1].length)+o[0][1],i.start1-=a,i.start2-=a,i.length1+=a,i.length2+=a}if(i=e[e.length-1],o=i.diffs,o.length==0||o[o.length-1][0]!=Z)o.push(new R.Diff(Z,n)),i.length1+=t,i.length2+=t;else if(t>o[o.length-1][1].length){var a=t-o[o.length-1][1].length;o[o.length-1][1]+=n.substring(0,a),i.length1+=a,i.length2+=a}return n};R.prototype.patch_splitMax=function(e){for(var t=this.Match_MaxBits,n=0;n2*t?(s.length1+=c.length,i+=c.length,l=!1,s.diffs.push(new R.Diff(u,c)),r.diffs.shift()):(c=c.substring(0,t-s.length1-this.Patch_Margin),s.length1+=c.length,i+=c.length,u===Z?(s.length2+=c.length,o+=c.length):l=!1,s.diffs.push(new R.Diff(u,c)),c==r.diffs[0][1]?r.diffs.shift():r.diffs[0][1]=r.diffs[0][1].substring(c.length))}a=this.diff_text2(s.diffs),a=a.substring(a.length-this.Patch_Margin);var p=this.diff_text1(r.diffs).substring(0,this.Patch_Margin);p!==""&&(s.length1+=p.length,s.length2+=p.length,s.diffs.length!==0&&s.diffs[s.diffs.length-1][0]===Z?s.diffs[s.diffs.length-1][1]+=p:s.diffs.push(new R.Diff(Z,p))),l||e.splice(++n,0,s)}}};R.prototype.patch_toText=function(e){for(var t=[],n=0;n{(function(e,t){"use strict";typeof define=="function"&&define.amd?define(t):typeof ga=="object"&&ga.exports?ga.exports=t():e.log=t()})(Mf,function(){"use strict";var e=function(){},t="undefined",n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=["trace","debug","info","warn","error"];function i(d,h){var g=d[h];if(typeof g.bind=="function")return g.bind(d);try{return Function.prototype.bind.call(g,d)}catch(b){return function(){return Function.prototype.apply.apply(g,[d,arguments])}}}function o(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function a(d){return d==="debug"&&(d="log"),typeof console===t?!1:d==="trace"&&n?o:console[d]!==void 0?i(console,d):console.log!==void 0?i(console,"log"):e}function s(d,h){for(var g=0;g=0&&M<=b.levels.SILENT){if(O=M,z!==!1&&E(M),s.call(b,M,d),typeof console===t&&MHa});module.exports=fd(yx);var xe=require("obsidian");function Du(e){return typeof e=="undefined"||e===null}function dd(e){return typeof e=="object"&&e!==null}function hd(e){return Array.isArray(e)?e:Du(e)?[]:[e]}function gd(e,t){var n,r,i,o;if(t)for(o=Object.keys(t),n=0,r=o.length;n()=>(t||e((t={exports:{}}).exports,t),t.exports),ya=(e,t)=>{for(var n in t)Xn(e,n,{get:t[n],enumerable:!0})},ba=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Qu(t))!Ju.call(e,r)&&r!==n&&Xn(e,r,{get:()=>t[r],enumerable:!(i=ha(t,r))||i.enumerable});return e};var Ro=(e,t,n)=>(n=e!=null?Zu(Xu(e)):{},ba(t||!e||!e.__esModule?Xn(n,"default",{value:e,enumerable:!0}):n,e)),ep=e=>ba(Xn({},"__esModule",{value:!0}),e),A=(e,t,n,i)=>{for(var r=i>1?void 0:i?ha(t,n):t,o=e.length-1,s;o>=0;o--)(s=e[o])&&(r=(i?s(t,n,r):s(r))||r);return i&&r&&Xn(t,n,r),r};var wa=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)};var Ue=(e,t,n)=>(wa(e,t,"read from private field"),n?n.call(e):t.get(e)),Sn=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},xa=(e,t,n,i)=>(wa(e,t,"write to private field"),i?i.call(e,n):t.set(e,n),n);var wl=ga((Gg,In)=>{var _=function(){this.Diff_Timeout=1,this.Diff_EditCost=4,this.Match_Threshold=.5,this.Match_Distance=1e3,this.Patch_DeleteThreshold=.5,this.Patch_Margin=4,this.Match_MaxBits=32},Q=-1,ee=1,W=0;_.Diff=function(e,t){return[e,t]};_.prototype.diff_main=function(e,t,n,i){typeof i>"u"&&(this.Diff_Timeout<=0?i=Number.MAX_VALUE:i=new Date().getTime()+this.Diff_Timeout*1e3);var r=i;if(e==null||t==null)throw new Error("Null input. (diff_main)");if(e==t)return e?[new _.Diff(W,e)]:[];typeof n>"u"&&(n=!0);var o=n,s=this.diff_commonPrefix(e,t),a=e.substring(0,s);e=e.substring(s),t=t.substring(s),s=this.diff_commonSuffix(e,t);var l=e.substring(e.length-s);e=e.substring(0,e.length-s),t=t.substring(0,t.length-s);var u=this.diff_compute_(e,t,o,r);return a&&u.unshift(new _.Diff(W,a)),l&&u.push(new _.Diff(W,l)),this.diff_cleanupMerge(u),u};_.prototype.diff_compute_=function(e,t,n,i){var r;if(!e)return[new _.Diff(ee,t)];if(!t)return[new _.Diff(Q,e)];var o=e.length>t.length?e:t,s=e.length>t.length?t:e,a=o.indexOf(s);if(a!=-1)return r=[new _.Diff(ee,o.substring(0,a)),new _.Diff(W,s),new _.Diff(ee,o.substring(a+s.length))],e.length>t.length&&(r[0][0]=r[2][0]=Q),r;if(s.length==1)return[new _.Diff(Q,e),new _.Diff(ee,t)];var l=this.diff_halfMatch_(e,t);if(l){var u=l[0],p=l[1],m=l[2],c=l[3],d=l[4],h=this.diff_main(u,m,n,i),g=this.diff_main(p,c,n,i);return h.concat([new _.Diff(W,d)],g)}return n&&e.length>100&&t.length>100?this.diff_lineMode_(e,t,i):this.diff_bisect_(e,t,i)};_.prototype.diff_lineMode_=function(e,t,n){var i=this.diff_linesToChars_(e,t);e=i.chars1,t=i.chars2;var r=i.lineArray,o=this.diff_main(e,t,!1,n);this.diff_charsToLines_(o,r),this.diff_cleanupSemantic(o),o.push(new _.Diff(W,""));for(var s=0,a=0,l=0,u="",p="";s=1&&l>=1){o.splice(s-a-l,a+l),s=s-a-l;for(var m=this.diff_main(u,p,!1,n),c=m.length-1;c>=0;c--)o.splice(s,0,m[c]);s=s+m.length}l=0,a=0,u="",p="";break}s++}return o.pop(),o};_.prototype.diff_bisect_=function(e,t,n){for(var i=e.length,r=t.length,o=Math.ceil((i+r)/2),s=o,a=2*o,l=new Array(a),u=new Array(a),p=0;pn);b++){for(var C=-b+d;C<=b-h;C+=2){var O=s+C,E;C==-b||C!=b&&l[O-1]i)h+=2;else if(I>r)d+=2;else if(c){var T=s+m-C;if(T>=0&&T=B)return this.diff_bisectSplit_(e,t,E,I,n)}}}for(var M=-b+g;M<=b-x;M+=2){var T=s+M,B;M==-b||M!=b&&u[T-1]i)x+=2;else if(P>r)g+=2;else if(!c){var O=s+m-M;if(O>=0&&O=B)return this.diff_bisectSplit_(e,t,E,I,n)}}}}return[new _.Diff(Q,e),new _.Diff(ee,t)]};_.prototype.diff_bisectSplit_=function(e,t,n,i,r){var o=e.substring(0,n),s=t.substring(0,i),a=e.substring(n),l=t.substring(i),u=this.diff_main(o,s,!1,r),p=this.diff_main(a,l,!1,r);return u.concat(p)};_.prototype.diff_linesToChars_=function(e,t){var n=[],i={};n[0]="";function r(l){for(var u="",p=0,m=-1,c=n.length;mi?e=e.substring(n-i):nt.length?e:t,i=e.length>t.length?t:e;if(n.length<4||i.length*2=h.length?[E,I,T,B,O]:null}var s=o(n,i,Math.ceil(n.length/4)),a=o(n,i,Math.ceil(n.length/2)),l;if(!s&&!a)return null;a?s?l=s[4].length>a[4].length?s:a:l=a:l=s;var u,p,m,c;e.length>t.length?(u=l[0],p=l[1],m=l[2],c=l[3]):(m=l[0],c=l[1],u=l[2],p=l[3]);var d=l[4];return[u,p,m,c,d]};_.prototype.diff_cleanupSemantic=function(e){for(var t=!1,n=[],i=0,r=null,o=0,s=0,a=0,l=0,u=0;o0?n[i-1]:-1,s=0,a=0,l=0,u=0,r=null,t=!0)),o++;for(t&&this.diff_cleanupMerge(e),this.diff_cleanupSemanticLossless(e),o=1;o=d?(c>=p.length/2||c>=m.length/2)&&(e.splice(o,0,new _.Diff(W,m.substring(0,c))),e[o-1][1]=p.substring(0,p.length-c),e[o+1][1]=m.substring(c),o++):(d>=p.length/2||d>=m.length/2)&&(e.splice(o,0,new _.Diff(W,p.substring(0,d))),e[o-1][0]=ee,e[o-1][1]=m.substring(0,m.length-d),e[o+1][0]=Q,e[o+1][1]=p.substring(d),o++),o++}o++}};_.prototype.diff_cleanupSemanticLossless=function(e){function t(d,h){if(!d||!h)return 6;var g=d.charAt(d.length-1),x=h.charAt(0),b=g.match(_.nonAlphaNumericRegex_),C=x.match(_.nonAlphaNumericRegex_),O=b&&g.match(_.whitespaceRegex_),E=C&&x.match(_.whitespaceRegex_),I=O&&g.match(_.linebreakRegex_),T=E&&x.match(_.linebreakRegex_),B=I&&d.match(_.blanklineEndRegex_),M=T&&h.match(_.blanklineStartRegex_);return B||M?5:I||T?4:b&&!O&&E?3:O||E?2:b||C?1:0}for(var n=1;n=m&&(m=c,l=i,u=r,p=o)}e[n-1][1]!=l&&(l?e[n-1][1]=l:(e.splice(n-1,1),n--),e[n][1]=u,p?e[n+1][1]=p:(e.splice(n+1,1),n--))}n++}};_.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;_.whitespaceRegex_=/\s/;_.linebreakRegex_=/[\r\n]/;_.blanklineEndRegex_=/\n\r?\n$/;_.blanklineStartRegex_=/^\r?\n\r?\n/;_.prototype.diff_cleanupEfficiency=function(e){for(var t=!1,n=[],i=0,r=null,o=0,s=!1,a=!1,l=!1,u=!1;o0?n[i-1]:-1,l=u=!1),t=!0)),o++;t&&this.diff_cleanupMerge(e)};_.prototype.diff_cleanupMerge=function(e){e.push(new _.Diff(W,""));for(var t=0,n=0,i=0,r="",o="",s;t1?(n!==0&&i!==0&&(s=this.diff_commonPrefix(o,r),s!==0&&(t-n-i>0&&e[t-n-i-1][0]==W?e[t-n-i-1][1]+=o.substring(0,s):(e.splice(0,0,new _.Diff(W,o.substring(0,s))),t++),o=o.substring(s),r=r.substring(s)),s=this.diff_commonSuffix(o,r),s!==0&&(e[t][1]=o.substring(o.length-s)+e[t][1],o=o.substring(0,o.length-s),r=r.substring(0,r.length-s))),t-=n+i,e.splice(t,n+i),r.length&&(e.splice(t,0,new _.Diff(Q,r)),t++),o.length&&(e.splice(t,0,new _.Diff(ee,o)),t++),t++):t!==0&&e[t-1][0]==W?(e[t-1][1]+=e[t][1],e.splice(t,1)):t++,i=0,n=0,r="",o="";break}e[e.length-1][1]===""&&e.pop();var a=!1;for(t=1;tt));s++)r=n,o=i;return e.length!=s&&e[s][0]===Q?o:o+(t-r)};_.prototype.diff_prettyHtml=function(e){for(var t=[],n=/&/g,i=//g,o=/\n/g,s=0;s");switch(a){case ee:t[s]=''+u+"";break;case Q:t[s]=''+u+"";break;case W:t[s]=""+u+"";break}}return t.join("")};_.prototype.diff_text1=function(e){for(var t=[],n=0;nthis.Match_MaxBits)throw new Error("Pattern too long for this browser.");var i=this.match_alphabet_(t),r=this;function o(E,I){var T=E/t.length,B=Math.abs(n-I);return r.Match_Distance?T+B/r.Match_Distance:B?1:T}var s=this.Match_Threshold,a=e.indexOf(t,n);a!=-1&&(s=Math.min(o(0,a),s),a=e.lastIndexOf(t,n+t.length),a!=-1&&(s=Math.min(o(0,a),s)));var l=1<=h;b--){var C=i[e.charAt(b-1)];if(d===0?x[b]=(x[b+1]<<1|1)&C:x[b]=(x[b+1]<<1|1)&C|((c[b+1]|c[b])<<1|1)|c[b+1],x[b]&l){var O=o(d,b-1);if(O<=s)if(s=O,a=b-1,a>n)h=Math.max(1,2*n-a);else break}}if(o(d+1,n)>s)break;c=x}return a};_.prototype.match_alphabet_=function(e){for(var t={},n=0;n"u")i=e,r=this.diff_main(i,t,!0),r.length>2&&(this.diff_cleanupSemantic(r),this.diff_cleanupEfficiency(r));else if(e&&typeof e=="object"&&typeof t>"u"&&typeof n>"u")r=e,i=this.diff_text1(r);else if(typeof e=="string"&&t&&typeof t=="object"&&typeof n>"u")i=e,r=t;else if(typeof e=="string"&&typeof t=="string"&&n&&typeof n=="object")i=e,r=n;else throw new Error("Unknown call format to patch_make.");if(r.length===0)return[];for(var o=[],s=new _.patch_obj,a=0,l=0,u=0,p=i,m=i,c=0;c=2*this.Patch_Margin&&a&&(this.patch_addContext_(s,p),o.push(s),s=new _.patch_obj,a=0,p=m,l=u);break}d!==ee&&(l+=h.length),d!==Q&&(u+=h.length)}return a&&(this.patch_addContext_(s,p),o.push(s)),o};_.prototype.patch_deepCopy=function(e){for(var t=[],n=0;nthis.Match_MaxBits?(l=this.match_main(t,a.substring(0,this.Match_MaxBits),s),l!=-1&&(u=this.match_main(t,a.substring(a.length-this.Match_MaxBits),s+a.length-this.Match_MaxBits),(u==-1||l>=u)&&(l=-1))):l=this.match_main(t,a,s),l==-1)r[o]=!1,i-=e[o].length2-e[o].length1;else{r[o]=!0,i=l-s;var p;if(u==-1?p=t.substring(l,l+a.length):p=t.substring(l,u+this.Match_MaxBits),a==p)t=t.substring(0,l)+this.diff_text2(e[o].diffs)+t.substring(l+a.length);else{var m=this.diff_main(a,p,!1);if(a.length>this.Match_MaxBits&&this.diff_levenshtein(m)/a.length>this.Patch_DeleteThreshold)r[o]=!1;else{this.diff_cleanupSemanticLossless(m);for(var c=0,d,h=0;ho[0][1].length){var s=t-o[0][1].length;o[0][1]=n.substring(o[0][1].length)+o[0][1],r.start1-=s,r.start2-=s,r.length1+=s,r.length2+=s}if(r=e[e.length-1],o=r.diffs,o.length==0||o[o.length-1][0]!=W)o.push(new _.Diff(W,n)),r.length1+=t,r.length2+=t;else if(t>o[o.length-1][1].length){var s=t-o[o.length-1][1].length;o[o.length-1][1]+=n.substring(0,s),r.length1+=s,r.length2+=s}return n};_.prototype.patch_splitMax=function(e){for(var t=this.Match_MaxBits,n=0;n2*t?(a.length1+=p.length,r+=p.length,l=!1,a.diffs.push(new _.Diff(u,p)),i.diffs.shift()):(p=p.substring(0,t-a.length1-this.Patch_Margin),a.length1+=p.length,r+=p.length,u===W?(a.length2+=p.length,o+=p.length):l=!1,a.diffs.push(new _.Diff(u,p)),p==i.diffs[0][1]?i.diffs.shift():i.diffs[0][1]=i.diffs[0][1].substring(p.length))}s=this.diff_text2(a.diffs),s=s.substring(s.length-this.Patch_Margin);var m=this.diff_text1(i.diffs).substring(0,this.Patch_Margin);m!==""&&(a.length1+=m.length,a.length2+=m.length,a.diffs.length!==0&&a.diffs[a.diffs.length-1][0]===W?a.diffs[a.diffs.length-1][1]+=m:a.diffs.push(new _.Diff(W,m))),l||e.splice(++n,0,a)}}};_.prototype.patch_toText=function(e){for(var t=[],n=0;n{(function(e,t){"use strict";typeof define=="function"&&define.amd?define(t):typeof Nr=="object"&&Nr.exports?Nr.exports=t():e.log=t()})(xl,function(){"use strict";var e=function(){},t="undefined",n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"];function r(h,g){var x=h[g];if(typeof x.bind=="function")return x.bind(h);try{return Function.prototype.bind.call(x,h)}catch{return function(){return Function.prototype.apply.apply(x,[h,arguments])}}}function o(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function s(h){return h==="debug"&&(h="log"),typeof console===t?!1:h==="trace"&&n?o:console[h]!==void 0?r(console,h):console.log!==void 0?r(console,"log"):e}function a(h,g){for(var x=0;x=0&&M<=b.levels.SILENT){if(C=M,P!==!1&&E(M),a.call(b,M,h),typeof console===t&&MBo});module.exports=ep(kg);var oe=require("obsidian");function $a(e){return typeof e>"u"||e===null}function tp(e){return typeof e=="object"&&e!==null}function np(e){return Array.isArray(e)?e:$a(e)?[]:[e]}function ip(e,t){var n,i,r,o;if(t)for(o=Object.keys(t),n=0,i=o.length;ns&&(o=" ... ",t=r-s+o.length),n-r>s&&(a=" ...",n=r+s-a.length),{str:o+e.slice(t,n).replace(/\t/g,"\u2192")+a,pos:r-t+o.length}}function Wa(e,t){return Ee.repeat(" ",t-e.length)+e}function Td(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),typeof t.indent!="number"&&(t.indent=1),typeof t.linesBefore!="number"&&(t.linesBefore=3),typeof t.linesAfter!="number"&&(t.linesAfter=2);for(var n=/\r?\n|\r|\0/g,r=[0],i=[],o,a=-1;o=n.exec(e.buffer);)i.push(o.index),r.push(o.index+o[0].length),e.position<=o.index&&a<0&&(a=r.length-2);a<0&&(a=r.length-1);var s="",l,u,c=Math.min(e.line+t.linesAfter,i.length).toString().length,p=t.maxLength-(t.indent+c+3);for(l=1;l<=t.linesBefore&&!(a-l<0);l++)u=Ka(e.buffer,r[a-l],i[a-l],e.position-(r[a]-r[a-l]),p),s=Ee.repeat(" ",t.indent)+Wa((e.line-l+1).toString(),c)+" | "+u.str+` -`+s;for(u=Ka(e.buffer,r[a],i[a],e.position,p),s+=Ee.repeat(" ",t.indent)+Wa((e.line+1).toString(),c)+" | "+u.str+` -`,s+=Ee.repeat("-",t.indent+c+3+u.pos)+`^ -`,l=1;l<=t.linesAfter&&!(a+l>=i.length);l++)u=Ka(e.buffer,r[a+l],i[a+l],e.position-(r[a]-r[a+l]),p),s+=Ee.repeat(" ",t.indent)+Wa((e.line+l+1).toString(),c)+" | "+u.str+` -`;return s.replace(/\n$/,"")}var Cd=Td,Ad=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Ed=["scalar","sequence","mapping"];function Ld(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(r){t[String(r)]=n})}),t}function _d(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(Ad.indexOf(n)===-1)throw new Je('Unknown option "'+n+'" is met in definition of "'+e+'" YAML type.')}),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(n){return n},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=Ld(t.styleAliases||null),Ed.indexOf(this.kind)===-1)throw new Je('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var He=_d;function ku(e,t){var n=[];return e[t].forEach(function(r){var i=n.length;n.forEach(function(o,a){o.tag===r.tag&&o.kind===r.kind&&o.multi===r.multi&&(i=a)}),n[i]=r}),n}function Id(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},t,n;function r(i){i.multi?(e.multi[i.kind].push(i),e.multi.fallback.push(i)):e[i.kind][i.tag]=e.fallback[i.tag]=i}for(t=0,n=arguments.length;t=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),Xd=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Jd(e){return!(e===null||!Xd.test(e)||e[e.length-1]==="_")}function eh(e){var t,n;return t=e.replace(/_/g,"").toLowerCase(),n=t[0]==="-"?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?n===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:n*parseFloat(t,10)}var th=/^[-+]?[0-9]+e/;function nh(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Ee.isNegativeZero(e))return"-0.0";return n=e.toString(10),th.test(n)?n.replace("e",".e"):n}function rh(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||Ee.isNegativeZero(e))}var ih=new He("tag:yaml.org,2002:float",{kind:"scalar",resolve:Jd,construct:eh,predicate:rh,represent:nh,defaultStyle:"lowercase"}),oh=Dd.extend({implicit:[$d,qd,Qd,ih]}),ah=oh,Nu=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),zu=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function sh(e){return e===null?!1:Nu.exec(e)!==null||zu.exec(e)!==null}function lh(e){var t,n,r,i,o,a,s,l=0,u=null,c,p,m;if(t=Nu.exec(e),t===null&&(t=zu.exec(e)),t===null)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,r,i));if(o=+t[4],a=+t[5],s=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(c=+t[10],p=+(t[11]||0),u=(c*60+p)*6e4,t[9]==="-"&&(u=-u)),m=new Date(Date.UTC(n,r,i,o,a,s,l)),u&&m.setTime(m.getTime()-u),m}function uh(e){return e.toISOString()}var ch=new He("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:sh,construct:lh,instanceOf:Date,represent:uh});function ph(e){return e==="<<"||e===null}var mh=new He("tag:yaml.org,2002:merge",{kind:"scalar",resolve:ph}),es=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function fh(e){if(e===null)return!1;var t,n,r=0,i=e.length,o=es;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8===0}function dh(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,o=es,a=0,s=[];for(t=0;t>16&255),s.push(a>>8&255),s.push(a&255)),a=a<<6|o.indexOf(r.charAt(t));return n=i%4*6,n===0?(s.push(a>>16&255),s.push(a>>8&255),s.push(a&255)):n===18?(s.push(a>>10&255),s.push(a>>2&255)):n===12&&s.push(a>>4&255),new Uint8Array(s)}function hh(e){var t="",n=0,r,i,o=e.length,a=es;for(r=0;r>18&63],t+=a[n>>12&63],t+=a[n>>6&63],t+=a[n&63]),n=(n<<8)+e[r];return i=o%3,i===0?(t+=a[n>>18&63],t+=a[n>>12&63],t+=a[n>>6&63],t+=a[n&63]):i===2?(t+=a[n>>10&63],t+=a[n>>4&63],t+=a[n<<2&63],t+=a[64]):i===1&&(t+=a[n>>2&63],t+=a[n<<4&63],t+=a[64],t+=a[64]),t}function gh(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}var yh=new He("tag:yaml.org,2002:binary",{kind:"scalar",resolve:fh,construct:dh,predicate:gh,represent:hh}),bh=Object.prototype.hasOwnProperty,wh=Object.prototype.toString;function xh(e){if(e===null)return!0;var t=[],n,r,i,o,a,s=e;for(n=0,r=s.length;n>10)+55296,(e-65536&1023)+56320)}var Vu=new Array(256),Ku=new Array(256);for(kn=0;kn<256;kn++)Vu[kn]=Ou(kn)?1:0,Ku[kn]=Ou(kn);var kn;function zh(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||$u,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Wu(e,t){var n={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return n.snippet=Cd(n),new Je(t,n)}function j(e,t){throw Wu(e,t)}function co(e,t){e.onWarning&&e.onWarning.call(null,Wu(e,t))}var Tu={YAML:function(t,n,r){var i,o,a;t.version!==null&&j(t,"duplication of %YAML directive"),r.length!==1&&j(t,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),i===null&&j(t,"ill-formed argument of the YAML directive"),o=parseInt(i[1],10),a=parseInt(i[2],10),o!==1&&j(t,"unacceptable YAML version of the document"),t.version=r[0],t.checkLineBreaks=a<2,a!==1&&a!==2&&co(t,"unsupported YAML version of the document")},TAG:function(t,n,r){var i,o;r.length!==2&&j(t,"TAG directive accepts exactly two arguments"),i=r[0],o=r[1],ju.test(i)||j(t,"ill-formed tag handle (first argument) of the TAG directive"),tn.call(t.tagMap,i)&&j(t,'there is a previously declared suffix for "'+i+'" tag handle'),qu.test(o)||j(t,"ill-formed tag prefix (second argument) of the TAG directive");try{o=decodeURIComponent(o)}catch(a){j(t,"tag prefix is malformed: "+o)}t.tagMap[i]=o}};function en(e,t,n,r){var i,o,a,s;if(t1&&(e.result+=Ee.repeat(` -`,t-1))}function $h(e,t,n){var r,i,o,a,s,l,u,c,p=e.kind,m=e.result,f;if(f=e.input.charCodeAt(e.position),st(f)||tr(f)||f===35||f===38||f===42||f===33||f===124||f===62||f===39||f===34||f===37||f===64||f===96||(f===63||f===45)&&(i=e.input.charCodeAt(e.position+1),st(i)||n&&tr(i)))return!1;for(e.kind="scalar",e.result="",o=a=e.position,s=!1;f!==0;){if(f===58){if(i=e.input.charCodeAt(e.position+1),st(i)||n&&tr(i))break}else if(f===35){if(r=e.input.charCodeAt(e.position-1),st(r))break}else{if(e.position===e.lineStart&&fo(e)||n&&tr(f))break;if(Mt(f))if(l=e.line,u=e.lineStart,c=e.lineIndent,Ce(e,!1,-1),e.lineIndent>=t){s=!0,f=e.input.charCodeAt(e.position);continue}else{e.position=a,e.line=l,e.lineStart=u,e.lineIndent=c;break}}s&&(en(e,o,a,!1),ns(e,e.line-l),o=a=e.position,s=!1),vn(f)||(a=e.position+1),f=e.input.charCodeAt(++e.position)}return en(e,o,a,!1),e.result?!0:(e.kind=p,e.result=m,!1)}function Hh(e,t){var n,r,i;if(n=e.input.charCodeAt(e.position),n!==39)return!1;for(e.kind="scalar",e.result="",e.position++,r=i=e.position;(n=e.input.charCodeAt(e.position))!==0;)if(n===39)if(en(e,r,e.position,!0),n=e.input.charCodeAt(++e.position),n===39)r=e.position,e.position++,i=e.position;else return!0;else Mt(n)?(en(e,r,i,!0),ns(e,Ce(e,!1,t)),r=i=e.position):e.position===e.lineStart&&fo(e)?j(e,"unexpected end of the document within a single quoted scalar"):(e.position++,i=e.position);j(e,"unexpected end of the stream within a single quoted scalar")}function Yh(e,t){var n,r,i,o,a,s;if(s=e.input.charCodeAt(e.position),s!==34)return!1;for(e.kind="scalar",e.result="",e.position++,n=r=e.position;(s=e.input.charCodeAt(e.position))!==0;){if(s===34)return en(e,n,e.position,!0),e.position++,!0;if(s===92){if(en(e,n,e.position,!0),s=e.input.charCodeAt(++e.position),Mt(s))Ce(e,!1,t);else if(s<256&&Vu[s])e.result+=Ku[s],e.position++;else if((a=Dh(s))>0){for(i=a,o=0;i>0;i--)s=e.input.charCodeAt(++e.position),(a=Rh(s))>=0?o=(o<<4)+a:j(e,"expected hexadecimal character");e.result+=Nh(o),e.position++}else j(e,"unknown escape sequence");n=r=e.position}else Mt(s)?(en(e,n,r,!0),ns(e,Ce(e,!1,t)),n=r=e.position):e.position===e.lineStart&&fo(e)?j(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}j(e,"unexpected end of the stream within a double quoted scalar")}function jh(e,t){var n=!0,r,i,o,a=e.tag,s,l=e.anchor,u,c,p,m,f,d=Object.create(null),h,g,b,O;if(O=e.input.charCodeAt(e.position),O===91)c=93,f=!1,s=[];else if(O===123)c=125,f=!0,s={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=s),O=e.input.charCodeAt(++e.position);O!==0;){if(Ce(e,!0,t),O=e.input.charCodeAt(e.position),O===c)return e.position++,e.tag=a,e.anchor=l,e.kind=f?"mapping":"sequence",e.result=s,!0;n?O===44&&j(e,"expected the node content, but found ','"):j(e,"missed comma between flow collection entries"),g=h=b=null,p=m=!1,O===63&&(u=e.input.charCodeAt(e.position+1),st(u)&&(p=m=!0,e.position++,Ce(e,!0,t))),r=e.line,i=e.lineStart,o=e.position,rr(e,t,lo,!1,!0),g=e.tag,h=e.result,Ce(e,!0,t),O=e.input.charCodeAt(e.position),(m||e.line===r)&&O===58&&(p=!0,O=e.input.charCodeAt(++e.position),Ce(e,!0,t),rr(e,t,lo,!1,!0),b=e.result),f?nr(e,s,d,g,h,b,r,i,o):p?s.push(nr(e,null,d,g,h,b,r,i,o)):s.push(h),Ce(e,!0,t),O=e.input.charCodeAt(e.position),O===44?(n=!0,O=e.input.charCodeAt(++e.position)):n=!1}j(e,"unexpected end of the stream within a flow collection")}function qh(e,t){var n,r,i=Ua,o=!1,a=!1,s=t,l=0,u=!1,c,p;if(p=e.input.charCodeAt(e.position),p===124)r=!1;else if(p===62)r=!0;else return!1;for(e.kind="scalar",e.result="";p!==0;)if(p=e.input.charCodeAt(++e.position),p===43||p===45)Ua===i?i=p===43?vu:Ih:j(e,"repeat of a chomping mode identifier");else if((c=Ph(p))>=0)c===0?j(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):a?j(e,"repeat of an indentation width identifier"):(s=t+c-1,a=!0);else break;if(vn(p)){do p=e.input.charCodeAt(++e.position);while(vn(p));if(p===35)do p=e.input.charCodeAt(++e.position);while(!Mt(p)&&p!==0)}for(;p!==0;){for(ts(e),e.lineIndent=0,p=e.input.charCodeAt(e.position);(!a||e.lineIndents&&(s=e.lineIndent),Mt(p)){l++;continue}if(e.lineIndentt)&&l!==0)j(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(g&&(a=e.line,s=e.lineStart,l=e.position),rr(e,t,uo,!0,i)&&(g?d=e.result:h=e.result),g||(nr(e,p,m,f,d,h,a,s,l),f=d=h=null),Ce(e,!0,-1),O=e.input.charCodeAt(e.position)),(e.line===o||e.lineIndent>t)&&O!==0)j(e,"bad indentation of a mapping entry");else if(e.lineIndentt?l=1:e.lineIndent===t?l=0:e.lineIndentt?l=1:e.lineIndent===t?l=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),p=0,m=e.implicitTypes.length;p"),e.result!==null&&d.kind!==e.kind&&j(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+d.kind+'", not "'+e.kind+'"'),d.resolve(e.result,e.tag)?(e.result=d.construct(e.result,e.tag),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):j(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||c}function Gh(e){var t=e.position,n,r,i,o=!1,a;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(a=e.input.charCodeAt(e.position))!==0&&(Ce(e,!0,-1),a=e.input.charCodeAt(e.position),!(e.lineIndent>0||a!==37));){for(o=!0,a=e.input.charCodeAt(++e.position),n=e.position;a!==0&&!st(a);)a=e.input.charCodeAt(++e.position);for(r=e.input.slice(n,e.position),i=[],r.length<1&&j(e,"directive name must not be less than one character in length");a!==0;){for(;vn(a);)a=e.input.charCodeAt(++e.position);if(a===35){do a=e.input.charCodeAt(++e.position);while(a!==0&&!Mt(a));break}if(Mt(a))break;for(n=e.position;a!==0&&!st(a);)a=e.input.charCodeAt(++e.position);i.push(e.input.slice(n,e.position))}a!==0&&ts(e),tn.call(Tu,r)?Tu[r](e,r,i):co(e,'unknown document directive "'+r+'"')}if(Ce(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,Ce(e,!0,-1)):o&&j(e,"directives end mark is expected"),rr(e,e.lineIndent-1,uo,!1,!0),Ce(e,!0,-1),e.checkLineBreaks&&Bh.test(e.input.slice(t,e.position))&&co(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&fo(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,Ce(e,!0,-1));return}if(e.position=55296&&n<=56319&&t+1=56320&&r<=57343)?(n-55296)*1024+r-56320+65536:n}function rc(e){var t=/^\n* /;return t.test(e)}var ic=1,Xa=2,oc=3,ac=4,er=5;function Tg(e,t,n,r,i,o,a,s){var l,u=0,c=null,p=!1,m=!1,f=r!==-1,d=-1,h=Sg(Mr(e,0))&&Og(Mr(e,e.length-1));if(t||a)for(l=0;l=65536?l+=2:l++){if(u=Mr(e,l),!Dr(u))return er;h=h&&_u(u,c,s),c=u}else{for(l=0;l=65536?l+=2:l++){if(u=Mr(e,l),u===Fr)p=!0,f&&(m=m||l-d-1>r&&e[d+1]!==" ",d=l);else if(!Dr(u))return er;h=h&&_u(u,c,s),c=u}m=m||f&&l-d-1>r&&e[d+1]!==" "}return!p&&!m?h&&!a&&!i(e)?ic:o===Rr?er:Xa:n>9&&rc(e)?er:a?o===Rr?er:Xa:m?ac:oc}function Cg(e,t,n,r,i){e.dump=function(){if(t.length===0)return e.quotingType===Rr?'""':"''";if(!e.noCompatMode&&(gg.indexOf(t)!==-1||yg.test(t)))return e.quotingType===Rr?'"'+t+'"':"'"+t+"'";var o=e.indent*Math.max(1,n),a=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),s=r||e.flowLevel>-1&&n>=e.flowLevel;function l(u){return vg(e,u)}switch(Tg(t,s,e.indent,a,l,e.quotingType,e.forceQuotes&&!r,i)){case ic:return t;case Xa:return"'"+t.replace(/'/g,"''")+"'";case oc:return"|"+Iu(t,e.indent)+Mu(Eu(t,o));case ac:return">"+Iu(t,e.indent)+Mu(Eu(Ag(t,a),o));case er:return'"'+Eg(t)+'"';default:throw new Je("impossible error: invalid scalar style")}}()}function Iu(e,t){var n=rc(e)?String(t):"",r=e[e.length-1]===` -`,i=r&&(e[e.length-2]===` +`+e.mark.snippet),i+" "+n):i}function ei(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=Da(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}ei.prototype=Object.create(Error.prototype);ei.prototype.constructor=ei;ei.prototype.toString=function(t){return this.name+": "+Da(this,t)};var He=ei;function $o(e,t,n,i,r){var o="",s="",a=Math.floor(r/2)-1;return i-t>a&&(o=" ... ",t=i-a+o.length),n-i>a&&(s=" ...",n=i+a-s.length),{str:o+e.slice(t,n).replace(/\t/g,"\u2192")+s,pos:i-t+o.length}}function Do(e,t){return ge.repeat(" ",t-e.length)+e}function mp(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),typeof t.indent!="number"&&(t.indent=1),typeof t.linesBefore!="number"&&(t.linesBefore=3),typeof t.linesAfter!="number"&&(t.linesAfter=2);for(var n=/\r?\n|\r|\0/g,i=[0],r=[],o,s=-1;o=n.exec(e.buffer);)r.push(o.index),i.push(o.index+o[0].length),e.position<=o.index&&s<0&&(s=i.length-2);s<0&&(s=i.length-1);var a="",l,u,p=Math.min(e.line+t.linesAfter,r.length).toString().length,m=t.maxLength-(t.indent+p+3);for(l=1;l<=t.linesBefore&&!(s-l<0);l++)u=$o(e.buffer,i[s-l],r[s-l],e.position-(i[s]-i[s-l]),m),a=ge.repeat(" ",t.indent)+Do((e.line-l+1).toString(),p)+" | "+u.str+` +`+a;for(u=$o(e.buffer,i[s],r[s],e.position,m),a+=ge.repeat(" ",t.indent)+Do((e.line+1).toString(),p)+" | "+u.str+` +`,a+=ge.repeat("-",t.indent+p+3+u.pos)+`^ +`,l=1;l<=t.linesAfter&&!(s+l>=r.length);l++)u=$o(e.buffer,i[s+l],r[s+l],e.position-(i[s]-i[s+l]),m),a+=ge.repeat(" ",t.indent)+Do((e.line+l+1).toString(),p)+" | "+u.str+` +`;return a.replace(/\n$/,"")}var dp=mp,fp=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],hp=["scalar","sequence","mapping"];function gp(e){var t={};return e!==null&&Object.keys(e).forEach(function(n){e[n].forEach(function(i){t[String(i)]=n})}),t}function yp(e,t){if(t=t||{},Object.keys(t).forEach(function(n){if(fp.indexOf(n)===-1)throw new He('Unknown option "'+n+'" is met in definition of "'+e+'" YAML type.')}),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(n){return n},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=gp(t.styleAliases||null),hp.indexOf(this.kind)===-1)throw new He('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var Fe=yp;function va(e,t){var n=[];return e[t].forEach(function(i){var r=n.length;n.forEach(function(o,s){o.tag===i.tag&&o.kind===i.kind&&o.multi===i.multi&&(r=s)}),n[r]=i}),n}function bp(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},t,n;function i(r){r.multi?(e.multi[r.kind].push(r),e.multi.fallback.push(r)):e[r.kind][r.tag]=e.fallback[r.tag]=r}for(t=0,n=arguments.length;t=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),Np=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Hp(e){return!(e===null||!Np.test(e)||e[e.length-1]==="_")}function Yp(e){var t,n;return t=e.replace(/_/g,"").toLowerCase(),n=t[0]==="-"?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?n===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:n*parseFloat(t,10)}var zp=/^[-+]?[0-9]+e/;function qp(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(ge.isNegativeZero(e))return"-0.0";return n=e.toString(10),zp.test(n)?n.replace("e",".e"):n}function Kp(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||ge.isNegativeZero(e))}var jp=new Fe("tag:yaml.org,2002:float",{kind:"scalar",resolve:Hp,construct:Yp,predicate:Kp,represent:qp,defaultStyle:"lowercase"}),Vp=Sp.extend({implicit:[Lp,Bp,Pp,jp]}),Wp=Vp,Pa=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Na=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Up(e){return e===null?!1:Pa.exec(e)!==null||Na.exec(e)!==null}function Gp(e){var t,n,i,r,o,s,a,l=0,u=null,p,m,c;if(t=Pa.exec(e),t===null&&(t=Na.exec(e)),t===null)throw new Error("Date resolve error");if(n=+t[1],i=+t[2]-1,r=+t[3],!t[4])return new Date(Date.UTC(n,i,r));if(o=+t[4],s=+t[5],a=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(p=+t[10],m=+(t[11]||0),u=(p*60+m)*6e4,t[9]==="-"&&(u=-u)),c=new Date(Date.UTC(n,i,r,o,s,a,l)),u&&c.setTime(c.getTime()-u),c}function Zp(e){return e.toISOString()}var Qp=new Fe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Up,construct:Gp,instanceOf:Date,represent:Zp});function Xp(e){return e==="<<"||e===null}var Jp=new Fe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Xp}),Ko=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function ec(e){if(e===null)return!1;var t,n,i=0,r=e.length,o=Ko;for(n=0;n64)){if(t<0)return!1;i+=6}return i%8===0}function tc(e){var t,n,i=e.replace(/[\r\n=]/g,""),r=i.length,o=Ko,s=0,a=[];for(t=0;t>16&255),a.push(s>>8&255),a.push(s&255)),s=s<<6|o.indexOf(i.charAt(t));return n=r%4*6,n===0?(a.push(s>>16&255),a.push(s>>8&255),a.push(s&255)):n===18?(a.push(s>>10&255),a.push(s>>2&255)):n===12&&a.push(s>>4&255),new Uint8Array(a)}function nc(e){var t="",n=0,i,r,o=e.length,s=Ko;for(i=0;i>18&63],t+=s[n>>12&63],t+=s[n>>6&63],t+=s[n&63]),n=(n<<8)+e[i];return r=o%3,r===0?(t+=s[n>>18&63],t+=s[n>>12&63],t+=s[n>>6&63],t+=s[n&63]):r===2?(t+=s[n>>10&63],t+=s[n>>4&63],t+=s[n<<2&63],t+=s[64]):r===1&&(t+=s[n>>2&63],t+=s[n<<4&63],t+=s[64],t+=s[64]),t}function ic(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}var rc=new Fe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:ec,construct:tc,predicate:ic,represent:nc}),oc=Object.prototype.hasOwnProperty,sc=Object.prototype.toString;function ac(e){if(e===null)return!0;var t=[],n,i,r,o,s,a=e;for(n=0,i=a.length;n>10)+55296,(e-65536&1023)+56320)}var ja=new Array(256),Va=new Array(256);for(qt=0;qt<256;qt++)ja[qt]=Ta(qt)?1:0,Va[qt]=Ta(qt);var qt;function Ac(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Ha,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Wa(e,t){var n={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return n.snippet=dp(n),new He(t,n)}function H(e,t){throw Wa(e,t)}function Tr(e,t){e.onWarning&&e.onWarning.call(null,Wa(e,t))}var Oa={YAML:function(t,n,i){var r,o,s;t.version!==null&&H(t,"duplication of %YAML directive"),i.length!==1&&H(t,"YAML directive accepts exactly one argument"),r=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),r===null&&H(t,"ill-formed argument of the YAML directive"),o=parseInt(r[1],10),s=parseInt(r[2],10),o!==1&&H(t,"unacceptable YAML version of the document"),t.version=i[0],t.checkLineBreaks=s<2,s!==1&&s!==2&&Tr(t,"unsupported YAML version of the document")},TAG:function(t,n,i){var r,o;i.length!==2&&H(t,"TAG directive accepts exactly two arguments"),r=i[0],o=i[1],qa.test(r)||H(t,"ill-formed tag handle (first argument) of the TAG directive"),Bt.call(t.tagMap,r)&&H(t,'there is a previously declared suffix for "'+r+'" tag handle'),Ka.test(o)||H(t,"ill-formed tag prefix (second argument) of the TAG directive");try{o=decodeURIComponent(o)}catch{H(t,"tag prefix is malformed: "+o)}t.tagMap[r]=o}};function _t(e,t,n,i){var r,o,s,a;if(t1&&(e.result+=ge.repeat(` +`,t-1))}function Lc(e,t,n){var i,r,o,s,a,l,u,p,m=e.kind,c=e.result,d;if(d=e.input.charCodeAt(e.position),Ve(d)||On(d)||d===35||d===38||d===42||d===33||d===124||d===62||d===39||d===34||d===37||d===64||d===96||(d===63||d===45)&&(r=e.input.charCodeAt(e.position+1),Ve(r)||n&&On(r)))return!1;for(e.kind="scalar",e.result="",o=s=e.position,a=!1;d!==0;){if(d===58){if(r=e.input.charCodeAt(e.position+1),Ve(r)||n&&On(r))break}else if(d===35){if(i=e.input.charCodeAt(e.position-1),Ve(i))break}else{if(e.position===e.lineStart&&Lr(e)||n&&On(d))break;if(dt(d))if(l=e.line,u=e.lineStart,p=e.lineIndent,fe(e,!1,-1),e.lineIndent>=t){a=!0,d=e.input.charCodeAt(e.position);continue}else{e.position=s,e.line=l,e.lineStart=u,e.lineIndent=p;break}}a&&(_t(e,o,s,!1),Vo(e,e.line-l),o=s=e.position,a=!1),Kt(d)||(s=e.position+1),d=e.input.charCodeAt(++e.position)}return _t(e,o,s,!1),e.result?!0:(e.kind=m,e.result=c,!1)}function Cc(e,t){var n,i,r;if(n=e.input.charCodeAt(e.position),n!==39)return!1;for(e.kind="scalar",e.result="",e.position++,i=r=e.position;(n=e.input.charCodeAt(e.position))!==0;)if(n===39)if(_t(e,i,e.position,!0),n=e.input.charCodeAt(++e.position),n===39)i=e.position,e.position++,r=e.position;else return!0;else dt(n)?(_t(e,i,r,!0),Vo(e,fe(e,!1,t)),i=r=e.position):e.position===e.lineStart&&Lr(e)?H(e,"unexpected end of the document within a single quoted scalar"):(e.position++,r=e.position);H(e,"unexpected end of the stream within a single quoted scalar")}function Ec(e,t){var n,i,r,o,s,a;if(a=e.input.charCodeAt(e.position),a!==34)return!1;for(e.kind="scalar",e.result="",e.position++,n=i=e.position;(a=e.input.charCodeAt(e.position))!==0;){if(a===34)return _t(e,n,e.position,!0),e.position++,!0;if(a===92){if(_t(e,n,e.position,!0),a=e.input.charCodeAt(++e.position),dt(a))fe(e,!1,t);else if(a<256&&ja[a])e.result+=Va[a],e.position++;else if((s=Sc(a))>0){for(r=s,o=0;r>0;r--)a=e.input.charCodeAt(++e.position),(s=kc(a))>=0?o=(o<<4)+s:H(e,"expected hexadecimal character");e.result+=Oc(o),e.position++}else H(e,"unknown escape sequence");n=i=e.position}else dt(a)?(_t(e,n,i,!0),Vo(e,fe(e,!1,t)),n=i=e.position):e.position===e.lineStart&&Lr(e)?H(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}H(e,"unexpected end of the stream within a double quoted scalar")}function _c(e,t){var n=!0,i,r,o,s=e.tag,a,l=e.anchor,u,p,m,c,d,h=Object.create(null),g,x,b,C;if(C=e.input.charCodeAt(e.position),C===91)p=93,d=!1,a=[];else if(C===123)p=125,d=!0,a={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=a),C=e.input.charCodeAt(++e.position);C!==0;){if(fe(e,!0,t),C=e.input.charCodeAt(e.position),C===p)return e.position++,e.tag=s,e.anchor=l,e.kind=d?"mapping":"sequence",e.result=a,!0;n?C===44&&H(e,"expected the node content, but found ','"):H(e,"missed comma between flow collection entries"),x=g=b=null,m=c=!1,C===63&&(u=e.input.charCodeAt(e.position+1),Ve(u)&&(m=c=!0,e.position++,fe(e,!0,t))),i=e.line,r=e.lineStart,o=e.position,Ln(e,t,kr,!1,!0),x=e.tag,g=e.result,fe(e,!0,t),C=e.input.charCodeAt(e.position),(c||e.line===i)&&C===58&&(m=!0,C=e.input.charCodeAt(++e.position),fe(e,!0,t),Ln(e,t,kr,!1,!0),b=e.result),d?An(e,a,h,x,g,b,i,r,o):m?a.push(An(e,null,h,x,g,b,i,r,o)):a.push(g),fe(e,!0,t),C=e.input.charCodeAt(e.position),C===44?(n=!0,C=e.input.charCodeAt(++e.position)):n=!1}H(e,"unexpected end of the stream within a flow collection")}function Bc(e,t){var n,i,r=Po,o=!1,s=!1,a=t,l=0,u=!1,p,m;if(m=e.input.charCodeAt(e.position),m===124)i=!1;else if(m===62)i=!0;else return!1;for(e.kind="scalar",e.result="";m!==0;)if(m=e.input.charCodeAt(++e.position),m===43||m===45)Po===r?r=m===43?ka:bc:H(e,"repeat of a chomping mode identifier");else if((p=Tc(m))>=0)p===0?H(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?H(e,"repeat of an indentation width identifier"):(a=t+p-1,s=!0);else break;if(Kt(m)){do m=e.input.charCodeAt(++e.position);while(Kt(m));if(m===35)do m=e.input.charCodeAt(++e.position);while(!dt(m)&&m!==0)}for(;m!==0;){for(jo(e),e.lineIndent=0,m=e.input.charCodeAt(e.position);(!s||e.lineIndenta&&(a=e.lineIndent),dt(m)){l++;continue}if(e.lineIndentt)&&l!==0)H(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(x&&(s=e.line,a=e.lineStart,l=e.position),Ln(e,t,Sr,!0,r)&&(x?h=e.result:g=e.result),x||(An(e,m,c,d,h,g,s,a,l),d=h=g=null),fe(e,!0,-1),C=e.input.charCodeAt(e.position)),(e.line===o||e.lineIndent>t)&&C!==0)H(e,"bad indentation of a mapping entry");else if(e.lineIndentt?l=1:e.lineIndent===t?l=0:e.lineIndentt?l=1:e.lineIndent===t?l=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),m=0,c=e.implicitTypes.length;m"),e.result!==null&&h.kind!==e.kind&&H(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+h.kind+'", not "'+e.kind+'"'),h.resolve(e.result,e.tag)?(e.result=h.construct(e.result,e.tag),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):H(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||p}function $c(e){var t=e.position,n,i,r,o=!1,s;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(s=e.input.charCodeAt(e.position))!==0&&(fe(e,!0,-1),s=e.input.charCodeAt(e.position),!(e.lineIndent>0||s!==37));){for(o=!0,s=e.input.charCodeAt(++e.position),n=e.position;s!==0&&!Ve(s);)s=e.input.charCodeAt(++e.position);for(i=e.input.slice(n,e.position),r=[],i.length<1&&H(e,"directive name must not be less than one character in length");s!==0;){for(;Kt(s);)s=e.input.charCodeAt(++e.position);if(s===35){do s=e.input.charCodeAt(++e.position);while(s!==0&&!dt(s));break}if(dt(s))break;for(n=e.position;s!==0&&!Ve(s);)s=e.input.charCodeAt(++e.position);r.push(e.input.slice(n,e.position))}s!==0&&jo(e),Bt.call(Oa,i)?Oa[i](e,i,r):Tr(e,'unknown document directive "'+i+'"')}if(fe(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,fe(e,!0,-1)):o&&H(e,"directives end mark is expected"),Ln(e,e.lineIndent-1,Sr,!1,!0),fe(e,!0,-1),e.checkLineBreaks&&xc.test(e.input.slice(t,e.position))&&Tr(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&Lr(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,fe(e,!0,-1));return}if(e.position"u"&&(n=t,t=null);var i=Ua(e,n);if(typeof t!="function")return i;for(var r=0,o=i.length;r=55296&&n<=56319&&t+1=56320&&i<=57343)?(n-55296)*1024+i-56320+65536:n}function il(e){var t=/^\n* /;return t.test(e)}var rl=1,zo=2,ol=3,sl=4,Tn=5;function mm(e,t,n,i,r,o,s,a){var l,u=0,p=null,m=!1,c=!1,d=i!==-1,h=-1,g=pm(Jn(e,0))&&cm(Jn(e,e.length-1));if(t||s)for(l=0;l=65536?l+=2:l++){if(u=Jn(e,l),!ii(u))return Tn;g=g&&_a(u,p,a),p=u}else{for(l=0;l=65536?l+=2:l++){if(u=Jn(e,l),u===ti)m=!0,d&&(c=c||l-h-1>i&&e[h+1]!==" ",h=l);else if(!ii(u))return Tn;g=g&&_a(u,p,a),p=u}c=c||d&&l-h-1>i&&e[h+1]!==" "}return!m&&!c?g&&!s&&!r(e)?rl:o===ni?Tn:zo:n>9&&il(e)?Tn:s?o===ni?Tn:zo:c?sl:ol}function dm(e,t,n,i,r){e.dump=function(){if(t.length===0)return e.quotingType===ni?'""':"''";if(!e.noCompatMode&&(im.indexOf(t)!==-1||rm.test(t)))return e.quotingType===ni?'"'+t+'"':"'"+t+"'";var o=e.indent*Math.max(1,n),s=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),a=i||e.flowLevel>-1&&n>=e.flowLevel;function l(u){return um(e,u)}switch(mm(t,a,e.indent,s,l,e.quotingType,e.forceQuotes&&!i,r)){case rl:return t;case zo:return"'"+t.replace(/'/g,"''")+"'";case ol:return"|"+Ba(t,e.indent)+Ma(Ca(t,o));case sl:return">"+Ba(t,e.indent)+Ma(Ca(fm(t,s),o));case Tn:return'"'+hm(t)+'"';default:throw new He("impossible error: invalid scalar style")}}()}function Ba(e,t){var n=il(e)?String(t):"",i=e[e.length-1]===` +`,r=i&&(e[e.length-2]===` `||e===` -`),o=i?"+":r?"":"-";return n+o+` -`}function Mu(e){return e[e.length-1]===` -`?e.slice(0,-1):e}function Ag(e,t){for(var n=/(\n+)([^\n]*)/g,r=function(){var u=e.indexOf(` -`);return u=u!==-1?u:e.length,n.lastIndex=u,Bu(e.slice(0,u),t)}(),i=e[0]===` -`||e[0]===" ",o,a;a=n.exec(e);){var s=a[1],l=a[2];o=l[0]===" ",r+=s+(!i&&!o&&l!==""?` -`:"")+Bu(l,t),i=o}return r}function Bu(e,t){if(e===""||e[0]===" ")return e;for(var n=/ [^ ]/g,r,i=0,o,a=0,s=0,l="";r=n.exec(e);)s=r.index,s-i>t&&(o=a>i?a:s,l+=` -`+e.slice(i,o),i=o+1),a=s;return l+=` -`,e.length-i>t&&a>i?l+=e.slice(i,a)+` -`+e.slice(a+1):l+=e.slice(i),l.slice(1)}function Eg(e){for(var t="",n=0,r,i=0;i=65536?i+=2:i++)n=Mr(e,i),r=Ye[n],!r&&Dr(n)?(t+=e[i],n>=65536&&(t+=e[i+1])):t+=r||wg(n);return t}function Lg(e,t,n){var r="",i=e.tag,o,a,s;for(o=0,a=n.length;o1024&&(c+="? "),c+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Yt(e,t,u,!1,!1)&&(c+=e.dump,r+=c));e.tag=i,e.dump="{"+r+"}"}function Ig(e,t,n,r){var i="",o=e.tag,a=Object.keys(n),s,l,u,c,p,m;if(e.sortKeys===!0)a.sort();else if(typeof e.sortKeys=="function")a.sort(e.sortKeys);else if(e.sortKeys)throw new Je("sortKeys must be a boolean or a function");for(s=0,l=a.length;s1024,p&&(e.dump&&Fr===e.dump.charCodeAt(0)?m+="?":m+="? "),m+=e.dump,p&&(m+=Qa(e,t)),Yt(e,t+1,c,!0,p)&&(e.dump&&Fr===e.dump.charCodeAt(0)?m+=":":m+=": ",m+=e.dump,i+=m));e.tag=o,e.dump=i||"{}"}function Ru(e,t,n){var r,i,o,a,s,l;for(i=n?e.explicitTypes:e.implicitTypes,o=0,a=i.length;o tag resolver accepts not "'+l+'" style');e.dump=r}return!0}return!1}function Yt(e,t,n,r,i,o,a){e.tag=null,e.dump=n,Ru(e,n,!1)||Ru(e,n,!0);var s=Zu.call(e.dump),l=r,u;r&&(r=e.flowLevel<0||e.flowLevel>t);var c=s==="[object Object]"||s==="[object Array]",p,m;if(c&&(p=e.duplicates.indexOf(n),m=p!==-1),(e.tag!==null&&e.tag!=="?"||m||e.indent!==2&&t>0)&&(i=!1),m&&e.usedDuplicates[p])e.dump="*ref_"+p;else{if(c&&m&&!e.usedDuplicates[p]&&(e.usedDuplicates[p]=!0),s==="[object Object]")r&&Object.keys(e.dump).length!==0?(Ig(e,t,e.dump,i),m&&(e.dump="&ref_"+p+e.dump)):(_g(e,t,e.dump),m&&(e.dump="&ref_"+p+" "+e.dump));else if(s==="[object Array]")r&&e.dump.length!==0?(e.noArrayIndent&&!a&&t>0?Fu(e,t-1,e.dump,i):Fu(e,t,e.dump,i),m&&(e.dump="&ref_"+p+e.dump)):(Lg(e,t,e.dump),m&&(e.dump="&ref_"+p+" "+e.dump));else if(s==="[object String]")e.tag!=="?"&&Cg(e,e.dump,t,o,l);else{if(s==="[object Undefined]")return!1;if(e.skipInvalid)return!1;throw new Je("unacceptable kind of an object to dump "+s)}e.tag!==null&&e.tag!=="?"&&(u=encodeURI(e.tag[0]==="!"?e.tag.slice(1):e.tag).replace(/!/g,"%21"),e.tag[0]==="!"?u="!"+u:u.slice(0,18)==="tag:yaml.org,2002:"?u="!!"+u.slice(18):u="!<"+u+">",e.dump=u+" "+e.dump)}return!0}function Mg(e,t){var n=[],r=[],i,o;for(Ja(e,n,r),i=0,o=r.length;it&&(o=s>r?s:a,l+=` +`+e.slice(r,o),r=o+1),s=a;return l+=` +`,e.length-r>t&&s>r?l+=e.slice(r,s)+` +`+e.slice(s+1):l+=e.slice(r),l.slice(1)}function hm(e){for(var t="",n=0,i,r=0;r=65536?r+=2:r++)n=Jn(e,r),i=Re[n],!i&&ii(n)?(t+=e[r],n>=65536&&(t+=e[r+1])):t+=i||sm(n);return t}function gm(e,t,n){var i="",r=e.tag,o,s,a;for(o=0,s=n.length;o"u"&&vt(e,t,null,!1,!1))&&(i!==""&&(i+=","+(e.condenseFlow?"":" ")),i+=e.dump);e.tag=r,e.dump="["+i+"]"}function Fa(e,t,n,i){var r="",o=e.tag,s,a,l;for(s=0,a=n.length;s"u"&&vt(e,t+1,null,!0,!0,!1,!0))&&((!i||r!=="")&&(r+=Yo(e,t)),e.dump&&ti===e.dump.charCodeAt(0)?r+="-":r+="- ",r+=e.dump);e.tag=o,e.dump=r||"[]"}function ym(e,t,n){var i="",r=e.tag,o=Object.keys(n),s,a,l,u,p;for(s=0,a=o.length;s1024&&(p+="? "),p+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),vt(e,t,u,!1,!1)&&(p+=e.dump,i+=p));e.tag=r,e.dump="{"+i+"}"}function bm(e,t,n,i){var r="",o=e.tag,s=Object.keys(n),a,l,u,p,m,c;if(e.sortKeys===!0)s.sort();else if(typeof e.sortKeys=="function")s.sort(e.sortKeys);else if(e.sortKeys)throw new He("sortKeys must be a boolean or a function");for(a=0,l=s.length;a1024,m&&(e.dump&&ti===e.dump.charCodeAt(0)?c+="?":c+="? "),c+=e.dump,m&&(c+=Yo(e,t)),vt(e,t+1,p,!0,m)&&(e.dump&&ti===e.dump.charCodeAt(0)?c+=":":c+=": ",c+=e.dump,r+=c));e.tag=o,e.dump=r||"{}"}function Ra(e,t,n){var i,r,o,s,a,l;for(r=n?e.explicitTypes:e.implicitTypes,o=0,s=r.length;o tag resolver accepts not "'+l+'" style');e.dump=i}return!0}return!1}function vt(e,t,n,i,r,o,s){e.tag=null,e.dump=n,Ra(e,n,!1)||Ra(e,n,!0);var a=Za.call(e.dump),l=i,u;i&&(i=e.flowLevel<0||e.flowLevel>t);var p=a==="[object Object]"||a==="[object Array]",m,c;if(p&&(m=e.duplicates.indexOf(n),c=m!==-1),(e.tag!==null&&e.tag!=="?"||c||e.indent!==2&&t>0)&&(r=!1),c&&e.usedDuplicates[m])e.dump="*ref_"+m;else{if(p&&c&&!e.usedDuplicates[m]&&(e.usedDuplicates[m]=!0),a==="[object Object]")i&&Object.keys(e.dump).length!==0?(bm(e,t,e.dump,r),c&&(e.dump="&ref_"+m+e.dump)):(ym(e,t,e.dump),c&&(e.dump="&ref_"+m+" "+e.dump));else if(a==="[object Array]")i&&e.dump.length!==0?(e.noArrayIndent&&!s&&t>0?Fa(e,t-1,e.dump,r):Fa(e,t,e.dump,r),c&&(e.dump="&ref_"+m+e.dump)):(gm(e,t,e.dump),c&&(e.dump="&ref_"+m+" "+e.dump));else if(a==="[object String]")e.tag!=="?"&&dm(e,e.dump,t,o,l);else{if(a==="[object Undefined]")return!1;if(e.skipInvalid)return!1;throw new He("unacceptable kind of an object to dump "+a)}e.tag!==null&&e.tag!=="?"&&(u=encodeURI(e.tag[0]==="!"?e.tag.slice(1):e.tag).replace(/!/g,"%21"),e.tag[0]==="!"?u="!"+u:u.slice(0,18)==="tag:yaml.org,2002:"?u="!!"+u.slice(18):u="!<"+u+">",e.dump=u+" "+e.dump)}return!0}function wm(e,t){var n=[],i=[],r,o;for(qo(e,n,i),r=0,o=i.length;r0){let l=s.split(` +`);o=l[l.length-1]??"",o=o.trimEnd();let u=0;for(;l.length-(2+u)>=0;){let p=l[l.length-(2+u)];if(!Mt(o,p)&&(!i||!Mt("",p,!0)))break;u++}l.splice(l.length-(1+u),u),l.length>1&&(i&&l[l.length-2].match(/^> ?.*$/m)||!i&&!Mt(o,l[l.length-2])?l.splice(l.length-1,0,o):Mt("",l[l.length-2],!0)||l.splice(l.length-1,0,"")),s=l.join(` +`)}let a=e.substring(n);if(a.length>0){let l=a.split(` +`),u=0;for(;u+11&&(i&&l[1].match(/^> ?.*$/m)||!i&&!Mt(o,l[1])?l.splice(1,0,o):i&&!Mt("",l[1])&&l.splice(1,0,"")),a=l.join(` +`)}return s+r+a}var Cn=/^(\s*)(#+)(\s+)(.*)$/,cl=`^XXX\\.*? (?:((?:.| )*?) -)?XXX(?=\\s|$)$`,Ie=/^---\n((?:(((?!---)(?:.|\n)*?)\n)?))---(?=\n|$)/,Dg=cc.replaceAll("X","`"),Pg=cc.replaceAll("X","~"),Ng=`^(( |( {4})).* -)+`,Ox=new RegExp(`${Dg}|${Pg}|${Ng}`,"gm"),os=/(!?)(\[{2}[^[\n\]]*\]{2})/g,ho=/^!?\[.*\](.*)$/,Pr=/(?:\s|^)#[^\s#]{1,}/g,pc=/^%%\n[^%]*\n%%/gm,as=/[,\s]+/;function je(e){return e.replace(/\$/g,"$$$$")}function mc(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function fc(e){let t=e.match(os);if(t){for(let n of t)if(n.includes("|")){let r=n.indexOf("|"),i=n.substring(0,r+1)+n.substring(r+1,n.length-2).trim()+"]]";e=e.replace(n,i)}}return e}var nn="tags",mt="aliases",Nr="linter-yaml-title-alias";function Bt(e){return e.match(Ie)===null&&(e=`--- +)?XXX(?=\\s|$)$`,ke=/^---\n((?:(((?!---)(?:.|\n)*?)\n)?))---(?=\n|$)/,Sm=cl.replaceAll("X","`"),Tm=cl.replaceAll("X","~"),Om=`^(( |( {4})).* +)+`,Ig=new RegExp(`${Sm}|${Tm}|${Om}`,"gm"),Go=/(!?)(\[{2}[^[\n\]]*\]{2})/g,Cr=/^!?\[.*\](.*)$/,En=/(?:\s|^)#[^\s#;.,>\\s*)*",Qo=/((((>[ ]?)*)|([ ]{0,3}))\[.*?\][ \t]*\n)?((((>[ ]?)*)|([ ]{0,3}))\S+.*?\|.*?\n([^\n]*?\|[^\n]*?\n)*?)?(((>[ ]?)*)|([ ]{0,3}))[|\-+:.][ \-+|:.]*?\|[ \-+|:.]*(?:\n?[^\n]*?\|([^\n]*?)*(\n)?)+/g;function $e(e){return e.replace(/\$/g,"$$$$")}function pl(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function dl(e){let t=e.match(Go);if(t){for(let n of t)if(n.includes("|")){let i=n.indexOf("|"),r=n.substring(0,i+1)+n.substring(i+1,n.length-2).trim()+"]]";e=e.replace(n,r)}}return e}function fl(e){let t=e.match(Qo);if(t==null)return e;for(let n of t){let i=e.indexOf(n),r=i+n.trimEnd().length;if(n.trim().startsWith(">"))for(;e.charAt(i).trim()===""||e.charAt(i)===">";)i++;e=Vt(e,i,r)}return e}var Jo="tag",ri="tags",oi=[Jo,ri],Am="alias",es="aliases",si=[Am,es],ai="linter-yaml-title-alias";function ft(e){return e.match(ke)===null&&(e=`--- --- -`+e),e}function qe(e,t){if(!e.match(Ie))return e;let n=e.match(Ie)[0],r=t(n);return e=e.replace(n,je(r)),e}function go(e){return lc(e,{lineWidth:-1}).slice(0,-1)}function ls(e){return new RegExp(`^([\\t ]*)${e}:[ \\t]*(\\S.*|(?:(?:\\n *- \\S.*)|((?:\\n *- *))*|(\\n([ \\t]+[^\\n]*))*)*)\\n`,"m")}function Me(e,t,n){let r=`${t}:${n} -`,i=!1,o=e.replace(ls(t),(a,s)=>(i=!0,s+r));return i||(o=`${e}${r}`),o}function Be(e,t){let n=e.match(ls(t));return n==null?null:n[2]}function Sn(e,t){return e.replace(ls(t),"")}function ht(e){if(e==null)return null;let t=sc(e.replace(/\n(\t)+/g,` - `));return t==null?{}:t}function ft(e,t){switch(typeof e=="string"&&(e=[e]),t){case"single-line":return e==null||e.length===0?" []":" "+ss(e);case"multi-line":return e==null||e.length===0?` +`+e),e}function Se(e,t){if(!e.match(ke))return e;let n=e.match(ke)[0],i=t(n);return e=e.replace(n,$e(i)),e}function ts(e){return new RegExp(`^([\\t ]*)${e}:[ \\t]*(\\S.*|(?:(?:\\n *- \\S.*)|((?:\\n *- *))*|(\\n([ \\t]+[^\\n]*))*)*)\\n`,"m")}function Te(e,t,n){let i=`${t}:${n} +`,r=!1,o=e.replace(ts(t),(s,a)=>(r=!0,a+i));return r||(o=`${e}${i}`),o}function Oe(e,t){let n=e.match(ts(t));return n==null?null:n[2]}function Wt(e,t){return e.replace(ts(t),"")}function Je(e){if(e==null)return null;let t=al(e.replace(/\n(\t)+/g,` + `));return t??{}}function Ge(e,t){switch(typeof e=="string"&&(e=[e]),t){case"single-line":return e==null||e.length===0?" []":" "+Xo(e);case"multi-line":return e==null||e.length===0?` - `:` - `+e.join(` - - `);case"single string to single-line":return e==null||e.length===0?" ":e.length===1?" "+e[0]:" "+ss(e);case"single string to multi-line":return e==null||e.length===0?" ":e.length===1?" "+e[0]:` + - `);case"single string to single-line":return e==null||e.length===0?" ":e.length===1?" "+e[0]:" "+Xo(e);case"single string to multi-line":return e==null||e.length===0?" ":e.length===1?" "+e[0]:` - `+e.join(` - - `);case"single string space delimited":return e==null||e.length===0?" ":e.length===1?" "+e[0]:" "+e.join(" ");case"single string comma delimited":return e==null||e.length===0?" ":e.length===1?" "+e[0]:" "+e.join(", ");case"single-line space delimited":return e==null||e.length===0?" []":e.length===1?" "+e[0]:" "+ss(e).replaceAll(", "," ")}}function ss(e){return e==null||e.length===0?"[]":"["+e.join(", ")+"]"}function Ft(e){if(e==null||e.length===0)return null;if(e=e.trimEnd(),e.startsWith("[")){if(e=e.substring(1),e.endsWith("]")&&(e=e.substring(0,e.length-1)),e.length===0)return null;let t=e.split(", ");return t=t.length>1?t:t[0].split(","),t.filter(n=>n!="")}if(e.includes(` -`)){let t=e.split(/[ \t]*\n[ \t]*-[ \t]*/);return t.splice(0,1),t=t.filter(n=>n!=""),t==null||t.length===0?null:t}return e}function yo(e){return typeof e=="string"?e.includes(",")?e.split(", "):e.split(" "):e}function bo(e){return typeof e=="string"?e.split(", "):e}var dr=require("obsidian");var jt=function(e){if(e==null)return Yg;if(typeof e=="string")return Hg(e);if(typeof e=="object")return Array.isArray(e)?zg(e):$g(e);if(typeof e=="function")return wo(e);throw new Error("Expected function, string, or object as test")};function zg(e){let t=[],n=-1;for(;++n":""))+")"})),m;function m(){let f=[],d,h,g;if((!t||i(s,l,u[u.length-1]||null))&&(f=jg(n(s,u)),f[0]===zr))return f;if(s.children&&f[0]!==hc)for(h=(r?s.children.length:-1)+o,g=u.concat(s);h>-1&&h0){let c=s.split(` -`);o=(u=c[c.length-1])!=null?u:"",a=o.trim()=="",a||(o=o.trimEnd());let p=0;for(;c.length-(2+p)>=0;){let m=c[c.length-(2+p)];if(!on(o,m,a)&&(!r||!on("",m,!0)))break;p++}c.splice(c.length-(1+p),p),c.length>1&&(r&&c[c.length-2].match(/^> ?.*$/m)||!r&&!on(o,c[c.length-2],a)?c.splice(c.length-1,0,o):on("",c[c.length-2],!0)||c.splice(c.length-1,0,"")),s=c.join(` -`)}let l=e.substring(n);if(l.length>0){let c=l.split(` -`),p=0;for(;p+11&&(r&&c[1].match(/^> ?.*$/m)||!r&&!on(o,c[1],a)?c.splice(1,0,o):r&&!on("",c[1],a)&&c.splice(1,0,"")),l=c.join(` -`)}return s+i+l}function us(e){if(e)throw e}var Pc=Xn(cs(),1),bs=Xn(Cc(),1);function $r(e){if(Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function Ac(){let e=[],t={run:n,use:r};return t;function n(...i){let o=-1,a=i.pop();if(typeof a!="function")throw new TypeError("Expected function as last argument, not "+a);s(null,...i);function s(l,...u){let c=e[++o],p=-1;if(l){a(l);return}for(;++pa.length,l;s&&a.push(i);try{l=e(...a)}catch(u){let c=u;if(s&&n)throw c;return i(c)}s||(l instanceof Promise?l.then(o,i):l instanceof Error?i(l):o(l))}function i(a,...s){n||(n=!0,t(a,...s))}function o(a){i(null,a)}}var Bc=Xn(cs(),1);var or={}.hasOwnProperty;function Tn(e){return!e||typeof e!="object"?"":or.call(e,"position")||or.call(e,"type")?Ec(e.position):or.call(e,"start")||or.call(e,"end")?Ec(e):or.call(e,"line")||or.call(e,"column")?ps(e):""}function ps(e){return Lc(e&&e.line)+":"+Lc(e&&e.column)}function Ec(e){return ps(e&&e.start)+"-"+ps(e&&e.end)}function Lc(e){return e&&typeof e=="number"?e:1}var et=class extends Error{constructor(t,n,r){var i=[null,null],o={start:{line:null,column:null},end:{line:null,column:null}},a;super(),typeof n=="string"&&(r=n,n=null),typeof r=="string"&&(a=r.indexOf(":"),a===-1?i[1]=r:(i[0]=r.slice(0,a),i[1]=r.slice(a+1))),n&&("type"in n||"position"in n?n.position&&(o=n.position):"start"in n||"end"in n?o=n:("line"in n||"column"in n)&&(o.start=n)),this.name=Tn(n)||"1:1",this.message=typeof t=="object"?t.message:t,this.stack=typeof t=="object"?t.stack:"",this.reason=this.message,this.line=o.start.line,this.column=o.start.column,this.source=i[0],this.ruleId=i[1],this.position=o,this.file,this.fatal,this.url,this.note}};et.prototype.file="";et.prototype.name="";et.prototype.reason="";et.prototype.message="";et.prototype.stack="";et.prototype.fatal=null;et.prototype.column=null;et.prototype.line=null;et.prototype.source=null;et.prototype.ruleId=null;et.prototype.position=null;var Tt={basename:Vg,dirname:Kg,extname:Wg,join:Ug,sep:"/"};function Vg(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Hr(e);let n=0,r=-1,i=e.length,o;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.charCodeAt(i)===47){if(o){n=i+1;break}}else r<0&&(o=!0,r=i+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let a=-1,s=t.length-1;for(;i--;)if(e.charCodeAt(i)===47){if(o){n=i+1;break}}else a<0&&(o=!0,a=i+1),s>-1&&(e.charCodeAt(i)===t.charCodeAt(s--)?s<0&&(r=i):(s=-1,r=a));return n===r?r=a:r<0&&(r=e.length),e.slice(n,r)}function Kg(e){if(Hr(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.charCodeAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.charCodeAt(0)===47?"/":".":t===1&&e.charCodeAt(0)===47?"//":e.slice(0,t)}function Wg(e){Hr(e);let t=e.length,n=-1,r=0,i=-1,o=0,a;for(;t--;){let s=e.charCodeAt(t);if(s===47){if(a){r=t+1;break}continue}n<0&&(a=!0,n=t+1),s===46?i<0?i=t:o!==1&&(o=1):i>-1&&(o=-1)}return i<0||n<0||o===0||o===1&&i===n-1&&i===r+1?"":e.slice(i,n)}function Ug(...e){let t=-1,n;for(;++t0&&e.charCodeAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function Zg(e,t){let n="",r=0,i=-1,o=0,a=-1,s,l;for(;++a<=e.length;){if(a2){if(l=n.lastIndexOf("/"),l!==n.length-1){l<0?(n="",r=0):(n=n.slice(0,l),r=n.length-1-n.lastIndexOf("/")),i=a,o=0;continue}}else if(n.length>0){n="",r=0,i=a,o=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(i+1,a):n=e.slice(i+1,a),r=a-i-1;i=a,o=0}else s===46&&o>-1?o++:o=-1}return n}function Hr(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}var _c={cwd:Qg};function Qg(){return"/"}function Yr(e){return e!==null&&typeof e=="object"&&e.href&&e.origin}function Ic(e){if(typeof e=="string")e=new URL(e);else if(!Yr(e)){let t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){let t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return Xg(e)}function Xg(e){if(e.hostname!==""){let r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}let t=e.pathname,n=-1;for(;++n{if(k||!_||!M)I(k);else{let z=o.stringify(_,M);z==null||(t1(z)?M.value=z:M.result=z),I(k,M)}});function I(k,_){k||!_?S(k):O?O(_):g(null,_)}}}function d(h){let g;o.freeze(),hs("processSync",o.Parser),gs("processSync",o.Compiler);let b=qr(h);return o.process(b,O),Dc("processSync","process",g),b;function O(S){g=!0,us(S)}}}function Fc(e,t){return typeof e=="function"&&e.prototype&&(Jg(e.prototype)||t in e.prototype)}function Jg(e){let t;for(t in e)if(Nc.call(e,t))return!0;return!1}function hs(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `Parser`")}function gs(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `Compiler`")}function ys(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Rc(e){if(!$r(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Dc(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function qr(e){return e1(e)?e:new jr(e)}function e1(e){return Boolean(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function t1(e){return typeof e=="string"||(0,Pc.default)(e)}function ar(e,t){var{includeImageAlt:n=!0}=t||{};return Hc(e,n)}function Hc(e,t){return e&&typeof e=="object"&&(e.value||(t?e.alt:"")||"children"in e&&$c(e.children,t)||Array.isArray(e)&&$c(e,t))||""}function $c(e,t){for(var n=[],r=-1;++ri?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),[].splice.apply(e,a);else for(n&&[].splice.apply(e,[t,n]);o0?(ve(e,e.length,0,t),e):t}var Yc={}.hasOwnProperty;function So(e){let t={},n=-1;for(;++na))return;let _=t.events.length,M=_,z,q;for(;M--;)if(t.events[M][0]==="exit"&&t.events[M][1].type==="chunkFlow"){if(z){q=t.events[M][1].end;break}z=!0}for(b(r),k=_;kS;){let I=n[E];t.containerState=I[1],I[0].exit.call(t,e)}n.length=S}function O(){i.write([null]),o=void 0,i=void 0,t.containerState._closeFlow=void 0}}function a1(e,t,n){return Y(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function sr(e){if(e===null||J(e)||An(e))return 1;if(En(e))return 2}function ln(e,t,n){let r=[],i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;let p=Object.assign({},e[r][1].end),m=Object.assign({},e[n][1].start);Gc(p,-l),Gc(m,l),a={type:l>1?"strongSequence":"emphasisSequence",start:p,end:Object.assign({},e[r][1].end)},s={type:l>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[n][1].start),end:m},o={type:l>1?"strongText":"emphasisText",start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},i={type:l>1?"strong":"emphasis",start:Object.assign({},a.start),end:Object.assign({},s.end)},e[r][1].end=Object.assign({},a.start),e[n][1].start=Object.assign({},s.end),u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=tt(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=tt(u,[["enter",i,t],["enter",a,t],["exit",a,t],["enter",o,t]]),u=tt(u,ln(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=tt(u,[["exit",o,t],["enter",s,t],["exit",s,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(c=2,u=tt(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):c=0,ve(e,r-1,n-r+3,u),n=r+u.length-c-2;break}}for(n=-1;++n=4?a(u):n(u)}function a(u){return u===null?l(u):D(u)?e.attempt(b1,a,l)(u):(e.enter("codeFlowValue"),s(u))}function s(u){return u===null||D(u)?(e.exit("codeFlowValue"),a(u)):(e.consume(u),s)}function l(u){return e.exit("codeIndented"),t(u)}}function x1(e,t,n){let r=this;return i;function i(a){return r.parser.lazy[r.now().line]?n(a):D(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):Y(e,o,"linePrefix",4+1)(a)}function o(a){let s=r.events[r.events.length-1];return s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?t(a):D(a)?i(a):n(a)}}var vs={name:"codeText",tokenize:S1,resolve:k1,previous:v1};function k1(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function _o(e,t,n,r,i,o,a,s,l){let u=l||Number.POSITIVE_INFINITY,c=0;return p;function p(b){return b===60?(e.enter(r),e.enter(i),e.enter(o),e.consume(b),e.exit(o),m):b===null||b===41||an(b)?n(b):(e.enter(r),e.enter(a),e.enter(s),e.enter("chunkString",{contentType:"string"}),h(b))}function m(b){return b===62?(e.enter(o),e.consume(b),e.exit(o),e.exit(i),e.exit(r),t):(e.enter(s),e.enter("chunkString",{contentType:"string"}),f(b))}function f(b){return b===62?(e.exit("chunkString"),e.exit(s),m(b)):b===null||b===60||D(b)?n(b):(e.consume(b),b===92?d:f)}function d(b){return b===60||b===62||b===92?(e.consume(b),f):f(b)}function h(b){return b===40?++c>u?n(b):(e.consume(b),h):b===41?c--?(e.consume(b),h):(e.exit("chunkString"),e.exit(s),e.exit(a),e.exit(r),t(b)):b===null||J(b)?c?n(b):(e.exit("chunkString"),e.exit(s),e.exit(a),e.exit(r),t(b)):an(b)?n(b):(e.consume(b),b===92?g:h)}function g(b){return b===40||b===41||b===92?(e.consume(b),h):h(b)}}function Io(e,t,n,r,i,o){let a=this,s=0,l;return u;function u(f){return e.enter(r),e.enter(i),e.consume(f),e.exit(i),e.enter(o),c}function c(f){return f===null||f===91||f===93&&!l||f===94&&!s&&"_hiddenFootnoteSupport"in a.parser.constructs||s>999?n(f):f===93?(e.exit(o),e.enter(i),e.consume(f),e.exit(i),e.exit(r),t):D(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),p(f))}function p(f){return f===null||f===91||f===93||D(f)||s++>999?(e.exit("chunkString"),c(f)):(e.consume(f),l=l||!Q(f),f===92?m:p)}function m(f){return f===91||f===92||f===93?(e.consume(f),s++,p):p(f)}}function Mo(e,t,n,r,i,o){let a;return s;function s(m){return e.enter(r),e.enter(i),e.consume(m),e.exit(i),a=m===40?41:m,l}function l(m){return m===a?(e.enter(i),e.consume(m),e.exit(i),e.exit(r),t):(e.enter(o),u(m))}function u(m){return m===a?(e.exit(o),l(a)):m===null?n(m):D(m)?(e.enter("lineEnding"),e.consume(m),e.exit("lineEnding"),Y(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(m))}function c(m){return m===a||m===null||D(m)?(e.exit("chunkString"),u(m)):(e.consume(m),m===92?p:c)}function p(m){return m===a||m===92?(e.consume(m),c):c(m)}}function Ln(e,t){let n;return r;function r(i){return D(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):Q(i)?Y(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}function We(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}var Os={name:"definition",tokenize:_1},L1={tokenize:I1,partial:!0};function _1(e,t,n){let r=this,i;return o;function o(l){return e.enter("definition"),Io.call(r,e,a,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(l)}function a(l){return i=We(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),l===58?(e.enter("definitionMarker"),e.consume(l),e.exit("definitionMarker"),Ln(e,_o(e,e.attempt(L1,Y(e,s,"whitespace"),Y(e,s,"whitespace")),n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):n(l)}function s(l){return l===null||D(l)?(e.exit("definition"),r.parser.defined.includes(i)||r.parser.defined.push(i),t(l)):n(l)}}function I1(e,t,n){return r;function r(a){return J(a)?Ln(e,i)(a):n(a)}function i(a){return a===34||a===39||a===40?Mo(e,Y(e,o,"whitespace"),n,"definitionTitle","definitionTitleMarker","definitionTitleString")(a):n(a)}function o(a){return a===null||D(a)?t(a):n(a)}}var Ts={name:"hardBreakEscape",tokenize:M1};function M1(e,t,n){return r;function r(o){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(o),i}function i(o){return D(o)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),t(o)):n(o)}}var Cs={name:"headingAtx",tokenize:F1,resolve:B1};function B1(e,t){let n=e.length-2,r=3,i,o;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},o={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},ve(e,r,n-r+1,[["enter",i,t],["enter",o,t],["exit",o,t],["exit",i,t]])),e}function F1(e,t,n){let r=this,i=0;return o;function o(c){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),a(c)}function a(c){return c===35&&i++<6?(e.consume(c),a):c===null||J(c)?(e.exit("atxHeadingSequence"),r.interrupt?t(c):s(c)):n(c)}function s(c){return c===35?(e.enter("atxHeadingSequence"),l(c)):c===null||D(c)?(e.exit("atxHeading"),t(c)):Q(c)?Y(e,s,"whitespace")(c):(e.enter("atxHeadingText"),u(c))}function l(c){return c===35?(e.consume(c),l):(e.exit("atxHeadingSequence"),s(c))}function u(c){return c===null||c===35||J(c)?(e.exit("atxHeadingText"),s(c)):(e.consume(c),u)}}var Zc=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],As=["pre","script","style","textarea"];var Es={name:"htmlFlow",tokenize:P1,resolveTo:D1,concrete:!0},R1={tokenize:N1,partial:!0};function D1(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function P1(e,t,n){let r=this,i,o,a,s,l;return u;function u(x){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(x),c}function c(x){return x===33?(e.consume(x),p):x===47?(e.consume(x),d):x===63?(e.consume(x),i=3,r.interrupt?t:he):Ke(x)?(e.consume(x),a=String.fromCharCode(x),o=!0,h):n(x)}function p(x){return x===45?(e.consume(x),i=2,m):x===91?(e.consume(x),i=5,a="CDATA[",s=0,f):Ke(x)?(e.consume(x),i=4,r.interrupt?t:he):n(x)}function m(x){return x===45?(e.consume(x),r.interrupt?t:he):n(x)}function f(x){return x===a.charCodeAt(s++)?(e.consume(x),s===a.length?r.interrupt?t:H:f):n(x)}function d(x){return Ke(x)?(e.consume(x),a=String.fromCharCode(x),h):n(x)}function h(x){return x===null||x===47||x===62||J(x)?x!==47&&o&&As.includes(a.toLowerCase())?(i=1,r.interrupt?t(x):H(x)):Zc.includes(a.toLowerCase())?(i=6,x===47?(e.consume(x),g):r.interrupt?t(x):H(x)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(x):o?O(x):b(x)):x===45||Se(x)?(e.consume(x),a+=String.fromCharCode(x),h):n(x)}function g(x){return x===62?(e.consume(x),r.interrupt?t:H):n(x)}function b(x){return Q(x)?(e.consume(x),b):z(x)}function O(x){return x===47?(e.consume(x),z):x===58||x===95||Ke(x)?(e.consume(x),S):Q(x)?(e.consume(x),O):z(x)}function S(x){return x===45||x===46||x===58||x===95||Se(x)?(e.consume(x),S):E(x)}function E(x){return x===61?(e.consume(x),I):Q(x)?(e.consume(x),E):O(x)}function I(x){return x===null||x===60||x===61||x===62||x===96?n(x):x===34||x===39?(e.consume(x),l=x,k):Q(x)?(e.consume(x),I):(l=null,_(x))}function k(x){return x===null||D(x)?n(x):x===l?(e.consume(x),M):(e.consume(x),k)}function _(x){return x===null||x===34||x===39||x===60||x===61||x===62||x===96||J(x)?E(x):(e.consume(x),_)}function M(x){return x===47||x===62||Q(x)?O(x):n(x)}function z(x){return x===62?(e.consume(x),q):n(x)}function q(x){return Q(x)?(e.consume(x),q):x===null||D(x)?H(x):n(x)}function H(x){return x===45&&i===2?(e.consume(x),ne):x===60&&i===1?(e.consume(x),C):x===62&&i===4?(e.consume(x),le):x===63&&i===3?(e.consume(x),he):x===93&&i===5?(e.consume(x),te):D(x)&&(i===6||i===7)?e.check(R1,le,U)(x):x===null||D(x)?U(x):(e.consume(x),H)}function U(x){return e.exit("htmlFlowData"),P(x)}function P(x){return x===null?w(x):D(x)?e.attempt({tokenize:V,partial:!0},P,w)(x):(e.enter("htmlFlowData"),H(x))}function V(x,rt,it){return Xe;function Xe(ot){return x.enter("lineEnding"),x.consume(ot),x.exit("lineEnding"),vt}function vt(ot){return r.parser.lazy[r.now().line]?it(ot):rt(ot)}}function ne(x){return x===45?(e.consume(x),he):H(x)}function C(x){return x===47?(e.consume(x),a="",oe):H(x)}function oe(x){return x===62&&As.includes(a.toLowerCase())?(e.consume(x),le):Ke(x)&&a.length<8?(e.consume(x),a+=String.fromCharCode(x),oe):H(x)}function te(x){return x===93?(e.consume(x),he):H(x)}function he(x){return x===62?(e.consume(x),le):H(x)}function le(x){return x===null||D(x)?(e.exit("htmlFlowData"),w(x)):(e.consume(x),le)}function w(x){return e.exit("htmlFlow"),t(x)}}function N1(e,t,n){return r;function r(i){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),e.attempt(Rt,t,n)}}var Ls={name:"htmlText",tokenize:z1};function z1(e,t,n){let r=this,i,o,a,s;return l;function l(w){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(w),u}function u(w){return w===33?(e.consume(w),c):w===47?(e.consume(w),_):w===63?(e.consume(w),I):Ke(w)?(e.consume(w),q):n(w)}function c(w){return w===45?(e.consume(w),p):w===91?(e.consume(w),o="CDATA[",a=0,g):Ke(w)?(e.consume(w),E):n(w)}function p(w){return w===45?(e.consume(w),m):n(w)}function m(w){return w===null||w===62?n(w):w===45?(e.consume(w),f):d(w)}function f(w){return w===null||w===62?n(w):d(w)}function d(w){return w===null?n(w):w===45?(e.consume(w),h):D(w)?(s=d,te(w)):(e.consume(w),d)}function h(w){return w===45?(e.consume(w),le):d(w)}function g(w){return w===o.charCodeAt(a++)?(e.consume(w),a===o.length?b:g):n(w)}function b(w){return w===null?n(w):w===93?(e.consume(w),O):D(w)?(s=b,te(w)):(e.consume(w),b)}function O(w){return w===93?(e.consume(w),S):b(w)}function S(w){return w===62?le(w):w===93?(e.consume(w),S):b(w)}function E(w){return w===null||w===62?le(w):D(w)?(s=E,te(w)):(e.consume(w),E)}function I(w){return w===null?n(w):w===63?(e.consume(w),k):D(w)?(s=I,te(w)):(e.consume(w),I)}function k(w){return w===62?le(w):I(w)}function _(w){return Ke(w)?(e.consume(w),M):n(w)}function M(w){return w===45||Se(w)?(e.consume(w),M):z(w)}function z(w){return D(w)?(s=z,te(w)):Q(w)?(e.consume(w),z):le(w)}function q(w){return w===45||Se(w)?(e.consume(w),q):w===47||w===62||J(w)?H(w):n(w)}function H(w){return w===47?(e.consume(w),le):w===58||w===95||Ke(w)?(e.consume(w),U):D(w)?(s=H,te(w)):Q(w)?(e.consume(w),H):le(w)}function U(w){return w===45||w===46||w===58||w===95||Se(w)?(e.consume(w),U):P(w)}function P(w){return w===61?(e.consume(w),V):D(w)?(s=P,te(w)):Q(w)?(e.consume(w),P):H(w)}function V(w){return w===null||w===60||w===61||w===62||w===96?n(w):w===34||w===39?(e.consume(w),i=w,ne):D(w)?(s=V,te(w)):Q(w)?(e.consume(w),V):(e.consume(w),i=void 0,oe)}function ne(w){return w===i?(e.consume(w),C):w===null?n(w):D(w)?(s=ne,te(w)):(e.consume(w),ne)}function C(w){return w===62||w===47||J(w)?H(w):n(w)}function oe(w){return w===null||w===34||w===39||w===60||w===61||w===96?n(w):w===62||J(w)?H(w):(e.consume(w),oe)}function te(w){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(w),e.exit("lineEnding"),Y(e,he,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function he(w){return e.enter("htmlTextData"),s(w)}function le(w){return w===62?(e.consume(w),e.exit("htmlTextData"),e.exit("htmlText"),t):n(w)}}var _n={name:"labelEnd",tokenize:V1,resolveTo:q1,resolveAll:j1},$1={tokenize:K1},H1={tokenize:W1},Y1={tokenize:U1};function j1(e){let t=-1,n;for(;++t-1&&(a[0]=a[0].slice(r)),o>0&&a.push(e[i].slice(0,o))),a}function p0(e,t){let n=-1,r=[],i;for(;++nw0,contentInitial:()=>f0,disable:()=>x0,document:()=>m0,flow:()=>h0,flowInitial:()=>d0,insideSpan:()=>b0,string:()=>g0,text:()=>y0});var m0={[42]:Ue,[43]:Ue,[45]:Ue,[48]:Ue,[49]:Ue,[50]:Ue,[51]:Ue,[52]:Ue,[53]:Ue,[54]:Ue,[55]:Ue,[56]:Ue,[57]:Ue,[62]:Oo},f0={[91]:Os},d0={[-2]:Kr,[-1]:Kr,[32]:Kr},h0={[35]:Cs,[42]:In,[45]:[Bo,In],[60]:Es,[61]:Bo,[95]:In,[96]:Eo,[126]:Eo},g0={[38]:Ao,[92]:To},y0={[-5]:Wr,[-4]:Wr,[-3]:Wr,[33]:_s,[38]:Ao,[42]:Vr,[60]:[ks,Ls],[91]:Is,[92]:[Ts,To],[93]:_n,[95]:Vr,[96]:vs},b0={null:[Vr,Xc]},w0={null:[42,95]},x0={null:[]};function ip(e={}){let t=So([Ms].concat(e.extensions||[])),n={defined:[],lazy:{},constructs:t,content:r(Kc),document:r(Uc),flow:r(Qc),string:r(Jc),text:r(ep)};return n;function r(i){return o;function o(a){return rp(n,i,a)}}}var op=/[\0\t\n\r]/g;function ap(){let e=1,t="",n=!0,r;return i;function i(o,a,s){let l=[],u,c,p,m,f;for(o=t+o.toString(a),p=0,t="",n&&(o.charCodeAt(0)===65279&&p++,n=void 0);p13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"\uFFFD":String.fromCharCode(n)}var k0=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Ro(e){return e.replace(k0,v0)}function v0(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){let i=n.charCodeAt(1),o=i===120||i===88;return Fo(n.slice(o?2:1),o?16:10)}return lr(n)||e}var Bs={}.hasOwnProperty,Fs=function(e,t,n){return typeof t!="string"&&(n=t,t=void 0),S0(n)(sp(ip(n).document().write(ap()(e,t,!0))))};function S0(e={}){let t=lp({transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:l(xn),autolinkProtocol:U,autolinkEmail:U,atxHeading:l(Cr),blockQuote:l(Jt),characterEscape:U,characterReference:U,codeFenced:l(wn),codeFencedFenceInfo:u,codeFencedFenceMeta:u,codeIndented:l(wn,u),codeText:l(Ya,u),codeTextData:U,data:U,codeFlowValue:U,definition:l(ja),definitionDestinationString:u,definitionLabelString:u,definitionTitleString:u,emphasis:l(Ji),hardBreakEscape:l(eo),hardBreakTrailing:l(eo),htmlFlow:l(to,u),htmlFlowData:U,htmlText:l(to,u),htmlTextData:U,image:l($t),label:u,link:l(xn),listItem:l(no),listItemValue:h,listOrdered:l(Ar,d),listUnordered:l(Ar),paragraph:l(Er),reference:vt,referenceString:u,resourceDestinationString:u,resourceTitleString:u,setextHeading:l(Cr),strong:l(ro),thematicBreak:l(oo)},exit:{atxHeading:p(),atxHeadingSequence:M,autolink:p(),autolinkEmail:It,autolinkProtocol:St,blockQuote:p(),characterEscapeValue:P,characterReferenceMarkerHexadecimal:ce,characterReferenceMarkerNumeric:ce,characterReferenceValue:zt,codeFenced:p(S),codeFencedFence:O,codeFencedFenceInfo:g,codeFencedFenceMeta:b,codeFlowValue:P,codeIndented:p(E),codeText:p(te),codeTextData:P,data:P,definition:p(),definitionDestinationString:_,definitionLabelString:I,definitionTitleString:k,emphasis:p(),hardBreakEscape:p(ne),hardBreakTrailing:p(ne),htmlFlow:p(C),htmlFlowData:P,htmlText:p(oe),htmlTextData:P,image:p(le),label:x,labelText:w,lineEnding:V,link:p(he),listItem:p(),listOrdered:p(),listUnordered:p(),paragraph:p(),referenceString:ot,resourceDestinationString:rt,resourceTitleString:it,resource:Xe,setextHeading:p(H),setextHeadingLineSequence:q,setextHeadingText:z,strong:p(),thematicBreak:p()}},e.mdastExtensions||[]),n={};return r;function r(L){let N={type:"root",children:[]},K=[N],me=[],Ot=[],ao={stack:K,tokenStack:me,config:t,enter:c,exit:m,buffer:u,resume:f,setData:o,getData:a},fe=-1;for(;++fe0)throw new Error("Cannot close document, a token (`"+me[me.length-1].type+"`, "+Tn({start:me[me.length-1].start,end:me[me.length-1].end})+") is still open");for(N.position={start:s(L.length>0?L[0][1].start:{line:1,column:1,offset:0}),end:s(L.length>0?L[L.length-2][1].end:{line:1,column:1,offset:0})},fe=-1;++fe{let r=this.data("settings");return Fs(n,Object.assign({},r,e,{extensions:this.data("micromarkExtensions")||[],mdastExtensions:this.data("fromMarkdownExtensions")||[]}))}})}var up=Rs;var cp={}.hasOwnProperty;function pp(e,t){var n=t||{};function r(i){var o=r.invalid,a=r.handlers;if(i&&cp.call(i,e)&&(o=cp.call(a,i[e])?a[i[e]]:r.unknown),o)return o.apply(this,arguments)}return r.handlers=n.handlers||{},r.invalid=n.invalid,r.unknown=n.unknown,r}function Ur(e,t){let n=-1,r;if(t.extensions)for(;++n - -`}return` - -`}}var T0=/\r?\n|\r/g;function un(e,t){let n=[],r=0,i=0,o;for(;o=T0.exec(e);)a(e.slice(r,o.index)),n.push(o[0]),r=o.index+o[0].length,i++;return a(e.slice(r)),n.join("");function a(s){n.push(t(s,i,!s))}}function mp(e,t,n,r){let i=n.enter("blockquote"),o=X(r);o.move("> "),o.shift(2);let a=un(Dt(e,n,o.current()),C0);return i(),a}function C0(e,t,n){return">"+(n?"":" ")+e}function Do(e,t){return fp(e,t.inConstruct,!0)&&!fp(e,t.notInConstruct,!1)}function fp(e,t,n){if(!t)return n;typeof t=="string"&&(t=[t]);let r=-1;for(;++ra&&(a=o):o=1,i=r+1,r=n.indexOf(t,i);return a}function Gr(e,t){return Boolean(!t.options.fences&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function dp(e){let t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function No(e){if(!e._compiled){let t=(e.atBreak?"[\\r\\n][\\t ]*":"")+(e.before?"(?:"+e.before+")":"");e._compiled=new RegExp((t?"("+t+")":"")+(/[|\\{}()[\]^$+*?.-]/.test(e.character)?"\\":"")+e.character+(e.after?"(?:"+e.after+")":""),"g")}return e._compiled}function ie(e,t,n){let r=(n.before||"")+(t||"")+(n.after||""),i=[],o=[],a={},s=-1;for(;++s=u||c+1",...l.current()})),u+=l.move(">")):(s=n.enter("destinationRaw"),u+=l.move(ie(n,e.url,{before:u,after:e.title?" ":` -`,...l.current()}))),s(),e.title&&(s=n.enter("title"+o),u+=l.move(" "+i),u+=l.move(ie(n,e.title,{before:u,after:i,...l.current()})),u+=l.move(i),s()),a(),u}function bp(e){let t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function Fe(e,t,n){let r=t.indexStack,i=e.children||[],o=[],a=-1,s=n.before;r.push(-1);let l=X(n);for(;++a0&&(s==="\r"||s===` -`)&&u.type==="html"&&(o[o.length-1]=o[o.length-1].replace(/(\r?\n|\r)$/," "),s=" ",l=X(n),l.move(o.join(""))),o.push(l.move(t.handle(u,e,t,{...l.current(),before:s,after:c}))),s=o[o.length-1].slice(-1)}return r.pop(),o.join("")}Ps.peek=L0;function Ps(e,t,n,r){let i=bp(n),o=n.enter("emphasis"),a=X(r),s=a.move(i);return s+=a.move(Fe(e,n,{before:s,after:i,...a.current()})),s+=a.move(i),o(),s}function L0(e,t,n){return n.options.emphasis||"*"}function zo(e,t){let n=!1;return rn(e,r=>{if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,zr}),Boolean((!e.depth||e.depth<3)&&ar(e)&&(t.options.setext||n))}function wp(e,t,n,r){let i=Math.max(Math.min(6,e.depth||1),1),o=X(r);if(zo(e,n)){let c=n.enter("headingSetext"),p=n.enter("phrasing"),m=Fe(e,n,{...o.current(),before:` -`,after:` -`});return p(),c(),m+` -`+(i===1?"=":"-").repeat(m.length-(Math.max(m.lastIndexOf("\r"),m.lastIndexOf(` -`))+1))}let a="#".repeat(i),s=n.enter("headingAtx"),l=n.enter("phrasing");o.move(a+" ");let u=Fe(e,n,{before:"# ",after:` -`,...o.current()});return/^[\t ]/.test(u)&&(u="&#x"+u.charCodeAt(0).toString(16).toUpperCase()+";"+u.slice(1)),u=u?a+" "+u:a,n.options.closeAtx&&(u+=" "+a),l(),s(),u}Ns.peek=_0;function Ns(e){return e.value||""}function _0(){return"<"}zs.peek=I0;function zs(e,t,n,r){let i=ur(n),o=i==='"'?"Quote":"Apostrophe",a=n.enter("image"),s=n.enter("label"),l=X(r),u=l.move("![");return u+=l.move(ie(n,e.alt,{before:u,after:"]",...l.current()})),u+=l.move("]("),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter("destinationLiteral"),u+=l.move("<"),u+=l.move(ie(n,e.url,{before:u,after:">",...l.current()})),u+=l.move(">")):(s=n.enter("destinationRaw"),u+=l.move(ie(n,e.url,{before:u,after:e.title?" ":")",...l.current()}))),s(),e.title&&(s=n.enter("title"+o),u+=l.move(" "+i),u+=l.move(ie(n,e.title,{before:u,after:i,...l.current()})),u+=l.move(i),s()),u+=l.move(")"),a(),u}function I0(){return"!"}$s.peek=M0;function $s(e,t,n,r){let i=e.referenceType,o=n.enter("imageReference"),a=n.enter("label"),s=X(r),l=s.move("!["),u=ie(n,e.alt,{before:l,after:"]",...s.current()});l+=s.move(u+"]["),a();let c=n.stack;n.stack=[],a=n.enter("reference");let p=ie(n,qt(e),{before:l,after:"]",...s.current()});return a(),n.stack=c,o(),i==="full"||!u||u!==p?l+=s.move(p+"]"):i==="shortcut"?l=l.slice(0,-1):l+=s.move("]"),l}function M0(){return"!"}Zr.peek=B0;function Zr(e,t,n){let r=e.value||"",i="`",o=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++o\u007F]/.test(e.url))}Ys.peek=F0;function Ys(e,t,n,r){let i=ur(n),o=i==='"'?"Quote":"Apostrophe",a=X(r),s,l;if(Hs(e,n)){let c=n.stack;n.stack=[],s=n.enter("autolink");let p=a.move("<");return p+=a.move(Fe(e,n,{before:p,after:">",...a.current()})),p+=a.move(">"),s(),n.stack=c,p}s=n.enter("link"),l=n.enter("label");let u=a.move("[");return u+=a.move(Fe(e,n,{before:u,after:"](",...a.current()})),u+=a.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=a.move("<"),u+=a.move(ie(n,e.url,{before:u,after:">",...a.current()})),u+=a.move(">")):(l=n.enter("destinationRaw"),u+=a.move(ie(n,e.url,{before:u,after:e.title?" ":")",...a.current()}))),l(),e.title&&(l=n.enter("title"+o),u+=a.move(" "+i),u+=a.move(ie(n,e.title,{before:u,after:i,...a.current()})),u+=a.move(i),l()),u+=a.move(")"),s(),u}function F0(e,t,n){return Hs(e,n)?"<":"["}js.peek=R0;function js(e,t,n,r){let i=e.referenceType,o=n.enter("linkReference"),a=n.enter("label"),s=X(r),l=s.move("["),u=Fe(e,n,{before:l,after:"]",...s.current()});l+=s.move(u+"]["),a();let c=n.stack;n.stack=[],a=n.enter("reference");let p=ie(n,qt(e),{before:l,after:"]",...s.current()});return a(),n.stack=c,o(),i==="full"||!u||u!==p?l+=s.move(p+"]"):i==="shortcut"?l=l.slice(0,-1):l+=s.move("]"),l}function R0(){return"["}function cr(e){let t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function xp(e){let t=cr(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function $o(e){let t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function kp(e){let t=$o(e),n=e.options.bulletOrderedOther;if(!n)return t==="."?")":".";if(n!=="."&&n!==")")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOrderedOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bulletOrdered` (`"+t+"`) and `bulletOrderedOther` (`"+n+"`) to be different");return n}function Ho(e){let t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function vp(e,t,n,r){let i=n.enter("list"),o=n.bulletCurrent,a=e.ordered?$o(n):cr(n),s=e.ordered?kp(n):xp(n),l=n.bulletLastUsed,u=!1;if(t&&(e.ordered?n.options.bulletOrderedOther:n.options.bulletOther)&&l&&a===l&&(u=!0),!e.ordered){let p=e.children?e.children[0]:void 0;if((a==="*"||a==="-")&&p&&(!p.children||!p.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(u=!0),Ho(n)===a&&p){let m=-1;for(;++m-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+o);let a=o.length+1;(i==="tab"||i==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(a=Math.ceil(a/4)*4);let s=X(r);s.move(o+" ".repeat(a-o.length)),s.shift(a);let l=n.enter("listItem"),u=un(Dt(e,n,s.current()),c);return l(),u;function c(p,m,f){return m?(f?"":" ".repeat(a))+p:(f?o:o+" ".repeat(a-o.length))+p}}function Op(e,t,n,r){let i=n.enter("paragraph"),o=n.enter("phrasing"),a=Fe(e,n,r);return o(),i(),a}function Tp(e,t,n,r){return Dt(e,n,r)}function Cp(e){let t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}qs.peek=D0;function qs(e,t,n,r){let i=Cp(n),o=n.enter("strong"),a=X(r),s=a.move(i+i);return s+=a.move(Fe(e,n,{before:s,after:i,...a.current()})),s+=a.move(i+i),o(),s}function D0(e,t,n){return n.options.strong||"*"}function Ap(e,t,n,r){return ie(n,e.value,r)}function Ep(e){let t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function Lp(e,t,n){let r=(Ho(n)+(n.options.ruleSpaces?" ":"")).repeat(Ep(n));return n.options.ruleSpaces?r.slice(0,-1):r}var _p={blockquote:mp,break:Ds,code:gp,definition:yp,emphasis:Ps,hardBreak:Ds,heading:wp,html:Ns,image:zs,imageReference:$s,inlineCode:Zr,link:Ys,linkReference:js,list:vp,listItem:Yo,paragraph:Op,root:Tp,strong:qs,text:Ap,thematicBreak:Lp};var Ip=[P0];function P0(e,t,n,r){if(t.type==="code"&&Gr(t,r)&&(e.type==="list"||e.type===t.type&&Gr(e,r))||e.type==="list"&&e.type===t.type&&Boolean(e.ordered)===Boolean(t.ordered)&&!(e.ordered?r.options.bulletOrderedOther:r.options.bulletOther))return!1;if("spread"in n&&typeof n.spread=="boolean")return e.type==="paragraph"&&(e.type===t.type||t.type==="definition"||t.type==="heading"&&zo(t,r))?void 0:n.spread?1:0}var Mn=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"],Mp=[{character:" ",after:"[\\r\\n]",inConstruct:"phrasing"},{character:" ",before:"[\\r\\n]",inConstruct:"phrasing"},{character:" ",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde"]},{character:"\r",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde","codeFencedMetaGraveAccent","codeFencedMetaTilde","destinationLiteral","headingAtx"]},{character:` -`,inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde","codeFencedMetaGraveAccent","codeFencedMetaTilde","destinationLiteral","headingAtx"]},{character:" ",after:"[\\r\\n]",inConstruct:"phrasing"},{character:" ",before:"[\\r\\n]",inConstruct:"phrasing"},{character:" ",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde"]},{character:"!",after:"\\[",inConstruct:"phrasing",notInConstruct:Mn},{character:'"',inConstruct:"titleQuote"},{atBreak:!0,character:"#"},{character:"#",inConstruct:"headingAtx",after:`(?:[\r -]|$)`},{character:"&",after:"[#A-Za-z]",inConstruct:"phrasing"},{character:"'",inConstruct:"titleApostrophe"},{character:"(",inConstruct:"destinationRaw"},{before:"\\]",character:"(",inConstruct:"phrasing",notInConstruct:Mn},{atBreak:!0,before:"\\d+",character:")"},{character:")",inConstruct:"destinationRaw"},{atBreak:!0,character:"*"},{character:"*",inConstruct:"phrasing",notInConstruct:Mn},{atBreak:!0,character:"+"},{atBreak:!0,character:"-"},{atBreak:!0,before:"\\d+",character:".",after:`(?:[ \r -]|$)`},{atBreak:!0,character:"<",after:"[!/?A-Za-z]"},{character:"<",after:"[!/?A-Za-z]",inConstruct:"phrasing",notInConstruct:Mn},{character:"<",inConstruct:"destinationLiteral"},{atBreak:!0,character:"="},{atBreak:!0,character:">"},{character:">",inConstruct:"destinationLiteral"},{atBreak:!0,character:"["},{character:"[",inConstruct:"phrasing",notInConstruct:Mn},{character:"[",inConstruct:["label","reference"]},{character:"\\",after:"[\\r\\n]",inConstruct:"phrasing"},{character:"]",inConstruct:["label","reference"]},{atBreak:!0,character:"_"},{character:"_",inConstruct:"phrasing",notInConstruct:Mn},{atBreak:!0,character:"`"},{character:"`",inConstruct:["codeFencedLangGraveAccent","codeFencedMetaGraveAccent"]},{character:"`",inConstruct:"phrasing",notInConstruct:Mn},{atBreak:!0,character:"~"}];function Vs(e,t={}){let n={enter:i,stack:[],unsafe:[],join:[],handlers:{},options:{},indexStack:[]};Ur(n,{unsafe:Mp,join:Ip,handlers:_p}),Ur(n,t),n.options.tightDefinitions&&Ur(n,{join:[$0]}),n.handle=pp("type",{invalid:N0,unknown:z0,handlers:n.handlers});let r=n.handle(e,null,n,{before:` -`,after:` -`,now:{line:1,column:1},lineShift:0});return r&&r.charCodeAt(r.length-1)!==10&&r.charCodeAt(r.length-1)!==13&&(r+=` -`),r;function i(o){return n.stack.push(o),a;function a(){n.stack.pop()}}}function N0(e){throw new Error("Cannot handle value `"+e+"`, expected node")}function z0(e){throw new Error("Cannot handle unknown node `"+e.type+"`")}function $0(e,t){if(e.type==="definition"&&e.type===t.type)return 0}function Ks(e){Object.assign(this,{Compiler:n=>{let r=this.data("settings");return Vs(n,Object.assign({},r,e,{extensions:this.data("toMarkdownExtensions")||[]}))}})}var Bp=Ks;var Ws=ws().use(up).use(Bp).freeze();var H0={tokenize:V0,partial:!0},Rp={tokenize:K0,partial:!0},Dp={tokenize:W0,partial:!0},pr={tokenize:G0,partial:!0},Pp={tokenize:U0,partial:!0},Np={tokenize:j0,previous:Hp},zp={tokenize:q0,previous:Zs},Vt={tokenize:Y0,previous:Yp},Pt={},Us={text:Pt},Bn=48;for(;Bn<123;)Pt[Bn]=Vt,Bn++,Bn===58?Bn=65:Bn===91&&(Bn=97);Pt[43]=Vt;Pt[45]=Vt;Pt[46]=Vt;Pt[95]=Vt;Pt[72]=[Vt,zp];Pt[104]=[Vt,zp];Pt[87]=[Vt,Np];Pt[119]=[Vt,Np];function Y0(e,t,n){let r=this,i,o;return a;function a(f){return!Fp(f)||!Yp(r.previous)||Qs(r.events)?n(f):(e.enter("literalAutolink"),e.enter("literalAutolinkEmail"),s(f))}function s(f){return Fp(f)?(e.consume(f),s):f===64?(e.consume(f),l):n(f)}function l(f){return f===46?e.check(pr,m,u)(f):f===45||f===95?e.check(pr,n,c)(f):Se(f)?(!o&&Cn(f)&&(o=!0),e.consume(f),l):m(f)}function u(f){return e.consume(f),i=!0,o=void 0,l}function c(f){return e.consume(f),p}function p(f){return f===46?e.check(pr,n,u)(f):l(f)}function m(f){return i&&!o?(e.exit("literalAutolinkEmail"),e.exit("literalAutolink"),t(f)):n(f)}}function j0(e,t,n){let r=this;return i;function i(a){return a!==87&&a!==119||!Hp(r.previous)||Qs(r.events)?n(a):(e.enter("literalAutolink"),e.enter("literalAutolinkWww"),e.check(H0,e.attempt(Rp,e.attempt(Dp,o),n),n)(a))}function o(a){return e.exit("literalAutolinkWww"),e.exit("literalAutolink"),t(a)}}function q0(e,t,n){let r=this;return i;function i(d){return d!==72&&d!==104||!Zs(r.previous)||Qs(r.events)?n(d):(e.enter("literalAutolink"),e.enter("literalAutolinkHttp"),e.consume(d),o)}function o(d){return d===84||d===116?(e.consume(d),a):n(d)}function a(d){return d===84||d===116?(e.consume(d),s):n(d)}function s(d){return d===80||d===112?(e.consume(d),l):n(d)}function l(d){return d===83||d===115?(e.consume(d),u):u(d)}function u(d){return d===58?(e.consume(d),c):n(d)}function c(d){return d===47?(e.consume(d),p):n(d)}function p(d){return d===47?(e.consume(d),m):n(d)}function m(d){return d===null||an(d)||An(d)||En(d)?n(d):e.attempt(Rp,e.attempt(Dp,f),n)(d)}function f(d){return e.exit("literalAutolinkHttp"),e.exit("literalAutolink"),t(d)}}function V0(e,t,n){return r;function r(l){return e.consume(l),i}function i(l){return l===87||l===119?(e.consume(l),o):n(l)}function o(l){return l===87||l===119?(e.consume(l),a):n(l)}function a(l){return l===46?(e.consume(l),s):n(l)}function s(l){return l===null||D(l)?n(l):t(l)}}function K0(e,t,n){let r,i;return o;function o(l){return l===38?e.check(Pp,s,a)(l):l===46||l===95?e.check(pr,s,a)(l):l===null||an(l)||An(l)||l!==45&&En(l)?s(l):(e.consume(l),o)}function a(l){return l===46?(i=r,r=void 0,e.consume(l),o):(l===95&&(r=!0),e.consume(l),o)}function s(l){return!i&&!r?t(l):n(l)}}function W0(e,t){let n=0;return r;function r(a){return a===38?e.check(Pp,t,i)(a):(a===40&&n++,a===41?e.check(pr,o,i)(a):Gs(a)?t(a):$p(a)?e.check(pr,t,i)(a):(e.consume(a),r))}function i(a){return e.consume(a),r}function o(a){return n--,n<0?t(a):i(a)}}function U0(e,t,n){return r;function r(a){return e.consume(a),i}function i(a){return Ke(a)?(e.consume(a),i):a===59?(e.consume(a),o):n(a)}function o(a){return Gs(a)?t(a):n(a)}}function G0(e,t,n){return r;function r(o){return e.consume(o),i}function i(o){return $p(o)?(e.consume(o),i):Gs(o)?t(o):n(o)}}function $p(e){return e===33||e===34||e===39||e===41||e===42||e===44||e===46||e===58||e===59||e===60||e===63||e===95||e===126}function Gs(e){return e===null||e===60||J(e)}function Fp(e){return e===43||e===45||e===46||e===95||Se(e)}function Hp(e){return e===null||e===40||e===42||e===95||e===126||J(e)}function Zs(e){return e===null||!Ke(e)}function Yp(e){return e!==47&&Zs(e)}function Qs(e){let t=e.length,n=!1;for(;t--;){let r=e[t][1];if((r.type==="labelLink"||r.type==="labelImage")&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}function gt(e){let t=[],n=-1,r=0,i=0;for(;++n55295&&o<57344){let s=e.charCodeAt(n+1);o<56320&&s>56319&&s<57344?(a=String.fromCharCode(o,s),i=1):a="\uFFFD"}else a=String.fromCharCode(o);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+i+1,a=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}var Z0={tokenize:ry,partial:!0};function Xs(){return{document:{[91]:{tokenize:ey,continuation:{tokenize:ty},exit:ny}},text:{[91]:{tokenize:J0},[93]:{add:"after",tokenize:Q0,resolveTo:X0}}}}function Q0(e,t,n){let r=this,i=r.events.length,o=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a;for(;i--;){let l=r.events[i][1];if(l.type==="labelImage"){a=l;break}if(l.type==="gfmFootnoteCall"||l.type==="labelLink"||l.type==="label"||l.type==="image"||l.type==="link")break}return s;function s(l){if(!a||!a._balanced)return n(l);let u=We(r.sliceSerialize({start:a.end,end:r.now()}));return u.charCodeAt(0)!==94||!o.includes(u.slice(1))?n(l):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(l),e.exit("gfmFootnoteCallLabelMarker"),t(l))}}function X0(e,t){let n=e.length,r;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){r=e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";let i={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},o={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};o.end.column++,o.end.offset++,o.end._bufferIndex++;let a={type:"gfmFootnoteCallString",start:Object.assign({},o.end),end:Object.assign({},e[e.length-1][1].start)},s={type:"chunkString",contentType:"string",start:Object.assign({},a.start),end:Object.assign({},a.end)},l=[e[n+1],e[n+2],["enter",i,t],e[n+3],e[n+4],["enter",o,t],["exit",o,t],["enter",a,t],["enter",s,t],["exit",s,t],["exit",a,t],e[e.length-2],e[e.length-1],["exit",i,t]];return e.splice(n,e.length-n+1,...l),e}function J0(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o=0,a;return s;function s(m){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(m),e.exit("gfmFootnoteCallLabelMarker"),l}function l(m){return m!==94?n(m):(e.enter("gfmFootnoteCallMarker"),e.consume(m),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(m){let f;return m===null||m===91||o++>999?n(m):m===93?a?(e.exit("chunkString"),f=e.exit("gfmFootnoteCallString"),i.includes(We(r.sliceSerialize(f)))?p(m):n(m)):n(m):(e.consume(m),J(m)||(a=!0),m===92?c:u)}function c(m){return m===91||m===92||m===93?(e.consume(m),o++,u):u(m)}function p(m){return e.enter("gfmFootnoteCallLabelMarker"),e.consume(m),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t}}function ey(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o,a=0,s;return l;function l(h){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(h),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(h){return h===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(h),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),c):n(h)}function c(h){let g;return h===null||h===91||a>999?n(h):h===93?s?(g=e.exit("gfmFootnoteDefinitionLabelString"),o=We(r.sliceSerialize(g)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(h),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f):n(h):D(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),a++,c):(e.enter("chunkString").contentType="string",p(h))}function p(h){return h===null||D(h)||h===91||h===93||a>999?(e.exit("chunkString"),c(h)):(J(h)||(s=!0),a++,e.consume(h),h===92?m:p)}function m(h){return h===91||h===92||h===93?(e.consume(h),a++,p):p(h)}function f(h){return h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),Y(e,d,"gfmFootnoteDefinitionWhitespace")):n(h)}function d(h){return i.includes(o)||i.push(o),t(h)}}function ty(e,t,n){return e.check(Rt,t,e.attempt(Z0,t,n))}function ny(e){e.exit("gfmFootnoteDefinition")}function ry(e,t,n){let r=this;return Y(e,i,"gfmFootnoteDefinitionIndent",4+1);function i(o){let a=r.events[r.events.length-1];return a&&a[1].type==="gfmFootnoteDefinitionIndent"&&a[2].sliceSerialize(a[1],!0).length===4?t(o):n(o)}}function Js(e={}){let t=e.singleTilde,n={tokenize:i,resolveAll:r};return t==null&&(t=!0),{text:{[126]:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(o,a){let s=-1;for(;++s1?s(f):(o.consume(f),c++,m);if(c<2&&!t)return s(f);let h=o.exit("strikethroughSequenceTemporary"),g=sr(f);return h._open=!g||g===2&&Boolean(d),h._close=!d||d===2&&Boolean(g),a(f)}}}var el={flow:{null:{tokenize:oy,resolve:iy}}},jp={tokenize:ay,partial:!0};function iy(e,t){let n=-1,r,i,o,a,s,l,u;for(;++n=4?te(w):(r._gfmTableDynamicInterruptHack=!0,C.check(r.parser.constructs.flow,function(rt){return r._gfmTableDynamicInterruptHack=!1,te(rt)},function(rt){return r._gfmTableDynamicInterruptHack=!1,oe(rt)})(w))}}}function ay(e,t,n){let r=0;return i;function i(a){return e.enter("check"),e.consume(a),o}function o(a){return a===-1||a===32?(e.consume(a),r++,r===4?t:o):a===null||J(a)?t(a):n(a)}}var sy={tokenize:ly},tl={text:{[91]:sy}};function ly(e,t,n){let r=this;return i;function i(s){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(s):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),o)}function o(s){return J(s)?(e.enter("taskListCheckValueUnchecked"),e.consume(s),e.exit("taskListCheckValueUnchecked"),a):s===88||s===120?(e.enter("taskListCheckValueChecked"),e.consume(s),e.exit("taskListCheckValueChecked"),a):n(s)}function a(s){return s===93?(e.enter("taskListCheckMarker"),e.consume(s),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),e.check({tokenize:uy},t,n)):n(s)}}function uy(e,t,n){let r=this;return Y(e,i,"whitespace");function i(o){let a=r.events[r.events.length-1];return(a&&a[1].type==="whitespace"||D(o))&&o!==null?t(o):n(o)}}function qp(e){return So([Us,Xs(),Js(e),el,tl])}function mr(e,t){let n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function nl(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var cy={}.hasOwnProperty,rl=function(e,t,n,r){let i,o;typeof t=="string"||t instanceof RegExp?(o=[[t,n]],i=r):(o=t,i=n),i||(i={});let a=jt(i.ignore||[]),s=py(o),l=-1;for(;++l0?{type:"text",value:_}:void 0),_!==!1&&(g!==E&&S.push({type:"text",value:p.value.slice(g,E)}),Array.isArray(_)?S.push(..._):_&&S.push(_),g=E+I[0].length,O=!0),!d.global)break;I=d.exec(p.value)}return O?(ge}var il="phrasing",ol=["autolink","link","image","label"],Wp={transforms:[yy],enter:{literalAutolink:my,literalAutolinkEmail:al,literalAutolinkHttp:al,literalAutolinkWww:al},exit:{literalAutolink:gy,literalAutolinkEmail:hy,literalAutolinkHttp:fy,literalAutolinkWww:dy}},Up={unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:il,notInConstruct:ol},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:il,notInConstruct:ol},{character:":",before:"[ps]",after:"\\/",inConstruct:il,notInConstruct:ol}]};function my(e){this.enter({type:"link",title:null,url:"",children:[]},e)}function al(e){this.config.enter.autolinkProtocol.call(this,e)}function fy(e){this.config.exit.autolinkProtocol.call(this,e)}function dy(e){this.config.exit.data.call(this,e);let t=this.stack[this.stack.length-1];t.url="http://"+this.sliceSerialize(e)}function hy(e){this.config.exit.autolinkEmail.call(this,e)}function gy(e){this.exit(e)}function yy(e){rl(e,[[/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi,by],[/([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/g,wy]],{ignore:["link","linkReference"]})}function by(e,t,n,r,i){let o="";if(!Gp(i)||(/^w/i.test(t)&&(n=t+n,t="",o="http://"),!xy(n)))return!1;let a=ky(n+r);if(!a[0])return!1;let s={type:"link",title:null,url:o+t+a[0],children:[{type:"text",value:t+a[0]}]};return a[1]?[s,{type:"text",value:a[1]}]:s}function wy(e,t,n,r){return!Gp(r,!0)||/[_-\d]$/.test(n)?!1:{type:"link",title:null,url:"mailto:"+t+"@"+n,children:[{type:"text",value:t+"@"+n}]}}function xy(e){let t=e.split(".");return!(t.length<2||t[t.length-1]&&(/_/.test(t[t.length-1])||!/[a-zA-Z\d]/.test(t[t.length-1]))||t[t.length-2]&&(/_/.test(t[t.length-2])||!/[a-zA-Z\d]/.test(t[t.length-2])))}function ky(e){let t=/[!"&'),.:;<>?\]}]+$/.exec(e),n,r,i,o;if(t)for(e=e.slice(0,t.index),o=t[0],n=o.indexOf(")"),r=mr(e,"("),i=mr(e,")");n!==-1&&r>i;)e+=o.slice(0,n+1),o=o.slice(n+1),n=o.indexOf(")"),i++;return[e,o]}function Gp(e,t){let n=e.input.charCodeAt(e.index-1);return(e.index===0||An(n)||En(n))&&(!t||n!==47)}function Zp(){return{enter:{gfmFootnoteDefinition:e,gfmFootnoteDefinitionLabelString:t,gfmFootnoteCall:i,gfmFootnoteCallString:o},exit:{gfmFootnoteDefinition:r,gfmFootnoteDefinitionLabelString:n,gfmFootnoteCall:s,gfmFootnoteCallString:a}};function e(l){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},l)}function t(){this.buffer()}function n(l){let u=this.resume(),c=this.stack[this.stack.length-1];c.label=u,c.identifier=We(this.sliceSerialize(l)).toLowerCase()}function r(l){this.exit(l)}function i(l){this.enter({type:"footnoteReference",identifier:"",label:""},l)}function o(){this.buffer()}function a(l){let u=this.resume(),c=this.stack[this.stack.length-1];c.label=u,c.identifier=We(this.sliceSerialize(l)).toLowerCase()}function s(l){this.exit(l)}}function Qp(){return e.peek=t,{unsafe:[{character:"[",inConstruct:["phrasing","label","reference"]}],handlers:{footnoteDefinition:n,footnoteReference:e}};function e(r,i,o,a){let s=X(a),l=s.move("[^"),u=o.enter("footnoteReference"),c=o.enter("reference");return l+=s.move(ie(o,qt(r),{...s.current(),before:l,after:"]"})),c(),u(),l+=s.move("]"),l}function t(){return"["}function n(r,i,o,a){let s=X(a),l=s.move("[^"),u=o.enter("footnoteDefinition"),c=o.enter("label");return l+=s.move(ie(o,qt(r),{...s.current(),before:l,after:"]"})),c(),l+=s.move("]:"+(r.children&&r.children.length>0?" ":"")),s.shift(4),l+=s.move(un(Dt(r,o,s.current()),p)),u(),l;function p(m,f,d){return f?(d?"":" ")+m:m}}}var Xp={canContainEols:["delete"],enter:{strikethrough:vy},exit:{strikethrough:Sy}},Jp={unsafe:[{character:"~",inConstruct:"phrasing"}],handlers:{delete:em}};em.peek=Oy;function vy(e){this.enter({type:"delete",children:[]},e)}function Sy(e){this.exit(e)}function em(e,t,n,r){let i=X(r),o=n.enter("emphasis"),a=i.move("~~");return a+=Fe(e,n,{...i.current(),before:a,after:"~"}),a+=i.move("~~"),o(),a}function Oy(){return"~"}function nm(e,t={}){let n=(t.align||[]).concat(),r=t.stringLength||Cy,i=[],o=[],a=[],s=[],l=0,u=-1;for(;++ul&&(l=e[u].length);++gs[g])&&(s[g]=O)}d.push(b)}o[u]=d,a[u]=h}let c=-1;if(typeof n=="object"&&"length"in n)for(;++cs[c]&&(s[c]=b),m[c]=b),p[c]=O}o.splice(1,0,p),a.splice(1,0,m),u=-1;let f=[];for(;++un==="none"?null:n),children:[]},e),this.setData("inTable",!0)}function Ey(e){this.exit(e),this.setData("inTable")}function Ly(e){this.enter({type:"tableRow",children:[]},e)}function sl(e){this.exit(e)}function rm(e){this.enter({type:"tableCell",children:[]},e)}function _y(e){let t=this.resume();this.getData("inTable")&&(t=t.replace(/\\([\\|])/g,Iy));let n=this.stack[this.stack.length-1];n.value=t,this.exit(e)}function Iy(e,t){return t==="|"?t:e}function ul(e){let t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,o=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` -`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{table:a,tableRow:s,tableCell:l,inlineCode:m}};function a(f,d,h,g){return u(c(f,h,g),f.align)}function s(f,d,h,g){let b=p(f,h,g),O=u([b]);return O.slice(0,O.indexOf(` -`))}function l(f,d,h,g){let b=h.enter("tableCell"),O=h.enter("phrasing"),S=Fe(f,h,{...g,before:o,after:o});return O(),b(),S}function u(f,d){return nm(f,{align:d,alignDelimiters:r,padding:n,stringLength:i})}function c(f,d,h){let g=f.children,b=-1,O=[],S=d.enter("table");for(;++bG,booleanish:()=>ye,commaOrSpaceSeparated:()=>lt,commaSeparated:()=>cn,number:()=>F,overloadedBoolean:()=>dl,spaceSeparated:()=>ae});var zy=0,G=Fn(),ye=Fn(),dl=Fn(),F=Fn(),ae=Fn(),cn=Fn(),lt=Fn();function Fn(){return 2**++zy}var hl=Object.keys(Xr),Rn=class extends Ge{constructor(t,n,r,i){let o=-1;if(super(t,n),pm(this,"space",i),typeof r=="number")for(;++o4&&n.slice(0,4)==="data"&&Hy.test(t)){if(t.charAt(4)==="-"){let o=t.slice(5).replace(dm,qy);r="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{let o=t.slice(4);if(!dm.test(o)){let a=o.replace(Yy,jy);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}i=Rn}return new i(r,t)}function jy(e){return"-"+e.toLowerCase()}function qy(e){return e.charAt(1).toUpperCase()}var hm=fl([yl,gl,bl,wl,mm],"html"),Wo=fl([yl,gl,bl,wl,fm],"svg");var gm=["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","isindex","keygen","link","menuitem","meta","nextid","param","source","track","wbr"];var Oe=function(e,t,n,r,i){let o=ym(t);if(n!=null&&(typeof n!="number"||n<0||n===Number.POSITIVE_INFINITY))throw new Error("Expected positive finite index for child node");if(r!=null&&(!r.type||!r.children))throw new Error("Expected parent node");if(!e||!e.type||typeof e.type!="string")return!1;if(r==null!=(n==null))throw new Error("Expected both parent and index");return o.call(i,e,n,r)},ym=function(e){if(e==null)return kl;if(typeof e=="string")return Ky(e);if(typeof e=="object")return Vy(e);if(typeof e=="function")return bm(e);throw new Error("Expected function, string, or array as test")};function Vy(e){let t=[],n=-1;for(;++n0}function cb(e){let t=be(e,-1,!0);return!t||!Dn(t)&&!Go(t)&&!Oe(t,["meta","link","script","style","template"])}function pb(e,t,n){let r=vl(n,t),i=be(e,-1,!0);return Oe(r,"colgroup")&&Jr(r,n.children.indexOf(r),n)?!1:i&&Oe(i,"col")}function mb(e,t,n){let r=vl(n,t),i=be(e,-1);return Oe(r,["thead","tbody"])&&Jr(r,n.children.indexOf(r),n)?!1:i&&Oe(i,"tr")}var Sm={opening:vm,closing:Jr};function Om(e){return e.join(" ").trim()}function Tm(e,t){var n=t||{};return e[e.length-1]===""&&(e=e.concat("")),e.join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}function Cm(e,t){if(e=e.replace(t.subset?fb(t.subset):/["&'<>`]/g,r),t.subset||t.escapeOnly)return e;return e.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,n).replace(/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,r);function n(i,o,a){return t.format((i.charCodeAt(0)-55296)*1024+i.charCodeAt(1)-56320+65536,a.charCodeAt(o+2),t)}function r(i,o,a){return t.format(i.charCodeAt(0),a.charCodeAt(o+1),t)}}function fb(e){let t=[],n=-1;for(;++n",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",circ:"\u02C6",tilde:"\u02DC",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200C",zwj:"\u200D",lrm:"\u200E",rlm:"\u200F",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201A",ldquo:"\u201C",rdquo:"\u201D",bdquo:"\u201E",dagger:"\u2020",Dagger:"\u2021",permil:"\u2030",lsaquo:"\u2039",rsaquo:"\u203A",euro:"\u20AC"};var _m=["cent","copy","divide","gt","lt","not","para","times"];var Im={}.hasOwnProperty,Ol={},Xo;for(Xo in Qo)Im.call(Qo,Xo)&&(Ol[Qo[Xo]]=Xo);function Mm(e,t,n,r){let i=String.fromCharCode(e);if(Im.call(Ol,i)){let o=Ol[i],a="&"+o;return n&&Lm.includes(o)&&!_m.includes(o)&&(!r||t&&t!==61&&/[^\da-z]/i.test(String.fromCharCode(t)))?a:a+";"}return""}function Bm(e,t,n){let r=Am(e,t,n.omitOptionalSemicolons),i;if((n.useNamedReferences||n.useShortestReferences)&&(i=Mm(e,t,n.omitOptionalSemicolons,n.attribute)),(n.useShortestReferences||!i)&&n.useShortestReferences){let o=Em(e,t,n.omitOptionalSemicolons);o.length`.split(""),` -\f\r "&'/=>\``.split("")],[`\0 -\f\r "&'/<=>`.split(""),`\0 -\f\r "&'/<=>\``.split("")]],unquoted:[[` -\f\r &>`.split(""),`\0 -\f\r "&'<=>\``.split("")],[`\0 -\f\r "&'<=>\``.split(""),`\0 -\f\r "&'<=>\``.split("")]],single:[["&'".split(""),"\"&'`".split("")],["\0&'".split(""),"\0\"&'`".split("")]],double:[['"&'.split(""),"\"&'`".split("")],['\0"&'.split(""),"\0\"&'`".split("")]]};function Fm(e,t){return e.bogusComments?""]}))+">":"|--!>|";function n(r){return Wt(r,Object.assign({},e.entities,{subset:["<",">"]}))}}function Rm(e){return""}function Jo(e,t,n,r){return r&&r.type==="element"&&(r.tagName==="script"||r.tagName==="style")?t.value:Wt(t.value,Object.assign({},e.entities,{subset:["<","&"]}))}function Dm(e,t,n,r){return e.dangerous?t.value:Jo(e,t,n,r)}var Pm={comment:Fm,doctype:Rm,element:hb,raw:Dm,root:Nm,text:Jo},db={}.hasOwnProperty;function Tl(e,t,n,r){if(!t||!t.type)throw new Error("Expected node, not `"+t+"`");if(!db.call(Pm,t.type))throw new Error("Cannot compile unknown node `"+t.type+"`");return Pm[t.type](e,t,n,r)}function Nm(e,t){let n=[],r=t&&t.children||[],i=-1;for(;++i")),s.push(c),!a&&(!o||!o.closing(t,n,r))&&s.push(""),s.join("")}function gb(e,t){let n=[],r=-1,i,o,a;for(i in t)t[i]!==void 0&&t[i]!==null&&(o=yb(e,i,t[i]),o&&n.push(o));for(;++rmr(n,e.alternative)&&(i=e.alternative),o=i+Wt(n,Object.assign({},e.entities,{subset:(i==="'"?ei.single:ei.double)[e.schema.space==="html"?e.valid:1][e.safe],attribute:!0}))+i),a+(o&&"="+o))}function Cl(e,t={}){let n=t.quote||'"',r=n==='"'?"'":'"';if(n!=='"'&&n!=="'")throw new Error("Invalid quote `"+n+"`, expected `'` or `\"`");let i={valid:t.allowParseErrors?0:1,safe:t.allowDangerousCharacters?0:1,schema:t.space==="svg"?Wo:hm,omit:t.omitOptionalTags?Sm:void 0,quote:n,alternative:r,smart:t.quoteSmart,unquoted:t.preferUnquoted,tight:t.tightAttributes,upperDoctype:t.upperDoctype,tightDoctype:t.tightDoctype,bogusComments:t.bogusComments,tightLists:t.tightCommaSeparatedLists,tightClose:t.tightSelfClosing,collapseEmpty:t.collapseEmptyAttributes,dangerous:t.allowDangerousHtml,voids:t.voids||gm.concat(),entities:t.entities||{},close:t.closeSelfClosing,closeEmpty:t.closeEmptyElements};return Tl(i,Array.isArray(e)?{type:"root",children:e}:e,null,null)}function ea(e){let t=this.data("settings"),n=Object.assign({},t,e);Object.assign(this,{Compiler:r});function r(i){return Cl(i,n)}}var ee=function(e,t,n){var r={type:String(e)};return n==null&&(typeof t=="string"||Array.isArray(t))?n=t:Object.assign(r,t),Array.isArray(n)?r.children=n:n!=null&&(r.value=String(n)),r};var ta={}.hasOwnProperty;function bb(e,t){let n=t.data||{};return"value"in t&&!(ta.call(n,"hName")||ta.call(n,"hProperties")||ta.call(n,"hChildren"))?e.augment(t,ee("text",t.value)):e(t,"div",re(e,t))}function Al(e,t,n){let r=t&&t.type,i;if(!r)throw new Error("Expected node, got `"+t+"`");return ta.call(e.handlers,r)?i=e.handlers[r]:e.passThrough&&e.passThrough.includes(r)?i=wb:i=e.unknownHandler,(typeof i=="function"?i:bb)(e,t,n)}function wb(e,t){return"children"in t?{...t,children:re(e,t)}:t}function re(e,t){let n=[];if("children"in t){let r=t.children,i=-1;for(;++i-1?r.offset:null}}}function $m(e){return!e||!e.position||!e.position.start||!e.position.start.line||!e.position.start.column||!e.position.end||!e.position.end.line||!e.position.end.column}var Hm={}.hasOwnProperty;function jm(e){let t=Object.create(null);if(!e||!e.type)throw new Error("mdast-util-definitions expected node");return rn(e,"definition",r=>{let i=Ym(r.identifier);i&&!Hm.call(t,i)&&(t[i]=r)}),n;function n(r){let i=Ym(r);return i&&Hm.call(t,i)?t[i]:null}}function Ym(e){return String(e||"").toUpperCase()}function ut(e,t){let n=[],r=-1;for(t&&n.push(ee("text",` -`));++r0&&n.push(ee("text",` -`)),n}function qm(e){let t=-1,n=[];for(;++t1?"-"+s:""),dataFootnoteBackref:!0,className:["data-footnote-backref"],ariaLabel:e.footnoteBackLabel},children:[{type:"text",value:"\u21A9"}]};s>1&&p.children.push({type:"element",tagName:"sup",children:[{type:"text",value:String(s)}]}),l.length>0&&l.push({type:"text",value:" "}),l.push(p)}let u=i[i.length-1];if(u&&u.type==="element"&&u.tagName==="p"){let p=u.children[u.children.length-1];p&&p.type==="text"?p.value+=" ":u.children.push({type:"text",value:" "}),u.children.push(...l)}else i.push(...l);let c={type:"element",tagName:"li",properties:{id:e.clobberPrefix+"fn-"+a},children:ut(i,!0)};r.position&&(c.position=r.position),n.push(c)}return n.length===0?null:{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:e.footnoteLabelTagName,properties:{...JSON.parse(JSON.stringify(e.footnoteLabelProperties)),id:"footnote-label"},children:[ee("text",e.footnoteLabel)]},{type:"text",value:` -`},{type:"element",tagName:"ol",properties:{},children:ut(n,!0)},{type:"text",value:` -`}]}}function Vm(e,t){return e(t,"blockquote",ut(re(e,t),!0))}function Km(e,t){return[e(t,"br"),ee("text",` -`)]}function Wm(e,t){let n=t.value?t.value+` -`:"",r=t.lang&&t.lang.match(/^[^ \t]+(?=[ \t]|$)/),i={};r&&(i.className=["language-"+r]);let o=e(t,"code",i,[ee("text",n)]);return t.meta&&(o.data={meta:t.meta}),e(t.position,"pre",[o])}function Um(e,t){return e(t,"del",re(e,t))}function Gm(e,t){return e(t,"em",re(e,t))}function ia(e,t){let n=String(t.identifier),r=gt(n.toLowerCase()),i=e.footnoteOrder.indexOf(n),o;i===-1?(e.footnoteOrder.push(n),e.footnoteCounts[n]=1,o=e.footnoteOrder.length):(e.footnoteCounts[n]++,o=i+1);let a=e.footnoteCounts[n];return e(t,"sup",[e(t.position,"a",{href:"#"+e.clobberPrefix+"fn-"+r,id:e.clobberPrefix+"fnref-"+r+(a>1?"-"+a:""),dataFootnoteRef:!0,ariaDescribedBy:"footnote-label"},[ee("text",String(o))])])}function Zm(e,t){let n=e.footnoteById,r=1;for(;r in n;)r++;let i=String(r);return n[i]={type:"footnoteDefinition",identifier:i,children:[{type:"paragraph",children:t.children}],position:t.position},ia(e,{type:"footnoteReference",identifier:i,position:t.position})}function Qm(e,t){return e(t,"h"+t.depth,re(e,t))}function Xm(e,t){return e.dangerous?e.augment(t,ee("raw",t.value)):null}function oa(e,t){let n=t.referenceType,r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return ee("text","!["+t.alt+r);let i=re(e,t),o=i[0];o&&o.type==="text"?o.value="["+o.value:i.unshift(ee("text","["));let a=i[i.length-1];return a&&a.type==="text"?a.value+=r:i.push(ee("text",r)),i}function Jm(e,t){let n=e.definition(t.identifier);if(!n)return oa(e,t);let r={src:gt(n.url||""),alt:t.alt};return n.title!==null&&n.title!==void 0&&(r.title=n.title),e(t,"img",r)}function ef(e,t){let n={src:gt(t.url),alt:t.alt};return t.title!==null&&t.title!==void 0&&(n.title=t.title),e(t,"img",n)}function tf(e,t){return e(t,"code",[ee("text",t.value.replace(/\r?\n|\r/g," "))])}function nf(e,t){let n=e.definition(t.identifier);if(!n)return oa(e,t);let r={href:gt(n.url||"")};return n.title!==null&&n.title!==void 0&&(r.title=n.title),e(t,"a",r,re(e,t))}function rf(e,t){let n={href:gt(t.url)};return t.title!==null&&t.title!==void 0&&(n.title=t.title),e(t,"a",n,re(e,t))}function of(e,t,n){let r=re(e,t),i=n?xb(n):af(t),o={},a=[];if(typeof t.checked=="boolean"){let u;r[0]&&r[0].type==="element"&&r[0].tagName==="p"?u=r[0]:(u=e(null,"p",[]),r.unshift(u)),u.children.length>0&&u.children.unshift(ee("text"," ")),u.children.unshift(e(null,"input",{type:"checkbox",checked:t.checked,disabled:!0})),o.className=["task-list-item"]}let s=-1;for(;++s1:t}function sf(e,t){let n={},r=t.ordered?"ol":"ul",i=re(e,t),o=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++o0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return o.push(mf(t.slice(i),i>0,!1)),o.join("")}function mf(e,t,n){let r=0,i=e.length;if(t){let o=e.codePointAt(r);for(;o===9||o===32;)r++,o=e.codePointAt(r)}if(n){let o=e.codePointAt(i-1);for(;o===9||o===32;)i--,o=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}function df(e,t){return e.augment(t,ee("text",ff(String(t.value))))}function hf(e,t){return e(t,"hr")}var El={blockquote:Vm,break:Km,code:Wm,delete:Um,emphasis:Gm,footnoteReference:ia,footnote:Zm,heading:Qm,html:Xm,imageReference:Jm,image:ef,inlineCode:tf,linkReference:nf,link:rf,listItem:of,list:sf,paragraph:lf,root:uf,strong:cf,table:pf,text:df,thematicBreak:hf,toml:aa,yaml:aa,definition:aa,footnoteDefinition:aa};function aa(){return null}var kb={}.hasOwnProperty;function vb(e,t){let n=t||{},r=n.allowDangerousHtml||!1,i={};return a.dangerous=r,a.clobberPrefix=n.clobberPrefix===void 0||n.clobberPrefix===null?"user-content-":n.clobberPrefix,a.footnoteLabel=n.footnoteLabel||"Footnotes",a.footnoteLabelTagName=n.footnoteLabelTagName||"h2",a.footnoteLabelProperties=n.footnoteLabelProperties||{className:["sr-only"]},a.footnoteBackLabel=n.footnoteBackLabel||"Back to content",a.definition=jm(e),a.footnoteById=i,a.footnoteOrder=[],a.footnoteCounts={},a.augment=o,a.handlers={...El,...n.handlers},a.unknownHandler=n.unknownHandler,a.passThrough=n.passThrough,rn(e,"footnoteDefinition",s=>{let l=String(s.identifier).toUpperCase();kb.call(i,l)||(i[l]=s)}),a;function o(s,l){if(s&&"data"in s&&s.data){let u=s.data;u.hName&&(l.type!=="element"&&(l={type:"element",tagName:"",properties:{},children:[]}),l.tagName=u.hName),l.type==="element"&&u.hProperties&&(l.properties={...l.properties,...u.hProperties}),"children"in l&&l.children&&u.hChildren&&(l.children=u.hChildren)}if(s){let u="type"in s?s:{position:s};$m(u)||(l.position={start:na(u),end:ra(u)})}return l}function a(s,l,u,c){return Array.isArray(u)&&(c=u,u={}),o(s,{type:"element",tagName:l,properties:u||{},children:c||[]})}}function sa(e,t){let n=vb(e,t),r=Al(n,e,null),i=qm(n);return i&&r.children.push(ee("text",` -`),i),Array.isArray(r)?{type:"root",children:r}:r}var Sb=function(e,t){return e&&"run"in e?Ob(e,t):Tb(e||t)},Ll=Sb;function Ob(e,t){return(n,r,i)=>{e.run(sa(n,t),r,o=>{i(o)})}}function Tb(e){return t=>sa(t,e)}function Cb(e){return Ws().use(jo).use(qo).parse(e)}function ct(e){let t=String(Ws().use(jo).use(qo).use(Ll).use(ea).processSync(e)).trim();return t.startsWith("

")&&(t=t.substring(3)),t.endsWith("

")&&(t=t.substring(0,t.length-4)),t}function Ze(e,t){let n=Cb(t),r=[];return rn(n,e,i=>{r.push(i.position)}),r.sort((i,o)=>o.start.offset-i.start.offset),r}function gf(e){let t=Ze("footnoteDefinition",e),n=[],r=new Set,i=new Map,o=function(a,s){let l=a.match(/\[\^.*?\]/)[0],u;do u=e.lastIndexOf(l,s),s=u;while(r.has(u)&&u!==-1);if(u===-1)throw new Error(`Footnote '${a}' has no corresponding footnote reference before the footnote contents and cannot be processed. Please make sure that all footnotes have a corresponding reference before the content of the footnote.`);return r.add(u),u};for(let a of t){let s=e.substring(a.start.offset,a.end.offset);n.push(s),a.end.offseti.get(a)-i.get(s)),n.length>0&&(e=e.trimEnd()+` -`);for(let a of n)e+=` -`+a;return e}function la(e,t,n){let r=Ze(n,e);if(r.length===0)return e;let i="";if(t==="underscore")i="_";else if(t==="asterisk")i="*";else{let o=r[r.length-1];i=e.substring(o.start.offset,o.start.offset+1)}n==="strong"&&(i+=i);for(let o of r){let a=i+e.substring(o.start.offset+i.length,o.end.offset-i.length)+i;e=Ve(e,o.start.offset,o.end.offset,a)}return e}function yf(e){let t=Ze("paragraph",e);if(t.length===0)return e;for(let n of t){let r=e.substring(n.start.offset,n.end.offset).split(` -`),i=r.length-1;if(!(i<1)){for(let o=0;o")||a.endsWith("
")||(r[o]=a+" ")}e=Ve(e,n.start.offset,n.end.offset,r.join(` -`))}}return e}function bf(e){let t=e.endsWith(` -`),n=Ze("paragraph",e);if(n.length===0)return e;for(let r of n){let i=r.start.offset;for(i>0&&i--;i>=0&&e.charAt(i)!=` -`;)i--;i++;let o=e.substring(i,r.end.offset).split(` -`),a=o[0].trimStart();if(a.startsWith("> ")||a.startsWith("> ")||a.startsWith("- ")||a.startsWith("- ")||a.match(/^[0-9]+\.( |\t)+/))continue;let s=o.length,l=[],u=!1;for(let d=0;d")||h.endsWith("
")||h.endsWith(" ")}for(;i>0&&e.charAt(i-1)==` -`;)i--;let c=e.length,p=r.end.offset;for(p?)*(\*|-|\+|- \[( | x)\]|\d+\.) /g,a=i.match(o);if(a){let s=i.split(new RegExp(o.source.replaceAll("(","(?:"))),l="",u=0;for(let c of s)u>0&&(l+=a[u-1]),l+=t(c),u++;i=l}else i=t(i);e=Ve(e,r.start.offset+2,r.end.offset,i)}return e}function Sf(e){let t=Ze("code",e);for(let n of t)!e.substring(n.start.offset,n.end.offset).startsWith("```")||(e=ko(e,n.start.offset,n.end.offset));return e}function Of(e){let t=Ze("table",e);for(let n of t)e=ko(e,n.start.offset,n.end.offset);return e}function Tf(e){let t=Ze("blockquote",e);for(let n of t)e=ko(e,n.start.offset,n.end.offset,!0);return e}function Cf(e,t,n){let r=Ze("list",e);if(!r)return e;for(let i of r){let o=i.start.offset;for(;o>0&&e.charAt(o-1)!==` -`;)o--;let a=e.substring(o,i.end.offset),s=function(c){let p=c.lastIndexOf("> ");return p!==-1&&(c=c.substring(p+2)),c=c.replaceAll(" "," "),Math.floor((c.split(" ").length-1)/2)+1},l=new Map,u=-1;a=a.replace(/^(( |\t|> )*)(\d+(\.|\)))([^\n]*)$/gm,(c,p="",m,f,d,h)=>{let g=1,b=s(p);if(l.has(b)?t==="ascending"&&(g=l.get(b)+1,l.set(b,g)):l.set(b,1),u>b){let O=u;for(;O>b;)l.delete(O--)}return u=b,`${p}${g}${n}${h}`}),e=Ve(e,o,i.end.offset,a)}return e}function Af(e,t){let n=Ze("listItem",e);if(!n)return e;let r=/^((\d+[.)])|(- \[[ x]\]))/m,i=t;if(t=="consistent"){let o=n.length-1;for(;o>=0;){let a=e.substring(n[o].start.offset,n[o].end.offset);if(o--,!a.match(r)){i=a.charAt(0);break}}if(o==-1)return e}for(let o of n){let a=e.substring(o.start.offset,o.end.offset);a.match(r)||(a=i+a.substring(1),e=Ve(e,o.start.offset,o.end.offset,a))}return e}var Pn=class{constructor(t,n,r,i){this.name=t,this.description=n,this.defaultValue=r,this.searchInfo={name:t,description:n},i&&(this.ruleName=i)}setOption(t,n){n.ruleConfigs[this.ruleName][this.name]=t}},fr=class extends Pn{display(n,r,i){let o=new dr.Setting(n).addToggle(a=>{a.setValue(r.ruleConfigs[this.ruleName][this.name]),a.onChange(s=>{this.setOption(s,r),i.settings=r,i.saveData(i.settings)})});o.nameEl.innerHTML=ct(this.name),o.descEl.innerHTML=ct(this.description),o.settingEl.style.border="none"}},ti=class extends Pn{display(n,r,i){let o=new dr.Setting(n).addText(a=>{a.setValue(r.ruleConfigs[this.ruleName][this.name]),a.onChange(s=>{this.setOption(s,r),i.settings=r,i.saveData(i.settings)})});o.nameEl.innerHTML=ct(this.name),o.descEl.innerHTML=ct(this.description),o.settingEl.style.border="none"}},ua=class extends Pn{display(n,r,i){let o=new dr.Setting(n).addTextArea(a=>{a.setValue(r.ruleConfigs[this.ruleName][this.name]),a.onChange(s=>{this.setOption(s,r),i.settings=r,i.saveData(i.settings)})});o.nameEl.innerHTML=ct(this.name),o.descEl.innerHTML=ct(this.description),o.settingEl.style.border="none"}},ca=class extends Pn{display(n,r,i){let o=new dr.Setting(n).addMomentFormat(a=>{a.setValue(r.ruleConfigs[this.ruleName][this.name]),a.setPlaceholder("dddd, MMMM Do YYYY, h:mm:ss a"),a.onChange(s=>{this.setOption(s,r),i.settings=r,i.saveData(i.settings)})});o.nameEl.innerHTML=ct(this.name),o.descEl.innerHTML=ct(this.description),o.settingEl.style.border="none"}},pa=class{constructor(t,n){this.value=t,this.description=n}},ma=class extends Pn{constructor(n,r,i,o,a){super(n,r,i,a);this.options=o,this.searchInfo.options=o}display(n,r,i){let o=new dr.Setting(n).addDropdown(a=>{for(let s of this.options)a.addOption(s.value,s.value);a.setValue(r.ruleConfigs[this.ruleName][this.name]),a.onChange(s=>{this.setOption(s,r),i.settings=r,i.saveData(i.settings)})});o.nameEl.innerHTML=ct(this.name),o.descEl.innerHTML=ct(this.description),o.settingEl.style.border="none"}};var pn=class extends Error{constructor(t,n){var r;super(t),this.cause=n!=null?n:null,this.stack=(r=n.stack)!=null?r:null,Object.setPrototypeOf(this,pn.prototype)}};var W=(o=>(o.YAML="YAML",o.HEADING="Heading",o.FOOTNOTE="Footnote",o.CONTENT="Content",o.SPACING="Spacing",o))(W||{}),fa=class{constructor(t,n,r,i,o,a=[],s=!1){this.name=t,this.description=n,this.type=r,this.apply=i,this.examples=o,a.unshift(new fr(this.description,"",!1));for(let l of a)l.ruleName=t;this.options=a,this.hasSpecialExecutionOrder=s}alias(){return this.name.replace(/ /g,"-").toLowerCase()}getDefaultOptions(){let t={};for(let n of this.options)t[n.name]=n.defaultValue;return t}getOptions(t){return t.ruleConfigs[this.name]}getURL(){return"https://github.com/platers/obsidian-linter/blob/master/docs/rules.md"+"#"+this.alias()}enabledOptionName(){return this.options[0].name}},da=class{constructor(t,n,r,i={}){this.description=t,this.options=i,this.before=n,this.after=r}},Ef=Object.values(W);function Lf(e){let t=e.match(Ie);if(!t)return[];let n=t[1],r=Be(n,"disabled rules");if(r==null)return[];let i=r.includes(` + - `);case"single string space delimited":return e==null||e.length===0?" ":e.length===1?" "+e[0]:" "+e.join(" ");case"single string comma delimited":return e==null||e.length===0?" ":e.length===1?" "+e[0]:" "+e.join(", ");case"single-line space delimited":return e==null||e.length===0?" []":e.length===1?" "+e[0]:" "+Xo(e).replaceAll(", "," ")}}function Xo(e){return e==null||e.length===0?"[]":"["+e.join(", ")+"]"}function ht(e){if(e==null||e.length===0)return null;if(e=e.trimEnd(),e.startsWith("[")){if(e=e.substring(1),e.endsWith("]")&&(e=e.substring(0,e.length-1)),e.length===0)return null;let t=e.split(", ");return t=t.length>1?t:t[0].split(","),t.filter(n=>n!="")}if(e.includes(` +`)){let t=e.split(/[ \t]*\n[ \t]*-[ \t]*/);return t.splice(0,1),t=t.filter(n=>n!=""),t==null||t.length===0?null:t}return e}function _r(e){if(e==null)return[];let t=[],n=[];Array.isArray(e)?n=e:e.includes(",")?n=e.split(", "):n=e.split(" ");for(let i of n)t.push(i.trim());return t}function Br(e){return typeof e=="string"?e.split(", "):e}function ns(e){return e.length>1&&(e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"'))}function kt(e,t,n=!1){if(ns(e))return e;let i=e.includes("'"),r=e.includes('"'),o=e.includes(": ");return!i&&!r&&!o&&!n||i&&r?e:i?`"${e}"`:r?`'${e}'`:`${t}${e}${t}`}var Mn=require("obsidian");var hl=require("obsidian");function We(e,t){hl.MarkdownRenderer.renderMarkdown(e,t,"",null);let n=t.innerHTML.trim();n.startsWith("

")&&(n=n.substring(3)),n.endsWith("

")&&(n=n.substring(0,n.length-4)),t.innerHTML=n}var Ut=class{constructor(t,n,i,r){this.name=t,this.description=n,this.defaultValue=i,this.searchInfo={name:t,description:n},r&&(this.ruleName=r)}setOption(t,n){n.ruleConfigs[this.ruleName][this.name]=t}},Bn=class extends Ut{display(n,i,r){let o=new Mn.Setting(n).addToggle(s=>{s.setValue(i.ruleConfigs[this.ruleName][this.name]),s.onChange(a=>{this.setOption(a,i),r.settings=i,r.saveData(r.settings)})});We(this.name,o.nameEl),We(this.description,o.descEl),o.settingEl.style.border="none"}},li=class extends Ut{display(n,i,r){let o=new Mn.Setting(n).addText(s=>{s.setValue(i.ruleConfigs[this.ruleName][this.name]),s.onChange(a=>{this.setOption(a,i),r.settings=i,r.saveData(r.settings)})});We(this.name,o.nameEl),We(this.description,o.descEl),o.settingEl.style.border="none"}},Mr=class extends Ut{display(n,i,r){let o=new Mn.Setting(n).addTextArea(s=>{s.setValue(i.ruleConfigs[this.ruleName][this.name]),s.onChange(a=>{this.setOption(a,i),r.settings=i,r.saveData(r.settings)})});We(this.name,o.nameEl),We(this.description,o.descEl),o.settingEl.style.border="none"}},Ir=class extends Ut{display(n,i,r){let o=new Mn.Setting(n).addMomentFormat(s=>{s.setValue(i.ruleConfigs[this.ruleName][this.name]),s.setPlaceholder("dddd, MMMM Do YYYY, h:mm:ss a"),s.onChange(a=>{this.setOption(a,i),r.settings=i,r.saveData(r.settings)})});We(this.name,o.nameEl),We(this.description,o.descEl),o.settingEl.style.border="none"}},Fr=class{constructor(t,n){this.value=t,this.description=n}},Rr=class extends Ut{constructor(n,i,r,o,s){super(n,i,r,s);this.options=o,this.searchInfo.options=o}display(n,i,r){let o=new Mn.Setting(n).addDropdown(s=>{for(let a of this.options)s.addOption(a.value,a.value);s.setValue(i.ruleConfigs[this.ruleName][this.name]),s.onChange(a=>{this.setOption(a,i),r.settings=i,r.saveData(r.settings)})});We(this.name,o.nameEl),We(this.description,o.descEl),o.settingEl.style.border="none"}};var It=class extends Error{constructor(t,n){super(t),this.cause=n??null,this.stack=n.stack??null,Object.setPrototypeOf(this,It.prototype)}};var N=(s=>(s.YAML="YAML",s.HEADING="Heading",s.FOOTNOTE="Footnote",s.CONTENT="Content",s.SPACING="Spacing",s.PASTE="Paste",s))(N||{}),$r=class{constructor(t,n,i,r,o,s=[],a=!1){this.name=t,this.description=n,this.type=i,this.apply=r,this.examples=o,s.unshift(new Bn(this.description,"",!1));for(let l of s)l.ruleName=t;this.options=s,this.hasSpecialExecutionOrder=a}alias(){return this.name.replace(/ /g,"-").toLowerCase()}getDefaultOptions(){let t={};for(let n of this.options)t[n.name]=n.defaultValue;return t}getOptions(t){return t.ruleConfigs[this.name]}getURL(){return"https://github.com/platers/obsidian-linter/blob/master/docs/rules.md"+"#"+this.alias()}enabledOptionName(){return this.options[0].name}},Dr=class{constructor(t,n,i,r={}){this.description=t,this.options=r,this.before=n,this.after=i}},gl=Object.values(N);function yl(e){let t=e.match(ke);if(!t)return[];let n=t[1],i=Oe(n,"disabled rules");if(i==null)return[];let r=i.includes(` `)?`disabled rules: -`:"disabled rules: ";i+=r;let a=ht(i)["disabled rules"];return a?(typeof a=="string"&&(a=[a]),a.includes("all")?Nt.map(s=>s.alias()):a):[]}var Nt=[],Ab=Nt.reduce((e,t)=>(e[t.alias()]=t,e),{});function _f(e){Nt.push(e),Nt.sort((t,n)=>Ef.indexOf(t.type)-Ef.indexOf(n.type)||t.name.localeCompare(n.name)),Ab[e.alias()]=e}function ha(e,t){let n;throw e instanceof uc?(n=e.toString(),n=`error in the yaml: ${n.substring(n.indexOf(":")+1)}`):n=`unknown error: ${e.message}`,new pn(`"${t}" encountered an ${n}`,e)}var Tr=Xn(If());function Eb(e){for(var t=[],n=1;nr.example),t.optionBuilders.map(r=>r.option),t.hasSpecialExecutionOrder);pt(bt,gr).set(this.name,n),pt(bt,ri).set(t.name,t)}return pt(bt,gr).get(this.name)}static applyIfEnabledBase(t,n,r,i){let o=t.getOptions(r);if(o[t.enabledOptionName()]){let a=Object.assign({},o,i);mn(`Running ${t.name}`);try{return[t.apply(n,a),!0]}catch(s){ha(s,t.name)}}else return[n,!1]}static getBuilderByName(t){return pt(bt,ri).get(t)}static setNoSettingControl(t,n){pt(bt,fn).has(t)||pt(bt,fn).set(t,[]),pt(bt,fn).get(t).push(n)}static hasSettingControl(t,n){return!pt(bt,fn).has(t)||!pt(bt,fn).get(t).includes(n)}},Ct=bt;gr=new WeakMap,ri=new WeakMap,fn=new WeakMap,Jn(Ct,gr,new Map),Jn(Ct,ri,new Map),Jn(Ct,fn,new Map);var A=class extends Ct{static register(t){let n=t.getRule();_f(n)}safeApply(t,n){return this.apply(t,this.buildRuleOptions(n))}buildRuleOptions(t){t=t!=null?t:{};let n=new this.OptionsClass,r=Object.assign(n,t);for(let i of this.optionBuilders)i.setRuleOption(r,t);return r}get hasSpecialExecutionOrder(){return!1}static applyIfEnabled(t,n,r,i){let o=this.getRule();return r.includes(o.alias())?(mn(o.alias()+" is disabled"),[t,!1]):Ct.applyIfEnabledBase(o,t,n,i)}static getRuleOptions(t){let n=Ct.getRule.bind(this)(),r=new this,i=n.getOptions(t);return r.buildRuleOptions(i)}static noSettingControl(){return(t,n)=>{let r=t.constructor.name;Ct.setNoSettingControl(r,n)}}},Il,T=class{constructor(t){Jn(this,Il,void 0);this.example=new da(t.description,t.before,t.after,t.options)}};Il=new WeakMap;var yr,dn=class{constructor(t){Jn(this,yr,void 0);this.OptionsClass=t.OptionsClass,this.name=t.name,this.description=t.description,this.optionsKey=t.optionsKey}get defaultValue(){return new this.OptionsClass()[this.optionsKey]}get option(){return pt(this,yr)||xu(this,yr,this.buildOption()),pt(this,yr)}setRuleOption(t,n){let r=n[this.name];r!==void 0&&(t[this.optionsKey]=r)}};yr=new WeakMap;var se=class extends dn{buildOption(){return new fr(this.name,this.description,this.defaultValue)}},ba=class extends dn{buildOption(){return new ti(this.name,this.description,this.defaultValue)}},de=class extends dn{constructor(n){super(n);this.records=n.records.map(r=>new pa(r.value,r.description))}buildOption(){return new ma(this.name,this.description,this.defaultValue,this.records)}},Re=class extends dn{constructor(n){var r,i;super(n);this.separator=(r=n.separator)!=null?r:` -`,this.splitter=(i=n.splitter)!=null?i:/\n/}buildOption(){return new ua(this.name,this.description,this.defaultValue.join(this.separator))}setRuleOption(n,r){if(r[this.name]!==void 0){let i=r[this.name].split(this.splitter).filter(function(o){return o!=""});n[this.optionsKey]=i}}},Nn=class extends dn{buildOption(){return new ti(this.name,this.description,this.defaultValue)}},wa=class extends dn{buildOption(){return new ca(this.name,this.description,this.defaultValue)}};var v={code:{replaceAction:"code",placeholder:"{CODE_BLOCK_PLACEHOLDER}"},inlineCode:{replaceAction:"inlineCode",placeholder:"{INLINE_CODE_BLOCK_PLACEHOLDER}"},image:{replaceAction:"image",placeholder:"{IMAGE_PLACEHOLDER}"},thematicBreak:{replaceAction:"thematicBreak",placeholder:"{HORIZONTAL_RULE_PLACEHOLDER}"},italics:{replaceAction:"emphasis",placeholder:"{ITALICS_PLACEHOLDER}"},bold:{replaceAction:"strong",placeholder:"{STRONG_PLACEHOLDER}"},list:{replaceAction:"list",placeholder:"{LIST_PLACEHOLDER}"},blockquote:{replaceAction:"blockquote",placeholder:"{BLOCKQUOTE_PLACEHOLDER}"},table:{replaceAction:"table",placeholder:"{TABLE_PLACEHOLDER}"},math:{replaceAction:"math",placeholder:"{MATH_PLACEHOLDER}"},inlineMath:{replaceAction:"inlineMath",placeholder:"{INLINE_MATH_PLACEHOLDER}"},yaml:{replaceAction:Ie,placeholder:je(`--- ----`)},wikiLink:{replaceAction:os,placeholder:"{WIKI_LINK_PLACEHOLDER}"},tag:{replaceAction:Pr,placeholder:"#tag-placeholder"},obsidianMultiLineComments:{replaceAction:pc,placeholder:"{OBSIDIAN_COMMENT_PLACEHOLDER}"},link:{replaceAction:Mb,placeholder:"{REGULAR_LINK_PLACEHOLDER}"}};function $(e,t,n){let r=[];for(let i of e){let o;if(typeof i.replaceAction=="string")o=_b(t,i.placeholder,i.replaceAction);else if(i.replaceAction instanceof RegExp)o=Ib(t,i.placeholder,i.replaceAction);else if(typeof i.replaceAction=="function"){let a=i.replaceAction;o=a(t,i.placeholder)}t=o.newText,r.push({replacedValues:o.replacedValues,placeholder:i.placeholder})}return t=n(t),r=r.reverse(),r!=null&&r.length>0&&r.forEach(i=>{i.replacedValues.forEach(o=>{t=t.replace(new RegExp(i.placeholder,"i"),je(o))})}),t}function _b(e,t,n){let r=Ze(n,e),i=[];for(let o of r){let a=e.substring(o.start.offset,o.end.offset);i.push(a),e=Ve(e,o.start.offset,o.end.offset,t)}return i.reverse(),{newText:e,replacedValues:i}}function Ib(e,t,n){let r=e.match(n),i=[];if(n.flags.includes("g")){if(e=e.replaceAll(n,t),r)for(let o of r)i.push(o)}else e=e.replace(n,t),r&&i.push(r[0]);return{newText:e,replacedValues:i}}function Mb(e,t){let n=Ze("link",e),r=[];for(let i of n){if(i==null)continue;let o=e.substring(i.start.offset,i.end.offset);!o.match(ho)||(r.push(o),e=Ve(e,i.start.offset,i.end.offset,t))}return r.reverse(),{newText:e,replacedValues:r}}var zn=class{constructor(){this.style="Title Case";this.ignoreWords=["macOS","iOS","iPhone","iPad","JavaScript","TypeScript","AppleScript"];this.lowercaseWords=["via","a","an","the","and","or","but","for","nor","so","yet","at","by","in","of","on","to","up","as","is","if","it","for","to","with","without","into","onto","per"];this.ignoreCasedWords=!0}},ii=class extends A{get OptionsClass(){return zn}get name(){return"Capitalize Headings"}get description(){return"Headings should be formatted with capitalization"}get type(){return"Heading"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag],t,r=>{let i=r.split(` -`);for(let o=0;os.toUpperCase());break}return i.join(` -`)})}get exampleBuilders(){return[new T({description:"With `Title Case=true`, `Ignore Cased Words=false`",before:y` +`:"disabled rules: ";r+=i;let s=Je(r)["disabled rules"];return s?(typeof s=="string"&&(s=[s]),s.includes("all")?gt.map(a=>a.alias()):s):[]}var gt=[],Lm=gt.reduce((e,t)=>(e[t.alias()]=t,e),{});function bl(e){gt.push(e),gt.sort((t,n)=>gl.indexOf(t.type)-gl.indexOf(n.type)||t.name.localeCompare(n.name)),Lm[e.alias()]=e}function Pr(e,t){let n;throw e instanceof ll?(n=e.toString(),n=`error in the yaml: ${n.substring(n.indexOf(":")+1)}`):n=`unknown error: ${e.message}`,new It(`"${t}" encountered an ${n}`,e)}var Vn=Ro(wl());function Cm(e){for(var t=[],n=1;ni.example),t.optionBuilders.map(i=>i.option),t.hasSpecialExecutionOrder);Ue(et,Fn).set(this.name,n),Ue(et,pi).set(t.name,t)}return Ue(et,Fn).get(this.name)}static applyIfEnabledBase(t,n,i,r){let o=t.getOptions(i);if(o[t.enabledOptionName()]){let s=Object.assign({},o,r);Ft(`Running ${t.name}`);try{return[t.apply(n,s),!0]}catch(a){Pr(a,t.name)}}else return[n,!1]}static getBuilderByName(t){return Ue(et,pi).get(t)}static setNoSettingControl(t,n){Ue(et,Rt).has(t)||Ue(et,Rt).set(t,[]),Ue(et,Rt).get(t).push(n)}static hasSettingControl(t,n){return!Ue(et,Rt).has(t)||!Ue(et,Rt).get(t).includes(n)}},st=et;Fn=new WeakMap,pi=new WeakMap,Rt=new WeakMap,Sn(st,Fn,new Map),Sn(st,pi,new Map),Sn(st,Rt,new Map);var k=class extends st{static register(t){let n=t.getRule();bl(n)}safeApply(t,n){return this.apply(t,this.buildRuleOptions(n))}buildRuleOptions(t){t=t??{};let n=new this.OptionsClass,i=Object.assign(n,t);for(let r of this.optionBuilders)r.setRuleOption(i,t);return i}get hasSpecialExecutionOrder(){return!1}static applyIfEnabled(t,n,i,r){let o=this.getRule();return i.includes(o.alias())?(Ft(o.alias()+" is disabled"),[t,!1]):st.applyIfEnabledBase(o,t,n,r)}static getRuleOptions(t){let n=st.getRule.bind(this)(),i=new this,r=n.getOptions(t);return i.buildRuleOptions(r)}static noSettingControl(){return(t,n)=>{let i=t.constructor.name;st.setNoSettingControl(i,n)}}},rs,v=class{constructor(t){Sn(this,rs,void 0);this.example=new Dr(t.description,t.before,t.after,t.options)}};rs=new WeakMap;var Rn,$t=class{constructor(t){Sn(this,Rn,void 0);this.OptionsClass=t.OptionsClass,this.name=t.name,this.description=t.description,this.optionsKey=t.optionsKey}get defaultValue(){return new this.OptionsClass()[this.optionsKey]}get option(){return Ue(this,Rn)||xa(this,Rn,this.buildOption()),Ue(this,Rn)}setRuleOption(t,n){let i=n[this.name];i!==void 0&&(t[this.optionsKey]=i)}};Rn=new WeakMap;var te=class extends $t{buildOption(){return new Bn(this.name,this.description,this.defaultValue)}},zr=class extends $t{buildOption(){return new li(this.name,this.description,this.defaultValue)}},ye=class extends $t{constructor(n){super(n);this.records=n.records.map(i=>new Fr(i.value,i.description))}buildOption(){return new Rr(this.name,this.description,this.defaultValue,this.records)}},Ae=class extends $t{constructor(n){super(n);this.separator=n.separator??` +`,this.splitter=n.splitter??/\n/}buildOption(){return new Mr(this.name,this.description,this.defaultValue.join(this.separator))}setRuleOption(n,i){if(i[this.name]!==void 0){let r=i[this.name].split(this.splitter).filter(function(o){return o!=""});n[this.optionsKey]=r}}},Gt=class extends $t{buildOption(){return new li(this.name,this.description,this.defaultValue)}},qr=class extends $t{buildOption(){return new Ir(this.name,this.description,this.defaultValue)}};var Kr=class{};A([k.noSettingControl()],Kr.prototype,"lineContent",2);var Zt=class extends k{get OptionsClass(){return Kr}get name(){return"Add Blockquote Indentation on Paste"}get description(){return"Adds blockquotes to all but the first line, when the cursor is in a blockquote/callout line during pasting"}get type(){return"Paste"}apply(t,n){let i=/^(\s*)((> ?)+) .*/,r=n.lineContent.match(i);if(!r)return t;let o=r[1]??"",s=r[2]??"";return t.trim().replace(/\n/gm,` +${o}${s} `)}get exampleBuilders(){return[new v({description:"Line being pasted into regular text does not get blockquotified with current line being `Part 1 of the sentence`",before:f` + was much less likely to succeed, but they tried it anyway. + Part 2 was much more interesting. + `,after:f` + was much less likely to succeed, but they tried it anyway. + Part 2 was much more interesting. + `,options:{lineContent:"Part 1 of the sentence"}}),new v({description:"Line being pasted into a blockquote gets blockquotified with current line being `> > `",before:f` + ${""} + This content is being added to a blockquote + Note that the second line is indented and the surrounding blank lines were trimmed + ${""} + `,after:f` + This content is being added to a blockquote + > > Note that the second line is indented and the surrounding blank lines were trimmed + `,options:{lineContent:"> > "}})]}get optionBuilders(){return[]}};Zt=A([k.register],Zt);var os=function(e){if(e==null)return Fm;if(typeof e=="string")return Im(e);if(typeof e=="object")return Array.isArray(e)?Bm(e):Mm(e);if(typeof e=="function")return jr(e);throw new Error("Expected function, string, or object as test")};function Bm(e){let t=[],n=-1;for(;++n":""))+")"})),c;function c(){let d=[],h,g,x;if((!t||r(a,l,u[u.length-1]||null))&&(d=Dm(n(a,u)),d[0]===Sl))return d;if(a.children&&d[0]!==$m)for(g=(i?a.children.length:-1)+o,x=u.concat(a);g>-1&&gr?0:r+t:t=t>r?r:t,n=n>0?n:0,i.length<1e4)s=Array.from(i),s.unshift(t,n),[].splice.apply(e,s);else for(n&&[].splice.apply(e,[t,n]);o0?(Be(e,e.length,0,t),e):t}var Al=/[!-/:-@[-`{-~\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/;var Ze=Dt(/[A-Za-z]/),ci=Dt(/\d/),Ll=Dt(/[\dA-Fa-f]/),ze=Dt(/[\dA-Za-z]/),Cl=Dt(/[!-/:-@[-`{-~]/),ss=Dt(/[#-'*+\--9=?A-Z^-~]/);function mi(e){return e!==null&&(e<32||e===127)}function re(e){return e!==null&&(e<0||e===32)}function $(e){return e!==null&&e<-2}function U(e){return e===-2||e===-1||e===32}var El=Dt(/\s/),_l=Dt(Al);function Dt(e){return t;function t(n){return n!==null&&e.test(String.fromCharCode(n))}}function as(e){if(e===null||re(e)||El(e))return 1;if(_l(e))return 2}function $n(e,t,n){let i=[],r=-1;for(;++r1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;let m=Object.assign({},e[i][1].end),c=Object.assign({},e[n][1].start);Bl(m,-l),Bl(c,l),s={type:l>1?"strongSequence":"emphasisSequence",start:m,end:Object.assign({},e[i][1].end)},a={type:l>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[n][1].start),end:c},o={type:l>1?"strongText":"emphasisText",start:Object.assign({},e[i][1].end),end:Object.assign({},e[n][1].start)},r={type:l>1?"strong":"emphasis",start:Object.assign({},s.start),end:Object.assign({},a.end)},e[i][1].end=Object.assign({},s.start),e[n][1].start=Object.assign({},a.end),u=[],e[i][1].end.offset-e[i][1].start.offset&&(u=Ye(u,[["enter",e[i][1],t],["exit",e[i][1],t]])),u=Ye(u,[["enter",r,t],["enter",s,t],["exit",s,t],["enter",o,t]]),u=Ye(u,$n(t.parser.constructs.insideSpan.null,e.slice(i+1,n),t)),u=Ye(u,[["exit",o,t],["enter",a,t],["exit",a,t],["exit",r,t]]),e[n][1].end.offset-e[n][1].start.offset?(p=2,u=Ye(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):p=0,Be(e,i-1,n-i+3,u),n=i+u.length-p-2;break}}for(n=-1;++n=4?s(u):n(u)}function s(u){return u===null?l(u):$(u)?e.attempt(Um,s,l)(u):(e.enter("codeFlowValue"),a(u))}function a(u){return u===null||$(u)?(e.exit("codeFlowValue"),s(u)):(e.consume(u),a)}function l(u){return e.exit("codeIndented"),t(u)}}function Zm(e,t,n){let i=this;return r;function r(s){return i.parser.lazy[i.now().line]?n(s):$(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),r):z(e,o,"linePrefix",4+1)(s)}function o(s){let a=i.events[i.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(s):$(s)?r(s):n(s)}}var us={name:"codeText",tokenize:Jm,resolve:Qm,previous:Xm};function Qm(e){let t=e.length-4,n=3,i,r;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(i=n;++i=4?t(s):e.interrupt(i.parser.constructs.flow,n,t)(s)}}function Qr(e,t,n,i,r,o,s,a,l){let u=l||Number.POSITIVE_INFINITY,p=0;return m;function m(b){return b===60?(e.enter(i),e.enter(r),e.enter(o),e.consume(b),e.exit(o),c):b===null||b===41||mi(b)?n(b):(e.enter(i),e.enter(s),e.enter(a),e.enter("chunkString",{contentType:"string"}),g(b))}function c(b){return b===62?(e.enter(o),e.consume(b),e.exit(o),e.exit(r),e.exit(i),t):(e.enter(a),e.enter("chunkString",{contentType:"string"}),d(b))}function d(b){return b===62?(e.exit("chunkString"),e.exit(a),c(b)):b===null||b===60||$(b)?n(b):(e.consume(b),b===92?h:d)}function h(b){return b===60||b===62||b===92?(e.consume(b),d):d(b)}function g(b){return b===40?++p>u?n(b):(e.consume(b),g):b===41?p--?(e.consume(b),g):(e.exit("chunkString"),e.exit(a),e.exit(s),e.exit(i),t(b)):b===null||re(b)?p?n(b):(e.exit("chunkString"),e.exit(a),e.exit(s),e.exit(i),t(b)):mi(b)?n(b):(e.consume(b),b===92?x:g)}function x(b){return b===40||b===41||b===92?(e.consume(b),g):g(b)}}function Xr(e,t,n,i,r,o){let s=this,a=0,l;return u;function u(d){return e.enter(i),e.enter(r),e.consume(d),e.exit(r),e.enter(o),p}function p(d){return d===null||d===91||d===93&&!l||d===94&&!a&&"_hiddenFootnoteSupport"in s.parser.constructs||a>999?n(d):d===93?(e.exit(o),e.enter(r),e.consume(d),e.exit(r),e.exit(i),t):$(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),p):(e.enter("chunkString",{contentType:"string"}),m(d))}function m(d){return d===null||d===91||d===93||$(d)||a++>999?(e.exit("chunkString"),p(d)):(e.consume(d),l=l||!U(d),d===92?c:m)}function c(d){return d===91||d===92||d===93?(e.consume(d),a++,m):m(d)}}function Jr(e,t,n,i,r,o){let s;return a;function a(c){return e.enter(i),e.enter(r),e.consume(c),e.exit(r),s=c===40?41:c,l}function l(c){return c===s?(e.enter(r),e.consume(c),e.exit(r),e.exit(i),t):(e.enter(o),u(c))}function u(c){return c===s?(e.exit(o),l(s)):c===null?n(c):$(c)?(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),z(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),p(c))}function p(c){return c===s||c===null||$(c)?(e.exit("chunkString"),u(c)):(e.consume(c),c===92?m:p)}function m(c){return c===s||c===92?(e.consume(c),p):p(c)}}function Qt(e,t){let n;return i;function i(r){return $(r)?(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),n=!0,i):U(r)?z(e,i,n?"linePrefix":"lineSuffix")(r):t(r)}}function De(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}var cs={name:"definition",tokenize:sd},od={tokenize:ad,partial:!0};function sd(e,t,n){let i=this,r;return o;function o(l){return e.enter("definition"),Xr.call(i,e,s,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(l)}function s(l){return r=De(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)),l===58?(e.enter("definitionMarker"),e.consume(l),e.exit("definitionMarker"),Qt(e,Qr(e,e.attempt(od,z(e,a,"whitespace"),z(e,a,"whitespace")),n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):n(l)}function a(l){return l===null||$(l)?(e.exit("definition"),i.parser.defined.includes(r)||i.parser.defined.push(r),t(l)):n(l)}}function ad(e,t,n){return i;function i(s){return re(s)?Qt(e,r)(s):n(s)}function r(s){return s===34||s===39||s===40?Jr(e,z(e,o,"whitespace"),n,"definitionTitle","definitionTitleMarker","definitionTitleString")(s):n(s)}function o(s){return s===null||$(s)?t(s):n(s)}}var ms={name:"hardBreakEscape",tokenize:ld};function ld(e,t,n){return i;function i(o){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(o),r}function r(o){return $(o)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),t(o)):n(o)}}var ds={name:"headingAtx",tokenize:pd,resolve:ud};function ud(e,t){let n=e.length-2,i=3,r,o;return e[i][1].type==="whitespace"&&(i+=2),n-2>i&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(i===n-1||n-4>i&&e[n-2][1].type==="whitespace")&&(n-=i+1===n?2:4),n>i&&(r={type:"atxHeadingText",start:e[i][1].start,end:e[n][1].end},o={type:"chunkText",start:e[i][1].start,end:e[n][1].end,contentType:"text"},Be(e,i,n-i+1,[["enter",r,t],["enter",o,t],["exit",o,t],["exit",r,t]])),e}function pd(e,t,n){let i=this,r=0;return o;function o(p){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),s(p)}function s(p){return p===35&&r++<6?(e.consume(p),s):p===null||re(p)?(e.exit("atxHeadingSequence"),i.interrupt?t(p):a(p)):n(p)}function a(p){return p===35?(e.enter("atxHeadingSequence"),l(p)):p===null||$(p)?(e.exit("atxHeading"),t(p)):U(p)?z(e,a,"whitespace")(p):(e.enter("atxHeadingText"),u(p))}function l(p){return p===35?(e.consume(p),l):(e.exit("atxHeadingSequence"),a(p))}function u(p){return p===null||p===35||re(p)?(e.exit("atxHeadingText"),a(p)):(e.consume(p),u)}}var Il=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],fs=["pre","script","style","textarea"];var hs={name:"htmlFlow",tokenize:dd,resolveTo:md,concrete:!0},cd={tokenize:fd,partial:!0};function md(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function dd(e,t,n){let i=this,r,o,s,a,l;return u;function u(y){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(y),p}function p(y){return y===33?(e.consume(y),m):y===47?(e.consume(y),h):y===63?(e.consume(y),r=3,i.interrupt?t:le):Ze(y)?(e.consume(y),s=String.fromCharCode(y),o=!0,g):n(y)}function m(y){return y===45?(e.consume(y),r=2,c):y===91?(e.consume(y),r=5,s="CDATA[",a=0,d):Ze(y)?(e.consume(y),r=4,i.interrupt?t:le):n(y)}function c(y){return y===45?(e.consume(y),i.interrupt?t:le):n(y)}function d(y){return y===s.charCodeAt(a++)?(e.consume(y),a===s.length?i.interrupt?t:Y:d):n(y)}function h(y){return Ze(y)?(e.consume(y),s=String.fromCharCode(y),g):n(y)}function g(y){return y===null||y===47||y===62||re(y)?y!==47&&o&&fs.includes(s.toLowerCase())?(r=1,i.interrupt?t(y):Y(y)):Il.includes(s.toLowerCase())?(r=6,y===47?(e.consume(y),x):i.interrupt?t(y):Y(y)):(r=7,i.interrupt&&!i.parser.lazy[i.now().line]?n(y):o?C(y):b(y)):y===45||ze(y)?(e.consume(y),s+=String.fromCharCode(y),g):n(y)}function x(y){return y===62?(e.consume(y),i.interrupt?t:Y):n(y)}function b(y){return U(y)?(e.consume(y),b):P(y)}function C(y){return y===47?(e.consume(y),P):y===58||y===95||Ze(y)?(e.consume(y),O):U(y)?(e.consume(y),C):P(y)}function O(y){return y===45||y===46||y===58||y===95||ze(y)?(e.consume(y),O):E(y)}function E(y){return y===61?(e.consume(y),I):U(y)?(e.consume(y),E):C(y)}function I(y){return y===null||y===60||y===61||y===62||y===96?n(y):y===34||y===39?(e.consume(y),l=y,T):U(y)?(e.consume(y),I):(l=null,B(y))}function T(y){return y===null||$(y)?n(y):y===l?(e.consume(y),M):(e.consume(y),T)}function B(y){return y===null||y===34||y===39||y===60||y===61||y===62||y===96||re(y)?E(y):(e.consume(y),B)}function M(y){return y===47||y===62||U(y)?C(y):n(y)}function P(y){return y===62?(e.consume(y),K):n(y)}function K(y){return U(y)?(e.consume(y),K):y===null||$(y)?Y(y):n(y)}function Y(y){return y===45&&r===2?(e.consume(y),X):y===60&&r===1?(e.consume(y),G):y===62&&r===4?(e.consume(y),ne):y===63&&r===3?(e.consume(y),le):y===93&&r===5?(e.consume(y),ae):$(y)&&(r===6||r===7)?e.check(cd,ne,j)(y):y===null||$(y)?j(y):(e.consume(y),Y)}function j(y){return e.exit("htmlFlowData"),F(y)}function F(y){return y===null?w(y):$(y)?e.attempt({tokenize:V,partial:!0},F,w)(y):(e.enter("htmlFlowData"),Y(y))}function V(y,ct,Ke){return Ne;function Ne(je){return y.enter("lineEnding"),y.consume(je),y.exit("lineEnding"),rt}function rt(je){return i.parser.lazy[i.now().line]?Ke(je):ct(je)}}function X(y){return y===45?(e.consume(y),le):Y(y)}function G(y){return y===47?(e.consume(y),s="",se):Y(y)}function se(y){return y===62&&fs.includes(s.toLowerCase())?(e.consume(y),ne):Ze(y)&&s.length<8?(e.consume(y),s+=String.fromCharCode(y),se):Y(y)}function ae(y){return y===93?(e.consume(y),le):Y(y)}function le(y){return y===62?(e.consume(y),ne):y===45&&r===2?(e.consume(y),le):Y(y)}function ne(y){return y===null||$(y)?(e.exit("htmlFlowData"),w(y)):(e.consume(y),ne)}function w(y){return e.exit("htmlFlow"),t(y)}}function fd(e,t,n){return i;function i(r){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),e.attempt(yt,t,n)}}var gs={name:"htmlText",tokenize:hd};function hd(e,t,n){let i=this,r,o,s,a;return l;function l(w){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(w),u}function u(w){return w===33?(e.consume(w),p):w===47?(e.consume(w),B):w===63?(e.consume(w),I):Ze(w)?(e.consume(w),K):n(w)}function p(w){return w===45?(e.consume(w),m):w===91?(e.consume(w),o="CDATA[",s=0,x):Ze(w)?(e.consume(w),E):n(w)}function m(w){return w===45?(e.consume(w),c):n(w)}function c(w){return w===null||w===62?n(w):w===45?(e.consume(w),d):h(w)}function d(w){return w===null||w===62?n(w):h(w)}function h(w){return w===null?n(w):w===45?(e.consume(w),g):$(w)?(a=h,ae(w)):(e.consume(w),h)}function g(w){return w===45?(e.consume(w),ne):h(w)}function x(w){return w===o.charCodeAt(s++)?(e.consume(w),s===o.length?b:x):n(w)}function b(w){return w===null?n(w):w===93?(e.consume(w),C):$(w)?(a=b,ae(w)):(e.consume(w),b)}function C(w){return w===93?(e.consume(w),O):b(w)}function O(w){return w===62?ne(w):w===93?(e.consume(w),O):b(w)}function E(w){return w===null||w===62?ne(w):$(w)?(a=E,ae(w)):(e.consume(w),E)}function I(w){return w===null?n(w):w===63?(e.consume(w),T):$(w)?(a=I,ae(w)):(e.consume(w),I)}function T(w){return w===62?ne(w):I(w)}function B(w){return Ze(w)?(e.consume(w),M):n(w)}function M(w){return w===45||ze(w)?(e.consume(w),M):P(w)}function P(w){return $(w)?(a=P,ae(w)):U(w)?(e.consume(w),P):ne(w)}function K(w){return w===45||ze(w)?(e.consume(w),K):w===47||w===62||re(w)?Y(w):n(w)}function Y(w){return w===47?(e.consume(w),ne):w===58||w===95||Ze(w)?(e.consume(w),j):$(w)?(a=Y,ae(w)):U(w)?(e.consume(w),Y):ne(w)}function j(w){return w===45||w===46||w===58||w===95||ze(w)?(e.consume(w),j):F(w)}function F(w){return w===61?(e.consume(w),V):$(w)?(a=F,ae(w)):U(w)?(e.consume(w),F):Y(w)}function V(w){return w===null||w===60||w===61||w===62||w===96?n(w):w===34||w===39?(e.consume(w),r=w,X):$(w)?(a=V,ae(w)):U(w)?(e.consume(w),V):(e.consume(w),r=void 0,se)}function X(w){return w===r?(e.consume(w),G):w===null?n(w):$(w)?(a=X,ae(w)):(e.consume(w),X)}function G(w){return w===62||w===47||re(w)?Y(w):n(w)}function se(w){return w===null||w===34||w===39||w===60||w===61||w===96?n(w):w===62||re(w)?Y(w):(e.consume(w),se)}function ae(w){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(w),e.exit("lineEnding"),z(e,le,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function le(w){return e.enter("htmlTextData"),a(w)}function ne(w){return w===62?(e.consume(w),e.exit("htmlTextData"),e.exit("htmlText"),t):n(w)}}var Xt={name:"labelEnd",tokenize:vd,resolveTo:xd,resolveAll:wd},gd={tokenize:kd},yd={tokenize:Sd},bd={tokenize:Td};function wd(e){let t=-1,n;for(;++t999?n(c):c===93?s?(e.exit("chunkString"),d=e.exit("gfmFootnoteCallString"),r.includes(De(i.sliceSerialize(d)))?m(c):n(c)):n(c):(e.consume(c),re(c)||(s=!0),c===92?p:u)}function p(c){return c===91||c===92||c===93?(e.consume(c),o++,u):u(c)}function m(c){return e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t}}function zd(e,t,n){let i=this,r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]),o,s=0,a;return l;function l(g){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(g){return g===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),p):n(g)}function p(g){let x;return g===null||g===91||s>999?n(g):g===93?a?(x=e.exit("gfmFootnoteDefinitionLabelString"),o=De(i.sliceSerialize(x)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(g),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),d):n(g):$(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),s++,p):(e.enter("chunkString").contentType="string",m(g))}function m(g){return g===null||$(g)||g===91||g===93||s>999?(e.exit("chunkString"),p(g)):(re(g)||(a=!0),s++,e.consume(g),g===92?c:m)}function c(g){return g===91||g===92||g===93?(e.consume(g),s++,m):m(g)}function d(g){return g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),z(e,h,"gfmFootnoteDefinitionWhitespace")):n(g)}function h(g){return r.includes(o)||r.push(o),t(g)}}function qd(e,t,n){return e.check(yt,t,e.attempt(Pd,t,n))}function Kd(e){e.exit("gfmFootnoteDefinition")}function jd(e,t,n){let i=this;return z(e,r,"gfmFootnoteDefinitionIndent",4+1);function r(o){let s=i.events[i.events.length-1];return s&&s[1].type==="gfmFootnoteDefinitionIndent"&&s[2].sliceSerialize(s[1],!0).length===4?t(o):n(o)}}var Vd={tokenize:Wd},xs={text:{[91]:Vd}};function Wd(e,t,n){let i=this;return r;function r(a){return i.previous!==null||!i._gfmTasklistFirstContentOfListItem?n(a):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(a),e.exit("taskListCheckMarker"),o)}function o(a){return re(a)?(e.enter("taskListCheckValueUnchecked"),e.consume(a),e.exit("taskListCheckValueUnchecked"),s):a===88||a===120?(e.enter("taskListCheckValueChecked"),e.consume(a),e.exit("taskListCheckValueChecked"),s):n(a)}function s(a){return a===93?(e.enter("taskListCheckMarker"),e.consume(a),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),e.check({tokenize:Ud},t,n)):n(a)}}function Ud(e,t,n){let i=this;return z(e,r,"whitespace");function r(o){let s=i.events[i.events.length-1];return(s&&s[1].type==="whitespace"||$(o))&&o!==null?t(o):n(o)}}var Fl={}.hasOwnProperty;function to(e){let t={},n=-1;for(;++ns))return;let B=t.events.length,M=B,P,K;for(;M--;)if(t.events[M][0]==="exit"&&t.events[M][1].type==="chunkFlow"){if(P){K=t.events[M][1].end;break}P=!0}for(b(i),T=B;TO;){let I=n[E];t.containerState=I[1],I[0].exit.call(t,e)}n.length=O}function C(){r.write([null]),o=void 0,r=void 0,t.containerState._closeFlow=void 0}}function of(e,t,n){return z(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}var Kl={tokenize:sf};function sf(e){let t=this,n=e.attempt(yt,i,e.attempt(this.parser.constructs.flowInitial,r,z(e,e.attempt(this.parser.constructs.flow,r,e.attempt(ps,r)),"linePrefix")));return n;function i(o){if(o===null){e.consume(o);return}return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function r(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,n}}var jl={resolveAll:Gl()},Vl=Ul("string"),Wl=Ul("text");function Ul(e){return{tokenize:t,resolveAll:Gl(e==="text"?af:void 0)};function t(n){let i=this,r=this.parser.constructs[e],o=n.attempt(r,s,a);return s;function s(p){return u(p)?o(p):a(p)}function a(p){if(p===null){n.consume(p);return}return n.enter("data"),n.consume(p),l}function l(p){return u(p)?(n.exit("data"),o(p)):(n.consume(p),l)}function u(p){if(p===null)return!0;let m=r[p],c=-1;if(m)for(;++c-1&&(s[0]=s[0].slice(i)),o>0&&s.push(e[r].slice(0,o))),s}function uf(e,t){let n=-1,i=[],r;for(;++nyf,contentInitial:()=>cf,disable:()=>bf,document:()=>pf,flow:()=>df,flowInitial:()=>mf,insideSpan:()=>gf,string:()=>ff,text:()=>hf});var pf={[42]:Pe,[43]:Pe,[45]:Pe,[48]:Pe,[49]:Pe,[50]:Pe,[51]:Pe,[52]:Pe,[53]:Pe,[54]:Pe,[55]:Pe,[56]:Pe,[57]:Pe,[62]:Vr},cf={[91]:cs},mf={[-2]:fi,[-1]:fi,[32]:fi},df={[35]:ds,[42]:Jt,[45]:[eo,Jt],[60]:hs,[61]:eo,[95]:Jt,[96]:Gr,[126]:Gr},ff={[38]:Ur,[92]:Wr},hf={[-5]:hi,[-4]:hi,[-3]:hi,[33]:ys,[38]:Ur,[42]:di,[60]:[ls,gs],[91]:bs,[92]:[ms,Wr],[93]:Xt,[95]:di,[96]:us},gf={null:[di,jl]},yf={null:[42,95]},bf={null:[]};function Ql(e={}){let t=to([ks].concat(e.extensions||[])),n={defined:[],lazy:{},constructs:t,content:i(Yl),document:i(ql),flow:i(Kl),string:i(Vl),text:i(Wl)};return n;function i(r){return o;function o(s){return Zl(n,r,s)}}}var Xl=/[\0\t\n\r]/g;function Jl(){let e=1,t="",n=!0,i;return r;function r(o,s,a){let l=[],u,p,m,c,d;for(o=t+o.toString(s),m=0,t="",n&&(o.charCodeAt(0)===65279&&m++,n=void 0);m13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"\uFFFD":String.fromCharCode(n)}var wf=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function tu(e){return e.replace(wf,xf)}function xf(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){let r=n.charCodeAt(1),o=r===120||r===88;return no(n.slice(o?2:1),o?16:10)}return Dn(n)||e}function gi(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?nu(e.position):"start"in e||"end"in e?nu(e):"line"in e||"column"in e?Ss(e):""}function Ss(e){return iu(e&&e.line)+":"+iu(e&&e.column)}function nu(e){return Ss(e&&e.start)+"-"+Ss(e&&e.end)}function iu(e){return e&&typeof e=="number"?e:1}var Ts={}.hasOwnProperty,Os=function(e,t,n){return typeof t!="string"&&(n=t,t=void 0),vf(n)(eu(Ql(n).document().write(Jl()(e,t,!0))))};function vf(e={}){let t=ou({transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:l(zt),autolinkProtocol:j,autolinkEmail:j,atxHeading:l(Wn),blockQuote:l(Et),characterEscape:j,characterReference:j,codeFenced:l(Yt),codeFencedFenceInfo:u,codeFencedFenceMeta:u,codeIndented:l(Yt,u),codeText:l(Mo,u),codeTextData:j,data:j,codeFlowValue:j,definition:l(Io),definitionDestinationString:u,definitionLabelString:u,definitionTitleString:u,emphasis:l(hr),hardBreakEscape:l(gr),hardBreakTrailing:l(gr),htmlFlow:l(yr,u),htmlFlowData:j,htmlText:l(yr,u),htmlTextData:j,image:l(wt),label:u,link:l(zt),listItem:l(br),listItemValue:g,listOrdered:l(Un,h),listUnordered:l(Un),paragraph:l(Gn),reference:rt,referenceString:u,resourceDestinationString:u,resourceTitleString:u,setextHeading:l(Wn),strong:l(wr),thematicBreak:l(vr)},exit:{atxHeading:m(),atxHeadingSequence:M,autolink:m(),autolinkEmail:mt,autolinkProtocol:ot,blockQuote:m(),characterEscapeValue:F,characterReferenceMarkerHexadecimal:J,characterReferenceMarkerNumeric:J,characterReferenceValue:bt,codeFenced:m(O),codeFencedFence:C,codeFencedFenceInfo:x,codeFencedFenceMeta:b,codeFlowValue:F,codeIndented:m(E),codeText:m(ae),codeTextData:F,data:F,definition:m(),definitionDestinationString:B,definitionLabelString:I,definitionTitleString:T,emphasis:m(),hardBreakEscape:m(X),hardBreakTrailing:m(X),htmlFlow:m(G),htmlFlowData:F,htmlText:m(se),htmlTextData:F,image:m(ne),label:y,labelText:w,lineEnding:V,link:m(le),listItem:m(),listOrdered:m(),listUnordered:m(),paragraph:m(),referenceString:je,resourceDestinationString:ct,resourceTitleString:Ke,resource:Ne,setextHeading:m(Y),setextHeadingLineSequence:K,setextHeadingText:P,strong:m(),thematicBreak:m()}},e.mdastExtensions||[]),n={};return i;function i(L){let R={type:"root",children:[]},q=[R],Z=[],Xe=[],Zn={stack:q,tokenStack:Z,config:t,enter:p,exit:c,buffer:u,resume:d,setData:o,getData:s},ie=-1;for(;++ie0){let Ee=Z[Z.length-1];(Ee[1]||ru).call(Zn,void 0,Ee[0])}for(R.position={start:a(L.length>0?L[0][1].start:{line:1,column:1,offset:0}),end:a(L.length>0?L[L.length-2][1].end:{line:1,column:1,offset:0})},ie=-1;++ie{i.push(r.position)}),i.sort((r,o)=>o.start.offset-r.start.offset),i}function uu(e){let t=be("footnoteDefinition",e),n=[],i=new Set,r=new Map,o=function(s,a){let l=s.match(/\[\^.*?\]/)[0],u;do u=e.lastIndexOf(l,a),a=u;while(i.has(u)&&u!==-1);if(u===-1)throw new Error(`Footnote '${s}' has no corresponding footnote reference before the footnote contents and cannot be processed. Please make sure that all footnotes have a corresponding reference before the content of the footnote.`);return i.add(u),u};for(let s of t){let a=e.substring(s.start.offset,s.end.offset);n.push(a),s.end.offsetr.get(s)-r.get(a)),n.length>0&&(e=e.trimEnd()+` +`);for(let s of n)e+=` +`+s;return e}function io(e,t,n){let i=be(n,e);if(i.length===0)return e;let r="";if(t==="underscore")r="_";else if(t==="asterisk")r="*";else{let o=i[i.length-1];r=e.substring(o.start.offset,o.start.offset+1)}n==="strong"&&(r+=r);for(let o of i){let s=r+e.substring(o.start.offset+r.length,o.end.offset-r.length)+r;e=ve(e,o.start.offset,o.end.offset,s)}return e}function pu(e){let t=be("paragraph",e);if(t.length===0)return e;for(let n of t){let i=e.substring(n.start.offset,n.end.offset).split(` +`),r=i.length-1;if(!(r<1)){for(let o=0;o")||s.endsWith("
")||(i[o]=s+" ")}e=ve(e,n.start.offset,n.end.offset,i.join(` +`))}}return e}function cu(e){let t=e.endsWith(` +`),n=be("paragraph",e);if(n.length===0)return e;for(let i of n){let r=i.start.offset;for(r>0&&r--;r>=0&&e.charAt(r)!=` +`;)r--;r++;let o=e.substring(r,i.end.offset).split(` +`),s=o[0].trimStart();if(s.startsWith("> ")||s.startsWith("> ")||s.startsWith("- ")||s.startsWith("- ")||s.match(/^[0-9]+\.( |\t)+/))continue;let a=o.length,l=[],u=!1;for(let h=0;h")||g.endsWith("
")||g.endsWith(" ")}for(;r>0&&e.charAt(r-1)==` +`;)r--;let p=e.length,m=i.end.offset;for(m?)*(\*|-|\+|- \[( | x)\]|\d+\.) /g,s=r.match(o);if(s){let a=r.split(new RegExp(o.source.replaceAll("(","(?:"))),l="",u=0;for(let p of a)u>0&&(l+=s[u-1]),l+=t(p),u++;r=l}else r=t(r);e=ve(e,i.start.offset+2,i.end.offset,r)}return e}function gu(e){let t=be("code",e);for(let n of t)!e.substring(n.start.offset,n.end.offset).startsWith("```")||(e=Vt(e,n.start.offset,n.end.offset));return e}function yu(e,t){let n=be("math",e);for(let i of n)e=Vt(e,i.start.offset,i.end.offset);n=be("inlineMath",e);for(let i of n)!e.substring(i.start.offset,i.end.offset).startsWith("$".repeat(t))||(e=Vt(e,i.start.offset,i.end.offset));return e}function bu(e){let t=be("blockquote",e);for(let n of t)e=Vt(e,n.start.offset,n.end.offset,!0);return e}function wu(e,t,n){let i=be("list",e);if(!i)return e;for(let r of i){let o=r.start.offset;for(;o>0&&e.charAt(o-1)!==` +`;)o--;let s=e.substring(o,r.end.offset),a=function(p){let m=p.lastIndexOf("> ");return m!==-1&&(p=p.substring(m+2)),p=p.replaceAll(" "," "),Math.floor((p.split(" ").length-1)/2)+1},l=new Map,u=-1;s=s.replace(/^(( |\t|> )*)(\d+(\.|\)))([^\n]*)$/gm,(p,m="",c,d,h,g)=>{let x=1,b=a(m);if(l.has(b)?t==="ascending"&&(x=l.get(b)+1,l.set(b,x)):l.set(b,1),u>b){let C=u;for(;C>b;)l.delete(C--)}return u=b,`${m}${x}${n}${g}`}),e=ve(e,o,r.end.offset,s)}return e}function xu(e,t){let n=be("listItem",e);if(!n)return e;let i=/^((\d+[.)])|(- \[[ x]\]))/m,r=t;if(t=="consistent"){let o=n.length-1;for(;o>=0;){let s=e.substring(n[o].start.offset,n[o].end.offset);if(o--,!s.match(i)){r=s.charAt(0);break}}if(o==-1)return e}for(let o of n){let s=e.substring(o.start.offset,o.end.offset);s.match(i)||(s=r+s.substring(1),e=ve(e,o.start.offset,o.end.offset,s))}return e}function vu(e,t){let n=be("math",e),i=new RegExp("^(\\${"+t+",})(\\n*)"),r=new RegExp("(\\n*)(\\${"+t+",})([^\\$]*)$");for(let o of n){let s=e.substring(o.start.offset,o.end.offset);s=s.replace(i,`$1 +`),s=s.replace(r,` +$2$3`),e=ve(e,o.start.offset,o.end.offset,s)}n=be("inlineMath",e);for(let o of n){if(!e.substring(o.start.offset,o.end.offset).startsWith("$".repeat(t)))continue;let s=e.substring(o.start.offset,o.end.offset);s=s.replace(i,`$1 +`),s=s.replace(r,` +$2$3`),e=ve(e,o.start.offset,o.end.offset,s)}return e}var S={code:{replaceAction:"code",placeholder:"{CODE_BLOCK_PLACEHOLDER}"},inlineCode:{replaceAction:"inlineCode",placeholder:"{INLINE_CODE_BLOCK_PLACEHOLDER}"},image:{replaceAction:"image",placeholder:"{IMAGE_PLACEHOLDER}"},thematicBreak:{replaceAction:"thematicBreak",placeholder:"{HORIZONTAL_RULE_PLACEHOLDER}"},italics:{replaceAction:"emphasis",placeholder:"{ITALICS_PLACEHOLDER}"},bold:{replaceAction:"strong",placeholder:"{STRONG_PLACEHOLDER}"},list:{replaceAction:"list",placeholder:"{LIST_PLACEHOLDER}"},blockquote:{replaceAction:"blockquote",placeholder:"{BLOCKQUOTE_PLACEHOLDER}"},math:{replaceAction:"math",placeholder:"{MATH_PLACEHOLDER}"},inlineMath:{replaceAction:"inlineMath",placeholder:"{INLINE_MATH_PLACEHOLDER}"},html:{replaceAction:"html",placeholder:"{HTML_PLACEHOLDER}"},yaml:{replaceAction:ke,placeholder:$e(`--- +---`)},wikiLink:{replaceAction:Go,placeholder:"{WIKI_LINK_PLACEHOLDER}"},tag:{replaceAction:En,placeholder:"#tag-placeholder"},obsidianMultiLineComments:{replaceAction:ml,placeholder:"{OBSIDIAN_COMMENT_PLACEHOLDER}"},table:{replaceAction:Qo,placeholder:"{TABLE_PLACEHOLDER}"},link:{replaceAction:Lf,placeholder:"{REGULAR_LINK_PLACEHOLDER}"}};function D(e,t,n){let i=[];for(let r of e){let o;if(typeof r.replaceAction=="string")o=Of(t,r.placeholder,r.replaceAction);else if(r.replaceAction instanceof RegExp)o=Af(t,r.placeholder,r.replaceAction);else if(typeof r.replaceAction=="function"){let s=r.replaceAction;o=s(t,r.placeholder)}t=o.newText,i.push({replacedValues:o.replacedValues,placeholder:r.placeholder})}return t=n(t),i=i.reverse(),i!=null&&i.length>0&&i.forEach(r=>{r.replacedValues.forEach(o=>{t=t.replace(new RegExp(r.placeholder,"i"),$e(o))})}),t}function Of(e,t,n){let i=be(n,e),r=[];for(let o of i){let s=e.substring(o.start.offset,o.end.offset);r.push(s),e=ve(e,o.start.offset,o.end.offset,t)}return r.reverse(),{newText:e,replacedValues:r}}function Af(e,t,n){let i=e.match(n),r=[];if(n.flags.includes("g")){if(e=e.replaceAll(n,t),i)for(let o of i)r.push(o)}else e=e.replace(n,t),i&&r.push(i[0]);return{newText:e,replacedValues:r}}function Lf(e,t){let n=be("link",e),i=[];for(let r of n){if(r==null)continue;let o=e.substring(r.start.offset,r.end.offset);!o.match(Cr)||(i.push(o),e=ve(e,r.start.offset,r.end.offset,t))}return i.reverse(),{newText:e,replacedValues:i}}var en=class{constructor(){this.style="Title Case";this.ignoreWords=["macOS","iOS","iPhone","iPad","JavaScript","TypeScript","AppleScript"];this.lowercaseWords=["via","a","an","the","and","or","but","for","nor","so","yet","at","by","in","of","on","to","up","as","is","if","it","for","to","with","without","into","onto","per"];this.ignoreCasedWords=!0}},yi=class extends k{get OptionsClass(){return en}get name(){return"Capitalize Headings"}get description(){return"Headings should be formatted with capitalization"}get type(){return"Heading"}apply(t,n){return D([S.code,S.yaml,S.link,S.wikiLink,S.tag],t,i=>{let r=i.split(` +`);for(let o=0;oa.toUpperCase());break}return r.join(` +`)})}get exampleBuilders(){return[new v({description:"With `Title Case=true`, `Ignore Cased Words=false`",before:f` # this is a heading 1 ## THIS IS A HEADING 2 ### a heading 3 - `,after:y` + `,after:f` # This is a Heading 1 ## This is a Heading 2 ### A Heading 3 - `,options:{style:"Title Case",ignoreCasedWords:!1}}),new T({description:"With `Title Case=true`, `Ignore Cased Words=true`",before:y` + `,options:{style:"Title Case",ignoreCasedWords:!1}}),new v({description:"With `Title Case=true`, `Ignore Cased Words=true`",before:f` # this is a heading 1 ## THIS IS A HEADING 2 ### a hEaDiNg 3 - `,after:y` + `,after:f` # This is a Heading 1 ## THIS IS A HEADING 2 ### A hEaDiNg 3 - `,options:{style:"Title Case",ignoreCasedWords:!0}}),new T({description:"With `First letter=true`",before:y` + `,options:{style:"Title Case",ignoreCasedWords:!0}}),new v({description:"With `First letter=true`",before:f` # this is a heading 1 ## this is a heading 2 - `,after:y` + `,after:f` # This is a heading 1 ## This is a heading 2 - `,options:{style:"First letter"}}),new T({description:"With `ALL CAPS=true`",before:y` + `,options:{style:"First letter"}}),new v({description:"With `ALL CAPS=true`",before:f` # this is a heading 1 ## this is a heading 2 - `,after:y` + `,after:f` # THIS IS A HEADING 1 ## THIS IS A HEADING 2 - `,options:{style:"ALL CAPS"}})]}get optionBuilders(){return[new de({OptionsClass:zn,name:"Style",description:"The style of capitalization to use",optionsKey:"style",records:[{value:"Title Case",description:"Capitalize Using Title Case Rules"},{value:"ALL CAPS",description:"CAPITALIZE THE WHOLE TITLE"},{value:"First letter",description:"Only capitalize the first letter"}]}),new se({OptionsClass:zn,name:"Ignore Cased Words",description:"Only apply title case style to words that are all lowercase",optionsKey:"ignoreCasedWords"}),new Re({OptionsClass:zn,name:"Ignore Words",description:"A comma separated list of words to ignore when capitalizing",optionsKey:"ignoreWords",splitter:as,separator:", "}),new Re({OptionsClass:zn,name:"Lowercase Words",description:"A comma separated list of words to keep lowercase",optionsKey:"lowercaseWords",splitter:as,separator:", "})]}};ii=B([A.register],ii);var xa=class{constructor(){this.innerNewLines=!1}},oi=class extends A{get OptionsClass(){return xa}get name(){return"Compact YAML"}get description(){return"Removes leading and trailing blank lines in the YAML front matter."}get type(){return"Spacing"}apply(t,n){return qe(t,r=>(r=r.replace(/^---\n+/,`--- -`),r=r.replace(/\n+---/,` ----`),n.innerNewLines&&(r=r.replaceAll(/\n{2,}/g,` -`)),r))}get exampleBuilders(){return[new T({description:"Remove blank lines at the start and end of the YAML",before:y` + `,options:{style:"ALL CAPS"}})]}get optionBuilders(){return[new ye({OptionsClass:en,name:"Style",description:"The style of capitalization to use",optionsKey:"style",records:[{value:"Title Case",description:"Capitalize Using Title Case Rules"},{value:"ALL CAPS",description:"CAPITALIZE THE WHOLE TITLE"},{value:"First letter",description:"Only capitalize the first letter"}]}),new te({OptionsClass:en,name:"Ignore Cased Words",description:"Only apply title case style to words that are all lowercase",optionsKey:"ignoreCasedWords"}),new Ae({OptionsClass:en,name:"Ignore Words",description:"A comma separated list of words to ignore when capitalizing",optionsKey:"ignoreWords",splitter:Zo,separator:", "}),new Ae({OptionsClass:en,name:"Lowercase Words",description:"A comma separated list of words to keep lowercase",optionsKey:"lowercaseWords",splitter:Zo,separator:", "})]}};yi=A([k.register],yi);var ro=class{constructor(){this.innerNewLines=!1}},bi=class extends k{get OptionsClass(){return ro}get name(){return"Compact YAML"}get description(){return"Removes leading and trailing blank lines in the YAML front matter."}get type(){return"Spacing"}apply(t,n){return Se(t,i=>(i=i.replace(/^---\n+/,`--- +`),i=i.replace(/\n+---/,` +---`),n.innerNewLines&&(i=i.replaceAll(/\n{2,}/g,` +`)),i))}get exampleBuilders(){return[new v({description:"Remove blank lines at the start and end of the YAML",before:f` --- ${""} date: today @@ -180,13 +150,13 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe title: unchanged without inner new lines turned on ${""} --- - `,after:y` + `,after:f` --- date: today ${""} title: unchanged without inner new lines turned on --- - `}),new T({description:"Remove blank lines anywhere in YAML with inner new lines set to true",before:y` + `}),new v({description:"Remove blank lines anywhere in YAML with inner new lines set to true",before:f` --- ${""} date: today @@ -200,7 +170,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe ${""} ${""} Body content here. - `,after:y` + `,after:f` --- date: today title: remove inner new lines @@ -210,42 +180,42 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe ${""} ${""} Body content here. - `,options:{innerNewLines:!0}})]}get optionBuilders(){return[new se({OptionsClass:xa,name:"Inner New Lines",description:"Remove new lines that are not at the start or the end of the YAML",optionsKey:"innerNewLines"})]}};oi=B([A.register],oi);var Ml=class{},ai=class extends A{get OptionsClass(){return Ml}get name(){return"Consecutive blank lines"}get description(){return"There should be at most one consecutive blank line."}get type(){return"Spacing"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag],t,r=>r.replace(/\n{2,}/g,` + `,options:{innerNewLines:!0}})]}get optionBuilders(){return[new te({OptionsClass:ro,name:"Inner New Lines",description:"Remove new lines that are not at the start or the end of the YAML",optionsKey:"innerNewLines"})]}};bi=A([k.register],bi);var As=class{},wi=class extends k{get OptionsClass(){return As}get name(){return"Consecutive blank lines"}get description(){return"There should be at most one consecutive blank line."}get type(){return"Spacing"}apply(t,n){return D([S.code,S.yaml,S.link,S.wikiLink,S.tag],t,i=>i.replace(/\n{2,}/g,` -`))}get exampleBuilders(){return[new T({description:"",before:y` +`))}get exampleBuilders(){return[new v({description:"",before:f` Some text ${""} ${""} Some more text - `,after:y` + `,after:f` Some text ${""} Some more text - `})]}get optionBuilders(){return[]}};ai=B([A.register],ai);var Bl=class{},si=class extends A{get OptionsClass(){return Bl}get name(){return"Convert Bullet List Markers"}get description(){return"Converts common bullet list marker symbols to markdown list markers."}get type(){return"Content"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag],t,r=>r.replace(/^([^\S\n]*)([•§])([^\S\n]*)/gm,"$1-$3"))}get exampleBuilders(){return[new T({description:"Converts \u2022",before:y` + `})]}get optionBuilders(){return[]}};wi=A([k.register],wi);var Ls=class{},xi=class extends k{get OptionsClass(){return Ls}get name(){return"Convert Bullet List Markers"}get description(){return"Converts common bullet list marker symbols to markdown list markers."}get type(){return"Content"}apply(t,n){return D([S.code,S.yaml,S.link,S.wikiLink,S.tag],t,i=>i.replace(/^([^\S\n]*)([•§])([^\S\n]*)/gm,"$1-$3"))}get exampleBuilders(){return[new v({description:"Converts \u2022",before:f` • item 1 • item 2 - `,after:y` + `,after:f` - item 1 - item 2 - `}),new T({description:"Converts \xA7",before:y` + `}),new v({description:"Converts \xA7",before:f` • item 1 § item 2 § item 3 - `,after:y` + `,after:f` - item 1 - item 2 - item 3 - `})]}get optionBuilders(){return[]}};si=B([A.register],si);var ka=class{constructor(){this.tabsize=4}},li=class extends A{get OptionsClass(){return ka}get name(){return"Convert Spaces to Tabs"}get description(){return"Converts leading spaces to tabs."}get type(){return"Spacing"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag],t,r=>{let i=String(n.tabsize),o=new RegExp("^( *) {"+String(i)+"}","gm");for(;r.match(o)!=null;)r=r.replace(o,"$1 ");return r})}get exampleBuilders(){return[new T({description:"Converting spaces to tabs with `tabsize = 3`",before:y` + `})]}get optionBuilders(){return[]}};xi=A([k.register],xi);var oo=class{constructor(){this.tabsize=4}},vi=class extends k{get OptionsClass(){return oo}get name(){return"Convert Spaces to Tabs"}get description(){return"Converts leading spaces to tabs."}get type(){return"Spacing"}apply(t,n){return D([S.code,S.yaml,S.link,S.wikiLink,S.tag],t,i=>{let r=String(n.tabsize),o=new RegExp("^( *) {"+String(r)+"}","gm");for(;i.match(o)!=null;)i=i.replace(o,"$1 ");return i})}get exampleBuilders(){return[new v({description:"Converting spaces to tabs with `tabsize = 3`",before:f` - text with no indention - text indented with 3 spaces - text with no indention - text indented with 6 spaces - `,after:y` + `,after:f` - text with no indention \t- text indented with 3 spaces - text with no indention \t\t- text indented with 6 spaces - `,options:{tabsize:3}})]}get optionBuilders(){return[new ba({OptionsClass:ka,name:"Tabsize",description:"Number of spaces that will be converted to a tab",optionsKey:"tabsize"})]}};li=B([A.register],li);var va=class{constructor(){this.style="consistent"}},ui=class extends A{get OptionsClass(){return va}get name(){return"Emphasis Style"}get description(){return"Makes sure the emphasis style is consistent."}get type(){return"Content"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag,v.math,v.inlineMath],t,r=>la(r,n.style,"emphasis"))}get exampleBuilders(){return[new T({description:"Emphasis indicators should use underscores when style is set to 'underscore'",before:y` + `,options:{tabsize:3}})]}get optionBuilders(){return[new zr({OptionsClass:oo,name:"Tabsize",description:"Number of spaces that will be converted to a tab",optionsKey:"tabsize"})]}};vi=A([k.register],vi);var so=class{constructor(){this.style="consistent"}},ki=class extends k{get OptionsClass(){return so}get name(){return"Emphasis Style"}get description(){return"Makes sure the emphasis style is consistent."}get type(){return"Content"}apply(t,n){return D([S.code,S.yaml,S.link,S.wikiLink,S.tag,S.math,S.inlineMath],t,i=>io(i,n.style,"emphasis"))}get exampleBuilders(){return[new v({description:"Emphasis indicators should use underscores when style is set to 'underscore'",before:f` # Emphasis Cases ${""} *Test emphasis* @@ -260,7 +230,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe ${""} * List Item1 with *emphasized text* * List Item2 - `,after:y` + `,after:f` # Emphasis Cases ${""} _Test emphasis_ @@ -275,7 +245,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe ${""} * List Item1 with _emphasized text_ * List Item2 - `,options:{style:"underscore"}}),new T({description:"Emphasis indicators should use asterisks when style is set to 'asterisk'",before:y` + `,options:{style:"underscore"}}),new v({description:"Emphasis indicators should use asterisks when style is set to 'asterisk'",before:f` # Emphasis Cases ${""} _Test emphasis_ @@ -287,7 +257,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe This is ___nested emphasis_ and ending bold__ ${""} __Test bold__ - `,after:y` + `,after:f` # Emphasis Cases ${""} *Test emphasis* @@ -299,7 +269,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe This is __*nested emphasis* and ending bold__ ${""} __Test bold__ - `,options:{style:"asterisk"}}),new T({description:"Emphasis indicators should use consistent style based on first emphasis indicator in a file when style is set to 'consistent'",before:y` + `,options:{style:"asterisk"}}),new v({description:"Emphasis indicators should use consistent style based on first emphasis indicator in a file when style is set to 'consistent'",before:f` # Emphasis First Emphasis Is an Asterisk ${""} *First emphasis* @@ -310,7 +280,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe This is **_nested emphasis_ and ending bold** ${""} __Test bold__ - `,after:y` + `,after:f` # Emphasis First Emphasis Is an Asterisk ${""} *First emphasis* @@ -321,7 +291,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe This is ***nested emphasis* and ending bold** ${""} __Test bold__ - `,options:{style:"consistent"}}),new T({description:"Emphasis indicators should use consistent style based on first emphasis indicator in a file when style is set to 'consistent'",before:y` + `,options:{style:"consistent"}}),new v({description:"Emphasis indicators should use consistent style based on first emphasis indicator in a file when style is set to 'consistent'",before:f` # Emphasis First Emphasis Is an Underscore ${""} **_First emphasis_** @@ -332,7 +302,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe This is __*nested emphasis* and ending bold__ ${""} __Test bold__ - `,after:y` + `,after:f` # Emphasis First Emphasis Is an Underscore ${""} **_First emphasis_** @@ -343,25 +313,25 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe This is ___nested emphasis_ and ending bold__ ${""} __Test bold__ - `,options:{style:"consistent"}})]}get optionBuilders(){return[new de({OptionsClass:va,name:"Style",description:"The style used to denote emphasized content",optionsKey:"style",records:[{value:"consistent",description:"Makes sure the first instance of emphasis is the style that will be used throughout the document"},{value:"asterisk",description:"Makes sure * is the emphasis indicator"},{value:"underscore",description:"Makes sure _ is the emphasis indicator"}]})]}};ui=B([A.register],ui);var Fl=class{},ci=class extends A{get OptionsClass(){return Fl}get name(){return"Empty Line Around Blockquotes"}get description(){return"Ensures that there is an empty line around blockquotes unless they start or end a document. **Note that an empty line is either one less level of nesting for blockquotes or a newline character.**"}get type(){return"Spacing"}apply(t,n){return Tf(t)}get exampleBuilders(){return[new T({description:"Blockquotes that start a document do not get an empty line before them.",before:y` + `,options:{style:"consistent"}})]}get optionBuilders(){return[new ye({OptionsClass:so,name:"Style",description:"The style used to denote emphasized content",optionsKey:"style",records:[{value:"consistent",description:"Makes sure the first instance of emphasis is the style that will be used throughout the document"},{value:"asterisk",description:"Makes sure * is the emphasis indicator"},{value:"underscore",description:"Makes sure _ is the emphasis indicator"}]})]}};ki=A([k.register],ki);var Cs=class{},Si=class extends k{get OptionsClass(){return Cs}get name(){return"Empty Line Around Blockquotes"}get description(){return"Ensures that there is an empty line around blockquotes unless they start or end a document. **Note that an empty line is either one less level of nesting for blockquotes or a newline character.**"}get type(){return"Spacing"}apply(t,n){return bu(t)}get exampleBuilders(){return[new v({description:"Blockquotes that start a document do not get an empty line before them.",before:f` > Quote content here > quote content continued # Title here - `,after:y` + `,after:f` > Quote content here > quote content continued ${""} # Title here - `}),new T({description:"Blockquotes that end a document do not get an empty line after them.",before:y` + `}),new v({description:"Blockquotes that end a document do not get an empty line after them.",before:f` # Heading 1 > Quote content here > quote content continued - `,after:y` + `,after:f` # Heading 1 ${""} > Quote content here > quote content continued - `}),new T({description:"Blockquotes that are nested have the proper empty line added",before:y` + `}),new v({description:"Blockquotes that are nested have the proper empty line added",before:f` # Make sure that nested blockquotes are accounted for correctly > Quote content here > quote content continued @@ -374,7 +344,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe ${""} > > Quote content here > > quote content continued - `,after:y` + `,after:f` # Make sure that nested blockquotes are accounted for correctly ${""} > Quote content here @@ -389,31 +359,31 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe ${""} > > Quote content here > > quote content continued - `})]}get optionBuilders(){return[]}};ci=B([A.register],ci);var Rl=class{},pi=class extends A{get OptionsClass(){return Rl}get name(){return"Empty Line Around Code Fences"}get description(){return"Ensures that there is an empty line around code fences unless they start or end a document."}get type(){return"Spacing"}apply(t,n){return Sf(t)}get exampleBuilders(){return[new T({description:"Fenced code blocks that start a document do not get an empty line before them.",before:y` + `})]}get optionBuilders(){return[]}};Si=A([k.register],Si);var Es=class{},Ti=class extends k{get OptionsClass(){return Es}get name(){return"Empty Line Around Code Fences"}get description(){return"Ensures that there is an empty line around code fences unless they start or end a document."}get type(){return"Spacing"}apply(t,n){return gu(t)}get exampleBuilders(){return[new v({description:"Fenced code blocks that start a document do not get an empty line before them.",before:f` \`\`\` js var temp = 'text'; // this is a code block \`\`\` Text after code block. - `,after:y` + `,after:f` \`\`\` js var temp = 'text'; // this is a code block \`\`\` ${""} Text after code block. - `}),new T({description:"Fenced code blocks that end a document do not get an empty line after them.",before:y` + `}),new v({description:"Fenced code blocks that end a document do not get an empty line after them.",before:f` # Heading 1 \`\`\` Here is a code block \`\`\` - `,after:y` + `,after:f` # Heading 1 ${""} \`\`\` Here is a code block \`\`\` - `}),new T({description:"Fenced code blocks that are in a blockquote have the proper empty line added",before:y` + `}),new v({description:"Fenced code blocks that are in a blockquote have the proper empty line added",before:f` # Make sure that code blocks in blockquotes are accounted for correctly > \`\`\`js > var text = 'this is some text'; @@ -430,7 +400,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe > > \`\`\`js > > var other text = 'this is more text'; > > \`\`\` - `,after:y` + `,after:f` # Make sure that code blocks in blockquotes are accounted for correctly > > \`\`\`js @@ -450,7 +420,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe > > \`\`\`js > > var other text = 'this is more text'; > > \`\`\` - `}),new T({description:"Nested fenced code blocks get empty lines added around them",before:y` + `}),new v({description:"Nested fenced code blocks get empty lines added around them",before:f` \`\`\`markdown # Header ${""} @@ -458,7 +428,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe var text = 'some string'; \`\`\`\` \`\`\` - `,after:y` + `,after:f` \`\`\`markdown # Header ${""} @@ -467,7 +437,77 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe \`\`\`\` ${""} \`\`\` - `})]}get optionBuilders(){return[]}};pi=B([A.register],pi);var Dl=class{},mi=class extends A{get OptionsClass(){return Dl}get name(){return"Empty Line Around Tables"}get description(){return"Ensures that there is an empty line around github flavored tables unless they start or end a document."}get type(){return"Spacing"}apply(t,n){return $([v.yaml,v.code],t,r=>Of(r))}get exampleBuilders(){return[new T({description:"Tables that start a document do not get an empty line before them.",before:y` + `})]}get optionBuilders(){return[]}};Ti=A([k.register],Ti);var ao=class{constructor(){this.minimumNumberOfDollarSignsToBeAMathBlock=2}};A([k.noSettingControl()],ao.prototype,"minimumNumberOfDollarSignsToBeAMathBlock",2);var Oi=class extends k{get OptionsClass(){return ao}get name(){return"Empty Line Around Math Blocks"}get description(){return"Ensures that there is an empty line around math blocks using `Number of Dollar Signs to Indicate a Math Block` to determine how many dollar signs indicates a math block for single-line math."}get type(){return"Spacing"}apply(t,n){return D([S.yaml,S.code],t,i=>yu(i,n.minimumNumberOfDollarSignsToBeAMathBlock))}get exampleBuilders(){return[new v({description:"Math blocks that start a document do not get an empty line before them.",before:f` + $$ + \\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix} + $$ + some more text + `,after:f` + $$ + \\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix} + $$ + ${""} + some more text + `}),new v({description:"Math blocks that are singe-line are updated based on the value of `Number of Dollar Signs to Indicate a Math Block` (in this case its value is 2)",before:f` + $$\\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix}$$ + some more text + `,after:f` + $$\\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix}$$ + ${""} + some more text + `}),new v({description:"Math blocks that end a document do not get an empty line after them.",before:f` + Some text + $$ + \\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix} + $$ + `,after:f` + Some text + ${""} + $$ + \\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix} + $$ + `}),new v({description:"Math blocks that are not at the start or the end of the document will have an empty line added before and after them",before:f` + Some text + $$ + \\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix} + $$ + some more text + `,after:f` + Some text + ${""} + $$ + \\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix} + $$ + ${""} + some more text + `}),new v({description:"Math blocks in callouts or blockquotes have the appropriately formatted blank lines added",before:f` + > Math block in blockquote + > $$ + > \\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix} + > $$ + ${""} + More content here + ${""} + > Math block doubly nested in blockquote + > > $$ + > > \\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix} + > > $$ + `,after:f` + > Math block in blockquote + > + > $$ + > \\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix} + > $$ + > + ${""} + More content here + ${""} + > Math block doubly nested in blockquote + > > + > > $$ + > > \\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix} + > > $$ + `})]}get optionBuilders(){return[]}};Oi=A([k.register],Oi);var _s=class{},Ai=class extends k{get OptionsClass(){return _s}get name(){return"Empty Line Around Tables"}get description(){return"Ensures that there is an empty line around github flavored tables unless they start or end a document."}get type(){return"Spacing"}apply(t,n){return D([S.yaml,S.code],t,i=>fl(i))}get exampleBuilders(){return[new v({description:"Tables that start a document do not get an empty line before them.",before:f` | Column 1 | Column 2 | |----------|----------| | foo | bar | @@ -477,25 +517,25 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe # Heading ${""} **Note that text directly following a table is considered part of a table according to github markdown** - `,after:y` + `,after:f` | Column 1 | Column 2 | |----------|----------| | foo | bar | | baz | qux | | quux | quuz | - More text. ${""} + More text. # Heading ${""} **Note that text directly following a table is considered part of a table according to github markdown** - `}),new T({description:"Tables that end a document do not get an empty line after them.",before:y` + `}),new v({description:"Tables that end a document do not get an empty line after them.",before:f` # Heading 1 | Column 1 | Column 2 | |----------|----------| | foo | bar | | baz | qux | | quux | quuz | - `,after:y` + `,after:f` # Heading 1 ${""} | Column 1 | Column 2 | @@ -503,7 +543,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe | foo | bar | | baz | qux | | quux | quuz | - `}),new T({description:"Tables that are not at the start or the end of the document will have an empty line added before and after them",before:y` + `}),new v({description:"Tables that are not at the start or the end of the document will have an empty line added before and after them",before:f` # Table 1 | Column 1 | Column 2 | Column 3 | |----------|----------|----------| @@ -517,7 +557,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe foo | bar # Header for more content New paragraph. - `,after:y` + `,after:f` # Table 1 ${""} | Column 1 | Column 2 | Column 3 | @@ -535,7 +575,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe ${""} # Header for more content New paragraph. - `}),new T({description:"Tables in callouts or blockquotes have the appropriately formatted blank lines added",before:y` + `}),new v({description:"Tables in callouts or blockquotes have the appropriately formatted blank lines added",before:f` > Table in blockquote > | Column 1 | Column 2 | Column 3 | > |----------|----------|----------| @@ -551,7 +591,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe > > | foo | bar | blob | > > | baz | qux | trust | > > | quux | quuz | glob | - `,after:y` + `,after:f` > Table in blockquote > > | Column 1 | Column 2 | Column 3 | @@ -570,20 +610,19 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe > > | foo | bar | blob | > > | baz | qux | trust | > > | quux | quuz | glob | - `})]}get optionBuilders(){return[]}};mi=B([A.register],mi);var br=class{constructor(){this.defaultEscapeCharacter='"';this.tryToEscapeSingleLineArrays=!1;this.forceYamlEscape=[]}},$n=class extends A{get OptionsClass(){return br}get name(){return"Escape YAML Special Characters"}get description(){return`Escapes colons with a space after them (: ), single quotes ('), and double quotes (") in YAML.`}get type(){return"YAML"}apply(t,n){return qe(t,r=>{let i=r.split(` -`),o=i.length;if(o<1)return r;let a=function(u){return u.length>1&&(u.startsWith("'")&&u.endsWith("'")||u.startsWith('"')&&u.endsWith('"'))},s=function(u,c){if(a(c))return u;let p=c.includes("'"),m=c.includes('"'),f=c.includes(": ");if(!p&&!m&&!f||p&&m)return u;let d;return p?d=u.replace(c,`"${c}"`):m?d=u.replace(c,`'${c}'`):d=u.replace(c,`${n.defaultEscapeCharacter}${c}${n.defaultEscapeCharacter}`),d};for(let u=0;u=c.length,f=c.startsWith("-"),d=f&&c.length<2;if(m&&d)continue;let h=1;f||(h+=p);let g=c.substring(h).trim();if(g.startsWith("[")){if(n.tryToEscapeSingleLineArrays){if(g.length<3)continue;let b=g.substring(1,g.length-1).split(","),O=b.length;for(let S=0;S{let r=i.split(` +`),o=r.length;if(o<1)return i;for(let s=0;s=a.length,p=a.startsWith("-"),m=p&&a.length<2;if(u&&m)continue;let c=1;p||(c+=l);let d=a.substring(c).trim();if(d.startsWith("[")){if(n.tryToEscapeSingleLineArrays){if(d.length<3)continue;let h=d.substring(1,d.length-1).split(","),g=h.length;for(let x=0;x{if(i.match(/^#\s.*/m))return i;let o=n.fileName,s=i.indexOf(` +---`);return s=s==-1||!i.startsWith(`--- +`)?0:s+5,jt(i,s,`# ${o} +`)})}get exampleBuilders(){return[new v({description:"Inserts an H1 heading",before:f` + This is a line of text + `,after:f` + # File Name + This is a line of text + `,options:{fileName:"File Name"}}),new v({description:"Inserts heading after YAML front matter",before:f` + --- + title: My Title + --- + This is a line of text + `,after:f` + --- + title: My Title + --- + # File Name + This is a line of text + `,options:{fileName:"File Name"}})]}get optionBuilders(){return[]}};Ci=A([k.register],Ci);var Bs=class{},Ei=class extends k{get OptionsClass(){return Bs}get name(){return"Footnote after Punctuation"}get description(){return"Ensures that footnote references are placed after punctuation, not before."}get type(){return"Footnote"}apply(t,n){return D([S.code,S.yaml,S.link,S.wikiLink,S.tag],t,i=>i.replace(/(?!^)(\[\^\w+\]) ?([,.;!:?])/gm,"$2$1"))}get exampleBuilders(){return[new v({description:"Placing footnotes after punctuation.",before:f` + Lorem[^1]. Ipsum[^2], doletes. + `,after:f` + Lorem.[^1] Ipsum,[^2] doletes. + `})]}get optionBuilders(){return[]}};Ei=A([k.register],Ei);var _i=class{constructor(){this.defaultEscapeCharacter='"';this.forceYamlEscape=[]}};A([k.noSettingControl()],_i.prototype,"defaultEscapeCharacter",2);var nn=class extends k{get OptionsClass(){return _i}get name(){return"Force YAML Escape"}get description(){return"Escapes the values for the specified YAML keys."}get type(){return"YAML"}apply(t,n){return Se(t,i=>{for(let r of n.forceYamlEscape){let o=Oe(i,r);if(o!=null){if(o.includes(` +`)||o.startsWith(" [")||ns(o))continue;o=kt(o,n.defaultEscapeCharacter,!0),i=Te(i,r," "+o)}}return i})}get exampleBuilders(){return[new v({description:"YAML without anything to escape",before:f` + --- + key: value + otherKey: [] + --- + `,after:f` + --- + key: value + otherKey: [] + --- + `}),new v({description:"Force YAML keys to be escaped with double quotes where not already escaped with `Force Yaml Escape on Keys = 'key'\\n'title'\\n'bool'`",before:f` --- key: 'Already escaped value' title: This is a title @@ -648,7 +721,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe --- ${""} _Note that the force Yaml key option should not be used with arrays._ - `,after:y` + `,after:f` --- key: 'Already escaped value' title: "This is a title" @@ -657,60 +730,45 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe --- ${""} _Note that the force Yaml key option should not be used with arrays._ - `,options:{forceYamlEscape:["key","title","bool"],defaultEscapeCharacter:'"'}})]}get optionBuilders(){return[new de({OptionsClass:br,name:"Default Escape Character",description:"The default character to use to escape YAML values when a single quote and double quote are not present.",optionsKey:"defaultEscapeCharacter",records:[{value:'"',description:"Use a double quote to escape if no single or double quote is present"},{value:"'",description:"Use a single quote to escape if no single or double quote is present"}]}),new se({OptionsClass:br,name:"Try to Escape Single Line Arrays",description:'Tries to escape array values assuming that an array starts with "[", ends with "]", and has items that are delimited by ",".',optionsKey:"tryToEscapeSingleLineArrays"}),new Re({OptionsClass:br,name:"Force Yaml Escape on Keys",description:"Uses the Yaml escape character on the specified Yaml keys separated by a new line character if it is not already escaped. Do not use on Yaml arrays.",optionsKey:"forceYamlEscape"})]}get hasSpecialExecutionOrder(){return!0}};$n=B([A.register],$n);var Sa=class{};B([A.noSettingControl()],Sa.prototype,"fileName",2);var fi=class extends A{get OptionsClass(){return Sa}get name(){return"File Name Heading"}get description(){return"Inserts the file name as a H1 heading if no H1 heading exists."}get type(){return"Heading"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag],t,r=>{if(r.match(/^#\s.*/m))return r;let o=n.fileName,a=r.indexOf(` ----`);return a=a==-1||!r.startsWith(`--- -`)?0:a+5,On(r,a,`# ${o} -`)})}get exampleBuilders(){return[new T({description:"Inserts an H1 heading",before:y` - This is a line of text - `,after:y` - # File Name - This is a line of text - `,options:{fileName:"File Name"}}),new T({description:"Inserts heading after YAML front matter",before:y` - --- - title: My Title - --- - This is a line of text - `,after:y` - --- - title: My Title - --- - # File Name - This is a line of text - `,options:{fileName:"File Name"}})]}get optionBuilders(){return[]}};fi=B([A.register],fi);var Pl=class{},di=class extends A{get OptionsClass(){return Pl}get name(){return"Footnote after Punctuation"}get description(){return"Ensures that footnote references are placed after punctuation, not before."}get type(){return"Footnote"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag],t,r=>r.replace(/(?!^)(\[\^\w+\]) ?([,.;!:?])/gm,"$2$1"))}get exampleBuilders(){return[new T({description:"Placing footnotes after punctuation.",before:y` - Lorem[^1]. Ipsum[^2], doletes. - `,after:y` - Lorem.[^1] Ipsum,[^2] doletes. - `})]}get optionBuilders(){return[]}};di=B([A.register],di);var Nl=class{},Hn=class extends A{get OptionsClass(){return Nl}get name(){return"Format Tags in YAML"}get description(){return"Remove Hashtags from tags in the YAML frontmatter, as they make the tags there invalid."}get type(){return"YAML"}apply(t,n){return qe(t,r=>r.replace(/\ntags:(.*?)(?=\n(?:[A-Za-z-]+?:|---))/s,function(i){return i.replaceAll("#","")}))}get exampleBuilders(){return[new T({description:"Format Tags in YAML frontmatter",before:y` + `,options:{forceYamlEscape:["key","title","bool"],defaultEscapeCharacter:'"'}})]}get optionBuilders(){return[new Ae({OptionsClass:_i,name:"Force YAML Escape on Keys",description:"Uses the YAML escape character on the specified YAML keys separated by a new line character if it is not already escaped. Do not use on YAML arrays.",optionsKey:"forceYamlEscape"})]}get hasSpecialExecutionOrder(){return!0}};nn=A([k.register],nn);var Ms=class{},rn=class extends k{get OptionsClass(){return Ms}get name(){return"Format Tags in YAML"}get description(){return"Remove Hashtags from tags in the YAML frontmatter, as they make the tags there invalid."}get type(){return"YAML"}apply(t,n){return Se(t,i=>i.replace(new RegExp(`\\n(${ri}|${Jo}):(.*?)(?=\\n(?:[A-Za-z-]+?:|---))`,"s"),function(r){return r.replaceAll("#","")}))}get exampleBuilders(){return[new v({description:"Format Tags in YAML frontmatter",before:f` --- tags: #one #two #three #nested/four/five --- - `,after:y` + `,after:f` --- tags: one two three nested/four/five --- - `}),new T({description:"Format tags in array",before:y` + `}),new v({description:"Format tags in array",before:f` --- tags: [#one #two #three] --- - `,after:y` + `,after:f` --- tags: [one two three] --- - `}),new T({description:"Format tags in list",before:y` + `}),new v({description:"Format tags in array with `tag` as the tags key",before:f` + --- + tag: [#one #two #three] + --- + `,after:f` + --- + tag: [one two three] + --- + `}),new v({description:"Format tags in list",before:f` --- tags: - #tag1 - #tag2 --- - `,after:y` + `,after:f` --- tags: - tag1 - tag2 --- - `})]}get optionBuilders(){return[]}get hasSpecialExecutionOrder(){return!0}};Hn=B([A.register],Hn);var At=class{constructor(){this.aliasArrayStyle="single-line";this.formatAliasKey=!0;this.tagArrayStyle="single-line";this.formatTagKey=!0;this.defaultArrayStyle="single-line";this.formatArrayKeys=!0;this.forceSingleLineArrayStyle=[];this.forceMultiLineArrayStyle=[]}},hi=class extends A{get OptionsClass(){return At}get name(){return"Format Yaml Array"}get description(){return"Allows for the formatting of regular yaml arrays as either multi-line or single-line and `tags` and `aliases` are allowed to have some Obsidian specific yaml formats. Note that single string to single-line goes from a single string entry to a single-line array if more than 1 entry is present. The same is true for single string to multi-line except it becomes a multi-line array."}get type(){return"YAML"}apply(t,n){return qe(t,r=>{let i=ht(r.replace(`--- + `})]}get optionBuilders(){return[]}get hasSpecialExecutionOrder(){return!0}};rn=A([k.register],rn);var at=class{constructor(){this.aliasArrayStyle="single-line";this.formatAliasKey=!0;this.tagArrayStyle="single-line";this.formatTagKey=!0;this.defaultArrayStyle="single-line";this.formatArrayKeys=!0;this.forceSingleLineArrayStyle=[];this.forceMultiLineArrayStyle=[]}};A([k.noSettingControl()],at.prototype,"aliasArrayStyle",2),A([k.noSettingControl()],at.prototype,"tagArrayStyle",2);var Bi=class extends k{get OptionsClass(){return at}get name(){return"Format Yaml Array"}get description(){return"Allows for the formatting of regular yaml arrays as either multi-line or single-line and `tags` and `aliases` are allowed to have some Obsidian specific yaml formats. Note that single string to single-line goes from a single string entry to a single-line array if more than 1 entry is present. The same is true for single string to multi-line except it becomes a multi-line array."}get type(){return"YAML"}apply(t,n){return Se(t,i=>{let r=Je(i.replace(`--- `,"").replace(` ----`,""));if(!i)return r;let o=function(a){return a&&Object.prototype.toString.call(a)==="[object Date]"&&!isNaN(a)};if(n.formatAliasKey&&Object.keys(i).includes(mt)&&(r=Me(r,mt,ft(bo(Ft(Be(r,mt))),n.aliasArrayStyle))),n.formatTagKey&&Object.keys(i).includes(nn)&&(r=Me(r,nn,ft(yo(Ft(Be(r,nn))),n.tagArrayStyle))),n.formatArrayKeys){let a=[mt,nn,...n.forceMultiLineArrayStyle,...n.forceSingleLineArrayStyle];for(let s of Object.keys(i))a.includes(s)||!(typeof i[s]=="object"&&!o(i[s])&&i[s])||(r=Me(r,s,ft(Ft(Be(r,s)),n.defaultArrayStyle)))}for(let a of n.forceSingleLineArrayStyle)!Object.keys(i).includes(a)||(r=Me(r,a,ft(Ft(Be(r,a)),"single-line")));for(let a of n.forceMultiLineArrayStyle)!Object.keys(i).includes(a)||(r=Me(r,a,ft(Ft(Be(r,a)),"multi-line")));return r})}get exampleBuilders(){return[new T({description:"Format tags as a single-line array delimited by spaces and aliases as a multi-line array and format the key `test` to be a single-line array",before:y` +---`,""));if(!r)return i;for(let o of si)if(n.formatAliasKey&&Object.keys(r).includes(o)){i=Te(i,o,Ge(Br(ht(Oe(i,o))),n.aliasArrayStyle));break}for(let o of oi)if(n.formatTagKey&&Object.keys(r).includes(o)){i=Te(i,o,Ge(_r(ht(Oe(i,o))),n.tagArrayStyle));break}if(n.formatArrayKeys){let o=[...si,...oi,...n.forceMultiLineArrayStyle,...n.forceSingleLineArrayStyle];for(let s of Object.keys(r))o.includes(s)||!Array.isArray(r[s])||(i=Te(i,s,Ge(ht(Oe(i,s)),n.defaultArrayStyle)))}for(let o of n.forceSingleLineArrayStyle)!Object.keys(r).includes(o)||(i=Te(i,o,Ge(ht(Oe(i,o)),"single-line")));for(let o of n.forceMultiLineArrayStyle)!Object.keys(r).includes(o)||(i=Te(i,o,Ge(ht(Oe(i,o)),"multi-line")));return i})}get exampleBuilders(){return[new v({description:"Format tags as a single-line array delimited by spaces and aliases as a multi-line array and format the key `test` to be a single-line array",before:f` --- tags: - computer @@ -724,7 +782,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe Nesting yaml arrays may result in unexpected results. ${""} Multi-line arrays will have empty values removed only leaving one if it is completely empty. The same is not true for single-line arrays as that is invalid yaml unless it comes as the last entry in the array. - `,after:y` + `,after:f` --- tags: [computer, research] aliases: @@ -738,7 +796,7 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe Nesting yaml arrays may result in unexpected results. ${""} Multi-line arrays will have empty values removed only leaving one if it is completely empty. The same is not true for single-line arrays as that is invalid yaml unless it comes as the last entry in the array. - `,options:{aliasArrayStyle:"multi-line",forceSingleLineArrayStyle:["test"]}}),new T({description:"Format tags as a single string with space delimiters, ignore aliases, and format regular yaml arrays as single-line arrays",before:y` + `,options:{aliasArrayStyle:"multi-line",forceSingleLineArrayStyle:["test"]}}),new v({description:"Format tags as a single string with space delimiters, ignore aliases, and format regular yaml arrays as single-line arrays",before:f` --- aliases: Typescript types: @@ -746,15 +804,15 @@ var ud=Object.create;var Ir=Object.defineProperty;var yu=Object.getOwnPropertyDe - peer reviewed tags: [computer, science, trajectory] --- - `,after:y` + `,after:f` --- aliases: Typescript types: [thought provoking, peer reviewed] tags: computer science trajectory --- - `,options:{formatAliasKey:!1,tagArrayStyle:"single string space delimited"}})]}get optionBuilders(){return[new de({OptionsClass:At,name:"Yaml aliases section style",description:"The style of the yaml aliases section",optionsKey:"aliasArrayStyle",records:[{value:"multi-line",description:"```aliases:\\n - Title```"},{value:"single-line",description:"```aliases: [Title]```"},{value:"single string comma delimited",description:"```aliases: Title, Other Title```"},{value:"single string to single-line",description:"Aliases will be formatted as a string if there is 1 or fewer elements like so ```aliases: Title```. If there is more than 1 element, it will be formatted like a single-line array."},{value:"single string to multi-line",description:"Aliases will be formatted as a string if there is 1 or fewer elements like so ```aliases: Title```. If there is more than 1 element, it will be formatted like a multi-line array."}]}),new se({OptionsClass:At,name:"Format yaml aliases section",description:"Turns on formatting for the yaml aliases section. You should not enable this option alongside the rule `YAML Title Alias` as they may not work well together or they may have different format styles selected causing unexpected results.",optionsKey:"formatAliasKey"}),new de({OptionsClass:At,name:"Yaml tags section style",description:"The style of the yaml tags section",optionsKey:"tagArrayStyle",records:[{value:"multi-line",description:"```tags:\\n - tag1```"},{value:"single-line",description:"```tags: [tag1]```"},{value:"single string to single-line",description:"Tags will be formatted as a string if there is 1 or fewer elements like so ```tags: tag1```. If there is more than 1 element, it will be formatted like a single-line array."},{value:"single string to multi-line",description:"Aliases will be formatted as a string if there is 1 or fewer elements like so ```tags: tag1```. If there is more than 1 element, it will be formatted like a multi-line array."},{value:"single-line space delimited",description:"```tags: [tag1 tag2]```"},{value:"single string space delimited",description:"```tags: tag1 tag2```"},{value:"single string comma delimited",description:"```tags: tag1, tag2```"}]}),new se({OptionsClass:At,name:"Format yaml tags section",description:"Turns on formatting for the yaml tags section.",optionsKey:"formatTagKey"}),new de({OptionsClass:At,name:"Default yaml array section style",description:"The style of other yaml arrays that are not `tags`, `aliases` or in `Force key values to be single-line arrays` and `Force key values to be multi-line arrays`",optionsKey:"defaultArrayStyle",records:[{value:"multi-line",description:"```key:\\n - value```"},{value:"single-line",description:"```key: [value]```"}]}),new se({OptionsClass:At,name:"Format yaml array sections",description:"Turns on formatting for regular yaml arrays",optionsKey:"formatArrayKeys"}),new Re({OptionsClass:At,name:"Force key values to be single-line arrays",description:"Forces the yaml array for the new line separated keys to be in single-line format (leave empty to disable this option)",optionsKey:"forceSingleLineArrayStyle"}),new Re({OptionsClass:At,name:"Force key values to be multi-line arrays",description:"Forces the yaml array for the new line separated keys to be in multi-line format (leave empty to disable this option)",optionsKey:"forceMultiLineArrayStyle"})]}};hi=B([A.register],hi);var zl=class{},gi=class extends A{get OptionsClass(){return zl}get name(){return"Header Increment"}get description(){return"Heading levels should only increment by one level at a time"}get type(){return"Heading"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag],t,r=>{let i=r.split(` -`),o=0,a=0;for(let s=0;so+1?(a+=u-(o+1),u=o+1):u{let r=i.split(` +`),o=0,s=0;for(let a=0;ao+1?(s+=u-(o+1),u=o+1):u(n.bottom?(r=r.replace(/^(#+\s.*)/gm,` + `})]}get optionBuilders(){return[]}};Mi=A([k.register],Mi);var Fi=class{constructor(){this.bottom=!0;this.emptyLineAfterYaml=!0}},Ii=class extends k{get OptionsClass(){return Fi}get name(){return"Heading blank lines"}get description(){return"All headings have a blank line both before and after (except where the heading is at the beginning or end of the document)."}get type(){return"Spacing"}apply(t,n){return D([S.code,S.yaml,S.link,S.wikiLink,S.tag],t,i=>(n.bottom?(i=i.replace(/^(#+\s.*)/gm,` $1 -`),r=r.replace(/\n+(#+\s.*)/g,` +`),i=i.replace(/\n+(#+\s.*)/g,` -$1`),r=r.replace(/(^#+\s.*)\n+/gm,`$1 +$1`),i=i.replace(/(^#+\s.*)\n+/gm,`$1 -`)):(r=r.replace(/(^#+\s.*)\n+/gm,`$1 -`),r=r.replace(/\n+(#+\s.*)/g,` +`)):(i=i.replace(/(^#+\s.*)\n+/gm,`$1 +`),i=i.replace(/\n+(#+\s.*)/g,` -$1`)),r=r.replace(/^\n+(#+\s.*)/,"$1"),r=r.replace(/(#+\s.*)\n+$/,"$1"),n.emptyLineAfterYaml||(r=r.replace(new RegExp("("+Ie.source+")\\n+(#+\\s.*)"),`$1 -$5`)),r))}get exampleBuilders(){return[new T({description:"Headings should be surrounded by blank lines",before:y` +$1`)),i=i.replace(/^\n+(#+\s.*)/,"$1"),i=i.replace(/(#+\s.*)\n+$/,"$1"),n.emptyLineAfterYaml||(i=i.replace(new RegExp("("+ke.source+")\\n+(#+\\s.*)"),`$1 +$5`)),i))}get exampleBuilders(){return[new v({description:"Headings should be surrounded by blank lines",before:f` # H1 ## H2 ${""} @@ -829,7 +887,7 @@ $5`)),r))}get exampleBuilders(){return[new T({description:"Headings should be su line ## H2 ${""} - `,after:y` + `,after:f` # H1 ${""} ## H2 @@ -839,13 +897,13 @@ $5`)),r))}get exampleBuilders(){return[new T({description:"Headings should be su line ${""} ## H2 - `}),new T({description:"With `Bottom=false`",before:y` + `}),new v({description:"With `Bottom=false`",before:f` # H1 line ## H2 # H1 line - `,after:y` + `,after:f` # H1 line ${""} @@ -853,46 +911,46 @@ $5`)),r))}get exampleBuilders(){return[new T({description:"Headings should be su ${""} # H1 line - `,options:{bottom:!1,emptyLineAfterYaml:!0}}),new T({description:"Empty line before header and after Yaml is removed with `Empty Line Between Yaml and Header=true`",before:y` + `,options:{bottom:!1,emptyLineAfterYaml:!0}}),new v({description:"Empty line before header and after Yaml is removed with `Empty Line Between Yaml and Header=true`",before:f` --- key: value --- # Header Paragraph here... - `,after:y` + `,after:f` --- key: value --- # Header Paragraph here... - `,options:{bottom:!0,emptyLineAfterYaml:!1}})]}get optionBuilders(){return[new se({OptionsClass:bi,name:"Bottom",description:"Insert a blank line after headings",optionsKey:"bottom"}),new se({OptionsClass:bi,name:"Empty Line Between Yaml and Header",description:"Keep the empty line between the Yaml frontmatter and header",optionsKey:"emptyLineAfterYaml"})]}};yi=B([A.register],yi);var Oa=class{constructor(){this.textToInsert=["aliases: ","tags: "]}},wi=class extends A{get OptionsClass(){return Oa}get name(){return"Insert YAML attributes"}get description(){return"Inserts the given YAML attributes into the YAML frontmatter. Put each attribute on a single line."}get type(){return"YAML"}apply(t,n){return t=Bt(t),qe(t,r=>{let i=n.textToInsert.reverse(),o=ht(r.match(Ie)[1]);for(let a of i){let s=a.split(":")[0];Object.prototype.hasOwnProperty.call(o,s)||(r=r.replace(/^---\n/,je(`--- -${a} -`)))}return r})}get exampleBuilders(){return[new T({description:"Insert static lines into YAML frontmatter. Text to insert: `aliases:\ntags: doc\nanimal: dog`",before:y` + `,options:{bottom:!0,emptyLineAfterYaml:!1}})]}get optionBuilders(){return[new te({OptionsClass:Fi,name:"Bottom",description:"Insert a blank line after headings",optionsKey:"bottom"}),new te({OptionsClass:Fi,name:"Empty Line Between Yaml and Header",description:"Keep the empty line between the Yaml frontmatter and header",optionsKey:"emptyLineAfterYaml"})]}};Ii=A([k.register],Ii);var po=class{constructor(){this.textToInsert=["aliases: ","tags: "]}},Ri=class extends k{get OptionsClass(){return po}get name(){return"Insert YAML attributes"}get description(){return"Inserts the given YAML attributes into the YAML frontmatter. Put each attribute on a single line."}get type(){return"YAML"}apply(t,n){return t=ft(t),Se(t,i=>{let r=n.textToInsert.reverse(),o=Je(i.match(ke)[1]);for(let s of r){let a=s.split(":")[0];Object.prototype.hasOwnProperty.call(o,a)||(i=i.replace(/^---\n/,$e(`--- +${s} +`)))}return i})}get exampleBuilders(){return[new v({description:"Insert static lines into YAML frontmatter. Text to insert: `aliases:\ntags: doc\nanimal: dog`",before:f` --- animal: cat --- - `,after:y` + `,after:f` --- aliases: tags: doc animal: cat --- - `,options:{textToInsert:["aliases:","tags: doc","animal: dog"]}})]}get optionBuilders(){return[new Re({OptionsClass:Oa,name:"Text to insert",description:"Text to insert into the YAML frontmatter",optionsKey:"textToInsert"})]}};wi=B([A.register],wi);var $l=class{},xi=class extends A{get OptionsClass(){return $l}get name(){return"Line Break at Document End"}get description(){return"Ensures that there is exactly one line break at the end of a document."}get type(){return"Spacing"}apply(t,n){return t=t.replace(/\n+$/g,""),t+=` -`,t}get exampleBuilders(){return[new T({description:"Appending a line break to the end of the document.",before:y` + `,options:{textToInsert:["aliases:","tags: doc","animal: dog"]}})]}get optionBuilders(){return[new Ae({OptionsClass:po,name:"Text to insert",description:"Text to insert into the YAML frontmatter",optionsKey:"textToInsert"})]}};Ri=A([k.register],Ri);var Fs=class{},$i=class extends k{get OptionsClass(){return Fs}get name(){return"Line Break at Document End"}get description(){return"Ensures that there is exactly one line break at the end of a document."}get type(){return"Spacing"}apply(t,n){return t=t.replace(/\n+$/g,""),t+=` +`,t}get exampleBuilders(){return[new v({description:"Appending a line break to the end of the document.",before:f` Lorem ipsum dolor sit amet, consectetur adipiscing elit. - `,after:y` + `,after:f` Lorem ipsum dolor sit amet, consectetur adipiscing elit. ${""} - `}),new T({description:"Removing trailing line breaks to the end of the document, except one.",before:y` + `}),new v({description:"Removing trailing line breaks to the end of the document, except one.",before:f` Lorem ipsum dolor sit amet, consectetur adipiscing elit. ${""} ${""} ${""} - `,after:y` + `,after:f` Lorem ipsum dolor sit amet, consectetur adipiscing elit. ${""} - `})]}get optionBuilders(){return[]}};xi=B([A.register],xi);var Hl=class{},ki=class extends A{get OptionsClass(){return Hl}get name(){return"Move Footnotes to the bottom"}get description(){return"Move all footnotes to the bottom of the document."}get type(){return"Footnote"}apply(t,n){return $([v.code,v.yaml],t,r=>gf(r))}get exampleBuilders(){return[new T({description:"Moving footnotes to the bottom",before:y` + `})]}get optionBuilders(){return[]}};$i=A([k.register],$i);var Rs=class{},Di=class extends k{get OptionsClass(){return Rs}get name(){return"Move Footnotes to the bottom"}get description(){return"Move all footnotes to the bottom of the document."}get type(){return"Footnote"}apply(t,n){return D([S.code,S.yaml],t,i=>uu(i))}get exampleBuilders(){return[new v({description:"Moving footnotes to the bottom",before:f` Lorem ipsum, consectetur adipiscing elit. [^1] Donec dictum turpis quis ipsum pellentesque. ${""} [^1]: first footnote @@ -901,7 +959,7 @@ ${a} [^2]: second footnote ${""} Maecenas malesuada dignissim purus ac volutpat. - `,after:y` + `,after:f` Lorem ipsum, consectetur adipiscing elit. [^1] Donec dictum turpis quis ipsum pellentesque. ${""} Quisque lorem est, fringilla sed enim at, sollicitudin lacinia nisi.[^2] @@ -909,9 +967,39 @@ ${a} ${""} [^1]: first footnote [^2]: second footnote - `})]}get optionBuilders(){return[]}};ki=B([A.register],ki);var wr=class{constructor(){this.tagArrayStyle="single-line";this.removeHashtagsFromTagsInBody=!1;this.tagsToIgnore=[]}},vi=class extends A{get OptionsClass(){return wr}get name(){return"Move Tags to Yaml"}get description(){return"Move all tags to Yaml frontmatter of the document."}get type(){return"YAML"}apply(t,n){return $([v.code,v.inlineCode,v.math],t,r=>{let i=r.match(Pr);return i&&(r=Bt(r),r=qe(r,o=>{o=o.replace(`--- -`,"").replace("---","");let a=yo(Ft(Be(o,nn))),s=new Set;if(typeof a=="string")s.add(a),a=[a];else if(a!=null)for(let u of a)s.add(u);else a=[];for(let u of i){let c=u.trim().substring(1);!s.has(c)&&!n.tagsToIgnore.includes(c)&&(s.add(c),a.push(c))}return`--- -${Me(o,nn,ft(a,n.tagArrayStyle))}---`}),n.removeHashtagsFromTagsInBody&&(r=r.replace(Pr,o=>{let a=o.indexOf("#"),s=o.substring(a+1);return n.tagsToIgnore.includes(s)?o:o.substring(0,a)+s}))),r})}get exampleBuilders(){return[new T({description:"Move tags from body to Yaml with `Tags to ignore = 'ignored-tag'`",before:y` + `})]}get optionBuilders(){return[]}};Di=A([k.register],Di);var co=class{constructor(){this.minimumNumberOfDollarSignsToBeAMathBlock=2}};A([k.noSettingControl()],co.prototype,"minimumNumberOfDollarSignsToBeAMathBlock",2);var Pi=class extends k{get OptionsClass(){return co}get name(){return"Move Math Block Indicators to Their Own Line"}get description(){return"Move all starting and ending math block indicators to their own lines using `Number of Dollar Signs to Indicate a Math Block` to determine how many dollar signs indicates a math block for single-line math."}get type(){return"Spacing"}apply(t,n){return D([S.code,S.inlineCode],t,i=>vu(i,n.minimumNumberOfDollarSignsToBeAMathBlock))}get exampleBuilders(){return[new v({description:"Moving math block indicator to its own line when `Number of Dollar Signs to Indicate a Math Block` = 2",before:f` + This is left alone: + $$ + \\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix} + $$ + The following is updated: + $$L = \\frac{1}{2} \\rho v^2 S C_L$$ + `,after:f` + This is left alone: + $$ + \\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix} + $$ + The following is updated: + $$ + L = \\frac{1}{2} \\rho v^2 S C_L + $$ + `}),new v({description:"Moving math block indicator to its own line when `Number of Dollar Signs to Indicate a Math Block` = 3 and opening indicator is on the same line as the start of the content",before:f` + $$$\\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix} + $$$ + `,after:f` + $$$ + \\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix} + $$$ + `}),new v({description:"Moving math block indicator to its own line when `Number of Dollar Signs to Indicate a Math Block` = 2 and ending indicator is on the same line as the ending line of the content",before:f` + $$ + \\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix}$$ + `,after:f` + $$ + \\boldsymbol{a}=\\begin{bmatrix}a_x \\\\ a_y\\end{bmatrix} + $$ + `})]}get optionBuilders(){return[]}};Pi=A([k.register],Pi);var Pn=class{constructor(){this.tagArrayStyle="single-line";this.howToHandleExistingTags="Nothing";this.tagsToIgnore=[]}};A([k.noSettingControl()],Pn.prototype,"tagArrayStyle",2);var Ni=class extends k{get OptionsClass(){return Pn}get name(){return"Move Tags to Yaml"}get description(){return"Move all tags to Yaml frontmatter of the document."}get type(){return"YAML"}apply(t,n){return D([S.code,S.inlineCode,S.math,S.html],t,i=>{let r=i.match(En);return r&&(i=ft(i),i=Se(i,o=>{o=o.replace(`--- +`,"").replace("---","");let s=[],a=ri;for(let p of oi){let m=Oe(o,p);if(m!=null){s=_r(ht(m)),a=p;break}}let l=new Set;if(typeof s=="string")l.add(s),s=[s];else if(s!=null)for(let p of s)l.add(p);else s=[];for(let p of r){let m=p.trim().substring(1);!l.has(m)&&!n.tagsToIgnore.includes(m)&&(l.add(m),s.push(m))}return`--- +${Te(o,a,Ge(s,n.tagArrayStyle))}---`}),n.howToHandleExistingTags==="Remove hashtag"?i=i.replace(En,o=>{let s=o.indexOf("#"),a=o.substring(s+1);return n.tagsToIgnore.includes(a)?o:o.substring(0,s)+a}):n.howToHandleExistingTags==="Remove whole tag"&&(i=i.replace(En,""))),i})}get exampleBuilders(){return[new v({description:"Move tags from body to Yaml with `Tags to ignore = 'ignored-tag'`",before:f` Text has to do with #test and #markdown ${""} #test content here @@ -923,7 +1011,7 @@ ${Me(o,nn,ft(a,n.tagArrayStyle))}---`}),n.removeHashtagsFromTagsInBody&&(r=r.rep This inline code \`#ignored content\` ${""} #ignored-tag is ignored since it is in the ignored list - `,after:y` + `,after:f` --- tags: [test, markdown] --- @@ -938,31 +1026,41 @@ ${Me(o,nn,ft(a,n.tagArrayStyle))}---`}),n.removeHashtagsFromTagsInBody&&(r=r.rep This inline code \`#ignored content\` ${""} #ignored-tag is ignored since it is in the ignored list - `,options:{tagsToIgnore:["ignored-tag"]}}),new T({description:"Move tags from body to Yaml with existing tags retains the already existing ones and only adds new ones",before:y` + `,options:{tagsToIgnore:["ignored-tag"]}}),new v({description:"Move tags from body to YAML with existing tags retains the already existing ones and only adds new ones",before:f` --- tags: [test, tag2] --- Text has to do with #test and #markdown - `,after:y` + `,after:f` --- tags: [test, tag2, markdown] --- Text has to do with #test and #markdown - `}),new T({description:"Move tags to Yaml frontmatter and then remove hashtags in body content tags `Remove the hashtag from tags in content body = true` with `Tags to ignore = 'yet-another-ignored-tag'`.",before:y` + `}),new v({description:"Move tags to YAML frontmatter and then remove hashtags in body content tags when `Body tag operation = 'Remove hashtag'` and `Tags to ignore = 'yet-another-ignored-tag'`.",before:f` --- tags: [test, tag2] --- Text has to do with #test and #markdown ${""} The tag at the end of this line stays as a tag since it is ignored #yet-another-ignored-tag - `,after:y` + `,after:f` --- tags: [test, tag2, markdown] --- Text has to do with test and markdown ${""} The tag at the end of this line stays as a tag since it is ignored #yet-another-ignored-tag - `,options:{removeHashtagsFromTagsInBody:!0,tagsToIgnore:["yet-another-ignored-tag"]}})]}get optionBuilders(){return[new de({OptionsClass:wr,name:"Yaml tags section style",description:"The style of the Yaml tags section",optionsKey:"tagArrayStyle",records:[{value:"multi-line",description:"```tags:\\n - tag1```"},{value:"single-line",description:"```tags: [tag1]```"},{value:"single string to single-line",description:"Tags will be formatted as a string if there is 1 or fewer elements like so ```tags: tag1```. If there is more than 1 element, it will be formatted like a single-line array."},{value:"single string to multi-line",description:"Aliases will be formatted as a string if there is 1 or fewer elements like so ```tags: tag1```. If there is more than 1 element, it will be formatted like a multi-line array."},{value:"single-line space delimited",description:"```tags: [tag1 tag2]```"},{value:"single string space delimited",description:"```tags: tag1 tag2```"},{value:"single string comma delimited",description:"```tags: tag1, tag2```"}]}),new se({OptionsClass:wr,name:"Remove the hashtag from tags in content body",description:"Removes `#` from tags in content body after moving them to the Yaml frontmatter",optionsKey:"removeHashtagsFromTagsInBody"}),new Re({OptionsClass:wr,name:"Tags to ignore",description:"The tags that will not be moved to the tags array or removed from the body content if `Remove the hashtag from tags in content body` is enabled. Each tag should be on a new line and without the `#`. **Make sure not to include the hashtag in the tag name.**",optionsKey:"tagsToIgnore"})]}};vi=B([A.register],vi);var Yl=class{},Si=class extends A{get OptionsClass(){return Yl}get name(){return"No Bare URLs"}get description(){return"Encloses bare URLs with angle brackets except when enclosed in back ticks, square braces, or single or double quotes."}get type(){return"Content"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag,v.image],t,r=>{let i=r.match(/(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s`\]'">]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s`\]'">]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s`\]'">]{2,}|www\.[a-zA-Z0-9]+\.[^\s`\]'">]{2,})/gi);if(!i)return r;let o=0,a=i.length;for(let s=0;s=r.length?void 0:r.charAt(c);if(p!=null&&(p==="`"||p==='"'||p==="'"||p==="[")&&m!=null&&(m==="`"||m==='"'||m==="'"||m==="]")){o=u+l.length;continue}if(p!=null&&p==="<"&&m!=null&&m===">"){let f=u-1;for(;f>0&&r.charAt(f-1)==="<";)f--;let d=c;for(;d";)d++;r=Ve(r,f,d+1,"<"+l+">"),o=u+l.length;continue}r=Ve(r,u,u+l.length,"<"+l+">"),o=u+l.length+2}return r})}get exampleBuilders(){return[new T({description:"Make sure that links are inside of angle brackets when not in single quotes('), double quotes(\"), or backticks(`)",before:y` + `,options:{howToHandleExistingTags:"Remove hashtag",tagsToIgnore:["yet-another-ignored-tag"]}}),new v({description:"Move tags to YAML frontmatter and then remove body content tags when `Body tag operation = 'Remove whole tag'`.",before:f` + --- + tags: [test, tag2] + --- + This document will have #tags removed and spacing around tags is left alone except for the space prior to the hashtag #warning + `,after:f` + --- + tags: [test, tag2, tags, warning] + --- + This document will have removed and spacing around tags is left alone except for the space prior to the hashtag + `,options:{howToHandleExistingTags:"Remove whole tag"}})]}get optionBuilders(){return[new ye({OptionsClass:Pn,name:"Body tag operation",description:"What to do with non-ignored tags in the body of the file once they have been moved to the frontmatter",optionsKey:"howToHandleExistingTags",records:[{value:"Nothing",description:"Leaves tags in the body of the file alone"},{value:"Remove hashtag",description:"Removes `#` from tags in content body after moving them to the YAML frontmatter"},{value:"Remove whole tag",description:"Removes the whole tag in content body after moving them to the YAML frontmatter. _Note that this removes the first space prior to the tag as well_"}]}),new Ae({OptionsClass:Pn,name:"Tags to ignore",description:"The tags that will not be moved to the tags array or removed from the body content if `Remove the hashtag from tags in content body` is enabled. Each tag should be on a new line and without the `#`. **Make sure not to include the hashtag in the tag name.**",optionsKey:"tagsToIgnore"})]}};Ni=A([k.register],Ni);var $s=class{},Tu="'\"\u2018\u2019\u201C\u201D`[]",Hi=class extends k{get OptionsClass(){return $s}get name(){return"No Bare URLs"}get description(){return"Encloses bare URLs with angle brackets except when enclosed in back ticks, square braces, or single or double quotes."}get type(){return"Content"}apply(t,n){return D([S.code,S.yaml,S.link,S.wikiLink,S.tag,S.image,S.inlineCode],t,i=>{let r=i.match(/(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s`\]'"‘’“”>]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s`\]'"‘’“”>]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s`\]'"‘’“”>]{2,}|www\.[a-zA-Z0-9]+\.[^\s`\]'"‘’“”>]{2,})/gi);if(!r)return i;let o=0,s=r.length;for(let a=0;a=i.length?void 0:i.charAt(p);if(m!=null&&Tu.includes(m)&&c!=null&&Tu.includes(c)){o=u+l.length;continue}if(m!=null&&m==="<"&&c!=null&&c===">"){let d=u-1;for(;d>0&&i.charAt(d-1)==="<";)d--;let h=p;for(;h";)h++;i=ve(i,d,h+1,"<"+l+">"),o=u+l.length;continue}i=ve(i,u,u+l.length,"<"+l+">"),o=u+l.length+2}return i})}get exampleBuilders(){return[new v({description:"Make sure that links are inside of angle brackets when not in single quotes('), double quotes(\"), or backticks(`)",before:f` https://github.com braces around url should stay the same: [https://github.com] backticks around url should stay the same: \`https://github.com\` @@ -972,7 +1070,7 @@ ${Me(o,nn,ft(a,n.tagArrayStyle))}---`}),n.removeHashtagsFromTagsInBody&&(r=r.rep links should stay the same: [](https://github.com) https://gitlab.com - `,after:y` + `,after:f` braces around url should stay the same: [https://github.com] backticks around url should stay the same: \`https://github.com\` @@ -982,25 +1080,25 @@ ${Me(o,nn,ft(a,n.tagArrayStyle))}---`}),n.removeHashtagsFromTagsInBody&&(r=r.rep links should stay the same: [](https://github.com) - `}),new T({description:"Angle brackets are added if the url is not the only text in the single quotes('), double quotes(\"), or backticks(`)",before:y` + `}),new v({description:`Angle brackets are added if the url is not the only text in the single quotes(') or double quotes(")`,before:f` [https://github.com some text here] - backticks around a url should stay the same, but only if the only contents of the backticks: \`https://github.com some text here\` + backticks around a url should stay the same: \`https://github.com some text here\` single quotes around a url should stay the same, but only if the contents of the single quotes is the url: 'https://github.com some text here' double quotes around a url should stay the same, but only if the contents of the double quotes is the url: "https://github.com some text here" - `,after:y` + `,after:f` [ some text here] - backticks around a url should stay the same, but only if the only contents of the backticks: \` some text here\` + backticks around a url should stay the same: \`https://github.com some text here\` single quotes around a url should stay the same, but only if the contents of the single quotes is the url: ' some text here' double quotes around a url should stay the same, but only if the contents of the double quotes is the url: " some text here" - `}),new T({description:"Multiple angle brackets at the start and or end of a url will be reduced down to 1",before:y` + `}),new v({description:"Multiple angle brackets at the start and or end of a url will be reduced down to 1",before:f` < > <> - `,after:y` + `,after:f` - `})]}get optionBuilders(){return[]}};Si=B([A.register],Si);var Ti=class{constructor(){this.numberStyle="ascending";this.listEndStyle="."}},Oi=class extends A{get OptionsClass(){return Ti}get name(){return"Ordered List Style"}get description(){return"Makes sure that ordered lists follow the style specified. Note that 2 spaces or 1 tab is considered to be an indentation level."}get type(){return"Content"}apply(t,n){return $([v.code,v.yaml,v.tag],t,r=>Cf(r,n.numberStyle,n.listEndStyle))}get exampleBuilders(){return[new T({description:"Ordered lists have list items set to ascending numerical order when Number Style is `ascending`.",before:y` + `})]}get optionBuilders(){return[]}};Hi=A([k.register],Hi);var zi=class{constructor(){this.numberStyle="ascending";this.listEndStyle="."}},Yi=class extends k{get OptionsClass(){return zi}get name(){return"Ordered List Style"}get description(){return"Makes sure that ordered lists follow the style specified. Note that 2 spaces or 1 tab is considered to be an indentation level."}get type(){return"Content"}apply(t,n){return D([S.code,S.yaml,S.tag],t,i=>wu(i,n.numberStyle,n.listEndStyle))}get exampleBuilders(){return[new v({description:"Ordered lists have list items set to ascending numerical order when Number Style is `ascending`.",before:f` 1. Item 1 2. Item 2 4. Item 3 @@ -1010,7 +1108,7 @@ ${Me(o,nn,ft(a,n.tagArrayStyle))}---`}),n.removeHashtagsFromTagsInBody&&(r=r.rep 1. Item 1 1. Item 2 1. Item 3 - `,after:y` + `,after:f` 1. Item 1 2. Item 2 3. Item 3 @@ -1020,123 +1118,175 @@ ${Me(o,nn,ft(a,n.tagArrayStyle))}---`}),n.removeHashtagsFromTagsInBody&&(r=r.rep 1. Item 1 2. Item 2 3. Item 3 - `}),new T({description:"Nested ordered lists have list items set to ascending numerical order when Number Style is `ascending`.",before:y` + `}),new v({description:"Nested ordered lists have list items set to ascending numerical order when Number Style is `ascending`.",before:f` 1. Item 1 2. Item 2 1. Subitem 1 5. Subitem 2 2. Subitem 3 4. Item 3 - `,after:y` + `,after:f` 1. Item 1 2. Item 2 1. Subitem 1 2. Subitem 2 3. Subitem 3 3. Item 3 - `}),new T({description:"Ordered list in blockquote has list items set to '1.' when Number Style is `lazy`.",before:y` + `}),new v({description:"Ordered list in blockquote has list items set to '1.' when Number Style is `lazy`.",before:f` > 1. Item 1 > 4. Item 2 > > 1. Subitem 1 > > 5. Subitem 2 > > 2. Subitem 3 - `,after:y` + `,after:f` > 1. Item 1 > 1. Item 2 > > 1. Subitem 1 > > 1. Subitem 2 > > 1. Subitem 3 - `,options:{numberStyle:"lazy"}}),new T({description:"Ordered list in blockquote has list items set to ascending numerical order when Number Style is `ascending`.",before:y` + `,options:{numberStyle:"lazy"}}),new v({description:"Ordered list in blockquote has list items set to ascending numerical order when Number Style is `ascending`.",before:f` > 1. Item 1 > 4. Item 2 > > 1. Subitem 1 > > 5. Subitem 2 > > 2. Subitem 3 - `,after:y` + `,after:f` > 1. Item 1 > 2. Item 2 > > 1. Subitem 1 > > 2. Subitem 2 > > 3. Subitem 3 - `}),new T({description:"Nested ordered list has list items set to '1)' when Number Style is `lazy` and Ordered List Indicator End Style is `)`.",before:y` + `}),new v({description:"Nested ordered list has list items set to '1)' when Number Style is `lazy` and Ordered List Indicator End Style is `)`.",before:f` 1. Item 1 2. Item 2 1. Subitem 1 5. Subitem 2 2. Subitem 3 4. Item 3 - `,after:y` + `,after:f` 1) Item 1 1) Item 2 1) Subitem 1 1) Subitem 2 1) Subitem 3 1) Item 3 - `,options:{listEndStyle:")",numberStyle:"lazy"}})]}get optionBuilders(){return[new de({OptionsClass:Ti,name:"Number Style",description:"The number style used in ordered list indicators",optionsKey:"numberStyle",records:[{value:"ascending",description:"Makes sure ordered list items are ascending (i.e. 1, 2, 3, etc.)"},{value:"lazy",description:"Makes sure ordered list item indicators all are the number 1"}]}),new de({OptionsClass:Ti,name:"Ordered List Indicator End Style",description:"The ending character of an ordered list indicator",optionsKey:"listEndStyle",records:[{value:".",description:"Makes sure ordered list items indicators end in '.' (i.e `1.`)"},{value:")",description:"Makes sure ordered list item indicators end in ')' (i.e. `1)`)"}]})]}};Oi=B([A.register],Oi);var jl=class{},Ci=class extends A{get OptionsClass(){return jl}get name(){return"Paragraph blank lines"}get description(){return"All paragraphs should have exactly one blank line both before and after."}get type(){return"Spacing"}apply(t,n){return $([v.obsidianMultiLineComments,v.yaml],t,bf)}get exampleBuilders(){return[new T({description:"Paragraphs should be surrounded by blank lines",before:y` + `,options:{listEndStyle:")",numberStyle:"lazy"}})]}get optionBuilders(){return[new ye({OptionsClass:zi,name:"Number Style",description:"The number style used in ordered list indicators",optionsKey:"numberStyle",records:[{value:"ascending",description:"Makes sure ordered list items are ascending (i.e. 1, 2, 3, etc.)"},{value:"lazy",description:"Makes sure ordered list item indicators all are the number 1"}]}),new ye({OptionsClass:zi,name:"Ordered List Indicator End Style",description:"The ending character of an ordered list indicator",optionsKey:"listEndStyle",records:[{value:".",description:"Makes sure ordered list items indicators end in '.' (i.e `1.`)"},{value:")",description:"Makes sure ordered list item indicators end in ')' (i.e. `1)`)"}]})]}};Yi=A([k.register],Yi);var Ds=class{},qi=class extends k{get OptionsClass(){return Ds}get name(){return"Paragraph blank lines"}get description(){return"All paragraphs should have exactly one blank line both before and after."}get type(){return"Spacing"}apply(t,n){return D([S.obsidianMultiLineComments,S.yaml,S.table],t,cu)}get exampleBuilders(){return[new v({description:"Paragraphs should be surrounded by blank lines",before:f` # H1 Newlines are inserted. A paragraph is a line that starts with a letter. - `,after:y` + `,after:f` # H1 ${""} Newlines are inserted. ${""} A paragraph is a line that starts with a letter. - `})]}get optionBuilders(){return[]}};Ci=B([A.register],Ci);var ql=class{},Ai=class extends A{get OptionsClass(){return ql}get name(){return"Proper Ellipsis"}get description(){return"Replaces three consecutive dots with an ellipsis."}get type(){return"Content"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag],t,r=>r.replaceAll("...","\u2026"))}get exampleBuilders(){return[new T({description:"Replacing three consecutive dots with an ellipsis.",before:y` + `})]}get optionBuilders(){return[]}};qi=A([k.register],qi);var mo=class{};A([k.noSettingControl()],mo.prototype,"lineContent",2);var on=class extends k{get OptionsClass(){return mo}get name(){return"Prevent Double Checklist Indicator on Paste"}get description(){return"Removes starting checklist indicator from the text to paste if the line the cursor is on in the file has a checklist indicator"}get type(){return"Paste"}apply(t,n){let i=new RegExp(`^${_n}- \\[[ x]] `),r=/^\s*- \[[ x]] /,o=i.test(n.lineContent),s=r.test(t);return!o||!s?t:t.replace(r,"")}get exampleBuilders(){return[new v({description:"Line being pasted is left alone when current line has no checklist indicator in it: `Regular text here`",before:f` + - [ ] Checklist item being pasted + `,after:f` + - [ ] Checklist item being pasted + `,options:{lineContent:"Regular text here"}}),new v({description:"Line being pasted into a blockquote without a checklist indicator is left alone when it lacks a checklist indicator: `> > `",before:f` + - [ ] Checklist item contents here + More content here + `,after:f` + - [ ] Checklist item contents here + More content here + `,options:{lineContent:"> > "}}),new v({description:"Line being pasted into a blockquote with a checklist indicator is has its checklist indicator removed when current line is: `> - [x] `",before:f` + - [ ] Checklist item contents here + More content here + `,after:f` + Checklist item contents here + More content here + `,options:{lineContent:"> - [x] "}}),new v({description:"Line being pasted with a checklist indicator is has its checklist indicator removed when current line is: `- [ ] `",before:f` + - [x] Checklist item 1 + - [ ] Checklist item 2 + `,after:f` + Checklist item 1 + - [ ] Checklist item 2 + `,options:{lineContent:"- [ ] "}})]}get optionBuilders(){return[]}};on=A([k.register],on);var fo=class{};A([k.noSettingControl()],fo.prototype,"lineContent",2);var sn=class extends k{get OptionsClass(){return fo}get name(){return"Prevent Double List Item Indicator on Paste"}get description(){return"Removes starting list indicator from the text to paste if the line the cursor is on in the file has a list indicator"}get type(){return"Paste"}apply(t,n){let i=new RegExp(`^${_n}[*+-] `),r=/^\s*[*+-] /,o=i.test(n.lineContent),s=r.test(t);return!o||!s?t:t.replace(r,"")}get exampleBuilders(){return[new v({description:"Line being pasted is left alone when current line has no list indicator in it: `Regular text here`",before:f` + - List item being pasted + `,after:f` + - List item being pasted + `,options:{lineContent:"Regular text here"}}),new v({description:"Line being pasted into a blockquote without a list indicator is left alone when it lacks a list indicator: `> > `",before:f` + * List item contents here + More content here + `,after:f` + * List item contents here + More content here + `,options:{lineContent:"> > "}}),new v({description:"Line being pasted into a blockquote with a list indicator is has its list indicator removed when current line is: `> * `",before:f` + + List item contents here + More content here + `,after:f` + List item contents here + More content here + `,options:{lineContent:"> * "}}),new v({description:"Line being pasted with a list indicator is has its list indicator removed when current line is: `+ `",before:f` + - List item 1 + - List item 2 + `,after:f` + List item 1 + - List item 2 + `,options:{lineContent:"+ "}})]}get optionBuilders(){return[]}};sn=A([k.register],sn);var Ps=class{},an=class extends k{get OptionsClass(){return Ps}get name(){return"Proper Ellipsis on Paste"}get description(){return"Replaces three consecutive dots with an ellipsis even if they have a space between them in the text to paste"}get type(){return"Paste"}apply(t,n){return t.replaceAll(Er,"\u2026")}get exampleBuilders(){return[new v({description:"Replacing three consecutive dots with an ellipsis even if spaces are present",before:f` Lorem (...) Impsum. - `,after:y` + Lorem (. ..) Impsum. + Lorem (. . .) Impsum. + `,after:f` Lorem (…) Impsum. - `})]}get optionBuilders(){return[]}};Ai=B([A.register],Ai);var Vl=class{},Ei=class extends A{get OptionsClass(){return Vl}get name(){return"Re-Index Footnotes"}get description(){return"Re-indexes footnote keys and footnote, based on the order of occurrence (NOTE: This rule deliberately does *not* preserve the relation between key and footnote, to be able to re-index duplicate keys.)"}get type(){return"Footnote"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag],t,r=>{let i=0;return r=r.replace(/^\[\^\w+\]: /gm,function(){return i++,"[^"+String(i)+"]: "}),i=0,r=r.replace(/(?!^)\[\^\w+\]/gm,function(){return i++,"[^"+String(i)+"]"}),r})}get exampleBuilders(){return[new T({description:"Re-indexing footnotes after having deleted previous footnotes",before:y` + Lorem (…) Impsum. + Lorem (…) Impsum. + `})]}get optionBuilders(){return[]}};an=A([k.register],an);var Ns=class{},Ki=class extends k{get OptionsClass(){return Ns}get name(){return"Proper Ellipsis"}get description(){return"Replaces three consecutive dots with an ellipsis."}get type(){return"Content"}apply(t,n){return D([S.code,S.yaml,S.link,S.wikiLink,S.tag],t,i=>i.replaceAll(Er,"\u2026"))}get exampleBuilders(){return[new v({description:"Replacing three consecutive dots with an ellipsis.",before:f` + Lorem (...) Impsum. + `,after:f` + Lorem (…) Impsum. + `})]}get optionBuilders(){return[]}};Ki=A([k.register],Ki);var Hs=class{},ji=class extends k{get OptionsClass(){return Hs}get name(){return"Re-Index Footnotes"}get description(){return"Re-indexes footnote keys and footnote, based on the order of occurrence (NOTE: This rule deliberately does *not* preserve the relation between key and footnote, to be able to re-index duplicate keys.)"}get type(){return"Footnote"}apply(t,n){return D([S.code,S.yaml,S.link,S.wikiLink,S.tag],t,i=>{let r=0;return i=i.replace(/^\[\^\w+\]: /gm,function(){return r++,"[^"+String(r)+"]: "}),r=0,i=i.replace(/(?!^)\[\^\w+\]/gm,function(){return r++,"[^"+String(r)+"]"}),i})}get exampleBuilders(){return[new v({description:"Re-indexing footnotes after having deleted previous footnotes",before:f` Lorem ipsum at aliquet felis.[^3] Donec dictum turpis quis pellentesque,[^5] et iaculis tortor condimentum. ${""} [^3]: first footnote [^5]: second footnote - `,after:y` + `,after:f` Lorem ipsum at aliquet felis.[^1] Donec dictum turpis quis pellentesque,[^2] et iaculis tortor condimentum. ${""} [^1]: first footnote [^2]: second footnote - `}),new T({description:"Re-indexing footnotes after inserting a footnote between",before:y` + `}),new v({description:"Re-indexing footnotes after inserting a footnote between",before:f` Lorem ipsum dolor sit amet, consectetur adipiscing elit.[^1] Aenean at aliquet felis. Donec dictum turpis quis ipsum pellentesque, et iaculis tortor condimentum.[^1a] Vestibulum nec blandit felis, vulputate finibus purus.[^2] Praesent quis iaculis diam. ${""} [^1]: first footnote [^1a]: third footnote, inserted later [^2]: second footnotes - `,after:y` + `,after:f` Lorem ipsum dolor sit amet, consectetur adipiscing elit.[^1] Aenean at aliquet felis. Donec dictum turpis quis ipsum pellentesque, et iaculis tortor condimentum.[^2] Vestibulum nec blandit felis, vulputate finibus purus.[^3] Praesent quis iaculis diam. ${""} [^1]: first footnote [^2]: third footnote, inserted later [^3]: second footnotes - `}),new T({description:"Re-indexing duplicate footnote keys",before:y` + `}),new v({description:"Re-indexing duplicate footnote keys",before:f` Lorem ipsum at aliquet felis.[^1] Donec dictum turpis quis pellentesque,[^1] et iaculis tortor condimentum. ${""} [^1]: first footnote [^1]: second footnote - `,after:y` + `,after:f` Lorem ipsum at aliquet felis.[^1] Donec dictum turpis quis pellentesque,[^2] et iaculis tortor condimentum. ${""} [^1]: first footnote [^2]: second footnote - `})]}get optionBuilders(){return[]}};Ei=B([A.register],Ei);var Kl=class{},Li=class extends A{get OptionsClass(){return Kl}get name(){return"Remove Consecutive List Markers"}get description(){return"Removes consecutive list markers. Useful when copy-pasting list items."}get type(){return"Content"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag],t,r=>r.replace(/^([ |\t]*)- - \b/gm,"$1- "))}get exampleBuilders(){return[new T({description:"Removing consecutive list markers.",before:y` + `})]}get optionBuilders(){return[]}};ji=A([k.register],ji);var Ys=class{},Vi=class extends k{get OptionsClass(){return Ys}get name(){return"Remove Consecutive List Markers"}get description(){return"Removes consecutive list markers. Useful when copy-pasting list items."}get type(){return"Content"}apply(t,n){return D([S.code,S.yaml,S.link,S.wikiLink,S.tag],t,i=>i.replace(/^([ |\t]*)- - \b/gm,"$1- "))}get exampleBuilders(){return[new v({description:"Removing consecutive list markers.",before:f` - item 1 - - copypasted item A - item 2 - indented item - - copypasted item B - `,after:y` + `,after:f` - item 1 - copypasted item A - item 2 - indented item - copypasted item B - `})]}get optionBuilders(){return[]}};Li=B([A.register],Li);var Yn=class extends A{get OptionsClass(){return Yn}get name(){return"Remove Empty Lines Between List Markers and Checklists"}get description(){return"There should not be any empty lines between list markers and checklists."}get type(){return"Spacing"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag,v.thematicBreak],t,r=>{let i=function(c,p,m){let f=new RegExp(`^${p} -{2,}${p}$`,"gm"),d,h=c;do d=h.match(f),h=h.replaceAll(f,m);while(d);return h};return r=i(r,"(( |\\t)*- \\[( |x)\\]( |\\t)+.+)",`$1 -$5`),r=i(r,"(( |\\t)*\\d+\\.( |\\t)+.+)",`$1 -$4`),r=i(r,"(( |\\t)*\\+( |\\t)+.+)",`$1 -$4`),r=i(r,"(( |\\t)*-(?! \\[( |x)\\])( |\\t)+.+)",`$1 -$5`),i(r,"(( |\\t)*\\*( |\\t)+.+)",`$1 -$4`)})}get exampleBuilders(){return[new T({description:"",before:y` + `})]}get optionBuilders(){return[]}};Vi=A([k.register],Vi);var ln=class extends k{get OptionsClass(){return ln}get name(){return"Remove Empty Lines Between List Markers and Checklists"}get description(){return"There should not be any empty lines between list markers and checklists."}get type(){return"Spacing"}apply(t,n){return D([S.code,S.yaml,S.link,S.wikiLink,S.tag,S.thematicBreak],t,i=>{let r=function(p,m,c){let d=new RegExp(`^${m} +{2,}${m}$`,"gm"),h,g=p;do h=g.match(d),g=g.replaceAll(d,c);while(h);return g};return i=r(i,"(( |\\t)*- \\[( |x)\\]( |\\t)+.+)",`$1 +$5`),i=r(i,"(( |\\t)*\\d+\\.( |\\t)+.+)",`$1 +$4`),i=r(i,"(( |\\t)*\\+( |\\t)+.+)",`$1 +$4`),i=r(i,"(( |\\t)*-(?! \\[( |x)\\])( |\\t)+.+)",`$1 +$5`),r(i,"(( |\\t)*\\*( |\\t)+.+)",`$1 +$4`)})}get exampleBuilders(){return[new v({description:"",before:f` 1. Item 1 ${""} 2. Item 2 @@ -1164,7 +1314,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` \t* Subitem 1 ${""} * Item 2 - `,after:y` + `,after:f` 1. Item 1 2. Item 2 ${""} @@ -1183,7 +1333,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` * Item 1 \t* Subitem 1 * Item 2 - `})]}get optionBuilders(){return[]}};Yn=B([A.register],Yn);var Wl=class{},_i=class extends A{get OptionsClass(){return Wl}get name(){return"Remove Empty List Markers"}get description(){return"Removes empty list markers, i.e. list items without content."}get type(){return"Content"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag],t,r=>{let i=/^\s*(>\s*)*(-|\*|\+|\d+[.)]|- (\[( |x)\]))\s*?$/gm;return r=r.replace(new RegExp(i.source+"\\n","gm"),""),r=r.replace(new RegExp("\\n"+i.source,"gm"),""),r.replace(i,"")})}get exampleBuilders(){return[new T({description:"Removes empty list markers.",before:y` + `})]}get optionBuilders(){return[]}};ln=A([k.register],ln);var zs=class{},Wi=class extends k{get OptionsClass(){return zs}get name(){return"Remove Empty List Markers"}get description(){return"Removes empty list markers, i.e. list items without content."}get type(){return"Content"}apply(t,n){return D([S.code,S.yaml,S.link,S.wikiLink,S.tag],t,i=>{let r=new RegExp(`^${_n}(-|\\*|\\+|\\d+[.)]|- (\\[( |x)\\]))\\s*?$`,"gm");return i=i.replace(new RegExp(r.source+"\\n","gm"),""),i=i.replace(new RegExp("\\n"+r.source,"gm"),""),i.replace(r,"")})}get exampleBuilders(){return[new v({description:"Removes empty list markers.",before:f` - item 1 - - item 2 @@ -1195,7 +1345,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` + list 3 item 1 + + list 3 item 2 - `,after:y` + `,after:f` - item 1 - item 2 ${""} @@ -1204,7 +1354,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` ${""} + list 3 item 1 + list 3 item 2 - `}),new T({description:"Removes empty ordered list markers.",before:y` + `}),new v({description:"Removes empty ordered list markers.",before:f` 1. item 1 2. 3. item 2 @@ -1214,7 +1364,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` 3. ${""} ${""} _Note that this rule does not make sure that the ordered list is sequential after removal_ - `,after:y` + `,after:f` 1. item 1 3. item 2 ${""} @@ -1222,19 +1372,19 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` 2. list 2 item 2 ${""} _Note that this rule does not make sure that the ordered list is sequential after removal_ - `}),new T({description:"Removes empty checklist markers.",before:y` + `}),new v({description:"Removes empty checklist markers.",before:f` - [ ] item 1 - [x] - [ ] item 2 - [ ] ${""} ${""} _Note that this will affect checked and uncheck checked list items_ - `,after:y` + `,after:f` - [ ] item 1 - [ ] item 2 ${""} _Note that this will affect checked and uncheck checked list items_ - `}),new T({description:"Removes empty list, checklist, and ordered list markers in callouts/blockquotes",before:y` + `}),new v({description:"Removes empty list, checklist, and ordered list markers in callouts/blockquotes",before:f` > Checklist in blockquote > - [ ] item 1 > - [x] @@ -1264,7 +1414,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` > + item 1 > + > + item 2 - `,after:y` + `,after:f` > Checklist in blockquote > - [ ] item 1 > - [ ] item 2 @@ -1287,11 +1437,36 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` > > + item 1 > + item 2 - `})]}get optionBuilders(){return[]}};_i=B([A.register],_i);var Ul=class{},Ii=class extends A{get OptionsClass(){return Ul}get name(){return"Remove Hyphenated Line Breaks"}get description(){return"Removes hyphenated line breaks. Useful when pasting text from textbooks."}get type(){return"Content"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag],t,r=>r.replace(/\b[-‐] \b/g,""))}get exampleBuilders(){return[new T({description:"Removing hyphenated line breaks.",before:y` + `})]}get optionBuilders(){return[]}};Wi=A([k.register],Wi);var qs=class{},Ui=class extends k{get OptionsClass(){return qs}get name(){return"Remove Hyphenated Line Breaks"}get description(){return"Removes hyphenated line breaks. Useful when pasting text from textbooks."}get type(){return"Content"}apply(t,n){return D([S.code,S.yaml,S.link,S.wikiLink,S.tag],t,i=>i.replace(/\b[-‐] \b/g,""))}get exampleBuilders(){return[new v({description:"Removing hyphenated line breaks.",before:f` This text has a linebr‐ eak. - `,after:y` + `,after:f` This text has a linebreak. - `})]}get optionBuilders(){return[]}};Ii=B([A.register],Ii);var Gl=class{},Mi=class extends A{get OptionsClass(){return Gl}get name(){return"Remove link spacing"}get description(){return"Removes spacing around link text."}get type(){return"Spacing"}apply(t,n){return t=wf(t),fc(t)}get exampleBuilders(){return[new T({description:"Space in regular markdown link text",before:y` + `})]}get optionBuilders(){return[]}};Ui=A([k.register],Ui);var Ks=class{},un=class extends k{get OptionsClass(){return Ks}get name(){return"Remove Hyphens on Paste"}get description(){return"Removes hyphens from the text to paste"}get type(){return"Paste"}apply(t,n){return t.replace(/(\S)[-‐]\s+\n?(?=\w)/g,"$1")}get exampleBuilders(){return[new v({description:"Remove hyphen in content to paste",before:f` + Text that was cool but hyper- + tension made it uncool. + `,after:f` + Text that was cool but hypertension made it uncool. + `})]}get optionBuilders(){return[]}};un=A([k.register],un);var js=class{},pn=class extends k{get OptionsClass(){return js}get name(){return"Remove Leading or Trailing Whitespace on Paste"}get description(){return"Removes any leading non-tab whitespace and all trailing whitespace for the text to paste"}get type(){return"Paste"}apply(t,n){return t.replace(/^[\n ]+|\s+$/g,"")}get exampleBuilders(){return[new v({description:"Removes leading spaces and newline characters",before:f` + ${""} + ${""} + This text was really indented + ${""} + `,after:f` + This text was really indented + `}),new v({description:"Leaves leading tabs alone",before:f` + ${""} + ${""} + \t\tThis text is really indented + ${""} + `,after:" This text is really indented"})]}get optionBuilders(){return[]}};pn=A([k.register],pn);var Vs=class{},cn=class extends k{get OptionsClass(){return Vs}get name(){return"Remove Leftover Footnotes from Quote on Paste"}get description(){return"Removes any leftover footnote references for the text to paste"}get type(){return"Paste"}apply(t,n){return t.replace(/(\D)[.,]\d+/g,"$1")}get exampleBuilders(){return[new v({description:"Footnote reference removed",before:f` + He was sure that he would get off without doing any time, but the cops had other plans.50 + ${""} + _Note that the format for footnote references to move is a dot or comma followed by any number of digits_ + `,after:f` + He was sure that he would get off without doing any time, but the cops had other plans + ${""} + _Note that the format for footnote references to move is a dot or comma followed by any number of digits_ + `})]}get optionBuilders(){return[]}};cn=A([k.register],cn);var Ws=class{},Gi=class extends k{get OptionsClass(){return Ws}get name(){return"Remove link spacing"}get description(){return"Removes spacing around link text."}get type(){return"Spacing"}apply(t,n){return t=mu(t),dl(t)}get exampleBuilders(){return[new v({description:"Space in regular markdown link text",before:f` [ here is link text1 ](link_here) [ here is link text2](link_here) [here is link text3 ](link_here) @@ -1300,7 +1475,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` [](link_here) **Note that image markdown syntax does not get affected even if it is transclusion:** ![\there is link text6 ](link_here) - `,after:y` + `,after:f` [here is link text1](link_here) [here is link text2](link_here) [here is link text3](link_here) @@ -1309,7 +1484,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` [](link_here) **Note that image markdown syntax does not get affected even if it is transclusion:** ![\there is link text6 ](link_here) - `}),new T({description:"Space in wiki link text",before:y` + `}),new v({description:"Space in wiki link text",before:f` [[link_here| here is link text1 ]] [[link_here|here is link text2 ]] [[link_here| here is link text3]] @@ -1317,7 +1492,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` [[link_here|\there is link text5\t]] ![[link_here|\there is link text6\t]] [[link_here]] - `,after:y` + `,after:f` [[link_here|here is link text1]] [[link_here|here is link text2]] [[link_here|here is link text3]] @@ -1325,11 +1500,32 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` [[link_here|here is link text5]] ![[link_here|here is link text6]] [[link_here]] - `})]}get optionBuilders(){return[]}};Mi=B([A.register],Mi);var Zl=class{},Bi=class extends A{get OptionsClass(){return Zl}get name(){return"Remove Multiple Spaces"}get description(){return"Removes two or more consecutive spaces. Ignores spaces at the beginning and ending of the line. "}get type(){return"Content"}apply(t,n){return $([v.table,v.code,v.yaml,v.link,v.wikiLink,v.tag],t,r=>r.replace(/(?!^>)([^\s])( ){2,}([^\s])/gm,"$1 $3"))}get exampleBuilders(){return[new T({description:"Removing double and triple space.",before:y` + `})]}get optionBuilders(){return[]}};Gi=A([k.register],Gi);var Us=class{},mn=class extends k{get OptionsClass(){return Us}get name(){return"Remove Multiple Blank Lines on Paste"}get description(){return"Condenses multiple blank lines down into one blank line for the text to paste"}get type(){return"Paste"}apply(t,n){return t.replace(/\n{3,}/g,` + +`)}get exampleBuilders(){return[new v({description:"Multiple blanks lines condensed down to one",before:f` + Here is the first line. + ${""} + ${""} + ${""} + ${""} + Here is some more text. + `,after:f` + Here is the first line. + ${""} + Here is some more text. + `}),new v({description:"Text with only one blank line in a row is left alone",before:f` + First line. + ${""} + Last line. + `,after:f` + First line. + ${""} + Last line. + `})]}get optionBuilders(){return[]}};mn=A([k.register],mn);var Gs=class{},Zi=class extends k{get OptionsClass(){return Gs}get name(){return"Remove Multiple Spaces"}get description(){return"Removes two or more consecutive spaces. Ignores spaces at the beginning and ending of the line. "}get type(){return"Content"}apply(t,n){return D([S.table,S.code,S.yaml,S.link,S.wikiLink,S.tag],t,i=>i.replace(/(?!^>)([^\s])( ){2,}([^\s])/gm,"$1 $3"))}get exampleBuilders(){return[new v({description:"Removing double and triple space.",before:f` Lorem ipsum dolor sit amet. - `,after:y` + `,after:f` Lorem ipsum dolor sit amet. - `})]}get optionBuilders(){return[]}};Bi=B([A.register],Bi);var Ql=class{},Fi=class extends A{get OptionsClass(){return Ql}get name(){return"Remove Space around Fullwidth Characters"}get description(){return"Ensures that fullwidth characters are not followed by whitespace (either single spaces or a tab). Note that this may causes issues with markdown format in some cases."}get type(){return"Spacing"}apply(t,n){let r=/([ \t])+([\u2013\u2014\u2026\u3001\u3002\u300a\u300d-\u300f\u3014\u3015\u3008-\u3011\uff00-\uffff])/g,i=/([\u2013\u2014\u2026\u3001\u3002\u300a\u300d-\u300f\u3014\u3015\u3008-\u3011\uff00-\uffff])([ \t])+/g,o=function(s){return s.replace(r,"$2").replace(i,"$1")},a=$([v.code,v.yaml,v.link,v.wikiLink,v.tag,v.list],t,o);return a=vf(a,o),a}get exampleBuilders(){return[new T({description:"Remove Spaces and Tabs around Fullwidth Characters",before:y` + `})]}get optionBuilders(){return[]}};Zi=A([k.register],Zi);var Zs=class{},Qi=class extends k{get OptionsClass(){return Zs}get name(){return"Remove Space around Fullwidth Characters"}get description(){return"Ensures that fullwidth characters are not followed by whitespace (either single spaces or a tab). Note that this may causes issues with markdown format in some cases."}get type(){return"Spacing"}apply(t,n){let i=/([ \t])+([\u2013\u2014\u2026\u3001\u3002\u300a\u300d-\u300f\u3014\u3015\u3008-\u3011\uff00-\uffff])/g,r=/([\u2013\u2014\u2026\u3001\u3002\u300a\u300d-\u300f\u3014\u3015\u3008-\u3011\uff00-\uffff])([ \t])+/g,o=function(a){return a.replace(i,"$2").replace(r,"$1")},s=D([S.code,S.yaml,S.link,S.wikiLink,S.tag,S.list],t,o);return s=hu(s,o),s}get exampleBuilders(){return[new v({description:"Remove Spaces and Tabs around Fullwidth Characters",before:f` Full list of affected characters: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,.:;!?"'`^~ ̄_&@#%+-*=<>()[]{}⦅⦆|¦/\¬$£¢₩¥。、「」『』〔〕【】—…–《》〈〉 This is a fullwidth period\t 。 with text after it. This is a fullwidth comma\t, with text after it. @@ -1338,7 +1534,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` This is a fullwidth colon : with text after it. This is a fullwidth semicolon ; with text after it. Removes space at start of line - `,after:y` + `,after:f` Full list of affected characters:0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,.:;!?"'`^~ ̄_&@#%+-*=<>()[]{}⦅⦆|¦/\¬$£¢₩¥。、「」『』〔〕【】—…–《》〈〉 This is a fullwidth period。with text after it. This is a fullwidth comma,with text after it. @@ -1347,7 +1543,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` This is a fullwidth colon:with text after it. This is a fullwidth semicolon;with text after it. Removes space at start of line - `}),new T({description:"Fullwidth Characters in List Do not Affect List Markdown Syntax",before:y` + `}),new v({description:"Fullwidth Characters in List Do not Affect List Markdown Syntax",before:f` # List indicators should not have the space after them removed if they are followed by a fullwidth character ${""} - [ contents here] @@ -1369,7 +1565,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` > > - \t[ more contents here] more text here > > + \t[ another item here] > > * [ one last item here] - `,after:y` + `,after:f` # List indicators should not have the space after them removed if they are followed by a fullwidth character ${""} - [contents here] @@ -1391,7 +1587,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` > > - [more contents here]more text here > > + [another item here] > > * [one last item here] - `})]}get optionBuilders(){return[]}};Fi=B([A.register],Fi);var Ta=class{constructor(){this.yamlKeysToRemove=[]}},Ri=class extends A{get OptionsClass(){return Ta}get name(){return"Remove YAML Keys"}get description(){return"Removes the YAML keys specified"}get type(){return"YAML"}apply(t,n){let r=n.yamlKeysToRemove,i=t.match(Ie);if(!i||r.length===0)return t;let o=i[1];for(let a of r){let s=a.trim();s.endsWith(":")&&(s=s.substring(0,s.length-1)),o=Sn(o,s)}return t.replace(i[1],o)}get exampleBuilders(){return[new T({description:'Removes the values specified in `YAML Keys to Remove` = "status:\nkeywords\ndate"',before:y` + `})]}get optionBuilders(){return[]}};Qi=A([k.register],Qi);var ho=class{constructor(){this.yamlKeysToRemove=[]}},Xi=class extends k{get OptionsClass(){return ho}get name(){return"Remove YAML Keys"}get description(){return"Removes the YAML keys specified"}get type(){return"YAML"}apply(t,n){let i=n.yamlKeysToRemove,r=t.match(ke);if(!r||i.length===0)return t;let o=r[1];for(let s of i){let a=s.trim();a.endsWith(":")&&(a=a.substring(0,a.length-1)),o=Wt(o,a)}return t.replace(r[1],o)}get exampleBuilders(){return[new v({description:'Removes the values specified in `YAML Keys to Remove` = "status:\nkeywords\ndate"',before:f` --- language: Typescript type: programming @@ -1406,7 +1602,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` # Header Context ${""} Text - `,after:y` + `,after:f` --- language: Typescript type: programming @@ -1416,37 +1612,37 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` # Header Context ${""} Text - `,options:{yamlKeysToRemove:["status:","keywords","date"]}})]}get optionBuilders(){return[new Re({OptionsClass:Ta,name:"YAML Keys to Remove",description:"The yaml keys to remove from the yaml frontmatter with or without colons",optionsKey:"yamlKeysToRemove"})]}};Ri=B([A.register],Ri);var Xl=class{},Di=class extends A{get OptionsClass(){return Xl}get name(){return"Space after list markers"}get description(){return"There should be a single space after list markers and checkboxes."}get type(){return"Spacing"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag],t,r=>(r=r.replace(/^(\s*\d+\.|\s*[-+*])[^\S\r\n]+/gm,"$1 "),r.replace(/^(\s*\d+\.|\s*[-+*]\s+\[[ xX]\])[^\S\r\n]+/gm,"$1 ")))}get exampleBuilders(){return[new T({description:"",before:y` + `,options:{yamlKeysToRemove:["status:","keywords","date"]}})]}get optionBuilders(){return[new Ae({OptionsClass:ho,name:"YAML Keys to Remove",description:"The yaml keys to remove from the yaml frontmatter with or without colons",optionsKey:"yamlKeysToRemove"})]}};Xi=A([k.register],Xi);var Qs=class{},Ji=class extends k{get OptionsClass(){return Qs}get name(){return"Space after list markers"}get description(){return"There should be a single space after list markers and checkboxes."}get type(){return"Spacing"}apply(t,n){return D([S.code,S.yaml,S.link,S.wikiLink,S.tag],t,i=>(i=i.replace(/^(\s*\d+\.|\s*[-+*])[^\S\r\n]+/gm,"$1 "),i.replace(/^(\s*\d+\.|\s*[-+*]\s+\[[ xX]\])[^\S\r\n]+/gm,"$1 ")))}get exampleBuilders(){return[new v({description:"",before:f` 1. Item 1 2. Item 2 ${""} - [ ] Item 1 - [x] Item 2 \t- [ ] Item 3 - `,after:y` + `,after:f` 1. Item 1 2. Item 2 ${""} - [ ] Item 1 - [x] Item 2 \t- [ ] Item 3 - `})]}get optionBuilders(){return[]}};Di=B([A.register],Di);var Jl=class{},Pi=class extends A{get OptionsClass(){return Jl}get name(){return"Space between Chinese and English or numbers"}get description(){return"Ensures that Chinese and English or numbers are separated by a single space. Follows these [guidelines](https://github.com/sparanoid/chinese-copywriting-guidelines)"}get type(){return"Spacing"}apply(t,n){let r=/([\u4e00-\u9fa5])( *)(\[[^[]*\]\(.*\)|`[^`]*`|\w+|[-+'"([{¥$]|\*[^*])/gm,i=/(\[[^[]*\]\(.*\)|`[^`]*`|\w+|[-+;:'"°%$)\]}]|[^*]\*)( *)([\u4e00-\u9fa5])/gm,o=function(s){return s.replace(r,"$1 $3").replace(i,"$1 $3")},a=$([v.code,v.inlineCode,v.yaml,v.image,v.link,v.wikiLink,v.tag,v.italics,v.bold,v.math,v.inlineMath],t,o);return a=xf(a,o),a=kf(a,o),a}get exampleBuilders(){return[new T({description:"Space between Chinese and English",before:y` + `})]}get optionBuilders(){return[]}};Ji=A([k.register],Ji);var Xs=class{},er=class extends k{get OptionsClass(){return Xs}get name(){return"Space between Chinese and English or numbers"}get description(){return"Ensures that Chinese and English or numbers are separated by a single space. Follows these [guidelines](https://github.com/sparanoid/chinese-copywriting-guidelines)"}get type(){return"Spacing"}apply(t,n){let i=/([\u4e00-\u9fa5])( *)(\[[^[]*\]\(.*\)|`[^`]*`|\w+|[-+'"([{¥$]|\*[^*])/gm,r=/(\[[^[]*\]\(.*\)|`[^`]*`|\w+|[-+;:'"°%$)\]}]|[^*]\*)( *)([\u4e00-\u9fa5])/gm,o=function(a){return a.replace(i,"$1 $3").replace(r,"$1 $3")},s=D([S.code,S.inlineCode,S.yaml,S.image,S.link,S.wikiLink,S.tag,S.italics,S.bold,S.math,S.inlineMath],t,o);return s=du(s,o),s=fu(s,o),s}get exampleBuilders(){return[new v({description:"Space between Chinese and English",before:f` 中文字符串english中文字符串。 - `,after:y` + `,after:f` 中文字符串 english 中文字符串。 - `}),new T({description:"Space between Chinese and link",before:y` + `}),new v({description:"Space between Chinese and link",before:f` 中文字符串[english](http://example.com)中文字符串。 - `,after:y` + `,after:f` 中文字符串 [english](http://example.com) 中文字符串。 - `}),new T({description:"Space between Chinese and inline code block",before:y` + `}),new v({description:"Space between Chinese and inline code block",before:f` 中文字符串\`code\`中文字符串。 - `,after:y` + `,after:f` 中文字符串 \`code\` 中文字符串。 - `}),new T({description:"No space between Chinese and English in tag",before:y` + `}),new v({description:"No space between Chinese and English in tag",before:f` #标签A #标签2标签 - `,after:y` + `,after:f` #标签A #标签2标签 - `}),new T({description:"Make sure that spaces are not added between italics and chinese characters to preserve markdown syntax",before:y` + `}),new v({description:"Make sure that spaces are not added between italics and chinese characters to preserve markdown syntax",before:f` _这是一个数学公式_ *这是一个数学公式english* ${""} @@ -1454,7 +1650,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` ${""} **_这是一_个数学公式** *这是一hello__个数学world公式__* - `,after:y` + `,after:f` _这是一个数学公式_ *这是一个数学公式 english* ${""} @@ -1462,17 +1658,17 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` ${""} **_ 这是一 _ 个数学公式** *这是一 hello__ 个数学 world 公式 __* - `}),new T({description:"Images and links are ignored",before:y` + `}),new v({description:"Images and links are ignored",before:f` [[这是一个数学公式english]] ![[这是一个数学公式english.jpg]] [这是一个数学公式english](这是一个数学公式english.md) ![这是一个数学公式english](这是一个数学公式english.jpg) - `,after:y` + `,after:f` [[这是一个数学公式english]] ![[这是一个数学公式english.jpg]] [这是一个数学公式english](这是一个数学公式english.md) ![这是一个数学公式english](这是一个数学公式english.jpg) - `})]}get optionBuilders(){return[]}};Pi=B([A.register],Pi);var Ca=class{constructor(){this.style="consistent"}},Ni=class extends A{get OptionsClass(){return Ca}get name(){return"Strong Style"}get description(){return"Makes sure the strong style is consistent."}get type(){return"Content"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag,v.math,v.inlineMath],t,r=>la(r,n.style,"strong"))}get exampleBuilders(){return[new T({description:"Strong indicators should use underscores when style is set to 'underscore'",before:y` + `})]}get optionBuilders(){return[]}};er=A([k.register],er);var go=class{constructor(){this.style="consistent"}},tr=class extends k{get OptionsClass(){return go}get name(){return"Strong Style"}get description(){return"Makes sure the strong style is consistent."}get type(){return"Content"}apply(t,n){return D([S.code,S.yaml,S.link,S.wikiLink,S.tag,S.math,S.inlineMath],t,i=>io(i,n.style,"strong"))}get exampleBuilders(){return[new v({description:"Strong indicators should use underscores when style is set to 'underscore'",before:f` # Strong/Bold Cases ${""} **Test bold** @@ -1487,7 +1683,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` ${""} * List Item1 with **bold text** * List Item2 - `,after:y` + `,after:f` # Strong/Bold Cases ${""} __Test bold__ @@ -1502,7 +1698,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` ${""} * List Item1 with __bold text__ * List Item2 - `,options:{style:"underscore"}}),new T({description:"Strong indicators should use asterisks when style is set to 'asterisk'",before:y` + `,options:{style:"underscore"}}),new v({description:"Strong indicators should use asterisks when style is set to 'asterisk'",before:f` # Strong/Bold Cases ${""} __Test bold__ @@ -1514,7 +1710,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` This is ___nested emphasis_ and ending bold__ ${""} _Test emphasis_ - `,after:y` + `,after:f` # Strong/Bold Cases ${""} **Test bold** @@ -1526,7 +1722,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` This is **_nested emphasis_ and ending bold** ${""} _Test emphasis_ - `,options:{style:"asterisk"}}),new T({description:"Strong indicators should use consistent style based on first strong indicator in a file when style is set to 'consistent'",before:y` + `,options:{style:"asterisk"}}),new v({description:"Strong indicators should use consistent style based on first strong indicator in a file when style is set to 'consistent'",before:f` # Strong First Strong Is an Asterisk ${""} **First bold** @@ -1537,7 +1733,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` This is **_nested emphasis_ and ending bold** ${""} __Test bold__ - `,after:y` + `,after:f` # Strong First Strong Is an Asterisk ${""} **First bold** @@ -1548,7 +1744,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` This is **_nested emphasis_ and ending bold** ${""} **Test bold** - `,options:{style:"consistent"}}),new T({description:"Strong indicators should use consistent style based on first strong indicator in a file when style is set to 'consistent'",before:y` + `,options:{style:"consistent"}}),new v({description:"Strong indicators should use consistent style based on first strong indicator in a file when style is set to 'consistent'",before:f` # Strong First Strong Is an Underscore ${""} __First bold__ @@ -1559,7 +1755,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` This is ___nested emphasis_ and ending bold__ ${""} **Test bold** - `,after:y` + `,after:f` # Strong First Strong Is an Underscore ${""} __First bold__ @@ -1570,19 +1766,19 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` This is ___nested emphasis_ and ending bold__ ${""} __Test bold__ - `,options:{style:"consistent"}})]}get optionBuilders(){return[new de({OptionsClass:Ca,name:"Style",description:"The style used to denote strong/bolded content",optionsKey:"style",records:[{value:"consistent",description:"Makes sure the first instance of strong is the style that will be used throughout the document"},{value:"asterisk",description:"Makes sure ** is the strong indicator"},{value:"underscore",description:"Makes sure __ is the strong indicator"}]})]}};Ni=B([A.register],Ni);var Aa=class{constructor(){this.twoSpaceLineBreak=!1}},zi=class extends A{get OptionsClass(){return Aa}get name(){return"Trailing spaces"}get description(){return"Removes extra spaces after every line."}get type(){return"Spacing"}apply(t,n){return $([v.code,v.yaml,v.link,v.wikiLink,v.tag],t,r=>n.twoSpaceLineBreak?(r=r.replace(/(\S)[ \t]$/gm,"$1"),r=r.replace(/(\S)[ \t]{3,}$/gm,"$1"),r=r.replace(/(\S)( ?\t\t? ?)$/gm,"$1"),r):r.replace(/[ \t]+$/gm,""))}get exampleBuilders(){return[new T({description:"Removes trailing spaces and tabs.",before:y` + `,options:{style:"consistent"}})]}get optionBuilders(){return[new ye({OptionsClass:go,name:"Style",description:"The style used to denote strong/bolded content",optionsKey:"style",records:[{value:"consistent",description:"Makes sure the first instance of strong is the style that will be used throughout the document"},{value:"asterisk",description:"Makes sure ** is the strong indicator"},{value:"underscore",description:"Makes sure __ is the strong indicator"}]})]}};tr=A([k.register],tr);var yo=class{constructor(){this.twoSpaceLineBreak=!1}},nr=class extends k{get OptionsClass(){return yo}get name(){return"Trailing spaces"}get description(){return"Removes extra spaces after every line."}get type(){return"Spacing"}apply(t,n){return D([S.code,S.yaml,S.link,S.wikiLink,S.tag],t,i=>n.twoSpaceLineBreak?(i=i.replace(/(\S)[ \t]$/gm,"$1"),i=i.replace(/(\S)[ \t]{3,}$/gm,"$1"),i=i.replace(/(\S)( ?\t\t? ?)$/gm,"$1"),i):i.replace(/[ \t]+$/gm,""))}get exampleBuilders(){return[new v({description:"Removes trailing spaces and tabs.",before:f` # H1 Line with trailing spaces and tabs. ${""} - `,after:y` + `,after:f` # H1 Line with trailing spaces and tabs. - `}),new T({description:"With `Two Space Linebreak = true`",before:y` + `}),new v({description:"With `Two Space Linebreak = true`",before:f` # H1 Line with trailing spaces and tabs. ${""} - `,after:y` + `,after:f` # H1 Line with trailing spaces and tabs. ${""} - `,options:{twoSpaceLineBreak:!0}})]}get optionBuilders(){return[new se({OptionsClass:Aa,name:"Two Space Linebreak",description:'Ignore two spaces followed by a line break ("Two Space Rule").',optionsKey:"twoSpaceLineBreak"})]}};zi=B([A.register],zi);var eu=class{},$i=class extends A{get OptionsClass(){return eu}get name(){return"Two Spaces Between Lines with Content"}get description(){return"Makes sure that two spaces are added to the ends of lines with content continued on the next line for paragraphs, blockquotes, and list items"}get type(){return"Content"}apply(t,n){return $([v.obsidianMultiLineComments,v.yaml],t,yf)}get exampleBuilders(){return[new T({description:"Make sure two spaces are added to the ends of lines that have content on it and the next line for lists, blockquotes, and paragraphs",before:y` + `,options:{twoSpaceLineBreak:!0}})]}get optionBuilders(){return[new te({OptionsClass:yo,name:"Two Space Linebreak",description:'Ignore two spaces followed by a line break ("Two Space Rule").',optionsKey:"twoSpaceLineBreak"})]}};nr=A([k.register],nr);var Js=class{},ir=class extends k{get OptionsClass(){return Js}get name(){return"Two Spaces Between Lines with Content"}get description(){return"Makes sure that two spaces are added to the ends of lines with content continued on the next line for paragraphs, blockquotes, and list items"}get type(){return"Content"}apply(t,n){return D([S.obsidianMultiLineComments,S.yaml,S.table],t,pu)}get exampleBuilders(){return[new v({description:"Make sure two spaces are added to the ends of lines that have content on it and the next line for lists, blockquotes, and paragraphs",before:f` # Heading 1 First paragraph stays as the first paragraph ${""} @@ -1621,7 +1817,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` Even more content here ${""} - `,after:y` + `,after:f` # Heading 1 First paragraph stays as the first paragraph ${""} @@ -1660,7 +1856,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` Even more content here ${""} - `})]}get optionBuilders(){return[]}};$i=B([A.register],$i);var Ea=class{constructor(){this.listStyle="consistent"}},Hi=class extends A{get OptionsClass(){return Ea}get name(){return"Unordered List Style"}get description(){return"Makes sure that unordered lists follow the style specified."}get type(){return"Content"}apply(t,n){return $([v.code,v.yaml,v.tag],t,r=>Af(r,n.listStyle))}get exampleBuilders(){return[new T({description:"Unordered lists have their indicator updated to `*` when `List item style = 'consistent'` and `*` is the first unordered list indicator",before:y` + `})]}get optionBuilders(){return[]}};ir=A([k.register],ir);var bo=class{constructor(){this.listStyle="consistent"}},rr=class extends k{get OptionsClass(){return bo}get name(){return"Unordered List Style"}get description(){return"Makes sure that unordered lists follow the style specified."}get type(){return"Content"}apply(t,n){return D([S.code,S.yaml,S.tag],t,i=>xu(i,n.listStyle))}get exampleBuilders(){return[new v({description:"Unordered lists have their indicator updated to `*` when `List item style = 'consistent'` and `*` is the first unordered list indicator",before:f` 1. ordered item 1 2. ordered item 2 ${""} @@ -1678,7 +1874,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` * Sublist 3 item 1 * Sublist 3 item 2 ${""} - `,after:y` + `,after:f` 1. ordered item 1 2. ordered item 2 ${""} @@ -1696,7 +1892,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` * Sublist 3 item 1 * Sublist 3 item 2 ${""} - `}),new T({description:"Unordered lists have their indicator updated to `-` when `List item style = '-'`",before:y` + `}),new v({description:"Unordered lists have their indicator updated to `-` when `List item style = '-'`",before:f` - Item 1 * Sublist 1 item 1 * Sublist 1 item 2 @@ -1715,7 +1911,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` * Sub item 2 1. Item 3 + Sub item 3 - `,after:y` + `,after:f` - Item 1 - Sublist 1 item 1 - Sublist 1 item 2 @@ -1734,7 +1930,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` - Sub item 2 1. Item 3 - Sub item 3 - `,options:{listStyle:"-"}}),new T({description:"Unordered lists have their indicator updated to `*` when `List item style = '*'`",before:y` + `,options:{listStyle:"-"}}),new v({description:"Unordered lists have their indicator updated to `*` when `List item style = '*'`",before:f` - Item 1 * Sublist 1 item 1 * Sublist 1 item 2 @@ -1745,7 +1941,7 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` - Sublist 3 item 1 - Sublist 3 item 2 ${""} - `,after:y` + `,after:f` * Item 1 * Sublist 1 item 1 * Sublist 1 item 2 @@ -1756,24 +1952,24 @@ $4`)})}get exampleBuilders(){return[new T({description:"",before:y` * Sublist 3 item 1 * Sublist 3 item 2 ${""} - `,options:{listStyle:"*"}}),new T({description:"Unordered list in blockquote has list item indicators set to `+` when `List item style = '-'`",before:y` + `,options:{listStyle:"*"}}),new v({description:"Unordered list in blockquote has list item indicators set to `+` when `List item style = '-'`",before:f` > - Item 1 > + Item 2 > > * Subitem 1 > > + Subitem 2 > > - Sub sub item 1 > > - Subitem 3 - `,after:y` + `,after:f` > + Item 1 > + Item 2 > > + Subitem 1 > > + Subitem 2 > > + Sub sub item 1 > > + Subitem 3 - `,options:{listStyle:"+"}})]}get optionBuilders(){return[new de({OptionsClass:Ea,name:"List item style",description:"The list item style to use in unordered lists",optionsKey:"listStyle",records:[{value:"consistent",description:"Makes sure unordered list items use a consistent list item indicator in the file which will be based on the first list item found"},{value:"-",description:"Makes sure unordered list items use `-` as their indicator"},{value:"*",description:"Makes sure unordered list items use `*` as their indicator"},{value:"+",description:"Makes sure unordered list items use `+` as their indicator"}]})]}};Hi=B([A.register],Hi);var Ut=class{constructor(){this.priorityKeysAtStartOfYaml=!0;this.yamlKeyPrioritySortOrder=[];this.yamlSortOrderForOtherKeys="None"}};B([A.noSettingControl()],Ut.prototype,"dateModifiedKey",2),B([A.noSettingControl()],Ut.prototype,"currentTimeFormatted",2),B([A.noSettingControl()],Ut.prototype,"yamlTimestampDateModifiedEnabled",2);var jn=class extends A{get OptionsClass(){return Ut}get name(){return"YAML Key Sort"}get description(){return"Sorts the YAML keys based on the order and priority specified. Note: may remove blank lines as well."}get type(){return"YAML"}apply(t,n){let r=t.match(Ie);if(!r)return t;let i=r[1],o=n.priorityKeysAtStartOfYaml,a=function(S,E){return S==E?E:Me(E,n.dateModifiedKey," "+n.currentTimeFormatted)},s=function(S,E,I){let k=`${E}${S}`;return I&&(k=`${S}${E}`),n.yamlTimestampDateModifiedEnabled&&(k=a(r[1],k)),t.replace(r[1],k)},l=function(S,E){let I="";for(let k of E){let _=Be(S,k);_!==null&&(_.includes(` -`)?I+=`${k}:${_} -`:I+=`${k}: ${_} -`,S=Sn(S,k))}return{remainingYaml:S,sortedYamlKeyValues:I}},u=n.yamlKeyPrioritySortOrder,c=l(i,u),p=c.sortedYamlKeyValues;i=c.remainingYaml;let m=n.yamlSortOrderForOtherKeys,f=ht(i);if(f==null)return s(p,i,o);let d=function(S,E){return S=S.toLowerCase(),E=E.toLowerCase(),S>E?-1:E>S?1:0},h=function(S,E){return S=S.toLowerCase(),E=E.toLowerCase(),SE?-1:E>O?1:0},g=function(O,E){return O=O.toLowerCase(),E=E.toLowerCase(),O{let a=` + `,options:{yamlKeyPrioritySortOrder:["date","type","language"],yamlSortOrderForOtherKeys:"Descending Alphabetical",priorityKeysAtStartOfYaml:!1}})]}get optionBuilders(){return[new Ae({OptionsClass:St,name:"YAML Key Priority Sort Order",description:"The order in which to sort keys with one on each line where it sorts in the order found in the list",optionsKey:"yamlKeyPrioritySortOrder"}),new te({OptionsClass:St,name:"Priority Keys at Start of YAML",description:"YAML Key Priority Sort Order is placed at the start of the YAML frontmatter",optionsKey:"priorityKeysAtStartOfYaml"}),new ye({OptionsClass:St,name:"YAML Sort Order for Other Keys",description:"The way in which to sort the keys that are not found in the YAML Key Priority Sort Order text area",optionsKey:"yamlSortOrderForOtherKeys",records:[{value:"None",description:"No sorting other than what is in the YAML Key Priority Sort Order text area"},{value:"Ascending Alphabetical",description:"Sorts the keys based on key value from a to z"},{value:"Descending Alphabetical",description:"Sorts the keys based on key value from z to a"}]})]}get hasSpecialExecutionOrder(){return!0}};dn=A([k.register],dn);var Tt=require("obsidian");var Qe=class{constructor(){this.dateCreatedKey="date created";this.dateCreated=!0;this.format="dddd, MMMM Do YYYY, h:mm:ss a";this.dateModified=!0;this.dateModifiedKey="date modified";this.locale="en"}};A([k.noSettingControl()],Qe.prototype,"alreadyModified",2),A([k.noSettingControl()],Qe.prototype,"fileCreatedTime",2),A([k.noSettingControl()],Qe.prototype,"fileModifiedTime",2),A([k.noSettingControl()],Qe.prototype,"locale",2),A([k.noSettingControl()],Qe.prototype,"currentTime",2);var Pt=class extends k{get OptionsClass(){return Qe}get name(){return"YAML Timestamp"}get description(){return"Keep track of the date the file was last edited in the YAML front matter. Gets dates from file metadata."}get type(){return"YAML"}apply(t,n){let i=n.alreadyModified,r=ft(t);return i=i||r!==t,Se(r,o=>{let s=` ${n.dateCreatedKey}: [^ ]+ -`,s=` +`,a=` ${n.dateCreatedKey}:[ ]* -`,l=new RegExp(s),u=new RegExp(a);if(n.dateCreated){let c=(0,Gt.moment)(n.fileCreatedTime);c.locale(n.locale);let p=c.format(n.format),m=` -${n.dateCreatedKey}: ${p}`,f=u.test(o);if(!f&&l.test(o))o=o.replace(l,je(m)+` -`),r=!0;else if(f){if(f){let d=(0,Gt.moment)(o.match(u)[0].replace(n.dateCreatedKey+":","").trim(),n.format,n.locale,!0);(d==null||!d.isValid())&&(o=o.replace(u,je(m)+` -`),r=!0)}}else{let d=o.indexOf(` ----`);o=On(o,d,` -${n.dateCreatedKey}: ${p}`),r=!0}}if(n.dateModified){let c=` +`,l=new RegExp(a),u=new RegExp(s);if(n.dateCreated){let p=(0,Tt.moment)(n.fileCreatedTime);p.locale(n.locale);let m=p.format(n.format),c=` +${n.dateCreatedKey}: ${m}`,d=u.test(o);if(!d&&l.test(o))o=o.replace(l,$e(c)+` +`),i=!0;else if(d){if(d){let h=(0,Tt.moment)(o.match(u)[0].replace(n.dateCreatedKey+":","").trim(),n.format,n.locale,!0);(h==null||!h.isValid())&&(o=o.replace(u,$e(c)+` +`),i=!0)}}else{let h=o.indexOf(` +---`);o=jt(o,h,` +${n.dateCreatedKey}: ${m}`),i=!0}}if(n.dateModified){let p=` ${n.dateModifiedKey}: [^ ]+ -`,p=` +`,m=` ${n.dateModifiedKey}:[ ]* -`,m=new RegExp(p),f=new RegExp(c),d=(0,Gt.moment)(n.fileModifiedTime);d.locale(n.locale);let h=n.currentTime.format(n.format),g=` -${n.dateModifiedKey}: ${h}`,b=f.test(o);if(b){let O=(0,Gt.moment)(o.match(f)[0].replace(n.dateModifiedKey+":","").trim(),n.format,n.locale,!0);(r||O==null||!O.isValid()||Math.abs(O.diff(d,"seconds"))>5)&&(o=o.replace(f,je(g)+` -`))}else if(m.test(o))o=o.replace(m,je(g)+` -`);else if(!b){let O=o.indexOf(` ----`);o=On(o,O,g)}}return o})}get exampleBuilders(){return[new T({description:"Adds a header with the date.",before:y` +`,c=new RegExp(m),d=new RegExp(p),h=(0,Tt.moment)(n.fileModifiedTime);h.locale(n.locale);let g=n.currentTime.format(n.format),x=` +${n.dateModifiedKey}: ${g}`,b=d.test(o);if(b){let C=(0,Tt.moment)(o.match(d)[0].replace(n.dateModifiedKey+":","").trim(),n.format,n.locale,!0);(i||C==null||!C.isValid()||Math.abs(C.diff(h,"seconds"))>5)&&(o=o.replace(d,$e(x)+` +`))}else if(c.test(o))o=o.replace(c,$e(x)+` +`);else if(!b){let C=o.indexOf(` +---`);o=jt(o,C,x)}}return o})}get exampleBuilders(){return[new v({description:"Adds a header with the date.",before:f` # H1 - `,after:y` + `,after:f` --- date created: Wednesday, January 1st 2020, 12:00:00 am date modified: Thursday, January 2nd 2020, 12:00:05 am --- # H1 - `,options:{fileCreatedTime:"2020-01-01T00:00:00-00:00",fileModifiedTime:"2020-01-02T00:00:00-00:00",currentTime:(0,Gt.moment)("Thursday, January 2nd 2020, 12:00:05 am","dddd, MMMM Do YYYY, h:mm:ss a"),alreadyModified:!1}}),new T({description:"dateCreated option is false",before:y` + `,options:{fileCreatedTime:"2020-01-01T00:00:00-00:00",fileModifiedTime:"2020-01-02T00:00:00-00:00",currentTime:(0,Tt.moment)("Thursday, January 2nd 2020, 12:00:05 am","dddd, MMMM Do YYYY, h:mm:ss a"),alreadyModified:!1}}),new v({description:"dateCreated option is false",before:f` # H1 - `,after:y` + `,after:f` --- date modified: Thursday, January 2nd 2020, 12:00:05 am --- # H1 - `,options:{dateCreated:!1,fileCreatedTime:"2020-01-01T00:00:00-00:00",fileModifiedTime:"2020-01-01T00:00:00-00:00",currentTime:(0,Gt.moment)("Thursday, January 2nd 2020, 12:00:05 am","dddd, MMMM Do YYYY, h:mm:ss a"),alreadyModified:!1}}),new T({description:"Date Created Key is set",before:y` + `,options:{dateCreated:!1,fileCreatedTime:"2020-01-01T00:00:00-00:00",fileModifiedTime:"2020-01-01T00:00:00-00:00",currentTime:(0,Tt.moment)("Thursday, January 2nd 2020, 12:00:05 am","dddd, MMMM Do YYYY, h:mm:ss a"),alreadyModified:!1}}),new v({description:"Date Created Key is set",before:f` # H1 - `,after:y` + `,after:f` --- created: Wednesday, January 1st 2020, 12:00:00 am --- # H1 - `,options:{dateCreated:!0,dateModified:!1,dateCreatedKey:"created",fileCreatedTime:"2020-01-01T00:00:00-00:00",currentTime:(0,Gt.moment)("Thursday, January 2nd 2020, 12:00:03 am","dddd, MMMM Do YYYY, h:mm:ss a"),alreadyModified:!1}}),new T({description:"Date Modified Key is set",before:y` + `,options:{dateCreated:!0,dateModified:!1,dateCreatedKey:"created",fileCreatedTime:"2020-01-01T00:00:00-00:00",currentTime:(0,Tt.moment)("Thursday, January 2nd 2020, 12:00:03 am","dddd, MMMM Do YYYY, h:mm:ss a"),alreadyModified:!1}}),new v({description:"Date Modified Key is set",before:f` # H1 - `,after:y` + `,after:f` --- modified: Wednesday, January 1st 2020, 4:00:00 pm --- # H1 - `,options:{dateCreated:!1,dateModified:!0,dateModifiedKey:"modified",fileModifiedTime:"2020-01-01T00:00:00-00:00",currentTime:(0,Gt.moment)("Wednesday, January 1st 2020, 4:00:00 pm","dddd, MMMM Do YYYY, h:mm:ss a"),alreadyModified:!1}})]}get optionBuilders(){return[new se({OptionsClass:dt,name:"Date Created",description:"Insert the file creation date",optionsKey:"dateCreated"}),new Nn({OptionsClass:dt,name:"Date Created Key",description:"Which YAML key to use for creation date",optionsKey:"dateCreatedKey"}),new se({OptionsClass:dt,name:"Date Modified",description:"Insert the date the file was last modified",optionsKey:"dateModified"}),new Nn({OptionsClass:dt,name:"Date Modified Key",description:"Which YAML key to use for modification date",optionsKey:"dateModifiedKey"}),new wa({OptionsClass:dt,name:"Format",description:"Moment date format to use (see [Moment format options](https://momentjscom.readthedocs.io/en/latest/moment/04-displaying/01-format/))",optionsKey:"format"})]}get hasSpecialExecutionOrder(){return!0}};hn=B([A.register],hn);var gn=class{constructor(){this.yamlAliasesSectionStyle="Multi-line array";this.preserveExistingAliasesSectionStyle=!0;this.keepAliasThatMatchesTheFilename=!1;this.useYamlKeyToKeepTrackOfOldFilenameOrHeading=!0}};B([A.noSettingControl()],gn.prototype,"fileName",2);var Yi=class extends A{get OptionsClass(){return gn}get name(){return"YAML Title Alias"}get description(){return"Inserts the title of the file into the YAML frontmatter's aliases section. Gets the title from the first H1 or filename."}get type(){return"YAML"}apply(t,n){t=Bt(t);let r=$([v.code,v.yaml,v.link,v.wikiLink,v.tag],t,p=>{let m=p.match(/^#\s+(.*)/m);return m?m[1]:""});r=r||n.fileName;let i=null,o=t.match(Ie)[1],a=!n.keepAliasThatMatchesTheFilename&&r===n.fileName;n.useYamlKeyToKeepTrackOfOldFilenameOrHeading&&(i=ht(Be(o,Nr)));let s=o.replace(`--- + `,options:{dateCreated:!1,dateModified:!0,dateModifiedKey:"modified",fileModifiedTime:"2020-01-01T00:00:00-00:00",currentTime:(0,Tt.moment)("Wednesday, January 1st 2020, 4:00:00 pm","dddd, MMMM Do YYYY, h:mm:ss a"),alreadyModified:!1}})]}get optionBuilders(){return[new te({OptionsClass:Qe,name:"Date Created",description:"Insert the file creation date",optionsKey:"dateCreated"}),new Gt({OptionsClass:Qe,name:"Date Created Key",description:"Which YAML key to use for creation date",optionsKey:"dateCreatedKey"}),new te({OptionsClass:Qe,name:"Date Modified",description:"Insert the date the file was last modified",optionsKey:"dateModified"}),new Gt({OptionsClass:Qe,name:"Date Modified Key",description:"Which YAML key to use for modification date",optionsKey:"dateModifiedKey"}),new qr({OptionsClass:Qe,name:"Format",description:"Moment date format to use (see [Moment format options](https://momentjscom.readthedocs.io/en/latest/moment/04-displaying/01-format/))",optionsKey:"format"})]}get hasSpecialExecutionOrder(){return!0}};Pt=A([k.register],Pt);var Ot=class{constructor(){this.preserveExistingAliasesSectionStyle=!0;this.keepAliasThatMatchesTheFilename=!1;this.useYamlKeyToKeepTrackOfOldFilenameOrHeading=!0;this.aliasArrayStyle="multi-line";this.defaultEscapeCharacter='"'}};A([k.noSettingControl()],Ot.prototype,"aliasArrayStyle",2),A([k.noSettingControl()],Ot.prototype,"fileName",2),A([k.noSettingControl()],Ot.prototype,"defaultEscapeCharacter",2);var or=class extends k{get OptionsClass(){return Ot}get name(){return"YAML Title Alias"}get description(){return"Inserts the title of the file into the YAML frontmatter's aliases section. Gets the title from the first H1 or filename."}get type(){return"YAML"}apply(t,n){t=ft(t);let i=D([S.code,S.yaml,S.tag],t,c=>{let d=c.match(/^#\s+(.*)/m);return d?d[1]:""});i=i||n.fileName;let r=null,o=t.match(ke)[1],s=!n.keepAliasThatMatchesTheFilename&&i===n.fileName;n.useYamlKeyToKeepTrackOfOldFilenameOrHeading&&(r=Je(Oe(o,ai)));let a=o.replace(`--- `,"").replace(` ----`,""),l=ht(o);i=ht(Be(o,Nr));let u="multi-line";switch(n.yamlAliasesSectionStyle){case"Multi-line array":u="multi-line";break;case"Single-line array":u="single-line";break;case"Single string that expands to multi-line array if needed":u="single string to multi-line";break;case"Single string that expands to single-line array if needed":u="single string to single-line";break;default:throw new Error(`Unsupported setting 'YAML aliases section style': ${n.yamlAliasesSectionStyle}`)}let c=function(p,m){if(p==null)return m?"":r;if(typeof p=="string")m?p===r&&(p=""):i===p?p=r:p=[r,p];else if(i!==null){let f=p.indexOf(i);f!==-1&&(m?p.splice(f,1):p[f]=r)}else{let f=p.indexOf(r);f!==-1?m&&p.splice(f,1):m||(p=[r,...p])}return p===""||p.length===0?"":p};if(r=go(r),Object.keys(l).includes(mt)){let p=Be(s,mt),m="multi-line",f=p==="",d=!1;p.includes(` -`)||(p.match(/^\[.*\]/)===null?(m="single string to single-line",d=!0):m="single-line");let h=bo(Ft(p)),g=c(h,a);g===""?s=Sn(s,mt):n.preserveExistingAliasesSectionStyle?!f&&(d&&r==g||!d||h==g)?s=Me(s,mt,ft(g,m)):s=Me(s,mt,ft(g,u)):s=Me(s,mt,ft(g,u))}else a||(s=Me(s,mt,ft(r,u)));return!n.useYamlKeyToKeepTrackOfOldFilenameOrHeading||a?s=Sn(s,Nr):s=Me(s,Nr,` ${r}`),t=t.replace(`--- +---`,""),l=Je(o);r=Je(Oe(o,ai)),i=kt(i,n.defaultEscapeCharacter);let u=function(c,d){if(c==null)return d?"":i;if(typeof c=="string")d?c===i&&(c=""):r===c?c=i:c=[i,c];else if(r!==null){let h=c.indexOf(r);h!==-1&&(d?c.splice(h,1):c[h]=i)}else{let h=c.indexOf(i);h!==-1?d&&c.splice(h,1):d||(c=[i,...c])}return c===""||c.length===0?"":c},p=null,m=Object.keys(l);for(let c of si)if(m.includes(c)){p=c;break}if(p!=null){let c=Oe(a,p),d="multi-line",h=c==="",g=!1;c.includes(` +`)||(c.match(/^\[.*\]/)===null?(d="single string to single-line",g=!0):d="single-line");let x=Br(ht(c)),b=u(x,s);b===""?a=Wt(a,p):n.preserveExistingAliasesSectionStyle?!h&&(g&&i==b||!g||x==b)?a=Te(a,p,Ge(b,d)):a=Te(a,p,Ge(b,n.aliasArrayStyle)):a=Te(a,p,Ge(b,n.aliasArrayStyle))}else s||(a=Te(a,es,Ge(i,n.aliasArrayStyle)));return!n.useYamlKeyToKeepTrackOfOldFilenameOrHeading||s?a=Wt(a,ai):a=Te(a,ai,` ${i}`),t=t.replace(`--- ${o}--- `,`--- -${s}--- -`),t}get exampleBuilders(){return[new T({description:"Adds a header with the title from heading.",before:y` +${a}--- +`),t}get exampleBuilders(){return[new v({description:"Adds a header with the title from heading.",before:f` # Obsidian - `,after:y` + `,after:f` --- aliases: - Obsidian linter-yaml-title-alias: Obsidian --- # Obsidian - `}),new T({description:"Adds a header with the title from heading without YAML key when the use of the YAML key is set to false.",before:y` + `}),new v({description:"Adds a header with the title from heading without YAML key when the use of the YAML key is set to false.",before:f` # Obsidian - `,after:y` + `,after:f` --- aliases: - Obsidian --- # Obsidian - `,options:{useYamlKeyToKeepTrackOfOldFilenameOrHeading:!1}}),new T({description:"Adds a header with the title.",before:y` + `,options:{useYamlKeyToKeepTrackOfOldFilenameOrHeading:!1}}),new v({description:"Adds a header with the title.",before:f` ${""} - `,after:y` + `,after:f` --- aliases: - Filename linter-yaml-title-alias: Filename --- ${""} - `,options:{fileName:"Filename",keepAliasThatMatchesTheFilename:!0}}),new T({description:"Adds a header with the title without YAML key when the use of the YAML key is set to false.",before:y` + `,options:{fileName:"Filename",keepAliasThatMatchesTheFilename:!0}}),new v({description:"Adds a header with the title without YAML key when the use of the YAML key is set to false.",before:f` ${""} - `,after:y` + `,after:f` --- aliases: - Filename --- ${""} - `,options:{fileName:"Filename",keepAliasThatMatchesTheFilename:!0,useYamlKeyToKeepTrackOfOldFilenameOrHeading:!1}}),new T({description:"Replaces old filename with new filename when no header is present and filename is different than the old one listed in `linter-yaml-title-alias`.",before:y` + `,options:{fileName:"Filename",keepAliasThatMatchesTheFilename:!0,useYamlKeyToKeepTrackOfOldFilenameOrHeading:!1}}),new v({description:"Replaces old filename with new filename when no header is present and filename is different than the old one listed in `linter-yaml-title-alias`.",before:f` --- aliases: - Old Filename @@ -1943,7 +2139,7 @@ ${s}--- linter-yaml-title-alias: Old Filename --- ${""} - `,after:y` + `,after:f` --- aliases: - Filename @@ -1951,33 +2147,33 @@ ${s}--- linter-yaml-title-alias: Filename --- ${""} - `,options:{fileName:"Filename",keepAliasThatMatchesTheFilename:!0}})]}get optionBuilders(){return[new de({OptionsClass:gn,name:"YAML aliases section style",description:"The style of the aliases YAML section. It is recommended that the value here matches the aliases format for format YAML arrays if in use.",optionsKey:"yamlAliasesSectionStyle",records:[{value:"Multi-line array",description:"```aliases:\\n - Title```"},{value:"Single-line array",description:"```aliases: [Title]```"},{value:"Single string that expands to multi-line array if needed",description:"```aliases: Title```"},{value:"Single string that expands to single-line array if needed",description:"```aliases: Title```"}]}),new se({OptionsClass:gn,name:"Preserve existing aliases section style",description:"If set, the `YAML aliases section style` setting applies only to the newly created sections",optionsKey:"preserveExistingAliasesSectionStyle"}),new se({OptionsClass:gn,name:"Keep alias that matches the filename",description:"Such aliases are usually redundant",optionsKey:"keepAliasThatMatchesTheFilename"}),new se({OptionsClass:gn,name:"Use the YAML key `linter-yaml-title-alias` to help with filename and heading changes",description:"If set, when the first H1 heading changes or filename if first H1 is not present changes, then the old alias stored in this key will be replaced with the new value instead of just inserting a new entry in the aliases array",optionsKey:"useYamlKeyToKeepTrackOfOldFilenameOrHeading"})]}};Yi=B([A.register],Yi);var qi=class{constructor(){this.titleKey="title"}};B([A.noSettingControl()],qi.prototype,"fileName",2);var ji=class extends A{get OptionsClass(){return qi}get name(){return"YAML Title"}get description(){return"Inserts the title of the file into the YAML frontmatter. Gets the title from the first H1 or filename if there is no H1."}get type(){return"YAML"}apply(t,n){t=Bt(t);let r=$([v.code,v.yaml,v.link,v.wikiLink,v.tag],t,i=>{let o=i.match(/^#\s+(.*)/m);return o?o[1]:""});return r=r||n.fileName,r=go(r),qe(t,i=>{let o=` + `,options:{fileName:"Filename",keepAliasThatMatchesTheFilename:!0}})]}get optionBuilders(){return[new te({OptionsClass:Ot,name:"Preserve existing aliases section style",description:"If set, the `YAML aliases section style` setting applies only to the newly created sections",optionsKey:"preserveExistingAliasesSectionStyle"}),new te({OptionsClass:Ot,name:"Keep alias that matches the filename",description:"Such aliases are usually redundant",optionsKey:"keepAliasThatMatchesTheFilename"}),new te({OptionsClass:Ot,name:"Use the YAML key `linter-yaml-title-alias` to help with filename and heading changes",description:"If set, when the first H1 heading changes or filename if first H1 is not present changes, then the old alias stored in this key will be replaced with the new value instead of just inserting a new entry in the aliases array",optionsKey:"useYamlKeyToKeepTrackOfOldFilenameOrHeading"})]}};or=A([k.register],or);var Nn=class{constructor(){this.defaultEscapeCharacter='"';this.titleKey="title"}};A([k.noSettingControl()],Nn.prototype,"fileName",2),A([k.noSettingControl()],Nn.prototype,"defaultEscapeCharacter",2);var sr=class extends k{get OptionsClass(){return Nn}get name(){return"YAML Title"}get description(){return"Inserts the title of the file into the YAML frontmatter. Gets the title from the first H1 or filename if there is no H1."}get type(){return"YAML"}apply(t,n){t=ft(t);let i=D([S.code,S.yaml,S.tag],t,r=>{let o=r.match(/^#\s+(.*)/m);return o?o[1]:""});return i=i||n.fileName,i=kt(i,n.defaultEscapeCharacter),Se(t,r=>{let o=` ${n.titleKey}.* -`,a=new RegExp(o);if(a.test(i))i=i.replace(a,je(` -${n.titleKey}: ${r} -`));else{let s=i.indexOf(` ----`);i=On(i,s,` -${n.titleKey}: ${r}`)}return i})}get exampleBuilders(){return[new T({description:"Adds a header with the title from heading.",before:y` +`,s=new RegExp(o);if(s.test(r))r=r.replace(s,$e(` +${n.titleKey}: ${i} +`));else{let a=r.indexOf(` +---`);r=jt(r,a,` +${n.titleKey}: ${i}`)}return r})}get exampleBuilders(){return[new v({description:"Adds a header with the title from heading.",before:f` # Obsidian - `,after:y` + `,after:f` --- title: Obsidian --- # Obsidian - `,options:{fileName:"Filename"}}),new T({description:"Adds a header with the title.",before:y` + `,options:{fileName:"Filename"}}),new v({description:"Adds a header with the title.",before:f` ${""} - `,after:y` + `,after:f` --- title: Filename --- ${""} - `,options:{fileName:"Filename"}})]}get optionBuilders(){return[new Nn({OptionsClass:qi,name:"Title Key",description:"Which YAML key to use for title",optionsKey:"titleKey"})]}};ji=B([A.register],ji);var Sw=` + `,options:{fileName:"Filename"}})]}get optionBuilders(){return[new Gt({OptionsClass:Nn,name:"Title Key",description:"Which YAML key to use for title",optionsKey:"titleKey"})]}};sr=A([k.register],sr);var Lh=` -`,Ow=` +`,Ch=` @@ -1985,7 +2181,7 @@ ${n.titleKey}: ${r}`)}return i})}get exampleBuilders(){return[new T({description -`,Tw=` +`,Eh=` @@ -1998,42 +2194,36 @@ ${n.titleKey}: ${r}`)}return i})}get exampleBuilders(){return[new T({description -`,Cw=` +`,_h=` -`,Aw=` +`,Bh=` -`,Ew=` +`,Mh=` -`,Lw=` +`,Ih=` -`,_w=` +`,Fh=` -`,Iw=` +`,Rh=` -`,Mw=` +`,$h=` -`,Bw=` +`,Dh=` -`,Fw=` +`,Ph=` -`,Qe={folder:{id:"lint-folder",source:Ow},file:{id:"lint-file",source:Sw},vault:{id:"lint-vault",source:Tw},whitespace:{id:"lint-whitespace",source:Cw},math:{id:"lint-math",source:Aw},content:{id:"lint-content",source:Ew},paste:{id:"lint-paste",source:Lw},custom:{id:"lint-custom",source:_w},heading:{id:"lint-heading",source:Iw},footer:{id:"lint-footer",source:Mw},yaml:{id:"lint-yaml",source:Bw},general:{id:"lint-general",source:Fw}};var La=require("obsidian");var _a=class{constructor(){this.disabledRules=[]}lintText(t){let n=t.oldText;this.disabledRules=Lf(n);let r=this.runBeforeRegularRules(t);for(let i of Nt){if(this.disabledRules.includes(i.alias())){mn(i.alias()+" is disabled");continue}else if(i.hasSpecialExecutionOrder)continue;[r]=Ct.applyIfEnabledBase(i,r,t.settings,{fileCreatedTime:t.fileInfo.createdAtFormatted,fileModifiedTime:t.fileInfo.modifiedAtFormatted,fileName:t.fileInfo.name,locale:t.momentLocale})}return t.oldText=r,this.runAfterRegularRules(n,t)}runBeforeRegularRules(t){let n=t.oldText;return[n]=Hn.applyIfEnabled(n,t.settings,this.disabledRules),[n]=$n.applyIfEnabled(n,t.settings,this.disabledRules),n}runAfterRegularRules(t,n){let r=n.oldText,i=n.getCurrentTime(),o;[r,o]=hn.applyIfEnabled(r,n.settings,this.disabledRules,{fileCreatedTime:n.fileInfo.createdAtFormatted,fileModifiedTime:n.fileInfo.modifiedAtFormatted,currentTime:i,alreadyModified:t!=r,locale:n.momentLocale});let a=hn.getRuleOptions(n.settings);return i=n.getCurrentTime(),[r]=jn.applyIfEnabled(r,n.settings,this.disabledRules,{currentTimeFormatted:i.format(a.format),yamlTimestampDateModifiedEnabled:o&&a.dateModified,dateModifiedKey:a.dateModifiedKey}),r}runCustomCommands(t,n){mn("Running Custom Lint Commands");let r=new Set;for(let i of t){if(i.id){if(r.has(i.id)){Ff(`You cannot run the same command ("${i.name}") as a custom lint rule twice.`);continue}}else continue;try{r.add(i.id),n.executeCommandById(i.id)}catch(o){ha(o,`Custom Lint Command ${i.id}`)}}}};function tu(e,t,n,r){let i=(0,La.moment)(t.stat.ctime);i.locale(n);let o=(0,La.moment)(t.stat.mtime);o.locale(n);let a=o.format(),s=i.format();return{oldText:e,fileInfo:{name:t.basename,createdAtFormatted:s,modifiedAtFormatted:a},settings:r,momentLocale:n,getCurrentTime:()=>{let l=(0,La.moment)();return l.locale(n),l}}}var Ia=require("obsidian"),Vi=class extends Ia.Modal{constructor(t,n,r,i,o){super(t),this.modalEl.addClass("confirm-modal"),this.contentEl.createEl("h3",{text:"Warning"}).style.textAlign="center",this.contentEl.createEl("p",{text:n+" Make sure you have backed up your files."}).id="confirm-dialog",this.contentEl.createDiv("modal-button-container",a=>{a.createEl("button",{text:"Cancel"}).addEventListener("click",()=>this.close());let s=a.createEl("button",{attr:{type:"submit"},cls:"mod-cta",text:r});s.addEventListener("click",async l=>{new Ia.Notice(i),this.close(),await o()}),setTimeout(()=>{s.focus()},50)})}};var Ne=require("obsidian");var sd=require("obsidian");var ad=require("obsidian");var we="top",Le="bottom",Ae="right",Te="left",Ma="auto",yn=[we,Le,Ae,Te],Zt="start",qn="end",zf="clippingParents",Ba="viewport",xr="popper",$f="reference",nu=yn.reduce(function(e,t){return e.concat([t+"-"+Zt,t+"-"+qn])},[]),Fa=[].concat(yn,[Ma]).reduce(function(e,t){return e.concat([t,t+"-"+Zt,t+"-"+qn])},[]),Rw="beforeRead",Dw="read",Pw="afterRead",Nw="beforeMain",zw="main",$w="afterMain",Hw="beforeWrite",Yw="write",jw="afterWrite",Hf=[Rw,Dw,Pw,Nw,zw,$w,Hw,Yw,jw];function De(e){return e?(e.nodeName||"").toLowerCase():null}function ge(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function wt(e){var t=ge(e).Element;return e instanceof t||e instanceof Element}function _e(e){var t=ge(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function kr(e){if(typeof ShadowRoot=="undefined")return!1;var t=ge(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function qw(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},i=t.attributes[n]||{},o=t.elements[n];!_e(o)||!De(o)||(Object.assign(o.style,r),Object.keys(i).forEach(function(a){var s=i[a];s===!1?o.removeAttribute(a):o.setAttribute(a,s===!0?"":s)}))})}function Vw(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var i=t.elements[r],o=t.attributes[r]||{},a=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),s=a.reduce(function(l,u){return l[u]="",l},{});!_e(i)||!De(i)||(Object.assign(i.style,s),Object.keys(o).forEach(function(l){i.removeAttribute(l)}))})}}var Yf={name:"applyStyles",enabled:!0,phase:"write",fn:qw,effect:Vw,requires:["computeStyles"]};function Pe(e){return e.split("-")[0]}var Et=Math.max,Vn=Math.min,Qt=Math.round;function vr(){var e=navigator.userAgentData;return e!=null&&e.brands?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function Ki(){return!/^((?!chrome|android).)*safari/i.test(vr())}function xt(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,o=1;t&&_e(e)&&(i=e.offsetWidth>0&&Qt(r.width)/e.offsetWidth||1,o=e.offsetHeight>0&&Qt(r.height)/e.offsetHeight||1);var a=wt(e)?ge(e):window,s=a.visualViewport,l=!Ki()&&n,u=(r.left+(l&&s?s.offsetLeft:0))/i,c=(r.top+(l&&s?s.offsetTop:0))/o,p=r.width/i,m=r.height/o;return{width:p,height:m,top:c,right:u+p,bottom:c+m,left:u,x:u,y:c}}function Kn(e){var t=xt(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function Wi(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&kr(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function nt(e){return ge(e).getComputedStyle(e)}function ru(e){return["table","td","th"].indexOf(De(e))>=0}function $e(e){return((wt(e)?e.ownerDocument:e.document)||window.document).documentElement}function Xt(e){return De(e)==="html"?e:e.assignedSlot||e.parentNode||(kr(e)?e.host:null)||$e(e)}function jf(e){return!_e(e)||nt(e).position==="fixed"?null:e.offsetParent}function Kw(e){var t=/firefox/i.test(vr()),n=/Trident/i.test(vr());if(n&&_e(e)){var r=nt(e);if(r.position==="fixed")return null}var i=Xt(e);for(kr(i)&&(i=i.host);_e(i)&&["html","body"].indexOf(De(i))<0;){var o=nt(i);if(o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].indexOf(o.willChange)!==-1||t&&o.willChange==="filter"||t&&o.filter&&o.filter!=="none")return i;i=i.parentNode}return null}function Lt(e){for(var t=ge(e),n=jf(e);n&&ru(n)&&nt(n).position==="static";)n=jf(n);return n&&(De(n)==="html"||De(n)==="body"&&nt(n).position==="static")?t:n||Kw(e)||t}function Wn(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Un(e,t,n){return Et(e,Vn(t,n))}function qf(e,t,n){var r=Un(e,t,n);return r>n?n:r}function Ui(){return{top:0,right:0,bottom:0,left:0}}function Gi(e){return Object.assign({},Ui(),e)}function Zi(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var Ww=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,Gi(typeof t!="number"?t:Zi(t,yn))};function Uw(e){var t,n=e.state,r=e.name,i=e.options,o=n.elements.arrow,a=n.modifiersData.popperOffsets,s=Pe(n.placement),l=Wn(s),u=[Te,Ae].indexOf(s)>=0,c=u?"height":"width";if(!(!o||!a)){var p=Ww(i.padding,n),m=Kn(o),f=l==="y"?we:Te,d=l==="y"?Le:Ae,h=n.rects.reference[c]+n.rects.reference[l]-a[l]-n.rects.popper[c],g=a[l]-n.rects.reference[l],b=Lt(o),O=b?l==="y"?b.clientHeight||0:b.clientWidth||0:0,S=h/2-g/2,E=p[f],I=O-m[c]-p[d],k=O/2-m[c]/2+S,_=Un(E,k,I),M=l;n.modifiersData[r]=(t={},t[M]=_,t.centerOffset=_-k,t)}}function Gw(e){var t=e.state,n=e.options,r=n.element,i=r===void 0?"[data-popper-arrow]":r;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||!Wi(t.elements.popper,i)||(t.elements.arrow=i))}var Vf={name:"arrow",enabled:!0,phase:"main",fn:Uw,effect:Gw,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function kt(e){return e.split("-")[1]}var Zw={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Qw(e){var t=e.x,n=e.y,r=window,i=r.devicePixelRatio||1;return{x:Qt(t*i)/i||0,y:Qt(n*i)/i||0}}function Kf(e){var t,n=e.popper,r=e.popperRect,i=e.placement,o=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,p=e.isFixed,m=a.x,f=m===void 0?0:m,d=a.y,h=d===void 0?0:d,g=typeof c=="function"?c({x:f,y:h}):{x:f,y:h};f=g.x,h=g.y;var b=a.hasOwnProperty("x"),O=a.hasOwnProperty("y"),S=Te,E=we,I=window;if(u){var k=Lt(n),_="clientHeight",M="clientWidth";if(k===ge(n)&&(k=$e(n),nt(k).position!=="static"&&s==="absolute"&&(_="scrollHeight",M="scrollWidth")),k=k,i===we||(i===Te||i===Ae)&&o===qn){E=Le;var z=p&&k===I&&I.visualViewport?I.visualViewport.height:k[_];h-=z-r.height,h*=l?1:-1}if(i===Te||(i===we||i===Le)&&o===qn){S=Ae;var q=p&&k===I&&I.visualViewport?I.visualViewport.width:k[M];f-=q-r.width,f*=l?1:-1}}var H=Object.assign({position:s},u&&Zw),U=c===!0?Qw({x:f,y:h}):{x:f,y:h};if(f=U.x,h=U.y,l){var P;return Object.assign({},H,(P={},P[E]=O?"0":"",P[S]=b?"0":"",P.transform=(I.devicePixelRatio||1)<=1?"translate("+f+"px, "+h+"px)":"translate3d("+f+"px, "+h+"px, 0)",P))}return Object.assign({},H,(t={},t[E]=O?h+"px":"",t[S]=b?f+"px":"",t.transform="",t))}function Xw(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,o=n.adaptive,a=o===void 0?!0:o,s=n.roundOffsets,l=s===void 0?!0:s;if(!1)var u;var c={placement:Pe(t.placement),variation:kt(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Kf(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Kf(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var Wf={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Xw,data:{}};var Ra={passive:!0};function Jw(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,o=i===void 0?!0:i,a=r.resize,s=a===void 0?!0:a,l=ge(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&u.forEach(function(c){c.addEventListener("scroll",n.update,Ra)}),s&&l.addEventListener("resize",n.update,Ra),function(){o&&u.forEach(function(c){c.removeEventListener("scroll",n.update,Ra)}),s&&l.removeEventListener("resize",n.update,Ra)}}var Uf={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Jw,data:{}};var ex={left:"right",right:"left",bottom:"top",top:"bottom"};function Sr(e){return e.replace(/left|right|bottom|top/g,function(t){return ex[t]})}var tx={start:"end",end:"start"};function Da(e){return e.replace(/start|end/g,function(t){return tx[t]})}function Gn(e){var t=ge(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function Zn(e){return xt($e(e)).left+Gn(e).scrollLeft}function iu(e,t){var n=ge(e),r=$e(e),i=n.visualViewport,o=r.clientWidth,a=r.clientHeight,s=0,l=0;if(i){o=i.width,a=i.height;var u=Ki();(u||!u&&t==="fixed")&&(s=i.offsetLeft,l=i.offsetTop)}return{width:o,height:a,x:s+Zn(e),y:l}}function ou(e){var t,n=$e(e),r=Gn(e),i=(t=e.ownerDocument)==null?void 0:t.body,o=Et(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),a=Et(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-r.scrollLeft+Zn(e),l=-r.scrollTop;return nt(i||n).direction==="rtl"&&(s+=Et(n.clientWidth,i?i.clientWidth:0)-o),{width:o,height:a,x:s,y:l}}function Qn(e){var t=nt(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function Pa(e){return["html","body","#document"].indexOf(De(e))>=0?e.ownerDocument.body:_e(e)&&Qn(e)?e:Pa(Xt(e))}function bn(e,t){var n;t===void 0&&(t=[]);var r=Pa(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),o=ge(r),a=i?[o].concat(o.visualViewport||[],Qn(r)?r:[]):r,s=t.concat(a);return i?s:s.concat(bn(Xt(a)))}function Or(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function nx(e,t){var n=xt(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Gf(e,t,n){return t===Ba?Or(iu(e,n)):wt(t)?nx(t,n):Or(ou($e(e)))}function rx(e){var t=bn(Xt(e)),n=["absolute","fixed"].indexOf(nt(e).position)>=0,r=n&&_e(e)?Lt(e):e;return wt(r)?t.filter(function(i){return wt(i)&&Wi(i,r)&&De(i)!=="body"}):[]}function au(e,t,n,r){var i=t==="clippingParents"?rx(e):[].concat(t),o=[].concat(i,[n]),a=o[0],s=o.reduce(function(l,u){var c=Gf(e,u,r);return l.top=Et(c.top,l.top),l.right=Vn(c.right,l.right),l.bottom=Vn(c.bottom,l.bottom),l.left=Et(c.left,l.left),l},Gf(e,a,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Qi(e){var t=e.reference,n=e.element,r=e.placement,i=r?Pe(r):null,o=r?kt(r):null,a=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,l;switch(i){case we:l={x:a,y:t.y-n.height};break;case Le:l={x:a,y:t.y+t.height};break;case Ae:l={x:t.x+t.width,y:s};break;case Te:l={x:t.x-n.width,y:s};break;default:l={x:t.x,y:t.y}}var u=i?Wn(i):null;if(u!=null){var c=u==="y"?"height":"width";switch(o){case Zt:l[u]=l[u]-(t[c]/2-n[c]/2);break;case qn:l[u]=l[u]+(t[c]/2-n[c]/2);break;default:}}return l}function _t(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,o=n.strategy,a=o===void 0?e.strategy:o,s=n.boundary,l=s===void 0?zf:s,u=n.rootBoundary,c=u===void 0?Ba:u,p=n.elementContext,m=p===void 0?xr:p,f=n.altBoundary,d=f===void 0?!1:f,h=n.padding,g=h===void 0?0:h,b=Gi(typeof g!="number"?g:Zi(g,yn)),O=m===xr?$f:xr,S=e.rects.popper,E=e.elements[d?O:m],I=au(wt(E)?E:E.contextElement||$e(e.elements.popper),l,c,a),k=xt(e.elements.reference),_=Qi({reference:k,element:S,strategy:"absolute",placement:i}),M=Or(Object.assign({},S,_)),z=m===xr?M:k,q={top:I.top-z.top+b.top,bottom:z.bottom-I.bottom+b.bottom,left:I.left-z.left+b.left,right:z.right-I.right+b.right},H=e.modifiersData.offset;if(m===xr&&H){var U=H[i];Object.keys(q).forEach(function(P){var V=[Ae,Le].indexOf(P)>=0?1:-1,ne=[we,Le].indexOf(P)>=0?"y":"x";q[P]+=U[ne]*V})}return q}function su(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,o=n.rootBoundary,a=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,u=l===void 0?Fa:l,c=kt(r),p=c?s?nu:nu.filter(function(d){return kt(d)===c}):yn,m=p.filter(function(d){return u.indexOf(d)>=0});m.length===0&&(m=p);var f=m.reduce(function(d,h){return d[h]=_t(e,{placement:h,boundary:i,rootBoundary:o,padding:a})[Pe(h)],d},{});return Object.keys(f).sort(function(d,h){return f[d]-f[h]})}function ix(e){if(Pe(e)===Ma)return[];var t=Sr(e);return[Da(e),t,Da(t)]}function ox(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,o=i===void 0?!0:i,a=n.altAxis,s=a===void 0?!0:a,l=n.fallbackPlacements,u=n.padding,c=n.boundary,p=n.rootBoundary,m=n.altBoundary,f=n.flipVariations,d=f===void 0?!0:f,h=n.allowedAutoPlacements,g=t.options.placement,b=Pe(g),O=b===g,S=l||(O||!d?[Sr(g)]:ix(g)),E=[g].concat(S).reduce(function(it,Xe){return it.concat(Pe(Xe)===Ma?su(t,{placement:Xe,boundary:c,rootBoundary:p,padding:u,flipVariations:d,allowedAutoPlacements:h}):Xe)},[]),I=t.rects.reference,k=t.rects.popper,_=new Map,M=!0,z=E[0],q=0;q=0,ne=V?"width":"height",C=_t(t,{placement:H,boundary:c,rootBoundary:p,altBoundary:m,padding:u}),oe=V?P?Ae:Te:P?Le:we;I[ne]>k[ne]&&(oe=Sr(oe));var te=Sr(oe),he=[];if(o&&he.push(C[U]<=0),s&&he.push(C[oe]<=0,C[te]<=0),he.every(function(it){return it})){z=H,M=!1;break}_.set(H,he)}if(M)for(var le=d?3:1,w=function(Xe){var vt=E.find(function(ot){var ce=_.get(ot);if(ce)return ce.slice(0,Xe).every(function(zt){return zt})});if(vt)return z=vt,"break"},x=le;x>0;x--){var rt=w(x);if(rt==="break")break}t.placement!==z&&(t.modifiersData[r]._skip=!0,t.placement=z,t.reset=!0)}}var Zf={name:"flip",enabled:!0,phase:"main",fn:ox,requiresIfExists:["offset"],data:{_skip:!1}};function Qf(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Xf(e){return[we,Ae,Le,Te].some(function(t){return e[t]>=0})}function ax(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,a=_t(t,{elementContext:"reference"}),s=_t(t,{altBoundary:!0}),l=Qf(a,r),u=Qf(s,i,o),c=Xf(l),p=Xf(u);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:p},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":p})}var Jf={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:ax};function sx(e,t,n){var r=Pe(e),i=[Te,we].indexOf(r)>=0?-1:1,o=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,a=o[0],s=o[1];return a=a||0,s=(s||0)*i,[Te,Ae].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}function lx(e){var t=e.state,n=e.options,r=e.name,i=n.offset,o=i===void 0?[0,0]:i,a=Fa.reduce(function(c,p){return c[p]=sx(p,t.rects,o),c},{}),s=a[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[r]=a}var ed={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:lx};function ux(e){var t=e.state,n=e.name;t.modifiersData[n]=Qi({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var td={name:"popperOffsets",enabled:!0,phase:"read",fn:ux,data:{}};function lu(e){return e==="x"?"y":"x"}function cx(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,o=i===void 0?!0:i,a=n.altAxis,s=a===void 0?!1:a,l=n.boundary,u=n.rootBoundary,c=n.altBoundary,p=n.padding,m=n.tether,f=m===void 0?!0:m,d=n.tetherOffset,h=d===void 0?0:d,g=_t(t,{boundary:l,rootBoundary:u,padding:p,altBoundary:c}),b=Pe(t.placement),O=kt(t.placement),S=!O,E=Wn(b),I=lu(E),k=t.modifiersData.popperOffsets,_=t.rects.reference,M=t.rects.popper,z=typeof h=="function"?h(Object.assign({},t.rects,{placement:t.placement})):h,q=typeof z=="number"?{mainAxis:z,altAxis:z}:Object.assign({mainAxis:0,altAxis:0},z),H=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,U={x:0,y:0};if(!!k){if(o){var P,V=E==="y"?we:Te,ne=E==="y"?Le:Ae,C=E==="y"?"height":"width",oe=k[E],te=oe+g[V],he=oe-g[ne],le=f?-M[C]/2:0,w=O===Zt?_[C]:M[C],x=O===Zt?-M[C]:-_[C],rt=t.elements.arrow,it=f&&rt?Kn(rt):{width:0,height:0},Xe=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:Ui(),vt=Xe[V],ot=Xe[ne],ce=Un(0,_[C],it[C]),zt=S?_[C]/2-le-ce-vt-q.mainAxis:w-ce-vt-q.mainAxis,St=S?-_[C]/2+le+ce+ot+q.mainAxis:x+ce+ot+q.mainAxis,It=t.elements.arrow&&Lt(t.elements.arrow),Jt=It?E==="y"?It.clientTop||0:It.clientLeft||0:0,wn=(P=H==null?void 0:H[E])!=null?P:0,Ya=oe+zt-wn-Jt,ja=oe+St-wn,Ji=Un(f?Vn(te,Ya):te,oe,f?Et(he,ja):he);k[E]=Ji,U[E]=Ji-oe}if(s){var Cr,eo=E==="x"?we:Te,to=E==="x"?Le:Ae,$t=k[I],xn=I==="y"?"height":"width",Ar=$t+g[eo],no=$t-g[to],Er=[we,Te].indexOf(b)!==-1,ro=(Cr=H==null?void 0:H[I])!=null?Cr:0,io=Er?Ar:$t-_[xn]-M[xn]-ro+q.altAxis,oo=Er?$t+_[xn]+M[xn]-ro-q.altAxis:no,L=f&&Er?qf(io,$t,oo):Un(f?io:Ar,$t,f?oo:no);k[I]=L,U[I]=L-$t}t.modifiersData[r]=U}}var nd={name:"preventOverflow",enabled:!0,phase:"main",fn:cx,requiresIfExists:["offset"]};function uu(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function cu(e){return e===ge(e)||!_e(e)?Gn(e):uu(e)}function px(e){var t=e.getBoundingClientRect(),n=Qt(t.width)/e.offsetWidth||1,r=Qt(t.height)/e.offsetHeight||1;return n!==1||r!==1}function pu(e,t,n){n===void 0&&(n=!1);var r=_e(t),i=_e(t)&&px(t),o=$e(t),a=xt(e,i,n),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&((De(t)!=="body"||Qn(o))&&(s=cu(t)),_e(t)?(l=xt(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):o&&(l.x=Zn(o))),{x:a.left+s.scrollLeft-l.x,y:a.top+s.scrollTop-l.y,width:a.width,height:a.height}}function mx(e){var t=new Map,n=new Set,r=[];e.forEach(function(o){t.set(o.name,o)});function i(o){n.add(o.name);var a=[].concat(o.requires||[],o.requiresIfExists||[]);a.forEach(function(s){if(!n.has(s)){var l=t.get(s);l&&i(l)}}),r.push(o)}return e.forEach(function(o){n.has(o.name)||i(o)}),r}function mu(e){var t=mx(e);return Hf.reduce(function(n,r){return n.concat(t.filter(function(i){return i.phase===r}))},[])}function fu(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function du(e){var t=e.reduce(function(n,r){var i=n[r.name];return n[r.name]=i?Object.assign({},i,r,{options:Object.assign({},i.options,r.options),data:Object.assign({},i.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var rd={placement:"bottom",modifiers:[],strategy:"absolute"};function id(){for(var e=arguments.length,t=new Array(e),n=0;n(e%t+t)%t,gu=class{constructor(t,n,r){this.owner=t,this.containerEl=n,n.on("click",".suggestion-item",this.onSuggestionClick.bind(this)),n.on("mousemove",".suggestion-item",this.onSuggestionMouseover.bind(this)),r.register([],"ArrowUp",i=>{if(!i.isComposing)return this.setSelectedItem(this.selectedItem-1,!0),!1}),r.register([],"ArrowDown",i=>{if(!i.isComposing)return this.setSelectedItem(this.selectedItem+1,!0),!1}),r.register([],"Enter",i=>{if(!i.isComposing)return this.useSelectedItem(i),!1})}onSuggestionClick(t,n){t.preventDefault();let r=this.suggestions.indexOf(n);this.setSelectedItem(r,!1),this.useSelectedItem(t)}onSuggestionMouseover(t,n){let r=this.suggestions.indexOf(n);this.setSelectedItem(r,!1)}setSuggestions(t){this.containerEl.empty();let n=[];t.forEach(r=>{let i=this.containerEl.createDiv("suggestion-item");this.owner.renderSuggestion(r,i),n.push(i)}),this.values=t,this.suggestions=n,this.setSelectedItem(0,!1)}useSelectedItem(t){let n=this.values[this.selectedItem];n&&this.owner.selectSuggestion(n,t)}setSelectedItem(t,n){let r=dx(t,this.suggestions.length),i=this.suggestions[this.selectedItem],o=this.suggestions[r];i==null||i.removeClass("is-selected"),o==null||o.addClass("is-selected"),this.selectedItem=r,n&&o.scrollIntoView(!1)}},Na=class{constructor(t,n){this.app=t,this.inputEl=n,this.scope=new ad.Scope,this.suggestEl=createDiv("suggestion-container");let r=this.suggestEl.createDiv("suggestion");this.suggest=new gu(this,r,this.scope),this.scope.register([],"Escape",this.close.bind(this)),this.inputEl.addEventListener("input",this.onInputChanged.bind(this)),this.inputEl.addEventListener("focus",this.onInputChanged.bind(this)),this.inputEl.addEventListener("blur",this.close.bind(this)),this.suggestEl.on("mousedown",".suggestion-container",i=>{i.preventDefault()})}onInputChanged(){let t=this.inputEl.value,n=this.getSuggestions(t);if(!n){this.close();return}n.length>0?(this.suggest.setSuggestions(n),this.open(this.app.dom.appContainerEl,this.inputEl)):this.close()}open(t,n){this.app.keymap.pushScope(this.scope),t.appendChild(this.suggestEl),this.popper=hu(n,this.suggestEl,{placement:"bottom-start",modifiers:[{name:"sameWidth",enabled:!0,fn:({state:r,instance:i})=>{let o=`${r.rects.reference.width}px`;r.styles.popper.width!==o&&(r.styles.popper.width=o,i.update())},phase:"beforeWrite",requires:["computeStyles"]}]})}close(){this.app.keymap.popScope(this.scope),this.suggest.setSuggestions([]),this.popper&&this.popper.destroy(),this.suggestEl.detach()}};var Xi=class extends Na{constructor(n,r,i=[]){super(n,r);this.app=n;this.inputEl=r;this.valuesToExclude=i}getSuggestions(n){let r=this.app.commands.listCommands();if(!r)return[];let i=r.filter(s=>{for(let l of this.valuesToExclude)if(l.id==s.id&&!(this.inputEl.hasAttribute("commandId")&&this.inputEl.getAttribute("commandId")==s.id))return!1;return!0}),o=[],a=n.toLowerCase();return i.forEach(s=>{(s.id.contains(a)||s.name.toLowerCase().contains(a))&&o.push(s)}),o}renderSuggestion(n,r){r.setText(n.name)}selectSuggestion(n){this.inputEl.value=n.name,this.inputEl.setAttribute("commandId",n.id),this.inputEl.trigger("input"),this.close()}};var hx={General:Qe.general.id,Custom:Qe.custom.id,YAML:Qe.yaml.id,Heading:Qe.heading.id,Footnote:Qe.footer.id,Content:Qe.content.id,Spacing:Qe.whitespace.id},za=class extends Ne.PluginSettingTab{constructor(n,r){super(n,r);this.tabContent=new Map;this.selectedTab="General";this.searchSettingInfo=new Map;this.plugin=r}display(){let{containerEl:n}=this;n.empty(),this.generateSettingsTitle(n,Ne.Platform.isMobile);let i=n.createEl("nav",{cls:"linter-setting-header"}).createDiv("linter-setting-tab-group"),o=n.createDiv("linter-setting-content");this.createTabAndContent("General",i,o,(l,u)=>this.generateGeneralSettings(u,l));let a="",s="";for(let l of Nt)l.type!==a&&(s=l.type,this.createTabAndContent(s,i,o),a=l.type),this.addRuleToTab(s,l);this.createTabAndContent("Custom",i,o,(l,u)=>this.generateCustomCommandSettings(u,l)),this.createSearchZeroState(o)}createTabAndContent(n,r,i,o){let a=this.selectedTab===n,s=r.createDiv("linter-navigation-item"),l="linter-desktop";Ne.Platform.isMobile&&(l="linter-mobile"),s.addClass(l),(0,Ne.setIcon)(s.createSpan({cls:"linter-navigation-item-icon"}),hx[n],20),s.createSpan().setText(n),s.onclick=()=>{if(this.selectedTab==n)return;s.addClass("linter-navigation-item-selected");let p=this.tabContent.get(n);if(this.unhideEl(p.content),this.selectedTab!=""){let m=this.tabContent.get(this.selectedTab);m.navButton.removeClass("linter-navigation-item-selected"),this.hideEl(m.content)}else{this.hideEl(this.searchZeroState);for(let m of this.searchSettingInfo)for(let f of m[1])this.unhideEl(f.containerEl);for(let m of this.tabContent){let f=m[1];this.hideEl(f.heading),n!==m[0]&&this.hideEl(f.content)}}this.selectedTab=n};let u=i.createDiv("linter-tab-settings"),c=u.createEl("h2",{text:n+" Settings"});this.hideEl(c),u.id=n.toLowerCase().replace(" ","-"),a?s.addClass("linter-navigation-item-selected"):this.hideEl(u),o&&o(u,n),this.tabContent.set(n,{content:u,heading:c,navButton:s})}addRuleToTab(n,r){let i=this.tabContent.get(n).content;if(i==null)return;let o=i.createDiv();o.id=r.alias(),o.createEl(Ne.Platform.isMobile?"h4":"h3",{},s=>{s.innerHTML=`${r.name}`});let a=[];for(let s of r.options)s.display(o,this.plugin.settings,this.plugin),a.push(s.searchInfo);this.addSettingToMasterSettingsList(n,o,r.name.toLowerCase(),r.description.toLowerCase(),a,o.id)}generateCustomCommandSettings(n,r){r.createEl(Ne.Platform.isMobile?"h4":"h3",{text:"Custom Commands"});let i=`Custom commands are Obsidian commands that get run after the linter is finished running its regular rules. +`,Me={folder:{id:"lint-folder",source:Ch},file:{id:"lint-file",source:Lh},vault:{id:"lint-vault",source:Eh},whitespace:{id:"lint-whitespace",source:_h},math:{id:"lint-math",source:Bh},content:{id:"lint-content",source:Mh},paste:{id:"lint-paste",source:Ih},custom:{id:"lint-custom",source:Fh},heading:{id:"lint-heading",source:Rh},footer:{id:"lint-footer",source:$h},yaml:{id:"lint-yaml",source:Dh},general:{id:"lint-general",source:Ph}};var Hn=require("obsidian");var wo=class{constructor(){this.disabledRules=[]}lintText(t){let n=t.oldText;this.disabledRules=yl(n);let i=this.runBeforeRegularRules(t);for(let r of gt){if(this.disabledRules.includes(r.alias())){Ft(r.alias()+" is disabled");continue}else if(r.hasSpecialExecutionOrder||r.type==="Paste")continue;[i]=st.applyIfEnabledBase(r,i,t.settings,{fileCreatedTime:t.fileInfo.createdAtFormatted,fileModifiedTime:t.fileInfo.modifiedAtFormatted,fileName:t.fileInfo.name,locale:t.momentLocale,minimumNumberOfDollarSignsToBeAMathBlock:t.settings.commonStyles.minimumNumberOfDollarSignsToBeAMathBlock,aliasArrayStyle:t.settings.commonStyles.aliasArrayStyle,tagArrayStyle:t.settings.commonStyles.tagArrayStyle,defaultEscapeCharacter:t.settings.commonStyles.escapeCharacter})}return t.oldText=i,this.runAfterRegularRules(n,t)}runBeforeRegularRules(t){let n=t.oldText;return[n]=rn.applyIfEnabled(n,t.settings,this.disabledRules),[n]=tn.applyIfEnabled(n,t.settings,this.disabledRules,{defaultEscapeCharacter:t.settings.commonStyles.escapeCharacter}),n}runAfterRegularRules(t,n){let i=n.oldText;[i]=nn.applyIfEnabled(i,n.settings,this.disabledRules,{defaultEscapeCharacter:n.settings.commonStyles.escapeCharacter});let r=n.getCurrentTime(),o;[i,o]=Pt.applyIfEnabled(i,n.settings,this.disabledRules,{fileCreatedTime:n.fileInfo.createdAtFormatted,fileModifiedTime:n.fileInfo.modifiedAtFormatted,currentTime:r,alreadyModified:t!=i,locale:n.momentLocale});let s=Pt.getRuleOptions(n.settings);return r=n.getCurrentTime(),[i]=dn.applyIfEnabled(i,n.settings,this.disabledRules,{currentTimeFormatted:r.format(s.format),yamlTimestampDateModifiedEnabled:o&&s.dateModified,dateModifiedKey:s.dateModifiedKey}),i}runCustomCommands(t,n){Ft("Running Custom Lint Commands");let i=new Set;for(let r of t){if(r.id){if(i.has(r.id)){Yr(`You cannot run the same command ("${r.name}") as a custom lint rule twice.`);continue}}else continue;try{i.add(r.id),n.executeCommandById(r.id)}catch(o){Pr(o,`Custom Lint Command ${r.id}`)}}}runPasteLint(t,n){let i=n.oldText;return[i]=un.applyIfEnabled(i,n.settings,[]),[i]=mn.applyIfEnabled(i,n.settings,[]),[i]=cn.applyIfEnabled(i,n.settings,[]),[i]=an.applyIfEnabled(i,n.settings,[]),[i]=pn.applyIfEnabled(i,n.settings,[]),[i]=on.applyIfEnabled(i,n.settings,[],{lineContent:t}),[i]=sn.applyIfEnabled(i,n.settings,[],{lineContent:t}),[i]=Zt.applyIfEnabled(i,n.settings,[],{lineContent:t}),i}};function xo(e,t=null,n,i){let r=t?(0,Hn.moment)(t.stat.ctime):(0,Hn.moment)();r.locale(n);let o=t?(0,Hn.moment)(t.stat.mtime):(0,Hn.moment)();o.locale(n);let s=o.format(),a=r.format();return{oldText:e,fileInfo:{name:t?t.basename:"",createdAtFormatted:a,modifiedAtFormatted:s},settings:i,momentLocale:n,getCurrentTime:()=>{let l=(0,Hn.moment)();return l.locale(n),l}}}var vo=require("obsidian"),ar=class extends vo.Modal{constructor(t,n,i,r,o){super(t),this.modalEl.addClass("confirm-modal"),this.contentEl.createEl("h3",{text:"Warning"}).style.textAlign="center",this.contentEl.createEl("p",{text:n+" Make sure you have backed up your files."}).id="confirm-dialog",this.contentEl.createDiv("modal-button-container",s=>{s.createEl("button",{text:"Cancel"}).addEventListener("click",()=>this.close());let a=s.createEl("button",{attr:{type:"submit"},cls:"mod-cta",text:i});a.addEventListener("click",async l=>{new vo.Notice(r),this.close(),await o()}),setTimeout(()=>{a.focus()},50)})}};var ce=require("obsidian");var Uu=require("obsidian");var Wu=require("obsidian");var pe="top",we="bottom",he="right",de="left",ko="auto",Nt=[pe,we,he,de],At="start",fn="end",Au="clippingParents",So="viewport",Yn="popper",Lu="reference",ea=Nt.reduce(function(e,t){return e.concat([t+"-"+At,t+"-"+fn])},[]),To=[].concat(Nt,[ko]).reduce(function(e,t){return e.concat([t,t+"-"+At,t+"-"+fn])},[]),Nh="beforeRead",Hh="read",Yh="afterRead",zh="beforeMain",qh="main",Kh="afterMain",jh="beforeWrite",Vh="write",Wh="afterWrite",Cu=[Nh,Hh,Yh,zh,qh,Kh,jh,Vh,Wh];function Le(e){return e?(e.nodeName||"").toLowerCase():null}function ue(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function tt(e){var t=ue(e).Element;return e instanceof t||e instanceof Element}function xe(e){var t=ue(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function zn(e){if(typeof ShadowRoot>"u")return!1;var t=ue(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function Uh(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var i=t.styles[n]||{},r=t.attributes[n]||{},o=t.elements[n];!xe(o)||!Le(o)||(Object.assign(o.style,i),Object.keys(r).forEach(function(s){var a=r[s];a===!1?o.removeAttribute(s):o.setAttribute(s,a===!0?"":a)}))})}function Gh(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(i){var r=t.elements[i],o=t.attributes[i]||{},s=Object.keys(t.styles.hasOwnProperty(i)?t.styles[i]:n[i]),a=s.reduce(function(l,u){return l[u]="",l},{});!xe(r)||!Le(r)||(Object.assign(r.style,a),Object.keys(o).forEach(function(l){r.removeAttribute(l)}))})}}var Eu={name:"applyStyles",enabled:!0,phase:"write",fn:Uh,effect:Gh,requires:["computeStyles"]};function Ce(e){return e.split("-")[0]}var lt=Math.max,hn=Math.min,Lt=Math.round;function qn(){var e=navigator.userAgentData;return e!=null&&e.brands?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function lr(){return!/^((?!chrome|android).)*safari/i.test(qn())}function nt(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var i=e.getBoundingClientRect(),r=1,o=1;t&&xe(e)&&(r=e.offsetWidth>0&&Lt(i.width)/e.offsetWidth||1,o=e.offsetHeight>0&&Lt(i.height)/e.offsetHeight||1);var s=tt(e)?ue(e):window,a=s.visualViewport,l=!lr()&&n,u=(i.left+(l&&a?a.offsetLeft:0))/r,p=(i.top+(l&&a?a.offsetTop:0))/o,m=i.width/r,c=i.height/o;return{width:m,height:c,top:p,right:u+m,bottom:p+c,left:u,x:u,y:p}}function gn(e){var t=nt(e),n=e.offsetWidth,i=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-i)<=1&&(i=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:i}}function ur(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&zn(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function qe(e){return ue(e).getComputedStyle(e)}function ta(e){return["table","td","th"].indexOf(Le(e))>=0}function Ie(e){return((tt(e)?e.ownerDocument:e.document)||window.document).documentElement}function Ct(e){return Le(e)==="html"?e:e.assignedSlot||e.parentNode||(zn(e)?e.host:null)||Ie(e)}function _u(e){return!xe(e)||qe(e).position==="fixed"?null:e.offsetParent}function Zh(e){var t=/firefox/i.test(qn()),n=/Trident/i.test(qn());if(n&&xe(e)){var i=qe(e);if(i.position==="fixed")return null}var r=Ct(e);for(zn(r)&&(r=r.host);xe(r)&&["html","body"].indexOf(Le(r))<0;){var o=qe(r);if(o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].indexOf(o.willChange)!==-1||t&&o.willChange==="filter"||t&&o.filter&&o.filter!=="none")return r;r=r.parentNode}return null}function ut(e){for(var t=ue(e),n=_u(e);n&&ta(n)&&qe(n).position==="static";)n=_u(n);return n&&(Le(n)==="html"||Le(n)==="body"&&qe(n).position==="static")?t:n||Zh(e)||t}function yn(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function bn(e,t,n){return lt(e,hn(t,n))}function Bu(e,t,n){var i=bn(e,t,n);return i>n?n:i}function pr(){return{top:0,right:0,bottom:0,left:0}}function cr(e){return Object.assign({},pr(),e)}function mr(e,t){return t.reduce(function(n,i){return n[i]=e,n},{})}var Qh=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,cr(typeof t!="number"?t:mr(t,Nt))};function Xh(e){var t,n=e.state,i=e.name,r=e.options,o=n.elements.arrow,s=n.modifiersData.popperOffsets,a=Ce(n.placement),l=yn(a),u=[de,he].indexOf(a)>=0,p=u?"height":"width";if(!(!o||!s)){var m=Qh(r.padding,n),c=gn(o),d=l==="y"?pe:de,h=l==="y"?we:he,g=n.rects.reference[p]+n.rects.reference[l]-s[l]-n.rects.popper[p],x=s[l]-n.rects.reference[l],b=ut(o),C=b?l==="y"?b.clientHeight||0:b.clientWidth||0:0,O=g/2-x/2,E=m[d],I=C-c[p]-m[h],T=C/2-c[p]/2+O,B=bn(E,T,I),M=l;n.modifiersData[i]=(t={},t[M]=B,t.centerOffset=B-T,t)}}function Jh(e){var t=e.state,n=e.options,i=n.element,r=i===void 0?"[data-popper-arrow]":i;r!=null&&(typeof r=="string"&&(r=t.elements.popper.querySelector(r),!r)||!ur(t.elements.popper,r)||(t.elements.arrow=r))}var Mu={name:"arrow",enabled:!0,phase:"main",fn:Xh,effect:Jh,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function it(e){return e.split("-")[1]}var eg={top:"auto",right:"auto",bottom:"auto",left:"auto"};function tg(e){var t=e.x,n=e.y,i=window,r=i.devicePixelRatio||1;return{x:Lt(t*r)/r||0,y:Lt(n*r)/r||0}}function Iu(e){var t,n=e.popper,i=e.popperRect,r=e.placement,o=e.variation,s=e.offsets,a=e.position,l=e.gpuAcceleration,u=e.adaptive,p=e.roundOffsets,m=e.isFixed,c=s.x,d=c===void 0?0:c,h=s.y,g=h===void 0?0:h,x=typeof p=="function"?p({x:d,y:g}):{x:d,y:g};d=x.x,g=x.y;var b=s.hasOwnProperty("x"),C=s.hasOwnProperty("y"),O=de,E=pe,I=window;if(u){var T=ut(n),B="clientHeight",M="clientWidth";if(T===ue(n)&&(T=Ie(n),qe(T).position!=="static"&&a==="absolute"&&(B="scrollHeight",M="scrollWidth")),T=T,r===pe||(r===de||r===he)&&o===fn){E=we;var P=m&&T===I&&I.visualViewport?I.visualViewport.height:T[B];g-=P-i.height,g*=l?1:-1}if(r===de||(r===pe||r===we)&&o===fn){O=he;var K=m&&T===I&&I.visualViewport?I.visualViewport.width:T[M];d-=K-i.width,d*=l?1:-1}}var Y=Object.assign({position:a},u&&eg),j=p===!0?tg({x:d,y:g}):{x:d,y:g};if(d=j.x,g=j.y,l){var F;return Object.assign({},Y,(F={},F[E]=C?"0":"",F[O]=b?"0":"",F.transform=(I.devicePixelRatio||1)<=1?"translate("+d+"px, "+g+"px)":"translate3d("+d+"px, "+g+"px, 0)",F))}return Object.assign({},Y,(t={},t[E]=C?g+"px":"",t[O]=b?d+"px":"",t.transform="",t))}function ng(e){var t=e.state,n=e.options,i=n.gpuAcceleration,r=i===void 0?!0:i,o=n.adaptive,s=o===void 0?!0:o,a=n.roundOffsets,l=a===void 0?!0:a;if(!1)var u;var p={placement:Ce(t.placement),variation:it(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Iu(Object.assign({},p,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Iu(Object.assign({},p,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var Fu={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:ng,data:{}};var Oo={passive:!0};function ig(e){var t=e.state,n=e.instance,i=e.options,r=i.scroll,o=r===void 0?!0:r,s=i.resize,a=s===void 0?!0:s,l=ue(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&u.forEach(function(p){p.addEventListener("scroll",n.update,Oo)}),a&&l.addEventListener("resize",n.update,Oo),function(){o&&u.forEach(function(p){p.removeEventListener("scroll",n.update,Oo)}),a&&l.removeEventListener("resize",n.update,Oo)}}var Ru={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:ig,data:{}};var rg={left:"right",right:"left",bottom:"top",top:"bottom"};function Kn(e){return e.replace(/left|right|bottom|top/g,function(t){return rg[t]})}var og={start:"end",end:"start"};function Ao(e){return e.replace(/start|end/g,function(t){return og[t]})}function wn(e){var t=ue(e),n=t.pageXOffset,i=t.pageYOffset;return{scrollLeft:n,scrollTop:i}}function xn(e){return nt(Ie(e)).left+wn(e).scrollLeft}function na(e,t){var n=ue(e),i=Ie(e),r=n.visualViewport,o=i.clientWidth,s=i.clientHeight,a=0,l=0;if(r){o=r.width,s=r.height;var u=lr();(u||!u&&t==="fixed")&&(a=r.offsetLeft,l=r.offsetTop)}return{width:o,height:s,x:a+xn(e),y:l}}function ia(e){var t,n=Ie(e),i=wn(e),r=(t=e.ownerDocument)==null?void 0:t.body,o=lt(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),s=lt(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-i.scrollLeft+xn(e),l=-i.scrollTop;return qe(r||n).direction==="rtl"&&(a+=lt(n.clientWidth,r?r.clientWidth:0)-o),{width:o,height:s,x:a,y:l}}function vn(e){var t=qe(e),n=t.overflow,i=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+i)}function Lo(e){return["html","body","#document"].indexOf(Le(e))>=0?e.ownerDocument.body:xe(e)&&vn(e)?e:Lo(Ct(e))}function Ht(e,t){var n;t===void 0&&(t=[]);var i=Lo(e),r=i===((n=e.ownerDocument)==null?void 0:n.body),o=ue(i),s=r?[o].concat(o.visualViewport||[],vn(i)?i:[]):i,a=t.concat(s);return r?a:a.concat(Ht(Ct(s)))}function jn(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function sg(e,t){var n=nt(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function $u(e,t,n){return t===So?jn(na(e,n)):tt(t)?sg(t,n):jn(ia(Ie(e)))}function ag(e){var t=Ht(Ct(e)),n=["absolute","fixed"].indexOf(qe(e).position)>=0,i=n&&xe(e)?ut(e):e;return tt(i)?t.filter(function(r){return tt(r)&&ur(r,i)&&Le(r)!=="body"}):[]}function ra(e,t,n,i){var r=t==="clippingParents"?ag(e):[].concat(t),o=[].concat(r,[n]),s=o[0],a=o.reduce(function(l,u){var p=$u(e,u,i);return l.top=lt(p.top,l.top),l.right=hn(p.right,l.right),l.bottom=hn(p.bottom,l.bottom),l.left=lt(p.left,l.left),l},$u(e,s,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function dr(e){var t=e.reference,n=e.element,i=e.placement,r=i?Ce(i):null,o=i?it(i):null,s=t.x+t.width/2-n.width/2,a=t.y+t.height/2-n.height/2,l;switch(r){case pe:l={x:s,y:t.y-n.height};break;case we:l={x:s,y:t.y+t.height};break;case he:l={x:t.x+t.width,y:a};break;case de:l={x:t.x-n.width,y:a};break;default:l={x:t.x,y:t.y}}var u=r?yn(r):null;if(u!=null){var p=u==="y"?"height":"width";switch(o){case At:l[u]=l[u]-(t[p]/2-n[p]/2);break;case fn:l[u]=l[u]+(t[p]/2-n[p]/2);break;default:}}return l}function pt(e,t){t===void 0&&(t={});var n=t,i=n.placement,r=i===void 0?e.placement:i,o=n.strategy,s=o===void 0?e.strategy:o,a=n.boundary,l=a===void 0?Au:a,u=n.rootBoundary,p=u===void 0?So:u,m=n.elementContext,c=m===void 0?Yn:m,d=n.altBoundary,h=d===void 0?!1:d,g=n.padding,x=g===void 0?0:g,b=cr(typeof x!="number"?x:mr(x,Nt)),C=c===Yn?Lu:Yn,O=e.rects.popper,E=e.elements[h?C:c],I=ra(tt(E)?E:E.contextElement||Ie(e.elements.popper),l,p,s),T=nt(e.elements.reference),B=dr({reference:T,element:O,strategy:"absolute",placement:r}),M=jn(Object.assign({},O,B)),P=c===Yn?M:T,K={top:I.top-P.top+b.top,bottom:P.bottom-I.bottom+b.bottom,left:I.left-P.left+b.left,right:P.right-I.right+b.right},Y=e.modifiersData.offset;if(c===Yn&&Y){var j=Y[r];Object.keys(K).forEach(function(F){var V=[he,we].indexOf(F)>=0?1:-1,X=[pe,we].indexOf(F)>=0?"y":"x";K[F]+=j[X]*V})}return K}function oa(e,t){t===void 0&&(t={});var n=t,i=n.placement,r=n.boundary,o=n.rootBoundary,s=n.padding,a=n.flipVariations,l=n.allowedAutoPlacements,u=l===void 0?To:l,p=it(i),m=p?a?ea:ea.filter(function(h){return it(h)===p}):Nt,c=m.filter(function(h){return u.indexOf(h)>=0});c.length===0&&(c=m);var d=c.reduce(function(h,g){return h[g]=pt(e,{placement:g,boundary:r,rootBoundary:o,padding:s})[Ce(g)],h},{});return Object.keys(d).sort(function(h,g){return d[h]-d[g]})}function lg(e){if(Ce(e)===ko)return[];var t=Kn(e);return[Ao(e),t,Ao(t)]}function ug(e){var t=e.state,n=e.options,i=e.name;if(!t.modifiersData[i]._skip){for(var r=n.mainAxis,o=r===void 0?!0:r,s=n.altAxis,a=s===void 0?!0:s,l=n.fallbackPlacements,u=n.padding,p=n.boundary,m=n.rootBoundary,c=n.altBoundary,d=n.flipVariations,h=d===void 0?!0:d,g=n.allowedAutoPlacements,x=t.options.placement,b=Ce(x),C=b===x,O=l||(C||!h?[Kn(x)]:lg(x)),E=[x].concat(O).reduce(function(Ke,Ne){return Ke.concat(Ce(Ne)===ko?oa(t,{placement:Ne,boundary:p,rootBoundary:m,padding:u,flipVariations:h,allowedAutoPlacements:g}):Ne)},[]),I=t.rects.reference,T=t.rects.popper,B=new Map,M=!0,P=E[0],K=0;K=0,X=V?"width":"height",G=pt(t,{placement:Y,boundary:p,rootBoundary:m,altBoundary:c,padding:u}),se=V?F?he:de:F?we:pe;I[X]>T[X]&&(se=Kn(se));var ae=Kn(se),le=[];if(o&&le.push(G[j]<=0),a&&le.push(G[se]<=0,G[ae]<=0),le.every(function(Ke){return Ke})){P=Y,M=!1;break}B.set(Y,le)}if(M)for(var ne=h?3:1,w=function(Ne){var rt=E.find(function(je){var J=B.get(je);if(J)return J.slice(0,Ne).every(function(bt){return bt})});if(rt)return P=rt,"break"},y=ne;y>0;y--){var ct=w(y);if(ct==="break")break}t.placement!==P&&(t.modifiersData[i]._skip=!0,t.placement=P,t.reset=!0)}}var Du={name:"flip",enabled:!0,phase:"main",fn:ug,requiresIfExists:["offset"],data:{_skip:!1}};function Pu(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Nu(e){return[pe,he,we,de].some(function(t){return e[t]>=0})}function pg(e){var t=e.state,n=e.name,i=t.rects.reference,r=t.rects.popper,o=t.modifiersData.preventOverflow,s=pt(t,{elementContext:"reference"}),a=pt(t,{altBoundary:!0}),l=Pu(s,i),u=Pu(a,r,o),p=Nu(l),m=Nu(u);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:p,hasPopperEscaped:m},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":m})}var Hu={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:pg};function cg(e,t,n){var i=Ce(e),r=[de,pe].indexOf(i)>=0?-1:1,o=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,s=o[0],a=o[1];return s=s||0,a=(a||0)*r,[de,he].indexOf(i)>=0?{x:a,y:s}:{x:s,y:a}}function mg(e){var t=e.state,n=e.options,i=e.name,r=n.offset,o=r===void 0?[0,0]:r,s=To.reduce(function(p,m){return p[m]=cg(m,t.rects,o),p},{}),a=s[t.placement],l=a.x,u=a.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[i]=s}var Yu={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:mg};function dg(e){var t=e.state,n=e.name;t.modifiersData[n]=dr({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var zu={name:"popperOffsets",enabled:!0,phase:"read",fn:dg,data:{}};function sa(e){return e==="x"?"y":"x"}function fg(e){var t=e.state,n=e.options,i=e.name,r=n.mainAxis,o=r===void 0?!0:r,s=n.altAxis,a=s===void 0?!1:s,l=n.boundary,u=n.rootBoundary,p=n.altBoundary,m=n.padding,c=n.tether,d=c===void 0?!0:c,h=n.tetherOffset,g=h===void 0?0:h,x=pt(t,{boundary:l,rootBoundary:u,padding:m,altBoundary:p}),b=Ce(t.placement),C=it(t.placement),O=!C,E=yn(b),I=sa(E),T=t.modifiersData.popperOffsets,B=t.rects.reference,M=t.rects.popper,P=typeof g=="function"?g(Object.assign({},t.rects,{placement:t.placement})):g,K=typeof P=="number"?{mainAxis:P,altAxis:P}:Object.assign({mainAxis:0,altAxis:0},P),Y=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,j={x:0,y:0};if(!!T){if(o){var F,V=E==="y"?pe:de,X=E==="y"?we:he,G=E==="y"?"height":"width",se=T[E],ae=se+x[V],le=se-x[X],ne=d?-M[G]/2:0,w=C===At?B[G]:M[G],y=C===At?-M[G]:-B[G],ct=t.elements.arrow,Ke=d&&ct?gn(ct):{width:0,height:0},Ne=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:pr(),rt=Ne[V],je=Ne[X],J=bn(0,B[G],Ke[G]),bt=O?B[G]/2-ne-J-rt-K.mainAxis:w-J-rt-K.mainAxis,ot=O?-B[G]/2+ne+J+je+K.mainAxis:y+J+je+K.mainAxis,mt=t.elements.arrow&&ut(t.elements.arrow),Et=mt?E==="y"?mt.clientTop||0:mt.clientLeft||0:0,Yt=(F=Y?.[E])!=null?F:0,Mo=se+bt-Yt-Et,Io=se+ot-Yt,hr=bn(d?hn(ae,Mo):ae,se,d?lt(le,Io):le);T[E]=hr,j[E]=hr-se}if(a){var Wn,gr=E==="x"?pe:de,yr=E==="x"?we:he,wt=T[I],zt=I==="y"?"height":"width",Un=wt+x[gr],br=wt-x[yr],Gn=[pe,de].indexOf(b)!==-1,wr=(Wn=Y?.[I])!=null?Wn:0,xr=Gn?Un:wt-B[zt]-M[zt]-wr+K.altAxis,vr=Gn?wt+B[zt]+M[zt]-wr-K.altAxis:br,L=d&&Gn?Bu(xr,wt,vr):bn(d?xr:Un,wt,d?vr:br);T[I]=L,j[I]=L-wt}t.modifiersData[i]=j}}var qu={name:"preventOverflow",enabled:!0,phase:"main",fn:fg,requiresIfExists:["offset"]};function aa(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function la(e){return e===ue(e)||!xe(e)?wn(e):aa(e)}function hg(e){var t=e.getBoundingClientRect(),n=Lt(t.width)/e.offsetWidth||1,i=Lt(t.height)/e.offsetHeight||1;return n!==1||i!==1}function ua(e,t,n){n===void 0&&(n=!1);var i=xe(t),r=xe(t)&&hg(t),o=Ie(t),s=nt(e,r,n),a={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(i||!i&&!n)&&((Le(t)!=="body"||vn(o))&&(a=la(t)),xe(t)?(l=nt(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):o&&(l.x=xn(o))),{x:s.left+a.scrollLeft-l.x,y:s.top+a.scrollTop-l.y,width:s.width,height:s.height}}function gg(e){var t=new Map,n=new Set,i=[];e.forEach(function(o){t.set(o.name,o)});function r(o){n.add(o.name);var s=[].concat(o.requires||[],o.requiresIfExists||[]);s.forEach(function(a){if(!n.has(a)){var l=t.get(a);l&&r(l)}}),i.push(o)}return e.forEach(function(o){n.has(o.name)||r(o)}),i}function pa(e){var t=gg(e);return Cu.reduce(function(n,i){return n.concat(t.filter(function(r){return r.phase===i}))},[])}function ca(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function ma(e){var t=e.reduce(function(n,i){var r=n[i.name];return n[i.name]=r?Object.assign({},r,i,{options:Object.assign({},r.options,i.options),data:Object.assign({},r.data,i.data)}):i,n},{});return Object.keys(t).map(function(n){return t[n]})}var Ku={placement:"bottom",modifiers:[],strategy:"absolute"};function ju(){for(var e=arguments.length,t=new Array(e),n=0;n(e%t+t)%t,fa=class{constructor(t,n,i){this.owner=t,this.containerEl=n,n.on("click",".suggestion-item",this.onSuggestionClick.bind(this)),n.on("mousemove",".suggestion-item",this.onSuggestionMouseover.bind(this)),i.register([],"ArrowUp",r=>{if(!r.isComposing)return this.setSelectedItem(this.selectedItem-1,!0),!1}),i.register([],"ArrowDown",r=>{if(!r.isComposing)return this.setSelectedItem(this.selectedItem+1,!0),!1}),i.register([],"Enter",r=>{if(!r.isComposing)return this.useSelectedItem(r),!1})}onSuggestionClick(t,n){t.preventDefault();let i=this.suggestions.indexOf(n);this.setSelectedItem(i,!1),this.useSelectedItem(t)}onSuggestionMouseover(t,n){let i=this.suggestions.indexOf(n);this.setSelectedItem(i,!1)}setSuggestions(t){this.containerEl.empty();let n=[];t.forEach(i=>{let r=this.containerEl.createDiv("suggestion-item");this.owner.renderSuggestion(i,r),n.push(r)}),this.values=t,this.suggestions=n,this.setSelectedItem(0,!1)}useSelectedItem(t){let n=this.values[this.selectedItem];n&&this.owner.selectSuggestion(n,t)}setSelectedItem(t,n){let i=bg(t,this.suggestions.length),r=this.suggestions[this.selectedItem],o=this.suggestions[i];r?.removeClass("is-selected"),o?.addClass("is-selected"),this.selectedItem=i,n&&o.scrollIntoView(!1)}},Co=class{constructor(t,n){this.app=t,this.inputEl=n,this.scope=new Wu.Scope,this.suggestEl=createDiv("suggestion-container");let i=this.suggestEl.createDiv("suggestion");this.suggest=new fa(this,i,this.scope),this.scope.register([],"Escape",this.close.bind(this)),this.inputEl.addEventListener("input",this.onInputChanged.bind(this)),this.inputEl.addEventListener("focus",this.onInputChanged.bind(this)),this.inputEl.addEventListener("blur",this.close.bind(this)),this.suggestEl.on("mousedown",".suggestion-container",r=>{r.preventDefault()})}onInputChanged(){let t=this.inputEl.value,n=this.getSuggestions(t);if(!n){this.close();return}n.length>0?(this.suggest.setSuggestions(n),this.open(this.app.dom.appContainerEl,this.inputEl)):this.close()}open(t,n){this.app.keymap.pushScope(this.scope),t.appendChild(this.suggestEl),this.popper=da(n,this.suggestEl,{placement:"bottom-start",modifiers:[{name:"sameWidth",enabled:!0,fn:({state:i,instance:r})=>{let o=`${i.rects.reference.width}px`;i.styles.popper.width!==o&&(i.styles.popper.width=o,r.update())},phase:"beforeWrite",requires:["computeStyles"]}]})}close(){this.app.keymap.popScope(this.scope),this.suggest.setSuggestions([]),this.popper&&this.popper.destroy(),this.suggestEl.detach()}};var fr=class extends Co{constructor(n,i,r=[]){super(n,i);this.app=n;this.inputEl=i;this.valuesToExclude=r}getSuggestions(n){let i=this.app.commands.listCommands();if(!i)return[];let r=i.filter(a=>{for(let l of this.valuesToExclude)if(l.id==a.id&&!(this.inputEl.hasAttribute("commandId")&&this.inputEl.getAttribute("commandId")==a.id))return!1;return!0}),o=[],s=n.toLowerCase();return r.forEach(a=>{(a.id.contains(s)||a.name.toLowerCase().contains(s))&&o.push(a)}),o}renderSuggestion(n,i){i.setText(n.name)}selectSuggestion(n){this.inputEl.value=n.name,this.inputEl.setAttribute("commandId",n.id),this.inputEl.trigger("input"),this.close()}};var wg={General:Me.general.id,Custom:Me.custom.id,YAML:Me.yaml.id,Heading:Me.heading.id,Footnote:Me.footer.id,Content:Me.content.id,Spacing:Me.whitespace.id,Paste:Me.paste.id},Eo=class extends ce.PluginSettingTab{constructor(n,i){super(n,i);this.tabContent=new Map;this.selectedTab="General";this.searchSettingInfo=new Map;this.plugin=i}display(){let{containerEl:n}=this;n.empty(),this.generateSettingsTitle(n,ce.Platform.isMobile);let r=n.createEl("nav",{cls:"linter-setting-header"}).createDiv("linter-setting-tab-group"),o=n.createDiv("linter-setting-content");this.createTabAndContent("General",r,o,(l,u)=>this.generateGeneralSettings(u,l));let s="",a="";for(let l of gt)l.type!==s&&(a=l.type,this.createTabAndContent(a,r,o),s=l.type),this.addRuleToTab(a,l);this.createTabAndContent("Custom",r,o,(l,u)=>this.generateCustomCommandSettings(u,l)),this.createSearchZeroState(o)}createTabAndContent(n,i,r,o){let s=this.selectedTab===n,a=i.createDiv("linter-navigation-item"),l="linter-desktop";ce.Platform.isMobile&&(l="linter-mobile"),a.addClass(l),(0,ce.setIcon)(a.createSpan({cls:"linter-navigation-item-icon"}),wg[n],20),a.createSpan().setText(n),a.onclick=()=>{if(this.selectedTab==n)return;a.addClass("linter-navigation-item-selected");let m=this.tabContent.get(n);if(this.unhideEl(m.content),this.selectedTab!=""){let c=this.tabContent.get(this.selectedTab);c.navButton.removeClass("linter-navigation-item-selected"),this.hideEl(c.content)}else{this.hideEl(this.searchZeroState);for(let c of this.searchSettingInfo)for(let d of c[1])this.unhideEl(d.containerEl);for(let c of this.tabContent){let d=c[1];this.hideEl(d.heading),n!==c[0]&&this.hideEl(d.content)}}this.selectedTab=n};let u=r.createDiv("linter-tab-settings"),p=u.createEl("h2",{text:n+" Settings"});this.hideEl(p),u.id=n.toLowerCase().replace(" ","-"),s?a.addClass("linter-navigation-item-selected"):this.hideEl(u),o&&o(u,n),this.tabContent.set(n,{content:u,heading:p,navButton:a})}addRuleToTab(n,i){let r=this.tabContent.get(n).content;if(r==null)return;let o=r.createDiv();o.id=i.alias(),o.createEl(ce.Platform.isMobile?"h4":"h3",{},a=>{a.innerHTML=`${i.name}`});let s=[];for(let a of i.options)a.display(o,this.plugin.settings,this.plugin),s.push(a.searchInfo);this.addSettingToMasterSettingsList(n,o,i.name.toLowerCase(),i.description.toLowerCase(),s,o.id)}generateCustomCommandSettings(n,i){i.createEl(ce.Platform.isMobile?"h4":"h3",{text:"Custom Commands"});let r=`Custom commands are Obsidian commands that get run after the linter is finished running its regular rules. This means that they do not run before the YAML timestamp logic runs, so they can cause YAML timestamp to be triggered on the next run of the linter. You may only select an Obsidian command once. **_Note that this currently only works on linting the current file._**`,o=`When selecting an option, make sure to select the option either by using the mouse or by hitting the enter key. - Other selection methods may not work and only selections of an actual Obsidian command or an empty string will be saved.`;this.addSettingToMasterSettingsList(n,r,n.toLowerCase(),i.replaceAll(` + Other selection methods may not work and only selections of an actual Obsidian command or an empty string will be saved.`;this.addSettingToMasterSettingsList(n,i,n.toLowerCase(),r.replaceAll(` `," ")+o.replaceAll(` -`," ")),r.createEl("p").innerHTML=ct(i),r.createEl("p",{text:o}).style.color="#EED202";function a(s,l,u){if(u<0||u===s.length)return;let c=s[l];s[l]=s[u],s[u]=c}new Ne.Setting(r).addButton(s=>{s.setButtonText("Add new command").setCta().onClick(()=>{this.plugin.settings.lintCommands.push({id:"",name:""}),this.plugin.saveSettings(),this.display();let l=document.getElementsByClassName("linter-custom-command");l[l.length-1].focus()})}),this.plugin.settings.lintCommands.forEach((s,l)=>{new Ne.Setting(r).addSearch(u=>{new Xi(this.app,u.inputEl,this.plugin.settings.lintCommands),u.setPlaceholder("Obsidian command").setValue(s.name).onChange(c=>{let p={id:u.inputEl.getAttribute("commandId"),name:c};p.name&&p.id?(this.plugin.settings.lintCommands[l]=p,this.plugin.saveSettings()):!p.name&&!p.id&&(this.plugin.settings.lintCommands[l]=p,this.plugin.saveSettings())}),u.inputEl.setAttr("tabIndex",l),u.inputEl.addClass("linter-custom-command")}).addExtraButton(u=>{u.setIcon("up-chevron-glyph").setTooltip("Move up").onClick(()=>{a(this.plugin.settings.lintCommands,l,l-1),this.plugin.saveSettings(),this.display()})}).addExtraButton(u=>{u.setIcon("down-chevron-glyph").setTooltip("Move down").onClick(()=>{a(this.plugin.settings.lintCommands,l,l+1),this.plugin.saveSettings(),this.display()})}).addExtraButton(u=>{u.setIcon("cross").setTooltip("Delete").onClick(()=>{this.plugin.settings.lintCommands.splice(l,1),this.plugin.saveSettings(),this.display()})})})}generateGeneralSettings(n,r){var u;let i=r.createDiv(),o="Lint on save",a="Lint the file on manual save (when `Ctrl + S` is pressed or when `:w` is executed while using vim keybindings)",s=new Ne.Setting(i).setName(o).addToggle(c=>{c.setValue(this.plugin.settings.lintOnSave).onChange(async p=>{this.plugin.settings.lintOnSave=p,await this.plugin.saveSettings()})});s.descEl.innerHTML=ct(a),this.addSettingToMasterSettingsList(n,i,o,a),i=r.createDiv(),o="Display message on lint",a="Display the number of characters changed after linting",new Ne.Setting(i).setName(o).setDesc(a).addToggle(c=>{c.setValue(this.plugin.settings.displayChanged).onChange(async p=>{this.plugin.settings.displayChanged=p,await this.plugin.saveSettings()})}),this.addSettingToMasterSettingsList(n,i,o,a),i=r.createDiv(),o="Folders to ignore",a="Folders to ignore when linting all files or linting on save. Enter folder paths separated by newlines",new Ne.Setting(i).setName(o).setDesc(a).addTextArea(c=>{c.setValue(this.plugin.settings.foldersToIgnore.join(` -`)).onChange(async p=>{this.plugin.settings.foldersToIgnore=p.split(` -`),await this.plugin.saveSettings()})}),this.addSettingToMasterSettingsList(n,i,o,a);let l=(u=navigator.language)==null?void 0:u.toLowerCase();i=r.createDiv(),o="Override locale",a="Set this if you want to use a locale different from the default",new Ne.Setting(i).setName(o).setDesc(a).addDropdown(c=>{c.addOption("system-default",`Same as system (${l})`),sd.moment.locales().forEach(p=>{c.addOption(p,p)}),c.setValue(this.plugin.settings.linterLocale),c.onChange(async p=>{this.plugin.settings.linterLocale=p,await this.plugin.setOrUpdateMomentInstance(),await this.plugin.saveSettings()})}),this.addSettingToMasterSettingsList(n,i,o,a)}generateSearchBar(n){let r=new Ne.Setting(n);r.settingEl.style.border="none",r.addSearch(i=>{this.search=i}),this.search.setPlaceholder("Search all settings"),this.search.inputEl.onfocus=()=>{for(let i of this.tabContent){let o=i[1];o.navButton.removeClass("linter-navigation-item-selected"),this.unhideEl(o.content),this.unhideEl(o.heading);let a=this.search.getValue();this.selectedTab==""&&a.trim()!=""&&this.searchSettings(a.toLowerCase()),this.selectedTab=""}},this.search.onChange(i=>{this.searchSettings(i.toLowerCase())})}generateSettingsTitle(n,r){let i=n.createDiv("linter-setting-title");r?i.addClass("linter-mobile"):i.createEl("h1").setText("Linter"),this.generateSearchBar(i)}searchSettings(n){var a;let r=new Set,i=this,o=function(s,l){i.unhideEl(s),r.has(l)||r.add(l)};for(let s of this.searchSettingInfo){let l=s[0],u=s[1];for(let c of u)if(n.trim()===""||((a=c.alias)==null?void 0:a.includes(n))||c.description.includes(n)||c.name.includes(n))o(c.containerEl,l);else if(c.options)for(let p of c.options){if(p.description.toLowerCase().includes(n)||p.name.toLowerCase().includes(n)){o(c.containerEl,l);break}else if(p.options){for(let m of p.options)if(m.description.toLowerCase().includes(n)||m.value.toLowerCase().includes(n)){o(c.containerEl,l);break}}this.hideEl(c.containerEl)}else this.hideEl(c.containerEl)}for(let s of this.tabContent)r.has(s[0])?this.unhideEl(s[1].heading):this.hideEl(s[1].heading);r.size===0?this.unhideEl(this.searchZeroState):this.hideEl(this.searchZeroState)}createSearchZeroState(n){this.searchZeroState=n.createDiv(),this.hideEl(this.searchZeroState),this.searchZeroState.createEl(Ne.Platform.isMobile?"h3":"h2",{text:"No settings match search"}).style.textAlign="center"}addSettingToMasterSettingsList(n,r,i="",o="",a=null,s=null){let l={containerEl:r,name:i.toLowerCase(),description:o.toLowerCase(),options:a,alias:s};this.searchSettingInfo.has(n)?this.searchSettingInfo.get(n).push(l):this.searchSettingInfo.set(n,[l])}hideEl(n){n.addClass("linter-visually-hidden")}unhideEl(n){n.removeClass("linter-visually-hidden")}};var gx={en:"en-gb",zh:"zh-cn","zh-TW":"zh-tw",ru:"ru",ko:"ko",it:"it",id:"id",ro:"ro","pt-BR":"pt-br",cz:"cs",da:"da",de:"de",es:"es",fr:"fr",no:"nn",pl:"pl",pt:"pt",tr:"tr",hi:"hi",nl:"nl",ar:"ar",ja:"ja"},Ha=class extends xe.Plugin{constructor(){super(...arguments);this.isEnabled=!0;this.rulesRunner=new _a}async onload(){var o,a;ni("Loading plugin"),this.isEnabled=!0;for(let s in Qe){let l=Qe[s];(0,xe.addIcon)(l.id,l.source)}await this.loadSettings(),this.addCommand({id:"lint-file",name:"Lint the current file",editorCallback:s=>this.runLinterEditor(s),icon:Qe.file.id,hotkeys:[{modifiers:["Mod","Alt"],key:"l"}]}),this.addCommand({id:"lint-all-files",name:"Lint all files in the vault",icon:Qe.vault.id,callback:()=>{let s="This will edit all of your files and may introduce errors.",l="Lint All",u="Linting all files...";new Vi(this.app,s,l,u,()=>this.runLinterAllFiles(this.app)).open()}}),this.addCommand({id:"lint-all-files-in-folder",name:"Lint all files in the current folder",icon:Qe.folder.id,editorCheckCallback:(s,l)=>{if(s)return!this.app.workspace.getActiveFile().parent.isRoot();this.createFolderLintModal(this.app.workspace.getActiveFile().parent)}}),this.registerEvent(this.app.workspace.on("file-menu",(s,l)=>{l instanceof xe.TFolder&&s.addItem(u=>{u.setTitle("Lint folder").setIcon(Qe.folder.id).onClick(()=>this.createFolderLintModal(l))})})),this.eventRef=this.app.workspace.on("file-menu",(s,l,u)=>this.onMenuOpenCallback(s,l,u)),this.registerEvent(this.eventRef);let n=(a=(o=this.app.commands)==null?void 0:o.commands)==null?void 0:a["editor:save-file"];typeof(n==null?void 0:n.callback)=="function"&&(n.callback=()=>{if(this.settings.lintOnSave&&this.isEnabled){let s=this.app.workspace.getActiveViewOfType(xe.MarkdownView).editor,l=this.app.workspace.getActiveFile();this.shouldIgnoreFile(l)||this.runLinterEditor(s)}});let i=this;window.CodeMirrorAdapter.commands.save=()=>{i.app.commands.executeCommandById("editor:save-file")},this.addSettingTab(new za(this.app,this))}async onunload(){ni("Unloading plugin"),this.isEnabled=!1,this.app.workspace.offref(this.eventRef)}async loadSettings(){this.settings={ruleConfigs:{},lintOnSave:!1,displayChanged:!0,foldersToIgnore:[],linterLocale:"system-default",logLevel:ld.default.levels.ERROR,lintCommands:[]};let r=await this.loadData()||{};for(let i of Nt)if(this.settings.ruleConfigs[i.name]=i.getDefaultOptions(),(r==null?void 0:r.ruleConfigs)&&(r==null?void 0:r.ruleConfigs[i.name])&&(Object.assign(this.settings.ruleConfigs[i.name],r.ruleConfigs[i.name]),r.ruleConfigs[i.name].Enabled!==void 0)){let o=i.enabledOptionName();this.settings.ruleConfigs[i.name][o]=r.ruleConfigs[i.name].Enabled,delete this.settings.ruleConfigs[i.name].Enabled}Object.prototype.hasOwnProperty.call(r,"lintOnSave")&&(this.settings.lintOnSave=r.lintOnSave),Object.prototype.hasOwnProperty.call(r,"displayChanged")&&(this.settings.displayChanged=r.displayChanged),Object.prototype.hasOwnProperty.call(r,"foldersToIgnore")&&(this.settings.foldersToIgnore=r.foldersToIgnore),Object.prototype.hasOwnProperty.call(r,"linterLocale")&&(this.settings.linterLocale=r.linterLocale),Object.prototype.hasOwnProperty.call(r,"logLevel")&&(this.settings.logLevel=r.logLevel),Object.prototype.hasOwnProperty.call(r,"lintCommands")&&(this.settings.lintCommands=r.lintCommands),Rf(this.settings.logLevel),this.setOrUpdateMomentInstance()}async saveSettings(){await this.saveData(this.settings)}onMenuOpenCallback(n,r,i){r instanceof xe.TFile&&r.extension==="md"&&n.addItem(o=>{o.setIcon(Qe.file.id),o.setTitle("Lint file"),o.onClick(async a=>{this.runLinterFile(r)})})}shouldIgnoreFile(n){for(let r of this.settings.foldersToIgnore)if(r.length>0&&n.path.startsWith(r))return!0;return!1}async runLinterFile(n){let r=gc(await this.app.vault.read(n)),i=this.rulesRunner.lintText(tu(r,n,this.momentLocale,this.settings));await this.app.vault.modify(n,i)}async runLinterAllFiles(n){let r=0;await Promise.all(n.vault.getMarkdownFiles().map(async o=>{if(!this.shouldIgnoreFile(o))try{await this.runLinterFile(o)}catch(a){this.handleLintError(o,a,"Lint All Files Error in File '${file.path}'"),r+=1}}));let i=0;if(r===0)new xe.Notice("Linted all files",i);else{let o=r===1?"was 1 error":"were "+r+" errors";new xe.Notice("Linted all files and there "+o+".",i)}}async runLinterAllFilesInFolder(n){ni("Linting folder "+n.name);let r=0,i=0,o=(0,xe.normalizePath)(n.path)+"/";await Promise.all(this.app.vault.getMarkdownFiles().map(async s=>{if((0,xe.normalizePath)(s.path).startsWith(o)&&!this.shouldIgnoreFile(s)){try{await this.runLinterFile(s)}catch(l){this.handleLintError(s,l,"Lint All Files in Folder Error in File '${file.path}'"),r+=1}i++}}));let a=0;if(r===0)new xe.Notice("Linted all "+i+" files in "+n.name+".",a);else{let s=r===1?"was 1 error":"were "+r+" errors";new xe.Notice("Linted all "+i+" files in "+n.name+" and there "+s+".",a)}}createFolderLintModal(n){let r="This will edit all of your files in "+n.name+" including files in its subfolders which may introduce errors.",i="Lint All Files in "+n.name,o="Linting all files in "+n.name+"...";new Vi(this.app,r,i,o,()=>this.runLinterAllFilesInFolder(n)).open()}runLinterEditor(n){ni("Running linter");let r=this.app.workspace.getActiveFile(),i=n.getValue(),o;try{o=this.rulesRunner.lintText(tu(i,r,this.momentLocale,this.settings))}catch(p){this.handleLintError(r,p,"Lint File Error in File '${file.path}'",!1)}let s=new Tr.default.diff_match_patch().diff_main(i,o),l="";s.forEach(p=>{function m(h){let g=h.split(` -`);return{line:g.length-1,ch:g[g.length-1].length}}let[f,d]=p;if(f==Tr.default.DIFF_INSERT)n.replaceRange(d,m(l)),l+=d;else if(f==Tr.default.DIFF_DELETE){let h=m(l),g=l;g+=d;let b=m(g);n.replaceRange("",h,b)}else l+=d});let u=s.map(p=>p[0]==Tr.default.DIFF_INSERT?p[1].length:0).reduce((p,m)=>p+m,0),c=s.map(p=>p[0]==Tr.default.DIFF_DELETE?p[1].length:0).reduce((p,m)=>p+m,0);this.displayChangedMessage(u,c);try{this.rulesRunner.runCustomCommands(this.settings.lintCommands,this.app.commands)}catch(p){this.handleLintError(r,p,"Lint File Error in File '${file.path}'",!1)}}async setOrUpdateMomentInstance(){var s;let n=localStorage.getItem("language")||"en",r=(s=navigator.language)==null?void 0:s.toLowerCase(),i=gx[n];this.settings.linterLocale!=="system-default"?i=this.settings.linterLocale:r.startsWith(n)&&(i=r),this.momentLocale=i;let o=$a.moment.locale(),a=$a.moment.locale(i);mn(`Trying to switch Moment.js locale to ${i}, got ${a}`),$a.moment.locale(o)}displayChangedMessage(n,r){if(this.settings.displayChanged){let i=y` +`," ")),We(r,i.createEl("p")),i.createEl("p",{text:o}).style.color="#EED202";function s(a,l,u){if(u<0||u===a.length)return;let p=a[l];a[l]=a[u],a[u]=p}new ce.Setting(i).addButton(a=>{a.setButtonText("Add new command").setCta().onClick(()=>{this.plugin.settings.lintCommands.push({id:"",name:""}),this.plugin.saveSettings(),this.display();let l=document.getElementsByClassName("linter-custom-command");l[l.length-1].focus()})}),this.plugin.settings.lintCommands.forEach((a,l)=>{new ce.Setting(i).addSearch(u=>{new fr(this.app,u.inputEl,this.plugin.settings.lintCommands),u.setPlaceholder("Obsidian command").setValue(a.name).onChange(p=>{let m={id:u.inputEl.getAttribute("commandId"),name:p};m.name&&m.id?(this.plugin.settings.lintCommands[l]=m,this.plugin.saveSettings()):!m.name&&!m.id&&(this.plugin.settings.lintCommands[l]=m,this.plugin.saveSettings())}),u.inputEl.setAttr("tabIndex",l),u.inputEl.addClass("linter-custom-command")}).addExtraButton(u=>{u.setIcon("up-chevron-glyph").setTooltip("Move up").onClick(()=>{s(this.plugin.settings.lintCommands,l,l-1),this.plugin.saveSettings(),this.display()})}).addExtraButton(u=>{u.setIcon("down-chevron-glyph").setTooltip("Move down").onClick(()=>{s(this.plugin.settings.lintCommands,l,l+1),this.plugin.saveSettings(),this.display()})}).addExtraButton(u=>{u.setIcon("cross").setTooltip("Delete").onClick(()=>{this.plugin.settings.lintCommands.splice(l,1),this.plugin.saveSettings(),this.display()})})})}generateGeneralSettings(n,i){let r=i.createDiv(),o="Lint on save",s="Lint the file on manual save (when `Ctrl + S` is pressed or when `:w` is executed while using vim keybindings)",a=new ce.Setting(r).setName(o).addToggle(c=>{c.setValue(this.plugin.settings.lintOnSave).onChange(async d=>{this.plugin.settings.lintOnSave=d,await this.plugin.saveSettings()})});We(s,a.descEl),this.addSettingToMasterSettingsList(n,r,o,s),r=i.createDiv(),o="Display message on lint",s="Display the number of characters changed after linting",new ce.Setting(r).setName(o).setDesc(s).addToggle(c=>{c.setValue(this.plugin.settings.displayChanged).onChange(async d=>{this.plugin.settings.displayChanged=d,await this.plugin.saveSettings()})}),this.addSettingToMasterSettingsList(n,r,o,s),r=i.createDiv(),o="Folders to ignore",s="Folders to ignore when linting all files or linting on save. Enter folder paths separated by newlines",new ce.Setting(r).setName(o).setDesc(s).addTextArea(c=>{c.setValue(this.plugin.settings.foldersToIgnore.join(` +`)).onChange(async d=>{this.plugin.settings.foldersToIgnore=d.split(` +`),await this.plugin.saveSettings()})}),this.addSettingToMasterSettingsList(n,r,o,s);let l=navigator.language?.toLowerCase();r=i.createDiv(),o="Override locale",s="Set this if you want to use a locale different from the default",new ce.Setting(r).setName(o).setDesc(s).addDropdown(c=>{c.addOption("system-default",`Same as system (${l})`),Uu.moment.locales().forEach(d=>{c.addOption(d,d)}),c.setValue(this.plugin.settings.linterLocale),c.onChange(async d=>{this.plugin.settings.linterLocale=d,await this.plugin.setOrUpdateMomentInstance(),await this.plugin.saveSettings()})}),this.addSettingToMasterSettingsList(n,r,o,s);let u=["multi-line","single-line","single string comma delimited","single string to single-line","single string to multi-line"];r=i.createDiv(),o="YAML aliases section style",s="The style of the YAML aliases section",new ce.Setting(r).setName(o).setDesc(s).addDropdown(c=>{u.forEach(d=>{c.addOption(d,d)}),c.setValue(this.plugin.settings.commonStyles.aliasArrayStyle),c.onChange(async d=>{this.plugin.settings.commonStyles.aliasArrayStyle=d,await this.plugin.saveSettings()})}),this.addSettingToMasterSettingsList(n,r,o,s);let p=["multi-line","single-line","single string to single-line","single string to multi-line","single-line space delimited","single string space delimited","single string comma delimited"];r=i.createDiv(),o="YAML tags section style",s="The style of the YAML tags section",new ce.Setting(r).setName(o).setDesc(s).addDropdown(c=>{p.forEach(d=>{c.addOption(d,d)}),c.setValue(this.plugin.settings.commonStyles.tagArrayStyle),c.onChange(async d=>{this.plugin.settings.commonStyles.tagArrayStyle=d,await this.plugin.saveSettings()})}),this.addSettingToMasterSettingsList(n,r,o,s);let m=['"',"'"];r=i.createDiv(),o="Default Escape Character",s="The default character to use to escape YAML values when a single quote and double quote are not present.",new ce.Setting(r).setName(o).setDesc(s).addDropdown(c=>{m.forEach(d=>{c.addOption(d,d)}),c.setValue(this.plugin.settings.commonStyles.escapeCharacter),c.onChange(async d=>{this.plugin.settings.commonStyles.escapeCharacter=d,await this.plugin.saveSettings()})}),this.addSettingToMasterSettingsList(n,r,o,s),r=i.createDiv(),o="Number of Dollar Signs to Indicate Math Block",s="The amount of dollar signs to consider the math content to be a math block instead of inline math",new ce.Setting(r).setName(o).setDesc(s).addText(c=>{c.setValue(this.plugin.settings.commonStyles.minimumNumberOfDollarSignsToBeAMathBlock.toString()).onChange(async d=>{let h=parseInt(d);isNaN(h)&&(h=2),this.plugin.settings.commonStyles.minimumNumberOfDollarSignsToBeAMathBlock=h,await this.plugin.saveSettings()})}),this.addSettingToMasterSettingsList(n,r,o,s)}generateSearchBar(n){let i=new ce.Setting(n);i.settingEl.style.border="none",i.addSearch(r=>{this.search=r}),this.search.setPlaceholder("Search all settings"),this.search.inputEl.onfocus=()=>{for(let r of this.tabContent){let o=r[1];o.navButton.removeClass("linter-navigation-item-selected"),this.unhideEl(o.content),this.unhideEl(o.heading);let s=this.search.getValue();this.selectedTab==""&&s.trim()!=""&&this.searchSettings(s.toLowerCase()),this.selectedTab=""}},this.search.onChange(r=>{this.searchSettings(r.toLowerCase())})}generateSettingsTitle(n,i){let r=n.createDiv("linter-setting-title");i?r.addClass("linter-mobile"):r.createEl("h1").setText("Linter"),this.generateSearchBar(r)}searchSettings(n){let i=new Set,r=this,o=function(s,a){r.unhideEl(s),i.has(a)||i.add(a)};for(let s of this.searchSettingInfo){let a=s[0],l=s[1];for(let u of l)if(n.trim()===""||u.alias?.includes(n)||u.description.includes(n)||u.name.includes(n))o(u.containerEl,a);else if(u.options)for(let p of u.options){if(p.description.toLowerCase().includes(n)||p.name.toLowerCase().includes(n)){o(u.containerEl,a);break}else if(p.options){for(let m of p.options)if(m.description.toLowerCase().includes(n)||m.value.toLowerCase().includes(n)){o(u.containerEl,a);break}}this.hideEl(u.containerEl)}else this.hideEl(u.containerEl)}for(let s of this.tabContent)i.has(s[0])?this.unhideEl(s[1].heading):this.hideEl(s[1].heading);i.size===0?this.unhideEl(this.searchZeroState):this.hideEl(this.searchZeroState)}createSearchZeroState(n){this.searchZeroState=n.createDiv(),this.hideEl(this.searchZeroState),this.searchZeroState.createEl(ce.Platform.isMobile?"h3":"h2",{text:"No settings match search"}).style.textAlign="center"}addSettingToMasterSettingsList(n,i,r="",o="",s=null,a=null){let l={containerEl:i,name:r.toLowerCase(),description:o.toLowerCase(),options:s,alias:a};this.searchSettingInfo.has(n)?this.searchSettingInfo.get(n).push(l):this.searchSettingInfo.set(n,[l])}hideEl(n){n.addClass("linter-visually-hidden")}unhideEl(n){n.removeClass("linter-visually-hidden")}};var xg={en:"en-gb",zh:"zh-cn","zh-TW":"zh-tw",ru:"ru",ko:"ko",it:"it",id:"id",ro:"ro","pt-BR":"pt-br",cz:"cs",da:"da",de:"de",es:"es",fr:"fr",no:"nn",pl:"pl",pt:"pt",tr:"tr",hi:"hi",nl:"nl",ar:"ar",ja:"ja"},vg={ruleConfigs:{},lintOnSave:!1,displayChanged:!0,foldersToIgnore:[],linterLocale:"system-default",logLevel:Gu.default.levels.ERROR,lintCommands:[],commonStyles:{aliasArrayStyle:"single-line",tagArrayStyle:"single-line",minimumNumberOfDollarSignsToBeAMathBlock:2,escapeCharacter:'"'}},Bo=class extends oe.Plugin{constructor(){super(...arguments);this.eventRefs=[];this.isEnabled=!0;this.rulesRunner=new wo}async onload(){ui("Loading plugin"),this.isEnabled=!0;for(let n in Me){let i=Me[n];(0,oe.addIcon)(i.id,i.source)}await this.loadSettings(),this.addCommands(),this.registerEventsAndSaveCallback(),this.addSettingTab(new Eo(this.app,this))}async onunload(){ui("Unloading plugin"),this.isEnabled=!1;for(let n of this.eventRefs)this.app.workspace.offref(n)}async loadSettings(){let n=await this.loadData();this.settings=Object.assign({},vg,n),kl(this.settings.logLevel),this.setOrUpdateMomentInstance();let i=this.settings.ruleConfigs["Move Tags to Yaml"];if(i){let o=i["Force Yaml Escape on Keys"];o&&(this.settings.ruleConfigs["Force YAML Escape"]||(this.settings.ruleConfigs["Force YAML Escape"]={}),this.settings.ruleConfigs["Force YAML Escape"]["Force YAML Escape on Keys"]=o??this.settings.ruleConfigs["Force YAML Escape"]["Force YAML Escape on Keys"]),delete this.settings.ruleConfigs["Escape YAML Special Characters"]["Force Yaml Escape on Keys"]}let r=this.settings.ruleConfigs["Move Tags to Yaml"];if(r){let o=r["Remove the hashtag from tags in content body"];o!=null&&(this.settings.ruleConfigs["Move Tags to Yaml"]["Body tag operation"]=o?"Remove hashtag":"Nothing",delete this.settings.ruleConfigs["Move Tags to Yaml"]["Remove the hashtag from tags in content body"])}this.moveSettingsToCommonSettings();for(let o of gt)this.settings.ruleConfigs[o.name]||(this.settings.ruleConfigs[o.name]=o.getDefaultOptions())}async saveSettings(){await this.saveData(this.settings)}addCommands(){this.addCommand({id:"lint-file",name:"Lint the current file",editorCallback:n=>this.runLinterEditor(n),icon:Me.file.id,hotkeys:[{modifiers:["Mod","Alt"],key:"L"}]}),this.addCommand({id:"lint-all-files",name:"Lint all files in the vault",icon:Me.vault.id,callback:()=>{let n="This will edit all of your files and may introduce errors.",i="Lint All",r="Linting all files...";new ar(this.app,n,i,r,()=>this.runLinterAllFiles(this.app)).open()}}),this.addCommand({id:"lint-all-files-in-folder",name:"Lint all files in the current folder",icon:Me.folder.id,editorCheckCallback:(n,i)=>{if(n)return!this.app.workspace.getActiveFile().parent.isRoot();this.createFolderLintModal(this.app.workspace.getActiveFile().parent)}}),this.addCommand({id:"paste-as-plain-text",name:"Paste as Plain Text & without Modifications",editorCallback:n=>this.pasteAsPlainText(n)})}registerEventsAndSaveCallback(){let n=this.app.workspace.on("editor-paste",s=>{s.defaultPrevented||this.modifyPasteEvent(s)});this.registerEvent(n),this.eventRefs.push(n),n=this.app.workspace.on("file-menu",(s,a,l)=>this.onMenuOpenCallback(s,a,l)),this.registerEvent(n),this.eventRefs.push(n);let i=this.app.commands?.commands?.["editor:save-file"];typeof i?.callback=="function"&&(i.callback=()=>{if(this.settings.lintOnSave&&this.isEnabled){let s=this.getEditor();if(!s)return;let a=this.app.workspace.getActiveFile();this.shouldIgnoreFile(a)||this.runLinterEditor(s)}});let o=this;window.CodeMirrorAdapter.commands.save=()=>{o.app.commands.executeCommandById("editor:save-file")}}onMenuOpenCallback(n,i,r){i instanceof oe.TFile&&i.extension==="md"?n.addItem(o=>{o.setIcon(Me.file.id).setTitle("Lint file").onClick(async()=>{this.runLinterFile(i)})}):i instanceof oe.TFolder&&n.addItem(o=>{o.setTitle("Lint folder").setIcon(Me.folder.id).onClick(()=>this.createFolderLintModal(i))})}shouldIgnoreFile(n){for(let i of this.settings.foldersToIgnore)if(i.length>0&&n.path.startsWith(i))return!0;return!1}async runLinterFile(n){let i=ul(await this.app.vault.read(n)),r=this.rulesRunner.lintText(xo(i,n,this.momentLocale,this.settings));await this.app.vault.modify(n,r)}async runLinterAllFiles(n){let i=0;await Promise.all(n.vault.getMarkdownFiles().map(async o=>{if(!this.shouldIgnoreFile(o))try{await this.runLinterFile(o)}catch(s){this.handleLintError(o,s,"Lint All Files Error in File '${file.path}'"),i+=1}}));let r=0;if(i===0)new oe.Notice("Linted all files",r);else{let o=i===1?"was 1 error":"were "+i+" errors";new oe.Notice("Linted all files and there "+o+".",r)}}async runLinterAllFilesInFolder(n){ui("Linting folder "+n.name);let i=0,r=0,o=(0,oe.normalizePath)(n.path)+"/";await Promise.all(this.app.vault.getMarkdownFiles().map(async a=>{if((0,oe.normalizePath)(a.path).startsWith(o)&&!this.shouldIgnoreFile(a)){try{await this.runLinterFile(a)}catch(l){this.handleLintError(a,l,"Lint All Files in Folder Error in File '${file.path}'"),i+=1}r++}}));let s=0;if(i===0)new oe.Notice("Linted all "+r+" files in "+n.name+".",s);else{let a=i===1?"was 1 error":"were "+i+" errors";new oe.Notice("Linted all "+r+" files in "+n.name+" and there "+a+".",s)}}createFolderLintModal(n){let i="This will edit all of your files in "+n.name+" including files in its subfolders which may introduce errors.",r="Lint All Files in "+n.name,o="Linting all files in "+n.name+"...";new ar(this.app,i,r,o,()=>this.runLinterAllFilesInFolder(n)).open()}runLinterEditor(n){ui("Running linter");let i=this.app.workspace.getActiveFile(),r=n.getValue(),o;try{o=this.rulesRunner.lintText(xo(r,i,this.momentLocale,this.settings))}catch(m){this.handleLintError(i,m,"Lint File Error in File '${file.path}'",!1);return}let a=new Vn.default.diff_match_patch().diff_main(r,o),l="";a.forEach(m=>{function c(g){let x=g.split(` +`);return{line:x.length-1,ch:x[x.length-1].length}}let[d,h]=m;if(d==Vn.default.DIFF_INSERT)n.replaceRange(h,c(l)),l+=h;else if(d==Vn.default.DIFF_DELETE){let g=c(l),x=l;x+=h;let b=c(x);n.replaceRange("",g,b)}else l+=h});let u=a.map(m=>m[0]==Vn.default.DIFF_INSERT?m[1].length:0).reduce((m,c)=>m+c,0),p=a.map(m=>m[0]==Vn.default.DIFF_DELETE?m[1].length:0).reduce((m,c)=>m+c,0);this.displayChangedMessage(u,p);try{this.rulesRunner.runCustomCommands(this.settings.lintCommands,this.app.commands)}catch(m){this.handleLintError(i,m,"Lint File Error in File '${file.path}'",!1)}}async setOrUpdateMomentInstance(){let n=localStorage.getItem("language")||"en",i=navigator.language?.toLowerCase(),r=xg[n];this.settings.linterLocale!=="system-default"?r=this.settings.linterLocale:i.startsWith(n)&&(r=i),this.momentLocale=r;let o=_o.moment.locale(),s=_o.moment.locale(r);Ft(`Trying to switch Moment.js locale to ${r}, got ${s}`),_o.moment.locale(o)}displayChangedMessage(n,i){if(this.settings.displayChanged){let r=f` ${n} characters added - ${r} characters removed - `;new xe.Notice(i)}}handleLintError(n,r,i,o=!0){let a=i.replace("${file.path}",n.path);r instanceof pn?o?new xe.Notice(`${a} ${r.message}. -See console for more details.`):new xe.Notice(`${r.message}. -See console for more details.`):new xe.Notice("An unknown error occurred during linting. See console for details"),Bf(a,r)}}; -/*! - * Determine if an object is a Buffer - * - * @author Feross Aboukhadijeh - * @license MIT - */ + ${i} characters removed + `;new oe.Notice(r)}}handleLintError(n,i,r,o=!0){let s=r.replace("${file.path}",n.path);i instanceof It?o?new oe.Notice(`${s} ${i.message}. +See console for more details.`):new oe.Notice(`${i.message}. +See console for more details.`):new oe.Notice("An unknown error occurred during linting. See console for details"),vl(s,i)}async modifyPasteEvent(n){let i=this.getEditor();if(!i)return;let r=n.clipboardData.getData("text/plain");if(!r)return;if(/((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()[\]{};:'".,<>?«»“”‘’]))/i.test(r.trim())){Yr("aborted paste lint as the clipboard content is a link and doing so will avoid conflicts with other plugins that modify pasting.");return}if(n.stopPropagation(),n.preventDefault(),!n.defaultPrevented)return;let s=this.app.vault.getConfig("autoConvertHtml"),a=n.clipboardData.getData("text/html"),l=a&&s?(0,oe.htmlToMarkdown)(a):r;l=this.rulesRunner.runPasteLint(this.getLineContent(i),xo(l,null,this.momentLocale,this.settings)),i.replaceSelection(l)}async pasteAsPlainText(n){let i=await navigator.clipboard.readText();if(!i){new oe.Notice("There is no clipboard content.");return}n.replaceSelection(i)}getEditor(){let n=this.app.workspace.getActiveViewOfType(oe.MarkdownView);return n?n.editor:null}getLineContent(n){let i=n.getCursor("from").line;return n.getLine(i)}moveSettingsToCommonSettings(){let n,i=this.settings.ruleConfigs["YAML Title Alias"];if(i&&i["YAML aliases section style"]){if(i["Inserts the title of the file into the YAML frontmatter's aliases section. Gets the title from the first H1 or filename."])switch(i["YAML aliases section style"]){case"Multi-line array":n="multi-line";break;case"Single-line array":n="single-line";break;case"Single string that expands to multi-line array if needed":n="single string to multi-line";break;case"Single string that expands to single-line array if needed":n="single string to single-line";break}delete this.settings.ruleConfigs["YAML Title Alias"]["YAML aliases section style"]}let r=this.settings.ruleConfigs["Format Yaml Array"];if(r&&r["Yaml aliases section style"]){if(r["Allows for the formatting of regular yaml arrays as either multi-line or single-line and `tags` and `aliases` are allowed to have some Obsidian specific yaml formats. Note that single string to single-line goes from a single string entry to a single-line array if more than 1 entry is present. The same is true for single string to multi-line except it becomes a multi-line array."]&&r["Format yaml aliases section"]){let l=r["Yaml aliases section style"];if(!n)n=l;else switch(l){case"single-line":n="single-line";break;case"multi-line":n!="single-line"&&(n="single-line");break;case"single string comma delimited":n!="single-line"&&n!="multi-line"&&(n="single string comma delimited");break;case"single string to multi-line":n!="single-line"&&n!="multi-line"&&(n="single string to multi-line");break;case"single string to single-line":n!="single-line"&&n!="multi-line"&&(n="single string to single-line");break}}delete this.settings.ruleConfigs["Format Yaml Array"]["Yaml aliases section style"]}n&&(this.settings.commonStyles.aliasArrayStyle=n);let o;r&&r["Yaml tags section style"]&&(r["Allows for the formatting of regular yaml arrays as either multi-line or single-line and `tags` and `aliases` are allowed to have some Obsidian specific yaml formats. Note that single string to single-line goes from a single string entry to a single-line array if more than 1 entry is present. The same is true for single string to multi-line except it becomes a multi-line array."]&&r["Format yaml tags section"]&&(o=r["Yaml tags section style"]),delete this.settings.ruleConfigs["Format Yaml Array"]["Yaml tags section style"]);let s=this.settings.ruleConfigs["Move Tags to Yaml"];if(s&&s["Yaml tags section style"]){if(s["Move all tags to Yaml frontmatter of the document."]){let l=s["Yaml tags section style"];if(!o)o=l;else switch(l){case"single-line":o="single-line";break;case"multi-line":o!="single-line"&&(o="single-line");break;case"single string comma delimited":o!="single-line"&&o!="multi-line"&&(o="single string comma delimited");break;case"single string to multi-line":o!="single-line"&&o!="multi-line"&&(o="single string to multi-line");break;case"single string to single-line":o!="single-line"&&o!="multi-line"&&(o="single string to single-line");break;case"single-line space delimited":o!="single-line"&&o!="multi-line"&&o!="single string comma delimited"&&o!="single string to single-line"&&o!="single string to multi-line"&&(o="single-line space delimited");break;case"single string space delimited":o!="single-line"&&o!="multi-line"&&o!="single string comma delimited"&&o!="single string to single-line"&&o!="single string to multi-line"&&(o="single string space delimited");break}}delete this.settings.ruleConfigs["Move Tags to Yaml"]["Yaml tags section style"]}o&&(this.settings.commonStyles.tagArrayStyle=o);let a=this.settings.ruleConfigs["Escape YAML Special Characters"];a&&(this.settings.commonStyles.escapeCharacter=a["Default Escape Character"]??this.settings.commonStyles.escapeCharacter,delete this.settings.ruleConfigs["Escape YAML Special Characters"]["Default Escape Character"]),this.saveSettings()}}; /*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ diff --git a/.obsidian/plugins/obsidian-linter/manifest.json b/.obsidian/plugins/obsidian-linter/manifest.json index 317885a..4144be8 100644 --- a/.obsidian/plugins/obsidian-linter/manifest.json +++ b/.obsidian/plugins/obsidian-linter/manifest.json @@ -1,9 +1,9 @@ { "id": "obsidian-linter", "name": "Linter", - "version": "1.6.0", + "version": "1.7.1", "minAppVersion": "0.15.6", - "description": "Enforces consistent markdown styling.", + "description": "Formats and styles your notes. It can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular markdown contents like list, italics, and bold styles; and more with the use of custom rule options as well.", "author": "Victor Tao", "authorUrl": "https://github.com/platers", "isDesktopOnly": false diff --git a/.obsidian/plugins/obsidian-linter/styles.css b/.obsidian/plugins/obsidian-linter/styles.css index 804a4a1..d3480c1 100644 --- a/.obsidian/plugins/obsidian-linter/styles.css +++ b/.obsidian/plugins/obsidian-linter/styles.css @@ -128,6 +128,8 @@ /** Hide linter element css * Based on https://zellwk.com/blog/hide-content-accessibly/ */ + +.linter-navigation-item:not(.linter-navigation-item-selected) > span:nth-child(2), .linter-visually-hidden { border: 0; clip: rect(0 0 0 0); diff --git a/.obsidian/plugins/obsidian-livesync/data.json b/.obsidian/plugins/obsidian-livesync/data.json index 29fcff9..0119f22 100644 --- a/.obsidian/plugins/obsidian-livesync/data.json +++ b/.obsidian/plugins/obsidian-livesync/data.json @@ -1,9 +1,9 @@ { - "couchDB_URI": "http://couchdb.patalong.pl:88", + "couchDB_URI": "http://couchdb.patalong.pl:44404", "couchDB_USER": "peter", "couchDB_PASSWORD": "ZAQ!2wsx", "couchDB_DBNAME": "polsl-obsidian-teleinf", - "liveSync": true, + "liveSync": false, "syncOnSave": false, "syncOnStart": false, "savingDelay": 200, @@ -15,8 +15,8 @@ "showVerboseLog": false, "suspendFileWatching": false, "trashInsteadDelete": true, - "periodicReplication": false, - "periodicReplicationInterval": 60, + "periodicReplication": true, + "periodicReplicationInterval": 30, "syncOnFileOpen": false, "encrypt": false, "passphrase": "", diff --git a/.obsidian/plugins/obsidian-livesync/main.js b/.obsidian/plugins/obsidian-livesync/main.js index df084a0..2bbbb7c 100644 --- a/.obsidian/plugins/obsidian-livesync/main.js +++ b/.obsidian/plugins/obsidian-livesync/main.js @@ -1483,7 +1483,8 @@ var DEFAULT_SETTINGS = { syncOnlyRegEx: "", customChunkSize: 0, readChunksOnline: true, - watchInternalFileChanges: true + watchInternalFileChanges: true, + automaticallyDeleteMetadataOfDeletedFiles: 0 }; var FLAGMD_REDFLAG = "redflag.md"; var SYNCINFO_ID = "syncinfo"; @@ -3059,13 +3060,11 @@ var LocalPouchDBBase = class { let plainSplit = false; let cacheUsed = 0; const userPasswordHash = this.h32Raw(new TextEncoder().encode(this.settings.passphrase)); + const minimumChunkSize = this.settings.minimumChunkSize; if (!saveAsBigChunk && shouldSplitAsPlainText(note._id)) { pieceSize = MAX_DOC_SIZE; plainSplit = true; } - const minimumChunkSize = Math.min(Math.max(40, ~~(note.data.length / 100)), maxChunkSize); - if (pieceSize < minimumChunkSize) - pieceSize = minimumChunkSize; const newLeafs = []; const pieces = splitPieces2(note.data, pieceSize, plainSplit, minimumChunkSize, 0); for (const piece of pieces()) { @@ -3421,6 +3420,13 @@ var LocalPouchDBBase = class { this.replicationErrored(e3); Logger("Replication stopped.", showResult ? LOG_LEVEL.NOTICE : LOG_LEVEL.INFO, "sync"); if (this.getLastPostFailedBySize()) { + if ("status" in e3 && e3.status == 413) { + Logger(`Self-hosted LiveSync has detected some remote-database-incompatible chunks that exist in the local database. It means synchronization with the server had been no longer possible. + +The problem may be caused by chunks that were created with the faulty version or by switching platforms of the database. +To solve the circumstance, configure the remote database correctly or we have to rebuild both local and remote databases.`, LOG_LEVEL.NOTICE); + return; + } const tempSetting = JSON.parse(JSON.stringify(setting)); tempSetting.batch_size = Math.ceil(tempSetting.batch_size / 2) + 2; tempSetting.batches_limit = Math.ceil(tempSetting.batches_limit / 2) + 2; @@ -10121,7 +10127,7 @@ var LocalPouchDB = class extends LocalPouchDBBase { await this.kvDB.destroy(); } getLastPostFailedBySize() { - return this.last_successful_post; + return !this.last_successful_post; } async fetchByAPI(request) { var _a, _b; @@ -10162,7 +10168,7 @@ var LocalPouchDB = class extends LocalPouchDBBase { const method = (_a = opts.method) != null ? _a : "GET"; if (opts.body) { const opts_length = opts.body.toString().length; - if (opts_length > 1024 * 1024 * 10) { + if (opts_length > 1e3 * 1e3 * 10) { if (isCloudantURI(uri)) { this.last_successful_post = false; Logger("This request should fail on IBM Cloudant.", LOG_LEVEL.VERBOSE); @@ -10309,8 +10315,8 @@ var ConflictResolveModal = class extends import_obsidian4.Modal { diff = diff.replace(/\n/g, "
"); div.innerHTML = diff; const div2 = contentEl.createDiv(""); - const date1 = new Date(this.result.left.mtime).toLocaleString(); - const date2 = new Date(this.result.right.mtime).toLocaleString(); + const date1 = new Date(this.result.left.mtime).toLocaleString() + (this.result.left.deleted ? " (Deleted)" : ""); + const date2 = new Date(this.result.right.mtime).toLocaleString() + (this.result.right.deleted ? " (Deleted)" : ""); div2.innerHTML = ` A:${date1}
B:${date2}
`; @@ -10440,8 +10446,8 @@ var ObsidianLiveSyncSettingTab = class extends import_obsidian5.PluginSettingTab const containerInformationEl = containerEl.createDiv(); const h3El = containerInformationEl.createEl("h3", { text: "Updates" }); const informationDivEl = containerInformationEl.createEl("div", { text: "" }); - const manifestVersion = "0.16.4"; - const updateInformation = "### 0.16.0\n- Now hidden files need not be scanned. Changes will be detected automatically.\n - If you want it to back to its previous behaviour, please disable `Monitor changes to internal files`.\n - Due to using an internal API, this feature may become unusable with a major update. If this happens, please disable this once.\n\n#### Minors\n\n- 0.16.1 Added missing log updates.\n- 0.16.2 Fixed many problems caused by combinations of `Sync On Save` and the tracking logic that changed at 0.15.6.\n- 0.16.3\n - Fixed detection of IBM Cloudant (And if there are some issues, be fixed automatically).\n - A configuration information reporting tool has been implemented.\n- 0.16.4 Fixed detection failure. Please set the `Chunk size` again when using a self-hosted database.\n\n### 0.15.0\n- Outdated configuration items have been removed.\n- Setup wizard has been implemented!\n\nI appreciate for reviewing and giving me advice @Pouhon158!\n\n#### Minors\n- 0.15.1 Missed the stylesheet.\n- 0.15.2 The wizard has been improved and documented!\n- 0.15.3 Fixed the issue about locking/unlocking remote database while rebuilding in the wizard.\n- 0.15.4 Fixed issues about asynchronous processing (e.g., Conflict check or hidden file detection)\n- 0.15.5 Add new features for setting Self-hosted LiveSync up more easier.\n- 0.15.6 File tracking logic has been refined.\n- 0.15.7 Fixed bug about renaming file.\n- 0.15.8 Fixed bug about deleting empty directory, weird behaviour on boot-sequence on mobile devices.\n- 0.15.9 Improved chunk retrieving, now chunks are retrieved in batch on continuous requests.\n- 0.15.10 Fixed:\n - The boot sequence has been corrected and now boots smoothly.\n - Auto applying of batch save will be processed earlier than before.\n\n... To continue on to `updates_old.md`."; + const manifestVersion = "0.16.6"; + const updateInformation = "### 0.16.0\n- Now hidden files need not be scanned. Changes will be detected automatically.\n - If you want it to back to its previous behaviour, please disable `Monitor changes to internal files`.\n - Due to using an internal API, this feature may become unusable with a major update. If this happens, please disable this once.\n\n#### Minors\n\n- 0.16.1 Added missing log updates.\n- 0.16.2 Fixed many problems caused by combinations of `Sync On Save` and the tracking logic that changed at 0.15.6.\n- 0.16.3\n - Fixed detection of IBM Cloudant (And if there are some issues, be fixed automatically).\n - A configuration information reporting tool has been implemented.\n- 0.16.4 Fixed detection failure. Please set the `Chunk size` again when using a self-hosted database.\n- 0.16.5\n - Fixed\n - Conflict detection and merging now be able to treat deleted files.\n - Logs while the boot-up sequence has been tidied up.\n - Fixed incorrect log entries.\n - New Feature\n - The feature of automatically deleting old expired metadata has been implemented.\n We can configure it in `Delete old metadata of deleted files on start-up` in the `General Settings` pane.\n- 0.16.6\n - Fixed\n - Automatic (temporary) batch size adjustment has been restored to work correctly.\n - Chunk splitting has been backed to the previous behaviour for saving them correctly.\n - Improved\n - Corrupted chunks will be detected automatically.\n - Now on the case-insensitive system, `aaa.md` and `AAA.md` will be treated as the same file or path at applying changesets.\n\nNote:\nBefore 0.16.5, LiveSync had some issues making chunks. In this case, synchronisation had became been always failing after a corrupted one should be made. After 0.16.6, the corrupted chunk is automatically detected. Sorry for troubling you but please do `rebuild everything` when this plug-in notified so.\n\n### 0.15.0\n- Outdated configuration items have been removed.\n- Setup wizard has been implemented!\n\nI appreciate for reviewing and giving me advice @Pouhon158!\n\n#### Minors\n- 0.15.1 Missed the stylesheet.\n- 0.15.2 The wizard has been improved and documented!\n- 0.15.3 Fixed the issue about locking/unlocking remote database while rebuilding in the wizard.\n- 0.15.4 Fixed issues about asynchronous processing (e.g., Conflict check or hidden file detection)\n- 0.15.5 Add new features for setting Self-hosted LiveSync up more easier.\n- 0.15.6 File tracking logic has been refined.\n- 0.15.7 Fixed bug about renaming file.\n- 0.15.8 Fixed bug about deleting empty directory, weird behaviour on boot-sequence on mobile devices.\n- 0.15.9 Improved chunk retrieving, now chunks are retrieved in batch on continuous requests.\n- 0.15.10 Fixed:\n - The boot sequence has been corrected and now boots smoothly.\n - Auto applying of batch save will be processed earlier than before.\n\n... To continue on to `updates_old.md`."; const lastVersion = ~~(versionNumberString2Number(manifestVersion) / 1e3); const tmpDiv = createSpan(); tmpDiv.addClass("sls-header-button"); @@ -10915,6 +10921,17 @@ var ObsidianLiveSyncSettingTab = class extends import_obsidian5.PluginSettingTab await this.plugin.saveSettings(); }); }); + new import_obsidian5.Setting(containerGeneralSettingsEl).setName("Delete old metadata of deleted files on start-up").setClass("wizardHidden").setDesc("(Days passed, 0 to disable automatic-deletion)").addText((text2) => { + text2.setPlaceholder("").setValue(this.plugin.settings.automaticallyDeleteMetadataOfDeletedFiles + "").onChange(async (value) => { + let v = Number(value); + if (isNaN(v)) { + v = 0; + } + this.plugin.settings.automaticallyDeleteMetadataOfDeletedFiles = v; + await this.plugin.saveSettings(); + }); + text2.inputEl.setAttribute("type", "number"); + }); addScreenElement("20", containerGeneralSettingsEl); const containerSyncSettingEl = containerEl.createDiv(); containerSyncSettingEl.createEl("h3", { text: "Sync Settings" }); @@ -12825,6 +12842,14 @@ var ICHeader = "i:"; var ICHeaderEnd = "i;"; var ICHeaderLength = ICHeader.length; var FileWatchEventQueueMax = 10; +function getAbstractFileByPath(path) { + var _a, _b; + if ("getAbstractFileByPathInsensitive" in app.vault && ((_b = (_a = app.vault.adapter) == null ? void 0 : _a.insensitive) != null ? _b : false)) { + return app.vault.getAbstractFileByPathInsensitive(path); + } else { + return app.vault.getAbstractFileByPath(path); + } +} function isInternalChunk(str) { return str.startsWith(ICHeader); } @@ -12865,7 +12890,7 @@ var askString = (app2, title, key, placeholder) => { }; var touchedFiles = []; function touch(file) { - const f = file instanceof import_obsidian8.TFile ? file : app.vault.getAbstractFileByPath(file); + const f = file instanceof import_obsidian8.TFile ? file : getAbstractFileByPath(file); const key = `${f.path}-${f.stat.mtime}-${f.stat.size}`; touchedFiles.unshift(key); touchedFiles = touchedFiles.slice(0, 100); @@ -12914,7 +12939,7 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { return timer; } isRedFlagRaised() { - const redflag = this.app.vault.getAbstractFileByPath((0, import_obsidian8.normalizePath)(FLAGMD_REDFLAG)); + const redflag = getAbstractFileByPath((0, import_obsidian8.normalizePath)(FLAGMD_REDFLAG)); if (redflag != null) { return true; } @@ -12968,10 +12993,6 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { continue; if (isInternalChunk(row.id)) continue; - if (doc._deleted) - continue; - if ("deleted" in doc && doc.deleted) - continue; if (doc.type == "newnote" || doc.type == "plain") { notes.push({ path: id2path(doc._id), mtime: doc.mtime }); } @@ -12990,15 +13011,53 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { if (target) { if (isInternalChunk(target)) { } else { - await this.showIfConflicted(this.app.vault.getAbstractFileByPath(target)); + await this.showIfConflicted(target); } } } + async collectDeletedFiles() { + const pageLimit = 1e3; + let nextKey = ""; + const limitDays = this.settings.automaticallyDeleteMetadataOfDeletedFiles; + if (limitDays <= 0) + return; + Logger(`Checking expired file history`); + const limit = Date.now() - 86400 * 1e3 * limitDays; + const notes = []; + do { + const docs = await this.localDatabase.localDatabase.allDocs({ limit: pageLimit, startkey: nextKey, conflicts: true, include_docs: true }); + nextKey = ""; + for (const row of docs.rows) { + const doc = row.doc; + nextKey = `${row.id}\u{10FFFF}`; + if (doc.type == "newnote" || doc.type == "plain") { + if (doc.deleted && doc.mtime - limit < 0) { + notes.push({ path: id2path(doc._id), mtime: doc.mtime, ttl: (doc.mtime - limit) / 1e3 / 86400, doc }); + } + } + if (isChunk(nextKey)) { + nextKey = CHeaderEnd; + } + } + } while (nextKey != ""); + if (notes.length == 0) { + Logger("There are no old documents"); + Logger(`Checking expired file history done`); + return; + } + for (const v of notes) { + Logger(`Deletion history expired: ${v.path}`); + const delDoc = v.doc; + delDoc._deleted = true; + await this.localDatabase.localDatabase.put(delDoc); + } + Logger(`Checking expired file history done`); + } async onload() { setLogger(this.addLog.bind(this)); Logger("loading plugin"); - const manifestVersion = "0.16.4"; - const packageVersion = "0.16.4"; + const manifestVersion = "0.16.6"; + const packageVersion = "0.16.6"; Logger(`Self-hosted LiveSync v${manifestVersion} ${packageVersion} `); const lsKey = "obsidian-live-sync-ver" + this.getVaultName(); const last_version = localStorage.getItem(lsKey); @@ -13270,7 +13329,7 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { id: "livesync-checkdoc-conflicted", name: "Resolve if conflicted.", editorCallback: async (editor, view) => { - await this.showIfConflicted(view.file); + await this.showIfConflicted(view.file.path); } }); this.addCommand({ @@ -13620,7 +13679,7 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { if (this.settings.syncOnFileOpen && !this.suspended) { await this.replicate(); } - await this.showIfConflicted(file); + await this.showIfConflicted(file.path); } async applyBatchChange() { if (this.settings.batchSave) { @@ -13693,7 +13752,7 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { for (const i2 of newFiles) { try { const newFilePath = (0, import_obsidian8.normalizePath)(this.getFilePath(i2)); - const newFile = this.app.vault.getAbstractFileByPath(newFilePath); + const newFile = getAbstractFileByPath(newFilePath); if (newFile instanceof import_obsidian8.TFile) { Logger(`save ${newFile.path} into db`); await this.updateIntoDB(newFile); @@ -13837,7 +13896,7 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { touch(newFile); this.app.vault.trigger("create", newFile); } catch (ex) { - Logger(msg + "ERROR, Could not parse: " + path + "(" + doc.datatype + ")", LOG_LEVEL.NOTICE); + Logger(msg + "ERROR, Could not create: " + path + "(" + doc.datatype + ")", LOG_LEVEL.NOTICE); Logger(ex, LOG_LEVEL.VERBOSE); } } else { @@ -13900,7 +13959,7 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { try { await this.app.vault.modifyBinary(file, bin, { ctime: doc.ctime, mtime: doc.mtime }); Logger(msg + path); - const xf = this.app.vault.getAbstractFileByPath(file.path); + const xf = getAbstractFileByPath(file.path); touch(xf); this.app.vault.trigger("modify", xf); } catch (ex) { @@ -13916,7 +13975,7 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { try { await this.app.vault.modify(file, doc.data, { ctime: doc.ctime, mtime: doc.mtime }); Logger(msg + path); - const xf = this.app.vault.getAbstractFileByPath(file.path); + const xf = getAbstractFileByPath(file.path); touch(xf); this.app.vault.trigger("modify", xf); } catch (ex) { @@ -13956,7 +14015,7 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { this.refreshStatusText(); } async handleDBChangedAsync(change) { - const targetFile = this.app.vault.getAbstractFileByPath(id2path(change._id)); + const targetFile = getAbstractFileByPath(id2path(change._id)); if (targetFile == null) { if (change._deleted || change.deleted) { return; @@ -14062,7 +14121,7 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { return; const skipOldFile = this.settings.skipOlderFilesOnSync && false; if (!isInternalChunk(doc._id) && skipOldFile) { - const info = this.app.vault.getAbstractFileByPath(id2path(doc._id)); + const info = getAbstractFileByPath(id2path(doc._id)); if (info && info instanceof import_obsidian8.TFile) { const localMtime = ~~(info.stat.mtime / 1e3); const docMtime = ~~(doc.mtime / 1e3); @@ -14336,10 +14395,11 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { if (showingNotice) { Logger("Initializing", LOG_LEVEL.NOTICE, "syncAll"); } + await this.collectDeletedFiles(); const filesStorage = this.app.vault.getFiles().filter((e3) => this.isTargetFile(e3)); const filesStorageName = filesStorage.map((e3) => e3.path); const wf = await this.localDatabase.localDatabase.allDocs(); - const filesDatabase = wf.rows.filter((e3) => !isChunk(e3.id) && !isPluginChunk(e3.id) && e3.id != "obsydian_livesync_version").filter((e3) => isValidPath(e3.id)).map((e3) => id2path(e3.id)).filter((e3) => this.isTargetFile(e3)); + const filesDatabase = wf.rows.filter((e3) => !isChunk(e3.id) && !isPluginChunk(e3.id) && e3.id != "obsydian_livesync_version" && e3.id != "_design/replicate").filter((e3) => isValidPath(e3.id)).map((e3) => id2path(e3.id)).filter((e3) => this.isTargetFile(e3)); const isInitialized = await this.localDatabase.kvDB.get("initialized") || false; if (filesDatabase.length == 0 && !isInitialized) { initialScan = true; @@ -14353,27 +14413,14 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { Logger("Updating database by new files"); this.setStatusBarText(`UPDATE DATABASE`); const runAll = async (procedureName, objects, callback) => { - const count = objects.length; Logger(procedureName); - let i2 = 0; const semaphore = Semaphore(10); - Logger(`${procedureName} exec.`); if (!this.localDatabase.isReady) throw Error("Database is not ready!"); const processes = objects.map((e3) => (async (v) => { const releaser = await semaphore.acquire(1, procedureName); try { await callback(v); - i2++; - if (i2 % 50 == 0) { - const notify = `${procedureName} : ${i2}/${count}`; - if (showingNotice) { - Logger(notify, LOG_LEVEL.NOTICE, "syncAll"); - } else { - Logger(notify); - } - this.setStatusBarText(notify); - } } catch (ex) { Logger(`Error while ${procedureName}`, LOG_LEVEL.NOTICE); Logger(ex); @@ -14390,13 +14437,15 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { }); if (!initialScan) { await runAll("UPDATE STORAGE", onlyInDatabase, async (e3) => { - const w = await this.localDatabase.getDBEntryMeta(e3); - if (w) { + const w = await this.localDatabase.getDBEntryMeta(e3, {}, true); + if (w && !(w.deleted || w._deleted)) { Logger(`Check or pull from db:${e3}`); await this.pullFile(e3, filesStorage, false, null, false); Logger(`Check or pull from db:${e3} OK`); + } else if (w) { + Logger(`Deletion history skipped: ${e3}`, LOG_LEVEL.VERBOSE); } else { - Logger(`entry not found, maybe deleted (it is normal behavior):${e3}`); + Logger(`entry not found: ${e3}`); } }); } @@ -14466,7 +14515,7 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { } async getConflictedDoc(path, rev) { try { - const doc = await this.localDatabase.getDBEntry(path, { rev }, false, false); + const doc = await this.localDatabase.getDBEntry(path, { rev }, false, false, true); if (doc === false) return false; let data = doc.data; @@ -14476,6 +14525,7 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { data = doc.data; } return { + deleted: doc.deleted || doc._deleted, ctime: doc.ctime, mtime: doc.mtime, rev, @@ -14489,7 +14539,7 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { return false; } async getConflictedStatus(path) { - const test = await this.localDatabase.getDBEntry(path, { conflicts: true }, false, false); + const test = await this.localDatabase.getDBEntry(path, { conflicts: true }, false, false, true); if (test === false) return false; if (test == null) @@ -14510,7 +14560,7 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { Logger(`could not get old revisions, automatically used newer one:${path}`, LOG_LEVEL.NOTICE); return true; } - if (leftLeaf.data == rightLeaf.data) { + if (leftLeaf.data == rightLeaf.data && leftLeaf.deleted == rightLeaf.deleted) { let leaf = leftLeaf; if (leftLeaf.mtime > rightLeaf.mtime) { leaf = rightLeaf; @@ -14542,11 +14592,11 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { diff }; } - showMergeDialog(file, conflictCheckResult) { + showMergeDialog(filename, conflictCheckResult) { return new Promise((res, rej) => { Logger("open conflict dialog", LOG_LEVEL.VERBOSE); new ConflictResolveModal(this.app, conflictCheckResult, async (selected) => { - const testDoc = await this.localDatabase.getDBEntry(file.path, { conflicts: true }); + const testDoc = await this.localDatabase.getDBEntry(filename, { conflicts: true }, false, false, true); if (testDoc === false) { Logger("Missing file..", LOG_LEVEL.VERBOSE); return res(true); @@ -14559,23 +14609,29 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { const toKeep = conflictCheckResult.left.rev != toDelete ? conflictCheckResult.left.rev : conflictCheckResult.right.rev; if (toDelete == "") { const p = conflictCheckResult.diff.map((e3) => e3[1]).join(""); - await this.localDatabase.deleteDBEntry(file.path, { rev: conflictCheckResult.left.rev }); - await this.localDatabase.deleteDBEntry(file.path, { rev: conflictCheckResult.right.rev }); - await this.app.vault.modify(file, p); - await this.updateIntoDB(file); - await this.pullFile(file.path); + await this.localDatabase.deleteDBEntry(filename, { rev: conflictCheckResult.left.rev }); + await this.localDatabase.deleteDBEntry(filename, { rev: conflictCheckResult.right.rev }); + const file = getAbstractFileByPath(filename); + if (file) { + await this.app.vault.modify(file, p); + await this.updateIntoDB(file); + } else { + const newFile = await this.app.vault.create(filename, p); + await this.updateIntoDB(newFile); + } + await this.pullFile(filename); Logger("concat both file"); setTimeout(() => { - this.showIfConflicted(file); + this.showIfConflicted(filename); }, 500); } else if (toDelete == null) { Logger("Leave it still conflicted"); } else { - Logger(`Conflict resolved:${file.path}`); - await this.localDatabase.deleteDBEntry(file.path, { rev: toDelete }); - await this.pullFile(file.path, null, true, toKeep); + Logger(`Conflict resolved:${filename}`); + await this.localDatabase.deleteDBEntry(filename, { rev: toDelete }); + await this.pullFile(filename, null, true, toKeep); setTimeout(() => { - this.showIfConflicted(file); + this.showIfConflicted(filename); }, 500); } return res(true); @@ -14593,9 +14649,9 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { const checkFiles = JSON.parse(JSON.stringify(this.conflictedCheckFiles)); for (const filename of checkFiles) { try { - const file2 = this.app.vault.getAbstractFileByPath(filename); + const file2 = getAbstractFileByPath(filename); if (file2 != null && file2 instanceof import_obsidian8.TFile) { - await this.showIfConflicted(file2); + await this.showIfConflicted(file2.path); } } catch (ex) { Logger(ex); @@ -14603,24 +14659,24 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { } }, 1e3); } - async showIfConflicted(file) { + async showIfConflicted(filename) { await runWithLock("conflicted", false, async () => { - const conflictCheckResult = await this.getConflictedStatus(file.path); + const conflictCheckResult = await this.getConflictedStatus(filename); if (conflictCheckResult === false) { return; } if (conflictCheckResult === true) { Logger("conflict:Automatically merged, but we have to check it again"); setTimeout(() => { - this.showIfConflicted(file); + this.showIfConflicted(filename); }, 500); return; } - await this.showMergeDialog(file, conflictCheckResult); + await this.showMergeDialog(filename, conflictCheckResult); }); } async pullFile(filename, fileList, force, rev, waitForReady = true) { - const targetFile = this.app.vault.getAbstractFileByPath(id2path(filename)); + const targetFile = getAbstractFileByPath(id2path(filename)); if (!this.isTargetFile(id2path(filename))) return; if (targetFile == null) { @@ -14647,7 +14703,7 @@ var ObsidianLiveSyncPlugin = class extends import_obsidian8.Plugin { throw new Error(`Missing doc:${file.path}`); } if (!(file instanceof import_obsidian8.TFile) && "path" in file) { - const w = this.app.vault.getAbstractFileByPath(file.path); + const w = getAbstractFileByPath(file.path); if (w instanceof import_obsidian8.TFile) { file = w; } else { diff --git a/.obsidian/plugins/obsidian-livesync/manifest.json b/.obsidian/plugins/obsidian-livesync/manifest.json index 44c43d5..be309e4 100644 --- a/.obsidian/plugins/obsidian-livesync/manifest.json +++ b/.obsidian/plugins/obsidian-livesync/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-livesync", "name": "Self-hosted LiveSync", - "version": "0.16.4", + "version": "0.16.6", "minAppVersion": "0.9.12", "description": "Community implementation of self-hosted livesync. Reflect your vault changes to some other devices immediately. Please make sure to disable other synchronize solutions to avoid content corruption or duplication.", "author": "vorotamoroz", diff --git a/.obsidian/plugins/obsidian-outliner/main.js b/.obsidian/plugins/obsidian-outliner/main.js index 8682848..3af92ea 100644 --- a/.obsidian/plugins/obsidian-outliner/main.js +++ b/.obsidian/plugins/obsidian-outliner/main.js @@ -1081,7 +1081,7 @@ class ListLinesViewPluginValue { this.view = view; this.lineElements = []; this.waitForEditor = () => { - const oe = this.view.state.field(obsidian.editorViewField).editor; + const oe = this.view.state.field(obsidian.editorInfoField).editor; if (!oe) { setTimeout(this.waitForEditor, 0); return; @@ -1162,16 +1162,11 @@ class ListLinesViewPluginValue { } return null; } - recursive(list) { + recursive(list, parentCtx = {}) { const children = list.getChildren(); if (children.length === 0) { return; } - for (const child of children) { - if (!child.isEmpty()) { - this.recursive(child); - } - } const fromOffset = this.editor.posToOffset({ line: list.getFirstLineContentStart().line, ch: list.getFirstLineIndent().length, @@ -1193,6 +1188,11 @@ class ListLinesViewPluginValue { if (fromOffset > visibleTo || tillOffset < visibleFrom) { return; } + const coords = this.view.coordsAtPos(fromOffset, 1); + if (parentCtx.rootLeft === undefined) { + parentCtx.rootLeft = coords.left; + } + const left = Math.floor(coords.right - parentCtx.rootLeft); const top = visibleFrom > 0 && fromOffset < visibleFrom ? -20 : this.view.lineBlockAt(fromOffset).top; @@ -1206,30 +1206,20 @@ class ListLinesViewPluginValue { this.editor.posToOffset(nextSibling.getFirstLineContentStart()) <= visibleTo; this.lines.push({ - top: top, - left: this.getIndentSize(list), + top, + left, height: `calc(${height}px ${hasNextSibling ? "- 1.5em" : "- 2em"})`, list, }); } - } - getIndentSize(list) { - const { tabSize } = this.obsidian.getObsidianTabsSettings(); - const indent = list.getFirstLineIndent(); - const spaceSize = 8; - let spaces = 0; - for (const char of indent) { - if (char === "\t") { - spaces += tabSize; - } - else { - spaces += 1; + for (const child of children) { + if (!child.isEmpty()) { + this.recursive(child, parentCtx); } } - return spaces * spaceSize; } zoomIn(line) { - const editor = new MyEditor(this.view.state.field(obsidian.editorViewField).editor); + const editor = new MyEditor(this.view.state.field(obsidian.editorInfoField).editor); editor.zoomIn(line.list.getFirstLineContentStart().line); } toggleFolding(line) { @@ -1248,7 +1238,7 @@ class ListLinesViewPluginValue { } linesToToggle.push(c.getFirstLineContentStart().line); } - const editor = new MyEditor(this.view.state.field(obsidian.editorViewField).editor); + const editor = new MyEditor(this.view.state.field(obsidian.editorInfoField).editor); for (const l of linesToToggle) { if (needToUnfold) { editor.unfold(l); @@ -1262,8 +1252,19 @@ class ListLinesViewPluginValue { const cmScroll = this.view.scrollDOM; const cmContent = this.view.contentDOM; const cmContentContainer = cmContent.parentElement; + const cmSizer = cmContentContainer.parentElement; + /** + * Obsidian can add additional elements into Content Manager. + * The most obvious case is the 'embedded-backlinks' core plugin that adds a menu inside a Content Manager. + * We must take heights of all of these elements into account + * to be able to calculate the correct size of lines' container. + */ + let cmSizerChildrenSumHeight = 0; + for (let i = 0; i < cmSizer.children.length; i++) { + cmSizerChildrenSumHeight += cmSizer.children[i].clientHeight; + } this.scroller.style.top = cmScroll.offsetTop + "px"; - this.contentContainer.style.height = cmContent.clientHeight + "px"; + this.contentContainer.style.height = cmSizerChildrenSumHeight + "px"; this.contentContainer.style.marginLeft = cmContentContainer.offsetLeft + "px"; this.contentContainer.style.marginTop = @@ -1889,7 +1890,6 @@ class ObsidianOutlinerPluginSettingTab extends obsidian.PluginSettingTab { }); new obsidian.Setting(containerEl) .setName("Draw vertical indentation lines") - .setDesc("Lines only work well with tab size 4.") .addToggle((toggle) => { toggle.setValue(this.settings.listLines).onChange((value) => __awaiter(this, void 0, void 0, function* () { this.settings.listLines = value; @@ -2185,7 +2185,7 @@ class ObsidianService { return useTab ? "\t" : new Array(tabSize).fill(" ").join(""); } getEditorFromState(state) { - return new MyEditor(state.field(obsidian.editorViewField).editor); + return new MyEditor(state.field(obsidian.editorInfoField).editor); } createKeymapRunCallback(config) { const check = config.check || (() => true); @@ -2560,4 +2560,4 @@ class ObsidianOutlinerPlugin extends obsidian.Plugin { } module.exports = ObsidianOutlinerPlugin; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsInNyYy9yb290L3JlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMudHMiLCJzcmMvb3BlcmF0aW9ucy9EZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmVPcGVyYXRpb24udHMiLCJzcmMvb3BlcmF0aW9ucy9EZWxldGVBbmRNZXJnZVdpdGhOZXh0TGluZU9wZXJhdGlvbi50cyIsInNyYy9vcGVyYXRpb25zL0RlbGV0ZVRpbGxMaW5lU3RhcnRPcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvRGVsZXRlU2hvdWxkSWdub3JlQnVsbGV0c0ZlYXR1cmUudHMiLCJzcmMvb3BlcmF0aW9ucy9FbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50T3BlcmF0aW9uLnRzIiwic3JjL29wZXJhdGlvbnMvRW5zdXJlQ3Vyc29ySXNJblVuZm9sZGVkTGluZU9wZXJhdGlvbi50cyIsInNyYy9mZWF0dXJlcy9FbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50RmVhdHVyZS50cyIsInNyYy9vcGVyYXRpb25zL01vdmVMZWZ0T3BlcmF0aW9uLnRzIiwic3JjL3V0aWxzL2lzRW1wdHlMaW5lT3JFbXB0eUNoZWNrYm94LnRzIiwic3JjL29wZXJhdGlvbnMvT3V0ZGVudElmTGluZUlzRW1wdHlPcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvRW50ZXJPdXRkZW50SWZMaW5lSXNFbXB0eUZlYXR1cmUudHMiLCJzcmMvcm9vdC9pbmRleC50cyIsInNyYy9vcGVyYXRpb25zL0NyZWF0ZU5ld0l0ZW1PcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvRW50ZXJTaG91bGRDcmVhdGVOZXdJdGVtT25DaGlsZExldmVsRmVhdHVyZS50cyIsInNyYy9mZWF0dXJlcy9Gb2xkRmVhdHVyZS50cyIsInNyYy9NeUVkaXRvci50cyIsInNyYy9mZWF0dXJlcy9MaW5lc0ZlYXR1cmUudHMiLCJzcmMvZmVhdHVyZXMvTGlzdHNTdHlsZXNGZWF0dXJlLnRzIiwic3JjL29wZXJhdGlvbnMvTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVPcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVGZWF0dXJlLnRzIiwic3JjL29wZXJhdGlvbnMvTW92ZURvd25PcGVyYXRpb24udHMiLCJzcmMvb3BlcmF0aW9ucy9Nb3ZlUmlnaHRPcGVyYXRpb24udHMiLCJzcmMvb3BlcmF0aW9ucy9Nb3ZlVXBPcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvTW92ZUl0ZW1zRmVhdHVyZS50cyIsInNyYy9vcGVyYXRpb25zL1NlbGVjdEFsbE9wZXJhdGlvbi50cyIsInNyYy9mZWF0dXJlcy9TZWxlY3RBbGxGZWF0dXJlLnRzIiwic3JjL29wZXJhdGlvbnMvU2VsZWN0VGlsbExpbmVTdGFydE9wZXJhdGlvbi50cyIsInNyYy9mZWF0dXJlcy9TZWxlY3Rpb25TaG91bGRJZ25vcmVCdWxsZXRzRmVhdHVyZS50cyIsInNyYy9mZWF0dXJlcy9TZXR0aW5nc1RhYkZlYXR1cmUudHMiLCJzcmMvb3BlcmF0aW9ucy9DcmVhdGVOb3RlTGluZU9wZXJhdGlvbi50cyIsInNyYy9mZWF0dXJlcy9TaGlmdEVudGVyU2hvdWxkQ3JlYXRlTm90ZUZlYXR1cmUudHMiLCJzcmMvc2VydmljZXMvQXBwbHlDaGFuZ2VzU2VydmljZS50cyIsInNyYy9zZXJ2aWNlcy9JTUVTZXJ2aWNlLnRzIiwic3JjL3NlcnZpY2VzL0xvZ2dlclNlcnZpY2UudHMiLCJzcmMvc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlLnRzIiwic3JjL3NlcnZpY2VzL1BhcnNlclNlcnZpY2UudHMiLCJzcmMvc2VydmljZXMvUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UudHMiLCJzcmMvc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlLnRzIiwic3JjL09ic2lkaWFuT3V0bGluZXJQbHVnaW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XHJcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XHJcbiAgICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGIpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XHJcbiAgICB2YXIgdCA9IHt9O1xyXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXHJcbiAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXHJcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcclxuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcclxuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxyXG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdmFyIF9fY3JlYXRlQmluZGluZyA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7XHJcbiAgICBpZiAoIWRlc2MgfHwgKFwiZ2V0XCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkge1xyXG4gICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH07XHJcbiAgICB9XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIGRlc2MpO1xyXG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIG9bazJdID0gbVtrXTtcclxufSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHBvcnRTdGFyKG0sIG8pIHtcclxuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgcCkpIF9fY3JlYXRlQmluZGluZyhvLCBtLCBwKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fdmFsdWVzKG8pIHtcclxuICAgIHZhciBzID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7XHJcbiAgICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTtcclxuICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gXCJudW1iZXJcIikgcmV0dXJuIHtcclxuICAgICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7XHJcbiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZWFkKG8sIG4pIHtcclxuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcclxuICAgIGlmICghbSkgcmV0dXJuIG87XHJcbiAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cclxuICAgIGZpbmFsbHkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmaW5hbGx5IHsgaWYgKGUpIHRocm93IGUuZXJyb3I7IH1cclxuICAgIH1cclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuLyoqIEBkZXByZWNhdGVkICovXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZCgpIHtcclxuICAgIGZvciAodmFyIGFyID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIGFyID0gYXIuY29uY2F0KF9fcmVhZChhcmd1bWVudHNbaV0pKTtcclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuLyoqIEBkZXByZWNhdGVkICovXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5cygpIHtcclxuICAgIGZvciAodmFyIHMgPSAwLCBpID0gMCwgaWwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgaWw7IGkrKykgcyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xyXG4gICAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxyXG4gICAgICAgIGZvciAodmFyIGEgPSBhcmd1bWVudHNbaV0sIGogPSAwLCBqbCA9IGEubGVuZ3RoOyBqIDwgamw7IGorKywgaysrKVxyXG4gICAgICAgICAgICByW2tdID0gYVtqXTtcclxuICAgIHJldHVybiByO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheSh0bywgZnJvbSwgcGFjaykge1xyXG4gICAgaWYgKHBhY2sgfHwgYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgaSA9IDAsIGwgPSBmcm9tLmxlbmd0aCwgYXI7IGkgPCBsOyBpKyspIHtcclxuICAgICAgICBpZiAoYXIgfHwgIShpIGluIGZyb20pKSB7XHJcbiAgICAgICAgICAgIGlmICghYXIpIGFyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSwgMCwgaSk7XHJcbiAgICAgICAgICAgIGFyW2ldID0gZnJvbVtpXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdG8uY29uY2F0KGFyIHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGZyb20pKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXQodikge1xyXG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBfX2F3YWl0ID8gKHRoaXMudiA9IHYsIHRoaXMpIDogbmV3IF9fYXdhaXQodik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jR2VuZXJhdG9yKHRoaXNBcmcsIF9hcmd1bWVudHMsIGdlbmVyYXRvcikge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBnID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pLCBpLCBxID0gW107XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaWYgKGdbbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBuID09PSBcInJldHVyblwiIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgbSA9IG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdLCBpO1xyXG4gICAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlbbl0gPSBvW25dICYmIGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7IHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgZCwgdikgeyBQcm9taXNlLnJlc29sdmUodikudGhlbihmdW5jdGlvbih2KSB7IHJlc29sdmUoeyB2YWx1ZTogdiwgZG9uZTogZCB9KTsgfSwgcmVqZWN0KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcclxuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XHJcbiAgICByZXR1cm4gY29va2VkO1xyXG59O1xyXG5cclxudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xyXG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcclxuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xyXG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydERlZmF1bHQobW9kKSB7XHJcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHtcclxuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlclwiKTtcclxuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xyXG4gICAgcmV0dXJuIGtpbmQgPT09IFwibVwiID8gZiA6IGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRTZXQocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikge1xyXG4gICAgaWYgKGtpbmQgPT09IFwibVwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBtZXRob2QgaXMgbm90IHdyaXRhYmxlXCIpO1xyXG4gICAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgc2V0dGVyXCIpO1xyXG4gICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcclxuICAgIHJldHVybiAoa2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIsIHZhbHVlKSA6IGYgPyBmLnZhbHVlID0gdmFsdWUgOiBzdGF0ZS5zZXQocmVjZWl2ZXIsIHZhbHVlKSksIHZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEluKHN0YXRlLCByZWNlaXZlcikge1xyXG4gICAgaWYgKHJlY2VpdmVyID09PSBudWxsIHx8ICh0eXBlb2YgcmVjZWl2ZXIgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHJlY2VpdmVyICE9PSBcImZ1bmN0aW9uXCIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHVzZSAnaW4nIG9wZXJhdG9yIG9uIG5vbi1vYmplY3RcIik7XHJcbiAgICByZXR1cm4gdHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciA9PT0gc3RhdGUgOiBzdGF0ZS5oYXMocmVjZWl2ZXIpO1xyXG59XHJcbiIsImltcG9ydCB7IExpc3QsIFJvb3QgfSBmcm9tIFwiLlwiO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0cyhyb290OiBSb290KSB7XG4gIGZ1bmN0aW9uIHZpc2l0KHBhcmVudDogUm9vdCB8IExpc3QpIHtcbiAgICBsZXQgaW5kZXggPSAxO1xuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBwYXJlbnQuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgaWYgKC9cXGQrXFwuLy50ZXN0KGNoaWxkLmdldEJ1bGxldCgpKSkge1xuICAgICAgICBjaGlsZC5yZXBsYXRlQnVsbGV0KGAke2luZGV4Kyt9LmApO1xuICAgICAgfVxuXG4gICAgICB2aXNpdChjaGlsZCk7XG4gICAgfVxuICB9XG5cbiAgdmlzaXQocm9vdCk7XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgTGlzdCwgTGlzdExpbmUsIFBvc2l0aW9uLCBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcbmltcG9ydCB7IHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMgfSBmcm9tIFwiLi4vcm9vdC9yZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzXCI7XG5cbmV4cG9ydCBjbGFzcyBEZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmVPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlQ3Vyc29yKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBjdXJzb3IgPSByb290LmdldEN1cnNvcigpO1xuICAgIGNvbnN0IGxpbmVzID0gbGlzdC5nZXRMaW5lc0luZm8oKTtcblxuICAgIGNvbnN0IGxpbmVObyA9IGxpbmVzLmZpbmRJbmRleChcbiAgICAgIChsKSA9PiBjdXJzb3IuY2ggPT09IGwuZnJvbS5jaCAmJiBjdXJzb3IubGluZSA9PT0gbC5mcm9tLmxpbmVcbiAgICApO1xuXG4gICAgaWYgKGxpbmVObyA9PT0gMCkge1xuICAgICAgdGhpcy5tZXJnZVdpdGhQcmV2aW91c0l0ZW0ocm9vdCwgY3Vyc29yLCBsaXN0KTtcbiAgICB9IGVsc2UgaWYgKGxpbmVObyA+IDApIHtcbiAgICAgIHRoaXMubWVyZ2VOb3Rlcyhyb290LCBjdXJzb3IsIGxpc3QsIGxpbmVzLCBsaW5lTm8pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VOb3RlcyhcbiAgICByb290OiBSb290LFxuICAgIGN1cnNvcjogUG9zaXRpb24sXG4gICAgbGlzdDogTGlzdCxcbiAgICBsaW5lczogTGlzdExpbmVbXSxcbiAgICBsaW5lTm86IG51bWJlclxuICApIHtcbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcblxuICAgIGNvbnN0IHByZXZMaW5lTm8gPSBsaW5lTm8gLSAxO1xuXG4gICAgcm9vdC5yZXBsYWNlQ3Vyc29yKHtcbiAgICAgIGxpbmU6IGN1cnNvci5saW5lIC0gMSxcbiAgICAgIGNoOiBsaW5lc1twcmV2TGluZU5vXS50ZXh0Lmxlbmd0aCArIGxpbmVzW3ByZXZMaW5lTm9dLmZyb20uY2gsXG4gICAgfSk7XG5cbiAgICBsaW5lc1twcmV2TGluZU5vXS50ZXh0ICs9IGxpbmVzW2xpbmVOb10udGV4dDtcbiAgICBsaW5lcy5zcGxpY2UobGluZU5vLCAxKTtcblxuICAgIGxpc3QucmVwbGFjZUxpbmVzKGxpbmVzLm1hcCgobCkgPT4gbC50ZXh0KSk7XG4gIH1cblxuICBwcml2YXRlIG1lcmdlV2l0aFByZXZpb3VzSXRlbShyb290OiBSb290LCBjdXJzb3I6IFBvc2l0aW9uLCBsaXN0OiBMaXN0KSB7XG4gICAgaWYgKHJvb3QuZ2V0Q2hpbGRyZW4oKVswXSA9PT0gbGlzdCAmJiBsaXN0LmdldENoaWxkcmVuKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuXG4gICAgY29uc3QgcHJldiA9IHJvb3QuZ2V0TGlzdFVuZGVyTGluZShjdXJzb3IubGluZSAtIDEpO1xuXG4gICAgaWYgKCFwcmV2KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYm90aEFyZUVtcHR5ID0gcHJldi5pc0VtcHR5KCkgJiYgbGlzdC5pc0VtcHR5KCk7XG4gICAgY29uc3QgcHJldklzRW1wdHlBbmRTYW1lTGV2ZWwgPVxuICAgICAgcHJldi5pc0VtcHR5KCkgJiYgIWxpc3QuaXNFbXB0eSgpICYmIHByZXYuZ2V0TGV2ZWwoKSA9PSBsaXN0LmdldExldmVsKCk7XG4gICAgY29uc3QgbGlzdElzRW1wdHlBbmRQcmV2SXNQYXJlbnQgPVxuICAgICAgbGlzdC5pc0VtcHR5KCkgJiYgcHJldi5nZXRMZXZlbCgpID09IGxpc3QuZ2V0TGV2ZWwoKSAtIDE7XG5cbiAgICBpZiAoYm90aEFyZUVtcHR5IHx8IHByZXZJc0VtcHR5QW5kU2FtZUxldmVsIHx8IGxpc3RJc0VtcHR5QW5kUHJldklzUGFyZW50KSB7XG4gICAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuXG4gICAgICBjb25zdCBwYXJlbnQgPSBsaXN0LmdldFBhcmVudCgpO1xuICAgICAgY29uc3QgcHJldkVuZCA9IHByZXYuZ2V0TGFzdExpbmVDb250ZW50RW5kKCk7XG5cbiAgICAgIGlmICghcHJldi5nZXROb3Rlc0luZGVudCgpICYmIGxpc3QuZ2V0Tm90ZXNJbmRlbnQoKSkge1xuICAgICAgICBwcmV2LnNldE5vdGVzSW5kZW50KFxuICAgICAgICAgIHByZXYuZ2V0Rmlyc3RMaW5lSW5kZW50KCkgK1xuICAgICAgICAgICAgbGlzdC5nZXROb3Rlc0luZGVudCgpLnNsaWNlKGxpc3QuZ2V0Rmlyc3RMaW5lSW5kZW50KCkubGVuZ3RoKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvbGRMaW5lcyA9IHByZXYuZ2V0TGluZXMoKTtcbiAgICAgIGNvbnN0IG5ld0xpbmVzID0gbGlzdC5nZXRMaW5lcygpO1xuICAgICAgb2xkTGluZXNbb2xkTGluZXMubGVuZ3RoIC0gMV0gKz0gbmV3TGluZXNbMF07XG4gICAgICBjb25zdCByZXN1bHRMaW5lcyA9IG9sZExpbmVzLmNvbmNhdChuZXdMaW5lcy5zbGljZSgxKSk7XG5cbiAgICAgIHByZXYucmVwbGFjZUxpbmVzKHJlc3VsdExpbmVzKTtcbiAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChsaXN0KTtcblxuICAgICAgZm9yIChjb25zdCBjIG9mIGxpc3QuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgICBsaXN0LnJlbW92ZUNoaWxkKGMpO1xuICAgICAgICBwcmV2LmFkZEFmdGVyQWxsKGMpO1xuICAgICAgfVxuXG4gICAgICByb290LnJlcGxhY2VDdXJzb3IocHJldkVuZCk7XG5cbiAgICAgIHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMocm9vdCk7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBEZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmVPcGVyYXRpb24gfSBmcm9tIFwiLi9EZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmVPcGVyYXRpb25cIjtcbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcblxuZXhwb3J0IGNsYXNzIERlbGV0ZUFuZE1lcmdlV2l0aE5leHRMaW5lT3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBkZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91czogRGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXNMaW5lT3BlcmF0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm9vdDogUm9vdCkge1xuICAgIHRoaXMuZGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXMgPVxuICAgICAgbmV3IERlbGV0ZUFuZE1lcmdlV2l0aFByZXZpb3VzTGluZU9wZXJhdGlvbihyb290KTtcbiAgfVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91cy5zaG91bGRTdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91cy5zaG91bGRVcGRhdGUoKTtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcbiAgICBjb25zdCBsaW5lcyA9IGxpc3QuZ2V0TGluZXNJbmZvKCk7XG5cbiAgICBjb25zdCBsaW5lTm8gPSBsaW5lcy5maW5kSW5kZXgoXG4gICAgICAobCkgPT4gY3Vyc29yLmNoID09PSBsLnRvLmNoICYmIGN1cnNvci5saW5lID09PSBsLnRvLmxpbmVcbiAgICApO1xuXG4gICAgaWYgKGxpbmVObyA9PT0gbGluZXMubGVuZ3RoIC0gMSkge1xuICAgICAgY29uc3QgbmV4dExpbmUgPSBsaW5lc1tsaW5lTm9dLnRvLmxpbmUgKyAxO1xuICAgICAgY29uc3QgbmV4dExpc3QgPSByb290LmdldExpc3RVbmRlckxpbmUobmV4dExpbmUpO1xuICAgICAgaWYgKCFuZXh0TGlzdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByb290LnJlcGxhY2VDdXJzb3IobmV4dExpc3QuZ2V0Rmlyc3RMaW5lQ29udGVudFN0YXJ0KCkpO1xuICAgICAgdGhpcy5kZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91cy5wZXJmb3JtKCk7XG4gICAgfSBlbHNlIGlmIChsaW5lTm8gPj0gMCkge1xuICAgICAgcm9vdC5yZXBsYWNlQ3Vyc29yKGxpbmVzW2xpbmVObyArIDFdLmZyb20pO1xuICAgICAgdGhpcy5kZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91cy5wZXJmb3JtKCk7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBEZWxldGVUaWxsTGluZVN0YXJ0T3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBzdG9wUHJvcGFnYXRpb24gPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cGRhdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG5cbiAgICBjb25zdCBjdXJzb3IgPSByb290LmdldEN1cnNvcigpO1xuICAgIGNvbnN0IGxpc3QgPSByb290LmdldExpc3RVbmRlckN1cnNvcigpO1xuICAgIGNvbnN0IGxpbmVzID0gbGlzdC5nZXRMaW5lc0luZm8oKTtcbiAgICBjb25zdCBsaW5lTm8gPSBsaW5lcy5maW5kSW5kZXgoKGwpID0+IGwuZnJvbS5saW5lID09PSBjdXJzb3IubGluZSk7XG5cbiAgICBsaW5lc1tsaW5lTm9dLnRleHQgPSBsaW5lc1tsaW5lTm9dLnRleHQuc2xpY2UoXG4gICAgICBjdXJzb3IuY2ggLSBsaW5lc1tsaW5lTm9dLmZyb20uY2hcbiAgICApO1xuXG4gICAgbGlzdC5yZXBsYWNlTGluZXMobGluZXMubWFwKChsKSA9PiBsLnRleHQpKTtcbiAgICByb290LnJlcGxhY2VDdXJzb3IobGluZXNbbGluZU5vXS5mcm9tKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUGx1Z2luXzIgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsga2V5bWFwIH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcblxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gXCIuL0ZlYXR1cmVcIjtcblxuaW1wb3J0IHsgTXlFZGl0b3IgfSBmcm9tIFwiLi4vTXlFZGl0b3JcIjtcbmltcG9ydCB7IERlbGV0ZUFuZE1lcmdlV2l0aE5leHRMaW5lT3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvRGVsZXRlQW5kTWVyZ2VXaXRoTmV4dExpbmVPcGVyYXRpb25cIjtcbmltcG9ydCB7IERlbGV0ZUFuZE1lcmdlV2l0aFByZXZpb3VzTGluZU9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL0RlbGV0ZUFuZE1lcmdlV2l0aFByZXZpb3VzTGluZU9wZXJhdGlvblwiO1xuaW1wb3J0IHsgRGVsZXRlVGlsbExpbmVTdGFydE9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL0RlbGV0ZVRpbGxMaW5lU3RhcnRPcGVyYXRpb25cIjtcbmltcG9ydCB7IElNRVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvSU1FU2VydmljZVwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL09ic2lkaWFuU2VydmljZVwiO1xuaW1wb3J0IHsgUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcIjtcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIERlbGV0ZVNob3VsZElnbm9yZUJ1bGxldHNGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMixcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWU6IElNRVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbjogUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oXG4gICAgICBrZXltYXAub2YoW1xuICAgICAgICB7XG4gICAgICAgICAga2V5OiBcIkJhY2tzcGFjZVwiLFxuICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICBjaGVjazogdGhpcy5jaGVjayxcbiAgICAgICAgICAgIHJ1bjogdGhpcy5kZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmUsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IFwiRGVsZXRlXCIsXG4gICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgcnVuOiB0aGlzLmRlbGV0ZUFuZE1lcmdlV2l0aE5leHRMaW5lLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbWFjOiBcIm0tQmFja3NwYWNlXCIsXG4gICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgcnVuOiB0aGlzLmRlbGV0ZVRpbGxMaW5lU3RhcnQsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7fVxuXG4gIHByaXZhdGUgY2hlY2sgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Muc3RpY2tDdXJzb3IgJiYgIXRoaXMuaW1lLmlzSU1FT3BlbmVkKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBkZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmUgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgRGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXNMaW5lT3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcbiAgfTtcblxuICBwcml2YXRlIGRlbGV0ZVRpbGxMaW5lU3RhcnQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgRGVsZXRlVGlsbExpbmVTdGFydE9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG5cbiAgcHJpdmF0ZSBkZWxldGVBbmRNZXJnZVdpdGhOZXh0TGluZSA9IChlZGl0b3I6IE15RWRpdG9yKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucGVyZm9ybU9wZXJhdGlvbi5wZXJmb3JtT3BlcmF0aW9uKFxuICAgICAgKHJvb3QpID0+IG5ldyBEZWxldGVBbmRNZXJnZVdpdGhOZXh0TGluZU9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBFbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50T3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBzdG9wUHJvcGFnYXRpb24gPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cGRhdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuXG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBjb250ZW50U3RhcnQgPSBsaXN0LmdldEZpcnN0TGluZUNvbnRlbnRTdGFydCgpO1xuICAgIGNvbnN0IGxpbmVQcmVmaXggPVxuICAgICAgY29udGVudFN0YXJ0LmxpbmUgPT09IGN1cnNvci5saW5lXG4gICAgICAgID8gY29udGVudFN0YXJ0LmNoXG4gICAgICAgIDogbGlzdC5nZXROb3Rlc0luZGVudCgpLmxlbmd0aDtcblxuICAgIGlmIChjdXJzb3IuY2ggPCBsaW5lUHJlZml4KSB7XG4gICAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuICAgICAgcm9vdC5yZXBsYWNlQ3Vyc29yKHtcbiAgICAgICAgbGluZTogY3Vyc29yLmxpbmUsXG4gICAgICAgIGNoOiBsaW5lUHJlZml4LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBFbnN1cmVDdXJzb3JJc0luVW5mb2xkZWRMaW5lT3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBzdG9wUHJvcGFnYXRpb24gPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cGRhdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuXG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcblxuICAgIGNvbnN0IGxpc3QgPSByb290LmdldExpc3RVbmRlckN1cnNvcigpO1xuICAgIGlmICghbGlzdC5pc0ZvbGRlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZm9sZFJvb3QgPSBsaXN0LmdldFRvcEZvbGRSb290KCk7XG4gICAgY29uc3QgZmlyc3RMaW5lRW5kID0gZm9sZFJvb3QuZ2V0TGluZXNJbmZvKClbMF0udG87XG5cbiAgICBpZiAoY3Vyc29yLmxpbmUgPiBmaXJzdExpbmVFbmQubGluZSkge1xuICAgICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcbiAgICAgIHJvb3QucmVwbGFjZUN1cnNvcihmaXJzdExpbmVFbmQpO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgUGx1Z2luXzIgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsgRWRpdG9yU3RhdGUsIFRyYW5zYWN0aW9uIH0gZnJvbSBcIkBjb2RlbWlycm9yL3N0YXRlXCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4uL2ZlYXR1cmVzL0ZlYXR1cmVcIjtcbmltcG9ydCB7IEVuc3VyZUN1cnNvckluTGlzdENvbnRlbnRPcGVyYXRpb24gfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9FbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50T3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBFbnN1cmVDdXJzb3JJc0luVW5mb2xkZWRMaW5lT3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvRW5zdXJlQ3Vyc29ySXNJblVuZm9sZGVkTGluZU9wZXJhdGlvblwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL09ic2lkaWFuU2VydmljZVwiO1xuaW1wb3J0IHsgUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcIjtcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIEVuc3VyZUN1cnNvckluTGlzdENvbnRlbnRGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMixcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbjogUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oXG4gICAgICBFZGl0b3JTdGF0ZS50cmFuc2FjdGlvbkV4dGVuZGVyLm9mKHRoaXMudHJhbnNhY3Rpb25FeHRlbmRlcilcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge31cblxuICBwcml2YXRlIHRyYW5zYWN0aW9uRXh0ZW5kZXIgPSAodHI6IFRyYW5zYWN0aW9uKTogbnVsbCA9PiB7XG4gICAgaWYgKCF0aGlzLnNldHRpbmdzLnN0aWNrQ3Vyc29yIHx8ICF0ci5zZWxlY3Rpb24pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMub2JzaWRpYW4uZ2V0RWRpdG9yRnJvbVN0YXRlKHRyLnN0YXJ0U3RhdGUpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZUN1cnNvckFjdGl2aXR5KGVkaXRvcik7XG4gICAgfSwgMCk7XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcblxuICBwcml2YXRlIGhhbmRsZUN1cnNvckFjdGl2aXR5ID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgRW5zdXJlQ3Vyc29ySXNJblVuZm9sZGVkTGluZU9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG5cbiAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgRW5zdXJlQ3Vyc29ySW5MaXN0Q29udGVudE9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5pbXBvcnQgeyByZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzIH0gZnJvbSBcIi4uL3Jvb3QvcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0c1wiO1xuXG5leHBvcnQgY2xhc3MgTW92ZUxlZnRPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlQ3Vyc29yKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG5cbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBwYXJlbnQgPSBsaXN0LmdldFBhcmVudCgpO1xuICAgIGNvbnN0IGdyYW5kUGFyZW50ID0gcGFyZW50LmdldFBhcmVudCgpO1xuXG4gICAgaWYgKCFncmFuZFBhcmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG5cbiAgICBjb25zdCBsaXN0U3RhcnRMaW5lQmVmb3JlID0gcm9vdC5nZXRDb250ZW50TGluZXNSYW5nZU9mKGxpc3QpWzBdO1xuICAgIGNvbnN0IGluZGVudFJtRnJvbSA9IHBhcmVudC5nZXRGaXJzdExpbmVJbmRlbnQoKS5sZW5ndGg7XG4gICAgY29uc3QgaW5kZW50Um1UaWxsID0gbGlzdC5nZXRGaXJzdExpbmVJbmRlbnQoKS5sZW5ndGg7XG5cbiAgICBwYXJlbnQucmVtb3ZlQ2hpbGQobGlzdCk7XG4gICAgZ3JhbmRQYXJlbnQuYWRkQWZ0ZXIocGFyZW50LCBsaXN0KTtcbiAgICBsaXN0LnVuaW5kZW50Q29udGVudChpbmRlbnRSbUZyb20sIGluZGVudFJtVGlsbCk7XG5cbiAgICBjb25zdCBsaXN0U3RhcnRMaW5lQWZ0ZXIgPSByb290LmdldENvbnRlbnRMaW5lc1JhbmdlT2YobGlzdClbMF07XG4gICAgY29uc3QgbGluZURpZmYgPSBsaXN0U3RhcnRMaW5lQWZ0ZXIgLSBsaXN0U3RhcnRMaW5lQmVmb3JlO1xuICAgIGNvbnN0IGNoRGlmZiA9IGluZGVudFJtVGlsbCAtIGluZGVudFJtRnJvbTtcblxuICAgIGNvbnN0IGN1cnNvciA9IHJvb3QuZ2V0Q3Vyc29yKCk7XG4gICAgcm9vdC5yZXBsYWNlQ3Vyc29yKHtcbiAgICAgIGxpbmU6IGN1cnNvci5saW5lICsgbGluZURpZmYsXG4gICAgICBjaDogY3Vyc29yLmNoIC0gY2hEaWZmLFxuICAgIH0pO1xuXG4gICAgcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0cyhyb290KTtcbiAgfVxufVxuIiwiZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHlMaW5lT3JFbXB0eUNoZWNrYm94KGxpbmU6IHN0cmluZykge1xuICByZXR1cm4gbGluZSA9PT0gXCJcIiB8fCBsaW5lID09PSBcIlsgXSBcIjtcbn1cbiIsImltcG9ydCB7IE1vdmVMZWZ0T3BlcmF0aW9uIH0gZnJvbSBcIi4vTW92ZUxlZnRPcGVyYXRpb25cIjtcbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcbmltcG9ydCB7IGlzRW1wdHlMaW5lT3JFbXB0eUNoZWNrYm94IH0gZnJvbSBcIi4uL3V0aWxzL2lzRW1wdHlMaW5lT3JFbXB0eUNoZWNrYm94XCI7XG5cbmV4cG9ydCBjbGFzcyBPdXRkZW50SWZMaW5lSXNFbXB0eU9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgbW92ZUxlZnRPcDogTW92ZUxlZnRPcGVyYXRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7XG4gICAgdGhpcy5tb3ZlTGVmdE9wID0gbmV3IE1vdmVMZWZ0T3BlcmF0aW9uKHJvb3QpO1xuICB9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLm1vdmVMZWZ0T3Auc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubW92ZUxlZnRPcC5zaG91bGRVcGRhdGUoKTtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgbGluZXMgPSBsaXN0LmdldExpbmVzKCk7XG5cbiAgICBpZiAoXG4gICAgICBsaW5lcy5sZW5ndGggPiAxIHx8XG4gICAgICAhaXNFbXB0eUxpbmVPckVtcHR5Q2hlY2tib3gobGluZXNbMF0pIHx8XG4gICAgICBsaXN0LmdldExldmVsKCkgPT09IDFcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm1vdmVMZWZ0T3AucGVyZm9ybSgpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBQbHVnaW5fMiB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBQcmVjIH0gZnJvbSBcIkBjb2RlbWlycm9yL3N0YXRlXCI7XG5pbXBvcnQgeyBrZXltYXAgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivdmlld1wiO1xuXG5pbXBvcnQgeyBNeUVkaXRvciB9IGZyb20gXCIuLi9NeUVkaXRvclwiO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gXCIuLi9mZWF0dXJlcy9GZWF0dXJlXCI7XG5pbXBvcnQgeyBPdXRkZW50SWZMaW5lSXNFbXB0eU9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL091dGRlbnRJZkxpbmVJc0VtcHR5T3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBJTUVTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL0lNRVNlcnZpY2VcIjtcbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1BlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBFbnRlck91dGRlbnRJZkxpbmVJc0VtcHR5RmVhdHVyZSBpbXBsZW1lbnRzIEZlYXR1cmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsdWdpbjogUGx1Z2luXzIsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1lOiBJTUVTZXJ2aWNlLFxuICAgIHByaXZhdGUgb2JzaWRpYW46IE9ic2lkaWFuU2VydmljZSxcbiAgICBwcml2YXRlIHBlcmZvcm1PcGVyYXRpb246IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBsb2FkKCkge1xuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKFxuICAgICAgUHJlYy5oaWdoZXN0KFxuICAgICAgICBrZXltYXAub2YoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJFbnRlclwiLFxuICAgICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgICAgY2hlY2s6IHRoaXMuY2hlY2ssXG4gICAgICAgICAgICAgIHJ1bjogdGhpcy5ydW4sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICBdKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7fVxuXG4gIHByaXZhdGUgY2hlY2sgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuYmV0dGVyRW50ZXIgJiYgIXRoaXMuaW1lLmlzSU1FT3BlbmVkKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBydW4gPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgT3V0ZGVudElmTGluZUlzRW1wdHlPcGVyYXRpb24ocm9vdCksXG4gICAgICBlZGl0b3JcbiAgICApO1xuICB9O1xufVxuIiwiZXhwb3J0IGZ1bmN0aW9uIGNtcFBvcyhhOiBQb3NpdGlvbiwgYjogUG9zaXRpb24pIHtcbiAgcmV0dXJuIGEubGluZSAtIGIubGluZSB8fCBhLmNoIC0gYi5jaDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1heFBvcyhhOiBQb3NpdGlvbiwgYjogUG9zaXRpb24pIHtcbiAgcmV0dXJuIGNtcFBvcyhhLCBiKSA8IDAgPyBiIDogYTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1pblBvcyhhOiBQb3NpdGlvbiwgYjogUG9zaXRpb24pIHtcbiAgcmV0dXJuIGNtcFBvcyhhLCBiKSA8IDAgPyBhIDogYjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3NpdGlvbiB7XG4gIGNoOiBudW1iZXI7XG4gIGxpbmU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0TGluZSB7XG4gIHRleHQ6IHN0cmluZztcbiAgZnJvbTogUG9zaXRpb247XG4gIHRvOiBQb3NpdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSYW5nZSB7XG4gIGFuY2hvcjogUG9zaXRpb247XG4gIGhlYWQ6IFBvc2l0aW9uO1xufVxuXG5leHBvcnQgY2xhc3MgTGlzdCB7XG4gIHByaXZhdGUgcGFyZW50OiBMaXN0IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY2hpbGRyZW46IExpc3RbXSA9IFtdO1xuICBwcml2YXRlIG5vdGVzSW5kZW50OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBsaW5lczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvb3Q6IFJvb3QsXG4gICAgcHJpdmF0ZSBpbmRlbnQ6IHN0cmluZyxcbiAgICBwcml2YXRlIGJ1bGxldDogc3RyaW5nLFxuICAgIHByaXZhdGUgc3BhY2VBZnRlckJ1bGxldDogc3RyaW5nLFxuICAgIGZpcnN0TGluZTogc3RyaW5nLFxuICAgIHByaXZhdGUgZm9sZFJvb3Q6IGJvb2xlYW5cbiAgKSB7XG4gICAgdGhpcy5saW5lcy5wdXNoKGZpcnN0TGluZSk7XG4gIH1cblxuICBnZXROb3Rlc0luZGVudCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5ub3Rlc0luZGVudDtcbiAgfVxuXG4gIHNldE5vdGVzSW5kZW50KG5vdGVzSW5kZW50OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5ub3Rlc0luZGVudCAhPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb3RlcyBpbmRlbnQgYWxyZWFkeSBwcm92aWRlZGApO1xuICAgIH1cbiAgICB0aGlzLm5vdGVzSW5kZW50ID0gbm90ZXNJbmRlbnQ7XG4gIH1cblxuICBhZGRMaW5lKHRleHQ6IHN0cmluZykge1xuICAgIGlmICh0aGlzLm5vdGVzSW5kZW50ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbmFibGUgdG8gYWRkIGxpbmUsIG5vdGVzIGluZGVudCBzaG91bGQgYmUgcHJvdmlkZWQgZmlyc3RgXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMubGluZXMucHVzaCh0ZXh0KTtcbiAgfVxuXG4gIHJlcGxhY2VMaW5lcyhsaW5lczogc3RyaW5nW10pIHtcbiAgICBpZiAobGluZXMubGVuZ3RoID4gMSAmJiB0aGlzLm5vdGVzSW5kZW50ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbmFibGUgdG8gYWRkIGxpbmUsIG5vdGVzIGluZGVudCBzaG91bGQgYmUgcHJvdmlkZWQgZmlyc3RgXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMubGluZXMgPSBsaW5lcztcbiAgfVxuXG4gIGdldExpbmVDb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5saW5lcy5sZW5ndGg7XG4gIH1cblxuICBnZXRSb290KCkge1xuICAgIHJldHVybiB0aGlzLnJvb3Q7XG4gIH1cblxuICBnZXRDaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi5jb25jYXQoKTtcbiAgfVxuXG4gIGdldExpbmVzSW5mbygpOiBMaXN0TGluZVtdIHtcbiAgICBjb25zdCBzdGFydExpbmUgPSB0aGlzLnJvb3QuZ2V0Q29udGVudExpbmVzUmFuZ2VPZih0aGlzKVswXTtcblxuICAgIHJldHVybiB0aGlzLmxpbmVzLm1hcCgocm93LCBpKSA9PiB7XG4gICAgICBjb25zdCBsaW5lID0gc3RhcnRMaW5lICsgaTtcbiAgICAgIGNvbnN0IHN0YXJ0Q2ggPVxuICAgICAgICBpID09PSAwID8gdGhpcy5nZXRDb250ZW50U3RhcnRDaCgpIDogdGhpcy5ub3Rlc0luZGVudC5sZW5ndGg7XG4gICAgICBjb25zdCBlbmRDaCA9IHN0YXJ0Q2ggKyByb3cubGVuZ3RoO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0ZXh0OiByb3csXG4gICAgICAgIGZyb206IHsgbGluZSwgY2g6IHN0YXJ0Q2ggfSxcbiAgICAgICAgdG86IHsgbGluZSwgY2g6IGVuZENoIH0sXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0TGluZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmxpbmVzLmNvbmNhdCgpO1xuICB9XG5cbiAgZ2V0Rmlyc3RMaW5lQ29udGVudFN0YXJ0KCkge1xuICAgIGNvbnN0IHN0YXJ0TGluZSA9IHRoaXMucm9vdC5nZXRDb250ZW50TGluZXNSYW5nZU9mKHRoaXMpWzBdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmU6IHN0YXJ0TGluZSxcbiAgICAgIGNoOiB0aGlzLmdldENvbnRlbnRTdGFydENoKCksXG4gICAgfTtcbiAgfVxuXG4gIGdldExhc3RMaW5lQ29udGVudEVuZCgpIHtcbiAgICBjb25zdCBlbmRMaW5lID0gdGhpcy5yb290LmdldENvbnRlbnRMaW5lc1JhbmdlT2YodGhpcylbMV07XG4gICAgY29uc3QgZW5kQ2ggPVxuICAgICAgdGhpcy5saW5lcy5sZW5ndGggPT09IDFcbiAgICAgICAgPyB0aGlzLmdldENvbnRlbnRTdGFydENoKCkgKyB0aGlzLmxpbmVzWzBdLmxlbmd0aFxuICAgICAgICA6IHRoaXMubm90ZXNJbmRlbnQubGVuZ3RoICsgdGhpcy5saW5lc1t0aGlzLmxpbmVzLmxlbmd0aCAtIDFdLmxlbmd0aDtcblxuICAgIHJldHVybiB7XG4gICAgICBsaW5lOiBlbmRMaW5lLFxuICAgICAgY2g6IGVuZENoLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldENvbnRlbnRTdGFydENoKCkge1xuICAgIHJldHVybiB0aGlzLmluZGVudC5sZW5ndGggKyB0aGlzLmJ1bGxldC5sZW5ndGggKyAxO1xuICB9XG5cbiAgaXNGb2xkZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuZm9sZFJvb3QpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBhcmVudCkge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50LmlzRm9sZGVkKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaXNGb2xkUm9vdCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb2xkUm9vdDtcbiAgfVxuXG4gIGdldFRvcEZvbGRSb290KCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuICAgIGxldCB0bXA6IExpc3QgPSB0aGlzO1xuICAgIGxldCBmb2xkUm9vdDogTGlzdCB8IG51bGwgPSBudWxsO1xuICAgIHdoaWxlICh0bXApIHtcbiAgICAgIGlmICh0bXAuaXNGb2xkUm9vdCgpKSB7XG4gICAgICAgIGZvbGRSb290ID0gdG1wO1xuICAgICAgfVxuICAgICAgdG1wID0gdG1wLnBhcmVudDtcbiAgICB9XG4gICAgcmV0dXJuIGZvbGRSb290O1xuICB9XG5cbiAgZ2V0TGV2ZWwoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMucGFyZW50KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuZ2V0TGV2ZWwoKSArIDE7XG4gIH1cblxuICB1bmluZGVudENvbnRlbnQoZnJvbTogbnVtYmVyLCB0aWxsOiBudW1iZXIpIHtcbiAgICB0aGlzLmluZGVudCA9IHRoaXMuaW5kZW50LnNsaWNlKDAsIGZyb20pICsgdGhpcy5pbmRlbnQuc2xpY2UodGlsbCk7XG4gICAgaWYgKHRoaXMubm90ZXNJbmRlbnQgIT09IG51bGwpIHtcbiAgICAgIHRoaXMubm90ZXNJbmRlbnQgPVxuICAgICAgICB0aGlzLm5vdGVzSW5kZW50LnNsaWNlKDAsIGZyb20pICsgdGhpcy5ub3Rlc0luZGVudC5zbGljZSh0aWxsKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgIGNoaWxkLnVuaW5kZW50Q29udGVudChmcm9tLCB0aWxsKTtcbiAgICB9XG4gIH1cblxuICBpbmRlbnRDb250ZW50KGluZGVudFBvczogbnVtYmVyLCBpbmRlbnRDaGFyczogc3RyaW5nKSB7XG4gICAgdGhpcy5pbmRlbnQgPVxuICAgICAgdGhpcy5pbmRlbnQuc2xpY2UoMCwgaW5kZW50UG9zKSArXG4gICAgICBpbmRlbnRDaGFycyArXG4gICAgICB0aGlzLmluZGVudC5zbGljZShpbmRlbnRQb3MpO1xuICAgIGlmICh0aGlzLm5vdGVzSW5kZW50ICE9PSBudWxsKSB7XG4gICAgICB0aGlzLm5vdGVzSW5kZW50ID1cbiAgICAgICAgdGhpcy5ub3Rlc0luZGVudC5zbGljZSgwLCBpbmRlbnRQb3MpICtcbiAgICAgICAgaW5kZW50Q2hhcnMgK1xuICAgICAgICB0aGlzLm5vdGVzSW5kZW50LnNsaWNlKGluZGVudFBvcyk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICBjaGlsZC5pbmRlbnRDb250ZW50KGluZGVudFBvcywgaW5kZW50Q2hhcnMpO1xuICAgIH1cbiAgfVxuXG4gIGdldEZpcnN0TGluZUluZGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbmRlbnQ7XG4gIH1cblxuICBnZXRCdWxsZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYnVsbGV0O1xuICB9XG5cbiAgZ2V0U3BhY2VBZnRlckJ1bGxldCgpIHtcbiAgICByZXR1cm4gdGhpcy5zcGFjZUFmdGVyQnVsbGV0O1xuICB9XG5cbiAgcmVwbGF0ZUJ1bGxldChidWxsZXQ6IHN0cmluZykge1xuICAgIHRoaXMuYnVsbGV0ID0gYnVsbGV0O1xuICB9XG5cbiAgZ2V0UGFyZW50KCkge1xuICAgIHJldHVybiB0aGlzLnBhcmVudDtcbiAgfVxuXG4gIGFkZEJlZm9yZUFsbChsaXN0OiBMaXN0KSB7XG4gICAgdGhpcy5jaGlsZHJlbi51bnNoaWZ0KGxpc3QpO1xuICAgIGxpc3QucGFyZW50ID0gdGhpcztcbiAgfVxuXG4gIGFkZEFmdGVyQWxsKGxpc3Q6IExpc3QpIHtcbiAgICB0aGlzLmNoaWxkcmVuLnB1c2gobGlzdCk7XG4gICAgbGlzdC5wYXJlbnQgPSB0aGlzO1xuICB9XG5cbiAgcmVtb3ZlQ2hpbGQobGlzdDogTGlzdCkge1xuICAgIGNvbnN0IGkgPSB0aGlzLmNoaWxkcmVuLmluZGV4T2YobGlzdCk7XG4gICAgdGhpcy5jaGlsZHJlbi5zcGxpY2UoaSwgMSk7XG4gICAgbGlzdC5wYXJlbnQgPSBudWxsO1xuICB9XG5cbiAgYWRkQmVmb3JlKGJlZm9yZTogTGlzdCwgbGlzdDogTGlzdCkge1xuICAgIGNvbnN0IGkgPSB0aGlzLmNoaWxkcmVuLmluZGV4T2YoYmVmb3JlKTtcbiAgICB0aGlzLmNoaWxkcmVuLnNwbGljZShpLCAwLCBsaXN0KTtcbiAgICBsaXN0LnBhcmVudCA9IHRoaXM7XG4gIH1cblxuICBhZGRBZnRlcihiZWZvcmU6IExpc3QsIGxpc3Q6IExpc3QpIHtcbiAgICBjb25zdCBpID0gdGhpcy5jaGlsZHJlbi5pbmRleE9mKGJlZm9yZSk7XG4gICAgdGhpcy5jaGlsZHJlbi5zcGxpY2UoaSArIDEsIDAsIGxpc3QpO1xuICAgIGxpc3QucGFyZW50ID0gdGhpcztcbiAgfVxuXG4gIGdldFByZXZTaWJsaW5nT2YobGlzdDogTGlzdCkge1xuICAgIGNvbnN0IGkgPSB0aGlzLmNoaWxkcmVuLmluZGV4T2YobGlzdCk7XG4gICAgcmV0dXJuIGkgPiAwID8gdGhpcy5jaGlsZHJlbltpIC0gMV0gOiBudWxsO1xuICB9XG5cbiAgZ2V0TmV4dFNpYmxpbmdPZihsaXN0OiBMaXN0KSB7XG4gICAgY29uc3QgaSA9IHRoaXMuY2hpbGRyZW4uaW5kZXhPZihsaXN0KTtcbiAgICByZXR1cm4gaSA+PSAwICYmIGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aCA/IHRoaXMuY2hpbGRyZW5baSArIDFdIDogbnVsbDtcbiAgfVxuXG4gIGlzRW1wdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcHJpbnQoKSB7XG4gICAgbGV0IHJlcyA9IFwiXCI7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlcyArPVxuICAgICAgICBpID09PSAwXG4gICAgICAgICAgPyB0aGlzLmluZGVudCArIHRoaXMuYnVsbGV0ICsgdGhpcy5zcGFjZUFmdGVyQnVsbGV0XG4gICAgICAgICAgOiB0aGlzLm5vdGVzSW5kZW50O1xuICAgICAgcmVzICs9IHRoaXMubGluZXNbaV07XG4gICAgICByZXMgKz0gXCJcXG5cIjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgIHJlcyArPSBjaGlsZC5wcmludCgpO1xuICAgIH1cblxuICAgIHJldHVybiByZXM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvb3Qge1xuICBwcml2YXRlIHJvb3RMaXN0ID0gbmV3IExpc3QodGhpcywgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgZmFsc2UpO1xuICBwcml2YXRlIHNlbGVjdGlvbnM6IFJhbmdlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0YXJ0OiBQb3NpdGlvbixcbiAgICBwcml2YXRlIGVuZDogUG9zaXRpb24sXG4gICAgc2VsZWN0aW9uczogUmFuZ2VbXVxuICApIHtcbiAgICB0aGlzLnJlcGxhY2VTZWxlY3Rpb25zKHNlbGVjdGlvbnMpO1xuICB9XG5cbiAgZ2V0Um9vdExpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMucm9vdExpc3Q7XG4gIH1cblxuICBnZXRSYW5nZSgpOiBbUG9zaXRpb24sIFBvc2l0aW9uXSB7XG4gICAgcmV0dXJuIFt7IC4uLnRoaXMuc3RhcnQgfSwgeyAuLi50aGlzLmVuZCB9XTtcbiAgfVxuXG4gIGdldFNlbGVjdGlvbnMoKTogUmFuZ2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9ucy5tYXAoKHMpID0+ICh7XG4gICAgICBhbmNob3I6IHsgLi4ucy5hbmNob3IgfSxcbiAgICAgIGhlYWQ6IHsgLi4ucy5oZWFkIH0sXG4gICAgfSkpO1xuICB9XG5cbiAgaGFzU2luZ2xlQ3Vyc29yKCkge1xuICAgIGlmICghdGhpcy5oYXNTaW5nbGVTZWxlY3Rpb24oKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uc1swXTtcblxuICAgIHJldHVybiAoXG4gICAgICBzZWxlY3Rpb24uYW5jaG9yLmxpbmUgPT09IHNlbGVjdGlvbi5oZWFkLmxpbmUgJiZcbiAgICAgIHNlbGVjdGlvbi5hbmNob3IuY2ggPT09IHNlbGVjdGlvbi5oZWFkLmNoXG4gICAgKTtcbiAgfVxuXG4gIGhhc1NpbmdsZVNlbGVjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25zLmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIGdldFNlbGVjdGlvbigpIHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGlvbnNbdGhpcy5zZWxlY3Rpb25zLmxlbmd0aCAtIDFdO1xuXG4gICAgY29uc3QgZnJvbSA9XG4gICAgICBzZWxlY3Rpb24uYW5jaG9yLmNoID4gc2VsZWN0aW9uLmhlYWQuY2hcbiAgICAgICAgPyBzZWxlY3Rpb24uaGVhZC5jaFxuICAgICAgICA6IHNlbGVjdGlvbi5hbmNob3IuY2g7XG4gICAgY29uc3QgdG8gPVxuICAgICAgc2VsZWN0aW9uLmFuY2hvci5jaCA+IHNlbGVjdGlvbi5oZWFkLmNoXG4gICAgICAgID8gc2VsZWN0aW9uLmFuY2hvci5jaFxuICAgICAgICA6IHNlbGVjdGlvbi5oZWFkLmNoO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnNlbGVjdGlvbixcbiAgICAgIGZyb20sXG4gICAgICB0byxcbiAgICB9O1xuICB9XG5cbiAgZ2V0Q3Vyc29yKCkge1xuICAgIHJldHVybiB7IC4uLnRoaXMuc2VsZWN0aW9uc1t0aGlzLnNlbGVjdGlvbnMubGVuZ3RoIC0gMV0uaGVhZCB9O1xuICB9XG5cbiAgcmVwbGFjZUN1cnNvcihjdXJzb3I6IFBvc2l0aW9uKSB7XG4gICAgdGhpcy5zZWxlY3Rpb25zID0gW3sgYW5jaG9yOiBjdXJzb3IsIGhlYWQ6IGN1cnNvciB9XTtcbiAgfVxuXG4gIHJlcGxhY2VTZWxlY3Rpb25zKHNlbGVjdGlvbnM6IFJhbmdlW10pIHtcbiAgICBpZiAoc2VsZWN0aW9ucy5sZW5ndGggPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBjcmVhdGUgUm9vdCB3aXRob3V0IHNlbGVjdGlvbnNgKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3Rpb25zID0gc2VsZWN0aW9ucztcbiAgfVxuXG4gIGdldExpc3RVbmRlckN1cnNvcigpOiBMaXN0IHtcbiAgICByZXR1cm4gdGhpcy5nZXRMaXN0VW5kZXJMaW5lKHRoaXMuZ2V0Q3Vyc29yKCkubGluZSk7XG4gIH1cblxuICBnZXRMaXN0VW5kZXJMaW5lKGxpbmU6IG51bWJlcikge1xuICAgIGlmIChsaW5lIDwgdGhpcy5zdGFydC5saW5lIHx8IGxpbmUgPiB0aGlzLmVuZC5saW5lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdDogTGlzdCA9IG51bGw7XG4gICAgbGV0IGluZGV4OiBudW1iZXIgPSB0aGlzLnN0YXJ0LmxpbmU7XG5cbiAgICBjb25zdCB2aXNpdEFyciA9IChsbDogTGlzdFtdKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGwgb2YgbGwpIHtcbiAgICAgICAgY29uc3QgbGlzdEZyb21MaW5lID0gaW5kZXg7XG4gICAgICAgIGNvbnN0IGxpc3RUaWxsTGluZSA9IGxpc3RGcm9tTGluZSArIGwuZ2V0TGluZUNvdW50KCkgLSAxO1xuXG4gICAgICAgIGlmIChsaW5lID49IGxpc3RGcm9tTGluZSAmJiBsaW5lIDw9IGxpc3RUaWxsTGluZSkge1xuICAgICAgICAgIHJlc3VsdCA9IGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaW5kZXggPSBsaXN0VGlsbExpbmUgKyAxO1xuICAgICAgICAgIHZpc2l0QXJyKGwuZ2V0Q2hpbGRyZW4oKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICB2aXNpdEFycih0aGlzLnJvb3RMaXN0LmdldENoaWxkcmVuKCkpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldENvbnRlbnRMaW5lc1JhbmdlT2YobGlzdDogTGlzdCk6IFtudW1iZXIsIG51bWJlcl0gfCBudWxsIHtcbiAgICBsZXQgcmVzdWx0OiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGxpbmU6IG51bWJlciA9IHRoaXMuc3RhcnQubGluZTtcblxuICAgIGNvbnN0IHZpc2l0QXJyID0gKGxsOiBMaXN0W10pID0+IHtcbiAgICAgIGZvciAoY29uc3QgbCBvZiBsbCkge1xuICAgICAgICBjb25zdCBsaXN0RnJvbUxpbmUgPSBsaW5lO1xuICAgICAgICBjb25zdCBsaXN0VGlsbExpbmUgPSBsaXN0RnJvbUxpbmUgKyBsLmdldExpbmVDb3VudCgpIC0gMTtcblxuICAgICAgICBpZiAobCA9PT0gbGlzdCkge1xuICAgICAgICAgIHJlc3VsdCA9IFtsaXN0RnJvbUxpbmUsIGxpc3RUaWxsTGluZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGluZSA9IGxpc3RUaWxsTGluZSArIDE7XG4gICAgICAgICAgdmlzaXRBcnIobC5nZXRDaGlsZHJlbigpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdmlzaXRBcnIodGhpcy5yb290TGlzdC5nZXRDaGlsZHJlbigpKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXRDaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy5yb290TGlzdC5nZXRDaGlsZHJlbigpO1xuICB9XG5cbiAgcHJpbnQoKSB7XG4gICAgbGV0IHJlcyA9IFwiXCI7XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMucm9vdExpc3QuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgcmVzICs9IGNoaWxkLnByaW50KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcy5yZXBsYWNlKC9cXG4kLywgXCJcIik7XG4gIH1cbn1cbiIsImltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBMaXN0LCBQb3NpdGlvbiwgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5pbXBvcnQgeyByZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzIH0gZnJvbSBcIi4uL3Jvb3QvcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0c1wiO1xuaW1wb3J0IHsgaXNFbXB0eUxpbmVPckVtcHR5Q2hlY2tib3ggfSBmcm9tIFwiLi4vdXRpbHMvaXNFbXB0eUxpbmVPckVtcHR5Q2hlY2tib3hcIjtcblxuZXhwb3J0IGludGVyZmFjZSBHZXRab29tUmFuZ2Uge1xuICBnZXRab29tUmFuZ2UoKTogeyBmcm9tOiBQb3NpdGlvbjsgdG86IFBvc2l0aW9uIH0gfCBudWxsO1xufVxuXG5leHBvcnQgY2xhc3MgQ3JlYXRlTmV3SXRlbU9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgc3RvcFByb3BhZ2F0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm9vdDogUm9vdCxcbiAgICBwcml2YXRlIGRlZmF1bHRJbmRlbnRDaGFyczogc3RyaW5nLFxuICAgIHByaXZhdGUgZ2V0Wm9vbVJhbmdlOiBHZXRab29tUmFuZ2VcbiAgKSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZVNlbGVjdGlvbigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0aW9uID0gcm9vdC5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoIXNlbGVjdGlvbiB8fCBzZWxlY3Rpb24uYW5jaG9yLmxpbmUgIT09IHNlbGVjdGlvbi5oZWFkLmxpbmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBsaW5lcyA9IGxpc3QuZ2V0TGluZXNJbmZvKCk7XG5cbiAgICBpZiAobGluZXMubGVuZ3RoID09PSAxICYmIGlzRW1wdHlMaW5lT3JFbXB0eUNoZWNrYm94KGxpbmVzWzBdLnRleHQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcbiAgICBjb25zdCBsaW5lVW5kZXJDdXJzb3IgPSBsaW5lcy5maW5kKChsKSA9PiBsLmZyb20ubGluZSA9PT0gY3Vyc29yLmxpbmUpO1xuXG4gICAgaWYgKGN1cnNvci5jaCA8IGxpbmVVbmRlckN1cnNvci5mcm9tLmNoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBvbGRMaW5lcywgbmV3TGluZXMgfSA9IGxpbmVzLnJlZHVjZShcbiAgICAgIChhY2MsIGxpbmUpID0+IHtcbiAgICAgICAgaWYgKGN1cnNvci5saW5lID4gbGluZS5mcm9tLmxpbmUpIHtcbiAgICAgICAgICBhY2Mub2xkTGluZXMucHVzaChsaW5lLnRleHQpO1xuICAgICAgICB9IGVsc2UgaWYgKGN1cnNvci5saW5lID09PSBsaW5lLmZyb20ubGluZSkge1xuICAgICAgICAgIGNvbnN0IGxlZnQgPSBsaW5lLnRleHQuc2xpY2UoMCwgc2VsZWN0aW9uLmZyb20gLSBsaW5lLmZyb20uY2gpO1xuICAgICAgICAgIGNvbnN0IHJpZ2h0ID0gbGluZS50ZXh0LnNsaWNlKHNlbGVjdGlvbi50byAtIGxpbmUuZnJvbS5jaCk7XG4gICAgICAgICAgYWNjLm9sZExpbmVzLnB1c2gobGVmdCk7XG4gICAgICAgICAgYWNjLm5ld0xpbmVzLnB1c2gocmlnaHQpO1xuICAgICAgICB9IGVsc2UgaWYgKGN1cnNvci5saW5lIDwgbGluZS5mcm9tLmxpbmUpIHtcbiAgICAgICAgICBhY2MubmV3TGluZXMucHVzaChsaW5lLnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG9sZExpbmVzOiBbXSxcbiAgICAgICAgbmV3TGluZXM6IFtdLFxuICAgICAgfVxuICAgICk7XG5cbiAgICBjb25zdCBjb2RlQmxvY2tCYWN0aWNrcyA9IG9sZExpbmVzLmpvaW4oXCJcXG5cIikuc3BsaXQoXCJgYGBcIikubGVuZ3RoIC0gMTtcbiAgICBjb25zdCBpc0luc2lkZUNvZGVibG9jayA9XG4gICAgICBjb2RlQmxvY2tCYWN0aWNrcyA+IDAgJiYgY29kZUJsb2NrQmFjdGlja3MgJSAyICE9PSAwO1xuXG4gICAgaWYgKGlzSW5zaWRlQ29kZWJsb2NrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG5cbiAgICBjb25zdCB6b29tUmFuZ2UgPSB0aGlzLmdldFpvb21SYW5nZS5nZXRab29tUmFuZ2UoKTtcbiAgICBjb25zdCBsaXN0SXNab29taW5nUm9vdCA9IEJvb2xlYW4oXG4gICAgICB6b29tUmFuZ2UgJiZcbiAgICAgICAgbGlzdC5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKS5saW5lID49IHpvb21SYW5nZS5mcm9tLmxpbmUgJiZcbiAgICAgICAgbGlzdC5nZXRMYXN0TGluZUNvbnRlbnRFbmQoKS5saW5lIDw9IHpvb21SYW5nZS5mcm9tLmxpbmVcbiAgICApO1xuXG4gICAgY29uc3QgaGFzQ2hpbGRyZW4gPSAhbGlzdC5pc0VtcHR5KCk7XG4gICAgY29uc3QgY2hpbGRJc0ZvbGRlZCA9IGxpc3QuaXNGb2xkUm9vdCgpO1xuICAgIGNvbnN0IGVuZFBvcyA9IGxpc3QuZ2V0TGFzdExpbmVDb250ZW50RW5kKCk7XG4gICAgY29uc3QgZW5kT2ZMaW5lID0gY3Vyc29yLmxpbmUgPT09IGVuZFBvcy5saW5lICYmIGN1cnNvci5jaCA9PT0gZW5kUG9zLmNoO1xuXG4gICAgY29uc3Qgb25DaGlsZExldmVsID1cbiAgICAgIGxpc3RJc1pvb21pbmdSb290IHx8IChoYXNDaGlsZHJlbiAmJiAhY2hpbGRJc0ZvbGRlZCAmJiBlbmRPZkxpbmUpO1xuXG4gICAgY29uc3QgaW5kZW50ID0gb25DaGlsZExldmVsXG4gICAgICA/IGhhc0NoaWxkcmVuXG4gICAgICAgID8gbGlzdC5nZXRDaGlsZHJlbigpWzBdLmdldEZpcnN0TGluZUluZGVudCgpXG4gICAgICAgIDogbGlzdC5nZXRGaXJzdExpbmVJbmRlbnQoKSArIHRoaXMuZGVmYXVsdEluZGVudENoYXJzXG4gICAgICA6IGxpc3QuZ2V0Rmlyc3RMaW5lSW5kZW50KCk7XG5cbiAgICBjb25zdCBidWxsZXQgPVxuICAgICAgb25DaGlsZExldmVsICYmIGhhc0NoaWxkcmVuXG4gICAgICAgID8gbGlzdC5nZXRDaGlsZHJlbigpWzBdLmdldEJ1bGxldCgpXG4gICAgICAgIDogbGlzdC5nZXRCdWxsZXQoKTtcblxuICAgIGNvbnN0IHNwYWNlQWZ0ZXJCdWxsZXQgPVxuICAgICAgb25DaGlsZExldmVsICYmIGhhc0NoaWxkcmVuXG4gICAgICAgID8gbGlzdC5nZXRDaGlsZHJlbigpWzBdLmdldFNwYWNlQWZ0ZXJCdWxsZXQoKVxuICAgICAgICA6IGxpc3QuZ2V0U3BhY2VBZnRlckJ1bGxldCgpO1xuXG4gICAgY29uc3QgcHJlZml4ID0gb2xkTGluZXNbMF0ubWF0Y2goL15cXFsuXFxdLykgPyBcIlsgXSBcIiA6IFwiXCI7XG5cbiAgICBjb25zdCBuZXdMaXN0ID0gbmV3IExpc3QoXG4gICAgICBsaXN0LmdldFJvb3QoKSxcbiAgICAgIGluZGVudCxcbiAgICAgIGJ1bGxldCxcbiAgICAgIHNwYWNlQWZ0ZXJCdWxsZXQsXG4gICAgICBwcmVmaXggKyBuZXdMaW5lcy5zaGlmdCgpLFxuICAgICAgZmFsc2VcbiAgICApO1xuXG4gICAgaWYgKG5ld0xpbmVzLmxlbmd0aCA+IDApIHtcbiAgICAgIG5ld0xpc3Quc2V0Tm90ZXNJbmRlbnQobGlzdC5nZXROb3Rlc0luZGVudCgpKTtcbiAgICAgIGZvciAoY29uc3QgbGluZSBvZiBuZXdMaW5lcykge1xuICAgICAgICBuZXdMaXN0LmFkZExpbmUobGluZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG9uQ2hpbGRMZXZlbCkge1xuICAgICAgbGlzdC5hZGRCZWZvcmVBbGwobmV3TGlzdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghY2hpbGRJc0ZvbGRlZCB8fCAhZW5kT2ZMaW5lKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gbGlzdC5nZXRDaGlsZHJlbigpO1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICAgICAgbGlzdC5yZW1vdmVDaGlsZChjaGlsZCk7XG4gICAgICAgICAgbmV3TGlzdC5hZGRBZnRlckFsbChjaGlsZCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGlzdC5nZXRQYXJlbnQoKS5hZGRBZnRlcihsaXN0LCBuZXdMaXN0KTtcbiAgICB9XG5cbiAgICBsaXN0LnJlcGxhY2VMaW5lcyhvbGRMaW5lcyk7XG5cbiAgICBjb25zdCBuZXdMaXN0U3RhcnQgPSBuZXdMaXN0LmdldEZpcnN0TGluZUNvbnRlbnRTdGFydCgpO1xuICAgIHJvb3QucmVwbGFjZUN1cnNvcih7XG4gICAgICBsaW5lOiBuZXdMaXN0U3RhcnQubGluZSxcbiAgICAgIGNoOiBuZXdMaXN0U3RhcnQuY2ggKyBwcmVmaXgubGVuZ3RoLFxuICAgIH0pO1xuXG4gICAgcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0cyhyb290KTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUGx1Z2luXzIgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsgUHJlYyB9IGZyb20gXCJAY29kZW1pcnJvci9zdGF0ZVwiO1xuaW1wb3J0IHsga2V5bWFwIH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcblxuaW1wb3J0IHsgTXlFZGl0b3IgfSBmcm9tIFwiLi4vTXlFZGl0b3JcIjtcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi4vZmVhdHVyZXMvRmVhdHVyZVwiO1xuaW1wb3J0IHsgQ3JlYXRlTmV3SXRlbU9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL0NyZWF0ZU5ld0l0ZW1PcGVyYXRpb25cIjtcbmltcG9ydCB7IElNRVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvSU1FU2VydmljZVwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL09ic2lkaWFuU2VydmljZVwiO1xuaW1wb3J0IHsgUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcIjtcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIEVudGVyU2hvdWxkQ3JlYXRlTmV3SXRlbUZlYXR1cmUgaW1wbGVtZW50cyBGZWF0dXJlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbHVnaW46IFBsdWdpbl8yLFxuICAgIHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIGltZTogSU1FU2VydmljZSxcbiAgICBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJmb3JtT3BlcmF0aW9uOiBQZXJmb3JtT3BlcmF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnBsdWdpbi5yZWdpc3RlckVkaXRvckV4dGVuc2lvbihcbiAgICAgIFByZWMuaGlnaGVzdChcbiAgICAgICAga2V5bWFwLm9mKFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFwiRW50ZXJcIixcbiAgICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgICBydW46IHRoaXMucnVuLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge31cblxuICBwcml2YXRlIGNoZWNrID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmJldHRlckVudGVyICYmICF0aGlzLmltZS5pc0lNRU9wZW5lZCgpO1xuICB9O1xuXG4gIHByaXZhdGUgcnVuID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICBjb25zdCB6b29tUmFuZ2UgPSBlZGl0b3IuZ2V0Wm9vbVJhbmdlKCk7XG5cbiAgICBjb25zdCByZXMgPSB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PlxuICAgICAgICBuZXcgQ3JlYXRlTmV3SXRlbU9wZXJhdGlvbihcbiAgICAgICAgICByb290LFxuICAgICAgICAgIHRoaXMub2JzaWRpYW4uZ2V0RGVmYXVsdEluZGVudENoYXJzKCksXG4gICAgICAgICAge1xuICAgICAgICAgICAgZ2V0Wm9vbVJhbmdlOiAoKSA9PiB6b29tUmFuZ2UsXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgZWRpdG9yXG4gICAgKTtcblxuICAgIGlmIChyZXMuc2hvdWxkVXBkYXRlICYmIHpvb21SYW5nZSkge1xuICAgICAgZWRpdG9yLnpvb21Jbih6b29tUmFuZ2UuZnJvbS5saW5lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xuICB9O1xufVxuIiwiaW1wb3J0IHsgTm90aWNlLCBQbHVnaW5fMiB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4vRmVhdHVyZVwiO1xuXG5pbXBvcnQgeyBNeUVkaXRvciB9IGZyb20gXCIuLi9NeUVkaXRvclwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL09ic2lkaWFuU2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgRm9sZEZlYXR1cmUgaW1wbGVtZW50cyBGZWF0dXJlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwbHVnaW46IFBsdWdpbl8yLCBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2UpIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnBsdWdpbi5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiBcImZvbGRcIixcbiAgICAgIGljb246IFwiY2hldnJvbnMtZG93bi11cFwiLFxuICAgICAgbmFtZTogXCJGb2xkIHRoZSBsaXN0XCIsXG4gICAgICBlZGl0b3JDYWxsYmFjazogdGhpcy5vYnNpZGlhbi5jcmVhdGVFZGl0b3JDYWxsYmFjayh0aGlzLmZvbGQpLFxuICAgICAgaG90a2V5czogW1xuICAgICAgICB7XG4gICAgICAgICAgbW9kaWZpZXJzOiBbXCJNb2RcIl0sXG4gICAgICAgICAga2V5OiBcIkFycm93VXBcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnBsdWdpbi5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiBcInVuZm9sZFwiLFxuICAgICAgaWNvbjogXCJjaGV2cm9ucy11cC1kb3duXCIsXG4gICAgICBuYW1lOiBcIlVuZm9sZCB0aGUgbGlzdFwiLFxuICAgICAgZWRpdG9yQ2FsbGJhY2s6IHRoaXMub2JzaWRpYW4uY3JlYXRlRWRpdG9yQ2FsbGJhY2sodGhpcy51bmZvbGQpLFxuICAgICAgaG90a2V5czogW1xuICAgICAgICB7XG4gICAgICAgICAgbW9kaWZpZXJzOiBbXCJNb2RcIl0sXG4gICAgICAgICAga2V5OiBcIkFycm93RG93blwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZCgpIHt9XG5cbiAgcHJpdmF0ZSBzZXRGb2xkKGVkaXRvcjogTXlFZGl0b3IsIHR5cGU6IFwiZm9sZFwiIHwgXCJ1bmZvbGRcIikge1xuICAgIGlmICghdGhpcy5vYnNpZGlhbi5nZXRPYnNpZGlhbkZvbGRTZXR0aW5ncygpLmZvbGRJbmRlbnQpIHtcbiAgICAgIG5ldyBOb3RpY2UoXG4gICAgICAgIGBVbmFibGUgdG8gJHt0eXBlfSBiZWNhdXNlIGZvbGRpbmcgaXMgZGlzYWJsZWQuIFBsZWFzZSBlbmFibGUgXCJGb2xkIGluZGVudFwiIGluIE9ic2lkaWFuIHNldHRpbmdzLmAsXG4gICAgICAgIDUwMDBcbiAgICAgICk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJzb3IgPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XG5cbiAgICBpZiAodHlwZSA9PT0gXCJmb2xkXCIpIHtcbiAgICAgIGVkaXRvci5mb2xkKGN1cnNvci5saW5lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWRpdG9yLnVuZm9sZChjdXJzb3IubGluZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGZvbGQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldEZvbGQoZWRpdG9yLCBcImZvbGRcIik7XG4gIH07XG5cbiAgcHJpdmF0ZSB1bmZvbGQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldEZvbGQoZWRpdG9yLCBcInVuZm9sZFwiKTtcbiAgfTtcbn1cbiIsIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7XG4gIGZvbGRFZmZlY3QsXG4gIGZvbGRhYmxlLFxuICBmb2xkZWRSYW5nZXMsXG4gIHVuZm9sZEVmZmVjdCxcbn0gZnJvbSBcIkBjb2RlbWlycm9yL2xhbmd1YWdlXCI7XG5pbXBvcnQgeyBFZGl0b3JWaWV3LCBydW5TY29wZUhhbmRsZXJzIH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcblxuZXhwb3J0IGNsYXNzIE15RWRpdG9yUG9zaXRpb24ge1xuICBsaW5lOiBudW1iZXI7XG4gIGNoOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBNeUVkaXRvclJhbmdlIHtcbiAgZnJvbTogTXlFZGl0b3JQb3NpdGlvbjtcbiAgdG86IE15RWRpdG9yUG9zaXRpb247XG59XG5cbmV4cG9ydCBjbGFzcyBNeUVkaXRvclNlbGVjdGlvbiB7XG4gIGFuY2hvcjogTXlFZGl0b3JQb3NpdGlvbjtcbiAgaGVhZDogTXlFZGl0b3JQb3NpdGlvbjtcbn1cblxuZnVuY3Rpb24gZm9sZEluc2lkZSh2aWV3OiBFZGl0b3JWaWV3LCBmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpIHtcbiAgbGV0IGZvdW5kOiB7IGZyb206IG51bWJlcjsgdG86IG51bWJlciB9IHwgbnVsbCA9IG51bGw7XG4gIGZvbGRlZFJhbmdlcyh2aWV3LnN0YXRlKS5iZXR3ZWVuKGZyb20sIHRvLCAoZnJvbSwgdG8pID0+IHtcbiAgICBpZiAoIWZvdW5kIHx8IGZvdW5kLmZyb20gPiBmcm9tKSBmb3VuZCA9IHsgZnJvbSwgdG8gfTtcbiAgfSk7XG4gIHJldHVybiBmb3VuZDtcbn1cblxuZXhwb3J0IGNsYXNzIE15RWRpdG9yIHtcbiAgcHJpdmF0ZSB2aWV3OiBFZGl0b3JWaWV3O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZTogRWRpdG9yKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB0aGlzLnZpZXcgPSAodGhpcy5lIGFzIGFueSkuY207XG4gIH1cblxuICBnZXRDdXJzb3IoKTogTXlFZGl0b3JQb3NpdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuZS5nZXRDdXJzb3IoKTtcbiAgfVxuXG4gIGdldExpbmUobjogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lLmdldExpbmUobik7XG4gIH1cblxuICBsYXN0TGluZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmUubGFzdExpbmUoKTtcbiAgfVxuXG4gIGxpc3RTZWxlY3Rpb25zKCk6IE15RWRpdG9yU2VsZWN0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLmUubGlzdFNlbGVjdGlvbnMoKTtcbiAgfVxuXG4gIGdldFJhbmdlKGZyb206IE15RWRpdG9yUG9zaXRpb24sIHRvOiBNeUVkaXRvclBvc2l0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lLmdldFJhbmdlKGZyb20sIHRvKTtcbiAgfVxuXG4gIHJlcGxhY2VSYW5nZShcbiAgICByZXBsYWNlbWVudDogc3RyaW5nLFxuICAgIGZyb206IE15RWRpdG9yUG9zaXRpb24sXG4gICAgdG86IE15RWRpdG9yUG9zaXRpb25cbiAgKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuZS5yZXBsYWNlUmFuZ2UocmVwbGFjZW1lbnQsIGZyb20sIHRvKTtcbiAgfVxuXG4gIHNldFNlbGVjdGlvbnMoc2VsZWN0aW9uczogTXlFZGl0b3JTZWxlY3Rpb25bXSk6IHZvaWQge1xuICAgIHRoaXMuZS5zZXRTZWxlY3Rpb25zKHNlbGVjdGlvbnMpO1xuICB9XG5cbiAgc2V0VmFsdWUodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5lLnNldFZhbHVlKHRleHQpO1xuICB9XG5cbiAgZ2V0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lLmdldFZhbHVlKCk7XG4gIH1cblxuICBvZmZzZXRUb1BvcyhvZmZzZXQ6IG51bWJlcik6IE15RWRpdG9yUG9zaXRpb24ge1xuICAgIHJldHVybiB0aGlzLmUub2Zmc2V0VG9Qb3Mob2Zmc2V0KTtcbiAgfVxuXG4gIHBvc1RvT2Zmc2V0KHBvczogTXlFZGl0b3JQb3NpdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZS5wb3NUb09mZnNldChwb3MpO1xuICB9XG5cbiAgZm9sZChuOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB7IHZpZXcgfSA9IHRoaXM7XG4gICAgY29uc3QgbCA9IHZpZXcubGluZUJsb2NrQXQodmlldy5zdGF0ZS5kb2MubGluZShuICsgMSkuZnJvbSk7XG4gICAgY29uc3QgcmFuZ2UgPSBmb2xkYWJsZSh2aWV3LnN0YXRlLCBsLmZyb20sIGwudG8pO1xuXG4gICAgaWYgKCFyYW5nZSB8fCByYW5nZS5mcm9tID09PSByYW5nZS50bykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZpZXcuZGlzcGF0Y2goeyBlZmZlY3RzOiBbZm9sZEVmZmVjdC5vZihyYW5nZSldIH0pO1xuICB9XG5cbiAgdW5mb2xkKG46IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHsgdmlldyB9ID0gdGhpcztcbiAgICBjb25zdCBsID0gdmlldy5saW5lQmxvY2tBdCh2aWV3LnN0YXRlLmRvYy5saW5lKG4gKyAxKS5mcm9tKTtcbiAgICBjb25zdCByYW5nZSA9IGZvbGRJbnNpZGUodmlldywgbC5mcm9tLCBsLnRvKTtcblxuICAgIGlmICghcmFuZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2aWV3LmRpc3BhdGNoKHsgZWZmZWN0czogW3VuZm9sZEVmZmVjdC5vZihyYW5nZSldIH0pO1xuICB9XG5cbiAgZ2V0QWxsRm9sZGVkTGluZXMoKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IGMgPSBmb2xkZWRSYW5nZXModGhpcy52aWV3LnN0YXRlKS5pdGVyKCk7XG4gICAgY29uc3QgcmVzOiBudW1iZXJbXSA9IFtdO1xuICAgIHdoaWxlIChjLnZhbHVlKSB7XG4gICAgICByZXMucHVzaCh0aGlzLm9mZnNldFRvUG9zKGMuZnJvbSkubGluZSk7XG4gICAgICBjLm5leHQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHRyaWdnZXJPbktleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHJ1blNjb3BlSGFuZGxlcnModGhpcy52aWV3LCBlLCBcImVkaXRvclwiKTtcbiAgfVxuXG4gIGdldFpvb21SYW5nZSgpOiBNeUVkaXRvclJhbmdlIHwgbnVsbCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBhcGkgPSAod2luZG93IGFzIGFueSkuT2JzaWRpYW5ab29tUGx1Z2luO1xuXG4gICAgaWYgKCFhcGkgfHwgIWFwaS5nZXRab29tUmFuZ2UpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBhcGkuZ2V0Wm9vbVJhbmdlKHRoaXMuZSk7XG4gIH1cblxuICB6b29tT3V0KCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgY29uc3QgYXBpID0gKHdpbmRvdyBhcyBhbnkpLk9ic2lkaWFuWm9vbVBsdWdpbjtcblxuICAgIGlmICghYXBpIHx8ICFhcGkuem9vbU91dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGFwaS56b29tT3V0KHRoaXMuZSk7XG4gIH1cblxuICB6b29tSW4obGluZTogbnVtYmVyKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBhcGkgPSAod2luZG93IGFzIGFueSkuT2JzaWRpYW5ab29tUGx1Z2luO1xuXG4gICAgaWYgKCFhcGkgfHwgIWFwaS56b29tSW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhcGkuem9vbUluKHRoaXMuZSwgbGluZSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yLCBlZGl0b3JWaWV3RmllbGQgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHtcbiAgRWRpdG9yVmlldyxcbiAgUGx1Z2luVmFsdWUsXG4gIFZpZXdQbHVnaW4sXG4gIFZpZXdVcGRhdGUsXG59IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi9GZWF0dXJlXCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBMaXN0IH0gZnJvbSBcIi4uL3Jvb3RcIjtcbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBhcnNlclNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvUGFyc2VyU2VydmljZVwiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1NldHRpbmdzU2VydmljZVwiO1xuXG5pbnRlcmZhY2UgTGluZURhdGEge1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xuICBoZWlnaHQ6IHN0cmluZztcbiAgbGlzdDogTGlzdDtcbn1cblxuY2xhc3MgTGlzdExpbmVzVmlld1BsdWdpblZhbHVlIGltcGxlbWVudHMgUGx1Z2luVmFsdWUge1xuICBwcml2YXRlIHNjaGVkdWxlZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgc2Nyb2xsZXI6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIGNvbnRlbnRDb250YWluZXI6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIGVkaXRvcjogTXlFZGl0b3I7XG4gIHByaXZhdGUgbGFzdExpbmU6IG51bWJlcjtcbiAgcHJpdmF0ZSBsaW5lczogTGluZURhdGFbXTtcbiAgcHJpdmF0ZSBsaW5lRWxlbWVudHM6IEhUTUxFbGVtZW50W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGFyc2VyOiBQYXJzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdmlldzogRWRpdG9yVmlld1xuICApIHtcbiAgICB0aGlzLnZpZXcuc2Nyb2xsRE9NLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgdGhpcy5vblNjcm9sbCk7XG4gICAgdGhpcy5zZXR0aW5ncy5vbkNoYW5nZShcImxpc3RMaW5lc1wiLCB0aGlzLnNjaGVkdWxlUmVjYWxjdWxhdGUpO1xuXG4gICAgdGhpcy5wcmVwYXJlRG9tKCk7XG4gICAgdGhpcy53YWl0Rm9yRWRpdG9yKCk7XG4gIH1cblxuICBwcml2YXRlIHdhaXRGb3JFZGl0b3IgPSAoKSA9PiB7XG4gICAgY29uc3Qgb2UgPSB0aGlzLnZpZXcuc3RhdGUuZmllbGQoZWRpdG9yVmlld0ZpZWxkKS5lZGl0b3I7XG4gICAgaWYgKCFvZSkge1xuICAgICAgc2V0VGltZW91dCh0aGlzLndhaXRGb3JFZGl0b3IsIDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmVkaXRvciA9IG5ldyBNeUVkaXRvcihvZSk7XG4gICAgdGhpcy5zY2hlZHVsZVJlY2FsY3VsYXRlKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBwcmVwYXJlRG9tKCkge1xuICAgIHRoaXMuY29udGVudENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgdGhpcy5jb250ZW50Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoXG4gICAgICBcIm91dGxpbmVyLXBsdWdpbi1saXN0LWxpbmVzLWNvbnRlbnQtY29udGFpbmVyXCJcbiAgICApO1xuXG4gICAgdGhpcy5zY3JvbGxlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgdGhpcy5zY3JvbGxlci5jbGFzc0xpc3QuYWRkKFwib3V0bGluZXItcGx1Z2luLWxpc3QtbGluZXMtc2Nyb2xsZXJcIik7XG5cbiAgICB0aGlzLnNjcm9sbGVyLmFwcGVuZENoaWxkKHRoaXMuY29udGVudENvbnRhaW5lcik7XG4gICAgdGhpcy52aWV3LmRvbS5hcHBlbmRDaGlsZCh0aGlzLnNjcm9sbGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgb25TY3JvbGwgPSAoZTogRXZlbnQpID0+IHtcbiAgICBjb25zdCB7IHNjcm9sbExlZnQsIHNjcm9sbFRvcCB9ID0gZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5zY3JvbGxlci5zY3JvbGxUbyhzY3JvbGxMZWZ0LCBzY3JvbGxUb3ApO1xuICB9O1xuXG4gIHByaXZhdGUgc2NoZWR1bGVSZWNhbGN1bGF0ZSA9ICgpID0+IHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5zY2hlZHVsZWQpO1xuICAgIHRoaXMuc2NoZWR1bGVkID0gc2V0VGltZW91dCh0aGlzLmNhbGN1bGF0ZSwgMCk7XG4gIH07XG5cbiAgdXBkYXRlKHVwZGF0ZTogVmlld1VwZGF0ZSkge1xuICAgIGlmIChcbiAgICAgIHVwZGF0ZS5kb2NDaGFuZ2VkIHx8XG4gICAgICB1cGRhdGUudmlld3BvcnRDaGFuZ2VkIHx8XG4gICAgICB1cGRhdGUuZ2VvbWV0cnlDaGFuZ2VkIHx8XG4gICAgICB1cGRhdGUudHJhbnNhY3Rpb25zLnNvbWUoKHRyKSA9PiB0ci5yZWNvbmZpZ3VyZWQpXG4gICAgKSB7XG4gICAgICB0aGlzLnNjaGVkdWxlUmVjYWxjdWxhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZSA9ICgpID0+IHtcbiAgICB0aGlzLmxpbmVzID0gW107XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLnNldHRpbmdzLmxpc3RMaW5lcyAmJlxuICAgICAgdGhpcy5vYnNpZGlhbi5pc0RlZmF1bHRUaGVtZUVuYWJsZWQoKSAmJlxuICAgICAgdGhpcy52aWV3LnZpZXdwb3J0TGluZUJsb2Nrcy5sZW5ndGggPiAwICYmXG4gICAgICB0aGlzLnZpZXcudmlzaWJsZVJhbmdlcy5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCBmcm9tTGluZSA9IHRoaXMuZWRpdG9yLm9mZnNldFRvUG9zKHRoaXMudmlldy52aWV3cG9ydC5mcm9tKS5saW5lO1xuICAgICAgY29uc3QgdG9MaW5lID0gdGhpcy5lZGl0b3Iub2Zmc2V0VG9Qb3ModGhpcy52aWV3LnZpZXdwb3J0LnRvKS5saW5lO1xuICAgICAgY29uc3QgbGlzdHMgPSB0aGlzLnBhcnNlci5wYXJzZVJhbmdlKHRoaXMuZWRpdG9yLCBmcm9tTGluZSwgdG9MaW5lKTtcblxuICAgICAgZm9yIChjb25zdCBsaXN0IG9mIGxpc3RzKSB7XG4gICAgICAgIHRoaXMubGFzdExpbmUgPSBsaXN0LmdldFJhbmdlKClbMV0ubGluZTtcblxuICAgICAgICBmb3IgKGNvbnN0IGMgb2YgbGlzdC5nZXRDaGlsZHJlbigpKSB7XG4gICAgICAgICAgdGhpcy5yZWN1cnNpdmUoYyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5saW5lcy5zb3J0KChhLCBiKSA9PlxuICAgICAgICBhLnRvcCA9PT0gYi50b3AgPyBhLmxlZnQgLSBiLmxlZnQgOiBhLnRvcCAtIGIudG9wXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlRG9tKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBnZXROZXh0U2libGluZyhsaXN0OiBMaXN0KTogTGlzdCB8IG51bGwge1xuICAgIGxldCBsaXN0VG1wID0gbGlzdDtcbiAgICBsZXQgcCA9IGxpc3RUbXAuZ2V0UGFyZW50KCk7XG4gICAgd2hpbGUgKHApIHtcbiAgICAgIGNvbnN0IG5leHRTaWJsaW5nID0gcC5nZXROZXh0U2libGluZ09mKGxpc3RUbXApO1xuICAgICAgaWYgKG5leHRTaWJsaW5nKSB7XG4gICAgICAgIHJldHVybiBuZXh0U2libGluZztcbiAgICAgIH1cbiAgICAgIGxpc3RUbXAgPSBwO1xuICAgICAgcCA9IGxpc3RUbXAuZ2V0UGFyZW50KCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSByZWN1cnNpdmUobGlzdDogTGlzdCkge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gbGlzdC5nZXRDaGlsZHJlbigpO1xuXG4gICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICAgIGlmICghY2hpbGQuaXNFbXB0eSgpKSB7XG4gICAgICAgIHRoaXMucmVjdXJzaXZlKGNoaWxkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmcm9tT2Zmc2V0ID0gdGhpcy5lZGl0b3IucG9zVG9PZmZzZXQoe1xuICAgICAgbGluZTogbGlzdC5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKS5saW5lLFxuICAgICAgY2g6IGxpc3QuZ2V0Rmlyc3RMaW5lSW5kZW50KCkubGVuZ3RoLFxuICAgIH0pO1xuICAgIGNvbnN0IG5leHRTaWJsaW5nID0gdGhpcy5nZXROZXh0U2libGluZyhsaXN0KTtcbiAgICBjb25zdCB0aWxsT2Zmc2V0ID0gdGhpcy5lZGl0b3IucG9zVG9PZmZzZXQoe1xuICAgICAgbGluZTogbmV4dFNpYmxpbmdcbiAgICAgICAgPyBuZXh0U2libGluZy5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKS5saW5lIC0gMVxuICAgICAgICA6IHRoaXMubGFzdExpbmUsXG4gICAgICBjaDogMCxcbiAgICB9KTtcblxuICAgIGxldCB2aXNpYmxlRnJvbSA9IHRoaXMudmlldy52aXNpYmxlUmFuZ2VzWzBdLmZyb207XG4gICAgbGV0IHZpc2libGVUbyA9XG4gICAgICB0aGlzLnZpZXcudmlzaWJsZVJhbmdlc1t0aGlzLnZpZXcudmlzaWJsZVJhbmdlcy5sZW5ndGggLSAxXS50bztcbiAgICBjb25zdCB6b29tUmFuZ2UgPSB0aGlzLmVkaXRvci5nZXRab29tUmFuZ2UoKTtcbiAgICBpZiAoem9vbVJhbmdlKSB7XG4gICAgICB2aXNpYmxlRnJvbSA9IE1hdGgubWF4KFxuICAgICAgICB2aXNpYmxlRnJvbSxcbiAgICAgICAgdGhpcy5lZGl0b3IucG9zVG9PZmZzZXQoem9vbVJhbmdlLmZyb20pXG4gICAgICApO1xuICAgICAgdmlzaWJsZVRvID0gTWF0aC5taW4odmlzaWJsZVRvLCB0aGlzLmVkaXRvci5wb3NUb09mZnNldCh6b29tUmFuZ2UudG8pKTtcbiAgICB9XG5cbiAgICBpZiAoZnJvbU9mZnNldCA+IHZpc2libGVUbyB8fCB0aWxsT2Zmc2V0IDwgdmlzaWJsZUZyb20pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0b3AgPVxuICAgICAgdmlzaWJsZUZyb20gPiAwICYmIGZyb21PZmZzZXQgPCB2aXNpYmxlRnJvbVxuICAgICAgICA/IC0yMFxuICAgICAgICA6IHRoaXMudmlldy5saW5lQmxvY2tBdChmcm9tT2Zmc2V0KS50b3A7XG4gICAgY29uc3QgYm90dG9tID1cbiAgICAgIHRpbGxPZmZzZXQgPiB2aXNpYmxlVG9cbiAgICAgICAgPyB0aGlzLnZpZXcubGluZUJsb2NrQXQodmlzaWJsZVRvIC0gMSkuYm90dG9tXG4gICAgICAgIDogdGhpcy52aWV3LmxpbmVCbG9ja0F0KHRpbGxPZmZzZXQpLmJvdHRvbTtcbiAgICBjb25zdCBoZWlnaHQgPSBib3R0b20gLSB0b3A7XG5cbiAgICBpZiAoaGVpZ2h0ID4gMCAmJiAhbGlzdC5pc0ZvbGRlZCgpKSB7XG4gICAgICBjb25zdCBuZXh0U2libGluZyA9IGxpc3QuZ2V0UGFyZW50KCkuZ2V0TmV4dFNpYmxpbmdPZihsaXN0KTtcbiAgICAgIGNvbnN0IGhhc05leHRTaWJsaW5nID1cbiAgICAgICAgISFuZXh0U2libGluZyAmJlxuICAgICAgICB0aGlzLmVkaXRvci5wb3NUb09mZnNldChuZXh0U2libGluZy5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKSkgPD1cbiAgICAgICAgICB2aXNpYmxlVG87XG5cbiAgICAgIHRoaXMubGluZXMucHVzaCh7XG4gICAgICAgIHRvcDogdG9wLFxuICAgICAgICBsZWZ0OiB0aGlzLmdldEluZGVudFNpemUobGlzdCksXG4gICAgICAgIGhlaWdodDogYGNhbGMoJHtoZWlnaHR9cHggJHtoYXNOZXh0U2libGluZyA/IFwiLSAxLjVlbVwiIDogXCItIDJlbVwifSlgLFxuICAgICAgICBsaXN0LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbmRlbnRTaXplKGxpc3Q6IExpc3QpIHtcbiAgICBjb25zdCB7IHRhYlNpemUgfSA9IHRoaXMub2JzaWRpYW4uZ2V0T2JzaWRpYW5UYWJzU2V0dGluZ3MoKTtcbiAgICBjb25zdCBpbmRlbnQgPSBsaXN0LmdldEZpcnN0TGluZUluZGVudCgpO1xuICAgIGNvbnN0IHNwYWNlU2l6ZSA9IDg7XG5cbiAgICBsZXQgc3BhY2VzID0gMDtcbiAgICBmb3IgKGNvbnN0IGNoYXIgb2YgaW5kZW50KSB7XG4gICAgICBpZiAoY2hhciA9PT0gXCJcXHRcIikge1xuICAgICAgICBzcGFjZXMgKz0gdGFiU2l6ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNwYWNlcyArPSAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzcGFjZXMgKiBzcGFjZVNpemU7XG4gIH1cblxuICBwcml2YXRlIG9uQ2xpY2sgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IGxpbmUgPSB0aGlzLmxpbmVzW051bWJlcigoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmRhdGFzZXQuaW5kZXgpXTtcblxuICAgIHN3aXRjaCAodGhpcy5zZXR0aW5ncy5saXN0TGluZUFjdGlvbikge1xuICAgICAgY2FzZSBcInpvb20taW5cIjpcbiAgICAgICAgdGhpcy56b29tSW4obGluZSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFwidG9nZ2xlLWZvbGRpbmdcIjpcbiAgICAgICAgdGhpcy50b2dnbGVGb2xkaW5nKGxpbmUpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSB6b29tSW4obGluZTogTGluZURhdGEpIHtcbiAgICBjb25zdCBlZGl0b3IgPSBuZXcgTXlFZGl0b3IodGhpcy52aWV3LnN0YXRlLmZpZWxkKGVkaXRvclZpZXdGaWVsZCkuZWRpdG9yKTtcblxuICAgIGVkaXRvci56b29tSW4obGluZS5saXN0LmdldEZpcnN0TGluZUNvbnRlbnRTdGFydCgpLmxpbmUpO1xuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVGb2xkaW5nKGxpbmU6IExpbmVEYXRhKSB7XG4gICAgY29uc3QgeyBsaXN0IH0gPSBsaW5lO1xuXG4gICAgaWYgKGxpc3QuaXNFbXB0eSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IG5lZWRUb1VuZm9sZCA9IHRydWU7XG4gICAgY29uc3QgbGluZXNUb1RvZ2dsZTogbnVtYmVyW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGMgb2YgbGlzdC5nZXRDaGlsZHJlbigpKSB7XG4gICAgICBpZiAoYy5pc0VtcHR5KCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoIWMuaXNGb2xkZWQoKSkge1xuICAgICAgICBuZWVkVG9VbmZvbGQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGxpbmVzVG9Ub2dnbGUucHVzaChjLmdldEZpcnN0TGluZUNvbnRlbnRTdGFydCgpLmxpbmUpO1xuICAgIH1cblxuICAgIGNvbnN0IGVkaXRvciA9IG5ldyBNeUVkaXRvcih0aGlzLnZpZXcuc3RhdGUuZmllbGQoZWRpdG9yVmlld0ZpZWxkKS5lZGl0b3IpO1xuXG4gICAgZm9yIChjb25zdCBsIG9mIGxpbmVzVG9Ub2dnbGUpIHtcbiAgICAgIGlmIChuZWVkVG9VbmZvbGQpIHtcbiAgICAgICAgZWRpdG9yLnVuZm9sZChsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVkaXRvci5mb2xkKGwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRG9tKCkge1xuICAgIGNvbnN0IGNtU2Nyb2xsID0gdGhpcy52aWV3LnNjcm9sbERPTTtcbiAgICBjb25zdCBjbUNvbnRlbnQgPSB0aGlzLnZpZXcuY29udGVudERPTTtcbiAgICBjb25zdCBjbUNvbnRlbnRDb250YWluZXIgPSBjbUNvbnRlbnQucGFyZW50RWxlbWVudDtcblxuICAgIHRoaXMuc2Nyb2xsZXIuc3R5bGUudG9wID0gY21TY3JvbGwub2Zmc2V0VG9wICsgXCJweFwiO1xuICAgIHRoaXMuY29udGVudENvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSBjbUNvbnRlbnQuY2xpZW50SGVpZ2h0ICsgXCJweFwiO1xuICAgIHRoaXMuY29udGVudENvbnRhaW5lci5zdHlsZS5tYXJnaW5MZWZ0ID1cbiAgICAgIGNtQ29udGVudENvbnRhaW5lci5vZmZzZXRMZWZ0ICsgXCJweFwiO1xuICAgIHRoaXMuY29udGVudENvbnRhaW5lci5zdHlsZS5tYXJnaW5Ub3AgPVxuICAgICAgKGNtQ29udGVudC5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MRWxlbWVudCkub2Zmc2V0VG9wIC0gMjQgKyBcInB4XCI7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmxpbmVFbGVtZW50cy5sZW5ndGggPT09IGkpIHtcbiAgICAgICAgY29uc3QgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgIGUuY2xhc3NMaXN0LmFkZChcIm91dGxpbmVyLXBsdWdpbi1saXN0LWxpbmVcIik7XG4gICAgICAgIGUuZGF0YXNldC5pbmRleCA9IFN0cmluZyhpKTtcbiAgICAgICAgZS5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMub25DbGljayk7XG4gICAgICAgIHRoaXMuY29udGVudENvbnRhaW5lci5hcHBlbmRDaGlsZChlKTtcbiAgICAgICAgdGhpcy5saW5lRWxlbWVudHMucHVzaChlKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbCA9IHRoaXMubGluZXNbaV07XG4gICAgICBjb25zdCBlID0gdGhpcy5saW5lRWxlbWVudHNbaV07XG4gICAgICBlLnN0eWxlLnRvcCA9IGwudG9wICsgXCJweFwiO1xuICAgICAgZS5zdHlsZS5sZWZ0ID0gbC5sZWZ0ICsgXCJweFwiO1xuICAgICAgZS5zdHlsZS5oZWlnaHQgPSBsLmhlaWdodDtcbiAgICAgIGUuc3R5bGUuZGlzcGxheSA9IFwiYmxvY2tcIjtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gdGhpcy5saW5lcy5sZW5ndGg7IGkgPCB0aGlzLmxpbmVFbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZSA9IHRoaXMubGluZUVsZW1lbnRzW2ldO1xuICAgICAgZS5zdHlsZS50b3AgPSBcIjBweFwiO1xuICAgICAgZS5zdHlsZS5sZWZ0ID0gXCIwcHhcIjtcbiAgICAgIGUuc3R5bGUuaGVpZ2h0ID0gXCIwcHhcIjtcbiAgICAgIGUuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5zZXR0aW5ncy5yZW1vdmVDYWxsYmFjayhcImxpc3RMaW5lc1wiLCB0aGlzLnNjaGVkdWxlUmVjYWxjdWxhdGUpO1xuICAgIHRoaXMudmlldy5zY3JvbGxET00ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB0aGlzLm9uU2Nyb2xsKTtcbiAgICB0aGlzLnZpZXcuZG9tLnJlbW92ZUNoaWxkKHRoaXMuc2Nyb2xsZXIpO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnNjaGVkdWxlZCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpbmVzRmVhdHVyZSBpbXBsZW1lbnRzIEZlYXR1cmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsdWdpbjogUGx1Z2luXzIsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgb2JzaWRpYW46IE9ic2lkaWFuU2VydmljZSxcbiAgICBwcml2YXRlIHBhcnNlcjogUGFyc2VyU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnBsdWdpbi5yZWdpc3RlckVkaXRvckV4dGVuc2lvbihcbiAgICAgIFZpZXdQbHVnaW4uZGVmaW5lKFxuICAgICAgICAodmlldykgPT5cbiAgICAgICAgICBuZXcgTGlzdExpbmVzVmlld1BsdWdpblZhbHVlKFxuICAgICAgICAgICAgdGhpcy5zZXR0aW5ncyxcbiAgICAgICAgICAgIHRoaXMub2JzaWRpYW4sXG4gICAgICAgICAgICB0aGlzLnBhcnNlcixcbiAgICAgICAgICAgIHZpZXdcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZCgpIHt9XG59XG4iLCJpbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4vRmVhdHVyZVwiO1xuXG5pbXBvcnQgeyBPYnNpZGlhblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmNvbnN0IEJFVFRFUl9MSVNUU19DTEFTUyA9IFwib3V0bGluZXItcGx1Z2luLWJldHRlci1saXN0c1wiO1xuY29uc3QgQkVUVEVSX0JVTExFVFNfQ0xBU1MgPSBcIm91dGxpbmVyLXBsdWdpbi1iZXR0ZXItYnVsbGV0c1wiO1xuY29uc3QgVkVSVElDQUxfTElORVMgPSBcIm91dGxpbmVyLXBsdWdpbi12ZXJ0aWNhbC1saW5lc1wiO1xuY29uc3QgS05PV05fQ0xBU1NFUyA9IFtcbiAgQkVUVEVSX0xJU1RTX0NMQVNTLFxuICBCRVRURVJfQlVMTEVUU19DTEFTUyxcbiAgVkVSVElDQUxfTElORVMsXG5dO1xuXG5leHBvcnQgY2xhc3MgTGlzdHNTdHlsZXNGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIHByaXZhdGUgaW50ZXJ2YWw6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBsb2FkKCkge1xuICAgIHRoaXMuc3luY0xpc3RzU3R5bGVzKCk7XG4gICAgdGhpcy5pbnRlcnZhbCA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICB0aGlzLnN5bmNMaXN0c1N0eWxlcygpO1xuICAgIH0sIDEwMDApO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XG4gICAgdGhpcy5hcHBseUxpc3RzU3R5bGVzKFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgc3luY0xpc3RzU3R5bGVzID0gKCkgPT4ge1xuICAgIGNvbnN0IGNsYXNzZXMgPSBbXTtcblxuICAgIGlmICh0aGlzLm9ic2lkaWFuLmlzRGVmYXVsdFRoZW1lRW5hYmxlZCgpKSB7XG4gICAgICBpZiAodGhpcy5zZXR0aW5ncy5zdHlsZUxpc3RzKSB7XG4gICAgICAgIGNsYXNzZXMucHVzaChCRVRURVJfTElTVFNfQ0xBU1MpO1xuICAgICAgICBjbGFzc2VzLnB1c2goQkVUVEVSX0JVTExFVFNfQ0xBU1MpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5zZXR0aW5ncy5saXN0TGluZXMpIHtcbiAgICAgICAgY2xhc3Nlcy5wdXNoKFZFUlRJQ0FMX0xJTkVTKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmFwcGx5TGlzdHNTdHlsZXMoY2xhc3Nlcyk7XG4gIH07XG5cbiAgcHJpdmF0ZSBhcHBseUxpc3RzU3R5bGVzKGNsYXNzZXM6IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgdG9LZWVwID0gY2xhc3Nlcy5maWx0ZXIoKGMpID0+IEtOT1dOX0NMQVNTRVMuY29udGFpbnMoYykpO1xuICAgIGNvbnN0IHRvUmVtb3ZlID0gS05PV05fQ0xBU1NFUy5maWx0ZXIoKGMpID0+ICF0b0tlZXAuY29udGFpbnMoYykpO1xuXG4gICAgZm9yIChjb25zdCBjIG9mIHRvS2VlcCkge1xuICAgICAgaWYgKCFkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucyhjKSkge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoYyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjIG9mIHRvUmVtb3ZlKSB7XG4gICAgICBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoYykpIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKGMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSBcIi4vT3BlcmF0aW9uXCI7XG5cbmltcG9ydCB7IExpc3RMaW5lLCBQb3NpdGlvbiwgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBNb3ZlQ3Vyc29yVG9QcmV2aW91c1VuZm9sZGVkTGluZU9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgc3RvcFByb3BhZ2F0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm9vdDogUm9vdCkge31cblxuICBzaG91bGRTdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcFByb3BhZ2F0aW9uO1xuICB9XG5cbiAgc2hvdWxkVXBkYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZWQ7XG4gIH1cblxuICBwZXJmb3JtKCkge1xuICAgIGNvbnN0IHsgcm9vdCB9ID0gdGhpcztcblxuICAgIGlmICghcm9vdC5oYXNTaW5nbGVDdXJzb3IoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3QgPSB0aGlzLnJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgY3Vyc29yID0gdGhpcy5yb290LmdldEN1cnNvcigpO1xuICAgIGNvbnN0IGxpbmVzID0gbGlzdC5nZXRMaW5lc0luZm8oKTtcbiAgICBjb25zdCBsaW5lTm8gPSBsaW5lcy5maW5kSW5kZXgoXG4gICAgICAobCkgPT4gY3Vyc29yLmNoID09PSBsLmZyb20uY2ggJiYgY3Vyc29yLmxpbmUgPT09IGwuZnJvbS5saW5lXG4gICAgKTtcblxuICAgIGlmIChsaW5lTm8gPT09IDApIHtcbiAgICAgIHRoaXMubW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZEl0ZW0ocm9vdCwgY3Vyc29yKTtcbiAgICB9IGVsc2UgaWYgKGxpbmVObyA+IDApIHtcbiAgICAgIHRoaXMubW92ZUN1cnNvclRvUHJldmlvdXNOb3RlTGluZShyb290LCBsaW5lcywgbGluZU5vKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1vdmVDdXJzb3JUb1ByZXZpb3VzTm90ZUxpbmUoXG4gICAgcm9vdDogUm9vdCxcbiAgICBsaW5lczogTGlzdExpbmVbXSxcbiAgICBsaW5lTm86IG51bWJlclxuICApIHtcbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcblxuICAgIHJvb3QucmVwbGFjZUN1cnNvcihsaW5lc1tsaW5lTm8gLSAxXS50byk7XG4gIH1cblxuICBwcml2YXRlIG1vdmVDdXJzb3JUb1ByZXZpb3VzVW5mb2xkZWRJdGVtKHJvb3Q6IFJvb3QsIGN1cnNvcjogUG9zaXRpb24pIHtcbiAgICBjb25zdCBwcmV2ID0gcm9vdC5nZXRMaXN0VW5kZXJMaW5lKGN1cnNvci5saW5lIC0gMSk7XG5cbiAgICBpZiAoIXByZXYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcblxuICAgIGlmIChwcmV2LmlzRm9sZGVkKCkpIHtcbiAgICAgIGNvbnN0IGZvbGRSb290ID0gcHJldi5nZXRUb3BGb2xkUm9vdCgpO1xuICAgICAgY29uc3QgZmlyc3RMaW5lRW5kID0gZm9sZFJvb3QuZ2V0TGluZXNJbmZvKClbMF0udG87XG4gICAgICByb290LnJlcGxhY2VDdXJzb3IoZmlyc3RMaW5lRW5kKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm9vdC5yZXBsYWNlQ3Vyc29yKHByZXYuZ2V0TGFzdExpbmVDb250ZW50RW5kKCkpO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgUGx1Z2luXzIgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsga2V5bWFwIH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcblxuaW1wb3J0IHsgTXlFZGl0b3IgfSBmcm9tIFwiLi4vTXlFZGl0b3JcIjtcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi4vZmVhdHVyZXMvRmVhdHVyZVwiO1xuaW1wb3J0IHsgTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVPcGVyYXRpb24gfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9Nb3ZlQ3Vyc29yVG9QcmV2aW91c1VuZm9sZGVkTGluZU9wZXJhdGlvblwiO1xuaW1wb3J0IHsgSU1FU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9JTUVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBPYnNpZGlhblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlXCI7XG5pbXBvcnQgeyBQZXJmb3JtT3BlcmF0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9QZXJmb3JtT3BlcmF0aW9uU2VydmljZVwiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1NldHRpbmdzU2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMixcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWU6IElNRVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbjogUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oXG4gICAgICBrZXltYXAub2YoW1xuICAgICAgICB7XG4gICAgICAgICAga2V5OiBcIkFycm93TGVmdFwiLFxuICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICBjaGVjazogdGhpcy5jaGVjayxcbiAgICAgICAgICAgIHJ1bjogdGhpcy5ydW4sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB3aW46IFwiYy1BcnJvd0xlZnRcIixcbiAgICAgICAgICBsaW51eDogXCJjLUFycm93TGVmdFwiLFxuICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICBjaGVjazogdGhpcy5jaGVjayxcbiAgICAgICAgICAgIHJ1bjogdGhpcy5ydW4sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7fVxuXG4gIHByaXZhdGUgY2hlY2sgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Muc3RpY2tDdXJzb3IgJiYgIXRoaXMuaW1lLmlzSU1FT3BlbmVkKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBydW4gPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVPcGVyYXRpb24ocm9vdCksXG4gICAgICBlZGl0b3JcbiAgICApO1xuICB9O1xufVxuIiwiaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSBcIi4vT3BlcmF0aW9uXCI7XG5cbmltcG9ydCB7IFJvb3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuaW1wb3J0IHsgcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0cyB9IGZyb20gXCIuLi9yb290L3JlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHNcIjtcblxuZXhwb3J0IGNsYXNzIE1vdmVEb3duT3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBzdG9wUHJvcGFnYXRpb24gPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cGRhdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuXG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgcGFyZW50ID0gbGlzdC5nZXRQYXJlbnQoKTtcbiAgICBjb25zdCBncmFuZFBhcmVudCA9IHBhcmVudC5nZXRQYXJlbnQoKTtcbiAgICBjb25zdCBuZXh0ID0gcGFyZW50LmdldE5leHRTaWJsaW5nT2YobGlzdCk7XG5cbiAgICBjb25zdCBsaXN0U3RhcnRMaW5lQmVmb3JlID0gcm9vdC5nZXRDb250ZW50TGluZXNSYW5nZU9mKGxpc3QpWzBdO1xuXG4gICAgaWYgKCFuZXh0ICYmIGdyYW5kUGFyZW50KSB7XG4gICAgICBjb25zdCBuZXdQYXJlbnQgPSBncmFuZFBhcmVudC5nZXROZXh0U2libGluZ09mKHBhcmVudCk7XG5cbiAgICAgIGlmIChuZXdQYXJlbnQpIHtcbiAgICAgICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcbiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKGxpc3QpO1xuICAgICAgICBuZXdQYXJlbnQuYWRkQmVmb3JlQWxsKGxpc3QpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobmV4dCkge1xuICAgICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcbiAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChsaXN0KTtcbiAgICAgIHBhcmVudC5hZGRBZnRlcihuZXh0LCBsaXN0KTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMudXBkYXRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3RTdGFydExpbmVBZnRlciA9IHJvb3QuZ2V0Q29udGVudExpbmVzUmFuZ2VPZihsaXN0KVswXTtcbiAgICBjb25zdCBsaW5lRGlmZiA9IGxpc3RTdGFydExpbmVBZnRlciAtIGxpc3RTdGFydExpbmVCZWZvcmU7XG5cbiAgICBjb25zdCBjdXJzb3IgPSByb290LmdldEN1cnNvcigpO1xuICAgIHJvb3QucmVwbGFjZUN1cnNvcih7XG4gICAgICBsaW5lOiBjdXJzb3IubGluZSArIGxpbmVEaWZmLFxuICAgICAgY2g6IGN1cnNvci5jaCxcbiAgICB9KTtcblxuICAgIHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMocm9vdCk7XG4gIH1cbn1cbiIsImltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcbmltcG9ydCB7IHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMgfSBmcm9tIFwiLi4vcm9vdC9yZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzXCI7XG5cbmV4cG9ydCBjbGFzcyBNb3ZlUmlnaHRPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QsIHByaXZhdGUgZGVmYXVsdEluZGVudENoYXJzOiBzdHJpbmcpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlQ3Vyc29yKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG5cbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBwYXJlbnQgPSBsaXN0LmdldFBhcmVudCgpO1xuICAgIGNvbnN0IHByZXYgPSBwYXJlbnQuZ2V0UHJldlNpYmxpbmdPZihsaXN0KTtcblxuICAgIGlmICghcHJldikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG5cbiAgICBjb25zdCBsaXN0U3RhcnRMaW5lQmVmb3JlID0gcm9vdC5nZXRDb250ZW50TGluZXNSYW5nZU9mKGxpc3QpWzBdO1xuXG4gICAgY29uc3QgaW5kZW50UG9zID0gbGlzdC5nZXRGaXJzdExpbmVJbmRlbnQoKS5sZW5ndGg7XG4gICAgbGV0IGluZGVudENoYXJzID0gXCJcIjtcblxuICAgIGlmIChpbmRlbnRDaGFycyA9PT0gXCJcIiAmJiAhcHJldi5pc0VtcHR5KCkpIHtcbiAgICAgIGluZGVudENoYXJzID0gcHJldlxuICAgICAgICAuZ2V0Q2hpbGRyZW4oKVswXVxuICAgICAgICAuZ2V0Rmlyc3RMaW5lSW5kZW50KClcbiAgICAgICAgLnNsaWNlKHByZXYuZ2V0Rmlyc3RMaW5lSW5kZW50KCkubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBpZiAoaW5kZW50Q2hhcnMgPT09IFwiXCIpIHtcbiAgICAgIGluZGVudENoYXJzID0gbGlzdFxuICAgICAgICAuZ2V0Rmlyc3RMaW5lSW5kZW50KClcbiAgICAgICAgLnNsaWNlKHBhcmVudC5nZXRGaXJzdExpbmVJbmRlbnQoKS5sZW5ndGgpO1xuICAgIH1cblxuICAgIGlmIChpbmRlbnRDaGFycyA9PT0gXCJcIiAmJiAhbGlzdC5pc0VtcHR5KCkpIHtcbiAgICAgIGluZGVudENoYXJzID0gbGlzdC5nZXRDaGlsZHJlbigpWzBdLmdldEZpcnN0TGluZUluZGVudCgpO1xuICAgIH1cblxuICAgIGlmIChpbmRlbnRDaGFycyA9PT0gXCJcIikge1xuICAgICAgaW5kZW50Q2hhcnMgPSB0aGlzLmRlZmF1bHRJbmRlbnRDaGFycztcbiAgICB9XG5cbiAgICBwYXJlbnQucmVtb3ZlQ2hpbGQobGlzdCk7XG4gICAgcHJldi5hZGRBZnRlckFsbChsaXN0KTtcbiAgICBsaXN0LmluZGVudENvbnRlbnQoaW5kZW50UG9zLCBpbmRlbnRDaGFycyk7XG5cbiAgICBjb25zdCBsaXN0U3RhcnRMaW5lQWZ0ZXIgPSByb290LmdldENvbnRlbnRMaW5lc1JhbmdlT2YobGlzdClbMF07XG4gICAgY29uc3QgbGluZURpZmYgPSBsaXN0U3RhcnRMaW5lQWZ0ZXIgLSBsaXN0U3RhcnRMaW5lQmVmb3JlO1xuXG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcbiAgICByb290LnJlcGxhY2VDdXJzb3Ioe1xuICAgICAgbGluZTogY3Vyc29yLmxpbmUgKyBsaW5lRGlmZixcbiAgICAgIGNoOiBjdXJzb3IuY2ggKyBpbmRlbnRDaGFycy5sZW5ndGgsXG4gICAgfSk7XG5cbiAgICByZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzKHJvb3QpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5pbXBvcnQgeyByZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzIH0gZnJvbSBcIi4uL3Jvb3QvcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0c1wiO1xuXG5leHBvcnQgY2xhc3MgTW92ZVVwT3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBzdG9wUHJvcGFnYXRpb24gPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cGRhdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuXG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgcGFyZW50ID0gbGlzdC5nZXRQYXJlbnQoKTtcbiAgICBjb25zdCBncmFuZFBhcmVudCA9IHBhcmVudC5nZXRQYXJlbnQoKTtcbiAgICBjb25zdCBwcmV2ID0gcGFyZW50LmdldFByZXZTaWJsaW5nT2YobGlzdCk7XG5cbiAgICBjb25zdCBsaXN0U3RhcnRMaW5lQmVmb3JlID0gcm9vdC5nZXRDb250ZW50TGluZXNSYW5nZU9mKGxpc3QpWzBdO1xuXG4gICAgaWYgKCFwcmV2ICYmIGdyYW5kUGFyZW50KSB7XG4gICAgICBjb25zdCBuZXdQYXJlbnQgPSBncmFuZFBhcmVudC5nZXRQcmV2U2libGluZ09mKHBhcmVudCk7XG5cbiAgICAgIGlmIChuZXdQYXJlbnQpIHtcbiAgICAgICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcbiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKGxpc3QpO1xuICAgICAgICBuZXdQYXJlbnQuYWRkQWZ0ZXJBbGwobGlzdCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcmV2KSB7XG4gICAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKGxpc3QpO1xuICAgICAgcGFyZW50LmFkZEJlZm9yZShwcmV2LCBsaXN0KTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMudXBkYXRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3RTdGFydExpbmVBZnRlciA9IHJvb3QuZ2V0Q29udGVudExpbmVzUmFuZ2VPZihsaXN0KVswXTtcbiAgICBjb25zdCBsaW5lRGlmZiA9IGxpc3RTdGFydExpbmVBZnRlciAtIGxpc3RTdGFydExpbmVCZWZvcmU7XG5cbiAgICBjb25zdCBjdXJzb3IgPSByb290LmdldEN1cnNvcigpO1xuICAgIHJvb3QucmVwbGFjZUN1cnNvcih7XG4gICAgICBsaW5lOiBjdXJzb3IubGluZSArIGxpbmVEaWZmLFxuICAgICAgY2g6IGN1cnNvci5jaCxcbiAgICB9KTtcblxuICAgIHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMocm9vdCk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IFByZWMgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivc3RhdGVcIjtcbmltcG9ydCB7IGtleW1hcCB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4uL2ZlYXR1cmVzL0ZlYXR1cmVcIjtcbmltcG9ydCB7IE1vdmVEb3duT3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvTW92ZURvd25PcGVyYXRpb25cIjtcbmltcG9ydCB7IE1vdmVMZWZ0T3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvTW92ZUxlZnRPcGVyYXRpb25cIjtcbmltcG9ydCB7IE1vdmVSaWdodE9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL01vdmVSaWdodE9wZXJhdGlvblwiO1xuaW1wb3J0IHsgTW92ZVVwT3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvTW92ZVVwT3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBJTUVTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL0lNRVNlcnZpY2VcIjtcbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1BlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBNb3ZlSXRlbXNGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMixcbiAgICBwcml2YXRlIGltZTogSU1FU2VydmljZSxcbiAgICBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbjogUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4uYWRkQ29tbWFuZCh7XG4gICAgICBpZDogXCJtb3ZlLWxpc3QtaXRlbS11cFwiLFxuICAgICAgaWNvbjogXCJhcnJvdy11cFwiLFxuICAgICAgbmFtZTogXCJNb3ZlIGxpc3QgYW5kIHN1Ymxpc3RzIHVwXCIsXG4gICAgICBlZGl0b3JDYWxsYmFjazogdGhpcy5vYnNpZGlhbi5jcmVhdGVFZGl0b3JDYWxsYmFjayhcbiAgICAgICAgdGhpcy5tb3ZlTGlzdEVsZW1lbnRVcENvbW1hbmRcbiAgICAgICksXG4gICAgICBob3RrZXlzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb2RpZmllcnM6IFtcIk1vZFwiLCBcIlNoaWZ0XCJdLFxuICAgICAgICAgIGtleTogXCJBcnJvd1VwXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wbHVnaW4uYWRkQ29tbWFuZCh7XG4gICAgICBpZDogXCJtb3ZlLWxpc3QtaXRlbS1kb3duXCIsXG4gICAgICBpY29uOiBcImFycm93LWRvd25cIixcbiAgICAgIG5hbWU6IFwiTW92ZSBsaXN0IGFuZCBzdWJsaXN0cyBkb3duXCIsXG4gICAgICBlZGl0b3JDYWxsYmFjazogdGhpcy5vYnNpZGlhbi5jcmVhdGVFZGl0b3JDYWxsYmFjayhcbiAgICAgICAgdGhpcy5tb3ZlTGlzdEVsZW1lbnREb3duQ29tbWFuZFxuICAgICAgKSxcbiAgICAgIGhvdGtleXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vZGlmaWVyczogW1wiTW9kXCIsIFwiU2hpZnRcIl0sXG4gICAgICAgICAga2V5OiBcIkFycm93RG93blwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMucGx1Z2luLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6IFwiaW5kZW50LWxpc3RcIixcbiAgICAgIGljb246IFwiaW5kZW50XCIsXG4gICAgICBuYW1lOiBcIkluZGVudCB0aGUgbGlzdCBhbmQgc3VibGlzdHNcIixcbiAgICAgIGVkaXRvckNhbGxiYWNrOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUVkaXRvckNhbGxiYWNrKFxuICAgICAgICB0aGlzLm1vdmVMaXN0RWxlbWVudFJpZ2h0Q29tbWFuZFxuICAgICAgKSxcbiAgICAgIGhvdGtleXM6IFtdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wbHVnaW4uYWRkQ29tbWFuZCh7XG4gICAgICBpZDogXCJvdXRkZW50LWxpc3RcIixcbiAgICAgIGljb246IFwib3V0ZGVudFwiLFxuICAgICAgbmFtZTogXCJPdXRkZW50IHRoZSBsaXN0IGFuZCBzdWJsaXN0c1wiLFxuICAgICAgZWRpdG9yQ2FsbGJhY2s6IHRoaXMub2JzaWRpYW4uY3JlYXRlRWRpdG9yQ2FsbGJhY2soXG4gICAgICAgIHRoaXMubW92ZUxpc3RFbGVtZW50TGVmdENvbW1hbmRcbiAgICAgICksXG4gICAgICBob3RrZXlzOiBbXSxcbiAgICB9KTtcblxuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKFxuICAgICAgUHJlYy5oaWdoZXN0KFxuICAgICAgICBrZXltYXAub2YoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJUYWJcIixcbiAgICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgICBydW46IHRoaXMubW92ZUxpc3RFbGVtZW50UmlnaHQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJzLVRhYlwiLFxuICAgICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgICAgY2hlY2s6IHRoaXMuY2hlY2ssXG4gICAgICAgICAgICAgIHJ1bjogdGhpcy5tb3ZlTGlzdEVsZW1lbnRMZWZ0LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge31cblxuICBwcml2YXRlIGNoZWNrID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmJldHRlclRhYiAmJiAhdGhpcy5pbWUuaXNJTUVPcGVuZWQoKTtcbiAgfTtcblxuICBwcml2YXRlIG1vdmVMaXN0RWxlbWVudERvd25Db21tYW5kID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICBjb25zdCB7IHNob3VsZFN0b3BQcm9wYWdhdGlvbiB9ID0gdGhpcy5wZXJmb3JtT3BlcmF0aW9uLnBlcmZvcm1PcGVyYXRpb24oXG4gICAgICAocm9vdCkgPT4gbmV3IE1vdmVEb3duT3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcblxuICAgIHJldHVybiBzaG91bGRTdG9wUHJvcGFnYXRpb247XG4gIH07XG5cbiAgcHJpdmF0ZSBtb3ZlTGlzdEVsZW1lbnRVcENvbW1hbmQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIGNvbnN0IHsgc2hvdWxkU3RvcFByb3BhZ2F0aW9uIH0gPSB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgTW92ZVVwT3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcblxuICAgIHJldHVybiBzaG91bGRTdG9wUHJvcGFnYXRpb247XG4gIH07XG5cbiAgcHJpdmF0ZSBtb3ZlTGlzdEVsZW1lbnRSaWdodENvbW1hbmQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIGlmICh0aGlzLmltZS5pc0lNRU9wZW5lZCgpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5tb3ZlTGlzdEVsZW1lbnRSaWdodChlZGl0b3IpLnNob3VsZFN0b3BQcm9wYWdhdGlvbjtcbiAgfTtcblxuICBwcml2YXRlIG1vdmVMaXN0RWxlbWVudFJpZ2h0ID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wZXJmb3JtT3BlcmF0aW9uLnBlcmZvcm1PcGVyYXRpb24oXG4gICAgICAocm9vdCkgPT5cbiAgICAgICAgbmV3IE1vdmVSaWdodE9wZXJhdGlvbihyb290LCB0aGlzLm9ic2lkaWFuLmdldERlZmF1bHRJbmRlbnRDaGFycygpKSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG5cbiAgcHJpdmF0ZSBtb3ZlTGlzdEVsZW1lbnRMZWZ0Q29tbWFuZCA9IChlZGl0b3I6IE15RWRpdG9yKSA9PiB7XG4gICAgaWYgKHRoaXMuaW1lLmlzSU1FT3BlbmVkKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm1vdmVMaXN0RWxlbWVudExlZnQoZWRpdG9yKS5zaG91bGRTdG9wUHJvcGFnYXRpb247XG4gIH07XG5cbiAgcHJpdmF0ZSBtb3ZlTGlzdEVsZW1lbnRMZWZ0ID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wZXJmb3JtT3BlcmF0aW9uLnBlcmZvcm1PcGVyYXRpb24oXG4gICAgICAocm9vdCkgPT4gbmV3IE1vdmVMZWZ0T3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcbiAgfTtcbn1cbiIsImltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBSb290LCBtYXhQb3MsIG1pblBvcyB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RBbGxPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlU2VsZWN0aW9uKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3Rpb24gPSByb290LmdldFNlbGVjdGlvbnMoKVswXTtcbiAgICBjb25zdCBbcm9vdFN0YXJ0LCByb290RW5kXSA9IHJvb3QuZ2V0UmFuZ2UoKTtcblxuICAgIGNvbnN0IHNlbGVjdGlvbkZyb20gPSBtaW5Qb3Moc2VsZWN0aW9uLmFuY2hvciwgc2VsZWN0aW9uLmhlYWQpO1xuICAgIGNvbnN0IHNlbGVjdGlvblRvID0gbWF4UG9zKHNlbGVjdGlvbi5hbmNob3IsIHNlbGVjdGlvbi5oZWFkKTtcblxuICAgIGlmIChcbiAgICAgIHNlbGVjdGlvbkZyb20ubGluZSA8IHJvb3RTdGFydC5saW5lIHx8XG4gICAgICBzZWxlY3Rpb25Uby5saW5lID4gcm9vdEVuZC5saW5lXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgc2VsZWN0aW9uRnJvbS5saW5lID09PSByb290U3RhcnQubGluZSAmJlxuICAgICAgc2VsZWN0aW9uRnJvbS5jaCA9PT0gcm9vdFN0YXJ0LmNoICYmXG4gICAgICBzZWxlY3Rpb25Uby5saW5lID09PSByb290RW5kLmxpbmUgJiZcbiAgICAgIHNlbGVjdGlvblRvLmNoID09PSByb290RW5kLmNoXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgY29udGVudFN0YXJ0ID0gbGlzdC5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKTtcbiAgICBjb25zdCBjb250ZW50RW5kID0gbGlzdC5nZXRMYXN0TGluZUNvbnRlbnRFbmQoKTtcblxuICAgIGlmIChcbiAgICAgIHNlbGVjdGlvbkZyb20ubGluZSA8IGNvbnRlbnRTdGFydC5saW5lIHx8XG4gICAgICBzZWxlY3Rpb25Uby5saW5lID4gY29udGVudEVuZC5saW5lXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG5cbiAgICBpZiAoXG4gICAgICBzZWxlY3Rpb25Gcm9tLmxpbmUgPT09IGNvbnRlbnRTdGFydC5saW5lICYmXG4gICAgICBzZWxlY3Rpb25Gcm9tLmNoID09PSBjb250ZW50U3RhcnQuY2ggJiZcbiAgICAgIHNlbGVjdGlvblRvLmxpbmUgPT09IGNvbnRlbnRFbmQubGluZSAmJlxuICAgICAgc2VsZWN0aW9uVG8uY2ggPT09IGNvbnRlbnRFbmQuY2hcbiAgICApIHtcbiAgICAgIC8vIHNlbGVjdCBhbGwgbGlzdFxuICAgICAgcm9vdC5yZXBsYWNlU2VsZWN0aW9ucyhbeyBhbmNob3I6IHJvb3RTdGFydCwgaGVhZDogcm9vdEVuZCB9XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHNlbGVjdCBhbGwgbGluZVxuICAgICAgcm9vdC5yZXBsYWNlU2VsZWN0aW9ucyhbeyBhbmNob3I6IGNvbnRlbnRTdGFydCwgaGVhZDogY29udGVudEVuZCB9XSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IGtleW1hcCB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4uL2ZlYXR1cmVzL0ZlYXR1cmVcIjtcbmltcG9ydCB7IFNlbGVjdEFsbE9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL1NlbGVjdEFsbE9wZXJhdGlvblwiO1xuaW1wb3J0IHsgSU1FU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9JTUVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBPYnNpZGlhblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlXCI7XG5pbXBvcnQgeyBQZXJmb3JtT3BlcmF0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9QZXJmb3JtT3BlcmF0aW9uU2VydmljZVwiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1NldHRpbmdzU2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgU2VsZWN0QWxsRmVhdHVyZSBpbXBsZW1lbnRzIEZlYXR1cmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsdWdpbjogUGx1Z2luXzIsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1lOiBJTUVTZXJ2aWNlLFxuICAgIHByaXZhdGUgb2JzaWRpYW46IE9ic2lkaWFuU2VydmljZSxcbiAgICBwcml2YXRlIHBlcmZvcm1PcGVyYXRpb246IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBsb2FkKCkge1xuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKFxuICAgICAga2V5bWFwLm9mKFtcbiAgICAgICAge1xuICAgICAgICAgIGtleTogXCJjLWFcIixcbiAgICAgICAgICBtYWM6IFwibS1hXCIsXG4gICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgcnVuOiB0aGlzLnJ1bixcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZCgpIHt9XG5cbiAgcHJpdmF0ZSBjaGVjayA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5zZWxlY3RBbGwgJiYgIXRoaXMuaW1lLmlzSU1FT3BlbmVkKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBydW4gPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgU2VsZWN0QWxsT3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcbiAgfTtcbn1cbiIsImltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcblxuZXhwb3J0IGNsYXNzIFNlbGVjdFRpbGxMaW5lU3RhcnRPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlQ3Vyc29yKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcblxuICAgIGNvbnN0IGN1cnNvciA9IHJvb3QuZ2V0Q3Vyc29yKCk7XG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgbGluZXMgPSBsaXN0LmdldExpbmVzSW5mbygpO1xuICAgIGNvbnN0IGxpbmVObyA9IGxpbmVzLmZpbmRJbmRleCgobCkgPT4gbC5mcm9tLmxpbmUgPT09IGN1cnNvci5saW5lKTtcblxuICAgIHJvb3QucmVwbGFjZVNlbGVjdGlvbnMoW3sgaGVhZDogbGluZXNbbGluZU5vXS5mcm9tLCBhbmNob3I6IGN1cnNvciB9XSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IGtleW1hcCB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi9GZWF0dXJlXCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBTZWxlY3RUaWxsTGluZVN0YXJ0T3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvU2VsZWN0VGlsbExpbmVTdGFydE9wZXJhdGlvblwiO1xuaW1wb3J0IHsgSU1FU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9JTUVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBPYnNpZGlhblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlXCI7XG5pbXBvcnQgeyBQZXJmb3JtT3BlcmF0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9QZXJmb3JtT3BlcmF0aW9uU2VydmljZVwiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1NldHRpbmdzU2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uU2hvdWxkSWdub3JlQnVsbGV0c0ZlYXR1cmUgaW1wbGVtZW50cyBGZWF0dXJlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbHVnaW46IFBsdWdpbl8yLFxuICAgIHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIGltZTogSU1FU2VydmljZSxcbiAgICBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJmb3JtT3BlcmF0aW9uOiBQZXJmb3JtT3BlcmF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnBsdWdpbi5yZWdpc3RlckVkaXRvckV4dGVuc2lvbihcbiAgICAgIGtleW1hcC5vZihbXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IFwibS1zLUFycm93TGVmdFwiLFxuICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICBjaGVjazogdGhpcy5jaGVjayxcbiAgICAgICAgICAgIHJ1bjogdGhpcy5ydW4sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7fVxuXG4gIHByaXZhdGUgY2hlY2sgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Muc3RpY2tDdXJzb3IgJiYgIXRoaXMuaW1lLmlzSU1FT3BlbmVkKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBydW4gPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgU2VsZWN0VGlsbExpbmVTdGFydE9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG59XG4iLCJpbXBvcnQgeyBBcHAsIFBsdWdpblNldHRpbmdUYWIsIFBsdWdpbl8yLCBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi9GZWF0dXJlXCI7XG5cbmltcG9ydCB7IExpc3RMaW5lQWN0aW9uLCBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmNsYXNzIE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5nVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XG4gIGNvbnN0cnVjdG9yKGFwcDogQXBwLCBwbHVnaW46IFBsdWdpbl8yLCBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UpIHtcbiAgICBzdXBlcihhcHAsIHBsdWdpbik7XG4gIH1cblxuICBkaXNwbGF5KCk6IHZvaWQge1xuICAgIGNvbnN0IHsgY29udGFpbmVyRWwgfSA9IHRoaXM7XG5cbiAgICBjb250YWluZXJFbC5lbXB0eSgpO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZShcIkltcHJvdmUgdGhlIHN0eWxlIG9mIHlvdXIgbGlzdHNcIilcbiAgICAgIC5zZXREZXNjKFxuICAgICAgICBcIlN0eWxlcyBhcmUgb25seSBjb21wYXRpYmxlIHdpdGggYnVpbHQtaW4gT2JzaWRpYW4gdGhlbWVzIGFuZCBtYXkgbm90IGJlIGNvbXBhdGlibGUgd2l0aCBvdGhlciB0aGVtZXMuXCJcbiAgICAgIClcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5zdHlsZUxpc3RzKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLnN0eWxlTGlzdHMgPSB2YWx1ZTtcbiAgICAgICAgICBhd2FpdCB0aGlzLnNldHRpbmdzLnNhdmUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoXCJEcmF3IHZlcnRpY2FsIGluZGVudGF0aW9uIGxpbmVzXCIpXG4gICAgICAuc2V0RGVzYyhcIkxpbmVzIG9ubHkgd29yayB3ZWxsIHdpdGggdGFiIHNpemUgNC5cIilcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5saXN0TGluZXMpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0dGluZ3MubGlzdExpbmVzID0gdmFsdWU7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zZXR0aW5ncy5zYXZlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKFwiVmVydGljYWwgaW5kZW50YXRpb24gbGluZSBjbGljayBhY3Rpb25cIilcbiAgICAgIC5hZGREcm9wZG93bigoZHJvcGRvd24pID0+IHtcbiAgICAgICAgZHJvcGRvd25cbiAgICAgICAgICAuYWRkT3B0aW9ucyh7XG4gICAgICAgICAgICBub25lOiBcIk5vbmVcIixcbiAgICAgICAgICAgIFwiem9vbS1pblwiOiBcIlpvb20gSW5cIixcbiAgICAgICAgICAgIFwidG9nZ2xlLWZvbGRpbmdcIjogXCJUb2dnbGUgRm9sZGluZ1wiLFxuICAgICAgICAgIH0gYXMgeyBba2V5IGluIExpc3RMaW5lQWN0aW9uXTogc3RyaW5nIH0pXG4gICAgICAgICAgLnNldFZhbHVlKHRoaXMuc2V0dGluZ3MubGlzdExpbmVBY3Rpb24pXG4gICAgICAgICAgLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5saXN0TGluZUFjdGlvbiA9IHZhbHVlIGFzIExpc3RMaW5lQWN0aW9uO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXR0aW5ncy5zYXZlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoXCJTdGljayB0aGUgY3Vyc29yIHRvIHRoZSBjb250ZW50XCIpXG4gICAgICAuc2V0RGVzYyhcIkRvbid0IGxldCB0aGUgY3Vyc29yIG1vdmUgdG8gdGhlIGJ1bGxldCBwb3NpdGlvbi5cIilcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5zdGlja0N1cnNvcikub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR0aW5ncy5zdGlja0N1cnNvciA9IHZhbHVlO1xuICAgICAgICAgIGF3YWl0IHRoaXMuc2V0dGluZ3Muc2F2ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZShcIkVuaGFuY2UgdGhlIEVudGVyIGtleVwiKVxuICAgICAgLnNldERlc2MoXCJNYWtlIHRoZSBFbnRlciBrZXkgYmVoYXZlIHRoZSBzYW1lIGFzIG90aGVyIG91dGxpbmVycy5cIilcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5iZXR0ZXJFbnRlcikub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR0aW5ncy5iZXR0ZXJFbnRlciA9IHZhbHVlO1xuICAgICAgICAgIGF3YWl0IHRoaXMuc2V0dGluZ3Muc2F2ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZShcIkVuaGFuY2UgdGhlIFRhYiBrZXlcIilcbiAgICAgIC5zZXREZXNjKFwiTWFrZSBUYWIgYW5kIFNoaWZ0LVRhYiBiZWhhdmUgdGhlIHNhbWUgYXMgb3RoZXIgb3V0bGluZXJzLlwiKVxuICAgICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB7XG4gICAgICAgIHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnNldHRpbmdzLmJldHRlclRhYikub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR0aW5ncy5iZXR0ZXJUYWIgPSB2YWx1ZTtcbiAgICAgICAgICBhd2FpdCB0aGlzLnNldHRpbmdzLnNhdmUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoXCJFbmhhbmNlIHRoZSBDdHJsK0Egb3IgQ21kK0EgYmVoYXZpb3JcIilcbiAgICAgIC5zZXREZXNjKFxuICAgICAgICBcIlByZXNzIHRoZSBob3RrZXkgb25jZSB0byBzZWxlY3QgdGhlIGN1cnJlbnQgbGlzdCBpdGVtLiBQcmVzcyB0aGUgaG90a2V5IHR3aWNlIHRvIHNlbGVjdCB0aGUgZW50aXJlIGxpc3QuXCJcbiAgICAgIClcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5zZWxlY3RBbGwpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0dGluZ3Muc2VsZWN0QWxsID0gdmFsdWU7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zZXR0aW5ncy5zYXZlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKFwiRGVidWcgbW9kZVwiKVxuICAgICAgLnNldERlc2MoXG4gICAgICAgIFwiT3BlbiBEZXZUb29scyAoQ29tbWFuZCtPcHRpb24rSSBvciBDb250cm9sK1NoaWZ0K0kpIHRvIGNvcHkgdGhlIGRlYnVnIGxvZ3MuXCJcbiAgICAgIClcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5kZWJ1Zykub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR0aW5ncy5kZWJ1ZyA9IHZhbHVlO1xuICAgICAgICAgIGF3YWl0IHRoaXMuc2V0dGluZ3Muc2F2ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXR0aW5nc1RhYkZlYXR1cmUgaW1wbGVtZW50cyBGZWF0dXJlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwbHVnaW46IFBsdWdpbl8yLCBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UpIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnBsdWdpbi5hZGRTZXR0aW5nVGFiKFxuICAgICAgbmV3IE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5nVGFiKFxuICAgICAgICB0aGlzLnBsdWdpbi5hcHAsXG4gICAgICAgIHRoaXMucGx1Z2luLFxuICAgICAgICB0aGlzLnNldHRpbmdzXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZCgpIHt9XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBDcmVhdGVOb3RlTGluZU9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgc3RvcFByb3BhZ2F0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm9vdDogUm9vdCkge31cblxuICBzaG91bGRTdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcFByb3BhZ2F0aW9uO1xuICB9XG5cbiAgc2hvdWxkVXBkYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZWQ7XG4gIH1cblxuICBwZXJmb3JtKCkge1xuICAgIGNvbnN0IHsgcm9vdCB9ID0gdGhpcztcblxuICAgIGlmICghcm9vdC5oYXNTaW5nbGVDdXJzb3IoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnNvciA9IHJvb3QuZ2V0Q3Vyc29yKCk7XG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgbGluZVVuZGVyQ3Vyc29yID0gbGlzdFxuICAgICAgLmdldExpbmVzSW5mbygpXG4gICAgICAuZmluZCgobCkgPT4gbC5mcm9tLmxpbmUgPT09IGN1cnNvci5saW5lKTtcblxuICAgIGlmIChjdXJzb3IuY2ggPCBsaW5lVW5kZXJDdXJzb3IuZnJvbS5jaCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RvcFByb3BhZ2F0aW9uID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuXG4gICAgaWYgKCFsaXN0LmdldE5vdGVzSW5kZW50KCkpIHtcbiAgICAgIGxpc3Quc2V0Tm90ZXNJbmRlbnQobGlzdC5nZXRGaXJzdExpbmVJbmRlbnQoKSArIFwiICBcIik7XG4gICAgfVxuXG4gICAgY29uc3QgbGluZXMgPSBsaXN0LmdldExpbmVzSW5mbygpLnJlZHVjZSgoYWNjLCBsaW5lKSA9PiB7XG4gICAgICBpZiAoY3Vyc29yLmxpbmUgPT09IGxpbmUuZnJvbS5saW5lKSB7XG4gICAgICAgIGFjYy5wdXNoKGxpbmUudGV4dC5zbGljZSgwLCBjdXJzb3IuY2ggLSBsaW5lLmZyb20uY2gpKTtcbiAgICAgICAgYWNjLnB1c2gobGluZS50ZXh0LnNsaWNlKGN1cnNvci5jaCAtIGxpbmUuZnJvbS5jaCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWNjLnB1c2gobGluZS50ZXh0KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBbXSBhcyBzdHJpbmdbXSk7XG5cbiAgICBsaXN0LnJlcGxhY2VMaW5lcyhsaW5lcyk7XG5cbiAgICByb290LnJlcGxhY2VDdXJzb3Ioe1xuICAgICAgbGluZTogY3Vyc29yLmxpbmUgKyAxLFxuICAgICAgY2g6IGxpc3QuZ2V0Tm90ZXNJbmRlbnQoKS5sZW5ndGgsXG4gICAgfSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IGtleW1hcCB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi9GZWF0dXJlXCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBDcmVhdGVOb3RlTGluZU9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL0NyZWF0ZU5vdGVMaW5lT3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBJTUVTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL0lNRVNlcnZpY2VcIjtcbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1BlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBTaGlmdEVudGVyU2hvdWxkQ3JlYXRlTm90ZUZlYXR1cmUgaW1wbGVtZW50cyBGZWF0dXJlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbHVnaW46IFBsdWdpbl8yLFxuICAgIHByaXZhdGUgb2JzaWRpYW46IE9ic2lkaWFuU2VydmljZSxcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWU6IElNRVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJmb3JtT3BlcmF0aW9uOiBQZXJmb3JtT3BlcmF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnBsdWdpbi5yZWdpc3RlckVkaXRvckV4dGVuc2lvbihcbiAgICAgIGtleW1hcC5vZihbXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IFwicy1FbnRlclwiLFxuICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICBjaGVjazogdGhpcy5jaGVjayxcbiAgICAgICAgICAgIHJ1bjogdGhpcy5ydW4sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7fVxuXG4gIHByaXZhdGUgY2hlY2sgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuYmV0dGVyRW50ZXIgJiYgIXRoaXMuaW1lLmlzSU1FT3BlbmVkKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBydW4gPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgQ3JlYXRlTm90ZUxpbmVPcGVyYXRpb24ocm9vdCksXG4gICAgICBlZGl0b3JcbiAgICApO1xuICB9O1xufVxuIiwiZXhwb3J0IGludGVyZmFjZSBBcHBseUNoYW5nZXNFZGl0b3JQb3NpdGlvbiB7XG4gIGxpbmU6IG51bWJlcjtcbiAgY2g6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBseUNoYW5nZXNFZGl0b3JTZWxlY3Rpb24ge1xuICBhbmNob3I6IEFwcGx5Q2hhbmdlc0VkaXRvclBvc2l0aW9uO1xuICBoZWFkOiBBcHBseUNoYW5nZXNFZGl0b3JQb3NpdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBseUNoYW5nZXNFZGl0b3Ige1xuICBnZXRSYW5nZShcbiAgICBmcm9tOiBBcHBseUNoYW5nZXNFZGl0b3JQb3NpdGlvbixcbiAgICB0bzogQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb25cbiAgKTogc3RyaW5nO1xuICByZXBsYWNlUmFuZ2UoXG4gICAgcmVwbGFjZW1lbnQ6IHN0cmluZyxcbiAgICBmcm9tOiBBcHBseUNoYW5nZXNFZGl0b3JQb3NpdGlvbixcbiAgICB0bzogQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb25cbiAgKTogdm9pZDtcbiAgc2V0U2VsZWN0aW9ucyhzZWxlY3Rpb25zOiBBcHBseUNoYW5nZXNFZGl0b3JTZWxlY3Rpb25bXSk6IHZvaWQ7XG4gIGZvbGQobjogbnVtYmVyKTogdm9pZDtcbiAgdW5mb2xkKG46IG51bWJlcik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbHlDaGFuZ2VzTGlzdCB7XG4gIGlzRm9sZFJvb3QoKTogYm9vbGVhbjtcbiAgZ2V0Q2hpbGRyZW4oKTogQXBwbHlDaGFuZ2VzTGlzdFtdO1xuICBnZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKTogeyBsaW5lOiBudW1iZXIgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBseUNoYW5nZXNSb290IHtcbiAgZ2V0UmFuZ2UoKTogW0FwcGx5Q2hhbmdlc0VkaXRvclBvc2l0aW9uLCBBcHBseUNoYW5nZXNFZGl0b3JQb3NpdGlvbl07XG4gIGdldFNlbGVjdGlvbnMoKToge1xuICAgIGFuY2hvcjogQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb247XG4gICAgaGVhZDogQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb247XG4gIH1bXTtcbiAgcHJpbnQoKTogc3RyaW5nO1xuICBnZXRDaGlsZHJlbigpOiBBcHBseUNoYW5nZXNMaXN0W107XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBseUNoYW5nZXNTZXJ2aWNlIHtcbiAgYXBwbHlDaGFuZ2VzKGVkaXRvcjogQXBwbHlDaGFuZ2VzRWRpdG9yLCByb290OiBBcHBseUNoYW5nZXNSb290KSB7XG4gICAgY29uc3Qgcm9vdFJhbmdlID0gcm9vdC5nZXRSYW5nZSgpO1xuICAgIGNvbnN0IG9sZFN0cmluZyA9IGVkaXRvci5nZXRSYW5nZShyb290UmFuZ2VbMF0sIHJvb3RSYW5nZVsxXSk7XG4gICAgY29uc3QgbmV3U3RyaW5nID0gcm9vdC5wcmludCgpO1xuXG4gICAgY29uc3QgZnJvbUxpbmUgPSByb290UmFuZ2VbMF0ubGluZTtcbiAgICBjb25zdCB0b0xpbmUgPSByb290UmFuZ2VbMV0ubGluZTtcblxuICAgIGZvciAobGV0IGwgPSBmcm9tTGluZTsgbCA8PSB0b0xpbmU7IGwrKykge1xuICAgICAgZWRpdG9yLnVuZm9sZChsKTtcbiAgICB9XG5cbiAgICBjb25zdCBjaGFuZ2VGcm9tID0geyAuLi5yb290UmFuZ2VbMF0gfTtcbiAgICBjb25zdCBjaGFuZ2VUbyA9IHsgLi4ucm9vdFJhbmdlWzFdIH07XG4gICAgbGV0IG9sZFRtcCA9IG9sZFN0cmluZztcbiAgICBsZXQgbmV3VG1wID0gbmV3U3RyaW5nO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnN0YW50LWNvbmRpdGlvblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCBubEluZGV4ID0gb2xkVG1wLmxhc3RJbmRleE9mKFwiXFxuXCIpO1xuICAgICAgaWYgKG5sSW5kZXggPCAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY29uc3Qgb2xkTGluZSA9IG9sZFRtcC5zbGljZShubEluZGV4KTtcbiAgICAgIGNvbnN0IG5ld0xpbmUgPSBuZXdUbXAuc2xpY2UoLW9sZExpbmUubGVuZ3RoKTtcbiAgICAgIGlmIChvbGRMaW5lICE9PSBuZXdMaW5lKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgb2xkVG1wID0gb2xkVG1wLnNsaWNlKDAsIC1vbGRMaW5lLmxlbmd0aCk7XG4gICAgICBuZXdUbXAgPSBuZXdUbXAuc2xpY2UoMCwgLW9sZExpbmUubGVuZ3RoKTtcblxuICAgICAgY29uc3QgbmxJbmRleDIgPSBvbGRUbXAubGFzdEluZGV4T2YoXCJcXG5cIik7XG4gICAgICBjaGFuZ2VUby5jaCA9XG4gICAgICAgIG5sSW5kZXgyID49IDAgPyBvbGRUbXAubGVuZ3RoIC0gbmxJbmRleDIgLSAxIDogb2xkVG1wLmxlbmd0aDtcbiAgICAgIGNoYW5nZVRvLmxpbmUtLTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnN0YW50LWNvbmRpdGlvblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCBubEluZGV4ID0gb2xkVG1wLmluZGV4T2YoXCJcXG5cIik7XG4gICAgICBpZiAobmxJbmRleCA8IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjb25zdCBvbGRMaW5lID0gb2xkVG1wLnNsaWNlKDAsIG5sSW5kZXggKyAxKTtcbiAgICAgIGNvbnN0IG5ld0xpbmUgPSBuZXdUbXAuc2xpY2UoMCwgb2xkTGluZS5sZW5ndGgpO1xuICAgICAgaWYgKG9sZExpbmUgIT09IG5ld0xpbmUpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjaGFuZ2VGcm9tLmxpbmUrKztcbiAgICAgIG9sZFRtcCA9IG9sZFRtcC5zbGljZShvbGRMaW5lLmxlbmd0aCk7XG4gICAgICBuZXdUbXAgPSBuZXdUbXAuc2xpY2Uob2xkTGluZS5sZW5ndGgpO1xuICAgIH1cblxuICAgIGlmIChvbGRUbXAgIT09IG5ld1RtcCkge1xuICAgICAgZWRpdG9yLnJlcGxhY2VSYW5nZShuZXdUbXAsIGNoYW5nZUZyb20sIGNoYW5nZVRvKTtcbiAgICB9XG5cbiAgICBlZGl0b3Iuc2V0U2VsZWN0aW9ucyhyb290LmdldFNlbGVjdGlvbnMoKSk7XG5cbiAgICBmdW5jdGlvbiByZWN1cnNpdmUobGlzdDogQXBwbHlDaGFuZ2VzTGlzdCkge1xuICAgICAgZm9yIChjb25zdCBjIG9mIGxpc3QuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgICByZWN1cnNpdmUoYyk7XG4gICAgICB9XG4gICAgICBpZiAobGlzdC5pc0ZvbGRSb290KCkpIHtcbiAgICAgICAgZWRpdG9yLmZvbGQobGlzdC5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKS5saW5lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBjIG9mIHJvb3QuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgcmVjdXJzaXZlKGMpO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuZXhwb3J0IGNsYXNzIElNRVNlcnZpY2Uge1xuICBwcml2YXRlIGNvbXBvc2l0aW9uID0gZmFsc2U7XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY29tcG9zaXRpb25zdGFydFwiLCB0aGlzLm9uQ29tcG9zaXRpb25TdGFydCk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNvbXBvc2l0aW9uZW5kXCIsIHRoaXMub25Db21wb3NpdGlvbkVuZCk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNvbXBvc2l0aW9uZW5kXCIsIHRoaXMub25Db21wb3NpdGlvbkVuZCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNvbXBvc2l0aW9uc3RhcnRcIiwgdGhpcy5vbkNvbXBvc2l0aW9uU3RhcnQpO1xuICB9XG5cbiAgaXNJTUVPcGVuZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9zaXRpb24gJiYgUGxhdGZvcm0uaXNEZXNrdG9wO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNvbXBvc2l0aW9uU3RhcnQgPSAoKSA9PiB7XG4gICAgdGhpcy5jb21wb3NpdGlvbiA9IHRydWU7XG4gIH07XG5cbiAgcHJpdmF0ZSBvbkNvbXBvc2l0aW9uRW5kID0gKCkgPT4ge1xuICAgIHRoaXMuY29tcG9zaXRpb24gPSBmYWxzZTtcbiAgfTtcbn1cbiIsImltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gXCIuL1NldHRpbmdzU2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgTG9nZ2VyU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZSkge31cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBsb2cobWV0aG9kOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgaWYgKCF0aGlzLnNldHRpbmdzLmRlYnVnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc29sZS5pbmZvKG1ldGhvZCwgLi4uYXJncyk7XG4gIH1cblxuICBiaW5kKG1ldGhvZDogc3RyaW5nKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICByZXR1cm4gKC4uLmFyZ3M6IGFueVtdKSA9PiB0aGlzLmxvZyhtZXRob2QsIC4uLmFyZ3MpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBBcHAsIEVkaXRvciwgZWRpdG9yVmlld0ZpZWxkIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IEVkaXRvclN0YXRlIH0gZnJvbSBcIkBjb2RlbWlycm9yL3N0YXRlXCI7XG5pbXBvcnQgeyBFZGl0b3JWaWV3IH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcblxuaW1wb3J0IHsgTXlFZGl0b3IgfSBmcm9tIFwiLi4vTXlFZGl0b3JcIjtcblxuZXhwb3J0IGludGVyZmFjZSBPYnNpZGlhblRhYnNTZXR0aW5ncyB7XG4gIHVzZVRhYjogYm9vbGVhbjtcbiAgdGFiU2l6ZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9ic2lkaWFuRm9sZFNldHRpbmdzIHtcbiAgZm9sZEluZGVudDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIE9ic2lkaWFuU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwOiBBcHApIHt9XG5cbiAgaXNMZWdhY3lFZGl0b3JFbmFibGVkKCkge1xuICAgIGNvbnN0IGNvbmZpZzogeyBsZWdhY3lFZGl0b3I6IGJvb2xlYW4gfSA9IHtcbiAgICAgIGxlZ2FjeUVkaXRvcjogZmFsc2UsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgLi4uKHRoaXMuYXBwLnZhdWx0IGFzIGFueSkuY29uZmlnLFxuICAgIH07XG5cbiAgICByZXR1cm4gY29uZmlnLmxlZ2FjeUVkaXRvcjtcbiAgfVxuXG4gIGlzRGVmYXVsdFRoZW1lRW5hYmxlZCgpIHtcbiAgICBjb25zdCBjb25maWc6IHsgY3NzVGhlbWU6IHN0cmluZyB9ID0ge1xuICAgICAgY3NzVGhlbWU6IFwiXCIsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgLi4uKHRoaXMuYXBwLnZhdWx0IGFzIGFueSkuY29uZmlnLFxuICAgIH07XG5cbiAgICByZXR1cm4gY29uZmlnLmNzc1RoZW1lID09PSBcIlwiO1xuICB9XG5cbiAgZ2V0T2JzaWRpYW5UYWJzU2V0dGluZ3MoKTogT2JzaWRpYW5UYWJzU2V0dGluZ3Mge1xuICAgIHJldHVybiB7XG4gICAgICB1c2VUYWI6IHRydWUsXG4gICAgICB0YWJTaXplOiA0LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIC4uLih0aGlzLmFwcC52YXVsdCBhcyBhbnkpLmNvbmZpZyxcbiAgICB9O1xuICB9XG5cbiAgZ2V0T2JzaWRpYW5Gb2xkU2V0dGluZ3MoKTogT2JzaWRpYW5Gb2xkU2V0dGluZ3Mge1xuICAgIHJldHVybiB7XG4gICAgICBmb2xkSW5kZW50OiB0cnVlLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIC4uLih0aGlzLmFwcC52YXVsdCBhcyBhbnkpLmNvbmZpZyxcbiAgICB9O1xuICB9XG5cbiAgZ2V0RGVmYXVsdEluZGVudENoYXJzKCkge1xuICAgIGNvbnN0IHsgdXNlVGFiLCB0YWJTaXplIH0gPSB0aGlzLmdldE9ic2lkaWFuVGFic1NldHRpbmdzKCk7XG5cbiAgICByZXR1cm4gdXNlVGFiID8gXCJcXHRcIiA6IG5ldyBBcnJheSh0YWJTaXplKS5maWxsKFwiIFwiKS5qb2luKFwiXCIpO1xuICB9XG5cbiAgZ2V0RWRpdG9yRnJvbVN0YXRlKHN0YXRlOiBFZGl0b3JTdGF0ZSkge1xuICAgIHJldHVybiBuZXcgTXlFZGl0b3Ioc3RhdGUuZmllbGQoZWRpdG9yVmlld0ZpZWxkKS5lZGl0b3IpO1xuICB9XG5cbiAgY3JlYXRlS2V5bWFwUnVuQ2FsbGJhY2soY29uZmlnOiB7XG4gICAgY2hlY2s/OiAoZWRpdG9yOiBNeUVkaXRvcikgPT4gYm9vbGVhbjtcbiAgICBydW46IChlZGl0b3I6IE15RWRpdG9yKSA9PiB7XG4gICAgICBzaG91bGRVcGRhdGU6IGJvb2xlYW47XG4gICAgICBzaG91bGRTdG9wUHJvcGFnYXRpb246IGJvb2xlYW47XG4gICAgfTtcbiAgfSkge1xuICAgIGNvbnN0IGNoZWNrID0gY29uZmlnLmNoZWNrIHx8ICgoKSA9PiB0cnVlKTtcbiAgICBjb25zdCB7IHJ1biB9ID0gY29uZmlnO1xuXG4gICAgcmV0dXJuICh2aWV3OiBFZGl0b3JWaWV3KTogYm9vbGVhbiA9PiB7XG4gICAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmdldEVkaXRvckZyb21TdGF0ZSh2aWV3LnN0YXRlKTtcblxuICAgICAgaWYgKCFjaGVjayhlZGl0b3IpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBzaG91bGRVcGRhdGUsIHNob3VsZFN0b3BQcm9wYWdhdGlvbiB9ID0gcnVuKGVkaXRvcik7XG5cbiAgICAgIHJldHVybiBzaG91bGRVcGRhdGUgfHwgc2hvdWxkU3RvcFByb3BhZ2F0aW9uO1xuICAgIH07XG4gIH1cblxuICBjcmVhdGVFZGl0b3JDYWxsYmFjayhjYjogKGVkaXRvcjogTXlFZGl0b3IpID0+IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gKGVkaXRvcjogRWRpdG9yKSA9PiB7XG4gICAgICBjb25zdCBteUVkaXRvciA9IG5ldyBNeUVkaXRvcihlZGl0b3IpO1xuICAgICAgY29uc3Qgc2hvdWxkU3RvcFByb3BhZ2F0aW9uID0gY2IobXlFZGl0b3IpO1xuXG4gICAgICBpZiAoXG4gICAgICAgICFzaG91bGRTdG9wUHJvcGFnYXRpb24gJiZcbiAgICAgICAgd2luZG93LmV2ZW50ICYmXG4gICAgICAgIHdpbmRvdy5ldmVudC50eXBlID09PSBcImtleWRvd25cIlxuICAgICAgKSB7XG4gICAgICAgIG15RWRpdG9yLnRyaWdnZXJPbktleURvd24od2luZG93LmV2ZW50IGFzIEtleWJvYXJkRXZlbnQpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiIsImltcG9ydCB7IExpc3QsIFJvb3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9Mb2dnZXJTZXJ2aWNlXCI7XG5cbmNvbnN0IGJ1bGxldFNpZ24gPSBgKD86Wy0qK118XFxcXGQrXFxcXC4pYDtcblxuY29uc3QgbGlzdEl0ZW1XaXRob3V0U3BhY2VzUmUgPSBuZXcgUmVnRXhwKGBeJHtidWxsZXRTaWdufSggfFxcdClgKTtcbmNvbnN0IGxpc3RJdGVtUmUgPSBuZXcgUmVnRXhwKGBeWyBcXHRdKiR7YnVsbGV0U2lnbn0oIHxcXHQpYCk7XG5jb25zdCBzdHJpbmdXaXRoU3BhY2VzUmUgPSBuZXcgUmVnRXhwKGBeWyBcXHRdK2ApO1xuY29uc3QgcGFyc2VMaXN0SXRlbVJlID0gbmV3IFJlZ0V4cChgXihbIFxcdF0qKSgke2J1bGxldFNpZ259KSggfFxcdCkoLiopJGApO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlYWRlclBvc2l0aW9uIHtcbiAgbGluZTogbnVtYmVyO1xuICBjaDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlYWRlclNlbGVjdGlvbiB7XG4gIGFuY2hvcjogUmVhZGVyUG9zaXRpb247XG4gIGhlYWQ6IFJlYWRlclBvc2l0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlYWRlciB7XG4gIGdldEN1cnNvcigpOiBSZWFkZXJQb3NpdGlvbjtcbiAgZ2V0TGluZShuOiBudW1iZXIpOiBzdHJpbmc7XG4gIGxhc3RMaW5lKCk6IG51bWJlcjtcbiAgbGlzdFNlbGVjdGlvbnMoKTogUmVhZGVyU2VsZWN0aW9uW107XG4gIGdldEFsbEZvbGRlZExpbmVzKCk6IG51bWJlcltdO1xufVxuXG5pbnRlcmZhY2UgUGFyc2VMaXN0TGlzdCB7XG4gIGdldEZpcnN0TGluZUluZGVudCgpOiBzdHJpbmc7XG4gIHNldE5vdGVzSW5kZW50KG5vdGVzSW5kZW50OiBzdHJpbmcpOiB2b2lkO1xuICBnZXROb3Rlc0luZGVudCgpOiBzdHJpbmcgfCBudWxsO1xuICBhZGRMaW5lKHRleHQ6IHN0cmluZyk6IHZvaWQ7XG4gIGdldFBhcmVudCgpOiBQYXJzZUxpc3RMaXN0IHwgbnVsbDtcbiAgYWRkQWZ0ZXJBbGwobGlzdDogUGFyc2VMaXN0TGlzdCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJzZXJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UpIHt9XG5cbiAgcGFyc2VSYW5nZShlZGl0b3I6IFJlYWRlciwgZnJvbUxpbmUgPSAwLCB0b0xpbmUgPSBlZGl0b3IubGFzdExpbmUoKSk6IFJvb3RbXSB7XG4gICAgY29uc3QgbGlzdHM6IFJvb3RbXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IGZyb21MaW5lOyBpIDw9IHRvTGluZTsgaSsrKSB7XG4gICAgICBjb25zdCBsaW5lID0gZWRpdG9yLmdldExpbmUoaSk7XG5cbiAgICAgIGlmIChpID09PSBmcm9tTGluZSB8fCB0aGlzLmlzTGlzdEl0ZW0obGluZSkpIHtcbiAgICAgICAgY29uc3QgbGlzdCA9IHRoaXMucGFyc2VXaXRoTGltaXRzKGVkaXRvciwgaSwgZnJvbUxpbmUsIHRvTGluZSk7XG5cbiAgICAgICAgaWYgKGxpc3QpIHtcbiAgICAgICAgICBsaXN0cy5wdXNoKGxpc3QpO1xuICAgICAgICAgIGkgPSBsaXN0LmdldFJhbmdlKClbMV0ubGluZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBsaXN0cztcbiAgfVxuXG4gIHBhcnNlKGVkaXRvcjogUmVhZGVyLCBjdXJzb3IgPSBlZGl0b3IuZ2V0Q3Vyc29yKCkpOiBSb290IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VXaXRoTGltaXRzKGVkaXRvciwgY3Vyc29yLmxpbmUsIDAsIGVkaXRvci5sYXN0TGluZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VXaXRoTGltaXRzKFxuICAgIGVkaXRvcjogUmVhZGVyLFxuICAgIHBhcnNpbmdTdGFydExpbmU6IG51bWJlcixcbiAgICBsaW1pdEZyb206IG51bWJlcixcbiAgICBsaW1pdFRvOiBudW1iZXJcbiAgKTogUm9vdCB8IG51bGwge1xuICAgIGNvbnN0IGQgPSB0aGlzLmxvZ2dlci5iaW5kKFwicGFyc2VMaXN0XCIpO1xuICAgIGNvbnN0IGVycm9yID0gKG1zZzogc3RyaW5nKTogbnVsbCA9PiB7XG4gICAgICBkKG1zZyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuXG4gICAgY29uc3QgbGluZSA9IGVkaXRvci5nZXRMaW5lKHBhcnNpbmdTdGFydExpbmUpO1xuXG4gICAgbGV0IGxpc3RMb29raW5nUG9zOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIGlmICh0aGlzLmlzTGlzdEl0ZW0obGluZSkpIHtcbiAgICAgIGxpc3RMb29raW5nUG9zID0gcGFyc2luZ1N0YXJ0TGluZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNMaW5lV2l0aEluZGVudChsaW5lKSkge1xuICAgICAgbGV0IGxpc3RMb29raW5nUG9zU2VhcmNoID0gcGFyc2luZ1N0YXJ0TGluZSAtIDE7XG4gICAgICB3aGlsZSAobGlzdExvb2tpbmdQb3NTZWFyY2ggPj0gMCkge1xuICAgICAgICBjb25zdCBsaW5lID0gZWRpdG9yLmdldExpbmUobGlzdExvb2tpbmdQb3NTZWFyY2gpO1xuICAgICAgICBpZiAodGhpcy5pc0xpc3RJdGVtKGxpbmUpKSB7XG4gICAgICAgICAgbGlzdExvb2tpbmdQb3MgPSBsaXN0TG9va2luZ1Bvc1NlYXJjaDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzTGluZVdpdGhJbmRlbnQobGluZSkpIHtcbiAgICAgICAgICBsaXN0TG9va2luZ1Bvc1NlYXJjaC0tO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGxpc3RMb29raW5nUG9zID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCBsaXN0U3RhcnRMaW5lOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgbGlzdFN0YXJ0TGluZUxvb2t1cCA9IGxpc3RMb29raW5nUG9zO1xuICAgIHdoaWxlIChsaXN0U3RhcnRMaW5lTG9va3VwID49IDApIHtcbiAgICAgIGNvbnN0IGxpbmUgPSBlZGl0b3IuZ2V0TGluZShsaXN0U3RhcnRMaW5lTG9va3VwKTtcbiAgICAgIGlmICghdGhpcy5pc0xpc3RJdGVtKGxpbmUpICYmICF0aGlzLmlzTGluZVdpdGhJbmRlbnQobGluZSkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc0xpc3RJdGVtV2l0aG91dFNwYWNlcyhsaW5lKSkge1xuICAgICAgICBsaXN0U3RhcnRMaW5lID0gbGlzdFN0YXJ0TGluZUxvb2t1cDtcbiAgICAgICAgaWYgKGxpc3RTdGFydExpbmVMb29rdXAgPD0gbGltaXRGcm9tKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxpc3RTdGFydExpbmVMb29rdXAtLTtcbiAgICB9XG5cbiAgICBpZiAobGlzdFN0YXJ0TGluZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IGxpc3RFbmRMaW5lID0gbGlzdExvb2tpbmdQb3M7XG4gICAgbGV0IGxpc3RFbmRMaW5lTG9va3VwID0gbGlzdExvb2tpbmdQb3M7XG4gICAgd2hpbGUgKGxpc3RFbmRMaW5lTG9va3VwIDw9IGVkaXRvci5sYXN0TGluZSgpKSB7XG4gICAgICBjb25zdCBsaW5lID0gZWRpdG9yLmdldExpbmUobGlzdEVuZExpbmVMb29rdXApO1xuICAgICAgaWYgKCF0aGlzLmlzTGlzdEl0ZW0obGluZSkgJiYgIXRoaXMuaXNMaW5lV2l0aEluZGVudChsaW5lKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5pc0VtcHR5TGluZShsaW5lKSkge1xuICAgICAgICBsaXN0RW5kTGluZSA9IGxpc3RFbmRMaW5lTG9va3VwO1xuICAgICAgfVxuICAgICAgaWYgKGxpc3RFbmRMaW5lTG9va3VwID49IGxpbWl0VG8pIHtcbiAgICAgICAgbGlzdEVuZExpbmUgPSBsaW1pdFRvO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGxpc3RFbmRMaW5lTG9va3VwKys7XG4gICAgfVxuXG4gICAgaWYgKGxpc3RTdGFydExpbmUgPiBwYXJzaW5nU3RhcnRMaW5lIHx8IGxpc3RFbmRMaW5lIDwgcGFyc2luZ1N0YXJ0TGluZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9vdCA9IG5ldyBSb290KFxuICAgICAgeyBsaW5lOiBsaXN0U3RhcnRMaW5lLCBjaDogMCB9LFxuICAgICAgeyBsaW5lOiBsaXN0RW5kTGluZSwgY2g6IGVkaXRvci5nZXRMaW5lKGxpc3RFbmRMaW5lKS5sZW5ndGggfSxcbiAgICAgIGVkaXRvci5saXN0U2VsZWN0aW9ucygpLm1hcCgocikgPT4gKHtcbiAgICAgICAgYW5jaG9yOiB7IGxpbmU6IHIuYW5jaG9yLmxpbmUsIGNoOiByLmFuY2hvci5jaCB9LFxuICAgICAgICBoZWFkOiB7IGxpbmU6IHIuaGVhZC5saW5lLCBjaDogci5oZWFkLmNoIH0sXG4gICAgICB9KSlcbiAgICApO1xuXG4gICAgbGV0IGN1cnJlbnRQYXJlbnQ6IFBhcnNlTGlzdExpc3QgPSByb290LmdldFJvb3RMaXN0KCk7XG4gICAgbGV0IGN1cnJlbnRMaXN0OiBQYXJzZUxpc3RMaXN0IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGN1cnJlbnRJbmRlbnQgPSBcIlwiO1xuXG4gICAgY29uc3QgZm9sZGVkTGluZXMgPSBlZGl0b3IuZ2V0QWxsRm9sZGVkTGluZXMoKTtcblxuICAgIGZvciAobGV0IGwgPSBsaXN0U3RhcnRMaW5lOyBsIDw9IGxpc3RFbmRMaW5lOyBsKyspIHtcbiAgICAgIGNvbnN0IGxpbmUgPSBlZGl0b3IuZ2V0TGluZShsKTtcbiAgICAgIGNvbnN0IG1hdGNoZXMgPSBwYXJzZUxpc3RJdGVtUmUuZXhlYyhsaW5lKTtcblxuICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgY29uc3QgWywgaW5kZW50LCBidWxsZXQsIHNwYWNlQWZ0ZXJCdWxsZXQsIGNvbnRlbnRdID0gbWF0Y2hlcztcblxuICAgICAgICBjb25zdCBjb21wYXJlTGVuZ3RoID0gTWF0aC5taW4oY3VycmVudEluZGVudC5sZW5ndGgsIGluZGVudC5sZW5ndGgpO1xuICAgICAgICBjb25zdCBpbmRlbnRTbGljZSA9IGluZGVudC5zbGljZSgwLCBjb21wYXJlTGVuZ3RoKTtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGVudFNsaWNlID0gY3VycmVudEluZGVudC5zbGljZSgwLCBjb21wYXJlTGVuZ3RoKTtcblxuICAgICAgICBpZiAoaW5kZW50U2xpY2UgIT09IGN1cnJlbnRJbmRlbnRTbGljZSkge1xuICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0gY3VycmVudEluZGVudFNsaWNlXG4gICAgICAgICAgICAucmVwbGFjZSgvIC9nLCBcIlNcIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXHQvZywgXCJUXCIpO1xuICAgICAgICAgIGNvbnN0IGdvdCA9IGluZGVudFNsaWNlLnJlcGxhY2UoLyAvZywgXCJTXCIpLnJlcGxhY2UoL1xcdC9nLCBcIlRcIik7XG5cbiAgICAgICAgICByZXR1cm4gZXJyb3IoXG4gICAgICAgICAgICBgVW5hYmxlIHRvIHBhcnNlIGxpc3Q6IGV4cGVjdGVkIGluZGVudCBcIiR7ZXhwZWN0ZWR9XCIsIGdvdCBcIiR7Z290fVwiYFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaW5kZW50Lmxlbmd0aCA+IGN1cnJlbnRJbmRlbnQubGVuZ3RoKSB7XG4gICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRMaXN0O1xuICAgICAgICAgIGN1cnJlbnRJbmRlbnQgPSBpbmRlbnQ7XG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZW50Lmxlbmd0aCA8IGN1cnJlbnRJbmRlbnQubGVuZ3RoKSB7XG4gICAgICAgICAgd2hpbGUgKFxuICAgICAgICAgICAgY3VycmVudFBhcmVudC5nZXRGaXJzdExpbmVJbmRlbnQoKS5sZW5ndGggPj0gaW5kZW50Lmxlbmd0aCAmJlxuICAgICAgICAgICAgY3VycmVudFBhcmVudC5nZXRQYXJlbnQoKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRQYXJlbnQuZ2V0UGFyZW50KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGN1cnJlbnRJbmRlbnQgPSBpbmRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb2xkUm9vdCA9IGZvbGRlZExpbmVzLmluY2x1ZGVzKGwpO1xuXG4gICAgICAgIGN1cnJlbnRMaXN0ID0gbmV3IExpc3QoXG4gICAgICAgICAgcm9vdCxcbiAgICAgICAgICBpbmRlbnQsXG4gICAgICAgICAgYnVsbGV0LFxuICAgICAgICAgIHNwYWNlQWZ0ZXJCdWxsZXQsXG4gICAgICAgICAgY29udGVudCxcbiAgICAgICAgICBmb2xkUm9vdFxuICAgICAgICApO1xuICAgICAgICBjdXJyZW50UGFyZW50LmFkZEFmdGVyQWxsKGN1cnJlbnRMaXN0KTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0xpbmVXaXRoSW5kZW50KGxpbmUpKSB7XG4gICAgICAgIGlmICghY3VycmVudExpc3QpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3IoXG4gICAgICAgICAgICBgVW5hYmxlIHRvIHBhcnNlIGxpc3Q6IGV4cGVjdGVkIGxpc3QgaXRlbSwgZ290IGVtcHR5IGxpbmVgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluZGVudFRvQ2hlY2sgPSBjdXJyZW50TGlzdC5nZXROb3Rlc0luZGVudCgpIHx8IGN1cnJlbnRJbmRlbnQ7XG5cbiAgICAgICAgaWYgKGxpbmUuaW5kZXhPZihpbmRlbnRUb0NoZWNrKSAhPT0gMCkge1xuICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0gaW5kZW50VG9DaGVjay5yZXBsYWNlKC8gL2csIFwiU1wiKS5yZXBsYWNlKC9cXHQvZywgXCJUXCIpO1xuICAgICAgICAgIGNvbnN0IGdvdCA9IGxpbmVcbiAgICAgICAgICAgIC5tYXRjaCgvXlsgXFx0XSovKVswXVxuICAgICAgICAgICAgLnJlcGxhY2UoLyAvZywgXCJTXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFx0L2csIFwiVFwiKTtcblxuICAgICAgICAgIHJldHVybiBlcnJvcihcbiAgICAgICAgICAgIGBVbmFibGUgdG8gcGFyc2UgbGlzdDogZXhwZWN0ZWQgaW5kZW50IFwiJHtleHBlY3RlZH1cIiwgZ290IFwiJHtnb3R9XCJgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY3VycmVudExpc3QuZ2V0Tm90ZXNJbmRlbnQoKSkge1xuICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBsaW5lLm1hdGNoKC9eWyBcXHRdKy8pO1xuXG4gICAgICAgICAgaWYgKCFtYXRjaGVzIHx8IG1hdGNoZXNbMF0ubGVuZ3RoIDw9IGN1cnJlbnRJbmRlbnQubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoL15cXHMrJC8udGVzdChsaW5lKSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGVycm9yKFxuICAgICAgICAgICAgICBgVW5hYmxlIHRvIHBhcnNlIGxpc3Q6IGV4cGVjdGVkIHNvbWUgaW5kZW50LCBnb3Qgbm8gaW5kZW50YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjdXJyZW50TGlzdC5zZXROb3Rlc0luZGVudChtYXRjaGVzWzBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnRMaXN0LmFkZExpbmUobGluZS5zbGljZShjdXJyZW50TGlzdC5nZXROb3Rlc0luZGVudCgpLmxlbmd0aCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGVycm9yKFxuICAgICAgICAgIGBVbmFibGUgdG8gcGFyc2UgbGlzdDogZXhwZWN0ZWQgbGlzdCBpdGVtIG9yIG5vdGUsIGdvdCBcIiR7bGluZX1cImBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcm9vdDtcbiAgfVxuXG4gIHByaXZhdGUgaXNFbXB0eUxpbmUobGluZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGxpbmUubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0xpbmVXaXRoSW5kZW50KGxpbmU6IHN0cmluZykge1xuICAgIHJldHVybiBzdHJpbmdXaXRoU3BhY2VzUmUudGVzdChsaW5lKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNMaXN0SXRlbShsaW5lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbGlzdEl0ZW1SZS50ZXN0KGxpbmUpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0xpc3RJdGVtV2l0aG91dFNwYWNlcyhsaW5lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbGlzdEl0ZW1XaXRob3V0U3BhY2VzUmUudGVzdChsaW5lKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgQXBwbHlDaGFuZ2VzU2VydmljZSB9IGZyb20gXCIuL0FwcGx5Q2hhbmdlc1NlcnZpY2VcIjtcbmltcG9ydCB7IFBhcnNlclNlcnZpY2UgfSBmcm9tIFwiLi9QYXJzZXJTZXJ2aWNlXCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9PcGVyYXRpb25cIjtcbmltcG9ydCB7IFJvb3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuXG5leHBvcnQgY2xhc3MgUGVyZm9ybU9wZXJhdGlvblNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBhcnNlcjogUGFyc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGFwcGx5Q2hhbmdlczogQXBwbHlDaGFuZ2VzU2VydmljZVxuICApIHt9XG5cbiAgZXZhbE9wZXJhdGlvbihyb290OiBSb290LCBvcDogT3BlcmF0aW9uLCBlZGl0b3I6IE15RWRpdG9yKSB7XG4gICAgb3AucGVyZm9ybSgpO1xuXG4gICAgaWYgKG9wLnNob3VsZFVwZGF0ZSgpKSB7XG4gICAgICB0aGlzLmFwcGx5Q2hhbmdlcy5hcHBseUNoYW5nZXMoZWRpdG9yLCByb290KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2hvdWxkVXBkYXRlOiBvcC5zaG91bGRVcGRhdGUoKSxcbiAgICAgIHNob3VsZFN0b3BQcm9wYWdhdGlvbjogb3Auc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCksXG4gICAgfTtcbiAgfVxuXG4gIHBlcmZvcm1PcGVyYXRpb24oXG4gICAgY2I6IChyb290OiBSb290KSA9PiBPcGVyYXRpb24sXG4gICAgZWRpdG9yOiBNeUVkaXRvcixcbiAgICBjdXJzb3IgPSBlZGl0b3IuZ2V0Q3Vyc29yKClcbiAgKSB7XG4gICAgY29uc3Qgcm9vdCA9IHRoaXMucGFyc2VyLnBhcnNlKGVkaXRvciwgY3Vyc29yKTtcblxuICAgIGlmICghcm9vdCkge1xuICAgICAgcmV0dXJuIHsgc2hvdWxkVXBkYXRlOiBmYWxzZSwgc2hvdWxkU3RvcFByb3BhZ2F0aW9uOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIGNvbnN0IG9wID0gY2Iocm9vdCk7XG5cbiAgICByZXR1cm4gdGhpcy5ldmFsT3BlcmF0aW9uKHJvb3QsIG9wLCBlZGl0b3IpO1xuICB9XG59XG4iLCJleHBvcnQgdHlwZSBMaXN0TGluZUFjdGlvbiA9IFwibm9uZVwiIHwgXCJ6b29tLWluXCIgfCBcInRvZ2dsZS1mb2xkaW5nXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2JzaWRpYW5PdXRsaW5lclBsdWdpblNldHRpbmdzIHtcbiAgc3R5bGVMaXN0czogYm9vbGVhbjtcbiAgZGVidWc6IGJvb2xlYW47XG4gIHN0aWNrQ3Vyc29yOiBib29sZWFuO1xuICBiZXR0ZXJFbnRlcjogYm9vbGVhbjtcbiAgYmV0dGVyVGFiOiBib29sZWFuO1xuICBzZWxlY3RBbGw6IGJvb2xlYW47XG4gIGxpc3RMaW5lczogYm9vbGVhbjtcbiAgbGlzdExpbmVBY3Rpb246IExpc3RMaW5lQWN0aW9uO1xufVxuXG5jb25zdCBERUZBVUxUX1NFVFRJTkdTOiBPYnNpZGlhbk91dGxpbmVyUGx1Z2luU2V0dGluZ3MgPSB7XG4gIHN0eWxlTGlzdHM6IHRydWUsXG4gIGRlYnVnOiBmYWxzZSxcbiAgc3RpY2tDdXJzb3I6IHRydWUsXG4gIGJldHRlckVudGVyOiB0cnVlLFxuICBiZXR0ZXJUYWI6IHRydWUsXG4gIHNlbGVjdEFsbDogdHJ1ZSxcbiAgbGlzdExpbmVzOiBmYWxzZSxcbiAgbGlzdExpbmVBY3Rpb246IFwidG9nZ2xlLWZvbGRpbmdcIixcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZSB7XG4gIGxvYWREYXRhKCk6IFByb21pc2U8T2JzaWRpYW5PdXRsaW5lclBsdWdpblNldHRpbmdzPjtcbiAgc2F2ZURhdGEoc2V0dGlnbnM6IE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5ncyk6IFByb21pc2U8dm9pZD47XG59XG5cbnR5cGUgSyA9IGtleW9mIE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5ncztcbnR5cGUgQ2FsbGJhY2s8VCBleHRlbmRzIEs+ID0gKGNiOiBPYnNpZGlhbk91dGxpbmVyUGx1Z2luU2V0dGluZ3NbVF0pID0+IHZvaWQ7XG5cbmV4cG9ydCBjbGFzcyBTZXR0aW5nc1NlcnZpY2UgaW1wbGVtZW50cyBPYnNpZGlhbk91dGxpbmVyUGx1Z2luU2V0dGluZ3Mge1xuICBwcml2YXRlIHN0b3JhZ2U6IFN0b3JhZ2U7XG4gIHByaXZhdGUgdmFsdWVzOiBPYnNpZGlhbk91dGxpbmVyUGx1Z2luU2V0dGluZ3M7XG4gIHByaXZhdGUgaGFuZGxlcnM6IE1hcDxLLCBTZXQ8Q2FsbGJhY2s8Sz4+PjtcblxuICBjb25zdHJ1Y3RvcihzdG9yYWdlOiBTdG9yYWdlKSB7XG4gICAgdGhpcy5zdG9yYWdlID0gc3RvcmFnZTtcbiAgICB0aGlzLmhhbmRsZXJzID0gbmV3IE1hcCgpO1xuICB9XG5cbiAgZ2V0IHN0eWxlTGlzdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLnN0eWxlTGlzdHM7XG4gIH1cbiAgc2V0IHN0eWxlTGlzdHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldChcInN0eWxlTGlzdHNcIiwgdmFsdWUpO1xuICB9XG5cbiAgZ2V0IGRlYnVnKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcy5kZWJ1ZztcbiAgfVxuICBzZXQgZGVidWcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldChcImRlYnVnXCIsIHZhbHVlKTtcbiAgfVxuXG4gIGdldCBzdGlja0N1cnNvcigpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMuc3RpY2tDdXJzb3I7XG4gIH1cbiAgc2V0IHN0aWNrQ3Vyc29yKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXQoXCJzdGlja0N1cnNvclwiLCB2YWx1ZSk7XG4gIH1cblxuICBnZXQgYmV0dGVyRW50ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLmJldHRlckVudGVyO1xuICB9XG4gIHNldCBiZXR0ZXJFbnRlcih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0KFwiYmV0dGVyRW50ZXJcIiwgdmFsdWUpO1xuICB9XG5cbiAgZ2V0IGJldHRlclRhYigpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMuYmV0dGVyVGFiO1xuICB9XG4gIHNldCBiZXR0ZXJUYWIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldChcImJldHRlclRhYlwiLCB2YWx1ZSk7XG4gIH1cblxuICBnZXQgc2VsZWN0QWxsKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcy5zZWxlY3RBbGw7XG4gIH1cbiAgc2V0IHNlbGVjdEFsbCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0KFwic2VsZWN0QWxsXCIsIHZhbHVlKTtcbiAgfVxuXG4gIGdldCBsaXN0TGluZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLmxpc3RMaW5lcztcbiAgfVxuICBzZXQgbGlzdExpbmVzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXQoXCJsaXN0TGluZXNcIiwgdmFsdWUpO1xuICB9XG5cbiAgZ2V0IGxpc3RMaW5lQWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcy5saXN0TGluZUFjdGlvbjtcbiAgfVxuICBzZXQgbGlzdExpbmVBY3Rpb24odmFsdWU6IExpc3RMaW5lQWN0aW9uKSB7XG4gICAgdGhpcy5zZXQoXCJsaXN0TGluZUFjdGlvblwiLCB2YWx1ZSk7XG4gIH1cblxuICBvbkNoYW5nZTxUIGV4dGVuZHMgSz4oa2V5OiBULCBjYjogQ2FsbGJhY2s8VD4pIHtcbiAgICBpZiAoIXRoaXMuaGFuZGxlcnMuaGFzKGtleSkpIHtcbiAgICAgIHRoaXMuaGFuZGxlcnMuc2V0KGtleSwgbmV3IFNldCgpKTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZXJzLmdldChrZXkpLmFkZChjYik7XG4gIH1cblxuICByZW1vdmVDYWxsYmFjazxUIGV4dGVuZHMgSz4oa2V5OiBULCBjYjogQ2FsbGJhY2s8VD4pOiB2b2lkIHtcbiAgICBjb25zdCBoYW5kbGVycyA9IHRoaXMuaGFuZGxlcnMuZ2V0KGtleSk7XG5cbiAgICBpZiAoaGFuZGxlcnMpIHtcbiAgICAgIGhhbmRsZXJzLmRlbGV0ZShjYik7XG4gICAgfVxuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMoREVGQVVMVF9TRVRUSU5HUykpIHtcbiAgICAgIHRoaXMuc2V0KGsgYXMga2V5b2YgT2JzaWRpYW5PdXRsaW5lclBsdWdpblNldHRpbmdzLCB2KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsb2FkKCkge1xuICAgIHRoaXMudmFsdWVzID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgREVGQVVMVF9TRVRUSU5HUyxcbiAgICAgIGF3YWl0IHRoaXMuc3RvcmFnZS5sb2FkRGF0YSgpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoKSB7XG4gICAgYXdhaXQgdGhpcy5zdG9yYWdlLnNhdmVEYXRhKHRoaXMudmFsdWVzKTtcbiAgfVxuXG4gIHNldDxUIGV4dGVuZHMgSz4oa2V5OiBULCB2YWx1ZTogT2JzaWRpYW5PdXRsaW5lclBsdWdpblNldHRpbmdzW1RdKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZXNba2V5XSA9IHZhbHVlO1xuICAgIGNvbnN0IGNhbGxiYWNrcyA9IHRoaXMuaGFuZGxlcnMuZ2V0KGtleSk7XG5cbiAgICBpZiAoIWNhbGxiYWNrcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgY2Igb2YgY2FsbGJhY2tzLnZhbHVlcygpKSB7XG4gICAgICBjYih2YWx1ZSk7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBQbHVnaW4gfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsgRGVsZXRlU2hvdWxkSWdub3JlQnVsbGV0c0ZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9EZWxldGVTaG91bGRJZ25vcmVCdWxsZXRzRmVhdHVyZVwiO1xuaW1wb3J0IHsgRW5zdXJlQ3Vyc29ySW5MaXN0Q29udGVudEZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9FbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50RmVhdHVyZVwiO1xuaW1wb3J0IHsgRW50ZXJPdXRkZW50SWZMaW5lSXNFbXB0eUZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9FbnRlck91dGRlbnRJZkxpbmVJc0VtcHR5RmVhdHVyZVwiO1xuaW1wb3J0IHsgRW50ZXJTaG91bGRDcmVhdGVOZXdJdGVtRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL0VudGVyU2hvdWxkQ3JlYXRlTmV3SXRlbU9uQ2hpbGRMZXZlbEZlYXR1cmVcIjtcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9GZWF0dXJlXCI7XG5pbXBvcnQgeyBGb2xkRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL0ZvbGRGZWF0dXJlXCI7XG5pbXBvcnQgeyBMaW5lc0ZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9MaW5lc0ZlYXR1cmVcIjtcbmltcG9ydCB7IExpc3RzU3R5bGVzRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL0xpc3RzU3R5bGVzRmVhdHVyZVwiO1xuaW1wb3J0IHsgTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVGZWF0dXJlXCI7XG5pbXBvcnQgeyBNb3ZlSXRlbXNGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvTW92ZUl0ZW1zRmVhdHVyZVwiO1xuaW1wb3J0IHsgU2VsZWN0QWxsRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL1NlbGVjdEFsbEZlYXR1cmVcIjtcbmltcG9ydCB7IFNlbGVjdGlvblNob3VsZElnbm9yZUJ1bGxldHNGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvU2VsZWN0aW9uU2hvdWxkSWdub3JlQnVsbGV0c0ZlYXR1cmVcIjtcbmltcG9ydCB7IFNldHRpbmdzVGFiRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL1NldHRpbmdzVGFiRmVhdHVyZVwiO1xuaW1wb3J0IHsgU2hpZnRFbnRlclNob3VsZENyZWF0ZU5vdGVGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvU2hpZnRFbnRlclNob3VsZENyZWF0ZU5vdGVGZWF0dXJlXCI7XG5pbXBvcnQgeyBBcHBseUNoYW5nZXNTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvQXBwbHlDaGFuZ2VzU2VydmljZVwiO1xuaW1wb3J0IHsgSU1FU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL0lNRVNlcnZpY2VcIjtcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9Mb2dnZXJTZXJ2aWNlXCI7XG5pbXBvcnQgeyBPYnNpZGlhblNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBhcnNlclNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9QYXJzZXJTZXJ2aWNlXCI7XG5pbXBvcnQgeyBQZXJmb3JtT3BlcmF0aW9uU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL1BlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2VcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT2JzaWRpYW5PdXRsaW5lclBsdWdpbiBleHRlbmRzIFBsdWdpbiB7XG4gIHByaXZhdGUgZmVhdHVyZXM6IEZlYXR1cmVbXTtcbiAgcHJvdGVjdGVkIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2U7XG4gIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlO1xuICBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2U7XG4gIHByaXZhdGUgcGFyc2VyOiBQYXJzZXJTZXJ2aWNlO1xuICBwcml2YXRlIGFwcGx5Q2hhbmdlczogQXBwbHlDaGFuZ2VzU2VydmljZTtcbiAgcHJpdmF0ZSBwZXJmb3JtT3BlcmF0aW9uOiBQZXJmb3JtT3BlcmF0aW9uU2VydmljZTtcbiAgcHJpdmF0ZSBpbWU6IElNRVNlcnZpY2U7XG5cbiAgYXN5bmMgb25sb2FkKCkge1xuICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIG9ic2lkaWFuLW91dGxpbmVyYCk7XG5cbiAgICB0aGlzLm9ic2lkaWFuID0gbmV3IE9ic2lkaWFuU2VydmljZSh0aGlzLmFwcCk7XG5cbiAgICB0aGlzLnNldHRpbmdzID0gbmV3IFNldHRpbmdzU2VydmljZSh0aGlzKTtcbiAgICBhd2FpdCB0aGlzLnNldHRpbmdzLmxvYWQoKTtcblxuICAgIHRoaXMubG9nZ2VyID0gbmV3IExvZ2dlclNlcnZpY2UodGhpcy5zZXR0aW5ncyk7XG5cbiAgICB0aGlzLnBhcnNlciA9IG5ldyBQYXJzZXJTZXJ2aWNlKHRoaXMubG9nZ2VyKTtcbiAgICB0aGlzLmFwcGx5Q2hhbmdlcyA9IG5ldyBBcHBseUNoYW5nZXNTZXJ2aWNlKCk7XG4gICAgdGhpcy5wZXJmb3JtT3BlcmF0aW9uID0gbmV3IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlKFxuICAgICAgdGhpcy5wYXJzZXIsXG4gICAgICB0aGlzLmFwcGx5Q2hhbmdlc1xuICAgICk7XG5cbiAgICB0aGlzLmltZSA9IG5ldyBJTUVTZXJ2aWNlKCk7XG4gICAgYXdhaXQgdGhpcy5pbWUubG9hZCgpO1xuXG4gICAgdGhpcy5mZWF0dXJlcyA9IFtcbiAgICAgIG5ldyBTZXR0aW5nc1RhYkZlYXR1cmUodGhpcywgdGhpcy5zZXR0aW5ncyksXG4gICAgICBuZXcgTGlzdHNTdHlsZXNGZWF0dXJlKHRoaXMuc2V0dGluZ3MsIHRoaXMub2JzaWRpYW4pLFxuICAgICAgbmV3IEVudGVyT3V0ZGVudElmTGluZUlzRW1wdHlGZWF0dXJlKFxuICAgICAgICB0aGlzLFxuICAgICAgICB0aGlzLnNldHRpbmdzLFxuICAgICAgICB0aGlzLmltZSxcbiAgICAgICAgdGhpcy5vYnNpZGlhbixcbiAgICAgICAgdGhpcy5wZXJmb3JtT3BlcmF0aW9uXG4gICAgICApLFxuICAgICAgbmV3IEVudGVyU2hvdWxkQ3JlYXRlTmV3SXRlbUZlYXR1cmUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgIHRoaXMuaW1lLFxuICAgICAgICB0aGlzLm9ic2lkaWFuLFxuICAgICAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb25cbiAgICAgICksXG4gICAgICBuZXcgRW5zdXJlQ3Vyc29ySW5MaXN0Q29udGVudEZlYXR1cmUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgIHRoaXMub2JzaWRpYW4sXG4gICAgICAgIHRoaXMucGVyZm9ybU9wZXJhdGlvblxuICAgICAgKSxcbiAgICAgIG5ldyBNb3ZlQ3Vyc29yVG9QcmV2aW91c1VuZm9sZGVkTGluZUZlYXR1cmUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgIHRoaXMuaW1lLFxuICAgICAgICB0aGlzLm9ic2lkaWFuLFxuICAgICAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb25cbiAgICAgICksXG4gICAgICBuZXcgRGVsZXRlU2hvdWxkSWdub3JlQnVsbGV0c0ZlYXR1cmUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgIHRoaXMuaW1lLFxuICAgICAgICB0aGlzLm9ic2lkaWFuLFxuICAgICAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb25cbiAgICAgICksXG4gICAgICBuZXcgU2VsZWN0aW9uU2hvdWxkSWdub3JlQnVsbGV0c0ZlYXR1cmUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgIHRoaXMuaW1lLFxuICAgICAgICB0aGlzLm9ic2lkaWFuLFxuICAgICAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb25cbiAgICAgICksXG4gICAgICBuZXcgRm9sZEZlYXR1cmUodGhpcywgdGhpcy5vYnNpZGlhbiksXG4gICAgICBuZXcgU2VsZWN0QWxsRmVhdHVyZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgdGhpcy5zZXR0aW5ncyxcbiAgICAgICAgdGhpcy5pbWUsXG4gICAgICAgIHRoaXMub2JzaWRpYW4sXG4gICAgICAgIHRoaXMucGVyZm9ybU9wZXJhdGlvblxuICAgICAgKSxcbiAgICAgIG5ldyBNb3ZlSXRlbXNGZWF0dXJlKFxuICAgICAgICB0aGlzLFxuICAgICAgICB0aGlzLmltZSxcbiAgICAgICAgdGhpcy5vYnNpZGlhbixcbiAgICAgICAgdGhpcy5zZXR0aW5ncyxcbiAgICAgICAgdGhpcy5wZXJmb3JtT3BlcmF0aW9uXG4gICAgICApLFxuICAgICAgbmV3IFNoaWZ0RW50ZXJTaG91bGRDcmVhdGVOb3RlRmVhdHVyZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgdGhpcy5vYnNpZGlhbixcbiAgICAgICAgdGhpcy5zZXR0aW5ncyxcbiAgICAgICAgdGhpcy5pbWUsXG4gICAgICAgIHRoaXMucGVyZm9ybU9wZXJhdGlvblxuICAgICAgKSxcbiAgICAgIG5ldyBMaW5lc0ZlYXR1cmUodGhpcywgdGhpcy5zZXR0aW5ncywgdGhpcy5vYnNpZGlhbiwgdGhpcy5wYXJzZXIpLFxuICAgIF07XG5cbiAgICBmb3IgKGNvbnN0IGZlYXR1cmUgb2YgdGhpcy5mZWF0dXJlcykge1xuICAgICAgYXdhaXQgZmVhdHVyZS5sb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb251bmxvYWQoKSB7XG4gICAgY29uc29sZS5sb2coYFVubG9hZGluZyBvYnNpZGlhbi1vdXRsaW5lcmApO1xuXG4gICAgYXdhaXQgdGhpcy5pbWUudW5sb2FkKCk7XG5cbiAgICBmb3IgKGNvbnN0IGZlYXR1cmUgb2YgdGhpcy5mZWF0dXJlcykge1xuICAgICAgYXdhaXQgZmVhdHVyZS51bmxvYWQoKTtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJrZXltYXAiLCJFZGl0b3JTdGF0ZSIsIlByZWMiLCJOb3RpY2UiLCJmb2xkZWRSYW5nZXMiLCJmb2xkYWJsZSIsImZvbGRFZmZlY3QiLCJ1bmZvbGRFZmZlY3QiLCJydW5TY29wZUhhbmRsZXJzIiwib2JzaWRpYW4iLCJlZGl0b3JWaWV3RmllbGQiLCJWaWV3UGx1Z2luIiwiUGx1Z2luU2V0dGluZ1RhYiIsIlNldHRpbmciLCJQbGF0Zm9ybSIsIlBsdWdpbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF1REE7QUFDTyxTQUFTLFNBQVMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUU7QUFDN0QsSUFBSSxTQUFTLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEtBQUssWUFBWSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLFVBQVUsT0FBTyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7QUFDaEgsSUFBSSxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxVQUFVLE9BQU8sRUFBRSxNQUFNLEVBQUU7QUFDL0QsUUFBUSxTQUFTLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0FBQ25HLFFBQVEsU0FBUyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsS0FB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QUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM1RCxRQUFBLE1BQU0sS0FBSyxHQUFHQyxpQkFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFakQsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDckMsT0FBTztBQUNSLFNBQUE7QUFFRCxRQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQ0MsbUJBQVUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDcEQ7QUFFRCxJQUFBLE1BQU0sQ0FBQyxDQUFTLEVBQUE7QUFDZCxRQUFBLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDdEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzVELFFBQUEsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTztBQUNSLFNBQUE7QUFFRCxRQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQ0MscUJBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDdEQ7SUFFRCxpQkFBaUIsR0FBQTtBQUNmLFFBQUEsTUFBTSxDQUFDLEdBQUdILHFCQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FB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 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsInNyYy9yb290L3JlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMudHMiLCJzcmMvb3BlcmF0aW9ucy9EZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmVPcGVyYXRpb24udHMiLCJzcmMvb3BlcmF0aW9ucy9EZWxldGVBbmRNZXJnZVdpdGhOZXh0TGluZU9wZXJhdGlvbi50cyIsInNyYy9vcGVyYXRpb25zL0RlbGV0ZVRpbGxMaW5lU3RhcnRPcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvRGVsZXRlU2hvdWxkSWdub3JlQnVsbGV0c0ZlYXR1cmUudHMiLCJzcmMvb3BlcmF0aW9ucy9FbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50T3BlcmF0aW9uLnRzIiwic3JjL29wZXJhdGlvbnMvRW5zdXJlQ3Vyc29ySXNJblVuZm9sZGVkTGluZU9wZXJhdGlvbi50cyIsInNyYy9mZWF0dXJlcy9FbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50RmVhdHVyZS50cyIsInNyYy9vcGVyYXRpb25zL01vdmVMZWZ0T3BlcmF0aW9uLnRzIiwic3JjL3V0aWxzL2lzRW1wdHlMaW5lT3JFbXB0eUNoZWNrYm94LnRzIiwic3JjL29wZXJhdGlvbnMvT3V0ZGVudElmTGluZUlzRW1wdHlPcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvRW50ZXJPdXRkZW50SWZMaW5lSXNFbXB0eUZlYXR1cmUudHMiLCJzcmMvcm9vdC9pbmRleC50cyIsInNyYy9vcGVyYXRpb25zL0NyZWF0ZU5ld0l0ZW1PcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvRW50ZXJTaG91bGRDcmVhdGVOZXdJdGVtT25DaGlsZExldmVsRmVhdHVyZS50cyIsInNyYy9mZWF0dXJlcy9Gb2xkRmVhdHVyZS50cyIsInNyYy9NeUVkaXRvci50cyIsInNyYy9mZWF0dXJlcy9MaW5lc0ZlYXR1cmUudHMiLCJzcmMvZmVhdHVyZXMvTGlzdHNTdHlsZXNGZWF0dXJlLnRzIiwic3JjL29wZXJhdGlvbnMvTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVPcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVGZWF0dXJlLnRzIiwic3JjL29wZXJhdGlvbnMvTW92ZURvd25PcGVyYXRpb24udHMiLCJzcmMvb3BlcmF0aW9ucy9Nb3ZlUmlnaHRPcGVyYXRpb24udHMiLCJzcmMvb3BlcmF0aW9ucy9Nb3ZlVXBPcGVyYXRpb24udHMiLCJzcmMvZmVhdHVyZXMvTW92ZUl0ZW1zRmVhdHVyZS50cyIsInNyYy9vcGVyYXRpb25zL1NlbGVjdEFsbE9wZXJhdGlvbi50cyIsInNyYy9mZWF0dXJlcy9TZWxlY3RBbGxGZWF0dXJlLnRzIiwic3JjL29wZXJhdGlvbnMvU2VsZWN0VGlsbExpbmVTdGFydE9wZXJhdGlvbi50cyIsInNyYy9mZWF0dXJlcy9TZWxlY3Rpb25TaG91bGRJZ25vcmVCdWxsZXRzRmVhdHVyZS50cyIsInNyYy9mZWF0dXJlcy9TZXR0aW5nc1RhYkZlYXR1cmUudHMiLCJzcmMvb3BlcmF0aW9ucy9DcmVhdGVOb3RlTGluZU9wZXJhdGlvbi50cyIsInNyYy9mZWF0dXJlcy9TaGlmdEVudGVyU2hvdWxkQ3JlYXRlTm90ZUZlYXR1cmUudHMiLCJzcmMvc2VydmljZXMvQXBwbHlDaGFuZ2VzU2VydmljZS50cyIsInNyYy9zZXJ2aWNlcy9JTUVTZXJ2aWNlLnRzIiwic3JjL3NlcnZpY2VzL0xvZ2dlclNlcnZpY2UudHMiLCJzcmMvc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlLnRzIiwic3JjL3NlcnZpY2VzL1BhcnNlclNlcnZpY2UudHMiLCJzcmMvc2VydmljZXMvUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UudHMiLCJzcmMvc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlLnRzIiwic3JjL09ic2lkaWFuT3V0bGluZXJQbHVnaW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XHJcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XHJcbiAgICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGIpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XHJcbiAgICB2YXIgdCA9IHt9O1xyXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXHJcbiAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXHJcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcclxuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcclxuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxyXG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdmFyIF9fY3JlYXRlQmluZGluZyA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7XHJcbiAgICBpZiAoIWRlc2MgfHwgKFwiZ2V0XCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkge1xyXG4gICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH07XHJcbiAgICB9XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIGRlc2MpO1xyXG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIG9bazJdID0gbVtrXTtcclxufSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHBvcnRTdGFyKG0sIG8pIHtcclxuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgcCkpIF9fY3JlYXRlQmluZGluZyhvLCBtLCBwKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fdmFsdWVzKG8pIHtcclxuICAgIHZhciBzID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7XHJcbiAgICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTtcclxuICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gXCJudW1iZXJcIikgcmV0dXJuIHtcclxuICAgICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7XHJcbiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZWFkKG8sIG4pIHtcclxuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcclxuICAgIGlmICghbSkgcmV0dXJuIG87XHJcbiAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cclxuICAgIGZpbmFsbHkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmaW5hbGx5IHsgaWYgKGUpIHRocm93IGUuZXJyb3I7IH1cclxuICAgIH1cclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuLyoqIEBkZXByZWNhdGVkICovXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZCgpIHtcclxuICAgIGZvciAodmFyIGFyID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIGFyID0gYXIuY29uY2F0KF9fcmVhZChhcmd1bWVudHNbaV0pKTtcclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuLyoqIEBkZXByZWNhdGVkICovXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5cygpIHtcclxuICAgIGZvciAodmFyIHMgPSAwLCBpID0gMCwgaWwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgaWw7IGkrKykgcyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xyXG4gICAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxyXG4gICAgICAgIGZvciAodmFyIGEgPSBhcmd1bWVudHNbaV0sIGogPSAwLCBqbCA9IGEubGVuZ3RoOyBqIDwgamw7IGorKywgaysrKVxyXG4gICAgICAgICAgICByW2tdID0gYVtqXTtcclxuICAgIHJldHVybiByO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheSh0bywgZnJvbSwgcGFjaykge1xyXG4gICAgaWYgKHBhY2sgfHwgYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgaSA9IDAsIGwgPSBmcm9tLmxlbmd0aCwgYXI7IGkgPCBsOyBpKyspIHtcclxuICAgICAgICBpZiAoYXIgfHwgIShpIGluIGZyb20pKSB7XHJcbiAgICAgICAgICAgIGlmICghYXIpIGFyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSwgMCwgaSk7XHJcbiAgICAgICAgICAgIGFyW2ldID0gZnJvbVtpXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdG8uY29uY2F0KGFyIHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGZyb20pKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXQodikge1xyXG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBfX2F3YWl0ID8gKHRoaXMudiA9IHYsIHRoaXMpIDogbmV3IF9fYXdhaXQodik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jR2VuZXJhdG9yKHRoaXNBcmcsIF9hcmd1bWVudHMsIGdlbmVyYXRvcikge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBnID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pLCBpLCBxID0gW107XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaWYgKGdbbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBuID09PSBcInJldHVyblwiIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgbSA9IG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdLCBpO1xyXG4gICAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlbbl0gPSBvW25dICYmIGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7IHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgZCwgdikgeyBQcm9taXNlLnJlc29sdmUodikudGhlbihmdW5jdGlvbih2KSB7IHJlc29sdmUoeyB2YWx1ZTogdiwgZG9uZTogZCB9KTsgfSwgcmVqZWN0KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcclxuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XHJcbiAgICByZXR1cm4gY29va2VkO1xyXG59O1xyXG5cclxudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xyXG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcclxuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xyXG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydERlZmF1bHQobW9kKSB7XHJcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHtcclxuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlclwiKTtcclxuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xyXG4gICAgcmV0dXJuIGtpbmQgPT09IFwibVwiID8gZiA6IGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRTZXQocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikge1xyXG4gICAgaWYgKGtpbmQgPT09IFwibVwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBtZXRob2QgaXMgbm90IHdyaXRhYmxlXCIpO1xyXG4gICAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgc2V0dGVyXCIpO1xyXG4gICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcclxuICAgIHJldHVybiAoa2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIsIHZhbHVlKSA6IGYgPyBmLnZhbHVlID0gdmFsdWUgOiBzdGF0ZS5zZXQocmVjZWl2ZXIsIHZhbHVlKSksIHZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEluKHN0YXRlLCByZWNlaXZlcikge1xyXG4gICAgaWYgKHJlY2VpdmVyID09PSBudWxsIHx8ICh0eXBlb2YgcmVjZWl2ZXIgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIHJlY2VpdmVyICE9PSBcImZ1bmN0aW9uXCIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHVzZSAnaW4nIG9wZXJhdG9yIG9uIG5vbi1vYmplY3RcIik7XHJcbiAgICByZXR1cm4gdHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciA9PT0gc3RhdGUgOiBzdGF0ZS5oYXMocmVjZWl2ZXIpO1xyXG59XHJcbiIsImltcG9ydCB7IExpc3QsIFJvb3QgfSBmcm9tIFwiLlwiO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0cyhyb290OiBSb290KSB7XG4gIGZ1bmN0aW9uIHZpc2l0KHBhcmVudDogUm9vdCB8IExpc3QpIHtcbiAgICBsZXQgaW5kZXggPSAxO1xuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBwYXJlbnQuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgaWYgKC9cXGQrXFwuLy50ZXN0KGNoaWxkLmdldEJ1bGxldCgpKSkge1xuICAgICAgICBjaGlsZC5yZXBsYXRlQnVsbGV0KGAke2luZGV4Kyt9LmApO1xuICAgICAgfVxuXG4gICAgICB2aXNpdChjaGlsZCk7XG4gICAgfVxuICB9XG5cbiAgdmlzaXQocm9vdCk7XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgTGlzdCwgTGlzdExpbmUsIFBvc2l0aW9uLCBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcbmltcG9ydCB7IHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMgfSBmcm9tIFwiLi4vcm9vdC9yZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzXCI7XG5cbmV4cG9ydCBjbGFzcyBEZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmVPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlQ3Vyc29yKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBjdXJzb3IgPSByb290LmdldEN1cnNvcigpO1xuICAgIGNvbnN0IGxpbmVzID0gbGlzdC5nZXRMaW5lc0luZm8oKTtcblxuICAgIGNvbnN0IGxpbmVObyA9IGxpbmVzLmZpbmRJbmRleChcbiAgICAgIChsKSA9PiBjdXJzb3IuY2ggPT09IGwuZnJvbS5jaCAmJiBjdXJzb3IubGluZSA9PT0gbC5mcm9tLmxpbmVcbiAgICApO1xuXG4gICAgaWYgKGxpbmVObyA9PT0gMCkge1xuICAgICAgdGhpcy5tZXJnZVdpdGhQcmV2aW91c0l0ZW0ocm9vdCwgY3Vyc29yLCBsaXN0KTtcbiAgICB9IGVsc2UgaWYgKGxpbmVObyA+IDApIHtcbiAgICAgIHRoaXMubWVyZ2VOb3Rlcyhyb290LCBjdXJzb3IsIGxpc3QsIGxpbmVzLCBsaW5lTm8pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VOb3RlcyhcbiAgICByb290OiBSb290LFxuICAgIGN1cnNvcjogUG9zaXRpb24sXG4gICAgbGlzdDogTGlzdCxcbiAgICBsaW5lczogTGlzdExpbmVbXSxcbiAgICBsaW5lTm86IG51bWJlclxuICApIHtcbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcblxuICAgIGNvbnN0IHByZXZMaW5lTm8gPSBsaW5lTm8gLSAxO1xuXG4gICAgcm9vdC5yZXBsYWNlQ3Vyc29yKHtcbiAgICAgIGxpbmU6IGN1cnNvci5saW5lIC0gMSxcbiAgICAgIGNoOiBsaW5lc1twcmV2TGluZU5vXS50ZXh0Lmxlbmd0aCArIGxpbmVzW3ByZXZMaW5lTm9dLmZyb20uY2gsXG4gICAgfSk7XG5cbiAgICBsaW5lc1twcmV2TGluZU5vXS50ZXh0ICs9IGxpbmVzW2xpbmVOb10udGV4dDtcbiAgICBsaW5lcy5zcGxpY2UobGluZU5vLCAxKTtcblxuICAgIGxpc3QucmVwbGFjZUxpbmVzKGxpbmVzLm1hcCgobCkgPT4gbC50ZXh0KSk7XG4gIH1cblxuICBwcml2YXRlIG1lcmdlV2l0aFByZXZpb3VzSXRlbShyb290OiBSb290LCBjdXJzb3I6IFBvc2l0aW9uLCBsaXN0OiBMaXN0KSB7XG4gICAgaWYgKHJvb3QuZ2V0Q2hpbGRyZW4oKVswXSA9PT0gbGlzdCAmJiBsaXN0LmdldENoaWxkcmVuKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuXG4gICAgY29uc3QgcHJldiA9IHJvb3QuZ2V0TGlzdFVuZGVyTGluZShjdXJzb3IubGluZSAtIDEpO1xuXG4gICAgaWYgKCFwcmV2KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYm90aEFyZUVtcHR5ID0gcHJldi5pc0VtcHR5KCkgJiYgbGlzdC5pc0VtcHR5KCk7XG4gICAgY29uc3QgcHJldklzRW1wdHlBbmRTYW1lTGV2ZWwgPVxuICAgICAgcHJldi5pc0VtcHR5KCkgJiYgIWxpc3QuaXNFbXB0eSgpICYmIHByZXYuZ2V0TGV2ZWwoKSA9PSBsaXN0LmdldExldmVsKCk7XG4gICAgY29uc3QgbGlzdElzRW1wdHlBbmRQcmV2SXNQYXJlbnQgPVxuICAgICAgbGlzdC5pc0VtcHR5KCkgJiYgcHJldi5nZXRMZXZlbCgpID09IGxpc3QuZ2V0TGV2ZWwoKSAtIDE7XG5cbiAgICBpZiAoYm90aEFyZUVtcHR5IHx8IHByZXZJc0VtcHR5QW5kU2FtZUxldmVsIHx8IGxpc3RJc0VtcHR5QW5kUHJldklzUGFyZW50KSB7XG4gICAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuXG4gICAgICBjb25zdCBwYXJlbnQgPSBsaXN0LmdldFBhcmVudCgpO1xuICAgICAgY29uc3QgcHJldkVuZCA9IHByZXYuZ2V0TGFzdExpbmVDb250ZW50RW5kKCk7XG5cbiAgICAgIGlmICghcHJldi5nZXROb3Rlc0luZGVudCgpICYmIGxpc3QuZ2V0Tm90ZXNJbmRlbnQoKSkge1xuICAgICAgICBwcmV2LnNldE5vdGVzSW5kZW50KFxuICAgICAgICAgIHByZXYuZ2V0Rmlyc3RMaW5lSW5kZW50KCkgK1xuICAgICAgICAgICAgbGlzdC5nZXROb3Rlc0luZGVudCgpLnNsaWNlKGxpc3QuZ2V0Rmlyc3RMaW5lSW5kZW50KCkubGVuZ3RoKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvbGRMaW5lcyA9IHByZXYuZ2V0TGluZXMoKTtcbiAgICAgIGNvbnN0IG5ld0xpbmVzID0gbGlzdC5nZXRMaW5lcygpO1xuICAgICAgb2xkTGluZXNbb2xkTGluZXMubGVuZ3RoIC0gMV0gKz0gbmV3TGluZXNbMF07XG4gICAgICBjb25zdCByZXN1bHRMaW5lcyA9IG9sZExpbmVzLmNvbmNhdChuZXdMaW5lcy5zbGljZSgxKSk7XG5cbiAgICAgIHByZXYucmVwbGFjZUxpbmVzKHJlc3VsdExpbmVzKTtcbiAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChsaXN0KTtcblxuICAgICAgZm9yIChjb25zdCBjIG9mIGxpc3QuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgICBsaXN0LnJlbW92ZUNoaWxkKGMpO1xuICAgICAgICBwcmV2LmFkZEFmdGVyQWxsKGMpO1xuICAgICAgfVxuXG4gICAgICByb290LnJlcGxhY2VDdXJzb3IocHJldkVuZCk7XG5cbiAgICAgIHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMocm9vdCk7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBEZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmVPcGVyYXRpb24gfSBmcm9tIFwiLi9EZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmVPcGVyYXRpb25cIjtcbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcblxuZXhwb3J0IGNsYXNzIERlbGV0ZUFuZE1lcmdlV2l0aE5leHRMaW5lT3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBkZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91czogRGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXNMaW5lT3BlcmF0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm9vdDogUm9vdCkge1xuICAgIHRoaXMuZGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXMgPVxuICAgICAgbmV3IERlbGV0ZUFuZE1lcmdlV2l0aFByZXZpb3VzTGluZU9wZXJhdGlvbihyb290KTtcbiAgfVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91cy5zaG91bGRTdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91cy5zaG91bGRVcGRhdGUoKTtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcbiAgICBjb25zdCBsaW5lcyA9IGxpc3QuZ2V0TGluZXNJbmZvKCk7XG5cbiAgICBjb25zdCBsaW5lTm8gPSBsaW5lcy5maW5kSW5kZXgoXG4gICAgICAobCkgPT4gY3Vyc29yLmNoID09PSBsLnRvLmNoICYmIGN1cnNvci5saW5lID09PSBsLnRvLmxpbmVcbiAgICApO1xuXG4gICAgaWYgKGxpbmVObyA9PT0gbGluZXMubGVuZ3RoIC0gMSkge1xuICAgICAgY29uc3QgbmV4dExpbmUgPSBsaW5lc1tsaW5lTm9dLnRvLmxpbmUgKyAxO1xuICAgICAgY29uc3QgbmV4dExpc3QgPSByb290LmdldExpc3RVbmRlckxpbmUobmV4dExpbmUpO1xuICAgICAgaWYgKCFuZXh0TGlzdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByb290LnJlcGxhY2VDdXJzb3IobmV4dExpc3QuZ2V0Rmlyc3RMaW5lQ29udGVudFN0YXJ0KCkpO1xuICAgICAgdGhpcy5kZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91cy5wZXJmb3JtKCk7XG4gICAgfSBlbHNlIGlmIChsaW5lTm8gPj0gMCkge1xuICAgICAgcm9vdC5yZXBsYWNlQ3Vyc29yKGxpbmVzW2xpbmVObyArIDFdLmZyb20pO1xuICAgICAgdGhpcy5kZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91cy5wZXJmb3JtKCk7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBEZWxldGVUaWxsTGluZVN0YXJ0T3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBzdG9wUHJvcGFnYXRpb24gPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cGRhdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG5cbiAgICBjb25zdCBjdXJzb3IgPSByb290LmdldEN1cnNvcigpO1xuICAgIGNvbnN0IGxpc3QgPSByb290LmdldExpc3RVbmRlckN1cnNvcigpO1xuICAgIGNvbnN0IGxpbmVzID0gbGlzdC5nZXRMaW5lc0luZm8oKTtcbiAgICBjb25zdCBsaW5lTm8gPSBsaW5lcy5maW5kSW5kZXgoKGwpID0+IGwuZnJvbS5saW5lID09PSBjdXJzb3IubGluZSk7XG5cbiAgICBsaW5lc1tsaW5lTm9dLnRleHQgPSBsaW5lc1tsaW5lTm9dLnRleHQuc2xpY2UoXG4gICAgICBjdXJzb3IuY2ggLSBsaW5lc1tsaW5lTm9dLmZyb20uY2hcbiAgICApO1xuXG4gICAgbGlzdC5yZXBsYWNlTGluZXMobGluZXMubWFwKChsKSA9PiBsLnRleHQpKTtcbiAgICByb290LnJlcGxhY2VDdXJzb3IobGluZXNbbGluZU5vXS5mcm9tKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUGx1Z2luXzIgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsga2V5bWFwIH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcblxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gXCIuL0ZlYXR1cmVcIjtcblxuaW1wb3J0IHsgTXlFZGl0b3IgfSBmcm9tIFwiLi4vTXlFZGl0b3JcIjtcbmltcG9ydCB7IERlbGV0ZUFuZE1lcmdlV2l0aE5leHRMaW5lT3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvRGVsZXRlQW5kTWVyZ2VXaXRoTmV4dExpbmVPcGVyYXRpb25cIjtcbmltcG9ydCB7IERlbGV0ZUFuZE1lcmdlV2l0aFByZXZpb3VzTGluZU9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL0RlbGV0ZUFuZE1lcmdlV2l0aFByZXZpb3VzTGluZU9wZXJhdGlvblwiO1xuaW1wb3J0IHsgRGVsZXRlVGlsbExpbmVTdGFydE9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL0RlbGV0ZVRpbGxMaW5lU3RhcnRPcGVyYXRpb25cIjtcbmltcG9ydCB7IElNRVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvSU1FU2VydmljZVwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL09ic2lkaWFuU2VydmljZVwiO1xuaW1wb3J0IHsgUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcIjtcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIERlbGV0ZVNob3VsZElnbm9yZUJ1bGxldHNGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMixcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWU6IElNRVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbjogUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oXG4gICAgICBrZXltYXAub2YoW1xuICAgICAgICB7XG4gICAgICAgICAga2V5OiBcIkJhY2tzcGFjZVwiLFxuICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICBjaGVjazogdGhpcy5jaGVjayxcbiAgICAgICAgICAgIHJ1bjogdGhpcy5kZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmUsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IFwiRGVsZXRlXCIsXG4gICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgcnVuOiB0aGlzLmRlbGV0ZUFuZE1lcmdlV2l0aE5leHRMaW5lLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbWFjOiBcIm0tQmFja3NwYWNlXCIsXG4gICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgcnVuOiB0aGlzLmRlbGV0ZVRpbGxMaW5lU3RhcnQsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7fVxuXG4gIHByaXZhdGUgY2hlY2sgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Muc3RpY2tDdXJzb3IgJiYgIXRoaXMuaW1lLmlzSU1FT3BlbmVkKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBkZWxldGVBbmRNZXJnZVdpdGhQcmV2aW91c0xpbmUgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgRGVsZXRlQW5kTWVyZ2VXaXRoUHJldmlvdXNMaW5lT3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcbiAgfTtcblxuICBwcml2YXRlIGRlbGV0ZVRpbGxMaW5lU3RhcnQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgRGVsZXRlVGlsbExpbmVTdGFydE9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG5cbiAgcHJpdmF0ZSBkZWxldGVBbmRNZXJnZVdpdGhOZXh0TGluZSA9IChlZGl0b3I6IE15RWRpdG9yKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucGVyZm9ybU9wZXJhdGlvbi5wZXJmb3JtT3BlcmF0aW9uKFxuICAgICAgKHJvb3QpID0+IG5ldyBEZWxldGVBbmRNZXJnZVdpdGhOZXh0TGluZU9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBFbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50T3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBzdG9wUHJvcGFnYXRpb24gPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cGRhdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuXG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBjb250ZW50U3RhcnQgPSBsaXN0LmdldEZpcnN0TGluZUNvbnRlbnRTdGFydCgpO1xuICAgIGNvbnN0IGxpbmVQcmVmaXggPVxuICAgICAgY29udGVudFN0YXJ0LmxpbmUgPT09IGN1cnNvci5saW5lXG4gICAgICAgID8gY29udGVudFN0YXJ0LmNoXG4gICAgICAgIDogbGlzdC5nZXROb3Rlc0luZGVudCgpLmxlbmd0aDtcblxuICAgIGlmIChjdXJzb3IuY2ggPCBsaW5lUHJlZml4KSB7XG4gICAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuICAgICAgcm9vdC5yZXBsYWNlQ3Vyc29yKHtcbiAgICAgICAgbGluZTogY3Vyc29yLmxpbmUsXG4gICAgICAgIGNoOiBsaW5lUHJlZml4LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBFbnN1cmVDdXJzb3JJc0luVW5mb2xkZWRMaW5lT3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBzdG9wUHJvcGFnYXRpb24gPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cGRhdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuXG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcblxuICAgIGNvbnN0IGxpc3QgPSByb290LmdldExpc3RVbmRlckN1cnNvcigpO1xuICAgIGlmICghbGlzdC5pc0ZvbGRlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZm9sZFJvb3QgPSBsaXN0LmdldFRvcEZvbGRSb290KCk7XG4gICAgY29uc3QgZmlyc3RMaW5lRW5kID0gZm9sZFJvb3QuZ2V0TGluZXNJbmZvKClbMF0udG87XG5cbiAgICBpZiAoY3Vyc29yLmxpbmUgPiBmaXJzdExpbmVFbmQubGluZSkge1xuICAgICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcbiAgICAgIHJvb3QucmVwbGFjZUN1cnNvcihmaXJzdExpbmVFbmQpO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgUGx1Z2luXzIgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsgRWRpdG9yU3RhdGUsIFRyYW5zYWN0aW9uIH0gZnJvbSBcIkBjb2RlbWlycm9yL3N0YXRlXCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4uL2ZlYXR1cmVzL0ZlYXR1cmVcIjtcbmltcG9ydCB7IEVuc3VyZUN1cnNvckluTGlzdENvbnRlbnRPcGVyYXRpb24gfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9FbnN1cmVDdXJzb3JJbkxpc3RDb250ZW50T3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBFbnN1cmVDdXJzb3JJc0luVW5mb2xkZWRMaW5lT3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvRW5zdXJlQ3Vyc29ySXNJblVuZm9sZGVkTGluZU9wZXJhdGlvblwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL09ic2lkaWFuU2VydmljZVwiO1xuaW1wb3J0IHsgUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcIjtcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIEVuc3VyZUN1cnNvckluTGlzdENvbnRlbnRGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMixcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbjogUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oXG4gICAgICBFZGl0b3JTdGF0ZS50cmFuc2FjdGlvbkV4dGVuZGVyLm9mKHRoaXMudHJhbnNhY3Rpb25FeHRlbmRlcilcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge31cblxuICBwcml2YXRlIHRyYW5zYWN0aW9uRXh0ZW5kZXIgPSAodHI6IFRyYW5zYWN0aW9uKTogbnVsbCA9PiB7XG4gICAgaWYgKCF0aGlzLnNldHRpbmdzLnN0aWNrQ3Vyc29yIHx8ICF0ci5zZWxlY3Rpb24pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMub2JzaWRpYW4uZ2V0RWRpdG9yRnJvbVN0YXRlKHRyLnN0YXJ0U3RhdGUpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZUN1cnNvckFjdGl2aXR5KGVkaXRvcik7XG4gICAgfSwgMCk7XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcblxuICBwcml2YXRlIGhhbmRsZUN1cnNvckFjdGl2aXR5ID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgRW5zdXJlQ3Vyc29ySXNJblVuZm9sZGVkTGluZU9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG5cbiAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgRW5zdXJlQ3Vyc29ySW5MaXN0Q29udGVudE9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5pbXBvcnQgeyByZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzIH0gZnJvbSBcIi4uL3Jvb3QvcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0c1wiO1xuXG5leHBvcnQgY2xhc3MgTW92ZUxlZnRPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlQ3Vyc29yKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG5cbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBwYXJlbnQgPSBsaXN0LmdldFBhcmVudCgpO1xuICAgIGNvbnN0IGdyYW5kUGFyZW50ID0gcGFyZW50LmdldFBhcmVudCgpO1xuXG4gICAgaWYgKCFncmFuZFBhcmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG5cbiAgICBjb25zdCBsaXN0U3RhcnRMaW5lQmVmb3JlID0gcm9vdC5nZXRDb250ZW50TGluZXNSYW5nZU9mKGxpc3QpWzBdO1xuICAgIGNvbnN0IGluZGVudFJtRnJvbSA9IHBhcmVudC5nZXRGaXJzdExpbmVJbmRlbnQoKS5sZW5ndGg7XG4gICAgY29uc3QgaW5kZW50Um1UaWxsID0gbGlzdC5nZXRGaXJzdExpbmVJbmRlbnQoKS5sZW5ndGg7XG5cbiAgICBwYXJlbnQucmVtb3ZlQ2hpbGQobGlzdCk7XG4gICAgZ3JhbmRQYXJlbnQuYWRkQWZ0ZXIocGFyZW50LCBsaXN0KTtcbiAgICBsaXN0LnVuaW5kZW50Q29udGVudChpbmRlbnRSbUZyb20sIGluZGVudFJtVGlsbCk7XG5cbiAgICBjb25zdCBsaXN0U3RhcnRMaW5lQWZ0ZXIgPSByb290LmdldENvbnRlbnRMaW5lc1JhbmdlT2YobGlzdClbMF07XG4gICAgY29uc3QgbGluZURpZmYgPSBsaXN0U3RhcnRMaW5lQWZ0ZXIgLSBsaXN0U3RhcnRMaW5lQmVmb3JlO1xuICAgIGNvbnN0IGNoRGlmZiA9IGluZGVudFJtVGlsbCAtIGluZGVudFJtRnJvbTtcblxuICAgIGNvbnN0IGN1cnNvciA9IHJvb3QuZ2V0Q3Vyc29yKCk7XG4gICAgcm9vdC5yZXBsYWNlQ3Vyc29yKHtcbiAgICAgIGxpbmU6IGN1cnNvci5saW5lICsgbGluZURpZmYsXG4gICAgICBjaDogY3Vyc29yLmNoIC0gY2hEaWZmLFxuICAgIH0pO1xuXG4gICAgcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0cyhyb290KTtcbiAgfVxufVxuIiwiZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHlMaW5lT3JFbXB0eUNoZWNrYm94KGxpbmU6IHN0cmluZykge1xuICByZXR1cm4gbGluZSA9PT0gXCJcIiB8fCBsaW5lID09PSBcIlsgXSBcIjtcbn1cbiIsImltcG9ydCB7IE1vdmVMZWZ0T3BlcmF0aW9uIH0gZnJvbSBcIi4vTW92ZUxlZnRPcGVyYXRpb25cIjtcbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcbmltcG9ydCB7IGlzRW1wdHlMaW5lT3JFbXB0eUNoZWNrYm94IH0gZnJvbSBcIi4uL3V0aWxzL2lzRW1wdHlMaW5lT3JFbXB0eUNoZWNrYm94XCI7XG5cbmV4cG9ydCBjbGFzcyBPdXRkZW50SWZMaW5lSXNFbXB0eU9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgbW92ZUxlZnRPcDogTW92ZUxlZnRPcGVyYXRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7XG4gICAgdGhpcy5tb3ZlTGVmdE9wID0gbmV3IE1vdmVMZWZ0T3BlcmF0aW9uKHJvb3QpO1xuICB9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLm1vdmVMZWZ0T3Auc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubW92ZUxlZnRPcC5zaG91bGRVcGRhdGUoKTtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgbGluZXMgPSBsaXN0LmdldExpbmVzKCk7XG5cbiAgICBpZiAoXG4gICAgICBsaW5lcy5sZW5ndGggPiAxIHx8XG4gICAgICAhaXNFbXB0eUxpbmVPckVtcHR5Q2hlY2tib3gobGluZXNbMF0pIHx8XG4gICAgICBsaXN0LmdldExldmVsKCkgPT09IDFcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm1vdmVMZWZ0T3AucGVyZm9ybSgpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBQbHVnaW5fMiB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBQcmVjIH0gZnJvbSBcIkBjb2RlbWlycm9yL3N0YXRlXCI7XG5pbXBvcnQgeyBrZXltYXAgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivdmlld1wiO1xuXG5pbXBvcnQgeyBNeUVkaXRvciB9IGZyb20gXCIuLi9NeUVkaXRvclwiO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gXCIuLi9mZWF0dXJlcy9GZWF0dXJlXCI7XG5pbXBvcnQgeyBPdXRkZW50SWZMaW5lSXNFbXB0eU9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL091dGRlbnRJZkxpbmVJc0VtcHR5T3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBJTUVTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL0lNRVNlcnZpY2VcIjtcbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1BlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBFbnRlck91dGRlbnRJZkxpbmVJc0VtcHR5RmVhdHVyZSBpbXBsZW1lbnRzIEZlYXR1cmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsdWdpbjogUGx1Z2luXzIsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1lOiBJTUVTZXJ2aWNlLFxuICAgIHByaXZhdGUgb2JzaWRpYW46IE9ic2lkaWFuU2VydmljZSxcbiAgICBwcml2YXRlIHBlcmZvcm1PcGVyYXRpb246IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBsb2FkKCkge1xuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKFxuICAgICAgUHJlYy5oaWdoZXN0KFxuICAgICAgICBrZXltYXAub2YoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJFbnRlclwiLFxuICAgICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgICAgY2hlY2s6IHRoaXMuY2hlY2ssXG4gICAgICAgICAgICAgIHJ1bjogdGhpcy5ydW4sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICBdKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7fVxuXG4gIHByaXZhdGUgY2hlY2sgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3MuYmV0dGVyRW50ZXIgJiYgIXRoaXMuaW1lLmlzSU1FT3BlbmVkKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBydW4gPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgT3V0ZGVudElmTGluZUlzRW1wdHlPcGVyYXRpb24ocm9vdCksXG4gICAgICBlZGl0b3JcbiAgICApO1xuICB9O1xufVxuIiwiZXhwb3J0IGZ1bmN0aW9uIGNtcFBvcyhhOiBQb3NpdGlvbiwgYjogUG9zaXRpb24pIHtcbiAgcmV0dXJuIGEubGluZSAtIGIubGluZSB8fCBhLmNoIC0gYi5jaDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1heFBvcyhhOiBQb3NpdGlvbiwgYjogUG9zaXRpb24pIHtcbiAgcmV0dXJuIGNtcFBvcyhhLCBiKSA8IDAgPyBiIDogYTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1pblBvcyhhOiBQb3NpdGlvbiwgYjogUG9zaXRpb24pIHtcbiAgcmV0dXJuIGNtcFBvcyhhLCBiKSA8IDAgPyBhIDogYjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3NpdGlvbiB7XG4gIGNoOiBudW1iZXI7XG4gIGxpbmU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0TGluZSB7XG4gIHRleHQ6IHN0cmluZztcbiAgZnJvbTogUG9zaXRpb247XG4gIHRvOiBQb3NpdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSYW5nZSB7XG4gIGFuY2hvcjogUG9zaXRpb247XG4gIGhlYWQ6IFBvc2l0aW9uO1xufVxuXG5leHBvcnQgY2xhc3MgTGlzdCB7XG4gIHByaXZhdGUgcGFyZW50OiBMaXN0IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY2hpbGRyZW46IExpc3RbXSA9IFtdO1xuICBwcml2YXRlIG5vdGVzSW5kZW50OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBsaW5lczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvb3Q6IFJvb3QsXG4gICAgcHJpdmF0ZSBpbmRlbnQ6IHN0cmluZyxcbiAgICBwcml2YXRlIGJ1bGxldDogc3RyaW5nLFxuICAgIHByaXZhdGUgc3BhY2VBZnRlckJ1bGxldDogc3RyaW5nLFxuICAgIGZpcnN0TGluZTogc3RyaW5nLFxuICAgIHByaXZhdGUgZm9sZFJvb3Q6IGJvb2xlYW5cbiAgKSB7XG4gICAgdGhpcy5saW5lcy5wdXNoKGZpcnN0TGluZSk7XG4gIH1cblxuICBnZXROb3Rlc0luZGVudCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5ub3Rlc0luZGVudDtcbiAgfVxuXG4gIHNldE5vdGVzSW5kZW50KG5vdGVzSW5kZW50OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5ub3Rlc0luZGVudCAhPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBOb3RlcyBpbmRlbnQgYWxyZWFkeSBwcm92aWRlZGApO1xuICAgIH1cbiAgICB0aGlzLm5vdGVzSW5kZW50ID0gbm90ZXNJbmRlbnQ7XG4gIH1cblxuICBhZGRMaW5lKHRleHQ6IHN0cmluZykge1xuICAgIGlmICh0aGlzLm5vdGVzSW5kZW50ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbmFibGUgdG8gYWRkIGxpbmUsIG5vdGVzIGluZGVudCBzaG91bGQgYmUgcHJvdmlkZWQgZmlyc3RgXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMubGluZXMucHVzaCh0ZXh0KTtcbiAgfVxuXG4gIHJlcGxhY2VMaW5lcyhsaW5lczogc3RyaW5nW10pIHtcbiAgICBpZiAobGluZXMubGVuZ3RoID4gMSAmJiB0aGlzLm5vdGVzSW5kZW50ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbmFibGUgdG8gYWRkIGxpbmUsIG5vdGVzIGluZGVudCBzaG91bGQgYmUgcHJvdmlkZWQgZmlyc3RgXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMubGluZXMgPSBsaW5lcztcbiAgfVxuXG4gIGdldExpbmVDb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5saW5lcy5sZW5ndGg7XG4gIH1cblxuICBnZXRSb290KCkge1xuICAgIHJldHVybiB0aGlzLnJvb3Q7XG4gIH1cblxuICBnZXRDaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi5jb25jYXQoKTtcbiAgfVxuXG4gIGdldExpbmVzSW5mbygpOiBMaXN0TGluZVtdIHtcbiAgICBjb25zdCBzdGFydExpbmUgPSB0aGlzLnJvb3QuZ2V0Q29udGVudExpbmVzUmFuZ2VPZih0aGlzKVswXTtcblxuICAgIHJldHVybiB0aGlzLmxpbmVzLm1hcCgocm93LCBpKSA9PiB7XG4gICAgICBjb25zdCBsaW5lID0gc3RhcnRMaW5lICsgaTtcbiAgICAgIGNvbnN0IHN0YXJ0Q2ggPVxuICAgICAgICBpID09PSAwID8gdGhpcy5nZXRDb250ZW50U3RhcnRDaCgpIDogdGhpcy5ub3Rlc0luZGVudC5sZW5ndGg7XG4gICAgICBjb25zdCBlbmRDaCA9IHN0YXJ0Q2ggKyByb3cubGVuZ3RoO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0ZXh0OiByb3csXG4gICAgICAgIGZyb206IHsgbGluZSwgY2g6IHN0YXJ0Q2ggfSxcbiAgICAgICAgdG86IHsgbGluZSwgY2g6IGVuZENoIH0sXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0TGluZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmxpbmVzLmNvbmNhdCgpO1xuICB9XG5cbiAgZ2V0Rmlyc3RMaW5lQ29udGVudFN0YXJ0KCkge1xuICAgIGNvbnN0IHN0YXJ0TGluZSA9IHRoaXMucm9vdC5nZXRDb250ZW50TGluZXNSYW5nZU9mKHRoaXMpWzBdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmU6IHN0YXJ0TGluZSxcbiAgICAgIGNoOiB0aGlzLmdldENvbnRlbnRTdGFydENoKCksXG4gICAgfTtcbiAgfVxuXG4gIGdldExhc3RMaW5lQ29udGVudEVuZCgpIHtcbiAgICBjb25zdCBlbmRMaW5lID0gdGhpcy5yb290LmdldENvbnRlbnRMaW5lc1JhbmdlT2YodGhpcylbMV07XG4gICAgY29uc3QgZW5kQ2ggPVxuICAgICAgdGhpcy5saW5lcy5sZW5ndGggPT09IDFcbiAgICAgICAgPyB0aGlzLmdldENvbnRlbnRTdGFydENoKCkgKyB0aGlzLmxpbmVzWzBdLmxlbmd0aFxuICAgICAgICA6IHRoaXMubm90ZXNJbmRlbnQubGVuZ3RoICsgdGhpcy5saW5lc1t0aGlzLmxpbmVzLmxlbmd0aCAtIDFdLmxlbmd0aDtcblxuICAgIHJldHVybiB7XG4gICAgICBsaW5lOiBlbmRMaW5lLFxuICAgICAgY2g6IGVuZENoLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldENvbnRlbnRTdGFydENoKCkge1xuICAgIHJldHVybiB0aGlzLmluZGVudC5sZW5ndGggKyB0aGlzLmJ1bGxldC5sZW5ndGggKyAxO1xuICB9XG5cbiAgaXNGb2xkZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuZm9sZFJvb3QpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBhcmVudCkge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50LmlzRm9sZGVkKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaXNGb2xkUm9vdCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb2xkUm9vdDtcbiAgfVxuXG4gIGdldFRvcEZvbGRSb290KCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuICAgIGxldCB0bXA6IExpc3QgPSB0aGlzO1xuICAgIGxldCBmb2xkUm9vdDogTGlzdCB8IG51bGwgPSBudWxsO1xuICAgIHdoaWxlICh0bXApIHtcbiAgICAgIGlmICh0bXAuaXNGb2xkUm9vdCgpKSB7XG4gICAgICAgIGZvbGRSb290ID0gdG1wO1xuICAgICAgfVxuICAgICAgdG1wID0gdG1wLnBhcmVudDtcbiAgICB9XG4gICAgcmV0dXJuIGZvbGRSb290O1xuICB9XG5cbiAgZ2V0TGV2ZWwoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMucGFyZW50KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuZ2V0TGV2ZWwoKSArIDE7XG4gIH1cblxuICB1bmluZGVudENvbnRlbnQoZnJvbTogbnVtYmVyLCB0aWxsOiBudW1iZXIpIHtcbiAgICB0aGlzLmluZGVudCA9IHRoaXMuaW5kZW50LnNsaWNlKDAsIGZyb20pICsgdGhpcy5pbmRlbnQuc2xpY2UodGlsbCk7XG4gICAgaWYgKHRoaXMubm90ZXNJbmRlbnQgIT09IG51bGwpIHtcbiAgICAgIHRoaXMubm90ZXNJbmRlbnQgPVxuICAgICAgICB0aGlzLm5vdGVzSW5kZW50LnNsaWNlKDAsIGZyb20pICsgdGhpcy5ub3Rlc0luZGVudC5zbGljZSh0aWxsKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgIGNoaWxkLnVuaW5kZW50Q29udGVudChmcm9tLCB0aWxsKTtcbiAgICB9XG4gIH1cblxuICBpbmRlbnRDb250ZW50KGluZGVudFBvczogbnVtYmVyLCBpbmRlbnRDaGFyczogc3RyaW5nKSB7XG4gICAgdGhpcy5pbmRlbnQgPVxuICAgICAgdGhpcy5pbmRlbnQuc2xpY2UoMCwgaW5kZW50UG9zKSArXG4gICAgICBpbmRlbnRDaGFycyArXG4gICAgICB0aGlzLmluZGVudC5zbGljZShpbmRlbnRQb3MpO1xuICAgIGlmICh0aGlzLm5vdGVzSW5kZW50ICE9PSBudWxsKSB7XG4gICAgICB0aGlzLm5vdGVzSW5kZW50ID1cbiAgICAgICAgdGhpcy5ub3Rlc0luZGVudC5zbGljZSgwLCBpbmRlbnRQb3MpICtcbiAgICAgICAgaW5kZW50Q2hhcnMgK1xuICAgICAgICB0aGlzLm5vdGVzSW5kZW50LnNsaWNlKGluZGVudFBvcyk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICBjaGlsZC5pbmRlbnRDb250ZW50KGluZGVudFBvcywgaW5kZW50Q2hhcnMpO1xuICAgIH1cbiAgfVxuXG4gIGdldEZpcnN0TGluZUluZGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbmRlbnQ7XG4gIH1cblxuICBnZXRCdWxsZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYnVsbGV0O1xuICB9XG5cbiAgZ2V0U3BhY2VBZnRlckJ1bGxldCgpIHtcbiAgICByZXR1cm4gdGhpcy5zcGFjZUFmdGVyQnVsbGV0O1xuICB9XG5cbiAgcmVwbGF0ZUJ1bGxldChidWxsZXQ6IHN0cmluZykge1xuICAgIHRoaXMuYnVsbGV0ID0gYnVsbGV0O1xuICB9XG5cbiAgZ2V0UGFyZW50KCkge1xuICAgIHJldHVybiB0aGlzLnBhcmVudDtcbiAgfVxuXG4gIGFkZEJlZm9yZUFsbChsaXN0OiBMaXN0KSB7XG4gICAgdGhpcy5jaGlsZHJlbi51bnNoaWZ0KGxpc3QpO1xuICAgIGxpc3QucGFyZW50ID0gdGhpcztcbiAgfVxuXG4gIGFkZEFmdGVyQWxsKGxpc3Q6IExpc3QpIHtcbiAgICB0aGlzLmNoaWxkcmVuLnB1c2gobGlzdCk7XG4gICAgbGlzdC5wYXJlbnQgPSB0aGlzO1xuICB9XG5cbiAgcmVtb3ZlQ2hpbGQobGlzdDogTGlzdCkge1xuICAgIGNvbnN0IGkgPSB0aGlzLmNoaWxkcmVuLmluZGV4T2YobGlzdCk7XG4gICAgdGhpcy5jaGlsZHJlbi5zcGxpY2UoaSwgMSk7XG4gICAgbGlzdC5wYXJlbnQgPSBudWxsO1xuICB9XG5cbiAgYWRkQmVmb3JlKGJlZm9yZTogTGlzdCwgbGlzdDogTGlzdCkge1xuICAgIGNvbnN0IGkgPSB0aGlzLmNoaWxkcmVuLmluZGV4T2YoYmVmb3JlKTtcbiAgICB0aGlzLmNoaWxkcmVuLnNwbGljZShpLCAwLCBsaXN0KTtcbiAgICBsaXN0LnBhcmVudCA9IHRoaXM7XG4gIH1cblxuICBhZGRBZnRlcihiZWZvcmU6IExpc3QsIGxpc3Q6IExpc3QpIHtcbiAgICBjb25zdCBpID0gdGhpcy5jaGlsZHJlbi5pbmRleE9mKGJlZm9yZSk7XG4gICAgdGhpcy5jaGlsZHJlbi5zcGxpY2UoaSArIDEsIDAsIGxpc3QpO1xuICAgIGxpc3QucGFyZW50ID0gdGhpcztcbiAgfVxuXG4gIGdldFByZXZTaWJsaW5nT2YobGlzdDogTGlzdCkge1xuICAgIGNvbnN0IGkgPSB0aGlzLmNoaWxkcmVuLmluZGV4T2YobGlzdCk7XG4gICAgcmV0dXJuIGkgPiAwID8gdGhpcy5jaGlsZHJlbltpIC0gMV0gOiBudWxsO1xuICB9XG5cbiAgZ2V0TmV4dFNpYmxpbmdPZihsaXN0OiBMaXN0KSB7XG4gICAgY29uc3QgaSA9IHRoaXMuY2hpbGRyZW4uaW5kZXhPZihsaXN0KTtcbiAgICByZXR1cm4gaSA+PSAwICYmIGkgPCB0aGlzLmNoaWxkcmVuLmxlbmd0aCA/IHRoaXMuY2hpbGRyZW5baSArIDFdIDogbnVsbDtcbiAgfVxuXG4gIGlzRW1wdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcHJpbnQoKSB7XG4gICAgbGV0IHJlcyA9IFwiXCI7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlcyArPVxuICAgICAgICBpID09PSAwXG4gICAgICAgICAgPyB0aGlzLmluZGVudCArIHRoaXMuYnVsbGV0ICsgdGhpcy5zcGFjZUFmdGVyQnVsbGV0XG4gICAgICAgICAgOiB0aGlzLm5vdGVzSW5kZW50O1xuICAgICAgcmVzICs9IHRoaXMubGluZXNbaV07XG4gICAgICByZXMgKz0gXCJcXG5cIjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgIHJlcyArPSBjaGlsZC5wcmludCgpO1xuICAgIH1cblxuICAgIHJldHVybiByZXM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvb3Qge1xuICBwcml2YXRlIHJvb3RMaXN0ID0gbmV3IExpc3QodGhpcywgXCJcIiwgXCJcIiwgXCJcIiwgXCJcIiwgZmFsc2UpO1xuICBwcml2YXRlIHNlbGVjdGlvbnM6IFJhbmdlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0YXJ0OiBQb3NpdGlvbixcbiAgICBwcml2YXRlIGVuZDogUG9zaXRpb24sXG4gICAgc2VsZWN0aW9uczogUmFuZ2VbXVxuICApIHtcbiAgICB0aGlzLnJlcGxhY2VTZWxlY3Rpb25zKHNlbGVjdGlvbnMpO1xuICB9XG5cbiAgZ2V0Um9vdExpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMucm9vdExpc3Q7XG4gIH1cblxuICBnZXRSYW5nZSgpOiBbUG9zaXRpb24sIFBvc2l0aW9uXSB7XG4gICAgcmV0dXJuIFt7IC4uLnRoaXMuc3RhcnQgfSwgeyAuLi50aGlzLmVuZCB9XTtcbiAgfVxuXG4gIGdldFNlbGVjdGlvbnMoKTogUmFuZ2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9ucy5tYXAoKHMpID0+ICh7XG4gICAgICBhbmNob3I6IHsgLi4ucy5hbmNob3IgfSxcbiAgICAgIGhlYWQ6IHsgLi4ucy5oZWFkIH0sXG4gICAgfSkpO1xuICB9XG5cbiAgaGFzU2luZ2xlQ3Vyc29yKCkge1xuICAgIGlmICghdGhpcy5oYXNTaW5nbGVTZWxlY3Rpb24oKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uc1swXTtcblxuICAgIHJldHVybiAoXG4gICAgICBzZWxlY3Rpb24uYW5jaG9yLmxpbmUgPT09IHNlbGVjdGlvbi5oZWFkLmxpbmUgJiZcbiAgICAgIHNlbGVjdGlvbi5hbmNob3IuY2ggPT09IHNlbGVjdGlvbi5oZWFkLmNoXG4gICAgKTtcbiAgfVxuXG4gIGhhc1NpbmdsZVNlbGVjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25zLmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIGdldFNlbGVjdGlvbigpIHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGlvbnNbdGhpcy5zZWxlY3Rpb25zLmxlbmd0aCAtIDFdO1xuXG4gICAgY29uc3QgZnJvbSA9XG4gICAgICBzZWxlY3Rpb24uYW5jaG9yLmNoID4gc2VsZWN0aW9uLmhlYWQuY2hcbiAgICAgICAgPyBzZWxlY3Rpb24uaGVhZC5jaFxuICAgICAgICA6IHNlbGVjdGlvbi5hbmNob3IuY2g7XG4gICAgY29uc3QgdG8gPVxuICAgICAgc2VsZWN0aW9uLmFuY2hvci5jaCA+IHNlbGVjdGlvbi5oZWFkLmNoXG4gICAgICAgID8gc2VsZWN0aW9uLmFuY2hvci5jaFxuICAgICAgICA6IHNlbGVjdGlvbi5oZWFkLmNoO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnNlbGVjdGlvbixcbiAgICAgIGZyb20sXG4gICAgICB0byxcbiAgICB9O1xuICB9XG5cbiAgZ2V0Q3Vyc29yKCkge1xuICAgIHJldHVybiB7IC4uLnRoaXMuc2VsZWN0aW9uc1t0aGlzLnNlbGVjdGlvbnMubGVuZ3RoIC0gMV0uaGVhZCB9O1xuICB9XG5cbiAgcmVwbGFjZUN1cnNvcihjdXJzb3I6IFBvc2l0aW9uKSB7XG4gICAgdGhpcy5zZWxlY3Rpb25zID0gW3sgYW5jaG9yOiBjdXJzb3IsIGhlYWQ6IGN1cnNvciB9XTtcbiAgfVxuXG4gIHJlcGxhY2VTZWxlY3Rpb25zKHNlbGVjdGlvbnM6IFJhbmdlW10pIHtcbiAgICBpZiAoc2VsZWN0aW9ucy5sZW5ndGggPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBjcmVhdGUgUm9vdCB3aXRob3V0IHNlbGVjdGlvbnNgKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3Rpb25zID0gc2VsZWN0aW9ucztcbiAgfVxuXG4gIGdldExpc3RVbmRlckN1cnNvcigpOiBMaXN0IHtcbiAgICByZXR1cm4gdGhpcy5nZXRMaXN0VW5kZXJMaW5lKHRoaXMuZ2V0Q3Vyc29yKCkubGluZSk7XG4gIH1cblxuICBnZXRMaXN0VW5kZXJMaW5lKGxpbmU6IG51bWJlcikge1xuICAgIGlmIChsaW5lIDwgdGhpcy5zdGFydC5saW5lIHx8IGxpbmUgPiB0aGlzLmVuZC5saW5lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdDogTGlzdCA9IG51bGw7XG4gICAgbGV0IGluZGV4OiBudW1iZXIgPSB0aGlzLnN0YXJ0LmxpbmU7XG5cbiAgICBjb25zdCB2aXNpdEFyciA9IChsbDogTGlzdFtdKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGwgb2YgbGwpIHtcbiAgICAgICAgY29uc3QgbGlzdEZyb21MaW5lID0gaW5kZXg7XG4gICAgICAgIGNvbnN0IGxpc3RUaWxsTGluZSA9IGxpc3RGcm9tTGluZSArIGwuZ2V0TGluZUNvdW50KCkgLSAxO1xuXG4gICAgICAgIGlmIChsaW5lID49IGxpc3RGcm9tTGluZSAmJiBsaW5lIDw9IGxpc3RUaWxsTGluZSkge1xuICAgICAgICAgIHJlc3VsdCA9IGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaW5kZXggPSBsaXN0VGlsbExpbmUgKyAxO1xuICAgICAgICAgIHZpc2l0QXJyKGwuZ2V0Q2hpbGRyZW4oKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICB2aXNpdEFycih0aGlzLnJvb3RMaXN0LmdldENoaWxkcmVuKCkpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldENvbnRlbnRMaW5lc1JhbmdlT2YobGlzdDogTGlzdCk6IFtudW1iZXIsIG51bWJlcl0gfCBudWxsIHtcbiAgICBsZXQgcmVzdWx0OiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGxpbmU6IG51bWJlciA9IHRoaXMuc3RhcnQubGluZTtcblxuICAgIGNvbnN0IHZpc2l0QXJyID0gKGxsOiBMaXN0W10pID0+IHtcbiAgICAgIGZvciAoY29uc3QgbCBvZiBsbCkge1xuICAgICAgICBjb25zdCBsaXN0RnJvbUxpbmUgPSBsaW5lO1xuICAgICAgICBjb25zdCBsaXN0VGlsbExpbmUgPSBsaXN0RnJvbUxpbmUgKyBsLmdldExpbmVDb3VudCgpIC0gMTtcblxuICAgICAgICBpZiAobCA9PT0gbGlzdCkge1xuICAgICAgICAgIHJlc3VsdCA9IFtsaXN0RnJvbUxpbmUsIGxpc3RUaWxsTGluZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGluZSA9IGxpc3RUaWxsTGluZSArIDE7XG4gICAgICAgICAgdmlzaXRBcnIobC5nZXRDaGlsZHJlbigpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdmlzaXRBcnIodGhpcy5yb290TGlzdC5nZXRDaGlsZHJlbigpKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXRDaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy5yb290TGlzdC5nZXRDaGlsZHJlbigpO1xuICB9XG5cbiAgcHJpbnQoKSB7XG4gICAgbGV0IHJlcyA9IFwiXCI7XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMucm9vdExpc3QuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgcmVzICs9IGNoaWxkLnByaW50KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcy5yZXBsYWNlKC9cXG4kLywgXCJcIik7XG4gIH1cbn1cbiIsImltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBMaXN0LCBQb3NpdGlvbiwgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5pbXBvcnQgeyByZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzIH0gZnJvbSBcIi4uL3Jvb3QvcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0c1wiO1xuaW1wb3J0IHsgaXNFbXB0eUxpbmVPckVtcHR5Q2hlY2tib3ggfSBmcm9tIFwiLi4vdXRpbHMvaXNFbXB0eUxpbmVPckVtcHR5Q2hlY2tib3hcIjtcblxuZXhwb3J0IGludGVyZmFjZSBHZXRab29tUmFuZ2Uge1xuICBnZXRab29tUmFuZ2UoKTogeyBmcm9tOiBQb3NpdGlvbjsgdG86IFBvc2l0aW9uIH0gfCBudWxsO1xufVxuXG5leHBvcnQgY2xhc3MgQ3JlYXRlTmV3SXRlbU9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgc3RvcFByb3BhZ2F0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm9vdDogUm9vdCxcbiAgICBwcml2YXRlIGRlZmF1bHRJbmRlbnRDaGFyczogc3RyaW5nLFxuICAgIHByaXZhdGUgZ2V0Wm9vbVJhbmdlOiBHZXRab29tUmFuZ2VcbiAgKSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZVNlbGVjdGlvbigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0aW9uID0gcm9vdC5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoIXNlbGVjdGlvbiB8fCBzZWxlY3Rpb24uYW5jaG9yLmxpbmUgIT09IHNlbGVjdGlvbi5oZWFkLmxpbmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBsaW5lcyA9IGxpc3QuZ2V0TGluZXNJbmZvKCk7XG5cbiAgICBpZiAobGluZXMubGVuZ3RoID09PSAxICYmIGlzRW1wdHlMaW5lT3JFbXB0eUNoZWNrYm94KGxpbmVzWzBdLnRleHQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcbiAgICBjb25zdCBsaW5lVW5kZXJDdXJzb3IgPSBsaW5lcy5maW5kKChsKSA9PiBsLmZyb20ubGluZSA9PT0gY3Vyc29yLmxpbmUpO1xuXG4gICAgaWYgKGN1cnNvci5jaCA8IGxpbmVVbmRlckN1cnNvci5mcm9tLmNoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBvbGRMaW5lcywgbmV3TGluZXMgfSA9IGxpbmVzLnJlZHVjZShcbiAgICAgIChhY2MsIGxpbmUpID0+IHtcbiAgICAgICAgaWYgKGN1cnNvci5saW5lID4gbGluZS5mcm9tLmxpbmUpIHtcbiAgICAgICAgICBhY2Mub2xkTGluZXMucHVzaChsaW5lLnRleHQpO1xuICAgICAgICB9IGVsc2UgaWYgKGN1cnNvci5saW5lID09PSBsaW5lLmZyb20ubGluZSkge1xuICAgICAgICAgIGNvbnN0IGxlZnQgPSBsaW5lLnRleHQuc2xpY2UoMCwgc2VsZWN0aW9uLmZyb20gLSBsaW5lLmZyb20uY2gpO1xuICAgICAgICAgIGNvbnN0IHJpZ2h0ID0gbGluZS50ZXh0LnNsaWNlKHNlbGVjdGlvbi50byAtIGxpbmUuZnJvbS5jaCk7XG4gICAgICAgICAgYWNjLm9sZExpbmVzLnB1c2gobGVmdCk7XG4gICAgICAgICAgYWNjLm5ld0xpbmVzLnB1c2gocmlnaHQpO1xuICAgICAgICB9IGVsc2UgaWYgKGN1cnNvci5saW5lIDwgbGluZS5mcm9tLmxpbmUpIHtcbiAgICAgICAgICBhY2MubmV3TGluZXMucHVzaChsaW5lLnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG9sZExpbmVzOiBbXSxcbiAgICAgICAgbmV3TGluZXM6IFtdLFxuICAgICAgfVxuICAgICk7XG5cbiAgICBjb25zdCBjb2RlQmxvY2tCYWN0aWNrcyA9IG9sZExpbmVzLmpvaW4oXCJcXG5cIikuc3BsaXQoXCJgYGBcIikubGVuZ3RoIC0gMTtcbiAgICBjb25zdCBpc0luc2lkZUNvZGVibG9jayA9XG4gICAgICBjb2RlQmxvY2tCYWN0aWNrcyA+IDAgJiYgY29kZUJsb2NrQmFjdGlja3MgJSAyICE9PSAwO1xuXG4gICAgaWYgKGlzSW5zaWRlQ29kZWJsb2NrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG5cbiAgICBjb25zdCB6b29tUmFuZ2UgPSB0aGlzLmdldFpvb21SYW5nZS5nZXRab29tUmFuZ2UoKTtcbiAgICBjb25zdCBsaXN0SXNab29taW5nUm9vdCA9IEJvb2xlYW4oXG4gICAgICB6b29tUmFuZ2UgJiZcbiAgICAgICAgbGlzdC5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKS5saW5lID49IHpvb21SYW5nZS5mcm9tLmxpbmUgJiZcbiAgICAgICAgbGlzdC5nZXRMYXN0TGluZUNvbnRlbnRFbmQoKS5saW5lIDw9IHpvb21SYW5nZS5mcm9tLmxpbmVcbiAgICApO1xuXG4gICAgY29uc3QgaGFzQ2hpbGRyZW4gPSAhbGlzdC5pc0VtcHR5KCk7XG4gICAgY29uc3QgY2hpbGRJc0ZvbGRlZCA9IGxpc3QuaXNGb2xkUm9vdCgpO1xuICAgIGNvbnN0IGVuZFBvcyA9IGxpc3QuZ2V0TGFzdExpbmVDb250ZW50RW5kKCk7XG4gICAgY29uc3QgZW5kT2ZMaW5lID0gY3Vyc29yLmxpbmUgPT09IGVuZFBvcy5saW5lICYmIGN1cnNvci5jaCA9PT0gZW5kUG9zLmNoO1xuXG4gICAgY29uc3Qgb25DaGlsZExldmVsID1cbiAgICAgIGxpc3RJc1pvb21pbmdSb290IHx8IChoYXNDaGlsZHJlbiAmJiAhY2hpbGRJc0ZvbGRlZCAmJiBlbmRPZkxpbmUpO1xuXG4gICAgY29uc3QgaW5kZW50ID0gb25DaGlsZExldmVsXG4gICAgICA/IGhhc0NoaWxkcmVuXG4gICAgICAgID8gbGlzdC5nZXRDaGlsZHJlbigpWzBdLmdldEZpcnN0TGluZUluZGVudCgpXG4gICAgICAgIDogbGlzdC5nZXRGaXJzdExpbmVJbmRlbnQoKSArIHRoaXMuZGVmYXVsdEluZGVudENoYXJzXG4gICAgICA6IGxpc3QuZ2V0Rmlyc3RMaW5lSW5kZW50KCk7XG5cbiAgICBjb25zdCBidWxsZXQgPVxuICAgICAgb25DaGlsZExldmVsICYmIGhhc0NoaWxkcmVuXG4gICAgICAgID8gbGlzdC5nZXRDaGlsZHJlbigpWzBdLmdldEJ1bGxldCgpXG4gICAgICAgIDogbGlzdC5nZXRCdWxsZXQoKTtcblxuICAgIGNvbnN0IHNwYWNlQWZ0ZXJCdWxsZXQgPVxuICAgICAgb25DaGlsZExldmVsICYmIGhhc0NoaWxkcmVuXG4gICAgICAgID8gbGlzdC5nZXRDaGlsZHJlbigpWzBdLmdldFNwYWNlQWZ0ZXJCdWxsZXQoKVxuICAgICAgICA6IGxpc3QuZ2V0U3BhY2VBZnRlckJ1bGxldCgpO1xuXG4gICAgY29uc3QgcHJlZml4ID0gb2xkTGluZXNbMF0ubWF0Y2goL15cXFsuXFxdLykgPyBcIlsgXSBcIiA6IFwiXCI7XG5cbiAgICBjb25zdCBuZXdMaXN0ID0gbmV3IExpc3QoXG4gICAgICBsaXN0LmdldFJvb3QoKSxcbiAgICAgIGluZGVudCxcbiAgICAgIGJ1bGxldCxcbiAgICAgIHNwYWNlQWZ0ZXJCdWxsZXQsXG4gICAgICBwcmVmaXggKyBuZXdMaW5lcy5zaGlmdCgpLFxuICAgICAgZmFsc2VcbiAgICApO1xuXG4gICAgaWYgKG5ld0xpbmVzLmxlbmd0aCA+IDApIHtcbiAgICAgIG5ld0xpc3Quc2V0Tm90ZXNJbmRlbnQobGlzdC5nZXROb3Rlc0luZGVudCgpKTtcbiAgICAgIGZvciAoY29uc3QgbGluZSBvZiBuZXdMaW5lcykge1xuICAgICAgICBuZXdMaXN0LmFkZExpbmUobGluZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG9uQ2hpbGRMZXZlbCkge1xuICAgICAgbGlzdC5hZGRCZWZvcmVBbGwobmV3TGlzdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghY2hpbGRJc0ZvbGRlZCB8fCAhZW5kT2ZMaW5lKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gbGlzdC5nZXRDaGlsZHJlbigpO1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICAgICAgbGlzdC5yZW1vdmVDaGlsZChjaGlsZCk7XG4gICAgICAgICAgbmV3TGlzdC5hZGRBZnRlckFsbChjaGlsZCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGlzdC5nZXRQYXJlbnQoKS5hZGRBZnRlcihsaXN0LCBuZXdMaXN0KTtcbiAgICB9XG5cbiAgICBsaXN0LnJlcGxhY2VMaW5lcyhvbGRMaW5lcyk7XG5cbiAgICBjb25zdCBuZXdMaXN0U3RhcnQgPSBuZXdMaXN0LmdldEZpcnN0TGluZUNvbnRlbnRTdGFydCgpO1xuICAgIHJvb3QucmVwbGFjZUN1cnNvcih7XG4gICAgICBsaW5lOiBuZXdMaXN0U3RhcnQubGluZSxcbiAgICAgIGNoOiBuZXdMaXN0U3RhcnQuY2ggKyBwcmVmaXgubGVuZ3RoLFxuICAgIH0pO1xuXG4gICAgcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0cyhyb290KTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUGx1Z2luXzIgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsgUHJlYyB9IGZyb20gXCJAY29kZW1pcnJvci9zdGF0ZVwiO1xuaW1wb3J0IHsga2V5bWFwIH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcblxuaW1wb3J0IHsgTXlFZGl0b3IgfSBmcm9tIFwiLi4vTXlFZGl0b3JcIjtcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi4vZmVhdHVyZXMvRmVhdHVyZVwiO1xuaW1wb3J0IHsgQ3JlYXRlTmV3SXRlbU9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL0NyZWF0ZU5ld0l0ZW1PcGVyYXRpb25cIjtcbmltcG9ydCB7IElNRVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvSU1FU2VydmljZVwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL09ic2lkaWFuU2VydmljZVwiO1xuaW1wb3J0IHsgUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcIjtcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIEVudGVyU2hvdWxkQ3JlYXRlTmV3SXRlbUZlYXR1cmUgaW1wbGVtZW50cyBGZWF0dXJlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbHVnaW46IFBsdWdpbl8yLFxuICAgIHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIGltZTogSU1FU2VydmljZSxcbiAgICBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJmb3JtT3BlcmF0aW9uOiBQZXJmb3JtT3BlcmF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnBsdWdpbi5yZWdpc3RlckVkaXRvckV4dGVuc2lvbihcbiAgICAgIFByZWMuaGlnaGVzdChcbiAgICAgICAga2V5bWFwLm9mKFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFwiRW50ZXJcIixcbiAgICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgICBydW46IHRoaXMucnVuLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge31cblxuICBwcml2YXRlIGNoZWNrID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmJldHRlckVudGVyICYmICF0aGlzLmltZS5pc0lNRU9wZW5lZCgpO1xuICB9O1xuXG4gIHByaXZhdGUgcnVuID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICBjb25zdCB6b29tUmFuZ2UgPSBlZGl0b3IuZ2V0Wm9vbVJhbmdlKCk7XG5cbiAgICBjb25zdCByZXMgPSB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PlxuICAgICAgICBuZXcgQ3JlYXRlTmV3SXRlbU9wZXJhdGlvbihcbiAgICAgICAgICByb290LFxuICAgICAgICAgIHRoaXMub2JzaWRpYW4uZ2V0RGVmYXVsdEluZGVudENoYXJzKCksXG4gICAgICAgICAge1xuICAgICAgICAgICAgZ2V0Wm9vbVJhbmdlOiAoKSA9PiB6b29tUmFuZ2UsXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgZWRpdG9yXG4gICAgKTtcblxuICAgIGlmIChyZXMuc2hvdWxkVXBkYXRlICYmIHpvb21SYW5nZSkge1xuICAgICAgZWRpdG9yLnpvb21Jbih6b29tUmFuZ2UuZnJvbS5saW5lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xuICB9O1xufVxuIiwiaW1wb3J0IHsgTm90aWNlLCBQbHVnaW5fMiB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4vRmVhdHVyZVwiO1xuXG5pbXBvcnQgeyBNeUVkaXRvciB9IGZyb20gXCIuLi9NeUVkaXRvclwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL09ic2lkaWFuU2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgRm9sZEZlYXR1cmUgaW1wbGVtZW50cyBGZWF0dXJlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwbHVnaW46IFBsdWdpbl8yLCBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2UpIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnBsdWdpbi5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiBcImZvbGRcIixcbiAgICAgIGljb246IFwiY2hldnJvbnMtZG93bi11cFwiLFxuICAgICAgbmFtZTogXCJGb2xkIHRoZSBsaXN0XCIsXG4gICAgICBlZGl0b3JDYWxsYmFjazogdGhpcy5vYnNpZGlhbi5jcmVhdGVFZGl0b3JDYWxsYmFjayh0aGlzLmZvbGQpLFxuICAgICAgaG90a2V5czogW1xuICAgICAgICB7XG4gICAgICAgICAgbW9kaWZpZXJzOiBbXCJNb2RcIl0sXG4gICAgICAgICAga2V5OiBcIkFycm93VXBcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnBsdWdpbi5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiBcInVuZm9sZFwiLFxuICAgICAgaWNvbjogXCJjaGV2cm9ucy11cC1kb3duXCIsXG4gICAgICBuYW1lOiBcIlVuZm9sZCB0aGUgbGlzdFwiLFxuICAgICAgZWRpdG9yQ2FsbGJhY2s6IHRoaXMub2JzaWRpYW4uY3JlYXRlRWRpdG9yQ2FsbGJhY2sodGhpcy51bmZvbGQpLFxuICAgICAgaG90a2V5czogW1xuICAgICAgICB7XG4gICAgICAgICAgbW9kaWZpZXJzOiBbXCJNb2RcIl0sXG4gICAgICAgICAga2V5OiBcIkFycm93RG93blwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZCgpIHt9XG5cbiAgcHJpdmF0ZSBzZXRGb2xkKGVkaXRvcjogTXlFZGl0b3IsIHR5cGU6IFwiZm9sZFwiIHwgXCJ1bmZvbGRcIikge1xuICAgIGlmICghdGhpcy5vYnNpZGlhbi5nZXRPYnNpZGlhbkZvbGRTZXR0aW5ncygpLmZvbGRJbmRlbnQpIHtcbiAgICAgIG5ldyBOb3RpY2UoXG4gICAgICAgIGBVbmFibGUgdG8gJHt0eXBlfSBiZWNhdXNlIGZvbGRpbmcgaXMgZGlzYWJsZWQuIFBsZWFzZSBlbmFibGUgXCJGb2xkIGluZGVudFwiIGluIE9ic2lkaWFuIHNldHRpbmdzLmAsXG4gICAgICAgIDUwMDBcbiAgICAgICk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJzb3IgPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XG5cbiAgICBpZiAodHlwZSA9PT0gXCJmb2xkXCIpIHtcbiAgICAgIGVkaXRvci5mb2xkKGN1cnNvci5saW5lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWRpdG9yLnVuZm9sZChjdXJzb3IubGluZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGZvbGQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldEZvbGQoZWRpdG9yLCBcImZvbGRcIik7XG4gIH07XG5cbiAgcHJpdmF0ZSB1bmZvbGQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldEZvbGQoZWRpdG9yLCBcInVuZm9sZFwiKTtcbiAgfTtcbn1cbiIsIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7XG4gIGZvbGRFZmZlY3QsXG4gIGZvbGRhYmxlLFxuICBmb2xkZWRSYW5nZXMsXG4gIHVuZm9sZEVmZmVjdCxcbn0gZnJvbSBcIkBjb2RlbWlycm9yL2xhbmd1YWdlXCI7XG5pbXBvcnQgeyBFZGl0b3JWaWV3LCBydW5TY29wZUhhbmRsZXJzIH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcblxuZXhwb3J0IGNsYXNzIE15RWRpdG9yUG9zaXRpb24ge1xuICBsaW5lOiBudW1iZXI7XG4gIGNoOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBNeUVkaXRvclJhbmdlIHtcbiAgZnJvbTogTXlFZGl0b3JQb3NpdGlvbjtcbiAgdG86IE15RWRpdG9yUG9zaXRpb247XG59XG5cbmV4cG9ydCBjbGFzcyBNeUVkaXRvclNlbGVjdGlvbiB7XG4gIGFuY2hvcjogTXlFZGl0b3JQb3NpdGlvbjtcbiAgaGVhZDogTXlFZGl0b3JQb3NpdGlvbjtcbn1cblxuZnVuY3Rpb24gZm9sZEluc2lkZSh2aWV3OiBFZGl0b3JWaWV3LCBmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpIHtcbiAgbGV0IGZvdW5kOiB7IGZyb206IG51bWJlcjsgdG86IG51bWJlciB9IHwgbnVsbCA9IG51bGw7XG4gIGZvbGRlZFJhbmdlcyh2aWV3LnN0YXRlKS5iZXR3ZWVuKGZyb20sIHRvLCAoZnJvbSwgdG8pID0+IHtcbiAgICBpZiAoIWZvdW5kIHx8IGZvdW5kLmZyb20gPiBmcm9tKSBmb3VuZCA9IHsgZnJvbSwgdG8gfTtcbiAgfSk7XG4gIHJldHVybiBmb3VuZDtcbn1cblxuZXhwb3J0IGNsYXNzIE15RWRpdG9yIHtcbiAgcHJpdmF0ZSB2aWV3OiBFZGl0b3JWaWV3O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZTogRWRpdG9yKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB0aGlzLnZpZXcgPSAodGhpcy5lIGFzIGFueSkuY207XG4gIH1cblxuICBnZXRDdXJzb3IoKTogTXlFZGl0b3JQb3NpdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuZS5nZXRDdXJzb3IoKTtcbiAgfVxuXG4gIGdldExpbmUobjogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lLmdldExpbmUobik7XG4gIH1cblxuICBsYXN0TGluZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmUubGFzdExpbmUoKTtcbiAgfVxuXG4gIGxpc3RTZWxlY3Rpb25zKCk6IE15RWRpdG9yU2VsZWN0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLmUubGlzdFNlbGVjdGlvbnMoKTtcbiAgfVxuXG4gIGdldFJhbmdlKGZyb206IE15RWRpdG9yUG9zaXRpb24sIHRvOiBNeUVkaXRvclBvc2l0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lLmdldFJhbmdlKGZyb20sIHRvKTtcbiAgfVxuXG4gIHJlcGxhY2VSYW5nZShcbiAgICByZXBsYWNlbWVudDogc3RyaW5nLFxuICAgIGZyb206IE15RWRpdG9yUG9zaXRpb24sXG4gICAgdG86IE15RWRpdG9yUG9zaXRpb25cbiAgKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuZS5yZXBsYWNlUmFuZ2UocmVwbGFjZW1lbnQsIGZyb20sIHRvKTtcbiAgfVxuXG4gIHNldFNlbGVjdGlvbnMoc2VsZWN0aW9uczogTXlFZGl0b3JTZWxlY3Rpb25bXSk6IHZvaWQge1xuICAgIHRoaXMuZS5zZXRTZWxlY3Rpb25zKHNlbGVjdGlvbnMpO1xuICB9XG5cbiAgc2V0VmFsdWUodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5lLnNldFZhbHVlKHRleHQpO1xuICB9XG5cbiAgZ2V0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lLmdldFZhbHVlKCk7XG4gIH1cblxuICBvZmZzZXRUb1BvcyhvZmZzZXQ6IG51bWJlcik6IE15RWRpdG9yUG9zaXRpb24ge1xuICAgIHJldHVybiB0aGlzLmUub2Zmc2V0VG9Qb3Mob2Zmc2V0KTtcbiAgfVxuXG4gIHBvc1RvT2Zmc2V0KHBvczogTXlFZGl0b3JQb3NpdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZS5wb3NUb09mZnNldChwb3MpO1xuICB9XG5cbiAgZm9sZChuOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB7IHZpZXcgfSA9IHRoaXM7XG4gICAgY29uc3QgbCA9IHZpZXcubGluZUJsb2NrQXQodmlldy5zdGF0ZS5kb2MubGluZShuICsgMSkuZnJvbSk7XG4gICAgY29uc3QgcmFuZ2UgPSBmb2xkYWJsZSh2aWV3LnN0YXRlLCBsLmZyb20sIGwudG8pO1xuXG4gICAgaWYgKCFyYW5nZSB8fCByYW5nZS5mcm9tID09PSByYW5nZS50bykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZpZXcuZGlzcGF0Y2goeyBlZmZlY3RzOiBbZm9sZEVmZmVjdC5vZihyYW5nZSldIH0pO1xuICB9XG5cbiAgdW5mb2xkKG46IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHsgdmlldyB9ID0gdGhpcztcbiAgICBjb25zdCBsID0gdmlldy5saW5lQmxvY2tBdCh2aWV3LnN0YXRlLmRvYy5saW5lKG4gKyAxKS5mcm9tKTtcbiAgICBjb25zdCByYW5nZSA9IGZvbGRJbnNpZGUodmlldywgbC5mcm9tLCBsLnRvKTtcblxuICAgIGlmICghcmFuZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2aWV3LmRpc3BhdGNoKHsgZWZmZWN0czogW3VuZm9sZEVmZmVjdC5vZihyYW5nZSldIH0pO1xuICB9XG5cbiAgZ2V0QWxsRm9sZGVkTGluZXMoKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IGMgPSBmb2xkZWRSYW5nZXModGhpcy52aWV3LnN0YXRlKS5pdGVyKCk7XG4gICAgY29uc3QgcmVzOiBudW1iZXJbXSA9IFtdO1xuICAgIHdoaWxlIChjLnZhbHVlKSB7XG4gICAgICByZXMucHVzaCh0aGlzLm9mZnNldFRvUG9zKGMuZnJvbSkubGluZSk7XG4gICAgICBjLm5leHQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHRyaWdnZXJPbktleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHJ1blNjb3BlSGFuZGxlcnModGhpcy52aWV3LCBlLCBcImVkaXRvclwiKTtcbiAgfVxuXG4gIGdldFpvb21SYW5nZSgpOiBNeUVkaXRvclJhbmdlIHwgbnVsbCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBhcGkgPSAod2luZG93IGFzIGFueSkuT2JzaWRpYW5ab29tUGx1Z2luO1xuXG4gICAgaWYgKCFhcGkgfHwgIWFwaS5nZXRab29tUmFuZ2UpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBhcGkuZ2V0Wm9vbVJhbmdlKHRoaXMuZSk7XG4gIH1cblxuICB6b29tT3V0KCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgY29uc3QgYXBpID0gKHdpbmRvdyBhcyBhbnkpLk9ic2lkaWFuWm9vbVBsdWdpbjtcblxuICAgIGlmICghYXBpIHx8ICFhcGkuem9vbU91dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGFwaS56b29tT3V0KHRoaXMuZSk7XG4gIH1cblxuICB6b29tSW4obGluZTogbnVtYmVyKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBjb25zdCBhcGkgPSAod2luZG93IGFzIGFueSkuT2JzaWRpYW5ab29tUGx1Z2luO1xuXG4gICAgaWYgKCFhcGkgfHwgIWFwaS56b29tSW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhcGkuem9vbUluKHRoaXMuZSwgbGluZSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yLCBlZGl0b3JJbmZvRmllbGQgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHtcbiAgRWRpdG9yVmlldyxcbiAgUGx1Z2luVmFsdWUsXG4gIFZpZXdQbHVnaW4sXG4gIFZpZXdVcGRhdGUsXG59IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi9GZWF0dXJlXCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBMaXN0IH0gZnJvbSBcIi4uL3Jvb3RcIjtcbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBhcnNlclNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvUGFyc2VyU2VydmljZVwiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1NldHRpbmdzU2VydmljZVwiO1xuXG5pbnRlcmZhY2UgTGluZURhdGEge1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xuICBoZWlnaHQ6IHN0cmluZztcbiAgbGlzdDogTGlzdDtcbn1cblxuY2xhc3MgTGlzdExpbmVzVmlld1BsdWdpblZhbHVlIGltcGxlbWVudHMgUGx1Z2luVmFsdWUge1xuICBwcml2YXRlIHNjaGVkdWxlZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgc2Nyb2xsZXI6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIGNvbnRlbnRDb250YWluZXI6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIGVkaXRvcjogTXlFZGl0b3I7XG4gIHByaXZhdGUgbGFzdExpbmU6IG51bWJlcjtcbiAgcHJpdmF0ZSBsaW5lczogTGluZURhdGFbXTtcbiAgcHJpdmF0ZSBsaW5lRWxlbWVudHM6IEhUTUxFbGVtZW50W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGFyc2VyOiBQYXJzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdmlldzogRWRpdG9yVmlld1xuICApIHtcbiAgICB0aGlzLnZpZXcuc2Nyb2xsRE9NLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgdGhpcy5vblNjcm9sbCk7XG4gICAgdGhpcy5zZXR0aW5ncy5vbkNoYW5nZShcImxpc3RMaW5lc1wiLCB0aGlzLnNjaGVkdWxlUmVjYWxjdWxhdGUpO1xuXG4gICAgdGhpcy5wcmVwYXJlRG9tKCk7XG4gICAgdGhpcy53YWl0Rm9yRWRpdG9yKCk7XG4gIH1cblxuICBwcml2YXRlIHdhaXRGb3JFZGl0b3IgPSAoKSA9PiB7XG4gICAgY29uc3Qgb2UgPSB0aGlzLnZpZXcuc3RhdGUuZmllbGQoZWRpdG9ySW5mb0ZpZWxkKS5lZGl0b3I7XG4gICAgaWYgKCFvZSkge1xuICAgICAgc2V0VGltZW91dCh0aGlzLndhaXRGb3JFZGl0b3IsIDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmVkaXRvciA9IG5ldyBNeUVkaXRvcihvZSk7XG4gICAgdGhpcy5zY2hlZHVsZVJlY2FsY3VsYXRlKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBwcmVwYXJlRG9tKCkge1xuICAgIHRoaXMuY29udGVudENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgdGhpcy5jb250ZW50Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQoXG4gICAgICBcIm91dGxpbmVyLXBsdWdpbi1saXN0LWxpbmVzLWNvbnRlbnQtY29udGFpbmVyXCJcbiAgICApO1xuXG4gICAgdGhpcy5zY3JvbGxlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgdGhpcy5zY3JvbGxlci5jbGFzc0xpc3QuYWRkKFwib3V0bGluZXItcGx1Z2luLWxpc3QtbGluZXMtc2Nyb2xsZXJcIik7XG5cbiAgICB0aGlzLnNjcm9sbGVyLmFwcGVuZENoaWxkKHRoaXMuY29udGVudENvbnRhaW5lcik7XG4gICAgdGhpcy52aWV3LmRvbS5hcHBlbmRDaGlsZCh0aGlzLnNjcm9sbGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgb25TY3JvbGwgPSAoZTogRXZlbnQpID0+IHtcbiAgICBjb25zdCB7IHNjcm9sbExlZnQsIHNjcm9sbFRvcCB9ID0gZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5zY3JvbGxlci5zY3JvbGxUbyhzY3JvbGxMZWZ0LCBzY3JvbGxUb3ApO1xuICB9O1xuXG4gIHByaXZhdGUgc2NoZWR1bGVSZWNhbGN1bGF0ZSA9ICgpID0+IHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5zY2hlZHVsZWQpO1xuICAgIHRoaXMuc2NoZWR1bGVkID0gc2V0VGltZW91dCh0aGlzLmNhbGN1bGF0ZSwgMCk7XG4gIH07XG5cbiAgdXBkYXRlKHVwZGF0ZTogVmlld1VwZGF0ZSkge1xuICAgIGlmIChcbiAgICAgIHVwZGF0ZS5kb2NDaGFuZ2VkIHx8XG4gICAgICB1cGRhdGUudmlld3BvcnRDaGFuZ2VkIHx8XG4gICAgICB1cGRhdGUuZ2VvbWV0cnlDaGFuZ2VkIHx8XG4gICAgICB1cGRhdGUudHJhbnNhY3Rpb25zLnNvbWUoKHRyKSA9PiB0ci5yZWNvbmZpZ3VyZWQpXG4gICAgKSB7XG4gICAgICB0aGlzLnNjaGVkdWxlUmVjYWxjdWxhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZSA9ICgpID0+IHtcbiAgICB0aGlzLmxpbmVzID0gW107XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLnNldHRpbmdzLmxpc3RMaW5lcyAmJlxuICAgICAgdGhpcy5vYnNpZGlhbi5pc0RlZmF1bHRUaGVtZUVuYWJsZWQoKSAmJlxuICAgICAgdGhpcy52aWV3LnZpZXdwb3J0TGluZUJsb2Nrcy5sZW5ndGggPiAwICYmXG4gICAgICB0aGlzLnZpZXcudmlzaWJsZVJhbmdlcy5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCBmcm9tTGluZSA9IHRoaXMuZWRpdG9yLm9mZnNldFRvUG9zKHRoaXMudmlldy52aWV3cG9ydC5mcm9tKS5saW5lO1xuICAgICAgY29uc3QgdG9MaW5lID0gdGhpcy5lZGl0b3Iub2Zmc2V0VG9Qb3ModGhpcy52aWV3LnZpZXdwb3J0LnRvKS5saW5lO1xuICAgICAgY29uc3QgbGlzdHMgPSB0aGlzLnBhcnNlci5wYXJzZVJhbmdlKHRoaXMuZWRpdG9yLCBmcm9tTGluZSwgdG9MaW5lKTtcblxuICAgICAgZm9yIChjb25zdCBsaXN0IG9mIGxpc3RzKSB7XG4gICAgICAgIHRoaXMubGFzdExpbmUgPSBsaXN0LmdldFJhbmdlKClbMV0ubGluZTtcblxuICAgICAgICBmb3IgKGNvbnN0IGMgb2YgbGlzdC5nZXRDaGlsZHJlbigpKSB7XG4gICAgICAgICAgdGhpcy5yZWN1cnNpdmUoYyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5saW5lcy5zb3J0KChhLCBiKSA9PlxuICAgICAgICBhLnRvcCA9PT0gYi50b3AgPyBhLmxlZnQgLSBiLmxlZnQgOiBhLnRvcCAtIGIudG9wXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlRG9tKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBnZXROZXh0U2libGluZyhsaXN0OiBMaXN0KTogTGlzdCB8IG51bGwge1xuICAgIGxldCBsaXN0VG1wID0gbGlzdDtcbiAgICBsZXQgcCA9IGxpc3RUbXAuZ2V0UGFyZW50KCk7XG4gICAgd2hpbGUgKHApIHtcbiAgICAgIGNvbnN0IG5leHRTaWJsaW5nID0gcC5nZXROZXh0U2libGluZ09mKGxpc3RUbXApO1xuICAgICAgaWYgKG5leHRTaWJsaW5nKSB7XG4gICAgICAgIHJldHVybiBuZXh0U2libGluZztcbiAgICAgIH1cbiAgICAgIGxpc3RUbXAgPSBwO1xuICAgICAgcCA9IGxpc3RUbXAuZ2V0UGFyZW50KCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSByZWN1cnNpdmUobGlzdDogTGlzdCwgcGFyZW50Q3R4OiB7IHJvb3RMZWZ0PzogbnVtYmVyIH0gPSB7fSkge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gbGlzdC5nZXRDaGlsZHJlbigpO1xuXG4gICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZyb21PZmZzZXQgPSB0aGlzLmVkaXRvci5wb3NUb09mZnNldCh7XG4gICAgICBsaW5lOiBsaXN0LmdldEZpcnN0TGluZUNvbnRlbnRTdGFydCgpLmxpbmUsXG4gICAgICBjaDogbGlzdC5nZXRGaXJzdExpbmVJbmRlbnQoKS5sZW5ndGgsXG4gICAgfSk7XG4gICAgY29uc3QgbmV4dFNpYmxpbmcgPSB0aGlzLmdldE5leHRTaWJsaW5nKGxpc3QpO1xuICAgIGNvbnN0IHRpbGxPZmZzZXQgPSB0aGlzLmVkaXRvci5wb3NUb09mZnNldCh7XG4gICAgICBsaW5lOiBuZXh0U2libGluZ1xuICAgICAgICA/IG5leHRTaWJsaW5nLmdldEZpcnN0TGluZUNvbnRlbnRTdGFydCgpLmxpbmUgLSAxXG4gICAgICAgIDogdGhpcy5sYXN0TGluZSxcbiAgICAgIGNoOiAwLFxuICAgIH0pO1xuXG4gICAgbGV0IHZpc2libGVGcm9tID0gdGhpcy52aWV3LnZpc2libGVSYW5nZXNbMF0uZnJvbTtcbiAgICBsZXQgdmlzaWJsZVRvID1cbiAgICAgIHRoaXMudmlldy52aXNpYmxlUmFuZ2VzW3RoaXMudmlldy52aXNpYmxlUmFuZ2VzLmxlbmd0aCAtIDFdLnRvO1xuICAgIGNvbnN0IHpvb21SYW5nZSA9IHRoaXMuZWRpdG9yLmdldFpvb21SYW5nZSgpO1xuICAgIGlmICh6b29tUmFuZ2UpIHtcbiAgICAgIHZpc2libGVGcm9tID0gTWF0aC5tYXgoXG4gICAgICAgIHZpc2libGVGcm9tLFxuICAgICAgICB0aGlzLmVkaXRvci5wb3NUb09mZnNldCh6b29tUmFuZ2UuZnJvbSlcbiAgICAgICk7XG4gICAgICB2aXNpYmxlVG8gPSBNYXRoLm1pbih2aXNpYmxlVG8sIHRoaXMuZWRpdG9yLnBvc1RvT2Zmc2V0KHpvb21SYW5nZS50bykpO1xuICAgIH1cblxuICAgIGlmIChmcm9tT2Zmc2V0ID4gdmlzaWJsZVRvIHx8IHRpbGxPZmZzZXQgPCB2aXNpYmxlRnJvbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvb3JkcyA9IHRoaXMudmlldy5jb29yZHNBdFBvcyhmcm9tT2Zmc2V0LCAxKTtcbiAgICBpZiAocGFyZW50Q3R4LnJvb3RMZWZ0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcmVudEN0eC5yb290TGVmdCA9IGNvb3Jkcy5sZWZ0O1xuICAgIH1cbiAgICBjb25zdCBsZWZ0ID0gTWF0aC5mbG9vcihjb29yZHMucmlnaHQgLSBwYXJlbnRDdHgucm9vdExlZnQpO1xuXG4gICAgY29uc3QgdG9wID1cbiAgICAgIHZpc2libGVGcm9tID4gMCAmJiBmcm9tT2Zmc2V0IDwgdmlzaWJsZUZyb21cbiAgICAgICAgPyAtMjBcbiAgICAgICAgOiB0aGlzLnZpZXcubGluZUJsb2NrQXQoZnJvbU9mZnNldCkudG9wO1xuICAgIGNvbnN0IGJvdHRvbSA9XG4gICAgICB0aWxsT2Zmc2V0ID4gdmlzaWJsZVRvXG4gICAgICAgID8gdGhpcy52aWV3LmxpbmVCbG9ja0F0KHZpc2libGVUbyAtIDEpLmJvdHRvbVxuICAgICAgICA6IHRoaXMudmlldy5saW5lQmxvY2tBdCh0aWxsT2Zmc2V0KS5ib3R0b207XG4gICAgY29uc3QgaGVpZ2h0ID0gYm90dG9tIC0gdG9wO1xuXG4gICAgaWYgKGhlaWdodCA+IDAgJiYgIWxpc3QuaXNGb2xkZWQoKSkge1xuICAgICAgY29uc3QgbmV4dFNpYmxpbmcgPSBsaXN0LmdldFBhcmVudCgpLmdldE5leHRTaWJsaW5nT2YobGlzdCk7XG4gICAgICBjb25zdCBoYXNOZXh0U2libGluZyA9XG4gICAgICAgICEhbmV4dFNpYmxpbmcgJiZcbiAgICAgICAgdGhpcy5lZGl0b3IucG9zVG9PZmZzZXQobmV4dFNpYmxpbmcuZ2V0Rmlyc3RMaW5lQ29udGVudFN0YXJ0KCkpIDw9XG4gICAgICAgICAgdmlzaWJsZVRvO1xuXG4gICAgICB0aGlzLmxpbmVzLnB1c2goe1xuICAgICAgICB0b3AsXG4gICAgICAgIGxlZnQsXG4gICAgICAgIGhlaWdodDogYGNhbGMoJHtoZWlnaHR9cHggJHtoYXNOZXh0U2libGluZyA/IFwiLSAxLjVlbVwiIDogXCItIDJlbVwifSlgLFxuICAgICAgICBsaXN0LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgaWYgKCFjaGlsZC5pc0VtcHR5KCkpIHtcbiAgICAgICAgdGhpcy5yZWN1cnNpdmUoY2hpbGQsIHBhcmVudEN0eCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkNsaWNrID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBjb25zdCBsaW5lID0gdGhpcy5saW5lc1tOdW1iZXIoKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5kYXRhc2V0LmluZGV4KV07XG5cbiAgICBzd2l0Y2ggKHRoaXMuc2V0dGluZ3MubGlzdExpbmVBY3Rpb24pIHtcbiAgICAgIGNhc2UgXCJ6b29tLWluXCI6XG4gICAgICAgIHRoaXMuem9vbUluKGxpbmUpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcInRvZ2dsZS1mb2xkaW5nXCI6XG4gICAgICAgIHRoaXMudG9nZ2xlRm9sZGluZyhsaW5lKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgem9vbUluKGxpbmU6IExpbmVEYXRhKSB7XG4gICAgY29uc3QgZWRpdG9yID0gbmV3IE15RWRpdG9yKHRoaXMudmlldy5zdGF0ZS5maWVsZChlZGl0b3JJbmZvRmllbGQpLmVkaXRvcik7XG5cbiAgICBlZGl0b3Iuem9vbUluKGxpbmUubGlzdC5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKS5saW5lKTtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlRm9sZGluZyhsaW5lOiBMaW5lRGF0YSkge1xuICAgIGNvbnN0IHsgbGlzdCB9ID0gbGluZTtcblxuICAgIGlmIChsaXN0LmlzRW1wdHkoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBuZWVkVG9VbmZvbGQgPSB0cnVlO1xuICAgIGNvbnN0IGxpbmVzVG9Ub2dnbGU6IG51bWJlcltdID0gW107XG4gICAgZm9yIChjb25zdCBjIG9mIGxpc3QuZ2V0Q2hpbGRyZW4oKSkge1xuICAgICAgaWYgKGMuaXNFbXB0eSgpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCFjLmlzRm9sZGVkKCkpIHtcbiAgICAgICAgbmVlZFRvVW5mb2xkID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBsaW5lc1RvVG9nZ2xlLnB1c2goYy5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKS5saW5lKTtcbiAgICB9XG5cbiAgICBjb25zdCBlZGl0b3IgPSBuZXcgTXlFZGl0b3IodGhpcy52aWV3LnN0YXRlLmZpZWxkKGVkaXRvckluZm9GaWVsZCkuZWRpdG9yKTtcblxuICAgIGZvciAoY29uc3QgbCBvZiBsaW5lc1RvVG9nZ2xlKSB7XG4gICAgICBpZiAobmVlZFRvVW5mb2xkKSB7XG4gICAgICAgIGVkaXRvci51bmZvbGQobCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlZGl0b3IuZm9sZChsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURvbSgpIHtcbiAgICBjb25zdCBjbVNjcm9sbCA9IHRoaXMudmlldy5zY3JvbGxET007XG4gICAgY29uc3QgY21Db250ZW50ID0gdGhpcy52aWV3LmNvbnRlbnRET007XG4gICAgY29uc3QgY21Db250ZW50Q29udGFpbmVyID0gY21Db250ZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgY29uc3QgY21TaXplciA9IGNtQ29udGVudENvbnRhaW5lci5wYXJlbnRFbGVtZW50O1xuXG4gICAgLyoqXG4gICAgICogT2JzaWRpYW4gY2FuIGFkZCBhZGRpdGlvbmFsIGVsZW1lbnRzIGludG8gQ29udGVudCBNYW5hZ2VyLlxuICAgICAqIFRoZSBtb3N0IG9idmlvdXMgY2FzZSBpcyB0aGUgJ2VtYmVkZGVkLWJhY2tsaW5rcycgY29yZSBwbHVnaW4gdGhhdCBhZGRzIGEgbWVudSBpbnNpZGUgYSBDb250ZW50IE1hbmFnZXIuXG4gICAgICogV2UgbXVzdCB0YWtlIGhlaWdodHMgb2YgYWxsIG9mIHRoZXNlIGVsZW1lbnRzIGludG8gYWNjb3VudFxuICAgICAqIHRvIGJlIGFibGUgdG8gY2FsY3VsYXRlIHRoZSBjb3JyZWN0IHNpemUgb2YgbGluZXMnIGNvbnRhaW5lci5cbiAgICAgKi9cbiAgICBsZXQgY21TaXplckNoaWxkcmVuU3VtSGVpZ2h0ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNtU2l6ZXIuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNtU2l6ZXJDaGlsZHJlblN1bUhlaWdodCArPSBjbVNpemVyLmNoaWxkcmVuW2ldLmNsaWVudEhlaWdodDtcbiAgICB9XG5cbiAgICB0aGlzLnNjcm9sbGVyLnN0eWxlLnRvcCA9IGNtU2Nyb2xsLm9mZnNldFRvcCArIFwicHhcIjtcbiAgICB0aGlzLmNvbnRlbnRDb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gY21TaXplckNoaWxkcmVuU3VtSGVpZ2h0ICsgXCJweFwiO1xuICAgIHRoaXMuY29udGVudENvbnRhaW5lci5zdHlsZS5tYXJnaW5MZWZ0ID1cbiAgICAgIGNtQ29udGVudENvbnRhaW5lci5vZmZzZXRMZWZ0ICsgXCJweFwiO1xuICAgIHRoaXMuY29udGVudENvbnRhaW5lci5zdHlsZS5tYXJnaW5Ub3AgPVxuICAgICAgKGNtQ29udGVudC5maXJzdEVsZW1lbnRDaGlsZCBhcyBIVE1MRWxlbWVudCkub2Zmc2V0VG9wIC0gMjQgKyBcInB4XCI7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmxpbmVFbGVtZW50cy5sZW5ndGggPT09IGkpIHtcbiAgICAgICAgY29uc3QgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgIGUuY2xhc3NMaXN0LmFkZChcIm91dGxpbmVyLXBsdWdpbi1saXN0LWxpbmVcIik7XG4gICAgICAgIGUuZGF0YXNldC5pbmRleCA9IFN0cmluZyhpKTtcbiAgICAgICAgZS5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMub25DbGljayk7XG4gICAgICAgIHRoaXMuY29udGVudENvbnRhaW5lci5hcHBlbmRDaGlsZChlKTtcbiAgICAgICAgdGhpcy5saW5lRWxlbWVudHMucHVzaChlKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbCA9IHRoaXMubGluZXNbaV07XG4gICAgICBjb25zdCBlID0gdGhpcy5saW5lRWxlbWVudHNbaV07XG4gICAgICBlLnN0eWxlLnRvcCA9IGwudG9wICsgXCJweFwiO1xuICAgICAgZS5zdHlsZS5sZWZ0ID0gbC5sZWZ0ICsgXCJweFwiO1xuICAgICAgZS5zdHlsZS5oZWlnaHQgPSBsLmhlaWdodDtcbiAgICAgIGUuc3R5bGUuZGlzcGxheSA9IFwiYmxvY2tcIjtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gdGhpcy5saW5lcy5sZW5ndGg7IGkgPCB0aGlzLmxpbmVFbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZSA9IHRoaXMubGluZUVsZW1lbnRzW2ldO1xuICAgICAgZS5zdHlsZS50b3AgPSBcIjBweFwiO1xuICAgICAgZS5zdHlsZS5sZWZ0ID0gXCIwcHhcIjtcbiAgICAgIGUuc3R5bGUuaGVpZ2h0ID0gXCIwcHhcIjtcbiAgICAgIGUuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5zZXR0aW5ncy5yZW1vdmVDYWxsYmFjayhcImxpc3RMaW5lc1wiLCB0aGlzLnNjaGVkdWxlUmVjYWxjdWxhdGUpO1xuICAgIHRoaXMudmlldy5zY3JvbGxET00ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB0aGlzLm9uU2Nyb2xsKTtcbiAgICB0aGlzLnZpZXcuZG9tLnJlbW92ZUNoaWxkKHRoaXMuc2Nyb2xsZXIpO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnNjaGVkdWxlZCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpbmVzRmVhdHVyZSBpbXBsZW1lbnRzIEZlYXR1cmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsdWdpbjogUGx1Z2luXzIsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgb2JzaWRpYW46IE9ic2lkaWFuU2VydmljZSxcbiAgICBwcml2YXRlIHBhcnNlcjogUGFyc2VyU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnBsdWdpbi5yZWdpc3RlckVkaXRvckV4dGVuc2lvbihcbiAgICAgIFZpZXdQbHVnaW4uZGVmaW5lKFxuICAgICAgICAodmlldykgPT5cbiAgICAgICAgICBuZXcgTGlzdExpbmVzVmlld1BsdWdpblZhbHVlKFxuICAgICAgICAgICAgdGhpcy5zZXR0aW5ncyxcbiAgICAgICAgICAgIHRoaXMub2JzaWRpYW4sXG4gICAgICAgICAgICB0aGlzLnBhcnNlcixcbiAgICAgICAgICAgIHZpZXdcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZCgpIHt9XG59XG4iLCJpbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4vRmVhdHVyZVwiO1xuXG5pbXBvcnQgeyBPYnNpZGlhblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmNvbnN0IEJFVFRFUl9MSVNUU19DTEFTUyA9IFwib3V0bGluZXItcGx1Z2luLWJldHRlci1saXN0c1wiO1xuY29uc3QgQkVUVEVSX0JVTExFVFNfQ0xBU1MgPSBcIm91dGxpbmVyLXBsdWdpbi1iZXR0ZXItYnVsbGV0c1wiO1xuY29uc3QgVkVSVElDQUxfTElORVMgPSBcIm91dGxpbmVyLXBsdWdpbi12ZXJ0aWNhbC1saW5lc1wiO1xuY29uc3QgS05PV05fQ0xBU1NFUyA9IFtcbiAgQkVUVEVSX0xJU1RTX0NMQVNTLFxuICBCRVRURVJfQlVMTEVUU19DTEFTUyxcbiAgVkVSVElDQUxfTElORVMsXG5dO1xuXG5leHBvcnQgY2xhc3MgTGlzdHNTdHlsZXNGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIHByaXZhdGUgaW50ZXJ2YWw6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBsb2FkKCkge1xuICAgIHRoaXMuc3luY0xpc3RzU3R5bGVzKCk7XG4gICAgdGhpcy5pbnRlcnZhbCA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICB0aGlzLnN5bmNMaXN0c1N0eWxlcygpO1xuICAgIH0sIDEwMDApO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XG4gICAgdGhpcy5hcHBseUxpc3RzU3R5bGVzKFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgc3luY0xpc3RzU3R5bGVzID0gKCkgPT4ge1xuICAgIGNvbnN0IGNsYXNzZXMgPSBbXTtcblxuICAgIGlmICh0aGlzLm9ic2lkaWFuLmlzRGVmYXVsdFRoZW1lRW5hYmxlZCgpKSB7XG4gICAgICBpZiAodGhpcy5zZXR0aW5ncy5zdHlsZUxpc3RzKSB7XG4gICAgICAgIGNsYXNzZXMucHVzaChCRVRURVJfTElTVFNfQ0xBU1MpO1xuICAgICAgICBjbGFzc2VzLnB1c2goQkVUVEVSX0JVTExFVFNfQ0xBU1MpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5zZXR0aW5ncy5saXN0TGluZXMpIHtcbiAgICAgICAgY2xhc3Nlcy5wdXNoKFZFUlRJQ0FMX0xJTkVTKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmFwcGx5TGlzdHNTdHlsZXMoY2xhc3Nlcyk7XG4gIH07XG5cbiAgcHJpdmF0ZSBhcHBseUxpc3RzU3R5bGVzKGNsYXNzZXM6IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgdG9LZWVwID0gY2xhc3Nlcy5maWx0ZXIoKGMpID0+IEtOT1dOX0NMQVNTRVMuY29udGFpbnMoYykpO1xuICAgIGNvbnN0IHRvUmVtb3ZlID0gS05PV05fQ0xBU1NFUy5maWx0ZXIoKGMpID0+ICF0b0tlZXAuY29udGFpbnMoYykpO1xuXG4gICAgZm9yIChjb25zdCBjIG9mIHRvS2VlcCkge1xuICAgICAgaWYgKCFkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucyhjKSkge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoYyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjIG9mIHRvUmVtb3ZlKSB7XG4gICAgICBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoYykpIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKGMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSBcIi4vT3BlcmF0aW9uXCI7XG5cbmltcG9ydCB7IExpc3RMaW5lLCBQb3NpdGlvbiwgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBNb3ZlQ3Vyc29yVG9QcmV2aW91c1VuZm9sZGVkTGluZU9wZXJhdGlvbiBpbXBsZW1lbnRzIE9wZXJhdGlvbiB7XG4gIHByaXZhdGUgc3RvcFByb3BhZ2F0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdXBkYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm9vdDogUm9vdCkge31cblxuICBzaG91bGRTdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcFByb3BhZ2F0aW9uO1xuICB9XG5cbiAgc2hvdWxkVXBkYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZWQ7XG4gIH1cblxuICBwZXJmb3JtKCkge1xuICAgIGNvbnN0IHsgcm9vdCB9ID0gdGhpcztcblxuICAgIGlmICghcm9vdC5oYXNTaW5nbGVDdXJzb3IoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3QgPSB0aGlzLnJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgY3Vyc29yID0gdGhpcy5yb290LmdldEN1cnNvcigpO1xuICAgIGNvbnN0IGxpbmVzID0gbGlzdC5nZXRMaW5lc0luZm8oKTtcbiAgICBjb25zdCBsaW5lTm8gPSBsaW5lcy5maW5kSW5kZXgoXG4gICAgICAobCkgPT4gY3Vyc29yLmNoID09PSBsLmZyb20uY2ggJiYgY3Vyc29yLmxpbmUgPT09IGwuZnJvbS5saW5lXG4gICAgKTtcblxuICAgIGlmIChsaW5lTm8gPT09IDApIHtcbiAgICAgIHRoaXMubW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZEl0ZW0ocm9vdCwgY3Vyc29yKTtcbiAgICB9IGVsc2UgaWYgKGxpbmVObyA+IDApIHtcbiAgICAgIHRoaXMubW92ZUN1cnNvclRvUHJldmlvdXNOb3RlTGluZShyb290LCBsaW5lcywgbGluZU5vKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1vdmVDdXJzb3JUb1ByZXZpb3VzTm90ZUxpbmUoXG4gICAgcm9vdDogUm9vdCxcbiAgICBsaW5lczogTGlzdExpbmVbXSxcbiAgICBsaW5lTm86IG51bWJlclxuICApIHtcbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcblxuICAgIHJvb3QucmVwbGFjZUN1cnNvcihsaW5lc1tsaW5lTm8gLSAxXS50byk7XG4gIH1cblxuICBwcml2YXRlIG1vdmVDdXJzb3JUb1ByZXZpb3VzVW5mb2xkZWRJdGVtKHJvb3Q6IFJvb3QsIGN1cnNvcjogUG9zaXRpb24pIHtcbiAgICBjb25zdCBwcmV2ID0gcm9vdC5nZXRMaXN0VW5kZXJMaW5lKGN1cnNvci5saW5lIC0gMSk7XG5cbiAgICBpZiAoIXByZXYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcblxuICAgIGlmIChwcmV2LmlzRm9sZGVkKCkpIHtcbiAgICAgIGNvbnN0IGZvbGRSb290ID0gcHJldi5nZXRUb3BGb2xkUm9vdCgpO1xuICAgICAgY29uc3QgZmlyc3RMaW5lRW5kID0gZm9sZFJvb3QuZ2V0TGluZXNJbmZvKClbMF0udG87XG4gICAgICByb290LnJlcGxhY2VDdXJzb3IoZmlyc3RMaW5lRW5kKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm9vdC5yZXBsYWNlQ3Vyc29yKHByZXYuZ2V0TGFzdExpbmVDb250ZW50RW5kKCkpO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgUGx1Z2luXzIgfSBmcm9tIFwib2JzaWRpYW5cIjtcblxuaW1wb3J0IHsga2V5bWFwIH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcblxuaW1wb3J0IHsgTXlFZGl0b3IgfSBmcm9tIFwiLi4vTXlFZGl0b3JcIjtcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi4vZmVhdHVyZXMvRmVhdHVyZVwiO1xuaW1wb3J0IHsgTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVPcGVyYXRpb24gfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9Nb3ZlQ3Vyc29yVG9QcmV2aW91c1VuZm9sZGVkTGluZU9wZXJhdGlvblwiO1xuaW1wb3J0IHsgSU1FU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9JTUVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBPYnNpZGlhblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlXCI7XG5pbXBvcnQgeyBQZXJmb3JtT3BlcmF0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9QZXJmb3JtT3BlcmF0aW9uU2VydmljZVwiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1NldHRpbmdzU2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMixcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWU6IElNRVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbjogUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oXG4gICAgICBrZXltYXAub2YoW1xuICAgICAgICB7XG4gICAgICAgICAga2V5OiBcIkFycm93TGVmdFwiLFxuICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICBjaGVjazogdGhpcy5jaGVjayxcbiAgICAgICAgICAgIHJ1bjogdGhpcy5ydW4sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB3aW46IFwiYy1BcnJvd0xlZnRcIixcbiAgICAgICAgICBsaW51eDogXCJjLUFycm93TGVmdFwiLFxuICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICBjaGVjazogdGhpcy5jaGVjayxcbiAgICAgICAgICAgIHJ1bjogdGhpcy5ydW4sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7fVxuXG4gIHByaXZhdGUgY2hlY2sgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Muc3RpY2tDdXJzb3IgJiYgIXRoaXMuaW1lLmlzSU1FT3BlbmVkKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBydW4gPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVPcGVyYXRpb24ocm9vdCksXG4gICAgICBlZGl0b3JcbiAgICApO1xuICB9O1xufVxuIiwiaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSBcIi4vT3BlcmF0aW9uXCI7XG5cbmltcG9ydCB7IFJvb3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuaW1wb3J0IHsgcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0cyB9IGZyb20gXCIuLi9yb290L3JlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHNcIjtcblxuZXhwb3J0IGNsYXNzIE1vdmVEb3duT3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBzdG9wUHJvcGFnYXRpb24gPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cGRhdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuXG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgcGFyZW50ID0gbGlzdC5nZXRQYXJlbnQoKTtcbiAgICBjb25zdCBncmFuZFBhcmVudCA9IHBhcmVudC5nZXRQYXJlbnQoKTtcbiAgICBjb25zdCBuZXh0ID0gcGFyZW50LmdldE5leHRTaWJsaW5nT2YobGlzdCk7XG5cbiAgICBjb25zdCBsaXN0U3RhcnRMaW5lQmVmb3JlID0gcm9vdC5nZXRDb250ZW50TGluZXNSYW5nZU9mKGxpc3QpWzBdO1xuXG4gICAgaWYgKCFuZXh0ICYmIGdyYW5kUGFyZW50KSB7XG4gICAgICBjb25zdCBuZXdQYXJlbnQgPSBncmFuZFBhcmVudC5nZXROZXh0U2libGluZ09mKHBhcmVudCk7XG5cbiAgICAgIGlmIChuZXdQYXJlbnQpIHtcbiAgICAgICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcbiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKGxpc3QpO1xuICAgICAgICBuZXdQYXJlbnQuYWRkQmVmb3JlQWxsKGxpc3QpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobmV4dCkge1xuICAgICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcbiAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChsaXN0KTtcbiAgICAgIHBhcmVudC5hZGRBZnRlcihuZXh0LCBsaXN0KTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMudXBkYXRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3RTdGFydExpbmVBZnRlciA9IHJvb3QuZ2V0Q29udGVudExpbmVzUmFuZ2VPZihsaXN0KVswXTtcbiAgICBjb25zdCBsaW5lRGlmZiA9IGxpc3RTdGFydExpbmVBZnRlciAtIGxpc3RTdGFydExpbmVCZWZvcmU7XG5cbiAgICBjb25zdCBjdXJzb3IgPSByb290LmdldEN1cnNvcigpO1xuICAgIHJvb3QucmVwbGFjZUN1cnNvcih7XG4gICAgICBsaW5lOiBjdXJzb3IubGluZSArIGxpbmVEaWZmLFxuICAgICAgY2g6IGN1cnNvci5jaCxcbiAgICB9KTtcblxuICAgIHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMocm9vdCk7XG4gIH1cbn1cbiIsImltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcbmltcG9ydCB7IHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMgfSBmcm9tIFwiLi4vcm9vdC9yZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzXCI7XG5cbmV4cG9ydCBjbGFzcyBNb3ZlUmlnaHRPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QsIHByaXZhdGUgZGVmYXVsdEluZGVudENoYXJzOiBzdHJpbmcpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlQ3Vyc29yKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG5cbiAgICBjb25zdCBsaXN0ID0gcm9vdC5nZXRMaXN0VW5kZXJDdXJzb3IoKTtcbiAgICBjb25zdCBwYXJlbnQgPSBsaXN0LmdldFBhcmVudCgpO1xuICAgIGNvbnN0IHByZXYgPSBwYXJlbnQuZ2V0UHJldlNpYmxpbmdPZihsaXN0KTtcblxuICAgIGlmICghcHJldikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG5cbiAgICBjb25zdCBsaXN0U3RhcnRMaW5lQmVmb3JlID0gcm9vdC5nZXRDb250ZW50TGluZXNSYW5nZU9mKGxpc3QpWzBdO1xuXG4gICAgY29uc3QgaW5kZW50UG9zID0gbGlzdC5nZXRGaXJzdExpbmVJbmRlbnQoKS5sZW5ndGg7XG4gICAgbGV0IGluZGVudENoYXJzID0gXCJcIjtcblxuICAgIGlmIChpbmRlbnRDaGFycyA9PT0gXCJcIiAmJiAhcHJldi5pc0VtcHR5KCkpIHtcbiAgICAgIGluZGVudENoYXJzID0gcHJldlxuICAgICAgICAuZ2V0Q2hpbGRyZW4oKVswXVxuICAgICAgICAuZ2V0Rmlyc3RMaW5lSW5kZW50KClcbiAgICAgICAgLnNsaWNlKHByZXYuZ2V0Rmlyc3RMaW5lSW5kZW50KCkubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBpZiAoaW5kZW50Q2hhcnMgPT09IFwiXCIpIHtcbiAgICAgIGluZGVudENoYXJzID0gbGlzdFxuICAgICAgICAuZ2V0Rmlyc3RMaW5lSW5kZW50KClcbiAgICAgICAgLnNsaWNlKHBhcmVudC5nZXRGaXJzdExpbmVJbmRlbnQoKS5sZW5ndGgpO1xuICAgIH1cblxuICAgIGlmIChpbmRlbnRDaGFycyA9PT0gXCJcIiAmJiAhbGlzdC5pc0VtcHR5KCkpIHtcbiAgICAgIGluZGVudENoYXJzID0gbGlzdC5nZXRDaGlsZHJlbigpWzBdLmdldEZpcnN0TGluZUluZGVudCgpO1xuICAgIH1cblxuICAgIGlmIChpbmRlbnRDaGFycyA9PT0gXCJcIikge1xuICAgICAgaW5kZW50Q2hhcnMgPSB0aGlzLmRlZmF1bHRJbmRlbnRDaGFycztcbiAgICB9XG5cbiAgICBwYXJlbnQucmVtb3ZlQ2hpbGQobGlzdCk7XG4gICAgcHJldi5hZGRBZnRlckFsbChsaXN0KTtcbiAgICBsaXN0LmluZGVudENvbnRlbnQoaW5kZW50UG9zLCBpbmRlbnRDaGFycyk7XG5cbiAgICBjb25zdCBsaXN0U3RhcnRMaW5lQWZ0ZXIgPSByb290LmdldENvbnRlbnRMaW5lc1JhbmdlT2YobGlzdClbMF07XG4gICAgY29uc3QgbGluZURpZmYgPSBsaXN0U3RhcnRMaW5lQWZ0ZXIgLSBsaXN0U3RhcnRMaW5lQmVmb3JlO1xuXG4gICAgY29uc3QgY3Vyc29yID0gcm9vdC5nZXRDdXJzb3IoKTtcbiAgICByb290LnJlcGxhY2VDdXJzb3Ioe1xuICAgICAgbGluZTogY3Vyc29yLmxpbmUgKyBsaW5lRGlmZixcbiAgICAgIGNoOiBjdXJzb3IuY2ggKyBpbmRlbnRDaGFycy5sZW5ndGgsXG4gICAgfSk7XG5cbiAgICByZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzKHJvb3QpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tIFwiLi9PcGVyYXRpb25cIjtcblxuaW1wb3J0IHsgUm9vdCB9IGZyb20gXCIuLi9yb290XCI7XG5pbXBvcnQgeyByZWNhbGN1bGF0ZU51bWVyaWNCdWxsZXRzIH0gZnJvbSBcIi4uL3Jvb3QvcmVjYWxjdWxhdGVOdW1lcmljQnVsbGV0c1wiO1xuXG5leHBvcnQgY2xhc3MgTW92ZVVwT3BlcmF0aW9uIGltcGxlbWVudHMgT3BlcmF0aW9uIHtcbiAgcHJpdmF0ZSBzdG9wUHJvcGFnYXRpb24gPSBmYWxzZTtcbiAgcHJpdmF0ZSB1cGRhdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290OiBSb290KSB7fVxuXG4gIHNob3VsZFN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9wUHJvcGFnYXRpb247XG4gIH1cblxuICBzaG91bGRVcGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZDtcbiAgfVxuXG4gIHBlcmZvcm0oKSB7XG4gICAgY29uc3QgeyByb290IH0gPSB0aGlzO1xuXG4gICAgaWYgKCFyb290Lmhhc1NpbmdsZUN1cnNvcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuXG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgcGFyZW50ID0gbGlzdC5nZXRQYXJlbnQoKTtcbiAgICBjb25zdCBncmFuZFBhcmVudCA9IHBhcmVudC5nZXRQYXJlbnQoKTtcbiAgICBjb25zdCBwcmV2ID0gcGFyZW50LmdldFByZXZTaWJsaW5nT2YobGlzdCk7XG5cbiAgICBjb25zdCBsaXN0U3RhcnRMaW5lQmVmb3JlID0gcm9vdC5nZXRDb250ZW50TGluZXNSYW5nZU9mKGxpc3QpWzBdO1xuXG4gICAgaWYgKCFwcmV2ICYmIGdyYW5kUGFyZW50KSB7XG4gICAgICBjb25zdCBuZXdQYXJlbnQgPSBncmFuZFBhcmVudC5nZXRQcmV2U2libGluZ09mKHBhcmVudCk7XG5cbiAgICAgIGlmIChuZXdQYXJlbnQpIHtcbiAgICAgICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcbiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKGxpc3QpO1xuICAgICAgICBuZXdQYXJlbnQuYWRkQWZ0ZXJBbGwobGlzdCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcmV2KSB7XG4gICAgICB0aGlzLnVwZGF0ZWQgPSB0cnVlO1xuICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKGxpc3QpO1xuICAgICAgcGFyZW50LmFkZEJlZm9yZShwcmV2LCBsaXN0KTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMudXBkYXRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3RTdGFydExpbmVBZnRlciA9IHJvb3QuZ2V0Q29udGVudExpbmVzUmFuZ2VPZihsaXN0KVswXTtcbiAgICBjb25zdCBsaW5lRGlmZiA9IGxpc3RTdGFydExpbmVBZnRlciAtIGxpc3RTdGFydExpbmVCZWZvcmU7XG5cbiAgICBjb25zdCBjdXJzb3IgPSByb290LmdldEN1cnNvcigpO1xuICAgIHJvb3QucmVwbGFjZUN1cnNvcih7XG4gICAgICBsaW5lOiBjdXJzb3IubGluZSArIGxpbmVEaWZmLFxuICAgICAgY2g6IGN1cnNvci5jaCxcbiAgICB9KTtcblxuICAgIHJlY2FsY3VsYXRlTnVtZXJpY0J1bGxldHMocm9vdCk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IFByZWMgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivc3RhdGVcIjtcbmltcG9ydCB7IGtleW1hcCB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4uL2ZlYXR1cmVzL0ZlYXR1cmVcIjtcbmltcG9ydCB7IE1vdmVEb3duT3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvTW92ZURvd25PcGVyYXRpb25cIjtcbmltcG9ydCB7IE1vdmVMZWZ0T3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvTW92ZUxlZnRPcGVyYXRpb25cIjtcbmltcG9ydCB7IE1vdmVSaWdodE9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL01vdmVSaWdodE9wZXJhdGlvblwiO1xuaW1wb3J0IHsgTW92ZVVwT3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvTW92ZVVwT3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBJTUVTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL0lNRVNlcnZpY2VcIjtcbmltcG9ydCB7IE9ic2lkaWFuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9PYnNpZGlhblNlcnZpY2VcIjtcbmltcG9ydCB7IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1BlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBNb3ZlSXRlbXNGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMixcbiAgICBwcml2YXRlIGltZTogSU1FU2VydmljZSxcbiAgICBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbjogUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4uYWRkQ29tbWFuZCh7XG4gICAgICBpZDogXCJtb3ZlLWxpc3QtaXRlbS11cFwiLFxuICAgICAgaWNvbjogXCJhcnJvdy11cFwiLFxuICAgICAgbmFtZTogXCJNb3ZlIGxpc3QgYW5kIHN1Ymxpc3RzIHVwXCIsXG4gICAgICBlZGl0b3JDYWxsYmFjazogdGhpcy5vYnNpZGlhbi5jcmVhdGVFZGl0b3JDYWxsYmFjayhcbiAgICAgICAgdGhpcy5tb3ZlTGlzdEVsZW1lbnRVcENvbW1hbmRcbiAgICAgICksXG4gICAgICBob3RrZXlzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb2RpZmllcnM6IFtcIk1vZFwiLCBcIlNoaWZ0XCJdLFxuICAgICAgICAgIGtleTogXCJBcnJvd1VwXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wbHVnaW4uYWRkQ29tbWFuZCh7XG4gICAgICBpZDogXCJtb3ZlLWxpc3QtaXRlbS1kb3duXCIsXG4gICAgICBpY29uOiBcImFycm93LWRvd25cIixcbiAgICAgIG5hbWU6IFwiTW92ZSBsaXN0IGFuZCBzdWJsaXN0cyBkb3duXCIsXG4gICAgICBlZGl0b3JDYWxsYmFjazogdGhpcy5vYnNpZGlhbi5jcmVhdGVFZGl0b3JDYWxsYmFjayhcbiAgICAgICAgdGhpcy5tb3ZlTGlzdEVsZW1lbnREb3duQ29tbWFuZFxuICAgICAgKSxcbiAgICAgIGhvdGtleXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vZGlmaWVyczogW1wiTW9kXCIsIFwiU2hpZnRcIl0sXG4gICAgICAgICAga2V5OiBcIkFycm93RG93blwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMucGx1Z2luLmFkZENvbW1hbmQoe1xuICAgICAgaWQ6IFwiaW5kZW50LWxpc3RcIixcbiAgICAgIGljb246IFwiaW5kZW50XCIsXG4gICAgICBuYW1lOiBcIkluZGVudCB0aGUgbGlzdCBhbmQgc3VibGlzdHNcIixcbiAgICAgIGVkaXRvckNhbGxiYWNrOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUVkaXRvckNhbGxiYWNrKFxuICAgICAgICB0aGlzLm1vdmVMaXN0RWxlbWVudFJpZ2h0Q29tbWFuZFxuICAgICAgKSxcbiAgICAgIGhvdGtleXM6IFtdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wbHVnaW4uYWRkQ29tbWFuZCh7XG4gICAgICBpZDogXCJvdXRkZW50LWxpc3RcIixcbiAgICAgIGljb246IFwib3V0ZGVudFwiLFxuICAgICAgbmFtZTogXCJPdXRkZW50IHRoZSBsaXN0IGFuZCBzdWJsaXN0c1wiLFxuICAgICAgZWRpdG9yQ2FsbGJhY2s6IHRoaXMub2JzaWRpYW4uY3JlYXRlRWRpdG9yQ2FsbGJhY2soXG4gICAgICAgIHRoaXMubW92ZUxpc3RFbGVtZW50TGVmdENvbW1hbmRcbiAgICAgICksXG4gICAgICBob3RrZXlzOiBbXSxcbiAgICB9KTtcblxuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKFxuICAgICAgUHJlYy5oaWdoZXN0KFxuICAgICAgICBrZXltYXAub2YoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJUYWJcIixcbiAgICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgICBydW46IHRoaXMubW92ZUxpc3RFbGVtZW50UmlnaHQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJzLVRhYlwiLFxuICAgICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgICAgY2hlY2s6IHRoaXMuY2hlY2ssXG4gICAgICAgICAgICAgIHJ1bjogdGhpcy5tb3ZlTGlzdEVsZW1lbnRMZWZ0LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge31cblxuICBwcml2YXRlIGNoZWNrID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmJldHRlclRhYiAmJiAhdGhpcy5pbWUuaXNJTUVPcGVuZWQoKTtcbiAgfTtcblxuICBwcml2YXRlIG1vdmVMaXN0RWxlbWVudERvd25Db21tYW5kID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICBjb25zdCB7IHNob3VsZFN0b3BQcm9wYWdhdGlvbiB9ID0gdGhpcy5wZXJmb3JtT3BlcmF0aW9uLnBlcmZvcm1PcGVyYXRpb24oXG4gICAgICAocm9vdCkgPT4gbmV3IE1vdmVEb3duT3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcblxuICAgIHJldHVybiBzaG91bGRTdG9wUHJvcGFnYXRpb247XG4gIH07XG5cbiAgcHJpdmF0ZSBtb3ZlTGlzdEVsZW1lbnRVcENvbW1hbmQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIGNvbnN0IHsgc2hvdWxkU3RvcFByb3BhZ2F0aW9uIH0gPSB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgTW92ZVVwT3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcblxuICAgIHJldHVybiBzaG91bGRTdG9wUHJvcGFnYXRpb247XG4gIH07XG5cbiAgcHJpdmF0ZSBtb3ZlTGlzdEVsZW1lbnRSaWdodENvbW1hbmQgPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIGlmICh0aGlzLmltZS5pc0lNRU9wZW5lZCgpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5tb3ZlTGlzdEVsZW1lbnRSaWdodChlZGl0b3IpLnNob3VsZFN0b3BQcm9wYWdhdGlvbjtcbiAgfTtcblxuICBwcml2YXRlIG1vdmVMaXN0RWxlbWVudFJpZ2h0ID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wZXJmb3JtT3BlcmF0aW9uLnBlcmZvcm1PcGVyYXRpb24oXG4gICAgICAocm9vdCkgPT5cbiAgICAgICAgbmV3IE1vdmVSaWdodE9wZXJhdGlvbihyb290LCB0aGlzLm9ic2lkaWFuLmdldERlZmF1bHRJbmRlbnRDaGFycygpKSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG5cbiAgcHJpdmF0ZSBtb3ZlTGlzdEVsZW1lbnRMZWZ0Q29tbWFuZCA9IChlZGl0b3I6IE15RWRpdG9yKSA9PiB7XG4gICAgaWYgKHRoaXMuaW1lLmlzSU1FT3BlbmVkKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm1vdmVMaXN0RWxlbWVudExlZnQoZWRpdG9yKS5zaG91bGRTdG9wUHJvcGFnYXRpb247XG4gIH07XG5cbiAgcHJpdmF0ZSBtb3ZlTGlzdEVsZW1lbnRMZWZ0ID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wZXJmb3JtT3BlcmF0aW9uLnBlcmZvcm1PcGVyYXRpb24oXG4gICAgICAocm9vdCkgPT4gbmV3IE1vdmVMZWZ0T3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcbiAgfTtcbn1cbiIsImltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBSb290LCBtYXhQb3MsIG1pblBvcyB9IGZyb20gXCIuLi9yb290XCI7XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RBbGxPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlU2VsZWN0aW9uKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3Rpb24gPSByb290LmdldFNlbGVjdGlvbnMoKVswXTtcbiAgICBjb25zdCBbcm9vdFN0YXJ0LCByb290RW5kXSA9IHJvb3QuZ2V0UmFuZ2UoKTtcblxuICAgIGNvbnN0IHNlbGVjdGlvbkZyb20gPSBtaW5Qb3Moc2VsZWN0aW9uLmFuY2hvciwgc2VsZWN0aW9uLmhlYWQpO1xuICAgIGNvbnN0IHNlbGVjdGlvblRvID0gbWF4UG9zKHNlbGVjdGlvbi5hbmNob3IsIHNlbGVjdGlvbi5oZWFkKTtcblxuICAgIGlmIChcbiAgICAgIHNlbGVjdGlvbkZyb20ubGluZSA8IHJvb3RTdGFydC5saW5lIHx8XG4gICAgICBzZWxlY3Rpb25Uby5saW5lID4gcm9vdEVuZC5saW5lXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgc2VsZWN0aW9uRnJvbS5saW5lID09PSByb290U3RhcnQubGluZSAmJlxuICAgICAgc2VsZWN0aW9uRnJvbS5jaCA9PT0gcm9vdFN0YXJ0LmNoICYmXG4gICAgICBzZWxlY3Rpb25Uby5saW5lID09PSByb290RW5kLmxpbmUgJiZcbiAgICAgIHNlbGVjdGlvblRvLmNoID09PSByb290RW5kLmNoXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgY29udGVudFN0YXJ0ID0gbGlzdC5nZXRGaXJzdExpbmVDb250ZW50U3RhcnQoKTtcbiAgICBjb25zdCBjb250ZW50RW5kID0gbGlzdC5nZXRMYXN0TGluZUNvbnRlbnRFbmQoKTtcblxuICAgIGlmIChcbiAgICAgIHNlbGVjdGlvbkZyb20ubGluZSA8IGNvbnRlbnRTdGFydC5saW5lIHx8XG4gICAgICBzZWxlY3Rpb25Uby5saW5lID4gY29udGVudEVuZC5saW5lXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wUHJvcGFnYXRpb24gPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlZCA9IHRydWU7XG5cbiAgICBpZiAoXG4gICAgICBzZWxlY3Rpb25Gcm9tLmxpbmUgPT09IGNvbnRlbnRTdGFydC5saW5lICYmXG4gICAgICBzZWxlY3Rpb25Gcm9tLmNoID09PSBjb250ZW50U3RhcnQuY2ggJiZcbiAgICAgIHNlbGVjdGlvblRvLmxpbmUgPT09IGNvbnRlbnRFbmQubGluZSAmJlxuICAgICAgc2VsZWN0aW9uVG8uY2ggPT09IGNvbnRlbnRFbmQuY2hcbiAgICApIHtcbiAgICAgIC8vIHNlbGVjdCBhbGwgbGlzdFxuICAgICAgcm9vdC5yZXBsYWNlU2VsZWN0aW9ucyhbeyBhbmNob3I6IHJvb3RTdGFydCwgaGVhZDogcm9vdEVuZCB9XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHNlbGVjdCBhbGwgbGluZVxuICAgICAgcm9vdC5yZXBsYWNlU2VsZWN0aW9ucyhbeyBhbmNob3I6IGNvbnRlbnRTdGFydCwgaGVhZDogY29udGVudEVuZCB9XSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IGtleW1hcCB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4uL2ZlYXR1cmVzL0ZlYXR1cmVcIjtcbmltcG9ydCB7IFNlbGVjdEFsbE9wZXJhdGlvbiB9IGZyb20gXCIuLi9vcGVyYXRpb25zL1NlbGVjdEFsbE9wZXJhdGlvblwiO1xuaW1wb3J0IHsgSU1FU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9JTUVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBPYnNpZGlhblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlXCI7XG5pbXBvcnQgeyBQZXJmb3JtT3BlcmF0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9QZXJmb3JtT3BlcmF0aW9uU2VydmljZVwiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1NldHRpbmdzU2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgU2VsZWN0QWxsRmVhdHVyZSBpbXBsZW1lbnRzIEZlYXR1cmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBsdWdpbjogUGx1Z2luXzIsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1lOiBJTUVTZXJ2aWNlLFxuICAgIHByaXZhdGUgb2JzaWRpYW46IE9ic2lkaWFuU2VydmljZSxcbiAgICBwcml2YXRlIHBlcmZvcm1PcGVyYXRpb246IFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBsb2FkKCkge1xuICAgIHRoaXMucGx1Z2luLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKFxuICAgICAga2V5bWFwLm9mKFtcbiAgICAgICAge1xuICAgICAgICAgIGtleTogXCJjLWFcIixcbiAgICAgICAgICBtYWM6IFwibS1hXCIsXG4gICAgICAgICAgcnVuOiB0aGlzLm9ic2lkaWFuLmNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKHtcbiAgICAgICAgICAgIGNoZWNrOiB0aGlzLmNoZWNrLFxuICAgICAgICAgICAgcnVuOiB0aGlzLnJ1bixcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZCgpIHt9XG5cbiAgcHJpdmF0ZSBjaGVjayA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5zZWxlY3RBbGwgJiYgIXRoaXMuaW1lLmlzSU1FT3BlbmVkKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBydW4gPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgU2VsZWN0QWxsT3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcbiAgfTtcbn1cbiIsImltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gXCIuL09wZXJhdGlvblwiO1xuXG5pbXBvcnQgeyBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcblxuZXhwb3J0IGNsYXNzIFNlbGVjdFRpbGxMaW5lU3RhcnRPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlQ3Vyc29yKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcblxuICAgIGNvbnN0IGN1cnNvciA9IHJvb3QuZ2V0Q3Vyc29yKCk7XG4gICAgY29uc3QgbGlzdCA9IHJvb3QuZ2V0TGlzdFVuZGVyQ3Vyc29yKCk7XG4gICAgY29uc3QgbGluZXMgPSBsaXN0LmdldExpbmVzSW5mbygpO1xuICAgIGNvbnN0IGxpbmVObyA9IGxpbmVzLmZpbmRJbmRleCgobCkgPT4gbC5mcm9tLmxpbmUgPT09IGN1cnNvci5saW5lKTtcblxuICAgIHJvb3QucmVwbGFjZVNlbGVjdGlvbnMoW3sgaGVhZDogbGluZXNbbGluZU5vXS5mcm9tLCBhbmNob3I6IGN1cnNvciB9XSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsdWdpbl8yIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IGtleW1hcCB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi9GZWF0dXJlXCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5pbXBvcnQgeyBTZWxlY3RUaWxsTGluZVN0YXJ0T3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvU2VsZWN0VGlsbExpbmVTdGFydE9wZXJhdGlvblwiO1xuaW1wb3J0IHsgSU1FU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9JTUVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBPYnNpZGlhblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlXCI7XG5pbXBvcnQgeyBQZXJmb3JtT3BlcmF0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9QZXJmb3JtT3BlcmF0aW9uU2VydmljZVwiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1NldHRpbmdzU2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uU2hvdWxkSWdub3JlQnVsbGV0c0ZlYXR1cmUgaW1wbGVtZW50cyBGZWF0dXJlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbHVnaW46IFBsdWdpbl8yLFxuICAgIHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIGltZTogSU1FU2VydmljZSxcbiAgICBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJmb3JtT3BlcmF0aW9uOiBQZXJmb3JtT3BlcmF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnBsdWdpbi5yZWdpc3RlckVkaXRvckV4dGVuc2lvbihcbiAgICAgIGtleW1hcC5vZihbXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IFwibS1zLUFycm93TGVmdFwiLFxuICAgICAgICAgIHJ1bjogdGhpcy5vYnNpZGlhbi5jcmVhdGVLZXltYXBSdW5DYWxsYmFjayh7XG4gICAgICAgICAgICBjaGVjazogdGhpcy5jaGVjayxcbiAgICAgICAgICAgIHJ1bjogdGhpcy5ydW4sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7fVxuXG4gIHByaXZhdGUgY2hlY2sgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Muc3RpY2tDdXJzb3IgJiYgIXRoaXMuaW1lLmlzSU1FT3BlbmVkKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBydW4gPSAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgIHJldHVybiB0aGlzLnBlcmZvcm1PcGVyYXRpb24ucGVyZm9ybU9wZXJhdGlvbihcbiAgICAgIChyb290KSA9PiBuZXcgU2VsZWN0VGlsbExpbmVTdGFydE9wZXJhdGlvbihyb290KSxcbiAgICAgIGVkaXRvclxuICAgICk7XG4gIH07XG59XG4iLCJpbXBvcnQgeyBBcHAsIFBsdWdpblNldHRpbmdUYWIsIFBsdWdpbl8yLCBTZXR0aW5nIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tIFwiLi9GZWF0dXJlXCI7XG5cbmltcG9ydCB7IExpc3RMaW5lQWN0aW9uLCBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmNsYXNzIE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5nVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XG4gIGNvbnN0cnVjdG9yKGFwcDogQXBwLCBwbHVnaW46IFBsdWdpbl8yLCBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UpIHtcbiAgICBzdXBlcihhcHAsIHBsdWdpbik7XG4gIH1cblxuICBkaXNwbGF5KCk6IHZvaWQge1xuICAgIGNvbnN0IHsgY29udGFpbmVyRWwgfSA9IHRoaXM7XG5cbiAgICBjb250YWluZXJFbC5lbXB0eSgpO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZShcIkltcHJvdmUgdGhlIHN0eWxlIG9mIHlvdXIgbGlzdHNcIilcbiAgICAgIC5zZXREZXNjKFxuICAgICAgICBcIlN0eWxlcyBhcmUgb25seSBjb21wYXRpYmxlIHdpdGggYnVpbHQtaW4gT2JzaWRpYW4gdGhlbWVzIGFuZCBtYXkgbm90IGJlIGNvbXBhdGlibGUgd2l0aCBvdGhlciB0aGVtZXMuXCJcbiAgICAgIClcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5zdHlsZUxpc3RzKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLnN0eWxlTGlzdHMgPSB2YWx1ZTtcbiAgICAgICAgICBhd2FpdCB0aGlzLnNldHRpbmdzLnNhdmUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoXCJEcmF3IHZlcnRpY2FsIGluZGVudGF0aW9uIGxpbmVzXCIpXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHtcbiAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMuc2V0dGluZ3MubGlzdExpbmVzKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLmxpc3RMaW5lcyA9IHZhbHVlO1xuICAgICAgICAgIGF3YWl0IHRoaXMuc2V0dGluZ3Muc2F2ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZShcIlZlcnRpY2FsIGluZGVudGF0aW9uIGxpbmUgY2xpY2sgYWN0aW9uXCIpXG4gICAgICAuYWRkRHJvcGRvd24oKGRyb3Bkb3duKSA9PiB7XG4gICAgICAgIGRyb3Bkb3duXG4gICAgICAgICAgLmFkZE9wdGlvbnMoe1xuICAgICAgICAgICAgbm9uZTogXCJOb25lXCIsXG4gICAgICAgICAgICBcInpvb20taW5cIjogXCJab29tIEluXCIsXG4gICAgICAgICAgICBcInRvZ2dsZS1mb2xkaW5nXCI6IFwiVG9nZ2xlIEZvbGRpbmdcIixcbiAgICAgICAgICB9IGFzIHsgW2tleSBpbiBMaXN0TGluZUFjdGlvbl06IHN0cmluZyB9KVxuICAgICAgICAgIC5zZXRWYWx1ZSh0aGlzLnNldHRpbmdzLmxpc3RMaW5lQWN0aW9uKVxuICAgICAgICAgIC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MubGlzdExpbmVBY3Rpb24gPSB2YWx1ZSBhcyBMaXN0TGluZUFjdGlvbjtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2V0dGluZ3Muc2F2ZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKFwiU3RpY2sgdGhlIGN1cnNvciB0byB0aGUgY29udGVudFwiKVxuICAgICAgLnNldERlc2MoXCJEb24ndCBsZXQgdGhlIGN1cnNvciBtb3ZlIHRvIHRoZSBidWxsZXQgcG9zaXRpb24uXCIpXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHtcbiAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMuc2V0dGluZ3Muc3RpY2tDdXJzb3IpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0dGluZ3Muc3RpY2tDdXJzb3IgPSB2YWx1ZTtcbiAgICAgICAgICBhd2FpdCB0aGlzLnNldHRpbmdzLnNhdmUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoXCJFbmhhbmNlIHRoZSBFbnRlciBrZXlcIilcbiAgICAgIC5zZXREZXNjKFwiTWFrZSB0aGUgRW50ZXIga2V5IGJlaGF2ZSB0aGUgc2FtZSBhcyBvdGhlciBvdXRsaW5lcnMuXCIpXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHtcbiAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMuc2V0dGluZ3MuYmV0dGVyRW50ZXIpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0dGluZ3MuYmV0dGVyRW50ZXIgPSB2YWx1ZTtcbiAgICAgICAgICBhd2FpdCB0aGlzLnNldHRpbmdzLnNhdmUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoXCJFbmhhbmNlIHRoZSBUYWIga2V5XCIpXG4gICAgICAuc2V0RGVzYyhcIk1ha2UgVGFiIGFuZCBTaGlmdC1UYWIgYmVoYXZlIHRoZSBzYW1lIGFzIG90aGVyIG91dGxpbmVycy5cIilcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4ge1xuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5zZXR0aW5ncy5iZXR0ZXJUYWIpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0dGluZ3MuYmV0dGVyVGFiID0gdmFsdWU7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zZXR0aW5ncy5zYXZlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKFwiRW5oYW5jZSB0aGUgQ3RybCtBIG9yIENtZCtBIGJlaGF2aW9yXCIpXG4gICAgICAuc2V0RGVzYyhcbiAgICAgICAgXCJQcmVzcyB0aGUgaG90a2V5IG9uY2UgdG8gc2VsZWN0IHRoZSBjdXJyZW50IGxpc3QgaXRlbS4gUHJlc3MgdGhlIGhvdGtleSB0d2ljZSB0byBzZWxlY3QgdGhlIGVudGlyZSBsaXN0LlwiXG4gICAgICApXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHtcbiAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMuc2V0dGluZ3Muc2VsZWN0QWxsKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICB0aGlzLnNldHRpbmdzLnNlbGVjdEFsbCA9IHZhbHVlO1xuICAgICAgICAgIGF3YWl0IHRoaXMuc2V0dGluZ3Muc2F2ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZShcIkRlYnVnIG1vZGVcIilcbiAgICAgIC5zZXREZXNjKFxuICAgICAgICBcIk9wZW4gRGV2VG9vbHMgKENvbW1hbmQrT3B0aW9uK0kgb3IgQ29udHJvbCtTaGlmdCtJKSB0byBjb3B5IHRoZSBkZWJ1ZyBsb2dzLlwiXG4gICAgICApXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHtcbiAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMuc2V0dGluZ3MuZGVidWcpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0dGluZ3MuZGVidWcgPSB2YWx1ZTtcbiAgICAgICAgICBhd2FpdCB0aGlzLnNldHRpbmdzLnNhdmUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NUYWJGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMiwgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4uYWRkU2V0dGluZ1RhYihcbiAgICAgIG5ldyBPYnNpZGlhbk91dGxpbmVyUGx1Z2luU2V0dGluZ1RhYihcbiAgICAgICAgdGhpcy5wbHVnaW4uYXBwLFxuICAgICAgICB0aGlzLnBsdWdpbixcbiAgICAgICAgdGhpcy5zZXR0aW5nc1xuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoKSB7fVxufVxuIiwiaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSBcIi4vT3BlcmF0aW9uXCI7XG5cbmltcG9ydCB7IFJvb3QgfSBmcm9tIFwiLi4vcm9vdFwiO1xuXG5leHBvcnQgY2xhc3MgQ3JlYXRlTm90ZUxpbmVPcGVyYXRpb24gaW1wbGVtZW50cyBPcGVyYXRpb24ge1xuICBwcml2YXRlIHN0b3BQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvb3Q6IFJvb3QpIHt9XG5cbiAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkO1xuICB9XG5cbiAgcGVyZm9ybSgpIHtcbiAgICBjb25zdCB7IHJvb3QgfSA9IHRoaXM7XG5cbiAgICBpZiAoIXJvb3QuaGFzU2luZ2xlQ3Vyc29yKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJzb3IgPSByb290LmdldEN1cnNvcigpO1xuICAgIGNvbnN0IGxpc3QgPSByb290LmdldExpc3RVbmRlckN1cnNvcigpO1xuICAgIGNvbnN0IGxpbmVVbmRlckN1cnNvciA9IGxpc3RcbiAgICAgIC5nZXRMaW5lc0luZm8oKVxuICAgICAgLmZpbmQoKGwpID0+IGwuZnJvbS5saW5lID09PSBjdXJzb3IubGluZSk7XG5cbiAgICBpZiAoY3Vyc29yLmNoIDwgbGluZVVuZGVyQ3Vyc29yLmZyb20uY2gpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3BQcm9wYWdhdGlvbiA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVkID0gdHJ1ZTtcblxuICAgIGlmICghbGlzdC5nZXROb3Rlc0luZGVudCgpKSB7XG4gICAgICBsaXN0LnNldE5vdGVzSW5kZW50KGxpc3QuZ2V0Rmlyc3RMaW5lSW5kZW50KCkgKyBcIiAgXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmVzID0gbGlzdC5nZXRMaW5lc0luZm8oKS5yZWR1Y2UoKGFjYywgbGluZSkgPT4ge1xuICAgICAgaWYgKGN1cnNvci5saW5lID09PSBsaW5lLmZyb20ubGluZSkge1xuICAgICAgICBhY2MucHVzaChsaW5lLnRleHQuc2xpY2UoMCwgY3Vyc29yLmNoIC0gbGluZS5mcm9tLmNoKSk7XG4gICAgICAgIGFjYy5wdXNoKGxpbmUudGV4dC5zbGljZShjdXJzb3IuY2ggLSBsaW5lLmZyb20uY2gpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFjYy5wdXNoKGxpbmUudGV4dCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10gYXMgc3RyaW5nW10pO1xuXG4gICAgbGlzdC5yZXBsYWNlTGluZXMobGluZXMpO1xuXG4gICAgcm9vdC5yZXBsYWNlQ3Vyc29yKHtcbiAgICAgIGxpbmU6IGN1cnNvci5saW5lICsgMSxcbiAgICAgIGNoOiBsaXN0LmdldE5vdGVzSW5kZW50KCkubGVuZ3RoLFxuICAgIH0pO1xuICB9XG59XG4iLCJpbXBvcnQgeyBQbHVnaW5fMiB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBrZXltYXAgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivdmlld1wiO1xuXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4vRmVhdHVyZVwiO1xuXG5pbXBvcnQgeyBNeUVkaXRvciB9IGZyb20gXCIuLi9NeUVkaXRvclwiO1xuaW1wb3J0IHsgQ3JlYXRlTm90ZUxpbmVPcGVyYXRpb24gfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9DcmVhdGVOb3RlTGluZU9wZXJhdGlvblwiO1xuaW1wb3J0IHsgSU1FU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9JTUVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBPYnNpZGlhblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlXCI7XG5pbXBvcnQgeyBQZXJmb3JtT3BlcmF0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9QZXJmb3JtT3BlcmF0aW9uU2VydmljZVwiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL1NldHRpbmdzU2VydmljZVwiO1xuXG5leHBvcnQgY2xhc3MgU2hpZnRFbnRlclNob3VsZENyZWF0ZU5vdGVGZWF0dXJlIGltcGxlbWVudHMgRmVhdHVyZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGx1Z2luOiBQbHVnaW5fMixcbiAgICBwcml2YXRlIG9ic2lkaWFuOiBPYnNpZGlhblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1lOiBJTUVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbjogUGVyZm9ybU9wZXJhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgdGhpcy5wbHVnaW4ucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24oXG4gICAgICBrZXltYXAub2YoW1xuICAgICAgICB7XG4gICAgICAgICAga2V5OiBcInMtRW50ZXJcIixcbiAgICAgICAgICBydW46IHRoaXMub2JzaWRpYW4uY3JlYXRlS2V5bWFwUnVuQ2FsbGJhY2soe1xuICAgICAgICAgICAgY2hlY2s6IHRoaXMuY2hlY2ssXG4gICAgICAgICAgICBydW46IHRoaXMucnVuLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge31cblxuICBwcml2YXRlIGNoZWNrID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmJldHRlckVudGVyICYmICF0aGlzLmltZS5pc0lNRU9wZW5lZCgpO1xuICB9O1xuXG4gIHByaXZhdGUgcnVuID0gKGVkaXRvcjogTXlFZGl0b3IpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wZXJmb3JtT3BlcmF0aW9uLnBlcmZvcm1PcGVyYXRpb24oXG4gICAgICAocm9vdCkgPT4gbmV3IENyZWF0ZU5vdGVMaW5lT3BlcmF0aW9uKHJvb3QpLFxuICAgICAgZWRpdG9yXG4gICAgKTtcbiAgfTtcbn1cbiIsImV4cG9ydCBpbnRlcmZhY2UgQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb24ge1xuICBsaW5lOiBudW1iZXI7XG4gIGNoOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbHlDaGFuZ2VzRWRpdG9yU2VsZWN0aW9uIHtcbiAgYW5jaG9yOiBBcHBseUNoYW5nZXNFZGl0b3JQb3NpdGlvbjtcbiAgaGVhZDogQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbHlDaGFuZ2VzRWRpdG9yIHtcbiAgZ2V0UmFuZ2UoXG4gICAgZnJvbTogQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb24sXG4gICAgdG86IEFwcGx5Q2hhbmdlc0VkaXRvclBvc2l0aW9uXG4gICk6IHN0cmluZztcbiAgcmVwbGFjZVJhbmdlKFxuICAgIHJlcGxhY2VtZW50OiBzdHJpbmcsXG4gICAgZnJvbTogQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb24sXG4gICAgdG86IEFwcGx5Q2hhbmdlc0VkaXRvclBvc2l0aW9uXG4gICk6IHZvaWQ7XG4gIHNldFNlbGVjdGlvbnMoc2VsZWN0aW9uczogQXBwbHlDaGFuZ2VzRWRpdG9yU2VsZWN0aW9uW10pOiB2b2lkO1xuICBmb2xkKG46IG51bWJlcik6IHZvaWQ7XG4gIHVuZm9sZChuOiBudW1iZXIpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcGx5Q2hhbmdlc0xpc3Qge1xuICBpc0ZvbGRSb290KCk6IGJvb2xlYW47XG4gIGdldENoaWxkcmVuKCk6IEFwcGx5Q2hhbmdlc0xpc3RbXTtcbiAgZ2V0Rmlyc3RMaW5lQ29udGVudFN0YXJ0KCk6IHsgbGluZTogbnVtYmVyIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbHlDaGFuZ2VzUm9vdCB7XG4gIGdldFJhbmdlKCk6IFtBcHBseUNoYW5nZXNFZGl0b3JQb3NpdGlvbiwgQXBwbHlDaGFuZ2VzRWRpdG9yUG9zaXRpb25dO1xuICBnZXRTZWxlY3Rpb25zKCk6IHtcbiAgICBhbmNob3I6IEFwcGx5Q2hhbmdlc0VkaXRvclBvc2l0aW9uO1xuICAgIGhlYWQ6IEFwcGx5Q2hhbmdlc0VkaXRvclBvc2l0aW9uO1xuICB9W107XG4gIHByaW50KCk6IHN0cmluZztcbiAgZ2V0Q2hpbGRyZW4oKTogQXBwbHlDaGFuZ2VzTGlzdFtdO1xufVxuXG5leHBvcnQgY2xhc3MgQXBwbHlDaGFuZ2VzU2VydmljZSB7XG4gIGFwcGx5Q2hhbmdlcyhlZGl0b3I6IEFwcGx5Q2hhbmdlc0VkaXRvciwgcm9vdDogQXBwbHlDaGFuZ2VzUm9vdCkge1xuICAgIGNvbnN0IHJvb3RSYW5nZSA9IHJvb3QuZ2V0UmFuZ2UoKTtcbiAgICBjb25zdCBvbGRTdHJpbmcgPSBlZGl0b3IuZ2V0UmFuZ2Uocm9vdFJhbmdlWzBdLCByb290UmFuZ2VbMV0pO1xuICAgIGNvbnN0IG5ld1N0cmluZyA9IHJvb3QucHJpbnQoKTtcblxuICAgIGNvbnN0IGZyb21MaW5lID0gcm9vdFJhbmdlWzBdLmxpbmU7XG4gICAgY29uc3QgdG9MaW5lID0gcm9vdFJhbmdlWzFdLmxpbmU7XG5cbiAgICBmb3IgKGxldCBsID0gZnJvbUxpbmU7IGwgPD0gdG9MaW5lOyBsKyspIHtcbiAgICAgIGVkaXRvci51bmZvbGQobCk7XG4gICAgfVxuXG4gICAgY29uc3QgY2hhbmdlRnJvbSA9IHsgLi4ucm9vdFJhbmdlWzBdIH07XG4gICAgY29uc3QgY2hhbmdlVG8gPSB7IC4uLnJvb3RSYW5nZVsxXSB9O1xuICAgIGxldCBvbGRUbXAgPSBvbGRTdHJpbmc7XG4gICAgbGV0IG5ld1RtcCA9IG5ld1N0cmluZztcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zdGFudC1jb25kaXRpb25cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgbmxJbmRleCA9IG9sZFRtcC5sYXN0SW5kZXhPZihcIlxcblwiKTtcbiAgICAgIGlmIChubEluZGV4IDwgMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNvbnN0IG9sZExpbmUgPSBvbGRUbXAuc2xpY2UobmxJbmRleCk7XG4gICAgICBjb25zdCBuZXdMaW5lID0gbmV3VG1wLnNsaWNlKC1vbGRMaW5lLmxlbmd0aCk7XG4gICAgICBpZiAob2xkTGluZSAhPT0gbmV3TGluZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIG9sZFRtcCA9IG9sZFRtcC5zbGljZSgwLCAtb2xkTGluZS5sZW5ndGgpO1xuICAgICAgbmV3VG1wID0gbmV3VG1wLnNsaWNlKDAsIC1vbGRMaW5lLmxlbmd0aCk7XG5cbiAgICAgIGNvbnN0IG5sSW5kZXgyID0gb2xkVG1wLmxhc3RJbmRleE9mKFwiXFxuXCIpO1xuICAgICAgY2hhbmdlVG8uY2ggPVxuICAgICAgICBubEluZGV4MiA+PSAwID8gb2xkVG1wLmxlbmd0aCAtIG5sSW5kZXgyIC0gMSA6IG9sZFRtcC5sZW5ndGg7XG4gICAgICBjaGFuZ2VUby5saW5lLS07XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zdGFudC1jb25kaXRpb25cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgbmxJbmRleCA9IG9sZFRtcC5pbmRleE9mKFwiXFxuXCIpO1xuICAgICAgaWYgKG5sSW5kZXggPCAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY29uc3Qgb2xkTGluZSA9IG9sZFRtcC5zbGljZSgwLCBubEluZGV4ICsgMSk7XG4gICAgICBjb25zdCBuZXdMaW5lID0gbmV3VG1wLnNsaWNlKDAsIG9sZExpbmUubGVuZ3RoKTtcbiAgICAgIGlmIChvbGRMaW5lICE9PSBuZXdMaW5lKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2hhbmdlRnJvbS5saW5lKys7XG4gICAgICBvbGRUbXAgPSBvbGRUbXAuc2xpY2Uob2xkTGluZS5sZW5ndGgpO1xuICAgICAgbmV3VG1wID0gbmV3VG1wLnNsaWNlKG9sZExpbmUubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBpZiAob2xkVG1wICE9PSBuZXdUbXApIHtcbiAgICAgIGVkaXRvci5yZXBsYWNlUmFuZ2UobmV3VG1wLCBjaGFuZ2VGcm9tLCBjaGFuZ2VUbyk7XG4gICAgfVxuXG4gICAgZWRpdG9yLnNldFNlbGVjdGlvbnMocm9vdC5nZXRTZWxlY3Rpb25zKCkpO1xuXG4gICAgZnVuY3Rpb24gcmVjdXJzaXZlKGxpc3Q6IEFwcGx5Q2hhbmdlc0xpc3QpIHtcbiAgICAgIGZvciAoY29uc3QgYyBvZiBsaXN0LmdldENoaWxkcmVuKCkpIHtcbiAgICAgICAgcmVjdXJzaXZlKGMpO1xuICAgICAgfVxuICAgICAgaWYgKGxpc3QuaXNGb2xkUm9vdCgpKSB7XG4gICAgICAgIGVkaXRvci5mb2xkKGxpc3QuZ2V0Rmlyc3RMaW5lQ29udGVudFN0YXJ0KCkubGluZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgYyBvZiByb290LmdldENoaWxkcmVuKCkpIHtcbiAgICAgIHJlY3Vyc2l2ZShjKTtcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmV4cG9ydCBjbGFzcyBJTUVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb21wb3NpdGlvbiA9IGZhbHNlO1xuXG4gIGFzeW5jIGxvYWQoKSB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNvbXBvc2l0aW9uc3RhcnRcIiwgdGhpcy5vbkNvbXBvc2l0aW9uU3RhcnQpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjb21wb3NpdGlvbmVuZFwiLCB0aGlzLm9uQ29tcG9zaXRpb25FbmQpO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKCkge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjb21wb3NpdGlvbmVuZFwiLCB0aGlzLm9uQ29tcG9zaXRpb25FbmQpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjb21wb3NpdGlvbnN0YXJ0XCIsIHRoaXMub25Db21wb3NpdGlvblN0YXJ0KTtcbiAgfVxuXG4gIGlzSU1FT3BlbmVkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbXBvc2l0aW9uICYmIFBsYXRmb3JtLmlzRGVza3RvcDtcbiAgfVxuXG4gIHByaXZhdGUgb25Db21wb3NpdGlvblN0YXJ0ID0gKCkgPT4ge1xuICAgIHRoaXMuY29tcG9zaXRpb24gPSB0cnVlO1xuICB9O1xuXG4gIHByaXZhdGUgb25Db21wb3NpdGlvbkVuZCA9ICgpID0+IHtcbiAgICB0aGlzLmNvbXBvc2l0aW9uID0gZmFsc2U7XG4gIH07XG59XG4iLCJpbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tIFwiLi9TZXR0aW5nc1NlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIExvZ2dlclNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UpIHt9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgbG9nKG1ldGhvZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGlmICghdGhpcy5zZXR0aW5ncy5kZWJ1Zykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGUuaW5mbyhtZXRob2QsIC4uLmFyZ3MpO1xuICB9XG5cbiAgYmluZChtZXRob2Q6IHN0cmluZykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcmV0dXJuICguLi5hcmdzOiBhbnlbXSkgPT4gdGhpcy5sb2cobWV0aG9kLCAuLi5hcmdzKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgQXBwLCBFZGl0b3IsIGVkaXRvckluZm9GaWVsZCB9IGZyb20gXCJvYnNpZGlhblwiO1xuXG5pbXBvcnQgeyBFZGl0b3JTdGF0ZSB9IGZyb20gXCJAY29kZW1pcnJvci9zdGF0ZVwiO1xuaW1wb3J0IHsgRWRpdG9yVmlldyB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5cbmltcG9ydCB7IE15RWRpdG9yIH0gZnJvbSBcIi4uL015RWRpdG9yXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2JzaWRpYW5UYWJzU2V0dGluZ3Mge1xuICB1c2VUYWI6IGJvb2xlYW47XG4gIHRhYlNpemU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPYnNpZGlhbkZvbGRTZXR0aW5ncyB7XG4gIGZvbGRJbmRlbnQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBPYnNpZGlhblNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcDogQXBwKSB7fVxuXG4gIGlzTGVnYWN5RWRpdG9yRW5hYmxlZCgpIHtcbiAgICBjb25zdCBjb25maWc6IHsgbGVnYWN5RWRpdG9yOiBib29sZWFuIH0gPSB7XG4gICAgICBsZWdhY3lFZGl0b3I6IGZhbHNlLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIC4uLih0aGlzLmFwcC52YXVsdCBhcyBhbnkpLmNvbmZpZyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNvbmZpZy5sZWdhY3lFZGl0b3I7XG4gIH1cblxuICBpc0RlZmF1bHRUaGVtZUVuYWJsZWQoKSB7XG4gICAgY29uc3QgY29uZmlnOiB7IGNzc1RoZW1lOiBzdHJpbmcgfSA9IHtcbiAgICAgIGNzc1RoZW1lOiBcIlwiLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIC4uLih0aGlzLmFwcC52YXVsdCBhcyBhbnkpLmNvbmZpZyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNvbmZpZy5jc3NUaGVtZSA9PT0gXCJcIjtcbiAgfVxuXG4gIGdldE9ic2lkaWFuVGFic1NldHRpbmdzKCk6IE9ic2lkaWFuVGFic1NldHRpbmdzIHtcbiAgICByZXR1cm4ge1xuICAgICAgdXNlVGFiOiB0cnVlLFxuICAgICAgdGFiU2l6ZTogNCxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAuLi4odGhpcy5hcHAudmF1bHQgYXMgYW55KS5jb25maWcsXG4gICAgfTtcbiAgfVxuXG4gIGdldE9ic2lkaWFuRm9sZFNldHRpbmdzKCk6IE9ic2lkaWFuRm9sZFNldHRpbmdzIHtcbiAgICByZXR1cm4ge1xuICAgICAgZm9sZEluZGVudDogdHJ1ZSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAuLi4odGhpcy5hcHAudmF1bHQgYXMgYW55KS5jb25maWcsXG4gICAgfTtcbiAgfVxuXG4gIGdldERlZmF1bHRJbmRlbnRDaGFycygpIHtcbiAgICBjb25zdCB7IHVzZVRhYiwgdGFiU2l6ZSB9ID0gdGhpcy5nZXRPYnNpZGlhblRhYnNTZXR0aW5ncygpO1xuXG4gICAgcmV0dXJuIHVzZVRhYiA/IFwiXFx0XCIgOiBuZXcgQXJyYXkodGFiU2l6ZSkuZmlsbChcIiBcIikuam9pbihcIlwiKTtcbiAgfVxuXG4gIGdldEVkaXRvckZyb21TdGF0ZShzdGF0ZTogRWRpdG9yU3RhdGUpIHtcbiAgICByZXR1cm4gbmV3IE15RWRpdG9yKHN0YXRlLmZpZWxkKGVkaXRvckluZm9GaWVsZCkuZWRpdG9yKTtcbiAgfVxuXG4gIGNyZWF0ZUtleW1hcFJ1bkNhbGxiYWNrKGNvbmZpZzoge1xuICAgIGNoZWNrPzogKGVkaXRvcjogTXlFZGl0b3IpID0+IGJvb2xlYW47XG4gICAgcnVuOiAoZWRpdG9yOiBNeUVkaXRvcikgPT4ge1xuICAgICAgc2hvdWxkVXBkYXRlOiBib29sZWFuO1xuICAgICAgc2hvdWxkU3RvcFByb3BhZ2F0aW9uOiBib29sZWFuO1xuICAgIH07XG4gIH0pIHtcbiAgICBjb25zdCBjaGVjayA9IGNvbmZpZy5jaGVjayB8fCAoKCkgPT4gdHJ1ZSk7XG4gICAgY29uc3QgeyBydW4gfSA9IGNvbmZpZztcblxuICAgIHJldHVybiAodmlldzogRWRpdG9yVmlldyk6IGJvb2xlYW4gPT4ge1xuICAgICAgY29uc3QgZWRpdG9yID0gdGhpcy5nZXRFZGl0b3JGcm9tU3RhdGUodmlldy5zdGF0ZSk7XG5cbiAgICAgIGlmICghY2hlY2soZWRpdG9yKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgc2hvdWxkVXBkYXRlLCBzaG91bGRTdG9wUHJvcGFnYXRpb24gfSA9IHJ1bihlZGl0b3IpO1xuXG4gICAgICByZXR1cm4gc2hvdWxkVXBkYXRlIHx8IHNob3VsZFN0b3BQcm9wYWdhdGlvbjtcbiAgICB9O1xuICB9XG5cbiAgY3JlYXRlRWRpdG9yQ2FsbGJhY2soY2I6IChlZGl0b3I6IE15RWRpdG9yKSA9PiBib29sZWFuKSB7XG4gICAgcmV0dXJuIChlZGl0b3I6IEVkaXRvcikgPT4ge1xuICAgICAgY29uc3QgbXlFZGl0b3IgPSBuZXcgTXlFZGl0b3IoZWRpdG9yKTtcbiAgICAgIGNvbnN0IHNob3VsZFN0b3BQcm9wYWdhdGlvbiA9IGNiKG15RWRpdG9yKTtcblxuICAgICAgaWYgKFxuICAgICAgICAhc2hvdWxkU3RvcFByb3BhZ2F0aW9uICYmXG4gICAgICAgIHdpbmRvdy5ldmVudCAmJlxuICAgICAgICB3aW5kb3cuZXZlbnQudHlwZSA9PT0gXCJrZXlkb3duXCJcbiAgICAgICkge1xuICAgICAgICBteUVkaXRvci50cmlnZ2VyT25LZXlEb3duKHdpbmRvdy5ldmVudCBhcyBLZXlib2FyZEV2ZW50KTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG4iLCJpbXBvcnQgeyBMaXN0LCBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvTG9nZ2VyU2VydmljZVwiO1xuXG5jb25zdCBidWxsZXRTaWduID0gYCg/OlstKitdfFxcXFxkK1xcXFwuKWA7XG5cbmNvbnN0IGxpc3RJdGVtV2l0aG91dFNwYWNlc1JlID0gbmV3IFJlZ0V4cChgXiR7YnVsbGV0U2lnbn0oIHxcXHQpYCk7XG5jb25zdCBsaXN0SXRlbVJlID0gbmV3IFJlZ0V4cChgXlsgXFx0XSoke2J1bGxldFNpZ259KCB8XFx0KWApO1xuY29uc3Qgc3RyaW5nV2l0aFNwYWNlc1JlID0gbmV3IFJlZ0V4cChgXlsgXFx0XStgKTtcbmNvbnN0IHBhcnNlTGlzdEl0ZW1SZSA9IG5ldyBSZWdFeHAoYF4oWyBcXHRdKikoJHtidWxsZXRTaWdufSkoIHxcXHQpKC4qKSRgKTtcblxuZXhwb3J0IGludGVyZmFjZSBSZWFkZXJQb3NpdGlvbiB7XG4gIGxpbmU6IG51bWJlcjtcbiAgY2g6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWFkZXJTZWxlY3Rpb24ge1xuICBhbmNob3I6IFJlYWRlclBvc2l0aW9uO1xuICBoZWFkOiBSZWFkZXJQb3NpdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWFkZXIge1xuICBnZXRDdXJzb3IoKTogUmVhZGVyUG9zaXRpb247XG4gIGdldExpbmUobjogbnVtYmVyKTogc3RyaW5nO1xuICBsYXN0TGluZSgpOiBudW1iZXI7XG4gIGxpc3RTZWxlY3Rpb25zKCk6IFJlYWRlclNlbGVjdGlvbltdO1xuICBnZXRBbGxGb2xkZWRMaW5lcygpOiBudW1iZXJbXTtcbn1cblxuaW50ZXJmYWNlIFBhcnNlTGlzdExpc3Qge1xuICBnZXRGaXJzdExpbmVJbmRlbnQoKTogc3RyaW5nO1xuICBzZXROb3Rlc0luZGVudChub3Rlc0luZGVudDogc3RyaW5nKTogdm9pZDtcbiAgZ2V0Tm90ZXNJbmRlbnQoKTogc3RyaW5nIHwgbnVsbDtcbiAgYWRkTGluZSh0ZXh0OiBzdHJpbmcpOiB2b2lkO1xuICBnZXRQYXJlbnQoKTogUGFyc2VMaXN0TGlzdCB8IG51bGw7XG4gIGFkZEFmdGVyQWxsKGxpc3Q6IFBhcnNlTGlzdExpc3QpOiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgUGFyc2VyU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlKSB7fVxuXG4gIHBhcnNlUmFuZ2UoZWRpdG9yOiBSZWFkZXIsIGZyb21MaW5lID0gMCwgdG9MaW5lID0gZWRpdG9yLmxhc3RMaW5lKCkpOiBSb290W10ge1xuICAgIGNvbnN0IGxpc3RzOiBSb290W10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSBmcm9tTGluZTsgaSA8PSB0b0xpbmU7IGkrKykge1xuICAgICAgY29uc3QgbGluZSA9IGVkaXRvci5nZXRMaW5lKGkpO1xuXG4gICAgICBpZiAoaSA9PT0gZnJvbUxpbmUgfHwgdGhpcy5pc0xpc3RJdGVtKGxpbmUpKSB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLnBhcnNlV2l0aExpbWl0cyhlZGl0b3IsIGksIGZyb21MaW5lLCB0b0xpbmUpO1xuXG4gICAgICAgIGlmIChsaXN0KSB7XG4gICAgICAgICAgbGlzdHMucHVzaChsaXN0KTtcbiAgICAgICAgICBpID0gbGlzdC5nZXRSYW5nZSgpWzFdLmxpbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGlzdHM7XG4gIH1cblxuICBwYXJzZShlZGl0b3I6IFJlYWRlciwgY3Vyc29yID0gZWRpdG9yLmdldEN1cnNvcigpKTogUm9vdCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnBhcnNlV2l0aExpbWl0cyhlZGl0b3IsIGN1cnNvci5saW5lLCAwLCBlZGl0b3IubGFzdExpbmUoKSk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlV2l0aExpbWl0cyhcbiAgICBlZGl0b3I6IFJlYWRlcixcbiAgICBwYXJzaW5nU3RhcnRMaW5lOiBudW1iZXIsXG4gICAgbGltaXRGcm9tOiBudW1iZXIsXG4gICAgbGltaXRUbzogbnVtYmVyXG4gICk6IFJvb3QgfCBudWxsIHtcbiAgICBjb25zdCBkID0gdGhpcy5sb2dnZXIuYmluZChcInBhcnNlTGlzdFwiKTtcbiAgICBjb25zdCBlcnJvciA9IChtc2c6IHN0cmluZyk6IG51bGwgPT4ge1xuICAgICAgZChtc2cpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcblxuICAgIGNvbnN0IGxpbmUgPSBlZGl0b3IuZ2V0TGluZShwYXJzaW5nU3RhcnRMaW5lKTtcblxuICAgIGxldCBsaXN0TG9va2luZ1BvczogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5pc0xpc3RJdGVtKGxpbmUpKSB7XG4gICAgICBsaXN0TG9va2luZ1BvcyA9IHBhcnNpbmdTdGFydExpbmU7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzTGluZVdpdGhJbmRlbnQobGluZSkpIHtcbiAgICAgIGxldCBsaXN0TG9va2luZ1Bvc1NlYXJjaCA9IHBhcnNpbmdTdGFydExpbmUgLSAxO1xuICAgICAgd2hpbGUgKGxpc3RMb29raW5nUG9zU2VhcmNoID49IDApIHtcbiAgICAgICAgY29uc3QgbGluZSA9IGVkaXRvci5nZXRMaW5lKGxpc3RMb29raW5nUG9zU2VhcmNoKTtcbiAgICAgICAgaWYgKHRoaXMuaXNMaXN0SXRlbShsaW5lKSkge1xuICAgICAgICAgIGxpc3RMb29raW5nUG9zID0gbGlzdExvb2tpbmdQb3NTZWFyY2g7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0xpbmVXaXRoSW5kZW50KGxpbmUpKSB7XG4gICAgICAgICAgbGlzdExvb2tpbmdQb3NTZWFyY2gtLTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChsaXN0TG9va2luZ1BvcyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgbGlzdFN0YXJ0TGluZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGxpc3RTdGFydExpbmVMb29rdXAgPSBsaXN0TG9va2luZ1BvcztcbiAgICB3aGlsZSAobGlzdFN0YXJ0TGluZUxvb2t1cCA+PSAwKSB7XG4gICAgICBjb25zdCBsaW5lID0gZWRpdG9yLmdldExpbmUobGlzdFN0YXJ0TGluZUxvb2t1cCk7XG4gICAgICBpZiAoIXRoaXMuaXNMaXN0SXRlbShsaW5lKSAmJiAhdGhpcy5pc0xpbmVXaXRoSW5kZW50KGxpbmUpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNMaXN0SXRlbVdpdGhvdXRTcGFjZXMobGluZSkpIHtcbiAgICAgICAgbGlzdFN0YXJ0TGluZSA9IGxpc3RTdGFydExpbmVMb29rdXA7XG4gICAgICAgIGlmIChsaXN0U3RhcnRMaW5lTG9va3VwIDw9IGxpbWl0RnJvbSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsaXN0U3RhcnRMaW5lTG9va3VwLS07XG4gICAgfVxuXG4gICAgaWYgKGxpc3RTdGFydExpbmUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCBsaXN0RW5kTGluZSA9IGxpc3RMb29raW5nUG9zO1xuICAgIGxldCBsaXN0RW5kTGluZUxvb2t1cCA9IGxpc3RMb29raW5nUG9zO1xuICAgIHdoaWxlIChsaXN0RW5kTGluZUxvb2t1cCA8PSBlZGl0b3IubGFzdExpbmUoKSkge1xuICAgICAgY29uc3QgbGluZSA9IGVkaXRvci5nZXRMaW5lKGxpc3RFbmRMaW5lTG9va3VwKTtcbiAgICAgIGlmICghdGhpcy5pc0xpc3RJdGVtKGxpbmUpICYmICF0aGlzLmlzTGluZVdpdGhJbmRlbnQobGluZSkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMuaXNFbXB0eUxpbmUobGluZSkpIHtcbiAgICAgICAgbGlzdEVuZExpbmUgPSBsaXN0RW5kTGluZUxvb2t1cDtcbiAgICAgIH1cbiAgICAgIGlmIChsaXN0RW5kTGluZUxvb2t1cCA+PSBsaW1pdFRvKSB7XG4gICAgICAgIGxpc3RFbmRMaW5lID0gbGltaXRUbztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBsaXN0RW5kTGluZUxvb2t1cCsrO1xuICAgIH1cblxuICAgIGlmIChsaXN0U3RhcnRMaW5lID4gcGFyc2luZ1N0YXJ0TGluZSB8fCBsaXN0RW5kTGluZSA8IHBhcnNpbmdTdGFydExpbmUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHJvb3QgPSBuZXcgUm9vdChcbiAgICAgIHsgbGluZTogbGlzdFN0YXJ0TGluZSwgY2g6IDAgfSxcbiAgICAgIHsgbGluZTogbGlzdEVuZExpbmUsIGNoOiBlZGl0b3IuZ2V0TGluZShsaXN0RW5kTGluZSkubGVuZ3RoIH0sXG4gICAgICBlZGl0b3IubGlzdFNlbGVjdGlvbnMoKS5tYXAoKHIpID0+ICh7XG4gICAgICAgIGFuY2hvcjogeyBsaW5lOiByLmFuY2hvci5saW5lLCBjaDogci5hbmNob3IuY2ggfSxcbiAgICAgICAgaGVhZDogeyBsaW5lOiByLmhlYWQubGluZSwgY2g6IHIuaGVhZC5jaCB9LFxuICAgICAgfSkpXG4gICAgKTtcblxuICAgIGxldCBjdXJyZW50UGFyZW50OiBQYXJzZUxpc3RMaXN0ID0gcm9vdC5nZXRSb290TGlzdCgpO1xuICAgIGxldCBjdXJyZW50TGlzdDogUGFyc2VMaXN0TGlzdCB8IG51bGwgPSBudWxsO1xuICAgIGxldCBjdXJyZW50SW5kZW50ID0gXCJcIjtcblxuICAgIGNvbnN0IGZvbGRlZExpbmVzID0gZWRpdG9yLmdldEFsbEZvbGRlZExpbmVzKCk7XG5cbiAgICBmb3IgKGxldCBsID0gbGlzdFN0YXJ0TGluZTsgbCA8PSBsaXN0RW5kTGluZTsgbCsrKSB7XG4gICAgICBjb25zdCBsaW5lID0gZWRpdG9yLmdldExpbmUobCk7XG4gICAgICBjb25zdCBtYXRjaGVzID0gcGFyc2VMaXN0SXRlbVJlLmV4ZWMobGluZSk7XG5cbiAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgIGNvbnN0IFssIGluZGVudCwgYnVsbGV0LCBzcGFjZUFmdGVyQnVsbGV0LCBjb250ZW50XSA9IG1hdGNoZXM7XG5cbiAgICAgICAgY29uc3QgY29tcGFyZUxlbmd0aCA9IE1hdGgubWluKGN1cnJlbnRJbmRlbnQubGVuZ3RoLCBpbmRlbnQubGVuZ3RoKTtcbiAgICAgICAgY29uc3QgaW5kZW50U2xpY2UgPSBpbmRlbnQuc2xpY2UoMCwgY29tcGFyZUxlbmd0aCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRlbnRTbGljZSA9IGN1cnJlbnRJbmRlbnQuc2xpY2UoMCwgY29tcGFyZUxlbmd0aCk7XG5cbiAgICAgICAgaWYgKGluZGVudFNsaWNlICE9PSBjdXJyZW50SW5kZW50U2xpY2UpIHtcbiAgICAgICAgICBjb25zdCBleHBlY3RlZCA9IGN1cnJlbnRJbmRlbnRTbGljZVxuICAgICAgICAgICAgLnJlcGxhY2UoLyAvZywgXCJTXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFx0L2csIFwiVFwiKTtcbiAgICAgICAgICBjb25zdCBnb3QgPSBpbmRlbnRTbGljZS5yZXBsYWNlKC8gL2csIFwiU1wiKS5yZXBsYWNlKC9cXHQvZywgXCJUXCIpO1xuXG4gICAgICAgICAgcmV0dXJuIGVycm9yKFxuICAgICAgICAgICAgYFVuYWJsZSB0byBwYXJzZSBsaXN0OiBleHBlY3RlZCBpbmRlbnQgXCIke2V4cGVjdGVkfVwiLCBnb3QgXCIke2dvdH1cImBcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGluZGVudC5sZW5ndGggPiBjdXJyZW50SW5kZW50Lmxlbmd0aCkge1xuICAgICAgICAgIGN1cnJlbnRQYXJlbnQgPSBjdXJyZW50TGlzdDtcbiAgICAgICAgICBjdXJyZW50SW5kZW50ID0gaW5kZW50O1xuICAgICAgICB9IGVsc2UgaWYgKGluZGVudC5sZW5ndGggPCBjdXJyZW50SW5kZW50Lmxlbmd0aCkge1xuICAgICAgICAgIHdoaWxlIChcbiAgICAgICAgICAgIGN1cnJlbnRQYXJlbnQuZ2V0Rmlyc3RMaW5lSW5kZW50KCkubGVuZ3RoID49IGluZGVudC5sZW5ndGggJiZcbiAgICAgICAgICAgIGN1cnJlbnRQYXJlbnQuZ2V0UGFyZW50KClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGN1cnJlbnRQYXJlbnQgPSBjdXJyZW50UGFyZW50LmdldFBhcmVudCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjdXJyZW50SW5kZW50ID0gaW5kZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZm9sZFJvb3QgPSBmb2xkZWRMaW5lcy5pbmNsdWRlcyhsKTtcblxuICAgICAgICBjdXJyZW50TGlzdCA9IG5ldyBMaXN0KFxuICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgaW5kZW50LFxuICAgICAgICAgIGJ1bGxldCxcbiAgICAgICAgICBzcGFjZUFmdGVyQnVsbGV0LFxuICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgZm9sZFJvb3RcbiAgICAgICAgKTtcbiAgICAgICAgY3VycmVudFBhcmVudC5hZGRBZnRlckFsbChjdXJyZW50TGlzdCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNMaW5lV2l0aEluZGVudChsaW5lKSkge1xuICAgICAgICBpZiAoIWN1cnJlbnRMaXN0KSB7XG4gICAgICAgICAgcmV0dXJuIGVycm9yKFxuICAgICAgICAgICAgYFVuYWJsZSB0byBwYXJzZSBsaXN0OiBleHBlY3RlZCBsaXN0IGl0ZW0sIGdvdCBlbXB0eSBsaW5lYFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbmRlbnRUb0NoZWNrID0gY3VycmVudExpc3QuZ2V0Tm90ZXNJbmRlbnQoKSB8fCBjdXJyZW50SW5kZW50O1xuXG4gICAgICAgIGlmIChsaW5lLmluZGV4T2YoaW5kZW50VG9DaGVjaykgIT09IDApIHtcbiAgICAgICAgICBjb25zdCBleHBlY3RlZCA9IGluZGVudFRvQ2hlY2sucmVwbGFjZSgvIC9nLCBcIlNcIikucmVwbGFjZSgvXFx0L2csIFwiVFwiKTtcbiAgICAgICAgICBjb25zdCBnb3QgPSBsaW5lXG4gICAgICAgICAgICAubWF0Y2goL15bIFxcdF0qLylbMF1cbiAgICAgICAgICAgIC5yZXBsYWNlKC8gL2csIFwiU1wiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcdC9nLCBcIlRcIik7XG5cbiAgICAgICAgICByZXR1cm4gZXJyb3IoXG4gICAgICAgICAgICBgVW5hYmxlIHRvIHBhcnNlIGxpc3Q6IGV4cGVjdGVkIGluZGVudCBcIiR7ZXhwZWN0ZWR9XCIsIGdvdCBcIiR7Z290fVwiYFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWN1cnJlbnRMaXN0LmdldE5vdGVzSW5kZW50KCkpIHtcbiAgICAgICAgICBjb25zdCBtYXRjaGVzID0gbGluZS5tYXRjaCgvXlsgXFx0XSsvKTtcblxuICAgICAgICAgIGlmICghbWF0Y2hlcyB8fCBtYXRjaGVzWzBdLmxlbmd0aCA8PSBjdXJyZW50SW5kZW50Lmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKC9eXFxzKyQvLnRlc3QobGluZSkpIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBlcnJvcihcbiAgICAgICAgICAgICAgYFVuYWJsZSB0byBwYXJzZSBsaXN0OiBleHBlY3RlZCBzb21lIGluZGVudCwgZ290IG5vIGluZGVudGBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY3VycmVudExpc3Quc2V0Tm90ZXNJbmRlbnQobWF0Y2hlc1swXSk7XG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50TGlzdC5hZGRMaW5lKGxpbmUuc2xpY2UoY3VycmVudExpc3QuZ2V0Tm90ZXNJbmRlbnQoKS5sZW5ndGgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBlcnJvcihcbiAgICAgICAgICBgVW5hYmxlIHRvIHBhcnNlIGxpc3Q6IGV4cGVjdGVkIGxpc3QgaXRlbSBvciBub3RlLCBnb3QgXCIke2xpbmV9XCJgXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJvb3Q7XG4gIH1cblxuICBwcml2YXRlIGlzRW1wdHlMaW5lKGxpbmU6IHN0cmluZykge1xuICAgIHJldHVybiBsaW5lLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHByaXZhdGUgaXNMaW5lV2l0aEluZGVudChsaW5lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyaW5nV2l0aFNwYWNlc1JlLnRlc3QobGluZSk7XG4gIH1cblxuICBwcml2YXRlIGlzTGlzdEl0ZW0obGluZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGxpc3RJdGVtUmUudGVzdChsaW5lKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNMaXN0SXRlbVdpdGhvdXRTcGFjZXMobGluZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGxpc3RJdGVtV2l0aG91dFNwYWNlc1JlLnRlc3QobGluZSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IEFwcGx5Q2hhbmdlc1NlcnZpY2UgfSBmcm9tIFwiLi9BcHBseUNoYW5nZXNTZXJ2aWNlXCI7XG5pbXBvcnQgeyBQYXJzZXJTZXJ2aWNlIH0gZnJvbSBcIi4vUGFyc2VyU2VydmljZVwiO1xuXG5pbXBvcnQgeyBNeUVkaXRvciB9IGZyb20gXCIuLi9NeUVkaXRvclwiO1xuaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSBcIi4uL29wZXJhdGlvbnMvT3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBSb290IH0gZnJvbSBcIi4uL3Jvb3RcIjtcblxuZXhwb3J0IGNsYXNzIFBlcmZvcm1PcGVyYXRpb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwYXJzZXI6IFBhcnNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBseUNoYW5nZXM6IEFwcGx5Q2hhbmdlc1NlcnZpY2VcbiAgKSB7fVxuXG4gIGV2YWxPcGVyYXRpb24ocm9vdDogUm9vdCwgb3A6IE9wZXJhdGlvbiwgZWRpdG9yOiBNeUVkaXRvcikge1xuICAgIG9wLnBlcmZvcm0oKTtcblxuICAgIGlmIChvcC5zaG91bGRVcGRhdGUoKSkge1xuICAgICAgdGhpcy5hcHBseUNoYW5nZXMuYXBwbHlDaGFuZ2VzKGVkaXRvciwgcm9vdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNob3VsZFVwZGF0ZTogb3Auc2hvdWxkVXBkYXRlKCksXG4gICAgICBzaG91bGRTdG9wUHJvcGFnYXRpb246IG9wLnNob3VsZFN0b3BQcm9wYWdhdGlvbigpLFxuICAgIH07XG4gIH1cblxuICBwZXJmb3JtT3BlcmF0aW9uKFxuICAgIGNiOiAocm9vdDogUm9vdCkgPT4gT3BlcmF0aW9uLFxuICAgIGVkaXRvcjogTXlFZGl0b3IsXG4gICAgY3Vyc29yID0gZWRpdG9yLmdldEN1cnNvcigpXG4gICkge1xuICAgIGNvbnN0IHJvb3QgPSB0aGlzLnBhcnNlci5wYXJzZShlZGl0b3IsIGN1cnNvcik7XG5cbiAgICBpZiAoIXJvb3QpIHtcbiAgICAgIHJldHVybiB7IHNob3VsZFVwZGF0ZTogZmFsc2UsIHNob3VsZFN0b3BQcm9wYWdhdGlvbjogZmFsc2UgfTtcbiAgICB9XG5cbiAgICBjb25zdCBvcCA9IGNiKHJvb3QpO1xuXG4gICAgcmV0dXJuIHRoaXMuZXZhbE9wZXJhdGlvbihyb290LCBvcCwgZWRpdG9yKTtcbiAgfVxufVxuIiwiZXhwb3J0IHR5cGUgTGlzdExpbmVBY3Rpb24gPSBcIm5vbmVcIiB8IFwiem9vbS1pblwiIHwgXCJ0b2dnbGUtZm9sZGluZ1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5ncyB7XG4gIHN0eWxlTGlzdHM6IGJvb2xlYW47XG4gIGRlYnVnOiBib29sZWFuO1xuICBzdGlja0N1cnNvcjogYm9vbGVhbjtcbiAgYmV0dGVyRW50ZXI6IGJvb2xlYW47XG4gIGJldHRlclRhYjogYm9vbGVhbjtcbiAgc2VsZWN0QWxsOiBib29sZWFuO1xuICBsaXN0TGluZXM6IGJvb2xlYW47XG4gIGxpc3RMaW5lQWN0aW9uOiBMaXN0TGluZUFjdGlvbjtcbn1cblxuY29uc3QgREVGQVVMVF9TRVRUSU5HUzogT2JzaWRpYW5PdXRsaW5lclBsdWdpblNldHRpbmdzID0ge1xuICBzdHlsZUxpc3RzOiB0cnVlLFxuICBkZWJ1ZzogZmFsc2UsXG4gIHN0aWNrQ3Vyc29yOiB0cnVlLFxuICBiZXR0ZXJFbnRlcjogdHJ1ZSxcbiAgYmV0dGVyVGFiOiB0cnVlLFxuICBzZWxlY3RBbGw6IHRydWUsXG4gIGxpc3RMaW5lczogZmFsc2UsXG4gIGxpc3RMaW5lQWN0aW9uOiBcInRvZ2dsZS1mb2xkaW5nXCIsXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2Uge1xuICBsb2FkRGF0YSgpOiBQcm9taXNlPE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5ncz47XG4gIHNhdmVEYXRhKHNldHRpZ25zOiBPYnNpZGlhbk91dGxpbmVyUGx1Z2luU2V0dGluZ3MpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG50eXBlIEsgPSBrZXlvZiBPYnNpZGlhbk91dGxpbmVyUGx1Z2luU2V0dGluZ3M7XG50eXBlIENhbGxiYWNrPFQgZXh0ZW5kcyBLPiA9IChjYjogT2JzaWRpYW5PdXRsaW5lclBsdWdpblNldHRpbmdzW1RdKSA9PiB2b2lkO1xuXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NTZXJ2aWNlIGltcGxlbWVudHMgT2JzaWRpYW5PdXRsaW5lclBsdWdpblNldHRpbmdzIHtcbiAgcHJpdmF0ZSBzdG9yYWdlOiBTdG9yYWdlO1xuICBwcml2YXRlIHZhbHVlczogT2JzaWRpYW5PdXRsaW5lclBsdWdpblNldHRpbmdzO1xuICBwcml2YXRlIGhhbmRsZXJzOiBNYXA8SywgU2V0PENhbGxiYWNrPEs+Pj47XG5cbiAgY29uc3RydWN0b3Ioc3RvcmFnZTogU3RvcmFnZSkge1xuICAgIHRoaXMuc3RvcmFnZSA9IHN0b3JhZ2U7XG4gICAgdGhpcy5oYW5kbGVycyA9IG5ldyBNYXAoKTtcbiAgfVxuXG4gIGdldCBzdHlsZUxpc3RzKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcy5zdHlsZUxpc3RzO1xuICB9XG4gIHNldCBzdHlsZUxpc3RzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXQoXCJzdHlsZUxpc3RzXCIsIHZhbHVlKTtcbiAgfVxuXG4gIGdldCBkZWJ1ZygpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMuZGVidWc7XG4gIH1cbiAgc2V0IGRlYnVnKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXQoXCJkZWJ1Z1wiLCB2YWx1ZSk7XG4gIH1cblxuICBnZXQgc3RpY2tDdXJzb3IoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLnN0aWNrQ3Vyc29yO1xuICB9XG4gIHNldCBzdGlja0N1cnNvcih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0KFwic3RpY2tDdXJzb3JcIiwgdmFsdWUpO1xuICB9XG5cbiAgZ2V0IGJldHRlckVudGVyKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcy5iZXR0ZXJFbnRlcjtcbiAgfVxuICBzZXQgYmV0dGVyRW50ZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldChcImJldHRlckVudGVyXCIsIHZhbHVlKTtcbiAgfVxuXG4gIGdldCBiZXR0ZXJUYWIoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLmJldHRlclRhYjtcbiAgfVxuICBzZXQgYmV0dGVyVGFiKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXQoXCJiZXR0ZXJUYWJcIiwgdmFsdWUpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdEFsbCgpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMuc2VsZWN0QWxsO1xuICB9XG4gIHNldCBzZWxlY3RBbGwodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldChcInNlbGVjdEFsbFwiLCB2YWx1ZSk7XG4gIH1cblxuICBnZXQgbGlzdExpbmVzKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcy5saXN0TGluZXM7XG4gIH1cbiAgc2V0IGxpc3RMaW5lcyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0KFwibGlzdExpbmVzXCIsIHZhbHVlKTtcbiAgfVxuXG4gIGdldCBsaXN0TGluZUFjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMubGlzdExpbmVBY3Rpb247XG4gIH1cbiAgc2V0IGxpc3RMaW5lQWN0aW9uKHZhbHVlOiBMaXN0TGluZUFjdGlvbikge1xuICAgIHRoaXMuc2V0KFwibGlzdExpbmVBY3Rpb25cIiwgdmFsdWUpO1xuICB9XG5cbiAgb25DaGFuZ2U8VCBleHRlbmRzIEs+KGtleTogVCwgY2I6IENhbGxiYWNrPFQ+KSB7XG4gICAgaWYgKCF0aGlzLmhhbmRsZXJzLmhhcyhrZXkpKSB7XG4gICAgICB0aGlzLmhhbmRsZXJzLnNldChrZXksIG5ldyBTZXQoKSk7XG4gICAgfVxuXG4gICAgdGhpcy5oYW5kbGVycy5nZXQoa2V5KS5hZGQoY2IpO1xuICB9XG5cbiAgcmVtb3ZlQ2FsbGJhY2s8VCBleHRlbmRzIEs+KGtleTogVCwgY2I6IENhbGxiYWNrPFQ+KTogdm9pZCB7XG4gICAgY29uc3QgaGFuZGxlcnMgPSB0aGlzLmhhbmRsZXJzLmdldChrZXkpO1xuXG4gICAgaWYgKGhhbmRsZXJzKSB7XG4gICAgICBoYW5kbGVycy5kZWxldGUoY2IpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKERFRkFVTFRfU0VUVElOR1MpKSB7XG4gICAgICB0aGlzLnNldChrIGFzIGtleW9mIE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5ncywgdik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnZhbHVlcyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIERFRkFVTFRfU0VUVElOR1MsXG4gICAgICBhd2FpdCB0aGlzLnN0b3JhZ2UubG9hZERhdGEoKVxuICAgICk7XG4gIH1cblxuICBhc3luYyBzYXZlKCkge1xuICAgIGF3YWl0IHRoaXMuc3RvcmFnZS5zYXZlRGF0YSh0aGlzLnZhbHVlcyk7XG4gIH1cblxuICBzZXQ8VCBleHRlbmRzIEs+KGtleTogVCwgdmFsdWU6IE9ic2lkaWFuT3V0bGluZXJQbHVnaW5TZXR0aW5nc1tUXSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVzW2tleV0gPSB2YWx1ZTtcbiAgICBjb25zdCBjYWxsYmFja3MgPSB0aGlzLmhhbmRsZXJzLmdldChrZXkpO1xuXG4gICAgaWYgKCFjYWxsYmFja3MpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNiIG9mIGNhbGxiYWNrcy52YWx1ZXMoKSkge1xuICAgICAgY2IodmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHsgUGx1Z2luIH0gZnJvbSBcIm9ic2lkaWFuXCI7XG5cbmltcG9ydCB7IERlbGV0ZVNob3VsZElnbm9yZUJ1bGxldHNGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvRGVsZXRlU2hvdWxkSWdub3JlQnVsbGV0c0ZlYXR1cmVcIjtcbmltcG9ydCB7IEVuc3VyZUN1cnNvckluTGlzdENvbnRlbnRGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvRW5zdXJlQ3Vyc29ySW5MaXN0Q29udGVudEZlYXR1cmVcIjtcbmltcG9ydCB7IEVudGVyT3V0ZGVudElmTGluZUlzRW1wdHlGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvRW50ZXJPdXRkZW50SWZMaW5lSXNFbXB0eUZlYXR1cmVcIjtcbmltcG9ydCB7IEVudGVyU2hvdWxkQ3JlYXRlTmV3SXRlbUZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9FbnRlclNob3VsZENyZWF0ZU5ld0l0ZW1PbkNoaWxkTGV2ZWxGZWF0dXJlXCI7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvRmVhdHVyZVwiO1xuaW1wb3J0IHsgRm9sZEZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9Gb2xkRmVhdHVyZVwiO1xuaW1wb3J0IHsgTGluZXNGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvTGluZXNGZWF0dXJlXCI7XG5pbXBvcnQgeyBMaXN0c1N0eWxlc0ZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9MaXN0c1N0eWxlc0ZlYXR1cmVcIjtcbmltcG9ydCB7IE1vdmVDdXJzb3JUb1ByZXZpb3VzVW5mb2xkZWRMaW5lRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL01vdmVDdXJzb3JUb1ByZXZpb3VzVW5mb2xkZWRMaW5lRmVhdHVyZVwiO1xuaW1wb3J0IHsgTW92ZUl0ZW1zRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL01vdmVJdGVtc0ZlYXR1cmVcIjtcbmltcG9ydCB7IFNlbGVjdEFsbEZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9TZWxlY3RBbGxGZWF0dXJlXCI7XG5pbXBvcnQgeyBTZWxlY3Rpb25TaG91bGRJZ25vcmVCdWxsZXRzRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL1NlbGVjdGlvblNob3VsZElnbm9yZUJ1bGxldHNGZWF0dXJlXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1RhYkZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9TZXR0aW5nc1RhYkZlYXR1cmVcIjtcbmltcG9ydCB7IFNoaWZ0RW50ZXJTaG91bGRDcmVhdGVOb3RlRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL1NoaWZ0RW50ZXJTaG91bGRDcmVhdGVOb3RlRmVhdHVyZVwiO1xuaW1wb3J0IHsgQXBwbHlDaGFuZ2VzU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL0FwcGx5Q2hhbmdlc1NlcnZpY2VcIjtcbmltcG9ydCB7IElNRVNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9JTUVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvTG9nZ2VyU2VydmljZVwiO1xuaW1wb3J0IHsgT2JzaWRpYW5TZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvT2JzaWRpYW5TZXJ2aWNlXCI7XG5pbXBvcnQgeyBQYXJzZXJTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvUGFyc2VyU2VydmljZVwiO1xuaW1wb3J0IHsgUGVyZm9ybU9wZXJhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9QZXJmb3JtT3BlcmF0aW9uU2VydmljZVwiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE9ic2lkaWFuT3V0bGluZXJQbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xuICBwcml2YXRlIGZlYXR1cmVzOiBGZWF0dXJlW107XG4gIHByb3RlY3RlZCBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlO1xuICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZTtcbiAgcHJpdmF0ZSBvYnNpZGlhbjogT2JzaWRpYW5TZXJ2aWNlO1xuICBwcml2YXRlIHBhcnNlcjogUGFyc2VyU2VydmljZTtcbiAgcHJpdmF0ZSBhcHBseUNoYW5nZXM6IEFwcGx5Q2hhbmdlc1NlcnZpY2U7XG4gIHByaXZhdGUgcGVyZm9ybU9wZXJhdGlvbjogUGVyZm9ybU9wZXJhdGlvblNlcnZpY2U7XG4gIHByaXZhdGUgaW1lOiBJTUVTZXJ2aWNlO1xuXG4gIGFzeW5jIG9ubG9hZCgpIHtcbiAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBvYnNpZGlhbi1vdXRsaW5lcmApO1xuXG4gICAgdGhpcy5vYnNpZGlhbiA9IG5ldyBPYnNpZGlhblNlcnZpY2UodGhpcy5hcHApO1xuXG4gICAgdGhpcy5zZXR0aW5ncyA9IG5ldyBTZXR0aW5nc1NlcnZpY2UodGhpcyk7XG4gICAgYXdhaXQgdGhpcy5zZXR0aW5ncy5sb2FkKCk7XG5cbiAgICB0aGlzLmxvZ2dlciA9IG5ldyBMb2dnZXJTZXJ2aWNlKHRoaXMuc2V0dGluZ3MpO1xuXG4gICAgdGhpcy5wYXJzZXIgPSBuZXcgUGFyc2VyU2VydmljZSh0aGlzLmxvZ2dlcik7XG4gICAgdGhpcy5hcHBseUNoYW5nZXMgPSBuZXcgQXBwbHlDaGFuZ2VzU2VydmljZSgpO1xuICAgIHRoaXMucGVyZm9ybU9wZXJhdGlvbiA9IG5ldyBQZXJmb3JtT3BlcmF0aW9uU2VydmljZShcbiAgICAgIHRoaXMucGFyc2VyLFxuICAgICAgdGhpcy5hcHBseUNoYW5nZXNcbiAgICApO1xuXG4gICAgdGhpcy5pbWUgPSBuZXcgSU1FU2VydmljZSgpO1xuICAgIGF3YWl0IHRoaXMuaW1lLmxvYWQoKTtcblxuICAgIHRoaXMuZmVhdHVyZXMgPSBbXG4gICAgICBuZXcgU2V0dGluZ3NUYWJGZWF0dXJlKHRoaXMsIHRoaXMuc2V0dGluZ3MpLFxuICAgICAgbmV3IExpc3RzU3R5bGVzRmVhdHVyZSh0aGlzLnNldHRpbmdzLCB0aGlzLm9ic2lkaWFuKSxcbiAgICAgIG5ldyBFbnRlck91dGRlbnRJZkxpbmVJc0VtcHR5RmVhdHVyZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgdGhpcy5zZXR0aW5ncyxcbiAgICAgICAgdGhpcy5pbWUsXG4gICAgICAgIHRoaXMub2JzaWRpYW4sXG4gICAgICAgIHRoaXMucGVyZm9ybU9wZXJhdGlvblxuICAgICAgKSxcbiAgICAgIG5ldyBFbnRlclNob3VsZENyZWF0ZU5ld0l0ZW1GZWF0dXJlKFxuICAgICAgICB0aGlzLFxuICAgICAgICB0aGlzLnNldHRpbmdzLFxuICAgICAgICB0aGlzLmltZSxcbiAgICAgICAgdGhpcy5vYnNpZGlhbixcbiAgICAgICAgdGhpcy5wZXJmb3JtT3BlcmF0aW9uXG4gICAgICApLFxuICAgICAgbmV3IEVuc3VyZUN1cnNvckluTGlzdENvbnRlbnRGZWF0dXJlKFxuICAgICAgICB0aGlzLFxuICAgICAgICB0aGlzLnNldHRpbmdzLFxuICAgICAgICB0aGlzLm9ic2lkaWFuLFxuICAgICAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb25cbiAgICAgICksXG4gICAgICBuZXcgTW92ZUN1cnNvclRvUHJldmlvdXNVbmZvbGRlZExpbmVGZWF0dXJlKFxuICAgICAgICB0aGlzLFxuICAgICAgICB0aGlzLnNldHRpbmdzLFxuICAgICAgICB0aGlzLmltZSxcbiAgICAgICAgdGhpcy5vYnNpZGlhbixcbiAgICAgICAgdGhpcy5wZXJmb3JtT3BlcmF0aW9uXG4gICAgICApLFxuICAgICAgbmV3IERlbGV0ZVNob3VsZElnbm9yZUJ1bGxldHNGZWF0dXJlKFxuICAgICAgICB0aGlzLFxuICAgICAgICB0aGlzLnNldHRpbmdzLFxuICAgICAgICB0aGlzLmltZSxcbiAgICAgICAgdGhpcy5vYnNpZGlhbixcbiAgICAgICAgdGhpcy5wZXJmb3JtT3BlcmF0aW9uXG4gICAgICApLFxuICAgICAgbmV3IFNlbGVjdGlvblNob3VsZElnbm9yZUJ1bGxldHNGZWF0dXJlKFxuICAgICAgICB0aGlzLFxuICAgICAgICB0aGlzLnNldHRpbmdzLFxuICAgICAgICB0aGlzLmltZSxcbiAgICAgICAgdGhpcy5vYnNpZGlhbixcbiAgICAgICAgdGhpcy5wZXJmb3JtT3BlcmF0aW9uXG4gICAgICApLFxuICAgICAgbmV3IEZvbGRGZWF0dXJlKHRoaXMsIHRoaXMub2JzaWRpYW4pLFxuICAgICAgbmV3IFNlbGVjdEFsbEZlYXR1cmUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgIHRoaXMuaW1lLFxuICAgICAgICB0aGlzLm9ic2lkaWFuLFxuICAgICAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb25cbiAgICAgICksXG4gICAgICBuZXcgTW92ZUl0ZW1zRmVhdHVyZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgdGhpcy5pbWUsXG4gICAgICAgIHRoaXMub2JzaWRpYW4sXG4gICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgIHRoaXMucGVyZm9ybU9wZXJhdGlvblxuICAgICAgKSxcbiAgICAgIG5ldyBTaGlmdEVudGVyU2hvdWxkQ3JlYXRlTm90ZUZlYXR1cmUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRoaXMub2JzaWRpYW4sXG4gICAgICAgIHRoaXMuc2V0dGluZ3MsXG4gICAgICAgIHRoaXMuaW1lLFxuICAgICAgICB0aGlzLnBlcmZvcm1PcGVyYXRpb25cbiAgICAgICksXG4gICAgICBuZXcgTGluZXNGZWF0dXJlKHRoaXMsIHRoaXMuc2V0dGluZ3MsIHRoaXMub2JzaWRpYW4sIHRoaXMucGFyc2VyKSxcbiAgICBdO1xuXG4gICAgZm9yIChjb25zdCBmZWF0dXJlIG9mIHRoaXMuZmVhdHVyZXMpIHtcbiAgICAgIGF3YWl0IGZlYXR1cmUubG9hZCgpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9udW5sb2FkKCkge1xuICAgIGNvbnNvbGUubG9nKGBVbmxvYWRpbmcgb2JzaWRpYW4tb3V0bGluZXJgKTtcblxuICAgIGF3YWl0IHRoaXMuaW1lLnVubG9hZCgpO1xuXG4gICAgZm9yIChjb25zdCBmZWF0dXJlIG9mIHRoaXMuZmVhdHVyZXMpIHtcbiAgICAgIGF3YWl0IGZlYXR1cmUudW5sb2FkKCk7XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsia2V5bWFwIiwiRWRpdG9yU3RhdGUiLCJQcmVjIiwiTm90aWNlIiwiZm9sZGVkUmFuZ2VzIiwiZm9sZGFibGUiLCJmb2xkRWZmZWN0IiwidW5mb2xkRWZmZWN0IiwicnVuU2NvcGVIYW5kbGVycyIsIm9ic2lkaWFuIiwiZWRpdG9ySW5mb0ZpZWxkIiwiVmlld1BsdWdpbiIsIlBsdWdpblNldHRpbmdUYWIiLCJTZXR0aW5nIiwiUGxhdGZvcm0iLCJQbHVnaW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdURBO0FBQ08sU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFO0FBQzdELElBQUksU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxLQUFLLFlBQVksQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQ2hILElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLEVBQUUsVUFBVSxPQUFPLEVBQUUsTUFBTSxFQUFFO0FBQy9ELFFBQVEsU0FBUyxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUNuRyxRQUFRLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUN0RyxRQUFRLFNBQVMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFBRTtBQUN0SCxRQUFRLElBQUksQ0FBQyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUM5RSxLQUFLLENBQUMsQ0FBQztBQUNQOztBQzNFTSxTQUFVLHlCQUF5QixDQUFDLElBQVUsRUFBQTtJQUNsRCxTQUFTLEtBQUssQ0FBQyxNQUFtQixFQUFBO1FBQ2hDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztBQUVkLFFBQUEsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFD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 diff --git a/.obsidian/plugins/obsidian-outliner/manifest.json b/.obsidian/plugins/obsidian-outliner/manifest.json index 53e3eba..cd2f5b2 100644 --- a/.obsidian/plugins/obsidian-outliner/manifest.json +++ b/.obsidian/plugins/obsidian-outliner/manifest.json @@ -1,7 +1,7 @@ { "id": "obsidian-outliner", "name": "Outliner", - "version": "4.1.0", + "version": "4.1.1", "minAppVersion": "1.0.0", "description": "Work with your lists like in Workflowy or RoamResearch.", "author": "Viacheslav Slinko", diff --git a/.obsidian/plugins/obsidian-outliner/styles.css b/.obsidian/plugins/obsidian-outliner/styles.css index 98ea82f..c279228 100644 --- a/.obsidian/plugins/obsidian-outliner/styles.css +++ b/.obsidian/plugins/obsidian-outliner/styles.css @@ -65,6 +65,7 @@ .outliner-plugin-vertical-lines .markdown-source-view.mod-cm6 + .cm-hmd-list-indent .cm-indent::before { content: none; } diff --git a/.obsidian/plugins/obsidian-style-settings/data.json b/.obsidian/plugins/obsidian-style-settings/data.json index e57b879..1b40e65 100644 --- a/.obsidian/plugins/obsidian-style-settings/data.json +++ b/.obsidian/plugins/obsidian-style-settings/data.json @@ -1,4 +1,10 @@ { "catppuccin-theme-settings@@catppuccin-theme-dark": "ctp-macchiato", - "catppuccin-theme-settings@@catppuccin-theme-accents": "ctp-accent-red" + "catppuccin-theme-settings@@catppuccin-theme-accents": "ctp-accent-red", + "catppuccin-interface-styles@@ctp-bold-folder-title": true, + "catppuccin-font-styles@@ctp-h2": "var(--ctp-maroon)", + "catppuccin-font-styles@@ctp-h6": "var(--ctp-lavender)", + "catppuccin-font-styles@@ctp-h5": "var(--ctp-teal)", + "catppuccin-font-styles@@ctp-h4": "var(--ctp-flamingo)", + "catppuccin-font-styles@@ctp-h3": "var(--ctp-peach)" } \ No newline at end of file diff --git a/.obsidian/plugins/quick-latex/main.js b/.obsidian/plugins/quick-latex/main.js index b235648..78ac4c3 100644 --- a/.obsidian/plugins/quick-latex/main.js +++ b/.obsidian/plugins/quick-latex/main.js @@ -421,6 +421,56 @@ class QuickLatexPlugin extends obsidian.Plugin { } }, }, + { + key: 'Shift-Space', + run: () => { + const view = this.app.workspace.getActiveViewOfType(obsidian.MarkdownView); + if (!view) + return false; + const editor = view.editor; + if (!this.settings.customShorthand_toggle) + return false; + if (this.withinMath(editor)) { + const position = editor.getCursor(); + // check for custom shorthand + if (this.settings.customShorthand_toggle && !this.withinText(editor, position.ch)) { + let keyword = ""; + let keyword_length = 0; + for (let i = 0; i < this.shorthand_array.length; i++) { + keyword_length = this.shorthand_array[i][0].length; + if (keyword_length > position.ch) { + continue; + } + else if (keyword_length == position.ch) { + keyword = "@" + editor.getRange({ line: position.line, ch: position.ch - keyword_length }, { line: position.line, ch: position.ch }); + } + else { + keyword = editor.getRange({ line: position.line, ch: position.ch - keyword_length - 1 }, { line: position.line, ch: position.ch }); + } + if (keyword[0].toLowerCase() == keyword[0].toUpperCase() || + keyword[0] == "@") { + if (this.shorthand_array[i][0] == keyword.slice(-keyword_length) && + this.shorthand_array[i][1] != keyword) { + const replace_slash = (keyword[0] == "\\" && this.shorthand_array[i][1][0] == "\\") ? 1 : 0; + const set_cursor_position = this.shorthand_array[i][1].indexOf("#cursor"); + editor.replaceRange(this.shorthand_array[i][1], { line: position.line, ch: position.ch - keyword_length - replace_slash }, { line: position.line, ch: position.ch }); + if (set_cursor_position != -1) { + editor.replaceRange("", { line: position.line, ch: position.ch - keyword_length - replace_slash + set_cursor_position }, { line: position.line, ch: position.ch - keyword_length - replace_slash + set_cursor_position + 7 }); + editor.setCursor({ line: position.line, ch: position.ch - keyword_length - replace_slash + set_cursor_position }); + } + else if (this.shorthand_array[i][1].slice(-2) == "{}") { + editor.setCursor({ line: position.line, + ch: position.ch + this.shorthand_array[i][1].length - keyword_length - 1 - replace_slash }); + } + else ; + return true; + } + } + } + } + } + } + }, { key: 'Enter', run: () => { @@ -500,6 +550,9 @@ class QuickLatexPlugin extends obsidian.Plugin { const editor = view.editor; if (this.withinMath(editor)) { if (this.settings.autoCloseCurly_toggle) { + if (editor.getSelection().length > 0) { + return false; + } const position = editor.getCursor(); const brackets = [['(', ')'], ['{', '}'], ['[', ']']]; const next_char = editor.getRange({ line: position.line, ch: position.ch }, { line: position.line, ch: position.ch + 1 }); @@ -524,6 +577,9 @@ class QuickLatexPlugin extends obsidian.Plugin { const editor = view.editor; if (this.withinMath(editor)) { if (this.settings.autoCloseSquare_toggle) { + if (editor.getSelection().length > 0) { + return false; + } const position = editor.getCursor(); const brackets = [['(', ')'], ['{', '}'], ['[', ']']]; const next_char = editor.getRange({ line: position.line, ch: position.ch }, { line: position.line, ch: position.ch + 1 }); @@ -548,6 +604,9 @@ class QuickLatexPlugin extends obsidian.Plugin { const editor = view.editor; if (this.withinMath(editor)) { if (this.settings.autoCloseRound_toggle) { + if (editor.getSelection().length > 0) { + return false; + } const position = editor.getCursor(); const brackets = [['(', ')'], ['{', '}'], ['[', ']']]; const next_char = editor.getRange({ line: position.line, ch: position.ch }, { line: position.line, ch: position.ch + 1 }); @@ -571,7 +630,7 @@ class QuickLatexPlugin extends obsidian.Plugin { return false; const editor = view.editor; if (this.withinMath(editor)) { - if (this.settings.autoCloseRound_toggle) { + if (this.settings.autoCloseCurly_toggle) { const position = editor.getCursor(); const end = editor.getLine(position.line).length; const next_sym = editor.getRange({ line: position.line, ch: position.ch }, { line: position.line, ch: position.ch + 1 }); @@ -597,7 +656,7 @@ class QuickLatexPlugin extends obsidian.Plugin { return false; const editor = view.editor; if (this.withinMath(editor)) { - if (this.settings.autoCloseRound_toggle) { + if (this.settings.autoCloseSquare_toggle) { const position = editor.getCursor(); const end = editor.getLine(position.line).length; const next_sym = editor.getRange({ line: position.line, ch: position.ch }, { line: position.line, ch: position.ch + 1 }); @@ -1722,4 +1781,4 @@ class QuickLatexSettingTab extends obsidian.PluginSettingTab { } module.exports = QuickLatexPlugin; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vR29vZ2xlIERyaXZlL015IERyaXZlL1dvcmtzcGFjZS9xdWlja19sYXRleF9vYnNpZGlhbi9ub2RlX21vZHVsZXMvdHNsaWIvdHNsaWIuZXM2LmpzIiwiLi4vLi4vLi4vLi4vLi4vR29vZ2xlIERyaXZlL015IERyaXZlL1dvcmtzcGFjZS9xdWlja19sYXRleF9vYnNpZGlhbi9tYWluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcblBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbklORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcblBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XHJcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XHJcbiAgICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxyXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGIpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XHJcbiAgICB2YXIgdCA9IHt9O1xyXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXHJcbiAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXHJcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcclxuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcclxuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxyXG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdmFyIF9fY3JlYXRlQmluZGluZyA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkKCkge1xyXG4gICAgZm9yICh2YXIgYXIgPSBbXSwgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG4vKiogQGRlcHJlY2F0ZWQgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzKCkge1xyXG4gICAgZm9yICh2YXIgcyA9IDAsIGkgPSAwLCBpbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBpbDsgaSsrKSBzICs9IGFyZ3VtZW50c1tpXS5sZW5ndGg7XHJcbiAgICBmb3IgKHZhciByID0gQXJyYXkocyksIGsgPSAwLCBpID0gMDsgaSA8IGlsOyBpKyspXHJcbiAgICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXHJcbiAgICAgICAgICAgIHJba10gPSBhW2pdO1xyXG4gICAgcmV0dXJuIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5KHRvLCBmcm9tLCBwYWNrKSB7XHJcbiAgICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcclxuICAgICAgICAgICAgaWYgKCFhcikgYXIgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tLCAwLCBpKTtcclxuICAgICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XHJcbiAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNHZW5lcmF0b3IodGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyBpZiAoZ1tuXSkgaVtuXSA9IGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAoYSwgYikgeyBxLnB1c2goW24sIHYsIGEsIGJdKSA+IDEgfHwgcmVzdW1lKG4sIHYpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gcmVzdW1lKG4sIHYpIHsgdHJ5IHsgc3RlcChnW25dKHYpKTsgfSBjYXRjaCAoZSkgeyBzZXR0bGUocVswXVszXSwgZSk7IH0gfVxyXG4gICAgZnVuY3Rpb24gc3RlcChyKSB7IHIudmFsdWUgaW5zdGFuY2VvZiBfX2F3YWl0ID8gUHJvbWlzZS5yZXNvbHZlKHIudmFsdWUudikudGhlbihmdWxmaWxsLCByZWplY3QpIDogc2V0dGxlKHFbMF1bMl0sIHIpOyB9XHJcbiAgICBmdW5jdGlvbiBmdWxmaWxsKHZhbHVlKSB7IHJlc3VtZShcIm5leHRcIiwgdmFsdWUpOyB9XHJcbiAgICBmdW5jdGlvbiByZWplY3QodmFsdWUpIHsgcmVzdW1lKFwidGhyb3dcIiwgdmFsdWUpOyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUoZiwgdikgeyBpZiAoZih2KSwgcS5zaGlmdCgpLCBxLmxlbmd0aCkgcmVzdW1lKHFbMF1bMF0sIHFbMF1bMV0pOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jRGVsZWdhdG9yKG8pIHtcclxuICAgIHZhciBpLCBwO1xyXG4gICAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiLCBmdW5jdGlvbiAoZSkgeyB0aHJvdyBlOyB9KSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobiwgZikgeyBpW25dID0gb1tuXSA/IGZ1bmN0aW9uICh2KSB7IHJldHVybiAocCA9ICFwKSA/IHsgdmFsdWU6IF9fYXdhaXQob1tuXSh2KSksIGRvbmU6IG4gPT09IFwicmV0dXJuXCIgfSA6IGYgPyBmKHYpIDogdjsgfSA6IGY7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7XHJcbiAgICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IChvID0gdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaSk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaVtuXSA9IG9bbl0gJiYgZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsgdiA9IG9bbl0odiksIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHYuZG9uZSwgdi52YWx1ZSk7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7IFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGZ1bmN0aW9uKHYpIHsgcmVzb2x2ZSh7IHZhbHVlOiB2LCBkb25lOiBkIH0pOyB9LCByZWplY3QpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ha2VUZW1wbGF0ZU9iamVjdChjb29rZWQsIHJhdykge1xyXG4gICAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29va2VkLCBcInJhd1wiLCB7IHZhbHVlOiByYXcgfSk7IH0gZWxzZSB7IGNvb2tlZC5yYXcgPSByYXc7IH1cclxuICAgIHJldHVybiBjb29rZWQ7XHJcbn07XHJcblxyXG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XHJcbn0pIDogZnVuY3Rpb24obywgdikge1xyXG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0U3Rhcihtb2QpIHtcclxuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XHJcbiAgICB2YXIgcmVzdWx0ID0ge307XHJcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoayAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwgayk7XHJcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0RGVmYXVsdChtb2QpIHtcclxuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgZGVmYXVsdDogbW9kIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHJlY2VpdmVyLCBzdGF0ZSwga2luZCwgZikge1xyXG4gICAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyXCIpO1xyXG4gICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgcmVhZCBwcml2YXRlIG1lbWJlciBmcm9tIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XHJcbiAgICByZXR1cm4ga2luZCA9PT0gXCJtXCIgPyBmIDoga2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIpIDogZiA/IGYudmFsdWUgOiBzdGF0ZS5nZXQocmVjZWl2ZXIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZFNldChyZWNlaXZlciwgc3RhdGUsIHZhbHVlLCBraW5kLCBmKSB7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJtXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGVcIik7XHJcbiAgICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXJcIik7XHJcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xyXG4gICAgcmV0dXJuIChraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlciwgdmFsdWUpIDogZiA/IGYudmFsdWUgPSB2YWx1ZSA6IHN0YXRlLnNldChyZWNlaXZlciwgdmFsdWUpKSwgdmFsdWU7XHJcbn1cclxuIiwiaW1wb3J0IHtcclxuXHRBcHAsXHJcblx0TWFya2Rvd25WaWV3LFxyXG5cdFBsdWdpbixcclxuXHRFZGl0b3IsXHJcblx0UGx1Z2luU2V0dGluZ1RhYixcclxuXHRTZXR0aW5nXHJcbn0gZnJvbSAnb2JzaWRpYW4nO1xyXG5cclxuaW1wb3J0IHsgUHJlYywgRXh0ZW5zaW9uIH0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xyXG5pbXBvcnQgeyBrZXltYXAgfSBmcm9tICdAY29kZW1pcnJvci92aWV3JztcclxuXHJcbmludGVyZmFjZSBRdWlja0xhdGV4U2V0dGluZ3Mge1xyXG5cdG1vdmVJbnRvTWF0aF90b2dnbGU6IGJvb2xlYW47XHJcblx0YXV0b0Nsb3NlTWF0aF90b2dnbGU6IGJvb2xlYW47XHJcblx0YXV0b0Nsb3NlUm91bmRfdG9nZ2xlOiBib29sZWFuO1xyXG5cdGF1dG9DbG9zZVNxdWFyZV90b2dnbGU6IGJvb2xlYW47XHJcblx0YXV0b0Nsb3NlQ3VybHlfdG9nZ2xlOiBib29sZWFuO1xyXG5cdGFkZEFsaWduQmxvY2tfdG9nZ2xlOiBib29sZWFuO1xyXG5cdGFkZEFsaWduQmxvY2tfcGFyYW1ldGVyOiBzdHJpbmc7XHJcblx0YXV0b0FsaWduU3ltYm9sczogc3RyaW5nO1xyXG5cdGFkZENhc2VzQmxvY2tfdG9nZ2xlOiBib29sZWFuO1xyXG5cdHNoaWZ0RW50ZXJfdG9nZ2xlOiBib29sZWFuO1xyXG5cdGFkZE1hdHJpeEJsb2NrX3RvZ2dsZTogYm9vbGVhbjtcclxuXHRhZGRNYXRyaXhCbG9ja19wYXJhbWV0ZXI6IHN0cmluZztcclxuXHRhdXRvRnJhY3Rpb25fdG9nZ2xlOiBib29sZWFuO1xyXG5cdGF1dG9MYXJnZUJyYWNrZXRfdG9nZ2xlOiBib29sZWFuO1xyXG5cdGF1dG9TdW1MaW1pdF90b2dnbGU6IGJvb2xlYW47XHJcblx0YXV0b0VuY2xvc2VTdXBfdG9nZ2xlOiBib29sZWFuO1xyXG5cdGF1dG9FbmNsb3NlU3ViX3RvZ2dsZTogYm9vbGVhbjtcclxuXHRlbmNsb3NlU2VsZWN0aW9uX3RvZ2dsZTogYm9vbGVhbjtcclxuXHRjdXN0b21TaG9ydGhhbmRfdG9nZ2xlOiBib29sZWFuO1xyXG5cdGN1c3RvbVNob3J0aGFuZF9wYXJhbWV0ZXI6IHN0cmluZ1xyXG59XHJcblxyXG5jb25zdCBERUZBVUxUX1NFVFRJTkdTOiBRdWlja0xhdGV4U2V0dGluZ3MgPSB7XHJcblx0bW92ZUludG9NYXRoX3RvZ2dsZTogdHJ1ZSxcclxuXHRhdXRvQ2xvc2VNYXRoX3RvZ2dsZTogdHJ1ZSxcclxuXHRhdXRvQ2xvc2VSb3VuZF90b2dnbGU6IHRydWUsXHJcblx0YXV0b0Nsb3NlU3F1YXJlX3RvZ2dsZTogdHJ1ZSxcclxuXHRhdXRvQ2xvc2VDdXJseV90b2dnbGU6IHRydWUsXHJcblx0YWRkQWxpZ25CbG9ja190b2dnbGU6IHRydWUsXHJcblx0YWRkQWxpZ25CbG9ja19wYXJhbWV0ZXI6IFwiYWxpZ24qXCIsXHJcblx0YXV0b0FsaWduU3ltYm9sczogXCI9ID4gPCBcXFxcbGUgXFxcXGdlIFxcXFxuZXEgXFxcXGFwcHJveFwiLFxyXG5cdGFkZENhc2VzQmxvY2tfdG9nZ2xlOiB0cnVlLFxyXG5cdHNoaWZ0RW50ZXJfdG9nZ2xlOiBmYWxzZSxcclxuXHRhZGRNYXRyaXhCbG9ja190b2dnbGU6IHRydWUsXHJcblx0YWRkTWF0cml4QmxvY2tfcGFyYW1ldGVyOiBcInBtYXRyaXhcIixcclxuXHRhdXRvRnJhY3Rpb25fdG9nZ2xlOiB0cnVlLFxyXG5cdGF1dG9MYXJnZUJyYWNrZXRfdG9nZ2xlOiB0cnVlLFxyXG5cdGF1dG9TdW1MaW1pdF90b2dnbGU6IHRydWUsXHJcblx0YXV0b0VuY2xvc2VTdXBfdG9nZ2xlOiB0cnVlLFxyXG5cdGF1dG9FbmNsb3NlU3ViX3RvZ2dsZTogdHJ1ZSxcclxuXHRlbmNsb3NlU2VsZWN0aW9uX3RvZ2dsZTogdHJ1ZSxcclxuXHRjdXN0b21TaG9ydGhhbmRfdG9nZ2xlOiB0cnVlLFxyXG5cdGN1c3RvbVNob3J0aGFuZF9wYXJhbWV0ZXI6IFwiYmk6XFxcXGJpbm9teyNjdXJzb3J9eyN0YWJ9O1xcbnNxOlxcXFxzcXJ0e307XFxuYmI6XFxcXG1hdGhiYnt9O1xcbmJmOlxcXFxtYXRoYmZ7fTtcXG50ZTpcXFxcdGV4dHt9O1xcbmluZjpcXFxcaW5mdHk7XFxuXCIrXHJcblx0XHRcdFx0XHRcdFx0XCJjZDpcXFxcY2RvdDtcXG5xdTpcXFxccXVhZDtcXG50aTpcXFxcdGltZXM7XFxuXCIrXHJcblx0XHRcdFx0XHRcdFx0XCJhbDpcXFxcYWxwaGE7XFxuYmU6XFxcXGJldGE7XFxuZ2E6XFxcXGdhbW1hO1xcbkdhOlxcXFxHYW1tYTtcXG5cIitcclxuXHRcdFx0XHRcdFx0XHRcImRlOlxcXFxkZWx0YTtcXG5EZTpcXFxcRGVsdGE7XFxuZXA6XFxcXGVwc2lsb247XFxuemU6XFxcXHpldGE7XFxuXCIrXHJcblx0XHRcdFx0XHRcdFx0XCJldDpcXFxcZXRhO1xcbnRoOlxcXFx0aGV0YTtcXG5UaDpcXFxcVGhldGE7XFxuaW86XFxcXGlvdGE7XFxuXCIrXHJcblx0XHRcdFx0XHRcdFx0XCJrYTpcXFxca2FwcGE7XFxubGE6XFxcXGxhbWJkYTtcXG5MYTpcXFxcTGFtYmRhO1xcbm11OlxcXFxtdTtcXG5cIitcclxuXHRcdFx0XHRcdFx0XHRcIm51OlxcXFxudTtcXG54aTpcXFxceGk7XFxuWGk6XFxcXFhpO1xcbnBpOlxcXFxwaTtcXG5QaTpcXFxcUGk7XFxuXCIrXHJcblx0XHRcdFx0XHRcdFx0XCJyaDpcXFxccmhvO1xcbnNpOlxcXFxzaWdtYTtcXG5TaTpcXFxcU2lnbWE7XFxudGE6XFxcXHRhdTtcXG5cIitcclxuXHRcdFx0XHRcdFx0XHRcInVwOlxcXFx1cHNpbG9uO1xcblVwOlxcXFxVcHNpbG9uO1xcbnBoOlxcXFxwaGk7XFxuUGg6XFxcXFBoaTtcXG5jaDpcXFxcY2hpO1xcblwiK1xyXG5cdFx0XHRcdFx0XHRcdFwicHM6XFxcXHBzaTtcXG5QczpcXFxcUHNpO1xcbm9tOlxcXFxvbWVnYTtcXG5PbTpcXFxcT21lZ2FcIlxyXG59XHJcbiBcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUXVpY2tMYXRleFBsdWdpbiBleHRlbmRzIFBsdWdpbiB7XHJcblx0c2V0dGluZ3M6IFF1aWNrTGF0ZXhTZXR0aW5ncztcclxuXHRzaG9ydGhhbmRfYXJyYXk6IHN0cmluZ1tdW107XHJcblx0YXV0b0FsaWduX2FycmF5OiBzdHJpbmdbXTtcclxuXHJcbiAgICBwcml2YXRlIHZpbUFsbG93X2F1dG9DbG9zZU1hdGg6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHRwcml2YXRlIHJlYWRvbmx5IG1ha2VFeHRlbnNpb25UaGluZyA9ICgpOkV4dGVuc2lvbiA9PiBQcmVjLmhpZ2goa2V5bWFwLm9mKFtcclxuXHRcdHtcclxuXHRcdFx0a2V5OiAnJCcsXHJcblx0XHRcdHJ1bjogKCk6IGJvb2xlYW4gPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpXHJcblx0XHRcdFx0aWYgKCF2aWV3KSByZXR1cm4gZmFsc2VcclxuXHJcblx0XHRcdFx0Y29uc3QgZWRpdG9yICA9IHZpZXcuZWRpdG9yXHJcblx0XHRcdFx0XHJcblx0XHRcdFx0aWYgKGVkaXRvci5nZXRTZWxlY3Rpb24oKS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHQvLyBlbmNsb3NlIHNlbGVjdGVkIHRleHRcclxuXHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmVuY2xvc2VTZWxlY3Rpb25fdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IGFuY2hvciA9IGVkaXRvci5nZXRDdXJzb3IoXCJhbmNob3JcIilcclxuXHRcdFx0XHRcdFx0Y29uc3QgaGVhZCA9IGVkaXRvci5nZXRDdXJzb3IoXCJoZWFkXCIpXHJcblx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKGAkJHtlZGl0b3IuZ2V0U2VsZWN0aW9uKCl9JGApXHJcblx0XHRcdFx0XHRcdGlmIChhbmNob3IubGluZSA+IGhlYWQubGluZSkge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRTZWxlY3Rpb24oe2xpbmU6YW5jaG9yLmxpbmUsY2g6YW5jaG9yLmNofSx7bGluZTpoZWFkLmxpbmUsY2g6aGVhZC5jaCsxfSlcclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChhbmNob3IubGluZSA8IGhlYWQubGluZSkge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRTZWxlY3Rpb24oe2xpbmU6YW5jaG9yLmxpbmUsY2g6YW5jaG9yLmNoKzF9LHtsaW5lOmhlYWQubGluZSxjaDpoZWFkLmNofSlcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0U2VsZWN0aW9uKHtsaW5lOmFuY2hvci5saW5lLGNoOmFuY2hvci5jaCsxfSx7bGluZTpoZWFkLmxpbmUsY2g6aGVhZC5jaCsxfSlcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdC8vIGNsb3NlIG1hdGggc3ltYm9sXHJcblx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKVxyXG5cdFx0XHRcdFx0Y29uc3QgcHJldl9jaGFyID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHR7bGluZTpwb3NpdGlvbi5saW5lLGNoOnBvc2l0aW9uLmNoLTF9LFxyXG5cdFx0XHRcdFx0XHR7bGluZTpwb3NpdGlvbi5saW5lLGNoOnBvc2l0aW9uLmNofSlcclxuXHRcdFx0XHRcdGNvbnN0IG5leHRfY2hhciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaH0sXHJcblx0XHRcdFx0XHRcdHtsaW5lOnBvc2l0aW9uLmxpbmUsY2g6cG9zaXRpb24uY2grMX0pXHJcblx0XHRcdFx0XHRjb25zdCBuZXh0Ml9jaGFyID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHR7bGluZTpwb3NpdGlvbi5saW5lLGNoOnBvc2l0aW9uLmNofSxcclxuXHRcdFx0XHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaCsyfSlcclxuXHRcdFx0XHRcdGlmIChwcmV2X2NoYXIgIT0gXCIkXCIgJiYgbmV4dF9jaGFyID09IFwiJFwiKXtcclxuXHRcdFx0XHRcdFx0aWYgKG5leHQyX2NoYXIgPT0gXCIkJFwiKSB7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLGNoOnBvc2l0aW9uLmNoKzJ9KVxyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlXHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLGNoOnBvc2l0aW9uLmNoKzF9KVxyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdC8vIGF1dG8gY2xvc2UgbWF0aFxyXG5cdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYXV0b0Nsb3NlTWF0aF90b2dnbGUgJiYgdGhpcy52aW1BbGxvd19hdXRvQ2xvc2VNYXRoKSB7XHJcblx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKFwiJFwiKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdC8vIG1vdmUgaW50byBtYXRoXHJcblx0XHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5tb3ZlSW50b01hdGhfdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCB0ID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gMSB9LFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0pXHJcblx0XHRcdFx0XHRcdGNvbnN0IHQyID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0sXHJcblx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggKyAxIH0pXHJcblx0XHRcdFx0XHRcdGNvbnN0IHRfMiA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIDIgfSxcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9KVxyXG5cdFx0XHRcdFx0XHRpZiAodCA9PSAnJCcgJiYgdDIgIT0gJyQnKSB7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIDEgfSlcclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICh0XzIgPT0gJyQkJykge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3IoeyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSAxIH0pXHJcblx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2VcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0a2V5OiAnVGFiJyxcclxuXHRcdFx0cnVuOiAoKTogYm9vbGVhbiA9PiB7XHJcblx0XHRcdFx0Y29uc3QgdmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldylcclxuXHRcdFx0XHRpZiAoIXZpZXcpIHJldHVybiBmYWxzZVxyXG5cclxuXHRcdFx0XHRjb25zdCBlZGl0b3IgID0gdmlldy5lZGl0b3JcclxuXHJcblx0XHRcdFx0Ly8gVGFiIHNob3J0Y3V0IGZvciBtYXRyaXggYmxvY2tcclxuXHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5hZGRNYXRyaXhCbG9ja190b2dnbGUpIHtcclxuXHRcdFx0XHRcdGNvbnN0IGJlZ2luX21hdHJpeCA9IFsnXFxcXGJlZ2lueycgKyB0aGlzLnNldHRpbmdzLmFkZE1hdHJpeEJsb2NrX3BhcmFtZXRlcisnfScsIFwiXFxcXGJlZ2lue21hdHJpeH1cIixcIlxcXFxiZWdpbntibWF0cml4fVwiLCBcIlxcXFxiZWdpbntCbWF0cml4fVwiLCBcIlxcXFxiZWdpbnt2bWF0cml4fVwiLCBcIlxcXFxiZWdpbntWbWF0cml4fVwiLCBcIlxcXFxiZWdpbntzbWFsbG1hdHJpeH1cIl1cclxuXHRcdFx0XHRcdGNvbnN0IGVuZF9tYXRyaXggPSBbJ1xcXFxlbmR7JyArIHRoaXMuc2V0dGluZ3MuYWRkTWF0cml4QmxvY2tfcGFyYW1ldGVyKyd9JywgXCJcXFxcZW5ke21hdHJpeH1cIixcIlxcXFxlbmR7Ym1hdHJpeH1cIiwgXCJcXFxcZW5ke0JtYXRyaXh9XCIsIFwiXFxcXGVuZHt2bWF0cml4fVwiLCBcIlxcXFxlbmR7Vm1hdHJpeH1cIiwgXCJcXFxcZW5ke3NtYWxsbWF0cml4fVwiXVxyXG5cdFx0XHRcdFx0bGV0IHN0YXRlID0gZmFsc2VcclxuXHRcdFx0XHRcdGxldCBlbmRfdGV4dCA9IFwiXCJcclxuXHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYmVnaW5fbWF0cml4Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLndpdGhpbkFueUJyYWNrZXRzX2RvY3VtZW50KGVkaXRvciwgYmVnaW5fbWF0cml4W2ldLCBlbmRfbWF0cml4W2ldKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0c3RhdGUgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHRlbmRfdGV4dCA9IGVuZF9tYXRyaXhbaV1cclxuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdGNvbnN0IHByZXYzX2NoYXIgPSBlZGl0b3IuZ2V0UmFuZ2Uoe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2gtM30se2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2h9KVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRpZiAoc3RhdGUpIHtcclxuXHRcdFx0XHRcdFx0aWYgKHByZXYzX2NoYXIgPT0gJyAmICcpIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKCcnLCB7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaC0zfSx7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaH0pXHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaCtlbmRfdGV4dC5sZW5ndGgtM30pXHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWVcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbignICYgJylcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyBUYWIgc2hvcnRjdXQgZm9yIGNhc2VzIGJsb2NrXHJcblx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYWRkQ2FzZXNCbG9ja190b2dnbGUpIHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLndpdGhpbkFueUJyYWNrZXRzX2RvY3VtZW50KGVkaXRvcixcclxuXHRcdFx0XHRcdCdcXFxcYmVnaW57Y2FzZXN9JyxcclxuXHRcdFx0XHRcdCdcXFxcZW5ke2Nhc2VzfSdcclxuXHRcdFx0XHRcdCkpIHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHByZXYzX2NoYXIgPSBlZGl0b3IuZ2V0UmFuZ2Uoe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2gtM30se2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2h9KVxyXG5cdFx0XHRcdFx0XHRjb25zdCBuZXh0X2xpbmUgPSBlZGl0b3IuZ2V0TGluZShwb3NpdGlvbi5saW5lKzEpXHJcblx0XHRcdFx0XHRcdGlmIChwcmV2M19jaGFyID09ICcgJiAnICYmIG5leHRfbGluZSA9PSAnXFxcXGVuZHtjYXNlc30nKSB7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZSgnJywge2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2gtM30se2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2h9KVxyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSsxLCBjaDpuZXh0X2xpbmUubGVuZ3RofSlcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZVxyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKCcgJiAnKVxyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC8vIFRhYiB0byBnbyB0byBuZXh0ICN0YWJcclxuXHRcdFx0XHRpZiAodGhpcy53aXRoaW5NYXRoKGVkaXRvcikpIHtcclxuXHRcdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0XHRcdFx0Y29uc3QgY3VycmVudF9saW5lID0gZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSk7XHJcblx0XHRcdFx0XHRjb25zdCB0YWJfcG9zaXRpb24gPSBjdXJyZW50X2xpbmUuaW5kZXhPZihcIiN0YWJcIiwgcG9zaXRpb24uY2gpO1xyXG5cdFx0XHRcdFx0aWYgKHRhYl9wb3NpdGlvbiE9LTEpe1xyXG5cdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFwiXCIsXHJcblx0XHRcdFx0XHRcdHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnRhYl9wb3NpdGlvbn0sXHJcblx0XHRcdFx0XHRcdHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnRhYl9wb3NpdGlvbis0fSlcclxuXHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLCBjaDp0YWJfcG9zaXRpb259KVxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gVGFiIG91dCBvZiAkXHJcblx0XHRcdFx0aWYgKHRoaXMud2l0aGluTWF0aChlZGl0b3IpKSB7XHJcblx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdGNvbnN0IG5leHRfMiA9IGVkaXRvci5nZXRSYW5nZSh7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaH0se2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2grMn0pXHJcblx0XHRcdFx0XHRjb25zdCBlbmRfcG9zID0gZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSkubGVuZ3RoO1xyXG5cdFx0XHRcdFx0Y29uc3QgbmV4dF9saW5lID0gZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSsxKVxyXG5cdFx0XHRcdFx0aWYgKG5leHRfMiA9PSBcIiQkXCIpIHtcclxuXHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaCsyfSlcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWVcclxuXHRcdFx0XHRcdH0gZWxzZSBpZiAocG9zaXRpb24uY2ggPT0gZW5kX3BvcyAmJiBuZXh0X2xpbmUgPT0gXCIkJFwiKSB7XHJcblx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSsxLCBjaDpuZXh0X2xpbmUubGVuZ3RofSlcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWVcclxuXHRcdFx0XHRcdH0gZWxzZSBpZiAobmV4dF8yWzBdID09IFwiJFwiKSB7XHJcblx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2grMX0pXHJcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyBUYWIgdG8gbmV4dCBjbG9zZSBicmFja2V0XHJcblx0XHRcdFx0aWYgKHRoaXMud2l0aGluTWF0aChlZGl0b3IpKSB7XHJcblx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRfbGluZSA9IGVkaXRvci5nZXRMaW5lKHBvc2l0aW9uLmxpbmUpO1xyXG5cdFx0XHRcdFx0Y29uc3QgZm9sbG93aW5nX3RleHQgPSBlZGl0b3IuZ2V0UmFuZ2Uoe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2grMX0se2xpbmU6cG9zaXRpb24ubGluZSwgY2g6Y3VycmVudF9saW5lLmxlbmd0aH0pXHJcblx0XHRcdFx0XHRjb25zdCBjbG9zZV9zeW1ib2xzID0gWyd9JywgJ10nLCAnKScsICckJ10gXHJcblx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGZvbGxvd2luZ190ZXh0Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdGlmIChjbG9zZV9zeW1ib2xzLmNvbnRhaW5zKGZvbGxvd2luZ190ZXh0W2ldKSkge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2graSsxfSlcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZVxyXG5cdFx0XHRcdFx0XHR9XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gVGFiIG91dCBvZiBhbGlnbiBibG9ja1xyXG5cdFx0XHRcdGlmICh0aGlzLndpdGhpbk1hdGgoZWRpdG9yKSkge1xyXG5cdFx0XHRcdFx0Y29uc3QgcG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XHJcblx0XHRcdFx0XHRjb25zdCBlbmRfcG9zID0gZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSkubGVuZ3RoO1xyXG5cdFx0XHRcdFx0Y29uc3QgbmV4dF9saW5lID0gZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSsxKVxyXG5cdFx0XHRcdFx0aWYgKHBvc2l0aW9uLmNoID09IGVuZF9wb3MgJiYgbmV4dF9saW5lID09ICdcXFxcZW5keycgKyB0aGlzLnNldHRpbmdzLmFkZEFsaWduQmxvY2tfcGFyYW1ldGVyKyd9Jykge1xyXG5cdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUrMSwgY2g6bmV4dF9saW5lLmxlbmd0aH0pXHJcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHJcblx0XHRcdFx0cmV0dXJuIGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRrZXk6ICdTaGlmdC1UYWInLFxyXG5cdFx0XHRydW46ICgpOiBib29sZWFuID0+IHtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRjb25zdCB2aWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KVxyXG5cdFx0XHRcdGlmICghdmlldykgcmV0dXJuIGZhbHNlXHJcblxyXG5cdFx0XHRcdGNvbnN0IGVkaXRvciAgPSB2aWV3LmVkaXRvclxyXG5cclxuXHRcdFx0XHRpZiAodGhpcy53aXRoaW5NYXRoKGVkaXRvcikpIHtcclxuXHRcdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0XHRcdFx0Y29uc3QgcHJlY2VkaW5nX3RleHQgPSBlZGl0b3IuZ2V0UmFuZ2Uoe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6MH0se2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2h9KVxyXG5cdFx0XHRcdFx0Y29uc3QgY2xvc2Vfc3ltYm9scyA9IFsnfScsICddJywgJyknXSBcclxuXHRcdFx0XHRcdGZvciAobGV0IGkgPSBwcmVjZWRpbmdfdGV4dC5sZW5ndGg7IGkgPj0gMDsgaS0tKSB7XHJcblx0XHRcdFx0XHRcdGlmIChjbG9zZV9zeW1ib2xzLmNvbnRhaW5zKHByZWNlZGluZ190ZXh0W2ldKSkge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6aX0pXHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWVcclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChwb3NpdGlvbi5jaC1pID4gMSAmJiBwcmVjZWRpbmdfdGV4dFtpXT09XCIkXCIpIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOmkrMX0pXHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWVcclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChwcmVjZWRpbmdfdGV4dC5zbGljZSgtMik9PVwiJCRcIikge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2gtMn0pXHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWVcclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChwcmVjZWRpbmdfdGV4dFstMV09PVwiJFwiKSB7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaC0xfSlcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZVx0XHJcblx0XHRcdFx0XHRcdH1cdFx0XHRcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRrZXk6ICdTcGFjZScsXHJcblx0XHRcdHJ1bjogKCk6IGJvb2xlYW4gPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpXHJcblx0XHRcdFx0aWYgKCF2aWV3KSByZXR1cm4gZmFsc2VcclxuXHJcblx0XHRcdFx0Y29uc3QgZWRpdG9yICA9IHZpZXcuZWRpdG9yXHJcblxyXG5cdFx0XHRcdGlmICghdGhpcy5zZXR0aW5ncy5hdXRvRnJhY3Rpb25fdG9nZ2xlICYmXHJcblx0XHRcdFx0XHQhdGhpcy5zZXR0aW5ncy5hdXRvTGFyZ2VCcmFja2V0X3RvZ2dsZSAmJlxyXG5cdFx0XHRcdFx0IXRoaXMuc2V0dGluZ3MuYXV0b0VuY2xvc2VTdXBfdG9nZ2xlICYmXHJcblx0XHRcdFx0XHQhdGhpcy5zZXR0aW5ncy5hdXRvRW5jbG9zZVN1Yl90b2dnbGUgJiZcclxuXHRcdFx0XHRcdCF0aGlzLnNldHRpbmdzLmN1c3RvbVNob3J0aGFuZF90b2dnbGUpIHJldHVybiBmYWxzZTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRpZiAodGhpcy53aXRoaW5NYXRoKGVkaXRvcikpIHtcclxuXHRcdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0XHRcdFx0Y29uc3QgY3VycmVudF9saW5lID0gZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSk7XHJcblx0XHRcdFx0XHRjb25zdCBsYXN0X2RvbGxhciA9IGN1cnJlbnRfbGluZS5sYXN0SW5kZXhPZignJCcsIHBvc2l0aW9uLmNoIC0gMSk7XHJcblxyXG5cdFx0XHRcdFx0Ly8gY2hlY2sgZm9yIGN1c3RvbSBzaG9ydGhhbmRcclxuXHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmN1c3RvbVNob3J0aGFuZF90b2dnbGUgJiYgIXRoaXMud2l0aGluVGV4dChlZGl0b3IsIHBvc2l0aW9uLmNoKSkge1xyXG5cdFx0XHRcdFx0XHRsZXQga2V5d29yZDpzdHJpbmcgPSBcIlwiO1xyXG5cdFx0XHRcdFx0XHRsZXQga2V5d29yZF9sZW5ndGg6bnVtYmVyID0gMDtcclxuXHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDAgOyBpIDwgdGhpcy5zaG9ydGhhbmRfYXJyYXkubGVuZ3RoIDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdFx0a2V5d29yZF9sZW5ndGggPSB0aGlzLnNob3J0aGFuZF9hcnJheVtpXVswXS5sZW5ndGg7XHJcblx0XHRcdFx0XHRcdFx0aWYgKCBrZXl3b3JkX2xlbmd0aCA+IHBvc2l0aW9uLmNoKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKCBrZXl3b3JkX2xlbmd0aCA9PSBwb3NpdGlvbi5jaCApIHtcclxuXHRcdFx0XHRcdFx0XHRcdGtleXdvcmQgPSBcIkBcIiArIGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSBrZXl3b3JkX2xlbmd0aCB9LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9KTtcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0a2V5d29yZCA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSBrZXl3b3JkX2xlbmd0aCAtIDEgfSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdGlmIChrZXl3b3JkWzBdLnRvTG93ZXJDYXNlKCkgPT0ga2V5d29yZFswXS50b1VwcGVyQ2FzZSgpIHx8IFxyXG5cdFx0XHRcdFx0XHRcdFx0a2V5d29yZFswXSA9PSBcIkBcIiApIHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmICh0aGlzLnNob3J0aGFuZF9hcnJheVtpXVswXSA9PSBrZXl3b3JkLnNsaWNlKC0ga2V5d29yZF9sZW5ndGgpICYmIFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnNob3J0aGFuZF9hcnJheVtpXVsxXSAhPSBrZXl3b3JkKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHJlcGxhY2Vfc2xhc2ggPSAoa2V5d29yZFswXT09XCJcXFxcXCIgJiYgdGhpcy5zaG9ydGhhbmRfYXJyYXlbaV1bMV1bMF09PVwiXFxcXFwiKSA/IDEgOiAwO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zdCBzZXRfY3Vyc29yX3Bvc2l0aW9uID0gdGhpcy5zaG9ydGhhbmRfYXJyYXlbaV1bMV0uaW5kZXhPZihcIiNjdXJzb3JcIik7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlUmFuZ2UodGhpcy5zaG9ydGhhbmRfYXJyYXlbaV1bMV0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSBrZXl3b3JkX2xlbmd0aCAtIHJlcGxhY2Vfc2xhc2ggfSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKHNldF9jdXJzb3JfcG9zaXRpb24gIT0gLTEpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFwiXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2ggLSBrZXl3b3JkX2xlbmd0aCAtIHJlcGxhY2Vfc2xhc2ggKyBzZXRfY3Vyc29yX3Bvc2l0aW9ufSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaCAtIGtleXdvcmRfbGVuZ3RoIC0gcmVwbGFjZV9zbGFzaCArIHNldF9jdXJzb3JfcG9zaXRpb24rN30pO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2ggLSBrZXl3b3JkX2xlbmd0aCAtIHJlcGxhY2Vfc2xhc2ggKyBzZXRfY3Vyc29yX3Bvc2l0aW9ufSlcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLnNob3J0aGFuZF9hcnJheVtpXVsxXS5zbGljZSgtMikgPT0gXCJ7fVwiKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcihcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjaDogcG9zaXRpb24uY2ggKyB0aGlzLnNob3J0aGFuZF9hcnJheVtpXVsxXS5sZW5ndGggLSBrZXl3b3JkX2xlbmd0aCAtIDEgLSByZXBsYWNlX3NsYXNofVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fTtcclxuXHJcblx0XHRcdFx0XHQvLyBmaW5kIGxhc3QgdW5icmFja2V0ZWQgc3Vic2NyaXB0IHdpdGhpbiBsYXN0IDEwIGNoYXJhY3RlcnMgYW5kIHBlcmZvcm0gYXV0b0VuY2xvc2VTdWJcclxuXHRcdFx0XHRcdC8vIGlnbm9yZSBleHByZXNzaW9uIHRoYXQgY29udGFpbiArIC0gKiAvIF5cclxuXHRcdFx0XHRcdGNvbnN0IGxhc3RfbWF0aCA9IGN1cnJlbnRfbGluZS5sYXN0SW5kZXhPZignJCcsIHBvc2l0aW9uLmNoIC0gMSk7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5hdXRvRW5jbG9zZVN1Yl90b2dnbGUpIHtcclxuXHRcdFx0XHRcdFx0bGV0IGxhc3Rfc3Vic2NyaXB0ID0gY3VycmVudF9saW5lLmxhc3RJbmRleE9mKCdfJywgcG9zaXRpb24uY2gpO1xyXG5cdFx0XHRcdFx0XHRpZiAobGFzdF9zdWJzY3JpcHQgIT0gLTEgJiYgbGFzdF9zdWJzY3JpcHQgPiBsYXN0X21hdGgpIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCBsZXR0ZXJfYWZ0ZXJfc3Vic2NyaXB0ID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9zdWJzY3JpcHQgKyAxIH0sXHJcblx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X3N1YnNjcmlwdCArIDIgfSk7XHJcblx0XHRcdFx0XHRcdFx0aWYgKGxldHRlcl9hZnRlcl9zdWJzY3JpcHQgIT0gXCJ7XCIgJiYgXHJcblx0XHRcdFx0XHRcdFx0XHQocG9zaXRpb24uY2ggLSBsYXN0X3N1YnNjcmlwdCkgPD0gMTAgKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbihcIn1cIik7XHJcblx0XHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFwie1wiLCB7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpsYXN0X3N1YnNjcmlwdCsxfSk7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRcdC8vIHJldHJpZXZlIHRoZSBsYXN0IHVuYnJhY2tldGVkIHN1cGVyc2NyaXB0XHJcblx0XHRcdFx0XHRsZXQgbGFzdF9zdXBlcnNjcmlwdCA9IGN1cnJlbnRfbGluZS5sYXN0SW5kZXhPZignXicsIHBvc2l0aW9uLmNoKTtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0d2hpbGUgKGxhc3Rfc3VwZXJzY3JpcHQgIT0gLTEpIHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgdHdvX2xldHRlcnNfYWZ0ZXJfc3VwZXJzY3JpcHQgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9zdXBlcnNjcmlwdCArIDEgfSxcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X3N1cGVyc2NyaXB0ICsgMyB9KTtcclxuXHRcdFx0XHRcdFx0aWYgKHR3b19sZXR0ZXJzX2FmdGVyX3N1cGVyc2NyaXB0WzBdID09ICd7JyB8fCB0d29fbGV0dGVyc19hZnRlcl9zdXBlcnNjcmlwdCA9PSAnIHsnKSB7XHJcblx0XHRcdFx0XHRcdFx0bGFzdF9zdXBlcnNjcmlwdCA9IGN1cnJlbnRfbGluZS5sYXN0SW5kZXhPZignXicsIGxhc3Rfc3VwZXJzY3JpcHQgLSAxKTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChsYXN0X3N1cGVyc2NyaXB0IDwgbGFzdF9tYXRoKSB7XHJcblx0XHRcdFx0XHRcdFx0bGFzdF9zdXBlcnNjcmlwdCA9IC0xXHJcblx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQvLyByZXRyaWV2ZSB0aGUgbGFzdCBkaXZpZGUgc3ltYm9sXHJcblx0XHRcdFx0XHRsZXQgbGFzdF9kaXZpZGUgPSBjdXJyZW50X2xpbmUubGFzdEluZGV4T2YoJy8nLCBwb3NpdGlvbi5jaCAtIDIpO1xyXG5cclxuXHRcdFx0XHRcdHdoaWxlIChsYXN0X2RpdmlkZSAhPSAtMSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBhcm91bmRfZGl2aWRlID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3RfZGl2aWRlIC0gMSB9LFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3RfZGl2aWRlICsgMiB9KTtcclxuXHRcdFx0XHRcdFx0aWYgKGFyb3VuZF9kaXZpZGVbMF0gPT0gJyAnICYmIGFyb3VuZF9kaXZpZGVbMl0gPT0gJyAnKSB7XHJcblx0XHRcdFx0XHRcdFx0bGFzdF9kaXZpZGUgPSBjdXJyZW50X2xpbmUubGFzdEluZGV4T2YoJ14nLCBsYXN0X2RpdmlkZSAtIDEpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKGxhc3RfZGl2aWRlIDwgbGFzdF9tYXRoKSB7XHJcblx0XHRcdFx0XHRcdFx0bGFzdF9kaXZpZGUgPSAtMVxyXG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcbiBcclxuXHRcdFx0XHRcdC8vIHBlcmZvcm0gYXV0b0VuY2xvc2VTdXBcclxuXHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmF1dG9FbmNsb3NlU3VwX3RvZ2dsZSkge1xyXG5cdFx0XHRcdFx0XHRpZiAobGFzdF9zdXBlcnNjcmlwdCA+IGxhc3RfZGl2aWRlKSB7XHJcblx0XHRcdFx0XHRcdFx0Ly8gaWYgYW55IGJyYWNrZXRzIGZyb20gbGFzdCBzdXAgdG8gY3Vyc29yIHN0aWxsIHVuY2xvc2VkLCBkb250IGRvIGF1dG9FbmNsb3NlU3VwIHlldFxyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IGJyYWNrZXRzID0gW1snKCcsICcpJ10sIFsneycsICd9J10sIFsnWycsICddJ11dO1xyXG5cdFx0XHRcdFx0XHRcdGlmICghYnJhY2tldHMuc29tZShlID0+IHRoaXMudW5jbG9zZWRfYnJhY2tldChlZGl0b3IsIGVbMF0sIGVbMV0sIHBvc2l0aW9uLmNoLCBsYXN0X3N1cGVyc2NyaXB0KVswXSkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmF1dG9FbmNsb3NlU3VwKGVkaXRvciwgZXZlbnQsIGxhc3Rfc3VwZXJzY3JpcHQpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdH07XHJcblxyXG5cdFx0XHRcdFx0Ly8gcGVyZm9ybSBhdXRvRnJhY3Rpb25cclxuXHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmF1dG9GcmFjdGlvbl90b2dnbGUgJiYgIXRoaXMud2l0aGluVGV4dChlZGl0b3IsIGxhc3RfZGl2aWRlKSkge1xyXG5cdFx0XHRcdFx0XHRpZiAobGFzdF9kaXZpZGUgPiBsYXN0X2RvbGxhcikge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IGJyYWNrZXRzID0gW1snKCcsICcpJ10sIFsneycsICd9J10sIFsnWycsICddJ11dO1xyXG5cdFx0XHRcdFx0XHRcdC8vIGlmIGFueSBicmFja2V0cyBpbiBkZW5vbWluYXRvciBzdGlsbCB1bmNsb3NlZCwgZG9udCBkbyBhdXRvRnJhY3Rpb24geWV0XHJcblx0XHRcdFx0XHRcdFx0aWYgKCFicmFja2V0cy5zb21lKGUgPT4gdGhpcy51bmNsb3NlZF9icmFja2V0KGVkaXRvciwgZVswXSwgZVsxXSwgcG9zaXRpb24uY2gsIGxhc3RfZGl2aWRlKVswXSkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmF1dG9GcmFjdGlvbkNNNihlZGl0b3IsIGxhc3Rfc3VwZXJzY3JpcHQpO1xyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHRcdC8vIHBlcmZvcm0gYXV0b0xhcmdlQnJhY2tldFxyXG5cdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYXV0b0xhcmdlQnJhY2tldF90b2dnbGUpIHtcclxuXHRcdFx0XHRcdFx0bGV0IHN5bWJvbF9iZWZvcmUgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSAxIH0sXHJcblx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSlcclxuXHRcdFx0XHRcdFx0aWYgKHN5bWJvbF9iZWZvcmUgPT0gJyknIHx8IHN5bWJvbF9iZWZvcmUgPT0gJ10nKSB7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuYXV0b0xhcmdlQnJhY2tldChlZGl0b3IsIGV2ZW50KTtcclxuXHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQvLyBwZXJmb3JtIGF1dG9BbGlnblxyXG5cdFx0XHRcdFx0aWYgKHRoaXMuYXV0b0FsaWduX2FycmF5KSB7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLndpdGhpbkFueUJyYWNrZXRzX2RvY3VtZW50KFxyXG5cdFx0XHRcdFx0XHRcdGVkaXRvcixcclxuXHRcdFx0XHRcdFx0XHQnXFxcXGJlZ2lueycgKyB0aGlzLnNldHRpbmdzLmFkZEFsaWduQmxvY2tfcGFyYW1ldGVyLFxyXG5cdFx0XHRcdFx0XHRcdCdcXFxcZW5keycgKyB0aGlzLnNldHRpbmdzLmFkZEFsaWduQmxvY2tfcGFyYW1ldGVyKVxyXG5cdFx0XHRcdFx0XHQpIHtcclxuXHRcdFx0XHRcdFx0XHRsZXQga2V5d29yZDpzdHJpbmcgPSBcIlwiO1xyXG5cdFx0XHRcdFx0XHRcdGxldCBrZXl3b3JkX2xlbmd0aDpudW1iZXIgPSAwO1xyXG5cdFx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAwIDsgaSA8IHRoaXMuYXV0b0FsaWduX2FycmF5Lmxlbmd0aCA7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRcdFx0a2V5d29yZF9sZW5ndGggPSB0aGlzLmF1dG9BbGlnbl9hcnJheVtpXS5sZW5ndGg7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoIGtleXdvcmRfbGVuZ3RoID4gcG9zaXRpb24uY2gpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y29udGludWU7XHJcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRrZXl3b3JkID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0ga2V5d29yZF9sZW5ndGggfSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9KTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdGlmIChrZXl3b3JkID09IHRoaXMuYXV0b0FsaWduX2FycmF5W2ldKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlUmFuZ2UoJyYnLCB7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIGtleXdvcmRfbGVuZ3RoIH0pO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdGtleTogJ0VudGVyJyxcclxuXHRcdFx0cnVuOiAoKTogYm9vbGVhbiA9PiB7XHJcblx0XHRcdFx0Y29uc3QgdmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldylcclxuXHRcdFx0XHRpZiAoIXZpZXcpIHJldHVybiBmYWxzZVxyXG5cdFx0XHRcdGNvbnN0IGVkaXRvciAgPSB2aWV3LmVkaXRvclxyXG5cdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmFkZEFsaWduQmxvY2tfdG9nZ2xlICYmIHRoaXMuc2V0dGluZ3Muc2hpZnRFbnRlcl90b2dnbGU9PWZhbHNlKSB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy53aXRoaW5BbnlCcmFja2V0c19kb2N1bWVudChcclxuXHRcdFx0XHRcdFx0ZWRpdG9yLFxyXG5cdFx0XHRcdFx0XHQnXFxcXGJlZ2lueycgKyB0aGlzLnNldHRpbmdzLmFkZEFsaWduQmxvY2tfcGFyYW1ldGVyLFxyXG5cdFx0XHRcdFx0XHQnXFxcXGVuZHsnICsgdGhpcy5zZXR0aW5ncy5hZGRBbGlnbkJsb2NrX3BhcmFtZXRlcilcclxuXHRcdFx0XHRcdCkge1xyXG5cdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbignXFxcXFxcXFxcXG4nKVxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmFkZENhc2VzQmxvY2tfdG9nZ2xlICYmIHRoaXMuc2V0dGluZ3Muc2hpZnRFbnRlcl90b2dnbGU9PWZhbHNlKSB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy53aXRoaW5BbnlCcmFja2V0c19kb2N1bWVudChcclxuXHRcdFx0XHRcdFx0ZWRpdG9yLFxyXG5cdFx0XHRcdFx0XHQnXFxcXGJlZ2lue2Nhc2VzfScsXHJcblx0XHRcdFx0XHRcdCdcXFxcZW5ke2Nhc2VzfSdcclxuXHRcdFx0XHRcdCkpIHtcclxuXHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oJyBcXFxcXFxcXFxcbicpXHJcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYWRkTWF0cml4QmxvY2tfdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRjb25zdCBiZWdpbl9tYXRyaXggPSBbJ1xcXFxiZWdpbnsnICsgdGhpcy5zZXR0aW5ncy5hZGRNYXRyaXhCbG9ja19wYXJhbWV0ZXIrJ30nLCBcIlxcXFxiZWdpbnttYXRyaXh9XCIsXCJcXFxcYmVnaW57Ym1hdHJpeH1cIiwgXCJcXFxcYmVnaW57Qm1hdHJpeH1cIiwgXCJcXFxcYmVnaW57dm1hdHJpeH1cIiwgXCJcXFxcYmVnaW57Vm1hdHJpeH1cIiwgXCJcXFxcYmVnaW57c21hbGxtYXRyaXh9XCJdXHJcblx0XHRcdFx0XHRjb25zdCBlbmRfbWF0cml4ID0gWydcXFxcZW5keycgKyB0aGlzLnNldHRpbmdzLmFkZE1hdHJpeEJsb2NrX3BhcmFtZXRlcisnfScsIFwiXFxcXGVuZHttYXRyaXh9XCIsXCJcXFxcZW5ke2JtYXRyaXh9XCIsIFwiXFxcXGVuZHtCbWF0cml4fVwiLCBcIlxcXFxlbmR7dm1hdHJpeH1cIiwgXCJcXFxcZW5ke1ZtYXRyaXh9XCIsIFwiXFxcXGVuZHtzbWFsbG1hdHJpeH1cIl1cclxuXHRcdFx0XHRcdGxldCBzdGF0ZSA9IGZhbHNlXHJcblx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGJlZ2luX21hdHJpeC5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy53aXRoaW5BbnlCcmFja2V0c19kb2N1bWVudChlZGl0b3IsIGJlZ2luX21hdHJpeFtpXSwgZW5kX21hdHJpeFtpXSkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHN0YXRlID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmIChzdGF0ZSkge1xyXG5cdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbignIFxcXFxcXFxcICcpXHJcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyBkb3VibGUgZW50ZXIgZm9yICQkXHJcblx0XHRcdFx0aWYgKHRoaXMud2l0aGluTWF0aChlZGl0b3IpKSB7XHJcblx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdGNvbnN0IHByZXYyX0NoYXIgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gMiB9LFxyXG5cdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9KVxyXG5cdFx0XHRcdFx0Y29uc3QgbmV4dDJfQ2hhciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSxcclxuXHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggKyAyIH0pXHJcblx0XHRcdFx0XHRpZiAocHJldjJfQ2hhcj09XCIkJFwiJiZuZXh0Ml9DaGFyPT1cIiQkXCIpIHtcclxuXHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oJ1xcbicpXHJcblx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3IocG9zaXRpb24pXHJcblx0XHRcdFx0XHRcdHJldHVybiBmYWxzZVxyXG5cdFx0XHRcdFx0fVx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0a2V5OiAnU2hpZnQtRW50ZXInLFxyXG5cdFx0XHRydW46ICgpOiBib29sZWFuID0+IHtcclxuXHRcdFx0XHRjb25zdCB2aWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KVxyXG5cdFx0XHRcdGlmICghdmlldykgcmV0dXJuIGZhbHNlXHJcblx0XHRcdFx0Y29uc3QgZWRpdG9yICA9IHZpZXcuZWRpdG9yXHJcblx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYWRkQWxpZ25CbG9ja190b2dnbGUgJiYgdGhpcy5zZXR0aW5ncy5zaGlmdEVudGVyX3RvZ2dsZT09dHJ1ZSkge1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMud2l0aGluQW55QnJhY2tldHNfZG9jdW1lbnQoXHJcblx0XHRcdFx0XHRcdGVkaXRvcixcclxuXHRcdFx0XHRcdFx0J1xcXFxiZWdpbnsnICsgdGhpcy5zZXR0aW5ncy5hZGRBbGlnbkJsb2NrX3BhcmFtZXRlcixcclxuXHRcdFx0XHRcdFx0J1xcXFxlbmR7JyArIHRoaXMuc2V0dGluZ3MuYWRkQWxpZ25CbG9ja19wYXJhbWV0ZXIpXHJcblx0XHRcdFx0XHQpIHtcclxuXHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oJ1xcXFxcXFxcXFxuJylcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5hZGRDYXNlc0Jsb2NrX3RvZ2dsZSAmJiB0aGlzLnNldHRpbmdzLnNoaWZ0RW50ZXJfdG9nZ2xlPT10cnVlKSB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy53aXRoaW5BbnlCcmFja2V0c19kb2N1bWVudChcclxuXHRcdFx0XHRcdFx0ZWRpdG9yLFxyXG5cdFx0XHRcdFx0XHQnXFxcXGJlZ2lue2Nhc2VzfScsXHJcblx0XHRcdFx0XHRcdCdcXFxcZW5ke2Nhc2VzfSdcclxuXHRcdFx0XHRcdCkpIHtcclxuXHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oJyBcXFxcXFxcXFxcbicpXHJcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdGtleTogJ3snLFxyXG5cdFx0XHRydW46ICgpOiBib29sZWFuID0+IHtcclxuXHRcdFx0XHRjb25zdCB2aWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KVxyXG5cdFx0XHRcdGlmICghdmlldykgcmV0dXJuIGZhbHNlXHJcblxyXG5cdFx0XHRcdGNvbnN0IGVkaXRvciAgPSB2aWV3LmVkaXRvclxyXG5cclxuXHRcdFx0XHRpZiAodGhpcy53aXRoaW5NYXRoKGVkaXRvcikpIHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmF1dG9DbG9zZUN1cmx5X3RvZ2dsZSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgYnJhY2tldHMgPSBbWycoJywgJyknXSwgWyd7JywgJ30nXSwgWydbJywgJ10nXV07XHJcblx0XHRcdFx0XHRcdGNvbnN0IG5leHRfY2hhciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9LFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoKzEgfSk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IG5leHRfMmNoYXIgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSxcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCsyIH0pO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBmb2xsb3dlZF9ieV8kc3BhY2V0YWJub25lZG91Ymxlc2xhc2ggPSAoWyckJywnICcsJ1x0JywnJ10uY29udGFpbnMobmV4dF9jaGFyKSB8fCBuZXh0XzJjaGFyID09ICdcXFxcXFxcXCcpO1xyXG5cdFx0XHRcdFx0XHRpZiAoIXRoaXMud2l0aGluQW55QnJhY2tldHNfaW5saW5lKGVkaXRvciwgYnJhY2tldHMpICYmIGZvbGxvd2VkX2J5XyRzcGFjZXRhYm5vbmVkb3VibGVzbGFzaCkge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKCd7fScpO1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2grMX0pO1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdGtleTogJ1snLFxyXG5cdFx0XHRydW46ICgpOiBib29sZWFuID0+IHtcclxuXHRcdFx0XHRjb25zdCB2aWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KVxyXG5cdFx0XHRcdGlmICghdmlldykgcmV0dXJuIGZhbHNlXHJcblxyXG5cdFx0XHRcdGNvbnN0IGVkaXRvciAgPSB2aWV3LmVkaXRvclxyXG5cclxuXHRcdFx0XHRpZiAodGhpcy53aXRoaW5NYXRoKGVkaXRvcikpIHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmF1dG9DbG9zZVNxdWFyZV90b2dnbGUpIHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IGJyYWNrZXRzID0gW1snKCcsICcpJ10sIFsneycsICd9J10sIFsnWycsICddJ11dO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBuZXh0X2NoYXIgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSxcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCsxIH0pO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBuZXh0XzJjaGFyID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0sXHJcblx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2grMiB9KTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgZm9sbG93ZWRfYnlfJHNwYWNldGFibm9uZWRvdWJsZXNsYXNoID0gKFsnJCcsJyAnLCdcdCcsJyddLmNvbnRhaW5zKG5leHRfY2hhcikgfHwgbmV4dF8yY2hhciA9PSAnXFxcXFxcXFwnKTtcclxuXHRcdFx0XHRcdFx0aWYgKCF0aGlzLndpdGhpbkFueUJyYWNrZXRzX2lubGluZShlZGl0b3IsIGJyYWNrZXRzKSAmJiBmb2xsb3dlZF9ieV8kc3BhY2V0YWJub25lZG91Ymxlc2xhc2gpIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbignW10nKTtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoKzF9KTtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHRyZXR1cm4gZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdGtleTogJygnLFxyXG5cdFx0XHRydW46ICgpOiBib29sZWFuID0+IHtcclxuXHRcdFx0XHRjb25zdCB2aWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KVxyXG5cdFx0XHRcdGlmICghdmlldykgcmV0dXJuIGZhbHNlXHJcblxyXG5cdFx0XHRcdGNvbnN0IGVkaXRvciAgPSB2aWV3LmVkaXRvclxyXG5cclxuXHRcdFx0XHRpZiAodGhpcy53aXRoaW5NYXRoKGVkaXRvcikpIHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmF1dG9DbG9zZVJvdW5kX3RvZ2dsZSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgYnJhY2tldHMgPSBbWycoJywgJyknXSwgWyd7JywgJ30nXSwgWydbJywgJ10nXV07XHJcblx0XHRcdFx0XHRcdGNvbnN0IG5leHRfY2hhciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9LFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoKzEgfSk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IG5leHRfMmNoYXIgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSxcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCsyIH0pO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBmb2xsb3dlZF9ieV8kc3BhY2V0YWJub25lZG91Ymxlc2xhc2ggPSAoWyckJywnICcsJ1x0JywnJ10uY29udGFpbnMobmV4dF9jaGFyKSB8fCBuZXh0XzJjaGFyID09ICdcXFxcXFxcXCcpO1xyXG5cdFx0XHRcdFx0XHRpZiAoIXRoaXMud2l0aGluQW55QnJhY2tldHNfaW5saW5lKGVkaXRvciwgYnJhY2tldHMpICYmIGZvbGxvd2VkX2J5XyRzcGFjZXRhYm5vbmVkb3VibGVzbGFzaCkge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKCcoKScpO1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2grMX0pO1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdGtleTogJ30nLFxyXG5cdFx0XHRydW46ICgpOiBib29sZWFuID0+IHtcclxuXHRcdFx0XHRjb25zdCB2aWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KVxyXG5cdFx0XHRcdGlmICghdmlldykgcmV0dXJuIGZhbHNlXHJcblxyXG5cdFx0XHRcdGNvbnN0IGVkaXRvciAgPSB2aWV3LmVkaXRvclxyXG5cclxuXHRcdFx0XHRpZiAodGhpcy53aXRoaW5NYXRoKGVkaXRvcikpIHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmF1dG9DbG9zZVJvdW5kX3RvZ2dsZSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgZW5kID0gZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSkubGVuZ3RoXHJcblx0XHRcdFx0XHRcdGNvbnN0IG5leHRfc3ltID0gZWRpdG9yLmdldFJhbmdlKHtsaW5lOnBvc2l0aW9uLmxpbmUsY2g6cG9zaXRpb24uY2h9LHtsaW5lOnBvc2l0aW9uLmxpbmUsY2g6cG9zaXRpb24uY2grMX0pXHJcblx0XHRcdFx0XHRcdGlmICghdGhpcy51bmNsb3NlZF9icmFja2V0KGVkaXRvciwgXCJ7XCIsIFwifVwiLCBlbmQsIDApWzBdICYmXHJcblx0XHRcdFx0XHRcdCAhdGhpcy51bmNsb3NlZF9icmFja2V0KGVkaXRvciwgXCJ7XCIsIFwifVwiLCBlbmQsIDAsIGZhbHNlKVswXSAmJlxyXG5cdFx0XHRcdFx0XHQgbmV4dF9zeW0gPT0gXCJ9XCIpIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsY2g6cG9zaXRpb24uY2grMX0pXHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0a2V5OiAnXScsXHJcblx0XHRcdHJ1bjogKCk6IGJvb2xlYW4gPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpXHJcblx0XHRcdFx0aWYgKCF2aWV3KSByZXR1cm4gZmFsc2VcclxuXHJcblx0XHRcdFx0Y29uc3QgZWRpdG9yICA9IHZpZXcuZWRpdG9yXHJcblxyXG5cdFx0XHRcdGlmICh0aGlzLndpdGhpbk1hdGgoZWRpdG9yKSkge1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYXV0b0Nsb3NlUm91bmRfdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBlbmQgPSBlZGl0b3IuZ2V0TGluZShwb3NpdGlvbi5saW5lKS5sZW5ndGhcclxuXHRcdFx0XHRcdFx0Y29uc3QgbmV4dF9zeW0gPSBlZGl0b3IuZ2V0UmFuZ2Uoe2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaH0se2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaCsxfSlcclxuXHRcdFx0XHRcdFx0aWYgKCF0aGlzLnVuY2xvc2VkX2JyYWNrZXQoZWRpdG9yLCBcIltcIiwgXCJdXCIsIGVuZCwgMClbMF0gJiZcclxuXHRcdFx0XHRcdFx0ICF0aGlzLnVuY2xvc2VkX2JyYWNrZXQoZWRpdG9yLCBcIltcIiwgXCJdXCIsIGVuZCwgMCwgZmFsc2UpWzBdICYmXHJcblx0XHRcdFx0XHRcdCBuZXh0X3N5bSA9PSBcIl1cIikge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaCsxfSlcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH07XHJcblx0XHRcdFx0cmV0dXJuIGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRrZXk6ICcpJyxcclxuXHRcdFx0cnVuOiAoKTogYm9vbGVhbiA9PiB7XHJcblx0XHRcdFx0Y29uc3QgdmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldylcclxuXHRcdFx0XHRpZiAoIXZpZXcpIHJldHVybiBmYWxzZVxyXG5cclxuXHRcdFx0XHRjb25zdCBlZGl0b3IgID0gdmlldy5lZGl0b3JcclxuXHJcblx0XHRcdFx0aWYgKHRoaXMud2l0aGluTWF0aChlZGl0b3IpKSB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5hdXRvQ2xvc2VSb3VuZF90b2dnbGUpIHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IGVuZCA9IGVkaXRvci5nZXRMaW5lKHBvc2l0aW9uLmxpbmUpLmxlbmd0aFxyXG5cdFx0XHRcdFx0XHRjb25zdCBuZXh0X3N5bSA9IGVkaXRvci5nZXRSYW5nZSh7bGluZTpwb3NpdGlvbi5saW5lLGNoOnBvc2l0aW9uLmNofSx7bGluZTpwb3NpdGlvbi5saW5lLGNoOnBvc2l0aW9uLmNoKzF9KVxyXG5cdFx0XHRcdFx0XHRpZiAoIXRoaXMudW5jbG9zZWRfYnJhY2tldChlZGl0b3IsIFwiKFwiLCBcIilcIiwgZW5kLCAwKVswXSAmJlxyXG5cdFx0XHRcdFx0XHQgIXRoaXMudW5jbG9zZWRfYnJhY2tldChlZGl0b3IsIFwiKFwiLCBcIilcIiwgZW5kLCAwLCBmYWxzZSlbMF0gJiZcclxuXHRcdFx0XHRcdFx0IG5leHRfc3ltID09IFwiKVwiKSB7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLGNoOnBvc2l0aW9uLmNoKzF9KVxyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHRyZXR1cm4gZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdGtleTogJ20nLFxyXG5cdFx0XHRydW46ICgpOiBib29sZWFuID0+IHtcclxuXHRcdFx0XHRjb25zdCB2aWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KVxyXG5cdFx0XHRcdGlmICghdmlldykgcmV0dXJuIGZhbHNlXHJcblxyXG5cdFx0XHRcdGNvbnN0IGVkaXRvciAgPSB2aWV3LmVkaXRvclxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGlmICghdGhpcy53aXRoaW5NYXRoKGVkaXRvcikpIHJldHVybiBmYWxzZVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cclxuXHRcdFx0XHRpZiAoIXRoaXMuc2V0dGluZ3MuYXV0b1N1bUxpbWl0X3RvZ2dsZSkgcmV0dXJuO1xyXG5cdFx0XHRcdGlmICh0aGlzLndpdGhpbk1hdGgoZWRpdG9yKSkge1xyXG5cdFx0XHRcdFx0aWYgKGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSAzIH0sXHJcblx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0pID09ICdcXFxcc3UnKSB7XHJcblx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKCdtXFxcXGxpbWl0cycpXHJcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRdKSk7XHJcblxyXG5cdGFzeW5jIG9ubG9hZCgpIHtcclxuXHRcdGNvbnNvbGUubG9nKCdsb2FkaW5nIFF1aWNrLUxhdGV4IHBsdWdpbicpO1xyXG5cclxuXHRcdHRoaXMucmVnaXN0ZXJFZGl0b3JFeHRlbnNpb24odGhpcy5tYWtlRXh0ZW5zaW9uVGhpbmcoKSk7XHJcblxyXG5cdFx0YXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTtcclxuXHJcblx0XHQvLyBwcmVwcm9jZXNzIHNob3J0aGFuZCBhcnJheVxyXG5cdFx0bGV0IHNob3J0aGFuZHMgPSB0aGlzLnNldHRpbmdzLmN1c3RvbVNob3J0aGFuZF9wYXJhbWV0ZXJcclxuXHRcdHdoaWxlKHNob3J0aGFuZHMuc2xpY2UoLTEpPT1cIlxcblwiKXtcclxuXHRcdFx0c2hvcnRoYW5kcyA9IHNob3J0aGFuZHMuc2xpY2UoMCwtMSlcclxuXHRcdH1cclxuXHRcdGlmKHNob3J0aGFuZHMuc2xpY2UoLTEpPT1cIjtcIil7XHJcblx0XHRcdHNob3J0aGFuZHMgPSBzaG9ydGhhbmRzLnNsaWNlKDAsLTEpXHJcblx0XHR9XHJcblx0XHRpZihzaG9ydGhhbmRzLmxhc3RJbmRleE9mKFwiO1xcblwiKT09LTEpe1xyXG5cdFx0XHR0aGlzLnNob3J0aGFuZF9hcnJheSA9IHNob3J0aGFuZHMuc3BsaXQoXCIsXCIpLm1hcChpdGVtPT5pdGVtLnNwbGl0KFwiOlwiKS5tYXAoaXRlbT0+aXRlbS50cmltKCkpKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuc2hvcnRoYW5kX2FycmF5ID0gc2hvcnRoYW5kcy5zcGxpdChcIjtcXG5cIikubWFwKGl0ZW09Pml0ZW0uc3BsaXQoXCI6XCIpKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ly8gcHJlcHJvY2VzcyBhdXRvQWxpZ24gYXJyYXlcclxuXHRcdHRoaXMuYXV0b0FsaWduX2FycmF5ID0gdGhpcy5zZXR0aW5ncy5hdXRvQWxpZ25TeW1ib2xzLnNwbGl0KFwiIFwiKTtcclxuXHJcblx0XHR0aGlzLmFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeSgoKSA9PiB7XHJcblx0XHRcdHRoaXMucmVnaXN0ZXJDb2RlTWlycm9yKChjbTogQ29kZU1pcnJvci5FZGl0b3IpID0+IHtcclxuXHRcdFx0XHRjbS5vbigndmltLW1vZGUtY2hhbmdlJywgdGhpcy5oYW5kbGVWaW1Nb2RlQ2hhbmdlKTtcclxuXHRcdFx0XHRjbS5vbigna2V5ZG93bicsIHRoaXMuaGFuZGxlS2V5RG93bik7XHJcblx0XHRcdFx0Y20ub24oJ2tleXByZXNzJywgdGhpcy5oYW5kbGVLZXlQcmVzcyk7XHJcblx0XHRcdFx0XHJcblx0XHRcdH0pO1xyXG5cdFx0XHR0aGlzLmFkZFNldHRpbmdUYWIobmV3IFF1aWNrTGF0ZXhTZXR0aW5nVGFiKHRoaXMuYXBwLCB0aGlzKSk7XHJcblxyXG5cdFx0XHR0aGlzLmFkZENvbW1hbmQoe1xyXG5cdFx0XHRcdGlkOiAnYWRkQWxpZ25CbG9jaycsXHJcblx0XHRcdFx0bmFtZTogJ0FkZCBBbGlnbiBCbG9jaycsXHJcblx0XHRcdFx0aG90a2V5czogW1xyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRtb2RpZmllcnM6IFsnQWx0JywgJ1NoaWZ0J10sXHJcblx0XHRcdFx0XHRcdGtleTogJ0EnLFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRdLFxyXG5cdFx0XHRcdGVkaXRvckNhbGxiYWNrOiAoZWRpdG9yKSA9PiB0aGlzLmFkZEFsaWduQmxvY2soZWRpdG9yKSxcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0XHR0aGlzLmFkZENvbW1hbmQoe1xyXG5cdFx0XHRcdGlkOiAnYWRkTWF0cml4QmxvY2snLFxyXG5cdFx0XHRcdG5hbWU6ICdBZGQgTWF0cml4IEJsb2NrJyxcclxuXHRcdFx0XHRob3RrZXlzOiBbXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdG1vZGlmaWVyczogWydBbHQnLCAnU2hpZnQnXSxcclxuXHRcdFx0XHRcdFx0a2V5OiAnTScsXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdF0sXHJcblx0XHRcdFx0ZWRpdG9yQ2FsbGJhY2s6IChlZGl0b3IpID0+IHRoaXMuYWRkTWF0cml4QmxvY2soZWRpdG9yKSxcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0XHR0aGlzLmFkZENvbW1hbmQoe1xyXG5cdFx0XHRcdGlkOiAnYWRkQ2FzZXNCbG9jaycsXHJcblx0XHRcdFx0bmFtZTogJ0FkZCBDYXNlcyBCbG9jaycsXHJcblx0XHRcdFx0aG90a2V5czogW1xyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRtb2RpZmllcnM6IFsnQWx0JywgJ1NoaWZ0J10sXHJcblx0XHRcdFx0XHRcdGtleTogJ0MnLFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRdLFxyXG5cdFx0XHRcdGVkaXRvckNhbGxiYWNrOiAoZWRpdG9yKSA9PiB0aGlzLmFkZENhc2VzQmxvY2soZWRpdG9yKSxcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlVmltTW9kZUNoYW5nZSA9IChcclxuICAgICAgICBtb2RlT2JqOiBhbnlcclxuICAgICkgOiB2b2lkID0+IHtcclxuICAgICAgICBpZiAoIW1vZGVPYmogfHwgbW9kZU9iai5tb2RlID09PSAnaW5zZXJ0JylcclxuICAgICAgICAgICAgdGhpcy52aW1BbGxvd19hdXRvQ2xvc2VNYXRoID0gdHJ1ZTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMudmltQWxsb3dfYXV0b0Nsb3NlTWF0aCA9IGZhbHNlO1xyXG4gICAgfTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSBoYW5kbGVLZXlEb3duID0gKFxyXG5cdFx0Y206IENvZGVNaXJyb3IuRWRpdG9yLFxyXG5cdFx0ZXZlbnQ6IEtleWJvYXJkRXZlbnQsXHJcblx0KTogdm9pZCA9PiB7XHJcblx0XHRjb25zdCB2aWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KTtcclxuXHRcdGlmICghdmlldykgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IGVkaXRvciA9IHZpZXcuZWRpdG9yO1xyXG5cclxuXHRcdGlmIChbJyQnLCAnICcsICdFbnRlcicsICdUYWInXS5jb250YWlucyhldmVudC5rZXkpKSB7XHJcblx0XHRcdHN3aXRjaCAoZXZlbnQua2V5KSB7XHJcblx0XHRcdFx0Y2FzZSAnJCc6XHJcblx0XHRcdFx0XHRpZiAoZWRpdG9yLmdldFNlbGVjdGlvbigpLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuZW5jbG9zZVNlbGVjdGlvbl90b2dnbGUpIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCBhbmNob3IgPSBlZGl0b3IuZ2V0Q3Vyc29yKFwiYW5jaG9yXCIpO1xyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IGhlYWQgPSBlZGl0b3IuZ2V0Q3Vyc29yKFwiaGVhZFwiKTtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbignJCcgKyBlZGl0b3IuZ2V0U2VsZWN0aW9uKCkgKyAnJCcpXHJcblx0XHRcdFx0XHRcdFx0aWYgKGFuY2hvci5saW5lID4gaGVhZC5saW5lKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0U2VsZWN0aW9uKHtsaW5lOmFuY2hvci5saW5lLGNoOmFuY2hvci5jaH0se2xpbmU6aGVhZC5saW5lLGNoOmhlYWQuY2grMX0pXHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmIChhbmNob3IubGluZSA8IGhlYWQubGluZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldFNlbGVjdGlvbih7bGluZTphbmNob3IubGluZSxjaDphbmNob3IuY2grMX0se2xpbmU6aGVhZC5saW5lLGNoOmhlYWQuY2h9KVxyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0U2VsZWN0aW9uKHtsaW5lOmFuY2hvci5saW5lLGNoOmFuY2hvci5jaCsxfSx7bGluZTpoZWFkLmxpbmUsY2g6aGVhZC5jaCsxfSlcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdH0gXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQvLyBjbG9zZSBtYXRoIHN5bWJvbFxyXG5cdFx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKVxyXG5cdFx0XHRcdFx0XHRjb25zdCBwcmV2X2NoYXIgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaC0xfSxcclxuXHRcdFx0XHRcdFx0XHR7bGluZTpwb3NpdGlvbi5saW5lLGNoOnBvc2l0aW9uLmNofSlcclxuXHRcdFx0XHRcdFx0Y29uc3QgbmV4dF9jaGFyID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdHtsaW5lOnBvc2l0aW9uLmxpbmUsY2g6cG9zaXRpb24uY2h9LFxyXG5cdFx0XHRcdFx0XHRcdHtsaW5lOnBvc2l0aW9uLmxpbmUsY2g6cG9zaXRpb24uY2grMX0pXHJcblx0XHRcdFx0XHRcdGNvbnN0IG5leHQyX2NoYXIgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaH0sXHJcblx0XHRcdFx0XHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaCsyfSlcclxuXHRcdFx0XHRcdFx0aWYgKHByZXZfY2hhciAhPSBcIiRcIiAmJiBuZXh0X2NoYXIgPT0gXCIkXCIpe1xyXG5cdFx0XHRcdFx0XHRcdGlmIChuZXh0Ml9jaGFyID09IFwiJCRcIikge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLGNoOnBvc2l0aW9uLmNoKzJ9KVxyXG5cdFx0XHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLGNoOnBvc2l0aW9uLmNoKzF9KVxyXG5cdFx0XHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdC8vIHBlcmZvcm0gYXV0b0Nsb3NlTWF0aFxyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5hdXRvQ2xvc2VNYXRoX3RvZ2dsZSAmJiB0aGlzLnZpbUFsbG93X2F1dG9DbG9zZU1hdGgpIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbihcIiRcIik7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdC8vIHBlcmZvcm0gbW92ZUludG9NYXRoXHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLm1vdmVJbnRvTWF0aF90b2dnbGUpIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCB0ID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSAxIH0sXHJcblx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9KVxyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IHQyID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSxcclxuXHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoICsgMSB9KVxyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IHRfMiA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gMiB9LFxyXG5cdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSlcclxuXHRcdFx0XHRcdFx0XHRpZiAodCA9PSAnJCcgJiYgdDIgIT0gJyQnKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gMSB9KVxyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAodF8yID09ICckJCcpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3IoeyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSAxIH0pXHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHJcblx0XHRcdFx0Y2FzZSAnICc6XHJcblx0XHRcdFx0XHRpZiAoIXRoaXMuc2V0dGluZ3MuYXV0b0ZyYWN0aW9uX3RvZ2dsZSAmJlxyXG5cdFx0XHRcdFx0XHQhdGhpcy5zZXR0aW5ncy5hdXRvTGFyZ2VCcmFja2V0X3RvZ2dsZSAmJlxyXG5cdFx0XHRcdFx0XHQhdGhpcy5zZXR0aW5ncy5hdXRvRW5jbG9zZVN1cF90b2dnbGUgJiZcclxuXHRcdFx0XHRcdFx0IXRoaXMuc2V0dGluZ3MuYXV0b0VuY2xvc2VTdWJfdG9nZ2xlICYmXHJcblx0XHRcdFx0XHRcdCF0aGlzLnNldHRpbmdzLmN1c3RvbVNob3J0aGFuZF90b2dnbGUpIHJldHVybjtcclxuXHJcblx0XHRcdFx0XHRpZiAodGhpcy53aXRoaW5NYXRoKGVkaXRvcikpIHtcclxuXHJcblx0XHRcdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBjdXJyZW50X2xpbmUgPSBlZGl0b3IuZ2V0TGluZShwb3NpdGlvbi5saW5lKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgbGFzdF9kb2xsYXIgPSBjdXJyZW50X2xpbmUubGFzdEluZGV4T2YoJyQnLCBwb3NpdGlvbi5jaCAtIDEpO1xyXG5cclxuXHRcdFx0XHRcdFx0Ly8gY2hlY2sgZm9yIGN1c3RvbSBzaG9ydGhhbmRcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuY3VzdG9tU2hvcnRoYW5kX3RvZ2dsZSAmJiAhdGhpcy53aXRoaW5UZXh0KGVkaXRvciwgcG9zaXRpb24uY2gpKSB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IGtleXdvcmQ6c3RyaW5nID0gXCJcIjtcclxuXHRcdFx0XHRcdFx0XHRsZXQga2V5d29yZF9sZW5ndGg6bnVtYmVyID0gMDtcclxuXHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMCA7IGkgPCB0aGlzLnNob3J0aGFuZF9hcnJheS5sZW5ndGggOyBpKyspIHtcclxuXHRcdFx0XHRcdFx0XHRcdGtleXdvcmRfbGVuZ3RoID0gdGhpcy5zaG9ydGhhbmRfYXJyYXlbaV1bMF0ubGVuZ3RoO1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCBrZXl3b3JkX2xlbmd0aCA+IHBvc2l0aW9uLmNoKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICgga2V5d29yZF9sZW5ndGggPT0gcG9zaXRpb24uY2ggKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGtleXdvcmQgPSBcIkBcIiArIGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIGtleXdvcmRfbGVuZ3RoIH0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSk7XHJcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRrZXl3b3JkID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0ga2V5d29yZF9sZW5ndGggLSAxIH0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoa2V5d29yZFswXS50b0xvd2VyQ2FzZSgpID09IGtleXdvcmRbMF0udG9VcHBlckNhc2UoKSB8fCBcclxuXHRcdFx0XHRcdFx0XHRcdFx0a2V5d29yZFswXSA9PSBcIkBcIiApIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKHRoaXMuc2hvcnRoYW5kX2FycmF5W2ldWzBdID09IGtleXdvcmQuc2xpY2UoLSBrZXl3b3JkX2xlbmd0aCkgJiYgXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zaG9ydGhhbmRfYXJyYXlbaV1bMV0gIT0ga2V5d29yZCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHJlcGxhY2Vfc2xhc2ggPSAoa2V5d29yZFswXT09XCJcXFxcXCIgJiYgdGhpcy5zaG9ydGhhbmRfYXJyYXlbaV1bMV1bMF09PVwiXFxcXFwiKSA/IDEgOiAwO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHNldF9jdXJzb3JfcG9zaXRpb24gPSB0aGlzLnNob3J0aGFuZF9hcnJheVtpXVsxXS5pbmRleE9mKFwiI2N1cnNvclwiKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKHRoaXMuc2hvcnRoYW5kX2FycmF5W2ldWzFdLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSBrZXl3b3JkX2xlbmd0aCAtIHJlcGxhY2Vfc2xhc2ggfSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0pO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChzZXRfY3Vyc29yX3Bvc2l0aW9uICE9IC0xKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFwiXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaCAtIGtleXdvcmRfbGVuZ3RoIC0gcmVwbGFjZV9zbGFzaCArIHNldF9jdXJzb3JfcG9zaXRpb259LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2ggLSBrZXl3b3JkX2xlbmd0aCAtIHJlcGxhY2Vfc2xhc2ggKyBzZXRfY3Vyc29yX3Bvc2l0aW9uKzd9KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2ggLSBrZXl3b3JkX2xlbmd0aCAtIHJlcGxhY2Vfc2xhc2ggKyBzZXRfY3Vyc29yX3Bvc2l0aW9ufSlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHRoaXMuc2hvcnRoYW5kX2FycmF5W2ldWzFdLnNsaWNlKC0yKSA9PSBcInt9XCIpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3IoXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNoOiBwb3NpdGlvbi5jaCArIHRoaXMuc2hvcnRoYW5kX2FycmF5W2ldWzFdLmxlbmd0aCAtIGtleXdvcmRfbGVuZ3RoIC0gMSAtIHJlcGxhY2Vfc2xhc2h9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fTtcclxuXHJcblx0XHRcdFx0XHRcdC8vIGZpbmQgbGFzdCB1bmJyYWNrZXRlZCBzdWJzY3JpcHQgd2l0aGluIGxhc3QgMTAgY2hhcmFjdGVycyBhbmQgcGVyZm9ybSBhdXRvRW5jbG9zZVN1YlxyXG5cdFx0XHRcdFx0XHQvLyBpZ25vcmUgZXhwcmVzc2lvbiB0aGF0IGNvbnRhaW4gKyAtICogLyBeXHJcblx0XHRcdFx0XHRcdGNvbnN0IGxhc3RfbWF0aCA9IGN1cnJlbnRfbGluZS5sYXN0SW5kZXhPZignJCcsIHBvc2l0aW9uLmNoIC0gMSk7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmF1dG9FbmNsb3NlU3ViX3RvZ2dsZSkge1xyXG5cdFx0XHRcdFx0XHRcdGxldCBsYXN0X3N1YnNjcmlwdCA9IGN1cnJlbnRfbGluZS5sYXN0SW5kZXhPZignXycsIHBvc2l0aW9uLmNoKTtcclxuXHRcdFx0XHRcdFx0XHRpZiAobGFzdF9zdWJzY3JpcHQgIT0gLTEgJiYgbGFzdF9zdWJzY3JpcHQgPiBsYXN0X21hdGgpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGxldHRlcl9hZnRlcl9zdWJzY3JpcHQgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3Rfc3Vic2NyaXB0ICsgMSB9LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X3N1YnNjcmlwdCArIDIgfSk7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAobGV0dGVyX2FmdGVyX3N1YnNjcmlwdCAhPSBcIntcIiAmJiBcclxuXHRcdFx0XHRcdFx0XHRcdFx0KHBvc2l0aW9uLmNoIC0gbGFzdF9zdWJzY3JpcHQpIDw9IDEwICkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFwifVwiLCBwb3NpdGlvbik7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlUmFuZ2UoXCJ7XCIsIHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOmxhc3Rfc3Vic2NyaXB0KzF9KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdC8vIHJldHJpZXZlIHRoZSBsYXN0IHVuYnJhY2tldGVkIHN1cGVyc2NyaXB0XHJcblx0XHRcdFx0XHRcdGxldCBsYXN0X3N1cGVyc2NyaXB0ID0gY3VycmVudF9saW5lLmxhc3RJbmRleE9mKCdeJywgcG9zaXRpb24uY2gpO1xyXG5cdFx0XHRcdFx0XHR3aGlsZSAobGFzdF9zdXBlcnNjcmlwdCAhPSAtMSkge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IHR3b19sZXR0ZXJzX2FmdGVyX3N1cGVyc2NyaXB0ID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9zdXBlcnNjcmlwdCArIDEgfSxcclxuXHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3Rfc3VwZXJzY3JpcHQgKyAzIH0pO1xyXG5cdFx0XHRcdFx0XHRcdGlmICh0d29fbGV0dGVyc19hZnRlcl9zdXBlcnNjcmlwdFswXSA9PSAneycgfHwgdHdvX2xldHRlcnNfYWZ0ZXJfc3VwZXJzY3JpcHQgPT0gJyB7Jykge1xyXG5cdFx0XHRcdFx0XHRcdFx0bGFzdF9zdXBlcnNjcmlwdCA9IGN1cnJlbnRfbGluZS5sYXN0SW5kZXhPZignXicsIGxhc3Rfc3VwZXJzY3JpcHQgLSAxKTtcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKGxhc3Rfc3VwZXJzY3JpcHQgPCBsYXN0X21hdGgpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGxhc3Rfc3VwZXJzY3JpcHQgPSAtMVxyXG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0Ly8gcmV0cmlldmUgdGhlIGxhc3QgZGl2aWRlIHN5bWJvbFxyXG5cdFx0XHRcdFx0XHRsZXQgbGFzdF9kaXZpZGUgPSBjdXJyZW50X2xpbmUubGFzdEluZGV4T2YoJy8nLCBwb3NpdGlvbi5jaCAtIDIpO1xyXG5cclxuXHRcdFx0XHRcdFx0d2hpbGUgKGxhc3RfZGl2aWRlICE9IC0xKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgYXJvdW5kX2RpdmlkZSA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3RfZGl2aWRlIC0gMSB9LFxyXG5cdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9kaXZpZGUgKyAyIH0pO1xyXG5cdFx0XHRcdFx0XHRcdGlmIChhcm91bmRfZGl2aWRlWzBdID09ICcgJyAmJiBhcm91bmRfZGl2aWRlWzJdID09ICcgJykge1xyXG5cdFx0XHRcdFx0XHRcdFx0bGFzdF9kaXZpZGUgPSBjdXJyZW50X2xpbmUubGFzdEluZGV4T2YoJ14nLCBsYXN0X2RpdmlkZSAtIDEpO1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAobGFzdF9kaXZpZGUgPCBsYXN0X21hdGgpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGxhc3RfZGl2aWRlID0gLTFcclxuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdC8vIHBlcmZvcm0gYXV0b0VuY2xvc2VTdXBcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYXV0b0VuY2xvc2VTdXBfdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKGxhc3Rfc3VwZXJzY3JpcHQgPiBsYXN0X2RpdmlkZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gaWYgYW55IGJyYWNrZXRzIGZyb20gbGFzdCBzdXAgdG8gY3Vyc29yIHN0aWxsIHVuY2xvc2VkLCBkb250IGRvIGF1dG9FbmNsb3NlU3VwIHlldFxyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgYnJhY2tldHMgPSBbWycoJywgJyknXSwgWyd7JywgJ30nXSwgWydbJywgJ10nXV07XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoIWJyYWNrZXRzLnNvbWUoZSA9PiB0aGlzLnVuY2xvc2VkX2JyYWNrZXQoZWRpdG9yLCBlWzBdLCBlWzFdLCBwb3NpdGlvbi5jaCwgbGFzdF9zdXBlcnNjcmlwdClbMF0pKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuYXV0b0VuY2xvc2VTdXAoZWRpdG9yLCBldmVudCwgbGFzdF9zdXBlcnNjcmlwdCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHRcdFx0Ly8gcGVyZm9ybSBhdXRvRnJhY3Rpb25cclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYXV0b0ZyYWN0aW9uX3RvZ2dsZSAmJiAhdGhpcy53aXRoaW5UZXh0KGVkaXRvciwgbGFzdF9kaXZpZGUpKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKGxhc3RfZGl2aWRlID4gbGFzdF9kb2xsYXIpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGJyYWNrZXRzID0gW1snKCcsICcpJ10sIFsneycsICd9J10sIFsnWycsICddJ11dO1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gaWYgYW55IGJyYWNrZXRzIGluIGRlbm9taW5hdG9yIHN0aWxsIHVuY2xvc2VkLCBkb250IGRvIGF1dG9GcmFjdGlvbiB5ZXRcclxuXHRcdFx0XHRcdFx0XHRcdGlmICghYnJhY2tldHMuc29tZShlID0+IHRoaXMudW5jbG9zZWRfYnJhY2tldChlZGl0b3IsIGVbMF0sIGVbMV0sIHBvc2l0aW9uLmNoLCBsYXN0X2RpdmlkZSlbMF0pKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuYXV0b0ZyYWN0aW9uKGVkaXRvciwgZXZlbnQsIGxhc3Rfc3VwZXJzY3JpcHQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdH07XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBwZXJmb3JtIGF1dG9MYXJnZUJyYWNrZXRcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYXV0b0xhcmdlQnJhY2tldF90b2dnbGUpIHtcclxuXHRcdFx0XHRcdFx0XHRsZXQgc3ltYm9sX2JlZm9yZSA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gMSB9LFxyXG5cdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSlcclxuXHRcdFx0XHRcdFx0XHRpZiAoc3ltYm9sX2JlZm9yZSA9PSAnKScgfHwgc3ltYm9sX2JlZm9yZSA9PSAnXScpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuYXV0b0xhcmdlQnJhY2tldChlZGl0b3IsIGV2ZW50KTtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cclxuXHRcdFx0XHRjYXNlICdFbnRlcic6XHJcblx0XHRcdFx0XHQvLyBwZXJmb3JtIEVudGVyIHNob3J0Y3V0IHdpdGhpbiBtYXRyaXggYmxvY2tcclxuXHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmFkZE1hdHJpeEJsb2NrX3RvZ2dsZSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBiZWdpbl9tYXRyaXggPSBbJ1xcXFxiZWdpbnsnICsgdGhpcy5zZXR0aW5ncy5hZGRNYXRyaXhCbG9ja19wYXJhbWV0ZXIsIFwiXFxcXGJlZ2lue21hdHJpeH1cIixcIlxcXFxiZWdpbntibWF0cml4fVwiLCBcIlxcXFxiZWdpbntCbWF0cml4fVwiLCBcIlxcXFxiZWdpbnt2bWF0cml4fVwiLCBcIlxcXFxiZWdpbntWbWF0cml4fVwiLCBcIlxcXFxiZWdpbntzbWFsbG1hdHJpeH1cIl1cclxuXHRcdFx0XHRcdFx0Y29uc3QgZW5kX21hdHJpeCA9IFsnXFxcXGVuZHsnICsgdGhpcy5zZXR0aW5ncy5hZGRNYXRyaXhCbG9ja19wYXJhbWV0ZXIsIFwiXFxcXGVuZHttYXRyaXh9XCIsXCJcXFxcZW5ke2JtYXRyaXh9XCIsIFwiXFxcXGVuZHtCbWF0cml4fVwiLCBcIlxcXFxlbmR7dm1hdHJpeH1cIiwgXCJcXFxcZW5ke1ZtYXRyaXh9XCIsIFwiXFxcXGVuZHtzbWFsbG1hdHJpeH1cIl1cclxuXHRcdFx0XHRcdFx0bGV0IHN0YXRlID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBiZWdpbl9tYXRyaXgubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy53aXRoaW5BbnlCcmFja2V0c19kb2N1bWVudChlZGl0b3IsIGJlZ2luX21hdHJpeFtpXSwgZW5kX21hdHJpeFtpXSkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0c3RhdGUgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRpZiAoIWV2ZW50LnNoaWZ0S2V5KSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHN0YXRlKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbignIFxcXFxcXFxcICcpXHJcblx0XHRcdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Ly8gcGVyZm9ybSBFbnRlciBzaG9ydGN1dCB3aXRoaW4gYWxpZ24gYmxvY2tcclxuXHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmFkZEFsaWduQmxvY2tfdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLndpdGhpbkFueUJyYWNrZXRzX2RvY3VtZW50KFxyXG5cdFx0XHRcdFx0XHRcdGVkaXRvcixcclxuXHRcdFx0XHRcdFx0XHQnXFxcXGJlZ2lueycgKyB0aGlzLnNldHRpbmdzLmFkZEFsaWduQmxvY2tfcGFyYW1ldGVyLFxyXG5cdFx0XHRcdFx0XHRcdCdcXFxcZW5keycgKyB0aGlzLnNldHRpbmdzLmFkZEFsaWduQmxvY2tfcGFyYW1ldGVyKVxyXG5cdFx0XHRcdFx0XHQpIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAoIWV2ZW50LnNoaWZ0S2V5KSB7XHJcblx0XHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbignXFxcXFxcXFxcXG4mJylcclxuXHRcdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Ly8gZW50ZXIgZm9yIGNhc2VzIGJsb2NrXHJcblx0XHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5hZGRDYXNlc0Jsb2NrX3RvZ2dsZSkge1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy53aXRoaW5BbnlCcmFja2V0c19kb2N1bWVudChcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3IsXHJcblx0XHRcdFx0XHRcdFx0J1xcXFxiZWdpbntjYXNlc30nLFxyXG5cdFx0XHRcdFx0XHRcdCdcXFxcZW5ke2Nhc2VzfSdcclxuXHRcdFx0XHRcdFx0KSkge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKCcgXFxcXFxcXFxcXG4nKVxyXG5cdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Ly8gZG91YmxlIGVudGVyIGZvciAkJFxyXG5cdFx0XHRcdFx0aWYgKHRoaXMud2l0aGluTWF0aChlZGl0b3IpKSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBwcmV2Ml9DaGFyID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gMiB9LFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0pXHJcblx0XHRcdFx0XHRcdGNvbnN0IG5leHQyX0NoYXIgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSxcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCArIDIgfSlcclxuXHRcdFx0XHRcdFx0aWYgKHByZXYyX0NoYXI9PVwiJCRcIiYmbmV4dDJfQ2hhcj09XCIkJFwiKSB7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oJ1xcbicpXHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcihwb3NpdGlvbilcclxuXHRcdFx0XHRcdFx0fVx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdFx0XHRjYXNlICdUYWInOlxyXG5cdFx0XHRcdFx0Ly8gcGVyZm9ybSBUYWIgc2hvcnRjdXQgd2l0aGluIG1hdHJpeCBibG9ja1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYWRkTWF0cml4QmxvY2tfdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IGJlZ2luX21hdHJpeCA9IFsnXFxcXGJlZ2lueycgKyB0aGlzLnNldHRpbmdzLmFkZE1hdHJpeEJsb2NrX3BhcmFtZXRlciwgXCJcXFxcYmVnaW57bWF0cml4fVwiLFwiXFxcXGJlZ2lue2JtYXRyaXh9XCIsIFwiXFxcXGJlZ2lue0JtYXRyaXh9XCIsIFwiXFxcXGJlZ2lue3ZtYXRyaXh9XCIsIFwiXFxcXGJlZ2lue1ZtYXRyaXh9XCIsIFwiXFxcXGJlZ2lue3NtYWxsbWF0cml4fVwiXVxyXG5cdFx0XHRcdFx0XHRjb25zdCBlbmRfbWF0cml4ID0gWydcXFxcZW5keycgKyB0aGlzLnNldHRpbmdzLmFkZE1hdHJpeEJsb2NrX3BhcmFtZXRlciwgXCJcXFxcZW5ke21hdHJpeH1cIixcIlxcXFxlbmR7Ym1hdHJpeH1cIiwgXCJcXFxcZW5ke0JtYXRyaXh9XCIsIFwiXFxcXGVuZHt2bWF0cml4fVwiLCBcIlxcXFxlbmR7Vm1hdHJpeH1cIiwgXCJcXFxcZW5ke3NtYWxsbWF0cml4fVwiXVxyXG5cdFx0XHRcdFx0XHRsZXQgc3RhdGUgPSBmYWxzZVxyXG5cdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGJlZ2luX21hdHJpeC5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLndpdGhpbkFueUJyYWNrZXRzX2RvY3VtZW50KGVkaXRvciwgYmVnaW5fbWF0cml4W2ldLCBlbmRfbWF0cml4W2ldKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRzdGF0ZSA9IHRydWVcclxuXHRcdFx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGlmIChzdGF0ZSkge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKCcgJiAnKVxyXG5cdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQvLyBUYWIgc2hvcnRjdXQgZm9yIGNhc2VzIGJsb2NrXHJcblx0XHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5hZGRDYXNlc0Jsb2NrX3RvZ2dsZSkge1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy53aXRoaW5BbnlCcmFja2V0c19kb2N1bWVudChlZGl0b3IsXHJcblx0XHRcdFx0XHRcdCdcXFxcYmVnaW57Y2FzZXN9JyxcclxuXHRcdFx0XHRcdFx0J1xcXFxlbmR7Y2FzZXN9J1xyXG5cdFx0XHRcdFx0XHQpKSB7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oJyAmICcpXHJcblx0XHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHRcdC8vIFRhYiB0byBnbyB0byBuZXh0ICN0YWJcclxuXHRcdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0XHRcdFx0Y29uc3QgY3VycmVudF9saW5lID0gZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSk7XHJcblx0XHRcdFx0XHRjb25zdCB0YWJfcG9zaXRpb24gPSBjdXJyZW50X2xpbmUuaW5kZXhPZihcIiN0YWJcIik7XHJcblx0XHRcdFx0XHRpZiAodGFiX3Bvc2l0aW9uIT0tMSl7XHJcblx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlUmFuZ2UoXCJcIixcclxuXHRcdFx0XHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSwgY2g6dGFiX3Bvc2l0aW9ufSxcclxuXHRcdFx0XHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSwgY2g6dGFiX3Bvc2l0aW9uKzR9KVxyXG5cdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnRhYl9wb3NpdGlvbn0pXHJcblx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdH07XHJcblxyXG5cdFx0XHRcdFx0Ly8gVGFiIHRvIG5leHQgY2xvc2UgYnJhY2tldFxyXG5cdFx0XHRcdFx0aWYgKHRoaXMud2l0aGluTWF0aChlZGl0b3IpKSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBjdXJyZW50X2xpbmUgPSBlZGl0b3IuZ2V0TGluZShwb3NpdGlvbi5saW5lKTtcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdGlmIChldmVudC5zaGlmdEtleSkge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IGNsb3NlX3N5bWJvbHMgPSBbJ30nLCAnXScsICcpJ10gXHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgcHJlY2VkaW5nX3RleHQgPSBlZGl0b3IuZ2V0UmFuZ2Uoe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6MH0se2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2h9KVxyXG5cdFx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSBwcmVjZWRpbmdfdGV4dC5sZW5ndGg7IGkgPj0gMDsgaS0tKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoY2xvc2Vfc3ltYm9scy5jb250YWlucyhwcmVjZWRpbmdfdGV4dFtpXSkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLCBjaDppfSlcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHBvc2l0aW9uLmNoLWkgPiAxICYmIHByZWNlZGluZ190ZXh0W2ldPT1cIiRcIikge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOmkrMX0pXHJcblx0XHRcdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmIChwcmVjZWRpbmdfdGV4dC5zbGljZSgtMik9PVwiJCRcIikge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoLTJ9KVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAocHJlY2VkaW5nX3RleHRbLTFdPT1cIiRcIikge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoLTF9KVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHRcdFx0XHRcdH1cdFx0XHRcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgY2xvc2Vfc3ltYm9scyA9IFsnfScsICddJywgJyknLCAnJCddIFxyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IGZvbGxvd2luZ190ZXh0ID0gZWRpdG9yLmdldFJhbmdlKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoKzF9LHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOmN1cnJlbnRfbGluZS5sZW5ndGh9KVxyXG5cdFx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgZm9sbG93aW5nX3RleHQubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChjbG9zZV9zeW1ib2xzLmNvbnRhaW5zKGZvbGxvd2luZ190ZXh0W2ldKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoK2krMX0pXHJcblx0XHRcdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdFx0XHRcdFx0fVx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQvLyBUYWIgb3V0IG9mICRcclxuXHRcdFx0XHRcdGlmICh0aGlzLndpdGhpbk1hdGgoZWRpdG9yKSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgbmV4dF8yID0gZWRpdG9yLmdldFJhbmdlKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNofSx7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaCsyfSlcclxuXHRcdFx0XHRcdFx0aWYgKG5leHRfMiA9PSBcIiQkXCIpIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoKzJ9KVxyXG5cdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAobmV4dF8yWzBdID09IFwiJFwiKSB7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaCsxfSlcclxuXHRcdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdH07XHJcblx0XHR9O1xyXG5cdH07XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlS2V5UHJlc3MgPSAoXHJcblx0XHRjbTogQ29kZU1pcnJvci5FZGl0b3IsXHJcblx0XHRldmVudDogS2V5Ym9hcmRFdmVudCxcclxuXHQpOiB2b2lkID0+IHtcclxuXHJcblx0XHRpZiAoWyd7JywgJ1snLCAnKCcsICdtJ10uY29udGFpbnMoZXZlbnQua2V5KSkge1xyXG5cdFx0XHRjb25zdCB2aWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KTtcclxuXHRcdFx0aWYgKCF2aWV3KSByZXR1cm47XHJcblxyXG5cdFx0XHRjb25zdCBlZGl0b3IgPSB2aWV3LmVkaXRvcjtcclxuXHRcdFx0aWYgKHRoaXMud2l0aGluTWF0aChlZGl0b3IpKSB7XHJcblx0XHRcdFx0Y29uc3QgcG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XHJcblx0XHRcdFx0Y29uc3QgYnJhY2tldHMgPSBbWycoJywgJyknXSwgWyd7JywgJ30nXSwgWydbJywgJ10nXV07XHJcblx0XHRcdFx0Y29uc3QgbmV4dF9jaGFyID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSxcclxuXHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoKzEgfSk7XHJcblx0XHRcdFx0Y29uc3QgbmV4dF8yY2hhciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0sXHJcblx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCsyIH0pO1xyXG5cdFx0XHRcdGNvbnN0IGZvbGxvd2VkX2J5XyRzcGFjZXRhYm5vbmVkb3VibGVzbGFzaCA9IChbJyQnLCcgJywnXHQnLCcnXS5jb250YWlucyhuZXh0X2NoYXIpIHx8IG5leHRfMmNoYXIgPT0gJ1xcXFxcXFxcJyk7XHJcblx0XHRcdFx0c3dpdGNoIChldmVudC5rZXkpIHtcclxuXHRcdFx0XHRcdGNhc2UgJ3snOlxyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5hdXRvQ2xvc2VDdXJseV90b2dnbGUpIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAoIXRoaXMud2l0aGluQW55QnJhY2tldHNfaW5saW5lKGVkaXRvciwgYnJhY2tldHMpICYmIGZvbGxvd2VkX2J5XyRzcGFjZXRhYm5vbmVkb3VibGVzbGFzaCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oJ3t9Jyk7XHJcblx0XHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoKzF9KTtcclxuXHRcdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRjYXNlICdbJzpcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYXV0b0Nsb3NlU3F1YXJlX3RvZ2dsZSkge1xyXG5cdFx0XHRcdFx0XHRcdGlmICghdGhpcy53aXRoaW5BbnlCcmFja2V0c19pbmxpbmUoZWRpdG9yLCBicmFja2V0cykgJiYgZm9sbG93ZWRfYnlfJHNwYWNldGFibm9uZWRvdWJsZXNsYXNoKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbignW10nKTtcclxuXHRcdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2grMX0pO1xyXG5cdFx0XHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdGNhc2UgJygnOlxyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5hdXRvQ2xvc2VSb3VuZF90b2dnbGUpIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAoIXRoaXMud2l0aGluQW55QnJhY2tldHNfaW5saW5lKGVkaXRvciwgYnJhY2tldHMpICYmIGZvbGxvd2VkX2J5XyRzcGFjZXRhYm5vbmVkb3VibGVzbGFzaCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oJygpJyk7XHJcblx0XHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoKzF9KTtcclxuXHRcdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0fVx0XHJcblx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdGNhc2UgJ20nOlxyXG5cdFx0XHRcdFx0XHRpZiAoIXRoaXMuc2V0dGluZ3MuYXV0b1N1bUxpbWl0X3RvZ2dsZSkgcmV0dXJuO1xyXG5cdFx0XHRcdFx0XHRpZiAoZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gMyB9LFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0pID09ICdcXFxcc3UnKSB7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oJ21cXFxcbGltaXRzJylcclxuXHRcdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpXHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH07XHJcblx0XHRcdH07XHJcblx0XHR9O1xyXG5cdH07XHJcblxyXG5cdC8vbWFpbiBmdW5jdGlvbnNcclxuXHRwcml2YXRlIHJlYWRvbmx5IGF1dG9FbmNsb3NlU3VwID0gKFxyXG5cdFx0ZWRpdG9yOiBFZGl0b3IsXHJcblx0XHRldmVudDpFdmVudCxcclxuXHRcdGxhc3Rfc3VwZXJzY3JpcHQ6IG51bWJlclxyXG5cdCk6IGJvb2xlYW4gPT4ge1xyXG5cdFx0Ly8gc3VwZXJzY3JpcHQgYnJhY2tldGluZ1xyXG5cdFx0Y29uc3QgcG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XHJcblx0XHRjb25zdCBsZXR0ZXJfYmVmb3JlX2N1cnNvciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSAxIH0sXHJcblx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH1cclxuXHRcdClcclxuXHJcblx0XHRpZiAobGFzdF9zdXBlcnNjcmlwdCAhPSAtMSAmJiBsZXR0ZXJfYmVmb3JlX2N1cnNvciAhPSBcIl5cIikge1xyXG5cdFx0XHRjb25zdCBsZXR0ZXJfYWZ0ZXJfc3VwZXJzY3JpcHQgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9zdXBlcnNjcmlwdCArIDEgfSxcclxuXHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X3N1cGVyc2NyaXB0ICsgMiB9KTtcclxuXHRcdFx0aWYgKGxldHRlcl9hZnRlcl9zdXBlcnNjcmlwdCA9PSAnKCcgJiYgbGV0dGVyX2JlZm9yZV9jdXJzb3IgPT0gJyknICYmIHBvc2l0aW9uLmNoLWxhc3Rfc3VwZXJzY3JpcHQgPiA2KSB7XHJcblx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZShcclxuXHRcdFx0XHRcdCd9JyxcclxuXHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gMSB9LFxyXG5cdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfVxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFxyXG5cdFx0XHRcdFx0J3snLFxyXG5cdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9zdXBlcnNjcmlwdCArIDEgfSxcclxuXHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3Rfc3VwZXJzY3JpcHQgKyAyIH1cclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKVxyXG5cdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHR9IGVsc2UgaWYgKGxldHRlcl9hZnRlcl9zdXBlcnNjcmlwdCA9PSAnICcpIHtcclxuXHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbignfScpO1xyXG5cdFx0XHRcdGVkaXRvci5yZXBsYWNlUmFuZ2UoJ3snLCB7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X3N1cGVyc2NyaXB0ICsgMiB9KTtcclxuXHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpXHJcblx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oJ30nKTtcclxuXHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKCd7JywgeyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9zdXBlcnNjcmlwdCArIDEgfSk7XHJcblx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKVxyXG5cdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSBhdXRvRnJhY3Rpb24gPSAoXHJcblx0XHRlZGl0b3I6IEVkaXRvcixcclxuXHRcdGV2ZW50OkV2ZW50LFxyXG5cdFx0bGFzdF9zdXBlcnNjcmlwdDogbnVtYmVyXHJcblx0KTogYm9vbGVhbiA9PiB7XHJcblx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdGNvbnN0IGN1cnJlbnRfbGluZSA9IGVkaXRvci5nZXRMaW5lKHBvc2l0aW9uLmxpbmUpO1xyXG5cdFx0bGV0IGxhc3RfZGl2aWRlID0gY3VycmVudF9saW5lLmxhc3RJbmRleE9mKCcvJywgcG9zaXRpb24uY2ggLSAxKTtcclxuXHJcblx0XHQvLyBpZiBjdXJzb3IgaXMgcHJlY2VlZGVkIGJ5IGEgY2xvc2UgYnJhY2tldCwgYW5kIHRoZSBjb3JyZXNwb25kaW5nIG9wZW4gYnJhY2tldFxyXG5cdFx0Ly8gaXMgZm91bmQgYmVmb3JlIFwiL1wiLCByZW1vdmUgdGhlIGJyYWNrZXRzIGFuZCBlbmNsb3NlIHdob2xlIGV4cHJlc3Npb24gdXNpbmcgXFxmcmFjXHJcblx0XHRjb25zdCBsZXR0ZXJfYmVmb3JlX2N1cnNvciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSAxIH0sXHJcblx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH1cclxuXHRcdClcclxuXHJcblx0XHQvLyBpZiB0aGVyZSBhcmUgYW55IGJyYWNrZXRzIHVuY2xvc2VkIGJlZm9yZSBkaXZpZGUgc3ltYm9sLFxyXG5cdFx0Ly8gaW5jbHVkZSB0aGUgb3BlbiBicmFja2V0cyBpbnRvIHN0b3Bfc3ltYm9sc1xyXG5cdFx0Y29uc3QgYnJhY2tldHMgPSBbWycoJywgJyknXSwgWyd7JywgJ30nXSwgWydbJywgJ10nXV07XHJcblx0XHRsZXQgc3RvcF9icmFja2V0cyA9IFtdXHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGJyYWNrZXRzLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdGlmIChsZXR0ZXJfYmVmb3JlX2N1cnNvciA9PSBicmFja2V0c1tpXVsxXSkge1xyXG5cdFx0XHRcdGNvbnN0IG9wZW5fYnJhY2tldHMgPSB0aGlzLnVuY2xvc2VkX2JyYWNrZXQoZWRpdG9yLCBicmFja2V0c1tpXVswXSwgYnJhY2tldHNbaV1bMV0sIHBvc2l0aW9uLmNoIC0gMSwgMClbMV1cclxuXHRcdFx0XHRjb25zdCBwb3Nfb2ZfdGhlX29wZW5fYnJhY2tldCA9IG9wZW5fYnJhY2tldHNbb3Blbl9icmFja2V0cy5sZW5ndGggLSAxXVxyXG5cdFx0XHRcdGlmIChwb3Nfb2ZfdGhlX29wZW5fYnJhY2tldCA8IGxhc3RfZGl2aWRlKSB7XHJcblx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFxyXG5cdFx0XHRcdFx0XHQnfScsXHJcblx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gMSB9LFxyXG5cdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9XHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFxyXG5cdFx0XHRcdFx0XHQnfXsnLFxyXG5cdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X2RpdmlkZSB9LFxyXG5cdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X2RpdmlkZSArIDEgfVxyXG5cdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZShcclxuXHRcdFx0XHRcdFx0J1xcXFxmcmFjeycsXHJcblx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc19vZl90aGVfb3Blbl9icmFja2V0IH0sXHJcblx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc19vZl90aGVfb3Blbl9icmFja2V0ICsgMSB9XHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRzdG9wX2JyYWNrZXRzLnB1c2goLi4udGhpcy51bmNsb3NlZF9icmFja2V0KGVkaXRvciwgYnJhY2tldHNbaV1bMF0sIGJyYWNrZXRzW2ldWzFdLCBsYXN0X2RpdmlkZSwgMClbMV0pXHJcblx0XHR9XHJcblxyXG5cdFx0bGV0IGZyYWMgPSAwXHJcblxyXG5cdFx0Ly8gaWYgbnVtZXJhdG9yIGlzIGVuY2xvc2VkIGJ5ICgpLCBwbGFjZSBmcmFjIGluIGZyb250IG9mICgpIGFuZCByZW1vdmUgKClcclxuXHRcdGxldCBudW1lcmF0b3JfcmVtb3ZlX2JyYWNrZXQgPSAwXHJcblx0XHRpZiAoZWRpdG9yLmdldFJhbmdlKHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3RfZGl2aWRlIC0gMSB9LCB7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X2RpdmlkZSB9KSA9PSAnKScpIHtcclxuXHRcdFx0Y29uc3QgbnVtZXJhdG9yX29wZW5fYnJhY2tldCA9IHRoaXMudW5jbG9zZWRfYnJhY2tldChlZGl0b3IsICcoJywgJyknLCBsYXN0X2RpdmlkZSAtIDEsIDApWzFdLnNsaWNlKC0xKVswXVxyXG5cdFx0XHRmcmFjID0gbnVtZXJhdG9yX29wZW5fYnJhY2tldCAtIDE7XHJcblx0XHRcdG51bWVyYXRvcl9yZW1vdmVfYnJhY2tldCA9IDFcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvbnN0IHN0b3Bfc3ltYm9scyA9IFsnJCcsICc9JywgJz4nLCAnPCcsICcsJywgJy8nLCAnICddXHJcblx0XHRcdGNvbnN0IHN5bWJvbF9wb3NpdGlvbnMgPSBzdG9wX3N5bWJvbHMubWFwKGUgPT4gY3VycmVudF9saW5lLmxhc3RJbmRleE9mKGUsIGxhc3RfZGl2aWRlIC0gMSkpXHJcblx0XHRcdGZyYWMgPSBNYXRoLm1heChsYXN0X3N1cGVyc2NyaXB0LCAuLi5zeW1ib2xfcG9zaXRpb25zLCAuLi5zdG9wX2JyYWNrZXRzKVxyXG5cdFx0fTtcclxuXHJcblx0XHQvLyBpZiBkZW5vbWluYXRvciBpcyBlbmNsb3NlZCBieSAoKSwgcmVtb3ZlICgpXHJcblx0XHRjb25zdCBkZW5vbWluYXRvciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9kaXZpZGUgKyAxIH0sXHJcblx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH1cclxuXHRcdCk7XHJcblx0XHRsZXQgZGVub21pbmF0b3JfcmVtb3ZlX2JyYWNrZXQgPSAwO1xyXG5cdFx0aWYgKGRlbm9taW5hdG9yLnNsaWNlKC0xKVswXSA9PSAnKScpIHtcclxuXHRcdFx0Y29uc3QgZGVub21pbmF0b3Jfb3Blbl9icmFja2V0ID0gdGhpcy51bmNsb3NlZF9icmFja2V0KGVkaXRvciwgJygnLCAnKScsIHBvc2l0aW9uLmNoIC0gMSwgMClbMV0uc2xpY2UoLTEpWzBdXHJcblx0XHRcdGlmIChkZW5vbWluYXRvcl9vcGVuX2JyYWNrZXQgPT0gbGFzdF9kaXZpZGUgKyAxKSB7XHJcblx0XHRcdFx0ZGVub21pbmF0b3JfcmVtb3ZlX2JyYWNrZXQgPSAxO1xyXG5cdFx0XHR9O1xyXG5cdFx0fTtcclxuXHJcblx0XHQvLyBwZXJmb3JtIFxcZnJhYyByZXBsYWNlXHJcblx0XHRcclxuXHRcdGVkaXRvci5yZXBsYWNlUmFuZ2UoXHJcblx0XHRcdCd9JyxcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSBkZW5vbWluYXRvcl9yZW1vdmVfYnJhY2tldCB9LFxyXG5cdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9XHJcblx0XHRcdCk7XHJcblx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFxyXG5cdFx0XHQnfXsnLFxyXG5cdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X2RpdmlkZSAtIG51bWVyYXRvcl9yZW1vdmVfYnJhY2tldCB9LFxyXG5cdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X2RpdmlkZSArIDEgKyBkZW5vbWluYXRvcl9yZW1vdmVfYnJhY2tldCB9XHJcblx0XHRcdCk7XHJcblx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFxyXG5cdFx0XHQnXFxcXGZyYWN7JyxcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogZnJhYyArIDEgfSxcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogZnJhYyArIDEgKyBudW1lcmF0b3JfcmVtb3ZlX2JyYWNrZXQgfVxyXG5cdFx0XHQpO1xyXG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdHJldHVyblxyXG5cdH07XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgYXV0b0ZyYWN0aW9uQ002ID0gKFxyXG5cdFx0ZWRpdG9yOiBFZGl0b3IsXHJcblx0XHRsYXN0X3N1cGVyc2NyaXB0OiBudW1iZXJcclxuXHQpOiBib29sZWFuID0+IHtcclxuXHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0Y29uc3QgY3VycmVudF9saW5lID0gZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSk7XHJcblx0XHRsZXQgbGFzdF9kaXZpZGUgPSBjdXJyZW50X2xpbmUubGFzdEluZGV4T2YoJy8nLCBwb3NpdGlvbi5jaCAtIDEpO1xyXG5cclxuXHRcdC8vIGlmIGN1cnNvciBpcyBwcmVjZWVkZWQgYnkgYSBjbG9zZSBicmFja2V0LCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgb3BlbiBicmFja2V0XHJcblx0XHQvLyBpcyBmb3VuZCBiZWZvcmUgXCIvXCIsIHJlbW92ZSB0aGUgYnJhY2tldHMgYW5kIGVuY2xvc2Ugd2hvbGUgZXhwcmVzc2lvbiB1c2luZyBcXGZyYWNcclxuXHRcdGNvbnN0IGxldHRlcl9iZWZvcmVfY3Vyc29yID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIDEgfSxcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfVxyXG5cdFx0KVxyXG5cclxuXHRcdC8vIGlmIHRoZXJlIGFyZSBhbnkgYnJhY2tldHMgdW5jbG9zZWQgYmVmb3JlIGRpdmlkZSBzeW1ib2wsXHJcblx0XHQvLyBpbmNsdWRlIHRoZSBvcGVuIGJyYWNrZXRzIGludG8gc3RvcF9zeW1ib2xzXHJcblx0XHRjb25zdCBicmFja2V0cyA9IFtbJygnLCAnKSddLCBbJ3snLCAnfSddLCBbJ1snLCAnXSddXTtcclxuXHRcdGxldCBzdG9wX2JyYWNrZXRzID0gW11cclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYnJhY2tldHMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0aWYgKGxldHRlcl9iZWZvcmVfY3Vyc29yID09IGJyYWNrZXRzW2ldWzFdKSB7XHJcblx0XHRcdFx0Y29uc3Qgb3Blbl9icmFja2V0cyA9IHRoaXMudW5jbG9zZWRfYnJhY2tldChlZGl0b3IsIGJyYWNrZXRzW2ldWzBdLCBicmFja2V0c1tpXVsxXSwgcG9zaXRpb24uY2ggLSAxLCAwKVsxXVxyXG5cdFx0XHRcdGNvbnN0IHBvc19vZl90aGVfb3Blbl9icmFja2V0ID0gb3Blbl9icmFja2V0c1tvcGVuX2JyYWNrZXRzLmxlbmd0aCAtIDFdXHJcblx0XHRcdFx0aWYgKHBvc19vZl90aGVfb3Blbl9icmFja2V0IDwgbGFzdF9kaXZpZGUpIHtcclxuXHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlUmFuZ2UoXHJcblx0XHRcdFx0XHRcdCd9JyxcclxuXHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSAxIH0sXHJcblx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH1cclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlUmFuZ2UoXHJcblx0XHRcdFx0XHRcdCd9eycsXHJcblx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3RfZGl2aWRlIH0sXHJcblx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3RfZGl2aWRlICsgMSB9XHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFxyXG5cdFx0XHRcdFx0XHQnXFxcXGZyYWN7JyxcclxuXHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zX29mX3RoZV9vcGVuX2JyYWNrZXQgfSxcclxuXHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zX29mX3RoZV9vcGVuX2JyYWNrZXQgKyAxIH1cclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRzdG9wX2JyYWNrZXRzLnB1c2goLi4udGhpcy51bmNsb3NlZF9icmFja2V0KGVkaXRvciwgYnJhY2tldHNbaV1bMF0sIGJyYWNrZXRzW2ldWzFdLCBsYXN0X2RpdmlkZSwgMClbMV0pXHJcblx0XHR9XHJcblxyXG5cdFx0bGV0IGZyYWMgPSAwXHJcblxyXG5cdFx0Ly8gaWYgbnVtZXJhdG9yIGlzIGVuY2xvc2VkIGJ5ICgpLCBwbGFjZSBmcmFjIGluIGZyb250IG9mICgpIGFuZCByZW1vdmUgKClcclxuXHRcdGxldCBudW1lcmF0b3JfcmVtb3ZlX2JyYWNrZXQgPSAwXHJcblx0XHRpZiAoZWRpdG9yLmdldFJhbmdlKHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3RfZGl2aWRlIC0gMSB9LCB7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X2RpdmlkZSB9KSA9PSAnKScpIHtcclxuXHRcdFx0Y29uc3QgbnVtZXJhdG9yX29wZW5fYnJhY2tldCA9IHRoaXMudW5jbG9zZWRfYnJhY2tldChlZGl0b3IsICcoJywgJyknLCBsYXN0X2RpdmlkZSAtIDEsIDApWzFdLnNsaWNlKC0xKVswXVxyXG5cdFx0XHRmcmFjID0gbnVtZXJhdG9yX29wZW5fYnJhY2tldCAtIDE7XHJcblx0XHRcdG51bWVyYXRvcl9yZW1vdmVfYnJhY2tldCA9IDFcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvbnN0IHN0b3Bfc3ltYm9scyA9IFsnJCcsICc9JywgJz4nLCAnPCcsICcsJywgJy8nLCAnICddXHJcblx0XHRcdGNvbnN0IHN5bWJvbF9wb3NpdGlvbnMgPSBzdG9wX3N5bWJvbHMubWFwKGUgPT4gY3VycmVudF9saW5lLmxhc3RJbmRleE9mKGUsIGxhc3RfZGl2aWRlIC0gMSkpXHJcblx0XHRcdGZyYWMgPSBNYXRoLm1heChsYXN0X3N1cGVyc2NyaXB0LCAuLi5zeW1ib2xfcG9zaXRpb25zLCAuLi5zdG9wX2JyYWNrZXRzKVxyXG5cdFx0fTtcclxuXHJcblx0XHQvLyBpZiBkZW5vbWluYXRvciBpcyBlbmNsb3NlZCBieSAoKSwgcmVtb3ZlICgpXHJcblx0XHRjb25zdCBkZW5vbWluYXRvciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9kaXZpZGUgKyAxIH0sXHJcblx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH1cclxuXHRcdCk7XHJcblx0XHRsZXQgZGVub21pbmF0b3JfcmVtb3ZlX2JyYWNrZXQgPSAwO1xyXG5cdFx0aWYgKGRlbm9taW5hdG9yLnNsaWNlKC0xKVswXSA9PSAnKScpIHtcclxuXHRcdFx0Y29uc3QgZGVub21pbmF0b3Jfb3Blbl9icmFja2V0ID0gdGhpcy51bmNsb3NlZF9icmFja2V0KGVkaXRvciwgJygnLCAnKScsIHBvc2l0aW9uLmNoIC0gMSwgMClbMV0uc2xpY2UoLTEpWzBdXHJcblx0XHRcdGlmIChkZW5vbWluYXRvcl9vcGVuX2JyYWNrZXQgPT0gbGFzdF9kaXZpZGUgKyAxKSB7XHJcblx0XHRcdFx0ZGVub21pbmF0b3JfcmVtb3ZlX2JyYWNrZXQgPSAxO1xyXG5cdFx0XHR9O1xyXG5cdFx0fTtcclxuXHJcblx0XHQvLyBwZXJmb3JtIFxcZnJhYyByZXBsYWNlXHJcblx0XHRcclxuXHRcdGVkaXRvci5yZXBsYWNlUmFuZ2UoXHJcblx0XHRcdCd9JyxcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSBkZW5vbWluYXRvcl9yZW1vdmVfYnJhY2tldCB9LFxyXG5cdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9XHJcblx0XHRcdCk7XHJcblx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFxyXG5cdFx0XHQnfXsnLFxyXG5cdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X2RpdmlkZSAtIG51bWVyYXRvcl9yZW1vdmVfYnJhY2tldCB9LFxyXG5cdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X2RpdmlkZSArIDEgKyBkZW5vbWluYXRvcl9yZW1vdmVfYnJhY2tldCB9XHJcblx0XHRcdCk7XHJcblx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFxyXG5cdFx0XHQnXFxcXGZyYWN7JyxcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogZnJhYyArIDEgfSxcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogZnJhYyArIDEgKyBudW1lcmF0b3JfcmVtb3ZlX2JyYWNrZXQgfVxyXG5cdFx0XHQpO1xyXG5cclxuXHRcdGNvbnN0IHBvcyA9IGVkaXRvci5nZXRDdXJzb3IoKVxyXG5cdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3MubGluZSxjaDpwb3MuY2grMS1kZW5vbWluYXRvcl9yZW1vdmVfYnJhY2tldH0pXHJcblx0XHRyZXR1cm4gdHJ1ZVxyXG5cdH07XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgYXV0b0xhcmdlQnJhY2tldCA9IChcclxuXHRcdGVkaXRvcjogRWRpdG9yLFxyXG5cdFx0ZXZlbnQ6IEV2ZW50XHJcblx0KTogYm9vbGVhbiA9PiB7XHJcblx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdGxldCBicmFja2V0cyA9IFtbJ1snLCAnXSddLCBbJygnLCAnKSddXTtcclxuXHRcdGNvbnN0IHByZXZfY2hhciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2gtMX0sXHJcblx0XHRcdHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNofVxyXG5cdFx0KVxyXG5cdFx0Y29uc3QgY3VycmVudF9icmFja2V0cyA9IGJyYWNrZXRzLmZpbHRlcihlID0+IGVbMV09PXByZXZfY2hhcilbMF1cclxuXHRcdGlmIChjdXJyZW50X2JyYWNrZXRzLmxlbmd0aD09MCkgcmV0dXJuO1xyXG5cdFx0XHJcblx0XHRjb25zdCBvcGVuX2JyYWNrZXQgPSB0aGlzLnVuY2xvc2VkX2JyYWNrZXQoXHJcblx0XHRcdGVkaXRvcixcclxuXHRcdFx0Y3VycmVudF9icmFja2V0c1swXSxcclxuXHRcdFx0Y3VycmVudF9icmFja2V0c1sxXSxcclxuXHRcdFx0cG9zaXRpb24uY2gtMSxcclxuXHRcdFx0MClbMV0uc2xpY2UoLTEpWzBdXHJcblx0XHRjb25zdCB0ZXh0ID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHR7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpvcGVuX2JyYWNrZXR9LFxyXG5cdFx0XHR7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaH0pXHJcblx0XHRcdFxyXG5cdFx0Y29uc3QgbGFyZ2Vfb3BlcmF0b3JzID0gWydcXFxcc3VtJywgJ1xcXFxpbnQnLCAnXFxcXGZyYWMnLCdcXFxcZGZyYWMnXTtcclxuXHRcdGxldCBsYXJnZV9vcGVyYXRvcnNfbG9jYXRpb25zOm51bWJlcltdID0gW107XHJcblxyXG5cdFx0Zm9yIChsZXQgaSA9IDAgOyBpIDwgbGFyZ2Vfb3BlcmF0b3JzLmxlbmd0aCA7IGkrKykge1xyXG5cdFx0XHRsZXQgZm91bmQgPSAwO1xyXG5cdFx0XHR3aGlsZSAoZm91bmQgIT0gLTEpIHtcclxuXHRcdFx0XHRmb3VuZCA9IHRleHQuaW5kZXhPZihsYXJnZV9vcGVyYXRvcnNbaV0sZm91bmQrMSlcclxuXHRcdFx0XHRpZiAoZm91bmQgIT0gLTEpIHtcclxuXHRcdFx0XHRcdGxhcmdlX29wZXJhdG9yc19sb2NhdGlvbnMucHVzaChmb3VuZCArIG9wZW5fYnJhY2tldCk7XHJcblx0XHRcdFx0fTtcclxuXHRcdFx0fTtcdFxyXG5cdFx0fTtcclxuXHJcblx0XHRjb25zdCBjdXJyZW50X2xpbmUgPSBlZGl0b3IuZ2V0TGluZShwb3NpdGlvbi5saW5lKTtcclxuXHRcdFxyXG5cdFx0bGV0IHJldFZhbCA9IGZhbHNlXHJcblxyXG5cdFx0Zm9yIChsZXQgaSA9IDAgOyBpIDwgbGFyZ2Vfb3BlcmF0b3JzX2xvY2F0aW9ucy5sZW5ndGggOyBpKyspIHtcclxuXHRcdFx0bGV0IGxlZnRfYXJyYXk6IG51bWJlcltdID0gW107XHJcblx0XHRcdGxldCByaWdodF9hcnJheTogbnVtYmVyW10gPSBbXTtcclxuXHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBicmFja2V0cy5sZW5ndGg7IGorKykge1xyXG5cdFx0XHRcdGxlZnRfYXJyYXkucHVzaChcclxuXHRcdFx0XHRcdC4uLnRoaXMudW5jbG9zZWRfYnJhY2tldChcclxuXHRcdFx0XHRcdFx0ZWRpdG9yLCBcclxuXHRcdFx0XHRcdFx0YnJhY2tldHNbal1bMF0sIFxyXG5cdFx0XHRcdFx0XHRicmFja2V0c1tqXVsxXSwgXHJcblx0XHRcdFx0XHRcdGxhcmdlX29wZXJhdG9yc19sb2NhdGlvbnNbaV0sIFxyXG5cdFx0XHRcdFx0XHQwKVsxXSlcclxuXHRcdFx0XHRyaWdodF9hcnJheS5wdXNoKFxyXG5cdFx0XHRcdFx0Li4udGhpcy51bmNsb3NlZF9icmFja2V0KFxyXG5cdFx0XHRcdFx0XHRlZGl0b3IsIFxyXG5cdFx0XHRcdFx0XHRicmFja2V0c1tqXVswXSwgXHJcblx0XHRcdFx0XHRcdGJyYWNrZXRzW2pdWzFdLCBcclxuXHRcdFx0XHRcdFx0Y3VycmVudF9saW5lLmxlbmd0aCwgXHJcblx0XHRcdFx0XHRcdGxhcmdlX29wZXJhdG9yc19sb2NhdGlvbnNbaV0sIFxyXG5cdFx0XHRcdFx0XHRmYWxzZSlbMV0pXHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHRmb3IgKGxldCBrID0gcmlnaHRfYXJyYXkubGVuZ3RoIC0gMTsgayA+IC0xOyBrLS0pIHtcclxuXHRcdFx0XHQvLyBjaGVjayBpZiB1bmNsb3NlZCBicmFja2V0cyBhbHJlYWR5IGFwcGVuZGVkIHdpdGggXFxyaWdodFxyXG5cdFx0XHRcdGxldCBjaGVja19yaWdodCA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHJpZ2h0X2FycmF5W2tdIC0gNiB9LFxyXG5cdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcmlnaHRfYXJyYXlba10gfSk7XHJcblx0XHRcdFx0aWYgKGNoZWNrX3JpZ2h0ICE9ICdcXFxccmlnaHQnKSB7XHJcblx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKCdcXFxccmlnaHQnLCB7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiByaWdodF9hcnJheVtrXSB9KTtcclxuXHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRyZXRWYWwgPSB0cnVlXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0fTtcclxuXHJcblx0XHRcdGZvciAobGV0IGwgPSBsZWZ0X2FycmF5Lmxlbmd0aCAtIDE7IGwgPiAtMTsgbC0tKSB7XHJcblx0XHRcdFx0Ly8gY2hlY2sgaWYgdW5jbG9zZWQgYnJhY2tldHMgYWxyZWFkeSBhcHBlbmRlZCB3aXRoIFxcbGVmdFxyXG5cdFx0XHRcdGxldCBjaGVja19sZWZ0ID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGVmdF9hcnJheVtsXSAtIDUgfSxcclxuXHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxlZnRfYXJyYXlbbF0gfSk7XHJcblx0XHRcdFx0aWYgKGNoZWNrX2xlZnQgIT0gJ1xcXFxsZWZ0Jykge1xyXG5cdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZSgnXFxcXGxlZnQnLCB7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsZWZ0X2FycmF5W2xdIH0pO1xyXG5cdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdHJldFZhbCA9IHRydWVcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9O1xyXG5cdFx0fTtcclxuXHRcdHJldHVybiByZXRWYWxcclxuXHR9O1xyXG5cclxuXHRwcml2YXRlIGFkZEFsaWduQmxvY2soZWRpdG9yOiBFZGl0b3IpIHtcclxuXHRcdGNvbnN0IHZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpO1xyXG5cdFx0aWYgKCF2aWV3KSByZXR1cm47XHJcblx0XHRpZiAoIXRoaXMuc2V0dGluZ3MuYWRkQWxpZ25CbG9ja190b2dnbGUpIHJldHVybjtcclxuXHRcdGNvbnN0IHNlbGVjdGVkX3RleHQgPSBlZGl0b3IuZ2V0U2VsZWN0aW9uKClcclxuXHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKFxyXG5cdFx0XHQnXFxcXGJlZ2lueycgKyB0aGlzLnNldHRpbmdzLmFkZEFsaWduQmxvY2tfcGFyYW1ldGVyICsgJ31cXG4nICtcclxuXHRcdFx0c2VsZWN0ZWRfdGV4dCArXHJcblx0XHRcdCdcXG5cXFxcZW5keycgKyB0aGlzLnNldHRpbmdzLmFkZEFsaWduQmxvY2tfcGFyYW1ldGVyICsgJ30nXHJcblx0XHQpO1xyXG5cdFx0Y29uc3QgcG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XHJcblx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHsgbGluZTogcG9zaXRpb24ubGluZSAtIDEsIGNoOiBlZGl0b3IuZ2V0TGluZShwb3NpdGlvbi5saW5lIC0gMSkubGVuZ3RoIH0pXHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFkZE1hdHJpeEJsb2NrKGVkaXRvcjogRWRpdG9yKSB7XHJcblx0XHRjb25zdCB2aWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KTtcclxuXHRcdGlmICghdmlldykgcmV0dXJuO1xyXG5cdFx0aWYgKCF0aGlzLnNldHRpbmdzLmFkZE1hdHJpeEJsb2NrX3RvZ2dsZSkgcmV0dXJuO1xyXG5cdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oXHJcblx0XHRcdCdcXFxcYmVnaW57JyArIHRoaXMuc2V0dGluZ3MuYWRkTWF0cml4QmxvY2tfcGFyYW1ldGVyICsgJ30nICtcclxuXHRcdFx0J1xcXFxlbmR7JyArIHRoaXMuc2V0dGluZ3MuYWRkTWF0cml4QmxvY2tfcGFyYW1ldGVyICsgJ30nXHJcblx0XHQpO1xyXG5cdFx0Y29uc3QgcG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XHJcblx0XHRjb25zdCByZXRyYWN0X2xlbmd0aCA9ICgnXFxcXGVuZHsnICsgdGhpcy5zZXR0aW5ncy5hZGRNYXRyaXhCbG9ja19wYXJhbWV0ZXIgKyAnfScpLmxlbmd0aFxyXG5cdFx0ZWRpdG9yLnNldEN1cnNvcih7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIHJldHJhY3RfbGVuZ3RoIH0pXHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFkZENhc2VzQmxvY2soZWRpdG9yOiBFZGl0b3IpIHtcclxuXHRcdGNvbnN0IHZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpO1xyXG5cdFx0aWYgKCF2aWV3KSByZXR1cm47XHJcblx0XHRpZiAoIXRoaXMuc2V0dGluZ3MuYWRkQ2FzZXNCbG9ja190b2dnbGUpIHJldHVybjtcclxuXHRcdGNvbnN0IHNlbGVjdGVkX3RleHQgPSBlZGl0b3IuZ2V0U2VsZWN0aW9uKClcclxuXHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKFxyXG5cdFx0XHQnXFxcXGJlZ2lue2Nhc2VzfVxcbicgK1xyXG5cdFx0XHRzZWxlY3RlZF90ZXh0ICtcclxuXHRcdFx0J1xcblxcXFxlbmR7Y2FzZXN9J1xyXG5cdFx0KTtcclxuXHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0ZWRpdG9yLnNldEN1cnNvcih7IGxpbmU6IHBvc2l0aW9uLmxpbmUgLSAxLCBjaDogZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSAtIDEpLmxlbmd0aCB9KVxyXG5cdH1cclxuXHJcblx0Ly91dGlsaXR5IGZ1bmN0aW9uc1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgdW5jbG9zZWRfYnJhY2tldCA9IChcclxuXHRcdGVkaXRvcjogRWRpdG9yLFxyXG5cdFx0b3Blbl9zeW1ib2w6IHN0cmluZyxcclxuXHRcdGNsb3NlX3N5bWJvbDogc3RyaW5nLFxyXG5cdFx0YmVmb3JlOiBudW1iZXIsXHJcblx0XHRhZnRlcjogbnVtYmVyLFxyXG5cdFx0dW5jbG9zZWRfb3Blbl9zeW1ib2w6IGJvb2xlYW4gPSB0cnVlIC8vZmFsc2UgZm9yIHVuY2xvc2VkX2Nsb3NlX3N5bWJvbFxyXG5cdCk6IFtib29sZWFuLCBudW1iZXJbXV0gPT4ge1xyXG5cdFx0Ly8gZGV0ZXJtaW5lIGlmIHRoZXJlIGFyZSB1bmNsb3NlZCBicmFja2V0IHdpdGhpbiB0aGUgcmFuZ2Ugc3BlY2lmaWVkIGJ5IGJlZm9yZSBhbmQgYWZ0ZXJcclxuXHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0Y29uc3QgdGV4dCA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogYWZ0ZXIgfSxcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogYmVmb3JlIH0pO1xyXG5cdFx0bGV0IG9wZW5fYXJyYXk6IG51bWJlcltdID0gW11cclxuXHRcdGxldCBjbG9zZV9hcnJheTogbnVtYmVyW10gPSBbXVxyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdHN3aXRjaCAodGV4dFtpXSkge1xyXG5cdFx0XHRcdGNhc2Ugb3Blbl9zeW1ib2w6XHJcblx0XHRcdFx0XHRvcGVuX2FycmF5LnB1c2goYWZ0ZXIgKyBpKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGNhc2UgY2xvc2Vfc3ltYm9sOlxyXG5cdFx0XHRcdFx0aWYgKG9wZW5fYXJyYXkubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRvcGVuX2FycmF5LnBvcCgpXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRjbG9zZV9hcnJheS5wdXNoKGFmdGVyICsgaSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0aWYgKHVuY2xvc2VkX29wZW5fc3ltYm9sKSB7XHJcblx0XHRcdHJldHVybiBbb3Blbl9hcnJheS5sZW5ndGggPiAwLCBvcGVuX2FycmF5XTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiBbY2xvc2VfYXJyYXkubGVuZ3RoID4gMCwgY2xvc2VfYXJyYXldO1xyXG5cdFx0fVxyXG5cclxuXHR9O1xyXG5cclxuXHRwcml2YXRlIHJlYWRvbmx5IHdpdGhpblRleHQgPSAoXHJcblx0XHRlZGl0b3I6IEVkaXRvcixcclxuXHRcdGF0X3doZXJlOiBudW1iZXJcclxuXHQpOiBCb29sZWFuID0+IHtcclxuXHRcdC8vIGNoZWNrIGlmIHdpdGhpbiB0ZXh0e31cclxuXHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpXHJcblx0XHRjb25zdCBicmFja2V0X2xvY2F0aW9ucyA9IHRoaXMudW5jbG9zZWRfYnJhY2tldChlZGl0b3IsICd7JywnfScsIGF0X3doZXJlLCAwKVsxXVxyXG5cdFx0cmV0dXJuIGJyYWNrZXRfbG9jYXRpb25zLnNvbWUobG9jID0+IGVkaXRvci5nZXRSYW5nZSh7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpsb2MtNH0se2xpbmU6cG9zaXRpb24ubGluZSwgY2g6bG9jfSk9PVwidGV4dFwiKVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSB3aXRoaW5NYXRoID0gKFxyXG5cdFx0ZWRpdG9yOiBFZGl0b3JcclxuXHQpOiBCb29sZWFuID0+IHtcclxuXHRcdC8vIGNoZWNrIGlmIGN1cnNvciB3aXRoaW4gJCRcclxuXHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpXHJcblx0XHRjb25zdCBjdXJyZW50X2xpbmUgPSBlZGl0b3IuZ2V0TGluZShwb3NpdGlvbi5saW5lKTtcclxuXHRcdGxldCBjdXJzb3JfaW5kZXggPSBwb3NpdGlvbi5jaFxyXG5cdFx0bGV0IGZyb20gPSAwO1xyXG5cdFx0bGV0IGZvdW5kID0gY3VycmVudF9saW5lLmluZGV4T2YoJyQnLCBmcm9tKTtcclxuXHRcdHdoaWxlIChmb3VuZCAhPSAtMSAmJiBmb3VuZCA8IGN1cnNvcl9pbmRleCkge1xyXG5cdFx0XHRsZXQgbmV4dF9jaGFyID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGZvdW5kICsgMSB9LFxyXG5cdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGZvdW5kICsgMiB9KVxyXG5cdFx0XHRsZXQgcHJldl9jaGFyID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGZvdW5kIC0gMSB9LFxyXG5cdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGZvdW5kIH0pXHJcblx0XHRcdGlmIChuZXh0X2NoYXIgPT0gJyQnIHx8IHByZXZfY2hhciA9PSAnJCcgfHwgbmV4dF9jaGFyID09ICcgJykge1xyXG5cdFx0XHRcdGZyb20gPSBmb3VuZCArIDE7XHJcblx0XHRcdFx0Zm91bmQgPSBjdXJyZW50X2xpbmUuaW5kZXhPZignJCcsIGZyb20pO1xyXG5cdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGZyb20gPSBmb3VuZCArIDE7XHJcblx0XHRcdFx0bGV0IG5leHRfZm91bmQgPSBjdXJyZW50X2xpbmUuaW5kZXhPZignJCcsIGZyb20pO1xyXG5cdFx0XHRcdGlmIChuZXh0X2ZvdW5kID09IC0xKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdFx0fSBlbHNlIGlmIChjdXJzb3JfaW5kZXggPiBmb3VuZCAmJiBjdXJzb3JfaW5kZXggPD0gbmV4dF9mb3VuZCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGZyb20gPSBuZXh0X2ZvdW5kICsgMTtcclxuXHRcdFx0XHRcdGZvdW5kID0gY3VycmVudF9saW5lLmluZGV4T2YoJyQnLCBmcm9tKTtcclxuXHRcdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGRvY3VtZW50X3RleHQgPSBlZGl0b3IuZ2V0VmFsdWUoKTtcclxuXHRcdGN1cnNvcl9pbmRleCA9IGVkaXRvci5wb3NUb09mZnNldChwb3NpdGlvbik7XHJcblx0XHRmcm9tID0gMDtcclxuXHRcdGZvdW5kID0gZG9jdW1lbnRfdGV4dC5pbmRleE9mKCckJCcsIGZyb20pO1xyXG5cdFx0bGV0IGNvdW50ID0gMDtcclxuXHRcdHdoaWxlIChmb3VuZCAhPSAtMSAmJiBmb3VuZCA8IGN1cnNvcl9pbmRleCkge1xyXG5cdFx0XHRjb3VudCArPSAxO1xyXG5cdFx0XHRmcm9tID0gZm91bmQgKyAyO1xyXG5cdFx0XHRmb3VuZCA9IGRvY3VtZW50X3RleHQuaW5kZXhPZignJCQnLCBmcm9tKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBjb3VudCAlIDIgPT0gMTtcclxuXHR9O1xyXG5cclxuXHRwcml2YXRlIHJlYWRvbmx5IHdpdGhpbkFueUJyYWNrZXRzX2lubGluZSA9IChcclxuXHRcdGVkaXRvcjogRWRpdG9yLFxyXG5cdFx0YnJhY2tldHM6IHN0cmluZ1tdW11cclxuXHQpOiBCb29sZWFuID0+IHtcclxuXHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpXHJcblx0XHRjb25zdCBjdXJyZW50X2xpbmUgPSBlZGl0b3IuZ2V0TGluZShwb3NpdGlvbi5saW5lKTtcclxuXHRcdHJldHVybiBicmFja2V0cy5zb21lKGUgPT4gdGhpcy51bmNsb3NlZF9icmFja2V0KGVkaXRvciwgZVswXSwgZVsxXSwgcG9zaXRpb24uY2gsIDApWzBdICYmXHJcblx0XHRcdHRoaXMudW5jbG9zZWRfYnJhY2tldChlZGl0b3IsIGVbMF0sIGVbMV0sIGN1cnJlbnRfbGluZS5sZW5ndGgsIHBvc2l0aW9uLmNoLCBmYWxzZSlbMF0pXHJcblx0fTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSB3aXRoaW5BbnlCcmFja2V0c19kb2N1bWVudCA9IChcclxuXHRcdGVkaXRvcjogRWRpdG9yLFxyXG5cdFx0b3Blbl9zeW1ib2w6IHN0cmluZyxcclxuXHRcdGNsb3NlX3N5bWJvbDogc3RyaW5nXHJcblx0KTogQm9vbGVhbiA9PiB7XHJcblx0XHRjb25zdCBkb2N1bWVudF90ZXh0ID0gZWRpdG9yLmdldFZhbHVlKClcclxuXHRcdGNvbnN0IGN1cnNvclBvcyA9IGVkaXRvci5nZXRDdXJzb3IoKVxyXG5cdFx0Y29uc3QgY3Vyc29yX2luZGV4ID0gZWRpdG9yLnBvc1RvT2Zmc2V0KGN1cnNvclBvcylcclxuXHRcdC8vIGNvdW50IG9wZW4gc3ltYm9sc1xyXG5cdFx0bGV0IGZyb20gPSAwO1xyXG5cdFx0bGV0IGZvdW5kID0gZG9jdW1lbnRfdGV4dC5pbmRleE9mKG9wZW5fc3ltYm9sLCBmcm9tKTtcclxuXHRcdGxldCBjb3VudCA9IDA7XHJcblx0XHR3aGlsZSAoZm91bmQgIT0gLTEgJiYgZm91bmQgPCBjdXJzb3JfaW5kZXgpIHtcclxuXHRcdFx0Y291bnQgKz0gMTtcclxuXHRcdFx0ZnJvbSA9IGZvdW5kICsgMTtcclxuXHRcdFx0Zm91bmQgPSBkb2N1bWVudF90ZXh0LmluZGV4T2Yob3Blbl9zeW1ib2wsIGZyb20pO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3Qgb3Blbl9zeW1ib2xfY291bnRzID0gY291bnRcclxuXHJcblx0XHQvLyBjb3VudCBjbG9zZSBzeW1ib2xzXHJcblx0XHRmcm9tID0gMDtcclxuXHRcdGZvdW5kID0gZG9jdW1lbnRfdGV4dC5pbmRleE9mKGNsb3NlX3N5bWJvbCwgZnJvbSk7XHJcblx0XHRjb3VudCA9IDA7XHJcblx0XHR3aGlsZSAoZm91bmQgIT0gLTEgJiYgZm91bmQgPCBjdXJzb3JfaW5kZXgpIHtcclxuXHRcdFx0Y291bnQgKz0gMTtcclxuXHRcdFx0ZnJvbSA9IGZvdW5kICsgMTtcclxuXHRcdFx0Zm91bmQgPSBkb2N1bWVudF90ZXh0LmluZGV4T2YoY2xvc2Vfc3ltYm9sLCBmcm9tKTtcclxuXHRcdH1cclxuXHRcdGNvbnN0IGNsb3NlX3N5bWJvbF9jb3VudHMgPSBjb3VudFxyXG5cclxuXHRcdHJldHVybiBvcGVuX3N5bWJvbF9jb3VudHMgPiBjbG9zZV9zeW1ib2xfY291bnRzO1xyXG5cdH07XHJcblxyXG5cdC8vIFNldHRpbmdzIGxvYWQgYW5kIHNhdmVcclxuXHRhc3luYyBsb2FkU2V0dGluZ3MoKSB7XHJcblx0XHR0aGlzLnNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9TRVRUSU5HUywgYXdhaXQgdGhpcy5sb2FkRGF0YSgpKTtcclxuXHR9O1xyXG5cclxuXHRwdWJsaWMgb251bmxvYWQoKTogdm9pZCB7XHJcblx0XHRjb25zb2xlLmxvZygndW5sb2FkaW5nIFF1aWNrLUxhdGV4IHBsdWdpbicpO1xyXG5cclxuXHRcdHRoaXMuYXBwLndvcmtzcGFjZS5pdGVyYXRlQ29kZU1pcnJvcnMoKGNtKSA9PiB7XHJcblx0XHRcdGNtLm9mZigndmltLW1vZGUtY2hhbmdlJywgdGhpcy5oYW5kbGVWaW1Nb2RlQ2hhbmdlKTtcclxuXHRcdFx0Y20ub2ZmKCdrZXlkb3duJywgdGhpcy5oYW5kbGVLZXlEb3duKTtcclxuXHRcdFx0Y20ub2ZmKCdrZXlwcmVzcycsIHRoaXMuaGFuZGxlS2V5UHJlc3MpO1xyXG5cdFx0XHRcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcbn07XHJcblxyXG5cclxuY2xhc3MgUXVpY2tMYXRleFNldHRpbmdUYWIgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcclxuXHRwbHVnaW46IFF1aWNrTGF0ZXhQbHVnaW47XHJcblxyXG5cdGNvbnN0cnVjdG9yKGFwcDogQXBwLCBwbHVnaW46IFF1aWNrTGF0ZXhQbHVnaW4pIHtcclxuXHRcdHN1cGVyKGFwcCwgcGx1Z2luKTtcclxuXHRcdHRoaXMucGx1Z2luID0gcGx1Z2luO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGRpc3BsYXkoKTogdm9pZCB7XHJcblx0XHRjb25zdCB7IGNvbnRhaW5lckVsIH0gPSB0aGlzO1xyXG5cdFx0Y29udGFpbmVyRWwuZW1wdHkoKTtcclxuXHJcblx0XHRjb250YWluZXJFbC5jcmVhdGVFbCgnaDInLCB7IHRleHQ6ICdRdWljayBMYXRleCBmb3IgT2JzaWRpYW4gLSBTZXR0aW5ncycgfSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdBdXRvY2xvc2UgJCQgc3ltYm9scycpXHJcblx0XHRcdC5zZXREZXNjKCdUeXBpbmcgb25lICQgc3ltYm9sIHdpbGwgYXV0b21hdGljYWxseSBsb3NlIHdpdGggYW5vdGhlciAkIHN5bWJvbCAnK1xyXG5cdFx0XHRcdFx0JyhiZXN0IHVzZWQgd2l0aCBcIk1vdmUgY3Vyc29yIGJldHdlZW4gJCQgc3ltYm9sc1wiIGZ1bmN0aW9uJylcclxuXHRcdFx0LmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB0b2dnbGVcclxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuYXV0b0Nsb3NlTWF0aF90b2dnbGUpXHJcblx0XHRcdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuYXV0b0Nsb3NlTWF0aF90b2dnbGUgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuXHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdFx0LnNldE5hbWUoJ01vdmUgY3Vyc29yIGJldHdlZW4gJCQgc3ltYm9scycpXHJcblx0XHRcdC5zZXREZXNjKCdUeXBpbmcgdHdvIGNvbnNlY3V0aXZlICQgc3ltYm9scyB3aWxsIGF1dG9tYXRpY2FsbHkgc2hpZnQgdGhlIGN1cnNvciBpbiBiZXR3ZWVuIHRoZSAkJCBzeW1ib2xzJylcclxuXHRcdFx0LmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB0b2dnbGVcclxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MubW92ZUludG9NYXRoX3RvZ2dsZSlcclxuXHRcdFx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5tb3ZlSW50b01hdGhfdG9nZ2xlID0gdmFsdWU7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcblx0XHRcdFx0XHR0aGlzLmRpc3BsYXkoKTtcclxuXHRcdFx0XHR9KSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdFbmNsb3NlIHNlbGVjdGVkIGV4cHJlc3Npb24gd2l0aCBtYXRoIHN5bWJvbCAkJCcpXHJcblx0XHRcdC5zZXREZXNjKCdTZWxlY3QgYW4gZXhwcmVzc2lvbiBhbmQgcHJlc3MgXCIkXCIga2V5IHdpbGwgYXV0b21hdGljYWxseSAnICtcclxuXHRcdFx0XHQnZW5jbG9zZSB0aGUgZXhwcmVzc2lvbiB3aXRoIHRoZSBtYXRoIHN5bWJvbHMuJylcclxuXHRcdFx0LmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB0b2dnbGVcclxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuZW5jbG9zZVNlbGVjdGlvbl90b2dnbGUpXHJcblx0XHRcdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuZW5jbG9zZVNlbGVjdGlvbl90b2dnbGUgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuXHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdFx0LnNldE5hbWUoJ0F1dG9jbG9zZSB7fSBjdXJseSBicmFja2V0cycpXHJcblx0XHRcdC5zZXREZXNjKCdUeXBpbmcgXCJ7XCIgd2lsbCBhdXRvbWF0aWNhbGx5IGNsb3NlIHdpdGggXCJ9XCInKVxyXG5cdFx0XHQuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHRvZ2dsZVxyXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5hdXRvQ2xvc2VDdXJseV90b2dnbGUpXHJcblx0XHRcdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuYXV0b0Nsb3NlQ3VybHlfdG9nZ2xlID0gdmFsdWU7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcblx0XHRcdFx0XHR0aGlzLmRpc3BsYXkoKTtcclxuXHRcdFx0XHR9KSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdBdXRvY2xvc2UgW10gc3F1YXJlIGJyYWNrZXRzJylcclxuXHRcdFx0LnNldERlc2MoJ1R5cGluZyBcIltcIiB3aWxsIGF1dG9tYXRpY2FsbHkgY2xvc2Ugd2l0aCBcIl1cIicpXHJcblx0XHRcdC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4gdG9nZ2xlXHJcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmF1dG9DbG9zZVNxdWFyZV90b2dnbGUpXHJcblx0XHRcdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuYXV0b0Nsb3NlU3F1YXJlX3RvZ2dsZSA9IHZhbHVlO1xyXG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG5cdFx0XHRcdFx0dGhpcy5kaXNwbGF5KCk7XHJcblx0XHRcdFx0fSkpO1xyXG5cclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0XHQuc2V0TmFtZSgnQXV0b2Nsb3NlICgpIHJvdW5kIGJyYWNrZXRzJylcclxuXHRcdFx0LnNldERlc2MoJ1R5cGluZyBcIihcIiB3aWxsIGF1dG9tYXRpY2FsbHkgY2xvc2Ugd2l0aCBcIilcIicpXHJcblx0XHRcdC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4gdG9nZ2xlXHJcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmF1dG9DbG9zZVJvdW5kX3RvZ2dsZSlcclxuXHRcdFx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5hdXRvQ2xvc2VSb3VuZF90b2dnbGUgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuXHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdFx0LnNldE5hbWUoJ0F1dG8gYXBwZW5kIFwiXFxcXGxpbWl0c1wiIGFmdGVyIFwiXFxcXHN1bVwiJylcclxuXHRcdFx0LnNldERlc2MoJ1R5cGluZyBcIlxcXFxzdW1cIiB3aWxsIGF1dG9tYXRpY2FsbHkgYXBwZW5kIFwiXFxcXGxpbWl0c1wiIHRvIHNob3J0ZW4gdGhlIHN5bnRheCcgK1xyXG5cdFx0XHRcdCcgZm9yIHByb3BlciBkaXNwbGF5IG9mIHRoZSBsaW1pdHMgZm9yIHN1bW1hdGlvbiBzeW1ib2wuJylcclxuXHRcdFx0LmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB0b2dnbGVcclxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuYXV0b1N1bUxpbWl0X3RvZ2dsZSlcclxuXHRcdFx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5hdXRvU3VtTGltaXRfdG9nZ2xlID0gdmFsdWU7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcblx0XHRcdFx0XHR0aGlzLmRpc3BsYXkoKTtcclxuXHRcdFx0XHR9KSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdBdXRvIGVubGFyZ2UgYnJhY2tldHMgdGhhdCBjb250YWlucyBcXFxcc3VtLCBcXFxcaW50IG9yIFxcXFxmcmFjJylcclxuXHRcdFx0LnNldERlc2MoJ1BsYWNlIGN1cnNvciByaWdodCBhZnRlciBhICgpIG9yIFtdIGJyYWNrZXRlZCBleHByZXNzaW9uIHRoYXQgY29udGFpbnMgZWl0aGVyICcgK1xyXG5cdFx0XHRcdCdcXFxcc3VtLCBcXFxcaW50IG9yIFxcXFxmcmFjIGFuZCBwcmVzcyB0aGUgc3BhY2Uga2V5LCB0aGUgb3V0ZXJtb3N0IGJyYWNrZXRzIHdpbGwgYmUnICtcclxuXHRcdFx0XHQnIGFwcGVuZGVkIHdpdGggXFxcXGxlZnQgYW5kIFxcXFxyaWdodCBpbiBvcmRlciB0byBkaXNwbGF5IGxhcmdlciBicmFja2V0cyB0byBlbmNsb3NlIHRoZXNlIGJpZyBleHByZXNzaW9ucy4nKVxyXG5cdFx0XHQuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHRvZ2dsZVxyXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5hdXRvTGFyZ2VCcmFja2V0X3RvZ2dsZSlcclxuXHRcdFx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5hdXRvTGFyZ2VCcmFja2V0X3RvZ2dsZSA9IHZhbHVlO1xyXG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG5cdFx0XHRcdFx0dGhpcy5kaXNwbGF5KCk7XHJcblx0XHRcdFx0fSkpO1xyXG5cclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0XHQuc2V0TmFtZSgnQXV0byBlbmNsb3NlIGV4cHJlc3Npb24gYWZ0ZXIgc3VwZXJzY2lwdCB3aXRoIHt9JylcclxuXHRcdFx0LnNldERlc2MoJ1R5cGluZyBleHByZXNzaW9uIGFmdGVyIHN1cGVyc2NyaXB0IFwiXlwiIHN5bWJvbCBmb2xsb3cgYnkgYSBcInNwYWNlXCIga2V5ICcgK1xyXG5cdFx0XHRcdCd3aWxsIGF1dG9tYXRpY2FsbHkgc3Vycm91bmQgdGhlIGV4cHJlc3Npb24gd2l0aCBcInt9XCInKVxyXG5cdFx0XHQuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHRvZ2dsZVxyXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5hdXRvRW5jbG9zZVN1cF90b2dnbGUpXHJcblx0XHRcdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuYXV0b0VuY2xvc2VTdXBfdG9nZ2xlID0gdmFsdWU7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcblx0XHRcdFx0XHR0aGlzLmRpc3BsYXkoKTtcclxuXHRcdFx0XHR9KSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdBdXRvIGVuY2xvc2UgZXhwcmVzc2lvbiBhZnRlciBzdWJzY3JpcHQgd2l0aCB7fScpXHJcblx0XHRcdC5zZXREZXNjKCdUeXBpbmcgZXhwcmVzc2lvbiBhZnRlciBzdWJzY3JpcHQgXCJfXCIgc3ltYm9sIGZvbGxvdyBieSBhIFwic3BhY2VcIiBrZXkgJyArXHJcblx0XHRcdFx0J3dpbGwgYXV0b21hdGljYWxseSBzdXJyb3VuZCB0aGUgZXhwcmVzc2lvbiB3aXRoIFwie31cIi4gJyArXHJcblx0XHRcdFx0J05vdGU6IGV4cHJlc3Npb24gbW9yZSB0aGFuIDEwIGNoYXJhY3RlcnMgbG9uZyB3aWxsIGJlIGlnbm9yZWQuJylcclxuXHRcdFx0LmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB0b2dnbGVcclxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuYXV0b0VuY2xvc2VTdWJfdG9nZ2xlKVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmF1dG9FbmNsb3NlU3ViX3RvZ2dsZSA9IHZhbHVlO1xyXG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG5cdFx0XHRcdFx0dGhpcy5kaXNwbGF5KCk7XHJcblx0XHRcdFx0fSkpO1xyXG5cclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0XHQuc2V0TmFtZSgnVHlwZSBcIi9cIiBpbnN0ZWFkIG9mIFxcXFxmcmFje317fScpXHJcblx0XHRcdC5zZXREZXNjKCdVc2UgXCIvXCIgc3ltYm9sIGZvciBxdWlja2x5IHR5cGluZyBmcmFjdGlvbnMuIGVnLiB0eXBlIFwiMS8yXCIgZm9sbG93ZWQgYnkgYSBcInNwYWNlXCIga2V5JyArXHJcblx0XHRcdFx0JyB0byB0cmFuc2Zvcm0gdG8gXFxcXGZyYWN7MX17Mn0nKVxyXG5cdFx0XHQuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHRvZ2dsZVxyXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5hdXRvRnJhY3Rpb25fdG9nZ2xlKVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmF1dG9GcmFjdGlvbl90b2dnbGUgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuXHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdFx0LnNldE5hbWUoJ1Nob3J0Y3V0IGZvciBBbGlnbiBCbG9jaycpXHJcblx0XHRcdC5zZXREZXNjKCdVc2Ugc2hvcnRjdXQga2V5IHRvIHF1aWNrbHkgaW5zZXJ0IFxcXFxiZWdpbnthbGlnbip9IFxcXFxlbmR7YWxpZ24qfSBibG9jay4gJyArXHJcblx0XHRcdFx0J0RlZmF1bHQ6IFwiQWx0K1NoaWZ0K0FcIiAoTWFjOiBcIk9wdGlvbitTaGlmdCtBXCIpJylcclxuXHRcdFx0LmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB0b2dnbGVcclxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuYWRkQWxpZ25CbG9ja190b2dnbGUpXHJcblx0XHRcdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuYWRkQWxpZ25CbG9ja190b2dnbGUgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuXHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdFx0LnNldE5hbWUoJ0FsaWduIEJsb2NrIFBhcmFtZXRlcicpXHJcblx0XHRcdC5zZXREZXNjKCdTZXQgdGhlIHRleHQgcGFyYW1ldGVyIGluIFxcXFxiZWdpbntwYXJhbWV0ZXJ9IGFuZCBcXFxcZW5ke3BhcmFtZXRlcn0uJylcclxuXHRcdFx0LmFkZFRleHQoKHRleHQpID0+IHRleHRcclxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoJ2RlZmF1bHQ6IGFsaWduKicpXHJcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmFkZEFsaWduQmxvY2tfcGFyYW1ldGVyKVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmFkZEFsaWduQmxvY2tfcGFyYW1ldGVyID0gdmFsdWU7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcblx0XHRcdFx0fSkpO1xyXG5cclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0XHQuc2V0TmFtZSgn44CQTkVXIeOAkUF1dG8tYWxpZ24gYXQgdGhlc2Ugc3ltYm9scycpXHJcblx0XHRcdC5zZXREZXNjKCdXaGVuIHdpdGhpbiB0aGUgYWxpZ24gYmxvY2ssIHRoZSBhbGlnbiBzeW1ib2wgXCImXCIgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGFkZGVkIGJlZm9yZSB0aGVzZSBzeW1ib2xzLiAoc2VwYXJhdGUgYnkgc3BhY2VzKScpXHJcblx0XHRcdC5hZGRUZXh0KCh0ZXh0KSA9PiB0ZXh0XHJcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmF1dG9BbGlnblN5bWJvbHMpXHJcblx0XHRcdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuYXV0b0FsaWduU3ltYm9scyA9IHZhbHVlO1xyXG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uYXV0b0FsaWduX2FycmF5ID0gdmFsdWUuc3BsaXQoXCIgXCIpO1xyXG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdFx0LnNldE5hbWUoJ1Nob3J0Y3V0IGZvciBDYXNlcyBCbG9jaycpXHJcblx0XHRcdC5zZXREZXNjKCdVc2Ugc2hvcnRjdXQga2V5IHRvIHF1aWNrbHkgaW5zZXJ0IFxcXFxiZWdpbntjYXNlc30gXFxcXGVuZHtjYXNlc30gYmxvY2suICcgK1xyXG5cdFx0XHRcdCdEZWZhdWx0OiBcIkFsdCtTaGlmdCtDXCIgKE1hYzogXCJPcHRpb24rU2hpZnQrQ1wiKScpXHJcblx0XHRcdC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4gdG9nZ2xlXHJcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmFkZENhc2VzQmxvY2tfdG9nZ2xlKVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmFkZENhc2VzQmxvY2tfdG9nZ2xlID0gdmFsdWU7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcblx0XHRcdFx0XHR0aGlzLmRpc3BsYXkoKTtcclxuXHRcdFx0XHR9KSk7XHJcblx0XHRcdFxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdVc2Ugc2hpZnQtZW50ZXIgZm9yIGxpbmUgYnJlYWsgaW4gYWxpZ24gYW5kIGNhc2VzIGJsb2NrJylcclxuXHRcdFx0LnNldERlc2MoJ0ZvciBhbGlnbiBhbmQgY2FzZXMgYmxvY2sgYWJvdmUsIHByZXNzaW5nIGVudGVyIGF1dG9tYXRpY2FsbHkgYWRkcyBsaW5lIGJyZWFrIHN5bWJvbCBcIlxcXFxcIiBvciBcIiZcIi4gU3dpdGNoIGhlcmUgdG8gdXNlIHNoaWZ0LWVudGVyIGluc3RlYWQuJylcclxuXHRcdFx0LmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB0b2dnbGVcclxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3Muc2hpZnRFbnRlcl90b2dnbGUpXHJcblx0XHRcdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3Muc2hpZnRFbnRlcl90b2dnbGUgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuXHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdFx0LnNldE5hbWUoJ1Nob3J0Y3V0IGZvciBNYXRyaXggQmxvY2snKVxyXG5cdFx0XHQuc2V0RGVzYygnVXNlIHNob3J0Y3V0IGtleSB0byBxdWlja2x5ICBpbnNlcnQgXFxcXGJlZ2lue3BtYXRyaXh9IFxcXFxlbmR7cG1hdHJpeH0gYmxvY2suICcgK1xyXG5cdFx0XHRcdCdEZWZhdWx0OiBcIkFsdCtTaGlmdCtNXCIgKE1hYzogXCJPcHRpb24rU2hpZnQrTVwiKScpXHJcblx0XHRcdC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4gdG9nZ2xlXHJcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmFkZE1hdHJpeEJsb2NrX3RvZ2dsZSlcclxuXHRcdFx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5hZGRNYXRyaXhCbG9ja190b2dnbGUgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuXHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdFx0LnNldE5hbWUoJ01hdHJpeCBCbG9jayBQYXJhbWV0ZXInKVxyXG5cdFx0XHQuc2V0RGVzYygnU2V0IHRoZSB0ZXh0IHBhcmFtZXRlciBpbiBcXFxcYmVnaW57cGFyYW1ldGVyfSBhbmQgXFxcXGVuZHtwYXJhbWV0ZXJ9LicpXHJcblx0XHRcdC5hZGRUZXh0KCh0ZXh0KSA9PiB0ZXh0XHJcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKCdkZWZhdWx0OiBwbWF0cml4JylcclxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuYWRkTWF0cml4QmxvY2tfcGFyYW1ldGVyKVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmFkZE1hdHJpeEJsb2NrX3BhcmFtZXRlciA9IHZhbHVlO1xyXG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdFx0LnNldE5hbWUoJ0N1c3RvbSBTaG9ydGhhbmQnKVxyXG5cdFx0XHQuc2V0RGVzYygnVXNlIGN1c3RvbSBzaG9ydGhhbmQgKGNhbiBiZSBtdWx0aXBsZSBsZXR0ZXJzKSBmb3IgY29tbW9uIGxhdGV4IHN0cmluZ3MuICcrXHJcblx0XHRcdCdFZywgdHlwaW5nIFwiYWxcIiBmb2xsb3dlZCBieSBcInNwYWNlXCIga2V5IHdpbGwgcmVwbGFjZSB3aXRoIFwiXFxcXGFscGhhXCInKVxyXG5cdFx0XHQuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHRvZ2dsZVxyXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXN0b21TaG9ydGhhbmRfdG9nZ2xlKVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1c3RvbVNob3J0aGFuZF90b2dnbGUgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuXHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdFx0LnNldE5hbWUoJ0N1c3RvbSBTaG9ydGhhbmQgUGFyYW1ldGVyJylcclxuXHRcdFx0LnNldERlc2MoJ1NlcGFyYXRlIHRoZSBtdWx0aS1sZXR0ZXJzIHNob3J0aGFuZCBhbmQgdGhlIHNuaXBwZXQgd2l0aCBcIjpcIiBhbmQgJytcclxuXHRcdFx0J2VuZCBlYWNoIHNldCBvZiBzaG9ydGhhbmQgc25pcHBldCBwYWlyIGJ5IFwiO1wiIGFuZCBhIG5ld2xpbmUuICcrXHJcblx0XHRcdCdGb3IgZXhwcmVzc2lvbnMgdGhhdCBlbmQgd2l0aCBcInt9XCIsIHRoZSBjdXJzb3Igd2lsbCBhdXRvbWF0aWNhbGx5IGJlIHBsYWNlZCB3aXRoaW4gdGhlIGJyYWNrZXQuICcrXHJcblx0XHRcdCdBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHR5cGUgXCIjY3Vyc29yXCIgd2l0aGluIHRoZSBzbmlwcGV0IHRvIHNldCB0aGUgY3Vyc29yIGxvY2F0aW9uIGFmdGVyIHJlcGxhY2VtZW50LiAnK1xyXG5cdFx0XHQnWW91IGNhbiBhbHNvIGluY2x1ZGUgXCIjdGFiXCIgd2l0aGluIHRoZSBzbmlwcGV0IGZvciB1c2UgY2FzZXMgc3VjaCBhcyBtdWx0aXBsZSB7fXMgKGUuZy4gXFxcXGJpbm9teyNjdXJzb3J9eyN0YWJ9KS4gJytcclxuXHRcdFx0J1ByZXNzaW5nIHRhYiBrZXkgaW4gc3VjaCBjYXNlcyB3aWxsIGp1bXAgdGhlIGN1cnNvciB0byB0aGUgbmV4dCBcIiN0YWJcIiBrZXl3b3JkLicrXHJcblx0XHRcdCdTaG9ydGhhbmRzIG5vdyBzdXBwb3J0IG11bHRpbGluZSBzbmlwcGV0cyB0b28hICcrXHJcblx0XHRcdCcodHJ5IHVuaW5zdGFsbCB0aGVuIHJlaW5zdGFsbGluZyB0aGUgcGx1Z2luIHRvIHNlZSB0aGUgbmV3IHNldCBvZiBzaG9ydGhhbmRzLiknKVxyXG5cdFx0XHQuc2V0Q2xhc3MoXCJ0ZXh0LXNuaXBwZXRzLWNsYXNzXCIpXHJcblx0XHRcdC5hZGRUZXh0QXJlYSgodGV4dCkgPT4gdGV4dFxyXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXN0b21TaG9ydGhhbmRfcGFyYW1ldGVyKVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmN1c3RvbVNob3J0aGFuZF9wYXJhbWV0ZXIgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdHdoaWxlKHZhbHVlLnNsaWNlKC0xKT09XCJcXG5cIil7XHJcblx0XHRcdFx0XHRcdHZhbHVlID0gdmFsdWUuc2xpY2UoMCwtMSlcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmKHZhbHVlLnNsaWNlKC0xKT09XCI7XCIpe1xyXG5cdFx0XHRcdFx0XHR2YWx1ZSA9IHZhbHVlLnNsaWNlKDAsLTEpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZih2YWx1ZS5sYXN0SW5kZXhPZihcIjtcXG5cIik9PS0xKXtcclxuXHRcdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2hvcnRoYW5kX2FycmF5ID0gdmFsdWUuc3BsaXQoXCIsXCIpLm1hcChpdGVtPT5pdGVtLnNwbGl0KFwiOlwiKS5tYXAoaXRlbT0+aXRlbS50cmltKCkpKTtcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNob3J0aGFuZF9hcnJheSA9IHZhbHVlLnNwbGl0KFwiO1xcblwiKS5tYXAoaXRlbT0+aXRlbS5zcGxpdChcIjpcIikpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHR9O1xyXG59Il0sIm5hbWVzIjpbIlBsdWdpbiIsIlByZWMiLCJrZXltYXAiLCJNYXJrZG93blZpZXciLCJQbHVnaW5TZXR0aW5nVGFiIiwiU2V0dGluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdURBO0FBQ08sU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFO0FBQzdELElBQUksU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxLQUFLLFlBQVksQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQ2hILElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLEVBQUUsVUFBVSxPQUFPLEVBQUUsTUFBTSxFQUFFO0FBQy9ELFFBQVEsU0FBUyxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUNuRyxRQUFRLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUN0RyxRQUFRLFNBQVMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFBRTtBQUN0SCxRQUFRLElBQUksQ0FBQyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFB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TUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFDLElBQUksRUFBQyxNQUFNLENBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxNQUFNLENBQUMsRUFBRSxHQUFDLENBQUMsRUFBQyxFQUFDLEVBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLElBQUksQ0FBQyxFQUFFLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQTs2QkFDcEY7NEJBQ0QsT0FBTyxJQUFJLENBQUE7eUJBQ1g7d0JBQ0QsT0FBTyxLQUFLLENBQUE7cUJBQ1o7eUJBQU07O3dCQUVOLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQTt3QkFDbkMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FDaEMsRUFBQyxJQUFJLEVBQUMsUUFBUSxDQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsUUFBUSxDQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUMsRUFDckMsRUFBQyxJQUFJLEVBQUMsUUFBUSxDQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsUUFBUSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUE7d0JBQ3JDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQ2hDLEVBQUMsSUFBSSxFQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUMsRUFDbkMsRUFBQyxJQUFJLEVBQUMsUUFBUSxDQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsUUFBUSxDQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBO3dCQUN2QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUNqQyxFQUFDLElBQUksRUFBQyxRQUFRLENBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxRQUFRLENBQUMsRUFBRSxFQUFDLEVBQ25DLEVBQUMsSUFBSSxFQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQTt3QkFD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 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsiRzovTXkgRHJpdmUvV29ya3NwYWNlL3F1aWNrX2xhdGV4X29ic2lkaWFuL25vZGVfbW9kdWxlcy90c2xpYi90c2xpYi5lczYuanMiLCJHOi9NeSBEcml2ZS9Xb3Jrc3BhY2UvcXVpY2tfbGF0ZXhfb2JzaWRpYW4vbWFpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG5QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxucHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG5SRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG5JTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG5QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4vKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSAqL1xyXG5cclxudmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XHJcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XHJcbiAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4dGVuZHMoZCwgYikge1xyXG4gICAgaWYgKHR5cGVvZiBiICE9PSBcImZ1bmN0aW9uXCIgJiYgYiAhPT0gbnVsbClcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XHJcbiAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XHJcbiAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcclxuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiBfX2Fzc2lnbih0KSB7XHJcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XHJcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdFtwXSA9IHNbcF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxyXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2RlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XHJcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xyXG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcclxuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XHJcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSkge1xyXG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2dlbmVyYXRvcih0aGlzQXJnLCBib2R5KSB7XHJcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xyXG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcclxuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XHJcbiAgICAgICAgd2hpbGUgKF8pIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcclxuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cclxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xyXG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIG9bazJdID0gbVtrXTtcclxufSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHBvcnRTdGFyKG0sIG8pIHtcclxuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgcCkpIF9fY3JlYXRlQmluZGluZyhvLCBtLCBwKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fdmFsdWVzKG8pIHtcclxuICAgIHZhciBzID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7XHJcbiAgICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTtcclxuICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gXCJudW1iZXJcIikgcmV0dXJuIHtcclxuICAgICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7XHJcbiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZWFkKG8sIG4pIHtcclxuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcclxuICAgIGlmICghbSkgcmV0dXJuIG87XHJcbiAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cclxuICAgIGZpbmFsbHkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmaW5hbGx5IHsgaWYgKGUpIHRocm93IGUuZXJyb3I7IH1cclxuICAgIH1cclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuLyoqIEBkZXByZWNhdGVkICovXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZCgpIHtcclxuICAgIGZvciAodmFyIGFyID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIGFyID0gYXIuY29uY2F0KF9fcmVhZChhcmd1bWVudHNbaV0pKTtcclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuLyoqIEBkZXByZWNhdGVkICovXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5cygpIHtcclxuICAgIGZvciAodmFyIHMgPSAwLCBpID0gMCwgaWwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgaWw7IGkrKykgcyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xyXG4gICAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxyXG4gICAgICAgIGZvciAodmFyIGEgPSBhcmd1bWVudHNbaV0sIGogPSAwLCBqbCA9IGEubGVuZ3RoOyBqIDwgamw7IGorKywgaysrKVxyXG4gICAgICAgICAgICByW2tdID0gYVtqXTtcclxuICAgIHJldHVybiByO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheSh0bywgZnJvbSwgcGFjaykge1xyXG4gICAgaWYgKHBhY2sgfHwgYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgaSA9IDAsIGwgPSBmcm9tLmxlbmd0aCwgYXI7IGkgPCBsOyBpKyspIHtcclxuICAgICAgICBpZiAoYXIgfHwgIShpIGluIGZyb20pKSB7XHJcbiAgICAgICAgICAgIGlmICghYXIpIGFyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSwgMCwgaSk7XHJcbiAgICAgICAgICAgIGFyW2ldID0gZnJvbVtpXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdG8uY29uY2F0KGFyIHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGZyb20pKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXQodikge1xyXG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBfX2F3YWl0ID8gKHRoaXMudiA9IHYsIHRoaXMpIDogbmV3IF9fYXdhaXQodik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jR2VuZXJhdG9yKHRoaXNBcmcsIF9hcmd1bWVudHMsIGdlbmVyYXRvcikge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBnID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pLCBpLCBxID0gW107XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaWYgKGdbbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBuID09PSBcInJldHVyblwiIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgbSA9IG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdLCBpO1xyXG4gICAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlbbl0gPSBvW25dICYmIGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7IHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgZCwgdikgeyBQcm9taXNlLnJlc29sdmUodikudGhlbihmdW5jdGlvbih2KSB7IHJlc29sdmUoeyB2YWx1ZTogdiwgZG9uZTogZCB9KTsgfSwgcmVqZWN0KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcclxuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XHJcbiAgICByZXR1cm4gY29va2VkO1xyXG59O1xyXG5cclxudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xyXG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcclxuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xyXG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydERlZmF1bHQobW9kKSB7XHJcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHtcclxuICAgIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlclwiKTtcclxuICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO1xyXG4gICAgcmV0dXJuIGtpbmQgPT09IFwibVwiID8gZiA6IGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRTZXQocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikge1xyXG4gICAgaWYgKGtpbmQgPT09IFwibVwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBtZXRob2QgaXMgbm90IHdyaXRhYmxlXCIpO1xyXG4gICAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgc2V0dGVyXCIpO1xyXG4gICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcclxuICAgIHJldHVybiAoa2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIsIHZhbHVlKSA6IGYgPyBmLnZhbHVlID0gdmFsdWUgOiBzdGF0ZS5zZXQocmVjZWl2ZXIsIHZhbHVlKSksIHZhbHVlO1xyXG59XHJcbiIsImltcG9ydCB7XHJcblx0QXBwLFxyXG5cdE1hcmtkb3duVmlldyxcclxuXHRQbHVnaW4sXHJcblx0RWRpdG9yLFxyXG5cdFBsdWdpblNldHRpbmdUYWIsXHJcblx0U2V0dGluZ1xyXG59IGZyb20gJ29ic2lkaWFuJztcclxuXHJcbmltcG9ydCB7IFByZWMsIEV4dGVuc2lvbiB9IGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcclxuaW1wb3J0IHsga2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3Ivdmlldyc7XHJcblxyXG5pbnRlcmZhY2UgUXVpY2tMYXRleFNldHRpbmdzIHtcclxuXHRtb3ZlSW50b01hdGhfdG9nZ2xlOiBib29sZWFuO1xyXG5cdGF1dG9DbG9zZU1hdGhfdG9nZ2xlOiBib29sZWFuO1xyXG5cdGF1dG9DbG9zZVJvdW5kX3RvZ2dsZTogYm9vbGVhbjtcclxuXHRhdXRvQ2xvc2VTcXVhcmVfdG9nZ2xlOiBib29sZWFuO1xyXG5cdGF1dG9DbG9zZUN1cmx5X3RvZ2dsZTogYm9vbGVhbjtcclxuXHRhZGRBbGlnbkJsb2NrX3RvZ2dsZTogYm9vbGVhbjtcclxuXHRhZGRBbGlnbkJsb2NrX3BhcmFtZXRlcjogc3RyaW5nO1xyXG5cdGF1dG9BbGlnblN5bWJvbHM6IHN0cmluZztcclxuXHRhZGRDYXNlc0Jsb2NrX3RvZ2dsZTogYm9vbGVhbjtcclxuXHRzaGlmdEVudGVyX3RvZ2dsZTogYm9vbGVhbjtcclxuXHRhZGRNYXRyaXhCbG9ja190b2dnbGU6IGJvb2xlYW47XHJcblx0YWRkTWF0cml4QmxvY2tfcGFyYW1ldGVyOiBzdHJpbmc7XHJcblx0YXV0b0ZyYWN0aW9uX3RvZ2dsZTogYm9vbGVhbjtcclxuXHRhdXRvTGFyZ2VCcmFja2V0X3RvZ2dsZTogYm9vbGVhbjtcclxuXHRhdXRvU3VtTGltaXRfdG9nZ2xlOiBib29sZWFuO1xyXG5cdGF1dG9FbmNsb3NlU3VwX3RvZ2dsZTogYm9vbGVhbjtcclxuXHRhdXRvRW5jbG9zZVN1Yl90b2dnbGU6IGJvb2xlYW47XHJcblx0ZW5jbG9zZVNlbGVjdGlvbl90b2dnbGU6IGJvb2xlYW47XHJcblx0Y3VzdG9tU2hvcnRoYW5kX3RvZ2dsZTogYm9vbGVhbjtcclxuXHRjdXN0b21TaG9ydGhhbmRfcGFyYW1ldGVyOiBzdHJpbmdcclxufVxyXG5cclxuY29uc3QgREVGQVVMVF9TRVRUSU5HUzogUXVpY2tMYXRleFNldHRpbmdzID0ge1xyXG5cdG1vdmVJbnRvTWF0aF90b2dnbGU6IHRydWUsXHJcblx0YXV0b0Nsb3NlTWF0aF90b2dnbGU6IHRydWUsXHJcblx0YXV0b0Nsb3NlUm91bmRfdG9nZ2xlOiB0cnVlLFxyXG5cdGF1dG9DbG9zZVNxdWFyZV90b2dnbGU6IHRydWUsXHJcblx0YXV0b0Nsb3NlQ3VybHlfdG9nZ2xlOiB0cnVlLFxyXG5cdGFkZEFsaWduQmxvY2tfdG9nZ2xlOiB0cnVlLFxyXG5cdGFkZEFsaWduQmxvY2tfcGFyYW1ldGVyOiBcImFsaWduKlwiLFxyXG5cdGF1dG9BbGlnblN5bWJvbHM6IFwiPSA+IDwgXFxcXGxlIFxcXFxnZSBcXFxcbmVxIFxcXFxhcHByb3hcIixcclxuXHRhZGRDYXNlc0Jsb2NrX3RvZ2dsZTogdHJ1ZSxcclxuXHRzaGlmdEVudGVyX3RvZ2dsZTogZmFsc2UsXHJcblx0YWRkTWF0cml4QmxvY2tfdG9nZ2xlOiB0cnVlLFxyXG5cdGFkZE1hdHJpeEJsb2NrX3BhcmFtZXRlcjogXCJwbWF0cml4XCIsXHJcblx0YXV0b0ZyYWN0aW9uX3RvZ2dsZTogdHJ1ZSxcclxuXHRhdXRvTGFyZ2VCcmFja2V0X3RvZ2dsZTogdHJ1ZSxcclxuXHRhdXRvU3VtTGltaXRfdG9nZ2xlOiB0cnVlLFxyXG5cdGF1dG9FbmNsb3NlU3VwX3RvZ2dsZTogdHJ1ZSxcclxuXHRhdXRvRW5jbG9zZVN1Yl90b2dnbGU6IHRydWUsXHJcblx0ZW5jbG9zZVNlbGVjdGlvbl90b2dnbGU6IHRydWUsXHJcblx0Y3VzdG9tU2hvcnRoYW5kX3RvZ2dsZTogdHJ1ZSxcclxuXHRjdXN0b21TaG9ydGhhbmRfcGFyYW1ldGVyOiBcImJpOlxcXFxiaW5vbXsjY3Vyc29yfXsjdGFifTtcXG5zcTpcXFxcc3FydHt9O1xcbmJiOlxcXFxtYXRoYmJ7fTtcXG5iZjpcXFxcbWF0aGJme307XFxudGU6XFxcXHRleHR7fTtcXG5pbmY6XFxcXGluZnR5O1xcblwiK1xyXG5cdFx0XHRcdFx0XHRcdFwiY2Q6XFxcXGNkb3Q7XFxucXU6XFxcXHF1YWQ7XFxudGk6XFxcXHRpbWVzO1xcblwiK1xyXG5cdFx0XHRcdFx0XHRcdFwiYWw6XFxcXGFscGhhO1xcbmJlOlxcXFxiZXRhO1xcbmdhOlxcXFxnYW1tYTtcXG5HYTpcXFxcR2FtbWE7XFxuXCIrXHJcblx0XHRcdFx0XHRcdFx0XCJkZTpcXFxcZGVsdGE7XFxuRGU6XFxcXERlbHRhO1xcbmVwOlxcXFxlcHNpbG9uO1xcbnplOlxcXFx6ZXRhO1xcblwiK1xyXG5cdFx0XHRcdFx0XHRcdFwiZXQ6XFxcXGV0YTtcXG50aDpcXFxcdGhldGE7XFxuVGg6XFxcXFRoZXRhO1xcbmlvOlxcXFxpb3RhO1xcblwiK1xyXG5cdFx0XHRcdFx0XHRcdFwia2E6XFxcXGthcHBhO1xcbmxhOlxcXFxsYW1iZGE7XFxuTGE6XFxcXExhbWJkYTtcXG5tdTpcXFxcbXU7XFxuXCIrXHJcblx0XHRcdFx0XHRcdFx0XCJudTpcXFxcbnU7XFxueGk6XFxcXHhpO1xcblhpOlxcXFxYaTtcXG5waTpcXFxccGk7XFxuUGk6XFxcXFBpO1xcblwiK1xyXG5cdFx0XHRcdFx0XHRcdFwicmg6XFxcXHJobztcXG5zaTpcXFxcc2lnbWE7XFxuU2k6XFxcXFNpZ21hO1xcbnRhOlxcXFx0YXU7XFxuXCIrXHJcblx0XHRcdFx0XHRcdFx0XCJ1cDpcXFxcdXBzaWxvbjtcXG5VcDpcXFxcVXBzaWxvbjtcXG5waDpcXFxccGhpO1xcblBoOlxcXFxQaGk7XFxuY2g6XFxcXGNoaTtcXG5cIitcclxuXHRcdFx0XHRcdFx0XHRcInBzOlxcXFxwc2k7XFxuUHM6XFxcXFBzaTtcXG5vbTpcXFxcb21lZ2E7XFxuT206XFxcXE9tZWdhXCJcclxufVxyXG4gXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFF1aWNrTGF0ZXhQbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xyXG5cdHNldHRpbmdzOiBRdWlja0xhdGV4U2V0dGluZ3M7XHJcblx0c2hvcnRoYW5kX2FycmF5OiBzdHJpbmdbXVtdO1xyXG5cdGF1dG9BbGlnbl9hcnJheTogc3RyaW5nW107XHJcblxyXG4gICAgcHJpdmF0ZSB2aW1BbGxvd19hdXRvQ2xvc2VNYXRoOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSBtYWtlRXh0ZW5zaW9uVGhpbmcgPSAoKTpFeHRlbnNpb24gPT4gUHJlYy5oaWdoKGtleW1hcC5vZihbXHJcblx0XHR7XHJcblx0XHRcdGtleTogJyQnLFxyXG5cdFx0XHRydW46ICgpOiBib29sZWFuID0+IHtcclxuXHRcdFx0XHRjb25zdCB2aWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KVxyXG5cdFx0XHRcdGlmICghdmlldykgcmV0dXJuIGZhbHNlXHJcblxyXG5cdFx0XHRcdGNvbnN0IGVkaXRvciAgPSB2aWV3LmVkaXRvclxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGlmIChlZGl0b3IuZ2V0U2VsZWN0aW9uKCkubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0Ly8gZW5jbG9zZSBzZWxlY3RlZCB0ZXh0XHJcblx0XHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5lbmNsb3NlU2VsZWN0aW9uX3RvZ2dsZSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBhbmNob3IgPSBlZGl0b3IuZ2V0Q3Vyc29yKFwiYW5jaG9yXCIpXHJcblx0XHRcdFx0XHRcdGNvbnN0IGhlYWQgPSBlZGl0b3IuZ2V0Q3Vyc29yKFwiaGVhZFwiKVxyXG5cdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbihgJCR7ZWRpdG9yLmdldFNlbGVjdGlvbigpfSRgKVxyXG5cdFx0XHRcdFx0XHRpZiAoYW5jaG9yLmxpbmUgPiBoZWFkLmxpbmUpIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0U2VsZWN0aW9uKHtsaW5lOmFuY2hvci5saW5lLGNoOmFuY2hvci5jaH0se2xpbmU6aGVhZC5saW5lLGNoOmhlYWQuY2grMX0pXHJcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoYW5jaG9yLmxpbmUgPCBoZWFkLmxpbmUpIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0U2VsZWN0aW9uKHtsaW5lOmFuY2hvci5saW5lLGNoOmFuY2hvci5jaCsxfSx7bGluZTpoZWFkLmxpbmUsY2g6aGVhZC5jaH0pXHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldFNlbGVjdGlvbih7bGluZTphbmNob3IubGluZSxjaDphbmNob3IuY2grMX0se2xpbmU6aGVhZC5saW5lLGNoOmhlYWQuY2grMX0pXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWVcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHJldHVybiBmYWxzZVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQvLyBjbG9zZSBtYXRoIHN5bWJvbFxyXG5cdFx0XHRcdFx0Y29uc3QgcG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKClcclxuXHRcdFx0XHRcdGNvbnN0IHByZXZfY2hhciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaC0xfSxcclxuXHRcdFx0XHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaH0pXHJcblx0XHRcdFx0XHRjb25zdCBuZXh0X2NoYXIgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdHtsaW5lOnBvc2l0aW9uLmxpbmUsY2g6cG9zaXRpb24uY2h9LFxyXG5cdFx0XHRcdFx0XHR7bGluZTpwb3NpdGlvbi5saW5lLGNoOnBvc2l0aW9uLmNoKzF9KVxyXG5cdFx0XHRcdFx0Y29uc3QgbmV4dDJfY2hhciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaH0sXHJcblx0XHRcdFx0XHRcdHtsaW5lOnBvc2l0aW9uLmxpbmUsY2g6cG9zaXRpb24uY2grMn0pXHJcblx0XHRcdFx0XHRpZiAocHJldl9jaGFyICE9IFwiJFwiICYmIG5leHRfY2hhciA9PSBcIiRcIil7XHJcblx0XHRcdFx0XHRcdGlmIChuZXh0Ml9jaGFyID09IFwiJCRcIikge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaCsyfSlcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZVxyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaCsxfSlcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQvLyBhdXRvIGNsb3NlIG1hdGhcclxuXHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmF1dG9DbG9zZU1hdGhfdG9nZ2xlICYmIHRoaXMudmltQWxsb3dfYXV0b0Nsb3NlTWF0aCkge1xyXG5cdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbihcIiRcIik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQvLyBtb3ZlIGludG8gbWF0aFxyXG5cdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MubW92ZUludG9NYXRoX3RvZ2dsZSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgdCA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIDEgfSxcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9KVxyXG5cdFx0XHRcdFx0XHRjb25zdCB0MiA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9LFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoICsgMSB9KVxyXG5cdFx0XHRcdFx0XHRjb25zdCB0XzIgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSAyIH0sXHJcblx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSlcclxuXHRcdFx0XHRcdFx0aWYgKHQgPT0gJyQnICYmIHQyICE9ICckJykge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3IoeyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSAxIH0pXHJcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAodF8yID09ICckJCcpIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gMSB9KVxyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdGtleTogJ1RhYicsXHJcblx0XHRcdHJ1bjogKCk6IGJvb2xlYW4gPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpXHJcblx0XHRcdFx0aWYgKCF2aWV3KSByZXR1cm4gZmFsc2VcclxuXHJcblx0XHRcdFx0Y29uc3QgZWRpdG9yICA9IHZpZXcuZWRpdG9yXHJcblxyXG5cdFx0XHRcdC8vIFRhYiBzaG9ydGN1dCBmb3IgbWF0cml4IGJsb2NrXHJcblx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYWRkTWF0cml4QmxvY2tfdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRjb25zdCBiZWdpbl9tYXRyaXggPSBbJ1xcXFxiZWdpbnsnICsgdGhpcy5zZXR0aW5ncy5hZGRNYXRyaXhCbG9ja19wYXJhbWV0ZXIrJ30nLCBcIlxcXFxiZWdpbnttYXRyaXh9XCIsXCJcXFxcYmVnaW57Ym1hdHJpeH1cIiwgXCJcXFxcYmVnaW57Qm1hdHJpeH1cIiwgXCJcXFxcYmVnaW57dm1hdHJpeH1cIiwgXCJcXFxcYmVnaW57Vm1hdHJpeH1cIiwgXCJcXFxcYmVnaW57c21hbGxtYXRyaXh9XCJdXHJcblx0XHRcdFx0XHRjb25zdCBlbmRfbWF0cml4ID0gWydcXFxcZW5keycgKyB0aGlzLnNldHRpbmdzLmFkZE1hdHJpeEJsb2NrX3BhcmFtZXRlcisnfScsIFwiXFxcXGVuZHttYXRyaXh9XCIsXCJcXFxcZW5ke2JtYXRyaXh9XCIsIFwiXFxcXGVuZHtCbWF0cml4fVwiLCBcIlxcXFxlbmR7dm1hdHJpeH1cIiwgXCJcXFxcZW5ke1ZtYXRyaXh9XCIsIFwiXFxcXGVuZHtzbWFsbG1hdHJpeH1cIl1cclxuXHRcdFx0XHRcdGxldCBzdGF0ZSA9IGZhbHNlXHJcblx0XHRcdFx0XHRsZXQgZW5kX3RleHQgPSBcIlwiXHJcblx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGJlZ2luX21hdHJpeC5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy53aXRoaW5BbnlCcmFja2V0c19kb2N1bWVudChlZGl0b3IsIGJlZ2luX21hdHJpeFtpXSwgZW5kX21hdHJpeFtpXSkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHN0YXRlID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHRcdFx0ZW5kX3RleHQgPSBlbmRfbWF0cml4W2ldXHJcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Y29uc3QgcG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XHJcblx0XHRcdFx0XHRjb25zdCBwcmV2M19jaGFyID0gZWRpdG9yLmdldFJhbmdlKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoLTN9LHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNofSlcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0aWYgKHN0YXRlKSB7XHJcblx0XHRcdFx0XHRcdGlmIChwcmV2M19jaGFyID09ICcgJiAnKSB7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZSgnJywge2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2gtM30se2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2h9KVxyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2grZW5kX3RleHQubGVuZ3RoLTN9KVxyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlXHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oJyAmICcpXHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWVcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gVGFiIHNob3J0Y3V0IGZvciBjYXNlcyBibG9ja1xyXG5cdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmFkZENhc2VzQmxvY2tfdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy53aXRoaW5BbnlCcmFja2V0c19kb2N1bWVudChlZGl0b3IsXHJcblx0XHRcdFx0XHQnXFxcXGJlZ2lue2Nhc2VzfScsXHJcblx0XHRcdFx0XHQnXFxcXGVuZHtjYXNlc30nXHJcblx0XHRcdFx0XHQpKSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBwcmV2M19jaGFyID0gZWRpdG9yLmdldFJhbmdlKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoLTN9LHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNofSlcclxuXHRcdFx0XHRcdFx0Y29uc3QgbmV4dF9saW5lID0gZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSsxKVxyXG5cdFx0XHRcdFx0XHRpZiAocHJldjNfY2hhciA9PSAnICYgJyAmJiBuZXh0X2xpbmUgPT0gJ1xcXFxlbmR7Y2FzZXN9Jykge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlUmFuZ2UoJycsIHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoLTN9LHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNofSlcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUrMSwgY2g6bmV4dF9saW5lLmxlbmd0aH0pXHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWVcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbignICYgJylcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQvLyBUYWIgdG8gZ28gdG8gbmV4dCAjdGFiXHJcblx0XHRcdFx0aWYgKHRoaXMud2l0aGluTWF0aChlZGl0b3IpKSB7XHJcblx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRfbGluZSA9IGVkaXRvci5nZXRMaW5lKHBvc2l0aW9uLmxpbmUpO1xyXG5cdFx0XHRcdFx0Y29uc3QgdGFiX3Bvc2l0aW9uID0gY3VycmVudF9saW5lLmluZGV4T2YoXCIjdGFiXCIsIHBvc2l0aW9uLmNoKTtcclxuXHRcdFx0XHRcdGlmICh0YWJfcG9zaXRpb24hPS0xKXtcclxuXHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZShcIlwiLFxyXG5cdFx0XHRcdFx0XHR7bGluZTpwb3NpdGlvbi5saW5lLCBjaDp0YWJfcG9zaXRpb259LFxyXG5cdFx0XHRcdFx0XHR7bGluZTpwb3NpdGlvbi5saW5lLCBjaDp0YWJfcG9zaXRpb24rNH0pXHJcblx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6dGFiX3Bvc2l0aW9ufSlcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWVcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC8vIFRhYiBvdXQgb2YgJFxyXG5cdFx0XHRcdGlmICh0aGlzLndpdGhpbk1hdGgoZWRpdG9yKSkge1xyXG5cdFx0XHRcdFx0Y29uc3QgcG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XHJcblx0XHRcdFx0XHRjb25zdCBuZXh0XzIgPSBlZGl0b3IuZ2V0UmFuZ2Uoe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2h9LHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoKzJ9KVxyXG5cdFx0XHRcdFx0Y29uc3QgZW5kX3BvcyA9IGVkaXRvci5nZXRMaW5lKHBvc2l0aW9uLmxpbmUpLmxlbmd0aDtcclxuXHRcdFx0XHRcdGNvbnN0IG5leHRfbGluZSA9IGVkaXRvci5nZXRMaW5lKHBvc2l0aW9uLmxpbmUrMSlcclxuXHRcdFx0XHRcdGlmIChuZXh0XzIgPT0gXCIkJFwiKSB7XHJcblx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2grMn0pXHJcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlXHJcblx0XHRcdFx0XHR9IGVsc2UgaWYgKHBvc2l0aW9uLmNoID09IGVuZF9wb3MgJiYgbmV4dF9saW5lID09IFwiJCRcIikge1xyXG5cdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUrMSwgY2g6bmV4dF9saW5lLmxlbmd0aH0pXHJcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlXHJcblx0XHRcdFx0XHR9IGVsc2UgaWYgKG5leHRfMlswXSA9PSBcIiRcIikge1xyXG5cdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoKzF9KVxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gVGFiIHRvIG5leHQgY2xvc2UgYnJhY2tldFxyXG5cdFx0XHRcdGlmICh0aGlzLndpdGhpbk1hdGgoZWRpdG9yKSkge1xyXG5cdFx0XHRcdFx0Y29uc3QgcG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XHJcblx0XHRcdFx0XHRjb25zdCBjdXJyZW50X2xpbmUgPSBlZGl0b3IuZ2V0TGluZShwb3NpdGlvbi5saW5lKTtcclxuXHRcdFx0XHRcdGNvbnN0IGZvbGxvd2luZ190ZXh0ID0gZWRpdG9yLmdldFJhbmdlKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoKzF9LHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOmN1cnJlbnRfbGluZS5sZW5ndGh9KVxyXG5cdFx0XHRcdFx0Y29uc3QgY2xvc2Vfc3ltYm9scyA9IFsnfScsICddJywgJyknLCAnJCddIFxyXG5cdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBmb2xsb3dpbmdfdGV4dC5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRpZiAoY2xvc2Vfc3ltYm9scy5jb250YWlucyhmb2xsb3dpbmdfdGV4dFtpXSkpIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoK2krMX0pXHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWVcclxuXHRcdFx0XHRcdFx0fVx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC8vIFRhYiBvdXQgb2YgYWxpZ24gYmxvY2tcclxuXHRcdFx0XHRpZiAodGhpcy53aXRoaW5NYXRoKGVkaXRvcikpIHtcclxuXHRcdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0XHRcdFx0Y29uc3QgZW5kX3BvcyA9IGVkaXRvci5nZXRMaW5lKHBvc2l0aW9uLmxpbmUpLmxlbmd0aDtcclxuXHRcdFx0XHRcdGNvbnN0IG5leHRfbGluZSA9IGVkaXRvci5nZXRMaW5lKHBvc2l0aW9uLmxpbmUrMSlcclxuXHRcdFx0XHRcdGlmIChwb3NpdGlvbi5jaCA9PSBlbmRfcG9zICYmIG5leHRfbGluZSA9PSAnXFxcXGVuZHsnICsgdGhpcy5zZXR0aW5ncy5hZGRBbGlnbkJsb2NrX3BhcmFtZXRlcisnfScpIHtcclxuXHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lKzEsIGNoOm5leHRfbGluZS5sZW5ndGh9KVxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblxyXG5cdFx0XHRcdHJldHVybiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0a2V5OiAnU2hpZnQtVGFiJyxcclxuXHRcdFx0cnVuOiAoKTogYm9vbGVhbiA9PiB7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Y29uc3QgdmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldylcclxuXHRcdFx0XHRpZiAoIXZpZXcpIHJldHVybiBmYWxzZVxyXG5cclxuXHRcdFx0XHRjb25zdCBlZGl0b3IgID0gdmlldy5lZGl0b3JcclxuXHJcblx0XHRcdFx0aWYgKHRoaXMud2l0aGluTWF0aChlZGl0b3IpKSB7XHJcblx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdGNvbnN0IHByZWNlZGluZ190ZXh0ID0gZWRpdG9yLmdldFJhbmdlKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOjB9LHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNofSlcclxuXHRcdFx0XHRcdGNvbnN0IGNsb3NlX3N5bWJvbHMgPSBbJ30nLCAnXScsICcpJ10gXHJcblx0XHRcdFx0XHRmb3IgKGxldCBpID0gcHJlY2VkaW5nX3RleHQubGVuZ3RoOyBpID49IDA7IGktLSkge1xyXG5cdFx0XHRcdFx0XHRpZiAoY2xvc2Vfc3ltYm9scy5jb250YWlucyhwcmVjZWRpbmdfdGV4dFtpXSkpIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOml9KVxyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlXHJcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAocG9zaXRpb24uY2gtaSA+IDEgJiYgcHJlY2VkaW5nX3RleHRbaV09PVwiJFwiKSB7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLCBjaDppKzF9KVxyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlXHJcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAocHJlY2VkaW5nX3RleHQuc2xpY2UoLTIpPT1cIiQkXCIpIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoLTJ9KVxyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlXHJcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAocHJlY2VkaW5nX3RleHRbLTFdPT1cIiRcIikge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2gtMX0pXHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWVcdFxyXG5cdFx0XHRcdFx0XHR9XHRcdFx0XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0a2V5OiAnU3BhY2UnLFxyXG5cdFx0XHRydW46ICgpOiBib29sZWFuID0+IHtcclxuXHRcdFx0XHRjb25zdCB2aWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KVxyXG5cdFx0XHRcdGlmICghdmlldykgcmV0dXJuIGZhbHNlXHJcblxyXG5cdFx0XHRcdGNvbnN0IGVkaXRvciAgPSB2aWV3LmVkaXRvclxyXG5cclxuXHRcdFx0XHRpZiAoIXRoaXMuc2V0dGluZ3MuYXV0b0ZyYWN0aW9uX3RvZ2dsZSAmJlxyXG5cdFx0XHRcdFx0IXRoaXMuc2V0dGluZ3MuYXV0b0xhcmdlQnJhY2tldF90b2dnbGUgJiZcclxuXHRcdFx0XHRcdCF0aGlzLnNldHRpbmdzLmF1dG9FbmNsb3NlU3VwX3RvZ2dsZSAmJlxyXG5cdFx0XHRcdFx0IXRoaXMuc2V0dGluZ3MuYXV0b0VuY2xvc2VTdWJfdG9nZ2xlICYmXHJcblx0XHRcdFx0XHQhdGhpcy5zZXR0aW5ncy5jdXN0b21TaG9ydGhhbmRfdG9nZ2xlKSByZXR1cm4gZmFsc2U7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0aWYgKHRoaXMud2l0aGluTWF0aChlZGl0b3IpKSB7XHJcblx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRfbGluZSA9IGVkaXRvci5nZXRMaW5lKHBvc2l0aW9uLmxpbmUpO1xyXG5cdFx0XHRcdFx0Y29uc3QgbGFzdF9kb2xsYXIgPSBjdXJyZW50X2xpbmUubGFzdEluZGV4T2YoJyQnLCBwb3NpdGlvbi5jaCAtIDEpO1xyXG5cclxuXHRcdFx0XHRcdC8vIGNoZWNrIGZvciBjdXN0b20gc2hvcnRoYW5kXHJcblx0XHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5jdXN0b21TaG9ydGhhbmRfdG9nZ2xlICYmICF0aGlzLndpdGhpblRleHQoZWRpdG9yLCBwb3NpdGlvbi5jaCkpIHtcclxuXHRcdFx0XHRcdFx0bGV0IGtleXdvcmQ6c3RyaW5nID0gXCJcIjtcclxuXHRcdFx0XHRcdFx0bGV0IGtleXdvcmRfbGVuZ3RoOm51bWJlciA9IDA7XHJcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAwIDsgaSA8IHRoaXMuc2hvcnRoYW5kX2FycmF5Lmxlbmd0aCA7IGkrKykge1xyXG5cdFx0XHRcdFx0XHRcdGtleXdvcmRfbGVuZ3RoID0gdGhpcy5zaG9ydGhhbmRfYXJyYXlbaV1bMF0ubGVuZ3RoO1xyXG5cdFx0XHRcdFx0XHRcdGlmICgga2V5d29yZF9sZW5ndGggPiBwb3NpdGlvbi5jaCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29udGludWU7XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICgga2V5d29yZF9sZW5ndGggPT0gcG9zaXRpb24uY2ggKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRrZXl3b3JkID0gXCJAXCIgKyBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0ga2V5d29yZF9sZW5ndGggfSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSk7XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdGtleXdvcmQgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0ga2V5d29yZF9sZW5ndGggLSAxIH0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0pO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRpZiAoa2V5d29yZFswXS50b0xvd2VyQ2FzZSgpID09IGtleXdvcmRbMF0udG9VcHBlckNhc2UoKSB8fCBcclxuXHRcdFx0XHRcdFx0XHRcdGtleXdvcmRbMF0gPT0gXCJAXCIgKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAodGhpcy5zaG9ydGhhbmRfYXJyYXlbaV1bMF0gPT0ga2V5d29yZC5zbGljZSgtIGtleXdvcmRfbGVuZ3RoKSAmJiBcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zaG9ydGhhbmRfYXJyYXlbaV1bMV0gIT0ga2V5d29yZCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zdCByZXBsYWNlX3NsYXNoID0gKGtleXdvcmRbMF09PVwiXFxcXFwiICYmIHRoaXMuc2hvcnRoYW5kX2FycmF5W2ldWzFdWzBdPT1cIlxcXFxcIikgPyAxIDogMDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc3Qgc2V0X2N1cnNvcl9wb3NpdGlvbiA9IHRoaXMuc2hvcnRoYW5kX2FycmF5W2ldWzFdLmluZGV4T2YoXCIjY3Vyc29yXCIpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKHRoaXMuc2hvcnRoYW5kX2FycmF5W2ldWzFdLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0ga2V5d29yZF9sZW5ndGggLSByZXBsYWNlX3NsYXNoIH0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChzZXRfY3Vyc29yX3Bvc2l0aW9uICE9IC0xKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZShcIlwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoIC0ga2V5d29yZF9sZW5ndGggLSByZXBsYWNlX3NsYXNoICsgc2V0X2N1cnNvcl9wb3NpdGlvbn0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2ggLSBrZXl3b3JkX2xlbmd0aCAtIHJlcGxhY2Vfc2xhc2ggKyBzZXRfY3Vyc29yX3Bvc2l0aW9uKzd9KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoIC0ga2V5d29yZF9sZW5ndGggLSByZXBsYWNlX3NsYXNoICsgc2V0X2N1cnNvcl9wb3NpdGlvbn0pXHJcblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5zaG9ydGhhbmRfYXJyYXlbaV1bMV0uc2xpY2UoLTIpID09IFwie31cIikge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3IoXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2g6IHBvc2l0aW9uLmNoICsgdGhpcy5zaG9ydGhhbmRfYXJyYXlbaV1bMV0ubGVuZ3RoIC0ga2V5d29yZF9sZW5ndGggLSAxIC0gcmVwbGFjZV9zbGFzaH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH07XHJcblxyXG5cdFx0XHRcdFx0Ly8gZmluZCBsYXN0IHVuYnJhY2tldGVkIHN1YnNjcmlwdCB3aXRoaW4gbGFzdCAxMCBjaGFyYWN0ZXJzIGFuZCBwZXJmb3JtIGF1dG9FbmNsb3NlU3ViXHJcblx0XHRcdFx0XHQvLyBpZ25vcmUgZXhwcmVzc2lvbiB0aGF0IGNvbnRhaW4gKyAtICogLyBeXHJcblx0XHRcdFx0XHRjb25zdCBsYXN0X21hdGggPSBjdXJyZW50X2xpbmUubGFzdEluZGV4T2YoJyQnLCBwb3NpdGlvbi5jaCAtIDEpO1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYXV0b0VuY2xvc2VTdWJfdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRcdGxldCBsYXN0X3N1YnNjcmlwdCA9IGN1cnJlbnRfbGluZS5sYXN0SW5kZXhPZignXycsIHBvc2l0aW9uLmNoKTtcclxuXHRcdFx0XHRcdFx0aWYgKGxhc3Rfc3Vic2NyaXB0ICE9IC0xICYmIGxhc3Rfc3Vic2NyaXB0ID4gbGFzdF9tYXRoKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgbGV0dGVyX2FmdGVyX3N1YnNjcmlwdCA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3Rfc3Vic2NyaXB0ICsgMSB9LFxyXG5cdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9zdWJzY3JpcHQgKyAyIH0pO1xyXG5cdFx0XHRcdFx0XHRcdGlmIChsZXR0ZXJfYWZ0ZXJfc3Vic2NyaXB0ICE9IFwie1wiICYmIFxyXG5cdFx0XHRcdFx0XHRcdFx0KHBvc2l0aW9uLmNoIC0gbGFzdF9zdWJzY3JpcHQpIDw9IDEwICkge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oXCJ9XCIpO1xyXG5cdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZShcIntcIiwge2xpbmU6cG9zaXRpb24ubGluZSwgY2g6bGFzdF9zdWJzY3JpcHQrMX0pO1xyXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0XHQvLyByZXRyaWV2ZSB0aGUgbGFzdCB1bmJyYWNrZXRlZCBzdXBlcnNjcmlwdFxyXG5cdFx0XHRcdFx0bGV0IGxhc3Rfc3VwZXJzY3JpcHQgPSBjdXJyZW50X2xpbmUubGFzdEluZGV4T2YoJ14nLCBwb3NpdGlvbi5jaCk7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdHdoaWxlIChsYXN0X3N1cGVyc2NyaXB0ICE9IC0xKSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHR3b19sZXR0ZXJzX2FmdGVyX3N1cGVyc2NyaXB0ID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3Rfc3VwZXJzY3JpcHQgKyAxIH0sXHJcblx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9zdXBlcnNjcmlwdCArIDMgfSk7XHJcblx0XHRcdFx0XHRcdGlmICh0d29fbGV0dGVyc19hZnRlcl9zdXBlcnNjcmlwdFswXSA9PSAneycgfHwgdHdvX2xldHRlcnNfYWZ0ZXJfc3VwZXJzY3JpcHQgPT0gJyB7Jykge1xyXG5cdFx0XHRcdFx0XHRcdGxhc3Rfc3VwZXJzY3JpcHQgPSBjdXJyZW50X2xpbmUubGFzdEluZGV4T2YoJ14nLCBsYXN0X3N1cGVyc2NyaXB0IC0gMSk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAobGFzdF9zdXBlcnNjcmlwdCA8IGxhc3RfbWF0aCkge1xyXG5cdFx0XHRcdFx0XHRcdGxhc3Rfc3VwZXJzY3JpcHQgPSAtMVxyXG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Ly8gcmV0cmlldmUgdGhlIGxhc3QgZGl2aWRlIHN5bWJvbFxyXG5cdFx0XHRcdFx0bGV0IGxhc3RfZGl2aWRlID0gY3VycmVudF9saW5lLmxhc3RJbmRleE9mKCcvJywgcG9zaXRpb24uY2ggLSAyKTtcclxuXHJcblx0XHRcdFx0XHR3aGlsZSAobGFzdF9kaXZpZGUgIT0gLTEpIHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgYXJvdW5kX2RpdmlkZSA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X2RpdmlkZSAtIDEgfSxcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X2RpdmlkZSArIDIgfSk7XHJcblx0XHRcdFx0XHRcdGlmIChhcm91bmRfZGl2aWRlWzBdID09ICcgJyAmJiBhcm91bmRfZGl2aWRlWzJdID09ICcgJykge1xyXG5cdFx0XHRcdFx0XHRcdGxhc3RfZGl2aWRlID0gY3VycmVudF9saW5lLmxhc3RJbmRleE9mKCdeJywgbGFzdF9kaXZpZGUgLSAxKTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChsYXN0X2RpdmlkZSA8IGxhc3RfbWF0aCkge1xyXG5cdFx0XHRcdFx0XHRcdGxhc3RfZGl2aWRlID0gLTFcclxuXHRcdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG4gXHJcblx0XHRcdFx0XHQvLyBwZXJmb3JtIGF1dG9FbmNsb3NlU3VwXHJcblx0XHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5hdXRvRW5jbG9zZVN1cF90b2dnbGUpIHtcclxuXHRcdFx0XHRcdFx0aWYgKGxhc3Rfc3VwZXJzY3JpcHQgPiBsYXN0X2RpdmlkZSkge1xyXG5cdFx0XHRcdFx0XHRcdC8vIGlmIGFueSBicmFja2V0cyBmcm9tIGxhc3Qgc3VwIHRvIGN1cnNvciBzdGlsbCB1bmNsb3NlZCwgZG9udCBkbyBhdXRvRW5jbG9zZVN1cCB5ZXRcclxuXHRcdFx0XHRcdFx0XHRjb25zdCBicmFja2V0cyA9IFtbJygnLCAnKSddLCBbJ3snLCAnfSddLCBbJ1snLCAnXSddXTtcclxuXHRcdFx0XHRcdFx0XHRpZiAoIWJyYWNrZXRzLnNvbWUoZSA9PiB0aGlzLnVuY2xvc2VkX2JyYWNrZXQoZWRpdG9yLCBlWzBdLCBlWzFdLCBwb3NpdGlvbi5jaCwgbGFzdF9zdXBlcnNjcmlwdClbMF0pKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5hdXRvRW5jbG9zZVN1cChlZGl0b3IsIGV2ZW50LCBsYXN0X3N1cGVyc2NyaXB0KTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHRcdC8vIHBlcmZvcm0gYXV0b0ZyYWN0aW9uXHJcblx0XHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5hdXRvRnJhY3Rpb25fdG9nZ2xlICYmICF0aGlzLndpdGhpblRleHQoZWRpdG9yLCBsYXN0X2RpdmlkZSkpIHtcclxuXHRcdFx0XHRcdFx0aWYgKGxhc3RfZGl2aWRlID4gbGFzdF9kb2xsYXIpIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCBicmFja2V0cyA9IFtbJygnLCAnKSddLCBbJ3snLCAnfSddLCBbJ1snLCAnXSddXTtcclxuXHRcdFx0XHRcdFx0XHQvLyBpZiBhbnkgYnJhY2tldHMgaW4gZGVub21pbmF0b3Igc3RpbGwgdW5jbG9zZWQsIGRvbnQgZG8gYXV0b0ZyYWN0aW9uIHlldFxyXG5cdFx0XHRcdFx0XHRcdGlmICghYnJhY2tldHMuc29tZShlID0+IHRoaXMudW5jbG9zZWRfYnJhY2tldChlZGl0b3IsIGVbMF0sIGVbMV0sIHBvc2l0aW9uLmNoLCBsYXN0X2RpdmlkZSlbMF0pKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5hdXRvRnJhY3Rpb25DTTYoZWRpdG9yLCBsYXN0X3N1cGVyc2NyaXB0KTtcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0fTtcclxuXHJcblx0XHRcdFx0XHQvLyBwZXJmb3JtIGF1dG9MYXJnZUJyYWNrZXRcclxuXHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmF1dG9MYXJnZUJyYWNrZXRfdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRcdGxldCBzeW1ib2xfYmVmb3JlID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gMSB9LFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0pXHJcblx0XHRcdFx0XHRcdGlmIChzeW1ib2xfYmVmb3JlID09ICcpJyB8fCBzeW1ib2xfYmVmb3JlID09ICddJykge1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmF1dG9MYXJnZUJyYWNrZXQoZWRpdG9yLCBldmVudCk7XHJcblx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Ly8gcGVyZm9ybSBhdXRvQWxpZ25cclxuXHRcdFx0XHRcdGlmICh0aGlzLmF1dG9BbGlnbl9hcnJheSkge1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy53aXRoaW5BbnlCcmFja2V0c19kb2N1bWVudChcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3IsXHJcblx0XHRcdFx0XHRcdFx0J1xcXFxiZWdpbnsnICsgdGhpcy5zZXR0aW5ncy5hZGRBbGlnbkJsb2NrX3BhcmFtZXRlcixcclxuXHRcdFx0XHRcdFx0XHQnXFxcXGVuZHsnICsgdGhpcy5zZXR0aW5ncy5hZGRBbGlnbkJsb2NrX3BhcmFtZXRlcilcclxuXHRcdFx0XHRcdFx0KSB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IGtleXdvcmQ6c3RyaW5nID0gXCJcIjtcclxuXHRcdFx0XHRcdFx0XHRsZXQga2V5d29yZF9sZW5ndGg6bnVtYmVyID0gMDtcclxuXHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMCA7IGkgPCB0aGlzLmF1dG9BbGlnbl9hcnJheS5sZW5ndGggOyBpKyspIHtcclxuXHRcdFx0XHRcdFx0XHRcdGtleXdvcmRfbGVuZ3RoID0gdGhpcy5hdXRvQWxpZ25fYXJyYXlbaV0ubGVuZ3RoO1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCBrZXl3b3JkX2xlbmd0aCA+IHBvc2l0aW9uLmNoKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0a2V5d29yZCA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIGtleXdvcmRfbGVuZ3RoIH0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoa2V5d29yZCA9PSB0aGlzLmF1dG9BbGlnbl9hcnJheVtpXSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKCcmJywgeyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSBrZXl3b3JkX2xlbmd0aCB9KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRrZXk6ICdTaGlmdC1TcGFjZScsXHJcblx0XHRcdHJ1bjogKCk6IGJvb2xlYW4gPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpXHJcblx0XHRcdFx0aWYgKCF2aWV3KSByZXR1cm4gZmFsc2VcclxuXHJcblx0XHRcdFx0Y29uc3QgZWRpdG9yICA9IHZpZXcuZWRpdG9yXHJcblxyXG5cdFx0XHRcdGlmICghdGhpcy5zZXR0aW5ncy5jdXN0b21TaG9ydGhhbmRfdG9nZ2xlKSByZXR1cm4gZmFsc2U7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0aWYgKHRoaXMud2l0aGluTWF0aChlZGl0b3IpKSB7XHJcblx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHJcblx0XHRcdFx0XHQvLyBjaGVjayBmb3IgY3VzdG9tIHNob3J0aGFuZFxyXG5cdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuY3VzdG9tU2hvcnRoYW5kX3RvZ2dsZSAmJiAhdGhpcy53aXRoaW5UZXh0KGVkaXRvciwgcG9zaXRpb24uY2gpKSB7XHJcblx0XHRcdFx0XHRcdGxldCBrZXl3b3JkOnN0cmluZyA9IFwiXCI7XHJcblx0XHRcdFx0XHRcdGxldCBrZXl3b3JkX2xlbmd0aDpudW1iZXIgPSAwO1xyXG5cdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMCA7IGkgPCB0aGlzLnNob3J0aGFuZF9hcnJheS5sZW5ndGggOyBpKyspIHtcclxuXHRcdFx0XHRcdFx0XHRrZXl3b3JkX2xlbmd0aCA9IHRoaXMuc2hvcnRoYW5kX2FycmF5W2ldWzBdLmxlbmd0aDtcclxuXHRcdFx0XHRcdFx0XHRpZiAoIGtleXdvcmRfbGVuZ3RoID4gcG9zaXRpb24uY2gpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoIGtleXdvcmRfbGVuZ3RoID09IHBvc2l0aW9uLmNoICkge1xyXG5cdFx0XHRcdFx0XHRcdFx0a2V5d29yZCA9IFwiQFwiICsgZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIGtleXdvcmRfbGVuZ3RoIH0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0pO1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRrZXl3b3JkID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIGtleXdvcmRfbGVuZ3RoIC0gMSB9LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9KTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0aWYgKGtleXdvcmRbMF0udG9Mb3dlckNhc2UoKSA9PSBrZXl3b3JkWzBdLnRvVXBwZXJDYXNlKCkgfHwgXHJcblx0XHRcdFx0XHRcdFx0XHRrZXl3b3JkWzBdID09IFwiQFwiICkge1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKHRoaXMuc2hvcnRoYW5kX2FycmF5W2ldWzBdID09IGtleXdvcmQuc2xpY2UoLSBrZXl3b3JkX2xlbmd0aCkgJiYgXHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuc2hvcnRoYW5kX2FycmF5W2ldWzFdICE9IGtleXdvcmQpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgcmVwbGFjZV9zbGFzaCA9IChrZXl3b3JkWzBdPT1cIlxcXFxcIiAmJiB0aGlzLnNob3J0aGFuZF9hcnJheVtpXVsxXVswXT09XCJcXFxcXCIpID8gMSA6IDA7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHNldF9jdXJzb3JfcG9zaXRpb24gPSB0aGlzLnNob3J0aGFuZF9hcnJheVtpXVsxXS5pbmRleE9mKFwiI2N1cnNvclwiKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZSh0aGlzLnNob3J0aGFuZF9hcnJheVtpXVsxXSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIGtleXdvcmRfbGVuZ3RoIC0gcmVwbGFjZV9zbGFzaCB9LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0pO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoc2V0X2N1cnNvcl9wb3NpdGlvbiAhPSAtMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlUmFuZ2UoXCJcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaCAtIGtleXdvcmRfbGVuZ3RoIC0gcmVwbGFjZV9zbGFzaCArIHNldF9jdXJzb3JfcG9zaXRpb259LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoIC0ga2V5d29yZF9sZW5ndGggLSByZXBsYWNlX3NsYXNoICsgc2V0X2N1cnNvcl9wb3NpdGlvbis3fSk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaCAtIGtleXdvcmRfbGVuZ3RoIC0gcmVwbGFjZV9zbGFzaCArIHNldF9jdXJzb3JfcG9zaXRpb259KVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHRoaXMuc2hvcnRoYW5kX2FycmF5W2ldWzFdLnNsaWNlKC0yKSA9PSBcInt9XCIpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNoOiBwb3NpdGlvbi5jaCArIHRoaXMuc2hvcnRoYW5kX2FycmF5W2ldWzFdLmxlbmd0aCAtIGtleXdvcmRfbGVuZ3RoIC0gMSAtIHJlcGxhY2Vfc2xhc2h9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9XHJcblx0XHR9LFx0XHRcdFxyXG5cclxuXHRcdHtcclxuXHRcdFx0a2V5OiAnRW50ZXInLFxyXG5cdFx0XHRydW46ICgpOiBib29sZWFuID0+IHtcclxuXHRcdFx0XHRjb25zdCB2aWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KVxyXG5cdFx0XHRcdGlmICghdmlldykgcmV0dXJuIGZhbHNlXHJcblx0XHRcdFx0Y29uc3QgZWRpdG9yICA9IHZpZXcuZWRpdG9yXHJcblx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYWRkQWxpZ25CbG9ja190b2dnbGUgJiYgdGhpcy5zZXR0aW5ncy5zaGlmdEVudGVyX3RvZ2dsZT09ZmFsc2UpIHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLndpdGhpbkFueUJyYWNrZXRzX2RvY3VtZW50KFxyXG5cdFx0XHRcdFx0XHRlZGl0b3IsXHJcblx0XHRcdFx0XHRcdCdcXFxcYmVnaW57JyArIHRoaXMuc2V0dGluZ3MuYWRkQWxpZ25CbG9ja19wYXJhbWV0ZXIsXHJcblx0XHRcdFx0XHRcdCdcXFxcZW5keycgKyB0aGlzLnNldHRpbmdzLmFkZEFsaWduQmxvY2tfcGFyYW1ldGVyKVxyXG5cdFx0XHRcdFx0KSB7XHJcblx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKCdcXFxcXFxcXFxcbicpXHJcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYWRkQ2FzZXNCbG9ja190b2dnbGUgJiYgdGhpcy5zZXR0aW5ncy5zaGlmdEVudGVyX3RvZ2dsZT09ZmFsc2UpIHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLndpdGhpbkFueUJyYWNrZXRzX2RvY3VtZW50KFxyXG5cdFx0XHRcdFx0XHRlZGl0b3IsXHJcblx0XHRcdFx0XHRcdCdcXFxcYmVnaW57Y2FzZXN9JyxcclxuXHRcdFx0XHRcdFx0J1xcXFxlbmR7Y2FzZXN9J1xyXG5cdFx0XHRcdFx0KSkge1xyXG5cdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbignIFxcXFxcXFxcXFxuJylcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5hZGRNYXRyaXhCbG9ja190b2dnbGUpIHtcclxuXHRcdFx0XHRcdGNvbnN0IGJlZ2luX21hdHJpeCA9IFsnXFxcXGJlZ2lueycgKyB0aGlzLnNldHRpbmdzLmFkZE1hdHJpeEJsb2NrX3BhcmFtZXRlcisnfScsIFwiXFxcXGJlZ2lue21hdHJpeH1cIixcIlxcXFxiZWdpbntibWF0cml4fVwiLCBcIlxcXFxiZWdpbntCbWF0cml4fVwiLCBcIlxcXFxiZWdpbnt2bWF0cml4fVwiLCBcIlxcXFxiZWdpbntWbWF0cml4fVwiLCBcIlxcXFxiZWdpbntzbWFsbG1hdHJpeH1cIl1cclxuXHRcdFx0XHRcdGNvbnN0IGVuZF9tYXRyaXggPSBbJ1xcXFxlbmR7JyArIHRoaXMuc2V0dGluZ3MuYWRkTWF0cml4QmxvY2tfcGFyYW1ldGVyKyd9JywgXCJcXFxcZW5ke21hdHJpeH1cIixcIlxcXFxlbmR7Ym1hdHJpeH1cIiwgXCJcXFxcZW5ke0JtYXRyaXh9XCIsIFwiXFxcXGVuZHt2bWF0cml4fVwiLCBcIlxcXFxlbmR7Vm1hdHJpeH1cIiwgXCJcXFxcZW5ke3NtYWxsbWF0cml4fVwiXVxyXG5cdFx0XHRcdFx0bGV0IHN0YXRlID0gZmFsc2VcclxuXHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYmVnaW5fbWF0cml4Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLndpdGhpbkFueUJyYWNrZXRzX2RvY3VtZW50KGVkaXRvciwgYmVnaW5fbWF0cml4W2ldLCBlbmRfbWF0cml4W2ldKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0c3RhdGUgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKHN0YXRlKSB7XHJcblx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKCcgXFxcXFxcXFwgJylcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWVcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC8vIGRvdWJsZSBlbnRlciBmb3IgJCRcclxuXHRcdFx0XHRpZiAodGhpcy53aXRoaW5NYXRoKGVkaXRvcikpIHtcclxuXHRcdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0XHRcdFx0Y29uc3QgcHJldjJfQ2hhciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSAyIH0sXHJcblx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0pXHJcblx0XHRcdFx0XHRjb25zdCBuZXh0Ml9DaGFyID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9LFxyXG5cdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCArIDIgfSlcclxuXHRcdFx0XHRcdGlmIChwcmV2Ml9DaGFyPT1cIiQkXCImJm5leHQyX0NoYXI9PVwiJCRcIikge1xyXG5cdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbignXFxuJylcclxuXHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcihwb3NpdGlvbilcclxuXHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlXHJcblx0XHRcdFx0XHR9XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRrZXk6ICdTaGlmdC1FbnRlcicsXHJcblx0XHRcdHJ1bjogKCk6IGJvb2xlYW4gPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpXHJcblx0XHRcdFx0aWYgKCF2aWV3KSByZXR1cm4gZmFsc2VcclxuXHRcdFx0XHRjb25zdCBlZGl0b3IgID0gdmlldy5lZGl0b3JcclxuXHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5hZGRBbGlnbkJsb2NrX3RvZ2dsZSAmJiB0aGlzLnNldHRpbmdzLnNoaWZ0RW50ZXJfdG9nZ2xlPT10cnVlKSB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy53aXRoaW5BbnlCcmFja2V0c19kb2N1bWVudChcclxuXHRcdFx0XHRcdFx0ZWRpdG9yLFxyXG5cdFx0XHRcdFx0XHQnXFxcXGJlZ2lueycgKyB0aGlzLnNldHRpbmdzLmFkZEFsaWduQmxvY2tfcGFyYW1ldGVyLFxyXG5cdFx0XHRcdFx0XHQnXFxcXGVuZHsnICsgdGhpcy5zZXR0aW5ncy5hZGRBbGlnbkJsb2NrX3BhcmFtZXRlcilcclxuXHRcdFx0XHRcdCkge1xyXG5cdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbignXFxcXFxcXFxcXG4nKVxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmFkZENhc2VzQmxvY2tfdG9nZ2xlICYmIHRoaXMuc2V0dGluZ3Muc2hpZnRFbnRlcl90b2dnbGU9PXRydWUpIHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLndpdGhpbkFueUJyYWNrZXRzX2RvY3VtZW50KFxyXG5cdFx0XHRcdFx0XHRlZGl0b3IsXHJcblx0XHRcdFx0XHRcdCdcXFxcYmVnaW57Y2FzZXN9JyxcclxuXHRcdFx0XHRcdFx0J1xcXFxlbmR7Y2FzZXN9J1xyXG5cdFx0XHRcdFx0KSkge1xyXG5cdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbignIFxcXFxcXFxcXFxuJylcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0a2V5OiAneycsXHJcblx0XHRcdHJ1bjogKCk6IGJvb2xlYW4gPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpXHJcblx0XHRcdFx0aWYgKCF2aWV3KSByZXR1cm4gZmFsc2VcclxuXHJcblx0XHRcdFx0Y29uc3QgZWRpdG9yICA9IHZpZXcuZWRpdG9yXHJcblxyXG5cdFx0XHRcdGlmICh0aGlzLndpdGhpbk1hdGgoZWRpdG9yKSkge1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYXV0b0Nsb3NlQ3VybHlfdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRcdGlmIChlZGl0b3IuZ2V0U2VsZWN0aW9uKCkubGVuZ3RoID4gMCkge3JldHVybiBmYWxzZX07XHJcblx0XHRcdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBicmFja2V0cyA9IFtbJygnLCAnKSddLCBbJ3snLCAnfSddLCBbJ1snLCAnXSddXTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgbmV4dF9jaGFyID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0sXHJcblx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2grMSB9KTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgbmV4dF8yY2hhciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9LFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoKzIgfSk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IGZvbGxvd2VkX2J5XyRzcGFjZXRhYm5vbmVkb3VibGVzbGFzaCA9IChbJyQnLCcgJywnXHQnLCcnXS5jb250YWlucyhuZXh0X2NoYXIpIHx8IG5leHRfMmNoYXIgPT0gJ1xcXFxcXFxcJyk7XHJcblx0XHRcdFx0XHRcdGlmICghdGhpcy53aXRoaW5BbnlCcmFja2V0c19pbmxpbmUoZWRpdG9yLCBicmFja2V0cykgJiYgZm9sbG93ZWRfYnlfJHNwYWNldGFibm9uZWRvdWJsZXNsYXNoKSB7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oJ3t9Jyk7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaCsxfSk7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH07XHJcblx0XHRcdFx0cmV0dXJuIGZhbHNlXHJcblx0XHRcdH0sXHJcblxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0a2V5OiAnWycsXHJcblx0XHRcdHJ1bjogKCk6IGJvb2xlYW4gPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpXHJcblx0XHRcdFx0aWYgKCF2aWV3KSByZXR1cm4gZmFsc2VcclxuXHJcblx0XHRcdFx0Y29uc3QgZWRpdG9yICA9IHZpZXcuZWRpdG9yXHJcblxyXG5cdFx0XHRcdGlmICh0aGlzLndpdGhpbk1hdGgoZWRpdG9yKSkge1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYXV0b0Nsb3NlU3F1YXJlX3RvZ2dsZSkge1xyXG5cdFx0XHRcdFx0XHRpZiAoZWRpdG9yLmdldFNlbGVjdGlvbigpLmxlbmd0aCA+IDApIHtyZXR1cm4gZmFsc2V9O1xyXG5cdFx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgYnJhY2tldHMgPSBbWycoJywgJyknXSwgWyd7JywgJ30nXSwgWydbJywgJ10nXV07XHJcblx0XHRcdFx0XHRcdGNvbnN0IG5leHRfY2hhciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9LFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoKzEgfSk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IG5leHRfMmNoYXIgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSxcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCsyIH0pO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBmb2xsb3dlZF9ieV8kc3BhY2V0YWJub25lZG91Ymxlc2xhc2ggPSAoWyckJywnICcsJ1x0JywnJ10uY29udGFpbnMobmV4dF9jaGFyKSB8fCBuZXh0XzJjaGFyID09ICdcXFxcXFxcXCcpO1xyXG5cdFx0XHRcdFx0XHRpZiAoIXRoaXMud2l0aGluQW55QnJhY2tldHNfaW5saW5lKGVkaXRvciwgYnJhY2tldHMpICYmIGZvbGxvd2VkX2J5XyRzcGFjZXRhYm5vbmVkb3VibGVzbGFzaCkge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKCdbXScpO1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2grMX0pO1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0a2V5OiAnKCcsXHJcblx0XHRcdHJ1bjogKCk6IGJvb2xlYW4gPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpXHJcblx0XHRcdFx0aWYgKCF2aWV3KSByZXR1cm4gZmFsc2VcclxuXHJcblx0XHRcdFx0Y29uc3QgZWRpdG9yICA9IHZpZXcuZWRpdG9yXHJcblxyXG5cdFx0XHRcdGlmICh0aGlzLndpdGhpbk1hdGgoZWRpdG9yKSkge1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYXV0b0Nsb3NlUm91bmRfdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRcdGlmIChlZGl0b3IuZ2V0U2VsZWN0aW9uKCkubGVuZ3RoID4gMCkge3JldHVybiBmYWxzZX07XHJcblx0XHRcdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBicmFja2V0cyA9IFtbJygnLCAnKSddLCBbJ3snLCAnfSddLCBbJ1snLCAnXSddXTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgbmV4dF9jaGFyID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0sXHJcblx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2grMSB9KTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgbmV4dF8yY2hhciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9LFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoKzIgfSk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IGZvbGxvd2VkX2J5XyRzcGFjZXRhYm5vbmVkb3VibGVzbGFzaCA9IChbJyQnLCcgJywnXHQnLCcnXS5jb250YWlucyhuZXh0X2NoYXIpIHx8IG5leHRfMmNoYXIgPT0gJ1xcXFxcXFxcJyk7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRpZiAoIXRoaXMud2l0aGluQW55QnJhY2tldHNfaW5saW5lKGVkaXRvciwgYnJhY2tldHMpICYmIGZvbGxvd2VkX2J5XyRzcGFjZXRhYm5vbmVkb3VibGVzbGFzaCkge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKCcoKScpO1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2grMX0pO1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdGtleTogJ30nLFxyXG5cdFx0XHRydW46ICgpOiBib29sZWFuID0+IHtcclxuXHRcdFx0XHRjb25zdCB2aWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KVxyXG5cdFx0XHRcdGlmICghdmlldykgcmV0dXJuIGZhbHNlXHJcblxyXG5cdFx0XHRcdGNvbnN0IGVkaXRvciAgPSB2aWV3LmVkaXRvclxyXG5cclxuXHRcdFx0XHRpZiAodGhpcy53aXRoaW5NYXRoKGVkaXRvcikpIHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmF1dG9DbG9zZUN1cmx5X3RvZ2dsZSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgZW5kID0gZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSkubGVuZ3RoXHJcblx0XHRcdFx0XHRcdGNvbnN0IG5leHRfc3ltID0gZWRpdG9yLmdldFJhbmdlKHtsaW5lOnBvc2l0aW9uLmxpbmUsY2g6cG9zaXRpb24uY2h9LHtsaW5lOnBvc2l0aW9uLmxpbmUsY2g6cG9zaXRpb24uY2grMX0pXHJcblx0XHRcdFx0XHRcdGlmICghdGhpcy51bmNsb3NlZF9icmFja2V0KGVkaXRvciwgXCJ7XCIsIFwifVwiLCBlbmQsIDApWzBdICYmXHJcblx0XHRcdFx0XHRcdCAhdGhpcy51bmNsb3NlZF9icmFja2V0KGVkaXRvciwgXCJ7XCIsIFwifVwiLCBlbmQsIDAsIGZhbHNlKVswXSAmJlxyXG5cdFx0XHRcdFx0XHQgbmV4dF9zeW0gPT0gXCJ9XCIpIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsY2g6cG9zaXRpb24uY2grMX0pXHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0a2V5OiAnXScsXHJcblx0XHRcdHJ1bjogKCk6IGJvb2xlYW4gPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpXHJcblx0XHRcdFx0aWYgKCF2aWV3KSByZXR1cm4gZmFsc2VcclxuXHJcblx0XHRcdFx0Y29uc3QgZWRpdG9yICA9IHZpZXcuZWRpdG9yXHJcblxyXG5cdFx0XHRcdGlmICh0aGlzLndpdGhpbk1hdGgoZWRpdG9yKSkge1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYXV0b0Nsb3NlU3F1YXJlX3RvZ2dsZSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgZW5kID0gZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSkubGVuZ3RoXHJcblx0XHRcdFx0XHRcdGNvbnN0IG5leHRfc3ltID0gZWRpdG9yLmdldFJhbmdlKHtsaW5lOnBvc2l0aW9uLmxpbmUsY2g6cG9zaXRpb24uY2h9LHtsaW5lOnBvc2l0aW9uLmxpbmUsY2g6cG9zaXRpb24uY2grMX0pXHJcblx0XHRcdFx0XHRcdGlmICghdGhpcy51bmNsb3NlZF9icmFja2V0KGVkaXRvciwgXCJbXCIsIFwiXVwiLCBlbmQsIDApWzBdICYmXHJcblx0XHRcdFx0XHRcdCAhdGhpcy51bmNsb3NlZF9icmFja2V0KGVkaXRvciwgXCJbXCIsIFwiXVwiLCBlbmQsIDAsIGZhbHNlKVswXSAmJlxyXG5cdFx0XHRcdFx0XHQgbmV4dF9zeW0gPT0gXCJdXCIpIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsY2g6cG9zaXRpb24uY2grMX0pXHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZVxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0a2V5OiAnKScsXHJcblx0XHRcdHJ1bjogKCk6IGJvb2xlYW4gPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlVmlld09mVHlwZShNYXJrZG93blZpZXcpXHJcblx0XHRcdFx0aWYgKCF2aWV3KSByZXR1cm4gZmFsc2VcclxuXHJcblx0XHRcdFx0Y29uc3QgZWRpdG9yICA9IHZpZXcuZWRpdG9yXHJcblxyXG5cdFx0XHRcdGlmICh0aGlzLndpdGhpbk1hdGgoZWRpdG9yKSkge1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYXV0b0Nsb3NlUm91bmRfdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBlbmQgPSBlZGl0b3IuZ2V0TGluZShwb3NpdGlvbi5saW5lKS5sZW5ndGhcclxuXHRcdFx0XHRcdFx0Y29uc3QgbmV4dF9zeW0gPSBlZGl0b3IuZ2V0UmFuZ2Uoe2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaH0se2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaCsxfSlcclxuXHRcdFx0XHRcdFx0aWYgKCF0aGlzLnVuY2xvc2VkX2JyYWNrZXQoZWRpdG9yLCBcIihcIiwgXCIpXCIsIGVuZCwgMClbMF0gJiZcclxuXHRcdFx0XHRcdFx0ICF0aGlzLnVuY2xvc2VkX2JyYWNrZXQoZWRpdG9yLCBcIihcIiwgXCIpXCIsIGVuZCwgMCwgZmFsc2UpWzBdICYmXHJcblx0XHRcdFx0XHRcdCBuZXh0X3N5bSA9PSBcIilcIikge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaCsxfSlcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH07XHJcblx0XHRcdFx0cmV0dXJuIGZhbHNlXHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRrZXk6ICdtJyxcclxuXHRcdFx0cnVuOiAoKTogYm9vbGVhbiA9PiB7XHJcblx0XHRcdFx0Y29uc3QgdmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldylcclxuXHRcdFx0XHRpZiAoIXZpZXcpIHJldHVybiBmYWxzZVxyXG5cclxuXHRcdFx0XHRjb25zdCBlZGl0b3IgID0gdmlldy5lZGl0b3JcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRpZiAoIXRoaXMud2l0aGluTWF0aChlZGl0b3IpKSByZXR1cm4gZmFsc2VcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHJcblx0XHRcdFx0aWYgKCF0aGlzLnNldHRpbmdzLmF1dG9TdW1MaW1pdF90b2dnbGUpIHJldHVybjtcclxuXHRcdFx0XHRpZiAodGhpcy53aXRoaW5NYXRoKGVkaXRvcikpIHtcclxuXHRcdFx0XHRcdGlmIChlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gMyB9LFxyXG5cdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9KSA9PSAnXFxcXHN1Jykge1xyXG5cdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbignbVxcXFxsaW1pdHMnKVxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHRyZXR1cm4gZmFsc2VcclxuXHRcdFx0fSxcclxuXHRcdH0sXHJcblx0XSkpO1xyXG5cclxuXHRhc3luYyBvbmxvYWQoKSB7XHJcblx0XHRjb25zb2xlLmxvZygnbG9hZGluZyBRdWljay1MYXRleCBwbHVnaW4nKTtcclxuXHJcblx0XHR0aGlzLnJlZ2lzdGVyRWRpdG9yRXh0ZW5zaW9uKHRoaXMubWFrZUV4dGVuc2lvblRoaW5nKCkpO1xyXG5cclxuXHRcdGF3YWl0IHRoaXMubG9hZFNldHRpbmdzKCk7XHJcblxyXG5cdFx0Ly8gcHJlcHJvY2VzcyBzaG9ydGhhbmQgYXJyYXlcclxuXHRcdGxldCBzaG9ydGhhbmRzID0gdGhpcy5zZXR0aW5ncy5jdXN0b21TaG9ydGhhbmRfcGFyYW1ldGVyXHJcblx0XHR3aGlsZShzaG9ydGhhbmRzLnNsaWNlKC0xKT09XCJcXG5cIil7XHJcblx0XHRcdHNob3J0aGFuZHMgPSBzaG9ydGhhbmRzLnNsaWNlKDAsLTEpXHJcblx0XHR9XHJcblx0XHRpZihzaG9ydGhhbmRzLnNsaWNlKC0xKT09XCI7XCIpe1xyXG5cdFx0XHRzaG9ydGhhbmRzID0gc2hvcnRoYW5kcy5zbGljZSgwLC0xKVxyXG5cdFx0fVxyXG5cdFx0aWYoc2hvcnRoYW5kcy5sYXN0SW5kZXhPZihcIjtcXG5cIik9PS0xKXtcclxuXHRcdFx0dGhpcy5zaG9ydGhhbmRfYXJyYXkgPSBzaG9ydGhhbmRzLnNwbGl0KFwiLFwiKS5tYXAoaXRlbT0+aXRlbS5zcGxpdChcIjpcIikubWFwKGl0ZW09Pml0ZW0udHJpbSgpKSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnNob3J0aGFuZF9hcnJheSA9IHNob3J0aGFuZHMuc3BsaXQoXCI7XFxuXCIpLm1hcChpdGVtPT5pdGVtLnNwbGl0KFwiOlwiKSk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC8vIHByZXByb2Nlc3MgYXV0b0FsaWduIGFycmF5XHJcblx0XHR0aGlzLmF1dG9BbGlnbl9hcnJheSA9IHRoaXMuc2V0dGluZ3MuYXV0b0FsaWduU3ltYm9scy5zcGxpdChcIiBcIik7XHJcblxyXG5cdFx0dGhpcy5hcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLnJlZ2lzdGVyQ29kZU1pcnJvcigoY206IENvZGVNaXJyb3IuRWRpdG9yKSA9PiB7XHJcblx0XHRcdFx0Y20ub24oJ3ZpbS1tb2RlLWNoYW5nZScsIHRoaXMuaGFuZGxlVmltTW9kZUNoYW5nZSk7XHJcblx0XHRcdFx0Y20ub24oJ2tleWRvd24nLCB0aGlzLmhhbmRsZUtleURvd24pO1xyXG5cdFx0XHRcdGNtLm9uKCdrZXlwcmVzcycsIHRoaXMuaGFuZGxlS2V5UHJlc3MpO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHR9KTtcclxuXHRcdFx0dGhpcy5hZGRTZXR0aW5nVGFiKG5ldyBRdWlja0xhdGV4U2V0dGluZ1RhYih0aGlzLmFwcCwgdGhpcykpO1xyXG5cclxuXHRcdFx0dGhpcy5hZGRDb21tYW5kKHtcclxuXHRcdFx0XHRpZDogJ2FkZEFsaWduQmxvY2snLFxyXG5cdFx0XHRcdG5hbWU6ICdBZGQgQWxpZ24gQmxvY2snLFxyXG5cdFx0XHRcdGhvdGtleXM6IFtcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0bW9kaWZpZXJzOiBbJ0FsdCcsICdTaGlmdCddLFxyXG5cdFx0XHRcdFx0XHRrZXk6ICdBJyxcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XSxcclxuXHRcdFx0XHRlZGl0b3JDYWxsYmFjazogKGVkaXRvcikgPT4gdGhpcy5hZGRBbGlnbkJsb2NrKGVkaXRvciksXHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdFx0dGhpcy5hZGRDb21tYW5kKHtcclxuXHRcdFx0XHRpZDogJ2FkZE1hdHJpeEJsb2NrJyxcclxuXHRcdFx0XHRuYW1lOiAnQWRkIE1hdHJpeCBCbG9jaycsXHJcblx0XHRcdFx0aG90a2V5czogW1xyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRtb2RpZmllcnM6IFsnQWx0JywgJ1NoaWZ0J10sXHJcblx0XHRcdFx0XHRcdGtleTogJ00nLFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRdLFxyXG5cdFx0XHRcdGVkaXRvckNhbGxiYWNrOiAoZWRpdG9yKSA9PiB0aGlzLmFkZE1hdHJpeEJsb2NrKGVkaXRvciksXHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdFx0dGhpcy5hZGRDb21tYW5kKHtcclxuXHRcdFx0XHRpZDogJ2FkZENhc2VzQmxvY2snLFxyXG5cdFx0XHRcdG5hbWU6ICdBZGQgQ2FzZXMgQmxvY2snLFxyXG5cdFx0XHRcdGhvdGtleXM6IFtcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0bW9kaWZpZXJzOiBbJ0FsdCcsICdTaGlmdCddLFxyXG5cdFx0XHRcdFx0XHRrZXk6ICdDJyxcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XSxcclxuXHRcdFx0XHRlZGl0b3JDYWxsYmFjazogKGVkaXRvcikgPT4gdGhpcy5hZGRDYXNlc0Jsb2NrKGVkaXRvciksXHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHJlYWRvbmx5IGhhbmRsZVZpbU1vZGVDaGFuZ2UgPSAoXHJcbiAgICAgICAgbW9kZU9iajogYW55XHJcbiAgICApIDogdm9pZCA9PiB7XHJcbiAgICAgICAgaWYgKCFtb2RlT2JqIHx8IG1vZGVPYmoubW9kZSA9PT0gJ2luc2VydCcpXHJcbiAgICAgICAgICAgIHRoaXMudmltQWxsb3dfYXV0b0Nsb3NlTWF0aCA9IHRydWU7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLnZpbUFsbG93X2F1dG9DbG9zZU1hdGggPSBmYWxzZTtcclxuICAgIH07XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlS2V5RG93biA9IChcclxuXHRcdGNtOiBDb2RlTWlycm9yLkVkaXRvcixcclxuXHRcdGV2ZW50OiBLZXlib2FyZEV2ZW50LFxyXG5cdCk6IHZvaWQgPT4ge1xyXG5cdFx0Y29uc3QgdmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldyk7XHJcblx0XHRpZiAoIXZpZXcpIHJldHVybjtcclxuXHJcblx0XHRjb25zdCBlZGl0b3IgPSB2aWV3LmVkaXRvcjtcclxuXHJcblx0XHRpZiAoWyckJywgJyAnLCAnRW50ZXInLCAnVGFiJ10uY29udGFpbnMoZXZlbnQua2V5KSkge1xyXG5cdFx0XHRzd2l0Y2ggKGV2ZW50LmtleSkge1xyXG5cdFx0XHRcdGNhc2UgJyQnOlxyXG5cdFx0XHRcdFx0aWYgKGVkaXRvci5nZXRTZWxlY3Rpb24oKS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmVuY2xvc2VTZWxlY3Rpb25fdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgYW5jaG9yID0gZWRpdG9yLmdldEN1cnNvcihcImFuY2hvclwiKTtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCBoZWFkID0gZWRpdG9yLmdldEN1cnNvcihcImhlYWRcIik7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oJyQnICsgZWRpdG9yLmdldFNlbGVjdGlvbigpICsgJyQnKVxyXG5cdFx0XHRcdFx0XHRcdGlmIChhbmNob3IubGluZSA+IGhlYWQubGluZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldFNlbGVjdGlvbih7bGluZTphbmNob3IubGluZSxjaDphbmNob3IuY2h9LHtsaW5lOmhlYWQubGluZSxjaDpoZWFkLmNoKzF9KVxyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoYW5jaG9yLmxpbmUgPCBoZWFkLmxpbmUpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRTZWxlY3Rpb24oe2xpbmU6YW5jaG9yLmxpbmUsY2g6YW5jaG9yLmNoKzF9LHtsaW5lOmhlYWQubGluZSxjaDpoZWFkLmNofSlcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldFNlbGVjdGlvbih7bGluZTphbmNob3IubGluZSxjaDphbmNob3IuY2grMX0se2xpbmU6aGVhZC5saW5lLGNoOmhlYWQuY2grMX0pXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHR9IFxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0Ly8gY2xvc2UgbWF0aCBzeW1ib2xcclxuXHRcdFx0XHRcdFx0Y29uc3QgcG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKClcclxuXHRcdFx0XHRcdFx0Y29uc3QgcHJldl9jaGFyID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdHtsaW5lOnBvc2l0aW9uLmxpbmUsY2g6cG9zaXRpb24uY2gtMX0sXHJcblx0XHRcdFx0XHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaH0pXHJcblx0XHRcdFx0XHRcdGNvbnN0IG5leHRfY2hhciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHR7bGluZTpwb3NpdGlvbi5saW5lLGNoOnBvc2l0aW9uLmNofSxcclxuXHRcdFx0XHRcdFx0XHR7bGluZTpwb3NpdGlvbi5saW5lLGNoOnBvc2l0aW9uLmNoKzF9KVxyXG5cdFx0XHRcdFx0XHRjb25zdCBuZXh0Ml9jaGFyID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdHtsaW5lOnBvc2l0aW9uLmxpbmUsY2g6cG9zaXRpb24uY2h9LFxyXG5cdFx0XHRcdFx0XHRcdHtsaW5lOnBvc2l0aW9uLmxpbmUsY2g6cG9zaXRpb24uY2grMn0pXHJcblx0XHRcdFx0XHRcdGlmIChwcmV2X2NoYXIgIT0gXCIkXCIgJiYgbmV4dF9jaGFyID09IFwiJFwiKXtcclxuXHRcdFx0XHRcdFx0XHRpZiAobmV4dDJfY2hhciA9PSBcIiQkXCIpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaCsyfSlcclxuXHRcdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSxjaDpwb3NpdGlvbi5jaCsxfSlcclxuXHRcdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBwZXJmb3JtIGF1dG9DbG9zZU1hdGhcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYXV0b0Nsb3NlTWF0aF90b2dnbGUgJiYgdGhpcy52aW1BbGxvd19hdXRvQ2xvc2VNYXRoKSB7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oXCIkXCIpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBwZXJmb3JtIG1vdmVJbnRvTWF0aFxyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5tb3ZlSW50b01hdGhfdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgcG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgdCA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gMSB9LFxyXG5cdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfSlcclxuXHRcdFx0XHRcdFx0XHRjb25zdCB0MiA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0sXHJcblx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCArIDEgfSlcclxuXHRcdFx0XHRcdFx0XHRjb25zdCB0XzIgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIDIgfSxcclxuXHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0pXHJcblx0XHRcdFx0XHRcdFx0aWYgKHQgPT0gJyQnICYmIHQyICE9ICckJykge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIDEgfSlcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHRfMiA9PSAnJCQnKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gMSB9KVxyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0XHRcdGNhc2UgJyAnOlxyXG5cdFx0XHRcdFx0aWYgKCF0aGlzLnNldHRpbmdzLmF1dG9GcmFjdGlvbl90b2dnbGUgJiZcclxuXHRcdFx0XHRcdFx0IXRoaXMuc2V0dGluZ3MuYXV0b0xhcmdlQnJhY2tldF90b2dnbGUgJiZcclxuXHRcdFx0XHRcdFx0IXRoaXMuc2V0dGluZ3MuYXV0b0VuY2xvc2VTdXBfdG9nZ2xlICYmXHJcblx0XHRcdFx0XHRcdCF0aGlzLnNldHRpbmdzLmF1dG9FbmNsb3NlU3ViX3RvZ2dsZSAmJlxyXG5cdFx0XHRcdFx0XHQhdGhpcy5zZXR0aW5ncy5jdXN0b21TaG9ydGhhbmRfdG9nZ2xlKSByZXR1cm47XHJcblxyXG5cdFx0XHRcdFx0aWYgKHRoaXMud2l0aGluTWF0aChlZGl0b3IpKSB7XHJcblxyXG5cdFx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgY3VycmVudF9saW5lID0gZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IGxhc3RfZG9sbGFyID0gY3VycmVudF9saW5lLmxhc3RJbmRleE9mKCckJywgcG9zaXRpb24uY2ggLSAxKTtcclxuXHJcblx0XHRcdFx0XHRcdC8vIGNoZWNrIGZvciBjdXN0b20gc2hvcnRoYW5kXHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmN1c3RvbVNob3J0aGFuZF90b2dnbGUgJiYgIXRoaXMud2l0aGluVGV4dChlZGl0b3IsIHBvc2l0aW9uLmNoKSkge1xyXG5cdFx0XHRcdFx0XHRcdGxldCBrZXl3b3JkOnN0cmluZyA9IFwiXCI7XHJcblx0XHRcdFx0XHRcdFx0bGV0IGtleXdvcmRfbGVuZ3RoOm51bWJlciA9IDA7XHJcblx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDAgOyBpIDwgdGhpcy5zaG9ydGhhbmRfYXJyYXkubGVuZ3RoIDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRrZXl3b3JkX2xlbmd0aCA9IHRoaXMuc2hvcnRoYW5kX2FycmF5W2ldWzBdLmxlbmd0aDtcclxuXHRcdFx0XHRcdFx0XHRcdGlmICgga2V5d29yZF9sZW5ndGggPiBwb3NpdGlvbi5jaCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoIGtleXdvcmRfbGVuZ3RoID09IHBvc2l0aW9uLmNoICkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRrZXl3b3JkID0gXCJAXCIgKyBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSBrZXl3b3JkX2xlbmd0aCB9LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0pO1xyXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0a2V5d29yZCA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIGtleXdvcmRfbGVuZ3RoIC0gMSB9LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0pO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGtleXdvcmRbMF0udG9Mb3dlckNhc2UoKSA9PSBrZXl3b3JkWzBdLnRvVXBwZXJDYXNlKCkgfHwgXHJcblx0XHRcdFx0XHRcdFx0XHRcdGtleXdvcmRbMF0gPT0gXCJAXCIgKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmICh0aGlzLnNob3J0aGFuZF9hcnJheVtpXVswXSA9PSBrZXl3b3JkLnNsaWNlKC0ga2V5d29yZF9sZW5ndGgpICYmIFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuc2hvcnRoYW5kX2FycmF5W2ldWzFdICE9IGtleXdvcmQpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zdCByZXBsYWNlX3NsYXNoID0gKGtleXdvcmRbMF09PVwiXFxcXFwiICYmIHRoaXMuc2hvcnRoYW5kX2FycmF5W2ldWzFdWzBdPT1cIlxcXFxcIikgPyAxIDogMDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zdCBzZXRfY3Vyc29yX3Bvc2l0aW9uID0gdGhpcy5zaG9ydGhhbmRfYXJyYXlbaV1bMV0uaW5kZXhPZihcIiNjdXJzb3JcIik7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZSh0aGlzLnNob3J0aGFuZF9hcnJheVtpXVsxXSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0ga2V5d29yZF9sZW5ndGggLSByZXBsYWNlX3NsYXNoIH0sXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoc2V0X2N1cnNvcl9wb3NpdGlvbiAhPSAtMSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZShcIlwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2ggLSBrZXl3b3JkX2xlbmd0aCAtIHJlcGxhY2Vfc2xhc2ggKyBzZXRfY3Vyc29yX3Bvc2l0aW9ufSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoIC0ga2V5d29yZF9sZW5ndGggLSByZXBsYWNlX3NsYXNoICsgc2V0X2N1cnNvcl9wb3NpdGlvbis3fSk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoIC0ga2V5d29yZF9sZW5ndGggLSByZXBsYWNlX3NsYXNoICsgc2V0X2N1cnNvcl9wb3NpdGlvbn0pXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLnNob3J0aGFuZF9hcnJheVtpXVsxXS5zbGljZSgtMikgPT0gXCJ7fVwiKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjaDogcG9zaXRpb24uY2ggKyB0aGlzLnNob3J0aGFuZF9hcnJheVtpXVsxXS5sZW5ndGggLSBrZXl3b3JkX2xlbmd0aCAtIDEgLSByZXBsYWNlX3NsYXNofVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH07XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBmaW5kIGxhc3QgdW5icmFja2V0ZWQgc3Vic2NyaXB0IHdpdGhpbiBsYXN0IDEwIGNoYXJhY3RlcnMgYW5kIHBlcmZvcm0gYXV0b0VuY2xvc2VTdWJcclxuXHRcdFx0XHRcdFx0Ly8gaWdub3JlIGV4cHJlc3Npb24gdGhhdCBjb250YWluICsgLSAqIC8gXlxyXG5cdFx0XHRcdFx0XHRjb25zdCBsYXN0X21hdGggPSBjdXJyZW50X2xpbmUubGFzdEluZGV4T2YoJyQnLCBwb3NpdGlvbi5jaCAtIDEpO1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5hdXRvRW5jbG9zZVN1Yl90b2dnbGUpIHtcclxuXHRcdFx0XHRcdFx0XHRsZXQgbGFzdF9zdWJzY3JpcHQgPSBjdXJyZW50X2xpbmUubGFzdEluZGV4T2YoJ18nLCBwb3NpdGlvbi5jaCk7XHJcblx0XHRcdFx0XHRcdFx0aWYgKGxhc3Rfc3Vic2NyaXB0ICE9IC0xICYmIGxhc3Rfc3Vic2NyaXB0ID4gbGFzdF9tYXRoKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBsZXR0ZXJfYWZ0ZXJfc3Vic2NyaXB0ID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X3N1YnNjcmlwdCArIDEgfSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9zdWJzY3JpcHQgKyAyIH0pO1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGxldHRlcl9hZnRlcl9zdWJzY3JpcHQgIT0gXCJ7XCIgJiYgXHJcblx0XHRcdFx0XHRcdFx0XHRcdChwb3NpdGlvbi5jaCAtIGxhc3Rfc3Vic2NyaXB0KSA8PSAxMCApIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZShcIn1cIiwgcG9zaXRpb24pO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFwie1wiLCB7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpsYXN0X3N1YnNjcmlwdCsxfSk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQvLyByZXRyaWV2ZSB0aGUgbGFzdCB1bmJyYWNrZXRlZCBzdXBlcnNjcmlwdFxyXG5cdFx0XHRcdFx0XHRsZXQgbGFzdF9zdXBlcnNjcmlwdCA9IGN1cnJlbnRfbGluZS5sYXN0SW5kZXhPZignXicsIHBvc2l0aW9uLmNoKTtcclxuXHRcdFx0XHRcdFx0d2hpbGUgKGxhc3Rfc3VwZXJzY3JpcHQgIT0gLTEpIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCB0d29fbGV0dGVyc19hZnRlcl9zdXBlcnNjcmlwdCA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3Rfc3VwZXJzY3JpcHQgKyAxIH0sXHJcblx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X3N1cGVyc2NyaXB0ICsgMyB9KTtcclxuXHRcdFx0XHRcdFx0XHRpZiAodHdvX2xldHRlcnNfYWZ0ZXJfc3VwZXJzY3JpcHRbMF0gPT0gJ3snIHx8IHR3b19sZXR0ZXJzX2FmdGVyX3N1cGVyc2NyaXB0ID09ICcgeycpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGxhc3Rfc3VwZXJzY3JpcHQgPSBjdXJyZW50X2xpbmUubGFzdEluZGV4T2YoJ14nLCBsYXN0X3N1cGVyc2NyaXB0IC0gMSk7XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmIChsYXN0X3N1cGVyc2NyaXB0IDwgbGFzdF9tYXRoKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRsYXN0X3N1cGVyc2NyaXB0ID0gLTFcclxuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdC8vIHJldHJpZXZlIHRoZSBsYXN0IGRpdmlkZSBzeW1ib2xcclxuXHRcdFx0XHRcdFx0bGV0IGxhc3RfZGl2aWRlID0gY3VycmVudF9saW5lLmxhc3RJbmRleE9mKCcvJywgcG9zaXRpb24uY2ggLSAyKTtcclxuXHJcblx0XHRcdFx0XHRcdHdoaWxlIChsYXN0X2RpdmlkZSAhPSAtMSkge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IGFyb3VuZF9kaXZpZGUgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X2RpdmlkZSAtIDEgfSxcclxuXHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3RfZGl2aWRlICsgMiB9KTtcclxuXHRcdFx0XHRcdFx0XHRpZiAoYXJvdW5kX2RpdmlkZVswXSA9PSAnICcgJiYgYXJvdW5kX2RpdmlkZVsyXSA9PSAnICcpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGxhc3RfZGl2aWRlID0gY3VycmVudF9saW5lLmxhc3RJbmRleE9mKCdeJywgbGFzdF9kaXZpZGUgLSAxKTtcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKGxhc3RfZGl2aWRlIDwgbGFzdF9tYXRoKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRsYXN0X2RpdmlkZSA9IC0xXHJcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBwZXJmb3JtIGF1dG9FbmNsb3NlU3VwXHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmF1dG9FbmNsb3NlU3VwX3RvZ2dsZSkge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChsYXN0X3N1cGVyc2NyaXB0ID4gbGFzdF9kaXZpZGUpIHtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIGlmIGFueSBicmFja2V0cyBmcm9tIGxhc3Qgc3VwIHRvIGN1cnNvciBzdGlsbCB1bmNsb3NlZCwgZG9udCBkbyBhdXRvRW5jbG9zZVN1cCB5ZXRcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGJyYWNrZXRzID0gW1snKCcsICcpJ10sIFsneycsICd9J10sIFsnWycsICddJ11dO1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCFicmFja2V0cy5zb21lKGUgPT4gdGhpcy51bmNsb3NlZF9icmFja2V0KGVkaXRvciwgZVswXSwgZVsxXSwgcG9zaXRpb24uY2gsIGxhc3Rfc3VwZXJzY3JpcHQpWzBdKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmF1dG9FbmNsb3NlU3VwKGVkaXRvciwgZXZlbnQsIGxhc3Rfc3VwZXJzY3JpcHQpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0fTtcclxuXHJcblx0XHRcdFx0XHRcdC8vIHBlcmZvcm0gYXV0b0ZyYWN0aW9uXHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmF1dG9GcmFjdGlvbl90b2dnbGUgJiYgIXRoaXMud2l0aGluVGV4dChlZGl0b3IsIGxhc3RfZGl2aWRlKSkge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChsYXN0X2RpdmlkZSA+IGxhc3RfZG9sbGFyKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBicmFja2V0cyA9IFtbJygnLCAnKSddLCBbJ3snLCAnfSddLCBbJ1snLCAnXSddXTtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIGlmIGFueSBicmFja2V0cyBpbiBkZW5vbWluYXRvciBzdGlsbCB1bmNsb3NlZCwgZG9udCBkbyBhdXRvRnJhY3Rpb24geWV0XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoIWJyYWNrZXRzLnNvbWUoZSA9PiB0aGlzLnVuY2xvc2VkX2JyYWNrZXQoZWRpdG9yLCBlWzBdLCBlWzFdLCBwb3NpdGlvbi5jaCwgbGFzdF9kaXZpZGUpWzBdKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmF1dG9GcmFjdGlvbihlZGl0b3IsIGV2ZW50LCBsYXN0X3N1cGVyc2NyaXB0KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHRcdFx0Ly8gcGVyZm9ybSBhdXRvTGFyZ2VCcmFja2V0XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmF1dG9MYXJnZUJyYWNrZXRfdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IHN5bWJvbF9iZWZvcmUgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIDEgfSxcclxuXHRcdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0pXHJcblx0XHRcdFx0XHRcdFx0aWYgKHN5bWJvbF9iZWZvcmUgPT0gJyknIHx8IHN5bWJvbF9iZWZvcmUgPT0gJ10nKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmF1dG9MYXJnZUJyYWNrZXQoZWRpdG9yLCBldmVudCk7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdFx0Y2FzZSAnRW50ZXInOlxyXG5cdFx0XHRcdFx0Ly8gcGVyZm9ybSBFbnRlciBzaG9ydGN1dCB3aXRoaW4gbWF0cml4IGJsb2NrXHJcblx0XHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5hZGRNYXRyaXhCbG9ja190b2dnbGUpIHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgYmVnaW5fbWF0cml4ID0gWydcXFxcYmVnaW57JyArIHRoaXMuc2V0dGluZ3MuYWRkTWF0cml4QmxvY2tfcGFyYW1ldGVyLCBcIlxcXFxiZWdpbnttYXRyaXh9XCIsXCJcXFxcYmVnaW57Ym1hdHJpeH1cIiwgXCJcXFxcYmVnaW57Qm1hdHJpeH1cIiwgXCJcXFxcYmVnaW57dm1hdHJpeH1cIiwgXCJcXFxcYmVnaW57Vm1hdHJpeH1cIiwgXCJcXFxcYmVnaW57c21hbGxtYXRyaXh9XCJdXHJcblx0XHRcdFx0XHRcdGNvbnN0IGVuZF9tYXRyaXggPSBbJ1xcXFxlbmR7JyArIHRoaXMuc2V0dGluZ3MuYWRkTWF0cml4QmxvY2tfcGFyYW1ldGVyLCBcIlxcXFxlbmR7bWF0cml4fVwiLFwiXFxcXGVuZHtibWF0cml4fVwiLCBcIlxcXFxlbmR7Qm1hdHJpeH1cIiwgXCJcXFxcZW5ke3ZtYXRyaXh9XCIsIFwiXFxcXGVuZHtWbWF0cml4fVwiLCBcIlxcXFxlbmR7c21hbGxtYXRyaXh9XCJdXHJcblx0XHRcdFx0XHRcdGxldCBzdGF0ZSA9IGZhbHNlXHJcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYmVnaW5fbWF0cml4Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHRoaXMud2l0aGluQW55QnJhY2tldHNfZG9jdW1lbnQoZWRpdG9yLCBiZWdpbl9tYXRyaXhbaV0sIGVuZF9tYXRyaXhbaV0pKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHN0YXRlID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0aWYgKCFldmVudC5zaGlmdEtleSkge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChzdGF0ZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oJyBcXFxcXFxcXCAnKVxyXG5cdFx0XHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC8vIHBlcmZvcm0gRW50ZXIgc2hvcnRjdXQgd2l0aGluIGFsaWduIGJsb2NrXHJcblx0XHRcdFx0XHRpZiAodGhpcy5zZXR0aW5ncy5hZGRBbGlnbkJsb2NrX3RvZ2dsZSkge1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy53aXRoaW5BbnlCcmFja2V0c19kb2N1bWVudChcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3IsXHJcblx0XHRcdFx0XHRcdFx0J1xcXFxiZWdpbnsnICsgdGhpcy5zZXR0aW5ncy5hZGRBbGlnbkJsb2NrX3BhcmFtZXRlcixcclxuXHRcdFx0XHRcdFx0XHQnXFxcXGVuZHsnICsgdGhpcy5zZXR0aW5ncy5hZGRBbGlnbkJsb2NrX3BhcmFtZXRlcilcclxuXHRcdFx0XHRcdFx0KSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKCFldmVudC5zaGlmdEtleSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oJ1xcXFxcXFxcXFxuJicpXHJcblx0XHRcdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC8vIGVudGVyIGZvciBjYXNlcyBibG9ja1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYWRkQ2FzZXNCbG9ja190b2dnbGUpIHtcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMud2l0aGluQW55QnJhY2tldHNfZG9jdW1lbnQoXHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLFxyXG5cdFx0XHRcdFx0XHRcdCdcXFxcYmVnaW57Y2FzZXN9JyxcclxuXHRcdFx0XHRcdFx0XHQnXFxcXGVuZHtjYXNlc30nXHJcblx0XHRcdFx0XHRcdCkpIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbignIFxcXFxcXFxcXFxuJylcclxuXHRcdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC8vIGRvdWJsZSBlbnRlciBmb3IgJCRcclxuXHRcdFx0XHRcdGlmICh0aGlzLndpdGhpbk1hdGgoZWRpdG9yKSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcHJldjJfQ2hhciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIDIgfSxcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9KVxyXG5cdFx0XHRcdFx0XHRjb25zdCBuZXh0Ml9DaGFyID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0sXHJcblx0XHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggKyAyIH0pXHJcblx0XHRcdFx0XHRcdGlmIChwcmV2Ml9DaGFyPT1cIiQkXCImJm5leHQyX0NoYXI9PVwiJCRcIikge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKCdcXG4nKVxyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3IocG9zaXRpb24pXHJcblx0XHRcdFx0XHRcdH1cdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHJcblx0XHRcdFx0Y2FzZSAnVGFiJzpcclxuXHRcdFx0XHRcdC8vIHBlcmZvcm0gVGFiIHNob3J0Y3V0IHdpdGhpbiBtYXRyaXggYmxvY2tcclxuXHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmFkZE1hdHJpeEJsb2NrX3RvZ2dsZSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBiZWdpbl9tYXRyaXggPSBbJ1xcXFxiZWdpbnsnICsgdGhpcy5zZXR0aW5ncy5hZGRNYXRyaXhCbG9ja19wYXJhbWV0ZXIsIFwiXFxcXGJlZ2lue21hdHJpeH1cIixcIlxcXFxiZWdpbntibWF0cml4fVwiLCBcIlxcXFxiZWdpbntCbWF0cml4fVwiLCBcIlxcXFxiZWdpbnt2bWF0cml4fVwiLCBcIlxcXFxiZWdpbntWbWF0cml4fVwiLCBcIlxcXFxiZWdpbntzbWFsbG1hdHJpeH1cIl1cclxuXHRcdFx0XHRcdFx0Y29uc3QgZW5kX21hdHJpeCA9IFsnXFxcXGVuZHsnICsgdGhpcy5zZXR0aW5ncy5hZGRNYXRyaXhCbG9ja19wYXJhbWV0ZXIsIFwiXFxcXGVuZHttYXRyaXh9XCIsXCJcXFxcZW5ke2JtYXRyaXh9XCIsIFwiXFxcXGVuZHtCbWF0cml4fVwiLCBcIlxcXFxlbmR7dm1hdHJpeH1cIiwgXCJcXFxcZW5ke1ZtYXRyaXh9XCIsIFwiXFxcXGVuZHtzbWFsbG1hdHJpeH1cIl1cclxuXHRcdFx0XHRcdFx0bGV0IHN0YXRlID0gZmFsc2VcclxuXHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBiZWdpbl9tYXRyaXgubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy53aXRoaW5BbnlCcmFja2V0c19kb2N1bWVudChlZGl0b3IsIGJlZ2luX21hdHJpeFtpXSwgZW5kX21hdHJpeFtpXSkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0c3RhdGUgPSB0cnVlXHJcblx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRpZiAoc3RhdGUpIHtcclxuXHRcdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbignICYgJylcclxuXHRcdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0Ly8gVGFiIHNob3J0Y3V0IGZvciBjYXNlcyBibG9ja1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYWRkQ2FzZXNCbG9ja190b2dnbGUpIHtcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMud2l0aGluQW55QnJhY2tldHNfZG9jdW1lbnQoZWRpdG9yLFxyXG5cdFx0XHRcdFx0XHQnXFxcXGJlZ2lue2Nhc2VzfScsXHJcblx0XHRcdFx0XHRcdCdcXFxcZW5ke2Nhc2VzfSdcclxuXHRcdFx0XHRcdFx0KSkge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKCcgJiAnKVxyXG5cdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0fTtcclxuXHJcblx0XHRcdFx0XHQvLyBUYWIgdG8gZ28gdG8gbmV4dCAjdGFiXHJcblx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRfbGluZSA9IGVkaXRvci5nZXRMaW5lKHBvc2l0aW9uLmxpbmUpO1xyXG5cdFx0XHRcdFx0Y29uc3QgdGFiX3Bvc2l0aW9uID0gY3VycmVudF9saW5lLmluZGV4T2YoXCIjdGFiXCIpO1xyXG5cdFx0XHRcdFx0aWYgKHRhYl9wb3NpdGlvbiE9LTEpe1xyXG5cdFx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFwiXCIsXHJcblx0XHRcdFx0XHRcdHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnRhYl9wb3NpdGlvbn0sXHJcblx0XHRcdFx0XHRcdHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnRhYl9wb3NpdGlvbis0fSlcclxuXHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLCBjaDp0YWJfcG9zaXRpb259KVxyXG5cdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHRcdC8vIFRhYiB0byBuZXh0IGNsb3NlIGJyYWNrZXRcclxuXHRcdFx0XHRcdGlmICh0aGlzLndpdGhpbk1hdGgoZWRpdG9yKSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdFx0XHRcdFx0Y29uc3QgY3VycmVudF9saW5lID0gZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSk7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRpZiAoZXZlbnQuc2hpZnRLZXkpIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCBjbG9zZV9zeW1ib2xzID0gWyd9JywgJ10nLCAnKSddIFxyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IHByZWNlZGluZ190ZXh0ID0gZWRpdG9yLmdldFJhbmdlKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOjB9LHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNofSlcclxuXHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gcHJlY2VkaW5nX3RleHQubGVuZ3RoOyBpID49IDA7IGktLSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKGNsb3NlX3N5bWJvbHMuY29udGFpbnMocHJlY2VkaW5nX3RleHRbaV0pKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6aX0pXHJcblx0XHRcdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmIChwb3NpdGlvbi5jaC1pID4gMSAmJiBwcmVjZWRpbmdfdGV4dFtpXT09XCIkXCIpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLCBjaDppKzF9KVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAocHJlY2VkaW5nX3RleHQuc2xpY2UoLTIpPT1cIiQkXCIpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaC0yfSlcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHByZWNlZGluZ190ZXh0Wy0xXT09XCIkXCIpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaC0xfSlcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuXHJcblx0XHRcdFx0XHRcdFx0XHR9XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IGNsb3NlX3N5bWJvbHMgPSBbJ30nLCAnXScsICcpJywgJyQnXSBcclxuXHRcdFx0XHRcdFx0XHRjb25zdCBmb2xsb3dpbmdfdGV4dCA9IGVkaXRvci5nZXRSYW5nZSh7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaCsxfSx7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpjdXJyZW50X2xpbmUubGVuZ3RofSlcclxuXHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGZvbGxvd2luZ190ZXh0Lmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoY2xvc2Vfc3ltYm9scy5jb250YWlucyhmb2xsb3dpbmdfdGV4dFtpXSkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaCtpKzF9KVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHRcdFx0XHRcdH1cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Ly8gVGFiIG91dCBvZiAkXHJcblx0XHRcdFx0XHRpZiAodGhpcy53aXRoaW5NYXRoKGVkaXRvcikpIHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgcG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XHJcblx0XHRcdFx0XHRcdGNvbnN0IG5leHRfMiA9IGVkaXRvci5nZXRSYW5nZSh7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaH0se2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2grMn0pXHJcblx0XHRcdFx0XHRcdGlmIChuZXh0XzIgPT0gXCIkJFwiKSB7XHJcblx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaCsyfSlcclxuXHRcdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKG5leHRfMlswXSA9PSBcIiRcIikge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2grMX0pXHJcblx0XHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHR9O1xyXG5cdFx0fTtcclxuXHR9O1xyXG5cclxuXHRwcml2YXRlIHJlYWRvbmx5IGhhbmRsZUtleVByZXNzID0gKFxyXG5cdFx0Y206IENvZGVNaXJyb3IuRWRpdG9yLFxyXG5cdFx0ZXZlbnQ6IEtleWJvYXJkRXZlbnQsXHJcblx0KTogdm9pZCA9PiB7XHJcblxyXG5cdFx0aWYgKFsneycsICdbJywgJygnLCAnbSddLmNvbnRhaW5zKGV2ZW50LmtleSkpIHtcclxuXHRcdFx0Y29uc3QgdmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldyk7XHJcblx0XHRcdGlmICghdmlldykgcmV0dXJuO1xyXG5cclxuXHRcdFx0Y29uc3QgZWRpdG9yID0gdmlldy5lZGl0b3I7XHJcblx0XHRcdGlmICh0aGlzLndpdGhpbk1hdGgoZWRpdG9yKSkge1xyXG5cdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0XHRcdGNvbnN0IGJyYWNrZXRzID0gW1snKCcsICcpJ10sIFsneycsICd9J10sIFsnWycsICddJ11dO1xyXG5cdFx0XHRcdGNvbnN0IG5leHRfY2hhciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH0sXHJcblx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCsxIH0pO1xyXG5cdFx0XHRcdGNvbnN0IG5leHRfMmNoYXIgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9LFxyXG5cdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2grMiB9KTtcclxuXHRcdFx0XHRjb25zdCBmb2xsb3dlZF9ieV8kc3BhY2V0YWJub25lZG91Ymxlc2xhc2ggPSAoWyckJywnICcsJ1x0JywnJ10uY29udGFpbnMobmV4dF9jaGFyKSB8fCBuZXh0XzJjaGFyID09ICdcXFxcXFxcXCcpO1xyXG5cdFx0XHRcdHN3aXRjaCAoZXZlbnQua2V5KSB7XHJcblx0XHRcdFx0XHRjYXNlICd7JzpcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYXV0b0Nsb3NlQ3VybHlfdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKCF0aGlzLndpdGhpbkFueUJyYWNrZXRzX2lubGluZShlZGl0b3IsIGJyYWNrZXRzKSAmJiBmb2xsb3dlZF9ieV8kc3BhY2V0YWJub25lZG91Ymxlc2xhc2gpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKCd7fScpO1xyXG5cdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaCsxfSk7XHJcblx0XHRcdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0Y2FzZSAnWyc6XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLnNldHRpbmdzLmF1dG9DbG9zZVNxdWFyZV90b2dnbGUpIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAoIXRoaXMud2l0aGluQW55QnJhY2tldHNfaW5saW5lKGVkaXRvciwgYnJhY2tldHMpICYmIGZvbGxvd2VkX2J5XyRzcGFjZXRhYm5vbmVkb3VibGVzbGFzaCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oJ1tdJyk7XHJcblx0XHRcdFx0XHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoKzF9KTtcclxuXHRcdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRjYXNlICcoJzpcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuYXV0b0Nsb3NlUm91bmRfdG9nZ2xlKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKCF0aGlzLndpdGhpbkFueUJyYWNrZXRzX2lubGluZShlZGl0b3IsIGJyYWNrZXRzKSAmJiBmb2xsb3dlZF9ieV8kc3BhY2V0YWJub25lZG91Ymxlc2xhc2gpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKCcoKScpO1xyXG5cdFx0XHRcdFx0XHRcdFx0ZWRpdG9yLnNldEN1cnNvcih7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaCsxfSk7XHJcblx0XHRcdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdH1cdFxyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRjYXNlICdtJzpcclxuXHRcdFx0XHRcdFx0aWYgKCF0aGlzLnNldHRpbmdzLmF1dG9TdW1MaW1pdF90b2dnbGUpIHJldHVybjtcclxuXHRcdFx0XHRcdFx0aWYgKGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIDMgfSxcclxuXHRcdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9KSA9PSAnXFxcXHN1Jykge1xyXG5cdFx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKCdtXFxcXGxpbWl0cycpXHJcblx0XHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKVxyXG5cdFx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9O1xyXG5cdFx0fTtcclxuXHR9O1xyXG5cclxuXHQvL21haW4gZnVuY3Rpb25zXHJcblx0cHJpdmF0ZSByZWFkb25seSBhdXRvRW5jbG9zZVN1cCA9IChcclxuXHRcdGVkaXRvcjogRWRpdG9yLFxyXG5cdFx0ZXZlbnQ6RXZlbnQsXHJcblx0XHRsYXN0X3N1cGVyc2NyaXB0OiBudW1iZXJcclxuXHQpOiBib29sZWFuID0+IHtcclxuXHRcdC8vIHN1cGVyc2NyaXB0IGJyYWNrZXRpbmdcclxuXHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0Y29uc3QgbGV0dGVyX2JlZm9yZV9jdXJzb3IgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gMSB9LFxyXG5cdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9XHJcblx0XHQpXHJcblxyXG5cdFx0aWYgKGxhc3Rfc3VwZXJzY3JpcHQgIT0gLTEgJiYgbGV0dGVyX2JlZm9yZV9jdXJzb3IgIT0gXCJeXCIpIHtcclxuXHRcdFx0Y29uc3QgbGV0dGVyX2FmdGVyX3N1cGVyc2NyaXB0ID0gZWRpdG9yLmdldFJhbmdlKFxyXG5cdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3Rfc3VwZXJzY3JpcHQgKyAxIH0sXHJcblx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9zdXBlcnNjcmlwdCArIDIgfSk7XHJcblx0XHRcdGlmIChsZXR0ZXJfYWZ0ZXJfc3VwZXJzY3JpcHQgPT0gJygnICYmIGxldHRlcl9iZWZvcmVfY3Vyc29yID09ICcpJyAmJiBwb3NpdGlvbi5jaC1sYXN0X3N1cGVyc2NyaXB0ID4gNikge1xyXG5cdFx0XHRcdGVkaXRvci5yZXBsYWNlUmFuZ2UoXHJcblx0XHRcdFx0XHQnfScsXHJcblx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIDEgfSxcclxuXHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH1cclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZShcclxuXHRcdFx0XHRcdCd7JyxcclxuXHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3Rfc3VwZXJzY3JpcHQgKyAxIH0sXHJcblx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X3N1cGVyc2NyaXB0ICsgMiB9XHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KClcclxuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0fSBlbHNlIGlmIChsZXR0ZXJfYWZ0ZXJfc3VwZXJzY3JpcHQgPT0gJyAnKSB7XHJcblx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VTZWxlY3Rpb24oJ30nKTtcclxuXHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKCd7JywgeyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9zdXBlcnNjcmlwdCArIDIgfSk7XHJcblx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKVxyXG5cdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKCd9Jyk7XHJcblx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZSgneycsIHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3Rfc3VwZXJzY3JpcHQgKyAxIH0pO1xyXG5cdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KClcclxuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgYXV0b0ZyYWN0aW9uID0gKFxyXG5cdFx0ZWRpdG9yOiBFZGl0b3IsXHJcblx0XHRldmVudDpFdmVudCxcclxuXHRcdGxhc3Rfc3VwZXJzY3JpcHQ6IG51bWJlclxyXG5cdCk6IGJvb2xlYW4gPT4ge1xyXG5cdFx0Y29uc3QgcG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XHJcblx0XHRjb25zdCBjdXJyZW50X2xpbmUgPSBlZGl0b3IuZ2V0TGluZShwb3NpdGlvbi5saW5lKTtcclxuXHRcdGxldCBsYXN0X2RpdmlkZSA9IGN1cnJlbnRfbGluZS5sYXN0SW5kZXhPZignLycsIHBvc2l0aW9uLmNoIC0gMSk7XHJcblxyXG5cdFx0Ly8gaWYgY3Vyc29yIGlzIHByZWNlZWRlZCBieSBhIGNsb3NlIGJyYWNrZXQsIGFuZCB0aGUgY29ycmVzcG9uZGluZyBvcGVuIGJyYWNrZXRcclxuXHRcdC8vIGlzIGZvdW5kIGJlZm9yZSBcIi9cIiwgcmVtb3ZlIHRoZSBicmFja2V0cyBhbmQgZW5jbG9zZSB3aG9sZSBleHByZXNzaW9uIHVzaW5nIFxcZnJhY1xyXG5cdFx0Y29uc3QgbGV0dGVyX2JlZm9yZV9jdXJzb3IgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gMSB9LFxyXG5cdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9XHJcblx0XHQpXHJcblxyXG5cdFx0Ly8gaWYgdGhlcmUgYXJlIGFueSBicmFja2V0cyB1bmNsb3NlZCBiZWZvcmUgZGl2aWRlIHN5bWJvbCxcclxuXHRcdC8vIGluY2x1ZGUgdGhlIG9wZW4gYnJhY2tldHMgaW50byBzdG9wX3N5bWJvbHNcclxuXHRcdGNvbnN0IGJyYWNrZXRzID0gW1snKCcsICcpJ10sIFsneycsICd9J10sIFsnWycsICddJ11dO1xyXG5cdFx0bGV0IHN0b3BfYnJhY2tldHMgPSBbXVxyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBicmFja2V0cy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRpZiAobGV0dGVyX2JlZm9yZV9jdXJzb3IgPT0gYnJhY2tldHNbaV1bMV0pIHtcclxuXHRcdFx0XHRjb25zdCBvcGVuX2JyYWNrZXRzID0gdGhpcy51bmNsb3NlZF9icmFja2V0KGVkaXRvciwgYnJhY2tldHNbaV1bMF0sIGJyYWNrZXRzW2ldWzFdLCBwb3NpdGlvbi5jaCAtIDEsIDApWzFdXHJcblx0XHRcdFx0Y29uc3QgcG9zX29mX3RoZV9vcGVuX2JyYWNrZXQgPSBvcGVuX2JyYWNrZXRzW29wZW5fYnJhY2tldHMubGVuZ3RoIC0gMV1cclxuXHRcdFx0XHRpZiAocG9zX29mX3RoZV9vcGVuX2JyYWNrZXQgPCBsYXN0X2RpdmlkZSkge1xyXG5cdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZShcclxuXHRcdFx0XHRcdFx0J30nLFxyXG5cdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCAtIDEgfSxcclxuXHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfVxyXG5cdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZShcclxuXHRcdFx0XHRcdFx0J317JyxcclxuXHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9kaXZpZGUgfSxcclxuXHRcdFx0XHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9kaXZpZGUgKyAxIH1cclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlUmFuZ2UoXHJcblx0XHRcdFx0XHRcdCdcXFxcZnJhY3snLFxyXG5cdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3Nfb2ZfdGhlX29wZW5fYnJhY2tldCB9LFxyXG5cdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3Nfb2ZfdGhlX29wZW5fYnJhY2tldCArIDEgfVxyXG5cdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0c3RvcF9icmFja2V0cy5wdXNoKC4uLnRoaXMudW5jbG9zZWRfYnJhY2tldChlZGl0b3IsIGJyYWNrZXRzW2ldWzBdLCBicmFja2V0c1tpXVsxXSwgbGFzdF9kaXZpZGUsIDApWzFdKVxyXG5cdFx0fVxyXG5cclxuXHRcdGxldCBmcmFjID0gMFxyXG5cclxuXHRcdC8vIGlmIG51bWVyYXRvciBpcyBlbmNsb3NlZCBieSAoKSwgcGxhY2UgZnJhYyBpbiBmcm9udCBvZiAoKSBhbmQgcmVtb3ZlICgpXHJcblx0XHRsZXQgbnVtZXJhdG9yX3JlbW92ZV9icmFja2V0ID0gMFxyXG5cdFx0aWYgKGVkaXRvci5nZXRSYW5nZSh7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X2RpdmlkZSAtIDEgfSwgeyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9kaXZpZGUgfSkgPT0gJyknKSB7XHJcblx0XHRcdGNvbnN0IG51bWVyYXRvcl9vcGVuX2JyYWNrZXQgPSB0aGlzLnVuY2xvc2VkX2JyYWNrZXQoZWRpdG9yLCAnKCcsICcpJywgbGFzdF9kaXZpZGUgLSAxLCAwKVsxXS5zbGljZSgtMSlbMF1cclxuXHRcdFx0ZnJhYyA9IG51bWVyYXRvcl9vcGVuX2JyYWNrZXQgLSAxO1xyXG5cdFx0XHRudW1lcmF0b3JfcmVtb3ZlX2JyYWNrZXQgPSAxXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRjb25zdCBzdG9wX3N5bWJvbHMgPSBbJyQnLCAnPScsICc+JywgJzwnLCAnLCcsICcvJywgJyAnXVxyXG5cdFx0XHRjb25zdCBzeW1ib2xfcG9zaXRpb25zID0gc3RvcF9zeW1ib2xzLm1hcChlID0+IGN1cnJlbnRfbGluZS5sYXN0SW5kZXhPZihlLCBsYXN0X2RpdmlkZSAtIDEpKVxyXG5cdFx0XHRmcmFjID0gTWF0aC5tYXgobGFzdF9zdXBlcnNjcmlwdCwgLi4uc3ltYm9sX3Bvc2l0aW9ucywgLi4uc3RvcF9icmFja2V0cylcclxuXHRcdH07XHJcblxyXG5cdFx0Ly8gaWYgZGVub21pbmF0b3IgaXMgZW5jbG9zZWQgYnkgKCksIHJlbW92ZSAoKVxyXG5cdFx0Y29uc3QgZGVub21pbmF0b3IgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3RfZGl2aWRlICsgMSB9LFxyXG5cdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9XHJcblx0XHQpO1xyXG5cdFx0bGV0IGRlbm9taW5hdG9yX3JlbW92ZV9icmFja2V0ID0gMDtcclxuXHRcdGlmIChkZW5vbWluYXRvci5zbGljZSgtMSlbMF0gPT0gJyknKSB7XHJcblx0XHRcdGNvbnN0IGRlbm9taW5hdG9yX29wZW5fYnJhY2tldCA9IHRoaXMudW5jbG9zZWRfYnJhY2tldChlZGl0b3IsICcoJywgJyknLCBwb3NpdGlvbi5jaCAtIDEsIDApWzFdLnNsaWNlKC0xKVswXVxyXG5cdFx0XHRpZiAoZGVub21pbmF0b3Jfb3Blbl9icmFja2V0ID09IGxhc3RfZGl2aWRlICsgMSkge1xyXG5cdFx0XHRcdGRlbm9taW5hdG9yX3JlbW92ZV9icmFja2V0ID0gMTtcclxuXHRcdFx0fTtcclxuXHRcdH07XHJcblxyXG5cdFx0Ly8gcGVyZm9ybSBcXGZyYWMgcmVwbGFjZVxyXG5cdFx0XHJcblx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFxyXG5cdFx0XHQnfScsXHJcblx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gZGVub21pbmF0b3JfcmVtb3ZlX2JyYWNrZXQgfSxcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfVxyXG5cdFx0XHQpO1xyXG5cdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZShcclxuXHRcdFx0J317JyxcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9kaXZpZGUgLSBudW1lcmF0b3JfcmVtb3ZlX2JyYWNrZXQgfSxcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9kaXZpZGUgKyAxICsgZGVub21pbmF0b3JfcmVtb3ZlX2JyYWNrZXQgfVxyXG5cdFx0XHQpO1xyXG5cdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZShcclxuXHRcdFx0J1xcXFxmcmFjeycsXHJcblx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGZyYWMgKyAxIH0sXHJcblx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGZyYWMgKyAxICsgbnVtZXJhdG9yX3JlbW92ZV9icmFja2V0IH1cclxuXHRcdFx0KTtcclxuXHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRyZXR1cm5cclxuXHR9O1xyXG5cclxuXHRwcml2YXRlIHJlYWRvbmx5IGF1dG9GcmFjdGlvbkNNNiA9IChcclxuXHRcdGVkaXRvcjogRWRpdG9yLFxyXG5cdFx0bGFzdF9zdXBlcnNjcmlwdDogbnVtYmVyXHJcblx0KTogYm9vbGVhbiA9PiB7XHJcblx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdGNvbnN0IGN1cnJlbnRfbGluZSA9IGVkaXRvci5nZXRMaW5lKHBvc2l0aW9uLmxpbmUpO1xyXG5cdFx0bGV0IGxhc3RfZGl2aWRlID0gY3VycmVudF9saW5lLmxhc3RJbmRleE9mKCcvJywgcG9zaXRpb24uY2ggLSAxKTtcclxuXHJcblx0XHQvLyBpZiBjdXJzb3IgaXMgcHJlY2VlZGVkIGJ5IGEgY2xvc2UgYnJhY2tldCwgYW5kIHRoZSBjb3JyZXNwb25kaW5nIG9wZW4gYnJhY2tldFxyXG5cdFx0Ly8gaXMgZm91bmQgYmVmb3JlIFwiL1wiLCByZW1vdmUgdGhlIGJyYWNrZXRzIGFuZCBlbmNsb3NlIHdob2xlIGV4cHJlc3Npb24gdXNpbmcgXFxmcmFjXHJcblx0XHRjb25zdCBsZXR0ZXJfYmVmb3JlX2N1cnNvciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSAxIH0sXHJcblx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIH1cclxuXHRcdClcclxuXHJcblx0XHQvLyBpZiB0aGVyZSBhcmUgYW55IGJyYWNrZXRzIHVuY2xvc2VkIGJlZm9yZSBkaXZpZGUgc3ltYm9sLFxyXG5cdFx0Ly8gaW5jbHVkZSB0aGUgb3BlbiBicmFja2V0cyBpbnRvIHN0b3Bfc3ltYm9sc1xyXG5cdFx0Y29uc3QgYnJhY2tldHMgPSBbWycoJywgJyknXSwgWyd7JywgJ30nXSwgWydbJywgJ10nXV07XHJcblx0XHRsZXQgc3RvcF9icmFja2V0cyA9IFtdXHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGJyYWNrZXRzLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdGlmIChsZXR0ZXJfYmVmb3JlX2N1cnNvciA9PSBicmFja2V0c1tpXVsxXSkge1xyXG5cdFx0XHRcdGNvbnN0IG9wZW5fYnJhY2tldHMgPSB0aGlzLnVuY2xvc2VkX2JyYWNrZXQoZWRpdG9yLCBicmFja2V0c1tpXVswXSwgYnJhY2tldHNbaV1bMV0sIHBvc2l0aW9uLmNoIC0gMSwgMClbMV1cclxuXHRcdFx0XHRjb25zdCBwb3Nfb2ZfdGhlX29wZW5fYnJhY2tldCA9IG9wZW5fYnJhY2tldHNbb3Blbl9icmFja2V0cy5sZW5ndGggLSAxXVxyXG5cdFx0XHRcdGlmIChwb3Nfb2ZfdGhlX29wZW5fYnJhY2tldCA8IGxhc3RfZGl2aWRlKSB7XHJcblx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFxyXG5cdFx0XHRcdFx0XHQnfScsXHJcblx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gMSB9LFxyXG5cdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9XHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFxyXG5cdFx0XHRcdFx0XHQnfXsnLFxyXG5cdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X2RpdmlkZSB9LFxyXG5cdFx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X2RpdmlkZSArIDEgfVxyXG5cdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZShcclxuXHRcdFx0XHRcdFx0J1xcXFxmcmFjeycsXHJcblx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc19vZl90aGVfb3Blbl9icmFja2V0IH0sXHJcblx0XHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc19vZl90aGVfb3Blbl9icmFja2V0ICsgMSB9XHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0c3RvcF9icmFja2V0cy5wdXNoKC4uLnRoaXMudW5jbG9zZWRfYnJhY2tldChlZGl0b3IsIGJyYWNrZXRzW2ldWzBdLCBicmFja2V0c1tpXVsxXSwgbGFzdF9kaXZpZGUsIDApWzFdKVxyXG5cdFx0fVxyXG5cclxuXHRcdGxldCBmcmFjID0gMFxyXG5cclxuXHRcdC8vIGlmIG51bWVyYXRvciBpcyBlbmNsb3NlZCBieSAoKSwgcGxhY2UgZnJhYyBpbiBmcm9udCBvZiAoKSBhbmQgcmVtb3ZlICgpXHJcblx0XHRsZXQgbnVtZXJhdG9yX3JlbW92ZV9icmFja2V0ID0gMFxyXG5cdFx0aWYgKGVkaXRvci5nZXRSYW5nZSh7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsYXN0X2RpdmlkZSAtIDEgfSwgeyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9kaXZpZGUgfSkgPT0gJyknKSB7XHJcblx0XHRcdGNvbnN0IG51bWVyYXRvcl9vcGVuX2JyYWNrZXQgPSB0aGlzLnVuY2xvc2VkX2JyYWNrZXQoZWRpdG9yLCAnKCcsICcpJywgbGFzdF9kaXZpZGUgLSAxLCAwKVsxXS5zbGljZSgtMSlbMF1cclxuXHRcdFx0ZnJhYyA9IG51bWVyYXRvcl9vcGVuX2JyYWNrZXQgLSAxO1xyXG5cdFx0XHRudW1lcmF0b3JfcmVtb3ZlX2JyYWNrZXQgPSAxXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRjb25zdCBzdG9wX3N5bWJvbHMgPSBbJyQnLCAnPScsICc+JywgJzwnLCAnLCcsICcvJywgJyAnXVxyXG5cdFx0XHRjb25zdCBzeW1ib2xfcG9zaXRpb25zID0gc3RvcF9zeW1ib2xzLm1hcChlID0+IGN1cnJlbnRfbGluZS5sYXN0SW5kZXhPZihlLCBsYXN0X2RpdmlkZSAtIDEpKVxyXG5cdFx0XHRmcmFjID0gTWF0aC5tYXgobGFzdF9zdXBlcnNjcmlwdCwgLi4uc3ltYm9sX3Bvc2l0aW9ucywgLi4uc3RvcF9icmFja2V0cylcclxuXHRcdH07XHJcblxyXG5cdFx0Ly8gaWYgZGVub21pbmF0b3IgaXMgZW5jbG9zZWQgYnkgKCksIHJlbW92ZSAoKVxyXG5cdFx0Y29uc3QgZGVub21pbmF0b3IgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxhc3RfZGl2aWRlICsgMSB9LFxyXG5cdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBwb3NpdGlvbi5jaCB9XHJcblx0XHQpO1xyXG5cdFx0bGV0IGRlbm9taW5hdG9yX3JlbW92ZV9icmFja2V0ID0gMDtcclxuXHRcdGlmIChkZW5vbWluYXRvci5zbGljZSgtMSlbMF0gPT0gJyknKSB7XHJcblx0XHRcdGNvbnN0IGRlbm9taW5hdG9yX29wZW5fYnJhY2tldCA9IHRoaXMudW5jbG9zZWRfYnJhY2tldChlZGl0b3IsICcoJywgJyknLCBwb3NpdGlvbi5jaCAtIDEsIDApWzFdLnNsaWNlKC0xKVswXVxyXG5cdFx0XHRpZiAoZGVub21pbmF0b3Jfb3Blbl9icmFja2V0ID09IGxhc3RfZGl2aWRlICsgMSkge1xyXG5cdFx0XHRcdGRlbm9taW5hdG9yX3JlbW92ZV9icmFja2V0ID0gMTtcclxuXHRcdFx0fTtcclxuXHRcdH07XHJcblxyXG5cdFx0Ly8gcGVyZm9ybSBcXGZyYWMgcmVwbGFjZVxyXG5cdFx0XHJcblx0XHRlZGl0b3IucmVwbGFjZVJhbmdlKFxyXG5cdFx0XHQnfScsXHJcblx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHBvc2l0aW9uLmNoIC0gZGVub21pbmF0b3JfcmVtb3ZlX2JyYWNrZXQgfSxcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggfVxyXG5cdFx0XHQpO1xyXG5cdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZShcclxuXHRcdFx0J317JyxcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9kaXZpZGUgLSBudW1lcmF0b3JfcmVtb3ZlX2JyYWNrZXQgfSxcclxuXHRcdFx0eyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGFzdF9kaXZpZGUgKyAxICsgZGVub21pbmF0b3JfcmVtb3ZlX2JyYWNrZXQgfVxyXG5cdFx0XHQpO1xyXG5cdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZShcclxuXHRcdFx0J1xcXFxmcmFjeycsXHJcblx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGZyYWMgKyAxIH0sXHJcblx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGZyYWMgKyAxICsgbnVtZXJhdG9yX3JlbW92ZV9icmFja2V0IH1cclxuXHRcdFx0KTtcclxuXHJcblx0XHRjb25zdCBwb3MgPSBlZGl0b3IuZ2V0Q3Vyc29yKClcclxuXHRcdGVkaXRvci5zZXRDdXJzb3Ioe2xpbmU6cG9zLmxpbmUsY2g6cG9zLmNoKzEtZGVub21pbmF0b3JfcmVtb3ZlX2JyYWNrZXR9KVxyXG5cdFx0cmV0dXJuIHRydWVcclxuXHR9O1xyXG5cclxuXHRwcml2YXRlIHJlYWRvbmx5IGF1dG9MYXJnZUJyYWNrZXQgPSAoXHJcblx0XHRlZGl0b3I6IEVkaXRvcixcclxuXHRcdGV2ZW50OiBFdmVudFxyXG5cdCk6IGJvb2xlYW4gPT4ge1xyXG5cdFx0Y29uc3QgcG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XHJcblx0XHRsZXQgYnJhY2tldHMgPSBbWydbJywgJ10nXSwgWycoJywgJyknXV07XHJcblx0XHRjb25zdCBwcmV2X2NoYXIgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOnBvc2l0aW9uLmNoLTF9LFxyXG5cdFx0XHR7bGluZTpwb3NpdGlvbi5saW5lLCBjaDpwb3NpdGlvbi5jaH1cclxuXHRcdClcclxuXHRcdGNvbnN0IGN1cnJlbnRfYnJhY2tldHMgPSBicmFja2V0cy5maWx0ZXIoZSA9PiBlWzFdPT1wcmV2X2NoYXIpWzBdXHJcblx0XHRpZiAoY3VycmVudF9icmFja2V0cy5sZW5ndGg9PTApIHJldHVybjtcclxuXHRcdFxyXG5cdFx0Y29uc3Qgb3Blbl9icmFja2V0ID0gdGhpcy51bmNsb3NlZF9icmFja2V0KFxyXG5cdFx0XHRlZGl0b3IsXHJcblx0XHRcdGN1cnJlbnRfYnJhY2tldHNbMF0sXHJcblx0XHRcdGN1cnJlbnRfYnJhY2tldHNbMV0sXHJcblx0XHRcdHBvc2l0aW9uLmNoLTEsXHJcblx0XHRcdDApWzFdLnNsaWNlKC0xKVswXVxyXG5cdFx0Y29uc3QgdGV4dCA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSwgY2g6b3Blbl9icmFja2V0fSxcclxuXHRcdFx0e2xpbmU6cG9zaXRpb24ubGluZSwgY2g6cG9zaXRpb24uY2h9KVxyXG5cdFx0XHRcclxuXHRcdGNvbnN0IGxhcmdlX29wZXJhdG9ycyA9IFsnXFxcXHN1bScsICdcXFxcaW50JywgJ1xcXFxmcmFjJywnXFxcXGRmcmFjJ107XHJcblx0XHRsZXQgbGFyZ2Vfb3BlcmF0b3JzX2xvY2F0aW9uczpudW1iZXJbXSA9IFtdO1xyXG5cclxuXHRcdGZvciAobGV0IGkgPSAwIDsgaSA8IGxhcmdlX29wZXJhdG9ycy5sZW5ndGggOyBpKyspIHtcclxuXHRcdFx0bGV0IGZvdW5kID0gMDtcclxuXHRcdFx0d2hpbGUgKGZvdW5kICE9IC0xKSB7XHJcblx0XHRcdFx0Zm91bmQgPSB0ZXh0LmluZGV4T2YobGFyZ2Vfb3BlcmF0b3JzW2ldLGZvdW5kKzEpXHJcblx0XHRcdFx0aWYgKGZvdW5kICE9IC0xKSB7XHJcblx0XHRcdFx0XHRsYXJnZV9vcGVyYXRvcnNfbG9jYXRpb25zLnB1c2goZm91bmQgKyBvcGVuX2JyYWNrZXQpO1xyXG5cdFx0XHRcdH07XHJcblx0XHRcdH07XHRcclxuXHRcdH07XHJcblxyXG5cdFx0Y29uc3QgY3VycmVudF9saW5lID0gZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSk7XHJcblx0XHRcclxuXHRcdGxldCByZXRWYWwgPSBmYWxzZVxyXG5cclxuXHRcdGZvciAobGV0IGkgPSAwIDsgaSA8IGxhcmdlX29wZXJhdG9yc19sb2NhdGlvbnMubGVuZ3RoIDsgaSsrKSB7XHJcblx0XHRcdGxldCBsZWZ0X2FycmF5OiBudW1iZXJbXSA9IFtdO1xyXG5cdFx0XHRsZXQgcmlnaHRfYXJyYXk6IG51bWJlcltdID0gW107XHJcblx0XHRcdGZvciAobGV0IGogPSAwOyBqIDwgYnJhY2tldHMubGVuZ3RoOyBqKyspIHtcclxuXHRcdFx0XHRsZWZ0X2FycmF5LnB1c2goXHJcblx0XHRcdFx0XHQuLi50aGlzLnVuY2xvc2VkX2JyYWNrZXQoXHJcblx0XHRcdFx0XHRcdGVkaXRvciwgXHJcblx0XHRcdFx0XHRcdGJyYWNrZXRzW2pdWzBdLCBcclxuXHRcdFx0XHRcdFx0YnJhY2tldHNbal1bMV0sIFxyXG5cdFx0XHRcdFx0XHRsYXJnZV9vcGVyYXRvcnNfbG9jYXRpb25zW2ldLCBcclxuXHRcdFx0XHRcdFx0MClbMV0pXHJcblx0XHRcdFx0cmlnaHRfYXJyYXkucHVzaChcclxuXHRcdFx0XHRcdC4uLnRoaXMudW5jbG9zZWRfYnJhY2tldChcclxuXHRcdFx0XHRcdFx0ZWRpdG9yLCBcclxuXHRcdFx0XHRcdFx0YnJhY2tldHNbal1bMF0sIFxyXG5cdFx0XHRcdFx0XHRicmFja2V0c1tqXVsxXSwgXHJcblx0XHRcdFx0XHRcdGN1cnJlbnRfbGluZS5sZW5ndGgsIFxyXG5cdFx0XHRcdFx0XHRsYXJnZV9vcGVyYXRvcnNfbG9jYXRpb25zW2ldLCBcclxuXHRcdFx0XHRcdFx0ZmFsc2UpWzFdKVxyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0Zm9yIChsZXQgayA9IHJpZ2h0X2FycmF5Lmxlbmd0aCAtIDE7IGsgPiAtMTsgay0tKSB7XHJcblx0XHRcdFx0Ly8gY2hlY2sgaWYgdW5jbG9zZWQgYnJhY2tldHMgYWxyZWFkeSBhcHBlbmRlZCB3aXRoIFxccmlnaHRcclxuXHRcdFx0XHRsZXQgY2hlY2tfcmlnaHQgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiByaWdodF9hcnJheVtrXSAtIDYgfSxcclxuXHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IHJpZ2h0X2FycmF5W2tdIH0pO1xyXG5cdFx0XHRcdGlmIChjaGVja19yaWdodCAhPSAnXFxcXHJpZ2h0Jykge1xyXG5cdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZSgnXFxcXHJpZ2h0JywgeyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcmlnaHRfYXJyYXlba10gfSk7XHJcblx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0cmV0VmFsID0gdHJ1ZVxyXG5cdFx0XHRcdH07XHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHRmb3IgKGxldCBsID0gbGVmdF9hcnJheS5sZW5ndGggLSAxOyBsID4gLTE7IGwtLSkge1xyXG5cdFx0XHRcdC8vIGNoZWNrIGlmIHVuY2xvc2VkIGJyYWNrZXRzIGFscmVhZHkgYXBwZW5kZWQgd2l0aCBcXGxlZnRcclxuXHRcdFx0XHRsZXQgY2hlY2tfbGVmdCA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGxlZnRfYXJyYXlbbF0gLSA1IH0sXHJcblx0XHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBsZWZ0X2FycmF5W2xdIH0pO1xyXG5cdFx0XHRcdGlmIChjaGVja19sZWZ0ICE9ICdcXFxcbGVmdCcpIHtcclxuXHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlUmFuZ2UoJ1xcXFxsZWZ0JywgeyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogbGVmdF9hcnJheVtsXSB9KTtcclxuXHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRyZXRWYWwgPSB0cnVlXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0fTtcclxuXHRcdH07XHJcblx0XHRyZXR1cm4gcmV0VmFsXHJcblx0fTtcclxuXHJcblx0cHJpdmF0ZSBhZGRBbGlnbkJsb2NrKGVkaXRvcjogRWRpdG9yKSB7XHJcblx0XHRjb25zdCB2aWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KTtcclxuXHRcdGlmICghdmlldykgcmV0dXJuO1xyXG5cdFx0aWYgKCF0aGlzLnNldHRpbmdzLmFkZEFsaWduQmxvY2tfdG9nZ2xlKSByZXR1cm47XHJcblx0XHRjb25zdCBzZWxlY3RlZF90ZXh0ID0gZWRpdG9yLmdldFNlbGVjdGlvbigpXHJcblx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbihcclxuXHRcdFx0J1xcXFxiZWdpbnsnICsgdGhpcy5zZXR0aW5ncy5hZGRBbGlnbkJsb2NrX3BhcmFtZXRlciArICd9XFxuJyArXHJcblx0XHRcdHNlbGVjdGVkX3RleHQgK1xyXG5cdFx0XHQnXFxuXFxcXGVuZHsnICsgdGhpcy5zZXR0aW5ncy5hZGRBbGlnbkJsb2NrX3BhcmFtZXRlciArICd9J1xyXG5cdFx0KTtcclxuXHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0ZWRpdG9yLnNldEN1cnNvcih7IGxpbmU6IHBvc2l0aW9uLmxpbmUgLSAxLCBjaDogZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSAtIDEpLmxlbmd0aCB9KVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBhZGRNYXRyaXhCbG9jayhlZGl0b3I6IEVkaXRvcikge1xyXG5cdFx0Y29uc3QgdmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVWaWV3T2ZUeXBlKE1hcmtkb3duVmlldyk7XHJcblx0XHRpZiAoIXZpZXcpIHJldHVybjtcclxuXHRcdGlmICghdGhpcy5zZXR0aW5ncy5hZGRNYXRyaXhCbG9ja190b2dnbGUpIHJldHVybjtcclxuXHRcdGVkaXRvci5yZXBsYWNlU2VsZWN0aW9uKFxyXG5cdFx0XHQnXFxcXGJlZ2lueycgKyB0aGlzLnNldHRpbmdzLmFkZE1hdHJpeEJsb2NrX3BhcmFtZXRlciArICd9JyArXHJcblx0XHRcdCdcXFxcZW5keycgKyB0aGlzLnNldHRpbmdzLmFkZE1hdHJpeEJsb2NrX3BhcmFtZXRlciArICd9J1xyXG5cdFx0KTtcclxuXHRcdGNvbnN0IHBvc2l0aW9uID0gZWRpdG9yLmdldEN1cnNvcigpO1xyXG5cdFx0Y29uc3QgcmV0cmFjdF9sZW5ndGggPSAoJ1xcXFxlbmR7JyArIHRoaXMuc2V0dGluZ3MuYWRkTWF0cml4QmxvY2tfcGFyYW1ldGVyICsgJ30nKS5sZW5ndGhcclxuXHRcdGVkaXRvci5zZXRDdXJzb3IoeyBsaW5lOiBwb3NpdGlvbi5saW5lLCBjaDogcG9zaXRpb24uY2ggLSByZXRyYWN0X2xlbmd0aCB9KVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBhZGRDYXNlc0Jsb2NrKGVkaXRvcjogRWRpdG9yKSB7XHJcblx0XHRjb25zdCB2aWV3ID0gdGhpcy5hcHAud29ya3NwYWNlLmdldEFjdGl2ZVZpZXdPZlR5cGUoTWFya2Rvd25WaWV3KTtcclxuXHRcdGlmICghdmlldykgcmV0dXJuO1xyXG5cdFx0aWYgKCF0aGlzLnNldHRpbmdzLmFkZENhc2VzQmxvY2tfdG9nZ2xlKSByZXR1cm47XHJcblx0XHRjb25zdCBzZWxlY3RlZF90ZXh0ID0gZWRpdG9yLmdldFNlbGVjdGlvbigpXHJcblx0XHRlZGl0b3IucmVwbGFjZVNlbGVjdGlvbihcclxuXHRcdFx0J1xcXFxiZWdpbntjYXNlc31cXG4nICtcclxuXHRcdFx0c2VsZWN0ZWRfdGV4dCArXHJcblx0XHRcdCdcXG5cXFxcZW5ke2Nhc2VzfSdcclxuXHRcdCk7XHJcblx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdGVkaXRvci5zZXRDdXJzb3IoeyBsaW5lOiBwb3NpdGlvbi5saW5lIC0gMSwgY2g6IGVkaXRvci5nZXRMaW5lKHBvc2l0aW9uLmxpbmUgLSAxKS5sZW5ndGggfSlcclxuXHR9XHJcblxyXG5cdC8vdXRpbGl0eSBmdW5jdGlvbnNcclxuXHRwcml2YXRlIHJlYWRvbmx5IHVuY2xvc2VkX2JyYWNrZXQgPSAoXHJcblx0XHRlZGl0b3I6IEVkaXRvcixcclxuXHRcdG9wZW5fc3ltYm9sOiBzdHJpbmcsXHJcblx0XHRjbG9zZV9zeW1ib2w6IHN0cmluZyxcclxuXHRcdGJlZm9yZTogbnVtYmVyLFxyXG5cdFx0YWZ0ZXI6IG51bWJlcixcclxuXHRcdHVuY2xvc2VkX29wZW5fc3ltYm9sOiBib29sZWFuID0gdHJ1ZSAvL2ZhbHNlIGZvciB1bmNsb3NlZF9jbG9zZV9zeW1ib2xcclxuXHQpOiBbYm9vbGVhbiwgbnVtYmVyW11dID0+IHtcclxuXHRcdC8vIGRldGVybWluZSBpZiB0aGVyZSBhcmUgdW5jbG9zZWQgYnJhY2tldCB3aXRoaW4gdGhlIHJhbmdlIHNwZWNpZmllZCBieSBiZWZvcmUgYW5kIGFmdGVyXHJcblx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKTtcclxuXHRcdGNvbnN0IHRleHQgPSBlZGl0b3IuZ2V0UmFuZ2UoXHJcblx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGFmdGVyIH0sXHJcblx0XHRcdHsgbGluZTogcG9zaXRpb24ubGluZSwgY2g6IGJlZm9yZSB9KTtcclxuXHRcdGxldCBvcGVuX2FycmF5OiBudW1iZXJbXSA9IFtdXHJcblx0XHRsZXQgY2xvc2VfYXJyYXk6IG51bWJlcltdID0gW11cclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRzd2l0Y2ggKHRleHRbaV0pIHtcclxuXHRcdFx0XHRjYXNlIG9wZW5fc3ltYm9sOlxyXG5cdFx0XHRcdFx0b3Blbl9hcnJheS5wdXNoKGFmdGVyICsgaSk7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRjYXNlIGNsb3NlX3N5bWJvbDpcclxuXHRcdFx0XHRcdGlmIChvcGVuX2FycmF5Lmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0b3Blbl9hcnJheS5wb3AoKVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0Y2xvc2VfYXJyYXkucHVzaChhZnRlciArIGkpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdGlmICh1bmNsb3NlZF9vcGVuX3N5bWJvbCkge1xyXG5cdFx0XHRyZXR1cm4gW29wZW5fYXJyYXkubGVuZ3RoID4gMCwgb3Blbl9hcnJheV07XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXR1cm4gW2Nsb3NlX2FycmF5Lmxlbmd0aCA+IDAsIGNsb3NlX2FycmF5XTtcclxuXHRcdH1cclxuXHJcblx0fTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSB3aXRoaW5UZXh0ID0gKFxyXG5cdFx0ZWRpdG9yOiBFZGl0b3IsXHJcblx0XHRhdF93aGVyZTogbnVtYmVyXHJcblx0KTogQm9vbGVhbiA9PiB7XHJcblx0XHQvLyBjaGVjayBpZiB3aXRoaW4gdGV4dHt9XHJcblx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKVxyXG5cdFx0Y29uc3QgYnJhY2tldF9sb2NhdGlvbnMgPSB0aGlzLnVuY2xvc2VkX2JyYWNrZXQoZWRpdG9yLCAneycsJ30nLCBhdF93aGVyZSwgMClbMV1cclxuXHRcdHJldHVybiBicmFja2V0X2xvY2F0aW9ucy5zb21lKGxvYyA9PiBlZGl0b3IuZ2V0UmFuZ2Uoe2xpbmU6cG9zaXRpb24ubGluZSwgY2g6bG9jLTR9LHtsaW5lOnBvc2l0aW9uLmxpbmUsIGNoOmxvY30pPT1cInRleHRcIilcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgd2l0aGluTWF0aCA9IChcclxuXHRcdGVkaXRvcjogRWRpdG9yXHJcblx0KTogQm9vbGVhbiA9PiB7XHJcblx0XHQvLyBjaGVjayBpZiBjdXJzb3Igd2l0aGluICQkXHJcblx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKVxyXG5cdFx0Y29uc3QgY3VycmVudF9saW5lID0gZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSk7XHJcblx0XHRsZXQgY3Vyc29yX2luZGV4ID0gcG9zaXRpb24uY2hcclxuXHRcdGxldCBmcm9tID0gMDtcclxuXHRcdGxldCBmb3VuZCA9IGN1cnJlbnRfbGluZS5pbmRleE9mKCckJywgZnJvbSk7XHJcblx0XHR3aGlsZSAoZm91bmQgIT0gLTEgJiYgZm91bmQgPCBjdXJzb3JfaW5kZXgpIHtcclxuXHRcdFx0bGV0IG5leHRfY2hhciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBmb3VuZCArIDEgfSxcclxuXHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBmb3VuZCArIDIgfSlcclxuXHRcdFx0bGV0IHByZXZfY2hhciA9IGVkaXRvci5nZXRSYW5nZShcclxuXHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBmb3VuZCAtIDEgfSxcclxuXHRcdFx0XHR7IGxpbmU6IHBvc2l0aW9uLmxpbmUsIGNoOiBmb3VuZCB9KVxyXG5cdFx0XHRpZiAobmV4dF9jaGFyID09ICckJyB8fCBwcmV2X2NoYXIgPT0gJyQnIHx8IG5leHRfY2hhciA9PSAnICcpIHtcclxuXHRcdFx0XHRmcm9tID0gZm91bmQgKyAxO1xyXG5cdFx0XHRcdGZvdW5kID0gY3VycmVudF9saW5lLmluZGV4T2YoJyQnLCBmcm9tKTtcclxuXHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRmcm9tID0gZm91bmQgKyAxO1xyXG5cdFx0XHRcdGxldCBuZXh0X2ZvdW5kID0gY3VycmVudF9saW5lLmluZGV4T2YoJyQnLCBmcm9tKTtcclxuXHRcdFx0XHRpZiAobmV4dF9mb3VuZCA9PSAtMSkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAoY3Vyc29yX2luZGV4ID4gZm91bmQgJiYgY3Vyc29yX2luZGV4IDw9IG5leHRfZm91bmQpIHtcclxuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRmcm9tID0gbmV4dF9mb3VuZCArIDE7XHJcblx0XHRcdFx0XHRmb3VuZCA9IGN1cnJlbnRfbGluZS5pbmRleE9mKCckJywgZnJvbSk7XHJcblx0XHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBkb2N1bWVudF90ZXh0ID0gZWRpdG9yLmdldFZhbHVlKCk7XHJcblx0XHRjdXJzb3JfaW5kZXggPSBlZGl0b3IucG9zVG9PZmZzZXQocG9zaXRpb24pO1xyXG5cdFx0ZnJvbSA9IDA7XHJcblx0XHRmb3VuZCA9IGRvY3VtZW50X3RleHQuaW5kZXhPZignJCQnLCBmcm9tKTtcclxuXHRcdGxldCBjb3VudCA9IDA7XHJcblx0XHR3aGlsZSAoZm91bmQgIT0gLTEgJiYgZm91bmQgPCBjdXJzb3JfaW5kZXgpIHtcclxuXHRcdFx0Y291bnQgKz0gMTtcclxuXHRcdFx0ZnJvbSA9IGZvdW5kICsgMjtcclxuXHRcdFx0Zm91bmQgPSBkb2N1bWVudF90ZXh0LmluZGV4T2YoJyQkJywgZnJvbSk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gY291bnQgJSAyID09IDE7XHJcblx0fTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSB3aXRoaW5BbnlCcmFja2V0c19pbmxpbmUgPSAoXHJcblx0XHRlZGl0b3I6IEVkaXRvcixcclxuXHRcdGJyYWNrZXRzOiBzdHJpbmdbXVtdXHJcblx0KTogQm9vbGVhbiA9PiB7XHJcblx0XHRjb25zdCBwb3NpdGlvbiA9IGVkaXRvci5nZXRDdXJzb3IoKVxyXG5cdFx0Y29uc3QgY3VycmVudF9saW5lID0gZWRpdG9yLmdldExpbmUocG9zaXRpb24ubGluZSk7XHJcblx0XHRyZXR1cm4gYnJhY2tldHMuc29tZShlID0+IHRoaXMudW5jbG9zZWRfYnJhY2tldChlZGl0b3IsIGVbMF0sIGVbMV0sIHBvc2l0aW9uLmNoLCAwKVswXSAmJlxyXG5cdFx0XHR0aGlzLnVuY2xvc2VkX2JyYWNrZXQoZWRpdG9yLCBlWzBdLCBlWzFdLCBjdXJyZW50X2xpbmUubGVuZ3RoLCBwb3NpdGlvbi5jaCwgZmFsc2UpWzBdKVxyXG5cdH07XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgd2l0aGluQW55QnJhY2tldHNfZG9jdW1lbnQgPSAoXHJcblx0XHRlZGl0b3I6IEVkaXRvcixcclxuXHRcdG9wZW5fc3ltYm9sOiBzdHJpbmcsXHJcblx0XHRjbG9zZV9zeW1ib2w6IHN0cmluZ1xyXG5cdCk6IEJvb2xlYW4gPT4ge1xyXG5cdFx0Y29uc3QgZG9jdW1lbnRfdGV4dCA9IGVkaXRvci5nZXRWYWx1ZSgpXHJcblx0XHRjb25zdCBjdXJzb3JQb3MgPSBlZGl0b3IuZ2V0Q3Vyc29yKClcclxuXHRcdGNvbnN0IGN1cnNvcl9pbmRleCA9IGVkaXRvci5wb3NUb09mZnNldChjdXJzb3JQb3MpXHJcblx0XHQvLyBjb3VudCBvcGVuIHN5bWJvbHNcclxuXHRcdGxldCBmcm9tID0gMDtcclxuXHRcdGxldCBmb3VuZCA9IGRvY3VtZW50X3RleHQuaW5kZXhPZihvcGVuX3N5bWJvbCwgZnJvbSk7XHJcblx0XHRsZXQgY291bnQgPSAwO1xyXG5cdFx0d2hpbGUgKGZvdW5kICE9IC0xICYmIGZvdW5kIDwgY3Vyc29yX2luZGV4KSB7XHJcblx0XHRcdGNvdW50ICs9IDE7XHJcblx0XHRcdGZyb20gPSBmb3VuZCArIDE7XHJcblx0XHRcdGZvdW5kID0gZG9jdW1lbnRfdGV4dC5pbmRleE9mKG9wZW5fc3ltYm9sLCBmcm9tKTtcclxuXHRcdH1cclxuXHRcdGNvbnN0IG9wZW5fc3ltYm9sX2NvdW50cyA9IGNvdW50XHJcblxyXG5cdFx0Ly8gY291bnQgY2xvc2Ugc3ltYm9sc1xyXG5cdFx0ZnJvbSA9IDA7XHJcblx0XHRmb3VuZCA9IGRvY3VtZW50X3RleHQuaW5kZXhPZihjbG9zZV9zeW1ib2wsIGZyb20pO1xyXG5cdFx0Y291bnQgPSAwO1xyXG5cdFx0d2hpbGUgKGZvdW5kICE9IC0xICYmIGZvdW5kIDwgY3Vyc29yX2luZGV4KSB7XHJcblx0XHRcdGNvdW50ICs9IDE7XHJcblx0XHRcdGZyb20gPSBmb3VuZCArIDE7XHJcblx0XHRcdGZvdW5kID0gZG9jdW1lbnRfdGV4dC5pbmRleE9mKGNsb3NlX3N5bWJvbCwgZnJvbSk7XHJcblx0XHR9XHJcblx0XHRjb25zdCBjbG9zZV9zeW1ib2xfY291bnRzID0gY291bnRcclxuXHJcblx0XHRyZXR1cm4gb3Blbl9zeW1ib2xfY291bnRzID4gY2xvc2Vfc3ltYm9sX2NvdW50cztcclxuXHR9O1xyXG5cclxuXHQvLyBTZXR0aW5ncyBsb2FkIGFuZCBzYXZlXHJcblx0YXN5bmMgbG9hZFNldHRpbmdzKCkge1xyXG5cdFx0dGhpcy5zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfU0VUVElOR1MsIGF3YWl0IHRoaXMubG9hZERhdGEoKSk7XHJcblx0fTtcclxuXHJcblx0cHVibGljIG9udW5sb2FkKCk6IHZvaWQge1xyXG5cdFx0Y29uc29sZS5sb2coJ3VubG9hZGluZyBRdWljay1MYXRleCBwbHVnaW4nKTtcclxuXHJcblx0XHR0aGlzLmFwcC53b3Jrc3BhY2UuaXRlcmF0ZUNvZGVNaXJyb3JzKChjbSkgPT4ge1xyXG5cdFx0XHRjbS5vZmYoJ3ZpbS1tb2RlLWNoYW5nZScsIHRoaXMuaGFuZGxlVmltTW9kZUNoYW5nZSk7XHJcblx0XHRcdGNtLm9mZigna2V5ZG93bicsIHRoaXMuaGFuZGxlS2V5RG93bik7XHJcblx0XHRcdGNtLm9mZigna2V5cHJlc3MnLCB0aGlzLmhhbmRsZUtleVByZXNzKTtcclxuXHRcdFx0XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG59O1xyXG5cclxuXHJcbmNsYXNzIFF1aWNrTGF0ZXhTZXR0aW5nVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XHJcblx0cGx1Z2luOiBRdWlja0xhdGV4UGx1Z2luO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihhcHA6IEFwcCwgcGx1Z2luOiBRdWlja0xhdGV4UGx1Z2luKSB7XHJcblx0XHRzdXBlcihhcHAsIHBsdWdpbik7XHJcblx0XHR0aGlzLnBsdWdpbiA9IHBsdWdpbjtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBkaXNwbGF5KCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgeyBjb250YWluZXJFbCB9ID0gdGhpcztcclxuXHRcdGNvbnRhaW5lckVsLmVtcHR5KCk7XHJcblxyXG5cdFx0Y29udGFpbmVyRWwuY3JlYXRlRWwoJ2gyJywgeyB0ZXh0OiAnUXVpY2sgTGF0ZXggZm9yIE9ic2lkaWFuIC0gU2V0dGluZ3MnIH0pO1xyXG5cclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0XHQuc2V0TmFtZSgnQXV0b2Nsb3NlICQkIHN5bWJvbHMnKVxyXG5cdFx0XHQuc2V0RGVzYygnVHlwaW5nIG9uZSAkIHN5bWJvbCB3aWxsIGF1dG9tYXRpY2FsbHkgbG9zZSB3aXRoIGFub3RoZXIgJCBzeW1ib2wgJytcclxuXHRcdFx0XHRcdCcoYmVzdCB1c2VkIHdpdGggXCJNb3ZlIGN1cnNvciBiZXR3ZWVuICQkIHN5bWJvbHNcIiBmdW5jdGlvbicpXHJcblx0XHRcdC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4gdG9nZ2xlXHJcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmF1dG9DbG9zZU1hdGhfdG9nZ2xlKVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmF1dG9DbG9zZU1hdGhfdG9nZ2xlID0gdmFsdWU7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcblx0XHRcdFx0XHR0aGlzLmRpc3BsYXkoKTtcclxuXHRcdFx0XHR9KSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdNb3ZlIGN1cnNvciBiZXR3ZWVuICQkIHN5bWJvbHMnKVxyXG5cdFx0XHQuc2V0RGVzYygnVHlwaW5nIHR3byBjb25zZWN1dGl2ZSAkIHN5bWJvbHMgd2lsbCBhdXRvbWF0aWNhbGx5IHNoaWZ0IHRoZSBjdXJzb3IgaW4gYmV0d2VlbiB0aGUgJCQgc3ltYm9scycpXHJcblx0XHRcdC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4gdG9nZ2xlXHJcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLm1vdmVJbnRvTWF0aF90b2dnbGUpXHJcblx0XHRcdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MubW92ZUludG9NYXRoX3RvZ2dsZSA9IHZhbHVlO1xyXG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG5cdFx0XHRcdFx0dGhpcy5kaXNwbGF5KCk7XHJcblx0XHRcdFx0fSkpO1xyXG5cclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0XHQuc2V0TmFtZSgnRW5jbG9zZSBzZWxlY3RlZCBleHByZXNzaW9uIHdpdGggbWF0aCBzeW1ib2wgJCQnKVxyXG5cdFx0XHQuc2V0RGVzYygnU2VsZWN0IGFuIGV4cHJlc3Npb24gYW5kIHByZXNzIFwiJFwiIGtleSB3aWxsIGF1dG9tYXRpY2FsbHkgJyArXHJcblx0XHRcdFx0J2VuY2xvc2UgdGhlIGV4cHJlc3Npb24gd2l0aCB0aGUgbWF0aCBzeW1ib2xzLicpXHJcblx0XHRcdC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4gdG9nZ2xlXHJcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmVuY2xvc2VTZWxlY3Rpb25fdG9nZ2xlKVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmVuY2xvc2VTZWxlY3Rpb25fdG9nZ2xlID0gdmFsdWU7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcblx0XHRcdFx0XHR0aGlzLmRpc3BsYXkoKTtcclxuXHRcdFx0XHR9KSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdBdXRvY2xvc2Uge30gY3VybHkgYnJhY2tldHMnKVxyXG5cdFx0XHQuc2V0RGVzYygnVHlwaW5nIFwie1wiIHdpbGwgYXV0b21hdGljYWxseSBjbG9zZSB3aXRoIFwifVwiJylcclxuXHRcdFx0LmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB0b2dnbGVcclxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuYXV0b0Nsb3NlQ3VybHlfdG9nZ2xlKVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmF1dG9DbG9zZUN1cmx5X3RvZ2dsZSA9IHZhbHVlO1xyXG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG5cdFx0XHRcdFx0dGhpcy5kaXNwbGF5KCk7XHJcblx0XHRcdFx0fSkpO1xyXG5cclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0XHQuc2V0TmFtZSgnQXV0b2Nsb3NlIFtdIHNxdWFyZSBicmFja2V0cycpXHJcblx0XHRcdC5zZXREZXNjKCdUeXBpbmcgXCJbXCIgd2lsbCBhdXRvbWF0aWNhbGx5IGNsb3NlIHdpdGggXCJdXCInKVxyXG5cdFx0XHQuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHRvZ2dsZVxyXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5hdXRvQ2xvc2VTcXVhcmVfdG9nZ2xlKVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmF1dG9DbG9zZVNxdWFyZV90b2dnbGUgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuXHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdFx0LnNldE5hbWUoJ0F1dG9jbG9zZSAoKSByb3VuZCBicmFja2V0cycpXHJcblx0XHRcdC5zZXREZXNjKCdUeXBpbmcgXCIoXCIgd2lsbCBhdXRvbWF0aWNhbGx5IGNsb3NlIHdpdGggXCIpXCInKVxyXG5cdFx0XHQuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHRvZ2dsZVxyXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5hdXRvQ2xvc2VSb3VuZF90b2dnbGUpXHJcblx0XHRcdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuYXV0b0Nsb3NlUm91bmRfdG9nZ2xlID0gdmFsdWU7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcblx0XHRcdFx0XHR0aGlzLmRpc3BsYXkoKTtcclxuXHRcdFx0XHR9KSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdBdXRvIGFwcGVuZCBcIlxcXFxsaW1pdHNcIiBhZnRlciBcIlxcXFxzdW1cIicpXHJcblx0XHRcdC5zZXREZXNjKCdUeXBpbmcgXCJcXFxcc3VtXCIgd2lsbCBhdXRvbWF0aWNhbGx5IGFwcGVuZCBcIlxcXFxsaW1pdHNcIiB0byBzaG9ydGVuIHRoZSBzeW50YXgnICtcclxuXHRcdFx0XHQnIGZvciBwcm9wZXIgZGlzcGxheSBvZiB0aGUgbGltaXRzIGZvciBzdW1tYXRpb24gc3ltYm9sLicpXHJcblx0XHRcdC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4gdG9nZ2xlXHJcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmF1dG9TdW1MaW1pdF90b2dnbGUpXHJcblx0XHRcdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuYXV0b1N1bUxpbWl0X3RvZ2dsZSA9IHZhbHVlO1xyXG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG5cdFx0XHRcdFx0dGhpcy5kaXNwbGF5KCk7XHJcblx0XHRcdFx0fSkpO1xyXG5cclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0XHQuc2V0TmFtZSgnQXV0byBlbmxhcmdlIGJyYWNrZXRzIHRoYXQgY29udGFpbnMgXFxcXHN1bSwgXFxcXGludCBvciBcXFxcZnJhYycpXHJcblx0XHRcdC5zZXREZXNjKCdQbGFjZSBjdXJzb3IgcmlnaHQgYWZ0ZXIgYSAoKSBvciBbXSBicmFja2V0ZWQgZXhwcmVzc2lvbiB0aGF0IGNvbnRhaW5zIGVpdGhlciAnICtcclxuXHRcdFx0XHQnXFxcXHN1bSwgXFxcXGludCBvciBcXFxcZnJhYyBhbmQgcHJlc3MgdGhlIHNwYWNlIGtleSwgdGhlIG91dGVybW9zdCBicmFja2V0cyB3aWxsIGJlJyArXHJcblx0XHRcdFx0JyBhcHBlbmRlZCB3aXRoIFxcXFxsZWZ0IGFuZCBcXFxccmlnaHQgaW4gb3JkZXIgdG8gZGlzcGxheSBsYXJnZXIgYnJhY2tldHMgdG8gZW5jbG9zZSB0aGVzZSBiaWcgZXhwcmVzc2lvbnMuJylcclxuXHRcdFx0LmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB0b2dnbGVcclxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuYXV0b0xhcmdlQnJhY2tldF90b2dnbGUpXHJcblx0XHRcdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuYXV0b0xhcmdlQnJhY2tldF90b2dnbGUgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuXHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdFx0LnNldE5hbWUoJ0F1dG8gZW5jbG9zZSBleHByZXNzaW9uIGFmdGVyIHN1cGVyc2NpcHQgd2l0aCB7fScpXHJcblx0XHRcdC5zZXREZXNjKCdUeXBpbmcgZXhwcmVzc2lvbiBhZnRlciBzdXBlcnNjcmlwdCBcIl5cIiBzeW1ib2wgZm9sbG93IGJ5IGEgXCJzcGFjZVwiIGtleSAnICtcclxuXHRcdFx0XHQnd2lsbCBhdXRvbWF0aWNhbGx5IHN1cnJvdW5kIHRoZSBleHByZXNzaW9uIHdpdGggXCJ7fVwiJylcclxuXHRcdFx0LmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB0b2dnbGVcclxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuYXV0b0VuY2xvc2VTdXBfdG9nZ2xlKVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmF1dG9FbmNsb3NlU3VwX3RvZ2dsZSA9IHZhbHVlO1xyXG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG5cdFx0XHRcdFx0dGhpcy5kaXNwbGF5KCk7XHJcblx0XHRcdFx0fSkpO1xyXG5cclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0XHQuc2V0TmFtZSgnQXV0byBlbmNsb3NlIGV4cHJlc3Npb24gYWZ0ZXIgc3Vic2NyaXB0IHdpdGgge30nKVxyXG5cdFx0XHQuc2V0RGVzYygnVHlwaW5nIGV4cHJlc3Npb24gYWZ0ZXIgc3Vic2NyaXB0IFwiX1wiIHN5bWJvbCBmb2xsb3cgYnkgYSBcInNwYWNlXCIga2V5ICcgK1xyXG5cdFx0XHRcdCd3aWxsIGF1dG9tYXRpY2FsbHkgc3Vycm91bmQgdGhlIGV4cHJlc3Npb24gd2l0aCBcInt9XCIuICcgK1xyXG5cdFx0XHRcdCdOb3RlOiBleHByZXNzaW9uIG1vcmUgdGhhbiAxMCBjaGFyYWN0ZXJzIGxvbmcgd2lsbCBiZSBpZ25vcmVkLicpXHJcblx0XHRcdC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4gdG9nZ2xlXHJcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmF1dG9FbmNsb3NlU3ViX3RvZ2dsZSlcclxuXHRcdFx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5hdXRvRW5jbG9zZVN1Yl90b2dnbGUgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuXHRcdFx0XHRcdHRoaXMuZGlzcGxheSgpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdFx0LnNldE5hbWUoJ1R5cGUgXCIvXCIgaW5zdGVhZCBvZiBcXFxcZnJhY3t9e30nKVxyXG5cdFx0XHQuc2V0RGVzYygnVXNlIFwiL1wiIHN5bWJvbCBmb3IgcXVpY2tseSB0eXBpbmcgZnJhY3Rpb25zLiBlZy4gdHlwZSBcIjEvMlwiIGZvbGxvd2VkIGJ5IGEgXCJzcGFjZVwiIGtleScgK1xyXG5cdFx0XHRcdCcgdG8gdHJhbnNmb3JtIHRvIFxcXFxmcmFjezF9ezJ9JylcclxuXHRcdFx0LmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB0b2dnbGVcclxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuYXV0b0ZyYWN0aW9uX3RvZ2dsZSlcclxuXHRcdFx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5hdXRvRnJhY3Rpb25fdG9nZ2xlID0gdmFsdWU7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcblx0XHRcdFx0XHR0aGlzLmRpc3BsYXkoKTtcclxuXHRcdFx0XHR9KSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdTaG9ydGN1dCBmb3IgQWxpZ24gQmxvY2snKVxyXG5cdFx0XHQuc2V0RGVzYygnVXNlIHNob3J0Y3V0IGtleSB0byBxdWlja2x5IGluc2VydCBcXFxcYmVnaW57YWxpZ24qfSBcXFxcZW5ke2FsaWduKn0gYmxvY2suICcgK1xyXG5cdFx0XHRcdCdEZWZhdWx0OiBcIkFsdCtTaGlmdCtBXCIgKE1hYzogXCJPcHRpb24rU2hpZnQrQVwiKScpXHJcblx0XHRcdC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4gdG9nZ2xlXHJcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmFkZEFsaWduQmxvY2tfdG9nZ2xlKVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmFkZEFsaWduQmxvY2tfdG9nZ2xlID0gdmFsdWU7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcblx0XHRcdFx0XHR0aGlzLmRpc3BsYXkoKTtcclxuXHRcdFx0XHR9KSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdBbGlnbiBCbG9jayBQYXJhbWV0ZXInKVxyXG5cdFx0XHQuc2V0RGVzYygnU2V0IHRoZSB0ZXh0IHBhcmFtZXRlciBpbiBcXFxcYmVnaW57cGFyYW1ldGVyfSBhbmQgXFxcXGVuZHtwYXJhbWV0ZXJ9LicpXHJcblx0XHRcdC5hZGRUZXh0KCh0ZXh0KSA9PiB0ZXh0XHJcblx0XHRcdFx0LnNldFBsYWNlaG9sZGVyKCdkZWZhdWx0OiBhbGlnbionKVxyXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5hZGRBbGlnbkJsb2NrX3BhcmFtZXRlcilcclxuXHRcdFx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5hZGRBbGlnbkJsb2NrX3BhcmFtZXRlciA9IHZhbHVlO1xyXG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdFx0LnNldE5hbWUoJ+OAkE5FVyHjgJFBdXRvLWFsaWduIGF0IHRoZXNlIHN5bWJvbHMnKVxyXG5cdFx0XHQuc2V0RGVzYygnV2hlbiB3aXRoaW4gdGhlIGFsaWduIGJsb2NrLCB0aGUgYWxpZ24gc3ltYm9sIFwiJlwiIHdpbGwgYmUgYXV0b21hdGljYWxseSBhZGRlZCBiZWZvcmUgdGhlc2Ugc3ltYm9scy4gKHNlcGFyYXRlIGJ5IHNwYWNlcyknKVxyXG5cdFx0XHQuYWRkVGV4dCgodGV4dCkgPT4gdGV4dFxyXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5hdXRvQWxpZ25TeW1ib2xzKVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLmF1dG9BbGlnblN5bWJvbHMgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLmF1dG9BbGlnbl9hcnJheSA9IHZhbHVlLnNwbGl0KFwiIFwiKTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuXHRcdFx0XHR9KSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdTaG9ydGN1dCBmb3IgQ2FzZXMgQmxvY2snKVxyXG5cdFx0XHQuc2V0RGVzYygnVXNlIHNob3J0Y3V0IGtleSB0byBxdWlja2x5IGluc2VydCBcXFxcYmVnaW57Y2FzZXN9IFxcXFxlbmR7Y2FzZXN9IGJsb2NrLiAnICtcclxuXHRcdFx0XHQnRGVmYXVsdDogXCJBbHQrU2hpZnQrQ1wiIChNYWM6IFwiT3B0aW9uK1NoaWZ0K0NcIiknKVxyXG5cdFx0XHQuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHRvZ2dsZVxyXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5hZGRDYXNlc0Jsb2NrX3RvZ2dsZSlcclxuXHRcdFx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5hZGRDYXNlc0Jsb2NrX3RvZ2dsZSA9IHZhbHVlO1xyXG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG5cdFx0XHRcdFx0dGhpcy5kaXNwbGF5KCk7XHJcblx0XHRcdFx0fSkpO1xyXG5cdFx0XHRcclxuXHRcdG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG5cdFx0XHQuc2V0TmFtZSgnVXNlIHNoaWZ0LWVudGVyIGZvciBsaW5lIGJyZWFrIGluIGFsaWduIGFuZCBjYXNlcyBibG9jaycpXHJcblx0XHRcdC5zZXREZXNjKCdGb3IgYWxpZ24gYW5kIGNhc2VzIGJsb2NrIGFib3ZlLCBwcmVzc2luZyBlbnRlciBhdXRvbWF0aWNhbGx5IGFkZHMgbGluZSBicmVhayBzeW1ib2wgXCJcXFxcXCIgb3IgXCImXCIuIFN3aXRjaCBoZXJlIHRvIHVzZSBzaGlmdC1lbnRlciBpbnN0ZWFkLicpXHJcblx0XHRcdC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT4gdG9nZ2xlXHJcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLnNoaWZ0RW50ZXJfdG9nZ2xlKVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLnNoaWZ0RW50ZXJfdG9nZ2xlID0gdmFsdWU7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcblx0XHRcdFx0XHR0aGlzLmRpc3BsYXkoKTtcclxuXHRcdFx0XHR9KSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdTaG9ydGN1dCBmb3IgTWF0cml4IEJsb2NrJylcclxuXHRcdFx0LnNldERlc2MoJ1VzZSBzaG9ydGN1dCBrZXkgdG8gcXVpY2tseSAgaW5zZXJ0IFxcXFxiZWdpbntwbWF0cml4fSBcXFxcZW5ke3BtYXRyaXh9IGJsb2NrLiAnICtcclxuXHRcdFx0XHQnRGVmYXVsdDogXCJBbHQrU2hpZnQrTVwiIChNYWM6IFwiT3B0aW9uK1NoaWZ0K01cIiknKVxyXG5cdFx0XHQuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHRvZ2dsZVxyXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5hZGRNYXRyaXhCbG9ja190b2dnbGUpXHJcblx0XHRcdFx0Lm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5wbHVnaW4uc2V0dGluZ3MuYWRkTWF0cml4QmxvY2tfdG9nZ2xlID0gdmFsdWU7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcblx0XHRcdFx0XHR0aGlzLmRpc3BsYXkoKTtcclxuXHRcdFx0XHR9KSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdNYXRyaXggQmxvY2sgUGFyYW1ldGVyJylcclxuXHRcdFx0LnNldERlc2MoJ1NldCB0aGUgdGV4dCBwYXJhbWV0ZXIgaW4gXFxcXGJlZ2lue3BhcmFtZXRlcn0gYW5kIFxcXFxlbmR7cGFyYW1ldGVyfS4nKVxyXG5cdFx0XHQuYWRkVGV4dCgodGV4dCkgPT4gdGV4dFxyXG5cdFx0XHRcdC5zZXRQbGFjZWhvbGRlcignZGVmYXVsdDogcG1hdHJpeCcpXHJcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmFkZE1hdHJpeEJsb2NrX3BhcmFtZXRlcilcclxuXHRcdFx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5hZGRNYXRyaXhCbG9ja19wYXJhbWV0ZXIgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuXHRcdFx0XHR9KSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdDdXN0b20gU2hvcnRoYW5kJylcclxuXHRcdFx0LnNldERlc2MoJ1VzZSBjdXN0b20gc2hvcnRoYW5kIChjYW4gYmUgbXVsdGlwbGUgbGV0dGVycykgZm9yIGNvbW1vbiBsYXRleCBzdHJpbmdzLiAnK1xyXG5cdFx0XHQnRWcsIHR5cGluZyBcImFsXCIgZm9sbG93ZWQgYnkgXCJzcGFjZVwiIGtleSB3aWxsIHJlcGxhY2Ugd2l0aCBcIlxcXFxhbHBoYVwiJylcclxuXHRcdFx0LmFkZFRvZ2dsZSgodG9nZ2xlKSA9PiB0b2dnbGVcclxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VzdG9tU2hvcnRoYW5kX3RvZ2dsZSlcclxuXHRcdFx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXN0b21TaG9ydGhhbmRfdG9nZ2xlID0gdmFsdWU7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcblx0XHRcdFx0XHR0aGlzLmRpc3BsYXkoKTtcclxuXHRcdFx0XHR9KSk7XHJcblxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdDdXN0b20gU2hvcnRoYW5kIFBhcmFtZXRlcicpXHJcblx0XHRcdC5zZXREZXNjKCdTZXBhcmF0ZSB0aGUgbXVsdGktbGV0dGVycyBzaG9ydGhhbmQgYW5kIHRoZSBzbmlwcGV0IHdpdGggXCI6XCIgYW5kICcrXHJcblx0XHRcdCdlbmQgZWFjaCBzZXQgb2Ygc2hvcnRoYW5kIHNuaXBwZXQgcGFpciBieSBcIjtcIiBhbmQgYSBuZXdsaW5lLiAnK1xyXG5cdFx0XHQnRm9yIGV4cHJlc3Npb25zIHRoYXQgZW5kIHdpdGggXCJ7fVwiLCB0aGUgY3Vyc29yIHdpbGwgYXV0b21hdGljYWxseSBiZSBwbGFjZWQgd2l0aGluIHRoZSBicmFja2V0LiAnK1xyXG5cdFx0XHQnQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB0eXBlIFwiI2N1cnNvclwiIHdpdGhpbiB0aGUgc25pcHBldCB0byBzZXQgdGhlIGN1cnNvciBsb2NhdGlvbiBhZnRlciByZXBsYWNlbWVudC4gJytcclxuXHRcdFx0J1lvdSBjYW4gYWxzbyBpbmNsdWRlIFwiI3RhYlwiIHdpdGhpbiB0aGUgc25pcHBldCBmb3IgdXNlIGNhc2VzIHN1Y2ggYXMgbXVsdGlwbGUge31zIChlLmcuIFxcXFxiaW5vbXsjY3Vyc29yfXsjdGFifSkuICcrXHJcblx0XHRcdCdQcmVzc2luZyB0YWIga2V5IGluIHN1Y2ggY2FzZXMgd2lsbCBqdW1wIHRoZSBjdXJzb3IgdG8gdGhlIG5leHQgXCIjdGFiXCIga2V5d29yZC4nK1xyXG5cdFx0XHQnU2hvcnRoYW5kcyBub3cgc3VwcG9ydCBtdWx0aWxpbmUgc25pcHBldHMgdG9vISAnK1xyXG5cdFx0XHQnKHRyeSB1bmluc3RhbGwgdGhlbiByZWluc3RhbGxpbmcgdGhlIHBsdWdpbiB0byBzZWUgdGhlIG5ldyBzZXQgb2Ygc2hvcnRoYW5kcy4pJylcclxuXHRcdFx0LnNldENsYXNzKFwidGV4dC1zbmlwcGV0cy1jbGFzc1wiKVxyXG5cdFx0XHQuYWRkVGV4dEFyZWEoKHRleHQpID0+IHRleHRcclxuXHRcdFx0XHQuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuY3VzdG9tU2hvcnRoYW5kX3BhcmFtZXRlcilcclxuXHRcdFx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5jdXN0b21TaG9ydGhhbmRfcGFyYW1ldGVyID0gdmFsdWU7XHJcblx0XHRcdFx0XHR3aGlsZSh2YWx1ZS5zbGljZSgtMSk9PVwiXFxuXCIpe1xyXG5cdFx0XHRcdFx0XHR2YWx1ZSA9IHZhbHVlLnNsaWNlKDAsLTEpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZih2YWx1ZS5zbGljZSgtMSk9PVwiO1wiKXtcclxuXHRcdFx0XHRcdFx0dmFsdWUgPSB2YWx1ZS5zbGljZSgwLC0xKVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYodmFsdWUubGFzdEluZGV4T2YoXCI7XFxuXCIpPT0tMSl7XHJcblx0XHRcdFx0XHRcdHRoaXMucGx1Z2luLnNob3J0aGFuZF9hcnJheSA9IHZhbHVlLnNwbGl0KFwiLFwiKS5tYXAoaXRlbT0+aXRlbS5zcGxpdChcIjpcIikubWFwKGl0ZW09Pml0ZW0udHJpbSgpKSk7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zaG9ydGhhbmRfYXJyYXkgPSB2YWx1ZS5zcGxpdChcIjtcXG5cIikubWFwKGl0ZW09Pml0ZW0uc3BsaXQoXCI6XCIpKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuXHRcdFx0XHR9KSk7XHJcblx0fTtcclxufSJdLCJuYW1lcyI6WyJQbHVnaW4iLCJQcmVjIiwia2V5bWFwIiwiTWFya2Rvd25WaWV3IiwiUGx1Z2luU2V0dGluZ1RhYiIsIlNldHRpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXVEQTtBQUNPLFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRTtBQUM3RCxJQUFJLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sS0FBSyxZQUFZLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUNoSCxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFLFVBQVUsT0FB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QyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxRQUFRLENBQUMsRUFBRSxFQUFDLEVBQUMsRUFBQyxJQUFJLEVBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUMsUUFBUSxDQUFDLEVBQUUsR0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBO3dCQUMzRyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUM7d0JBQ3JELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksR0FBQyxDQUFDLENBQUMsQ0FBQTt3QkFDakQsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFOzRCQUNuQixNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUMsSUFBSSxFQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQTs0QkFDeEQsT0FBTyxJQUFJLENBQUE7eUJBQ1g7NkJBQU0sSUFBSSxRQUFRLENBQUMsRUFBRSxJQUFJLE9BQU8sSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFOzRCQUN2RCxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUMsSUFBSSxFQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBQyxTQUFTLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQTs0QkFDN0QsT0FBTyxJQUFJLENBQUE7eUJBQ1g7NkJBQU0sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFOzRCQUM1QixNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUMsSUFBSSxFQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQTs0QkFDeEQsT0FBTyxJQUFJLENBQUE7eUJBQ1g7cUJBQ0Q7O29CQUdELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENB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QUUsUUFBUSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO2dDQUM5QyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUMxQixFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUM1QyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtnQ0FDMUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUU7b0NBQzFCLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO2lDQUM5RDtxQ0FBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUU7b0NBQ3ZCLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO2lDQUM5RDs2QkFDRDt5QkFDRDt3QkFFRCxPQUFPO29CQUVSLEtBQUssR0FBRzt3QkFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUI7NEJBQ3JDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUI7NEJBQ3RDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUI7NEJBQ3BDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUI7NEJBQ3BDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0I7NEJBQUUsT0FBTzt3QkFFL0MsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFOzRCQUU1QixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFF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 diff --git a/.obsidian/plugins/quick-latex/manifest.json b/.obsidian/plugins/quick-latex/manifest.json index 2c025e9..dbc86ba 100644 --- a/.obsidian/plugins/quick-latex/manifest.json +++ b/.obsidian/plugins/quick-latex/manifest.json @@ -1,7 +1,7 @@ { "id": "quick-latex", "name": "Quick Latex for Obsidian", - "version": "2.5.0", + "version": "2.5.1", "minAppVersion": "0.9.12", "description": "Speedup latex math typing with auto fraction, align block shortcut, matrix shortcut...etc", "author": "joeyuping", diff --git a/.obsidian/themes/Catppuccin/manifest.json b/.obsidian/themes/Catppuccin/manifest.json index 6dbf2ae..94add72 100644 --- a/.obsidian/themes/Catppuccin/manifest.json +++ b/.obsidian/themes/Catppuccin/manifest.json @@ -1,7 +1,7 @@ { - "name": "Catppuccin", - "version": "0.2.0", - "minAppVersion": "1.0.0", - "author": "Marshall Beckrich", - "authorUrl": "https://github.com/catppuccin/obsidian" + "name": "Catppuccin", + "version": "0.2.13", + "minAppVersion": "1.0.0", + "author": "Marshall Beckrich", + "authorUrl": "https://github.com/catppuccin/obsidian" } diff --git a/.obsidian/themes/Catppuccin/theme.css b/.obsidian/themes/Catppuccin/theme.css index 25a1777..0614418 100644 --- a/.obsidian/themes/Catppuccin/theme.css +++ b/.obsidian/themes/Catppuccin/theme.css @@ -1,11 +1,16 @@ @charset "UTF-8"; body { - /* - List of variables is placed in body rather than :root so - that we can combine all property types including colors - and sort alphabetically to maximize readability in - the compiled app.css file. - ----------------------------------------------------- */ + /** Variables controlling many core aspects of Obsidian's appearance. + * At present (11/1/22), some of these may be overwritten inside other + * selectors. + * If a change you make here is not reflected in the theme, + * cmd/ctrl+f to see if the variable is being defined elsewhere. + * -- Original theme author's notes: + * List of variables is placed in body rather than :root so + * that we can combine all property types including colors + * and sort alphabetically to maximize readability in + * the compiled app.css file. + */ /* Animations */ --anim-duration-none: 0; --anim-duration-superfast: 70ms; @@ -32,7 +37,8 @@ body { /* Callouts */ --callout-border-width: 0.25px; --callout-border-opacity: 0.2; - --callout-padding: var(--size-4-3) var(--size-4-3) var(--size-4-3) var(--size-4-6); + --callout-padding: var(--size-4-3) var(--size-4-3) + var(--size-4-3) var(--size-4-6); --callout-radius: var(--radius-s); --callout-blend-mode: var(--highlight-mix-blend-mode); --callout-title-padding: 0; @@ -89,11 +95,11 @@ body { --embed-padding: 0 0 0 var(--size-4-6); --embed-font-style: inherit; /* Blocks */ - --embed-block-shadow-hover: - 0 0 0 1px var(--background-modifier-border), + --embed-block-shadow-hover: 0 0 0 1px + var(--background-modifier-border), inset 0 0 0 1px var(--background-modifier-border); /* File layout */ - --file-line-width: 54ch; + --file-line-width: 65ch; --file-folding-offset: 24px; --file-margins: var(--size-4-8); --file-header-font-size: var(--font-ui-small); @@ -124,7 +130,10 @@ body { /* Graphs */ --graph-controls-width: 240px; --graph-text: var(--text-normal); - --graph-line: var(--color-base-35, var(--background-modifier-border-focus)); + --graph-line: var( + --color-base-35, + var(--background-modifier-border-focus) + ); --graph-node: var(--text-muted); --graph-node-unresolved: var(--text-faint); --graph-node-focused: var(--text-accent); @@ -194,11 +203,17 @@ body { --icon-color-hover: var(--text-on-accent); --icon-color-active: var(--text-accent); --icon-color-focused: var(--text-normal); - --icon-opacity: 0.8; + --icon-opacity: 1; --icon-opacity-hover: 1; --icon-opacity-active: 1; --clickable-icon-radius: var(--radius-s); /* Indentation guide */ + --indentation-guide-color: rgba(var(--ctp-surface1)); + --indentation-guide-color-active: rgba( + var(--ctp-accent), + 0.7 + ); + --indentation-guide-width: 2px; /* Inline title */ --inline-title-color: var(--h1-color); --inline-title-font: var(--h1-font); @@ -262,8 +277,13 @@ body { --nav-item-color-selected: var(--text-normal); --nav-item-color-highlighted: var(--text-accent-hover); --nav-item-background-hover: var(--background-modifier-hover); - --nav-item-background-active: var(--background-modifier-hover); - --nav-item-background-selected: hsla(var(--color-accent-hsl), 0.2); + --nav-item-background-active: var( + --background-modifier-hover + ); + --nav-item-background-selected: hsla( + var(--color-accent-hsl), + 0.2 + ); --nav-item-padding: var(--size-4-1) var(--size-4-2); --nav-item-weight: inherit; --nav-item-weight-hover: inherit; @@ -281,7 +301,10 @@ body { --modal-max-height: 1000px; --modal-max-width-narrow: 800px; --modal-border-width: var(--border-width); - --modal-border-color: var(--color-base-40, var(--background-modifier-border-focus)); + --modal-border-color: var( + --color-base-40, + var(--background-modifier-border-focus) + ); --modal-radius: var(--radius-l); --modal-community-sidebar-width: 280px; /* Popovers - file previews */ @@ -296,7 +319,10 @@ body { --prompt-max-width: 80vw; --prompt-max-height: 70vh; --prompt-border-width: var(--border-width); - --prompt-border-color: var(--color-base-40, var(--background-modifier-border-focus)); + --prompt-border-color: var( + --color-base-40, + var(--background-modifier-border-focus) + ); /* Radiuses */ --radius-s: 4px; --radius-m: 8px; @@ -306,7 +332,8 @@ body { --ribbon-background: var(--background-secondary); --ribbon-background-collapsed: var(--background-primary); --ribbon-width: 44px; - --ribbon-padding: var(--size-4-2) var(--size-4-1) var(--size-4-3); + --ribbon-padding: var(--size-4-2) var(--size-4-1) + var(--size-4-3); /* Scrollbars */ --scrollbar-active-thumb-bg: rgba(var(--mono-rgb-100), 0.2); --scrollbar-bg: rgba(var(--mono-rgb-100), 0.05); @@ -333,11 +360,15 @@ body { --size-4-16: 64px; --size-4-18: 72px; /* Sidebar */ - --sidebar-markdown-font-size: calc(var(--font-text-size) * 0.9); + --sidebar-markdown-font-size: calc( + var(--font-text-size) * 0.9 + ); --sidebar-tab-text-display: none; /* Sliders */ --slider-thumb-border-width: 1px; - --slider-thumb-border-color: var(--background-modifier-border-hover); + --slider-thumb-border-color: var( + --background-modifier-border-hover + ); --slider-thumb-height: 18px; --slider-thumb-width: 18px; --slider-thumb-y: -6px; @@ -358,7 +389,8 @@ body { --swatch-radius: 14px; --swatch-height: 24px; --swatch-width: 24px; - --swatch-shadow: inset 0 0 0 1px rgba(var(--mono-rgb-100), 0.15); + --swatch-shadow: inset 0 0 0 1px + rgba(var(--mono-rgb-100), 0.15); /* Tabs */ --tab-background-active: var(--background-primary); --tab-text-color: var(--text-faint); @@ -407,22 +439,27 @@ body { --table-row-alt-background: var(--table-background); --table-row-last-border-width: var(--table-border-width); /* Tags */ - --tag-size: var(--font-smaller); - --tag-color: rgb(var(--ctp-peach)); - --tag-color-hover: rgb(var(--ctp-peach)); + --tag-size: var(--font-normal); + --tag-color: rgb(var(--ctp-accent)); + --tag-color-hover: rgb(var(--ctp-accent)); --tag-decoration: none; --tag-decoration-hover: underline; - --tag-background: rgb(var(--ctp-mauve), 0.4); - --tag-background-hover: rgb(var(--ctp-mauve), 0.6); + --tag-background: transparent; + --tag-background-hover: 0; --tag-border-color: hsla(var(--interactive-accent-hsl), 0.1); - --tag-border-color-hover: hsla(var(--interactive-accent-hsl), 0.15); + --tag-border-color-hover: hsla( + var(--interactive-accent-hsl), + 0.15 + ); --tag-border-width: 0; - --tag-padding-x: 0.45em; - --tag-padding-y: 0.25em; - --tag-radius: 0.4em; + --tag-padding-x: 0; + --tag-padding-y: 0; + --tag-radius: 0.8em; /* Window frame */ --titlebar-background: var(--background-secondary); - --titlebar-background-focused: var(--background-secondary-alt); + --titlebar-background-focused: var( + --background-secondary-alt + ); --titlebar-border-width: 0; --titlebar-border-color: var(--background-modifier-border); --titlebar-text-color: var(--text-muted); @@ -446,7 +483,10 @@ body { --vault-name-font-weight: var(--font-medium); --vault-name-color: var(--text-normal); /* Workspace */ - --workspace-background-translucent: rgba(var(--mono-rgb-0), 0.6); + --workspace-background-translucent: rgba( + var(--mono-rgb-0), + 0.6 + ); /* Color mappings ------------------------ */ /* Accent HSL values */ --accent-h: 254; @@ -457,7 +497,10 @@ body { --background-primary-alt: var(--color-base-10); --background-secondary: var(--color-base-20); --background-modifier-hover: rgba(var(--mono-rgb-100), 0.075); - --background-modifier-active-hover: hsla(var(--interactive-accent-hsl), 0.15); + --background-modifier-active-hover: hsla( + var(--interactive-accent-hsl), + 0.15 + ); --background-modifier-border: var(--color-base-30); --background-modifier-border-hover: var(--color-base-35); --background-modifier-border-focus: var(--color-base-40); @@ -487,7 +530,7 @@ body { } /* @settings -name: Catppuccin +name: Catppuccin Accents id: catppuccin-theme-settings settings: - @@ -498,15 +541,15 @@ settings: allowEmpty: false default: ctp-mocha options: - - - label: Frappe - value: ctp-frappe - - - label: Macchiato - value: ctp-macchiato - - - label: Mocha - value: ctp-mocha + - + label: Frappe + value: ctp-frappe + - + label: Macchiato + value: ctp-macchiato + - + label: Mocha + value: ctp-mocha - id: catppuccin-theme-accents title: Theme accent @@ -515,58 +558,672 @@ settings: allowEmpty: false default: ctp-full-palette options: - - - label: Full palette - value: ctp-full-palette - - - label: Rosewater - value: ctp-accent-rosewater - - - label: Flamingo - value: ctp-accent-flamingo - - - label: Pink - value: ctp-accent-pink - - - label: Mauve - value: ctp-accent-mauve - - - label: Red - value: ctp-accent-red - - - label: Maroon - value: ctp-accent-maroon - - - label: Peach - value: ctp-accent-peach - - - label: Yellow - value: ctp-accent-yellow - - - label: Green - value: ctp-accent-green - - - label: Teal - value: ctp-accent-teal - - - label: Sky - value: ctp-accent-sky - - - label: Sapphire - value: ctp-accent-sapphire - - - label: Blue - value: ctp-accent-blue - - - label: Lavender - value: ctp-accent-lavender + - + label: Full palette + value: ctp-full-palette + - + label: Rosewater + value: ctp-accent-rosewater + - + label: Flamingo + value: ctp-accent-flamingo + - + label: Pink + value: ctp-accent-pink + - + label: Mauve + value: ctp-accent-mauve + - + label: Red + value: ctp-accent-red + - + label: Maroon + value: ctp-accent-maroon + - + label: Peach + value: ctp-accent-peach + - + label: Yellow + value: ctp-accent-yellow + - + label: Green + value: ctp-accent-green + - + label: Teal + value: ctp-accent-teal + - + label: Sky + value: ctp-accent-sky + - + label: Sapphire + value: ctp-accent-sapphire + - + label: Blue + value: ctp-accent-blue + - + label: Lavender + value: ctp-accent-lavender +*/ +/* @settings +name: Interface Styles +id: catppuccin-interface-styles +settings: + - + id: ctp-bold-folder-title + title: Bold folder title + description: Show folder title in bold + type: class-toggle +*/ +/* @settings +name: Font Styles +id: catppuccin-font-styles +settings: + - + id: ctp-bold + title: Bold font color + description: Select your bold font color + type: variable-select + allowEmpty: false + default: var(--ctp-sapphire) + options: + - + label: Rosewater + value: var(--ctp-rosewater) + - + label: Flamingo + value: var(--ctp-flamingo) + - + label: Pink + value: var(--ctp-pink) + - + label: Mauve + value: var(--ctp-mauve) + - + label: Red + value: var(--ctp-red) + - + label: Maroon + value: var(--ctp-maroon) + - + label: Peach + value: var(--ctp-peach) + - + label: Yellow + value: var(--ctp-yellow) + - + label: Green + value: var(--ctp-green) + - + label: Teal + value: var(--ctp-teal) + - + label: Sky + value: var(--ctp-sky) + - + label: Sapphire + value: var(--ctp-sapphire) + - + label: Blue + value: var(--ctp-blue) + - + label: Lavender + value: var(--ctp-lavender) + - + label: White + value: var(--ctp-text) + - + label: Gray + value: var(--ctp-subtext0) + - + id: ctp-italic + title: Italic font color + description: Select your italic font color + type: variable-select + allowEmpty: false + default: var(--ctp-green) + options: + - + label: Accent + value: var(--ctp-accent) + - + label: Rosewater + value: var(--ctp-rosewater) + - + label: Flamingo + value: var(--ctp-flamingo) + - + label: Pink + value: var(--ctp-pink) + - + label: Mauve + value: var(--ctp-mauve) + - + label: Red + value: var(--ctp-red) + - + label: Maroon + value: var(--ctp-maroon) + - + label: Peach + value: var(--ctp-peach) + - + label: Yellow + value: var(--ctp-yellow) + - + label: Green + value: var(--ctp-green) + - + label: Teal + value: var(--ctp-teal) + - + label: Sky + value: var(--ctp-sky) + - + label: Sapphire + value: var(--ctp-sapphire) + - + label: Blue + value: var(--ctp-blue) + - + label: Lavender + value: var(--ctp-lavender) + - + label: White + value: var(--ctp-text) + - + label: Gray + value: var(--ctp-subtext0) + - + id: ctp-strikethrough + title: Strikethrough color + description: Select your strikethrough color + type: variable-select + allowEmpty: false + default: var(--ctp-maroon) + options: + - + label: Accent + value: var(--ctp-accent) + - + label: Rosewater + value: var(--ctp-rosewater) + - + label: Flamingo + value: var(--ctp-flamingo) + - + label: Pink + value: var(--ctp-pink) + - + label: Mauve + value: var(--ctp-mauve) + - + label: Red + value: var(--ctp-red) + - + label: Maroon + value: var(--ctp-maroon) + - + label: Peach + value: var(--ctp-peach) + - + label: Yellow + value: var(--ctp-yellow) + - + label: Green + value: var(--ctp-green) + - + label: Teal + value: var(--ctp-teal) + - + label: Sky + value: var(--ctp-sky) + - + label: Sapphire + value: var(--ctp-sapphire) + - + label: Blue + value: var(--ctp-blue) + - + label: Lavender + value: var(--ctp-lavender) + - + label: White + value: var(--ctp-text) + - + label: Gray + value: var(--ctp-subtext0) + - + id: ctp-blockquote + title: Blockquote color + description: Select your blockquote text color + type: variable-select + allowEmpty: false + default: var(--ctp-rosewater) + options: + - + label: Accent + value: var(--ctp-accent) + - + label: Rosewater + value: var(--ctp-rosewater) + - + label: Flamingo + value: var(--ctp-flamingo) + - + label: Pink + value: var(--ctp-pink) + - + label: Mauve + value: var(--ctp-mauve) + - + label: Red + value: var(--ctp-red) + - + label: Maroon + value: var(--ctp-maroon) + - + label: Peach + value: var(--ctp-peach) + - + label: Yellow + value: var(--ctp-yellow) + - + label: Green + value: var(--ctp-green) + - + label: Teal + value: var(--ctp-teal) + - + label: Sky + value: var(--ctp-sky) + - + label: Sapphire + value: var(--ctp-sapphire) + - + label: Blue + value: var(--ctp-blue) + - + label: Lavender + value: var(--ctp-lavender) + - + label: White + value: var(--ctp-text) + - + label: Gray + value: var(--ctp-subtext0) + - + id: headings + title: Headings + type: heading + level: 2 + collapsed: true + - + id: ctp-h1 + title: H1 color + description: Select your H1 color + type: variable-select + allowEmpty: false + default: var(--ctp-accent) + options: + - + label: Accent + value: var(--ctp-accent) + - + label: Rosewater + value: var(--ctp-rosewater) + - + label: Flamingo + value: var(--ctp-flamingo) + - + label: Pink + value: var(--ctp-pink) + - + label: Mauve + value: var(--ctp-mauve) + - + label: Red + value: var(--ctp-red) + - + label: Maroon + value: var(--ctp-maroon) + - + label: Peach + value: var(--ctp-peach) + - + label: Yellow + value: var(--ctp-yellow) + - + label: Green + value: var(--ctp-green) + - + label: Teal + value: var(--ctp-teal) + - + label: Sky + value: var(--ctp-sky) + - + label: Sapphire + value: var(--ctp-sapphire) + - + label: Blue + value: var(--ctp-blue) + - + label: Lavender + value: var(--ctp-lavender) + - + label: White + value: var(--ctp-text) + - + label: Gray + value: var(--ctp-subtext0) + - + id: ctp-h2 + title: H2 color + description: Select your H2 color + type: variable-select + allowEmpty: false + default: var(--ctp-accent) + options: + - + label: Accent + value: var(--ctp-accent) + - + label: Rosewater + value: var(--ctp-rosewater) + - + label: Flamingo + value: var(--ctp-flamingo) + - + label: Pink + value: var(--ctp-pink) + - + label: Mauve + value: var(--ctp-mauve) + - + label: Red + value: var(--ctp-red) + - + label: Maroon + value: var(--ctp-maroon) + - + label: Peach + value: var(--ctp-peach) + - + label: Yellow + value: var(--ctp-yellow) + - + label: Green + value: var(--ctp-green) + - + label: Teal + value: var(--ctp-teal) + - + label: Sky + value: var(--ctp-sky) + - + label: Sapphire + value: var(--ctp-sapphire) + - + label: Blue + value: var(--ctp-blue) + - + label: Lavender + value: var(--ctp-lavender) + - + label: White + value: var(--ctp-text) + - + label: Gray + value: var(--ctp-subtext0) + - + id: ctp-h3 + title: H3 color + description: Select your H3 color + type: variable-select + allowEmpty: false + default: var(--ctp-accent) + options: + - + label: Accent + value: var(--ctp-accent) + - + label: Rosewater + value: var(--ctp-rosewater) + - + label: Flamingo + value: var(--ctp-flamingo) + - + label: Pink + value: var(--ctp-pink) + - + label: Mauve + value: var(--ctp-mauve) + - + label: Red + value: var(--ctp-red) + - + label: Maroon + value: var(--ctp-maroon) + - + label: Peach + value: var(--ctp-peach) + - + label: Yellow + value: var(--ctp-yellow) + - + label: Green + value: var(--ctp-green) + - + label: Teal + value: var(--ctp-teal) + - + label: Sky + value: var(--ctp-sky) + - + label: Sapphire + value: var(--ctp-sapphire) + - + label: Blue + value: var(--ctp-blue) + - + label: Lavender + value: var(--ctp-lavender) + - + label: White + value: var(--ctp-text) + - + label: Gray + value: var(--ctp-subtext0) + - + id: ctp-h4 + title: H4 color + description: Select your H4 color + type: variable-select + allowEmpty: false + default: var(--ctp-accent) + options: + - + label: Accent + value: var(--ctp-accent) + - + label: Rosewater + value: var(--ctp-rosewater) + - + label: Flamingo + value: var(--ctp-flamingo) + - + label: Pink + value: var(--ctp-pink) + - + label: Mauve + value: var(--ctp-mauve) + - + label: Red + value: var(--ctp-red) + - + label: Maroon + value: var(--ctp-maroon) + - + label: Peach + value: var(--ctp-peach) + - + label: Yellow + value: var(--ctp-yellow) + - + label: Green + value: var(--ctp-green) + - + label: Teal + value: var(--ctp-teal) + - + label: Sky + value: var(--ctp-sky) + - + label: Sapphire + value: var(--ctp-sapphire) + - + label: Blue + value: var(--ctp-blue) + - + label: Lavender + value: var(--ctp-lavender) + - + label: White + value: var(--ctp-text) + - + label: Gray + value: var(--ctp-subtext0) + - + id: ctp-h5 + title: H5 color + description: Select your H5 color + type: variable-select + allowEmpty: false + default: var(--ctp-accent) + options: + - + label: Accent + value: var(--ctp-accent) + - + label: Rosewater + value: var(--ctp-rosewater) + - + label: Flamingo + value: var(--ctp-flamingo) + - + label: Pink + value: var(--ctp-pink) + - + label: Mauve + value: var(--ctp-mauve) + - + label: Red + value: var(--ctp-red) + - + label: Maroon + value: var(--ctp-maroon) + - + label: Peach + value: var(--ctp-peach) + - + label: Yellow + value: var(--ctp-yellow) + - + label: Green + value: var(--ctp-green) + - + label: Teal + value: var(--ctp-teal) + - + label: Sky + value: var(--ctp-sky) + - + label: Sapphire + value: var(--ctp-sapphire) + - + label: Blue + value: var(--ctp-blue) + - + label: Lavender + value: var(--ctp-lavender) + - + label: White + value: var(--ctp-text) + - + label: Gray + value: var(--ctp-subtext0) + - + id: ctp-h6 + title: H6 color + description: Select your H6 color + type: variable-select + allowEmpty: false + default: var(--ctp-accent) + options: + - + label: Accent + value: var(--ctp-accent) + - + label: Rosewater + value: var(--ctp-rosewater) + - + label: Flamingo + value: var(--ctp-flamingo) + - + label: Pink + value: var(--ctp-pink) + - + label: Mauve + value: var(--ctp-mauve) + - + label: Red + value: var(--ctp-red) + - + label: Maroon + value: var(--ctp-maroon) + - + label: Peach + value: var(--ctp-peach) + - + label: Yellow + value: var(--ctp-yellow) + - + label: Green + value: var(--ctp-green) + - + label: Teal + value: var(--ctp-teal) + - + label: Sky + value: var(--ctp-sky) + - + label: Sapphire + value: var(--ctp-sapphire) + - + label: Blue + value: var(--ctp-blue) + - + label: Lavender + value: var(--ctp-lavender) + - + label: White + value: var(--ctp-text) + - + label: Gray + value: var(--ctp-subtext0) +*/ +/* @settings + +name: Credits and Source Code +id: source-code +settings: - id: catppuccin-theme-credits-link - title: Source Code - description: 💎 View and contribute to the port at github.com/catppuccin/obsidian + title: Credits and Source Code type: heading level: 1 - collapsed: true + collapsed: false + description: 💎 View and contribute to the port at github.com/catppuccin/obsidian */ .theme-light, .theme-light.ctp-latte { @@ -757,13 +1414,16 @@ settings: --background-secondary-alt: rgb(var(--ctp-crust)); --background-modifier-border: rgb(var(--ctp-surface0)); --background-modifier-form-field: rgba(var(--ctp-crust), 0.3); - --background-modifier-form-field-highlighted: rgba(var(--ctp-crust), 0.22); + --background-modifier-form-field-highlighted: rgba( + var(--ctp-crust), + 0.22 + ); --background-modifier-box-shadow: rgba(var(--ctp-crust), 0.3); - --background-modifier-success: rgba(var(--ctp-green), 0.1); + --background-modifier-success: rgba(var(--ctp-green), 0.9); --background-modifier-success-rgb: var(--ctp-green); - --background-modifier-error: rgba(var(--ctp-red), 0.1); + --background-modifier-error: rgba(var(--ctp-red), 0.9); --background-modifier-error-rgb: var(--ctp-red); - --background-modifier-error-hover: rgba(var(--ctp-red), 0.15); + --background-modifier-error-hover: rgba(var(--ctp-red), 1); --background-modifier-cover: rgba(var(--ctp-crust), 0.8); --color-accent: rgb(var(--ctp-accent)); --color-accent-1: rgb(var(--ctp-accent)); @@ -776,8 +1436,8 @@ settings: --text-faint: rgb(var(--ctp-surface1)); --text-error: rgb(var(--ctp-red)); --text-error-hover: rgba(var(--ctp-red), 0.8); - --text-highlight-bg: rgba(var(--ctp-accent), 0.8); - --text-highlight-bg-active: rgba(var(--ctp-accent), 0.8); + --text-highlight-bg: rgba(var(--ctp-rosewater), 0.8); + --text-highlight-bg-active: rgba(var(--ctp-rosewater), 0.8); --text-selection: rgba(var(--ctp-yellow), 0.8); --text-on-accent: rgb(var(--ctp-base)); --interactive-normal: rgb(var(--ctp-surface0)); @@ -789,6 +1449,29 @@ settings: --scrollbar-active-thumb-bg: rgba(var(--ctp-text), 0.2); --scrollbar-bg: rgba(var(--ctp-text), 0.05); --scrollbar-thumb-bg: rgba(var(--ctp-text), 0.1); + --mono-rgb-0: var(--ctp-crust); + --mono-rgb-100: var(--ctp-text); + --color-red-rgb: var(--ctp-red); + --color-red: rgb(var(--ctp-red)); + --color-green-rgb: var(--ctp-green); + --color-green: rgb(var(--ctp-green)); + --color-orange: rgb(var(--ctp-peach)); + --color-yellow: rgb(var(--ctp-yellow)); + --color-cyan: rgb(var(--ctp-sky)); + --color-blue: rgb(var(--ctp-blue)); + --color-purple: rgb(var(--ctp-lavender)); + --color-pink: rgb(var(--ctp-pink)); + --color-base-00: rgb(var(--ctp-crust)); + --color-base-10: rgb(var(--ctp-mantle)); + --color-base-20: rgb(var(--ctp-base)); + --color-base-25: rgb(var(--ctp-surface0)); + --color-base-30: rgb(var(--ctp-surface1)); + --color-base-35: rgb(var(--ctp-surface2)); + --color-base-40: rgb(var(--ctp-overlay0)); + --color-base-50: rgb(var(--ctp-overlay1)); + --color-base-60: rgb(var(--ctp-overlay2)); + --color-base-70: rgb(var(--ctp-subtext0)); + --color-base-100: rgb(var(--ctp-text)); } .theme-dark { @@ -801,46 +1484,101 @@ settings: --highlight-mix-blend-mode: darken; } -.checkbox-container { - --background-modifier-border-hover: rgb(var(--ctp-red)); - box-shadow: 0 0 2px inset rgb(var(--ctp-base)); -} -.checkbox-container::after { - --toggle-thumb-color: var(--text-on-accent); - box-shadow: 0 0 4px rgb(var(--ctp-base)); -} -.checkbox-container:hover { - box-shadow: none; +/* ------------------CSS Snippets------------------ */ +.ctp-bold-folder-title .nav-folder-title-content { + font-weight: var(--font-bold); } -select:focus, -.dropdown:focus { - box-shadow: 0 0 0 2px rgba(var(--ctp-accent), 0.7); +body { + --font-text-theme: "Vollkorn", -apple-system, blinkmacsystemfont, "Segoe UI", + "Microsoft YaHei Light", inter, sans-serif; + --font-interface-theme: "Nunito Sans", -apple-system, system-ui, + blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif; } -textarea:active, -input[type=text]:active, -input[type=search]:active, -input[type=email]:active, -input[type=password]:active, -input[type=number]:active, -textarea:focus, -input[type=text]:focus, -input[type=search]:focus, -input[type=email]:focus, -input[type=password]:focus, -input[type=number]:focus, -textarea:focus-visible, -input[type=text]:focus-visible, -input[type=search]:focus-visible, -input[type=email]:focus-visible, -input[type=password]:focus-visible, -input[type=number]:focus-visible { - box-shadow: 0 0 0 2px rgba(var(--ctp-accent), 0.7); +strong, +.cm-strong { + --bold-color: rgb(var(--ctp-bold, var(--ctp-sapphire))); } -.tooltip { - color: rgb(var(--ctp-rosewater)); +em, +.cm-em { + --italic-color: rgb(var(--ctp-italic, var(--ctp-green))); +} + +del, +.cm-strikethrough { + color: rgb(var(--ctp-strikethrough, var(--ctp-maroon))); +} + +.markdown-rendered blockquote, +.cm-s-obsidian span.cm-quote { + --blockquote-border-color: rgb(var(--ctp-blockquote, var(--ctp-accent))); + --blockquote-color: rgb(var(--ctp-blockquote, var(--ctp-rosewater))); +} + +h1, +.markdown-rendered h1, +.HyperMD-header-1, +.HyperMD-list-line .cm-header-1 { + --h1-color: rgb(var(--ctp-h1, var(--ctp-accent))); +} + +h2, +.markdown-rendered h2, +.HyperMD-header-2, +.HyperMD-list-line .cm-header-2 { + --h2-color: rgb(var(--ctp-h2, var(--ctp-accent))); +} + +h3, +.markdown-rendered h3, +.HyperMD-header-3, +.HyperMD-list-line .cm-header-3 { + --h3-color: rgb(var(--ctp-h3, var(--ctp-accent))); +} + +h4, +.markdown-rendered h4, +.HyperMD-header-4, +.HyperMD-list-line .cm-header-4 { + --h4-color: rgb(var(--ctp-h4, var(--ctp-accent))); +} + +h5, +.markdown-rendered h5, +.HyperMD-header-5, +.HyperMD-list-line .cm-header-5 { + --h5-color: rgb(var(--ctp-h5, var(--ctp-accent))); +} + +h6, +.markdown-rendered h6, +.HyperMD-header-6, +.HyperMD-list-line .cm-header-6 { + --h6-color: rgb(var(--ctp-h6, var(--ctp-accent))); +} + +::selection { + color: var(--text-on-accent); +} + +.markdown-source-view.mod-cm6 .cm-indent::before { + width: 0; +} + +.markdown-rendered.show-indentation-guide li > ul::before, +.markdown-rendered.show-indentation-guide li > ol::before { + left: -13px; +} + +.cm-hashtag.cm-hashtag-end:hover { + text-decoration: underline 1px var(--text-normal); + text-decoration-thickness: 2px; +} + +.cm-hashtag::selection { + text-shadow: 0.4px 0 0 black; } .markdown-source-view.mod-cm6 .is-unresolved .cm-underline { @@ -851,254 +1589,52 @@ input[type=number]:focus-visible { text-decoration-line: none; } -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow), -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) { - --blockquote-border-color: rgb(var(--ctp-lavender)); - --ctp-accent: var(--ctp-lavender); - --divider-color-hover: rgb(var(--ctp-blue)); - --hr-color: rgb(var(--ctp-blue)); - --indentation-guide-color: rgb(var(--ctp-surface1)); - --indentation-guide-color-active: rgb(var(--ctp-sapphire), 0.7); - --indentation-guide-width: 2px; - --list-marker-color: rgb(var(--ctp-sapphire)); - --checklist-done-color: rgb(var(--ctp-green)); - /* - * Nav bar - */ - /* - * Icons - */ - /* - * Prompts - */ - /* - * Search - */ - /* - * Dropdowns - */ - /* - * Checkboxes - */ - /* - ? I think !important is necessary to overwrite app.css's - */ - /* - * settings slider - */ +.tooltip { + color: rgb(var(--ctp-rosewater)); } -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-vertical .workspace-tab-header:not(.is-active):hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-vertical .workspace-tab-header:not(.is-active):hover { - --background-modifier-hover: rgb(var(--ctp-flamingo)); - --background-modifier-active-hover: rgb(var(--ctp-flamingo)); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) :not(.is-grabbing) .nav-file-title:hover, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) :not(.is-grabbing) .nav-folder-title:hover, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .nav-file-title.is-active, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .nav-folder-title.is-active, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .tree-item-self.is-clickable:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) :not(.is-grabbing) .nav-file-title:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) :not(.is-grabbing) .nav-folder-title:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .nav-file-title.is-active, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .nav-folder-title.is-active, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .tree-item-self.is-clickable:hover { - background-color: rgb(var(--ctp-yellow)); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .nav-folder.mod-root > .nav-folder-title:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .nav-folder.mod-root > .nav-folder-title:hover { - background-color: transparent; - color: rgb(var(--text-normal)); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .clickable-icon.is-active, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header.has-active-menu, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header.has-active-menu, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header.is-active, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header.is-active, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .clickable-icon.is-active, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header.has-active-menu, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header.has-active-menu, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header.is-active, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header.is-active { - box-shadow: inset 0 0 4px rgb(var(--ctp-crust)), inset 0 0 6px rgb(var(--ctp-base)); - outline: 1px solid rgb(var(--ctp-surface1)); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .clickable-icon.is-active svg, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header.has-active-menu svg, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header.has-active-menu svg, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header.is-active svg, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header.is-active svg, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .clickable-icon.is-active svg, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header.has-active-menu svg, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header.has-active-menu svg, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header.is-active svg, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header.is-active svg { - color: rgb(var(--ctp-pink)); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .clickable-icon.is-active:hover, .theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .clickable-icon.is-active:hover svg, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header.has-active-menu:hover, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header.has-active-menu:hover svg, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header.has-active-menu:hover, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header.has-active-menu:hover svg, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header.is-active:hover, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header.is-active:hover svg, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header.is-active:hover, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header.is-active:hover svg, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .clickable-icon.is-active:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .clickable-icon.is-active:hover svg, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header.has-active-menu:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header.has-active-menu:hover svg, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header.has-active-menu:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header.has-active-menu:hover svg, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header.is-active:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header.is-active:hover svg, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header.is-active:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header.is-active:hover svg { - background-color: rgb(var(--ctp-pink)); - box-shadow: none; + +/* markdown ==highlight== colors */ +.markdown-rendered mark, +.cm-s-obsidian span.cm-formatting-highlight, +.cm-s-obsidian span.cm-highlight { + background-color: rgb(var(--ctp-rosewater)); color: var(--text-on-accent); } -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .clickable-icon:hover, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header:hover, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .clickable-icon:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header:hover { - background-color: rgb(var(--ctp-pink)); +.markdown-rendered mark.cm-em, +.markdown-rendered mark em, +.cm-s-obsidian span.cm-formatting-highlight.cm-em, +.cm-s-obsidian span.cm-formatting-highlight em, +.cm-s-obsidian span.cm-highlight.cm-em, +.cm-s-obsidian span.cm-highlight em { + text-align: left; color: var(--text-on-accent); + background-image: linear-gradient(rgb(var(--ctp-green), 0.4), rgb(var(--ctp-green), 0.6), rgb(var(--ctp-green), 0.4)); } -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .clickable-icon:hover svg, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header:hover svg, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header:hover svg, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .clickable-icon:hover svg, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-left-split .workspace-tab-header:hover svg, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-right-split .workspace-tab-header:hover svg { +.markdown-rendered mark.cm-strong, +.markdown-rendered mark strong, +.cm-s-obsidian span.cm-formatting-highlight.cm-strong, +.cm-s-obsidian span.cm-formatting-highlight strong, +.cm-s-obsidian span.cm-highlight.cm-strong, +.cm-s-obsidian span.cm-highlight strong { color: var(--text-on-accent); + background-image: linear-gradient(rgb(var(--ctp-sapphire), 0.4), rgb(var(--ctp-sapphire), 0.6), rgb(var(--ctp-sapphire), 0.4)); } -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .suggestion-item.is-selected, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .suggestion-item.is-selected { - background-color: rgb(var(--ctp-lavender)); +.markdown-rendered mark.cm-strikethrough, +.markdown-rendered mark del, +.cm-s-obsidian span.cm-formatting-highlight.cm-strikethrough, +.cm-s-obsidian span.cm-formatting-highlight del, +.cm-s-obsidian span.cm-highlight.cm-strikethrough, +.cm-s-obsidian span.cm-highlight del { color: var(--text-on-accent); + background-image: linear-gradient(rgb(var(--ctp-red), 0.4), rgb(var(--ctp-red), 0.6), rgb(var(--ctp-red), 0.4)); } -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .suggestion-item.is-selected:hover .suggestion-flair, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .suggestion-item.is-selected:hover .suggestion-flair { - color: var(--text-on-accent); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .suggestion .suggestion-item.mod-group, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .suggestion .suggestion-item.mod-group { - background-color: inherit; - color: var(--text-muted); - font-size: var(--font-ui-medium); - font-variant: all-small-caps; -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .search-suggest-item.is-selected, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .search-suggest-item.is-selected { - background-color: rgb(var(--ctp-accent)); - color: var(--text-on-accent); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .search-suggest-item.is-selected .list-item-part.clickable-icon, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .search-suggest-item.is-selected .list-item-part.clickable-icon { - color: var(--text-muted); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .search-suggest-item.is-selected .search-suggest-info-text, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .search-suggest-item.is-selected .search-suggest-info-text { - color: var(--text-on-accent); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) select:focus, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .dropdown:focus, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) select:focus, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .dropdown:focus { - box-shadow: 0 0 0 2px rgba(var(--ctp-blue), 0.7); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) textarea:active, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=text]:active, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=search]:active, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=email]:active, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=password]:active, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=number]:active, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) textarea:focus, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=text]:focus, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=search]:focus, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=email]:focus, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=password]:focus, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=number]:focus, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) textarea:focus-visible, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=text]:focus-visible, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=search]:focus-visible, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=email]:focus-visible, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=password]:focus-visible, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=number]:focus-visible, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) textarea:active, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=text]:active, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=search]:active, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=email]:active, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=password]:active, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=number]:active, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) textarea:focus, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=text]:focus, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=search]:focus, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=email]:focus, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=password]:focus, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=number]:focus, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) textarea:focus-visible, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=text]:focus-visible, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=search]:focus-visible, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=email]:focus-visible, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=password]:focus-visible, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=number]:focus-visible { - box-shadow: 0 0 0 2px rgba(var(--ctp-blue), 0.7); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=checkbox]:not(:checked), -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=checkbox]:not(:checked) { - border-color: rgb(var(--ctp-maroon)); - background-color: rgb(var(--ctp-red)); - box-shadow: inset 4px 4px 12px rgb(var(--ctp-mantle)), inset -4px -4px 12px rgb(var(--ctp-mantle)); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=checkbox]:not(:checked):hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=checkbox]:not(:checked):hover { - border-width: 2px; -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=checkbox]:checked, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=checkbox]:checked { - border-color: transparent; - background-color: rgb(var(--ctp-green)); - box-shadow: 0 0 0 1px rgb(var(--ctp-green), 0.4); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=checkbox]:checked:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) input[type=checkbox]:checked:hover { - background-color: rgb(var(--ctp-maroon)); - box-shadow: 0 0 0 1px rgb(var(--ctp-maroon), 0.4); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .horizontal-tab-nav-item:hover, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .vertical-tab-nav-item:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .horizontal-tab-nav-item:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .vertical-tab-nav-item:hover { - background-color: rgb(var(--ctp-yellow)); - color: var(--text-on-accent); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .horizontal-tab-nav-item.is-active, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .vertical-tab-nav-item.is-active, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .horizontal-tab-nav-item.is-active, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .vertical-tab-nav-item.is-active { - background-color: rgb(var(--ctp-lavender)); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .horizontal-tab-nav-item.is-active:hover, -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .vertical-tab-nav-item.is-active:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .horizontal-tab-nav-item.is-active:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .vertical-tab-nav-item.is-active:hover { - background-color: rgb(var(--ctp-yellow)); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .HyperMD-header .cm-formatting-header, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .HyperMD-header .cm-formatting-header { - color: rgb(var(--ctp-sapphire)); - font-size: 75% !important; -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-settings input.slider, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-settings input.slider { - --slider-track-background: rgb(var(--ctp-green)); -} -.theme-dark:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-settings input[type=color]::-webkit-color-swatch:hover, -.theme-light:not(.ctp-accent-blue, .ctp-accent-flamingo, .ctp-accent-green, .ctp-accent-lavender, .ctp-accent-maroon, .ctp-accent-mauve, .ctp-accent-peach, .ctp-accent-pink, .ctp-accent-red, .ctp-accent-rosewater, .ctp-accent-sapphire, .ctp-accent-sky, .ctp-accent-teal, .ctp-accent-yellow) .mod-settings input[type=color]::-webkit-color-swatch:hover { - box-shadow: inset 0 0 0 1px rgba(var(--mono-rgb-100), 0.25), 0 0 0 2px rgb(var(--ctp-surface1)); + +/* App's default css seems to prefer ease-in-out, so sticking w/ that here */ +body { + --transition-hover-bg: background-color 0.3s ease-in-out; + --transition-hover-color: color 0.2s ease-in-out; + --transition-hover-color-fast: color 0.2s ease-in-out; + --transition-hover-box-shadow: box-shadow 0.3s ease-in-out; } .callout { @@ -1213,6 +1749,7 @@ input[type=number]:focus-visible { .clickable-icon, .mod-left-split .workspace-tab-header, .mod-right-split .workspace-tab-header { + transition: var(--transition-hover-bg); margin: 0 2px; } .clickable-icon:hover, @@ -1234,12 +1771,14 @@ input[type=number]:focus-visible { .mod-right-split .workspace-tab-header.is-active { box-shadow: inset 0 0 4px rgb(var(--ctp-crust)), inset 0 0 6px rgb(var(--ctp-base)); outline: 1px solid rgb(var(--ctp-surface1)); + transition: var(--transition-hover-bg); } .clickable-icon.is-active svg, .mod-left-split .workspace-tab-header.has-active-menu svg, .mod-right-split .workspace-tab-header.has-active-menu svg, .mod-left-split .workspace-tab-header.is-active svg, .mod-right-split .workspace-tab-header.is-active svg { + transition: background-color 3s ease-in-out; color: rgb(var(--ctp-accent)); } .clickable-icon.is-active:hover, .clickable-icon.is-active:hover svg, @@ -1256,14 +1795,128 @@ input[type=number]:focus-visible { color: var(--text-on-accent); } -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container, -.workspace-tab-header-inner-close-button:hover, +.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header-inner-close-button:hover, .workspace-tab-header.is-active .workspace-tab-header-inner-close-button:hover, -.workspace-tab-header-inner-close-button:hover, -.suggestion :hover.list-item-part.clickable-icon[aria-label="Clear search history"] { +.suggestion :hover.list-item-part.clickable-icon[aria-label="Clear search history"], +.modal-close-button:hover { background-color: rgb(var(--ctp-red)); - box-shadow: 0 0 0 1px rgb(var(--ctp-crust)); + box-shadow: 0 0 2px 1px rgb(var(--ctp-surface1)); color: rgb(var(--ctp-base)); + transition: var(--transition-hover-bg); +} + +.workspace-tab-header-inner-close-button:hover { + background-color: rgb(var(--ctp-red), 0.5); +} + +.workspace-tab-header-inner:hover .workspace-tab-header-inner-icon { + --icon-color-hover: var(--text-faint); + --opacity-icon-hover: 1; +} + +/* +* Windows and Linux mini, max, and close buttons +*/ +.mod-linux .titlebar-button, +.mod-windows .titlebar-button { + transition: var(--transition-hover-bg), var(--transition-hover-color); +} + +.mod-linux .titlebar-button:hover, +.mod-windows .titlebar-button:hover { + background-color: rgb(var(--ctp-pink)); + color: var(--text-on-accent); +} + +.mod-linux .titlebar-button.mod-close:hover, +.mod-windows .titlebar-button.mod-close:hover { + background-color: rgb(var(--ctp-red)); + color: var(--text-on-accent); +} + +/* +* Folder icons +*/ +.nav-folder-collapse-indicator, +.nav-folder.mod-root > .nav-folder-title .nav-folder-title-content::before { + display: none; +} + +/* +* Closed folder +*/ +.nav-folder.is-collapsed .nav-folder-title .nav-folder-title-content::before { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z'%3E%3C/path%3E%3Cpath d='M2 10h20'%3E%3C/path%3E%3C/svg%3E"); + transition: -webkit-mask-image 0.2s ease; +} + +.nav-folder.is-collapsed .nav-folder-title .nav-folder-title-content::before, +.nav-folder .nav-folder-title .nav-folder-title-content::before { + background-color: currentcolor; + margin-right: 8px; + background-repeat: no-repeat; + vertical-align: -2px; + height: var(--icon-xs); + width: var(--icon-xs); +} +.nav-folder.is-collapsed .nav-folder-title .nav-folder-title-content::before:hover, +.nav-folder .nav-folder-title .nav-folder-title-content::before:hover { + color: var(--text-on-accent); +} + +/* +* Open folder +*/ +.nav-folder .nav-folder-title .nav-folder-title-content::before { + display: inline-block; + content: ""; + height: var(--icon-xs); + width: var(--icon-xs); + background-size: 16px 16px; + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 14 1.45-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.55 6a2 2 0 0 1-1.94 1.5H4a2 2 0 0 1-2-2V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H18a2 2 0 0 1 2 2v2'%3E%3C/path%3E%3C/svg%3E"); + transition: -webkit-mask-image 0.2s ease; +} + +select:focus, +.dropdown:focus { + box-shadow: 0 0 0 2px rgba(var(--ctp-accent), 0.7); +} + +textarea:active, +input[type=text]:active, +input[type=search]:active, +input[type=email]:active, +input[type=password]:active, +input[type=number]:active, +textarea:focus, +input[type=text]:focus, +input[type=search]:focus, +input[type=email]:focus, +input[type=password]:focus, +input[type=number]:focus, +textarea:focus-visible, +input[type=text]:focus-visible, +input[type=search]:focus-visible, +input[type=email]:focus-visible, +input[type=password]:focus-visible, +input[type=number]:focus-visible { + box-shadow: 0 0 0 2px rgba(var(--ctp-accent), 0.7); +} + +.checkbox-container { + --background-modifier-border-hover: rgb(var(--ctp-red)); + box-shadow: 0 0 2px inset rgb(var(--ctp-base)); +} +.checkbox-container::after { + --toggle-thumb-color: var(--text-on-accent); + box-shadow: 0 0 4px rgb(var(--ctp-base)); +} +.checkbox-container:hover { + box-shadow: none; +} + +.markdown-rendered button.copy-code-button { + background-color: rgb(var(--ctp-crust)); } .search-result-file-match:hover .search-result-file-match-destination-file:hover { @@ -1302,76 +1955,48 @@ input[type=number]:focus-visible { background-color: rgb(var(--ctp-accent)); } +.search-result-file-match { + transition: var(--transition-hover-bg); +} + .search-result-file-match:hover { - background-color: rgb(var(--ctp-yellow)); + background-color: rgb(var(--ctp-rosewater)); color: var(--text-on-accent); } .search-result-file-match:hover .search-result-file-matched-text { - color: var(--text-on-accent); + color: var(--text-normal); + background-color: var(--color-base-30); } .search-result-file-matched-text { color: var(--text-on-accent); } -.is-flashing { +.is-flashing, +.cm-s-obsidian .is-flashing .cm-url { color: var(--text-on-accent); } -.mod-settings input.slider { - --slider-track-background: rgb(var(--ctp-accent)); -} -.mod-settings input[type=color]::-webkit-color-swatch:hover { - box-shadow: inset 0 0 0 1px rgba(var(--mono-rgb-100), 0.25), 0 0 0 2px rgb(var(--ctp-surface1)); -} -.mod-settings .checkbox-container { - --background-modifier-border-hover: rgb(var(--ctp-red)); - box-shadow: 0 0 2px inset rgb(var(--ctp-base)); -} -.mod-settings .checkbox-container::after { - --toggle-thumb-color: var(--text-on-accent); - box-shadow: 0 0 4px rgb(var(--ctp-base)); -} -.mod-settings .checkbox-container:hover { - box-shadow: none; -} -.mod-settings .checkbox-container.is-enabled { - background-color: rgb(var(--ctp-green)); -} -.mod-settings .vertical-tab-header-group-title { - color: var(--text-muted); - font-size: var(--font-ui-medium); - font-variant: all-small-caps; +.cm-s-obsidian .is-flashing .cm-url .cm-underline:hover { + color: var(--text-on-accent); } -button.mod-cta { - border: 0; - border-radius: var(--button-radius); - -webkit-app-region: no-drag; - color: var(--text-normal); - cursor: var(--cursor); - font-family: inherit; - font-size: var(--font-ui-small); - font-weight: var(--input-font-weight); - outline: none; - user-select: none; - white-space: nowrap; -} -button.mod-cta:not(.clickable-icon) { - background-color: var(--interactive-normal); -} -button.mod-cta:hover { - background-color: var(--interactive-hover); +.community-item .suggestion-highlight { + color: var(--text-on-accent); } -.modal { - border-color: rgb(var(--ctp-surface1)); +.view-header-title-parent .view-header-breadcrumb { + transition: var(--transition-hover-bg), var(--transition-hover-color); +} +.view-header-title-parent .view-header-breadcrumb:hover { + background-color: rgb(var(--ctp-accent)); + color: var(--text-on-accent); } .horizontal-tab-nav-item, .vertical-tab-nav-item { - transition: background-color 0.3s ease, color 0.3s ease; + transition: var(--transition-hover-bg), var(--transition-hover-color); } .horizontal-tab-nav-item:hover, @@ -1391,7 +2016,11 @@ button.mod-cta:hover { .nav-folder-title, .nav-file-title { - transition: background-color 0.3s ease, color 0.3s ease; + transition: var(--transition-hover-bg), var(--transition-hover-color); +} + +.tree-item-self { + transition: var(--transition-hover-bg); } :not(.is-grabbing) .nav-file-title:hover, @@ -1429,44 +2058,731 @@ button.mod-cta:hover { box-shadow: inset 0 0 2px rgb(var(--ctp-crust)), inset 0 0 4px rgb(var(--ctp-mantle)); } -.mod-vertical .workspace-tab-header:not(.is-active):hover { +.mod-vertical .workspace-tab-header:not(.is-active):hover .workspace-tab-header-inner { --background-modifier-hover: rgb(var(--ctp-accent)); --background-modifier-active-hover: rgb(var(--ctp-accent)); } -.mod-vertical .workspace-tab-header:not(.is-active):hover .workspace-tab-header-inner-title { +.mod-vertical .workspace-tab-header:not(.is-active):hover .workspace-tab-header-inner .workspace-tab-header-inner-title { color: var(--text-on-accent); } -.mod-vertical .workspace-tab-header:not(.is-active):hover svg { +.mod-vertical .workspace-tab-header:not(.is-active):hover .workspace-tab-header-inner svg { color: var(--text-on-accent); } -body { - --indentation-guide-color: rgba(var(--ctp-surface1)); - --indentation-guide-color-active: rgba(var(--ctp-accent), 0.7); +.workspace-tab-header:not(.is-active) .workspace-tab-header-inner { + transition: var(--transition-hover-bg), var(--transition-hover-color); +} + +.mod-settings input.slider { + --slider-track-background: rgb(var(--ctp-accent)); +} +.mod-settings input[type=color]::-webkit-color-swatch:hover { + box-shadow: inset 0 0 0 1px rgba(var(--mono-rgb-100), 0.25), 0 0 0 2px rgb(var(--ctp-surface1)); +} +.mod-settings .checkbox-container { + --background-modifier-border-hover: rgb(var(--ctp-red)); + box-shadow: 0 0 2px inset rgb(var(--ctp-base)); +} +.mod-settings .checkbox-container::after { + --toggle-thumb-color: var(--text-on-accent); + box-shadow: 0 0 4px rgb(var(--ctp-base)); +} +.mod-settings .checkbox-container:hover { + box-shadow: none; +} +.mod-settings .vertical-tab-header-group-title { + color: var(--text-muted); + font-size: var(--font-ui-medium); + font-variant: all-small-caps; +} + +.checkbox-container.is-enabled { + background-color: rgb(var(--ctp-green)); +} + +button.mod-cta { + border: 0; + border-radius: var(--button-radius); + -webkit-app-region: no-drag; + color: var(--text-normal); + cursor: var(--cursor); + font-family: inherit; + font-size: var(--font-ui-small); + font-weight: var(--input-font-weight); + outline: none; + user-select: none; + white-space: nowrap; +} +button.mod-cta:not(.clickable-icon) { + background-color: var(--interactive-normal); +} +button.mod-cta:hover { + background-color: var(--interactive-hover); +} + +.modal { + border-color: rgb(var(--ctp-surface1)); +} + +.style-settings-heading[data-id=catppuccin-theme-credits-link] + .style-settings-container, +.style-settings-heading[data-id=catppuccin-theme-credits-link] .style-settings-collapse-indicator { + display: none; +} +.style-settings-heading[data-id=catppuccin-theme-credits-link]:not(.is-collapsed) { + margin-bottom: 0; +} + +.community-item .flair:not(.mod-pop) { + --tag-background: rgb(var(--ctp-accent)); + --tag-color: var(--text-on-accent); + text-transform: lowercase; +} + +.theme-dark:not(.css-settings-manager), +.theme-light:not(.css-settings-manager), +.ctp-full-palette { + --blockquote-border-color: rgb(var(--ctp-lavender)); + --ctp-accent: var(--ctp-lavender); + --divider-color-hover: rgb(var(--ctp-blue)); + --hr-color: rgb(var(--ctp-blue)); + --indentation-guide-color: rgb(var(--ctp-surface1)); + --indentation-guide-color-active: rgb(var(--ctp-sapphire), 0.7); --indentation-guide-width: 2px; + --list-marker-color: rgb(var(--ctp-sapphire)); + --checklist-done-color: rgb(var(--ctp-green)); + /* + * Nav bar + */ + /* + * Icons + */ + /* + * Prompts + */ + /* + * Search + */ + /* + * Dropdowns + */ + /* + * Checkboxes + */ + /* + ? I think !important is necessary to overwrite app.css's + */ + /* + * settings slider + */ +} +.theme-dark:not(.css-settings-manager) .workspace-tab-header-inner-close-button:hover, +.theme-light:not(.css-settings-manager) .workspace-tab-header-inner-close-button:hover, +.ctp-full-palette .workspace-tab-header-inner-close-button:hover { + box-shadow: none; +} +.theme-dark:not(.css-settings-manager) .nav-file-title.is-active, +.theme-dark:not(.css-settings-manager) .nav-folder-title.is-active, +.theme-light:not(.css-settings-manager) .nav-file-title.is-active, +.theme-light:not(.css-settings-manager) .nav-folder-title.is-active, +.ctp-full-palette .nav-file-title.is-active, +.ctp-full-palette .nav-folder-title.is-active { + background-color: rgb(var(--ctp-mauve)); +} +.theme-dark:not(.css-settings-manager) :not(.is-grabbing) .nav-file-title:hover, +.theme-dark:not(.css-settings-manager) :not(.is-grabbing) .nav-folder-title:hover, +.theme-dark:not(.css-settings-manager) .tree-item-self.is-clickable:hover, +.theme-light:not(.css-settings-manager) :not(.is-grabbing) .nav-file-title:hover, +.theme-light:not(.css-settings-manager) :not(.is-grabbing) .nav-folder-title:hover, +.theme-light:not(.css-settings-manager) .tree-item-self.is-clickable:hover, +.ctp-full-palette :not(.is-grabbing) .nav-file-title:hover, +.ctp-full-palette :not(.is-grabbing) .nav-folder-title:hover, +.ctp-full-palette .tree-item-self.is-clickable:hover { + color: var(--text-on-accent); + background-color: rgb(var(--ctp-accent)); +} +.theme-dark:not(.css-settings-manager) .nav-folder.mod-root > .nav-folder-title:hover, +.theme-light:not(.css-settings-manager) .nav-folder.mod-root > .nav-folder-title:hover, +.ctp-full-palette .nav-folder.mod-root > .nav-folder-title:hover { + background-color: transparent; + color: rgb(var(--text-normal)); +} +.theme-dark:not(.css-settings-manager) .clickable-icon.is-active, +.theme-dark:not(.css-settings-manager) .mod-left-split .workspace-tab-header.has-active-menu, +.theme-dark:not(.css-settings-manager) .mod-right-split .workspace-tab-header.has-active-menu, +.theme-dark:not(.css-settings-manager) .mod-left-split .workspace-tab-header.is-active, +.theme-dark:not(.css-settings-manager) .mod-right-split .workspace-tab-header.is-active, +.theme-light:not(.css-settings-manager) .clickable-icon.is-active, +.theme-light:not(.css-settings-manager) .mod-left-split .workspace-tab-header.has-active-menu, +.theme-light:not(.css-settings-manager) .mod-right-split .workspace-tab-header.has-active-menu, +.theme-light:not(.css-settings-manager) .mod-left-split .workspace-tab-header.is-active, +.theme-light:not(.css-settings-manager) .mod-right-split .workspace-tab-header.is-active, +.ctp-full-palette .clickable-icon.is-active, +.ctp-full-palette .mod-left-split .workspace-tab-header.has-active-menu, +.ctp-full-palette .mod-right-split .workspace-tab-header.has-active-menu, +.ctp-full-palette .mod-left-split .workspace-tab-header.is-active, +.ctp-full-palette .mod-right-split .workspace-tab-header.is-active { + transition: var(--transition-hover-bg), var(--transition-hover-box-shadow); + box-shadow: inset 0 0 4px rgb(var(--ctp-crust)), inset 0 0 6px rgb(var(--ctp-base)); + outline: 1px solid rgb(var(--ctp-surface1)); +} +.theme-dark:not(.css-settings-manager) .clickable-icon.is-active svg, +.theme-dark:not(.css-settings-manager) .mod-left-split .workspace-tab-header.has-active-menu svg, +.theme-dark:not(.css-settings-manager) .mod-right-split .workspace-tab-header.has-active-menu svg, +.theme-dark:not(.css-settings-manager) .mod-left-split .workspace-tab-header.is-active svg, +.theme-dark:not(.css-settings-manager) .mod-right-split .workspace-tab-header.is-active svg, +.theme-light:not(.css-settings-manager) .clickable-icon.is-active svg, +.theme-light:not(.css-settings-manager) .mod-left-split .workspace-tab-header.has-active-menu svg, +.theme-light:not(.css-settings-manager) .mod-right-split .workspace-tab-header.has-active-menu svg, +.theme-light:not(.css-settings-manager) .mod-left-split .workspace-tab-header.is-active svg, +.theme-light:not(.css-settings-manager) .mod-right-split .workspace-tab-header.is-active svg, +.ctp-full-palette .clickable-icon.is-active svg, +.ctp-full-palette .mod-left-split .workspace-tab-header.has-active-menu svg, +.ctp-full-palette .mod-right-split .workspace-tab-header.has-active-menu svg, +.ctp-full-palette .mod-left-split .workspace-tab-header.is-active svg, +.ctp-full-palette .mod-right-split .workspace-tab-header.is-active svg { + color: rgb(var(--ctp-pink)); + /* extra long to prevent weird super fast move */ + transition: background-color 4s ease-in-out; +} +.theme-dark:not(.css-settings-manager) .clickable-icon.is-active:hover, .theme-dark:not(.css-settings-manager) .clickable-icon.is-active:hover svg, +.theme-dark:not(.css-settings-manager) .mod-left-split .workspace-tab-header.has-active-menu:hover, +.theme-dark:not(.css-settings-manager) .mod-left-split .workspace-tab-header.has-active-menu:hover svg, +.theme-dark:not(.css-settings-manager) .mod-right-split .workspace-tab-header.has-active-menu:hover, +.theme-dark:not(.css-settings-manager) .mod-right-split .workspace-tab-header.has-active-menu:hover svg, +.theme-dark:not(.css-settings-manager) .mod-left-split .workspace-tab-header.is-active:hover, +.theme-dark:not(.css-settings-manager) .mod-left-split .workspace-tab-header.is-active:hover svg, +.theme-dark:not(.css-settings-manager) .mod-right-split .workspace-tab-header.is-active:hover, +.theme-dark:not(.css-settings-manager) .mod-right-split .workspace-tab-header.is-active:hover svg, +.theme-light:not(.css-settings-manager) .clickable-icon.is-active:hover, +.theme-light:not(.css-settings-manager) .clickable-icon.is-active:hover svg, +.theme-light:not(.css-settings-manager) .mod-left-split .workspace-tab-header.has-active-menu:hover, +.theme-light:not(.css-settings-manager) .mod-left-split .workspace-tab-header.has-active-menu:hover svg, +.theme-light:not(.css-settings-manager) .mod-right-split .workspace-tab-header.has-active-menu:hover, +.theme-light:not(.css-settings-manager) .mod-right-split .workspace-tab-header.has-active-menu:hover svg, +.theme-light:not(.css-settings-manager) .mod-left-split .workspace-tab-header.is-active:hover, +.theme-light:not(.css-settings-manager) .mod-left-split .workspace-tab-header.is-active:hover svg, +.theme-light:not(.css-settings-manager) .mod-right-split .workspace-tab-header.is-active:hover, +.theme-light:not(.css-settings-manager) .mod-right-split .workspace-tab-header.is-active:hover svg, +.ctp-full-palette .clickable-icon.is-active:hover, +.ctp-full-palette .clickable-icon.is-active:hover svg, +.ctp-full-palette .mod-left-split .workspace-tab-header.has-active-menu:hover, +.ctp-full-palette .mod-left-split .workspace-tab-header.has-active-menu:hover svg, +.ctp-full-palette .mod-right-split .workspace-tab-header.has-active-menu:hover, +.ctp-full-palette .mod-right-split .workspace-tab-header.has-active-menu:hover svg, +.ctp-full-palette .mod-left-split .workspace-tab-header.is-active:hover, +.ctp-full-palette .mod-left-split .workspace-tab-header.is-active:hover svg, +.ctp-full-palette .mod-right-split .workspace-tab-header.is-active:hover, +.ctp-full-palette .mod-right-split .workspace-tab-header.is-active:hover svg { + background-color: rgb(var(--ctp-pink)); + box-shadow: none; + color: var(--text-on-accent); +} +.theme-dark:not(.css-settings-manager) .clickable-icon, +.theme-dark:not(.css-settings-manager) .mod-left-split .workspace-tab-header, +.theme-dark:not(.css-settings-manager) .mod-right-split .workspace-tab-header, +.theme-light:not(.css-settings-manager) .clickable-icon, +.theme-light:not(.css-settings-manager) .mod-left-split .workspace-tab-header, +.theme-light:not(.css-settings-manager) .mod-right-split .workspace-tab-header, +.ctp-full-palette .clickable-icon, +.ctp-full-palette .mod-left-split .workspace-tab-header, +.ctp-full-palette .mod-right-split .workspace-tab-header { + transition: var(--transition-hover-bg); +} +.theme-dark:not(.css-settings-manager) .clickable-icon:hover, +.theme-dark:not(.css-settings-manager) .mod-left-split .workspace-tab-header:hover, +.theme-dark:not(.css-settings-manager) .mod-right-split .workspace-tab-header:hover, +.theme-light:not(.css-settings-manager) .clickable-icon:hover, +.theme-light:not(.css-settings-manager) .mod-left-split .workspace-tab-header:hover, +.theme-light:not(.css-settings-manager) .mod-right-split .workspace-tab-header:hover, +.ctp-full-palette .clickable-icon:hover, +.ctp-full-palette .mod-left-split .workspace-tab-header:hover, +.ctp-full-palette .mod-right-split .workspace-tab-header:hover { + background-color: rgb(var(--ctp-pink)); + color: var(--text-on-accent); +} +.theme-dark:not(.css-settings-manager) .clickable-icon:hover svg, +.theme-dark:not(.css-settings-manager) .mod-left-split .workspace-tab-header:hover svg, +.theme-dark:not(.css-settings-manager) .mod-right-split .workspace-tab-header:hover svg, +.theme-light:not(.css-settings-manager) .clickable-icon:hover svg, +.theme-light:not(.css-settings-manager) .mod-left-split .workspace-tab-header:hover svg, +.theme-light:not(.css-settings-manager) .mod-right-split .workspace-tab-header:hover svg, +.ctp-full-palette .clickable-icon:hover svg, +.ctp-full-palette .mod-left-split .workspace-tab-header:hover svg, +.ctp-full-palette .mod-right-split .workspace-tab-header:hover svg { + color: var(--text-on-accent); +} +.theme-dark:not(.css-settings-manager) .suggestion-item.is-selected, +.theme-light:not(.css-settings-manager) .suggestion-item.is-selected, +.ctp-full-palette .suggestion-item.is-selected { + background-color: rgb(var(--ctp-lavender)); + color: var(--text-on-accent); +} +.theme-dark:not(.css-settings-manager) .suggestion-item.is-selected:hover .suggestion-flair, +.theme-light:not(.css-settings-manager) .suggestion-item.is-selected:hover .suggestion-flair, +.ctp-full-palette .suggestion-item.is-selected:hover .suggestion-flair { + color: var(--text-on-accent); +} +.theme-dark:not(.css-settings-manager) .suggestion .suggestion-item.mod-group, +.theme-light:not(.css-settings-manager) .suggestion .suggestion-item.mod-group, +.ctp-full-palette .suggestion .suggestion-item.mod-group { + background-color: inherit; + color: var(--text-muted); + font-size: var(--font-ui-medium); + font-variant: all-small-caps; +} +.theme-dark:not(.css-settings-manager) .search-suggest-item.is-selected, +.theme-light:not(.css-settings-manager) .search-suggest-item.is-selected, +.ctp-full-palette .search-suggest-item.is-selected { + background-color: rgb(var(--ctp-accent)); + color: var(--text-on-accent); +} +.theme-dark:not(.css-settings-manager) .search-suggest-item.is-selected .list-item-part.clickable-icon, +.theme-light:not(.css-settings-manager) .search-suggest-item.is-selected .list-item-part.clickable-icon, +.ctp-full-palette .search-suggest-item.is-selected .list-item-part.clickable-icon { + color: var(--text-muted); +} +.theme-dark:not(.css-settings-manager) .search-suggest-item.is-selected .search-suggest-info-text, +.theme-light:not(.css-settings-manager) .search-suggest-item.is-selected .search-suggest-info-text, +.ctp-full-palette .search-suggest-item.is-selected .search-suggest-info-text { + color: var(--text-on-accent); +} +.theme-dark:not(.css-settings-manager) select:focus, +.theme-dark:not(.css-settings-manager) .dropdown:focus, +.theme-light:not(.css-settings-manager) select:focus, +.theme-light:not(.css-settings-manager) .dropdown:focus, +.ctp-full-palette select:focus, +.ctp-full-palette .dropdown:focus { + box-shadow: 0 0 0 2px rgba(var(--ctp-blue), 0.7); +} +.theme-dark:not(.css-settings-manager) textarea:active, +.theme-dark:not(.css-settings-manager) input[type=text]:active, +.theme-dark:not(.css-settings-manager) input[type=search]:active, +.theme-dark:not(.css-settings-manager) input[type=email]:active, +.theme-dark:not(.css-settings-manager) input[type=password]:active, +.theme-dark:not(.css-settings-manager) input[type=number]:active, +.theme-dark:not(.css-settings-manager) textarea:focus, +.theme-dark:not(.css-settings-manager) input[type=text]:focus, +.theme-dark:not(.css-settings-manager) input[type=search]:focus, +.theme-dark:not(.css-settings-manager) input[type=email]:focus, +.theme-dark:not(.css-settings-manager) input[type=password]:focus, +.theme-dark:not(.css-settings-manager) input[type=number]:focus, +.theme-dark:not(.css-settings-manager) textarea:focus-visible, +.theme-dark:not(.css-settings-manager) input[type=text]:focus-visible, +.theme-dark:not(.css-settings-manager) input[type=search]:focus-visible, +.theme-dark:not(.css-settings-manager) input[type=email]:focus-visible, +.theme-dark:not(.css-settings-manager) input[type=password]:focus-visible, +.theme-dark:not(.css-settings-manager) input[type=number]:focus-visible, +.theme-light:not(.css-settings-manager) textarea:active, +.theme-light:not(.css-settings-manager) input[type=text]:active, +.theme-light:not(.css-settings-manager) input[type=search]:active, +.theme-light:not(.css-settings-manager) input[type=email]:active, +.theme-light:not(.css-settings-manager) input[type=password]:active, +.theme-light:not(.css-settings-manager) input[type=number]:active, +.theme-light:not(.css-settings-manager) textarea:focus, +.theme-light:not(.css-settings-manager) input[type=text]:focus, +.theme-light:not(.css-settings-manager) input[type=search]:focus, +.theme-light:not(.css-settings-manager) input[type=email]:focus, +.theme-light:not(.css-settings-manager) input[type=password]:focus, +.theme-light:not(.css-settings-manager) input[type=number]:focus, +.theme-light:not(.css-settings-manager) textarea:focus-visible, +.theme-light:not(.css-settings-manager) input[type=text]:focus-visible, +.theme-light:not(.css-settings-manager) input[type=search]:focus-visible, +.theme-light:not(.css-settings-manager) input[type=email]:focus-visible, +.theme-light:not(.css-settings-manager) input[type=password]:focus-visible, +.theme-light:not(.css-settings-manager) input[type=number]:focus-visible, +.ctp-full-palette textarea:active, +.ctp-full-palette input[type=text]:active, +.ctp-full-palette input[type=search]:active, +.ctp-full-palette input[type=email]:active, +.ctp-full-palette input[type=password]:active, +.ctp-full-palette input[type=number]:active, +.ctp-full-palette textarea:focus, +.ctp-full-palette input[type=text]:focus, +.ctp-full-palette input[type=search]:focus, +.ctp-full-palette input[type=email]:focus, +.ctp-full-palette input[type=password]:focus, +.ctp-full-palette input[type=number]:focus, +.ctp-full-palette textarea:focus-visible, +.ctp-full-palette input[type=text]:focus-visible, +.ctp-full-palette input[type=search]:focus-visible, +.ctp-full-palette input[type=email]:focus-visible, +.ctp-full-palette input[type=password]:focus-visible, +.ctp-full-palette input[type=number]:focus-visible { + box-shadow: 0 0 0 2px rgba(var(--ctp-blue), 0.7); +} +.theme-dark:not(.css-settings-manager) input[type=checkbox]:not(:checked), +.theme-light:not(.css-settings-manager) input[type=checkbox]:not(:checked), +.ctp-full-palette input[type=checkbox]:not(:checked) { + border-color: rgb(var(--ctp-maroon)); + background-color: rgb(var(--ctp-red)); + box-shadow: inset 4px 4px 12px rgb(var(--ctp-mantle)), inset -4px -4px 12px rgb(var(--ctp-mantle)); +} +.theme-dark:not(.css-settings-manager) input[type=checkbox]:not(:checked):hover, +.theme-light:not(.css-settings-manager) input[type=checkbox]:not(:checked):hover, +.ctp-full-palette input[type=checkbox]:not(:checked):hover { + border-width: 2px; +} +.theme-dark:not(.css-settings-manager) input[type=checkbox]:checked, +.theme-light:not(.css-settings-manager) input[type=checkbox]:checked, +.ctp-full-palette input[type=checkbox]:checked { + border-color: transparent; + background-color: rgb(var(--ctp-green)); + box-shadow: 0 0 0 1px rgb(var(--ctp-green), 0.4); +} +.theme-dark:not(.css-settings-manager) input[type=checkbox]:checked:hover, +.theme-light:not(.css-settings-manager) input[type=checkbox]:checked:hover, +.ctp-full-palette input[type=checkbox]:checked:hover { + background-color: rgb(var(--ctp-maroon)); + box-shadow: 0 0 0 1px rgb(var(--ctp-maroon), 0.4); +} +.theme-dark:not(.css-settings-manager) .horizontal-tab-nav-item:hover, +.theme-dark:not(.css-settings-manager) .vertical-tab-nav-item:hover, +.theme-light:not(.css-settings-manager) .horizontal-tab-nav-item:hover, +.theme-light:not(.css-settings-manager) .vertical-tab-nav-item:hover, +.ctp-full-palette .horizontal-tab-nav-item:hover, +.ctp-full-palette .vertical-tab-nav-item:hover { + background-color: rgb(var(--ctp-accent)); + color: var(--text-on-accent); +} +.theme-dark:not(.css-settings-manager) .horizontal-tab-nav-item.is-active, +.theme-dark:not(.css-settings-manager) .vertical-tab-nav-item.is-active, +.theme-light:not(.css-settings-manager) .horizontal-tab-nav-item.is-active, +.theme-light:not(.css-settings-manager) .vertical-tab-nav-item.is-active, +.ctp-full-palette .horizontal-tab-nav-item.is-active, +.ctp-full-palette .vertical-tab-nav-item.is-active { + background-color: rgb(var(--ctp-mauve)); +} +.theme-dark:not(.css-settings-manager) .horizontal-tab-nav-item.is-active:hover, +.theme-dark:not(.css-settings-manager) .vertical-tab-nav-item.is-active:hover, +.theme-light:not(.css-settings-manager) .horizontal-tab-nav-item.is-active:hover, +.theme-light:not(.css-settings-manager) .vertical-tab-nav-item.is-active:hover, +.ctp-full-palette .horizontal-tab-nav-item.is-active:hover, +.ctp-full-palette .vertical-tab-nav-item.is-active:hover { + background-color: rgb(var(--ctp-accent)); +} +.theme-dark:not(.css-settings-manager) .HyperMD-header .cm-formatting-header, +.theme-light:not(.css-settings-manager) .HyperMD-header .cm-formatting-header, +.ctp-full-palette .HyperMD-header .cm-formatting-header { + color: rgb(var(--ctp-sapphire)); + font-size: 75% !important; +} +.theme-dark:not(.css-settings-manager) .mod-settings input.slider, +.theme-light:not(.css-settings-manager) .mod-settings input.slider, +.ctp-full-palette .mod-settings input.slider { + --slider-track-background: rgb(var(--ctp-green)); +} +.theme-dark:not(.css-settings-manager) .mod-settings input[type=color]::-webkit-color-swatch:hover, +.theme-light:not(.css-settings-manager) .mod-settings input[type=color]::-webkit-color-swatch:hover, +.ctp-full-palette .mod-settings input[type=color]::-webkit-color-swatch:hover { + box-shadow: inset 0 0 0 1px rgba(var(--mono-rgb-100), 0.25), 0 0 0 2px rgb(var(--ctp-surface1)); } -::selection { +/* Better Command Palette */ +/* Fixes highlight error */ +.better-command-palette .suggestion-item.mod-complex.is-selected .suggestion-note { color: var(--text-on-accent); } -.markdown-source-view.mod-cm6 .cm-indent::before { - width: 0; +.better-command-palette .better-command-palette-title { + margin: var(--size-4-3); + padding-left: var(--size-4-3); } -.markdown-rendered.show-indentation-guide li > ul::before, -.markdown-rendered.show-indentation-guide li > ol::before { - left: -13px; +.better-command-palette .suggestion-item .suggestion-flair { + background-color: rgb(var(--ctp-surface0)); + color: var(--text-muted); + border-radius: var(--radius-s); + margin-bottom: 1px; } -:root { - --default-font: "Vollkorn", "Gentium Book Basic", -apple-system, blinkmacsystemfont, "Segoe UI", "Microsoft YaHei Light", sans-serif; - --font-monospace: "Mononoki Nerd Font Mono", sfmono-regular, consolas, "Roboto Mono", monospace; +.better-command-palette.better-command-palette .suggestion-item.is-selected:hover .suggestion-flair { + color: var(--text-muted); } -body { - --font-text-theme: "Vollkorn", "Gentium Book Basic", inter, -apple-system, blinkmacsystemfont, "Segoe UI", "Microsoft YaHei Light", sans-serif; - --font-interface-theme: "Public Sans", "Gill Sans", -apple-system, system-ui, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif; +/* Improves spacing around hidden palette items box */ +.better-command-palette.better-command-palette .suggestion-hotkey { + padding: var(--size-2-1) var(--size-4-3); + margin-right: var(--size-2-3); +} + +.better-command-palette .hidden-items-header { + padding-left: 12px; + margin-bottom: 6px; +} + +.better-command-palette .hidden-items-header:empty { + margin: 1px; +} + +/* cyrillic-ext */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url(data:font/woff2;base64,d09GMgABAAAAAHCEABMAAAAA8lgAAHARAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoJSG64wHIEsP0hWQVKFGwZgP1NUQVSBDicmAIMYL2ARCAqB3XyBrhoLg2AAMIGeAgE2AiQDhzwEIAWIDgeUDxtL1zdQlGt3NhJ0GwJ1XOppfspfMxMpOA8i/Rb4k7MDtdsBFaX5d5r9//8nJSgZQz/BXgIioNq6CQ8RGLLWBtr7Ucc8sjYi1WOuUNe5V10tr373lQ3l1c5qHswOwiBuA+Z7mxOh1iyKw50mgxCoKYoqmk4UhD83/0133XGkk1tV4VGwzFx27O6Y+9Bl6psnNnH6m+W30qsG5zuEACwUsAgHgxcrnDwJZ5q3RbUR5smqpcPjg2mfmlo4HfelPA3ODP1tNNwDwEHgLR4nNT2Szf/dzJvRbPu8xwznCBdK62aLALeJH6kjHpE81K/17+m+s/P2M7AKs0rFpXZsjIlNeUJwSOrf4Wmb/967hOO4o0IwQJmVrATXYS267pxz6apLV6l/30WlCTdEutXQQ0JCILWRDulAEgJsWiWh1UAoAhaaFfUCeEV9vYilnofgedU7FFuJiqVHzys9qFfedmC70n7SWe8bQo3IwHvgo+6HCDogsnl/uipVeiL0olkSYXDiJQ9cqHHNxzAQyVBu1gx0T2buPALVlZqu/s41IbRdo3r6M5t8Z74xvELAG/AVE2RqLmvtxRbHV/gq9ZqUaWzeHmyYNnxAuIBMnCPIoqT9KdAN7wslKQicnduMlXOdf532383EZskW0iUB2pItmSAZwA9ALZd7fia73PZA5VYfkCZ5Q7r13zwz/SsOBIjLEIUES7BgCZCF3T2xuv5FdVZd7eU5Wnh9vgjyQHeks1zJsvVImC6pCPr0VNsXqvukIjYKDNICzwLC2JAFPD/F5nz+vXwTfWNB11TFptrTf6iot9wSQuLH6xHuXOk5yciY2lw9fhqAocgwBCNv34EAT0AzIeDf1/a1+E0Wg9Hk97hk33RqLMGBYpouYSX7m0lVQ6inqentHbZ2mswE8hUhAf/Vylmaxyl/rVCro7owAmknuTvNOK5DT63i1GDRbiU6xvP/L+2Vvqey3b1BE1Y7YKYFkJn73sx9ZUbd69Fo5d3ftfpV+l2uMyp/VF2a9rv3tCrvT+vQJ8w0MACFlY5YAAvMCUHhQTAnkOfvVc1aPHxB0UFYHWYpRzpwhlon0aFf6S5Xp6tCbEPRkAAT+AkvuWkI0vLAmZQcCErr4UqbpN2doYLlECWHnD4pywdRIw9IJzqEFCsX5VXFNW3qrqiuLa8qr+hcNNcfDz8Xy3f8JwguGsuqzVAtRZj7Qdi1NWco3VSy8K+mmvfpyB1LYA21kBejEOnlUr/5Pu09CdSfVrOUJUoJJYQQxzCMQ5itUerzy/e9GjU1aZgxjmlKwQ2IDezCK7+rv/ZQZ9uJGsSEzJ/DjzH1PySY1/HGTN9KZ2xjIyqBE07uRCT5f78XMGphGxgmQsIyd1DQm6BIQdEeihUPShSULMjtoRpqgzweSdMA1EhQkwY1025Rus7RBY901R3Us6A++mmgoRpttHLkKs+MmIWgOYLmFjTfoliCR5ZZDVoraH1BG+3UbofjCB456jjopKCzgs4XdNHlmcgXYOzaQSBHur3Jsxh76yWYm/0XbxvwfZyXVbNWGkLGpNJRLEiyohumg8O03AAIAJCDcOAGWD2S10FUj2zSB1EDgyQGUQAHAIBp+2VAaxKDv+/2VwAHMkBPvQJogTWQqjEeHD9lY8fMoF4AQAP0s160XMsr63eDaFFiNNRcCx110hkjaU+rp+ZK6qRnt2vFS9PJjrukJjrRObvkrG+hB9oBJtrQ2SJp/x6wg913QUguoo0j+Dn0g+NX1n9geDw1q2CMn410ePn6bpfPp5Xo3nn851H/bYlnoCGTdqnybP2Cf9t4yZvrSalnLDd3RsaK+/68a1Vfybk1zbBfszF56fXVI4VaWDJ7pCMQjJvNCeueqpJCfsT79eXSe0Cx3LG+O3qm9wNLYt9Tvgl9/N/X7Q7WypnqT+Q8fKrdkoXgy1v1bRuko+6gGRn/2HuW7/ftrL9QNbcB16MwNUAL+0oBfWFvOLCxqlTdQApLd3/bj5pfP/2PT/Uid90vFeXApAiMmaRy35Sf6e5476anPP47vTJSAL6tl0qPRKKynbY+dei/qRav6pxeOKrmup5dl0KvTz3AzCX1itOiSLlb6lO0hiUlAJriXILrgq5UTBv7P+0F9ZTZkjWvfMfLPInyOxdgnG3PV/ChB+gRxiedfhXEBoMrCrwgtejTfXqujlt8ne/RkfNEbbXWQ6m81ToacHoCI7dalLeZDJp6hRP12pmdbH4hh5GP1/LL1Pea1NtaodURR0dq1nPkGflavKxr17fj3DGj7u7n2++6vnWrwTv3G1kLD7e/tOTCcrLdpODOCLYrJlw0XCw3mZpqUkvlpVFXA/q7oZn7piyaW0DrzqlXVbw+StDPJxpgoCSDlWJYuP8h9qNVJ1iNNp/HQsaaWGypplZYqYXVF7Wy9m+trbdBG1vs1M5ux2U7dXnfxzlX9L2tzjjfIeGSXIQokSJESSlatFhR4jwjXhJKStKyPK2ueggNkrp5jam01AqrtTYIbSVKu8bI1OHwuqPOlLoiWvekRcNCpFwuDHKDRZIRRcrxmKly4fJEmv6ZM8Ns5G058qn4nTnmIcz85LUCB6KABBqMrdHrbbbD7JBIOxtntz262+uAhoMOw+/YBosJd0zQ8cQVNr4gmfMec8FFUIFwhZ5zyWVXyuAbUlD3DeR84Hd0et+mcI18qlv9zFcTg+ONnGIEQxXqOsQPQcphXjsnwCZ3nRWvGpsC0CwPXIsksyWt+8btEP8IjZLYcofh3xRL6nTmkuVn5aQPpg3Km8mM3EDVJQ42I7BaxemFaFvTNQlA8MCAT6BI4bb4fcf+IONHKBoFIElp0KVJjT5tEgwMjyMCgamTIyB0yOjRajsXBp97xMKdEgdFXzjRQyVE1482itVzemwrVH3efjx5v/FmvTQE9Et4yBHl7Jf8YyLSomOlnqM7gItpxwPje+SRu5AX8H4c3XfXp8Yghb4tpa020DIhat4erv+ZLwQJw/JJqPuZ2CqrTe9LaHqPa645+E7ISp7kVklCLlfUHCitIzoG+0Yh2jbX3LDHc2oH0LnXqWXBmvL6eFkcLAMNc2vfm0WkkAtcHRih0ZkGSVSQb7jX53qMmHM/NfjXHqHz1x7G2nt57rA0/Pr23pxVvUtGPvy+BRlVUx4dHAFcRc6B2WP19BPXjc1ANgu7FvMX94B9NMEqSNUy587Pp/ZrWH8mobO2Bf4RWnv7Vx1nCp5DnHcBNAHKVapSp16bTkMWLFu1ZccuIjI6BjYRMQknr2RFNGpUFqrF0mpjrFXGNYZFmrGU9iyjB4vpzSJ9WdYgrCCWoQWwcotY0ipWaSOW9ZEJJ2BJZ/4Sxd0BUYMmIGgcmo3moIJGoeFoIpqOWhRoLAzZv1Zes5neyFaQCnrP/Rfol/jvsfGSMeONguu+bszb72r0hcdaLZDDIaaWZE1YGoRkazC0hvkyorbeBhlsiAKFLtXI0eJKba7pG0ba9rHPNdiJMJgNroYkjvqOQV7jq8/XXxc7FykTLhqAQKEzWFweP0silStVOWptni6/oBDSG4xmi9XucBV5fcUlpWXlFZVV1TV19Q2BWlrtTq8/HI2n6eLo5O3b33xMxe4Q8JsltnJGYJFRMXHx8IlpmHg9PUX44i/Brwg8XFFrwAQGhY5gRTEXPB0NFSdwkIidbAyVeFLMmAJaM2hMoaaIbCbFapHgcuk6eRyjXA+hOBBTh1estBAqzbHUY7YCsDaUMwqIIgQCuU0BsWUyUwlJhZYSk4cRRC40ThmFMnDGAmxTZR0hvkdiD2XOZmalRq0eMUcVWdWPCnaJ0Rm79TCNM4OUJVYeO7iKd0myDZmp0swjjUIQ4IBANqCK4rIRfqCZqlRFVcpMNCQ/drJUqByFM8+fHBQIIIBVrD/HCtRY2qEkCQgBSBhPkROCLCfeLlUwGkXOTQbP1jEfAeR9mQk4EXc/ruQKRhiRLwD/d9ScJeB8033ug+T4xYZAc1l8nAvg/QDxem4GzEWATw/edgNRgIXQPTdFySkZAD9c7hw9pQcp2YRLVkcL2TBAhhzOB/JJQADECPjnGDoSZSaOKg8djQWyY7DcxRYQCgMgxToL9azzAxv51rC/04QsPlyDt1cbZuwnnl2gVJ6cGEYWj9wLZyoehm56NAOaUc28Zl8jsbRH6wl70rnVKtJc2/RvhjezmoXNwR7fI/cyepLsVMKobyd+YP3X3cwqWKTeAdhCBdQDWE4oQRmAMoFkAYtzbI3fuoBsEDmgcsHkgcuHUACpEEoRtGIYJbD2PCiDV46gAlElkipk1ShqUNWiqUPXgKkRS5NmHC24WvG04Wsn0EGokwhbF7FuEj2kesn0keunMEBpkMoQtWEaI7RG6YzRG2cwwWiSyRSzaRYzrGbZzLGb57DAaZHLErdlHiu8VvmUwqnHsCFoUwjeEDAWAmmR5Bai5vO7MOgVxTAoT8tjbCDEv1U/LlIAsPMS4wNpJ0NMCBRvFE9MBqFxopgEgrWaB/g3KvHrQu1Mt+AFYOkDQO80UK4Wyg9CVTB3CIdZpBZCu4R9YMTwQBAAc+x0ClarGMSiT9SqPxQgmKk45jQ5e4ENeuMpllgOBjyHw663nwOrh2zhLFFES5u1I5ARLa3jphLYHkQa1xqW0cKHYP3P07yEZc3W+uK4J1mL6+ic6LW+PB6QwythuTtpBf2wK0lNMUf+C2/3ehFLe71HLDqWxkV86HIyj2U+TXvpewV+YmlP56qmTdbsWSfRgW8RbhQSCB8rtRJZmF8s0qaVpk36/O2Rl/nbXUr6G0szVZM5Y41PN6zQpIhf4LTHb3cWm/ls5s9SkvY+sPYVrb46Dkgvfbvu8lXl177fqvzTe3y/e6XZgdf4pFeayshU9a0OuXTBzl3O9bvcaqFMLTZAbOV7fvdVtPZVbXasWK/rX+kGw7QZJopMbTSOkqEgiezA6SxX+JE47EWhLzE9l+A5y4axyA6Zo47VS+xZrdEnso+9C1qNPkMMEVRrHKjByBBriT0mAxFgHCcYeZH3anetvIEGLgHLmIsvUC21gAFA0AgZhtVH177BZVdWkceiRvcdzQWRwtXbkyXvoA2wVsRh3OSW5NA3B820rWVGpivv5IW95xmxZOb8Fx7zvKymAdKzFZsj/SrT6OI+yVN4M+0cB4SDr/ogBh9Esq/Jb5yMnwUxkDXu5JFNrkQzdQesYbgeSKE+aZgFnK8XlnE8flcggNBCztrYxjO7pRfdL8hceDP1ul9XU/nszyCGptuRgEUMwSh5HrzdQ8dzCkXxlOdgDbazqmshOI05ldwnxasFO7IDD4eLNsikQLYLKO369eQy6A8GstfgBRN2RqmeTh8pzTntYZb2j5DVmo72AaXEH48VYpvXeWDU612WVjWBVFFsiNMLIdiPI6nHX4wPnYCkv+SKnlToDJww3fk+imr2rb/IBg6caGIiRQCJRgFNCiHlDGI2NKaoanwAd5HYxoDSaw+IkeTG4QlGk1Gs1kRGobyN0BuWlB/NIxBUeSkzpPMgeaMbWSb0HGczvDiz6MDDhgDZ6nEQs8O9Ubf5CNJRIi+jwBKAKpXCMdz4JAy0BGqTVxymgLTYTHqa1Xn+HhL16voK7iJyzQqu+WCbwK0qyWFDWBXnToYfwXya+z5LA2TTSx1ha4y2zQf7TFcJ6qM1y1z3TMZaVGoF1EG7qjFPx54eCuRaoFF2jGWOWGx6OXEdBIQcIWadxggBXMKKANdAtiOyXqFhXLAfvujpuqVi7pzY0Tg4cBz7N/TTCbCSXVvZtxhXsujV023bjKyt4vfoxLKRAI4O98xv6sTBWaIoU3zwo+L9C/ioZpG0wgBpKtPFRgWoEgVlxY5nZEt+8UVwIzAeHO4oVNbZ7vRqjhCmhrO8VkWJ+wjdI06hjVfCSD2WM4L1miVs3ZEvzcyBdNsOvxOH5qaY/9+jakX7SpiF0QnTxS3VYbTYyT+IkVi53pQ3e8VZ/+XkC/jopVptR0IZBlL/TG6ppFzMvNj0leUDqnZgNinE2KHMjdGpy5iVC3Hm+lI/AR98qVampLyUORTeD1mfVjrKYXKo2Kh55ybXAdmsQWbqbb1UYyw0xCGU0UIoIDPG/P83lY5kpCmvwajjByt/w+2Pd4rTUGBrPvYzYi0aTGwRJVBdfFcqTlUJCYbDxuGGh7aFsNEdWW+nzoQCFwXw/axbgQ0qECaWJ3lAzi8TvXQes4u228ifQyhVLweheueuOflRbnKzrdwytdZMaKKagQatV40LOT4CEtGZjF3vPelAmUypJeLhZryYXM4PDB4gfbeluXFm6+6wJr9vOnj1hvzoRma2Xuy6EoNYJQnpbsHq9dJREmPrLbBJLTceKQAPM9fEa5LcRyHAY7bEHDSra6qQRO+Lm2dlngIYXpAOXfVwP+x07SuRtGwcZa6Nre0WuNi94Pn0cDFFnf5WEukdcyHGeoS2h2Gmh9nh+r3+UvlAXzgRzcndSsXkZbNbMvpCvqYZvlu2Ii6tQTUI9ftD1RwYdmMNOHqgN3jyDpETsCJpu7PBhEzQy2KYW/xxALmsbBuPxjpaWxrKoHJ1UmTCv0mR8nLzBXWH8yGTLs4ocgiOd2fnnoJJ7E8Tq2BKj718AbszMe3nlGiCG3DKPsXpBaYzua+VHpXWK/Ae7JM/MN/rb6KLKqJtwVBF2zb6hDAlUpnIgXL+Za2Dxejn95o0F8RMjdQ9J71y8c8s0QQE2eBqtEKvG+3Gird+HvykKBYgOg3l03SCE+zq9GV/CW/aQ6SucbSs/mQLwtAvCFOu04k6i/PGCGc42fJ0eY6o57GqYVPtNqv6mPOtcGn2ygHatFFhz76OREkmTjWmy4c4gMgKMkTxKvfDXFK8tzzJ7L/L1gUEreZ9I3vX5355jU6VS8131SUPCYnCiq84PRn0xGqqNqql/ddj2hZCZo8dZAYz1SYSV7J2Ac0f+HlQg4rzgkFfKhqwPE11/YCBIsYPAEsZ6AaneyFrsmxWs4LB2qJ3H+3EPRXlg2BpFFRXHpXy0QtxuvzOuKVCjxQLFMTKFHCp/R1+4wYO68d6IWTeFVLeBkt5pPU5fnuaBGXT9hUuExNz3XxlumZBufkXXm4dhKmOl4HQ3N4z45nryS+8bty1g9+px/3orzjbbbqiRTM7JvT8ONt/VvblMVITwFI9fPQQYSJec64zv0P5QfpYw/0R7RbX1wwH1dZ9sdhNLW5lpU9fOHAqMxWvw4HUXc1QJDpXj7UQA8epz8Kd/jI5c7wDTy+HC1nhNODXX8stigr/wohcmKkDLlMIlP2k0ruIUSrOHfIlTFBkR3sZK4Uj5lzKD2pc2P7adCe1tEl5zfJtaZlL7708CBhN4SqfYrqQN52TqFCfN7L3sWHv7FyOxPIsv1Why9NtYsflma3gY73iZD5KJzix1ivEabenh2p8miO4zTwIX5V+VRWxDiWAS3IUIbr2z77qS6xelt3FVi8tomMBhtZv97AV4/pYaP2v2bks330NCC3XKVnDq+ECoafzvD61eOSSzzb9kCQLIyCLgaSvERGytyBVQWdSu+wmx+vv71aatcFwim85iyrdWEa9vDV3gi77v2WbGESsP1lNoFFsS7IuDCN3FpX4XpCZ9R/0YWo+msiYg22zUox4VVEMNmjPiT/lRifOQGchbkcnHQMhVE0vDrCr3Bd01wDRnxFo1Esq0ajvmPzOJFBbw8STdMLj8dlygxGk1zjysYcAOz4Bh2qZ76VtlwHGAcOpSO7bzjcR/66/YQ1VD0t/BoG1nXHWiJeqVent1cIurKlf5lFUpqRL+vsjpcu9WghQO1bgBsCs0+6ohNhRX61E6EnAlKGmmoDkEfpTXR7ODIZGLIMdk8uqlbXlR2yehz/j0WdFnQ9wv7vWGhSp/oTlwfIFUjBdUT4NKwPAFY06ql4gHDGaAxoJF9H5MEKW6VRhRUiboAqRtzBiq4v0DjnVzuVkDN7xVXO6XP45mSPpJqfHWfSnk7Sf6IlCTKhEo5aXPmWu73xTMM4MqQnMmjUglwp3P/S9nksG2e4szNQgQVBRVcF0Q/VWX/40BvTeDd2RFcKRyItoBMA4sX6JKXGETTCL6C6jIhNyNk8zh20xbnLD3fsus905EpJHcDO8VO3wwyXeZwKXQUAbo1hqGoCZ2aGgtQ7zJRThJVO26owcY+JY7rBrdAFLEX9qusPJsQElPi1kxm3xPFpkK16fHN3BRTzJP1TC3T7s5z9Q563FgAKQAV22XFMZ3kLcqSfqKq7eQdCNXYQHfboMcGJ1gE4scpbenYS2xuPdSCDdMOCgpnppgO4RPCK930vw66jAuuZAtpfbu9oFgARtWObmZ9pnlNYm6SORbPzkTJhd3JwR7PzUxHFS3UIKTjDI5hMecHhyudb4RuwSdk24fPlo2WdQ6h/+Iilm2Ol+1/vCxNePb6v8SX6thKi5biac5Bo3r7z8pCUnvYqHp4NkaYToLmXdqqvTwlSBbikgPTlGVNDEQovSIyzDOKNeBVPBrHSomOp2XHwR1+2pNq97kcdyEuKDgo3WqGEYgHkNrHhDMQpXchFfgiaW6XrIv2WD2MGMYaXhg8K1MKIXaMeJsDzNiPSHu86Mk+RSrk9DS95kerphQ8ZbmPmiDlh0DFINvMfC3oVnHU6cYtzP2MVn3Aihm23sBSmwoE4qDSDeqo/vaE998WgInuksZK8b6/XPqkzdCoNMWlN83WnBZTZElFOEpmCjzT5TueZN6RmVemr0+E7ubFJZW/KTfqmuLlZM19trwz6LXTMD4qZc2Ge02yiKUEHht8GrIPeN/Jx2BKtoFSHe4WqrP6S8SdwPYbxgr4mHQ0DglK/jX3bavolsN+jj3kW7+kOnDI1klA7oskUMbKOqPMcxUCJL+KcAmB6X4hb0ZXyYjqQ4mJn0TJ64SVUvvWdu9Vh0Bj+dHEARyy151ozkvmZzCJwCLoOx+dWDzfDshDIm5eWiTJfH05lWMHTxOy2vHiLn3dZMbEyHLpbk/txk3xmaN11wq0l7YTFZby2sdx0baYi4L7/W/C3W1A+JFni+qSfTxCBw+s3bAap1xAfooI++JGd5kPosPnUF5DHdJ+wggvW30ERjjJSo8KtEzi7yA043DJ5MYW7SLyCXXD/SAKrhpOoDkkereOKlT2hJv5EKNaY6vN7gzyH+Q0Tcs8Km33iAar+VkxQs1UaAnLsl0lzfoVqmWvpKo61S0ZOaOjGqy+DzSyRPArxUnHzHxWjaf+8XcCs8bZK7Jjbd2OcNbd5eLlxYU9WQpI8B+RaeXClGJPitgCMXze+z9zjbmiVIINuRxdqXgW5cqoEvZvX0TwE2uNKt2/xTvx9eLKVepx8UWGf3bxkPqXuiHlmEm2jGD5Hq56sLdxJKbff5+pick8JHYZQbf1mRXnSMZMR+1QAgGfz70sKrF+XzOBBfHcv6R50kot+wwvTGD+2MAHBKOVSeQB12re+C6ZQIsDpBgFiXrauNTJC+IQvJOYl/a+fihDPB4enY/cVadX4sExdO5+qgSqjs4reJAaagUTIC4WqRRVD6uFW8tAnljZiO4cNHtPovp3QfyWBAzkkU7nvA/m1bOOqe0P91XcdiFBAheYpQFIbqUARGqOnPYvXCZrcRUWBkaI2mXE5UGNXl4ls4DiRiuxrjJEnwvNJQTgyDOEEIwkwyjpApKFJOtX1Mp3y/lLOZ5i5BeIzo+pRSCepgQspVyCmUHHcnyldfC8NQ/vf3nmQkfSDGOKmiCMXgBInTKtwrIYERKpKuDhglAzEcRxICN5MsO5VQXNQTmRG4G4YRFN2OIOuQOEkQstgCkp+LsBnad74hQR2MS4YhpdYHk57jGngAk4g9imB7XgWEKS8vgmi0icEb2L2BZk6UM8t6F7PIe/Kf6BptzR50nV2VrkEt17hFSCPJUAQtI3FsbYKckdF6jPBxBDIE02QnLL6rHKDVwqXlp7Zjk5onxcUbuSbSvQo/lc3qMY3tGIUqij35XbJnRsV7q7weKWtpVXbMxm+1SKLp2TGzNZuVpY/xQe5q7bRy2OLi2CHTSLzW9iI2lLapdB+Cm2PTmTGudsPRolQ8B2qAKpNpawIwXTWzIpMJkkVT5nUtL7wO8nL15fDZnmsprj68n6tfX9a4rT7fxVxS1Dm3HiEnMByXAYyFhlaSn4TpFXwhPcb+G9QaLzTVfWE9zilf+nuJmXquInAtDpdEYu84mv8nB712PGbFV8y7q0tLCYUi6JRp9HqYgqte8SB/lelG4Z2EgxmvdwuqUwbV3JSRaaaKtC8C56kxvbN/upG+Lqb3yP+MW2LuTQNGaYFgf5zpngEJT0Skp6ckIZDeMdLvn8dWLwVlMO38SyLS6kvJoqQ/cVEZUAgiIni56z9+l59L8m8HkXnw6nnGH2eS6UdNXP1cwt576Smnoa6CucqaB52v9PWqOSmNQRJaFg3BQ9Uz4dSP/7++lf1crUeQw/6yBYHCvwkl97Rv7EK1NDBswA0cdtCVrltb6ds5qzz3lfqyBUKosI3U3hTnEU72omMsXKeekllYlaV2kRuzq3Sh7hKvLMDYVjqauKdHBFL2RMPoLCSZ+8Ur3Cyq3QGmA5VY/q4fjvC3syd+GOHjr/6q6FNk6ouBNCvRZqPm5hbCksnk1GSkb1R5v8AmthX8p+C89T6uaqF5QTPKp8Yea1EXsEEwXNQ53x9g7fmbwSHB/BeZ6WliatcUH4uKBiNEjhcsvCVFI0UXSLgmrViyQnT7aOBCCutnzYjpD+HwXX4ZEscP/TrB3sM68GTd2yHsVoRG04P3IPIh/IZHniemllaDYgREB1paJ/r8AofpHwg4q9i0KPGskJTUHcajIGYkiSQcvU9xMQKc96aoQkJyKDSewgaD4QQD/p5hPDSCXPu3QThOxJlVw5kLvTjfTUiAj0eAHZU+PgKS+cKn51o6uZ2IL2BDCjCQDqyvKX4r4FYsq6pZKDf7N5SXbWtzSJdX1i9SQfpam3ypqxoanldmy6s1ZC/2FTLmF9TUZANHoqlOpi1jdBcZP7ooP7M4Zj7Q9HpXlcp82fJlnXmYOfKKSqVJtvTqssjoOTrwxi3sw2eXLlC6qjkLTFbugLOlWwsu3SNDmZsREysWJ5Wwx70xDUploy9mJA45CzesiMI9ecPoejjrAH2Gr0XNGAATFx1norD8GUkhCxj3jIejtBR0KIyG4cWsx5pHusw14rU0/HFhjxzNLDOfNp2ilWN75uAdtQkaAQyKoRDkMjhXG7eyH7/9cY8BQSszHjUdY5YmT5D0d6Mw/oqSZPEgrs6VJsSD4SgSCuOwYWE0GU8aXrtqW76r39O/5r1/sg378nBwdGgEQzMBvwxHPtB3bP4aT7+z3214OKt6n4DngMPImvk7DCtOXqhfveLJogQhHj4QpGIgtNb+Zf0GAbTzMxEBBgKZqakQcxxOiO7dXvYdGEi1ZIdStQJuCkiDVDwkjSC4AgV9h7SnDOPZ6/736/1aDByFhjAYJXgxAi0KjFaPFQzQzTCGRb1wzu5P54sUCHQIT4gAeRp5z8wwKKd3X6YmE4WxUhMSpeAW6tVyvmW3CadHDAmzVq089QTDqnwRj4jtJdLMK6oJPK5pektqK+NcanDnLrhRGwzvFOO/fazgDS558XkQVw5mvqXf3HOLJd/0IvCToCjlqeRWgcSA83DblCwWg/NCI2cHiDTzUDFRKfgxjyB52mDhj7yKhRjJvW02MEgeoa6oSJBR/+kMEXDt+SUFxYklkmyq5wGKMkhw6mg+QZGFq9RA2SpZvo9Tka4Eq5p/UCTWKOtV+bM8OumcWrNR4sId0vFpvWOIrGWZck1NuYJZ+VISuKam93tQSVvrCiWz9ZC8s1YP6T25vDq1cm+aqQxUoW7lHYPUl0n8lmYzyom1j7Ssf1b33k2iVnLB93tVZ+kCDMrXxcCO+6dRWH5GvGKLVSEky9i2/E7FHf4NJdI1jtMVRV3R9wn+HcWFqsYUGpRRW5HokGXzIDrfkj+AIa79L9jIranthYcHz2BWV3Ort1R1AQUcLxRMKsKLi5an2M0UkpJAq64YTNALkmGmFm1uh82k6WzJN1ib87I7rCZ1Z3P+aZ2mqaggozrC1arrnEZm/TjIeO4VHpMjxLf+A4zcOlWE6Rw8iydc2tWzzvNd31zg7g/U9ze7VQ85OPBwplOXTXUJmbQ+TomF2n6TZV3btJCVV5yVWWd35C+cZwKU26YmzpM5yA9fktJKAvUFGfa1VEIhx6nHNBSLVmvsXIGsRKpssJp0PXPMvh0z9ELW66TeDelJc6tW2+ibPBdJgEGxbICJCwdB/E968KCfyqxlV7OrqB+2lWsIybIwiyUPwk38/XOSmtrlK7Xhlc3dPjjT6TmdUY8qODGdcWxQa4EzZ/CWfQDJcdwzGUFzcPGnM/BO1XJl/2vRDfMNEzPgr0ux1sfv0nh8xL6CVIRwCoHPRf9rzrG1eIOT/yb92HA88cjz2h+5DoTXS6OFg3Angbn3weqxF6eHc+yZ9RNzwppY5JSMjKTSIlFknID5tSacU7pZBtxYOLOLTvdOw7MJ0cUfuSr6wZJqb398WJuB8E9TrWgvPMGBGap6MVxHMWaWdM4j0KWbCqiZsU9TaU7Jndwl9CJpqE/VJ+3ENk6Nxbq4KeEQmewE0VEZ6sq/3/2W42V5T4WrtQ35AtM/CKU/+aDIJ6pXllpzlBLuH8fPnuVDCfUUVOxoYixLMDYJW12HJvruLInaxXdWTz8a3L7sIde0769uAsXAk72cw3E9lF4ynoFK6P5rH9f0cFn73EfTqyfz7NEld3xEdN1qWOGYgCVLHE1HUuoT+NDZ2x8mOyRKa46yVFQv8p5Eo7D8gRtKF90M9o72BnG4Li8TieMHbw5cRTcGCveFv54GAYCEQa1MSXGcgT45Fk30WR0Gk9GmL2lzN9LgOZCd+Se3eh6ULXPkw23Tw3eKGMwkP17R1lZmUSjsVQJdkrGFo/XoGwdbwZH6Xy6/kRBLDrRd1xeWP3YEKNj5TF9mfU6pIydHwhN9e2tKCHHnUlPSRxM5FnFsEjbLiyabbt5+XWCVTCPffmPpQ4FpCt6YkMrAU7ycJ6+UaRNNbnhNEZfNToeTT6VmE87Fz0OXRIv3HAzT82GzwQdkXODR2cNd9/lvEzAWe+GdwSx88i7y57zl70CqnHPwO8qTQATtrzLPNld6mVEkjk9+fJBT0f0wRtnyy0WDWm24+MsWypiSl91LfaZ0U0FWZuxddFbe3rMMl34rw9m8kyfiw6IjI2jCgBeOFaluhr7f03daZWib8yHf7ghCc0+eRs1jifGw0Dhgo4mGmPHkUPLMyT7zJ1w9KUO/FixHpeWM1yoeZk/cDFndE9QVzXSAiBfZsYoAhxDtcmLtPh7PimjOQvXumtqV6srDHZl9N7cIPOSal7k6W3y8GFYCB8PpJXPJWlvIvDEcYiQYfQsX7aJmvs77qoBZanDky1Jk16ipvjRx01mSr49V4DappVWzVKWaDlAKKkiXcXmamlZg00uvhqk4ROPi6Rze1MbMcxnyFDUBpdNYykQLeQzvIqZgnbOULKt7z6vTyW6zz9U5e+e69XNG2o1mR3wlunfS6ma9mK3P2bjl413dtrf/VzqhQzXYqUpZcUMMEJGqs1yln/4uJhyB8MwB7WQC/S29wf+ygFlUAGVL/qDPJqP19UC3ye55DJ1TLxd7A7IS0OCrtndtSkFfa5KHGbLElGVJyuwx4ZhYi27DimiCRvu+oD8GnFDjy7eXoUTEJDTkx5zB+L0giShCtuyNb6ellARClEQaMmFm3dT+2CX11y0wnUT4N7fe8Zll+Ia0FvZwpf4KI/6mizr2fM3MhzzTI5Ek3wo76dkYs3FqdCYBicRTQgFpDXU+dcUn/70qQvv2ffQ3MBBka+763NXyxfmtb+VFxXhYOBjFoWnh8Wgyj3xm3EWtYLiXEyGaryaVaGEFCA6c6WJcfc7J3J1pBMlmtmXe2eE0gj9nboegS39SMbxO7ovZb6PdZxgryMTLovSXgVukjbm15FZTn3uOK3V3i+S4snNhT9CeMT+v1maq/B6pF7OgwtUDnDCty3rw4PhMUNvnZ3jW/tnTJ71Z0owsI0z8LDDdpxGQ+4e9z39LWT8JbyxCpZjOrqm6acLvK/F1Xxef4Pugi7EJSBqePDI0dTTcu7v81uAmJKyUy0FHgPgZ4c1ZyQulhlWHRGIylyiKTs3gm38MFSmmIKo4LV0cCU0PD8zp158CKssDOPhIV+e/qL4F5oV2HGqgDKgP52Q1v8xw9zSwnFzXDxdEEvaxHeNnBHrc8vodA1LGJ+daYRWnZLo3F89+yDPd+nOxccFiFFa7tCtiO5rJYqLFBcyIfJz+PsQt8FQU1oMZpYGvznPp9g3l7u2zAqbhJRXe5FYzypcSWLekPu/NLp/b1ms3rGmxMDt28DMslIbCVsv6eZ5Cro1CeSeiNVZzNKZFsrra7KHiMs2yNrPJGDDkLikpzX2jpWmVCuxtyBHB6+GULT9/MZSfv/7iz1sodV515BaNZogJynLOwcfk+ghzpNGF+Gvq+2889XtZZbaYriP5ngxl/vRKPLx142PTI8LsxHL1uQyw0ieDf1q1wgvkux8qBZ4KjsCAqBWihnbN7Oo78wOztFKLzex8gi9eJVbXwJPXhYd2l98aBiclW7oTyNuDo5RfGkZ6fgCYCBf0ylBY/jqG4QmhLvKMcCwLac3CrlQIdVm50K38InL1T+rjNbCs+WzyAn0ptUaz9s0lQxL6q29M9nOhvD4K4jaMQPDybnAtipGfObX4iaXi6fqamNfyHQuqzcI5xrISXf1dS79TTP4fuEXqFFrQTnn6zoeW+Bxapcw88eH9ZMFDt+82dUK5i/AoVXVUP/ybVyYYDnem1hT/7E5wTYvhgrpkOeIZG5Cw/GYmiq5dPg6MRRIshWUWg9MBOVptta8vSjLYFodkxtz97G+ff6bgbCx91U7BGoEHsFi5IbTdBM+xLh2GLN7uZYFafUF9jxJc1kicW+wRsknQhj078JWn5WUwYj5Fm3a0sDc9oBQJrcVNMzdpsqY5wlhz5ULbFosBFivT0rV982356emAzX2lpl6vLW7lG5Iq55Q77XNq2uTF+M1MaeGd4Wm41VwgkyzQ8OgGuwCiEuwNAYvb5HJZIYsVWRodm3TFmWMK2plgjOmm4FXccFZi54RcbY8tgI2mYsA8xq3j/qu40QaIKCY6pSSQLa5QaRTtAaNLdIyMFZ4dRjn/4Ncp9HqaqhFnNz55jFNZELyRPVc+qax7tGTeufHj7R6QXce9YpnQnupSIKAzeZKKXiG3TLzOt5r17oYRxFMnkD+Ayj/68FNV4tPDp2OgNHCL1J87j7rI6s8pUWOSt0n+7Aiqbaiea+UE8zptJUCBwgjoZ1XXRuApsEhvVxe2PJPWrSYVurQxujQ5TAlRUSzSlYEgZ9c25fVtAqvoDvfJEMUi5HOGDnxhqPgP6uGBVCeXNXwv1HgWgTmAPFz/84drWB1lHV/1PR9EanMx0xhVXIDTq1OwyMHnfQ9nXy9Yaz782TOJPICB324M3RtmcbmpA8Pw4F/bFD/vXs/mCy0UMnRnUYJiDbsZjG4vEnvblTD4KpzRBa72s8rT/1vBKQfPnTEtf4ep2MvP+rckHK7OGSslcA+JRMs7wvs/FerEYQ86q6wmL1tRonUleKs0BYV+J2hCB1j3pTG7HMK73TrEyzyQ30FdIO7/jQA4KRztdUjmGu1OFEj0xEWJPqJgy5QADw/Vg+JkG0AD4fXt93o4RfnwEpW6pV8E86QP0RuwIBK93Q3Hf5ZbudYvxCHSpjHq6SkFVihb+7Uae0e9kCkgwCNdfjgsjQmosQrszgp4MARn/F0jCL2A9p6WEFXu70wT4BHBkQgVkQoxw6h0ob+6oZD8EL7d3sQCmZotYj4tesqcy7+LydznvM0L9zg3/ogzZpfbafCm9L6IVgpKIWjv6OiIF1g6WovA+N12CytK4S69tFXo8XL+OmLwgpErH5Dd1W7ytisjBAJiYISGHe8qN6aaLgQSIZIMVNdnSEuAFZBgutw9K1Bx1ZIw1/g7+Bf5/HRSBAojcEI+QvSdapQqwCJljXR6I4TECqijqmvLpBjUVrtZgvMphW/T1miIlt2un4gNEkM+ml8pWPmwF769sSuDOO4NIwj8oDbzV9JHHxGksyUycGFCkv8WP4aVWttS4M7M0Ls4OvUroMtmLqoThMuR5iWqRRvOR1qHJUa9v7La0FIoW1iBur3eLSJDnjTxrNnz53bPD358M0UnOJslagAg0DdaS5+dLlryyWPEnBSxqLYQDwtN8Vn6tMBsjVXQ4OUadQOguE5q6eeaSxEKG9lsD3ACqhysD8UiCyf4c0DtlvtPrlFHMkzN31Pqta+exButH2v0gjMnNvydi8/5pBLza2waOo1PTth1vRf8u3xzTa9IRGNe5g4/etk8JAmB50NL/kfpD/RTdnRAeD7C66dSw8b4rh1pl7hfFVJFqs/KHlnYxVeHE8z8NHQMeNz8yevO97N8x54X/R8kYOEhND8NicPKwggMYf/7yXf0KoIhBsM/FL2mw1gZDTsz8NfbimTu0e5E5hentrIb+Qs0A42APRR8OtnFZqw7p0Fblwe/G5epUKD9bbPb8lkNKkuE9DPV7V2yg/KMsmqJj49BpgbHxejSzDdvCRIQ08wAzLQoXSfqrFLU6ApqQHgcJcnTMTQfyBE8wgv6xSFSvV3p6V4IjcAIvf3bn31TtnqJF89H+P00amRBvO/2rmzuGmylsBJBPeALPF5yFIcc7E7lc9HrRyN1dxFIV497DulMTES84+v2pMi/PhmXj/E3frx4fHjFo/GxFQgLmQy8INqvuUOC/npJw6jK3V/8/9p0k8lPrTxKN+9gFb0wWJ7vn8xsgh8Cct2w6ppqGOjPa7mfjg112QrQm/pmJzrIyBE9yMqkCz/4C3hQoIHq7/CwiC6ArFhr+U3p1yKqD3jhvkU83EX8cxSpnECGJCQZ2/s2AQXMtzBP32mD5E3lBW1/kz+pmyxZRMfvZpskx50lqrM4stwCntBqsmX63TIZ67OJFVHNV06KLKeR5YDENRqdtLxMqi0JNJbrpP5S8zwuKKV7WS5RnbCaYaq9QkyO6BgoSM/AhYPTCJUAQxDM/YjpZnluIogQry2FBBmK7WVwWRqBIEcjVban8wckDajefJ6ETvlh9YeKSYGQlJQ2Tks7S691hyKrlilLd/2tTnlN1UPyIWtmURt+uI7IeBGw9rZ4wUh7VGreFXaI+BYwolvz/UpcxVRSWXxy66uPdY8ItXFFUyYIix21ECJeH7WTKH89tn6n2dvMPJJvxeYcSov19lEfPYE3xbkN1vS76zMOWZPQfeGh3Yn3hjclQCOPCxqCNJp5FDUuvDuzLVDjFxKuH5Dpr6+6ik8ZbLTElwXh+ltwpObVormkmRh/GeMIvUiuzqjWma0K9I+olWBnXh3IB4dDSrySVi4zrTf8NHx4vgWO28eHBPmuOrG8lvCIwEeIXCuPcXz0OuO3e/cz0+enYzjRQGI54lMmeNEvC/T5lXtZyp6G2KLvXYpacVZ2oLja2KmXbG4kIZfv/o8P4Y0N2aoWm005r64Q3PlP0pp6xSul7Z4IxxukTlmOxp3vLPW42xYlaV2dW0UW2Fpa7aZDKdjGsgVaCjo4TQlQQpFugtTZuU3j2J5Xq8qug/JV9Y0qMLqjvt08Zlq4VKx+NsxyWuma0mLhiPFpJksJouEY8oHtS79MGGe6hVpr69YvEAT+s5ldcuui/ztr7uOwwnhEVIZHgQDY939Zsn/3aoj4ZGQ0kpISCcPh8cJna76dDZ5TjZ3GAm1dfkmCq1ybrW7UVWU50FE1MBzYcGvnKQk/yuYac02xQli1xSmQCN7KlnSsv7VxNwGk7HOjgc2QioWy8sDs4HBk8XDPqpz4eE/aIMOPzcAzm5RwkcSIXxxXBLO+cWtB+edNsYLo2INGpaSVyUzDQBGaDuPEZVJenkQ6NERcvGSjW/v0HhFXX8azmStAKHQE1VZtgasc8DxvqQ0ANrzGDh2xnHW/4FOgTZWifJ+NqoM8V0n8Z21upgtbV1jKc0jhw3eEKlW6s9hXX8BqV5VcAeEwRwMvS88TyozHW8yLlKI8vcdUHWtD3h6lxjrL6huYRgSqwf5HqrajYPY88BqoGPv758wLazJGRZImBWWSug35Z0wb46SFKslqXQULKc4gfAGiMbQfSMQHJNJfBF3vXdLfeP0wjf4JgfAPeKEW2L3d9JKNFaZo8J4+wdx0IuvOZwyQ2xI96gA824GetQEA3UxOUBI9hUxyUVtGkXEehVS/4NcM1o5DoOoxEj0UazXu3N+bQrZ+otKDF49lvAWxS7bnclCIuOIbBY6jbHkSv893ANxEo8FtsVlcJmhD30jJ0aysxZgRBTDd477a56symOhRg7hchD9ni2hXakrHuFRKF1IkMvBptKqEJdPLcy8OLM+UZH1bMHAPr1CZKtjg7WdFzSZj4kHfa/Fx8gM5+k9fSALK6CD+Xc+arNG2GKrCW+ZPqFBM3DFLQ6jW+UWuhDIOaEyXZDjBAHdGZ1nIQkiTe3EgoYmXxULHOIpvw9oso5MCsunAqjL75kCbc+fK6vrarhLN2qR0st6KtM9aFLM41qdbYxF3FxvzGHriUvbskhxMh6KyWmXJbuInHGjIkNtWakCOMvYNM53Fg0gPWHgTepZkiZXO5n/9PodkSgPybIQ/53XRhdTcDmaelivMyAPtq6Ms6t/h2Q6Mp6UTNDcHQHq4HTen/+3JOvLCU4r8H4aSHcJLQwCnN5ytuG5JkGJZ5zKwGYB3XkNmuZj2z+mWN3e8haV/IQJbnrmc2QpO2shTXebbJzDsLiG4v6y/tPhwv2vXnnd3A+0h2ndr8My90ukc4/WTWPQ8t/Tl+wB9GVWipsNVDpShrByAg8cFmxGJzl0zQBJp3wpsgyc58G5/EygHYEdZWTcSJMitkcPTSeyK1rI0lbKq1pDlldeFaH6MFiauLmVDqy1cPjEVO3cg6+pDPILlZDYuO5eCPvHb29/bpxT+G2hx3s395lHsgbTpONATQwlMN/+MqObvbywQvvfWrqq9J7AUQf+CFsTrZ6+B0L1T+/q//UZFFyz/gfj6xHHQeY8UQ0K9d7F5DZL/KVp9WKKXCmqA6N0pwBTRKloMAobc2rhWmpTeMYcCgfVLFJmbCX3JpWVgIq1H+I4C8ONKbKuY60HpBsP2JPSfffm8YGPWhEN02be8KTmALxBLRAuWHGLZB9Eq1AK+VuJosNFJoUBLmTS8mTX7UM4qrZejhjp6MU/eLCbAkwSyHsgWKlIJKUQqbgyJTuzwyrFc6QRqtZlW0c26RV0z3dU8FuO8ZInaH2qBYpUUFTCU7ykkJWHOs5doiQJNdy0A+DzaIzEo2LhS6/klFljcoiRVq0SNkTN0927OnmUW8Ntct50ApNANzUYBZQ+8YVwF75Zc7L0NqMTcAU+cPENPo9n4sPKMwiL36q4tMCF4ShFRyB76anvCEMOXld70jYJHPY68v8+VfU4zNvRGr/HwA72BEeohxbkDmvHIbPH/N+eNKYnd+APMPtbO+aHx0icrSBOAo8mQJvS/NZAmEmADGAu1kCJNAmYEenTnGelwLV+o/a3UenHxeqEX88SjQlafqOcfum8d8Nik7HM8zhtfkmZmHB7ZAqrNtEqmHyOvLSBEaq+2QE/N25Ywr1PpNQUutYqvXcSjjhlvHONz9A1eA4bbwT1bxejFrgI1hQf9C7LOeGM379GlQu+y64TESbR4eLas2CFpMke01jvcjAnvDB1bUPguQy0wKYnM2JhLfLVu8FPKLZP4VnLx12skjQ3RUkZDzTkJawF771dP7XYOUvLHIv4/s//4Hp0HwrjT5vNuGRwz6cO9Nl6VIUJW6kjuwURu+KxBv4w+yZ3q7XYwbBk509EtuMXvIz7CGwgROyCaEGO2PGWkLrdyAYvEcJNO1MIVtWWlfskdoExrxPoiovRL9VAZgtzGEhM4CdRy2+4wO1dpCOhGqrbmVm6wjDtbrlRwtpFAZRNVr1CcUFN7tDjhbSTVCaHFnkK8aARM4oKsEF3efKjw+QwJUig5T1VUSoipwlGuUXo5hxrxa1KxtLdzdwWcK9EKbOQ9X1tXb0eLg62hGqTUdqyNnnmYa6V5FEVUJM2euMW29DriZsS2y0y3Y1skTLRKpuR1lm1nZETI4mtgtchh/Bw32YqwwInJeEK086Rj2+lT0bZSzPgUtbNGnC+wpv/mAVR9OSe1TdATdNRZXjN/rozsDoT6ChujiLu4P7I7SaDAQSeu1Pwd88nPhQ7AI4dkVxqxryIjinBVYGVWiC4P90uL/MdL5jUSqGBnrWqUZqIfuBlisFEL9cZvcYNjCzqRApIkh8bWDI7Wlo9oB1LWQUAshvjbdxuef/F/GR3QVFv3+FXEpgRodb6S2/JpMZeWUmDwoZK++ez5w49Hxvb7zi1jpzjDX3F+Lffnz7kw+WJE7+0Xz9917e6Y/mcv3brHOHjn5R3GPnzZlb02iLnPfODq2KtX7rt338P7Xt0/8NqbB7pf73+96IHHD0aMHzF+4vgZN5reuPLgnYdy7qv8DH4hv5rfxH/A3ZQU1SBH3nmIWGmhyHNqkzrz7LX7z0PmX3Ltrfc99sKz3YohY1iYOswezMeYg5hTWAS2EduO7cIuwgaxb2CncQ7cFTwMX40P4M8R4IRawj7CP8QEYj9xmhRCWkr6k4yRjWQHeTv5HfJe8iGKg1JCuUSJULOo2dQB6krqMHWK+oDWQGujXaBdp31Gi9Ie0p7SKund6O30o/QzjDQGicFiCBkyhprRxpjHWMQIMs4wLjNuMb5i3GU8YjxnVDFxZgoTy6QyucwsZpD5BnOSlcxCswisRlY76yjrDOsy6xbrK9YUu4g9xp5k/5/9J0fHEXGKOLM4iznrOB9xLnC+4Tw+o/1bHtySSEE+8farjhWOfY7rb/n2W353enAb0Yq+fPeJd19898/ODU7pjORH/vH9e99//v0/et0GoMGkAMBjG+WmaRiWJdwTQsajPx08eOjQrh17fwgP7Y4NfdixRFGSpH4ZAiWEckoZN530/znPBQes+HlZzQwhjBmAcFyHCAEfgP0M3qwt4Tz4iUCEU2wxsxgCayYYOvZ9As9ePz/5N3lOgIAGFABAyNeAFWdpwSf4fViJ/mfbAcb0xNB/ix91MOg7COn8MfHijQ8h5eztSNWKRmGI3vk9gLtHf/i8BKB7Bg/7w+EA5ptqdlLM6/zYeVaOUsXBGBFKaYXtcyLjLoi560ZKYeg3u2eGzHa9eTxKLo2cJEcjC8fBODuDXnGZK+dElLQR+juQA3J0xVMJ1xpUbVNv8OSp7zh/T0kb2xjieHrDQ3SxzFNrTGYwzkhA4BOJ6agXUOoNF1Y+IBSJ4PFXlJDtRNscRzPDEDoOe9puaKWBzFxrcgMJjYxUkoQ/RSje8O7+fU1kIG8ndgtxZW644GuXg0uhJQ+whJBY8wNUENFcZMuiV4eNZW6ItvnU7PR21bvqLsdRJpnFHhqDq6kxNklsz99kaWNzv/1MUSRVwKJ2Fj9yo45lWAmJ3XOO1EFQaNcqTb3zVC6V0V13wEVOlg9DowZR4jQ8OUOOc2OQpBtkAMYknv77NIyw2t2NoOOMpkMbNGzYlaZqV0cXkvUScF80ZgJ8oukc2lr2WSBNlEXz6kxsbayckmRpUoeLeyIey9KrWs0wiprcWij/4RYVGNuIl8vYvoRDMpuVPLEzTZJxuX3CXq6Ly5IoycQ34BYFlu1iTItNvQLDjGeRU4LN9rz1tajaf2CD64mZ1No4PEyUGUNJytmh69mvUuAl10e/4pKV0Rc13TRMe/6MQYpkrmSWoi2s5eno30mbSbMsUT9W3XY9iFYmCPKcuJFFXojHwix/Fn/1DeVPQh+4noA8UWDxupI3S1deYxhNjz9T0LmN43TmT/UxE18fl39DcFtqE9q0iVJgmqRT2a0EkkXylRnuqBaWX648HxssGCOIUOoM2i9lHCdpkpWVjtMstXGc3xUSxE/bjffqt82hHdGD43muLXlVWIHQdh5+yK3yazI/3C7756nNKME8GrECdQk0JZ697SNsjReO62AU18v/cgnGulmins3fKP6OhqPpjt4NXYIt9pTzJiaIZjcQIvBDwxSQ49MuklHD+Whmyd2zH/9kVnxbj1+2tUzEBDZRJKogoYyM3zWsF2gUAmx5lHbOZmxc7crE1mwIQI/4uDB7CD6EqecJXfdKEPZc7g9T02fKW5fZJLBAVSxdzzXi/WMW/Zc2QtCEGAwJwZnj3EcU4nZF7p4rvtTJBEEyaYsUjfmmekfa5fQwMOzU0FS/JnKNzwAmU3WNns16mM7K4Nb0EZMChWCUi8MtlB7h/3K6OLs6q+eNGsDtDP4dx0W5IlKCN1gne8mVgBBxtpoBFOOK/wVFUHG+2h7VgoUg6Xzqp68R6rht3+M4tun5fmCTOzOzHeKsILrR+T2JYACqoq51BbDGuu39315dRUbdaRH/Nrl3NWK6c0K7Cx196/KANHK/Jxg647F54ytN+281Vq5XsvxHBLEa5vLfDMMQ0QM0Yr5ffrpzJ5wq4ep87MNI9ArRB+Paanlb6P4vknVL0mj8j4NXoCnbS7z8JrOa8a64zQuoZWhOENQd+cBLlydGTtf+c15WB8rk5w+Ek05XGQWexNeWf8uvfTNVL0sTFNbHQlq6VIl8vlpsgEecoVI0MaLzJ+9aVyVHEGHdLxr/CkxVkgzs/rtKXynBJgNcIA4nzQ0Z7jkIG8Mle4MplsOS/7n6wiAcTkLPcdeQYfdY1snso7sm+PevDhw8evFqAuJd1H8y210SAvunuEnsXmqaolh1W9iOUsQPS79eChFa1iqbityoHmUAF5XvZEAhVhmAUzMp6g4mfjK9+3ryBEMkGpCqWfxzGEXTML/bbAyvmogh0c7Zz38jXLUK0UsDLtsgycXUlgQGVarEcVSmPNArsizJmhuVZaF21lJxtS9952QWH4KUzZNFOrRzIbVyovo1tp7umdsUdCDIMV5mmY3HlFSDxyKjtY1S+S2CwsaedYtDW9XXxqxnCKENhy5EOjxMtD4h9NH1FIv3lstuI6hVo09l0oimyHI+j4tqNq0DfbAjDS3v5Lpxljng56mjnN+F/BYyLau8IkrIKg+bNEp8o8NtN7VXj+m/0zsgWCNTUNzeLSt7Xx2TjD3aQoKo+Ml7rRBa4oD+jy3GieS0WFgOXfWuKbudybwZUz+Ai+Obf+eSa+FOZ37QrrJ0WGW4iyKqAV1QkorktK+X/XHAKS3erbQDFhrHOauv8oL7s6R22I7L1RFZr9MxkLbJ7l3IhSdIsrjebYBThE+qZ6Hff1NDXOCrJgMVe1KOYeWyAigvK4P2S4VHSXfH7NIGLR9rMofkflovl6JIpuVxmDxVRJySeEmW6BxoSMR9BtbJcRcVfAJhFIVBfyULmfH8CAbSyOLY7XyLOLAl2jNxNe6PJkxm6kouCMMoczTMlTfLRzpRQs44jm37yOmcQWZC9LaZeEn3wzjymtOd7vsVYVU051Tsa85UWMU/qvvvMBAV4mNsDUGapVQT4zD/2tUpw//+v/NmWKj1/tLLephnxn/leZqufSq9Vvg9evJFGEC5RgiNZFVrb0qtl7/VAzRQO39gyjnmmhbZ4XTqmuNVqw1tx1f/tgAtCRzXxzS6/ZBH+xLf/LiMK/wbuAZP2B443EmZ9XrR7u3QyG8m/Btjt0GWr5bBNkGzztRW69QkwWXpUEBA/1LiirsxyIZn3zqVuhKc9w5Y6KM5YMIkxSU1DaWBlgbdjbN6Fyxc2Ntg10vgrvKGlhZ/scWQI6BDQwJB1vKGBldxACleG5amRSAcHXLc2Aa7BI7GLP1fsyBUvo+q76rw8lrUJT4TvWxUqD2SLnOF69MVxYPqJas2dbHDjCmuDK5CIkwneaptPze7KWG6eQetIy2f6hw3NgxVHbymkhWy9i93JliMfOC+kkyTHEa9fjwc1ssb6MF/0oNPGehFTPKZIjUwbrdZZlRWR/S3kTbF7asS9jThEBwSr57+VlpRrncrOvpHq+0RQVpvSiEC2hhsTs2PRV6sGAMID7D5XlJ9oN0OatF4mkT0gazBxYnKlQw7QmYUr+RaBEm1LF1TFDvw4eU/FLv7213GZBIP/gsMosBU5QE8/1YR0SM0bf6ZUa7p3Dw8MEWC8To1sgE+fE3NMFe+MWUGWIFUjfnjX249BaTKDehjOTsgGgOGsI7YZrk9RFQKptmvQdX+WWI/2/DcMVLGTrx8T7XqOZ1pb9DwslhhWU7SoW3X33ymIn3rreozLib+F/ESaeiyXPFwpbaDwHfdIIqnYBgZ5nkB1kfzXNHBGAVlWSQMX/vN6Z+HEKrVPCv9H0IWi7zq0a0sCnzqMhjPDdvDfvj7WgSQ9XPxZwohEtZqlJ4ZZRJROc1pmE+yxMwnQZxXORYRdMw7pV2HnDTbPMG6fudEzbLhEAuAYSeeP8mFwA3vfKYlUyRIFgXyuyB8idBYQLzviES1C8P1SX1C5iQnVL9RPBKtbF78kz4XtylhA9FhlN2oBaj1VGWg52pN4vZPplu0aYbbJ8TB6iGBE2QOg2gW3z4j7B5QFMGX/W3jYpJ8XSe5m2XzZDyK+6NjGqCRMTHQ0dDQ4efKb/WTDAIgDAYRMTEZDAETBxcvFToCAhISIhw0HLXs6bv/XuH5X0ALzqVs4dnVyDGbP0qpyg3ziYH8wbatz9qybA/rckNTJGHsXKd+Zjr3ZFVVeJ+VEquaNO5HSU8Y4U7G40k8TDMq6Xg4nNQfmth3nr9pCzysrKR0ayRKb11IjTTq+1eUUczgBPr1QtfkkY8cufhv1uUIeZ54uexj6cU69Cf/7ifSEhd5nyuD9SxVhgxvCxc3owhp8NJZH/IouqDSxpEjexrewQjiZM3/R5zy0ij3n1YHSJX0/Vb7waZwKhHNZOxNPM24Pt+rDv8lBEO4qdprmJc2Y/uzlaYCgkTRUaHClrphWy6EBn+/CgJUlwFsvBhCEUZl5vHgiWCFC4nVFyETUwFbd9Tj/NWr3hFdTZNsNWrr9GuLQyOIE9X//bNWBojCvKcoC/QEQvn6KuCVdwcKokMVUtdiAKiRRZaisBKu1Lqj0VC5jjswt8VI3nDbyfFJa4kDLCIKFuQn6fUW91Tci7rIgrjf7rAL62eshUhKEJUYimZZFYnWCHpYzjC88Fp7pgckKulIwjNOoNfDeV9D0HWxmqZNEyQsJnkgKgzjTkZp/ZMr3FZ5rCRjdr3bvX2HgqIgb2RFlCKpjX2Vf1PZvCgya7mlcXnIgm9DLArcOKg6B9yiqPMjLnG7XeN+XG7N/zl1EMJqA9JM+/n1wBzRZavdGsS48I+XNf7vgWKt62n8jvDtG/vNWbQgy/AbWWC5SAmLIf8LpWySxGp5wIQ9ME+f336HAqQ1gsQxOjvxQvoLQyN/wrSi/gtzjqnxm4QzULjC3dXOT3++GjkQ7Zp873q0rgXYSpM4DuaPKIbDseLuQBAIxFp3tdhIQJWUM0J4lrumuXopCtzlNl4VKgJVmIEaoqjhfXGYXP6boeqMJZjmL+n+jDHJ2n8vuYQ/heDe+QhhUr3ISuh/X2Pok2onU1rfLumV6pdc6Gq1U/KQCU4IGOJn8+cNBGtVf2MIfD/Q9r1i/OCvh5ze1WmaFWXhDe1BEKZLyQ79oi6SWEjD7iWzW6BxexCxRBuTJAv7U3PzVoeX/z328RqCTQZUAGolKf6T6pgARnlTU1iitpE2vUkO9GHF00YYthumItGoy+idBxppvN1fi4rClTBnmCCmTbwn5kWc0pZNVyUfFoOKAsP51egdyLUKLN0skoxNH+Eb9Aow7vsDw6vvz6Oo1FuWUd3pfncUGGELZ3dAJeS+Xnfhv2KYn7/QSnO3zn37SxMwcfDYvH5a5dGD5y3xpWSe4n95yeBXb5PcDsOtWxXUMjWiCJl5do0xXu9Dugel/TfJHcgmQ1Vrche7nQche/aDNMt77VGE3kCIQBTBKqA7NH9R1Be/OAGJQYyYY4A2kw1VJDCM93PkUSMETRPRxCFACH7C1lz+LSVSPRxwe8YRLgQnNpLLm6RZM8hX73Mcu1JxaPQd/hWnAZsnrGp7XoXlq/EYr45I2DgTz7F0R/b/lvNYicH8xGi6U9P3Ajfd9tuUgMzOmeM3C45UiFXvIJAVGHk9oYyld5LZVBDAxVEXor8LEZtbIeQiiRB01a+q9qLG6DxzE/rJuagZesMoxsXmBys4fVm1LBPKopK/znO/sZIS0ho4HV1NYb5Yb7lZrHfXzL/2IR4lJfXpzcK5/x5dh7Au7aMLw0Usw/xk27XBIQpAcghTx/SCWq1qwVrp3ns4FHPdry9sD3KgF3kVRQiz8hXyG8MoIqfPh2I5xsSRWZuomqa/cVli8F0UxMYqyjGOzpHJDLG9SNivm7rEmNQmMah8OTHm7kbv+a546k6lLdNQ5IQIIozKIxfrO57cNjd7YYr2WiqBRpcJsfHubLtf75+yNCmbUKZzVWRLQ0kqI5pEEV5sibGGVZ2rpSrby7YhtMn/FFT1jY/MKApdD8bIVwzr3EJq175Ni6bJoT4Su4Vk1bOq0pWlXkA0sedM/7zv9r7Pq0YRy4Ec0VmEzi5OHuvhSYykKPIbNNpnL3eT2GpvpWyLi6vnisAZDkMKUZzeHod90hM610x4r0NQh3aSFh1ykLuDdWWs2CR7ZC+4z0olEw5sdDRaj/sJ+v1AXj55EO6BIKeuZ21w3amqopB32W6ucwKoQ5IfxaN4AuFktlwts3TOghzzrKC18kbrXuM3WC7v7H/HYjE5BIJZllpvj8OUD1mRqF5ph622c64tNtogr7dmRmPdO+nccgpV1Zxl2aF25hJ4LUlax02E1lHQEqmW1NbdMRR8PjJYnz/isI5Zm5YuNTCQY3vYIgex/7gwXVaFMrmORwX1/j86wO0PES4f1vVsVtar5tdCak4VCXmUr7GGbCbwrzKCYQhYFv0r+q+QpmMsk6XTdwxns8lkPJkhkEynH6SQ2k75v9zDDCAGgGHXibLphtMsSauDGkW/cdhsnekRtCY0uDXbglc0P9OFZg2NcavNsD9daAAo3xLL5JXqrXbZ59hFXJSN56zFeZZ6ptnZexd4g3QCOZz3kZblPyj+TnEUKqyl/iP9zuR5ORRIGtefqonrAyg5zbvlV4oyGER/hFy1WTgH1wBUU1fHB0bGWOesMcWHse/DSfG2Qcrx58c4QJojP/ZpM/cMNYQDw2kC31Cu2ZNtr3lRLuxfePX4yvA4zhbzRRZDcOoDpisjc9C4nzvFPwjOKCbYW8c1BnWwVAPV2dVe67jCo4ARuBbKzLU7A1hozjfHSxzgMIscbhskJACBg0Ci46Dcq0FLw/NU0cGMAPDPWLLMBTv6PKiF5WQnhkHKCeN4vxBqx1LLNjORTZXWyuzGKJoF/YQBllg19pAI7SLsXmpY8oBMVeXK0FeQhYToNE613wFiuyJcnJblwoAHvvsC1ZIVVerdPFgxydHJahz3al7NR/+NzqDf7QaTCoDh0i3seiz2sksKXXVdvDIpu+xK6Kazo/Rxr00iC4S09FxJWlwaQWqpaOruWQqBIdn4BsnPpWCXJxt/N3gHXFLiyevxf+a5F4rtFyBwuQtSE4mcDJ5Ee/eulsfh8DIyMja6tJOnVU4gwnIzd5UTjODkf59KsTZjdR5m8yoFTX6+Rbm9FOu73ePfcBZ3JgfOdQbDCYcdWnRSgsBzvdoMrygmmDM4naTX8myaxBEkYw1R/ry5Pj7UaZoz7Qjxd/BdCsqw8i0ttt1YQxPc6wKybXLExcYlwBTtnv/3Ss5Pjj26G0UY7VTMR0Xg/8Dbzdb49Yrg/+T7WuEWxAn1faOwaY2P0nAEipEks6HK4l1hHE6QPDm2UjvJ77E9ahIH+7f5tVrVddw+NiA++pSTJkZlchBqDpu68AyhlIsTeAZLcGbBp/KAYqtDu0FcxyCFsZjBbLuKsP8EHWIwIgIo/9h9t2o6FZcFhkE+CRafgCwCaAMwbvzROykSc6HLJNuhPbwRTsZ56uzEEbRMpW7erkgMVqZ4yW6OZkdSzhcjDyVlWZIq9SmtcCg6kxPrFkMciVbTG4teQW+ClhzkUOHYIWUYTYqu4sx9nzeS2Uz2a6Xvgpu0z1Sxj0uUlnDphQsGDWHLXush900Riwz3Rj5AQzTt3KPMNtQumBzkWJcERu+8D/lSd3Th9KAt3IizAC+9Pf4pZYQI1O20djFEpS3lWkdMdNvBk0JHYauyqg7/CRozSoy7HUTbL8NfZHqkWjXrlFwF6V/pCRKh4KJAG/t2Ty8AywK3+/X7oQNAMtn2stxnEGV/gmnifOGMf/yii3nSfsS6Ssz05TdSo+pArfdWpvXixK22u9n8L9Lxf1UlSfCPIxdpumF6OwmjWgciSjG29tpnkj1dBlCj9niPpNHI+bdp9ggjmToBsXfx98nJJUmPf5y/H0337j104NCxC2iZn7xNumzq+sXuiocMt/9nySBuLX/yQWVLvv06V3muD4j2MNty6fNjbF4E7NQX/ITvv78nF6hxkLW4ePBk9cRP+NMXuJog2qldqlq+CeEBgk46QVIrYkAyRzbyI4FNh50DgZsCxgdSTppbybEaYbixf+nZnLVucsgkv90VQ+csJo/yNu47m9D2q3Kqws2jQtHIXlfR/d0JlIsCTw7ynCCbVL/UKIJX0LJeGlQ/in0FzVVPEKVNT953oKyGTBlNMR4YoqQE3JUyK/Z08l2leXfY7AlPk2TR5oUiq19ADXWCKOX2t0z3QrNn8vW5XDyuO8AiinIG7/CKWs0mHd+CqOB4oQxi0GjQznfZsSCkp3WIW+FatqH2tsp+nblYFYuueZMkCQVZIvLTlHD8udVh96aPc23KnwTQkGBAndbThJ16nWhsgUstXK0mD2zVfZvt8NGprx0uiEMJ5RKlkzPlxSNpRA6EJnR9iyvzdA6+M/s0Ac6DDM7/QI22PftAKdbrl/q068wAtuCf8QCn9yvIf16kCqHqt9YZRGXxkhBianpY6rWWMr8uLJ0aFzbttR6mYnRhOPGSpU+C557qeU+d1ZPnAsrPAaWRYW6s/NFA6iEvPl1D1JSye3PQpHHGbX+CKwBB9u2ab8HXAqlLr6SDFx7Lf2FMaVr3okW6bS2ffXmH1EXaGLI/lrl8KP3qhxpF5rAkUpxV16LIWU40xy41CBwwPVGsMEbDrpSF1Ck8c6uN0n/7F5JWxrwJvNDoXuNltTEidFbHVbmQFpQBn5aDYsPJ9/DctDv9wSBkvxLt7kIYFMsrSZMV17ZsV9kFGQSG6WDs429AjHU/ZXElxUZrzp4jItDXM7QUoaxpqmkeDZ6eMdHZtUyv+FEZAAGPtBenHABCgFfxRCw8XOyLrckWP5fRIB4dagAMBgqBhIs5frQ1sVQSGoppCNvhPOcQAH19OJYQ6z6tABSF9dwnbWTrumaSvJjWZEwowUCwdVWxo0kV2XZ+pIjyhyDKQltKmEXDUTg8S86cjdLxDAPAIjh89Jg863Uk7CPwxu+EKMrwUrItnhw7obOKhMDfCMUZC2fQl/SbaNK+ak7XvgWh0V4+nmhdklv+eqr3VTqsFK9T3GFmHFeivAGI6T74cHnseH8pQ88I0Gdk7v7M8N15usMUZzjCcO2UIP7B0Tvo3J1Vi1mgSYrhEEQU/tA0/TRJ7XsNwXdifDWisee6s0yHCnYkYaSKwEjpnPI5NAaVrmxxIyWHCrGAUrVnYpMSMvCxPNmHuLmyhwlfVyFMJbpiIJF0CKOau5RiK8vNeotPtujN1RaIGfgYQJHvNEeWQa8vzDMWFSHfAsa8QktiyMog/qOrNQj030vT3u514SS97B6VxMffDw/ly+bwY0EDOPp+LlBny6QqS3m5Q292Vzc1BeYuWtq/eNHiOeVGm91ZWuev93fM72ru6Os2gSBYCV4Dg2Awcnn/Kw3aVvhkLpU7LM5ytdPicLlcstN6C5ZZx3qwAmFsmHYaFNL5KI4AktbkFt9lhKG9ZBibDWr4SFNVmVdcjVT4gLX0TuxcmsdPtqY/Khurumaol/EAmtEiTJi/kecxbmf2j6fzCGHbo9ddPOts5T9HAbXG4fgE9WWKF7AqvYd1PUOWJF5WVd3RxY5+YhFmAnNlEZcnMtgeUNhfZvxmx9494pQ3PzlZZcPl0eJwnmarY3A9AJo0RNmtc1tSVd22TU3VSRYJYCzZvx5/2jrF2Gbm9iqc1fP/C41g2lPUgPyN4rsajvJ8+g6CMDaZpYC2hSkN4htUKqV69AaVUTMcuaNA7hiWTImm2/dUKoZSaTBQUQzWwcI0UpT2H7F5nGHJbi+KN+v1cr57IdxtAsh8OXoE3cRIffOWeIGSw8egD6ZRQqLb+T/Ky5WEue2YwXUAXJdcfNUbzJBouMVT+q3WAUgNa8MeWgE4LWJrhx9RV8/6n0W+mBrcoEdc8qOI8XTYi/r0UhVEo+lsdmjukTf/vdd7cPAZtc41082h+EyAnpFLEIqn2/UEZBI4vI0wSpZfg5/MCUZGZ85eCS7F+tRWjJQasCYCXt1+yOvH05lf8+lwledFXRH1m2PXtq18fvKqVdf0QlTyTLf6H1ax/hJUALi9JNluNqv6mkeTvhibiw8wZZBpGgsRb2GSUf1XyRscABdx+BDtFVI9aNNKhvR7Be2Gl+1GOXzTcPaO7mDQC80i7NrSQaEUBx7HoWnqPPQYeOW15azSdc+5eAtQL3CPA3bbIO6e4D0PNd/tiiLPVS7nX47+ooqE+aHCpPIH5eeKsnZo98Drv80RF91/JYHT6buwh2TkwYcviBHjfYS25jmXzq8IEjpGovCiza1S7RsS91Y90rQ3GY00UG6tYcbtiaBbvg8J/lVICmAXRTMEfywQAkoLDMNjq4/uwAk3Wkg6Nhgj8MNs8P6cYF3CDrUr0EM+VJiU51VVM3cf7gzSQxhPjqcVZiCv32xkq9WsP8IB2aai6dLxI3QER/aFpZ3wINjztwX9EwwA5Zkltz/AVGXlxSQG3pidwDW2xbl50Aq+C0PdKO3zmZUxju9TmKz3VsMae2d0rDczL0U4FFmR54k9ehMJv5dW1Hack8P64uH+pRlRAGpJ+jp5vhlm9LpNx4vlpDyXeumelI91mr1pXN7XAQXJQZJlkuf1dmPHotPdY7SwPXwIkjTCnqi/Myzn6Wzgo4HDfPtQpWJBLwTHB6D8yuGvt9NBR+y32zaCY3tPmRe9QG28TsCfwYwdaI4PJIBR5t3/pVqng05ZMx1ivg9tYWAaeQnYS6a6tdZGBYSbXQ8l9R/lnQR5rtGZp5C5fHhgbJP1kdO567ksWYTOReVoRgBVazA6RSrEXCs2E5MSY87uulwDss5ZXlVR19HR1jq3u6OlDgkadH61mudhQILZdnfGMWSxruNytVrujsWahdoi41OFN56enc89P3tF/cH3ZjPZoDQ9Y8SW0aZruRb5+NBxTgnfoX6dRyQ/x2TAihh1Jl8qLk5K6339lLeDoNkdrjCA+bT01A3Dgz8r4qdMCqcgjcJZb/f+gGecX2+22w1yf2K2n08RNCe7rShezBfLsQtqA3WCkxzk3hjv5+VHmsMXN8PaaI5Apzt9/+tjwsxyxqJy5GrtOfslVlK39RlKilAYrehaDE8N2Tw//CiKaO99iYAxLz56cjTsIc5mIqJc6Ti/p2o27wi7sp5G+oEINMPOqM++hkTdT6wIADZ94l49L3o2hwDarjTfIov/X17i3kPDArfccfsEgNjbLjls7fS1o4fJexx6hQOWO2xxUIFLFS8465yLR+68U87YKEe+vDIoioYkQHSyN1/4Bt41PkJJbHXPn9kuXcWcEeJfWttSVXTVuo9tUa0m1dwdoeNvhZRM+nPqUEsiKZVSae1yy3X1Tnv7lQppMgb+KruOTDZ5tt1npx7DyyPLd9IplPGTJG53xqvjLM0oAJOfo8L5NT2hYjug4gXt4TEBIKaZbbktVjQTxtMwpQC408TlB3FxfnjZuoneP1XqNgXLc9TvdqNmNzG0vaCRPY8eWPeXvc7Be8htVFclLyuAN/J5UkGolA1sQIuO9Uq2oH9pFvtO0EfR4FgpBBAV+8fwBsST4u8Z/xwzl1/ydpP7UqoR/aA1NdcJS641GKX3q3SyanIXrBxMVZYFcf7p27uzWK5WMytXxRJ1HTY7o2gp/yhA5Q+D/Oz8rXr8v62fI+T9l/vNYv9Yq9Z9v9fp9HwSLI/09p6YCYZaa0GBnBQnWFfZeBCo7R8Zb5PEJTsMnLo4kJyAu+nRWa+oZosrmecXZ71mMjHV2jozFEALi2MWhsckIGjRiMhxgdc4VAolmyFWjAM4usgFNrokqMWloXei0x9SxjBaKdGVG5uI0Kj30XZpXK3Fhn4aTKHIyLGDmHKuZ1F6ELl+nqonGpwuW//E952SkIAlapqqQqbVHGH8lEoIR/LFc1d6LLM96I8HgaFuF3FGwrzIkXqyOKAkiaOlEsHRJ634JCf19ucPTTMgbCKhflk0II3iy2ZXBw6DYYToZpGWjSAMsEPXUeBYos7/gnwxb5QPEZQ9uYiuCzGmqkoxhjb3VpyAlLScbfCeUwheRiu0kmLIA1LvtWxUywAtr0zAVq/A0/XcPM8Ge5zw36cFFrmj2HOxeBL6T7E3Gef5HMlzJDp4AoLgLF9awXA8X80CXTTDx0mZPQcGBzxM5L4Pvrwel8+++u61cwOvf124tKGNEEU/NG+iWIum6OsRQqqr5MspmvL32+ibiLDTyBmXTZFpnUmdK/vpTDDTrzfolC6KsKlJkqwFRULD4pBfNXhntSMAaLHAqaYEMU/MnegEm7aW87yQUunQRVWEduj0qRloXLDSqrSwF0Wh905uLUnKV+ricDVwI09BNDEmPgWtUm92hudKxpq9gbbVShsSHgue+yPDR20HvXFSEJe51m3ivupAbiA4AEUINdjOztYKAC8PrBubWfzdRYvMVNWWEMXwoSBO254pbKo0Vrr9e6AmcoIC3WhKAWDufqRZ7Md2y04cM8x2G3W/1u33o5ZmhEsUoD9tE8smD5yYudYbcI5qaZUbbnBzGFH5iLB0JzRA+NCkC2KUMDpzkS4xDAG7demIs4PWsDTWE+GKwpB/NGSmKhuyxdkptwy3uxEdcj0etMt2RoIakhSTla0YeRf5VKL28VgwEVTlHCCdXsZnQL1JTLTOGI1+rN4ZIWYSbwYfW/nisGhCqfpblEk/EzVyOx4hbfD3GuKhKrGjxlXMEjMG56BaplbbXl11R9Bhm3nqfFs1gcOhIbTTER7S2ii3/uhyf1LXtjzcaLk8gfF0liokOlu8nX5qY4uGaMV53XUvGed90aChsxe1tJzA2l88oRXKK4vj3ucHcoGeYVqk55khMFazlmYAf7UxYZftKnxrrfE2d21NY46yyUVjOONKKm2N7znrh+vlERWaI5EjUOrYw8AthknxYKOOJUXmdRBbu9p1g7j+ya+2XkTTf/3n+P/HZxO1nsu6j/bX//Zu651HOIVBgkJ3A0hTrqcnIC3jV12z7X6YP+VDuSzPyMe7CcCn8+5FwF5BdxcI3a7ua3Ww5geQ2T0JZGgVXMx/Zw5rhuF7YXW0hzq05c1eOjjZohguvXN203D/yLBNmEOvGX6fNxrJ38CHDYmk/WZb4sNK0/f1jlR4/+YPqsKZcUjtoFg09fpQ3O82eZBVIKEBTk9lsQawR0xyHg/LdmnJ+F3nR/MEyywoAlxM42lP3LYcVxuwwnsumF5YM3rAiJ9Vw/lROgxWkmLEP8q4uyz1e83j6yujWnU9C5nVs+1ZgEo1TKjT10ypErJdXdWajWZLy4PWYiE6Ks5o0DYkKoKgysqJuyC5qYrcwvcf0w65HvpQWGc4wyOAKoBw3uFOnbVs+lgMcK1qoyCMQkpcjSGVNTYy6ht8j2uvwA9aJ2H84IVr26ZuNTmRUfoC2hGiEEr1TQ9TQrnfjBH3hAyApgTnM/jNyQziPL39z2TaAAcgppd9izHArBHVED/pquguuTqwvGYUKKNjcl/NNOV18WCYpsrwcxQgC+LEceraPun+TUv1OR5k5K7d28zBlNF8EUE/Jw2uCv6EW+KAQvQ7vhoJ35xbd0aJ8boRMBT7Yyxjgg9yaciMYIbufARKZ7nd7Kru15nDqqnBYnHKMi6XL2ZjEGCL+QOZk1PgCDQ3N9U3d6G6eLs31zc1NwccBTkc0Hk1PN2B7dOd2HctuWagxKl624ztml/AkJp/AbeA65L7qcV8xx+yyORyZW6mxz5G8NgFAQKDzOiO9ubaSq3E4NCapCvuuQ2XWWe/o9eHxj3Wmj3w0kxDpmxKiAfmiANlpf5YChCx8iUYiA4B68Imi97d0JgMP6SFJwZiry9oNn9I0ixCbmQYe+Jm0cwyOB4Nf0VPiNr/0k8Im6xj0aSR/be/qiTKHPBw85h6nv4J1RJFz5/Scm/u+GpnbiCDPxGCF+lQALr/Zb2Wy9CF5VwWe5Qo5sZc7eMYfv5zNNwoy6rlPiSA5TBSywIly8GtUL3kHGvf3kjIESHHfVRek5pg84qVD24N78xK5GQpobsrhmISxl5uMQi8r3sBvbQfwoAQVB1op+EFhaQL0tHZjQ2vWs+XtwES0qw4eOdDRGgXPzgqAWNE7Eso02C//q96Dn3qDgP6l5A2fxKiPDoc9gUwQsQI4zhKJzmOamHfCjI8SkVGQqmCNUYJRAhyewjMDqWmo5EkWAirI13av2UxYsMObmo9clS2w0ddxpYHUndgXfh8igNvaDhpVaxuCZxZJ4u+ZTtjiux3hjtW4NKN18W24GikmQfrVUptbtxpblX40cjcZUKxAJfj2kqWBpOHBLXmj8f2GSBNtUHtIlRZleRVzQShmeaMRlevkN1ms9ydSv/YKLMW/0ijhoawO7IcJm1VGUSSkY1vjTzeJz50IHX4B4Ior91q/knIo4RjozomGrsw0mQvXwDhARjW9yNN3yvLLKCEFi8g1Ms/V1fCllgSx3KBUcIzlh4g8DFUSgiDoJT1erXZlSOoKSrGPI5SYKaYFQl6wmZ7MZFM4nK9WvMLZ0UP1lKtxZ50MsmLKW3BqEUUxIw+blV2MBUuDZTZ+cuU1HZcw/RW+/06WxQjBTRoYyZZQUcisvbLwT1kcitMSh2G1CXRrfUV/uM53jOj9TubSttw2dyyCeMoID4IE8UMU9z0BuISfjWsXBR5dhfNLicWIt4GNrHp8vxoO2d8EH/8DF1qArKb8b+uc/evp24LVtwXNimfgmhR93v3jLjfic3g/TVHhdfzxAxcPvVnZljUT6Uogige0fwvmr+BaJF/syAWQ9D/dK3SQkDw8eGeU6k/S6Kl3RRrvXPkEdn3HdP62CZijTbW2FmpLbhwabwAlh8riinD8OUlgIv0KU+7Q98wSlnvLbz/VtMFhKhyoHr/TyrCtE5qmHN/Dryjpp3825an4rD4czB2IIN1KfFAZYs4pjZz6a+At1iio76dPeFMzYND4X28ktlQbG3K4tEbrtG/vi+aY9tjAt9/KZotYyUhVFH52JDm5SGdqtzoWPEdKu9H92c8b4UzaCOaangHxkdbHpSmkEyXhy0wAP2x3tno0sFeB8dDp0PJpFm+XRG2MmyowuUBwlZoRuTdOJD2eRXK2nLc+EKbFGwq9ntVlN8l8f73dQ8ZmNd6OECPajo4qg/t021UCvRb+TqoTdxRv7uMXmNC3cDYMTmiN7omPH3ii7c6SGf99wM2EVqbvm7IWtJqe2riAtczXG40Ne2dU8p/MZsA1SIv5TcmqMdNEyKss6QKX/+dI/j3C1x7VXzaVH633z/+wZP+urifkbazfpeuKZKkyJLhdcZpMhlP2hJywM82Fu1+hqYsD502bnAtCP1woAfHcTcMy3dBv7+Z4NZfh+Es9dP/NCF5OxIBRJhGe/AVD2NvtZnrK5wKGV3oxNiTI/QMsT2JL0p7i9LskIqw27aNbqlHe4dLv487k9lkciRTUlt4ilogcCamTnyLu9wLcb1e219iswOEyP65VOOqL0KwwUClNGQ93pOYUnvdFsUHS07cA06k/3wvtMccQnLimaQRh8IY+TVn8GCuC2PavMP7y1FgivqdqY+bM0kQZKGD4/7/63+b55Suuz913JWcB3n70PpjxIIVBPyqgJ46/8MLEyeiWv/IOOwDwCfL7K8jwFdvyYDa7P9lP5ocQAsBCOB/SJoZuXJl5ms4CujjA3+LyxIaZmrgnr032+FrhLSKu3LIzEyasjd2lN9AF0p7hj6cvJ2rC5jyVHxPUpPTXPnaRKlmI5bYXsnnKJt1LxFwKQO20nCUDXeNvlr1qGeOlO0el7uP8qcmVlpNjwvv3JiWyFb2/oTphpn6yy/bqhyT/Ubucwp9ux1QVBQ+J5mxLHOKk7a8s4bzbBeQczM3VtMHwvuVLjzO3QdnHwJY7koTNxFqsTp3+QGfl95VITqBRs5CTVCOkyoJduCKAAlkJQDlJeUgpbSES8+iQUpX+nqm8fa5tZKZqhrYT+kd6+HkS8rccX6OHOQ4Clv2cbWRoyuc4vZmo3IP3ZlYavInLkOQF/tFl4Q0239EOybIf2gcocpfNBRHC1elrJ2Vk9O7vCgye2PPco2b0bn8aOlt2Ri/Gd4Cs13i29h2sANQZpvETjMqszgCF/8unYVsGwHs3eaxMXckSAAHXG2YpuyWQqdDHHBTDinmsWxrMu4RUlpxU0gwyZr1DdhshKpnPZzTe7bfQ0pfH8B67L9akKtqxVJtYNwwej11vJ90lfSKBGULfTX03gv0njJrhyix8ria3ox4FHVMWeaPGEuO1kvo7hSyrbn0+HouXswuBAG/lXj1HCa71rikwSkhv/Y3ss49Dpgg3kkTonTdhElWYsIFBmUimCMRyYixzauUmFnjQBlQxGokyOn8kBGz3aQAfA6YWEBHoUkJ1Llm4oA8npl44fnFpOJqukktslqThqOtJq3orjLphPbI8nqKxGljIM9e9qMGO3ad2bdmxapDsfLlylMq1uABlsThhLhZxY0m79s2sRd5x/oAL9TLdY6EV0twgFNp5EO7G7lcTg2tWCuqj8zLtpAStwKx+SG0yc45kpds02ovdZZBZ3aLuJwRF1r7aWWxP5BXHBVxbltfJFuuhEiFbj3ec5MKtJPV0Hqp+li8JE1cg19cHaaL1KWEfQkdWFBb3nXYcTZZaFN2m7gymrxHs04jlgYidnVxcY4c2TIAbNF0vU8vxtUmpw7fo3NZvalVv40FtB9uTn6wKsCg5TWUXct17ZdRVAfIUPBFbQ7Nja9ZWPN/hFselpFUf9YVANzyFATJUqXJkClXfpgS5SpUaiTQrFWHHv0GDBo3YfL+ZM5KRdV0w7Rsx/XwBCKJTKHS6Awmi83h8kAIRlC+QCgSS6QyucLEVKkyM1drLCytrG1s7ewdlKEwOAKJQmOwODyBSCJTqDQ6A1RhstgcLk9VjS9Q19DU0haKdHT19A3EhkbGJqYSqZm5hcyhpZUjx078BBAIGAQUDBwCEgoaBhYOHgERCRkFFQ0dAxMLGwcXD5+AkIiYhJSMnIKSipqGlo6egZGJmYWVjZ2Dk4ubh5ePX0BQSFjEnXsPHj159uLVm3cfPn359uPXT5Txcn3SmrUupHFnbT03XrdIuIi8ZJ8IYguLcCCmOHc3gxFaiimX2olb+sEvrG3WdKTT33PJ+L/O+iSNbJtgUC5Hk2XO6d230zwiTCiIKfNgyqXuq9luA6ZcaifuWFhrrbWx521qwLrXHIleOzkx78fQ31+//fhCNTqt5O3uhdGGC58iMZ1IEwfIIXBM7PO1RwFpZgKEkfRCgRkLRBhTcG8upYQJBcLY9JhyqZ1xgQgTCoxFhAkFxiLChAJjEQGTGAtla1KrGmrYY26sTaO1+aSD0J8c76CRJi3KT6gqB99S1b0KCaxdyi+p82L6yhMB2Mcb2c0VPxLyJRjJJPog53+XlZ2evmkx9LkN6rom1O981j4O097Ybyuo96K3DDMq5+qeFfIvCUaJW4Jatb+if6bXOiZuLtI/W4kLBeU1E3qasSl6a8U/ZI9zux1tqOnzYJuZ7Fw/ZJzgzb/Qlku1LxH2erwjvodNqGXmdJS4mon+J+jEdC9xz7p97QNr7te+Q2i/npe4WInken6/kV1jdosHaYiECNtmiCcZASLsl/xieAAAAA==) format("woff2"); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: Vollkorn; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url(data:font/woff2;base64,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) format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /*# sourceMappingURL=theme.css.map */ diff --git a/.obsidian/themes/Obsidian Nord/manifest.json b/.obsidian/themes/Obsidian Nord/manifest.json index 928bb63..b735c72 100644 --- a/.obsidian/themes/Obsidian Nord/manifest.json +++ b/.obsidian/themes/Obsidian Nord/manifest.json @@ -1,6 +1,6 @@ { "name": "Obsidian Nord", - "version": "0.1.6", + "version": "0.1.7", "minAppVersion": "0.16.0", "author": "insanum", "authorUrl": "https://insanum.com" diff --git a/.obsidian/themes/Obsidian Nord/theme.css b/.obsidian/themes/Obsidian Nord/theme.css index e9e0c0f..0a1b501 100644 --- a/.obsidian/themes/Obsidian Nord/theme.css +++ b/.obsidian/themes/Obsidian Nord/theme.css @@ -163,6 +163,9 @@ body --dataview-key-background: rgba(var(--frost2_x), 0.3); --dataview-value: var(--text-faint); --dataview-value-background: rgba(var(--red_x), 0.3); + + --tab-text-color-focused-active: var(--frost2); + --tab-text-color-focused-active-current: var(--red); } .theme-light @@ -261,6 +264,9 @@ body --dataview-key-background: rgba(var(--frost2_x), 0.3); --dataview-value: var(--text-faint); --dataview-value-background: rgba(var(--red_x), 0.3); + + --tab-text-color-focused-active: var(--frost2); + --tab-text-color-focused-active-current: var(--red); } table @@ -468,3 +474,8 @@ pre[class*="language-"] background-color: var(--dataview-value-background) !important; } +.suggestion-highlight +{ + color: var(--red); +} + diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 2665188..574ba60 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -4,42 +4,32 @@ "type": "split", "children": [ { - "id": "3f5dc457994bbd99", + "id": "da7b72acdd5782c1", "type": "tabs", "children": [ { - "id": "531c313e44ad2003", + "id": "5c31f65df875fed7", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "AMiAL/Ćwiczenia/1 SEM/20221028120723.md", + "file": "AMiAL/Wykłady/Wykłady.md", "mode": "source", "source": false } } }, { - "id": "4f5bedb3e6d1067b", + "id": "3bc0e42c65536104", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "AMiAL/Ćwiczenia/Zadania/funkcje/Zadanie 1.md", + "file": "AMiAL/Wykłady/1 SEM/20221125083233.md", "mode": "source", "source": false } } - }, - { - "id": "a6018bec66c4363d", - "type": "leaf", - "state": { - "type": "pdf", - "state": { - "file": "AMiAL/!Materiały/funkcje.pdf" - } - } } ], "currentTab": 1 @@ -108,7 +98,7 @@ "state": { "type": "backlink", "state": { - "file": "AMiAL/Ćwiczenia/Zadania/funkcje/Zadanie 1.md", + "file": "AMiAL/Wykłady/1 SEM/20221125083233.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -125,7 +115,7 @@ "state": { "type": "outgoing-link", "state": { - "file": "AMiAL/Ćwiczenia/Zadania/funkcje/Zadanie 1.md", + "file": "AMiAL/Wykłady/1 SEM/20221125083233.md", "linksCollapsed": false, "unlinkedCollapsed": true } @@ -148,26 +138,10 @@ "state": { "type": "outline", "state": { - "file": "AMiAL/Ćwiczenia/Zadania/funkcje/Zadanie 1.md" + "file": "AMiAL/Wykłady/1 SEM/20221125083233.md" } } }, - { - "id": "23b819a2dc2500c7", - "type": "leaf", - "state": { - "type": "BC-matrix", - "state": {} - } - }, - { - "id": "5f7d6c81bffeeaaf", - "type": "leaf", - "state": { - "type": "BC-tree", - "state": {} - } - }, { "id": "8f0923324d861591", "type": "leaf", @@ -175,25 +149,42 @@ "type": "calendar", "state": {} } + }, + { + "id": "3a7bd8a3ae5a1a09", + "type": "leaf", + "state": { + "type": "BC-matrix", + "state": {} + } + }, + { + "id": "b0803323a2aa4ad9", + "type": "leaf", + "state": { + "type": "BC-tree", + "state": {} + } } - ] + ], + "currentTab": 6 } ], "direction": "horizontal", "width": 300, "collapsed": true }, - "active": "4f5bedb3e6d1067b", + "active": "3bc0e42c65536104", "lastOpenFiles": [ - "AMiAL/!Materiały/funkcje.pdf", - "AMiAL/Ćwiczenia/1 SEM/20221028120723.md", - "AMiAL/Ćwiczenia/Zadania/funkcje/Zadanie 1.md", - "AMiAL/Ćwiczenia/1 SEM/20221021120444.md", - "AMiAL/Ćwiczenia/1 SEM/Liczby Zespolone/Liczby Zespolone.md", + "AMiAL/!Materiały/w5_granica_funkcji.pdf", + "AMiAL/Wykłady/1 SEM/20221125083233.md", + "AMiAL/Wykłady/1 SEM/20221123083519.md", + "AMiAL/Wykłady/1 SEM/20221104082939.md", "AMiAL/Wykłady/1 SEM/20221021083844.md", - "Excalidraw/Drawing 2022-10-28 11.47.05.excalidraw.md", - "Elektrotechnika/Ćwiczenia/20221028102800.md", - "AMiAL/!Materiały/w1_liczby_zesp.pdf", - "!Załączniki/20221021120444 2022-10-28 11.01.18.excalidraw.md" + "AMiAL/Wykłady/1 SEM/20221014083923.md", + "AMiAL/Wykłady/Wykłady.md", + "AMiAL/Ćwiczenia/1 SEM/20221123123903.md", + "PI/Wykłady/1 SEM/20221014134528.md", + "PI/Ćwiczenia/20221010123607.md" ] } \ No newline at end of file diff --git a/AMiAL/!Materiały/ciagi_gr.pdf b/AMiAL/!Materiały/ciagi_gr.pdf new file mode 100644 index 0000000..29f363e Binary files /dev/null and b/AMiAL/!Materiały/ciagi_gr.pdf differ diff --git a/AMiAL/!Materiały/w4_granica_ciagu.pdf b/AMiAL/!Materiały/w4_granica_ciagu.pdf new file mode 100644 index 0000000..a775fc9 Binary files /dev/null and b/AMiAL/!Materiały/w4_granica_ciagu.pdf differ diff --git a/AMiAL/!Materiały/w5_granica_funkcji.pdf b/AMiAL/!Materiały/w5_granica_funkcji.pdf new file mode 100644 index 0000000..1a6d9b6 Binary files /dev/null and b/AMiAL/!Materiały/w5_granica_funkcji.pdf differ diff --git a/AMiAL/Wykłady/1 SEM/20221021083844.md b/AMiAL/Wykłady/1 SEM/20221021083844.md index 00c673f..b206d3f 100644 --- a/AMiAL/Wykłady/1 SEM/20221021083844.md +++ b/AMiAL/Wykłady/1 SEM/20221021083844.md @@ -1,4 +1,4 @@ - +pl:88 ## Wzór Moivre'a: $z^n = r^n(\cos(n\phi)+i \sin(n\phi))$ gdzie $n\in\mathbb{N}$ oraz $z\ne0$ diff --git a/AMiAL/Wykłady/1 SEM/20221104082939.md b/AMiAL/Wykłady/1 SEM/20221104082939.md new file mode 100644 index 0000000..2171a22 --- /dev/null +++ b/AMiAL/Wykłady/1 SEM/20221104082939.md @@ -0,0 +1,8 @@ +Metryka to funkcja d na zbiorze x która spełnia warunki: +- d(x,y) = 0 +- d(x,y) = d + + +Metryka centrum - metryka _"rzym"_ + +Metryka dyskretna - Bool - 0 gdy punkty są na sobie/1 gdy nie diff --git a/AMiAL/Wykłady/1 SEM/20221123083519.md b/AMiAL/Wykłady/1 SEM/20221123083519.md new file mode 100644 index 0000000..b10c189 --- /dev/null +++ b/AMiAL/Wykłady/1 SEM/20221123083519.md @@ -0,0 +1 @@ +$$\forall(x_{n}), x_{n}\in D, x_{n} \ne a(\lim_{n\rightarrow \infty}x_{n}=a \Rightarrow \lim_{n\rightarrow \infty}f(x_{n})=L)$$ \ No newline at end of file diff --git a/AMiAL/Wykłady/1 SEM/20221125083233.md b/AMiAL/Wykłady/1 SEM/20221125083233.md new file mode 100644 index 0000000..df68a85 --- /dev/null +++ b/AMiAL/Wykłady/1 SEM/20221125083233.md @@ -0,0 +1,21 @@ +$$ +\begin{gathered} + + +f(x)=\frac{x^{2}-2x}{x^{2}-3x+2} \\\\ +D_{f}=\mathbb{R} \setminus \{ 1, 2 \} \\ + +x^{2}-3x+2\ne0 \\ +(x-1)(x-2)\ne0 \\ +x\ne1\ \ \ \ x\ne2 \\ + +D_{f}\in(-\infty, 1) \cup (1,2) \cup (2,\infty)\\ + + +\lim_{x\rightarrow1}= + +granica pionowa obustronna w 1 +\end{gathered} +$$ + +# Ciągłość funkcji diff --git a/AMiAL/Ćwiczenia/1 SEM/20221118121118.md b/AMiAL/Ćwiczenia/1 SEM/20221118121118.md new file mode 100644 index 0000000..e85a097 --- /dev/null +++ b/AMiAL/Ćwiczenia/1 SEM/20221118121118.md @@ -0,0 +1,8 @@ +$$\begin{aligned} +a_n&=n^{2}-8n+15\\ +a_{n+1}&=(n+1)^{2} - 8(n+1)+15 \\ +a_{n+1}&=n^{2}-6n+8 \\ +a_{n+1}-a_{n}&=(n^{2}-6n+8)-(n^{2}-8n +15)\\ +a_{n+1}-a_{n}&=2n-7 +\end{aligned}$$ +Ciąg jest niemonotoniczny, ponieważ znaki się zmieniają w jego trakcie. diff --git a/AMiAL/Ćwiczenia/1 SEM/20221123123903.md b/AMiAL/Ćwiczenia/1 SEM/20221123123903.md new file mode 100644 index 0000000..e5d2027 --- /dev/null +++ b/AMiAL/Ćwiczenia/1 SEM/20221123123903.md @@ -0,0 +1 @@ +$\lim_{n\rightarrow \infty} 5$ \ No newline at end of file diff --git a/AMiAL/Ćwiczenia/Zadania/ciagi_gr/Zadanie 1.md b/AMiAL/Ćwiczenia/Zadania/ciagi_gr/Zadanie 1.md new file mode 100644 index 0000000..931e9c1 --- /dev/null +++ b/AMiAL/Ćwiczenia/Zadania/ciagi_gr/Zadanie 1.md @@ -0,0 +1,37 @@ +# Zbadać monotoniczność podanych ciągów +## (1) +$$\begin{aligned} +a_{n}&=2n^{2}+4n \\ +a_{n+1}&= 2(n+1)^{2}+4(n+1)\\ +a_{n+1}&= 2n^{2}+4n+2+4n+4 \\ +a_{n+1}&= 2n^{2}+8n+6 \\ +a_{n+1}-a_{n}&= 2n^{2}+8n+6-(2n^{2}+4n)\\ +a_{n+1}-a_{n}&=4n+6 +\end{aligned}$$ +Ciąg jest monotoniczny, wszystkie jego wyrazy są dodatnie. +## (2) +$$\begin{aligned} +a_n&=n^{2}-8n+15\\ +a_{n+1}&=(n+1)^{2} - 8(n+1)+15 \\ +a_{n+1}&=n^{2}-6n+8 \\ +a_{n+1}-a_{n}&=(n^{2}-6n+8)-(n^{2}-8n +15)\\ +a_{n+1}-a_{n}&=2n-7 +\end{aligned}$$ +Ciąg jest niemonotoniczny, ponieważ znaki się zmieniają w jego trakcie. + +## (3) +$$\begin{aligned} +a_{n}&= \tfrac{n-1}{n+3} \\ +a_{n+1}&=\tfrac{n+1-1}{n+1+3} \\ +a_{n+1}&=\tfrac{n}{n+4}\\ +a_{n+1}-a_{n}&=\tfrac{n}{n+4}-\tfrac{n-1}{n+3}\\ +a_{n+1}-a_{n}&=\tfrac{n(n+3)}{(n+4)(n+3)}-\tfrac{(n+4)(n-1)}{(n+3)(n+4)} \\ +a_{n+1}-a_{n}&=\tfrac{n^{2}+3n}{n^{2}+7n+12}-\tfrac{n^{2}-3n-4}{n^{2}+7n+12}\\ +a_{n+1}-a_{n}&=\tfrac{n^{2}+3n-(n^{2}-3n-4)}{n^{2}+7n+12}\\ +a_{n+1}-a_{n}&=\tfrac{6n+4}{n^{2}+7n+12}\\ +\end{aligned}$$ +Ciąg jest monotoniczny; dąży do 0 +## (4) +## (5) +## (6) +## (7) diff --git a/AMiAL/Ćwiczenia/Zadania/funkcje/Zadanie 1.md b/AMiAL/Ćwiczenia/Zadania/funkcje/Zadanie 1.md index 0e45a21..4b0a83c 100644 --- a/AMiAL/Ćwiczenia/Zadania/funkcje/Zadanie 1.md +++ b/AMiAL/Ćwiczenia/Zadania/funkcje/Zadanie 1.md @@ -14,5 +14,7 @@ $f(x)=\cfrac{\log x \times \sqrt{\tan x}}{x^2+3x+5}$ Założenia: - $x^{2}+3x+5 \ne 0$ + - $\Delta = 3^{2}-20 = -11$ - $x\gt0$ -- $\tan x \gt 0$ \ No newline at end of file +- $\tan x \gt 0$ + diff --git a/AMiAL/Ćwiczenia/Zadania/li_zesp/Zadanie 1.md b/AMiAL/Ćwiczenia/Zadania/li_zesp/Zadanie 1.md new file mode 100644 index 0000000..e645e28 --- /dev/null +++ b/AMiAL/Ćwiczenia/Zadania/li_zesp/Zadanie 1.md @@ -0,0 +1,10 @@ +# Wykonać działania. Dla wyznaczonych liczb zespolonych z wyznaczyć ℜ(z), ℑ(z), z¯ oraz |z|. + +## (1) +$$\begin{aligned} +(2+5i)(3+i) &= 6+2i+15i+5i^{2} = 1+17i \\ +\Re(z) &= 1 \\ +\Im(z) &= 17 \\ +\bar{z} &= 1-17i \\ +|z| &= \sqrt{1^{2}+17^{2}}=\sqrt{290} +\end{aligned}$$ \ No newline at end of file diff --git a/Elektrotechnika/Ćwiczenia/20221123102116.md b/Elektrotechnika/Ćwiczenia/20221123102116.md new file mode 100644 index 0000000..f26b5b7 --- /dev/null +++ b/Elektrotechnika/Ćwiczenia/20221123102116.md @@ -0,0 +1,13 @@ +# Metoda potencjałów węzłowych + +![[20221123102116 2022-11-23 10.21.43.excalidraw]] + +![[20221123102116 2022-11-23 10.45.42.excalidraw]] +![[20221123102116 2022-11-23 11.09.13.excalidraw]] + + + + + +## the plot thickens +![[20221123102116 2022-11-23 11.25.49.excalidraw]] \ No newline at end of file diff --git a/Fizyka/Wykłady/20221109095943.md b/Fizyka/Wykłady/20221109095943.md new file mode 100644 index 0000000..2594107 --- /dev/null +++ b/Fizyka/Wykłady/20221109095943.md @@ -0,0 +1,7 @@ +Fale + + + + + +nie ma fal \ No newline at end of file diff --git a/Fizyka/Ćwiczenia/20221108121937.md b/Fizyka/Ćwiczenia/20221108121937.md new file mode 100644 index 0000000..c583d5a --- /dev/null +++ b/Fizyka/Ćwiczenia/20221108121937.md @@ -0,0 +1 @@ +![[20221108121937 2022-11-08 12.20.38.excalidraw]] \ No newline at end of file diff --git a/Fizyka/Ćwiczenia/20221121145029.md b/Fizyka/Ćwiczenia/20221121145029.md new file mode 100644 index 0000000..e69de29 diff --git a/Fizyka/Ćwiczenia/Ćwiczenia.md b/Fizyka/Ćwiczenia/Ćwiczenia.md index 22bdf54..1fb6659 100644 --- a/Fizyka/Ćwiczenia/Ćwiczenia.md +++ b/Fizyka/Ćwiczenia/Ćwiczenia.md @@ -1,5 +1,5 @@ # Ćwiczenia Overview -adiunkt Lucyna Grządziel +adiunkt Lucyna Grządziel Budynek CNT, p.107 diff --git a/PI/Ćwiczenia/20221107120342.md b/PI/Ćwiczenia/20221107120342.md new file mode 100644 index 0000000..b617c92 --- /dev/null +++ b/PI/Ćwiczenia/20221107120342.md @@ -0,0 +1,71 @@ +∈# Na ile sposobów można przedstawić liczbę 5? +5 +4+1 +3+2 +3+1+1 +2+2+1 +2+1+1+1 +1+1+1+1+1 + +## Reprezentacja w C++ +```cpp +int f(int m,int m){ +if(m==1 || n ==1){ + return 1; + } else if (m>n){ + return f(m-n,n)+f(m,n-1) + }else{ + return 1+f(m,m-1) + } +} +``` +### Stos: +![[20221107120342 2022-11-07 12.08.17.excalidraw]] + +# Trójkąt Sierpińskiego +## Grafika: +![[20221107120342 2022-11-07 12.15.53.excalidraw]] + +## Kod: +```cpp +void tr(double bok, double min){ + if(bok>min){ + for(int i=0;i<3,i++){ + tr(bok/2, min); + rysuj(bok); + obrot(120); + } + } +} +``` +# Drzewo: +## Rysunek +![[20221107120342 2022-11-07 12.22.55.excalidraw]] +## Kod: +```cpp +void galaz(double a){ + rysuj(a); + obrot(45); + galaz(2a/3.0); + obrot(-90); + galaz(2a/3.0); + obrot(-135); + rysuj(a); + obrot(180); +} +``` +# Problem skoczka szachowego: +## Rysunek: + ![[20221107120342 2022-11-07 12.48.52.excalidraw]] +## Kod: +```cpp +const n = 8; +int Sz[n][n]; +int dx[8]={1,2,2,1,-1,-2,-2,-1}; +int dy[8]={2,1,-1,-2,-2,-1,1,2}; +bool Probuj(int x, int y, int nr){ +Sz[x][y]=nr; +if(nr==n*n) return true; +for (int i = 0;ia[p]){max=l;min=p;}else{min=l;max=p;} + max = l; + } else { + int m1,m2,M1,M2; + minmax3(a,l,(l+p)/2,m1,M1); + minmax3(a,l,(l+p)/2+1,m2,M2); + if(a[m2]a[m1]) + max=M2; + else max=M1; + } +} +``` \ No newline at end of file diff --git a/PI/Ćwiczenia/Ćwiczenia.md b/PI/Ćwiczenia/Ćwiczenia.md index 97716c2..a6a59ee 100644 --- a/PI/Ćwiczenia/Ćwiczenia.md +++ b/PI/Ćwiczenia/Ćwiczenia.md @@ -1,4 +1,4 @@ -# Ćwiczenia Overview +!Załączniki# Ćwiczenia Overview Kartkówki - 2-3 na semestr |Punkty|Ocena| diff --git a/PPK/Wykład/1 SEM/20221005140319.md b/PPK/Wykład/1 SEM/20221005140319.md index 3e52239..4354d05 100644 --- a/PPK/Wykład/1 SEM/20221005140319.md +++ b/PPK/Wykład/1 SEM/20221005140319.md @@ -1,3 +1,3 @@ -Projekt + Sprawdzian = 20 pkt +00Projekt + Sprawdzian = 20 pkt Język - C++ (bez OOP) \ No newline at end of file